InstantMesh模型构建指南
一、介绍
InstantMesh 是一个由腾讯 ARC 实验室推出的创新项目,该项目旨在通过单张图像快速生成高质量的三维网格模型。
1. 项目背景与意义
随着 3D 内容在游戏、动画、虚拟现实等领域的广泛应用,传统的 3D 模型制作流程繁琐且耗时,需要专业人员投入大量时间和精力。InstantMesh 项目的出现,极大地简化了 3D 内容创作流程,提高了工作效率,降低了技术门槛,使得更多的人能够参与到 3D 内容的创作中来。
2. 核心技术
InstantMesh 采用了前馈框架,结合了多视图扩散模型和基于大规模重建模型(LRM)的稀疏视图重建技术。具体来说,它首先利用一个预训练的多视角扩散模型,从单张输入图像中生成多张 3D 一致的视角图像。然后,使用一个基于 LRM 架构的稀疏视角重建模型,从多视角图像中直接生成 3D 网格。此外,InstantMesh 还引入了可微分等值面提取模块 FlexiCubes,直接从 3D 隐式场中提取网格表面,并应用深度和法线等几何信息进行监督,进一步提升了网格模型的精度和光滑度。
3. 项目特点
快速生成 :InstantMesh 能够在极短的时间内(约 10 秒)完成从图像到 3D 网格的转换,这在 3D 建模领域是一个巨大的时间节省。
高质量输出 :尽管生成速度快,但 InstantMesh 生成的 3D 模型质量高,满足专业应用的需求。
易于使用 :InstantMesh 提供了命令行工具,并支持多种功能,如视频保存、前景分割、导出带有顶点颜色的.obj 网格或带有纹理映射的模型等。此外,它还提供了在线 Demo 和 Jupyter Notebook,方便用户无需复杂安装即可立即尝试。
广泛应用 :InstantMesh 适用于游戏开发、动画制作、建筑可视化、AR/VR 内容创作、教育和研究等多个领域。
4. 项目评估与性能
InstantMesh 在 Google Scanned Objects (GSO) 和 OmniObject3D (Omni3D) 两个公开数据集上进行了评估,结果显示,在 2D 视觉质量和 3D 几何质量方面均显著优于其他 SOTA 方法。具体来说,在 2D 新视角合成任务中,InstantMesh 在 SSIM 和 LPIPS 指标上显著优于其他方法;在 3D 几何质量评估中,InstantMesh 在 Chamfer Distance (CD)和 F-Score (FS)指标上也显著优于其他方法。
5. 项目影响与展望
InstantMesh 的出现,为 3D 建模和可视化领域带来了新的变革。它不仅提高了 3D 内容创作的效率和质量,还降低了技术门槛,使得更多的人能够参与到 3D 内容的创作中来。未来,随着技术的不断发展和完善,InstantMesh 有望在更多领域发挥重要作用,推动 3D 内容创作的快速发展。
6. 项目资源
- GitHub 地址 :https://github.com/TencentARC/InstantMesh
- 论文地址 :https://arxiv.org/abs/2404.07191
二、容器构建说明
由于模型较大建议使用两张RTX3090 +24G显卡(该项目支持在两个 GPU 上运行 gradio demo 以节省内存),或者使用单张高于RTX3090+24G性能的显卡。
1. 安装 miniconda
进入 Anaconda 官网:
Miniconda — Anaconda 文档
找到快速命令行安装,选择 Linux 系统,复制代码进入终端进行安装。
等待安装完成。
2. 安装并更新基础命令,让后续使用更快捷: unzip、lsof、git、git-lfs
apt-get update
apt-get install -y unzip
apt-get install -y lsof
apt-get install -y git
apt-get install -y git-lfs
3. 克隆项目仓库,并打开文件
git clone https://github.com/TencentARC/InstantMesh.git
cd InstantMesh
4. 创建 python 为 3.10 版本的虚拟环境,名称为instantmesh
conda create --name instantmesh python=3.10
5. 激活虚拟环境instantmesh
conda activate instantmesh
6. 通过 pip 安装所需的 torch 环境(国内镜像源快一些,以下使用了清华源)
pip install -U pip
conda install cuda -c nvidia/label/cuda-12.1.0
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121 -i https://pypi.tuna.tsinghua.edu.cn/simple
7. 安装项目依赖文件及相应包
为了安装速度更快可以将 pip 进行永久换源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt
conda install Ninja
pip install xformers==0.0.22.post7
pip install triton
该项目最后运行时会出现下载不了模型的问题,是因为库太老了,提前升级一下库即可
pip install -U huggingface_hub
8. 更改代码,删减端口部分,否则该项目gradio界面显示不出
找到/InstantMesh/app.py最后几行代码,根据下图所示进行删减
删减为
9. 指定端口,运行 py 文件(运行项目,首次运行会自动下载模型参数,需要保证网络通畅,以下使用了国内镜像下载模型速度快些)
export HF_ENDPOINT=https://hf-mirror.com
export GRADIO_SERVER_NAME=0.0.0.0
export GRADIO_SERVER_PORT=8080
python app.py
耐心等待,若网络不畅通出现下载中断的情况,就重新运行继续下载。
出现以下界面即为运行成功
三、网页演示
运行成功后获取访问链接,即可进入 webUI 界面(还需下载模型):
此时点击“生成”按钮,终端会自动下载模型,需要关闭代理连接至github继续下载,或者下载后上传
运行成功也就代表着webUI也相应出现运行结果