日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bag of Words模型

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bag of Words模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這幾天忙里偷閑看了一些關于BOW模型的知識,雖然自己做圖像檢索到目前為止并沒有用到過BOW模型,不過了解一下BOW并不是一件毫無意義的事情。網上關于理解BOW模型也很多,而且也很詳細,再寫一點關于BOW模型的理解,無異于重新造一次輪子,不過我一直堅信重復造輪子并不是完全沒有意義的,重要的是你能夠從中學到很多的知識,如果可能,你甚而再這個重復造輪子的過程中發現新問題,并進行改進。好了,回歸正題。

BOW (bag of words) 模型簡介 Bag of words模型最初被用在文本分類中,將文檔表示成特征矢量。它的基本思想是假定對于一個文本,忽略其詞序和語法、句法,僅僅將其看做是一些詞匯的集合,而文本中的每個詞匯都是獨立的。簡單說就是講每篇文檔都看成一個袋子(因為里面裝的都是詞匯,所以稱為詞袋,Bag of words即因此而來),然后看這個袋子里裝的都是些什么詞匯,將其分類。如果文檔中豬、馬、牛、羊、山谷、土地、拖拉機這樣的詞匯多些,而銀行、大廈、汽車、公園這樣的詞匯少些,我們就傾向于判斷它是一篇描繪鄉村的文檔,而不是描述城鎮的。舉個例子,有如下兩個文檔:

文檔一:Bob likes to play basketball, Jim likes too.

文檔二:Bob also likes to play football games.

基于這兩個文本文檔,構造一個詞典:

Dictionary = {1:”Bob”, 2. “like”, 3. “to”, 4. “play”, 5. “basketball”, 6. “also”, 7. “football”,8. “games”, 9. “Jim”, 10. “too”}。

這個詞典一共包含10個不同的單詞,利用詞典的索引號,上面兩個文檔每一個都可以用一個10維向量表示(用整數數字0~n(n為正整數)表示某個單詞在文檔中出現的次數):

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

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

向量中每個元素表示詞典中相關元素在文檔中出現的次數(下文中,將用單詞的直方圖表示)。不過,在構造文檔向量的過程中可以看到,我們并沒有表達單詞在原來句子中出現的次序(這是本Bag-of-words模型的缺點之一,不過瑕不掩瑜甚至在此處無關緊要)。

為什么要用BOW模型描述圖像 SIFT特征雖然也能描述一幅圖像,但是每個SIFT矢量都是128維的,而且一幅圖像通常都包含成百上千個SIFT矢量,在進行相似度計算時,這個計算量是非常大的,通行的做法是用聚類算法對這些矢量數據進行聚類,然后用聚類中的一個簇代表BOW中的一個視覺詞,將同一幅圖像的SIFT矢量映射到視覺詞序列生成碼本,這樣每一幅圖像只用一個碼本矢量來描述,這樣計算相似度時效率就大大提高了。

構建BOW碼本步驟:

  • 假設訓練集有M幅圖像,對訓練圖象集進行預處理。包括圖像增強,分割,圖像統一格式,統一規格等等。
  • 提取SIFT特征。對每一幅圖像提取SIFT特征(每一幅圖像提取多少個SIFT特征不定)。每一個SIFT特征用一個128維的描述子矢量表示,假設M幅圖像共提取出N個SIFT特征。
  • 用K-means對2中提取的N個SIFT特征進行聚類,K-Means算法是一種基于樣本間相似性度量的間接聚類方法,此算法以K為參數,把N個對象分為K個簇,以使簇內具有較高的相似度,而簇間相似度較低。聚類中心有k個(在BOW模型中聚類中心我們稱它們為視覺詞),碼本的長度也就為k,計算每一幅圖像的每一個SIFT特征到這k個視覺詞的距離,并將其映射到距離最近的視覺詞中(即將該視覺詞的對應詞頻+1)。完成這一步后,每一幅圖像就變成了一個與視覺詞序列相對應的詞頻矢量。
  • 構造碼本。碼本矢量歸一化因為每一幅圖像的SIFT特征個數不定,所以需要歸一化。如上述例子,歸一化后為[1 0 0],1/12*[5 3 4].測試圖像也需經過預處理,提取SIFT特征,將這些特征映射到為碼本矢量,碼本矢量歸一化,最后計算其與訓練碼本的距離,對應最近距離的訓練圖像認為與測試圖像匹配。 > 設視覺詞序列為{眼睛 鼻子 嘴}(k=3),則訓練集中的圖像變為: > > 第一幅圖像:[1 0 0] > > 第二幅圖像:[5 3 4]......
  • 當然,在提取sift特征的時候,可以將圖像打成很多小的patch,然后對每個patch提取SIFT特征。

    總結一下,整個過程其實就做了三件事,首先提取對 n 幅圖像分別提取SIFT特征,然后對提取的整個SIFT特征進行k-means聚類得到 k 個聚類中心作為視覺單詞表,最后對每幅圖像以單詞表為規范對該幅圖像的每一個SIFT特征點計算它與單詞表中每個單詞的距離,最近的+1,便可得到該幅圖像的碼本。實際上第三步是一個統計的過程,所以BOW中向量元素都是非負的。Yunchao Gong 2012年NIPS上有一篇用二進制編碼用于圖像快速檢索的文章就是針對這類元素是非負的特征而設計的編碼方案。

    from:?http://yongyuan.name/blog/bag-of-word-model.html

    總結

    以上是生活随笔為你收集整理的Bag of Words模型的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。