【论文解析】Cascade R-CNN: Delving into High Quality Object Detection

论文链接
CVPR2018的文章。和BPN一样,本文主要关注的是目标检测中IoU的阈值选取问题,但是BPN主要针对的是SSD等single-stage的detector,感兴趣的童鞋可以看我的另一篇博文BPN
目标检测中,detector经常是用低IoU阈值来train的,如果提高IoU阈值,则会导致两个问题:
(1)IoU提高以后,训练中positive samples的数量会指数级减少,从而导致过拟合。
(2)预测和训练用不同阈值,会导致不匹配。

问题发现

在这里插入图片描述
可以看到,图a中低阈值的IoU训出的detector会有很多close false positives,设想如果IoU阈值设为刚好0.5,那么在0.5附近就会有很多的close false positives,我们就很难让检测器reject这些close false positives。
在这里插入图片描述
同时,在c中可以得出一个结论,一个检测器只能在某一quality level上最优。quality level用detector的IoU设定阈值来确定。同时在d图中可以看到,u=0.5在low IoU样本表现得最好,但是在高IoU level时就比不过u=0.6了。所以总的来说,a detector optimized at a single IoU level is not necessarily optimal at other levels。
同时,直接用大阈值来训练检测器不一定会提高效果,可以看到d图中u=0.7的时候,它会降低performance,AP只有0.319。这其中很大的一部分原因就是:和low quality的detector相比,hypotheses的分布会改变,原因和上面提到的问题1类似。

目标检测

iterative BBox

论文中阐述了一下bounding box的回归方程,在这里就贴一下:
在这里插入图片描述这个Lloc在R-CNN中用的时L2 loss,在fast-rcnn中就改成了smooth L1 loss了。
然后Lloc用来对距离向量进行操作:
在这里插入图片描述
但是和classificatoin相比, 这个bounding box回归的梯度往往小于它,所以很多工作提出了单次回归对于精确的定位来说根本不够,所以就提出了多次回归的方法,
在这里插入图片描述
在这里插入图片描述
但是,它忽略的两个问题:

  1. u=0.5的回归器对于更好的hypothese来说不是最优的,所以对于u≥0.85的bounding box来说,会降低它的效果。
  2. 在图2中,每次iteration之后,bounding box的分布会显著地改变,所以回归器如果对于初始分布最优,那它对于其他分布可能不是最优。
    在这里插入图片描述

integral loss

在这里插入图片描述
只是单纯地多次分类提高分类精度,每次分类针对的IoU阈值变高,但是这样对定位毫无帮助,并且容易过拟合。
在这里插入图片描述

Cascade R-CNN

在这里插入图片描述
级联R-CNN,总的来说就是多次回归,但是每次回归的回归器都是不一样的,所用的阈值不断提高,同时回归器训练时也是用提高的阈值训练的(和iterative BBox不同)
在这里插入图片描述
T时级联的总数。
级联R-CNN和iterative BBox的不同:

  1. 首先,iterative BBox时后处理过程,用了改善bounding box,但是级联回归是一个重采样过程,它会改变预测值的分布。
  2. 其次,因为它在训练和预测中都有使用,所以不会导致预测和训练分布的不同
  3. 各个回归器都在其stage上是最优的,因为不同stage的分布都重采样了。这在图4中也有体现
    在这里插入图片描述

loss

在这里插入图片描述
bt是上个stage回归后的bounding box。值得注意的是,有几个stage就有几个loss,t指的是stage的级数。

实验

本文选择的三个stage是{0.5,0.6,0.7}。本文实验了三个baseline,faster rcnn(VGG),R-FCN和FPN。

Quality mismatch

在这里插入图片描述
图5(a)中,三条实线是用不同阈值训练的单一的检测器,可以看出u=0.5在低IoU阈值表现得好,在高IoU阈值比不过u=0.6. 然后我们为了理解这是怎么发生的,在b中我们加入了一些ground truth bounding boxes。 可以看到,u=0.7有了很大的提高。所以说,高阈值的检测器所需的样本必须匹配quality。虚线表示用cascade里面的proposals代替原样本,可以发现检测器得到了很好的提高。

和iterative BBox和integral loss的比较

在这里插入图片描述
虽然都超过了baseline,但是cascade r-cnn的提升还是大了很多。
在这里插入图片描述
图7(a)是和iterative BBox定位的比较,可以看出单一回归器的使用会降低高IoU的hypotheses,这个影响在iterative BBox中会累计,但是cascade中later stages的表现在all levels都比BBox好。
图7(b)则是integral loss的分类AP,u=0.6在all IoU表现得最好,u=0.7最差,融合也没效果。

消融实验

在这里插入图片描述
在这里插入图片描述
(这里有个小小的疑问,Table 标号不应该放在表的上方吗)

和state-of-the-art的比较

在这里插入图片描述

### 回答1: Cascade Mask R-CNN的原文标题为"Cascade R-CNN: Delving into High Quality Object Detection",由Zhaowei Cai、Qijie Zhao、Yi Li和Jianping Shi于2018年在IEEE Conference on Computer Vision and Pattern Recognition (CVPR)上发表。 ### 回答2: Cascade Mask R-CNN是一篇名为"Cascade Mask R-CNN"的论文,该论文由一组研究人员撰写,并于2018年发表。 该论文的主要贡献是提出了一种新的对象检测和实例分割算法,称为Cascade Mask R-CNN。这种算法在基于区域的卷积神经网络(R-CNN)的基础上进行了创新。 在传统的Mask R-CNN中,对象检测和实例分割是同时进行的,并且具有两个并行的分支。而Cascade Mask R-CNN通过级联级联多个级别的分类器和分割器来改进该方法。它的基本思想是采用级联结构来提高分类和分割的精度。 Cascade Mask R-CNN的核心是级联结构的层数。每一级都有一个独立的RPN(Region Proposal Network)用于生成候选框,一个ROI(Region of Interest)pooling层从候选框中提取特征,一个用于分类的分类头和一个用于分割的分割头。级联结构的关键之处在于将前一级的输出作为下一级的输入,从而逐步提高性能。 论文还提出了一种新的loss函数来训练级联结构。该损失函数结合了分类损失和分割损失,同时考虑了不同级别的结果。通过多阶段的训练过程,Cascade Mask R-CNN能够逐步优化性能,提高检测和分割的准确性。 实验结果表明,Cascade Mask R-CNN在多个常用的数据集上都取得了优秀的结果。相比于其他目标检测和实例分割方法,Cascade Mask R-CNN在准确性方面具有明显的改进。它被广泛应用于各种计算机视觉任务,并在学术和工业界产生了显著影响。 总的来说,Cascade Mask R-CNN是一篇重要的论文,提出了一种新颖的对象检测和实例分割方法。它通过级联结构和新的损失函数来逐步提高性能,取得了显著的成果,对计算机视觉领域的发展具有重要意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值