手部检测

1、简介

MediaPipe是⼀款由Google开发并开源的数据流处理机器学习应⽤开发框架。它是⼀个基于图的数据处理管线,⽤于构建使⽤了多种形式的数据源,如视频、⾳频、传感器数据以及任何时间序列数据。MediaPipe是跨平台的,可以运⾏在嵌⼊式平台(树莓派等),移动设备(iOS和Android),⼯作站和服务器上,并⽀持移动端GPU加速。 MediaPipe为实时和流媒体提供跨平台、可定制的ML解决⽅案。MediaPipe 的核⼼框架由 C++ 实现,并提供 Java 以及 Objective C 等语⾔的⽀持。MediaPipe 的主要概念包括数据包(Packet)、数据流(Stream)、计算单元(Calculator)、图(Graph)以及⼦图(Subgraph)。

MediaPipe的特点:

2、MediaPipe Hands

MediaPipe Hands是⼀款⾼保真的⼿和⼿指跟踪解决⽅案。它利⽤机器学习(ML)从⼀帧中推断出21个⼿的3D坐标。

在对整个图像进⾏⼿掌检测后,根据⼿部标记模型通过回归对检测到的⼿区域内的21个3D⼿关节坐标进⾏精确的关键点定位,即直接坐标预测。该模型学习⼀致的内部⼿姿势表⽰,甚⾄对部分可⻅的⼿和⾃我遮挡也具有鲁棒性。

为了获得地⾯真实数据,⽤了21个3D坐标⼿动注释了约30K幅真实世界的图像,如下所⽰(从图像深度图中获取Z值,如果每个对应坐标都有Z值)。为了更好地覆盖可能的⼿部姿势,并对⼿部⼏何体的性质提供额外的监督,还绘制了各种背景下的⾼质量合成⼿部模型,并将其映射到相应的3D坐标。

image-20240125165110479

3、手部检测

3.1、启动

进入docker容器后,终端输入,

image-20240125184139990

3.2、代码解析

进入docker容器后,该功能源码的位置位于,