Windows10 下安装 py-faster-rcnn
本文主要包含如下内容:
参考博客 参考博客 可以参考这两篇博客和本篇博客进行Windows下py-faster-rcnn的配置和安装。
安装教程
本篇博客将会教会你在Windows下配置py-faster-rcnn,请细心仔细阅读。说白了,Windows下配置这些东西就是一个坑。
安装配置Anaconda
由于py-faster-rcnn要用到python,这里我们使用了Anaconda,Anaconda版本为Anaconda2-4.3.1-Windows-x86_64.exe
,Anaconda下载地址,双击安装即可,安装完Anaconda2后需要下载必要的python库,在cmd下运行下面代码即可:
conda install --yes numpy scipy matplotlib scikit-image pip
pip install protobuf
conda install numpy pyqt
同样的,在cmd中輸入python --version
,可以得到你安裝的python信息:(如果是Anaconda则无需之后操作)
(python27) C:\Users\39294\Desktop>python --version
Python 2.7.13 :: Anaconda 4.3.1 (64-bit)
请注意:如果在查看python版本之后,发现不是Anaconda版本,这里则需要创建一个Anaconda专用版本,并通过windows软链接,在cmd中輸入:
conda create --name python34 python=3.4
接下来,在cmd中輸入conda info -e
可以得到你安裝的python信息;随后輸入activate python27
激活環境,輸入python --version
,可以看到系統切換到Anaconda中:
conda info -e
activate python27
(python27) C:\Users\39294\Desktop>python --version
Python 2.7.13 :: Anaconda 4.3.1 (64-bit)
安装配置Windows-caffe
在安装好Anaconda后,需要配置Windows-caffe。为了使用GPU来运行深度学习,我们需要安装相应的cuda和cuDNN。其中,cuda版本为cuda_8.0.61_win10
,双击安装即可;cuDNN版本为cudnn-7.5-windows10-x64-v5.0-ga
,下载并将其解压至D:\
CUDA下载地址 cuDNN下载地址
同样的,需要从github上下载相应的windows-caffe,并将其解压至D:\
。
windows-caffe下载地址
随后,开始配置caffe:
进入D:\caffe-master\windows
,复制文件CommonSettings.props.example
并将其改名为CommonSettings.props
,双击进入工程caffe(这里注意:需要安装了VS,才可以打开并编译)。有时候libcaffe没有加载成功(主要原因在于看看propos里面的cuda版本是7.5,而你装的是8.0,ctrl+F搜索7.5,找到到改为8.0.并重启caffe.sln即可)
- 注意:如果libcaffe和testall存在问题,请参考如下解决办法:
由于vs2013的安装路径中缺少 CUDA 8.0.props ,文件引用CUDA 8.0的路径是 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations ,其实 CUDA 8.0.props 安装路径是 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\visual_studio_integration\MSBuildExtensions ,只要拷贝到 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations 就行了,那么libcaffe和testall就都没问题了!
在打开caffe工程后,打开右侧文件列表中的文件CommenSetting.probs
,在文件中搜索cudapath
,该栏存放从cudnn
解压出来的文件夹cuda
的目录路径。由于我们从cudnn
解压出来的文件夹cuda
的目录路径是D:\
,因此,输入D:\
即可。
如果需要配置pycaffe,即caffe的python接口,则请进行一下操作:打开右侧文件列表中的文件CommenSetting.probs
,编译支持python接口<PythonSupport>ture</PythonSupport>
,同时修改python的路径,指定到Anaconda中。
随后,我们参考博客,将roi_pooling_layer.hpp,cu,cpp加入到libcaffe文件配置中。
参考博客
接下来,选择编译类型为release,x64
,关闭 Treat Warnings As Errors (即设置为No) ,如果不设置的话在编译boost库的时候会由于文字编码的警告而报错。下面两张图帮你进行设置。
然后开始漫长的编译过程,编译结束后会在D:\
下生成文件夹NugetPackages
,我们也可以在拷贝别人的文件NugetPackages
到指定目录D:\
后进行编译。
在编译好libcaffe
后,需要继续编译其他任务:下面两张图帮你进行设置并进行相关编译。
至此,caffe工程已经编译完成,可以正常训练测试网络。
编译错误:
error MSB4062:未能从程序集D:\NugetPackages\OpenCV.2.4.10\build\native\private\
coapp.NuGetNativeMSBuildTasks.dll加载任务“NuGetPackageOverlay”
该问题解决办法,只需要升级opencv即可,参考博客解决问题
安装配置py-faster-rcnn
在安装配置好caffe后,我们安装配置py-faster-rcnn。首先,我们需要安装git来获取py-faster-rcnn代码,这里git的安装我们不再赘述。接下来在cmd下运行: github网站
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
同样的,通过git下载windows的lib文件:
git clone --recursive https://github.com/MrGF/py-faster-rcnn-windows.git
由于在这之前我们编译过caffe,所以只需要将caffe文件夹下面的 /Build/x64/Release/pycaffe/caffe 文件复制到 py-faster-rcnn/caffe-fast-rcnn/python 目录下,并替换原有文件。
同样的,我们将 py-faster-rcnn-windows 下的lib文件复制到 py-faster-rcnn 下替换到原来的lib文件。
然后,在cmd中切换工作目录到py-faster-rcnn/lib目录:执行 python setup.py install 代码执行成功后,修改setup_cuda.py中第33行,CUDA的include路径为你自己的路径。执行 python setup_cuda.py install 安装成功.
python setup.py install
include_dirs = [numpy_include, 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.5\\include'])
python setup_cuda.py install
编译报错:
error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27;
解决办法:直接在在cmd下输入:SET VS90COMNTOOLS=%VS120COMNTOOLS%
,如果不行,则参考博客(注意:直接在D盘Anaconda2下面进行修改)
编译报错:
File "D:\Anaconda2\lib\ntpath.py", line 180, in split d, p = splitdrive(p) File "D:\Anaconda2\lib\ntpath.py", line 115, in splitdrive if len(p) > 1: TypeError: object of type 'NoneType' has no len()
解决办法:我们需要添加环境变量,参考博客办法(C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\ )
至此,py-faster-rcnn的配置工作基本完毕,接下来,我们运动demo,看看效果。在cmd中切换工作目录到到py-faster-rcnn目录下,执行python ./tools/demo.py
。若执行成功,将出现相应的检测图片。
python ./tools/demo.py
编译报错:
ImportError: No module named easydict
解决办法:在cmd下输入:pip install easydict
,可以参考博客()
编译报错:
ImportError: No module named cv2
解决办法:将opencv里面的cv2.pyd文件拷贝到D:\Anaconda2\Lib\site-packages中,可以参考博客
编译报错:
ImportError: No module named google.protobuf.internal
解决办法:在cmd下输入:conda install protobuf
,可以参考博客
编译报错:
AttributeError: 'ProposalLayer' object has no attribute 'param_str_'
解决办法:将对应文件中’param_str_’改为’param_str’,可以参考博客
编译报错:
proposal_layer.py 中 pre_nms_topN = cfg[cfg_key].RPN_PRE_NMS_TOP_N, keyerror = 1
解决办法:可以参考博客