👩‍💻 도비는 공부중/📋 연구과제(2023.7 ~ )

PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

오모짱_ 2023. 7. 30. 17:00

[ 2023.07 ] 이해 X..

 

 


 

논문: PointNet++: Deep Hierarchical Feature Learning onPoint Sets in a Metric Space

 

 Charles R. Qi: 인공지능과 컴퓨터 비전 분야의 연구자

 Li Yi: 컴퓨터 비전, 그래픽스 분야의 연구자

Hao Su: 컴퓨터 비전, 그래픽스 분야의 연구자

Leonidas J. Guibas: 그래프 이론, 기하학 등에 대한 기여로 널리 알려짐.

 

=> 딥러닝과 기하학 융합한 3D 모델의 생성, 분류. 등 다양한 알고리즘 개발, 연구 수행

 

[포인트 클라우드 데이터를 다루기 위한 딥러닝 방법 제안, 3D  모델의 분류 및 세그멘테이션 작업에 효과적으로 적용]


Abstract

 

집합에 대한 이전 연구(Point Net)

=> 점들이 존재하는 공간의 지역적 구조 not capture =>  미세한 패턴 인식하거나 복잡한 장면에 대한 일반화 능력이 제한된다

 

본 논문은 입력 집합을 계층적으로 분할해 PointNet을 반복적으로 적용하는 신경망 제안.

Exploting metric space distance: 제안하는 신경망은 지역적 특징을 학습할 수 있다. = 집합의 세부적인 패턴을 학습하고 일반화 능력 향상

 

❍ 집합: 일반적으로 다양한 밀도로 샘플링되기 때문에 균일한 밀도로 훈련된 네트워크의 성능이 크게 감소

주어진 공간 내에서 점들이 서로 다른 간격으로 배치되는 것, EX) 3D 공간에 점들이 분포할 때, 일부 지역에서는 점들이 매우 가깝게 모여있지만, 다른 지역에서는 멀리 떨어져 있을 수 있어 => 일정한 간격으로 샘플링 되기 어려워

 

실험 결과 PointNet++ 는 점 집합 특징을 학습할 수 있다.

Results significantly better than state-of-the-art have been obtained on challenging benchmarks of 3D point cloud.

 


1. Introduction

PointNet: 점 집합을 직접 처리

각 점에 대해 spatial encoding 학습 -> aggregate 모든 점들의 특징 -> global point cloud signiture로 모아

한계: local structure induced by the metric 포착하지 못해

local structure dms CNN에 중요한 요소, 계층 구조를 통해 지역적 패턴 추상화 -> 새로운 경우에 더 나은 일반화 능력을 얻는다

 

PointNet++

metric space에서 샘플링된 점들을 계층적으로 처리하는 신경망

(1) partition the set of points into overlapping local regions (by distance metric)

CNN과 비슷하게 작은 이웃 지역에서 local feature 추출 => 큰 유닛으로 그룹화 되고 높은 수준의 특징 생성

=> 전체 집합의 특징을 얻을 때까지 반복

 

 

1. how to generate the partitioning of the point set

2. how to abstract sets of points or local features through a local feature learner

 

집합의 분할은 local feature learner의 가중치를 공유할 수 있어야 해 <-> CNN 과 유사하게 동작

PointNet:  abstracts sets of local points or features into higher-level representations

Pointnet++: 입력 집합을 중첩된 분할에 대해 재귀적으로 PointNet 적용

-> 3D point cloud 같은 비정형 데이터에 효과적

 

🙋‍♀️ how to generate overlapping partitioning of a point set

각 partition은 유클리드 공간에서 이웃으로 정의, 중심 거리와 크기를 매개변수로 가짐

전체 집합을 커버하기 위해 중심 위치(centroid)들은 input 집합 중에서 FPS: Farthest Point Sampling 알고리즘 📍에 의해 선택된다. 

 

고정된 stride로 공간을 스캔하는 volumetric CNN과 달리 <-> local receptive field는 입력 데이터와 metric에 dependent.

>> local receptive field를 유연하게 설정 가능

 

적절한 이웃 반경의 크기를 결정하는 것 어려워 <= entanglemnet of feature scale 과 입력 집합의 non-uniformity 때문에

>> input point set은 다른 지역에서 가변적인 밀도를 가질 수 있다고 가정

Figure 1: Visualization of a scan captured from a Structure Sensor (left: RGB; right: point cloud).

 

CNN에서 local partition scale는 kernel 크기이다. 작은 kernel을 사용하는 것이 성능 향상에 도움.

논문에서 수행한 집합 데이터는 이와 대조적인 결과.

작은 neighborhood는 샘플링 결함으로 인해 너무 작은 점들로 구성되, PointNet이 패턴을 포착하는데 어려움

 

[Contribution]

- leverages neighborhoods at multiple scales to achieve both robustness and detail capture.

다중 스케일 이웃을 활용해 robustness와 세부 정보 캡처 달성

- 훈련 중 무작위 dropout: 네트워크는 다른 스케일에서 감지된 패턴 적응적으로 가중치 부여, 입력 데이터에 따라 다중 스케일 특징을 결합하는 방법 학습

 

=> Process point sets efficiently and robustly. 특히 3D point cloud에서 크게 차이나는 결과

 


2. Problem Statement

 

 

 

 

 

 

 


3. Method

 

PointNet + 계층 구조 = non-uniformly sampled point set에서도 특징 잘 학습 가능

 

 

3.1 Review of PointNet [20]: A Universal Continuous Set Function Approximator

 

집합 함수 f: 점들의 집합을 벡터로 매핑, 순서 무관하게 임의의 연속 집함 함수 근사

γ,  h: multi-layer perception (MLP): h=wjadml rhdrks dlszheld

 

PointNet은 다양한 스케일의 local context 포착하는 능력 부족 => 계층적 특징 학습 프레임워크 소개

 

Figure 2

 

 

3.2 Hierarchical Point Set Feature Learning

 

PointNet: 전체 점 집합을 집계하기 위해 single max pooling operation 사용

-> 점들을 계층적으로 그룹화 -> 점진적으로 더 큰 local region으로 추상화

 

Fig 2. 와 같이 여러 개의 집합 추상화 수준으로 구성. 각 level에서 점 집합 처리/추상화

-> 더 적은 요소를 가지는 새로운 집합 생성

-> 추상화 수준은 sampling layer, grouping laver, PointNet layer

 

(1) Sampling layer 

입력 점들로부터 일부 점 선택 -> 지역 영역의 centroid  정의

 

입력 점들이 주어졌을 때 FPS 사용해 하위 집합 선택

<-> 랜덤 샘플링과 비교 | 같은 수의 중심점이 주어졌을 때 더 나은 커버리지

데이터에 종속적인 방식으로 receptive field 생성

 

 

(2) Grouping layer

constructs local region sets: 이웃 점들을 찾아 local region set 구성

 

해당 layer의 출력은 점 집합을 N'개의 로컬 영역으로 그룹화 한 것.

각 그룹의 중심점 주변의 K개의 점으로 구성, d 차원 좌표와 C 차원의 특징 가져

 

PointNet layer에서 로컬 영역 특징을 고정 길이 벡터로 변환해 처리한다.

=> PointNet++ 은 다양한 크기와 구성의 로컬 영역 다룰 수 있고 입력 데이터에 유연한 특징 추출 가능

 

* CNN에서 local region은 해당 픽셀로부터 일정한 Manhattan distance(kernel size) 내의 배열 인덱스 갖는 픽셀로 구성

* Point set sampled from a metric space: 이웃은 metric distance로 정의

 

Ball query📍 :query point 으로부터 반경 내에 있는 모든 점 찾아.

(alterative range query = kNN, 고정된 개수의 인접한 점 찾기)

kNN과 달리, ball query는 fixed region scale을 보장해 지역 영역 특징이 공간적으로 더 일반화되도록 ㅇㅇ

 

 

(3) PointNet layer

local region pattern 을 특징 벡터로 인코딩 하기 위해 mini-PointNet 사용

 

N' 개의 점으로 이루어진 로컬 영역, 입력 데이터 크기 = N'*K'*(d+C)

각 local region 은 중심점과 이웃 정보를 인코딩한 local 특징으로 추상화, 출력 데이터 크기 = N' * (d+C')

 

local 영역 내의 좌표는 중심점을 기준으로 상대적 좌표로 변환해 사용

각 점을 중심점 기준으로 나타낼 수 있어 -> PointNet 이용해 local 영역의 패턴 학습 가능

점들의 상대적 관계 캡처해 로컬 영억 특징 추출

 

 

3.3 Robust Feature Learning under Non-Uniform Sampling Density

 

point set > non-uniform density (different areas) > 특징 학습 어려워

dense data 에서 학습된 특징들은 샘플링된 지역에 일반화 X

=> spase point cloud 에 대해 훈련된 모델은 fine-grained local structures 인식하기 힘듦

 

===

point set을 가능한 정밀하게 , 높은 밀도 지역에서 미세한 정보까지 원해- local pattern이 샘플링 deficiency로 손상될 수 있어>> 더 넓은 범위에서 패턴 찾아야 해, 밀도에 적응하는 PointNet 제안: learn to combine features from regions of different scales when the input sampling density changes.

 

===이전: 각 abstraction level마다 single scales  grouping과 특징 추출 포함

 

=> abstraction level마다 multi scales 의 지역 패턴과 이를 local point densities(MSG & MRG)와 결합

 

 

(a) Multi-scale grouping (b) Multi-resolution grouping

dense region-> detail feature 학습 가능

<-> sparse: sampling point 부족 === 넓은 영역에서의 패턴 찾아야해

밀도에 따른 adaptive 학습 ? Point layer 추가

 

* grouping 하는 local region에 따라

* 여러 scale의 feature 합치는 방법

 

Multi-scale grouping (MSG)

 

다른 scale로 그루핑 layer 적용, PointNet 사용해 특징 추출 > concatenate > multi scale feature 형성

> multi-scale Feature gkrtmqgkrl dnlgo 

 

 

random input dropout 사용해 네트워크 훈련

drop out ratio θ uniformly sampled from [0, p]

네트워크에 various sparsity, uniformity wprhd

 

-> 각 중심점에 대해 local PointNet을 넓은 범위의 이웃에서 실행: 계산 비용 많이 들어

-> 최하위 수준에서 중심점 많아 시간 비용 크다

 

 

Multi-resolution grouping (MRG) 📌

 

MSG는 모든 centroid point에 대해서 넒은 영역의 neighborhood를 input으로 한PointNet을 사용하기 때문에 computationally expensive

density가 낮으면 앞의 vector가 뒤의 vector에 비해 신뢰도가 낮아지므로 , 뒤의 vector에 weight에 더 높은 가중치

 

low-level, large-scale의 neighborhood에 대해 특칭 추출할 때 효과적..

 

 

 

3.4 Point Feature Propagation for Set Segmentation

 

Set abstraction layer: original point set -> subsampled

 

* set segmentation (ex_ semantic point labeling)

WANT: obtain point feature for all original points.

 

[해결방법]

-> sample all point as centroids (all set abstraction levels)

-> propagate features from subsampled point to origianl points

 

===

* hierarchical propagation strategy with distance based interpolation

 

Propagation: Ni*(d+C) 점 -> Ni-1로 전파 (level i의 입력과 출력의 점 집합 크기)

(보간 방법 kNN)

 

 


4. Experiments

 

 

4.1 Point Set Classification in Euclidean Metric Space

 

 

4.2 Point Set Segmentation for Semantic Scene Labeling

 

 

 

4.3 Point Set Classification in Non-Euclidean Metric Space

 

4.4 Feature Visualization.

 


5. Related Work

 

* distance metric, 정렬되지 않은 point set Convolution 적용되지 않는다

 

순서 없는 set에 딥러닝 적용 > local context capture X, global set 변환/정규화에 민감

 


   6. Conclusion

 

메트릭 공간에서 샘플링된 point set 처리하기 위한 신경망

입력 point set 중첩 분할 > 반복 > 거리 metric과 관련된 계층적 특징 학습

 

 

균일하지 않은 point sampling 문제 > local point 밀도에 따라 multi-scale 정보 집계

2개의 abstraction layer(MSG/MRG)

=> 각 계층에 더 많은 계산 > 추론 속도 가속화

 

Local feature extraction

= scale/dense variety 문제 해결


PointNet, metric space local structure 학습시 반영하지 못한 점 보완

> 작은 pattern에 대한 인식

> complex scene 에 대한 일반화 높여

 

* input point set > nested partitioning > PointNet : recursive 적용

>> hierachical neural network 

 

* point set partition 생성 방법

* local feature learniner(PointNet) 통해 추상화 방법

= 각 partition은 Convolution과 비슷하게 가중치 공유하는 공통 구조 필요

 

 

여러개의 set abstraction layer 

- sample / group / PointNet layer

 

 


++ PointNet

PointNet: Classification & Segmentation Network

* Point Cloud - PointNet

- Unordered: 데이터 정렬 기준 정할 수 없음 <- 순서 없음 = 딥러닝에서 치명적

- Interaction among points, 이웃 점들과의 관계

- Invariance under transformation, 변환줘도 출력 결과 같아야 함