2026/4/18 10:03:26
网站建设
项目流程
用vs网站开发,go 语言 做网站,如何在服务器上发布网站,深圳创纪录暴雨19小时基于Python的mediapipe和opencv的人体骨骼、人体姿态关键点
的实时跟踪项目内含完整代码与超级详细注解和报告#xff0c;只要有python基础哪怕是小白也能学会看懂。
若预装了环境#xff08;Python及其相应库#xff09;直接可跑。
#x1f31f; 基于 Python 的 MediaPipe…基于Python的mediapipe和opencv的人体骨骼、人体姿态关键点的实时跟踪项目内含完整代码与超级详细注解和报告只要有python基础哪怕是小白也能学会看懂。若预装了环境Python及其相应库直接可跑。 基于 Python 的 MediaPipe OpenCV 人体骨骼与姿态关键点实时跟踪项目✅适合人群Python 初学者、计算机视觉入门者✅功能实时检测人体 33 个关键点头、手、躯干、四肢并绘制骨架连线✅技术栈MediaPipeOpenCVPython✅运行环境Windows/macOS/Linux支持摄像头或视频文件输入✅特点代码简洁、注释详细、可直接运行、附带完整说明文档— 一、项目简介本项目使用Google 的 MediaPipe和OpenCV实现对人体姿态的实时检测与可视化。系统能检测人体 33 个关键点如鼻子、眼睛、肩膀、手、膝盖等实时绘制人体骨架图支持摄像头、视频文件输入提供清晰的坐标信息输出适用于健身指导、动作识别、游戏交互、康复训练等场景。 二、环境准备仅需安装两个库pipinstallopencv-python mediapipe numpy⚠️ 注意确保你的电脑已安装 Python 3.7推荐使用 Anaconda 或虚拟环境。 三、核心代码pose_tracking.py# pose_tracking.py 基于 MediaPipe 和 OpenCV 的人体姿态关键点实时跟踪系统 作者AI助手 | 2025年 功能 - 实时检测人体33个关键点 - 绘制骨架连接线 - 支持摄像头和视频文件输入 importcv2importmediapipeasmpimportnumpyasnp# 1. 初始化 MediaPipe 姿态模型 mp_drawingmp.solutions.drawing_utils# 绘图工具mp_posemp.solutions.pose# 姿态检测模块# 创建姿态检测器对象posemp_pose.Pose(static_image_modeFalse,# False: 实时流True: 静态图像min_detection_confidence0.5,# 最小检测置信度0.5~1.0min_tracking_confidence0.5# 最小跟踪置信度0.5~1.0)# 2. 定义关键点连接关系 # 定义身体部位之间的连接用于绘制骨架POSE_CONNECTIONS[(0,1),(1,2),(2,3),(3,4),# 左侧鼻尖 - 左眼 - 左耳(0,5),(5,6),(6,7),(7,8),# 右侧鼻尖 - 右眼 - 右耳(9,10),(10,11),(11,12),(12,13),# 脖子 - 肩 - 肘 - 手(9,14),(14,15),(15,16),(16,17),# 另一侧(11,13),(13,15),(15,17),# 躯干左肩 - 左髋 - 左膝 - 左脚(12,14),(14,16),(16,18),# 右侧对应(19,20),(20,21),(21,22),# 左腿左髋 - 左膝 - 左踝(23,24),(24,25),(25,26),# 右腿右髋 - 右膝 - 右踝(23,24),# 左右髋部连接]# 3. 关键点名称映射便于理解 POSE_NAMES{0:Nose,1:Left Eye Inner,2:Left Eye,3:Left Eye Outer,4:Right Eye Inner,5:Right Eye,6:Right Eye Outer,7:Left Ear,8:Right Ear,9:Mouth Left,10:Mouth Right,11:Left Shoulder,12:Right Shoulder,13:Left Elbow,14:Right Elbow,15:Left Wrist,16:Right Wrist,17:Left Pinky,18:Right Pinky,19:Left Index,20:Right Index,21:Left Middle,22:Right Middle,23:Left Ankle,24:Right Ankle,25:Left Foot Index,26:Right Foot Index,27:Left Heel,28:Right Heel,29:Left Fist,30:Right Fist,31:Left Thumb,32:Right Thumb}# 4. 主函数启动摄像头或视频检测 defmain():print( 启动人体姿态检测系统...)print( 按 q 键退出程序)# 选择输入源0 表示摄像头其他为视频路径capcv2.VideoCapture(0)# 改为 your_video.mp4 可读取视频文件ifnotcap.isOpened():print(❌ 无法打开摄像头或视频文件)return# 设置视频分辨率可选cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)# 循环读取每一帧whileTrue:ret,framecap.read()ifnotret:print(❌ 视频读取失败结束程序。)break# 将 BGR 转为 RGBMediaPipe 要求 RGBrgb_framecv2.cvtColor(frame,cv2.COLOR_BGR2RGB)# 进行姿态检测resultspose.process(rgb_frame)# 如果检测到姿态则绘制关键点和骨架ifresults.pose_landmarks:# 获取所有关键点坐标landmarksresults.pose_landmarks.landmark# 1. 绘制关键点红色圆圈fori,landmarkinenumerate(landmarks):xint(landmark.x*frame.shape[1])yint(landmark.y*frame.shape[0])cv2.circle(frame,(x,y),5,(0,0,255),-1)# 红色圆点# 可选显示关键点编号# cv2.putText(frame, str(i), (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 1)# 2. 绘制骨架连接线白色线条forconnectioninPOSE_CONNECTIONS:start_id,end_idconnectionifstart_idlen(landmarks)andend_idlen(landmarks):start_point(int(landmarks[start_id].x*frame.shape[1]),int(landmarks[start_id].y*frame.shape[0]))end_point(int(landmarks[end_id].x*frame.shape[1],int(landmarks[end_id].y*frame.shape[0]))cv2.line(frame,start_point,end_point,(255,255,255),2)# 3. 显示检测信息可选countsum(1forlminlandmarksiflm.visibility0.5)cv2.putText(frame,f检测到{count}个关键点,(10,30),cv2.FONT_HERSHEY_SIMPLEX,0.8,(0,255,0),2)# 显示结果cv2.imshow(人体姿态检测,frame)# 按 q 键退出ifcv2.waitKey(1)0xFFord(q):break# 释放资源cap.release()cv2.destroyAllWindows()print( 程序已退出。)# 5. 运行程序 if__name____main__:main() 四、代码详解小白也能看懂 1.mediapipe.solutions.pose是 Google 提供的轻量级姿态估计算法可以在 CPU 上实时运行无需 GPU输出 33 个关键点坐标归一化到 [0,1] 区间 2.mp_pose.Pose()参数说明参数说明static_image_modeFalse实时模式连续视频流min_detection_confidence0.5检测置信度阈值低于此值不显示min_tracking_confidence0.5跟踪置信度用于连续帧匹配 3.POSE_CONNECTIONS定义了哪些关键点之间应该用线连接例如(11, 13)表示“左肩”连到“左肘” 4. 坐标转换xint(landmark.x*frame.shape[1])# 从归一化坐标转为像素坐标yint(landmark.y*frame.shape[0]) 五、运行效果示例图中红色圆点是关键点白色线条是骨架连接。 六、测试建议✅ 测试 1摄像头实时检测capcv2.VideoCapture(0)# 使用默认摄像头✅ 测试 2播放视频文件capcv2.VideoCapture(my_video.mp4)# 替换为你的视频路径 七、项目结构建议pose_tracking_project/ ├── pose_tracking.py # 主程序 └── test_video.mp4 # 测试视频可选 八、报告总结可用于学习汇报项目名称基于 MediaPipe 的人体姿态关键点实时跟踪目标实现人体姿态的实时检测与可视化核心技术MediaPipe Pose 模块 OpenCV成果成功检测 33 个关键点实时绘制骨架图支持摄像头和视频输入代码简洁易懂适合初学者学习 九、扩展方向进阶动作识别判断是否在做俯卧撑、深蹲等动作角度计算计算关节角度如膝盖弯曲度多人检测使用multi_pose模块AR叠加将虚拟元素叠加到人体上导出数据保存关键点坐标到 CSV 文件