이번에 리뷰할 논문은 PointNet의 후속연구인 PointNet++이다.
Lidar Point Cloud Backbone Network로 사용되는 모델이다.
PointNet은 한 번의 global max pooling을 사용하기 때문에 local structure를 유추하기 어렵다. 때문에 fine-grained pattern을 파악하기 어렵고, 복잡한 장면을 분석하는데 한계가 있다.
본 연구에서는 이러한 한계를 극복하고자 재귀적인 PointNet을 사용하여 계층적 모델을 구조를 설계하였다.
Introduction
기존 PointNet의 구조는 개별 점들의 정보를 통합하여 전체 구조를 이해하는 데는 뛰어나지만, 점들 사이의 작은 구조적 차이나 미묘한 패턴을 파악하는 데는 상대적으로 덜 효과적이다. 이를 해결하고자 계층적 구조인 PointNet++를 제안한다.
PointNet++는 다음과 같은 단계로 진행된다.
1. point의 집합을 거리에 기반하여 분할한다. 즉, 가까운 점들간의 집합을 분할한다. 이 때, 각 지역적인 영역은 겹칠 수 있다.
2. 지역적 영역의 특징을 추출한다. 이를 통해 각 지역에서 점들의 배치로 인한 기하학적 구조를 파악한다.
3. 추출된 지역적 특징들을 더 큰 단위로 그룹화 하고, 고수준의 특징을 처리한다.
4. 위 과정을 반복하여 CNN과 같은 계층적 구조와 같이 최종적으로는 전체 데이터의 구조와 패턴을 파악한다.
이를 위해 PointNet++에서 다루는 문제는 크게 두 가지로 나누어 볼 수 있다.
1. point의 집합을 생성하는 것 -> PointNet 사용
2. 각 지역적인 집합의 차이와 관계없이 특징을 잘 추출할 수 있는 local feature learner -> FPS algorithm 사용
본 논문에서 local feature learner로 unordered, corruption 에 강인한 Point Net을 사용하여 2번 문제를 다루었다.
point의 집합은 유클리드 공간에서의 neigborhood ball 로 정의하였다. 매개변수로는 centroid, scale을 가진다.
중심점은 모든 데이터를 균등하게 커버하기 위해 FPS(farthest point sampling) 알고리즘을 사용하여 1번 문제를 다루었다.
Method
Review of PointNet
PointNet은 위와 같은 수식으로 정의할 수 있다.
unordered point set $${x_1, x_2,... , x_n}$$을 입력으로 받아 spatial encoding(h), max pooling, MLP를 거쳐 feature를 추출한다.
Hierarchical Point Set Feature Learning
PointNet이 하나의 global max pooling을 사용하는 것과 다르게, 본 논문에서는 계층적 구조를 사용하여 작은 영역부터 점차 큰 영역 까지 파악한다.
계층적 구조는 여러 개의 set abstraction level로 구성되는데 각 level은 세 개의 layer로 구성된다.
1. Sampling layer: 입력으로부터 point set을 설정한다. == local 영역의 centroid 설정
2. Grouping layer: 이웃된 점들을 찾아 그룹화 한다. == local 영역의 scale 설정
3. PointNet layer: local 영역의 패턴을 feature vector로 encoding 한다.
1. Sampling layer
$${x_1, x_2,... , x_n}$$을 입력으로 받아 FPS(farthest point sampling) 알고리즘을 거쳐 subset of points를 설정한다. 즉, 모든 데이터들을 잘 표현할 수 있는 대표 샘플을 설정한다고 볼 수 있다. 여기서 FPS 알고리즘은 다른 샘플과 가장 먼 거리에 있는 샘플들을 대표로 설정하는 알고리즘으로 이해하였다.
이러한 방식으로 local 영역의 centroid를 설정함으로써 데이터에 dependent한 receptive field를 설정할 수 있다는 장점을 가진다.
FPS -> subset of points == local region centroid == receptive field 기준
2. Grouping layer
Sampling layer에서 설정한 centroid를 기준으로 neigborhood 점들을 설정하여 그룹화한다. 이 때, centroid에 이웃한 점들의 개수를 K라고 설정하였는데 이는 그룹마다 차이가 있을 수 있다. PointNet layer는 point 수에 flexible하기 때문에 이러한 접근 방식이 가능하다.
즉, point set의 point 수를 고정할 필요가 없다.
centroid의 neigborhood는 metric 거리(실제 공간적 거리)에 의해 결정된다.
Ball query방식은 query(=centroid)를 기준으로 일정 거리 안에 존재하는 점을 찾는 방법으로(최대 개수 설정 가능) kNN 방식에 비해 놓치는 local 영역 없이 일반화하는데 유리하다.
Ball query -> group of points == local region == receptive field
3. PointNet layer
centroid를 기준으로 그 neigborhood를 포함하는 set of points의 특징을 추출하는 작업을 거친다.
즉, 여기서 set of points가 데이터 전체가 아닌 local 영역으로 수행된다.
Robust Feature Learning under Non-Uniform Sampling Density
이상적으로는, 밀집된 영역에서 세밀한 디테일을 캡처하기 위해 점 집합을 가능한 가까이에서 조사해야 한다.
하지만, 밀도가 낮은 지역에서는 샘플링의 부족으로 인해 로컬 패턴이 손상될 수 있기 때문에 이러한 근접한 조사를 할 수 없다.
따라서 본 논문에서 density adaptive PointNet layers를 제안한다. 이는 입력 샘플링 density가 변할 때 마다 다른 규모의 영역에서 특징을 결합하는 방식을 취한다.
1. Multi-scale grouping(MSG)
다양한 scale의 영역에서 feature를 추출하고 concat하여 사용한다.
학습 시 입력 point를 랜덤하게 drop out하여 다양한 크기의 영역을 사용하게끔 유도한다.
2. Multi-resolution grouping(MRG)
MSG는 각 centroid의 neigborhood에 대해 local PointNet을 수행하기 때문에 비용이 높다는 문제가 있다. 이는 특히 low level에서 많은 수의 centroid가 존재하는 경우 더욱 심하다.
대안으로 제안하는 MRG 방식은 두 level의 feature vector를 concat하여 사용함으로 계산 비용을 줄였다.
Point Feature Propagation for Set Segmentation
segmentation task를 위해서는 point의 subset이 아닌 모든 point를 보유해야 한다.
본 논문에서는 interpolate와 skip link concatenation을 사용하여 이 문제를 다루었다.
'Paper > Perception' 카테고리의 다른 글
VoxelNet (1) | 2023.10.04 |
---|---|
PointNet (0) | 2023.10.03 |