文章目录
《Nerf: Neural radiance field in 3d vision, a comprehensive review 》
Author: University of Waterloo,
一、数据集:
\quad
Realistic Synthetic 360°:从Blender软件中制作的,共8个场景,well bounded,聚焦于单个对象。视角方面,6个场景从上半球进行采样,2个场景从整个球体进行采样。
\quad
LLFF: consists of 24 real-life scenes captured from handheld cellphone cameras。其中图像的pose使用COLMAP制作。视角方面,forward facing towards the central object。
\quad
DTU:由一个工业机器人拍摄的,它上面绑定了一个相机和一个结构更扫描器,分别用来拍摄图像和密集点云。相机内参和pose用matlab的工具箱制作。视角方面,在以目标为中心的球体上进行采样。
\quad
ScanNet:large-scale (2.5 million views of indoor scenes) real-life RGB-D数据集,语义标签非常丰富,**适用于需要利用语义信息的模型和任务,**比如场景编辑、场景分割和语义视图合成。
\quad
ShapeNet:一个大规模的合成数据集,包含了3135个类别的CAD 模型,它的12个普通目标类别的子集最常被用到。当基于目标的语义标签是某个NeRF模型的特定部分时,这个数据集有时会被用到。
\quad 除了上面几个常用的数据集外,下面还有一些针对于特定场景下的数据集。
1)Building-scale Dataset:
- Tanks and Temples dataset
- Matterport-3D dataset
- Replica dataset
2)Large-Scale Urban Datasets:流行的自动驾驶基准数据集有多种数据模式,如图像、深度图、激光雷达点云、姿态和语义图,这些数据模式可能适用于某些希望针对城市场景的NeRF模型。
- KITTI:原始的深度预测数据集对NeRF训练有挑战,因为它的摄像机覆盖范围相对于NeRF数据集相对稀疏,在设计模型时需要考虑稀疏视图。最近的Kitti-360数据集是对它的一个扩展,甚至包括一个NVS基准。
- Waymo Open Dataset
3)Human Avatar/Face Dataset:
- Nerfies 和 HyperNerf:聚焦于人脸的单摄像机数据集。前者包含静止和动态的人类,后者关注拓扑变化,比如人类打开、关闭嘴巴或眼睛等。
- ZJU-MOCap LightStage dataset:由9个动态人体序列组成的运动数据集。
- NeuMan dataset:由6个视频组成,每10到20秒长,由手机摄像头捕捉到,跟随一个行走的人类受试者执行额外的简单动作,如旋转或挥手。
- CMU Panoptic dataset
二、基于方法的分类(Method-based Taxonomy)
\quad
作者根据目前NeRF的方法,将所有文章分为了如下7大类。
\quad 1)Improvements in the Quality of Synthesized Views and Learned Geometry(这一章的工作都是提升NVS图像质量的)
\quad a) Better View Synthesis
\quad
Mip-NeRF(2021.05)使用 cone tracing 而不是NeRF中的ray tracing,mipNeRF模型在本质上是多尺度的,并自动执行anti-aliasing。Mip-NeRF 360 是一项极具影响力的工作,它将Mip-NeRF直接扩展到 unbounded 场景。它对Mip-NeRF做出的改由有三点:①使用NeRF MLP来监督一个 proposal MLP;②这个proposal MLP只预测体积密度(而不是颜色),用于寻找适当的采样间隔。并且,针对Mip-NeRF中的高斯模型构造了一种新的场景参数化方法;③引入了一种新的正则化方法,防止漂浮几何伪影和背景坍塌。
\quad
Ref-NeRF(2021.12)建立在mip-NeRF的基础上,被设计用于更好地建模反射表面。这个方法是一个引入图形学知识比较多的方法。它根据局部法向量的观测方向的反射参数化NeRF。他们将density MLP(第一个MLP)修改为一个无方向的MLP,不仅输出 密度 和 方向MLP的输入特征向量,而且还输出漫射颜色(diffuse color)、镜面颜色(specular color)、粗糙度(roughness)和表面法线(surface normal)。漫射颜色和镜面颜色相乘,加到镜面颜色(方向MLP的输出),得到最终的颜色。此外,他们使用从由粗糙度参数化的球面高斯分布中采样的向量的球面谐波来参数化方向向量。Ref-NeRF在反射表面上表现特别好,能够准确地建模镜面反射和高光图像。
\quad Reg-NeRF(2021.12)的目的是解决NeRF训练时稀疏输入的问题,大多数之前的方法通过使用预训练网络的图像特征作为调节NeRF体积渲染的先验,与此不同,RegNeRF采用了额外的深度和颜色正则化。
\quad b) Depth Supervision and Point Cloud
\quad 通过使用从LiDAR或SfM获得的点云来监督深度,这些模型的收敛速度更快,最终质量更高,并且比baseline NeRF模型需要更少的训练视图。**这些模型大多是 few-shot / sparse views NeRF。**在本节的最后,介绍了其他几何改进的方法。
\quad DS-NeRF(2021.07),Depth-Supervised NeRF,除了使用颜色监督之外,还使用了用COLMAP [2]从训练图像中提取的稀疏点云来进行深度监督。在这个文章中,深度被建模为由稀疏点云记录的一个正态分布。增加了一个KL散度项来最小化ray分布和这个噪声深度分布的散度。
\quad 与此同时,另一项有影响力的工作 dense_depth_priors_nerf(2021.04) 先使用COLMAP提取稀疏点云,并由一个Depth Completion Network来处理生成深度和不确定性图。除了标准的volumetric loss外,作者还引入了一种基于预测的深度和不确定性的depth loss。这个工作的效果很好,比DS-NeRF、NerfingMVS的效果好很多。
\quad PointNeRF(2022年1月)使用特征点云作为体素渲染的中间步骤。point-nerf也可以选择 per-scene optimization 和 no per-scene optimization 两种模式,但它的泛化效果不好,还没有MVSNeRF、IBRNet的好。
\quad 2)Few Shot / Sparse Training View NeRF
\quad 原始NeRF需要大量的训练图像,它的一个常见失败案例是:训练样本太少或样本在姿态上变化不够。这种情况下原始NeRF对个别视图过拟合,并对场景几何不敏感。然而,a family of NeRF methods利用预先训练的图像特征提取网络(一般是CNN),以大大降低NeRF训练所需的样本数量。一些作者称这样的过程为“image feature conditioning”(其实做sparse views的工作大多同时做generalization),一些工作(如pointnerf)使用depth/3D geometry监督也可以实现这样的效果。增加深度或其他正则化的方法也可以降低对训练样本数量的需求。
\quad 这个系列的工作有:PixelNeRF(2020.12);MVSNeRF(2021.03);DietNeRF(2021.06,引入CLIP并提出语义一致性损失);NeuRay(2021.07);GeoNeRF(2021.11);LOLNeRF(2021.11,few-shot 人脸视图合成,类似于 π \pi π-GAN,但是使用Generative Latent Optimization而不是对抗学习);NeRFusion(2022.03,相当于MVVSNeRF+RNN);SinNeRF(2022.04)尝试通过整合多种技术从单个图像中进行NeRF场景重建,它利用 image warping 和相机内参和pose来制作 reference depth,以对 unseen views进行监督,还利用一个CNN 判别器来提供patch-wise的纹理监督,还使用预训练的ViT从参考补丁和unseen补丁中提取全局图像特征,并将其与L2损失项和全局结构先验进行比较。GeoAug(2022.10)用new noisy camera poses渲染新的训练图像,利用数据增强的方式来解决few-shot问题。
\quad 3)Generative and Conditional Models
\quad 生成式NeRF模型通常使用二维生成模型来创建“场景”的图像,然后用于训练NeRF模型。
\quad 4)Unbounded Scene and Scene Composition
\quad 将NeRF应用于室外场景,一个需求就是将前景与背景分离。在室外场景下还有另外一个挑战,那就是image-by-image的外貌和光线变化。为了解决这个问题,许多方法采用 image-by-image的外貌编码来制作latent condition。
\quad 场景耦合这个方向,一般都是用两个MLP,一个用于前景,一个用于背景。这两个MLP中,为了保证不同视图下的区别,可能会用condition NeRF。这种分别表征的架构,有可借鉴之处,或许可以把这种架构用在泛化性NeRF中,用来表征不变和变的组件。
\quad
NeRF-W(2020.08)这篇论文解决了传统NeRF的两个问题。由于光照条件的变化,同一个场景的 real-life photographs 可能包含图片之间的外貌变化,这就像每张图片中的transient objects是不同的那样。基于这样的观点,在NeRF-W中,对于一个场景的所有照片(视图),密度应当都是一样的,所以 density MLP都是一样的,但是,不同视图下的外貌是不一样的。所以NeRF-W制作了一个per-image appearance embedding作为 color MLP的condition,网络架构如下图所示。在这样的结构下,NeRF-W在速度上并没有提升,但是在这个数据集上的效果却提升很大。
\quad
NeRF++(2020.10)是被设计用来在unbounded scene中进行NVS的。它用一个sphere将场景分开,内部包含所有的前景目标,外部包含背景,内部和外部分别用一个MLP进行训练。此外,这篇文章更有意思的是,对NeRF模型如何强大进行了评价,即对NeRF模型如何解决shape-radiance ambiguitiy进行了评价。这个ambiguity简单来说就是sigma和rgb重点学哪一个的问题,即在给定训练数据下,网络在拟合相对准确场景view-dependent appearance的同时,可能其对场景几何预测不准确。根据这篇文章的观点,错误的密度配置往往会导致具有高频成分的颜色配置与视角有关。然而,通过它的构造(使用低频分量和在MLP的后期阶段引入视角),NeRF模型倾向于产生更平滑的颜色配置。NeRF++的分析中,指出NeRF建模的其实是一个球面,它将外貌拟合为球面上的surface light field。具体细节看原文,值得一看。
\quad GIRAFFE(2020.11)与NeRF-W的方式很像,基于GRAF,使用 latent code,用两个MLP分割前景和背景用于场景耦合。
\quad NeRFReN(2021.11)将辐射场分为transmitted 和reflected两部分,解决了NVS的NeRF的reflective surfaces问题
\quad 5)Others Neural Volume Rendering
\quad 其他神经体素渲染的方法,主要是用Transformer来代替,代表性的文章有IBRNet(2021.02)、SRT(2021.11)等。
三、基于应用的分类(Application-based Taxonomy)
\quad
作者根据应用场景,将NeRF的工作分为以下几类:
\quad
1)urban场景
\quad
随着对自动驾驶和城市摄影测量(Photogrammetry,摄影测量是通过捕捉并拼接图像信息来创建物理世界的数字模型的过程)的兴趣提升,最近来看,urban NeRF模型在street-level和remote-level的发展上已经激增。在这个过程中,urban场景的以下几个挑战逐渐突显:①户外场景是unbounded;②相机的pose通常缺乏多样性;③需要大规模的场景。
\quad Urban Radiance Fields(2021.11)在激光雷达的深度损失的辅助下,进行urban场景的重建。Block-NeRFs(2022.02)从280万张street-level街景图片进行城市级别的重建,这样的大规模户外数据集带来了瞬态外观和物体等问题。 每个单独的BlockNeRF都是建立在mip-NeRF 上,使用其IPE和NeRF-W,以及使用其外观latent code优化。作者在NeRF训练中使用语义分割来掩盖行人和汽车等瞬态物体。A visibility MLP也被平行训练,用于丢弃能见度低的block-nerf
\quad
2)Human Faces and Avatars, and Articulated Objects
\quad
这一个方向也有很多文章,以后有兴趣再看。
\quad
3)Image Processing
\quad
DeblurNeRF(2021.11)、NeRF-SR(2021.12)、NaN(2022.04)、RawNeRF(2022)等文章关注low-level CV的一些方向,比如denoising, deblurring,super-resolution等,目的是从低质量的训练图像合成高质量的视图。
\quad
4)Surface Reconstruction
\quad
NeRF模型的scene geometry是隐式的,并且隐藏在神经网络中。然而,对于某些应用而言,更显式的表示是需要的,如三维网格。对于baseline NeRF,可以通过评估和阈值化密度MLP来提取一个粗略的几何形状。一些典型的工作有:Neural Surface (NeuS)(2021.06),SparseNeus(2022.06)等。
四、未来展望
\quad 在过去的两年中,NeRF模型取得了巨大的进展,并解决了基线NeRF的一些缺点。未来,NeRF有一些几个方向需要去努力。
\quad 1)提升速度
\quad
2)关于质量
\quad
**一种已被证明有效的方法是:使用per-image的transient latent code和appearance code,**像在NeRF-W、GARF中。这些code允许NeRF模型控制每幅图像的照明和颜色变化,以及场景内容的小变化。
\quad
3)关于sparse views
\quad
sparse views 和 few-shot 的NeRF模型通常使用依赖于2D/3D特征提取技术,依赖于预训练的CNN。一些模型还合并了来自SfM的点云数据,以进行额外的监督。目前的这些方法其实已经实现了few-shot(2-10 views)的目标,即使再用更先进的backbone,也只能带来性能上微小的改进。 未来稀疏视图的NVS有以下两个方向需要努力:
\quad
一个方向是:将 sparse view 方法与 fast 方法相结合,以实现在可移动设备上的NeRF模型的快速训练和推理。
\quad
另一个方向是:使用扩散方法和图像-字符串标识符微调实现 single-shot NeRF。未来,将 few-shot NeRF 与 基于文本的扩散模型 进行结合,是一个趋势。
\quad
4)关于应用
\quad
NeRF目前有两个可行性的应用:urban环境 或 human avatars 的重建。从密度MLP中提取三维网格、点云或SDF,或者探索更快的NeRF模型,这些方向都是有必要的。diffusion-guided human avatar generation也是一个热门方向。
\quad 2D扩散模型最近使具有场景和对象编辑功能的text-to-3d NeRF模型的开发成为可能,这允许从文本提示中生成3D网格和纹理,在3D图形学中具有巨大的应用潜力。diffusion-powered NeRF目前仍处于起步阶段,在不久的将来这一领域会取得重大进展。基于NeRF的生成式3D模型 或 具有显式/混合场景表示的神经渲染,将对3D图形行业产生重要的影响。
《Advances in Neural Rendering》【EUROGRAPHICS 2022】
基础知识
\quad
神经渲染:允许场景的紧凑表示、渲染可以利用神经网络从现有的观察中学习。下图是 2D 和 3D 的区别。神经渲染的主要任务有 novel viewpoint synthesis, relighting, deformation of the scene, 和 compositing。
\quad
场景表征:surface or volume representations。
\quad
对于explicit surface representation,surface是可直接索引的(indexable),这允许可以使用正向渲染(forward rendering)方法,将表面投影到图像平面,并相应地设置一个像素(例如,使用光栅格化(rasterization)或点溅射)。implicit surface representation和volumetric representation不提供表面的直接信息,所以必须对从虚拟摄像机中看到的三维空间进行采样以生成图像(例如,使用射线行进(ray marching))。
Generalizable NeRF
\quad
voxel-based、mesh-based或non-3D structured 神经场景表示的泛化性工作已经被大量的研究(回头可以看看之前的神经表征是如何做泛化的)。基于MLP的神经表征泛化性工作,核心目标是跨场景的新视图合成,给定很少或可能只有一个输入视图进行NVS。这一方向的工作分为两类:
\quad
a)基于图像渲染的方法:通过 local conditioning 来实现,MLP与一个局部变化的特征向量连接,这个表征存储在离散的场景表征中。比如,PixelNeRF,IBRNet,GeoNeRF等。
\quad b)对于上面这个方法,一个替代方法是学习场景的整体全局表示,而不是依赖于图像或其他离散的空间数据结构。给定一组观察结果,这类方法通过推断出一组场景表示MLP的权值来完成,这个MLP是用来描述整个述场景的,具体有以下三种情况。
\quad 一些方法通过将整个场景编码为一个低维的latent code,然后拿其作为scene MLP的condition来实现。比如,SRN使用一个HyperNetwork将低维的latent code映射为场景表征MLP的参数,然后对这个MLP使用ray marching进行渲染。
\quad 除了推断一个低维的latent code作为condition,一种替代方法是通过基于梯度的元学习,在几个优化步骤中快速优化MLP场景表示的权重。这可以用于从少量图像中快速重建神经辐射场。(面对新场景是不进行retrain似乎有些强人所难,一种替代方法是只需要几秒进行快速训练,这样似乎也合情合理。基于元学习的方法似乎是一个可行性方向。) Portrait NeRF提出了一种元学习方法,从一个人的单个front图像中恢复一个NeRF。metanlrpp利用基于梯度的元学习和基于图像特征的local conditioning来快速恢复场景的NeRF。
\quad 除了上面的这个方法,另一个替代方法是学习一个无条件的生成模型。相对于直接从观测图像中推断一个latent code,这里从观测图像中推断一个分布,再从中采样一个latent code作为condition。最后渲染出的image增加一个对抗损失来监督。GRAF利用这样的NeRF框架来实现。pi-GAN对GRAF做了两点改进,第一个是使用了SIREN作为激活函数,第二个是使用FiLM作为条件网络层和逐步增长的判别器,得到了很好的效果。此外,GIRAFFE提出通过将场景参数化为几个前景(对象)NeRF和一个背景NeRF,来学习由几个对象组成的场景生成模型。对每个NeRF分别对潜在代码进行采样,一个体积渲染器将它们组成一个相关的二维图像。
Open Challenges
\quad 1)Seamless Integration and Usage
\quad 半个多世纪以来,计算机图形学的算法和技巧都是以mesh或point cloud作为3D表征来发展的。neural rendering这个概念是由2018年那篇science文章(GQN)提出的。现在许多工具都是用来编辑经典的表征,如Blender和Maya,他们对于神经表征的功能必须从头开始发展。
\quad 此外,另一个挑战是所学习到的神经表征的可解释性。学习到的神经网络权值是出了名的,很难用目标量(例如,三维空间中点的颜色和不透明度)来解释。为了提高可控性,并且使计算机图形学的一些工具能够无缝集成所学到的神经表征,对学习到的神经表征的参数进行修改,以按指定需求改变场景是一个必然趋势。要实现如此,改变一个全局MLP的场景参数可能比较难,但是用多个local 神经表征组合的一个场景,有可能实现。(editable NeRF还是比较有意义的)
\quad 2)Scalability
\quad 大多数体积神经渲染的工作都关注单个物体和相对简单的复合场景,学习大规模场景的神经表征(只能在每个输入帧中部分观察到)仍具有挑战性。尽管一些工作已经做出了一些尝试,但是仍然还有许多挑战。比如,为单个对象开发的scene editing,relighting,和compositionality的方法不能直接扩展到处理大规模场景。从某一个场景的尺寸开始,再大规模场景的全局表征将变得不现实。因此,用于大规模场景神经模型的新一代的存储和检索技术需要被开发。他们应满足两点,首先,它们应该使场景完成更高效(即,不需要不断地从头开始重新计算整个模型),其次,能够方便地检索部分内容。
\quad 3)generalizability
\quad 现有的泛化性NeRF工作都是data-driven,依赖于大规模的多视图数据集。减少这种对大规模数据集的依赖是一个令人兴奋的方向。
\quad 另一个open challenge是,非刚性变形场景(即可变性的场景/物体,比如说人脸、身体、手和动物等)可实例化方法的通用性 (这类场景的通用性也是一个需要研究的课题)。这个情况下,输入可以是sparse views也可以是single view。一个比较直接的思路是,像上面data-driven的泛化性方法一样,依赖于大规模的可变形场景的多视图数据集。另一种可能的方法是解开变形模式和场景形状及外观。
\quad 此外,虽然有一些工作旨在生成神经场景表征(如使用hypernetwork来生成权重),但是很少有工作直接设计neural operator来直接操作神经场景表征。例如,对于一个已有的神经表征进行一些操作,如补全它的部分场景,或回归它的语义标签等。这样的一个operator,就类似于用于mesh的mesh convolution,用于voxel grid的3D convolution等,目前还不存在。并且理想上,这样的一个operator只需要训一次,就可以被通用。
\quad 4)Other Questions
\quad 质量方面,重建具有更多高频细节、着色(shading)、视图依赖的外观的对象仍然是一个很大程度上未解决的问题。
\quad 稀疏输入方面,目前稀疏输入时产生的场景,往往比密集输入时模糊,这一点也是一个需要解决的问题。
《Neural Fields in Visual Computing and Beyond》【EUROGRAPHICS 2022】
一、Neural Field Techniques:
1)Conditional NeRF
\quad 条件神经场允许我们通过调整latent 变量z来调整field。这个latent可以从各种各样的渠道进行采样,一般是一个低维向量。
\quad
Condition可以分为 local 和 global。全局的是对所有的坐标都一样,local的是从离散的数据结构中抽取出local 信息。当然,global和local也可以混合用,global取共有的信息,如人脸图片中的头发颜色,local取区域独有的信息,如皮肤褶皱。
\quad
有些方法希望通过隐变量z,来定义神经网络的参数,他们都遵循一种范式,定义一个函数,将z映射到参数。这里有几种方式:
- 第一种就是正常将z拼接到输入坐标上,这样的方式其实相等于定义一个仿射函数φ,这个函数将隐code z映射为神经场第一层参数的偏差向量b。换句话说,通过连接z作为condition的这种方式,仿射函数φ预测的参数只是神经网络第一层的偏差。
- 第二种是Hypernetwork的方式,这也可以看作是condition方式的一种,因为对于上面这个condition来改变参数的方式,也可以通过hypernetwork的方式来实现。HyperNetwork要比concatenation改变网络权重的方式更有优势。
- 第三种就是像pi-GAN那样,FiLM-condition的方式。元网络可以被看作是一个足够接近目标分布中的所有神经场的初始化。
\quad 最后一种条件NeRF的方法是,基于梯度的元学习。基于梯度的元学习支持快速推理,因为只需要几个梯度下降步骤来获得Θ,这或许是泛化性NeRF的未来,因为一点不re-train似乎不合理。
2)Forward Map
\quad
在许多应用中,重建域(how we represent the world))不同于传感器域(how we observe the world)),需要使用一个映射来对他们进行转换,下面是几种forward map方式。
\quad
SDF(Signed Distance Field,符号距离场)的预测结果是描述三维空间中每个点到最近物体表面的距离,这个距离可以是有符号的。具体来说,SDF会为三维空间中的每个点分配一个距离值,这个值表示该点到最近物体表面的距离,同时考虑了点到表面的方向。这一距离值可以是正值、负值或零,分别表示该点在物体表面外部、内部和上面。
3) Network Architecture
\quad 神经网络偏向于拟合低空间频率的函数(《On the spectral bias of neural networks》ICML’19),为了消除这个Spectral Bias,有以下以下方式。
\quad Positional Encoding。将坐标转换为位置编码,可以使网络拥有学习不同频率特征的能力。比如,正弦函数位置编码可以使网络具有学习高频特征的能力,不同的位置编码选择会影响网络学习不同的特征。Zheng等《Rethinking positional encoding》对各种位置编码功能进行了综合研究。
\quad Activation Functions。另一种使网络能拟合高频函数的方法是用 周期非线性激活函数 代替 单调非线性激活函数,如 SIREN 激活函数,它是周期正弦的,能够拟合高频内容。(值得一试)
\quad 与具有已知转换的铰接对象不同,建模一般的动态场景需要灵活的能够处理任意转换的表示。由于目标几何和外观通常是用神经场建模的,神经场本身的连续变换是一个自然的选择。学习空间转换的神经场是一个没有三维监督的高度欠约束问题[NMOG19]。这促使人们使用基于物理直觉的正则化损失术语:
4)Manipulating Neural Fields
\quad 学习空间转换的神经场是一个没有三维监督的高度欠约束问题。这促使人们使用基于物理直觉的正则化损失,一般有以下几种:
\quad Smoothness:时空坐标应该是平滑的,这对限制未被观察到的区域是必要的,参考《Nerfies: Deformable neural radiance fields》、《Non-rigid neural radiance fields: Reconstruction and novel view synthesis of a dynamic scene from monocular video》
\quad Sparsity:三维场景通常包含较大的空白空间。因此,强调预测的motion fields的稀疏性避免了次优的局部最小值,参考《Dynamic view synthesis from dynamic monocular video》、《Space-time neural irradiance fields for free-viewpoint video》、《Non-rigid neural radiance fields: Reconstruction and novel view synthesis of a dynamic scene from monocular video》。
\quad Auxiliary Image-space Loss:像 optical flow、depth map这些图像空间的信息,可以被用作辅助的损失。参考《Neural scene flow fields for space-time view synthesis of dynamic scenes》、《Space-time neural irradiance fifields for free-viewpoint video》、《Dynamic view synthesis from dynamic monocular video》等。
\quad 通过修改网络的参数,也可以实现编辑NeRF的目的,一般有以下几种:
- Latent Code Interpolation/Swapping:对于以latent code 为condition的NeRF,可以在latent space上插值或采样得到新的latent code,从而编辑NeRF。
- Latent Code/Network Parameters Fine-Tuning:可以通过新的显式的表示,对已经预训练的网络进行微调参数。
- Editing via Hypernetworks:使用Hypernetworks生成参数,来修改网络。
二、Applications of Neural Fields
数字人
\quad 神经辐射场的应用,使得human body, face, hand的得到了空前的高质量重建和合成。
\quad a)Face Modeling。数据驱动的parametric morphable model(3DMM)模型在1999年便被提出,但是这个显式表征缺乏现实性,并施加拓扑限制,使得很难建模头发,牙齿等。近些年来随着隐式表征的发展,如SDF和NeRF,使得它们成为解决这些限制的优秀候选者。
\quad 《i3dmm: Deep implicit 3d morphable model of human heads》使用SDF制作了一个3D morphable head model with hair。使用NeRF进行3D人脸重建的工作有,Nerfies利用一个用移动的手持相机拍摄的休闲视频片段来学习人类头部的辐射场和变形场,HyperNeRF基于Nerfies通过合并辅助hyper维度来处理大的拓扑变化。除此之外,另一类工作通过调节从3DMM中获得的头部姿态和面部表情参数来实现辐射场的语义控制(《Dynamic neural radiance fields for monocular 4d facial avatar reconstruction》)。在多视图视频序列的监督下,《Learning compositional radiance fields of dynamic human heads》使用一个变分公式对存储在体素中的空间变化的动画编码中的动态特性进行编码。
\quad 上面的这些方法需要per-subject training,一些工作实现few-shot,generalizable的重建,《Portrait Neural Radiance Fields from a Single Image》通过利用test-time fine-tuning,《Pixel-aligned volumetric avatars》通过利用pixel-aligned image features。
\quad b)Body and Hand Modeling。由于clothed human bodies在形状和外观上的巨大变化,一个全局的latent embedding导致不合理的重建。PIFu解决这个问题通过引入一个基于坐标的神经网络,并以pixel-aligned的局部embedding作为条件。PIFu的一大批后续工作使用了这个框架,以RGB或RGB-D为输入来实现数字人任务。还有一些工作为了提升重建的fidelity,使用了multi-level 的特征。有些工作联合预测skinning field和骨骼关节点,还有一些工作利用显式的参数化人体模型,比如SMLPL【TOG’15】,以提升不同pose下的鲁棒性,以及确保single image的animation-ready avatar 重建。
\quad 人体是动态的,因为他们是有关节的(articulated)和可变形的(deformable)。一些工作证明,提供人体的结构,可以极大提升辐射场的学习。比如,Neural Body, Neural Actor, A-NeRF等工作。一些研究表明,提供人体结构之后,将显著提高对辐射场的学习。
\quad pixel-aligned local embeddings对unseen subject的NVS任务具有很好的帮助,这在人脸建模的工作中已经被证明,在人体建模中,Doublefifield、《Neural hu man performer: Learning generalizable radiance fifields for human per formance rendering》对此作了尝试。这一点对泛化性NeRF的工作具有很好的帮助。
\quad Template-mesh registration是人体建模的另外一个重要方向。TODO:就是基于一个模板进行匹配?
\quad 人体的一个独特属性是非刚性变形的articulation(关节)。因此Occupancy-flow通过warp field建模人体的非刚性变换。NASA使用occupancy fields建模人体。
\quad
三、Discussion
未来方向
\quad
1)技巧方面
\quad
一个普遍的限制是NeRF不能泛化到unseen data。这个方面或许可以从以下几个方面入手:
- 整合更强的先验知识可能促进这些方法泛化的更好,数据效率更高。
- 引入一些归纳偏置,比如task-specifific heuristics,laws of physics,network architecture可能也会帮助泛化。
- 建立一个统一的框架来整合这些先验,是一个fruitful direction。
- pixel-aligned local embeddings对unseen subject的NVS任务具有很好的帮助,这在人脸建模的工作中已经被证明,在人体建模中,Doublefifield、《Neural hu man performer: Learning generalizable radiance fifields for human per formance rendering》对此作了尝试。这一点对泛化性NeRF的工作或许也具有很好的帮助。
\quad 此外,通用技巧的方法评估和分析也需要,共享的数据集和benchmark也一样需要。
\quad
2)应用方面
\quad
现在大部分NeRF的工作都在关注“low-level” (e.g., image synthesis),以及“mid-level” (e.g., 3D reconstruction) tasks,用于“high-level” semantic tasks的工作还很少,这是一个还未被很好探索的方向。这些high-level的工作,可以但不包括,3D scene layout【Sceneformer: Indoor scene generation with transformers】,3D scene interaction 【Learning continuous environment fields via implicit functions】等。
\quad 此外,NeRF多关注单一数据模态,多模态的NeRF也需要被探索。比如,文本输入(这个方向目前很火,text-to-3d)。
\quad 最后,NeRF应该考虑跳出supervised 的圈子,weakly- 或 self-supervised learning也是一个方向。使用3D deep learning中的一些进展,比如transformation equivariance,可以使NeRF to be data efficient and generalize better。这类的工作有《Condor: Self-supervised canonicalization of 3d pose for partial shapes》,《Learning to orient surfaces by self-supervised spherical cnns》,《Canonical capsules: Self-supervised capsules in canonical pose》