曾文治,王疆瑛,蔡晉輝
(1.中國計量大學 材料與化學學院,浙江 杭州 310018;2.中國計量大學 計量測試工程學院,浙江 杭州 310018)
車燈燈座是汽車大燈、內照明燈、尾燈等汽車燈具中的重要零件組成部分,是固定燈位置和使燈觸點與電源相連接的器件,其尺寸問題影響汽車車燈的裝配、導通以及照明。
隨著汽車行業的迅猛發展,對燈座的加工精度要求隨之提高,而目前大多數企業采用的都是人工檢測方法,這種受人的主觀因素的檢驗方法很難保證產品的質量,速度也慢,無法與自動化的機器相比較。機器視覺自動檢測不僅提高了產品的檢測精度和速度,而且避免了人工檢測帶來的偏差和誤差[1]。文獻[2]通過機器視覺技術設計了一套檢測塑料表面的檢測系統;文獻[3]通過機器視覺和有限元的方法對局部的應變進行了測量,評估了有限元方法的結果;文獻[4]也通過機器視覺技術開發了一種直徑測量模型,對軸直徑進行了在線測量。本文通過了解國內外機器視覺檢測技術的研究現狀,以車燈燈座的尺寸測量為對象,設計了一套視覺檢測系統,對車燈燈座進行在線實時檢測。
本視覺檢測系統是在超聲波焊接機的基礎上設計的,其完整結構實物圖和結構簡圖如圖1所示,通過測試焊頭下壓位置,將模具固定在焊頭正下方即可,通過員工每次按壓啟動按鈕壓接產品后,相機收到傳感器觸發拍照完成取圖,整個流程僅需2 s~3 s。

圖1 視覺系統實物圖和結構簡圖
待測產品的實際大小為30 mm×10 mm,通過下文選用的500萬像素工業相機和精度公式:

可以算出單像素精度為0.015 mm,本產品的檢測需求部位如圖2所示,產品合格范圍為4.9 mm~5.1 mm,完全滿足需求方的檢測需求。

圖2 待測產品檢測需求尺寸
本文根據該車燈燈座的尺寸和結構圖設計了一套滿足該視覺系統成像的硬件。相機選自邁德威視旗下的MV-GE502M-T型號工業相機,鏡頭選自海康威視的型號為MVL-HV1050M-6MP的工業變焦鏡頭,光源選自上海匯林圖像科技有限公司的型號為HL-LWD-50的光源,通過硬件方面的選型后,對產品進行打光得到的效果圖如圖3所示。

圖3 光源打光圖
本文通過機器視覺技術的算法完成圖像的獲取、采集、分析處理,并得出結果,從而將結果輸入給下位機完成操作。
本系統采用模塊化設計,主要功能包括圖像采集模塊、算法處理模塊、通訊控制模塊和輔助模塊[5]。通過對圖像采集,框選感興趣區域(Region Of Interest, ROI),邊緣檢測,直線檢測,間距檢測等處理,將結果返回用戶界面。
相機收到傳感器的信號觸發拍照后,因為被測工件是放在已經做好的工裝模具內,所以很容易框選到ROI。通過對ROI的特征提取,可以適當進行一些預處理,包括圖像濾波和二值化。再通過改進的Canny算提取產品圖像邊緣,使用直線段檢測(Line Segment Detector, LSD)算法拿到ROI內的直線,算出其平均距離為多少個像素點。最后用像素點與實際距離的轉換得到測量實際目標的尺寸,通過給定的目標尺寸區間與所測量的目標尺寸比較,尺寸合格,打點機打點標記合格產品,尺寸不合格,報警燈閃爍并蜂鳴。燈座檢測算法流程圖如圖4所示。

圖4 檢測算法流程
使用本文中提到的兩種直線檢測算法之前,需要對物體進行邊緣檢測,下面介紹本文提出的改進Canny算子邊緣檢測算法。
3.3.1 算法流程
(1)首先用非線性雙邊濾波代替高斯濾波。雙邊濾波如式(2)所示,式中,i、j分別是當前被卷積像素的坐標點,k、l是領域像素的坐標點。

加權系數ω由空間臨近高斯函數和像素值相似度高斯函數決定,如式(3)—式(5)所示。

所以雙邊濾波是在高斯濾波的基礎上,根據各個點到中心點的空間鄰近度計算各個權值,然后進行優化從而達到更好的保存圖像邊緣信息的效果。
(2) 選用Sobel算子模板計算梯度幅度和方向。在計算梯度幅值時可以選用Soble算子、Prewitt算子、Roberts算子模板等,本文利用3×3的Sobel算子進行計算,如式(6)—式(9)所示。

從而得到圖像的梯度幅值和方向,如式(10)、式(11)所示。

(3)改進非極大值抑制。雖然Sobel算子得到的邊緣比較粗大明亮,但是其梯度仍然是很模糊的[9]。所以本文在增加原有梯度方向的方法上再對梯度方向進一步劃分,增加22.5°、67.5°,并通過歐式距離式(12)計算增加的梯度方向最近的像素點把它們歸為一個梯度方向,式中D是像素點p到像素點q的歐式距離[10]。

(4)用Otsu算法替代雙閾值邊緣二值化的高低閾值。Otsu大津法是在判別最小二乘法的基礎上推導出來的,是一種對圖像分割處理的自動選擇閾值的方法[10-11],Otsu方法可以將圖像按照灰度分為前景和背景兩部分,然后通過遍歷圖像內的像素點,計算方差并不斷比較,獲得最大類間方差和最優的閾值。
3.3.2 與傳統Canny算子的流程和效果對比
與傳統Canny算子的流程對比圖如圖5所示。

圖5 兩種邊緣提取算法流程圖對比
通過兩種算法所得到的圖片如圖6所示。

圖6 兩種邊緣提取算法效果對比
從圖6(a)可以直觀地看出,傳統的Canny邊緣提取算法的邊緣比較粗糙且噪聲較多,而圖6(b)中改進后的Canny算法檢測的邊緣明顯比較細化,毛刺也相對較少,而且能比較好地抑制噪聲,而從客觀的評價指標來看,均方誤差(Mean Square Error, MSE)[12]和峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)[13]是評價圖像質量的很好指標。
圖像的均方誤差計算公式為

式(13)、式(14)中,M、N分別為圖像的長寬像素點個數,f(i,j)和g(i,j)分別為去噪后的圖像和原圖像在(i,j)處的灰度值,由上面兩個式子可知,MSE越小,PSNR就越大,其圖像質量效果就越高。兩種算法的客觀評價如表1所示。

表1 兩種算法的客觀評價因子
通過表1可知,改進過后的Canny算法比傳統的Canny算法的MES降低了54%,PSNR提高了36%。可以看出本文的改進Canny算法更優于傳統的Canny算法,對后續的直線檢測算法也起著極大作用。
3.4.1 基于改進Canny算子的LSD直線檢測算法
LSD是一種線段檢測算法[14],該算法能在短時間內獲得較高精度的直線段檢測結果。LSD直線檢測算法原理主要由三部分組成:
(1)生成直線支持區域。計算每個像素點的梯度生成對應的梯度場,將閾值內具有相同梯度的像素連成直線支持區域。
(2)直線支持區域的矩形擬合。每個直線支持區域都能觀察到它的最小外接矩形,矩形的主軸表示矩形的主軸方向,外接矩形表示直線信息。
(3)直線確認。判斷是否為直線需要在直線支持域中驗證其是否能作為直線被提取,通過直線錯誤報警數QNFA公式定義為


ε為判定閾值,如果QNFA<ε,判定該直線支持域為一條直線,由于原算法中判定閾值取1效果比較好,所以本文也取1。
將改進的Canny算子放入LSD直線檢測算法中,實現改進Canny算子的LSD直線檢測算法。
3.4.2 與Hough_Line直線檢測對比
圖7是基于改進Canny算法的LSD直線檢測算法與Hough_Line直線檢測算法的對比圖。

圖7 兩種改進的直線檢測算法的對比
從圖7(a)可以直觀看出,改進的Hough_Line直線檢測算法找出的直線干擾線比較多,邊緣密集處容易產生錯誤檢測且部分直線未找到,且在相同配置計算機上的運行速度較改進的LSD直線檢測算法慢,而圖7(b)中改進的LSD算法能清晰地找到每條直線,因為產品對直線的連續性要求不高,所以改進的LSD算法雖然線段連續性不高但是能滿足實際的應用場景。
3.4.3 后續檢測流程
在拿到ROI區域的直線后,可以計算出這兩條直線的平均直線距離,計算出來的是像素點的個數,在通過基本的相機標定后,以棋盤格的實際每格尺寸代表的像素點個數計算出平均每個像素點的實際尺寸為0.018 158 mm/pixel,設定好像素與實際距離的標準值后,檢測的即為產品實際尺寸。通過實驗室高精度尺寸測量儀測量出標準的產品尺寸為4.9 mm~5.1 mm,軟件檢測得到的尺寸與之對比得到檢測結果為OK或者NG,減少了人工目檢的高耗時、高誤差。
使用本文的檢測系統進行車燈產品檢測,通過1 000個燈座產品測試,其中次品100個,人工檢測誤檢數為80個,檢測速度3個/分,準確率為92%,本文中燈座檢測系統測量同樣的產品,檢測中誤檢數為10個,速度為6個/分,檢測準確率達99%,表2是本檢測系統與人工檢測的對比。

表2 燈座檢測系統與人工檢測對比
從表中可以看出,本文燈座檢測系統的檢測速度是人工檢測的速度一倍,準確率較人工檢測提升了7%,達到了99%,滿足了工業生產檢測需求,檢測中軟件界面如圖8所示。

圖8 軟件檢測界面
本文通過分析車燈產品的檢測需求、硬件選型和軟件算法設計,設計了一套視覺檢測系統用于車燈產品測試。提出了一種改進的Canny算法來提取產品圖像邊緣,運用于Hough直線檢測算法和LSD算法,通過對比檢測效果選取適合本產品直線檢測算法。改進算法的視覺檢測系統應用于車燈產品的在線測試,檢測準確率提升到99%,檢測速度比人工高一倍,實現了車燈產品檢測的自動化,有效提高了檢測精度和效率。