引言
近期,VAST团队和Stability AI团队合作发布了TripoSR,可在一秒内从单个图像生成高质量3D对象。
TripoSR可在低推理预算下运行(如CPU),对于开发者或者业务系统来说既易于访问又实用。
模型权重已正式上线ModelScope魔搭社区,可在MIT许可下允许商业化,个人和研究使用。
TripoSR是一种快速的3D对象重建模型,其灵感来自于LRM最近的工作:单图像到3D的大型重建模型。这种新的图像转3D模型希望满足娱乐、游戏、工业设计和建筑行业日益增长,并提供用于可视化详细的3D对象的输出。
使用 TripoSR 模型重建样本输入图像和相应的 3D 模型
表现
TripoSR可以用较短的时间,创建详细的3D模型。在A100上进行测试时,大约0.5秒内生成草图质量的带纹理3D网格模型,性能超越了其他开源图像到3D模型。除了速度之外,TripoSR对有无GPU的用户都完全可用。
将 TripoSR 3D 重建与 OpenLRM 的重建进行比较。
技术细节
TripoSR 3D训练数据准备结合了多种数据渲染技术,可以更接近地复制现实世界中的图像分布,从而显着提高模型的泛化能力。TripoSR 3D构造了CC-BY高质量数据集,这是Objaverse数据集的一个更高质量的子集,用于训练数据。在模型方面,TripoSR还对基础LRM模型进行了多项技术改进,包括通道数优化、掩模监督和更高效的裁剪渲染策略。
模型结构:
和LRM架构类似,TripoSR利用Transformer架构,专注于单图像3D社区重建。核心组件包括:image encoder、 image-to-triplane,以及 triplane-based neural radiance field(NeRF)。图像编码器使用的DINOv1,将RGB图像投影成一组向量。image-to-triplane将向量转换到triplane-based NeRF表示。解码器包含了多个transformer layers,每一层包括一个self-attention层和cross-attention层,self-attention允许解码器关注triplane的不同部分表示并学习他们的关系。Cross-attention层允许解码器合并全局和局部图像特征到triplane-based NeRF中。
LRM模型结构
数据处理:
数据在模型训练中非常重要,所以TripoSR在训练数据预处理中做了两项改进:
- 数据管理:仔细选择Objaverse数据集的子集,在CC-BY许可下,提升训练数据的质量。
- 数据渲染:采用了多种数据渲染技术来模拟真实世界图像的分布,从而增强了模型的泛化能力。
最佳实践
模型体验
创空间体验链接:
https://modelscope.cn/studios/VAST-AI-Research/TripoSR/summary
欢迎大家体验,也可以选择复制该创空间:
环境配置与安装
- python 3.10及以上版本
- pytorch 1.12及以上版本,推荐2.0及以上版本
- 建议使用CUDA 11.4及以上
下载代码:
git clone https://github.com/VAST-AI-Research/TripoSR.git
安装依赖:
pip install rembg pip install git+https://github.com/tatsy/torchmcubes.git
下载所需模型:
git clone https://www.modelscope.cn/VAST-AI-Research/TripoSR.git git clone https://www.modelscope.cn/AI-ModelScope/dino-vitb16.git
修改模型TripoSR中config.yaml文件,将模型path改为本地模型存储路径:
修改TripoSR/tsr/models/tokenizers/image.py文件,将文件改为从modelscope下载。
运行推理代码:
python run.py examples/chair.png --output-dir output/ --pretrained-model-name-or-path models/TripoSR
点击跳转