更新日期:2026-07-23
- 数据:与主实验相同的 GMDCSA24、COCO-17、64 帧输入。
- 划分:相同的四折主体隔离 train/validation/test。
- 训练:每折完整 300 轮,不早停;按验证集 Balanced Accuracy 保存最优模型。
- 优化器与超参数:AdamW、学习率
3e-4、weight decay1e-3、 dropout0.5、batch size 16、AMP。 - 新随机种子:5201、5202、5203、5204。
- 第二次训练输出与第一次完全分开,没有覆盖原结果。
RTMPose 原始缓存的 160 个片段均无全零骨架帧。加入 ByteTrack 后:
| 类别 | 片段数 | 全零骨架帧 | 缺失率 | 发生过缺失的片段 | 平均主轨覆盖率 |
|---|---|---|---|---|---|
| ADL | 81 | 285 / 5184 | 5.50% | 51 / 81 | 94.96% |
| Fall | 79 | 1233 / 5056 | 24.39% | 76 / 79 | 76.28% |
跌倒时人体容易快速变形、倒地、被遮挡或接近画面边缘,YOLO 人框和 ByteTrack 更容易暂时丢失主轨。当前流水线在丢轨帧填充全零骨架,因此产生了明显的类别相关缺失: 跌倒帧缺失率约为 ADL 的 4.4 倍。ST-GCN++ 不仅看到动作骨架,也会看到不稳定的 “全零时间段”,从而增大随机种子、折划分和验证集选模带来的波动。
| 实验 | Accuracy | Precision | Recall | Specificity | F1 | BA | TP | TN | FP | FN |
|---|---|---|---|---|---|---|---|---|---|---|
| RTMPose,无 ByteTrack | 86.88% | 89.19% | 83.54% | 90.12% | 86.27% | 86.83% | 66 | 73 | 8 | 13 |
| ByteTrack,第1次(seed 2027–2030) | 86.25% | 83.53% | 89.87% | 82.72% | 86.59% | 86.29% | 71 | 67 | 14 | 8 |
| ByteTrack,第2次(seed 5201–5204) | 83.12% | 87.14% | 77.22% | 88.89% | 81.88% | 83.05% | 61 | 72 | 9 | 18 |
第二次独立重训没有超过第一次,也没有超过不加 ByteTrack 的 RTMPose 路线。 两次 ByteTrack 训练的 BA 相差 3.24 个百分点,并且 Recall 从 89.87% 下降到 77.22%,说明当前跟踪缓存和小样本验证选模存在明显方差。
仅重复训练不能解决问题。当前证据支持:
- 保留
RTMPose + ST-GCN++作为更稳健的默认路线。 - ByteTrack 不应在丢轨时直接输出全零骨架;应增加短时轨迹保持、关键点插值和 re-ID/IoU 回接。
- 修复缓存后再用至少 3 个随机种子报告均值和标准差,而不是用一次最优结果排名。
第二次训练的机器可读结果位于
results/rtmpose_bytetrack_retrain_seed5200_summary.csv,四折学习曲线位于
results/rtmpose_bytetrack_retrain_seed5200/rtmpose_bytetrack_stgcnpp/learning_curves.png。
v2 优先使用主轨骨架;丢轨时回接同帧无跟踪 RTMPose;若两者仍缺失,则只对 有前后有效端点的短间隔插值。缓存审计结果:
- 主轨直接提供 8722 帧;
- 同帧 RTMPose 回接 1517 帧;
- 短间隔插值 1 帧;
- 剩余全零骨架 0 帧。
在相同随机种子、相同四折和相同 300 轮训练协议下,v2 得到 Accuracy 84.38%、 Precision 87.50%、Recall 79.75%、Specificity 88.89%、F1 83.44%、 BA 84.32%。虽然输入完整性改善,但仍低于原始 ByteTrack 的 86.29% 和无跟踪 RTMPose 的 86.83%。这表明逐帧在主轨姿态与无跟踪姿态之间切换会产生新的时序 不连续;下一版不应继续逐帧拼接,而应做整段轨迹级选择或在原始视频帧上完成 连续 re-ID 后再提取姿态。