Paper review/3D Object detection

[논문 리뷰] TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers (CVPR, 2022)

성장형감자 2023. 4. 23. 11:42
728x90
반응형

나의 정리

  • 논문이 지적한 문제점
    3D object detection을 위한 많은 sensor fusion (LiDAR + Camera) 방식들이 존재하지만 모두 image의 condition이나 sensor misalignment에 취약한 문제가 있었습니다. 이러한 문제가 생겼을 때도 더 robust 한 3D object detection을 위한 모델을 제안하였습니다.
  • 해결 방안
    기존의 sensor fusion의 문제는 hard-association에서 오는 문제로 cross-attention을 통한 soft-association을 사용하여 문제를 해결 하였습니다. 또한 query를 initialize 할 때 image feature로 guidance를 주어 적은 decoder layer를 사용하여도 object를 잘 찾을 수 있게 하였습니다. Cross-attention시에 sensor misalignment의 경우 calibration matrix가 부정확할 수 있기 때문에 gaussian mask를 attention map에 곱해주는 방식을 사용합니다. (SMCA)

 

 

Abstract

sensor fusion 방식이 3D object detection에서 많이 사용되고 있지만 지금까지의 방식들은 image의 condition이나 sensor misalignment에 취약한 문제점이 있습니다. sensor alignment는 주로 calibration matrix을 통한 LiDAR point와 image pixel의 hard-association 때문에 일어나고 image condition은 bad illumination 때문에 일어납니다.

 

Transfusion은 Robust한 fusion을 위해 soft-association 방식으로 image condition이 좋지 않더라도 fusion이 가능한 model을 제안합니다.

 

convolution layer와 detection head로 2개의 transformer decoder가 사용됩니다.

 

first transformer decoder에서는 LiDAR point cloud로부터 sparse object query를 사용해 initial bounding box를 예측합니다.

second transformer decoder에서는 image feature와 object query를 adaptive 하게 fusion 합니다.

 

이러한 transformer의 attention 구조는 image로부터 어떤 위치의 어떤 정보를 가져올지 adaptive 하게 적용이 가능하게 해 줍니다.

 

 

추가적으로 point cloud에서 detection이 어려운 object에 대해 고려하기 위하여 image-guided query initialization strategy를 제안합니다.
→ point cloud에서 먼 객체에 대해서는 image가 더 잘 잡을 수 있기 때문에 이러한 query initialization 방식을 제시합니다.

 

 

Introduction

 

지금까지 연구된 LiDAR-Camera fusion 방법들은 크게 세 가지로 나눌 수 있습니다.

  1. result-level fusion
    3D proposal을 얻기 위해서 2D detector를 사용하여 진행하는 방식입니다. (FPointNet, RoarNet)
  2. proposal-level fusion
    각 sensor에서 얻은 region proposal로 얻은 proposal을 공유하여 RoIPool을 적용해 fusion을 하는 방식입니다. (MV3D, AVOD)
  3. point-level fusion
    최근 가장 많이 사용되는 방식으로 image feature를 point로 lift 시켜 fusion 하는 방식인데 이는 calibration matrix를 사용해 point를 생성하기 때문에 hard-association이 된다는 문제가 있습니다.
    → 실제 주행 환경에선 calibration이 조금씩 달라질 수 있는데 이에 대해 취약합니다.

 

 

point-level fusion은 많은 발전을 가져왔지만 단점이 존재합니다.

  1. image condition이 좋지 못해 feature의 quality가 안 좋다면 성능이 크게 저하됩니다.
  2. calibration matrix에 의한 hard-association은 image feature의 rich context feature를 버리게 되고 calibration matrix에 너무 많은 의존을 하게 됩니다.
    → LiDAR point는 sparse 하지만 image의 경우 dense 하기 때문에 dense 한 image의 특성을 잘 살릴 수 없습니다.

 

 

따라서 Transfusion의 핵심 아이디어는 fusion 과정에서 sensor misalignment와 image quality가 떨어지더라도 robust 한 detection이 가능하도록 hard-association 과정을 soft-association 과정으로 바꾸는 것입니다.

 

두 개의 transformer decoder로 network가 object가 있을 만한 위치를 더 잘 찾을 수 있도록 initial bbox 근처의 cross attention으로 공간적인 constrained를 주어 locality inductive bias를 활용합니다.

또한 image-guided query initialization module로 query initialization 시에 image guidance를 줍니다.

 

 

contribution을 정리하면 아래와 같습니다.

  1. soft-association mechanism으로 robust한 LiDAR-Camera fusion을 제안합니다.
  2. image quality가 떨어지거나 sensor misalignment 시에도 robust한 detection이 가능합니다.
  3. initial box prediction의 quality를 높이기 위해서 image-guided query initialization module을 사용하여 point cloud에서 검출하기 어려운 object에 대한 고려를 해줍니다.
  4. nuScenes dataset으로 SOTA 성능을 냈고 Waymo에서 경쟁력 있는 성능을 냈습니다.

 

Method

먼저 image와 LiDAR Point cloud를 2D backbone (CenterNet의 DLA34), 3D backbone (VoxelNet)을 사용하여 image feature와 LiDAR BEV feature를 생성합니다.

 

그다음 LiDAR BEV feature와 image feature를 사용하여 query initialization을 진행하여 initial query를 생성합니다. 이후 2개의 decoder layer를 통과하는데 첫 layer에서는 LiDAR BEV feature를 사용하고 두 번째 layer에서는 image feature를 사용하여 decoder를 거치게 되고 각 decoder에서 FFN을 사용해 bbox를 예측합니다.

 

 

Query Initialization

기존 query들은 input data와 상관없이 random 한 위치에 생성하거나 parameter로 학습하여 생성하였습니다. 하지만 이 방식으로 생성된 query가 object를 찾아갈 수 있게 하기 위해선 추가적인 decoder layer들이 필요합니다.

 

이 논문에서는 단 하나의 decoder layer만으로 좋은 성능을 내기 위해서 input-dependent initialization 방식을 제안합니다.

 

 

BEV feature map $F_L\in\R^{X\times Y\times d}$을 convolution 연산을 통해 class-specific heatmap $\hat{S}\in\R^{X\times Y\times K}$을 예측합니다.

해당 heatmap을 $X\times Y\times K$의 object candidate로 생각하고 Top-N개의 candidate를 구하여 initial object query로 사용합니다.

 

 

이때 너무 가까운 query만 생성되는 것을 피하기 위해서 주변 인접 8개 중 가장 크거나 같은 것을 query로 사용합니다.

 

이를 통하여 potential object center에 가까운 query로 intialization을 할 수 있고 decoder layer 수를 줄일 수 있었다고 합니다.

 

 

BEV plane에서는 같은 category끼리는 비슷한 크기를 가지게 됩니다. 따라서 이러한 속성을 사용해 더 나은 multi-class detection을 진행합니다.

object query에 category embedding을 사용하는데, query feature랑 one-hot category vector를 element-wise sum을 진행하는 방식으로 구현한다고 합니다.

 

 

이를 통해서 self-attention, cross-attention 시에 유용한 정보를 제공합니다. 또한 inference시에 의미 있는 사전 지식을 model에 전달할 수 있습니다.

 

 

Transformer Decoder and FFN

Decoder layer의 design은 DETR과 동일하게 사용합니다. 왼쪽은 첫 번째 decoder layer, 오른쪽이 두 번째 decoder layer입니다.

 

 

self-attention을 통해서 object candidate 끼리의 관계를 학습하고 cross-attention을 통해서 feature를 학습합니다. query의 위치를 MLP를 사용해서 query feature와 element-wise sum 하여 positional encoding을 해줍니다.

 

 

FFN에서는 center offset$(\delta_x, \delta_y)$, bbox height $(z)$, size $(l, w, h)$, yaw angle $(\alpha)$, velocity $(v_x, v_y)$, class probability $\hat{p}\in[0,1]^K$를 예측합니다. 각각의 decoder layer에 FFN을 달아서 supervision으로 학습을 진행합니다.

 

 

LiDAR-Camera Fusion

point-level fusion은 sparse 한 LiDAR point에 의해 fusion quality의 한계가 존재합니다. 만약 object에 적은 LiDAR point가 포함되어 있다면 같은 개수의 pixel feature를 가져오게 되니 image의 semantic information loss가 일어나게 됩니다.

 

 

dense 한 image feature와 sparse 한 LiDAR feature를 fusion 하기 위해 2nd decoder layer에서 cross-attention으로 soft-association을 진행합니다.

 

 

SMCA for Image Feature Fusion (2nd decoder layer)

기존의 hard-association에서 image에서 adaptive 하게 어디서 어떤 정보를 가져올지 network가 선택할 수 있게 하는 soft-associtation 방식으로 사용합니다.

 

query 위치를 calibration matrix로 image 상의 위치로 변환하고 해당 위치의 feature를 가져와서 cross-attention을 진행하는 방식 (hard-association)은 calibration matrix가 정확하지 않으면 다른 feature와 attention이 진행되게 됩니다. 이 방식에선 정확한 위치와 attention을 하기 위해선 오랜 학습시간이 필요로 합니다. 따라서 정확한 위치의 feature를 사용할 수 있게 해야 합니다.

 

 

i, j: weight mask의 index r: 3D box의 projection 시킨 corner들의 최소 외접원 반지름 $\sigma$: 가우시안 분포의 bandwidth를 나타내는 hyper-parameter

 

 

object query를 이미지 평면으로 projection 시킨 $c_x,c_y$로 2D circular gaussian mask를 구합니다. 모든 attention head의 cross-attention map에 이 mask map을 element-wise multiply 해줍니다.

 

이를 통해서 LiDAR feature에 맞는 image feature가 어디 있는지 더 빠르고 좋게 학습합니다.

 

 

 

Label Assignment and Losses

 

DETR에서 matching 알고리즘으로 사용했던 Hungarian algorithm에 사용되는 matching cost는 위와 같이 구성합니다.

$L_{cls}$는 focal loss, $L_{reg}$는 예측한 BEV center와 GT center의 L1 loss, $L_{iou}$는 예측한 box와 GT box의 IoU loss를 사용하였습니다.

 

 

Image-Guided Query Initialization

high-resolution image를 통해 small object detection 성능과 robust 함을 위해서 image-guided query initialization을 제안합니다.
→ LiDAR는 거리가 멀거나 작은 객체에 point가 없어 detection이 불가능한 경우가 있어서 이를 고려해 주기 위해 image로 guidance를 주는 것입니다.

 

 

image feature를 H 축 방향으로 max pooling을 해서 BEV 상에서의 feature로 만들어 줍니다. 이를 Key, Value로 사용하고 LiDAR BEV feature를 Query로 사용해서 cross-attention을 진행하여 image feature가 fusion 된 BEV feature를 생성하여 query initialization을 진행합니다.
→ 각 이미지에서 열마다 최대 1개의 객체가 있으므로 열 방향으로 maxpooling을 해도 중요한 정보를 덜 잃을 수 있고 계산량은 많이 줄일 수 있다고 합니다.

 

 

마찬가지로 Fused BEV Feature로 heatmap$F_{LC}$을 예측합니다. 이때 LiDAR-only heatmap $\hat{S}$와 평균을 내서 최종 heatmap $\hat{S}_{LC}$를 생성합니다.

 

 

Experiments

LiDAR-only 보다 훨씬 높은 성능을 가지고 있고 LiDAR-Camera fusion 방식 중에서도 SOTA 성능을 냈습니다.

 

 

다음 실험은 image condition에 따른 fusion 방식의 robust 함의 차이에 대한 실험입니다. LiDAR-Cemera fusion 방식을 각각 point-wise concatenation(CC), PointAugmenting(PA), Transfusion으로 실험을 진행했을 때 Transfusion 방식이 nighttime에서도 좋은 fusion 성능을 보이는 것을 볼 수 있습니다.

이를 통해서 hard-association 방식인 CC, PA 보다 soft-association인 Transfusion 방식이 더 robust 하게 fusion이 가능하다는 것을 볼 수 있습니다.

 

 

다음 실험도 비슷한 실험으로 6개의 frame 중 일부 개수의 image를 drop 하고 학습한 결과입니다. 이 결과에서도 TransFusion이 가장 성능 하락 폭이 적은 것을 볼 수 있습니다.

 

 

Sensor misalignment 상황을 가정하기 위해서 Camera에서 LiDAR로 변환하는 calibration matrix에 random 한 translation 값을 주어서 학습한 결과입니다. 해당 결과에서도 Transfusion이 월등한 성능을 내는 것을 확인할 수 있습니다.

 

 

query initialize 할 때 C.A, I.D. 를 모두 사용하면 많은 layer를 사용하지 않아도 비슷한 성능을 낼 수 있었다고 합니다.

 

 

각 module 별 성능을 보여주는 table입니다.

 

728x90
반응형