컴퓨터비전

[논문 정리] PointNet : Deep Learning on Point Sets for 3D Classification and Segmentation

juice_moon 2022. 1. 14. 16:00

PointNet Concept

3D data를 사용할 때, convolutional 구조에서는 weight sharing과 kernel optimization으로 인해 정규화된 input이 필요하다. 따라서 아래의 point cloud는 순서가 정해져있지 않은 irregular format인 데이터이기 때문에 voxel이나 polygon으로 바꿔서 사용해야 한다.

하지만 이는 데이터의 모호성과 불필요한 volum이 있기 때문에, unorder된 point cloud 를 직접 사용하고자 한다.

 

이 논문에서 point cloud를 사용하기 위해 꼭 필요한 특징이 크게 2가지가 있다.

invariant to permutations of its members

- input 순서가 바뀌어도 동일한 output 도출

invariance to rigid motion

- transform에도 동일한 output 도출

 

1) invariant to permutations of its members

point cloud가 다른 순서로 들어와도 동일한 output이 도출되기 위해서 Symmetric Function을 이용한다.

(Symmetric Function: 변수의 교환에 대하여 변하지 않는 함수, 예를 들어 Max나 덧셈으로만 이루어진 함수는 symmetric Function)

 

=> PointNet에서는 Max pooling을 이용하여 순서에 영향을 받지 않고자 함.

 

2) invariance to rigid motion

rigid motion에 invariance하도록 한다. rigid motion이 존재해도 동일한 output이 도출되도록 해야한다. 

(rigid motion: 모양의 변화가 없는 즉, transformation matrix가 orthogonal matrix)

 

=> PointNet에서는 T-Net이라는 mini network를 통해 affine transformation matrix를 예측하는데, 이때 rigid transformation을 학습으로 알아내는 것은 힘들다. 따라서 orthogonal matrix가 rigid transformation임을 이용하여 이를 통해 변환을 진행함.

orthogonal matrix 특징

 

T-Net을 사용하여 data transformed 진행

PointNet Architecture

각 포인트들의 기본 세팅은 (x,y,z)로 진행, 추가적인 차원을 추가할 수 있다. 

 

1) Classfication

mlp를 통해 local 공간에 embedding한 후, Max pooling을 통해서 global feature를 얻는다. 이후 이 feature들이 mlp를 거쳐 classficiation을 진행한다.

 

2) Segmentation

segmentation은 local 정보 또한 갖어야 하기 때문에, local feature의 정보를 얻기 위해서 중간 mlp를 통해 각 point마다 나온 64개의 local feature와 1024개의 global feature를 concat한다. 이후 이 feature들이 mlp를 거쳐 output 도출한다.

 

PointNet Robustness

PointNet에서 point들의 개수가 줄어들어도 비슷한 성능을 도출하는데, input point가 64개일때와 2048개일 때 accuracy의 차이가 3%정도 밖에 차이가 나지 않는다. 단순히 mlp와 max pooling을 거쳐 도출한 결과가 robust한 이유는 무엇인지 알아보고자 한다. 

 

본 논문에서는 point cloud set에는 2가지의 종류가 있다고 설명한다. 

1) Critical point set: global feature를 가진 point의 집합.

2) Upper bound set: global feature에 영향을 주지 않는 point의 집합

Point cloud Set의 종류

이때 PointNet에 입력되는 point set이 일부의 critical point와 upper bound에 존재하는 point들의 집합으로 이루어져 있으면, 동일한 output을 출력하게 된다. 이에 대한 증명은 논문에 있으니 참고하면 좋을 것 같다. 

 

단순히 점들의 좌표를 이용하여 3D 물체의 classification과 segmentation이 가능하다는 것이 흥미로웠다. 하지만 이 논문은 정확한 local을 반영하지 못하다는 단점이 있다. 이를 보완한 것이 PointNet++인데, 읽어보면 좋을 것 같다. 

 

그림 출처: http://stanford.edu/~rqi/pointnet/docs/cvpr17_pointnet_slides.pdf

논문: https://openaccess.thecvf.com/content_cvpr_2017/papers/Qi_PointNet_Deep_Learning_CVPR_2017_paper.pdf

Standford PointNet 페이지: http://stanford.edu/~rqi/pointnet/

 

PointNet

PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation Charles R. Qi*     Hao Su*     Kaichun Mo     Leonidas J. Guibas     Stanford University Conference on Computer Vision and Pattern Recognition (CVPR) 2017 Figure 1. Applic

stanford.edu