透視檢測出現光暈怎麼辦?從遮光到 OpenCV 形態學處理
透視檢測時,背景餘光直接跑進鏡頭,畫面出現一條弧形亮帶。它看起來很像瑕疵,而且會一整批、一整批地誤判。
光暈不是單純的影像雜訊。它是光路、鏡頭、背景與物件位置共同造成的結果。先從遮光和光源方向下手,再用影像處理做最後修正,才能避免把真的瑕疵也抹掉。
晟技術審閱:晟格科技 AOI 應用工程團隊
最後實質更新:2026 年 9 月 7 日
最後實質更新:2026 年 9 月 7 日
光暈為什麼會被判成瑕疵
透視檢測通常需要背景光,但只要餘光以不受控制的角度進入鏡頭,就會在畫面形成亮帶、弧線或局部泛白。這些特徵若剛好落在檢測 ROI,閾值、邊緣或 AI 都可能把它當成異常。
先處理光學,再談演算法
- 遮住相機不該看到的背景亮源,縮小雜散光路徑。
- 調整光源角度、距離或擴散方式,讓有效光穿過物件,不直射鏡頭。
- 確認鏡頭、保護玻璃與治具表面是否有反射或髒污,避免新增鬼影。
- 用不同位置與不同批次的物件測試,確認光暈不會隨擺放位置飄移。
侵蝕與膨脹,該怎麼用
當光學已經壓低光暈,仍有小範圍殘留時,可用形態學處理做輔助。侵蝕可縮小較亮區域,膨脹可補回被縮得太小的真實特徵;兩者都必須用含瑕疵樣品調整。
不要只用良品調參:侵蝕太強時,細微瑕疵可能一起消失。每一次調整都要回看原始影像,並用已知 NG 樣品確認檢出結果。
驗證不是把亮帶消掉就結束
測試表至少要記錄光暈位置、亮度、物件位置、光源設定、侵蝕/膨脹參數,以及各類瑕疵的判定結果。只有把誤判下降和瑕疵保留放在同一張表裡,才能知道調整真的有效。
光暈排查要由外往內,不要一開始就改程式
當誤判亮帶出現時,先把它當成一條光路,而不是一個像素問題。從環境背景、光源開口、治具反射、鏡頭前保護片到感測器,一段一段遮掉或改變角度,通常比盲調形態學參數更快找到原因。
| 現象 | 優先檢查 | 驗證方式 |
|---|---|---|
| 亮帶固定在畫面同一位置 | 鏡頭、保護玻璃、固定背景或內部反射 | 移除物件後拍背景;逐段遮光比對 |
| 亮帶跟著產品位置移動 | 物件曲面、治具角度或透視光路 | 改變物件高度、角度與位置做對照 |
| 只在連續運轉後出現 | 光源溫升、環境光變化、灰塵或震動 | 記錄暖機前後、運轉時間與機構狀態 |
形態學處理的安全線
侵蝕和膨脹可以幫您壓低殘留亮帶,但它們不理解什麼是瑕疵。核心尺寸、作用區域和執行順序都要受限,避免把小缺陷磨平。
- 只在已知光暈區域處理,不要整張影像一刀切。
- 使用最小足以降低誤判的核心尺寸。
- 每次調參都用關鍵 NG 集重新驗證。
何時該停下來重做光學
只要出現以下任一情況,程式就不該再被當成主要解法:光暈位置每天漂移、核心尺寸一直加大、關鍵瑕疵開始被吃掉,或換批次就必須重調參數。
這代表影像裡的非預期光比瑕疵還強,應回到遮光、光源、鏡頭與治具設計。
把光暈當成可量測的異常,而不是主觀感覺
建立一組固定的背景影像與標準物件影像,記錄光暈區域、最高亮度、面積、位置和暖機時間。當量產開始出現誤判,先比對這些基準資料,就能知道是光源、鏡頭、治具還是環境改變。
每日或換線後的快速確認
- 先拍無物件背景,確認沒有新增亮帶或反射點。
- 再拍標準 OK 品,確認 ROI 的亮度分布仍在允許範圍。
- 最後拍一件已知 NG,確認處理參數沒有吃掉瑕疵。
