于國(guó)慶,韓芃芃
(河北科技大學(xué)信息科學(xué)與工程學(xué)院,河北 石家莊 050000)
隨著科技迅猛的發(fā)展,計(jì)算機(jī)視覺(jué)技術(shù)應(yīng)用更加普遍,廣泛的應(yīng)用于生產(chǎn)控制系統(tǒng)中。計(jì)算機(jī)視覺(jué)技術(shù)中的圖像分割技術(shù)也受到人們的關(guān)注。圖像分割技術(shù)可以把一幅圖像中需要的部分通過(guò)計(jì)算分割出來(lái),并做進(jìn)一步的數(shù)據(jù)處理。目前,圖像分割技術(shù)可分為閾值分割方法、區(qū)域分割方法和聚類分割方法等,其中經(jīng)常用到的方法是閾值分割法,圖像閾值分割是在圖像不同灰度級(jí)中通過(guò)特定的閾值分離出前景目標(biāo)和背景的過(guò)程,假定某圖像的一維直方圖上呈現(xiàn)明顯的兩類,通過(guò)特定準(zhǔn)則來(lái)計(jì)算圖像的理想分割閾值,最終分離出前景目標(biāo)與背景環(huán)境[1]。選擇的閾值越恰當(dāng),分割出的感興趣區(qū)域就越精確,越接近人眼的主觀視覺(jué)標(biāo)準(zhǔn)。閾值分割方法主要有最大類間方差方法、最大熵值方法和模糊熵值方法[2,3]。最大類間差法因方法簡(jiǎn)單、效果好經(jīng)常被用于圖像分割。但是傳統(tǒng)的二維OTSU方法,通過(guò)窮舉或者迭代計(jì)算出最佳閾值,這種方法計(jì)算量較大,對(duì)二維OTSU中的最優(yōu)閾值計(jì)算時(shí),會(huì)導(dǎo)致分割的圖像精度不高,分割效果欠佳,實(shí)時(shí)性也會(huì)不太好[4-7]。
為了減少計(jì)算時(shí)間,降低噪聲干擾,提升分割精度。文獻(xiàn)[8]使用粒子群算法尋找最優(yōu)二維閾值,取得較為理想分割結(jié)果,同時(shí)大大減少了計(jì)算量。文獻(xiàn)[9]將遺傳算法和粒子群算法結(jié)合來(lái)共同優(yōu)化二維OTSU的閾值,增強(qiáng)粒子全局搜索能力,提高了魯棒性和適應(yīng)性。文獻(xiàn)[10]提出了一種基于ABCPSO優(yōu)化的閾值圖像分割算法,將類間差法和最大熵函數(shù)作為需要優(yōu)化的目標(biāo)函數(shù),可以得到良好的分割效果,但是方法復(fù)雜用時(shí)較長(zhǎng),實(shí)時(shí)性欠佳。
而本文依據(jù)蝙蝠算法擁有突出的局部?jī)?yōu)化能力,粒子群算法擁有不錯(cuò)的全局優(yōu)化能力,把兩者特點(diǎn)相結(jié)合,使得能在各個(gè)粒子周圍產(chǎn)生擾動(dòng),強(qiáng)化了粒子群算法在全局尋優(yōu)能力,彌補(bǔ)了粒子群在局部搜索能力弱的缺點(diǎn)[11-21]。并能在迭代后期進(jìn)行持續(xù)不斷的尋優(yōu),得到較高的收斂精度。將這種尋優(yōu)算法對(duì)二維OTSU的閾值進(jìn)行優(yōu)化,可以得到較為精準(zhǔn)的分割效果。
設(shè)f(x,y)(1≤x≤M,≤y≤N)是大小為M×N的圖片,其中灰度等級(jí)為L(zhǎng)。在每個(gè)像素點(diǎn)處,計(jì)算n×n鄰域的平均灰度值,可以得到均值灰度圖像g(x,y)。設(shè)二元組(i,j)出現(xiàn)的頻數(shù)是rij,概率分布密度為
(1)
i=1,2…,L,j=1,2,…,L
并且概率分布密度總和為
(2)
假設(shè)二維直方圖中可以分為兩類,C0是前景目標(biāo),C1是背景環(huán)境。具有兩個(gè)不同的概率密度,設(shè)閾值為(s,t)那么出現(xiàn)的概率分別為
(3)
(4)
兩類對(duì)應(yīng)的均值向量為
(5)
(6)
二維直方圖全圖均值為
(7)
圖像的直方圖分布是一個(gè)L×L的二維圖像,如圖1。
圖1 二維直方圖
由于遠(yuǎn)離對(duì)角線方向的值約等于零,有ω0+ω1≈1,μT≈ω0μ0+ω1μ1,所以可得類間方差矩陣為
(8)
選擇得最佳閾值向量為(s*,t*),所以
(s*,t*)=arg maxtr[QB(s,t)]
(9)
通過(guò)蝙蝠粒子群算法在二維閾值平面區(qū)域中搜索最大s,t的值,得到最優(yōu)的二維OTSU閾值分割向量值。
粒子群優(yōu)化算法(PSO)是在1995年Eberhart和Kennedy提出來(lái)的[22]。PSO算法擁有全局尋優(yōu)能力強(qiáng)、簡(jiǎn)單、適應(yīng)性好等特點(diǎn),經(jīng)常使用在參數(shù)優(yōu)化,多任務(wù)協(xié)調(diào)等方面。
在每一步粒子群優(yōu)化過(guò)程中,根據(jù)相應(yīng)的公式分別改變每個(gè)粒子的速度和位置,公式如式(10)和式(11)所示
vid(k+1)=w×vid+c1×rand( )×(pid-xid)
+c2×rand( )×(pgd-xid)
(10)
xid(k+1)=xid(k)+vid(k+1),d=1,…,D
(11)
慣性權(quán)重w∈[0,1],c1和c2是一個(gè)常數(shù),rand()是一個(gè)在[0 1]隨機(jī)分布的數(shù)值,vid是當(dāng)前第i個(gè)粒子在d維的速度。xid(k)是第k代第i個(gè)粒子第d維的位置。pid是局部最優(yōu)值,pgd是全局最優(yōu)值。整個(gè)公式通過(guò)不斷迭代實(shí)現(xiàn)仿生運(yùn)動(dòng)。
在2010年由英國(guó)劍橋大學(xué)Yang提出的蝙蝠算法[23,24]。它模仿了微型蝙蝠的捕食過(guò)程,每只微型蝙蝠都有一個(gè)恒定的頻率,通常在25kHz到150kHz之間,每次超聲波爆發(fā)通常持續(xù)5到20毫秒。而微型蝙蝠每秒鐘發(fā)出數(shù)十次的聲音爆發(fā)。當(dāng)它們靠近獵物時(shí),脈沖發(fā)射的速度可以加快到每秒200次脈沖。同時(shí)聲波的響度也在不斷的變小,這樣可以悄無(wú)聲息的接近獵物。
fi=fmin+(fmax-fmin)β
(12)
(13)
(14)
對(duì)于局部搜索部分,一旦在當(dāng)前的全局位置中選擇了一個(gè)最佳位置,每個(gè)蝙蝠會(huì)在最佳位置周圍隨機(jī)游走,根據(jù)的更新公式如式(15)
Xnew=Xold+εAt
(15)
在ε∈(-1,1)是一個(gè)隨機(jī)數(shù)值,而At是這個(gè)時(shí)候是全部蝙蝠的均值響度的一步。Xold是最佳位置,Xnew是最新游走的位置。
當(dāng)蝙蝠找到獵物后,就是適當(dāng)?shù)慕档晚懚龋敲}沖發(fā)射的速度會(huì)加快。隨著不斷的迭代,相應(yīng)地更新響度Ai和速率ri根據(jù)式(16)和(17)。
(16)
(17)
對(duì)于任何0<α<1和γ>0:
(18)
粒子群尋優(yōu)是在一塊區(qū)域內(nèi)搜索,通過(guò)在平面內(nèi)隨機(jī)生成的眾多粒子,運(yùn)動(dòng)的同時(shí)改變每個(gè)粒子的位置。每一步運(yùn)動(dòng)迭代中,粒子個(gè)體通過(guò)互相比較當(dāng)前各自位置來(lái)確定最佳適應(yīng)度值。但是粒子運(yùn)動(dòng)軌跡是趨向于全局最優(yōu)位置的點(diǎn)線運(yùn)動(dòng),每個(gè)粒子不能很好的在自身周圍范圍內(nèi)搜索,同時(shí),為了能覆蓋整個(gè)平面,只能增加的粒子,但是運(yùn)動(dòng)都是點(diǎn)線運(yùn)動(dòng),使得粒子在平面內(nèi)不能較好的完成最優(yōu)值搜索。
蝙蝠算法模擬了聲波定位原理,有較好的局部尋優(yōu)能力。在每個(gè)粒子周圍隨機(jī)生成多只蝙蝠,使得蝙蝠在以單個(gè)粒子為中心的局部區(qū)域內(nèi)搜索最優(yōu)值,在一定的半徑范圍內(nèi)多只蝙蝠之間通過(guò)信息交互,搜索以粒子為中心的周圍最優(yōu)值。蝙蝠群找到最優(yōu)值后將信息傳遞給中心粒子,粒子本身更新當(dāng)前最優(yōu)值。在某步中粒子群和蝙蝠群的分布,如圖2。
圖2 粒子個(gè)體和蝙蝠個(gè)體結(jié)構(gòu)圖
從圖中可以出蝙蝠是以特定粒子為中心,并且在粒子周圍區(qū)域內(nèi)進(jìn)行搜索,使得粒子獲得最優(yōu)值的方式不再是運(yùn)動(dòng)軌跡上的單純比較,而是以粒子為中心的圓形區(qū)域的搜索。
在粒子群的每個(gè)粒子周圍使用蝙蝠算法進(jìn)行搜索,每當(dāng)粒子移動(dòng)一步,蝙蝠算法就會(huì)在以粒子為中心的周圍區(qū)域搜索是否有最優(yōu)值,區(qū)域最優(yōu)值的搜索是通過(guò)蝙蝠算法在局部搜索實(shí)現(xiàn)的。蝙蝠算法會(huì)使蝙蝠個(gè)體在一定區(qū)域內(nèi)產(chǎn)生超聲波,進(jìn)行最優(yōu)值的搜尋,從而實(shí)現(xiàn)有效的局部搜索,并將局部最優(yōu)值信息傳遞給中心粒子。同時(shí)粒子群算法也會(huì)帶動(dòng)整個(gè)粒子種群趨向于全局最優(yōu)位置。通過(guò)這種方法實(shí)現(xiàn)包含蝙蝠算法的粒子群算法,并實(shí)現(xiàn)兩種算法的協(xié)同尋優(yōu),即利用了蝙蝠算法較強(qiáng)的局部?jī)?yōu)化能力,又利用了粒子群較強(qiáng)的全局優(yōu)化能力,實(shí)現(xiàn)兩種算法特點(diǎn)的互補(bǔ)利用,使得本方法不容易陷入局部最優(yōu)值,同時(shí)加快了收斂速度,提高收斂精度。
單純的使用粒子群優(yōu)化算法過(guò)程中會(huì)存在問(wèn)題,如算法在迭代過(guò)程中容易得到局部極值不是全局極值,前期收斂速度過(guò)快。單純采用粒子群算法優(yōu)化閾值參數(shù),會(huì)造成了收斂精度低,遇到復(fù)雜圖像,特別是在多峰值圖像中,易陷入局部極值,造成圖像分割準(zhǔn)確率下降。蝙蝠算法利用回聲定位原理能夠在局部區(qū)域中精準(zhǔn)的尋找最優(yōu)值,能在局部小范圍內(nèi)進(jìn)行全面搜索,將蝙蝠算法引入到粒子群算法中,可以彌補(bǔ)粒子群?jiǎn)蝹€(gè)粒子小范圍搜索能力較弱的缺點(diǎn)。
通過(guò)蝙蝠算法強(qiáng)化了粒子群在局部值附近的優(yōu)化能力,而粒子群優(yōu)化算法本身就有擁有較好的全局優(yōu)化能力,蝙蝠算法將尋得的最優(yōu)值信息共享給粒子群種群,實(shí)現(xiàn)協(xié)同尋優(yōu)。使用本文方法加強(qiáng)了兩種算法的信息共享,強(qiáng)化了蝙蝠粒子群的優(yōu)化能力。采用蝙蝠粒子群方法可以在二維L*L平面中對(duì)OTSU的閾值s,t進(jìn)行搜索。建立適應(yīng)度函數(shù),得到最優(yōu)s,t值,使得分割的圖像精準(zhǔn)度較高。
粒子群與蝙蝠算法優(yōu)化二維OTSU閾值實(shí)現(xiàn)步驟如下:
1)構(gòu)建二維OTSU閾值優(yōu)化函數(shù),把二維類間差函數(shù)作為適應(yīng)度函數(shù);
2)初始化粒子群種群和蝙蝠種群;
3)將粒子群算法用來(lái)優(yōu)化適應(yīng)度函數(shù)值,得到它的初始全局最優(yōu)pgd和局部最優(yōu)pid;
5)在產(chǎn)生局部蝙蝠值中尋找局部最優(yōu)解,然后計(jì)算其適應(yīng)度值;
7)將當(dāng)前最優(yōu)蝙蝠位置替代粒子局部最優(yōu)值的位置,當(dāng)前最優(yōu)解值替代局部最優(yōu)解;
8)按式(10)(11)更新粒子種群當(dāng)前的速度和位置;
9)依次迭代3)-8)的步驟過(guò)程,在L*L平面內(nèi)尋找最符合適應(yīng)度函數(shù)的s,t值;
10)將尋得最優(yōu)的二維OTSU閾值用于分割圖像的前景目標(biāo)和背景目標(biāo)。評(píng)價(jià)被分割圖像的效果。
蝙蝠粒子群二維OTSU流程圖如圖3。
圖3 流程圖
為了驗(yàn)證本文算法分割圖像的精準(zhǔn)度和復(fù)雜多峰圖像的處理能力。本文方法分別與粒子群二維OTSU閾值分割,文獻(xiàn)[9]引入遺傳算法的粒子群算法的OTSU閾值分割進(jìn)行實(shí)驗(yàn)對(duì)比。在MATLAB的R2018b版本,Inter I5-4200H CPU 3.4GHz,12GB,Windows10 64位系統(tǒng)平臺(tái)上運(yùn)行,評(píng)估本文方法的有效性。
本方法采用粒子種群為20,w是權(quán)重開始為0.95,隨著迭代次數(shù)得增加,最后降為0.4,通過(guò)控制慣性權(quán)重使得粒子群在開始擁有較強(qiáng)的全局優(yōu)化效果,在后期擁有很強(qiáng)的局部?jī)?yōu)化效果。最終迭代次數(shù)為100。在局部搜索的時(shí)候?qū)Ⅱ鹚惴尤?,在每個(gè)粒子周圍生成5個(gè)蝙蝠,每個(gè)蝙蝠通過(guò)超聲波定位,在粒子周圍搜索最優(yōu)值,將找到的最優(yōu)值傳遞給粒子,粒子群在全局進(jìn)行尋優(yōu)。粒子的活動(dòng)范圍是灰度級(jí)L,即蝙蝠粒子群尋優(yōu)的范圍L*L。粒子群的維度為s,t兩維度。通過(guò)蝙蝠粒子群算法尋找二維OTSU適應(yīng)度函數(shù)的最大值。將f(x,y)>s且g(x,y)>t的像素點(diǎn)定義為目標(biāo),其他像素定義為背景環(huán)境。
實(shí)驗(yàn)中使用圖像football,gantrycrane,rice的經(jīng)典圖像。他們分類代表著在二維OTSU搜索閾值時(shí)的單峰圖像、雙峰圖像和多峰圖像,如圖4和圖5。
圖4 原圖
圖5 二維立體圖
使用橄欖球圖、龍門吊圖、稻米圖像分別進(jìn)行實(shí)驗(yàn),可以在單峰、雙峰、多峰圖像上進(jìn)行最佳閾值搜索計(jì)算。通過(guò)對(duì)比觀察可以看出橄欖球的分割圖中,本文方法和PSO的OTSU方法分割效果相同,分割出的圖像較完整,而GAPSO的OTSU在圈出的區(qū)域明顯不同其它兩種方法。在龍門吊的分割圖像中,三張圖片存在明顯不同,特別是在圈出區(qū)域,本文方法相較于其它兩種方法精度細(xì)節(jié)部分要更好。從稻米圖片中可以看出,本文算法分割的效果明顯好于PSO的OTSU方法。本文算法在處理多峰圖片時(shí),能更好的跳出局部極值,優(yōu)化得到的二維閾值更精準(zhǔn),圖像細(xì)節(jié)部分處理的更加完善,提高了分割圖像的精度。
本文方法在保證分割時(shí)效的同時(shí),大大提高了分割圖像的準(zhǔn)確率,適應(yīng)在高精度分割圖像上的需求。所以本文方法實(shí)時(shí)性好,良好的分割圖像精度。分割效果如圖6。
圖6 分割效果對(duì)比圖
實(shí)驗(yàn)以適應(yīng)度值作為圖像分割效果的標(biāo)準(zhǔn),當(dāng)適應(yīng)度值越大時(shí),分割效果越好。實(shí)驗(yàn)數(shù)據(jù)對(duì)比如表1。從表中可以看出本文算法在處理多峰的稻米圖像時(shí)可以很好的跳出閾值局部最優(yōu)值,達(dá)到更高的適應(yīng)度值,較精準(zhǔn)的分割出圖像。而PSO的OTSU分割圖像時(shí),較容易陷入局部極值,達(dá)到的適應(yīng)度值相比于本文方法低,得到的閾值也相對(duì)不太精準(zhǔn)。GAPSO的OTSU方法在分割圖像時(shí),適應(yīng)度值相對(duì)較高,但是沒(méi)有本文方法更加適合處理多峰圖像。本文方法在處理多峰圖像的稻米圖像時(shí)更容易跳出局部最優(yōu),得到更高的適應(yīng)度值。在龍門吊圖像雙峰圖像的閾值分割中,本文方法依然有很高適應(yīng)度值,相比與其它兩種方法分割的圖像有更高的準(zhǔn)確性。對(duì)于橄欖球圖像,本文方法和PSO的OTSU方法適應(yīng)度值相同,在單峰問(wèn)題處理上效果相差不多。但是本文方法依然比GAPSO的OTSU的適應(yīng)度值要高。驗(yàn)證了本文方法更適合處理復(fù)雜的多峰圖像并更易跳出局部極值,趨近于更高的適應(yīng)度值,分割的圖像也會(huì)更精準(zhǔn)。
表1 對(duì)比數(shù)據(jù)
從橄欖球適應(yīng)度圖中可以看出時(shí),本文方法在15代以后完全收斂,而GAPSO在30代左右才開始收斂,PSO在40代左右才完全收斂。本文算法相比于GAPSO的OTSU方法和PSO的OTSU方法更快的完成了收斂,且不易陷入局部最優(yōu)值,驗(yàn)證了本文方法在閾值搜索時(shí)有更快的收斂速度,實(shí)時(shí)性更好。
圖7 橄欖球適應(yīng)度圖
從龍門吊適應(yīng)度圖中可以看出,本文算法在第8代左右就趨近于收斂,而GAPSO的OTSU方法在第25代左右收斂,PSO的OTSU方法在60代左右才完全收斂,所以本文圖像在處理OTSU閾值的雙峰圖像時(shí),在保證精度的前提下依然有更快的收斂速度。
本文方法在收斂速度方面要好于其它兩種方法。在圖8中可以看出,PSO的OTSU方法的適應(yīng)度收斂曲線存在較多的適應(yīng)度保持狀態(tài),這也驗(yàn)證了粒子群尋優(yōu)易陷入局部最優(yōu)值的特點(diǎn),而且要經(jīng)過(guò)多次迭代后才能跳出局部區(qū)域,耗費(fèi)了部分時(shí)間。而本文的方法就很容易跳出局部最優(yōu)值,并迅速的完成收斂。驗(yàn)證了蝙蝠粒子群更加適應(yīng)于雙峰等復(fù)雜圖像中尋優(yōu)。
圖8 龍門吊適應(yīng)度圖
圖9 稻米適應(yīng)度圖
由稻米圖像的適應(yīng)度圖可以看出本文算法在第10代左右就收斂,而GAPSO的OTSU方法在第20代左右完全收斂,PSO的OTUS方法在第45代左右收斂。本文方法的收斂速度要快于其它兩者。這也充分驗(yàn)證了本文在處理二維OTSU的多峰閾值圖像時(shí),在完成快速收斂中,依然可以保證良好的分割精度,同時(shí),也驗(yàn)證了本文方法不易陷入局部最優(yōu)值,實(shí)時(shí)性較好的特點(diǎn)。
主觀評(píng)價(jià)很難通過(guò)視覺(jué)觀察到圖片質(zhì)量的好壞,峰值信噪比(PSNR)是客觀評(píng)價(jià)圖像分割效果的方法[25],本文方法通過(guò)與PSO的OTSU方法和GAPSO的OTSU方法進(jìn)行對(duì)比。PSNR用于確定分割后圖像的質(zhì)量,并將分割后的圖像與原始圖像進(jìn)行比較,以參考分割后的圖像中有多少原始數(shù)據(jù)被傳送到分割后的圖像中。因此,更大的PSNR,可以得到更好的信號(hào)質(zhì)量。為了確定圖像的PSNR,使用式(19)中的圖像數(shù)據(jù)計(jì)算均方誤差,然后用式(20)計(jì)算分貝單位的PSNR。如下公式。
(19)
(20)
其中x和y分別為灰度原始圖像f(x,y)和分割圖像fs(x,y)的行數(shù)和列數(shù)。
計(jì)算得到分割圖像質(zhì)量如表2。
表2 圖像質(zhì)量
如表中所示數(shù)值越大,峰值信噪比越大,也說(shuō)明保留下來(lái)的信息越多。通過(guò)對(duì)比發(fā)現(xiàn),本文方法在分割橄欖球圖時(shí)的峰值信噪比與PSO的OTSU方法的數(shù)值相同,在單峰閾值上表現(xiàn)相同,而GAPSO的方法的峰值信號(hào)比較小,分割圖像的質(zhì)量效果欠佳。在龍門吊圖像中,本文方法的峰值信噪比均高于前兩種方法,得到了較好分割圖片的質(zhì)量。在稻米圖像中,本文方法的分割效果依然要優(yōu)于前兩種方法,保留較多原始圖像像素,圖片質(zhì)量也較好,這也驗(yàn)證了本文方法在分割圖像時(shí),分割精度較高,可以比PSO的OTSU方法和GAPSO的OTSU方法更好的分割圖像,得到的分割圖像的質(zhì)量更好。
本文提出的使用蝙蝠粒子群算法優(yōu)化二維OTSU的閾值,采用粒子群優(yōu)化方法進(jìn)行全局搜索,采用蝙蝠算法在每個(gè)粒子周圍進(jìn)行局部強(qiáng)優(yōu)化,通過(guò)協(xié)同尋優(yōu),實(shí)現(xiàn)信息共享,改善了粒子群優(yōu)化算法局部?jī)?yōu)化效果較弱的情況,提高多峰閾值圖像的分割準(zhǔn)確率,得到質(zhì)量更好的分割后圖像。
通過(guò)實(shí)驗(yàn)可知基于蝙蝠粒子群優(yōu)化二維OTSU閾值,可以快速的收斂,處理圖像的實(shí)時(shí)性較好,特別是在多峰最優(yōu)閾值搜索時(shí)可以快速而準(zhǔn)確的收斂,同時(shí)達(dá)到較高的適應(yīng)度值。本文算法采用蝙蝠粒子群協(xié)同進(jìn)行尋優(yōu),通過(guò)生物啟發(fā)式式算法之間的信息交互實(shí)現(xiàn)對(duì)二維OTSU最優(yōu)閾值的搜索,達(dá)到較高的圖像分割精度,獲得較好的分割圖像質(zhì)量。本文算法有較好分割圖像的優(yōu)勢(shì),具有較廣的應(yīng)用前景。