RCNN是目前detection中较新且准确度较高的方法,充分发挥了CNN分类的优势,但速度并不快,从而产生了fast rcnn和faster rcnn来解决这个问题。本文使用py-faster-rcnn对该方法做一初步测试。
环境准备
软件环境
- Caffe
- Python
一般来说这些我们都已经有所接触,但仍有一些需要注意的地方:
- 要使用rbgirshick/py-faster-rcnn中的caffe编译一次,其caffe在rbgirshick/py-faster-rcnn/caffe-fast-rcnn @ 0dcd397中。因为这里面有一些专门为f-rcnn写的层,具体区别可以在caffe.proto中查看,如增加了ROIPoolingParameter、SmoothL1LossParameter等参数。
编译时一定要增加对Python层(Python layers)的支持。
具体需要打开Makefile.config,找到:# In your Makefile.config, make sure to have this line uncommented WITH_PYTHON_LAYER := 1
将其改为1,否则运行时会出错,提示没有对应的layer。
硬件要求
小的网络用Titan, K20, K40这些就可以,显存3G以上。
大的可能需要K40,11G以上显存,当然这些往往个人无法搭建起来。
安装(DEMO)
编译Cython模块
cd $FRCN_ROOT/lib make
$FRCN_ROOT为你的FRCNN根目录,下同。
编译Caffe 和 pycaffe
cd $FRCN_ROOT/caffe-fast-rcnn # Now follow the Caffe installation instructions here: # http://caffe.berkeleyvision.org/installation.html # If you're experienced with Caffe and have all of the requirements installed # and your Makefile.config in place, then simply do: make -j8 && make pycaffe
-j8是指8核编译,更快一些。
下载预计算的R-CNN检测器
cd $FRCN_ROOT ./data/scripts/fetch_faster_rcnn_models.sh
这个模型解压出来750M,下载的话大概695M,而且很慢。。
为了方便大家,我把模型上传到了百度云,faster_rcnn_models, 密码:gbpo。运行
这一步就很简单了,cd $FRCN_ROOT ./tools/demo.py
当然权限不足直接运行py也可以。这个运行是需要在图像界面下进行的,否则会报错。