本科生新算法打败NeRF,不用神经网络也能移动照片,速度提升100倍。没想到没有神经网络,把照片转成3D会这么顺利。在此之前,新视角合成领域的“大牛”是近两年大火的NeRF(NeuralRadiationField)。它是一个简单的全连接神经网络,使用来自2D图像的信息作为训练数据来恢复体积3D场景。但最近,伯克利大学的研究人员提出了一种名为Plenoxels的方法。不需要神经网络,只需要梯度下降和正则化就可以达到同样的效果,而且速度快100倍!那么他们是怎么做到的呢?从NeRF到Plenoxels的进化为了帮助大家理解Plenoxels,我们先简单介绍一下NeRF模型。要为NeRF准备数据,我们首先需要一个摄像头。从不同角度拍摄大量照片后,每张2D图片的坐标和沿相机光线的观察方向形成一个5D向量(x,y,z,θ,φ)作为MLP(多层全连接神经网络)进入。我们从图(b)可以看出,射线上的点是有颜色的,每个点的颜色c=(r,g,b)和密度(σ)就是输出向量。NeRF使用体积渲染技术将生成的颜色和密度渲染为3D。由于渲染函数是可导的,我们可以最小化合成效果与实际效果的误差,从而优化神经网络的参数。其中mlp使用的参数最大可达5MB。在实际训练中,你会发现训练时间很长,一般是1-4天。这个速度和Plenoxels的11分钟相比,真是让人难以接受。将2D图片变成3D听起来不是一个小工程。Plenoxels如何在不使用神经网络的情况下实现它?其实并没有那么复杂。Plenoxels发现NeRF成功的秘诀实际上是它的体绘制方程,而与它最耗时的神经网络关系不大。那你一定很好奇这个体绘制方程的神圣性,我们先来看看吧。σi表示不透明度,ci表示颜色,δi表示距离。Ti表示有多少光通过射线上的i点,通过密度和距离计算。这个体绘制方程实际上综合了光线上每个点的颜色、不透明度、光线和距离。体绘制方程介绍完了,那么不需要神经网络的Plenoxels是如何表示图片的呢?Plenoxels首先为每个占用的体素重建一个稀疏体素表,其中包含不透明度和球谐系数。我们的颜色信息存储在这些球谐系数中。每个颜色通道需要9个系数来表示,一共有三种颜色。那么每个体素需要27个球谐系数来表示它的颜色。相机光线通过的每个点的颜色和不透明度通过最近的8体素的三线性插值计算。生成的颜色和不透明度然后使用体积渲染技术以3D形式渲染,就像NeRF一样。Plenoxels通过最小化渲染像素的均方误差(MSE)来优化体素不透明度和球谐系数,并使用TV正则化来帮助消除噪声。我们可以看到使用TV正则化的效果还是很不一样的!提速100倍仅需11分钟。下面我们以最直观的方式对比一下两款机型的速度差距。看,Plenoxels只需要几秒钟就可以达到比较锐利的效果,而NeRF只有一个模糊的阴影。同样的单机场景,NeRF使用单GPU模型v100训练需要1-2天,而Plenoxels使用单GPU通常只需要11分钟。这时候你心里一定有个疑问挥之不去,速度提高了这么多,效果真的不受影响吗?空话是空话,还是要用数据说话。PSNR(PeakSignal-to-NoiseRatio):是评价图像质量最普遍、应用最广泛的客观测量方法。PSNR值越大,失真越小。SSIM(结构相似度):衡量实际图像和合成图像之间的相似度。当两幅图像完全相同时,SSIM的值等于1。图片更相似。可以看出,Plenoxels与其他型号相比,并没有说它在所有方面都是最好的,但绝不落后于其他型号。关键是它的速度快了两个数量级!由于Plenoxels速度的大幅提升,一些目前瓶颈的下游应用成为可能,例如多反射照明和大场景的3D建模(3D生成模型)。如果在相机和体素散列上得到有效优化,该模型甚至可以使端到端3D重建成为具有管道的实际应用。相信Plenoxels的潜力不仅限于此,让我们一起期待它落地后的成果吧!加州大学伯克利分校的本科生制造的Plenoxels受到加州大学伯克利分校学生团队的强烈影响,AlexYu是一名本科生。在大学期间,他不仅学习了计算机科学和应用数学,还在伯克利的BAIR(BerkeleyArtificialIntelligenceResearch)实验室进行了3D计算机视觉方面的研究。Alex计划在2022年秋季开始他的博士之旅,让人不禁感叹AI世界人才济济。让我们拭目以待,未来他读博后会爆发出怎样的能量!GitHub代码开源目前,Plenoxels项目的代码已经在GitHub上开源。小伙伴们请注意,拍照的时候尽量把物体包围起来,并尝试不同的高度。快来试试吧!
