[원문 번역]
(직접 번역한 내용이며 부족한 배경지식으로인한 오역 등이 있을 수 있음)
이번 글에서는 지난 번 Point Net에 이어서 또 다시 선구적인 업적을 세운 Point Net++ (by Charles R. Qi. et. al.)에 대해 다룬다.
Point Net은 훌륭했지만 약간의 문제점이 있었고 이를 Point Net++으로 해결할 수 있게 됐다. Point Net은 포인트 클라우드에서 local structures를 잡아내지 못했기 때문에 더 나은 버전의 Point Net을 필요로 했다. Point Net++는 데이터에서 매끄러운 패턴을 잡아내기 위해 입력받은 포인트 클라우드의 다중 분할 데이터에 포인트넷을 재귀적으로 적용하는 계층망이다. Local 특성인 이유는 PointNet++이 입력값의 규모를 조절하여 다른 규모의 특성들과 결합시키기 때문이다.
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⁰ ) 행렬을 출력한다.
PointNet architecture
Multiple set abstraction layers for Multi-Scale grouping
다중 추상 레이어 설정을 통해 PointNet++가 하나의 입력값에 대해 각기 다른 규모로 처리해볼 수 있게 한다. 추상 레이어가 많이 추가될 수록 해당 특성 벡터들은 각각에 레이어에서 레벨이 높아진다.
입력값의 여러 규모에서 특성을 추출해내면 분류는 굉장히 간단해진다. 포인트넷을 이용해 해당 벡터의 class score를 매길 수 있다.
Classification task
입력값의 추상 레이어 부표본을 설정한다. 단, 분할 작업의 경우 모든 입력 점들의 점수가 필요하다. PointNet++은 낮은 규모의 부표본 값으로부터 입력값의 원래 규모까지 계층적 접근을 한다. 이는 2 단계로 이루어진다.
Classification task
PointNet++ is better at detecting local features in the point clouds