徐 平, 薛凌云, 常英杰(杭州電子科技大學(xué) 生命信息與儀器工程學(xué)院, 浙江 杭州 310018)
汽車發(fā)動(dòng)機(jī)進(jìn)氣歧管的尺寸檢測是生產(chǎn)廠家評(píng)價(jià)產(chǎn)品質(zhì)量的重要指標(biāo),現(xiàn)有的檢測手段主要依賴人工接觸式測量,效率低且可靠性不高,實(shí)際測量結(jié)果無法準(zhǔn)確獲取。采用機(jī)器視覺技術(shù)對(duì)零件的尺寸、形狀等幾何特征進(jìn)行檢測已成為現(xiàn)代制造業(yè)中改進(jìn)和控制產(chǎn)品質(zhì)量的重要手段,其中,零件圖像的邊緣檢測是該技術(shù)的關(guān)鍵和核心步驟。圖像邊緣檢測的精確度直接影響著最后測量結(jié)果的精確度[1]。亞像素邊緣檢測相對(duì)于傳統(tǒng)的Canny,Sobel等像素級(jí)的邊緣檢測具有更高的精度,目前,常用的亞像素邊緣檢測方法主要可分為3種類型:擬合法、插值法和矩方法[2,3]。文獻(xiàn)[4,5]提出了將邊緣梯度擬合為二次多項(xiàng)式曲面來進(jìn)行亞像素邊緣檢測的方法,這些方法具有較好的抗噪能力,但存在計(jì)算復(fù)雜度高的不足;文獻(xiàn)[6]提出了一種非線性四階ENO (essentially non oscillatory)插值的方法,這類方法具有較好的計(jì)算效率但對(duì)于含噪圖像的邊緣檢測效果不佳;文獻(xiàn)[7]提出了一種基于正交Fourier-Mellin矩的方法(OFMM),矩方法對(duì)噪聲比較敏感;文獻(xiàn)[8]提出了一種新型的亞像素邊緣檢測方法,該方法利用邊緣投影像素的矩形鄰域內(nèi)的灰度信息建立投影曲線方程得到高精度的亞像素邊緣,但該方法直接將曲線的截距點(diǎn)作為邊緣的亞像素位置,而沒有考慮曲線的方向信息,在數(shù)學(xué)意義上,這不符合梯度的定義,同時(shí),該方法在根據(jù)周圍像素計(jì)算像素內(nèi)的灰度值時(shí)采用的是各像素的均值,這并不符合成像時(shí)光斑能量分布的真實(shí)情況。
針對(duì)汽車進(jìn)氣歧管,本文在求得邊緣投影曲線的基礎(chǔ)上,提出將過原點(diǎn)且方向?yàn)樘荻确较虻闹本€與邊緣曲線的交點(diǎn)作為高精度亞像素邊緣點(diǎn),并以此為長短軸尺寸測量的基礎(chǔ)。同時(shí),因?yàn)槌上駮r(shí)光斑的能量分布為高斯分布[9],故本文在計(jì)算像素內(nèi)的灰度值時(shí),對(duì)其鄰近灰度值進(jìn)行了高斯加權(quán)處理,得到更高精度的汽車進(jìn)氣歧管長短軸檢測結(jié)果。
圖1給出了算法實(shí)現(xiàn)的流程圖。獲取圖像的像素級(jí)邊緣是實(shí)現(xiàn)該方法的前提,本文通過以下步驟來獲取圖像的像素級(jí)邊緣:首先,運(yùn)用Sobel算子得到圖像的梯度圖;然后,對(duì)梯度圖使用閾值分割得到高梯度值像素的集合;最后,對(duì)該集合進(jìn)行骨架化處理得到單像素的邊緣。
圖1 算法流程圖
獲得圖像的單像素邊緣后,按照式(1)和式(2)計(jì)算每一個(gè)像素在行和列方向上的差分fc,fr:
(1)
(2)
單像素邊緣中的每一個(gè)像素可認(rèn)為是邊緣投影所穿過的像素。對(duì)于任一像素(i,j),將穿過該像素的邊緣投影近似成一段線段(線段方程設(shè)為y=a+bx,a為截距,b為斜率)。由于此時(shí)該像素的列差分fc和行差分fr滿足|fc|≤|fr|,所以有b∈[-1,1]。在實(shí)際中待檢測零件的邊緣在一定范圍內(nèi)總是連續(xù)可導(dǎo)的,且像素單元的尺寸又很小,可近似認(rèn)為所設(shè)直線也會(huì)穿越像素(i,j)所在列的鄰近幾列像素,因此把像素(i,j)所在的列以及與其鄰近的左右兩列像素作為研究對(duì)象。同時(shí)穿越3列像素(i,j)內(nèi)部直線可能掃過的像素范圍如圖2所示。其中Y1為過極限位置1時(shí)的直線,Y2為過極限位置2時(shí)的直線,一共考慮5行像素。
圖2 直線可能掃過的像素范圍
把在原圖像中截取的一個(gè)像素(i,j)為中心的5×3像素矩陣(記為F)作為研究對(duì)象,來計(jì)算所設(shè)直線的參數(shù),如圖3所示。
圖3 求解直線方程參數(shù)的圖示
圖3中,以像素(i,j)(虛線框所示)中心為坐標(biāo)原點(diǎn)建立如圖3右側(cè)所示的直角坐標(biāo)系[8]。
像素(i,j)的灰度值應(yīng)滿足:
(3)
式中:A,B為像素內(nèi)邊緣兩側(cè)的灰度值;h為正方形像素的邊長;Si,j為像素(i,j)位于邊緣直線y=ax+b下方的面積(0≤Si,j≤h2)。
令SL,SM,SR分別代表矩陣中左、中、右3列像素中每列像素的灰度值之和,則有:
(4)
(5)
(6)
式中:L,M,R分別代表每列像素中位于邊緣直線下方的面積。L,M,R滿足:
(7)
(8)
(9)
聯(lián)立式(5)與式(8)可得:
(10)
聯(lián)立式(4)、式(6)、式(7)、式(9)可得:
(11)
式(11)中A和B的值是未知的。因?yàn)閷?shí)際中一個(gè)像素內(nèi)并不存在A和B兩種灰度值,所以A和B的值應(yīng)由該像素鄰近的幾個(gè)像素的灰度統(tǒng)計(jì)值估計(jì)得到。此外,采用矩陣F中哪幾個(gè)像素計(jì)算該估計(jì)值與邊緣直線斜率的正負(fù)性有關(guān),故在此依據(jù)b的正負(fù)分別討論。
當(dāng)b∈[0,1]時(shí),所選取的像素如圖4(a)的虛線框所示。因?yàn)榕c中心像素的距離不同,各像素的灰度值對(duì)中心像素最終灰度值的貢獻(xiàn)也不同。根據(jù)待處理圖像的成像質(zhì)量選取適當(dāng)?shù)臉?biāo)準(zhǔn)差σ(主要受對(duì)焦情況的影響)建立高斯函數(shù),如式(12)計(jì)算各像素所具有的權(quán)值,分別記為α,β,γ。
G(u,v)=Ce-(u2+v2)/(2σ2)
(12)
式中:u和v分別為各像素距中心像素的坐標(biāo)距離;C為歸一化系數(shù)。設(shè)α>β>r,則A和B的計(jì)算公式為:
A=βFi,j+2+γFi+1,j+2+αFi+1,j+1
(13)
B=βFi,j-2+γFi-1,j-2+αFi-1,j-1
(14)
同理,當(dāng)b∈[-1,0]時(shí),由圖4(b)可得到
A=βFi,j+2+γFi-1,j+2+αFi-1,j+1
(15)
B=βFi,j-2+γFi+1,j-2+αFi+1,j-1
(16)
綜上,對(duì)于邊緣的斜率b∈[-1,1]的情況,給出更加一般化的計(jì)算A和B的表達(dá)式:
A=βFi,j+2+γFi+m,j+2+αFi+m,j+1
(17)
B=βFi,j-2+γFi-m,j-2+αFi-m,j-1
(18)
其中m滿足以下等式:
(19)
圖4 計(jì)算A和B時(shí)選取像素的情況
由|fc|>|fr|可知,此時(shí)邊緣直線的斜率b滿足|b|>1。故在這種情況下應(yīng)在原圖像中截取以像素(i,j)為中心的3×5的像素矩陣,并從上到下依次計(jì)算矩陣內(nèi)每行像素的灰度值之和,分別作為SR,SM,SL值。同時(shí)在原坐標(biāo)系保持不變的情況下,將所設(shè)的邊緣直線的方程改為x=a+by。做上述處理后,參數(shù)a和b的求值表達(dá)式不變。此時(shí)A和B的值由式(20)、(21)給出,其中m同式(19)。
A=βFi+2,j+γFi+2,j+m+αFi+1,j+m
(20)
B=βFi-2,j+γFi-2,j-m+αFi-1,j-m
(21)
綜上,根據(jù)原圖像信息求出中間變量SR,SM,SL以及A,B之后,將其代入式(10)和式(11)就可以得到邊緣直線方程的參數(shù)。
首先,求出邊緣在該像素的梯度:
(22)
其次,求出過原點(diǎn)、且方向向量與N相同的直線和已知邊緣直線的交點(diǎn),記為(x,y),則像素(i,j)的亞像素邊緣位置為:
(23)
式中x與y的符號(hào)不同。這是因?yàn)榍蠼膺吘壷本€時(shí)所建立的坐標(biāo)系的X軸與圖像坐標(biāo)系的i軸(即列坐標(biāo)軸)方向相同,而Y軸與j軸(即行坐標(biāo)軸)方向相反。
在這種情況下,按本文的求取方式則得到的邊緣亞像素位置為S2。若直接采用直線的截距計(jì)算,則得到的邊緣亞像素位置為S1。由圖5可知,此時(shí)該位置已不在像素內(nèi)。這說明本文將邊緣的斜率考慮在內(nèi)來計(jì)算邊緣的亞像素位置更加合理。
圖5 亞像素位置的選取方式
圖6 實(shí)驗(yàn)所使用的進(jìn)氣歧管圖
本文使用的汽車發(fā)動(dòng)機(jī)進(jìn)氣歧管如圖6(a)所示。在工程實(shí)踐中通常先對(duì)標(biāo)準(zhǔn)件進(jìn)行檢測得到參考值,然后再對(duì)實(shí)際生產(chǎn)的零件進(jìn)行檢測,最后將檢測結(jié)果與參考值進(jìn)行對(duì)比,從而判斷生產(chǎn)的零件是否合格。本文以規(guī)格分別為50.00 mm×40.00 mm和50.05 mm×40.05 mm的2種標(biāo)準(zhǔn)件作為檢測對(duì)象。圖6(b)是規(guī)格為50.05 mm×40.05 mm的標(biāo)準(zhǔn)件圖像。為保證算法的重復(fù)性,實(shí)驗(yàn)時(shí)拍攝多組零件的圖像,其中每組零件的圖像是零件在同一位置連續(xù)拍攝多張得到的。實(shí)際生產(chǎn)時(shí)主要測量該零件的2種尺寸:長軸和短軸。為了驗(yàn)證本文算法的有效性,本實(shí)驗(yàn)同時(shí)還采用了文獻(xiàn)[8]的方法和文獻(xiàn)[10]所介紹的曲面擬合方法對(duì)該零件的圖像進(jìn)行亞像素邊緣檢測,并計(jì)算2個(gè)待測量的像素尺寸。表1從標(biāo)準(zhǔn)差、最大偏差、最小偏差3方面給出了實(shí)驗(yàn)數(shù)據(jù)的統(tǒng)計(jì)結(jié)果。其中,標(biāo)準(zhǔn)差是用各組測量數(shù)據(jù)按式(24)計(jì)算得出的, 用以表征檢測結(jié)果的精度。
(24)
式中:μ為各組數(shù)據(jù)的均值;N為樣本數(shù)。最大偏差和最小偏差分別為各測量數(shù)據(jù)與其組均值偏差的絕對(duì)值的最大和最小值,用來表征各組測量數(shù)據(jù)中的奇異值。
表1 長軸和短軸實(shí)驗(yàn)數(shù)據(jù)的統(tǒng)計(jì)結(jié)果 像素
由表1可知,本文方法的標(biāo)準(zhǔn)差、最小偏差和最大偏差都要小于文獻(xiàn)[8]和[10]的方法,即本文方法的準(zhǔn)確度要高于文獻(xiàn)[10]和[8]的方法。以標(biāo)準(zhǔn)差的降低率為例,具體數(shù)值見表2。
表2 本文方法與文獻(xiàn)[10]和[8]的比較 (%)
圖7給出了采用文獻(xiàn)[10]所介紹的曲面擬合方法和本文方法,對(duì)進(jìn)氣歧管進(jìn)行亞像素邊緣檢測所得到結(jié)果的4個(gè)部位的局部對(duì)比圖,分別用數(shù)字1~4編號(hào)。其中深色線為曲面擬合方法的檢測結(jié)果,淺色線為本文方法的檢測結(jié)果。由編號(hào)為3和4的局部對(duì)比圖可知,在相同位置上,曲面擬合方法會(huì)出現(xiàn)檢測到多條邊緣的情況,而本文的方法沒有出現(xiàn)這種情況。這說明本文方法符合文獻(xiàn)[11]所述的優(yōu)良邊緣檢測算子應(yīng)具備的單邊緣響應(yīng)準(zhǔn)則。
圖7 本文方法和曲面擬合法邊緣檢測結(jié)果局部對(duì)比圖
本文針對(duì)汽車發(fā)動(dòng)機(jī)進(jìn)氣歧管,提出了一種基于邊緣像素投影的亞像素邊緣檢測方法。通過分析邊緣投影對(duì)其所穿過的像素的灰度值的影響效應(yīng),建立了灰度值的面積加權(quán)計(jì)算模型,然后利用邊緣像素的某一鄰域內(nèi)的灰度值計(jì)算出表示邊緣投影的曲線方程,進(jìn)而求得邊緣的亞像素位置。對(duì)規(guī)格分別為50.00 mm×40.00 mm和50.05 mm×40.05 mm的汽車進(jìn)氣歧管長短軸進(jìn)行檢測實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,與文獻(xiàn)[8]基于曲面擬合的亞像素邊緣檢測方法相比,長短軸標(biāo)準(zhǔn)差分別降低了1.71%和17.78%,以及38.66%和2.03%。本文提出的亞像素邊緣檢測方法,不僅準(zhǔn)確度高,而且能夠避免在有較多干擾時(shí)的多重響應(yīng)。
[參考文獻(xiàn)]
[1] 伍濟(jì)鋼. 薄片零件尺寸機(jī)器視覺檢測系統(tǒng)關(guān)鍵技術(shù)研究[D]. 武漢:華中科技大學(xué), 2008:2-10.
[2] 祝宏, 曾祥進(jìn). Zernike 矩和最小二乘橢圓擬合的亞像素邊緣提取[J]. 計(jì)算機(jī)工程與應(yīng)用, 2011, 47(17):148-150.
[3] 段振云,王寧,趙文輝,等.基于高斯積分曲線擬合的亞像素邊緣提取算法[J]. 計(jì)量學(xué)報(bào),2016,37(4):371-374.
[4] Devernay F. A Non-Maxima Suppression Method for Edge Detection with Sub-Pixel Accuracy[C]// Rapport De Rechercheinstitut National De Recherche En Informatique Et En Automatique,1995. https://doi.org/10.1.1.35.1863.
[5] Rockett P. The accuracy of sub-pixel localisation in the canny edge detector[C]// Proc. of the British Machine Vision Conference. BMVC 1999:392-401.
[6] Hermosilla T, Bermejo E, Balaguer A,etal. Non-linear fourth-order image interpolation for subpixel edge detection and localization[J].ImageVisionComput, 2008,26(9):1240-1248.
[7] Tan J B, Ao L, Cui J W,etal. Subpixel edge location based on orthogonal Fourier-Mellin moments[J].ImageandVisionComputing, 2008, 26(4): 563-569.
[8] Trujillo-Pino A, Krissian K. Accurate subpixel edge location based on partial area effect [J].ImageandVisionComputing, 2013, 31(1):72-80.
[9] 張愛麗,佟首峰,韓成. 基于CCD的光斑能量分布測量及特性分析[J]. 激光與紅外, 2011, 41(6):622-626.
[10] Steger C. 機(jī)器視覺算法與應(yīng)用[M]. 楊少榮, 吳迪靖, 段德山, 譯. 北京:清華大學(xué)出版社, 2008.
[11] Canny J. A computational approach to edge detection[J].IEEETransactionsonPatternAnalysisandMachineIntelligence,1986, 8(6):679-698.