One-2-3-45: Any Single Image to 3D Mesh in 45 Seconds without Per-Shape Optimization

基本信息

项目 内容
论文标题 One-2-3-45: Any Single Image to 3D Mesh in 45 Seconds without Per-Shape Optimization
作者 Minghua Liu (UC San Diego), Chao Xu (UCLA), Haian Jin (Cornell/ZJU), Linghao Chen (UC San Diego/ZJU), Mukund Varma T (IIT Madras), Zexiang Xu (Adobe), Hao Su (UC San Diego)
作者单位 UC San Diego(第一单位)
时间 2023(根据引用和内容推断)
发表会议/期刊 暂未明确标注,应属预印本或待发表论文

方法概览

特点 文章性质
输入 单张RGB图像
输出 带纹理的三角网格 (Textured Triangle Mesh)
所属领域 单图像三维重建(单视角→三维网格)

摘要精简

本文提出了一种从单张图像快速生成完整360度带纹理三维网格的方法,名为 One-2-3-45。该方法无需逐场景优化,通过前向传播即可在约45秒内完成重建。流程分为三步:

  1. 使用视图条件扩散模型 Zero123 从单图生成多视角图像;
  2. 通过一个高程估计模块推算输入图像的相机姿态;
  3. 将多视角图像与姿态输入一个基于SDF的可泛化神经表面重建模块,输出带纹理的网格。
    该方法在几何质量、三维一致性和对输入图像的贴合度上均优于现有方法,并可扩展至文本→3D任务。

引言与研究动机

单图像三维重建是计算机视觉中的经典难题,需从单一视角推断物体完整三维结构。传统方法通常依赖类别特定先验或在3D数据集上训练的生成模型,泛化能力有限且受3D数据规模制约。

近年来,2D扩散模型(如Stable Diffusion)在互联网规模图像上训练,学习了丰富的视觉概念和三维世界先验。因此,许多研究尝试利用这些2D先验辅助3D生成任务,典型做法是基于可微分渲染进行逐场景优化(如DreamFusion、Magic3D)。然而这类方法存在以下问题:

  • 耗时长:优化需数万次迭代,通常需要数十分钟;
  • 内存密集:高分辨率渲染时显存需求大;
  • 3D不一致:容易产生“双面”(Janus)问题;
  • 几何质量差:从密度场提取高质量网格困难。

为此,本文提出一种免优化的前向传播方法,结合2D扩散模型与基于成本体积的3D重建技术,实现快速、高质量、一致的单图像→网格生成。


创新点

1. 免优化的前向传播流水线

摒弃逐场景优化范式,首次将视图条件2D扩散模型与可泛化神经表面重建结合,实现单图→网格的端到端前向生成。

2. 两阶段源视图选择策略

训练时采用两阶段视图选择:先采样若干全局视角,再为每个视角用Zero123生成4张临近视角预测,确保局部对应关系与多视角一致性。

3. 地面真值与预测混合训练

训练时部分使用真实渲染图(提供深度监督),部分使用Zero123预测图,使网络能适应预测中的不一致性,并提升对真实数据的泛化能力。

4. 高程估计模块

设计一个模块通过四张临近视角预测输入图像在Zero123规范坐标系中的高程角,解决了输入视图姿态未知的问题。

5. 支持文本→3D扩展

方法可与现有文本→图像扩散模型(如DALL·E 2)结合,实现文本→图像→3D的流程,在保持快速的同时生成与文本对齐的网格。


网络架构

整体流水线包含三个核心模块:

  1. 多视图合成模块
    使用Zero123模型,输入单张图像和相对相机变换 (Δheta,Δϕ,Δr)(\Delta heta, \Delta\phi, \Delta r),输出目标视角的图像。

  2. 姿态估计模块
    输入单张图像,用Zero123生成四张临近视图,通过枚举高程角并计算重投影误差,估计输入图像的高程角 $ heta$。

  3. 3D重建模块
    基于SparseNeuS(一种基于SDF的可泛化神经表面重建方法),输入多视角图像及其相机姿态,通过以下步骤重建网格:

    • 提取2D特征图
    • 构建3D成本体积(基于多视角特征方差)
    • 用稀疏3D CNN编码几何体积
    • 通过两个MLP分别预测SDF和颜色
    • 使用SDF渲染技术输出RGB和深度
    • 通过Marching Cubes提取网格并查询顶点颜色

特征提取方式

重建模块首先使用一个2D特征网络从输入的多视角图像中提取特征图。接着,对每个3D体素投影到各视角特征平面上,取多视角特征的方差构建3D成本体积。该成本体积经过稀疏3D CNN处理,得到几何编码体积,用于后续SDF和颜色的解码。


生成的三维模型细节

生成的模型为带纹理的三角网格(Textured Triangle Mesh),支持完整360度视图。网格质量较高,几何细节清晰,纹理贴合输入图像,且在多数情况下保持三维一致性,避免“双面”问题。


三维模型生成步骤

  1. 输入单张图像
  2. 用Zero123生成8个全局视角的预测图像(均匀采样球面)
  3. 为每个全局视角生成4张临近视角预测(共32张)
  4. 通过高程估计模块计算输入图像的姿态
  5. 将32张预测图像及其计算出的相机姿态输入3D重建模块
  6. 模块前向传播输出SDF场和颜色场
  7. 用Marching Cubes提取网格,并为顶点着色
  8. 输出带纹理的360度网格

相关工作和对比

基于的工作

  • Zero123:视图条件2D扩散模型,用于多视角合成
  • SparseNeuS:基于SDF的可泛化神经表面重建方法
  • DreamFusion / Magic3D:基于优化的文本/图像→3D方法
  • Shap-E / Point-E:3D原生扩散模型(OpenAI)

对比的方法

  • Point-E
  • Shap-E
  • Zero123 + Stable Dreamfusion
  • 3DFuse
  • RealFusion

评价指标

  • F-Score(阈值0.05):衡量重建几何与真实网格的匹配程度
  • CLIP相似度:衡量生成图像与输入图像的语义相似性
  • 运行时间:在A100 GPU上的总耗时

损失函数

训练重建模块时使用以下损失:

L=Lrgb+λ0Ldepth+λ1Leikonal+λ2Lsparsity\mathcal{L} = \mathcal{L}_{rgb} + \lambda_0 \mathcal{L}_{depth} + \lambda_1 \mathcal{L}_{eikonal} + \lambda_2 \mathcal{L}_{sparsity}

其中:

  • Lrgb\mathcal{L}_{rgb}:渲染颜色与真实颜色的L1损失
  • Ldepth\mathcal{L}_{depth}:渲染深度与真实深度的L1损失
  • Leikonal\mathcal{L}_{eikonal}:Eikonal项,约束SDF梯度为单位长度
  • Lsparsity\mathcal{L}_{sparsity}:稀疏性项,鼓励几何紧凑

权重设置为:λ0=1,λ1=0.1,λ2=0.02\lambda_0=1, \lambda_1=0.1, \lambda_2=0.02


数据集使用

训练数据集

  • Objaverse-LVIS:包含46k个3D模型,涵盖1156个类别
  • 输入:单张图像 + Zero123预测的多视角图像
  • 输出:带纹理的网格

测试数据集

  • Objaverse:合成数据
  • Google Scanned Objects (GSO):真实扫描物体
  • 输入:单张图像
  • 输出:预测的网格

消融实验内容

1. 训练策略消融

测试了以下变体:

  • 不使用两阶段源视图选择(直接使用32张均匀视角预测)
  • 仅使用8张源视图(无临近视角)
  • 训练时不使用深度损失
  • 训练时全部使用真实渲染(无Zero123预测)
  • 训练时全部使用Zero123预测(无真实渲染)

结果:两阶段选择 + 混合训练 + 深度监督效果最佳。

2. 高程估计消融

展示了错误高程角(如±30°偏移)会导致重建形状扭曲;使用估计高程角可匹配真实高程结果。

3. 源视图数量影响

测试不同视图数量(如16、32、64),方法对视图数量不敏感,只要对应训练即可。

4. 360°重建 vs 多视图融合

比较了直接360°重建与分别重建各视角后融合的策略,后者因Zero123预测不一致而效果较差。


其他说明

  • 方法支持与文本→图像模型(如DALL·E 2)结合,实现文本→3D生成
  • 在A100上总耗时约45秒(其中重建模块约5秒,Zero123预测约32秒)
  • 代码和项目页面公开在:http://one-2-3-45.com