使用 MediaPipe BlazePose 在设备上实时跟踪身体姿势

文 / 小隐论科技
2021-09-28 00:18

视频姿势估计起着至关重要的作用,可以在增强现实、手语识别、全身手势控制,甚至量化体育锻炼中将数字内容和信息叠加到物理世界之上,它可以构成瑜伽的基础。 、舞蹈和健身应用。由于可能的姿势多种多样(例如,数百个瑜伽体式)、众多的自由度、遮挡(例如,从相机看到的身体或其他物体遮挡了四肢)以及各种外观或服装。

今天,我们宣布发布一种新的人体姿势感知方法BlazePose,我们在CVPR 2020的CV4ARVR 研讨会上介绍了该方法。我们的方法通过使用机器学习 (ML) 从单个帧中推断出身体的 33 个二维地标,从而提供人体姿势跟踪。与基于标准COCO 拓扑的当前姿势模型相比,BlazePose 可以准确定位更多关键点,使其特别适合健身应用。此外,当前最先进的方法主要依赖强大的桌面环境进行推理,而我们的方法通过 CPU 推理在手机上实现实时性能。如果利用 GPU 推理,BlazePose 可实现超实时性能,使其能够运行后续 ML 模型,如面部或手部跟踪。

目前人体姿势的标准是COCO 拓扑,它由横跨躯干、手臂、腿部和面部的 17 个地标组成。然而,COCO 关键点仅定位到脚踝和手腕点,缺乏手脚的尺度和方向信息,这对于健身和舞蹈等实际应用至关重要。包含更多关键点对于特定领域姿势估计模型的后续应用至关重要,例如手、脸或脚的姿势估计模型。

通过 BlazePose,我们提出了 33 个人体关键点的新拓扑,它是 COCO、BlazeFace和BlazePalm拓扑的超集。这使我们能够仅从与面部和手部模型一致的姿势预测中确定身体语义。

对于姿势估计,我们利用我们经过验证的两步检测器-跟踪器 ML 管道。使用检测器,该管道首先在帧内定位感兴趣的姿势区域 (ROI)。跟踪器随后根据该 ROI 预测所有 33 个姿势关键点。请注意,对于视频用例,检测器仅在第一帧上运行。对于后续帧,我们从前一帧的姿势关键点得出 ROI,如下所述。

进行姿势检测对于由姿势检测和跟踪模型组成的完整 ML 管道的实时性能,每个组件必须非常快,每帧仅使用几毫秒。为了实现这一点,我们观察到神经网络关于躯干位置的最强信号是人脸(由于其高对比度特征和相对较小的外观变化)。因此,我们通过做出强(但对于许多移动和网络应用程序有效)的假设来实现快速和轻量级的姿势检测器,即我们的单人用例应该可以看到头部。

因此,我们受亚毫秒级BlazeFace模型的启发,训练了一个面部检测器,作为姿势检测器的代理。注意,该模型仅检测人在框架内的位置,不能用于识别个人。与Face Mesh和MediaPipe Hand跟踪管道相反,我们从预测的关键点得出 ROI,对于人体姿势跟踪,我们明确地预测了两个额外的虚拟关键点,它们牢牢地将人体中心、旋转和缩放描述为一个圆圈。灵感来自莱昂纳多的维特鲁威人,我们预测了一个人臀部的中点,外接整个人的圆的半径,以及连接肩部和臀部中点的线的倾斜角度。即使对于非常复杂的情况,如特定的瑜伽体式,这也会导致一致的跟踪。下图说明了该方法。

管道的姿态估计组件预测所有 33 个人物关键点的位置,每个关键点具有三个自由度(x、y位置和可见性)加上上述两个虚拟对齐关键点。与采用计算密集型热图预测的当前方法不同,我们的模型使用回归方法,该方法由所有关键点的组合热图/偏移量预测监督,如下所示。

具体来说,在训练期间,我们首先使用热图和偏移损失来训练网络的中心和左塔。然后我们移除热图输出并训练回归编码器(右塔),从而有效地使用热图来监督轻量级嵌入。

下表显示了对不同训练策略产生的模型质量的消融研究。作为评估指标,我们使用具有 20% 容差的正确点百分比 ([email protected])(如果 2D 欧几里得误差小于相应人躯干尺寸的 20%,我们假设该点将被正确检测到)。为了获得人类基线,我们要求注释者对多个样本进行冗余注释,并获得 97.2 的平均 [email protected]。训练和验证是在各种姿势的地理多样化数据集上完成的,均匀采样。

为了涵盖广泛的客户硬件,我们提供了两种姿势跟踪模型:lite 和 full,它们在速度与质量的平衡上有所不同。对于 CPU 的性能评估,我们使用XNNPACK;对于移动 GPU,我们使用TFLite GPU后端。

基于人体姿势,我们可以构建各种应用程序,例如健身或瑜伽追踪器。例如,我们展示了深蹲和俯卧撑计数器,它们可以自动计算用户统计数据,或验证所执行练习的质量。此类用例可以使用额外的分类器网络或什至使用简单的联合成对距离查找算法来实现,该算法匹配归一化姿势空间中的最近姿势。

我们已经发布了一个版本的BlazePose针对上半身用例MediaPipe在Android,iOS和Python的运行。BlazePose 还将通过即将发布的ML Kit版本中的姿势检测 API提供给更广泛的移动开发人员社区。除了移动域,我们还预览了基于 Web 的浏览器内版本。我们希望为更广泛的研究和开发社区提供这种人体姿势感知功能将导致创造性用例的出现,刺激新的应用程序和新的研究途径。

我们计划通过更强大和更稳定的跟踪将这项技术扩展到更多种类的人体姿势和活动。在随附的模型卡中,我们详细说明了预期用途、限制和模型公平性,以确保这些模型的使用符合Google 的 AI 原则。我们相信,发布这项技术可以为整个研究和开发人员社区的成员提供新的创意和应用的动力。我们很高兴看到您可以用它构建什么!