필터 기반 vs 최적화 기반

긴밀 결합 VIO 내에는 두 가지 추정 패러다임이 있다. 둘 다 동일한 확률적 추론 문제를 풀지만, 재선형화를 얼마나 자주 하려는지에 차이가 있다.

필터 기반 (EKF)

필터 기반 방법(MSCKF, ROVIO, OpenVINS)은 상태 벡터 x\mathbf{x}와 공분산 P\mathbf{P}를 유지하며 재귀적으로 갱신한다:

각 측정값은 처리되는 순간 한 번만 선형화된다. 이는 상수 시간의 낮은 지연 업데이트를 제공하지만 — 선형화 지점은 영구적이다: 추정값이 이후에 움직이면 이미 흡수된 정보는 재선형화될 수 없으며, 누적된 선형화 오차는 드리프트와 (주의하지 않으면) 불일치를 야기한다. MSCKF의 핵심 통찰은 EKF를 윈도우 형태로 만든 것이었다 — 상태에 슬라이딩 형태의 과거 카메라 자세 집합을 유지하고 특징 제약을 구조 없는 방식으로 적용함으로써 — 그래서 “필터링” VIO조차도 실은 윈도우 방식으로 동작한다.

최적화 기반 (슬라이딩 윈도우 BA)

최적화 기반 방법(OKVIS, VINS-Mono, Basalt, ORB-SLAM3)은 최근 키프레임 상태의 슬라이딩 윈도우를 유지하고 재투영 잔차, 사전 적분된 IMU 잔차, 주변화 사전으로 구성된 결합 비선형 비용을 가우스-뉴턴이나 Levenberg-Marquardt로 최소화한다:

minX  rp2+rIMUΣ12+ρ(rreprojR12)\min_{\mathcal{X}} \; \|\mathbf{r}_p\|^2 + \sum \|\mathbf{r}_{\text{IMU}}\|^2_{\Sigma^{-1}} + \sum \rho\left(\|\mathbf{r}_{\text{reproj}}\|^2_{R^{-1}}\right)

솔버의 매 반복이 윈도우 내의 모든 잔차를 현재 추정값에서 재선형화하기 때문에, 선형화 오차가 훨씬 작고 그에 따라 정확도가 더 높다 — 계산 비용은 더 크다. 오래된 상태는 슈어 보완 주변화를 통해 사전 rp\mathbf{r}_p로 압축되며, 이것이 두 패러다임이 만나는 지점이다(아래 참조).

비교

필터 (EKF)슬라이딩 윈도우 최적화
선형화측정값당 한 번매 반복마다 재선형화
비용낮음, 상수 시간더 높음, 윈도우 크기에 따라 증가
정확도양호(일반적으로) 더 좋음
지연 시간매우 낮음(측정값당 한 번의 업데이트)더 높음(프레임당 반복적 풀이)
일관성 도구First-Estimate Jacobians (FEJ), 관측 가능성 제약주변화 사전에 대한 FEJ; 비선형 팩터 복구(Basalt); 지연된 주변화(DM-VIO)
대표 시스템MSCKF, ROVIO, OpenVINSOKVIS, VINS-Mono, Basalt, ORB-SLAM3

두 계열은 보이는 것보다 가깝다

따라서 실질적인 차이는 “재귀적 vs 배치”가 아니라 각 설계가 계산 예산을 어디에 쓰는가이다: 필터는 재선형화에 거의 아무것도 쓰지 않고 처리량에 모든 것을 쓰며; 최적화기는 작고 잘 선택된 윈도우를 재선형화함으로써 정확도를 산다.

실전에서의 선택

흔한 함정

SLAM에서의 의미

이는 시각적 SLAM에 대해 연구된 고전적인 “왜 필터링인가?” 질문(Strasdat 등)의 VIO 버전이다: 고정된 컴퓨팅 예산이 주어졌을 때, 작은 키프레임 윈도우를 재선형화하는 것이 큰 상태를 필터링하는 것을 이긴다. 각 쪽의 실패 모드—필터 불일치 대 최적화기 지연—를 아는 것은 주어진 플랫폼에 어떤 시스템을 선택할지, 그리고 그 실패 모드를 고치기 위해 어떤 논문들(FEJ, 비선형 팩터 복구, 지연된 주변화)이 존재하는지를 알려준다.

관련 문서