NeRF:火爆科研圈的三维重建技术大揭秘

关注公众号,发现CV技术之美

 NeRF:火爆科研圈的三维重建技术大揭秘_第1张图片

刘东生

-  联想晨星算法工程师

-【晨星小课堂】讲师

如果说最近两年最火的三维视觉技术是什么,相信NeRF是一个绝对绕不过去的名字。

这项技术一经提出,就被众多研究者所重视,对NeRF争先恐后地探索、研究、改进,让该项技术仅仅用了两年时间就成为三维视觉领域的主流。

这说明什么?我认为,这恰恰说明了NeRF拥有超强的三维表达能力和广泛的潜在应用。

今天,我们就来看一看NeRF是什么,学习下该方法到底强在哪里?

NeRF到底是什么?

NeRF(Neural Radiance Fields神经辐射场)最早是在2020年ECCV会议上的最佳论文中提出的概念,其将隐式表达推上了一个新的高度,仅用2D的posed images作为监督,即可表示复杂的三维场景。

它要处理的任务是新视角合成。我们用一个直观的表述方式来理解它的作用,如下图所示,如果我们需要对图中的挖掘机进行新视角合成,首先我们会围绕挖掘机采集不同角度的图像,之后计算每个采集角度的相机位姿,将采集的图像序列以及它们对应的位姿送入到NeRF,就可以合成一些新的视角。

也就是我们从空间中任意位置来看这个挖掘机,看到的图像应该是什么样的,NeRF可以合成出来。

NeRF:火爆科研圈的三维重建技术大揭秘_第2张图片

相比传统,NeRF到底“香”在哪

传统的三维重建根据输入的图片是深度图还是彩色图可分为主动式被动式两种重建方式,它们的原理如下面两张图所示:

被动式

NeRF:火爆科研圈的三维重建技术大揭秘_第3张图片

传统的被动式三维重建中,首先从不同角度拍摄待重建物体的彩色图像,随后通过SfM(structure from motion)等技术获得相机位姿和模型的初始点云。随后通过深度估计、点云的稠密重建、网格重建及优化和网格贴图等流程得到最终带有贴图的模型。

主动式

NeRF:火爆科研圈的三维重建技术大揭秘_第4张图片

在传统的主动式三维重建中,首先从不同角度拍摄待重建物体的深度图像,由于彩色图像有助于相机定位及给模型添加颜色,也可以在采集深度图像同时,采集对应的彩色图像。随后通过ICP(Iterative Closest Point)等技术计算相机姿态。之后将场景隐式表达为SDF体素网格模型,最后通过raycasting渲染出重建的视角,最后输出给AR设备显示。

传统的三维重建有很多缺点,例如最终重建的模型中可能会有孔洞、纹理混叠、由于体素分辨率限制丢失很多细节。

NeRF可以合成照片级别的新视角,重建的模型细节更加丰富,它通过使用稀疏的输入视图集优化底层连续的体积场景函数,实现了综合复杂场景视图的最好结果,无空洞、细节还原,且由于研究的人多,发展也尤为迅速,这也就是它的“真香”所在。

图 | 来自instant ngp

NeRF是如何做的?

NeRF:火爆科研圈的三维重建技术大揭秘_第5张图片

图片来自:原始版本Nerf

对于一个代建的物体,首先我们会选定一个boundingbox把待渲染的物体给包围起来,对于一张图片从视角到某个像素发射的一条射线而言,我们会在这条射线上采样很多点,每个黑点都有一个xyz表示它的位置。

5be1a84e55d8259f589930ab530bdc44.png

表示观察的角度。

MLP网络的输入就是boundingbox中所有黑点的五个自由度。对于每个采样点MLP网络会计算出这一点的颜色和密度,密度可以理解为这个点在这条射线方向上的一个不可见度。每个点的密度只和xyz有关,而每个点的颜色除了和点的位置有关还和观察的视角有关。之后通过volume rendering渲染出像素的颜色,和真实的颜色算误差,就可以训练网络。

NeRF也有缺点?!

虽然NeRF的优势显而易见,但在原始版本的NeRF中有存在很多缺点:

(1)训练和渲染都很慢

(2)只能表示静态场景

(3)经过训练的NeRF表示不会泛化到其他场景。

针对NeRF的不足,近两年有着各种各样的工作在不断完善它。主要的改进集中在四个方向:

(1)对于单场景的NeRF,从渲染的质量、场景大小着手。主要的改进工作有Mip-NeRF、NeRF++、Mip-NeRF-360、NeRF-W、Block-NeRF、Urban-NeRF、CityNeRF等。例如Block-NeRF可以对一个市区大小的场景进行高质量的重建。

图片来自:源自Block-NeRF

(2)针对训练的图片数量:原始版NeRF需要100张左右的图片进行训练,而PixelNeRF、IBRNet、MVSNeRF等工作只需要几张图像就可以进行高质量重建。

NeRF:火爆科研圈的三维重建技术大揭秘_第6张图片

图片来自:源自PixelNerf

(3)针对训练和渲染的速度:原始版NeRF需要数十小时训练一个小场景,而Plenoxels、instant-ngp等工作极大地加速了训练进程,instant ngp甚至只需要5s就可以训练一个场景。原始版NeRF渲染图像的速率只有0.06fps,而最近的FastNeRF、SqueezeNeRF等工作可以以200fps的速度进行渲染。

图片来自:instant NGP

(4)针对特定场景的NeRF的改进:除了上述说到的,比如针对镜面反射、针对人脸、针对动态人体领域,也有大量的改进工作。

图片来自:instant DNerf

最重要的是用在哪!

关于NeRF的应用,我们很自然想到就是自动驾驶。上面这个视频是Nvidia在今年3月份的开发者大会上展示的Nvidia自动驾驶的Demo。用NeRF进行重建可以做到虚拟和现实的实时融合。

下面的视频展示了NeRF可以模拟一些复杂的道路情况,例如对道路进行雨雪加湿等,实际上是给自动驾驶提供一个很好的模拟数据。

此外,像BlockNeRF等工作可以重建城市级别的逼真场景,也可以对场景进行不同条件下的光照渲染。可以用NeRF技术来构建整个城市的三维模型,作为元宇宙的数字地图,也可以作为游戏地图。

此外,对于工业场景来说,NeRF可以重建精细的三维模型,用于工厂的AR巡检等任务。科研、工业、能源、制造......几乎在所有的领域中都能制作出极具真实感的三维模型及场景,结合XR技术后,与当前大热的“元宇宙”概念不谋而合,也许这就是NeRF越来越火爆的原因!


x

欢迎提问

亲,看了上述的内容是否对NeRF的概念以及应用有所认识了呢?其实这些只是“冰山一角”...

还有什么关于NeRF的问题,欢迎在评论区留下您的问题~

「文章来源」

公众号:联想上研 

文章作者:联想晨星算法工程师 刘东生

NeRF:火爆科研圈的三维重建技术大揭秘_第7张图片

END

欢迎加入「三维重建交流群备注:3D

NeRF:火爆科研圈的三维重建技术大揭秘_第8张图片

你可能感兴趣的:(计算机视觉,机器学习,人工智能,深度学习,编程语言)