카테고리 없음

PCT: Point Cloud Transformer

이든파이 2024. 3. 3. 19:08

abstract

이 논문은 포인트 클라우드 처리를 위한 새로운 프레임워크인 포인트 클라우드 트랜스포머(Point Cloud Transformer, PCT)를 제시합니다. 포인트 클라우드는 불규칙한 도메인과 순서의 부재로 인해 딥 뉴럴 네트워크 설계에 있어 도전적인 작업입니다. PCT는 자연어 처리에서 큰 성공을 거둔 트랜스포머를 기반으로 하며, 이미지 처리에서도 큰 잠재력을 보여줍니다. 특히, 포인트 시퀀스를 처리할 때 순열 불변성(permutation invariance)을 가지고 있어 포인트 클라우드 학습에 적합합니다. 포인트 클라우드 내의 지역적 맥락을 더 잘 포착하기 위해, 우리는 입력 임베딩을 가장 먼 포인트 샘플링(farthest point sampling)과 가장 가까운 이웃 탐색(nearest neighbor search)을 지원하여 강화했습니다. 다양한 실험을 통해 PCT가 형태 분류, 부분 분할, 의미 분할 및 정상 추정 작업에서 최신 기술의 성능을 달성함을 입증합니다.

conclusion

이 논문에서는 불규칙한 도메인을 가진 비구조화된 포인트 클라우드에서 학습하기에 적합한 순열 불변성 포인트 클라우드 트랜스포머를 제안합니다. 제안된 오프셋 주의(Offset-Attention)와 정규화 메커니즘은 우리의 PCT가 효과적이게 만드는 데 도움을 줍니다. 실험 결과 PCT는 우수한 의미론적 특성 학습 능력을 가지고 있으며, 특히 형태 분류, 부분 분할, 정상 추정 등의 여러 작업에서 최신 기술의 성능을 달성합니다. 트랜스포머는 이미 대규모 훈련 데이터를 바탕으로 강력한 능력을 드러냈습니다. 현재 사용 가능한 포인트 클라우드 데이터셋은 이미지에 비해 매우 제한적입니다. 미래에는 더 큰 데이터셋에서 훈련을 진행하고, 다른 인기 있는 프레임워크와 비교하여 그 장단점을 연구할 것입니다. 또한, 트랜스포머의 인코더-디코더 구조는 포인트 클라우드 생성 및 완성과 같은 더 복잡한 작업을 지원합니다. 우리는 PCT를 더 많은 응용 분야로 확장할 것입니다.

3.1. Point Cloud Processing with PCT

Encoder

더보기

PCT의 전체 아키텍처는 그림 2에 제시되어 있습니다. PCT의 목적은 입력 포인트를 새로운 더 높은 차원의 특징 공간으로 변환(인코딩)하는 것으로, 이는 다양한 포인트 클라우드 처리 작업을 위한 기초로서 포인트 간의 의미적 연관성을 특징짓는 데 사용될 수 있습니다. PCT의 인코더는 입력 좌표를 새로운 특징 공간으로 임베딩하는 것으로 시작합니다. 임베딩된 특징들은 나중에 4개의 스택된 어텐션 모듈에 공급되어 각 포인트에 대한 의미론적으로 풍부하고 구별 가능한 표현을 학습하고, 이어서 선형 레이어를 거쳐 출력 특징을 생성합니다. 전반적으로, PCT의 인코더는 원래 트랜스포머의 설계 철학을 거의 그대로 공유하지만, 포인트의 좌표가 이미 이 정보를 포함하고 있기 때문에 위치 임베딩은 생략됩니다. 원래 NLP 트랜스포머의 세부 사항은 [26]을 참조하시기 바랍니다.

공식적으로, N개의 포인트와 각각 d차원의 특징 설명을 가진 입력 포인트 클라우드 P ∈ RN×d에 대해, 먼저 입력 임베딩 모듈을 통해 de차원의 임베디드 특징 Fe ∈ RN×de가 학습됩니다. 그 다음, 각 어텐션 레이어의 어텐션 출력을 특징 차원을 통해 연결한 후 선형 변환을 거쳐 PCT가 출력하는 do차원의 포인트별 특징 표현 Fo ∈ RN×do가 형성됩니다. 포인트 클라우드를 대표하는 효과적인 글로벌 특징 벡터 Fg를 추출하기 위해, 학습된 포인트별 특징 표현에 대해 두 가지 풀링 연산자의 출력을 연결하기로 선택합니다: 최대 풀링(MP)과 평균 풀링(AP)입니다【출처】.

Classification

더보기

PCT를 사용한 분류 네트워크의 세부 사항은 그림 2에 나타나 있습니다. 포인트 클라우드 P를 Nc 개의 객체 카테고리(예: 책상, 테이블, 의자 등)로 분류하기 위해, 우리는 글로벌 특징 Fg를 분류 디코더에 공급합니다. 이 디코더는 두 개의 연속된 피드포워드 신경망 LBRs(선형, 배치 정규화(BN), ReLU 레이어를 결합)로 구성되며, 각각 드롭아웃 확률이 0.5입니다. 최종적으로 선형 레이어를 통해 최종 분류 점수 C ∈ RNc를 예측합니다. 포인트 클라우드의 클래스 레이블은 최대 점수를 가진 클래스로 결정됩니다.

Segmentation

더보기

분할 작업의 경우, 포인트 클라우드를 Ns 부분(예: 테이블 상판, 테이블 다리; 부분은 연속적일 필요가 없음)으로 분할해야 합니다. 우리는 각 포인트에 대한 부분 레이블을 예측해야 합니다. 먼저 글로벌 특징 Fg와 포인트별 특징 Fo를 연결합니다. 다양한 종류의 객체에 대해 공통 모델을 학습하기 위해, 우리는 64차원 특징으로 원-핫 객체 카테고리 벡터를 인코딩하고 대부분의 다른 포인트 클라우드 분할 네트워크[22]를 따라 글로벌 특징과 연결합니다. 그림 2에서 보여지듯, 분할 네트워크 디코더의 아키텍처는 분류 네트워크와 거의 동일하지만, 드롭아웃은 첫 번째 LBR에서만 수행됩니다. 그런 다음 입력 포인트 클라우드에 대한 최종 포인트별 분할 점수 S ∈ RN×Ns를 예측합니다: 마지막으로, 포인트의 부분 레이블도 최대 점수를 가진 것으로 결정됩니다.

노멀 추정 작업의 경우, 우리는 Ns = 3으로 설정하고 객체 카테고리 인코딩 없이 분할과 동일한 아키텍처를 사용하며, 출력 포인트별 점수를 예측 노멀로 간주합니다.

그림 2. PCT 구조입니다. 인코더는 주로 입력 임베딩 모듈과 네 개의 스택된 어텐션 모듈로 구성됩니다. 디코더는 주로 여러 선형 레이어로 구성됩니다. 각 모듈 위의 숫자는 그 모듈의 출력 채널을 나타냅니다. MA-Pool은 Max-Pool과 Average-Pool을 연결합니다. LBR은 선형, 배치 정규화 및 ReLU 레이어를 결합합니다. LBRD는 LBR 뒤에 드롭아웃 레이어가 오는 것을 의미합니다.

 

3.2 Na¨ıve PCT

더보기

포인트 클라우드를 위해 트랜스포머[26]를 수정하는 가장 간단한 방법은 전체 포인트 클라우드를 문장으로, 각 포인트를 단어로 취급하는 것입니다. 이러한 접근 방식을 우리는 이제 설명합니다. 이 순진한 PCT는 좌표 기반 포인트 임베딩을 구현하고 [26]에서 소개된 셀프-어텐션으로 어텐션 레이어를 인스턴스화함으로써 달성됩니다.

첫째, 우리는 포인트 간의 상호 작용을 무시하는 순진한 포인트 임베딩을 고려합니다. NLP의 단어 임베딩과 마찬가지로, 포인트 임베딩은 의미적으로 더 유사한 포인트를 임베딩 공간에서 더 가깝게 배치하는 것을 목표로 합니다. 구체적으로, 우리는 포인트 클라우드 P를 de-차원 공간 Fe ∈ RN×de로 임베딩하며, 이는 두 개의 연속된 LBRs를 포함하는 공유된 신경망을 사용합니다. 각각은 de-차원 출력을 가집니다. 우리는 계산 효율성을 위해 de = 128이라는 상대적으로 작은 값을 경험적으로 설정합니다. 우리는 단순히 포인트의 3D 좌표를 그것의 입력 특징 설명으로 사용합니다(i.e. dp = 3) (이것이 여전히 다른 방법보다 우수한 성능을 보이지만), 포인트 노멀과 같은 추가적인 포인트별 입력 정보도 사용될 수 있습니다.

PCT의 순진한 구현을 위해, 우리는 원래 트랜스포머[26]에서 소개된 셀프-어텐션(SA)을 채택합니다. 셀프-어텐션, 또한 인트라-어텐션이라고도 불리며, 데이터 시퀀스 내의 다른 항목들 사이의 의미적 친밀도를 계산하는 메커니즘입니다. SA 레이어의 아키텍처는 점선 데이터 흐름으로 전환함으로써 그림 3에 묘사됩니다. [26]의 용어를 따라, Q, K, V를 각각 입력 특징 Fin ∈ RN×de의 선형 변환에 의해 생성된 쿼리, 키, 값 행렬이라고 합시다. 셀프-어텐션 출력 특징 Fsa는 해당 어텐션 가중치를 사용한 값 벡터의 가중 합입니다. 쿼리, 키, 값 행렬은 공유된 해당 선형 변환 행렬과 입력 특징 Fin에 의해 결정되므로, 모두 순서에 독립적입니다. 또한, softmax와 가중 합은 모두 순열 독립적 연산자입니다. 따라서, 전체 셀프-어텐션 과정은 순열 불변성을 가지며, 이는 포인트 클라우드가 제시하는 무질서하고 불규칙한 도메인에 잘 맞습니다. 마지막으로, 셀프-어텐션 특징 Fsa와 입력 특징 Fin은 SA 레이

레이어를 통해 전체 SA 레이어에 대한 출력 특징 Fout을 제공하는 데 추가로 사용됩니다:
\[ F_{out} = SA(F_{in}) = LBR(F_{sa}) + F_{in} \]

이와 같이, 포인트 클라우드를 위해 트랜스포머를 수정하는 방법은 포인트 클라우드 전체를 문장으로, 각 포인트를 단어로 취급함으로써, 포인트 간의 의미적 유사성에 기반한 새로운 높은 차원의 특징 공간으로 입력 포인트를 변환(인코딩)하는 것입니다. 포인트 임베딩은 NLP의 단어 임베딩과 유사하게, 의미적으로 더 유사한 포인트를 임베딩 공간에서 더 가깝게 배치하는 것을 목표로 합니다. 특히, 포인트 클라우드를 de차원 공간에 임베딩하며, 이는 두 개의 연속된 LBRs를 포함하는 공유된 신경망을 사용합니다. 각각은 de차원 출력을 가집니다. 

셀프-어텐션은 데이터 시퀀스 내의 다른 항목들 사이의 의미적 친밀도를 계산하는 메커니즘으로, 쿼리, 키, 값 행렬을 사용하여 어텐션 가중치를 계산한 후, 이 가중치를 사용하여 값 벡터의 가중 합을 계산합니다. 이 과정은 전체적으로 순열 불변성을 가지며, 이는 포인트 클라우드가 제시하는 무질서하고 불규칙한 도메인에 잘 맞습니다. 

이 방식으로, 포인트 클라우드 처리를 위한 트랜스포머의 수정은 포인트 클라우드의 의미적 유사성을 기반으로 한 특징 학습을 가능하게 하여, 다양한 포인트 클라우드 처리 작업에 적합한 표현을 학습할 수 있습니다.

3.3. Offset-Attention

더보기

그래프 컨볼루션 네트워크[3]는 인접 행렬 E를 대각도수 행렬 D에서 E를 뺀 라플라시안 행렬 L로 대체하는 것의 이점을 보여줍니다. 마찬가지로, 포인트 클라우드에 트랜스포머를 적용할 때 원래의 셀프-어텐션(SA) 모듈을 오프셋-어텐션(OA) 모듈로 대체하여 우리의 PCT를 강화하면 더 나은 네트워크 성능을 얻을 수 있다는 것을 발견했습니다. 그림 3에서 보여지듯, 오프셋-어텐션 레이어는 셀프-어텐션(SA) 특징과 입력 특징 사이의 오프셋(차이)을 요소별 뺄셈으로 계산합니다. 이 오프셋은 순진한 버전에서 사용된 SA 특징 대신 LBR 네트워크로 전달됩니다.

구체적으로, 식 5는 다음과 같이 수정됩니다:
\[ F_{out} = OA(F_{in}) = LBR(F_{in} - F_{sa}) + F_{in} \]
여기서, \( F_{in} - F_{sa} \)는 이제 우리가 보여주듯이, 이산 라플라시안 연산자와 유사합니다. 식 2와 5에서 다음이 성립합니다:
\[ F_{in} - F_{sa} = F_{in} - A V = F_{in} - A F_{in} W_{v} \approx F_{in} - A F_{in} = (I - A) F_{in} \approx L F_{in} \]
여기서, \( W_{v} \)는 선형 레이어의 가중치 행렬이므로 무시됩니다. I는 라플라시안 행렬의 대각도수 행렬 D에 비교할 수 있는 단위 행렬이고, A는 인접 행렬 E에 비교할 수 있는 어텐션 행렬입니다.

우리는 향상된 PCT 버전에서 정규화를 다음과 같이 수정하여 정제합니다:
\[ \bar{\alpha}_{i,j} = softmax(\tilde{\alpha}_{i,j}) = \frac{exp(\tilde{\alpha}_{i,j})}{\sum_{k} exp(\tilde{\alpha}_{k,j})}, \alpha_{i,j} = \frac{\sum \bar{\alpha}_{i,j}}{\sum_{k} \bar{\alpha}_{i,k}} \]
여기서, 우리는 어텐션 맵을 정규화하기 위해 첫 번째 차원에 softmax 연산자를 사용하고 두 번째 차원에는 l1-노름을 사용합니다. 전통적인 트랜스포머는 첫 번째 차원을 \( 1/\sqrt{da} \)로 스케일링하고 softmax를 사용하여 두 번째 차원을 정규화합니다. 그러나, 우리의 오프셋-어텐션은 어텐션 가중치를 더 날카롭게 하고 노이즈의 영향을 줄여, 다운스트림 작업에 유익합니다.

이러한 방식으로 PCT를 강화하면, 포인트 클라우드 데이터의 무질서하고 불규칙한 도메인을 효과적으로 처리할 수 있는 순열 불변의 네트워크를 구축할 수 있으며, 이는 다양한 포인트 클라우드 처리 작업에 있어 최신의

성능을 향상시킬 수 있습니다. 우리는 이 정제된 PCT, 즉 포인트 임베딩과 OA 레이어가 있는 것을 실험에서 간단한 PCT(SPCT)로 지칭합니다.

 

그림 3. 오프셋-어텐션의 구조입니다. 텐서 위의 숫자는 차원 N과 특징 채널 D/Da의 수를 나타내며, 스위치는 셀프-어텐션과 오프셋-어텐션의 대안을 보여줍니다: 점선은 셀프-어텐션 브랜치를 나타냅니다.

3.4. Neighbor Embedding for Augmented Local Feature Representation

더보기

PCT는 글로벌 특징을 추출하는데 효과적인 네트워크입니다. 그러나, 포인트 클라우드 학습에서 중요한 지역 이웃 정보를 무시합니다. 우리는 PointNet++[22]과 DGCNN[29]의 아이디어를 차용하여 지역 이웃 집계 전략, 이웃 임베딩을 설계하여 PCT의 지역 특징 추출 능력을 증대시키고자 합니다. 그림 4에 나타난 것처럼, 이웃 임베딩 모듈은 두 개의 LBR 레이어와 두 개의 SG(샘플링 및 그룹화) 레이어로 구성됩니다. LBR 레이어는 기본 포인트 임베딩 역할을 하며, 두 개의 연속된 SG 레이어를 사용하여 CNN에서와 같이 특징 집계 중 수용 필드를 점차 확대합니다. SG 레이어는 포인트 클라우드 샘플링 중 유클리드 거리를 사용한 k-NN 탐색으로 그룹화된 각 포인트의 지역 이웃으로부터 특징을 집계합니다.

더 구체적으로, SG 레이어는 N개의 포인트와 해당 특징 F를 입력으로 받아, Ns개의 포인트와 해당 집계된 특징 Fs를 출력하는 포인트 클라우드 Ps를 출력한다고 가정합니다. 먼저, 우리는 가장 먼 포인트 샘플링(FPS) 알고리즘[22]을 사용하여 P를 Ps로 다운샘플링합니다. 그런 다음, 샘플링된 각 포인트 p ∈ Ps에 대해, knn(p,P)를 P 내에서의 k-가장 가까운 이웃으로 합니다. 그 다음 출력 특징 Fs를 다음과 같이 계산합니다:
\[ \Delta F(p) = concat_{q \in knn(p,P)}(F(q) - F(p)) \]
\[ Fe(p) = concat(\Delta F(p), RP(F(p), k)) \]
\[ Fs(p) = MP(LBR(LBR(Fe(p)))) \]
여기서 F(p)는 포인트 p의 입력 특징, Fs(p)는 샘플링된 포인트 p의 출력 특징, MP는 최대 풀링 연산자, RP(x, k)는 벡터 x를 k번 반복하여 행렬을 형성하는 연산자입니다. 샘플링된 포인트와 그 이웃 사이의 특징을 연결하는 아이디어는 EdgeConv[29]에서 차용되었습니다.

포인트 클라우드 분류, 분할, 노멀 추정과 같은 작업에 대해 서로 다른 아키텍처를 사용합니다. 포인트 클라우드 분류의 경우, 모든 포인트에 대해 전역 클래스를 예측하기만 하면 되므로, 두 SG 레이어 내에서 포인트 클라우드의 크기를 512 및 256 포인트로 감소시킵니다. 포인트 클라우드 분할이나 노멀 추정의 경우, 포인트별 부분 레이블이나 노멀을 결정해야 하므로, 위의 과정은 지역 특징 추출에만 사용되며 포인트 클라우드 크기를 줄이지 않으며, 각 단계의 출력을 여전히 N 크기로 설정함으로써 달성할 수 있습니다.

그림 4. 왼쪽: 이웃 임베딩 아키텍처; 가운데: Nin 입력 포인트, Din 입력 채널, k 이웃, Nout 출력 샘플 포인트 및 Dout 출력 채널을 가진 SG 모듈; 오른쪽 위: 샘플링 예시(색깔 있는 공들이 샘플링된 포인트를 나타냄); 오른쪽 아래: k-NN 이웃을 사용한 그룹핑 예시; LBR 위의 숫자: 출력 채널 수. SG 위의 숫자: 샘플링된 포인트의 수와 그것의 출력 채널 수입니다.