查看原文
其他

Google NeRF实时大场景渲染重大突破,可终端流式加载~

深度抑郁患者 GIS小丸子
2024-09-08
最近Google DeepMind和Google Research团队联合发布了一份名为《SMERF: Streamable Memory Efficient Radiance Fields for Real-Time Large-Scene Exploration》的研究成果,该成果最主要的突破就是没有利用3D Gaussian Splatting这种栅格化的技术就可以实现NeRF大场景在笔记本以及手机端的实时流式加载和渲染,下图演示的就是一个室内场景在笔记本浏览器中的实时渲染效果。
根据论文的描述,SMERF的提出有几个比较重要的研究基础:
1、提升NeRF的速度,NeRF虽然在效果上还不错,但是其在训练速度以及实时方面都存在耗时过长的问题,所以也就针对这个问题出现了不少的研究方案,比如通过预先计算一些与视角无关的颜色以及透明度,并将他们存储到一些稀疏的体数据结构,或者将一个大的场景分解为一些小的MLPs网格,可以提升训练以及渲染的效率,但是这种以空间换时间的做法一般会导致内存的消耗增加。
所以针对如何平衡内存使用以及渲染时间这个问题,又产生了类似MERF这方案,该方案就研究如何在受限的内存上实现这种MLPs网格的快速表达,这也是SMERF的研究基础。
2、提升NeRF的质量,NeRF社区在抗锯齿,去除毛刺以及稳定性方面提出了很多方法,其中比较有代表性的就是Zip-NeRF,其采用基于快速网格的多重采样来实现抗锯齿,来实现大型环境的高质量渲染,但是这种方案在高分辨的情况下难以满足实时渲染的效率要求,因而Google团队就考虑使用蒸馏技术将Zip-NeRF训练好的模型蒸馏到MERF的子模型中,从而来提升渲染速度。
3、基于栅格化的视图合成,其实在这个方面比较具备代表性的就是3D Gaussian Splatting技术,这个技术其实是介于点云以及NeRF中间的一种表达方式,在表达上没有直接使用点,也没有用辐射场,而是使用了类似高斯椭圆这种“软点”,然后再利用神经网络训练优化进行这些软点的融合和叠加,从而取得比较好的表达效果,同时又可以利用当前GPU的栅格化渲染的能力,所以可以实现实时渲染,但是这种方法会在一些地方形成比较明显的“毛刺”,这也是SMERF重点对比的对象。
4、大尺度场景NeRF表达,NeRF最早的构建方式主要还是针对围绕对象的局部场景,但是要扩展到更大的场景目前在这个方面的两个主要做法就是:第一、融合抗锯齿技术的基于网格的辐射场;第二、基于相机的位置将大的场景分成多个区域的场景,分开为每个区域训练NeRF,但是这里面需要针对一些重迭的区域设置冗交叉的场景,所以难以扩展到城市这个级别下来。
而在SMERF的方案中,其将整个场景氛围多个子模型区域,每个子模型使用局部坐标,每个子模型都可以表达整个场景,但是大部门的模型容量只用于自己归属的区域,然后每个么分区中都实例化了一系列和当前空间位置铆定的MLPs权重,参数化延迟外观模型,它是一个渲染期间和相机位置相关的三线性插值函数,下图的b&c呈现的就是相机位于子模型内和子模型外的可视化处理方式。
5、蒸馏和NeRF,蒸馏是深度学习中一个非常强大的概念,其核心就是通过训练一个小模型来近似一个大模型的能力,比如Open AI停掉字节跳动的接口,本质上字节利用Open AI已经训练好的模型的输出来训练自己的模型,本质也是一个蒸馏的过程,所以这个目前是普遍发生的,这个方法自然也被应用到NeRF领域中,比如把大场景的MLPs蒸馏到一个小的网格MLPs中以及把一些代价比较高的二次光线反射能力蒸馏到一个清凉的模型中。而Google SMERF的关键工作就是要将预训练好的大尺度、高质量的Zip-NeRF模型蒸馏到一系列的类似MERF的子模型中。
在实时渲染方面,可以打开官方给出的示例,可以发现根据视角的变化,后台持续在加载一系列的RAW文件,非常类似我们现在常用的3D或者2D的地图瓦片,根据文章的介绍,这些RAW文件其实是每个子区域3个高分辨率的2D平面的Feature Maps、字节存储的低分辨率稀疏网格、浮点数组存储的延迟网络参数等。
而在渲染调度的时候,则也是采用类似“热交换”的方法,进行子模型的调度,不断把中心的模型调度到当前内存中,其他的子模型也保留继续渲染周边区域,这中方式在我们行业中应用的比较广泛就不再过多介绍。
SMERF当前所谓的大场景更多是一种相对的说法,指的是全部的室内空间,目前还没有给出整个城市级别的演示效果,但是根据Google Maps中对于Immersive View的需要,下一步应该就是要完善方案,解决室外空间的实时渲染了,这个期待未来Google的进展。 
继续滑动看下一个
GIS小丸子
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存