推出 BlazePose:实现设备端实时人体姿态追踪

原标题:推出 BlazePose:实现设备端实时人体姿态追踪

文 / Valentin Bazarevsky 和 Ivan Grishchenko,研究工程师,Google Research

  • 全身姿态控制

    https://blog.google/technology/ai/move-mirror-you-move-and-80000-images-move-you/

全身姿态控制

https://blog.google/technology/ai/move-mirror-you-move-and-80000-images-move-you/

推出 BlazePose:实现设备端实时人体姿态追踪

推出 BlazePose:实现设备端实时人体姿态追踪

推出 BlazePose:实现设备端实时人体姿态追踪

展开全文

BlazePose 在健身和舞蹈应用上的示例

今天,我们推出一种全新人体姿态感知方法: BlazePose,我们已在 CVPR 2020 的 CV4ARVR 研讨会上进行过 介绍。我们的方法采用机器学习 (ML),从单帧画面推断人体的 33 个 2D 关键点提供人体姿态追踪。相较于当前基于标准 COCO 拓扑的姿态模型,BlazePose 可以精确定位更多关键点,因此特别适合于健身应用。此外,当前最前沿 (SOTA) 的方法主要依靠强大的桌面环境进行推理,而我们的方法通过 CPU 推理在手机端实现了实时性能。如果利用 GPU 推理,BlazePose 可以实现超实时性能,从而运行后续的 ML 模型,如面部或手部追踪。

  • BlazePose https://solutions.mediapipe.dev/pose
  • 介绍 https://arxiv.org/abs/2006.10204

推出 BlazePose:实现设备端实时人体姿态追踪

推出 BlazePose:实现设备端实时人体姿态追踪

MediaPipe 中的上半身 BlazePose 模型

拓扑网络

人体姿态的当前标准是 COCO 拓扑,由横跨躯干、手臂、腿部和面部的 17 个关键点组成。不过,COCO 关键点只能定位脚踝和腕部的点,缺乏手和脚的比例和方向信息,而这些信息对健身和舞蹈等应用至关重要。因此,必须加入更多关键点,来用于手、脸或脚等特定域姿势预测模型的下游应用。

在 BlazePose 中,我们提供了 33 个人体关键点的新拓扑,这是 COCO、 BlazeFaceBlazePalm拓扑的超集 (Superset)。这样一来,我们可以仅从姿势预测中确定与脸部和手部模型一致的身体语义信息。

  • BlazeFace https://google.github.io/mediapipe/solutions/face_detection
  • BlazePalm https://google.github.io/mediapipe/solutions/hands

推出 BlazePose:实现设备端实时人体姿态追踪

BlazePose 33 个关键点拓扑(COCO 绿色)

概览:姿态追踪的 ML 流水线

姿势预测利用了的两个步骤:。流水线使用检测器首先定位帧内的姿态兴趣区域 (ROI)。追踪器随后根据此 ROI 预测所有 33 个姿态关键点。请注意,在视频用例中,检测器仅在第一帧上运行。后续帧将根据前一帧的姿态关键点得出 ROI,如下所述。

推出 BlazePose:实现设备端实时人体姿态追踪

人体姿势预测流水线概览

通过扩展 BlazeFace 进行姿态检测

为了实现由姿态检测和追踪模型组成的完整 ML 流水线的实时性能,每个组件都必须足够快,达到每帧仅使用几毫秒的程度。要实现此目标,对神经网络来说,我们发现关于躯干位置的最强信号是人的脸部(由于其高对比度特征和相对较小的外观变化)。因此,我们假设单人样例中头部应当可见,这个很强的先验假设(但对许多移动和网页应用有效)可以实现快速轻便的姿态检测器。

  • BlazeFace https://arxiv.org/abs/1907.05047

与从预测关键点中得出 ROI 的 和 追踪流水线相比,对于人体姿态追踪,我们明确预测了两个额外的 虚拟 关键点,将人体中心、旋转和比例构建为一个圆。

受达芬奇的《维特鲁威人》所启发,我们预测了人的臀部中点、外接整个人的圆的半径以及连接肩部和臀部中点的直线的倾斜角度。这样一来,即使是非常复杂的情况,比如特定的瑜伽体式,也能得到一致的追踪。下图说明了这种方法。

推出 BlazePose:实现设备端实时人体姿态追踪

维特鲁威人通过 BlazePose 检测器预测的两个虚拟关键点以及脸部边界框进行对齐

追踪模型

流水线姿势预测组件预测全部 33 个人体关键点的位置,每个关键点具有三个自由度( x 、 y 位置和可见度),额外加上上述 两个虚拟对齐关键点 。与当前采用计算密集型热力图预测的方法不同,我们的模型采用回归方法,由所有关键点的组合热力图/偏移预测 监督 ,如下所示:

推出 BlazePose:实现设备端实时人体姿态追踪

追踪网络架构:热力图监督回归

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

下表为不同训练策略产生的模型质量的消融研究。作为评估指标,我们使用 20% 容差的正确点百分比 (PCK@0.2)(我们假设如果 2D 欧几里得误差小于相应人体躯干尺寸的 20%,则可以正确检测到该点)。为了获得人类基线,我们要求注解者重复注解几个样本,并获得 97.2 的平均 PCK@0.2。训练和验证已在多种姿态的均匀采样的多样化数据集上完成。

推出 BlazePose:实现设备端实时人体姿态追踪

为了涵盖广泛的客户硬件,我们提供了两种姿态追踪模型:精简版和完整版,二者在速度与质量的平衡上有所区别。对于 CPU 上的性能评估,我们使用 XNNPACK;对于移动 GPU,我们使用 TFLite GPU后端。

  • XNNPACK https://github.com/google/XNNPACK
  • TFLite GPU https://tensorflow.google.cn/lite/performance/gpu

推出 BlazePose:实现设备端实时人体姿态追踪

应用

基于人体姿态,我们可以构建各种应用,比如健身或瑜伽追踪器。以深蹲和俯卧撑计数器为例,这两种计数器可以自动统计用户数据或验证运动的质量。这样的用例可以使用额外的分类器网络来实现,甚至可以使用简单的联合逐对距离查找算法,在归一化姿态空间中匹配最接近的姿态。

推出 BlazePose:实现设备端实时人体姿态追踪

根据检测到的身体姿态计数的运动次数,左图:深蹲;右图:俯卧撑

结论

我们已发布适用于 Android、iOS 和 Python 上运行的 MediaPipe上半身用例的 BlazePose版本。BlazePose 还将在即将发布的 ML Kit中通过 Pose detection API 提供给更广泛的移动开发者社区。除了移动领域,我们还开放了 基于网络的浏览器内预览版本。我们希望将这种人体姿态感知功能提供给更广泛的研究和开发社区后,能够催生出创新用例,刺激新的应用和新的研究途径。

我们计划将这项技术以更强大、更稳定的追踪功能扩展到更多种类的人体姿势和活动。在随附的 模型说明卡 中,我们详细说明了预期用途、限制和模型的公平性,以确保这些模型的使用符合 Google 的 AI 原则。我们相信,这项技术可以为广大的研究和开发社区成员提供新的创意并推动新的应用。我们期待您的构建成果!

推出 BlazePose:实现设备端实时人体姿态追踪

推出 BlazePose:实现设备端实时人体姿态追踪

BlazePose 在瑜伽用例上的结果

致谢

特别感谢与我们一起研究技术的所有团队成员:Fan Zhang、Artsiom Ablavatski、Yury Kartynnik、Tyler Zhu、Karthik Raveendran、Andrei Vakunov、Andrei Tkachenka、Marat Dukhan、Raman Sarokin、Tyler Mullen、Gregory Karpiak、Suril Shah、Buck Bourdon、Jiuqiang Tang、Ming Guang Yong、Chuo-Ling Chang、Juhyun Lee、Michael Hays、Camillo Lugaresi、Esha Uboweja、Siarhei Kazakou、Andrei Kulik、Matsvei Zhdanovich 和 Matthias Grundmann。

如果您想详细了解 MediaPipe 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

0 条评论

目前没有人发表评论

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。