<aside> <img src="/icons/pencil_gray.svg" alt="/icons/pencil_gray.svg" width="40px" />
</aside>
기존 PointNet은 3D 포인트 클라우드와 같은 점 데이터 처리에 혁신적인 기여를 했지만, 그 설계 방식 때문에 상대적인 위치 관계를 알지 못함
→ 지역적인 정보를 효과적으로 학습하지 못함 why?
<aside>
이러한 한계를 극복하기 위해 PointNet++은 CNN의 계층적 학습 아이디어를 차용
→ 점들을 계층적으로 분할하고 각 지역에서 PointNet과 유사한 방식을 적용하여 지역적 특징을 학습
→ 이후 학습된 지역적 특징을 조합하여 더 넓은 영역의 특징을 학습하는 방식
PointNet++가 효과적으로 작동하기 위해 두가지 과제가 선행됨
이 두가지 과제는 서로 밀접하게 연관되어 있음
CNN에서 동일한 커널을 이미지의 모든 위치에 적용하는 것처럼, PointNet에서도 각 지역을 처리하는 지역 특징 학습기의 가중치를 재사용 하고 싶음
→ CNN의 경우 각 합성곱 필터는 이미지의 모든 위치에 동일하게 적용됨 → 즉 필터의 가중치는 이미지 전체에서 공유됨 → CNN이 지역적 패턴을 학습하고 일반화 성능을 높인 비결
→ PointNet++에서도 가중치를 공유하려면 각 지역영역에서 학습하는 내용이 유사해야함 → 학습기가 어떤 지역 영역을 만나더라도 동일한 방식으로 작동할 수 있어야 함. → 공통 구조 생성
→ 이 과정에서 지역 특징 학습기로 PointNet을 이용, 순서 없는 점 집함을 처리하는 효과적인 아키텍처이기 때문 → PointNet++의 기본 구성요소로써 PointNet은 점 집합을 상위 수준으로 추상화 함 → 이게 아마 CNN의 레이어를 통과하는 것과 같은 효과
→ 이제 전체 점 집합을 분할하여 PointNet을 사용해야 하는데 어떻게 분할? → Neighborhood ball
Neighborhood ball? → KNN에 비해 일반화 성능 향상 → 반경 r이 고정되기 때문
PointNet++에서 지역 영역을 정의하는 가장 기본적인 형태. 점 데이터는 밀도가 균일하지 않아 CNN처럼 고정된 격자나 커널을 적용하기 어려움
이 ball을 정의하기 위해서는 두가지 정보가 필요 → 중심점 위치 + scale(radious)
이 Neighborhood ball이 전체 점 집합을 균등하게 커버하도록 하기 위해 FPS 알고리즘을 사용하여 중심점들을 입력 점 집합 내에서 선택 → FPS를 통해 점들이 최대한 멀리 잇도록 중심점을 설정 → 점 분포가 불균일 하더라도 영역이 겹치지 않으면서 전체를 잘 커버하도록 도움
지역 특징 학습
이제 각 지역영역 내의 점들을 모아 지역 특징 학습기에 입력 → 점들의 상대적인 위치 관계와 특징을 파악하여 지역 특징 벡터를 추출
지역 특징의 그룹화
지역 특징 학습을 통해 추출된 특징 벡터들 또한 그룹화→ 다시 지역 특징 학습기에 통과시켜 더 넓은 영역의 정보를 포함하는 상위레벨 특징을 생성
그룹화는 어떻게 ?

Multi-scale Grouping(MSG)
중심점 개수와 r 은 실험을 통해 결정 → 후에 결과 쪽 내용 추가
Multi-resolution Grouping(MRG)
인접한 두 개의 SA 계층 ($L_{i-1}$ 레이어와 $L_i$ 레이어) 사이를 연결하는 구조.
branch 1
branch 2
두개의 브랜치에서 추출한 특징 벡터를 컨캣 + 가중치를 조절하여 밀도가 높으면 작은 r에 집중, 밀도가 낮으면 큰 r에 집중하도록 함
앞선 과정들에서 원본 점 집합이 다운샘플링 되기 때문에 업스케일링이 필요
→ KNN 기반 역거리 가중평균을 통해 보간 → 집합 추상화 레벨의 스킵 링크된 점 특징과 연결
즉 보간으로 얻은 $N$개 점에 대한 특징 벡터와, 원래 이 $N$개 점이 가지고 있던 스킵 링크 특징 벡터를 이어 붙임
→ Unit PointNet 적용
Unit PointNet?
각 점의 특징 벡터를 독립적으로 처리하는 작고 간단한 신경망 모듈 → 모든 점이 같은 가중치를 가진 Unit PointNet을 통과
PointNet++의 목표 → 불규칙하게 분포하고 밀도가 가변적인 점들의 집합으로부터 유용한 의미 정보를 추출하는 함수를 딥러닝으로 학습하는 것. 또한 분류와 분할을 모두 유연하게 처리 가능(계층적 특징 추출과 점 특징 전파를 통해)
PointNet++은 CNN과 같은 계층적 구조를 지님. → 점 데이터는 격자 필터 사용 불가 → 이웃 볼 사용
처음에는 센서를 통해 받은 점 데이터를 사용하고 다음 level에서는 이전 level에서의 출력을 점 데이터로 사용
MSG → 계산량 많은 → MRG로 개선
R과 K 같은 값들은 하이퍼 파라미터로써 학습됨


table 1

table2