Cascade R-CNN的一些记录

版权声明:本文为fourierr原创文章,未经博主fourier允许不得转载。 https://blog.csdn.net/qq_34562093/article/details/81569801

Cascade R-CNN的一些记录

《Cascade R-CNN: Delving into High Quality Object Detection》CVPR2018的一篇文章

论文链接:https://arxiv.org/abs/1712.00726 
代码链接:https://github.com/zhaoweicai/cascade-rcnn

参考链接:https://blog.csdn.net/qq_21949357/article/details/80046867

本文主要针对的是目标检测问题中的IoU阈值选取问题,众所周知,阈值选取越大就越容易得到高质量的样本,但是一味选取高的阈值会引发两个问题:

  • 样本减少引发的过拟合
  • 在train和inference使用不一样的阈值很容易导致mismatch。(只有输入的region proposal自身的IOU值和训练器训练用的设定IOU阈值较为接近的时候,训练器输出的IOU值才会高即性能才好)

为了解决上述两个问题就提出了一种基于Faster-RCNN的muti-stage的architecture,核心就是利用不断提高的阈值,在保证正例样本数不减少的情况下训练出高质量的检测器

Abstract

  1. 在目标检测中需要一个IOU值来区分样本的正负样例,检测器使用较低的IOU值训练时会产生噪声监测,但是使用的IOU阈值变大时会造成检测效果下降,这主要由两个原因造成,IOU值变大时正例样本指数级消失导致过拟合在train和inference使用不一样的阈值很容易导致mismatch
  2. 级联RCNN包括一系列IOU逐渐增大的检测器,并且是一步一步训练,上一个检测器的输出作为下一个检测器的输入,因为对一个检测器来说输出的IOU值会比输入的IOU更高。

1 Introduction

  1. 目标检测两个主要问题:识别分类问题,从背景中识别前景物体并正确分类;定位问题,给不同的目标准确的边界框。
  2. 级联R-CNN的来源:一个检测器只能在一个质量水平(quality level)上表现的很好,这是从代价敏感学习中得出的:ROC曲线不同点的优化需要不同的损失函数,不同的是论文中是优化IOU阈值而不是假阳率。
  3. 从图中看出,如果提供高质量(高IOU)的输入则检测器也有较好的效果,但是随着输入数据的IOU的持续升高,检测器效果会下降(因为过拟合),
  4. 级联R-CNN可以用任意的两步阶段结构的R-CNN建立。

2 Related Work

RetinaNet解决密集物体检测,前景和背景极端不平衡问题,并取得了比两步的目标检测更好的效果。

3、Object Detection

基于Faster-RCNN,第一步proposal subnetwork(RPN网络)生成候选框H0,第二步是ROI池化层H1,将不同大小候选框在特征图上的映射patch,把映射的patch采样成固定大小的特征,和SPP类似,但只是用一个尺度(一个patch不论大小就划分为4个部分)进行划分。分类器是C,边界框是B

3.1 Bounding box regression

边界框b=(bx,by,bw,bh),边界框回归f(x,b)的作用是从候选边界框中选出目标边界框,边界框的损失函数在faster-RCNN中是L1损失函数,并通常用均值和方差正则化处理。在FatserRCNN中一个单独的边界框回归器f不能解决精确定位的问题,所以使用Bbox,但是Bbox中IOU的值固定(单一阈值即使用的是完全相同的级联结构),所以IOU的值不一定一直是最优的,并且边界框的分布随每次迭代变化很大。

(C0的结果是anchor中有目标或者没有目标)

3.2 Classification

分类器的函数是h(x),h(x)是后验概率的M+1维估计,hk(x) = p(y = k|x),通过最小化交叉熵损失来学习,

3.3 Detection Quality

如果IOU的值大于给定阈值,则认为这个patch是这个类中的一个。

当给定的IOU阈值大时,正例中包含很少的背景,但是正例数量会很少;当小时,容易产生接近但不正确的判断(假阳率高)。解决方法:传统最容易想到的是使用分类器的集成,如图c,Iterative Loss实际上没有级联结构,从c图可以看出来,它只是使用了不同的阈值来进行分类,然后融合他们的结果进行分类推理,并没有同时进行BBox reg,因此没有解决 不同数量的正例数应对应不同的损失 的问题。

4、Cascade R-CNN

与Bbox不同的是,级联RCnn通过重采样改变了不同阶段的输入假设分布,并且通过重采样保证了每个阶段有足够固定数量的正例样本数。这就实现了没有过拟合和更深层的训练阶段可以有更高的IOU阈值.

  • cascaded regression通过调整阈值的方式重采样,不断改变候选框region proposal的分布,而且cascaded重采样后的每个检测器,都对重采样后的样本proposals是最优的,没有mismatch问题。
  • cascaded在train和inference时都会使用,因此并没有偏差问题。

    其实像我这样的入门者有很多不懂之处,欢迎指正。

猜你喜欢

转载自blog.csdn.net/qq_34562093/article/details/81569801
今日推荐