用Python编程识别手势数字

Posted 不加班的程序员丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python编程识别手势数字相关的知识,希望对你有一定的参考价值。

用Python编程识别手势数字

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

image-20210422112313073

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

hand_crops.png

准备工作

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

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

image-20210424155201904.png

编写程序

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

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

hand_landmarks.png

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

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

以上是关于用Python编程识别手势数字的主要内容,如果未能解决你的问题,请参考以下文章

人脸识别和手势识别应用(face++)开发

[Python人工智能] 三十九.VS Code配置Python编程和Keras环境及手写数字识别(基础篇)

[Python人工智能] 三十九.VS Code配置Python编程和Keras环境及手写数字识别(基础篇)

在 Swift 中以编程方式启动手势识别器?

如何以编程方式触发 UIView 的点击手势识别器

以编程方式制作的按钮与 viewController 的手势识别器冲突