본문 바로가기

논문 리뷰

Point Transformer v1 리뷰

Zhao, Hengshuang, et al. "Point transformer." Proceedings of the IEEE/CVF international conference on computer vision. 2021.

 

Abstract우리는 자연어 처리에서 깊은 인상을 남긴 Self-attention network에서 감명을 받아 이를 3D point cloud processing에 적용하고자 한다. Point Transformer은 다양한 domain, task에 접목 가능하도록 디자인되었고, semantic scene segmentation, object part segmentation, object classification에 사용이 가능하도록 설계되었다.

 

Point Transformer에 대한 설명을 하기 전 Vanilla Transformer 과 self-attention를 먼저 되짚고자 한다.

 

먼저 self-attention은 1. scalar attention, 2. vector attention 으로 나뉜다.

1. scalar attention

scalar attention 은 (1) 와 같이 표현하며 각 기호는 다음과 같다.

\(x_i\) : feature vectors

\(y_i\) : output vectors

\(\varphi, \psi, \alpha\) : pointwise연산 (linear projections of MLPs)

\(\delta\) : position encoding

\(\rho\) : normalization (softmax)

 

2. vector attention

vector attention 은 (2) 와 같이 표현하며 (1)과 다른 기호들은

\(\beta\) : relation function (subtraction)

\(\gamma\) : mapping (MLP)

 

 

Point Transformer Layer

Point transformer layer based on vector attention

여기서 \(x_i\)는 주변 포인트의 집합이라고 하는데 (k nearest neighbor으로 3d point cloud의 한 점에 대한 주변 데이터들의 집합으로 생각됨), 이를 간단하게 시각화 하면 다음과 같다. 각각의 linear, mlp, linear를 트랜스포머의 쿼리, 키, 밸류 연산으로 보면 되려나.. ?

Position Encoding

비전이나 자연어처리에선 사인, 코사인을 이용하여 위치 임베딩을 하는데, 3d point는 각각의 좌표가 위치를 암시하기 때문에 (4)와 같이 각 좌표값을 뺀 후 MLP 연산(\(\theta\))을 적용하였다.

position encoding

Point Transformer Block

 

트랜스포머의 어텐션만 있는 아키텍처와 마찬가지로 point transformer와 mlp 연산이 반복되는 형태의 구조로 되어있다. 근데 조금 다른 점은 3d point cloud 라는점에서 인접한 포인트와의 관계 연산을 극대화 하기 위해서 farthest point sampling, knn, local max pooling 등이 사용되었으며 비전에서 흔히 사용되는 convolution layer는 단 1개도 사용되지 않았다.

 

또한 각 블록에서 다운 샘플링은 [1, 4, 4, 4, 4] 의 비율로 축소가 일어났으며 이는 모델의 경량화, 처리 속도와 같은 목적에 따라 달라질 수 있다. farthest point sampling 이후 k=16 의 kNN을 사용하였고 transition up 단계에서는 trilinear interpolation을 사용하여 업샘플링 하였다.

 

Implementation details

optimizer : SGD(momentum=0.9, weight_decay=0.0001)

semantic segmentation(S3DIS dataset) in epoch 40k.. ? 4만에포크 동안 훈련했다고 한다

3d classification(ModelNet40), 3d object part segmentation(ShapeNetPart)은 200 에폭 훈련시킴

 

결과는 논문 참고.

 

Ablation study

kNN의 k를 다르게 한 결과

 

 

position encoding을 다르게 한 결과