[TOC]
人体3D建模:
- 均是蒙皮模型,没有纹理
SMPL 2015
《A Skinned Multi-Person Linear Model》
Loper, Matthew and Mahmood, Naureen and Romero, Javier and Pons-Moll, Gerard and Black, Michael J.
- 参数人体建模
Official
SMPL
https://github.com/CalciferZh/SMPL
- Numpy, TF and PyTorch implementation of human body SMPL model and infant body SMIL model.
参数化的人体3D模型生成工具
SMPLify 2016
论文:《Keep it SMPL: Automatic Estimation of 3D Human Pose and Shape from a Single Image》
官网:http://smplify.is.tue.mpg.de/
github: https://github.com/vchoutas/smplify-x
论文解读: https://eros-l.github.io/weekly/2018/11/28/weekly5/
- 根据单张照片生成3D模型
项目实践:
官网数据:
smplify_code_v2.zip
lsp_results.tar.gz
human_eva_results.tar.gz
h36M_results_wtout_plytar.gz
常见问题:
—–自定义自己的数据集
- 使用经过LSP训练过的关节检测器CPM/DeepCut
- fit_3d.py 的
run_sigle_fit
Ubuntu下python3环境:
- 下载lsp数据集。
- DeepCut 提取lsp数据集2D Pose特征点 (DeepCut 提取的 lsp dataset 的二维特征点)
- SMPLify fit_3d.py 转换人体3D Pose的模型截图jpg和pkl格式。
- pkl 文件来生成对应的 obj 文件或者其他格式的 mesh(未完成)
参考文档:
1.学习报告(week 5)
2.(week 2)【经验教训】如何将CPM和SMPL的输入替换成任意图片并得到人体三维模型
SMPL-H(mano) 2017
官网:https://mano.is.tue.mpg.de/
论文:《Embodied Hands: Modeling and Capturing Hands and Bodies Together》 2017
Javier Romero, Dimitrios Tzionas and Michael J Black
SIGGRAPH ASIA 2017, BANGKOK, THAILAND
- 增加了对手的部分的细节的还原
SMPLX 2019
官网:https://smpl-x.is.tue.mpg.de/
github: https://github.com/vchoutas/smplx
《Expressive Body Capture: 3D Hands, Face, and Body from a Single Image》
G. Pavlakos*, V. Choutas*, N. Ghorbani, T. Bolkart, A. A. A. Osman, D. Tzionas and M. J. Black
CVPR 2019
增加了对手,脸部,身体的细节的完善
pytorch实现,摈弃了chumpy
SMPLify-X
https://github.com/vchoutas/smplify-x
从单张图片的3D人体复原
AMASS dataset
https://amass.is.tuebingen.mpg.de/
AMASS is a large database of human motion unifying different optical marker-based motion capture datasets by representing them within a common framework and parameterization. AMASS is readily useful for animation, visualization, and generating training data for deep learning.
AMASS是一个大型的人类运动数据库,通过在共同的框架和参数化中表示不同的基于光学标记的运动捕获数据集来统一这些数据。AMASS对于动画,可视化以及生成用于深度学习的训练数据非常有用。
SMPL模型源码/项目介绍
SMPL源码下载:http://smpl.is.tue.mpg.de/downloads 需要注册
本文主要讨论SMPL源码核心代码。需要储备的知识还有:三维重建基础知识,以及 chumpy阅读以及opendr阅读,LBS DQS等
SMPL文件主要包括 vert.py serialization.py lbs.py。下面将逐一说说明。
0、关节位置
SMPL模型关节点名称
1 | self.j_names = { |
关节树图形:
1、posemapper.py
主要是实现关节角度到姿势混合形状的映射。
1 | import chumpy as ch |
2、LBS.py
就是实现LBS
1 | from posemapper import posemap |
3、vert.py
verts_decorated函数没有被用到就不过多注释了
1 | import chumpy |
4、serialization.py
SMPL模型的序列化函数。
1 | def save_model(model, fname): # 保存模型model到文件名fname中 |
环境配置(SMPL)
chumpy安装
pip install chumpy (0.86的chumpy已经支持python3 不需要特别修改代码安装)
python2和python3一些库的名字不同:
例如:no module named cPickle
pickle模块,在ython3中为import pickle,python2中为import cPickle as pickle
opendr 安装
https://codeload.github.com/polmorenoc/opendr/zip/master
- 1 python setup.py build
- 2 python setup.py install
OPENGL-python 安装
- 1- 解压
- 2- python setup.py build
- 3- python setup.py install
环境配置Ubuntu(SMPL)
opendr
1 | pip3 install opendr |
Mesa 3D Graphics Library
https://www.mesa3d.org/osmesa.html
1 | sudo apt-get install libosmesa6-dev |
PyOpenGL
1 | pip3 install PyOpenGL PyOpenGL_accelerate |
1 | pip3 install Bottleneck |
c参考资料:
SMPL: A Skinned Multi-Person Linear Model
3D相关学术人员及Blog
浙大博士 https://52zju.cn/?paged=2 三维重建