Grid Pooling과 Furthest Point Sampling(FPS) 둘 다
point cloud의 down-sampling(축소) 기법입니다.
하지만 방식과 목적에 큰 차이가 있습니다.
1. Grid Pooling
- 공간을 격자(grid) 로 나눕니다.
- 각 격자 칸(cell) 안에 있는 포인트들을 하나로 요약합니다.
(평균 내거나, 최대값을 선택하는 등)
- 결과적으로, 공간 구조(위치 관계)를 대략 유지한 채 포인트 수를 줄입니다.
- 국지적(local) 구조를 자연스럽게 살리면서 다운샘플링합니다.
- 연산이 간단합니다. (일종의 3D 버전의 pooling이라고 보면 됨)
2. Furthest Point Sampling (FPS)
- 샘플링해야 할 포인트 개수(k개)를 정합니다.
- 처음 포인트 하나를 랜덤하게 선택한 뒤,
- 가장 멀리 떨어진 포인트를 반복적으로 골라서 추가합니다.
- 결과적으로, 포인트들이 공간 전체에 골고루 퍼지게 샘플링됩니다.
- 포인트 분포를 균일하게 유지하는 데 좋습니다.
- 연산량이 많습니다. (거리를 계속 계산해야 하니까 느립니다)
3. 요약 비교표
| 항목 | Grid Pooling | Furthest Point Sampling (FPS) |
|---|
| 방식 | 격자 나누기 + pooling | 거리 기반 선택 |
| 구조 유지 | 대략적인 공간 구조 유지 | 골고루 분산된 포인트 유지 |
| 연산 속도 | 빠름 | 느림 |
| 특징 | 로컬 구조 강조 | 전체 분포 균일성 강조 |
| 적용 예시 | PTv2, PTv3 등 최근 트랜스포머 계열 | PointNet++, DGCNN 등 |
간단 비유
- Grid Pooling = "네모칸 나눠서 칸마다 하나씩 뽑기"
- FPS = "먼 거리끼리 하나씩 뽑아서 골고루 퍼뜨리기"
4. 정리
- 둘 다 down-sampling은 맞지만,
- Grid Pooling은 로컬(local) 정보를 더 잘 살리고,
- FPS는 포인트들이 퍼져 있는(global) 분포를 잘 살립니다.