資源簡介
本demo實現(xiàn)的是基于bow原理對圖片進(jìn)行分類,并實現(xiàn)對選取得測試集進(jìn)行查找
BoW(Bag of Words)詞袋模型最初被用在文本分類中,將文檔表示成特征矢量。它的基本思想是假定對于一個文本,忽略其詞序和語法、句法,僅僅將其看做是一些詞匯的集合,而文本中的每個詞匯都是獨立的。簡單說就是講每篇文檔都看成一個袋子(因為里面裝的都是詞匯,所以稱為詞袋,Bag of words即因此而來),然后看這個袋子里裝的都是些什么詞匯,將其分類。如果文檔中豬、馬、牛、羊、山谷、土地、拖拉機(jī)這樣的詞匯多些,而銀行、大廈、汽車、公園這樣的詞匯少些,我們就傾向于判斷它是一篇描繪鄉(xiāng)村的文檔,而不是描述城鎮(zhèn)的。
serachFeatures.py中,前面主要是一些通過parse使得可以在敲命令行的時候可以向里面?zhèn)鬟f參數(shù),后面就是提取SIFT特征,然后聚類,計算TF和IDF,得到單詞直方圖后再做一下L2歸一化。一般在一幅圖像中提取的到SIFT特征點是非常多的,而如果圖像庫很大的話,SIFT特征點會非常非常的多,直接聚類是非常困難的(內(nèi)存不夠,計算速度非常慢),所以,為了解決這個問題,可以以犧牲檢索精度為代價,在聚類的時候先對SIFT做降采樣處理。最后對一些在在線查詢時會用到的變量保存下來。對于某個圖像庫,我們可以在命令行里通過下面命令生成BoF。
query.py只能每次查找一張圖片,并返回與之匹配度(遞減)最接近的6張圖片
代碼片段和文件信息
評論
共有 條評論