논문/CV

PointNet++ 논문 리뷰

Dogun Kim 2024. 9. 19. 22:26

2. PointNet ++ 

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

CNN은 이미지 그리드나 3D voxel처럼 정형화된 입력 데이터를 처리하는데 최적화되어 있기에 PointNet에서는 CNN을 사용하지 않는 새로운 네트워크 구조를 제시했다. 하지만 PointNet++에서는 PointNet의 구조가 local feature 포착 성능이 떨어진다 말하며, 이러한 한계를 극복하는 합성곱 구조의 CNN과 유사한  hierarchical neural network를 제안한다.

# 설계상 PointNet은 거리에 의해 생성된 로컬 구조를 포착하지 못한다.

 

- Abstract 

  • PointNet은 local structures를 잘 포착하지 못하며.,. 세밀한 패턴을 인식하거나 복잡한 장면의 일반화 능력이 제한됨.
  • 입력 포인트 집합을 계층적으로 분할 후, PointNet에 재귀적으로 적용하는 계층적 신경망을 소개함. 즉 데이터를 여러 단계로 나누고, 각 단계에서 PointNet를 반복적으로 사용하는 방법을 제시함.
  • 거리 측정 metric space를 활용하여, 처음에는 작은 범위의 local feature를 학습하고, 점차 더 넓은 범위의 feature를 학습하게 된다.
  • Point cloud는 보통 밀도가 다르게 샘플링 됨. 그렇기에 균일한 밀도로 훈련된 네트워크는 성능이 크게 떨어진다. 이를 해결하기 위해 여러 스케일에서의 특징을 적응적으로 결합하는 새로운 학습 레이어를 제안함.

>> local 구조를 잘 포착하고, 다양한 밀도의 데이터에서도 잘 작동하는 계층 모델을 설계함.


- Intorduction

  • 거리를 기준으로 local 영역이 정의됨. 밀도 및 다른 속성들이 위치에 따라 일정하지 않을 수 있다.
  • 설계상 PointNet은 거리에 의해 생성된 로컬 구조를 포착하지 못한다. 로컬 구조를 활용하는 것은 CNN의 성공에 있어서 중요한 요소로 입증되었음.
  • 계층에 따라 로컬 패턴을 추상화하는 능력은 보지 못한 사례에 대한 일반화 능력을 향상시킨다. 깊은 layer 뉴런들이 더 큰 receptive field를 가지기 때문인 듯하다.. 그렇기에 계층적 방식으로 거리 공간에서 샘플링된 포인트 집합을 처리하는 계층적 신경망 PointNet++를 소개함.
  • CNN과 유사하게 작은 영역에서의 세밀한 기하학적 구조를 포착하는 로컬 특징을 추출, 이 로컬 특징을 더 큰 단위로 그룹화하여 더 높은 수준의 특징을 생성한다. 전체 포인트 집합의 특징을 얻을 때 까지 이를 반복한다.
  • 포인트 집합을 어떻게 분할할지, 로컬 특징 학습자로 어떤 모델을 사용할지 이슈 발생

>> 입력 집합을 중첩된 방식으로 분할, PointNet를 사용하여 분할된 집합을 더 높은 수준의 표현으로 추상화.

  • FPS 알고리즘을 사용 하여 겹치는 로컬 영역을 정의, PointNet++이 다양한 스케일에서 이웃neighborhoods을 활용하여 강건성 세부 사항 포착을 동시에 달성. 실험 결과 포인트 집합을 효율적으로 강력하게 처리할 수 있었음.

>> 포인트 수를 생각하지 않고 거리를 기준으로 샘플링.. 입력 포인트 갯수 n이 몇이든 상관 없는 PointNet를 사용하여 local feature를 추출 다양한 밀도에서도 일관된 성능을 보임.

 


- Problem Statement

  • 유클리드 공간 내의 포인트 집합 M과 그 거리 측정 d를 기반으로 한 함수 f를 학습하는 문제
  • 함수 f는 포인트 집합을 입력으로 받아 Classification하거나 의미적 정보를 제공하는 역할을 하며, 특정 상황에서는 포인트 집합의 각 점에 개별적인 레이블을 부여하는 Segmentation 함수. cf. 맥락상 f는 PointNet 이겠지..

- Method

계층적 학습 구조로 확장한 PointNet의 확장으로 볼 수 있다. 

1) A Universal Continuous Set Function Approximator: 보편적인 연속 집합 함수 근사기..?

비정렬된 포인트 집합 {x1, x2, ..., xn}을 벡터로 맵핑하는 함수를 f라고 정의하자. 이 함수는 다음과 같이 정의할 수 있다.

전체 포인트를 한 번에 처리했다. Max 함수를 사용하여 순서에 상관없이 결과가 일정하다.

cf. 위 식은 MLP를 수식화한 것. γ는 최종 출력을 만드는 함수, MAX는 Max-pooling, h는 각 점을 처리하는 함수이다. PointNet의 기본 구조를 설명하는 것이다. 위 식은 다음과 같은 한계를 갖는다.

  • PointNet은 입력 순서에 관계없이 포인트 집합을 처리할 수 있지만, 로컬 문맥을 잘 포착하지 못하는 단점이 존재 한다. 전체 포인트 집합을 한 번에 처리하기 때문이다.

>> 이를 위해 PointNet++는 계층적 특징 학습을 도입한다.

 

2) Hierarchical Point Set Feature Learning # local feautre를 더 잘 포착하기 위함.

  • PointNet의 Max-pooling을 사용하지 말고, 포인트들을 계층적으로 그룹화, 점진적으로 더 큰 로컬 영역을 추상화. 계층적 구조를 사용해 작은 로컬 영역부터 시작해 점차 더 큰 영역에서 특징을 학습하여 더 세밀한 로컬 패턴 포착.
  • 집합 추상화 단계는 Sampling layer, Grouping layer, 그리고 PointNet layer의 3가지 주요 레어어로 구성됨.

        1. Sampling layer

입력으로 부터 set of point들을 선택한다. local region의 centroid를 정의한다. 쉡게 말하면 샘플링 하며 기준점을 설정한다..

Set of point 선택 과정 centroid point를 결정한다.

Farthest point samplingFPS을 통해 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에서 PointNet을 통해 하나의 특징으로 응집. Ball query 내 K 개의 포인트를 하나의 특징으로 응집시키는 것이 목적이다. 여기서 PointNet input으로 사용되는 전체 포인트의 좌표계는 센터 포인트에 대한 상대 좌표계로 변경한다. 

cf. 상대 좌표계를 사용하는 것이 point to point의 관계 측면에서 feature를 더 잘잡는 결과를 보여준다.

 

 

3) Robust Feature Learning under Non-Uniform Sampling Density # 데이터 밀도에 따른 문제점 해결

  • Point cloud의 집합은 서로 다른 영역에서 비균일한 밀도를 가지는 것이 일반적임. 고르지 않은 밀도로 인해 feature를 학습하는데 어려움이 생김.

cf. 밀도가 낮은 데이터로 훈련된 모델은 세부적은 구조를 잘 파악하지 못함..

>> 이를 위해 입력 데이터의 밀도 변화에 따라 다양한 규모의 특징을 효과적으로 결합할 수 있는 2가지 방식의 밀도 적응형 PointNet 레이어를 도입

 

1. Multi-scale grouping MSG

 

한 scene에서 grouping scale을 달리하며 특징 뽑고 이를 concat. 학습 과정에서 서로 연결된 레이어에서 확률적으로 뉴런을 제거하는 Dropout을 적용한다. 

> 다양한 반경으로 영역을 그룹화하고, 각 반경에 대해 개별적으로 PointNet을 적용하여 특징을 추출, 이를 연결하여 다중 규모 특징을 형성. dropout 방식을 적용하여 네트워크가 다양한 규모의 특징을 어떻게 효과적으로 결합할지 스스로 학습하게 한다. 훈련시에 포인트를 무작위로 제거하여 네트워크가 다양한 밀도와 분포의 데이터를 학습하도록 하는 것이다.

 

cf1. 실제 inference 과정에서는 dropout을 적용하지 않는다.

cf2. Dropout ration는 0~0.95로 설정하며 이 이상으로 설정하면 empty input issue가 발생했다.

 

위의 MSG 접근법은 각 중심 포인트마다 큰 규모의 이웃에서 로컬 PointNet을 실행하기 때문에 계산 비용이 많이 든다.. 특히 하위 레벨에서는 처리해야할 포인트 수가 많아 이를 적용하면 연산 시간이 매우 증가하게 된다. 이를 위한 대안이 다음에서 설명하는 MRG이다.

 

2. Multi-resolution grouping 

두가지 경로를 통해 feature를 추출 이를 결합한다.

경로1: 이전 레벨에서 추출된 **포인트들의 feature**를 Set Abstraction 레이어를 사용하여 요약한다. 주로 맥스 풀링과 같은 연산을 사용하여 특징들을 하나의 벡터로 집약된다.

>> 해당 경로는 밀도가 낮을 때, 이전 레벨에서 추출된 feature가 적기에 신뢰도가 낮을 수 있다. 경로 2에서 얻는 벡터가 상대적으로 더 유용하다.

 

경로2: 현재 레벨의 로컬 영역 내 **원시 포인트**에 직접 PointNet을 적용. 이전 레젤의 특징을 사용하지 않고, 로컬 영역의 좌표만을 입력으로 사용하여 공간적 구조를 직접 학습한다.

cf. 경로 2에서 원본 포인트 좌표에 PointNet을 적용하는 것은 단순히 이전 레벨의 특징을 재사용하는 것보다 더 풍부한 정보를 얻기 위해서이다.

>> 밀도가 높을 때는 경로 1에서 세밀한 하위 구조의 feature를 더 잘 포착한다. 즉 경로 1이 상대적으로 더 유리하다.

 

 

경로 1은 이전 레벨의 추상화된 정보를 집약한 것이고, 경로 2는 원시 데이터로부터 직접 추출한 정보이다. 두 가지를 결합함으로써 모델은 더 풍부하고 다각적인 특징을 학습할 수 있다.

 

 

Sub-region 특징과 raw point 특징을 각각 뽑아서 concat. 데이터가 sparse하면 raw 영역에 가중치를, dense하면 semantic한 정보만 보면 되므로 sub-region에 가중치를 더 높게 준다. MSG대비 low level layer에서 활용하기에 계산이 효율적이다.

 

cf. 잘 생각해보면 다음과 같이 비유할 수 있다.

경로 1번은 요약된 책을 읽는 것과 같다. 경로 2번은 원본 책을 직접 다시 읽는 것과 같다.

 

4) Point Feature Propagation for Set Segmentation

PointNet++는 포인트 클라우드 데이터를 처리할 때 계산 효율성을 높이기 위해 포인트들을 다운샘플링
그러나 포인트 세그멘테이션에서는 모든 원본 포인트에 대한 특징이 필요, 다운샘플링으로 인해 원본 포인트의 특징 정보가 손실될 수 있다.

 

>> 해결책

  • feature propagation를 사용하여 다운 샘플링된 포인트들의 특징을 원본 포인트로 전파, 모든 포인트에 대한 특징을 복원
  • 거리 기반 보간법을 사용하여 주변의 다운 샘플링된 포인트들의 특징을 역거리 가중 보간을 통해 추정한다.
  • 보간된 특징과 원폰 포인트의 기존 특징을 연결하여 정보 손실을 최소화
  • 결합된 특징을 작은 신경망 Unit PointNet에 통과시켜 각 포인트의 특징을 업데이트
  • 이 과정을 여러 레벨에 걸쳐 반복, 최종적으로 모든 원본 포인트에 대한 풍부한 특징을 얻는다.

 

- Conclusion

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