在数据、任务头、训练方法全部一致的前提下,只替换冻结 backbone 的权重。 val n=9370 · 每臂 5 个 seed · 配对 bootstrap 2000 次 · → 定性核验子页(图片 + 视频抽帧)
结论:微调不但没有带来收益,反而显著有害—— 现役的微调 backbone 被两个原版 backbone 同时压制。
打分头 Spearman:A 微调 0.7640 vs B 原版 0.8015, 差值 -0.0406,95% CI [-0.0469, -0.0347],完全不含 0。 微调后甚至不如通用检测预训练(A−C 也显著为负),所以不是「微调没用」,而是微调主动破坏了特征。 收益可以干净地拆开:pose 预训练 +0.0252, cricket 微调 -0.0406。
但图片域和视频域给出了不同的赢家(下一段说明为什么视频那侧要打折扣)。视频门控召回:A 64.0% · B 64.5% · C 77.6%。图片域门控 AUC 几乎饱和(0.9885 vs 0.9927,差 0.4%),到了视频域却是 64% vs 78%,差 13.6 个点——图片域的验证指标严重低估了真实差距。
| 臂 | 打分头 ρ(图片域,唯一可测处) | 门控视频召回(部署口径) | 相对现役 A |
|---|---|---|---|
| A · 微调 backbone | 0.7640 | 64.0% | 现役基准 |
| B · 原版 yolo11n-pose | 0.8015 | 64.5% | 打分显著更好,门控基本持平 |
| C · 原版 yolo11n(检测) | 0.7766 | 77.6% | 两个维度都优于 A |
C 严格优于现役 A:打分头显著更好(Δρ +0.0153,CI 不含 0), 视频门控召回还高 13.6 个点。所以「换掉 A」这件事没有争议。
B 还是 C:B 的打分排序最好(比 C 高 +0.0252), C 的视频门控召回高出 13.1 个点。两个头共享同一次前向,不能各挑各的。
倾向 B。「+13.6 点」这个数字经不起看图:定性核验显示 C 多放行的帧是
观众席、天空树梢、球场建筑,没有一帧有可打分的动作,且 81% 集中在广播品类。
valid_frac 把「处在 cricket 转播里」和「画面里有 cricket 动作」混为一谈,
所以 C 的门控优势更接近泄漏而非召回。反过来打分头那侧,B 的优势是人工可验证的——
A 在静态非动作图上系统性给高分。
三个 backbone 在 [4,6,8,10] 层结构完全同构(128/128/256/256 → 1536-d),参数量差异全在 pose 头的 19 vs 17 关键点上。
更关键的是,B 就是 A 微调之前的初始化权重——对照组不是「另一个模型」,而是「同一个模型微调前的状态」,因果归因很干净。
mu/sd(它们是特征分布的属性,跨臂复用是 bug 不是控制)generic_pose_score_v1 75,586 张cricket_negatives_v1 同一批 20,000GATE_BUNDLE 那个坑同类)。| 臂 | Spearman (mean±std) | MAE | 击球 | 投球 | 接球 | 守门 | 非动作 | 门控 AUC | 泄漏@0.5 |
|---|---|---|---|---|---|---|---|---|---|
| A · 微调 backbone | 0.7640 ±0.0054 | 0.1080 | 0.815 | 0.757 | 0.595 | 0.718 | 0.062 | 0.9885 | 0.0766 |
| B · 原版 yolo11n-pose | 0.8015 ±0.0162 | 0.0995 | 0.838 | 0.788 | 0.672 | 0.736 | 0.219 | 0.9894 | 0.0768 |
| C · 原版 yolo11n(检测) | 0.7766 ±0.0100 | 0.1052 | 0.812 | 0.766 | 0.650 | 0.681 | 0.186 | 0.9927 | 0.0669 |
| 臂 | 总体有效帧占比 | gate 均值 | 击球(手机) | 投球 | datateam | 击球(广播) | 街头 | 短视频集锦2 | 短视频集锦1 |
|---|---|---|---|---|---|---|---|---|---|
| A · 微调 backbone | 64.0% | 0.633 | 97% | 88% | 75% | 75% | 52% | 52% | 52% |
| B · 原版 yolo11n-pose | 64.5% | 0.638 | 98% | 89% | 79% | 75% | 58% | 50% | 56% |
| C · 原版 yolo11n(检测) | 77.6% | 0.760 | 100% | 93% | 84% | 84% | 87% | 66% | 72% |
A_finetuned vs B_stock_pose — Spearman 0.811A_finetuned vs C_stock_det — Spearman 0.871B_stock_pose vs C_stock_det — Spearman 0.876视频域上门控表现最好的是 C · 原版 yolo11n(检测)(77.6%)。
batsman_pose19_v0 是在 1.16 万张图上、用「定位击球手 19 个关键点」这个很窄的目标训了 100 epoch。
这会把表征往「找关节位置」上收窄,丢掉打分头真正需要的场景/纹理/上下文信息——典型的灾难性遗忘。
非动作那一列最能体现:A 掉到 ρ=0.062,
B 是 0.219。
要坐实这个机制,可以再做一个便宜的验证:只取浅层 [4,6] 特征重跑——如果是高层被窄目标带偏,浅层差距应当明显更小。
batsman_pose19_v0 作为关键点检测器仍是有效的(box mAP50 0.949 / pose mAP50 0.828),
它只是不适合当通用特征塔。
数据 results/ablation_v22/{report.json, video_eval.json, dupcheck.json} ·
脚本 ablation_v22_dupcheck.py → ablation_v22_run.py →
ablation_v22_analyze.py → ablation_v22_video.py →
build_ablation_v22_viewer.py
配色为验证过的 3 槽分类色板(浅色模式下 aqua 对比度 2.74:1,故每个图元都带直接数值标签并配完整表格)。