天天看點

BOW詞袋模型 

轉載自https://blog.csdn.net/u010213393/article/details/40987945

BoW模型

Bag-of-words model (BoW model) 最早出現在自然語言處理(Natural Language Processing)和資訊檢索(Information Retrieval)領域.。該模型忽略掉文本的文法和語序等要素,将其僅僅看作是若幹個詞彙的集合,文檔中每個單詞的出現都是獨立的。BoW使用一組無序的單詞(words)來表達一段文字或一個文檔.。近年來,BoW模型被廣泛應用于計算機視覺中。

基于文本的BoW模型的一個簡單例子如下:

首先給出兩個簡單的文本文檔如下:

        John likes to watch movies. Mary likes too.

        John also likes to watch football games.

基于上述兩個文檔中出現的單詞,建構如下一個詞典 (dictionary):

       {"John": 1, "likes": 2,"to": 3, "watch": 4, "movies": 5,"also": 6, "football": 7, "games": 8,"Mary": 9, "too": 10}

上面的詞典中包含10個單詞, 每個單詞有唯一的索引, 那麼每個文本我們可以使用一個10維的向量來表示。如下:

       [1, 2, 1, 1, 1, 0, 0, 0, 1, 1]

       [1, 1,1, 1, 0, 1, 1, 1, 0, 0]

該向量與原來文本中單詞出現的順序沒有關系,而是詞典中每個單詞在文本中出現的頻率。

BoW模型用于圖像分類

2004年Gabriella Csurka、Christopher R. Dance等人基于詞袋模型提出了一種圖像的分類方法--Bag of Keypoints。圖像中的單詞(words)被定義為一個圖像塊(image patch)的特征向量(feature vector),圖像的BoW模型即 “圖像中所有圖像塊的特征向量得到的直方圖”。

關于BoW模型用于圖像分類提取特征直方圖包含以下幾個步驟:

1 特征提取

提取訓練樣本圖像塊中的特征向量,提取特征向量的方法可以使SIFT、SUFR等。該步驟生成的圖像特征的描述子應該具有不變性對于光照的的變化、變形、碰撞等。

圖1表示一幅通過SURF方法提取的特征點圖像。

BOW詞袋模型 

                                          圖1 SURF方法檢測特征點

2 建構詞典(Vocabulary)

    通過上步的特征提取,我們得到了所有訓練樣本圖像中的特征。比如有N張訓練圖檔,使用SIFT方法提取圖像特征,我們最終将得到

BOW詞袋模型 

個特征點。接下來我們将使用NF個特征點建構詞典,建構詞典過程需要使用一些聚類算法,通常選用k-means方法。首先選取n個聚類中心,通過疊代算法算出最終的n個聚類中心。

圖2為K均值聚類示意圖。其中菱形、圓形、長方形、五邊形代表四個類(由黃色圓框分别包圍),通過K均值聚類算法後,将形成4個新的聚類中心,如圖2中4個藍色實心原點表示。

                                       圖2 K均值聚類示意圖

n個聚類中心即我們建構的詞典,以後每來一個新的特征點,都将該新特征點映射到n個聚類中心中的一個。

3 計算圖像特征直方圖

    通過K均值聚類算法後,得到n個新的聚類中心,即得到了特征直方圖的一個基,如圖3所示。

圖3 特征直方圖的基

接下來我們将圖像的特征點聚類到n個已經生成的詞典(即n個聚類中心)中,并且統計落入每個詞典中的特征點的個數。這樣我們可以得到一幅圖像的特征直方圖。

不同類别的特征直方圖不一樣,圖4表示類1的特征直方圖,圖5表示類2的特征直方圖,圖6是一幅真實圖像的特征直方圖。

圖4 類1的特征直方圖

圖5 類2的特征直方圖

 圖6 真實圖像的特征直方圖

上面是關于Bow用于圖像分類提取特征直方圖的基本方法,關于BOW模型用于圖像分類,使用SVM訓練請看下篇博文!

如有不正确希望多多包涵,歡迎指出共同交流學習。

Surf和Sift特征提取代碼下載下傳位址http://download.csdn.net/detail/u010213393/8159185

繼續閱讀