1. Introduction
Point cloud 데이터의 형태가 불규칙적이기 때문에 이전에는 3D voxel이나 이미지의 모음으로 데이터를 변환해서 사용을 했다. 이 과정에서의 렌더링은 많은 문제를 야기하기에 point cloud를 바로 학습할 수 있는 새로운 네트워크를 제시한다.
Image에 비해 Point cloud는
•
정형화 되어있지 않다. 매 순간 데이터의 개수가 변하고, 공간 상의 수많은 점들이 순서 없이 기록되어 있다.
•
Sparse하다. 이미지는 50x50 공간에 dense하게 정보가 있지만 PC는 드문드문 있다.
PC는 점들의 집합이기 때문에 permutation invariant하고, net computation에서 대칭이 필요하게 된다.
Permutation invariant
•
어떤 순서여도 같은 결과. (이미지나 언어처럼 순서가 있는 데이터를 다루는 CNN / RNN와 같은 모델에는 적용이 불가능한 조건)
PointNet은 PC를 직접적인 input 데이터로 사용할 수 있는 아키텍쳐를 가지고있다.
형태의 3D PC데이터를 input으로 넣으면 class나 point segment같은 정보를 출력한다.
이 모델의 중요 포인트는 대칭함수로 사용한 Max pooling이다. 네트워크가 유의미한 점을 선택하고, 선택의 이유를 encode한다.
마지막에 있는 FC layer에서 학습된 최적화된 값을 classification 또는 segmentation을 하게 된다.
3D 형태의 PC는 point들이 독립적으로 변환되어서 유클리드 변환 또는 아핀 변환에 쉽게 적용할 수 있다.
따라서 PointNet 이전에 데이터 정규화를 하는 STN을 추가해서 결과를 개선하였다.
STN: Spatial Transformer Network
•
CNN 단점: Spatially invariant하지 못함 → 위치 공간적인 변화에 약함(rotation, scale ..)
◦
local pooling의 효과는 크지 않고 범위가 한정적임
•
전체 Feature map에 대해 변환을 적용할 수 있어 효과가 좋다.
2. Related Work
Point Cloud Features
기존에는 대부분의 특징들이 수작업으로 진행되었다. 점들의 통계적인 속성을 encoding하고, 특정 transformation에 불변하도록 디자인된다.
이는 local 및 global 특징들로 나뉘어 지는데, optimal한 특징 조합을 찾는 것은 쉽지 않다.
Deep Learning on 3D data
3D 데이터는 다양하고 유명한 표현법들이 있어서 학습에 다양한 접근 방식이 있다.
1.
Volumetric CNNs: 복셀화된 형태에 3D CNN을 적용한 선구자이다. 하지만 sparsity problem으로 인한 비용 문제로 해상도에 많은 제약이 따른다.
2.
FPNN & Vote3D: 1번의 sparsity problem에 대한 특별한 방법을 제시하지만 큰 PC 데이터에서는 여전히 문제.
3.
Multiview CNNs: 3D PC 데이터를 2D 이미지에 렌더링하고 2D cnn을 태우는 방법을 사용했다. Classification과 검색 task에서 좋은 성능을 냈으나, 다른 3D task로 확장하는 것은 어렵다.
4.
Spectral CNNs: 최근 Mesh 데이터를 활용한 Spectral CNN를 사용한 모델이 있었지만, 일반적으로 non-isometric한 shape에 대해선 적용이 어렵다. → 동적인 형태를 말하는듯..?
5.
Feature-based DNNs: 3D data → Vector → FC layer를 통해 분류. 그러나 표현 능력에 제약.
Deep Learning on Unordered Sets
PC 데이터는 순서가 없는 벡터의 연속이다. 따라서 기존의 CNN과 RNN에는 적용하기 쉽지가 않다.
3.
Problem Statement 생략
4. Deep Learning on Point Sets
4.1 Properties of Point Sets in
PC는 세가지 특징을 가지고 있다.
1.
Unordered: 특별한 순서가 없는 점들의 set이기 때문에, 개의 점들에 대한 조합이 같은 결과를 출력해야한다.
2.
Interaction among points: 주변 점들과 연관성이 있기 때문에 주변 점들과의 local structure를 파악해야한다.
3.
Invariance under transformations: 회전과 이동같은 변화가 있더라도 global point cloud 특징이 변하면 안된다.
4.2 PointNet Architecture
PointNet의 전체 구조는 위와 같다. Classification과 Segmentation이 큰 비중을 두고 있는 모습이다.
이 네트워크의 중요한 모듈은 세가지가 있다.
Symmetry Function for Unordered Input
입력 순서에 invariant한 결과를 만들기 위한 세가지 전략
1.
입력 데이터를 canonical(정규화)하여 정렬한다.
2.
모든 순서에 대해 RNN으로 학습시킨다.
무작위 시퀀스를 RNN에 학습시켜서 RNN이 입력 순서에 invariant하길 바라는 기법이지만, OrderMatters에서는 순서가 무시될 수 없음을 말한다.
3.
위의 여러 문제로 인해 여기선 간단한 대칭함수를 사용한다.
is a symmetric function.
여기서 는 MLP이고 는 max pooling이다. 의 집합을 통해 많은 를 학습할 수 있게 된다.
여기서 는 PC 데이터의 여러 특성을 찾을 수 있는데 이를 로 근사시켜서 값을 찾겠다는 것이다. 왜 그렇게 되는건가 했는데 실험해봤더니 그렇다더라..
Local and Global information Aggregation
위에서 말한 연산을 통해 PC의 global feature를 출력으로 분류 문제를 해결할 수 있지만 Segmentation은 다르다. global feature와 local feature를 합쳐야 할 필요가 있다.
Global F는 MLP에 넣기전 max pooling을 한 부분에서 가져오고, max pooling 이전에 구한 local F를 concat해서 global + local 정보가 담긴 새로운 point F를 구한다.
Joint alignment Network
계속 말했듯이 PC가 geometric 변환을 거쳐도 semantic labeling은 invariant해야한다.
간단한 방법을 사용해서 문제를 해결하는데 바로 T-Net이다
이 T-Net을 이용해서 아핀 변환 행렬을 계산할 수 있기에 이 네트워크를 통과해도 같은 semantic labeling이 나온다면 invariant하다고 할 수 있는 것이다.
이 아이디어를 feature 공간의 alignment에도 확장시킬 수 있다.
Point F에 또 다른 align network를 삽입하고 서로 다른 입력 PC에서 나온 특징을 정렬하기 위한 feature transformation matrix를 예측 가능하다.
However, 특징 공간에서의 변환 행렬은 spatial transform 행렬보다 훨씬 높은 차원을 가지고 있어서 최적화에 어려움이 있다. 그래서 여기서는 feature transformation matrix를 직교 행렬에 가깝게 제약을 걸었다.
A는 작은 네트워크에 예측된 feature alignment 행렬. 정규화하는 부분을 추가한다면 최적화는 더 안정적이고 성능이 좋아진다는 것을 알 수 있었다.
4.3 Theorical analysis
Universal Approximation
PointNet은 작은 입력 차이에도 큰 변화를 일으키지 않는다. 이는 하우스도르프 거리(Hausdorff distance)로 측정된 두 집합 사이의 거리와 함수 값의 차이가 비례해야 한다는 것에서 알 수가 있다.
이런 부분은 Max pooling에 의해 근사가 가능하게 되었다.
Bottleneck Dimension and Stability
Max pooling은 PointNet의 네트워크에 큰 영향을 끼치는 것을 알 수가 있다. 입력 데이터에 노이즈가 있어도 출력 값이 크게 변하지 않는다.
수식적인 설명은 생략