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

在增强现实、手语识别、全身姿态控制以及量化周期循环等领域中,视频中的姿势预测可以将数字内容和信息叠加到物理世界,也可由此构成瑜伽、舞蹈和健身等应用的基础功能。健身应用的姿势预测尤其具有挑战性:由于运动时种类繁多身体姿态(如数百种瑜伽体式)、自由度很高、可能存在遮挡物(如从摄像头看到身体或其他物体遮挡四肢)以及各式服装或装饰等。

  • 手语识别
    https://youtu.be/N0Vm0LXmcU4

  • 全身姿态控制
    https://blog.google/technology/ai/move-mirror-you-move-and-80000-images-move-you/

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

MediaPipe 中的上半身 BlazePose 模型

拓扑网络

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

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

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

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

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

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

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

人体姿势预测流水线概览

通过扩展 BlazeFace 进行姿态检测

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

受亚毫秒级 BlazeFace 模型启发,我们训练了一个人脸检测器作为姿态检测器的代理。请注意,这个模型只能检测在一帧图像内人的位置,而不能用于识别个人。

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

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

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

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

追踪模型

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

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

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

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

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

  • XNNPACK
    https://github.com/google/XNNPACK

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

应用

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

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

结论

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

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

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 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

  • MediaPipe (或点击阅读原文)
    http://mediapipe.dev

  • BlazePose
    https://solutions.mediapipe.dev/pose

  • ML Kit 
    https://developers.google.com/ml-kit/

  • Pose detection API 
    https://developers.google.com/ml-kit/early-access/pose-detection

  • 基于网络的浏览器内预览版本
    https://viz.mediapipe.dev/demo/pose_tracking

  • 模型说明卡
    https://mediapipe.page.link/blazepose-mc

  • AI 原则
    https://www.blog.google/technology/ai/ai-principles/

更多 AI 相关阅读:

  • SpineNet:通过神经架构搜索发现的全新目标检测架构

  • 推出 MediaPipe Iris: 不受限的虹膜跟踪和深度估计

  • 为了让“对口型”更有意思,我们做了个网页小游戏……

  • 快门背后的机器学习:实时 HDR+ 和双重曝光控制

  • 哪里找资料、报错怎么办?TensorFlow 工程师亲自答疑!

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

  1. 项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人

    本文已在[飞桨PaddlePaddle]公众号平台发布,详情请戳链接:项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人 皮影戏是一种以兽皮或纸板做成的人物剪影以表 ...

  2. Tensorflow Lite人体姿势跟踪功能上线:基于PosNet的实时人体姿态估计

    点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 选自medium 作者:TensorFlow 机器之心编译 参与: ...

  3. 实时人体姿态估计!Efficient-HRNet:更快!更强!!

    作者 | 小书童 编辑 | 集智书童 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[姿态估计]技术交流群 许多新兴智能物联网应用对轻 ...

  4. 【人体姿态追踪】Pose Flow: Efficient Online Pose Tracking 【解读】

    工作组:上交卢老师团队 发表处:BMVC 开源代码:https://github.com/YuliangXiu/PoseFlow 参考博客:https://blog.csdn.net/m0_37644 ...

  5. 深度学习3D 人体姿态估计面临的问题和挑战

    在 3D 人体姿态估计中,学者们致力于研究基于单目 RGB 视频的 3D 人体姿态估计,这是因为目前单目 RGB 摄像头应用广泛.价格低廉,在人们日常使用的手机.电脑均配备有摄像头,因此该技术有着广大 ...

  6. Facebook提出DensePose数据集和网络架构:可实现实时的人体姿态估计

    https://baijiahao.baidu.com/s?id=1591987712899539583 选自arXiv 作者:Rza Alp Güler, Natalia Neverova, Ias ...

  7. ROHM | 开发出数十毫瓦超低功耗的设备端学习AI芯片,无需云服务器、在设备端即可实时预测故障

    ROHM开发出一款设备端学习*AI芯片(配备设备端学习AI加速器的SoC),该产品利用AI(人工智能)技术,能以超低功耗实时预测内置电机和传感器等的电子设备的故障(故障迹象检测),非常适用于IoT领域 ...

  8. 【MediaPipe】(2) AI视觉,人体姿态关键点实时跟踪,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成人体姿态关键点的实时跟踪检测,先放张图看效果,FPS值为17,右下输出框为32个人体关键点的xy坐标. 有需要的可以使用 cv2.Video ...

  9. CV之MobiLenet:基于openpose利用CMU/MobilenetV2算法实现对多人体姿态(2019湖人勒布朗詹姆斯扣篮)实时估计检测

    CV之MobiLenet:基于openpose利用CMU/MobilenetV2算法实现对多人体姿态(2019湖人勒布朗詹姆斯扣篮)实时估计检测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 ...

最新文章

  1. 爱加密Android APk 原理解析
  2. 七十九、深度和广度优先搜索算法
  3. 高并发场景下的缓存有哪些常见的问题?
  4. phison主控ps3111量产工具_从固态硬盘拆解看门道 深入解读闪存编号和主控容量...
  5. Flutter Stack 帧布局,层叠堆放
  6. Bailian3713 外星人翻译用数字转换模块【递归+映射】
  7. 【树状数组 思维题】luoguP3616 富金森林公园
  8. 博客开通了-里面有秘密哦
  9. 【暂更】分享亲测有效的那些实用「神器」!(网站/软件/小技巧)
  10. html视频全套教程,用Dreamweaver讲解html全套视频教程分享
  11. GokeAudio是一款简约小巧的开源安卓SIP软电话客户端
  12. 数据基础设施创新如火如荼,主要方向有哪些(下)
  13. PEG 动态选股策略
  14. 计算机网络运输层的简单总结与思考
  15. dm_svc.conf文件介绍
  16. 最全面的挤出模具知识汇总!收藏收藏吧!!!
  17. X2000 halley5开发板,buildroot编译image
  18. EBS 退货单无法退账,VALIDATE_RMA_LOT_QUANTITIES_ERROR
  19. 汽车类稿件撰写:介绍一款汽车的稿子怎么写?
  20. 微信小程序开发之——婚礼邀请函-项目初始化(4.2)

热门文章

  1. 微信小程序请求头header_微信小程序开发:http请求
  2. 第7章第23节:双图排版:两张图片的错位叠加 [PowerPoint精美幻灯片实战教程]
  3. 计算机系统的主要部件和功能,《计算机系统的组成》教案
  4. PhotoShopCS6从入门到精通--笔记
  5. 机器学习领域权威会议与期刊整理
  6. 线程死锁、锁死、饥饿、活锁讲解
  7. 基于主从博弈的智能小区电动汽车充电管理及代理商定价策略
  8. 【一起学Rust | 框架篇 | Frui框架】rust一个对开发者友好的GUI框架——Frui
  9. SANGFOR V批N_v7.0如何开启硬件特征码认证
  10. Qt数据导出csv防止科学记数法