기계공학/로보틱스

<논문리뷰> A review of visual SLAM methods for autonomous driving vehicles

역학맨 2025. 3. 14. 17:26

 

논문 리뷰라고 썼지만 다가올 SLAM 랩실 관련 논문 발표가 있어 필요한 사전 지식과 동향을 파악하기위해서 나열식으로 개념을 정리한 글에 불과하다. 미천한 영어실력때문에 내용도 정확하지 않으니 참고바람...

카메라 센서는 이미지 특징을 따라가는 두개의 인접한 프레임들 사이에서 이미지 움직임 트래킹을 담당한다. 

백엔드 모듈은 센서에서 보내주는 데이터를 통해 모션을 추정하고 루프 클로징을 통해 큰 환경에서 중복되거나 유사한 이미지들을 제거하여 에러의 축적을 막는 역할을 한다. 

 

<Monocular camera>

한 개의 렌즈를 가진 Monocular camera는 레이아웃이 심플하고 무겁지 않으며 가격이 저렴한 장점이 있다. 하지만 깊이를 잘 추정하지 못하는 문제가 있다. 

 

 

<프론트 엔드>

Visual Odometry(VO), visual SLAM의 프론트 엔드로 알려져있다. 러프하게 인접한 프레임의 정보에 기반하여 카메라 모션과 방위 정보를 측정하여 빠르게 정확한 위치를 얻는다. 

2가지의 방법론이 있는데 1. Feature based method 2. Direct method 로 분류될 수 있다.

 

SIFT (Scale Invariant Feature Transform) algorithm - 이 방법은 회전, 스케일, ilumination changes없이 수행될 수 있으나 많은 양의 계산을 요구한다.

 

SURF(Speeded Up Robust Features) - SIFT의 개선된 방법으로 SIFT의 방대한 계산양을 단축시켰을 뿐 아니라 훌륭한 SIFT 오퍼레이터 수행을 보여줬다. 그러나 SLAM 시스템에 사용되기에는 한계점이 존재한다. Feature 추출 알고리즘이 높은 컴퓨터 성능을 요구한다. 

 

FAST(Feature from Accelerated Segment Test) algorithm 는 가장자리를 탐색하는 방법이다. 원의 중심 픽셀을 찾고 고정된 반지름안에서 다른 픽셀과의 그레이스케일 차이가 크면 그 점을 코너로 인식하는 방법이다. 하지만 회전과 크기 정보가 없기때문에 회전과 크기 변수를 가진다. 

 

BRIEF (Binary Robust Independant Elementary Features), SIFT방식은 계산량이 상당히 방대하기 때문에 계산과정을 단순화할 필요가 있다. 그를 위해 Binary strings을 피처 포인트로 채택하면서 계산과정을 간단하게 하였다. SIFT방식은 128개의 벡터, 512Byte, SURF방식은 64개의 벡터, Float방식으로 소숫점자리까지 표현하기 때문에 256Byte인 discriptor을 사용하는 데 이는 수백만가지 discriptor을 저장하는 데 있어 중요한 역할을 한다. Float변수를 Binary(이진법)으로 변환하면서 계산해야하는 데이터량을 줄이는 데 성공하였다. 

 

Bag of Word (BoW), 이진 descriptor의 단어 트리를 만들어 지오메트릭한 매칭 속도를 빠르게 만들었다. Bow는 굉장히 빠른 연산속도와 훌륭한 매칭을 보여주지만 노이즈가 발생하기 때문에 클로즈 루프에 대한 명백한 솔루션은 아니다. 검증 단계에서 별도의 매칭을 확인해야하는 과정이 있어야하기 때문에 두 개의 decouple된 스레드로 구성되며 1개의 메인 SLAM시스템은 기능적인 면에 집중하며 나머지는 루프클로저를 찾아내는 데 활용되어진다. 

 

ORB(Orientated FAST and Rotated BRIEF) algorithm은 FAST 코너점과 BRIEF에 기반을 둔다. ORB는 이진수를 사용하여 빠른 연산속도를 보여준다. 게다가 noise도 적으며 회전과 스케일 불변성을 지니고 있어 real-time SLAM에 가장 적합하다. SIFT, SURF 방식과 비교했을 때도 적은 컴퓨팅 파워에도  훌륭한 정확성을 나타내며 내장된  컴퓨터 파워가 제한되어있다면 ORB는 자율주행에 적합하다고 할 수 있다.

 

 

<백 엔드>

 

프론트 엔드로부터 받아온 정보를 통해 Initializing을 최적화하여 궤적의 움직임과 주위환경 지도를 구성하는 작업을 한다.

여러가지 방법이 존재하는 프론트와 다르게 백 엔드에서는 주 된 카테고리를 2개로 나눌 수 있다.

1. Filter based method (e.g, Extended Kalman Filter(EKF) 2. Optimization based method (e.g, Factor graph)

 

1. Filter based method, 이전 상태와 현재 관측된 데이터를 통해 현재의 상태를 추정하는 베이지안(Bayesian)원리를 주로 사용하게 된다. 일반적으로 Extended Kalman Filter(EKF), Unscented Kalman Filter(UKF) 그리고 Particle Filter(PF)를 포함하고 있다. EKF를 사용한 SLAM에서는 상대적으로 작은 스케일의 환경에서 성공적으로 구동한다. 그러나 covariance matrix가 저장되어야하는 이유때문에 큰 알 수 없는 장면들로 항상 저장용량이 제한되게 된다. 

 

2. Optimization based method, 비선형 optimization(graph optimization)이 메인 아이디어로 백엔드 최적화 알고리즘을 그래프의 형태로 바꾸어주는 역할을 한다. 받아온 위치와 환경적인 특징들을 기반으로 그래프를 형성한다. 최적화 알고리즘을 통해 위치를 파악하는데 Vertices로 최적화된 상태는 edge의 제약조건들을 더 잘 만족할 수 있다. (?) 이와 같은 과정을 거치고나면 피사체의 움직임과 주위환경지도를 형성할 수 있으며 현재 visual SLAM에서 주류를 형성하고 있다. 

 

<Loop Closing (루프클로징)>

 

SLAM에 있어서 이동하는 물체가 같은 공간을 방문했을 때 오류를 발생하는 것을 방지하기위해 데이터를 축적하지 않아야한다. 이를 위해 전통적으로 visual SLAM에 있어서 Bag-of-Words(BoW)model을 사용한다. 이는 K-means clustering을 활용하여 구성한다. 

 

<Mapping(매핑)>

 

자율주행이동체(Autonomous vehicle)에 있어서 주변환경에 대한 맵을 형성하고 맵에 자신의 위치를 알아야하는 것은 기본적인 능력이다. 매핑은 1. Metric map 2. Topology map 으로 나뉜다. 

 

1. Metric map, 맵을 구성하는 요소들 사이의 상대적인 위치관계를 묘사한다. 일반적인 SLAM system에서 metric map은 a) Sparse map b) Dense map 으로 나뉘게 되며 a)의 경우 밀도가 낮은 환경에서 작은 양의 정보만을 담고 있으며 위치를 파악하는데 적합하다. b)의 경우 a)보다 더 많은 정보를 담고 있어 맵에서 길을 찾는 일을 수행하는 데 더 유리하다. 

 

2. Topology map, 맵을 구성하는 요소들 사이의 연결 관계에 집중한다. 

 

<Feature-based method SLAM>

 

1. Mono-SLAM, 최초의 real time monocular visual SLAM이다. EKF algorithm을 통해 피처 포인트들을 트래킹하고 카메라와 랜드마크의 위치를 활용해서 방위를 파악한다. 

 

2. PTAM, 2개의 스레드를 통해 병렬 구조의 형식으로 트래킹과 매핑을 진행한다. 프론트와 백엔드를 구분지었으며 비선형 최적화를 통해 키프레임 메커니즘을 제안했다. 많은 Visual SLAM 시스템이 PTAM방식에 기반한다. 

 

3. ORB-SLAM, 상대적으로 완벽한 Key frame based monocular SLAM method이다. 매핑, 트래킹, 루프클로징 3개의 스레드로 시스템이 나뉘어져있으며 피처 추출과 매칭, 맵 형성 및 루프 탐색이 ORB features에 기반하고 있다. 

 

<Direct based method>

 

1. DTAM, direct method를 기반으로한 monocular SLAM framework이다. Feature based 와의 차이는 피처의 depth를 평하기위해 inverse-depth based method를 채택하고 있다. 카메라의 위치를 direct image matching을 통해 계산하고 dense map은 optimization-based method를 통해 계산되어진다. 

 

2. LSD-SLAM, 성공적인 Direct method기반으로한 Monocular SLAM framework이다. Pixel-oriented method를 적용한 SLAM이다. Feature-based method와 비교했을 때 카메라의 파라미터 변화와 illumination 변화에 덜 민감한 장점이 있다.