一、实验目的
本节视频的目的是了解MediaPipe开发框架的用途及流程,并掌握基于MediaPipe Hands实现手部检测的方法。
二、实验原理
MediaPipe
MediaPipe是⼀款由Google开发并开源的数据流处理机器学习应⽤开发框架。它是⼀个基于图的数据处理管线,⽤于构建使⽤了多种形式的数据源,如视频、⾳频、传感器数据以及任何时间序列数据。
MediaPipe是跨平台的,可以运⾏在嵌⼊式平台,移动设备(iOS和Android),⼯作站和服务器上,并⽀持移动端GPU加速。 MediaPipe为实时和流媒体提供跨平台、可定制的ML解决⽅案。
MediaPipe 的核⼼框架由 C++ 实现,并提供 Java 以及 Objective C 等语⾔的⽀持。MediaPipe 的主要概念包括数据包(Packet)、数据流(Stream)、计算单元(Calculator)、图(Graph)以及⼦图(Subgraph)。
MediaPipe特点
(1)端到端加速:内置的快速ML推理和处理即使在普通硬件上也能加速。
(2)⼀次构建,随时随地部署:统⼀解决⽅案适⽤于Android、iOS、桌⾯/云、web和物联⽹。
(3)即⽤解决⽅案:展⽰框架全部功能的尖端ML解决⽅案。
(4)免费开源:Apache2.0下的框架和解决⽅案,完全可扩展和定制。
MediaPipe Hands
MediaPipe Hands是⼀款⾼保真的⼿和⼿指跟踪解决⽅案。它利⽤机器学习(ML)从⼀帧中推断出21个⼿的3D坐标。
在对整个图像进⾏⼿掌检测后,根据⼿部标记模型通过回归对检测到的⼿区域内的21个3D⼿关节坐标进⾏精确的关键点定位,即直接坐标预测。该模型学习⼀致的内部⼿姿势表⽰,甚⾄对部分可⻅的⼿和⾃我遮挡也具有鲁棒性。
为了获得地⾯真实数据,⽤了21个3D坐标⼿动注释了约30K幅真实世界的图像(从图像深度图中获取Z值,如果每个对应坐标都有Z值)。为了更好地覆盖可能的⼿部姿势,并对⼿部⼏何体的性质提供额外的监督,还绘制了各种背景下的⾼质量合成⼿部模型,并将其映射到相应的3D坐标。

三、实验设备
本实验中使用的软件为VMware17+Ubuntu18.04.4 和串口调试工具Xshell。


本实验中使用的是TL3568-PlusTEB实验箱,所需的配件为Micro SD卡、Type-C线、电源、USB OV5640摄像头和网线。


四、操作现象
硬件连接
(1)将Ubuntu系统启动卡插至Micro SD卡槽。
(2)使用Type-C线连接USB TO UART2调试串口到PC机。
(3)将实验箱ETH0 RGMII网口(COM21)通过网线连接至路由器。
(4)连接实验箱电源,先不要上电。
(5)将USB摄像头连接到实验箱的USB2.0 HOST。

软件操作
(1)先在设备管理器查看串口的端口号;
(2)再设置串口调试工具,波特率设置为1500000,点击连接,在Xshell调试终端会显示连接成功。
(3)连接成功后,拨动实验箱的电源开关,将实验箱上电。
(4)系统启动成功后,输入账户密码登录即可(账密均为:tronlong)
(5)登录成功后,查询实验箱的网口地址。

拷贝文件
我们先打开Ubuntu,将Demo文件夹拷贝到RK3568目录下。
"Ctrl+Alt+T"打开控制台,执行命令将文件拷贝至实验箱文件系统(根据实验箱实际IP地址修改命令)。

运行程序
在串口调试窗口执行命令,启动开发环境
在网页输入地址,即可打开登录界面 (根据实际IP地址修改网页地址)。
输入密码:tronlong,登录。
在程序目录,双击打开程序,点击重新运行程序。
等待右上角的进度饼图变白,程序运行完成。
在程序最下方,会显示运行结果。
实时显示摄像头采集的图像信息。对采集的图像进⾏⼿掌检测。

