当前位置:   article > 正文

AI项目一:mediapipe测试_谷歌 mediapipe example

谷歌 mediapipe example

若该文为原创文章,转载请注明原文出处。

一. 引言


MediaPipe 是一款由 Google Research 开发并开源的多媒体机器学习模型应用框架。在谷歌,一系列重要产品,如 YouTube、Google Lens、ARCore、Google Home 以及 Nest,都已深度整合了 MediaPipe。MediaPipe大有用武之地,可以做物体检测、自拍分割、头发分割、人脸检测、手部检测、运动追踪,等等。基于此可以实现更高级的功能。

更多详细可以查看官方文档地址MediaPipe  |  Google for Developers

mediaipe提供了很多功能,包含目标识别,骨骼识别,图像分割,人脑识别检测等功能

官方也提供了基于Android,python和web的例子,这里测试是基于python

这里测试的是手指骨骼识别,模型包检测21个手关节的关键点定位 检测到的手区域内的坐标。

 二、环境搭建

1、创建虚拟环境(conda环境搭建,请参考前面文章)

conda create -n mediapipe python=3.8

2、激活

conda activate mediapipe

3、安装mediapipe

  1. pip install mediapipe
  2. pip install mediapipe -i https://pypi.douban.com/simple

4、安装OpenCV

pip install opencv-python

5、安装OpenCV拓展

pip install opencv-contrib-python

6、安装pycharm

pycharm使用的是社区版本,喜欢使用指令的,可以不用安装

安装后界面

7、pycharm配置环境

导入虚拟环境 

确定后,会发现,pycharm会把环境切换成创建的虚拟环境。 

这里有个要注意的,如果终端显示的不是我们的虚拟环境,我这边显示的是base需要修改

修改Terminal的Application Settings改成powershell.exe

三、测试

程序参考Example:Gesture recognition guide for Python  |  MediaPipe  |  Google for Developers

代码流程

  1. 1、导入库
  2. 2、使用cv2打开摄像头
  3. 3、使用mediapipe推理摄像头捕捉到的图片
  4. 4、显示结果

源代码

  1. import sys
  2. import cv2
  3. import mediapipe as mp
  4. mp_face_detection = mp.solutions.face_detection
  5. mp_drawing = mp.solutions.drawing_utils
  6. mp_drawing = mp.solutions.drawing_utils
  7. mp_hands = mp.solutions.hands
  8. # For webcam input:
  9. cap = cv2.VideoCapture(0)
  10. with mp_hands.Hands(
  11. min_detection_confidence=0.9,
  12. min_tracking_confidence=0.9) as hands:
  13. while cap.isOpened():
  14. success, image = cap.read()
  15. if not success:
  16. print("Ignoring empty camera frame.")
  17. # If loading a video, use 'break' instead of 'continue'.
  18. continue
  19. # Flip the image horizontally for a later selfie-view display, and convert
  20. # the BGR image to RGB.
  21. image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
  22. # To improve performance, optionally mark the image as not writeable to
  23. # pass by reference.
  24. image.flags.writeable = False
  25. results = hands.process(image)
  26. # Draw the hand annotations on the image.
  27. image.flags.writeable = True
  28. image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
  29. if results.multi_hand_landmarks:
  30. for hand_landmarks in results.multi_hand_landmarks:
  31. mp_drawing.draw_landmarks(
  32. image, hand_landmarks, mp_hands.HAND_CONNECTIONS)
  33. cv2.imshow('MediaPipe Hands', image)
  34. if cv2.waitKey(5) & 0xFF == 27:
  35. break
  36. cap.release()

 使用的电脑是cpu版本,测试显示感觉还是可以的。

至此测试结束,接下来将使用mediapipe做手势识别及音量控制等。

如有侵权,或需要完整代码,请及时联系博主。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/809428
推荐阅读
相关标签
  

闽ICP备14008679号