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 으로 나뉜다.
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)
vector attention 은 (2) 와 같이 표현하며 (1)과 다른 기호들은
\(\beta\) : relation function (subtraction)
\(\gamma\) : mapping (MLP)
Point Transformer Layer
여기서 \(x_i\)는 주변 포인트의 집합이라고 하는데 (k nearest neighbor으로 3d point cloud의 한 점에 대한 주변 데이터들의 집합으로 생각됨), 이를 간단하게 시각화 하면 다음과 같다. 각각의 linear, mlp, linear를 트랜스포머의 쿼리, 키, 밸류 연산으로 보면 되려나.. ?
Position Encoding
비전이나 자연어처리에선 사인, 코사인을 이용하여 위치 임베딩을 하는데, 3d point는 각각의 좌표가 위치를 암시하기 때문에 (4)와 같이 각 좌표값을 뺀 후 MLP 연산(\(\theta\))을 적용하였다.
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을 다르게 한 결과
'논문 리뷰' 카테고리의 다른 글
Point Transformer V3 : Simpler, Faster, Stronger (0) | 2024.04.03 |
---|---|
Point Transformer V2: Grouped Vector Attention and Partition-based Pooling (0) | 2024.04.03 |
YOLOP 논문 요약 - 2021 (0) | 2022.09.26 |
Faster R-CNN 논문 번역/리뷰 - 2016 (0) | 2022.08.16 |
GAN (Generative Adversarial Nets) 생성적 적대 신경망 논문 리뷰/번역 - 2014 (0) | 2022.03.24 |