陳燕龍
(廣州航海高等專科學(xué)校信息與通訊工程學(xué)院,廣東 廣州 510725)
圖像的邊緣是圖像的最基本特征。邊緣檢測在圖像分割、圖像增強及圖像壓縮等領(lǐng)域中有著廣泛的應(yīng)用,而且一直是數(shù)字圖像處理領(lǐng)域研究的熱點和焦點問題。圖像邊緣蘊含了豐富的內(nèi)在信息,主要劃分為階躍狀和屋脊狀兩種類型。階躍狀邊緣兩側(cè)的灰度值變化明顯,屋脊狀邊緣則位于灰度增加與減少的交界處。傳統(tǒng)的圖像邊緣檢測方法大多是從圖像的高頻分量中提取邊緣信息,微分運算是邊緣檢測與提取的主要手段。由于傳統(tǒng)的邊緣檢測方法對噪聲敏感,所以實際運用效果有一定的局限性。近年來,越來越多的新技術(shù)被引入到邊緣檢測方法中,如數(shù)學(xué)形態(tài)學(xué)、小波變換、神經(jīng)網(wǎng)絡(luò)和分形理論等。
Canny提出了最佳邊緣檢測算子即Canny算子[1],得到了廣泛的應(yīng)用,并成了與其它實驗結(jié)果作比較的標準。其原因在于他最先建立了優(yōu)化邊緣檢測算子的理論基礎(chǔ),提出了迄今為止定義最為嚴格的邊緣檢測的三個標準。另外就是其相對簡單的算法使得整個過程可以在較短的時間內(nèi)實現(xiàn)。實驗結(jié)果也表明,Canny算子在處理受加性高斯白噪聲污染的圖像方面獲得了良好的效果[2]。
但是在應(yīng)用Canny算子進行邊緣檢測時,對像素梯度進行模非極大值抑制后,要設(shè)定高、低2個閾值進行邊緣篩選,這2個閾值的選取目前還沒有統(tǒng)一的標準,對不同的圖像缺乏自適應(yīng)性,而且無法消除局部噪聲干擾,在檢測出偽邊緣的同時還會丟失一些灰度值變化緩慢的局部邊緣。本文在對傳統(tǒng)Canny算法進行分析的基礎(chǔ)上,提出了一種基于微粒群優(yōu)化算法的Canny算法,針對不同圖像自適應(yīng)地生成動態(tài)閾值,取得了良好的檢測精度和準確度。并與基于遺傳算法進行優(yōu)化的結(jié)果進行了比較。
對一幅圖像進行邊緣檢測,一般可分為三步:濾波、增強和檢測。Canny算法也是一個具有類似步驟的多階段的優(yōu)化算法。Canny給出的評價邊緣檢測性能的3個指標如下:
(1)高信噪比準則。即輸出信號的信噪比大,使得非邊緣點或邊緣判斷為非邊緣點的概率最小。信噪比(SNR)的數(shù)學(xué)表達式為
其中,f(x)是邊界為[-ω,+ω]的濾波器脈沖響應(yīng);G(x)為邊緣函數(shù);σ為高斯噪聲的均方根。信噪比越大,誤檢率越低。
(2)高定位精度準則。即檢出的邊緣點與實際邊緣點距離最小,使定位精度最高。定位精度的數(shù)學(xué)表達式為
其中,G’(-x)和f’(x)分別為G(-x)和f(x)的一階導(dǎo)數(shù)。Localization的值越大,定位精度越高。
(3)單一邊緣響應(yīng)準則。即和每個邊緣有且只有一個響應(yīng),最大限度抑制偽邊緣出現(xiàn)。要保證單一邊緣響應(yīng),檢測算子脈沖響應(yīng)導(dǎo)數(shù)的零交叉點平均距離應(yīng)滿足
設(shè)高斯二維函數(shù)為
式(4)即為滿足3個準則的最佳逼近函數(shù)。Canny以上述指標和準則為基礎(chǔ),利用泛函求導(dǎo)方法導(dǎo)出高斯函數(shù)的一階導(dǎo)數(shù),推導(dǎo)出最優(yōu)邊緣檢測算子的一個近似實現(xiàn):邊界點位于圖像被高斯函數(shù)平滑后的梯度幅度的極大值點。
(1)平滑圖像。利用式(5)所示的一維高斯函數(shù)對原始圖像進行平滑除噪,從而得到平滑圖像I(x,y)。
其中*表示卷積,f(x,y)是原始圖像,σ是高斯函數(shù)的散布參數(shù),用它控制平滑程度。
(2)計算梯度方向和幅值。采用2×2鄰域一階偏導(dǎo)的有限差分計算平滑后的圖像I(x,y)的梯度方向和幅值:
其中,gx和gy分別為原圖像I(x,y)被濾波器fx和fy沿行、列作用的結(jié)果。
(3)對梯度圖像進行非極大值抑制。若像素點(x,y)的梯度幅值M(x,y)不小于梯度方向上兩個相鄰像素點的梯度幅值,則判斷該點為可能的邊緣點[3]。
(4)雙閾值方法檢測和連接邊緣。取兩次閾值th1(低閾值)和th2(高閾值),對梯度圖像進行雙閾值化處理,可得到一個高閾值檢測結(jié)果和低閾值檢測結(jié)果,再在前者中連接邊緣輪廓,連接到端點時,到后者尋找弱邊緣點,彌補前者的邊緣間隙。
PSO算法是由Eberhart和Kennedy于1995年首次提出[3]一種進化計算技術(shù)(evolutionary computation)。類似其它進化類算法,PSO算法采用群體和進化的概念,根據(jù)個體的適應(yīng)值大小進行操作。不同的是,PSO算法將每個個體看作是在n維搜索空間中的一個沒有重量和體積的微粒,并在搜索空間中以一定的速度飛行。該速度是由個體飛行經(jīng)驗和群體的飛行經(jīng)驗進行動態(tài)調(diào)整,最終使所有微粒趨近全局最好位置。
在標準PSO算法中,一個包含有M個粒子的群體,每個微粒的維數(shù)為n,其中Xi=(xi1,xi2,…,xin)為微粒i的當前位置;Vi=(vi1,vi2,…,vin)為微粒i的當前速度向量;Pi=(pi1,pi2,…,pin)是微粒i的個體最好位置;Pg為所有微粒在當前的全體最好位置。標準PSO算法的進化公式如下:
其中,ω(t)是慣性因子,一般可以設(shè)為隨進化而線性減少;t為當前進化代數(shù);φ2是加速因子,通常在0~2間選??;μi~U(0,1)是兩個相互獨立的隨機數(shù)。為了減少在進化過程中微粒離開搜索空間的可能性,可以給速度Vi限定一個范圍Vi∈[Vmin,Vmax]。
為了要保證算法的收斂性,每個微粒必須要收斂于各自的Pi點,這是由微粒的追隨性和微粒群的集聚性決定的。從動力學(xué)的角度來看,PSO算法中微粒的收斂過程是以Pi點為吸引子,隨著速度的變小而不斷地接近Pi點。因此在整個過程中,在Pi點處實際存在某種形式的吸引勢能場吸引著微粒,這正是微粒能保持聚集性的原因。但是在標準PSO微粒群系統(tǒng)中,微粒的收斂是以軌道的形式實現(xiàn)的,且微粒的速度總是有限的,因此在搜索過程中微粒的搜索空間是一個有限的區(qū)域,不能覆蓋整個可行的空間。所以標準PSO算法不能保證以概率1收斂到全局最優(yōu)解,甚至不能收斂到局部最優(yōu)解,這正是其最大的缺點,所以許多學(xué)者對標準算法的改進進行了很多的探索。
量子化的微粒群算法[4,5]是從量子力學(xué)的角度對標準PSO算法的繼承和推廣。在QPSO中,微粒群按下面三個公式移動:
其中:φ,u=rand,mbest是微粒群的平均最優(yōu)位置,pid為Pid和Pgd之間的隨機點;a為QPSO的收縮擴張系數(shù),它是QPSO算法收斂性的重要參數(shù),取值方法為
其中MAXITER是迭代的最大次數(shù),具體a取值視情況而定;T為當前迭代次數(shù)。
PSO和QPSO的區(qū)別在于進化的方法不同,即更新微粒位置的方法不同。在PSO算法中,微粒必須在一個有限的搜索范圍內(nèi)以確保微粒群的聚集性,使算法收斂于一個最優(yōu)點或局部最優(yōu)點。而在QPSO算法中,微粒能以某一確定的概率出現(xiàn)在整個可行的搜索空間中任意一個位置。而這樣的位置可能比當前群體中的個體極值具有更好的適應(yīng)值,所以QPSO算法能較好地克服標準PSO算法在收斂性能上的不足。
對圖像進行平滑,除噪的同時也會使灰度的變化范圍變窄,一些邊緣變得比較平緩,從而在后續(xù)的邊緣檢測中容易丟失邊緣。為改變這種情況,在平滑后,對圖像做灰度拉伸,增大圖像的灰度分布的動態(tài)變換范圍,增強對比度和邊緣灰度的變換速率。
其中,對于灰度級為256的圖像來說,Mg=Mf=255。a、b為常數(shù),不同情況下灰度拉伸的a、b的取值要根據(jù)具體的條件進行選擇。
從Canny算子的原理可以看出,影響算法性能的兩個重要因素是σ和閾值Hth、Lth的選取。對于灰度平坦的圖像,用較小的σ可以取得很好的平滑效果,但如果圖象復(fù)雜度增加,σ也要有相應(yīng)的增加。這會導(dǎo)致高斯平滑模板相應(yīng)的增大,平滑的速度也大幅度變慢。本文實驗中,σ取固定值1。
一幅在光照條件不好的情況下拍攝的圖像,很可能會出現(xiàn)灰度分布的不均勻。這時,如果選擇高閾值的Canny算子進行檢測,圖像的某些部分會丟失邊緣;而選擇低閾值Canny算子進行檢測,又會出現(xiàn)很多虛假的邊緣??梢?,雖然雙閾值法使Canny算子提取的邊緣更具有魯棒性,但閾值的選擇對結(jié)果影響很大,而對不同的圖像確定不同的閾值又較困難。
本文采用基于量子行為的微粒群優(yōu)化算法(QPSO)選代求取最優(yōu)閾值,作為Canny算子的高閾值Hth,對于低閾值的選擇,通過選擇為高閾值的一定比例因子實現(xiàn),一般取Lth=k Hth,其中比例因子k取1.5~2.5。
基于實時性的考慮,我們選取的適應(yīng)度函數(shù)是最大類間方差的計算函數(shù)。計算公式為:
其中t表示用來處理圖像的閾值,w1(t)表示圖像中灰度值小于閾值的像素的總和,w2(t)表示表示圖像中灰度值大于閾值的像素的總和,u1(t)表示圖像中灰度值小于t的像素的平均灰度值,u2(t)表示圖像中灰度值大于t的像素的平均灰度值,u(t)為目標圖像的灰度均值。通過QPSO算法,找出使得σ (t)2最大的t的值,作為Canny算法的高閾值。算法流程如下:
(1)迭代次數(shù)t=0,對種群的每個粒子的位置向量進行初始化;
(2)根據(jù)目標函數(shù)計算每個粒子的目標函數(shù)值;
(3)更新每個粒子的新局部最優(yōu)位置Pij;
(4)更新全局最優(yōu)位置Pgj;
(5)根據(jù)(3)式計算mbest;
(6)根據(jù)(4)式計算每個粒子隨機點pid;
(7)根據(jù)式(5)更新每個粒子的新位置;
(8)判斷參數(shù)估計是否達到預(yù)定迭代步數(shù)或預(yù)定精度,條件滿足則終止。否則,t=t+1,返回(2)。
為了驗證算法的結(jié)果,將本文算法與傳統(tǒng)的Canny算法進行了實驗對比。結(jié)果見圖1。
圖1 仿真實驗結(jié)果
實驗中還采用檢測圖像的品質(zhì)系數(shù)[6]R來評估算法的性能:
其中,m是真實邊緣數(shù);n是檢測出的邊緣數(shù);d(i)表示第i條邊緣與響應(yīng)的檢測邊緣的距離,a為比例常數(shù),可取為0.1,當R=1時是檢測的理想狀況。結(jié)果見表1。
從圖1可以看出,傳統(tǒng)Canny算法存在一些假邊緣,同時丟失了一些真邊緣。而本文算法不需要事先設(shè)定閾值,優(yōu)化產(chǎn)生的閾值使得檢測準確性得到較大的提高,邊緣完整,定位準確,能夠更好地保留邊界和圖像細節(jié)。從表1可以看出,本文算法所得邊緣圖像的品質(zhì)系數(shù)明顯高于傳統(tǒng)Canny方法。
表1 圖1中邊緣圖像的品質(zhì)系數(shù)
與采用標準微粒群算法(PSO)和遺傳算法(GA)進行選代求取最優(yōu)閾值的結(jié)果進行對比發(fā)現(xiàn),PSO沒有遺傳操作,其計算復(fù)雜度比GA低,QPSO的優(yōu)勢在于簡單容易實現(xiàn)并且沒有許多參數(shù)需要調(diào)整,收斂的速度快。比較結(jié)果見表2。
表2 迭代次數(shù)比較
本文采用改進的微粒群優(yōu)化算法對傳統(tǒng)的Canny算法進行了改進,改善了對差分背景的圖像邊緣檢測的效果,通過微粒群優(yōu)化算法產(chǎn)生的閾值適應(yīng)性好,自動化程度高。因為QPSO算法迭代次數(shù)少,算法的開銷不大,顯著提高了閾值選取的速度。雖然算法的運算復(fù)雜度和運算時間要稍大于普通的Canny算子,但優(yōu)于采用遺傳算法進行優(yōu)化的情況,對實時性無明顯影響。
[1]Canny J,A Computational Approach to Edge Detection[J].IEEE Transon PAM I,1986,8(6):679-698.
[2]Zhang Bin,He Sai-xian.Improved Edge-detection Method Based on Canny algorithm[J].Infrared Technology,2006 28(3):165-169.
[3]Kennedy J,Eberhart R.Particle Swarm Optimization[C].Proceedings of IEEE IntConf on Network,1995:1942-1948.
[4]SUN Jun,XUWenbo.A global search strategy of quantum-behaved particle swarm optim ization:proc.Of IEEE Conference on Cybernetics and Intelligent Systems[C].Singapore:[s.n.],2004:111-116.
[5]SUN Jun,F(xiàn)ENG Bin,XU Wenbo.Particle swarm optim ization w ith particles having quantum behavior:proc of Congress on Evolutionary Computation,2004:325-331.
[6]William K.Pratt數(shù)字圖像處理[M].鄧魯華,張延恒等譯.北京:機械工業(yè)出版社,2005:330-332.