专为羽毛球训练和教学设计的AI视频分析工具,支持GPU加速、实时姿态分析、装备检测和对比回放。
- ✅ 双检测引擎 - YOLOv8(多人/快速)+ MediaPipe(单人/高精度)
- YOLOv8: 120 FPS (GPU) | 17关键点 | 多人检测
- MediaPipe: 40-60 FPS | 33→17关键点 | 96%+精度
- ✅ 5种线条样式 - OpenPose风格渐变、置信度驱动、部位分级等
- OpenPose风格: 躯干粗四肢细,中心到端点渐变 ⭐ 推荐
- 置信度驱动: 根据检测精度调整线宽
- 部位分级: 躯干/头部/手臂/腿部不同粗细
- ✅ GPU 加速 - RTX 4090 可达 120 FPS,CPU模式 10-20 FPS
- ✅ 装备识别 - 自动检测羽毛球拍和羽毛球,中文标签显示
- ✅ 分体颜色标注 - 头部/躯干/手臂/腿部分色显示,清晰易懂
- ✅ 慢动作回放 - 1x-10x 可调速度,帧插值技术
- ✅ 三屏对比显示 - 原视频 vs 分析结果 vs 姿态数据
- ✅ 实时姿态分析 - 角度计算、问题识别、改进建议
- ✅ 同步播放控制 - 播放/暂停、进度条、帧号显示
- ✅ 历史记录管理 - 自动记录处理历史,一键快速访问
- ✅ AI 动作分析 - 自动检测姿势问题,给出专业建议
- ✅ 数据持久化 - JSON格式保存分析数据,可重复查看
- ✅ 配置管理 - 保存/加载个性化设置
- ✅ 音频保留 - 完整保留原视频音频
┌─────────────────────────────────────────────────────────────────┐
│ 羽毛球训练视频对比分析系统 │
├──────────────────────┬──────────────────────┬────────────────────┤
│ │ │ 姿态分析 │
│ 原始视频 │ 处理结果 │ │
│ │ ┌────────────────┐ │ 关键角度: │
│ │ │ 姿态骨架标注 │ │ ✓ 右肘: 167.0° │
│ │ │ 装备检测显示 │ │ ✗ 左肘: 125.0° │
│ │ │ 中文标签 │ │ ✓ 躯干倾斜: 2.6° │
│ │ └────────────────┘ │ ✓ 右膝: 148.1° │
│ │ │ │
│ │ │ 问题: │
│ │ │ • 弱球新手需酷失败 │
│ │ │ │
│ ▶/⏸ ⏮ ═══════○═══ 150 / 300 │ 建议: │
├──────────────────────┴──────────────────────┤ • 击球时右臂... │
│ 操作 │ │
│ ┌──────────┬──────────┐ │ │
│ │开始处理 │停止处理 │ │ │
│ └──────────┴──────────┘ │ │
│ 历史: [选择历史记录 (5条)] [刷新] │ │
│ ┌────┬────┬────┐ │ │
│ │保存│加载│重置│ │ │
│ └────┴────┴────┘ │ │
│ │ │
│ 处理进度 │ │
│ ✓ GPU已启用 │ │
│ ⏳ 处理进度: 50.0% (150/300) - 98.5 FPS │ │
└────────────────────────────────────────────┴────────────────────┘
# 一键修复GPU(RTX系列显卡必须)
scripts\fix_gpu.bat
# 验证GPU状态
scripts\test_gpu.bat成功标志:
✓ GPU已启用: NVIDIA GeForce RTX 4090
✓ CUDA版本: 12.1
✓ 性能测试: 120+ FPS
无需额外配置,但速度较慢(10-20 FPS)
# 方式1:双击批处理文件
run_compare_gui.bat
# 方式2:命令行
venv\Scripts\activate
python pose_detection_compare_gui.py- 点击"浏览"选择输入视频
- 设置输出路径(可选,默认添加_processed后缀)
- 调整参数(模型、显示、颜色、分析设置)
- 点击"开始处理"
- 等待处理完成(进度信息实时显示)
- 自动加载到播放器,查看分析结果
- 点击"历史"下拉框
- 选择之前处理过的视频
- 立即加载并播放
- 无需重新处理
播放操作:
- 🎹 空格键 - 播放/暂停切换(防抖动,连续点击无卡死)
- 🖱️ 点击按钮 - ▶播放 / ⏸暂停 自动切换
- 🔄 重置按钮 - 回到第1帧,进度归零
- 📊 进度条 - 拖动跳转,播放时实时同步
- 🔢 帧号显示 - 当前帧 / 总帧数(从1开始)
进度条特性:
- 实时同步:播放时自动跟随视频位置
- 智能跳转:小幅度跳转无H.264警告
- 精确定位:拖动到任意帧,立即显示
- 帧号提示:清晰显示当前播放位置
检测引擎选择(v1.8新功能):
| 引擎 | 速度 | 精度 | 关键点 | 多人 | 适用场景 |
|---|---|---|---|---|---|
| YOLOv8 | ⚡⚡⚡ 120 FPS | 70% | 17 | ✅ | 多人训练课堂 |
| MediaPipe | ⚡⚡ 40-60 FPS | 96%+ | 33→17 | ❌ | 1v1精细指导 |
YOLOv8 模型选择(性能 vs 精度):
yolov8n-pose.pt- 快速(推荐日常训练)yolov8s-pose.pt- 平衡yolov8m-pose.pt- 精确(推荐专业分析)
MediaPipe 复杂度:
0- Lite模式(最快,适用CPU)1- Full模式(平衡,推荐)2- Heavy模式(最精确,适用高端GPU)
显示选项:
- 骨架线条:显示人体骨架连接
- 关键点:显示17个关节位置
- 边界框:显示人物检测框
- 置信度:显示检测置信度分数
- 线宽/点大小:可调节(2-10px)
分体颜色标注:
- 🔴 红色 - 头部(0-4号关键点)
- 🟢 绿色 - 手臂(5-10号关键点)
- 🔵 蓝色 - 躯干(肩膀和臀部连接)
- 🟡 黄色 - 腿部(11-16号关键点)
自动识别:
- 羽毛球拍:使用COCO的tennis racket近似检测
- 羽毛球:使用COCO的sports ball近似检测
- 中文标签:PIL字体渲染,支持微软雅黑/黑体/宋体
- 边界框:黄色框标注,清晰可见
检测设置:
- 启用/禁用装备检测
- 显示/隐藏边界框
- 显示/隐藏标签
- 可调置信度阈值(0.0-1.0)
注意: 标准COCO模型对羽毛球装备识别精度有限,建议训练专用模型以提高准确度。
自动计算:
- 右肘角度(正常范围:140°-180°)
- 左肘角度(正常范围:140°-180°)
- 右膝角度(正常范围:145°-165°)
- 左膝角度(正常范围:145°-165°)
- 躯干倾斜(正常范围:0°-20°)
智能分析:
- ✓ 绿色标记:角度正常
- ✗ 红色标记:角度异常
- 问题识别:自动列出姿态问题
- 改进建议:给出专业指导意见
数据显示:
- 实时显示:播放时同步更新
- JSON保存:持久化到文件
- 历史查看:加载历史视频时自动显示
自动记录:
- 处理完成后自动添加到历史
- 记录原视频、处理视频、姿态数据路径
- 添加时间戳和显示名称
- 最多保存20条,自动删除最旧的
智能清理:
- 启动时自动检查文件是否存在
- 刷新按钮手动清理无效记录
- 删除视频文件后自动从列表移除
- 保持历史列表干净有效
快速访问:
- 下拉框显示所有历史记录
- 点击选择,立即加载
- 无需重新处理
- 无需查找文件路径
配置保存:
- 历史记录保存到
compare_config.json - 启动时自动加载
- 可手动编辑配置文件
- 团队共享配置(相同文件路径)
紧凑布局:
- 操作区域高度减少40%(~200px → ~120px)
- 按钮横向排列,3行紧凑布局
- padding和spacing大幅减少
- 处理信息区增加80px可用空间
操作区域:
- 第一行:开始处理 | 停止处理
- 第二行:历史: [下拉选择框] [刷新]
- 第三行:保存配置 | 加载配置 | 重置配置
空间利用:
- 更多空间用于显示处理进度
- 更多空间用于显示日志信息
- 更清晰的信息展示
- 更流畅的用户体验
ytDownload/
├── 🎯 核心程序
│ ├── pose_detection_compare_gui.py # 对比分析GUI(v1.7.1)⭐ 推荐
│ ├── pose_detection_training.py # 训练专用CLI版(GPU加速)
│ ├── pose_detection_advanced.py # 高级CLI版(物体检测)
│ ├── pose_detection_gui.py # 简单GUI版
│ ├── pose_detection.py # 基础CLI版
│ └── sports_equipment_detector.py # 装备检测模块
│
├── 📚 文档目录
│ ├── 界面优化和历史记录功能.txt # v1.7功能说明
│ ├── 视频跳转优化说明.txt # v1.7.1跳转优化
│ ├── 播放控制线程安全修复.txt # 空格键修复
│ ├── 视频回放改进说明.txt # v1.6回放功能
│ ├── 播放控制改进说明.txt # v1.5+播放控制
│ ├── 姿态数据回放说明.txt # 姿态数据功能
│ ├── 中文显示修复说明.txt # 中文标签显示
│ ├── 装备检测说明.txt # 装备检测功能
│ ├── 颜色修复说明.txt # 分体颜色标注
│ ├── v1.4功能总结.txt # v1.4版本总结
│ └── v1.6功能总结.txt # v1.6版本总结
│
├── 📖 技术文档
│ ├── COMPARE_GUI_README.md # GUI详细使用说明
│ ├── QUICKSTART.md # 5分钟快速入门
│ ├── TRAINING_GUIDE.md # 完整使用教程
│ ├── CUDA_INSTALL_GUIDE.md # GPU安装详解
│ ├── README_TRAINING.md # 训练版功能说明
│ ├── MODEL_COMPARISON.md # 模型对比
│ └── BUILD_EXE.md # 打包说明
│
├── 🔧 快捷脚本
│ ├── fix_gpu.bat # 修复GPU(必须运行)
│ ├── test_gpu.bat # 测试GPU性能
│ ├── check_nvidia.bat # 环境诊断
│ ├── run_gui.bat # 启动简单GUI
│ └── run_pose_detection.bat # 快速运行CLI
│
├── 🛠️ 工具程序
│ ├── benchmark_gpu.py # GPU性能测试
│ └── build_exe.py # EXE打包工具
│
├── 📋 配置文件
│ ├── compare_config.json # GUI配置(自动生成)
│ ├── requirements.txt # Python依赖
│ └── START_HERE.txt # 快速参考卡
│
├── run_compare_gui.bat # 启动对比分析GUI
├── README.md # 本文件
└── CLAUDE.md # AI开发文档
| 配置 | 处理速度 | 1分钟视频处理时间 | 显存占用 | 适用场景 |
|---|---|---|---|---|
| CPU模式 | 10-20 FPS | 3-6分钟 | ~2GB RAM | 备用方案 |
| GPU (RTX 4090) | 100-150 FPS | 5秒 | ~4GB VRAM | 日常训练 ⭐ |
| GPU + yolov8m-pose | 60-80 FPS | 10-15秒 | ~6GB VRAM | 专业分析 |
| GPU + 慢动作4x | 40-60 FPS | 15-20秒 | ~4GB VRAM | 技术诊断 |
需求: 现场录制视频,快速处理,立即讲解
操作流程:
- 录制学员动作视频(手机/相机)
- 导入到电脑,启动GUI
- 选择视频,点击"开始处理"
- 5-10秒处理完成
- 播放对比,指出问题
- 查看姿态数据,给出建议
时间成本: 1分钟视频 < 15秒处理时间
需求: 详细分析动作,找出技术问题
操作流程:
- 处理学员训练视频
- 使用慢动作回放(2-4x)
- 查看AI姿态分析
- 记录关键帧数据
- 对比正确动作标准
- 制定改进计划
分析维度:
- 关节角度是否正常
- 身体平衡是否稳定
- 击球时机是否准确
- 动作连贯性如何
需求: 对比专业选手和学员动作差异
操作流程:
- 处理专业选手视频
- 处理学员视频
- 从历史记录快速切换查看
- 对比相同动作的姿态数据
- 找出差异点
- 制定针对性训练方案
对比要点:
- 起跳高度和时机
- 挥拍轨迹和速度
- 落地姿势和平衡
- 身体协调性
需求: 跟踪学员进步,量化训练效果
操作流程:
- 定期录制学员动作(每周/每月)
- 处理并保存到历史记录
- 对比不同时期的姿态数据
- 量化角度改善程度
- 评估训练效果
- 调整训练计划
评估指标:
- 关节角度改善度
- 动作稳定性提升
- 错误动作减少率
- 技术标准符合度
- 显卡: NVIDIA RTX 3060 或更高(6GB+ 显存)
- CPU: Intel i5-10代 / AMD Ryzen 5 5000 或更高
- 内存: 16GB RAM
- 硬盘: SSD(视频读取更快)
- 系统: Windows 10/11 64位
- Python: 3.8 - 3.11
- CPU: Intel i5-8代 / AMD Ryzen 5 3000
- 内存: 8GB RAM
- 硬盘: 50GB 可用空间
- 系统: Windows 10/11 64位
- 速度: 约10-20 FPS(较慢)
- Python 3.8+
- PyTorch 2.0+ (CUDA版本推荐)
- OpenCV 4.8+
- ultralytics (YOLOv8)
- tkinter (GUI)
- Pillow (中文字体)
- FFmpeg (音频复制,可选)
检查GPU状态:
python -c "import torch; print('CUDA可用:', torch.cuda.is_available())"如果显示 CUDA可用: False:
# 立即运行GPU修复脚本
scripts\fix_gpu.bat
# 验证修复结果
scripts\test_gpu.bat成功后应该看到:
✓ CUDA可用: True
✓ GPU名称: NVIDIA GeForce RTX 4090
✓ CUDA版本: 12.1
✓ 性能测试: 120+ FPS
推荐目录结构:
羽毛球训练视频/
├── 原始视频/
│ ├── 2025-01-15_学员A.mp4
│ ├── 2025-01-15_学员B.mp4
│ └── ...
├── 处理结果/
│ ├── 2025-01-15_学员A_processed.mp4
│ ├── 2025-01-15_学员A_processed_pose_data.json
│ ├── 2025-01-15_学员B_processed.mp4
│ └── ...
└── 分析报告/
└── ...
注意事项:
- 保持原视频和处理视频在同一文件夹(方便历史记录自动匹配)
- 使用默认命名规则(自动添加_processed后缀)
- 不要手动重命名处理后的文件
- 定期清理不需要的视频文件
推荐格式:
- 容器格式:MP4
- 视频编码:H.264
- 音频编码:AAC
- 分辨率:1080p (1920x1080)
- 帧率:30fps 或 60fps
拍摄技巧:
- 光线充足,避免逆光
- 拍摄距离:能完整看到人物动作
- 拍摄角度:侧面或斜侧面最佳
- 背景简洁,避免干扰
- 单人入镜效果最好
原因: GPU未启用或驱动问题
解决:
# 方案1:修复GPU
scripts\fix_gpu.bat
# 方案2:检查驱动
scripts\check_nvidia.bat
# 方案3:更新显卡驱动
访问 NVIDIA 官网下载最新驱动原因: 模型太大或视频分辨率过高
解决:
# 使用较小模型
选择 yolov8n-pose.pt
# 或禁用FP16
取消勾选"使用FP16"选项原因: H.264视频解码技术性警告(已优化)
说明:
- v1.7.1已优化跳转逻辑
- 警告已自动抑制
- 不影响任何功能
- 如仍有问题,查看
视频跳转优化说明.txt
原因: 多线程冲突(已修复)
说明:
- v1.6.1已添加防抖动机制
- 300ms内重复点击自动忽略
- 线程安全检查防止冲突
- 详见
播放控制线程安全修复.txt
原因: 使用通用COCO模型近似检测
改进:
- 调高置信度阈值(0.3 → 0.5)
- 训练专用羽毛球装备检测模型
- 使用
sports_equipment_detector.py的 CustomSportsDetector
原因: 系统缺少中文字体
解决:
- 确保Windows系统字体正常
- 检查以下字体是否存在:
- C:/Windows/Fonts/msyh.ttc(微软雅黑)
- C:/Windows/Fonts/simhei.ttf(黑体)
- C:/Windows/Fonts/simsun.ttc(宋体)
- 重新安装系统字体
原因: 配置文件损坏或文件已移动
解决:
# 方案1:刷新历史记录
点击GUI中的"刷新"按钮
# 方案2:重置配置
点击"重置配置"按钮
# 方案3:手动编辑
删除 compare_config.json,重新启动原因: 模型精度不够或视频质量问题
改进:
- 使用更大模型(yolov8m-pose.pt)
- 提高视频质量(1080p, 良好光线)
- 确保人物完整入镜
- 避免严重遮挡
原因: FFmpeg未安装
解决:
# 方案1:安装FFmpeg
下载 https://ffmpeg.org/download.html
添加到系统PATH
# 方案2:使用moviepy
pip install moviepy
# 验证
ffmpeg -version原因: 编解码器问题
解决:
- 安装完整的视频解码器包(如K-Lite Codec Pack)
- 使用VLC播放器
- 检查输出视频文件是否完整
- 查看处理日志是否有错误
- ✅ 5种骨架线条样式 - 专业可视化效果
- ✅ OpenPose风格渐变 - 躯干粗四肢细,中心到端点渐变
- ✅ 置信度驱动线宽 - 检测精度可视化
- ✅ 部位分级线宽 - 根据身体部位重要性调整
- ✅ 由粗到细样式 - 从躯干向外递减
- ✅ GUI样式选择 - 下拉框一键切换
- ✅ 配置持久化 - 样式设置自动保存
- ✅ 性能优化 - OpenPose渐变开销<5%
- ✅ MediaPipe引擎集成 - 33关键点高精度检测
- ✅ 智能关键点映射 - MediaPipe 33点 → COCO 17点兼容
- ✅ 引擎自由切换 - GUI下拉选择 YOLOv8/MediaPipe
- ✅ 性能对比表 - 速度、精度、适用场景一目了然
- ✅ MediaPipe复杂度 - Lite/Full/Heavy三档可调
- ✅ 配置持久化 - 引擎选择保存到配置文件
- ✅ 统一绘制接口 - 两种引擎共用骨架绘制逻辑
- ✅ 独立测试脚本 -
mediapipe_detector.py可单独运行
- ✅ 优化视频跳转逻辑,减少H.264警告
- ✅ 智能跳转策略(小幅度逐帧,大幅度直接)
- ✅ 抑制技术性警告,保持控制台清爽
- ✅ 改进用户体验
- ✅ 紧凑界面布局,操作区域减少40%
- ✅ 智能历史记录系统(最多20条)
- ✅ 下拉选择快速访问
- ✅ 自动清理无效记录
- ✅ 配置文件增强
- ✅ 修复连续点击空格键卡死问题
- ✅ 添加播放控制防抖动机制(300ms)
- ✅ 线程安全检查防止重复创建
- ✅ 暂停时等待线程优雅退出
- ✅ 直接加载已处理视频功能
- ✅ 播放时进度条实时同步
- ✅ 进度条重置修复
- ✅ 帧标签显示优化(从1开始)
- ✅ 播放/暂停按钮合并
- ✅ 空格键快捷键
- ✅ 姿态数据实时显示
- ✅ 羽毛球装备检测
- ✅ 中文标签显示(PIL字体渲染)
- ✅ 装备检测设置界面
- ✅ 姿态分析数据持久化
- ✅ JSON格式保存
- ✅ 数据回放功能
- ✅ 分体颜色标注(头/躯干/手臂/腿)
- ✅ 颜色自定义功能
- ✅ 音频复制功能
- ✅ FFmpeg/moviepy支持
- ✅ 基础姿态检测
- ✅ 视频对比播放
- ✅ GPU加速支持
生成诊断报告:
scripts\check_nvidia.bat > diagnosis.txt报告内容包括:
- GPU型号和驱动版本
- CUDA版本和兼容性
- PyTorch安装状态
- 性能测试结果
- 常见问题建议
- 查看文档 - 文档目录包含所有功能说明
- 运行诊断 - 使用
check_nvidia.bat检查环境 - 查看日志 - GUI处理进度窗口显示详细日志
- 配置文件 - 检查
compare_config.json配置
- AI开发 - 查看
CLAUDE.md - GUI详解 - 查看
COMPARE_GUI_README.md - 训练版 - 查看
docs/README_TRAINING.md
MIT License - 自由使用和修改
- YOLOv8 - Ultralytics团队
- PyTorch - Facebook AI Research
- OpenCV - OpenCV团队
- FFmpeg - FFmpeg团队
新手5步快速上手:
- 修复GPU → 运行
scripts\fix_gpu.bat - 验证状态 → 运行
scripts\test_gpu.bat - 启动GUI → 双击
run_compare_gui.bat - 处理视频 → 选择视频,点击"开始处理"
- 查看结果 → 自动播放,查看姿态分析
详细教程:
- 📖 快速入门:
docs/QUICKSTART.md - 📖 完整教程:
docs/TRAINING_GUIDE.md - 📖 功能说明:查看文档目录各个说明文件
遇到问题?
- 🔧 GPU问题 →
docs/CUDA_INSTALL_GUIDE.md - 🎬 使用问题 →
COMPARE_GUI_README.md - 🐛 报告问题 → 查看文档或运行诊断工具
开始享受AI辅助羽毛球训练! 🏸