用Python编程识别手势数字

用Python编程识别手势数字

谷歌出了一个开源的、跨平台的、可定制化的机器学习解决方案工具包,给在线流媒体(当然也可以用于普通的视频、图像等)提供了机器学习解决方案。感兴趣的同学可以打开这个网址了解详情:mediapipe.dev/

它提供了手势、人体姿势、人脸、物品等识别和追踪功能,并提供了C++、Python、JavaScript等编程语言的工具包以及iOS、Android平台的解决方案,今天我们就来看一下如何使用MediaPipe提供的手势识别来写一个Python代码识别手势中的数字:0-5 。

用Python编程识别手势数字_第1张图片

准备工作

电脑需要安装Python3,建议安装Python3.8.x的版本。除此之外,还需要安装Opencv-Python、MediaPipe以及numpy几个工具包,可以使用pip进行安装:

用Python编程识别手势数字_第2张图片

准备6张图片,分别是6张手的图片。

用Python编程识别手势数字_第3张图片

编写程序

  1. 编写一个handutil.py模块,这个handutil模块有一个HandDetector类,提供了检测手势、获取手势数据的方法。代码如下,详细解释看代码注释:

用Python编程识别手势数字_第4张图片

  1. 编写另一个fingercount.py代码,在这个代码中,调用handutil.py的HandDetector类提供的方法,获取手势数据,每个手势数据由3个数字组成:id, x, y,分别代表手势中某个点以及这个点的x\y坐标位置。下图是手势识别中每个id对应手的部位说明。

用Python编程识别手势数字_第5张图片

从上图可知:4, 8, 12, 16, 20分别代表大拇指、食指、中指、无名指和小指的指尖。完整代码如下:

用Python编程识别手势数字_第6张图片

运行代码,我们可以看到能够识别手势中的数字,并显示对应的图片和数字了

你可能感兴趣的:(php,node.js,python,c++,c语言)