【目标检测系列:七】Cascade R-CNN: High Quality Object Detection and Instance Segmentation

2018 CVPR

Cascade R-CNN: Delving Into High Quality Object Detection
Cascade R-CNN: High Quality Object Detection and Instance Segmentation

High Quality Object Detection and Instance Segmentation


Introduce

检测=分类+定位
在这里插入图片描述

  • 确定正样本的过程普遍的做法是:计算anchor box与ground truth 之间的IOU,大于某一个阈值(一般是0.5)就认为这是一个正样本。
    阈值低导致 有很多重复的没用的框,可以称为噪声

在这里插入图片描述

那检测中的IoU阈值选取高可以吗?

  • 越容易得到高质量的样本

  • 但是一味选取高阈值会引发两个问题,导致训练出的 detector 效果下降[1]
    在这里插入图片描述

    • 样本减少,引发过拟合 (训练样本通过RPN产⽣的RP与标注所对⽐的IoU直⽅图,当IoU增加时,正样本呈指数级下降。The red numbers are the positive percentage higher than the corresponding IoU threshold.)[1]
      在这里插入图片描述
    • 在train和inference 使用不一样的阈值 ,导致mismatch
      即保持训练的阈值较低,只在测试时使⽤⾼阈值,detector得到的结果是次优的,称为inference-time mismatch.[1]
  • 发现 :①在测试时使⽤更⼤阈值是次优的,即detector的AP会下降(红线);
    ②低阈值训练的detector对低IoU样本上提升好,⾼阈值detector对⾼IoU样本提升好。

在这里插入图片描述

如何在阈值适中的情况下训练出效果最好 的detector呢?

  • detector对IoU接近阈值的bbox效果最好,在阈值为0.7时,若输⼊的bbox也为0.7时提升最⼤[1]
    在这里插入图片描述
  • 在⼀个⽹络中进⾏⼀次cascade结构(串⾏使⽤多个不同阈值的detector)⽐Iterative BBox(串⾏使⽤同⼀个detector)效果好很多,且不会把⾼IoU的bbox回归到低IoU的位置。[1]
    如下图所示,input IOU 0.55下 分别使⽤蓝⾊、绿⾊、红⾊的detector⽐使⽤三次蓝⾊detector效果好[1]
    在这里插入图片描述

Cascade RCNN

1个RPN+3个检测器(阈值设定分别为0.5/0.6/0.7)

在这里插入图片描述在这里插入图片描述

  • (b)Iterative BBox at inference
    三个head部分相同(H1,H1,H1)
    针对某一个IOU阈值,比如 0.5,是最优化的,但是当inference时,真正的IOU大于 0.5 以后他是次优化suboptimal 的。
    级联之后,相同的head对于后面的结构来说是次优化的suboptimal 。[2]

  • (c)Integral Loss

    不同IOU阈值的分布是不均衡的, 所以 损失是不均衡的[2]
    在这里插入图片描述

  • (d)Cascade RCNN
    在这里插入图片描述
    cascaded regression不断改变了proposal的分布,并且通过调整阈值的方式重采样
    cascaded在train和inference时都会使用,并没有偏差问题
    cascaded重采样后的每个检测器,都对重采样后的样本是最优的,没有mismatch问题[3]

    迭代边界框回归
    在这里插入图片描述

在这里插入图片描述

Cascade Mask RCNN

最流行的实例分割方法可以说是 Mask R-CNN ,以及它的改进算法 PANet 、Mask Scoring RCNN 等
通过添加类似于Mask R-CNN的分段分支,将Cascade R-CNN架构扩展到实例分段任务。
在这里插入图片描述

Cascade R-CNN具有多个检测分支。这提出了以下问题:
1)添加 分割分支 的位置
考虑了三种 mask 预测策略,在级联R-CNN的第一级或最后一级添加了单个 mask预测head (b)、(c)
2)要添加的 分割分支
为每个级联阶段添加了一个 分割分支(d),最大化了用于学习 mask 预测任务的样本的多样性

实验表明,Cascade Mask R-CNN的这些架构优于Mask R-CNN。

EXPERIMENTAL RESULTS

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Pytorch

https://github.com/guoruoqian/cascade-rcnn_Pytorch
https://github.com/leowangzi/CascadeRCNN

References

[1] http://www.mclover.cn/blog/index.php/archives/247.html
[2] https://arleyzhang.github.io/articles/1c9cf9be/
[3] https://blog.csdn.net/qq_21949357/article/details/80046867
https://blog.csdn.net/qq_21949357/article/details/80046867
https://blog.csdn.net/qq_41375609/article/details/97888934 (最新版论文目前能找到的一篇翻译)

猜你喜欢

转载自blog.csdn.net/qq_31622015/article/details/101198680