戚嘉輝,趙一鳴,王 壯,胡燕海
(寧波大學 機械工程與力學學院,浙江 寧波 315211)
隨著工業(yè)技術的發(fā)展,金屬零部件越來越多地出現(xiàn)在生活和生產(chǎn)的各個領域中.然而由于生產(chǎn)和安裝過程中的不確定因素,一些零部件會有磨損、劃痕、安裝失敗等問題,目前大部分工廠都采用人工來檢測零部件缺陷,但是人工檢測效率低、勞動強度大,在檢測過程中的準確率也無法保證,并且檢測比如螺紋連接件這種表面反光強烈的零部件時,很容易產(chǎn)生視覺疲勞.鑒于零部件的缺陷和安裝誤差會對生產(chǎn)生活形成重大威脅,因此為保障機械零部件的穩(wěn)定工作,對螺紋連接件類零部件進行高準確率檢測具有重大意義.
張一明[1]對金屬零部件表面進行亞像素邊緣提取,并采用霍夫變換算法檢測圖像中的直線和圓,通過模板匹配對表面圖像中的缺陷進行定位和識別.李佳偉[2]提出了一種新的閾值分割方法,針對小型機械零部件內(nèi)外輪廓的幾何特征,提出了一種新的最小包圍圓檢測的方法.Choi 等[3]采用Gabor 濾波器提取缺陷,并提出了一種形態(tài)學評分函數(shù)以評估缺陷的特征.
在螺紋連接件檢測中,李順[4]先將圖片二值化,再對圖像進行濾波處理、形態(tài)學處理和角度調(diào)整,采用Sobel 算子對螺紋連接件輪廓部分進行處理,并對檢測出來的邊緣進行角點刪選.此方法對背景跟螺紋連接件差距較大的環(huán)境檢測效果較好,但缺乏在工廠流水線實際生產(chǎn)環(huán)境下的實驗驗證.陳守恒等[5]采用模板匹配的定位方法,經(jīng)過一系列預處理和區(qū)域搜索,以檢測螺紋連接件是否存在,但是不能檢測螺紋連接件是否歪斜,且準確率僅接近90%,平均耗時為102.4 ms.
本文針對背景與零部件灰度值接近、平均耗時長、準確率不夠高的情況,提出用中值濾波去除圖像中的噪聲,利用圖像微分法對圖片進行銳化增強,并通過Sobel 邊緣檢測算子加強螺紋連接件端面邊緣,利用方向梯度直方圖確定圖像上的邊緣輪廓,以提高對螺紋連接件端面檢測的準確率.
檢測對象是報警器底盤上的螺紋連接件.報警器底盤是一個直徑為10 cm 的圓,文中將螺紋連接件端面設置為ROI 區(qū)域(圖1).
圖1 報警器底盤及ROI 區(qū)域
檢測系統(tǒng)硬件由圖像采集系統(tǒng)、PLC、上位機和傳送帶組成[6-8],圖像采集系統(tǒng)由光源、相機、鏡頭構成.由于檢測工件為圓形工件,且表面反光比較強烈,因此采用藍色高角度環(huán)形光源,可突出顯示被測工件邊緣變化和原本難以看清的高反光部分,并且光線擴散較為均勻,對工件后續(xù)檢測的效果較好.由于安裝有30 cm 高度限制,因此選取500萬像素黑白CCD 相機和16 mm 工業(yè)鏡頭.
工件檢測流程如下: 工件放在夾具上,通過傳送帶輸送,當工件傳送到環(huán)形光源下,被彈起的彈簧頂住,暫停輸送,同時將拍照信號傳給PLC,相機開始拍照.相機拍到的圖像經(jīng)過圖像處理,將工件分為良品和瑕疵品.若為良品,則給PLC一個高電平信號,反之,則給PLC 一個低電平信號.PLC根據(jù)計算機的高低電平信號將瑕疵品和良品通過機械手進行分揀.瑕疵品缺陷特征為螺紋連接件端面磨損和螺紋連接件端面歪斜.
本文先將采集到的圖像進行圖像預處理[9-12],預處理包括灰度處理[13]、圖像濾波和圖像銳化增強.將經(jīng)過圖像預處理的圖片進行Sobel 邊緣檢測,通過每個目標圖像的方向梯度直方圖分布提取出螺紋連接件端面的輪廓特征,即可以得到螺紋連接件端面的磨損情況.同時,對圖像進行二值化處理,通過處理后的圖像可以判斷螺紋連接件端面的歪斜情況.如果螺紋連接件端面的磨損和歪斜情況在一定范圍內(nèi),就判定該工件為良品.
通常相機采集到的圖像有很多噪聲,圖像中的噪聲主要分為高斯噪聲和椒鹽噪聲兩類.高斯噪聲是由于攝影機掃描圖片產(chǎn)生的,椒鹽噪聲是由于光電轉(zhuǎn)變及解碼處理產(chǎn)生的.一般情況下,噪聲可通過濾波方法進行處理.本文分別使用高斯濾波、均值濾波、中值濾波進行比對.
通過分析實驗圖像可發(fā)現(xiàn),均值濾波對椒鹽噪聲的去除效果較差,而高斯濾波能有效清除椒鹽噪聲和高斯噪聲.但經(jīng)過高斯濾波處理后,螺紋連接件端面邊緣變得更加模糊,缺少了像素細節(jié).中值濾波對噪聲的處理效果較好,并且保留了較為完整的螺紋連接件端面邊緣細節(jié).綜上所述,本文采取中值濾波對圖像進行處理.
圖像銳化增強[14-15]的效果是增強圖像的灰度值變化劇烈部分,使圖像更加清晰.圖像邊緣信息主要集中在圖像頻譜的高頻部分,因此用微分法來抑制圖像的中低頻分量,讓圖像的高頻分量順利通過.本文使用梯度微分法對圖像進行銳化處理,梯度方向是圖像灰度值變化最大的方向,對圖像f(x,y)在點(x,y)的梯度 ?f(x,y)定義為矢量,計算如下:
通過梯度 ?f(x,y)可以得到銳化結果,本文采用比較梯度 ?f(x,y)與閾值T的方法確定銳化后的輸出圖像f′(x,y),對比方法如下.
本文采用Sobel 邊緣檢測器[16-18]對處理后的圖像進行邊緣查找.
Sobel 邊緣檢測對噪聲較多的圖像以及水平和垂直方向灰度漸變的邊緣圖像處理效果較好,而且檢測速度比較快,符合該類對檢測速度有要求的檢測項目,且對硬件需求不高.而Canny 算法會導致選取區(qū)域的灰度值差值較大,并使圖像的邊緣信息丟失細節(jié),且Canny算法對人工選取閾值依懶性強,不同環(huán)境的閾值需要人工調(diào)整.Laplacian算法對圖像的噪聲比較敏感,會使處理后的圖像產(chǎn)生許多不是邊緣的冗雜信息.
設輸入圖像為F,用3×3 的矩陣與圖像F做卷積,Gx和Gy分別代表橫向和縱向邊緣檢測的灰度值,計算如下:
上述方法得到的螺紋連接件端面圖形比較穩(wěn)定,能對圖形進行輪廓提取[19].由于傳統(tǒng)方向梯度直方圖只能提取直線,對曲線提取效果不佳,且當圖形中存在多個目標的直線邊緣時,該方法可能會失效.
本文在使用方向梯度直方圖提取輪廓的基礎上對曲線提取做了優(yōu)化.由于需要檢測的螺紋連接件端面輪廓是統(tǒng)一且已知的,可以把經(jīng)過Sobel算子處理后的曲線部分當作目標圖像的理想輪廓,將目標圖像的理想輪廓以1 像素為步長,在檢測圖像上進行掃描,找到與目標圖像理想輪廓重合度最高的輪廓,再在該輪廓周圍進行方向梯度直方圖處理和特征的提取.
通過式(5)和式(6)得到的梯度幅值圖G(i,j)和梯度方向圖θ(i,j)計算出梯度方向編碼圖O(i,j)和方向梯度直方圖H(k),通過方向梯度直方圖可以得到最強梯度的方向為kmax.由于螺紋連接件端面的大小是固定的,因此可以將掃描線lp換成經(jīng)過Sobel 處理后的螺紋連接件端面曲線,對lp在檢測區(qū)域內(nèi)沿直線方向以1 像素為步長進行掃描,x軸掃描完畢后,則向y軸的下1 像素繼續(xù)掃描,具體示意如圖2 所示.
圖2 曲線邊緣位置直方圖
沿著最強梯度方向kmax,在圖像上按式(7)進行統(tǒng)計,統(tǒng)計每條lp上的灰度值總和,算法如下:
得到掃描曲線在最強梯度方向上當前位置p的邊緣位置直方圖,在圖像上具有最強邊緣方向的直線邊緣處,邊緣位置直方圖會有較大響應,據(jù)此就可以定位邊緣位置.
本文方法對直線和曲線輪廓均可以提取,能檢測出螺紋連接件端面的缺陷特征.將檢測出的輪廓與模板輪廓作比較,當與模板的輪廓不一致時,有磨損的螺紋連接件端面表面輪廓就會有錯誤的邊緣信息,從提取出的螺紋連接件端面表面輪廓信息中得到上述輪廓點的像素值,并與模板輪廓的像素值做差.根據(jù)多次實驗結果比對發(fā)現(xiàn),當差值像素點數(shù)量超過20 時,即可視該螺紋連接件存在磨損.
在安裝螺紋連接件的過程中可能會出現(xiàn)螺紋連接件歪斜的情況,歪斜了的螺紋連接件端面在環(huán)形光照條件下采集到的圖像像素值會因為反光原因而偏大,因此本文將檢測區(qū)域進行二值化處理.設定閾值T,對每個像素值G(x,y)進行判定,小于閾值T的判定為檢測目標,也就是螺紋連接件大于閾值T的即為背景.螺紋連接件端面歪斜或者螺紋連接件沒打上的目標像素值遠遠低于良品的目標像素值,根據(jù)多次實驗結果比對,發(fā)現(xiàn)二值化圖像中暗的部分小于24%時,即視該螺紋連接件端面存在歪斜.二值化處理公式如下.
本文研究的報警器底盤螺紋連接件檢測系統(tǒng)實驗裝置如圖3 所示.
圖3 報警器底盤螺紋連接件檢測系統(tǒng)
Canny 輪廓提取方法和本文輪廓提取方法如圖4 所示.
圖4 Canny 輪廓提取與本文方法的對比圖
傳統(tǒng)Canny 輪廓提取的高低閾值需要自己設置,根據(jù)閾值的不同提取出來的輪廓效果也不同.但本文方法能自動提取邊緣而無需設定閾值,通過模板輪廓對曲線進行了擬合,能夠自動確定輪廓的方向和位置.
原圖和經(jīng)過本文方法處理后的圖片對比如圖5和圖6 所示.
圖5 原圖
圖6 本文方法處理后圖像
為了取得真實數(shù)據(jù),在生產(chǎn)線的真實環(huán)境進行測試.本實驗對生產(chǎn)線1 d產(chǎn)量的2 500個報警器底盤進行了檢測,然后人工復檢,以驗證檢測的準確率.檢測結果見表1,從表中數(shù)據(jù)可見,對螺紋連接件端面磨損和螺紋連接件端面歪斜的檢測準確率分別達到了99.4%和98.6%.由表2 的檢測結果可見,相比傳統(tǒng)Canny 算法[20]和Sobel 算法[21],本文方法明顯提高了檢測的準確率,能滿足工業(yè)使用的要求.
表1 算法測試結果
表2 本文方法與傳統(tǒng)算法對比
本文針對實際生產(chǎn)需求,設計了報警器底盤螺紋連接件的檢測系統(tǒng),采用了灰度化處理、中值濾波、Sobel 邊緣檢測、梯度直方圖輪廓提取、二值化等方法對圖像進行處理,對螺紋連接件端面磨損和螺紋連接件端面歪斜的實測檢測準確率分別達到了99.4%和98.6%,平均檢測時長83.46 ms.相比其他傳統(tǒng)算法,大大提高了檢測的準確率,有效克服了傳統(tǒng)檢測檢測準確率不高、人工檢測效率過低的弊端,為檢測螺紋連接件等反光零部件提供了有效思路.下一步將針對不同環(huán)境的情況進行研究,嘗試使用深度學習方法對檢測出來的缺陷進行處理及分類,在增加實驗場景前提下,使檢測工作在任何實驗環(huán)境下都能進行,并進一步提升準確率,增加實時性.