2024图片转3D模型排行:Gamba 0.05秒开源
从单张图像生成高质量3D模型是AR/VR、自动驾驶、工业设计等领域的刚性需求。以往依赖评分蒸馏采样(SDS)的方法需逐实例优化,耗时数分钟;且受限于预训练2D扩散模型的固有偏差,容易产出多面伪影。神经辐射场(NeRF)方案则因高维MLP和低效体积渲染而计算成本高昂。能否实现快速、高质量的单视图3D重建?昆仑万维颜水成团队提出的Gamba给出了全新解决方案。
Gamba的核心在于将3D高斯泼溅(3D Gaussian Splatting)与Mamba架构融合,构建端到端的前馈重建管道。具体而言,输入单张图像后,模型直接输出3D高斯参数,由渲染器生成多视图图像作为监督信号。整个过程无需耗时优化,推理仅需0.05秒——较传统优化方法提速近1000倍。更重要的是,它是首个真正将3DGS用于端到端训练的单视图重建模型,而并非像此前方案那样仅将3DGS视为后处理手段。
架构层面,Gamba包含两大创新:一是高效骨干网络——采用基于Mamba的GambaFormer,将3DGS重建转化为线性可扩展的序列预测任务,支持海量高斯点处理且无Transformer般的内存爆炸问题;二是稳健的高斯约束——从多视图掩码推导径向掩码约束,移除训练中对3D点云热身监督的依赖,简化并稳定训练过程。
工作流程如下:输入图像经由分词器(Image Tokenizer)转为令牌,再依次通过多个Gamba Blocks。每个Gamba Block内先丢弃部分相机姿态及条件图像令牌(Drop),经Mamba块处理,然后将上一层的3DGS令牌前置拼接(Prepend),最后经线性层传递至下一Block。该设计使模型能够以线性复杂度逐步细化3D细节,效仿3DGS的迭代克隆与分裂优化策略。
实际表现如何?与One-2-3-45、DreamGaussian等方案相比,Gamba在几何形状和纹理细节上优势显著。无论是蘑菇、摩托车、心脏还是皮卡丘,其生成的模型均保持合理结构与逼真纹理,无显著模糊或失真。
速度层面,在单块NVIDIA A100 GPU(80GB)上,Gamba推理仅耗0.05秒。这归功于Mamba架构在长序列下的低内存占用——下图对比了Mamba与Transformer随令牌长度的内存消耗变化,Gamba选择Mamba正是基于其线性扩展特性。
Gamba:单视图3D重建系统
该仓库是 Gamba: Marrying Gaussian Splatting with Mamba for Single-View 3D Reconstruction 的官方实现。
Gamba的核心优势
- 从单张图像重建3D对象,推理仅需50毫秒。
- 首个端到端可训练的单视图3D重建模型,基于3DGS技术。
安装指南
# 务必安装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
预训练权重下载
预训练权重可从Hugging Face下载(更大模型即将发布)。例如,下载推理所需的bf16模型:
mkdir checkpoint && cd checkpoint
wget https://huggingface.co/florinshen/Gamba/resolve/main/gamba_ep399.pth
cd ..
快速推理
推理约需1.5GB GPU显存,耗时50毫秒:
bash scripts/test.sh
更多设置可参考选项说明。
训练指南
训练教程稍后发布。本项目借鉴了众多优秀研究和开源项目:LGM、OpenLRM、gaussian-splatting、diff-gaussian-rasterization、nvdiffrast、dearpygui、tyro等。