論文閱讀_Radar-based 2D Car Detection Using Deep Neural Networks_ITSC 2020

Z.H. Shen
馬鈴薯獵人的狂想曲
13 min readSep 13, 2022

Introduction

  • 對車輛周圍的感知能力,是安全的自動駕駛導航的重要前提,每種感測器都有其弱點,因此需要多模態感測器,來提供在不同環境下穩健的導航,雖然很多方法是利用相機或光達來進行物件偵測,但雷達的物件偵測較少。
  • 本篇論文是將 Bird’s-eye view (BEV) 的雷達點雲轉化為 Grid-like structure 後,利用 YOLOv3 的架構進行物件偵測,但 YOLOv3 是針對 2D 圖像的 Fully convolutional neural network (FCN),為了使雷達點雲能夠應用卷積 (Convolution),所以將雷達點雲進行轉換,作者所知,這是第一篇使用 CNN 的雷達物件偵測的論文。
  • 為了評估 Grid-like structure 轉化的影響,與基於 Frustum PointNets 的 Two-stage object detection 的論文比較,並使用公開數據集 nuScenes dataset 進行訓練和評估,結果較差,但速度比直接使用雷達點雲的方法更快。

雷達的優缺點

雷達的優點

  1. 幾乎不受天氣影響。
  2. 便宜、堅固、易部屬
  3. 可直接量測目標物的速度

雷達的缺點

  1. 與光達相比資料稀疏與吵雜。(導致很難斷周圍的環境)
  2. 提供的位置可能不準確。(可能顯示物體旁的位置,而非真正的位置,或是接收到非可直視的位置,例如來自車底的反射)
  3. 俯仰角 (elevation) 較小。(導致很難收集物體的高度訊息)

Method

本論文介紹了兩種將利用雷達點雲進行物件偵測的方法

  1. Grid-based Object Detection: 將雷達點雲進行 Grid-like structure 的轉化,再應用 CNN-based 的 2D object detection。
  2. Point Cloud-based Object Detection: 直接利用雷達點雲進行物件偵測。

定義輸入雷達

雷達點雲集合為大P,共有 N 個小 p 雷達點雲個數,每個雷達點雲為一個五維點,包含 x, y 位置、代表 RCS 的 σ 和點雲的 x, y 軸速度分量 v_x, v_y。

神經網路的輸出

為了保留 BEV 中物體的形狀資訊,作者提出的物件偵測演算法,可以預測出具有方向的 BBox,包含中心點位置的 x, y、高度 h、寬 w、 yaw angle θ 和物件類別(k+1, k 為物件類別總數)。

方法介紹

A. Grid-based Object Detection

  • 相對圖像資料排列在固定的網格 (Grid),雷達點雲有著不規則的密度,且點雲在數據結構上為無序集,這使得用於圖像的物件偵測的卷積 (Convolution),不適用於點雲資料,雖然圖像資料隱含的提供空間訊息,但雷達點雲間提供了明確的關係特徵。
  • 在出色的 CNN-based 的 Image object detection algorithm 激勵下,3D 雷達點雲通常會被轉化為 Grid-like structure 以應用 Convolution,大多數情況是將 3D 點雲投射到 2D image 上或量化到 3D voxel grid 來完成。而作者為了忽略掉糟糕的俯仰角 (Elevation) 資訊,將 2D 點雲轉換為 2D BEV grid 來表示。

1 — Input Representation:

  • Fig2. 說明將點雲轉換為 Grid 表示法,Ego-vehicle 位於中心位置,長為 I_h (height)、寬為 I_w (weight),點雲根據 x、y 位置轉換為網格單元,位置超過網格邊界則丟棄,利用 x、y 軸速度及 RCS 取代圖像的 RGB 三通道,沒有被雷達映射到的位置,值設為 0。
  • YOLOv3 是透過調整輸入的正方形圖大小,而在 nuScenes data set 因道路的關係,雷達 BEV Grid 表示法的 Height 通常會大於 Weight。且調整 Grid 會扭曲 Grid-like structure 的雷達點。Padding 操作會使得稀疏雷達點更加稀疏。作者使用的方法不需要將輸入調整為正方形的格式。

2 — Network Architecture

  • 作者提出使用 YOLOv3 用於雷達資料,先將雷達點雲轉換為長為 O_h、寬為O_w 的輸出 Grid,每個 Grid 會預測出 B 個 BBox,包含中心點位置的 x, y、高度 h、寬 w、 yaw angle θ 和物件類別(k+1, k 為物件類別總數),比原始 YOLOv3 有更多的參數,這是為了保留物體在 BEV 的形狀。

3 — Learning and Inference

  • 使用 YOLOv3 的方法回歸出物體位置和 BBox 大小,yaw angle 正歸化為 1 ~ -1 之間直接用於預測,並用 Hyperbolic tangent activation function 來確保 yaw angle 的值範圍。
Hyperbolic tangent activation function
  • Loss function 定義如下:
Loss function
  • 第一項為 BBox 的 Loss,用五個參數來表示,{{\hat \ast}_{ij}} 表示為 Ground truth,{{\ast}_{ij}} 表示為 predict value,i 為 Grid cell position,j 表示為 Anchor box,由於預測的 BBox 只在覆蓋到 Ground truth 時作用,所以使用 {1^{obj}_{ij}} 來遮蔽,當有覆蓋到 Ground truth 時值為 1,其餘值為 0。Weight {{lambda}_{ij}} 對較小的 Anchor 懲罰更大
  • 第二項為物體的 Loss,是根據 YOLOv3 的 binary cross-entropy 來計算。
  • 第三項為 Classification loss,對每個類別皆使用 Binary cross-entropy with a sigmoid activation function,這可能使得一物件有多類別標籤,並按照 YOLOv3 沒有使用 Sigmoid function。

B. Point Cloud-based Object Detection

  • 為了進行 Convolution 的操作,將 Unordered point cloud 轉換為 Regular grid,造成稀疏雷達點雲多餘的計算,這裡利用 2d car detection in radar data with pointnets 來直接對雷達點雲進行操作,因此保留雷達感應器的資料,而不需增加不必要的資料。

1 — Input Representation

  • 首先為了減少 Search space 和更有效率地找出 ROI 點雲劃分了幾個 Patch,如 2d car detection in radar data with pointnets 所述,每個點雲周圍創建固定長寬的 Patch,每個 Patch 都能夠捕捉到整個物體的範圍,這種方法使得同一物體或 Clutter(Radar) 產生了多個 proposal。
Fig. 5

2 — Network Architecture

Fig.6
  • 首先 Classification network 給每個 Patch 預測出一個類別,是 k-1 個類別之一或是 Class clutter(Patch 中沒有物體),該 Classification network 使用 Multi-layer perceptron 來提取 N 個 Feature point,並使用 Max-pooling 來產生 Global feature,藉由 Global information 和 fully connected(FC) layer 來判斷是哪一種類別,最終 Classification network 為每個 Patch 預測出 k 個 Class scores。
  • 如果 Classification network 預測出來為 Object class,Segmentation network 藉由 Two-dimensional mask 來預測哪些點雲為 Object 的一部分,Segmentation network 結合先前所提取的 Local 和 Global features 的預測分數來判斷,一個雷達點雲是否為 Clutter,經過 Segmentation network 之後,對預測為物體的點雲進行 Mask,Masked points 會進行標準化已提高平移不變性,如 Fig.5c 所示,這是透過轉換到一個 Local coordinate system 來實現的,而原點則是 Masked points 的中心,為確保 Estimation network 的 BBox 有固定的點雲輸入,每個 Patch 都會選取 m 個點雲。
  • 最後,Box regression PointNet 類似於 Frustum PointNets for 3D Object Detection from RGB-D Data 預測出 Amodal 2D BBox,即 BBox 為會覆蓋整個 Object,即使雷達點雲只有 Object 的一部分。如 Frustum PointNets for 3D Object Detection from RGB-D Data 一樣,Box size、yaw angle 會混合 Classification 和 Regression 提出,使用 {N_s}個預先定義好的模板 (anchor box),Network 將 Box 大小定義為類別之一產生出 {N_s} 個類別,然後對每個尺寸類別的 Residual (與 Ground truth 的差值) 的兩個維度 (x, y 軸),所以又產生 2*N 個類別,最終結合為 Actual predicted box size,Yaw angle 也用類似的方法得到({N_y}),此時參數量達到 3*{N_s} + 2*{N_y},再加上中心點位置的預測得到 2 + 3*{N_s} + 2*{N_y} 的參數量。

3 — Learning and Inference

  • 根據 2d car detection in radar data with pointnets,Multi-task loss function 如 Function 2 的描述,在訓練時同步優化所涉及的四個網路,{L_{cls}} 用於描述 Patch classification loss,{L_{seg}} 用於描述 Instance segmentation loss,{L_{c1 - reg}}和 {L_{c2 - reg}} 分别代表 T-Net 和 Box estimation network 的中心回歸的 Loss,{L_{y - cls}} 和 {L_{y - reg}} 分別代表 Yaw angle estimation 的 Classification loss 和 Regression loss,{L_{s - cls}} and {L_{s - reg}} 代表 Size estimation 的 Classification loss 和 Regression loss。
  • 根據 2d car detection in radar data with pointnets,Softmax with cross-entropy loss 被用於獲得所有 Classification 和 Segmentation 任務的Loss,Smooth-l1 (huber) loss 被用於 Regression,每個 term 都有加權,若 patch classified 為 Clutter,Box 則設為零。
  • 因 Loss function 完全參數化 2D BBox 為 Center、size 和 yaw angle,而沒有針對 IoU metric 再進行優化。
  • 如同 Frustum PointNets for 3D Object Detection from RGB-D Data 的說明,當物體中心位置和大小預估準確的情況下,若 Angle estimate 失敗,則預測會相當糟糕,為了解決這個問題,Frustum PointNets for 3D Object Detection from RGB-D Data 提出了一個 Regularization loss 稱為 Corner loss,{L_c},並以此來優化第三項,被定義為 BBox 四個角的誤差距離之和。

CONCLUSION

  • 使用雷達進行物件真測試一個具有挑戰姓的問題,尤其在交通密集和快速變化的程式環境中,縱使雷達在不同的天氣環境及光照條件下具有穩健性。
  • 本篇論文旨在研究雷達推斷 BEV 中的物體形狀及位置的貢獻,對 FCN 的 YOLOv3 進行調整以便運用在稀疏和吵雜的雷達資料上,並與基於 Point cloud 的論文的方法 (2d car detection in radar data with pointnets),一同在 nuScenes data set 進行比較,發現基於 point cloud 的方法實現 19.61 %mAP,而基於 YOLOv3 的網路僅達到 7.87 %mAP,發現本篇論文所提出的發法,將點雲轉換為 Grid-like representation,Grid 的有無的高度不平衡,導致網路的 Overfitting,研究也表明了神經網路使用雷達數據的潛能,考慮到城市的交通狀況,基於 Point cloud 的網路實現了不錯的性能。
  • 本篇論文沒有引入新的模型架構,有待進一步研究,可以使用 3D convolutions 或 Long short-term memory layer 進行進一步的研究。

--

--