使用 Transformer 进行视图合成

1726127843014.jpg

视图合成是计算机视觉和计算机图形学交叉领域的一个 长期存在的问题,它的任务是从该场景的多张图片中创建新的场景视图。自神经辐射场 (NeRF) 引入以来,这一问题受到了越来越多的关注 [ 1、2、3 ] 。这个问题很有挑战性,因为要准确地合成场景的新视图,模型需要从一小组参考图像中捕获许多类型的信息——其详细的 3D 结构、材料和照明。

在本文中,我们介绍了最近发布的用于视图合成的深度学习模型。在CVPR 2022上展示的“光场神经渲染”(LFNR)中,我们通过使用学习组合参考像素颜色的变换器来解决准确再现视图相关效果的挑战。然后在ECCV 2022上展示的“可泛化基于块的神经渲染”(GPNR)中,我们通过使用一系列具有规范化位置编码的变换器来解决推广到未见过的场景的挑战,这些变换器可以在一组场景上进行训练以合成新场景的视图。这些模型有一些独特的功能。它们执行基于图像的渲染,结合参考图像中的颜色和特征来渲染新颖的视图。它们纯粹基于变换器,对图像块集进行操作,并利用4D 光场表示进行位置编码,这有助于模拟视图相关效果。

我们训练深度学习模型,这些模型能够根据场景的几张图片生成新的视图。这些模型在处理与视图相关的效果(如试管上的折射和半透明效果)时特别有效。此动画经过压缩;请在此处查看原始质量渲染。来源:NeX/Shiny数据集中的实验室场景。

概述

模型的输入包括一组参考图像及其相机参数(焦距、空间中的位置和方向),以及我们想要确定其颜色的目标光线的坐标。为了生成新图像,我们从输入图像的相机参数开始,获取目标光线的坐标(每个坐标对应一个像素),然后查询模型以获取每个坐标。

我们不会完全处理每张参考图像,而是只关注可能影响目标像素的区域。这些区域是通过对极几何确定的,它将每个目标像素映射到每个参考帧上的一条线上。为了提高鲁棒性,我们在对极线上的多个点周围取小区域,从而得到一组将由模型实际处理的补丁。然后,Transformers 会对这组补丁进行操作,以获得目标像素的颜色。

Transformer 在此设置中特别有用,因为它们的自注意力机制自然地将集合作为输入,并且注意力权重本身可用于组合参考视图颜色和特征来预测输出像素颜色。这些 Transformer 遵循ViT中介绍的架构。

为了预测一个像素的颜色,模型会提取一组围绕每个参考视图的极线提取的色块。图片来源:LLFF数据集。

光场神经渲染

在光场神经渲染(LFNR) 中,我们使用两个变换器的序列将一组色块映射到目标像素颜色。第一个变换器沿每条极线聚合信息,第二个变换器沿每张参考图像聚合信息。我们可以将第一个变换器解释为在每个参考帧上查找目标像素的潜在对应关系,将第二个变换器解释为推理遮挡和视图相关效应,这是基于图像的渲染的常见挑战。

LFNR 使用两个变换器的序列将沿极线提取的一组补丁映射到目标像素颜色。

LFNR 在最流行的视图合成基准(NeRF的 Blender 和 Real Forward-Facing 场景以及NeX的 Shiny)上实现了最高水平的提升,峰值信噪比(PSNR) 的幅度高达 5dB 。这相当于将像素级误差降低了 1.8 倍。我们在下面展示了Shiny数据集中具有挑战性的场景的定性结果:

LFNR 可重现具有挑战性的视图相关效果,如 CD 上的彩虹和反射、瓶子上的反射、折射和半透明效果。此动画经过压缩;请在此处查看原始质量渲染。来源: NeX/Shiny数据集中的 CD 场景。

NeX和NeRF等先前方法无法重现NeX/Shiny数据集中实验室场景中试管的半透明和折射等与视图相关的效果。另请参阅文章顶部的此场景视频以及此处的原始质量输出。

推广到新场景

LFNR 的一个限制是,第一个变换器会针对每个参考图像独立地折叠沿每条极线的信息。这意味着它仅根据每个参考图像的输出射线坐标和块来决定要保留哪些信息,这在对单个场景进行训练时效果很好(大多数神经渲染方法都是这样),但它不能跨场景推广。可推广的方法很重要,因为它们可以应用于新场景而无需重新训练。

我们在通用的基于块的神经渲染(GPNR) 中克服了 LFNR 的这一限制。我们添加了一个转换器,它在其他两个转换器之前运行,并在所有参考图像的相同深度点之间交换信息。例如,第一个转换器查看上面显示的公园长椅上的块的列,并且可以使用在两个视图中出现在相应深度的花朵之类的线索,这表明可能匹配。这项工作的另一个关键思想是根据目标射线规范化位置编码,因为要跨场景进行推广,必须在相对而不是绝对参考系中表示数量。下面的动画展示了该模型的概览。

GPNR 由三个转换器序列组成,它们将沿极线提取的一组图像块映射到像素颜色。图像块通过线性投影层映射到初始特征(显示为蓝色和绿色框)。然后,这些特征由模型依次细化和聚合,最终得到由灰色矩形表示的最终特征/颜色。公园长椅图像来源:LLFF数据集。

为了评估泛化性能,我们在一组场景上训练 GPNR,并在新场景上进行测试。GPNR 在几个基准测试(遵循IBRNet和MVSNeRF协议)上的平均性能提高了 0.5-1.0 dB。在IBRNet基准测试中,GPNR 仅使用 11% 的训练场景就超越了基线。下面的结果显示了未经微调渲染的未见过场景的新视图。

GPNR 生成的保留场景视图,未经任何微调。此动画经过压缩;请在此处查看原始质量渲染。来源:IBRNet收集的数据集。

GPNR 生成的NeX/Shiny(左)和LLFF(右)场景视图的细节,无需任何微调。与IBRNet相比,GPNR 可以更准确地再现叶子上的细节和通过镜头的折射。

未来工作

包括我们在内的大多数神经渲染方法的一个限制是,它们需要每个输入图像的相机姿势。姿势不易获得,通常来自可能很慢的离线优化方法,从而限制了可能的应用,例如移动设备上的应用。联合学习视图合成和输入姿势的研究是一个有前途的未来方向。我们的模型的另一个限制是它们训练起来计算成本高昂。有一条关于更快的变换器的研究路线,这可能有助于提高我们模型的效率。有关论文、更多结果和开源代码,您可以查看“光场神经渲染”和“可推广的基于块的神经渲染”的项目页面。

潜在的滥用

在我们的研究中,我们的目标是使用场景中的图像准确地再现现有场景,因此几乎没有空间生成虚假或不存在的场景。我们的模型假设静态场景,因此合成移动物体(例如人)将行不通。

致谢

所有艰苦的工作都是由我们出色的实习生——UBC的博士生Mohammed Suhail与Google Research 的Carlos Esteves和Ameesh Makadia以及 UBC 的Leonid Sigal合作完成的。我们感谢 Corinna Cortes 对这个项目的支持和鼓励。

我们的工作受到了NeRF和 IBRNet 的启发,NeRF 引发了人们对视图合成的近期兴趣,IBRNet则首次考虑了对新场景的泛化。我们的光线位置编码受到了开创性论文《光场渲染》的启发,而我们对变压器的使用则遵循了ViT。

视频结果来自LLFF、Shiny和IBRNet收集的数据集中的场景。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论