Command Palette
Search for a command to run...
光栅化边缘梯度:以可微方式处理不连续性
光栅化边缘梯度:以可微方式处理不连续性
Stanislav Pidhorskyi Tomas Simon Gabriel Schwartz He Wen Yaser Sheikh Jason Saragih
摘要
计算渲染过程的梯度对于计算机视觉和图形学中的多种应用至关重要。然而,由于不连续性和渲染近似,特别是对于基于表面的表示和基于光栅化的渲染,这些梯度的精确计算具有挑战性。我们提出了一种新颖的方法,用于计算基于光栅化的可微渲染器中可见性不连续处的梯度。我们的方法通过精心设计的近似策略,优雅地简化了传统上复杂的问题,从而提供了一种直接、有效且高性能的解决方案。我们引入了微边缘的新概念,使得我们可以将光栅化图像视为一个可微的、连续过程的结果,该过程与本质上不可微的、离散像素的光栅化保持一致。该技术无需渲染近似或对前向传递进行其他修改,从而保持了渲染图像的完整性,使其适用于光栅化掩码、深度和法线图像,在这些图像中滤波是不可行的。利用微边缘简化了不连续处的梯度解释,并能够处理几何相交,相比现有技术具有优势。我们在动态人头场景重建中展示了我们的方法,有效处理了相机图像和分割掩码。
一句话总结
Meta 旗下 Reality Labs 的研究人员提出了一种可微分光栅化梯度方法,利用新颖的微边(micro-edge)来处理可见性不连续问题,在不修改前向传播的前提下简化了梯度计算,保持了掩码、深度和法线图像的完整性,并支持几何相交处理,在动态人体头部重建中得到了验证。
核心贡献
- 引入了一种简化的近似策略,用于计算基于光栅化的可微分渲染器中可见性不连续处的梯度,将先前的边缘采样和分析抗锯齿思想提炼为一种快速且直接的解决方案,具备准确的梯度。
- 引入了微边(micro-edge)概念,将光栅化图像视为与离散像素光栅化对齐的可微分连续过程的结果,无需渲染近似或前向传播修改,适用于掩码、深度和法线图像等难以进行滤波的场景。
- 显式处理自穿透几何和几何相交,几乎无额外开销,并在多种逆向渲染场景中展示了增强的网格重建保真度,包括动态人体头部场景重建中的全自动口腔内部拟合。
引言
可微分渲染是三维物体重建、姿态估计以及新兴的文本到三维生成模型的核心使能技术,其中基于网格的光栅化因其在不透明表面上的高性能而保持吸引力。然而,光栅化依赖于离散操作来确定可见性和覆盖范围,这给梯度计算带来了严峻挑战,尤其是在三角形边界、遮挡边缘和几何相交处。先前的方法通过分析抗锯齿、蒙特卡洛采样或衰减函数来近似软隶属度,但这些方法存在近似误差,无法处理相交情况,且某些方法会改变渲染图像或需要昂贵的预处理来处理相互穿透的几何体。作者引入了一种微边(micro-edge)公式,将光栅化图像解释为连续过程的结果,在不修改前向传播的情况下产生简单、快速且准确的梯度估计。这实现了对分割掩码、深度和法线图的有效优化,并解锁了复杂应用,如动态面部性能捕捉中的精确口腔内部拟合,其中遮挡和变形十分显著。
方法
作者介绍了 EdgeGrad,一个可微分光栅化框架,旨在计算像素值相对于网格顶点位置的梯度,包括遮挡和解除遮挡等可见性变化。该方法并非通过连续抗锯齿表示来近似光栅化,而是依赖于一种直接近似,将所有几何边界分解为严格垂直或水平的微边(micro-edge)。这些微边精确定位于像素中心之间,确保边界永远不会穿过像素,每个像素要么被完全覆盖,要么完全未被覆盖。这种构造有效地将光栅化过程视为应用了抗锯齿滤波器,使滤波器成为恒等操作,同时保持离散像素输出。
请参考框架图了解微边构造及相邻像素间相应的强度变化。
梯度计算被公式化为一次分析一个相邻像素对之间的边缘的局部操作。对于由位于位置 pAB 的边缘分隔的水平像素对,强度 IA 和 IB 使用 Heaviside 阶跃函数建模以捕捉不连续性。由于边缘恰好位于像素边界上,在 pAB=0 处会出现 C1 不连续性,使得强度值在该精确点不可微。作者通过计算左右两侧导数的单侧极限并取平均值来规避这一问题。由此得到损失函数相对于边缘位置的梯度为 ∂pAB∂L=21(∂IA∂L+∂IB∂L)(IA−IB)+Ω,其中 Ω 表示来自图元平滑内部区域的梯度贡献。
为了将这些梯度传播回场景参数(即三角形顶点位置),需要将边缘梯度散布到相邻片段。反向传播流程追踪损失梯度,并根据边缘移动如何影响片段位置将其分发到相关片段上。 请参考梯度计算流程图了解反向传播过程。
片段梯度的计算需要将边缘梯度乘以偏导数 ∂r∂pAB,该导数关联边缘移动与片段移动之间的关系。该导数的值在很大程度上取决于形成边缘的图元之间的几何关系。该框架采用一种分类启发式方法,通过比较相邻像素对的三角形 ID 并针对相邻像素的三角形测试像素中心来检查每个相邻像素对。 请参考边缘分类示意图了解应用于不同几何配置的决策逻辑。
该分类将边缘分为四种不同类型。如果三角形 ID 相同,则不存在边缘,不进行梯度散布。当 ID 不同时,该方法测试像素中心是否位于相邻三角形内部。如果两个中心都位于各自相邻三角形之外,则图元被分类为相邻,共享共同边界而无不连续性,不进行梯度散布。如果一个中心位于另一个三角形内部,则配置被识别为悬垂(overhanging),梯度仅散布到前景图元。如果两个中心都位于彼此的三角形内部,则图元相交。
对于相交图元,导数 ∂r∂p 通过分析 x-z 平面中的交线来推导,其中 z 轴垂直于图像平面。微边公式将这种复杂的 3D 交互简化为 2D 问题。 请参考几何相交推导图了解 x-z 平面分析。
作者通过固定一个片段并改变另一个片段,然后交换角色,利用固定和变化图元的法线来计算导数。一旦所有边缘类型的片段梯度计算完成,它们通过重心插值器模块的反向函数进行累积。这会将逐片段梯度汇聚为最终顶点梯度,完成可微分光栅化流程,无需额外的连通性数据结构或修改初始光栅化图像。
实验
实验验证了一种边缘梯度光栅化方法,即使在几何相交的情况下也能产生准确的前向和后向梯度,优于 nvdifrast,并以较低的计算成本匹配光线追踪。在 Blender 数据集上的场景重建产生了改进的网格细节,且运行时在各种图像尺寸下都更快。该方法进一步应用于动态头部场景拟合,正确的边缘梯度使得复杂的口腔内部几何(包括牙齿、舌头和嘴唇)的全自动重建成为可能,分割掩码有助于锚定这些区域。
所提出的 EdgeGrad 方法在所有测试的具有复杂几何和非朗伯材质的场景中,一致地实现了比 nvdiffrast 基线更高的 PSNR 和 SSIM。它还显著优于忽略不连续性梯度的纯连续基线,而缺乏相交处理的变体表现略差,但仍高于 nvdiffrast。结果表明,准确的边缘梯度提高了重建质量,特别是对于具有复杂几何的场景。EdgeGrad 在每个场景的 PSNR 上都优于 nvdiffrast,其中 Chair、Hotdog 和 Ficus 的增益最大。在大多数场景中,EdgeGrad 也改善了 SSIM,尤其是在 Chair、Ship、Ficus 和 Drums 上。纯连续基线的得分低得多,凸显了处理不连续性梯度的重要性。
EdgeGrad 在所有测试的具有复杂几何和非朗伯材质的场景中,在 PSNR 和 SSIM 方面均一致优于 nvdiffrast 基线,其中 Chair、Hotdog 和 Ficus 等场景的增益最大。忽略不连续性梯度的纯连续基线表现明显更差,凸显了准确的边缘梯度对重建质量的重要性。缺乏相交处理的变体仍然优于 nvdiffrast,但略逊于完整版 EdgeGrad,证实了精确的不连续性梯度是关键,尤其是对于复杂几何。