CVPR24满分Oral!EscherNet实现任意视角灵活扩散生成,解锁3D视觉无限可能!

一作个人主页:
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就能够合成丰富视角的逼真图像」。

图1|效果展示©️【深蓝AI】编译

2. 具体方法与实现

在介绍方法前,我们需要明白在EscherNet将视图合成重新表述为了一个条件生成建模问题,核心因素即为“参考视图”、“目标视图”和“全局相机位姿”。其中每个视图都有一个一一对应的相机位姿,而“目标视图”的生成仅和“参考视图”的相机位姿到“目标视图”的相机位姿的位姿变换有关,这种方法的核心创新在于只依赖相机的相对位姿,而不是绝对位姿,从而在模型训练和推理过程中保持对视图和姿态变化的灵活性和一致性。同时我们也要了解EscherNet的设计原则:

· 基于现有的2D扩散模型,继承了其通过大规模训练获得的强大先验知识;

· 为每个视图/图像编码相机姿态,类似于语言模型为每个词元编码位置信息。因此EscherNet能够自然地处理任意数量的视图,进行任意视图之间的合成。

下面逐步介绍本文实现的关键架构,图2很清晰地展示了个中细节。

图2|全文架构细节©️【深蓝AI】编译

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 − θ 2 \theta_1 - \theta_2 θ1θ2时, π ( v , θ 1 ) \pi(v, \theta_1) π(v,θ1) π ( v , θ 2 ) \pi(v, \theta_2) π(v,θ2)之间的点积应等价于 π ( v , θ 1 − θ 2 ) \pi(v, \theta_1 - \theta_2) π(v,θ1θ2) π ( v , 0 ) \pi(v, 0) π(v,0)的点积。

2.视图半径的相对尺度差异:相似地,当两个半径 r 1 r_1 r1 r 2 r_2 r2的相对差异为 r 1 / r 2 r_1 / r_2 r1/r2时, π ( v , r 1 ) \pi(v, r_1) π(v,r1) π ( v , r 2 ) \pi(v, r_2) π(v,r2)的点积应等价于 π ( v , r 1 / r 2 ) \pi(v, r_1 / r_2) π(v,r1/r2) π ( v , 1 ) \pi(v, 1) π(v,1)的点积。

作者使用旋转位置编码(RoPE)的设计策略,通过变换特征向量 v v v和块对角旋转矩阵 ϕ ( P ) \phi(P) ϕ(P),将上述两个条件整合为统一的公式。位置编码的具体表示如下:

π ( v , P ) = ϕ ( P ) v \pi(v, P) = \phi(P)v π(v,P)=ϕ(P)v

矩阵 ϕ ( P ) \phi(P) ϕ(P)包含针对方位角、仰角、相机角度和视图半径的旋转信息,具体旋转矩阵的表达方式为:

Ψ θ = [ cos ⁡ ( θ ) − sin ⁡ ( θ ) sin ⁡ ( θ ) cos ⁡ ( θ ) ] \Psi_{\theta} = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{bmatrix} Ψθ=[cos(θ)sin(θ)sin(θ)cos(θ)]
Ψ r = [ cos ⁡ ( f ( r ) ) − sin ⁡ ( f ( r ) ) sin ⁡ ( f ( r ) ) cos ⁡ ( f ( r ) ) ] \Psi_{r} = \begin{bmatrix} \cos(f(r)) & -\sin(f(r)) \\ \sin(f(r)) & \cos(f(r)) \end{bmatrix} Ψr=[cos(f(r))sin(f(r))sin(f(r))cos(f(r))]

其中 f ( r ) f(r) f(r)是一个函数,用于将视图半径的对数映射到旋转范围内。通过这种设计,确保点积操作与尺度差异保持一致。

6自由度(6 DoF)CaPE

对于6自由度相机姿态,作者使用了经典的3D空间变换矩阵表示法,表示如下:

P = [ R t 0 1 ] ∈ S E ( 3 ) P = \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix} \in SE(3) P=[R0t1]SE(3)

在这种表示中,位置分量彼此关联,无法像4 DoF那样进行多维位置的分解。位置编码函数 π ( v , P ) \pi(v, P) π(v,P)需要满足以下条件:当给定两个相机位姿时,它们的点积应等价于其逆变换作用下的点积。作者使用与4 DoF类似的策略,将 p p p转换为块对角矩阵,通过旋转矩阵进行相对位置的编码,从而在关键和查询位置之间进行高效的计算。无论是4 DoF 还是6 DoF的CaPE设计,都通过将特征向量 v v v调整为与旋转矩阵 Ψ \Psi Ψ的维度匹配的方式,实现了高效的矩阵乘法,从而提升了计算速度。该设计为模型的高效计算提供了基础,使相机位姿信息能够灵活且准确地编码到变换器架构中。

3. 实验

本文的实验部分主要focus三个方面:

·新视角合成

·3D生成

·text-to-3D的生成

正好对应了本文的核心思路:用少量的训练资源搞定新视角合成以及3D生成问题,由于在本文的架构中用到了CLIP特征,因此自带一个隐式的text-to-3D的语义内联关系,配合上本文优秀的生成效果,能够实现非常SOTA的text-to-3D新视角合成,堪称前所未有。

图3|渲染质量量化结果©️【深蓝AI】编译
图4|渲染质量可视化结果©️【深蓝AI】编译

图3和图4展现了在新视角合成以及渲染上的实验结果,可以看到在训练资料很少的情况下,本文方法相比NeRF和3DGS有明显的优势,体现出了本文方法在Zero-shot方面的出色能力,但随着训练资料的提升,NeRF和3DGS的渲染质量有了很大的提高,这是因为这些方法所设计的场景就是通过大量的视角进行优化,从而学习全局场景表达,最终提升整体质量,而本文方法则更多地focus少量训练资料的情况,因此对于额外的场景训练资料,并没有针对性的做优化方案,这也是这篇文章的一个小limitation,但是作为一个focus在小样本训练的方法来说,其few-shot方面的能力已经十分出色。图4则能够很清晰的体现出这一点,对于NeRF和3DGS,在训练资料很少的情况下,基本上无法得到较好的结果,但是EscherNet一直都能够达到“realistic”的效果。

图5|few-view新视角合成实验可视化©️【深蓝AI】编译

从图5可以看出EscherNet超越了Zero-1-to-3-XL,提供了更出色的生成质量和更精细的相机控制。值得注意的是,当加入额外的视图作为条件时,EscherNet生成的视图与真实纹理的相似度得到了显著提升,展示了更精细的纹理细节,例如背包带和乌龟壳的纹理。

图6|3D生成实验结果©️【深蓝AI】编译

图7|3D生成实验可视化©️【深蓝AI】编译

图6和图7展现了3D生成实验的结果。

如图6,EscherNet在所有图像到3D的基准测试中表现优于其他方法,能够生成视觉上更具吸引力且具有更精确3D几何结构的结果,尤其是在使用多个参考视图作为条件时表现尤为突出。

我们可以从图7看出,EscherNet能够生成密集且一致的新视图,这显著提升了完整且受约束良好的3D几何重建能力。相比之下,尽管One-2-3-45-XL和DreamGaussian-XL依赖了规模更大的预训练模型,但它们往往生成过度平滑且带有噪点的重建结果;而SyncDreamer由于受限于稀疏的固定视图合成,尤其在沙发区域和钟底部等几何细节处难以实现紧密约束。

图8|text-to-3D实验可视化©️【深蓝AI】编译

图8则为text-to-3D的实验结果,可以观察到EscherNet提供了令人信服且逼真的视图合成,适用于通过用户提供的文本提示生成的合成图像。

4. 总结

本文介绍了EscherNet:一种用于可扩展视图合成的多视角条件扩散模型,它基于Stable Diffusion 的二维架构,并通过创新的相机位置嵌入(CaPE)技术,能够灵活地从不同数量的参考视图中学习隐式3D表示,实现一致的3D新视图合成。
©️【深蓝AI】

编译|阿豹
审核|Los

本文首发于微信公众号【深蓝AI】,移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态👇

3D点云生成扩散概率模型》是CVPR 2021会议上提出的一种方法,用于生成逼真的3D点云模型。该方法通过建模点云中点之间的关系,以及点与空间中的位置关系,来生成点云数据。 传统的点云生成方法通常只考虑点与点之间的局部关系,而忽略了点与全局空间之间的关系。然而,在实际场景中,点云的分布往往受到全局空间的影响,因此需要考虑点与全局空间之间的关系。 该方法基于已有的点云数据集,首先利用卷积神经网络对点云进行特征提取,以获取点与其周围点的局部关系。然后,引入一个扩散概率模型,用于建模点与全局空间之间的关系。 扩散概率模型是一种概率模型,用于衡量点在全局空间中的分布。它基于点云生成的任务,通过最大似然估计来学习模型参数。在生成阶段,通过采样扩散概率模型,可以生成逼真的3D点云。 实验结果表明,该方法在各种点云生成任务上具有很好的效果。与传统方法相比,它能够更准确地还原真实场景中的点云分布,生成更逼真的模型。 综上所述,《3D点云生成扩散概率模型》是一种基于点与全局空间之间关系的方法,用于生成逼真的3D点云模型。它通过引入扩散概率模型,能够更精确地模拟点云分布,生成更逼真的结果。这一方法在点云生成任务中具有广泛的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值