Objects as Points:預測目標中心,無需NMS等後處理操做 | CVPR 2019

論文基於關鍵點預測網絡提出CenterNet算法,將檢測目標視爲關鍵點,先找到目標的中心點,而後迴歸其尺寸。對比上一篇同名的CenterNet算法,本文的算法更簡潔且性能足夠強大,不須要NMS等後處理方法,可以拓展到其它檢測任務中

來源:曉飛的算法工程筆記 公衆號git

論文: Objects as Pointsgithub

Introduction


  論文認爲當前的anchor-based方法雖然性能很高,但須要枚舉全部目標可能出現的位置以及尺寸,其實是很浪費的。爲此,論文提出了簡單且高效的CenterNet,將目標表示爲其中心點,再經過中心點特徵迴歸目標的尺寸。算法

  CenterNet將輸入的圖片轉換成熱圖,熱圖中的高峯點對應目標的中心,將高峯點的特徵向量用於預測目標的高和寬,如圖2所示。在推理時,只須要簡單的前向計算便可,不須要NMS等後處理操做。微信

  對比現有的方法,CenterNet在準確率和速度上有更好的trade-off。另外,CenterNet的架構是通用的,可以拓展到其它任務,好比3D目標檢測以及人體關鍵點預測。網絡

Preliminary


  定義輸入圖片$I\in R^{W\times H\times 3}$,預測關鍵點熱圖$\hat{Y}\in
[ 0, 1 ]^{\frac{W}{R}\times \frac{H}{R}\times C}$,其中$R$爲熱圖的縮放比例,設定爲4,$C$爲關鍵點的類型。當$\hat{Y}{x,y,c}=1$時,像素點爲檢測的關鍵點,當$\hat{Y}{x,y,c}=0$時,像素點爲背景。在主幹網絡方法,論文嘗試了多種全卷積encoder-decoder網絡:Hourglass網絡,帶反捲積的殘差網絡以及DLA(deep layer aggregation)。架構

  關鍵點預測部分的訓練跟CornerNet同樣,對於類別$c$的GT關鍵點$p\in \mathcal{R}2$,計算其在熱圖上對應的位置$\tilde{p}=\lfloor\frac{p}{R}\rfloor$,而後使用高斯核$Y_{xyc}=exp(-\frac{(x-\tilde{p}_x)2+(y-\tilde{p}_y)2}{2\sigma2_p })$將GT關鍵點散射,即根據像素位置到關鍵點的距離賦予不一樣的權值,獲得GT熱圖$Y\in [ 0,1 ]^{(\frac{W}{R}\times \frac{H}{R}\times C)}$,$\sigma_p$爲目標尺寸自適應的標準差,如圖3所示。若是相同類別的高斯核散射重疊了,則取element-wise的最大值。訓練的損失函數爲懲罰衰減的邏輯迴歸,附加了focal loss:函數

  $\alpha$和$\beta$爲focal loss的超參數,$N$爲關鍵點數。爲了恢復特徵圖縮放帶來的偏差,額外預測每一個關鍵點的偏移值$\hat{O}\in \mathcal{R}^{\frac{W}{R}\times \frac{H}{R}\times 2}$,偏移值與類別無關,經過L1損失進行訓練:性能

  偏移值只使用GT關鍵點,其它位置的點不參與訓練。測試

Objects as Points


  定義$(x^{(k)}_1, y^{(k)}_1, x{(k)}_2,y{(k)}_2)$爲目標$k$的GT框,類別爲$c_k$,其中心點爲$p_k=(\frac{x{(k)}_1+x{(k)}2}{2}, \frac{y{(k)}_1+y{(k)}2}{2})$。論文使用熱圖$\hat{Y}$獲得全部的中心點,另外再回歸每一個目標$k$的尺寸$s_k=(x{(k)}_{2}-x{(k)}{1}, y{(k)}_{2}-y{(k)}{1})$。爲減小計算負擔,尺寸的預測與類別無關$\hat{S}\in \mathcal{R}^{\frac{W}{R}\times \frac{H}{R}\times 2}$,經過L1損失進行訓練,只使用GT關鍵點:code

  完整的CenterNet損失函數爲:

  CenterNet直接預測關鍵點熱圖$\hat{Y}$、偏移值$\hat{O}$和目標尺寸$\hat{S}$,每一個位置共計預測$C+4$個輸出。全部的輸出共用主幹網絡特徵,再接各自的$3\times 3$卷積、ReLU和$1\times 1$卷積。

  在推理時,首先獲取各種別熱圖上的高峯點,高峯點的值需高於周圍八個聯通點的值,最後取top-100高峯點。對於每一個高峯點$(x_i, y_i)$,使用預測的關鍵點值$\hat{Y}_{x,y,c}$做爲檢測置信度,結合預測的偏移值$\hat{O}=(\delta \hat{x}_i, \delta \hat{y}_i)$和目標尺寸$\hat{S}=(\hat{w}_i, \hat{h}_i)$生成預測框:

  因爲高峯點的提取方法足以替代NMS的做用,全部的預測框都直接經過關鍵點輸出,不須要再進行NMS操做以及其它後處理。須要注意的是,論文采用了巧妙的方法實現高峯點獲取,先對特徵圖使用padding=1的$3\times 3$最大值池化,而後對比輸出特徵圖和原圖,值同樣的點即爲知足要求的高峯點。

Implementation details


  CenterNet的輸入爲$512\times 512$,輸出的熱圖大小爲$128\times 128$。實驗測試了4種網絡結構:ResNet-1八、ResNet-10一、DLA-34和Hourglass-104,其中使用可變形卷積對ResNet和DLA-34進行了改進。

Hourglass

  Hourglass結構如圖a所示,框中的數字爲特徵圖的縮放比例,包含兩個hourglass模塊,每一個模塊有5個下采樣層以及5個上採樣層,上採樣和下采樣對應的層有短路鏈接。Hourglass的網絡尺寸最大,關鍵點預測的效果也是最好的。

ResNet

  ResNet大致結構跟原版一致,加入了反捲積用來恢復特徵圖大小,反捲積的權值初始化爲雙線性插值操做,虛線箭頭爲$3\times 3$可變形卷積操做。

DLA

  DLA使用層級短路鏈接,原版的結構如圖c所示。論文將大部分的卷積操做修改成可變形卷積,並對每層的輸出進行了$3\times 3$卷積融合,最後使用$1\times 1$卷積輸出到目標維度,如圖d所示。

Experiment


  不一樣主幹網絡在目標檢測上的準確率和速度對比。

  目標檢測性能對比。

  3D檢測性能對比。

  人體關鍵點檢測性能對比。

Conclusion


  論文基於關鍵點預測網絡提出CenterNet算法,將檢測目標視爲關鍵點,先找到目標的中心點,而後迴歸其尺寸。對比上一篇同名的CenterNet算法,本文的算法更簡潔且性能足夠強大,不須要NMS等後處理方法,可以拓展到其它檢測任務中 。



若是本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

相關文章
相關標籤/搜索