目录:Casecade R-CNN论文讲解
- 一、背景
- 二、简单回顾R-CNN结构
- 2.1 Training阶段
- 2.2 Inference阶段
- 三、论文摘要
- 四、介绍
- 五、关于mismatch问题
- 六、关于单纯增大训练时IoU阈值问题
- 七、相关工作
- 7.1 two-stage
- 7.2 one-stage
- 7.3 multi-stage
- 八、Cascade R-CNN讲解
- 九、总结
论文讲解已经整理成word版本发布,作品源地址为:
https://mbd.pub/o/bread/Y56Tmp1x
下面是展示的部分数据!
一、背景
从文章的题目上我们就可以看出这篇文章的目标是提高检测质量,希望能获得更精确的检测结果。文章提出的cascade结构的效果是惊艳的,几乎对于任意的R-CNN(Faster RCNN,FPN,R-FCN等)都可以带来 到 个点的AP提升。
Object Detection需要找到true positives,同时抑制大量的close false positives。训练detector时需要使用IoU阈值 来定义positive和negative。
二、简单回顾R-CNN结构
以经典的Faster RCNN为例。整个网络可以分为两个阶段,training阶段和inference阶段,如下图所示:
2.1 Training阶段
2.2 Inference阶段
三、论文摘要
四、介绍
目标检测是一个复杂的问题,需要解决两个主要的任务:
- 首先,检测器必须解决识别问题,区别前景目标和背景目标,并为其分配匹配的类别标签;
- 其次,检测器必须解决定位问题,为不同的目标分配精确的bounding box。
许多目标检测器都是基于两阶段网络框架Faster R-CNN的。两阶段检测网络是一个多任务学习问题,包括目标的分类和边界框回归。
与物体识别不同的是,定义正/负样本需要一个IoU阈值。通常使用的IoU阈值为0.5 , 0.5对IoU的设置是相当低的。检测的目标经常包括很多噪声。
五、关于mismatch问题
在training阶段和inference阶段使用不同的阈值很容易导致mismatch,什么意思呢?
在training阶段,由于给定了GT,所以可以把与GT的IoU大于阈值的proposals作为正样本,这些正样本参与之后的bbox回归学习和分类。
在inference阶段,由于GT是未知的,所以只能把所有的proposals都当作正样本,让后面的bbox回归器回归坐标。且在inference阶段,只有生成的proposals自身的IoU值和训练器训练时设定的IoU阈值较为接近时,训练器输出的IoU值才会高即网络性能才好。
所以在training阶段和inference阶段,bbox回归的输入分布是不一样的,training阶段输入的proposals质量更高(被采样过,IoU>threshold),inference阶段的输入proposals质量相对较差(没有采样过,可能包含很多IoU<threshold的情况),这就是论文中提到的mismatch问题,这个问题是固有存在的,通常threshold取0.5时,mismatch问题不会很严重。
六、关于单纯增大训练时IoU阈值问题
从上图可以看到,随着stage的加深,相应区域的positive依旧拥有大量的proposal,因此不会出现严重的过拟合现象。
七、相关工作
7.1 two-stage
7.2 one-stage
7.3 multi-stage
八、Cascade R-CNN讲解
本文解决的重要思想是每一个单独的detector只对一个单独的IoU(原文称quality level)进行优化。此前有类似的工作,但本文的思想与其不同,此前是对False positive rate优化,本文是对一个给定的IoU阈值优化。
高IoU预设在输入高IoU样本时输出较好,低IoU预设在输入低IoU样本时输出较好。也就是说预设值与输入值匹配的情况下表现最好。
然而,要生成一个高质量的detector,光是简单地提高阈值也没什么用,如上面讲过的,提高阈值输出还是不断下降,作者认为这样的原因是因为提高阈值之后会使positive samples太少。本来神经网络就很脆弱,这么少的样本很容易造成过拟合。另一个问题是上文提到的预设与输入IoU阈值不匹配的问题。
作者首先给了一张当时比较流行的方法示意图,此图后文用到多次,我们称之为结构图,各大写字母含义图中也给出解释:
九、总结
RPN提出的proposals大部分质量不高,导致没办法直接使用高阈值的detector,Cascade R-CNN使用cascade回归作为一种重采样的机制,逐stage提高proposal的IoU值,从而使得前一个stage重新采样过的proposals能够适应下一个有更高阈值的stage。这篇论文的启发:
IoU阈值训练级联检测器。最关键的是逐渐提高的IoU阈值的stage要对应着高IoU阈值样本的分布,否则很容易发生过拟合;恰巧的是低IoU阈值的bbox在经过回归后,其IoU阈值一定会变大,故这样就级联起来了。