您的位置:首页 > 汽车 > 时评 > 健身动作AI识别,仰卧起坐计数(含UI界面)

健身动作AI识别,仰卧起坐计数(含UI界面)

2024/10/6 13:18:16 来源:https://blog.csdn.net/2301_78240361/article/details/140945655  浏览:    关键词:健身动作AI识别,仰卧起坐计数(含UI界面)

用Python和Mediapipe打造,让你的运动效果一目了然!
【技术揭秘】



利用Mediapipe的人体姿态估计,实时捕捉关键点,精确识别动作。
每一帧的关键点坐标和角度都被详细记录,为动作分析提供数据支持。
支持自定义动作训练,让AI更懂你的运动习惯。
【健身动作】

俯卧撑、引体向上、深蹲等常见健身动作,AI都能准确计数,帮你记录每一次进步。
界面友好,操作简单,让健身更加科学高效。
️【自定义功能】

可以根据自己的需求,训练或自定义动作,让AI成为你的私人健身教练。

opencv-python, mediapipe(用于人体姿态估计), 和 tkinter(用于GUI)

安装必要的库:

import cv2
import mediapipe as mp
import tkinter as tk
from PIL import Image, ImageTk# 初始化Mediapipe的Pose检测
mp_drawing = mp.solutions.drawing_utils
mp_pose = mp.solutions.pose
pose = mp_pose.Pose(min_detection_confidence=0.5, min_tracking_confidence=0.5)# 定义一个函数来检测仰卧起坐
def detect_sit_up(frame):image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)image.flags.writeable = Falseresults = pose.process(image)image.flags.writeable = Trueimage = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)if results.pose_landmarks:# 获取关键点landmarks = results.pose_landmarks.landmarkhip = landmarks[mp_pose.PoseLandmark.LEFT_HIP].yknee = landmarks[mp_pose.PoseLandmark.LEFT_KNEE].yankle = landmarks[mp_pose.PoseLandmark.LEFT_ANKLE].y# 判断是否完成一次仰卧起坐if hip < knee and hip < ankle:return Truereturn False# 定义一个函数来更新UI中的计数器
def update_counter(count):count_label.config(text=f"Count: {count}")# 主程序
def main():global rootcap = cv2.VideoCapture(0)sit_up_count = 0while True:ret, frame = cap.read()if not ret:break# 检测仰卧起坐is_sit_up = detect_sit_up(frame)# 如果检测到完成一次仰卧起坐,则增加计数if is_sit_up:sit_up_count += 1update_counter(sit_up_count)# 显示视频帧frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)img = Image.fromarray(frame)img_tk = ImageTk.PhotoImage(image=img)video_label.imgtk = img_tkvideo_label.configure(image=img_tk)root.update_idletasks()root.update()# UI界面
root = tk.Tk()
root.title("Sit-Up Counter")video_label = tk.Label(root)
video_label.pack()count_label = tk.Label(root, text="Count: 0")
count_label.pack()main()

此外,为了使代码运行,你需要确保你的环境中安装了所有必需的库,并且摄像头可以正常工作。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com