2026-06-06 · 5090-2 · MobileNetV3-L · 27-attr(22 原 attr + 5 visibility head)· cvat #12 not_visible 標註
新增「看不清(not_visible)」偵測能力。4 個 visibility head 測試 AP=1.000,但這是 train/val/test 來自同一鏡頭、同一天連續片段切割的樂觀假象,泛化到其他場域/鏡頭/天完全未驗證。僅以 ppe22_v606_nv 上 ppe-demo 供 RAIVISION_DAVIDMAC 鏡頭內部測試,不取代生產版 ppe22_v605。
cvat #12 person 標註新增 not_visible 值(腳被料架擋、臉背光等鏡頭物理限制看不清,與「沒穿」不同)。原 22-attr 把 not_visible 當 mask=0(不參與 loss)丟棄。本版加 5 個 visibility binary head({attr}_nv:not_visible=1 / yes·no=0 / unknown=mask),讓推論能輸出「看不清」獨立第三態。
| visibility head | test AP | test 正樣本 | 判定 |
|---|---|---|---|
| safety_shoes_nv | 1.000 | 55 | ✅ 採用 |
| no_safety_shoes_nv | 1.000 | 55 | ✅ 採用 |
| safety_glasses_nv | 1.000 | 21 | ✅ 採用 |
| face_mask_nv | 1.000 | 21 | ✅ 採用 |
| safety_vest_nv | 0.448 | 14 | ❌ 棄用 |
原 22 attr 未退步:test_mAP 0.9443、macro_f1 0.9325(safety_shoes 0.929 / safety_glasses 0.973 / face_mask 0.991 / safety_vest 0.961,與 v605 持平)。加 visibility head 不傷原任務。
逐 task 拆解 not_visible 標註來源後發現嚴重的場景集中:
| attr | not_visible 全部來源 | split 切法 |
|---|---|---|
| safety_shoes_nv | 全 RAIVISION_DAVIDMAC_CH00_20260605 | train=_001 / val=_002 / test=_003 |
| face_mask_nv | 全 RAIVISION_[DAVIDMAC]_20260605 | train=_001/_002 / test=_003 |
| safety_glasses_nv | DAVIDMAC + 一個 FOX 場域 | train=FOX+DAVIDMAC_001/_002 / test=DAVIDMAC_003 |
_001/_002/_003 是同一天同一鏡頭連續錄影的相鄰時段,同一個人、同光照、同視角 → 高度相關。_003,frame 本身沒進 train(train 是 _001),所以不是隨機抽 frame 的純洩漏;但相鄰時段相關性仍極高 → AP 1.000 偏樂觀,只代表「認得這個鏡頭這天的條件」。not_visible 本質是鏡頭物理視角限制(固定攝影機角度造成腳/臉被擋),與場景強綁定。因此在已標註的 DAVIDMAC 鏡頭、類似作業條件下,這 4 個 head 大概率可用——per-camera 部署反而正中需求。但這天相鄰片段的 1.000 不能保證隔天/別鏡頭也行,需要該鏡頭另一段(另一天)影片做乾淨驗證才能確定真實準度。
ppe-demo 兩台 model key ppe22_v606_nv(PPE21NVHandler,person 子偵測器 person_yolo26s@1280 v602,conf 0.25)。對 4 個採用 attr 輸出三態:visibility head ≥ 0.5 → 影片標「看不清: 腳/護目鏡/口罩」黃字 + API state=not_visible,否則用原 yes/no。標明實驗性,與生產版 ppe22_v605 並存,不取代。
backbone: mobilenetv3_large_100 | partial-label BCE 27 binary heads + mask(22 原 + 5 _nv) imgsz 384×192 | batch 128 | epochs 40 | lr 3e-4 | aug strong | not_visible→nv head=1, yes/no→0, unknown→mask cascade person 偵測 imgsz 自動讀=1280 | nv 部署門檻 0.5(test-set optimal thr=1.00 過擬合不採用) 資料: cvat #12 not_visible 2822 標註(71% 集中 RAIVISION_DAVIDMAC 單鏡頭)
factory_ppe_v20260606_nv/best.pt ⬇(17.1 MB)