PointNet++ 간단리뷰

채성혁·2024년 1월 31일

기존 PointNet 과 달리 CNN 과 유사한 컨셉의 네트워크를 제안

Local region

  • CNN 과 같이 지역적인 특징을 뽑기 위해서는 지역적인 영역을 나눌 필요가 있기 때문에 전체 포인트 클라우드의 영역 나누기
    => Neighborhood ball 구조
    - 센터 포인트들을 선정하고, 이를 기준으로 특정 scale의 ball query 구성

Local feature net work

  • weight 공유하고 , 계층적으로 지역 특징으로부터 전체의 semantic feature까지 학습하는 방법이 필요 (CNN 컨셉으로 로컬 피쳐 학습)
    => PointNet 기반 계층 구조 제안
    - PointNet을 Local region에 적용하여 계층적으로 특징을 점차 고차원으로 학습하는 방법 제안

Model Architecture

Hierarchicla point set feature learning

1. Sampling layer

  • Farthest point sampling 을 통해 local region을 형성하기위해 centroid들을 선정한다. Random sampling 대비 loss 수렴에 더 좋은 결과를 얻음

N 개의 포인트들을 랜덤으로 선택하여 선택된 포인트와 주변포인트중 가장 먼거리의 포인트와 sampling을 반복진행 (FPS : Farthest point sampling )

2. Grouping layer

1번에서 sampling 된 포인트를 기반으로 grouping 진행
centroid를 기준으로 특징 영역(metric raduis)를 갖는 ball query를 형성하고 , 이 안에 있는 포인트들을 하나의 그룹 즉 ball query로 형성(지정?)한다.
즉 하나의 local region이 된다.

PointNet을 사용하기때문에 ball query 내에 포인트의 개수가 달라도 활용가능하다.

3. PoinNet layer

Ball query 내 K개의 포인트를 하나의 특징으로 응집시키는 것이 목적. (cnn feature extract와 비슷한 개념).
전체 포인트의 좌표계는 center point에 대한 상대 좌표계로 변경
Mini-PointNet 구조를 기반으로 local region의 특징 인코딩

Robust feature learning under non-uniform sampling density

  • point 특성상 어떤곳은 Dense하고 어떤곳은 sparse한 non uniform한 구조를 띄고 있다. 이러한 점들 때문에 Dense 한 영역을 위주로 학습하면 sparse data에 대한 일반화가 매우 어렵다. 반대로 Sparse 한 영역을 위주로 학습하면 Fine-grained 한 지역적 구조를 잘 보지 못하게 된다.

=> 이러한 점들을 극복할수 있는 강인한 point net 구조는 없을까?

Density adaptive PointNet layer

  1. Multi-scale grouping(MSG)

하나의 scene 에서 grouping scale을 달리하여 여러 개의 특징을 뽑아내고 이를 concat한다.
이를 학습과정에서 Dropout 방식을 사용해 해결함. Dropout ratio는 0~0.95(dense~sparse)하게 주었음. dropout을 0.95 이상 주게 되면 point가 너무 사라져서 shape 자체가 망가지게 됨(empty input issue)

  1. Multi-resolution grouping(MRG)

Sub-region 특징과 raw point 특징을 각각 뽑아내고 이를 concat한다.
Sub-region 과 raw input 각각에서 나오는 특징에 가중치가 있다.

즉, raw region의 밀도가 낮으면 first vector는 신뢰도가 떨어진다. point의 수가 적을 뿐더러 sampling 결함에 더 피해를 입게된다. 이때 sub region의 second vector의 가중치를 높인다.
local region의 밀도가 높으면 반대로 진행하면된다.

만약 초기 layer는 많은 point가 있기에 초반부에서는 MRG를 적용하고 학습후반부로 갈수록 MSG 방법론을 적용. 왜냐면 MSG 는 계산 비용이 너무 높다는 단점이 있다.

Experiments

Point Set Classification in Euclidean Metric Space

이 연구에서는 저자들이 2D 및 3D 유클리드 공간에서의 포인트 클라우드 분류를 평가하기 위해 MNIST와 ModelNet40 데이터셋을 사용했다. MNIST는 512개의 포인트, ModelNet40은 1024개의 pointcloud로 변환했다. ModelNet40은 표면 법선을 활용하여 포인트 수를 증가(5000개)시켜 성능을 향상시켰고, normal 정보를 넣어주니 더욱 성능이 올라감을 확일할수 있다.

Density adaptive 유효성

  • Dropout 적용만으로도 성능 개선효과가 뚜렷이 나타남
  • MSG전략의 성능이 전반적으로 높으나 point의 갯수가 줄어들수록 오히려 MRG 전략의 성능이 올라가는 현상이 보임.

Point Set Segmentation for Semantic Scene Labeling

PointNet 대비 식별 능력이 향상됨

Point Set Classification in Non-Euclidean Metric Space

Non-Euclidean space 에 대해 일반성을 보여준다. (a) 와 (c) 는 같은 객체이지만 다른 행동을 하고있다 그렇다더라고 같은 객체이기에 맞춰야되는데 이러한 task에서도 높은 정확성을 나타내는것을 보여주고 있다.

Result

  1. CNN의 특징을 최대한 유사하게 활용할 수 있는 구조를 제안
  2. Local region을 나눠서 PointNet을 계층적으로 사용하는 방법 제안
  3. MSG 및 MRG 를 통해 non-uniform density에도 강인한 방법 제안
  4. PointNet 대비 성능 향상 확인

느낀점

  1. PointNet 부터 PointNet++ 까지 읽어보았으나 혼자 읽어서 그런가 알파코에서 들었던 VGG, Googlenet 때와 같은 감동이 없었다
  2. 그래도 어떻게든 CNN 구조를 사용할려고 했던 방법론, 2개의 층을 활용한것은 놀라움
  3. 다음은 뭘 읽어볼까..
profile
성장곡선을 그리는 AI Engineer

0개의 댓글