👷 限縮版 PPE 小物件辨識 — 研究報告
Grad-CAM 熱區驅動 · 3.5h 系統性研究 · RAIVISION/DAVIDMAC 限縮版 · 對照現役 rai_hires(706b 512×256)
核心結論:3 個頭部小屬性(眼鏡/安全帽/口罩)辨識不佳的共同根因 = 全身 crop 把頭部壓太小、小物件像素不足。解法 = head-ROI(裁頭部放大)。安全鞋則是標註定義問題(非模型能解)。
head-ROI 實驗(exp1~3)Grad-CAM 證實三者熱區都移到正確位置。AP 因 RAIVISION 同場域 overfit 已到頂(0.98~1.0)分不出差異, 研究價值在定位(熱區)而非 AP。
① 安全眼鏡 — 熱區鼻/嘴 → 眼睛 ✅
根因:全身 512×256 把整個人塞進去, 眼睛只佔極少像素, 模型退而抓鼻嘴的口罩/膚色線索。
解法:head-ROI 裁上 40% 頭肩放大 448², 眼睛獲得足夠像素。
Grad-CAM 前後:before 全身512
→after head-ROI

before 全身512
→after head-ROI

② 安全帽 — 頭中央 → 頭頂/帽本體 ✅
根因:同上, 頭部像素不足, 熱區糊在頭中央。
解法:head-ROI 放大頭部, 熱區落到安全帽本體。
Grad-CAM 前後:before 全身512
→after head-ROI

before 全身512
→after head-ROI

③ 口罩(側臉) — 集中身體 → 臉部 ✅ (原最嚴重)
根因:側臉時口罩被部分遮擋+全身 crop 稀釋, 模型改抓身體/情境捷徑(有無塵服→判有口罩)。
解法:head-ROI + 側臉強化 aug(rotation ±20°/RandomRotation 15°), 強迫注意力回到頭臉。
Grad-CAM 前後:before 全身512
→after head-ROI

before 全身512
→after head-ROI

④ 安全鞋 — 無法判別 🔴 (非模型問題)
根因:熱區已正確對到腳部, 但標註定義是「黑鞋都算安全鞋」(safety_shoes pos=6519), 模型只能學到「黑鞋→安全鞋」, 無法區分真安全鞋 vs 黑色非安全鞋。這是標註/規格問題, 非模型能解。
方向(需 operator 決策):(a)改標註定義只標真安全鞋 (b)加細分類(鞋型/鋼頭) (c)加 hard-neg(黑色非安全鞋當負樣本)。
解決方案架構
| 負責 attr | 輸入 |
| 主幹 全身 512×256 | body/foot/gloves/vest/harness | full person crop |
| head-ROI 分支 448² | 眼鏡/帽/口罩/護目鏡等頭部小屬性 | TopCrop 上40%頭肩 |
建議雙分支: 全身模型顧 body/foot, head-ROI 分支顧頭部小屬性(定位精準)。或 head-ROI 專用頭部 model 搭配現役全身版。
實驗數據(同 test crops_v20260706b_raivision)
| 實驗 | 設定 | glasses AP | face_mask AP | hard_hat AP |
| baseline 706b | 全身 512×256 | 0.998 | 1.000 | 1.000 |
| exp1 | head-ROI 448 (0.40) | 0.983 | 0.995 | 1.000 |
| exp2 | head-ROI 384 緊裁0.30 | 0.987 | 1.000 | 1.000 |
| exp3 ⭐ | head-ROI 448 + 側臉aug | 0.999 | 0.999 | 1.000 |
⚠️ AP 皆 overfit 到頂(RAIVISION 同場域), 差異看 Grad-CAM 定位不看 AP。exp3(head-ROI+側臉aug)綜合最佳。head-ROI 模型只顧頭部 attr, body/foot 需主幹全身模型。
結論與建議
- 頭部 3 問題(眼鏡/帽/口罩)= 同一根因(頭部像素不足), head-ROI 是通解, Grad-CAM 三者皆驗證修好。
- 安全鞋 = 標註定義問題, 需 operator 決策改標註/細分類, 非訓練能解。
- 部署走雙分支(全身+head-ROI); 候選頭部模型
factory_ppe_v20260707_so_sideface(exp3)。
- 不切 production, 供 operator 決策。
→ 所有報告目錄