1. 程式人生 > >安裝Windows版Caffe與py-faster-RCNN(強烈推薦)

安裝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的計算力得到的,其他顯示卡的計算力在這裡查詢:

https://developer.nvidia.com/cuda-gpus
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程式碼塊的最前面即可。如圖:
這裡寫圖片描述