NeRF相关文章的综述

SLAM学术界的泰斗,Frank Dallaert(https://dellaert.github.io/),gtsam的作者,也开始转行研究NeRF,可见NeRF的价值和对视觉SLAM的意义。Frank大佬写了一系列NeRF相关文章的综述。

https://dellaert.github.io/NeRF/

https://dellaert.github.io/NeRF21/

https://dellaert.github.io/NeRF22/

 


结果让我着迷于想要了解 NeRF 的一切:-)。


除了美国的 COVID-19 大流行和政治动荡之外,2020 年也是神经体积渲染爆发的一年,由Mildenhall 等人令人印象深刻的NeRF论文引发。这篇博文是我快速了解这个令人着迷且非常年轻的领域的方式,并与您分享我的旅程;我创建它的目的是为了在研究生计算机视觉课程中教授这些材料。需要明确的是,我没有对以下任何论文做出贡献。我希望我有,因为我对围绕这个主题的创造力的爆发感到敬畏!

首先从一些定义开始,Tewari 等人的优秀评论论文定义了神经渲染的更大领域作为

“深度图像或视频生成方法可以显式或隐式控制场景属性,例如照明、相机参数、姿势、几何、外观和语义结构。”

它是一种新颖的、数据驱动的解决方案,解决了计算机图形学中长期存在的虚拟世界真实渲染问题。

神经体积渲染是指通过追踪进入场景的光线并在光线长度上进行某种积分来生成图像或视频的方法。通常,像多层感知器这样的神经网络将光线上的 3D 坐标的函数编码为密度和颜色等数量,这些数量被集成以生成图像。

概要:下面我首先讨论一些导致“NeRF 爆炸”的非常相关的相关工作,然后讨论我认为引发这一切的两篇论文,然后是有关后续工作的带注释的参考书目。我会广泛而不是深入,但提供所有项目站点或 Arxiv 条目的链接,以便您可以深入研究。除了这篇文章之外,上面提到的评论论文也是很好的背景。

重要提示以下所有图片均转载自引用的论文,版权属于作者或发表论文的组织,例如 IEEE。下面我根据版权法的合理使用条款复制了每篇论文的关键数据。

前奏:神经隐式表面

神经体积渲染的直接先驱是使用神经网络定义隐式表面表示的方法。许多 3D 感知图像生成方法使用体素、网格、点云或其他表示形式,通常基于卷积架构。但在 CVPR 2019 上,不少于三篇论文介绍了使用神经网络作为标量函数逼近器来定义占用率和/或有符号距离函数。

占用网络

占用网络是 CVPR 2019 上引入隐式、基于坐标的占用学习的两种方法之一。由 5 个 ResNet 块组成的网络采用特征向量和 3D 点并预测二进制占用率。他们还展示了 KITTI 真实图像的单视图重建结果。

占用作为学习分类器

 占用作为学习分类器

占用网络:学习功能空间中的 3D 重建,Lars Mescheder、Michael Oechsle、Michael Niemeyer、Sebastian Nowozin 和 Andreas Geiger,CVPR 2019。

即时通讯网络

IM-NET是另一种,它使用 6 层 MLP 解码器,根据给定的特征向量和 3D 坐标来预测二进制占用率。作者表明,这种“隐式解码器”可用于自动编码、形状生成(GAN 风格)和单视图重建。

使用 IM-NET 作为解码器的 GAN 生成 3D 形状

 使用 IM-NET 作为解码器的 GAN 生成 3D 形状

学习生成形状建模的隐式字段,Zhiqin Chen 和 Hao Zhang,CVPR 2019。

深SDF

最后,同样在 CVPR 2019 上,DeepSDF直接从 3D 坐标和可选的潜在代码回归有符号距离函数或 SDF,而不是二进制占用率。它使用 8 层 MPL,与第 4 层跳跃连接(设置趋势!),输出带符号的距离。

通过学习的符号距离函数 (SDF) 渲染的斯坦福兔子

 通过学习的符号距离函数 (SDF) 渲染的斯坦福兔子

DeepSDF:学习形状表示的连续符号距离函数,Jeong Joon Park、Peter Florence、Julian Straub、Richard Newcombe 和 Steven Lovegrove,CVPR 2019。

PIFu

在此基础上,ICCV 2019 PIFu论文表明,通过将 3D 点重新投影到像素对齐的特征表示中,可以学习高度详细的隐式模型。这个想法稍后会在 PixelNeRF 中得到重演,并产生了巨大的效果。

PIFu 根据像素对齐特征回归颜色和 SDF,从而实现单视图重建

 PIFu 从像素对齐特征中回归颜色和 SDF,从而实现单视图重建

PIFu:用于高分辨率服装人体数字化的像素对齐隐式函数,Shunsuke Saito、Zeng Huang、Ryota Natsume、Shigeo Morishima、Angjoo Kanazawa 和 Hao Li,ICCV 2019。

构建隐式函数

其他几种方法建立在隐式函数思想之上,并推广到二维图像的训练。值得注意的是结构化隐式函数、CvxNet、BSP-Net、深层局部形状、场景表示网络、可微分体积渲染、隐式可微分渲染器和 NASA。

同样在 ICCV 2019 上发布的《结构化隐式函数》表明,您可以组合这些隐式表示,例如,只需对它们求和即可。组合有符号距离函数的另一种方法是采用逐点最大值(在 3D 中),如CvxNet中所做的那样,该论文具有许多其他优雅的技术来从深度或 RGB 图像重建对象。BSP-Net在很多方面与 CvxNet 相似,但其核心使用二进制空间分区,从而产生一种原生输出多边形网格的方法,而不是通过昂贵的网格划分方法。最后,深度局部形状,将 DeepSDF 潜在代码存储在体素网格中,以表示更大、扩展的场景。

场景表示网络(SRN)在架构上与 DeepSDF 非常相似,但添加了可微分光线行进算法来查找学习隐式表面的最近交点,并添加 MLP 来回归颜色,使其能够从多个摆姿势的图像。

与 SRN 的工作类似,CVPR 2020可微分体积渲染论文表明,隐式场景表示可以与可微分渲染器结合使用,使其可以从图像中进行训练。他们使用术语“体积渲染器”,但实际上主要贡献是一个巧妙的技巧,使隐式表面的深度计算可微:不使用体积上的积分。

Weizmann 在 NeurIPS 2020 上展示的隐式微分渲染器工作类似,但它具有更复杂的表面光场表示,作者还表明他们可以在训练过程中细化相机姿势。

最后,神经铰接形状近似(Neural Articulated Shape Approximation)或 NASA 组成隐式函数来表示铰接物体(例如人体)。

神经体绘制

据我所知,有两篇论文将体渲染引入了视图合成领域,其中 NeRF 是最简单的,也是最有影响力的。

关于命名的一句话:下面的两篇论文和所有 Nerf 风格的论文都建立在上面编码隐式表面的工作的基础上,因此术语隐式神经方法被大量使用。然而,我个人更倾向于将该术语与曲线和曲面的水平集表示联系起来。它们与占用/SDF 式网络的共同点是 MLP 被用作从 3D 坐标到标量或多变量场的函数,因此这些方法有时也称为基于坐标的场景表示网络。在这个更大的集合中,我们关心的是下面这些的体渲染版本。

神经卷

AFAIK,用于视图合成的真实体积渲染在 Facebook Reality Labs 的Neural Volumes论文中被引入,它回归了密度和颜色的 3D 体积,尽管仍然是基于体素的表示。

在 Neural Volumes 中,潜在代码被解码为 3D 体积,然后通过体积渲染获得新图像

 在“神经体积”方法中,潜在代码被解码为 3D 体积,然后通过体积渲染获得新图像

神经体积:从图像中学习动态可渲染体积,Stephen Lombardi、Tomas Simon、Jason Saragih、Gabriel Schwartz、Andreas Lehrmann 和 Yaser Sheikh,Siggraph 2019。

本文最有趣的引述之一是关于神经体积渲染方法成功的假设(重点是我的):

[我们]建议在 3D 空间中的每个位置使用由不透明度和颜色组成的体积表示,其中通过积分投影实现渲染。在优化过程中,这种半透明的几何表示沿着积分射线分散梯度信息,有效地扩大收敛盆地,从而能够发现良好的解决方案

我认为这引起了很多人的共鸣,并部分解释了神经体积渲染的成功。我不会详细介绍该方法本身,但这篇论文值得一读。相反,让我们直接深入研究 NeRF 本身......

神经射频

引起大家议论的论文是《神经辐射场》(Neural Radiance Fields)或 NeRF 论文,其三位第一作者均来自伯克利。本质上,它们采用 DeepSDF 架构,但回归的不是带符号的距离函数,而是密度和颜色。然后,他们使用(易于微分的)数值积分方法来近似真实的体积渲染步骤。

下图说明了整体设置和渲染过程的一些细节。

NeRF 将体积场景表示存储为 MLP 的权重,在许多具有已知姿态的图像上进行训练

NeRF 将体积场景表示存储为 MLP 的权重,并在许多具有已知姿势的图像上进行训练。

通过沿着每条观察光线以固定间隔集成密度和颜色来渲染新视图

 通过沿每条观察光线以固定间隔积分密度和颜色来渲染新视图

NeRF:将场景表示为视图合成的神经辐射场,Ben Mildenhall 、Pratul Srinivasan、Matthew Tancik*、Jonathan Barron、Ravi Ramamoorthi、Ren Ng,ECCV 2020。

NeRF 能够进行非常详细的渲染的原因之一是它使用周期性激活函数(即傅立叶特征)对光线上的 3D 点和相关视图方向进行编码。这项创新后来被推广到具有周期性激活的多层网络,又名SIREN(正弦表示网络)。两者均随后在 NeurIPS 2020 上发布。

虽然 NeRF 论文表面上是在 ECCV 2020 上发表的,但实际上是在 8 月底,它于 3 月中旬首次出现在 Arxiv 上,在Twitter上引发了极大的兴趣。我记得看到视频时,对合成视图的质量感到惊讶,但更惊讶的是可视化深度图中令人难以置信的细节,例如本文顶部的图或这棵圣诞树:

值得访问(详细的)项目网站并观看所有视频。如果您是 NeRF 新手,请准备好感到惊讶:-)

可以说,NeRF 论文的影响力在于其极其简单:只是一个 MLP 接收 5D 坐标并输出密度和颜色。有一些花里胡哨的东西,特别是位置编码和分层采样方案,但许多研究人员对如此简单的架构可以产生如此令人印象深刻的结果感到惊讶(我认为)。话虽这么说,普通 NeRF 留下了许多改进的机会:

  • 无论是训练还是渲染,它都很慢。
  • 只能表现静态场景
  • 它“烘烤”照明
  • 经过训练的 NeRF 表示不能推广到其他场景/对象

在这个由 Arxiv 推动的计算机视觉世界中,这些机会几乎立即得到利用,过去 6 个月内,Arxiv 上出现了近 25 篇论文,其中绝大多数甚至是在上个月(大概是+10K CVPR 提交的一部分) 。下面我列出了我能找到的所有论文,并讨论了每个类别中的代表性论文。

表现

有几个项目/论文旨在改善原始 NeRF 论文相当慢的训练和渲染时间。

NSVF 论文使用八叉树作为组织数据结构,声称神经卷和 NeRF 都是特例。 每个体素顶点上的特征嵌入被插值并馈送到(较小的)NLP 输出密度和颜色,如 NeRF 中

 NSVF 论文使用八叉树作为组织数据结构,声称神经卷和 NeRF 都是特例。每个体素顶点上的特征嵌入被插值并馈送到(较小的)NLP 输出密度和颜色,如 NeRF 中

神经稀疏体素场,Lingjie Liu、Jiatao Gu、Kyaw Zaw Lin、Tat-Seng Sua 和 Christian Theobalt,NeurIPS 2020。

神经稀疏体素场(参见上图)将场景组织成稀疏体素八叉树,以将渲染速度提高 10 倍。

NERF++建议使用单独的 NeRF 对背景进行建模,以处理无界场景。

DeRF将场景分解为“软 Voronoi 图”,以利用加速器内存架构。

AutoInt通过直接学习体积积分大大加快了渲染速度。顺便说一句,这是一篇有趣且更通用的论文!

学习初始化使用元学习来找到良好的权重初始化以加快训练速度。

JaxNeRF使用 JAX (https://github.com/google/jax) 显着加快训练速度,从几天缩短到几小时。

动态的

至少有四项工作侧重于动态场景,使用了多种方案。


来自Nerfies 网页的预告视频展示了如何通过在通常的 NeRF 密度/颜色表示之外拟合变形场,将随意拍摄的“自拍视频”转变为自由视点视频


Nerfies(参见上面的视频)及其底层 D-NeRF 模型可变形视频,使用第二个 MLP 对视频的每一帧应用变形。

时空神经辐照度场仅使用时间作为附加输入。需要仔细选择损失才能成功训练此方法来渲染自由视点视频(来自 RGBD 数据!)。

神经场景流场改为从 RGB 进行训练,但使用单目深度预测作为先验,并通过输出用于损失的场景流进行正则化。

D-NeRF与 Nerfies 论文非常相似,甚至使用相同的缩写词,但似乎限制了翻译的变形。

NeRFlow是 Arxiv 上出现的最新动态 NeRF 变体,也使用了 Nerfies 风格的变形 MLP,但有一点不同:它整合了跨时间的场景流以获得最终的变形。

肖像

除了 Nerfies 之外,另外两篇论文也关注人物的化身/肖像。

动态神经辐射场在任务方面与 Nerfies 非常相似,但使用可变形的面部模型来简化训练和渲染。

 Dynamic Neural Radiance Fields在任务方面与 Nerfies 非常相似,但使用可变形的面部模型来简化训练和渲染

用于单眼 4D 面部头像重建的动态神经辐射场,Guy Gafni、Justus Thies、Michael Zollhöfer 和 Matthias Nießner。

DNRF专注于 4D 化身,因此通过在管道中包含可变形面部模型来施加强烈的归纳偏差。这提供了对动态 NeRF 的参数控制。

Portrait NeRF创建静态 NeRF 风格的头像,但是通过单个 RGB 头像实现的。为了实现这项工作,需要光阶段训练数据。

重新照明

NeRF 风格方法增强的另一个方面是如何处理光照,通常是通过可用于重新照亮场景的潜在代码。

NeRF-W是 NeRF 的首批后续工作之一,它优化了潜在外观代码,以便能够从控制较少的多视图集合中学习神经场景表示。

神经反射场通过在密度之外添加局部反射模型来改进 NeRF。尽管是单点光源,但它仍能产生令人印象深刻的重新照明效果。

NeRV使用第二个“可见性”MLP 来支持任意环境照明和“单反射”间接照明。

NeRD 与本节中的其他方法一样,在学习更复杂的局部反射率模型和密度方面超越了 NeRF。 NeRD 本身还为训练集中的每个场景学习全局照明模型,如面板 d 所示。

 NeRD 与本节中的其他方法一样,在学习更复杂的局部反射率模型和密度方面超越了 NeRF。NeRD 本身还为训练集中的每个场景学习全局照明模型,如面板 d 所示

NeRD:图像集合中的神经反射分解,Mark Boss、Raphael Braun、Varun Jampani、Jonathan Barron、Ce Liu 和 Hendrik Lensch。

NeRD或“神经反射率分解”是另一项工作,其中使用局部反射率模型,并且另外为给定场景推断低分辨率球谐照明。

形状

潜在代码也可用于对形状先验进行编码。

GRAF(以及 NeRF 的其他条件变体)添加了形状和/或外观的潜在代码,因此神经体积渲染可以用于生成方式以及推理。

 GRAF(以及 NeRF 的其他条件变体)添加了形状和/或外观的潜在代码,因此神经体积渲染可以用于生成方式以及推理

GRAF:用于 3D 感知图像合成的生成辐射场,Katja Schwarz、Yiyi Liao、Michael Niemeyer、Andreas Geiger。

GRAF,即“RAdiance Fields 的生成模型”,是 NeRF 的条件变体,添加了外观和形状潜在代码,而视点不变性是通过 GAN 式的训练获得的。

pi-GAN与 GRAF 类似,但使用 NeRF 的 SIREN 风格实现,其中每一层都由接收潜在代码的不同 MLP 的输出进行调制。

PixelNeRF更接近基于图像的渲染,其中在测试时使用N张图像。它基于 PIFu,创建像素对齐的特征,然后在评估 NeRF 风格渲染器时进行插值。

GRF在设置上与 PixelNeRF 非常接近,但在规范空间而不是视图空间中运行。

作品

显然(?)这些都无法扩展到由许多对象组成的大型场景,因此一个令人兴奋的新兴趣领域是如何将对象组合成体积渲染场景。

神经场景图支持场景图中的多个以对象为中心的 NeRF 模型。

STaR类似于神经场景图论文,仅限于单个对象,但不需要在训练时进行姿势监督。

GIRAFFE通过让以对象为中心的 NeRF 模型输出特征向量而不是颜色来支持合成,然后通过平均进行合成,并以低分辨率渲染为 2D 特征图,然后在 2D 中进行上采样。

移动物体

移动物体

最近的一篇论文提出了对象散射函数(OSF),用于支持具有任意对象位置(左)和照明(右)的场景合成

以对象为中心的神经场景渲染,MichelleGuo、AlirezaFathi、JiajunWu 和 ThomasFunkhouser

以对象为中心的神经场景渲染在以对象为中心的坐标系中学习“对象散射函数”,允许使用蒙特卡罗渲染来构建场景并真实地照亮它们。

姿势估计

最后,至少有一篇论文在(已知)物体姿态估计的背景下使用了 NeRF 渲染。

 iNeRF预告片GIF:iNERF 使用 NeRF 作为姿势优化器中的合成模型。(图片太大,放不上来)

iNeRF:反转神经辐射场进行姿势估计,Lin Yen-Chen、Peter Florence、Jonathan Barron、Alberto Rodriguez、Phillip Isola 和 Tsung-Yi Lin。

iNeRF在姿势估计框架中使用 NeRF MLP,甚至能够通过微调姿势来改进标准数据集上的视图合成。但是,它尚不处理照明。

结论性思考

Neural Volume Rendering 和 NeRF 式的论文在 2020 年已经爆火,最后的结局还没有说完。这篇文章绝对没有达到彻底审查的水平,但我希望这个“爆炸”对在这一领域工作或考虑加入竞争的人们有用。

然而,如果我可以大胆发表意见,即使面对所有这些令人兴奋的事情,神经体积渲染最终是否会取得胜利还远未明确。虽然现实世界确实有雾霾、烟雾、透明胶片等,但最终大部分光线都是从表面散射到我们的眼睛里的。NeRF 风格的网络可能很容易训练,因为它们采用基于体积的方法,但我已经看到了一种趋势,即作者试图在收敛后发现或猜测表面。事实上,NeRF 原始论文中的分层抽样方案正是如此。因此,当我们从 NeRF 爆炸中学习时,我可以很容易地看到该领域又回到了 SDF 风格的隐式表示甚至体素,至少在推理时是这样。

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值