En3D生成式3D人物模型库

我要开发同款
匿名用户2024年07月31日
35阅读
所属分类ai、3D render、pytorch、3D人物模型库、三维生成、Neural Rendering、3D generation、3D human library、cv
开源地址https://modelscope.cn/models/iic/cv_3d-human-synthesis-library
授权协议Apache License 2.0

作品详情

En3D生成式三维模型使用及渲染

论文项目主页

3DHuman-Syn是一个生成式3D人物模型库,通过预训练模型批量生成得到,目前开放1000个Avatar模型的下载、渲染、驱动等功能,生成的3D模型可直接用于现有3D生产管线(支持OBJ、GLB、FBX等,可用于Blender等)

效果展示

模型库部分人物渲染缩略图:

渲染缩略图

MashLab预览:

预览

模型及功能描述

模型库描述

  • 模型库包含1000个标准化的3D人物角色,呈标准姿态A字形分布;

  • 每个实例模型采用triangular mesh结构,包含10w顶点、20w面片、以及2048*2048分辨率的纹理贴图;

  • 人物范围涵盖男士、女士、老人、小孩等,服装涵盖各类日常服饰(如衬衫、西装、外套、裙装、牛仔服、休闲裤、紧身衣、风衣等)

功能描述

通过modelscope提供模型库中3D实例下载、渲染及角色驱动功能

使用方法

环境安装

安装好基础modelscope环境后,安装nvdiffrast

# 安装nvdiffrast
git clone https://github.com/NVlabs/nvdiffrast.git
cd nvdiffrast
pip install .

# 安装nvdiffrast所需依赖(opengl等)
apt-get install freeglut3-dev
apt-get install binutils-gold g++ cmake libglew-dev mesa-common-dev build-essential libglew1.5-dev libglm-dev
apt-get install mesa-utils
apt-get install libegl1-mesa-dev 
apt-get install libgles2-mesa-dev
apt-get install libnvidia-gl-525
pip install 'numpy<=1.22.0' 'pandas<1.4.0' 

3D模型下载及渲染

在 ModelScope 框架上,通过简单的 pipeline 即可实现指定3D角色的下载及渲染推理

import os
import imageio
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.test_utils import test_level
from modelscope.outputs import OutputKeys
from modelscope.models.cv.face_reconstruction.utils import write_obj

def save_results(result, save_root):
    os.makedirs(save_root, exist_ok=True)

    # save mesh
    mesh = result[OutputKeys.OUTPUT]['mesh']
    write_obj(os.path.join(save_root, 'mesh.obj'), mesh)

    # save rendered color video
    frames_color = result[OutputKeys.OUTPUT]['frames_color']
    imageio.mimwrite(os.path.join(save_root, 'render_color.gif'), frames_color, duration=30)
    del frames_color

    # save rendered normals video
    frames_normals = result[OutputKeys.OUTPUT]['frames_normal']
    imageio.mimwrite(os.path.join(save_root, 'render_normals.gif'), frames_normals, duration=30)
    del frames_normals
    print(f'Output written to {os.path.abspath(save_root)}')

human3d = pipeline(Tasks.human3d_render,model='damo/cv_3d-human-synthesis-library')
input = {'dataset_id': 'damo/3DHuman_synthetic_dataset',
        'case_id': '000039'}
output = human3d(input)
save_results(output, './human3d_results')

print('finished')

人物驱动

参见3D角色驱动模型

模型局限性以及可能的偏差

3D模型质量进一步迭代优化中,定期更新

引用

如果该模型对你有所帮助,请引用相关的论文:

To be updated
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论