《BlazePose: On-device Real-time Body Pose tracking》在移动设备端实时人体姿态追踪(2006)

news2024/11/26 0:54:45

BlazePose: On-device Real-time Body Pose tracking

论文地址:https://arxiv.org/pdf/2006.10204.pdf

GoogleBolg:https://ai.googleblog.com/2020/08/on-device-real-time-body-pose-tracking.html

模型下载地址:https://github.com/PINTO0309/PINTO_model_zoo/tree/main/053_BlazePose


姿势估计在视频中起着至关重要的作用,它可以将数字内容和信息覆盖在物理世界的扩增实境、手语识别、全身姿势控制,甚至量化身体锻炼,从而形成瑜伽、舞蹈和健身应用的基础。由于各种可能的姿势(例如数百种瑜伽体式) ,无数的自由度,闭塞(例如身体或其他物体遮挡从相机看到的四肢)以及各种外观或服装,健身应用的姿势估计特别具有挑战性。

在这里插入图片描述

BlazePose,是谷歌在 CVPR 2020 CV4ARVR 研讨会上提出的。该方法通过使用机器学习(ML)框架推断人类的姿态跟踪。与当前基于标准 COCO 拓扑的姿势模型相比,BlazePose 精确地定位了更多的关键点,使其独特地适合于健身应用程序。此外,目前最先进的方法主要依赖于强大的硬件环境进行推理,而该方法能够通过 CPU 推理在移动端上实现了实时性能。如果利用 GPU 推理,BlazePose 可以实现超实时性能,使其能够运行后续的机器学习模型,如人脸或手部跟踪。

在这里插入图片描述

目前人体姿势的标准是 COCO 拓扑结构,它包括横跨躯干、手臂、腿和脸部的17个坐标。然而,COCO 的关键点只局限于踝关节和腕关节,缺乏手和脚的尺度和方向信息,这对于像健身和舞蹈这样的实际应用是至关重要的。包括更多的关键点是至关重要的后续应用领域特定的姿势估计模型,如那些为手,脸,或脚。

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

在这里插入图片描述
对于姿态估计,谷歌利用两步检测器即:跟踪器 ML 流水线。使用检测器,该流水线首先在帧内定位姿态感兴趣区域(ROI)。该跟踪器随后预测所有33个姿势的关键点从这个ROI区域。注意,对于视频用例,检测器仅在第一帧上运行。对于后续的帧,需要从前一帧的姿态关键点得到 ROI,如下图:

在这里插入图片描述

为了实现由姿态检测和跟踪模型组成的完整 ML 流水线的实时性能,每个组件必须非常快,每帧只使用几毫秒。对神经网络而言,关于躯干位置的最强信号是人的面部(由于其高对比度的特征和相对较小的外观变化)。因此,谷歌实现了一个快速和轻量级的姿态检测器,并假设对于其设定的单人用例,头部应该是可检测的。

因此,受到亚毫秒 BlazeFace 模型的启发,训练了一个人脸检测器作为姿态检测器的代理。注意,这个模型只检测一个人在框架中的位置,不能用来识别个人。与从预测的关键点获得 ROI 的 Face Mesh 和 MediaPipeHand 跟踪管道相反,对于人体姿势跟踪,明确预测两个额外的虚拟关键点,它们将人体中心,旋转和缩放描述为一个圆。灵感来自达芬奇的维特鲁威人,预测一个人的臀部中点,一个圆的半径限制整个人,以及连接肩部和臀部中点的线的倾斜角度。这导致了持续的跟踪甚至非常复杂的情况下,如特定的瑜伽体式。下图说明了这种方法。

在这里插入图片描述

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

在这里插入图片描述

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

下表显示了由不同训练策略引起的模型质量的消融研究。作为一个评估指标,使用20% 公差的正确点百分比(PCK@0.2)(假设2D 欧几里得误差小于相应人体尺寸的20% 时,正确点被检测到)。为了获得一个人类基线,要求注释者对几个样本进行冗余注释,得到的平均 PCK@0.2为97.2。训练和验证已完成的地理多样性数据集的各种姿势,均匀采样。

在这里插入图片描述

为了覆盖广泛的客户硬件,谷歌提出了两个姿态跟踪模型: 轻型和全型,它们在速度和质量的平衡上有所区别。对于 CPU 的性能评估,使用 XNNPACK; 对于移动 GPU,使用 TFLite GPU 后端。

在这里插入图片描述

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

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

相关文章

clop勒索软件攻击活动频发,西门子能源中招

自6月初被通报利用MOVEit Transfer服务器中的零日漏洞窃取加密组织数据后,clop勒索软件攻击活动频繁,全球陆续发生了多起clop软件攻击事件。本周,Clop团伙在其数据泄露网站上列出了西门子能源公司的信息,表示该公司的数据被泄露。…

must declare a single constructor

1、异常详细描述 Test ignored.org.junit.platform.commons.PreconditionViolationException: Class [org.bc.offer.datastructure.Stack] must declare a single constructorProcess finished with exit code -12、源码 package org.bc.offer.datastructure;import org.jun…

SUI Token释放计划时间表和几个相关问题

Sui主网于2023年5月3日正式上线,网络原生token SUI用于链上交易、支付gas费用、保护网络以及提供链上流动性。SUI的长期流通总供应量为100亿。在主网上线时,大约有5%的token在流通,其余的将按照下面的图表所示的计划释放,以保持网…

特异性抑制剂:FAPI-4 NH2 ,FAPI4Amine,成纤维细胞活化蛋白 (FAP) 抑制剂连接氨基

编辑来源||陕西新研博美生物科技有限公司小编MISSwu FAPI-4-NH2中FAPI是FAP的特异性抑制剂。在这些FAPI中,含有DOTA配体(FAPI-04)的[68Ga]Ga-DOTA-FAPI-04 PET/CT能显示出良好的体内药代动力学,导致快速kidney清除和注射后10分钟至3小时的低背景活性。 …

JAVA C++的权限区别

访问级别的名称和个数:在C中,有三个访问级别关键字:public、protected和private。而在Java中,有四个访问级别关键字:public、protected、private和默认(没有关键字修饰)。 默认访问级别不同&…

【三层交换机】网络杂谈(16)之三层交换机技术

涉及知识点 什么是三层交换机,三层交换技术的由来,三层交换机,三层交换的应用范例。深入了解三层交换机技术。 原创于:CSDN博主-《拄杖盲学轻声码》,更多内容可去其主页关注下哈,不胜感激 文章目录 涉及知…

SAP-QM质量管理视图字段解析

QM物料授权:如果在物料主记录中输入物料授权组,则系统将检查(在物料基础上)用户是否具有对以上名称对象的授权。如果未输入授权组,则不进行授权检查。要通过授权检查,用户需要 物料授权,其中包含有字段值所表示的相关授权组。 收货处理时间:收货后的加盐时间(天数)如…

深度学习(五)—— 卷积神经网络(CNN)

卷积神经网络(CNN) 1 CNN的组成2 卷积层2.1 卷积的计算2.2 多通道卷积2.3 多卷积核卷积2.4 特征图大小2.5 卷积层 api 实现 3 池化层3.1 最大池化3.2 平均池化 4 全连接层5 CNN的构建5.1 数据加载5.2 数据处理5.3 模型搭建5.4 模型编译5.5 模型训练5.6 模…

Go语言使用net/http实现简单登录验证和文件上传功能

最近再看Go语言web编程,使用net/http模块编写了一个简单的登录验证和文件上传的功能,在此做个简单记录。 目录 1.文件目录结构 2.编译运行 3.用户登录 4.文件上传 5.mime/multipart模拟form表单上传文件 代码如下: package mainimport …

【C语言】递归实战,通过几个例子带你深入走进递归算法

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,这里是君兮_,今天给大家带来一篇递归的实战教学文章,由于递归算法不仅对于初学者十分不易理解并且在我们以后的数据结构中也非常重要。我们今天就通过几个应用递归的实际例子来给…

Apache Doris 在头部票务平台的应用实践:报表开发提速数十倍、毫秒级查询响应

作者|国内某头部票务平台 大数据开发工程师 刘振伟 本文导读: 随着在线平台的发展,票务行业逐渐实现了数字化经营,企业可以通过在线销售、数字营销和数据分析等方式提升运营效率与用户体验。基于此,国内某头部票务平…

【Java】Java核心 81:Git 教程(4)差异比较 版本回退

文章目录 06.GIT本地操作-差异比较目标内容小结 07.GIT本地操作-版本回退目标内容小结 在Git中,可以使用差异比较命令和版本回退命令来查看文件之间的差异并回退到早期的版本。 以下是对这些操作的简要解释: 差异比较:你可以使用git diff命…

本地Linux 部署 Dashy 并远程访问

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 转载自cpolar极点云文章:本地Linux 部署 Dashy 并远程访问 简介 Dashy 是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你…

video-04-videojs配置及使用

videojs是一种轻框架,可以帮我们快速开发一个video视频组件 目录 一、参考资料 二、引入videojs 三、简单了解使用 四、配置项和事件 4.1 常用配置项 4.2 常用事件 4.3 常用方法 4.4 网络状态 4.5 播放状态 4.6 视频控制 五、实例(可直接复制…

升级iOS 17测试版后如何降级?iOS17降级教程

对于已经升级到 iOS 17 测试版的用户,如果在体验过程中,感觉到并不是那么稳定,例如出现应用程序不适配、电池续航下降、功能无法正常启用等问题,想要进行降级操作,可以参考本教程。 降级前注意事项: 1.由于…

Android 自定义手写签字板,签署姓名,签名

各位大佬好又来记笔记了~ 今天要做的是签字板,实现客户签名功能,直接看效果: 逐个进行签字,可以避免连笔导致识别不清问题。就是想要客户一个一个写,认真写~~。 下面方框显示的“王某才” 其实是三张图片,…

【算法题】动态规划中级阶段之不同路径、最小路径和

动态规划中级阶段 前言一、不同路径1.1、思路1.2、代码实现 二、不同路径 II2.1、思路2.2、代码实现 三、最小路径和3.1、思路3.3、代码实现 总结 前言 动态规划(Dynamic Programming,简称 DP)是一种解决多阶段决策过程最优化问题的方法。它…

卸载及安装docker的教程-ubuntu

一、前言 万地高楼平地起~ 二、环境 OS:Ubuntu 20.04 64 bit 显卡:NVidia GTX 2080 Ti CUDA:11.2 三、卸载docker 1、删除docker及安装时自动安装的所有包 apt-get autoremove docker docker-ce docker-engine docker-ce-*for pkg in …

linux -信号量semphore分析

linux -信号量分析 1 struct semaphore和sema_init1.1 struct semaphore1.2 sema_init 2 down3 up4 down_interruptible5 down_killable6 down_timeout7 down_trylock 基于linux-5.15分析,信号量在使用是是基于spin lock封装实现的。 1 struct semaphore和sema_ini…

爬虫入门指南:如何使用正则表达式进行数据提取和处理

文章目录 正则表达式正则表达式中常用的元字符和特殊序列案例 使用正则表达式提取数据案例存储数据到文件或数据库使用SQLite数据库存储数据的示例代码SQLite基本语法创建表格:插入数据:查询数据:更新数据:删除数据:条…