나의 정리
- 논문이 지적한 문제점
안개가 낀 날씨에서는 LiDAR가 제대로 동작하지 못해 안전한 자율 주행이 불가능할 수 있습니다. 따라서 fog weather에 대해서 robust 한 detector를 제시합니다. - 해결 방안
LiDAR와 Radar를 5 frame으로 input을 받아 각각 feature extraction을 진행하고 proposal을 구합니다. 구한 뒤 proposal을 NMS를 사용해 합쳐준 뒤 해당 proposal을 사용해 RoI Pooling으로 feature vector를 생성합니다. 생성된 feature vector를 sensor fusion을 해주고 temporal fusion을 해준 뒤 최종적으로 bbox regression을 진행합니다. 이렇게 late fusion detector를 제안하여 LiDAR-only detector들보다 더 높은 성능을 달성하였습니다.
Abstract
LiDAR와 Camera 센서는 자율 주행에서 가장 많이 쓰이고 중요하게 사용됩니다. 두 센서는 좋은 날씨에서 좋고 풍부한 정보를 담고 있습니다. 하지만 빛을 굴절시키는 입자(안개) 또는 빛이 충분하지 않은 환경(밤)에서는 정보 수집이 제대로 되지 않습니다.
지금까지 발전되어 왔던 3D object detection은 주로 LiDAR와 Camera를 활용하여 진행되어 왔고 이는 말했던 이유들로 실제 주행 환경에서 성능이 떨어질 수 있습니다.
따라서 이 논문은 비교적 날씨 환경에 robust 한 센서인 Radar를 활용하여 object detection을 진행합니다.
Multimodal Vehicle Detection Network(MVDNet)은 2-stage deep fusion detector입니다.
먼저, LiDAR와 Radar에서 proposal을 생성하고 두 sensor에서 얻은 feature를 region-wise fusion을 진행합니다.
Oxford Radar Robotcar를 사용하여 평가를 하였습니다. Radar Robotcar dataset의 경우 raw data만을 제공하는데 이 논문에서는 직접 본인들이 box labeling을 한 뒤 object detection 학습을 진행했다고 합니다.
Introduction
위 사진을 보면 foggy 상황에서는 LiDAR-only(b)로 사용하였을 때는 검출 성능이 좋지 못한 것을 볼 수 있습니다. 하지만 Radar-only(c)는 검출 성능이 더 좋은 것을 볼 수 있고 따라서 MVDNet은 LiDAR와 Radar를 모두 활용하여 3D object detection을 진행합니다.
2-stage detector
- LiDAR, Radar에서 얻은 data를 stream으로 받습니다. 받은 stream에서 feature를 뽑아 각각 proposal을 구합니다.
- attention을 사용하여 adaptive 하게 feature를 fusion 하고 3D convolution을 사용하여 4D feature tensor에 대해서 temporal fusion을 진행합니다.
또한 Radar RobotCar dataset을 labeling을 진행했는데, LiDAR point cloud를 기준으로 bbox를 생성했고 odometry를 사용해 radar와 LiDAR의 sync를 맞췄다고 합니다.
이 논문에서 주장하는 본인들의 contribution은 두 가지로 아래와 같습니다.
- LiDAR와 Radar의 상호 보완적인 이점을 효율적으로 살린 deep late fusion detector를 제안하였습니다. 본인들이 LiDAR와 360$\degree$ scanning radar image를 fusion 한 모델을 처음 제안하였다고 합니다.
- foggy weather condition에 대해서 label 한 dataset을 제안하였습니다.
Method
Problem Statement and Overview
안개는 일반적인 맑은 공기보다 투과율이 낮기 때문에 LiDAR point를 두 가지 측면으로 왜곡시킵니다.
- 멀리 있는 물체에 의해서 반사된 LiDAR Laser는 투과율이 낮은 안개 때문에 감쇠되어 LiDAR에서 인식할 수 없게 되어 가시 범위가 줄어듭니다.
- 불투명한 안개는 Laser를 산란(scatter) 시킵니다.
이러한 문제들은 false alarm과 misdetection으로 이어져 전체적인 성능 하락의 원인이 됩니다.
따라서 LiDAR에 비해 긴 파장을 사용하여 날씨의 영향을 덜 받는 Radar를 같이 사용하여 더 Robust 한 detector MVDNet을 제안합니다.
모델은 크게 두 가지로 구성되어 있습니다.
- MVD-RPN
각 sensor로 얻은 stream의 feature를 추출하여 proposal을 만드는 단계입니다. - MVD-RFN
얻은 proposal의 feature를 모아 roi pooling을 하여 feature vector를 얻고 sensor fusion과 temporal fusion을 거쳐 최종적인 detection box를 얻습니다.
MVD-RPN Backbone
feature extractor.
MVDNet은 LiDAR, Radar에 각각 적용되는 두 개의 feature extractor를 사용합니다.
feature extraction 과정에서 down sampling과 up sampling을 진행합니다.
Proposal generator.
Proposal generator는 얻은 feature의 H frame에서 각각 proposal을 생성하는 것이 아닌 모든 frame의 feature map을 convolution을 사용해 proposal을 한 번에 구합니다.
각 sensor들은 objectness score를 계산하고 k개의 anchor로 bbox regression을 진행합니다.
이후에 두 센서를 통해 얻은 proposal들을 NMS를 사용하여 병합합니다.
MVD-FRN Multimodal Fusion
MVD-RPN에서 생성된 proposal을 사용하여 region-wise feature를 생성하기 위해서 RoI Pooling을 사용합니다.
Sensor fusion
모든 상황에서 LiDAR, Radar의 중요도가 동일하지 않습니다.
예를 들어 안개가 낀 상황에서 LiDAR로 잘 식별되지 않는 상황에 대해서는 LiDAR보다 Radar의 중요도가 높습니다. 반대로 맑은 상황에서는 LiDAR의 중요도가 더 높아집니다.
따라서 상황에 따라서 adaptive 하게 weighting 하여 fusion 하기 위해서 attention block을 사용합니다.
attention은 각 sensor에서 self attention을 진행한 뒤 cross attention을 진행합니다.
self attention의 수식은 기존의 attention과 동일하고 아래와 같습니다.
$W_\theta,W_\phi,W_g$는 embedding을 위한 term입니다. $x_{in}$을 추가로 더 해주어서 residual connection을 해줍니다.
cross attention의 수식도 기존에 사용하던 수식과 동일합니다.
$s_0$는 LiDAR 혹은 Radar이고 $s_1$은 $s_0$ 말고 나머지 sensor를 의미합니다. cross attention에도 똑같이 residual connection을 해줍니다.
attention이 끝난 뒤에 feature tensor의 shape$(H \times C \times W \times L)$으로 reshape을 해주고 concat을 해주어서 4D feature tensor를 만들어 줍니다.
Temporal fusion
sensor fusion의 결과인 4D feature tensor를 3D convolution을 사용해서 time dimension에 대해서 fusion을 진행합니다.
Temporal feature를 생성한 뒤 flatten 시켜 fully-connected layer를 통과시켜서 object score와 localization을 진행합니다.
Experiments
Loss function
loss 함수는 위와 같습니다.
크게 두 가지로 MVD-RPN과 MVD-RFN에서 쓰이는 loss로 구성됩니다.
RPN에서는 proposal의 classification과 box regression의 loss를 사용하고 RFN에서는 classification, box regression, direction (0~180$\degree$)를 loss로 사용합니다.
Training details
ORR dataset은 8862 sample을 제공하고 이 중 7071을 training, 1791을 testing으로 사용하였습니다.
LiDAR의 input dimension은 320x320x36이고 radar는 320x320x1입니다.
input은 각 sensor 별로 1장의 현재 frame과 4장의 과거 frame으로 총 5 frame을 사용하였습니다.
안개 날씨로 학습을 진행하기 위해서 LiDAR point cloud를 fog model인 DEF을 사용해서 fog 상황의 point cloud로 변경하여 학습한 모델과도 비교하였습니다.
→ DEF를 거치게 되면 가시거리가 축소되고 point에 noise가 끼게 됩니다.
Dataset Preparation
LiDAR Point Cloud를 기준으로 20 frame마다 1번씩 3D bbox를 생성하였습니다.
→ key frame (annoation이 되어있는 frame)을 기준으로 이후 19 frame은 odometry 정보를 사용하여 interpolation을 하여 제공합니다.
Radar는 0.9$\degree$ 해상도를 가지고 4hz로 sweep 하고 LiDAR는 0.33$\degree$ 해상도를 가지고 20hz로 sweep을 했습니다.
Experiment
성능 표를 보면 기존의 LiDAR-only detector들과 비교하였을 때 fusion 방식이 clear, foggy 상황 모두 좋은 성능을 가지고 있습니다.
DEF의 경우 front-view에서 주로 사용되던 방식이라 BEV 상에서의 detection에서는 높은 성능을 내지 못하는 모습을 보여줍니다.
두 sensor가 fusion이 어떻게 되는지에 대한 양상을 보기 위한 사진입니다.
LiDAR와 Radar 두 센서에서 모두 visible 한 영역에 대해서는 LiDAR Radar 모두 gradient가 골고루 흐르는 것을 볼 수 있지만, LiDAR에서는 unvisible 한 영역에 대해서는 Radar에서 feature를 학습하는 것을 볼 수 있습니다.
Ablation Study
Fog의 정도가 심해질수록 성능 저하가 되는 것을 볼 수 있는데 MVDNet의 경우 저하 폭이 적은 것을 볼 수 있습니다.
history frame을 얼마나 사용하는지에 대한 실험입니다. clear와 foggy weather에서 4개의 frame을 사용하는 것이 성능이 더 좋았습니다. 대신 runtime과 accuracy의 trade off를 가지고 있습니다.
제시한 방법들을 사용하는 ablation study입니다. 모든 모듈들이 성능 gain을 얻을 수 있었고 LiDAR와 Radar가 sync가 맞지 않아 생기는 misalignment를 해결(Data Sync) 하니 더 높은 성능을 얻을 수 있었습니다.
LiDAR Reconstruction은 early fusion 방식입니다.