Paper/Point Cloud

PointMamba: A Simple State Space Model for Point Cloud Analysis

jaehyuuuuuga 2025. 6. 3. 22:36

Introduction

PointMamba는 Mamba 방법론을 Point Cloud에 적용시킨 방법으로서, 낮은 연산량으로 높은 성능을 달성한다고 한다. 하지만 기존 Mamba는 단방향적 구조(RNN처럼 이전 시점만을 참고)로 인해 3D 포인트 클라우드처럼 비정형적이고 방향성이 불분명한 데이터에는 한계가 있기 때문에 PointMamba는 Hilbert 곡선 및 Trans-Hilbert 곡선이라는 공간 충전 곡선(space-filling curves)을 이용해 3차원 포인트들을 1차원 시퀀스로 순서화(serialization)하여 처리한다. 이처럼 두 방향에서 생성된 시퀀스를 구분하고 공간적 특성을 보존하기 위해, order indicator라는 매우 가벼운 구성 요소를 추가하여 각 시퀀스의 스캔 방식을 명시적으로 구분한다.

또한, 사전학습 단계에서는 MAE(Masked Autoencoder) 스타일의 마스킹 기반 프리텍스트 태스크를 도입해, 무작위 시퀀스 마스킹 및 복원 학습을 통해 전역 및 지역적 공간 관계를 효과적으로 학습하도록 설계되어 있다.

 

자세한 내용은 아래에서 다루겠다.

 

끄적끄적


State Space Model
해당 부분은 이전에 포스팅한 Mamba 구조와 동일한 개념으로, SSM(State Space Model)에 대한 기본 설명이 포함되어 있다.

간단히 정리하자면, SSM은 과거 상태로부터 정보를 받아 현재 상태를 갱신하고, 이를 바탕으로 출력 여부를 결정하는 구조로 이해할 수 있다.

Space-filling curve
Space-filling curve는 Ptv3, OctFormer 같은 모델들도 space-filling curve를 사용하지만, 이전 연구들은 이를 공간 분할(partition)로컬 문맥 추출 용도로 활용한 반면, PointMamba는 이를 시퀀스 직렬화 및 Mamba 기반 전역 모델링(global modeling)을 위해 사용한다는 점에서 사용 목적이 다르다고 할 수 있다.

PointMamba
4.1 The Structure of PointMamba
구조를 간단히 요약하면
FPS ->  hilbert 정렬 및 직렬화 -> 마스킹 -> knn, mini Pointnet 토큰 생성 -> Mamba 블록 인코딩 이런 구조인듯.

a. Point Scanning strategy
FPS를 사용해 중심점을 샘플링하는데 이때 점들은 랜덤이고 특정한 순서를 가지지 않는다.
Transformer 기반에서는 문제가 되지 않지만 Mamba 구조에서는 문제가 된다고 한다.

그래서 Space-filling curve 전략을 사용하는데 이때 Hilbert 전략을 사용한다고 한다.(z-order,bio-dict 다양하다.)

hilbert, Trans-hilbert를 사용해 다양한 시각에서 보는 작업을 시도함.

b. Point tokenizer
직렬화된 포인트들을 K개로 묶은후 minipointnet으로 토큰을 생성한다고 한다.
c. Order indicator
Hilbert 및 Trans-Hilbert로 직렬화된 두 종류의 토큰을 곧바로 Mamba 인코더에 입력하면, 동일한 중심 포인트를 공유하지만 스캔 순서가 달라 혼란을 야기할 수 있다.이 문제를 해결하기 위해 구분을 위한 order indicator를 제안 

Order Indicator는 스케일 파라미터(감마)와 쉬프트 파라미터(베타)로 구성되며, 각각의 직렬화 방식에 따라 서로 다른 파라미터를 적용함으로써, 입력 특성을 서로 다른 잠재공간(latent space)으로 분리시킨다.

d. Mamba encoder

직렬화된 포인트 토큰을 얻은 뒤, 이를 개의 Mamba 블록으로 구성된 인코더에 입력하여 고차원 특징을 추출

각 Mamba 블록에는 왼쪽 그림처럼 Layer Normalization(LN), Selective SSM, Depth-wise Convolution(DW) [10], 그리고 Residual Connection이 사용된다.

첫 번째 시퀀스 (Hilbert 기반)가 처리되며 전역적인 정보가 누적되고,
두 번째 시퀀스 (Trans-Hilbert 기반)는 앞서 처리된 시퀀스의 문맥 정보를 간접적으로 반영받는다고 한다. 

결과적으로, 모든 포인트가 앞선 시퀀스들의 정보를 기반으로 학습되기 때문에, 전역 인식이 가능하다고한다. 
4.2 The serialization-based mask modeling
동작 구조에 대해서 설명한다.

Mamba의 단방향 구조적 특성을 고려해, 직렬화 기반 마스킹 모델링 전략을 제안한다.

FPS로 추출된 포인트들을 매 iteration마다 무작위로 hilbert,t-hilbert 곡선을 선택해 직렬화하고 공간 정보를 학습한다고 한다.

이후 KNN과 경량 PointNet 기반 임베딩을 통해 포인트 토큰을 생성하고, order indicator를 적용하여 서로 다른 직렬화 순서를 구분한다.

토큰 중 60%를 무작위로 마스킹한 뒤, 여러 개의 Mamba 블록으로 구성된 비대칭 오토인코더를 통해 특징을 추출하고 복원을 수행한다.

복원 단계에서는 linear head를 통해 마스킹된 토큰을 좌표 공간으로 투영하고, Chamfer Distance를 손실 함수로 사용하여 복구.
Classification
Segmentation
마무리 개인생각
- Mamba를 Point cloud에 적용시킨 사례중에 가장 성공적인 사례 같음. 확실히 masking 전략을 사용하는 방식이 많이 보이고 성능도 잘 나온는 거 같다.
- masking에서 MAE방식을 채택한거 같은데 MAE에서는 masking된 토큰을 인코더에 사용안했는데 여기서는 넣은걸 보니 어떤 차이가 있을지 궁금하긴 하다.
- ptv3에서 fps+knn을 안쓰고 flatten한 것처럼 mamba도 그런식으로 처리하면 성능이 어떨지 궁금하다.