一作个人主页:
https://kxhit.github.io/
论文标题:
EscherNet: A Generative Model for Scalable View Synthesis Star233
导读:
多视图合成是CV和图形学中的一项核心任务,它允许从不同角度重新生成场景。通过多视角渲染,计算机可以像人类一样灵活地观察和操作场景。这种能力不仅在AR、VR等应用中至关重要,还能够帮助机器人在复杂环境中进行导航和交互。传统的视图合成方法通常需要大量的计算资源,并且在处理复杂场景时灵活性有限。
EscherNet是一种多视角条件扩散模型,为视图合成提供了全新解决方案。它结合了隐式和生成式3D表示,并通过创新的相机位置编码,实现了对多个参考视图和目标视图的精准控制。EscherNet能够从少量参考视图生成超过100个一致的目标视图,展现出卓越的灵活性和扩展性。与传统方法相比,EscherNet不仅节省了计算资源,在消费级GPU上也可运行,它还解决了零样本视图合成问题,将单图像与多图像的3D重建任务整合在一个统一框架中。实验表明,EscherNet在多个基准测试中表现出色,为3D视觉和生成技术的发展提供了新方向。©️【深蓝AI】编译
1. 引入
基于上述的背景,本文重新探讨了视图合成课题,并抛出一个关键问题:如何学习通用的3D表示,以实现可扩展的视图合成?这一研究基于以下两点观察展开:
首先,当前大多数视图合成的研究进展主要集中在训练速度和渲染效率上。 例如,许多方法依赖于体积渲染来优化场景,即通过在3D空间中构建物体的体素网格(类似于3D像素)来生成不同视角的图像。这意味着这些视图合成方法往往与特定场景紧密绑定,依赖全局3D空间坐标。因此,这类方法通常在处理特定场景时效果良好,但难以扩展到新的场景。与此相反,作者主张一种新的范式:依赖于场景的颜色和几何信息进行学习隐式表示,而不需要真实的3D几何数据,同时与任何特定的坐标系统无关。这种区别对于实现可扩展性非常关键,能够克服场景特定编码的局限性。
其次,视图合成更适合被视为一种条件生成模型问题,类似于图像修复。 在给定稀疏的参考视图时,理想的模型应能够根据生成过程中的随机性,结合其他图像和物体中学习到的自然图像统计和语义先验,生成多个合理的预测。随着参考视图信息的增加,生成的场景将逐渐趋向于真实表现。然而,现有的3D生成模型大多只支持单一的参考视图。因此,作者认为理想的生成模型应该能够灵活处理不同数量的输入信息。
基于这些见解,作者提出了EscherNet,这是一种用于视图合成的图像到图像的条件扩散模型。EscherNet使用了变换器架构,利用点积自注意力机制来捕捉参考视图与目标视图之间以及目标视图之间的一致性。变换器是一种用于处理序列数据的深度学习模型,广泛用于自然语言处理和图像生成任务。EscherNet的一个关键创新是相机位置编码(CaPE)的设计,它能够表示4自由度(物体中心)和6自由度的相机姿态。这种编码将空间结构融入了模型的标记中,使其能够仅根据相对相机变换计算自注意力,减少对绝对坐标系统的依赖。
EscherNet具备以下显著特点:
· 一致性: 由于相机位置编码的设计,EscherNet能够在参考视图与目标视图之间以及目标视图之间保持高度一致,确保生成的多视图之间具有连贯性。
· 可扩展性: 与许多受限于场景优化的神经渲染方法不同,EscherNet摆脱了对特定坐标系统和真实3D几何数据的依赖,无需执行复杂的3D操作(如3D卷积或体渲染),因此更易扩展,还可处理日常的2D图像数据。
· 通用性: 尽管EscherNet只在固定的3个参考视图到3个目标视图上进行了训练,但它依然能够生成任意数量的目标视图,并支持任意相机姿态,基于任意数量的参考视图。特别值得注意的是,随着参考视图数量的增加,EscherNet的生成质量也随之提升,符合其设计目标。
作者在新颖视图合成以及单图像和多图像3D重建的多个基准测试上进行了全面评估。结果表明,EscherNet不仅在生成质量上超越了所有现有的3D扩散模型,还能在极少的参考视图条件下生成合理的视图合成结果。图1展示了本文方法的新视图合成效果,其中粉色边框为训练素材,而蓝色边框为生成的图像:大家可以从中观察到「只需要用十分稀疏的视角进行训练,EscherNet就能够合成丰富视角的逼真图像」。
2. 具体方法与实现
在介绍方法前,我们需要明白在EscherNet将视图合成重新表述为了一个条件生成建模问题,核心因素即为“参考视图”、“目标视图”和“全局相机位姿”。其中每个视图都有一个一一对应的相机位姿,而“目标视图”的生成仅和“参考视图”的相机位姿到“目标视图”的相机位姿的位姿变换有关,这种方法的核心创新在于只依赖相机的相对位姿,而不是绝对位姿,从而在模型训练和推理过程中保持对视图和姿态变化的灵活性和一致性。同时我们也要了解EscherNet的设计原则:
· 基于现有的2D扩散模型,继承了其通过大规模训练获得的强大先验知识;
· 为每个视图/图像编码相机姿态,类似于语言模型为每个词元编码位置信息。因此EscherNet能够自然地处理任意数量的视图,进行任意视图之间的合成。
下面逐步介绍本文实现的关键架构,图2很清晰地展示了个中细节。
2.1 多视图生成
EscherNet能够无缝集成到任何基于Transformer架构的2D扩散模型中,且不需要额外的可学习参数。目前大多数扩散模型的核心架构都是基于Transformer的,因此EscherNet拥有非常出色的泛用性和可迁移能力,在EscherNet的设计中,采用了潜在扩散模型架构,其架构核心基于Stable Diffusion v1.5。EscherNet在这种基础上进行了一些改动,重点解决了多视图合成的问题。在原始的Stable Diffusion去噪U-Net中,自注意力模块被用于学习同一图像不同区域之间的相互作用。在EscherNet中,自注意力模块被重新用于学习M个不同目标视图之间的相互作用,从而确保目标视图之间的一致性。类似地,原先用于将文本信息整合到图像中的交叉注意力模块在EscherNet中被重新设计,用于学习N个参考视图和M个目标视图之间的相互作用,确保参考视图与目标视图之间的一致性。
2.2 参考视图的条件控制
在视图合成中,条件控制信号需要准确捕捉到参考视图中的高层语义信息和低层次纹理细节。此前的一些3D扩散模型采用了通过冻结的CLIP预训练ViT编码高层信号,并通过将参考图像与Stable Diffusion的U-Net输入相连接来编码低层信号的策略。然而,这种设计固有地限制了模型只能处理单一视图。
在EscherNet中,选择通过条件图像编码器将高层和低层信号结合在一起,将参考视图表示为一组token。此设计使得模型能够灵活处理不同数量的参考视图。早期实验表明,单独使用冻结的CLIP-ViT可能无法捕捉低层次的纹理信息,导致模型无法在相同视角下准确再现原始参考视图。虽然对CLIP-ViT进行微调可以解决这一问题,但这会在训练效率上带来挑战。因此,EscherNet选择微调一个轻量级的视觉编码器,具体来说是ConvNeXt v2-Tiny,这是一个高效的CNN架构,用于将参考视图压缩成较低分辨率的图像特征。EscherNet将这些图像特征作为条件token,用来有效表示每个参考视图。实验结果表明,这种配置在生成质量上表现出色,同时保持了高效的训练性能。
2.3 相机位置编码(CaPE)
下图为CaPE与语言编码结构对照参考:
相机位置编码是EscherNet模型中的一个重要组件,用于在变换器架构中高效、准确地将相机姿态编码到参考视图和目标视图的token中。灵感来源于语言模型的进展,作者首先对语言领域与3D视觉领域的区别进行了简要分析:
●在语言模型中,词元的位置是线性且离散的,句子的长度可以是无限的。语言模型通常在固定的最大词元数量(即上下文长度)下进行训练,如何设计位置编码以支持超出固定上下文长度的合理行为仍是一个研究挑战。
●在3D视觉中,相机的位置是旋转情况下的循环、连续且有界的结构,位移情况下则是线性、连续且无界的结构。与语言领域不同,3D空间中没有标准的全局相机绝对姿态,视图之间的关系完全依赖于它们的相对相机变换。
基于此,作者提出了两种空间位置编码的设计,分别用于表示基于物体中心渲染的4自由度(DoF)和一般情况下的6自由度相机姿态。这种设计策略直接作用于嵌入token特征中的全局相机姿态变换,使点积注意力机制能够直接编码相对相机变换,而不依赖任何坐标系统。
4自由度(4 DoF)CaPE
在4自由度相机姿态的情况下,作者采用球坐标系,将相机位置表示为四个参数:方位角 α \alpha α、仰角 β \beta β、沿视线方向的相机角度 γ \gamma γ以及相机与目标物体的距离 r r r。这些参数彼此独立,位置编码函数 π ( v , P ) \pi(v, P) π(v,P)需要满足两个基本条件:
1.旋转角度的相对差异:当两个角度 θ 1 \theta_1 θ1和 θ 2 \theta_2 θ2相对角度差异为 θ 1