1. 摘要
本文是一個端到端的一階段anchor-free的目標檢測(可以擴充到3D檢測,人體姿態估計等)方法。使用的是預測物體的中心點來代替Anchor。利用關鍵點估計來尋找中心點,進而再回歸目標的其他屬性,大小、3D位置、方向、姿勢等。(本文包括目標檢測、3D檢測、姿態估計三部分,本文只討論目標檢測部分)
總體流程大概是,目標檢測是一個標準的關鍵點估計問題。我們只需將輸入圖像輸入到生成熱圖的完全卷積網絡。熱圖中的峯值對應於物體中心。每個峯值的圖像特徵預測對象邊界框的高度和權重。推理是一個單一的網絡前向傳遞,沒有對後處理的非最大抑制。
本文的方法CenterNet的簡單性允許它以非常高的速度運行。
2. 相關工作
本文的方法與基於anchor的單階段方法密切相關。一箇中心點可以看作爲一個單一的形狀未知的anchor(見圖3)。然而,有一些重要的區別。
- 首先,本文的中心網只根據位置而不是框重疊來分配“anchor”,所以沒有用於前景和背景分類的手動閾值。
- 其次,每個目標只有一個正“anchor”,因此不需要非最大值抑制。只需提取關鍵點熱圖中的局部峯值。
- 第三,與傳統的目標檢測器相比,CenterNet使用更大的輸出分辨率(輸出步長爲4)(輸出步長爲16)。這樣就不需要多個anchor。
2.本文方法
2.1 Preliminary
設爲寬度W和高度H的輸入圖像。我們的目的是生成一個關鍵點熱圖
,其中R是輸出跨距,C是關鍵點類型的數目。關鍵點類型包括物體檢測中的C=80個物體類別。本文默認輸出跨距R=4。輸出跨距將輸出預測降低一個因子R。
預測對應於檢測到的關鍵點,而是背景。我們使用幾種不同的卷積網絡來預測圖像 I 中的Y:A stacked hourglass network、ResNet 和 DLA。
對於C類的每個真實值關鍵點計算了一個低分辨率等價。然後,使用高斯核將所有真實值關鍵點散放到熱圖上,其中是目標大小自適應標準偏差。如果同一類的兩個高斯子重疊,則取元素的最大值。
損失函數:
其中α和β是focal loss的超參數,N是圖像I中的關鍵點數量。選擇N進行歸一化,將所有正focal loss實例歸一化爲1。
爲了恢復由輸出步長引起的離散化誤差,本文還爲每個中心點預測了局部偏移量。
所有c類共享相同的偏移量預測。用L1損失訓練偏移量
監督僅在關鍵點位置起作用,其他所有位置均被忽略。
以上這些,與CornerNet基本相同。
2.2 將物體視爲一個點(objects as points)
設是類別爲C_k的目標k的邊界框。它的中心點位於P_k = ,本文用關鍵點估計預測中心點,此外,還回歸每個目標k的大小。爲減少計算負擔,爲所有類別使用同一size。在中心點位置使用L1 loss:
總體的loss函數爲:
本文不將scale進行歸一化,直接使用原始像素座標。爲了調節該loss的影響,將其乘了個係數,整個訓練的目標loss函數爲
網絡預測關鍵點Y,偏移量O和大小S,每個位置有C+4個輸出(即類別數目C個的熱圖,偏移量的x,y,尺寸的w,h)。
點到框
- 獨立提取每個類別的熱圖中的峯值(做法是將熱力圖上的所有響應點與其連接的8個臨近點進行比較,如果該點響應值大於或等於其八個臨近點值則保留)
- 保留前100個峯值
- 使用關鍵點預測值作爲檢測置信度度量
設P_c是檢測到的 c 類別的 n 箇中心點的集合,每個關鍵點由整形(x_i,y_i)給出,產生如下box:
其中,是偏移預測,
是size預測。
2.3 網絡結構細節
3. 實驗
- 沙漏網絡在相對較好的速度下能達到最佳性能。
- DLA-34得到了最好的速度/準確率的折中。
- 兩個不同物體可能共享同一個中心點,這樣的話網絡只能檢測到一個。但這種情況是很少的(COCO中不到0.1%的比例),這部分誤差可以忽略。
- 用NMS提升甚微,所以就不用NMS了。
- 在這裏,L1比Smooth L1效果好。