运行Fast R-CNN的代码

运行Fast R-CNN的代码

标签(空格分隔): vision

FR-CNN是Ross Girshick的新作,从文章来看FR-CNN比R-CNN和SPPNet都快很多。当然R-CNN和SPPNet也都是Girshick的作品,FR-CNN的正确率不仅超越Girshick自己的嫡出,也超过了DPM等其他方法。

FR-CNN正如文章所说的是一个简单,并且Elegant的框架。和那些Pipeline的模型相比,的确是优雅很多的。当然FR-CNN本身也可以看作是一个Pipeline,只不过这个Pipeline只有两个步骤,一是Pretrain的CNN,第二个是Region Pooling和Fully connected Network(FC)。

我认为优雅之处在于:

  • 文章采用了多目标的函数,所以把分类问题和Localization问题一起解决了。
  • 最终的目标函数可以用于Fine tune Pretrained CNN (当然也不是每一层都能Train)。这样看起来就是一个统一的框架了。

Contents

  1. Basic system information
  2. Basic Hardware info

Basic Hardware info

  1. For training smaller networks (CaffeNet, VGG_CNN_M_1024) a good GPU (e.g., Titan, K20, K40, …) with at least 3G of memory suffices
  2. For training with VGG16, you’ll need a K40 (~11G of memory)
    目前的GPU只有GTX750i,显存只有2G,按照说明如果要使用GPU至少要3G的显存。所以只能在CPU上面Run这个代码。

Basic system information

使用Ubuntu Linux 14.04桌面版:

~$ uname -a
Linux cis-ubuntu-1 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

需要安装的基础软件

可能你的机器上没有cython, easydict

sudo pip install cython
sudo pip install easydict

安装Opencv

按照这个网页的方法:
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

最后测试一下python

python ~/opencv-2.4.9/samples/python2/turing.py

运行Fast R-CNN的代码_第1张图片

安装Caffe (berkeley开发的一个Deep Learning的框架)

参考:我的安装Caffe的过程

安装 Fast R-CNN

  1. 下载源代码:
git clone --recursive https://github.com/rbgirshick/fast-rcnn.git

下载代码的目录,命名为$FRCN_ROOT。

  1. 编译Cython:
cd $FRCN_ROOT/lib
make
  1. 编译Caffe and pycaffe:
cd $FRCN_ROOT/caffe-fast-rcnn
cp Makefile.config.example Makefile.config   #用例子文件作为模板
vi Makefile.config  # 按照你的机器设置进行修改。
make -j8 && make pycaffe
  1. 下载pre-computed Fast R-CNN detectors
    大概985M, 用了一个小时。
cd $FRCN_ROOT
./data/scripts/fetch_fast_rcnn_models.sh

运行演示

cd $FRCN_ROOT
./tools/demo.py --cpu

碰到的问题:

  1. 错误: ImportError: No module named skimage.io
sudo pip install scikit-image
  1. 错误: ImportError: No module named google.protobuf.internal
sudo find / -name protobuf   
/usr/include/google/protobuf  # 只有C版本的protobuf
apt-get install python-protobuf

然后终于可以运行了。
在AMD的机器上,500×406的街景图片,用来63秒。(还不包括Selective Search计算Proposal的部分,因为这部分是事先计算好的。)

运行的结果看起来还不错,对路边的车辆都能识别出来。

对代码还有很多不明白之处(150523)。

  1. 为什么安装好了Caffe以后,安装Fast R-CNN的时候,还需要make caffe?

你可能感兴趣的:(Vision)