圖像測量是一種采用CCD( 電荷耦合器件) 進(jìn)行攝像測量的新型光電測量技術(shù), 它是將CCD器件與光學(xué)儀器聯(lián)用, 應(yīng)用于測量領(lǐng)域而形成的。圖像測量技術(shù)是以現(xiàn)代光學(xué)為基礎(chǔ), 融計(jì)算機(jī)圖像學(xué)、信息處理、計(jì)算機(jī)視覺、光電子學(xué)等科學(xué)技術(shù)為一體的現(xiàn)代測量技術(shù), 它把被測對象的圖像當(dāng)作檢測和傳遞信息的手段, 從中提取有用的信號來獲得待測的參數(shù)。
近年, 圖像測量技術(shù)在國內(nèi)外發(fā)展很快, 已廣泛應(yīng)用于幾何量的尺寸測量、航空遙感測量、精密復(fù)雜零件微尺寸測量和外觀監(jiān)測、光波干涉圖、應(yīng)力應(yīng)變場狀態(tài)分布圖等和圖像有關(guān)的技術(shù)領(lǐng)域。本文將圖像測量技術(shù)用到零件尺寸參數(shù)的測量之中,并為了提高測量系統(tǒng)的精度, 提出了一種先在Sobel算子的基礎(chǔ)上去掉局部非極大值點(diǎn)獲得象素級邊緣, 進(jìn)而在梯度方向上進(jìn)行高斯曲線擬合插值, 進(jìn)一步提高圖像邊緣定位精度, 從而使測量系統(tǒng)精度大大提高的方法。
1 測量系統(tǒng)的構(gòu)成
圖像測量系統(tǒng)是集光學(xué)、光電子學(xué)、精密機(jī)械及計(jì)算機(jī)技術(shù)為一體的綜合系統(tǒng)。高精度零件尺寸測量系統(tǒng)由CCD攝像機(jī)、圖像卡、計(jì)算機(jī)及圖像處理軟件等組成, 再加上相應(yīng)的照明系統(tǒng)、接口硬件, 結(jié)構(gòu)框圖如圖1所示。其工作過程為: 將被測零件置于盡可能均勻照明的可控背景前, CCD和圖像卡將被測零件圖像采集到計(jì)算機(jī)里, 計(jì)算機(jī)按一定的算法計(jì)算出被測物體的幾何參數(shù), 最后, 計(jì)算機(jī)對這些數(shù)據(jù)進(jìn)行各種處理并將結(jié)果按一定的要求予以顯示和存儲。
2 測量算法
在圖像測量系統(tǒng)中, 圖像邊緣的檢測是整個(gè)測量的基礎(chǔ)和關(guān)鍵。圖像邊緣檢測精度高, 整個(gè)測量系統(tǒng)的精度就可大大提高。零件的輪廓通常產(chǎn)生階躍型邊緣, 因?yàn)榱慵膱D像強(qiáng)度不同于背景的圖像強(qiáng)度。對于階躍型邊緣的檢測, Canny算子邊緣檢測效果比較好, 但算法復(fù)雜;Marr提出用二維高斯加權(quán)函數(shù)對原始圖像作平滑, 然后檢測二階方向?qū)?shù)作為邊緣點(diǎn), 過濾了噪聲, 但可能將原有的邊緣也給過濾掉了[1] ; 利用Sobel算子檢測邊緣方法簡單, 處理速度快, 得到的邊緣光滑、連續(xù)。雖然得到的邊緣較寬, 但在其梯度圖像中去除非局部最大值點(diǎn), 就可以檢測出更精確的邊緣。
為滿足圖像測量的需要, 本文先在Sobel算子的基礎(chǔ)上去掉局部非極大值點(diǎn)獲得象素級邊緣, 進(jìn)而在梯度方向上進(jìn)行高斯曲線擬合插值, 進(jìn)一步提高圖像邊緣定位精度到亞象素級, 從而大大提高測量系統(tǒng)的精度。
2.1 象素級邊緣提取
象素級邊緣提取是指用象素級的邊緣檢測算子對目標(biāo)初步定位, 得到象素級精度的定位過程。本文利用Sobel算子, 在梯度方向上去除非局部最大值點(diǎn), 成功地獲得了象素級邊緣, 取得了較好的效果。具體的步驟如下。
( 1) 用Sobel算子對去噪后的圖像g( i, j) 進(jìn)行卷積, 得到卷積圖像。
( 2) 計(jì)算圖像中每一點(diǎn)的梯度方向值θ, 其計(jì)算公式為: θ( i, j) =tan- 1( f ′y / f ′x) , 這樣就可以得到圖像中每一點(diǎn)的梯度方向值。根據(jù)離散數(shù)字圖像的特點(diǎn), 將θ分成四個(gè)方向范圍: 0( 水平方向) : 0°—22.5°以及157.5°—180°; 45( 45方向) : 22.5°—67.5°; 90( 豎直方向) : 67.5°—112.5°; 135 ( 135 方向) : 112.5°—157.5°。
( 3) 對梯度圖像中的所有邊緣點(diǎn), 在每一點(diǎn)的3×3鄰域中, 將中心象素梯度值與沿梯度方向的兩個(gè)象素梯度值進(jìn)行比較, 若在鄰域中心處的幅值比沿梯度方向上的兩個(gè)相鄰點(diǎn)的幅值大, 則此點(diǎn)為邊緣點(diǎn), 否則, 此點(diǎn)為非邊緣點(diǎn), 賦值為0, 從而得到單象素邊緣圖像。
圖2是利用Sobel算子在改進(jìn)前后得到的微孔零件圖像的邊緣圖。從圖2中對比結(jié)果可以看出, 經(jīng)典Sobel算子獲得的圖像邊緣比較寬, 而利用改進(jìn)的算子獲得的圖像邊緣較細(xì), 達(dá)到了單象素級水平, 取得了比較滿意的效果。
2.2 亞象素邊緣定位
圖像邊緣可以精確到一個(gè)象素點(diǎn), 這樣, 邊緣點(diǎn)坐標(biāo)可以近似地為像元的幾何中心位置。這時(shí)系統(tǒng)的測量精度由CCD感光部分的像敏元間距決定。因此, 圖像測量系統(tǒng)的測量精度, 在不考慮像差等因素的情況下, 主要取決于CCD攝像機(jī)的分辨率。為了提高測量系統(tǒng)的精度, 提出了一種概率統(tǒng)計(jì)細(xì)分方法來提高CCD尺寸測量分辨率, 提出了解調(diào)測量方法來提高CCD尺寸測量分辨率, 提出應(yīng)用概率論方法來提高CCD尺寸測量分辨率, 提出應(yīng)用多項(xiàng)式插值函數(shù)來提高CCD尺寸測量分辨率等等。本文提出在梯度方向上進(jìn)行高斯曲線擬合插值進(jìn)一步提高圖像邊緣定位的精度, 從而使測量系統(tǒng)的精度大大提高的方法。
2.2.1 高斯曲線擬合原理分析
在圖像邊緣梯度方向上, 灰度梯度呈一個(gè)高斯曲線分布。若用邊緣檢測算子直接提取圖像邊緣, 則只需找出灰度變化最大的象素的坐標(biāo)就可以了。但是, 灰度變化最大的象素坐標(biāo)不一定是這個(gè)高斯曲線的極值點(diǎn), 而且可以說往往不是極值點(diǎn), 如圖3所示, 我們往往認(rèn)為0位置點(diǎn)就是圖像的邊緣點(diǎn), 但從圖中可以很明顯地看出來, 實(shí)際的邊緣位置點(diǎn)不是0點(diǎn), 而是xg點(diǎn)。對于一個(gè)圖像測量系統(tǒng)來說, 若認(rèn)定0位置點(diǎn)就是我們所要找的邊緣點(diǎn), 這往往達(dá)不到系統(tǒng)測量的精度。為了提高系統(tǒng)測量的精度, 必須找到xg點(diǎn)的準(zhǔn)確位置, 這可以通過采用亞象素細(xì)分算法來精確定位xg點(diǎn)。在圖3中, 0點(diǎn)的梯度值最大設(shè)為F0, - 1點(diǎn)和1點(diǎn)的是在梯度方向上緊挨0點(diǎn)的左右兩點(diǎn), 設(shè)它們的梯度值分別為F- 1和F1, 通過這三個(gè)梯度值擬合出一條高斯曲線, 然后通過求導(dǎo)來取得其極值點(diǎn), 則對應(yīng)極值點(diǎn)的坐標(biāo)點(diǎn)xg即為圖像邊緣的精確定位點(diǎn)。
2.2.2 梯度方向上高斯曲線擬合插值細(xì)分算法
通過Sobel算子可以很方便地得到每個(gè)邊緣象素點(diǎn)的梯度值和梯度方向值, 根據(jù)這兩個(gè)值就能夠進(jìn)行下一步梯度方向上的高斯曲線擬合。高斯曲線的表達(dá)式為其中u為均值, σ為標(biāo)準(zhǔn)差。直接對此式進(jìn)行擬
合很困難, 可以把高斯曲線作變換, 兩邊取對數(shù), 有下式成立
可以看出上式形如y=Ax2+Bx+C, 是一條典型對x的二次曲線。這樣就能用取對數(shù)后的值來擬合出拋物線, 求出頂點(diǎn)坐標(biāo), 使計(jì)算大大簡化。
為了求出梯度方向上二次曲線的形式, 我們采用曲面擬合的觀念: 先用一個(gè)二元二次多項(xiàng)式去擬合邊緣點(diǎn)附近鄰域內(nèi)象素梯度的對數(shù)值, 得到曲面擬合函數(shù), 然后再通過曲面擬合函數(shù)來得到二次曲線形式。通常, 我們利用邊緣點(diǎn)附近3×3鄰域象素點(diǎn)來計(jì)算參數(shù), 當(dāng)然也可以加大區(qū)域取點(diǎn)范圍, 這樣求出的曲面函數(shù)效果也比較好。但是, 這會增加檢測時(shí)計(jì)算的復(fù)雜度, 且增加的效果不是很明顯。所以我們通常采用邊緣點(diǎn)附近3×3鄰域象素點(diǎn)來計(jì)算參數(shù)。
設(shè)曲面擬合函數(shù)為:
f( x, y) =k0+k1x+k2y+k3x2+k4xy+k5y2 ( 2)
其中的x, y為象素點(diǎn)的坐標(biāo)值, f( x, y) 為在象素點(diǎn)( x, y) 處梯度大小的對數(shù)值。所以, 關(guān)鍵是計(jì)算方程( 2)中曲面擬合函數(shù)的系數(shù), 可用最小二乘法求出系數(shù)k0, k1, ?, k5的值, 然后運(yùn)用公式( 4) 就可以求出邊緣點(diǎn)的準(zhǔn)確位置。
根據(jù)最小二乘原理( 殘差平方和最小) , 有:】
最小化誤差后, 就可以求出系數(shù)k0, k1, ?, k5的值。以邊緣點(diǎn)為中心, 建立極坐標(biāo)系, 將x=ρcosθ, y=ρsinθ代入所得的曲面擬合函數(shù)里, 得到在梯度方向上關(guān)于極徑的二次曲線方程, 對這個(gè)方程求取其極大值, 即可得到準(zhǔn)確的邊緣點(diǎn)的位置:
在上面求解k值的過程中, 需要注意到的一點(diǎn),就是二次曲線是由原高斯曲線取對數(shù)后得到的, 因此求解時(shí)應(yīng)將象素點(diǎn)的灰度梯度值用其對數(shù)值代替。這樣, 邊緣點(diǎn)亞象素位置的提取公式為:
3 實(shí)驗(yàn)結(jié)果
本課題實(shí)驗(yàn)采用的是型號為MTV- 2821CB的黑白CCD攝像機(jī), 工作臺是JX14A數(shù)字式工具顯微鏡。圖2中a) 圖是通過CCD攝像機(jī)拍攝到的精密小孔原圖, 測量時(shí), 通過前后左右移動工作臺, 使小孔在成像視場中的位置發(fā)生變化, 采樣10次, 運(yùn)用本文所提出的方法測量小孔的直徑, 得到的實(shí)驗(yàn)數(shù)據(jù)如表1所示。
從表1的測量結(jié)果中可以看到, 測量結(jié)果的精度達(dá)到了0.868 μm, 取得了比較好的效果。
4 結(jié)論
本文首先提出了高精度零件尺寸測量系統(tǒng)的結(jié)構(gòu)、工作原理等問題。然后提出了一種在Sobel算子的基礎(chǔ)上去掉局部非極大值點(diǎn)來快速獲得象素級邊緣的方法, 進(jìn)而提出在梯度方向上進(jìn)行高斯曲線擬合插值來提高測量系統(tǒng)的精度, 從實(shí)驗(yàn)結(jié)果中可以看出, 取得了比較好的效果。
如果您有機(jī)床行業(yè)、企業(yè)相關(guān)新聞稿件發(fā)表,或進(jìn)行資訊合作,歡迎聯(lián)系本網(wǎng)編輯部, 郵箱:skjcsc@vip.sina.com