论文题目:MediaPipe Hands: On-device Real-time Hand Tracking
发表:ArXiv,2020
作者信息:Zhang F, Bazarevsky V, Vakunov A, et al. Mediapipe hands: On-device real-time hand tracking[J]. arXiv preprint arXiv:2006.10214, 2020.
Google团队的工作
这篇文章基于Mediapipe框架提出了一种端侧实时手部跟踪的解决方案:只利用单个RGB相机即可预测手部的骨架,可应用于AR,VR等场景中。
效果如下图
手的检测相比于人脸检测,难点在于:
(1)模型必须在各种手的尺寸上工作,而且尺度跨度很大(20倍),并能够检测到闭塞和自闭的手。
(2)相比于脸部有高对比度的图案,例如眼睛和嘴巴周围,而手部缺乏这样的特征,因此仅从视觉特征上可靠地检测它们相对困难。
那个该框架是如何解决上述问题的?
作者把手的检测拆分为两步:先检测手掌的位置,然后在进一步检测手部的骨骼关键点。 相比于检测手,检测手掌就非常简单了,通过一个矩形框就可以对手掌位置进行建模, 此外手掌属于小目标, 非极大值抑制NMS在即使是双手自封的情况,如握手也工作良好 。
下图展示了基于Mediapipe的手检测流程图。可以看到有两个并行的分支:左边的Hand detection分支用来检测手掌的位置,然后基于检测的结果对frame进行裁剪,再把裁剪的结果送入第二个Hand landmark分支来进一步确定骨骼关键点的位置。
值得说明的是:并不需要对每一帧都执行Hand detection, 这样既耗时,耗资源,也没有必要。实际上只需要对第一帧以及场景发生变化时(手消失时)执行Hand detection即可。
下面对Hand detection和Hand land mark这两个分支分别进行介绍。
作者使用了类似FPN的变啊默契-解码器架构的特征提取器来实现更大的场景上下文感知,即使对于小对象也是如此。在训练过程中使用Focal loss以支持由高尺度差异导致的大量锚点。
获得手掌区域以后, 手部地标模型Hand Landmark Model通过回归对检测到的手部区域内的21个2.5D坐标进行精确地标定位。如下图所示,模型的输出由三部分构成:
(1)21个由X、Y和相对深度组成的手部地标
(2)表明输入图像中存在手的概率的手标志
(3)手性的二元分类,如左手或右手。
先说第二个:
之前提到过,hand detection仅在第一帧或者手消失时才触发, 因此,当手的位置发生很大变化时,依据之前帧hand detection的结果抠出来的手掌肯定有问题,因此这里的hand presence用于产生一个合理对齐的手确实存在于所提供的作物中的事件的概率, 如果这个值低于指定阈值,则触发hand detection来重置tracking (即更新手掌位置信息), 第二张图的一条蓝色虚线对应这一过程。
再来看第三个:
手性是在AR/VR中使用手进行有效互动的另一个重要属性, 因此,开发了一个二元分类头来预测输入的手是左手还是右手。
由于需要训练模型,数据集的构造非常重要。作者总共使用了3种数据集:野生环境下的数据集, 内部收集的手势数据集, 合成数据集。数据集的示例如下图:
那么数据集与对应任务之间的关系?
对于Palm detector, 仅使用野生环境下的数据集来训练,;
对于Hand landmark detector, 使用所有的数据集来训练;
对于hand presence,选择一个野生环境下的数据集子集作为正面例子,并在不包括注释的手部区域的区域上取样作为负面例子;
对于handedness, 我们对真实世界的图像子集进行手性注释,以提供此类数据。
该手部跟踪解决方案可以应用于收拾识别,AR等众多应用领域,下图是该方案应用与收拾识别的案例。
该案例中, 在预测的手部骨架的基础上,我们采用一个简单的算法来计算手势,首先,每个手指的状态,如弯曲或直,是通过关节的累积角度来确定的。然后,我们将一组手指的状态映射到一组预定义的手势。这种直接而有效的技术使我们能够以合理的质量估计基本的静态手势。除了静态手势识别,还可以使用地标序列来预测动态手势。
另一个应用是在骨架之上应用AR效果。基于手的AR效果目前享有很高的人气。下图展示了一个霓虹灯风格的手部骨架的AR渲染实例。
1.Zhang F, Bazarevsky V, Vakunov A, et al. Mediapipe hands: On-device real-time hand tracking[J]. arXiv preprint arXiv:2006.10214, 2020.