Disentangling Monocular 3D Object Detection
廣告:我們在招 3D Object Detection 方向的實習生,有意向可以私信我簡歷;以下是正文。
------------------- 我是華麗的分割線 ---------------------
URL: Disentangling Monocular 3D Object Detection
在今年 CVPR 2019 WAD Workshop nuScenes Detection Challenge 中,Mapillary 使用本文介紹的 MonoDIS 達到了目前 SOTA 的 image-only 3D Detection Performance(NDS 38。4%);雖然不及官方基於 lidar 的 pointpillars baseline,但也已經是基於單目非常高的精度了,而且方法很簡單。(本次 challenge 最高的 NDS 是我們的 63。3%)
本文的核心是提出瞭解耦的 regression loss,用來替代之前同時迴歸 center、size、rotation 帶來的由於各個 opponent 的 loss 大小不同導致的訓練問題;基本思想是將回歸的部分分成 k 個 group,每個 group 只有自身的引數需要學習,其他的部分使用 gt 代替,從而實現每個分支只回歸某一個 component,使得訓練更加穩定。同時提出了改進的 sIoU loss,將沒有 overlap 的 bboxes 的 loss 也考慮進來。同時,本文使用 memory efficient in-place synced bn 替換了原來的 BatchNorm,從而更 efficient 的訓練;
### 1。 2D Detector
#### 1。1 Backbone - RetinaNet
你可以注意到這個 FPN 的方向是反著的;另外,本文提到的 iABN 可以參考
https://
github。com/mapillary/in
place_abn
#### 1。2 2D Detection Head
#### 1。3 Loss
* Focal Loss for cls
* IoU Loss for reg
sIoU 值域是 [-1, 1]
### 2。 3D Detector
#### 2。1 3D Detection Head
其中,iABN 參考的是 mapillary/inplace_abn
### 3。 Disentangling 2D and 3D Losses
disentangling transformation because it isolates the contribution of groups of parameters to a given loss, while preserving its inherent nature。
翻譯成人話就是
把要回歸的 loss 分成 k 組,每一組計算 loss 時,使用 Output_j, 以及 GroundTruth_-j,計算出對應的 smooth l1 loss。
這樣的好處是,可以解耦具有不同語義的各個部分的相互影響;使得收斂的過程更加平滑,訓練更加穩定;如下圖所示:
### 4。 KITTI benchmark 的問題
本文指出 KITTI 目前採用的從 0~1 之間的 41 個 bin 中取 10 個會出現歧義(9。09),因此轉而使用 1/40 ~ 1 之間的 40 個 bin 來計算 AP。
### 5。 Results
本文給出了 KITTI 和 nuScenes 上的結果