PAPER READING · 2102.07064v4 · 2022-04-06

NeRF--

不预先给定相机:通过可微体渲染联合优化焦距、位姿与辐射场

Zirui Wang · Shangzhe Wu · Weidi Xie · Min Chen · Victor Adrian Prisacariu

01 · 身份与固定版本

NeRF--: Neural Radiance Fields Without Known Camera Parameters,Zirui Wang、Shangzhe Wu、Weidi Xie、Min Chen、Victor Adrian Prisacariu,University of Oxford。以用户原PDF对应的 arXiv 2102.07064v4(2022-04-06)为阅读基准,共17页,包含Appendix A–C与参考文献。首次预印本发表于2021,v4是2022修订;原笔记年份保留,在新增内容中区分两者。

这是NeRF--(减去已知相机要求),不是原始NeRF,也不是名为NeRF++的另一个场景建模方法。所读PDF没有明确通讯作者标记,末位作者候选不自动升为verified。未进行模型训练或重算渲染指标。

固定版本 · 官方项目 · 官方代码

02 · 核心贡献与适用边界

普通NeRF通常先用COLMAP估计相机,再固定相机训练辐射场。NeRF--把共享焦距、每张图的旋转/平移和NeRF参数一起当可学习量,仅通过RGB重建损失优化,省去必要的SfM预处理。

但它不是任意图片集的万能无位姿重建:要求静态、forward-facing、同一组内参,主点近似图像中心,主要估计共享焦距;所有相机可从同一位置、朝-z初始化。大幅旋转、360°物体环绕和始终盯着同一对象的轨迹会失败。

共同优化

相机改变射线,射线改变体采样,图像损失同时更新相机与场景

BLEFF

14个带相机真值的路径追踪场景,用于区分相机精度与新视角质量

边界分析

系统比较旋转、平移、6DoF扰动以及三种受控运动模式

原 Figure 1:未知相机联合重建概览
原 Figure 1 · 未知相机联合重建概览 · 原论文来源

03 · 为什么要一起优化相机与NeRF?

COLMAP依赖特征对应关系,对无纹理区域、强视角相关外观、退化运动或匹配错误可能失败。若前处理相机不准,NeRF训练会把错误几何与外观吸收进场景。可微体渲染则允许直接让像素误差对相机求导,从而把两阶段问题转成联合估计。

它与bundle adjustment共享“相机和场景共同调整”的想法,但场景表示是神经辐射场,监督是稠密光度而非稀疏特征重投影。没有显式匹配不代表没有局部极值:早期NeRF非常模糊时,相机梯度可能缺乏足够的辨识信息。

还应区分两个目标:新视角图像看起来正确,不一定说明相机位姿物理正确;后面的Roundtable镜像歧义就是反例。论文引入BLEFF正是为了同时评价这两件事。

04 · 从射线到颜色:NeRF与联合目标

辐射场 \(F_{\Theta}(x,d)\mapsto(c,\sigma)\) 将位置和观察方向映射为颜色与密度。颜色是视角相关radiance,包含拍摄照明影响,不是已解耦的材质BRDF或可直接换灯光的SVBRDF。

\[\widehat I_i(p)=\int_{h_n}^{h_f}T(h)\,\sigma(r(h))\,c(r(h),d)\,\mathrm dh,\quad T(h)=\exp\!\left(-\int_{h_n}^{h}\sigma(r(s))\,\mathrm ds\right)\tag{1}\]

\(r(h)=o+hd\) 是相机射线;T表示沿途尚未被遮挡的透射率,σ控制终止密度,c提供颜色。离散实现将采样点的颜色按透明度和累计透射率加权:

\[\widehat C=\sum_j T_j(1-e^{-\sigma_j\Delta_j})c_j,\qquad T_j=\exp\!\left(-\sum_{k\lt j}\sigma_k\Delta_k\right)\]

后式是解释体渲染的常用离散展开,原文主公式采用积分。相机参数影响o与d,因此也影响采样点、密度、颜色和最终误差。

\[(\Theta^{\ast},\Pi^{\ast})=\arg\min_{\Theta,\Pi}\sum_i\|\widehat I_i(\Theta,\pi_i)-I_i\|_2^2\tag{3}\]

普通NeRF只优化Θ;NeRF--把 \(\Pi=\{f,R_i,t_i\}\) 加入可学习量。这里 \(\pi_i\) 不是圆周率,和后面的三角函数π应区分。并没有额外的相机真值监督或原论文未报告的几何一致损失。

原 Figure 2:可微射线与光度监督流程
原 Figure 2 · 可微射线与光度监督流程 · 原论文来源

05 · 相机参数化与在线射线构建

针孔内参主点固定为 \((W/2,H/2)\),所有图共享焦距f。该设置忽略镜头畸变、每帧变焦、非中心主点等因素。因此“unknown intrinsics”在本文主要是未知共享焦距,并非全部相机内参都自由估计。

外参使用camera-to-world变换 \(T_{wc}=[R\mid t]\)。平移是三维欧氏参数;旋转以axis-angle \(\phi=\alpha\omega\in\mathbb R^3\) 表示,再用Rodrigues公式映射:

\[R=I+\frac{\sin\alpha}{\alpha}[\phi]_{\times}+\frac{1-\cos\alpha}{\alpha^2}[\phi]_{\times}^2\]

这保证优化变量位于三维向量空间而输出仍为旋转矩阵。初始化 \(\phi=0\) 时需稳定处理两个比值的极限1与1/2,不能直接做0/0。论文方法描述不等于已验证每种数值实现都稳定。

\[d_{i,p}=R_i\begin{bmatrix}(u-W/2)/f\\-(v-H/2)/f\\-1\end{bmatrix},\qquad o_i=t_i\tag{4}\]

负v和-z反映本文的相机坐标约定。每轮使用当前f、R、t重新构造射线,不能训练前一次性缓存射线并detach,否则焦距/位姿梯度会断开。Algorithm1正是把在线射线构建与requires_grad一起强调。

焦距的二阶参数化不是二阶优化器

\[f=sW\quad\text{或}\quad f=\widetilde s^{\,2}W,\qquad s_0=\widetilde s_0=1\]

相对于直接优化像素单位的大数值f,尺度化变量更易与其他参数协调。平方形式是论文所说“2nd-order trick”,不是使用Hessian或Newton法;优化器仍是Adam。它使f非负,但 \(\widetilde s=0\) 时梯度为0,因此依然需要合理初始化。

联合问题还存在全局位置、方向与尺度的自由度。没有尺度参考时,学习到的平移并非天然以米为单位;评价需Sim(3)对齐,而不能把图表里0.03直接叫3厘米。

06 · 训练流程、网络和实现差异

  1. 随机初始化NeRF;所有相机位姿设identity,焦距设图像宽W
  2. 逐训练图随机选1024像素,用当前相机在线生成射线
  3. 每条射线采128点,位置/方向编码后输入小型NeRF
  4. 体渲染聚合颜色,计算RGB重建误差并反传
  5. 用三个独立Adam分别更新NeRF、位姿和焦距;按各自计划衰减LR
  6. 每场景训练10,000 epochs,扰动边界实验仅3,000 epochs
项论文v4设置不能混淆的点
NeRF宽度主要隐藏层128,最后64比原始NeRF减半,baseline也用同样小模型
采样无hierarchical sampling,128点/射线不是原NeRF coarse+fine双网络协议
训练pixels每图1024不是每轮完整高分辨率图反传
初始化Kaiming;相机identity;f=W依赖前向视图的吸引域
三优化器LR都从0.001开始不代表三个量梯度尺度相同
NeRF衰减每10epoch乘0.9954相机使用不同schedule
相机衰减每100epoch乘0.9focal与pose同此schedule
时间27训练图的BLEFF场景约5.5h/1080Ti小NeRFbaseline约5h;不是实时SLAM
原 Figure 15:简化NeRF网络结构
原 Figure 15 · 简化NeRF网络结构 · 原论文来源

当前官方train.py默认 fx_only=False,即分别学习fx、fy;论文推荐单共享f。要复现主表需检查相应开关,不能用默认命令就声称同一配置。当前代码包含原始坐标的PE,位置/方向实际63/27维;论文图只画60/24维的sin/cos部分。默认NDC采样也反映其forward-facing设定。

官方初始代码对应v3,后续README补充v4数据与讨论;当前task分为nerfmm、refine_nerfmm、any_folder。any_folder不做train/validation拆分,也不提供相同定量eval,因此用户自带图片demo成功不能直接当论文测试指标。

本次只读核对train.py、intrinsics.py、poses.py与README,没有运行训练。COLMAP初始化的实现学习delta pose并与初始矩阵复合;这与完全从identity学习是两种协议。

07 · 数据与评价协议

LLFF-NeRF:8个前向真实场景,每场景20–62张图;训练分辨率756×1008,每8张留一张测试。相机由COLMAP估计,但不是ground truth,所以与它的差值只是“与COLMAP一致程度”。

BLEFF:14个路径追踪场景,各有16类轨迹变体,覆盖平移、旋转和全6DoF扰动;每组31图,27训练、4测试,原1040×1560、焦距1040,实验缩半后520×780、焦距520。部分过大扰动把相机移到场景外,标记invalid,不能当方法失败或有意义输入。

RealEstate10K:用于展示实际受控运动,v4附录明确列两段视频,30fps采样到5fps,1920×1080;正文说每段14–43帧。不要把“使用RealEstate10K”解释为在整个大数据集上训练和全面评测。

原 Figure 3:BLEFF场景缩略图
原 Figure 3 · BLEFF场景缩略图 · 原论文来源
原 Figure 4:轨迹扰动生成
原 Figure 4 · 轨迹扰动生成 · 原论文来源

评价时还有相机对齐步骤

ATE用Umeyama/Sim(3)统一尺度、旋转、平移。附录还明确:固定已训练NeRF,对测试图像进一步优化相机以减小光度误差,再在对齐后的最佳视点计算NVS指标。这有助隔离表示质量,却意味着指标不是“直接拿完全未知测试相机、零额外优化”的结果。应同时报告评估相机优化成本与未对齐性能。

新视角使用PSNR↑、SSIM↑、LPIPS↓;焦距误差以像素计,旋转以角度,平移是对齐后场景坐标距离。不同数据分辨率下焦距像素误差不可未经归一化直接比较。

08 · 全部LLFF结果:总体接近,但平均仍落后

原 Table 1

Scene SSIM\(\uparrow\) LPIPS\(\downarrow\) PSNR\(\uparrow\) Camera Parameters Difference
colmap ours colmap ours colmap ours \(\Delta\)rot (deg) \(\Delta\)tran \(\Delta\)focal (pixel)
Fern 0.64 0.61 0.47 0.50 22.22 21.67 1.78 0.029 153.5
Flower 0.71 0.71 0.36 0.37 25.25 25.34 4.84 0.016 13.2
Fortress 0.73 0.63 0.38 0.49 27.60 26.20 1.36 0.025 144.1
Horns 0.68 0.61 0.44 0.50 24.25 22.53 5.55 0.044 156.2
Leaves 0.52 0.53 0.47 0.47 18.81 18.88 3.90 0.016 59.0
Orchids 0.51 0.39 0.46 0.55 19.09 16.73 4.96 0.051 199.3
Room 0.87 0.84 0.40 0.44 27.77 25.84 2.77 0.030 331.8
Trex 0.74 0.72 0.41 0.44 23.19 22.67 4.67 0.036 89.3
Mean 0.68 0.63 0.42 0.47 23.52 22.48 3.73 0.031 143.3

原表来源

平均PSNR从baseline23.52降至22.48,差1.04dB;SSIM0.68→0.63,LPIPS0.42→0.47。论文“comparable”指省去输入相机后的质量接近,不是所有场景相等或更优。Flower与Leaves的PSNR略高,Orchids16.73对19.09、Room25.84对27.77则明显较差。

LLFF右侧焦距差平均143.3像素,其中Room331.8、Orchids199.3。没有真值时不能据此宣布哪一方一定更准确,但这些差异和局部极值问题一致。这里baseline数值也不是原始全宽NeRF的官方成绩,因为双方都用精简结构。

原 Figure 5:LLFF图像与轨迹对照
原 Figure 5 · LLFF图像与轨迹对照 · 原论文来源
原 Figure 6:RealEstate10K新视角对照
原 Figure 6 · RealEstate10K新视角对照 · 原论文来源
原 Figure 13:LLFF补充结果
原 Figure 13 · LLFF补充结果 · 原论文来源

09 · 相机真值评估与离群案例

原 Table 2

Method Camera Parameters Error (vs. GT) NVS Quality
\(\Delta\)focal (pixel) \(\Delta\)rot (deg) \(\Delta\)tran SSIM\(\uparrow\) PSNR\(\uparrow\)
colmap 14.89 13.65 0.0127 0.90 33.92
ours 20.55 4.45 0.0654 0.90 33.24

原表来源

原 Table 3

Scene Focal Err. (pixel) Rot. Err. (deg) Tran. Err. SSIM\(\uparrow\) PSNR\(\uparrow\)
colmap ours colmap ours colmap ours colmap ours colmap ours
Airplane 0.09 0.87 0.02 0.61 0.000 0.003 0.83 0.87 28.19 30.57
Balls 0.21 15.44 0.06 13.43 0.001 0.285 0.89 0.81 34.56 32.12
Bathroom 0.02 0.52 1.49 1.50 0.001 0.004 0.93 0.94 32.64 31.58
Bed 0.26 0.39 2.21 2.21 0.003 0.004 0.94 0.94 33.28 32.41
Castle 0.04 3.23 0.04 3.17 0.001 0.020 0.88 0.89 32.44 32.74
Chair 0.01 6.12 0.03 3.52 0.000 0.078 0.84 0.81 33.42 32.24
Classroom 0.15 2.29 0.35 8.14 0.002 0.032 0.90 0.86 27.49 25.14
Deer 1.93 6.29 0.42 6.17 0.015 0.166 0.99 0.99 41.44 42.01
Halloween 0.69 9.77 0.13 6.74 0.003 0.064 0.94 0.91 31.59 29.30
Jugs 0.05 0.16 0.22 2.30 0.004 0.065 0.98 0.99 40.76 42.53
Root 15.27 36.42 6.95 4.51 0.078 0.054 0.97 0.97 36.49 35.45
Roundtable* 189.64 206.10 179.10 9.68 0.069 0.139 0.99 0.99 45.13 39.88
Stone 0.04 0.11 0.04 0.12 0.000 0.001 0.79 0.86 29.95 31.74
Valley 0.02 0.05 0.04 0.25 0.000 0.001 0.73 0.75 27.53 27.66
Mean 14.89 20.55 13.65 4.45 0.013 0.065 0.90 0.90 33.92 33.24

原表来源

BLEFF t010r010总体:本方法旋转误差4.45°低于COLMAP13.65°,但焦距20.55px高于14.89px,平移0.0654高于0.0127。SSIM都0.90,PSNR33.24对33.92。没有哪个方法在所有相机项上全面更准。

平均旋转优势主要受Roundtable影响:COLMAP在该场景出现镜像解,旋转误差179.10°;10次随机试验中9次如此,1次约0.71°。按原表舍入数据排除此场景后,COLMAP平均旋转误差约0.92°、Ours约4.05°。这是本页重算的敏感性分析,不是替换原表;说明不能只看单个跨场景平均。

镜像位姿与镜像几何可能彼此自洽,所以COLMAP-NeRF在Roundtable仍有45.13dB的高PSNR。好的新视角图像不等于唯一正确的几何/相机,也是设计inverse graphics benchmark时必须分开指标的原因。

原 Figure 7:相机位姿的优化历史
原 Figure 7 · 相机位姿的优化历史 · 原论文来源

10 · 运动模式与失效边界

扰动实验在3K epochs下以平均旋转误差<20°、焦距误差<真值50%为成功标准。它是固定预算、固定阈值下的经验边界,不是数学收敛保证。图注称t020r020开始失败,正文用“超过±20%/±20°”措辞;不要把边界点宣传为所有场景必然可用。

原 Figure 8:扰动强度与失效边界
原 Figure 8 · 扰动强度与失效边界 · 原论文来源
原 Figure 14:完整逐场景失效矩阵
原 Figure 14 · 完整逐场景失效矩阵 · 原论文来源

大旋转扰动下COLMAP较强,平移扰动下NeRF--较稳。但“rotation perturbation”和“主要旋转、很少平移的受控轨迹”不是同一实验。前者在前向平移轨迹上加朝向扰动,后者本身是一类退化运动。

原 Figure 9:三类受控相机运动
原 Figure 9 · 三类受控相机运动 · 原论文来源
原 Figure 10:COLMAP退化案例
原 Figure 10 · COLMAP退化案例 · 原论文来源

对于纯旋转/平移等某些SfM退化情形,稠密光度优化可得到合理结果;但track-to-object时,相机始终盯着对象,早期模糊渲染中对象构图几乎不变,难产生辨识相机的梯度。这个机制解释是作者假设,未以独立因果消融彻底证实。

原 Figure 11:track-to-object失败原因示意
原 Figure 11 · track-to-object失败原因示意 · 原论文来源
原 Figure 12:360度Lego失败
原 Figure 12 · 360度Lego失败 · 原论文来源

论文明确不支持一般360°场景,Lego失败图不是待调一个简单开关就能消除的已解决问题。静态场景、共享内参与较小旋转仍是核心前提。

11 · 可选精炼与焦距参数化的完整消融

可选精炼保留已学相机,丢弃并随机重建NeRF,再一起优化;不是只继续训练原网络。也可用COLMAP相机作初始值再联合调整。

原 Table 4

Scene SSIM\(\uparrow\) LPIPS\(\downarrow\) PSNR\(\uparrow\)
colmap ours colmap + r ours + r colmap ours colmap + r ours + r colmap ours colmap + r ours + r
Fern 0.64 0.61 0.64 0.63 0.47 0.50 0.47 0.48 22.22 21.67 22.28 21.93
Flower 0.71 0.71 0.72 0.72 0.36 0.37 0.36 0.35 25.25 25.34 25.53 25.58
Fortress 0.73 0.63 0.72 0.71 0.38 0.49 0.38 0.38 27.60 26.20 27.13 27.37
Horns 0.68 0.61 0.68 0.64 0.44 0.50 0.44 0.48 24.25 22.53 24.44 23.18
Leaves 0.52 0.53 0.53 0.53 0.47 0.47 0.47 0.46 18.81 18.88 18.94 18.96
Orchids 0.51 0.39 0.52 0.41 0.46 0.55 0.45 0.53 19.09 16.73 19.31 17.03
Room 0.87 0.84 0.87 0.85 0.40 0.44 0.39 0.42 27.77 25.84 27.96 26.28
Trex 0.74 0.72 0.74 0.73 0.41 0.44 0.41 0.43 23.19 22.67 23.13 22.95
Mean 0.68 0.63 0.68 0.65 0.42 0.47 0.42 0.44 23.52 22.48 23.59 22.91

原表来源

Ours平均PSNR22.48→22.91,SSIM0.63→0.65,LPIPS0.47→0.44;精炼有益但带来额外训练成本,仍未达到baseline平均23.52。若只展示+r,应把第二轮预算一并说明。

原 Table 5

Scene PSNR\(\uparrow\) SSIM\(\uparrow\) LPIPS\(\downarrow\)
\(f\) \(f_{x}f_{y}\) \(f\) \(f_{x}f_{y}\) \(f\) \(f_{x}f_{y}\)
Fern 21.67 21.79 0.61 0.62 0.50 0.50
Flower 25.34 25.24 0.71 0.71 0.37 0.37
Fortress 26.20 26.24 0.63 0.65 0.49 0.46
Horns 22.53 23.08 0.61 0.63 0.50 0.50
Leaves 18.88 18.79 0.53 0.52 0.47 0.47
Orchids 16.73 16.48 0.39 0.37 0.55 0.56
Room 25.84 25.72 0.84 0.84 0.44 0.44
Trex 22.67 22.53 0.72 0.72 0.44 0.44
Mean 22.48 22.48 0.63 0.63 0.47 0.47

原表来源

原 Table 6

Scene PSNR\(\uparrow\) SSIM\(\uparrow\) LPIPS\(\downarrow\)
\(\tilde{s}^{2}\) \(s\) \(\tilde{s}^{2}\) \(s\) \(\tilde{s}^{2}\) \(s\)
Fern 21.67 21.48 0.61 0.60 0.50 0.53
Flower 25.34 25.44 0.71 0.71 0.37 0.37
Fortress 26.20 24.92 0.63 0.58 0.49 0.58
Horns 22.53 22.53 0.61 0.61 0.50 0.50
Leaves 18.88 18.85 0.53 0.52 0.47 0.47
Orchids 16.73 16.67 0.39 0.39 0.55 0.55
Room 25.84 25.74 0.84 0.83 0.44 0.44
Trex 22.67 22.45 0.72 0.71 0.44 0.44
Mean 22.48 22.26 0.63 0.62 0.47 0.49

原表来源

单f与分别fx/fy的总体均值完全相同(22.48/0.63/0.47),支持简单参数化;这不证明每个场景或非方形像素相机都不需要fx/fy。平方尺度相对线性尺度平均PSNR提升0.22dB,Flower却略低25.34对25.44,因此不是每项都单调改善。

12 · 附录数据记录与许可表

原 Table 7

YouTube video ID Original fps Original res. Training fps Training res.
MVVJodQ50HQ 30 1920x1080 5 1920x1080
OT04jHhqYyw 30 1920x1080 5 1920x1080

原表来源

原 Table 8

Scene Licence Author Link
Airplane CC-BY-3.0 fabien https://blendswap.com/blend/15016
Balls-basketball CC-BY-3.0 CGMasters https://blendswap.com/blend/14758
Balls-volleyball CC-BY-3.0 Shri https://blendswap.com/blend/16958
Bathroom CC-BY-SA-3.0 ORBANGeoffrey https://blendswap.com/blend/20604
Bed CC-BY-SA-3.0 Warcos https://blendswap.com/blend/20975
Castle CC-BY-0 BySky https://blendswap.com/blend/27390
Chair CC-BY-0 akashdlfps https://blendswap.com/blend/25057
Classroom CC-BY-3.0 SwastikDas https://blendswap.com/blend/21410
Deer CC-BY-0 Spine69 https://blendswap.com/blend/26863
Halloween CC-BY-0 Yash Deokar https://blendswap.com/blend/26793
Jugs CC-BY-0 BigBadCat https://blendswap.com/blend/23234
Root CC-BY-0 AceTop https://blendswap.com/blend/24472
Roundtable CC-BY-0 gandre82 https://blendswap.com/blend/26159
Stone CC-BY-0 rajatg8008 https://blendswap.com/blend/22490
Valley CC-BY-0 ShadowCrystol https://blendswap.com/blend/27325

原表来源

Table7保留两段视频与原/训练帧率、分辨率;Table8保留BLEFF源资产的完整记录。原表部分项写“CC-BY-0”,这里保留其原始表述;实际使用资产时应查看原来源的明确授权,不能把全部BLEFF素材笼统称作同一种许可。

Broader Impact强调按场景优化、静态对象限制与合法采集。静态重建也可能包含私人室内布局,不能因为方法不处理动态人像就认为完全没有隐私风险;这是本次阅读补充,不是对作者作动机推断。

13 · Reviewer与用户研究方向的联系

优势:实现概念简单,在线射线将相机梯度自然接入NeRF;用带真值BLEFF同时评价位姿与图像;主动公开局部极值、镜像歧义和运动失效边界。

不足:要求前向共享内参,不能一般360°;依赖初始化吸引域;平均指标受单场景离群值影响;测试姿态还做光度优化;耗时以小时计,未讨论大规模/动态场景;部分当前代码默认与论文推荐不同。

Research Extension:在PMG/inverse graphics中,相机、光照、材料同样可能相互补偿。设计evaluator时分别报告成像匹配、物理参数、跨视角/跨光照泛化,不用单张图像的高分证明正确解释。对于图生成agent,可采用“先稳住可辨识变量再扩展自由度”的受控实验,但这不是本文已验证的材质图优化方案。

另一个可检验方向是用候选视角或约束context改善初始化,而非无条件增加优化步数。需要比较同预算下特征初始化、全部identity、部分先验和多初值搜索,报告失败比例而不只报告收敛成功样例。

14 · 来源、版本与未执行事项

已读固定v4的全部17页、Appendix A–C、全部Table1–8与Figures1–15。原笔记完整保留,新内容追加为合并候选;未改用户vault、People或共享索引。浏览器验收按用户最新指令延期,没有把静态检查说成实际渲染通过。

官方代码为本次只读获取的当前版本,不保证等同论文每个实验的提交。没有下载大型数据集或checkpoint,也没有运行训练。原图表署名Wang et al.;公式解释、离群值重算和研究延伸为本次精读。