2026-05-30 · 5090-2 自主研究 agent 8 小時 · DINOv3 ViT-S/16 RoI HD · 7 組 ablation + ensemble/TTA 分析
單一資料增強重訓全部無效甚至更糟,但兩個犯不同錯的模型平均降誤報。已部署到 ppe-demo(model key safety_rope_ensemble,兩台同步)。真實 deploy 條件(val 選 threshold 0.443 固定套 test)FP 485 → 364(−25%),precision 0.804 → 0.845 同 recall 0.89。零重訓、零新標。
| 方案 | deploy thr | test FP | Precision | Recall |
|---|---|---|---|---|
| baseline v519 | 0.195 | 485 | 0.804 | 0.891 |
| ensemble v519+erase ⭐ | 0.443 | 364 | 0.845 | 0.890 |
註:研究階段報的「test 自選 thr」是 341→277(−19%,optimistic);真實部署 threshold 固定(val 選),baseline 的 threshold transfer 更不穩 → ensemble 實際優勢更大(−25%)。
| 方案 | P@R≥0.86 | FP | vs baseline | 成本 |
|---|---|---|---|---|
| baseline v519 | 0.849 | 341 | — | — |
| v519 + erase ensemble (mean) ⭐ | 0.874 | 277 | −64 (−19%) | 2× forward |
| v519 + erase ensemble (max) | 0.876 | 272 | −69 | 2× forward |
| + focal 三模型 | 0.876 | 273 | −68 | 3× forward |
| v519 + TTA hflip(免費單模型) | 0.856 | 324 | −17 (−5%) | 2× forward 同模型 |
| ablation | FP | vs 341 |
|---|---|---|
| erase_strong(全身遮擋) | 333 | −8(最好的單一,仍微弱) |
| erase(上半身遮擋) | 341 | 0 |
| focal loss | 358 | +17 |
| rotation | 384 | +43 |
| rotation + blur | 418 | +77 |
| hard-negative 補強 | 433 | +92(最糟) |
分類器走「有裝備 → 判定配戴正確」的捷徑,漏掉「是否真的掛勾到錨點」。每個 aug 在 A 場景修好捷徑、卻在 B 場景破壞線索——顧此失彼,所以單一指標都打平。但 erase 模型的誤判跟 baseline 不相關(它把 hatch 場景的 FP 換成 cvat 場景的 FP)。兩個犯不同錯的模型平均,抵消不相關的誤判——這就是 ensemble 贏在每個單一 aug 都無效之處。資料增強的價值在「多樣性」,被單模型指標藏起來了。
1. FP 高度集中:84% 誤報來自 10 個場景,45% 來自單一場景 task_2907(轉場影片,FP-rate 0.43)。是跨場景泛化失敗,不是資料不夠。
2. model 背了訓練集:train AP = 0.998,0.917 的 gap 純粹是泛化問題 → 所以「加資料重訓」對 safety_rope 一直沒用(補 hard-neg 反而 +92 FP,只是再背更多)。
3. task_2907 可能是不可消除的上限:「瞬間脫鉤」的單張標註本身就模糊,佔了近半 FP。建議人工 audit 量化多少是不可避免的單幀誤差。
~/safety_rope_research/)FP_RESEARCH_REPORT.md 完整報告 · ensemble_sweep.py ensemble 評估 · eval_fp.py FP/P@R 量測尺 · safety_rope_fp_a1_erase/best.pt erase 模型 ckpt · 7 組 ablation summary
核心方法論:以 固定 recall≥0.86 下的 precision / FP 絕對數為 KPI(不是 AP),並按場景拆分 FP,避免單一模糊場景掩蓋真實改善。