王紅艷,朱利民,張潘杰,李金屏
(1.濟南大學 信息科學與工程學院,山東 濟南 250022;2.濟南大學 山東省網(wǎng)絡(luò)環(huán)境智能計算技術(shù)重點實驗室,山東 濟南 250022;3.濟南大學 山東省“十三五”高校信息處理與認知計算重點實驗室,山東 濟南 250022;4.濱州渤?;钊邢薰?,山東 濱州 256602)
活塞是汽車發(fā)動機的重要組成部分(圖1),出廠前必須檢測每個活塞是否存在質(zhì)量問題[1],其中之一是檢測是否存在表面缺陷。目前活塞表面缺陷檢測的主要方式分為人工檢測和接觸式缺陷檢測。人工檢測具有主觀性強、效率低下、成本高等缺點。接觸式缺陷檢測包括渦流檢測和超聲檢測[2]等,接觸式缺陷檢測具有探針接觸面小、檢測結(jié)果顯示不直觀等缺點。為了解決傳統(tǒng)檢測效率低、檢測范圍小、結(jié)果顯示不直觀等問題,同時降低檢測成本,筆者和濱州渤?;钊邢薰竞献鏖_展了基于圖像處理技術(shù)的活塞表面缺陷檢測研究。
圖1 不同角度下活塞側(cè)表面
圖2 活塞表面水平紋理
濱州渤?;钊邢薰臼莵喼抟?guī)模最大、世界規(guī)模第三的活塞生產(chǎn)廠商,目前仍然以人工檢測和接觸式檢測為主,近期正在開展基于視頻設(shè)備的缺陷檢測和精密測量。事實上,國內(nèi)大多數(shù)活塞生產(chǎn)廠家缺陷檢測環(huán)節(jié)還是使用人工檢測和接觸式檢測兩種方式。調(diào)研發(fā)現(xiàn),國內(nèi)外學者及企業(yè)在使用圖像分析技術(shù)檢測活塞外表面缺陷方面的工作尚少,而與其他工件相關(guān)的缺陷檢測研究則有不少工作。目前,基于圖像處理的工件缺陷檢測的方法主要分為4類:基于缺陷特征分析的檢測方法,基于缺陷分割的檢測方法,基于模板匹配的檢測方法,基于深度學習的檢測方法。
基于缺陷特征分析的檢測[3-4]方法是指根據(jù)工件缺陷與非缺陷特征的差別來分類缺陷,如文獻[4]就將局部二值模式(Local Binary Pattern, LBP)和局部圖像方差強度結(jié)合起來,設(shè)計了一種自適應(yīng)閾值的方法把金屬圓柱體表面的多種缺陷檢測出來。基于缺陷分割的檢測方法[5-8]是指使用圖像分割技術(shù)[9]分割缺陷,如文獻[6]通過分析活塞表面缺陷特點及缺陷在視覺上成像的難點,設(shè)計了一套光源來使缺陷更明顯地呈現(xiàn)出來,然后用固定閾值分割出缺陷,該方法適用的對象是表面紋理簡單的活塞,使用該方法分割含有水平紋理的活塞表面將會出現(xiàn)很多誤報;文獻[8]提出了使用改進的Zernike矩亞像素邊緣檢測算法,得到更為精確的缺陷邊緣,分割出微小的缺陷。基于模板匹配[10-11]缺陷檢測方法包括用小區(qū)域模板匹配和標準模板匹配等,如文獻[10]提出的小區(qū)域模板匹配來檢測發(fā)動機缸的缺陷。文獻[11]采用標準模板匹配法,使用外輪廓矩形重繪算法,先獲得工件的位置,再差分得到缺陷的幾何特征?;谏疃葘W習[12-14]的檢測方法是最近比較常見的一種檢測方式,如文獻[13]使用遺傳算法確定參數(shù),再使用神經(jīng)網(wǎng)絡(luò)對鋼帶缺陷進行分類。由于數(shù)據(jù)集的構(gòu)建非常昂貴耗時,文獻[14]提出了一種基于小樣本訓練數(shù)據(jù)的通用方法。
上述4種方法主要是針對非活塞工件的缺陷檢測方法。這些方法都仔細考慮了所要檢測工件自身特點和缺陷特征,然后根據(jù)這些獨特特征設(shè)計相對應(yīng)的算法檢測缺陷。由于活塞表面具有一些獨有特征,使得上述檢測方法難以進行直接移植,這些特征包括:①相同型號的活塞在相同的光照、環(huán)境和角度下,拍攝得到的圖像相似;②活塞表面上有均勻的水平紋理,如圖2(a)所示,在出現(xiàn)缺陷的區(qū)域水平紋理發(fā)生了明顯的變化,如圖2(b)所示;③缺陷及其附近區(qū)域在圖像中呈現(xiàn)出灰度不均勻的特點,與正常模板圖像相比較,灰度差別比較大。根據(jù)這些特點,并結(jié)合前述4種檢測方法,筆者提出了一種有效的基于尺度不變特征轉(zhuǎn)換算法外輪廓配準的活塞外表面缺陷檢測方法。
圖3 算法流程圖
新方法主要是考慮到活塞外輪廓的復(fù)雜性和表面紋理的特征,其具體流程如圖3所示。首先,在特定的光照條件下,對不同型號和規(guī)格的標準活塞進行多角度的圖像采集,建立標準模板庫;其次,在相同光照條件下,對當前待檢測的活塞進行圖像采集;接著,根據(jù)當前圖像的角度信息調(diào)用對應(yīng)型號和角度的模板圖像,利用尺度不變特征轉(zhuǎn)換(Scale Invariant Feature Transform, SIFT)算法[15-16]對活塞外輪廓進行配準,從而得到模板圖像和待檢測圖像相對應(yīng)的區(qū)域。之所以對活塞外輪廓進行圖像配準[17-18],是因為活塞外輪廓有明顯的特征點,活塞內(nèi)部沒有明顯特征點,詳細分析參見1.2節(jié)。之后,再使用固定大小的窗口從左向右依次遍歷兩幅圖像的相對應(yīng)區(qū)域,提取窗口內(nèi)的特征,包括灰度均值、灰度方差、垂直投影、水平投影。最后,比較兩個窗口的特征值,如果兩個窗口內(nèi)特征值差別較大,則判定待檢測窗口內(nèi)存在缺陷,使用窗口位置作為缺陷位置,并用矩形標注缺陷位置。
由于研究對象活塞近似圓柱體,每次拍攝都不能完全覆蓋活塞表面。為了全面檢測缺陷,需要活塞在工位上360°旋轉(zhuǎn),其工位示意圖如圖4(a)所示。在一個密閉的空間內(nèi),配合相同的光源和固定的相機,旋轉(zhuǎn)活塞,每隔固定角度拍攝一張圖像,圖4(b)是相機拍攝圖像的預(yù)覽圖。每檢測一批活塞,先對標準活塞進行圖像采集,作為模板圖像,建立標準模板庫。
圖4 工位示意圖及圖像預(yù)覽
在建立標準模板庫的過程中,必須保證光照的穩(wěn)定性和相機位置的固定性,旋轉(zhuǎn)標準活塞在固定的角度拍攝第一張圖像,然后按照指定方向每間隔一定角度旋轉(zhuǎn)到已知的角度上后再拍攝另一張圖像,并使用活塞型號和角度信息對模板圖像進行命名。對待識別活塞的圖像采集與標準活塞的圖像采集一樣,待識別圖像也是以活塞型號和角度信息命名。在模板調(diào)用中,以角度信息作為先驗條件調(diào)用模板庫的模板圖像。
在圖像采集過程中,由于活塞工位是旋轉(zhuǎn)拍攝圖像,會造成模板圖像和待檢測圖像角度上微小的差異,影響缺陷檢測的結(jié)果。因此,在缺陷檢測之前需要對圖像進行配準,使模板圖像和待檢測圖像的相對應(yīng)區(qū)域在空間上對準,得到兩幅圖像相對應(yīng)的區(qū)域。由于尺度不變特征轉(zhuǎn)換算子具有圖像局部旋轉(zhuǎn)和尺度縮放的不變性、對噪聲的穩(wěn)定性、較高的匹配準確性等優(yōu)點,故選擇尺度不變特征轉(zhuǎn)換算子作為圖像匹配的算子。
1.2.1 尺度不變特征轉(zhuǎn)換算法基本原理
(1)在高斯尺度空間中尋找極點。在高斯尺度空間尋找關(guān)鍵點是指找到在連續(xù)尺度變化下位置不變的特征點。定義一幅圖像的高斯尺度空間L(x,y,z)為
L(x,y,z)=G(x,y,σ)*I(x,y) ,
(1)
(2)
其中,I(x,y)表示原始圖像,G(x,y,σ)是尺度空間可變的高斯函數(shù),*表示卷積,σ2表示高斯濾波器的方差,σ的大小決定圖像的平滑程度。為了有效地在尺度空間上尋找極值點,又定義了高斯差分空間,利用不同尺度上的高斯核函數(shù)與圖像卷積生成,其表達式D(x,y,σ)如下所示:
(3)
其中,kσ和σ是兩個連續(xù)圖像的平滑尺度。每個采樣點都要和它所有相鄰點比較,相鄰點包括同尺度的相鄰點和相鄰尺度的相鄰點。如果采樣點是最大值或者最小值,則該采樣點標記為一個候選的特征點。
(2)確定關(guān)鍵點。對高斯差分空間內(nèi)不同尺度上的特征點進行定位和擬合,去除掉不穩(wěn)定及圖像邊緣的特征點,最后剩余的特征點作為關(guān)鍵點。
(3)確定特征點主方向。對于確定的關(guān)鍵點,采集所在高斯金字塔圖像領(lǐng)域窗口各個像素的梯度和方向,并使用梯度方向直方圖來表示,梯度方向直方圖的峰值表示為特征點的主方向。
(4)生成特征點的特征向量。首先把坐標轉(zhuǎn)換成特征點的主方向,確保旋轉(zhuǎn)的不變性,然后生成128維的特征向量,特征向量再進行歸一化處理。其中,每個特征點都包含3個特征:位置、尺度和方向。
(5)特征點匹配。利用Best Bin First(BBF)算法搜索每個特征點在目標樣本上的最近鄰點與次近鄰點,并計算對應(yīng)特征向量的歐氏距離;最近鄰歐式距離與次近鄰歐氏距離相除之后,其值與設(shè)定閾值比較,小于閾值則接受這一對匹配點,閾值通常為0.8。
1.2.2 基于尺度不變特征轉(zhuǎn)換的外輪廓配準
根據(jù)圖1中活塞側(cè)表面結(jié)構(gòu)可知,活塞表面包括銷孔、凹槽、毛糙表面、光滑表面以及活塞外邊緣。圖5是活塞側(cè)表面的局部特寫??梢钥闯?,毛糙表面的紋理過于豐富并且光滑表面幾乎沒有明顯特征,在進行圖像配準時會產(chǎn)生很多的錯誤匹配點,如圖6(a)所示。銷孔邊緣及活塞外邊緣等都含有明顯的特征點,使用明顯的特征點可以增加圖像配準的準確性。因此,只對有明顯特征點的活塞外輪廓進行圖像配準。
圖5 活塞的局部特寫
圖6 尺度不變特征轉(zhuǎn)換圖像匹配的效果圖
工位的旋轉(zhuǎn)使待檢測圖像和相對應(yīng)模板圖像的拍攝角度有微小的偏移,可以看作是活塞的平移。根據(jù)該特點,在利用尺度不變特征變換算法做特征匹配的時候,正確匹配角點的連線有以下兩個特點:①正確匹配角點的連線是水平的直線;②正確匹配角點的連線距離相同。根據(jù)特點設(shè)計算法去除錯誤的匹配點:
(1)計算對應(yīng)特征點的相似度。相似度是利用兩個特征點的特征向量求出來的歐氏距離,計算出所有對應(yīng)特征點的相似度,并統(tǒng)計最小相似度,只保留小于4倍最小相似度的角點。
(2)計算連線的角度。根據(jù)正確特征點的連線趨于水平,需要求出各個對應(yīng)角點連線角度,可以用斜率表示連線的傾斜程度,斜率tanθ的計算公式為:
(4)
其中,模板圖像特征點坐標(x1,y1),待檢測圖像的特征點坐標(x2,y2),當tanθ<0.05或者tanθ>-0.05,即連線角度處于-3°和3°之間時,保留特征點。
(3)計算連線的長度。根據(jù)正確特征點的連線的距離一致,需要求出對應(yīng)特征點連線的距離,再求距離的眾數(shù)。求距離D的公式為
(5)
統(tǒng)計出現(xiàn)次數(shù)最多的連線距離作為連線距離的眾數(shù),保留距離長度為眾數(shù)的特征角點。
消除錯誤匹配點的結(jié)果如圖6(b)所示。該方法能夠有效地消除由活塞表面無明顯特征點而產(chǎn)生的錯誤匹配點,保留活塞外輪廓的正確匹配點,再利用保留的匹配點來確定兩幅圖像的相同區(qū)域。
1.3.1 窗口特征提取
由于活塞毛糙表面本身就是凹凸不平的,微小的劃傷和磕碰對其影響不大,所以只對光滑表面的缺陷進行檢測,缺陷類型如圖7所示。缺陷部分在活塞光滑表面上表現(xiàn)為局部灰度不均勻,并且水平投影以及垂直投影與模板圖像的差別變大。因此,利用窗口特征比較的方式來判窗口內(nèi)是否存在缺陷。
圖7 光滑表面和各種缺陷
采用固定大小的窗口對模板圖像和待檢測圖像相對應(yīng)區(qū)域同時進行從左至右、從上至下的遍歷。窗口內(nèi)灰度變化的劇烈程度可以使用窗口內(nèi)灰度均值和灰度方差表示。窗口內(nèi)灰度均值M和灰度方差的S2表達式如下:
(6)
(7)
其中,I(x,y)表示坐標(x,y)點的灰度值,w為窗口的寬,h為窗口的高。
垂直投影的計算方式是統(tǒng)計窗口內(nèi)每列各點的像素之和,計算每列的平均灰度,然后根據(jù)每一列的平均灰度畫出垂直投影。根據(jù)圖8可知,沒有缺陷的圖像和標準圖像的垂直投影相似度極高,含有缺陷的圖像和標準圖像的垂直投影有很大差異。所以我們根據(jù)窗口內(nèi)垂直投影的相似度來判斷是否有缺陷。
使用巴塔恰里雅距離(Bhattacharyya Distance,BD),又稱巴氏距離表示垂直投影的相似性。具體計算過程如下:首先計算模板窗口垂直投影的概率分布P={p1,p2,…,pw}和待檢測窗口垂直投影的概率分布Q={q1,q2,…,qw}。pi和qi分別表示模板窗口和待檢測窗口第i列的概率,巴氏距離B的計算公式為
(8)
圖8 活塞表面及其垂直投影(模板圖像(a)與其對應(yīng)無缺陷圖像(b)的垂直投影分別為(e)和(f),模板圖像(c)與其對應(yīng)有缺陷圖像(d)的垂直投影分別為(g)和(h))
水平投影的計算方式是統(tǒng)計窗口內(nèi)每行像素灰度值總和,計算每行像素的平均灰度,然后根據(jù)每行的平均灰度畫出水平投影。由于活塞光滑的表面上有橫向的紋理信息,在沒有缺陷的情況下,水平投影為規(guī)則的波峰和波谷,在存在缺陷的情況下,波峰和波谷會有很大的差別,如圖9所示。模板窗口水平投影和待識別窗口水平投影波峰做差,得到極大值差值序列,再求極大值差值序列的方差記為d,根據(jù)d的大小來判斷窗口內(nèi)是否有缺陷。
圖9 活塞表面的水平投影(模板圖像(a)與其對應(yīng)無缺陷圖像(e)的水平投影分別為(b)和(f),模板圖像(c)與其對應(yīng)有缺陷圖像(g)的水平投影分別為(d)和(h))
1.3.2 窗口內(nèi)的特征比較
待檢測圖像窗口和模板圖像窗口進行特征比較時,為了準確地檢測缺陷,制定了如下規(guī)則:
(1)當兩個窗口內(nèi)灰度均值之差大于設(shè)定的閾值T1并且灰度方差之差大于設(shè)定閾值T2時,記f1=1,否則記f1=0;
(2)當垂直投影相似度參數(shù)巴氏距離B大于設(shè)定閾值T3時,則記f2=1,否則記f2=0;
(3)當極大值差值序列的方差d大于設(shè)定閾值T4,則記f3=1,否則記f3=0;
(4)僅當模板窗口和待檢測窗口進行比較時,其灰度變化相差較大、垂直投影不相似、水平投影的規(guī)律被打亂,即f1+f2+f3=3時,窗口內(nèi)一定存在缺陷,保存含有缺陷的窗口位置。
模板圖像窗口和待檢測圖像窗口灰度特征的差別大小和模板圖像窗口本身的灰度變化有關(guān)系。如果模板圖像窗口本身灰度變化劇烈,則兩個窗口的灰度特征差別也比較大,反之,兩個窗口的灰度特征差別比較小。其中灰度變化的閾值T1和T2可以由模板圖像線性回歸估計得到。其線性回歸的模型如下式:
y=w0+w1x1+w2x2+…+wnxn,
(9)
其中,w0,w1, …,wn為系數(shù),x1,x2, … ,xn為自變量,y為因變量。首先,將模板圖像平分為多個40×40窗口。然后,將每個窗口的垂直投影作為40維的自變量,灰度的均值和方差作為兩個因變量y1和y2,使用所有的窗口分別去擬合y1和y2線性回歸方程。求各個窗口分別到兩個函數(shù)的距離,距離的均值作為均值和方差的閾值T1和T2。垂直投影的相似性和水平投影的規(guī)律性分別由當前待檢測圖像窗口和模板圖像窗口之間的垂直投影和水平投影的差別決定,所以T3和T4可以使用固定閾值表示。在實際實驗中,當T3為5、T4為6時,能夠取得好的檢測效果。
在實驗室測試過程中,使用兩種不同型號的活塞型號,分別記為型號1和型號2,使用分辨率4 000×3 000相機配合穩(wěn)定的光源拍攝得到的圖像如圖10所示。隨機挑選422張兩個不同型號的活塞圖像做測試,其中,型號1活塞200張,型號2活塞222張。
利用尺度不變特征轉(zhuǎn)換算法對活塞外輪廓進行圖像配準的過程中,會出現(xiàn)一定數(shù)量的錯誤匹配點,使用1.2.2節(jié)提到的錯誤匹配點消除的算法,就可以得到正確匹配點。再根據(jù)正確的匹配點來得到兩幅圖像的相同區(qū)域,其相同區(qū)域如圖11所示。對422張待檢測圖像和其對應(yīng)模板圖像配準的結(jié)果進行統(tǒng)計,其中422張圖像匹配正確,即配準正確率為100%。
圖10 測試的活塞型號
圖11 經(jīng)圖像配準得到的相同區(qū)域
對待檢測圖像和模板圖像的相同區(qū)域同時用固定大小的窗口進行遍歷,并且提取窗口內(nèi)的灰度均值、灰度方差、垂直投影和水平投影,比較兩個窗口內(nèi)的這些特征來判斷待檢測圖像的窗口內(nèi)是否存在缺陷。其中各種類型缺陷檢測結(jié)果如圖12所示,矩形部分標明的是缺陷部分。在算法測試中,表面檢測的結(jié)果如表1所示。檢測正確是指正確檢測到待識別圖像中是否含有缺陷并標記缺陷區(qū)域,漏報是指在含有缺陷的部分并沒有標注為缺陷區(qū)域,誤報是指不含缺陷區(qū)域被標注為缺陷區(qū)域。檢測準確率是指檢測正確數(shù)目與待檢測數(shù)目的比例,漏報率是指漏報數(shù)目與待檢測數(shù)目的比例,誤報率是指誤報數(shù)目與待檢測數(shù)目的比例。由表1結(jié)果可知,在所測試的422張圖像中,包含缺陷圖像96張,其中算法檢測準確率約是94.78%,誤報率約是4.02%,漏報率約是1.18%。不同類型的活塞檢測準確率也不同,對于型號1的活塞檢測準確率約為94.5%,對型號2的活塞檢測準確率約為95.04%。表2表示各種類型的缺陷檢測情況,其中檢測斑點缺陷準確率約為91.66%,劃痕缺陷的準確率約為98.30%,缺口缺陷的準確率約為84.61%。
圖12 缺陷檢測結(jié)果示意圖
表1缺陷檢測的結(jié)果
樣本類型待檢測數(shù)目缺陷圖像數(shù)目檢測正確數(shù)目漏報數(shù)目誤報數(shù)目型號12006818947型號222228211110合計42296400517
由上述實驗結(jié)果可知,該算法對不同型號活塞檢測的準確率均高于94%,即該算法能夠比較準確地檢測缺陷并且對不同型號的活塞有較強的適應(yīng)性。但該算法還不能完全滿足工業(yè)上的需求,還存在一些誤報和漏報的情況。誤報出現(xiàn)的原因是模板圖像和待檢測圖像的反光區(qū)域不在同一個位置,則反光區(qū)域灰度差別比較大,造成誤報。漏報的原因是缺陷太過于微小,或者缺陷區(qū)域的灰度與模板對應(yīng)區(qū)域的差別很小。為了提高算法的準確率,切實滿足工業(yè)上的需求,下一步我們將嚴格控制圖像采集的條件,使缺陷可以完整地在圖像中呈現(xiàn)出來,從根源上提高準確率。另外還需要更為仔細地觀察缺陷區(qū)域和非缺陷區(qū)域的差別,提取其他特征,從而可以檢測出一些微小的缺陷。
根據(jù)活塞側(cè)表面特有的紋理特征以及缺陷區(qū)域在側(cè)表面上的灰度特點,提出了基于尺度不變特征轉(zhuǎn)換算法外輪廓配準的活塞外表面缺陷檢測方法。首先使用尺度不變特征變換對活塞外輪廓有明顯特征點的區(qū)域做圖像匹配,然后在對應(yīng)的相同區(qū)域進行依次窗口遍歷,并計算窗口內(nèi)的特征進行特征比較,最后判斷窗口內(nèi)是否存在缺陷。經(jīng)實驗證明,這種方法容易實現(xiàn)并且具有較高的準確率,并且對于不同類型的活塞有較強的適應(yīng)性。但是,該方法中仍未完全滿足工業(yè)上的需求。下一步,將從優(yōu)化光源和完整的提取缺陷的特征方面入手,提高算法準確率。