標籤:style 使用 for re c 演算法
Bag-of-words簡介最初的Bag-of-words ,也叫做“詞袋”,在資訊檢索中,Bag-of-words model假定對於一個文本,忽略其詞序和文法,句法,將其僅僅看做是一個詞集合,或者說是詞的一個組合,文本中每個詞的出現都是獨立的,不依賴於其他詞是否出現。
應用於文本的BoW簡單一實例
John likes to watch movies. Mary likes too.
John also likes to watch football games.
根據上述兩句話中出現的單詞, 我們能構建出一個字典
{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}
該字典中包含10個單詞, 每個單詞有唯一索引. 根據這個字典, 我們能將上述兩句話重新表達為下述兩個向量:
[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
[1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
這兩個向量共包含10個元素,其中第i個元素表示字典中第i個單詞在句子中出現的次數。因此BoW模型可認為是一種統計長條圖。在文本檢索和處理應用中, 可以通過該模型很方便的計算詞頻.
Bag-of-words應用於影像處理背景知識SIFT簡介SIFT,尺度不變特徵轉換(Scale-invariant feature transform,SIFT),是用於影像處理領域的一種描述子。這種描述具有尺度不變性,可在映像中檢測出關鍵點。是一種局部描述子。
SIFT優勢SIFT特徵不只具有尺度不變性,即使改變旋轉角度,映像亮度或拍攝視角,仍然能夠得到好的檢測效果。所以應用於Image Recognition時,可以抑製圖像尺度、角度、亮度等影響。
映像特徵提取映像可以類比為文檔,映像中的單詞可以定義為一個映像塊的特徵向量。那麼映像的BoW模型即是 “映像中所有映像塊的特徵向量得到的長條圖”。
1.特徵提取假設有N張映像,第i張映像映像可由n(i)個image patch組成, 也即可以由n(i)個特徵向量表達。則總共能得sum(n(i))個特徵向量(即單詞)。
特徵向量可以使用SIFT方法擷取,每一個patch特徵向量的維數是128。
2.產生詞典/碼本假設詞典的大小為100,即有100個詞。用K-means演算法對所有的patch進行聚類,k=100,當k-means收斂時,我們也得到了每一個聚類最後的質心,那麼這100個質心(維數128)就是詞典裡的100個詞了,詞典構建完畢。
3.根據碼本產生長條圖對每張圖片,通過最近鄰計算該圖片的每個 “單詞”應該屬於聚類中的“哪一類”單詞,從而得到該圖片對應於該碼本的BoW表示。
Bag-of-words模型構建完成,就可以進行分類、預測等訓練