Cascade R-CNN总结

论文地址:https://arxiv.org/abs/1712.00726

文章内容:

  • 论文概述

  • 算法核心

论文概述:

目标检测训练面临的问题:使用低IOU阈值训练,会产生很多噪声检测,如下图;用高IOU阈值训练,检测结果反而降低,造成的原因有两点:(1)正样本指数级减少,使得训练过拟合,(2)在推理阶段选用不同的IOU造成mismatch

Casecade R-CNN的提出:在不断增高的IOU阈值上,训练有一系列检测器,逐渐剔除掉接近真样例的假样例

算法核心:

(c)图中横轴表示RPN的输出proposal的IoU,纵轴表示proposal经过box reg的新的IoU。可以得出以下结论:

  • 只有proposal自身的阈值和训练器训练用的阈值较为接近的时候,训练器的性能才最好。
  • 如果两个阈值相距比较远,就是我们之前说的mismatch问题了。
  • 单一阈值训练出的检测器效果非常有限,单一阈值不能对所有的Proposals都有很好的优化作用。

几种结构的比较:

(a)是Faster RCNN,因为two stage类型的object detection算法基本上都基于Faster RCNN,所以这里也以该算法为基础算法。(b)是迭代式的bbox回归,是后处理的过程,回归使用的是相同的网络只优化原始的分布(c)是Integral Loss,集成多个分类器(d)就是本文提出的cascade-R-CNN。cascade-R-CNN看起来和(b)这种迭代式的bbox回归以及(c)这种Integral Loss很像,和(b)最大的不同点在于cascade-R-CNN中的检测模型是基于前面一个阶段的输出进行训练,而不是像(b)一样3个检测模型都是基于最初始的数据进行训练,而且(b)是在验证阶段采用的方式,而cascade-R-CNN是在训练和验证阶段采用的方式。和(c)的差别也比较明显,cascade R-CNN中每个stage的输入bbox是前一个stage的bbox输出,而(c)其实没有这种refine的思想,仅仅是检测模型基于不同的IOU阈值训练得到而已。

Iterative BBox at inference:

上图结构b中的不足:

1、如图1所示,detector(u=0.5)对于所有的高质量的bndbox是次优解,甚至降低了IoU大于0.85的bndbox的准确度

2、bndbox的分布与GT间的差值分布,从图中可以看出,不同阶段的bndbox分布是显著不同的。若regressor对于初始化的分布是最优的,那对于在后面的阶段肯定是次优的,如下图所示

Integral Loss:

一种尝试的方法是使用一个分类器集合,如上图C网络。

问题是:阈值的设定是十分苦难的,当阈值过高时,正样本包含很少的背景,但是会导致难以生成足够多的正样本进行训练,反之,则会导致detecor容易产生close false positives。因此,很难找到一个单独的classifier能一致地对所有IoU的bndbox是最优的

  • 不同的classifer的正样本数量是不一样的,如图4所示,正样本的数量随着u的提高显著下降,这意味着高质量的classifiers容易过拟合
  • 在推理时,高质量的classifers需要处理相对低质量的bndbox,而他们对这些bndbox并没有优化

  因此,Integral loss在很多IoU水平难以表现出高的准确率。相对于原始的two-stage架构,Integral loss的架构收益相对较小

Cascade R-CNN:

Cascaded Bounding Box Regression

  由于很难训练一个能应付所有IoU水平的regressor,可以把回归任务分解成一个级联的regression问题,架构如图3(d)所示

 

 T是级联阶段数,每个regressor对于当前的级联输入都是最优的,随着阶段的深入,bndbox在不断的提升。
cascade regression与iterative BBox有以下区别:

  • iteravtive BBox是后处理的方法,而cascaded regression是能够改变bndbox分布的重采样过程
  • cascaded regression在训练和推理时是一致的,不存在区别
  • cascaded regression的多个regressor对于对应阶段的输入分布是最优的,而iterative BBox仅对初始分布是最优的

 

Bndbox在回归时,为了对scale和location有不变性,将对坐标的学习转移到对坐标差值的学习。由于坐标插值通常较小,因此将其进行归一化,以权衡定位与分类的loss。Cascade R-CNN在每一个stage结束后,都会马上进行计算这些均值/方差

Cascaded Detection

  产生Cascade R-CNN的启发点主要有两个:

  • 如图4的1st stage图所示,初始的bndbox分布大多落在低质量的区域,这对于高质量classifiers来说是无效的学习。
  • 在图1(c)实验中可以看到,所有的曲线都高于对角线,即regressor都倾向于能够提升bndbox的IoU。

  因此,以集合作为开始,通过级联regress来产生高IoU的集合。如图4所示,这种方法能在提升样本整体IoU水平的同时,使得样本的总数大致维持在一个水平,这会带来两个好处:

  • 不会存在某个阈值的regressor过拟合
  • 高阶段的detector对于高IoU阈值是最优的

  从图2可以看出,随着阶段的深入,一些离群点会被过滤,这保证了特定阈值的detector的训练

 

在每一个阶段t,都独立一个对阈值最优的classifier 和regressor,xt是上一阶段的输出,lambda是权重因子,yt>=1是指示函数,表示背景的不加入计算。与integral loss不同,公式8保证了顺序地训练detectors来逐步提高bndbox质量。在推理时,bndbox的质量是顺序提高的,高质量的detectors只需要面对高质量的bndbox。

 参考文章:

https://www.lizenghai.com/archives/42347.html

发布了19 篇原创文章 · 获赞 13 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_39958313/article/details/104904268
今日推荐