ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] Flatformer
    논문 스터디 2023. 7. 5. 18:10

    어디까지나 뇌피셜인 블로그

    논문 링크 :  Flatformer : Flattened window attention for efficient point cloud transformer

     

    Motivation

    pointcloud transformer의 efficient한 버전이다. 기존 pointcloud transoformer인 SST와 sparse convolution을 사용한 Centerpoint 보다도 빠른 pointcloud transformer로, nvidia jetson agx orin에서도 16 fps로 inference 할 수 있다. 자세한 내용을 보자.

     

    먼저 선행되어야 하는 3D dense prediction method의 특징에 대해서 살펴보자. 보통 nuScenes, Waymo dataset을 사용하고, camera + lidar fusion을 하는 multi-modal 모델을 가지는 경우가 많다. camera도 여러 방향의 카메라(전,후방,양옆)을 사용하여 multi-view 로 바꾸거나, lidar와 같이 bird-eye view(BEV) 로 바꾸는 경우가 많아지고 있다. 현재까지는 lidar feature를 extract하기 위해서는 voxelize한다음 sparse convolution으로 이루어진 backbone을 거치는 경우가 많다. (e.g., BEVFusion) 현재 nuscenes에서 3D object detection 최고 정확도는 0.75mAP, 0.776 NDS이다. 그리고 상위권을 차지하고 있는 대부분의 모델들이 ensemble모델이며, FPS를 표시하지 않는 경우가 대부분이다. 

     

    또한, Pointcloud의 특징에 대해서도 간단히 짚고 넘어가자. pointcloud는 irregular하며, sparse한 특징이 있고, outdoor scene의 경우 0.32m x 0.32m에서 약 32k points를 가진다고 한다. 

     

    Problem

    현재 poincloud transformer는 3가지로 나뉘는데, 첫번째로 ViT의 pointcloud 버전인 global pointcloud transformer는 모든 points가 token이 되므로 매우 느리다. 두번째는 local pointcloud transformer 인데, points의 neighborhood를 token으로 한다. 그러나 neighborhood gathering과 restructure data 과정에 시간이 매우 오래 걸린다. 마지막으로 window poincloud transformer가 있는데, swintransformer의 pointcloud 버전이다. SST가 바로 그것이며 각 window 안에 있는 points가 한 group을 이루고 group들을 batch로 하여 MHSA를 진행한다. 그러나, pointcloud의 sparse하고 irregular한 특성으로, 한 window에 있는 points의 개수는 window마다 다를 것이며 이 경우에는 최대 point 개수를 가지는 group에 맞춰 padding을 넣게 된다. 그럼 padding으로 인한 연산량이 늘어나게 된다. 

     

    Method (Flattened Window Attentention)

    1. window based sorting

    window size로 quantization 하여, window coordinates과 local coordinates within window 로 만든다. 

    2. equal size grouping

    같은 point개수로 grouping한다.

    3. alternate sorting axis

    서로 다른 FWA block에 다른 sorting axis를 부여한다. 

     

     

     

     

Designed by Tistory.