MIDI-3D
一张照片同步生成多个3D物体并保持正确空间关系的多实例扩散模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一张照片同步生成多个3D物体并保持正确空间关系的多实例扩散模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
试想这样的场景:你用手机拍了一张客厅照片——沙发、茶几、台灯各归其位——然后对AI说:"把这个房间变成3D模型,我要放进VR里。"这听起来像是科幻,但实际上,MIDI-3D 已经把这件事变成了现实,而且发表在计算机视觉顶级会议CVPR 2025上。
传统的单图转3D方法要么只能生成一个孤立物体(比如把杯子变成3D模型),要么依赖笨重的多阶段流水线:先生成A物体,再生成B物体,最后拼在一起——不仅慢,还容易出现物体之间"打架"(空间关系混乱)的问题。MIDI-3D 的核心创新,就是让多个3D物体在同一扩散过程中一次性生成,彼此之间自动保持正确的空间关系。
MIDI(Multi-Instance Diffusion)由 VAST-AI 实验室提出,论文发表于 CVPR 2025(计算机视觉与模式识别会议),作者团队来自国内多所高校和研究机构。项目的命名借鉴了音乐术语"MIDI"(乐器数字接口)——在音乐中,MIDI让多个乐器同步演奏;在3D生成中,MIDI让多个物体实例同步"生成"。
项目开源了三大核心资源:模型权重(HuggingFace: VAST-AI/MIDI-3D)、处理后的 3D-Front 数据集(HuggingFace: huanngzh/3D-Front)以及完整的推理和评估代码。作者还提供了 Gradio 在线 Demo,无需本地配置即可体验。
MIDI 的技术路线建立在两个关键洞察之上:
第一,扩展预训练的图像到单物体3D生成模型。 近年来,image-to-3D 的研究涌现了大量优秀工作(如 Zero123、One-2-3-45等),这些模型已经学会了从单张图片"猜出"物体的3D结构。MIDI 没有从零训练一个多物体生成模型,而是巧妙地将已有的单物体生成器扩展为多实例版本。输入一张带分割掩码的图像(每个掩码对应一个物体实例),模型为每个实例同时生成3D表示。
第二,多实例注意力机制实现空间一致性。 传统扩散模型逐个生成物体时,不同物体之间没有信息交互,容易出现"沙发悬空"、"茶几穿过墙壁"等物理上不可能的情况。MIDI 在 U-Net 中引入了多实例交叉注意力(Multi-Instance Cross Attention)模块,让不同实例的生成过程相互感知,从而确保最终场景的空间合理性——所有物体都"知道"自己在房间里的位置。
技术栈方面,项目基于 PyTorch 2+ 构建,核心扩散框架使用 Hugging Face Diffusers,预训练模型来自 Stable Diffusion 系列(图像编码器),同时引入了 Transformer 作为注意力机制的核心组件。训练数据来自 3D-Front 数据集(阿里与清华大学合作发布的室内场景数据集),经过 MIDI 团队的预处理后用于训练。
MIDI-3D 为普通用户提供了最便捷的体验方式:HuggingFace Spaces 在线 Demo。用户上传一张包含多个物体的图像(或者使用项目提供的卡通风格示例图),在 Demo 界面为每个物体打上文字标签(如"sofa""lamp""table"),模型会自动完成分割和3D生成,最终输出一个 .glb 格式的3D场景文件,可直接用 MeshLab、Blender 或 Three.js 查看。
本地运行稍微复杂一些,需要三步:首先,通过 Grounded SAM 模型对输入图像进行实例分割(这一步生成每个物体的掩码边界);然后,用 MIDI 的推理脚本传入 RGB 图像和分割掩码,运行推理;最后,得到 .glb 文件。官方推荐的 VRAM 为 12GB 以上,而带纹理的3D场景生成(2025年5月新增功能)则需要约 30GB VRAM。
值得注意的是,推理脚本的使用体验依赖于 Grounded SAM 的分割质量——如果物体太小或重叠严重,分割效果会直接影响最终的3D生成质量。作者在 README 中也明确建议:"使用在线 Demo 获取适中粒度的分割掩码效果更佳。"
从仓库结构来看,MIDI-3D 的代码组织清晰:
| 目录/文件 | 作用 |
|---|---|
midi/ | 核心算法实现,包含扩散模型、系统入口和评估指标 |
configs/ | YAML 配置文件,定义了模型训练和推理的超参数 |
scripts/ | 命令行推理脚本(Grounded SAM 分割、MIDI 推理、带纹理场景生成) |
gradio_demo.py | Gradio 网页交互界面,封装了完整的推理流程 |
launch.py | 批量训练/推理入口,支持多GPU并行 |
核心模型代码位于 midi/ 目录,采用了 Lightning 的训练框架(pytorch-lightning)来管理分布式训练和日志记录。midi/utils/metrics.py 实现了 FID、CLIP-Score 等生成质量的评估指标。
MIDI 并非完美。首先,它仅支持室内场景:所有训练数据来自 3D-Front 室内家具数据集,对室外场景(如树木、汽车、人物)泛化能力未知。其次,视角限制明显——模型对非典型视角(如从天花板俯视、从侧面仰视)的输入图像生成质量可能下降。第三,纹理生成资源消耗大:带完整纹理的3D场景生成需要约 30GB VRAM,几乎只有高端显卡(如 A100、RTX 4090)才能运行。
此外,从论文发表(2025年3月)到仓库更新(2025年6月)的时间间隔来看,项目的后续维护频率相对有限,Issues 页面有18个开放问题尚未处理。
MIDI-3D 的出现代表了 3D 生成领域的一个关键趋势:从"生成一个物体"到"生成一个世界"的范式升级。2024-2025年,Zero-1-to-3、One-2-3-45、TripoSG、MagicBooth 等工作先后攻克了单物体3D生成的难题,而 MIDI 将这一能力延伸到了多物体组合场景。
这一能力对于游戏开发(快速生成室内场景资产)、虚拟现实(从照片重建真实空间)、室内设计(AI辅助场景布局)等应用场景有直接价值。随着 SAM(Segment Anything)等分割模型的成熟,"图片→分割掩码→3D场景"的 pipeline 正在变得越来越自动化,MIDI-3D 正是这一趋势中的代表性工作之一。
技术关键词: 多实例扩散模型 · 图像到3D场景生成 · CVPR 2025 · Diffusers · 3D-Front · Grounded SAM · 室内场景重建
许可证: Apache-2.0 | 主语言: Python | Stars: 926 | Forks: 70