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