52.1 AP!RepPoints V2:用於目標檢測的驗證+迴歸,剛剛開源!

點擊關注上方AI深度視線」,並「星標」公號
git

技術硬文,第一時間送達!github

AI視線算法


將驗證和迴歸進行組合,是目前最強的Anchor-free目標檢測網絡,與前幾天的AutoAssign並列。
微信

論文連接:
網絡

https://arxiv.org/abs/2007.08508app

代碼昨天前剛剛開源!
框架

https://github.com/Scalsol/RepPointsV2less

做者團隊:MSRA&北京大學
編輯器





1函數


摘要



驗證和迴歸是神經網絡中用於預測的兩種通用方法。每種方法都有其各自的優點:驗證更容易準確推斷,迴歸更有效而且適用於連續目標變量。所以,仔細地組合它們以利用它們的好處一般是有益的。

在本文中,咱們採用了這種理念來改進最新的對象檢測,特別是經過RepPoints。儘管RepPoints提供了高性能,但咱們發現它嚴重依賴於迴歸來進行目標定位,所以還有改進的餘地。

咱們將驗證任務引入RepPoints的位置預測中,從而生成RepPointsv2,它使用不一樣的主幹和訓練方法,在COCO對象檢測基準上比原始RepPoints一致地提升了約2.0 mAP。RepPoints v2還能夠經過單個模型在COCO test-dev上達到52.1 mAP。

此外,咱們代表,提出的方法能夠更廣泛地提高其餘目標檢測框架以及諸如實例分割之類的應用。


2


主要思路


在這項工做中,咱們研究了 是否能夠經過包含驗證方法來加強基於純迴歸的方法 。咱們觀察到, 以某些方式使用驗證已證實對提高檢測效果是有利的 。例如在CornerNet [13]中,與在RetinaNet [16]中驗證anchor box爲粗略假設定位相反,而是將feature map points驗證爲邊界框角點。如表1所示, 這種驗證的使用可顯着提升定位性能
  • 問題提出:

爲了提升基於迴歸的方法(特別是RepPoints [30])的性能,咱們尋求歸入有效且兼容的驗證形式。可是,由兩種方法處理的對象表示的粒度不一樣,即RepPoints中的目標總體和角點驗證中的目標parts(角點),都會帶來障礙。

  • 解決方法:

爲了解決此問題,咱們建議經過輔助分支來對驗證任務建模,這些輔助分支僅在功能級別和結果級別上添加到主要回歸分支中,而不會影響中間表示。經過這些輔助分支,能夠將驗證與迴歸融合在一塊兒,以提供如下好處:
  • 經過多任務學習得到更好的功能,經過包含驗證提示來加強功能以及經過兩種方法進行聯合推理。
  • 融合很是簡單,直觀,通用,足以利用任何種類的驗證提示,而且不 會中斷RepPoints算法的流程。
經過利用驗證的不一樣技術,RepPoints的定位和分類能力獲得了顯着提升。所得的檢測器稱爲RepPoints v2,與具備不一樣主幹的COCO基準上的原始RepPoint相比,顯示出約2.0 mAP的一致改進。使用單個ResNeXt-101-DCN模型,它在COCO對象檢測測試開發集上也達到了52.1 mAP。


3


本文方法


3.1 回顧RepPoints

RepPoints[30]採用純迴歸實現對象定位。從一個feature map 的位置p = (x, y)開始,直接回歸一組點:
來表示一個目標的空間範圍,經過下面連續兩個步驟:
RepPoints[30]中的直接回歸使其成爲一個不須要固定anchor的簡單框架。雖然沒有采用錨點驗證步驟,但其定位精度並不比基於錨點的檢測器RetinaNet[16]差,如表1所示。然而,迴歸和驗證之間潛在的協同做用促使咱們考慮如下問題:
  • 什麼樣的驗證任務可以使基於迴歸的RepPoints[30]受益?
  • 各類驗證任務能夠方便地融合到RepPoints框架中而不損害原始檢測器嗎?

3.2 Verification Tasks

咱們首先討論兩個驗證任務,它們可能有助於基於迴歸的定位方法。


    Corner Point Verification

角點驗證的操做是將一個分數與特徵圖中的每一個點關聯起來,代表它是一個角點的機率

因爲特徵圖的分辨率較輸入圖像低,預測增長一個偏移量來產生連續的角點座標,例如8倍的下采樣,角點座標被初始量化。在原始實現[13]的基礎上,在頭部進行角點池化計算,用一個focal loss[16]來訓練角點分數預測,平滑的L1 loss來進行亞像素偏移預測。在標籤分配中,若是一個GroundTruth角點位於其feature bin內,則每一個特徵圖點被標記爲正,其餘點被標記爲負。在計算損失時,每一個GroundTruth周圍的負樣本由一個逆高斯函數根據其到GroundTruth角點的距離賦較低的權值。論文附錄A給出了更詳細的說明。

與CornerNet[13]採用特殊的沙漏結構和單級高分辨率特徵圖(從原始圖像下采樣4倍)的骨幹網結構不一樣,大多數最近的物體探測器採用具備多級特徵圖的FPN骨幹網。們採用角點驗證來利用多級特徵圖,例如RepPoints[30]中的C3-C7設置。

具體來講,全部的ground truth角點都被分配到feature map的每一個level,這與基於FPN的一般根據目標大小分配檢測的作法不一樣。咱們發現這種方式的賦值效果稍微好一些,儘管它忽略了尺度歸一化的問題,這多是由於在訓練的每一個層次上都有更多的正樣本。它的性能也比在最高分辨率的單一feature map級別(例如C3)上進行訓練,而後將預測的score/offset map複製/調整到其餘級別上要好得多。


    Within-box foreground verification

另外一項可能對基於迴歸的對象檢測器有利的驗證任務是驗證特徵映射點是否位於對象框內

這個框內的前景驗證任務均勻地提供了一個對象框內的定位信息,與之造成對比的是,角點只關注box的極端部分。所以,在描述對象邊界時,它不如角點精確,但在給定粗略的定位標準時,可能有利於對象檢測器。

咱們還經過使用非二進制分類感知前景熱圖來區分不一樣的對象類別。具體來講,對於C類對象,有一個C通道輸出,每一個通道表示一個特徵點在對應對象類別中的機率。與角點驗證同樣,每一個ground truth對象被分配到FPN骨幹的每一層。

歸一化局部損失。在訓練中,普通的focal loss讓較大的物體比較小的物體貢獻更大,致使對小物體的前景得分學習得不好。爲了解決這一問題,提出了一種歸一化focal loss算法,該算法根據特徵圖中同一對象框內的正樣本點總數來對每一個正特徵圖點進行歸一化。對於負樣本點,歸一化損失使用正樣本點的數量做爲分母。附錄A給出了更詳細的說明。


3.3 A General Fusion Method

在本節中,咱們將結合這些驗證形式來提升基於迴歸方法的性能。一般,基於迴歸的方法以自頂向下的方式檢測對象,全部中間表示都對整個對象建模。因爲這兩個驗證任務處理對象部分,如角點或前景點,它們不一樣粒度的目標表示使得兩種方法的融合變得複雜。
爲了解決這個問題,
咱們建議經過與主要回歸分支融合在一塊兒的輔助分支來對驗證任務建模,這種方式不會影響到它的中間表示,如圖1所示。

融合只發生在特徵層和結果層。有了這些輔助側分支,探測器能夠得到幾個好處:


  • Better features by multi-task learning

輔助驗證任務提供了更豐富的學習監督,產生了更強的特徵,提升了檢測準確率,如表4所示。注意,這種多任務學習不一樣於Mask R-CNN[8]。在Mask R-CNN[8]中,邊界框目標檢測得益於目標mask預測任務,但須要對目標mask進行額外註釋。相反,咱們的附加輔助任務是僅從對象邊界框註釋自動生成的,容許它們在只有邊界框註釋可用的場景中應用。


  • Feature enhancement for better regression

驗證輸出包括有關角點位置和前景區域的強烈提示,這將有利於迴歸任務。因爲這些驗證任務的預測輸出與每一個FPN級別上用於迴歸的特徵圖具備相同的分辨率,所以咱們經過在原始特徵圖上應用加號運算符以及將驗證輸出產生的嵌入式特徵圖直接加一個運算符,經過 1×1轉換層將它們直接融合在一塊兒。嵌入的目的是將任何驗證輸出投影到與原始要素圖相同的維度,並在要素圖級別之間共享。請注意,對於驗證輸出,將一個從反向傳播分離出來的副本輸入到嵌入卷積層,以免影響該驗證任務的學習。


  • Joint inference by both methodologies

咱們明確地利用了角點預測的驗證輸出和基於迴歸的定位,以一種聯合推理的方法融合它們的長處。具體來講,經過角點驗證,小鄰域內的亞像素角點定位一般比主迴歸分支的定位更準確,但因爲缺乏對象的全圖,判斷是否爲真實角點的能力較差。與之相反,主迴歸分支對後者更有利,但在精確的亞像素定位方面較差。爲告終合它們的優勢,咱們根據主迴歸分支完善預測的邊界框的角點pt:

該融合方法靈活通用,利用了任何一種驗證線索,避免了與主分支中的中間表示交互,對驗證目標的類型要求較少。它也不會中斷主分支的整體流程,並在很大程度上保持了創建在主分支上的原始檢測器的便利性。


3.4 RepPoints v2: Fusing Verification into RepPoints

RepPoints是一個純粹的基於迴歸的對象檢測器。咱們如今用不一樣形式的驗證任務來補充它,特別是對於角點和box內前景。爲了增長reppoint與輔助驗證任務的兼容性,咱們首先對它作了一個小修改,使前兩個點顯式地表示左上角和右下角的點。咱們稱之爲顯性角點變體。這些角點替代了原始RepPoints中使用的轉換函數,從而使邊界框由這些角點定義,而不是經過點集上的最小-最大或動量操做。有了角點,轉換函數變爲:

對於這種明確的角點替換,咱們添加了輔助的邊分支來進行驗證。具體來講,咱們將定位頭的第3 conv層以後的feature map做爲輸入,重用現有的頭以節省計算。

如圖2所示,在該feature map上使用一個3×3的卷積層,而後對兩個驗證任務使用兩個小子網絡。角子網絡由角池層[13]和1×1 conv層組成,用於預測熱圖得分和亞像素偏移量。前景子網絡是一個單一的1×1 conv層,用於預測前景得分熱圖。在訓練中,咱們採用多任務損失:


3.5 擴展到其餘檢測器和問題

用於reppoint的融合方法也能夠改進FCOS[27]等檢測器。因爲FCOS的分類和定位頭與RepPoints類似,所以能夠直接將RepPoints v2的融合應用到FCOS中。具體來講,在第3層的特徵圖上應用了角點和前景驗證頭。驗證輸出映射融合到主分支中,經過3.3節所述的聯合推理獲得最終的迴歸結果。
該融合方法也能夠推廣到其餘任務中,如使用Dense RepPoints [31]進行實例分割,這是一種迴歸的方法。因爲有額外的目標掩碼註釋,可使用更細粒度的驗證格式,例如對象輪廓驗證和感知分類的語義分割。如表8所示,額外的驗證方法爲COCO test-dev集中的Dense RepPoints帶來了1.3 mask AP收益。更多細節見附錄B。


4


實驗效果


4.1 消融實驗

  • Explicit-corners變體

這個變體的性能與原始reppoint中使用的三個變體至關,可是在添加了驗證模塊後,它的0.2-0.3映射性能比其餘變體要好。這將有助於驗證和迴歸任務之間更有效的交互。


  • Forms of verification

僅角點驗證任務就比RepPoints基線得到1.4個mAP。收益主要針對較高的IoU標準,例如AP 90提升4.0 mAP,而AP 50僅增長0.2 mAP。額外的前景驗證任務增長了0.5 mAP,但主要是在較低的IoU標準下,例如,AP 50提升了0.9,而AP 90保持不變。


  • Types of fusion

附加的特徵加強操做又帶來0.7的增益。經過聯合推理的顯式融合增長了0.8個mAP,這樣完整的方法比沒有驗證模塊的同類方法增長1.9個mAP。


4.2 Comparison to State-of-the-art Methods


在迴歸分支中咱們使用GIoU[22]損失代替平滑-l1損失。以ResNet-101爲骨幹,咱們的方法實現了無附加功能的46.0 mAP。採用更強的ResNeXt-101[29]和DCN[3]模型,mAP精度提升到49.4。在增長了[32]中多尺度測試的基礎上,該方法實現了52.1 mAP


4.3 擴展到其餘

  • Direct application to FCOS

  • Extension to instance segmentation





潮水自會來去,但心志得堅若磐石。即使成不了那根定海神針,也至少不是那隨意被拍上岸的野鬼遊魂。 

長按關注 "AI深度視線"
最新人工智能、深度學習、SLAM乾貨奉上!







本文分享自微信公衆號 - AI深度學習視線(AI_DeepSight)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索