[手位姿估计]Pytorch实现 手生理学约束 -ECCV2020
[手位姿估计]Pytorch实现 手生理学约束 (ECCV2020)
代码已在Github上开源
本人用pytorch实现了ECCV2020 论文 Weakly supervised 3d hand pose estimation via biomechanical constraints 。主要有两部分组成: 三种生理学约束; 如何将生理学约束集成到训练过程中.
1.三种生理学约束
(1) 骨骼长度
(2)手掌骨骼曲率和夹角
(3)每个关节处的旋转角度
- 构建出的坐标系如下图
—红色、绿色、蓝色箭头分别表示局部坐标系的X、Y、Z;
—黑箭头代表骨骼;
—粉色箭头代表骨骼在局部坐标系的X-Z平面的投影;
|
|
-
针对某个关节,其两种旋转角度,求解对应的凸包
-
所有的凸包为
2. 将生理学约束(BMC)集成到训练中 (PyTorch 版本)
与原论文中的网络和实验相比, 本项目将BMC集成到自己的项目,实验结果如下
DetNet训练验证
(AUC指代 3D PCK,;ACC_HM 指代 2D PCK)
在数据集上的量化效果(3D PCK AUC)
Dataset | DetNet | DetNet+BMC |
---|---|---|
RHD | 0.9339 | 0.9364 |
STB | 0.8744 | 0.8778 |
DO | 0.9378 | 0.9475 |
EO | 0.9270 | 0.9182 |
3.其他
- 仔细调整训练参数,延长训练时间可能会进一步提高准确性。
- 由于BMC是一种弱监督方法,它可能只会使预测在物理上更可信,但在使用强监督时,它不能有力地提高AUC性能
- 实现有些简陋,如果有bug,欢迎在github上提出issue讨论