摘 要 圖像分類問題應用廣泛,是一個典型的模式識別問題。首先對訓練圖像進行網格稠密采樣,然后對每一個網格采樣點提取其周圍區域的SIFT特征,接著使用Kmeans聚類算法對訓練圖像集上的SIFT特征進行聚類,生成一個視覺詞匯表,從而得到基于BOW的圖像表示。采用直方圖交叉核訓練了SVM 分類器,結果表明,該方法在圖像分類問題上取得了較好的平均分類準確率。
關鍵詞 圖像分類 SIFT BOW SVM
中圖分類號:TP391 文獻標識碼:A
圖像分類問題是計算機視覺領域的重要研究方向,本身也是一個典型的模式識別問題。圖像分類是指給定一副圖像,自動地給圖像分配一個類標。一般而言,圖像的類標描述了圖像的總體信息,類標信息本質上就是一種語義信息。因此,圖像分類是跨越語義鴻溝,實現智能化圖像管理的一個重要的途徑。
1 基于BOW的圖像分類框架
本文采用基于BOW的圖像分類框架如圖1所示。
圖1 基于BOW的圖像分類框架
為了能夠正確地區分圖像類別,需要有效地表述圖像語義內容。現有的圖像表示方法大致可分為3類:(1)基于圖像的全局低級特征。通過提取圖像的整體或分塊顏色、紋理等特征,然后用一個特征矢量來表示圖像內容。(2)基于圖像區域分割。首先將圖像先進行區域分割,并根據不同區域類型和及其關系并行地表述圖像語義特性。(3)基于圖像塊(patch)的視覺詞匯表示法。所謂圖像塊是指圖像中相鄰并且連通的像素集合。相對于以像素為單位的處理,以塊為單位進行處理在計算量、推廣性和集成上下文信息上等方面均有優勢。
基于圖像塊的方法一般可分為圖像塊特征提取,構建視覺詞匯碼書(codebook),用直方圖表示圖像等三個步驟。視覺詞匯表示和模型建立。圖像塊提取有兩種方法:一種是基于興趣點的方法;另一種則是基于規則網格的方法。將得到的圖像塊進行歸一化,再用特征描述子(本文選用SIFT descriptor)描述得到的圖像塊,然后通過聚類、量化,從而構建得到碼書。聚類方法有很多種選擇,本文選用的是Kmeans聚類方法。碼書構建完以后,需要將SIFT 描述子向第二步驟中得到的碼書投影,統計一幅圖像中不同圖像塊在不同碼字(code)上的詞頻分布,從而得到該圖像的詞袋表示(bag of words,BOW)。
基于BOW對圖像表示之后,進一步選用生成模型或者判別模型完成圖像分類。目前常用概率生成模型有pLSA(probabilist iclatent semantic analysis)模型和LDA( latent Dirichlet allocation)模型,其基本思想是引入一個潛在語義維,對應于圖像的語義特性,通過概率生成模型,將圖像的高維BOW表示映射到低維的潛在語義表示上。而判別模型最常用的方法是支持向量機(support vector machine,SVM)。
2 算法具體流程
2.1 主要步驟
本文算法主要借鑒文獻,分為訓練階段和測試階段兩個部分。
(1)訓練階段。對所有訓練圖像進行規則網格分割,并提取每個圖像塊的SIFT特征。在訓練圖像中抽取40幅圖像的所有圖像塊特征,進行Kmeans聚類。聚類算法的初始化采用隨機選取初始值,聚類的次數上限設定為100次,如果超過100次, 就采用第100次聚類得到的結果;聚類停止的準則是相鄰2次聚類結果的改變,其小于某個閾值。對于視覺單詞聚類為V(文中取V=200)個類別,得到視覺詞匯碼書,然后按照這個碼本對訓練圖像庫中的所有圖像提取其視覺單詞,建立圖像的金字塔特征。并通過訓練得到SVM分類器。
(2)測試階段。對輸入的測試圖像提取其圖像塊特征,并根據訓練部分得到的聚類碼書,進而得到圖像的金字塔表示;然后使用金字塔匹配核的SVM分類器對測試圖像進行分類,得到最終的實驗結果。
2.2 視覺詞匯表的生成
文中首先用DOG算子來探測圖像中的感興趣區域,然后用SIFT描述子來描述這些感興趣區域,最后對這些區域的SIFT特征進行聚類來生成視覺詞匯。視覺詞匯表的具體生成過程如下:(1)對訓練圖像進行網格稠密采樣,從而得到相應的網格采樣點。本文使用的規則網格大小是16€?6,網格采樣間隔為8像素;(2)對每一個網格采樣點提取其周圍區域的SIFT特征來描述該網格采樣點。在本文中使用網格采樣點周圍16€?6的區域來計算SIFT特征,SIFT特征用該區域梯度方向直方圖表示,是一個128維向量;(3)使用Kmeans聚類算法對訓練圖像集上的所有網格采樣點的SIFT特征進行聚類,每個聚類中心對應一個視覺詞匯,從而生成一個由V個視覺詞匯構成的視覺詞匯表。
2.3 空間金字塔特征
假設視覺詞匯的數目是,為圖像中標號為的視覺詞匯的坐標,則級空間金字塔核可以表示為(,) = (,),其中是級空間金字塔匹配核。對圖像進行金字塔式的網格分割,在每個金字塔級別( = 1,…,)下,得到個圖像子區域。標號為的視覺詞匯可以形成個柱的統計直方圖,,則金字塔匹配核可以表示為:
其中I為直方圖交叉函數(histogram intersection function),即:
(1)
也可以從另一個角度理解級空間金字塔匹配核:對屬于每個金字塔級別下的全部子區域中的所有視覺詞匯,分別統計其直方圖:
(2)
令表示直方圖的連接操作,將在不同級別和不同空間區域中得到的所有視覺詞匯直方圖加權連接起來,就得到圖像的空間金字塔特征,即:
(3)
其中為不同金字塔級別的權值。式(3)得到的是空間金字塔特征,可以使用式(1)進行匹配。
3 實驗結果及分析
3.1 實驗數據庫和參數設置
本文中圖像種類均為6類,每類600幅圖像,其中300幅用于訓練,其它300幅用于測試。圖像主要來自于Caltech101標準數據庫。實驗圖像示例如圖2所示。處理過程中沒有使用顏色信息,即所有圖像均是按照灰度圖像進行處理的。
本文中多類分類器是通過one-vs-rest的方式來構造:對每一類都學習得到一個區分它和其他類別的SVM 分類器,本文采用直方圖交叉函數作為SVM 分類器的核函數。直方圖交叉函數是通過多核學習(Multiple Kernel Learning , MKL)獲得的。原圖是第0層,權重1/4,第一層是1/4,第二層是1/2,是按金字塔匹配核的權重公式算的。SVM分類器源代碼為libsvm3.11 SVM。
本文的所有實驗都將進行十次的隨機選擇訓練圖像和測試圖像,然后分別計算每次試驗各類的平均準確率。十次試驗得到的平均準確率的均值將作為最終的平均分類準確率。
圖2 六類object:airplanes, bonsai, butterfly, chair, dolphin, yin_yang
3.2 實驗結果
圖3給出了在L= 3的情況下,本文方法所得到的圖像分類的混淆矩陣。混淆矩陣的X和Y 軸分別表示場景類別,第i行第j列的值表示第i類圖像被分類為第j類圖像的比例,混淆矩陣對角線上元素的值代表了每類圖像的分類準確率。圖4則給出了更直觀的6類object的平均分類準確率情況。分析圖3,圖4,主要有以下結論:
(1)本文方法(SPM+SVM)在圖像分類問題上取得了較好的識別率,對于各類的平均正確率均在80%以上;主要原因是文中圖像識別的數據集過于簡單。
(2)在6類object中,海豚(dolphin 5)是最容易錯分的類別。主要原因是它們在局部特征的空間分布上變化比較大并沒有很大的相似性。
(3)文中的方法在計算量上會單一特征大,但是由于不用進行模型參數估計和推理, 并且采用了金字塔匹配核的SVM 分類器,因此本文方法比采用統計模型的方法,如pLSA等的計算量小。
圖3 目標識別圖像的混淆矩陣
圖4 平均分類準確率
4 結論
圖像分類受到了很多研究者的關注,并被應用到各種民生領域,例如人臉識別、指紋識別、交通標志牌識別、商標檢索等等。另外,圖像分類的相關研究工作也促進了機器學習和模式識別的發展。本文基于SPM和SVM的架構,實現了圖像分類任務,結果表明,文中提出的方法在圖像分類問題上取得了較好的平均分類準確率。
參考文獻
[1] Lowe, David G. \"Distinctive image features from scale-invariant keypoints.\" International journal of computer vision 60.2 (2004): 91-110.
[2] Chih-Chung Chang and Chih-Jen Lin. LIBSVM3.11: a library for support vector machines. ACM Transactions on Intelligent Systems and Technology, 2011.