windows+py_faster_rcnn+vs2013+無GPU

安裝caffe:
致謝:
http://blog.csdn.net/zb1165048017/article/details/51355143

前言
首先來一波地址:
happynear大神的第三方caffe:http://blog.csdn.NET/happynear/article/details/45372231
Neil Z大神的第三方caffe:https://initialneil.wordpress.com/2015/01/11/build-caffe-in-windows-with-visual-studio-2013-cuda-6-5-OpenCV-2-4-9/
caffe提供Windows工具包(caffe-windows):https://github.com/BVLC/caffe/tree/windows 百度雲下載地址:鏈接:http://pan.baidu.com/s/1bp1BFH1 密碼:phf3
微軟提供Windows工具包(caffe-master):https://github.com/Microsoft/caffe 百度雲下載地址:鏈接:http://pan.baidu.com/s/1hs8ngpA 密碼:ith0
微軟的Windows三方包(Nuget得到的包):鏈接:http://pan.baidu.com/s/1pKQKJJP 密碼:2vzy
VS2013安裝包:鏈接:http://pan.baidu.com/s/1b6VDJg 密碼:f2jp
熟悉完CPU版本的配置以後,可以啓用GPU的配置:http://blog.csdn.net/zb1165048017/article/details/51549105
我使用的是微軟官方提供的鏈接,基本上與caffe官網上提供安裝包差不多,具體區別沒有細看,這個caffe無需配置第三方庫的環境變量,直接就可以自動下載所需要的庫,包含opencv和boost等。
【注】VS2012的也有人寫過,自行參考。此版嚴格只支持VS2013。此版本無需配置任何第三方環境哦,因爲在項目屬性裏面都已經包含進去了,非常方便。如果出現了一些文件打不開或者其它問題,第一可能是VS自身問題,第二可能你配置過其它caffe,修改過環境變量,導致找不到頭文件之類的。
第一步
下載caffe官網提供的工具包,複製Windows下CommonSettings.props.example,後綴改爲CommonSettings.props,如下:

這裏寫圖片描述
第二步
由於我電腦無GPU,所以修改複製過來的CommonSettings.props配置文件:
這裏寫圖片描述
這裏寫圖片描述
注意:第二張圖中python和matlab選擇一個即可。
第三步
1 conda install –yes numpy scipy matplotlib scikit-image pip
2 pip install protobuf
雙擊Windows下的caffe.sln,項目選擇released模式,修改libcaffe的C++常規設置,將警告視爲錯誤選擇否:
這裏寫圖片描述
由於faster-rcnn中使用了roi-pooling-layer層,而微軟版本編譯時並未添加roi_pooling_layer,所以我們需要將頭文件,cu文件和cpp文件手動加入到libcaffe中,爲防止出現其他問題。本人將caffe-master/include/caffe下的所有頭文件加入到libcaffe項目的頭文件中,caffe-master/src/caffe的cpp和cu文件加入到libcaffe的源文件和cu文件中。開始生成解決方案,會出現Nuget還原管理界面,

在VS2013中生成解決方案:
【注】官網自帶的總共有16個項目(圖中爲17個,因爲predict 是作者寫的測試項目,已經在工程中去掉),請注意覈對~~~ :->
這裏寫圖片描述
然後會彈出一個窗口,如下圖。Nuget所需要的第三方庫,可能會未響應,慢慢等吧。結束後會在caffe-master的同級目錄下生成一個NugetPackages的目錄,該第三方庫有十六個文件夾,裝的是各種依賴庫。最好覈對一下文件,免得沒下載完就被你關掉了。如果出現無法連接的那個問題,說明IP ping不過去,直接把問題複製到網上搜,有解決方法。
這裏寫圖片描述

第四步
爲了方便大家解決這個問題,我直接壓縮了一個,下載解壓放到與caffe-master並列文件夾即可:鏈接:http://pan.baidu.com/s/1nuIJMp7 密碼:1zgo
這個時候,當下載完畢,VS仍在繼續執行生成任務,最終可能失敗,原因下面會提示說無法打開libcaffe.lib之類的error。解決方法是直接對libcaffe重新生成,或者直接生成一次

當這個文件生成成功以後,重複一下上一步,對所有文件再重新生成一下,這時候應該不會出現libcaffe.lib無法打開的錯誤了。
如果
【PS】按照這個流程編譯下來很少會出現無法解析外部符號問題,出現這種問題有很大可能是靜態庫沒連接好,但是微軟的所有庫是自動下載的,除非沒下載全。還有關於一些.h 頭文件未找到,請自行覈對此頭文件的位置,然後再配置文件中隨便找個IncludePath(此includePath必須在編譯時候被使用),將路徑加進去即可,同時也必須注意是否需要相關的lib文件。不過幫忙配置挺多電腦以後,基本沒遇到太多問題。
第五步
設置一下運行項,解決方案’caffe’->屬性

或者下面直接單啓動項目是caffe也行,不過最好改一下,原因相信玩過VS的都清楚,如果是單啓動項目,那麼在你重新編譯工程的時候,只會運行次單啓動項目,其它項目不會運行,這就是爲什麼很多人編譯以後發現Release或者Debug文件夾下只有caffe.exe而沒有conver_imageset.exe等可執行文件的原因。
第六步
運行caffe.cpp,直接雙擊打開caffe.cpp,然後ctrl+f5直接編譯,出現如下命令窗口說明編譯成功

【PS】這個其實告訴你瞭如何調用caffe.exe去訓練你的模型

如果你的caffe文件夾下的Build/x64/Release沒有pycaffe,在vs中單獨對pycaffe工程生成解決方案。若有錯誤,直接按vs的提示找錯誤更快捷些。

py-faster-rcnn配置
下載py-faster-rcnn,建議git clone,不然缺少分支, https://github.com/rbgirshick/py-faster-rcnn。(Git clone https://github.com/rbgirshick/py-faster-rcnn.git 也會缺少分支的,要把caffe-fast-rcnn文件夾下的文件再git clone一次才行)確認caffe編譯後的Build/x64/Release/添加到系統環境目錄。

  caffe編譯下Build/x64/Release/pycaffe/caffe 目錄複製到py-faster-rcnn/caffe-faster-rcnn/python目錄下,替換原有文件。

  py-faster-rcnn windows lib:https://github.com/MrGF/py-faster-rcnn-windows的py-faster-rcnn下載下來,把py-faster-rcnn下的lib複製到py-faster-rcnn下替換到原來的lib文件。

  安裝必要庫:conda install pyqt ,本人用的anaconda2,可以直接安裝。此步驟一般會安裝多個依賴庫。

  cmd切換到py-faster-rcnn/lib目錄:執行python setup.py install 。在這裏可能會遇到問題,比如error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27,此時千萬別下這個vcpython27,因爲它支持的標準時c99,而安裝編譯時需要編譯一個c90寫的c程序,就是各種報錯。我的解決方案是指定的vs2015爲編譯器,vs2013我沒試過,應該也可以。解決方案爲:在環境變量中添加項 VS90COMNTOOLS ,值爲 “VS安裝路徑\Common7\Tools”,後重啓。 如
  這裏寫圖片描述
Errorimport提示缺少什麼庫就加什麼庫,直至安裝完成。
成功後,修改setup_cuda.py(不用gpu的不要修改和安裝)中第33行,CUDA的include路徑爲你自己的路徑。執行 python setup_cuda.py install ,如果遇到TypeError: object of type ‘NoneType’ has no len() 錯誤,添加VS的cl.exe所在路徑至環境變量:
VS的安裝路徑下有一個VC文件夾,將其中的bin目錄添加值環境變量(該目錄下有cl.exe),路徑參考如下:
D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
安裝成功後: 運行demo  

  下載模型文件

  方案1、官方鏈接:http://www.cs.berkeley.edu/~rbg/faster-rcnn-data下載faster -rcnn model

  方案2、百度網盤地址:http://pan.baidu.com/s/1c1JQdby

  cmd切到py-faster-rcnn目錄下,執行python ./tool/demo.py 可能出現錯誤和解決辦法:

  1、編譯遇到 AttributeError: ‘ProposalLayer’ object has no attribute ‘param_str_’ 問題,找到對應文件,修改param_str_爲param_str ,完成編譯。

  2、proposal_layer.py出現 keyerror:’1’錯誤,將第64行改cfg_key=’TEST’#str(self.phase)。注意:這裏如果照着複製’TEST’,“ ’ “可能會變成中文字符,導致跑網絡失敗。
3、如果遇到ImportError: DLL load failed: 找不到指定的程序。參考:http://blog.csdn.net/lzhalan2016/article/details/52415998
第一步:
在命令中輸入以下指令卸載相應的包:pip uninstall numpy;pip uninstall scipy;pip uninstall matplotlib;pip scikit-learn
第二步:
在下面的網站中找到對應的包,如果是python2.7就是cp27系列的,電腦是多少位的一定下載對應版本
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib

http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn
第三步:
找到安裝python的目錄下的scipyts文件,在這個文件裏安裝相應的whl包
比如指令爲 cd C:/xxx/xxx/scipyts,然後在這裏用指令 pip install D:/xxx/xxx/xxx.whl
假如有successful的顯示就是完成了。
  至此,編譯完成,運行成功。
  

發佈了20 篇原創文章 · 獲贊 32 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章