目录
4.2Domain-specific fine-tuning
论文全称:《Rich feature hierarchies for accurate object detection and semantic segmentation》
论文地址:https://arxiv.org/abs/1311.2524
这篇论文首次表明,与基于更简单的HOG-like特性的系统相比,CNN可以显著提高对于PASCAL VOC的物体检测性能。
R-CNN的系统概况:
- 1.首先从一张输入的图片提取大约2000个region proposals候选框
- 2.对于每个region通过一个很大的卷积神经网络计算features
- 3.对于每个region使用一个特定的线性svms分类
论文讨论了使用sliding-window进行region proposals提取的弊端是需要很强的算力,因为object的大小问题所以需要很大的感受野,这使得卷积网络会变得很大,所以没有采用sliding-window的方法。相反,论文是通过在“recognition using regions”区域识别范式下操作,解决了CNN的定位问题。在测试阶段,为输入图像生成了大约2000个region proposals,使用CNN从每个建议书中提取固定长度的特征向量,然后用特定于分类的线性SVMs对每个区域进行分类。
遇到的另一个困难就是训练数据的缺乏,因为后面的分类使用的cnn与classification使用的cnn是相同的结构,所以作者使用了fine-tuning的方法,利用其它大的数据集ILSVRC pre-training,再在PASCAL这个相对来说的小数据集上使用。
当然还不忘吹嘘一波自己的方法非常的高效,对比起以前的region feature降低了两个量级的计算机复杂度。(可是后面被fast-rcnn等吊打了)
1.Region proposals
这里论文使用的是selective search方法。简单点说,selective search使用了图像区域的颜色,质地,大小和形状四个特征来计算相似性,若果相似度高则融合在一起形成新的区域。这是一个迭代的过程,直到region proposals的数量下降达到我们要求的。而且这种方法比特定大小穷举region proposals要高效。关于search方法,可以查阅
Selective Search for Object Detection (C++ / Python)
2.Feature extraction
caffe框架下的alexnet,五层卷积加上两层全连接,没有最后一层4096到classes numbers的全连接,因为这一步的主要目的是提取固定大小的特征。这里有个问题就是每个region的大小不一致,需要转换到固定的大小作为网络的输入。
3.测试的细节
在测试的时候首先是使用selective search选择2000的region proposals,进行feature extraction,然后使用训练好的svm对每个region进行分类,获得一个region的得分。给定图像中所有得分的region区域,应用一个non-maximum suppression贪婪的非最大抑制(对于每个类独立),如果一个区域有IoU与比学习阈值更大的评分选择区域重叠,就拒绝它(IoU)。
简单点说就是利用IoU这个指标来选择更正确的region proposal而拒绝那些不够正确的region proposal。
4.训练的细节
4.1Supervised pre-training
使用2012年的Alexnet的网络,Caffe CNN library。这个方法在ILSVRC2012分类验证集上获得top-1 error rate 2.2。
4.2Domain-specific fine-tuning
这一步是为了适应新的数据集的域,就是把之前pre-training的网络再使用新的数据集继续训练,但是最后一层全连接会有修改,会变成所有类别再加一(N + 1)类输出,一代表的背景。(新的训练数据已经是区域选择后的数据,并且转换为固定大小)。
对于IoU小于0.5的region要舍弃。为了避免无谓的运算。其实这个阈值的选择很微妙,论文里面说了要非常谨慎处理。
并且倾向于对positive样本采样(即非背景的类),因为背景类别是占大多数的。
5.实验结果
以下是R-CNN的实验结果(两个数据集):具体请查看论文。
在当时是获得最好成绩方法。BB 代表Bounding-box regression,是他们基于误差分析,提出的一种降低定位错误的方法。
而值得一提的是这篇文章发表在2014年,当时已经有更多更深的网络结构,比如VGG,这里作者也尝试使用了VGG16来测试,虽然mAP的结果大大提升到66%,但是无法忽视的一个问题是更深的网络意味着更长的测试时间,两者几乎是相差七倍。
顺便一提,除了R-CNN的object dedection任务意外,论文还花了很大的篇幅介绍基于R-CNN的MaskX R-CNN。因为不是本文的主题,所以不再展示。