3D 데이터 획득 기술이 더 접근하기 쉬워졌으며, 다양한 응용 분야에 풍부한 기하학적 정보를 제공한다.
포인트 클라우드는 많은 장면 이해 작업에 선호되는 3D 데이터 표현 방식이다.
3D 포인트 클라우드에 대한 딥러닝은 작은 데이터셋, 높은 차원성, 비구조화된 데이터 특성 등의 과제에 직면해 있다.
다양한 센서를 이용해 포인트 클라우드 데이터셋 수집
전체 정확도(OA), 평균 IoU(mIoU), 평균 클래스 정확도(mAcc)가 주로 사용됨
인스턴스 분할에는 평균 평균 정밀도(mAP)도 사용됨
OA(Overall Accuracy) = 올바르게 분류된 점들의 총 수 / 전체 점의 수
IoU(Intersection over Union) = (예측과 실제가 겹치는 영역) / (예측과 실제의 합집합 영역)
mAcc(mean Class Accuracy) = 각 클래스별 정확도의 평균
mAP(mean Average Precision) = 각 클래스별 평균 정밀도의 평균
CNN은 격자구조에 최적화되어 있는데, 포인트 클라우드는 불규칙적으로 분포되어 있음
CNN은 입력 데이터가 고정되어 있다. 그런데 포인트 클라우드는 보는 시각에 따라 점들의 순서가 임의적으로 바뀔 수 있다.
입력 포인트 클라우드를 핵심 점들의 집합으로 요약하는 방법을 학습
대칭 함수(max pooling)를 핵심으로 사용
포인트 클라우드의 순열 불변성을 고려한 설계
a) 볼륨 기반 CNNs:
- 3D CNN을 복셀화된 형상에 적용한다.
- 해상도 제한, 데이터 희소성, 계산 비용 등의 문제가 있다.
b) 다중 뷰 CNNs:
- 3D 데이터를 2D 이미지로 렌더링한 후 2D CNN을 적용한다.
- 형상 분류와 검색 작업에서 우수한 성능을 보인다.
- 장면 이해나 점 분류 등의 작업으로 확장이 어렵다.
c) 스펙트럴 CNNs:
- 메시에 대해 스펙트럴 CNN을 사용한다.
- 현재는 유기적 객체 같은 매니폴드 메시에 제한되어 있다.
d) 특징 기반 DNNs:
- 3D 데이터를 전통적인 형상 특징으로 변환한 후 완전연결 네트워크를 사용한다.
- 추출된 특징의 표현력에 제한이 있다.
비정렬 집합에 대한 딥러닝:
- 포인트 클라우드는 비정렬 벡터 집합으로 볼 수 있다.
- Oriol Vinyals 등의 연구가 이 문제를 다루었지만, 기하학적 특성을 고려하지 않았다.
비정렬 포인트 집합을 직접 입력으로 사용
각 점 Pi는 (x, y, z) 좌표와 추가 특징 채널(색상, 법선 등)을 포함할 수 있음
-> 해당 논문에서는 (x, y, z) 좌표만을 사용
네트워크는 N개의 3D 포인트 집합에 대해 N!개의 순열에 불변 (입력 데이터의 순서를 바꾸어도 네트워크의 출력은 동일)
네트워크는 개별 점뿐만 아니라 점들의 지역적 관계도 학습해야 함
네트워크는 객체의 전체적인 위치나 방향에 관계없이 일관된 결과를 제공
-> 비정렬성을 다루기 위해 대칭 함수(예: max pooling)를 사용
-> 점들 간의 상호작용을 포착하기 위해 지역 및 전역 특징을 결합
-> 변환 불변성을 위해 정렬 네트워크(T-net)를 도입
함수 근사: f({x1, ..., xn}) ≈ g(h(x1), ..., h(xn))
h는 MLP로, g는 단일 변수 함수와 max pooling의 조합으로 구현
T-net은 입력 포인트 클라우드에 대한 공간 변환(Spatial Transformation)을 학습
입력 포인트 클라우드를 표준 위치와 방향으로 정렬
이를 통해 네트워크가 물체의 위치나 방향에 관계없이 일관된 특징을 학습할 수 있게 함
특징 변환 행렬에 대한 정규화 항 추가: Lreg = ||I - AA^T||^2_F
-> 특징 변환 행렬을 직교 행렬에 가깝게 만들어서 차원 변환 행렬의 최적화 문제를 더 다루기 쉬운 형태로 변환 ( n x n 직교 행렬은 n(n-1)/2개의 자유도만 가짐)
-> 학습 과정 안정화, 다양한 자세의 객체에 대한 일관된 예측
정리 1: 충분히 많은 뉴런을 가진 max pooling 층으로 임의의 연속 집합 함수를 근사할 수 있다.
ex) 손가락을 많이 사용할수록(뉴런이 많을수록) 물체의 형태를 더 정확히 파악할 수 있다.
정리 2: (a) 입력 집합의 작은 손상이나 노이즈 포인트는 네트워크 출력을 변경하지 않는다. (b) 중요 포인트 집합 CS의 크기는 K 이하이다.
1000조각짜리 퍼즐을 가지고 있다고 해보자. 하지만 실제로 전체 그림을 완성하는 데 필요한 핵심 조각은 100개 정도이다. 이 100개의 조각만 제대로 배치하면, 나머지 900개의 조각이 조금 잘못 놓여있거나 없어도 전체 그림을 알아볼 수 있다. 여기서 1000개의 퍼즐 조각은 포인트 클라우드의 모든 점들이다. 100개의 핵심 조각은 PointNet이 찾아낸 중요 포인트 집합(CS)이다. K(병목 차원)는 이 중요 포인트의 최대 개수이다.
네트워크는 전체 형상을 이해하는 데 필요한 '핵심 포인트'만을 학습
Experiment
PointNet의 실험 결과
- 3D 객체 분류:
- ModelNet40 데이터셋 사용
- 1024개의 점을 균일하게 샘플링하여 사용
- 데이터 증강: 회전 및 가우시안 노이즈 추가
- 결과: 3D 입력 기반 방법 중 최고 성능 달성
- 3D 객체 부분 분할:
- ShapeNet 부분 데이터셋 사용
- 평가 지표: mIoU (mean Intersection over Union)
- 결과: 기존 방법들보다 2.3% 향상된 mIoU 달성
- Kinect 시뮬레이션 데이터로 부분 스캔에 대한 강건성 테스트
- 장면 의미론적 분할:
- Stanford 3D 의미론적 파싱 데이터셋 사용
- 13개 카테고리에 대한 점 단위 분류 수행
- 9차원 특징 벡터 사용 (XYZ, RGB, 정규화된 위치)
- 결과: 기준 방법보다 큰 폭으로 성능 향상
- 3D 객체 탐지:
- 의미론적 분할 결과를 바탕으로 연결 요소 분석으로 객체 제안
- 기존 최고 성능 방법보다 가구 카테고리에서 큰 성능 향상
주요 특징:
- PointNet은 다양한 3D 인식 작업에서 우수한 성능을 보임
- 원시 포인트 클라우드를 직접 처리하는 최초의 방법
- 부분적인 데이터나 오클루전에 대해 강건함
- 계산 효율성이 높고 CPU에서도 쉽게 병렬화 가능
PointNet의 아키텍처 설계에 대한 분석
- 순서 불변 방법들의 비교:
- ModelNet40 형상 분류 문제를 사용하여 다양한 방법 비교
- 비교 대상: 정렬되지 않은/정렬된 점들에 대한 MLP, RNN 모델, 대칭 함수 기반 모델
- 결과: Max pooling 연산이 가장 우수한 성능을 보임
- 입력 및 특징 변환의 효과:
- 입력 변환: 0.8% 성능 향상
- 특징 변환: 정규화 손실 항이 필요함
- 두 변환과 정규화 항을 결합하여 최고 성능 달성
- 강건성 테스트:
- 다양한 입력 손상에 대한 PointNet의 강건성 평가
- 누락된 점들:
- 50% 점 누락 시 정확도 감소는 2.4%(가장 먼 점 샘플링) 또는 3.8%(무작위 샘플링)에 불과
- 이상치(Outlier) 점들:
- 20%의 점이 이상치일 때도 80% 이상의 정확도 유지
- (x, y, z) 좌표만 사용한 모델과 점 밀도를 추가한 모델 비교
- 점 교란(Perturbation):
- 점의 위치가 교란되어도 강건한 성능 유지
주요 시사점:
- Max pooling이 순서 불변성을 달성하는 가장 효과적인 방법임
- 입력 및 특징 변환이 성능 향상에 중요한 역할을 함
- PointNet은 다양한 유형의 입력 손상(누락, 이상치, 교란)에 대해 강건함
PointNet의 시각화 결과
- 중요 포인트 집합(CS)과 상한 형상(NS) 시각화:
- CS(Critical Set): 최대 풀링된 특징에 기여한 점들의 집합
- NS(Upper-bound Shape): 입력 점군 S와 동일한 전역 형상 특징 f(S)를 제공하는 가장 큰 가능한 점군
- CS의 특성:
- 형상의 골격을 요약함
- 전역 형상 특징 f(S)를 결정하는 핵심 점들
- NS의 의미:
- 입력 S와 동일한 전역 특징을 가질 수 있는 최대 점군
- 모서리 길이가 2인 큐브 내의 모든 점을 네트워크에 통과시켜 구성
- 강건성 반영:
- CS와 NS는 PointNet의 강건성을 보여줌
- 비중요 점들의 손실이 전역 형상 시그니처 f(S)를 변경하지 않음
- NS 구성 방법:
- 큐브 내의 모든 점을 네트워크에 통과시킴
- 점 함수 값 (h1(p), h2(p), ..., hK(p))이 전역 형상 기술자보다 작거나 같은 점들을 선택
이 시각화는 PointNet의 작동 원리를 직관적으로 이해하는 데 도움을 줍니다:
- 모델이 형상의 어떤 부분을 중요하게 여기는지 보여줌 (CS를 통해)
- 모델이 얼마나 많은 변형이나 노이즈를 허용할 수 있는지 나타냄 (NS를 통해)
- PointNet이 형상의 본질적인 구조를 어떻게 포착하는지 설명함
첫 번째 정렬 네트워크(T-net)는 입력 점들을 표준 위치로 변환
-> 예를 들어, 모든 의자 모델을 정면을 향하고 중심이 원점에 오도록 변환
-> T-net은 입력 점 집합에 대한 3x3 변환 행렬을 예측
각 점의 local 특징 벡터에 글로벌 특징 벡터를 연결
-> 각 점이 자신의 위치와 주변 구조(로컬), 그리고 전체 객체의 정보(글로벌)를 모두 고려할 수 있음
-> 각 점이 속한 부분(예: 의자의 다리, 등받이 등)을 전체 객체의 문맥을 고려하여 분류