【目標檢測系列:七】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 (最新版論文目前能找到的一篇翻譯)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章