張 睿, 劉 冰
(長(zhǎng)春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 吉林 長(zhǎng)春 130012)
近年來,基于模式識(shí)別技術(shù)的智能系統(tǒng)已被廣泛應(yīng)用于目標(biāo)識(shí)別、人臉識(shí)別和計(jì)算機(jī)視覺等領(lǐng)域[1]。然而用于模式識(shí)別的圖像可能會(huì)被設(shè)備或環(huán)境的噪聲破壞,因此預(yù)處理階段在圖像處理過程中起著重要作用,而圖像分割則是這一階段的基本技術(shù)[1]。此技術(shù)根據(jù)對(duì)比度[3]、顏色[4]和亮度[5]將圖像分割為不同的部分。許多方法已經(jīng)實(shí)現(xiàn)了圖像分割,如區(qū)域提取[6]、聚類算法[7]、直方圖閾值[8]、邊緣檢測(cè)[9]和閾值分割[10]等。
在圖像分割任務(wù)中,閾值分割(TH)是一種常用的圖像分割方法,根據(jù)像素的強(qiáng)度等級(jí),并根據(jù)一個(gè)或多個(gè)閾值將像素分割成不同的組[11]。閾值分割不僅簡(jiǎn)單而且魯棒性好,可以處理有噪聲的圖像。根據(jù)圖像所需的閾值數(shù)目,閾值分割可分為兩類:雙閾值處理和多級(jí)閾值分割[12]。在雙閾值處理方法中,亮度值高于設(shè)定閾值的像素被標(biāo)記為前景對(duì)象,其余像素則都被劃分為背景對(duì)象[13]。而多級(jí)閾值分割(MTH)則使用多個(gè)閾值來分離代表圖像中包含的多個(gè)對(duì)象區(qū)域中的像素。對(duì)于現(xiàn)實(shí)生活中的圖像分割,最好的選擇是使用多級(jí)閾值法。閾值問題可以概括為在圖像上尋找最佳閾值。應(yīng)該注意的是,閾值點(diǎn)取決于圖像的直方圖[14],因此,每個(gè)圖像都有自己的一組最佳閾值。
多級(jí)閾值分割技術(shù)通過多種方法尋找最優(yōu)閾值,最常用的方法是分析圖像的直方圖。多級(jí)閾值分割具有一些挑戰(zhàn),例如確定閾值數(shù)量和執(zhí)行時(shí)間。當(dāng)閾值數(shù)目較少時(shí),經(jīng)典方法是合適的。但是,如果有大量的閾值,那么使用群體智能算法是一個(gè)好的辦法。例如,粒子群優(yōu)化(PSO)[15]、遺傳算法(GA)[16]、蟻群優(yōu)化(ACO)[17]、人工蜂群(ABC)[17]和Firey算法(FA)[17-18]。雖然這些方法在特定的圖像分割場(chǎng)景中是有效的,但是每種方法都有其不足之處。因此,保證算法魯棒性的一個(gè)有效方法是將這些方法混合在一起,使它們互相受益,同時(shí)避開單一算法的缺點(diǎn)。例如,研究人員提出一個(gè)混合模型FASSO[18-19],將FA和SSO算法結(jié)合起來,在多級(jí)圖像分割任務(wù)中對(duì)它們進(jìn)行評(píng)估,F(xiàn)ASSO算法節(jié)約了設(shè)備的計(jì)算時(shí)間,增強(qiáng)了SSO算法的搜索階段。另一種名為WOAPSO算法[20-21],使用whale優(yōu)化算法(WOA)和PSO分別并行地更新種群;而種群被分成兩部分,每個(gè)部分用其中一個(gè)算法更新,然后根據(jù)tent函數(shù)評(píng)估兩個(gè)新解的合并。將WOAPSO算法在多級(jí)閾值分割問題上進(jìn)行測(cè)試,其結(jié)果在PSNR和結(jié)構(gòu)相似性指數(shù)(SSIM)方面優(yōu)于其他算法。
針對(duì)前面描述的問題,研究嘗試使用進(jìn)化計(jì)算算法(ECA)作為新的解決方案。對(duì)于圖像分割,研究人員使用Otsu或Kapur機(jī)制作為目標(biāo)函數(shù),尋找最佳閾值。在這種情況下,已有研究人員為多級(jí)閾值引入了幾種ECA實(shí)現(xiàn)。這類方法的一些例子包括使用遺傳算法(GA)[17]、粒子群優(yōu)化(PSO)[22]、差分進(jìn)化(DE)[23]、布谷鳥搜索(CS)[15,24]、風(fēng)驅(qū)動(dòng)優(yōu)化(WDO)[25]、螢火蟲算法(FFA)[4]、類電磁優(yōu)化(EMO)[5]、社交蜘蛛優(yōu)化(SSO)[5]、花授粉算法(FPA)[5]和烏鴉搜索算法(CSA)[5,17]等。而正余弦算法(SCA)[7]是最近提出的ECA算法,其在圖像處理問題上的測(cè)試還鮮有報(bào)道。
SCA算法利用空間搜索和正余弦函數(shù)進(jìn)行空間優(yōu)化,考慮候選解決方案集的兩個(gè)元素。其中一個(gè)選定的元素會(huì)影響另一個(gè)元素的下一個(gè)位置。正弦和余弦函數(shù)用于使用一些變量計(jì)算新位置,這些變量允許在兩個(gè)數(shù)學(xué)運(yùn)算符(正弦或余弦)之間切換。SCA已經(jīng)在大量的基準(zhǔn)函數(shù)上進(jìn)行了測(cè)試,與類似方法相比顯示出良好的性能。
綜上所述,鑒于SCA還鮮有用于圖像處理問題,文中目的可以概括為:
1)介紹基于SCA結(jié)合空間上下文信息的多級(jí)閾值分割方法;
2)在圖像處理問題中,測(cè)試SCA算法的優(yōu)化性能,并驗(yàn)證其有效性。
使用SCA多級(jí)閾值分割方法是根據(jù)每個(gè)圖像的閾值數(shù)量生成多個(gè)最優(yōu)解來實(shí)現(xiàn)的,使用不同的運(yùn)算符來查找閾值的最佳配置。研究期望使用SCA算法結(jié)合圖像上下文信息為多閾值圖像分割提供新的解決方案。
Otsu算法(最大類間方差法)是由日本研究人員于1979年提出的一種自適應(yīng)計(jì)算二值分割閾值算法。在前景比較單一的圖像中,該算法可以不受亮度和對(duì)比度的影響,實(shí)現(xiàn)較好的分割效果,因此在現(xiàn)階段的圖像預(yù)處理工作中得到了廣泛應(yīng)用。其核心思想是按照需求將感興趣區(qū)域劃分為前景,其他區(qū)域劃為背景,前景和背景的類間方差最大處的閾值即為最優(yōu)閾值。
假設(shè)I表示一張包含K+1個(gè)類別前景的灰度圖像。如果想將圖像分為CK(K=1,2,…,K+1)個(gè)子類,那么有必要確認(rèn)K的閾值集合,用{t1,t2,…,tK}表示。進(jìn)而得到
C0={I(i,j)∈I|0≤I(i,j)≤t1-1},
C1={I(i,j)∈I|t1≤I(i,j)≤t2-1},
CK={I(i,j)∈I|tK≤I(i,j)≤L-1},
式中:I(i,j)----像素的灰度(i,j);
L----I內(nèi)不同灰度的數(shù)量。
多閾值法的目的是確定最佳閾值,該閾值通過最大化方程來確定,即Otsu-s函數(shù),其具體公式如下:
(1)
(2)
(3)
(4)
式中:Pi----第i灰度級(jí)的概率;
h(i)----第i灰度級(jí)的頻率;
φi----I的平均強(qiáng)度(t0=0,tK+1=L)。
文中用Otsu-s函數(shù)作為t函數(shù),用于執(zhí)行基于直方圖形狀的圖像閾值自動(dòng)分割。其工作是確定包含兩類像素(如背景和物體)圖像中的最佳閾值,以分離這些類別,并使類內(nèi)方差最小化,從而有效地將背景和對(duì)象分開。
正余弦算法(SCA)是一種元啟發(fā)式算法,它利用正弦和余弦的數(shù)學(xué)形式應(yīng)用于優(yōu)化問題。SCA通過生成各種隨機(jī)解來啟動(dòng)優(yōu)化過程,然后初始化迭代以獲得最佳解。以最佳解為目標(biāo)點(diǎn)。在繼續(xù)迭代過程的同時(shí),正弦和余弦范圍根據(jù)它們的數(shù)學(xué)形式進(jìn)行調(diào)整,以更好地利用搜索空間。如果滿足停止條件,則停止迭代。SCA的數(shù)學(xué)表達(dá)式
(5)
t----當(dāng)前迭代次數(shù);
n1,n2,n3----隨機(jī)數(shù);
Pk----第kth維度中的目標(biāo)點(diǎn);
n4----[0,1]區(qū)間內(nèi)的隨機(jī)數(shù)。
可以通過減小n1值來控制式中sin和cos的范圍。
首先對(duì)每一步的SCA函數(shù)進(jìn)行總結(jié),然后生成一個(gè)隨機(jī)種群的適應(yīng)度。該算法確定全局最優(yōu)解(目標(biāo)點(diǎn)),并基于目標(biāo)點(diǎn)更新其余總體。此外,為了強(qiáng)調(diào)搜索空間的利用,參數(shù)n1,n2,n3和n4值在每次迭代時(shí)都會(huì)更新。停止條件設(shè)置為最大迭代次數(shù)。SCA算法流程如圖1所示。
圖1 SCA算法優(yōu)化流程
采用三種常用方法來評(píng)價(jià)該算法的圖像分割性能。分別是Peak Signal-to-Noise Ratio (PSNR)、 Structural Similarity Index (SSIM)和運(yùn)行時(shí)間(CPU time)。
PNSR[17]是通過均方根誤差(RMSE)計(jì)算得到的,其計(jì)算公式為
(6)
均方根誤差(RMSE)計(jì)算公式為
(7)
式中:Org----原始圖像;
Seg----尺寸為M×Q的分割后圖像。
SSIM(Org,Seg)=
(8)
式中:μOrg、μSeg----兩幅圖像的平均強(qiáng)度;
σOrg、σSeg----兩幅圖像的標(biāo)準(zhǔn)差;
σOrg,Seg----原始圖像和分割圖像的協(xié)方差;
c1、c2----常數(shù)。
文中在6幅常用灰度圖像上對(duì)SCA優(yōu)化后的多閾值分割算法進(jìn)行了測(cè)試,測(cè)試圖像包括莉娜、獵人、狒狒、橋梁、輪船和辣椒。為了觀察該算法的有效性,實(shí)驗(yàn)中還使用了一幅單獨(dú)測(cè)試圖像(莉娜)。這些測(cè)試圖像是從USC-SIPI數(shù)據(jù)庫中收集的,該數(shù)據(jù)庫是南加利福尼亞大學(xué)公布的經(jīng)典圖像處理數(shù)據(jù)集。該圖庫包含很多彩色、灰度圖像,是一個(gè)經(jīng)典的圖庫。USC-SIPI數(shù)據(jù)庫經(jīng)典圖像如圖2所示。
圖2 用于測(cè)試的USC-SIPI數(shù)據(jù)庫經(jīng)典圖像
算法在一臺(tái)Intel Xeon(R) Gold 6148 CPU 2塊、256 GB RAM和NVIDIA Quadro P6000 GPU的PC上使用Matlab 2017a版本進(jìn)行編譯和測(cè)試。
在不同圖像中設(shè)定相同等級(jí)的閾值數(shù)量來測(cè)試經(jīng)過SCA算法優(yōu)化后的多閾值分割效果。三種不同閾值數(shù)量下各圖像分割結(jié)果的評(píng)價(jià)指標(biāo)參數(shù)見表1。
不同閾值數(shù)量下,測(cè)試圖像分割效果如圖3所示。
為了更豐富地展示SCA算法優(yōu)化后的多閾值圖像分割結(jié)果,研究以莉娜圖像為例,結(jié)合圖像的灰度直方圖展示不同閾值數(shù)量下的圖像分割效果。
展示多個(gè)閾值設(shè)定情況下的圖像分割結(jié)果如圖4所示。
表1 三個(gè)不同閾值數(shù)量下各測(cè)試圖像分割結(jié)果的評(píng)價(jià)指標(biāo)參數(shù)
(a) 閾值數(shù)量設(shè)定為4情況下測(cè)試圖像
(b) 閾值數(shù)量設(shè)定為5情況下測(cè)試圖像
(c) 閾值數(shù)量設(shè)定為6情況下測(cè)試圖像
(a1) 閾值數(shù)量=2(a2) 閾值數(shù)量=4(a3) 閾值數(shù)量=8(a4) 閾值數(shù)量=16(a5) 閾值數(shù)量=32
(b1) 閾值數(shù)量=2(b2) 閾值數(shù)量=4(b3) 閾值數(shù)量=8(b4) 閾值數(shù)量=16(b5) 閾值數(shù)量=32
(c1) 閾值數(shù)量=2(c2) 閾值數(shù)量=4(c3) 閾值數(shù)量=8(c4) 閾值數(shù)量=16(c5) 閾值數(shù)量=32
除此之外,研究統(tǒng)計(jì)了使用莉娜圖像設(shè)定不同閾值后輸出的最佳閾值數(shù)值,以及其對(duì)應(yīng)的類間方差值,見表2。
表2 莉娜圖像在不同閾值設(shè)定下輸出的最佳閾值及其對(duì)應(yīng)的類間方差
從圖3可以看出,SCA提供的解決方案在相同閾值設(shè)定情況下,對(duì)不同復(fù)雜程度圖像的分割結(jié)果存在顯著差異。獵人圖像在4~6的閾值設(shè)定情況下,分割結(jié)果要優(yōu)于其他5組圖像。想要從不同復(fù)雜程度的圖像中獲得優(yōu)秀的分割結(jié)果,仍需要嘗試不同的閾值設(shè)定。從圖4可以看出,SCA提供的解決方案并不是設(shè)定的閾值數(shù)量越多效果越好。在閾值數(shù)量分別為2,4,8,16,32的5組測(cè)試中,閾值數(shù)量小于16時(shí),圖像的分割效果逐步提升。在閾值數(shù)量設(shè)定為32后,分割結(jié)果明顯虛化,因?yàn)楫?dāng)閾值設(shè)定為32時(shí),得到的最佳閾值非常接近。這種情況會(huì)損害分割,因?yàn)橹挥泻苌俚膹?qiáng)度值被認(rèn)為會(huì)生成小的類。從這些結(jié)果可以得出,SCA算法在某些情況下無法在大量維度中找到最優(yōu)方案。
介紹了一種使用正弦和余弦函數(shù)來修改候選解位置的優(yōu)化算法在多級(jí)閾值圖像問題中的實(shí)現(xiàn)。文中在目標(biāo)函數(shù)Otsu上對(duì)SCA進(jìn)行了測(cè)試,以找出圖像分割的最佳閾值。與其他類似方法不同,本研究還考慮圖像的空間上下文信息來選擇閾值。這種方法類似圖像的能量曲線,它具有與直方圖相似的特性,但也包含了每個(gè)像素的鄰域信息。
提出的基于SCA的閾值分割方法已經(jīng)在一組基準(zhǔn)圖像上進(jìn)行了測(cè)試。此外,考慮到SCA是比較新穎的方法,在結(jié)果部分設(shè)計(jì)兩組實(shí)驗(yàn)進(jìn)行了比較?;诮y(tǒng)計(jì)分析、收斂行為分析和性能指數(shù)分析的實(shí)驗(yàn)結(jié)果表明,SCA算法可以完全勝任研究中提到的多級(jí)閾值圖像分割任務(wù)。證明該算法在本研究問題中的有效性、準(zhǔn)確性和魯棒性。