楊思淵,蔣銳鵬,海仁古麗·阿不力提甫,姑麗加瑪麗·麥麥提艾力
(新疆師范大學(xué) 數(shù)學(xué)科學(xué)學(xué)院,新疆 烏魯木齊 830017)
圖像分割是把圖像分成若干個(gè)特定的、具有獨(dú)特性質(zhì)的區(qū)域并提出感興趣目標(biāo)的技術(shù)和過(guò)程。圖像分割廣泛應(yīng)用在醫(yī)學(xué)影像處理、衛(wèi)星圖像中物體定位、人臉識(shí)別、指紋識(shí)別、交通控制、機(jī)器視覺(jué)等。圖像分割的方法多種多樣,較為成熟的方法有:閾值法、區(qū)域法、邊緣檢測(cè)法、聚類(lèi)法等。文獻(xiàn)[1]在閾值法中提出了一種改進(jìn)的二維Otsu算法;文獻(xiàn)[2]提出一種改進(jìn)區(qū)域生長(zhǎng)法的遙感影像道路提取方法,先對(duì)遙感影像進(jìn)行k均值聚類(lèi)(K-means),再利用改進(jìn)區(qū)域生長(zhǎng)方法提取道路,這種方法精確度高,時(shí)間復(fù)雜度低;文獻(xiàn)[3]提出一種將二進(jìn)小波變換與形態(tài)學(xué)算子融合的邊緣檢測(cè)算法,在噪聲濃度相同的情況下,具有很好地抑制噪聲的能力,且檢測(cè)的邊緣圖像輪廓清晰,含有豐富的細(xì)節(jié)信息。
圖像分割的本質(zhì)是對(duì)圖像中的每個(gè)像素加標(biāo)簽(分類(lèi)),這一過(guò)程使得具有相同標(biāo)簽的像素具有某種共同的視覺(jué)特性。如在人臉圖像的分割中,可以將一張圖的所有像素點(diǎn)進(jìn)行聚類(lèi),使得人臉部分的圖像劃分為一類(lèi),非人臉部分劃分為另一類(lèi),常用的方法有K-means[4],它是一種非監(jiān)督學(xué)習(xí)模型,該算法原理簡(jiǎn)單、收斂速度快,效率高;也可以用監(jiān)督學(xué)習(xí)模型如SVM[5]來(lái)對(duì)圖像進(jìn)行分類(lèi),該方法需要自己尋找不同類(lèi)別的支持向量進(jìn)行標(biāo)記。
這兩種方法在圖像分割中都存在一定的缺陷,對(duì)K-means來(lái)說(shuō),它對(duì)像素特點(diǎn)的依賴(lài)性較大,像素相近的圖像不能做出很好的分類(lèi);而SVM需要人為地選取支持向量,效率不高,易出錯(cuò),且支持向量的選取也受到不同人群主觀(guān)因素的影響。
在監(jiān)督學(xué)習(xí)模型SVM的支持向量選取上,該文提出了相似度計(jì)算方法,代替人為選取可能出現(xiàn)的誤差,并且對(duì)賦予的支持向量進(jìn)行優(yōu)化,去除無(wú)效數(shù)據(jù),減少近似和重復(fù)數(shù)據(jù)。實(shí)驗(yàn)表明,該方法得到的SVM模型分類(lèi)效果優(yōu)于直接使用K-means方法。
支持向量機(jī)(support vector machine,SVM)是Vapnik等人[6]根據(jù)統(tǒng)計(jì)學(xué)習(xí)理論提出的一種機(jī)器學(xué)習(xí)方法[7]。通過(guò)學(xué)習(xí)算法,SVM可以自動(dòng)找出那些對(duì)分類(lèi)有較好區(qū)分能力的支持向量,由此構(gòu)造出的分類(lèi)器可以最大化類(lèi)與類(lèi)的間隔,因而有較好的適應(yīng)能力和較高的分辨率。該方法只需有各類(lèi)域的邊界樣本的類(lèi)別來(lái)決定最后的分類(lèi)結(jié)果[8]。
對(duì)于人臉圖像分割,用到的是一個(gè)二分類(lèi)支持向量機(jī),其具體形式如下[7]:
①設(shè)已知訓(xùn)練集:
T={(x1,y1),(x2,y2),…,(xl,yl)}∈(X×Y)l
(1)
其中,xi∈X=Rn,yi∈{1,-1}(i=1,2,…,l),xi為特征向量。
②使用線(xiàn)性核函數(shù)[9](式2)和適當(dāng)?shù)膮?shù)C,構(gòu)造并求解最優(yōu)化問(wèn)題:
K(x,x')=x·x'
(2)
(3)
(4)
④構(gòu)造決策函數(shù)[10]:
(5)
當(dāng)f(x)=1時(shí),目標(biāo)屬于第一類(lèi);f(x)=-1時(shí),目標(biāo)屬于第二類(lèi)。
利用支持向量機(jī)進(jìn)行圖像分割,本質(zhì)上就是進(jìn)行分類(lèi)。所以必須要找出能區(qū)分不同像素點(diǎn)的特征,由于采用了彩色RGB圖,因此可以直接用像素點(diǎn)的RGB值作為特征。在選取支持向量時(shí),一定要選取與特征相關(guān)的點(diǎn),不同的特征點(diǎn)要盡可能多地選取。如在人臉圖像分割時(shí),第一類(lèi)支持向量應(yīng)選取更多的是五官和皮膚附近的像素點(diǎn),第二類(lèi)支持向量應(yīng)避免選擇第一類(lèi)選取過(guò)的點(diǎn),選取更多的人臉?lè)秶酝獾南袼攸c(diǎn)。兩個(gè)支持向量選取的像素各自應(yīng)當(dāng)是相似或相近的,這樣充分保證兩個(gè)支持向量差異最大化,使得SVM的分類(lèi)效果更好。
SVM模型訓(xùn)練輸入兩組數(shù)據(jù),其中一組為需要的數(shù)據(jù),用label=1來(lái)標(biāo)記,另一組數(shù)據(jù)為不需要的數(shù)據(jù),用label=0來(lái)標(biāo)記。實(shí)驗(yàn)中的圖像數(shù)據(jù)轉(zhuǎn)化為像素點(diǎn)所對(duì)應(yīng)的RGB值,用[a,b,c]來(lái)表示,a,b,c分別表示選取點(diǎn)的三個(gè)顏色通道的數(shù)值。
將兩組選取點(diǎn)與label值分別作為SVM的兩組輸入值,訓(xùn)練后得到一組訓(xùn)練(model)值,將該值重新作用于整張圖像,預(yù)測(cè)得出整張圖的分類(lèi)結(jié)果。MATLAB中調(diào)用的fitcsvm函數(shù)做訓(xùn)練,predict函數(shù)做預(yù)測(cè)。將fitcsvm訓(xùn)練好得到的model值和測(cè)試數(shù)據(jù)用predict函數(shù)得到預(yù)測(cè)的前景和背景標(biāo)簽,再?gòu)臉?biāo)簽分類(lèi)中得到分割圖像。
日常生活中最常見(jiàn)的顏色空間就是RGB顏色空間了,然而K-means運(yùn)用其模型進(jìn)行聚類(lèi)分割彩色圖像時(shí)發(fā)現(xiàn)效果并不理想,而1976年國(guó)際照明委員(international commission on illumination,CIE)制定的Lab顏色空間和人類(lèi)視覺(jué)感知相關(guān),并且具有均勻性以及歐氏距離不變的特性[11],實(shí)驗(yàn)中Lab顏色空間在K-means中擁有良好的實(shí)驗(yàn)效果。
從RGB顏色空間轉(zhuǎn)換到Lab顏色空間時(shí),需要借助XYZ顏色空間[12],RGB顏色空間與XYZ顏色空間的轉(zhuǎn)換關(guān)系如式(6)所示:
(6)
再?gòu)腦YZ顏色空間轉(zhuǎn)換到Lab顏色空間,公式如下:
(7)
(8)
式(7)中L、a、b分別是Lab顏色空間的三個(gè)通道,式(8)中Xn、Yn、Zn默認(rèn)是95.047、100.0、108.883。
K-means圖像分割算法包括以下幾個(gè)步驟[13]:
(1)從n個(gè)數(shù)據(jù)對(duì)象中任意選擇K(K>1)個(gè)對(duì)象作為初始聚類(lèi)中心。
(2)根據(jù)每個(gè)聚類(lèi)對(duì)象的均值(中心對(duì)象),計(jì)算每個(gè)對(duì)象與這些中心對(duì)象的距離,并根據(jù)最小距離重新對(duì)相應(yīng)對(duì)象進(jìn)行劃分。
(3)重新計(jì)算每個(gè)聚類(lèi)的均值(中心對(duì)象),直到聚類(lèi)中心不再變化。這種劃分使得下式最?。?/p>
(9)
其中,xi為第i樣本點(diǎn)的位置;mj為第j個(gè)聚類(lèi)中心的位置。
(4)循環(huán)第②、③步,直到每個(gè)聚類(lèi)不再發(fā)生變化為止。
K-means圖像分割的具體實(shí)現(xiàn)步驟如下:
首先將彩色圖像從RGB轉(zhuǎn)成Lab彩色空間,然后選取適當(dāng)?shù)腒值作為聚類(lèi)個(gè)數(shù),K值根據(jù)實(shí)際情況調(diào)整大小,使用MATLAB自帶的K-means函數(shù)進(jìn)行運(yùn)算,得到聚類(lèi)圖像的K個(gè)分類(lèi)標(biāo)簽值,最后還原得到K個(gè)聚類(lèi)的結(jié)果。
該方法是將K-means聚類(lèi)方法得出的結(jié)果分為前景和背景,前景為所需要的人臉圖,背景為不需要的部分,分別作為SVM的兩個(gè)支持向量,組成一個(gè)數(shù)據(jù)集,與label值0(背景)和1(前景)一一對(duì)應(yīng),得到的數(shù)據(jù)集和label賦予MATLAB的fitcsvm函數(shù)進(jìn)行訓(xùn)練得到一個(gè)模型(model)值,該model值就是用來(lái)預(yù)測(cè)整張圖片分類(lèi)情況的模型。
圖1是K-means圖像分割實(shí)驗(yàn)結(jié)果,該實(shí)驗(yàn)將圖像分割為K=2個(gè)聚類(lèi),效果良好。圖1(b)為人臉部分,即前景,(c)為非人臉部分,即背景。
圖1 K-means圖像分割結(jié)果
然而直接將K-means的聚類(lèi)結(jié)果不做任何改動(dòng)賦予SVM訓(xùn)練時(shí),其訓(xùn)練效果并不令人滿(mǎn)意,甚至?xí)霈F(xiàn)全黑的情況,原因是在圖1(b)和(c)中都存在黑色部分,這是K-means算法在聚類(lèi)分割時(shí)產(chǎn)生的問(wèn)題,不難發(fā)現(xiàn),將(b)和(c)重合就得到了原圖(a)。這些黑色部分的RGB值均為[0,0,0]。在第一節(jié)中提到過(guò),對(duì)SVM選取支持向量時(shí)要盡量與目標(biāo)類(lèi)目一致,且要使兩個(gè)類(lèi)目的差異性最大,這些黑色的像素值對(duì)SVM訓(xùn)練存在干擾,故將其去除,保留剩余部分。
f(xi,yj)≠[0,0,0]
(10)
其中,xi,yj表示圖像像素點(diǎn)坐標(biāo)。
經(jīng)過(guò)式(10)運(yùn)算后,有效像素點(diǎn)得以保留,但通過(guò)查看數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)中有很多相同或相似的值,而選取支持向量的原則是選取豐富且不同的特征點(diǎn),這些值會(huì)對(duì)結(jié)果產(chǎn)生不好的影響,故也將其去除。
|f(xi,yj)-f(uk,vl)|≤ε
(11)
其中,uk,vl為圖像像素點(diǎn)坐標(biāo),ε為趨于0的無(wú)窮小量。
完成式(10)和(11)的運(yùn)算后,SVM的訓(xùn)練效率大大提升,且效果相比于不做任何改動(dòng)要好。
增加訓(xùn)練集,即把多張人臉圖的K-means聚類(lèi)結(jié)果經(jīng)過(guò)優(yōu)化拼接成一個(gè)大的訓(xùn)練集,再賦予SVM進(jìn)行分類(lèi)訓(xùn)練,得到多張圖的訓(xùn)練模型,流程如圖2所示。
圖2 增加訓(xùn)練集數(shù)據(jù)拼接的流程
因SVM數(shù)據(jù)增多后訓(xùn)練速度明顯下降,當(dāng)發(fā)現(xiàn)測(cè)試圖片不再發(fā)生明顯增強(qiáng)效果后便停止增加數(shù)據(jù)集,故該文訓(xùn)練的圖像個(gè)數(shù)最大為6張,但其耗時(shí)已經(jīng)達(dá)到數(shù)小時(shí)之久。下面將給出詳細(xì)的實(shí)驗(yàn)過(guò)程。
實(shí)驗(yàn)所用軟件為MATLAB R2016a,運(yùn)行環(huán)境為CPU I5-8300,內(nèi)存16 GB,操作系統(tǒng)為Windows10,所用圖像均為218*178 RGB圖。
傳統(tǒng)方法所得到的圖像分割效果如圖3所示。
圖3 SVM傳統(tǒng)方法圖像分割
圖3(a)中*為背景選點(diǎn),○為前景選點(diǎn)。
可以看出非監(jiān)督學(xué)習(xí)模型人為選取前景點(diǎn)和背景點(diǎn)的SVM分類(lèi)效果并不理想。原因是人工選取的點(diǎn)并不能分別將各類(lèi)所需的樣本點(diǎn)全部選取,始終會(huì)有部分樣本點(diǎn)漏選或錯(cuò)選,且人工選取存在差異性和不確定性,特別是對(duì)于相對(duì)復(fù)雜的圖像,人工選取就會(huì)變得非常困難。
顏色分布規(guī)律不明顯的圖像經(jīng)K-means聚類(lèi)分割效果如圖4所示。
圖4 K-means圖像分割結(jié)果
圖4的K-means圖像分割效果明顯不如圖1的效果,原因是人臉區(qū)域與背景區(qū)域有顏色相近的地方,這就使得K-means對(duì)此類(lèi)圖像聚類(lèi)效果不好。
現(xiàn)將圖1做SVM訓(xùn)練的模型用于圖4(a)進(jìn)行SVM分類(lèi),并與K-means作對(duì)比,效果如圖5所示。
圖5 文中方法與K-means方法的比較結(jié)果
對(duì)比圖5(a)和(b)可以看出,文中方法在SVM人臉?lè)诸?lèi)結(jié)果中明顯優(yōu)于K-means。
使用其他圖片對(duì)文中方法作驗(yàn)證,圖6中左側(cè)為原圖,中間為文中方法效果圖,右側(cè)為K-means效果圖。
圖6 其他圖像使用文中方法和K-means方法的比較結(jié)果
以上實(shí)驗(yàn)表明,將K-means的聚類(lèi)結(jié)果賦予SVM分類(lèi)器訓(xùn)練的方法是可行的,在圖像分割實(shí)驗(yàn)中可以取得較為滿(mǎn)意的結(jié)果。
增加訓(xùn)練集后,新的模型和一張圖像的模型對(duì)圖4(a)做SVM分類(lèi)的效果如圖7所示。
圖7 增加訓(xùn)練集與一張圖訓(xùn)練模型實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)表明,增加訓(xùn)練集后訓(xùn)練的模型相比于單張圖像,在面部有更多細(xì)節(jié)得以顯現(xiàn),部分黑色部分沒(méi)有了,左上角的背景區(qū)域也有所減少,可見(jiàn)增加訓(xùn)練集可以改善SVM的測(cè)試效果,顯示了文中方法的有效性。
實(shí)驗(yàn)使用圖像分割誤差指標(biāo)[14]來(lái)評(píng)價(jià)分割效果,該指標(biāo)包括過(guò)度分割率(OR)、欠分割率(UR)和圖像整體錯(cuò)誤分割率(ER),公式分別如下:
(12)
(13)
(14)
其中,Op是前景中分割錯(cuò)誤的像素?cái)?shù);Up是背景中錯(cuò)誤分割到前景的像素?cái)?shù);Dp是手動(dòng)分割得到的前景的像素?cái)?shù)。表1詳細(xì)展示了圖4(a)的三種不同方法的評(píng)價(jià)指標(biāo),OR對(duì)分割結(jié)果影響較大,值越小越好,UR對(duì)分割效果影響較小,值不要太大即可,ER為整體錯(cuò)誤率,值越小越好[15]。
表1 圖4(a)評(píng)價(jià)指標(biāo)結(jié)果
從表1中可以看出,文中方法在OR和ER中要優(yōu)于其他兩種方法,UR值略高于SVM,影響不大,這在主觀(guān)視覺(jué)上也是一致的。
表2展示了圖6中兩組圖像的K-means和文中方法的評(píng)價(jià)指標(biāo),因傳統(tǒng)SVM的分割會(huì)受不同人的主觀(guān)因素影響,每次分割結(jié)果不一致,故在此不作比較。
表2 圖6評(píng)價(jià)指標(biāo)結(jié)果
同樣在表2中,文中方法在OR和ER上也優(yōu)于K-means方法,與主觀(guān)視覺(jué)一致。
在結(jié)合監(jiān)督和非監(jiān)督學(xué)習(xí)模型的基礎(chǔ)上,提出了一種基于相似度計(jì)算的圖像分割方法,對(duì)基于監(jiān)督、非監(jiān)督和文中提出的圖像分割方法進(jìn)行了對(duì)比實(shí)驗(yàn),并給出了客觀(guān)和主觀(guān)評(píng)價(jià)結(jié)果。從圖像分割的結(jié)果和客觀(guān)評(píng)價(jià)指標(biāo)可以看出,文中方法有效地提高了圖像分割的性能和效率。
因?yàn)槲闹袑?shí)驗(yàn)方法根據(jù)圖像的顏色進(jìn)行分類(lèi),當(dāng)圖像不同類(lèi)別之間的數(shù)據(jù)相關(guān)性很大時(shí),分割結(jié)果會(huì)出現(xiàn)不明顯的情況,雖然提出了相似度計(jì)算方法有效地結(jié)合K-means的輸出類(lèi)別和SVM的輸入支持向量,但是最終的圖像分割結(jié)果還是會(huì)受K-means分類(lèi)性能的影響,因此進(jìn)一步優(yōu)化算法是下一步深入研究并改進(jìn)的地方。