项目简介
本项目借助Python语言和Google开发的多媒体机器学习模型应用框架MediaPipe,实现了一个健身动作检测系统。该系统通过摄像头实时捕捉人体动作,重点对姿势、全身及人脸进行检测,还可提取骨架做角度运算,依据计算出的角度判断人体当前的姿势状态,以小腿拉伸动作为例,能为用户提供动作是否标准的反馈及倒计时提示。
项目的主要特性和功能
- 多类型检测功能:支持人脸追踪、人脸网格、手掌侦测、全身侦测、姿势侦测、物体侦测和人物去背等多种识别功能,着重于姿势侦测、全身侦测及人脸网格。
- 骨架角度运算:可提取人体骨架信息,通过选取连接的三个点进行角度运算,计算如膝盖等部位的角度。
- 姿势判断与反馈:以小腿拉伸为例,根据特定角度范围判断,动作符合标准时,屏幕显示绿灯并开始30秒倒计时;不符合标准则给出提示。
- 可视化展示:利用OpenCV进行影像处理,在画面左上角显示示范骨架,左下角显示当前角度,方便用户了解动作情况。
安装使用步骤
安装Python环境
打开Anaconda下载页面,点击Download自动下载安装包,安装完成后打开.exe文件进行安装。安装完成后,从电脑左下角搜索Jupyter Notebook并开启,若成功进入网页,代表环境开启成功。
开启新专案
在Jupyter Notebook网页中,点击右边的new,选择Python3,若进入相应画面则代表专案开启成功。
测试Mediapipe是否能够正常执行
打开Jupyter notebook并进入解压后的Warm-Up_Exercise_Detection_System_based_on_LSTM_and_Mediapipe-main
文件夹,再进入detect
文件夹,开启一个新的专案,依次执行以下命令安装依赖库:
!pip install opencv-python
!pip install mediapipe
!pip install numpy
!pip install tensorflow
等待执行完成后,执行以下代码加载所需套件:
import cv2
import mediapipe as mp
import numpy as np
接着执行以下代码进行Mediapipe相关设置:
mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_holistic = mp.solutions.holistic
若要进行不同领域的检测,可按需更换变量,例如检测姿势可改成mp_pose = mp.solutions.pose
,检测手部可改成mp_hands = mp.solutions.hands
。
最后执行以下代码打开摄像头使用mediapipe进行检测:
cap = cv2.VideoCapture(0)
with mp_holistic.Holistic(
min_detection_confidence=0.5,
min_tracking_confidence=0.5) as holistic:
if not cap.isOpened():
print("Cannot open camera")
exit()
while True:
ret, img = cap.read()
if not ret:
print("Cannot receive frame")
break
img = cv2.resize(img,(640,480))
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
results = holistic.process(img2)
mp_drawing.draw_landmarks(
img,
results.pose_landmarks,
mp_holistic.POSE_CONNECTIONS,
landmark_drawing_spec=mp_drawing_styles
.get_default_pose_landmarks_style())
cv2.imshow('warmup', img)
if cv2.waitKey(5) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】