[心得] CenterNet: Objects as points

楊亮魯
3 min readDec 14, 2019

--

為什麼注意到這篇Object Detection的 paper呢?

如果查 CenterNet 其實可以得到兩篇

  • CenterNet: Objects as points
  • CenterNet: Keypoint Triplets for Object Detection — ICCV 2019
    而我們今天要講的目標是前者 Objects as points

之所以會討論這篇, 是看到最近一個Kaggle的比賽 裡頭的public Kernel 有大量使用這篇的trick.

應該有數個因素:

  1. can estimate multiple object properties
  2. best speed-accuracy trade-off
  3. get rid of NMS/ post-processing
multiple properties estimation for an object
2. Speed-accuracy trade-off on COCO validation for
real-time detectors.

Training Rule

想像我們有一個 backbone model:
Input: X (W, H, 3), output: Y^{hat} (W/R, H/R, c)
R 代表 經過backbone 後 image map的縮減的倍數, c指的是目標的個數 (classes/ keypoints)

以Object detection 為例, training 由3 個loss組成

1. Object classification logistic regression focal loss

接著把ground truth Y 也 downscaling 且 align 至 (W/R, H/R, c) 上 並以Gaussian kernel 展為heat map 作為model 的 目標(如果同個classes兩個 kernel 重疊了 就取maximum 的value)

接著每個 downscaling 後的 pixel 都能算一葛loss (focal loss alpha=2, beta=4)

2. Center point 的 offset estimation:

這個 O^{hat} 也是pixel wise 的estimation 是 w, h 方向的 offset, shared by all classes

3. Object size 的 estimation

下方的 object size 則是 pixel-wise 的estimation 是 w, h 方向的 size estimation shared by all classes.

因上面這三個Loss 所需, Model 的 Output size 為 C + 2 (offset) + 2(object_size)

而最終這三葛loss 合起來 (λ_size = 0.1 and λ_off = 1), 就是training 的objective function

Testing Rule

至於最讓人感興趣的部份就是 testing phase 如何擺脫 NMS呢?

簡單粗暴的令人驚訝:

每個類別 Top 100 peak keypoint, 且每個 keypoint 的 value 要大於週邊8格.

就是巷這樣的概念

在他們的實驗中 給出了有加沒加, 進步不了多少, 不過直覺上就是這應該相當受object size 的影響.

Reference

--

--