One-2-3-45:从单张图像生成3D形状

简介:本方法以任意物体的单幅图像作为输入,在单次前传中生成完整的三维网格和纹理。给定一张单幅图像,本工作首先使用一个基于视角为条件的2D扩散模型(Zero123)为输入视角生成多视角图像,然后旨在将其拓展到三维空间。由于传统重建方法在重建方面存在问题,本工作在基于SDF的通用神经表面重建方法上构建了三维重建模块,并提出了几个关键的训练策略,以实现三维网格的重建。本方法无需耗费大量时间进行优化,可以在比现有方法更短的时间内重建三维形状。此外,本方法具有更好的几何形状,生成更一致的三维结果,并更贴近输入图像。

来源:Arxiv
项目链接:https://one-2-3-45.github.io/
作者:Minghua Liu, Chao Xu, Haian Jin, Linghao Chen, Mukund Varma T, Zexiang Xu, Hao Su.
内容整理:陈梓煜

介绍

单幅图像的三维重建是计算机视觉领域的一个长期问题,它对于机器人物体操作和导航、三维内容创建以及增强现实虚拟现实等广泛应用至关重要。这个问题具有挑战性在于它不仅需要重建可见部分,还需要推断不可见区域的内容。由于单幅图像提供的内容有限,这个问题通常是不适定的,对应着多个可能的解。另一方面,人类能够根据对三维世界的广泛知识,熟练地推断未见的三维内容。

许多现有方法利用在三维形状数据集上训练的三维生成网络,利用类别特定的先验知识进行重建。然而,这些方法通常无法推广到未见类别,并且其重建质量受限于公共三维数据集的有限规模。

本研究希望提出一个通用的解决方案,将任意物体的图像转化为高质量的三维网格和对应纹理。为了实现这一目标,我们提出了一种新的方法,能够有效利用2D扩散模型在三维重建中学习到的强先验知识。与三维数据相比,2D图像更易获取和扩展。最近的2D生成模型(例如DALL-E和Stable Diffusion)以及视觉语言模型(例如CLIP)通过在互联网规模的图像数据集上进行预训练,取得了重大进展。由于它们学习了广泛的视觉概念并具有关于我们的三维世界的强先验知识,因此将三维任务与它们结合是自然的。所以类似于DreamField和Magic3D等研究逐渐兴起,它们利用2D扩散模型或视觉语言模型来辅助三维生成任务。它们的共同范式是通过可微分渲染和CLIP模型或2D扩散模型的引导,对每个形状进行逐形状优化。尽管还有许多其他的三维表示方法被探索,但神经场是最常用于优化的表示方法。

虽然这些基于优化的方法在文本到三维和图像到三维任务上取得了不错的结果,但它们有一些共同的问题:

  • 耗时:每个形状的优化通常涉及数万次完整图像体素渲染和先验模型推断,导致每个形状的处理时间通常为数十分钟。
  • 内存消耗大:由于2D先验模型需要完整图像,当图像分辨率增加时,体素渲染可能占用大量内存。
  • 三维不一致:由于2D先验模型在每次迭代中只看到一个视角,并试图使每个视角看起来像输入图像,它们经常生成三维不一致的形状。
  • 几何形状质量差:许多方法在体素渲染中使用密度场作为表示方法。通常情况下,它们可以生成良好的RGB渲染,但提取高质量网格往往比较困难。
One-2-3-45:从单张图像生成3D形状

在本文中,我们提出了一种新的方法,不再遵循常见的基于优化的范式,而是利用2D先验模型进行三维建模。我们的方法的核心是将2D扩散模型与基于cost volume的三维重建技术相结合,在单次前向传递中从单幅图像重建出高质量的三维网格及对应纹理,而无需针对每个场景进行优化。具体而言,我们利用最近的2D扩散模型Zero123,它在Stable Diffusion上进行了微调,以根据相机变换预测输入图像的新视角。我们利用它生成输入单幅图像的多视角预测,以便利用多视角三维重建技术获得三维网格。从合成的多视角预测中重建存在两个挑战:

  • 多视角预测之间固有的三维不一致性,可能导致基于优化的方法(如NeRF方法)严重失败。
  • 需要输入图像的相机姿态,但该姿态是未知的。为了解决这些问题,我们的重建模块基于cost volume的神经表面重建方法SparseNeuS进行设计,它是MVSNeRF的变体。

此外,我们引入了一系列关键的训练策略,使得可以从固有不一致的多视角预测中重建三维网格。我们还提出了一个尺度估计模块,用于估计Zero123在规范坐标系中的输入形状的尺度,从而计算重建模块所需的相机姿态。

通过整合多视角合成、尺度估计和三维重建三个模块,我们的方法可以以前向传递的方式从单幅图像中重建任意物体的三维网格。无需耗费昂贵的优化过程,我们的方法在较短的时间内重建三维形状,仅需45秒。由于使用了SDF表示,我们的方法具有更好的几何形状,并且生成的三维网格更一致,这要归功于相机作为条件的多视角预测。

方法

本方法整体流程如图2所示。首先是一种基于视角条件的2D扩散模型Zero123,它用于生成多视角图像。即使给定了真实的相机姿态,传统的基于NeRF和基于SDF的方法在从不一致的多视角预测中重建高质量三维网格时会失败,最后,介绍基于cost volume的神经表面重建模块,可以通过单次前向传递处理不一致的多视角预测,并重建出一个三维网格。具体来说,我们建立在SparseNeuS上,并引入了几个关键的训练策略,以支持360o网格的重建。此外,我们还展示了在Zero123的规范坐标系中估计输入视图的高度对于三维重建的必要性。尽管方位角和半径可以任意指定,我们提出了一个新的模块,利用Zero123生成的四个附近视图来估计输入视图的高度。

One-2-3-45:从单张图像生成3D形状
图2

Zero123:新视角为条件的2D扩散模型

最近的2D扩散模型通过在互联网规模的数据上进行预训练,展示了学习广泛视觉概念和强先验知识的能力。虽然最初的扩散模型主要专注于文本到图像的任务,但最近的工作表明,通过对预训练模型进行微调,我们可以为扩散模型添加各种条件控制,并根据特定条件生成图像。

最近的工作Zero123具有类似的思路,旨在为Stable Diffusion模型添加视角条件控制。具体而言,给定一个物体的单幅RGB图像和相对相机变换,Zero123的目标是控制扩散模型在这个变换后的相机视图下合成一张新的图像。为了实现这一目标,Zero123在大规模3D数据集上合成的配对图像及其相对相机变换进行微调。在创建微调数据集时,Zero123假设物体位于坐标系的原点,并使用球面相机,即相机放置在球面上,并始终朝向原点。对于两个相机姿态(θ11,r1)和(θ22,r2),其中θi,Φi 和 ri 分别表示极角、方位角和半径,它们的相对相机变换被参数化为(θ2 – θ12 – Φ1,r2-r1)。它们的目标是学习一个模型f,使得f(x12 – θ12 – Φ1,r2-r1)在感知上x2与相似,其中x1和x2是从不同视角捕获的物体的两个图像。Zero123发现这样的微调使得Stable Diffusion模型学会了控制相机视角的通用机制,从而在微调数据集之外的物体上进行外推。

NeRF优化能否将zero123的多视角预测直接用于到神经渲染?

One-2-3-45:从单张图像生成3D形状
图3

给定一个物体的单幅图像,我们可以利用Zero123生成多视角图像,但我们能否使用传统的基于NeRF或基于SDF的方法从这些预测图像中重建高质量的3D网格呢?我们进行了一个小实验来验证这个假设。给定一幅单图像,我们首先使用Zero123生成32个多视角图像,其中相机姿态均匀采样于球面。然后,我们将这些预测输入到基于NeRF的方法(TensoRF)和基于SDF的方法(NeuS)中,分别优化密度和SDF场。然而,如图3所示,这两种方法都未能产生令人满意的结果,生成了大量的形变和漂浮物。这主要是Zero123的预测多视角3D不一致造成的。在图4中,我们将Zero123的预测与真实渲染进行了对比。我们可以看到,整体的峰值信噪比(PSNR)并不高,特别是当输入相对姿态较大或目标姿态位于不寻常的位置(例如底部或顶部)时。然而,Mask IoU(大多数区域大于0.95)和CLIP相似度相对较好。这表明Zero123倾向于生成与真实图像在感知上相似且具有相似轮廓或边界的预测,但像素级的外观可能并不完全相同。然而,这种源视角之间的不一致对传统的基于优化的方法是致命的。尽管原始的Zero123论文提出了另一种将其多视角预测转换为3D的方法,但我们将在实验证明它也无法产生完美的结果,并且需要耗费时间进行优化。

One-2-3-45:从单张图像生成3D形状
图4

基于不完全多视角预测的神经表面重建

我们的重建模块不使用基于优化的方法,而是基于一个通用的SDF重建方法SparseNeuS,它本质上是MVSNeRF的一种变体,将多视角几何、神经场表示和体素渲染相结合。如图2所示,我们的重建模块以个m具有相应相机姿态的源图像作为输入,在单次前向传递中生成一个带纹理的三维网格。

如图2所示,我们的重建模块以个具有姿态的源图像作为输入。该模块首先使用一个2D特征网络提取m个2D特征图。接下来,模块构建一个3D cost volume,其中的内容通过首先将每个3D体素投影到m个2D特征平面,然后在m个投影的2D位置上提取特征的方差来计算。然后,通过稀疏的3D卷积对cost volume进行处理,以获得编码输入形状的几何体素。为了预测任意3D点的SDF,MLP网络以3D坐标和来自几何编码体积的相应插值特征作为输入。为了预测3D点的颜色,另一个MLP网络以投影位置的2D特征、几何体积的插值特征以及查询射线相对于源图像的观察方向作为输入。网络预测每个源视图的渲染权重,并通过加权求和预测3D点的颜色。最后,在两个MLP网络之上应用基于SDF的渲染技术进行RGB和深度渲染。

两阶段源视图选择

尽管原始的SparseNeuS论文仅演示了前向视角重建,但我们已经将其扩展为在单次前向传递中重建360o网格,通过以特定方式选择源视图并在训练期间添加深度监督。具体而言,我们的重建模型在3D物体数据集上进行训练,同时固定Zero123。我们遵循Zero123对训练形状进行规范化,并使用球面相机模型。对于每个形状,我们首先从均匀分布在球面上的个相机姿态上渲染n个真实RGB和深度图像。对于这n个视图中的每一个,我们使用Zero123预测四个附近视图。在训练期间,我们将所有4 x n个预测与真实姿态一起输入到重建模块中,并随机选择一个n个真实RGB图像作为目标视图。我们将这种视图选择策略称为两阶段源视图选择。我们通过真实的RGB和深度值对训练进行监督。这样,该模块可以学习处理Zero123的不一致预测并重建一致的360o网格。我们认为我们的两阶段源视图选择策略非常关键,因为从球面表面均匀选择n x 4个源视图会导致相机姿态之间的距离更大。然而,基于cost volume的方法通常依赖非常接近的源视图来寻找局部对应关系。此外,如图4所示,当相对姿态很小时(例如,相差10度),Zero123可以提供非常准确和一致的预测,因此可以用于寻找局部对应关系和推断几何。

GT-Pred.混合训练

在训练期间,我们在第一阶段使用n个真实渲染,以便进行更好的深度损失监督。然而,在推断过程中,我们可以用Zero123的预测替换n个真实渲染,如图2所示,而无需深度输入。这种GT-Pred.混合训练策略也是重要的。为了导出带纹理的网格,我们使用Marching Cubes算法从预测的SDF场中提取网格,并查询网格顶点的颜色,如NeuS中所述。尽管我们的重建模块是在3D数据集上训练的,但我们发现它主要依赖于局部对应关系,并且在未见过的形状上具有很好的泛化性能。

相机姿态估计

我们的重建模块需要4 x n个源视图图像的相机姿态。需要注意的是,我们采用了Zero123进行图像合成,它将相机参数化为一个规范的球面坐标系(θ11,r1),其中θ1、Φ1和r1表示高度、方位角和半径。虽然我们可以同时任意调整所有源视图图像的方位角Φ和半径r,从而相应地旋转和缩放重建的物体,但这种参数化需要知道一个相机的绝对高度角θ以确定所有相机的相对姿态在标准XYZ坐标系中的位置。具体而言,当Δθ和ΔΦ相同时,不同θ0下相机 (θ00,r0) 和 (θ0+Δθ,Φ0+ΔΦ,r0) 相机之间的相对姿态是不同的。由于这个原因,同时改变所有源图像的高度角(例如向上或向下改变30度)会导致重建形状的失真。

因此,我们提出了一个高度估计模块来推断输入图像的高度角。首先,我们使用Zero123预测输入图像的四个附近视图。然后,我们以粗到精的方式枚举所有可能的高度角。对于每个高度候选角度,我们计算相应的相机姿态以及这组相机姿态的投影误差,以衡量图像与相机姿态之间的一致性。具有最小投影误差的高度角被用于通过组合输入视图的姿态和相对姿态来生成所有4 x n个源视图的相机姿态。

实验

单图像到3D网格

我们在图1和图5中展示了我们方法的定性示例,说明了它在处理合成图像和真实图像方面的有效性。我们还将One-2-3-45与现有的零样本单图像3D重建方法进行了比较,包括Point-E、Shap-E、Zero123、3DFuse和RealFusion。其中,Point-E和Shap-E是OpenAI发布的两个3D原生扩散模型,它们是在数百万个内部3D数据上进行训练的,而其他方法则是基于来自稳定扩散的先验知识的优化方法。

One-2-3-45:从单张图像生成3D形状
图5

图6展示了定性比较的结果。尽管大多数方法都能从单个图像生成合理的3D网格,但它们在几何质量、与输入图像的一致性和整体3D一致性方面存在明显差异。就几何质量而言,优化神经辐射场的方法(如RealFusion和3DFuse)在提取高质量网格方面存在不足。相比之下,Point-E生成的是稀疏点云,导致重建的网格上有许多空洞。相比之下,我们的方法利用了SDF表示,更有利于生成优质几何。关于与输入的一致性,我们观察到大多数Baseline方法在保持与输入图像的相似性方面存在困难。尽管Shap-E的表现略好,但仍存在许多失败案例(例如没有肩带的背包、变形的鞋子和三条腿的凳子)。相比之下,我们的方法利用强大的2D扩散模型直接生成高质量的多视角图像。这种策略更好地保持了对输入视角的一致性,减轻了3D重建模块的负担,并产生更贴合输入的结果。此外,许多方法在实现一致的3D结果方面遇到了挑战,如右侧的示例所示(两柄杯子、多面马里奥和双面背包)。导致这个问题的一个原因是几种方法独立地优化每个视角,努力使每个视角与输入相似。相比之下,我们的方法利用了基于视角的2D扩散模型,从根本上增强了3D的一致性。

One-2-3-45:从单张图像生成3D形状
图6

我们还在Objaverse和GoogleScannedObjects (GSO)数据集上进行了定量比较。对于每个数据集,我们随机选择了20个形状,并渲染每个形状的单个图像进行评估。为了使预测结果与GT网格对齐,我们线性搜索缩放因子和旋转角度,对采样的点云应用迭代最近点(ICP),选择具有最多内点的点云。我们按照RealFusion的方法报告F分数(阈值为0.05)和CLIP相似性以及在A100 GPU上的运行时间。如表1所示,我们的方法在F分数方面优于所有Baseline方法。至于CLIP相似性,我们除了与Shap-E这项同时进行的工作外,也超过了其他所有方法。我们发现,CLIP相似性对颜色分布非常敏感,在局部几何变化(例如凳子的腿的数量,杯子的手柄的数量)方面辨别能力较差。就运行时间而言,我们的方法在优化方法上具有明显的优势,并与Point-E和Shap-E等3D原生扩散模型性能相当。

One-2-3-45:从单张图像生成3D形状
表1

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论