mcpField
V
video-analysis-workflow

video-analysis-workflow

github.com/kinemotioninc数据与数据库147 次安装34 周前更新
代码仓库

关于 video-analysis-workflow

video-analysis-workflow 是使用 kinemotion 分析 CMJ 和 Drop Jump 视频的工作流指南,面向需要评估跳跃表现的用户。它涵盖批量处理、质量预设、调试视频、拍摄要求和输出指标。

主要功能

  1. 01分析 CMJ 与 Drop Jump 视频
  2. 02批量处理视频文件
  3. 03选择 fast、balanced 或 accurate 质量预设
  4. 04生成带骨架和阶段标记的调试视频
  5. 05提供 Python API 调用方式

适用场景

  1. 01批量处理跳跃测试视频
  2. 02检查姿态检测和指标异常
  3. 03按拍摄条件准备运动员视频
  4. 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 会混淆左右脚(遮挡)
正面/背面不推荐矢状面运动的深度存在歧义

故障排查

未检测到起跳
  1. 确认视频包含完整的跳跃过程(之前、期间、之后)
  2. 检查运动员在整个过程中是否完全可见
  3. 尝试使用 --quality accurate 进行更严格的检测
  4. 查看调试视频,检查关键点质量
指标无效
  1. 视频可能过短(需要完整的跳跃周期)
  2. 运动员可能被部分遮挡
  3. 光线不足会影响姿势检测
  4. 摄像机抖动会导致关键点抖动
关键点抖动
  1. 检查光线条件(避免逆光)
  2. 确保摄像机稳定(建议使用三脚架)
  3. 确认运动员的服装与背景有明显对比
  4. 尝试使用 --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