這篇論文中了CVPR 2019。作者的想法非常具有創新性,center net不僅僅可以用於目標檢測,它具有很強的魯棒性,可以遷移到姿態識別、3D檢測等其他視覺任務中。相信讀到這裏的讀者已經對之前的目標檢測算法有了一定的瞭解,所以本文不再對比之前的做法,直接解釋center net的做法,最後進行總結
BackBone
CenterNet想要提取輸入圖像的特徵,以heatmap的形式來檢測目標。論文中給出了三種BackBone:ResNet-18、DLA-34、Hourglass-104,檢測速度依次下降,檢測精度依次上升。經過BackBone的提取,輸出heatmap。輸入的heatmap相比於初始圖像,尺寸只減小了4倍,最後的offset微調也會方便很多。
detect points
我們這一步的目標是預測center,對於真實的標籤來說,我們使用對一個bbox進行說明,對於bbox的center,我們認爲是這樣就找到了真實的圖像中的center,然後再圖像中使用二階高斯分佈,center爲中心點,概率值爲1,如果有多個目標在某個點的概率值重疊,選取較大的值作爲概率值,對於預測corner,我們得到了經BackBone提取的熱力圖,這一步我們將heatmap中的峯值像素點找出,具體的方法是判斷是否一個點大於或者等於他周圍的八個點,就找到了預測center,可以帶入高斯公式得到概率值。接下來便是計算損失函數
這一步的損失函數可以用focal loss表示爲(論文中α=2,β=4屬於超參數):
N爲峯值點數量,當GT爲1時,如果預測準確,則該點的損失函數爲0,若預測值不爲1時,隨着)的減小,損失也越大。
在經過4倍下采樣後,關鍵點的位置信息會丟失一部分,爲了彌補這部分誤差,使用L1loss彌補偏差位置,以便於更好的得到關鍵點。
希望經過訓練後得到一個對於所有class,值共享的O(offset)
how center be bbox
我們可以預測到center,那麼如何得到他的bbox?,是真實的bbox左上、右下點的座標,爲了得到預測的bbox的尺寸,用L1 loss訓練Lsize
爲預測的尺寸,Sk爲真實尺寸。
至此,所有的損失函數已經提出(λsize=0.1,λoff=1)
最後預測的bbox位置,大小是:每個座標的第一個值是預測到的center,第二個值是offset,第一個值加第二個值就是center,第三個值就是畫出了bbox的大小和位置。
整個網絡最後輸出的是一個C+4的值,C爲類別數,4爲座標
實驗結果
總結
優點:
- 不使用anchor,減少超參數量
- 不使用NMS後端處理,直接輸出Bbox
- 由於沒有了anchor NMS,速度快了許多,精度也提升了許多
- 魯棒性強,不僅僅可以用於普通的目標檢測,在姿態檢測、3D檢測也取得了顯著提升
缺點:
- 當兩個物體過於接近,會將他們檢測爲1個目標