博客专栏

EEPW首页>博客> CVPR2023,手机上即可部署NeRF?更加高效轻捷的三维重建技术

CVPR2023,手机上即可部署NeRF?更加高效轻捷的三维重建技术

发布人:计算机视觉工坊 时间:2023-08-20 来源:工程师 发布文章

图片

NeRF

NeRF(Neural Radiance Fields)是一种新兴的三维重建技术,仅用2D的posed images作为监督,即可表示复杂的三维场景。NeRF的主要任务是新视角合成,通过输入一系列不同角度的同个物体的图像及对应的位姿,我们可以获得一些新视角的图像。

1 前言

本文提出了一种基于纹理多边形的神经辐射场(NeRF)的新表示形式,该多边形可以通过标准渲染管道高效合成新图像。本文使用的方法是将NeRF表示为一组多边形,其纹理代表二进制不透明度和特征向量。使用 z 缓冲区对多边形进行传统渲染会生成具有每个像素特征的图像,这些图像由在片段着色器中运行的依赖视图的小型 MLP 进行解释,以生成最终的像素颜色。本文提出了一种基于纹理多边形的神经辐射场(NeRF)的新表示形式MobileNeRF(Mobile Neural Radiance Fields)。本文的主要贡献如下:

  • MobileNeRF 相比与名为 SNeRG 的最先进方法,在保持相同输出质量的同时。就速度而言,比SNeRG快10倍,这使得在移动设备上实时渲染 3D 场景成为可能。这里也推荐「3D视觉工坊」新课程《彻底搞****觉三维重建:原理剖析、代码讲解、及优化改进》
  • 通过存储表面纹理而不是体素纹理,MobileNeRF 比其他方法消耗更少的内存。这使得在内存和功率有限的集成 GPU 上运行该方法成为可能。对于移动设备来说,这是一个重要的优势,与台式计算机相比,移动设备的资源有限。
  • MobileNeRF 在网络浏览器上运行,并且与所有经过测试的设备兼容。这是因为查看器是一个 HTML 网页,可以从任何装有 Web 浏览器的设备上访问该网页。
  • MobileNeRF 允许对重建的物体/场景进行实时操作,因为它们是简单的三角形网格。
2 相关背景

本文的工作属于视图合成领域,涵盖光场、基于图像的渲染和神经渲染。本文重点关注实时渲染输出视图的方法。光场的方法通过存储密集的图像网格,从而实现高质量场景的实时渲染,尽管相机自由度有限且存储开销很大。其他方法利用显式 3D 几何结构来实现更多的相机自由度。早期的方法将依赖于视图的纹理应用于 3D 网格,但后来的方法将卷积神经网络作为后处理步骤来提高质量。或者,输入几何体可以简化为带有 alpha 的纹理平面的集合。基于点的表示通过在训练后处理网络时联合细化场景几何形状来进一步提高质量。然而,由于这种卷积后处理在每个输出帧上独立运行,因此通常会导致缺乏3D 一致性。此外,与本文的工作不同,它们需要强大的桌面 GPU,并且尚未被证明可以在移动设备上运行。最后,与上述绝大多数方法不同,MobileNeRF不需要重建的3D 几何形状作为输入。NeRF 将场景表示为连续不透明场和与视图相关的颜色,并通过体积渲染生成图像。这种表示是3D一致且高质量的结果。然而,渲染一个NeRF涉及在每个像素的多个3D位置评估大型神经网络,使得实现实时渲染变得困难。最近的工作提高了 NeRF 的训练速度。FastnerF 使用从粗到精的方法来加快渲染过程,而 PlenocTrees 使用分层八叉树结构来表示场景并加速渲染。另一方面,SNeRG 使用稀疏网格表示,并使用小型神经网络作为后处理来评估视图依赖性。在这些实时方法中,只有 SNeRG 已被证明可以在无需访问 CUDA 的低功耗设备上工作。由于本文的方法直接针对低功耗硬件上的渲染,因此在实验中主要与 SNeRG 进行比较。

3 方法

给定一组校准的图像,寻求优化表示以实现高效的新视图合成。MobileNeRF的隐式特征表示由多边形网格组成,其纹理图用于存储特征和不透明度。在渲染时,给定相机姿势,采用两阶段延迟渲染过程:渲染阶段 1 – 将网格栅格化到屏幕空间并构建特征图像(图 2c),即我们在 GPU 内存中创建延迟渲染缓冲区;渲染阶段 2 – 通过在片段着色器(即小型 MLP)中运行的(神经)延迟渲染器将这些特征转换为彩色图像,该渲染器接收特征向量和视图方向并输出像素颜色(图 2d)。图片本文的视图表示是在三个训练阶段构建的,逐渐从类似 NeRF 的连续表示转向离散表示:训练阶段 1——训练一个具有连续不透明度的类似 NeRF 的模型,其中体积渲染正交点是从多边形网格导出的;训练阶段2——对不透明度进行二值化,因为虽然经典光栅化可以轻松丢弃片段,但它们无法有效地处理半透明片段。训练阶段3——提取稀疏多边形网格,将不透明度和特征烘焙到纹理图中,并存储神经延迟着色器的权重。网格存储为 OBJ 文件,纹理贴图存储为 PNG,延迟着色器权重存储为JSON 文件。当使用标准 GPU 光栅化管道时,本文的实时渲染器只是一个 HTML 网页。

3.1 Continuous training(Training Stage 1)

该部分的输入由多边形网格 M=(T , V) 和三个 MLP 组成。网格拓扑 T 是固定的,但与 NeRF 类似,通过最小化训练图像中像素的预测颜色和真值真实颜色之间的均方误差,以自动解码方式优化顶点位置 V 和 MLP图片均方误差:图片亮度公式:图片其中,涉及到的参数是由图中的三个MLP结构输出的:图片多边形网格:图片作者描述了Synthetic 360 °场景中使用的多边形网格,并在补充中给出了Forward - Face和Unbounded 360 °场景的配置。二维示意图如上。首先在以原点为中心的单位立方体中定义了一个大小为P × P × P的规则网格G;通过在每个体素上创建一个顶点来实例化V,通过在连接四个相邻体素顶点的网格边上创建一个四边形(两个三角形)来实例化T。将顶点位置相对于体素中心和大小进行局部参数化,得到V∈[-.5 , +.5]P × P × P × 3自由变量。在优化过程中,将顶点位置初始化为V = 0,对应于一个规则的欧几里得格子,并对其进行正则化处理,以防止顶点退出其体素,并在优化问题欠约束时促使其回到中性位置:图片正交点:图片由于计算MobileNeRF的MLPs是昂贵的,作者采取了一个加速网格来限制正交点的基|K|。正交点只针对与射线相交的体素集合生成;我们使用一个加速网格G来修剪那些不太可能包含几何形状的体素;最后,我们计算射线与M中入射到体素顶点的面之间的交点,从而得到最终的求交点集;见上图。使用重心插值将交点到相交三角形中三个顶点的梯度反向传播。综上,对于每一条输入射线r:图片B相当于射线与被加速网格修剪后的正交点集合,K代表射线与B中正交点连线的交点 加速网格G的Loss图片其中,∇[ . ]是阻止加速网格(负)影响图像重建质量的停止梯度算子。

3.2 Binarized training (Training Stage 2)

典型硬件实现的渲染通道并不天然支持半透明网格。渲染半透明网格需要繁琐的(每帧)排序,以便按从后到前的顺序执行渲染,以保证正确的alpha合成。通过将平滑不透明度αk∈[0,1]从式(3)转换为离散不透明度来克服这个问题:图片为了稳定训练,作者对连续和离散模型进行联合训练:图片图片这里的C(r)分别是连续不透明度和离散不透明度对应的输出亮度,当stage2的loss收敛时,对以下两个MLP权重进行微调,使得图片最小化。图片图片

3.3. Discretization (Training Stage 3)

经过二值化和微调后,作者将网格表征转换为显式的多边形网格(OBJ)。然后创建一个纹理图像,其大小与可见四边形的数量成正比,对于每个四边形,我们在纹理中分配一个K × K的块,类似于Disney的Ptex。作者在实验中使用了K = 17,使得四边形具有16 × 16的纹理,并使用了半像素的边界填充。然后,我们迭代纹理的像素,将像素坐标转换为3D坐标,并quad离散不透明度的值和特征转化为纹理图。我们将[0,1]量化为8位整数,并将纹理存储为(无损压缩)的PNG图像。图片到这里相当于得到了obj、纹理图、和延时着色权重

3.4. Anti-aliasing

在经典的栅格化流水线中,混叠是获得高质量渲染必须考虑的问题。而经典的NeRF幻觉通过半透明体来平滑边缘,如前所述,半透明特性需要每帧多边形排序。我们通过超采样抗混叠来克服这个问题。作者首先对特征(在2 ×分辨率)进行栅格化:图片然后平均亚像素特征来产生我们馈送给我们的神经延迟着色器的反走样表示:图片

3.5. Rendering

上述优化过程的结果是一个纹理多边形网格(其中,纹理图存储特征而不是颜色)和一个小的MLP (将视角方向和特征转换为颜色)。这种表示的渲染是使用延迟渲染管道分两次完成的:1.用零缓冲器对纹理网格的所有面进行光栅化,以产生每像素12个通道的2M×2N的特征图像,包括8个通道的学习特征、一个二进制不透明度和一个3D视图方向;2.通过渲染一个纹理化的矩形来合成一个M × N输出的RGB图像,该矩形使用特征图像作为其纹理,并使用线性滤波来平均特征以抗混叠。我们对alpha非零的像素应用小MLP将特征转换为RGB颜色。小型MLP被实现为GLSL片段着色器。

4 实验

作者在三个数据集上进行测试:the 8 synthetic 360◦ scenes from NeRF, the 8 forward-facing scenes from LLFF, and 5 unbounded 360◦ outdoor scenes from Mip-NeRF 360。由于SNeRG 目前所知的唯一可以在非专业设备上实时运行的NeRF模型,所以作者在实验部分主要与SNeRG进行比较。这里也推荐「3D视觉工坊」新课程《彻底搞****觉三维重建:原理剖析、代码讲解、及优化改进》

4.1 Comparisons

图片图片图片

4.2 Ablation studies

图片图片

5 总结

作者提出了 MobileNeRF,这是一种利用经典光栅化管道(即 z 缓冲区和片段着色器)在各种计算平台上执行基于表面的神经场的高效渲染的架构。它的帧速率比之前最先进的技术 (SNeRG) 快一个数量级,同时生成同等质量的图像。同时,该工作也还有一些局限性,MobileNeRF估计的表面可能不正确,特别是对于具有镜面表面和/或稀疏视图的场景;它使用二元不透明度来避免对多边形进行排序,因此无法处理半透明的场景;使用固定的网格和纹理分辨率,这对于特写新颖视图合成来说可能太粗糙;它在没有明确分解照明和反射率的情况下对辐射场进行建模,因此不能像最近的方法那样处理光泽表面。通过高效的部分排序、细节层次、mipmap 和表面着色来扩展多边形渲染管道应该可以解决其中一些问题。此外,由于 NeRF 的 MLP 主干,MobileNeRF 目前的训练速度很慢。图片

6 参考

https://zhuanlan.zhihu.com/p/559025481https://zhuanlan.zhihu.com/p/512538748


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词:AI

相关推荐

技术专区

关闭