Cascade R-CNN: Delving into High Quality Object Detection(个人学习笔记)

论文基本信息

  • 标题:Cascade R-CNN: Delving into High Quality Object Detection
  • 作者:Zhaowei Cai,Nuno Vasconcelos
  • 机构:UC San Diego
  • 来源:CVPR2018
  • 时间:2017/12/03
  • 链接:https://arxiv.org/abs/1712.00726
  • 代码: https://github.com/zhaoweicai/cascade-rcnn(official code)
    https://paperswithcode.com/paper/cascade-r-cnn-delving-into-high-quality

文章概要

问题背景

背景:

Object Detection需要找到True Positives,同时抑制⼤量close False Positives。训练Detector时需要使⽤IoU阈值u来定义Positive和Negative

分析:

图1( a )

  • 如果使⽤较低的IoU阈值进⾏训练,detector⽣成的detection通常⽐较noisy
  • u=0.5时对positive的要求相当loose。多数⼈认为IoU阈值为0.5时会放过close false
    positives

图1( b ):⽬标是学习high quality detector,其中输出⼏乎没有False Positive

  • the quality of an hypothesis:hypothesis(proposal BBox)与GT的IoU
  • the quality of the detector:训练detector时使⽤的IoU阈值u

图1( c )

  • localization performance:u为训练detector时使⽤的IoU阈值,Input IoU应该是输⼊到
    regressor的proposal与GT的IoU,Output IoU为regressor输出与GT的IoU。在Input IoU与u
    接近时,各个BBox regressor的location效果最佳(应该是Output IoU与baseline差距最⼤)

图1(d)

  • detection performance:横轴IoU Threshold应该是使⽤该阈值对detector⽣成的detection进
    ⾏过滤,纵轴就是detector的AP;对于与GT的IoU较低的prpoposal,u=0.5的detector优于
    u=0.6的detector;但对于与GT的IoU较⾼的prpoposal,u=0.6的detector优于u=0.5的
    detector。在Input IoU与u接近时,detector表现最佳。
  • 为得到high quality detector,并不能简单地增加u。随着训练detector时使⽤的IoU阈值u增
    加,检测性能可能会下降,如图1(d)中u=0.7时的AP低于u=0.5和0.6。因为detector中proposal
    hypothesis的分布通常严重不平衡(low quality的较多,所谓的正负样本不平衡),使⽤更⼤
    的u会导致positive training example的数量呈指数级减少(正负样本更加不平衡),对于含⼤
    量参数的神经⽹络,这⾮常容易导致训练期间overfitting
    在这里插入图片描述
  • 先看左图,横轴的是proposal的IoU,纵轴的是经过box reg得到的新的IoU,不同的线条代表不同阈值训练出来的detector,显然新的IoU越高,说明detector进行回归的性能越好。可以看到在0.55-0.6的范围内阈值为0.5的detector性能最好,在0.6~0.75阈值为0.6的detector性能最佳,而到了0.75之后就是阈值为0.7的detector了……这就说明了,只有proposal自身的阈值和训练器训练用的阈值较为接近的时候,训练器的性能才最好。
  • 从图中我们可以意识到,单一阈值训练出的检测器效果非常有限,以现在最常见的阈值0.5为例,由于所有IoU大于0.5的proposal都会被选中,那么对于IoU0.6-0.95的proposal来说,detector的表现就很差了。那么,我能不能直接选用0.7的高阈值呢?毕竟这样子0.5-0.7的proposal都被排除了,横轴0.7-0.95之间,红色线条的表现似乎不差啊?但是看到右图你就会发现,实际上detector的性能反而是最低的,原因是这样子训练样本大大减少,过拟合问题非常严重。
结论

• 问题:

  • 图1( a ):u较⼩时,detector⽣成的BBox通常⽐较noisy
    -图1( d ):u较⼤时,positive training example减少,容易过拟合
  • 图1( c )、( d ):基于单个IoU阈值训练的detector在使⽤其它IoU阈值进⾏测试时不⼀定最优
  • 图1( c ):某个proposal在经过detector后的IoU几乎必然是增加的,那么再经过一个更大阈值训练的detector,它的IoU就会更好
  • 举个例子,有三个串联起来的用0.5/0.6/0.7的阈值训练出来的detector,有一个IoU约为0.55的proposal,经过0.5的detector,IoU变为0.75;再经过0.6的detector,IoU变为0.82;再经过0.7的detector,最终IoU变为0.87……比任何一个单独的detector的结果都要好。不仅仅只有IoU改善的好处,因为每经过detector,proposal的IoU都更高,样本质量更好了,那么即使我下一个detector阈值设置得比较高,也不会有太多的样本被刷掉,这样就可以保证样本数量避免过拟合问题。

• Observation / Motivation:

  • 图1( c )、( d ):在Input IoU与训练时IoU阈值u接近时,各个BBox regressor的location效果最
    佳,detector表现也最佳。
  • 图1( c ):只有提供high quality proposal才能得到higher quality detector(可想⽽知);⽽
    regressor的output与GT的IoU⼏乎总是优于input与GT的IoU
相关实验

在这里插入图片描述

  • I:image
  • conv:backbone
  • H0:RPN
  • C:classification score
  • B0:proposal
  • pool:region-wise feature extraction
  • H1、H2、H3:detection head
  • B:bounding box
1. Iterative BBox

Iterative BBox为了定位准确,采用了级联结构来对Box进行回归,使用的是完全相同的级联结构。但单一阈值0.5是无法对所有proposal取得良好效果的,proposal经过0.5阈值的detector后IoU都在0.6以上,再使用这一阈值并不明智。
在这里插入图片描述
第一行横纵轴分别是回归目标中的box的x方向和y方向偏移量;第二行横纵轴分别是回归目标中的box的宽、高偏差量。可以看到,从1st stage到2nd stage,proposal的分布其实已经发生很大变化了,因为很多噪声经过box reg实际上也提高了IoU,2nd和3rd中的那些红色点已经属于outliers,如果不提高阈值来去掉它们,就会引入大量噪声干扰,对结果很不利。从这里也可以看出,阈值的重新选取本质上是一个resample的过程,它保证了样本的质量。
当然,这里会有另一个问题,这样真的不会减少样本数量么?虽然第1部分给了比较直观感性的解释,但是似乎还不够……作者给出了更加详细的实验证明:
在这里插入图片描述
如图4左侧所⽰,初始hypothesis(⽐如RPN的proposal)的分布严重倾向于low quality
(IoU),这不可避免地导致higher quality classifier的⽆效学习

  • Cascade RCNN将Cascade Regression作为⼀种resampling解决了这⼀问题,这是因为图1( c )
    中的所有曲线都在baseline(灰线)上⽅,即使⽤某个IoU阈值u训练的regressor倾向于产⽣
    IoU更⾼的BBox。如图4所⽰,每个resampling step之后样本的distribution逐渐倾向于high
    quality。
  • 即各个stage的detector的quality(IoU阈值)是逐步增加的,这样可以使每个stage中具有⾜
    够的(数量也⼤致相等)的positive example,防⽌因positive example数量太少⽽导致过拟
    合。
  • 更深stage的detector使⽤更⾼的IoU阈值进⾏训练,通过逐渐增加的IoU阈值可以逐渐移除⼀些
    outlier,如图2所⽰,这使得各个stage的specialized detector能够更好地训练。
  • 损失函数(在第t个stage时):
    在这里插入图片描述
2.Integral Loss

Ⅰ IoU阈值的问题
在这里插入图片描述

  • 如果1个hypothesis与GT的IoU⾼于设置的IoU阈值u,则该hypothesis是positive,否则是
    negative
  • u⾼时,positives包含较少background,但难以得到⾜够的positive training example。u低
    时,可获得richer、more diversified的positive training set,但得到的detector⽆法抑制
    close false positive
  • ⼀般单个classifier很难在所有IoU level上表现都⽐较良好
    inference时RPN等proposal detector⽣成的多数hypothesis的quality较低,因此detector必
    须对low quality的hypothesis具有更⾼的辨别⼒。
  • 折衷:通常确定u为0.5,但这个相对较低的阈值导致了close false positive
    Ⅱ ensemble of classifiers
    在这里插入图片描述
  • 如图3( c )所⽰,1个简单的solution就是使⽤多个classifier(训练时IoU阈值u不同)
  • inference:多个classifier在inference时进⾏集成
  • 问题:未能解决式(6)中不同loss对不同数量的positive进⾏操作的问题。如最后一张图的第1张所⽰,positive example随u迅速减少,这会导致higher quality classifier过
    拟合。此外higher quality classifier需要在inference时处理⼤量low quality proposal,⽽它们并未针
    对这些⼤量low quality proposal进⾏优化。基于以上两点,该⽅法在⼤多数quality level都⽆法实现higher accuracy,并且该⽅法相对于Iterative BBox,增益很⼩。
    Comparison with Iterative BBox and Integral Loss:
    在这里插入图片描述
    Comparison with the SOTA:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刚哥吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值