[ICCV 2019] CenterNet: Object Detection with Keypoint Triplets論文筆記

1. Introduction

  目前主流的物體檢測模型都會引入錨框,這些方法通常會存在以下問題:(1)算法通常需要大量的錨框,這樣才能確保GT與某些錨框之間有較大的IoU;(2)錨框的尺寸和寬長比通常需要手動設定;(3)錨框和GT之間沒有對齊,對於候選框分類的幫助不大。

  爲了解決上述問題,學術界提出了一些基於關鍵點的物體檢測算法,如CornerNet等。CornerNet的優勢是一種不依賴於錨框的一階算法,可以達到SOTA,該算法對於邊界比較敏感,但是對於物體的全局信息表現較弱。這樣會造成產生很多不正確的框(可以參見CornerNet的算法,CornerNet是通過網絡學習左上和右下的熱度圖和embedding,然後找出top-k的corner點,組合k2k^2 pairs corners,當一個pair的embedding距離小於某個閾值,則認爲它們足夠接近,可以構成一個bbox,這樣的約束相對較弱)。本篇論文就是基於CornerNet的改進版本,叫做CenterNet。

  CenterNet又引入了一個關鍵點(Center Point),通過三個關鍵點可以兼顧bbox邊緣和內部信息,同時減小特徵級別的干擾,提升算法的魯棒性。這樣做的出發點是當一個預測框與GT的IoU較大時,作者認爲中心區域的中心關鍵點也有較大的概率與GT屬於同一類別。CenterNet的網絡結構如下圖所示,具體來說,文章的主要工作可以分成三個部分:
在這裏插入圖片描述
(1)中心區域的生成:根據預測框左上和右下的座標值,每個框按照下述公式可以生成中心區域的座標。根據預測框的面積,式中的n取值爲3或5,這樣可以達到根據不同物體大小產生自適應中心區域的目的。自適應中心區域可以提升模型對於不同尺寸物體的識別率,因爲較小的物體中心區域如果較小,漏檢率(1-recall)就會比較大;而較大的物體中心區域還較大的話,誤檢率(1-precision)也會較大。中心區域的示意圖如下圖所示。
在這裏插入圖片描述
在這裏插入圖片描述
(2)Center Pooling: 幾何學上的中心不一定是真正語義上的中心點,Center Pooling累加水平方向和垂直方向的最大值,讓中心關鍵點信息更加豐富。
(3)Cascade Corner Pooling: CornerNet中提出的Corner Pooling只池化了邊界的兩個方向,沒有考慮圖像內部信息,而Cascade Corner Pooling先考慮邊界的兩個方向,然後從最大值方向往圖像內部去找最大值,最後累加這兩個最大值。

  Center Pooling和Cascade Corner Pooling的實現方式如下圖所示(個人覺得原文中圖4比圖5更好理解):
在這裏插入圖片描述
   Loss函數如下所示:
在這裏插入圖片描述
Loss形式實際上就是把Metric Learning引入了進來,類比ReID的Loss函數,前兩項就是ID Loss,第3和4項就是Metric Learning Loss,最後兩項是對於Offsets的L1 Loss。

   CenterNet可以得到47.0% AP指標,接近二階算法PANet。推理速度爲340 ms/image,推理速度還可以,但是跟YoloV4比起來還差了挺多的(實測V4真的快)。與目前幾個主流算法的對比如下:

MS-COCO(test-dev)
Model Backbone AP AP_50 AP_75
YOLOv4(416) CSPDarknet-53 41.2% 62.8% 44.3%
YOLOv4(512) CSPDarknet-53 43.0% 64.9% 46.5%
YOLOv4(608) CSPDarknet-53 43.5% 65.7% 47.3%
EfficientDet-D0(512) EfficientNet-B0 33.8% 52.2% 35.8%
EfficientDet-D1(640) EfficientNet-B1 39.6% 58.6% 42.3%
EfficientDet-D2(768) EfficientNet-B2 43.0% 62.3% 46.2%
EfficientDet-D3(896) EfficientNet-B3 45.8% 65.0% 49.3%
EfficientDet-D4(1024) EfficientNet-B4 49.4% 69.0% 53.4%
EfficientDet-D5(1280) EfficientNet-B5 50.7% 70.2% 54.7%
EfficientDet-D6(1280) EfficientNet-B6 51.7% 71.2% 56.0%
EfficientDet-D7(1536) EfficientNet-B7 52.6% 71.6% 56.9%
CenterNet511 (single-scale) Hourglass-52 41.6% 59.4% 44.2%
CenterNet511 (single-scale) Hourglass-104 44.9% 62.4% 48.1%
CenterNet511 (multi-scale) Hourglass-52 43.5% 61.3% 46.7%
CenterNet511 (single-scale) Hourglass-104 47.0% 64.5% 50.7%

2. 與CornerNet的對比

(1) CornerNet
  CornerNet生成兩個熱度圖(左上corner的熱度圖和右下corner的熱度圖),圖中每個像素表示不同類別的corner關鍵點位置,併爲每個關鍵點分配一個信任評分。此外,每個corner還預測了embedding和offset。embedding用於衡量兩個焦點是否來自同一對象,即度量學習領域,offset則是學習corner點重新映射到原圖上的偏差。爲了生成目標的bbox,根據置信度評分選取top-k的左上角和右下角的corner,用embedding的距離來確定corner之間是否可以構成一個bbox,產生的置信分是corner置信分的平均值。
  CornerNet的具體可以參考CornerNet
(2) CenterNet和CornerNet的關係
  CenterNet比CornerNet多了一個分支去預測中心點,某種極端情況下,可以理解成Center Keypoint分支不會太多改變CornerNet產生的原始Bbox的數目(實際上Loss爲兩個分支的聯合Loss,也會影響CornerNet的分支),該分支只是用來篩選CornerNet產生的bbox,而篩選的方式就是選取top-k箇中心關鍵點,看某個中心關鍵點是否落在bbox產生的中心區域內,如果落在中心區域,並且分類類別與兩個corner點一致,則保留該bbox。

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