陳綿書,蘇 越,桑愛軍,李培鵬
(吉林大學 通信工程學院, 長春 130022)
隨著互聯(lián)網(wǎng)中圖像數(shù)量的急速增長,如何準確且快速地對圖像進行分類顯然已經(jīng)成為了一個熱門領域。而源自于文本領域的圖像分類模型—詞袋模型(Bag-of-words,BOW)[1]作為一種信息檢索算法,在文本分類領域有著廣泛的應用。BOW模型忽略掉一個文檔的結構、語法和語序等,僅僅將其看作是若干個獨立單詞的集合,文檔中任意位置出現(xiàn)的單詞,均不受該文檔的語義影響而單獨存在。將這一原理與圖像相結合,認為圖像是由一些相互無關聯(lián)的視覺單詞組成。具體的做法為:先提取圖像的SIFT[2,3](Scale-invariant feature transform)特征,之后把視覺特征轉換為一系列的圖像視覺單詞,最后,根據(jù)每一個視覺單詞在圖像中出現(xiàn)的概率來繪制直方圖。視覺單詞出現(xiàn)的頻率越高,相應的概率值就越大。因此,詞袋模型不僅具有文本匹配高效簡潔的特點,而且原理簡單,易于編程和實際操作。然而,詞袋模型沒有考慮到視覺單詞之間的空間位置信息。研究表明,視覺單詞間的空間位置信息有助于提高圖像的表述能力。Lazebnik等[4]利用金字塔匹配核函數(shù),提出了SPM模型(Spatial pyramid matching);Wu等[5]提出了視覺語言模型(Visual language model,VLM);Jiang等[6]利用隨機劃分圖像來提高分類性能。然而以上研究均沒有考慮到全局信息,且存在大量冗余的短語信息,從而嚴重地影響到計算速率??紤]以上不足,本文提出了一種基于視覺單詞間空間位置信息的空間矢量模型。
在以往的圖像分類應用中,BOW模型取得了不錯的分類效果。但是在這些應用中,均是將單詞視為獨立的存在,彼此間沒有聯(lián)系且完全獨立??墒聦嵣?,通常一幅圖像中出現(xiàn)的單詞都是有結構聯(lián)系的,不可能完全獨立,所以這種單詞之間完全獨立的假設顯然不成立。由此,這里提出了結合視覺單詞空間信息的圖像分類方法。實驗結果表明,這種方法能夠有效地提高圖像分類的平均分類正確率(Average classification accuracy,ACA)和平均類別準確率(Average category precision,ACP)。
對圖像進行SIFT特征提取、聚類,以生成視覺單詞。然后利用視覺單詞的空間位置信息,將圖像表達為空間位置模型。對于一幅圖像來說,其表示為:
I={(w1,x1,y1),(w2,x2,y2),
…,(wm,xm,ym)}
(1)
式中:w為圖像經(jīng)過聚類表達后得到的視覺單詞;m為視覺單詞的個數(shù);(x,y)為單詞坐標位置。
這里需明確兩個重要的問題:①視覺單詞之間的聯(lián)系是什么;②應該怎樣準確地表達這種聯(lián)系??臻g位置矩陣最大的問題就是不包含視覺單詞之間的空間位置信息??紤]到視覺單詞的空間關系,兩兩視覺單詞能夠構成矢量,形成一對單詞對。這樣一來圖像就能夠映射成空間矢量矩陣。如圖1所示,設CUP圖像提取出3個視覺單詞分別為w1、w2、w3,其中兩兩之間能夠構成一個矢量,所以一共可以得到3個矢量,CUP圖像的空間矩陣表達式就可以表示為矢量的形式:
M={(w1,w2,x2-x1,y2-y1),
(w1,w3,x3-x1,y3-y1),
(w2,w3,x3-x2,y3-y2)}
(2)
M={(w1,w2,x2-x1,y2-y1),
(w1,w3,x3-x1,y3-y1),…,
(wm-1,wm,xm-xm-1,ym-ym-1)}
(3)
式中:m為單詞的個數(shù);w為視覺單詞。
圖1 空間位置模型與空間矢量模型Fig.1 Spatial position model and space vector model
將圖像表示為空間矢量矩陣后,雖然考慮到了視覺單詞之間的聯(lián)系,但仍有兩個問題有待商榷。
圖2 矢量位移對比Fig.2 Comparison of vector displacement
(2)如何利用空間矢量模型進行分類。本文使用支持向量機(Support vector machine,SVM)[7]和K最近鄰分類器(K-nearest neighbor,KNN)[8]對圖像進行分類,分別提出兩種不同的分類方法。
圖3為有效空間矢量矩陣的構建過程圖,具體包括以下4個步驟。
圖3 有效空間矢量矩陣的構建Fig.3 Structure of valid space vector matrix
(1)相減
將圖像庫中不同圖像間相同的單詞空間位置兩兩相減。這里假定有分別包含m個視覺單詞和n個視覺單詞的兩幅圖像I1和I2,空間位置矩陣分別為d1和d2。則它們的空間位置差矩陣為:
(4)
(5)
式中:d1={(wa,xa,ya),(wb,xb,yb),…,(wm,xm,ym)};d2={(wa,xa1,ya1),(wa,xa2,ya2),…,(wn,xn,yn)}。
假設I1中第一個視覺單詞為wa,I2中有2個與wa相同的單詞。依據(jù)式(5)就可以得到位移點的坐標(xa1-xa,ya1-ya)和(xa2-xa,ya2-ya)。之后再將第1幅圖像中的單詞與第2幅圖像中的所有單詞進行比較,就能夠得出I1與I2的空間位置差矩陣。其中,空間位置差矩陣中的每條記錄都包含信息(w1,x1-x2,y1-y2)。其中w1表示視覺單詞;x1和y1為單詞在圖像I1中的坐標;x2和y2為單詞在圖像I2中的坐標。
(2)統(tǒng)計
(3)提取
提取單詞對個數(shù)不小于2的點,并保存到對應的空間矢量矩陣中。假設I1與I2的空間矢量矩陣分別為M1和M2,若空間位置差矩陣在某一個網(wǎng)格內存在2個點w1和w2,那么:
(6)
(7)
同理,將(I1,I2)空間位置差相同的點全部提取出來。
以此類推,依次提取(I1,I3),(I1,I4),…,(I2,I3),(I2,I4),…,(IN-1,IN)中空間位置差值相同的點。
(4)消除重復
由于總會出現(xiàn)某一圖像的矢量與其他圖像相同的情況,所以需要去除M1,M2,M3,…,MN中的重復行,這樣的操作能夠剔除不相關的矢量,以保證得到的空間矢量矩陣能最有效地代表圖像的空間信息。
基于SVM分類器的圖像分類包括3個步驟:建立視覺短語庫、圖像表達和分類判決。
2.1.1 建立視覺短語庫
訓練集圖像的視覺單詞經(jīng)過空間矢量轉化后,每一幅圖像都會表示成一個N×4的空間矢量矩陣。使用K均值聚類將距離比較近的4維矢量合并。為了簡化,這里假設K值為3,具體的視覺短語庫的構建過程如圖4所示。
圖4 視覺短語庫構造過程Fig.4 Structure of visual phrase lexicon
2.1.2 圖像表達
假設一個N×4的圖像空間矢量矩陣,計算每個矢量到視覺短語的距離,若與某一個視覺短語最近,就將這個短語的bin值加1。從而完成視覺短語直方圖的轉化,歸一化之后稱為視覺短語特征。最后,將視覺短語直方圖與視覺單詞直方圖結合,形成視覺語言直方圖。這樣,視覺語言模型不僅考慮到了全局信息,也包含空間特征。
視覺語言模型的主要原理包括:
(1)對2個特征集X、Y,將其劃為L個層(L=2,層1和層2分別為視覺單詞直方圖和視覺短語直方圖)。
(2)在層l中,若點x,y落入同一bin中,就稱x與y匹配。每個bin中匹配點的個數(shù)為min(Xi,Yi),其中Xi,Yi為相應層下的第i個bin。
(8)
(4)統(tǒng)計每層l下的匹配點的總數(shù)Il,不同的l賦予不同的權重w。
(5)兩個點集X、Y匹配程度的匹配核為:
(9)
視覺語言模型的構建過程主要包括以下兩個步驟。
(1)如圖5所示,對圖像特征聚類映射后,提取視覺單詞直方圖。之后將視覺單詞轉化為空間矢量矩陣,提取視覺短語直方圖,如圖6所示。
圖5 視覺單詞直方圖Fig.5 Histogram of visual words
圖6 視覺短語直方圖Fig.6 Histogram of visual phrase
(2)將兩個層的直方圖首尾連接,同時賦予每個層相應的權重,如圖7所示。
圖7 視覺語言直方圖Fig.7 Histogram of visual language
2.1.3 分類判決
基于SVM分類器的具體訓練和判決過程如圖8所示。
圖8 SVM分類器過程圖Fig.8 Flow diagram of SVM classification
根據(jù)KNN分類原理,利用空間矢量矩陣對圖像進行分類:首先,對所有訓練圖像的空間矢量矩陣進行量化;然后,設M為測試圖像X的空間矢量矩陣,統(tǒng)計它與(M1,M2,…,MN)中相同行的個數(shù);最后,利用相同個數(shù)最多的K個樣本來判斷測試圖像X的標簽。
2.2.1 量化統(tǒng)計
首先,分別對x方向及y方向的矢量差進行量化,量化間隔設為3;然后,計算兩幅圖像具有相同行的個數(shù):
(10)
(11)
式中:N1、N2分別為空間矢量矩陣M1和M2的記錄行數(shù)。
2.2.2 參數(shù)選取
(1)K值的選取
本文利用交叉驗證法(cross-validate)[9,10]選取最佳K值。
(2)權重的選取
如果認定各特征的權重都相同,那么會大大降低圖像的分類效果。本文利用與測試圖像的空間矢量矩陣相同行的數(shù)量來分配權重。然后將權重累加,選定累加值最高的類別作為樣本的類別標簽。
將相同行個數(shù)的平方值作為權重。設訓練數(shù)據(jù)集包含2個標簽,K個近鄰中有K1個作為標簽1,K2個作為標簽2(K1+K2=K),則判為標簽1的概率為:
(12)
取權重后的概率為:
(13)
判為標簽2的概率為:
(14)
取權重后的概率為:
(15)
式中:L1和L2分別為測試圖像與標簽1和標簽2的訓練圖像空間矢量矩陣相同行的數(shù)量。
2.2.3 分類判決
通過參數(shù)的選取,確定了基于詞袋模型的最佳K值(KB)和基于空間矢量矩陣的最佳K值(KM)。這里假定訓練集包括2個標簽,那么對于一幅測試圖像,判為標簽1的概率為:
(16)
判為標簽2的概率為:
(17)
比較式(16)和式(17)的大小,將概率值相對較高的標簽作為最終測試圖像的分類類別。
在圖像分類中,有些發(fā)生旋轉的圖像會對分類效果造成影響。如圖9所示,為了消除這種影響,本文提出了矢量模的方法。由于兩兩單詞構成一個矢量,所以當圖像旋轉時,矢量的長度不變。因此對于一個N×3的圖像矩陣,具體的表達式為:
(18)
在構建有效的空間矢量矩陣后,分別利用KNN和SVM分類器進行分類。
圖9 圖像旋轉的分析Fig.9 Analysis of image rotation
本次實驗在Caltech 101數(shù)據(jù)集和Caltech 256數(shù)據(jù)集中[11]分別選取8個類別,并將數(shù)據(jù)集分為測試圖像和訓練圖像兩部分。從Caltech 101數(shù)據(jù)集中取8個類別的圖像(Faces_easy、向日葵、摩托車、蝴蝶、筆記本電腦、雙梔船、盆景、袋鼠)進行分類實驗,實驗分為二類類別(Faces_easy、向日葵)、四類類別(Faces_easy、向日葵、摩托車、蝴蝶)、六類類別(Faces_easy、向日葵、摩托車、蝴蝶、筆記本、雙梔船)和八類類別(Faces_easy、向日葵、摩托車、蝴蝶、筆記本、雙梔船、盆景、袋鼠);從Caltech 256數(shù)據(jù)集取8個類別的圖像(ak47、雙筒望遠鏡、駱駝、鴨子、煙火、三角鋼琴、火星、網(wǎng)球鞋)進行分類實驗,實驗分為二類類別(ak47、雙筒望遠鏡)、四類類別(ak47、雙筒望遠鏡、駱駝、鴨子)、六類類別(ak47、雙筒望遠鏡、駱駝、鴨子、煙火、三角鋼琴)和八類類別(ak47、雙筒望遠鏡、駱駝、鴨子、煙火、三角鋼琴、火星、網(wǎng)球鞋),所有實驗都重復10次取其統(tǒng)計平均,并對結果進行分析。評價標準采用平均分類正確率(ACA)和平均類別準確率(ACP)。
這里分別基于詞袋模型、空間金字塔、空間矢量模型(SpVM)、具有旋轉不變性的空間矢量模型(SpVM-ROT)進行實驗,實驗過程分別如圖10和圖11所示。
圖10 基于SVM分類的框架圖Fig.10 Frame diagram of classification based on SVM
圖11 基于KNN分類的框架圖Fig.11 Frame diagram of classification based on KNN
4.1.1 參數(shù)的選擇
(1)網(wǎng)格間距的選擇
網(wǎng)格間距的選擇對最終的分類結果有很大的影響。若網(wǎng)格間距太小,那么落入同一網(wǎng)格的單詞會很少,獲得的樣本太少;若網(wǎng)格間距太大,那么落入同一網(wǎng)格的單詞會很多,缺乏了準確性。所以選擇一個合適的網(wǎng)格間距尤為重要。這里經(jīng)驗性地選擇間距為3。
(2)權重的選擇
視覺語言直方圖分為兩層:1層是視覺單詞直方圖;2層是視覺短語直方圖。兩層的權重分別為w1和w2。經(jīng)過比較實驗,取w1=0.4,w2=0.6。
(3)聚類K的選擇
本文設置不同的K值,分析視覺短語庫大小對分類性能的影響。其中,二類分類的K值為500;四類分類的K值為800;六類分類的K值為1400;八類分類的K值為2000。
4.1.2 實驗結果
Caltech-101數(shù)據(jù)集和Caltech-256數(shù)據(jù)集的ACA和ACP分類結果分別如表1、表2和圖12、圖13所示。
表1 Caltech-101基于SVM的平均分類正確率Table 1 ACA in Caltech-101 data collection based on SVM %
圖12 Caltech-101基于SVM的平均類別準確率Fig.12 ACP in Caltech-101 data collection based on SVM
表2 Caltech-256基于SVM的平均分類正確率Table 2 ACA in Caltech-256 data collection based on SVM %
圖13 Caltech-256基于SVM的平均類別準確率Fig.13 ACP in Caltech-256 data collection based on SVM
4.2.1 參數(shù)的選擇
通過交叉驗證選擇K值,選用相同記錄個數(shù)的平方作為權重。
4.2.2 實驗結果
Caltech-101數(shù)據(jù)集和Caltech-256數(shù)據(jù)集的ACA和ACP分類結果分別如表3、表4和圖14、圖15所示。
表3 Caltech-101基于KNN的平均分類正確率Table 3 ACA in Caltech-101 data collection based on KNN %
表4 Caltech-256基于KNN的平均分類正確率Table 4 ACA in Caltech-256 data collection based on KNN %
這里對分類錯誤的圖像進行統(tǒng)計和分析。如圖16所示,分類錯誤的圖像主要包括兩類:一是受光照影響較大的圖像,可以考慮通過圖像濾波或圖像增強等對圖像進行預處理;二是背景較為雜亂或者物體本身繪有花紋的圖像,這類影響具有不可避免性,所以如何避免此類干擾的影響,從而提高分類效果,將是下一步研究的重點。另外,當考慮旋轉不變性時,有些分類準確率會出現(xiàn)不升反降的現(xiàn)象,這種現(xiàn)象主要發(fā)生在Caltech 101數(shù)據(jù)集上。這是因為Caltech 101數(shù)據(jù)集中很少有發(fā)生旋轉的圖像,圖像都相對簡單,從而導致聚類后的視覺單詞對之間難以分辨;而在圖像數(shù)據(jù)復雜的Caltech 256數(shù)據(jù)集上則表現(xiàn)良好。
圖16 錯誤分類圖像示例Fig.16 Misclassification image samples
提出了一種基于視覺單詞間空間位置信息的空間矢量模型,并基于兩種分類器提出了不同的分類方法:當使用SVM分類時,將空間矢量矩陣轉化為視覺語言模型,利用視覺語言直方圖特征進行分類;當使用KNN分類時,利用空間矢量矩陣具有相同行的個數(shù),通過選擇最佳的K值和權重進行分類。最后,對本文提出的基于空間矢量模型的圖像分類方法進行了對比實驗。實驗結果顯示,本文方法具有很好的分類效果。
參考文獻:
[1] Li Fei-fei. Visual recognition: computational models and human psychophysics[D]. Pasadena: College of Electronic Engineering,California Institute of Technology,2005.
[2] 劉佳,傅衛(wèi)平,王雯,等. 基于改進SIFT算法的圖像匹配[J]. 儀器儀表學報,2013,34(5):1107-1112.
Liu Jia, Fu Wei-ping, Wang Wen, et al. Image matching based on improved sift algorithm[J]. Chinese Journal of Scientific Instrument,2013,34(5):1107-1112.
[3] 生海迪. 視覺詞袋模型的改進及其在圖像分類中的應用研究[D]. 濟南:山東師范大學信息科學與工程學院,2015.
Sheng Hai-di. The improvement of bag-of-visual-words model and its application research in images classification[D]. Ji′nan: College of Information Science and Engineering,Shandong Normal University,2015.
[4] Lazebnik S, Schmid C, Ponce J. Beyond bags of features: spatial pyramid matching for recognizing natural scene categories[C]∥IEEE Conference on Computer Vision and Pattern Recognition(CVPR),New York, USA,2006:2169-2178.
[5] Wu Lei, Hu Yang, Li Ming-jing, et al. Scale-invariant visual language modeling for object categorization[J]. IEEE Transactions on Multimedia,2009,11(2):286-294.
[6] Jiang Y, Wang R, Wang C. Scene classification with context pyramid features[J]. Journal of Computer-Aided Design and Computer Graphics,2010,22(8):1366-1373.
[7] 紀昌明,周婷,向騰飛,等. 基于網(wǎng)格搜索和交叉驗證的支持向量機在梯級水電系統(tǒng)隱隨機調度中的應用[J]. 電氣自動化設備,2014,34(3):125-127.
Ji Chang-ming,Zhou Ting,Xiang Teng-fei,et al. Application of support vector machine based on grid search and cross validation in implicit stochastic dispatch of cascaded hydropower stations[J]. Electric Power Automation Equipment,2014,34(3):125-127.
[8] 閆永剛,馬廷淮,王建. KNN分類算法的MapReduce并行化實現(xiàn)[J]. 南京航空航天大學學報,2013,45(4):550-555.
Yan Yong-gang,Ma Ting-huai,Wang Jian. Parallel implementing KNN classification algorithm using Mapreduce programing model[J]. Journal of Nanjing University of Aeronautics and Astronautics,2013,45(4):550-555.
[9] 嚴利鑫,黃珍,朱敦堯,等. 基于馬爾科夫毯和隱樸素貝葉斯的駕駛行為險態(tài)辨識[J]. 吉林大學學報:工學版,2016,46(6):1851-1857.
Yan Li-xin, Huang Zhen, Zhu Dun-yao, et al. Driving risk status identification based on Markov blanket hidden Naive Bayes[J]. Journal of Jilin University (Engineering and Technology Edition),2016,46(6):1851-1857.
[10] 王寅同,王建東,陳海燕. 時間序列降維及機場噪聲中的機型識別[J]. 吉林大學學報:工學版,2016,46(4):1202-1208.
Wang Yan-tong,Wang Jian-dong,Chen Hai-yan. Time series dimensionality reduction and aircraft model recognition in airport-noise[J]. Journal of Jilin University (Engineering and Technology Edition),2016,46(4): 1202-1208.
[11] 湯鵬杰,王瀚漓,左凌軒. 并行交叉的深度卷積神經(jīng)網(wǎng)絡模型[J]. 中國圖像圖形學報,2016,21(3):339-347.
Tang Peng-jie, Wang Han-li, Zuo Ling-xuan. Parallel cross deep convolution neural networks model[J]. Journal of Image and Graphics,2016,21(3):339-347.