网站建设与制作过程网站怎么做能赚钱吗
2026/6/21 13:12:31 网站建设 项目流程
网站建设与制作过程,网站怎么做能赚钱吗,网站建设方案申请报告,大连网站开发价格MediaPipe Pose实战教程#xff1a;运动康复评估工具开发 1. 引言 1.1 学习目标 本文将带你从零开始#xff0c;基于 Google 的 MediaPipe Pose 模型#xff0c;构建一个可用于运动康复评估的 AI 工具。你将掌握#xff1a; 如何部署和运行 MediaPipe Pose 模型实现人体…MediaPipe Pose实战教程运动康复评估工具开发1. 引言1.1 学习目标本文将带你从零开始基于 Google 的MediaPipe Pose模型构建一个可用于运动康复评估的 AI 工具。你将掌握如何部署和运行 MediaPipe Pose 模型实现人体 33 个关键点的高精度检测与可视化构建 WebUI 界面实现图像上传与结果展示将技术应用于实际场景——运动姿态分析与康复动作评估最终成果是一个本地化、轻量级、无需 GPU的完整应用适用于健身指导、物理治疗、动作矫正等场景。1.2 前置知识建议具备以下基础 - Python 编程基础熟悉函数、类 - Flask 或 FastAPI 简单 Web 开发经验 - 图像处理基本概念如 OpenCV 使用无需深度学习背景所有模型均已封装集成。1.3 教程价值本教程不同于简单的“调用 API”示例而是聚焦于工程落地全流程涵盖环境配置、代码实现、界面交互、异常处理与性能优化帮助你真正将 AI 技术转化为可用的产品原型。2. 核心功能解析2.1 MediaPipe Pose 模型原理简述MediaPipe 是 Google 推出的一套跨平台机器学习管道框架其中Pose 模型专为人体姿态估计设计。该模型采用两阶段推理架构检测阶段Detector在输入图像中定位人体区域输出边界框。关键点回归阶段Landmarker对裁剪后的人体区域进行精细化处理输出33 个 3D 关键点坐标x, y, z, visibility。技术优势 - 支持正面、侧面、动态动作等多种姿态 - 输出包含深度信息z 值可用于动作空间判断 - 轻量化设计CPU 上可达 30 FPS2.2 关键点定义与命名MediaPipe Pose 定义了 33 个标准化关键点覆盖全身主要关节类别包含关键点面部鼻尖、左/右眼、耳等上肢肩、肘、腕、手部关键点躯干髋、脊柱、胸骨等下肢膝、踝、脚尖等这些关键点可通过mp_pose.PoseLandmark枚举访问例如mp_pose.PoseLandmark.LEFT_WRIST。2.3 可视化机制说明系统使用 OpenCV MediaPipe 内置绘图工具自动绘制骨架连接线import cv2 from mediapipe import solutions # 绘制关键点与连接线 drawing solutions.drawing_utils pose_landmarks results.pose_landmarks if pose_landmarks: drawing.draw_landmarks( imageframe, landmark_listpose_landmarks, connectionssolutions.pose.POSE_CONNECTIONS, landmark_drawing_specdrawing.DrawingSpec(color(255, 0, 0), thickness2, circle_radius2), connection_drawing_specdrawing.DrawingSpec(color(255, 255, 255), thickness2) )红点关键点landmark颜色(255, 0, 0)表示 BGR 中的蓝色圆点白线骨骼连接connection表示关节间的物理连接关系3. WebUI 实现步骤详解3.1 环境准备确保已安装以下依赖包pip install flask opencv-python mediapipe numpy pillow✅ 所有组件均支持纯 CPU 运行无需 CUDA 或 GPU 驱动。3.2 目录结构规划project/ ├── app.py # 主服务入口 ├── static/ │ └── uploads/ # 用户上传图片存储路径 ├── templates/ │ └── index.html # 前端页面模板 └── utils/ └── pose_detector.py # 姿态检测核心逻辑3.3 核心代码实现utils/pose_detector.py—— 姿态检测模块import cv2 import mediapipe as mp class PoseDetector: def __init__(self, static_image_modeTrue, min_detection_confidence0.5): self.mp_drawing mp.solutions.drawing_utils self.mp_pose mp.solutions.pose self.pose self.mp_pose.Pose( static_image_modestatic_image_mode, model_complexity1, # 平衡精度与速度 smooth_landmarksTrue, enable_segmentationFalse, min_detection_confidencemin_detection_confidence ) def detect(self, image_path): image cv2.imread(image_path) rgb_image cv2.cvtColor(image, cv2.COLOR_BGR2RGB) results self.pose.process(rgb_image) if results.pose_landmarks: self.mp_drawing.draw_landmarks( imageimage, landmark_listresults.pose_landmarks, connectionsself.mp_pose.POSE_CONNECTIONS, landmark_drawing_specself.mp_drawing.DrawingSpec(color(0, 0, 255), thickness2, circle_radius2), connection_drawing_specself.mp_drawing.DrawingSpec(color(255, 255, 255), thickness2) ) # 提取关键点数据用于后续分析 landmarks [] for lm in results.pose_landmarks.landmark: landmarks.append({ x: lm.x, y: lm.y, z: lm.z, visibility: lm.visibility }) return image, landmarks return image, Noneapp.py—— Flask 服务主程序from flask import Flask, request, render_template, send_from_directory import os from utils.pose_detector import PoseDetector app Flask(__name__) UPLOAD_FOLDER static/uploads os.makedirs(UPLOAD_FOLDER, exist_okTrue) detector PoseDetector() app.route(/, methods[GET, POST]) def index(): if request.method POST: file request.files.get(image) if not file: return 请上传图片, 400 input_path os.path.join(UPLOAD_FOLDER, input.jpg) output_path os.path.join(UPLOAD_FOLDER, output.jpg) file.save(input_path) # 执行姿态检测 result_img, landmarks detector.detect(input_path) cv2.imwrite(output_path, result_img) return render_template(index.html, has_resultTrue, input_imguploads/input.jpg, output_imguploads/output.jpg) return render_template(index.html, has_resultFalse) app.route(/static/path:filename) def serve_static(filename): return send_from_directory(static, filename) if __name__ __main__: app.run(host0.0.0.0, port8080)templates/index.html—— 前端界面!DOCTYPE html html head titleAI 骨骼关键点检测/title style body { font-family: Arial; text-align: center; margin: 40px; } .upload-box { border: 2px dashed #ccc; padding: 20px; margin: 20px auto; width: 60%; } img { max-width: 45%; height: auto; margin: 10px; border: 1px solid #eee; } /style /head body h1‍♂️ AI 人体骨骼关键点检测/h1 p上传一张人像照片系统将自动绘制骨骼连接图/p form methodPOST enctypemultipart/form-data classupload-box input typefile nameimage acceptimage/* required button typesubmit分析姿态/button /form {% if has_result %} h3检测结果/h3 img src{{ url_for(static, filenameinput_img) }} alt原图 img src{{ url_for(static, filenameoutput_img) }} alt骨骼图 pstrong红点/strong关节点位置 | strong白线/strong骨骼连接/p {% endif %} /body /html3.4 启动与测试运行服务python app.py浏览器访问http://localhost:8080上传测试图片建议全身站立或做瑜伽动作查看生成的骨骼图⚠️ 注意事项 - 图片需包含清晰可见的人体 - 光照均匀有助于提升检测准确率 - 若多人入镜仅检测置信度最高者4. 应用于运动康复评估4.1 动作角度计算示例我们可以利用关键点坐标计算关节角度用于评估动作规范性。以肘关节弯曲角度为例import math def calculate_angle(a, b, c): 计算三点形成的角度B为顶点 ba [a[x] - b[x], a[y] - b[y]] bc [c[x] - b[x], c[y] - b[y]] 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) cosine_angle dot_product / (mag_ba * mag_bc) angle math.acos(max(-1, min(1, cosine_angle))) return math.degrees(angle) # 示例计算左臂角度 left_shoulder landmarks[mp_pose.PoseLandmark.LEFT_SHOULDER.value] left_elbow landmarks[mp_pose.PoseLandmark.LEFT_ELBOW.value] left_wrist landmarks[mp_pose.PoseLandmark.LEFT_WRIST.value] angle calculate_angle(left_shoulder, left_elbow, left_wrist) print(f左肘角度{angle:.1f}°)此功能可用于 - 判断患者是否完成指定幅度的动作 - 记录训练过程中的角度变化趋势 - 自动生成康复报告4.2 异常动作预警机制结合预设阈值可实现简单预警if angle 90: print(⚠️ 肘部未充分伸展请继续拉伸) elif angle 160: print(⚠️ 注意控制力度避免过度伸展) else: print(✅ 动作标准)未来可扩展为 - 多帧连续分析视频流 - 动作轨迹比对与标准模板对比 - 时间序列分析动作持续时间、稳定性5. 总结5.1 实践收获回顾通过本文实践我们完成了以下目标成功部署并运行了MediaPipe Pose高精度姿态检测模型实现了33 个关键点的实时检测与可视化构建了完整的WebUI 系统支持图像上传与结果展示探索了其在运动康复评估中的实际应用路径提供了可扩展的代码框架便于后续功能增强5.2 最佳实践建议优先使用 CPU 版本MediaPipe 在 CPU 上表现优异适合边缘设备部署增加输入校验检查图像尺寸、格式、是否含人等缓存机制优化避免重复处理相同图片支持视频输入升级为实时摄像头或视频文件分析导出结构化数据将关键点保存为 JSON 或 CSV便于数据分析获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询