We present a fast and simple technique to convert images into a radiance surface-based scene representation. Building on existing radiance volume reconstruction algorithms, we introduce a subtle yet impactful modification of the loss function requiring changes to only a few lines of code: instead of integrating the radiance field along rays and supervising the resulting images, we project the training images into the scene to directly supervise the spatio-directional radiance field. The primary outcome of this change is the complete removal of alpha blending and ray marching from the image formation model, instead moving these steps into the loss computation. In addition to promoting convergence to surfaces, this formulation assigns explicit semantic meaning to 2D subsets of the radiance field, turning them into well-defined radiance surfaces. We finally extract a level set from this representation, which results in a high-quality radiance surface model. Our method retains much of the speed and quality of the baseline algorithm. For instance, a suitably modified variant of Instant NGP maintains comparable computational efficiency, while achieving an average PSNR that is only 0.1 dB lower. Most importantly, our method generates explicit surfaces in place of an exponential volume, doing so with a level of simplicity not seen in prior work.
- 「只改损失函数」这句话到底改了什么,为什么改一处就够。
- 前人三条线:演化一个面、从体积里提几何、优化「面的分布」。
- 单候选:把光线上的一个点当成一个面,以及为什么「混色再监督」推不动二值占用。
- 多候选与两条求和:逐光线求和,再对全部参考像素求和。
- 背景面从哪来:自由飞行分布,与那条带连乘的聚合局部损失。
- 把损失写成 NeRF 的样子(上):连续期望链与三个下划线项。
- 把损失写成 NeRF 的样子(下):离散化、权重项不求导,与七步化简。
- 背景分布的设计空间:颜色相关分布。
- 体积松弛:让「面」在难处退回「体」,以及两条工程约束。
- 定量结果:七张表、两处性能账,与一个反直觉的连带效应。
- 定性结果:占用场、直接提取、正则与重建质量。
- 边界与反例:作者自陈的六条限制(扩成八条)。
- 这篇论文的三条贡献。
- 出处、许可与怎么读这篇。
1只改损失函数:从「混色再监督」到「监督混合后的损失」
这一章把话说清楚:这篇论文解决的问题、它的解法有多窄、以及那个解法为什么够用。它没有换表示,没有换渲染管线,没有加网络,它只换了一个位置,把「算损失」这一步从图像空间搬进了场景里。
1.1 表面表示的两难
从一组照片里重建表面,是个老问题[§1, p0]。表面表示之所以诱人,是因为它贴合物体的物理实在,而且便于编辑、便于动画、便于高效渲染,这三点解释了它在三维图形里的近乎无处不在[§1, p0]。但它的代价写在优化的地形上:可微渲染出来的表面,损失地形是非凸的、密布局部极小,于是这类方法往往脆弱到处理不了复杂的真实场景[§1, p0]。
这个困难来自结构层面,与实现细节无关。 原文点了两个来源[§2, p1]:
| 来源 | 具体表现 |
|---|---|
| 损失地形复杂 | 表面在演化,每一步的可行域都跟着变 |
| 可见性梯度难算 | 边界处导数有数值困难,需要专门的重参数化或特殊处理 |
第二条的后果比第一条更硬:原文说,如果没有精巧的特殊处理,优化在需要拓扑变化时会失败,或者在表面与目标形状不重叠时会失败[§2, p1]。这两种情形的后果都超出「难一点」的程度:直接做不下去。
体渲染绕开了这一切。 换成连续体积表示光传输之后,导数不仅更好算,而且损失地形更平滑,带来更强的鲁棒性与可扩展性[§1, p1]。NeRF 与 3DGS 走的都是这条路[§1, p1]。
但绕开是有账要付的:表面提取变得更绕,需要额外的启发式,要么加表面促进的正则(NeuS 一类),要么搞多阶段优化(SuGaR 一类)[§1, p1]。
于是摆在面前的是一道三选二:
| 想要 | 得到 | 代价 |
|---|---|---|
| 稳健、快、可扩展 | 体渲染 | 提面要启发式,付出额外复杂度 |
| 天然的面 | 表面表示 | 损失地形难、可见性梯度难算、拓扑变化直接失败 |
本篇要的是两样都要,而且用的是最省的做法。
1.2 主张:优化「面的分布」
原文的主张只有一句[§1, p1]:优化一个「面的分布」(optimizing a distribution over surfaces)。落到操作上是两步:
- 把训练照片投进场景;
- 最小化「投进场景后的光场」与「从面分布里发出来的空间方向性辐射」之间的、被衰减过的差[§1, p1]。
这两句话就是全文的骨架,第 3 章到第 7 章都在拆它。
这么做换来了什么,原文给了两条[§1, p1]:
- 辐照度场损失把光线上的每个点都当成一个候选面,各自独立地优化去匹配那条光线的像素颜色,这就是想要的「面的分布」;
- 光线上的点因此拿到互相独立的梯度:一个点的颜色或密度可以同时在涨、另一个在跌。
第二条是与体渲染最本质的差别。体渲染在算损失之前就把颜色沿光线积起来了,于是如果积出来的颜色偏暗或偏亮,整条光线上的所有点会收到同号的梯度,调整是相关的[§1, p1]。本篇把损失放到积分之前,每个点各管各的。
1.3 图 1-1:成像模型的两种画法
图 1-1 左半把这件事画成了两条流水线,这是全文最值得先看的一格。
(a) NeRF 与 (b) Ours,两条流水线分别标 Color accumulation/Loss computation,另外四条时耗标注是 10 seconds training/10 seconds/10 seconds/30 seconds;右半标 Stump/Bonsai/Pigeon 三场景,两行分别是表面渲染与 Surface normal。 ②读法:先看左半两条流水线的方块顺序,这是全图唯一的判别点。(a) 一侧是先 Color accumulation(沿光线把颜色累起来)再 Loss computation(拿累出来的图和照片比);(b) 一侧是把这个顺序倒过来,损失先算、混合在后。顺序一换,「一条光线该出什么颜色」这个问题就从渲染问题变成了优化问题。右半三场景看的是表面渲染与法向两行:法向那一行平滑、没有体渲染常见的絮状残留,说明几何是收敛的。四条时耗标注(10 seconds training 与 10 seconds/10 seconds/30 seconds)是对「快」的旁证。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 1, p0 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:把左半两条流水线摊开,就是后面所有公式的入场券。
| 一侧 | 顺序 | 对应公式 |
|---|---|---|
| (a) 体渲染 | 颜色先沿光线混合 ⇒ 得到像素色 ⇒ 与目标色比 | 式 (1):ℓ(αp Lp + (1−αp) Lb, L_target) |
| (b) 本篇 | 每个候选面各自与目标色比 ⇒ 得到各点的损失 ⇒ 损失沿光线混合 | 式 (2) 与式 (5):L(p) = αp ℓ(Lp) + (1−αp) ℓ(Lb) |
这张图上那一格 Color accumulation 的位置,正对应着本篇要删掉的东西:alpha 混合与光线步进。原文的总结是,这一改动带来的首要结果是把这两步从成像模型里彻底移除,改而放进损失计算[Abstract, p0]。
④边界:这是 teaser,不是定量证据。图上没有基线对照、没有数字,只有时耗标注;「只低 0.1 dB」这个读数在表 1(第 10 章),三场景的优劣也不在这张图上。另外四条时耗标注只是「秒级」的量级提示,不要当成训练时长的完整账(完整账在表 2 与图 19)。
1.4 图 2-1:全文的核心对比图
图 2-1 是这篇文章的名片,它把第 1.3 节那张流水线的差别压成了一句口号:左边 blend colors,右边 blend local losses。
NeRF 与 Ours(字族是无衬线、字号 10.1 pt,与章标题同档);两条路线各自标 blend colors 与 blend local losses,并各有一个 Minimize。 ②读法:只看两个动词的位置就够了。左边是「先 blend colors,再 Minimize」;右边是「先把每个点的损失算出来(blend local losses),再 Minimize」。同样是混合与最小化,谁在前谁在后,决定了输出是「一张图」还是「一个面的分布」。右边那句图注里的关键词是 marching cubes,它说明这一侧的产物天然是一个可以提面的场。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 2, p1 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:这张图的两个方向,在附录 A 里被证明是同一件事的两种写法。原文把损失的期望一路化简,最后得到「与主文图 2 里那个损失完全等价」的形态[附录 A, p11]。也就是说右边那一侧是等式,而不是近似。这一点值得记住:第 6、7 两章做的全部工作,就是在补这个等号。
④边界:这张图是概念图,不是流程图。它没有画数据怎么流、没有画网络结构、也没有画采样策略;图上那两个 Minimize 不代表两套训练流程的复杂度相当。另外它出现在 §1(引言)里,但它要说明的东西在第 3 章才被正式推导,第一次读可以只看「谁在前谁在后」,推导留给第 3 章。
1.5 这条路的账:小改动与大后果
原文反复强调改动之小。摘要里说只改几行代码[Abstract, p0],引言里说 Instant NGP 上的概念验证实现只改动了核心算法里的少数几行代码[§1, p1]。第 5 章会照录那张伪码对照图作为这项主张的证据。
后果却不小。原文在引言末尾把账结了一次:平均 PSNR 只比体渲染基线低 0.1 dB[Abstract, p0];在 PSNR 对时间的口径下跑得大致同样快[§1, p1]。0.1 dB 这个数值得放进语境里看:体积表示天生自由度更多,那些多出来的自由度本来就可以被拿去拟合逐像素的颜色[§4.1, p4],所以「低 0.1 dB」意味着把多余自由度换成了面,而不是能力不足。
这一章到此为止。下面三章(第 3、4、5 章)逐步把损失推出来,第 6、7 两章补上等号。
2前人三条线与本文的位置
这一章走三条线。原文自己就是这么分的:演化一个面、从体积里提几何、优化「面的分布」[§2, p1]。三条线各有各的死法,而本篇站在第三条线的延长线上,准确地说,它接的是一个很新的概念。
2.1 第一条线:演化一个面
最早的可微渲染工作走的是最直白的路线:给一个初始形状猜一个解,然后用梯度下降优化它[§2, p1]。表示方式换过好几轮[§2, p1]:
| 表示 | 代表 |
|---|---|
| SDF 水平集 | Zhang 等 2021、Vicini 等 2022、Wang 等 2024 |
| 三角网格 | Nicolet 等 2021 |
| 点 | Chen 等 2024b |
| 混合表示 | Munkberg 等 2022 |
但换表示解决不了问题。原文的判断是,无论底层表示是什么,这条路都很难做到令人满意的结果[§2, p1]。原因分成两半[§2, p1]:
- 一半是演化中的表面损失地形复杂;
- 另一半是算可见性导致的导数有数值困难(Loubet 等 2019;Zhang 等 2020、2023)。
后果就是两个具体的失败场景:需要拓扑变化时优化失败(Mehta 等 2023),表面与目标形状不重叠时优化失败(Xing 等 2023)[§2, p1]。
本篇对这条线的处理是「换掉问题的提法」:把「表面边界」换成「面的分布」[§2, p1]。注意这句话的分量:它把这条线遇到的问题(边界)从问题里直接拿掉了,而不是给这条线打补丁。
2.2 第二条线:从体积里提几何
NeRF 出现之后,研究者开始给辐照度体积加各种正则与参数化,目的只有一个:让它的水平集能给出像样的几何[§2, p2]。随后几何可以用 marching cubes 这类成熟算法提出来。
这条线的问题是账算不过来[§2, p2]:
| 一侧 | 读数 |
|---|---|
| 高效的 NeRF 实现 | 秒到分钟级重建(Instant NGP) |
| 上面那一类工作 | 要几小时(Li 等 2023),或者质量明显下降(Wang 等 2023) |
这正是本篇的落点:原文说本篇基本保住了基线 NeRF 方法的重建速度与质量[§2, p2]。
这条线里还有一段关于「细节该归给谁」的讨论,值得单独记[§2, p2]:真实重建任务里,精细细节到底该算作局部颜色变化、还是几何特征,常常是含糊的;最优选择取决于应用更看重新视角合成、还是更看重光滑的表面几何。原文据此把自己摆成两种用法[§2, p2]:
- 看重新视角合成时:本篇是即插即用的替代(例如 MobileNeRF 那一类);
- 需要更光滑的几何时:本篇提供一个轻量 Laplacian 正则,保住效率,同时给出与复杂得多的方法可比的结果。
这段是全文边界(第 12 章)的第一块拼图:本篇的定位不是几何指标竞赛,这一点作者后来在 §5.3 又重申了一次。
2.3 第三条线:优化「面的分布」
这条线离本篇最近。已有若干工作把体渲染看成「优化一个面的分布」[§2, p2](Seyb 等 2024;Miller 等 2024;Wang 等 2021)。
但它们的表示与本篇的目标冲突[§2, p2]:这些方法把物体表示成多个相互作用的面,沿光线把各自的贡献积分起来,而本篇的终点是从表示里提一个单一的面去建模物体几何。一个要把多个面的贡献叠起来,一个要一个面,方向相反。
于是本篇换了个源头:它接的是 Zhang 等 2024 提出的 many-worlds(多世界) 概念,那个工作考虑的是互不作用的面构成的分布[§2, p2]。原文把 many-worlds 搬到辐照度面重建上,并且指出在这个语境下 many-worlds 会给出一条与 NeRF 框架对偶的简单方程[§2, p2]。
这一步的重要性值得强调:本篇不是「第一个想到把体渲染看成面分布的人」,它是第一个把「互不作用」这个条件抬到台面上的人。第 3 章式 (2) 那句「混合损失而不是混合颜色」,本质就是「互不作用」在公式里的落法。
2.4 本篇的位置:一张表
| 线 | 想要什么 | 卡在哪 | 本篇的处置 |
|---|---|---|---|
| 演化一个面 | 天然的面 | 损失地形 + 可见性梯度;拓扑变化与不重叠直接失败 | 把「边界」换成「分布」,边界导数不用再估 |
| 从体积提几何 | 稳健 + 可扩展 | 提面要启发式;要么几小时、要么质量掉 | 保住速度与质量,提面取一个水平集即可 |
| 优化面的分布 | 面的分布 | 已有做法是「多个相互作用的面」,提不出单个面 | 取 many-worlds 的「互不作用」,得到与 NeRF 对偶的方程 |
2.5 一条时间线:三条线是怎么岔开的
把三条线按时间摊开,能看出本篇站在哪个岔口上:
| 时间 | 发生了什么 | 留下的问题 |
|---|---|---|
| 可微渲染早期 | 直接对形状猜一个解再梯度下降(SDF/网格/点/混合表示轮番上场) | 损失地形复杂 + 可见性梯度难算 ⇒ 拓扑变化与不重叠场景直接失败 |
| NeRF 之后 | 改用连续体积表示光传输,导数好算、地形更平滑 | 提面变成启发式问题(加正则或搞多阶段) |
| NeRF 提几何这一支 | 给体积加正则与参数化,让水平集像几何 | 代价是时间或质量(几小时,或质量明显下降) |
| 「面的分布」这一支 | 把体渲染看成面的分布优化 | 已有做法是「多个相互作用的面」,与本篇「提单个面」的目标冲突 |
| many-worlds(2024) | 提出「互不作用的面分布」 | 用在 PBR 逆渲染上,带全局光照、要嵌套积分 |
| 本篇 | 把 many-worlds 搬到辐照度面重建 | 靠「光线到最近相交面」的 1:1 映射换来简单(代价见第 12 章第 ⑧ 条) |
这张表最值得记的是最后两行:本篇与最近的那个前作(PBR-MW)的关系是「换问题」,而不是「改进」。同一个核心想法(互不作用的面分布),一个落在带全局光照的 PBR 上,一个落在只有直接映射的辐照度场上。** 第 12 章第 ⑧ 条会把这条边界讲完。
另外补一句背景:原文在 §2 开头就声明这是一篇「挑最相关的来点」的综述,不是穷尽式综述,而且只覆盖可微渲染,略过轮廓雕刻(silhouette carving)这类经典技术[§2, p1]。读到「前人只列了这么几家」时,要记得这个口径。
第 3 章开始推导。
3单候选:把光线上的一个点当成一个面
这一章要建立的是一个很小的转向:让「面」这个概念从「一条边界」变成「一个概率」,然后让损失函数去推这个概率走向两端。
3.1 非局部扰动:在可见面上方放一个小片
动机很具体[§3.1, p2]:对渲染结果求关于几何的导数,能告诉我们小的几何扰动如何影响成像,但这些导数只在表面上非零,于是用在优化里会带来收敛问题[§3.1, p2]。
从这条限制上翻出去的办法是:考虑在已有可见面上方的一段距离处放一个小面片会怎样[§3.1, p2]。这个改动同样影响成像,而且可以看成「一个更一般的非局部导数」的扰动[§3.1, p2]。原文点出这个概念不是第一次出现:Mehta 等 2023 用它在 2D 矢量图形里成核新形状,Zhang 等 2024 把它用在基于物理的渲染里[§3.1, p2]。
在扩展后的定义域上优化面,治好了前面说的两个病[§3.1, p2]:
| 病 | 为什么这么治就好了 |
|---|---|
| 更新被约束在面上 | 更新不再被约束在面上 ⇒ 能在一个更高维的损失地形里更快、更稳地收敛 |
| 边界导数要专门估 | 算边界导数的复杂专门方法被消除 ⇒ 实现变简单,性能还更好 |
一句话:把「面」从几何对象换成一个在整个空间里有取值的场,边界就不再是需要特殊处理的部位。
3.2 几何表示:占用场
非局部扰动需要一个铺满整个空间的表示[§3.1, p2]。本篇用的是占用场(occupancy field,Mescheder 等 2019;Niemeyer 等 2020),它编码一个位置 x 被占据的离散概率:
α(x) = Pr{ x 落在物体内部 } ∈ [0, 1] (原文 §3.1 的未编号式)[§3.1, p2]
收敛之后该场应当满足:面上趋近 1、外部为 0[§3.1, p2]。原文特别交代了一句:占用场的具体选择有一定的随意性,这篇工作的重心是优化几何,与表示的具体细节无关[§3.1, p2]。
这句话是一条免责声明,也是一个定位:本篇不打算在「占用场该用什么参数化」这件事上竞争,它只关心损失怎么算。
3.3 式 (1):体渲染口径,以及它为什么推不动二值
单候选的场景是这样[§3.2, p2]:一条光线上,位置 p 处有一个候选面片(颜色 Lp、占用 αp),它位于一个背景之前(背景颜色 Lb)[§3.2, p2]。这一小节先假设颜色 Lp 与 Lb 都是固定的[§3.2, p2]。
最优解其实一眼可得[§3.2, p2]:如果这个候选面能让匹配更好就创建它,否则就丢掉它。而占用参数 αp 就是实现这件事的手段[§3.2, p2]。问题在于把它接进损失的方式有好几种。
标准体渲染的做法(对应图 3-1 的 a)把 αp 当作不透明度的 alpha 合成,最小化形如下的颜色差:
式 (1) 的死穴是一句话就能说清的[§3.2, p2]:它无法推动占用值走向二值。当最好的一次匹配恰好落在 Lp 与 Lb 的某个混合上时,损失到零了,却没有形成任何明确的面[§3.2, p2]。
这句话值得停一下。损失为零、几何为空,这是优化目标与几何目标不一致,而不是优化没收敛。原文接着说了常见的补救:加额外的损失项去惩罚这种行为,但这样做缺乏有原则的理论依据,还以超参的形式添了复杂度[§3.2, p2]。
3.4 式 (2):二值选择,混合损失而不是混合颜色
本篇的解释是:把非局部扰动看成一个二值选择。候选面要么存在,要么不存在[§3.2, p2]。于是该光线对应的最终颜色,要么是候选的 Lp,要么是背景的 Lb**(对应图 3-1 的 b)[§3.2, p2]。
两种可能性的质量用 ℓ 来量,然后去找使下面这个量最小的占用值 αp ∈ [0, 1][§3.2, p2]:
式 (1) 与式 (2) 的差别只有一个词序,但后果是本质的:
| 式 (1)(体渲染口径) | 式 (2)(本篇) | |
|---|---|---|
| 混合的对象 | 颜色 | 损失 |
| 混合发生在 | 比较之前 | 比较之后 |
| 对 α 的推动 | 没有:混合色一匹配,α 就停在中间 | 有:谁的目标更近,α 就往谁那边走 |
| 结果的语义 | 一个不透明度 | 一个选择 |
原文对式 (2) 的总结只有一句:通过混合两个面的损失而不是它们的颜色,这个方法选出那个最能解释目标色的面[§3.2, p2]。「选出」这个词是关键,它是离散语义,不是插值语义。
一个必须交代的简化:这一小节的例子假设候选颜色 Lp 是静态的。实际上 Lp(而 Lb 不是)也参与优化,这需要多个视角才能消解歧义[§3.2, p2]。它是第 5 章「随机背景」与第 8 章「颜色相关分布」的伏笔。
3.5 图 3-1:非局部扰动的唯一证据
图上 (a) 与 (b) 的中间那一档存不存在,是本篇这两条路线唯一的分界。
Alpha-blending/Opaque/Semi-transparent,另有 (b) Binary choice。 ②读法:(a) 与 (b) 的判别点是「中间那一档存不存在」。(a) 一侧明确画出了 Semi-transparent 这个中间档,半透明就是不透明度的中间值,它是混色的必然产物;(b) 一侧画的是二选一,没有中间档。图注最后那句话是这张图的结论:训练完的结果不是随机的,但从不混合多个面的贡献,随机性只在优化过程中出现,是探索手段,不是最终答案。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 3, p2 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:这张图对应式 (1) 与式 (2) 的对照,判别点就是 Semi-transparent 这一档的去留。把它与第 9 章的图 10-1 连起来看会更有意思:体积松弛做的正是「在难处把 Semi-transparent 这一档放回来」,所以图 3-1 与图 10-1 是同一枚硬币的两面。
④边界:这是机制示意图,不是实验结果。图上没有数字、没有场景名,不要用它判断方法的强弱。另外图上 (a) 侧那几个标签是对「颜色混合的不同程度」的枚举,不是三种方法的名称。
3.6 这一步到底换掉了什么
把式 (1) 与式 (2) 的差别摊到「它改变了几件事」这个层面,能看清为什么这条改动值得单独写一节:
| 维度 | 式 (1) 的世界 | 式 (2) 的世界 |
|---|---|---|
| α 的语义 | 一个不透明度:可以在 0.3 这样的中间值上稳定下来 | 一个选择概率:损失会把它推向 0 或 1 |
| 「面」在哪 | 面是 α 高的区域,边界位置含糊 | 面是 α → 1 的区域,边界由损失自己定出来 |
| 要不要额外正则 | 要(否则中间值会长期存在) | 不要(原文明确说加正则只是治标且添超参)[§3.2, p2] |
| 梯度往哪走 | 沿光线积分之后再比 ⇒ 同号、相关 | 每个点各自比 ⇒ 互相独立 |
| 最终产物 | 一个体积,面要靠提 | 一个面的分布,面取水平集就有 |
最要紧的一行是「梯度往哪走」。原文在 §1 里把这件事讲得很白:体渲染在算损失之前就把颜色沿光线积起来了,于是如果积出来的颜色偏暗或偏亮,整条光线上的所有点会收到同号的梯度;本篇让每个点各管各的[§1, p1]。同号意味着「一起亮、一起暗」,独立意味着「有人亮、有人暗」,后者才能让一条光线上同时出现「这里加一个面、那里去掉一个面」。
这也解释了为什么式 (2) 能被叫作「表面重建算法」而不是「另一种体渲染」[§4.1, p4]:它优化的对象从一开始就是「每个点该不该成为一个面」这个离散问题。
4多候选与两条求和
这一章只做两件事:把单候选推广到多候选,再把单条光线推广到全部光线。两件事都是「相加」,但加的对象不一样。
4.1 式 (3):每个候选都是独立子问题
单候选损失的关键性质是它把候选与背景隔开[§3.2, p3]:观察时要么看这一个、要么看另一个。
推广到多候选有明确的好处:它让算法能同时评估若干个扰动的效果,从而加速收敛[§3.2, p3]。推广的办法是保住刚才那条性质。把每个候选当成一个独立的子问题**(对应图 4-1),最小化各自损失之和[§3.2, p3]:
| 符号 | 含义 |
|---|---|
| r | 一条光线 |
| m | 这条光线上采样到的候选数 |
| L(pi) | 第 i 个候选的损失(沿用式 (2) 的口径) |
求和号的位置就是「独立」这个词的落法:每个候选各自算损失,再相加。它没有把它们合成一个颜色,也没有引入任何耦合项。
4.2 式 (4):从一条光线到全部光线
重建任务要在一大批光线上评估损失 (3)[§3.2, p3]。原文的记法是光线 rk(k = 1, …, n),其中 n 表示所有参考图的总像素数[§3.2, p3]:
这一步又扩大了一层「独立考虑的候选面」的集合[§3.2, p3]。注意 n 的口径:它取的是全部参考图加起来的总像素数,而不是视角数或光线采样数,每一个像素对应一条独立光线,每条光线上有一批互相独立的候选。
4.3 图 4-1:候选是独立子问题
下面这张图把式 (3) 的求和号画了出来:那几个子问题是并列的。
candidates 与 background,另标 Subproblem 1 与 Subproblem 2。 ②读法:看 Subproblem 1 与 Subproblem 2 是并列的还是串联的。它们是并列的,这正是式 (3) 那个求和号的形状;如果它们串联(后一个依赖前一个的中间结果),式 (3) 就会变成递推式。另一个看点是图注最后半句「局部损失分散在整个场景里」:这说明损失不是逐像素聚合后才有意义,它在空间上本来就是一堆分散的局部项**。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 4, p3 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:式 (3) 的求和号对应图上的 Subproblem 1/Subproblem 2 并列。这一步是第 6、7 章那个等号的左侧起点:附录 A 从式 (3) 的期望出发,一路化简到式 (14)。这张图上那几个并列方块,正是后面九条式要处理的对象。
④边界:图上只画了很少几个候选,不要当成实际采样数。真实的 m 是沿光线的采样点数(第 9 章会交代两条相关工程设置)。另外这张图没有画「候选之间会不会互相遮挡」,在 many-worlds 设定里它们互不作用,这靠公式而不是靠图保证。
4.4 一个语义上的分水岭
原文在 §4.1 里特意把语义差别说了出来[§4.1, p4]:这一相似性也暗示本篇的优化地形与 NeRF 相似,因而继承了它的鲁棒性。但两者的损失在「要求什么」这一点上不同:
| 要求 | |
|---|---|
| NeRF 的损失 | 监督一条光线上所有采样点合起来匹配目标色 |
| 本篇的损失 | 要求每个采样点各自匹配目标色,或者在背景更合适时变成透明 |
原文对这条差别的定性只有一句:这一区别从根本上把本篇定义为一种表面重建算法[§4.1, p4]。它解释了为什么「损失沿光线混合」这件事会通向一个面:因为每个点都被单独要求表态。
4.5 两条求和为什么不能合成一条
式 (3) 与式 (4) 看起来都是「求和」,很容易被当成同一条式子的两层写法。 它们不是,两条求和的语义完全不同:
| 式 (3) | 式 (4) | |
|---|---|---|
| 外层求和对象 | 一条光线上的 m 个候选 | 全部 n 条光线 |
| 求和的物理含义 | 同一条光线内,候选之间互不作用(many-worlds 的核心条件) | 不同光线之间互不作用(这一层几乎所有方法都默认) |
| 少了它会怎样 | 变成「把候选合成一个颜色」⇒ 退回式 (1) 那一侧 | 变成单条光线的局部损失 ⇒ 无法训练整个场景 |
| 它约束了什么 | 禁止候选之间产生耦合 | 允许逐光线并行计算 |
第二行是这一章的重点。many-worlds 的「互不作用」这个条件,在公式里的落点就是式 (3) 那个求和号。如果换成任何形式的加权组合(比如先按透过率把各候选合成一个颜色再比),就回到了体渲染;如果引入候选之间的依赖项(比如后一个候选要吃前一个的结果),就变成递推结构,两种都偏离了本篇。
式 (4) 那一层则很平常:它只是把损失在整个数据集上铺开。注意原文对 n 的定义(所有参考图的总像素数)[§3.2, p3], 它不用「视角数 × 每视角像素数」这种更绕的写法,而是直接把总像素数当一条轴,这也暗示了实现上是逐像素并行。
4.6 这一章省下的一件事
把式 (3) 与式 (4) 对照第 3 章的式 (2),会发现一个好处:整条损失函数里没有出现「先合并、后比较」这个动作。每一步都是「先比较,再把比较的结果合并」:
- 式 (2):先比(ℓ(Lp) 与 ℓ(Lb)),再按 α 合并;
- 式 (3):每个候选各自算完,再相加;
- 式 (4):每条光线各自算完,再相加。
这三步是同一个模式叠了三次。 而体渲染那一侧的模式恰好相反(合并 → 比较),这就是图 2-1 那两个词的真正含义,blend colors 与 blend local losses 不是修辞,它指的是「先算损失还是先混色」这一个选择被重复用在了每一层。
5背景面从哪来:自由飞行分布
到这里损失函数还差一块:背景面(也就是 Lb)由谁充当。
5.1 为什么背景不能是确定性的
原文的取舍很明确[§3.3, p3]:不用确定性的面(比如占用场的某个水平集),而是从「每条光线一个」的分布 fb 里抽背景。这么做的收益写得很直白[§3.3, p3]:
- 它允许偶尔穿过高占用区域「看见」,于是被遮挡的物体也能被当作背景(对应图 5-1);
- 于是复杂拓扑变化被支持,而且不用显式去处理它们(Mehta 等 2023;详见附录 C)[§3.3, p3]。
第二条正是第 2.1 节那条线栽的地方。靠演化边界的方法在需要拓扑变化时会失败;本篇的办法不是把拓扑变化算出来,而是让它「自己发生」,因为背景是抽的,遮挡关系就不是固定的。
5.2 式 (5):自由飞行分布与那条聚合损失
分布的设计很自由[§3.3, p3]。原文先给了一个最直接的做法:优先在高占用区域采样,因为这些地方更可能是表面。
具体机制:沿光线行进时,按占用值随机决定是否把当前位置用作背景面。原文指出这个序贯决策过程反映的正是自由飞行距离(free-flight distance)的概念(Novák 等 2018)[§3.3, p3],于是这个分布被叫作自由飞行背景分布。
对这个分布,损失可以解析地写出期望,并导出一个与经典体渲染光传输同构的、聚合的局部损失[§3.3, p3]:
5.3 式 (5) 怎么读:透过率 × 占用 × 损失
式 (5) 是全文最重要的一条式子,因为它第一次把「面」与「可见性」装进同一个乘积里:
| 片段 | 含义 |
|---|---|
| ∏j=1i−1 (1 − αpj) | 从相机走到第 i 个候选沿途一路没被挡住的概率,也就是透过率 |
| αpi | 第 i 个候选自己被占据的概率 |
| ℓ(Lpi) | 第 i 个候选自己的颜色与目标色的差 |
三者相乘,物理含义完整:光要走到这个候选(透过率)、这个候选要存在(占用)、存在了它还得好(损失)。与经典体渲染对照,同构关系立刻出现:
| 经典体渲染 | 本篇式 (5) | |
|---|---|---|
| 连乘项 | 累积透过率 T | ∏(1 − αpj) |
| 中间项 | 该处的 σ 或 α | αpi |
| 末项 | 该处的辐射亮度 L | 该处的损失 ℓ(Lpi) |
最后一行的替换就是全文的全部内容:把「颜色」换成「损失」。原文的交代是:把式 (5)代回式 (4) 就得到辐照度场损失(图 2 里那个损失),完整推导在附录 A[§3.3, p3],这是第 6、7 两章要补的等号。
5.4 图 5-1:随机背景的唯一证据
下面这张图对应式 (5) 的连乘项,重点在高占用区域是怎么被绕开的。
background。 ②读法:看「高占用区域」是怎么被绕开的。如果背景固定在第一个超过阈值的面上(确定性策略),光线就在这里停住;随机抽样则允许它偶尔继续往里走,于是被遮挡的那一层有机会被当成背景。图注最后一句「取期望得到一个确定性表达式」是这一章的技术核心,随机性只是推导工具,最终实现的是式 (5) 那样一个不含随机量的闭式。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 5, p3 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:图上的「随机抽背景面」对应式 (5) 的连乘项。取期望这一步的收益有两处:① 它把随机过程换成闭式,实现里不含随机量;② 它让权重项天然不可导,第 6 章的式 (7) 会把这件事单独标出来(weight 那一下划线)。这两点在第 7 章会合并成一句工程结论:期望不该改变损失地形,所以权重项不参与求导。
④边界:这张图不表示「最终结果带随机性」。图注已说明最终是确定性表达式,图 3-1 的图注也说过「最终重建不是随机的」。另外这里的随机性是「序贯」的(沿光线行进时逐步决定),不是一次性抽一个深度,这个区别决定了它能写出连乘形式的闭式解。
5.5 照录:原文那张伪码对照
「改动只有几行」这个说法,原文给的证据是一张图。它出现在 §3.3 的 Implementation 小节里,由一句正文引入:本篇的损失函数可以安排成与标准体渲染方法(如 NeRF)的颜色混合结构相似;因此接进既有代码库极其简单,正如下面的伪码对照所示[§3.3, p3]。
NeRF 与 Ours(无衬线 7.7 pt)。 ②读法:两列从上往下对着看,找分歧点出现在哪一步。左列走的是「先沿光线把颜色累起来、再拿去和照片比」,右列走的是「每个采样点各自算出损失、再混合」。分歧只出现在一处,其余部分是同一套取样与累加骨架,这正是「只改几行」的字面意思。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, p3 右栏(原文未编号)· © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导(三条前提注释):
- 它没有
Algorithm N标号、没有图注、没有外框。全篇交叉引用普查里Alg命中 0 处,所以任何按「算法编号」索引它的做法都会失败;引用它只能按页码与栏位(p3 右栏)。 - 它是位图,图内 0 行可抽文字。也就是说它抽不出源码,只能按像素照录,因此不适用「原文没有则自拟并注明」那条:这里有现成的对照图,只是不是可抽取的文本。
- 它由正文
as illustrated in the following comparison of pseudocode.(p3 右栏 y560.5)引入,而紧接其后的那一段话才是它的注解[§3.3, p3]:NeRF 的损失要求整条光线上的采样点合起来匹配目标色,本篇的损失要求每个采样点各自匹配、或者在背景更合适时变成透明。读这张图必须配上这段话。
④边界:这不是一份可直接运行的实现。它是对照示意,没有语言、没有变量声明、也没有省略号提示;原文所谓「几行代码」指的是核心算法里被改动的行数,不是整个实现的规模。另外它只覆盖了损失这一处,工程上的两处非平凡修改在附录 E(第 9 章交代)。
5.6 主线到这里闭合了一半
| 步骤 | 式子 | 做了什么 |
|---|---|---|
| 单候选 | 式 (1) → 式 (2) | 把「混合颜色」换成「混合损失」 |
| 多候选 | 式 (3) | 每个候选独立算损失,再相加 |
| 全部光线 | 式 (4) | 对全部参考像素求和 |
| 背景面 | 式 (5) | 引入自由飞行分布,得到带透过率的闭式 |
5.7 与体渲染的逐项对应
式 (5) 之所以叫「与经典体渲染同构」,可以一项一项对上:
| 体渲染里的角色 | 经典 NeRF | 本篇 | 差别 |
|---|---|---|---|
| 透过率 | Ti = ∏j<i(1 − αj) | ∏j=1i−1(1 − αpj) | 完全一样(都是「一路没被挡住」的连乘) |
| 局部不透明度 | αi | αpi | 一样 |
| 被积的量 | 辐射亮度 Li(颜色) | 损失 ℓ(Lpi) | 这是唯一的替换 |
| 最后一步 | 沿光线加权求和 ⇒ 得到一个像素色 | 沿光线加权求和 ⇒ 得到这条光线的总损失 | 求和的对象从颜色换成了损失 |
| 外层的监督 | 把求和结果(像素色)与照片比 | 没有外层比较(每个候选在求和前就已经比过了) | 比较的位置被挪到了里面 |
| 期望的引入 | 不需要(确定性) | 需要(背景是抽出来的,要靠期望转成闭式) | 这是本篇多出来的一层推导 |
这张表里有三行值得多看一眼:
- 「透过率完全一样」:说明遮挡关系在两种方法里的处理是一致的,本篇没有重新发明可见性。
- 「被积的量是唯一替换」:这就是全文那句话,把颜色换成损失。
- 「外层比较被挪到里面」:这是式 (2) 那条设计选择在整条推导链上的最终体现。比较位置一挪,监督就不需要聚合后的结果,于是 alpha 混合与光线步进也就没了用武之地。
而最后一行(期望)是本篇付出的额外代价,整个附录 A 都在还这笔账,还完之后得到的好消息是:它不需要额外采样(第 7.6 节)。
剩下的问题是:式 (5) 到底等不等于图 2 里那个「损失沿光线混合」的形态。第 6、7 两章就是那个等号的证明。
6把损失写成 NeRF 的样子(上):连续期望
附录 A 的目标只有一句话:把损失改写成 NeRF 的形式[附录 A, p10]。为什么要做这件事:一旦形态对齐,「接进既有体渲染框架」这句话就有了方程层面的对应。
6.1 先立两个记号
附录 A 开头做了两件预备工作[附录 A, p10]:
- 设 fb 是沿光线的背景面概率分布,且满足归一化条件 ∫0t_max fb(t) dt = 1;
- 为免啰嗦,把颜色误差度量 ℓ(L, L_target) 简写成 ℓ(L)。
第一条是概率论上的规矩(抽到的背景面总得落在光线上);第二条是纯记号约定,但它在第 7 章会变得重要,因为它意味着后面所有出现 ℓ(·) 的地方,目标色都被吃进 ℓ 里面了。
原文随后限定了讨论范围:不失一般性,只关注光线上距离 tp 处的那一个候选位置 p[附录 A, p10]。这就是图 13-1 画的东西。
6.2 图 13-1:推导的对象
下面这张图只承担一件事,把推导的几何设定固定下来。
③推导:这张图对应式 (6) 的积分区间。图本身不承担推导,它只固定一件事:候选在前、背景在后,所以积分从 tp 起算。
④边界:这是四张附录示意图里最简的一张(图注只有一句),没有坐标轴、没有刻度。不要试图从它读出数值;它唯一的用途是固定推导的几何设定。
6.3 式 (6):连续期望链
原文把「式 (2) 形式的损失在 p 处的期望」作为出发点[附录 A, p10],一路算下去,得到一条多行的等式链:
逐段读:
| 段 | 做了什么 |
|---|---|
| 第 1 段 | 按定义写期望:把 L(p) 对背景分布 fb 积起来,积分从候选位置 tp 起算 |
| 第 2 段 | 把式 (2) 代进去,展开成候选与背景两项 |
| 第 3 段 | 把常数项提出来:候选项 αp ℓ(Lp) 与背景位置无关,它对积分的贡献是「系数 × 权重」,而权重正是 1 减去候选之前那段分布的质量 |
第 3 段那个系数的形状值得单独看:1 − ∫0t_p fb(t) dt 就是「背景面落在候选之后」的概率。因为 fb 在整条光线上积分为 1,扣掉 0 到 tp 那一段,剩下的就是后面那一段。这就是后面 weight 项的来源。
6.4 式 (7):三个下划线项
原文引入一个记号:Et>tp[ℓ(Lt)] 表示 t > tp 时误差度量的期望[附录 A, p10]。用它重写上面的结果,就得到式 (7):
式 (7) 上有三个标注,它们是「这一项参不参与求导」的标记,不属于排版装饰[附录 A, p10]:
| 标注 | 项 | 含义 |
|---|---|---|
| weight | 1 − ∫0t_p fb(t) dt | 背景面落在候选之后的概率 |
| candidate | αp ℓ(Lp) | 候选面自己那一项 |
| background | (1 − αp) Et>tp[ℓ(Lt)] | 背景那一项,取的是期望 |
原文紧接着给了一段很重要的记账[附录 A, p10]:式 (7) 反映的是非局部扰动的一种聚合形式,背景色被当成对所有可能背景面的期望而不是一个固定值;weight 项捕捉的是「选中一个位于扰动位置之后的背景面」的概率;期望的计算不应该改变损失地形,所以 weight 项在优化中不应被求导。
最后那句话是这一章的技术要点。原文在附录 A 里用下划线 (·) 统一标注需要求导的项[附录 A, p10],式 (7) 上有下划线的项才参与反向传播。这是故意的设计:随机化只是为了写出闭式,它不该把梯度也一起改了。
6.5 这一步换来了什么
| 之前 | 现在 |
|---|---|
| 式 (5):一个聚合的局部损失,带连乘透过率 | 式 (7):三项相乘,weight 是概率、candidate 是自身项、background 是期望 |
| 怎么实现不清楚 | 哪一项求导、哪一项不求导,被明确标出来了 |
第 7 章做的是同一件事的离散版本:把连续积分换成沿光线的 m 个采样点,逐项化简,最后落到一个能在代码里直接写的形态。
7把损失写成 NeRF 的样子(下):离散化与七步化简
这一章是全文公式最密的一段(式 (8) 到式 (14),七条)。但路线很单一:离散化 → 展开 → 拆项 → 换序 → 合并 → 丢常数。
7.1 式 (8):离散形式
原文先在离散情形下分析:沿一条光线取 m 个采样点,假设背景服从自由飞行分布 fb;为简洁,把位置 pi 处的占用与颜色分别记作 αi 与 Li[附录 A, p10]。所有损失之和写成:
式 (8) 与式 (7) 的对应关系:
| 式 (7)(连续) | 式 (8)(离散) |
|---|---|
| 1 − ∫0t_p fb(t) dt | ∏k=1i−1(1 − αk) |
| αp ℓ(Lp) | αi ℓ(Li) |
| (1 − αp) Et>tp[ℓ(Lt)] | (1 − αi) Êt>ti[ℓ(Lt)] |
| 单个候选的期望 | Σi=1m(对全部候选求和) |
第一行的替换是整章的枢纽:连续的积分概率换成了离散的连乘透过率。这也解释了式 (5) 为什么长那样,它本来就是式 (8) 的简化形态。另外注意 Ê 上的帽子[附录 A, p10]:它标的是估计量,不是真值,这一点在第 7.2 节会被兑现。
7.2 式 (9):背景期望的闭式
式 (8) 里还留着一个期望 Êt>ti[ℓ(Lt)],它本来需要多采样才能估。原文把它展开成闭式[附录 A, p10]:
它的物理含义与式 (5) 是同一套:从第 i+1 个采样点开始,一路没被挡住(连乘)、在这里被挡住(αj)、挡住它的那个点的颜色误差(ℓ(Lj))。换句话说,式 (9) 就是「式 (5) 的后半段」。
它的价值会在第 7.6 节兑现:原文最后点明「不需要额外采样就能算出 Et>tp[ℓ(Lt)]」[附录 A, p11]。这是一条实打实的工程收益,期望不是靠多打光线换来的。
7.3 式 (10):用乘法法则拆成三项
式 (8) 里有乘积(透过率 × 括号内的两项),求导会生出多个项。原文先把损失拆成三块,记作 (a)、(b)、(c)[附录 A, p10]:
| 项 | 内容 | 由来 |
|---|---|---|
| (a) | Σi ( ∏k=1i−1(1 − αk) ) αi ℓ(Li) | Li 不参与求导的那一半 |
| (b) | Σi ( ∏k=1i−1(1 − αk) ) αi ℓ(Li) | αi 参与求导的那一半 |
| (c) | Σi ( ∏k=1i−1(1 − αk) ) ( (1 − αi) Êt>ti[ℓ(Lt)] ) | 背景那一项 |
(原文式 (10) 的标签打在 (c) 那一行上)[附录 A, p10]
把式 (10) 写成一行(三项相加,argmin 作用于整体):
注意 (a) 与 (b) 在写法上完全一样。它们的区别只在「哪一项带下划线」,也就是区别只在推导路径上,不在表达式上。这一点初读容易困惑,但它正是乘法法则的产物:乘积的两半各自求导一次,得到的形状相同。**
原文对 (a) 与 (b) 的说明是:这两项来自乘法法则的应用[附录 A, p10]。(a) 与 (b) 形式相同、差别在下划线:(a) 里的 Li 带下划线(求导)、αi 不带;(b) 里反过来。这个区分在工程上是要紧的,它决定了梯度往哪个变量上走。
7.4 式 (11)(12):换序与合并连乘
先处理 (c)[附录 A, p10]。原文说,对 (c) 的双重求和重新排序、再换名指标 i ↔ j 并化简,得到[附录 A, p11]:
再进一步化简,把两个连乘合并成一个跳过 k = j 的连乘[附录 A, p11]:
这一段的技术内容只有一个:两个「分段连乘」拼起来等于一个「挖掉一个点的连乘」。原来是「i 到 j 之间的透过率」,现在是「从 1 到 i−1 但不含 j」。为什么这么换:因为换完之后 (c) 与 (b) 的形状一致了,可以合并。
7.5 式 (13)(14):合并、丢常数、落地
把式 (12) 形态的 (c) 与 (b) 合起来[附录 A, p11]:
其中 c1 是一个常数值[附录 A, p11]。丢掉常数项不影响最小值的位置,于是把结果代回式 (10)[附录 A, p11]:
式 (14) 就是终点。原文对它的两句总结值得逐字记下[附录 A, p11]:
- 这个最终结果与主文图 2 里展示的那个损失等价;
- 而且现在也清楚:我们不需要产生额外的采样来求 Et>tp[ℓ(Lt)]。
第一句把第 5 章的等号补上了:从「演化的面」出发推导出的损失,与「体的分布」那一侧写出来的损失是同一个东西。第二句是一条工程结论:那个看起来需要多采样的期望项,在化简过程中被吸收掉了。
7.6 七步路线图
| 步 | 式 | 动作 | 一句话 |
|---|---|---|---|
| 1 | (8) | 离散化 | 连续积分换成连乘透过率 |
| 2 | (9) | 展开背景期望 | 期望写成不含额外采样的闭式 |
| 3 | (10) | 乘法法则拆项 | 拆成 (a)(b)(c),用下划线标明求导对象 |
| 4 | (11) | 交换双重求和 | 把 (c) 的求和顺序换过来 |
| 5 | (12) | 合并连乘 | 两个分段连乘 = 一个挖掉单点的连乘 |
| 6 | (13) | 合并 (b)(c) | 形状一致后相加,多余常数收进 c1 |
| 7 | (14) | 落地 | 得到与图 2 等价的最终形态 |
七步里没有一步是近似(除了最后丢掉常数 c1,而它不影响最小值位置)。这就是「只改几行代码」这句主张的严格版本。
7.7 这段推导里三个容易读错的地方
这段推导密度高,初读容易在三处翻车。把三个坑先标出来:
| # | 容易读错 | 正确的读法 |
|---|---|---|
| ① | 把 (a) 与 (b) 当成两项不同的损失 | 它们表达式完全相同。区别只在下划线(哪一项参与求导)。乘法法则把乘积的两半各求导一次,得到的形状自然一样** |
| ② | 以为 式 (9) 需要额外采样 | 式 (9) 是闭式:它把「t > ti 之后的期望」用同一批采样点逐项加起来,不需要为它多打光线[附录 A, p11] |
| ③ | 把 (c) 的两次变形当成两次近似 | 式 (11) 是交换求和顺序+换名指标,式 (12) 是两个分段连乘合并成一个挖掉单点的连乘。两次都是恒等变形**,没有省略任何项 |
第①个坑的后果最严重:如果把 (a)(b) 当成两项损失相加,就会以为损失里有两倍的候选项。 实际上一倍是「按候选颜色求导」,一倍是「按占用求导」,它们指向的是不同的变量,不是两个不同的项。
第③个坑值得展开一句:「两个分段连乘 = 一个挖掉单点的连乘」这一步之所以成立,靠的是乘积的可结合性:
| 形式 | 写开是什么 |
|---|---|
| 换序前 | (∏k=1i−1) × (∏t=i+1j−1),分成两段、中间漏掉 i 到 i+1 之间那一段 |
| 换序后 | ∏k=1, k≠ji−1 × (1 − αj),一整段,但把 j 抽出来单独写 |
这两个写法在数值上相等,因为它们覆盖的乘子集合是同一个。换句话说,这一步只是把同一个乘积换了一种写法,谈不上技巧,但它换完之后 (c) 与 (b) 的形状就对齐了,于是式 (13) 才能把它们相加。
7.8 这一章省下的东西,原文只说了一句
推导一路走完,原文只用一句话交代收益[附录 A, p11]:不需要产生额外的采样来求 Et>tp[ℓ(Lt)]。
这句话为什么重要,要放回第 5 章去读。如果这句不成立,那本篇的每一次迭代都要为「背景的期望」多打一批光线,代价会直接翻倍;而且那些额外光线本身也会进损失,整个「每点独立」的干净结构就毁了。
换句话说,附录 A 这一整段推导的实用价值,就是把一个看起来要花额外采样的量,换成了一个同批次就能算出来的量。 这也是原文敢说「只改几行代码」的底气所在,如果需要在采样循环外面再套一层期望估计,改动就不会是几行。
8背景分布的设计空间:颜色相关分布
前面一直把 fb 当成「已经给定的分布」。这一章问的是:这个分布还能怎么设计,以及设计得更聪明会带来什么。
8.1 这是一个利用与探索的取舍
原文把设计 fb 定性为「利用与探索之间的取舍」[附录 B, p12]。一端是稳妥:选一个靠近当前最优猜测的背景面(也就是高占用区),好处是只有能带来改进的扰动才会被接受[附录 B, p12]。一个极端例子是确定性策略:永远用 0.5 水平集;它的代价是,它会激进的把光线上第一个置信度超过 50% 的潜在面当作背景,忽略后面的一切可能[附录 B, p10]。
另一端是探索:探索更多可能性会提升算法在复杂遮挡场景里的鲁棒性;自由飞行分布是确定性策略的软化版。它不用阈值把占用场二值化,而是在光线行进中随机决定是否把某个面用作扰动背景**[附录 B, p11]。
| 确定性策略(如 0.5 水平集) | 自由飞行分布 | |
|---|---|---|
| 决策方式 | 阈值二值化 | 随机决定 |
| 找背景 | 第一个过关的 | 序贯地抽 |
| 拓扑变化 | 被遮挡的背景看不到 | 能穿过去 |
| 代价 | 忽略其余可能 | 需要推导期望(附录 A) |
本篇的取舍是明确的:主文用自由飞行分布,因为它能把「与 NeRF 的对偶关系」讲清楚;其余的设计留给未来工作[附录 B, p11]。
8.2 本篇独有的一种:颜色相关分布
原文说「还有很多其他设计」,并给出了一个本篇独有的[附录 B, p11]:颜色相关背景分布。它与自由飞行分布的差别只有一处:自由飞行分布只看占用值,而颜色相关分布还看每个潜在面与目标色的吻合程度 ℓ(Lp, L_target)[附录 B, p11]。
多出来的这点信息用来做一件事:丢掉那些占用值高、但与目标色吻合很差的表面,这类表面往往来自过于激进的优化。具体做法是在原始占用 α 上算一个有效占用 α′[附录 B, p11]:
α′ = α / ( 1 + c · ℓ(Lp, L_target) ) (原文附录 B 的未编号式)[附录 B, p11]
这条式子的行为很清楚[附录 B, p11]:
| 情形 | 变换效果 |
|---|---|
| 颜色吻合得好(ℓ → 0) | 分母趋 1,恒等变换 |
| 颜色吻合得差(ℓ 变大) | 分母变大,有效占用被压低,这类面被选作背景的可能性下降 |
原文给了系数取值:实验里用 c = 16[附录 B, p11]。
8.3 为什么这件事只有在场景空间里才做得到
原文在这一节的收尾处讲了一段方法论[附录 B, p11]。传统重建方法大多在图像空间里优化,它们只通过一个渲染算法(表面式或体积式)与 3D 场景交互;结果是图像空间里的设计空间相当受限,除了算一个损失之外几乎做不了别的[附录 B, p11]。
本篇直接工作在场景空间里 ⇒ 背景分布可以被裁剪,去聚焦到感兴趣的区域。这种灵活性使得一些在图像空间方法里做不到的新优化策略成为可能[附录 B, p11]。具体到颜色相关分布,原文的定性是:它主动引导优化去跳过那些「被判为错的」区域,而不看它们的占用值**[附录 B, p11]。
这句话的分量在第 12 章会再出现一次:当损失依赖图像空间邻域时(比如风格损失),本篇这套做法就不适用了,那正是场景空间换来的自由度的另一面。
8.4 图 14-1:颜色相关分布的证据
下面这张图是附录 B 唯一的定量对照,分上下两排读。
NeRF/Free-flight/Color-dependent,另有 Dense initialization 与 Optimization states。 ②读法:上排看「谁走得更远」,下排看「谁没卡住」。上排是一条光线上的探索进度,Color-dependent 应当比 Free-flight 探得远;下排是人为造出来的极端场景(稠密初始化),判别点是 Color-dependent 能不能穿过去。两句图注合起来是这个变体的完整说法:探得远(上)与穿得过(下)本来就是同一件事的两面。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 14, p11 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:这张图对应式 α′ = α / (1 + c·ℓ) 的效果。注意它的适用边界:原文在附录 B 末尾明确说,本篇只把自由飞行分布用于主文的所有结果,颜色相关分布只在图 14 这一处用到[附录 B, p11],也就是说这是一次「设计空间演示」,不是主方法的一部分。
④边界:不要把它读成「本篇的默认配置」。主文的所有定量结果(第 10 章的七张表)都是在自由飞行分布下取得的。另外下排那个「稠密初始化」的场景是刻意造出来的人造实验,不代表真实重建任务的典型情形。
9体积松弛:让「面」在难处退回「体」
到这里主算法已经完整。这一章讲的是一个与它正交、可选的部分[§3.4, p4],原文把它定性为基于启发式的泛化,并反复强调它不是方法的根本部分[附录 D, p14]。
9.1 要治的病:不透明面假设的固有局限
面表示优点很多,但不透明面假设在某些场景下有固有局限[§3.4, p4]:
| 场景 | 为什么面表示不行 |
|---|---|
| 亚像素结构 | 用几何建模亚像素尺度的结构很困难 |
| 方向相关材质 | 单个面无法准确表示其外观 |
原文的结论是:在这些区域,体积表示更合适[§3.4, p4]。
9.2 做法:先跑 20k 迭代,再按局部损失放开混合
目标很清楚:把场景的大部分放松成面(也就是能达到低损失的区域),只在剩下的困难区域用体积表示[§3.4, p4]。步骤是[§3.4, p4]:
- 先用本篇算法训练 20k 迭代,得到一个初始的面表示;
- 通过评估哪里局部损失仍然高来识别困难区域;
- 在后续训练里,在这些区域放开面的假设,允许体积式的 alpha 混合。
训练完之后不再是提面,而是整体体渲染。面区域视作完全不透明**[§3.4, p4]。
9.3 式 (15)(16):松弛版损失与 L_goal
原文给出一个松弛的体积版损失,形态与式 (8) 一致;记号 (·) 的含义与附录 A 相同,表示优化中要求导的项[附录 D, p13]:
与式 (8) 的差别只有两处[附录 D, p13]:
| 差别 | 说明 |
|---|---|
| 混合的对象 | 式 (8) 混合的是损失;式 (15) 混合的是颜色,这正是为了允许体渲染式的混合 |
| 比较的目标 | 不再是 L_target,而是修正后的目标色 L_goal |
L_goal 的定义是一条闭式[附录 D, p13]:
这条式子在做什么,可以一句话说清:第 i 个采样点的目标,要从「整条光线的目标色」里扣掉前面那些采样点已经贡献的颜色(L_prev),再除以从相机到这里的透过率(T_prev)[附录 D, p13]。换句话说是「分摊到当前这一点上的剩余目标」。
原文把式 (15) 的改动归纳成两条[附录 D, p13]:
- 改成混合颜色而不是混合误差度量,以允许对第 i 个采样点做体积式混合;
- 第 i 个采样点不再需要直接匹配目标色 L_target,它的目标要按先前采样点的颜色贡献(L_prev)与从相机到它的透过率(T_prev)做调整[附录 D, p14]。
9.4 式 (17):过度松弛的检测判据
原文自己指出了问题[附录 D, p14]:这个松弛损失作为纯体积重建算法表现不错,但当它被用来精修一个已经收敛的面场景时,常常会把整个场景都变成体积表示。包括那些面表示已经足够好的区域。原因说得也很直:面表示本质上是自由度更少的体,而在体里拟合颜色通常比在面上拟合更容易降低损失[附录 D, p14]。
防止过度松弛的办法是一个零开销的判据:当某个位置的「不混合局部损失」不劣于「混合局部损失」时,就用不混合的那个版本[附录 D, p14]:
原文特别强调这个比较不引入任何额外开销,因为所需的值都已经现成[附录 D, p14]。
9.5 两条工程约束
松弛训练还有一个副作用值得记:它更不容易出现 floaters[附录 D, p14]。原文对此的解释是:本篇的算法有时会在早期把某些区域的占用值推得过高(周边区域或紧邻相机的区域),于是在最终重建里留下浮动残片;成因是背景在开始时探索得不够,导致对暂时更优的候选做了过于激进的优化[附录 D, p14]。
原文承认 NeRF 也会遇到类似问题,但本篇更难恢复,因为 这些浮动残片的占用值可能逼近 1[附录 D, p14]。给出的两条对策[附录 D, p14]:
| 对策 | 细节 |
|---|---|
| 热启动 | 新视角合成任务里,松弛变体先训 5000 迭代作为热启动 |
| 占用上界 | 在第 i 次迭代把占用值上界设为 α_max = 0.1 + 0.9 · i / 1000;这条约束只在前 1000 迭代生效 |
| ZipNeRF 代码库 | 前 5% 迭代采用 NeRF 训练热启动,不设占用上界 |
原文最后把账结清:体积松弛是启发式的、不是方法的根本部分;除明确说明外,本篇所有结果都是在没有这个松弛的情况下取得的[附录 D, p14]。
9.6 图 10-1:体积松弛的唯一证据
下面这张图是体积松弛唯一的证据,看白箭头与两个倍速数字。
Ours/Ours (relaxed) 与 Surface rendering/ray marching rendering: 22 ms/frame。 ②读法:先看白色箭头指的位置,再看两个倍速数字。箭头处是本篇的失败点(半透明物体),松弛版把它救回来。两个倍速数字的排序值得注意:纯面版 2.6× 比松弛版 1.7× 更快,因为松弛版在难处退回了体渲染,效率的收益就是这么付出去的。图注里那句 ray marching rendering: 22 ms/frame 是实测耗时。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 10, p8 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:这张图是式 (15)(16)(17) 的视觉证据。把三个数放在一起看能读出一条权衡曲线:纯面版最快(2.6×)但建模不了半透明;松弛版慢一些(1.7×)但能恢复;NeRF 最慢。这就是「松弛」这个词的代价与收益的全部内容。
④边界:两个倍速都是相对 NeRF 的,不是相对纯面版。另外原文所有标为 ours 的结果都是不带松弛训练的[§3.4, p4],这张图里的 Ours (relaxed) 是一个附加变体,不要与第 10 章的表 1(那一行 relax 另算)混起来读。
9.7 图 20-1:室外场景的追加证据
下面这张图是同一实验的室外版,判别点在三栏之间的稳定性差别。
Surface rendering at varying occupancy level/Surface / volume rendering 与 ray marching rendering: 19 ms/frame。 ②读法:这张图与图 9-1 是同一实验的室外版,判别点是三栏在阈值变化下的稳定性。左栏几乎不变、右栏完全崩、中栏介于两者之间但整体保持面状。注意图注第一句「只有带橙框的两张是体渲染的」,读这张图时先找出那两张橙框,才不会被其余的表面渲染误导。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 20, p15 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:中栏是松弛版的定位说明,它不追求把整个场景变回体,只在亚像素这类难处用体。这与式 (17) 的判据完全对应:判据说「不混合不劣于混合就用不混合」,所以场景大部分会停在面上。
④边界:这是附录 C 的补充结果,不是主结果。图上 19 ms/frame 这一个数字是耗时标注,不要与图 9-1 的 23 ms/frame/58 ms/frame 直接比较(场景不同)。
10定量结果:七张表与两处性能账
这一章把七张表逐格复算一遍。先说清楚口径:七张表里主结果一律是不带体积松弛的(表 1 里另有一行 relax 变体);本篇没有在几何指标上做竞赛,这一点在 §5.3 被作者自己重申过[§5.3, p5]。
10.1 表 1-1:MipNeRF360 上的视觉质量
下面这张表是全文的视觉质量总账,判别点落在 PSNR 的小差与 LPIPS 的反超上。
Indoor mean 与 Outdoor mean,每段下挂 PSNR↑/SSIM↑/LPIPS↓ 三列;三行方法分别是 Ours/Ours (relaxed)/NeRF。 ②读法:先横看三行、再纵看两组。判别点有两处:PSNR 的差距很小(室内 0.17 dB、室外 0.06 dB),而 LPIPS 上本篇两组都更低。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Table 1, p4 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③复算:下面把这张表的 18 个数字摊开逐格核一遍。
表 1 只有三行方法、两组均值(室内/室外),用的是默认 Instant NGP 超参[表 1, p4]。逐格复算:
| 方法 | Indoor PSNR↑ | Indoor SSIM↑ | Indoor LPIPS↓ | Outdoor PSNR↑ | Outdoor SSIM↑ | Outdoor LPIPS↓ |
|---|---|---|---|---|---|---|
| Ours | 29.02 dB | 0.888 | 0.275 | 22.41 dB | 0.679 | 0.563 |
| Ours (relaxed) | 29.41 dB | 0.897 | 0.284 | 22.62 dB | 0.690 | 0.626 |
| NeRF | 29.19 dB | 0.893 | 0.303 | 22.47 dB | 0.683 | 0.638 |
三种读法:
| 问题 | 读数 |
|---|---|
| PSNR 差多少 | 室内 29.02 对 29.19(差 0.17);室外 22.41 对 22.47(差 0.06) ⇒ 与摘要里「平均低 0.1 dB」的说法一致 |
| LPIPS 谁更好 | 本篇在两组上都是最低的(0.275 对 0.303;0.563 对 0.638), 感知指标上本篇是领先的 |
| SSIM 呢 | 室内 0.888 对 0.893、室外 0.679 对 0.683,差 0.005 与 0.004,基本持平 |
原文对 PSNR 差值的解释是:这个差距是意料之中的,因为体积表示天生有更多自由度,那些自由度可以被拿去建模逐像素颜色[§4.1, p4]。原文还补了一条趋势:本篇与 NeRF 在室内都拿到 0.89 的 SSIM、室外都是 0.68[§4.1, p4]。
松弛版那一行值得单独看:它在两组上都略高于 NeRF 基线[§4.1, p4]。原文给的原因是:本篇鼓励面状的、稀疏的分布,于是场景里有更多「空」;渲染器能高效跳过的正是这部分空间 ⇒ 同样的 batch size 下,Instant NGP 会自动为本篇发射更多光线,每个批次覆盖更多参考像素,重建因此更好[§4.1, p4]。
这段里有一句很关键的话:当光线数被限制到与 NeRF 一致时,松弛变体的结果大致相等[§4.1, p4]。换句话说,那个「略超」的来源是采样预算的再分配,而不是方法的胜利,这一点在读到「更快」的时候要一直记着。
10.2 表 2-1:DTU 上的 Chamfer 距离与时间账
下面这张表只有三个数字,但论点写在行头里。
Ours (1 min)/NeuS (8 hr)/NeuS2 (5 min),行只有一个 CD。 ②读法:注意方法名后缀把训练时间直接写进了表头,所以这张表比的是「距离与时间的搭配」。判别点:本篇的 0.80 介于 NeuS2 的 0.68 与 NeuS 的 0.77 之间,而时间是 1 分钟。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Table 2, p5 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③复算:下面把三个数字与三段时间一起核一遍。
表 2 的论点就写在行头里[表 2, p5]:
| 方法 | CD |
|---|---|
| Ours (1 min) | 0.80 |
| NeuS (8 hr) | 0.77 |
| NeuS2 (5 min) | 0.68 |
这张表只有三个数字,但要读三件事[§4.2, p5]:
- 只用极小的 Laplacian 正则(统一权重 2 × 10⁻⁵),本篇的平均 Chamfer 距离只比 NeuS2 高 0.12;
- 训练时间被压到 1 分钟(NeuS2 是 5 分钟、NeuS 是 8 小时), 从 8 小时到 1 分钟是三个数量级的差别;
- 原文明确说本篇不打算在几何重建指标上竞争,也没有并入其他正则扩展[§5.3, p5]。
10.3 表 3-1/4-1/5-1:Instant NGP 代码库上的全量结果
下面三张表是同一批场景的三个指标,逐格铺开看。
表 4 与表 5 是同一批场景的另外两个指标,接着看。
表 5 换到感知指标,三行的次序在这一张上分得最开。
Ours 那一行在本篇的九列里都处在三行中最低的位置(LPIPS 越低越好)。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Table 5, p16 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③复算:下面把三张表共 81 格数字摊开,逐格核一遍。
这三张表是同一批场景的三个指标:10 个 MipNeRF360 场景(Bicycle/Bonsai/Counter/Garden/Kitchen/Room/Stump/Flowers/Treehill 等)× 三行方法(Ours/Ours (relaxed)/NeRF),表注明写 Ours uses surface rendering, while the relaxed variant and NeRF use volume rendering[表 3, p16]。
表 3(PSNR):
| 方法 | Bicycle | Bonsai | Counter | Garden | Kitchen | Room | Stump | Flowers | Treehill |
|---|---|---|---|---|---|---|---|---|---|
| Ours | 22.53 | 31.22 | 26.67 | 23.81 | 28.58 | 29.59 | 24.16 | 19.76 | 21.79 |
| Ours (relaxed) | 22.66 | 31.81 | 26.95 | 24.04 | 29.14 | 29.75 | 24.43 | 19.98 | 21.97 |
| NeRF | 22.66 | 31.45 | 26.79 | 23.97 | 29.33 | 29.17 | 23.96 | 19.95 | 21.82 |
表 4(SSIM):
| 方法 | Bicycle | Bonsai | Counter | Garden | Kitchen | Room | Stump | Flowers | Treehill |
|---|---|---|---|---|---|---|---|---|---|
| Ours | 0.673 | 0.918 | 0.872 | 0.686 | 0.866 | 0.896 | 0.769 | 0.577 | 0.692 |
| Ours (relaxed) | 0.682 | 0.927 | 0.882 | 0.695 | 0.878 | 0.902 | 0.784 | 0.590 | 0.698 |
| NeRF | 0.675 | 0.924 | 0.877 | 0.687 | 0.877 | 0.893 | 0.776 | 0.586 | 0.692 |
表 5(LPIPS):
| 方法 | Bicycle | Bonsai | Counter | Garden | Kitchen | Room | Stump | Flowers | Treehill |
|---|---|---|---|---|---|---|---|---|---|
| Ours | 0.578 | 0.241 | 0.315 | 0.547 | 0.236 | 0.306 | 0.475 | 0.618 | 0.599 |
| Ours (relaxed) | 0.642 | 0.244 | 0.335 | 0.672 | 0.234 | 0.324 | 0.497 | 0.676 | 0.645 |
| NeRF | 0.658 | 0.256 | 0.354 | 0.625 | 0.239 | 0.362 | 0.514 | 0.699 | 0.692 |
三张表的读数趋势是一致的:PSNR 上三行互相咬得很紧(多数场景差距在 0.3 dB 内),SSIM 几乎重合,而 LPIPS 上本篇逐场景全面领先(Ours 一行在九列里全部是三行中最低的)[表 3/表 4/表 5, p16]。这与表 1 的均值读数同向,也再次说明本篇的代价主要落在「逐像素颜色自由度」上,而不是落在感知质量上。
10.4 表 6-1:ZipNeRF 代码库上的 PSNR
下面这张表换了一套代码库,差距的口径也跟着换了。
Ours 与 NeRF 两行。 ②读法:这张表要与表 3 并排读:同一个方法换到另一套代码库,室内均值差从 0.17 dB 变成 1.72 dB。判别点是「差距在哪个代码库上变大」。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Table 6, p16 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③复算:下面把这张表的 18 个数字与内外室两组均值一起核一遍。
表 6 换了一套代码库(ZipNeRF),行只有两行[表 6, p16]:
| 方法 | Bicycle | Bonsai | Counter | Garden | Kitchen | Room | Stump | Flowers | Treehill |
|---|---|---|---|---|---|---|---|---|---|
| Ours | 24.10 | 31.24 | 26.38 | 26.14 | 30.22 | 31.07 | 25.96 | 20.99 | 23.12 |
| NeRF | 25.50 | 33.20 | 28.16 | 27.62 | 32.01 | 32.44 | 27.11 | 22.11 | 23.85 |
原文另给了内外室均值:本篇室内 29.73 dB 对 NeRF 31.45 dB;室外 24.06 dB 对 25.24 dB[§4.1, p4]。与 Instant NGP 代码库相比,ZipNeRF 上的差距更大(室内差 1.72 dB,而不是 0.17 dB)。
原文对这一点的处理很克制:它只说在 ZipNeRF 代码库里观察到相似的趋势[§4.1, p4],没有解释为什么差距变大,也没有为此做消融。附录 E 里交代了原因的一半:ZipNeRF 用的是默认超参配置(360.gin)与原版自适应采样策略,而那套自适应采样是为体积重建量身定做的,对本篇未必最优;原文刻意不去改动这些组件,目的是把改动限制在最小范围、把验证集中在概念验证上[附录 E, p14]。
这段话是这张表最好的注解:差距里有一部分买的是「改动最小」这件事。
10.5 表 7-1:DTU 上的逐场景 Chamfer 距离
下面这张表在结构上是两段拼起来的,读法也要分两段。
Scan24 到 Scan83,下段七列是 Scan97 到 Scan122;行头三方法在第二段简写为 Ours/NeuS/NeuS2。 ②读法:先确认段界:两段之间有一条通栏横线,且两段列数不同(八列对七列),所以不能当成一张等宽表压平。判别点是逐场景比三行,本篇互有胜负。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Table 7, p16 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③复算:下面把两段共 45 格数字摊开逐格核一遍。
表 7 有一个结构上的特点:它是上下两段拼起来的[表 7, p16]。
上段(Scan24–Scan83,8 个扫描):
| 方法 | Scan24 | Scan37 | Scan40 | Scan55 | Scan63 | Scan65 | Scan69 | Scan83 |
|---|---|---|---|---|---|---|---|---|
| Ours (1 minute) | 0.81 | 0.77 | 0.66 | 0.40 | 1.08 | 0.90 | 0.88 | 1.42 |
| NeuS (8 hours) | 0.83 | 0.98 | 0.56 | 0.37 | 1.13 | 0.59 | 0.60 | 1.45 |
| NeuS2 (5 minutes) | 0.56 | 0.76 | 0.49 | 0.37 | 0.92 | 0.71 | 0.76 | 1.22 |
下段(Scan97–Scan122,7 个扫描):
| 方法 | Scan97 | Scan105 | Scan106 | Scan110 | Scan114 | Scan118 | Scan122 |
|---|---|---|---|---|---|---|---|
| Ours | 1.20 | 0.75 | 0.68 | 1.07 | 0.61 | 0.55 | 0.63 |
| NeuS | 0.95 | 0.78 | 0.52 | 1.43 | 0.36 | 0.45 | 0.45 |
| NeuS2 | 1.08 | 0.63 | 0.59 | 0.89 | 0.40 | 0.48 | 0.55 |
逐格看能读出三点:
| 观察 | 依据 |
|---|---|
| 本篇不是逐场景都赢 | 15 个扫描里,本篇在 Scan40/Scan55/Scan69/Scan83/Scan97/Scan105 等处的数值介于 NeuS 与 NeuS2 之间 |
| 本篇也不是逐场景都输 | Scan63 上本篇 1.08 优于 NeuS 的 1.13;Scan83 上 1.42 优于 NeuS 的 1.45 |
| 它赢在时间 | 行头写得很清楚:本篇 1 分钟,NeuS2 5 分钟,NeuS 8 小时 |
这张表在行头上就把论点说完了,这也是它需要复算一遍的原因[§4.2, p5]。
10.6 图 19-1:等时收敛曲线
下面这张图是等时口径下的收敛曲线,比较两条曲线的相对位置与尾段形状。
Bicycle/Garden/Kitchen/Room,纵轴 Loss (Huber)、横轴 Time (s),两条曲线标 Ours 与 NeRF。 ②读法:看两条曲线在横轴同一位置的高度差,以及谁先变平。这里是等时比较(横轴是秒,不是迭代数),所以它回答的是「同样的墙上时间谁的损失更低」。尾部更长这句话的含义是:同样的迭代次数下,本篇的光线更多 ⇒ 单次迭代更慢 ⇒ 曲线上表现为后半段的形状不同。图注把原因直接写出来了,读的时候要顺着这条因果链看。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 19, p13 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:这张图与第 10.1 节那个「采样预算再分配」是同一件事的两个视角,一个从损失曲线看(本图),一个从 PSNR 均值看(表 1 的 relax 行)。两条线索都指向同一个机制:本篇把「场景里可以跳过的空间」省下来,换成了更多光线。
④边界:纵轴是 Huber 损失,不是 PSNR。两者不可互换,不要拿曲线的高度差去替代表 1 的 dB 差。另外四个场景只是 MipNeRF360 的一部分**,不是全部场景。
10.7 两处性能账与一个连带效应
第一处是表面渲染本身带来的加速[§4.1, p4]:实现直接在 Instant NGP 代码库上改,把「光线步进」换成「返回第一个占用值超过 0.5 的采样点的颜色」。这个直白的改动在 MipNeRF360 的各场景上带来平均 2.4× 的帧率提升;松弛版是平均 2.0×(因为场景大部分保持面状)。
第二处是再换一次渲染方式[§4.1, p4]:把光线步进换成「网格水平集的光栅化」,可以再拿到 2× 的加速;这时颜色网络只用于网格着色,视觉质量与之前保持一致。原文还提示了两条进一步提速的路:把预计算的哈希网格查表与网格顶点一起存储(MobileNeRF 那一类做法),或者把方向相关的 MLP 依赖投影到球谐(Reiser 等 2024)[§4.1, p4]。
连带效应在第 10.1 节已经交代过,这里再点一次:本篇的稀疏面状分布让渲染器能跳过更多空间 ⇒ 同 batch 下自动发射更多光线 ⇒ 松弛版反而略优于 NeRF 基线;而一旦把光线数对齐,两者大致相等[§4.1, p4]。这条链子把「更快」与「略好」连在了一起,读任何一个数的时候都不该把它们分开。
10.8 七张表之间的一致性
把七张表放在一起横着看,能读出四条彼此印证的趋势:
| 趋势 | 表 1 | 表 2 | 表 3/4/5 | 表 6 | 表 7 |
|---|---|---|---|---|---|
| PSNR 小幅落后 | 室内 −0.17、室外 −0.06 | — | 逐场景多在 0.3 dB 内 | 室内 −1.72 | — |
| 感知指标不落后 | LPIPS 两组都更低 | — | LPIPS 九列全领先 | — | — |
| 几何小幅落后 | — | +0.12(相对 NeuS2) | — | — | 15 个扫描里互有胜负 |
| 时间压倒性领先 | — | 1 分钟对 5 分钟/8 小时 | — | (3 minutes)对(hours) | 同行头 |
四条趋势里,最稳的是「时间」那一条,最不稳的是表 6 的 PSNR。表 6 的 −1.72 dB 与表 1 的 −0.17 dB 差了十倍,而原文没有为这个差异做实验解释,只留下附录 E 那句「刻意保留原版自适应采样」[附录 E, p14]。读表时应该把这一点标出来:这是两套代码库的默认配置不同带来的口径差异,与数据本身无关。
另一个需要并排读的地方是「relaxed」这个变体:它在表 1 里有一行(两组都略优于 NeRF),在表 3/4/5 里也各有一行,但它在表 2、表 6、表 7 里都不出现。原因在原文的口径声明里:除明确说明外,所有标为 ours 的结果都是不带松弛训练的[§3.4, p4]。所以「relaxed 更好」这个结论只适用于新视角合成那一支,不能外推到几何那一支。
最后一条:表 1 与表 3/4/5 是同一个实验的两个粒度,表 1 是均值,表 3/4/5 是逐场景。两张表里 Ours 与 NeRF 的差值方向完全一致。这说明均值那一行没有掩盖掉反向的场景**(不过表 3 的逐场景数据里确实有单个场景互有胜负,比如 Kitchen 上 NeRF 29.33 高于 Ours 28.58)。
11定性结果:占用场、直接提取与正则
这一章看六张图。它们回答四个问题:占用场变成了什么形状、什么时候能提面、正则管什么、两种渲染方式是否一致。
11.1 图 9-1:占用场变成了一个阶跃函数
这是全文最能说明「为什么它能提面」的一张图。
(a) Surface rendering of ours/(b) Volume rendering of NeRF,并带 ray marching rendering: 23 ms/frame 与 58 ms/frame 两处时耗。 ②读法:这张图看的是「横着一行不变、竖着一列才变」。横轴是 五个阈值 {0.01, 0.1, 0.5, 0.9, 0.99}[§4.1, p4],(a) 那一行在阈值变化下几乎不动,说明场在面上是陡的;(b) 那一行随阈值变化剧烈,说明场是渐变分布、没有明确的「面」。两个时耗数字是附带信息**:23 ms/frame 对 58 ms/frame。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 9, p8 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:「近 Heaviside 阶跃函数」这句话是整篇的机制核心。式 (2) 把「混合损失」而不是「混合颜色」写进目标之后,每个采样点都被单独要求匹配目标色或变成透明,于是收敛后的场只可能接近 0 或 1 两端,这就是阶跃形状的由来。换句话说,图 9-1 是式 (2) 那条设计选择的最终体现。
④边界:时耗数字不能跨图比较(与图 20-1 的 19 ms/frame 是不同场景)。另外这是「定性」证据:它说明场是陡的,但不说明几何精度有多高,几何精度要看表 2 与表 7。
11.2 图 7-1:任意时刻都能提面
下面这张图也是等时口径,比较同一时刻两侧各能给出什么。
Ours/NeuS2,另有三段时耗标注 10 seconds training/50 seconds/1 minute。 ②读法:这是一张「等时对比」图,三段时耗标就是它的坐标系。看同一时刻下两侧各能提出什么:Ours 一侧可以直接给出面,NeuS2 一侧还是模糊体积。这张图与图 9-1 是一对:图 9-1 说明场的形状,图 7-1 说明这个形状带来的实用后果。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 7, p5 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:「不需要中间体积表示」这句话是关键。NeuS 那一类方法要用体渲染加正则去逼出 SDF,提取要靠水平集加后处理;本篇的场本身就是面状的,取一个水平集就等于提面(图 2 的图注也点了 marching cubes)。
④边界:三段时耗标注与图 1-1 的标注同名但图的场景不同,不要混。另外这张图没有给 Chamfer 距离,「能提面」与「提得准」是两件事,后者在表 2 与表 7。
11.3 图 6-1 与图 11-1:正则管什么,以及它的取舍
下面这张图说明正则做什么,差别落在很小的尺度上。
Ground truth/Laplacian,另有 Surface rendering 两处。 ②读法:看两张图之间的差别在哪个尺度上。差别不是整体形状,而是细小折角,这正好对应该正则的作用域。图注第一句「无需额外约束就已经贴合」是更重要的半句:它说明正则不是必需品,而是精修。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 6, p4 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:原文在 §4.2 里交代了这个正则的实现方式与动机:真实重建任务常常欠约束(比如只从一个窄角度锥看到的高反物体),于是重建几何会出现不该有的鼓包状伪影,这些伪影表示被错误归因的细节[§4.2, p5]。对策是一个指数衰减的 Laplacian 正则:起初强制平面,随后随影响衰减逐步给出更多自由度[§4.2, p5]。
④边界:图 6-1 与图 11-1 要成对读,否则容易把「加正则更好」当成结论。
Surface rendering 与 (a) Laplacian strength/(b) Smooth conductor 两个图内标签。 ②读法:这张图要竖着看:一列是权重递增,一行是一个场景。上排随权重变化明显(细节被抹掉或保留),下排几乎不变,判别点是「哪一行对权重敏感」。图注第二句就是给下排的注解,它同时是这张图最实用的一条信息:如果场景简单,你不用为这个超参调参。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 11, p9 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:训练时用的是「指数衰减到 2 × 10⁻⁵」的权重[附录 E, p14]。衰减这一点在图上是看不见的(图上只看最终权重),所以这张图的作用是「超参敏感性」,不是「衰减策略」的证据,衰减策略的证据在图 18-1(第 12 章)。
④边界:图上没有数字、没有权重刻度值,只有多档渲染结果。不要试图从图上读出具体权重;权重值在附录 E。
11.4 图 12-1:重建展示
下面这张图是统一超参下的一次多场景展示,重点看法向那一行。
③推导:它对应第 10.2 节那条时间账的直观版本:1 分钟能出什么。几何实验用的是 L1 损失(为改善暗区收敛),训练 10000 迭代(而不是默认的 35000),Laplacian 权重指数衰减到 2 × 10⁻⁵。Laplacian 用六邻域样本、以 1/1024 的 epsilon 做有限差分估计**(单位立方体上约 1 毫米)[附录 E, p14]。
④边界:这是展示,不是对比,图上没有基线、没有逐场景指标。不要用它证明「比谁好」,它只回答「能不能出好几何」。
11.5 图 16-1:两种渲染方式一致
下面这张图是一次等价性声明,要确认左右两侧没有可见差别。
Ray marching/Rasterization。 ②读法:这是一张「等价性声明」。它要证明的不是哪个更好,而是换到光栅化不会掉画质,这样一来,第 10.7 节那句「换成网格水平集的光栅化可以再拿到 2× 加速」才是可以兑现的。判别点是两张图之间有没有可见差别。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 16, p12 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:这张图是「2× 加速」那半句的前提条件。原文在 §4.1 里把这条推理链写完了:换成网格光栅化后,颜色网络只用于网格着色,视觉质量与之前一致[§4.1, p4]。
④边界:「几乎一致」是原文的表述,不是逐像素相等的声明。另外它只覆盖一个场景,不是全部场景的统计。
11.6 六张图串起来的一句话
把这一章的六张图按因果排一遍,会得到一条很整齐的链子:
| 步 | 图 | 说的是 |
|---|---|---|
| 1 | 图 9-1 | 场收敛成了阶跃函数(这是机制的结果) |
| 2 | 图 7-1 | 所以任意时刻都能提面(这是阶跃的直接用处) |
| 3 | 图 6-1 | 不加约束也已经贴住真值;加 Laplacian 是精修 |
| 4 | 图 11-1 | 精修的代价是细节与平滑的取舍,而且简单场景不敏感 |
| 5 | 图 12-1 | 统一超参 + 每场景 1 分钟,能出什么几何 |
| 6 | 图 16-1 | 换成光栅化不掉画质 ⇒ 第 10.7 节那个「再 2×」成立 |
这张链子把第 10 章的定量结果与第 3–5 章的机制接上了:式 (2) 那条设计选择 ⇒ 场变成阶跃(图 9-1)⇒ 提面变平凡(图 7-1)⇒ 1 分钟能出几何(图 12-1)⇒ 换成更快的渲染方式不掉画质(图 16-1)。第 10 章那两处性能账,收益的源头就在这里。
同时它也说清了「为什么只有一张图管正则」:图 6-1 与图 11-1 是本篇唯一的启发式组件(Laplacian)的证据,而这个组件在图 12-1 的展示里只是一个统一的权重值(2 × 10⁻⁵)[附录 E, p14]。换句话说,正则在这篇论文里始终是配角,这与第 2.2 节「本篇不是几何指标竞赛」的定位一致。
12边界与反例
这一章把作者自陈的限制与原文里的反例集中放在一处。先看四张图,再列八条边界。
12.1 图 8-1:局限的两个具体现场
下面这张图是本篇最重要的反例,两条各自成说。
Ground truth/Surface rendering。 ②读法:两条各自看。(a) 一侧的失败是正则层面的:平滑与细节不可兼得,而且引用图 12 说明「加大权重」的代价在别处兑现。(b) 一侧的失败是表示层面的:表面表示的自由度比体少,这一点在 §4.1 解释 PSNR 差距时也用过(第 10.1 节)。两句话合起来,正好对应本篇的两个代价:一个是启发式的代价,一个是表示自由度的代价。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 8, p6 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:这张图是第 2.2 节那段「细节该归给谁」的延续。原文在那里说过,真实任务里细节归颜色还是归几何是含糊的;图 8-1 把这个含糊落成了两个具体的失败现场。
④边界:这是本篇最重要的反例图。它直接说明方法不是通用的:视角相关外观(那类平坦罐面)与高频颜色变化这两类情形下,本篇会明显落后于体渲染。
12.2 图 15-1:内部拓扑变化要动大手术
下面这张图讲的是一类同行方法的失败模式,判别点在第二次穿透处。
Initial state/Optimization states 与 Cone/Ours 两组图内标签。 ②读法:这张图讲的是「同类方法的失败模式」,而不是本篇的成败。判别点是 Cone 那条线在第二次穿透处停住。为什么:锥体扰动只能穿一个障碍,而把球变成环面需要连续穿过多个障碍。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 15, p12 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:附录 C 把这条限制讲透了[附录 C, p12]:基于局部表面演化的方法在内部拓扑变化上会吃力,因为它们主要靠变形可见性轮廓来改变整体形状,而那些轮廓在远离外轮廓的区域往往并不存在。要正确处理这类变化需要一个显著的修改:例如切一个锥体穿透整个物体以暴露被遮挡的背景;这类变化超出了常规导数方法的能力,因为它们只能处理无穷小的扰动[附录 C, p12]。
④边界:这张图不是「本篇战胜了锥体策略」的对比,它展示的是这类变化本身有多难。而本篇的随机背景分布给出的正是「不用显式处理拓扑变化」的路径(第 5.1 节)。
12.3 图 17-1 与图 18-1:跨代码库的定性对比与后处理式正则的对照
下面这张图是跨代码库的定性对照,比较同一场景在两个代码库里的一致性。
Instant NGP codebase/ZipNeRF codebase(并带 (hours)/(3 minutes) 时耗标注)与 Ours/NeRF,另有 Bicycle/Garden/Kitchen/Room 场景名。 ②读法:这张图的判别点是「同一场景在两个代码库里的一致性」。(hours) 与 (3 minutes) 两处标注对应表 6 与表 3 的口径差异(第 10.4 节)。注意图上出现的场景名与图 19-1 是同一批,两张图应当成对读。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 17, p13 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:它对应表 6 与表 3 的差距。ZipNeRF 代码库上差距更大(室内 1.72 dB),原文把原因的一半归给了「刻意保留原版自适应采样」(第 10.4 节)[附录 E, p14]。
④边界:定性对比图无法给出差距量级,倍数要回到表 3 与表 6。
(a) No laplacian/(b) Post-process laplacian/(c) Decaying laplacian,另有 low weight/high weight/Zoom in。 ②读法:三档里判别点在 (b) 与 (c) 的差别,两者都用了 Laplacian,唯一区别是在训练中衰减还是事后施加。图注把结论直接写出来了,这张图的价值在于它是一条完整的策略对照(不用/事后用/训练中用),而图 11-1 只做权重敏感性。
来源:Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss, Fig. 18, p13 · © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.(ACM 标准版权块 · 非 CC)· 原样引用,未修改
③推导:它解释了为什么正则要做成「指数衰减」而不是一个固定权重(第 11.3 节)。「起初强制平面、随后放开自由度」这个设计本身就是一条时间上的课程,后处理只能施加一个静态的约束。
④边界:这是附录 C 的补充实验,用的是高欠约束的特殊场景,该结论不应外推到所有场景。
12.4 八条边界
| # | 边界 | 出处 |
|---|---|---|
| ① | 与依赖图像空间邻域的损失不兼容(如风格损失)。原因是颜色损失被搬进了场景空间 | §5.3, p5 |
| ② | 观测不足时,轻量 Laplacian 正则会失效;可以借用几何重建 SOTA 里的其他正则来缓解 | §5.3, p5;图 8a |
| ③ | 高频颜色变化在表面表示上比在体积表示上更难准确表达 | 图 8b, p6 |
| ④ | 导电材质的外观拿不准;可以借既有工作(Verbin 等 2022)补 | §5.3, p5 |
| ⑤ | 光滑面 + 视角受限的高欠约束场景:训练期指数衰减优于后处理式 Laplacian,但这类场景本身仍然难 | 图 18-1, p13 |
| ⑥ | 内部拓扑变化要靠切一个穿透整个物体的锥体来暴露被遮挡背景;锥体扰动策略穿透环面一次后就卡住,而这类大改动超出常规导数方法的能力(只能处理无穷小扰动) | 图 15-1, p12;附录 C, p12 |
| ⑦ | 不做几何指标竞赛,也没有并入其他正则扩展(作者自陈的取舍) | §5.3, p5 |
| ⑧ | 与 many-worlds 逆渲染的关系是一条概念性边界:本篇只重建纯发光体(在 PBR 的方程里,辐照度场出现在发射项上),而 PBR-MW 处理的是带全局光照的反射物;本篇依赖「光线到最近相交面」的 1:1 映射,这套损失不能平移到嵌套积分的全局光照渲染器 | §5.2, p5 |
第 ⑧ 条值得单独说两句,因为它是唯一一条理论性而非实验性的边界。原文的原话是:在辐照度面渲染里,成像是一个「光线到最近相交面」的直接 1:1 映射,而 PBR-MW 需要在材质、光照与几何上做复杂的嵌套积分;本篇把训练图像投进场景来建立辐照度场损失,依赖的正是这个 1:1 映射,因此不能有效地平移到全局光照渲染器的嵌套积分结构上[§5.2, p5]。
这段话把「简单」的来源与代价一起说清楚了:简单来自 1:1 映射;代价也是 1:1 映射,有多条光路的情形进不来。
12.5 八条边界其实是三类
把八条按「为什么会受限」归类,能看清它们各自的补救空间:
| 类 | 条目 | 根因 | 补救空间 |
|---|---|---|---|
| Ⅰ 损失被搬进场景空间带来的 | ①、④ | 颜色损失不再在图像空间里,依赖图像邻域的损失与图像空间的物料(导电材质那类需要对图像做特定处理的做法)用不上 | 窄但有解:把这类损失单独提出去,或者在场景空间里重新表述 |
| Ⅱ 表示自由度不足带来的 | ③、②(部分)、⑤ | 面比体少了自由度,所以高频颜色、以及观测不足时靠正则硬撑的几何都会吃力 | 有明确的补法:借用几何重建 SOTA 的其他正则(原文自己指了路) |
| Ⅲ 任务难度本身带来的 | ⑥、⑧ | 拓扑变化需要非无穷小的改动;多条光路需要嵌套积分 | 没有现成解法:⑥ 是整条技术路线的边界,⑧ 是概念性的(换问题才行) |
这个分类解释了原文的语气差别:第 ②、④ 条作者明确写了「可以借用某工作来缓解」(把补救方案指了出来),而第 ⑥、⑧ 条只是一句陈述,没有给解法[§5.3, p5;§5.2, p5]。读边界一节时,有没有给出路比条目本身更重要。
还有一条不在表里的边界值得补记:「边缘区域与紧邻相机区域的浮动残片」(第 9.5 节)是被当成工程问题而非方法边界处理的,原文给的是两条工程手段(热启动与占用上界),而不是一句「这是局限」[附录 D, p14]。分类的时候把它归到「已解决」那一档更合适。
13这篇论文的三条贡献
把全文收成三条。原文在 §1 末尾与 §5 的收束处各说了一次,两次的侧重略不同[§1, p1;§5, p6]。
| # | 贡献 | 具体是什么 | 证据在哪 |
|---|---|---|---|
| ① | 辐照度场损失 | 把训练图像投进场景、直接监督 5D 辐照度场,从而把 alpha 混合与光线步进从成像模型搬进损失计算;代码改动只有几行 | 式 (2)(5)(14);图 2-1;伪码 1 |
| ② | 随机背景分布 | 以期望形式廉价求值,支持拓扑变化、显著提升重建质量;相关推导专属本篇,不迁移到 PBR-MW | 式 (5)–(14);图 5-1;附录 A/B |
| ③ | 把「损失而非颜色沿光线积分」这一族方程讲透 | 推导从演化的面出发,却得到与体渲染高度相似的方程 ⇒ 能直接接进既有体渲染框架、继承其鲁棒性。不必再为提面加启发式** | 图 2-1;式 (14) |
三条之间的关系:第①条是方法本体。第②条是让它能跑通复杂场景的那一块。第③条是它为什么能立刻用起来。
原文对第③条的表述值得逐字记下:推导从一个演化的面开始,却得到了与体积场景重建高度相似的方程,那些沿光线积分的是损失,而不是颜色[§6, p6]。这句话里「损失而不是颜色」六个字,就是全文的缩写。
原文在 §6 里还留了一句展望:随着重建任务变难,一个关键挑战是判断空间里的某个区域该用面还是该用体;松弛变体提供了一个有效的启发式,但也凸显出这个问题需要一个有原则的答案;作者希望大量为 NeRF 类三维重建设计的优化算法、正则与启发式将来能迁移到辐照度场损失上[§6, p6]。
这段话是本篇最诚实的自我定位:它开源了一条路,但没走完;「面与体怎么选」这个问题被明确留给了后来者。
14出处、许可与怎么读这篇
14.1 出处与规范链接
| 项 | 内容 |
|---|---|
| 原文标题 | Radiance Surfaces: Optimizing Surface Representations with a 5D Radiance Field Loss |
| 作者 | Ziyi Zhang(EPFL and NVIDIA)、Nicolas Roussel(EPFL)、Thomas Müller(NVIDIA)、Tizian Zeltner(NVIDIA)、Merlin Nimier-David(NVIDIA)、Fabrice Rousselle(NVIDIA)、Wenzel Jakob(EPFL and NVIDIA) |
| 出处 | SIGGRAPH Conference Papers '25, August 10–14, 2025, Vancouver, BC, Canada(17 pages) |
| Related DOI | 10.1145/3721238.3730713 |
| arXiv | arXiv:2501.18627(v1 2025-01-27、v2 2025-04-29,本页所据为 v2) |
| 学科分类 | cs.GR(主)/cs.CV |
| 致谢(照录) | 作者感谢 Aaron Lefohn 与 Alexander Keller 的支持;本项目由欧盟「地平线 2020」研究与创新计划下的欧洲研究理事会(ERC)资助(资助协议编号 948846) |
14.2 许可判定与图件使用口径
本篇的许可判定是系列里最干净的一类:两处证据同向指向非 CC。
| 证据源 | 读数 |
|---|---|
| arXiv 摘要页 License 字段 | href 指向 http://arxiv.org/licenses/nonexclusive-distrib/1.0/ ⇒ arXiv 非独占分发许可,不是 CC |
| PDF 首页底部(7.0 pt,三行) | ① SIGGRAPH Conference Papers '25, August 10–14, 2025, Vancouver, BC, Canada;② © 2025 Copyright held by the owner/author(s). Publication rights licensed to ACM.;③ This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in … https://doi.org/10.1145/3721238.3730713. |
| PDF 内的权利表述 | 完整的 ACM 标准版权块 + 明写 Not for redistribution + 作者版声明;没有任何 CC 行、也没有 OA 声明 |
判词:两处证据同向为非 CC ⇒ 落点两件(index.html + thumb.webp,不托管 paper.pdf),卡片 chip 带 warn;图件原样零加工引用 + 逐图署名,署名不省略。
Not for redistribution 在文字层被折成两行(Not / for redistribution.),逐词扫描会 0 命中,要把整段当一句话读。另外全篇 © 的 span 共有 5 处,其中 4 处是 txexs 字族的错编码(式 (5) 与附录里的特大圆括号顶件),与版权无关;全篇唯一的真版权符是首页那一条 ACM 版权行。14.3 四张竖图与一张照录伪码
本篇有 4 张图的纵横比小于 1,需要走限高容器:
| 篇内号 | 原文 | 纵横比 | 说明 |
|---|---|---|---|
| 图 9-1 | Fig. 9 | 0.831 | 占用场性质,五档阈值的纵向拼版 |
| 图 12-1 | Fig. 12 | 0.534 | 多场景重建展示,纵向排列 |
| 图 17-1 | Fig. 17 | 0.986 | 两个代码库的定性对比(补回顶部两行图内标签后才成为竖图) |
| 图 20-1 | Fig. 20 | 0.479 | 室外场景的三栏水平集渲染 |
另有表格方向的对照:表 3–7 是通栏表,其中 表 7 内部还分上下两段(8 个扫描 + 7 个扫描,两段列数不同),排版上要按两段处理,不能压成一张等宽表。
一张照录伪码:figs/code1.png,来自原文 p3 右栏的无编号对照图。它没有编号、没有图注、没有外框,而且是位图(图内 0 行可抽文字),只能照录(三条前提注释见第 5.5 节)。
14.4 术语对照
| 原文 | 本页译法 | 说明 |
|---|---|---|
| radiance surface | 辐照度面 | 原文的「面的分布」里每一个可能的面 |
| radiance field loss | 辐照度场损失 | 全文的核心概念 |
| spatio-directional | 空间方向性 | 描述辐照度场是「位置 × 方向」的函数 |
| non-local perturbation | 非局部扰动 | 在可见面上方放一个面片,而不是只动面上的点 |
| occupancy field | 占用场 | α(x) ∈ [0,1] |
| candidate | 候选(面) | 光线上被当作潜在面的采样点 |
| free-flight background distribution | 自由飞行背景分布 | 按占用值序贯随机决定背景面的分布 |
| weight / candidate / background | 权重项/候选项/背景项 | 式 (7) 与式 (8) 里三个带标注的项 |
| volume relaxation | 体积松弛 | 在难处放开面假设、允许体积混合的可选变体 |
| many-worlds(PBR-MW) | 多世界 | Zhang 等 2024 的「互不作用的面分布」概念 |
| level set | 水平集 | 提面时取的水平集 |
| floater | 浮动残片 | 训练早期过度优化留下的伪影 |
14.5 怎么读这篇
三句话:
- 先看第 1 章的两张图(图 1-1 与图 2-1),把「谁在前谁在后」这个唯一的动作记住,全文其余部分都是它的展开。
- 第 3–5 章是主文的全部推导(式 (1)–(5)),第 6–7 章是那个等号的证明(式 (6)–(14))。如果只看一节,看第 5.3 节:式 (5) 把「透过率 × 占用 × 损失」三样放进同一个乘积,是把颜色换成损失之后得到的自然形状。
- 第 10 章是最重的一章(七张表 + 两处性能账)。读表 1 与表 2 时记住一句话:本篇的代价落在「逐像素颜色自由度」上(PSNR 低 0.1 dB),收益落在「面」与「速度」上(2.4× 帧率、1 分钟训练)。
最后一处提醒:本篇的定位不是替代体渲染,而是把「面」这件事从启发式挪回方程里。 原文自己把这一点说得最省:推导从演化的面出发,结束时得到的是沿光线积分损失的方程[§6, p6]。