1. 程式人生 > >深度學習之windows python faster rcnn 配置及demo執行

深度學習之windows python faster rcnn 配置及demo執行

寫這篇文章主要是針對深度學習零基礎的新手,因為我也是新手,在配置環境這一塊花了我很大的心血,網上的資料很多都只是說配置,然後直接執行就完了,可是對於我這樣的新手在配置的過程中會遇見各種各樣的問題,所以在此給大家把我所遇到的問題總結出來,以免後續的人少走彎路,不廢話了。

1 系統環境

windows 7 X64
VS2013
GTX970
CUDA8.0
cudnn5.0
Miniconda X64 for python 2.7
opencv3.0

2安裝環境

參考我上面一篇部落格,caffe已經配置好了,並自己生成了release版本的庫檔案,配置faster rcnn來檢測運動目標,剛開始配置這玩意兒時我沒有安裝Miniconda 然後我就直接配,配的過程中會遇見很多少包的情況,最噁心的是有的包在windows下面是根本安裝不了,所以配置faster rcnn最好還是安裝一個miniconda或者其他的andaconda等。
Miniconda 安裝,本片文章涉及到的軟體都在最下面提供,Miniconda這個官網資源是非常的差,費了很大的勁才下載好,所以都免費給大家提供。
Miniconda安裝沒什麼好說的,傻瓜式的

這裡寫圖片描述

把這兩個都給勾上就行了,會自動配置系統環境以及python,這個安裝的路徑我是選擇的D:/Miniconda的目錄,放在其他盤也行。然後在cmd命令提示裡面輸入 conda ,如果不提示找不到conda命令就說明安裝成功,環境配置成功
安裝完成後開始下載faster rcnn所需的依賴包
conda install --yes numpy scipy matplotlib scikit-image pip 
直接複製沒毛病哈,下載的過程可能會很慢,最好先翻牆然後再下載,下載完成後,檢視conda管理的工具包 conda list 

這裡寫圖片描述

安裝包的時候我是沒遇見問題的,如果你們安裝的時候遇到什麼問題,請百度或者谷歌,我想安裝這一步的問題應該不大。

3 faster rcnn的配置

faster rcnn的下載,我是用的這個大神的,別弄錯了,這個還是很權威的,注意在下載的時候一定要用git下載 git clone –recursive https://github.com/rbgirshick/py-faster-rcnn.git
這樣的命令,要不然包會下載不全,windows下使用git下載的方式應該不用我在寫了吧,我是用的git for windows這個軟體,可以百度上下載,很方便的,就不多說了。下載好了之後解壓到自己的目錄,我的位置是 E:\Caffe\faster_rcnn
由於faster rcnn官方並沒有提供windows的編譯檔案,不過有大神已經編譯好了,我們就直接用吧

https://github.com/MrGF/py-faster-rcnn-windows
還是使用git下載,下載後再解壓
這裡寫圖片描述

然後將E:\Caffe\faster_rcnn\py-faster-rcnn-windows-master下面的lib資料夾複製並替換了E:\Caffe\faster_rcnn\py-faster-rcnn下面的lib,全部替換了。

然後lib目錄下面有2個python寫的檔案
這裡寫圖片描述

然後使用notepad++開啟,你們也可以用記事本開啟setup_cuda.py
這裡寫圖片描述
在檔案的33行
include_dirs = [numpy_include, ‘C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include’])
把gpu的目錄給放到這個地方,我的是預設的安裝目錄,根據你們自己的目錄來填寫,記得填寫兩個‘\’ 我複製過來的語句被瀏覽器轉義了就只看見一個,上面的圖片當中是2個’\’,別填寫錯了 ,然後儲存,

然後開啟cmd進入E:\Caffe\faster_rcnn\py-faster-rcnn\lib這個目錄,怎麼進不用我說了吧,然後輸入python setup.py install 一定要進入這個目錄,在執行這個命令的時候有可能會出錯,沒錯的就不管了
有可能出現python27.dll是X64位的,然後和目標機X86不配置之類的話,那就不要使用cmd的來執行,使用vs2013的命令提示工具來執行
這裡寫圖片描述
然後進入E:\Caffe\faster_rcnn\py-faster-rcnn\lib這個目錄,再執行剛剛的命令,此時應該沒有剛剛的錯誤了。
但是如果再出現Microsoft Visual C++ 9.0 is required……這樣的錯誤的話,SET VS90COMNTOOLS=%VS120COMNTOOLS% (對於VS2013)複製這句話在命令列裡面,然後再執行剛剛的語句
這裡寫圖片描述

出現這個說明安裝成功,同理執行python setup_cuda.py install,差不多的提示。

上面都成功後,此時需要把caffe編譯好的pycaffe存入到faster rcnn對應的目錄下
E:\Caffe\caffe\caffe\Build\x64\Release\pycaffe目錄下的caffe目錄完全拷貝在這個目錄
E:\Caffe\faster_rcnn\py-faster-rcnn\caffe-fast-rcnn\python的caffe目錄 替換掉,根據自己對應的解壓目錄來替換,
關於caffe編譯成release的檔案本文就不說了,我上篇部落格寫的有

接下來修改配置檔案E:\Caffe\faster_rcnn\py-faster-rcnn\lib\fast_rcnn下滿的config.py 如果沒有gpu的話就需要修改這個,如果有gpu就不用修改,本文就不說純cpu的編譯了,因此就不需要修改

3最後執行python的demo目標檢測程式

首先下載資料集,然後放在這個data目錄下面的faster_rcnn_models目錄下,就2個檔案,大概700-800M的資料caffemodel檔案

這裡寫圖片描述

千萬別放錯了,要不然執行找不到資料集,本文最下面提供資料集的下載地址

然後這個目錄tools下面有一個demo.py的程式
這裡寫圖片描述
用命令工具進入到這個tools的目錄,然後執行命令python demo.py
最關鍵的就是接下來的問題了,需要你一路披荊斬棘,過五關斬六將才能看見最終的結果,我就是被接下來的問題快折磨的放棄了,還好最終堅持下來,弄得我滿身疲憊,結果執行出來之後看著就非常有成就感,所以你們在配置的時候遇到什麼困難也別放棄,下面我所遇到的問題可能你們遇不到,也有可能會有額外的新問題也可以個我留言,反正別放棄!!

問題一

這裡寫圖片描述
這個是缺少opencv的包,opencv待會兒也提供 我的是3.0的版本,安裝在D盤,看自己安裝在哪。然後開啟這個目錄D:\Opencv3.0\opencv\build\python\2.7\x64下面只有一個檔案就是cv2.pyd,然後複製該檔案到Miniconda的目錄下(現在就能體現出miniconda管理軟體的好處的,什麼都配置好了,所以建議這個必須安裝)D:\Miniconda\Lib\site-packages這個的根目錄下,別放錯了,算了還是截個圖吧
這裡寫圖片描述

然後再執行python demo.py

問題2

這裡寫圖片描述

提示缺少包easydict,沒有安裝的話就直接在cmd中輸入pip install easydict

再執行python demo.py

問題3

這裡寫圖片描述

提示缺少skimage.io的包,最開始我就是因為沒有安裝miniconda,然後我使用python下載,然後各種百度啊 在windows上面就是安裝不上這個包,windows上面做這個到處都是坑啊,無奈之下 我還是安裝了minicoda,所有再次建議大家還是把這個給裝上,如果按照我開始的步驟已經執行過這句conda install –yes numpy scipy matplotlib scikit-image pip的話 此時就沒有這個問題,如果沒執行的話 此時來執行
conda install scipy matplotlib scikit-image等待下載安裝

再執行python demo.py

問題4

這裡寫圖片描述

哇 這問題也弄得我很難受,出現這個問題後,我在miniconda下面下載這個包,下載好了之後再執行 python demo.py 可是還是包這個錯,有可能你們不會,我說說我的怎麼處理的,我把yaml的安裝路徑新增到系統的環境變數,預設的安裝位置是D:\Miniconda\Lib\site-packages\conda_env下,所以我在系統的環境變數path後面加入了這個,可是執行的demo的時候還是出現這個問題,啊 瞬間崩潰,然後找啊找,demo少依賴是吧,那我就直接把這個yaml放在它需要的依賴庫裡試試,E:\Caffe\faster_rcnn\py-faster-rcnn\lib\rpn 我就放在這了,然後再執行demo 哇咔咔果然通過了,2個檔案 yaml.py yaml.pyc。所以遇到問題多嘗試—-沒毛病,不過還沒完了 新問題又來了

問題5

這裡寫圖片描述

這個問題當然也是少包,同樣在cmd下輸入pip install protobuf 然後等待安裝,看清楚有的是用的pip 有的是用的conda,具體為什麼就不說了,因為我也不知道。
然後再執行demo

問題6

這裡寫圖片描述

哇 最燙手的問題來了,網上找各種資料啊,就是找不到啊,藍瘦香菇啊,後來網上看見別人說,微軟windows branch的分支沒有把這個roi_pooling層給加進去,那麼辦法了,然後我再去看編譯好的caffe,因為python寫的demo都是用的caffe的框架,而caffe的框架都需要libcaffe庫的支撐,所有我找到caffe目錄下的libcaffe
這裡寫圖片描述
看他到底編譯roi_pooling這個沒有,所有用右鍵(記住不是雙擊,是右鍵)開啟libcaffe.vcxproj用notepad++開啟,當然也可以用記事本開啟,你能找得到位置的話

發現裡面所有的編譯檔案都沒有這個roi_pooling,但是caffe裡面又有roi_pooling_layer.cpp .cu .hpp這3個檔案,所以我就嘗試在裡面把這個新增進去,按照原來的格式
在157行加入了

<ClCompile Include="..\..\src\caffe\layers\roi_pooling_layer.cpp" />

在265行加入了

<ClInclude Include="..\..\include\caffe\layers\roi_pooling_layer.hpp" />

在344行加入了

<CudaCompile Include="..\..\src\caffe\layers\roi_pooling_layer.cu" />

當然這個libcaffe.vcxproj.filters檔案也一起修改,還是按照它預設的格式新增這3個檔案
在291行加入

<ClCompile Include="..\..\src\caffe\layers\roi_pooling_layer.cpp">
<Filter>src\layers</Filter>
</ClCompile>

在569行加入

<ClInclude Include="..\..\include\caffe\layers\roi_pooling_layer.hpp">
<Filter>include\layers</Filter>
</ClInclude>

在781行加入

<CudaCompile Include="..\..\src\caffe\layers\roi_pooling_layer.cu">
<Filter>cu\layers</Filter>
</CudaCompile>

好了最後開啟windows目錄下的caffe.sln 其他配置在上一篇部落格已經寫了,此時就直接右鍵生成libcaffe,果然能生成成功,於是在把整個caffe的所有工程給編譯了,果然全部生成成功16個,看著他成功後很激動啊。
然後把
E:\Caffe\caffe\caffe\Build\x64\Release\pycaffe目錄下的caffe目錄
重新複製一次到
E:\Caffe\faster_rcnn\py-faster-rcnn\caffe-fast-rcnn\python目錄的caffe目錄,因為重新編譯了一次嘛,所以再次替換

然後再執行demo.py 果然沒有剛剛的錯了,不過又出現新問題

問題7

這裡寫圖片描述

根據它的提示檢視這個py檔案,E:\Caffe\faster_rcnn\py-faster-rcnn\lib\rpn這個目錄下的proposal_layer.py檔案
64行的原始碼是這樣的
cfg_key = str(self.phase) # either ‘TRAIN’ or ‘TEST’
後面有個註釋 使用train或者test 所以簡單的改的話就隨便修改成test就行了,正常改的話就這樣:去掉cfg_key = str(self.phase) # either ‘TRAIN’ or ‘TEST’這一行,改為下面的

        if self.phase:
            cfg_key = 'TEST'
        else:
            cfg_key = 'TRAIN'

不過一定得注意格式對齊,python很講究空格的,如果改成這樣出現語法錯誤的話,那麼就用cfg_key = ‘TEST’#str(self.phase) 吧,這個至少是能通過的
然後儲存再次執行demo,如果是GPU的話 那麼就執行出結果了,如果是純cpu的話 我就不清楚了,你們就自己動手研究了,好了 展示一下成果吧

這裡寫圖片描述

如果你們按照我的方式配出來的話就點個贊吧,如果有其他的錯誤就留個言,純手工,自己截圖 寫了3個小時了,好累啊,轉載的時候請說明轉載出處
哎呀 資源你們需要的話就留言吧,我這上傳速度太慢了