張智凡 于鳳芹
摘 要:針對局部灰度特征方法在高噪聲圖像中定位精度低的問題,提出改進(jìn)局部灰度特征方法并用于工件亞像素邊緣檢測。首先,使用改進(jìn)的Canny算子代替基于一階導(dǎo)數(shù)的梯度算子,以便更精確地提取粗邊緣;然后在采集到的像素窗口兩側(cè)建立子圖像,代替單個窗口特征以修改邊緣上下兩側(cè)強(qiáng)度值,再將新構(gòu)造的子圖像中間列像素進(jìn)行加權(quán),加速圖像迭代復(fù)原速度;最后,通過所有新生成的子圖像局部灰度特征重新計(jì)算亞像素位置,進(jìn)一步提高檢測精度。實(shí)驗(yàn)結(jié)果表明,在無外加噪聲和加入1.00%、5.00%的噪聲標(biāo)準(zhǔn)偏差圖像中,RMS誤差明顯降低,亞像素坐標(biāo)數(shù)與定位精度明顯提高。
關(guān)鍵詞:邊緣檢測;亞像素;局部灰度;圖像強(qiáng)度;迭代復(fù)原;子圖像特征
DOI:10. 11907/rjdk. 182556
中圖分類號:TP317.4
文獻(xiàn)標(biāo)識碼:A文章編號:1672-7800(2019)006-0158-05
Abstract: In order to solve the problem of low localization accuracy of local grayscale feature method in high noise image, an improved local grayscale feature method is proposed and applied to the sub-pixel edge detection of workpiece. First of all, using the improved canny operator instead of the traditional derivative mask to extract rough edge more precisely, and then collected the pixel window on both sides to establish the image instead of a single window feature to modify the edge strength value on both sides. Then, the intermediate column pixels of the newly constructed subimage are weighted to speed up the iterative recovery of the image. Finally, the detection accuracy is further improved by recalculating the sub-pixel position through all newly generated sub-image features. The experimental results show that the RMS error is significantly reduced in the absence of additional noise and the addition of 1.00% and 5.00% noise standard deviation images.
Key Words: edge detection; sub-pixel; partial gray features; image intensity; restoration iteration; subimage feature
0 引言
工件邊緣檢測技術(shù)是工件尺寸檢測技術(shù)關(guān)鍵組成部分。改變CCD相機(jī)分辨率以提高檢測精度的常規(guī)作法硬件成本高昂[1-2],因此基于圖像的亞像素邊緣檢測方法成為提高檢測精度的常用手段[3]。
目前已知的亞像素級邊緣檢測算法分為矩法、擬合法、插值法3類。Bin[4]利用低階徑向數(shù)與矩的旋轉(zhuǎn)不變性特征提出一種基于正交傅里葉—梅林矩法的檢測方式,但無法提高對小物體的檢測精度。一些研究在使用基于矩的亞像素算法之前使用Sobel算子確定粗邊緣[5-8]以降低計(jì)算復(fù)雜度;文獻(xiàn)[9]利用可變模型進(jìn)行檢測,但結(jié)果受限于梯度方向和位置;為避免圖像復(fù)雜邊緣的干擾,魏本征等[10]提出一種基于邊緣方向梯度插值和Zernike正交矩的新亞像素邊緣檢測方法,豐富了邊緣信息且增加了亞像素邊緣點(diǎn)數(shù)量;文獻(xiàn)[11]利用Sigmoid函數(shù)擬合邊緣模型[11],利用圖像邊緣灰度信息對模型進(jìn)行非線性最小二乘擬合;為解決計(jì)算效率低和魯棒性差的問題,Sun[12]采用Sobel算子和三次曲面擬合方法確定邊緣法線方向,然后將二維邊緣檢測轉(zhuǎn)化為一維問題進(jìn)行求解;文獻(xiàn)[13]采用邊界跟蹤算法獲得粗糙輪廓[13],通過梯度方向的灰度矩計(jì)算出準(zhǔn)確的輪廓位置,但耗時較長且曝光要求高;Trujillo-Pino[14]通過圖像值采集的局部灰度特征計(jì)算邊緣特征,由局部灰度特征推導(dǎo)出邊緣采集模型,并且假設(shè)該模型在圖像值上是不連續(xù)的;還有學(xué)者[15-16]在該方法的基礎(chǔ)上進(jìn)行改進(jìn),但仍會有無效點(diǎn),并且在復(fù)雜圖像上檢測精度不高,雖在無噪聲情況下相比以上幾類方法,檢測精度更高,但是在處理高噪聲圖像時會產(chǎn)生像素級邊緣缺失及亞像素位置偏移問題。
因此,本文對局部灰度特征方法進(jìn)行改進(jìn)并應(yīng)用于工件檢測。首先,改進(jìn)Canny算子并用其取代傳統(tǒng)一階導(dǎo)數(shù)的梯度算子,計(jì)算出粗邊緣以提高像素級邊緣檢測精度;然后,在局部灰度特征方法中建立的9*3或3*9圖像窗口兩側(cè)創(chuàng)建子圖像窗口,根據(jù)距離邊緣的遠(yuǎn)近重新對子圖像窗口像素值進(jìn)行賦值,綜合所有新生成子圖像的像素值代替單個窗口內(nèi)的像素值,通過3次迭代后的復(fù)原圖像可得到理想邊緣,從而彌補(bǔ)像素級邊緣缺失的問題;再將新構(gòu)造的子圖像中間列像素值進(jìn)行加權(quán),加速對圖像復(fù)原處理的速度;最后,對得到的綜合圖像重新通過邊緣上下兩側(cè)強(qiáng)度計(jì)算亞像素邊緣特征,彌補(bǔ)亞像素位置偏移問題,從而提高亞像素級邊緣檢測精度。由于各類工件形狀不同,圓形部分采用RMS誤差[17]作為該方法精度評價(jià)準(zhǔn)則。對其它形狀部分取若干亞像素坐標(biāo)點(diǎn)作為標(biāo)記點(diǎn)計(jì)算距離數(shù)據(jù),根據(jù)距離大小與實(shí)際值誤差[18]評價(jià)算法精度。
1 基本原理
1.1 Canny算法基本原理及改進(jìn)
傳統(tǒng)Canny邊緣檢測算法[19]通過尋找像素點(diǎn)局部最大值,并沿著梯度方向比較前后梯度值,確定高低閾值之間邊緣點(diǎn)。檢測步驟為:①灰度化;②高斯濾波;③計(jì)算圖像梯度值和方向;④非極大值抑制;⑤邊緣確定和連接。
對含有邊緣附近高噪聲部分區(qū)域,上一節(jié)用DCT變換代替Canny算子中的高斯函數(shù)進(jìn)行去噪并保留圖像粗邊界特征,由于對去噪后的單個像素窗口計(jì)算圖像上下強(qiáng)度和亞像素位置時仍出現(xiàn)誤差,為增強(qiáng)邊緣特征,本文在以粗邊緣為中心的窗口左右兩列建立子窗口,如圖2所示,對已檢測到的邊緣像素,可以通過復(fù)原子圖像已得到的特征(亞像素位置、方向、邊緣兩側(cè)強(qiáng)度變化等)產(chǎn)生理想邊緣。圖2(b)為一個9*3的子圖像窗口,對圖2(a)中的每個邊緣像素建立子圖像并綜合所有子圖像信息。通過該方式可以生成一個完整的合成圖像。在遠(yuǎn)離邊緣的像素中,能與圖2(a)平滑處理后的值保持一致。復(fù)原后圖像中的邊緣特征值對噪聲敏感度低于在a中檢測到的邊緣特征值,使整體檢測結(jié)果更加準(zhǔn)確。由于子圖像中間一列比左右兩列誤差更低,為提高圖像復(fù)原處理的速度,對新構(gòu)造的子圖像中間一列像素值進(jìn)行加權(quán)。
2 算法實(shí)現(xiàn)
改進(jìn)局部灰度特征與應(yīng)用算法流程如圖3所示。
改進(jìn)局部灰度特征亞像素邊緣檢測具體步驟為:
(1)輸入測試圖像并對其進(jìn)行預(yù)處理。
(2)通過DCT變換得到DCT系數(shù)和噪聲估計(jì),并糾正系數(shù),由IDCT變換得到平滑圖像以代替Canny算子高斯濾波,然后計(jì)算梯度值及方向,通過非極大值抑制確定粗邊緣特征。
(3)通過邊緣斜率確定窗口是垂直還是水平狀態(tài),以邊緣像素為中心生成9*3或者3*9的像素窗口,根據(jù)邊緣上下兩側(cè)面積和灰度值計(jì)算初始圖像強(qiáng)度。
(4)以i-1列和i+1列為中心生成9*3子圖像窗口,分別計(jì)算各子圖像的強(qiáng)度值。
(5)為了合并所有子圖像,需創(chuàng)建兩個全新圖像,并對圖像的像素值重新賦值:①原圖像A,其中每個像素值表示包括該類像素子圖像個數(shù);②圖像I的值,每個像素值表示各像素強(qiáng)度的累積和;③值像素為0時表示遠(yuǎn)離邊緣,此時將遠(yuǎn)離邊緣的像素值設(shè)為初始圖像平滑后的值,即圖c中窗口外的部分;④值大于0的像素表示至少包含在一個子圖像中的像素,此時將[I(i,j)/A(i,j)]的值賦給復(fù)原圖像中包含子圖像的像素值。
(6)對得到的復(fù)原圖像特征重新進(jìn)行步驟(4)的操作,經(jīng)過3次迭代得到最終保留邊緣的復(fù)原圖像信息。
(7)根據(jù)修改后的圖像強(qiáng)度,采用局部灰度特征方法計(jì)算最終亞像素級邊緣特征。
3 工件圖像測量實(shí)驗(yàn)分析
3.1 實(shí)驗(yàn)結(jié)果對比
實(shí)驗(yàn)測試圖像通過CMOS攝像頭拍攝獲取,大小均為1 600*1 200。實(shí)驗(yàn)計(jì)算機(jī)CPU為e3-1230-v5,8g內(nèi)存及Windows7、Matlab2016a軟件環(huán)境。圖4、圖5為兩組工件圖像的處理結(jié)果,第一組圖像以亞像素坐標(biāo)提取數(shù)和運(yùn)行時間為指標(biāo),根據(jù)齒輪齒頂標(biāo)記點(diǎn)選擇齒輪特征點(diǎn)[1],尺寸數(shù)據(jù)由齒輪測量儀精確測量所得。第二組圖片是根據(jù)3次迭代處理后標(biāo)記的4組端點(diǎn)測量所得的坐標(biāo)位移偏差。
實(shí)驗(yàn)需手動選取閾值和迭代次數(shù)。迭代次數(shù)選取過高將導(dǎo)致該算法檢測時間較長,過低將導(dǎo)致邊緣依然存在模糊,使邊緣上下強(qiáng)度和亞像素位置存在偏差。本文實(shí)驗(yàn)將迭代次數(shù)設(shè)為3,閾值設(shè)為15。
圖4(a)是在工業(yè)現(xiàn)場手動拍攝的齒輪圖片。圖4(b)、4(c)分別表示圖4(a)中齒頂部分改進(jìn)前、改進(jìn)后的放大區(qū)域,改進(jìn)前靠近齒廓漸開線和齒頂部分含有高噪聲的區(qū)域,從中可以看出檢測誤差較大,對噪聲敏感度較高,甚至出現(xiàn)邊緣缺失現(xiàn)象。
為驗(yàn)證算法有效性,將本文算法與OFMM法、傳統(tǒng)局部灰度特征方法(LGF)作對比。表1顯示了3種算法的運(yùn)行速度,可以看出本文算法速度略微優(yōu)于OFMM法,傳統(tǒng)局部灰度特征算法由于無需迭代復(fù)原圖像,在時間上略優(yōu)于改進(jìn)后的算法。從坐標(biāo)點(diǎn)檢測數(shù)目來看,本文算法檢測出的坐標(biāo)點(diǎn)更多,因此可以更好地提取齒輪輪廓形狀。
表2中,將P1、P2、P3、P4標(biāo)記的特征點(diǎn)作為檢測點(diǎn),本文算法的坐標(biāo)偏移量明顯小于其它兩種算法,取P1、P2坐標(biāo)測量距離與標(biāo)準(zhǔn)坐標(biāo)偏移誤差百分比為相對誤差,R為齒輪內(nèi)部圓的半徑長度。實(shí)驗(yàn)證明,本文算法精度低于0.2%,坐標(biāo)偏移量也相對減少。
圖5(a)分別取齒輪內(nèi)部4個圓的端點(diǎn)為標(biāo)記點(diǎn),對其16個點(diǎn)進(jìn)行亞像素級坐標(biāo)檢測,檢測結(jié)果如圖5(b)所示,圖5(c)為齒輪右側(cè)內(nèi)部圓放大后的圖像,實(shí)驗(yàn)結(jié)果表明可將圓形和齒頂邊緣細(xì)致且連續(xù)地輸出。表3-表6分別標(biāo)記內(nèi)部圓4個標(biāo)記點(diǎn)的標(biāo)準(zhǔn)坐標(biāo)、亞像素級坐標(biāo)、坐標(biāo)偏移量、測量直徑和相對誤差。檢測結(jié)果表明,本文算法精度達(dá)到0.2個像素級別以上,相對誤差小于0.5%,亞像素邊緣檢測效果更好。
表7為在預(yù)處理后的圖5(a)齒輪圖像中添加不同噪聲標(biāo)準(zhǔn)偏差的比較數(shù)據(jù),將原方法與本文方法及1次和3次迭代后的結(jié)果作比較。實(shí)驗(yàn)結(jié)果表明,本文方法在1次迭代處理后的RMS誤差略小于原方法,在無外加噪聲的圖像中,RMS誤差減少了48.3%。在5.00%的噪聲標(biāo)準(zhǔn)偏差圖像中,1次迭代處理后的RMS誤差比原方法降低了25.9%,3次迭代處理后的效果更好,但速度稍慢。
4 結(jié)語
基于局部灰度特征的亞像素級邊緣檢測方法假設(shè)邊緣可由邊緣所在相鄰像素的直線或二次曲線進(jìn)行近似。對于低噪聲的邊緣模型,該方法對于邊緣位置和邊緣方向的計(jì)算是完全準(zhǔn)確的;同時針對高噪聲圖像提出了一種改進(jìn)的迭代方法,對平滑后的圖像以每個檢測到的像素級邊緣為中心像素,創(chuàng)建子窗口并對原圖像和創(chuàng)建的子圖像像素進(jìn)行重新賦值與列加權(quán),經(jīng)過迭代后得到的圖像可以在高噪聲圖像中精確檢測邊緣特征。將該方法應(yīng)用于工件邊緣檢測,算法流程簡單,實(shí)驗(yàn)結(jié)果顯示該方法可行、有效。
參考文獻(xiàn):
[1] 張少軍,艾矯健,李忠富,等. 利用數(shù)字圖像處理技術(shù)測量幾何尺寸[J]. 工程科學(xué)學(xué)報(bào),2002,24(3):284-287.
[2] 張強(qiáng),黃道君. CCD光電測徑儀的在線應(yīng)用[J]. 儀器儀表與分析監(jiān)測, 2003(3):8-9.
[3] 劉力雙,張銚,盧慧卿,等. 圖像的快速亞像素邊緣檢測方法[J]. 光電子·激光,2005, 16(8):993-996.
[4] BIN T J,AO L,CUI J W,et al. Subpixel edge location based on orthogonal Fourier-Mellin moments[J]. Image & Vision Computing,2008,26(4):563-569.
[5] QU Y D,CUI C S,CHEN S B, et al. A fast subpixel edge detection method using Sobel-Zernike moments operator[J]. ?Image and Vision Computing,2005,23(1):11-17.
[6] HU Z,DANG H,LI X. A novel fast subpixel edge location method based on Sobel-OFMM[C]. ?IEEE International Conference on Automation and Logistics, 2008:828-832.
[7] 苗青,李仰軍,王高,等. 基于改進(jìn)的Sobel算子和Zernike矩的亞像素邊緣檢測[J]. 山西電子技術(shù),2016(1):5-6.
[8] 李慶利,張少軍,李忠富,等. 一種基于多項(xiàng)式插值改進(jìn)的亞像素細(xì)分算法[J]. 工程科學(xué)學(xué)報(bào), 2003, 25(3):280-283.
[9] BOUCHARA F,RAMDANI S. Subpixel edge refinement using deformable models[J]. Journal of the Optical Society of America A-Optics Image Science and Vision,2009,26(4):820.
[10] 魏本征,趙志敏,華晉. 基于改進(jìn)形態(tài)學(xué)梯度和Zernike矩的亞像素邊緣檢測方法[J]. 儀器儀表學(xué)報(bào), 2010, 31(4):838-844.
[11] 張舞杰,李迪,葉峰. 基于Sigmoid函數(shù)擬合的亞像素邊緣檢測方法[J]. 華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2009,37(10):39-43.
[12] SUN Q,HOU Y,TAN Q. A subpixel edge detection method based on an arctangent edge model[J]. Optik-International Journal for Light and Electron Optics,2016, 127(14):5702-5710.
[13] WU K,LI W,GE Y,et al. A subpixel edge detection algorithm based on the combination of border following and gray moment[C]. IEEE International Conference on Nano/molecular Medicine and Engineering, 2017:34-38.
[14] TRUJILLO-PINO A,KRISSIAN K,ALEMáN-FLORES M,et al. Accurate subpixel edge location based on partial area effect[J]. Image & Vision Computing,2013,31(1):72-90.
[15] 宿曉瑋. 基于像元分解的標(biāo)志點(diǎn)亞像素定位研究[D]. 徐州:中國礦業(yè)大學(xué),2014.
[16] 丁洪利,呂曉東,王敬濤,等. 基于亞像素的布氏硬度測量圖像處理算法[J]. 工程與試驗(yàn), 2014(2):15-18.
[17] 周煉,安晨輝,候晶,等. 圓弧金剛石砂輪三維幾何形貌的在位檢測和誤差評價(jià)[J]. 光學(xué)精密工程,2017,25(12):3079-3088.
[18] 艾澤潭,石庚辰,熊鑫,等. 基于模糊梯度的微齒輪圖像邊緣檢測算法[J]. 北京理工大學(xué)學(xué)報(bào),2011,31(8),919-921.
[19] CANNY J F. A computational approach to edge detection[J]. IEEE Transactions on PAML,1986,8(6):679-698.
[20] LIU Z Y,CUI X T,LI X H. Algorithm for image edge detection based on DCT compressed domain[J]. Computer Technology & Development, 2008(4):111-113+117.
[21] ZHAO M,LIU H,et al. An improved Canny edge detection algorithm based on DCT[C]. IEEE International Conference on Progress in Informatics & Computing, 2015:234-237.
(責(zé)任編輯:江 艷)