0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NeurlPS'23开源 | 大规模室外NeRF也可以实时渲染

3D视觉工坊 来源:3D视觉工坊 2023-11-08 16:41 次阅读

0. 笔者个人体会

NeRF确实很火,但现有工作主要还是面向室内场景。因为室外环境是一个典型的无边界问题,这样NeRF射线就没办法采样,而且室外环境的计算量也是很大的问题。

今天,笔者将为大家分享一篇NeurlPS 2023开源的最新工作UE4-NeRF,是一种大规模室外场景的实时NeRF框架,还支持交互式的编辑渲染。希望能对NeRF领域的小伙伴有所帮助~

1. 效果展示

先介绍一下UE4-NeRF的输入输出,输入是无人机采集的大规模场景,输出是在UE4中进行的实时渲染,还有场景编辑功能。

10af77c6-7cf9-11ee-939d-92fbcf53809c.png

然后看看具体的重建效果对比,UE4-NeRF渲染的清晰度很高,但之前的Mobile-NeRF和Mega-NeRF就比较模糊模糊。

10d4a906-7cf9-11ee-939d-92fbcf53809c.png

即使是对玻璃这种半透明物体,也可以渲染的很好。

10f12108-7cf9-11ee-939d-92fbcf53809c.png

代码已经开源了,目前支持Windows和20/30系列显卡,感兴趣的小伙伴可以测试一下效果。下面我们来看具体的论文信息

2. 摘要

神经辐射场 (NeRF)是一种新颖的隐式三维重建方法,显示出巨大的潜力,受到越来越多的关注。它能够仅从一组照片中重建3D场景。然而,它的实时渲染能力,尤其是对于大规模场景的交互式实时渲染,仍然具有显著的局限性。为了应对这些挑战,本文提出了一种新的神经渲染系统UE4-NeRF,专门用于大规模场景的实时渲染。我们把每个大场景分成不同的子场景。为了表示分割后的独立场景,我们通过在场景中构造多个正八面体来初始化多边形网格,并在训练过程中不断优化多边形面的顶点。从细节层次(LOD)技术中汲取灵感,我们为不同的观察层次训练了不同细节层次的网格。我们的方法与Unreal Engine4 (UE4)中的光栅化管道相结合,实现了4K分辨率的大规模场景的实时渲染,帧率高达43 FPS。UE4中的渲染也有助于后续阶段的场景编辑。此外,通过实验,我们证明了我们的方法实现了可与最先进的方法相媲美的渲染质量。

3. 算法解析

UE4-NeRF的核心思想是将大场景分块为多个小场景,将小场景表征为多面体,然后再不断优化网格顶点位置。

具体的Pipeline包含三个模块:

(1) 训练模块,划分子NeRF并初始化每个小场景的网格。整个训练过程不断优化编码器-解码器网络参数和网格顶点位置;

(2) 预渲染,提取不同细节层次的多边形网格,为最终渲染做准备;

(3) 渲染模块,由推理子模块和UE4子模块组成,通过通信来实现最终的实时渲染。

1122474c-7cf9-11ee-939d-92fbcf53809c.png

Pipeline里有几个trick:

1、分割block时,实际训练区域要比提取区域稍大一些,这样来保证不同block边界的平滑过渡;

2、初始化是先建立一个128×128×128的网格,然后选择每个网格的中心点及其六个相邻的网格(前、后、左、右、上、下)来创建多边形网格。

3、为了解决Mobile-NeRF在处理倾斜表面时遇到的收敛速度慢且不稳定的问题,使用具有20个面的正八面体,包括8个外部面和12个内部面。

然后说一下具体的训练过程:

对于从相机原点发射到像素的每条射线,计算与多边形网格的交点作为采样点。对于每个模块,编码器以位置信息pi作为输入,输出包含不透明度的8D特征向量Mi,解码器以Mi和射线方向作为输入,输出采样点的颜色。射线方向编码用的球谐系数。

114dfac2-7cf9-11ee-939d-92fbcf53809c.png

渲染就和传统NeRF很相似了,包括光度损失和深度损失两部分。不同点一个是把体密度换成了不透明度,另一个是光度损失分成了两个级别。第一级就是传统的光度损失,Vp是顶点位置:

115fdfee-7cf9-11ee-939d-92fbcf53809c.png

为了提高三角形网格与物体表面的接近度,设计了光度损失的第二个分量:

11727b9a-7cf9-11ee-939d-92fbcf53809c.png

这个损失的原理是,仅选择不透明度大于阈值的采样点。并且当累积的不透明度超过0.8时,直接停止渲染过程。刚开始训练时其实第二个损失没有什么影响,随着训练进行,第二个成分的权重逐渐增加,将不透明度集中在有限数量的特定网格上,并将其向目标压缩,从而改善渲染结果。

1186a12e-7cf9-11ee-939d-92fbcf53809c.png

下面再说这个预渲染是啥?

先一句话总结一下:利用来自加速网格的预测值来识别和移除不具有显著几何表面的网格。目的是提高网格利用率、渲染推理速度,降低存储成本。

具体流程是:

1、对每个block,除了用于训练的相机视角外,引入上方各个角度的平行射线。计算每条射线与多边形网格的交点,当累积不透明度超过0.8时,光线的遍历停止。如果一个三角形面上所有交点的不透明度都低于0.3,那就直接裁掉这个面。

2、进行坐标变换,对齐获得的网格和现实世界的尺度。

3、将三角形的顶点坐标映射到它们在UV坐标中的相应位置。

11a01af0-7cf9-11ee-939d-92fbcf53809c.png

最后,就可以将预渲染的多边形网格与Unreal Engine 4 (UE4)中可用的光栅化pipeline相结合。随后,应用解码器网络将每个像素的17D特征(8个通道和9D观察方向)转换为RGB颜色。

4. 实验

训练在3090上进行,每个block大约需要训练40分钟。UE4-NeRF是面向室外大场景,具体的实验环境包括无人机采集的农村(FL)、建筑工地(CS)、工业园区(IP)。采集的图像分辨率为6000×4000像素并且包含GPS信息(用来转换尺度)。使用4k分辨率实时重建的速度为43 FPS(论文中提到提升续航后可以更快)。

11ca03ec-7cf9-11ee-939d-92fbcf53809c.png

重建精度的定量对比,UE4-NeRF的重建速度和精度都非常好,并且对GPU要求很低。这也是实时性的一个体现,毕竟无人机不能真顶一个4090去飞。

11e96106-7cf9-11ee-939d-92fbcf53809c.png

UE4-NeRF和其他3个NeRF重建效果的定性对比,NeRFacto和Instant-NGP(NVIDIA提出的5s训练)也是实时方案。结果显示UE4-NeRF特别擅长渲染小、密集、半透明的物体。

12078690-7cf9-11ee-939d-92fbcf53809c.png

训练时间和FPS的对比,Mobile-NeRF训练一个块就需要2天时间,并且需要4块3090ti。而且Mega-NeRF在训练过程中会生成几百G的临时文件。

1228e4a2-7cf9-11ee-939d-92fbcf53809c.png

低纹理区域的渲染质量也很不错。

125529fe-7cf9-11ee-939d-92fbcf53809c.png

最后是一个交互性的编辑实验,UE4-NeRF允许导入和编辑渲染的场景,还能自动处理遮挡场景(因为使用了Unreal Engine4)。而且当目标遮挡NeRF渲染的场景时,由于NeRF计算量减少,渲染帧率略有提高。这里也推荐「3D视觉工坊」新课程《基于深度学习的三维重建MVSNet系列 [论文+源码+应用+科研]》。

129146a0-7cf9-11ee-939d-92fbcf53809c.png

5. 总结

UE4-NeRF提出了一个面向室外大场景的实时NeRF渲染系统,主要思想是将场景划分为多个block,并为每个block训练单独的NeRF。感觉这项工作还是挺有意思的,但是模型设计上用了特别多的trick。此外,作者也提到了一些他们工作的问题:

1、依赖GPU,渲染几平方公里的大场景时内存开销太大(这好像不是问题吧?);

2、在预渲染过程中,很难捕捉到任何视角的射线,导致最终的渲染场景存在空洞。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3162

    浏览量

    48707
  • 无人机
    +关注

    关注

    228

    文章

    10336

    浏览量

    179588
  • 渲染系统
    +关注

    关注

    0

    文章

    2

    浏览量

    5669

原文标题:NeurlPS'23开源 | 大规模室外NeRF也可以实时渲染

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Veloce平台在大规模SOC仿真验证中的应用

    随着现代集成电路技术的发展,尤其是IP的大量使用,芯片的规模越来越大,系统功能越来越复杂,普通的EDA和FPGA仿真在速度和性能上已经无法胜任芯片仿真验证的要求,功能验证已经成为大规模芯片设计的一个
    发表于 05-28 13:41

    大规模特征构建实践总结

    还是参考wide&deep的套路做,其中的deep并不是很deep。而大规模模型,是非常通用的一套框架,这套模型的优点是一种非常容易加特征,所以本质是拼特征的质和量,比如百度、头条号称特征
    发表于 11-19 09:35

    大规模天线技术商用测试

    Interface 原型机、英国布里斯托大学的原型机等。下图是美国莱斯大学完成的64天线阵列样机。此外,各大设备商加紧原型机的研发,在过去的几年中,各大设备商纷纷完成了大规模天线原型样机的初步验证。在选定场景下,样机的单站测试峰值频谱效率
    发表于 06-13 07:49

    大规模MIMO的利弊

    IEEE Transactions on Information Forensics and Security上的一篇论文探讨了这种类型的攻击。他们发现,在某些情况下,当使用大规模多入多出技术
    发表于 06-18 07:54

    大规模MIMO的性能

    轨迹产生的容量斜坡仍然比需求线平坦。面对此挑战,3GPP 标准实体近来提出了数据容量“到2020 年增长1000 倍”的目标,以满足演进性或革命性创意的需要。这种概念要求基站部署极大规模的天线阵
    发表于 07-17 07:54

    如何去推进FTTH大规模建设?

    如何去推进FTTH大规模建设?影响FTTH大规模建设的原因有哪些?
    发表于 05-27 06:58

    基于三角形二叉树的实时大规模地形渲染算法

    提出一种大规模地形渲染算法,对大规模地形进行分块,用三角形二叉树表示地形网格,在实时漫游中,通过强制分割和强制合并实时更新网格,充分利用帧与
    发表于 04-01 09:20 17次下载

    从多视角图像做三维场景重建 (CVPR'22 Oral)

    最近,有方法提出基于隐式神经表示做三维重建。NeRF [3] 通过可微分的体积渲染技术从图像中学习隐式辐射场。NeRF可以实现有真实感的视角合成,但是几何重建结果噪音很严重,主要是因为
    的头像 发表于 02-20 10:11 2733次阅读

    联合NeRF与特征网格,实现超大规模城市渲染

    首先在预训练阶段使用特征网格对目标场景进行建模,从而粗糙地捕捉场景的几何形状和外观。然后使用粗特征网格,1) 引导 NeRF 点采样,使其集中在场景表面周围;2) 为 NeRF 的位置编码提供关于场景几何形状和在采样位置上的外观额外特征。
    的头像 发表于 05-08 11:14 566次阅读
    联合<b class='flag-5'>NeRF</b>与特征网格,实现超<b class='flag-5'>大规模</b>城市<b class='flag-5'>渲染</b>

    了解NeRF 神经辐射场

    的工作原理是自监督的,通过在有限的输入视图上训练数据,可以用较少的数据集生成高质量的渲染。相比传统方法中使用离散化的网格或体素表示场景,NeRF的连续函数表示具有优势,并能够从任意角度渲染
    的头像 发表于 06-12 09:52 5379次阅读
    了解<b class='flag-5'>NeRF</b> 神经辐射场

    Nerf Alexa家庭防御炮塔开源构建

    电子发烧友网站提供《Nerf Alexa家庭防御炮塔开源构建.zip》资料免费下载
    发表于 07-10 14:38 0次下载
    <b class='flag-5'>Nerf</b> Alexa家庭防御炮塔<b class='flag-5'>开源</b>构建

    华南理工贾奎团队ICCV&amp;apos;23新作:支持重新照明、编辑和物理仿真

    现有的文本到三维模型的生成方法通常使用NeRF等隐式表达,通过体积渲染将几何和外观耦合在一起,但在恢复更精细的几何结构和实现逼真渲染方面存在不足,所以在生成高质量三维资产方面效果较差。
    的头像 发表于 07-29 16:25 479次阅读
    华南理工贾奎团队ICCV&<b class='flag-5'>amp</b>;<b class='flag-5'>apos</b>;<b class='flag-5'>23</b>新作:支持重新照明、编辑和物理仿真

    利用PyTorch实现NeRF代码详解

    神经辐射场(NeRF)是一种利用神经网络来表示和渲染复杂的三维场景的方法。它可以从一组二维图片中学习出一个连续的三维函数,这个函数可以给出空间中任意位置和方向上的颜色和密度。通过体积
    的头像 发表于 10-21 09:46 707次阅读

    NeurlPS&;apos;23开源 | 首个!开放词汇3D实例分割!

    我们介绍了开放词汇3D实例分割的任务。当前的3D实例分割方法通常只能从训练数据集中标注的预定义的封闭类集中识别对象类别。这给现实世界的应用程序带来了很大的限制,在现实世界的应用程序中,人们可能需要执行由与各种各样的对象相关的新颖、开放的词汇表查询所指导的任务。
    的头像 发表于 11-14 15:53 584次阅读
    <b class='flag-5'>NeurlPS&</b>;<b class='flag-5'>apos</b>;<b class='flag-5'>23</b><b class='flag-5'>开源</b> | 首个!开放词汇3D实例分割!

    揭秘:实时渲染、离线渲染、云渲染和混合渲染的区别

    遇到这些概念,或者一些3D渲染引擎产品的时候,可以按照这些渲染分类,去快速的进行定位和分析,更好的帮助我们理解和学习。一、实时渲染
    的头像 发表于 12-26 08:27 740次阅读
    揭秘:<b class='flag-5'>实时</b><b class='flag-5'>渲染</b>、离线<b class='flag-5'>渲染</b>、云<b class='flag-5'>渲染</b>和混合<b class='flag-5'>渲染</b>的区别