Mediapipe+VSCode+Anaconda 实时检测手部关键点并保存视频

Posted 苦瓜汤补钙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mediapipe+VSCode+Anaconda 实时检测手部关键点并保存视频相关的知识,希望对你有一定的参考价值。

提示:本文仅为个人学习的记录

文章目录

前言

一、环境配置

1.Anaconda3安装

2.VSCode安装 

3.Anaconda配置虚拟环境

 4.mediapipe安装

 二、实时检测手部关键点

1.打开VSCode,新建python文件。

2.python解释器选择

3.直接运行代码即可,运行结果。

总结


前言

  MediaPipe: Google Research开源的跨平台多媒体机器学习模型应用框架作为一款跨平台框架,MediaPipe不仅可以被部署在服务器端,更可以在多个移动端(安卓和苹果ios)和嵌入式平台(Google Coral和树莓派)中作为设备端机器学习推理(On-device MachineLearning lnference)框架。


一、环境配置

    我的环境是win11+anaconda3-2022.10+VSCode+mediapipe 0.9.0.1

1.Anaconda3安装

  (1)首先前往 Anaconda 官网:Anaconda,下载安装文件:Anaconda3-2022.10-Windows-x86_64.exe(记住保存的位置)

 (2)我的安装过程:Next--> I Agree --> All Users-->自定义安装路径-->选择添加环境变量-->Install即可安装完成。(我根据这个过程是没有任何报错的,但是有朋友反馈出错,可以参考自己添加环境变量

 

  (3)检查安装是否成功:win+r,输入cmd回车。输入conda --version,查看当前安装版本。如何输入python,返回版本信息即为安装成功。

2.VSCode安装 

  (1)去官网下载Download Visual Studio Code - Mac, Linux, Windows

   (2)VSCode我之前就安装好了,没有保存安装记录,请参考VSCode安装教程(超详细)_牛哄哄的柯南的博客-CSDN博客_vscode安装教程

3.Anaconda配置虚拟环境

  (1)打开anaconda prompt后,输入如下代码搭建基于python3.7的环境mediapipe(可自定义)。中间会出现([y]/[n]?)键入y或回车,等待安装完毕即可。

conda create -n your_env_name python=x.x

   (2)配置完mediapipe虚拟环境后,输入以下代码激活虚拟环境。

conda activate mediapipe

  (3)输入python,查看python=3.7配置是否成功。

 4.mediapipe安装

  (1)关闭anaconda prompt重新进入mediapipe环境,输入以下代码后回车开始安装。中间会出现([y]/[n]?)键入y或回车即可,等待安装完毕。

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

   出现以下界面即为安装成功。

 (2)在虚拟环境安装OpenCV

pip install opencv-python
或
pip install opencv-contrib-python

   输入一些代码并查看返回信息是否正确,即检查是否安装成功。

 二、实时检测手部关键点并保存视频

1.打开VSCode,新建python文件。

代码如下(示例):

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

#打开本地摄像头,实时检测,可自行更换为加载本地视频
cap = cv2.VideoCapture(0)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))  #获取视频的宽度
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))  #获取视频的高度
fps = cap.get(cv2.CAP_PROP_FPS) #获取视频的帧率
fourcc = int(cap.get(cv2.CAP_PROP_FOURCC))
writer = cv2.VideoWriter("D:\\\\mediapipe\\\\video_result.mp4v", fourcc, fps, (width, height))

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.")
            continue


        image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
        image.flags.writeable = False
        results = hands.process(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)
        key = cv2.waitKey(24)
        writer.write(image)  #视频保存
        # 按Q退出
        if cv2.waitKey(1) == ord("Q"):
            break
cap.release()

2.python解释器选择

3.直接运行代码即可,运行结果。


总结

  以上就是mediapipe的学习记录,本文仅仅简单介绍了mediapipe的使用,而mediapipe能够解决许多视觉任务大家可自行探索。

以上是关于Mediapipe+VSCode+Anaconda 实时检测手部关键点并保存视频的主要内容,如果未能解决你的问题,请参考以下文章

Python + Anaconda + vscode环境重装(2019.4.20)

Anaconda+VSCode配置tensorflow

Anaconda+VSCode配置tensorflow

在Anaconda基本环境VScode中无法导入库错误

Anaconda + VScode 的Python环境搭建

Anaconda+vscode+pytorch环境搭建