姚金寶 張義民 張 凱
(沈陽(yáng)化工大學(xué)裝備可靠性研究所 遼寧 沈陽(yáng) 110142)
圖像分割是圖像處理與分析領(lǐng)域中的一個(gè)經(jīng)典問(wèn)題,也是圖像分析、理解和計(jì)算機(jī)視覺領(lǐng)域的難點(diǎn)之一[1]。圖像分割的實(shí)質(zhì)就是依據(jù)各個(gè)像素點(diǎn)的灰度值不連續(xù)和依據(jù)同一區(qū)域具有相似性灰度將圖像劃分成若干個(gè)特定的、具有獨(dú)特性質(zhì)的區(qū)域并提出感興趣目標(biāo)的技術(shù)和過(guò)程。常用的圖像分割算法有:閾值分割、邊緣檢測(cè)、基于區(qū)域和基于一些特征理論工具的分割法。目前閾值分割法主要有最大類方差法、最佳熵閾值法和模糊法,但是相機(jī)和拍攝物體的距離遠(yuǎn)近引起同一物體在圖像中可能占不同大小的畫幅、拍攝物體的角度不同、外界的光照強(qiáng)度等問(wèn)題造成的現(xiàn)有的數(shù)百種圖像分割算法不能夠準(zhǔn)確地分割任一圖像[2]?,F(xiàn)有的各種算法都是針對(duì)特定情況而設(shè)計(jì)的,例如:應(yīng)用于灰度圖像的P—tile法[3-4]對(duì)圖像灰度分布的先驗(yàn)知識(shí)要求過(guò)高,直方圖凹面分析法等直方圖變換法過(guò)于依賴直方圖的雙峰分布特性,Otsu算法只能針對(duì)單一目標(biāo)分割,當(dāng)目標(biāo)和背景大小比例懸殊,類間方差函數(shù)可能呈現(xiàn)雙峰或者多峰,此時(shí)效果不好且所用時(shí)間比較長(zhǎng)。
群體智能算法在圖像處理領(lǐng)域的應(yīng)用中均存在缺點(diǎn)。例如:PSO由于缺乏速度的動(dòng)態(tài)調(diào)節(jié),容易陷入局部最優(yōu),導(dǎo)致收斂精度低和不易收斂,針對(duì)不同的問(wèn)題需要重新選擇控制參數(shù);在遺傳算法中編程實(shí)現(xiàn)比較復(fù)雜,首先需要對(duì)問(wèn)題進(jìn)行編碼,找到最優(yōu)解之后還需要對(duì)問(wèn)題進(jìn)行解碼并且交叉率和變異率等這些參數(shù)的選擇嚴(yán)重影響解的品質(zhì),而目前這些參數(shù)的選擇大部分是依靠經(jīng)驗(yàn);在蟻群算法中,如果參數(shù)設(shè)置不當(dāng)將會(huì)導(dǎo)致求解速度慢以及解的質(zhì)量差等。但是相比以上算法,TLBO具有設(shè)置參數(shù)少、操作簡(jiǎn)易、尋優(yōu)能力強(qiáng)的特點(diǎn)。因此本文在TLBO[5]的基礎(chǔ)上改進(jìn)后與Otsu算法相結(jié)合對(duì)圖像進(jìn)行分割,避免了在TLBO的“教學(xué)階段”中使用當(dāng)前最佳個(gè)體指導(dǎo)種群進(jìn)化造成算法陷入局本最優(yōu),提升了尋優(yōu)速度,使運(yùn)行時(shí)間平均提高了70%的前提下仍然能夠達(dá)到精度要求。
最大類間方差法(Otsu)[6-7]是一種自適合于雙峰情況的自動(dòng)求取閾值的方法,它按照?qǐng)D像中像素點(diǎn)的灰度值與閾值的關(guān)系,將圖像分為兩類。如果這兩個(gè)類中像素點(diǎn)的灰度的類方差越大,說(shuō)明取到閾值越佳,則用該閾值T將圖像分為前景和背景。最大類間方差法是目前常用的分割方法之一。但是計(jì)算方式是通過(guò)遍歷整幅圖像的像素值,因此計(jì)算量大,用時(shí)比較長(zhǎng)。
(1)
(2)
(3)
(4)
μ=μ1×ω1+μ2×ω2
(5)
g=ω1×(μ-μ1)2+ω2×(μ-μ2)2
(6)
式中:ω1為背景像素占比;ω2為前景像素占比;Pr為灰度級(jí)出現(xiàn)的概率;μ1為背景的平均灰度值;μ2為前景的平均灰度值;μ為灰度均值;g為類間方差,當(dāng)g取得最大值時(shí)t為最佳閾值。
教與學(xué)優(yōu)化算法(Teaching Learning based Optimization,TLBO)[8-9]的主要思想是對(duì)老師和學(xué)生在教授知識(shí)和學(xué)習(xí)知識(shí)過(guò)程的模擬。在這個(gè)過(guò)程中,老師有比學(xué)生有更多的知識(shí),向?qū)W生傳授知識(shí)使學(xué)生的能力超過(guò)自己,但是老師的能力水平也存在差異。同時(shí),學(xué)生也可以向其他學(xué)生學(xué)習(xí),提高自己的能力。
在TLBO的“教學(xué)階段”和“學(xué)習(xí)階段”,將式(6)作為適應(yīng)度評(píng)價(jià)函數(shù),老師是適應(yīng)值最好的個(gè)體,學(xué)生所學(xué)的科目為決策變量。在任何情況下老師都被分配到最佳個(gè)體并且指導(dǎo)學(xué)生靠近自己,該過(guò)程的數(shù)學(xué)模型如下:
(1) 采用如下公式模擬“教學(xué)”過(guò)程:
(7)
(8)
(3) 采用式(9)模擬學(xué)生的“學(xué)習(xí)階段”。
(9)
(5) 終止條件:以最大迭代次數(shù)MaxDT、精度要求ε為終止條件。滿足要求的條件下終止,否則繼續(xù)迭代,直至達(dá)到最大迭代次數(shù)MaxDT。
TLBO實(shí)現(xiàn)的流程如圖1所示。
為避免在TLBO的“教學(xué)階段”中使用當(dāng)前最佳個(gè)體指導(dǎo)種群造成進(jìn)化局部最優(yōu)。因此本文提出采用權(quán)重學(xué)習(xí),產(chǎn)生能夠代表種群適應(yīng)度水平的綜合個(gè)體Xw引導(dǎo)其他個(gè)體向其學(xué)習(xí)。
(1) 計(jì)算最大適應(yīng)度值和每個(gè)個(gè)體的權(quán)重:
fmax=max(Fitness(Xi))
(10)
(11)
式中:fmax為最大適應(yīng)度值;Wi為權(quán)重系數(shù);Fitness(Xi)為適應(yīng)度值。
(2) 計(jì)算加權(quán)平均個(gè)體:
(12)
(3) 改進(jìn)后的教學(xué)階段更新公式:
(13)
(4) 極差判斷:全部學(xué)生及老師進(jìn)行極差判斷,如果老師和學(xué)生的成績(jī)差別小于10-2,則認(rèn)為學(xué)生的水平已經(jīng)與老師的水平相等,應(yīng)該停止迭代過(guò)程。
本文提出的基于DGSWLTLBO的Otsu最佳閾值法的基本思想為:在DGSTLBO的基礎(chǔ)上中加入權(quán)重學(xué)習(xí)和極差判斷方法,在圖像的整個(gè)灰度空間內(nèi)搜索最佳閾值。
為滿足實(shí)際應(yīng)用需求,圖像轉(zhuǎn)換為灰度圖降低運(yùn)算量,綜合考慮Otsu法以及DGSWLTLBO的特點(diǎn),將式(6)作為適應(yīng)度函數(shù),然后尋找出最佳閾值對(duì)圖像進(jìn)行分割,其流程如圖2所示。
(1) 初始化種群:規(guī)定種體規(guī)屬數(shù)N、維數(shù)D、分組頻率p、每組成員數(shù)m、最大迭代次數(shù)MaxDT、變異概率pc,在圖像的整個(gè)灰度空間中隨機(jī)生成學(xué)生位置X。
(2) 計(jì)算適應(yīng)度值:選用式(6)計(jì)算學(xué)生成績(jī)并且選擇成績(jī)最好的學(xué)生作為老師。
(3) 對(duì)種群個(gè)體進(jìn)行分組:對(duì)所有學(xué)生的學(xué)習(xí)成績(jī)進(jìn)行排序,評(píng)估第一名與每個(gè)學(xué)生的距離,然后按照距離排序,最后選擇m名學(xué)生作為一組。
(4) 更新各組中的老師:計(jì)算各組適應(yīng)值,選擇成績(jī)最好者作為老師。
(5) 進(jìn)行教學(xué):選用式(13)進(jìn)行教學(xué)。
(6) 進(jìn)行學(xué)習(xí):當(dāng)變異率>0.5時(shí),選用式(9)進(jìn)行學(xué)習(xí),當(dāng)變異率<0.5時(shí),采用量子行為學(xué)習(xí)。
(7) 進(jìn)行極差判斷。
(8) 檢查是否滿足終止條件,若滿足,則迭代終止,否則轉(zhuǎn)至步驟(2)。
本文針對(duì)基于DGSWLTLBO的Otsu最佳閾值確定是在MATLAB中選取,參數(shù)設(shè)定如下:up為圖像灰度的最大值,一般取256;low為圖像灰度的最小值,一般取0;w為權(quán)重;Xweight為權(quán)重個(gè)體;Meangp為小組平均值;f為適應(yīng)值;x為種群值。部分代碼如下:
(1) 動(dòng)態(tài)分組:
[~,index]=sort(f);
%對(duì)個(gè)體的適應(yīng)度進(jìn)行排序
xc=x;
%種群個(gè)體
fxc=f;
%種群個(gè)體的適應(yīng)度值
for i=1:N
%對(duì)個(gè)體進(jìn)行排序
xc(i,:)=x(index(i),:);
fxc(i)=f(index(i));
end
x=xc;
f=fxc;
distance=zeros(1,N);
for I=1:N
%計(jì)算第一個(gè)學(xué)習(xí)者到每個(gè)學(xué)習(xí)者的距離
d=(x(1,:)-x(i,:)).^2;
distance (i)=sqrt(sum(d));
end
%按照第一個(gè)學(xué)習(xí)者到每個(gè)學(xué)習(xí)者的距離進(jìn)行排序
[~,index]=sort(distance);
for i=1:N
xc(i,:)=x(index(i),:);
fxc(i)=f(index(i));
end
x=xc;
f=fxc;
(2) 權(quán)重學(xué)習(xí):
for i=i1:i2
w(i)=abs(f(i)-fmax)/sum(f);
%按照式(10)進(jìn)行計(jì)算權(quán)重系數(shù)
Xweigh t=Xweight+w(i).*x(i);
%按照式(12)進(jìn)行計(jì)算權(quán)重個(gè)體計(jì)算
end
%計(jì)算學(xué)習(xí)
for i=i1:i2
TF=round(1+rand);
xnew(i,:)=x(i,:)+rand*(Teacher-TF*Meangp(gp,:))+
rand*(Xweight(i,:)-x(i,:));
end
(3) 量子行為學(xué)習(xí)
for i=i1:i2
if rand %變異判斷 k=ceil(N*rand); %進(jìn)行取整 if f(i) %按照式(9)進(jìn)行學(xué)習(xí)計(jì)算 xnew(i,:)=x(i,:)+rand(1,D).*(x(i,:)-x(k,:)); else xnew(i,:)=x(i,:)+rand(1,D).*(x(k,:)-x(i,:)); end else %進(jìn)行量子學(xué)習(xí) fai=rand(1,D); %0~1內(nèi)的隨機(jī)數(shù) beta=rand(1,D); %0~1內(nèi)的隨機(jī)數(shù) u=rand(1,D); %0~1內(nèi)的隨機(jī)數(shù) %量子學(xué)習(xí) tempx(i,:)=fai.*Teachergp(gp,:)+(1-fai).*Teacher; if rand<0.5 xnew(i,:)=tempx(i,:)+beta.*abs(Meangp(gp,:)-... x(i,:)).*log(1./u); else xnew(i,:)=tempx(i,:)-beta.*abs(Meangp(gp,:)-... x(i,:)).*log(1./u); end end (4) 極差判斷 if max(f)-min(f)<1e-1 %進(jìn)行及極差判斷 break end 為了使實(shí)驗(yàn)具有客觀性和對(duì)比性,對(duì)分割后的圖像采用均方誤差(Mean Square Error,MSE)[10]、峰值信噪比(Peak Signal Noise Ratio,PSNR)[11]、結(jié)構(gòu)相似性(Structural Similarity,SSIM)[12-13]、VOI作為評(píng)價(jià)指標(biāo)。 (14) 式中:MSE表示當(dāng)前圖像X和參考圖像Y的均方誤差;N、M分別為圖像的高度和寬度,數(shù)值越大表示失真越小。 (15) 式中:n為每像素的比特?cái)?shù),一般取8,即像素灰階數(shù)為256;PSNR的單位是dB,數(shù)值越大表示失真越小。 (16) (17) (18) (19) (20) μX)(Y(i,j)-μY)) (21) (22) (23) SSIM(X,Y)=l(X,Y)·C(X,Y)S(X,Y) (24) SSIM是一種全參考的圖像質(zhì)量評(píng)價(jià)指標(biāo),分別從亮度、對(duì)比度、結(jié)構(gòu)三方面度量圖像相似性對(duì)圖像進(jìn)行評(píng)價(jià),取值范圍[0,1],值越大,表示圖像失真越小。 VOI(I,I′)=H(I)+H(I′)-2·Ι(I,I′) (25) 式中:H(I)為原始圖像熵;H(I′)為分割后的圖像熵;Ι(I,I′)為聯(lián)合分布熵。VOI越小,說(shuō)明算法分割結(jié)果質(zhì)量越好。 本文所有進(jìn)行的實(shí)驗(yàn)均是在PC機(jī)上運(yùn)行,PC機(jī)的配置如下:Intel(R) Core(TM) i5- 8265U CPU @ 1.60 GHz (8 CPUs)~1.8 GHz,內(nèi)存為8 GB,Windows 10操作系統(tǒng)。仿真軟件為MATLAB R2017a。 為了驗(yàn)證本文所提DGSWLTLBO算法的有效性,本文分別從美國(guó)南加州大學(xué)USI-SIPI image database、MATLAB中自帶的圖片庫(kù)以及文獻(xiàn)[14]中選取圖片,圖像的基本參數(shù)如表1所示,由于將圖片尺寸歸一化并且圖像灰度化,因此只有圖片的大小、分辨率對(duì)實(shí)驗(yàn)有影響,兩者越大程序的運(yùn)行效率越低,圖片的其他特征參數(shù)的影響可以忽略不計(jì)。選取的圖片均很適合來(lái)驗(yàn)證各種算法,例如:lena圖像[15]包含了各種細(xì)節(jié)平滑區(qū)域、陰影和紋理,光滑的皮膚是低頻,帽子上的羽毛是高頻等。 表1 圖片基本信息表 參數(shù)的選取對(duì)于算法的尋優(yōu)能力、運(yùn)行效率等都有一定的影響。參數(shù)包括種群規(guī)模數(shù)N、維數(shù)D、分組頻率、變異率PC、權(quán)重系數(shù)w等。種群規(guī)模數(shù)N、維數(shù)D、最大迭代次數(shù)MaxDT越大,解得最優(yōu)值就越好,然而這樣會(huì)嚴(yán)重浪費(fèi)計(jì)算的內(nèi)存資源,導(dǎo)致運(yùn)行效率低下。本文中取種群規(guī)模數(shù)N=30、維數(shù)D=1、最大迭代次數(shù)MaxDT=100。分組頻率P、變異率PC越高,開發(fā)程度越高,收斂速度越快,但是目標(biāo)和背景大小比例懸殊、類間方差函數(shù)可能呈現(xiàn)雙峰或者多峰,此時(shí)效果不好且所用時(shí)間比較長(zhǎng),綜合考慮后取分組頻率P=5、變異率PC=0.5。 對(duì)Rice獨(dú)立運(yùn)行的30次模擬實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)如表2所示,發(fā)現(xiàn)DGSWLTLBO在取得相同閾值時(shí),運(yùn)行時(shí)間縮短,表現(xiàn)出極強(qiáng)的探索能力。 表2 算法對(duì)圖像Rice的分割結(jié)果 本文利用DGSWLTLBO、DGSTLBO、TLBO、PSO、GWO對(duì)多幅圖像進(jìn)行閾值分割,結(jié)果如圖3-圖6所示。 圖3-圖6為5種算法對(duì)圖像Rice、土星、12、房子的分割結(jié)果。在圖3中可看出本文算法和DGSTLBO分割效果接近于理想分割圖像,TLBO、PSO、GWO對(duì)于圖像Rice分割存偏差,對(duì)圖像Rice左下部分4粒完整的和3粒不完整的米粒未能做出正確分割,圖3至圖6所示的圖像中只有PSO未能對(duì)圖像做出精確的分割,其他算法的分割結(jié)果均接近理想分割圖像。但結(jié)合表3可知,在圖像的分割結(jié)果和運(yùn)行時(shí)間上,本文算法相對(duì)于DGSTLBO,TLBO、PSO、GWO的運(yùn)行時(shí)間均降低了許多。 表3 5種算法的性能比較 表3分別列出了5種算法對(duì)5幅圖像分割結(jié)果的MSE值、SSIM值和PSNR值的比較??梢钥闯?本文算法對(duì)5幅圖像的分割結(jié)果的MSE值、SSIM值、PSNR值、VOI評(píng)價(jià)指標(biāo)優(yōu)于其他4種算法。 為了能夠更加直觀地體現(xiàn)出本文算法相比于其他算法的優(yōu)勢(shì),將實(shí)驗(yàn)結(jié)果與文獻(xiàn)[14]中結(jié)果進(jìn)行對(duì)比,如表4所示。 表4 與文獻(xiàn)[14]中的結(jié)果對(duì)比 可以看出,DGSWLTLBO在圖片的很多細(xì)節(jié)上要比文獻(xiàn)[14]算法、Otsu算法、遺傳算法處理得好,分割結(jié)果更加接近于理想分割結(jié)果,并且在分割時(shí)間上平均縮短70%。 本文提出的基于動(dòng)態(tài)分組和權(quán)重學(xué)習(xí)改進(jìn)教與學(xué)算法的Otsu圖像閾值分割,經(jīng)過(guò)與DGSTLBO、TLBO、PSO、GWO的分割結(jié)果對(duì)比發(fā)現(xiàn)本文算法的分割結(jié)果更加接近理想分割圖像,運(yùn)行時(shí)間更優(yōu)。在尋優(yōu)過(guò)程中克服了TLBO、PSO、GWO的早熟現(xiàn)象,又提高了收斂速度。仿真實(shí)驗(yàn)結(jié)果表明,本文所提出的DGSWLTLBO顯著提高了最佳閾值選擇的合理性,運(yùn)行時(shí)間平均縮短了70%。將本文應(yīng)用在軸承外觀、軸承裂紋、剎車蹄塊片摩擦塊表面裂紋、PCB缺陷檢測(cè)等領(lǐng)域中,可以極大地縮減閾值分割時(shí)間,提高相應(yīng)產(chǎn)品缺陷檢測(cè)的時(shí)間。2.4 閾值分析綜合評(píng)價(jià)指標(biāo)
3 實(shí) 驗(yàn)
3.1 實(shí)驗(yàn)環(huán)境以及參數(shù)的選取
3.2 實(shí)驗(yàn)結(jié)果與討論
4 結(jié) 語(yǔ)