目录

前言

一、利用conda创建虚拟环境

二、安装CUDA+Pytorch

安装CUDA + CUDNN

安装pytorch

三、安装代码的环境依赖

requirements.txt

其它依赖项

SMPL-X

VPoser

Homogenus

四、下载模型

五、准备数据

六、运行代码

七、运行成功截图

八、总结

参考博客


前言

最近因为实验需求要把自己采集的人体数据集用蒙皮模型做可视化,需要用到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 

特别感谢二位的博客!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐