【目标检测】Casecade R-CNN论文讲解(超详细版本)

目录: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阶段,如下图所示:

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第1张图片

2.1 Training阶段

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第2张图片
在这里插入图片描述

2.2 Inference阶段

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第3张图片

三、论文摘要

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第4张图片

四、介绍

目标检测是一个复杂的问题,需要解决两个主要的任务:

  • 首先,检测器必须解决识别问题,区别前景目标和背景目标,并为其分配匹配的类别标签;
  • 其次,检测器必须解决定位问题,为不同的目标分配精确的bounding box。

许多目标检测器都是基于两阶段网络框架Faster R-CNN的。两阶段检测网络是一个多任务学习问题,包括目标的分类和边界框回归。

与物体识别不同的是,定义正/负样本需要一个IoU阈值。通常使用的IoU阈值为0.5 , 0.5对IoU的设置是相当低的。检测的目标经常包括很多噪声。
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第5张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第6张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第7张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第8张图片

五、关于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

六、关于单纯增大训练时IoU阈值问题

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第9张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第10张图片
从上图可以看到,随着stage的加深,相应区域的positive依旧拥有大量的proposal,因此不会出现严重的过拟合现象。

七、相关工作

7.1 two-stage

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第11张图片

7.2 one-stage

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第12张图片

7.3 multi-stage

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第13张图片

八、Cascade R-CNN讲解

本文解决的重要思想是每一个单独的detector只对一个单独的IoU(原文称quality level)进行优化。此前有类似的工作,但本文的思想与其不同,此前是对False positive rate优化,本文是对一个给定的IoU阈值优化。

高IoU预设在输入高IoU样本时输出较好,低IoU预设在输入低IoU样本时输出较好。也就是说预设值与输入值匹配的情况下表现最好。

然而,要生成一个高质量的detector,光是简单地提高阈值也没什么用,如上面讲过的,提高阈值输出还是不断下降,作者认为这样的原因是因为提高阈值之后会使positive samples太少。本来神经网络就很脆弱,这么少的样本很容易造成过拟合。另一个问题是上文提到的预设与输入IoU阈值不匹配的问题。

作者首先给了一张当时比较流行的方法示意图,此图后文用到多次,我们称之为结构图,各大写字母含义图中也给出解释:

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第14张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第15张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第16张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第17张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第18张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第19张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第20张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第21张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第22张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第23张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第24张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第25张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第26张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第27张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第28张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第29张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第30张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第31张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第32张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第33张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第34张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第35张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第36张图片
【目标检测】Casecade R-CNN论文讲解(超详细版本)_第37张图片

九、总结

RPN提出的proposals大部分质量不高,导致没办法直接使用高阈值的detector,Cascade R-CNN使用cascade回归作为一种重采样的机制,逐stage提高proposal的IoU值,从而使得前一个stage重新采样过的proposals能够适应下一个有更高阈值的stage。这篇论文的启发:

【目标检测】Casecade R-CNN论文讲解(超详细版本)_第38张图片

IoU阈值训练级联检测器。最关键的是逐渐提高的IoU阈值的stage要对应着高IoU阈值样本的分布,否则很容易发生过拟合;恰巧的是低IoU阈值的bbox在经过回归后,其IoU阈值一定会变大,故这样就级联起来了。

你可能感兴趣的:(目标检测经典论文导读,目标检测,Casecade,R-CNN,计算机视觉)