VO vs SLAM
**Visual Odometry (VO)**는 연속된 프레임으로부터 지역적이고 증분적인 카메라 모션을 추정합니다: 프레임 간 특징점을 매칭하거나 추적하고(또는 직접 방법의 경우 광도 오차를 최소화하고), 상대 포즈를 추정한 뒤 추정치들을 연쇄시킵니다. VO에는 전역 지도라는 개념이 없고 루프 클로저를 수행할 수 없으므로 — 드리프트가 무한히 누적됩니다. 긴 루프를 돌아 출발점으로 돌아와도 순수 VO 궤적은 닫히지 않습니다.
Visual SLAM은 전역 일관성을 위한 메커니즘으로 VO를 확장합니다:
- 지역 슬라이딩 윈도우를 넘어 지속되는 영속적 전역 지도(랜드마크/키프레임)로, 오래된 랜드마크의 재관측을 가능하게 합니다;
- 루프 클로저(이전에 매핑된 영역의 재방문)를 감지하는 장소 인식;
- 루프가 감지되었을 때 누적된 드리프트를 재분배하는 전역 최적화(포즈 그래프 최적화 또는 전역 번들 조정);
- 보통 재지역화도 포함됩니다: 추적 실패 이후 지도로부터 포즈를 복구하는 것.
간결한 비교:
| 측면 | VO | SLAM |
|---|---|---|
| 범위 | 지역적(최근 프레임의 윈도우) | 전역적(전체 궤적 + 지도) |
| 드리프트 | 무한히 증가 | 루프 클로저에서 보정됨 |
| 지도 | 없음, 또는 임시 지역 지도 | 영속적이고 재사용 가능 |
| 비용 | 낮고 한정됨 | 더 높음; 지도 크기에 따라 증가 |
| 실패 복구 | 손실되면 끝 | 지도에 대해 재지역화 |
VO 파이프라인이 실제로 하는 일
구체적으로, 특징점 기반 VO의 한 반복은 다음과 같습니다 — 이는 모든 특징점 기반 SLAM 시스템의 추적 스레드이기도 하므로 익혀둘 가치가 있습니다:
- 새 프레임에서 특징점을 검출/추적합니다(FAST/ORB 검출, 또는 이전 프레임으로부터의 KLT 추적).
- 이전 프레임(들)과 연관시킵니다: 디스크립터 매칭이나 추적된 대응점을 RANSAC으로 정제합니다.
- 상대 포즈를 추정합니다: 2D-2D 매칭으로부터 essential matrix(초기화 단계), 또는 지역적으로 삼각측량된 3D 점에 대한 PnP(정상 상태).
- 지역 3D 구조를 계속 유지하기 위해, 추정된 모션으로부터 새로운 점을 삼각측량합니다.
- 지역적으로 정제합니다: 최근 몇 프레임/키프레임에 대한 작은 번들 조정(윈도우 BA).
직접(direct) VO는 1-3단계를 광도 정렬로 대체합니다: 명시적인 대응점 없이, 포즈(및 픽셀별 깊이)에 대해 프레임 간 픽셀 강도 오차를 최소화합니다. 어느 방식이든, 출력은 상대 포즈들의 연쇄이며 — 3단계 이후의 모든 단계는 드리프트를 제거하는 것이 아니라 느리게 만드는 데 존재합니다.
이에 대응하는 평가지표: **RPE(relative pose error, 상대 포즈 오차)**는 고정된 거리/시간 간격에 대한 포즈 증분의 오차를 측정합니다 — 드리프트 속도로, VO의 솔직한 점수입니다. **ATE(absolute trajectory error, 절대 궤적 오차)**는 추정치를 정답과 정렬한 후의 전역 위치 오차를 측정합니다 — 루프가 닫혔는지에 지배되며, SLAM의 점수입니다. RPE는 훌륭하지만 ATE가 나쁜 시스템은 전역 일관성이 없는 좋은 오도미터이며, 그 반대는 잡음이 많은 프론트엔드 위에 강력한 루프 클로저가 있음을 시사합니다.
경계는 하나의 스펙트럼이다
DSO와 SVO는 VO 시스템입니다; LDSO는 “DSO + 루프 클로저”, 즉 동일한 프론트엔드가 SLAM으로 승격된 것입니다. ORB-SLAM의 추적 스레드만 놓고 보면 본질적으로 VO 시스템입니다 — 지역 매핑과 루프 클로징 스레드가 그것을 SLAM으로 만드는 요소입니다. VIO에서도 동일한 구분이 나타납니다: 오도메트리(MSCKF, VINS 프론트엔드) 대 지도 재사용을 포함한 완전한 SLAM(ORB-SLAM3, 루프 클로저가 활성화된 VINS-Mono).
어느 쪽이 필요한지는 엔지니어링 판단입니다. 단기적인 자기 운동만이 중요하다면(예: 컨트롤러에 입력을 주거나 드론 안정화), VO의 한정된 계산량과 단순함이 유리합니다. 로봇이 장소를 재방문하거나, 오랜 시간 동작하거나, 사전 지도 안에서 위치를 추정해야 한다면 SLAM이 필요합니다 — 무한한 드리프트를 멈추는 것은 그것뿐입니다.
흔한 함정
- 범주를 넘나들며 ATE 비교하기: 루프가 있는 시퀀스에서 VO 시스템을 ATE로 판단하는 것(또는 SLAM 시스템을 RPE만으로 판단하는 것)은 각 방법이 설계된 목적을 오독하는 것입니다; 논문이 어떤 지표와 어떤 정렬(단안의 경우 6-DoF 대 7-DoF)을 보고하는지 확인하십시오.
- 루프 클로저가 공짜라고 가정하기: VO를 SLAM으로 승격시키면 장소 인식 데이터베이스, 검증 로직, 전역 최적화가 추가되고 — 결정적으로 — 새로운 실패 모드(거짓 루프)도 추가됩니다. 강건한 VO가 실제로는 취약한 SLAM보다 나을 수 있습니다.
- 무한한 지도 증가: “일단 다 유지하는” SLAM은 몇 시간의 동작 이후 성능이 저하됩니다; 키프레임 정리와 지도 관리는 선택 사항이 아니라 SLAM 계약의 일부입니다.
- 재지역화 ≠ 루프 클로저: 둘 다 장소 인식을 사용하지만, 재지역화는 기존 지도에 대해 추적을 복구하는 것이고, 루프 클로저는 지도를 변형시키는 제약 조건을 추가하는 것입니다; 이를 혼동하면 시스템 설계 논의가 흐려집니다.
SLAM에서의 의미
이 구분은 전체 분야를 조직하는 틀입니다: 여러분이 공부할 거의 모든 시스템은 VO/오도메트리 방법이거나, VO 코어를 지도 관리, 장소 인식, 전역 최적화로 감싸서 만든 SLAM 시스템입니다. 어떤 논문이 무엇을 주장하는지(지역적 정확도인지 전역적 일관성인지) 아는 것은 어떤 벤치마크가 중요한지 — VO는 RPE, SLAM은 루프 클로저를 포함한 ATE — 그리고 그 실패 모드가 무엇일지를 알려줍니다.