# CenterFusion: Center-based Radar and Camera Fusion for 3D Object Detection
###### tags: `Paper`
## Abstract
### Background
1. 自駕車的感知系統(Perception system)用來負責偵測和追蹤周遭物件
2. 通常透過多感測器的方式來增加魯棒性(robustness)和正確率,使得多感測器融合(sensor fusion)變得非常重要
### Focus problem
1. Radar and camera sensor fusion
2. Propose a middle-fusion(中間融合) approach to exploit both radar and camera data for 3D object detection,called **"CenterFusion"**
### CenterFusion
1. Uses a **center point detection network** to detect objects by identifying their center points on the image
* Solved problem: 它使用一種新的基於**novel frustum-based**(截錐體視景)的方法來解決關鍵數據關聯問題
* Method : 將雷達檢測與其相應對象的中心點相關聯
* Radar detections用途 :將這些雷達檢測映射到圖像並用於創建特徵圖,融合特徵用於準確估計對象的 3D 屬性,例如深度(depth)、旋轉(rotation)和速度(velocity)
2. 結果 :
* Dataset : 使用**nuScenes**
* 提高了整體 nuScenes 檢測分數 (NDS)最先進的基於相機的算法12%
* 進一步證明CenterFusion在不使用任何額外**時態信息( temporal information)** 的情況下顯著提高了**速度**的預估正確率。
## Introduction
### LiDAR(激光雷達) 與 Camara(相機)
大多數最近的傳感器融合方法都集中在利用 **LiDAR** 和**相機**進行 3D 對象檢測。
1. LiDAR 使用 : 使用激光脈衝的飛行時間來計算與周圍物體的距離。
* Pros : 可在近距離提供準確的 3D 測量
* Cons : 遠距離生成的點雲(point cloud)過於稀疏,降低系統準確檢測遠處物體的能力
2. Camara :
* Pros :+1: rich appearance features
* Cons :-1: 不是一個好的深度估計的信息來源
### LiDAR-camera sensor fusion
相機與激光雷達的互補特性形成很棒的組合,這個組合已經經證明可在 3D 對象檢測中實現高精度,包括自動駕駛在內的許多應用,但也是有一些侷限
1. 侷限因素 :
* Cameras and LiDARs 都對惡劣天氣較敏感(雪、霧、雨),可能顯著降低他們的視野和感知能力
* Cameras and LiDARs 都需要使用時態信息(temporal information)才能估計物體的速度
* 在許多情況下,估計物體的速度是避免碰撞的關鍵要求,在時間緊迫(time critical situations)的情況下,依賴時態信息(temporal information)可能不是一個可行的解決方案。
### Radar特點
成功應用在高級駕駛輔助系統(Advanced Driving Assistance System) = (ADAS) 和防撞和自適應巡航控制(Adaptive Cruise Control) = (ACC) 系統上
1. Radar 與 LiDAR and Camara相比
* Pros :+1:
* 對於惡劣條件具有很好的魯棒性
* 能夠在很遠的距離檢測物體(汽車雷達高達200米)
* 利用**多普勒效應**準確估計所有檢測到的物體的速度,而不需要任何時態信息
* 相較於LiDAR,在被作為目標檢測結果前,Radar point clouds 需要的處理比LiDAR少
* 較少作為融合的原因 :
* 用於自動駕駛應用的雷達數據的資料集並不多,這使得在該領域進行研究變得困難
* 由於LiDAR point cloud 和Radar point cloud 的內部差異,將LiDAR演算法進行應用或調整到Radar上極為困難(雷達點雲的數量差異)
* Radar point cloud比LiDAR counter parts更加稀疏,因此無法使用來追蹤物體的幾合資訊,後來選擇聚集多個雷達來增加點的密度,但也給系統帶來了延遲
* Radar point clouds 常被用來表示3D coordinate system裡的點,但是其縱向測量往往不准確或根本不存在。所以大多數主動雷達只回報目標的距離和方位角。
### Combine multiple sensing modalities
為了有效地結合多種傳感模式,利用神經網絡中的**分層特徵**(Hierarchical feature representation in neural networks)表示,已經開發了多種傳感器融合方案
* feature level : 對抽象的特徵進行融合,
* 什麼叫做模態(Modality)呢?
* 每一種信息的來源或者形式,都可以稱為一種模態。例如,人有觸覺,聽覺,視覺,嗅覺;信息的媒介,有語音、視頻、文字等;多種多樣的傳感器,如雷達、紅外、加速度計等。以上的每一種都可以稱為一種模態。
* 單模態的表示學習負責將信息表示爲計算機可以處理的數值向量或者進一步抽象爲更高層的特徵向量,而多模態表示學習是指通過利用多模態之間的互補性,剔除模態間的冗餘性,從而學習到更好的特徵表示。
* Multimodal Representation(多模態表示學習) : 可用來做信息探索,分類/迴歸任務
* 聯合表示(joint representations):將多個modality的信息一起映射到一個統一的多modality向量空間
* 協同表示(Coordinated Representations): 將多模態中的每個模態分別映射到各自的表示空間,但映射後的向量之間滿足一定的相關性約束(例如線性相關)
###### Fusion

* Early fusion
* 先將Modality(模態)不同特徵融合在一起,接著再使用分類器進行分類
* Late fusion
* 是不同的特徵使用不同的分類器,得到基於每個特徵的分類結果,再對所有結果進行融合(可能是投票、加權平均等),這個融和發生在不同特徵分類結果之間的融合
* Cons :-1: late fusion並沒有完整利用sensing modalities的潛在能力,因為它沒有透過學習 joint representations來獲得的中間的特徵
* Middle fusion(early & late融合)
* 從不同modalities的中單獨提取特徵並在中間階段(intermediate stage)將它們組合起來,使network能夠學習joint representations並在靈敏度(sensitivity)和靈活性(flexibility)之間建立平衡
* 此paper將雷達檢測與其相應對象的中心點相關聯,並利用雷達和圖像特徵通過重新估計它們的深度、速度、旋轉和屬性來改進初步檢測
## CenterFusion
利用Radar和Camera數據進行3D物體檢測的中間融合方法
#### Centerfusion Network Architecture

1. 使用backbone(DLA-34)提取image features來獲得初步的3D boxes
2. 平截體關聯(Frustum association)使用初步boxes將雷達檢測與物體相關聯並生成Radar feature maps,以準確地將雷達檢測與3D中的相應目標關聯起來。
3. 將image與Radar feature maps串聯起來,透過重新計算深度和旋轉來預估物體的速度和屬性
#### 方法步驟
1. 將雷達檢測與從圖像中獲得的初步檢測結果相關聯,然後生成雷達特徵圖,並在圖像特徵之外使用它來準確估計物體的 3D bounding boxes
2. 使用key point detection network產生初步的3D detections,並提出新的基於frustum-based(平截體視景)雷達關聯方法,以準確地將雷達檢測與 3D 空間中的相應對象相關聯
3. 將雷達檢設映射到圖像上,並用於創建特徵圖以補充基於圖像的特徵
4. 融合特徵用於準確估計對象的 3D 屬性,例如深度、旋轉和速度。
* 在具有挑戰性的 nuScenes數據集上評估 CenterFusion,它在 3D 對象檢測基準中優於所有以前基於相機的對象檢測方法,將最先進算法的整體檢測分數 (NDS) 提高了 **12%** 以上,且在不使用任何時態信息( temporal information.)的情況下,利用雷達信息可以顯著改善物體的速度估計。
### Related Work
#### Single-modality Methods
* **Deep3DBox**
1. 使用卷積神經網絡(convolutional neural network)回歸一組 3D 目標的特性
2. 再利用估計出來的 3D特徵 和 由2D bounding box轉換為3D bounding box時的幾何約束來產生最終的結果
* **CenterNet**
1. 使用關鍵點檢測網絡(Keypoint detection network)在圖像上找到物體的中心點
2. 其他對象屬性(例如:3D 維度和位置),僅使用對像物體中心點的圖像特徵通過回歸獲得
* 近年來,激光雷達已廣泛用於自動駕駛應用中的 3D 對象檢測和跟踪。 大多數基於 LiDAR 的方法要么使用 3D voxels(體素=數位資料於三維空間分割上的最小單位) 或 2D 投影(projections) 來表示point cloud
* 由於 Voxel-based的高維性,基於此方法的速度都很慢,並且基於projection-based 方法可能會因投影平面的不同而在物體形狀和大小方面存在較大差異
* 可以用於目標檢測,還可以用於其他的一些任務,如肢體識別或者3D目標檢測等等
* CenterNet沒有anchor這個概念,只負責預測物體的中心點,所以也沒有所謂的box overlap,也不需要區分這個anchor是物體還是背景- 因為每個目標只對應一個中心點,這個中心點是通過heatmap中預測出來的,所以不需要NMS再進行來篩選。
* **PointRCNN**
* 直接對原始point clouds進行操作,並使用point clouds分割以自下而上的方式生成3D 物體建議。 這些提議在第二階段被細化以生成最終的detection boxes。
#### Fusion-based Methods
* **MV3D(Deep3DBox)**
1. 除了rgb圖像之外,從 LiDAR 數據的前視圖和鳥瞰圖 (Bird’s Eye View = BEV) 表示中提取特徵
2. 使用從 LiDAR 的 BEV 獲得的特徵來生成 3D 物體,並使用深度融合網絡來組合來自每個視圖的特徵並預測物體類別和box的方向
* **PointFusion**
1. 使用PointNet提取點雲的特徵,包括全局特徵和單個點的特徵
2. 使用ResNet提取圖像特徵
3. 全局特徵和單個點特徵一起融合,預測邊界框,該方法在文章中被稱為“dense”
4. 產生邊object的邊界匡
* **Frustum PointNet**

1. 首先通過一個2D的R-CNN得到一個物體的2D bbox 和 class類別,接著將2D bbox 透過Frustem的方式映射成3D的frustum proposal(結合該區域的depth)
* Frustum proposal : 通過一個投影矩陣,每一個2D的bounding box可以被映射成一個3D的frustum proposal。由於每一個frustum proposal的朝向都不一樣,因此如下圖過程(a)到(b),其會先將其旋轉到與相機正交的方向,這樣增加了後續算法的旋轉不變性。

2. 將上一步的Frustem proposal中的點採樣到 $N X C$ (N是點的個數,C是每個點的特徵維度),接著,在該frustum中使用PointNet++進行3D instance segmentation(進一步縮小proposal的三維空間)
3. 最後一階段,一個基於PointNet的TNet網絡,將輸入點校正對齊,並通過另一個網絡回歸預測出3D的bounding box
* **RadarNet**
1. 融合雷達和 LiDAR 數據以進行 3D object進行檢測
2. 利用Early fusion來學習來自兩個sensors的joint representations
3. 使用late fusion來利用雷達的徑向速度估計物體速度並提高估計的物體速度
## Preliminary
### Radar Point Cloud
###### Point Cloud
> 點雲是一組呈現三維座標(俗稱XYZ軸)的數據,每一點代表物體表面一個位置。把這些點連接在一起,即可呈現物體的外觀
* Radar 通過發送 radio waves(無線電波) 來感知環境,並透過反射波(reflected waves) 來測量物件的位置和速度
* Automotive radars(汽車雷達) 通常將偵測到的物件表示於成在 BEV 上的 2D 點,包含物件的方位角(azimuth angle)和 距離(radial distance)
* 每次偵測時,雷達會得到物件的瞬間徑向速度(instantaneous radial velocity),此 instantaneous radial velocity 的方向不一定會與物件實際的方向角一樣。
* Difference between **Actual velocity(實際速度)** and **Radial velocity(徑向速度)**

1. 對於目標A,車輛坐標系中的速度和徑向速度相同($\nu_A$)
2. 對於目標B,雷達報告的徑向速度 ($\nu_r$) 與車輛坐標系中物體的實際速度($\nu_B$)不同
Radial velocity(徑向速度)介紹
* 徑向速度為視線過去的方向速度

* 每個雷達的測量點都表示為一個在 Egocentric coordinate system (以自我為中心的座標系)上的點P = (x, y, z, vx, vy),其中 (x, y, z) 是位置, (vx, vy)代表該物件 radial velocity 的 x 和 y 分量,radial velocity已經通過車輛自身運動進行了補償
* 對每個場景(scene),都對 radar point cloud 進行 3 次掃描(0.25秒內)
* nuScenes 有提供將 radar point clouds 從 radar coordinates system to egocentric and camera coordinate systems 的校正參數
### CenterNet
使用單攝像頭進行 3D 對象檢測的最新技術
* Input : RGB image($I \epsilon R^{W*H*3}$)
* Output : keypoint heatmap,其中 W 和 H 是image的width和height,R 是下採樣率(downsampling ratio),C 是對像類別的數量(object categories.)
* $\hat{Y}_{x,y,c}=1$代表偵測到一個 C 類的物件並且它的中心位置在 x, y
* The ground-truth heatmap($\hat{Y}\epsilon[0,1]^{\frac{W}{R}*\frac{H}{R}*C}$) is generated from the ground-truth(地面實況) 2D bounding boxes using a Gaussian kernel.
* 對圖片中每個中心點為$p_i\epsilon R^2$,且類別為 C 的bounding box 產生一個Gaussian heatmap on $Y_{:,:,c}$
* The final value of $Y$ for class $c$ at position $q \epsilon R^2$ is defined as $Y_{qc} =\max\limits_{i} exp(-\frac{(p_i-q)^2}{2\sigma^2_i})$
* $\sigma_i$ is a size-adaptive(大小自適應) standard deviation(標準差),controlling the size of the heatmap(熱圖) for every object based on its size.A fully convolutional encode-decoder network is used to predict $\hat{Y}$.
* 可以用於目標檢測,還可以用於其他的一些任務,如肢體識別或者3D目標檢測等等
* CenterNet沒有anchor這個概念,只負責預測物體的中心點,所以也沒有所謂的box overlap,也不需要區分這個anchor是物體還是背景- 因為每個目標只對應一個中心點,這個中心點是通過熱圖(heatmap)中預測出來的,所以不需要NMS再進行來篩選。
* Focal loss
* Focal Loss可以看作是一個損失函數,它使容易分類的樣本權重降低,而對難分類的樣本權重增加。

N : the number of objects ; α and β : focal loss hyperparameters
### CenterFusion
* Overall : 
* 採用(**Xingyi Zhou, Dequan Wang, and Philipp Krahenb ¨ uhl. Objects as points. arXiv preprint arXiv:1904.07850, 2019.**)方法作為center-based object detection network來檢測對像在圖像平面上的中心點,並regress到其他object properties,例如 3D location,orientation和dimensions.
* 提出middle-fusion mechanism,將雷達檢測與其相應對象的center point相關聯,並利用雷達和圖像特徵通過重新估計(re-estimating)它們的深度、速度、旋轉和屬性來改進初步檢測。
* The key in fusion mechanism :
* 將雷達檢測與物體準確的相關連
* Center point object detection network為image中的每個object category生成heatmap
* heatmap的峰值(peaks)表示object可能的中心點,這些位置的圖像特徵用於估計其他對象屬性
* 為了在此settings中開發雷達訊息,需要將基於雷達的特徵映射到圖像上相應對象的中心,這需要雷達檢測與場景中的對象之間的準確關聯性
#### Center Point Detection
* 使用 CenterNet 來產生 images 的 preliminary detections result
* 使用 Deep Layer Aggregation (DLA = 深層聚合方案)network as the backbone
* DLA : 主要是解決深層網絡中各層之間的聯繫問題
* IDA(迭代深度聚合):重複迭代堆疊的主幹網絡進行,聚合在最淺、最小尺度開始,並不斷迭代是的吸收更深、更大尺度。這樣的方式可以淺層網絡的信息可以通過後續的不同層級的聚合而獲得精煉
* HDA(分層深度聚合): 淺層和深層的網絡層可以組合到一起,這樣的組合信息可以跨越各個層級來學習到更豐富的組合信息,淺層和深層的網絡層可以組合到一起,這樣的組合信息可以跨越各個層級來學習到更豐富的組合信息
* 提取出的圖片特徵然後被用來在圖片上預測目標的center point,以及目標的2D大小,中心偏移(Center offset),3D dimensions, depth and rotation
* 這些值都利用初步回歸表(primary regression heads)估計。每個初步回歸表包括256個channel的3x3的convolution layer和一個1x1的convolution layer來產生預設的目標。
* 這些數據幫助我們取得物件精準的 2D bbox 以及初步的 3D bbox
#### Radar Association
Center point detection network 僅使用每個對像中心的圖像特徵回歸到所有其他對象屬性。為了在此過程中充分利用雷達數據,我們首先需要將雷達檢測與圖像平面上的相應對象相關聯。
* 為了充分應用到 radar 的數據,需要將雷達點與 image 上的物件進行連結
* 一個簡單的方法為:將 radar point 映射到 image 上,如果有radar point映攝到2D bounding box 內就連結起來,但是這方法非常不robust(穩健),因為 radar point 和物件之間並沒有 one to one mapping,也有可能該物件上有多個 radar point 或是一些 radar point 並沒有對應到任何物件;由於 radar 在 z dimension 上幾乎沒有(上下),映射過去的 radar point 可能會超出 2d bounding box範圍;最後,被遮擋的物件偵測到的雷達點都會映射在同一塊大致的區域,使得它們在 2D 圖像上很難區分
###### Frustum Association Mechanism:
* 使用物件的 2D bounding box 以及預估 depth and size 來創建一個 3D Region of Interest (RoI) frustum for the object
* 透過此 RoI frustum 能夠縮小需要檢查關聯性的Radar感測範圍,因為該Frustum之外的任何點都可以忽略不計
* 然後我們預估 object depth, dimension and rotation to create a RoI around the object,來進一步過濾掉與物件無關的 radar detections,如果有多個 radar detections inside this RoI,則取最近的一個 radar point 當作映射到的雷達點

>使用image features檢測到的對象(左),基於對象的3D bounding box (中)生成 RoI 截錐體,以及顯示截錐體內雷達檢測的 RoI 截錐體的 BEV(右)。
>* $\delta$ 用於增加設階段中的frustum size,為了解決估計深度值的不准確性
>* $\hat{d}$ 是訓練階段的地面實況深度和測試階段的估計目標深度
* 在training phase,使用3D ground truth bounding box來創建一個緊密的RoI frustum,並將雷達檢測與object相關連
* 在test phase,使用 $\delta$ 來控制ROI frustum 的 size,這是為了解決估計depth values的不准確性
* 使用 $\delta$ 來擴大frustum,能夠增加更多可能雷達點
* Pros :+1:
* 由於物件在 3D space 中有各自的RoI frustums,所以能夠排除掉重疊物件問題(overlapping objects)
* 解決 multi-detection association problem,因為只有 RoI frustum 內最近的 radar detection 會被 associated
* Cons :-1:
* 但是這並不能解決 radar 在 z dimension 不準確的問題,radar detection 可能因為本身的限制而無法精準的感測到物件的高度
###### Pillar(支柱) Expansion:
為了解決object高度不准確的問題,引入了pillar expansion,其中每個radar point都擴展為固定大小的支柱(fixed-size pillar)

>* 將radar points 擴展到 3D pillars(上圖)。 將pillars直接映射到圖像並用雷達替換深度信息(radar depth information )導致與對像中心的關聯性較差,並且許多重疊的深度值(中間圖像)
>* Frustum association準確地將雷達檢測映射到對象的中心並最大限度地減少重疊(底部圖像)
>* Frustum association還可以防止將由背景物體(如建築物)引起的雷達檢測與前景物體相關聯,如圖像右側行人的情況所示
* 此方法讓 radar detection 與 3D space 的一個維度相關(可能是z軸)
* 透過此方法,若 radar detection 全部或部份在 frustum 內就將它們進行 associated
#### Radar Feature Extraction
* 將 radar detections 與對應的物件 associating 後,使用 radar detections 中的深度(depth)和速度(velocity)來為 image 建立互補(complementary)的 features
* 特別是,對每一個與物件有連結到的radar detections,會產生三張以2D bounding box為中心的heatmap,這些heatmap與2D bounding box的w,h成比例,由$\alpha$控制

如果產生的 heatmap 有重疊,則 depth 較小的佔優勢,因為在 image 中,只有最近的物件是完全可見(fully visible)的
* 這些抓出來的 feature 會被用來當作 secondary regression heads 的 inputs 來重新計算物件的 depth, rotation, velocity and attributes
* **The velocity regression head** estimates the x and y components(分量) of the object’s actual velocity(實際速度) in the vehicle coordinate system(車輛座標系統).
* **The attribute regression head** estimates different attributes for different object classes, such as moving or parked for the Car class and standing or sitting for the Pedestrian(行人) class.
* The secondary regression heads :
* 由3個 convolutional layers with 3 × 3 kernels followed by a 1 × 1 convolutional layer 組成來產生裡想輸出
* 與primary regression heads相比,這些額外的convolutional layers有利於學習來自雷達特徵圖的高維度特徵
* 最後一步是將分類回歸器的輸出解碼為 3D bounding boxes
* The box decoder block uses the estimated depth, velocity, rotation, and attributes from the secondary regression heads,並從 primary regression heads 獲取其他object屬性
## Implementation Details
* **Object detection network** (目標檢測網絡): 採用 pre-trained CenterNet network with the DLA backbone 。(雖然Hourglass network做為backbone性能更好,但是採用了DLA因為其結果不錯的同時**訓練速度快**)
* **Baseline** : 直接採用發佈版的CenterNet(已經在nuScenes上訓練了140個epochs),這個模型默認不提供velocity和attribute,我們對於這兩個head訓練了30個epochs。利用這些結果作為我們的baseline
* **The secondary regression heads** : 採用雷達和圖片的特徵數據訓練了60個epochs,batch size:26.資源:2*Nvidia P5000 GPUs
* **像素降低** : 訓練和測試過程中,圖片像素從1600 * 900轉為800 * 450
* **數據增強(Data augmentation)--訓練階段** : 在訓練期間我們使用數據增強,隨機左右翻轉(機率為0.5)和隨機移動(從0到圖像大小的20%)。同樣的增強也適用於參考相機坐標系(coordinate system)的radar point cloud 。我們不應用任何縮放增強,因為它改變了3D測量值
* **數據增強(Data augmentation)--測試階段** : 只有做 flip ,將圖像及其翻轉版本輸入網絡,並將網絡輸出的平均值用於解碼3D bounding boxes。我們不像CenterNet那樣使用多尺度測試增強
* 在[x, y, z]方向設置pillar size [0.2,0.2,1.5]meters, $\delta$設置為將RoI frustum的徑向長度增加20%。
* **損失函數** :對大多數回歸頭使用L1損失
* 但對熱圖中心點頭(center point heat map head)使用焦點損失(focal loss)
* 但對屬性頭(attributes regression head )採用二進制交叉熵(Binary Cross Entropy = BCE)損失
## Result
* 觀察 CenterFusion 和基於 camera 、基於 Li-dar 的其他方法,使用在 NuScene 上做比較,InfoFocus 是基於 Li-dar,其他三個是基於 camera
* NDS (nuScenes detection score)贏過其他所有,mAP 在 CenterNet 使用 (HGLS) 當 backbone 時輸了
* nuScenes 數據集上的3D 目標檢測性能比較:

* nuScenes 數據集上進行3D 目標檢測的每類性能比較

## Ablation Study
Qualitative results from CenterFusion (row 1 & 2) and CenterNet (row 3 & 4) in camera view and BEV
* 上面兩行是 CenterFusion 的輸出結果,下面兩行是 CenterNet 的輸出結果,紅色和藍色箭頭分別是 ground truth 和 predict 的velocity ,紅色的部分是 ground truth boxes,綠色是 radar point cloud,藍色ㄕ檢測出的 bounding box

* Overall ablation study on nuScenes validation set,Improvement percent in each row are relative to the baseline method

## Conclusion
* a new radar and camera fusion algorithm called CenterFusion
* 使用 radar information 來進行 3D object detection
* 使用 frustum-based association method 來連結 radar detection 到影像上的物件,並創建基於雷達的featuer map映射以補充image feature 的 middle-fusion
* frustum-based association使用初步檢測結果再3D的空間中產生一個ROI frustum圍繞objects,並將radar detection maps到image上的object的中心
* 使用 pillar expansion method 補償 radar detection 不正確的高度資訊(方法:將雷達點轉換為 3D 空間中固定大小的柱)
* 在具有挑戰性的 nuScenes 3D 檢測基准上評估了我們提出的方法,其中 CenterFusion 優於最先進的基於相機的對象檢測方法