본문 바로가기

논문 리뷰

Point Transformer V3 : Simpler, Faster, Stronger

Wu, Xiaoyang, Li Jiang, Peng-Shuai Wang, Zhijian Liu, Xihui Liu, Yu Qiao, Wanli Ouyang, Tong He, and Hengshuang Zhao. "Point transformer v3: Simpler, faster, stronger." arXiv preprint arXiv:2312.10035 (2023). 

 

Point Transformer v1,v2 에 이은 v3가 발표되었다. 24.04.03 날짜의 paperswithcode 사이트 기준 대부분의 Task에서 상위권에 분포하고 있다.

 

Abstract

v3에서는 새로운 어텐션을 소개하기 보단 v2에 대한 효율성을 증가시켰다. n=16의 kNN을 대체하여 n=1024의 neighbor mapping과 동시에 v2에 비해 3배 빠르고 10배의 메모리 효율성을 보여준다.

 

Point Cloud Serialization

간편성과 효율성의 변화를 위해 unstructured 한 point cloud를 structured하게 변화시키는 serialization을 소개한다.

Space-filling curves는 공간 내의 모든 점을 지나며 공간적 근접성? 을 보존하는 함수이다.

두개의 대표적인 함수 Z-order, Hilbert가 있는데 전통적인 방법은 x,y,z가 존재하는 3차 공간에서 순차적으로 점을 이동하지만 우리는 trans- 라는 이름을 붙인 특정 축에 우선순위를 부여한 방법을 사용했다.

(기존 : x->y->z, trans : y->z->x or y->x->z or x->z->y 등등)

아래 그림을 살펴보면

Z-order (a)은 가장 첫 점을 시작으로 x->x->y->x->y->y->x->x... 순이지만 

Trans Z-order (c) 는 첫점을 시작으로 x->y->y->x->x->y->y->y->.... 으로 y축으로 올라가는 화살표가 우선순위에 있다.

Trans 방법을 통해 전통적인 시각에서 무시될 수 있던 특별한 지역적 관계를 잠재적으로 포착할 수 있다고 한다.

Figure 3 Point cloud serialization

 

또한 Trans- 방법의 serizlization을 위해 새로운 encoding 방법을 제시한다. point 좌표에 대해 순서에 따른 64bit-integer로 encoding한다. 식은 다음과 같다. 다음식에 의해 point를 정렬하면 위 그림과 같은 형태로 점들이 직렬적으로 정렬된다고 한다.

<< : left bit-shift

| : bitwise OR

 

Serialized Attention

v1, v2에서는 공간적인 정보를 획득하기위해 neighborhood-attention 적용하였지만 우리는 다시 window 기반의 dot-product attention을 채택하였다. kNN과 같은 메커니즘에 비해 일시적인 성능 저하가 있지만 serialized된 새로운 체계에서 효과적으로 작용할 것이다. patch attention은 patch grouping, patch interaction 단계로 구분된다.

 

Patch Grouping은 serialized된 코드를 따라 정렬된 point data를 다시 패치단위의 그룹으로 복구시킨다. 이는 neighbor search 정확도의 손실이 발생하지만 효율성과 확장성의 측면에서 trade-off가 이득이다.

 

Patch interaction은 Fig4 (b)의 각 패치들에대한 patch attention을 적용한다.

본 논문에서 실험한 interaction의 종류는 다음 그림과 같고 우리는 Shuffle Order* 방법을 제안한다.

 

Positional encoding으로는 sparse convolution + skip connection 을 결합한 conditional positional encoding을 채택했다.

 

Result

일단 자신들의 v2 모델과 MinkUNet에 대한 모델의 효율성 측면에서 비교를 하였다.

MinkUnet과 메모리는 비슷하지만 trainig/inference latency에서 확연한 차이가 돋보이고 v2와는 메모리에서 압도적으로 효율성을 향상시켰다.

 

 

S.D, S.P 역시 좋은 성능을 보였지만 낮은 latency를 보였고 Shuffle Order가 가장 효율/효과적이였다. 또한 4 패턴을 모두 조합하였을 경우 가장 좋은 성능을 보였다. combination이라고 표현하였는데 implementation detail은 정확히 모르겠다. (단순히 64bit-integer 값들을 모두 더했다는건지 ? 아니면 augmentation기법과 같이 훈련 중 serialization encoding을 랜덤하게 섞었다는건지 ?)

 

이외에 모델의 정확도 / mIOU를 다른 모델들과 비교한 성능 지표는 논문에서 상세하게 확인할 수 있다.