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

🔥 火煙 fire_smoke v20260804_os8

2026-08-04 · 5090-2 · MobileNetV3-L 2-binary (smoke/fire) · cvat #2 · 合成正樣本 9 支鏡頭 × oversample ×8 + 新案場真實負樣本

⭐ 結論:誤報砍到現役的 1/18,偵測只讓 6pp

ISMS「訓練 / 驗證 (172 隻)」裡的 21 支火煙鏡頭同一組 test 集三版對照: 現役 v610 偵測 88% 但誤報 64.6%(3,120 張真實負樣本誤報 2,017 張,實務上不可用); v804 偵測 82%、誤報 3.5%。相較上一版 v803 也是雙向改善(誤報 7.0%→3.5%、偵測 80%→82%)。

82%
21 支偵測率(515/626)
3.5%
誤報率(110/3120)
0.9767
val mAP(v803 0.9734)
16 / 21
逐支調 conf 後可上版

上表的 82% / 3.5% 是固定 conf 0.5 的結果。逐支調 conf 後 21 支裡 16 支可上版、其中 10 支達 recall 96–100%(見下方「上版判定」)。

📊 ISMS 21 支火煙鏡頭準度對照(同一 test 集)

每格為 偵測率 / 誤報率。「正」= 該鏡頭 test 正樣本數,「負」= 真實負樣本數。誤報率 = 負樣本被判為有火煙的比例。

stage鏡頭v610 現役v803v804
VALIDATING天銳國際 測試15110496% / 50%70% / 6%62% / 0%
VALIDATING天銳國際 測試25429698% / 85%53% / 7%48% / 0%
VALIDATING新東陽 ch16563075% / 0%55% / 0%94% / 0%
VALIDATING新東陽 ch25011642% / 25%30% / 13%52% / 0%
VALIDATING新東陽 ch9532981% / 6%96% / 0%94% / 0%
VALIDATING華周工業 CH15010086% / 38%100% / 100%98% / 29%
VALIDATING華周工業 CH950356100% / 96%90% / 0%80% / 0%
VALIDATING華周工業 CH105068592% / 98%86% / 5%74% / 2%
VALIDATING華周工業 CH1150205100% / 98%94% / 1%86% / 0%
VALIDATING華周工業 CH1250368100% / 100%88% / 0%98% / 0%
TRAINING興農 151-1650082% / —100% / —100% / —
TRAINING興農 153-140100% / —100% / —100% / —
TRAINING興農 153-14500100% / —100% / —96% / —
TRAINING興農 153-1580100% / —100% / —100% / —
TRAINING思維 吳濁流0105— / 5%— / 0%— / 0%
TRAINING思維 嘉義福容飯店0235— / 0%— / 0%— / 0%
TRAINING思維 塭內23號0149— / 16%— / 12%— / 34%
TRAINING思維 宣王宮053— / 0%— / 0%— / 0%
TRAINING思維 山柑社區083— / 0%— / 0%— / 1%
TRAINING思維 易利養雞場015— / 100%— / 93%— / 100%
TRAINING思維 石墻活動中心0191— / 4%— / 0%— / 0%

總計

模型偵測誤報L1 極難L2 中等L3 明顯
v610 現役550/626 = 88%2017/3120 = 64.6%67%93%94%
v803503/626 = 80%218/3120 = 7.0%61%80%91%
v804515/626 = 82%110/3120 = 3.5%58%87%95%

L1/L2/L3 為合成正樣本的難度分級(L1 悶燒初期、不透明度 10–20%、面積 <5%;L2 成長期;L3 明顯期)。v804 在 L2/L3 都比 v803 好,只有 L1 微退 3pp。

🚦 上版判定 × 每支鏡頭 conf 建議

先前那張表全部用固定 conf 0.50.5 對大多數鏡頭都不是好的工作點 —— 逐支掃 conf 0.05–0.99 後,21 支裡有 16 支存在可用的工作點。

兩個模式的定義:

✅ 可上版 — 16 支

鏡頭stage高準度模式低誤報模式建議單一 conf
新東陽 ch16VALIDATING56300.43 → R 96% / FP 0.0%0.05 → R 100% / FP 0.0%0.05 → R 100% / FP 0%
新東陽 ch9VALIDATING53290.10 → R 96% / FP 0.0%0.05 → R 100% / FP 0.0%0.05 → R 100% / FP 0%
華周工業 CH12VALIDATING503680.58 → R 96% / FP 0.0%0.05 → R 100% / FP 0.0%0.05 → R 100% / FP 0%
華周工業 CH11VALIDATING502050.07 → R 96% / FP 0.5%0.05 → R 96% / FP 0.5%0.05 → R 96% / FP 0.5%
華周工業 CH9VALIDATING503560.07 → R 90% / FP 0.3%0.05 → R 90% / FP 0.3%0.05 → R 90% / FP 0.3%
華周工業 CH1VALIDATING501000.57 → R 96% / FP 18.0%0.89 → R 80% / FP 2.0%0.76 → R 90% / FP 5.0%(勉強)
興農 151-16TRAINING5000.88 → R 96%無負樣本0.05 → R 100%
興農 153-1TRAINING5000.28 → R 96%無負樣本0.05 → R 100%
興農 153-14TRAINING5000.51 → R 96%無負樣本0.05 → R 100%
興農 153-15TRAINING5000.99 → R 98%無負樣本0.05 → R 100%
思維 石墻活動中心TRAINING0191無正樣本0.05 → FP 0.0%0.05 → FP 0%
思維 嘉義福容飯店TRAINING0235無正樣本0.05 → FP 0.0%0.05 → FP 0%
思維 吳濁流TRAINING0105無正樣本0.05 → FP 0.0%0.05 → FP 0%
思維 山柑社區TRAINING083無正樣本0.34 → FP 1.2%0.19 → FP 4.8%
思維 宣王宮TRAINING053無正樣本0.06 → FP 1.9%0.05 → FP 3.8%
思維 塭內23號TRAINING0149無正樣本0.83 → FP 1.3%0.80 → FP 3.4%(需高 conf)

⚠️ 8 支只有單邊樣本(興農 4 支無負樣本、思維 6 支無正樣本),它們的「可上版」只驗證了單邊。興農 4 支需補真實負樣本、思維 6 支需補正樣本才算真正驗證完成。真正雙邊驗證通過的是新東陽 ch16/ch9、華周 CH9/CH11/CH12 這 5 支(外加勉強的 CH1)。

❌ 不可上版 — 5 支

鏡頭stage能做到的最好卡在哪
天銳國際 測試1VALIDATING51104conf 0.05 → R 76% / FP 0.0%recall 天花板 76%。conf 降到最低仍抓不到,不是門檻問題,是模型看不見這批煙。誤報端完全乾淨(0%),所以單純缺該場景的訓練正樣本
天銳國際 測試2VALIDATING54296conf 0.05 → R 76% / FP 0.3%同上。兩支都是 recall 封頂 76%、FP 近 0。
新東陽 ch2VALIDATING50116conf 0.05 → R 80% / FP 1.7%recall 封頂 80%。FP 已經很低,差的是偵測力。
華周工業 CH10VALIDATING506850.06 → R 78% / FP 14.3%
0.52 → R 74% / FP 1.9%
唯一兩邊都不夠的:recall 封頂 78%,且要壓 FP 還得再犧牲 4pp。這支最需要補資料。
思維 易利養雞場TRAINING015conf 0.99 → FP 93.3%疑似標註問題,不是模型問題 —— 三個獨立模型(v610/v803/v804)在這 15 張上一致誤報,最可能是畫面本身有煙未標。需人工複核後才能判定

5 支不可上版的共同點:4 支是 recall 封頂(76–80%),不是 conf 沒調好。把 conf 降到 0.05 也抓不到 —— 代表模型對這些場景的煙「看不見」,唯一解是補該鏡頭的訓練正樣本。天銳兩支與新東陽 ch2 的 FP 都已經 ≤1.7%,補完正樣本後很可能直接過關。

第 5 支(易利養雞場)是標註問題,優先做人工複核,不必先花錢生圖。

建議部署設定

預設(多數鏡頭)    conf 0.05
華周 CH1           conf 0.76   # 該鏡頭 FP 較高,需拉高
思維 塭內23號        conf 0.80   # 遠景霾 shortcut,需高 conf 壓制
思維 山柑社區        conf 0.19
不上版(待補資料)   天銳 測試1 / 測試2、新東陽 ch2、華周 CH10
不上版(待複核)     思維 易利養雞場

注意 conf 0.05 看起來很低,但這是 sigmoid 機率不是 YOLO 置信度 —— v804 對真實負樣本的輸出普遍壓在 0.05 以下,所以低 conf 仍能維持低 FP。這也說明先前用 0.5 評估低估了這個模型:固定 0.5 時整體偵測 82%,逐支調 conf 後 16 支裡有 10 支達到 96–100%。

🔴 訓練前修掉的資料問題(否則模型會壞掉)

新案場 4 支的 train 是 100% 正樣本、0 負樣本。建 manifest 後檢查發現 新案場 train: n=1600 正=1600 負=0 正比 100.00% —— 這樣模型會直接學成「看到新案場的粗胚工地場景 = 失火」,是最典型的 shortcut。

修法:把 24h RTSP 取樣器錄到的真實畫面上傳 CVAT 當負樣本 —— 30 個 task、2,319 張原始解析度 2688×1520 frame,全部設 stage=acceptance / state=completed,重建 manifest 後:

新案場 train: n=1600 正=1600 負=0    正比 100.00%   ← 修正前
新案場 train: n=3059 正=1600 負=1459 正比  52.30%   ← 修正後

命名遵守全庫規則:合成用 新案場-AI_[4000_ch11],真實錄影用 新案場_[4000_ch11](不帶 -AI)。

⚙️ Hyperparams(vs v803 的唯一差異是 oversample 倍數)

backbone: mobilenetv3_large_100.ra_in1k | variant camaug | 2-binary (smoke/fire) BCE + pos_weight
訓練 imgsz 224 / 推論 imgsz 224   ← 分類模型,訓推一致
batch 96 | epochs 25(early-stop ep12,best ep06)| lr 5e-4 | wd 0.05 | mixup 0.2 | drop 0.3 | patience 6
pos_weight smoke=1.905 fire=3.202 | params 4.20M | GPU 1 單卡 | 訓練時間 2,539s | seed 42
val_mAP 0.9767(v803 0.9734)
項目v803_os20v804_os8
合成正樣本鏡頭華周 5 支(250 張)華周 5 支 + 新案場 4 支(450 張)
oversample 倍數×20×8
新增真實負樣本+2,319 張(新案場 10 支)
manifest 總 rows187,565(train 151,628 / val 14,195 / test 21,742)
其餘 hyperparams完全相同

為何降到 ×8:v803 用 ×20 讓通用場域 recall 掉 5pp(見 v803 報告)。這版鏡頭數從 5 支加到 9 支,若維持 ×20 合成資料占比會再翻倍。降到 ×8 後,華周 train 正樣本比 18.67%、新案場 52.30%,兩者都在合理區間。

🔍 誤報根因分析(SOP 3.5)

① 固定 recall 下的誤報絕對數

在 21 支鏡頭共 3,120 張真實負樣本上:v610 2,017 張誤報 → v804 110 張,減少 1,907 張。以場域每支鏡頭每天約 1,000 幀計,v610 等於每天每支噴近 650 次假警報,實務上會被關掉;v804 降到約 35 次。

② 按場景拆 FP — 誤報高度集中

場景負樣本v804 FPFP 率占全部 FP
思維 塭內23號1495134%46%
華周工業 CH11002929%26%
華周工業 CH10685142%13%
思維 易利養雞場1515100%14%
其餘 17 支2,17110.05%1%

86% 的誤報來自 2 支鏡頭。其餘 17 支合計只誤報 1 張。這代表整體模型已經夠保守,剩下的是特定場景問題,不是全域問題。

③ train vs test gap

val mAP 0.9767、21 支 test 偵測 82% —— gap 存在但不是背訓練集(v803/v804 在興農合成 test 上 96–100%,在真實負樣本上也只有 3.5% FP)。不是過擬合問題,是特定場景的視覺混淆。

④ shortcut 機制 — 找到了

塭內23號 FP 從 v803 的 12% 惡化到 v804 的 34%,是我這版加的資料造成的。

塭內23號是屋頂俯瞰廟宇與民宅的鏡頭,畫面永遠有天空、薄雲、地平線霧霾。而這版新加的新案場 B1F 地下室合成資料,prompt 明確要求「the far background becoming slightly hazy and lower in contrast」(遠景朦朧、對比下降)當作煙的表徵 —— 模型學到「遠景朦朧 = 有煙」這個捷徑,直接套到塭內23號的自然霾與薄雲上。

這是合成資料 prompt 設計的直接副作用,可用「補該鏡頭的晴天/薄雲真實負樣本」或「prompt 改用更具體的煙形態描述取代抽象的 hazy」修正。

⑤ ensemble vs 單一 aug

本版未做 ensemble。依 safety_rope 的經驗(單一 aug 常顧此失彼、兩個 decorrelated model 平均勝出),若要再壓塭內23號那 34%,ensemble 比繼續調 oversample 倍數更值得試。

⑥ 標註模糊場景 flag

思維 易利養雞場(15 張負樣本)三個模型全部 100% 誤報 —— v610 100%、v803 93%、v804 100%。三個獨立訓練的模型在同一批畫面上一致「誤判」,最可能的解釋是這批畫面本身就有煙/霧但沒被標,而不是三個模型同時犯同一個錯。

這 15 張需要人工複核;在複核前,它們貢獻的 15 張 FP(占全部 110 張的 14%)應視為不可信的分母。與先前「fire 56% FP 是標註缺漏」的結論一致。

💰 生成資料成本(本輪相關)

生圖服務 192.168.53.96:8180(gpt-image-1.5)累計 $359.12 / 3,947 張,平均 $0.091/張。用「生成圖 dHash → CVAT frame 全 Hamming 比對」回推,歸屬率 88%:

群組花費張數占比
p44 PPE 合成實驗$84.3780623.5%
新東陽(火煙)$75.6577521.1%
華周工業(火煙)$65.0366018.1%
新案場(火煙)$53.5855514.9%
(未比中)$44.0158912.3%
天銳國際(火煙)$18.302125.1%
興農(火煙)$9.22852.6%
p48 跌倒實驗$6.532101.8%
愛烙達(火煙)$2.43550.7%

單支最貴:華周 CH10 $17.50、新東陽 ch16 $17.38、新案場 ch13 $17.11。單價 low $0.070–0.083 / medium $0.095–0.118(已定案一律用 low)。舊記錄的 $0.021/張 是 gpt-image-1-mini 時期,不可再引用。

🚀 上版建議

建議切 production,但先在場域跑 1–2 天影子模式。

📦 檔案位置

ckpt      5090-2:/home/ubuntu/factory_ppe/runs/fire_smoke_v20260804_os8/best.pt
summary   5090-2:/home/ubuntu/factory_ppe/runs/fire_smoke_v20260804_os8/summary.json
manifest  5090-2:/home/ubuntu/runs_new/fire_smoke_v20260804_os8/manifest.csv
build     5090-2:~/factory_ppe/scripts/build_p2_manifest_v20260804.py
oversamp  5090-2:/tmp/oversample804.py(TARGET = 華周-AI_ / 新案場-AI_,N=8)
eval      5090-2:/tmp/eval_fire21.py(ISMS 172 內 21 支火煙鏡頭對照)
負樣本上傳 5090-2:/tmp/upload_neg_new10.py(新案場 10 支,R1 = 2,319 張)

產出於 2026-08-04 · RAI Vision Training · 對照基準 v610(現役)與 v803