目录
3.1. Cost volume construction.
3.2. Radiance field reconstruction.
3.3. Volume rendering and end-to-end training.
3.4. Optimizing the neural encoding volume.
图一。我们用DTU数据集中的对象场景来训练我们的MVS nerf[20]。我们的网络可以有效地概括不同的场景;即使对于复杂的室内场景,我们的网络也可以仅从三个输入图像(a)重建神经辐射场,并从新的视点合成真实的图像(b)。虽然该结果包含伪像,但通过对更多图像进行仅6分钟(4k次迭代)(c)的微调,可以极大地改善该结果,这与NeRF[34]通过5.1小时每场景优化(100k次迭代)得到的结果(d)具有相当的质量。
摘要
提出了一种新的神经渲染方法neural rendering approach MVSNeRF,它可以有效地重建用于视图合成的神经辐射场。与先前关于神经辐射场的工作不同,这些工作考虑对密集捕获的图像进行逐场景优化,我们提出了一种通用的深度神经网络,该网络可以通过快速网络推理仅从三个附近的输入视图重建辐射场。我们的方法利用平面扫描成本体plane-swept cost volumes(广泛用于多视图立体multi-view stereo)进行几何感知场景推理,并将其与基于物理的体渲染相结合进行神经辐射场重建。我们在DTU数据集中的真实对象上训练我们的网络,并在三个不同的数据集上测试它以评估它的有效性和可推广性generalizability我们的方法可以跨场景(甚至室内场景,完全不同于我们的对象训练场景)进行推广generalize across scenes,并仅使用三幅输入图像生成逼真的视图合成结果,明显优于目前的广义辐射场重建generalizable radiance field reconstruction工作。此外,如果捕捉到密集图像dense images are captured,我们估计的辐射场表示可以容易地微调easily fine-tuned;这导致快速的逐场景重建fast per-scene reconstruction,比NeRF具有更高的渲染质量和更少的优化时间。
1.介绍
新视图合成是计算机视觉和图形学中长期存在的问题。最近,神经渲染方法极大地推进了这一领域的进展。神经辐射场(NeRF)及其后续作品[34,31,27]已经可以产生照片级的新颖视图合成结果。然而,这些现有工作的一个显著缺点是,它们需要非常长的每场景优化过程来获得高质量的辐射场,这是昂贵的并且极大地限制了实用性。
我们的目标是通过实现高效的辐射场估计,使神经场景重建和渲染更加实用。我们提出了MVSNeRF,这是一种新的方法,可以很好地跨场景地从几幅(少至三幅)非结构化多视图输入图像unstructured multi-view input images中重建辐射场。由于具有很强的泛化能力,我们避免了繁琐的逐场景优化,可以通过快速网络推理直接在新的视点上回归真实图像。如果在更短的时间内(5-15分钟)对更多的图像进行进一步优化,我们的重建辐射场甚至可以在数小时的优化后优于NeRFs [34](见图1)。
我们利用最近在深度多视图立体(MVS)deep multi- view stereo (MVS)上的成功[50,18,10]。这一系列工作可以通过对成本体积应用3D卷积applying 3D convolutions on cost volumes来训练用于3D重建任务的可概括的神经网络。与[50]类似,我们通过将来自附近输入视图的2D图像特征(由2D CNN推断)扭曲warping到参考视图的平截头体中的扫描平面上sweeping planes in the reference view’s frustrum,在输入参考视图处构建成本体。不像MVS方法[50,10]仅在这样的成本体积上进行深度推断depth inference,我们的网络推理关于场景几何形状和外观reasons about both scene geometry and appearance,并输出神经辐射场(见图2),实现视图合成。具体来说,利用3D CNN,我们重建(从成本体)神经场景编码体neural scene encoding volume,其由 编码关于局部场景几何形状和外观的信息的每个体素神经特征per-voxel neural features 组成。然后,我们利用多层感知器(MLP)在编码体积encoding volume内使用三线性插值神经特征tri-inearly interpolated neural features来解码任意连续位置处的体积密度volume density和辐射度radiance。本质上,编码体是辐射场的局部神经表示;一旦估计,该体积可以直接用于(丢弃3D CNN)通过可微分射线行进differentiable ray marching(如在[34]中)的最终渲染。
我们的方法结合了两个世界的优点,基于学习的MVS和神经渲染。与现有的MVS方法相比,我们实现了可微分神经渲染differentiable neural rendering,允许在没有3D监督和推理时间优化的情况下进行训练,以进一步提高质量。与现有的神经渲染作品相比,我们的类MVS架构可以自然地进行跨视图对应推理cross-view correspondence reasoning,有利于推广到未知的测试场景,也导致更好的神经场景重建和渲染。因此,我们的方法可以明显优于最近的并行可概括NeRF工作concurrent generalizable NeRF work[54,46],该工作主要考虑2D图像特征,而没有明确的几何感知3D结构(参见表。1和图4)。 我们证明,仅使用三个输入图像,我们从DTU数据集训练的网络可以在测试DTU场景上合成照片级逼真的图像,甚至可以在具有非常不同的场景分布的其他数据集上生成合理的结果。此外,我们估计的三个图像辐射场(神经编码体积)可以在新的测试场景上进一步轻松优化,以在捕获更多图像的情况下改善神经重建,从而产生与每个场景过拟合NeRF相当甚至更好的照片级逼真结果,尽管我们的优化时间比NeRF少得多(见图1)。
这些实验表明,我们的技术既可以用作强重建器strong reconstructor,当只有少量图像被捕获时,它可以重建用于真实视图合成的辐射场,也可以用作强初始化器strong initializor,当密集图像dense images可用时,它显著促进每个场景辐射场的优化。我们的方法向现实的神经渲染迈出了重要的一步。我们已经在mvsnerf.github.io发布了代码。
2.Related Work
Multi-view stereo.
多视图立体(MVS)是一个经典的计算机视觉问题,旨在使用从多个视点捕获的图像实现密集的几何结构重建dense geometry reconstruction,并且已经通过各种传统方法进行了广泛的探索[12,24,23,14,39,16,38]。最近,深度学习技术已被引入解决MVS问题[50,19]。MVSNet [50]在参考视图的平面扫描成本体积上应用3D CNN进行深度估计,实现了优于经典传统方法的高质量3D重建[16,38]。后续工作通过循环平面扫描recurrent plane sweeping[51]、基于点的增密point-based densification[8]、基于置信度的聚合confidence-based aggregation[30]和多成本体积confidence-based aggregation[10,18]扩展了该技术,提高了重建质量。我们建议将基于成本-体积的深度MVS技术cost-volume based deep MVS technique与可微分体积渲染differentiable volume rendering相结合,从而实现用于神经渲染的辐射场的有效重建。与使用直接深度监督的MVS方法不同,我们仅针对新视图合成用图像丢失来训练我们的网络。这确保了网络满足多视图一致性multi-view consistency,自然允许高质量的几何重建。作为副产品,我们的MVSNeRF可以实现与MVSNet [50]相当的精确深度重建accurate depth reconstruction(尽管没有直接的深度监督no direct depth supervision)。这可能会激发未来发展无监督几何重建方法的工作。
View synthesis.
视图合成已经用各种方法研究了几十年,包括光场light fields[17,25,47,21,42,7],基于图像的渲染image-based rendering[13,3,40,5,4],以及其他最近的基于深度学习的方法deep learning based methods[56,55,49,15]。平面扫描体积Plane sweep volumes也用于视图合成[35,55,15,33,49]。利用深度学习,基于MPI的方法[55,11,33,41]在参考视图处构建平面扫描体,而其他方法[15,49]在新视点处构建平面扫描;这些先前的工作通常预测离散扫描平面discrete sweeping planes处的颜色,并使用阿尔法混合alpha-blending或学习的权重来聚集每个平面的颜色。代替直接的每平面颜色预测direct per-plane color prediction,我们的方法将平面扫描中的每体素神经特征推断为场景编码体infers per-voxel neural features in the plane sweep as a scene encoding volume,并且可以在任意3D位置从其回归体渲染属性regress volume rendering properties。这模拟了连续的神经辐射场,允许基于物理的体渲染来实现逼真的视图合成。
Neural rendering.
最近,已经提出了各种神经场景表示来实现视图合成和几何重建任务[55,45,28,2,34]。特别是,NeRF [34]将MLPs与可微分体渲染相结合,实现了照片级的真实视图合成。以下工作试图提高其在视图合成方面的性能[31,27];其他相关工作扩展它以支持其他神经渲染任务,如动态视图合成dynamic view synthesis[26,36,43],挑战场景challenge scenes[29,52],姿态估计pose estimation[32],实时渲染real- time rendering[53],重新照明relighting[37,1,9]和编辑editing[48,6]。我们让读者参考[44]对神经渲染的全面回顾。然而,大多数先前的作品仍然遵循原始的NeRF,并且需要昂贵的每场景优化过程。相反,我们利用深度MVS技术来实现跨场景神经辐射场估计,用于仅使用少量图像作为输入的视图合成。我们的方法利用平面扫掠3D成本体进行几何感知场景理解a plane swept 3D cost volume for geometric-aware scene understanding,实现了比同时进行的工作[54,46]显著更好的性能,同时进行的工作仅考虑2D图像特征用于辐射场重建的一般化。
3. MVSNeRF
我们现在介绍我们的MVSNeRF与NeRF [34]通过每个场景的“网络记忆”per-scene “network memorization”来重建辐射场不同,我们的MVSNeRF学习了一个用于辐射场重建的通用网络a generic network。给定M个输入捕获图像input captured images 和它们的已知摄像机参数φI
,我们提出了一种新颖的网络,该网络可以将辐射场重建为神经编码体a neural encoding volume,并使用它来回归任意场景位置处的体渲染属性(密度和视图相关辐射)regress volume rendering properties (density and view-dependent radiance)以用于视图合成。一般来说,我们的整个网络可以被视为辐射场的函数,表示为:
其中x表示3D位置,d是观察方向,σ是x处的体积密度,r是取决于观察方向d的x处的输出辐射亮度(RGB颜色)。来自我们的网络的输出体积属性可以直接用于经由可微分射线行进在differentiable ray marching新的目标视点处合成新的图像It。
图2。MVSNeRF的概述。我们的框架首先通过将二维图像特征扭曲到一个平面扫描上来构建一个代价体积(a)。然后,我们应用三维CNN重建一个具有每体素神经特征的神经编码体(b).我们使用MLP来回归体积密度和RGB辐射在任意位置,使用从编码体积插值的特征。这些体积特性被可微的射线行进用于最终渲染(c).
在本文中,我们考虑了一个稀疏的附近输入视图集a sparse set of nearby input views 的有效辐射场重建。在实践中,我们使用M = 3个视图进行实验,而我们的方法处理非结构化视图,并且可以容易地支持其他数量的输入。我们的MVSNeRF的概述如图2所示。我们首先通过将2D神经特征扭曲到多个扫描平面上warping 2D neural features onto multiple sweeping planes,在参考视图(我们将视图i = 1称为参考视图)上构建成本体(见图1)(Sec. 3.1)。然后,我们利用3D CNN重建神经编码体,并使用MLP回归体渲染属性,表示一个辐射场(Sec. 3.2).我们利用可微分射线行进,使用由我们的网络建模的辐射场来回归新视点处的图像;这实现了我们整个框架的端到端训练with a rendering loss渲染损失(Sec 3.3).我们的框架实现了从少量图像重建辐射场。另一方面,当捕获密集图像时,重建的编码体积reconstructed encoding volume和MLP解码器MLP decoder也可以独立地快速微调fast fine-tuned independently,以进一步提高渲染质量(Sec 3.4).
3.1. Cost volume construction.
受最近的深度MVS方法[50]的启发,我们在参考视图reference view(i = 1)构建了一个成本体a cost volume P,允许几何感知场景理解geometry-aware scene understanding。这是通过将来自m个输入图像的2D图像特征扭曲warping到plane sweep volume on the reference view’s frustrum参考视图的平截头体上的平面扫描体来实现的。
Extracting image features.
我们使用深度2D CNN T来提取各个输入视图处的2D图像特征,以有效地提取代表局部图像外观local image appearance的2D神经特征。该子网由下采样卷积层downsampling convolutional layers组成,并转换输入图像到2D特征映射
其中H和W是图像的高度和宽度,C是得到的特征通道的数量。
Warping feature maps.
其中Hi(z)是从视图i到深度z处的参考视图的矩阵扭曲matrix warping,K是内参矩阵intrinsic matrix,R和t是相机旋转和平移rotation and translation。每个feature map Fi可以通过以下方式扭曲到参考视图:
其中Fi,z是深度z处的扭曲特征图the warped feature map,而(u,v)表示参考视图中的像素位置pixel location。在这项工作中,我们使用参考视图中的归一化设备坐标normalized device coordinate (NDC)来参数化(u,v,z)。
Cost volume
成本体cost volume P由D sweeping planes扫描平面上的扭曲特征图warped feature maps构成。我们利用基于方差的度量variance-based metric来计算成本cost,这已被广泛用于MVS [50,10]的几何重建。特别地,对于以(u,v,z)为中心的P中的每个体素voxel,其成本特征向量cost feature vector由下式计算:
其中Var计算M个视图的方差。
这种基于方差的成本体对不同输入视图上的图像外观变化进行编码;这解释了由场景几何体和视图相关的着色效果shading effects引起的外观变化。虽然MVS的工作只使用这样的体积volume进行几何重建,但我们证明了它也可以用于推断完整的场景外观,并实现逼真的神经渲染。
3.2. Radiance field reconstruction.
我们建议使用深度神经网络来有效地将构建的成本体积built cost volume转换成用于真实视图合成的辐射场的重建。我们利用3D CNN B从原始2D图像特征成本raw 2D image feature costs的成本体P中重建神经编码体S;S由编码局部场景几何形状和外观的每个体素特征per-voxel features 组成。MLP解码器MLP decoder A用于从该编码体回归体渲染属性regress volume rendering properties from this encoding volume。
Neural encoding volume.
以前的MVS作品[50,18,10]通常直接从成本体积预测深度概率,成本体积仅表达场景几何形状。我们的目标是实现高质量的渲染,这需要从cost volume中推断出更多的外观感知信息appearance-aware information。因此,我们训练一个深度3D CNN B,将构建的built image-feature cost volume转换为新的C通道神经特征体积new C-channel neural feature volume S,其中特征空间由网络自身学习和发现,用于后续的体积属性回归volume property regression。这一过程表现为:
3D CNN B是具有下采样和上采样卷积层downsampling and upsampling convolutional layers 以及跳跃连接skip connections的3D UNet,其可以有效地推断和传播场景外观信息,从而产生有意义的场景编码体S。注意,该编码体是以无监督的方式预测的,并且是在体渲染的端到端训练中推断的(参见第Sec. 3.3).我们的网络可以学习在每个体素的神经特征中编码有意义的场景几何和外观;这些特征随后被连续地内插和改变.
由于2D特征提取的下采样,场景编码体具有相对低的分辨率;仅从这些信息中回归高频出现是具有挑战性的。因此,我们也为随后的体积回归阶段引入了原始图像像素数据,尽管我们后来表明,这种高频也可以通过快速的每场景微调优化fast per-scene fine- tuning optimization在增大的体积augmented volume中恢复。(Sec. 3.4).
Regressing volume properties.
其中f = S(x)是在位置x处从volume S三线性内插trilinearly interpolated的神经特征。特别地,x在参考视图的NDC空间中被参数化,而d由参考视图坐标处的单位向量表示。使用NDC空间可以有效地归一化跨不同数据源的场景比例scene scales,有助于我们的方法的良好的可推广性good generalizability。此外,受NeRF [34]的启发,我们还对位置和方向向量(x和d)应用了位置编码,这进一步增强了我们结果中的高频细节。
Radiance field
因此,我们的整个框架模拟了一个神经辐射场,从几个(三个)输入图像回归场景中的体积密度和视点相关辐射率。此外,一旦场景编码体积S被重建,与MLP解码器A结合的该体积可以被独立使用,而无需预先考虑2D和3D CNNs。它们可以被视为辐射场的独立神经表示,输出体属性,从而支持体渲染。
3.3. Volume rendering and end-to-end training.
我们的MVSNeRF重建了一个神经编码体,并回归了场景中任意点的体密度和视点相关辐射。这使得能够应用differentiable volume rendering来回归图像颜色。
Volume rendering.
基于物理的体渲染方程physically based volume rendering equation可以通过用于视图合成的differentiable ray marching(如NeRF [34])进行数值评估。具体而言,像素的辐射亮度值(颜色)a pixel’s radiance value (color)是通过使光线穿过像素marching a ray through the pixel并在光线上的采样阴影点sampled shading points 处累积辐射亮度来计算的,由下式给出:
其中ct是最终像素颜色输出,τ表示体积透射率volume transmittance。我们的MVSNeRF作为辐射场函数,本质上为光线行进提供了体渲染属性the volume rendering properties σk和rk。
End-to-end training
这种光线行进渲染是完全可微分的;因此,它允许我们的框架使用端到端的三个输入视图在新的视点回归最终像素颜色。我们使用L2渲染损失,用groundtruth像素颜色监督我们的整个框架:
其中c~t是在新视点从目标图像It采样的地面真实像素颜色。这是我们用来监督整个系统的唯一损失。由于基于物理的体渲染和端到端的训练,渲染监督rendering supervision可以通过每个网络组件传播场景外观和对应信息,并对它们进行调整,以使最终的视图合成有意义。不像以前的NeRF作品[34,31,27]主要关注每一个场景的训练,我们在DTU数据集上跨不同场景训练我们的整个网络。我们的MVSNeRF受益于成本体处理cost volume processing中的几何感知场景推理geometric- aware scene reasoning,并可以有效地学习一个通用函数,该函数可以在新的测试场景上将辐射场重建为神经编码体,从而实现高质量的视图合成。
3.4. Optimizing the neural encoding volume.
当跨场景训练时,我们的MVSNeRF已经可以学习一个强大的概括函数generalizable function,仅从三幅输入图像中重建跨场景的辐射场。然而,由于不同场景和数据集之间的有限输入和高度多样性,使用这样的通用解决方案在不同场景上实现完美的结果是非常具有挑战性的。另一方面,NeRF通过对密集输入图像执行逐场景优化performing per-scene optimization来避免这种硬泛化问题hard generalization problem;这会产生照片般逼真的效果,但代价极其昂贵。相比之下,我们建议微调我们的neural encoding volume——可以通过我们的网络从少量图像中立即重建——以在捕捉密集图像时实现快速的每场景优化。
Appending colors.
如上所述,当发送到MLP解码器时,我们的neural encoding volume 与像素颜色相结合(等式)。7).保留这种设计进行微调仍然有效,但会导致重构总是依赖于三个输入。相反,我们通过将体素中心的每视图颜色per-view colors of voxel centers作为附加通道附加到编码体来实现独立的神经重建;这些颜色作为特征也可以在每场景优化中进行训练。这种简单的附加最初会在渲染中引入模糊blurriness,但在微调过程中会很快得到解决。
Optimization
在添加颜色后,具有MLP的神经编码体是一个体面的初始辐射场decent initial radiance field,已经可以合成合理的图像。我们建议进一步微调体素特征以及MLP解码器,以便在密集图像可用时执行快速的逐场景优化。注意,我们只优化了encoding volume和MLP,而不是整个网络。这给予神经优化更多的灵活性,以在优化时独立地调整每个体素局部神经特征per-voxel local neural features;这比试图优化跨体素的共享卷积运算更容易。此外,这种微调避免了昂贵的 2D CNN,plane-sweep warping和3D CNN的网络处理。因此,我们的优化可以非常快,比从头开始优化NeRF花费的时间少得多,如图3所示。
我们的逐场景优化导致干净的神经重建,独立于任何输入图像数据(由于附加了颜色通道),类似于[34,27];因此,在优化之后,密集的输入图像可以被丢弃。相比之下,并行concurrent工作[54,46]需要保留输入图像进行渲染。我们的编码体积也类似于稀疏体素场Sparse Voxel fields[27];然而,我们的网络最初是通过快速推理来预测的,而不是在[27]中纯粹的每场景优化。另一方面,我们可以(作为未来的工作)在微调中细分我们的体积网格,以获得更好的性能,如[27]中所做的。
4. Implementation details
Dataset.
我们在DTU [20]数据集上训练我们的框架,以学习a generalizable network。我们遵循PixelNeRF [54]将数据划分为88个训练场景和16个测试场景,使用512 × 640的图像分辨率。我们还在真实的合成NeRF数据Realistic Synthetic NeRF data [34]和前向数据Forward-Facing data [33]上测试我们的模型(仅在DTU上训练),这些数据与我们的训练集具有不同的场景和视图分布。对于每个测试场景,我们选择20个附近的视图;然后我们选择3个中心视图作为输入,13个作为每个场景微调的附加输入,剩下的4个作为测试视图。
Network details.
我们使用f = 32个通道进行特征提取,这也是成本卷和神经编码卷中特征通道的数量(在附加颜色通道之前)。我们采用从近到远均匀采样的D = 128深度假设depth hypotheses来指定平面扫描体。我们的MLP解码器类似于NeRF [34]的MLP,但更紧凑,由6层组成。与NeRF将两个(粗略和精细)辐射场重建为单独的网络不同,我们仅重建一个辐射场,并且已经可以获得良好的结果;通过用相同的初始化优化两个独立的编码体,可以在微调时潜在地实现从粗到细的辐射场coarse-to-fine radiance fields的扩展。对于光线行进,我们在每条行进光线上采样128个着色点。我们在补充材料中展示了详细的网络结构。
我们使用一个RTX 2080 Ti GPU来训练我们的网络。对于DTU上的跨场景训练,我们从一个新视点随机采样1024个像素作为一批,并使用Adam [22]优化器,初始学习速率为5e-4。
5.Experiments
我们现在评估我们的方法并展示我们的结果。
Comparisons on results with three-image input.
Per-scene fine-tuning results
Depth reconstruction.
6.Conclusion
我们提出了一种新的高质量辐射场重建和真实感神经渲染的通用方法。我们的方法结合了深度MVS和神经渲染的主要优点,成功地将基于成本-体积的场景推理cost-volume based scene reasoning结合到基于物理的神经体积渲染physically based neural volumetric rendering中。我们的方法能够仅从三个输入视图进行高质量的辐射场重建,并且能够从重建中获得逼真的视图合成结果。我们的方法在不同的测试数据集上具有良好的泛化能力,并且在泛化辐射场重建方面明显优于并行工作[54,46]。当密集的输入图像可用时,我们的神经重建也可以很容易地针对每场景优化进行微调,从而使我们能够在使用更少优化时间的同时实现比NeRF更好的照片级逼真渲染。我们的工作提供了使用少量或密集图像作为输入的实用神经渲染技术。