江松,張坤,張華
(安徽科技學(xué)院 機械工程學(xué)院,安徽 鳳陽,233100)
汽車剎車片的摩擦系數(shù)在任何條件下,都必須保持穩(wěn)定。當汽車剎車片表面產(chǎn)生裂紋時,它的摩擦系數(shù)就會降低,磨損率會加大[1]。同時,剎車片表面裂紋可能會使剎車片崩落,影響汽車的制動效果,給駕駛員和同行人員的人身安全和財產(chǎn)安全帶來隱患。為增強汽車安全系數(shù),減少因剎車片裂紋導(dǎo)致的安全事故,本文研究了基于圖像處理的剎車片裂紋有效識別提取的方法。
目前已經(jīng)存在大量對裂紋檢測的圖像處理算法,但是任何一個單一的算法都不能處理所有的圖像[2]。針對剎車片表面裂紋檢測需求,本文利用經(jīng)典的方向梯度直方圖(Histogram of Oriented Gradient, HOG)和局部二值模式(Local Binary Pattern,LBP)等算法對剎車片裂紋特征進行提取,并使用支持向量機(Support Vector Machine, SVM)算法構(gòu)建剎車片表面裂紋識別模型。進一步提出基于亞像素角點檢測方法對裂紋線進行提取,使裂紋更直觀可見。
在對裂紋圖像進行特征提取之前,利用圖像濾波算法先對圖像進行濾波,將圖像中的細節(jié)特征信息保留且更明顯分離出來,抑制目標圖像的自身噪聲和因拍攝和收集圖像時產(chǎn)生的噪聲。圖像濾波算法分為線性濾波和非線性濾波,對紋理圖像濾波時,非線性濾波有更好的濾波效果。由于裂紋在圖像中主要是它的邊緣信息,而雙邊濾波可以有效地保留邊緣信息、抑制噪聲達到平滑的效果。因此本文采用屬于非線性濾波的雙邊濾波(Bilateral Filters)算法[3-4]對裂紋圖像進行濾波。
雙邊濾波采用基于高斯分布的加權(quán)平均的方法,把周邊像素亮度值的加權(quán)平均代表某個像素的強度,避免高斯濾波會導(dǎo)致的像素移位問題。雙邊濾波不僅考慮了空間域還考慮了像素范圍域,令空間域Gs和顏色項Gr的乘積作為濾波核系數(shù)。具體的濾波算法為:
(1)
(2)
采用雙邊濾波處理后的剎車片裂紋圖像效果如圖1(b)所示,與原圖像圖1(a)對比可以明顯看出,原圖像中的非裂紋元素得到了很好的去除。
圖1 圖像預(yù)處理效果 圖2 灰度圖像直方圖
分析并統(tǒng)計剎車片圖像濾波處理后的灰度直方圖(如圖2所示),可以發(fā)現(xiàn)其僅有單峰,并且裂紋灰度圖像背景區(qū)域像素主要分布于148到176之間。針對剎車片裂紋的這一特點,本文應(yīng)用基于閾值的二值化圖像分割方法對裂紋圖像分割[5]。思路為:選定一個閾值,將待分割圖片中像素值大于閾值的像素點的像素值設(shè)置為255,小于閾值的像素點設(shè)置為0,得到僅有黑白色的二值圖像,具體算法如式(3)所示,其中z為圖像二值化設(shè)定的閾值。
(3)
將圖1(b)中雙邊濾波后的RGB圖像轉(zhuǎn)換為灰度圖像,再將灰度圖像轉(zhuǎn)換為二值圖像,本文轉(zhuǎn)換的最佳閾值為149,將大于149的像素點值設(shè)置為255,小于149的設(shè)置為0。分割示意圖如圖3所示,該方法能將圖像背景區(qū)域與裂紋目標區(qū)域有效分割,并加強裂紋圖像特征。
從圖3可以看出經(jīng)二值圖像分割方法處理后,剎車片裂紋圖像的目標裂紋和背景已經(jīng)被有效分割。將分割后的圖像分別使用HOG算法和LBP算法進行裂紋特征提取。
1.3.1 HOG特征提取 給定如圖3所示裂紋目標對象的圖像,設(shè)置一個檢測窗口。計算檢測窗口中每個像素的梯度大小和方向。將檢測窗口劃分成很
圖3圖像分割
多塊,將每一塊分成很多單元,為每個單元創(chuàng)建一個直方圖,在單元內(nèi),將梯度投影到單元的梯度方向,將所有單元格在塊上歸一化,將所有塊中的所有標準化直方圖收集到一個稱為HOG描述符的特征向量中[6-7]。
設(shè)置圖像檢測窗口的尺寸為64×64,窗口移動步長為(8,8),bin為9。剎車片裂紋圖像經(jīng)過濾波和圖像分割處理后,HOG可以提取出裂紋邊緣的結(jié)構(gòu)特征,描述裂紋的局部形狀,消除光照帶來的影響。通過OpenCV實時顯示矩陣MAT類的信息得到的裂紋特征如圖4所示:
(a:裂紋圖像特征,b:裂紋、無裂紋圖像特征)
圖5 LBP特征提取
1.3.2 LBP特征提取 LBP是一種廣泛應(yīng)用于描述局部紋理特征的算法,具有灰度不變性和旋轉(zhuǎn)不變性[8],可以有效提取物體表面紋理特征?;綥BP算法算子在3×3像素窗口的鄰域內(nèi),將窗口中心像素作為閾值與剩下8個像素作比較,大于中心像素的記為1,小于中心像素的記為0,將產(chǎn)生的八位二進制數(shù)作為窗口中心像素的LBP 值,并用該值來描述紋理情況。對于一張剎車片裂紋圖像,相鄰像素之間的像素值間有數(shù)量關(guān)系,將中間點像素值與中間點相鄰像素值比較得到八位二進制數(shù)的LBP值,這個LBP值就能很好地表示點和相鄰點像素之間的模式,可以得到裂紋圖像中的細節(jié)描述。通過LBP算法提取的裂紋特征如圖5所示:
支持向量機是一種有監(jiān)督機器學(xué)習(xí)方法,其思路是找到一個最優(yōu)超平面,使最優(yōu)超平面最近樣本的距離最大或最小,并且能保證該超平面分類的精度[9]。本文訓(xùn)練樣本為二分類,設(shè)二分類的SVM的訓(xùn)練樣本集為{(xi,yi)|i=1,2,3,…,n},xi∈Rn,其中xi,yi分別為輸入、輸出,樣本超平面為:
(w·xi)+b=0
(4)
利用Lagrange函數(shù)得到最優(yōu)超平面為:
(5)
進一步計算,可得到最終的最優(yōu)分類函數(shù)為:
(6)
本文將利用SVM算法構(gòu)建識別模型,用HOG算法提取的裂紋特征向量和LBP算法提取的裂紋特征向量分別作為模型輸入變量。本實驗共采集樣本總量260個,其中訓(xùn)練樣本為215個,剩余45個作為測試樣本用來驗證模型的精度?;诓煌卣鞯哪P蜏y試識別正確率如表1所示:
表1 基于不同特征的SVM模型的識別率
從表1可以看出,在不做任何圖像處理的情況下,SVM模型的識別正確率只有60%;基于HOG特征變量的SVM模型的識別正確率為95.56%,基于LBP特征變量的SVM模型的識別正確率最高,達到97.78%;基于LBP特征變量的模型比基于HOG特征變量的模型的識別效果更好。
利用訓(xùn)練好的識別模型檢測到圖像有裂紋后,進一步對圖像裂紋線進行提取。角點檢測算法以往主要用于三維場景重建、運動估計、視覺跟蹤以及圖像配準與圖像匹配等計算機視覺領(lǐng)域[10],并已取得良好的應(yīng)用效果。
亞像素角點檢測方法是基于原始角點檢測方法的改進算法,具有更高的檢測精度。經(jīng)大量文獻調(diào)研,目前未發(fā)現(xiàn)亞像素角點檢測方法在汽車零件裂紋識別方面的應(yīng)用,本文將首次嘗試利用亞像素角點檢測方法來提取裂紋角點信息。最后本文利用角點位置信息提出一種連接算法對裂紋線進行提取,并在原圖上標注出裂紋線。
如果圖像上一個點的兩個正交方向上都有明顯的導(dǎo)數(shù),則稱這個點是獨一無二的,并將該點稱為角點[11]。角點即兩條邊緣線的交點,或局部鄰域內(nèi)有兩個不同邊界的方向。角點檢測的基本思路是在一個灰度圖像上,利用一個檢測窗口以確定的步長移動,窗口在任意方向移動時,移動前后產(chǎn)生明顯灰度值變化,則認為窗口中存在角點。對識別為有裂紋的圖像,利用亞像素角點檢測方法可以得到剎車片裂紋特征角點的亞像素角點位置信息。
本文首先確定圖像強角點,得到角點的初始坐標位置信息,然后采用亞像素角點檢測得到亞像素級精度的位置,即精確的角點位置。檢測的角點如圖6所示。
圖6 角點檢測結(jié)果圖
從圖6可以看出,檢測出來的角點基本在裂紋線上,由于污漬、斑點等原因在裂紋線旁邊有極少數(shù)錯誤點也被檢測出,但總體檢測效果良好。經(jīng)過多次試驗結(jié)果表明,亞像素角點檢測對裂紋角點位置信息的提取精度較高,結(jié)果可靠。
提取裂紋角點坐標信息后,本文提出一種針對剎車片裂紋角點的連接算法,實現(xiàn)在原圖上標注裂紋線。算法的主要思想是對所有角點進行坐標值排序,排序后將第一個坐標點定義為起始點,將起始點與距離起始點最近的角點進行連接。當連接完成后,將被連接點為起始點重復(fù)上述連接過程。當所有的裂紋角點連接完成后,即可得到剎車片裂紋線。由于零件裂紋呈連續(xù)性,在連接過程中,對檢測出孤立的遠距離點不進行連接。主要實現(xiàn)步驟如下:
第一步:在角點數(shù)組中,對所有裂紋角點按角點橫坐標從小到大排序,
當橫坐標相等時按縱坐標從小到大排序。
圖7 裂紋線提取效果圖
第二步:排序后根據(jù)公式(7)計算第一個角點(x1,y1)到每一個角點(xn,yn)的距離d1、d2、d3、……、dn。
(7)
找到所有距離d的最小值dn,找到dn對應(yīng)角點在所有角點數(shù)組中的位置,即可找到距離角點(x1,y1)最近的坐標點(xn,yn)。
第三步:將點(xn,yn)與角點(x1,y1)連接。手動設(shè)置閾值D,本文閾值D設(shè)置為30。當距離dn大于閾值D時,第一點與第二點不進行連接,以點(xn,yn)作為第一個點重復(fù)步驟二。
第四步:當完成第二個點的連接后,刪除排序數(shù)組中的第一個點,并以第二個點作為起始點重復(fù)步驟二。
第五步:所有裂紋角點被連接后結(jié)束算法。
該算法流程簡短,計算量小,擬合效果直觀、突出。連接后的裂紋線如圖7所示,從圖中可以看出,2.1節(jié)檢測出的錯誤角點未被連接,而裂紋上的角點基本上被連接。結(jié)果表明,該方法能正確標注裂紋,使裂紋更加清晰
可見。
本文先利用雙邊濾波、圖像二值化分割對圖像預(yù)處理,然后分別利用HOG和LBP算法對裂紋特征提取,最后利用SVM算法構(gòu)建裂紋識別模型,對有、無裂紋圖像進行二分類?;赟VM模型發(fā)現(xiàn)LBP算法提取的特征比HOG算法提取特征在裂紋識別方面更具優(yōu)勢,識別準確率達97%以上。為了標注裂紋,進一步對識別為有裂紋的圖像提出使用亞像素角點檢測方法,能得到亞像素級精度裂紋坐標信息,然后通過編寫算法將裂紋線高效、完整地擬合在的原始裂紋圖像上,結(jié)果表明該算法擬合效果良好。當然本文算法也有不足之處,例如零件點蝕、摩擦劃痕、零件磨損變色、污漬等均有可能降低裂紋識別和裂紋線擬合的精度,這將是今后研究的重點。