🚜 PPE v20260616b — 堆高機工安專用

factory_ppe_v20260616b_nv · 2026-06-16 · cvat #12 + IRODA頻5/FOX 新標 · ppe-demo register: forklift_ppe_v616b

🎯 核心成果:堆高機鏡頭 hard_hat(安全帽)

同 test 集對照(v616 Test split 排除 v610 train 洩漏),按鏡頭拆 hard_hat:

鏡頭npos/negAP v610→v616b@R90 場域 FP v610→v616b
IRODA_頻道512354/690.860 → 0.932(+0.072)40 → 1
全體堆高機鏡頭251113/1380.952 → 0.97316 → 1
FOX-AI / IRODA頻4 / HONCHUAN單一類該鏡頭全戴或全沒戴,無法算 AP(FOX-AI 未標 hard_hat)

IRODA頻5(唯一有正負樣本能評的堆高機鏡頭):v610 需容忍 40 個誤報才達 90% recall,v616b 只剩 1 個。這正是先前點名「安全帽信心不穩」的鏡頭,新標補強直接對症。全體 hard_hat @R90 FP 也從 29→23。

⚖️ 全屬性對照(v610_nv vs v616b,同 test 集 16883 樣本)

屬性v610_nvv616bΔ
hard_hat0.99330.9952+0.0019 🟢
harness0.90060.9165+0.0159 🟢
heartbeat0.87730.8903+0.0130 🟢
no_head_protection / safety_glasses / helmet 等微升或持平
sleeves0.98320.9635−0.0197 🔴
safety_shoes0.95320.9398−0.0134 🔴
hair_cover0.84580.7664−0.0794 🔴
cotton_gloves0.77050.6859−0.0846 🔴
macro mAP(排 NV head)0.96330.9558−0.0075
⚠️ 為什麼定位「堆高機專用」而非取代預設:v616b 加了大量 IRODA/FOX 堆高機新場域(+19 萬 crop),這些場域沒有 hair_cover / cotton_gloves 標註,把這些稀有屬性的訊號稀釋了 → 整體 macro mAP 略退。所以 v616b 在堆高機場域是贏的,但通用場域的稀有屬性會退步。通用 ppe22 預設維持 v610_nv,v616b 僅供堆高機工安場域選用。

🔧 訓練細節

項目
backboneMobileNetV3-L (mobilenetv3_large_100.ra_in1k),27-attr NV multi-label BCE + partial-label mask
訓練 imgsz / 推論 imgsz384×192 / 384×192(cascade person 偵測器 @1280、forklift @1280 沿用現役)
資料crops_v20260616_nv(193,978 crops;含 IRODA頻5/頻4 + FOX-AI 新標)
epochs / patience40 跑滿(patience 99 關早停)· best ep38 · val_mAP 0.9579
lr / batch / aug3e-4 OneCycleLR / 128 / strong + mixup 0.2 / neg_weight 全 1.0
修早停v616 早停在 ep11 致 hair_cover/sleeves 未收斂;v616b 跑滿讓 best 移到 ep38,sleeves 0.849→0.964 大幅救回

📌 限制與後續

ckpt:R2 factory_ppe_v20260616b_nv/best.pt · ppe-demo:forklift_ppe_v616b(堆高機專用、並列、不取代預設)
對照方法:同 test 集(v616 Test split)載 v610_nv + v616b 兩 ckpt 跑,排除 v610 train 洩漏樣本,確保兩 model 皆 held-out。