“一般而言,使用 stable-diffusion 生成一张图片在 PC 上只需要几秒钟,哪怕微调 LoRA 也很快;然而,我们生成一个 3D 物体需要数个小时,尤其是分辨率越高越慢。这主要是因为我们本质上还是借助于随机梯度下降来优化 3D 表示(NeRF 或 Mesh)的参数,这样的优化过程需要很多步的迭代,并且对 GPU 的显存也有一定要求。我们最终展示的效果是 512 分辨率的结果,这些结果的优化确实非常耗时,所以目前个人使用者还是很难在 PC 上直接使用我们的算法。”
高昂的推断成本不仅使得研究者的实验迭代变慢,也阻碍了 3D AIGC 技术对于很多实时应用的商业落地和推广。
然而就在最近,来自 UCSD 等机构的研究者发布了一项最新工作,One-2-3-45,它摆脱了逐物体优化的生成范式,能够在 45 秒内从任意单张图片 / 文本生成 3D 纹理网格,且在测试时无需针对每个物体进行优化。
Project Page: http://one-2-3-45.com
Paper: https://arxiv.org/pdf/2306.16928.pdf
Code: https://github.com/One-2-3-45/One-2-3-45
Demo:https://huggingface.co/spaces/One-2-3-45/One-2-3-45
通过与现有的文生图模型(如 DALL-E2)结合,One-2-3-45 也支持从任意文本生成 3D 模型。
论文一发布,就被推特大佬 AK 宣传转发,并受到网友的广泛关注。
网友 Xin Kong 评论到:“这是最好的时代,也是最坏的时代。这可能是 3D 扩散生成中的 Instant NGP 时刻。30 分钟 ->45 秒,无分数蒸馏,2D 视图到 3D 是必经之路!”
方法
由于 3D 数据的稀缺性,学术界最近的绝大多数 3D AI 生成工作都通过利用 2D 扩散生成模型来指导 3D 表示(如 NeRF)的优化,从而实现 3D 内容生成。One-2-3-45 没有遵循这个范式,而是先利用 2D 扩散模型生成多视角图像,然后希望利用这些多视角图像来重建 3D 模型。
具体而言,One-2-3-45 利用了一个基于视角控制的 2D 扩散生成模型,Zero123。该模型通过微调 Stable Diffusion,实现了输入单张图片和一个相机的相对位姿变换,便能够预测该物体在变换后的视角下的对应图像的能力。
通过借助这类 2D 扩散生成模型,我们能够从一张图片预测生成对应的多视角图像。
一个很自然的想法,便是将这些多视角图像传给经典的基于 NeRF 的重建方法来生成 3D 模型。然而研究者发现这样并不能生成高质量的 3D 模型(如下图所示)。
这其实是因为网络预测的多视角图像具有潜在的不一致性。然而对于基于 NeRF 的优化类重建方法,一些微小的不一致便已足以使得方法崩溃。
如上图所示,通过将预测的多视角图像与真实数据进行对比,研究者发现 Zero123 预测的多视角图像虽然不具备像素级别的高精确度(PSNR 不高)。但整体轮廓(mIoU)以及语义 / 感知相似性(CLIP 相似度)都很高,尤其当相机相对位姿变换较小时。这些结果说明了用网络预测的多视角图像进行三维重建的可能性。
在 One-2-3-45 中,研究者使用了基于 cost volume 的可泛化 NeRF 类的方法来实现三维重建。这类方法将多视角图像作为输入,在训练后能够直接推断 3D 内容而无需额外优化。由于这类方法通过从训练数据学习了有关多视角预测不一致性的先验知识,他们更有希望能从不一致的多视角预测中生成 3D 模型。
One-2-3-45 方法流程图
具体来说,One-2-3-45 首先通过对多视角图像抽取 2D 图像特征,并通过相机位姿来构建 3D cost volume。然后 One-2-3-45 通过 3D 卷积神经网络来从 3D cost volume 推断输入多视角图像对应的潜在 3D 几何,并最后通过 MLP 来预测物体的 SDF 和颜色,进行体积渲染。
通过结合 2D 扩散生成模型和基于 cost volume 的可泛化 NeRF,One-2-3-45 能够在一次前向传播中生成 3D 模型。摆脱了耗时的逐物体 3D 优化后,One-2-3-45 生成一个高质量 3D 纹理网格的时间从数小时降到了 45 秒!
然而在实现这个想法的过程中,研究人员却遇到了一些具体的挑战:
1. 现有的可泛化 NeRF 方法大都是将具有一致性的多视角图像作为输入(渲染自真实物体)。但如何将这类方法扩展到不完全一致的多视角预测上呢?
2. 现有的可泛化 NeRF 方法很多都专注于前景区域的重建。但在 3D 生成的问题中,我们希望得到 360 度的完整模型。
3. 由于 Zero123 采用了球坐标系来描述相对相机位姿。为了提供多视角图像的相机位姿给重建模块,我们需要得到输入图片对应的相机俯仰角(elevation)。
为了解决这些挑战,研究者提出了一系列关键的训练策略(如分阶段预测多视角图像)和一个俯仰角预测模块。详情请参考原论文。
研究者还特别指出由于重建模块主要依赖于局部的对应关系(correspondence),因此其只需少量的数据进行训练,并具有很强的可泛化性。
与现有 3D AI 生成方法的比较
研究者表示,得益于 “2D 多视角预测 + 3D 可泛化重建” 的技术路线,One-2-3-45 与现有的 3D AI 生成方法相比,除了推断时间显著降低外,还在输入的多样性、输出的几何表示、结果的 3D 一致性、与输入的相似性,以及所需的 3D 数据规模上,具有多方面的优势。
具体来说,许多基于逐物体优化的方法虽然能生成高质量 3D 内容,但目前只支持文字生成 3D(如 DreamFusion,Magic3D 和 ProlificDreamer)。而 One-2-3-45 既支持文字生成 3D 也支持图片生成 3D。下图展示了 One-2-3-45 与现有的主要图生 3D 的方法的对比。
另外一个重要的点便是现有方法的输出没有完全遵循(adherence)输入图片的指示。比如对于第一列的背包,Zero123+SD 生成的背包只有一条背带;Shap-E 生成的背包没有背带。对于第二列的单只灭火器,Shap-E 和 Point-E 都预测了两个两个连体的灭火器。对于第四列的凳子,可以看到只有 One-2-3-45 和 3DFuse 保留了输入图片的椅腿结构。但需要注意的是,3DFuse 生成的所有 3D 内容在具体风格和细节上均与输入图片有较大出入。
此外,研究者还指出基于逐物体优化的方法通常会遇到 3D 一致性的挑战。他们生成的 3D 模型通常会出现多面现象(或者 Janus 问题)。比如在上图中,RealFusion 生成了一个双面背包。相比之下,One-2-3-45 生成结果的 3D 一致性要好很多。
研究者还提到了 OpenAI 的 Point-E 和 Shap-E 在训练时用到了数百万级别的内部 3D 数据。由于 3D 数据的稀缺性,这样的训练数据规模目前对于很多研究者 / 机构来说还是比较严苛的条件。
可以看到除了之前提过的问题外,现有的文生 3D 方法对输入文本的把握能力并不是很强。比如,对于输入文本 “一棵空心的大树”,“一只有绿腿的橙色凳子”,“一顶哈瓦那风格菠萝形状的帽子” 以及 “一只木头质地的蘑菇” 等,现有方法都无法生成精确对应的 3D 内容。相比之下,One-2-3-45 所采纳的在 2D 生成对应图片再提升到 3D 似乎是一条能够对输入文本有更加精确控制的路线。
结语
One-2-3-45 提出了 “2D 多视角预测 + 3D 可泛化重建” 这样一项新颖的 3D AI 生成玩法,并在许多方面都展示出了其优越性。虽然目前 One-2-3-45 的生成质量可能还比不上部分基于逐物体优化的文生 3D 模型,但这个新玩法的探索和提高空间可能是充满潜力的。