AIsnowboarding — 单板滑雪 AI 动作分析
用 AI + 物理量拆解单板滑雪动作。视频进 → 分析出:
- 骨架叠加视频(overlay.mp4)— 姿态骨架 + 实时物理量 HUD,直接当内容素材
- 指标曲线图(curves.png)— 体轴倾角 / 反弓 / 屈膝随时间变化,自动标出每个弯
- 逐弯数据表 + 中文报告(report.md / metrics.json)— 每个弯的倾角峰值、反弓、换刃速度、节奏对称性
- 峰值抓帧(peaks/*.jpg)— 每个弯最大倾角瞬间的注释截图,可做封面/对比图
使用
# 单个视频
.venv\Scripts\python.exe -m pipeline.analyze videos\alex\xxx.mp4 --outdir output\alex
# 按人批量(建基线库用 --no-video 提速,叠加视频做内容时再单独渲染)
.venv\Scripts\python.exe -m pipeline.analyze videos\alex --outdir output\alex --no-video
.venv\Scripts\python.exe -m pipeline.analyze videos\xuebao --outdir output\xuebao --no-video
# 汇总所有人的基线库 -> output/baseline.csv + baseline.md
.venv\Scripts\python.exe -m pipeline.aggregate
# 常用参数
# --model yolo11s-pose.pt 用更大的模型(更准,更慢)
# --rotate 90 手动旋转(手机竖拍横躺时)
# --max-frames 300 只分析前 N 帧(快速试跑)
# --no-video 只出数据和图,不渲染叠加视频
# --force 已分析过的也重跑
视频按人存放:videos/<rider>/(每folder有 _index.json 记录来源标题);结果在 output/<rider>/<视频名>/。torch 为 CUDA 版(RTX 1000 Ada)。
指标口径(视频版 = 几何与时序,诚实物理)
| 指标 | 定义 | 备注 |
|---|---|---|
| 体轴倾角 | 髋中点→肩中点连线偏离铅垂线的角度(带符号) | 图像平面投影,机位在正前/正后方时最准 |
| 反弓(angulation) | 躯干轴倾角 − 腿轴倾角 | 正值 = 躯干比腿更立,即反弓补偿 |
| 肩髋分离 | 肩连线与髋连线的夹角 | 视角相关,仅同机位对比有意义 |
| 屈膝角 | 髋-膝-踝三点夹角(左右平均,180°=直立) | |
| 重心起伏 | 髋中点到踝中点距离 / 全片中位腿长 | 无量纲,加压/释压时序 |
| 换刃速度 | 过零点处倾角变化率(°/s) | 每个弯的入弯干脆度 |
| 弯的切分 | 倾角信号过零 + 幅值/时长滤波 | 左倾/右倾按画面方向标注 |
视频测不了的(立刃角精确值、足底压力)留给传感器版(B 线),不假装能测。
项目路线(2026-08 定稿)
优先级 C > A > D > B:
- C 大神内容 + 动作库:本管线产出素材,创始人出镜账号,立即启动
- A 视频 AI 分析产品:本管线为引擎,雪季上线小程序
- D 教练网络服务:A 的工具 + CASI 教练远程复盘,雪季后段收费
- B 传感器套装:现成 IMU 组内测套装,雪季给深度绑定大神采独家数据
目录(2026-08-30 重整)
本项目位于 Desktop/ALEX/AIsnowboarding/。Obsidian vault 根在上一级 Desktop/ALEX/,
个人笔记、其他项目与本项目笔记同在一个库里;所有命令仍在本目录(项目根)下运行。
滑雪动作库/ Obsidian 数据笔记(视频笔记/滑手页/总览/CSV),由 pipeline.export_obsidian 全量生成
docs/ 项目文档(协议模板、内容脚本、战略),Obsidian 内可见
pipeline/ 分析管线源码(Obsidian 已排除)
site/ 生成的官网静态站点(Obsidian 已排除)
videos/<rider>/ 原始视频按人存放,含 _index.json(Obsidian 已排除)
output/<rider>/ 分析产物(Obsidian 已排除;vault 内嵌图是复制到 滑雪动作库/附件/ 的副本)
.venv/ Python 虚拟环境
ALEX 目录下的其他内容(与本项目无关):qixiuzhu/ 个人网站 · 学习/ 课程资料 ·
农机出海/ 农机市场调研 · 笔记/ 零散笔记。
分析后同步到 Obsidian:.venv\Scripts\python.exe -m pipeline.export_obsidian(在项目根运行)