天天看點

Sparse R-CNN: End-to-End Object Detection with Learnable Proposals 論文閱讀筆記Sparse R-CNN: End-to-End Object Detection with Learnable Proposals 論文閱讀筆記

Sparse R-CNN: End-to-End Object Detection with Learnable Proposals 論文閱讀筆記

  • 這篇文章是CVPR2021的,文章提出了一種新的檢測架構
  • 現有dense-prior的檢測架構存在着以下問題:
    • 一是産生備援結果,為此需要nms進行後處理
    • 二是訓練時many-to-one label alignment問題,這個我了解的意思是,訓練的時候每個預測結果要配置設定到某個GT box上去訓練,而可配置設定的GT-box有多個,選擇哪一個的問題,關于這個問題為什麼會成為問題,個人覺得 “Learning from Noisy Anchors for One-stage Object Detection” 這篇文章講得挺清楚的。
    • 三是性能受預設的anchor box的密點、大小、形狀、數量和區域提議方法的影響大。
  • 為此需要一種稀疏的目标檢測架構。ECCV2020有一篇用transformer做目标檢測的文章(“End-toEnd object detection with transformers”,提出的架構簡稱為DETR),确實能夠産生稀疏的End to End的目标檢測結果,然而它太慢了。并且,文章認為真正的稀疏不隻是bbox稀疏,特征也應該在特征圖上呈現稀疏的狀态,某個目标的特征盡可能不受其它特征影響。而DETR的特征不滿足稀疏的定義。
  • 文章的核心思想在于,将現有的目标檢測架構前端的密集候選區域提議方法替換為稀疏的區域提議,也就是最關鍵的dynamic instance interactive head

proposal

  • 首先是預設bbox,即proposal,原先目标檢測的proposal基于經過RPN處理的規則分布的HWK個anchor,然而本架構使用的是無規則的,基于統計的N個proposal,一旦訓練完成,這N個proposal就是固定的,訓練過程中這N個proposal是可訓練的4*N個參數——中心的位置和bbox的長寬(全部歸一化到0-1之間)
  • 對于每個proposal,除了4個表示位置大小的參數外,還有d個參數用來描述這個proposal,稱為proposal feature。是以,proposal是N*(4+d)個可訓練的參數描述的N個固定的proposal。
  • 對于一張圖檔,輸入時首先經過一個backbone提取特征,比如FPN,然後利用N個固定的proposal,從backbone提取的圖像特征中經過ROI Align取出這N個proposal的ROI feature。将每個proposal的ROI feature和proposal feature一起送進Dynamic instance interactive head這個兩輸入一輸出的網絡,産生每個proposal的用于預測的特征,送進後續預測網絡即可産生N個bbox的預測。

dynamic instance interactive head

  • 将輸入的proposal feature經過一個全連接配接層産生一個2q的特征,拆成兩個1q的特征作為兩個1x1的卷積核,是以輸入的ROI feature經過兩次卷積後展平,産生一個輸出特征。對每一個proposal都是如此,每個ROI有對應的卷積核。
  • 此外,本架構還利用了iteration structure ( “Cascade R-CNN: Delving into high quality object detection”) 和 self attention module (“Attention is all you need”)這兩個trick來提升性能,相比原論文,在本架構上應用這些trick導緻的運算負荷更低。
  • 對于 iteration structure,本架構可以利用第一次檢測的bbox及其在dynamic instance interactive head上輸出的特征object feature,作為下一次的輸入(bbox作為proposal, object feature作為proposal feature),進而進一步修正結果。
  • 對于self attention module,可以在object feature上進行attention來探究object之間的相關性。

set prediction loss

  • 原先目标檢測算loss總是受one-to-many label alignment困擾,本文利用了"End-toEnd object detection with transformers"中使用的“set prediction

    loss ”來進行one-to-one match,具體等我讀完"End-toEnd object detection with transformers"這篇論文再來補充。

  • 總之,個人評價是:文章确實提出了一種新的end-to-end的檢測架構,并且不複雜,聽到這個方法的時候忍不住會懷疑固定的proposal是否可行的問題,然而本文給出的結果确實是驚人的好:
    Sparse R-CNN: End-to-End Object Detection with Learnable Proposals 論文閱讀筆記Sparse R-CNN: End-to-End Object Detection with Learnable Proposals 論文閱讀筆記

繼續閱讀