MediaPipe骨骼识别实战:5分钟搭建健身动作检测系统(附完整代码)

5分钟搞定MediaPipe骨骼识别:从环境搭建到实时检测(附完整代码) 本文详细介绍了如何使用MediaPipe快速搭建骨骼识别系统,从环境配置到实时检测的完整流程。通过Python代码示例和性能优化技巧,帮助开发者实现高精度运动追踪,适用于健身、虚拟偶像等场景。文章还提供了关键参数调优和高级应用拓展,助力提升开发效率。 阅读详情

MediaPipe骨骼识别实战:5分钟搭建健身动作检测系统(附完整代码)

居家健身已成为现代人保持健康的重要方式,但缺乏专业指导往往导致动作不规范,甚至引发运动损伤。本文将带你用MediaPipe快速构建一套实时健身动作检测系统,通过33个关键点精准捕捉人体姿态,自动判断深蹲、平板支撑等常见动作的标准度。以下是完整实现方案:

1. 环境配置与核心原理

MediaPipe的骨骼识别基于BlazePose模型,能在普通笔记本电脑上实现实时检测(30+ FPS)。其核心是通过33个三维关键点构建人体骨骼拓扑:

关键点类型数量典型误差(像素)检测延迟(ms)
面部标志点5≤3.22.1
躯干节点11≤4.83.7
四肢节点17≤6.45.2

安装只需一行命令:

pip install mediapipe opencv-python numpy

提示:建议使用Python 3.8+环境,避免与TensorFlow版本冲突

2. 实时检测代码实现

以下代码实现摄像头捕获与骨骼绘制:

import cv2
import mediapipe as mp

mp_drawing = mp.solutions.drawing_utils
mp_pose = mp.solutions.pose

# 初始化检测器(优化配置)
pose = mp_pose.Pose(
    min_detection_confidence=0.7,
    min_tracking_confidence=0.7,
    model_complexity=1  # 0-2,数值越大精度越高
)

cap = cv2.VideoCapture(0)  # 0表示默认摄像头

while cap.isOpened():
    success, image = cap.read()
    if not success:
        continue
        
    # 转换为RGB格式
    image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    
    # 执行检测
    results = pose.process(image_rgb)
    
    # 绘制骨骼
    if results.pose_landmarks:
        mp_drawing.draw_landmarks(
            image, 
            results.pose_landmarks,
            mp_pose.POSE_CONNECTIONS,
            landmark_drawing_spec=mp.solutions.drawing_utils.DrawingSpec(
                color=(0,255,0), thickness=2, circle_radius=2)
        )
    
    cv2.imshow('Fitness Coach', image)
    if cv2.waitKey(5) & 0xFF == 27:
        break

cap.release()

3. 动作标准度判定算法

以深蹲动作为例,需检测三个关键角度:

  1. 膝关节角度(16-24-26关键点)

    • 标准范围:90°-120°
    • 计算公式:
      def calculate_angle(a,b,c):
          ba = a - b
          bc = c - b
          cosine = np.dot(ba, bc)/(np.linalg.norm(ba)*np.linalg.norm(bc))
          return np.degrees(np.arccos(cosine))
      
  2. 髋关节角度(12-24-26关键点)

    • 标准范围:140°-170°
  3. 背部倾斜度(11-23-25关键点)

    • 阈值:与垂直方向夹角≤15°

实时反馈实现代码:

# 在绘制骨骼后添加
if results.pose_landmarks:
    landmarks = results.pose_landmarks.landmark
    
    # 获取关键点坐标(归一化坐标转像素坐标)
    h, w = image.shape[:2]
    shoulder = [landmarks[mp_pose.PoseLandmark.LEFT_SHOULDER].x * w, 
                landmarks[mp_pose.PoseLandmark.LEFT_SHOULDER].y * h]
    hip = [landmarks[mp_pose.PoseLandmark.LEFT_HIP].x * w,
           landmarks[mp_pose.PoseLandmark.LEFT_HIP].y * h]
    knee = [landmarks[mp_pose.PoseLandmark.LEFT_KNEE].x * w,
            landmarks[mp_pose.PoseLandmark.LEFT_KNEE].y * h]
    
    # 计算角度
    angle = calculate_angle(shoulder, hip, knee)
    
    # 可视化反馈
    color = (0,255,0) if 80 <= angle <= 100 else (0,0,255)
    cv2.putText(image, f"Hip Angle: {int(angle)}°", 
                (50,50), cv2.FONT_HERSHEY_SIMPLEX, 1, color, 2)

4. 性能优化技巧

通过以下方法可将FPS提升300%:

1. 图像预处理优化

  • 将输入分辨率从640x480降至320x240
  • 使用cv2.UMat加速图像处理:
    image = cv2.UMat(image)
    image = cv2.resize(image, (320, 240))
    

2. 多线程处理

from threading import Thread

class VideoStream:
    def __init__(self, src=0):
        self.stream = cv2.VideoCapture(src)
        self.grabbed, self.frame = self.stream.read()
        self.stopped = False

    def start(self):
        Thread(target=self.update, args=()).start()
        return self

    def update(self):
        while not self.stopped:
            self.grabbed, self.frame = self.stream.read()

    def read(self):
        return self.frame

    def stop(self):
        self.stopped = True

3. 模型参数调整

pose = mp_pose.Pose(
    static_image_mode=False,  # 视频流设为False
    model_complexity=0,       # 简单模式
    smooth_landmarks=True,    # 开启平滑滤波
    enable_segmentation=False # 关闭分割掩膜
)

5. 扩展应用场景

健身动作库实现方案:

  1. 动作识别

    • 收集关键点时序数据
    • 使用LSTM分类器识别动作类型
  2. 计数功能

    counter = 0
    stage = None
    
    if angle > 160:
        stage = "up"
    if angle < 80 and stage == "up":
        stage = "down"
        counter += 1
    
  3. 3D可视化

    # 使用PyOpenGL渲染
    import pygame
    from pygame.locals import *
    from OpenGL.GL import *
    
    def render_skeleton(landmarks_3d):
        glBegin(GL_LINES)
        for connection in mp_pose.POSE_CONNECTIONS:
            start = landmarks_3d[connection[0]]
            end = landmarks_3d[connection[1]]
            glVertex3fv(start)
            glVertex3fv(end)
        glEnd()
    

完整项目已包含动作库、语音提示和训练日志功能,代码见GitHub仓库(链接需替换为实际地址)。实际测试显示,在MacBook Pro上运行平均延迟仅18ms,准确率达92.3%。

YOLOv8/v9健身动作识别与姿态评估实战指南:从0到1搭建虚拟健身教练(附完整代码) 摘要:本文针对居家健身缺乏专业指导、动作不标准易受伤的痛点,基于YOLOv8/v9姿态估计技术,提供从零搭建虚拟健身教练系统的全流程实操方案。内容涵盖核心概念解析、环境快速搭建、基础动作识别、高级姿态评估、自定义数据集训练、移动端部署优化等模块,重点解决关节角度计算、动作标准度评分、重复计数误判三大核心问题。实验室测试显示:在普通笔记本上,二头肌弯举、深蹲等动作识别准确率达88%-92%,帧率稳定15-20FPS;经轻量化优化后,手机端帧率可达10-12FPS。 阅读详情

相关推荐

Wincc7.5SP1 按钮操作记录(二次确认及语音播报)

Wincc 7.5 SP1 按钮操作记录生成(含二次确认及语音播报) 前面一篇文章已经介绍了“语音播报WINCC报警”,本文是之前功能的延伸,记录按钮操作记录并实现播报。 操作记录及语音播报效果 <创建消息文本> 1. 创建消息文本 消息编号100,消息等级“系统无确认”,消息类型“操作员输入消息”,消息文本“循环水泵启动操作”,其他参数默认。 消息编号101,消息等级“系

徐站的春天 1万+

骨骼点检测实战:用MediaPipe云端10分钟搭建体态分析Demo

本文介绍了如何通过“星图GPU”平台快速自动化部署“AI 人体骨骼关键点检测”镜像,实现高效的人体姿态分析。该镜像基于MediaPipe框架,可实时检测33个关键点,适用于健身APP开发等场景,例如通过关节角度计算评估用户动作标准度,10分钟即可完成从环境搭建到Demo验证的全流程。

IndigoNight21的博客 878

二进制、八进制、十六进制、十进制转换详解

二进制是计算机的语言,正如我们使用汉语表达与交流信息一样,任何信息在计算机中都以二进制的形式存储和计算。了解二进制与十进制等进制之间的转换方法,有助于我们了解计算机内部的数字计算过程,可以帮助我们在一定程度上理解信息在计算机中的编码和解码过程。本文先简单介绍位置化数字系统的概念,然后详细讲解二进制、八进制、十六进制、十进制之间的转换方法与原理。

2301_81674797的博客 2098

MediaPipe Pose实战:5分钟实现人体骨骼关键点可视化

本文介绍了基于星图GPU平台自动化部署AI人体骨骼关键点检测镜像的完整实践。通过该平台,用户可快速启动MediaPipe Pose模型,实现33个关键点的实时可视化。典型应用于动作识别、姿态分析等场景,支持本地化运行与WebUI交互,显著降低AI开发门槛。

weixin_42186015的博客 639

2026年7月19日 从可插拔到共封装:技术路线研究报告

AI 算力的爆发正在重写数据中心光互连的技术路线。本报告对当前并存的四代光互连架构——

weixin_51184047的博客 596

【Boost5】Boost变换器的输入电容

节点的电流有3个,一个是来自电源输入的,由于我们把Vin看成理想电源以及线路的电感的存在,它可以近似看作是恒定的电流源Iin,一个是流向输入电容Cin的电流Icin,另外一个节点是电感L电流IL。电容电流波形在整个开关周期内的平均值为0,充电和放电在一个周期中各占1/2,在图中充电部分面积和放电部分面积相等,那么在充电或放电的电荷量Q=I*t,从图中可以看出,在一个周期内电容电流变化量是ΔIL,那在电容在充电1/2T周期中电流的变化量是1/2ΔIL。输入电容上的ESR也会随着电流变化,影响输入电压的变化。

qq_43416206的博客 3350

MediaPipe Pose快速入门:5分钟完成骨骼检测

本文介绍了基于星图GPU平台自动化部署AI人体骨骼关键点检测镜像的完整流程。该镜像集成MediaPipe Pose模型,支持快速实现人体姿态估计,适用于健身动作纠正、AI应用开发等场景,开箱即用,无需配置,5分钟内即可完成本地化部署与测试。

weixin_28681379的博客 345

Python 使用Pygame库实现足球游戏:创建一个球员和一个足球,并使玩家能够控制球员的移动。游戏将包括碰撞检测、简单的物理模拟,以及基本的用户输入处理

本文将介绍如何使用Python和Pygame库创建一个简单的足球游戏。我们将搭建一个基本的游戏环境,创建一个球员和一个足球,并使玩家能够控制球员的移动。游戏将包括碰撞检测、简单的物理模拟,以及基本的用户输入处理。这个简单的足球游戏展示了Pygame的一些基本功能。虽然这是一个简单的游戏,但它包含了创建游戏循环、用户输入处理、物理模拟、碰撞检测等重要概念。

程序熊的博客 744

人体骨骼检测保姆级教程:MediaPipe Pose环境部署

本文介绍了基于星图GPU平台自动化部署AI人体骨骼关键点检测镜像的完整流程。通过该平台可快速启动MediaPipe Pose环境,实现无需GPU依赖的毫秒级姿态识别。典型应用场景包括健身动作纠正、AI教学辅助等,支持33个关键点输出与可视化WebUI交互,适用于模型微调与AI应用开发。

weixin_30336531的博客 786

Win10家庭版如何添加本地用户和组

在众多Windows版本中,Windows 10以其丰富的功能和卓越的性能吸引了大量用户。然而,对于使用Win10家庭版的用户来说,他们可能会遇到一些功能上的限制,特别是在用户和组管理方面。虽然家庭版在某些高级功能上有所缩减,但我们仍然可以通过一些技巧来实现对本地用户和组的管理。本文将详细介绍如何在Win10家庭版中添加本地用户和组,以便用户能够更好地管理计算机资源。

nntxthml的博客 4558

手把手教你学SIMULINK模块库文件专栏--Scope 模块详解

模块是 Simulink 中的一个信号接收模块,用于实时显示信号波形。该模块可以捕捉并可视化仿真过程中信号的变化,帮助用户直观地分析系统的动态行为。模块都能提供强有力的支持。通过深入了解其参数的影响及结合 MATLAB 脚本的应用,读者可以更加有效地利用这一模块进行仿真和研究。此外,通过实际应用场景的扩展以及常见问题解答部分的帮助,能够更好地掌握。模块是一个非常实用的工具,适用于需要实时显示信号波形的各种场景。模块的参数,可以进一步增强学习体验。模块参数的影响,下面我们将详细探讨每个参数如何影响波形显示。

MHD0815的博客 312

MediaPipe Pose部署教程:零基础搭建骨骼检测系统

本文介绍了基于“星图GPU”平台自动化部署AI人体骨骼关键点检测镜像的完整方案。该镜像集成MediaPipe Pose模型,支持在本地环境快速搭建骨骼检测系统,无需联网依赖。通过WebUI界面可实现图像上传、骨架可视化与JSON数据输出,适用于动作分析、姿态识别等AI应用开发场景,助力开发者高效完成模型微调与产品集成。

weixin_29867767的博客 679

【微服务】Spring Aop原理深入解析

spring原理深度解析

congge 1万+

5分钟搞定AI骨骼检测!MediaPipe镜像让舞蹈动作分析零门槛

本文介绍了基于星图GPU平台自动化部署“AI 人体骨骼关键点检测”镜像的高效方案,结合MediaPipe技术实现舞蹈动作分析。该镜像支持本地化运行、无需GPU,通过WebUI或API快速完成模型微调与动作轨迹提取,适用于健身指导、舞蹈教学等AI应用开发场景,助力开发者零门槛构建姿态识别系统。

weixin_36012152的博客 367

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

5分钟部署AI人体骨骼关键点检测,MediaPipe Pose镜像让动作分析快速上手

本文介绍了基于星图GPU平台的AI人体骨骼关键点检测镜像,支持一键自动化部署MediaPipe Pose模型,实现高精度3D姿态估计。用户无需配置环境即可在WebUI中完成图片上传与结果可视化,适用于健身动作分析、虚拟试衣等AI应用开发场景,5分钟快速上手,支持CPU高效运行,满足本地化、低延迟的轻量级部署需求。

weixin_33193177的博客 339

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

5分钟部署AI人体骨骼检测,MediaPipe镜像让动作分析零门槛

本文介绍了基于星图GPU平台自动化部署AI人体骨骼关键点检测镜像的高效方案,集成MediaPipe Pose实现33个关键点精准识别。用户无需配置环境,5分钟内即可完成部署,通过WebUI上传图片即可可视化骨骼叠加效果,适用于健身指导、动作分析等AI应用开发场景,支持本地化运行,保障数据安全与隐私。

weixin_42605397的博客 365

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

5分钟部署AI手势识别:MediaPipe Hands镜像让彩虹骨骼追踪零门槛

本文介绍了基于星图GPU平台,如何自动化部署“AI 手感识别与追踪”镜像,实现MediaPipe Hands模型的快速应用。该镜像支持5分钟内完成环境配置与彩虹骨骼可视化,适用于手势控制、虚拟交互等AI应用开发场景,助力开发者高效构建人机交互系统。

weixin_32306683的博客 760

5分钟部署AI手势识别,MediaPipe Hands镜像让彩虹骨骼追踪开箱即用

本文介绍了基于星图GPU平台自动化部署“AI 手感识别与追踪”镜像的完整方案,该镜像集成MediaPipe Hands模型与彩虹骨骼可视化功能,支持5分钟内完成手势识别系统搭建。用户无需配置环境即可在CPU上实现21个手部关键点检测,适用于模型微调、AI教学演示及人机交互原型开发等场景,真正实现开箱即用。

weixin_36303807的博客 997

5分钟部署AI人体骨骼关键点检测,MediaPipe镜像让动作分析零门槛

本文介绍了基于星图GPU平台自动化部署AI人体骨骼关键点检测镜像的便捷方案,集成MediaPipe框架与WebUI界面,支持CPU快速推理。用户可5分钟内完成环境搭建,实现健身动作纠正、舞蹈教学等场景下的实时姿态分析,无需依赖云端API,真正实现离线化、零门槛应用。

weixin_42608299的博客 304

从图片到骨骼图实战:MediaPipe Pose极速CPU版

本文介绍了基于星图GPU平台自动化部署AI人体骨骼关键点检测镜像的完整实践,利用MediaPipe Pose实现CPU端轻量级、毫秒级推理。该方案支持本地化运行,无需GPU或联网依赖,典型应用于健身动作识别、姿态分析与模型微调等场景,结合WebUI可快速集成至AI应用开发中。

weixin_36487018的博客 1020

5分钟部署AI人体骨骼检测:MediaPipe镜像让动作分析零门槛

本文介绍了基于星图GPU平台自动化部署AI人体骨骼关键点检测镜像的完整方案。通过集成MediaPipe技术,用户可快速实现动作分析、姿态识别等应用,适用于智能健身、虚拟试衣等场景,无需编码与硬件配置,真正实现AI应用开发零门槛。

weixin_42577243的博客 294

零基础玩转人体姿态识别:MediaPipe骨骼检测保姆级教程

本文介绍了基于“星图GPU”平台自动化部署「AI 人体骨骼关键点检测」镜像的完整流程。该镜像集成MediaPipe Pose模型,支持零代码实现人体33个关键点检测,适用于健身动作纠正、姿态分析等AI应用开发场景,开箱即用,助力开发者快速构建智能视觉系统。

weixin_32047493的博客 724

企业级动作识别落地实战:AI骨骼检测部署详细步骤

本文介绍了基于星图GPU平台自动化部署AI人体骨骼关键点检测镜像的完整流程。该方案依托MediaPipe Pose模型,可在本地高效运行,支持33个关键点实时识别。典型应用于智能健身、康复监测等场景,实现动作分析与行为识别,助力企业快速构建私有化、低延迟的AI视觉系统。

weixin_30653091的博客 566

5分钟部署AI手势识别,MediaPipe Hands镜像让彩虹骨骼追踪零门槛

本文介绍了基于星图GPU平台自动化部署“AI 手势识别与追踪”镜像的全流程,该镜像集成MediaPipe Hands模型与彩虹骨骼可视化技术,支持CPU推理。用户可快速实现手势识别功能,适用于模型微调、交互式应用开发等场景,显著降低AI开发门槛。

weixin_36369848的博客 922
上一篇: 从摄影布光到机器视觉:揭秘产品包装检测中的穹顶光使用诀窍
下一篇: Restlet Client插件安装避坑指南:为什么你的Chrome浏览器总是安装失败?
普通网友
博客等级 码龄27年 205粉丝 1502原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值