MediaPipe之人体关键点检测>>>BlazePose论文精度

news2024/11/27 22:38:50

BlazePose: On-device Real-time Body Pose tracking

BlazePose:设备上实时人体姿态跟踪

论文地址:[2006.10204] BlazePose: On-device Real-time Body Pose tracking (arxiv.org)

主要贡献:

(1)提出一个新颖的身体姿态跟踪解决方案和一个轻量级的身体姿态估计神经网络,同时使用了热图(heatmap)和对关键点坐标的回归。

(2)基于堆叠沙漏结构(the stacked hourglass architecture),并使用编码器-解码器网络架构来预测所有关节的热图,然后使用另一个编码器直接回归到所有关节的坐标。

(3)在推断过程中可以丢弃热图分支,使其足够轻便,可以在手机上运行,FPS达到30+。

目录

一、摘要

二、介绍

三、模型架构和管道(Pipeline)设计

(1)推理管道

(2)人员探测器

(3)Topology

(4)数据集

(5)神经网络架构

(6)对齐和遮挡增强

四、实验

五、应用


一、摘要

我们提出了BlazePose,一种用于人体姿态估计的轻量级卷积神经网络架构,用于在移动设备上进行实时推理。在推理过程中,该网络为单个人生成33个身体关键点,并在Pixel2手机上以每秒30帧以上的速度运行。这使得它特别适合实时用例图,如健身跟踪和手语识别。我们的主要贡献包括一个新颖的身体姿态跟踪解决方案和一个轻量级的身体姿态估计神经网络,它同时使用了热图(heatmap)和对关键点坐标的回归。

二、介绍

从图像或视频中进行人体姿态估计在各种应用中起着核心作用,如健康跟踪、手语识别和手势控制。这项任务是具有挑战性的,由于各种各样的姿势,许多自由度和遮挡。最近的工作《Deephigh-resolution representation learning for human pose estimation》《Pifpaf:Composite fields for human pose estimation》在位姿估计方面取得了显著的进展。常用的方法是为每个关节生成热图,同时为每个坐标细化偏移量。虽然这种热图的选择以最小的开销扩展到多个人,但它使单个人的模型比适用于手机上的实时推断大得多。在本文中,我们解决了这个特殊的用例,并展示了模型在几乎没有质量下降的情况下的显著加速。

与基于热图的技术相比,基于回归的方法虽然计算量较小,可扩展性强,但试图预测平均坐标值,往往无法解决潜在的歧义。《Stacked hour-glass networks for human pose estimation》的研究表明,堆叠沙漏结构(the stacked hourglass architecture)可以显著提高预测的质量,即使参数数量较少。在我们的工作中扩展这个想法,并使用编码器-解码器网络架构来预测所有关节的热图,然后使用另一个编码器直接回归到所有关节的坐标。我们工作背后的关键见解是,在推断过程中可以丢弃热图分支,使其足够轻便,可以在手机上运行。

三、模型架构和管道(Pipeline)设计

(1)推理管道

图1 推理管道

在推理过程中,我们使用了一个检测器跟踪器setup(见图1),它在各种任务上表现出优异的实时性能,例如 hand landmark pre-diction《On-device, real-timehand tracking with mediapipe》AND dense face landmark prediction《Real-time facial surface ge-ometry from monocular video on mobile gpus》。我们的管道由一个轻量级的身体姿态探测器和一个姿态跟踪器网络组成。跟踪器预测关键点坐标、当前帧中人物的存在以及当前帧的细化感兴趣区域。当跟踪器指示没有人类在场时,我们在下一帧重新运行检测器网络。

(2)人员探测器

大多数现代目标检测解决方案的最后一个后处理步骤都依赖于非极大值抑制( NMS )算法。这对于自由度较少的刚性物体效果较好。然而,该算法适用于像人类那样包含高度关节化姿态的场景,例如人们挥手或拥抱。这是因为对于NMS算法,多个模糊框满足交并比( IoU )阈值。为了克服这一限制,我们专注于检测一个相对僵硬的身体部分,如人体面部或躯干的边界框。我们观察到,在很多情况下,神经网络关于躯干位置的最强信号是人的面部(因为它具有高对比度的特征和较少的外观变化)。为了使这样的人物检测器快速轻量级,我们使强而有效的AR(增强现实)应用程序,假设在我们的单人用例中,人物的头部应该始终可见。因此,我们使用快速的设备上人脸检测器《Blaze-face: Sub-millisecond neural face detection on mobile gpus》作为人员检测器的代理。

 图2 维特鲁威人通过我们的检测器与人脸检测边界框进行对齐

这个人脸检测器预测额外的个人特异性对齐参数:人的臀部之间的中点,环绕整个人的圆的大小,以及倾斜的(两肩中点和臀中点连线之间的夹角)。

 (3)Topology

图3 33个关键点拓扑

我们提出了一种新的拓扑结构,使用人体上的33个点,采用了BlazeFace、BlazePalm和Coco使用的超集。这使得我们能够与各自的数据集和推理网络保持一致。

与OpenPose和Kinect的Topologies不同,我们仅使用面部、手部和脚部的最少数量的关键点来估计后续模型感兴趣区域的旋转、大小和位置。我们使用的拓扑结构如图3所示。其他信息见附录A。

Appendix A. BlazePose keypoint names

0. Nose11. Left shoulder22. Right thumb #2 knuckle
1. Left eye inner12. Right shoulder

23. Left hip

2. Left eye13. Left elbow24. Right hip
3. Left eye outer14. Right elbow25. Left knee
4. Right eye inner15. Left wrist26. Right knee
5. Right eye16. Right wrist27. Left ankle
6. Right eye outer17. Left pinky #1 knuckle28. Right ankle
7. Left ear18. Right pinky #1 knuckle29. Left heel
8. Right ear19. Left index #1 knuckle30. Right heel
9. Mouth left20. Right index #1 knuckle31. Left foot index
10. Mouth right21. Left thumb #2 knuckle32. Right foot index

(4)数据集

基于解决方案需要初始位姿对齐。我们将我们的数据集限制在整个人都可见的情况下,或者在臀部和肩部关键点可以自信地注释的情况下。为了确保模型支持数据集中不存在的严重遮挡,我们使用大量的遮挡模拟增强。我们的训练数据集由60K张单人或少人在场景中常见姿势的图像和25K张单人在场景中进行健身练习的图像组成。这些图像均由人类标注。 

(5)神经网络架构

本系统的姿态估计组件预测所有33个行人关键点的位置,并使用流水线第一阶段提供的行人对齐建议( 3.1节)。

图4 网络架构

我们采用了热图、偏移和回归相结合的方法,如图4所示。我们只在训练阶段使用heatmap和offset loss,并在运行推断之前从模型中删除相应的输出层。因此,我们有效地使用热图来监督轻量级嵌入,然后由回归编码器网络使用。该方法部分受到了Stacked Hourglass方法的启发,但在我们的案例中,我们堆叠了一个微小的基于编码器-解码器热图的网络和一个后续的回归编码器网络。

我们积极利用网络所有阶段之间的跳跃连接,以实现高级和低级功能之间的平衡。然而,来自回归编码器的梯度并没有传播回热图训练的特征(注意图4 中的渐变停止连接)。我们发现这不仅改善了热图的预测,而且大大提高了坐标回归的精度。

(6)对齐和遮挡增强

相关的位姿先验是所提解决方案的重要部分。在增强和训练时的数据准备过程中,我们特意限制了角度、尺度和平移的支持范围。这允许我们降低网络容量,使网络更快,同时需要更少的计算和主机设备上的能量资源。

基于检测阶段或前一帧关键点,我们对齐人,使臀部之间的点位于通过的正方形图像的中心作为神经网络输入。我们估计旋转作为中间臀部和中间肩点之间的直线L,并旋转图像,使L平行于y轴。缩放比例是这样估计的,这样所有的身体点都适合于一个围绕身体的正方形包围盒,如图2所示。除此之外,我们还应用了10%的比例和移位增强,以确保跟踪器处理帧之间的身体运动和扭曲的调整。

图5 上半身情况的结果

为了支持不可见点的预测,我们在训练过程中模拟遮挡(填充不同颜色的随机矩形),并引入一个点可见性分类器,该分类器指示特定点是否被遮挡以及位置预测是否被认为不准确。这允许跟踪一个人,即使是在重要的遮挡情况下,如上半身,或者当大多数人的身体不在场景中时,如图5所示。

四、实验

为了评估模型的质量,我们选择OpenPose《Openpose: Realtime multi-person 2d pose estimation using part affinity fields》作为基线。为此,我们手动注释了两个内部数据集的1000幅图像,每个数据集都有1 - 2人在现场。第一个数据集,称为AR数据集,由各种各样的人类在野外的姿势组成,而第二个数据集只包括瑜伽/健身姿势。对于一致性,我们只使用了MS Coco [ 8 ]拓扑中的17个点进行评估,它是OpenPose和BlazePose的共同子集。作为评价指标,我们使用具有20 %容忍度的正确点百分比( PCK @ 0.2 ) (其中,如果2D Eu - clidean误差小于误差小于相应的每个子的躯干尺寸的20 % ,则要正确检测的点)。为了验证人类基线,我们要求两个注释器独立地重新注释AR数据集,并获得了97.2的平均PCK @ 0.2。

我们训练了两个不同能力的模型:BlazePose Full ( 6.9 MFlop , 3.5M Params)和BlazePoseLite ( 2.7 MFlop , 1.3M Params)。尽管我们的模型在AR数据集上表现出略差于OpenPose模型的性能,但在Yoga / Fitness用例上,BlazePose Full优于OpenPose。同时,BlazePose在单个中间层手机CPU上的执行速度是OpenPose在20个核心桌面CPU上执行速度的25 - 75倍,具体取决于所请求的质量。

 表1 BlazePose vs OpenPose

1. Desktop CPU with 20 cores (Intel i9-7900X)

2. Pixel 2 Single Core via XNNPACK backend

五、应用

我们开发了这个新的、设备上的、单一的个人特异性人体姿态估计模型,以启用各种性能要求的用例,如手语、瑜伽/健身跟踪和AR。此模型可在移动CPU上近实时工作,并可在移动GPU上加速到超实时延迟。由于其33个关键点拓扑与BlazeFace《Blaze-face: Sub-millisecond neural face detection on mobile gpus》和BlazePalm《On-device, real-timehand tracking with mediapipe》一致,因此它可以作为后续手部姿态和面部几何估计《Real-time facial surface ge-ometry from monocular video on mobile gpus.》模型的基础

我们的方法原生地扩展到更多的关键点、3D支持和额外的关键点属性,因为它不是基于热图/偏移图,因此不需要为每个新特性类型添加额外的全分辨率层。

>>> 如有疑问,欢迎评论区一起探讨!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/335877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件操作 -- IO

文章目录文件操作 -- IO文件 :文件路径 :文件的类型java 中的文件操作文件内容的相关操作字节流的读和写操作字符流的读和写操作代码案例代码案例一 :代码案例二 :代码案例三 :文件操作 – IO 文件 : 文件相比大家都不陌生把 , 打…

10 卷积神经网络CNN(基础篇)

文章目录全连接CNN过程卷积过程下采样过程全连接层卷积原理单通道卷积多通道卷积改进多通道总结以及课程代码卷积改进PaddingStride下采样过程大池化层(Max Pooling)简单卷积神经网络的实现课程代码本篇课程来源: 链接部分文本来源参考&#…

LSTM已死,Transformer当立(LSTM is dead. Long Live Transformers! ):上

回想一下在Seq2seq模型中,如何使用Attention。这里简要回顾一下【1】介绍的方法2(并以此为基础展开对Transformer的讨论)。 下图中包含一个encoder(左)和一个decoder(右)。对于decoder来说,给定一个输入,得到输出,如何进一步得到context vector 呢? 我们需要根据和…

网络工程师一定要学会的知识点:OSPF,今天给大家详细介绍

1. OSPF 概念OSPF(Open Shortest Path First 开放式最短路径优先)是一种动态路由协议,属于内部网关协议(Interior Gateway Protocol,简称 IGP),是基于链路状态算法的路由协议。2. OSPF 的运行原理(1)OSPF 的…

后端开发必懂nginx面试40问

什么是Nginx? Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用ngin…

Flink面试题

一 基础篇Flink的执行图有哪几种?分别有什么作用Flink中的执行图一般是可以分为四类,按照生成顺序分别为:StreamGraph-> JobGraph-> ExecutionGraph->物理执行图。1)StreamGraph顾名思义,这里代表的是我们编写…

RabbitMQ安装及配置

目录1.下载和安装1.1 下载1.2. 安装1.3 测试1.4 卸载管理界面2.1 添加用户2.2 创建Virtual Hosts2.3. 设置权限1.下载和安装 1.1 下载 1.下载Erlang的rpm包 RabbitMQ是Erlang语言编写,所以Erang环境必须要有,注:Erlang环境一定要与RabbitMQ…

每天一道大厂SQL题【Day08】

每天一道大厂SQL题【Day08】 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题,以每日1题…

Learning C++ No.7

引言: 北京时间:20223/2/9/22:20,距离大一下学期开学还有2天,昨天收到好消息,开学不要考试了,我并不是害怕考试,考试在我心里,地位不高,可能只有当我挂了,才能…

自媒体人都在用的免费音效素材网站

视频剪辑、自媒体人必备的剪辑音效素材网站,免费下载,建议收藏! 1、菜鸟图库 音效素材下载_mp3音效大全 - 菜鸟图库 菜鸟图库是一个综合性素材网站,站内涵盖设计、图片、办公、视频、音效等素材。其中音效素材就有上千首&#xf…

数学建模学习笔记(20)典型相关分析

典型相关分析概述:研究两组变量(每组变量都可能有多个指标)之间的相关关系的一种多元统计方法,能够揭示两组变量之间的内在联系。 典型相关分析的思想:把多个变量和多个变量之间的相关化为两个具有代表性的变量之间的…

【沁恒WCH CH32V307V-R1开发板读取板载温度实验】

【沁恒WCH CH32V307V-R1开发板读取板载温度实验】1. 前言2. 软件配置2.1 安装MounRiver Studio3. ADC项目测试3.1 打开ADC工程3.2 编译项目4. 下载验证4.1 接线4.2 演示效果5. 小结1. 前言 ADC 模块包含 2 个 12 位的逐次逼近型的模拟数字转换器,最高 14MHz 的输入时…

pandas——plot()方法可视化

pandas——plot()方法可视化 作者:AOAIYI 创作不易,如果觉得文章不错或能帮助到你学习,记得点赞收藏评论哦 在此,感谢你的阅读 文章目录pandas——plot()方法可视化一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤…

Python文件的属性获取,重命名,目录的创建,显示和改变

1. 文件的属性获取 os.stat()函数可以获取文件的属性,该函数会返回一个和系统平台有关的stat_result对象, 具备一组可访问的属性,可以通过 stat_result.attribute 这样的格式来访问各个属性的值。 字 段描 述st_modeinode 保护模式st_inoin…

115.Android 简单的多级树结构列表+正常列表结合使用(RecyclerView)

1.第一步 导入需要用到的依赖库: //RecyclerView implementation com.android.support:recyclerview-v7:28.0.0 //RecyclerAdapter implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.28 //刷新控件 implementation com.scwang.smartrefresh:SmartRefre…

python-QGIS环境配置

系统:win10 QGIS的下载及安装 在QGIS的官网下载安装包进行安装 下载得到QGIS-OSGeo4W-3.22.16-1.msi的安装包,除了安装路径,基本下一步就可以安装了安装完成后打开QGIS程序文件夹,在./QGIS xx.xx/bin/目录下有个python-qgis-ltr.b…

SpringBoot 自定义注解实现涉密字段脱敏

关于数据脱敏,网上的文章都是硬编码规则,比如对身份证,手机号,邮件地址等固定写法脱敏。本文在此基础上,拓展动态从数据库查出涉密关键字执行脱敏操作。数据脱敏:把系统里的一些敏感数据进行加密处理后再返…

【prism】路由事件映射到Command命令

在之前的一篇文章中,我介绍了普通的自定义事件: 【wpf】自定义事件总结(Action, EventHandler)_code bean的博客-CSDN博客_wpf action可以说通过Action和EventHandle,自定义事件是相当的方便简单了。https…

winform开发心得

最近一直在从事winform的开发,每次都是需要从网上查找资料才能对应具体风格要求,现在总结一下。 ui方面可以使用CSkin对应的一套ui,使用步骤 1.在窗口界面,工具箱空白处点击右键,弹出菜单有个”选择项“,点…

ISO7320FCQDRQ1数字隔离器LMG1025QDEETQ1半桥GaN驱动器

1、数字隔离器 DGTL ISO 3000VRMS 2CH 8SOIC型号:ISO7320FCQDRQ1批次:新技术:容性耦合类型:通用隔离式电源:无通道数:2输入 - 侧 1/侧 2:2/0通道类型:单向电压 - 隔离:30…