菜菜复现Smplify-x的艰难记录
参考工作文档:
1 https://blog.csdn.net/xxw23/article/details/121173557
2 https://blog.csdn.net/qq_44916003/article/details/124535251
我的环境:
Windows + cuda12.0 + Pycharm2022 + Python3.6 (Anconda虚拟环境)
以上环境没有配置好的,可以先根据参考文档1前面的部分配置环境。以及后面我发现,要可视化结果似乎python需要3.8以上,各位自己把握下,我是菜菜我不知道呜呜呜。
工作记录:
解决完环境问题,开始下载smplify-x源码。建议新建一个专门的文件夹,后面还有其他东西要下载,放一起比较好找到。
根据参考文档2,下载smplify-x(得到smplx-master文件夹)源码 + 人体先验模块human_body_prior
结合两个参考文档,先根据源码文件的readme,做一些代码的配置工作,install requirements 之类的balabala~
这里遇到的第一个问题是模型loading,根据文档需要下载mano,smpl,smplh,smplx四个模型文档,要去一个模型网站注册了之后才能下载,但是我始终没有找全所有的模型(太菜了)
完整的目录结构如下:


从网站下的各种解压包记得打开看看里面的具体内容,可以会存在重复,放置混乱的情况,所以需要你全部打开以后,再根据上面的文件夹要求的目录结构重新放置。
第二个问题:
下载完上述四个模型,还需要下载EHF数据集(这个主要是提供输入的图像和图像对应的骨骼关键点)。所以下载的图像和关键点必须统一对应的,且需要给关键点文件改名字,如下所示,否则会报错。

第三个问题:
按照参考文档,我们需要下载一个叫VPoser的东西,并把它放在和smplifyx-master的同级目录下,但是我照做了之后,在运行过程中,还是会报错,在网上也并没有看到类似的情况。
报错如下:
Could not find the experiment directory: vposer
所以我尝试把VPoser整个文件复制到smplifyx-master里面,就不会报这个错了
最后,我愿称之为我的究极问题:

当我觉得我已经搞完了所有模型下载和数据载入并全部放在了相应的位置后,一直在报这个错误,也就是他无法识别我的模型类型。追溯源头,报错来源body_models.py一下部分:

我就很迷惑了,我明明四个模型都已经下载好了呀,怎么会不识别呢?(菜菜迷惑.jpg)
一通检索,基本知道原因大概是cfg_files文件里面的配置和运行文件的匹配问题,简单点说,报错是关于model_type的,那就是运行文件和配置文件中model_type不对应。
首先明确,我需要匹配的smplx的模型,打开conf.yaml文件,确定里面的model_type是对的

接着,找到cfg_files文件下的fit_smplx.yaml,确定这里的model_type是对的。

最后,找到运行的main.py文件,Ctrl+F下里面关于model_type的部分,确定都是smplx.


至此,我总算是运行出了一个结果,废物瘫.jpg。运行结果在smplx_debug文件夹中。
接下来还要把之前open pose输出的关节点结果链接到这边,这样就可以实现用自己的图像去匹配三维模型了,记录一下,防止我金鱼脑袋到时候又忘了这边的配置问题。