Novel View Synthesis (NVS)
新视角合成通过深度变形、NeRF、高斯泼溅或扩散模型,渲染从未拍摄过的相机位置所看到的场景图像。
新视角合成(NVS)是根据一张或多张输入图像,生成从从未拍摄过的相机位置观察场景所得图像的任务。模型必须推断表面的位置、表面从新角度看起来的样子,以及填充所有输入相机都未拍到区域的内容。NVS 可用于自由视点视频、虚拟导览、3D 视频通话,以及从新轨迹重放录制行程的模拟器;它也是 3D 计算机视觉模型的标准测试,因为保留的照片能直接检验场景表示从新角度观察时是否可靠。
新视角合成的工作原理#
最简单的方法是重新投影像素。只要知道每个像素的深度值,就可以将每个点移动到新相机视角下对应的位置,这种技术称为基于深度图的渲染。离相机较近的点移动幅度大于较远的点;输入中被遮挡、但从新位置可见的表面会形成空洞,称为显露区域,必须将其填补。下面的示例使用 Middlebury 立体图像对的左图和视差(即反深度)合成右视图,然后将结果与形变过程中从未用到的真实右图进行比较:
import numpy as np
from skimage import data
from skimage.metrics import peak_signal_noise_ratio as psnr
# Left view, the real right view (held out), and per-pixel disparity (inverse depth) for the left view
left, right, disp = data.stereo_motorcycle()
ys, xs = np.nonzero(np.isfinite(disp))
xt = np.round(xs - disp[ys, xs]).astype(int) # column where the right camera, 0.19 m away, sees each pixel
# Paint far to near so the nearest surface wins where several pixels land on one spot
order = np.argsort(disp[ys, xs])
ys, xs, xt = ys[order], xs[order], xt[order]
keep = xt >= 0 # drop pixels that leave the frame
novel = np.zeros_like(left)
novel[ys[keep], xt[keep]] = left[ys[keep], xs[keep]]
# Holes are spots no left pixel reached, such as surfaces the left camera never saw
filled = novel.any(axis=2)
print(f"Holes: {1 - filled.mean():.1%} of the novel view")
print(f"PSNR, synthesized view: {psnr(right[filled], novel[filled]):.1f} dB")
print(f"PSNR, left view copied: {psnr(right[filled], left[filled]):.1f} dB")在真实照片上测得的合成视图峰值信噪比为 26.9 dB,而直接重复使用左图时为 12.9 dB,但新视图中有 17.0% 留作空洞。对于单张照片,视差可以通过单目深度估计获得:Ultralytics YOLO26 深度模型会预测每个像素以米为单位的深度,再据此转换为任意选定相机位移对应的视差。Meng-Li Shih 及其同事在 CVPR 2020 提出的3D 照片方法采用了这一路径,并使用学习得到的图像修复来填补空洞。
密集采集的数据支持针对场景进行优化。给定数十到数百张带相机姿态的照片(通常通过运动恢复结构获得),Ben Mildenhall 及其同事于 2020 年提出的神经辐射场会拟合一个网络,使其能返回任意 3D 点的颜色和密度,并沿每条相机射线进行体渲染,从而渲染新视图。Bernhard Kerbl 及其同事于 2023 年提出的高斯泼溅则用数百万个可实时光栅化的 3D 高斯体替代网络,在 1080p 分辨率下可达到每秒 30 帧或更高速度。两者都通过可微分渲染进行训练,方法是将渲染结果与输入照片进行比较。
只有一张或少量输入图像时,生成模型可以补足相机从未拍到的内容。以输入图像和相对相机姿态为条件的扩散模型,例如哥伦比亚大学于 2023 年提出的 Zero-1-to-3,可以生成物体背面看起来合理的视图;多视图扩散方法则会生成多个彼此一致的视图,然后根据这些视图拟合 3D 表示。
质量通过保留照片进行衡量,指标包括 PSNR、结构相似性指数(SSIM)和学习型感知距离 LPIPS;基准数据集包括 NeRF 论文中的合成 Blender 场景,以及 Mip-NeRF 360 中无边界的真实场景。
相关概念#
神经渲染是以神经网络为基础的更广泛图形技术类别,涵盖 NVS、重新照明、虚拟形象和图像编辑。3D 重建追求可测量的几何结构,例如网格;NVS 则只依据渲染图像进行评估,因此辐射场即使几何结构模糊,也可能渲染得很逼真。立体视觉会反向执行形变,根据两个真实视图测量视差。帧插值从固定视点生成时间上的新时刻,而由相机控制的视频生成则兼具两者特征:虚拟相机在生成场景中移动。动态场景会通过4D 高斯泼溅等方法将 NVS 扩展到时间维度。










