新智元报道
人类的视觉展现出了惊人的灵活性。
比如说,在上图的左侧图像中,虽然人脑无法创建毫米级精确的3D模型,但人类的视觉系统可以结合少量图像的信息,在脑海中形成一个连贯的3D表现,包括老虎的复杂面部特征或形成玩具火车的积木的排列,即使是对于完全遮挡的部分也是如此。
3D重建技术在过去十五年里以一种根本不同的方式发展。
与人类从几张图像中推断3D形状的能力不同,这项技术需要数百张物体的图像,估计它们的精确相机参数,并以亚毫米级的精度重建高保真度的3D几何形状。
最近,来自西门菲莎大学等机构的研究人员提出了一种结合计算方法高保真和人类视觉系统灵活性的新3D重建范式,其灵感来源于最近多视图图像生成模型的发展,尤其是MVDiffusion、MVDream和Wonder3D等,这些方案展示了通过大生成模型生成3D模型的可能性。
论文链接:https://arxiv.org/abs/2402.12712
项目网站:https://mvdiffusion-plusplus.github.io/
文中介绍了一种新方法,能够生成高分辨率的密集图像集,用于3D模型重建,无需精确相机姿态,该方法基于扩散模型和「视图丢弃」训练策略,实现了3D一致性的学习。
该方法在新视角合成、单视图重建和稀疏视图重建上都展现了优异性能,超越了现有技术,同时还探索了与文本到图像模型结合的文本到3D应用。
具体方法介绍
MVDiffusion++可以根据任意数量的无位姿图片, 生成密集,高分辨率的有位姿图像。学习3D一致性是3D建模这项人物的核心,通常需要精确的图像投影模型和/或相机参数。
令人惊讶的是,对2D潜在图像特征之间的自注意力就是进行3D学习所需的全部,无需投影模型或相机参数,而一个简单的训练策略将进一步实现密集和高分辨率的多视图图像生成。
MVDiffusion++的生成目标是一组密集(32张)且高分辨率(512×512像素)的图像,这些图像位于球体上均匀的2D网格点上。具体来说,有八个方位角(每45°一个)和四个仰角(在[-30°, 60°]范围内每30°一个)。
相机的上向量与重力对齐,其光轴穿过球心。输入条件是一张或几张没有相机姿态的图像,其中视觉重叠可能极小或根本没有,无法通过structure from motion算出精确的相机位姿。MVDiffusion++最多支持10张输入分辨率为512×512的图像。
MVDiffusion++是一种多视图扩散模型,其结构包括一个用于单视图或稀疏视图输入图像的条件分支和一个用于输出图像的生成分支。注意,条件分支共享相同的架构,目标是生成条件图像(是一个简单的任务)。
正向扩散过程
通过一个微调的VAE将所有512 X 512的输入/输出图像及其前景掩码转换为64X 64的隐式空间Z,为这个隐式空间的每个特征Z添加一个线性的高斯噪声。
反向扩散过程
去噪过程如上图所示,MVDiffusion++用UNet对所有Z_i(t)进行降噪。这个UNet由编码器/解码器两侧的四个特征金字塔级别上的9个网络模块块组成。具体细节如下所述。
第一个Unet block
将输入特征U_i^0是通过以下输入初始化的:
1)带噪声的潜在Z_i(t);
2)一个常量二进制掩码,全是0或者全是1,用以指示分支类型(条件或生成);
3)隐式空间的特征Z,其中使用VAE来编码条件图像及其分割掩码得到Z。注意,这个输入有9=(4+4+1)个通道,并且一个1 X 1的卷积层将通道维度减少到4。对于生成分支,传递一个白色图像作为和一个二进制图像1作为分割掩码。
中间的每一个Unet block
由三个网络模块处理输入:
1)所有图像中的UNet特征之间的全局自注意机制(global self attention),学习3D一致性;
2)交叉注意机制(cross attention),通过CLIP入将条件图像的CLIP embedding注入到所有其他图像中;以及
3)CNN层,在处理每张图像的特征时注入时间步频率编码embedding和图像索引的可学习embedding。对于自注意模块,复制网络架构和模型权重,并将其应用于所有视图。
最后一个Unet block
输出产生噪声估计,使用标准的DDPM采样器产生下一个时间步Z_i(t-1)。
View Dropout
MVDiffusion++训练将面临可扩展性挑战。一共有42个UNet特征产生超过130k个token,其中即使使用最新的flash attention也无法实现全局自注意机制。
团队提出了一种简单但出奇有效的view dropout训练策略,它在训练期间完全丢弃所有层的一组视图。
具体来说,团队在每次训练迭代中随机丢弃每个对象的32个视图中的24个,显著减少了训练时的内存消耗。在测试时,运行整个架构并生成32个视图。
实验结果
MVDiffusion++使用objaverse训练,在google scanned object测试,以下是实验结果.
1. 单视图重建
主要基线是三种最先进的单视图对象建模方法:SyncDreamer[1]、Wonder3D[2]和Open-LRM[3]。
上表展示了重建的3D mesh和生成图像的定量评估。MVdiffusion++始终以明显的优势领先所有竞争方法。
上图展示了生成的图像和重建的3D mesh。MVDiffusion++的方法清晰地显示了钟表上的数字(第3行),而其他方法显示的数字模糊不清。另一个例子(第5行)展示了新方法生成的两个完全对称的窗户,与Wonder3D未能保持对称性或清晰度形成鲜明对比。
2, 稀疏多视图重建实验
稀疏视图未定位输入图像是一个具有挑战性的设置。MVDiffusion++选择LEAP作为第基线比较视图生成结果。关于多视图3D重建的文献非常丰富,尽管这些方法需要输入相机姿态,与新方法进行对比仍然具有价值。
作为一种妥协,团队选择了NeuS作为第二个基准用于比较3D重建精度,为它们提供真实相机姿态作为输入。
上表和上图呈现了定性与定量的比较结果。与LEAP相比,MVDiffusion++生成的图像质量要好得多。LEAP和新方法都利用多视图自注意力来建立全局3D一致性。
因此,团队将更好的性能归因于从预训练的潜在扩散模型继承的强大图像先验。MVDiffusion++重建的网格在大多数设置下都超过了NeuS,考虑到NeuS使用真实相机姿态,这是一个值得注意的成就。
这次比较突出了新方法的实用性,使用户能够仅从几张物体快照中获得高质量的3D模型。
总结
本文提出了一种无需姿态的技术,用于使用任意数量的图像重建对象。这种方法的核心是一个复杂的多分支、多视图扩散模型。
该模型可以处理任意数量的条件图像,从固定视角生成密集、一致的视图。这一能力显著提高了现有重建算法的性能,使它们能够生成高质量的3D模型。结果表明,MVDiffusion++为单视图和稀疏视图对象重建设置了新的性能标准。
微信扫码关注该文公众号作者