石冬晨 王 寧 李 榮
(1.西安理工大學(xué),陜西 西安 710048;2.中國科學(xué)院西安光學(xué)精密機(jī)械研究所,陜西 西安 710119;3.陜西省計(jì)量科學(xué)研究院,陜西 西安 710065)
工程上曲線檢測一個(gè)常見問題就是如何對(duì)復(fù)雜零件中多圓特征進(jìn)行快速精確的模式識(shí)別、定位、參數(shù)測量和圓度評(píng)定。在圖像處理中圓形特征檢測有多種方法, 哈夫(Hough)變換[1]是目前應(yīng)用最廣的特征檢測方法之一,常常被用于直線、圓和橢圓等特征的檢測。傳統(tǒng)的圓檢測哈夫變換是將三維搜索空間降低到二維空間,但降低后計(jì)算復(fù)雜度仍然較高,而多對(duì)一映射的隨機(jī)哈夫變換(Randomized Hough Transform, RHT)[2],雖大大減少了時(shí)間和內(nèi)存需求,但由于其隨機(jī)進(jìn)行邊緣點(diǎn)采樣,使參數(shù)單元產(chǎn)生無效累積。本文提出一種基于LabVIEW平臺(tái),利用改進(jìn)的隨機(jī)哈夫變換來檢測復(fù)雜零件多圓特征的新方法,解決無效累積的問題,運(yùn)算簡單、精確、快速。復(fù)雜零件中圓度、同心度的評(píng)定方法目前多為最大內(nèi)切圓法或最小外接圓法[3],評(píng)定精度差,本文采用評(píng)定效果較好的最小二乘法評(píng)定圓度、同心度,進(jìn)而實(shí)現(xiàn)基于LabVIEW的復(fù)雜零件多圓特征參數(shù)快速精密檢測。
對(duì)于一個(gè)圓心坐標(biāo)為(a0,b0),半徑為r0的圓,在空間中可表示為:
方程每一點(diǎn)(xi,yi)所對(duì)應(yīng)的(a,b,r)的點(diǎn)集,在參數(shù)空間對(duì)應(yīng)于一簇三維圓錐面[4]。其中,三維圓錐面交于一點(diǎn)(a0,b0,r0)。
隨機(jī)Hough變換檢測法是多對(duì)一映射,在圖像空間中隨機(jī)選取一個(gè)最小點(diǎn)集,映射成參數(shù)空間中的一點(diǎn)。根據(jù)邊緣點(diǎn)的位置信息,圓的最小點(diǎn)集需要三個(gè)邊緣點(diǎn)來建立圓參數(shù)[5-6]。RHT算法流程如圖1所示。
圖1 RHT算法流程
由于RHT圓檢測算法參數(shù)空間進(jìn)行累積時(shí),圓的參數(shù)達(dá)到閾值才能確定可能存在的圓參數(shù)值,導(dǎo)致無效累積,算法的收斂速度變慢。另外,圖像中存在多圓特征時(shí),最小點(diǎn)集隨機(jī)采樣的三個(gè)點(diǎn)可能分布在不同圓上,求取圓參數(shù)時(shí)會(huì)引入更多無效累積。
為了減少無效累積,本文提出利用邊緣點(diǎn)的方向及位置信息減少邊緣點(diǎn)提取個(gè)數(shù),采用在候選圓的周圍加上一個(gè)正六邊形窗口的形式來減少計(jì)算時(shí)間。
(1)利用梯度方向信息檢測
圓的極坐標(biāo)方程為:
則圓的參數(shù)為:
式中:
θ-梯度角。
m1(x1,y1)、m2(x2,y2)、m3(x3,y3)不共線三點(diǎn)確定的圓心為(a,b),梯度方向?yàn)镚1、G2、G3,梯度取值范圍為[-π/2,π/2],這三點(diǎn)處的法線方向n如下:
若三點(diǎn)共圓,則圓上點(diǎn)的法線方向與梯度方向重合。
即:
根據(jù)式(7),預(yù)先設(shè)定一個(gè)法線方向與梯度之差的允許誤差范圍θ:
當(dāng)滿足式(8)的約束條件時(shí),認(rèn)定3點(diǎn)在同一個(gè)圓上,再對(duì)圓參數(shù)進(jìn)行累積,可有效縮小搜索范圍,提高算法速度,減少內(nèi)存使用量。本文選用Sobel算法獲得邊緣各點(diǎn)的梯度信息。
(2)正六邊形窗口
在候選圓的周圍加入正六邊形窗口,以候選圓圓心為正六邊形中心,以候選圓的半徑加一定的余量作為正六邊形邊長。對(duì)隨機(jī)所取的邊緣點(diǎn),先判斷該點(diǎn)是否在正六邊形窗口內(nèi),若不是,則放棄計(jì)算該邊緣點(diǎn)到候選圓圓心的距離,可大大縮小邊緣點(diǎn)搜索范圍。
(3)改進(jìn)算法的具體流程
具體算法流程如圖2所示。
圖2 改進(jìn)RHT算法的具體流程
根據(jù)前述改進(jìn)算法得到的標(biāo)準(zhǔn)件邊緣像素坐標(biāo)點(diǎn),選擇被測點(diǎn),采用最小二乘法利用被測點(diǎn)擬合理想圓,被測點(diǎn)到理想圓圓心的最大距離和最小距離之差為圓度誤差值如圖3(a)所示。再利用最小二乘法對(duì)標(biāo)準(zhǔn)件墊圈標(biāo)記外圓和內(nèi)圓圓心位置為O和O',兩圓心位置的偏差程度為同心度誤差如圖3(b)所示。
圓度誤差公式為:
同心度誤差為:
圖3 圓特征參數(shù)評(píng)定
利用改進(jìn)的RHT算法對(duì)標(biāo)準(zhǔn)件墊圈進(jìn)行圓特征檢測,改進(jìn)算法前后的運(yùn)算耗時(shí)如表1所示。實(shí)驗(yàn)證明,改進(jìn)的RHT算法大大減少了運(yùn)算量,大大提高了運(yùn)算時(shí)間。
表1 改進(jìn)前與改進(jìn)后的RHT算法耗時(shí)比較( ms)
改進(jìn)后的RHT算法圓特征尺寸檢測結(jié)果如表2所示。將測量值與標(biāo)準(zhǔn)件尺寸作對(duì)比可知利用該算法檢測的絕對(duì)誤差小于0.02mm,相對(duì)誤差小于0.07%,滿足工程零件尺寸檢測精度需求。
表2 改進(jìn)RHT算法所測墊圈尺寸與墊圈標(biāo)準(zhǔn)尺寸對(duì)比
利用最小二乘法對(duì)墊圈標(biāo)準(zhǔn)件圓心位置進(jìn)行標(biāo)記結(jié)果如圖4所示。
本次試驗(yàn)重復(fù)測量10次,對(duì)內(nèi)孔圓度誤差和同心度測量結(jié)果如表3所示。得到內(nèi)孔圓度誤差平均值為0.197,標(biāo)準(zhǔn)差為0.009,墊圈同心度平均值為0.019,標(biāo)準(zhǔn)差為0.006,試驗(yàn)驗(yàn)證最小二乘法評(píng)定精度高。
圖4 圓心的標(biāo)記
表3 對(duì)圓度、同心度的重復(fù)測量結(jié)果
圖5 圖像測量模塊程序界面
利用虛擬儀器LabVIEW實(shí)現(xiàn)前述算法,設(shè)計(jì)了非接觸式零件尺寸虛擬測量軟件如圖5所示,精度較高,易于維護(hù)。
本文利用改進(jìn)的RHT檢測算法,通過比較梯度和法線方向的差值,加入正六邊形窗口,有效去除傳統(tǒng)算法引起的無效累積,大大提高了運(yùn)算速度,并通過實(shí)驗(yàn)驗(yàn)證了算法的可靠性。再運(yùn)用最小二乘法原理,提取邊緣像素點(diǎn)擬合理想圓,對(duì)內(nèi)孔圓度和標(biāo)準(zhǔn)件同心度進(jìn)行判定。將標(biāo)準(zhǔn)件測量結(jié)果與GB3452.1-2005標(biāo)準(zhǔn)尺寸值進(jìn)行比較,該算法測量偏差在公差范圍內(nèi),標(biāo)準(zhǔn)件的同心度誤差和圓度誤差均達(dá)到技術(shù)指標(biāo)。最后利用虛擬儀器LabVIEW實(shí)現(xiàn)前述算法,設(shè)計(jì)了非接觸式零件尺寸虛擬測量軟件,精度較高,易于維護(hù),可廣泛應(yīng)用于工程中復(fù)雜零件的圓特征參數(shù)精密檢測。