Bibtex 인용
@article{qi2017pointnet++,
title={Pointnet++: Deep hierarchical feature learning on point sets in a metric space},
author={Qi, Charles Ruizhongtai and Yi, Li and Su, Hao and Guibas, Leonidas J},
journal={Advances in neural information processing systems},
volume={30},
year={2017}
}
요약
- local feature를 PointNet에 추가해보자
- multi scale로 학습해서 잘 combine해서 결과는 똑같이 내면서 local feature도 utilise해보자
인트로
- PointNet에서는 local structure를 잘 capture하지 못함
- 근데 local structture가 convolutional atchitecture의 성공을 좌지우지한다함
- 그래서 multi-resolution hierarchy 를 도입
- lower단에서 local structure를 학습할 수 있음
- 문제점이 두개임
- 어떻게 point set을 partitioning할거임?
- 어떻게 그 set of points or local feature를 local feature learner를 통해서 abstract할거임?
- 위의 두 문제점은 연관성이 있는데 이게 잘 나눠야 웨이트 공유하면서 학습에도 영향을 받고 그래서 ㅇㅇ
- 일단 앞에 우리 잘되는거 만들어놨으니까 local feature leatner로 PointNet쓸거임
- overlapping partition of point set을 만드는게 문제임
- entanglement of feature scale 이랑 non-uniformity of input point가 적절한 local 포인트 파티션 만드는걸 힘들게 만듬
기여
- multi scale에서 robust하고 detail한 특징을 capture하는 PointNet++이라는 딥러닝 네트워크 제안
- 말고는 포인트넷거 이야기
3. Method
3.1 Review of PointNet
3.2 Hierarchical Point Set Feature Learning

- FPS로 점들 뽑아서 샘플링하고 그룹핑은 그거 묶어서 넘기는건데 이러면 각 그룹마다 포함된 포인트의 개수가 다름
- 근데 POintNet은 flexible # input에 대해서도 고정된 수의 아웃풋 피쳐벡터 뽑을 수 있어서 ㄱㅊ
- KNN보다 이 방식이 더 general하게 작동함
- 그리고 뒤에 PointNet러사용함
- dense한거랑 sparse한거랑 generalize가 잘 안되니까
- dense한데서는 좀 더 closely inspect하고 sparse하면 좀 더 넓은 scale에 대해서 inspect
- 이거를 학습하기 위해서 adaptive PointNet을 사용함

- multi scale grouping
- 각 point에 대해서 랜덤 확률로 랜덤 dropping함
- empty한 그룹 없게하려고 드랍 확률을 핸드 튜닝했다함 0.95 정도면 없는거같대
- 이거로 uniformity가 보장되지 않는 point cloud에 대해서 cover
- multi resolution grouping
- 위에 방법을 아예 raw한 데이터에서부터 쓰면 computational cost가 너무 커서 제안한거
- 전체거랑 multi resolution거를 concat해서 쓰는데
- density에 따라서 reliable한 데이터가 전체에 있을수도있고 아닐수도있어서
- 일단 concat하고 뒤에서 뭐가 더 reliavle한지 학습할 수 있게끔
- 아무튼 weight가 조정된다는 식으로 말하는데 직접 뭘 하는건 아님
3.4 Point Feature Propagation for Set Segmentation
- 원래 포인트 클라우드로 segmentation을 진행하고싶은데 그러면 너무 computational cost가 큼
- 그래서 skip connection사용해서 진행
- interpolation 진행하고 거기에 skip connection된 원래의 것에 feature를 대응시킴
- inverse distance weighted average를 사용해서 interpolation진행하고
- 그렇게 interpolation된 feature들을 skip connection한 포인트 feature랑 concat진행함
- 그거를 unit PointNet에 넣는데 대충 1by1 convolution같은 느낌