鄧小亞
(四川文理學院智能制造學院 達州 635000)
圖像分割在圖像預處理中具有重要的作用,可以將一個圖像分為有意義的多個子圖像,在醫(yī)學圖像處理[1]、遙感圖像[2~3]、模式識別[4~5]等方面都有廣泛的應用,多年來人們對圖像分割提出了很多的方法,其中最為廣泛的還是閾值分割法,主要原因是由于閾值分割法的簡單和高效。單閾值分割方法最早出現(xiàn),但對于現(xiàn)實生活來說,單閾值分割方法并不能滿足實際的需要,因而出現(xiàn)了多閾值分割方法[4~5],而多閾值分割方法中多閾值的選擇一般是高維空間的尋優(yōu)問題,因此產(chǎn)生了許多的多閾值優(yōu)化求解方法,但是多閾值分割方法隨著閾值數(shù)的增加其計算的復雜性明顯增加,當前應用廣泛的多閾值分割方法是使用進化算法的計算技術,簡單且廣泛,因而得到了廣泛的應用,產(chǎn)生了諸多的進化算法運用于多閾值分割中[6~8],本文中我們將多閾值分割方法作為一個限制性優(yōu)化問題,通過一種稱為CS(布谷鳥算法)的元啟發(fā)算法來進行多閾值尋優(yōu)。
本文以改進的復合布谷鳥搜索算法進行彩色圖像多閾值分割,其中適應度函數(shù)采用Tsallis熵函數(shù)[9]所求得的全局最優(yōu)解就是最優(yōu)閾值,其全局最優(yōu)解分量就是最優(yōu)閾值分量。
布谷鳥搜索算法[10~12]是一種重要的元啟發(fā)式搜索算法,因此能在限制及非限制條件下進行局部和全局尋優(yōu),布谷鳥搜索算法主要緣于一些布谷鳥會將一些蛋寄生在其他種類鳥的巢中,而被其他種類的宿主鳥類發(fā)現(xiàn)后,宿主鳥可能將這些布谷鳥蛋拋棄或重新建一個新的鳥巢而受啟發(fā)產(chǎn)生的一種新的算法,由于本算法中的最優(yōu)解是多維空間的全局最優(yōu)解,研究者為解決布谷算法中高維空間的最優(yōu)目標函數(shù)問題進行了大量探索,如文獻[13]提出的方法以及典型的Tsallis熵函數(shù)方法等。本文采用基于Tsallis熵函數(shù)的方法。
在此算法中一個解的值就對應于相應的目標函數(shù)值,也就是適應度值,但CS算法并不同于其他的搜索算法,它是一種元啟發(fā)式算法,采用離散信息編碼方式因而很容易被用于病態(tài)化結構的離散優(yōu)化問題甚至連續(xù)優(yōu)化問題中,并且能在復雜的高維空間中尋求優(yōu)化解而不需要采用窮舉式搜索,在多目標問題和非線性問題中都有重要的應用,本文中一個解對應一個鳥巢,每個解分量對應一個鳥蛋。
CS算法的基本原理如下:
1)每一只布谷鳥在一個時間只能產(chǎn)一枚蛋,并將蛋放入隨機選擇的其他鳥類的鳥巢中。
2)通常情況下,含高質量的蛋最優(yōu)鳥巢很容易被傳遞到下一代。
3)利用鳥巢的數(shù)量是固定的,而布谷鳥所放入的蛋被宿主發(fā)現(xiàn)的概率范圍一般為[0,1]之間,最差的鳥巢被發(fā)現(xiàn)且從進一步的計算中拋棄。
在此三個基本原理基礎上產(chǎn)生了CS算法,而且控制參數(shù)[14]的選擇比較簡單,包含步長因子,發(fā)現(xiàn)概率等,而產(chǎn)生的新解的公式xt+1,對第i只布谷鳥來說,其萊維飛行計算公式如下:
其中α>0是步長因子,λ為萊維因子,λ∈(1,3],t為迭代次數(shù)。
由于布谷鳥算法中,每只布谷鳥是隨機行走,其漫步的隨機性導致收斂較慢甚至容易早熟,因此在萊維飛行結束后,對當前位置進行變異:
左邊 PSi,j表示變異后的位置,右邊 PSi,j表示變異前的位置,β∈[0,1]的隨機數(shù),μ∈[-1,1]之間的隨機數(shù),PSbest,j表示當前全局最優(yōu)位置,k≠i,η為柯西變異因子,可以幫助逃離局部最優(yōu),右邊第二式可以幫助布谷鳥粒子盡快收斂于全局最優(yōu),第三式可以幫助增加布谷鳥飛行尋優(yōu)位置的多樣性,同時步長因子和發(fā)現(xiàn)概率也對布谷鳥算法收斂的速度和質量有重要影響,因此本文對步長因子和發(fā)現(xiàn)概率各提出了一個新的方程。
其中對步長因子,方程如下:
其中L為變異后步長因子,Lmin為最小步長因子、Lmax為最大步長因子,t為當前迭代次數(shù)、tmax為最大迭代次數(shù)。
而發(fā)現(xiàn)概率,其方程如下:
其中P為變異后發(fā)現(xiàn)概率,Pmin為最小發(fā)現(xiàn)概率、Pmax為最大發(fā)現(xiàn)概率,t、tmax同上面步長因子分別為當前迭代次數(shù)和最大迭代次數(shù),d取值為6。
步長因子和發(fā)現(xiàn)概率利用非遞性函數(shù),有利于前期的較大的全局搜索能力和后期的局部尋優(yōu)能力。
本文采用提出的改進算法(HCS算法),進行彩色圖像多閾值分割,算法所得到的全局最優(yōu)解就是全局最優(yōu)閾值。
本文提出的算法如下:
1)初始化布谷鳥種群相關參數(shù),并設置相關問題控制變量;
2)評估適應函數(shù)值,并從所有初始解中識別局部最優(yōu)解,并開始迭代過程;
3)布谷鳥萊維飛行結束后,以式(2)對當前布谷鳥位置進行變異;
4)以式(3)、(4)中所計算的步長因子和發(fā)現(xiàn)概率萊維飛行;
5)計算適應函數(shù)值,并識別出當前局部最優(yōu)解和全局最優(yōu)解;
6)對所有局部最優(yōu)解和全局最優(yōu)解標記;
7)重復3)~6);
8)當達到收斂標準或滿足預定條件時,算法終止;
9)輸出全局最優(yōu)解即為最優(yōu)閾值,每個解向量即為每個閾值分量。
為驗證本文提出的改進復合布谷鳥算法(HCS)的性能,將HCS算法與布谷鳥算法(CS)和粒子群體優(yōu)化算法(PSO)在函數(shù)優(yōu)化領域廣泛采用的典型測試函數(shù)Sphere中進行驗證測試,三種情況下的收斂性能如圖1所示。
圖1 標準測試函數(shù)Sphere下,HCS、CS及PSO算法性能比較結果圖
從圖1中三種算法的收斂性能比較,可以看出,圖(a)中算法收斂不僅迭代次數(shù)較多,而且收斂時誤差也較大,而圖(b)中收斂誤差相比圖(a)的收斂誤差小,迭代次數(shù)也減少,說明CS算法在Sphere函數(shù)下收斂性能比PSO算法要好,圖(c)中是本文提出的改進算法HCS算法的收斂圖,從圖(c)中可以看出,本文提出的HCS算法在標準測試函數(shù)Sphere函數(shù)下收斂性能最好,收斂時迭代次數(shù)比CS算法稍微多些,但收斂誤差更小,且不僅迭代次數(shù)還是收斂時的誤差HCS算法都比PSO算法好。
本實驗基于Matlab平臺,其硬件配置為8GB內存,處理器為四核3.6GHz,在實驗中采用了多張圖片進行了大量實驗,實驗素材來自網(wǎng)絡和實驗室,限于篇幅,本文選取了巴厘島中的藍夢島圖片的實驗結果,本實驗分為兩部分,第一部分是實驗的多閾值分割效果展示及分析,第二部分是實驗結果中的數(shù)據(jù)分析。
第一部分是本文提出的復合布谷鳥算法(HCS)算法、標準布谷鳥算法(CS)、粒子群優(yōu)化算法(PSO)分別作用于巴厘島中藍夢島的多閾值分割結果圖的主觀分析,如圖2~圖4所示。
圖2 巴厘島中藍夢島原圖及三種算法的二閾值分割結果圖
圖3 巴厘島中藍夢島原圖及三種算法的三閾值分割結果圖
圖4 巴厘島中藍夢島原圖及三種算法的四閾值分割結果圖
在圖2中的三種算法分割結果圖中,圖(b)是PSO算法對藍夢島的二閾值分割結果圖,其分割效果是最差的,在藍夢島圖的島邊的小船及島上的房屋建筑邊緣幾乎沒分割出來,島上的高塔明顯沒分割出來,遠處的云彩邊緣分割得不準確,出現(xiàn)了許多錯分和漏分現(xiàn)象,而圖2中的圖(c),是CS算法對藍夢島的二閾值分割結果圖,其分割效果比圖(b)要好,藍夢島邊上的船及島上的建筑都一定程度分割了出來,島上的高塔及遠處的云彩也有部分被分割出來,而圖(d)是圖2的三種算法分割效果圖中最好的,島上的建筑及高塔分割效果明顯比圖(c)要好,遠處云彩及島邊的船分割也要清晰些,但總的來說,圖2中三種算法的二閾值分割效果并不理想,離理想分割效果有較大的差距。圖3是三種算法在藍夢島上三閾值分割效果圖,其分割效果普遍比二閾值要好,而且HCS算法分割效果比CS算法好,CS算法分割效果比PSO算法分割效果好,而圖4中其分割效果不僅總體上比圖3好,而且HCS算法分割效果比CS算法好,CS算法分割效果比PSO算法分割效果好,因而從圖2~圖4的多閾值分割效果來看,在每個圖中圖(d)的分割效果都是最好的,從所有圖的對巴厘島中藍夢島的分割效果來看,在圖4中圖(d)的分割效果是最好的,這說明本文所提出的HCS算法在三種算法的多閾值分割中,分割效果是比較理想的。
第二部分是本文提出的三種算法對巴厘島的藍夢島圖片進行多閾值分割實驗結果數(shù)據(jù)指標比較,三種算法對巴厘島的藍夢島的二閾值、三閾值、四閾值分割的運行時間及均一度[15]比較如表1所示。
從表1可知,在對巴厘島中藍夢島的三種算法的多閾值分割時間及均一度分割的實驗結果數(shù)據(jù)來看,在同為二閾值時,本文提出的HCS算法所用時間是PSO算法所用時間的66.45%,是CS算法所用時間的73.01%,在同為三閾值時,本文所提出的HCS算法所用時間是PSO算法所用時間的75.39%,是CS算法所用時間的87.52%,在同為四閾值時,本文所提出的HCS算法所用時間是PSO算法所用時間的46.74%,是CS算法所用時間的64.83%,因此在相同閾值情況下,本文所提出的HCS算法的分割時間是最短的,從均一度來看,從PSO算法至CS算法至HCS算法,其均一度值逐漸增大,根據(jù)均一度值原理,可知從PSO算法至HCS算法,不僅總體分割效果逐漸變好,而且CS算法的二閾值分割效果比PSO算法的四閾值分割效果好,HCS算法的二閾值分割效果比CS算法的四閾值分割效果好。總之,無論從時間上還是從多閾值分割圖像的均一度來看,本文所提出的HCS算法的分割效果在三種算法中都是最好的。
表1 三種算法的實驗對比結果
本文在CS算法中引入ABC算法的蜜蜂尋優(yōu)行為,由此提出一種改進CS算法即HCS算法,并通過標準函數(shù)Sphere對HCS、CS及PSO三種算法的收斂性能進行了比較,實驗結果表明本文提出的HCS算法的收斂性能最好,并以此HCS算法作用于彩色圖像多閾值分割,通過在二閾值、三閾值、四閾值的三種算法對比實驗中,對三種算法的多閾值彩色分割的主觀效果進行了比較并對客觀實驗數(shù)據(jù)時間及均一度也進行了定量比較,其實驗結果都證明了本文所提算法的有效性。