BOF——Bag-of-Featrures

本文主要介紹:BOF(Bag-of-Featrures)的原理及其應用。

1.1 引言

      文檔分類領域有一種模型稱爲詞袋(Bag of words)模型,它是自然語言處理與信息檢索過程中的一種簡化模型。在這種模型中,文本(段落或文檔)被視爲忽略了語法甚至語序的無序詞彙集合。文本中每個單詞的出現都是獨立的,不依賴於其他詞是否出現。詞袋模型對文檔分類有着重要的作用,它提出了一種基於統計的文檔描述思想,這種思想首先將訓練集文檔中的詞彙進行訓練,產生含有獨一無二的單詞的字典。然後使用字典對目標文檔進行處理,統計字典中單詞在文檔中出現的頻率,以此構建出能夠描述整個文檔的描述向量(注:其中,與主題相關的詞一般在文檔中出現頻率較高,因此可以根據詞的頻率,對文檔進行歸類之後就可以在此向量基礎上對文檔進行檢索或分類操作。詞袋模型雖然簡單,但是高效。在文本分類中,詞袋模型與 SVM 分類器、樸素貝葉斯分類器結合能得到非常好的分類效果。

1.2 算法原理

       圖像可以視爲一種文檔對象,圖像中不同的局部區域或其特徵可看做構成圖像的詞彙,其中相近的區域或其特徵可以視作爲一個詞。這樣,就能夠把文本檢索及分類的方法用到圖像分類及檢索中去。

       Bag-of-Features模型仿照文本檢索領域的Bag-of-Words方法,把每幅圖像描述爲一個局部區域/關鍵點(Patches/Key Points)特徵的無序集合。使用某種聚類算法(K-means)將局部特徵進行聚類,每個聚類中心被看作是詞典中的一個視覺詞彙(Visual Word),相當於文本檢索中的詞,視覺詞彙由聚類中心對應特徵形成的碼字(code word)來表示(可看當爲一種特徵量化過程,可理解爲:碼字表示聚類中心的特徵矢量,如該類的平均矢量等)。所有視覺詞彙形成一個視覺詞典(Visual Vocabulary),對應一個碼書(code book)理解:碼書是所有聚類中心特徵矢量的集合),即碼字的集合,詞典中所含詞的個數反映了詞典的大小。

      圖像中的每個特徵都將被映射到視覺詞典的某個詞上,這種映射可以通過計算特徵間的距離去實現,然後統計每個視覺詞的出現次數或頻率,圖像可描述爲一個維數相同的直方圖向量,即Bag-of-Features,如下圖所示,可用直方圖向量來表示或表達圖像:


由上圖可知,對同一詞典,不同圖像得到的直方圖不同,因此可以用直方圖向量來表示圖像。

視覺詞彙計算示意圖:



理解:

1)視覺詞彙的確定:

    計算訓練圖像中所有圖像的關鍵點和描述,然後在特徵空間對關鍵點聚類,生成類心,每個類心爲一個視覺詞彙,類心的數目即視覺詞典中視覺詞彙的個數(訓練和聚類過程與圖像庫中圖像的種類無關,只是爲了得到一個能表述所有圖像特徵的視覺詞典,該過程類似文檔分類中,對相同或相似詞彙進行合併,得到一個單詞字典)。

2)視覺詞彙個數的影響:

    視覺詞彙的個數即視覺詞典的大小,詞典大小的選擇也是問題,詞典過大,單詞缺乏一般性,對噪聲敏感,計算量大,圖象直方圖向量的維數高;詞典太小,單詞區分性能差,對相似的目標特徵無法表示。

3)詞彙個數的確定問題:
    使用k-means聚類,除了其K和初始聚類中心選擇的問題外,對於海量數據,輸入矩陣的巨大將使得內存溢出及效率低下。有方法是在海量圖片中抽取部分訓練集分類,使用樸素貝葉斯分類的方法對圖庫中其餘圖片進行自動分類。另外,由於圖片爬蟲在不斷更新後臺圖像集,重新聚類的代價顯而易見。

1.3 應用

1.3.1圖像分類

      Bag-of-Features更多地是用於圖像分類或對象識別圖像分類和識別過程如下:

      訓練過程:提取訓練集中所有圖像的局部特徵或關鍵點描述,然後進行聚類,得到視覺詞彙,所有的視覺詞彙構成視覺詞典,並根據視覺詞典計算訓練圖像的直方圖向量,即BOF特徵,根據訓練集中每類圖像的BOF特徵,訓練分類器,得到對象或場景的分類模型;

      分類過程對於待測圖像,提取局部特徵或關鍵點描述,計算待測圖像特徵與詞典中每個碼字(視覺詞彙)的特徵距離,即將每個特徵都將被映射到視覺詞典中點的某個詞上,統計每個視覺詞彙的頻率,得到的直方圖向量即爲待測圖像的Bag-of-Features特徵;把待測圖像特徵輸入分類器,判定其類別。如下圖所示:


1.3.2 圖像檢索

      Bag-of-wordsCV中的應用首先出現在Andrew Zisserman[6]中爲解決對視頻場景的搜索,其提出了使用Bag-of-words關鍵點投影的方法來表示圖像信息。後續更多的研究者歸結此方法爲Bag-of-Features,並用於圖像分類、目標識別和圖像檢索。在Bag-of-Features方法的基礎上,Andrew Zisserman進一步借鑑文本檢索中TF-IDF模型(Term FrequencyInverse Document Frequency)來計算Bag-of-Features特徵向量。接下來便可以使用文本搜索引擎中的反向索引技術對圖像建立索引,高效的進行圖像檢索。

BOF圖像檢索算法流程:

1.首先,我們用surf算法生成圖像庫中每幅圖的特徵點及描述符。(surf算法是關鍵點計算和描述算法,作用和SIFT相似)。

2.再用k-means算法對圖像庫中的特徵點進行訓練,生成類心。

3.生成每幅圖像的BOF,具體方法爲:判斷圖像的每個特徵點與哪個類心最近,最近則放入該類心,最後將生成一列頻數表,即初步的無權BOF(直方圖向量)。

4.通過tf-idf對頻數表加上權重,生成最終的bof。(因爲每個類心對圖像的影響不同。比如超市裏條形碼中的第一位總是6,它對辨別產品毫無作用,因此權重要減小)。

5.待處理圖像也進行3.4步操作,生成該圖的直方圖向量BOF

6.將待處理圖像的Bof向量與圖像庫中每幅圖的Bof向量求夾角,夾角最小的即爲匹配對象。

 

說明:

1.TF-IDF是一種用於信息檢索的常用加權技術,在文本檢索中,用以評估詞語對於一個文件數據庫中的其中一份文件的重要程度。詞語的重要性隨着它在文件中出現的頻率成正比增加,但同時會隨着它在文件數據庫中出現的頻率成反比下降

TF的主要思想是:如果某個關鍵詞在一篇文章中出現的頻率高,說明該詞語能夠表徵文章的內容,該關鍵詞在其它文章中很少出現,則認爲此詞語具有很好的類別區分度,對分類有很大的貢獻。

IDF的主要思想是:如果文件數據庫中包含詞語A的文件越少,則IDF越大,則說明詞語A具有很好的類別區分能力。
詞頻(Term FrequencyTF)指的是一個給定的詞語在該文件中出現的次數。如:tf = 0.030 ( 3/100 )表示在包括100個詞語的文檔中詞語'A'出現了3次。
逆文檔頻率(Inverse Document FrequencyIDF)是描述了某一個特定詞語的普遍重要性,如果某詞語在許多文檔中都出現過,表明它對文檔的區分力不強,則賦予較小的權重;反之亦然。如:idf = 13.287 ( log (10,000,000/1,000) )表示在總的10,000,000個文檔中,有1,000個包含詞語'A'。最終的TF-IDF權值爲詞頻與逆文檔頻率的乘積。


1.4拓展

1. 直方圖相似性度量

    每個圖像可以用直方圖向量來表示,兩幅圖像是否相同或相似,以及它們的相似程度,可以用直方圖相似性度量函數來確定,度量函數有多種,可以選擇不同的核函數來表示,如:線型核,塌方距離測度核,直方圖交叉核(The Pyramid Match Kernel)等的選擇。

2.空間信息
   將圖像表示成一個無序局部特徵集的特徵包方法,丟掉了所有的關於空間特徵佈局的信息,在描述性上具有一定的有限性。爲此, Schmid[2]提出了基於空間金字塔的Bag-of-FeaturesSpatial Pyramid Matching)。

3.用分量差進行圖像描述

   Jégou[7]提出VLAD(vector of locally aggregated descriptors),其方法是如同BOF先建立出含有kvisual wordcodebook,而不同於BOF將一個local descriptorNN分類到最近的visual word中,VLAD所採用的是計算出local descriptor和每個visual word(ci)在每個分量上的差距,將每個分量的差距形成一個新的向量來代表圖片。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章