dreamgaussian
基于3D Gaussian Splatting的AI 3D生成模型,一张照片10秒生成可导入游戏引擎的3D网格(ICLR 2024 Oral)
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于3D Gaussian Splatting的AI 3D生成模型,一张照片10秒生成可导入游戏引擎的3D网格(ICLR 2024 Oral)
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2023年,一位独立游戏开发者想为自己的像素风平台跳跃游戏制作角色模型。按照传统流程,他需要花300元在Fiverr上约单、等待3-5天、反复沟通修改——周期长达一周。而现在,他只需要上传一张随手拍的人物照片,10分钟后就能拿到一个可直接导入Unity/Blender的3D网格模型,精度足以在移动端流畅渲染。这背后的技术,正是DreamGaussian。
DreamGaussian的全称是"Generative Gaussian Splatting for Efficient 3D Content Creation"(基于生成式高斯泼溅的高效3D内容创建),由一批来自多所高校和研究机构的研究者开发,2023年9月发布在arXiv(论文已被ICLR 2024接收为Oral论文,即口头报告演讲),GitHub星标数迅速突破4000,成为3D生成领域最具影响力的开源项目之一。
项目的核心动机在于解决3D内容创作的高成本问题。传统3D建模依赖专业人工,周期长、门槛高;而此前基于NeRF(神经辐射场)的3D生成方法虽然效果出色,但推理速度极慢——生成一张512×512分辨率的3D视图需要数十秒到数分钟不等。DreamGaussian另辟蹊径,引入了**3D Gaussian Splatting(3DGS)**这一新型显式场景表示方法,将3D内容表示为一团高斯分布的"点云",而非隐式的神经网络,从而实现了数量级的速度提升——完整生成一个3D模型只需约2.5分钟(Stage 1: 10秒生成粗糙网格 + Stage 2: 2分钟精细化)。
如果把一个3D物体比作一件商品,那么Gaussian Splatting的思路就像把商品拆解成无数个小型彩色灯泡(高斯分布),每个灯泡有自己的位置、颜色、透明度等属性。当这些灯泡同时发光时,从不同角度看,就能看到完整的三维物体形象。
DreamGaussian的pipeline分为两个阶段:Stage 1 利用图像条件扩散模型(如Stable Diffusion Zero-123XL或MVDream)生成多视角图像,再通过3DGS将2D图像"反投影"为3D高斯点云,快速收敛到一个粗糙但完整的3D结构。Stage 2 则对这个粗糙模型进行UV贴图优化和网格提取(通过DMTet技术),输出为.obj/.glb等通用3D格式,可以直接导入游戏引擎或3D软件中使用。
项目支持三种主要生成模式:Image-to-3D(单图生成,照片级真实感)、Text-to-3D(文字描述生成,通过MVDream多视角扩散模型)、以及ImageDream增强模式(支持更精细的语义理解和结构保持)。
上手方式有三种:本地Python脚本运行(需要配置CUDA 11.7+、一块16GB以上显存NVIDIA显卡,以及手动安装diff-gaussian-rasterization等子模块)、HuggingFace Gradio在线Demo(免费但速度较慢),以及Google Colab云端运行脚本(有免费GPU额度)。
具体操作时,用户准备一张PNG/JPG格式的图像(建议纯色背景、正面清晰的物体),如果是真人照片需先用rembg背景抠图,然后通过gradio_app.py启动本地Web界面,或直接修改configs/image.yaml配置后运行main.py。Stage 1会生成一个低精度GLB模型(快速预览),Stage 2生成最终的高质量.obj/glb格式网格。
从代码结构看,项目以Python为核心,深度依赖PyTorch作为深度学习框架,inference层使用HuggingFace diffusers和accelerate进行扩散模型推理,3D渲染部分自研了diff-gaussian-rasterization(修改版高斯泼溅,支持depth和alpha通道渲染),几何处理使用trimesh/PyMCubes/pymeshlab,网格导出则依赖xatlas进行UV展开。
在多视角生成方面,项目集成了多个业界领先的图像生成模型:Zero-123(原版)、Zero123-Plus(增强版,支持更大视角跨度)、MVDream(字节跳动出品,多视角一致性更好)、ImageDream(更精细的语义结构)。通过不同的configs/*.yaml文件,用户可以自由切换底层生成模型。
Web界面由gradio实现,提供图像上传、预处理选项(自动背景抠图)、视角参数调节等功能,代码约200行,简单直接。
尽管DreamGaussian将生成速度提升了10倍以上,但在实际使用中仍存在明显局限:
显存要求高:Stage 2的UV优化阶段对GPU显存的需求较高,6GB显存可能不够,建议使用12GB以上的显卡(如RTX 3090/RTX 4090)。CPU模式下虽然可以运行,但速度极慢且容易OOM。
背景干扰严重:如果输入图像背景复杂或主体不够突出,生成的3D模型容易出现畸变、缺失部件或多余的"漂浮物"。建议使用纯白或纯色背景的图像,或勾选"自动抠图"预处理选项。
光照与材质信息丢失:作为2D图像反推3D的方法,DreamGaussian只能恢复粗略的颜色信息,高光、反射、纹理细节等材质属性难以精确重建,输出模型更适合需要快速预览或AR/VR场景,而非高质量影视制作。
版权与伦理风险:对真人照片进行3D重建可能涉及隐私问题,对艺术作品进行3D化也存在版权争议。
DreamGaussian代表了3D AIGC从"概念验证"走向"实用工具"的关键一步。在它之前,NeRF时代的3D生成论文虽多,但几乎无法在消费级GPU上快速运行;而3DGS技术的引入,让"分钟级3D生成"成为可能。这一突破直接催生了后续的GSGEN、GaussianEditor、 LangSplat等一系列衍生项目,并深刻影响了游戏、电商、AR/VR、数字孪生等行业的3D内容生产流程。
从GitHub的数据看,该项目fork数接近400(396),Open Issues 135个,说明社区活跃度较高,也有不少开发者在尝试对它进行定制化改造(如集成到Web平台、支持更多输入格式等)。
对于AI爱好者而言,DreamGaussian展示了"用AI做3D"不再是一个遥远的实验室概念,而是一个在自己电脑上就能跑起来的实用工具。对于开发者而言,它的模块化设计(guidance/目录灵活替换生成模型、configs/目录切换不同pipeline)为构建自己的3D生成应用提供了极好的参考模板。