1318|14

282

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

【DigiKey创意大赛】手势控制机械臂+6.mediapipe在树莓派上应用 [复制链接]

 
 

前言

Mediapipe是google的一个开源项目,可以提供开源的、跨平台的常用机器学习方案。

mediapipe开发包集成了人脸、眼睛、虹膜、手势、姿态等各种landmark检测与跟踪算法,开源地址:https://google.github.io/mediapipe/

本项目中使用python版本的mediapipe来实现手势识别。

1 环境搭建

参考官方文档安装基于树莓派的mediapipe:https://github.com/googlesamples/mediapipe/tree/main/examples/gesture_recognizer/raspberry_pi

下面对安装方法作简单总结(可以不去看官方推荐流程)。

1.1 使用前提

  • 必须为64位的系统(最好更新到Buster),但是我没有使用Buster,而是用了Debain11的树莓派(bullseye)
  • 能监控到树莓派上摄像头采集的画面(桌面,虚拟桌面或者相机数据流)

1.2 安装

  1. 更新pip
  1. python3 -m pip install pip --upgrade

pip可以使用清华源,速度更快,配置方法参考:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

  1. 安装opencv,mediapipe依赖opencv,所以需要先安装opencv
  1. sudo apt install python3-opencv
  2. sudo pip install opencv-contrib-python
  3. sudo apt-get install -y \
  4. libopencv-core-dev \
  5. libopencv-highgui-dev \
  6. libopencv-calib3d-dev \
  7. libopencv-features2d-dev \
  8. libopencv-imgproc-dev \
  9. libopencv-video-dev
  1. 安装mediapipe
  1. sudo python3 -m pip install mediapipe

2 介绍

手势识别之后会检测出来21个点,每个点分别表示了手中的关键部位,可以通过对关键部位的分析出具体的手势,如下:

3 功能验证

新建一个py文件,输入如下内容,能够运行成功,则表示mediapipe安装成功并且可以运行:

  1. import cv2
  2. import mediapipe as mp
  3. mp_drawing = mp.solutions.drawing_utils
  4. mp_hands = mp.solutions.hands
  5. # 打开视频流
  6. cap = cv2.VideoCapture(0)
  7. # 导入mediapipe手势识别
  8. with mp_hands.Hands(
  9. min_detection_confidence=0.5,
  10. min_tracking_confidence=0.5) as hands:
  11. while cap.isOpened():
  12. success, image = cap.read()
  13. if not success:
  14. print("Ignoring empty camera frame.")
  15. continue
  16. image.flags.writeable = False
  17. image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
  18. results = hands.process(image)
  19. image.flags.writeable = True
  20. image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
  21. if results.multi_hand_landmarks:
  22. for hand_landmarks in results.multi_hand_landmarks:
  23. mp_drawing.draw_landmarks(
  24. image,
  25. hand_landmarks,
  26. mp_hands.HAND_CONNECTIONS)
  27. # 图片镜像
  28. cv2.imshow('MediaPipe Hands', cv2.flip(image, 1))
  29. if cv2.waitKey(1) == 27:
  30. break
  31. cap.release()

树莓派运行mediapipe还是有点勉强,有些卡顿

4 运行结果

运行结果如下,表示成功,如果运行不成功,则根据提示安装必要工具或者库文件:

最新回复

看看时间都花在哪里了?   详情 回复 发表于 2024-1-4 11:51
点赞 关注(1)
 
 

回复
举报

6909

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

用python版本的mediapipe来实现手势识别整不错么

点评

python+mediapipe构建比较简单  详情 回复 发表于 2024-1-2 10:46
 
 
 

回复

717

帖子

0

TA的资源

纯净的硅(高级)

板凳
 

真棒!

看着就科技感十足

 
 
 

回复

4953

帖子

19

TA的资源

版主

4
 
帧率多少啊?我的pi贼卡,最高20帧

点评

没试过帧率,看起来不卡,但是延迟比较高,我手上的动作做完了,树莓派这边会延迟2秒左右显示  详情 回复 发表于 2024-1-2 10:45
 
 
 

回复

7350

帖子

2

TA的资源

版主

5
 

检测手势需要自己去一个点一个点判断吗?

点评

简单的方法就是使用关键点来判断,我就是用的这种方式  详情 回复 发表于 2024-1-2 10:45
 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

6
 
吾妻思萌 发表于 2024-1-2 09:28 帧率多少啊?我的pi贼卡,最高20帧

没试过帧率,看起来不卡,但是延迟比较高,我手上的动作做完了,树莓派这边会延迟2秒左右显示

点评

show个fps看看  详情 回复 发表于 2024-1-2 11:53
 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

7
 
wangerxian 发表于 2024-1-2 09:44 检测手势需要自己去一个点一个点判断吗?

简单的方法就是使用关键点来判断,我就是用的这种方式

点评

关键点是指头吗?  详情 回复 发表于 2024-1-2 11:29
 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

8
 
Jacktang 发表于 2024-1-2 07:50 用python版本的mediapipe来实现手势识别整不错么

python+mediapipe构建比较简单

 
 
 

回复

7350

帖子

2

TA的资源

版主

9
 
hehung 发表于 2024-1-2 10:45 简单的方法就是使用关键点来判断,我就是用的这种方式

关键点是指头吗?

 
 
 

回复

4953

帖子

19

TA的资源

版主

10
 
吾妻思萌 发表于 2024-1-2 09:28
帧率多少啊?我的pi贼卡,最高20帧

没试过帧率,看起来不卡,但是延迟比较高,我手上的动作做完了,树莓派这边会延迟2秒左右显示

show个fps看看

点评

昨晚试了下,确实很低,才5,6左右,只能靠眨眼补帧了  详情 回复 发表于 2024-1-4 09:09
 
 
 

回复

4953

帖子

19

TA的资源

版主

11
 
我又想了下,你这个有延时那咋控制机械臂啊?岂不是一点都不跟手?

点评

开始的,不跟手,所以操作起来有点困难,没办法呀,性能就这样  详情 回复 发表于 2024-1-4 09:10
 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

12
 
吾妻思萌 发表于 2024-1-2 11:53 没试过帧率,看起来不卡,但是延迟比较高,我手上的动作做完了,树莓派这边会延迟2秒左右显示 [/quote] ...

昨晚试了下,确实很低,才5,6左右,只能靠眨眼补帧了

 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

13
 
吾妻思萌 发表于 2024-1-2 14:32 我又想了下,你这个有延时那咋控制机械臂啊?岂不是一点都不跟手?

是的,不跟手,所以操作起来有点困难,没办法呀,性能就这样

点评

看看时间都花在哪里了?  详情 回复 发表于 2024-1-4 11:51
 
 
 

回复

4953

帖子

19

TA的资源

版主

14
 
hehung 发表于 2024-1-4 09:10 是的,不跟手,所以操作起来有点困难,没办法呀,性能就这样

看看时间都花在哪里了?

点评

主要是mediapipe计算会消耗一些时间  详情 回复 发表于 2024-1-8 09:44
 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

15
 
吾妻思萌 发表于 2024-1-4 11:51 看看时间都花在哪里了?

主要是mediapipe计算会消耗一些时间

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表