输入一段手机拍摄视频,即可生成对应的3D物体模型,该模型通过隐式表面重建的方式对静态三维物体或场景进行学习和建模。
效果展示
以下是在自拍摄数据集上使用该模型重建渲染的结果
模型描述
使用方式和范围
使用方式:
- 对训练好的模型通过GPU推理,导出对应3D物体模型
使用范围:
- 用户自拍摄视频(支持主流视频格式),高清不低于720P,物体位于拍摄中心,尽量减少镜头畸变
目标场景:
- 需要对单一静态物体进行三维重建的场景
- 支持高精度人头、人体重建
运行环境:
- 模型只支持GPU上运行,具体效率与GPU性能相关
- GPU显存要求大于等于16G
如何使用
模型推理
在 ModelScope 框架上,调用训练好的模型即可通过简单的 pipeline 来推理(仅支持 GPU 运行)。
from modelscope.msdatasets import MsDataset
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import os
data_dir = MsDataset.load('surface_recon_dataset', namespace='menyifang', split='train').config_kwargs['split_config']['train']
data_dir = os.path.join(data_dir, 'surface_recon_dataset')
surface_recon_common = pipeline(Tasks.surface_recon_common, model='damo/cv_surface-reconstruction-common',)
surface_recon_common(dict(data_dir=data_dir, save_dir='.'))
print('done')
模型训练
数据处理方式和训练代码请参考 [github]
模型局限性以及可能的偏差
以下是针对用户自定义数据场景的说明
如果用户采集数据时应覆盖足够视角,保持物体处理中心,避免手机运动抖动,否则可能影响3D重建效果。
模型预处理依赖colmap对视频帧进行相机视角估计,该估计过程对不同场景存在一定误差,可能影响重建渲染结果。
模型数据预处理依赖图像分割模型,如拍摄物体边缘结果复杂或者背景存在干扰导致无法正确分割出物体,将影响到重建渲染效果。
评论