※ ORB SLAM과 ORB SLAM3 논문의 내용을 분석하였으며,
혹시 잘못된 부분이 있다면 지적해주시면 감사하겠습니다 🤗
: Loop & Map Merging Thread에서는 아래의 과정이 수행됩니다.
Place recognition
Loop Correction
Map Merging
1) Database Query
: Atlas DBoW2 database 내에서 active keyframe K_a와 가장 유사한 3개 keyframe K_m을 얻음 (이 때, covisibility graph로 연결된 keyframe은 제외)
: K_m에 대해 K_a의 map points와 매칭
2) Compute Sim3/SE3
K_m과 K_a간의 3D-3D 상관관계를 구하고, RANSAC 을 이용해 similarity transformation(Sim3, 3 translation + 3 rotations + 1 scale) 혹은 SE3를 구한다.
Horn Algorithm : 최소 3개의 3D-3D matching을 기반으로 최적의 회전과 이동 해(T_am)를 찾는다.
RANSAC (RANdom SAmple Consensus)
: 무작위 데이터 샘플을 뽑아 모델을 만들고, 좋은 모델인지 평가하는 과정을 반복하는 기법
→ 3개의 3D-3D matching을 무작위로 뽑고 최적의 R | t 해를 찾은 뒤, triangulation 수행 후 reprojection error 평가
: M_a와 M_m이 모두 active map에 포함된 경우 loop closing이 시작된다
1) Loop Fusion
2) Optimize Essential Graph
: essential graph를 기반으로 pose graph optimization 수행
essential graph

(a) keyframes (b) covisibility graph (c) spanning tree (d) essential graph
: covisibility graph에서 100개 이상의 points를 동시에 바라보는 경우만 남긴다.
: 그래프 최적화 시 훨씬 효율적인 연산이 가능
pose graph optimization

: relative pose error값을 cost로 누적된 drift를 최적화하는 알고리즘, 카메라의 포즈만 변경하고 map points는 최적화하지 않는다.
: keyframe 매칭이 이전에 생성된 맵과의 매칭인 multimap data association인 경우 map merging이 시작된다
: multimap data association → 이전에 생성한 map element와 매칭
1) Merge Maps
① welding window assembly
welding window
: K_a, K_a’s neighbors, K_m, K_m’s neighbors and all map points
M_a에 속하는 모든 map points는 Tma를 활용하여 변환함으로써 M_m에 속하도록 변환
② M_a(K_a와 K_a의 neighbors)와 M_m(K_m와 K_m의 neighbors)의 map points를 매칭하고 M_m의 map points만 남김
③ 매칭 결과에 따라 covisibility graph와 essential graph 업데이트
2) Welding BA
: Welding window 기반 local BA 수행
3) Optimize Essential Graph
안녕하세요. 저는 WoRV팀에서 Visual SLAM & Spatial AI 연구를 담당하고 있는 성삼우입니다.
이번 포스트에서 리뷰하신 ORB SLAM 논문 리뷰를 통해 Yunji님의 블로그를 알게 되었습니다. 올려주신 글들을 읽어보니 multiview geometry과 Deep learning에 대한 이해도가 깊으신 것을 알 수 있었습니다. 이는 저희가 진행 중인 Vision-based dense SLAM 및 end-to-end learning 기반 SLAM 연구와도 깊이 연결될 수 있다고 생각이 들었습니다.
현재 저희 WoRV팀에서는 로보틱스 및 자율주행을 위한 범용 Foundation Model을 개발하고 있으며, SketchDrive 프로젝트를 통해 사람이 지도와 언어적 지시를 기반으로 주행하는 방식과 유사한 주행 에이전트를 연구하고 있습니다.
이와 관련하여 커피챗을 나누고 싶습니다. 연구하신 내용과 저희가 개발 중인 기술에 대해 더 깊이 있는 대화를 나눌 수 있다면 좋겠습니다. 편하신 시간에 잠깐 이야기 나눌 수 있을까요?
편하신 일정 공유해 주시면 감사하겠습니다.
좋은 하루 보내세요!
저희가 진행하고 있는 SketchDrive Project에 대해서 살펴보실 수 있는 링크를 공유합니다. 참고 부탁드립니다.
성삼우 드림
Email: samwoose@maum.ai