AI项目一:mediapipe测试

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

一. 引言


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

pip install mediapipe 
或
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、导入库
2、使用cv2打开摄像头
3、使用mediapipe推理摄像头捕捉到的图片
4、显示结果

源代码

import sys
import cv2
import mediapipe as mp

mp_face_detection = mp.solutions.face_detection
mp_drawing = mp.solutions.drawing_utils
mp_drawing = mp.solutions.drawing_utils
mp_hands = mp.solutions.hands
# For webcam input:
cap = cv2.VideoCapture(0)
with mp_hands.Hands(
        min_detection_confidence=0.9,
        min_tracking_confidence=0.9) as hands:
    while cap.isOpened():
        success, image = cap.read()
        if not success:
            print("Ignoring empty camera frame.")
            # If loading a video, use 'break' instead of 'continue'.
            continue

        # Flip the image horizontally for a later selfie-view display, and convert
        # the BGR image to RGB.
        image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
        # To improve performance, optionally mark the image as not writeable to
        # pass by reference.
        image.flags.writeable = False
        results = hands.process(image)

        # Draw the hand annotations on the image.
        image.flags.writeable = True
        image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
        if results.multi_hand_landmarks:
            for hand_landmarks in results.multi_hand_landmarks:
                mp_drawing.draw_landmarks(
                    image, hand_landmarks, mp_hands.HAND_CONNECTIONS)
        cv2.imshow('MediaPipe Hands', image)
        if cv2.waitKey(5) & 0xFF == 27:
            break
cap.release()

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【资源说明】 基于Openpose的轻量化版本的骨骼点生成器python源码+项目使用说明+模型.zip (1) 环境配置 torch>=0.4.1 torchvision>=0.2.1 pycocotools==2.0.0 opencv-python>=3.4.0.14 numpy>=1.14.0 本项目采用了训练好的模型参数: 参数下载链接: https://download.01.org/opencv/openvino_training_extensions/models/human_pose_estimation/checkpoint_iter_370000.pth 若想要把.pth权重文件转化成onnx格式的权重文件,请在终端运行onnx.py文件 python onnx.py .pth权重文件地址 (2) 运行项目测试视频文件放入video文件夹中,终端运行命令: python main.py 即可 如若使用其他文件夹的视频文件,终端执行命令:python main.py --video 视频数据路径 若想使用默认摄像头进行实时动作捕捉,终端执行命令:python main.py --video=0 (3) 添加了计算“人体18个骨骼点”之间的向量角功能 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殷忆枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值