📦 模型下載https://pub-478929a98a5c440cb22c2241c0bde314.r2.dev/factory_ppe_v20260601b/best.pt

👷 factory_ppe 22-attr v20260601b

訓練日期 2026-06-02 · 5090-2 GPU0 · MobileNetV3-L partial-label BCE · cvat #12 +17 task(含 IRODA-AI 新場域)· 修 export 超時丟 task bug 重跑

⚠️ 為何叫 v601b:v601 因 export bug 作廢

v601 首次訓練 val_mAP 只有 0.927(vs v530 0.968,退 4pp)。根因不是模型——是 export 對 cvat annotations 抓取超時時靜默跳過整個 task(無 retry,except: continue)。這次靜默丟了 2 個 task:task 2132(8005 個 Train crop) + task 5203(當天新加的 IRODA-AI val 場域),兩個在 cvat 都還在、completed、subset 正常。

修法:export 抓 ann/meta 改成 retry 4 次 + 退避,全失敗就中止整批(fail-loud,寧可重跑也不靜默缺資料)。v601b re-export 0 超時,2132/5203 全回來,manifest 186,796 row(207 task)比 v530 還多。

0.9626
val mAP
0.9470
test mAP
0.9276
macro F1
186.8k
crops(207 task)

📊 vs v530:弱屬性有得有失

attrv530 APv601b APΔ
sleeves0.6760.826+15.0pp
cotton_gloves0.7520.869+11.7pp
hair_cover0.8510.634−21.7pp
face_mask0.9810.977−0.4
full_face_mask0.9890.989=
aluminized_apron1.0001.000=
整體 val_mAP0.96790.9626−0.5pp(variance 內)

sleeves / cotton_gloves 大幅改善(一直是弱點,新資料補到位)。整體 mAP 跟 v530 同級。

🎯 誤報根因分析(SOP)— hair_cover 退步是 variance 還是真退?

hair_cover AP 0.851→0.634 是唯一隱憂,但有幾個訊號指向 tiny-sample variance 而非結構性退步:

處置:v601b 上成 ppe22_v601b 並列觀察(production 主力 ppe22_v521 不動),hair_cover 單獨追蹤——後續補 hair_cover 正樣本或重跑一輪驗 variance,再決定是否升 production。

⚙️ Hyperparams

backbone: mobilenetv3_large_100.ra_in1k, partial-label BCE (unknown mask=0)
crop 訓練 imgsz: 384×192 (pad 0.15)
cascade person 推論 imgsz: 1280(場域遠景小目標,固定值非讀訓練 640)
epochs: 40, early-stop ep25, patience 16
manifest: crops_v601b(cvat #12 全 207 task / 186,796 crops,含 IRODA-AI 新場域 5192-5213)
# 沿用 v530 設定,差異僅資料(+17 task + 修 export 丟 task bug)

📦 模型下載

factory_ppe_v20260601b/best.pt ⬇

← 訓練報告目錄