PointNet++ — 3D point clouds bounding box detection and tracking (PointNet, PointNet++, LaserNet, Point Pillars and Complex Yolo) — Series 5 (Part 3) 리뷰

Sam Kim·2022년 9월 13일
0

[기사 원출처 링크]

[원문 번역]

(직접 번역한 내용이며 부족한 배경지식으로인한 오역 등이 있을 수 있음)

이번 글에서는 지난 번 Point Net에 이어서 또 다시 선구적인 업적을 세운 Point Net++ (by Charles R. Qi. et. al.)에 대해 다룬다.

PointNet was great but …

Point Net은 훌륭했지만 약간의 문제점이 있었고 이를 Point Net++으로 해결할 수 있게 됐다. Point Net은 포인트 클라우드에서 local structures를 잡아내지 못했기 때문에 더 나은 버전의 Point Net을 필요로 했다. Point Net++는 데이터에서 매끄러운 패턴을 잡아내기 위해 입력받은 포인트 클라우드의 다중 분할 데이터에 포인트넷을 재귀적으로 적용하는 계층망이다. Local 특성인 이유는 PointNet++이 입력값의 규모를 조절하여 다른 규모의 특성들과 결합시키기 때문이다.

Architecture


PointNet++ architecture.

위 그림처럼, PointNet++은 Sampling, Grouping, and a PointNetlayer 이렇게 3개의 레이어로 설정된 추상 단계들로 이루어져 있다. 하나의 단계에서 d-dim 좌표와 C-dim 점의 특성들을 가진 N 점들로 이루어진 N × (d + C) 행렬을 입력값을 받는다. 그리고 d-dim좌표값들과 Local 맥락을 요약한 새로운 C⁰ -dim 특성 벡터들로 이루어진 N⁰ 부표본 점들로 구성된 N⁰ × (d + C⁰ ) 행렬을 출력한다.

  • The Sampling layer로 입력 점들 중에서 Local 구역의 중심으로 정의되는 점들의 집합을 선택한다. 이후 FPs (Farthest Point Sampling)을 통해 입력받은 포인트 클라우드 중 서로 가장 멀리 위치한 점들의 집합을 선택한다. 이를 통해 보다 넓은 범위를 처리할 수 있게된다.
  • 그러면 The Grouping layer가 중심점에 이웃한 점들을 찾아 Local 구역을 생성한다. 이후 Ball Query를 이용해 K 점들의 최댓값을 찾는다. K 점들이란 중심점을 기준으로 미리 특정된 반지름으로 이루어진 구체 안에 위치한 각각의 중심점을 말한다. 이 부표본 데이터가 포인트넷으로 넘겨진다.
  • The PointNet layer는 포인트넷을 이용하여 local 구정 패턴을 특성 벡터로 변환한다. 예를 들어 아래의 그림처럼 network 끝에서 global 특성 벡터를 보면, 이것이 우리가 입력받은 데이터의 각기 다른 local 구역에서 특성을 얻기 위해 포인트넷에서 얻는 결과물이다. 포인트넷에서 입력하기 전에 local 구역의 점들의 좌푯값은 중심 프레임으로 전이된다.

PointNet architecture

Multi-Scale Grouping

Multiple set abstraction layers for Multi-Scale grouping

다중 추상 레이어 설정을 통해 PointNet++가 하나의 입력값에 대해 각기 다른 규모로 처리해볼 수 있게 한다. 추상 레이어가 많이 추가될 수록 해당 특성 벡터들은 각각에 레이어에서 레벨이 높아진다.

Classification

입력값의 여러 규모에서 특성을 추출해내면 분류는 굉장히 간단해진다. 포인트넷을 이용해 해당 벡터의 class score를 매길 수 있다.

Classification task

Segmentation

입력값의 추상 레이어 부표본을 설정한다. 단, 분할 작업의 경우 모든 입력 점들의 점수가 필요하다. PointNet++은 낮은 규모의 부표본 값으로부터 입력값의 원래 규모까지 계층적 접근을 한다. 이는 2 단계로 이루어진다.

  • 부표본 데이터넷의 특성은 역거리 가중 평균 kNN 방식으로 원래의 고차원 공간에 다시 채워진다.
  • 이전 단계의 특성들이 연결을 건너뛰는 방식으로 그전에 얻은 추상 레이어의 특성들과 결합된다. 이 결합된 벡터는 unit PointNet(A few shared fully connected and ReLU layers)으로 넘겨져서 각각의 점들의 특성 벡터를 갱신한다. 원래의 구성 중 skip-connections부분이 바로 이 부분이다.

Classification task

Results and Visualizations

PointNet++ is better at detecting local features in the point clouds

0개의 댓글