💨 純煙 smoke_only v20260629 — production 切版
MobileNetV3-L single-head(純 smoke)· cvat #2 task-level 排除含 fire 的 task · 無明火純煙偵測
結論:切 production 預設(v618 轉並列基線)。
cvat #2 納 6/26 新場景(IRODA 倉庫大門口 / TUNGHAI 等)重訓,同一 test 集全指標壓制 v618:
smoke AP 0.885→0.946(+0.060)、FP@R90 −39%(913→561)。純煙這條線資料本少,新場景料的邊際效益大(與火煙/PPE 飽和線相反)。
📊 同 test 集 head-to-head(9,982 frame,pos 2775 / neg 7207)
| 模型 | smoke AP | P@R90 | FP@R90 | P@R95 | FP@R95 |
| v20260618(原基線) | 0.8853 | 0.732 | 913 | 0.591 | 1823 |
| v20260629(新 ⭐) | 0.9455 | 0.817 | 561 | 0.675 | 1270 |
| Δ | +0.060 | +0.085 | −39% | +0.084 | −30% |
場域 KPI 是「固定 recall 下的 FP 絕對數」(SOP 3.5):R90 時 FP 913→561(−352 張誤報)。新增 6/26 場景的 test frame v618 沒見過(泛化差),v629 吃了新料後在這些場景撐得住 = 場域可用性實質提升。
📦 訓練 stack
- Backbone:MobileNetV3-L 架構:single-head(num_classes=1,只訓 smoke;fire 欄忽略)
- 資料:cvat #2 task-level 排除含任一 fire 標記的 task(fire=1&smoke=0 漏標會污染 smoke negative)→ 得乾淨「無明火純煙」集;train=82,521 / val=6,374
- Hyperparams:camaug · 25 ep(early stop)· batch 96 · AdamW lr 5e-4 wd 0.05 · drop 0.3 · mixup 0.2 — best_val_mAP 0.9151
- 訓練 imgsz:224 推論 imgsz:224(整張圖分類,無 cascade)
- ckpt:
smoke_only_v20260629/best.pt(R2 + ppe-demo 兩台)
📝 備註
- ppe-demo register:
smoke_only = v629(production ⭐),smoke_only_v618 = 原基線並列。兩台(gx10 + 4t)已切、origin/main 已同步。
- 純煙 vs 火煙:純煙是「無明火純煙」獨立模型線,非取代 fire_smoke(火煙 production 維持 v610 hardneg)。
- 同期火煙 v629 hardneg 未贏 v610(FP@R90 反退,新場景帶進更難負樣本)→ 火煙不動;PPE v630 稀有 attr 崩(hair_cover 0.39)→ PPE 維持 v610_nv。唯純煙這條低資料線靠新料真進步。