[论文评析]MediaPipe Hands: On-device Real-time Hand Tracking, ArXiv,2020

news2025/7/23 17:10:34

MediaPipe Hands: On-device Real-time Hand Tracking

  • 论文信息
  • 简介
  • Mediapipe Hands
    • 手掌检测器BlazePalm Detector
    • 手部骨骼检测Hand Landmark Model
  • 数据集构造
  • 应用
  • References


论文信息

论文题目:MediaPipe Hands: On-device Real-time Hand Tracking
发表:ArXiv,2020
作者信息:Zhang F, Bazarevsky V, Vakunov A, et al. Mediapipe hands: On-device real-time hand tracking[J]. arXiv preprint arXiv:2006.10214, 2020.
Google团队的工作

简介

这篇文章基于Mediapipe框架提出了一种端侧实时手部跟踪的解决方案:只利用单个RGB相机即可预测手部的骨架,可应用于AR,VR等场景中。
效果如下图
在这里插入图片描述

手的检测相比于人脸检测,难点在于
(1)模型必须在各种手的尺寸上工作,而且尺度跨度很大(20倍),并能够检测到闭塞和自闭的手
(2)相比于脸部有高对比度的图案,例如眼睛和嘴巴周围,而手部缺乏这样的特征,因此仅从视觉特征上可靠地检测它们相对困难

Mediapipe Hands

那个该框架是如何解决上述问题的?
作者把手的检测拆分为两步:先检测手掌的位置,然后在进一步检测手部的骨骼关键点。 相比于检测手,检测手掌就非常简单了,通过一个矩形框就可以对手掌位置进行建模, 此外手掌属于小目标, 非极大值抑制NMS在即使是双手自封的情况,如握手也工作良好 。

下图展示了基于Mediapipe的手检测流程图。可以看到有两个并行的分支左边的Hand detection分支用来检测手掌的位置,然后基于检测的结果对frame进行裁剪,再把裁剪的结果送入第二个Hand landmark分支来进一步确定骨骼关键点的位置

值得说明的是:并不需要对每一帧都执行Hand detection, 这样既耗时,耗资源,也没有必要。实际上只需要对第一帧以及场景发生变化时(手消失时)执行Hand detection即可。

在这里插入图片描述
下面对Hand detection和Hand land mark这两个分支分别进行介绍。

手掌检测器BlazePalm Detector

作者使用了类似FPN的变啊默契-解码器架构的特征提取器来实现更大的场景上下文感知,即使对于小对象也是如此。在训练过程中使用Focal loss以支持由高尺度差异导致的大量锚点。
在这里插入图片描述

手部骨骼检测Hand Landmark Model

获得手掌区域以后, 手部地标模型Hand Landmark Model通过回归对检测到的手部区域内的21个2.5D坐标进行精确地标定位。如下图所示,模型的输出由三部分构成
(1)21个由X、Y和相对深度组成的手部地标
(2)表明输入图像中存在手的概率的手标志
(3)手性的二元分类,如左手或右手。

在这里插入图片描述
那么第二,第三部分的输出信息有啥用呢?

先说第二个:
之前提到过,hand detection仅在第一帧或者手消失时才触发, 因此,当手的位置发生很大变化时,依据之前帧hand detection的结果抠出来的手掌肯定有问题,因此这里的hand presence用于产生一个合理对齐的手确实存在于所提供的作物中的事件的概率, 如果这个值低于指定阈值,则触发hand detection来重置tracking (即更新手掌位置信息), 第二张图的一条蓝色虚线对应这一过程。

再来看第三个:
手性是在AR/VR中使用手进行有效互动的另一个重要属性, 因此,开发了一个二元分类头来预测输入的手是左手还是右手。

数据集构造

由于需要训练模型,数据集的构造非常重要。作者总共使用了3种数据集:野生环境下的数据集, 内部收集的手势数据集, 合成数据集。数据集的示例如下图:
在这里插入图片描述
那么数据集与对应任务之间的关系?

对于Palm detector, 仅使用野生环境下的数据集来训练,;

对于Hand landmark detector, 使用所有的数据集来训练;

对于hand presence,选择一个野生环境下的数据集子集作为正面例子,并在不包括注释的手部区域的区域上取样作为负面例子;

对于handedness, 我们对真实世界的图像子集进行手性注释,以提供此类数据。

应用

该手部跟踪解决方案可以应用于收拾识别,AR等众多应用领域,下图是该方案应用与收拾识别的案例。
在这里插入图片描述
该案例中, 在预测的手部骨架的基础上,我们采用一个简单的算法来计算手势,首先,每个手指的状态,如弯曲或直,是通过关节的累积角度来确定的。然后,我们将一组手指的状态映射到一组预定义的手势。这种直接而有效的技术使我们能够以合理的质量估计基本的静态手势。除了静态手势识别,还可以使用地标序列来预测动态手势。

另一个应用是在骨架之上应用AR效果。基于手的AR效果目前享有很高的人气。下图展示了一个霓虹灯风格的手部骨架的AR渲染实例。
在这里插入图片描述

References

1.Zhang F, Bazarevsky V, Vakunov A, et al. Mediapipe hands: On-device real-time hand tracking[J]. arXiv preprint arXiv:2006.10214, 2020.

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

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

相关文章

STM32 IAP相关的FLASH数据读取和跳转

IAP操作一、STM32 FLASH 分区二、BootLoader程序三、UserAPP程序四、Flash数据的读取五、BootLoader到UserAPP的跳转一、STM32 FLASH 分区 以STM32G484RE举例,固件烧录到FLASH的起始地址进行保存,理论上可烧录的最大文件为512Kb,实际项目中固…

动态域名解析

众所周知,如果计算机想参与互联网通讯,无论是作为一台执行资源访问的客户端还是作为一台被访问的资源提供服务器,计算机必须分配一个合法的IP地址。这个地址通常由互联网服务商提供(在中国通常是电信部门) 这种IP地址…

2.JDBC必知必会

文章目录2.0 JDBC2.1 配置单数据源项目一:尝试Spring Boot自动装配数据源创建查看应用程序有哪些bean原理问题项目二:SpringMVC手动配置数据源Spring Boot自动装配原理与数据源相关配置项目三:尝试Spring Boot自动装配参数配置2.2.配置多数据…

基于自适应Sigmoid型函数的内镜图像增强与空间变颜色再现方法

论文题目:Image Enhancement and Space-variant Color Reproduction Method for Endoscopic Images using Adaptive Sigmoid Function 1 摘要 首先,使用YCCBR转换矩阵,将彩色图像分为亮度分量和色度分量,对均匀分布的亮度像素应…

论文笔记:PTR: Prompt Tuning with Rules for Text Classification

Abstract 手动设计大量语言提示麻烦且易出错,而自动生成的提示,在非小样本场景下验证其有效性昂贵且耗时。因此,提示调优以处理多类别分类任务仍然具有挑战。为此,本文提出使用规则进行多类别文本分类提示调优(PTR&…

深入理解Java线程间通信

合理的使用Java多线程可以更好地利用服务器资源。一般来讲,线程内部有自己私有的线程上下文,互不干扰。但是当我们需要多个线程之间相互协作的时候,就需要我们掌握Java线程的通信方式。本文将介绍Java线程之间的几种通信原理。 锁与同步 在…

进程与线程

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

微服务环境搭建

目录 一,微服务介绍 单体架构介绍 垂直应用架构 分布式架构 SOA架构 微服务架构 二,微服务架构简介 三,微服务搭建 模块设计 创建步骤 一,微服务介绍 系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构---&…

【python】bin/dec/hex/bnr进制转换函数及fp32转十六进制

我们的目标是┏ (゜ω゜)☞芯片前端全栈工程师~喵! 前言 不知道为什么,给脚本专栏选的这个logo有种怪怪的感觉(⊙o⊙)… 为方便后续一些脚本工作,将常用的进制转换函数汇总。所有函数均为字符串输入输出,且不加0x、0b等关键字&a…

计算机硬件和软件

文章目录一 计算机硬件1)主板2)显示器3)键盘4)鼠标二 计算机软件(一)系统软件(1)操作系统(2)BIOS(3)设备驱动程序(二&…

K-verse 小型活动来袭!

欢迎来到韩流狂欢节! 我们的韩流活动以为期 2 周的 K-verse 小型活动拉开帷幕! 在 The Sandbox 的众多合作伙伴中,K League、Anicube、Sandbox Network 和 Cube 娱乐都为此次活动打造了独特的体验。从 11 月 24 日开始,玩家总共可…

digitalLogic_逻辑门和基本公式

文章目录refs逻辑闸或逻辑门与或非门反相器和泡泡与非/或非/异或同或/是/蕴含/蕴含非逻辑函数的表示方法及相互转换逻辑表达式化简基本公式异或和同或的常用运算公式refs digital_logic同或和异或的关系_xuchaoxin1375的博客-CSDN博客_异或与同或的关系模2运算_模二除法和CRC循…

彩虹之眼文化集团整体方案设计

彩虹之眼文化集团开业成功必须克服的问题是:既要有轰动的社会效应,又要有实实在在的营业额。而要使两者兼备,就要求助于开业前期的广告渲染,此方案解决的重要问题就是如何在有轰动社会效应的同时又兼具营业佳绩。因此本次公司宣传…

Android8.1 MTK 浏览器下载的apk点击无反应不能安装

最近测试人员发现用原生浏览器下载的apk点击安装时无反应,不能安装。 在/vendor/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/DownloadHandler.java 中,发现下载的apk文件缺少了mime类型,如下图 mimetype null造…

第五章TCP/IP 网络在我们身边

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。个人爱好: 编程,打篮球,计算机知识个人名言:海不辞水,故能成其大;山不辞石…

Ubuntu22.2下C语言编程实现,首次,最佳适应算法

参考目录:1.题目要求2.分析设计3.程序代码4.运行截图5.程序说明1.题目要求 编写C语言程序,模拟实现首次/最佳/最坏适应算法(选择其中之一即可)的内存块分配和回收,要求每次分配和回收后显示出空闲分区和已分配分区的情况。假设初始状态下&am…

SpringBoot整合redis+mysql

SpringBoot整合Redis 测试连接 添加相关依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&qu…

【TFS-CLUB社区 第7期赠书活动】〖从零开始利用Excel与Python进行数据分析 自动化办公实战宝典〗等你来拿,参与评论,即可有机获得

文章目录❤️‍&#x1f525; 赠书活动 - 《从零开始利用Excel与Python进行数据分析 自动化办公实战宝典》❤️‍&#x1f525; 编辑推荐❤️‍&#x1f525; 抽奖方式与截止时间❤️‍&#x1f525; 赠书活动 → 获奖名单❤️‍&#x1f525; 赠书活动 - 《从零开始利用Excel与…

【数据结构】二叉树的前中后序遍历

二叉树的三种遍历1. 创建一棵简单的二叉树1.1 二叉树结构体实现1.2 创造一个二叉树结点的函数1.3 手动创造一棵二叉树2.为什么要遍历&#xff1f;3.最重要的知识&#xff1a;由二叉树引出的子问题分析4.遍历4.1 前序遍历4.2 中序遍历4.3 后序遍历5.总结1. 创建一棵简单的二叉树…

基于springboot车辆充电桩设计与实现的源码+文档

摘 要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;车辆充电桩管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&…