什么,你还不知道NeRF? 

作为今年计算机视觉领域最火的AI技术,NeRF可谓是应用广泛,前景一片大好。 

B站上的小伙伴可算是把这项技术玩出了新花样。 

有望取代Deepfake?揭秘今年最火的NeRF技术有多牛

抛砖引玉

那么,究竟NeRF是什么? 

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

一石激起千层浪,自此之后NeRF迅速发展起来被应用到多个技术方向,如「新视点合成、三维重建」等。 

NeRF其输入稀疏的多角度带pose的图像训练得到一个神经辐射场模型,根据这个模型可以渲染出任意视角下的清晰的照片,如下图所示。也可以简要概括为用一个MLP去隐式地学习一个三维场景。 

有望取代Deepfake?揭秘今年最火的NeRF技术有多牛

网友自然而然地也会将NeRF与同样大受追捧的Deepfake做个比较。 

最近MetaPhysics发布的一篇文章就盘点了NeRF的进化史、面临的挑战和优势,并预测NeRF最终将取代Deepfake。 

大部分有关deepfake技术引人注目的话题,是指自17年deepfakes进入大众视野后开始流行的两个开源软件包:DeepFaceLab (DFL) 和FaceSwap。 

有望取代Deepfake?揭秘今年最火的NeRF技术有多牛

尽管这两个软件包都拥有广泛的用户群和活跃的开发者社区,但这两个项目与GitHub代码都没有明显的偏离。 

当然,DFL和FaceSwap的开发人员并没有闲着:现在可以使用更大的输入图像来训练deepfake模型,尽管这需要更昂贵的GPU。 

有望取代Deepfake?揭秘今年最火的NeRF技术有多牛

但其实在过去的三年里,媒体鼓吹的deepfake图像质量提升主要还是得归功于终端用户。 

他们在数据收集方面积累了「省时而难得」的经验,以及训练模型的最佳方法(有时单次实验就需要几周时间),并且学会如何利用和扩展原始2017代码的最外层限制。 

VFX和ML研究社区中的一些人正试图通过扩展架构来突破流行的deepfake包的「硬限制」,以便机器学习模型可以在高达1024×1024的图像上进行训练。 

有望取代Deepfake?揭秘今年最火的NeRF技术有多牛

其像素是DeepFaceLab或FaceSwap当前实际范围的两倍,更接近于电影和电视制作中有用的分辨率。 

接下来让我们一起了解一下NeRF吧~ 

揭开面纱 

NeRF(Neural Radiance Fields),它出现于2020年,是一种通过在神经网络内拼接多个视点照片实现重建物体和环境的方法。 

它通过使用稀疏的输入视图集优化底层连续的体积场景函数,实现了综合复杂场景视图的最好结果。 

该算法还使用全连接深度网络表示一个场景,其输入是单个连续的5D坐标(空间位置(x, y, z)和观看方向(θ, φ)),其输出是该空间位置的体积密度和相关的发射幅亮度。 

通过沿着相机光线查询5D坐标来合成视图,并使用经典的体绘制技术(volume rendering)将输出的颜色和密度投影到图像中。 

实现过程: 

有望取代Deepfake?揭秘今年最火的NeRF技术有多牛

首先将一个连续的场景表示为一个5D向量值函数,其输入是一个3D位置和2D观看方向,对应的输出是一个发射颜色c和体积密度σ。 

在实践中,采用3D笛卡尔单位向量d表示方向。利用用MLP网络近似这个连续的5D场景表示,并优化其权重。 

此外,通过限制网络来预测体积密度σ作为位置x的函数,同时还允许RGB颜色c作为位置和观看方向的函数进行预测,从而鼓励表示多视图一致。 

为了实现这一点,MLP首先处理输入的具有8个全连接层的3D坐标x(使用ReLU激活和每层256个通道),并输出σ和256维特征向量。 

这个特征向量随后与相机射线的观看方向连接,并传递给一个额外的全连接层,输出与视图相关的RGB颜色。 

此外,NeRF还引入了两个改进来实现高分辨率复杂场景的表示。第一个是位置编码,以帮助MLP表示高频函数,第二个是分层抽样过程,使其能够有效地对高频表示进行抽样。 

众所周知,Transformer架构中的位置编码可以提供序列中标记的离散位置,作为整个架构的输入。而NeRF使用位置编码是将连续的输入坐标映射到更高的维度空间,使MLP更容易逼近更高频率的函数。 

有望取代Deepfake?揭秘今年最火的NeRF技术有多牛

从图中可以观察到,去除位置编码会大大降低模型表示高频几何和纹理的能力,最终导致外观过度平滑。 

由于沿着每条相机射线在N个查询点密集评估神经辐射场网络的渲染策略十分低效,所以NeRF最后采用了一种分层表示,通过按最终渲染的预期效果比例分配样本来提高渲染效率。 

简而言之,NeRF不再只使用一个网络来表示场景,而是同时优化两个网络,一个「粗粒度」网络和一个「细粒度」网络。 

未来可期 

NeRF解决了过去的不足,即使用MLP将对象和场景表示为连续函数。相比于过往的方法,NeRF可以产生更好的渲染效果。 

但是,NeRF同样也面临许多技术瓶颈,比如NeRF的加速器会牺牲其他相对有用的功能(比如灵活性),以实现低延迟、更多交互环境以及较少训练时间的目的。 

所以,NeRF虽是一个关键性的突破,但是想要达到完美的效果,还是需要一定的时间。 

技术在进步,未来依旧可期!​