VO vs SLAM

**Visual Odometry (VO)**는 연속된 프레임으로부터 지역적이고 증분적인 카메라 모션을 추정합니다: 프레임 간 특징점을 매칭하거나 추적하고(또는 직접 방법의 경우 광도 오차를 최소화하고), 상대 포즈를 추정한 뒤 추정치들을 연쇄시킵니다. VO에는 전역 지도라는 개념이 없고 루프 클로저를 수행할 수 없으므로 — 드리프트가 무한히 누적됩니다. 긴 루프를 돌아 출발점으로 돌아와도 순수 VO 궤적은 닫히지 않습니다.

Visual SLAM은 전역 일관성을 위한 메커니즘으로 VO를 확장합니다:

간결한 비교:

측면VOSLAM
범위지역적(최근 프레임의 윈도우)전역적(전체 궤적 + 지도)
드리프트무한히 증가루프 클로저에서 보정됨
지도없음, 또는 임시 지역 지도영속적이고 재사용 가능
비용낮고 한정됨더 높음; 지도 크기에 따라 증가
실패 복구손실되면 끝지도에 대해 재지역화

VO 파이프라인이 실제로 하는 일

구체적으로, 특징점 기반 VO의 한 반복은 다음과 같습니다 — 이는 모든 특징점 기반 SLAM 시스템의 추적 스레드이기도 하므로 익혀둘 가치가 있습니다:

  1. 새 프레임에서 특징점을 검출/추적합니다(FAST/ORB 검출, 또는 이전 프레임으로부터의 KLT 추적).
  2. 이전 프레임(들)과 연관시킵니다: 디스크립터 매칭이나 추적된 대응점을 RANSAC으로 정제합니다.
  3. 상대 포즈를 추정합니다: 2D-2D 매칭으로부터 essential matrix(초기화 단계), 또는 지역적으로 삼각측량된 3D 점에 대한 PnP(정상 상태).
  4. 지역 3D 구조를 계속 유지하기 위해, 추정된 모션으로부터 새로운 점을 삼각측량합니다.
  5. 지역적으로 정제합니다: 최근 몇 프레임/키프레임에 대한 작은 번들 조정(윈도우 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이 필요합니다 — 무한한 드리프트를 멈추는 것은 그것뿐입니다.

흔한 함정

SLAM에서의 의미

이 구분은 전체 분야를 조직하는 틀입니다: 여러분이 공부할 거의 모든 시스템은 VO/오도메트리 방법이거나, VO 코어를 지도 관리, 장소 인식, 전역 최적화로 감싸서 만든 SLAM 시스템입니다. 어떤 논문이 무엇을 주장하는지(지역적 정확도인지 전역적 일관성인지) 아는 것은 어떤 벤치마크가 중요한지 — VO는 RPE, SLAM은 루프 클로저를 포함한 ATE — 그리고 그 실패 모드가 무엇일지를 알려줍니다.

실습

관련 문서