본문 바로가기

논문 리뷰(Paper Review)

Spherical Transformer for LiDAR-based 3D Recognition

0.요약

- 공간을 겹치지 않고 좁고 긴 여러 개의 공간으로 분할하는 방사형(Radial) self-attention을 디자인하였다.

- 이런 디자인은 끊김 문제를 극복하고, Receptive Field를 부드럽고 극적으로 확대하여 Sparse한 원거리 지점의 성능을 향상 시켰다

==> Sparse 한 원거리 지점에서는 성능이 비교적 떨어지나 보다

- 또한, 좁고 긴 창(Window)에 맞게 위치 인코딩을 생성하는 지수 분할과 모델 표현 능력을 높이기 위한 '동적 특징 선택'을  제안한다

==> 주요 특징: exponential splitting for relative position encoding & dynamic feature selection

- nuScene과 semanticKITTI에서 81.9% and 74.8% mIoU

- nuScenes object detection benchmark with 72.8% NDS and 68.5% mAP.

 

 

1. 서론

- 먼지점의 경우 이웃 점이 거의 없고, 정보가 끊어져 있어 Receptive Field의 확장을 방해한다.

- 이에 관해 실험한 것이 있다.

- 아래 그림에 따르면, 멀리 있는 차량(노란색 별)의 경우 SparseConv은 수용영역을 확대하지 못했다. 하지만, 본 논문의 방법을 수용영역을 확대하였다.

 

- 제한된 수용 영역 문제를 해결하기 위해 Window self-attention [22, 30], Dilated selfattention [42] 및 대규모 커널 CNN [10]이 제안되었지만 이러한 방법은 LiDAR 포인트를 타겟으로 한건 아니며, 로컬 연산자를 쌓아서 수용 필드를 확장한 방법으로 정보 단절 문제를 아직 해결한 것은 아니다.

 

-  본 논문에서는 센서를 원점으로 하는 구면 좌표(r, θ, ϕ)를 사용하여 3D 공간을 표현하고 장면을 겹치지 않는 여러 창으로 분할한다.

 

- 또한, 밀집한 포인트 영역에서 정보를 집계하기 위해(?) 희소 원거리 지점을 용이하게 한다(?). 따라서 그림 1과 같이 원거리 지점의 성능이 크게 향상될 수 있다(?)(예: +17.1% mIoU).

--> 무슨 말인지 모르겠다. 원거리 희소 지점의 정보를 잘 aggregate 한다는 말로 이해 하였다.

 

- 우리 모듈을 플러그인 처럼 다른 백본에 연결하여 사용할 수 있는 장점이 있다. 

 

 

2. 관련 작업

- VoxelNet은 Voxel 특징을 PointNet으로 추출하여, Proposal을 얻기 위해 RPN을 적용하였다.

- SECOND는 가속가능한 Sparse Conv로 인해 효율적인 연산을 수행하였다.

 

 

3. 본 논문 방법

3.1. Spherical Transformer

- 'Stratified Transformer', 'Voxel transformer for 3d object detection' 에서 사용한 Cubic Window Attention과 다르게

- Swin Transformer와 같이 그냥 Window-Attention을 사용하였다.

 

- 토큰 표현을 위한 윈도우 인덱스를 아래 수식으로 표현한다. multi-head self-attention은 각 윈도우에서 독립적으로 수행된다.

 

Radial Window Partition

본 논문에서는 포인트 클라우드를 (r, θ, ϕ) 좌표계로 나타낸다. Fig3에서 얻어지는 각 토큰$ (r_i, θ_i, ϕ_i) $은 아래와 같이 표현된다. 

윈도우 인덱스

멀티 헤드 어텐션은 각 윈도우에 대해 아래와 같이 독립적으로 수행된다.

f : (n x c)

W: (c x c)

q : (n x c)

(자세한 수식은 논문 참조...)

- 투영되는 특징 q, k, v를 head로 나눈다. 즉, $ R^{n×(h×d))} $ 모양으로 나누고, $ q, k, v ∈ R^{h×n×d} $ 모양으로 다시 만든다.

- 각 head에 대해 Dot Product와 가중치 합을 아래와 같이 수행한다.

마지막으로 모든 head로 부터 합쳐진 특징들은 W_proj와 곱해서 선형 프로젝션을 수행한다.

 

 

Cylinder3D와의 차이점

- 첫번째, 본 논문 목표는 수용 영역를 확대하고, 희박한 원거리 지점이 밀집 지점 영역에서 장거리 정보(long-range)를 직접 집계할 수 있도록 하는 것입니다 (무슨 말인지??) Cylinder3D는 포인트 분포를 복셀에 더 균형있게 하려고 했고, 본 논문은 수용영역을 더 늘리는 시도를 하였다.

- 두번째, 본 논문은 단일 연산(Self-Attention)으로 이웃을 찾고, 지역 이웃에 한계가 없다. 

 

3.2. Position Encoding

Stratified Transformer는 문맥적 상대적인 포지셔닝 인코딩을 개발하였다. 즉, 상대 위치를 여러 개별 부분으로 균일하게 분할하여 연속 상대 위치를 정수로 변환하여 위치 임베딩 테이블을 인덱싱하였다.

하지만, 해당 방법은 Fig4에 보듯 key1, key2가 동일한 인덱스를 가질 수 있는 문제가 있다.

 

Exponential Splitting

간격을 지수적으로 증가 시킨다. 이렇게 함으로써 쿼리의 초반 간격은 매우 조밀하다.

지수 간격 분할은 r에만 적용하고, θ, ϕ에는 적용하지 않는다.

위에서 구한 $ (idx^r_{ij}, idx^θ_{ij}, idx^ϕ_{ij}) $는 포지셔닝 임베딩 테이블을 인덱싱하기 위해 사용된다. 따라서, 적절한 포지셔닝 인코딩 값을 찾는다.

위에서 나온 수식 Eq3는 아래와 같이 수정된다.

 

3.3. Dynamic Feature Selection

 

그림 6에서 볼 수 있듯이 각 토큰에 대해 방사형 상황 정보뿐만 아니라 로컬 이웃 통신(?)도 통합한다.

입력 특징은 q, k, v에 투영된다. 그 다음, Head의 절반은 방사형 윈도우 셀프-어탠션에 사용되고, 나머지 절반은 큐빅 윈도우 셀프 어탠션에 사용된다. 다음 두개의 특징은 붙여져서 출력 z에 투영된다. 아래는 최종식이다.

 

 

반응형