【CenterNet】《Objects as Points》

在這裏插入圖片描述
arXiv-2019

Code:https://github.com/xingyizhou/CenterNet



1 Background and Motivation

監控、自動駕駛、visual question answering 等領域都涉及到目標檢測,其發展推動着實例分割(instance segmentation)、姿態檢測(pose estimation)、物體追蹤(tracking)、動作識別(action recognition)等視覺任務的發展!

當前的 object detectors 通過一個軸向對齊的框(axis-aligned boxes)來表示每個 object,可分爲 one-stage 方法(直接對 anchor 進行分類和迴歸,來確定最終的邊界框) 和 two-stage 方法(對 anchor 先二分類+迴歸篩選出前景背景,然後 pooling 成固定尺寸進行分類+迴歸確定最終的邊界框) !由於候選區域較多(備胎),需要經過 NMS 算法篩選剔除(留下真愛),不過 NMS 方法往往難以 end-to-end 訓練,所以大多數目標檢測器不是 end-to-end trainable 的方法!

本文,作者用邊界框的中心點來表示目標,目標的 size 用中心處的特徵迴歸出來!這樣目標檢測的問題就轉化爲了關鍵點評估(keypoint estimation)問題!也即對每一類預測出一個 heatmap,heatmap 中響應值較高的點爲中心點,配合中心點特徵迴歸出來的 hhww 就能鎖定邊界框,從而實現目標檢測的定位和分類!
在這裏插入圖片描述
作者也摒棄了 NMS 後處理操作(only have one positive “anchor” per object,沒有備胎)!

在這裏插入圖片描述

最騷的是,基於點的特徵可以迴歸出其他值,進而運用到其他的任務上(eg:3D object detection 和 pose keypoint estimation)
在這裏插入圖片描述
在這裏插入圖片描述

速度和精度的 trade-off 如下
在這裏插入圖片描述
左上角最猛

2 Related Work

  • Object detection by region classification
    R-CNN、Fast RCNN

  • Object detection with implicit anchors

    • one-stage:SSD、YOLO-v1、YOLO-v2、Focal Loss
    • two-stage:Faster R-CNN
  • Object detection by keypoint estimation
    CornerNet、ExtremeNet,點檢測完了之後需要 grouping 在一起形成框,這樣比較慢,

  • Monocular 3D object detection
    3D 領域沒接觸過過,這個就“略”了

3 Advantages / Contributions

  • 提出 CenterNet,可以同時實現目標檢測,人體關鍵點檢測和 3D bounding box(uses keypoint estimation to find center points and regresses to all other object properties, such as size, 3D location, orientation, and even pose. )
  • 在 COCO 目標檢測數據上,實現了不錯的速度和精度 trade-off(效果一般哈)

4 Method

【CenterMask】《CenterMask:Single Shot Instance segmentation with Point Representation》 文章中,就是基於 CenterNet 改進的,關於檢測的部分細節完全一樣
在這裏插入圖片描述
C = 80 for COCO(類別數)

也即如下的形式
在這裏插入圖片描述【CenterMask】《CenterMask:Single Shot Instance segmentation with Point Representation》

4.1 2D Objects as Points

1)中心點 Loss

預測中心點的損失,公式如下,是基於 focal loss 的修改版(a pixel-wise logistic regression modified by the focal loss)
在這裏插入圖片描述
其中

  • Y^xycRHR×WR×C\hat{Y}_{xyc} \in \mathbb{R}^{\frac{H}{R} × \frac{W}{R} × C} 表示是第 cc 類 heatmap 中,位置 (x,y)(x,y) 處預測出來的 score,也即 detection confidence
  • YxycY_{xyc} 是對應的 GT
  • NN 是圖片中的中心點個數
  • α=2\alpha = 2β=4\beta = 4 是超參數

仔細推導,就是把 logistic regression Loss 中的 cross entopy 換成了 focal loss 的形式!僅僅多了一個超參數 β\beta 而已!(y=1y = 1 的時候,在 focal 代入 yyy^\hat{y}yy 不等於 1 的時候,在 focal loss 中代入 1y1-y1y^1-\hat{y}

logistic regression 的 binary cross entropy 如下:
在這裏插入圖片描述
Focal Loss 如下:

在這裏插入圖片描述
在這裏插入圖片描述
關於 Focal Loss 的解析可以參考 【Focal Loss】《Focal Loss for Dense Object Detection》

公式中 YxycY_{xyc} 的定義同 Hourglass Network (參考 【Stacked Hourglass】《Stacked Hourglass Networks for Human Pose Estimation》),也即標籤採用的是中心點的高斯分佈,而不是僅有一個像素

GT 的高斯分佈表達如下
在這裏插入圖片描述

2)偏置 Loss

L1 Loss,來 recover the discretization error caused by the output stride

在這裏插入圖片描述
其中

  • O^RHR×WR×2\hat{O} \in \mathbb{R}^{\frac{H}{R} × \frac{W}{R} × 2} 爲預測的 offset
  • pp 是 GT
  • RR 是 output stride,也就是 heatmap 大小與原圖大小的比例關係,爲 4
  • 特徵圖的中心點和原圖中心點的映射關係爲
    p~=pR\widetilde{p} = \left \lfloor \frac{p}{R} \right \rfloor

比如中心點在原圖(15,15)處,R=4,那麼精確地映射到特徵圖上對應着應該是 (3.75,3.75)處,但特徵圖最小的分辨率是 1 像素嘛,所以預測的中心點最準的地方只能爲(3,3)!(3,3)還原到原始圖處爲(12,12),與(15,15)有了 3 個像素的偏差嘛,爲了彌補這個偏差,我們需要在特徵圖(3,3)的基礎上,學出一個(0.75,0.75)的偏置,這樣的話恢復到原始圖片大小,就能逼近(15,15)了

3)邊界框大小 Loss

目標 kk 的邊界框表示爲 (x1(k),y1(k),x2(k),y2(k))(x_1^{(k)},y_1^{(k)},x_2^{(k)},y_2^{(k)}),對應的類別用 ckc_k 表示!

中心點座標爲
在這裏插入圖片描述
邊界框的大小爲
在這裏插入圖片描述
邊界框的損失爲
在這裏插入圖片描述
其中

  • S^RHR×WR×2\hat{S}\in \mathbb{R}^{\frac{H}{R} × \frac{W}{R} × 2} 表示預測出來的邊界框大小
  • Sk=(h,w){S}_k = (h,w) 是 GT object size

CenterNet 做 2D 目標檢測的整體流程如下

在這裏插入圖片描述【CenterMask】《CenterMask:Single Shot Instance segmentation with Point Representation》

整體 Loss 爲

在這裏插入圖片描述
其中,λsizeλoff\lambda_{size} 和 \lambda_{off} 分別被設置爲了 0.1 和 1

測試的時候,一張熱力圖中,如果該點爲 8 鄰域響應最高的點,就爲中心點(實現的時候採用 3x3 max-pooling 操作即可,感覺如果 max-pooling 的結果如果和自己相同,就保留),輸出 top-100 的 center point,預測出來的邊界框爲
在這裏插入圖片描述
其中
在這裏插入圖片描述
是預測出的第 ii 箇中心點
在這裏插入圖片描述
是預測出的偏置
在這裏插入圖片描述
是預測出的邊界框大小

4.2 Human pose estimation

在這裏插入圖片描述
k=17k = 17 for COCO

1)直接回歸偏置

lj=(x^,y^)+J^x^y^jl_j = (\hat{x},\hat{y}) + \hat{J}_{\hat{x}\hat{y}j}

其中,

  • j1...kj \in 1...k,表示關鍵點的類型
  • (x^,y^)(\hat{x},\hat{y}) 是關鍵點座標
  • J^RHR×WR×k×2\hat{J} \in \mathbb{R}^{\frac{H}{R} × \frac{W}{R} × k ×2} 是用 L1 Loss 來優化的 offset

Here, our center offset acts as a grouping cue, to assign individual keypoint detections to their closest person instance.

2)與此同時,預測熱力圖 ΦRHR×WR×k\Phi \in \mathbb{R}^{\frac{H}{R}× \frac{W}{R} × k},配合 focal loss 來 refine 關鍵點

Lj={l~ij}i=1njL_j = \{\widetilde{l}_{ij}\}_{i=1}^{n_j}

這個 nn 是什麼意思?

保留 confidence > 0.1 的 keypoints

3)最後讓兩者逼近?

在這裏插入圖片描述

由於背景知識較少,這部分不知道自己理解錯了沒,感覺以預測1)偏置爲主,熱力圖 2)只是精修下回歸出的關鍵點的位置!

注意,上面操作 considering only joint detections within the bounding box of the detected object.(還是依託在目標檢測任務之上)

5 Experiments

5.1 Datasets

  • MS COCO
    • 118k training images (train2017)
    • 5k validation images (val2017)
    • 20k hold-out testing images (test-dev)
  • Pascal VOC
  • MS COCO keypoint dataset
  • KITTI benchmark

5.2 Implementation details

採用了 ResNet、DLA、Hourglass 三種主幹網絡(【Stacked Hourglass】《Stacked Hourglass Networks for Human Pose Estimation》

在這裏插入圖片描述
在這裏插入圖片描述

作者在 ResNet 和 DLA 的 3 次上採樣之前(32 倍變成 4 倍),用了 3×3 的 deformable Conv,上採樣採用的是 bilinear interpolation

輸入的分辨率都是 512×512

data augmentation

  • random flip,
  • random scaling (between 0.6 to 1.3)
  • cropping
  • color jittering

inference 的時候有如下三種策略

  • no augmentation,
  • flip augmentation,
  • flip and multi-scale (0.5, 0.75, 1, 1.25, 1.5)——multi-scale時,用 NMS 來合併結果

5.3 Object detection

5.3.1 Experiments on MS COCO

速度和精度的 trade-off
在這裏插入圖片描述

四種方法的 AP 對應着 Fig.1 的部分點
在這裏插入圖片描述
最高的精度(42:2% AP in 7:8 FPS)比 CornerNet(40:6% AP in 4:1 FPS) 和 ExtremeNet(40:3% AP in 3:1 FPS) 效果好,Better accuracy indicates that center points are easier to detect than corners or extreme points

和 State-of-the-art comparison 比較

在這裏插入圖片描述
實話說,還是二階段的猛

5.3.2 Additional experiments

1)Center point collision

如果兩個同類物體,在熱力圖上中心點是一樣的,CenterNet 只能預測出其中第一個,作者統計了 COCO 數據集,共 860001 objects 中,有 614 pairs of objects(< 0.1%) 在步長爲 4 的特徵圖上出現了 Center point collision!

SS 方法,會有 ~2% 的這種情況(imperfect region proposals)

Faster R-CNN 方法,會有 ~20.0% 的重疊(可能是在步長爲 16 或者 32 的條件下吧 insufficient anchor placement)

2)NMS

For DLA-34 (flip-test),用和不用效果爲 39.2% to 39.7%

For Hourglass-104,用和不用效果都爲 42.2%

所以 CenterNet 可以砍掉 NMS 這種後處理操作

3)Training and Testing resolution

在這裏插入圖片描述
這裏應該指的是不用 padding 和用 padding 的區別的吧

4)Regression loss
在這裏插入圖片描述
size regression 時,L1 比 Smooth L1 效果更好

5)Bounding box size weight
在這裏插入圖片描述
6)Training schedule
在這裏插入圖片描述

5.3.3 Error Analysis

在這裏插入圖片描述
用 GT 來替換相應的檢測部位,可以看到,上限能高達 99.5!

5.3.4 Experiments on Pascal VOC

在這裏插入圖片描述

5.3.5 3D detection

沒接觸過,這裏就省略了

5.4 Pose estimation

在這裏插入圖片描述
效果一般般啦,用熱力圖 refine 比直接回歸的效果要好(reg vs jd)

最後感受下 CenterNet 在三個任務上的結果
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

6 Conclusion(own)

  • anchor 少,每個目標 只對應一個 positive,不用 NMS,易於 end-to-end train,且最小的 feature map 分辨率僅爲原圖的 (14,14\frac{1}{4},\frac{1}{4})
  • Detector 效果沒有二階段的猛,keypoint estimation 效果一般般,3D 沒接觸過,不好評估,存在少量實例中心點重疊的情況!keypoint estimation 還是要基於 detectors 的框框裏面的,來區分實例
  • 錯誤分析實驗很有啓發,上限有 99.5,西天取經路漫漫矣
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章