首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Gamba:仅需0.05秒让一张图片生成高质量3D模型!(新加坡国立大学&天工AI开源)

Gamba:仅需0.05秒让一张图片生成高质量3D模型!(新加坡国立大学&天工AI开源)

作者头像
AI进修生
发布2024-12-02 18:53:09
发布2024-12-02 18:53:09
1.7K0
举报
文章被收录于专栏:AI进修生AI进修生

Aitrainee | 公众号:AI进修生

🌟第一个具有 3DGS 的端到端可训练单视图重建模型、在 0.05秒内从单个图像输入重建 3D 对象。将 Gaussian Splatting 与 Mamba 结合,实现单视图 3D 重建

Github:https://github.com/SkyworkAI/Gamba

Hi,这里是Aitrainee,欢迎阅读本期新文章。

单张图片重建为3D模型的话,在许多工业领域应该有很多实际的作用,Gamba这种方法可以从单个的快照中生成AR或者VR的内容,还能通过单眼感知帮助开发自动驾驶车辆路径规划。

单视图3D重建神器Gamba,提速1000倍!让你一张图片生成高质量3D模型。

我们之前的一些单视图3d重建方法,比如评分蒸馏采样(Score Distillation Sampling,SDS)需要耗时的逐实例优化过程才能生成单个对象,并且会因预训练的2D扩散模型中的偏差而产生多面问题等伪影。此外,之前的方法主要采用神经辐射场(NeRF),其高维多层感知和低效的体积渲染极大地限制了在计算预算有限的情况下的实际应用。

▲与大型重建模型的定性比较。

Gamba:实现端到端单视图重建流水线

昆仑万维颜水成团队提出了一种端到端单视图重建流水线,它结合了3D高斯散布和Mamba,实现了快速重建。Gamba方法通过一种迭代的重建策略来提高重建的速度和质量。

▲ 图(a):Gamba一种端到端、前馈单视图重建管道,它将 3D 高斯 Splatting 与 Mamba 结合起来以实现快速重建。(b):3DGS 迭代重建与 Gamba 顺序预测模式之间的关系。

图示展示了Gamba方法的工作原理和与现有方法的关系:

  • Gamba方法:展示了从单张图像输入到3D模型输出的整个流程,使用3D高斯散布和Mamba算法。
  • 3DGS重建与生成策略:展示了3D高斯散布迭代重建和Gamba顺序预测模式的关系,强调了Gamba方法在重建过程中逐步优化细节的能力。

细节解析

  1. 1. 图像输入与Gamba方法
    • • 输入是一张图像。
    • • Gamba方法结合3D高斯散布和Mamba算法实现快速重建。
  2. 2. 3D高斯散布重建策略
    • • 通过克隆和分裂操作实现3D高斯散布的优化。
    • • 在迭代过程中不断优化3D模型的细节。
  3. 3. 顺序生成策略
    • • 每一步生成一个新的3D标记,通过迭代块逐步优化生成的3D模型。
    • • 将之前生成的标记作为输入,生成新的3D标记,实现细节的逐步完善。

Gamba方法相对于现有方法的优势,通过快速、端到端的重建过程提高了效率,并且能够生成高质量的3D模型。

Gamba模型解决速度慢和内存消耗大问题

▲ 图2:Gamba整体架构。Gamba 将单视图图像及其相机姿态作为输入来预测给定主体的 3D 高斯泼溅。训练监督仅通过重建损失应用于渲染的多视图图像。

Gamba是一种旨在实现高效单视图3D重建的模型,解决了现有方法在单张图片重建3D资产时速度慢和内存消耗大的问题。该模型强调了两个主要创新点:

  1. 1. 高效的骨干设计:引入了基于Mamba的GambaFormer网络,将3D Gaussian Splatting(3DGS)重建建模为线性可扩展的序列预测,从而能够处理大量高斯点。
  2. 2. 稳健的高斯约束:通过从多视图掩码中导出径向掩码约束,消除了训练中对3D点云热身监督的需求。

该模型在Objaverse上进行了训练,并在GSO数据集上对现有的优化方法和前馈3D重建方法进行了评估,是唯一使用3DGS进行端到端训练的单视图重建模型。

图表解释

这张图展示了Gamba模型的整体架构和Gamba块的细节。

  1. 1. 总体架构 (a)
    • 图像分词器 (Image Tokenizer):首先将输入图像分割成令牌。
    • Gamba Blocks:这些块逐层处理令牌,模型以线性顺序扩展。
    • 3DGS解码器 (3DGS Decoder):使用生成的3DGS参数进行解码。
    • 3D GS渲染器 (3D GS Render):根据相机姿态生成新的视图,进行监督学习。
  2. 2. Gamba块 (b)
    • Drop:删除部分相机姿态和条件图像令牌。
    • Mamba块 (Mamba Block):处理令牌并进行前馈计算。
    • Prepend:在处理前添加先前层的3DGS令牌。
    • Linear:将令牌线性化,以便在下一个Gamba块中处理。

通俗解释

Gamba模型的设计类似于让多个“小脑袋”(即Gamba Blocks)逐步处理输入图像的不同信息,并最终生成高效的3D重建结果。通过引入Mamba-based GambaFormer网络和稳健的高斯约束,模型不仅提高了重建速度,还减少了内存消耗。

对比说明

  • 传统方法:基于SDS的神经3D表示方法虽然效果不错,但需要长时间的优化和大量内存。
  • Gamba模型:通过高效的骨干设计和稳健的高斯约束,Gamba在保证重建质量的同时,大幅提升了速度(在NVIDIA A100 GPU上仅需0.05秒),相较于传统优化方法快了约1000倍。

Gamba模型的这些创新使其在单视图3D重建任务中表现突出,不仅生成效果优异,还具有显著的速度优势,非常适合实际应用。

Gamba生成逼真纹理

▲ 与基于 Zero-1-to-3 [27] 的单视图 3D 重建方法的比较,包括仅前馈方法 One-2-3-45 [26] 和基于优化的 DreamGaussian [48]。

这张图展示了不同单视图3D重建方法在重建各种物体时的效果对比:

  • 输入(Input):左侧第一列显示了用于重建的单视图图片,包含蘑菇、摩托车、心脏、皮卡丘和跑车。
  • One-2-3-4-5:第二列展示了One-2-3-4-5方法的重建结果,可以看到,这种方法生成的模型存在明显的几何失真和纹理模糊问题。
  • DreamGaussian:第三列展示了DreamGaussian方法的重建结果,虽然这种方法在某些方面表现有所提升,但仍存在多视图不一致和模糊纹理的问题。
  • Gamba:第四列展示了Gamba方法的重建结果。与其他方法相比,Gamba在几何形状和纹理细节上表现得更为出色,生成的3D模型更加逼真和稳定,几乎没有失真和模糊现象。

整体来看,Gamba显著优于其他单视图3D重建方法,在保持合理几何形状和生成逼真纹理方面具有明显优势。

Gamba 0.05秒推理

使用的是单个NVIDIA A100 GPU(80GB),Gamba方法在速度上显著优于基于优化的方法(如Zero-1-to-3),其推理时间仅为0.05秒,比其他快速前向传导模型也有显著优势,这归功于其高效的主干设计。

▲Mamba 与 Transformer 的内存消耗随标记长度变化的比较。

下面提供官方的文档介绍、相关资源、部署教程等,进一步支撑你的行动,以提升本文的帮助力。

Gamba

这是 Gamba: Marry Gaussian Splatting with Mamba for single view 3D reconstruction 的官方实现。

项目主页 | Arxiv | 预训练权重

为什么选择Gamba

🔥 从单个图像输入重建3D对象,只需50毫秒。

🔥 首个可端到端训练的单视图重建模型,采用3DGS技术。

https://github.com/SkyworkAI/Gamba/assets/44775545/21bdc4e7-e070-446a-8fb7-401c9ee69921

安装

代码语言:javascript
复制
# 需要安装xformers!请参阅https://github.com/facebookresearch/xformers了解详细信息。
# 例如,我们使用torch 2.1.0 + cuda 11.8
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0--index-url https://download.pytorch.org/whl/cu118
pip install causal-conv1d==1.2.0 mamba-ssm
git clone--recursive git@github.com:SkyworkAI/Gamba.git
# 修改过的高斯点撒算法(+ 深度,alpha渲染)
pip install ./submodules/diff-gaussian-rasterization
# 辐射多边形掩码,仅在训练中使用
pip install ./submodules/rad-polygon-mask

# 用于网格提取
pip install git+https://github.com/NVlabs/nvdiffrast

# 其他依赖项
pip install -r requirements.txt

预训练权重

我们的预训练权重可以从 huggingface 下载。一个更大的模型即将推出!

例如,要下载用于推理的bf16模型:

代码语言:javascript
复制
mkdir checkpoint && cd checkpoint
wget https://huggingface.co/florinshen/Gamba/resolve/main/gamba_ep399.pth
cd ..

推理

推理大约需要1.5GB的GPU内存,耗时50毫秒。

代码语言:javascript
复制
bash scripts/test.sh

更多选项,请查看选项。

训练

我们将很快更新训练教程。

这项工作基于许多优秀的研究和开源项目

  • • LGM
  • • OpenLRM
  • • gaussian-splatting 和 diff-gaussian-rasterization
  • • nvdiffrast
  • • dearpygui
  • • tyro

另一个统一3D生成项目 MVGamba。代码和预训练权重也将很快发布。

论文:https://arxiv.org/abs/2403.18795

网站:https://florinshen.github.io/gamba-project/

Github:https://github.com/SkyworkAI/Gamba

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI进修生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Gamba:实现端到端单视图重建流水线
  • 细节解析
  • Gamba模型解决速度慢和内存消耗大问题
  • 图表解释
  • 通俗解释
  • 对比说明
    • Gamba生成逼真纹理
    • Gamba 0.05秒推理
  • Gamba
    • 项目主页 | Arxiv | 预训练权重
    • 为什么选择Gamba
    • 安装
    • 预训练权重
    • 推理
    • 训练
    • 另一个统一3D生成项目 MVGamba。代码和预训练权重也将很快发布。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档