李昺星,任江龍
(中水北方勘測(cè)設(shè)計(jì)研究有限責(zé)任公司,天津 300222)
隨著數(shù)字化信息技術(shù)的快速發(fā)展,數(shù)字影像的邊緣提取技術(shù)越來(lái)越廣泛地應(yīng)用于深空探測(cè)、攝影測(cè)量、醫(yī)療、交通等各大領(lǐng)域[1,2]。進(jìn)行深空探測(cè)時(shí),通過(guò)獲取不同圖像之間有效的共有邊緣信息,進(jìn)行區(qū)域的三維重建,這樣我們就可以深入地了解星體地貌概況。在攝影測(cè)量中,可以通過(guò)自動(dòng)識(shí)別的方式來(lái)提取地物邊緣信息,降低人工矢量化操作時(shí)間,提高了作業(yè)效率??梢哉f(shuō),準(zhǔn)確高效的邊緣提取技術(shù)對(duì)社會(huì)各大領(lǐng)域的發(fā)展有著十分重要的作用。
有關(guān)邊緣提取技術(shù),國(guó)內(nèi)外學(xué)者已經(jīng)做了大量研究。由于邊緣是發(fā)生突變像素的集合,大多經(jīng)典邊緣提取方法是基于微分算子實(shí)現(xiàn)的,例如經(jīng)典一階微分算子Roberts、Sobel、Prewitt 算子,經(jīng)典二階微分算子Lapliance、Log 算子等[3-5],但是微分算子受噪聲干擾的影響大,魯棒性低易提取出偽邊緣。John Canny 于1986年提出的多級(jí)邊緣檢測(cè)方法具有較好的提取效果,但使用該方法進(jìn)行圖像平滑及雙閾值選擇時(shí)需要人工設(shè)置閾值,這樣就降低了提取算法的自適應(yīng)性,同時(shí)會(huì)導(dǎo)致識(shí)別出偽邊緣或丟失真實(shí)邊緣情況的發(fā)生,并且對(duì)于微弱邊緣的提取有一定的困難。因此,國(guó)內(nèi)外學(xué)者在經(jīng)典Canny 的基礎(chǔ)上提出各種新方法以獲取更好的提取效果。文獻(xiàn)[6]中提出將Canny 卷積模板擴(kuò)大為3×3,使用鄰域內(nèi)的像素平均梯度代替原梯度進(jìn)行邊緣提取,該方法可準(zhǔn)確提取出邊緣信息,冗余較少,但是不易提取出微小邊緣。文獻(xiàn)[7]中提出結(jié)合Canny 與決策樹模型的信息提取方法,該方法可檢測(cè)出大量邊緣,但是算法復(fù)雜度較高。以上方法雖然可在一定程度上提取出邊緣信息,但是卻不能提取出符合圖像分布的微弱邊緣。有鑒于此,本文結(jié)合改進(jìn)的3×3 梯度模版,利用改進(jìn)的Otsu 法進(jìn)行初始高低閾值選取并在此基礎(chǔ)上進(jìn)行局部閾值優(yōu)化,提出新的高低閾值選取方法,從而完成對(duì)算法的改進(jìn)。
Canny邊緣檢測(cè)算法的運(yùn)算過(guò)程主要包括以下4個(gè)步驟:
(1)高斯濾波平滑影像。為了有效減少噪聲的影響,進(jìn)行噪聲去除操作,通過(guò)高斯濾波器進(jìn)行圖像平滑,具體如式(1)所示:
(2)梯度及梯度方向計(jì)算。設(shè)濾波后圖像水平兩個(gè)方向的梯度值分別為Gx(i,j)和Gy(i,j),則該點(diǎn)的梯度值與梯度方向?yàn)椋?/p>
(3)非極大值抑制。在梯度方向上,如果相鄰兩個(gè)像素的梯度幅值都大于該處的梯度幅值,則該點(diǎn)標(biāo)記為非邊緣點(diǎn);否則,該點(diǎn)標(biāo)記為邊緣候選點(diǎn)。
(4)邊緣點(diǎn)篩選及連接。對(duì)極大值抑制后的圖像進(jìn)行閾值化和邊緣連接:遍歷圖像,若像素點(diǎn)梯度幅值大于高閾值,確定為邊緣點(diǎn);若像素點(diǎn)梯度幅值小于低閾值,確定為非邊緣點(diǎn);若像素點(diǎn)梯度幅值介于高低閾值之間,則判斷其八鄰域內(nèi)是否有大于高閾值的點(diǎn),若有,則為邊緣點(diǎn),否則為非邊緣點(diǎn)。
按照以上步驟即可對(duì)圖像進(jìn)行邊緣檢測(cè),對(duì)于分辨率、對(duì)比度較高的圖像,通過(guò)該方法可實(shí)現(xiàn)單像素精度邊緣檢測(cè),該方法應(yīng)用廣泛,可為圖像處理提供可靠的檢測(cè)數(shù)據(jù)。
由于傳統(tǒng)Canny 算子在統(tǒng)計(jì)像素梯度時(shí),只考慮了水平和豎直兩個(gè)方向的梯度,并未對(duì)傾斜方向的梯度信息進(jìn)行統(tǒng)計(jì),導(dǎo)致梯度計(jì)算精度不高,為獲取更加符合圖像自身分布的梯度,依次添加45°和135°方向上的梯度分量,并按距離加權(quán)確定最終梯度幅值和方向,示意圖如圖1所示。
圖1 中心像素四個(gè)方向梯度示意圖
將45°與135°方向上的梯度幅值按水平與豎直方向進(jìn)行分解,并確定最終梯度,分解公式為:
其中,G(i,j)表示最終梯度,θ(i,j)表示梯度方向。
2.2.1 Otsu 法雙閾值提取
Otsu 法以圖像目標(biāo)和背景的類間方差為測(cè)度準(zhǔn)則,當(dāng)該測(cè)度準(zhǔn)則函數(shù)取最大值時(shí),得到最佳的閾值。本文利用改進(jìn)的Otsu 法,將圖像分為非邊緣點(diǎn)梯度幅值集合C1類、候選點(diǎn)梯度幅值集合C2類、邊緣點(diǎn)梯度幅值集合C3三類,計(jì)算類間方差,找到最佳閾值。計(jì)算過(guò)程如下:
(1)計(jì)算各個(gè)梯度幅值所對(duì)應(yīng)的概率并計(jì)算圖像梯度期望E:
其中,N為圖像像素的總個(gè)數(shù),ni為梯度對(duì)應(yīng)的像素個(gè)數(shù)。
(2)分別計(jì)算三類的梯度幅值期望后,計(jì)算類間方差,可得:
其中,k∈[1,L],m∈[k+1,L]。當(dāng)σ2(k,m)達(dá)到最大值時(shí),默認(rèn)為類間方差最大,分離性最好。此時(shí),gradk、gradm分別對(duì)應(yīng)Canny 算子的高低閾值Thigh、Tlow。
2.2.2 局部閾值優(yōu)化
在確定的高低閾值的基礎(chǔ)上,為保證圖像局部微弱邊緣信息的完整性,避免真實(shí)邊緣漏檢,依據(jù)圖像局部特征進(jìn)行局域閾值優(yōu)化,從而保證不同程度的邊緣均可進(jìn)行有效檢測(cè),提高了邊緣檢測(cè)精度,具體流程為:
(1)首先選擇3×3 大小的模板,并對(duì)9 個(gè)像素值進(jìn)行重新排列,取中值Gmed(i,j)代替中心像素值,然后遍歷整幅影像,找到整幅影像中值幅值的最大值Gmax。
(2)局部窗口閾值優(yōu)化。在3×3 窗口中將Canny 法中的高低閾值Thigh、Tlow按照二者的比例進(jìn)行分配,得到該像素處新的高低閾值TNhigh(i,j)、TNlow(i,j),其中:
(3)遍歷整幅影像,計(jì)算所有小窗口內(nèi)的高低閾值TNhigh(i,j)、TNlow(i,j),并進(jìn)行檢測(cè)。
為了驗(yàn)證本文算法的可行性,分別采用經(jīng)典的Lena 圖像、兩張無(wú)人機(jī)航攝影像1、航攝影像2、遙感影像3、遙感影像4 進(jìn)行實(shí)驗(yàn)。
本文采用兩組實(shí)驗(yàn),實(shí)驗(yàn)1 利用不同影像,分別采用相同的高低閾值進(jìn)行實(shí)驗(yàn),說(shuō)明經(jīng)典canny 算法缺點(diǎn)。其中高閾值1 取7.5,高閾值2 取15,低閾值取高閾值的0.4 倍。其中(a~e)依次為五幅實(shí)驗(yàn)數(shù)據(jù)原始圖像,(f~j)為取低閾值7.5 時(shí)的邊緣檢測(cè)結(jié)果,(k~o)為取高閾值15時(shí)的邊緣檢測(cè)結(jié)果。具體檢測(cè)細(xì)節(jié)如圖2所示。
由圖2的實(shí)驗(yàn)結(jié)果可以得出,對(duì)于經(jīng)典canny 算法,發(fā)現(xiàn)當(dāng)高閾值由7.5 增加到15 時(shí),由于高閾值設(shè)置過(guò)大,導(dǎo)致弱邊緣被剔除,造成提取的邊緣顯著減少。對(duì)比(f)(k)、(g)(l)、(h)(m)、(i)(n)和(j)(o),發(fā)生如(k)中帽子頂端斷裂,(l)中花壇旁邊道路邊緣信息丟失嚴(yán)重,(m)中公路邊緣信息丟失等情況。而且,對(duì)于五張不同的影像而言,由于各影像的性質(zhì)存在差異,采用相同閾值提取出的最終效果也不一樣。當(dāng)閾值變化相同時(shí),(k)(n)信息丟失較少,(l)次之,(m)(o)信息丟失較多。
圖2 不同影像在相同高低閾值下提取結(jié)果
實(shí)驗(yàn)2 采用高閾值1 為7.5 和本文確定閾值對(duì)上述圖像進(jìn)行邊緣信息提取。(f~j)依次為canny 低閾值取7.5 時(shí)檢測(cè)出的邊緣結(jié)果,(k~o)為本文算法閾值下的邊緣檢測(cè)結(jié)果,具體細(xì)節(jié)如圖3所示。
圖3 canny 與本文算法提取結(jié)果
由圖3的實(shí)驗(yàn)結(jié)果可以得出,對(duì)于紋理細(xì)節(jié)比較豐富的地區(qū),本文算法在提取微小邊緣的情況下盡可能地減少冗余信息,并且保證所提取小邊緣的相對(duì)完整性。在影像Lena 中,(f)中對(duì)帽子中間部分,中間小的褶皺并不是邊緣但也被提取出來(lái)了,而在(k)中只提取了帽子的主要輪廓,將微小的細(xì)節(jié)舍棄,減少不必要的冗余信息;在遙感影像3 中,(i)中提取了農(nóng)田的微小信息,(n)則沒(méi)有這一部分。對(duì)比原圖,發(fā)現(xiàn)此處地物性質(zhì)一致,(n)結(jié)果更合理;航攝影像1 中花壇中低矮的植被和航攝影像2 中道路旁邊的綠化樹木,經(jīng)典canny 雖然能提取所需信息,但結(jié)果比較零散,不能反映所提取對(duì)象的形狀特征,如(g)(h)中綠、藍(lán)色邊框所示。而本文所得提取結(jié)果的連續(xù)性、完整性較強(qiáng),提取結(jié)果如(l)(m)所示。在圖像對(duì)比度較小的區(qū)域,經(jīng)典的canny 算法由于采用單一的高閾值,可能會(huì)將對(duì)比度差異較小的邊緣信息剔除。如遙感影像3 中,由于農(nóng)田邊緣間的差異較小,造成農(nóng)田邊緣結(jié)果丟失。而在(o)中,這一部分則被提取了出來(lái)。
改進(jìn)方法先從圖像整體特性出發(fā),利用改進(jìn)的Otsu 方法先找到符合整幅圖像特征的高低閾值。然后對(duì)高低閾值進(jìn)行局部閾值優(yōu)化,對(duì)于不同區(qū)域,自適應(yīng)地根據(jù)周圍的情況生成合適本區(qū)域的高低閾值,這樣能夠在避免過(guò)多冗余信息的情況下,最大限度地保留局部細(xì)節(jié)。因此,該算法在自動(dòng)化程度、準(zhǔn)確性與適應(yīng)性方面均優(yōu)于經(jīng)典Canny 算法。
本文提出一種改進(jìn)的Canny 算法,分別統(tǒng)計(jì)水平、豎直和傾斜方向的梯度分量,獲取了更加可靠的梯度和梯度方向信息:同時(shí),利用改進(jìn)的Otsu 方法自適應(yīng)地生成梯度雙閾值的初始值,并結(jié)合局部梯度特征對(duì)高低閾值進(jìn)行優(yōu)化,從而完成對(duì)Canny 算法的改進(jìn)。改進(jìn)方法可自適應(yīng)地獲取高低閾值,避免了手動(dòng)設(shè)置閾值帶來(lái)的不確定性,在確定梯度雙閾值時(shí)結(jié)合了局部區(qū)域的特征,相較于經(jīng)典Canny 算法,不僅能提取相對(duì)完整的細(xì)節(jié)部分邊緣,而且還能有效地減少冗余信息。