(week 2)【经验教训】如何将CPM和SMPL的输入替换成任意图片并得到人体三维模型

前期准备

CPM和SMPL模型的下载安装参考https://blog.csdn.net/tinghw/article/details/88782572#cpm%E6%A8%A1%E5%9E%8B%EF%BC%9A

需要注意的是SMPL的代码有两个,一个是原始的模型代码http://smpl.is.tue.mpg.de/,一部分是使用SMPL的代码http://smplify.is.tuebingen.mpg.de/faq,不要讲二者搞混了,具体的使用和安装流程在后者的FAQ里讲得已经很清楚了,根据自己的具体情况略微调整即可

分析CPM

(week 2)【经验教训】如何将CPM和SMPL的输入替换成任意图片并得到人体三维模型_第1张图片

models里存放的是CPM原始模型,test_imgs存放的是输入图片,utils里是工具类,其他的都是demo文件,没有特殊要求的情况下我们可以直接使用demo来运行

分析SMPL

分析文件夹结构,smplify_public下

1. requirements里包含需要提前安装的python库,其中opendr库一定要注意查看自己的虚拟机环境,小伙伴亲测python3大概率装不上,可以去网上搜python3下的SMPL代码

2. venv是README里提示搭建的一个独立环境virtualvenv

3. images链接了原始图片

4. results里存放的其实是运行前需要自己设置的参数

est_joints.npz存放的就是人体的关节点信息,也就是我们通过CPM模型得到的关节点位置

lsp_gender.csv里指定了输入图片的性别,从而使之运行时自动调用不同性别的人体模型参数

meshes.hdf5是原有的模型参数,我们这里可以暂时不用管它

5. code里是运行代码

(week 2)【经验教训】如何将CPM和SMPL的输入替换成任意图片并得到人体三维模型_第2张图片

fit_3d.py是运行的主程序,render_model.py是渲染模型的程序,models文件夹里存放的就是SMPL模型

得到任意图片的SMPL模型结果

1. 将kuli.jpg放入test_imgs下,将demo_body_cpm.py中的图片途径改为输入图片的路径

(week 2)【经验教训】如何将CPM和SMPL的输入替换成任意图片并得到人体三维模型_第3张图片

运行demo_body_cpm.py程序,得到关节点的标注图片和关节点信息,我们把关节点信息存为.npy文件以备后续使用

(week 2)【经验教训】如何将CPM和SMPL的输入替换成任意图片并得到人体三维模型_第4张图片

(week 2)【经验教训】如何将CPM和SMPL的输入替换成任意图片并得到人体三维模型_第5张图片

CPM结果的节点顺序是(头部,脖子,左肩,左肘,左臂,右肩,右肘,右臂,左胯,左膝,左脚,右胯,右膝,右脚)

2. SMPL要求的输入的顺序是( Right ankle,Right knee,Right hip,Left hip, Left knee, Left ankle,Right wrist, Right elbow,Right shoulder, Left shoulder, Left elbow ,Left wrist, Neck ,Head top),节点信息要存储在/smplify_public/results/est_joints.npz中,我们把上面得到的数据按这个顺序重写一下然后替换est_joints.npz,并修改性别文件,lsp_gender.csv,最后把自己的图片放到image指向的链接文件夹中

3. 运行fit_3d.py,得到结果

(week 2)【经验教训】如何将CPM和SMPL的输入替换成任意图片并得到人体三维模型_第6张图片

 

 

你可能感兴趣的:(创新实训)