1. 前言
在配置faster-rcnn時,前提要先配置caffe框架,看到這先彆着急忙着配置caffe框架,如果你電腦已經配置好了caffe的話,那恭喜你有的你忙了,因爲faster-rcnn要用到roi_pooling_layer層,但是caffe沒有把這層添加到環境中,所以得重新編譯caffe,但是重新編譯caffe會出現很多各種各樣的錯誤,最大的一個坑就是如果你電腦上裝了python-opencv包的話,編譯caffe就會出錯。在這我也是忙了好幾天,最終重裝了系統解決了問題,真的是沒有什麼是重裝系統不能解決的,話不多說,直接看操作。我參考的是這篇博客安裝Windows版Caffe與py-faster-RCNN,但是會有一點點的問題,在這我對其進行補充和修改。
2. 安裝caffe
- 安裝vs2013,cudn,Anaconda2,下載caffe-master和NugetPackages,修改CommonSettings.props文件等日常操作就不在敘述了,可以參考我的這篇博客
win10+vs2013+caffe+gpu+python環境配置寫的很詳細。 - 打開D:\caffe\caffe-master\windows文件夾下Caffe.sln,找到libcaffe\cu\layers右鍵,點擊添加,點擊現有項
在路徑D:\caffe\caffe-master\src\caffe\layers(這是我電腦caffe的路徑)下找到roi_pooling_layer.cu文件,點擊確定。
- 同理在libcaffe\src\layers右鍵,點擊添加,點擊現有項,在第2步同一路徑下找到roi_pooling_layer.cpp文件,點擊確定。
- 在libcaffe\include\layers右鍵,點擊添加,點擊現有項,在路徑D:\caffe\caffe-master\include\caffe\layers下找到roi_pooling_layer.cpp文件,點擊確定。
- 前幾步是添加roi_pooling_layer層,但是有的博客上寫把fast_rcnn_layers.hpp文件放在caffe文件夾下,我不知道有沒有什麼影響,但是爲了以防萬一最好還是複製進行,fast_rcnn_layers.hpp的百度雲下載地址,提取碼:dion
下載下來後把文件複製到D:\caffe\caffe-master\include\caffe路徑下,如下圖所示。
到此roi_pooling_layer層已經添加成功,然後編譯caffe,以及測試是否安裝成功就不在敘述了,上面推薦的博客寫的很清楚。
3. 配置faster-rcnn
- 下載faster-rnn,鏈接地址faster-rnn,下載後你會發現py-faster-rcnn文件夾下的caffe-fast-rcnn文件是空的,所以在下載faster-rnn的時候,要點擊caffe-fast-rcnn @ 0dcd397進去下載裏面的文件。
然後複製到caffe-fast-rcnn文件下。如下圖所示。
- 因爲faster-rcnn是基於linux系統下運行的,要是想在windows系統下運行,還要下載py-faster-rcnn-windows-master文件,下載鏈接爲py-faster-rcnn-windows-master,下載 後解壓,將lib中的文件覆蓋py-faster-rcnn中lib文件夾中的文件 。
- 替換之後,在py-faster-rcnn\lib\rpn路徑下,編輯proposal_layer.py:
a.將其中的 param_str_ 替換爲 param_str。
b.將cfg_key = str(self.phase)
替換爲cfg_key = str(‘TRAIN’ if self.phase == 0 else ‘TEST’) - 複製D:\caffe\caffe-master\Build\x64\Release\pycaffe的caffe文件
整體複製到py-faster-rcnn\caffe-fast-rcnn\python文件夾下
- 修改py-faster-rcnn/lib文件夾中的setup_cuda.py文件
修改 include_dirs爲C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include
這是你電腦安裝cudn的默認路徑路徑
- 安裝python2.7的編譯器,下載地址爲VCForPython27.msi提取碼爲:2czl
直接點擊安即可。 - 打開Anaconda Prompt,可以在開始菜單裏找到,輸入pip install easydict protobuf
- 在Anaconda Prompt中輸入cd D:\py-faster-rcnn\lib並回車轉到lib文件夾下分別輸入指令
python setup.py install
python setup.py build_ext --inplace
python setup_cuda.py install
好像除了第一個其他兩個指令會出錯,我也不知道問題出現在哪裏,但是不影響程序的使用。 - 在使用faster-rcnn的時候需要用到opencv包,所以還得安裝python-opencv包。網上很多安裝教程就不在敘述了。
至此環境已經配置成功了
4. 測試
- 下載已訓練模型
下載地址爲vgg_16_2016_08_28.tar,提取碼:koyh
下載後解壓到路徑D:\py-faster-rcnn\data\faster_rcnn_models如下圖所示
- 測試,運行demo
在程序中輸入cmd,輸入cd D:\py-faster-rcnn\tools
回車輸入 python demo.py,如下圖所示
程序結果爲