鮑小麗 賈鶴鳴 郎春博
(東北林業大學機電工程學院 黑龍江 哈爾濱 150040)
圖像分割是從圖像處理到分析的關鍵步驟,分割的質量會影響到后續的圖像分類、模式識別等工作。圖像分割的目的在于將圖像中的像素點劃分為若干個各具相似特性的類別區域并提取出有用的目標[1]。目前常用的圖像分割方法有基于閾值的圖像分割、基于區域的圖像分割、基于邊緣檢測的圖像分割、基于聚類技術的圖像分割等[2]。其中閾值分割方法因實現簡單、運算效率高和性能較穩定等優點而被廣泛應用于很多領域。例如:對醫學CT圖像的分割在臨床肺部疾病判斷中具有關鍵作用[3];對森林火災圖像的分割為檢測實時火情奠定堅實基礎[4];對農田作物圖像的分割為后期的病害防治工作提供參考和依據[5]。由于傳統的單閾值分割方法在比較復雜的圖像分割上難以獲得理想的分割效果,因此一些學者利用迭代的方式將其擴展到多閾值圖像分割中。
多閾值Otsu圖像分割是以類間方差最大為準則來選取最優閾值組合,但隨著閾值個數的增加,其計算量也呈指數增長,直接影響了圖像分割的效率。因此,一些學者將閾值選取問題視為以準則函數為目標函數的優化問題,并借鑒仿生算法來提高優化效率。例如:由柳新妮等提出的布谷鳥搜索算法在多閾值圖像分割中的應用;王鈦等提出的基于離散灰狼算法的多閾值圖像分割等。但由于優化算法本身的局限性,在分割圖像時仍存在穩定性較差,容易陷入局部最優等問題[6]。
蜻蜓算法(Dragonfly Algorithm,DA)是由Seyedali Mirjalili在2015年提出的一種新穎的群智能優化算法[7]。該算法的靈感來源于自然界中的蜻蜓靜態和動態群體行為。在靜態群體行為中蜻蜓會分成幾個子群體在不同區域中捕食昆蟲,其特征為局部移動和飛行路徑的突變,這有利于進行局部開發;在動態群體行為中的蜻蜓會聚集成一個大的群體并向著統一的方向飛行,這有利于進行全局搜索。蜻蜓通過分離、結隊、聚集、覓食和避敵這五種行為來更新當前所在位置。雖然蜻蜓算法對于優化問題表現出良好的性能,但仍存在求解精度較差、早熟收斂等問題[8]。
本文提出一種改進蜻蜓算法(Improved Dragonfly Algorithm,IDA)并將其應用到多閾值圖像分割領域。為解決標準DA算法中全局搜索能力較差且后期局部開發受限的問題,在保證算法運行效率的同時提高圖像分割的精度,進行了以下兩部分改進:1) 混沌初始化蜻蜓的初始位置,提高初始蜻蜓種群的質量;2) 引入反向學習策略增加可選蜻蜓的數量,并擇優選取蜻蜓,在增大隨機性的同時提高蜻蜓種群的進化速度。實驗選取6幅伯克利圖像,對比PSO、SCA、BA、HSO與ALO五種優化算法。結果表明,IDA提高了蜻蜓種群的收斂速度,而且算法的求解精度得到有效提高,其PSNR、FSIM、SSIM、最優適應度函數值及運行時間等指標均優于5種對比算法,為后續的圖像處理工作奠定了良好的基礎。
基于最大類間方差的Otsu算法是由日本學者大津提出的一種自適應的閾值選擇方法,其基本原理是根據圖像的灰度直方圖,以目標和背景之間的類間方差最大為準則來確定圖像的分割閾值[9]。
對于一幅圖像(大小為M×N),灰度級為L,各個灰度值為0到L-1,灰度值為i的像素總數為ni,像素總數可以表示為:
(1)
任意像素灰度值為i出現的概率為:
(2)
設閾值t將整幅圖像分為前景和背景兩部分,則類間方差σB2是t的函數:
σB2(t) =P0×(m0-mG)2+P1×(m1-mG)2
(3)

將其推廣到多閾值中,假設要將圖像分成n部分,則閾值可以表示為T=(T1,T2,…,Tn-1)。對于這n個部分來說,每部分總像素出現概率分別是P0,P1,…,Pn-1。其中:
(4)
(5)
圖像的灰度均值為:
(6)
類間方差為:
(7)
圖像的類間方差越大,分割效果越好,所以使σB2(T)達到最大的閾值組合即為所求的最優閾值。Otsu方法的本質是采用窮舉法選取最佳閾值組合,其不足是隨著閾值個數的增加,計算量會以指數形式增長,為提高算法的運行效率,現采用基于混沌初始化和反向學習策略的改進蜻蜓算法對選取多閾值的過程加以優化。
為了使蜻蜓算法更快地收斂于全局最優,其搜索半徑會隨迭代次數的增加而線性遞增,直到整個蜻蜓群體全部相鄰。
利用DA算法求解優化問題的思路為:在N維空間中初始化產生個體數量為m的蜻蜓種群,種群中第i(i=1,2,…,m)個蜻蜓的位置表示Xi=(Xi1,Xi2,…,XiN),通過計算蜻蜓種群對應的適應度函數值f(x)并加以比較,選擇當前適應度值最大的蜻蜓位置作為食物源的位置,適應度值最小的蜻蜓位置作為天敵的位置,然后根據蜻蜓的5種行為更新當前個體所在位置。具體公式如下:
1)分離行為:避免蜻蜓和相鄰個體之間發生碰撞。
(8)
式中:X是當前蜻蜓所在位置;Xj是第j個相鄰蜻蜓所在位置;W是鄰近蜻蜓的個數。
2) 結隊行為:相鄰個體之間趨于相同的速度。
(9)
式中:Vj是第j個相鄰蜻蜓的速度。
3)聚集行為:蜻蜓傾向于向相鄰個體的中心聚攏。
(10)
4)覓食行為:食物對蜻蜓的吸引力。
Fi=X+-X
(11)
式中:X+是食物源所在位置。
5)避敵行為:蜻蜓對天敵的排斥力。
Ei=X-+X
(12)
式中:X-是天敵所在位置。
步長向量指示蜻蜓的步長和運動方向,其定義如下:
ΔXt+1=(sSi+aAi+cCi+fFi+eEi+ωΔXt)
(13)
式中:s、a、c、f、e分別對應于5種行為的權重;ω是慣性權重;t是當前迭代次數。
當兩個蜻蜓之間的歐氏距離小于搜索半徑r,則認為兩個蜻蜓是相鄰的;反之則不相鄰,此時蜻蜓通過隨機游走的方式圍繞搜索空間飛行。
搜索半徑r的定義如下:
r=Δb/4+(Δb×(t/max_iteration)×2)
(14)
式中:Δb=ub-lb,ub和lb分別表示搜索半徑的上界和下界;max_iteration為最大迭代次數。
蜻蜓位置向量的計算如下:
當有鄰近蜻蜓時:Xt+1=Xt+ΔXt+1
(15)
當無鄰近蜻蜓時:Xt+1=Xt+Levy(d)×Xt(16)
式中:t是當前迭代次數;d表示位置向量的維度。
(17)
式中:r1和r2是[0,1]內的隨機數;β為常數,這里取值為1.5。
(18)
種群初始化對DA算法的求解精度和收斂速度起著至關重要的作用。標準DA算法初始化時一般是采取隨機初始化的方法來確定蜻蜓的位置和移動步長,存在的弊端是當蜻蜓遠離食物源時會影響收斂速度。混沌運動具有規律性、隨機性和遍歷性等特點,這個過程不收斂但有界,并對外部參數和初始值極其敏感,所以基于混沌的種群初始化可以在一定范圍內按自身規律不重復地遍歷搜索空間,使算法在求解精度和收斂速度方面得到顯著的提升[10]。這里選用Logistic映射方程進行種群初始化操作,其表達式如下:
cxn+1=μcxn(1-cxn)
(19)
式中:μ∈(0,4],cxn∈(0,1),μ越大混沌性越高,μ=4時系統完全處于混沌狀態。
x(i,j)=xmin+rand(i,j)×(xmax-xmin)
(20)
混沌初始化種群的基本原理:首先給定一個cx初值,通過式(19)Logistic映射方程產生初始化所需要的混沌變量,然后利用混沌變量取代標準初始化方程中的隨機數,即式(20)中的rand(i,j),直到遍歷完所有蜻蜓個體的每一維度為止。
反向學習是由Tizhoosh在2005年提出的一種優化學習策略,同時根據概率定理證明每個隨機產生的候選解有50%的概率比它的反向解更靠近最優解[11]。本文應用反向學習策略的主要思想是:在DA算法迭代尋優過程中設置一個反向概率p,每次迭代執行完蜻蜓種群更新后,產生一個0到1的隨機數r3,若r3>p則結合反向學習策略優化種群。在搜索空間中通過當前個體產生反向個體,并從兩者中選擇較優秀的個體進入下一代,從而吸引種群向最優個體逼近,在增大隨機性的同時降低算法復雜度,公式如下:
(21)

混沌初始化策略能夠提高初始蜻蜓種群的質量和種群分布的隨機性,反向學習策略能夠增加蜻蜓種群多樣性,通過比較選取其中適應度較好的個體,可以增強算法的尋優能力,提高種群進化速度和算法的運行效率,其流程如圖1所示。

圖1 改進蜻蜓算法流程圖
改進蜻蜓算法(IDA)的基本步驟如下:
Step1隨機生成種群規模為m初始種群,利用式(19)和式(20)混沌初始化每個粒子的位置,預先設定算法執行所需參數。
Step2計算出每個蜻蜓的適應度值f(i),從中選出最優個體的位置定義為食物源的位置,其適應度值為ffood;選出最差的個體的位置定義為天敵的位置,其適應度值為fenemy。
Step3更新參數,其中包括搜索半徑r,慣性權重w,分離度權重s,對齊度權重a,凝聚度權重c,食物吸引度權重f和天敵驅散度權重e。
Step4計算步長向量,當有鄰近蜻蜓時根據式(15)更新蜻蜓的位置;當無鄰近蜻蜓時根據式(16)更新蜻蜓的位置,同時將其限制在最大范圍[0,L-1]內。
Step5將更新后的各蜻蜓的位置代入適應度函數得到新的適應度值f(i+1)。
Step6若rand>p,則根據式(21)執行反向學習操作,并在當前個體與反向個體中擇優選出進入下一代的個體。
Step7將個體的適應度值分別與最優值ffood和最差值fenemy比較,若優于ffood則將其更新食物的位置,若差于fenemy則更新天敵的位置。
Step8判斷是否滿足終止迭代的條件,若滿足則退出循環,否則轉向Step3。
多閾值的圖像分割可以看成一種單目標優化問題,結合群智能優化算法的尋優過程實際上是求解Otsu算法多閾值適應度函數的最優閾值組合。實驗選取6幅伯克利經典圖像進行分析研究,并與SCA、PSO、BA、HSO和ALO算法進行比較。本文通過峰值信噪比(PSNR)、特征相似性(FSIM)、結構相似性(SSIM)、適應度函數值及運行時間這5種指標來評估IDA算法與其他5種算法的性能差異。
峰值信噪比(PSNR)是基于對應像素點間的誤差來衡量圖像失真程度的指標,PSNR的值越大,圖像的失真程度越小[12]。其定義如下:
(22)
式中:MSE表示原圖像與分割圖像的均方誤差。
特征相似性(FSIM)是一種基于圖像的相位一致性和與圖像的空域梯度特征來評價圖像質量的指標[13]。其定義如下:
(23)
式中:Ω表示圖像的整個空域;SL(x)用來評價圖像的相似性;PCm(x)表示相位相似性。
PCm(x)=max(PC1(x),PC2(x))
(24)
式中:PC1(x)和PC2(x)分別表示參考圖像和被評測圖像的相位一致性。
SL(x)=[SPC(x)]α·[SG(x)]β
(25)
式中:
(26)
(27)
其中:SPC(x)表示圖像的特征相似性;SG(x)表示圖像的梯度相似性;G1(x)和G2(x)分別表示參考圖像和被評測圖像的梯度幅值、α、β、T1和T2均為常量。
結構相似性(SSIM)是利用圖像的亮度,對比度和結構信息的冪乘積作為測度來客觀評價圖像的質量,其范圍為0到1,其值越大,說明分割后的圖像與原圖像越相似[14]。其定義如下:
(28)

算法的實驗環境為Windows10-64bit,1.6 GHz處理器和8 GB內存,編程環境為MATLAB 2014b。為了客觀對比IDA算法與其他5種算法的綜合性能,充分考慮算法的隨機性對實驗結果的影響,實驗時的各參數設置如下:粒子數目n=30,最大迭代次數tmax=500,各算法特性參數設置如表1所示。

表1 各算法參數設置
為了驗證本文優化算法在處理多閾值圖像分割問題時的優勢,在伯克利圖像庫中隨機選取6幅標準圖像,灰度圖像如圖2所示。以類間方差函數作為每種算法的適應度函數,同時利用優化算法對6幅圖像多閾值分割時的閾值選取過程加以優化。本次實驗對每幅圖像分別進行4個、6個、8個和10個這4種類型的多閾值圖像分割。

圖2 伯克利灰度圖像
本文選用PSNR、FSIM、SSIM 和最優適應度值4個指標對各算法圖像分割的精準度進行定量分析,數據結果如表2-表5所示。首先分析峰值信噪比PSNR指標,它是基于圖像的灰度值來衡量圖像失真程度的指標,PSNR的值越大,圖像的失真程度越低。當分割閾值個數為4或6時,各種優化算法的PSNR的值相差較小,但IDA算法仍具有一定優勢。當閾值分割個數為8或10時,對于Worker和Massif等這類復雜的圖像,IDA算法得到了很有競爭力的結果。例如:對Massif圖像進行10閾值分割時IDA、PSO、SCA、BA、HSO和ALO對應的取值分別為28.693 9、26.366 9、27.388 1、26.363 9、27.020 2,直觀地表現出基于IDA算法分割的圖像與其他5種算法相比失真程度小。這說明IDA算法不僅能夠解決多維函數極值求解的問題,而且在圖像分割領域也有很強的工程實用性。

表2 各算法PSNR指標

表3 各算法FSIM指標

表4 各算法SSIM指標

表5 各算法最優適應度函數值
其次對特征相似性FSIM指標進行分析,它是基于圖像的相位一致性特征與圖像的空域梯度特征來評價圖像的質量的一種指標。從表3中的數據可以看出,基于IDA算法的多閾值圖像分割得到了較高的FSIM值,隨著閾值個數的增加,IDA算法的優越性越來越顯著。例如,在對Worker這幅圖像進行4個、6個、8個和10個這4種類型的分割時,IDA算法得到的FSIM值分別為0.782 2、0.860 1、0.909 3、0.939 4,得到的值越來越接近于1,其他算法與IDA算法的差距也與越來越明顯,表現出IDA算法尋優精度高的優點,可以得到較好的分割閾值組合,從而獲得高質量的多閾值彩色分割圖像。
然后對結構相似性SSIM進行分析,它是一種利用亮度、對比度和結構信息的冪乘積作為測度來評價圖像的指標。從表4中可以看出,對同一幅待分割的圖像,本文算法得到了最高值。同時,隨著分割閾值個數的增加,SSIM的值在不斷增大,各算法可以更加準確地分割出圖像中的主要目標,而且包含更多信息,從視覺上更加接近原圖像,其中IDA算法的效果最為顯著。例如:IDA、PSO、SCA、BA、HSO和ALO算法對Giraffe的6閾值分割結果分別為0.677 8、0.677 3、0.670 0、0.669 1、0.676 0、0.670 0;對Weasel的10閾值分割結果分別為0.902 1、0.888 0、0.892 1、0.867 3、0.864 4、0.889 5。再次表現出基于IDA算法的多閾值圖像分割可以獲得與原圖像更加相似的圖像,能很好地完成圖像分割的任務。
最后對各算法的最優適應度值加以分析:由表5可知,本文算法在這6種算法中所獲得的值最大。適應度函數值表示的是圖像分成的若干個部分間的類間方差,最優適應度值越大,圖像分割的質量也就越高,抗噪性也會不斷提高。例如,IDA、PSO、SCA、BA、HSO和ALO算法對Bridge圖像進行4閾值分割的最優適應度函數值分別為8 287.094 2、8 286.998 1、8 281.841 7、8 286.150 4、8 286.328 3、8 287.049 0。雖然ALO算法在閾值個數較少時,與IDA算法差異很小,獲得的圖像分割質量較好,但隨著閾值個數的增加,ALO易陷于局部最優,影響圖像分割的效果。這說明改進后的蜻蜓算法的尋優能力明顯提升,能夠有效地跳出局部最優,更穩定快速地收斂于全局最優解,從而獲得理想分割閾值。
由表6可知,對于同一幅待分割的圖像,在設置相同的閾值個數時,本文算法運行時間最短,SCA算法所消耗的時間略高于IDA,ALO算法的運行時間最長。隨著閾值個數的增加,各算法的運行都在不斷增加,但IDA算法仍具有一定優勢,說明本文算法可以有效提高效率,能夠較快地完成多閾值彩色圖像分割任務。

表6 各算法運行時間
綜上所述,本文從圖像分割精度和運行時間這兩方面對6種優化算法的性能進行對比分析,SCA算法的運行時間雖然和IDA算法差距較小,但其分割精度并不理想;ALO算法雖然可以獲得精度較高的分割圖像,但其運行時間不占優勢。本文提出的IDA算法的優越性在于不僅提高了多閾值圖像分割的質量,而且算法的運行效率也顯著提高,從而驗證了IDA算法在彩色圖像分割問題中的有效性和正確性,能夠勝任復雜圖像的處理任務。
通過引入混沌初始化和反向學習策略,本文提出了一種基于改進蜻蜓算法的多閾值彩色圖像分割技術,以類間方差函數作為IDA算法的適應度函數,利用蜻蜓種群的兩種行為:覓食行為和遷徙行為來快速搜尋圖像多閾值分割時的最佳閾值。實驗結果表明,對同一待分割的圖像,在設置相同的閾值分割個數時,IDA算法與其他5種算法相比,在全局搜索和快速收斂能力、圖像分割精度、運行時間等方面都表現出顯著的優越性。此次實驗隨機地從伯克利圖庫中隨機選取6幅圖像,可以看出本文算法對不同類型的彩色圖像能夠達到實時性處理與分析的要求,具有很好的實用價值。