PointNet : Deep Learning on Point Sets for 3D Classification and Segmentation
요약
본 논문은 보통 Pointcloud를 CNN에서 Input data로 사용할 때 voxel이나 Image로 변환하는 방법을 사용하지만, 논문에서는 Pointcloud를 그대로 적용할 수 있는 방법을 설명한다.
Input data 가 Pointcloud일 때 해결 해야할 문제들!
1) Unordered : Point들은 정렬되있지 않는다.
- 따라서 이미지의 픽셀 배열이나 Volumetric grid, Voxel 배열과 다름
- PointCloud는 point 집합으로 이루어져 있어서 정렬이 없다.
2) interatcion among Points : 각 points 사이의 상호작용 학습 필요
- The points are from a space with a distance metric : point들은 distance metric공간에 있음 이것은 각각이 독립적이지 않고 근접한 subset으로 구성되었다는 의미 -> 이것을 local structres 사이의 상호작용을 가짐 인접한 Point들의 local structure를 학습해야하고 또한 local structure 사이의 결합도 학습해야함
- 즉, point cloud들은 다른 데이터와 distance를 통해 의미를 찾아야한다는 뜻
3) Invariance under transformation
- 기하학적인 object로 point set의 표현은 특정한 변환에 불변해야함.
- Point 전체에 대한 회전 변환 이동변환을 하더라도 global point cloud 의 category나 point들의 segmentation 변화는 없어야한다.
- 강체의 transformation이 있어도 그것을 각각 물체로 인식해야한다는 것이다 사람이 거꾸로 있든 옆으로 있든 사람으로 인식해야한다는 것이다.
Symmetric 한 function으로 max pooling 함수를 제시 한 것
- local feature를 global feature와 함께 사용해서 segmentation이 가능하도록 했다 : 각 pixel 별로 output을 계산해야함으로
- Spatial Transformer network(STN)을 사용한다. (3)번 문제 해결을 위해서 : image를 orthogonal하게 만드는 것임 feature를 뽑기 전에
Abstract
- Point cloud
1) geometric data structure
2) 불규칙한 형식을 가지고 있어서 3D voxel grid 또는 collections of images 로 변환해야함- Point cloud 요약에는 좋지만 빈공간이 많이 발생하여, 비효율적인 부분이 있다.
- 데이터가 불필요하게 방대해져서 문제가 발생
- Voxel : voxelization은 pointcloud를 voxel화 해주는 기능이다. 이과정에서 voxel의 크기를 지정해 주고 크기내 점들의 평균을 내어 pointcloud를 재 기술 해주는 것입니다. 한 공간을 Leaf라고 가정할 때 그 크기 내의 점들의 평균을 내어 pointcloud를 재기술 하는 것임
이 논문에서는 "입력 포인트의 순열 불변성을 잘 존중하는 포인트 클라우드를 직접 사용하는 새로운 유형의 신경망을 설계" PointNet이라고 이름을 지칭할 것이고, 이것은 네트워크의 분류, 부분 분할 장면 의미 분석 등 여러가지에서 강력한 성능을 보여줌
Introduction
- 보통은 3D point cloud는 irregular한 데이터 특성 때문에 2D 이미지 혹은 3D voxel형식으로 변환해서 CNN에 입력합니다. 이 경우에 불필요하게 커다란 형태로 표현되거나 정보의 손실이 발생할 수 있음
- 위와 같은 문제를 해결하기 위하여 저자는 다음과 같은 점을 반영하여 3D Point cloud를 변환하지 않고 directly 하게 입력으로 사용하는 신경망 모델을 제안함.
- unordered한 3D point cloud 데이터를 위한 Deep Net Architecture 제언
- 제않한 Architecture를 이용한 3D shape classification, Shape part segmentation, Scene Semantic Parsing의 성능
- Stability, efficiency 측면에서의 실험적, 이론적 분석
- 3D feature 시각화, Architecture 성능 직관적 설명
- 불규칙하고 구조적이지 않은 데이터를 랜더링 하지 않고 직접 다루기 위해 만족해야하는 것
1) Permutation invariantPoint 들이 불규칙 상태로 주어지기 때문에 순서 없이 오더라도 output이 달라지지 않아야 함
- N개의 point가 존재할 때 순성의 경우의 수는 N!일 것이다. 따라서 N! 경우의 수 모두에서 output이 일치하도록 network가 동작해야함.
2) Rigid motion invariant : Rigid motion transformation을 해도 point간의 distance와 방향은 유지되어야함
- 4가지 경우가 있다 Translation Rotation, Reflection, Glide reflection ( reflection + dtranslation )
- 한마디로 물체 자체에 대한 변형이 없어야 한다는 뜻
The key contributions of our work are as follows:
• We design a novel deep net architecture suitable for consuming unordered point sets in 3D;
• We show how such a net can be trained to perform 3D shape classification, shape part segmentation and scene semantic parsing tasks;
• We provide thorough empirical and theoretical analysis on the stability and efficiency of our method;
• We illustrate the 3D features computed by the selected neurons in the net and develop intuitive explanations for its performance.
The problem of processing unordered sets by neural nets is a very general and fundamental problem – we expect that our ideas can be transferred to other domains as well.
quantization : 양자화: 좀더 자세히 말하면, Quantization 은 32 bit 소숫점 보다 좀더 compact 하게 저장하고 연산하기 위한 - 정보의 압축
Related Work
1) Point cloud Features :
intrinsic
- M. Aubry, U. Schlickewei, and D. Cremers. The wave kernel signature: A quantum mechanical approach to shape analysis.
- A concise and provably informative multi-scale signature based on heat diffusion.
- Scale-invariant heat kernel signatures for non-rigid shape recognition
extrinsic
- Aligning point cloud views using persistent feature histograms.
- Fast point feature histograms (fpfh) for 3d registration.
- Shape classification using the inner-distance
- Using spin images for efficient object recognition in cluttered 3d scenes
- On visual similarity based 3d model retrieval.
2) Deep Learning on 3D data :
Volumetric CNNs
- 3d shapenets: A deep representation for volumetric shapes
- A 3d convolutional neural network for real-time object recognition.
- Volumetric and multi-view cnns for object classification on 3d data.
FPNN [13]
Vote3D [26]
3D points cloud data
- colab 바로 : https://colab.research.google.com/github/nikitakaraevv/pointnet/blob/master/nbs/PointNetClass.ipynb
|____- model : https://paperswithcode.com/dataset/modelnet
Problem Statement
- Deep learning framework에 unordered 한 point sets을 인풋으로 주기 위해서 우리는 point cloud를 3D points인 Pi(x, y, z) vector로 표현할 것이다.
- object classification task 로 input point cloud를 shape or pre-segmented의 sampled로 받는다
- object 혹은 3D scene의 일정 부분이 입력으로 사용되고 n개의 point : m개의 semantic subcaterggories 점수를 출력함
- output : n × m scores
Deep Learning on Point Sets
4.1. Properties of Point Sets in ${R^n}$
- Input data의 문제
1) Unordered : Point들은 정렬되있지 않는다.
- 따라서 이미지의 픽셀 배열이나 Volumetric grid, Voxel 배열과 다름
- PointCloud는 point 집합으로 이루어져 있어서 정렬이 없다.
2) interatcion among Points : 각 points 사이의 상호작용 학습 필요
- The points are from a space with a distance metric : point들은 distance metric공간에 있음 이것은 각각이 독립적이지 않고 근접한 subset으로 구성되었다는 의미 -> 이것을 local structres 사이의 상호작용을 가짐 인접한 Point들의 local structure를 학습해야하고 또한 local structure 사이의 결합도 학습해야함
- 즉, point cloud들은 다른 데이터와 distance를 통해 의미를 찾아야한다는 뜻
3) Invariance under transformation
- 기하학적인 object로 point set의 표현은 특정한 변환에 불변해야함.
- Point 전체에 대한 회전 변환 이동변환을 하더라도 global point cloud 의 category나 point들의 segmentation 변화는 없어야한다.
- 강체의 transformation이 있어도 그것을 각각 물체로 인식해야한다는 것이다 사람이 거꾸로 있든 옆으로 있든 사람으로 인식해야한다는 것이다.
4.2. PointNet Architecture
1) Symmetry Function for Unordered Input
- 모델의 입력순서가 달라져도 output을 불변하게 하는 전략은 3가지가 있다.
(1) 입력데이터를 canonical order로 정렬하는법
(2) Input data를 RNN으로 학습하여 모든 입력 순서에 대해서 같은 결과가 나오도록 학습하는 방법
(3) 각 Point 정보를 통합하는 symmetric function을 사용하는 법 : Canonical order는 정규형식 또는 표준형식을 따르는 정렬 방법인데, 어떤 특정 정렬 알고리즘을 뜻하디 않는다. :: ex) 덧셈, 곱셈 등의 연산이 있다.
- 이 방법이 쉬울 것 같지만 차원이 높을 때 안정한 방법은 아니다. 그러나 Point set 실험을 통해 정렬되지 않은 point set과 비교하여 아주 약간의 성능을 이뤘다.
(2)의 방법을 이용하여 학습하는 경우를 생각해 보자! - 이 방법은 방대한 양의 Pointcloud에 학습하기 매우 어렵다.
다음과 같은 결과 처럼 Pointnet에 비해 성능이 떨어지는 것을 볼 수 있다.
Symmetric function으로 Max pooling 함수 제시
본 논문은 Symmetric function을 통해 순서에 상관없는 결과를 낼 수 있도록 하였는데, Symmetric function을 적용하여 일반 함수를 근사하는 방식을 사용하는 것이다.
$h$는 $N$ 차원의 vector를 $K$ 차원으로 맵핑하는 함수
2) Local and Global Information Aggregation
- global feature 뿐만 아니라 local feature로 함께 이용되어져야함
3) Joint Alignment Network
- 변화의 영향을 받지 않아야 한다.
- 해결 방법은 특징 추출 전에 모든 입력을 **canonical space **에 정렬 하는것이다.
[9] M. Jaderberg, K. Simonyan, A. Zisserman, et al. Spatial transformer networks. In NIPS 2015. 4
이 방법은 추후 특징 공간을 정렬 하는데도 활용 될수 있다. 하지만 transformation matrix 고차원이라 최적화가 어려워 본 논문에서는 은 softmax training loss에 regularization을 포함
- T-net을 통해 구해진 특징 정렬 매트릭스 이다.
4.3. Theoretical Analysis
4.3. Theoretical Analysis
1) Universal approximation
1-1) Theorem 1.
2) Bottleneck dimension and stability
2-2) Theorem 2.
Experiment
5.1 Applications
1) 3D object classification
2) 3D objecct Part Segmentation
3) Semantic Segmentation in Scenes
5.2 Architecture Design Analysis
1) comparison with Alternative Order-invariant Methods
2) Effectiveness of Input and Feature Transformations
3) Robustness Test
5.3. Visualizing PointNet
5.4. Time and Space Complexity Analysis
github
- 스탠포드대 : http://stanford.edu/~rqi/pointnet/
- keras : https://github.com/garyli1019/pointnet-keras
- pytorch : https://github.com/fxia22/pointnet.pytorch
- Tensorflow : https://github.com/charlesq34/pointnet
- open3d활용 pytorch : https://github.com/IntelVCL/Open3D-PointNet
- Semantic3D (semantic-8) segmentation with Open3D and PointNet++ : https://github.com/IntelVCL/Open3D-PointNet2-Semantic3D
- pointnet-autoencoder : https://github.com/charlesq34/pointnet-autoencoder
[참고]
https://github.com/charlesq34/pointnet
https://github.com/adioshun/gitPaper_3D_Object_Detection_Tracking/blob/master/Detection/2017-pointnet-deep-learning-on-point-sets-for-3d-classification-and-segmentation.md
https://ganghee-lee.tistory.com/50
http://daddynkidsmakers.blogspot.com/2017/07/3-pointnet.html
'PaperReview-Practice > PaperReviews' 카테고리의 다른 글
[논문리뷰] NeRF: Representing Scenes asNeural Radiance Fields for View Synthesis (0) | 2023.06.01 |
---|---|
[논문소개] Collision avoidance (0) | 2022.12.27 |
Social aware robot , 로봇 충돌회피 방법 _based on reinforcement learning [1] (2017) Dece (0) | 2022.07.27 |
[논문리뷰]Manipulation Grasping [Vision-based Robotic Grasping From Object Localizat (0) | 2022.03.05 |
[논문리뷰 - 6dof pose estimation] PoseCNN (0) | 2021.12.20 |