追溯視覺檢測專案卡關的原因,很多時候問題出在影像而不是模型。瑕疵在影像中拍得模糊,再怎麼增加訓練資料,準確率也不會提升。反過來說,如果影像中的瑕疵清晰可見,用簡單的規則也能判定。
相機與解析度
解析度不是從「要用幾百萬像素的相機」出發,而是從必須找出的最小瑕疵會拍成幾個像素倒推計算。
- 決定要檢測的視野(FOV)寬度。例:60 mm。
- 決定最小瑕疵尺寸。例:0.2 mm。
- 決定該瑕疵至少要跨幾個像素才能穩定看見。現場通常以 3~5 個像素以上為目標。
- 所需水平像素數 = 60 ÷ 0.2 × 4 ≈ 1,200 像素。在此基礎上保留餘裕來選擇相機。
如果在零件移動中拍攝,也要一併檢查曝光時間。曝光期間零件移動超過 1 個像素,邊緣就會模糊。長形零件或旋轉體這類難以一次拍進一張影像的對象,則使用逐行連續拍攝的線掃描相機。fineAi Viewer Pro 即為線掃描用。
光源是製造對比的工具
同一個零件,瑕疵會隨光源不同而顯現或消失。選擇光源時,要思考「瑕疵反射光線的方式和周圍有何不同」。
| 光源 | 容易看清的特徵 | 例 |
|---|---|---|
| 環形光源 | 均勻照亮整體、顏色·髒污 | 一般外觀 |
| 同軸光源 | 平坦光亮表面上的刮傷·壓痕 | 金屬加工面 |
| 背光 | 外輪廓形狀、孔、尺寸 | 輪廓(剪影)量測 |
| 方向(斜射)光源 | 表面凹凸、淺刮傷 | 微小壓痕 |
設置多個方向光源並依序點亮拍攝,甚至可以計算出表面的高低起伏。此方法在 Photometric Stereo 課程中說明。
觸發:何時拍攝
零件若經過輸送帶,相機必須在完全相同的位置拍攝。使用將感測器訊號直接輸入相機的硬體觸發(GPIO),就能不受軟體延遲影響,在固定位置拍攝。在由機械手臂夾持零件並停在相機前的工作站(cell)中,則由機械手臂控制器透過 Modbus 訊號請求拍攝。
用配方固定條件
收集訓練資料時與現場檢測時的條件不同,模型就會收到從未看過的影像。因此要將相機曝光·增益、光源通道與亮度、鏡頭設定儲存為配方(recipe)。在 fineAi Viewer 建立的配方可以轉換後帶入 Multi-Inspector,讓收集階段與檢測階段在相同條件下運作。
送入模型前的前處理
拍攝的影像可以直接使用,但經過幾項處理能讓訓練更穩定。在 Multi-Inspector 的檢測模式設定(modeN_type)中可選擇的前處理如下。
- histogram-eq / clahe — 拉開亮度分布,讓暗部區域的瑕疵顯現出來。CLAHE 會將影像切成小區塊,逐區調整對比,因此適合只有一側偏暗的影像。
- live_canny — 以 Canny 邊緣建立零件的輪廓遮罩,只保留零件並移到畫面中央。背景的輸送帶紋路或治具不會干擾判定。
- rotation-fix — 將零件旋轉至相同方向擺正。下一堂課 對位 會詳細說明。
現場檢查清單
- 最小瑕疵是否拍成 3~5 個像素以上?
- 同一個零件拍 10 次,亮度與位置是否一致?
- 將有瑕疵與無瑕疵的樣品並排比較,人眼是否能清楚看出差異?
- 是否已儲存配方,並在收集與檢測時使用相同的配方?
如果最後一個問題能有把握地回答「是」,就可以進入選擇模型的階段。