🔬 VLM-as-verifier 完整規模研究(20260614 · round 2)
接續第一輪方向性結論做大樣本複驗 + 端到端量化 + 圖文。5090-2 指揮 · VLM 全程 gx10-4t (DGX Spark GB10,未碰 production) · 全程同集對照 · 95% CI (Wilson)。← 第一輪報告
TL;DR(大樣本既鞏固也修正第一輪,並補端到端):
- ✅ 鞏固:模糊區 VLM 仍大勝 model(VLM 77.5% [72–82] vs model 57.3% [52–63],n=302,CI 不重疊);crop(c/e) > 整張+框(a) 也成立
- 🔧 修正1:InternVL3 vs Qwen-7B 差距在大樣本縮到不顯著(最佳 79% vs Qwen 最佳 ~77%,CI 重疊);prompt 上 few-shot 與 yes/no 也相當。結論放寬為「InternVL3 或 Qwen-7B + crop + 短 prompt」皆可,InternVL3 因更快(0.7s vs 1.8s)仍首選
- 🔧 修正2:可混淆頭飾不是 CNN 大弱點:大樣本(n=160) CNN 對無塵帽/手術帽/面罩的 FP 僅 4.4% [2–9](CNN 已學會),VLM 1.2% [0–4] 僅略好 → 第一輪小樣本高估了此價值帶
- 💡 降 FP 控制實驗:對 model 假陽性,VLM 抓捕 64.7% [55–73](n=102)、FN 救回 60.6% [51–69]、誤殺正確 4.2% [2–9](非第一輪的 0%,~4%)
- ⚠️ 端到端真相:場域 slice 的 model 假陽性幾乎都是高信心(model-positive 中僅 6/287 落模糊區)→「只驗模糊區」幾乎沒用(FP 14→13);「驗全部正樣本」FP 14→4 但 recall 92.9%→84.0%(掉 9pp)。verifier 不是免費午餐,是 precision↔recall 取捨
- 📊 各 attr:反光衣 VLM≈CNN,護目鏡/口罩 CNN 明顯較強 → verifier 價值集中在 hard_hat 模糊帶
0. 研究設定與樣本規模
| 樣本集 | n | 說明 |
| 模糊區 hard_hat (0.3–0.7) | 302 | held-out(Val+Test) 254 + Train 補 48(held-out 模糊區母體僅 258,補 Train 達 ≥300,已標註 split) |
| confusable (可混淆頭飾) | 160 | hard_hat gt=no 且 頭飾attr=yes(無塵帽/手術帽/面罩等) |
| FP/FN catch (high/low 桶) | 102+104 | model 高信心 gt=no(FP) / 低信心 gt=yes(FN) |
| 反光衣 | 130 | 平衡 gt,VLM vs CNN |
| 護目鏡 | 130 | 平衡 gt,VLM vs CNN |
| 口罩 | 130 | 平衡 gt,VLM vs CNN |
| 端到端場域 slice | 742 | 自然 prevalence,多鏡頭(每 task 上限),model positives 過 VLM |
取樣對每 task_id 設上限避免單鏡頭 leak。bbox 用 data_id 拼 disk path + 對齊 cvat frame/person_idx。⚠️ 限制:confusable 母體 561 中多數來自 public source(醫療/無塵),field 鏡頭較少;模糊區補了少量 Train 樣本(model 對其記憶→信心偏極端,落在模糊區者為「訓練過仍不確定」的硬樣本)。
1. 五種視覺標記方式對比

同一 person:a 整張+黃框 / c crop×2 放大 / e context-margin crop。遠景小目標下 c/e 給 VLM 更多頭部像素。
2. grid 複驗:三定論在大樣本是否翻盤
模糊區 accuracy: 視覺 × prompt, 每 VLM 一張
| VLM | 視覺 | prompt | 模糊acc (95%CI) | s/張 |
| InternVL3-8B | crop×2 | 中few-shot | 78.8% [74–83] | 0.73 |
| InternVL3-8B | ctx-crop | 中few-shot | 77.8% [73–82] | 0.71 |
| InternVL3-8B | ctx-crop | 英yes/no | 77.5% [72–82] | 0.79 |
| Qwen-7B | crop×2 | 英yes/no | 76.8% [72–81] | 1.79 |
| InternVL3-8B | crop×2 | 英yes/no | 74.8% [70–79] | 0.80 |
| Qwen-7B | crop×2 | 中few-shot | 72.8% [68–78] | 1.74 |
| InternVL3-8B | 整張+框 | 中few-shot | 71.2% [66–76] | 0.76 |
| Qwen-7B | 整張+框 | 中few-shot | 69.2% [64–74] | 2.79 |
| InternVL3-8B | 整張+框 | 英yes/no | 68.5% [63–74] | 0.83 |
| Qwen-7B | ctx-crop | 中few-shot | 68.5% [63–74] | 0.30 |
| Qwen-7B | 整張+框 | 英yes/no | 66.9% [61–72] | 2.81 |
| Qwen-7B | ctx-crop | 英yes/no | 66.6% [61–72] | 0.32 |
三定論大樣本檢驗:① crop(c/e) > 整張+框(a) ✅ 成立(CI 多不重疊);② prompt:few-shot 與 yes/no 相當(CI 重疊,第一輪「英文 yes/no 最優」未在大樣本確立);③ InternVL3 > Qwen-7B 不顯著(最佳組 CI 重疊,差 ~2pp)→ 兩者皆可,InternVL3 因更快首選。第一輪的 ②③ 是小樣本雜訊,大樣本修正為「相當」。
3. 模糊區準度 + 降 FP/FN 能力(大樣本 95%CI)
| 指標 | 值 (95%CI) | n | 意義 |
| 模糊區 VLM acc | 77.5% [72–82] | 302 | vs model 57.3% |
| FP 抓捕率 | 64.7% [55–73] | 102 | model 高信心假陽性被 VLM 翻正 |
| FN 救回率 | 60.6% [51–69] | 104 | model 漏報被 VLM 救回 |
| 誤殺率(越低越好) | 4.2% [2–9] | 120 | model 高信心正確被 VLM 翻錯 |
4. VLM 判斷案例圖(標 model conf / VLM verdict / cvat 真值 / 對錯)
✅ 成功救援 (model 錯→VLM 修對)(全集 151 例,下列為代表)
🎯 可混淆頭飾救回 (model 誤判→VLM 語意分辨)(全集 6 例,下列為代表)
✅ 0%誤殺代表 (model 對→VLM 維持對)(全集 362 例,下列為代表)
❌ 漏抓 (model 錯→VLM 也沒救)(全集 90 例,下列為代表)
5. 可混淆頭飾複驗 — 第一輪假設被大樣本推翻
n=160(全為 gt=hard_hat=no,但戴無塵帽/手術帽/面罩等頭飾)— 大樣本推翻第一輪假設:
- CNN 把這些誤判成「有安全帽」(FP) 比例僅 4.4% [2–9] → CNN 其實已能分辨這些頭飾,不是大弱點
- VLM FP 比例 = 1.2% [0–4](略低,但絕對差僅幾 pp、CI 重疊);VLM 正確判「無安全帽」= 98.8% [96–100]
第一輪小樣本(audit 21 例)認為「可混淆頭飾」是 VLM 的主價值帶;
大樣本顯示 CNN 對 confusable 的 FP 本就很低,VLM 增益有限。⚠️ 此集多來自 public 醫療/無塵影像,field 代表性有限,數字偏樂觀。
6. 各 attr:VLM(zero-shot) vs 專用 CNN(95%CI)
| attr | n | VLM acc | CNN acc | 結論 |
| 安全帽(模糊區) | 302 | 77.5% [72–82] | 57.3% [52–63] | VLM≥CNN |
| 反光衣 | 130 | 95.4% [90–98] | 96.9% [92–99] | 相當 |
| 護目鏡 | 130 | 69.2% [61–77] | 89.2% [83–93] | CNN 較強 |
| 口罩 | 130 | 75.4% [67–82] | 96.2% [91–98] | CNN 較強 |
註:hard_hat 為模糊區子集(verifier 場景);其他 attr 為平衡集整體。CNN 已飽和的 attr,zero-shot VLM 整體不勝,但對特定錯誤帶(如 hard_hat 可混淆頭飾)VLM 仍有補強價值。
7. 端到端:model 模糊區/正樣本接 VLM 過濾(場域 slice)

場域 slice:model 單獨 vs +VLM(全正樣本) vs +VLM(僅模糊區) 的 FP / precision / recall
| 系統 | TP | FP | FN | precision | recall |
| model 單獨 | 273 | 14 | 21 | 95.1% | 92.9% |
| +VLM(驗全部正樣本) | 247 | 4 | 47 | 98.4% | 84.0% |
| +VLM(僅驗模糊區正樣本) | 272 | 13 | 22 | 95.4% | 92.5% |
端到端關鍵發現:場域 model 假陽性幾乎都是高信心,不是模糊。model-positive 中只有
6/287 落在模糊區(0.3–0.7)。
- 「只驗模糊區」(最省、最安全)→ 幾乎沒效果:FP 14→13、recall 幾乎不變
- 「驗全部正樣本」 → FP 14→4(−10)但 recall 92.9%→84.0%(掉 9pp,誤殺真實正樣本)
verifier 要抓到這些高信心 FP,就得驗高信心預測,代價是 recall。這是 precision↔recall 取捨,非免費。是否值得取決於場域 FP vs 漏報的相對成本。
8. 結論與落地建議
大樣本後的務實結論:VLM 二次確認在「模糊區判讀」確有實力,但「端到端降 FP」是 precision↔recall 取捨,非穩賺。比第一輪更保守。
- 確定有價值:模糊區 hard_hat 判讀 VLM 77% 遠勝 model 57%(CI 不重疊)→ 若要對「model 不確定」的偵測補一刀,VLM 明顯比信任 model 好
- 要當心:場域 model 假陽性多是高信心,要抓就得驗高信心預測 → 會誤殺真實正樣本(recall −9pp)。是否上線取決於場域「誤報 vs 漏報」成本權衡,建議先做小範圍 A/B 量化
- 配方:InternVL3-8B(或 Qwen-7B,差異不顯著)+ crop×2/context-margin crop + 短 prompt(yes/no 或 few-shot 皆可),InternVL3 ~0.7s/張較快
- 哪些 attr:價值集中 hard_hat 模糊帶;反光衣 VLM≈CNN、護目鏡/口罩 CNN 明顯較強,zero-shot VLM 暫不該取代這些 CNN head
- 修正第一輪:(a) InternVL3>Qwen、英文yes/no最優 在大樣本不顯著;(b) 「可混淆頭飾是 VLM 價值帶」被推翻(CNN FP 本就僅 4%);(c) 「0% 誤殺」實為 ~4%,端到端 recall 有代價
- 限制:confusable 集 public 為主、模糊區補了少量 Train、e2e 為 dataset prevalence 非真實場域分佈 → 落地前必用代表場域影片重跑(規則17)
- 下一步:(1) 接真實 production 模糊+高信心輸出做線上 A/B,量化場域 FP/漏報;(2) 蒐 field 可混淆頭飾專測;(3) VLM 不一致樣本回送標註 audit(清 cvat 噪音副產品)
產出 2026-06-14 11:45 · 5090-2 · 腳本/資料 ~/vlm_verifier_research/ · VLM gx10-4t(未碰 production)