基于視覺圖像的微小零件邊緣檢測算法研究
邊緣是指局部強(qiáng)度變化最顯著部分.主要存在于目標(biāo)與目標(biāo)、目標(biāo)與背景、區(qū)域與區(qū)域之間,是圖像分割、紋理特征和形狀特征等圖像分析的重要基礎(chǔ)。如何快速、準(zhǔn)確提取圖像的邊緣信息一直是國內(nèi)外研究的熱點(diǎn),目前已有多種邊緣檢測算法,其中最經(jīng)典的算法就是Sobel算法。該算法由于計(jì)算量小、速度快,廣泛應(yīng)用于諸多領(lǐng)域,但其檢測方向有限,抗噪能力較低,因此,該算法也具有一定的局限性。而且,實(shí)際應(yīng)用中,像素級已無法滿足精度要求,只能采用亞像素級的細(xì)分算法。
這里給出擴(kuò)展的4個(gè)方向的Sobel算子,即采用4個(gè)方向的模板,細(xì)化處理其梯度方向圖,鑒于插值法計(jì)算量小、精度高的特點(diǎn),故選用二次多項(xiàng)式插值法實(shí)現(xiàn)亞像素細(xì)分。
2 擴(kuò)展的Sobel細(xì)化算子
2.1 擴(kuò)展的兩個(gè)模板
圖像目標(biāo)的邊緣是灰度不連續(xù)性的反映,其種類可粗略區(qū)分為:階躍性邊緣和層頂狀邊緣。前者的兩邊像素點(diǎn)灰度值顯著不同,后者位于灰度值從增加到減少的變化轉(zhuǎn)折點(diǎn)。為了更準(zhǔn)確描述圖像邊緣點(diǎn).減少噪聲對其檢測結(jié)果的影響,提高算子的抗噪能力,在水平、垂直模板的基礎(chǔ)上重新構(gòu)造2個(gè)3x3的模板,模板各個(gè)位置的權(quán)重是由該位置到中心點(diǎn)的距離以及該位置在模板中所在的方向決定的,等距離的點(diǎn)具有相同權(quán)重,如圖l所示。這里選用最高輸出模板所對應(yīng)的邊緣梯度值作為像元邊緣梯度強(qiáng)度。
2.2 Sobel算子細(xì)化邊緣
圖像邊緣包含圖像的大量信息,但模板計(jì)算的數(shù)值僅僅只是圖像對應(yīng)的梯度圖像,邊緣出現(xiàn)于梯度較大位置,若想提取圖像邊緣必須設(shè)定閾值將其二值化。由一階梯度算子得到梯度圖像,一般邊緣較粗,若直接對其梯度圖像設(shè)定閾值進(jìn)行二值化,很難找到合適的閾值.也不便于邊緣連接與邊緣特征提取等后期處理。因此在對圖像梯度圖像進(jìn)行二值化前,必須細(xì)化所檢測的梯度邊緣。細(xì)化原理是基于經(jīng)典Sobel算子定義的:
梯度方向?yàn)椋?/p>
Sobel算子模板中的元素表示算式中相應(yīng)像素的權(quán)重因子。Sobel算子是邊緣檢測算子,故其處理模板中各因子之和為零。另一方面,由于正因子和負(fù)因子之和分別為4和一4,在極端情況下處理結(jié)果可能溢出。因此,在實(shí)際使用時(shí),Sobel算子通常采用已設(shè)定閾值進(jìn)行二值化,即處理結(jié)果得到的是已二值化的邊緣圖。該結(jié)果將導(dǎo)致邊緣圖中幅值較小的邊緣丟失。為了克服這個(gè)缺陷,引入一個(gè)衰減因子Scale,用它去除計(jì)算結(jié)果,來消除數(shù)據(jù)的溢出,而無需二值化處理,而且其結(jié)果是無失真的灰階邊緣圖,從而保留所有邊緣數(shù)值同。加入擴(kuò)展的模板后可得:
因子Scale取4,它也是歸一化因子,即兩個(gè)灰度層的階躍,交界處的處理結(jié)果就是其灰度差值。
灰度圖像細(xì)化處理步驟如下:①對灰度圖像作帶衰減因子的Sobel處理,得灰度邊緣圖。Sobel處理采用式(3);②對所得灰度邊緣圖再作帶衰減因子的Sobel處理;③灰度邊緣圖減去Sobel處理結(jié)果,再將與負(fù)值部分對應(yīng)的邊緣點(diǎn)的值改為零,得到細(xì)化的邊緣圖。
3 多項(xiàng)式插值亞像素細(xì)分的精定位
運(yùn)用Sobel細(xì)化算子改進(jìn)的方向模板獲取邊緣點(diǎn)的梯度方向,可采用已知的邊緣點(diǎn)的梯度方向近似代替未知的亞像素點(diǎn)的梯度方向,并在該方向上進(jìn)行二次多項(xiàng)式插值得到邊緣的亞像素位置。
對于灰度圖像中任意點(diǎn)的梯度幅值用R表示,設(shè)R0為邊緣點(diǎn)P0(m,n)的灰度梯度方向的模,R-1,R1分別是在梯度方向上與P0相鄰的兩像素點(diǎn)P-1,P1的梯度幅值,經(jīng)推導(dǎo)可得亞像素點(diǎn)的坐標(biāo)(xe,ye)為:
式中:W為相鄰像素點(diǎn)到邊緣點(diǎn)距離,θ為梯度方向與x軸正向夾角。
由式(4)可得出,亞像素細(xì)分定位邊緣的前提條件為:R0>R-1且R0>R1。
采用擴(kuò)展的Sobel細(xì)化算子搜索單像素邊緣,在搜索過程中,剔除邊緣點(diǎn)梯度方向的非極大值,從而保證亞像像素細(xì)分定位的前提條件成立。方向模板與P-1,P1點(diǎn)坐標(biāo)對應(yīng)表如表1所示。
4 實(shí)驗(yàn)與結(jié)果分析
為了驗(yàn)證該算法,提取在線實(shí)時(shí)采集的微小零件圖像進(jìn)行實(shí)驗(yàn)。
(1)可擴(kuò)展的Sobel細(xì)化算子的驗(yàn)證 引入灰階Sobel算子后,得到的邊緣圖仍是灰階圖像,此時(shí)采用Sobel算子處理,得到邊緣的邊緣圖。在新的邊緣圖上,原邊緣的兩側(cè)得到新的邊緣,而中間部分卻變成背景,且其寬度小于原邊緣。利用該特點(diǎn)細(xì)化原邊緣,即將原邊緣減去新邊緣圖,再將結(jié)果中與負(fù)的部分對應(yīng)的邊緣變?yōu)榱悖詈蟮玫浇咏鼏蜗袼貙挼倪吘増D,從而達(dá)到細(xì)化邊緣的效果,如圖2所示。
(2)亞像素細(xì)分算法定位 經(jīng)過擴(kuò)展方向模板的Sobel細(xì)化算子后,提取接近單像素的邊緣,在其梯度方向上用亞像素細(xì)分算法對圖像邊緣進(jìn)一步定位。
圖3是在原邊緣基礎(chǔ)上取一段圓弧,對其細(xì)分前后的坐標(biāo)圖,可以看出,經(jīng)過亞像素細(xì)分算法定位后得到的像素邊緣比較光滑。相對于未細(xì)分,其精確度得到提高。
(3)計(jì)算標(biāo)準(zhǔn)偏差 以單個(gè)點(diǎn)的像素坐標(biāo)值為標(biāo)準(zhǔn)坐標(biāo)值,將定位后的單點(diǎn)與對應(yīng)點(diǎn)的坐標(biāo)差作為算法偏差,計(jì)算得到的標(biāo)準(zhǔn)偏差約0.20 pixel。
5 結(jié)論
采用的邊緣檢測算法是通過擴(kuò)展的4個(gè)方向的Sobel算子引入衰減因子而得到無失真的灰階邊緣圖,再采用Sobel算子細(xì)化,可使較陡邊緣部分光滑連續(xù),且接近單點(diǎn)寬的邊緣;采用二次多項(xiàng)式插值法在梯度方向插值后得到光滑邊緣,定位精度達(dá)到0.20 pixel,適于對精度要求較高的視覺系統(tǒng)。