孫海英,王曉云,張航
(沈陽(yáng)理工大學(xué),遼寧 沈陽(yáng) 110159)
邊緣檢測(cè)的實(shí)質(zhì)是采用某一邊緣檢測(cè)算法來(lái)提取出清晰的邊緣細(xì)節(jié)信息。傳統(tǒng)的邊緣檢測(cè)算法大部分依靠于微分計(jì)算:首先通過(guò)平滑來(lái)濾除圖像中的椒鹽噪聲、高斯噪聲等噪聲干擾;其次通過(guò)一階微分(索貝爾邊緣算子、羅伯茨邊緣算子、普利維特邊緣算子)或二階微分(拉普拉斯邊緣算子、高斯-拉普拉斯邊緣算子、Canny邊緣算子)進(jìn)行卷積運(yùn)算,求得兩個(gè)最與眾不同的點(diǎn)中(一階導(dǎo)數(shù)為零或者二階導(dǎo)數(shù)為零的點(diǎn))其一即可,再次選取合適的高低閾值以此來(lái)提取邊緣細(xì)節(jié)[1]。
齒輪零件邊緣不規(guī)則,使用傳統(tǒng)零件檢測(cè)工具,人工測(cè)量精度低,而使用精密儀器檢測(cè),易受人工不熟練以及外界環(huán)境光照噪聲的影響,另外,采用傳統(tǒng)的Canny邊緣檢測(cè)算法不止受噪聲干擾,還受不均勻光照影響,很容易丟失許多邊緣細(xì)節(jié)。對(duì)此很多學(xué)者提出了對(duì)Canny算子的改進(jìn)方法:李凌采用形態(tài)學(xué)濾波去噪,灰度均值和方差計(jì)算高低閾值[2];劉素行采用自適應(yīng)中值濾波去噪,最大類(lèi)間方差法計(jì)算高低閾值[3];段志達(dá)等人采用基于小波變換的同態(tài)濾波去噪,迭代法取高閾值,基于模擬退火粒子群法的最大類(lèi)間方差法取低閾值[4];Tengyan Hu等[5]選擇合適的高斯濾波系數(shù)去噪,最大類(lèi)間方差法計(jì)算高低閾值。但以上學(xué)者均未考慮光照的影響。本研究做了改進(jìn),首先使光照均衡化,運(yùn)用多尺度高斯函數(shù)去除光照分量,再構(gòu)造二維伽馬函數(shù)對(duì)亮度分量進(jìn)行亮度改變,提高圖像質(zhì)量[6];然后改進(jìn)基于Canny算子的齒輪邊緣檢測(cè)方法,運(yùn)用中值濾波對(duì)圖像進(jìn)行模糊處理,Sobel算子從水平和豎直兩個(gè)方向分別計(jì)算梯度大小,插值法去除非極大值,獲取局部的極大值,雙閾值法人工確定高低閾值,確定圖像的邊緣細(xì)節(jié),抑制了噪聲的同時(shí),提高了檢測(cè)精度。
Canny邊緣算子屬于先平滑后求導(dǎo),既能過(guò)濾椒鹽噪聲、高斯噪聲等大部分噪聲,又能抑制虛假邊緣,使其保存較為完整的邊緣信息。其具體步驟如下:
(1)用高斯濾波器平滑圖像
二維為高斯函數(shù):
式中,σ為方差,其取值決定于圖像的平滑程度。
在其任意方向上的一階導(dǎo)數(shù)與原圖像像素做卷積。
(2)采用3*3模板的Sobel算子來(lái)計(jì)算梯度的幅值和方向;
水平梯度方向:
式中,f(x,y)為原始圖像。
豎直梯度方向:
圖像中每個(gè)像素梯度的大?。?/p>
梯度方向:
梯度方向通常垂直于邊緣方向。
(3)采用4個(gè)方向模板(0°、45°、90°、135°)對(duì)梯度幅值進(jìn)行非極大值抑制。
其目的不是抑制非極大值的像素值,而是為了得到局部的極大值點(diǎn),將它設(shè)置為0,使其邊緣得到細(xì)化,更為精確的提取出來(lái)。
(4)用雙閾值算法確定高低閾值。
假若設(shè)置兩個(gè)閾值tmin和tmax,分析全部像素值,梯度大小大于tmax的像素點(diǎn)被認(rèn)為確定邊緣的像素,被保存下來(lái);梯度小于tmin的像素點(diǎn)被認(rèn)為一定不屬于邊緣,被放棄;對(duì)于梯度大小介于tmin和tmax之間的像素點(diǎn),若與確定邊緣的像素點(diǎn)能夠與之相連接,則他們一定屬于邊緣的一部分,否則,它們也會(huì)被放棄。
傳統(tǒng)Canny邊緣檢測(cè)算子雖然很少誤認(rèn)偽邊緣像素點(diǎn),且抑制了虛假邊緣的產(chǎn)生,定位精度高,但易受噪聲、不均勻光照的影響,針對(duì)上述不足進(jìn)行了的改進(jìn):先采用二維伽馬函數(shù)使光照均衡化,再通過(guò)中值濾波去噪平滑圖像,Sobel邊緣算子計(jì)算梯度的幅值和方向,插值法去除梯度的非極大值,雙閾值法確定高低閾值。
圖像采集后,光線強(qiáng)度過(guò)強(qiáng),或者光線強(qiáng)度不足,很容易造成極其重要的邊緣細(xì)節(jié)信息輕則掩埋重則丟失,都會(huì)造成細(xì)節(jié)檢測(cè)失敗,這就需要光照均衡化,改善圖像質(zhì)量。
2.1.1 直方圖均衡化
把采集的圖像集中密集的某個(gè)灰度值賦予全部范圍的均值分布構(gòu)建的灰度直方圖。其具體步驟:
(1)統(tǒng)計(jì)采集圖像后的分布的各個(gè)灰度級(jí),并計(jì)算其灰度分布概率hs。
其中圖像f總體的像素個(gè)數(shù):
(2)計(jì)算累計(jì)分布函數(shù)hp,由該函數(shù)求出新原兩者圖像之間的灰度值的映射關(guān)系。
傳統(tǒng)的直方圖均衡化雖然提高了圖像對(duì)比度,但是光照強(qiáng)的地方被曝光很?chē)?yán)重,如圖1所示。
圖1 直方圖均衡化
2.1.2 二維伽馬函數(shù)均衡化
采用二維伽馬函數(shù)使光照均衡化,其步驟為:
(1)利用Retinex去霧算法中的多尺度高斯函數(shù)提取光照分量;
高斯函數(shù)G(x,y):
光照分量I(x,y):
(2)構(gòu)造一種二維伽馬函數(shù)O(x,y)針對(duì)原圖HSV空間的光照(V)分量進(jìn)行亮度改變,并且自動(dòng)調(diào)整其各個(gè)數(shù)值,使其在光線過(guò)強(qiáng)導(dǎo)致曝光的區(qū)域降低其光照分量的數(shù)值,同時(shí)也提升光線不足導(dǎo)致模糊區(qū)域的光照分量的數(shù)值。
式中γ為提升光照強(qiáng)度的指數(shù),m為光照亮度的平均值。
校正過(guò)后,亮度過(guò)低區(qū)域得到提升,亮度過(guò)強(qiáng)區(qū)域得到衰減,如圖2所示。
圖2 二維伽馬函數(shù)均衡化
在其光照均衡化的基礎(chǔ)上,圖像邊緣檢測(cè)必須滿足兩個(gè)先決條件:(1)非常有效地抑制甚至消除噪聲;(2)確定邊緣細(xì)節(jié),提取較為精確的邊緣信息。
傳統(tǒng)的Canny邊緣檢測(cè)算法因第一步高斯濾波平滑圖像,所以易受噪聲干擾,容易出現(xiàn)邊緣丟失和虛假邊緣,因此分別選取消除椒鹽噪聲非常有效的中值濾波和具有保存良好邊緣信息且消除噪聲良好的雙邊濾波平滑圖像。
精確定位取決于第三步對(duì)非極大值的選取進(jìn)行抑制,確定好邊緣才會(huì)更為精確的定位提取,如若第一步去噪的同時(shí)就抑制了虛假邊緣,則第三步確定邊緣,提高檢測(cè)精度尤其重要,所以分別選取原方法即使用四個(gè)方向模板以及插值法分別對(duì)非極大值抑制。
其余兩步仍選用原來(lái)方法即Sobel邊緣算子計(jì)算梯度的幅值和方向(其余五種算子不及它平滑圖像效果好)和雙閾值法確定高低閾值,分別兩兩對(duì)應(yīng),共四種方案,擇其選取最優(yōu)。
2.2.1 濾波平滑圖像
(1)中值濾波
中值濾波指的是依次尋找原圖像中的各個(gè)像素點(diǎn),將像素值從小到大進(jìn)行排序,快速找到中值點(diǎn),并將其賦值給全部的像素點(diǎn)。中值濾波的窗口容易造成噪聲和邊緣細(xì)節(jié)相矛盾,若窗口變小,邊緣信息很容易得以保存,但噪聲很多過(guò)濾不掉,圖像變得更為模糊,反之窗口變大,噪聲很容易過(guò)濾甚至消除掉,但平滑圖像效果差,很多邊緣細(xì)節(jié)丟失。
(2)雙邊濾波
雙邊濾波器是由高斯濾波器和阿爾法-截尾均值濾波器構(gòu)成,其前者因考慮二維空間中的兩點(diǎn)之間的絕對(duì)距離則具有保存邊緣細(xì)節(jié)功能,即空間域核,后者因考慮像素之間的灰度值差值大小問(wèn)題則具有能夠過(guò)濾甚至消除噪聲的功能,即值域核。
雙邊濾波器的數(shù)據(jù)公式:
式中,(i,j)為鄰域內(nèi)某像素點(diǎn)坐標(biāo)值,(k,l)為中心像素點(diǎn)坐標(biāo)值,w為權(quán)重系數(shù)。
權(quán)重系數(shù):
空間域核:
值域核:
權(quán)重系數(shù)w分為空間域核權(quán)重系數(shù)wd和值域核權(quán)重系數(shù)wr兩部分,對(duì)于非邊緣區(qū)域,值域核權(quán)重系數(shù)wr約等于1,它不起作用,而空間域核權(quán)重系數(shù)wd平滑圖像;對(duì)于邊緣區(qū)域,值域核權(quán)重系數(shù)wr約等于0,保留原有清晰的邊緣細(xì)節(jié)。
2.2.2 Sobel邊緣算子計(jì)算梯度的幅值和方向
2*2模板的Roberts和3*3模板的Sobel邊緣算子都能對(duì)邊緣產(chǎn)生很強(qiáng)烈的響應(yīng),但相比Roberts來(lái)說(shuō),Sobel產(chǎn)生較寬而且更加強(qiáng)烈的邊緣響應(yīng),而且面對(duì)圓或者橢圓等具有彎曲特點(diǎn)的邊緣敏感度很高。求邊緣任一處梯度的大小和方向時(shí),Sobel算子就是從水平和豎直兩個(gè)方向與像素點(diǎn)做卷積運(yùn)算,與此同時(shí)很好地抑制了噪聲。
2.2.3 對(duì)非極大值抑制
(1)四個(gè)方向模板
非極大值抑制在從原本水平和豎直兩個(gè)方向增加到四個(gè)梯度方向(0°、45°、90°、135°)上進(jìn)行的,0°代表左、右兩個(gè)方向相鄰的像素,45°代表右上、左下兩個(gè)方向相鄰的像素,90°代表上、下兩個(gè)方向的像素,135°代表左上、右下兩個(gè)方向的像素來(lái)尋找極大值點(diǎn),沿著其梯度方向線上的兩個(gè)像素值比中心像素點(diǎn)的像素值小,則中心像素點(diǎn)為極大值點(diǎn),將其設(shè)置為0。
(2)插值法
邊緣的梯度方向不一定完全沿著0°、45°、90°、135°四個(gè)方向,倘若梯度的極大值偏離這四個(gè)方向,就會(huì)找不到該極大值點(diǎn),則尋找到的極大值點(diǎn)偏小,造成邊緣細(xì)節(jié)不完整,因此插值顯得尤為重要,能夠快速尋找到在該梯度方向上的最吻合的像素點(diǎn)對(duì)應(yīng)的兩邊的像素值。
2.2.4 雙閾值法確定高低閾值
閾值的選取在圖像的邊緣檢測(cè)中起到極為重要的作用,直接決定邊緣圖像質(zhì)量的好壞。若選取單一閾值會(huì)因灰度不均、噪聲干擾等種種因素消除微弱細(xì)小的邊緣,導(dǎo)致邊緣不連貫。雙閾值取代單閾值需人為設(shè)置一個(gè)高閾值和一個(gè)低閾值區(qū)分邊緣強(qiáng)弱,不僅使圖像邊緣更為連續(xù),又能夠極大程度地消除噪聲,從而保證邊緣定位的準(zhǔn)確性,同時(shí)多次調(diào)參,尋找最佳高低閾值。
為清楚明顯對(duì)比傳統(tǒng)與改進(jìn)Canny邊緣檢測(cè)算法,給出其步驟,見(jiàn)表1。
表1 傳統(tǒng)與改進(jìn)Canny邊緣檢測(cè)算法步驟
分別應(yīng)用傳統(tǒng)及改進(jìn)Canny算子的齒輪邊緣檢測(cè)算法進(jìn)行實(shí)驗(yàn),運(yùn)行結(jié)果如圖3、圖4所示。
圖3 高斯濾波
圖4 改進(jìn)Canny邊緣檢測(cè)算子
從去噪角度看,圖3高斯濾波與圖4(b)中值濾波、圖4(d)雙邊濾波相比,圖4(b)和圖4(d)的邊緣輪廓更為清晰,由此可見(jiàn)去除噪聲,中值濾波和雙邊濾波效果都很好,但圖4(d)雙邊濾波有更為清楚的虛假邊緣的出現(xiàn),容易把非邊緣點(diǎn)視為邊緣點(diǎn)。
從確定好邊緣、精確定位角度看,在中值濾波中,圖4(b)四個(gè)方向模板(0°、45°、90°、135°)和圖4(a)插值法分別對(duì)非極大值抑制,效果都很好,雖然插值法篩選的邊緣像素點(diǎn)比原方法少,會(huì)丟失一部分細(xì)節(jié),但插值法產(chǎn)生的邊緣寬度大于1的可能性要小,因此檢測(cè)精度更高。同理雙邊濾波圖4(d)和圖4(c)相比也如此。
綜合可見(jiàn),用中值濾波平滑圖像,去除椒鹽噪聲的同時(shí),非邊緣點(diǎn)誤認(rèn)為邊緣點(diǎn)的概率也逐漸減少;使用3*3模板的Sobel邊緣算子計(jì)算梯度的幅值和方向,抗噪性能強(qiáng);利用插值法對(duì)非極大值抑制,可快速準(zhǔn)確地保留極大值點(diǎn);雙閾值法確定高低閾值,能快速檢測(cè)是否為邊緣像素點(diǎn),使其連接成邊緣。此方法與傳統(tǒng)Canny方法相比,其得到邊緣輪廓清晰,虛假邊緣明顯減少,檢測(cè)精度更高。
對(duì)傳統(tǒng)Canny邊緣檢測(cè)算法進(jìn)行描述,以齒輪為模型分析比較了其中的優(yōu)缺點(diǎn),在其光照均衡化,提高齒輪圖像質(zhì)量的基礎(chǔ)上,改進(jìn)基于Canny算子的齒輪邊緣檢測(cè)算法,通過(guò)不同濾波去噪以及不同方式對(duì)非極大值抑制確定邊緣實(shí)驗(yàn)得出,運(yùn)用中值濾波平滑圖像,Sobel算子計(jì)算梯度的大小和方向,插值法對(duì)非極大值抑制,雙閾值法連接和檢測(cè)邊緣,虛假邊緣少,抗噪能力強(qiáng),檢測(cè)精度高。
初始時(shí)采集到的圖像只是二維的,而從三維到二維的投影成像受椒鹽噪聲、高斯噪聲等噪聲、不均勻光照的影響,導(dǎo)致一些邊緣細(xì)節(jié)的缺失。在往后研究中,在光照均衡化的基礎(chǔ)上,針對(duì)某一零件圖像需進(jìn)一步改進(jìn)原有邊緣檢測(cè)算法,使其抗噪性能和檢測(cè)精度之間的矛盾達(dá)到更好地平衡狀態(tài),邊緣輪廓更為清晰。與此同時(shí),提高機(jī)器視覺(jué)尺寸檢測(cè)系統(tǒng)的智能化,將某一特定指定的零件改為任意零件檢測(cè),避免不同對(duì)象采用不同邊緣檢測(cè)算法。