丁曉娜,劉春鳳*,劉保相,2
(1.華北理工大學 理學院,河北 唐山 063210;2.河北科技學院,河北 保定 071000)
隨著計算機處理技術(shù)的完善,圖像識別與分類研究得到很大發(fā)展,為人們生活帶來極大便利?,F(xiàn)階段圖像分類識別技術(shù)一般包括人臉識別、車輛分類、動物分類等[1-3]。人臉識別主要運用在安全檢查、身份核驗與移動支付中;物體分類主要是對動物、植物、車輛等進行分類[4-5]。圖像分類一般分為四部分,分別是圖像采集、圖像預處理、特征提取、圖像分類。信息科技的迅猛發(fā)展,積累了海量圖像數(shù)據(jù),如何快速、準確實現(xiàn)圖像分類,挖掘出有用的圖像信息是目前研究的關(guān)鍵。
粒計算方法是由Zadeh首次提出的一種新理念和方法,主要用于處理不確定、不精確、不完整的信息[6]。粒計算的實質(zhì)是通過選擇合適的粒度,來尋找一種較好的、近似的解決方案,避免復雜的計算,從而降低問題求解的難度[7]。Wang[8]和Hu[9]等介紹了粒計算的相關(guān)模型,Savchenko等人[10-11]提及了粒計算在圖像處理方面的應用。采用信息?;M行圖像處理稱為圖像粒化,圖像?;菍D像按照一定規(guī)則提取轉(zhuǎn)化為特征信息粒。目前,信息粒化的基礎(chǔ)模型主要有三種,分別是基于模糊集的模型、基于粗糙集的模型以及基于商空間的模型[12],但是隨著人們需求的增多,越來越多的粒化方法被提出。其中,主成分分析(PCA)因其較高識別率和簡便性的優(yōu)點被發(fā)掘用于圖像粒化。周松鋒、楊夢瀟等人[13-14]將其用于人臉識別算法的研究,加快了樣本訓練速度,提高了模型魯棒性。張里博等人[15]將PCA粒化方法帶入多粒度的代價敏感三支決策識別中,提高了識別精度,隨著研究的深入,PCA圖像?;瘜⒊蔀閳D像粒化的重要研究方向。
近年來,基于信息?;M行圖像識別的模型越來越多,人們致力于學習出一個穩(wěn)定的,在各個方面都表現(xiàn)優(yōu)秀的?;绞?但只能找到多個有偏好的粒層。多粒度模型可以通過一定的規(guī)則將多個單粒度進行粒度提升,通過比較多個低層單粒度以及提升后的高層粒度得到較好的識別效果。粒度提升可采用集成學習進行,集成學習組合多個單分類器的分類預測結(jié)果,常用投票(Voting)和疊加式(Stacking)兩種方法[16-18]。李珩等人[19]將Stacking與Voting進行了比較,發(fā)現(xiàn)無論基于Voting還是基于Stacking的組合分類方法,對于單分類器都是有幫助的,而基于Stacking的方法比基于Voting的方法更有效果。蔣明會等人[20]將Stacking的思想用于多粒度模型中,得到了相比單一粒度,更全面、立體和豐富的用戶畫像。
基于以上分析,本文提出了改進多粒度圖像分類模型,并采用Kaggle公布的圖像數(shù)據(jù)集進行驗證,使用模型對臥室,廚房,辦公室,海岸,森林,山脈,野外,高速公路,市區(qū),街道,高層建筑十一類圖像進行分類。在進行圖像預處理后得到低層信息粒,使用Stacking算法進行粒度提升,避免了單一粒度所帶來的偏愛問題,大大提高了圖像分類效率。
Stacking模型是一種集成方法,它將多個分類器線性組合,解決了目前大多數(shù)單分類器模型在處理問題時有明顯偏好的問題,而融合了Stacking思想的多粒度模型充分繼承了這一優(yōu)點,在人物畫像、圖像識別方面表現(xiàn)突出。本文在蔣明會等人[20]提出的多粒度人物畫像的模型基礎(chǔ)上,結(jié)合PCA?;绞教岢隽硕嗔6葓D像分類模型。
Stacking模型是多粒度圖像分類模型的基礎(chǔ),它是Worlpert教授于1992年提出的一類集成學習方法。該模型共分為兩層,從原始訓練集中學習的若干個基分類器為0-層,從基分類器的結(jié)果獲取輸入的此分類器為1-層,該層將0-層中每個基分類器的結(jié)果組成一個新數(shù)據(jù)集作為輸入,用于訓練次級分類器[21]。
Stacking模型為了避免產(chǎn)生過擬合,在訓練基分類器時采用k折交叉驗證,將原始訓練集分為k個大小相同的集合,每次選取k-1個集合進行訓練,訓練出的模型在未選取的集合上進行驗證,將驗證集上得到的結(jié)果作為1-層的輸入。如圖1所示的Stacking模型選取了1個基分類器進行分類,采用3折交叉驗證法,即將0-層訓練集分為3個大小相同的集合,每次選取2個集合(黃色部分)進行訓練,并在未選取的集合上進行驗證,得到的驗證結(jié)果作為下一層的輸入,從而減小過擬合現(xiàn)象,增加分類準確率。
改進多粒度模型就是在Stacking算法的基礎(chǔ)上,根據(jù)多粒度人物畫像模型的原理提出的圖像分類算法。多粒度模型是指數(shù)據(jù)在多個不同層次的粒度下進行表示,并使用不同粒度下的數(shù)據(jù)進行實驗,形成對比實驗,從而生成識別效率較高的結(jié)果[20]。改進多粒度模型主要融入PCA?;椒▋?yōu)化0-層信息粒,提高了輸入數(shù)據(jù)質(zhì)量,增大了分類精度。模型首先主要采用高斯濾波對原始數(shù)據(jù)進行圖像預處理,濾除圖像噪聲,然后采用PCA?;绞竭M行?;?得到0-層信息粒,將其輸入基分類器實現(xiàn)粒度融合,得到1-層信息粒,最后輸入次級分類器完成圖像分類過程。
圖1 Stacking算法結(jié)構(gòu)Fig.1 Structure of stacking algorithm
圖2 多粒度圖像識別模型Fig.2 Multi-granularity image recognition model
改進多粒度模型將圖像處理后得到的0-層信息粒,選取70%作為0-層訓練信息粒INF0-Train,其余的作為0-層測試信息粒INF0-Test。然后通過粒度提升融合成1-層信息粒,分別得到1-層訓練信息粒INF1-Train,1-層測試信息粒INF1-Test。最后在多層表示下進行后續(xù)模型訓練工作。其圖像識別模型架構(gòu)如圖2所示。
在進行粒度提升時,需要選取三個合適的分類模型作為基分類器來提高圖像分類質(zhì)量,本文選取應用較為廣泛的K近鄰(K-Nearest Neighbor,KNN)算法、BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)算法、SVM(Support Vector Machines)算法三種圖像分類算法進行試驗,原因如下:
① KNN算法無須參數(shù)估計,適合對稀有事件進行分類,特別是對于多分類問題。同時,該算法對數(shù)據(jù)沒有假設(shè),準確度高,對異常點不敏感[22]。
② SVM算法在小樣本訓練集上能夠得到比其他算法好很多的結(jié)果,該算法也是目前最常用的圖像分類效果最好的分類器之一,因其優(yōu)秀的泛化能力以及本身的優(yōu)化目標結(jié)構(gòu)化風險最小所以選取SVM算法作為其中一個分類器[23]。
③ BP神經(jīng)網(wǎng)絡(luò)具有任意復雜的模式分類能力和優(yōu)良的多維函數(shù)映射能力,可解決簡單感知器不能解決的異或等問題,因此將其作為一個分類器[24]。
將BP神經(jīng)網(wǎng)絡(luò)、KNN、SVM三個子模型進行排序,第i個子模型記為SubModel-i,將INF0-Train隨機均分成k份,第i份記為INF0-Train-i,用INF0-Train分別減去INF0-Train-i剩余的數(shù)據(jù),訓練子模型SubModel-i,使用訓練的子模型對INF0-Train-i進行識別,識別結(jié)果記為INF0-Train-pre-i,同時識別INF0-Test,識別結(jié)果記為INF0-Test-pre-i。將得到的INF0-Train-pre-i(i=1,2,…,k)進行樣本維度拼接,得到SubModel-i的高層訓練粒度表示INF1-Train-SubModel-i;將產(chǎn)生的INF0-Test-pre-i(i=1,2,…,k)進行樣本維度求均值,得到SubModel-i的高層測試粒度表示INF1-Test-SubModel-i。將產(chǎn)生的INF1-Train-SubModel-i(i=1,2,…,k)進行特征維度拼接,即拼接后總樣本數(shù)目等于每個拼接的樣本數(shù)目,但拼接后每個樣本的特征維度是參與拼接的各樣本特征維度總和,得到高層訓練信息粒INF1-Train;同 理 產(chǎn) 生 的INF1-Test-SubModel-i(i=1,2,…,k)進行特征維度拼接,得到高層測試信息粒INF1-Test。
將0-層產(chǎn)生的INF1-Train作為訓練集對1-層卷積神經(jīng)網(wǎng)絡(luò)進行訓練,然后將INF1-Test輸入訓練好的1-層卷積神經(jīng)網(wǎng)絡(luò),識別INF1-Test。
在利用模型進行圖像分類前,需要先對圖像數(shù)據(jù)進行預處理、PCA?;?從而提高訓練精度,文章選取Kaggle公布的圖像數(shù)據(jù)集進行實驗,數(shù)據(jù)集中包含臥室、廚房、辦公室、海岸、森林、山脈、野外、高速公路、市區(qū)、街道、高層建筑十一類圖像,分類難度較大。
多粒度圖像分類模型進行圖像分類時需要先進行數(shù)據(jù)預處理,使用高斯濾波去除噪聲,高斯濾波是一種線性平滑濾波,廣泛應用于圖像處理的濾除噪聲過程。高斯濾波就是對整幅圖像進行加權(quán)平均的過程,每一個像素點的值,都由其本身和鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到。高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描圖像中的每一個像素,用模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值去替代模板中心像素點的值。圖像經(jīng)過高斯濾波去噪后的結(jié)果如圖3所示。
圖像粒化是多粒度模型運行的前提,它將圖像按照一定規(guī)則轉(zhuǎn)化為相應的特征信息粒,轉(zhuǎn)化為信息粒的過程稱為信息?;P畔⒘;瘜⒁粋€整體問題粒化為若干個信息粒,然后將每個信息??醋鲉为毜囊徊糠诌M行研究,它在解決不精確、不明顯以及復雜問題等方面有獨特優(yōu)勢。圖像?;谋举|(zhì)是特征信息粒化,為了更加準確的提取圖像中的有效信息,張里博等人[18]提出了PCA?;?它能根據(jù)給出的一張圖像重構(gòu)出一系列從粗粒度到細粒度的圖像,本文采取主成分?;姆椒ㄌ幚韴D像。主成分分析算法的主要思想是找到一系列垂直的坐標軸以投影初始數(shù)據(jù),并且投影后的數(shù)據(jù)在新的坐標軸上方差遞減。假設(shè)所有圖像滿足零均值的條件,對于一個m維的單位向量u1∈Rm,u1Tu1=1,樣本圖像都能投影到該向量上,投影后樣本的方差可以表示為:
(1)
其中,S是原始數(shù)據(jù)的協(xié)方差矩陣,
在單位向量的限定下,求出投影后數(shù)據(jù)的方差關(guān)于u1的最大值。采用拉格朗日乘子法來求解,令d1為一個拉格朗日乘子問題轉(zhuǎn)化為一個無約束優(yōu)化問題,如公式(2)所示:
(2)
Su1=d1u1,
(3)
圖3 高斯濾波去噪前后對比Fig.3 Comparison before and after gaussian filter denoising
(4)
以上得到的是第l步的圖像,類似地可以依次得到從粗粒度到細粒度的一系列圖像。對于一個圖像樣本,假設(shè)已經(jīng)按照上面的方法得到了主成分矩陣U={u1,u2,…,um},即可根據(jù)這m個主成分重構(gòu)圖像。重構(gòu)過程中,選擇的主成分越多,圖像粒度越細。
對于一個樣本,用到的主成分越多,數(shù)據(jù)包含的信息越多,重構(gòu)數(shù)據(jù)保留方差的百分比越高,圖像粒度越細,圖4展示了主成分?;ǖ玫降牟煌6葓D像,可以看出從粗粒度到細粒度的?;瘓D像的不同區(qū)分度。隨著粒度的不斷提升,圖像越來越近接原始圖像。
本文選取200個成成分分量對圖像進行?;?將得到的結(jié)果輸入基分類器進行分類,圖5展示的是對圖3中(a)、(b)、(c)、(d)的四個圖像進行PCA?;慕Y(jié)果。
將基于PCA粒化處理過的圖像輸入基分類器中,通過粒度融合得到1-層信息粒,然后將其輸入次級分類器卷積神經(jīng)網(wǎng)絡(luò)中進行圖像分類。實驗數(shù)據(jù)選用Kaggle公布的圖像數(shù)據(jù)中的440張作為訓練集,110張作為測試集(每個種類的圖像選取10張),圖像像素為112×92。實驗硬件在Win7系統(tǒng)Matlab. R2014a上進行。三個子模型BP神經(jīng)網(wǎng)絡(luò),KNN,SVM以及本文改進的多粒度融合模型對數(shù)據(jù)集圖像分類識別的效果如表1所示。
表1 各個模型對圖像的分類識別效果
由表1可知多粒度融合模型分類誤差最低為0.035 6,但是模型訓練所消耗的時間最長為2 689.76 s。每個子模型與多粒度融合模型對圖像的識別效果直觀表現(xiàn)如圖6-圖9所示。
從圖6中可以看出,樣本訓練中迭代次數(shù)達到998次時均方誤差不再減小,此時均方誤差為0.066 9。從圖7中可以看出當K值為5時誤差最小為0.087 0。從圖8中可以看出σ值的不斷增大分類誤差也隨之變大,當σ=1時誤差最低為0.234 0。從圖9可以看出多粒度融合模型對圖像的分類誤差最低為0.035 6。由此可知,多粒度圖像分類模型的分類效果很好,有一定的研究意義。
圖4 PCA法從粗粒度到細粒度的?;瘓D像Fig.4 Granulated images by PCA from coarse-grained to fine-grained
圖7 KNN不同K值下的分類誤差Fig.7 Classification error underdifferent K values of KNN
圖8 不同σ值下SVM分類誤差Fig.8 SVM classification error under different σ values
圖9 多粒度融合模型訓練誤差Fig.9 Training error of multi granularity fusion model
本文提出的基于PCA圖像粒化的多粒度分類模型,選取BP神經(jīng)網(wǎng)絡(luò)、KNN和SVM作為基分類器,卷積神經(jīng)網(wǎng)絡(luò)作為元分類器。用PCA?;咚谷ピ胩幚砗蟮臄?shù)據(jù),將?;蟮臄?shù)據(jù)訓練各個分類器。實驗結(jié)果表明,多粒度融合模型對圖像的分類效果好于各個子模型的分類效果,且多粒度融合模型的分類誤差較小,為0.035 6,有一定的研究價值。但是模型的訓練耗時最長為2 689.76 s,如何在保證分類準確率的前提下減少訓練時間將是我們接下來的研究工作。