2026-06-02 · 新 detector person_yolo26s@1280(test mAP50 0.825 / -95 0.637,遠景小目標 +60~90% vs v527)已驗證 · 本報告供決定「還有哪些 cascade 要換上去」
偵測主導的 cascade(person / ppe22 / forklift_ppe)已全部升 yolo26s@1280(+ imgsz 自動讀根治)。剩下的是 ROI 裁切類(safety_rope / age_gender / ppe_color),它們 person 框只拿來定位裁圖餵下游分類器。其中 safety_rope 最值得換(場域 audit:78% FP / 97% 漏報都源自 person 偵測器本身),但必須先場域驗證;age_gender / ppe_color 低風險低優先。
| 類型 | person 框的角色 | 換偵測器影響什麼 | 換的風險 |
|---|---|---|---|
| 偵測主導 (detection-primary) | person 的數量/位置就是輸出,或每個 person 都要被檢查(漏一個=漏一次安全檢查) | recall 直接決定安全覆蓋率;遠景小人漏偵測 = 漏檢 | 低(偵測更準=更好),只要 conf/imgsz 對 |
| ROI 裁切 (roi-crop) | person 框只拿來定位裁一塊 ROI 餵下游分類器(安全繩/年齡/顏色) | ① 偵測到的 person 才會被分類(recall 仍重要)② 框的鬆緊/位置變了 → ROI 外擴後的構圖變 → 下游分類器看到不同畫面 | 中(下游分類器對 ROI 構圖敏感,需重新驗證) |
| register key | handler | person 模型 | 推論 imgsz | person conf | 用法 |
|---|---|---|---|---|---|
person_s1280 ⭐NEW | PersonDetHandler | yolo26s@1280 | 1280 (自動讀) | 0.25 | 純偵測 |
ppe22_s1280 ⭐NEW | PPE21Handler | yolo26s@1280 | 1280 (自動讀) | 0.25 | person→裁→22-attr |
forklift_ppe_s1280 ⭐NEW | ForkliftPPEHandler | yolo26s@1280 | 1280 (自動讀) | 0.25 | forklift+person 關聯 |
— 既有並列(person 仍 yolo26n,但 imgsz bug 已修為 1280):person/person_v527、ppe22_v521/v529/v601b、forklift_ppe_v530 等 — | |||||
🔧 順手修掉的 bug:PPE21Handler 的 person 偵測原本寫死 imgsz=640(所有 ppe22 都中),今天改成自動讀=1280。所以即使 ppe22_v521 等還用 yolo26n,現在也正確跑 1280 了。
| register key | handler | person 模型 | imgsz | conf | 下游分類器 | 狀態 |
|---|---|---|---|---|---|---|
safety_rope_ensemble ⭐production | EnsembleSafetyRope | yolo26n_v527 | 640 | 0.35 | DINOv3-S ×2 平均 (wrong/correct) | 建議換·須驗證 |
safety_rope / _v519 / _v519_p527 / _v529 | SafetyRope / ViT | yolo11n_v501 ~ yolo26n_v527 | 640 | 0.35 | DINOv3 / RoI Align | 同上 |
age_gender | AgeGenderHandler | yolo11n_v501(舊) | 640 | 0.35 | age/gender 估計 | 低優先 |
ppe_color | PPEColorHandler | yolo11n_v501(舊) | 640 | 0.35 | 顏色分類 (v20260415) | 低優先·疑 legacy |
用法:person YOLO 偵測 → 框外擴(expand_x / expand_y_top=1.0 / expand_y_bot=1.5)→ RoI Align HD 1280×720 → DINOv3-S 判 wrong/correct。目前 person 偵測跑 imgsz 640。
為什麼值得換(強論點):
為什麼必須先驗證(風險):
建議做法:建一個 safety_rope_ensemble_s1280 並列(person 換 yolo26s@1280、imgsz 自動 1280、conf 0.25),對代表場域影片(含遠景/轉場 task_2907 類)跑 e2e,比 FP/漏報 vs 現 production,數據好再切。零重訓(只換偵測器)。
用法:person → 裁切 → 年齡/性別估計。person 仍用舊 yolo11n_v20260501(5/01)+ imgsz 640。
非安全關鍵,漏一個遠景人的後果遠小於 PPE/安全繩。換上去能讓遠景人也被估計,但下游 age/gender 對小臉本就不準。建議:要換就一起換(順手),但不急、不需單獨驗證太細。
用法:person → 裁切 → 顏色分類。person 用舊 yolo11n_v501,分類器 ppe_color_v20260415(4 月舊版)。
版本很舊、可能已被 PPE 22-attr 取代。建議:先確認這個 demo 還有沒有人在用,沒用就直接從 register 移除(清掉而非升級);還在用再順手換 person。
YOLO ckpt 存得到訓練 imgsz(yolo.overrides["imgsz"]),所以新 helper:
cascade_det_imgsz(yolo, floor) = max(ckpt 訓練 imgsz, floor)
三個偵測 handler 的 load() 都用它。以後換 person/forklift 模型只要丟 ckpt,imgsz 自動對,不用再人工確認,也不會重蹈 v530「自動讀成 640 漏遠景人」。若 ROI 裁切類也要換,會一併套用同 helper。
| 模型 | 建議 | 動作 | 需驗證? |
|---|---|---|---|
| safety_rope_ensemble | 換(高價值) | 建 safety_rope_ensemble_s1280 並列 → 場域 e2e 比 FP/漏報 → 數據好再切 production | 要(剛上 production) |
| safety_rope 其它並列版 | 跟著換 | 同上一起換 person | 隨主版 |
| age_gender | 順手換 | person → yolo26s@1280,imgsz 自動 | 否(非安全關鍵) |
| ppe_color | 先確認用途 | 還在用→換;沒用→移除 register | 否 |
註:以上全是零重訓(只換 cascade 內的 person 偵測器 + imgsz/conf)。safety_rope 我建議先做並列 + 場域驗證再切;其餘可直接換。
person_yolo26s_v20260601_1280/best.pt ⬇(20.4 MB,訓練 imgsz 1280)· 訓練報告