1. 程式人生 > >Bag of Features (BOF)影象檢索演算法

Bag of Features (BOF)影象檢索演算法

1.首先,我們用surf演算法生成影象庫中每幅圖的特徵點及描述符。

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

3.生成每幅影象的BOF,具體方法為:判斷影象的每個特徵點與哪個類心最近,最近則放入該類心,最後將生成一列頻數表,即初步的無權BOF。

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

5.對query進來的影象也進行3.4步操作,生成一列query圖的BOF。

6.將query的Bof向量與影象庫中每幅圖的Bof向量求夾角,夾角最小的即為匹配物件。

影象檢索中應用LSH實現快速搜尋,其在一定概率的保證下解決了高維特徵查詢的問題,但筆者在應用LSH結合SIFT特徵實踐影象檢索實驗時,由於每張影象涉及上百個特徵,那麼在查詢一張圖片時,需要進行上而次的特徵查詢,即便是將查詢圖片的特徵點數篩選至50%的量,一次圖片查詢需要進行的特徵查詢次數亦不容小窺。那麼有沒有方法可以將任意圖片的所有特徵向量用一個固定維數的向量表出,且這個維數並不因圖片特徵點數不同而變化?本篇要講到的方法可以解決這個問題,儘管它並不是因這個問題而生的。

Bag-of-Words模型源於文字分類技術,在資訊檢索中,它假定對於一個文字,忽略其詞序和語法、句法。將其僅僅看作是一個詞集合,或者說是詞的一個組合,文字中每個詞的出現都是獨立的,不依賴於其他詞是否出現,或者說這篇文章的作者在任意一個位置選擇詞彙都不受前面句子的影響而獨立選擇的。

影象可以視為一種文件物件,影象中不同的區域性區域或其特徵可看做構成影象的詞彙,其中相近的區域或其特徵可以視作為一個詞。這樣,就能夠把文字檢索及分類的方法用到影象分類及檢索中去。

                       Accelerating Bag-of-Features SIFT Algorithm  for 3D Model Retrieval

Bag-of-Features模型仿照文字檢索領域的Bag-of-Words方法,把每幅影象描述為一個區域性區域/關鍵點(Patches/Key Points)特徵的無序集合。使用某種聚類演算法(如K-means)將區域性特徵進行聚類,每個聚類中心被看作是詞典中的一個視覺詞彙(Visual Word),相當於文字檢索中的詞,視覺詞彙由聚類中心對應特徵形成的碼字(code word)來表示(可看當為一種特徵量化過程)。所有視覺詞彙形成一個視覺詞典(Visual Vocabulary),對應一個碼書(code book),即碼字的集合,詞典中所含詞的個數反映了詞典的大小。影象中的每個特徵都將被對映到視覺詞典的某個詞上,這種對映可以通過計算特徵間的距離去實現,然後統計每個視覺詞的出現與否或次數,影象可描述為一個維數相同的直方圖向量,即Bag-of-Features。

                                           

                          Bag of Features Codebook Generation by Self-Organisation

 Bag-of-Features更多地是用於影象分類或物件識別。在上述思路下對訓練集提取Bag-of-Features特徵,在某種監督學習(如:SVM)的策略下,對訓練集的Bag-of-Features特徵向量進行訓練,獲得物件或場景的分類模型;對於待測影象,提取區域性特徵,計算區域性特徵與詞典中每個碼字的特徵距離,選取最近距離的碼字代表該特徵,建立一個統計直方圖,統計屬於每個碼字的特徵個數,即為待測影象之Bag-of-Features特徵;在分類模型下,對該特徵進行預測從實現對待測影象的分類。

Classification Process

1、區域性特徵提取:通過分割、密集或隨機採集、關鍵點或穩定區域、顯著區域等方式使影象形成不同的patches,並獲得各patches處的特徵。

                                                                                    

其中,SIFT特徵較為流行。

2、構建視覺詞典:

由聚類中心代表的視覺詞彙形成視覺詞典:

3、生成碼書,即構造Bag-of-Features特徵,也即區域性特徵投影過程:

4、SVM訓練BOF特徵得分類模型,對待測影象BOF特徵預測:

Retrieval Process

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

Hamming embedding and weak geometric consistency for large scale image search

實現檢索的過程同分類的過程無本質的差異,更多的是細節處理上的差異:

1、區域性特徵提取;

2、構建視覺詞典;

3、生成原始BOF特徵;

4、引入TF-IDF權值:

TF-IDF是一種用於資訊檢索的常用加權技術,在文字檢索中,用以評估詞語對於一個檔案資料庫中的其中一份檔案的重要程度。詞語的重要性隨著它在檔案中出現的頻率成正比增加,但同時會隨著它在檔案資料庫中出現的頻率成反比下降。TF的主要思想是:如果某個關鍵詞在一篇文章中出現的頻率高,說明該詞語能夠表徵文章的內容,該關鍵詞在其它文章中很少出現,則認為此詞語具有很好的類別區分度,對分類有很大的貢獻。IDF的主要思想是:如果檔案資料庫中包含詞語A的檔案越少,則IDF越大,則說明詞語A具有很好的類別區分能力。
詞頻(Term Frequency,TF)指的是一個給定的詞語在該檔案中出現的次數。如:tf = 0.030 ( 3/100 )表示在包括100個詞語的文件中, 詞語'A'出現了3次。
逆文件頻率(Inverse Document Frequency,IDF)是描述了某一個特定詞語的普遍重要性,如果某詞語在許多文件中都出現過,表明它對文件的區分力不強,則賦予較小的權重;反之亦然。如:idf = 13.287 ( log (10,000,000/1,000) )表示在總的10,000,000個文件中,有1,000個包含詞語'A'。
最終的TF-IDF權值為詞頻與逆文件頻率的乘積。

5、對查詢影象生成同樣的帶權BOF特徵;

6、查詢:初步是通過餘弦距離衡量,至於建立索引的方法還未學習到,望看客指點。

Issues

1、使用k-means聚類,除了其K和初始聚類中心選擇的問題外,對於海量資料,輸入矩陣的巨大將使得記憶體溢位及效率低下。有方法是在海量圖片中抽取部分訓練集分類,使用樸素貝葉斯分類的方法對相簿中其餘圖片進行自動分類。另外,由於圖片爬蟲在不斷更新後臺影象集,重新聚類的代價顯而易見。
2、字典大小的選擇也是問題,字典過大,單詞缺乏一般性,對噪聲敏感,計算量大,關鍵是圖象投影后的維數高;字典太小,單詞區分效能差,對相似的目標特徵無法表示。
3、相似性測度函式用來將圖象特徵分類到單詞本的對應單詞上,其涉及線型核,塌方距離測度核,直方圖交叉核等的選擇。
4、將影象表示成一個無序區域性特徵集的特徵包方法,丟掉了所有的關於空間特徵佈局的資訊,在描述性上具有一定的有限性。為此, Schmid[2]提出了基於空間金字塔的Bag-of-Features。
5、Jégou[7]提出VLAD(vector of locally aggregated descriptors),其方法是如同BOF先建立出含有k個visual word的codebook,而不同於BOF將一個local descriptor用NN分類到最近的visual word中,VLAD所採用的是計算出local descriptor和每個visual word(c­i)在每個分量上的差距,將每個分量的差距形成一個新的向量來代表圖片。

Resources

Two bag-of-words classifiers(Matlab)
Code for Vocabulary tree based image search(C++)
matlab+VC 實現Bag of features 
Bag of Words/Bag of Features的Matlab原始碼
一個用BoW|Pyramid BoW+SVM進行影象分類的Matlab Demo
Bag-Of-Words中K-Means聚類的效率優化
aMMAI BLOG
Visual Wordsを用いた類似畫像検索
bayonを使って畫像からbag-of-keypointsを求める

Paper

1.Bag of words models(.ppt )  byLi Fei-Fei(Stanford)

2.  Spatial Pyramid Matching:

3. Improving bag-of-features for large scale image search

  • Improving bag-of-features for large scale image search.
    Hervé Jégou, Matthijs Douze, Cordelia Schmid.International Journal of Computer Vision, Volume 87, Number 3 - feb 2010.[pdf]
    Demo:bigimbaz image search engine 

4. Hamming embedding and weak geometric consistency for large scale image search. Hervé Jégou, Matthijs Douze, Cordelia Schmid
European Conference on Computer Vision - oct 2008.[pdf][slides]

5. Bag-of-colors for improved image search. Christian Wengert, Matthijs Douze, Hervé Jégou,ACM Multimedia (2011).[pdf]

6. Video Google: A Text Retrieval Approach to Object Matching in Videos  .  J. Sivic, A. Zisserman.  IEEE International Conference on Computer Vision, Volume 2, page 1470--1477, 2003.[PDF ]

7.Aggregating local descriptors into a compact image representation. Hervé Jégou, Matthijs Douze, Cordelia Schmid, Patrick Pérez. IEEE Conference on Computer Vision & Pattern Recognition - jun 2010. [pdf][sildes]

 

轉自:http://hi.baidu.com/hj11yc/item/1c08ac29db90480242634ace