TSDF vs Surfel 맵
밀집 RGB-D SLAM은 잡음이 있는 깊이 프레임을 깨끗한 표면으로 흡수할 수 있는 맵 표현이 필요하다. 두 계열이 이 분야를 지배하며, KinectFusion과 ElasticFusion이 각각의 대표 예다.
TSDF: 복셀 그리드로의 융합
**TSDF(Truncated Signed Distance Function)**는 체적 표현이다: 공간을 복셀로 나누고, 각 복셀은 가장 가까운 표면까지의 부호 있는 거리를 그 주변의 좁은 대역으로 절단한 값과 융합 가중치를 저장한다. 새로운 깊이 프레임이 들어올 때마다 먼저 복셀별 거리 관측값으로 변환된다: 복셀 중심 를 깊이 이미지에 투영하고, 측정된 깊이를 카메라 광선을 따른 복셀의 거리와 비교한다.
여기서 는 절단 거리이고 는 값을 로 클램프한다. 이러한 관측값들은 복셀별 이동 가중 평균으로 융합된다:
표면은 의 영교차(zero-crossing)이며, 레이캐스팅이나 marching cubes로 추출된다. 융합은 자명하게 병렬화 가능하고(GPU에 이상적) 평균화는 센서 잡음을 상쇄시켜 부드럽고 물이 새지 않는(watertight) 표면을 만들어낸다. 대가는 다음과 같다: 메모리는 표면 면적이 아니라 부피에 비례해 커진다 — KinectFusion의 고정 그리드(예: 2–3 mm 해상도에서 복셀)는 겨우 수 세제곱미터만 다룰 수 있으며, 바로 이를 완화하기 위해 복셀 해싱과 옥트리가 고안되었다 — 해상도는 복셀 크기로 고정되며, 과거 포즈를 수정하는 것은 비용이 크다: 부피를 역통합하고 재통합해야 하거나(BundleFusion) 이동시켜야 한다(Kintinuous).
Surfel: 표면 원시요소로의 융합
Surfel 맵은 점 기반이다: 장면은 서펠들의 집합 — 디스크 모양의 표면 요소 —
으로, 각각 위치, 법선, 반지름, 색상, 신뢰도 가중치, 타임스탬프를 가진다. 새 측정값은 기존의 인접한 서펠을 업데이트(속성의 가중 평균)하거나 새로운 서펠을 생성한다. 메모리는 관측된 표면 면적에 비례해 커지고, 해상도는 측정 밀도에 적응하며, 서펠이 독립적인 원시요소이기 때문에 맵을 변형할 수 있다: ElasticFusion은 루프 클로저 시 포즈 그래프를 유지하는 대신 서펠 클라우드에 비강체 변형 그래프(임베디드 변형(embedded deformation)의 정신을 따른 것)를 적용한다. 대가는 다음과 같다: 연결된 메시가 저절로 얻어지지 않고, 추적을 위해서는 렌더링 기반 모델 예측이 필요하며, 변형은 미세한 표면 디테일을 뭉갤 수 있다.
나란히 비교
| TSDF (KinectFusion) | Surfel (ElasticFusion) | |
|---|---|---|
| 구조 | 공간에 대한 복셀 그리드 | 표면 위의 비구조적 점 집합 |
| 융합 | 복셀별 이동 평균 | 서펠별 속성 업데이트 |
| 표면 추출 | 영교차 (레이캐스팅 / marching cubes) | 스플랫 렌더링 |
| 메모리 | 부피에 비례 (해싱/옥트리 필요) | 표면 면적에 비례 |
| 루프 클로저 보정 | 역통합/재통합 또는 볼륨 이동 | 비강체 맵 변형 |
| 출력 품질 | 부드럽고 물이 새지 않는 메시 | 적응적, 변형 가능, 메시 없음 |
실무에서의 선택 — 그리고 함정
어느 쪽도 확실한 승자는 아니다: BAD SLAM은 서펠을 포즈와 함께 직접적인 번들 조정으로 공동 최적화하며, BundleFusion은 재통합을 통해 TSDF도 전역 일관성을 유지할 수 있음을 보여준다. 몇 가지 실전 지침과 함정은 다음과 같다:
- 절단 거리 는 실질적인 트레이드오프다: 너무 작으면 센서 잡음으로 표면이 사라지거나 이중으로 나타나고, 너무 크면 인접한 표면(얇은 벽, 양쪽에서 관측된 테이블 상판)이 절단 대역 내에서 서로 간섭한다.
- 얇은 구조물은 TSDF의 사각지대다: 몇 복셀보다 얇은 기하는 표현할 수 없다 — 양쪽에서의 평균화가 이를 지워버린다. Surfel은 표면 위에 존재하기 때문에 얇은 구조를 더 우아하게 처리한다.
- 복셀 크기와 메모리는 세제곱 관계다: 복셀 크기를 절반으로 줄이면 해당 영역의 메모리가 8배로 증가한다; 복셀 해싱은 공간의 대부분이 비어 있기 때문에만 도움이 된다.
- Surfel은 좋은 법선이 필요하다: 모든 서펠 업데이트는 잡음이 있는 깊이로부터 추정된 법선에 의존한다; 법선이 나쁘면 정렬이 어긋난 디스크와 뭉개진 표면이 생기며, (깊이와 시야각으로부터) 서펠 반지름을 선택하는 문제는 보이는 것보다 더 중요하다.
- 첫날부터 루프 클로저를 계획하라: 표현 방식이 보정 메커니즘을 결정한다 — 역통합/재통합은 오래된 통합을 되돌리기 위해 프레임별 깊이를 보관해야 하고, 맵 변형은 전역 일관성을 일부 국소적 뭉개짐과 교환한다. 포즈가 변하지 않는다고 가정한 시스템에 사후적으로 이 둘 중 하나를 덧붙이는 것은 고통스럽다.
이후의 신경 표현(신경 필드, 3D 가우시안)들은 이 두 철학의 후예로 이해하는 것이 가장 적절하다 — 암묵적 체적 방식과 명시적 원시요소 기반 매핑 방식.
SLAM에서의 의미
맵 표현은 밀집 SLAM 시스템에서 후속되는 거의 모든 것을 결정한다: 추적 예측이 어떻게 생성되는지, 메모리가 장면 크기에 따라 어떻게 확장되는지, 그리고 가장 중요하게는 루프 클로저가 누적된 드리프트를 드러낼 때 시스템이 맵을 어떻게 보정할 수 있는지를 결정한다. “재통합을 사용하는 TSDF냐, 변형을 사용하는 Surfel이냐”는 RGB-D SLAM의 근본적인 설계 분기점이며, 이를 인식하면 어떤 밀집 시스템이든 빠르게 지도상에 위치시킬 수 있다.
실습
관련 문서
- KinectFusion — 대표적인 TSDF 융합 시스템
- ElasticFusion — 대표적인 Surfel 융합 시스템
- BundleFusion — 역통합/재통합을 통해 일관성을 유지하는 TSDF
- BAD SLAM — Surfel 맵에 대한 직접적인 번들 조정
- Frame-to-model tracking — 이러한 맵들이 추적에 사용되는 방식