2023smplify-x环境配置(Ubuntu20.04+CUDA10.0)
人体蒙皮模型SMPLify-X环境配置
目录
前言
最近因为实验需求要把自己采集的人体数据集用蒙皮模型做可视化,需要用到smplx,网上可以参考的配置教程不是特别多,有的缺乏一些关键信息,特此记录一下。
官方的github网站:https://github.com/vchoutas/smplify-x
官网有推荐配置:

我们尽量按官网这个来配。
一、利用conda创建虚拟环境
conda create -n smplx python=3.6 -y
conda activate smplx
二、安装CUDA+Pytorch
安装CUDA + CUDNN
参考博客:
https://blog.csdn.net/qq_42887760/article/details/126906423
Ubuntu20.04安装CUDA10.0_程序员_IT虾米网 (itxm.cn)
注意一定是安装CUDA10.0和CUDNN7.3的版本,博客仅作参考
安装完后目前系统配置为:ubuntu20.04 + cuda10.0 + cudnn7.3.1
安装pytorch
conda install pytorch==1.1.0 torchvision==0.3.0 cuda100 -c pytorch
这里没有安装1.0.0版本的pytorch是因为conda实在找不到这个版本的了,换源也没有解决,如果各位有好办法请评论指教。(1.1.0版本pytorch同样对应cuda10.0)
安装完后目前系统配置为:ubuntu20.04 + cuda10.0 + cudnn7.3.1 + pytorch1.1.0
三、安装代码的环境依赖
requirements.txt

建议把最后一行注释掉,因为这个网址的内容更新过,不适用本代码,我们手动从这个网址下载。
下载完记得把文件名改回human_body_prior,放到smplifyx目录下:
![]()
其它依赖项
根据官网可以看到该代码还依赖于其它几个项目(PyTorch已经安装好了)

SMPL-X
下载地址:https://github.com/vchoutas/smplx
解压后放到smplifyx同级目录下:
之后按照SMPL-X官网的Installation执行指令:
VPoser
下载地址:https://smpl-x.is.tue.mpg.de/download.php
下载好之后解压到smplifyx同级文件夹:
Homogenus
下载地址:https://github.com/nghorbani/homogenus
下载完同样放在smplifyx同级文件夹,然后进到homogenus文件夹里面,执行命令:
pip install -r requirements.txt
四、下载模型
我们在smplifyx同级新建文件夹models,在models底下新建四个文件夹存放下载的模型:

下载地址:https://github.com/vchoutas/smplx#downloading-the-model
四个模型的下载地址在smplx项目里都有链接:

实际上我们这里只用下载smpl和smplx模型就可以了:

五、准备数据
我们这里用EHF数据集做测试,后面想用自己拍的数据集或者网上找的其他数据集应该也一样。
下载地址:https://smpl-x.is.tue.mpg.de/download.php
在smplifyx同级目录新建data文件夹,在data文件夹子目录新建images和keypoints文件夹,把EHF数据集对应的数据放进去:

选了两张图片试验,记得一定要把json文件名改成图中的格式。
六、运行代码
python smplifyx/main.py --config cfg_files/fit_smplx.yaml
实际运行时还会报一些bug,基本都是一些包没有安装好,百度几乎都能解决,这里每个人问题可能都不太一样。有一个bug需要注意:

这个问题在官网的issue里有很多人问,这里贴一下链接:https://github.com/vchoutas/smplify-x/issues/9
主要解决方法有两种:一种解决方法是去安装torch-mesh-isect这个包,但底下也有老哥说安装了这个包之后又有新的报错,没有很好的解决办法;另一个解决方式是把对应配置文件里的interpenetration选项改为False(默认是True):

这一块如果大家有什么好方法可以评论区分享一下。
七、运行成功截图

运行成功之后结果全部保存在smplx_debug下:

作者给出了可视化代码:
python smplifyx/render_results.py --mesh_fns OUTPUT_MESH_FOLDER
这个OUTPUT_MESH_FOLDER指代的就是网格文件所在的路径,举个例子:
smplx_debug/meshes/01_img
当然在服务器上跑的同学没有可视化界面也可以直接把meshes底下的obj模型下载到windows下用3D查看器查看,这里放两张效果图:

Warning:以下图片可能引起不适!!!

EHF数据集跑出来的效果貌似只有第一张比较正常,从第二张开始出现异型,目前还不太清楚是什么原因。
八、总结
总结一下这次环境配置工作,总体来说代码可以顺利运行了,中间碰到的一些问题通过百度或者项目的issue基本都能解决,留下两个问题没有解决:1、关于自渗透检测选项我们是粗暴的设置为了False不去使用它,关于这个选项对于最后结果有多大影响不得而知;2、关于估计结果异形的问题还不太清楚是什么原因造成的。欢迎各位在评论区留言讨论。
参考博客
https://blog.csdn.net/xxw23/article/details/121173557
https://blog.csdn.net/qq_44916003/article/details/124535251
特别感谢二位的博客!
更多推荐
所有评论(0)