나의 정리
- 논문이 지적한 문제점
Point cloud를 Bird’s Eyes View, Point View, Range View로 detection이 가능하지만 BEV 같은 경우 quantization error를 가지고 있고 Point View는 neighbor point를 찾기 위해 많은 시간이 걸려 large scale point cloud에선 cost가 너무 많이 든다는 단점이 있습니다. 따라서 compact 하고 quantization error가 없는 Range View로 detection을 진행합니다. 또한 기존의 Range View based detector의 경우 RV의 특성에 대한 고려를 하지 않아 성능 차이가 많이 났습니다. - 해결 방안
Range View 특성을 고려한 model을 제안하였습니다.
Scale Variance의 문제를 Range 범위를 나누어 해당 범위 영역 내에서 detection을 진행하는 Range Conditioned Pyramid를 제안합니다. 기존 2D convolution을 사용하면 3D geometry 정보를 잃게 되는데 Cartesian 좌표의 상대 좌표로 dynamic weight를 사용하는 Meta-Kernel을 제안합니다. 3D space에선 sparse 하지만 Range Image의 경우 Compact 하다는 장점이 있는데 이 장점을 살리기 위해 Weighted Non-Maximum Suppression을 제안합니다.
Abstract
point cloud data를 사용할 때 Bird’s Eyes View (BEV), Point View (PV), Range View (RV) 등의 방법들이 존재합니다.
다른 View와 비교하여 Range View로 사용하였을 때의 장점은 3D space에서 point cloud는 sparse 하지만 Range View는 image 형태이기 때문에 좀 더 compact 한 장점이 있습니다. 또한 어떠한 좌표로 옮기면서 발생할 수 있는 quantization error가 없다는 장점도 있습니다.
하지만 이러한 장점에도 불구하고 지금까지 나온 RV-based detector의 경우에 BEV나 PV based detector와 비교하여 낮은 성능을 가지고 있었습니다.
이유에 대해서 저자는 RV에 대한 특성을 고려하지 않고 사용해왔기 때문에 성능 차이가 존재했다고 설명하면서 세 가지 key idea를 제시합니다.
- 기존 image에서도 다루었던 문제인 scale variation 문제가 range image에서도 똑같이 발생합니다. 물체의 크기는 하나로 고정이 되어 있지만 가깝거나 멀리 가게 되면 image 상에서의 크기가 변하는 문제가 있습니다.
→ Range 별로 구간을 나누어 해당 Range의 object만 assign 하여 detection을 진행하는 Range Conditioned Pyramid를 제안합니다. - Range View는 image 형태이기 때문에 2D convolution을 적용하는데 기존의 2D convolution을 사용하게 되면 3D geometry 정보가 손실 된다고 주장합니다.
→ 상대 좌표를 통해 얻은 dynamic weight로 2D convolution을 진행하는 Meta-Kernel을 제안합니다. - 앞서 설명한 장점인 2D Range View는 더 compact 하다는 장점이 있는데 이 장점을 잘 살려야 합니다.
→ compact하기 때문에 많은 proposal이 나오게 되는데 모든 proposal을 고려하여 NMS를 진행하는 Weighted Non-Maximum Suppression을 제안합니다.
Introduction
BEV 같은 경우 최근에 좋은 성능을 가져 많이 사용되는 방식입니다. 하지만 voxel이나 pillar로 voxelization을 할 때 생기는 quantization error가 발생한다는 단점이 존재합니다.
PV는 quantization error를 없애기 위해서 특별한 voxelization을 진행하지 않고 point를 그대로 사용하는 방식입니다. Point cloud의 크기가 커지게 된다면 data를 처리하는데 너무 많은 cost가 든다는 단점이 존재합니다.
Range View는 2.5D (2D box에 depth가 추가된 형태)로 표현이 되고 compact 하고 quantization error가 발생하지 않습니다.
또한 PV에서는 unordered point cloud를 사용하기 위해서 ball query를 사용해서 neighbor point를 구하는데 너무 많은 시간이 쓰이게 되는데 Range View의 경우엔 image coordinate으로 표현이 가능하기 때문에 쉽고 빠르게 neighbor를 구할 수 있습니다.
Method
Review of Range View Representation
한 번의 scan cycle에서 m 채널 LiDAR가 m개의 beam을 n번 측정을 하여서 m * n의 matrix가 생성이 됩니다. 하나의 pixel은 세 가지 geometric 값 range r, azimuth $\theta$, inclination $\phi$ 을 가집니다.
또한 spherical coordinate를 catesian coordinate로 변환하기 위해선 아래의 공식을 사용하면 됩니다.
Overall Architecture
RangeDet의 전체적인 구조입니다.
Range Conditioned Pyramid
Range View는 image 형식으로 표현이 되기 때문에 scale variance의 문제를 가지고 있습니다. 이 문제를 해결하기 위해서 Range Conditioned Pyramid를 제안합니다.
먼저 0~80m의 range를 세 개의 범위로 나눕니다. [0, 15m), [15, 30m), [30, 80m]
각 level에서 해당하는 range만을 assign 받아서 object detection을 진행합니다. 이렇게 하면 해당 범위의 range에서는 어느 정도 거리에 따른 scale의 특성이 비슷한 object들을 detection 할 수 있습니다. 이를 통해 먼 range의 object 혹은 small object에 대한 detection 성능을 개선할 수 있었습니다.
Meta-Kernel Convolution
기존의 2D convolution의 경우 4가지 step을 거쳐서 진행되었습니다.
- Feature Sampling
- Weight acquisition
- Mulitiplication
- Aggregation
Meta-Kernel Convolution은 2~4번 과정을 살짝 바꾸었습니다.
먼저 기존의 feature sampling과 같이 해당하는 feature를 가져옵니다.
그다음 sampling 한 feature의 point 좌표와 feature map 중앙의 point 좌표의 상대 좌표 값을 MLP를 통과시켜 dynamic weight로 사용하였습니다.
weight와 feature를 곱해줄 때 기존엔 vector 곱을 사용하였지만 element-wise product를 사용하여 연산량을 줄였다고 합니다.
weight와 feature를 곱한 값들을 모두 concat 하여 1x1 convolution을 통하여 최종적인 output feature를 생성합니다.
point의 catesian coordinate의 상대 좌표를 사용하여 weight를 구했기 때문에 3D geometry 정보 손실을 줄일 수 있다고 논문에서 설명합니다.
Weighted Non-Maximum Suppression
Range View의 compact 한 장점을 살리기 위해 제시한 방법입니다.
기존의 NMS의 경우 하나의 가장 좋은 proposal을 선택하고 나머지 겹치는 proposal들을 제거하는 방식이기 때문에 많은 proposal이 나오게 되면 연산량만 많아지고 많은 proposal을 활요하는 방법이 아니었습니다.
따라서 많은 proposal을 활용하여 최종 bbox를 만드는 방식을 제안하였습니다.
$b_0$: top-rank proposal, $b_k$: other proposal, $s_k$: corresponding scores, t: threshold, $\hat{b}_0$: weighted average of proposals
위의 식으로 WNMS가 진행되는데 간단히 설명하면 제일 잘 나온 proposal을 하나 구한 뒤 다른 모든 proposal과 IoU를 구하여 일정 threshold를 넘으면 해당 proposal을 score 값과 곱하여 proposal을 구하는 데 사용을 합니다.
이를 통하여 얻어진 proposal의 경우엔 얻어진 proposal 중 IoU가 threshold를 넘은 proposal들의 평균값이 되게 됩니다.
Data Augmentation in Range View
기존의 Point-based에서 사용되던 Augmentation을 바로 사용하지 못하기 때문에 Range View에서 사용할 수 있게 바꿔서 사용하였습니다.
- Rotation → azimuth direction translation
- Flipping → Vertical axe flip
- Copy-Paste → new range image에 paste 하기
이러한 Augmentation을 진행할 때 “range test”를 사용하여 augmentation 하려는 곳에 다른 object와 겹치거나 하는 그런 충돌 방지를 하였다고 합니다.
Experiments
기존의 BEV, PV based detector들과 성능 비교 table입니다.
Vehicle의 경우 BEV based detector가 더 좋은 성능을 내지만 더 작은 small object인 Pedestrian의 성능에서는 훨씬 높은 성능을 낸 것을 볼 수 있습니다.
기존의 RV based detector와 비교하면 월등한 성능 gain을 얻었습니다.