번들조정 (Bundle Adjustment)
쉽게 풀면
여러 장의 사진에 찍힌 같은 점들이 다시 사진에 투영됐을 때 가장 잘 맞아떨어지도록 카메라 위치와 점들의 3차원 좌표를 한꺼번에 미세 조정하는 방법입니다.
왜 중요한가
여러 카메라 자세와 3D 점 위치를 동시에 최적화해 재투영 오차를 최소화하는 단계로, SfM과 비주얼 SLAM의 정밀도를 최종적으로 결정합니다. 비전 기반 위치추정 논문은 대부분 이 단계를 어떤 범위와 빈도로 수행했는지를 밝힙니다.
논문에서는 이렇게 쓰입니다
실제 관측된 영상 좌표와, 추정한 카메라·점 위치로 다시 계산한 투영 좌표 사이의 차이를 제곱해 더한 값을 최소로 만드는 파라미터를 찾는다는 뜻입니다.
번들조정은 다수의 관측 시점과 3차원 점을 동시에 고려해 재투영 오차를 최소화함으로써, 개별 프레임 단위 추정보다 전역적으로 일관된 결과를 얻는 데 활용된다.
조금 더 깊게 보면
변수 수가 카메라 수와 점 수에 비례해 커지지만 야코비안이 희소 구조를 가지므로 슈어 보수 기법으로 실시간에 가깝게 풀 수 있습니다. 초기값에 민감한 비선형 최소제곱이라 초기 추정이 나쁘면 국소해에 빠지며, 스케일이 결정되지 않는 단안 카메라 문제에서는 게이지 자유도를 고정하는 처리가 필요합니다. 번들조정의 야코비안은 각 관측이 해당 카메라와 해당 점에만 의존하는 희소 구조를 가지므로, 이를 이용한 슈어 보수(Schur complement) 기법으로 카메라 파라미터만 먼저 풀고 점 좌표를 나중에 복원하면 변수 수가 많아도 실시간에 가깝게 계산할 수 있다. 단안 카메라만으로는 전체 스케일(실제 크기)을 결정할 수 없어, 별도의 기준 길이나 관성센서 정보로 스케일을 고정하는 처리가 함께 필요하다.
주의할 점
변수 수가 매우 많아 계산 비용이 크므로 희소 행렬 구조를 활용한 최적화 기법 없이는 실시간 처리가 어렵습니다. 초기 카메라 자세와 점 좌표 추정이 실제 값에서 크게 벗어나 있으면 비선형 최소제곱 특유의 국소해 문제로 잘못된 결과에 수렴할 수 있어, 좋은 초기값 확보가 성능을 좌우한다.