Faster RCNN实验
使用Faster RCNN1进行实验。
实验问题
目标检测(Object detection)2:给定一张图片,对其中的某些目标进行检测,输出相应的目标类别和包围盒(bounding box)。
实验环境
操作系统:Ubuntu 14.04.3 LTS
开发环境:gcc v4.7.3, MATLAB R2014b, Anaconda2-4.0.0
实验过程
github上有相应的代码,我们把它下载下来再进行相应的安装和运行即可。
下载代码
1 | git clone –recursive https://github.com/rbgirshick/py-faster-rcnn.git |
编译Cython模块
1 | cd py-faster-rcnn |
编译Caffe and pycaffe
参考 http://caffe.berkeleyvision.org/installation.html 。
1 | cd caffe-fast-rcnn |
下载预计算的Faster R-CNN检测器
1 | ./data/scripts/fetch_faster_rcnn_models.sh |
运行demo
1 | ./tools/demo.py |
demo使用一个在PASCAL VOC 20073目标检测任务预训练的VGG16网络,进行一些图片的目标检测。
实验数据集
PASCAL VOC 2007数据集
PASCAL VOC 2007数据集相关地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html
PASCAL VOC(Pattern Analysis, Statistical Modelling and Computational learning, Visual Object Classes) 2007指2007年一个视觉对象的分类识别和检测的挑战赛。
挑战的主要目标是识别一些现实场景中的视觉对象类。数据集中有20个分类,分别是:
人:人
动物:鸟、猫、牛、狗、马、羊
交通工具:飞机、自行车、船、公共汽车、汽车、摩托车、火车
室内物体:瓶子、椅子、餐桌、盆栽植物、沙发、电视/显示器
比赛主要分为分类、检测2个部分,这里我们只关注检测比赛。
检测比赛需要预测每个给定分类的目标标签(label)及包围盒(bounding box)。
实验结果
输出的log信息如下,可以看出,每张图片只需约0.1s即可预测出其中的所有目标及其包围盒。
1 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
部分结果如下图所示,可以看出,对于不同图像不同大小的目标,均能较好地得到其相应的包围盒;同一张图片也能在不同区域得到相应的目标包围盒。
参考
Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[C]. Neural Information Processing Systems, 2015.↩︎
Object detection. Wikipedia. 最后修订于2016年5月21日. https://en.wikipedia.org/wiki/Object_detection↩︎
The PASCAL Visual Object Classes Challenge 2007. PASCAL2. http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html↩︎