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