point cloud 단점
irregular, unordered하다.
Key use a single symmetric function, max pooling.
PointNet
input : point cloud // Rigid, Affine Transformation 적용하기 쉬움
- Rigid transformation : 형태와 크기를 유지한 채, 위치와 방향만 바뀌는 변환(회전, 평행이동만 허용)
- Affine Transformation : 직선, 점들의 상대적 위치, 길이(거리)의 비, 평행성을 보존하는 변환
* 평행성 보존 : 교차하는 선, 평행하지도 교차하지도 않는 선을 보존한다.
output :
key point : point cloud중 informative한 sparse point를 select할 수 있는 최적화 함수를 학습하는 것이 목표이다.
현재 딥러닝 process는 정규화된 data(speech, language, video etc.)에 초점을 맞추고 있어, point sets에 대한 연구가 더 필요하다.
-> Unordered input sets을 sorting 하기 위해 attention의 'read-process-write' network를 사용한다.
point cloud = Set of 3D points({Pi|i=1,2,...,n})
Pi는 3차원 좌표(x,y,z)에 color등의 특성을 나타내는 channel을 추가한 것이지만, 본 논문에서는 3차원 좌표(x,y,z)만을 사용함
Classification : k개의 class에 대한 k score를 output으로 가짐
Semantic segmentation : n개의 points와 m semantic-subcategories에 대해 n*m score 출력함
Architecture
point cloud의 속성
a. Unordered : voxel, 2D image와 달리 순서가 없음. N개의 data는 가능한 N!개의 순열에 대해 순서를 유지해야 함
b. Interaction among points : 각 포인트는 거리라는 관계를 가지고 있음 따라서 각 포인트 간의 상호작용을 local point에서 확인할 수 있어야 함
c. Invariance ubder transformations : 특정 기하학적 변형에 대해 변하지 않아야 함
**중요 포인트 (Key modules) **
a. Symmetric function to aggregate information
b. Local & global information combination structure
c. Two joint alignment networks
기존 permutation invariant한 모델을 만든 세가지 방법
1) input 정렬(Canonical)
2) RNN 이용
3) Simple symmetric fuction
> 실험을 통한 3가지 방법 비교 결과 Max pooling의 성능이 가장 좋음
Max pooling 적용
1. n x 64의 행렬에서 모든 n에 대하여 MLP(multi layer perceptron) 적용
2. 결과로 nx1024의 행렬이 나오게 됨.
3. Max-pooling을 column에 대해 적용
4. 순서에 구애받지 않는 global feature를 추출해 낼 수 있음.
Simple symmetric function을 통해 permutation invariant한 모델을 만들자
= transformed element에 symmetric function을 적용하자
transformed element에 symmetric function을 적용하자
g : symmetric function, maxpooling
h : Multu Layer Perception(MLP)
- MLP는 가중치가 다양할 것이기 때문에 다양한 transformation을 할 수 있을 것이다.
f : 최종 함수, point cloud의 서로 다른 characteristic을 찾을 수 있는 function
- h, g를 근사하여 얻을 수 있음
Classification과 Segmentation의 차이는, Classification은 전체에 대해서 하나의 라벨이 필요하지만, Segmentation은 각 픽셀에 대하여 라벨링이 필요하기 때문에 neighborhood point와의 관계를 파악해야 한다.
* Segmentation에서는 neighborhood point와의 관계, local feature를 합쳐야 한다.
global feature
= classification을 하기 위한 feature.
= classification network에서 max-pooling을 통과하고 나온 output
local feature
= feature transform을 거치고 나온 feature
red : local feature
blue : global feature
orange : local and global informatin combination structure
목적 : 어떤 기하학적 변형에 대해서도 라벨링 결과가 변화하면 안된다. (ex. rigid transformation)
-> T-net을 이용하여 rigid transformation에 invariant를 유지한다
1) T-net의 역할
affine transformation matrix 예측
= orthogonal matrix로 변환
2) T-net이 orthogonal matrix를 만드는 과정
a. point wise로 feature extract
b. Max pooling
c. Fully Connected Layer
d. Regularize항 추가
3) orthogonal matrix : 각도와 길이 정보 보존할 수 있는 matrix
a. input transform(red)
Input의 feature 를 추출해 rotatio되어 있는 정도나 translation 되어있는 정도를 찾아 기존의 input point cloud와 3x3행렬로 계산
- 기존 point cloud에 affine transformation 적용하여 rigid transformation에 강해지도록 함(orthogonal matrix로 만듦)
- affine transformaton matrix A가 orthogonal matrix가 되면 input matrix에 곱해도 도형의 원래 고유 모양이 바뀌지 않는 rigid motion이 되기 때문
b. feature transform(blue) :
feature에서 transform하는 것이 spatial에서의 transform보다 고차원이기 때문에 loss function에 대한 optimization이 어려움. 따라서 더 차원이 높을수록 oryhogonal하게 만들기 위해 규제항을 추가
A matrix가 orthogonal하면 AA^T는 identity matrix됨.
-> 위의 Loss function을 minimize하는 A matrix는 orthogonal.
pointnet이 outlier나 missing data에 강한 이유
1. Universal Approximation
2. Bottleneck dimension and stability
dataset : ModelNet40
ModelNet40
mesh faces에서 1024개 points를 sampling한 후, unit sphere로 normalize
A. Comparison with Alternative Order-invariant Methods
4.2에서 언급했던 unordered input을 처리하는 방법에 대한 실험
1) MLP(unsorted input)
2) MLP(sorted input)
3) LSTM
LSTM의 성능이 가장 좋은 것을 확인할 수 있음
B. Effectiveness of Input and Feature Transformation
input과 feature에 대해 transformation했을 때 성능 향상 실험
transformation시 0.8% performance boost 보임
transformation과 regularization을 동시에 수행했을 때 가장 좋은 성능을 보임
C. Robustness Test
missing data와 outlier에 대한 성능 확인 실험
Furthest sampling & Random Sampling사용시 missing data ratio가 50%이상이 되어도 성능 저하가 각각 2.4%, 3.8%로 강건함
ouliert ratio가 20%가 되어도 80%이상의 Accuracy를 보임
*non-critical point를 잃는 경우는 global shape signature, f(S)에 영향을 주지 않는다.
🧠reference🧠
mIoU https://gaussian37.github.io/vision-segmentation-miou/
GaramJJang~