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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BoW词袋模型Bag of Words cpp实现(stable version 0.01)

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

致謝:基礎框架來源BoW,開發版本在此基礎上進行,已在Ubuntu、OS X上測試通過,Windows需要支持c++11的編譯器(VS2012及其以上)。

使用

代碼下載地址:bag-of-words-stable-version,這個是穩定版,上層目錄里的開發版不要下載,那是我添加測試新模塊所用的。

編譯

修改Makefile文件,如果你的系統支持多線程技術,將

CFLAGS = -std=c++11

修改為

CFLAGS = -std=c++11 -fopenMP # if openMP accesses, using this

修改完上面后,再修改編譯所需的OpenCV和cppsugar,即

INCPATH = -I/usr/local/include -I/Users/willard/codes/cpp/opencv-computer-vision/cpp/BoVW/cppsugar LIBPATH = -L/usr/local/lib

/usr/local/include和/usr/local/lib分別是OpenCV所在的包含頭文件目錄路徑和庫目錄路徑,修改為你本機所在的目錄即可。后面的cppsugar目錄同樣換成你本機的目錄。 修改。這些修改完成后,執行下面命令進行編譯:

make

編譯后即可在所在目錄生成可執行文件。

生成圖庫列表文件

對于待檢索的圖像庫imagesDataSet,執行下面命令

python imgNamesToTXT.py -t /Users/willard/Pictures/imagesDataSet

上面執行后生成一個imageNamesList.txt的文件,該文件中包含的是每幅圖像的路徑及其圖像文件名。

建立索引

執行下面命令,會完成特征提取、生成詞典、量化生成bag of word向量:

./index imageNamesList.txt

上面命令執行玩,會生成兩個文件bows.dat和dict.dat,分別存放的是圖像庫每幅圖像的bag of word向量以及詞典。

查詢圖像

按下面命令進行查詢

./search /Users/willard/Pictures/first1000/ukbench00499.jpg imageNamesList.txt

其中/Users/willard/Pictures/first1000/ukbench00499.jpg是查詢圖像,執行完后,會生成一個result.html的文件,應為要顯示檢索結果,所以這里采用的是用html頁面的方式顯示檢索結果的,用瀏覽器打開即可。

批量測試

為了評價檢索的效果,可以使用ukbenchScores.cpp計算在ukbench圖像庫上的NS score(NS分數),下面是在ukbench1000張圖像上計算的NS score:

Ukbench?first 1000 images, the NS-scores: 3.358, with tf*idf and histogram intersection kernel distance.

Ukbench?first 1000 images, the NS-scores: 3.602, with tf and histogram intersection kernel distance.

Bag of words原理

關于bag of words的原理,可以查閱我的博文BoW圖像檢索Python實戰和Bag of Words模型。注意,該框架中采用的相似性度量方式是直方圖相交(histogram intersection kernel)的方法,測試發現直方圖相交的方法要比用余弦距離度量的方式效果更好,但計算速度較慢。

開發版本bag-of-words-dev-version中加入了逆文檔詞頻以及RANSAC重排,待效果達到預期后,會添加到穩定版中。


from:?http://yongyuan.name/blog/bag-of-words-cpp-implement.html

總結

以上是生活随笔為你收集整理的BoW词袋模型Bag of Words cpp实现(stable version 0.01)的全部內容,希望文章能夠幫你解決所遇到的問題。

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