faster-rcnn实战篇

主要参考:

0)一个写的还不错的faster-rcnn的理论讲解(已经转载到知乎上面了):https://zhuanlan.zhihu.com/ML-Algorithm

1)faster rcnn官网

https://github.com/rbgirshick/py-faster-rcnn#installation-sufficient-for-the-demo

2)http://blog.csdn.net/zoro_lov3/article/details/60581174,第二个博客解决了shell脚本下载文件缓慢问题(可以利用迅雷下载,然后将下载好的文件直接复制到data路径下)

3)http://blog.csdn.net/u012841667/article/details/53436615

第三个博客解决了faster-rcnn编译不通过问题,——原因是:作者使用的caffe的cudnn.cpp,cudnn.hpp的文件版本和现在的cudnn文件版本不一致导致编译冲突

解决办法:

  1).将/py-faster-rcnn/caffe-fast-rcnn/include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现,即相应的cudnn.hpp.

 2).将/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layer里的,所有以cudnn开头的文件,例如cudnn_lrn_layer.cu,cudnn_pooling_layer.cpp,cudnn_sigmoid_layer.cu。

   都替换成最新版的caffe里的相应的同名文件。

3)将./include/caffe/layers的,所有以cudnn开头的文件,例如cudnn_conv_layer.hpp,cudnn_lcn_laye.hpp

   都替换成最新版的caffe里的相应的同名文件

之前我第三个文件没有替换,导致编译仍然没有通过,一定要全部替换这三个文件夹当中的文件
-----------------------------------------------------------------------------------------

前提:已经熟练掌握了caffe的配置问题,并且在Makefile.config当中,with_pythonlayer取消注释(这里如果没有取消注释的话,python层不会被识别,从而导致报错)

坑已填完,现在详细写一下运行步骤:


step1:数据准备以及编译:

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
cd py-faster-rcnn/lib
make
cd py-faster-rcnn/caffe-fast-rcnn
cp Makefile.config.example Makefile.config
然后将use_cudnn,with_pythonlayer取消注释

在make的时候注意上述说明的cudnn.cpp版本不一致问题


下载caffemodel::

cd py-faster-rcnn/data/scripts
gedit fetch_faster_rcnn_models.sh
在这个fetch_faster_rcnn_models.sh当中,给了caffemodel的下载链接。

复制其中的URL地址(http://www.cs.berkeley.edu/~rbg/faster-rcnn-data),打开下载faster_rcnn_models.tgz文件。我在windows系统下用迅雷下的,ubuntu里下载速度太慢了……
下载后,将该文件解压到

py-faster-rcnn/data
当中,然后就可以愉快的运行py-faster-rcnn/tools/demo.py文件了

--------------------------------------------------------------------------------------------------------------

利用faster rcnn跑VOC 2007的dataset

参考链接:http://blog.csdn.net/hongbin_xu/article/details/77278329

注意:代码当中一定不要由中文,之前写了好多中文注释,导致最后编译不成功


step1:数据集以及caffemodel的准备:

1)将下载好的三个文件解压到py-faster-rcnn/data当中

tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
tar -xvf VOCdevkit_08-Jun-2007.tar
然后为PASCAL_VOC dataset创建链接 :
ln -s $VOCdevkit VOCdevkit2007

2)下载imagenet_models.rar到py-faster-rcnn/data/imagenet_models.rar

其实没有必要用sh脚本下载(因为下载速度太慢了)

./data/scripts/fetch_imagenet_models.sh

-------------------此时数据集以及model已经准备好了

step2:训练数据集:

好了,到目前为止都很简单。接下来要使用指令来训练了,一般来说都会因为环境不兼容碰到各种坑,后面会给出解决办法。

使用交替优化算法训练RPN
指令说明:

cd $FRCN_ROOT
./experiments/scripts/faster_rcnn_alt_opt.sh [GPU_ID] [NET] [--set ...]
  • 1
  • 2

GPU_ID:你的GPU号,默认为0;
NET:使用的网络模型,模型有三种{ZF, VGG_CNN_M_1024, VGG16},其中zf较小,vgg16最大;
set 训练集设置,使用的数据集是pascal_voc;

示例:

cd $FRCN_ROOT
./experiments/scripts/faster_rcnn_alt_opt.sh 0 VGG16 pascal_voc
  • 1
  • 2

使用联合训练的方法训练RPN
指令说明:

cd $FRCN_ROOT
./experiments/scripts/faster_rcnn_end2end.sh [GPU_ID] [NET] [--set ...]
  • 1
  • 2

GPU_ID:你的GPU号,默认为0;
NET:使用的网络模型,模型有三种{ZF, VGG_CNN_M_1024, VGG16},其中zf较小,vgg16最大;
set 训练集设置,使用的数据集是pascal_voc;

这里跟前面类似,只是训练的方法不一样,使用的网络模型和数据集等等都是一样的。
示例:

cd $FRCN_ROOT
./experiments/scripts/faster_rcnn_end2end.sh 0 VGG16 pascal_voc
  • 1
  • 2

我遇到了一个问题,原来的博主遇到的各种问题我没有遇到,可能比较幸运吧

问题:AttributeError: 'module' object has no attribute 'text_format'

解决办法:https://github.com/rbgirshick/py-faster-rcnn/issues/198

adding "import google.protobuf.text_format" in the fast-rcnn/lib/fast_rcnn/train.py



你可能感兴趣的:(论文学习)