Mediapipe+VSCode+Anaconda 实时检测手部关键点并保存视频
Posted 苦瓜汤补钙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mediapipe+VSCode+Anaconda 实时检测手部关键点并保存视频相关的知识,希望对你有一定的参考价值。
提示:本文仅为个人学习的记录
文章目录
前言
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 实时检测手部关键点并保存视频的主要内容,如果未能解决你的问题,请参考以下文章