Cascade (Mask) RCNN 2019

Introduction

"close" false positives: 和正确的样本非常接近但是其实是不正确的bbox.

在以往的方法中,界定正负样本是通过卡IoU阈值来实现的。比如在Faster RCNN中的RPN,在选择正负样本时,采用如下的方法:

  • Anchor和任意的GT-box有大于0.7的IoU --> Positive
  • Anchor和所有的GT-box都小于0.3的IoU --> Negative
    (剩下的anchors则被抛弃不参与训练)

当卡IoU阈值为0.5时,产生的样本数量非常noisy(如下图(a)所示,很多非常小的box仅包含了背景,但是也被留下来当作了person类)


Fig1: iou_threshold.png

当逐渐增大阈值,bbox的质量会越来越好,但是也导致可用于训练的正样本急剧减少。

本文中定义了:

  • quality of detection hypotheses : 某个detection和GT的IoU.
  • quality of detector: 用于训练这个detector使用的IoU threshold u.

初始前提:一个单独的detector只能在某个特定的“quality of detector”下达到optimal. (也就是一个detector只能对应一个最佳的IoU threshold)
下面作者用了三个实验来验证上面这个前提:

Fig2: performance_iou.png

图(a)是bbox regression的表现。三个设置了不同IoU阈值的regressor,分别在它们threshold附近的IoU表现得最好,比如:u=0.5的蓝色曲线,在横轴0.5左右的地方表现就比其他两条曲线高。图(c)也有相同的效果。这就表明了,一个在单个IoU阈值下训练好的detector,对于IoU阈值下的表现就不是最佳的了。
图(b)中显示的peak也能说明类似的结论。总的来说,IoU阈值确定了分类的boundary——分类器在什么boundary下是表现最好的。

这些实验观察说明,单单去提高IoU阈值来产生质量更高的proposals以训练网络是不能一定得到更好的效果的,图(c)里面u=0.7那里,反而证明阈值越高效果还越差。这个结果有两个原因:

  1. IoU阈值越高,产生的正负样本数量越不均匀。(正样本数量急剧下降)--> 模型容易overfit
  2. quality of the detector 和 quality of the detection hypotheses之间的Mismatch. 高质量detector需要高质量的detection hypotheses才能发挥作用,而inference的时候,你无法保证产生的proposals都是高质量的。
Solution

于是提出了Cascade RCNN这么一种multi-stage的方式:
The Cascade of RCNN stages is trained sequentially, using the output of one stage to train the next.
因为input proposals和GT的IoU,经过了regressor之后,output和GT的IoU分数一定会更好(不然你的regressor就是白瞎了不是)。这也就是说,对于卡了低IoU阈值的detector,它输出出来的bbox如果作为下一个“高IoU阈值detector”的输入proposals,那个这个proposals(hypotheses)的质量必然是更好的。
对于上述两个问题的解决:

  1. 因为这个resampling operation,之前stage的低IoU的proposals不会被一刀切,而是传递到了下面几个stages,保证了充足数量的正样本。
  2. 在Inference的时候,这种串联结构同样可以保证生产的hypotheses传递到下面的stages质量是越来越好的。

Architecture

Fig3: cascade_arch

Cascaded Bounding Box Regression

每一个regressor 都在之前的regressor产生的bbox分布上调优,而不是在给的初始bbox上(B_0)。这样一来,hypotheses是一层一层越来越优化的。

Cascaded Detection

RPN最开始产生出来的那些hypotheses分布中,low quality的占了大部分。在u=0.7时候,只有2.9%的examples是正样本。这样就很难去训练一个高质量下的detector(之前提到了:low quality hypotheses只能训练low quality detector; high quality hypotheses只能训练high quality detector)。在Cascade RCNN中,用了cascade regression来作为一种重采样策略(resampling method)。因为上一层low quality的bbox经过了上一层的regressor之后精细化了,到了下一层就变成了high quality的bbox,即使下一层卡IoU阈值卡得高一点,这些bbox也不会被过滤掉。文中说这样可以让每一个stage的正样本数几乎保持一个常量。这样做相当于改变了bbox hypotheses的分布

Differences from Previous Works

Fig3 (c) 可以看出Iterative BBox和本文的Cascade RCNN差不多,只是Iterative BBox在不同的stage都用了同样的network headH_1,相当于在每个stage把同样的module重复使用。这样做的话其实没有解决之前说的 paradox of high-quality detection

Intergral Loss中提出的结构(Fig3(d)) 没有解决当IoU阈值卡高了之后正样本数量急剧减少的问题。

Instance Segmentation

Cascade Mask R-CNN

Fig6: cascade_mask_arch

Mask R-CNN中,新加入的segmentation branch是和detection branch平行加入的。在Cascade的结构中,加入这样一个新的branch就有如下两个问题:
(1) 加在哪里? (2) 加多少?
文中给出了三个方案如上图Fig 6:(b) (c)两个方案主要是解决第一个问题,且只考虑加一个segmentation branch。
用来训练segmentation branch的instances是来自于detection branch的正样本。把segmentation head放到cascade的更后面可以得到更多的样本,但是由于分割是一个pixel-wise的操作,有很多重叠的instances其实也不是一件好事。

(d) 第三种方案在每个stage都加了一个分割头,这样最大化了sample的多样性。

在inference的时候所有的strategies都在最后的stage输出来的patches上面进行分割,不管训练的时候segmentation head是如何设置的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351