章飄艷 陳仁文 朱 霞 丁志強
(南京航空航天大學機械結構力學及控制國家重點實驗室 江蘇 南京 210016)
?
改進的RHT算法在彈簧卡箍檢測中的應用
章飄艷陳仁文朱霞丁志強
(南京航空航天大學機械結構力學及控制國家重點實驗室江蘇 南京 210016)
摘要針對彈簧卡箍零件缺陷檢測的人工離線檢測方法的一些缺陷,提出一種改進的隨機Hough變換的智能檢測方法。該方法以彈簧卡箍的幾何特征作為分析對象,對RHT的隨機采樣作了3方面的改進,有效地減少了無效采樣與無效累積。實驗分析顯示,改進的RHT用于彈簧卡箍的檢測時,尺寸誤差都在1個像素之內,并且檢測時間只有改進前的RHT算法檢測時間的27.05%,最少的只有4.62%。實驗結果表明,改進的RHT算法能夠更加準確快速地檢測出彈簧卡箍的尺寸。
關鍵詞缺陷檢測隨機Hough變換圓檢測彈簧卡箍
APPLYING IMPROVED RHT ALGORITHM TO SPRING CLAMPS DETECTION
Zhang PiaoyanChen RenwenZhu XiaDing Zhiqiang
(State Key Laboratory of Mechanics and Control of Mechanical Structures,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,Jiangsu,China)
AbstractWe proposed an improved RHT-based smart spring clamps detection method to overcome the defects of traditional manual offline detection method in detecting spare part flaws of spring clamps. The method takes geometric feature of spring clamps as the analysing object,makes the improvements on RHT random sampling in three areas,and effectively reduces the ineffective sampling and ineffective accumulation. Experimental analysis showed that when applying the improved RHT algorithm on spring clamps detection,the dimensional errors are all less than one pixel,and the detection time is only 27.05% of the original time (the shortest is 4.62%). Experimental results showed that the improved RHT algorithm can detect the dimension of spring clamps with higher speed and accuracy.
KeywordsDefect detectionRandom Hough transform (RHT)Circle detectionSpring clamp
0引言
彈簧卡箍被廣泛應用于用于汽車、拖拉機、輪船、汽油機、柴油機、噴灌機等多種機械設備上的油、汽、液膠管的接口處,以及樓房建筑的下水道接口等,是各類膠管接口首選的堅固連接配件。彈簧卡箍是彈簧鋼由車床模具一次沖壓而成,其形狀為圓形,外圈留出兩個供手按的耳。在使用時,用手用力按住雙耳增大內圈,套進圓管即可。
根據彈簧卡箍的圓形特征,可應用Hough變換算法[1-4]進行檢測。Hough變換是1962年Paul Hough以專利的形式提出的。Hough變換作為一種有效地檢驗圓的基本方法,常被用于各種工業(yè)應用與科學研究中。其優(yōu)點在于它具有很好的魯棒性和容錯性,對區(qū)域邊界的噪聲或間斷點不敏感;其缺點在于會產生虛假圓、計算量和存儲量大、檢測精度受到參數(shù)空間離散化的制約等。為了克服其缺陷,很多學者提出了新的方法以改進Hough變換算法的不足。
Xu[5]等人于1990年提出了隨機Hough變換(RHT),采用了隨機采樣、動態(tài)鏈表存儲和收斂映射以提高計算速度和存儲器的利用率,但是由于其無目標的隨機采樣,容易引入大量的無效采樣和無效累積,使得算法的性能大為降低。因此,很多專家學者提出了基于RHT的改進算法。
文獻[6]通過利用圓的特性和梯度算法對隨機采樣進行約束,使得改進后算法能夠應用于光照不均勻、圓數(shù)量大、邊界模糊等復雜背景條件下。文獻[7]提出了一種改進的類圓隨機Hough變換算法,在算法中添加了邊緣預檢測、重疊識別模塊等,并且改進了圓心的選取方式,提高了算法的識別率。文獻[8]提出了一種基于有效繼承的隨機Hough變換圓檢測累計加速算法,該算法在每次成功檢測圓后不清空參數(shù)空間的累計值,繼承了上次的有效采樣,改進的算法可以減少總采樣次數(shù)并節(jié)省清空參數(shù)空間所需的時間。文獻[9]提出了一種新的RHT算法,該算法約束了隨機Hough變換的采樣范圍并減少了無效采樣,提高了算法的計算速度。為了進一步減少RHT算法檢測圓形目標所需的時間,同時保持準確性,本文提出一種改進的RHT算法,可快速有效地從背景中分割出目標物并對其進行正次品檢測,實現(xiàn)彈簧卡箍的自動識別。
1RHT算法檢測圓原理及算法實現(xiàn)
隨機Hough變換(RHT)是檢測圓的有效方法。主要是通過圖像空間的隨機抽樣來降低存儲量和計算量,其基本思想包含三個步驟:隨機采樣過程、累計過程和驗證過程[10]。
在隨機采樣過程中,隨機采樣三個邊緣點(x1,y1)、(x2,y2)、(x3,y3),代入圓的方程式(1),得到方程組式(2),求解式(2)可得到圓的參數(shù)(a1,b1,r1)。在參數(shù)累計過程中,繼續(xù)取點(x4,y4),將a1,b1,x4,y4代入式(1),求出半徑r4,然后代入式(3),求出δ1。若δ1<δ (δ為容許誤差),則累計值A(ai,bi,ri)=1;繼續(xù)取點計算,直到A(ai,bi,ri)≥T_c,則認為此圓為候選圓。在驗證過程中,統(tǒng)計圓上的點數(shù)C,若C≥2πr·T_r,則此候選圓為真圓。當采樣次數(shù)f=T_f時,而參數(shù)空間仍沒有參數(shù)單元的累計值達到閾值T_c,則采樣結束。以上δ、T_c、T_r、T_f均為預先設定,式(1)-式(3)如下:
(x-a)2+(y-b)2=r2
(1)
(2)
δ1=r4-r1
(3)
2改進算法
與Hough變換相比較,RHT具有存儲空間小、速度快的優(yōu)點。但是由于隨機抽樣會引入大量的無效采樣和無效累計,導致計算量增大計算時間增長,使算法的性能有所下降。
本文從以下幾個方面進行考慮,以抑制無效采樣的產生,提高算法的性能。
2.1共線的判斷
不在同一條直線上的三點確定一個圓,設隨機選取三點為(x1,y1)、(x2,y2)、(x3,y3),三點不共線的充分必要條件是:
(x2-x1)(y3-y1)-(y2-y1)(x3-x1)≠0
(4)
將隨機采樣中的共線情況排除,可有效減少無效采樣。
2.2距離的判斷
三點之間距離過小時,點的微小誤差會導致圓的參數(shù)的巨大變化;同樣,當三點距離過大,直至大于圓的真實直徑時,這三點必然不同在所要檢測的圓上。
假設有相對靠近的三點(x1+δ,y1)、(x2,y2)、(x3,y3),這三點確定的圓的圓心(a,b)及半徑r分別為:
(5)
(6)
(7)
(8)
圖1是a、b、r三個參數(shù)隨著δ從0~10的變化曲線圖。這樣的賦值雖不具一般性,但可從曲線的變化看出參數(shù)a、b和r關于δ的變化性質。
圖1 圓的參數(shù)a,b,r關于δ的變化曲線圖
由圖1可以看出,當δ較小處于0~1之間時,參數(shù)a、b和r波動劇烈,但是當δ較大時,a、b和r的變化變得平緩。
由此可見,隨機采樣的三點的距離不能過小,否則由于圖像的離散,點的位移上的微小誤差有可能導致所檢測的圓的參數(shù)的巨大變化,從而使得最終檢測的結果與真實結果相差甚遠;另外隨機采樣點之間的距離也不能過大,當點的距離大于圓的真實直徑時,這三點所確定的圓的直徑就大于真實圓的直徑,當前采樣即為無效采樣。
因此約束三點中兩兩之間距離,使之大于給定閾值T_a并小于給定閾值d(d=dc+δ,其中dc為理論直徑,δ為誤差),能夠大大降低無效采樣。表達式如下:
(9)
2.3基于梯度方向信息的共圓的判斷
利用點的梯度信息預先判斷隨機采樣的三點是否在同一個圓上,若不共圓,就無須進行計算,從而減少無效累積。
如圖2所示的3×3模板,其中心像元的梯度可用下式表示:
(10)
圖2當前像素a9與相鄰8個像素的位置關系圖
其中,I為圖像矩陣,My、Mx分別為梯度在x方向和y方向的分量,c為加權系數(shù),表示離中心像元較近。當c=2時,就可以得到Sobel算子。
此時計算得到沿中心像元梯度方向角為:
θ1=actan(My/Mx)
(11)
通過式(11)可以計算出圖像上任意一點的梯度方向角。另外,通過三點計算出的圓心坐標(a,b)也可計算出圓上點的梯度方向角,示意圖如圖3所示。計算公式如下:
(12)
圖3 圓上一點的梯度方向角求解示意圖
通過式(11)和式(12)兩種途徑分別求出某點的梯度方向角θ1和θ2,如果θ1=θ2,那么這一點一定在圓上??紤]到圓的離散性,實際計算時,計算兩者的差δθ=θ1-θ2。如果δθ 利用梯度信息對隨機采樣的三點進行計算驗證后,就排除了大量不共圓的采樣,大大減少了RHT算法的無效采樣和無效累積,降低了計算量和存儲量。 2.4其他改進 在驗證階段,若滿足以上距離要求的點數(shù)達到C=2πr·T_r,則認為此圓為真實圓,其中T_r=0.6。考慮到改進算法中結合了點的梯度信息,候選圓為真實圓的可能性較之前的算法更大。因此,將0.6改為0.4,在達到驗證目的的同時減少需要驗證的點數(shù),以減少計算量并減少耗時。 2.5改進算法的流程 根據以上分析對RHT算法進行改進,具體步驟如下: Step 1構造邊緣點集P,初始化參數(shù)單元集A=0以及采樣次數(shù)f=0。 Step 2f=f+1。若采樣次數(shù)f已達上限T_f,結束;否則,繼續(xù)進行下一步。 Step 3從P中隨機選取3點d1、d2、d3,并判斷三點是否共線。若不共線,繼續(xù)進行下一步;否則,返回Step 2。 Step 4判斷三點中兩兩之間的距離是否在距離閾值a和d之間。若在,繼續(xù)進行下一步;否則,返回Step 2。 Step 5根據采樣三點計算圓的參數(shù)a,即圓心與半徑。 Step 7判斷圓的參數(shù)a在A中的累積是否達到閾值Nt。若達到,則參數(shù)a所確定的圓為候選圓;否則,執(zhí)行Step 2。 Step 8判斷候選圓上點的個數(shù)C是否超出閾值2πR·T_r。若是,則此圓是真實圓,繼續(xù)進行下一步;否則,此圓是虛假圓,將參數(shù)a從A中去除,返回Step 2。 Step 9判斷所檢測的圓的個數(shù)是否已達上限。若是,結束;否則,將參數(shù)a對應的圓上的點從P中去除,重置A和f,返回Step 2。 圖4為改進后RHT算法的流程圖。 圖4 改進的RHT算法流程圖 3實驗結果與分析 本實驗使用的圖像處理軟件為MATLAB 7.11.0.584(R2010b),處理系統(tǒng)為Win 7,處理器為Pentium(R) Dual-Core CPU T4400 @2.20 GHz,拍攝圖片的相機型號為JAI CM-030GE。 為了驗證改進算法的有效性,本文進行了大量的實驗。首先對零件的圖像進行濾波,由于二維中值濾波可以達到既消除噪聲又保持圖像細節(jié)的目的,因此本文采用二維中值濾波,經實驗驗證發(fā)現(xiàn),7×7濾波模板去噪效果最好。其次對圖像進行邊緣檢測,由于Canny邊緣檢測算子具有高的檢測率、精確的定位和明確的相應,是最常用的也是公認的性能優(yōu)良的邊緣檢測算子,因此本文采用Canny算子對圖像進行邊緣檢測。然后分別用RHT算法和改進的RHT算法對邊緣檢測后的圖像進行零件形狀和尺寸的檢測。最后將改進前后算法的處理結果進行對比分析。 圖5為圖像原圖以及經過濾波和邊緣檢測預處理后的結果圖。圖6為RHT算法以及改進的RHT算法處理結果對比圖。限于篇幅,僅選取其中6例。 圖5 零件原圖及預處理結果圖 圖6 用RHT算法和改進的RHT算法處理結果對比圖 表1是樣本零件參數(shù)的理論值,表2是改進前后RHT算法檢測平均結果的對比。結合表1可知,改進后RHT算法檢測結果誤差均在1個像素以內,而改進前算法的誤差有的達到3個像素,可見改進后RHT算法提高了準確度。表3是改進前后RHT算法檢測所耗費的平均時間的統(tǒng)計對比,由表中數(shù)據可知,改進的RHT算法檢測耗時只占原RHT算法耗時的27.05%,最少的只有原來的4.62%,可見改進后的算法能夠大大減少計算量,提高檢測速度。 表1 樣本參數(shù)理論值 表2 改進前后RHT算法檢測平均結果統(tǒng)計 表3 改進前后RHT算法檢測所耗費的平均時間的統(tǒng)計 4結語 本文對RHT算法中無效采樣與無效累積的問題從三個方面進行了改進。在進行累積前,首先判斷三點是否共線,如果不共線進而判斷距離是否合理;如果距離在最小閾值和最大閾值之間再利用梯度信息判斷點是否在圓上;如果點不在圓上,則無需進行累積與計算。實驗數(shù)據顯示,改進的RHT算法檢測結果 誤差都在1個像素以內,較改進前的算法有所提高,另外改進的RHT算法檢測耗時遠小于原RHT算法檢測耗時。實驗結果表明,該算法較改進前的隨機Hough變換算法能夠更加快速、精確地給出檢測結果。 但是,本文的改進算法依然存在一些不足,從圖5的實驗結果圖可以看出,應用改進的算法對彈簧卡箍圖片進行尺寸的檢測時,只能檢測出內徑或是外徑,這點不足仍需進一步研究和改進,也為下一步研究指明了方向。 參考文獻 [1] Gonzalez R C,Woods R E,Eddins S L.Digital image processing using MATLAB[M].Beijing:Publishing House of Electronics Industry,2013. [2] 趙小川,何灝,繆遠誠,等.MATLAB數(shù)字圖像處理實戰(zhàn)[M].北京:機械工業(yè)出版社,2013. [3] Hart P E.How the Hough transform was invented[J].IEEE Signal Processing Magazine,2009,26(6):18-22. [4] Duda R O,Hart P E.Use of the Hough transformation to detect lines and curves in pictures[J].Communications of the ACM,1972,15(1): 11-15. [5] Xu L,Oja E.Randomized Hough transforms (RHT):basic mechanisms,algorithms,and computational complexities[J].Computer Vision Graphic Image Process:Image Understanding,1992,57(2): 131-154. [6] 周封,楊超,王晨光,等.基于隨機Hough變換的復雜條件下圓檢測與數(shù)目辨識[J].儀器儀表學報,2013,34(3):622-628. [7] 李昕,李立君,高自成,等.改進類圓隨機Hough變換及其在油茶果實遮擋識別中的應用[J].農業(yè)工程學報,2013,29(1):164-170. [8] 周勇亮,金燕,何萍,等.隨機Hough變換圓檢測累計加速算法[J].計算機輔助設計與圖形學學報,2014,26(4):574-580. [9] 張江鑫,沈小蘭,王輝,等.快速隨機Hough變換多直線檢測算法[J].浙江工業(yè)大學學報,2013,41(3):346-350. [10] 周勇亮.圓檢測算法研究與參數(shù)數(shù)據管理[D].浙江:浙江工業(yè)大學信息工程學院,2012. 中圖分類號TP751 文獻標識碼A DOI:10.3969/j.issn.1000-386x.2016.02.065 收稿日期:2014-09-03。章飄艷,碩士生,主研領域:測試計量技術及儀器。陳仁文,教授。朱霞,博士生。丁志強,碩士生。