Skip to content

Latest commit

 

History

History
69 lines (51 loc) · 3.39 KB

File metadata and controls

69 lines (51 loc) · 3.39 KB

RTMPose + ByteTrack + ST-GCN++ 独立重训复核

更新日期:2026-07-23

实验设置

  • 数据:与主实验相同的 GMDCSA24、COCO-17、64 帧输入。
  • 划分:相同的四折主体隔离 train/validation/test。
  • 训练:每折完整 300 轮,不早停;按验证集 Balanced Accuracy 保存最优模型。
  • 优化器与超参数:AdamW、学习率 3e-4、weight decay 1e-3、 dropout 0.5、batch size 16、AMP。
  • 新随机种子:5201、5202、5203、5204。
  • 第二次训练输出与第一次完全分开,没有覆盖原结果。

为什么加入 ByteTrack 后可能下降

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%,说明当前跟踪缓存和小样本验证选模存在明显方差。

结论

仅重复训练不能解决问题。当前证据支持:

  1. 保留 RTMPose + ST-GCN++ 作为更稳健的默认路线。
  2. ByteTrack 不应在丢轨时直接输出全零骨架;应增加短时轨迹保持、关键点插值和 re-ID/IoU 回接。
  3. 修复缓存后再用至少 3 个随机种子报告均值和标准差,而不是用一次最优结果排名。

第二次训练的机器可读结果位于 results/rtmpose_bytetrack_retrain_seed5200_summary.csv,四折学习曲线位于 results/rtmpose_bytetrack_retrain_seed5200/rtmpose_bytetrack_stgcnpp/learning_curves.png

ByteTrack v2 后续验证

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 后再提取姿态。