环境:VS2013,CUDA8.0,CuDNN 5.0,Win7,Python27
一、准备工作
- 添加VS的cl.exe所在路径至环境变量
VS的安装路径下有一个VC文件夹,将其中的bin目录添加值环境变量(该目录下有cl.exe),路径参考如下:
D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
如未正确添加后续步骤将出现 TypeError: object of type ‘NoneType’ has no len() 错误。
- 下载Caffe-Microsoft并添加roi_poling_layer后正确编译
下载地址:https://github.com/Microsoft/caffe
在libcaffe项目下的 cu—layers 文件夹右击添加roi_pooling_layer.cu。
同理,在libcaffe项目下的 src—layers 添加roi_polling_layer.cpp;
(所在路径:caffe根目录—src—caffe—layers)
在libcaffe项目下 include—layers添加roi_pooling_layer.hpp。
(所在路径:caffe根目录—include—caffe—layers)
二 .编译pyCaffe
选择Release模式,先编译libcaffe,再编译pycaffe.
CommonSettings.props的默认miniconda,我只安装了python,所以更改一下。C:\Python27\
Python27需要安装numpy
参考windows64系统下安装Numpyhttp://www.cnblogs.com/1394htw/p/5225644.html
编译pycaffe,有numpy的头文件找不到,可以在pycaffe属性->VC++目录-》包含目录-》C:\Python27\Lib\site-packages\numpy\core\include\
三、配置Faster-RCNN
- 配置windows版的py-faster-rcnn
下载py-faster-rcnn,地址:https://github.com/rbgirshick/py-faster-rcnn
由于上述版本中的python都是基于Linux环境编写的,windows运行需要进行改动。好在有人已经完成了相关工作:
再下载py-faster-rcnn-windows,地址:https://github.com/MrGF/py-faster-rcnn-windows
将其中的文件复制进py-faster-rcnn进行替换。
替换后,在py-faster-rcnn根目录—lib—rpn路径下,编辑proposal_layer.py:
(1)将其中的 param_str_ 替换为 param_str。
(2)将cfg_key = str(self.phase)
替换为cfg_key = str('TRAIN' if self.phase == 0 else 'TEST')
- 拷入生成的Caffe
将Caffe根目录—Build文件夹下,找到生成的pycaffe,将其中的caffe文件夹整体复制到py-faster-rcnn根目录—caffe-fast-rcnn—python文件夹下。我生成的caffe是Release版本,
D:\Project\caffe-master\Build\x64\Release\pycaffe
复制到:
D:\Project\py-faster-rcnn-master\caffe-fast-rcnn\python
注:官方推荐用命令
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
下载py-faster-rcnn,如果用Download ZIP(因为我们已经有了Caffe-Microsoft),在py-faster-rcnn的caffe-faster-rcnn下单独创建python文件夹,再将生成的pycaffe下的caffe拷贝进来,实测也能够完成demo生成。
- 定制化修改与setup
根据本机的CUDA环境,修改py-faster-rcnn—lib路径下的setup_cuda.py:
(1)第14行
'-arch=sm_35'
修改为本机显卡的计算能力,具体查询Nvida官网。
(2)第33行
include_dirs = [numpy_include, 'C:\\Programming\\CUDA\\v7.5\\include'])
修改为本机的CUDA-include环境,比如我的路径是:
include_dirs = [numpy_include, 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v8.0\\include'])
此时可以CMD打开至py-faster-rcnn\lib路径下,运行命令:
python setup.py install
python setup.py build_ext --inplace
python setup_cuda.py install
假如出现缺少某些依赖项或cv2.pyd (opencv) 的情况,用pip install命令安装或网上搜索相关配置方法即可,pip用法示例:
pip install easydict
- 运行demo
官方要求我们运行py-faster-rcnn\data\scripts下的fetch_faster_rcnn_models.sh进行model下载,实际直接下载该链接:https://dl.dropboxusercontent.com/s/o6ii098bu51d139/faster_rcnn_models.tgz
下载完成后,解压文件夹至py-faster-rcnn\data目录下,
CMD到达py-faster-rcnn\tools路径下,我的环境是VS2013,运行:
SET VS90COMNTOOLS=%VS120COMNTOOLS%
python demo.py
其它如VS2012 就改为SET VS90COMNTOOLS=%VS110COMNTOOLS%,出问题就是VS的锅 = =。
参考:http://blog.csdn.net/u011185952/article/details/71079038