본문 바로가기
  • CobsLab upgrades your company value by AI technology
이미지 처리 논문

Voxel Field Fusion 기술을 활용한 3D Object Detection 강화 - Voxel Field Fusion for 3D Object Detection

by dmkdmk 2023. 3. 28.

안녕하세요 콥스랩(COBS LAB)입니다.

오늘 소개해 드릴 논문은 ‘Voxel Field Fusion for 3D Object Detection'입니다.

해당 내용은 유튜브 ‘딥러닝 논문 읽기 모임 'Voxel Field Fusion for 3D Object Detection' 영상 스크립트를 편집한 내용으로, 영상으로도 확인하실 수 있습니다. (영상링크:https://youtu.be/NWAciZYUiXA)

 

 

오늘 발표할 논문은 2022년도 cvpr에서 소개된 3차원 객체 인식에 관한 논문입니다. 논문의 제목은 Voxel Field Fusion for 3D Object Detection으로 홍콩 대학 컴퓨터과학과 연구진들이 발표한 논문입니다.

 

 

 

Voxel이란 간단하게 부피를 가진 Pixel이란 뜻으로 VolumePixel의 합성어입니다. 왼쪽 그림을 보시면 2차원에서의 하나의 요소를 Pixel이라고 부르는데 이를 3차원 개념으로 갖고 왔을 때 2차원 Pixel에 해당하는 요소가 Voxel입니다.

논문의 목표인 3차원 객체인식에는 Point cloud data가 대표적으로 많이 쓰이고 있습니다. 이 개념에 대해서 알아보겠습니다.  이 논문에서 Point cloud data와 다른 형태의 Data를 융합하는 방식을 사용했고 Point cloud data란 3차원 공간정보를 시각적으로 표시해 주는 Data로 왼쪽 아래 그림에서 보실 수 있듯이 그림에 모든 Pixel에 대해 값이 있는 것이 아니라 공간정보가 있는 점에 대해서만 그 값을 갖고 있습니다.

 

한마디로 정형화되어 있는 Data가 아니라 순서가 없이 나열되어 있는 Sparse 한 특징을 갖고 있고 각 점간의 상호작용이나 기하학적 특성을 파악하기 어렵다는 단점을 갖고 있습니다.

Point cloud data를 이용한 객체인식 알고리즘은 주로 sparse 한 성질의 한계를 개선하는 방향으로 진전되어 왔습니다.

서로 연관관계를 파악하기 어려운 Data로부터 유의미한 정보를 얼마나 효율적으로 추출하는지에 대해서 연구가 진행되어 왔습니다. 

 

대표적으로 PointNetVoxelNet이 있는데 간략히 말씀드리면 PointNetPoint cloud data를 그대로 입력해서 학습하는 모델로 max pooling이나 spatial Trasnfer 네트워크와 같이 Data의 기하학적 성질을 유지할 수 있도록 딥러닝 네트워크를 제시했습니다.

 

또한 VoxelNetPoint cloud data부터 Voxel feature를 추출한 다음 이를 해석해서 물체를 검출하는 모델을 제시를 했고 Voxel 형태 그대로 전처리 하는 것이 아니라 Voxel 단위의 feature map을 딥러닝 네트워크를 이용해 만들어 놓은 것이 큰 특징입니다.

관련된 연구가 계속 있지만 이에 대한 한계가 분명히 있어서 최근에는 Cross modality fusion방식을 활용하는 연구가 진행되고 있습니다.

Cross modality fusion란 서로 다른 양식을 갖는 Data를 융합하는 것을 말하며 예를 들어서 RGB 이미지와 워드 등 다양한 분야에서 사용되고 있습니다. Cross modality fusion에서 가장 중요한 것은 서로 다른 modality에서 오는 정보나 feature space 자체가 언밸런스하다는 것입니다. 그래서 서로 다른 feature space representation을 갖기 때문에 density variance, context deficiency, Data augmentation 등 발생하는 misalignment 문제를 해결하는 것이 Cross modality fusion의 큰 관건입니다.

 

이 논문에서 저자가 제시한 framework에 대해 간략히 말씀을 드리겠습니다.

먼저 말씀드리자면 논문의 목적은 3D 객체 인식을 어떻게 하느냐에 대한 방법이 아니라 어떻게 하면은 Cross modality 한 값들을 3D 객체 인식을 사용할 때 효과적으로 사용할 수 있는지에 대한 framework를 제시하고 있습니다.

 

LiDAR를 이용하다 얻은 Point cloud data와 카메라에서 얻은 rgb Data를 어떻게 블렌딩 하면 효과적인지 그 방법을 제시하고 있습니다. 결과적으로 Voxel fieldaugmented 된 이미지 featureray 형식으로 나타내서 서로 다른 양식의 Data를 사용해도 일관성을 유지하도록 하는 것이 이 논문에서 제시하는 framework의 목적입니다.

저자는 두 가지 modality로 이미지와 point Data를 선택을 했고 효과적으로 융합하는 방식으로 Voxel field fusion(VFF)라는 새로운 framework를 제시했습니다. 기존의 point to point 방식 같은 경우는 싱글 point에 대해서 fusion을 수행했고 point cloudsparsity대한 제한이 있었습니다. 이미지가 갖고 있는 풍부한 context cues를 잘 활용할 일이 없어서 한계점이 존재하였습니다. 저자는 row 이미지를 변화시키지 않고 point cloudpairwise correspondence 하도록 reverse 트랜스포메이션을 제시를 했습니다.

저자가 제시한 VFF는 3가지의 큰 point가 있습니다.

첫 번째로는 Mixed augmentor 두 번째는 Learnable sampler 세 번째로 Ray wise fusion입니다.

 

Mixed augmentor 같은 경우는 LiDAR Data와 이미지 Datamodality가 달라도 Data augmentation이 가능하도록 align을 시키는 방법을 제시하고 있습니다.

 

Learnable sampler 같은 경우는 이 두 가지 modality에서 나온 feature들의 interaction이 효과적으로 key feature을 선택할 수 있도록 하는 것이 Learnable sampler 목적입니다.

 

마지막으로 Ray wise fusion 같은 경우는 한 ray를 따라 있는 가운데 있는 Voxel field fusion이라는 박스를 보시면 알 수 있듯이 하나의 ray를 따라서 있는 featurefuse 하고 combine 하는 방식을 제시하고 있습니다.

첫 번째로 Mixed augmentor는 이미지와 Point cloud data가 주어지면 이들을 correspondence 하게 만드는 단계입니다. 저자는 sample added 방법과 sample static방법을 사용했는데 sample addedscene 안에 sample을 증가시키는 방법으로 GroundTruth를 기반으로 한 sampling 방법입니다.

 

3차원 객체의 2D 이미지를 잘라서 실제 오더에 맡게 붙이는 방법으로 왼쪽 아래 그림을 보시면 자전거와 차가 있는데 두 개가 합쳐서 어디가 됐을 때 자전거가 차 뒤에 있도록 수정해서 sample을 추가하는 방법입니다.

 

sample static 같은 경우는 새로운 sample을 추가하지 않고 Flip이나 Rescaletransformation 2D conv을 사용하고서 이들이 2D Convolution에 영향을 주도록 image level operation을 사용했습니다.

다음으로는 Voxel fieldConstruction에 대한 내용입니다. Voxel bin과 이미지 Pixel을 각각 vi와 pi로 나타냈고 VoxelPixelcorrespondence는 오른쪽 그림에서 보셨듯이 Voxel field에서 나타나게 됩니다.

 

Voxel bin vVoxel field라 불리는 함수 F으로 나타낼 수 있고 이미지 point Pi로부터 Voxel space로 향하는 ray Ri로 보실 수 있습니다. 이 또한 아래에 수식으로 표현할 수 있습니다. 이 수식이 의미하는 것은 pi로부터 투영된 모든 Voxel들 vj는

i번째 ray의 셋인 Ri로 표현할 수 있다는 것을 나타내고 있습니다.

 

이때 ray R은 W x h개인데 이 모두 ray에 대해서 계산을 수행한다면 sample point 수에 따라 엄청나게 큰 증가폭을 가진 computational cost를 초래할 수 있기 때문에 저자는 learnable sample방식을 소개를 했습니다.

learnable sampler는 앞서 말씀드렸듯이 computational burden을 줄이기 위해 제시했으며 기존의 방법과 달리 중요도에 따라 sampling 하는 방식을 제시했습니다. 왼쪽 그림에서 빨간색 박스로 표시된 ray가 투영됐을 때를 나타냅니다.

오른쪽 그림의 P는 sample들 Pixel의 세트를 의미하면서 저자는 기존 세 가지 방법과 저자가 제시한 방법을 비교하면서 설명하였습니다.

 

기존 sampling 방법에는 heuristic 방법을 사용했습니다. uniformity, density, sparsity 다른 방법이 있는데 이런 방법은 그림에서 물체의 위에 부분에 있는 점에서 알 수 있듯이 불필요한 점을 포함하기 때문에 computational cost를 최대한으로 줄일 수 없습니다. 그래서 저자는 learnable sample F를 제시했습니다.

이 때는 augment 이미지가 Voxel field에 fusion 하는 빨간색 평면에 투영 됐을 때 이 물체가 해당하는 높은 response를 갖는 중요한 sub region만을 갖는 방법을 제시했습니다.

 

sampling 방법에 대한 수식은 아래 나와 있으며 이때 stacked convolutions sigmoid activation, uniform sampler을 뜻합니다. 이때 indicator 1Pixel Piactivation response가 0.5를 넘으면 1이 되도록 설정했습니다. sampling Pixel p^은 전체 sampling Pixel p 중에서 S를 거쳐 나온 결과만을 의미합니다.

 

저자는 오른쪽 그림의 (a)처럼 sample들과  uniformity에 대한 모든 점을 수식에 입력을 해서 반응이 1 이상이 되는 점만 sampling 방식을 제시했습니다.

learnable sampler를 통해서 여러 개의 ray 중에 n개의 ray만을 선택했다면 다음으로는 선택된 한 개의 ray를 위해서 어느 점을 선택할지에 대해서 서술했습니다.

 

왼쪽 아래 그림을 보시면 이번에 프로젝트된 ray Ri에서 선택하는 방법에 대해 얘기를 하고 있습니다.

 

오른쪽 그림에 빨간 점은 LiDAR point들을 나타내고 있습니다. 초록점들은 ray Ri에 위치한 Voxel bin들 중 반지름 r이 원 안에 있는 점 vj 들로 나타냅니다. 오른쪽 그림에 있는 간단한 훈련방법인 single fusion에 대해 나타나고 있고 이는 주방 3D context에 대한 값이 고려하지 않고 LiDAR 센서 값만을 사용하는 방법입니다. 이후로 Co fusion방법이 나타났고 이는 인지장력을 반지름 r을 space V로 확장시킨 방법입니다. 이때 반지름 r의 영역은 Gaussian ball을 사용하여서 영역을 설정하였습니다.

 

local fusion은 그림의 (b)와 (c)와 같이 aggregation 방법과 propagation 방법을 나타나는데 간단하게 Voxel b는 모이느냐 아니면 퍼트리냐에 방식의 차이가 있습니다. 이때는 가중치 오메가를 사용하여 값을 획득하였습니다.

 

저자가 제시한 Ray wise fusion 방법은 local fusion 방식에서 착안한 방법이지만 트레이닝 단계에서 label assign 하기 직전에만 수행된다는 차이점이 있습니다. Voxel bin vj 가 해당될 확률 오메가 j는 아래 수식으로 계산될 수 있으며 델타는 sigmoid activation, F Voxel feature를 나타냅니다.  오메가 j는 Voxel bin vj가 위치하는 이미지 feature F에 대한 response를 볼 수 있고  하나의 Ri에서 깊이를 추정하는 회귀 문제에 대한 답으로도 볼 수 있습니다.

 

마지막으로 생성된 Voxel vj에 대한 feature인 F^은 아래와 같은 수식으로 얻을 수 있으며 이는 향후 소스할 rv RCNN

Voxel RCNN, centetpoint 등 다양한 Voxel 기반 3D detection backboneinstance 할 수 있는 장점을 가집니다.

앞서 말씀드렸듯이 3D detection에 대한 방법이 아니라 그 방법을 3D 하기 위해 어떻게 하면 feature들을 잘 넣을 수 있는지 framework를 제시한 논문입니다. 저자가 제시한 framework 효율을 확인하기 위해서 실험을 수행했고 KITTI DatasetnuScenes Dataset을 사용했습니다.

 

두 개 Dataset 모두 자율주행 분야에서 널리 쓰이는 Dataset입니다. KITTI Dataset 같은 경우는 synced LiDAR Data

camera images를 갖고 있고, nuScenes Datalarge scale bencmark에 주로 사용되는 Dataset으로 10 object categories, 32 beam LiDAR 360도 카메라 여섯 개를 활용해서 큰 영향을 Data를 갖고 있습니다.

또한 저자가 제시한 framework를 사용할 backbone으로는 PV-RCNN, Voxel R-CNNm, Centerpoint를 사용했습니다.

PV R-CNNVoxel R-CNNKITTI Dataset을 Centerpoint backbone에는 nuScene Dataset을 활용했습니다.

 

backbone의 특징점을 간략히 말씀을 드리자면 PV R-CNN 같은 경우는 grid 방식과 point 방식을 결합해서 예전에 나왔던 backbone 대비 큰 성능 향상을 이룬 backbone입니다. 2 스테이지 구조로 되어 있으며 box proposal을 한 후 로컬라이징 하는 것이 특징입니다.

 

두 번째로 Voxel RCNN 같은 경우는 Voxelfeature를 최대한 활용하도록 설계된 backbone으로서 coarsepoint cloud Data를 그대로 사용하도록 제시된 backbone입니다. 3D backbone 네트워크 2D BEV, RPN, Detection head로 구성되어 있습니다.

 

마지막으로 Centetpointfeature extraction extractionpoint cloud Data만 이용해서 수행하고

이 물체 Centetpoint2D CNN을 이용해서 탐지하는 구조를 갖고 있습니다.

먼저 KITTI Dataset을 이용한 결과입니다. 먼저 왼쪽에 validation set에 대한 결과를 보시면 저자가 제시한 Voxel field fusion 방식을 추가한 결과가 다른 디텍션 결과에 비해 비해 성능이 향상된 것을 볼 수 있습니다. 오른쪽 테스트 셋에 대한

결과에서도 Voxel R-CNNVFF을 추가한 경우 81.62에서 82.09%로 향상됨을 확인할 수 있었습니다.

Large scale 벤치마크에 주로 사용되는 nuScene Dataset에 테스트 셋에 대한 결과입니다.

앞서 말씀드렸듯이 nuScene DatasetCenterpoint backbone에 대해서 성능 비교를 수행했고, 기존 LiDAR base 센터 point 결과 대비 mAP값이 약 8.1 정도 향상되는 것을 확인할 수 있었습니다.

 

이로 인해서 저자가 제시한 Dataset에 대해서는 저자가 제시한 framework를 적용했을 때 성능이 더 좋게 나타났다는 결과를 얻을 수 있습니다.

다음으로는 저자가 제시한 framework 단계별 가정에 대한 스터디입니다. 먼저 Mixed augmentor의 효과를 확인했습니다. 이를 확인하는 이유는 이 논문에서 제시하는 framework의 목적이 Cross modality consistency를 유지하는 것이기 때문입니다.

 

먼저 Aligned Augmentation image level transformationfeature variant augmentation에 효과적임을 알 수 있었습니다.

그다음으로 저자가 적용한 sample added 방법과 sample static 방법에 대한 성능을 비교하였는데 결과적으로 두 가지 방법 다 성능향상이 있었으나 저자가 말하기는 sample static 방법에서 성능향상 폭은 sample added 방법에 대해 향상 폭이 유의미하지 않다고 말했습니다.

 

결론적으로 저자는 sample added 방식만을 사용해도 충분히 성능 향상을 기대할 수 있다고 서술하였습니다.

다음은 Learnable sampler에 대한 효과에 대해 비교했습니다. 저자가 제시하는 importance에 따른 sampling 방법이

기존에는 Heuristic 한 방법인 Uniformity, Sparsity, Density 방법 대비 효과가 있음을 보였습니다.

마지막으로는 ray wise interaction에 대한 평가 검증입니다. 싱글 방법과 local 방법 대비 약 82.53이라는 성능 향상을 보였습니다. 이것 또한 저자는 이때 로컬 방식에서 착안한 것처럼 gaussian ball을 사용했는데 gaussian ball의 반지름이 얼마일 때 가장 효과적인지에 대해서도 스터디를 진행했습니다.

 

그 결과 반지름이 1일 경우가 가장 성능이 좋음을 확인하였습니다.

댓글