本發(fā)明屬于圖像處理技術領域,更進一步涉及一種對多閾值圖像的分割方法,可用于計算機視覺分析中。
背景技術:
多閾值圖像分割技術是把圖像劃分成若干個有意義的區(qū)域,保證后續(xù)工作的有效進行,是圖像處理到圖像分析的重要步驟。其中多閾值圖像分割方法的主要思想就是將選取多個合適的閾值,將灰度值位于兩個閾值之間的像素點歸屬為同一類,使得分割后的選取的閾值能夠滿足kapur最大熵或者滿足otsu準則的公式,然后將分類后的結果映射回原來圖像的空間上,由此得到最后的圖像分割結果。
傳統(tǒng)的基于kapur最大熵準則的二維閾值圖像分割法需要通過窮舉法才能得出相應閾值,對于只需要將圖像分割為兩類的二維閾值分割法,窮舉法只需要遍歷所有的灰度值,選擇合適的單個閾值即可,但是隨著問題復雜度的增加,對于要將圖像分割為多個類別的多閾值圖像分割而言,需要求出對應的多個閾值,但是窮舉法的計算時間過長,同時也增加了模型的復雜度,因此采用傳統(tǒng)的窮舉法已經無法滿足復雜問題的需求。
人工魚群算法是群智能算法中的一種,群智能算法主要是基于對自然界生物生活行為的模仿優(yōu)化算法,群體是由眾多個體組成的,其中群體中每個個體均作為優(yōu)化問題的一種潛在解,首先通過對所有個體選取初始解,然后對當前的解進行不斷的更新,當搜索到最優(yōu)解或者達到最大搜索次數(shù)時結束。blum在文章"swarmintelligenceinoptimization."swarmintelligence.springerberlinheidelberg,2008.43-85.中提到群智能算法中群體中的每個個體功能簡單,但是通過個體之間的交互,整個群體能夠解決復雜的問題,同時與傳統(tǒng)的算法相比具有更強的魯棒性與高效性。yang在文章"swarmintelligencebasedalgorithms:acriticalanalysis."evolutionaryintelligence7.1(2014):17-28.中提到由于群智能算法中群體規(guī)模較大,因此初始值選擇的可能性更多,自由度更大。
群智能算法的優(yōu)點在于,群體中每個個體均可看作一組不同的可能解,整個群體具有很強的解的多樣性,然后通過群體的某種行為模式,對不同個體的解進行更新,在滿足目標函數(shù)的準則上,找出最優(yōu)的解。群智能算法不需要過多的先驗知識即可優(yōu)化復雜的問題。
因此越來越多的研究學者將群智能算法與多閾值圖像分割進行結合,例如,horng在論文"multilevelthresholdingselectionbasedontheartificialbeecolonyalgorithmforimagesegmentation."expertsystemswithapplications38.11(2011)中提出的通過將人工蜂群算法與多閾值圖像分割思想結合,其中人工蜂群算法的探索能力較強,但是開發(fā)能力較弱,因此在迭代過程中尋優(yōu)效率較差。sun在"grayscaleimagesegmentationusingmultilevelthresholdingandnature-inspiredalgorithms."hybridsoftcomputingforimagesegmentation.springerinternationalpublishing,2016.23-52.中提出將粒子群與重力搜索混合算法與多閾值圖像分割思想結合,其中粒子群與重力搜索混合算法具有較強的開發(fā)能力,但是探索能力較弱,因此尋優(yōu)效率只在迭代過程初期較強,難以保持長期的較高尋優(yōu)效率。依據(jù)kapur最大熵準則,實現(xiàn)多閾值圖像分割,與傳統(tǒng)的窮舉法相比較,基于群智能算法的多閾值圖像分割算法計算過程所需要的時間大大的縮短,但是由于基于群智能算法的多閾值圖像分割本身難以很好的平衡尋優(yōu)過程中的探索能力與開發(fā)能力,造成無法找到最佳的最優(yōu)閾值可能解的問題,導致求得的閾值分割后的圖像信息丟失嚴重,分割效果不夠好,進一步影響計算機視覺分析的過程。
技術實現(xiàn)要素:
本發(fā)明的目的在于克服上述現(xiàn)有技術的不足,提出一種基于交叉變異人工魚群算法的多閾值圖像分割方法,以減小圖像信息的丟失情況,同時提高圖像的分割效果。
本發(fā)明通過將基于交叉變異人工魚群算法與多閾值圖像分割思想進行結合,利用該算法具有能夠進一步平衡尋優(yōu)過程中的探索能力與開發(fā)能力的優(yōu)勢進行圖像分割。遵循kapur最大信息熵的準則,求解合適的閾值滿足適應度函數(shù)的最大值,適應度函數(shù)值越大,說明分割效果越好。首先將人工魚群中的每個個體分別代表一組不同閾值的可能解,根據(jù)適應度函數(shù)計算對應的適應度,再通過人工魚群算法中不同的行為模式進行迭代與更新,最終輸出搜索到的最大適應度對應的閾值組合解,再根據(jù)該閾值組合對圖像中的像素點進行分類,將圖像有效的分割。
為實現(xiàn)上述目的,本發(fā)明的技術方案如下:
(1)輸入灰度圖像,并提取灰度圖像中像素點的個數(shù)m×n,任意像素點的灰度值為dk,k∈[1,m×n],每個像素點的灰度值取值范圍為[0,l-1],其中m和n分別代表圖像中像素點的行和列,l表示為灰度值的級數(shù);
(2)設定分割圖像的閾值個數(shù)c,從所有灰度值中隨機選擇c個不同灰度作為
一組閾值的可能解,共挑選n組閾值可能解,其中每組閾值的可能解可以表示為
(3)取(2)中選擇的n組閾值可能解,將每組閾值可能解中的灰度值按照從小到大的順序重新排列,得到排序后的閾值可能解:
(4)獲取圖像的灰度直方圖h,其中所有像素點中灰度值為j的像素點個數(shù)hj,j∈[0,l-1];
(5)計算(4)中所有hj占(1)中像素點總數(shù)m×n的比例pj:pj=hj/(m×n),j∈[0,l-1];
(6)根據(jù)初始解
(7)根據(jù)(5)中的pj與(6)中ω0計算初始解中c+1個灰度值區(qū)間的熵h0;
(8)根據(jù)(7)中的初始解的熵h0,計算每個人工魚初始解
(9)迭代計算n個人工魚解:
取t表示當前迭代次數(shù),t∈[0,maxt],其中t=0代表開始迭代前的初始狀態(tài),設第i個人工魚第t次迭代的適應度為
(9a)令t=1;
(9b)選出第t-1次迭代適應度最高的n1個和適應度最低的n2個人工魚解
(9c)將(9b)中的n1個人工魚解
(9d)計算(9b)中的n2個人工魚解
(9e)根據(jù)所有更新后的
(9f)根據(jù)(5)中的pj與(9e)中ωt,計算第t次迭代c+1個灰度值區(qū)間的熵ht;
(9g)根據(jù)(9f)中得到的熵ht,計算第t次迭代的每個人工魚解
(9h)將(9g)中的所有適應度
(9i)比較t與maxt的大小,如果t<maxt,則令t=t+1,返回(9b),否則輸出f(xb)與xb,執(zhí)行步驟(10);
(10)用(9i)中輸出的具有最大適應度的一組閾值可能解xb計算所有像素點的灰度值d'k,將(1)中的dk更新為d'k,輸出圖像,k∈[1,m×n]。
本發(fā)明與現(xiàn)有技術相比具有以下優(yōu)點:
第一,由于本發(fā)明引入了交叉行為,針對群體中適應度最高的前n1個個體進行交叉,通過優(yōu)秀小規(guī)模群體之間的信息交互,使得更加優(yōu)良的可能解得以保留,提高了群體尋優(yōu)過程中的探索能力。
第二,由于本發(fā)明引入了變異行為,并針對群體中適應度最差的后n2個個體進行變異,能最大限度的誘導收斂搜索性能差的人工魚個體突變?yōu)樾碌目赡芙?,降低了劣勢解對群體尋優(yōu)結果的影響,增強了整個群體的多樣性,從而一定程度上提高了群體尋優(yōu)過程中的開發(fā)能力。
第三,本發(fā)明由于提高了群體的探索能力,增強了整個群體的多樣性與跳出局部極值點的能力,因此能夠更好的平衡尋優(yōu)過程中的探索能力與開發(fā)能力,因而能夠選擇出更加合適的閾值,使得分割后的圖像能夠克服丟失過多信息的缺點,實現(xiàn)更加高效的圖像分割結果。
附圖說明
圖1為本發(fā)明流程圖。
圖2為輸入的原始圖像;
圖3中為用本發(fā)明和現(xiàn)有方法對圖2的分割結果圖;
圖4為本發(fā)明和現(xiàn)有方法迭代過程中的適應度最大值曲線。
具體實施方式
下面結合附圖,對本發(fā)明作進一步的詳細描述。
本發(fā)明對原始人工魚群算法的尋優(yōu)能力進行改進,引入了交叉行為和變異行為,通過選取合適的灰度值作為分割閾值,令群體中每條人工魚個體代表一組分割閾值的可能解,通過一定的迭代次數(shù),基于交叉變異人工魚群算法對所有的可能解進行更新。在每次迭代過程中,每條人工魚通過選擇不同的行為模式更新自身信息,在達到最大迭代次數(shù)時,輸出搜索到的適應度函數(shù)最大值對應的最優(yōu)閾值解,最終根據(jù)最優(yōu)閾值解分割圖像。
參照圖1,對本發(fā)明實施步驟作進一步的詳細描述。
步驟1,輸入灰度圖像。
從圖庫里獲取4幅灰度圖像并輸入,在每幅灰度圖像中提取m×n個像素點,每個像素點的灰度值為dk,k∈[1,m×n],每個像素點的灰度值取值范圍為[0,l-1],其中m和n分別代表圖像中像素點的行和列,l表示為灰度值的級數(shù)。
步驟2:設定分割圖像的閾值個數(shù)c。
圖像分割的目標數(shù)取決于閾值個數(shù)c,c個閾值能將圖像分割為c+1個目標,因此分割前需要設定分割圖像的閾值個數(shù)c,其實現(xiàn)步驟如下:
2.1)從灰度值范圍內隨機選取c個灰度值作為c個閾值,再將這c個閾值作為一組閾值可能解;
2.2)選取n組閾值可能解,將每組閾值可能解表示為
步驟3:初始化人工魚群算法。
人工魚群算法是一種以群體為基礎的優(yōu)化算法,群體中的每個個體可以作為解決問
題的一種解,設群體中有n個人工魚,其中每個人工魚代表一組閾值可能解,人工魚初始化則表示獲取n個人工魚初始解,其過程如下:
取步驟2中選取的n組閾值可能解,將每組閾值可能解中的灰度值按照從小到大的順序重新排列,排序后的閾值可能解表示為:
將
步驟4:獲取圖像的灰度直方圖h。
根據(jù)步驟1中獲取的所有像素點和每個像素點的灰度值dk,得到灰度值j從0到l-1的所有hj,其中hj表示灰度值為j的像素點個數(shù),j∈[0,l-1];用hj作為縱軸,使用灰度值j作為橫軸,得到的示意圖即為灰度直方圖h。
步驟5:根據(jù)灰度值為j的像素點個數(shù),計算每個灰度值對應像素點個數(shù)所占像素總數(shù)的比例pj:pj=hj/(m×n),j∈[0,l-1],其中m×n表示像素點總數(shù),l表示灰度級數(shù)。
步驟6:根據(jù)pj計算灰度值區(qū)間的灰度值概率和ω0。
取步驟3中的n個人工魚初始解x0,將第i個人工魚初始解表示為
6.1)按順序取c+2個灰度值,分別為0、
6.2)計算第1個灰度值區(qū)間的灰度值概率和:
6.2)計算第r個灰度值區(qū)間的灰度值概率和:
6.3)計算第c+1個灰度值區(qū)間的灰度值概率和:
其中
步驟7:計算灰度值區(qū)間的熵h0。
取步驟5中的pj與步驟(6)中的n組灰度值概率和ω0,計算n組灰度值區(qū)間的熵h0,其中第i組灰度值區(qū)間的熵表示為
(7.1)計算第1個灰度值區(qū)間的熵:
(7.2)計算第r個灰度值區(qū)間的熵:
(7.3)計算第c+1個灰度值區(qū)間的熵:
其中
步驟8:計算人工魚初始解的適應度,保存適應度最大值和最優(yōu)閾值可能解。
適應度能夠衡量分割圖像的能力,適應度值越大,說明圖像分割效果越好。
8.1)根據(jù)步驟7中的n組初始解的熵h0,計算n個人工魚初始解的適應度,第i個人工魚初始解
8.2)計算適應度最大值f(xb):
其中xb表示n個人工魚解中適應度最大的一組閾值可能解,也稱為最優(yōu)閾值可能解,
步驟9:迭代計算n個人工魚解。
取t表示當前迭代次數(shù),maxt表示迭代總次數(shù),t∈[0,maxt],其中t=0代表開始迭代前的初始狀態(tài),v表示所有人工魚的視野范圍,設第i個人工魚第t次迭代的適應度為
9.1)初始化迭代次數(shù)t,令t=1;
9.2)選出第t-1次迭代適應度最高的n1個和適應度最低的n2個人工魚解
9.3)更新9.2)中的n1個人工魚解
使用交叉行為更新9.2)中的n1個人工魚解
其中交叉行為是一種更新解的方式,p=0.5表示交叉因子,xi與xj均為步驟(9b)中所述n1個人工魚解其中之一,
9.4)更新9.2)中的n2個人工魚解
對于9.2)中的n2個人工魚解
其中
如果
局部變異行為更新公式如下:
其中rand(0,1)表示0到1之間的隨機數(shù),
全局變異行為更新過程為:在灰度值的取值范圍內隨機選擇c個不同灰度值,從小到大排列后,作為的第t次迭代更新后第i個人工魚解
9.5)計算第t次迭代灰度值區(qū)間的灰度值概率和ωt。
取第t次迭代n組更新后的人工魚解xt,第i個人工魚初始解表示為
9.5.1)按順序取c+2個灰度值,分別為0、
9.5.2)計算第1個灰度值區(qū)間的灰度值概率和:
9.5.3)計算第r個灰度值區(qū)間的灰度值概率和:
9.5.4)計算第c+1個灰度值區(qū)間的灰度值概率和:
其中
9.6)計算第t次迭代灰度值區(qū)間的熵ht。
取步驟5中的pj與步驟9.5)中的n組灰度值區(qū)間的灰度值概率和ωt,計算n組灰度值區(qū)間的熵ht,其中第i組灰度值區(qū)間的熵表示為
9.6.1)計算第1個灰度值區(qū)間的熵:
9.6.2)計算第r個灰度值區(qū)間的熵:
9.6.3)計算第c+1個灰度值區(qū)間的熵:
其中
9.7)計算第t次迭代n個人工魚解的適應度。
根據(jù)9.6)中得到的第t次迭代n組灰度值區(qū)間的熵ht,計算第t次迭代n個人工魚解的適應度,其中第i個人工魚解
其中
9.8)判斷是否更新適應度最大值與最優(yōu)閾值解:
取步驟9.7)中n個適應度f(xt),其中第i個適應度表示為
如果
步驟10:判斷是否結束迭代過程。
比較t與maxt的大小,如果t<maxt,則令t=t+1,返回步驟9.2),否則,輸出步驟8)中的f(xb)與xb,結束迭代過程,執(zhí)行步驟(11),其中t表示當前迭代次數(shù),maxt表示迭代總數(shù)。
步驟11:更新圖像中所有像素點的灰度值,并輸出圖像。
11.1)取步驟10中輸出的xb與步驟1中的dk,將所有像素點的灰度值更新為d'k,k∈[1,m×n],d'k的更新過程是通過比較dk與xb中c個閾值的大小確定:
如果dk<xb,1,d'k=1;
如果xb,s-1≤dk<xb,s,d′k=s,s∈[2,c];
如果dk≥xb,c,d'k=c+1;
其中xb代表8)中所述最優(yōu)閾值可能解,xb,1代表xb中第1個閾值,xb,s代表xb中第s個閾值,xb,c表示xb中第c個閾值;
11.2)輸出像素點灰度值更新后的圖像。
本發(fā)明的結果可通過以下仿真結果進一步說明:
1.仿真環(huán)境與條件:
采用matlab2012a作為仿真軟件。
從圖庫輸入一幅大小為481x321的灰度圖像,如圖2所示;
設定迭代總數(shù)maxt=150,種群規(guī)模n=20,視野范圍v=31,較優(yōu)個體數(shù)量n1=6,較差個體數(shù)量n2=6,人工蜂群算法和粒子群與重力搜索混合算法的參數(shù)按照背景技術中對應的參考文獻中設置。
2.仿真內容:
仿真一:
取閾值個數(shù)c=5,分別使用本發(fā)明、人工蜂群算法和粒子群與重力搜索混合算法對圖2進行1次分割仿真,分割后的圖像如圖3所示,其中圖3中的(a)圖表示使用本發(fā)明對圖2分割后的圖像,圖3中的(b)圖表示使用人工蜂群算法對圖2分割后的圖像,圖3中的(c)圖表示使用粒子群與重力搜索混合算法對圖2分割后的圖像。
仿真二:
取閾值個數(shù)c=5,分別使用本發(fā)明、人工蜂群算法abc和粒子群與重力搜索混合算法psogsa對圖2進行1分割仿真,迭代次數(shù)為maxt,仿真迭代過程中適應度最大值的仿真曲線,結果圖4所示。
仿真三:
取閾值個數(shù)c分別為2,3,4,5,使用本發(fā)明、人工蜂群算法abc表和粒子群與重力搜索混合算法,psogsa對圖2進行分割仿真,對于每種閾值個數(shù)取值,都進行30次分割仿真,每次分割仿真都有對應的數(shù)據(jù)結果,其中包括適應度最大值和最優(yōu)閾值可能解,展示30次分割仿真中具有最好分割效果的一次對應的數(shù)據(jù)結果,如表1。
計算30次數(shù)據(jù)結果中適應度最大值的均值
表1
表2
3.仿真結果分析:
多閾值圖像分割算法的評判標準為:分割后的圖像越接近原圖說明分割算法效果越好。從圖3(b)可以看出,人工蜂群算法分割后的圖像丟失信息最多,從圖3(c)中可以看出粒子群與重力搜索混合算法分割后的圖像丟失信息也較多,均不能全面展示圖2中的內容,從圖3中(a)可以看出,本發(fā)明分割后的圖像信息丟失較少,更接近原圖,說明本發(fā)明分割效果更好,這是因為本發(fā)明加快了群體搜尋到最優(yōu)結果的速度,增強了整個群體的多樣性與跳出局部極值點的能力,因而能夠選擇出更加合適的閾值,使得分割后的圖像能夠克服丟失過多信息的缺點。
從圖4中可以看出,abc曲線雖然不斷上升,但是搜索到的適應度最大值太差,說明abc的探索能力較強,但是開發(fā)能力較弱;psogsa曲線在第10次迭代次數(shù)之前一直保持較快的增長趨勢,但是很快趨于平穩(wěn),說明該算法的開發(fā)能力較強,但是探索能力較弱;本發(fā)明在較長的迭代過程中搜索到的適應度最大值保持較大的斜率增長,說明了本算法的開發(fā)能力較強,同時可以看出本發(fā)明在短期的迭代過程中搜索到更大的適應度最大值,說明本發(fā)明的整體搜索能力更強,能夠更好的平衡尋優(yōu)過程中的開發(fā)能力與探索能力,因此分割效果更好。
從表1中可以看出,在閾值個數(shù)形同的情況下,本發(fā)明的適應度最大值更大,說明本發(fā)明的分割效果更好。
從表2中可以看出,在閾值個數(shù)相同的情況下,本發(fā)明的均值最大,并且標準差最小,說明本發(fā)明在多次分割仿真中的效果更加穩(wěn)定。