caffe下matlab、python的配置和faster RCNN的运行
因?yàn)樽约旱碾娔X沒(méi)有安裝linux環(huán)境,顯卡也不支持CUDA,所以在實(shí)現(xiàn)faster RCNN的demo的過(guò)程中還是很麻煩的。
完善項(xiàng)目文件
下圖是vs2013 打開(kāi)的caffe解決方案的工程目錄。由于windows版本caffe的不完善,要先在其libcaffe項(xiàng)目中添加roi_poling層的相關(guān)支持。(Fast R-CNN的ROIPooling層需要這個(gè)源文件編譯)
具體做法是對(duì)cu&include&src下的layers右鍵,添加現(xiàn)有的項(xiàng),分別添加的是roi_pooling_layer對(duì)應(yīng)的.cu/.hpp/.cpp文件。其中.cu和.cpp文件在caffe安裝根目錄src/caffe/layers下。.hpp在include/caffe/layers下。
P.s:Caffe中的.cu文件,是交給nvcc編譯的c++源文件,可以編譯成cpu指令或者GPU指令。
修改屬性表
在commonSettings.props中修改屬性。為了配置caffe的接口,需要在屬性表中把python版編譯接口打開(kāi),并且指出anaconda2的路徑。這兩行分別在屬性表的13行和第48行。
好幾個(gè)博客都使用的是anaconda2的python安裝包,而caffe中默認(rèn)的是Miniconda2(僅包含conda和 Python)。Anaconda是一個(gè)開(kāi)源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),anaconda2對(duì)應(yīng)Python2版本。對(duì)比之下,pycharm、spyder是IDE,可以調(diào)試,代碼高亮,項(xiàng)目管理等。因?yàn)閜ython是解釋型的語(yǔ)言,pycharm在新建項(xiàng)目的時(shí)候就需要指定interpreter,而這個(gè)解釋器就可以是anaconda下的python.exe。而在anaconda之中也集成了IDE:jupyter notebook。
從清華大學(xué)鏡像站下載anaconda,https://repo.continuum.io/archive/Anaconda2-4.2.0-Windows-x86_64.exe
(千萬(wàn)要下載支持python2.7的anaconda2,不然后面會(huì)遇到找不到python27.lib)去編譯Release版本的pycaffe,好像如果編譯Debug版本會(huì)出現(xiàn)python27_d.lib找不到什么的。
Matlab也一樣,除了打開(kāi)matlabsupport,還需要修改matlab.exe路徑和mxGPUArray.h所在include路徑。新版matlab的mxGPUArray.h位置改動(dòng)了,可以將新位置放在includePath之中,也可以將頭文件復(fù)制到默認(rèn)的includePath處。
重新編譯
在Build/x64/Release下得到pycaffe文件夾和 matcaffe文件夾。
Pycaffe:
Matcaffe:編譯過(guò)程中遇到了頭文件martix.h找不到的情況,把絕對(duì)路徑include進(jìn)去就好了。還遇到了無(wú)法打開(kāi)libmx.lib的問(wèn)題,在項(xiàng)目屬性中添加庫(kù)目錄。
python中安裝caffe包
將編譯生成的pycaffe中的caffe文件夾拷貝到D:\Program Files\Anaconda2\Lib\site-packages中
在cmd中進(jìn)入python命令行,然后import caffe,會(huì)出現(xiàn)下面問(wèn)題
因?yàn)閏++版本中生成的NugetPackages里面包含了依賴項(xiàng)opencv,protobuf等,而python版本還沒(méi)有。解決辦法是退出python,在cmd中conda install protobuf/pip install protobuf,安裝成功之后重新import caffe,沒(méi)有報(bào)錯(cuò)。
驗(yàn)證
使用的實(shí)例是Texture Synthesis with Convolutional Neural Networks這篇論文的代碼,主要實(shí)現(xiàn)的是利用噪聲生成一張真實(shí)圖片。下載,解壓github上的源碼https://github.com/leongatys/DeepTextures
在cmd中cd到解壓目錄,輸入jupyter notebook
可以在localhost:8888/中得到j(luò)upyter notebook,顧名思義,這是一個(gè)web型的交互式筆記本。顯示當(dāng)前文件夾中的文件。
點(diǎn)擊example.ipynb,shift+enter逐步調(diào)試.
出現(xiàn)了python.exe停止運(yùn)行等錯(cuò)誤,中斷發(fā)現(xiàn)應(yīng)該是GPU不支持的問(wèn)題,在cmd中的提示驗(yàn)證了這個(gè)猜想:
按照下面代碼把模式改成CPU:
在鏈接1中是將代碼寫(xiě)在一個(gè)py文件中一次性運(yùn)行,而且因?yàn)椴皇窃诮鈮何募夸浵麓蜷_(kāi)jupyter notebook,用了絕對(duì)路徑。但是不管是分步運(yùn)行還是一次性運(yùn)行,都沒(méi)有報(bào)錯(cuò),都沒(méi)有圖像生成,理論上應(yīng)該生成代碼給的參考圖像才對(duì)。現(xiàn)在還不知道怎么回事。
我懷疑是我除了anaconda2還安裝了一個(gè)python,所以運(yùn)行notebook的時(shí)候有兩個(gè)kernels found,于是用pycharm新建了一個(gè)project,選擇anaconda2下的python.exe作為interpreter,但是顯示找不到caffe等:
Faster rcnn
Python版本的caffe和faster rcnn(鏈接3):
下載py-faster-rcnn,地址:https://github.com/rbgirshick/py-faster-rcnn
針對(duì)windows環(huán)境,替換py-faster-rcnn中的lib)https://github.com/MrGF/py-faster-rcnn-windows將其中的文件復(fù)制進(jìn)py-faster-rcnn進(jìn)行替換。
替換后,在py-faster-rcnn根目錄—lib—rpn路徑下,編輯proposal_layer.py:
將Caffe根目錄—Build文件夾下,找到生成的pycaffe,將其中的caffe文件夾整體復(fù)制到py-faster-rcnn根目錄—caffe-fast-rcnn—python文件夾下。如果是用Download ZIP(因?yàn)槲覀円呀?jīng)有了Caffe-Microsoft),在py-faster-rcnn的caffe-faster-rcnn下單獨(dú)創(chuàng)建python文件夾,再將生成的pycaffe下的caffe拷貝進(jìn)來(lái)。官方推薦用命令遞歸下載,遞歸的意思是initialize submodules in the clone,自動(dòng)初始化并更新倉(cāng)庫(kù)中的每一個(gè)子模塊:
Matlab版本的caffe+faster rcnn(鏈接4)
按照參考操作就可以了,需要注意的是要下載的是matlab版本的faster rcnn,解壓應(yīng)該在faster-rcnn-master/experiment下。
需要針對(duì)cpu-only的環(huán)境修改代碼。因?yàn)椴挥肎PU,所以還需要選擇網(wǎng)絡(luò)較小的zf-5,而不是很大的VGG-16.這兩個(gè)網(wǎng)絡(luò)的model在output文件夾下面。
我遇到的問(wèn)題是:
先是出現(xiàn)invalid mex-file,添加了vs的dll文件在m文件目錄下,將build/x64/release路徑添加到系統(tǒng)環(huán)境變量。
然后出現(xiàn)了load使用錯(cuò)誤的原因,其實(shí)是model文件和測(cè)試圖片的路徑錯(cuò)了,按照提示改一下就好了。
下面是demo自帶圖像的測(cè)試結(jié)果:
Reference:
1.????? 下載anaconda2:https://www.cnblogs.com/billyzh/p/6307716.html
2.??????Jupyter:https://blog.csdn.net/zb1165048017/article/details/52980102
3.??????Py Faster RCNN:https://blog.csdn.net/u011185952/article/details/71079038
4.??????Mat faster rcnn:https://blog.csdn.net/mr_curry/article/details/54745116
5.??????翻墻獲取faster_rcnn_models:https://blog.csdn.net/hongbin_xu/article/details/76100132
6.??????修改setup.py到CPU:http://www.caffecn.cn/?/question/13
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的caffe下matlab、python的配置和faster RCNN的运行的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信开发简单实例
- 下一篇: Python搭建web服务器