摘要:SF3D 是一个基于 TripoSR 的大型重建模型,能够接收单个物体的图片,并生成一个带有纹理的 UV 展开的 3D 网格资产。该模型在不到一秒钟内完成 3D 模型的创建,生成的资产多边形数量相对较低,适用于多种应用场景。此外,模型还能预测每个物体的材料参数
SF3D 是一个基于 TripoSR 的大型重建模型,能够接收单个物体的图片,并生成一个带有纹理的 UV 展开的 3D 网格资产。该模型在不到一秒钟内完成 3D 模型的创建,生成的资产多边形数量相对较低,适用于多种应用场景。此外,模型还能预测每个物体的材料参数(如粗糙度、金属性),从而增强渲染过程中的反射效果。
SF3D 使用了 Objaverse 数据集的渲染图进行训练。Objaverse 数据集在开放数据共同体归因许可证下可用,提供了大量高质量的 3D 对象渲染图。为了提高模型的泛化能力,开发团队采用了增强的渲染方法,使生成的图像更接近现实世界的分布。此外,根据许可证的审查,团队对对象进行了筛选,并策划了一个适合训练需求的子集。
下载源码下载源码
进入源码路径源码路径
修改源码(1)stable-fast-3d/sf3d/system.py 文件
11行去掉,并改成snapshot_download
导包依赖
from modelscope import snapshot_download修改下载模型的方式,用snapshot_download来下载,存储到当前路径stable-fast-3d/ 下
下载模型
model_dir = snapshot_download(model_id=pretrained_model_name_or_path, cache_dir="./")config_path = os.path.join(model_dir, config_name)weight_path = os.path.join(model_dir, weight_name)(2)修改 stable-fast-3d/sf3d/models/tokenizers/image.py
先把dinov2模型下载下来,Dinov2Model加载路径为模型缓存路径
Dinov2Model
model_dir = snapshot_download( model_id=self.cfg.pretrained_model_name_or_path, cache_dir="./")self.model = Dinov2Model.from_pretrained(model_dir)(3)修改stable-fast-3d/sf3d/models/image_estimator/clip_based_estimator.py
导包依赖
cache_dir = snapshot_download( model_id="AI-ModelScope/CLIP-ViT-B-32-laion2B-s34B-b79K", cache_dir="./")self.model, _, self.preprocess = open_clip.create_model_and_transforms( self.cfg.model, pretrained=os.path.join(cache_dir, "open_clip_pytorch_model.bin"))4.只需要修改上面三个位置可以运行了
!pip install -i requirements.txt!python run.py demo_files/examples/chair1.png --output-dir output/大功告成,无需GPU
来源:信息百宝囊