K2E-B-G6-5 · Paper Note

SMERF

Created 2024-03-31Updated 2026-06-11slam / papers / g-geometry-rendering / g6-radiance-field-foundations

  • Description:SMERF 论文笔记 — 可流式省内存辐射场,K³ 子模型网格 + Zip-NeRF 蒸馏,普通设备实时漫游大场景 (300 m²,~200 FPS)
  • My Notion Note ID:K2E-B-G6-5
  • Created:2024-03-31
  • Updated:2026-06-11
  • License转载欢迎:转载请注明作者 Yu Zhang 并附原文出处(yuzhang.io

Table of Contents


1. Summary

Title: SMERF: Streamable Memory Efficient Radiance Fields for Real-Time Large-Scene Exploration Authors: D. Duckworth, P. Hedman, C. Reiser, P. Zhizhin, J.-F. Thibert, M. Lučić, R. Szeliski, J. T. Barron Paper: arXiv:2312.07541 (ACM ToG 43(4), SIGGRAPH 2024) Github: google-research/google-research (smerf)

SMERF (Google, 2023):可流式省内存辐射场,目标:普通设备 (手机/浏览器) 实时漫游大场景 (室内整层楼/室外街区)。核心矛盾:高质量离线辐射场 (Zip-NeRF) 渲染极慢 (~0.25 FPS);实时方法 (3DGS/MERF) 质量损失大,且单体表示难以扩展到 300 m² 场景。SMERF 通过分区 + 蒸馏调和两者。

场景按摄像机位置切成 K3K^3 子模型网格,每个子模型独立表示整个场景 (本格区精细、格外区粗略);渲染任意视角只载入一个子模型 → 显存恒定、与场景大小解耦。质量通过从高质 Zip-NeRF 教师蒸馏获得,不从头训练。在 MERF 基础表示上引入特征门控延迟 MLP 参数插值提升表达能力,光线抖动数据增强保证帧间稳定性。

大场景基准 (Zip-NeRF dataset, 4 个场景, 最大 300 m²):SMERF K=5 PSNR 27.28 dB vs. Zip-NeRF 教师 27.37 dB、3DGS 25.50 dB,workstation 速度 ~200 FPS,手机 55+ FPS,比离线 Zip-NeRF 快三个数量级

SMERF 在普通硬件上实时漫游大场景,质量接近离线 Zip-NeRF 教师

2. Key Contributions

  • 层次子模型分区:场景切 K3K^3 块,每块独立 MERF 子模型;推理时单子模型上显存,内存与场景面积解耦
  • Zip-NeRF 蒸馏:外观 (patch 光度) + 几何 (体渲染权重) 双路监督,不从头训练;质量接近离线教师
  • 特征门控 (Eq. 8-9):voxel 特征第 8 维门控 triplane 贡献,替代 MERF 简单相加,表示更灵活
  • 延迟 MLP 参数插值 (Eq. 7):外观网络参数按 P3P^3 格点三线性插值,视角相关容量↑不增渲染开销
  • 光线抖动 (Eq. 12-13):扰动训练射线原点/方向,消除帧间闪烁;消融中与颜色监督并列贡献最大(PSNR 降幅 1.44-1.44 dB,略低于颜色监督的 1.53-1.53 dB;stump 场景移除后训练发散)

3. Method

3.1 子模型分区

场景按相机原点的 L∞ 距离分配到最近子模型格:

s=argmink{1,,K3}D(o,k)(6)s^* = \arg\min_{k \in \{1,\ldots,K^3\}} D(o,\, k) \tag{6}

oo 为相机原点,kk 为格子索引,DD 为 L∞ 距离。

每个子模型有独立 contracted 坐标系(将无界欧式空间非线性映射到有界单位立方体,使远处场景仍能被有限分辨率网格表示),表示完整场景但本格区细节高、格外区粗略。室外/单层场景退化为 K2\approx K^2。推理时只加载当前视角子模型 → 显存固定、场景可无限扩展。

3.2 MERF 基础表示与延迟渲染

每个子模型采用 MERF 表示:三面 triplane 特征图 Px,Py,PzP_x, P_y, P_z + 稀疏 3D voxel grid VV。体渲染权重:

wi=Ti(1exp(τiδi)),Ti=exp ⁣(j<iτjδj)(3)w_i = T_i\bigl(1-\exp(-\tau_i\delta_i)\bigr), \quad T_i = \exp\!\Bigl(-\sum_{j<i}\tau_j\delta_j\Bigr) \tag{3}

τi\tau_i 为体密度,δi=di+1di\delta_i = d_{i+1}-d_i 为采样间距,TiT_i 为透射率。

延迟渲染:先 α\alpha-合成得粗颜色,再加小型延迟 MLP hh 修正视角相关外观:

C^=iwici+h ⁣(iwici,  iwifi,  d;  θ)(4)\hat{C} = \sum_i w_i c_i + h\!\left(\sum_i w_i c_i,\;\sum_i w_i f_i,\; d;\;\theta\right) \tag{4}

fif_i 为外观特征,dd 为视角方向,hh 为轻量 MLP (2 hidden layers, 16 units, ELU 激活)。

3.3 特征门控

原 MERF 直接相加 tMERF(x)=Px+Py+Pz+V(x)t_\text{MERF}(x) = P_x + P_y + P_z + V(x)。SMERF 引入门控:取 voxel 特征第 8 维 w(x)=[V(x)]8w(x)=[V(x)]_8 作标量权重门控 triplane,再将结果与 voxel 特征拼接:

t^(x)=w(x)(Px(x)+Py(x)+Pz(x))+V(x)(8)\hat{t}(x) = w(x)\cdot\bigl(P_x(x)+P_y(x)+P_z(x)\bigr) + V(x) \tag{8} t(x)=t^(x)V(x)(9)t(x) = \hat{t}(x) \oplus V(x) \tag{9}

\oplus 为沿通道拼接,w(x)Rw(x)\in\mathbb{R} 为标量门控权重。

3.4 延迟外观网络参数插值

延迟 MLP 参数 θ\theta 不全局共享,在 P3P^3 格点上分别存储,按相机原点三线性插值:

θ=Trilerp ⁣(o,  {θuvw:(u,v,w){1,,P}3})(7)\theta = \text{Trilerp}\!\bigl(o,\;\{\theta_{uvw}:(u,v,w)\in\{1,\ldots,P\}^3\}\bigr) \tag{7}

oo 为相机原点,θuvw\theta_{uvw} 为格点参数。mip-NeRF 360 取 P=5P=5(125 套参数),Zip-NeRF 场景同。空间位置不同 → 插值出的 MLP 参数不同 → 捕捉位置相关的外观变化。

3.5 Zip-NeRF 蒸馏训练

冻结 Zip-NeRF 教师,双路监督:

外观损失(学生/教师在 3×33\times3 patch 上的光度差):

Lc=1.5DSSIM(C,C)+cCcc2(10)\mathcal{L}_c = 1.5\cdot\text{DSSIM}(C, C^*) + \sum_{c\in C}\|c - c^*\|_2 \tag{10}

CC / CC^* 分别为学生和教师渲染颜色;DSSIM=(1SSIM)/2\text{DSSIM} = (1-\text{SSIM})/2(差异结构相似度,值越小越相似)。

几何损失(匹配沿射线的体渲染权重分布):

Lτ=iwiTwiS(11)\mathcal{L}_\tau = \sum_i |w_i^T - w_i^S| \tag{11}

wiTw_i^T / wiSw_i^S 为教师/学生同一射线同一采样点的终止权重,约束密度场一致。

训练配置:mip-NeRF 360 场景 200k steps / 16 A100;Zip-NeRF 大场景 100k steps / 8 V100 或 16 A100。优化器 Adam,学习率余弦衰减 1023×10410^{-2}\to3\times10^{-4},batch 65,376 rays。

3.6 光线抖动数据增强

扰动训练射线原点和方向,为数据集视角外区域提供监督:

o^N(o,  σ2I),σ=0.03K(12)\hat{o} \sim \mathcal{N}(o,\;\sigma^2 I), \quad \sigma = 0.03\,K \tag{12} d^U ⁣({vR3:vd2<ϵ,  v2=1}),ϵ=0.03(13)\hat{d} \sim \mathcal{U}\!\bigl(\{v\in\mathbb{R}^3:\|v-d\|_2<\epsilon,\;\|v\|_2=1\}\bigr), \quad \epsilon=0.03 \tag{13}

oo / dd 为原始原点/方向;σ=0.03K\sigma = 0.03\,K —— 注意带因子 KK(每轴分区数,见 §3.1),即 σ\sigma 随场景规模缩放(σ\sigma 定义在归一化场景坐标里,相机都落在 [K/2,K/2]3[-K/2, K/2]^3 立方体内);ϵ=0.03\epsilon = 0.03 为固定常数。抖动射线可覆盖欧式空间任意位置 → 提升泛化、消除帧间亮度跳变。

子模型一致性损失(Eq. 14):每条射线以 20% 概率同时由邻格子模型渲染,两结果光度差约束边界处颜色一致:

Ls=C^k(r)C^k(r)2(14)\mathcal{L}_s = \bigl\|\hat{C}_k(r) - \hat{C}_{k'}(r)\bigr\|_2 \tag{14}

C^k(r)\hat{C}_k(r):主子模型 kk(含射线起点的格子)渲染颜色;C^k(r)\hat{C}_{k'}(r):邻格子模型 kk' 对同一射线的渲染颜色;损失按批次所有 20% 重分配射线平均(随机梯度训练,不在公式中显式写求和)。

SMERF 坐标系:世界坐标 K³=3³ 格 (a)、单个子模型 contracted 坐标及 P³=4³ 延迟网络格点 (b)(c)

4. Experiments & Results

数据集

数据集 场景 规模 说明
Zip-NeRF dataset 4 (Berlin, Alameda, London, NYC) 最大 300 m²,1000-2000 张 180° 鱼眼 主评估,大场景
mip-NeRF 360 9 (室内/室外) 中小场景 标准辐射场 benchmark

大场景结果 (Zip-NeRF dataset)

Method PSNR ↑ SSIM ↑ LPIPS ↓ FPS Mem (MB)
MERF 23.49 0.746 0.444 283 522
3DGS 25.50 0.810 0.369 441 227
SMERF K=3 27.09 0.823 0.350 220 1313
SMERF K=5 27.28 0.829 0.339 204 1454
Zip-NeRF (teacher) 27.37 0.836 0.305 ~0.25

SMERF K=5 比 3DGS +1.78 dB,距离线教师仅 0.09 dB,速度快三个数量级。

mip-NeRF 360 结果 (K=1)

Method PSNR ↑ SSIM ↑ LPIPS ↓ FPS Disk (MB)
iNGP(Instant-NGP,多分辨率哈希编码的实时 NeRF,Müller 2022) 25.68 0.706 0.302 8.6 104
3DGS 27.20 0.815 0.214 260 740
MERF 24.95 0.728 0.302 278 153
SMERF K=1 27.98 0.818 0.212 217 139
Zip-NeRF (teacher) 28.78 0.836 0.177 ~0.25

磁盘占用 139 MB 远低于 3DGS (740 MB)。iPhone 实测 55.4 FPS (380×640),MacBook 42.5 FPS (1280×720)。

SMERF 与 3DGS 在 mip-NeRF 360 / Zip-NeRF 数据集上质量对比:SMERF 在薄几何、高频纹理、镜面高光上均优于 3DGS

5. Ablation & Discussion

消融在 mip-NeRF 360 (K=1) 上进行:

移除项 PSNR 相对 full model
无颜色监督 26.45 −1.53
无光线抖动 26.54 −1.44
无 MLP 参数格 27.40 −0.58
无特征门控 27.63 −0.35
无几何监督 27.90 −0.08
Full SMERF 27.98
  • 颜色监督和光线抖动贡献最大,两者皆不可缺
  • MLP 参数插值对质量有明显作用;特征门控改善感知质量 (LPIPS)
  • 几何监督、正则化项对 PSNR 贡献小,但对密度场一致性有隐性作用

消融还验证子模型数 K 越大质量越高 (K=5 > K=3),但内存和磁盘随 K3K^3 增长。

6. Strengths / Limitations / Future Work

Strengths

  • 大场景质量接近离线 SOTA:比 3DGS +1.78 dB,距 Zip-NeRF 教师 0.09 dB
  • 内存与场景大小解耦 (运行时常量 ~450 MB/子模型);WebGL 浏览器直接可用
  • 蒸馏框架通用:可替换更强教师进一步提升质量

Limitations

  • 磁盘/带宽成本高:Zip-NeRF 大场景每个 scene 磁盘 1.6-4.1 GB,流式加载有延迟
  • 训练成本高:100k-200k steps,需 8-16 张 A100/V100
  • 在部分区域质量优势相对 3DGS 不一致;受 voxel 结构约束,细节恢复有上限

Future Work (论文未单独列,推断方向)

  • 压缩/量化降低磁盘和带宽需求
  • 替换更快教师或端到端训练方案

References

  • Duckworth et al. (2023). SMERF: Streamable Memory Efficient Radiance Fields for Real-Time Large-Scene Exploration. ACM ToG 43(4), SIGGRAPH 2024. arXiv:2312.07541
  • 项目页 / WebGL 演示: smerf-3d.github.io
  • Barron et al. (2023). Zip-NeRF (ICCV):教师模型
  • Reiser et al. (2023). MERF (SIGGRAPH):baked 表示前作
  • Kerbl et al. (2023). 3D Gaussian Splatting — 实时对照,见 3DGS 笔记
  • NeRF 笔记 · Instant-NGP 笔记:辐射场基础