利用OpenCV + contrib + DNN 和 google的訓練好的分類器模型,實現一個簡單的圖片識別demo。
后續再詳細研究下OpenCV和DNN。
參考鏈接:
OpenCV3-contrib庫使用:http://www.lxweimin.com/p/e5d41cab8057
OpenCV3-DNN使用:http://www.lxweimin.com/p/fdf9c3b70dd4
OpenCV3中contrib模塊的添加:http://blog.csdn.net/streamchuanxi/article/details/51044929
一、工具準備
以下工具和源碼,本例統一放到F:\dnn-demo-test 目錄。
1. vs2015或者vs2013,安裝社區個人免費版就可以;
2. CMake3.5,cmake-3.5.1-win32.zip 官網下載安裝即可
下載鏈接:
https://cmake.org/files/v3.5/cmake-3.5.1-win32-x86.zip
3. OpenCV3.0.0:
下載鏈接:
https://nchc.dl.sourceforge.net/project/opencvlibrary/opencv-win/3.0.0/opencv-3.0.0.exe
下載完安裝OpenCV到指定目錄,本例安裝到 F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0
4. opencv_contrib
下載鏈接:
https://github.com/Itseez/opencv_contrib
5. bvlc_googlenet.caffemodel (訓練好的分類器模型)
下載鏈接:
http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel
二、編譯安裝OpenCV-3.0.0及opencv-contrib
1. cmake生成工程
打開CMake GUI工具。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CMake GUI
Where is the source code:選擇F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0\opencv或其他的解壓目錄。
Where to build the binaries:選擇F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0\opencv\mybuild或對應的目錄。
點擊Congigure按鈕,CMake會自己進行配置。在彈出的對話框中選擇Visual Studio 14 2015。
初步配置完成后,在OPENCV_EXTREA_MODULES_PATH選項中選擇F:\dnn-demo-test\opencv_contrib\modules,再次點擊Congigure進行配置。
如果配置完成沒有問題,則點擊Generate進行生成。
2. 編譯安裝
進入F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0\opencv\mybuild目錄,打開OpenCV.sln;
選擇release和debug模式,分別編譯整個解決方案,每次編譯完成后,在CMakeTargets工程中的INSTALL上右鍵選擇Project Only->Build Only INSTALL。
完成后在F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0\opencv\mybuild\install目錄下就會生成編譯好的OpenCV文件。
3. 環境變量配置
增加如下環境變量:
修改Path環境變量:
三、新建caffe_googlenet工程
1. 打開vs2015-->新建console工程-->工程名caffe_goolenet。
2. 將F:\dnn-demo-test\opencv_contrib\modules\modules\dnn\samples目錄下的四個文件拷貝到項目文件夾內。
3. 配置工程
項目-->caffe_googlenet屬性,修改配置如下(配置里面選所有配置):
配置屬性-->VC++目錄-->可執行文件路徑末尾添加:
F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0\opencv\mybuild\install\bin;
配置屬性-->VC++目錄-->包含目錄末尾添加:
F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0\opencv\mybuild\install\include;
F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0\opencv\mybuild\install\include\opencv;
F:\dnn-demo-test\opencv-3.0\Dt\opencv-3.0\opencv\mybuild\install\include\opencv2;
配置屬性-->鏈接器-->輸入-->附加依賴項-->編輯 在末尾加入以下庫:
opencv_bgsegm300d.lib
opencv_bioinspired300d.lib
opencv_calib3d300d.lib
opencv_ccalib300d.lib
opencv_core300d.lib
opencv_datasets300d.lib
opencv_dnn300d.lib
opencv_dpm300d.lib
opencv_face300d.lib
opencv_features2d300d.lib
opencv_flann300d.lib
opencv_hal300d.lib
opencv_highgui300d.lib
opencv_imgcodecs300d.lib
opencv_imgproc300d.lib
opencv_line_descriptor300d.lib
opencv_ml300d.lib
opencv_objdetect300d.lib
opencv_photo300d.lib
opencv_reg300d.lib
opencv_rgbd300d.lib
opencv_saliency300d.lib
opencv_shape300d.lib
opencv_stereo300d.lib
opencv_structured_light300d.lib
opencv_superres300d.lib
opencv_surface_matching300d.lib
opencv_text300d.lib
opencv_tracking300d.lib
opencv_ts300d.lib
opencv_video300d.lib
opencv_videoio300d.lib
opencv_videostab300d.lib
opencv_xobjdetect300d.lib
4. 編譯運行
編譯工程,成功后,還不能正常運行,會提示缺少很多文件,到編譯目標目錄,按下圖拷貝文件到指定release或debug目錄:
運行:
打開cmd進入上述目錄(有個簡便方法:打開release文件夾,選中路徑,敲cmd,會自動打開cmd并進入到release目錄):
test文件夾,拷貝幾個待測試圖片:
cmd中輸入,caffe_googlenet.exe? 圖片路徑。
會看到識別結果如圖所示: