MediaPipe Pose入门实战33个关键点检测新手友好教程1. 项目简介MediaPipe Pose是Google推出的轻量级人体姿态检测解决方案能够从普通RGB图像中实时检测33个3D人体关键点。本教程将带你快速上手这个强大工具无需复杂配置几分钟内就能实现专业级的人体姿态分析。这个镜像基于MediaPipe Pose模型构建具有以下核心优势开箱即用预装所有依赖项无需额外下载模型极速响应针对CPU优化单张图片处理仅需毫秒级直观可视化自动生成带关键点标记和骨骼连线的结果图稳定可靠完全本地运行不依赖外部API或网络连接2. 环境准备与快速启动2.1 启动镜像服务在云平台找到AI 人体骨骼关键点检测镜像点击启动按钮等待服务初始化完成约30秒服务就绪后点击提供的HTTP访问链接2.2 测试示例图片系统已预置示例图片你可以点击测试示例按钮查看效果观察右侧结果图中标记的红点关节和白线骨骼连接3. 使用自己的图片进行分析3.1 上传图片点击上传图片按钮选择包含人物的图片全身或半身均可建议图片要求人物占比不小于1/3画面光照均匀避免强烈逆光分辨率建议800x600以上3.2 查看分析结果系统会自动处理并显示关键点标记33个红色圆点标注身体各部位关节骨骼连线白色线条连接相邻关键点置信度分数每个关键点的检测可信度0-1典型处理时间480p图片约50ms1080p图片约120ms4. 关键点详解与代码示例4.1 33个关键点对应部位MediaPipe Pose定义的33个关键点对应人体以下部位关键点编号身体部位关键点编号身体部位0鼻子17左耳1左眼内侧18右耳2左眼19左拇指根部3左眼外侧20左小指根部4右眼内侧21左腕外侧5右眼22右拇指根部6右眼外侧23右小指根部7左耳24右腕外侧8右耳25左髋9嘴左26右髋10嘴右27左膝11左肩28右膝12右肩29左踝13左肘30右踝14右肘31左足跟15左腕32右足跟16右腕4.2 Python调用示例如果你想在自己的Python项目中使用这个模型可以参考以下代码import cv2 import mediapipe as mp # 初始化MediaPipe Pose mp_pose mp.solutions.pose pose mp_pose.Pose( static_image_modeFalse, # 设为True处理单张图片 model_complexity1, # 0-2越高越精确但越慢 enable_segmentationFalse, min_detection_confidence0.5 ) # 读取图片 image cv2.imread(test.jpg) image_rgb cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 进行姿态检测 results pose.process(image_rgb) # 绘制关键点 if results.pose_landmarks: mp_drawing mp.solutions.drawing_utils mp_drawing.draw_landmarks( image, results.pose_landmarks, mp_pose.POSE_CONNECTIONS, landmark_drawing_specmp_drawing.DrawingSpec( color(0, 0, 255), thickness2, circle_radius2), connection_drawing_specmp_drawing.DrawingSpec( color(255, 255, 255), thickness2) ) # 保存结果 cv2.imwrite(result.jpg, image)5. 常见问题与解决方案5.1 关键点检测不准确可能原因及解决方法人物太小让人物占据画面至少1/3面积遮挡严重调整拍摄角度减少遮挡动作极端避免过于扭曲的姿势光照不足增加环境亮度或使用补光5.2 部分关键点缺失如果某些关键点未被检测到检查results.pose_landmarks.landmark[点编号].visibility值该值0.5表示关键点可信低于此阈值可尝试提高输入图片质量降低min_detection_confidence参数使用更高model_complexity级别5.3 性能优化建议对实时视频设置static_image_modeFalse对低性能设备使用model_complexity0批量处理时复用pose实例而非重复创建6. 实际应用场景6.1 健身动作分析通过连续帧检测可以计算关节角度变化评估动作标准度统计重复次数# 计算肘关节角度示例 def calculate_angle(a, b, c): # a,b,c为三个关键点的(x,y)坐标 ba [a[0]-b[0], a[1]-b[1]] bc [c[0]-b[0], c[1]-b[1]] dot_product ba[0]*bc[0] ba[1]*bc[1] mag_ba math.sqrt(ba[0]**2 ba[1]**2) mag_bc math.sqrt(bc[0]**2 bc[1]**2) angle math.acos(dot_product/(mag_ba*mag_bc)) return math.degrees(angle) # 获取肩、肘、腕关键点坐标 shoulder [landmarks[mp_pose.PoseLandmark.LEFT_SHOULDER].x, landmarks[mp_pose.PoseLandmark.LEFT_SHOULDER].y] elbow [landmarks[mp_pose.PoseLandmark.LEFT_ELBOW].x, landmarks[mp_pose.PoseLandmark.LEFT_ELBOW].y] wrist [landmarks[mp_pose.PoseLandmark.LEFT_WRIST].x, landmarks[mp_pose.PoseLandmark.LEFT_WRIST].y] angle calculate_angle(shoulder, elbow, wrist) print(f肘关节角度: {angle:.1f}°)6.2 动画制作辅助可将检测结果导出为骨骼动画数据3D建模参考虚拟角色驱动6.3 安防监控结合其他技术实现异常行为识别跌倒检测人群密度分析7. 总结通过本教程你已经掌握了使用MediaPipe Pose进行人体姿态检测的基本方法。这个轻量级解决方案特别适合需要快速上手的开发者CPU环境下的实时应用教育、健身、安防等领域的原型开发下一步建议尝试处理视频流修改代码中的图像来源探索33个关键点的更多应用场景结合其他MediaPipe解决方案如手部、面部检测获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
MediaPipe Pose入门实战:33个关键点检测,新手友好教程
MediaPipe Pose入门实战33个关键点检测新手友好教程1. 项目简介MediaPipe Pose是Google推出的轻量级人体姿态检测解决方案能够从普通RGB图像中实时检测33个3D人体关键点。本教程将带你快速上手这个强大工具无需复杂配置几分钟内就能实现专业级的人体姿态分析。这个镜像基于MediaPipe Pose模型构建具有以下核心优势开箱即用预装所有依赖项无需额外下载模型极速响应针对CPU优化单张图片处理仅需毫秒级直观可视化自动生成带关键点标记和骨骼连线的结果图稳定可靠完全本地运行不依赖外部API或网络连接2. 环境准备与快速启动2.1 启动镜像服务在云平台找到AI 人体骨骼关键点检测镜像点击启动按钮等待服务初始化完成约30秒服务就绪后点击提供的HTTP访问链接2.2 测试示例图片系统已预置示例图片你可以点击测试示例按钮查看效果观察右侧结果图中标记的红点关节和白线骨骼连接3. 使用自己的图片进行分析3.1 上传图片点击上传图片按钮选择包含人物的图片全身或半身均可建议图片要求人物占比不小于1/3画面光照均匀避免强烈逆光分辨率建议800x600以上3.2 查看分析结果系统会自动处理并显示关键点标记33个红色圆点标注身体各部位关节骨骼连线白色线条连接相邻关键点置信度分数每个关键点的检测可信度0-1典型处理时间480p图片约50ms1080p图片约120ms4. 关键点详解与代码示例4.1 33个关键点对应部位MediaPipe Pose定义的33个关键点对应人体以下部位关键点编号身体部位关键点编号身体部位0鼻子17左耳1左眼内侧18右耳2左眼19左拇指根部3左眼外侧20左小指根部4右眼内侧21左腕外侧5右眼22右拇指根部6右眼外侧23右小指根部7左耳24右腕外侧8右耳25左髋9嘴左26右髋10嘴右27左膝11左肩28右膝12右肩29左踝13左肘30右踝14右肘31左足跟15左腕32右足跟16右腕4.2 Python调用示例如果你想在自己的Python项目中使用这个模型可以参考以下代码import cv2 import mediapipe as mp # 初始化MediaPipe Pose mp_pose mp.solutions.pose pose mp_pose.Pose( static_image_modeFalse, # 设为True处理单张图片 model_complexity1, # 0-2越高越精确但越慢 enable_segmentationFalse, min_detection_confidence0.5 ) # 读取图片 image cv2.imread(test.jpg) image_rgb cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 进行姿态检测 results pose.process(image_rgb) # 绘制关键点 if results.pose_landmarks: mp_drawing mp.solutions.drawing_utils mp_drawing.draw_landmarks( image, results.pose_landmarks, mp_pose.POSE_CONNECTIONS, landmark_drawing_specmp_drawing.DrawingSpec( color(0, 0, 255), thickness2, circle_radius2), connection_drawing_specmp_drawing.DrawingSpec( color(255, 255, 255), thickness2) ) # 保存结果 cv2.imwrite(result.jpg, image)5. 常见问题与解决方案5.1 关键点检测不准确可能原因及解决方法人物太小让人物占据画面至少1/3面积遮挡严重调整拍摄角度减少遮挡动作极端避免过于扭曲的姿势光照不足增加环境亮度或使用补光5.2 部分关键点缺失如果某些关键点未被检测到检查results.pose_landmarks.landmark[点编号].visibility值该值0.5表示关键点可信低于此阈值可尝试提高输入图片质量降低min_detection_confidence参数使用更高model_complexity级别5.3 性能优化建议对实时视频设置static_image_modeFalse对低性能设备使用model_complexity0批量处理时复用pose实例而非重复创建6. 实际应用场景6.1 健身动作分析通过连续帧检测可以计算关节角度变化评估动作标准度统计重复次数# 计算肘关节角度示例 def calculate_angle(a, b, c): # a,b,c为三个关键点的(x,y)坐标 ba [a[0]-b[0], a[1]-b[1]] bc [c[0]-b[0], c[1]-b[1]] dot_product ba[0]*bc[0] ba[1]*bc[1] mag_ba math.sqrt(ba[0]**2 ba[1]**2) mag_bc math.sqrt(bc[0]**2 bc[1]**2) angle math.acos(dot_product/(mag_ba*mag_bc)) return math.degrees(angle) # 获取肩、肘、腕关键点坐标 shoulder [landmarks[mp_pose.PoseLandmark.LEFT_SHOULDER].x, landmarks[mp_pose.PoseLandmark.LEFT_SHOULDER].y] elbow [landmarks[mp_pose.PoseLandmark.LEFT_ELBOW].x, landmarks[mp_pose.PoseLandmark.LEFT_ELBOW].y] wrist [landmarks[mp_pose.PoseLandmark.LEFT_WRIST].x, landmarks[mp_pose.PoseLandmark.LEFT_WRIST].y] angle calculate_angle(shoulder, elbow, wrist) print(f肘关节角度: {angle:.1f}°)6.2 动画制作辅助可将检测结果导出为骨骼动画数据3D建模参考虚拟角色驱动6.3 安防监控结合其他技术实现异常行为识别跌倒检测人群密度分析7. 总结通过本教程你已经掌握了使用MediaPipe Pose进行人体姿态检测的基本方法。这个轻量级解决方案特别适合需要快速上手的开发者CPU环境下的实时应用教育、健身、安防等领域的原型开发下一步建议尝试处理视频流修改代码中的图像来源探索33个关键点的更多应用场景结合其他MediaPipe解决方案如手部、面部检测获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。