本项目以统一数据、骨架接口、训练划分和评价指标比较跌倒检测路线,并为后续摄像头系统提供算法与软件基础。当前已完成 7 个姿态/跟踪前端 × 3 个时序分类器的 21 路正交网格,以及两条 RTMPose + ByteTrack 消融,共 23 条路线的四折 300 轮内部实验。下一阶段是设备接入、多人跟踪修复和现场数据验证。
- 一页式项目全貌:
项目概要.md - 23 路模型对比与最终结论:
docs/MODEL_ROUTE_COMPARISON.md - 全部路线、全部指标:
docs/ALL_ROUTE_METRICS.md - RTMPose + ByteTrack 独立重训与丢轨分析:
docs/RTMPOSE_BYTETRACK_RETRAIN.md - RTMPose 正式系统演示与滑窗冒烟验证:
docs/FINAL_SYSTEM_DEMO.md - 部署对齐滑窗训练、指标与复现:
docs/SLIDING_WINDOW_TRAINING.md - MMPose Hourglass52 环境与实验:
docs/MMPOSE_HOURGLASS.md - 正式内部结果:
results/benchmark_summary.csv - 正式外部结果:
results/mcfd_external_benchmark/summary.csv - 中文阶段报告:
results/三路线阶段实验报告.md - 错误与融合分析:
results/mcfd_error_analysis/错误分析报告.md - 典型错误视频:
outputs/mcfd_error_cases/
固定阈值 0.5 下的核心结果:
| 路线 | GMDCSA24 Accuracy | MCFD Accuracy | MCFD Recall | MCFD F1 | MCFD ROC-AUC |
|---|---|---|---|---|---|
| RTMPose + ST-GCN++ | 86.88% | 62.41% | 60.30% | 60.61% | 64.39% |
| YOLO-Pose + ST-GCN++ | 78.75% | 60.00% | 66.33% | 61.40% | 64.84% |
| YOLO-Pose + CTR-GCN | 77.50% | 58.55% | 62.81% | 59.24% | 61.38% |
MCFD 是未参与训练的外部数据,性能下降反映跨数据集、跨视角和动作定义差异。不能仅凭 GMDCSA24 内部准确率决定系统模型。
fall_benchmark/
├─ app/ 预录视频推理、状态机和命令行入口
├─ configs/ 实验与系统参数
├─ data/
│ ├─ raw/ 原始视频,不提交 Git
│ ├─ metadata/ 视频、片段和姿态缓存清单
│ ├─ splits/ 固定训练/验证/测试划分
│ ├─ poses/ RTMPose、YOLO-Pose 缓存,不提交 Git
│ └─ gcn/ 统一的 N,C,T,V,M 图卷积输入
├─ models/ 正式 ST-GCN++、CTR-GCN 实现
├─ scripts/ 数据准备、训练、评估与可视化入口
├─ tests/ 决策状态机测试
├─ results/
│ ├─ benchmark/ 正式三路线 12 个四折模型和内部结果
│ ├─ mcfd_external_benchmark/ 正式权重的 MCFD 外部结果
│ ├─ mcfd_error_analysis/ 错误、视角和融合分析
│ ├─ gcn_matrix/ 本地早期四路线探索,不发布
│ └─ mcfd_external/ 本地早期权重外部探索,不发布
├─ outputs/ 预览视频和图片,不提交 Git
└─ docs/ 复现、架构、结果和系统接口文档
- GMDCSA24:160 个视频,81 个 ADL、79 个跌倒;4 折受试者隔离,每个视频恰好进入一次汇总测试。
- MCFD:场景 1—23 的 552 个标注片段,264 个跌倒、288 个 ADL;cam1 仅用于阈值校准,cam3 用于开发观察,cam2/4/5/6/7/8 共 415 段作为跨视角外部测试。
- 统一骨架:COCO-17,通道为归一化
x、y和置信度。 - 统一输入:
[N, C, T, V, M] = [样本, 3, 64, 17, 1]。 - 23 路模型比较仍使用每段均匀采样 64 帧;系统默认权重已改用连续 64 帧、 步长 16 帧的部署对齐滑窗数据训练。
数据来源、许可和弃用数据集见 DATA_SOURCES.md。
已验证环境:Windows、Python 3.12.13、NVIDIA RTX 4060 Laptop GPU、PyTorch 2.12.1+cu130。
cd C:\Users\HP\Documents\挑战杯\fall_benchmark
.\.venv\Scripts\Activate.ps1
$env:YOLO_CONFIG_DIR = (Resolve-Path .\.ultralytics).Path依赖说明见 docs/REPRODUCE.md。项目中的 .venv 已包含当前实验依赖。
检查已准备的数据:
python scripts/verify_prepared_data.py --project .重新训练四条路线的四折模型:
python scripts/run_three_routes.py --project . --epochs 80 --patience 15 --batch-size 16
python scripts/summarize_benchmark.py --results results/benchmark --output results300轮上限与早停对照实验已保存在 results/benchmark_e300/,学习曲线和结论见
docs/TRAINING_E300.md。复现实验:
python scripts/run_three_routes.py --project . --epochs 300 --patience 15 `
--batch-size 16 --output-root results/benchmark_e300
python scripts/plot_learning_curves.py --results results/benchmark_e300固定跑满300轮、不使用早停的实验位于 results/benchmark_e300_full/,结论见
docs/TRAINING_E300_FULL.md。命令:
python scripts/run_three_routes.py --project . --epochs 300 --batch-size 16 `
--no-early-stopping --output-root results/benchmark_e300_full
python scripts/plot_learning_curves.py --results results/benchmark_e300_full用正式权重重新运行 MCFD 外部测试:
python scripts/evaluate_mcfd_ensemble.py重新生成错误分析和典型案例:
python scripts/analyze_mcfd_errors.py
python scripts/render_mcfd_error_cases.py生成适合汇报展示的前三路线、多跌倒片段对比视频:
python scripts/visualize_top3_routes_multiclip.py默认比较 YOLO-Pose + ByteTrack + ST-GCN++、RTMPose + ST-GCN++
和 RTMPose + ByteTrack + ST-GCN++,连续展示 5 个跨主体跌倒片段;
输出到 outputs/previews/top3_routes_five_falls.mp4。如需检查全部
8 个姿态/跟踪前端,可运行 python scripts/visualize_all_pose_frontends.py。
运行预录视频系统原型:
python -m app.cli `
--input "data/raw/GMDCSA24/Subject 1/Fall/01.mp4" `
--output-dir outputs/demo默认使用部署对齐的 RTMPose + ST-GCN++ 四折滑窗权重,输出 annotated.mp4、
windows.jsonl、events.jsonl 和 summary.json。默认使用 64 帧窗口、
16 帧步长、连续 3 个窗口、至少 3/4 折模型同意才确认报警;姿态有效率
低于 50% 时输出 UNKNOWN。
更完整的数据准备和复现实验步骤见 docs/REPRODUCE.md。
- 若优先总体均衡,使用 RTMPose + ST-GCN++ 作为单路线基线。
- 若优先少漏报,使用 YOLO-Pose + ST-GCN++,并在独立验证集校准阈值。
- 算力允许时,对两条 ST-GCN++ 路线做概率平均;当前外部测试的 Balanced Accuracy 为 62.76%,略高于任一单路线。
- 姿态完全缺失时必须输出
UNKNOWN、重试姿态检测或切换后端,不能把全零骨架直接分类。 - 报警应由多个连续滑动窗口确认,并保存报警前后的视频证据。
系统模块、状态机和 JSON 接口见 docs/SYSTEM_DESIGN.md。
| 文档 | 内容 |
|---|---|
docs/REPRODUCE.md |
从数据清单到训练、外部评估的复现命令 |
docs/SLIDING_WINDOW_TRAINING.md |
部署对齐滑窗数据、300 轮训练、指标与系统复测 |
docs/EXPERIMENTS.md |
正式协议、指标、结果和已知限制 |
docs/SYSTEM_DESIGN.md |
软件模块、在线流程、状态机和接口 |
DATA_SOURCES.md |
数据来源、许可、完整性与取舍 |