張智凡 于鳳芹


摘 要:針對局部灰度特征方法在高噪聲圖像中定位精度低的問題,提出改進局部灰度特征方法并用于工件亞像素邊緣檢測。首先,使用改進的Canny算子代替基于一階導(dǎo)數(shù)的梯度算子,以便更精確地提取粗邊緣;然后在采集到的像素窗口兩側(cè)建立子圖像,代替單個窗口特征以修改邊緣上下兩側(cè)強度值,再將新構(gòu)造的子圖像中間列像素進行加權(quán),加速圖像迭代復(fù)原速度;最后,通過所有新生成的子圖像局部灰度特征重新計算亞像素位置,進一步提高檢測精度。實驗結(jié)果表明,在無外加噪聲和加入1.00%、5.00%的噪聲標準偏差圖像中,RMS誤差明顯降低,亞像素坐標數(shù)與定位精度明顯提高。
關(guān)鍵詞:邊緣檢測;亞像素;局部灰度;圖像強度;迭代復(fù)原;子圖像特征
DOI:10. 11907/rjdk. 182556
中圖分類號:TP317.4
文獻標識碼: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相機分辨率以提高檢測精度的常規(guī)作法硬件成本高昂[1-2],因此基于圖像的亞像素邊緣檢測方法成為提高檢測精度的常用手段[3]。
目前已知的亞像素級邊緣檢測算法分為矩法、擬合法、插值法3類。Bin[4]利用低階徑向數(shù)與矩的旋轉(zhuǎn)不變性特征提出一種基于正交傅里葉—梅林矩法的檢測方式,但無法提高對小物體的檢測精度。一些研究在使用基于矩的亞像素算法之前使用Sobel算子確定粗邊緣[5-8]以降低計算復(fù)雜度;文獻[9]利用可變模型進行檢測,但結(jié)果受限于梯度方向和位置;為避免圖像復(fù)雜邊緣的干擾,魏本征等[10]提出一種基于邊緣方向梯度插值和Zernike正交矩的新亞像素邊緣檢測方法,豐富了邊緣信息且增加了亞像素邊緣點數(shù)量;文獻[11]利用Sigmoid函數(shù)擬合邊緣模型[11],利用圖像邊緣灰度信息對模型進行非線性最小二乘擬合;為解決計算效率低和魯棒性差的問題,Sun[12]采用Sobel算子和三次曲面擬合方法確定邊緣法線方向,然后將二維邊緣檢測轉(zhuǎn)化為一維問題進行求解;文獻[13]采用邊界跟蹤算法獲得粗糙輪廓[13],通過梯度方向的灰度矩計算出準確的輪廓位置,但耗時較長且曝光要求高;Trujillo-Pino[14]通過圖像值采集的局部灰度特征計算邊緣特征,由局部灰度特征推導(dǎo)出邊緣采集模型,并且假設(shè)該模型在圖像值上是不連續(xù)的;還有學(xué)者[15-16]在該方法的基礎(chǔ)上進行改進,但仍會有無效點,并且在復(fù)雜圖像上檢測精度不高,雖在無噪聲情況下相比以上幾類方法,檢測精度更高,但是在處理高噪聲圖像時會產(chǎn)生像素級邊緣缺失及亞像素位置偏移問題。
因此,本文對局部灰度特征方法進行改進并應(yīng)用于工件檢測。首先,改進Canny算子并用其取代傳統(tǒng)一階導(dǎo)數(shù)的梯度算子,計算出粗邊緣以提高像素級邊緣檢測精度;然后,在局部灰度特征方法中建立的9*3或3*9圖像窗口兩側(cè)創(chuàng)建子圖像窗口,根據(jù)距離邊緣的遠近重新對子圖像窗口像素值進行賦值,綜合所有新生成子圖像的像素值代替單個窗口內(nèi)的像素值,通過3次迭代后的復(fù)原圖像可得到理想邊緣,從而彌補像素級邊緣缺失的問題;再將新構(gòu)造的子圖像中間列像素值進行加權(quán),加速對圖像復(fù)原處理的速度;最后,對得到的綜合圖像重新通過邊緣上下兩側(cè)強度計算亞像素邊緣特征,彌補亞像素位置偏移問題,從而提高亞像素級邊緣檢測精度。由于各類工件形狀不同,圓形部分采用RMS誤差[17]作為該方法精度評價準則。對其它形狀部分取若干亞像素坐標點作為標記點計算距離數(shù)據(jù),根據(jù)距離大小與實際值誤差[18]評價算法精度。
1 基本原理
1.1 Canny算法基本原理及改進
傳統(tǒng)Canny邊緣檢測算法[19]通過尋找像素點局部最大值,并沿著梯度方向比較前后梯度值,確定高低閾值之間邊緣點。檢測步驟為:①灰度化;②高斯濾波;③計算圖像梯度值和方向;④非極大值抑制;⑤邊緣確定和連接。
對含有邊緣附近高噪聲部分區(qū)域,上一節(jié)用DCT變換代替Canny算子中的高斯函數(shù)進行去噪并保留圖像粗邊界特征,由于對去噪后的單個像素窗口計算圖像上下強度和亞像素位置時仍出現(xiàn)誤差,為增強邊緣特征,本文在以粗邊緣為中心的窗口左右兩列建立子窗口,如圖2所示,對已檢測到的邊緣像素,可以通過復(fù)原子圖像已得到的特征(亞像素位置、方向、邊緣兩側(cè)強度變化等)產(chǎn)生理想邊緣。圖2(b)為一個9*3的子圖像窗口,對圖2(a)中的每個邊緣像素建立子圖像并綜合所有子圖像信息。通過該方式可以生成一個完整的合成圖像。在遠離邊緣的像素中,能與圖2(a)平滑處理后的值保持一致。復(fù)原后圖像中的邊緣特征值對噪聲敏感度低于在a中檢測到的邊緣特征值,使整體檢測結(jié)果更加準確。由于子圖像中間一列比左右兩列誤差更低,為提高圖像復(fù)原處理的速度,對新構(gòu)造的子圖像中間一列像素值進行加權(quán)。
2 算法實現(xiàn)
改進局部灰度特征與應(yīng)用算法流程如圖3所示。
改進局部灰度特征亞像素邊緣檢測具體步驟為:
(1)輸入測試圖像并對其進行預(yù)處理。
(2)通過DCT變換得到DCT系數(shù)和噪聲估計,并糾正系數(shù),由IDCT變換得到平滑圖像以代替Canny算子高斯濾波,然后計算梯度值及方向,通過非極大值抑制確定粗邊緣特征。
(3)通過邊緣斜率確定窗口是垂直還是水平狀態(tài),以邊緣像素為中心生成9*3或者3*9的像素窗口,根據(jù)邊緣上下兩側(cè)面積和灰度值計算初始圖像強度。
(4)以i-1列和i+1列為中心生成9*3子圖像窗口,分別計算各子圖像的強度值。
(5)為了合并所有子圖像,需創(chuàng)建兩個全新圖像,并對圖像的像素值重新賦值:①原圖像A,其中每個像素值表示包括該類像素子圖像個數(shù);②圖像I的值,每個像素值表示各像素強度的累積和;③值像素為0時表示遠離邊緣,此時將遠離邊緣的像素值設(shè)為初始圖像平滑后的值,即圖c中窗口外的部分;④值大于0的像素表示至少包含在一個子圖像中的像素,此時將[I(i,j)/A(i,j)]的值賦給復(fù)原圖像中包含子圖像的像素值。
(6)對得到的復(fù)原圖像特征重新進行步驟(4)的操作,經(jīng)過3次迭代得到最終保留邊緣的復(fù)原圖像信息。
(7)根據(jù)修改后的圖像強度,采用局部灰度特征方法計算最終亞像素級邊緣特征。
3 工件圖像測量實驗分析
3.1 實驗結(jié)果對比
實驗測試圖像通過CMOS攝像頭拍攝獲取,大小均為1 600*1 200。實驗計算機CPU為e3-1230-v5,8g內(nèi)存及Windows7、Matlab2016a軟件環(huán)境。圖4、圖5為兩組工件圖像的處理結(jié)果,第一組圖像以亞像素坐標提取數(shù)和運行時間為指標,根據(jù)齒輪齒頂標記點選擇齒輪特征點[1],尺寸數(shù)據(jù)由齒輪測量儀精確測量所得。第二組圖片是根據(jù)3次迭代處理后標記的4組端點測量所得的坐標位移偏差。
實驗需手動選取閾值和迭代次數(shù)。迭代次數(shù)選取過高將導(dǎo)致該算法檢測時間較長,過低將導(dǎo)致邊緣依然存在模糊,使邊緣上下強度和亞像素位置存在偏差。本文實驗將迭代次數(shù)設(shè)為3,閾值設(shè)為15。
圖4(a)是在工業(yè)現(xiàn)場手動拍攝的齒輪圖片。圖4(b)、4(c)分別表示圖4(a)中齒頂部分改進前、改進后的放大區(qū)域,改進前靠近齒廓漸開線和齒頂部分含有高噪聲的區(qū)域,從中可以看出檢測誤差較大,對噪聲敏感度較高,甚至出現(xiàn)邊緣缺失現(xiàn)象。
為驗證算法有效性,將本文算法與OFMM法、傳統(tǒng)局部灰度特征方法(LGF)作對比。表1顯示了3種算法的運行速度,可以看出本文算法速度略微優(yōu)于OFMM法,傳統(tǒng)局部灰度特征算法由于無需迭代復(fù)原圖像,在時間上略優(yōu)于改進后的算法。從坐標點檢測數(shù)目來看,本文算法檢測出的坐標點更多,因此可以更好地提取齒輪輪廓形狀。
表2中,將P1、P2、P3、P4標記的特征點作為檢測點,本文算法的坐標偏移量明顯小于其它兩種算法,取P1、P2坐標測量距離與標準坐標偏移誤差百分比為相對誤差,R為齒輪內(nèi)部圓的半徑長度。實驗證明,本文算法精度低于0.2%,坐標偏移量也相對減少。
圖5(a)分別取齒輪內(nèi)部4個圓的端點為標記點,對其16個點進行亞像素級坐標檢測,檢測結(jié)果如圖5(b)所示,圖5(c)為齒輪右側(cè)內(nèi)部圓放大后的圖像,實驗結(jié)果表明可將圓形和齒頂邊緣細致且連續(xù)地輸出。表3-表6分別標記內(nèi)部圓4個標記點的標準坐標、亞像素級坐標、坐標偏移量、測量直徑和相對誤差。檢測結(jié)果表明,本文算法精度達到0.2個像素級別以上,相對誤差小于0.5%,亞像素邊緣檢測效果更好。
表7為在預(yù)處理后的圖5(a)齒輪圖像中添加不同噪聲標準偏差的比較數(shù)據(jù),將原方法與本文方法及1次和3次迭代后的結(jié)果作比較。實驗結(jié)果表明,本文方法在1次迭代處理后的RMS誤差略小于原方法,在無外加噪聲的圖像中,RMS誤差減少了48.3%。在5.00%的噪聲標準偏差圖像中,1次迭代處理后的RMS誤差比原方法降低了25.9%,3次迭代處理后的效果更好,但速度稍慢。
4 結(jié)語
基于局部灰度特征的亞像素級邊緣檢測方法假設(shè)邊緣可由邊緣所在相鄰像素的直線或二次曲線進行近似。對于低噪聲的邊緣模型,該方法對于邊緣位置和邊緣方向的計算是完全準確的;同時針對高噪聲圖像提出了一種改進的迭代方法,對平滑后的圖像以每個檢測到的像素級邊緣為中心像素,創(chuàng)建子窗口并對原圖像和創(chuàng)建的子圖像像素進行重新賦值與列加權(quán),經(jīng)過迭代后得到的圖像可以在高噪聲圖像中精確檢測邊緣特征。將該方法應(yīng)用于工件邊緣檢測,算法流程簡單,實驗結(jié)果顯示該方法可行、有效。
參考文獻:
[1] 張少軍,艾矯健,李忠富,等. 利用數(shù)字圖像處理技術(shù)測量幾何尺寸[J]. 工程科學(xué)學(xué)報,2002,24(3):284-287.
[2] 張強,黃道君. 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] 苗青,李仰軍,王高,等. 基于改進的Sobel算子和Zernike矩的亞像素邊緣檢測[J]. 山西電子技術(shù),2016(1):5-6.
[8] 李慶利,張少軍,李忠富,等. 一種基于多項式插值改進的亞像素細分算法[J]. 工程科學(xué)學(xué)報, 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] 魏本征,趙志敏,華晉. 基于改進形態(tài)學(xué)梯度和Zernike矩的亞像素邊緣檢測方法[J]. 儀器儀表學(xué)報, 2010, 31(4):838-844.
[11] 張舞杰,李迪,葉峰. 基于Sigmoid函數(shù)擬合的亞像素邊緣檢測方法[J]. 華南理工大學(xué)學(xué)報:自然科學(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] 宿曉瑋. 基于像元分解的標志點亞像素定位研究[D]. 徐州:中國礦業(yè)大學(xué),2014.
[16] 丁洪利,呂曉東,王敬濤,等. 基于亞像素的布氏硬度測量圖像處理算法[J]. 工程與試驗, 2014(2):15-18.
[17] 周煉,安晨輝,候晶,等. 圓弧金剛石砂輪三維幾何形貌的在位檢測和誤差評價[J]. 光學(xué)精密工程,2017,25(12):3079-3088.
[18] 艾澤潭,石庚辰,熊鑫,等. 基于模糊梯度的微齒輪圖像邊緣檢測算法[J]. 北京理工大學(xué)學(xué)報,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.
(責任編輯:江 艷)