Project Icon

SKEL

生物力学驱动的精准3D人体模型

SKEL是一种创新的参数化人体模型,融合身体形状和骨骼结构,生成解剖学精确的3D人体。通过调整形状和姿势参数,SKEL能够控制身体外形和骨骼位置,输出关节位置、身体网格和骨骼网格。作为可微分模型,SKEL可适配多种数据源,如运动捕捉和SMPL序列。该项目开源了SKEL加载器和SMPL序列对齐工具,为数字人体建模领域提供了新的研究方向。

SKEL

图片描述

本仓库是 Siggraph Asia 2023 论文"从皮肤到骨骼:迈向生物力学准确的3D数字人类"的代码发布的一部分。

[论文] [项目页面]

此仓库包含 PyTorch SKEL 加载器和将其对齐到 SMPL 序列的代码。

SKEL 是一个参数化的身体形状和骨骼模型。其形状参数让你可以改变身体形状,而姿势参数则让你以解剖学上合理的方式调整骨骼姿势。给定形状和姿势参数,SKEL 会返回关节位置、身体网格和骨骼网格。SKEL 是可微分的,可以拟合各种数据,如动作捕捉或 SMPL 序列。

更多详情,请查看我们的 Siggraph 2023 论文:从皮肤到骨骼:迈向生物力学准确的3D数字人类

目录

快速开始

对于最小化使用,你需要按照设置环境下载 SKEL中的安装说明进行操作。

要测试 SKEL 模型,你可以运行:

python quickstart.py 

这将运行 SKEL 的前向传播,并将输出保存为分离的身体和骨骼网格。

然后你可以尝试更改 SKEL 参数,了解以下内容。SKEL 由两个参数控制:

  • betas 控制身体的形状(高、矮、瘦等)。它是一个大小为 10 的向量。值应该保持在 -2 到 2 之间。向量的第一个值大致控制身高,第二个值控制体重。

  • pose 控制身体姿势。它是一个大小为 46 的向量,大多数值是以弧度表示的角度,可以在 -3.14 到 3.14 之间变化。你可以在这里看到 46 个参数中的哪一个控制哪个身体关节。

SKEL(beta, pose) 产生:

  • 一个骨骼 3D 网格
  • 一个身体网格
  • 解剖学关节位置

本 README 的其余部分将让你设置我们的 SKEL 可视化工具并运行一些演示代码。我们希望你喜欢我们的工作!

安装

设置环境

克隆此仓库

git clone https://github.com/MarilynKeller/SKEL
cd SKEL

创建虚拟环境并安装 SKEL 包

pip install -U pip   
python3.8 -m venv skel_venv
source skel_venv/bin/activate
pip install git+https://github.com/mattloper/chumpy 
pip install -e .

下载 SKEL

https://skel.is.tue.mpg.de/ 创建一个账户(下载必需)。

然后从下载页面使用"下载模型"按钮下载 SKEL 模型。 解压下载的文件夹,并编辑 SKEL/skel/config.py 文件,指定包含下载的 SKEL 模型文件夹的路径:skel_folder = '/path/to/skel_models_v1.0

下面,我们将解释如何为 SKEL 设置可视化工具(仅支持 Linux 和 Mac),并运行一些示例代码。

Aitviewer

如果你想运行演示,还需要我们的 aitviewer 分支用于可视化:

cd ..
git clone https://github.com/MarilynKeller/aitviewer-skel.git
cd aitviewer-skel 
pip install -e .

然后编辑 aitviewer/aitviewer/aitvconfig.yaml 文件,指向 SKEL 文件夹:

skel_models: "/path/to/skel_models_v1.0"

SMPL 和 MPI 网格包

!请注意,MPI 网格包仅支持 Linux 系统。如果你不是在 Linux 上,你需要注释掉依赖 psbody.mesh 包的代码,并编写自己的可视化代码。

如果你想运行 SMPL 对齐,你需要下载 SMPL 模型。 首先,在 https://smpl.is.tue.mpg.de/ 创建一个账户。 然后从下载页面下载这个文件:SMPL_python_v.1.1.0.zip。运行:

cd ../SKEL
python scripts/setup_smpl.py /path/to/SMPL_python_v.1.1.0.zip  

为了可视化拟合过程,你需要 MPI 网格包,可以用以下命令安装:

pip install git+https://github.com/MPI-IS/mesh.git  

请注意,mesh包仅在Linux上支持,但它只在可视化拟合过程中必需。

演示

姿势参数

可视化SKEL姿势参数的效果:

python examples/skel_poses.py --gender male

图片描述

形状空间

可视化形状空间:

python examples/skel_betas.py --gender female 

绑定

可视化皮肤和骨骼到SKEL运动学树的蒙皮权重:

python examples/skel_rigging.py --gender female  
SKEL蒙皮权重可视化

可视化SKEL的运动学树和关节位置:

python examples/skel_kintree.py --gender female
SKEL运动学树可视化

你可以在这里看到关节ID的可视化,以及在这里查看它们的名称和自由度列表。

SKEL序列

可视化SKEL序列。你可以在skel_models_v1.0/sample_motion/中找到一个SKEL运动样本和相应的SMPL运动。

python examples/skel_sequence.py /path/to/skel_models_v1.x/sample_motion/01_01_poses_skel.pkl -z 

要同时可视化SMPL序列:

python examples/skel_sequence.py /path/to/skel_models_v1.0/sample_motion/01_01_poses_skel.pkl -z --smpl_seq /path/to/skel_models_v1.0/sample_motion/01_01_poses.npz

将SKEL对齐到SMPL网格

SKEL可以对齐到SMPL网格:

python examples/align_to_SMPL_frame.py --smpl_data 'examples/samples/img_fit/emily-sea-coiWR0gT8Cw-unsplash_0.npz' 

将SKEL对齐到SMPL序列

SKEL可以对齐到SMPL序列,以下是一个例子:

python examples/align_to_SMPL_seq.py examples/samples/amass_seq/CMU_01_01.npz -D 

你可以使用以下命令可视化结果:

python examples/skel_sequence.py output/CMU_01_01/CMU_01_01_skel.pkl -z 

你可以从AMASS下载页面下载更多此类SMPL序列,选择SMPL+H G序列。

致谢

这项研究部分在斯坦福大学的The Movement Lab和马克斯普朗克智能系统研究所的Perceiving Systems完成。

我们感谢Neelay Shah生成所有必要的SMPL拟合,A. A. Osman在参数化人体模型方面的专业知识,Shashank Tripathi在MOYO方面的帮助,Giorgio Becherini在AMASS和动作捕捉拟合评估方面的专业知识,Peter Kultis、Yao Feng和Yuliang Xu对论文的反馈。 我们还感谢斯坦福大学的TML实验室和NMBL实验室的富有成效的讨论,特别是Jennifer Maier在肩部方面的专业知识。

引用

如果您使用此软件,请引用以下工作和软件:

@inproceedings{keller2023skel,
  title = {From Skin to Skeleton: Towards Biomechanically Accurate 3D Digital Humans},
  author = {Keller, Marilyn and Werling, Keenon and Shin, Soyong and Delp, Scott and 
            Pujades, Sergi and Liu, C. Karen and Black, Michael J.},
  booktitle = {ACM ToG, Proc.~SIGGRAPH Asia},
  volume = {42},
  number = {6},
  month = dec,
  year = {2023},
}

许可证

此代码和模型仅供非商业科研用途使用,详见LICENSE.txt文件中的定义。

联系方式

如有任何关于SKEL加载的问题,请联系skel@tuebingen.mpg.de

商业许可请联系ps-licensing@tue.mpg.de

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号