Ch 02. Point Cloud Processing Backbone
딥러닝을 이용해서 Point cloud를 처리하는 방법론을 공부할 것이다.
<목차>
2-1. PointNet
2-2. PointNet++
2-3. Graph Convolutional Network
2-4. Dynamic Graph CNN
2-5. Kernel Point Convolution
https://arxiv.org/abs/1706.02413
PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
Few prior works study deep learning on point sets. PointNet by Qi et al. is a pioneer in this direction. However, by design PointNet does not capture local structures induced by the metric space points live in, limiting its ability to recognize fine-graine
arxiv.org
2-2. PointNet++
- CNN과 유사한 컨셉의 계층형 네트워크 구조 제안
PointNet에서 Point cloud는 비정규적인 구조를 가지므로 슬라이딩 윈도우를 사용하는 CNN은 한계를 갖는다고 언급했다. 그렇기에 3차원 입력을 별도의 전처리 없이 직접 사용했었다. 하지만, 이 논문에서는 이러한 PointNet의 구조가 local feature를 포착하지 못한다고 말하며 local feature를 잘 포착하는 convolutional architecures의 CNN과 유사한 컨셉의 hierarchical neural network를 제안한다.
local feature를 잘 뽑기위한 이슈는 다음과 같다.
이슈 1) 전체 포인트 클라우드의 영역 나누기: Local region
CNN과 같이 local feature를 뽑기 위해서는 지역적인 영역 나누기가 필요하다.
-> !: Neighborhood ball 구조. 센터 포인트들을 선정하고, 이를 기준으로 특정 scale의 ball query 구성
이슈2) CNN같은 컨셉으로 로컬 피쳐 학습
Weight sharing도 하고, 계층적으로 지역 특징부터 전체의 semantic feature까지 학습하는 방법 필요
-> !: PointNet 기반 계층 구조 제안. PointNet를 나눠진 local region에 적용해 계층적으로 feature를 고차원으로 학습하는 방법 제안
- PointNet++ Architecture

local feature를 잘 포착하기 위한 hierarchical point set feature learning은 크게 3가지 과정으로 나뉜다. 이에 대해 설명해보겠다.
- 1) Sampling layer
입력으로 부터 set of point들을 선택한다. local region의 centroid를 정의한다. 쉡게 말하면 샘플링 하며 기준점을 설정한다..

Farthest point sampling(FPS)을 통해 local region을 형성하기 위한 centroid를 선정한다.
FPS 방식은 Uclidian distance를 기준으로 서로 가장 멀리 떨어져있는 점들을 선택하는 것이다. 이를 통해 일반적이고 대표성을 띄는 점들을 얻을 수 있다.
cf. random sampling을 사용하지 않는 이유는 연구 결과 FPS가 loss 수렴에서 더 좋은 결과를 얻어서이다.
- 2) Grouping layer
이웃 포인트들을 기반으로 local region을 형성한다. 즉 앞에서 정해진 기준점을 통해 영역을 분할한다.


Centroid를 기준으로, 특정 metric radius를 갖는 ball query를 형성하고, 이 안에 있는 포인트들을 하나의 그룹으로 형성한다. 뒤에서 PointNet을 쓰기 때문에 ball query 내 포인트 개수가 달라도 활용이 가능하다.
- 3) PointNet layer
Mini-PointNet 구조를 기반으로 local region 특징 encoding. 나눠진 영역에서 PointNet를 활용하여 feature를 추출하는 것이다.

Ball query 내 K 개의 포인트를 하나의 특징으로 응집시키는 것이 목적이다.
여기서 PointNet input으로 사용되는 전체 포인트의 좌표계는 센터 포인트에 대한 상대 좌표계로 변경한다.
cf. 상대 좌표계를 사용하는 것이 point to point의 관계 측면에서 feature를 더 잘잡는 결과를 보여준다.
- 데이터 밀도에 따른 문제점
Poin set에는 sparse한 부분도, dense한 부분도 동시에 존재한다. Dense 영역 위주로 학습을 진행하면 sparse data에 대한 학습 일반화가 매우 어렵게 되고, 반대로 Sparse 영역 위주로 학습을 진행하면 Fine-grain한 지역적 구조를 잘 보지 못하게 된다. 이에 대한 해결책으로 해당 논문은 다양한 밀도에도 강인한 PointNet 구조 Density adaptive PointNet layer를 제시한다.
- Robust feature learning under non-uniform sampling density: Density adaptive PointNet layer


- 1) Multi-scale grouping(MSG)
한 scene에서 grouping scale을 달리하며 특징 뽑고 이를 concat. 학습 과정에서 서로 연결된 레이어에서 확률적으로 뉴런을 제거하는 Dropout을 적용한다.
cf1. 실제 inference 과정에서는 dropout을 적용하지 않는다.
cf2. Dropout ration는 0~0.95로 설정하며 이 이상으로 설정하면 empty input issue가 발생했다.
- 2) Multi-resolution grouping(MRG)

Sub-region 특징과 raw point 특징을 각각 뽑아서 concat. 데이터가 sparse하면 raw 영역에 가중치를, dense하면 semantic한 정보만 보면 되므로 sub-region에 가중치를 더 높게 준다. MSG대비 low level layer에서 활용하기에 계산이 효율적이다.
초기 layer에는 많은 point가 존재하는데 이 때 MSG를 적용하면 연산이 너무 많아져 버린다. 그렇기에 초반부에는 MRG를 사용한 후 나중에 MSG를 사용하는 게 효율적이다.
- Experiments
- Classification


상대적으로 높은 성능을 보임. normal vector 정보가 있는 경우 acc가 향상되는 결과 또한 보여줌.
- Density adaptive 전략

Dropout(DP)과 MSG, MRG을 추가함으로 성능이 좋아짐. 일반적으로 MSG+DP가 가장 좋지만, 데이터에 따라 MRG+DP가 좋은 경우도 보임. 데이터에 따라 적절히 전략을 수립해야함.
- Segmentation

PointNet 대비 객체 식별 능력이 향상됨
- Point Set Classification in Non Euclidean Metric Space


PointNet++에서 식별 성능이 높음을 보았으며, 단순 XYZ 좌표가 아닌 내부 피쳐 사용 시 성능이 더욱 향상됨
- 정리
- CNN의 특징을 최대한 유사하게 활용할 수 있는 구조 제안
- Local region을 나눠서 PointNet을 계층적으로 사용하는 방법 사용
- MSG 및 MRG를 통해 non-uniform density에도 강인한 방법 제안
- PointNet 대비 식별 성능 향상됨
2-3. Graph Convolutional Network
2-4. Dynamic Graph CNN
2-5. Kernel Point Convolution
'Autonomous Driving > 2. LiDAR Perception' 카테고리의 다른 글
| Ch02. Point Cloud Processing Backbone - 4) Dynamic Graph CNN(DGCNN) (1) | 2024.09.09 |
|---|---|
| Ch02. Point Cloud Processing Backbone - 3) Graph Convolutional Network(GCN) (1) | 2024.09.09 |
| Ch02. Point Cloud Processing Backbone - 1) PointNet (2) | 2024.09.06 |
| Ch01. LiDAR Data Processing - 3) Open3d, CloudeCompare, LiDAR 레이블링 툴 (2) | 2024.09.05 |
| Ch01. LiDAR Data Processing - 2) ROS1 환경 구성, 데이터셋 (0) | 2024.09.05 |