关于 video-analysis-workflow
video-analysis-workflow 是使用 kinemotion 分析 CMJ 和 Drop Jump 视频的工作流指南,面向需要评估跳跃表现的用户。它涵盖批量处理、质量预设、调试视频、拍摄要求和输出指标。
主要功能
- 01分析 CMJ 与 Drop Jump 视频
- 02批量处理视频文件
- 03选择 fast、balanced 或 accurate 质量预设
- 04生成带骨架和阶段标记的调试视频
- 05提供 Python API 调用方式
适用场景
- 01批量处理跳跃测试视频
- 02检查姿态检测和指标异常
- 03按拍摄条件准备运动员视频
- 04通过 Python 脚本获取跳跃指标
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ kinemotioninc/ kinemotion --skill video-analysis-workflow安装后在 Claude Code 中输入/video-analysis-workflow确认已加载。
详细介绍
视频分析工作流
分析命令
# CMJ analysis
uv run kinemotion cmj-analyze <video> [--output debug.mp4]
# Drop Jump analysis
uv run kinemotion dropjump-analyze <video> [--output debug.mp4]
# Batch processing
uv run kinemotion cmj-analyze videos/*.mp4 --batch --workers 4
质量预设
| 预设 | 使用场景 | 权衡 |
|---|---|---|
fast | 快速预览、大批量处理 | 精度较低 |
balanced | 默认设置,适用于大多数场景 | 精度和速度均衡 |
accurate | 验证、研究 | 精度最高,但速度较慢 |
uv run kinemotion cmj-analyze video.mp4 --quality accurate
调试输出
遇到以下情况时,始终使用 --output debug.mp4:
- 指标似乎不正确
- 排查姿势检测问题
- 验证新视频
- 培训教练评估视频质量
调试视频会显示:
- 带关节角度的骨架叠加图
- 阶段标记(起跳、落地、最高点)
- 实时指标显示
摄像机角度建议
| 角度 | 建议 | 原因 |
|---|---|---|
| 45° 斜角 | 推荐 | 双腿清晰可见,追踪准确 |
| 90° 侧面 | 不推荐 | MediaPipe 会混淆左右脚(遮挡) |
| 正面/背面 | 不推荐 | 矢状面运动的深度存在歧义 |
故障排查
未检测到起跳
- 确认视频包含完整的跳跃过程(之前、期间、之后)
- 检查运动员在整个过程中是否完全可见
- 尝试使用
--quality accurate进行更严格的检测 - 查看调试视频,检查关键点质量
指标无效
- 视频可能过短(需要完整的跳跃周期)
- 运动员可能被部分遮挡
- 光线不足会影响姿势检测
- 摄像机抖动会导致关键点抖动
关键点抖动
- 检查光线条件(避免逆光)
- 确保摄像机稳定(建议使用三脚架)
- 确认运动员的服装与背景有明显对比
- 尝试使用
--quality accurate进行更好的滤波
旋转问题(手机视频)
- 手机视频通常带有旋转元数据
- kinemotion 会通过
video_io.py自动处理 - 如果问题仍然存在,请使用以下命令进行预处理:
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
视频要求
| 要求 | 规格 |
|---|---|
| 帧率 | 30+ fps(首选 60+) |
| 分辨率 | 最低 720p |
| 时长 | 能看到完整跳跃周期 |
| 光线 | 光线均匀,首选正面照明 |
| 背景 | 与运动员形成对比 |
| 摄像机 | 保持稳定,建议使用三脚架 |
输出指标
CMJ 指标
jump_height_cm:根据滞空时间计算flight_time_ms:滞空时间countermovement_depth_cm:起跳前的最低点takeoff_velocity_m_s:离地时的速度triple_extension:起跳时的髋、膝、踝角度
Drop Jump 指标
ground_contact_time_ms:落下后在地面的接触时间flight_time_ms:接触后的滞空时间reactive_strength_index:RSI = 滞空时间 / 接触时间drop_height_cm:初始落下高度(如可检测)
Python API 替代方案
from kinemotion import process_cmj_video, process_dropjump_video
# CMJ
metrics = process_cmj_video("video.mp4", quality="balanced")
# Drop Jump
metrics = process_dropjump_video("video.mp4", quality="balanced")
评论
支持 Markdown