目录
Monocular Real-time Hand Shape and Motion Capture using Multi-modal Data
一. 论文简介
从单张图像中恢复 2D keypoints + 3D keypoints + mesh,在数据量不充足的情况下进行弱监督。
主要做的贡献如下(可能之前有人已提出):
- DetNet
- IKNet
- Dataset
二. 模块详解
2.1 DetNet
- 2D keypoints detect: 直接heatmap即可
- 3D keypoints detect: 这部分作者参考 Vnet 结构,具体如下图所示:图像位置由前面的2D检测器给出,由3张图表示camera space(root-relate)XYZ坐标。注意这里是经过归一化的,一般手势使用\(ref=|point_{9}-point_{10}|\), \(p_{i}=p_{i}/ref\)。作者说直接平铺整个map,个人认为这样不好,使用kernel=9,inference时候取kernel=3然后平均,这样效果可能更好。实测直接2D效果更好,未在3D项目中使用!
- Delta回归:这部分是回归每个joint相对于root的方向。\(dis=distance_{root-point}\), \(point_{xyz}^{A}=\frac{point^{A}-root}{|dis|}\),dis为当前的到root的距离。那么当我们知道A到root的距离,同时知道root的绝对距离,那么就知道A的实际位置:\(Dis_{A}=Dis_{root}+Delta*Dis_{root-A}\),论文中公式(5)也可以立马推导得到。
2.2 IKNet
- 这里使用的MANO模型,直接使用即可,比较简单(有深度的得看论文)。
- Shape Estimate: 主要说一下loss,\(l_b(\beta)\)表示b段骨架的长度,\(l_{ref}\)表示归一化的长度(refer length),\(l_b^{pred}\)表示3D keypoints的检测结果。最后一项正则化,不比多说,每个论文都要限定一下,一般的范围是[-1,1]或[-2,2]。
- 逆运动学模型(inverse Kinematics),公式(10)表示余弦差角,四元数实数部分的乘积(直接按照公式去做即可,为啥说是余弦差角?),公式(11)直接监督,公式(12)3D joints监督(mesh的verts直接投影到21或16关键点即可),公式(13)正则化惩罚项,和shape最后一项类似。
2.3 Dataset
- 论文中数据来自三个部分
- 直接使用2D数据训练2Dkeypoints
- 使用Mocap数据训练2D+3D+mesh,这部分和3D Hand Shape and Pose from Images in the Wild类似,使用mesh生成数据集。
- 使用3D数据训练2D+3D+mesh(最后一项是弱监督,只计算3D joint loss)
三. 缺点
- mesh仅作为弱监督,是否会增强3D数据拟合能力有待商榷。搭建一个直接预测root-relate模型,在RHD-Hand数据,比这篇论文效果好,30mm达到94.9%。
- 整体看起来不难理解,但模块太多,设计有点冗余。
- 作者说在某些简单手势出先较大误差,可能数据问题,也可能模型问题。目前作者正在研究第二个版本,期待!!!