目標檢測 - Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

清歡守護者發表於2020-11-26

0. 前言

  • 相關資料:
  • 論文基本資訊
    • 領域:目標檢測
    • 作者單位:香港大學&同濟大學&位元組跳動
    • 發表時間:2020.11
  • 一句話總結:使用固定數量的 learnable box/feature(與backbone無關) 替代anchors,從而將原始one/two-stage檢測方法轉換為set prediction形式

1. 要解決什麼問題

  • 目前目標檢測成熟的演算法都是基於Dense prior(密集的先驗,比如anchors、reference points)
  • 但密集的先驗存在很多問題
    • 會檢測出很多相似的結果,需要後處理(比如NMS)來過濾。
    • many-to-one label assignment 問題(作者描述為 many-to-one 正負樣本分配),猜測意思是我們在設定pred和gt時,一般不是一對一的關係,可能是有多個preds,看看哪個與gt更符合。
    • 檢測結果與先驗的關係非常密切(anchors的數量、大小,reference points的密級程度、proposal生成的數量)
  • DETR 分析
    • 屬於sparse detector。
    • 存在的問題:每個 object query 都與影像全域性資訊相互影響,訓練時收斂速度慢,整體流程也比較複雜。

2. 用了什麼方法

  • 方法比較

    • 認為 one-stage的方法就是Dense的方法,比如retinanet/yolo/ssd 這些。
    • 之前two-stage的方法屬於 dense-to-sparse,即RPN是Dense,過濾後的rois是sparse。
    • 我們希望提出的是sparse方法,即通過獲取 learned proposals。
    • image-20201126102927309
  • Sparse R-CNN 總體結構

    • 資料輸入包括 an image, a set of proposal boxes and proposal features。
    • 使用FPN作為Backbone,處理影像
    • 下圖中的 Proposal Boxes: N*4 是一組引數,跟backbone沒啥關係
    • 下圖中的 proposals features和backbone也沒啥關係
    • image-20201126103439702
  • Learnable porposal box

    • 跟backbone沒有什麼關係
    • 可以看成是物體潛在位置的統計概率
    • 訓練的時候可以更新引數
    • 這個結構能用,從這兒可以看出,之前one-stage方法使用dense prior比較浪費。
  • Learnable proposal feature

    • 跟backbone沒有什麼關係
    • 之前的 proposal box 是一個比較簡潔、卻的方法來描述物體,但缺少了很多資訊,比如物體的形狀與姿態。
    • proposal feature 就是用來表示更多的物體資訊。
  • Dynamic instance interactive head

    • 通過 proposal boxes以及ROI方法獲取每個物體的特徵,然後與 proposal feature 結合得到最終預測結果。
    • Head的數量與learnable box的數量相同,即head/learnable proposal box/learnable proposal feature一一對應。
    • image-20201126112747592

3. 效果如何

  • image-20201126113016200

4. 還存在什麼問題&可借鑑之處

  • 感覺就是在DETR的基礎上,把整個transformer去掉了,挺有意思。
  • 還有一種感覺,就是 retinanet 的anchor去掉,換成了 learnable proposal box/featue,也有這麼好的效果。

相關文章