安装python库依赖
cython
,python-opencv
和easydict
|
|
克隆py-faster-rcnn
源代码
|
|
编译cython
模块
|
|
修改配置文件
|
|
编辑Makefile.config
配置文件:
|
|
编译caffe-faster-rcnn
需要先更新用到的caffe:原版py-faster-rcnn依赖的caffe比较老,不支持cudnn v5和v6。
方法1:利用git修改
|
|
合并后注释掉include/caffe/layers/python_layer.hpp
文件中的如下行:
|
|
方法2:手工修改
用最新caffe
源码的以下文件替换掉caffe-faster-rcnn
的对应文件
include/caffe/util/cudnn.hpp
include/caffe/layers/cudnn_relu_layer.hpp
, src/caffe/layers/cudnn_relu_layer.cpp
, src/caffe/layers/cudnn_relu_layer.cu
include/caffe/layers/cudnn_sigmoid_layer.hpp
, src/caffe/layers/cudnn_sigmoid_layer.cpp
, src/caffe/layers/cudnn_sigmoid_layer.cu
include/caffe/layers/cudnn_tanh_layer.hpp
, src/caffe/layers/cudnn_tanh_layer.cpp
, src/caffe/layers/cudnn_tanh_layer.cu
将 caffe-faster-rcnn
中 src/caffe/layers/cudnn_conv_layer.cu
文件中的所有cudnnConvolutionBackwardData_v4
函数名替换为 cudnnConvolutionBackwardData
cudnnConvolutionBackwardFilter_v4
函数名替换为 cudnnConvolutionBackwardFilter
执行编译
|
|
Demo
下载训练好的Faster R-CNN模型(在 VOC 2007 trainval
上训练)
|
|
运行 Demo
|
|
在VOC2007上训练
下载训练集、验证集、测试集数据和VOCdevkit
|
|
解压缩
|
|
创建数据集链接
|
|
下载ImageNet预训练模型
|
|
执行训练
|
|
Error
Problem1
|
|
Solution:
在py-faster-rcnn/lib/fast_rcnn/train.py
的头文件导入部分加上 :
|
|
Problem2
|
|
这里是因为numpy版本不兼容导致的问题,可以卸载numpy,安装numpy1.11.0,pip install numpy=1.11
。但这样需要重新编译OpenCV和Caffe。
Other Solution:
修改如下几个地方的code:
1) py-faster-rcnn/lib/roi_data_layer/minibatch.py
|
|
2) py-faster-rcnn/lib/datasets/ds_utils.py
|
|
3) py-faster-rcnn/lib/fast_rcnn/test.py
|
|
4) py-faster-rcnn/lib/rpn/proposal_target_layer.py
|
|
Problem3
|
|
还是由于numpy版本的原因,同上,可以更换到低版本numpy。
Other Solution:
修改 py-faster-rcnn/lib/rpn/proposal_target_layer.py
,转到123行:
|
|
这里的start,end都是 numpy.int 类型,这种类型的数据不能作为索引,所以必须对其进行强制类型转换,如下修改:
|
|