基于SMPL模型人体三维重建总结整理


前期的调研过程中,一直都听说SMPL模型,以及很论文中都使用了他,例如Frankmocap 和Eazymocap 等论文项目中,然后我去看了SMPL的原文,文章中很多公式推导,看的眼花缭乱目前也没有完全搞懂每个公式和参数的意义,不过我已经准备进入下一阶段,先看SMPL源码的使用,用起来缺什么补什么。以下是一些总结笔记
Blending Skinning蒙皮算法,常用的有两种LBS和DQS,是用骨骼操控面上的顶点。

SMPL model

参考https://www.cnblogs.com/sariel-sakura/p/14321818.html

python3下使用SMPL和SMPLify

pyton3.x上的SMPLify运行:源码是python2版本,python3的实现参考这篇博客,博主真的很耐心,算是指导我入门了,感谢

SMPL代码的源码解读

文件结构和代码解读参考:https://blog.csdn.net/xxw23/article/details/121906847#comments_21658163
博主写了文件之间的调用关系,以及参数的意义,不过我很多参数具体意义还是看不懂,自己太菜了,不过我主要知道了SMPL的模型的输入是β和θ
在这里插入图片描述
β也就是m.betas是一个包含10个参数的列表,θ是m.pose我debug的时候看到它只有72个参数,但是参考了不少博客都说有75个,后来在https://blog.csdn.net/weixin_42145554/article/details/112251942这篇博客看到应该确实只有72个,这篇博客较为详细的介绍了各个参数的意义还有公式推导。SMPL顶点、关节点的计算流程参考
在这里插入图片描述
我的理解拿这张图举例,0代表root 根有3个参数,其余还剩23个关节,每个关节又有3个参数代表相对父节点的旋转(这个旋转我不知道描述的准不准确)SMPL原论文中是这么描述的
在这里插入图片描述
这个父子节点也参考上面的博客,0是root,没有父节点,它的子节点是1,2,3,以此类推


一些没搞懂的问题

在这里插入图片描述m.r我没有在pkl文件中找到这个参数,我不知道这个参数从哪来的.可能对pkl文件的读取没有搞清楚,debug的时候也无法在IDE里定位到这个变量。很头疼。
还有就是对模型各个参数计算的过程没有详细推导,也不知道需不需要完全深入了解,留作以后在看。


补充

debug的时候发现m.r,在导入m的时候就有m.r了,然后修改m.pose和m.betas后,m.r会实时更新。
将smplify中的fit_3d.py改成如下

    with open(out_path, 'wb+') as outf:
        pickle.dump(params, outf)

能将获得的参数保存下来,然后读取其中的m.pose和m.betas到hello_smpl.py中
在这里插入图片描述
最后生成的.obj文件能在mesh中查看
在这里插入图片描述
不过生成的是个倒着的人,好像要旋转点云,不太懂点云数据的操作,暂时先放一放,有需求再改。

参考

1.https://blog.csdn.net/weixin_43955293/article/details/121685987
2.https://blog.csdn.net/xxw23/article/details/121906847#comments_21658163
3.https://blog.csdn.net/weixin_42145554/article/details/112251942
4.SMPL论文
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值