【原創帖!轉載請注明出處:http://www.cnblogs.com/LaplaceAkuir/p/6445189.html】
本人最近研究faster-rcnn,在ubuntu成功跑通matlab版本和python版本,但是由於項目開發需要,則要在windows上進行c++版本的faster-rcnn應用,於是參照着http://blog.csdn.net/oYangZi12/article/details/53290426?locationNum=2&fps=1提供的代碼,以及Matlab版本faster-rcnn的代碼過程,自己整理了C++版本的faster-rcnn,當然只能進行測試,並且model必須是matlab的,過段時間會嘗試整理讀取py-faster-rcnn模型的c++版本代碼。
一:安裝環境:
1、windows10,
2、Visual Studio 2013
3、cuda7.5和cudnn5.1
3、Caffe版本:https://github.com/Microsoft/caffe
二:caffe安裝
將caffe-master/windows/CommonSettings.props.example復制一份就做caffe-master/windows/CommonSettings.prop,用文本編輯器notepad++(Visual stadio 打開也可以)對其進行配置。需要注意的是CPU還是使用GPU,以及是否編譯matlab和python的接口。我的配置如下:
本人安裝了Anaconda windowsX64 2.7版本來配置python,安裝Anaconda2后需要下載必要的python庫
cmd下運行
1 conda install --yes numpy scipy matplotlib scikit-image pip 2 pip install protobuf
上圖第二個箭頭處,由於本人matlab版本為2016a,在編譯微軟的caffe版本時遇到了"gpu/mxGPUArray.h" Not Found問題,因此需要在IncludePath處添加上述路徑。
打開caffe-master/windows/caffe.sln,項目選擇released模式,修改libcaffe的C++常規設置,將警告視為錯誤選擇否,如果需要使用faster-rcnn,請先看第三步faster-rcnn配置的編譯步驟,以免重復編譯,如不需要,則直接開始生成解決方案,會出現Nuget還原管理界面,結束后會在caffe-master的同級目錄下生成一個NugetPackages的目錄,裝的是各種依賴庫。結果如下圖
編譯時間很長,耐心等待后沒有出現問題就表明編譯成了。
三:faster-rcnn配置
1、重新編譯caffe
由於faster-rcnn中使用了roi-pooling-layer層,而微軟版本編譯時並未添加roi_pooling_layer,所以我們需要將頭文件,cu文件和cpp文件手動加入到libcaffe中,為防止出現其他問題。本人將caffe-master/include/caffe下的所有頭文件加入到libcaffe項目的頭文件中,caffe-master/src/caffe的cpp和cu文件加入到libcaffe的源文件和cu文件中。
添加完成后,再次重新編譯整個項目。編譯成功后,整個caffe就編譯完成了。
2、新建faster-rcnn-test項目
在caffe-master/windows/下新建項目。
本人整理好的第三方依賴項faster_3rdparty,鏈接:http://pan.baidu.com/s/1qYttnsS 密碼:d0ud,將其解壓到caffe-master/目錄下。
c++包含目錄:../../include; ../../faster_3rdparty/include C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/include(本人cuda安裝目錄)
庫鏈接目錄:../../Build/x64/Release;../../faster_3rdparty/lib;C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64;
附加依賴項項:opencv_calib3d2410.lib;opencv_contrib2410.lib;opencv_core2410.lib;opencv_features2d2410.lib;opencv_flann2410.lib;opencv_gpu2410.lib;opencv_highgui2410.lib;
opencv_imgproc2410.lib;opencv_legacy2410.lib;opencv_ml2410.lib;opencv_objdetect2410.lib;opencv_ts2410.lib;opencv_video2410.lib;caffe.lib;libcaffe.lib;cudart.lib;cublas.lib;
curand.lib;gflags.lib;libglog.lib;libopenblas.dll.a;libprotobuf.lib;leveldb.lib;lmdb.lib;hdf5.lib;hdf5_hl.lib
將faster_3rdparty/bin目錄添加到系統環境變量中。
添加本人上傳的faster-rcnn c++代碼,鏈接https://github.com/zhanglaplace/Faster_rcnn_Cplusplus_vs2013,代碼結合Matlab版本的faster-rcnn以及參考http://blog.csdn.net/oYangZi12/article/details/53290426?locationNum=5&fps=1 提供的代碼。下載model,model文件可以從網盤下載,網盤鏈接:http://pan.baidu.com/s/1dF88JvV ,設置新建項目為啟動項目,且只編譯該項目。
運行結果如下:
PS:如果編譯成功的話,不要忘了給我的github工程點個star!