论文链接:https://arxiv.org/abs/2404.07191
代码链接:https://github.com/TencentARC/InstantMesh
解决了什么问题?
这项技术可以从单个视角的2D图像中生成3D模型,这有助于简化3D内容的创建过程。3D资产的生成可以应用于虚拟现实(VR)、工业设计、游戏开发和动画制作等多个领域。随着大规模扩散模型的出现,图像和视频生成领域经历了一场革命。这些模型在数十亿规模的数据上训练,能够根据开放式的提示生成生动和富有想象力的内容。尽管图像和视频生成取得了巨大成功,但在3D生成领域复制这种成功面临挑战,主要原因是3D数据集的规模有限,且3D数据的标注质量较差。3D数据集通常不如2D图像和视频数据集那样丰富和多样化,这限制了3D生成模型的训练和性能。此外,3D数据的标注(如深度、法线等)可能不够准确或详尽,这影响了模型学习3D结构的能力。
3D 数据缺乏是 3D 生成领域面临的一个重要问题,尤其是在需要大量数据来训练模型的情况下。为了解决这个问题,先前的研究探索了将2D图像扩散先验知识蒸馏到3D表示中的方法。这些方法采用了针对每个场景的优化策略,这意味着为每个单独的场景或数据集进行特定的优化。DreamFusion提出了得分蒸馏采样(SDS),这是一种在开放世界3D合成中取得突破的技术。使用文本到 2D 模型的 SDS 经常遇到所谓的 “Janus” 问题,即生成的3D模型在不同视角下出现不一致性,导致模型表面出现多个不同的面孔。为了改善3D一致性,后续工作提出了从Zero123模型中蒸馏,Zero123是一个从Stable Diffusion微调得到的新型视图生成器。一系列进一步的工作提出了多视图生成模型,这些模型可以同时由多个新颖的视图引导优化过程。通过多视图生成模型,优化过程可以得到多个视图的同时指导,这有助于生成在不同视角下都保持一致性的3D模型。
基于2D图像扩散先验的方法能够展示出强大的零样本(zero-shot)生成能力,即在没有针对特定类别训练的情况下生成新的样本。尽管2D蒸馏方法在理论上很有潜力,但它们在实际应用中耗时且不实用,因为生成过程可能需要大量的计算资源和时间。随着大规模开放世界3D数据集的可用性增加,一些先锋性的工作表明,图像标记(tokens)可以直接映射到3D表示,例如通过使用三平面(triplanes)。LRM是一种新型的3D重建模型,它基于高度可扩展的 transformer 架构,能够快速创建高质量的3D资产。Instant3D 提出了一种通过增强的LRM预测3D形状的方案,该LRM使用由扩散模型生成的多视图输入。Instant3D 的方法将LRM与图像生成模型相结合,这显著提高了模型的泛化能力,使其能够更好地适应不同的图像和场景。通过结合LRM和图像生成模型,Instant3D不仅提高了3D资产生成的速度和质量,还提高了模型对新数据和新场景的适应性。
基于LRM的方法使用三平面(triplanes)作为3D表示。尽管三平面在几何和纹理表示方面具有很强的能力,但解码三平面需要一个内存密集型的体积渲染过程。体积渲染的内存需求和计算复杂性显著限制了训练规模,即这种方法难以扩展到大规模的数据集或高分辨率的图像。高昂的计算成本使得使用高分辨率的RGB图像和几何信息(例如深度和法线)进行监督变得具有挑战性。为了提高训练效率,近期的研究寻求使用高斯分布作为3D表示,这种方法在渲染方面是有效的,但不适合于几何建模。一些并行的研究选择使用可微分表面优化技术直接对网格表示进行监督。然而,这些研究通常采用基于卷积神经网络(CNN)的架构,这限制了它们处理不同输入视图的灵活性,以及在更大规模数据集上的扩展性。
Triplanes是一种用于3D数据表达的方法,它通过将3D空间中的信息编码到三个正交的2D平面(通常称为特征平面)上,来高效地表示3D形状和场景。每个特征平面包含了3D空间中特定坐标轴的切片信息,这些切片通过插值获取3D点的特征向量,然后将这些特征向量累加以形成3D特征表示。这种方法的优势在于其效率,因为它随着表面面积而非体积进行扩展。
Image-to-3D
早期的研究主要集中在将2D图像转换为3D模型的单视图重建任务上。单视图重建是指仅使用一个视角的图像来推断出3D结构的过程。随着扩散模型(diffusion models)的发展,这些模型开始被用于图像到3D的生成任务。先驱性的工作探索了基于图像条件的3D生成建模,这些模型尝试在多种3D表示上生成3D内容,例如:点云、网格、SDF 网格、神经场。尽管这些方法取得了有希望的进展,但由于训练数据规模有限,它们很难泛化到开放世界(open-world)的对象上。开放世界的对象指的是在训练数据中未出现过的、更广泛和多样化的对象。这些方法在处理训练数据中未包含的物体时可能会遇到困难,因为它们没有足够的信息来准确预测和生成新的3D结构。
强大的文本到图像扩散模型的出现,激发了利用这些模型生成3D内容的新思路。2D扩散先验是指在2D图像上训练得到的扩散模型,这些模型能够捕捉图像的分布特性。通过每场景优化策略,可以将2D扩散先验知识蒸馏到3D表示中,这意味着为每个单独的场景或数据集进行特定的优化。DreamFusion提出的得分蒸馏采样(SDS)是一种在零样本文本到3D合成中表现出色的技术。零样本文本到3D合成是指在没有针对特定类别训练的情况下,直接从文本描述生成3D模型的能力。SDS方法经常遇到的一个问题是多面问题,也称为 “Janus” 问题,即生成的3D模型在不同视角下出现不一致性,导致模型表面出现多个不同的面孔。Zero123展示了Stable Diffusion模型可以通过相对相机姿态的条件调整来微调,以合成新视角的图像。利用Zero123提供的新颖视角指导,近期的图像到3D方法展示了改进的3D一致性,能够从开放领域的图像中生成合理的形状。
Multi-view Diffusion Models
Zero123是一种用于从文本描述生成3D模型的方法,但它在生成同一对象的不同视图时可能会遇到一致性问题。为了解决这个问题,一些研究工作尝试微调2D扩散模型,以便同时合成同一对象的多个视图。生成的多视图图像在3D上是一致的,这意味着从不同角度观察时,图像能够保持相同的3D结构。有了3D一致性多视图图像后,可以应用多种技术来获取3D对象:SDS 优化、神经表面重建方法、多视图条件 3D 扩散模型。为了进一步提高模型的泛化能力和多视图生成的一致性,一些近期的研究工作利用视频扩散模型中的时间先验来进行多视图生成。视频扩散模型中的时间先验是指在视频帧序列中,连续帧之间的时间关系和变化模式。利用这些时间先验可以帮助生成在时间上连贯的多视图图像。
Large Reconstruction Models
大规模3D数据集的出现使得可以训练出能够泛化到新场景的3D重建模型。LRM展示了 transformer 架构可以有效将图像标记映射到隐式的3D三平面表示,并使用多视图监督。Instant3D进一步将LRM扩展到稀疏视图输入,显著提高了重建质量。结合多视图扩散模型,Instant3D能够实现高泛化性和高质量的单图像到3D生成。受到Instant3D的启发,LGM和GRM将三平面NeRF表示替换为3D高斯表示,以利用其优越的渲染效率,并避免了内存密集型的体积渲染过程。尽管高斯表示在渲染效率上有优势,但在显式几何建模和高质量表面提取方面存在不足。鉴于神经网格优化方法的成功,MVD2和CRM等并行工作选择直接在网格表示上进行优化,以实现高效的训练和高质量的几何及纹理建模。与MVD2和CRM使用的卷积网络架构不同,作者的模型基于LRM,并选择了 transformer 架构,提供了更好的灵活性和训练可扩展性。
提出了什么方法?
InstantMesh 能够从单张图像快速生成3D网格,该框架提供了目前最高水准的 3D 资产生成质量,在训练时具有良好的可扩展性,可以处理更大规模的数据集或更复杂的模型。
- 给定一个输入图像,InstantMesh使用这个图像作为生成3D网格的起点。
- InstantMesh首先使用多视图扩散模型生成一组在3D上一致的多视图图像。这些图像从不同角度展示了预期的3D结构。
- 接着,InstantMesh利用一个基于LRM的稀疏视图大型重建模型直接预测3D网格。这意味着模型可以从少量视图快速推断出3D结构。
- 整个过程,从图像输入到3D网格生成,可以在几秒钟内完成。
- InstantMesh集成了一个可微分等值面提取模块,该模块可以直接在网格表面上应用几何监督,提高了训练效率和网格生成质量。
在公共数据集上的实验结果表明,InstantMesh 在定性和定量方面都显著优于其他最新的图像到3D的基线方法。作者发布了InstantMesh 的所有代码、权重和演示,目的是为3D生成AI领域的社区做出实质性贡献,并为研究人员和内容创作者提供支持。
InstantMesh 的架构和 Instant3D 相似,由一个多视图扩散模型 G M G_M GM 和一个稀疏视图的大规模重建模型 G R G_R GR 组成。给定一张输入图像 I I I, G M G_M GM 产生 3D 连续的多视图图像,然后输入 G R G_R GR 重建出高质量的 3D 网格。
Multi-view Diffusion Model
作者的重建模型接受自由视点图像作为输入,这意味着它可以处理从不同角度拍摄的图像。由于稀疏视图重建模型的灵活性,可以将任意多视图生成模型集成到其框架中。文中提到了一些多视图生成模型的例子,包括MVDream、ImageDream、SyncDreamer、SPAD和SV3D。通过集成这些多视图生成模型,作者的框架能够实现从文本描述或图像到3D资产的创建。作者选择了Zero123++作为其框架的一部分,因为它在多视图一致性方面表现出可靠性,并且提供了适应的视点分布。Zero123++的视点分布能够覆盖3D对象的上部和下部,这有助于更全面地捕捉和重建3D结构。
White-background Fine-tuning.
给定一张图像,Zero123++ 生成一个 960 × 640 960\times 640 960×640 的灰底图像,该图像以 3 × 2 3\times 2 3×2网格的形式展示 6 6 6个多视图图像。在实践中,作者发现生成的背景在不同图像区域之间不一致,并且在RGB值上有所变化。这种不一致性会导致重建结果中出现浮动物(floaters)和类似云的伪影。大型重建模型(LRMs)通常也是在白底图像上进行训练的。为了去除灰底背景,可能需要使用第三方库或模型来保证在多个视图之间分割的一致性,但这不能保证分割的稳定性。因此,作者选择对Zero123++进行微调,使其能够合成一致的白底背景图像。这样做的目的是确保后续稀疏视图重建过程的稳定性。微调Zero123++的目的是为了生成没有背景不一致问题的图像,这样可以提高重建质量,减少重建过程中可能出现的伪影。在多视图重建中,视图之间的一致性对于获得高质量的3D模型至关重要。通过确保背景的一致性,可以提高重建过程的稳定性和最终结果的可靠性。
Data Preparation and Fine-tuning Details.
作者按照Zero123++的相机分布来准备微调数据集,使用Objaverse数据集中的LVIS子集中的每个3D模型进行操作。对于LVIS子集中的每个3D模型,渲染一个查询图像(query image)和6个目标图像(target images),所有图像都在白色背景上。查询图像的方位角(azimuth)、仰角(elevation)和相机距离是从一个预定义的范围中随机采样的。6个目标图像的相机姿态在 2 0 ∘ 20^\circ 20∘和 − 1 0 ∘ -10^\circ −10∘之间的仰角交替变化(从不同的高度视角捕捉 3D 模型),并结合相对于查询图像的方位角,起始于 3 0 ∘ 30^\circ 30∘,并为每个姿态增加 6 0 ∘ 60^\circ 60∘,确保从不同角度全面覆盖3D模型。
在微调过程中,使用查询图像作为条件,并把6个目标图像拼接成一个 3 × 2 3\times 2 3×2的网格进行去噪处理。查询图像作为条件输入,指导去噪过程,确保生成的图像与查询图像在内容上一致。将6个目标图像拼接起来,形成一个较大的图像网格,这有助于模型学习如何一致地去噪整个图像集合。遵循Zero123++的做法,使用线性噪声计划(linear noise schedule),这是一种向数据中逐渐添加噪声的策略,用于训练扩散模型。使用 v v v-prediction损失函数来训练模型,这种损失函数专注于预测噪声过程中的中间步骤,有助于改善去噪性能。随机调整条件图像的分辨率,使模型能够适应不同的输入分辨率,并生成清晰的图像。微调的目标是简单地替换背景颜色,而不是改变模型的生成能力。由于目标简单,微调过程收敛得非常快。使用UNet进行微调,迭代 1000 1000 1000步,学习率为 1.0 × 1 0 − 5 1.0 × 10^{−5} 1.0×10−5,批量大小(batch size)为 48 48 48。微调后的模型能够完全保留Zero123++的生成能力,并能够一致地产生白色背景的图像。
Sparse-view Large Reconstruction Model
稀疏视图重建模型 G R G_R GR 针对生成的多视图图像预测出网格。作者对于 Instant3D 的 G R G_R GR 的结构做了增强。
数据准备
训练数据集由Objaverse数据集中渲染的多视图图像组成。具体来说,对于数据集中的每个物体,作者渲染了 512 × 512 512\times 512 512×512像素的图像、深度图和法线图。每个物体的图像是从32个随机视点渲染得到的,这有助于模型学习从不同角度观察物体。此外,作者使用了一个经过筛选的高质量子集来训练他们的模型。筛选的目标是移除满足以下任一条件的物体:
- 没有纹理贴图的物体;
- 从任何角度渲染的图像占据不足 10 % 10\% 10% 的物体;
- 包含多个独立物体的组合;
- 没有 Cap3D 数据集提供的标题信息的物体;
- 低质量的物体。
“低质量”物体的分类是基于元数据中是否存在如“lowpoly”及其变体(例如“low poly”)等标签来确定的。通过应用筛选标准,作者从Objaverse数据集最初的800k个物体中筛选并整理出了大约270k个高质量实例。
输入视图和分辨率
训练时,对于每个物体,随机选取6张图像作为输入,另外选取4张图像作为监督信号。这10张图像用于训练模型,以学习如何根据一组图像重建 3D 结构。为了和 Zero123++ 的输出分辨率保持一致,所有输入的图像都被调整大小至 320 × 320 320\times 320 320×320 像素。在推理时,使用 Zero123++ 生成的6张图像作为重建模型的输入。重建模型的相机姿态是固定的,这意味着在生成图像时使用的相机位置和方向在推理过程中保持不变。作者的模型基于 transformer 架构,可以自然地处理不同数量的输入视图。使用较少的输入视图进行重建是实际可行的,这有助于在某些情况下减轻多视图一致性问题。当从多个视角渲染图像时,可能会遇到视角之间的一致性问题,尤其是在视角差异较大时。Transformer 架构提供了灵活性,允许根据需要选择不同数量的输入视图,这有助于优化推理过程并提高结果的稳定性。
Mesh as 3D Representation
传统的基于LRM的方法输出三平面(triplanes),这些需要通过体积渲染来合成图像。在训练过程中,体积渲染消耗大量内存,这限制了使用高分辨率图像和法线作为监督信号。为了提高训练效率和重建质量,作者在他们的重建模型中集成了一个可微分的等值面(iso-surface)提取模块,即 FlexiCubes。得益于高效的网格光栅化技术,作者能够使用全分辨率图像和额外的几何信息(如深度和法线)进行监督,而无需将它们裁剪成小块。应用这些几何监督信号可以生成比从三平面NeRF提取的网格更平滑的网格输出。使用网格表示还可以方便地应用额外的后处理步骤来增强结果,例如得分蒸馏采样(SDS)优化或纹理烘焙。
体绘制(Volume Rendering)是一种用于显示三维体数据的二维投影的技术。这种技术能够将体数据中的信息以图像的形式展现出来,广泛应用于科学计算可视化、医学成像、地质勘探等领域。体绘制算法有多种,包括光线投射算法(Ray-casting)、错切-变形算法(Shear-warp)、频域体绘制算法(Frequency Domain)和抛雪球算法(Splatting)。其中,光线投射算法是最基本和通用的方法,它通过从图像的每一个像素发射光线,并在体数据中进行采样和颜色累加,最终生成渲染图像。此外,有向距离场(Signed Distance Fields, SDF)在立体渲染中也扮演着重要角色,它可以用来表示和处理复杂的几何形状。通过SDF,可以实现对物体内部结构的精确控制和渲染。
Iso-surface是在三维数据集中,选取一个特定的数值(iso-value),将所有在这个数值上的数据点连接起来形成的表面。这个表面代表了数据场中的一个特定值的边界。在体绘制中,三维数据通常以体素(Voxel)的形式表示,每个体素包含一个数值,如密度、温度或压力等。通过选择特定的数值作为阈值,等值面提取算法会搜索体数据中所有等于该阈值的体素,并构建连接这些体素的表面。Marching Cubes是一种流行的等值面提取算法,它通过在体素数据中行进并检测数值变化来构建等值面。等值面可以提供数据集中特定特征的直观表示。等值面提取通常关注于数据集中特定数值的表面,而体绘制技术则是展示整个数据集的体积信息,包括透明度和颜色的变化。
与单视图的 LRM 相比,本文的重建模型的输入包含了6个视图,在计算 triplane tokens 和图像 tokens 的跨注意力时需要更多的内存。从头训练这样一个大型的 transformer 需要很长的时间。为了提高收敛速度,作者使用 OpenLRM 的预训练权重来初始化。作者采用了双阶段的训练策略。
Stage 1: Training on NeRF
第一阶段,作者在 triplane NeRF 表示上训练,重用了预训练的 OpenLRM 的知识。为了使模型那个能处理多个视角的输入图像,作者对模型做了修改。AdaLN(Adaptive Layer Normalization)是一种自适应的层归一化技术。在这里,它被添加到Vision Transformer 的图像编码器中,用于根据相机姿态调制特征,使输出的图像 token 能感知到姿态。在LRM的 triplane 解码器中原本包含了相机调制层,在修改过程中,作者将这些层被移除了,为了适应多视图输入或简化模型结构。
NeRF(Neural Radiance Fields,神经辐射场)是一种用于3D场景表示的深度学习模型。在这里,它被用于基于三平面(triplane)的3D表示,这是一种将3D信息编码到三个正交2D平面上的方法。
图像损失和 mask 损失就是:
L 1 = ∑ i ∥ I ^ i − I i g t ∥ 2 2 + λ lpips ∑ i L lpips ( I ^ i , I i g t ) + λ m a s k ∑ i ∥ M ^ i − M i g t ∥ 2 2 \begin{equation} \begin{split} \mathcal{L}_1&=\sum_i \left\| \hat{I}_i - I_i^{gt} \right\|_2^2 \\ &+ \lambda_{\text{lpips}}\sum_i \mathcal{L}_{\text{lpips}}\left( \hat{I}_i, I_i^{gt} \right) \\ &+ \lambda_{mask}\sum_i \left\| \hat{M}_i - M_i^{gt} \right\|_2^2 \end{split} \end{equation} L1=i∑ I^i−Iigt 22+λlpipsi∑Llpips(I^i,Iigt)+λmaski∑ M^i−Migt 22
其中, I ^ i , I i g t , M ^ i , M i g t \hat{I}_i, I_i^{gt}, \hat{M}_i, M_i^{gt} I^i,Iigt,M^i,Migt 表示第 i i i个视角的渲染图像、ground-truth 图像、渲染 mask、ground-truth mask。训练时, λ lpips = 2.0 , λ m a s k = 1.0 \lambda_{\text{lpips}}=2.0, \lambda_{mask}=1.0 λlpips=2.0,λmask=1.0,学习率设为了 4.0 × 1 0 − 4 4.0\times 10^{-4} 4.0×10−4,余弦退火至 4.0 × 1 0 − 5 4.0\times 10^{-5} 4.0×10−5。为了训练高分辨率图像,模型渲染了 192 × 192 192\times 192 192×192 个 patches,由裁剪后的 ground-truth patches 监督训练,这些 ground-truth patches 的大小在 192 × 192 192\times 192 192×192 与 512 × 512 512\times 512 512×512 之间。
LPIPS(Learned Perceptual Image Patch Similarity)是一种用于评估图像相似性的度量标准,特别是在3D重建任务和其他计算机视觉应用中。LPIPS的核心思想是利用深度学习模型来学习图像内容的感知相关性,从而提供一个比传统像素级度量(如均方误差MSE)更为精确的相似性评估。在3D重建任务中,LPIPS可以用来评估重建结果的质量。通过比较重建图像与真实图像或参考图像之间的LPIPS得分,可以评估重建的准确性和真实感。传统的图像相似性度量(如MSE、SSIM等)可能无法准确反映人类视觉感知,而LPIPS作为一种基于学习的方法,能够更好地模拟人类的感知评价。计算LPIPS得分通常涉及将输入图像通过一个预训练的深度神经网络,得到一个分数,该分数反映了图像对之间的相似性。LPIPS得分越低,表示两幅图像之间的感知差异越小,即它们在视觉上越相似。
Stage 2: Training on Mesh
在第二阶段,模型从之前的三平面NeRF转换到使用网格表示。网格表示可以使得训练过程更高效,因为它可能简化了优化问题,或者使得模型更容易学习到3D形状的细节。并且使用额外的几何监督信号,如深度、法线等来指导和改进模型的训练。作者将 FlexiCubes 加入了本文的重建模型,从隐式的三平面场提取网格表面。原始的三平面NeRF渲染器包括一个用于预测密度的多层感知器(MLP)和一个用于预测颜色的MLP。在转换到网格表示后,原有的用于预测密度的MLP被重用,但这次它被用来预测符号距离函数(SDF)。为了支持FlexiCubes的工作,模型中添加了两个额外的MLP,一个用于预测变形,另一个用于预测FlexiCubes所需的权重,从而调整网格以更好地适应隐式场提取的形状。
Mesh 网格表示通常指的是由顶点、边和面组成的3D模型。
FlexiCubes是一种集成到重建模型中的方法,用于从未显式的三平面场(triplane implicit fields)中提取网格表面。
符号距离函数(SDF)是一种表示3D形状的函数,它为空间中的每个点分配一个值,表示该点到最近表面的有符号距离。
对于密度场 f ( x ) = d , x ∈ R 3 f(\mathbf{x})=d, \mathbf{x}\in \mathbb{R}^3 f(x)=d,x∈R3,物体内部的点具有更高的值,外部的点值较小。而 SDF 场 g ( x ) = s g(\mathbf{x})=s g(x)=s 则恰恰相反。因此,作者用如下方式初始化最后一个 SDF MLP 的权重 w ∈ R C \mathbf{w}\in \mathbb{R}^C w∈RC 和偏置 b ∈ R b\in \mathbb{R} b∈R:
w = − w d b = τ − b d \begin{equation} \begin{split} \mathbf{w}=-\mathbf{w}_d \\ b = \tau - b_d \end{split} \end{equation} w=−wdb=τ−bd
其中 w d ∈ R C \mathbf{w}_d\in \mathbb{R}^C wd∈RC 和 b d ∈ R b_d\in\mathbb{R} bd∈R 是原密度 MLP 最后一层的权重和偏置。 τ \tau τ 表示密度场里用到的 iso-surface 阈值。将最后一个 MLP 的输入特征记做 f ∈ R C \mathbf{f}\in \mathbb{R}^C f∈RC,我们有
s = w ⋅ f + b = ( − w d ) ⋅ f + ( τ − b d ) = − ( w d ⋅ f + b d − τ ) = − ( d − τ ) \begin{equation} \begin{split} s &= \mathbf{w}\cdot \mathbf{f} + b \\ &= (-\mathbf{w}_d)\cdot \mathbf{f} + (\tau - b_d) \\ &= -(\mathbf{w}_d \cdot \mathbf{f} + b_d - \tau) \\ &= -(d-\tau) \end{split} \end{equation} s=w⋅f+b=(−wd)⋅f+(τ−bd)=−(wd⋅f+bd−τ)=−(d−τ)
初始化后,将密度场的方向掉转,和 SDF 的方向一致,确保 iso-surface 的边界位于 SDF 场的零水平集上。通过实验,作者发现这样初始化有助于提升训练的稳定性和 FlexiCubes 的收敛速度。第二阶段的损失如下:
L 2 = L 1 + λ d e p t h ∑ i M g t ⊗ ∥ D ^ i − D i g t ∥ 1 + λ n o r m a l ∑ i M g t ⊗ ( 1 − N i ^ ⋅ N i g t ) + λ r e g L r e g \begin{equation} \begin{split} \mathcal{L}_2 = \mathcal{L}_1 &+ \lambda_{depth} \sum_i M^{gt} \otimes \left\| \hat{D}_i - D_i^{gt} \right\|_1 \\ &+ \lambda_{normal} \sum_i M^{gt} \otimes (1 - \hat{N_i}\cdot N_i^{gt}) \\ &+ \lambda_{reg}\mathcal{L}_{reg} \end{split} \end{equation} L2=L1+λdepthi∑Mgt⊗ D^i−Digt 1+λnormali∑Mgt⊗(1−Ni^⋅Nigt)+λregLreg
其中 D ^ i , D i g t , N ^ i , N i g t \hat{D}_i, D_i^{gt}, \hat{N}_i, N_i^{gt} D^i,Digt,N^i,Nigt 分别表示第 i i i个视角的渲染深度、ground-truth 深度、渲染法线和 ground-truth 法线。 ⊗ \otimes ⊗ 表示逐元素的乘积。 L r e g \mathcal{L}_{reg} Lreg 表示 FlexiCubes 的正则项。训练时, λ d e p t h = 0.5 , λ n o r m a l = 0.2 , λ r e g = 0.01 \lambda_{depth}=0.5, \lambda_{normal}=0.2, \lambda_{reg}=0.01 λdepth=0.5,λnormal=0.2,λreg=0.01,学习率为 4.0 × 1 0 − 5 4.0\times 10^{-5} 4.0×10−5,余弦退火至 0 0 0。在这俩阶段都使用了八张 H800 GPUs 训练。
Camera Augmentation and Perturbation
与那些在视图空间(即相对于相机视角的局部空间)中重建3D对象的模型不同,作者的模型在规范化的世界空间(canonical world space)中重建3D对象。在这种空间中, z z z轴与反重力方向对齐,这意味着在重建过程中,3D对象是根据地球重力方向(通常指向地面)来定位的。为了提高模型对3D对象尺度和方向的鲁棒性,作者对输入的多视图相机姿态(即相机的位置和方向)执行了随机旋转和平移。通过对相机姿态进行随机变换,模型可以学习到在不同尺度和方向下重建3D对象的能力,从而提高其泛化能力。考虑到由Zero123++生成的多视图图像可能与其预定义的相机姿态不一致,这可能会影响重建的准确性。为了解决这个问题,作者在将相机参数输入到 Vision Transformer 图像编码器之前,向其添加了随机噪声,以增强模型对输入变化的适应性。
Model Variants
本文,作者提供了四个稀疏视角重建模型的变体,两个来自于第一阶段,两个来自第二阶段。根据 3D 表示(NeRF、Mesh)和参数的多少(base、large)来命名模型。下表中列出了各模型的细节。