一、mediapipe简介
mediapipe可以被视为谷歌版的onnx,其设计目的在于跨平台部署AI模型,并提供一系列工具来监测不同平台、不同设备运行人工智能模型时的性能表现。
尽管mediapipe已经陆续支持训练自定义模型,但博主更推荐使用Pytorch/Tensorflow训练模型,再通过mediapipei进行部署。正如前文所言,可以把mediapipe当做onnx来使用。
mediapipe支持的平台、解决方案和工具如下。
1、平台
Android、iOS、Python、JavaScript、C++
2、解决方案
(1)视觉任务
对象检测、图像分类、图像分割、交互式分割、手势识别、手部特征点检测、嵌入图片、人脸检测、面部特征检测、姿态特征点检测、人脸风格化、整体特征点检测。
(2)文本任务
文本分类、文本嵌入、语言检测。
(3)音频任务
音频分类。
3、工具
针对计算图和推理管道的可视化工具、推理过程的分析与跟踪工具、模型性能基准测试工具(未推出)。
二、mediapipe官网
在安装和使用mediapipe之前,有必要呈现mediapipe的三个官方网站。由于网站是不断更新的,建议在安装和使用mediapipe之前仔细阅读。
1、软件概览
Home - mediapipe
这个网站实际上就是介绍了mediapipe支持的平台、提供的解决方案和具有的工具。
2、使用指南
MediaPipe 解决方案指南 | Google AI Edge | Google AI for Developers
这个网站提供了在线调用AI模型的功能,可能需要科学上网。除此之外,提供了在不同平台上安装和使用mediapipe的指南。
3、库GitHub
GitHub - google-ai-edge/mediapipe: Cross-platform, customizable ML solutions for live and streaming media.
这个网站指向mediapipe项目源,提供了在不同平台上使用mediapipe的必备资源。
4、案例GitHub
GitHub - google-ai-edge/mediapipe-samples
案例GitHub和库GitHub是两个不同的概念,案例GitHub提供了在不同平台上部署mediapipe的程序,例如提供了在树莓派平台上调用图像分类模型进行推理的程序(用户无需编程)。
三、mediapipe安装
根据相关报道,截止2024年12月,Python已经超过C++成为最受欢迎的编程语言。因此,本篇将以Python为例,说明如何在Windows上安装和使用mediapipe。
本博客的主要阅读对象是刚接触人工智能的新手用户,因此,将尽可能详细地介绍从miniconda的安装到mediapipe的安装。
1、安装miniconda
miniconda是管理Python虚拟环境的一款软件,下载地址如下,注意只需要下载miniconda而不是Anaconda。下载完成后安装即可。
Download Now | Anaconda
2、安装mediapipe
在“开始”的搜索框中输入“miniconda”,然后打开Anaconda Prompt。
在打开的Anaconda Prompt中,输入以下指令,设置为默认镜像源下载。
conda config --add channels defaults
然后,输入以下指令,创建mediapipe环境。
conda create -n mediapipe python==3.12
如果完成mediapipe虚拟环境的创建,将显示以下画面。
使用以下指令,激活mediapipe环境。
conda activate mediapipe
使用以下指令,安装mediapipe。
pip install mediapipe
安装完成后,测试mediapipe是否可用。输入以下指令,如果没有报错,则说明mediapipe已完成安装。
python
import mediapipe as mp
四、mediapipe使用
如前所述,mediapipe提供了一系列示例程序,新手用户可以直接运行这些示例程序,体验不同类型的人工智能任务。
1、下载mediapipe samples
mediapipe samples是官方提供的一系列示例程序,从案例GitHub下载或从本博客绑定资源下载。
GitHub - google-ai-edge/mediapipe-samples
2、下载wget
由于mediapipe samples需要使用到wget工具,需要打开网站下载或从本博客绑定资源下载。
Index of /gnu/wget
如果从网站下载,按照下图选择EXE版本。
下载完成后,将wget.exe复制粘贴到以下地址。
C:\Windows\System32
然后,按下win+R运行cmd,输入wget后,如果出现下图提示,说明wget已经可以正常使用。
3、安装opencv-python
对于视觉任务,mediapipe依赖opencv库,因此,还需要在mediapipe虚拟环境中安装opencv-python。
首先,打开anaconda prompt并激活mediapipe虚拟环境。
然后,输入以下指令安装opencv-python。
pip install opencv-python
安装完成后,无需退出anaconda prompt及mediapipe虚拟环境。
4、启动推理
至此,终于可以使用mediapipe示例程序了!
在mediapipe-samples文件夹中,examples子文件夹存放了多种任务。
接下来,以运行hand_landmarker(手部关键点检测)为例,介绍如何使用mediapipe示例程序。
进入hand_landmarke文件夹,发现一共有5个平台,其中python是在计算机上运行的,raspberry_pi是在树莓派上运行的。由于python子文件夹中使用的是.ipynb格式,配置相应的运行环境比较麻烦,所以使用raspberry_pi文件夹中的程序。
进入raspberry_pi文件夹,右键选中detect.py,选择“复制文件地址”。
在anaconda prompt中粘贴以下指令,注意示例程序的地址应该根据实际情况做修改。
python "C:\Users\71401\Desktop\mediapipe-samples\examples\hand_landmarker\raspberry_pi\detect.py"
如果程序正确运行,系统将弹出一个窗口,此时画面中将显示出手部关键点检测的实时推理结果。
如果要退出推理,在此窗口中按ESC键即可。
不同设备的摄像机默认方向不同,如果发现左右手相反,可以打开detect.py程序,将102行注释掉(或删掉)。注释某行代码,只需在改行代码的开头处添加#符号。
然后保存程序,最后再用上述指令运行,可以发现摄像头的捕捉画面反过来了,并且左右手的识别也发生调整。