梁遠(yuǎn)哲,馬 瑜,江 妍,王 原,馬 鼎,李 霞
(寧夏大學(xué) 物理與電子電氣工程學(xué)院,寧夏 銀川 750021)
圖像分割是計算機(jī)視覺的重要組成部分,其主要目的是從圖像中分離出需要的目標(biāo)區(qū)域,其中基于閾值的圖像分割應(yīng)用廣泛。最大類間方差法(Otsu)是一種閾值分割方法,根據(jù)灰度特性將圖像分為兩部分,類間方差最大值為閾值[1]。二維Otsu算法相較Otsu算法有著更好的分割效果[2]與抗噪性能[3]。申鉉京等[4]提出了一種基于時間復(fù)雜度的多閾值Otsu快速分割算法,提升了算法的計算效率,能夠較好地應(yīng)用于實(shí)時環(huán)境。
蝙蝠算法(bat algorithm,BA)是受蝙蝠覓食行為的啟發(fā)而提出的一種新型群體智能算法[5],近年來受到廣泛應(yīng)用。裴宇航等[6]提出一種動態(tài)調(diào)整慣性權(quán)重的自適應(yīng)蝙蝠算法,提升了尋優(yōu)性能。Vallikutti Sathananthavathi等[7]將蝙蝠算法應(yīng)用于視網(wǎng)膜血管圖像分割,對于血管的識別具有很高的靈敏度。
分?jǐn)?shù)階微積分作為一種數(shù)學(xué)模型近年來得到了廣泛的應(yīng)用。魏晶茹等[8]將分?jǐn)?shù)階微積分與粒子群算法結(jié)合來進(jìn)行圖像分割,提升了分割效果。Yashar Mousavi等[9]在螢火蟲算法中引入分?jǐn)?shù)階來處理混沌系統(tǒng)的參數(shù)估計問題,取得了可觀的實(shí)驗(yàn)結(jié)果。
針對蝙蝠算法在圖像分割中尋優(yōu)精度與收斂速度的問題,本文將分?jǐn)?shù)階微積分引入蝙蝠算法中的速度更新階段,提高其搜索能力。在蝙蝠算法的全局尋優(yōu)階段引入天牛須搜索算法(beetle antennae search,BAS)[10]以加快蝙蝠算法的收斂速度并結(jié)合二維Otsu算法獲取最佳分割閾值,提升了圖像分割精度與收斂速度。
日本學(xué)者大津在1979年提出了一種自適應(yīng)閾值分割算法,即為Otsu算法。其主要原理是通過圖像的灰度特性將圖像分成目標(biāo)與背景兩類,首先統(tǒng)計出在整幅圖像里灰度級中每個像素的個數(shù),計算圖像中所有像素點(diǎn)的概率分布,對于每一個灰度級,計算出該灰度級下目標(biāo)與背景的類間概率,通過目標(biāo)函數(shù)計算出目標(biāo)與背景的類間方差,類間方差越大說明構(gòu)成圖像兩部分的區(qū)別越大,因此類間方差越大則圖像分割效果越明顯。
二維Otsu算法是在Otsu算法的基礎(chǔ)上提出的,相較于Otsu算法,二維Otsu算法同時考慮到了像素灰度級分布和它們的灰度級與鄰域像素平均灰度級之差的分布,因此得到的閾值是一個二維矢量灰度-梯度。若將橫坐標(biāo)視為灰度,縱坐標(biāo)視為梯度,則形成了圖像的灰度-梯度二維直方圖。此時,概率集中分布在梯度值較小的區(qū)域,此區(qū)域?yàn)閳D像的背景與目標(biāo)區(qū)域,而圖像的噪聲、邊緣區(qū)域分布在梯度值相對較大的區(qū)域,這樣就實(shí)現(xiàn)了圖像目標(biāo)與背景的分離,減少了噪聲信息的干擾。
假設(shè)一幅大小為M×N的圖像,其灰度為i,梯度為j的像素nij出現(xiàn)的概率是
(1)
若分割圖像的閾值平均灰度為s,梯度為t,則閾值(s,t)將灰度圖像分成兩類,用B表示背景類、T表示目標(biāo)類。它們兩者的概率分布可表示為
(2)
其中,L表示圖像的灰度級數(shù)。用μB和μT表示背景類、目標(biāo)類的均值向量,μ表示所有像素的總均值向量,它們可表示為
(3)
(4)
(5)
離散度測度函數(shù)表示為
S(s,t)=PB×(μB-μ)×(μB-μ)T+
PT×(μT-μ)×(μT-μ)T
(6)
離散度測度的值代表目標(biāo)與背景兩類之間的差別,越大則目標(biāo)與背景兩類的差別越大,圖像分割效果越好。所以使離散度測度函數(shù)的值最大時的自變量(s*,t*)就是圖像的最佳分割閾值,表示為
tr(S(s*,t*))=Max(tr(S(s,t)))
(7)
蝙蝠算法啟發(fā)于蝙蝠覓食時的回聲定位能力。蝙蝠算法模擬自然界中蝙蝠利用超聲波對獵物進(jìn)行判斷與定位,從而逼近、捕獲獵物。參考文獻(xiàn)[6]可知因?yàn)轵鹚惴▋H含有頻率、速度、位置等參數(shù),所以相較于其它優(yōu)化算法結(jié)構(gòu)較為簡潔,在有效性與準(zhǔn)確性方面也有著優(yōu)勢。如今蝙蝠算法在各個領(lǐng)域中都有著廣泛的應(yīng)用。
在蝙蝠算法中,蝙蝠通過以下3個理想化的規(guī)則來進(jìn)行獵物捕獲。
所有蝙蝠都通過回聲定位法感知距離,并且蝙蝠能夠判斷出是否遇到所需的獵物。
每一只蝙蝠在位置x處以速度v隨機(jī)飛行,通過可變頻率f、固定波長λ、脈沖發(fā)射率R、音量A來尋找目標(biāo)獵物。蝙蝠通過自身與獵物的接近程度自動調(diào)節(jié)其發(fā)射頻率與脈沖發(fā)射率。
雖然有多種音量變換方式,但是在算法中假設(shè)音量均為正數(shù),其范圍屬于[Amin,Amax]。
fi=fmin+(fmax-fmin)β
(8)
(9)
(10)
式中:β∈[0,1]為服從均勻分布的隨機(jī)變量,x*為當(dāng)前找到的最優(yōu)解。
當(dāng)尋找出一個最優(yōu)解時,開始局部搜索階段,通過下式產(chǎn)生新的解
(11)
蝙蝠的脈沖發(fā)射率與音量的更新公式為
(12)
(13)
其中,常數(shù)γ>0,0<ξ<1。
雖然相較于其它群體智能算法,蝙蝠算法有著參數(shù)少,較為靈活和簡單等優(yōu)點(diǎn),但仍存在一些缺陷。經(jīng)過分析主要有以下兩點(diǎn)問題:
(1)從蝙蝠通過回聲定位來追尋獵物的機(jī)理和蝙蝠個體的更新方式可看出,蝙蝠算法中蝙蝠個體的探索能力很大程度上取決于速度,通過速度改變當(dāng)前蝙蝠的位置進(jìn)而影響到算法整體的優(yōu)化效果。而傳統(tǒng)蝙蝠算法的速度忽略了歷史速度的狀態(tài),缺乏對歷史的繼承,這導(dǎo)致算法的全局搜索過程不夠均衡,更新后的蝙蝠個體很容易被局部值吸引而陷入局部最優(yōu)。
(2)傳統(tǒng)蝙蝠算法在局部搜索階段過于依賴隨機(jī)選擇與概率分布來生成新的蝙蝠位置,隨機(jī)性會導(dǎo)致種群的多樣性受到影響,最后導(dǎo)致算法在后期最優(yōu)值附近花費(fèi)較多的時間。
分?jǐn)?shù)階微積分是傳統(tǒng)微分與積分的推廣[11],對歷史具有記憶性,能夠改善整數(shù)階微積分只與當(dāng)前狀態(tài)有關(guān)的局限性[12]。近年來分?jǐn)?shù)階微積分在信號處理、圖像處理、控制工程等領(lǐng)域得到了廣泛的應(yīng)用。分?jǐn)?shù)階微積分有多種定義,常用的G-L(Grumwald-Letniko)定義表達(dá)式為[13]
(14)
其離散表達(dá)式為[13]
(15)
天牛須搜索(beetle antennae search,BAS)是在2017年提出的一種新型仿生算法,具有很強(qiáng)的全局搜索能力。其原理為,天牛在覓食過程中通過左右兩個觸須感應(yīng)到的氣味強(qiáng)度來判斷食物的大致方位,若右邊觸須感應(yīng)到的氣味較強(qiáng)時則向右移動,反之則向左移動,移動一段距離后再次使用兩個觸須感應(yīng)氣味,直到移動到氣味最濃的位置即找到最優(yōu)解[14]。
天牛須搜索的數(shù)學(xué)描述為[14]:
(1)對于目標(biāo)函數(shù)為f的n維優(yōu)化問題,設(shè)天牛位置為S,左觸須Sl,右觸須Sr,左右觸須相隔d,步長為
step=c*d
(16)
在空間中天牛的朝向隨機(jī),因此左右觸須的方向可用n維隨機(jī)向量表示為
dir=rand(n,1)
(17)
(2)此時得到兩個觸須的位置
(18)
求出兩個觸須的適應(yīng)度fl和fr,比較兩者大小,天牛向適應(yīng)度大的方向移動,移動后的位置為
(19)
(3)求出天牛新位置的適應(yīng)度fs,更新步長和左右觸須的距離
step=eta*step
(20)
d=eta*d
(21)
其中,eta為步長與距離的衰減系數(shù),一般設(shè)為0.95。
(4)循環(huán)(2)、(3)兩步直至找到最優(yōu)解。
傳統(tǒng)的蝙蝠算法存在尋優(yōu)精度有限,在較高精度要求下收斂偏慢,易出現(xiàn)局部最優(yōu)等缺陷。為了提升傳統(tǒng)蝙蝠算法的尋優(yōu)能力,克服其在搜索過程中易陷入局部最優(yōu)的缺陷,本文將分?jǐn)?shù)階微積分與天牛須搜索融合到傳統(tǒng)蝙蝠算法中,提出一種分?jǐn)?shù)階混合蝙蝠算法(fractional hybrid bat algorithm,F(xiàn)HBA)。
2.4.1 分?jǐn)?shù)階優(yōu)化全局尋優(yōu)
在傳統(tǒng)蝙蝠算法的全局尋優(yōu)階段,基于分?jǐn)?shù)階微積分擁有描述事件的記憶和遺傳特性這一特點(diǎn),對蝙蝠的速度v求α階導(dǎo)數(shù),使用新的速度更新公式來更新其位置的值,這時蝙蝠速度與位置的值就會遺傳和繼承其歷史狀態(tài),使得全局搜索過程更加均衡。同時通過蝙蝠在尋優(yōu)過程中的速度與位置來自適應(yīng)調(diào)整導(dǎo)數(shù)的階次α。這樣能夠有效改善傳統(tǒng)蝙蝠算法出現(xiàn)局部最優(yōu)的問題,在圖像閾值分割中也可以取得良好的效果。先將式(9)改寫為
(22)
(23)
結(jié)合式(22),得到新的速度更新公式
(24)
為了使階次α能夠自適應(yīng)改變,本文從文獻(xiàn)[8]中引入進(jìn)化因子f,根據(jù)蝙蝠速度和位置來不斷調(diào)整分?jǐn)?shù)階次α,方法如下:
蝙蝠i與其它蝙蝠的平均距離為
(25)
上式N為蝙蝠的總數(shù),D代表空間維度。
決定蝙蝠當(dāng)前狀態(tài)的進(jìn)化因子f表示為
(26)
上式中dg是蝙蝠的全局最優(yōu)位置與其它蝙蝠距離的平均值,在所有dix中,最大值為dmax,最小值為dmin。由文獻(xiàn)[8]可知當(dāng)階次α∈[0.5,0.8]時,收斂速度普遍較快。因此階次α的動態(tài)調(diào)節(jié)方式為
α(f)=1/2e-0.47f∈[0.5,0.8]
(27)
2.4.2 天牛須搜索改進(jìn)局部尋優(yōu)
通過對傳統(tǒng)蝙蝠算法缺陷的分析可知,算法的局部尋優(yōu)階段是通過對當(dāng)前的最優(yōu)位置進(jìn)行隨機(jī)變化來產(chǎn)生新的蝙蝠個體,導(dǎo)致后期種群多樣性不足。
而天牛須搜索擁有較為優(yōu)秀的全局搜索能力,因此將其引入蝙蝠算法的局部更新階段,對傳統(tǒng)蝙蝠算法隨機(jī)產(chǎn)生的個體再次進(jìn)行更新,豐富種群的多樣性。在蝙蝠算法的局部搜索階段,當(dāng)蝙蝠的位置更新后,再將每一只蝙蝠視為天牛個體,并按照天牛須搜索進(jìn)行更新,計算更新后的適應(yīng)度并與更新前的適應(yīng)度比較,若更新后適應(yīng)度值更優(yōu),就進(jìn)行更新,否則不更新。通過這樣的方式更新群體與個體的最優(yōu)適應(yīng)度,可以使群體的多樣性得到完善,加快達(dá)到最佳收斂點(diǎn)的速度。
改進(jìn)后的局部更新為
(28)
2.4.3 算法改進(jìn)效果測試
為了驗(yàn)證對傳統(tǒng)蝙蝠算法的改進(jìn)效果,選擇常用的3個Benchmark測試函數(shù)對原始的蝙蝠算法(BA)和改進(jìn)后的分?jǐn)?shù)階混合蝙蝠算法(FHBA)進(jìn)行測試,3個測試函數(shù)如下:
(1)Griewank函數(shù)
(2)Ackley函數(shù)
a+exp(1),此函數(shù)的取值范圍x∈[-32.768,32.768],函數(shù)中a=20,b=0.2,c=2π,理論最優(yōu)適應(yīng)度值為0,在x=0處取得。
(3)Rastrigin函數(shù)
將函數(shù)維度d設(shè)置為10維,兩個算法的種群數(shù)為20,迭代次數(shù)1000次。Griewank函數(shù)的適應(yīng)度曲線如圖1所示。
圖1 Griewank函數(shù)適應(yīng)度曲線
Ackley函數(shù)的適應(yīng)度曲線如圖2所示。
圖2 Ackley函數(shù)適應(yīng)度曲線
Rastrigin函數(shù)的適應(yīng)度曲線如圖3所示。
圖3 Rastrigin函數(shù)適應(yīng)度曲線
由圖1可看出,原始的BA算法在前期收斂速度偏慢,在300次左右之后適應(yīng)度曲線平行于x軸,說明算法陷入了局部最優(yōu),并且在后期難以跳出局部最優(yōu)。在圖2中,原始BA算法在10次左右的迭代就出現(xiàn)了局部最優(yōu),在70次左右的迭代和650次迭代時,雖然有細(xì)微的變化,但也沒能夠跳出局部最優(yōu)。從圖3來看,原始BA算法在前10次迭代中收斂速度很快,但在10次至180次左右和之后都是水平線段,說明算法陷入了局部最優(yōu),并且需要多次迭代來跳出局部最優(yōu)。在3個函數(shù)的測試中,原始BA算法的尋優(yōu)精度有限,易出現(xiàn)局部最優(yōu)的問題。
在3個測試函數(shù)的適應(yīng)度值曲線中,相較于原始的BA算法,通過在全局尋優(yōu)中引入自適應(yīng)分?jǐn)?shù)階微積分,局部搜索中混合天牛須搜索的改進(jìn)后的FHBA算法跳出了局部最優(yōu),有效提升了尋優(yōu)精度。并且在圖1和圖3可看出改進(jìn)后的算法對收斂速度也相對更快。
原始蝙蝠優(yōu)化的二維Otsu圖像分割算法(BA-Otsu)存在分割精度低、收斂速度慢等問題,本文將改進(jìn)后的FHBA算法與Otsu算法相結(jié)合,將二維Otsu算法的離散度矩陣作為FHBA算法的尋優(yōu)函數(shù),提出基于分?jǐn)?shù)階混合蝙蝠算法的圖像分割(FHBA-Otsu),算法的具體步驟如下:
步驟1輸入待分割圖像,基于二維Otsu法生成目標(biāo)函數(shù);
步驟2初始化參數(shù)。種群數(shù)量N設(shè)為20,迭代次數(shù)Iter為100,蝙蝠位置xi,速度vi,音量Ai,脈沖發(fā)射率Ri,最小頻率fmin為0,最大頻率fmax為2,天牛須步長衰減系數(shù)eta設(shè)為0.95,左右觸須距離d為3;
步驟3將蝙蝠當(dāng)前的位置向量視為待尋優(yōu)的閾值,式(6)作為尋優(yōu)目標(biāo)函數(shù),將位置向量帶入目標(biāo)函數(shù)中計算出目標(biāo)函數(shù)值最大時蝙蝠的位置。
步驟4按式(8)更新頻率,式(24)更新蝙蝠速度;
步驟5若rand>Ri,由式(28)更新蝙蝠位置,由式(20)、式(21)更新天牛步長和兩觸須距離;
步驟6若rand 步驟7計算新位置的目標(biāo)函數(shù)值并與步驟3相比較,更新全局最優(yōu)位置; 步驟8判斷是否達(dá)到停止迭代的條件,達(dá)到則退出迭代,未達(dá)到則返回步驟4; 步驟9將輸出的最優(yōu)位置(s,t)作為分割閾值進(jìn)行二維Otsu圖像分割。 FHBA-Otsu算法流程如圖4所示。 圖4 FHBA-Otsu算法流程 為了驗(yàn)證本文算法在收斂速度及圖像分割精度方面的改進(jìn),同時確保分割算法的健壯性,本文分別采用人物圖像man(320×320)、醫(yī)學(xué)肺部圖像lung(512×512)及機(jī)場圖像airfield(1024×1024)這3種不同類型的圖像進(jìn)行實(shí)驗(yàn),并將本文提出的算法(FHBA-Otsu)與原始蝙蝠優(yōu)化二維Otsu算法(BA-Otsu)、文獻(xiàn)[8]提出的分?jǐn)?shù)階粒子群Otsu算法(FP-Otsu)進(jìn)行對比分析。實(shí)驗(yàn)的硬件環(huán)境采用Windows 10操作系統(tǒng),Intel Xeon E3-1230 V2處理器(3.3 GHz),16 GB內(nèi)存,實(shí)驗(yàn)的軟件環(huán)境為MatlabR2016b。 通過適應(yīng)度曲線完全收斂時的迭代次數(shù)來評價算法的收斂速度,收斂越快則速度越快。通過適應(yīng)度值、峰值信噪比(PSNR)和均方誤差(MSE)這3個指標(biāo)來評價圖像分割的精度。適應(yīng)度值即為離散度測度值,適應(yīng)度值越大分割效果越好。PSNR值越大,圖像的噪聲信息越低,說明分割圖像的抗噪性能更好,擁有更好的分割效果。MSE可理解為分割后的結(jié)果圖像與原圖像之間差異的期望[15],MSE的值越小,則圖像分割精度越高。 分割結(jié)果如圖5~圖7所示,首先對分割效果進(jìn)行視覺上的對比,其次對各算法收斂速度進(jìn)行對比,最后通過PSNR與MSE對3種算法進(jìn)行對比。可以看出,本文算法在上述評價指標(biāo)中均取得了良好的效果。 圖5 man圖像及其分割結(jié)果 圖6 lung圖像及其分割結(jié)果 圖7 airfield圖像及其分割結(jié)果 從圖像直觀效果上來看,對于man圖像的分割,BA-Otsu算法在人物胳膊、飾品、背景等區(qū)域分割過度,F(xiàn)P-Otsu算法在一些細(xì)節(jié)方面分割的不夠精確。相比較,本文算法保證了人物圖像細(xì)節(jié)部分的分割。對lung醫(yī)學(xué)圖像,BA-Otsu算法分割的器官組織不夠完整,F(xiàn)P-Otsu算法在一些微小細(xì)節(jié)上略有欠缺,本文算法分割出的器官組織結(jié)構(gòu)更加清晰完整。對于airfield機(jī)場圖像的分割,相較于其它兩種算法,本文算法保留了更多的細(xì)節(jié)。 3種算法分割3幅圖像的適應(yīng)度曲線如圖8~圖10所示。 圖8 man圖像適應(yīng)度曲線 圖9 lung圖像適應(yīng)度曲線 圖10 airfield圖像適應(yīng)度曲線 從圖8中可直觀地看出,在對man圖像的分割中,BA-Otsu算法在4次左右迭代后就陷入了局部最優(yōu),F(xiàn)P-Otsu算法在65次左右完全收斂,本文算法在10次左右完成收斂。 從圖9可看出,在lung圖像的分割中,BA-Otsu算法在80次左右收斂,F(xiàn)P-Otsu算法在75次左右收斂,本文算法經(jīng)過7次左右迭代完成收斂。 從圖10可看出,在airfield圖像的分割中,BA-Otsu算法在10次左右迭代后陷入局部最優(yōu),F(xiàn)P-Otsu算法經(jīng)過68次迭代后收斂,本文算法在10次左右完成收斂。 從適應(yīng)度曲線可看出,本文算法在克服了BA-Otsu算法易陷入局部最優(yōu)的同時,提升了尋優(yōu)的速度。 表1可看出,通過本文算法對3幅圖像分割的適應(yīng)度值均要高于另外兩種算法,說明本文算法的分割效果更好。 表1 3種算法適應(yīng)度值的對比 表2為3種算法分割3幅圖像的PSNR值,可看出本文算法的PSNR值高于其它兩種算法,說明分割后圖像的噪聲信息較少,抗噪性能更強(qiáng),因此本文算法在圖像分割時受噪聲影響較少,保證了分割后圖像的質(zhì)量。 表2 3種算法PSNR值的對比 表3為3種算法分割圖像的MSE值對比,從表中可看出,對于3幅圖像的分割,本文算法的MSE值均小于另外兩種算法,說明本文算法分割后的圖像精度相較另外兩種算法更具優(yōu)勢。 表3 3種算法MSE值的對比 從上述實(shí)驗(yàn)結(jié)果可看出,本文算法有效提升了圖像的分割精度。同時,本文算法在3幅不同背景、不同類型、不同復(fù)雜度、不同分辨率的圖像分割中均有著更好的分割精度與效果,說明本文算法不僅在單一類型的圖像分割上有著更佳的效果和更快的收斂速度,而是在3種常見類型圖像分割上都有著更加出色的表現(xiàn),因此本文算法在對常見類型的圖像分割上具有良好的健壯性。 為了改善原始蝙蝠算法存在的易陷入局部最優(yōu)、尋優(yōu)精度不高、在較高求解精度下收斂速度慢等缺點(diǎn),本文通過分?jǐn)?shù)階微積分、天牛須搜索的特性來優(yōu)化原始蝙蝠算法,利用分?jǐn)?shù)階微積分的歷史記憶性優(yōu)化蝙蝠的全局搜索過程,克服局部最優(yōu),提高其尋優(yōu)能力,在蝙蝠的局部更新階段引入天牛須搜索,彌補(bǔ)后期種群多樣性不足導(dǎo)致的后期收斂速度問題,同時結(jié)合二維Otsu算法尋找最佳分割閾值,進(jìn)行圖像分割。實(shí)驗(yàn)結(jié)果可看出,本文算法相較于原始的BA-Otsu算法和文獻(xiàn)[8]的算法提升了圖像分割的精度與效果,有著更快的收斂速度與良好的健壯性。4 實(shí)驗(yàn)結(jié)果與分析
4.1 分割效果對比
4.2 收斂速度對比
4.3 分割精度對比
4.4 分割算法健壯性分析
5 結(jié)束語