新视角合成(Novel View Synthesis)技术详解
引言:超越快门的视界
想象一下,你站在一个美丽的风景前,用相机拍下了几张照片。如果有人想从你从未站过的角度欣赏这个风景,比如从上方俯瞰,或者从侧后方观察那棵树的细节,你能做到吗?传统的摄影无法实现这一点。然而,在计算机视觉和图形学的交叉领域,一个名为“新视角合成”(Novel View Synthesis, NVS)的技术正在将这个看似不可能的设想变为现实。
新视角合成的核心目标是:给定一个场景或物体的多张现有二维图像,生成该场景或物体从任意新的、未曾捕捉过的三维视角下的逼真图像。这项技术是构建沉浸式体验、数字孪生、增强现实(AR)、虚拟现实(VR)以及高级计算机图形应用的关键基石。它让静态的图像集合转化为可以在三维空间中“漫游”的动态视界。
这项技术并非新生事物,其历史可以追溯到基于图像的渲染(Image-Based Rendering, IBR)的早期研究。然而,随着深度学习的飞速发展,特别是近年来神经渲染(Neural Rendering)领域的突破,NVS的质量、效率和适用范围都得到了前所未有的提升,涌现出了如NeRF(Neural Radiance Fields)和3D Gaussian Splatting 等极具影响力的技术。
本文将深入探讨新视角合成的技术原理,从传统方法到现代基于深度学习的方法,详细介绍其核心概念、关键技术、发展历程、挑战与未来方向。
一、新视角合成的本质与问题定义
从数学和几何学的角度来看,NVS是一个病态问题(ill-posed problem)。从二维图像恢复三维信息本身就存在固有的模糊性,因为不同的三维结构可能在同一视角下产生相同的二维投影。新视角合成更进一步,它不仅需要理解三维结构,还需要合成新的二维视图。
其基本任务可以概括为:
- 输入: 一组已知相机姿态(位置和方向)的二维图像集合 $I = {i_1, i_2, \dots, i_n}$,以及每张图像对应的相机参数(内参和外参)。
- 输出: 给定一个新的相机姿态 $C_{new}$,生成从该姿态观察到的场景图像 $i_{new}$。
这里的“场景”可以是静态的物体、房间、建筑群,甚至更大尺度的环境。关键在于,我们需要从有限的、二维的输入中推断出足够的三维信息(几何、外观、光照等),以便在新的视角下准确地“绘制”出图像。
NVS技术的挑战主要体现在以下几个方面:
- 三维理解: 从二维图像中准确恢复场景的三维几何结构和空间关系。
- 外观建模: 捕捉场景表面的纹理、颜色、材质特性,以及光照条件的影响。
- 遮挡处理: 在新视角下,哪些部分可见,哪些部分被遮挡,需要准确判断。
- 连续性与一致性: 合成的新视角图像需要与输入图像保持视觉上的一致性,并且在连续视角变化时,图像应平滑过渡。
- 效率与实时性: 对于AR/VR等应用,合成速度需要达到实时或近实时要求。
二、传统新视角合成方法
在深度学习兴起之前,新视角合成主要依赖于基于图像处理和三维几何重建的技术,统称为基于图像的渲染(Image-Based Rendering, IBR)。这些方法通常需要显式地重建场景的三维表示。
-
基于几何的方法:
- 多视角立体匹配 (Multi-View Stereo, MVS): 通过在多张图像之间进行特征匹配和三角测量,计算场景密集的三维点云或表面网格。一旦有了三维几何模型,就可以使用传统的计算机图形学方法进行渲染。这种方法的质量很大程度上取决于三维重建的精度,对于缺乏纹理或重复纹理的区域,以及光照变化大的场景,重建往往困难。
- 结构从运动 (Structure from Motion, SfM): 通常作为MVS的前端,用于估计输入图像的相机姿态和稀疏的三维点云。SfM+MVS是经典的三维重建管线。
-
基于图像的方法(非几何):
- 光场渲染 (Light Field Rendering): 将场景视为一个四维光场(描述通过空间中每一点、沿每个方向的光线)。如果能密集采样足够多的视角,理论上可以在这些采样视图之间的空间内进行插值来合成新视角。这种方法不需要显式三维重建,但需要非常密集的输入图像覆盖整个场景,数据量巨大,且难以处理复杂的遮挡和非朗伯体(non-Lambertian)表面(如镜面反射)。
- 分层深度图(Layered Depth Images, LDI): 将场景表示为一组带有深度信息的图层,可以处理一定程度的遮挡。
- 基于像素或区域的插值: 在源图像之间直接进行像素或图像块的插值,通常结合光流或视差估计,但对视角变化较大的情况处理能力有限。
这些传统方法虽然奠定了NVS的基础,但在处理复杂场景、非刚体、非朗伯体表面以及生成高质量、连续的新视角方面存在局限性。它们通常需要精确的三维重建或密集的输入数据,且对输入数据的质量(如光照一致性)要求较高。
三、基于深度学习的新视角合成:神经渲染的时代
深度学习,特别是卷积神经网络(CNN)和多层感知机(MLP)的强大表征能力,极大地推动了新视角合成的发展。深度学习方法不再局限于显式地重建完整的三维几何模型,而是倾向于学习一个能够隐式或显式地表示场景,并支持渲染过程的函数或模型。这被称为神经渲染。
神经渲染大致可以分为两类主要范式:
-
基于学习图像到图像映射的方法: 这些方法试图学习一个网络,将输入的图像集合和目标相机的姿态直接映射到输出图像。它们通常不 explicitly 构建完整的三维表示,而是依赖网络强大的特征提取和空间变换能力。
- View Synthesis Networks: 利用CNNs、空间转换网络(Spatial Transformer Networks, STN)或注意力机制,将源图像特征融合或扭曲到目标视角下。例如,利用光流或视差预测来引导特征的 warping。这类方法端到端训练,但在处理大视角变化和复杂遮挡时效果往往不如基于三维表示的方法。
- 利用中间表示: 有些方法学习生成中间表示(如深度图、法线图、不确定性图),然后利用这些中间表示辅助渲染。
-
基于学习三维场景表示的方法: 这是当前NVS研究的主流方向。这些方法学习一个能够表示场景三维结构和外观的函数或模型,然后利用可微分的渲染过程从这个表示中生成新视角图像。这种范式能够更好地处理遮挡和几何复杂性。
- 基于体素的方法: 将场景离散化为三维体素网格,使用CNNs或3D U-Net等网络学习每个体素的颜色和密度。然后使用体绘制(Volume Rendering)技术合成图像。体素方法在分辨率上受限,因为高分辨率的体素网格需要巨大的内存和计算。
- 基于点的神经表示: 将场景表示为一组带有特征的点,使用神经网络学习点的属性并在渲染时进行投影和混合。
- 基于神经网络的隐式表示: 这是目前最热门的方向,代表性技术是 NeRF。
四、神经辐射场(Neural Radiance Fields, NeRF)及其衍变
NeRF (Mildenhall et al., ECCV 2020) 是近年来NVS领域最具突破性的工作之一。它提出了一种全新的场景表示方式:将场景表示为一个连续的、五维(三维位置 $(x, y, z)$ + 二维视角方向 $(\theta, \phi)$)函数,该函数通过一个多层感知机(MLP)网络进行参数化。
NeRF的核心思想:
NeRF学习的是一个函数 $F: (x, y, z, \theta, \phi) \rightarrow (r, g, b, \sigma)$。
* 输入是三维空间中的一个点 $(x, y, z)$ 及其在目标视角下的观察方向 $(\theta, \phi)$。
* 输出是该点的颜色 $(r, g, b)$ 和体密度(volumetric density)$\sigma$。体密度可以理解为该点的不透明度,决定了光线穿过该点时被阻挡的程度。
这个MLP网络在给定输入图像上进行训练,目标是学习一个能够解释所有输入图像的场景表示。训练过程利用了可微分体绘制(Differentiable Volume Rendering)技术。
可微分体绘制原理:
为了从新的视角合成图像,对于图像中的每个像素,沿着穿过该像素的相机光线进行采样。对于光线上的每个采样点 $(x_i, y_i, z_i)$,我们计算其相对于相机中心的方向 $(\theta, \phi)$,然后将 $(x_i, y_i, z_i, \theta, \phi)$ 输入到 NeRF 的 MLP 网络中,得到该点的颜色 $(r_i, g_i, b_i)$ 和密度 $\sigma_i$。
根据体绘制原理,光线在穿过一系列采样点后最终到达相机的颜色,可以通过积分(在离散情况下是累加)这些点的颜色和密度贡献来计算。具体来说,对于光线上的一个点 $i$,其对最终像素颜色的贡献取决于其自身的颜色 $c_i$ 和密度 $\sigma_i$,以及它之前所有点对光线的透射率(即光线没有被之前任何点阻挡的概率)。透射率可以通过之前所有点的密度积分(或累加)得到。
最终,沿着一条光线累积的颜色 $C$ 可以近似计算为:
$C = \sum_{i=1}^N T_i (1 – \exp(-\sigma_i \delta_i)) c_i$
其中:
* $N$ 是光线上的采样点数量。
* $\delta_i$ 是第 $i$ 个采样点到第 $i+1$ 个采样点之间的距离。
* $\sigma_i$ 和 $c_i$ 是 MLP 为第 $i$ 个点预测的密度和颜色。
* $T_i$ 是光线到达第 $i$ 个采样点的透射率,计算为 $T_i = \exp(-\sum_{j=1}^{i-1} \sigma_j \delta_j)$。
这个体绘制过程是可微分的。这意味着我们可以计算合成图像像素颜色相对于NeRF MLP参数的梯度。
NeRF的训练过程:
- 从训练图像中随机采样一批像素。
- 对于每个采样像素,计算穿过该像素的相机光线。
- 沿着每条光线采样一系列三维点。NeRF使用了分层采样(Hierarchical Sampling)策略,先在光线方向上均匀粗采样,根据粗采样点的密度分布再进行更精细的采样,以更有效地分配采样点。
- 将采样点的三维坐标和相机方向输入到 MLP 网络,预测每个点的颜色和密度。
- 使用体绘制公式计算每条光线预测的像素颜色。
- 计算预测颜色与真实像素颜色之间的均方误差(Mean Squared Error, MSE)损失。
- 使用梯度下降优化器(如 Adam)更新 MLP 网络的参数,最小化损失函数。
通过端到端的训练,NeRF网络学会了如何在一个连续的隐式场中编码场景的三维几何(通过密度 $\sigma$)和外观(通过颜色 $c$),并且能够在考虑遮挡的情况下通过体绘制生成高质量的新视角图像。
NeRF的优点:
- 高质量和真实感: 能够捕捉场景的复杂几何和精细纹理细节,甚至包括半透明和光滑表面的效果。
- 连续表示: 场景被表示为连续函数,可以生成任意精度的视图。
- 无需显式三维重建: 不需要先进行耗时且易出错的显式三维重建过程。
NeRF的局限性:
- 训练速度慢: 训练一个场景通常需要数小时到一天的时间,需要大量计算资源。
- 渲染速度慢: 渲染一个新视角需要对大量光线进行采样和网络查询,实时渲染非常困难。
- 泛化能力差: NeRF 模型通常只对一个特定的场景进行优化,不能直接泛化到新的未见过场景。
- 需要精确的相机姿态: 对输入图像的相机校准和姿态估计精度要求较高。
- 处理动态场景困难: 原始NeRF假定场景是静态的。
NeRF的衍变与改进:
NeRF的提出引发了该领域的研究热潮,大量后续工作致力于解决其局限性:
- 提升速度:
- Instant-NGP (Instant Neural Graphics Primitives): 使用多分辨率哈希编码(Multi-resolution Hash Encoding)等技术,显著提升了训练和渲染速度,实现了数秒训练和实时渲染(在GPU上)。
- Plenoxels, DVGO (Direct Voxel Grid Optimization): 使用显式的基于体素网格的表示结合体绘制,绕过MLP,进一步提升训练和渲染速度。
- K-Planes: 结合哈希编码和张量分解,实现更高效的表示。
- 处理动态场景: D-NeRF, Nerfies 等方法引入时间维度,学习一个随时间变化的神经辐射场。
- 提升泛化能力: PixelNeRF, MVSNeRF 等尝试从少量甚至单张图像生成NeRF,或者学习一个能够泛化到新场景的NeRF。
- 减少输入图像: Few-shot NeRF 方法。
- 处理大尺度场景: Mip-NeRF 360 等方法解决了在无限大场景(如室外)渲染时的缩放和采样问题。
- 提高几何精度/表面重建: NeuS, IDR (Implicitly Differentiable Rendering) 等方法结合体密度和表面符号距离函数(SDF),学习更精确的表面几何。
五、3D Gaussian Splatting:一个新兴的强大替代方案
虽然NeRF及其变种取得了巨大成功,但其核心的体绘制过程在实时渲染方面依然面临挑战(即使是Instant-NGP,在复杂场景下实时高分辨率渲染仍有压力)。近期提出的 3D Gaussian Splatting (3D-GS) (Kerbl et al., SIGGRAPH 2023) 提供了一个全新的、高效的场景表示和渲染范式。
3D Gaussian Splatting的核心思想:
3D-GS 将场景表示为大量(通常数十万到数百万个)三维高斯球的集合。每个高斯球具有以下属性:
- 三维位置 (mean): 高斯球的中心点。
- 协方差矩阵 (covariance): 描述高斯球的形状和方向。
- 颜色 (color): 通常使用球谐函数(Spherical Harmonics, SH)表示,以捕捉光照对外观的影响。
- 不透明度 (opacity): 高斯球的透明度。
- 尺度 (scale) 和旋转 (rotation): 用于通过一个各向同性高斯球和旋转/缩放矩阵来表示任意形状的高斯球。
3D Gaussian Splatting 的训练过程:
- 初始化高斯球集合:通常从SfM得到的稀疏点云初始化,每个点初始化一个高斯球。
- 优化过程: 使用可微分的“splatting”或“rasterization”过程和基于梯度的优化器(如Adam)对每个高斯球的属性(位置、协方差、颜色、不透明度)进行优化。
- 自适应控制: 在训练过程中,根据高斯球对渲染误差的贡献,可以密集化(densification)高斯球(分裂误差大的高斯球,或复制透明度低的高斯球)以及剪枝(pruning)透明度过低或尺度过大的高斯球,以自适应地调整场景表示的粒度。
可微分 Splatting/Rasterization 原理:
与NeRF的体绘制不同,3D-GS 采用了一种基于点或基于图元的渲染方式。对于一个新的视角:
- 将所有三维高斯球投影到二维图像平面上,形成二维高斯椭圆。投影过程考虑了相机内参、外参以及三维高斯球的协方差。
- 对投影后的二维高斯椭圆进行排序:根据它们到相机的距离进行排序(从远到近或从近到远,通常是先排序再从后往前绘制以实现透明度混合)。
- 将这些二维高斯椭圆“splat”(涂抹)到图像平面上:对于图像上的每个像素,累积覆盖该像素的所有高斯椭圆的颜色和透明度贡献,得到最终像素颜色。这个过程类似于传统的 알파 합성 (alpha blending)。
这个 splatting 过程也是可微分的,允许梯度从渲染输出流回到每个高斯球的属性。
3D Gaussian Splatting 的优点:
- 极快的渲染速度: 核心的 splatting/rasterization 过程可以在GPU上高度并行化,渲染速度比 NeRF 快几个数量级,轻松实现实时(数十到数百 FPS)高分辨率渲染。
- 高效的训练: 训练速度也比原始NeRF快很多,通常只需数分钟到一小时。
- 高质量: 也能生成非常逼真的新视角图像,捕捉精细细节。
- 显式表示: 虽然高斯球是一种软性的表示,但它们具有明确的空间位置和属性,相比NeRF的隐式场更容易理解和潜在地进行编辑。
3D Gaussian Splatting 的局限性:
- 数据量: 优化后的高斯球数量可能非常庞大,模型文件体积相对较大。
- 非朗伯体表面处理: 原始3D-GS使用SH函数来捕捉光照,在处理强镜面反射等高度非朗伯体表面时可能效果不如NeRF。
- 几何精度: 虽然视觉效果好,但由于是基于软性的高斯球表示,重建的几何结构可能不如基于SDF的神经表面方法那样精确。
- 初始化依赖: 通常需要SfM点云进行初始化,对初始化质量有一定依赖。
尽管存在一些局限性,3D Gaussian Splatting 以其惊人的速度和渲染质量,迅速成为新视角合成领域一个非常有前途的技术,特别适用于需要实时交互的应用场景。
六、评估指标
为了量化新视角合成的质量,常用的评估指标包括:
- PSNR (Peak Signal-to-Noise Ratio): 衡量合成图像与真实图像像素值之间的误差,值越高越好,但与人眼感知相关性不强。
- SSIM (Structural Similarity Index): 衡量两张图像之间的结构相似性,考虑亮度、对比度和结构三个方面,值越接近1越好,比PSNR更能反映人眼感知。
- LPIPS (Learned Perceptual Image Patch Similarity): 使用深度学习模型(预训练的分类网络)提取图像特征,然后计算特征之间的距离,以衡量感知上的相似性,值越低越好,通常与人眼主观评价更一致。
通常会综合使用这些指标来评估不同方法的性能。
七、挑战与未来方向
尽管取得了巨大进展,新视角合成技术仍面临许多挑战:
- 实时、大规模、动态场景的NVS: 当前的高质量方法(如NeRF/3D-GS)在处理大型室外场景或需要实时捕捉和渲染动态变化方面仍需进一步优化。
- 泛化能力和少样本学习: 如何让模型在未见过的新场景或仅有极少输入图像的情况下也能生成高质量视图。
- 鲁棒性: 对输入图像的质量(如模糊、噪声、光照变化)、相机姿态误差的鲁棒性。
- 编辑能力: 如何方便地编辑合成的场景,例如改变物体的形状、材质、移动物体或改变光照。基于神经场或高斯球的表示使得传统的三维编辑工具难以直接应用。
- 透明、反射、复杂材质的处理: 准确建模和渲染这些复杂的光学现象仍然是一个挑战。
- 结合语义理解: 将NVS与场景的语义理解结合,实现更智能的应用(如只渲染或编辑特定类别的物体)。
- 数据隐私与伦理: 捕捉和重建真实世界场景可能涉及隐私问题。
未来的研究方向可能包括:
- 开发更高效、更具泛化能力的神经场景表示。
- 探索新的渲染范式,平衡质量、速度和模型大小。
- 研究基于物理的神经渲染,更准确地模拟光线行为。
- 结合生成模型(如GAN或Diffusion Models),实现更灵活的场景生成和编辑。
- 将NVS与机器人学、自动驾驶、遥感等领域结合,提供更丰富的视觉信息。
八、结论
新视角合成技术是计算机视觉和图形学领域一个充满活力和前景的方向。从早期的基于几何和图像的方法,到如今基于深度学习,特别是神经渲染的革命,我们已经能够从少量二维图像合成令人惊叹的逼真三维视图。NeRF以其高质量和对复杂场景的捕捉能力奠定了基础,而3D Gaussian Splatting以其极快的渲染速度开启了实时NVS的新篇章。
这些技术的突破不仅推动了学术研究,也为增强现实、虚拟现实、电影制作、电子商务、文化遗产数字化等众多应用领域打开了新的可能性。虽然挑战依然存在,但随着研究的深入和计算能力的提升,我们可以期待新视角合成技术在未来带来更加沉浸、自由和可交互的视觉体验,真正超越传统快门的限制,让我们能够从任意视角探索数字化的世界。