R-CNN学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。本期介绍R-CNN,个人认为它是目标检测界的“AlexNet”,也是使得深度学习在目标检测任务中取得突破性进展的两阶段网络,其改进版本Faster R-CNN也是two-stage两阶段算法的旗帜性网络。

论文相关信息

论文全称为《Rich feature hierarchies for accurate object detection and semantic segmentation》(论文链接),发表在2014年的CVPR上,作者及相关信息如下:

在这里插入图片描述
论文所使用的数据集是 PASCAL VOC 挑战赛数据集(PASCAL全称Pattern Analysis, Statical Modeling and Computational Learning,是一个由欧盟资助的网络组织;PASCAL VOC是一个世界级的计算机视觉挑战赛,该挑战赛已于2012年停止举办了,但是研究者仍然可以在其服务器上提交预测结果以评估模型的性能,比较经典的两个年份的数据集就是 PASCAL VOC 2007 与 PASCAL VOC 2012,这两个数据集也会在其他论文中频频出现),有关该数据集的概览可以看这里

前置知识

首先,也正如论文题目中提到的object detection目标检测和sematic segmentation语义分割是什么意思?这需要我们对CV方向的一些细分任务有一个了解,这一点在之前的ResNet综述中提过一嘴。

什么是mAP?mean Average Precision,因为普通分类任务中的评价标准accuracy没办法用在目标检测中,所以提出了这么一个衡量指标,可参考这里

什么是GT?Ground Truth,指有监督训练中标签正确的训练数据。比如目标类别为Dog,有5张照片,共包含7只Dog,也即GT数量为7。

什么是IoU?Intersection over union,简单来说就是两个框的交并比,衡量重叠程度,深究可以看这里

什么是bbox?bounding box,预测框,通常以矩形预测框的左上角和右下角的坐标来表示,即x_min, y_min, x_max, y_max。

流程(tricks)

先引用一张大佬博客里清晰的流程图:

在这里插入图片描述
从这个流程图可以看出,在 CNN 模型训练完成后,一个支路使用 fc7 层的特征来训练 SVM 分类器,输出一套 K 个目标类别加一个背景类的 Softmax 概率估计;另一个支路使用 pool5 层的特征来训练一个线性回归器,其对于 K 个目标类的每一个类别都输出 4 个值,修正bounding box,作为定位任务。

这是论文中的流程概览图:

在这里插入图片描述
而R-CNN可以分为三个模块:第一个,使用selective search(选择性搜索,这篇博客讲的很详细)产生类别无关的region proposal(区域推荐,也就是目标物体可能出现的位置),这些推荐定义了一个候选检测区域的集合;第二个是一个大型CNN,用于从每个区域抽取特定大小的特征向量,由于使用的CNN架构只能接受227×227的输入,为了计算region proposal的特征,先在候选框周围加上16的padding,再进行各向异性缩放(具体看这里);第三个就是之前提到的21个指定类别(20类物体+背景)的线性SVM和20个物体类的线性回归器。

测试时,先在测试图像上使用selective search抽取2000个推荐区域,然后resize每一个推荐区域,再通过CNN前向传播计算出特征,然后使用对每个类别训练出的SVM给整个特征向量中的每个类别单独打分,通过NMS(non-maximun suppression,非极大抑制,可参考这里)去掉重复识别同一个物体的预测框,最后使用回归器修正预测框的位置使其更加接近GT(关于bounding-box regression可以看这里)。

值得注意的是,在fine-tunning和SVM训练这两个阶段,IoU阈值是不同的。这是因为fine-tunning阶段,CNN对小样本容易过拟合,需要大量训练数据,故对IoU限制宽松,因此IoU>0.5的建议框为正样本,否则为负样本;而SVM这种机制是由于其适用于小样本训练,故对样本IoU限制严格:Ground Truth为正样本,与Ground Truth相交IoU<0.3的建议框为负样本。

总结

该论文是第一个说明在PASCAL VOC的物体检测任务上CNN比基于简单类HOG(Histogram of Oriented Gradient,方向梯度直方图特征算法,主要用于捕捉图像轮廓信息,HOG+SVM进行行人检测是比较出名的,可参考这里)、SIFT(Scale Invariant Feature Transform,尺度不变特征变换算法,又称角点检测,主要在不同的尺度空间上查找诸如交点、边缘点等关键点,详细介绍可看这里)特征的系统有大幅的性能提升。其成功之处在摘要中也概括了:

在这里插入图片描述
首先就是将ImageNet上大获成功的CNN模型AlexNet从图像分类任务迁移到目标检测任务中来,使用CNN来定位和分割物体;另一个核心贡献就是使用先在辅助数据集(ILSVRC)上进行有监督预训练,再在小数据集上针对特定问题进行调优的fine-tuning方法。

但是R-CNN有个大缺点,就是训练时间非常长。这里放一张网络上看到的图,侵删:

在这里插入图片描述
输入一张图片会产生2000个region proposal,且大部分都有重叠,因此基于region proposal计算卷积的计量量太大,这也是后续网络的改进方向。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值