STATERA Library · Series 02 · Volume 04 · Chapter 06 · KR
Source: https://github.com/Statera-Library/02_Vol_04_Localization_Mapping_and_SLAM/blob/main/06_Visual_SLAM/06_Visual_SLAM_KR.md
Volume 04. Localization, Mapping, and SLAM
Chapter 06. Visual SLAM
06.1 Visual SLAM Fundamentals
비주얼 SLAM(Visual Simultaneous Localization and Mapping, Visual SLAM 또는 V-SLAM)은 현대 로보틱스, 자율주행 차량, 드론, 증강현실(AR), 혼합현실(MR), 자율이동로봇(AMR), 그리고 Embodied AI 시스템에서 가장 중요한 기술 중 하나이다. 비주얼 SLAM은 카메라를 이용하여 획득한 영상 정보를 기반으로 로봇이 자신의 위치를 추정함과 동시에 주변 환경의 지도를 생성할 수 있도록 한다. 기존의 위치추정 시스템이 사전에 구축된 지도나 외부 인프라에 의존하는 것과 달리, 비주얼 SLAM은 로봇이 미지의 환경을 스스로 탐색하면서 자신의 위치를 계산하고 환경에 대한 내부 지도를 구축할 수 있도록 한다. 최근 카메라 센서가 저렴하고 소형화되며 성능이 향상됨에 따라 비주얼 SLAM은 가장 널리 사용되는 위치추정 및 지도작성 기술 중 하나로 자리 잡고 있다.
Localization, Mapping, and SLAM 분야에서 비주얼 SLAM은 LiDAR SLAM, Multi-Sensor SLAM, Graph SLAM, GNSS 기반 위치추정과 함께 SLAM 기술의 중요한 한 축을 형성한다. LiDAR 기반 SLAM이 거리 정보를 중심으로 환경을 인식하는 반면, 비주얼 SLAM은 영상 데이터를 통해 공간 정보를 추출한다. 이를 통해 로봇은 단순한 기하학적 구조뿐 아니라 텍스처, 색상, 객체, 랜드마크, 구조물, 의미 정보(Semantic Information)까지 인식할 수 있다. 따라서 비주얼 SLAM은 단순한 위치추정 기술을 넘어 Scene Understanding, Semantic Mapping, World Model, Embodied Intelligence로 발전하는 핵심 기반 기술이라 할 수 있다.
비주얼 SLAM의 기본 목표는 모든 SLAM 시스템과 동일하다. 로봇은 미지의 환경에서 자신의 위치와 자세를 추정하면서 동시에 환경 지도를 생성해야 한다. 문제는 정확한 위치추정을 위해서는 지도가 필요하고, 정확한 지도를 생성하기 위해서는 위치 정보가 필요하다는 점이다. 이를 SLAM Problem이라고 부른다. 비주얼 SLAM은 영상에서 특징점을 추출하고 이를 지속적으로 추적하며 카메라의 움직임을 계산하고 환경의 구조를 복원함으로써 이 문제를 해결한다.
비주얼 SLAM의 첫 단계는 영상 획득(Image Acquisition)이다. 카메라는 환경을 연속적으로 촬영하여 이미지 시퀀스를 생성한다. 이 이미지들은 비주얼 SLAM이 사용하는 주요 정보원이 된다. LiDAR가 직접 거리를 측정하는 것과 달리 카메라는 물체에서 반사된 빛을 관측한다. 따라서 비주얼 SLAM은 영상 간의 기하학적 관계를 이용하여 간접적으로 3차원 구조를 추정해야 한다.
카메라는 본질적으로 3차원 세계를 2차원 이미지 평면에 투영하는 시스템이다. 로봇이 이동하면 환경 내 객체들의 이미지 위치가 변화한다. 이러한 변화는 시차(Parallax)라고 불리며, 비주얼 SLAM은 이 시차 정보를 이용하여 카메라의 움직임과 환경 구조를 추정한다.
특징 추출(Feature Extraction)은 비주얼 SLAM의 가장 중요한 과정 중 하나이다. 이미지에는 수백만 개의 픽셀이 존재하지만 모든 픽셀을 처리하는 것은 비효율적이다. 따라서 시스템은 코너(Corner), 에지(Edge), 텍스처(Texture), Blob과 같은 시각적으로 구별 가능한 특징점을 추출한다. 좋은 특징점은 시점 변화, 크기 변화, 회전, 조명 변화에도 안정적으로 인식될 수 있어야 한다.
대표적인 특징 추출 알고리즘으로는 Harris Corner, FAST, SIFT, SURF, ORB, BRISK, AKAZE 등이 있다. 각각 계산 속도와 정확도, 강건성 측면에서 차이가 있다. 실시간 로봇 시스템에서는 계산 효율성이 뛰어난 ORB 특징이 가장 널리 사용된다.
특징점이 추출되면 특징 매칭(Feature Matching)이 수행된다. 시스템은 연속된 이미지에서 동일한 특징점을 찾는다. 동일한 랜드마크가 여러 프레임에 걸쳐 관측되면 그 이동 정보를 이용하여 카메라의 움직임을 추정할 수 있다.
특징 매칭은 쉽지 않은 문제이다. 시점 변화, 스케일 변화, 조명 변화, 모션 블러, 가림 현상(Occlusion), 동적 객체 등에 의해 동일한 특징점이 다르게 보일 수 있기 때문이다. 따라서 특징 기술자(Descriptor)와 기하학적 검증 기법을 이용하여 신뢰할 수 있는 대응점을 찾아야 한다.
모션 추정(Motion Estimation)은 매칭된 특징점을 이용하여 수행된다. 특징점들이 이미지 내에서 어떻게 이동했는지를 분석하여 카메라의 이동(Translation)과 회전(Rotation)을 계산한다. 이를 Visual Odometry라고 한다.
Visual Odometry는 모바일 로봇에서 사용하는 Wheel Odometry와 유사한 역할을 수행한다. 하지만 바퀴와 지면의 접촉에 의존하지 않기 때문에 휠 슬립에 영향을 받지 않는다. 따라서 드론, 사족보행 로봇, 험지 주행 로봇 등에 매우 유용하다.
Structure from Motion(SfM)은 비주얼 SLAM의 핵심 개념이다. SfM은 영상 시퀀스로부터 카메라의 움직임과 환경의 3차원 구조를 동시에 복원하는 과정이다. 카메라가 서로 다른 위치에서 동일한 특징점을 관측하면 삼각측량(Triangulation)을 통해 해당 특징점의 3차원 좌표를 계산할 수 있다.
삼각측량은 비주얼 SLAM의 기본적인 기하학 연산이다. 여러 위치에서 관측된 특징점으로부터 광선(Ray)을 생성하고 이들의 교차점을 계산하여 공간상의 위치를 추정한다.
이렇게 생성된 3차원 특징점들의 집합은 환경의 희소 지도(Sparse Map)를 형성한다. Sparse Map은 Occupancy Map이나 Dense Point Cloud와 달리 일부 중요한 랜드마크만 저장하기 때문에 메모리와 계산량을 크게 줄일 수 있다.
비주얼 SLAM은 다양한 좌표계를 사용한다. Camera Frame, Robot Frame, Local Map Frame, Global Map Frame 등이 있으며, 이들 사이의 변환 관계를 이용하여 위치와 환경 정보를 일관성 있게 관리한다.
카메라 보정(Camera Calibration)은 비주얼 SLAM의 필수 전제 조건이다. 보정 과정에서는 초점 거리(Focal Length), 주점(Principal Point), 렌즈 왜곡 계수 등을 계산한다. 보정 오차는 위치추정 정확도와 지도 품질에 직접적인 영향을 준다.
실제 카메라는 방사 왜곡(Radial Distortion)과 접선 왜곡(Tangential Distortion)을 가진다. 따라서 왜곡 보정을 수행한 후 특징 추출과 위치추정을 진행해야 한다.
비주얼 SLAM은 확률적 추정 기법을 사용하여 불확실성을 처리한다. 영상 데이터에는 노이즈가 존재하고 특징 매칭 오류도 발생할 수 있다. 따라서 EKF, Particle Filter, Factor Graph, Graph Optimization 등의 확률 모델을 사용하여 위치와 불확실성을 동시에 추정한다.
Bundle Adjustment는 비주얼 SLAM에서 가장 중요한 최적화 기법 중 하나이다. 카메라 위치와 랜드마크 위치를 동시에 최적화하여 재투영 오차(Reprojection Error)를 최소화한다. 계산량은 크지만 지도 품질과 위치추정 정확도를 크게 향상시킨다.
Loop Closure는 장기 운용에서 매우 중요한 기능이다. 로봇이 이동하면서 작은 위치 오차가 누적되는데, 이전에 방문했던 장소를 다시 인식하면 이러한 Drift를 보정할 수 있다.
Place Recognition은 Loop Closure의 핵심 기술이다. 현재 카메라 영상과 과거의 영상을 비교하여 동일 장소인지 판단한다. 성공적인 Loop Closure는 지도의 전역 일관성을 크게 향상시킨다.
현대의 비주얼 SLAM은 Graph 기반 구조를 많이 사용한다. 카메라 위치는 노드(Node)로 표현하고, 상대 이동량과 Loop Closure 관계는 엣지(Edge)로 표현한다. 이후 Graph Optimization을 수행하여 전체 지도를 최적화한다.
비주얼 SLAM은 크게 세 가지 방식으로 구분할 수 있다. Feature-Based 방식은 특징점을 기반으로 동작한다. Direct 방식은 특징점 없이 픽셀 밝기 정보를 직접 사용한다. Semi-Direct 방식은 두 방법을 결합한 형태이다.
Feature-Based 방식은 안정적이고 관리가 쉽다. Direct 방식은 이미지 정보를 더 많이 활용할 수 있으며 저텍스처 환경에서도 동작할 수 있다. Semi-Direct 방식은 두 접근법의 장점을 결합한다.
Monocular Visual SLAM은 단일 카메라를 사용한다. 구조가 단순하고 비용이 저렴하지만 깊이를 직접 측정할 수 없다는 단점이 있다. 따라서 절대 스케일을 알 수 없는 Scale Ambiguity 문제가 발생한다.
Stereo Visual SLAM은 두 대의 카메라를 사용한다. 카메라 간의 시차(Disparity)를 이용하여 깊이를 직접 계산할 수 있으므로 절대 스케일 문제를 해결할 수 있다.
RGB-D SLAM은 RGB 영상과 깊이 정보를 동시에 제공하는 카메라를 사용한다. 깊이 정보를 직접 활용할 수 있기 때문에 지도 생성과 위치추정이 더욱 용이하다. 실내 AMR 분야에서 매우 널리 사용된다.
비주얼 SLAM의 성능은 환경 특성에 크게 영향을 받는다. 텍스처가 풍부한 환경에서는 높은 정확도를 제공하지만, 흰 벽과 같이 특징이 거의 없는 환경에서는 성능이 저하된다. 반복적인 패턴, 유리창, 반사면, 투명 물체도 문제를 일으킬 수 있다.
조명 조건 또한 중요한 변수이다. 그림자, 역광, 야간 환경, 과도한 노출 등은 특징 매칭 성능을 저하시킨다. 따라서 최신 비주얼 SLAM은 조명 변화에 강건한 알고리즘을 사용한다.
동적 환경은 또 다른 도전 과제이다. 사람, 차량, 기계 설비와 같은 움직이는 객체는 정적 환경을 가정하는 SLAM 알고리즘에 오류를 유발할 수 있다. 따라서 Dynamic Object Detection 및 Filtering 기술이 중요해지고 있다.
실시간 성능도 중요한 요소이다. 비주얼 SLAM은 지속적으로 영상 처리, 특징 추출, 매칭, 최적화, 지도 관리를 수행해야 한다. Jetson Orin NX, Jetson AGX Orin, RTX 기반 Edge Computer, 향후 Jetson Thor와 같은 플랫폼은 이러한 연산을 실시간으로 처리하기 위한 핵심 하드웨어가 되고 있다.
비주얼 SLAM은 다양한 분야에서 활용되고 있다. 드론은 GNSS가 없는 실내 환경에서 비주얼 SLAM을 이용하여 비행한다. 물류창고 AMR은 실내 위치추정에 사용한다. 서비스 로봇은 사람 중심 환경에서 활용한다. AR/VR 장치는 공간 추적을 위해 비주얼 SLAM을 사용한다. 자율주행 차량 역시 카메라, LiDAR, 레이더, GNSS, IMU와 함께 비주얼 SLAM을 활용한다.
현대의 로봇 시스템에서 비주얼 SLAM은 단독으로 사용되는 경우보다 다중 센서 융합 형태로 사용되는 경우가 많다. 카메라와 IMU를 결합한 Visual-Inertial SLAM, 카메라와 LiDAR를 결합한 Visual-LiDAR SLAM, GNSS 융합 시스템 등이 대표적이다.
미래의 비주얼 SLAM은 인공지능과 Embodied AI 방향으로 발전하고 있다. 딥러닝은 특징 추출, 장소 인식, 깊이 추정, 동적 객체 제거, 장면 이해를 지원하고 있다. 앞으로는 단순한 기하학적 지도에서 벗어나 객체, 의미 정보, 환경 맥락, 미래 예측까지 포함하는 Semantic World Model로 발전할 것이다.
AMR 개발 체계의 관점에서 Visual SLAM Fundamentals는 Perception, Localization, Mapping, Navigation, Scene Understanding, Autonomous Decision Making을 연결하는 핵심 기술이다. 비주얼 SLAM은 로봇이 자신이 어디에 있는지, 주변에 무엇이 있는지, 환경이 어떻게 변화하는지를 이해할 수 있도록 해준다. 로봇이 완전 자율화되고 Embodied AI 시대로 발전할수록 비주얼 SLAM은 공간 인식과 환경 이해를 담당하는 가장 중요한 기반 기술 중 하나로 계속 발전할 것이다.
06.2 Monocular SLAM
단안 카메라 기반 동시 위치추정 및 지도작성(Monocular Simultaneous Localization and Mapping), 일반적으로 Monocular SLAM이라고 불리는 기술은 비주얼 SLAM 분야에서 가장 중요하고 역사적으로도 큰 영향을 미친 기술 중 하나이다. Stereo Camera, RGB-D Camera 또는 LiDAR 기반 SLAM과 달리 Monocular SLAM은 단 하나의 카메라만을 이용하여 로봇의 움직임을 추정하고 주변 환경의 지도를 생성한다. 단 하나의 카메라만으로 위치추정과 지도생성이 가능하다는 점은 매우 놀라운 일이지만 동시에 매우 어려운 문제이기도 하다. 왜냐하면 단안 카메라는 깊이(Depth)를 직접 측정할 수 없기 때문이다. 따라서 깊이 정보는 카메라의 움직임과 연속적인 영상으로부터 간접적으로 추정되어야 한다. 이러한 한계에도 불구하고 Monocular SLAM은 로봇, 증강현실(AR), 가상현실(VR), 드론, 모바일 기기, 웨어러블 컴퓨팅, 서비스 로봇, Embodied AI 시스템의 핵심 기술로 자리 잡았다.
Monocular SLAM이 널리 사용되는 이유는 단안 카메라의 단순성, 저렴한 비용, 그리고 보편성 때문이다. 스마트폰, 태블릿, 노트북, CCTV, 로봇, 자율주행 플랫폼 대부분은 최소한 하나 이상의 카메라를 탑재하고 있다. 카메라는 가볍고, 전력 소모가 적으며, 가격이 저렴하고 풍부한 시각 정보를 제공한다. 따라서 단안 카메라는 자율 시스템을 위한 가장 실용적인 센서 중 하나이다. 문제는 이러한 2차원 영상 정보를 3차원 공간 정보로 변환하는 것이다.
Monocular SLAM의 기본 목표는 다른 모든 SLAM 시스템과 동일하다. 로봇은 자신의 위치와 자세를 추정하면서 동시에 미지의 환경 지도를 생성해야 한다. 그러나 단 하나의 카메라만 사용하기 때문에 깊이를 직접 측정할 수 없다. 따라서 동일한 환경 특징점을 여러 시점에서 관찰하고 그 기하학적 관계를 분석하여 3차원 구조를 복원해야 한다.
Monocular SLAM의 핵심에는 원근 기하학(Perspective Geometry)이 존재한다. 카메라는 3차원 세계를 2차원 이미지 평면으로 투영한다. 이 과정에서 깊이 정보는 사라진다. 단일 이미지 한 장만으로는 물체까지의 거리를 정확히 알 수 없다. 서로 다른 실제 환경이 동일한 이미지로 나타날 수 있기 때문이다. 따라서 깊이 정보를 얻기 위해서는 카메라 이동에 따른 영상 변화를 분석해야 한다.
Monocular SLAM에서 깊이를 추정하는 가장 중요한 정보는 시차(Parallax)이다. 카메라가 이동하면 가까운 물체는 이미지 상에서 크게 움직이고 먼 물체는 상대적으로 적게 움직인다. 이러한 상대적인 이동량은 물체까지의 거리 정보를 포함하고 있다. 시스템은 여러 프레임에서 관찰된 특징점의 이동을 분석하여 카메라의 움직임과 환경 구조를 복원한다.
특징 추출(Feature Extraction)은 Monocular SLAM의 초기 단계에서 수행된다. 영상은 수백만 개의 픽셀로 구성되어 있지만 모든 픽셀이 위치추정에 유용한 것은 아니다. 따라서 코너(Corner), 에지(Edge), 텍스처(Texture) 영역과 같이 반복적으로 추적 가능한 특징점을 선택한다.
초기의 Harris Corner Detector부터 시작하여 SIFT, SURF, FAST, ORB, BRISK, AKAZE 등의 다양한 특징 추출 알고리즘이 개발되었다. 현재 실시간 로봇 시스템에서는 계산 효율성이 뛰어난 ORB 특징이 가장 널리 사용된다.
특징점이 추출되면 특징 매칭(Feature Matching)을 수행한다. 연속된 두 영상에서 동일한 환경 특징점을 찾는 과정이다. 성공적인 특징 매칭은 카메라의 움직임을 추정하고 환경 구조를 복원하는 기초가 된다.
특징 매칭은 조명 변화, 시점 변화, 크기 변화, 모션 블러, 가림 현상, 동적 객체 등에 의해 어렵게 된다. 따라서 특징 기술자(Descriptor), 기하학적 제약 조건, 이상치 제거(RANSAC) 등을 사용하여 신뢰할 수 있는 대응점을 찾는다.
Visual Odometry는 Monocular SLAM의 움직임 추정 단계이다. 특징점이 프레임 간에 어떻게 이동하는지를 분석하여 카메라의 이동(Translation)과 회전(Rotation)을 계산한다. Visual Odometry는 지도 생성의 기반이 되는 단기 위치추정 결과를 제공한다.
Visual Odometry는 Wheel Odometry와 유사한 역할을 수행하지만 바퀴의 미끄러짐에 영향을 받지 않는다. 따라서 드론, 사족보행 로봇, 험지 주행 로봇과 같이 바퀴 기반 오도메트리를 사용할 수 없는 환경에서 특히 유용하다.
Monocular SLAM의 핵심 수학적 개념 중 하나는 에피폴라 기하학(Epipolar Geometry)이다. 동일한 3차원 점을 두 개의 카메라 위치에서 관찰할 때, 두 영상 사이에는 특정한 기하학적 제약 조건이 존재한다. 이러한 관계는 Fundamental Matrix와 Essential Matrix로 표현된다.
Essential Matrix는 특히 중요하다. 이는 보정된 카메라 사이의 상대적인 회전과 이동 정보를 포함하고 있다. 충분한 특징점 대응 관계가 확보되면 Essential Matrix를 계산하고 이를 분해하여 카메라의 움직임을 추정할 수 있다.
삼각측량(Triangulation)은 환경의 3차원 구조를 복원하는 과정이다. 동일한 특징점이 여러 위치에서 관찰되면 각 카메라 위치에서 광선을 생성하고 그 교차점을 계산하여 특징점의 3차원 위치를 추정한다.
초기 단계에서는 제한된 수의 특징점만 복원할 수 있다. 이러한 특징점들의 집합은 희소 지도(Sparse Map)를 형성한다. Sparse Map은 전체 환경을 표현하지는 않지만 위치추정에 필요한 랜드마크를 제공한다.
Monocular SLAM만의 가장 큰 문제는 스케일 모호성(Scale Ambiguity)이다. 단안 카메라는 절대 깊이를 측정할 수 없기 때문에 환경의 절대 크기를 알 수 없다. 예를 들어 실제로 1m 이동했는지 10m 이동했는지를 영상 정보만으로는 구분할 수 없다.
따라서 Monocular SLAM은 상대적인 구조는 복원할 수 있지만 절대적인 거리 정보를 제공하지 못한다. 동일한 환경이 10배 크기로 확대되거나 축소되어도 수학적으로 동일한 해를 가질 수 있다.
이 문제를 해결하기 위해 다양한 방법이 사용된다. Visual-Inertial SLAM은 IMU를 추가하여 가속도 정보를 이용해 스케일을 복원한다. 또한 휠 엔코더, GNSS, 알려진 크기의 물체, 바닥면 제약 조건 등을 이용할 수도 있다.
초기화(Initialization)는 Monocular SLAM의 매우 중요한 단계이다. 처음에는 깊이 정보가 존재하지 않기 때문에 일정량의 카메라 이동이 발생해야만 3차원 구조를 복원할 수 있다. 따라서 초기 프레임들 사이의 특징점을 이용하여 초기 지도와 카메라 위치를 생성한다.
잘못된 초기화는 이후 모든 위치추정과 지도 품질에 영향을 미친다. 따라서 현대 시스템은 매우 신중한 초기화 절차를 수행한다.
Bundle Adjustment는 Monocular SLAM의 핵심 최적화 기법이다. 카메라 위치와 랜드마크 위치를 동시에 최적화하여 재투영 오차(Reprojection Error)를 최소화한다. 계산 비용은 높지만 지도 품질과 위치추정 정확도를 크게 향상시킨다.
현대 시스템은 지역적(Local) Bundle Adjustment를 지속적으로 수행하며, 필요할 때 전역(Global) 최적화를 수행한다.
Keyframe 관리도 중요한 요소이다. 모든 프레임을 저장하면 계산량과 메모리 사용량이 과도하게 증가한다. 따라서 중요한 프레임만 선택하여 Keyframe으로 저장한다.
Keyframe은 지도 생성의 기준점 역할을 하며, 새로운 Keyframe은 추가되고 불필요한 Keyframe은 제거된다. 이를 통해 효율적인 지도 관리가 가능하다.
Loop Closure는 장기 운용에서 필수적인 기능이다. 이동 과정에서 누적된 위치 오차를 줄이기 위해 이전에 방문했던 장소를 인식하고 지도 전체를 재정렬한다.
Place Recognition은 Loop Closure의 핵심 기술이다. 현재 영상과 과거 영상을 비교하여 동일 장소를 찾아낸다. 이를 통해 Drift를 제거하고 전역 일관성을 유지할 수 있다.
Graph Optimization은 현대 Monocular SLAM의 핵심 구조이다. 카메라 위치는 노드(Node), 상대 위치 관계는 엣지(Edge)로 표현된다. 이후 그래프 최적화를 통해 전체 위치 관계를 일관성 있게 조정한다.
Monocular SLAM 발전에 큰 영향을 준 대표 시스템으로는 MonoSLAM, PTAM, ORB-SLAM, ORB-SLAM2, ORB-SLAM3 등이 있다. 특히 ORB-SLAM 계열은 현재까지도 가장 널리 사용되는 Visual SLAM 프레임워크 중 하나이다.
Direct Method는 특징점을 사용하지 않고 픽셀 밝기(Intensity)를 직접 활용한다. 대표적으로 LSD-SLAM과 DSO가 있다.
Direct Method는 영상 정보를 더욱 많이 활용할 수 있지만 조명 변화에 민감할 수 있다. 반면 Feature-Based Method는 안정성이 높고 관리가 쉽다.
Semi-Direct Method는 두 접근법을 결합하여 각각의 장점을 활용한다.
환경 특성은 Monocular SLAM 성능에 큰 영향을 준다. 텍스처가 풍부한 환경에서는 매우 좋은 성능을 보이지만 흰 벽, 반복 패턴, 유리창, 반사면과 같은 환경에서는 어려움을 겪는다.
조명 변화 역시 중요한 문제이다. 그림자, 야간 환경, 강한 햇빛, 역광은 특징 추적 성능을 저하시킨다. 따라서 최신 시스템은 조명 변화에 강인한 알고리즘을 적용하고 있다.
동적 환경도 큰 도전 과제이다. 사람, 차량, 기계와 같은 이동 객체는 정적 환경을 가정하는 SLAM에 오류를 유발할 수 있다. 최근에는 Semantic Segmentation과 Dynamic Object Filtering 기술이 이를 해결하는 데 활용되고 있다.
실시간 성능 확보도 중요하다. Monocular SLAM은 영상 획득, 특징 추출, 특징 매칭, 위치추정, 최적화, Loop Closure, 지도 관리 등을 지속적으로 수행해야 한다. Jetson Orin NX, Jetson AGX Orin, RTX 기반 Edge Computer, 향후 Jetson Thor와 같은 플랫폼은 이러한 계산을 실시간으로 수행할 수 있도록 지원한다.
Monocular SLAM은 다양한 분야에서 활용된다. 드론은 GNSS가 없는 환경에서 비행하기 위해 사용하며, 서비스 로봇은 실내 위치추정에 활용한다. 스마트폰은 AR 기능을 위해 사용하고, 웨어러블 기기는 Mixed Reality 기능을 위해 활용한다.
현대 로봇 시스템에서는 단독 사용보다는 센서 융합 형태가 증가하고 있다. Visual-Inertial SLAM은 카메라와 IMU를 결합하고, Visual-LiDAR SLAM은 카메라와 LiDAR를 결합한다. GNSS 융합 Visual SLAM 역시 실외 환경에서 널리 사용된다.
최근 인공지능 기술은 Monocular SLAM에도 큰 영향을 주고 있다. 딥러닝은 특징 추출, 깊이 추정, 장소 인식, 의미 정보 분석, 동적 객체 제거, 불확실성 추정 등에 활용되고 있다. 학습 기반 특징은 기존 수작업 특징보다 더 강인한 성능을 보이는 경우가 많다.
미래의 Monocular SLAM은 Embodied AI와 World Model 방향으로 발전할 것으로 예상된다. 단순한 기하학적 지도 생성에 머물지 않고, 객체 의미 정보, 시간 변화, 환경 맥락, 예측 능력을 포함하는 통합 공간 표현으로 발전하게 될 것이다.
Volume 06의 관점에서 Monocular SLAM은 카메라 기반 위치추정 및 지도생성 기술의 가장 기본적인 구현 형태이다. 이미지 기반 위치추정, 특징 추적, 삼각측량, 희소 지도 생성, 최적화, Loop Closure, Visual Localization의 핵심 원리를 제공한다. Monocular SLAM을 이해하는 것은 Stereo SLAM, RGB-D SLAM, Visual-Inertial SLAM, Multi-Sensor SLAM, Semantic Visual SLAM, 그리고 미래의 AI 기반 World Model 시스템을 이해하기 위한 필수적인 기초가 된다.
06.3 Stereo Visual SLAM
스테레오 비주얼 SLAM(Stereo Visual Simultaneous Localization and Mapping)은 두 대의 동기화된 카메라를 사용하여 동시에 위치추정과 지도생성을 수행하는 비주얼 SLAM 기술이다. 단일 카메라를 사용하는 Monocular SLAM과 달리, Stereo SLAM은 일정한 간격(Baseline)으로 배치된 두 대의 카메라 사이의 기하학적 관계를 이용하여 깊이(Depth)를 직접 계산할 수 있다. 이러한 능력은 위치추정 정확도, 스케일 추정, 초기화, 강건성, 운영 안정성 측면에서 매우 큰 장점을 제공한다. 따라서 Stereo Visual SLAM은 자율주행 차량, AMR, 드론, 물류 로봇, 산업용 검사 로봇, 농업용 로봇, Embodied AI 플랫폼에서 널리 활용되고 있다.
비주얼 SLAM 분야에서 Stereo SLAM은 Monocular SLAM과 RGB-D SLAM의 중간 위치에 해당한다. Monocular SLAM은 구조가 단순하고 저렴하지만 절대 스케일을 알 수 없는 문제가 있다. RGB-D SLAM은 직접 깊이를 제공하지만 센서의 측정 범위가 제한되고 실외 환경에서 성능이 저하될 수 있다. Stereo SLAM은 수동형(Passive) 카메라 센서를 사용하면서도 깊이 정보를 직접 계산할 수 있기 때문에 실제 로봇 시스템에서 매우 매력적인 선택이 된다.
Stereo SLAM의 기본 목표는 다른 SLAM 시스템과 동일하다. 로봇은 자신의 위치와 자세를 추정하면서 동시에 미지의 환경에 대한 지도를 생성해야 한다. 그러나 두 대의 카메라를 사용하기 때문에 문제의 성격이 크게 달라진다. 깊이 정보를 직접 계산할 수 있으므로 Monocular SLAM이 겪는 여러 어려움이 상당 부분 해결된다.
스테레오 비전의 원리는 인간의 양안 시각(Binocular Vision)에서 비롯된다. 사람은 두 눈이 서로 다른 위치에서 세상을 바라보기 때문에 깊이를 인식할 수 있다. 뇌는 좌우 눈의 차이를 분석하여 물체까지의 거리를 계산한다. Stereo Camera 역시 동일한 원리를 사용한다. 두 카메라는 일정한 거리(Baseline)를 유지한 채 설치되며, 동일한 장면을 약간 다른 시점에서 촬영한다. 시스템은 두 영상 사이의 차이를 분석하여 깊이를 계산한다.
이러한 기하학적 관계를 시차(Disparity)라고 한다. 물체가 가까울수록 좌우 영상에서 위치 차이가 크게 나타나고, 멀수록 차이가 작아진다. 이 시차가 Stereo SLAM에서 깊이 계산의 핵심 정보가 된다.
깊이 계산은 일반적으로 삼각측량(Triangulation)을 통해 수행된다. 카메라의 초점거리(Focal Length), 카메라 간 거리(Baseline), 그리고 시차(Disparity)를 알고 있으면 물체까지의 거리를 수학적으로 계산할 수 있다. 시차가 클수록 가까운 물체이고, 시차가 작을수록 먼 물체이다. 이 때문에 Stereo SLAM은 Monocular SLAM과 달리 절대 스케일 문제를 겪지 않는다.
Stereo SLAM의 가장 큰 장점 중 하나는 즉각적인 Metric Reconstruction이다. Monocular SLAM은 카메라가 충분히 이동해야 깊이 추정이 가능하지만 Stereo SLAM은 첫 프레임부터 깊이를 계산할 수 있다. 따라서 초기화가 훨씬 간단하고 초기 위치추정 정확도도 높다.
Stereo SLAM은 동기화된 영상 획득(Image Acquisition)부터 시작된다. 두 카메라는 동일한 시점에 영상을 획득해야 한다. 만약 시간 차이가 발생하면 움직이는 객체나 로봇의 이동으로 인해 깊이 계산 오차가 발생할 수 있다.
카메라 보정(Camera Calibration)은 Stereo SLAM의 핵심 전제조건이다. 보정 과정에서는 Intrinsic Parameter와 Extrinsic Parameter를 계산한다. Intrinsic Parameter는 초점거리, 주점(Principal Point), 왜곡 계수 등을 포함한다. Extrinsic Parameter는 두 카메라 사이의 위치와 자세 관계를 의미한다. 깊이 계산은 이 정보에 직접 의존하므로 정확한 보정이 필수적이다.
보정 후에는 Stereo Rectification을 수행한다. 이는 좌우 영상을 변환하여 동일한 특징점이 동일한 수평선 상에 나타나도록 만드는 과정이다. Rectification을 수행하면 특징점 검색 범위를 수평 방향으로 제한할 수 있어 계산량이 크게 감소한다.
Stereo SLAM에서도 특징 추출(Feature Extraction)은 매우 중요하다. 코너, 에지, 텍스처, 고대비 영역과 같은 시각적 특징을 추출한다. ORB, FAST, SIFT, SURF, BRISK, AKAZE 등이 널리 사용된다. 특히 ORB는 실시간 시스템에서 가장 많이 사용되는 특징점 중 하나이다.
Stereo SLAM에서는 두 종류의 특징 매칭이 수행된다. 첫 번째는 좌우 영상 간 매칭으로 깊이를 계산하기 위한 것이다. 두 번째는 시간적으로 연속된 프레임 간 매칭으로 카메라 움직임을 추정하기 위한 것이다. 이 두 가지 정보가 결합되어 위치추정과 지도생성이 수행된다.
Stereo Correspondence Estimation은 Stereo SLAM에서 가장 계산량이 많은 과정 중 하나이다. 동일한 물체가 좌우 영상의 어디에 나타나는지를 찾아야 한다. 반복 패턴, 저텍스처 환경, 그림자, 반사, 가림 현상 등은 매칭을 어렵게 만든다. 따라서 특징 기술자와 기하학적 제약 조건을 활용하여 정확한 대응점을 찾는다.
에피폴라 기하학(Epipolar Geometry)은 Stereo Matching의 핵심이다. 대응점은 특정한 에피폴라 선(Epipolar Line) 위에 존재해야 한다는 제약 조건을 제공한다. 이를 통해 검색 공간을 크게 줄이고 정확도를 향상시킬 수 있다.
대응점이 확보되면 삼각측량을 통해 3차원 점을 계산한다. 이러한 점들의 집합이 초기 환경 지도를 형성한다. 시간이 지남에 따라 더 많은 관측이 추가되면서 지도는 점점 정교해진다.
Visual Odometry는 Stereo SLAM에서도 중요한 역할을 한다. 3차원 랜드마크를 추적하면서 카메라의 이동량을 계산한다. Monocular Visual Odometry와 달리 Stereo Visual Odometry는 실제 단위(Meter) 기반의 움직임을 제공한다.
절대 스케일을 제공한다는 점은 매우 큰 장점이다. 자율주행 로봇은 정확한 거리 정보를 기반으로 장애물 회피, 경로계획, 조작(Manipulation)을 수행해야 하기 때문이다. Stereo SLAM은 이를 직접 제공할 수 있다.
Stereo SLAM의 지도 생성은 일반적으로 희소 지도(Sparse Map)에서 시작된다. 3차원 특징점들은 위치추정의 기준점 역할을 한다. Sparse Map은 메모리 사용량이 적고 계산량도 낮으면서 높은 위치추정 성능을 제공한다.
일부 시스템은 Semi-Dense 또는 Dense Map을 생성하기도 한다. Semi-Dense 방식은 의미 있는 영역만 복원하며, Dense 방식은 거의 모든 픽셀에 대해 깊이를 계산한다. 이러한 지도는 장애물 회피, 경로계획, Scene Understanding, Digital Twin 구축에 활용된다.
Bundle Adjustment는 Stereo SLAM에서도 가장 중요한 최적화 기법 중 하나이다. 카메라 위치와 랜드마크 위치를 동시에 최적화하여 재투영 오차를 최소화한다. Stereo 시스템은 깊이 정보가 이미 존재하기 때문에 Monocular SLAM보다 최적화가 더 빠르고 안정적으로 수행되는 경우가 많다.
Keyframe 관리도 매우 중요하다. 모든 프레임을 저장하는 대신 대표적인 프레임만 Keyframe으로 선택한다. 이를 통해 메모리 사용량과 계산량을 줄이면서도 지도 품질을 유지할 수 있다.
Loop Closure는 장거리 주행 시 누적되는 Drift를 제거하는 핵심 기술이다. 이전에 방문한 장소를 다시 인식하면 해당 위치를 제약 조건으로 추가하여 전체 지도를 재정렬한다.
Place Recognition은 Loop Closure의 핵심 구성 요소이다. 전통적으로는 Bag-of-Words 기법이 사용되었으며 최근에는 딥러닝 기반 Visual Descriptor가 많이 사용된다.
현대 Stereo SLAM은 대부분 Graph Optimization 기반 구조를 사용한다. 카메라 위치는 Node, 이동 관계는 Edge로 표현되며, Graph Optimization을 통해 전체 지도와 위치를 최적화한다.
Stereo SLAM 발전에 큰 영향을 준 대표 시스템으로는 Stereo Visual Odometry 계열, ORB-SLAM2, ORB-SLAM3 등이 있다. 특히 ORB-SLAM2는 Stereo Visual SLAM의 대표적인 오픈소스 프레임워크로 널리 사용되고 있다.
환경 특성은 Stereo SLAM 성능에 큰 영향을 미친다. 텍스처가 풍부한 환경에서는 높은 성능을 제공하지만 반복 패턴, 유리창, 반사면, 저조도 환경에서는 어려움을 겪을 수 있다.
조명 변화 역시 성능에 영향을 준다. 그림자, 역광, 과노출, 저조도 상황은 Stereo Matching 정확도를 저하시킬 수 있다. 이를 해결하기 위해 조명 변화에 강건한 특징 추출 및 영상 전처리 기법이 사용된다.
동적 환경도 중요한 문제이다. 차량, 사람, 중장비, 동물과 같은 움직이는 객체는 위치추정에 오류를 유발할 수 있다. 최근 Stereo SLAM은 Semantic Segmentation과 Dynamic Object Filtering을 결합하여 이러한 문제를 해결하고 있다.
계산 효율성은 실시간 시스템에서 매우 중요하다. Stereo Camera는 두 배의 영상 데이터를 처리해야 하며 추가적인 Stereo Matching 연산이 필요하다. 따라서 높은 계산 성능이 요구된다.
Jetson Orin NX, Jetson AGX Orin, RTX 기반 Edge Computer, 향후 Jetson Thor 플랫폼은 이러한 Stereo SLAM 연산을 실시간으로 수행할 수 있도록 지원한다.
Stereo SLAM은 다양한 산업 분야에서 활용되고 있다. 물류 AMR은 창고 내 위치추정에 사용하며, 자율주행 차량은 장애물 인식과 거리 추정에 활용한다. 농업용 로봇은 작물 분석과 지형 인식에 사용하고, 인프라 검사 로봇은 터널, 교량, 파이프라인의 3차원 모델링에 활용한다.
현대의 Stereo SLAM은 단독으로 사용되는 경우보다 다중 센서 융합 형태로 사용되는 경우가 많다. IMU, LiDAR, GNSS, Wheel Encoder, Radar와 함께 사용하여 강건성과 정확도를 향상시킨다.
Visual-Inertial Stereo SLAM은 급격한 움직임 상황에서도 안정적인 위치추정을 제공한다. Stereo-LiDAR Fusion은 시각 정보와 정밀 거리 정보를 결합한다. GNSS 지원 Stereo SLAM은 대규모 실외 환경에서 전역 위치 정보를 제공한다.
최근에는 인공지능 기술이 Stereo SLAM을 크게 변화시키고 있다. 딥러닝은 Stereo Matching, Depth Estimation, Feature Extraction, Semantic Segmentation, Dynamic Object Filtering, Place Recognition, Uncertainty Estimation 등에 활용되고 있다. 학습 기반 Stereo Matching은 기존 기하학 기반 방식보다 더 높은 성능을 보이는 경우가 많다.
미래의 Stereo SLAM은 단순한 지도 생성 기술을 넘어 World Model의 일부가 될 것으로 예상된다. 기하학 정보뿐 아니라 객체 의미 정보, 시간 변화, 환경 맥락, 예측 정보, Embodied Intelligence를 통합하는 방향으로 발전할 것이다.
Volume 06의 관점에서 Stereo Visual SLAM은 Monocular SLAM을 발전시킨 핵심 기술이다. 직접적인 깊이 추정, 절대 스케일 기반 위치추정, 강건한 초기화, 시차 기반 3차원 복원, 향상된 지도 생성 능력을 제공한다. Stereo SLAM을 이해하는 것은 RGB-D SLAM, Visual-Inertial SLAM, Multi-Sensor Visual SLAM, Semantic SLAM, Digital Twin Generation, 그리고 미래의 AI 기반 World Model 시스템을 이해하기 위한 중요한 기반이 된다.
06.4 RGB-D SLAM
RGB-D 동시 위치추정 및 지도작성(RGB-D Simultaneous Localization and Mapping), 일반적으로 RGB-D SLAM이라고 불리는 기술은 색상 정보(RGB)와 깊이 정보(Depth)를 동시에 활용하여 위치추정과 지도생성을 수행하는 비주얼 SLAM 기술이다. Monocular SLAM이 단일 카메라만을 사용하여 움직임을 통해 깊이를 추정해야 하고, Stereo SLAM이 두 카메라 사이의 시차(Disparity)를 이용하여 깊이를 계산하는 것과 달리, RGB-D SLAM은 전용 깊이 센서로부터 직접 깊이 정보를 획득한다. 이러한 특성은 3차원 환경 복원을 단순화하고, 초기화를 빠르게 하며, 위치추정 정확도를 향상시키고, 환경 이해 능력을 크게 향상시킨다. 깊이 센서 기술이 발전하고 가격이 낮아짐에 따라 RGB-D SLAM은 실내 자율이동로봇(AMR), 서비스 로봇, 물류 자동화 시스템, 증강현실 장치, 디지털 트윈, 검사 로봇, Embodied AI 플랫폼의 핵심 기술로 자리 잡고 있다.
비주얼 SLAM 계열에서 RGB-D SLAM은 독특한 위치를 차지한다. 일반 RGB 카메라는 색상, 질감(Texture), 객체 외형, 의미 정보(Semantic Information)를 제공하지만 깊이 정보를 제공하지 못한다. 반면 깊이 센서는 환경의 기하학적 구조를 제공하지만 시각적 외형 정보는 부족하다. RGB-D 센서는 이 두 가지 정보를 동시에 제공함으로써 환경의 외형과 구조를 모두 이해할 수 있게 한다.
RGB-D SLAM의 기본 목표는 모든 SLAM 시스템과 동일하다. 로봇은 자신의 위치와 자세를 추정하면서 동시에 환경 지도를 생성해야 한다. 그러나 깊이 정보가 직접 제공되기 때문에 환경 복원 문제는 훨씬 단순해진다. Monocular SLAM처럼 움직임과 삼각측량을 이용하여 깊이를 추정할 필요 없이 센서가 직접 3차원 정보를 제공한다.
RGB-D라는 용어는 두 개의 정보 채널을 의미한다. RGB는 일반 카메라가 획득하는 색상 정보를 의미하며, D는 각 픽셀에 대응하는 깊이 정보를 의미한다. 따라서 RGB-D 영상에서는 모든 픽셀이 색상과 거리 정보를 동시에 가진다. 이로 인해 즉시 3차원 환경을 복원할 수 있다.
RGB-D SLAM의 발전은 Microsoft Kinect 의 등장과 함께 가속화되었다. Kinect는 저렴한 가격으로 실시간 깊이 측정을 가능하게 하면서 RGB-D 기반 로봇 연구를 크게 활성화하였다. 이후 Intel RealSense, Azure Kinect 와 같은 다양한 깊이 센서가 등장하면서 RGB-D SLAM의 성능과 활용 범위가 크게 확대되었다.
깊이 정보를 획득하는 방식에는 여러 종류가 있다. Structured Light 방식은 적외선 패턴을 투사하고 그 왜곡을 분석하여 깊이를 계산한다. Stereo Depth 방식은 두 카메라의 시차를 이용하여 깊이를 계산한다. Time-of-Flight(ToF) 방식은 적외선 신호를 발사하고 반사되어 돌아오는 시간을 측정하여 거리를 계산한다. Active Stereo 방식은 적외선 패턴과 스테레오 비전을 결합하여 정확도를 향상시킨다. 각각 측정 거리, 정확도, 비용, 전력 소비, 환경 적응성 측면에서 장단점이 존재한다.
RGB-D SLAM은 RGB 영상과 Depth 영상을 동시에 획득하는 것으로 시작된다. RGB 영상은 시각적 정보를 제공하고, Depth 영상은 공간 구조를 제공한다. 두 데이터는 공간적으로 정렬되어 있어 각 RGB 픽셀에 대응되는 깊이값을 얻을 수 있다.
카메라 보정(Camera Calibration)은 RGB-D SLAM에서도 매우 중요하다. RGB 센서와 Depth 센서는 서로 다른 광학 특성을 가지므로 각각의 Intrinsic Parameter를 계산해야 한다. 또한 RGB 카메라와 Depth 카메라 사이의 상대 위치를 나타내는 Extrinsic Calibration도 필요하다. 정확한 보정은 색상 정보와 깊이 정보를 정확히 정합하는 데 필수적이다.
RGB-D SLAM의 가장 큰 장점은 즉각적인 3차원 인식 능력이다. 모든 프레임에서 깊이 정보가 제공되므로 첫 번째 프레임부터 3차원 환경을 생성할 수 있다. Monocular SLAM처럼 카메라 이동을 기다릴 필요가 없다.
특징 추출(Feature Extraction)은 RGB-D SLAM에서도 중요한 역할을 한다. RGB 영상으로부터 코너, 에지, 텍스처 영역 등을 추출한다. 대표적인 특징 추출 알고리즘으로는 ORB, FAST, SIFT, SURF, BRISK, AKAZE 등이 있다.
깊이 정보는 특징 처리 성능을 크게 향상시킨다. 일반적인 비주얼 SLAM은 특징점의 3차원 위치를 추정해야 하지만 RGB-D SLAM은 각 특징점의 깊이를 직접 알 수 있다. 따라서 특징점의 공간 위치를 보다 정확하게 계산할 수 있으며 위치추정 정확도도 향상된다.
Visual Odometry는 RGB-D SLAM에서도 핵심적인 역할을 한다. 특징점과 그에 대응되는 3차원 좌표를 추적하여 카메라의 이동을 계산한다. 깊이 정보가 존재하기 때문에 움직임 추정은 더욱 안정적이며 정확하다.
Monocular SLAM의 가장 큰 문제인 Scale Ambiguity는 RGB-D SLAM에서는 존재하지 않는다. 깊이 센서가 실제 거리 정보를 제공하기 때문에 처음부터 절대 스케일(Metric Scale)을 가진 지도를 생성할 수 있다. 이는 경로계획, 장애물 회피, 로봇 조작, 환경 상호작용에 매우 유리하다.
포인트 클라우드(Point Cloud) 생성은 RGB-D 센서의 대표적인 출력 중 하나이다. Depth 영상을 이용하여 각 픽셀을 3차원 점으로 변환할 수 있으며, RGB 정보를 함께 부여하면 컬러 포인트 클라우드를 생성할 수 있다. 이는 지도 생성, 디지털 트윈, 시설 검사, 환경 분석에 매우 유용하다.
Dense Mapping은 RGB-D SLAM의 대표적인 특징이다. 많은 Feature-Based SLAM이 Sparse Map만 생성하는 것과 달리 RGB-D SLAM은 Dense Map 또는 Semi-Dense Map을 생성할 수 있다. 이러한 지도는 환경의 세부 구조를 표현할 수 있어 장애물 회피, 경로계획, Scene Understanding에 활용된다.
표면 재구성(Surface Reconstruction)은 RGB-D SLAM의 또 다른 중요한 응용이다. 포인트 클라우드는 메시(Mesh), Occupancy Map, Voxel Map, Signed Distance Field 등의 형태로 변환될 수 있다. 이러한 구조는 Digital Twin, Simulation, Manipulation, Inspection 등에 활용된다.
ICP(Iterative Closest Point)는 RGB-D SLAM에서 널리 사용되는 정합 알고리즘이다. 연속적으로 생성된 포인트 클라우드를 정렬하여 카메라의 이동량을 계산한다. RGB-D 센서는 이미 3차원 정보를 제공하기 때문에 ICP는 매우 효과적으로 동작한다.
현대의 RGB-D SLAM은 기하학 기반 정합과 시각 특징 기반 정합을 함께 사용하는 경우가 많다. 하이브리드 접근법은 RGB 정보와 Depth 정보를 동시에 활용하여 강건성을 향상시킨다.
RGB-D SLAM 역시 확률적 추정 기법을 사용한다. 깊이 측정에는 노이즈가 존재하며 일부 픽셀은 깊이 정보를 제공하지 못할 수도 있다. 따라서 EKF, Particle Filter, Factor Graph, Graph Optimization 등의 기법이 사용된다.
Bundle Adjustment는 RGB-D SLAM에서도 중요한 최적화 기법이다. 깊이 정보가 직접 제공되기 때문에 Monocular SLAM보다 더 빠르고 안정적으로 최적화가 수렴하는 경우가 많다.
Keyframe 관리는 계산 효율성을 유지하는 데 필수적이다. RGB-D 데이터는 매우 크기 때문에 모든 프레임을 저장하는 것은 비효율적이다. 따라서 대표적인 프레임만 Keyframe으로 저장한다.
Loop Closure는 장기 운용에서 필수적인 기능이다. 이전에 방문했던 장소를 인식하여 누적된 Drift를 줄이고 지도의 전역 일관성을 유지한다. RGB 영상은 Place Recognition에 사용되며, Depth 정보는 기하학적 검증을 제공한다.
현대 RGB-D SLAM은 대부분 Graph-Based Optimization 구조를 사용한다. 카메라 위치는 Node로, 이동 관계와 Loop Closure는 Edge로 표현된다. 이후 Graph Optimization을 통해 전체 지도를 최적화한다.
RGB-D SLAM 발전에 큰 영향을 준 시스템으로는 KinectFusion, ElasticFusion, RGB-D ORB-SLAM 계열 등이 있다. KinectFusion은 GPU를 활용한 실시간 Dense Surface Reconstruction을 가능하게 하였고, ElasticFusion은 Loop Closure와 Dense Mapping을 동시에 수행하였다.
환경 특성은 RGB-D SLAM 성능에 큰 영향을 미친다. 실내 환경은 RGB-D 센서가 가장 잘 동작하는 환경이다. 사무실, 병원, 창고, 연구실, 주거 공간 등이 대표적인 활용 분야이다.
반면 실외 환경에서는 문제가 발생할 수 있다. 많은 RGB-D 센서는 적외선 기반이기 때문에 강한 햇빛 아래에서는 성능이 저하된다. 따라서 전통적으로 RGB-D SLAM은 실내 환경에 더 적합한 기술로 여겨져 왔다.
반사면과 투명체도 문제를 일으킨다. 거울, 유리, 금속 표면은 깊이 측정 오류를 발생시킬 수 있다. 따라서 이러한 영역을 처리하기 위한 필터링 기법이 필요하다.
동적 환경 역시 중요한 문제이다. 사람, 차량, 기계 설비, 문, 엘리베이터 등 움직이는 객체는 위치추정 오류를 유발할 수 있다. 최근 RGB-D SLAM은 Semantic Segmentation과 Dynamic Object Filtering을 결합하여 이를 해결하고 있다.
실시간 성능 확보를 위해서는 높은 계산 능력이 필요하다. Dense Depth Processing, Point Cloud Generation, Feature Tracking, Optimization, Map Management는 상당한 계산량을 요구한다. 따라서 GPU 가속이 널리 사용된다.
Jetson Orin NX, Jetson AGX Orin, RTX 기반 Edge Computer, 향후 Jetson Thor 플랫폼은 RGB-D SLAM과 AI 기반 Scene Understanding을 실시간으로 수행할 수 있는 대표적인 하드웨어 플랫폼이다.
RGB-D SLAM은 다양한 분야에서 활용되고 있다. 실내 AMR은 창고 및 물류 환경에서 위치추정에 사용한다. 서비스 로봇은 사람과 상호작용하며 장애물을 회피하는 데 사용한다. 검사 로봇은 시설의 3차원 모델을 생성한다. Digital Twin 시스템은 실제 환경을 디지털 공간으로 복제하는 데 활용한다. AR 장치는 공간 인식과 가상 객체 배치를 위해 RGB-D 기술을 사용한다.
현대 로봇 시스템에서는 RGB-D SLAM이 다른 센서와 융합되는 경우가 많다. Visual-Inertial RGB-D SLAM은 IMU와 결합되며, LiDAR-RGB-D Fusion은 장거리 거리 측정과 근거리 Dense Mapping을 동시에 제공한다. GNSS와의 융합은 실내외 연속 위치추정을 가능하게 한다.
최근 인공지능 기술은 RGB-D SLAM을 크게 발전시키고 있다. 딥러닝은 Feature Extraction, Depth Completion, Semantic Segmentation, Object Detection, Scene Understanding, Place Recognition, Uncertainty Estimation 등에 활용되고 있다. AI 기반 RGB-D 시스템은 단순한 지도 생성에서 Semantic World Understanding으로 발전하고 있다.
미래의 RGB-D SLAM은 Embodied AI와 World Model의 핵심 구성 요소가 될 것으로 예상된다. 단순히 기하학적 구조를 복원하는 것을 넘어 객체 관계, 환경 의미 정보, 인간 활동, 시간 변화, 환경 맥락까지 이해하는 방향으로 발전하고 있다. 이러한 World Model은 자율 추론, 계획, 예측, 의사결정을 지원하게 될 것이다.
Volume 06의 관점에서 RGB-D SLAM은 Monocular SLAM과 Stereo SLAM을 넘어서는 중요한 발전 단계이다. 직접적인 깊이 측정을 통해 3차원 복원을 단순화하고, 스케일 모호성을 제거하며, Dense Mapping을 가능하게 하고, 위치추정의 강건성을 향상시킨다. RGB-D SLAM을 이해하는 것은 Visual-Inertial SLAM, Semantic SLAM, Multi-Sensor Fusion SLAM, Digital Twin Generation, Embodied AI Mapping, 그리고 미래의 AI 기반 World Model 아키텍처를 이해하기 위한 중요한 기반이 된다.
06.5 Feature Extraction and Matching
특징 추출(Feature Extraction)과 특징 매칭(Feature Matching)은 컴퓨터 비전, Visual SLAM, Visual Odometry, Structure from Motion(SfM), 증강현실(AR), 자율주행, 로보틱스, 그리고 Embodied AI 시스템의 가장 핵심적인 기술 중 하나이다. Visual SLAM 파이프라인에서 특징 추출과 매칭은 원시 영상(Raw Image)과 위치추정, 지도생성, 움직임 추정, Loop Closure, Scene Understanding, 환경 재구성 사이를 연결하는 핵심 역할을 수행한다. 신뢰성 있는 특징점과 강건한 매칭 알고리즘이 없다면 Visual SLAM 시스템은 카메라의 움직임을 정확하게 계산할 수 없으며, 이전에 방문했던 장소를 인식할 수도 없고, 일관성 있는 지도를 생성할 수도 없다. 따라서 특징 추출과 특징 매칭에 대한 이해는 현대 카메라 기반 위치추정 시스템 개발의 필수 요소이다.
특징 추출의 주요 목적은 영상 내에서 반복적으로 관측될 수 있는 독특한 시각적 랜드마크를 찾는 것이다. 좋은 특징점은 여러 조건을 만족해야 한다. 첫째, 반복성(Repeatability)이 있어야 한다. 즉, 시점 변화나 환경 변화가 있어도 동일한 위치에서 다시 검출될 수 있어야 한다. 둘째, 구별성(Distinctiveness)이 있어야 한다. 다른 특징과 명확히 구분될 수 있어야 한다. 셋째, 노이즈, 조명 변화, 크기 변화, 회전, 왜곡 등에 강건해야 한다. 마지막으로 실시간 로봇 시스템에서 사용할 수 있을 정도로 계산 효율성이 높아야 한다.
이미지는 수백만 개의 픽셀로 구성되지만 실제로 위치추정에 유용한 정보는 그중 일부에 불과하다. 예를 들어 흰 벽, 천장, 도로와 같은 균일한 영역은 위치추정에 거의 도움이 되지 않는다. 반면 코너, 에지, 텍스처 영역, 객체 경계, 고대비 구조물은 매우 유용한 시각 정보를 제공한다. 특징 추출 알고리즘은 이러한 영역을 찾아내는 역할을 수행한다.
시각적 특징(Visual Feature)의 개념은 특정 이미지 위치가 다른 위치보다 더 안정적이라는 관찰에서 시작된다. 문 모서리, 창틀의 교차점, 도로 표식의 교차부, 특정 텍스처 패턴 등은 카메라 위치가 변하더라도 비교적 쉽게 다시 인식할 수 있다. 이러한 위치가 Visual SLAM에서 랜드마크 역할을 수행한다.
특징 추출 알고리즘은 일반적으로 Corner Detector, Blob Detector, Edge Detector, Region Detector, Learned Feature Detector 등으로 구분된다. 각 알고리즘은 서로 다른 시각적 구조를 검출하도록 설계되어 있다.
코너 검출(Corner Detection)은 가장 오래되고 널리 사용되는 특징 추출 방식 중 하나이다. 코너는 이미지 밝기가 여러 방향에서 동시에 크게 변하는 지점이다. 코너는 일반적으로 고유성이 높고 안정적이기 때문에 추적 및 매칭에 매우 적합하다.
Harris Corner Detector는 가장 대표적인 초기 코너 검출 알고리즘이다. 영상의 Gradient를 분석하여 수평 및 수직 방향 모두에서 큰 변화가 발생하는 지점을 검출한다. Harris Corner는 계산이 빠르고 반복성이 높지만 스케일 변화에는 강하지 않다.
Shi-Tomasi Corner Detector는 Harris Detector를 개선한 방법이다. 더 안정적이고 강한 코너를 선택할 수 있어 Optical Flow와 Feature Tracking 분야에서 널리 사용된다.
FAST(Features from Accelerated Segment Test)는 기존 방법들의 계산량 문제를 해결하기 위해 개발되었다. 특정 픽셀 주변 원형 영역의 밝기 변화를 이용하여 매우 빠르게 코너를 검출한다. FAST는 실시간 로봇 시스템에서 널리 사용된다.
SIFT(Scale-Invariant Feature Transform)는 특징 추출 분야의 혁신적인 발전을 이끌었다. SIFT는 Scale Space 개념을 도입하여 서로 다른 거리와 크기에서도 동일한 특징을 검출할 수 있도록 하였다.
SIFT 특징은 위치뿐만 아니라 Descriptor도 함께 생성한다. 이 Descriptor는 주변 영상 정보를 수치화한 것으로 매우 강력한 매칭 성능을 제공한다. 비록 계산량이 크지만 현재까지도 가장 강건한 특징 추출 방법 중 하나로 평가받는다.
SURF(Speeded-Up Robust Features)는 SIFT의 계산량을 줄이기 위해 개발되었다. Integral Image를 사용하여 계산 속도를 향상시키면서도 높은 강건성을 유지한다.
ORB(Oriented FAST and Rotated BRIEF)는 현대 Visual SLAM에서 가장 널리 사용되는 특징 추출 기법이다. ORB는 FAST 기반 특징 검출과 BRIEF Descriptor를 결합하고 회전 불변성(Rotation Invariance)을 추가하였다. ORB는 계산 효율성과 성능의 균형이 뛰어나 Jetson Orin NX와 같은 임베디드 플랫폼에서도 실시간으로 동작할 수 있다.
ORB는 ORB-SLAM, ORB-SLAM2, ORB-SLAM3의 핵심 기술로 사용되며 현재 Visual SLAM의 사실상 표준 특징 추출 기법으로 자리 잡고 있다.
BRISK와 AKAZE 역시 실시간 로봇 시스템에서 많이 사용되는 특징 추출 기법이다. 이들은 스케일 변화에 강하며 Binary Descriptor를 사용하여 빠른 매칭을 지원한다.
특징 추출은 Detector와 Descriptor의 두 부분으로 나누어 생각할 수 있다. Detector는 특징점 위치를 찾고, Descriptor는 해당 특징의 시각적 정보를 숫자로 표현한다.
Descriptor는 특징 매칭에서 매우 중요한 역할을 한다. Descriptor는 특징 주변의 시각적 패턴을 벡터 형태로 표현하며, 시점 변화, 회전, 조명 변화, 노이즈에 대해서도 최대한 안정적으로 유지되어야 한다.
Descriptor는 Floating-Point Descriptor와 Binary Descriptor로 나눌 수 있다. SIFT와 SURF는 Floating-Point Descriptor를 사용하며 매우 높은 정확도를 제공한다. 하지만 메모리 사용량과 계산량이 크다.
BRIEF, ORB, BRISK, FREAK 등은 Binary Descriptor를 사용한다. Binary Descriptor는 Hamming Distance를 이용하여 매우 빠르게 매칭할 수 있기 때문에 임베디드 로봇 시스템에 적합하다.
특징 매칭(Feature Matching)은 여러 이미지에서 동일한 물리적 랜드마크를 찾는 과정이다. 성공적인 매칭은 움직임 추정, 3차원 재구성, 장소 인식, 지도 일관성 유지에 필수적이다.
특징 매칭은 일반적으로 Descriptor 비교를 통해 수행된다. Descriptor가 유사할수록 동일한 특징일 가능성이 높다. 유사성을 계산하기 위해 다양한 거리 함수가 사용된다.
Floating-Point Descriptor에는 Euclidean Distance가 주로 사용된다. Binary Descriptor에는 Hamming Distance가 사용된다.
Nearest Neighbor Matching은 가장 단순한 매칭 방식이다. 각 특징에 대해 가장 유사한 Descriptor를 찾는다. 하지만 잘못된 매칭(False Match)이 많이 발생할 수 있다.
Ratio Test는 매칭의 신뢰도를 높이기 위해 사용된다. 가장 가까운 Descriptor와 두 번째로 가까운 Descriptor의 거리를 비교하여 충분히 차이가 날 경우에만 매칭을 허용한다. 이를 통해 모호한 매칭을 제거할 수 있다.
이상치 제거(Outlier Rejection)는 특징 매칭의 필수 과정이다. 반복 패턴, 노이즈, 가림 현상, 동적 객체, 조명 변화 등은 잘못된 매칭을 생성할 수 있다. 따라서 기하학적 검증을 통해 오류를 제거해야 한다.
RANSAC(Random Sample Consensus)은 가장 널리 사용되는 이상치 제거 알고리즘이다. 무작위 샘플을 반복적으로 선택하여 기하학적 모델을 계산하고, 해당 모델과 일치하는 특징만을 남긴다.
에피폴라 기하학(Epipolar Geometry)은 특징 매칭 정확도를 높이는 중요한 제약 조건이다. Stereo Vision이나 Multi-View 시스템에서는 대응점이 특정한 기하학적 관계를 만족해야 한다. 이를 통해 탐색 공간을 줄이고 정확도를 향상시킬 수 있다.
Visual SLAM에서 특징 매칭은 다양한 단계에서 사용된다. 연속 프레임 간 매칭은 Motion Estimation을 수행한다. Stereo Matching은 깊이 추정을 수행한다. Loop Closure Matching은 이전에 방문한 장소를 인식하는 데 사용된다.
Feature Tracking은 특징 매칭의 특수한 형태로 볼 수 있다. 매 프레임마다 특징을 새로 찾는 대신 특징을 지속적으로 추적한다. Lucas-Kanade Optical Flow Tracker가 대표적인 예이다.
Visual Odometry는 Feature Tracking에 크게 의존한다. 특징이 이동하는 양을 분석하여 카메라의 이동과 회전을 계산한다.
Structure from Motion(SfM) 역시 특징 매칭에 의존한다. 여러 시점에서 관측된 특징점을 이용하여 삼각측량을 수행하고 3차원 구조를 복원한다.
Loop Closure Detection 역시 특징 매칭의 중요한 응용 분야이다. 현재 영상과 과거 영상을 비교하여 동일 장소를 찾는다. 이를 통해 누적 오차(Drift)를 줄이고 지도의 전역 일관성을 유지할 수 있다.
특징 추출과 매칭 성능은 환경 특성에 크게 영향을 받는다. 텍스처가 풍부한 환경에서는 매우 좋은 성능을 제공한다. 그러나 흰 벽, 반복 패턴, 유리창, 반사면, 저조도 환경에서는 성능이 저하될 수 있다.
조명 변화는 특징 추출과 매칭의 대표적인 문제이다. 그림자, 역광, 과노출, 노출 변화는 특징의 외형을 변화시킬 수 있다. Descriptor는 이러한 변화에 강건하도록 설계된다.
모션 블러(Motion Blur)도 중요한 문제이다. 로봇이 빠르게 움직이거나 진동이 발생하면 특징점의 구별성이 감소한다. 이를 해결하기 위해 고속 카메라, 영상 안정화, Motion Compensation 기술이 사용된다.
동적 환경은 더욱 큰 문제를 야기한다. 사람, 차량, 기계 설비와 같은 움직이는 객체는 잘못된 특징 매칭을 유발할 수 있다. 따라서 최근 시스템은 Semantic Segmentation과 Dynamic Object Filtering을 함께 사용한다.
최근 딥러닝 기술은 특징 추출과 매칭 분야를 크게 변화시키고 있다. 전통적인 방법이 사람이 설계한 특징을 사용하는 반면, 딥러닝 기반 방법은 데이터로부터 특징을 학습한다.
SuperPoint는 대표적인 딥러닝 기반 특징 추출 모델이다. 하나의 신경망에서 특징점 검출과 Descriptor 생성을 동시에 수행한다. 전통적인 방법보다 높은 반복성과 강건성을 제공한다.
SuperGlue는 특징 매칭 분야에서 큰 발전을 이루었다. Graph Neural Network와 Attention Mechanism을 활용하여 특징 간 관계를 학습한다. 단순히 Descriptor 유사도만 사용하는 것이 아니라 주변 문맥(Context)까지 고려하여 매칭을 수행한다.
D2-Net, R2D2, DISK, LoFTR, LightGlue 등 다양한 최신 모델들이 등장하고 있으며, 어려운 환경에서는 전통적인 특징 추출 기법을 능가하는 성능을 보여주고 있다.
Vision Transformer와 Foundation Model의 발전은 특징 표현 방식을 더욱 발전시키고 있다. 미래에는 단순한 특징점 수준을 넘어 Localization, Mapping, Scene Understanding, Semantic Reasoning, Embodied Intelligence를 동시에 지원하는 통합 시각 표현이 등장할 것으로 예상된다.
계산 효율성은 여전히 중요한 요소이다. Jetson Orin NX, Jetson AGX Orin, RTX 기반 Edge Computer, 향후 Jetson Thor 플랫폼은 특징 추출과 매칭을 실시간으로 수행해야 한다. 따라서 정확도와 계산량 사이의 균형이 매우 중요하다.
특징 추출과 매칭은 이제 단순한 컴퓨터 비전 기술이 아니라 Visual SLAM, Visual Odometry, Semantic Mapping, Digital Twin Generation, Multi-Sensor Fusion, World Model 구축의 핵심 기반 기술이 되었다.
Volume 06의 관점에서 Feature Extraction and Matching은 카메라 기반 위치추정과 지도생성의 가장 근본적인 기술이다. 원시 영상을 안정적인 랜드마크로 변환하고, 관측 간 대응 관계를 생성하며, 움직임 추정, 3차원 복원, Loop Closure, 공간 지능 형성의 기초를 제공한다. 특징 검출기, Descriptor, 매칭 알고리즘, 기하학적 제약 조건, 이상치 제거 기법, 딥러닝 기반 특징 추출, 그리고 미래의 AI 기반 특징 표현을 이해하는 것은 차세대 Visual SLAM 시스템과 자율주행 로봇 플랫폼을 개발하기 위한 필수적인 기반 지식이다.
06.6 Visual Odometry
비주얼 오도메트리(Visual Odometry, VO)는 현대 로보틱스, 자율주행 차량, 드론, 자율이동로봇(AMR), 증강현실(AR), 혼합현실(MR), 그리고 Embodied AI 시스템의 핵심 기술 중 하나이다. Visual Odometry는 시간에 따라 연속적으로 획득된 영상 데이터를 분석하여 카메라 또는 로봇의 움직임을 추정하는 기술을 의미한다. GPS와 같은 외부 인프라에 의존하는 위치추정 방식과 달리, Visual Odometry는 로봇에 장착된 카메라만을 이용하여 자신의 이동량을 계산할 수 있다. 따라서 GNSS 신호가 없는 실내 환경, 지하 공간, 터널, 광산, 도시 협곡(Urban Canyon), 산업 시설 등에서도 활용이 가능하다.
오도메트리(Odometry)라는 용어는 원래 바퀴 기반 이동 로봇에서 사용되었다. Wheel Odometry는 바퀴 회전수를 측정하여 이동 거리를 계산한다. 그러나 휠 슬립(Wheel Slip), 노면 상태 변화, 기계적 마모 등의 문제로 인해 오차가 누적된다. Visual Odometry는 이러한 한계를 극복하기 위해 개발되었다. 바퀴 회전이 아니라 영상 속 특징점들의 움직임을 분석하여 카메라의 이동을 계산한다.
Visual Odometry는 Visual SLAM의 핵심 구성 요소로 볼 수 있다. Visual Odometry는 카메라의 연속적인 움직임을 추정하는 Front-End 역할을 수행하고, Visual SLAM은 여기에 지도 생성과 Loop Closure를 추가하여 장기적인 위치추정을 가능하게 한다. 즉, Visual Odometry는 지역적(Local) 움직임 추정 기술이고, Visual SLAM은 전역적(Global) 위치추정 기술이라고 할 수 있다.
Visual Odometry의 기본 원리는 매우 직관적이다. 로봇이 이동하면 환경 내 객체들의 위치가 영상에서 변화한다. 가까운 물체는 크게 움직이고 먼 물체는 작게 움직인다. 이러한 시각적 변화를 분석하면 카메라가 얼마나 이동했는지 계산할 수 있다. 즉, 영상 내 특징점의 이동량과 카메라의 실제 움직임 사이의 관계를 이용하여 위치를 추정하는 것이다.
Visual Odometry는 먼저 이미지 획득(Image Acquisition) 단계로 시작된다. 카메라는 로봇이 이동하는 동안 지속적으로 영상을 촬영한다. 이러한 영상 시퀀스는 Visual Odometry의 입력 데이터가 된다. 사용되는 카메라는 단안 카메라(Monocular Camera), 스테레오 카메라(Stereo Camera), RGB-D 센서, 어안 카메라(Fisheye Camera), 전방위 카메라(Omnidirectional Camera), 이벤트 카메라(Event Camera) 등이 될 수 있다.
Visual Odometry의 초기 단계에서는 특징 추출(Feature Extraction)이 수행된다. 영상 내에서 반복적으로 인식 가능한 코너, 에지, 텍스처 영역, 고대비 구조물 등을 검출한다. 이러한 특징점은 연속 프레임에서 추적될 랜드마크 역할을 수행한다.
대표적인 특징 추출 알고리즘으로는 Harris Corner, Shi-Tomasi, FAST, SIFT, SURF, ORB, BRISK, AKAZE 등이 있다. 각각 계산량, 강건성, 반복성 측면에서 차이가 존재한다. 현재 실시간 로봇 시스템에서는 ORB가 가장 널리 사용된다.
특징점이 검출되면 특징 매칭(Feature Matching)을 수행한다. 연속된 두 영상에서 동일한 특징점을 찾는 과정이다. 특징점의 이동량은 카메라 움직임을 계산하는 데 사용된다.
특징 매칭은 Descriptor를 기반으로 수행된다. Descriptor는 특징점 주변의 시각 정보를 숫자 벡터로 표현한 것이다. Descriptor 간 유사도를 비교하여 대응점을 찾고, 이후 기하학적 검증을 통해 잘못된 매칭을 제거한다.
특징 추적(Feature Tracking)은 특징 매칭의 또 다른 형태이다. 특징을 매 프레임마다 새로 찾는 대신 연속적으로 추적한다. 대표적으로 Lucas-Kanade Optical Flow Tracker가 사용된다. Feature Tracking은 반복적인 특징 추출과 매칭보다 계산량이 적어 실시간 시스템에 유리하다.
Visual Odometry의 핵심은 Ego-Motion Estimation이다. 카메라에 의해 관측된 특징점들의 이동을 분석하여 카메라 자체의 이동량을 계산한다. 이는 Translation(이동)과 Rotation(회전)을 포함한다.
Visual Odometry는 기하학적 모델에 크게 의존한다. 대응되는 특징점들은 Projective Geometry에 의해 제약을 받는다. Essential Matrix와 Fundamental Matrix는 두 카메라 시점 사이의 관계를 표현하는 핵심 수학적 도구이다.
Essential Matrix는 보정된 카메라 시스템에서 특히 중요하다. 충분한 수의 대응점이 존재하면 Essential Matrix를 계산하고 이를 분해하여 카메라의 회전과 이동을 추정할 수 있다.
삼각측량(Triangulation)은 Visual Odometry에서 3차원 구조를 복원하는 핵심 과정이다. 동일한 특징점이 여러 시점에서 관측되면 광선의 교차점을 계산하여 해당 특징점의 3차원 위치를 추정할 수 있다.
Monocular Visual Odometry는 단일 카메라를 사용한다. 비용이 저렴하고 설치가 간단하지만 깊이를 직접 측정할 수 없기 때문에 Scale Ambiguity 문제가 발생한다.
Scale Ambiguity란 실제 이동 거리를 알 수 없는 문제이다. 예를 들어 시스템은 "10 단위" 이동했다고 계산할 수 있지만 그것이 10cm인지 10m인지는 알 수 없다. 따라서 IMU, Wheel Encoder, GNSS 등의 추가 센서가 필요하다.
Stereo Visual Odometry는 두 대의 카메라를 사용한다. Stereo Camera는 시차(Disparity)를 이용하여 깊이를 직접 계산할 수 있기 때문에 절대 스케일을 제공할 수 있다. 따라서 Monocular 방식보다 정확도가 높고 실용성이 우수하다.
RGB-D Visual Odometry는 깊이 센서를 직접 사용한다. RGB 영상과 Depth 정보를 동시에 이용하기 때문에 깊이 계산이 필요 없으며 더욱 안정적인 움직임 추정이 가능하다.
Visual Odometry는 크게 Feature-Based 방식과 Direct 방식으로 나눌 수 있다.
Feature-Based Visual Odometry는 특징점을 추출하고 추적하여 움직임을 계산한다. ORB-SLAM 계열이 대표적인 예이다. 계산량이 적고 해석이 쉽다는 장점이 있다.
Direct Visual Odometry는 특징점을 사용하지 않고 픽셀 밝기(Intensity)를 직접 활용한다. 영상 간 Photometric Error를 최소화하는 방식으로 움직임을 추정한다. 대표적인 예로 DSO(Direct Sparse Odometry)가 있다.
Direct 방식은 영상 정보를 더 많이 활용할 수 있으며 특징이 적은 환경에서도 동작할 수 있다. 그러나 조명 변화와 노출 변화에 민감하다.
Semi-Direct 방식은 Feature-Based와 Direct 방식을 결합한 형태이다. 두 접근법의 장점을 활용하여 성능을 향상시킨다.
Visual Odometry의 가장 큰 한계는 Drift Accumulation이다. 모든 움직임 추정에는 작은 오차가 존재하며, 이러한 오차는 시간이 지남에 따라 누적된다.
예를 들어 매 프레임마다 1cm의 오차가 발생한다면 수천 프레임 이후에는 수 미터 이상의 오차가 발생할 수 있다. 방향 오차 역시 누적되어 전체 궤적이 크게 왜곡될 수 있다.
Visual SLAM은 이러한 문제를 Loop Closure를 통해 해결한다. 로봇이 이전에 방문했던 장소를 다시 인식하면 누적된 Drift를 보정할 수 있다. 따라서 Visual Odometry는 단기 위치추정 기술이고, Visual SLAM은 장기 위치추정 기술이라고 볼 수 있다.
Bundle Adjustment는 Visual Odometry 정확도를 향상시키는 대표적인 최적화 기법이다. 카메라 위치와 랜드마크 위치를 동시에 최적화하여 Reprojection Error를 최소화한다.
확률 기반 추정 기법도 널리 사용된다. EKF, Particle Filter, Factor Graph, Graph Optimization은 불확실성을 모델링하고 센서 데이터를 통합하는 데 사용된다.
환경 특성은 Visual Odometry 성능에 큰 영향을 미친다. 텍스처가 풍부한 환경에서는 매우 좋은 성능을 보인다. 반면 흰 벽, 반복 패턴, 유리창, 반사면과 같은 환경에서는 특징 추적이 어려워질 수 있다.
조명 변화도 중요한 문제이다. 그림자, 역광, 과노출, 야간 환경은 특징점의 외형을 변화시켜 추적 성능을 저하시킨다.
동적 환경 역시 큰 문제이다. 차량, 사람, 기계 설비와 같은 움직이는 객체는 잘못된 움직임 추정을 유발할 수 있다. 최근에는 Semantic Segmentation과 Dynamic Object Filtering을 활용하여 이를 해결하고 있다.
모션 블러(Motion Blur)는 Visual Odometry의 또 다른 문제이다. 고속 주행이나 카메라 진동은 영상의 선명도를 떨어뜨려 특징 검출과 추적을 어렵게 만든다. 이를 해결하기 위해 고속 카메라, IMU 융합, 영상 안정화 기술이 사용된다.
실시간 성능 확보는 매우 중요하다. Visual Odometry는 지속적으로 영상 처리, 특징 추출, 특징 추적, 기하학 계산, 최적화를 수행해야 한다.
Jetson Orin NX, Jetson AGX Orin, RTX 기반 Edge Computer, 향후 Jetson Thor 플랫폼은 이러한 연산을 실시간으로 수행할 수 있는 대표적인 하드웨어 플랫폼이다.
Visual-Inertial Odometry(VIO)는 최근 가장 중요한 발전 중 하나이다. 카메라와 IMU를 결합하여 움직임을 추정한다. IMU는 고속으로 가속도와 각속도를 제공하며, 카메라는 드리프트가 적은 시각 정보를 제공한다. 두 센서의 융합은 강건성과 정확도를 크게 향상시킨다.
대표적인 시스템으로는 MonoVO, Stereo VO, PTAM, ORB-SLAM, DSO, VINS-Mono, VINS-Fusion 등이 있다. 특히 VINS 계열은 Visual-Inertial Navigation 분야에서 매우 널리 사용된다.
Visual Odometry는 다양한 응용 분야에서 활용된다. 드론은 GNSS가 없는 환경에서 비행하기 위해 사용한다. 물류 AMR은 실내 창고에서 위치를 추정한다. 자율주행 차량은 LiDAR, Radar, GNSS와 함께 Visual Odometry를 사용한다. 서비스 로봇은 실내 환경에서 자율주행을 위해 활용한다. AR/VR 시스템은 공간 추적을 위해 Visual Odometry를 사용한다.
최근 인공지능 기술은 Visual Odometry를 크게 변화시키고 있다. 딥러닝은 특징 추출, 깊이 추정, 대응점 매칭, 움직임 예측, 불확실성 추정, Scene Understanding 등에 활용되고 있다. 학습 기반 Visual Odometry는 기존의 기하학 기반 방법을 보완하거나 대체하기 시작하고 있다.
미래의 Visual Odometry는 단순한 움직임 추정 기술을 넘어 World Model의 일부로 발전할 것으로 예상된다. 객체 의미 정보, 공간 관계, 시간 변화, 예측 능력, Embodied Intelligence와 결합하여 더욱 높은 수준의 공간 지능을 제공하게 될 것이다.
Volume 06의 관점에서 Visual Odometry는 카메라 기반 위치추정의 핵심 메커니즘이다. 특징 추적, 기하학적 추정, 삼각측량, 스케일 복원, Drift 누적, 최적화, 센서 융합, AI 기반 움직임 추정 기술을 이해하는 것은 Visual SLAM, Visual-Inertial Navigation, Semantic Mapping, Digital Twin Generation, 그리고 차세대 Embodied AI 로봇 시스템을 개발하기 위한 필수적인 기초 지식이 된다.
06.7 Visual SLAM Failure Cases
Visual SLAM(Visual Simultaneous Localization and Mapping)은 현대 로보틱스, 자율주행 차량, 드론, 서비스 로봇, 증강현실(AR), 혼합현실(MR), 디지털 트윈, 그리고 Embodied AI 시스템에서 가장 중요한 기술 중 하나로 자리 잡고 있다. Visual SLAM은 카메라를 이용하여 자신의 위치를 추정하면서 동시에 주변 환경의 지도를 생성하는 기술이다. 지난 20여 년 동안 특징 추출, 움직임 추정, 최적화, 센서 융합, 의미 기반 인식(Semantic Perception), AI 기반 위치추정 기술이 크게 발전하였다. 그러나 이러한 발전에도 불구하고 Visual SLAM은 여전히 다양한 실패 사례(Failure Cases)에 취약하다. 이러한 실패 사례는 위치추정 정확도, 지도 품질, 시스템 안정성, 운영 신뢰성을 심각하게 저하시킬 수 있다. 따라서 실제 환경에서 안정적으로 동작하는 자율 시스템을 개발하기 위해서는 성공 사례뿐 아니라 실패 원인에 대한 깊은 이해가 필수적이다.
Visual SLAM은 본질적으로 영상 정보에 의존한다. GNSS처럼 위성 신호를 사용하는 것도 아니고, LiDAR처럼 직접 거리 정보를 측정하는 것도 아니다. 따라서 이미지 품질이 저하되거나, 시각 정보가 부족하거나, 환경이 알고리즘의 가정을 위반하는 경우 성능이 크게 저하될 수 있다. 실패 사례는 환경적 요인, 센서 한계, 알고리즘 가정, 계산 자원 부족, 운영 조건 등 다양한 원인으로 발생한다.
가장 흔한 실패 사례 중 하나는 특징점이 부족한 환경이다. 대부분의 Visual SLAM 시스템은 코너, 에지, 텍스처, 고대비 구조물과 같은 시각적 랜드마크에 의존한다. 그러나 흰 벽으로 둘러싸인 복도, 넓은 천장, 단조로운 바닥, 눈으로 덮인 지형, 사막, 매끈한 산업 설비 표면과 같은 환경에서는 특징점의 수가 급격히 감소한다.
특징점이 충분하지 않으면 특징 추출과 특징 매칭이 불안정해진다. 결과적으로 움직임 추정 정확도가 저하되고 Drift가 증가하며 심한 경우 Tracking이 완전히 끊어질 수 있다.
특히 Textureless Environment(무텍스처 환경)는 Feature-Based Visual SLAM에 매우 치명적이다. ORB-SLAM, PTAM, Visual Odometry 계열 시스템은 특징점에 크게 의존하기 때문에 특징이 부족한 환경에서는 위치추정이 매우 불안정해질 수 있다.
반복적인 구조(Repetitive Environment)도 심각한 문제를 일으킨다. 물류창고의 동일한 선반 구조, 사무실의 유사한 복도, 공장의 반복적인 배관 구조, 동일한 저장 랙 구조 등은 Visual SLAM을 혼란스럽게 만든다.
이러한 환경에서는 서로 다른 장소가 매우 유사하게 보일 수 있다. 이를 Perceptual Aliasing(지각적 혼동)이라고 한다. 시스템은 실제로는 다른 장소임에도 동일 장소라고 오인할 수 있다.
Perceptual Aliasing은 특히 Loop Closure에서 위험하다. 시스템이 잘못된 장소를 동일한 장소로 판단하면 False Loop Closure가 발생한다. 이러한 잘못된 제약 조건은 지도 전체를 왜곡시키고 심각한 위치추정 오류를 발생시킬 수 있다.
조명 변화(Illumination Variation)는 Visual SLAM 실패의 가장 대표적인 원인 중 하나이다. 카메라는 반사된 빛을 관측하기 때문에 이미지의 외형은 조명 조건에 크게 의존한다.
실외 환경에서는 아침, 낮, 저녁, 야간에 따라 동일한 장소도 전혀 다른 모습으로 보일 수 있다. 태양 위치 변화에 따른 그림자, 구름, 건물 그림자, 차량 그림자 등도 이미지 외형을 크게 변화시킨다.
Visual SLAM이 외형 기반 특징 매칭에 지나치게 의존할 경우 이러한 변화는 동일 장소 인식을 어렵게 만든다.
저조도 환경(Low-Light Environment) 역시 중요한 실패 원인이다. 터널, 지하 공간, 광산, 창고, 야간 환경에서는 영상 노이즈가 증가하고 특징점의 품질이 저하된다.
반대로 과도한 조명도 문제이다. 강한 태양광, 용접 불꽃, 자동차 헤드라이트, 반사광은 카메라 센서를 포화(Saturation)시킬 수 있다. 포화된 영역은 유용한 특징 정보를 제공하지 못한다.
모션 블러(Motion Blur)는 또 다른 대표적인 실패 원인이다. Visual SLAM은 연속된 프레임에서 특징점을 정확하게 검출하고 추적할 수 있어야 한다.
그러나 로봇이 빠르게 이동하거나 진동이 발생하면 영상이 흐려진다. 특징점의 선명도가 감소하고 특징 매칭 정확도가 저하된다.
고속 자율주행 차량, 드론, 험지 주행 로봇, 산업용 이동 플랫폼은 특히 Motion Blur의 영향을 크게 받을 수 있다.
동적 환경(Dynamic Environment)은 Visual SLAM이 직면하는 가장 어려운 문제 중 하나이다. 대부분의 Visual SLAM 알고리즘은 환경이 정적이라고 가정한다.
그러나 실제 환경에는 사람, 차량, 로봇, 기계 설비, 동물, 문, 엘리베이터 등이 지속적으로 움직인다.
동적 객체가 시야의 상당 부분을 차지하는 경우 시스템은 객체의 움직임을 카메라 움직임으로 오인할 수 있다.
예를 들어 붐비는 기차역에서 이동하는 로봇은 수백 명의 사람을 관측하게 된다. 이러한 움직이는 객체를 제거하지 않으면 위치추정 오차가 크게 증가할 수 있다.
도심 자율주행 환경 역시 마찬가지이다. 차량, 버스, 자전거, 오토바이, 보행자 등이 지속적으로 움직인다. 따라서 정적 구조물과 동적 객체를 실시간으로 구분하는 능력이 필수적이다.
반사면과 투명체(Reflective and Transparent Surfaces)는 Visual SLAM의 또 다른 난제이다.
거울, 유리벽, 창문, 광택 금속, 물 표면 등은 실제 환경과 다른 가상 특징(Virtual Feature)을 생성할 수 있다.
Visual SLAM은 일반적으로 관측된 특징이 실제 공간상의 물체라고 가정한다. 그러나 반사면과 투명체는 이러한 가정을 위반한다.
결과적으로 잘못된 특징 매칭, 깊이 추정 오류, 움직임 추정 오류가 발생할 수 있다.
기상 조건(Weather Conditions) 역시 중요한 실패 원인이다. 비, 안개, 눈, 먼지, 연기, 공중 입자는 영상 품질을 저하시킨다.
빗방울은 렌즈를 가리고 왜곡을 발생시킨다. 안개와 연기는 가시거리를 감소시킨다. 눈은 특징점을 가릴 뿐 아니라 움직이는 입자를 생성한다.
농업 로봇, 건설 현장 로봇, 광산 로봇, 재난 대응 로봇, 실외 검사 로봇은 이러한 문제에 자주 직면한다.
깊이 추정 실패(Depth Estimation Failure)도 중요한 문제이다.
Monocular Visual SLAM은 깊이를 간접적으로 추정한다. 충분한 카메라 이동이 없으면 정확한 깊이 계산이 어렵다.
특히 카메라 이동량이 작으면 삼각측량에 필요한 기하학 정보가 부족해진다.
Monocular 시스템은 Scale Ambiguity 문제도 가진다. 절대 스케일을 알 수 없기 때문에 거리 추정 오차가 발생할 수 있다.
Stereo Visual SLAM은 이러한 문제를 완화하지만 Stereo Matching 오류가 발생할 수 있다.
텍스처가 부족한 표면, 반복 패턴, 가림 현상, 보정 오차는 잘못된 깊이 계산을 유발한다.
RGB-D SLAM 역시 깊이 센서 노이즈, 측정 범위 제한, 태양광 간섭, 반사면 오류 등의 문제를 가진다.
카메라 보정 오류(Calibration Error)는 매우 중요하지만 종종 간과되는 실패 원인이다.
Intrinsic Calibration 오류는 영상 투영 모델 자체를 왜곡시킨다. Extrinsic Calibration 오류는 센서 간 위치 관계를 잘못 표현하게 만든다.
온도 변화, 진동, 충격, 장기간 사용에 따른 기계적 변형은 보정값을 변화시킬 수 있다.
센서 동기화 실패(Synchronization Failure)도 심각한 문제를 일으킨다.
현대 로봇은 카메라, IMU, LiDAR, Wheel Encoder, GNSS, Radar 등을 함께 사용한다.
이 센서들이 정확히 동일한 시간 기준으로 동작하지 않으면 센서 간 불일치가 발생한다.
예를 들어 카메라와 IMU의 타임스탬프가 어긋나면 Visual-Inertial SLAM의 정확도가 크게 감소할 수 있다.
Loop Closure Failure도 중요한 실패 사례이다.
False Positive Loop Closure는 서로 다른 장소를 동일 장소로 잘못 인식하는 경우이다.
False Negative Loop Closure는 동일 장소를 재방문했음에도 이를 인식하지 못하는 경우이다.
False Positive는 지도 전체를 왜곡시키는 심각한 오류를 발생시키고, False Negative는 Drift 누적을 방치하게 된다.
최적화 실패(Optimization Failure) 역시 발생할 수 있다.
Graph SLAM은 수천 개의 노드와 제약 조건을 최적화해야 한다.
잘못된 초기값, 오류가 포함된 Loop Closure, 관측 부족, 수치적 불안정성은 최적화 실패를 유발할 수 있다.
계산 자원 부족(Computational Limitation)도 실용적인 문제이다.
실시간 Visual SLAM은 특징 추출, 매칭, 움직임 추정, 지도 생성, 최적화, Loop Closure를 지속적으로 수행해야 한다.
Jetson Orin NX와 같은 Edge Device에서도 자원은 제한적이다.
계산량이 과도하면 프레임 드롭(Frame Drop), 지연(Latency), 업데이트 주기 감소 등이 발생할 수 있다.
장기 운용(Long-Term Operation)은 또 다른 어려움을 제공한다.
환경은 시간에 따라 변화한다. 가구가 이동하고, 건물이 변경되며, 공사가 진행되고, 식생이 성장한다.
계절 변화 역시 환경 외형을 크게 바꾼다.
몇 달 전에 생성된 지도는 현재 환경을 정확하게 반영하지 못할 수 있다.
대규모 환경(Large-Scale Environment)에서는 메모리 사용량, 계산량, 최적화 비용이 지속적으로 증가한다.
따라서 효율적인 Map Management와 Map Compression 기술이 필요하다.
Visual-Inertial SLAM은 많은 실패 사례를 완화한다.
IMU는 시각 정보가 부족한 경우에도 고주파 움직임 정보를 제공한다.
그러나 IMU 역시 Bias Drift, 노이즈, 보정 문제를 가진다.
Multi-Sensor Fusion은 실패 사례를 해결하는 가장 효과적인 방법 중 하나이다.
LiDAR는 조명 변화에 강하다. Radar는 악천후에 강하다. GNSS는 전역 위치 정보를 제공한다. Wheel Encoder는 단기 이동 정보를 제공한다.
이러한 센서를 융합하면 각 센서의 약점을 상호 보완할 수 있다.
최근에는 인공지능 기술이 Visual SLAM 실패 문제 해결에 적극 활용되고 있다.
딥러닝은 Dynamic Object Detection, Semantic Segmentation, Feature Enhancement, Place Recognition, Illumination Invariance, Depth Estimation, Uncertainty Prediction 등에 적용되고 있다.
미래의 Visual SLAM은 단순한 기하학 기반 시스템을 넘어 Semantic World Model 기반 시스템으로 발전할 것이다.
이러한 시스템은 단순히 공간 구조를 이해하는 것이 아니라 객체 의미 정보, 환경 맥락, 시간 변화, 동적 요소까지 함께 이해할 수 있게 된다.
Volume 06의 관점에서 Visual SLAM Failure Cases는 매우 중요한 주제이다. 실제 로봇 시스템은 이상적인 환경이 아니라 복잡하고 예측 불가능한 현실 환경에서 동작해야 한다. 따라서 무텍스처 환경, 반복 구조, Perceptual Aliasing, 조명 변화, Motion Blur, 동적 객체, 반사면, 기상 조건, 깊이 추정 오류, 보정 오류, 동기화 오류, Loop Closure 오류, 최적화 실패, 계산 자원 부족, 장기 환경 변화 등을 이해하는 것은 신뢰성 높은 Visual SLAM 시스템을 설계하기 위한 필수적인 지식이다. 이러한 실패 원인을 정확히 이해할 때 비로소 실제 산업용 로봇, 자율주행 차량, 드론, 검사 로봇, Embodied AI 플랫폼에서 안정적으로 동작하는 차세대 위치추정 시스템을 개발할 수 있다.
06.8 Visual SLAM Optimization
비주얼 동시 위치추정 및 지도작성(Visual Simultaneous Localization and Mapping, Visual SLAM)은 자율주행 로봇, 자율주행 차량, 드론, 서비스 로봇, 증강현실(AR), 디지털 트윈, 그리고 Embodied AI 시스템의 핵심 기술 중 하나이다. Visual SLAM의 기본 목표는 로봇의 위치와 자세(Pose)를 추정하는 동시에 환경의 지도를 생성하는 것이다. 그러나 실제 Visual SLAM 시스템의 성능은 최적화(Optimization)에 크게 의존한다. 최적화가 없다면 센서 오차는 지속적으로 누적되고, 위치추정 정확도는 감소하며, 지도는 왜곡되고, 장시간 자율주행은 불가능해진다. 따라서 최적화는 노이즈가 포함된 센서 데이터를 일관성 있는 위치와 지도 정보로 변환하는 핵심 수학적 과정이다.
Visual SLAM 최적화는 관측된 데이터를 가장 잘 설명하는 위치와 지도 구조를 찾는 과정으로 볼 수 있다. 카메라는 영상 데이터를 수집하지만, 영상에는 센서 노이즈, 특징 추출 오류, Motion Blur, 조명 변화, 보정 오차, 동적 객체 등 다양한 불확실성이 포함되어 있다. 최적화 알고리즘은 이러한 불완전한 관측을 이용하여 가장 가능성이 높은 카메라 궤적과 환경 구조를 추정한다.
최적화가 필요한 이유는 Visual SLAM이 본질적으로 추정(Estimation) 문제이기 때문이다. 로봇은 매 순간 환경의 일부만 관측할 수 있으며, 관측 정보는 불완전하고 노이즈를 포함한다. 따라서 관측된 데이터를 기반으로 가장 가능성이 높은 위치와 지도 구조를 계산해야 하며, 이를 위한 수학적 프레임워크가 최적화이다.
Visual SLAM 최적화의 핵심 개념 중 하나는 오차 최소화(Error Minimization)이다. 시스템은 현재 카메라 위치와 랜드마크 위치를 추정하고 있다. 이러한 추정값을 이용하면 특정 랜드마크가 영상에서 어디에 나타나야 하는지 예측할 수 있다. 실제 관측 위치와 예측 위치의 차이를 오차(Error)라고 한다. 최적화는 이러한 오차를 최소화하는 방향으로 위치와 지도를 수정한다.
Visual SLAM에서 가장 널리 사용되는 오차는 재투영 오차(Reprojection Error)이다. 3차원 랜드마크를 현재 카메라 위치와 카메라 모델을 이용하여 영상 평면으로 투영한 후, 실제 특징점 위치와 비교한다. 두 위치의 차이가 재투영 오차이다. 재투영 오차가 작을수록 위치와 지도가 실제 환경과 잘 일치한다는 의미이다.
재투영 오차 최소화는 Visual SLAM 최적화의 핵심 목표이다. 카메라 위치와 랜드마크 좌표를 지속적으로 수정하여 전체 데이터셋에 대한 재투영 오차를 최소화한다.
Visual SLAM 최적화 문제는 일반적으로 비선형(Nonlinear) 문제이다. 카메라 투영 모델은 3차원 공간과 2차원 영상 사이의 비선형 관계를 포함한다. 따라서 단순한 선형 해법으로는 해결할 수 없으며 반복적 최적화 기법이 필요하다.
최소제곱 최적화(Least-Squares Optimization)는 Visual SLAM에서 가장 기본적인 방법이다. 모든 관측 오차의 제곱합을 최소화하는 해를 찾는다. 오차를 제곱함으로써 큰 오차에 더 큰 가중치를 부여할 수 있으며 수학적으로도 다루기 쉽다.
Gauss-Newton 알고리즘은 Visual SLAM에서 가장 널리 사용되는 비선형 최소제곱 최적화 방법 중 하나이다. 현재 추정값 주변에서 문제를 선형화하고 오차를 감소시키는 방향으로 반복적으로 갱신한다. 초기 추정이 적절할 경우 매우 빠르게 수렴한다.
Levenberg-Marquardt 알고리즘은 Gauss-Newton을 확장한 방법이다. 감쇠(Damping) 항을 추가하여 초기 추정이 좋지 않거나 비선형성이 강한 경우에도 안정적으로 수렴할 수 있도록 한다. 현재까지도 컴퓨터 비전과 로보틱스에서 가장 널리 사용되는 최적화 기법 중 하나이다.
Gradient-Based Optimization도 사용된다. 이 방법은 오차가 가장 빠르게 감소하는 방향(Gradient)을 계산하여 반복적으로 파라미터를 업데이트한다. 최근 딥러닝 기반 SLAM에서는 Gradient-Based 방식이 더욱 중요해지고 있다.
Visual SLAM 최적화는 여러 수준에서 수행된다. Local Optimization은 최근 관측과 주변 랜드마크를 대상으로 수행된다. Global Optimization은 전체 지도와 전체 궤적을 동시에 고려한다. 이 둘의 균형은 정확도와 계산 효율성에 큰 영향을 준다.
Local Bundle Adjustment는 가장 널리 사용되는 최적화 기법 중 하나이다. Bundle Adjustment는 카메라 위치와 랜드마크 위치를 동시에 최적화하여 재투영 오차를 최소화한다. 일반적으로 최근 Keyframe과 주변 랜드마크만을 대상으로 수행하여 계산량을 줄인다.
Global Bundle Adjustment는 전체 지도와 전체 카메라 궤적을 대상으로 최적화를 수행한다. 매우 높은 정확도를 제공하지만 계산량이 급격히 증가한다.
Bundle Adjustment는 Visual SLAM 최적화의 "골드 스탠더드(Gold Standard)"로 불린다. 구조(Structure)와 움직임(Motion)을 동시에 최적화할 수 있기 때문이다.
Keyframe Selection은 최적화 효율성에 매우 중요하다. 모든 프레임을 최적화 대상으로 사용하는 것은 계산량 측면에서 비현실적이다. 따라서 대표성이 높은 프레임만 선택하여 Keyframe으로 저장하고 최적화에 사용한다.
Graph Optimization은 현대 Visual SLAM의 핵심 구조이다. Graph-Based SLAM에서는 카메라 위치를 Node로 표현하고, 관측 제약 조건을 Edge로 표현한다.
Pose Graph Optimization은 카메라 위치만 최적화하는 방식이다. 노드는 로봇 위치와 자세를 나타내며, Edge는 Visual Odometry, Loop Closure, 센서 융합으로부터 얻어진 상대 위치 관계를 표현한다.
최적화 과정은 모든 제약 조건을 가장 잘 만족하는 Pose 구성을 찾는다.
Factor Graph는 더욱 일반화된 표현 방식이다. 카메라 위치, 랜드마크 위치, 센서 바이어스, 보정 파라미터 등을 노드로 표현한다. 관측 관계는 Factor로 표현된다.
Factor Graph는 복잡한 추정 문제를 효율적으로 해결할 수 있어 최근 Visual SLAM에서 널리 사용되고 있다.
Loop Closure는 Global Optimization의 가장 중요한 트리거이다. 로봇이 이전에 방문했던 장소를 다시 인식하면 Loop Closure Constraint가 생성된다.
이 새로운 제약 조건은 기존 궤적과의 불일치를 드러내며, 최적화 알고리즘은 누적된 Drift를 전체 궤적에 재분배한다.
결과적으로 수십 미터 또는 수백 미터 동안 누적된 오차도 크게 줄일 수 있다.
Sparse Optimization은 대규모 SLAM 문제에서 필수적이다. 실제 SLAM 문제는 수천 개에서 수백만 개의 변수와 제약 조건을 포함한다.
그러나 대부분의 변수는 일부 변수와만 연결되어 있기 때문에 희소 행렬(Sparse Matrix) 구조를 가진다. Sparse Optimization은 이러한 특성을 활용하여 계산량을 크게 줄인다.
대표적인 최적화 라이브러리로는 g2o, Ceres Solver, GTSAM, iSAM 등이 있다. 이들은 대규모 비선형 최적화 문제를 효율적으로 해결하기 위해 개발되었다.
실시간 응용에서는 Incremental Optimization이 중요하다. 전통적인 방법은 새로운 데이터가 들어올 때마다 전체 문제를 다시 계산한다.
반면 Incremental Optimization은 기존 결과를 유지하면서 새로운 정보만 반영한다.
iSAM(Incremental Smoothing and Mapping)은 대표적인 Incremental Optimization 프레임워크이다. 새로운 관측이 들어올 때마다 Factor Graph를 점진적으로 업데이트하여 실시간 성능을 제공한다.
불확실성 모델링(Uncertainty Modeling)도 최적화의 핵심 요소이다. 모든 센서 관측에는 노이즈가 존재한다.
Covariance Matrix는 이러한 불확실성을 표현하는 데 사용된다. 신뢰도가 높은 관측은 최적화에서 큰 영향을 가지며, 노이즈가 큰 관측은 상대적으로 적은 영향을 가진다.
Robust Optimization은 이상치(Outlier)에 대응하기 위해 사용된다.
잘못된 특징 매칭, 동적 객체, 센서 오류, False Loop Closure 등은 일반적인 최소제곱 최적화에 큰 영향을 줄 수 있다.
Huber Loss, Tukey Loss, Cauchy Loss와 같은 Robust Loss Function은 큰 오차를 가진 데이터의 영향을 제한하여 안정성을 향상시킨다.
동적 환경(Dynamic Environment)은 최적화에 큰 도전 과제이다. 전통적인 Visual SLAM은 모든 랜드마크가 정적이라고 가정한다.
그러나 실제 환경에는 사람, 차량, 로봇, 기계 설비 등이 지속적으로 움직인다.
최근 Visual SLAM은 Semantic Segmentation을 활용하여 동적 객체를 제거하거나 별도로 처리한다.
Visual-Inertial SLAM은 최적화 대상에 IMU 데이터를 추가한다.
카메라 위치뿐 아니라 IMU Bias, 중력 방향(Gravity Vector), 속도(Velocity) 등도 함께 최적화한다.
이러한 Visual-Inertial Optimization은 빠른 움직임, Motion Blur, 텍스처 부족 환경에서도 강건한 성능을 제공한다.
Multi-Sensor Optimization은 더욱 발전된 형태이다.
카메라, LiDAR, Radar, Wheel Encoder, GNSS, IMU를 하나의 최적화 프레임워크 안에서 동시에 처리한다.
센서 융합 최적화는 각 센서의 장점을 활용하고 단점을 보완할 수 있다.
대규모 환경에서는 추가적인 문제가 발생한다.
지도 크기가 증가할수록 메모리 사용량과 최적화 계산량도 증가한다.
이를 해결하기 위해 Submapping 기법이 사용된다.
Submapping은 환경을 여러 개의 작은 지도 영역으로 나누고 각각 독립적으로 최적화한 뒤 전역적으로 통합하는 방식이다.
Hierarchical Optimization은 여러 수준의 지도를 계층적으로 최적화하여 확장성을 향상시킨다.
계산 효율성은 실시간 Visual SLAM의 핵심 과제이다.
Jetson Orin NX, Jetson AGX Orin, RTX 기반 Edge Computer, 향후 Jetson Thor 플랫폼은 위치추정, 지도생성, 경로계획, AI 추론을 동시에 수행해야 한다.
따라서 최적화 알고리즘은 높은 정확도와 낮은 계산량을 동시에 만족해야 한다.
최근에는 GPU 가속이 적극적으로 사용되고 있다. 병렬 연산을 활용하여 행렬 계산, Bundle Adjustment, Graph Optimization 속도를 크게 향상시킬 수 있다.
딥러닝도 최적화에 영향을 미치고 있다.
신경망은 특징점 품질 예측, 불확실성 추정, Loop Closure 검출, Place Recognition, Prior 정보 생성 등에 활용되고 있다.
학습 기반 최적화는 기존 기하학 기반 최적화를 보완하는 방향으로 발전하고 있다.
Differentiable Optimization은 최근 주목받는 연구 분야이다.
최적화 과정을 신경망 내부에 포함하여 인식과 추정을 동시에 학습할 수 있도록 한다.
이는 미래 SLAM 시스템이 다양한 환경에 자동으로 적응할 수 있게 할 것으로 기대된다.
인공지능은 최적화를 단순한 기하학 문제에서 기하학-의미(Semantic) 통합 문제로 확장시키고 있다.
미래의 시스템은 위치와 랜드마크뿐 아니라 객체 관계, 의미 정보, 시간 변화, 환경 맥락까지 함께 최적화할 것이다.
디지털 트윈 역시 최적화의 중요성을 확대시키고 있다.
고정밀 디지털 트윈은 정확한 위치추정, 정합된 지도, 의미 정보, 장기적인 지도 유지 관리를 요구한다.
최적화는 이러한 모든 기능의 기반 기술이다.
미래의 Visual SLAM 최적화는 단순한 기하학적 지도 최적화를 넘어 실시간 World Model Optimization으로 발전할 것으로 예상된다.
로봇은 단순한 공간 구조가 아니라 객체, 의미 정보, 동적 변화, 예측 정보까지 포함하는 세계 모델을 최적화하게 될 것이다.
Volume 06의 관점에서 Visual SLAM Optimization은 원시 센서 데이터를 신뢰성 있는 위치와 지도 정보로 변환하는 핵심 수학적 기반이다. 재투영 오차 최소화, 비선형 최소제곱 추정, Bundle Adjustment, Pose Graph Optimization, Factor Graph, Loop Closure 보정, Robust Estimation, Uncertainty Modeling, Visual-Inertial Optimization, Multi-Sensor Fusion, 그리고 AI 기반 최적화 기법을 이해하는 것은 현대 SLAM 시스템을 이해하는 데 필수적이다. 이러한 최적화 원리를 숙달하는 것은 실외 자율주행 로봇, AMR, 드론, 자율주행 차량, 디지털 트윈 플랫폼, 그리고 차세대 Embodied AI 시스템을 개발하기 위한 핵심 기반 지식이 된다.








Top comments (0)