运行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
- Basic system information
- Basic Hardware info
Basic Hardware info
- For training smaller networks (CaffeNet, VGG_CNN_M_1024) a good GPU (e.g., Titan, K20, K40, …) with at least 3G of memory suffices
- 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./web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/
最后测试一下Python
python ~/opencv-2.4.9/samples/python2/turing.py

安装Caffe (berkeley开发的一个Deep Learning的框架)
参考:我的安装Caffe的过程
安装 Fast R-CNN
- 下载源代码:
git clone --recursive https://github.com/rbgirshick/fast-rcnn.git
下载代码的目录,命名为$FRCN_ROOT。
- 编译Cython:
cd $FRCN_ROOT/lib
make
- 编译Caffe and pycaffe:
cd $FRCN_ROOT/caffe-fast-rcnn
cp Makefile.config.example Makefile.config #用例子文件作为模板
vi Makefile.config # 按照你的机器设置进行修改。
make -j8 && make pycaffe
- 下载pre-computed Fast R-CNN detectors
大概985M, 用了一个小时。
cd $FRCN_ROOT
./data/scripts/fetch_fast_rcnn_models.sh
运行演示
cd $FRCN_ROOT
./tools/demo.py --cpu
碰到的问题:
- 错误: ImportError: No module named skimage.io
sudo pip install scikit-image
- 错误: 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)。
- 为什么安装好了Caffe以后,安装Fast R-CNN的时候,还需要make caffe?
|