天天看點

CenterNet2

code:​​https://github.com/xingyizhou/CenterNet2​​

文章目錄

  • ​​1.概要​​
  • ​​2.相關工作​​
  • ​​2.1 One-Stage Detectors​​
  • ​​2.2 Two-Stage Detectors​​
  • ​​2.3 Anchor Free && DETR​​
  • ​​Two-Stage檢測的機率解釋​​
  • ​​4 檢測器的選擇​​
  • ​​4.1 RetinaNet​​
  • ​​4.2 CenterNet​​
  • ​​4.3 ATSS​​
  • ​​4.4 GFL​​
  • ​​5.實驗​​
  • ​​5.1 基礎Two-Stage模型實驗​​
  • ​​5.2 Real-Time模型實驗​​
  • ​​5.3 SOTA模型對比​​

1.概要

我們都知道目标檢測的目的就是找到圖像中的所有目标,并識别它們的位置和屬于某一類的機率。One-Stage目标檢測在一個架構中共同推斷位置和類别的機率。通過訓練它們最大限度地提高其框的精度和預測機率的精度,并在最後應用到推理之中。

Two-Stage檢測器首先發現潛在目标及其位置,然後(在第2階段)對這些潛在目标進行分類。第1階段的目的是最大限度地召回目标,而第2階段是最大限度地在第1階段過濾的目标。

CenterNet2

而本文通過優化Two-Stage的聯合機率目标的下界,提出了一個簡單的改進标準Two-Stage檢測器訓練方法。機率處理建議對Two-Stage架構進行更改。具體來說,第1階段需要推斷一個校準目标的似然性。目前Two-Stage目标檢測中的RPN是為了最大化召回而設計的,不産生準确的可能性。然而,One-Stage方法可以。

在目前最先進的One-Stage檢測器的基礎上建立了一個機率Two-Stage檢測器。對于每一階段的檢測,CenterNet2模型都會提取區域級特征并進行分類。在第2階段使用更快的R-CNN或級聯分類器。這兩個階段一起訓練,以最大限度地提高預測的機率準确度。在推理中,CenterNet2使用這個最終的對數似然作為檢測得分。

機率Two-Stage檢測器比One-Stage檢測器和Two-Stage檢測器更快、更準确。與基于Anchor的Two-Stage檢測器相比,CenterNet2的第1階段更準确,允許檢測器在RoI頭部使用更少的建議,使檢測器整體上更準确和更快。與One-Stage檢測器相比,CenterNet2的第1階段使用了更精簡的Head設計,并且隻有一個輸出類用于密集圖像水準預測。由于類别數量的急劇減少所帶來的加速,遠遠超過了第2階段的額外成本。CenterNet2的第2階段充分利用了多年來Two-Stage檢測器的進展,并在一階段基線上顯著提高了檢測精度。

實驗表明,CenterNet2檢測器通過單尺度測試在COCO測試開發上達到了56.4mAP,優于所有已釋出的結果。CenterNet2檢測器使用輕量級Backbone,在Titan Xp上以33fps的速度在COCO上實作了49.2mAP的性能,優于Scaled YOLOv4。

2.相關工作

2.1 One-Stage Detectors

One-Stage Detectors同時預測輸出類的機率和目标的位置。

CenterNet2

RetinaNet對一組預定義的滑動錨框進行分類,并通過調整每個輸出的損失來處理前景-背景不平衡。

FCOS和CenterNet消除了每像素多個錨點的問題,并根據位置對前景/背景進行分類。

ATSS和PAA通過改變前景和背景的定義來進一步改進FCOS。

GFL和Autoassign改變Hard Foreground-Background配置設定為權重軟配置設定。

AlignDet在輸出之前使用一個可變形的卷積層來收集更豐富的分類和回歸特征。

RepPoint和DenseRepPoint将邊界框編碼為一組輪廓點,并使用點集特征進行分類。

BorderDet沿着邊界框池化特征以實作更好的localization。

大多數One-Stage Detectors都有可靠的機率解釋。雖然One-Stage Detectors取得了具有競争力的性能,但與Two-Stage Detectors相比,它們通常依賴于單獨分類和回歸分支。事實上,如果類别很大(如LVIS或Objects365資料集),它們不再比Two-Stage Detectors更快。此外,One-Stage Detectors僅使用正樣本的局部特征進行回歸和分類,這有時與目标不對齊。

而本文提出的機率Two-Stage Detector架構分解了多個階段的機率分布并保留了One-Stage Detector的機率解釋,同時提高了準确性和速度。

2.2 Two-Stage Detectors

Two-Stage Detector首先使用區域建議網絡(RPN)生成粗糙的區域建議框,然後使用一個專用的檢測頭對它們進行分類和回歸。

CenterNet2

Fast-RCNN使用2個連接配接層作為RoI頭部。

Cascade-RCNN使用FasterRCNN的3個級聯階段,每個階段都有不同的正門檻值,以便後期更多地關注定位精度。

HTC利用額外的執行個體和語義分割标注來增強Cascade-RCNN的級間特征流。

TSD對每個RoI的分類和Localization分支進行解耦。

Two-Stage Detector在許多情況下仍然更精确。目前,所有Two-Stage Detector都使用一個相對較弱的RPN,最大限度地召回排名前1K的預選框,并且不使用測試時的預選框分數。大量的預選框減慢了速度,并且基于召回的建議網絡不能直接提供與One-Stage Detector相同的機率。

CenterNet2架構解決了這個問題,并将一個強大的One-Stage Detector與後面的分類階段內建在一起。在第1階段使用更少、品質更高的預選框,以輸出更高的準确性和更快的速度。

2.3 Anchor Free && DETR

也有很多的檢測器通過圖像中的點來識别物體。

CornerNet則是檢測左上角和右下角,并使用嵌入特征對它們進行分組。

ExtremeNet檢測四個極值點,并使用一個額外的中心點對它們進行分組。

Duan等人通過檢測中心點來改善Corner的分組。

Corner Proposal Net使用成對的角落分組作為區域提議。

CenterNet檢測中心點,并從中回歸邊界框參數。

DETR和變形DETR去除檢測器中的密集輸出,而使用Trnasformer直接預測一組Bounding Boxes。

基于Corner的檢測器、DETR與傳統檢測器的主要差別在于網絡結構。基于Corner的檢測器使用全卷積網絡,通常具有對稱的下采樣層和上采樣層,并以較小的步長生成單個特征圖。DETR式檢測器使用Trnasformer作為解碼器。

傳統的One-Stage和Two-Stage檢測器通常使用由輕量化上采樣層增強的圖像分類網絡,并産生多尺度特征(FPN)。

Two-Stage檢測的機率解釋

CenterNet2
CenterNet2
CenterNet2
CenterNet2

4 檢測器的選擇

公式和标準的Two-Stage檢測器的關鍵差別在于在檢測得分中使用了類不可知檢測P(Ok)。在機率形式中,分類分數乘以類别不可知檢測分數。這需要一個強大的第一階段檢測器,不僅最大限度地召回建議框,而且還可以為每個建議框預測一個可靠的目标機率。在實驗中,作者使用比較好的One-Stage檢測器來估計這個對數似然機率。

機率Two-Stage檢測器的核心部件是Stronge First Stage。第1階段需要預測一個準确的目标可能性,以告知整體檢測分數,而不是最大化目标覆寫範圍。在流行的One-Stage檢測器的基礎上實驗了4種不同的設計。對于每一個檢測器,作者強調了将它們從One-Stage檢測器轉換為機率Two-Stage檢測器中的第1階段所需的檢測器。

4.1 RetinaNet

RetinaNet與傳統的Two-Stage檢測器的RPN非常相似,但有三個關鍵差別:

  • 較重的Head設計(4層vs1層 in RPN);
  • 更嚴格的正負錨定定義;
  • Focal Loss。

這些元件中的每一個都提高了RetinaNet産生校準的One-Stage檢測可能性的能力。

作者在第一階段的設計中使用了所有這些。預設情況下,RetinaNet使用兩個單獨的頭部來進行邊界框回歸和分類。在第一階段設計中發現兩個任務有一個共享的Head就足夠了,因為對象或非對象分類更容易并且需要更少的網絡容量。這也加快了推理速度。

4.2 CenterNet

CenterNet将對象作為位于其中心的關鍵點,然後回歸到方框參數。原始的CenterNet在單個尺度上運作,而傳統的Two-Stage檢測器使用特征金字塔(FPN)。而本文使用FPN将CenterNet更新到多尺度。

具體來說,使用Retinaanet Style的ResNet-FPN作為主幹,從stride=8到128輸出特征映射。将四層分類分支和回歸分支應用于FPN的所有層次,以産生檢測熱圖和邊界框回歸圖。

在訓練過程中,根據對象大小,在固定的配置設定範圍内,将ground-truth center标注配置設定給特定的FPN級别。受到GFL的啟發,在3×3中心附近添加了一些位置,這些位置已經産生了高品質的邊界框作為正數。使用到邊界的距離作為邊界框表示,并使用gIoU損失作為邊界框回歸損失函數。作者将改進後的CenterNet稱為CenterNet*。

4.3 ATSS

ATSS用自适應的IoU門檻值對One-Stage檢測器的分類機率進行模組化,并使用centerness來校準分數。在一個機率的Two-Stage Baseline中使用的是ATSS,并乘以中心和前景分類得分為每個proposal。再次合并分類和回歸Head,以稍微加速。

4.4 GFL

GFL使用回歸品質來指導目标似然訓練。在機率Two-Stage Baseline中删除基于積分的回歸,僅使用基于距離的回歸來保持一緻性,并再次合并2個Head。

5.實驗

5.1 基礎Two-Stage模型實驗

CenterNet2

每一個機率Two-Stage FasterRCNN模型在mAP上都比它的一級前身提高了1-2個百分點,在mAP上比原來的兩階段FasterRCNN提高了3個百分點。更有趣的是,由于更精簡的頭部設計,每個Two-Stage的機率FasterRCNN都比它的一級前身更快。

由于更有效的FPN和機率檢測器使用更少的proposal,許多機率Two-Stage FasterRCNN模型比原始的兩階段FasterRCNN更快。

在CascadeRCNN模型中觀察到類似的趨勢。在這些機率Two-Stage模型中,CascadeRCNN-CenterNet設計表現最好。

5.2 Real-Time模型實驗

CenterNet2

在相同的backbone和訓練下,CenterNet2比realtime-FCOS性能好1.6個mAP,并且隻慢4毫秒。使用相同的基于FCOS的Backbone和更長的訓練,它在原來的CenterNet上改進了7.7mAP,并輕松地超越了流行的YOLOv4和效率更高的檢測器,在40fps下有45.6mAP。使用稍微不同的FPN結構,并結合Self-Training,CenterNet2以33幀每秒的速度獲得49.2mAP。雖然現有的大多數實時檢測都是One-Stage,但在這裡,作者展示了Two-Stage檢測其也可以像One-Stage一樣快,同時提供更高的精度。

5.3 SOTA模型對比

繼續閱讀