Fast-RCNN安装与使用(跑demo)

Fast-RCNN是一个基于深度卷积神经网络(deep ConvNets)实现的快速目标检测框架,代码作者Ross Girshick在RCNN的基础上增加了Multi task training,使得整个的训练过程和测试过程比RCNN快了许多。Fast-RCNN主要有以下特点:

  • 训练先进的模型比如VGG16,比RCNN快9倍,比SPPnet快3倍
  • 在检测时比RCNN快200倍,比SPPnet快10倍
  • 在PASCAL VOC数据集上mAP比RCNN和SPPnet有显著提高
  • 基于Python、C++和caffe

1.安装前的准备

  • caffe
    fast-rcnn是基于caffe写的,所以必须要安装caffe,因为rbg的demo是用python写的,所以还要保证pycaffe编译通过。具体的Makefile.config文件请参考这里。安装过程中有可能提示缺少cython,python-opencv,easydict,这些问题我没遇到,这些都是依赖的一些东西,如果遇到请安装一下。

  • GPU
    CPU训练和检测速度太慢了,所以我们需要一个好的GPU,作者提供了几种预训练的模型,分别是S号模型CaffeNet,M号模型VGG_CNN_M_1024,这两个模型需要至少3G内存的Titan,K20,K40 GPU。如果训练L号模型VGG16,则必须11G内存的K40,这里我用的是K40的服务器。

2.安装

  • clone rbg的代码
    要想用fast-rcnn第一步肯定是clone rbg的代码,地址在这里。和官方提示一样,我假定代码放在$FRCN_ROOT下。
  • build cython
cd $FRCN_ROOT/lib
make 

在进行这一步前保证自己的gcc版本是4.9.x ,我安装前因为别的原因把自己的gcc降到了4.7.x,结果在编译的时候无论如何也通不过,gcc一直提醒找不到某个命令,最后把gcc的库文件修改了才算通过,所以切记要确保编译前gcc版本问题。查看gcc版本命令:

gcc --version
  • build caffe & pycaffe
    build前需要参考rbg的Makefile.config文件修改,最重要的是要打开Python layers:
WITH_PYTHON_LAYER := 1

其他地方也不能照搬,比如我用的是MKL,而rbg用的是blas,要对这些部分进行修改,需要更改的还包括是否用cuDNN,各种路径的修改。
修改之后运行命令编译,可以选择-j16,编译的更快一些。

cd $FRCN_ROOT/caffe-fast-rcnn
make -j8 && make pycaffe
  • 下载rbg训练好的的模型
    用编辑器打开$FRCN_ROOT/data/scripts/fetch_fast_rcnn_models.sh
    Fast-RCNN安装与使用(跑demo)_第1张图片
    把里面的链接拷到浏览器里打开,如下图:
    Fast-RCNN安装与使用(跑demo)_第2张图片
    如果仅仅是为了跑一下rbg的demo,那就下载图中红圈标记的model,其他的数据是为了训练或者做别的实验需要的数据。
    下载之后放到$FRCN_ROOT/data下解压。到这一步,为了跑demo进行的准备工作算是全部做完了。

3.跑demo

这是最简单的一步了,运行python写的脚本文件就行了。

cd $FRCN_ROOT/tools
./demo.py

效果如下面图:

Fast-RCNN安装与使用(跑demo)_第3张图片
Fast-RCNN安装与使用(跑demo)_第4张图片
Fast-RCNN安装与使用(跑demo)_第5张图片
Fast-RCNN安装与使用(跑demo)_第6张图片

前三张是rbg的官方demo跑出来的结果,最后一张是我找了一副图片用EdgeBoxes提完proposals之后的效果,由此可见,rbg训练出来的model还是比较好用的,在这种复杂场景下的检测结果依然还不错。

参考资料:
1.fast-rcnn源码
2.paper:《Fast R-CNN》
3.楼燚(yì)航的blog FastRCNN 训练自己数据集

你可能感兴趣的:(检测,深度学习,caffe,FastRCNN)