安裝Windows版Caffe與py-faster-RCNN(強烈推薦)
在安裝windows版faster RCNN的時候,用用build_win.cmd的方式編譯了好幾天各種問題,參考這篇部落格,一天就弄好了.非常感謝作者的分享,不過作者七、配置Faster RCNN中的第一步1.下載說的不夠詳細,我進行了優化.
一、 安裝顯示卡驅動
二、 安裝VS2013
1.安裝VS2013
一直點下一步就安裝成功了。
注:一定要是VS2013,其他版本的VS不能編譯caffe
2.將VS的cl.exe所在路徑新增至環境變數
VS的安裝路徑下有一個VC資料夾,將其中的bin目錄新增值環境變數(該目錄下有cl.exe),路徑參考如下:(以預設安裝路徑為例)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
- 1
三、 安裝Anaconda2
2.安裝
安裝路徑為:
注:建議安裝在C盤,裝在其他盤容易出問題
C:\Anaconda2
- 1
其他預設即可。
4.新增系統路徑(可選)
(這一步的目的是除了使用Anaconda Prompt之外開啟cmd也可以使用python)
右鍵點選我的電腦,按如圖所示把Anaconda2加入到系統路徑中
四、 安裝CUDA8.0
五、 cuDNN5
2.解壓
解壓後,會有一個cuda資料夾,等會用。
六、安裝Caffe
1.下載
下載地址:https://github.com/Microsoft/caffe
下載選項:
2.解壓
解壓到C:\caffe-master,把第五步得到的cuda資料夾拷貝到caffe-master資料夾中。
3.安裝
(1)開啟C:\caffe-maste\windows資料夾,將其中CommonSettings.props.example檔案複製一份,重新命名為CommonSettings.props
(2)用文字編輯器開啟CommonSettings.props
a. 把其中的CudaVersion改為8.0
b. 把PythonSupport改為true
c. 把CuDnnPath改為剛才拷貝cuda資料夾的地址,即C:\caffe-master
d. 將CudaArchitecture改成compute_61,sm_61(這裡的61是根據1080的計算力得到的,其他顯示卡的計算力在這裡查詢:
e. 把PythonDir改為C:\Anaconda2
(3)開啟C:\caffe-master\windows路徑下的Caffe.sln,新增faster rcnn需要的roi pooling layer
a. 在libcaffe專案下的 cu/layers 資料夾右擊,新增——現有項,找到caffe-master\src\caffe\layers下的roi_pooling_layer.cu檔案,點選新增
b. 在libcaffe專案下的 src/layers 資料夾右擊,新增——現有項,找到caffe-master\src\caffe\layers下的roi_polling_layer.cpp檔案,點選新增
c. 在libcaffe專案下的 include/layers 資料夾右擊,新增——現有項,找到caffe-master\include\caffe\layers下的roi_polling_layer.hpp檔案,點選新增
(4)編譯libcaffe
選中libcaffe,點選選單欄的除錯-libcaffe屬性
選擇配置屬性-常規,把配置改為Releas,平臺改為活動(x64)
選擇C/C++,把將警告視為錯誤改為否
點選確定關閉視窗。
右鍵選擇libcaffe,點選生成(會下載依賴項,所以需要網路)
等一段時間後生成成功。
成功之後,在caffe-master資料夾中就會有一個Build資料夾。
(5)編譯其他
右鍵解決方案,屬性
選擇當前選定內容並確定
這裡改為Release
右鍵解決方案,點選生成解決方案
生成成功。
(6) 移動
將caffe-master\Build\x64\Release\pycaffe\caffe資料夾
移動到C:\Anaconda2\Lib\site-packages資料夾中
這樣在python中可以import caffe不出錯
至此,Caffe安裝完成。
七、配置Faster RCNN
1.下載
地址:https://github.com/rbgirshick/py-faster-rcnn
解壓到C盤,重新命名其資料夾為py-faster-rcnn
注意:此處不能直接下載解壓,直接下載解壓caffe-fast-rcnn資料夾就是空的
在執行demo.py的時候會出現報錯: \protobuf_download-prefix\src\protobuf_download\src\google\protobuf\text_format.cc:298] Error parsing text-format caffe.NetParameter: 350:21: Message type "caffe.LayerParameter" has no field named "roi_pooling_param".
利用git進行下載: git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 這樣就不報這個錯誤了
2.替換
我們這裡下載的faster rcnn是基於linux系統下執行的,要是想在windows系統下執行,還需要已經修改好的環境安裝檔案。
以下為具體步驟:
下載windows修改項
地址:https://github.com/MrGF/py-faster-rcnn-windows
(1)解壓,將lib中的檔案覆蓋py-faster-rcnn中lib資料夾中的檔案
(2)替換之後,在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')
3.拷貝生成的caffe
將caffe-master\ Build\x64\Release\pycaffe資料夾下的caffe資料夾
整體複製到py-faster-rcnn\caffe-fast-rcnn\python資料夾下
4.修改py-faster-rcnn/lib資料夾中的setup_cuda.py檔案
(1)修改arch=sm_61
(2)修改CUDA include_dirs為C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
5.安裝Microsoft Visual C++ Compiler for Python 2.7
這個時候還缺少C++對於python2.7的編譯器,所以需要安裝。
下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=44266
下載選項:
下載之後雙擊安裝即可。
6.開啟Anaconda Prompt,可以在開始選單裡找到
輸入
pip install easydict protobuf
並回車,以安裝faster rcnn需要的環境
7.在Anaconda Prompt中輸入cd C:\py-faster-rcnn\lib並回車轉到lib資料夾下
分別輸入以下指令並回車:
python setup.py install
python setup.py build_ext --inplace
python setup_cuda.py install
- 1
- 2
- 3
當出現以下結束語時,安裝成功
注:若出現
c:\py-faster-rcnn\lib\pycocotools\maskApi.h(8) : fatal error C1083: Cannot open include file: 'stdbool.h': No such file or directory
這樣的錯誤,是因為Python自己找的VS版本不對,開啟C:\Anaconda2\Lib\distutils\msvc9compiler.py
檔案,把304行的
VERSION = get_build_version()
修改為
VERSION = 12.0
就可以了。
至此,py-faster-rcnn安裝成功。
八、測試
2.測試
開啟Anaconda Prompt輸入
cd C:\py-faster-rcnn\tools
- 1
並回車,輸入
python demo.py
- 1
回車,即可看到預測結果。
注:
若出現這種錯誤
Traceback (most recent call last):
File "demo.py", line 22, in <module>
import matplotlib.pyplot as plt
File "C:\Anaconda2\lib\site-packages\matplotlib\pyplot.py", line 32, in <module>
import matplotlib.colorbar
File "C:\Anaconda2\lib\site-packages\matplotlib\colorbar.py", line 36, in <module>
import matplotlib.contour as contour
File "C:\Anaconda2\lib\site-packages\matplotlib\contour.py", line 21, in <module>
import matplotlib.font_manager as font_manager
File "C:\Anaconda2\lib\site-packages\matplotlib\font_manager.py", line 58, in <module>
from matplotlib import afm, cbook, ft2font, rcParams, get_cachedir
ImportError: DLL load failed: 找不到指定的程式。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
則開啟demo.py
檔案,把
import matplotlib.pyplot as plt
這句import放在import程式碼塊的最前面即可。如圖: