[深度学习]Object detection物体检测之R-CNN(2)

目录

1.Region proposals

2.Feature extraction

3.测试的细节

4.训练的细节

4.1Supervised pre-training

4.2Domain-specific fine-tuning

5.实验结果


论文全称:《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)

选择性搜索(selective search)

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。因为不是本文的主题,所以不再展示。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值