AdaPoinTr는 Point-cloud 완성을 위한 혁신적인 접근 방식을 제시하며, 이를 Set-to-Set 변환 문제로 재구성합니다.
이 모델은 Transformer 아키텍처를 활용하여 3D 기하학적 구조를 효과적으로 학습하고,
적응형 쿼리 생성(Adaptive Query Generator) 메커니즘
보조 노이즈 제거(Denoising) 작업
을 통해 성능을 크게 향상시킵니다.
주요 성과
다양한 불완전한 Point-cloud 상황에서 20% 이상의 성능 향상을 달성
Point Cloud Completion의 새로운 기준을 설정
방법론
AdaPoinTr는 Transformer 기반 인코더-디코더 아키텍처를 활용하여 포인트 클라우드 완성을 수행합니다.
이 방법은
1. 포인트 클라우드를 순서가 없는 점 집합(Set)으로 표현
2. 입력 데이터를 포인트 프록시(Point Proxy)의 시퀀스(Sequence)로 변환하여 생성
하는 과정을 통해 보다 정확하고 강건한 복원을 가능하게 합니다.
2. Methods
2.1 Set-to-Set Translation with Transformers
Set-to-Set이란 하나의 집합(set)을 다른 집합으로 변환하는 것을 의미합니다. 여기서 집합(set)은 순서가 없는 여러 요소들의 모음을 뜻합니다. 예를 들어, 아래 그림과 같이 Incomplete Point Cloud를 Predicted Missing Point Cloud로 변환하는 과정이 set-to-set translation에 해당합니다.
우리는 먼저 point cloud를 특징 벡터(feature vector) 집합, 즉 point proxy로 변환하는 방법을 제안합니다. Point proxy는 점군 내의 지역(local) 영역을 나타내며, 이에 대한 자세한 내용은 Section 2.2에서 설명하겠습니다.
언어 번역 과정을 비유하자면, 우리는 점군 보완(point cloud completion)을 set-to-set translation 문제로 모델링합니다. Transformer는 불완전한 점군의 point proxy를 입력으로 받아, 누락된 부분의 point proxy를 생성하는 역할을 합니다.
구체적으로, 불완전한 점군을 나타내는 point proxy 집합이 주어졌을 때, 이를 다음과 같이 모델링할 수 있습니다.
F={F1,F2,...,FN}
여기서 (N)은 입력 points의 개수입니다.
Transformer를 이용한 점군 보완 과정은 다음과 같이 정의됩니다.
V=ME(F), H=MD(Q,V)
여기서:
ME와 MD는 각각 encoder와 decoder 모델을 의미합니다.
V={V1,V2,...,VN}는 인코더의 출력(feature vectors)입니다.
Q={Q1,Q2,...,QM}는 본 논문에서 제안하는 dynamic queries이며, 디코더의 입력으로 사용됩니다.
M은 Query 개수이며, 사용자가 임의로 설정할 수 있습니다.
H={H1,H2,...,HM}는 네트워크가 예측하여 생성한 point cloud의 point proxy입니다.
이렇게 생성된 point proxy (H)는 multi-scale 방식으로 rebuild하여 최종 point cloud를 생성합니다. Rebuild 과정에 대한 자세한 내용은 Section 2.5에서 설명하겠습니다.
2.2 Point Proxy
2.2.1. Transformer와 3D 포인트 클라우드의 차이
Transformer 모델은 원래 NLP(자연어 처리)에서 사용되며, 1D 시퀀스 형태의 입력(예: 단어 임베딩)을 처리합니다.
반면, 3D 포인트 클라우드는 다차원(3D 좌표) 데이터이므로 Transformer에 바로 적용하기 어렵습니다.
2.2.2. 3D 포인트 클라우드를 Transformer 입력으로 변환하는 문제
가장 단순한 방법은 xyz 좌표를 직접 Transformer에 입력하는 것입니다.
그러나 Transformer의 계산 복잡도는 시퀀스 길이에 대해 (O(N^2)) (제곱, quadratic)으로 증가하기 때문에,
이 방법은 계산 비용이 너무 커서 비효율적입니다.
👉 따라서, 더 효율적인 변환 방법이 필요합니다.
2.2.3. 해결 방법: Point Proxy 사용
포인트 프록시(Point Proxy)란 원본 포인트 클라우드의 일부를 대표하는 벡터입니다.
즉, 모든 점을 Transformer에 입력하는 대신, 대표적인 몇 개의 점을 선택하여 입력하는 방식입니다.
이를 위해 두 가지 기법을 사용합니다.
FPS (Furthest Point Sampling, 최외곽 점 샘플링)
포인트 클라우드에서 (N)개의 대표적인 중심점(point centers)을 선택합니다.
DGCNN (Dynamic Graph CNN) 활용
선택된 중심점들의 주변 지역 특징을 추출하여,
각 포인트 프록시(대표점)에 대한 특징 벡터(feature vector)를 생성합니다.
2.2.4. 포인트 프록시의 특징 벡터 생성
포인트 프록시 (F_i)는 다음과 같이 계산됩니다.
Fi=Fi′+φ(pi)
Fi′: DGCNN을 이용해 추출한 지역 특징 벡터
ϕ(pi): MLP(다층 퍼셉트론)을 이용해 위치 정보를 추가적으로 인코딩한 벡터
이렇게 하면,
첫 번째 항 Fi′는 해당 지역의 의미적(semantic) 정보를 포함하고,
두 번째 항 ϕ(pi)는 Transformer에서 사용하는 위치 임베딩(Position Embedding) 개념을 적용하여, 전역적인 위치 정보까지 고려할 수 있습니다.
2.3 Geometry-Aware Transformer Block
Transformer 모델을 비전(영상) 작업에 적용하는 데에는 몇 가지 어려움이 있습니다. 그중 하나는 Self-Attention(자가-어텐션) 메커니즘이 기존 CNN(합성곱 신경망)과 같은 비전 모델에서 제공하는 유도 편향(Inductive Bias)을 갖고 있지 않다는 점입니다. CNN은 이미지나 3D 데이터의 구조적 특성을 명시적으로 모델링하는 반면, Transformer는 이러한 구조를 자연스럽게 학습하기 어렵습니다.
이 문제를 해결하기 위해 3D 포인트 클라우드의 기하학적 구조를 잘 활용할 수 있도록 Geometry-Aware Block(기하학적 구조 인식 블록)을 설계했습니다. 이 블록은 Transformer의 어텐션 모듈과 결합할 수 있는 플러그앤플레이(plug-and-play) 방식의 모듈로, 기존 Transformer 아키텍처에 쉽게 적용할 수 있습니다.
기존 Self-Attention 모듈은 특징(feature) 간의 유사도를 기반으로 의미론적 관계를 학습합니다. 하지만 우리가 제안하는 Geometry-Aware Block은 k-Nearest Neighbors (kNN) 방식을 활용하여 포인트 클라우드 내 기하학적 관계를 학습합니다.
기하학적 관계를 학습하는 과정은 다음과 같습니다.
즉, 질의 포인트 ( p_Q ) 주변의 k개 이웃 포인트 ( p_k )의 특징을 수집한 후, 선형 변환(Linear Transformation)과 최대 풀링 연산을 적용하여 지역적인 기하학적 구조를 학습합니다.
이 방식은 DGCNN(Dynamic Graph CNN)의 아이디어를 따릅니다.
즉, kNN을 활용하여 로컬 기하학적 구조를 학습한 후, 위 그림과 같이 Self-Attention을 통해 학습한 특징과 결합(Concatenation)하여 최종 출력 특징을 생성합니다.
이 방식은 기존 Transformer 모델에 쉽게 적용할 수 있으며, 포인트 클라우드 데이터의 3D 기하학적 정보를 효과적으로 학습하는 데 도움을 줍니다.
결과적으로, Transformer가 비전 데이터에서 더 나은 성능을 발휘할 수 있도록 지원합니다.
2.4 Query Generator
Transformer 기반의 포인트 클라우드 복원 모델에서 쿼리(Q)는 예측된 프록시(proxy)의 초기 상태 역할을 합니다.
즉, Q가 올바르게 포인트 클라우드의 전체 윤곽을 반영해야만 모델이 더욱 정확한 복원을 수행할 수 있습니다.
이를 위해, 우리는 쿼리 생성기(Query Generator) 모듈을 설계하여 인코더 출력 V를 기반으로 동적으로 쿼리 임베딩을 생성하는 방식을 제안합니다.
쿼리 생성 과정은 다음과 같은 단계로 이루어집니다.
인코더 출력 V 요약(Summarization)
인코더의 출력 V를 선형 변환(Linear Projection)하여 더 높은 차원으로 매핑
이후, 맥스 풀링(Max-Pooling) 연산을 적용하여 전체 특징을 요약
쿼리 좌표 생성(Query Coordinates Generation)
선형 변환층을 사용하여 M × 3 차원의 특징을 생성
이를 M개의 좌표 C={c₁,c₂,…,cM} 로 변환
최종 쿼리 임베딩 생성(Query Embedding Generation)
인코더의 글로벌 특징과 좌표를 결합(Concatenation)
다층 퍼셉트론(MLP)을 사용하여 최종적으로 쿼리 임베딩 Q={Q₁,Q₂,…,QM}을 생성
수식 표현 C=P(M(Linear(V)),Q=MLP([C,M(Linear(V)])
여기서:
M : 맥스 풀링(Max-Pooling) 연산
P : 좌표 변환(Projection) 연산
V : 인코더의 출력 특징
Q : 최종 쿼리 임베딩
이 방식은 쿼리를 정적으로 설정하는 대신, 입력 데이터(V)를 기반으로 동적으로 생성하는 접근법을 활용합니다.
이를 통해, 예측된 포인트 클라우드가 원본의 구조를 더 정확하게 반영할 수 있도록 보장할 수 있습니다.
2.5 다중 스케일 포인트 클라우드 생성 (Multi-Scale Point Cloud Generation)
인코더-디코더 네트워크의 목적은 불완전한 포인트 클라우드에서 누락된 부분을 예측하는 것입니다. 그러나 Transformer 디코더로부터는 누락된 proxy에 대한 예측만 얻을 수 있습니다. 따라서, 우리는 다중 스케일 포인트 클라우드 생성 프레임워크를 제안하여 완전한 해상도로 누락된 포인트 클라우드를 복원합니다.
핵심 아이디어
중복 계산 최소화: 쿼리 생성기(Query Generator)가 생성한 M개의 좌표를 누락된 포인트 클라우드의 지역 중심(Local Centers)으로 재사용합니다.
세부 복원: 그런 다음, FoldingNet과 유사한 재구성 헤드(Reconstruction Head)f를 사용하여, 예측된 프록시를 중심으로 세부적인 지역 형태(Local Shape)를 복원합니다.
수식 표현 Pi=f(Hi)+ci,i=1,2,...,M
여기서:
Pi: 중심 ci 주변에 복원된 포인트 집합
Hi: 중심 ci에 대응하는 특징(feature)
f: 재구성 함수 (FoldingNet 스타일)
전체 포인트 클라우드 완성
포인트 클라우드의 누락된 부분만 예측하고 이를 입력 포인트 클라우드와 결합하여 완전한 객체를 구성합니다.
예측된 프록시와 복원된 포인트 클라우드는 모두 훈련 과정에서 감독 학습(supervised learning)을 받습니다.
2.6 적응형 노이즈 제거 쿼리 (Adaptive Denoising Queries)
문제점 R3공간에서 입력된 점과 예측된 누락된 점을 단순히 연결(concatenation) 하는 방식은 쉽지만,
두 부분을 별개로 다루어 불연속적이고 고르지 않은 Point-cloud이 생성되는 문제가 발생합니다.
누락된 부분: 재구성 헤드에서 생성
기존의 알려진 부분: 백프로젝션 방식 또는 LiDAR 센서로 획득
이 문제를 해결하기 위해 일반적인 방법은 연결 후 정제 모듈(refinement modules)을 추가하는 것이지만,
이는 추가적인 파라미터와 지연(latency)을 초래합니다.
AdaPoinTr의 해결책
우리는 AdaPoinTr(PoinTr + Adaptive Denoising Queries)를 제안합니다.
이는 기존 방식과 달리 Point-cloud 자체가 아닌 점 프록시(point proxy)를 연결하는 방식을 사용합니다.
이를 통해:
두 부분을 통합적으로 재구성할 수 있음
추가적인 정제 파라미터 없이도 성능 향상 가능
추가적인 성능 개선: Adaptive Denoising Queries 노이즈 제거(denoising) 작업을 도입하여 모델의 효율성과 견고성을 대폭 향상시켰습니다.
Adaptive Denoising Queries는 두 가지 주요 구성 요소로 이루어져 있습니다.
1. 적응형 쿼리 생성 메커니즘 (Adaptive queries generation mechanism)
2. 보조 노이즈 제거 작업 (Auxiliary denoising task)
2.6.1 적응형 쿼리 생성 (Adaptive Query Generation)
기존 쿼리 생성기(Query Generator)를 개선하여 동적 쿼리 뱅크 B 생성
입력:
인코더 아웃풋 V
인풋 포인트 프록시 F
동적 쿼리 뱅크 구성:
QI: 입력 proxy F로부터 추출
QO: 누락된 proxy의 초기 상태로 사용
처리 과정:
V와 F를 고차원으로 선형 투영(linear projection) 후, 각각 Max-pooling 수행
MI×3, MO×3 차원으로 좌표 투영(coordinate projection) 후 좌표 생성 CI={c1I,c2I,…,cMII} CO={c1O,c2O,…,cMOO}