您的位置:首页 > 编程语言 > Python开发

深度学习之windows python faster rcnn 配置及demo运行

2017-06-28 15:21 609 查看
写这篇文章主要是针对深度学习零基础的新手,因为我也是新手,在配置环境这一块花了我很大的心血,网上的资料很多都只是说配置,然后直接运行就完了,可是对于我这样的新手在配置的过程中会遇见各种各样的问题,所以在此给大家把我所遇到的问题总结出来,以免后续的人少走弯路,不废话了。


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个小时了,好累啊,转载的时候请说明转载出处

哎呀 资源你们需要的话就留言吧,我这上传速度太慢了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息