Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

Keyframe

  • 다른 이름: key frame, KF
  • 카테고리: State estimation & navigation › Localisation
  • 태그: slam, visual-odometry, mapping, state-estimation, bundle-adjustment

SLAM이나 매핑 시스템이 나중의 최적화를 위해 자세 및 관측값과 함께 보관하는 선택된 프레임으로, 나머지 대부분의 프레임은 잠깐 쓰이고 버려진다.

정의

키프레임(keyframe)은 SLAM, 오도메트리 또는 매핑 시스템이 보관하기로 결정한 소수의 카메라 이미지나 센서 스캔 중 하나다. 들어오는 모든 프레임은 센서의 움직임을 추적하는 데 쓰이지만, 추정된 자세 및 관측값, 예를 들어 이미지 특징, 깊이 또는 LiDAR 점과 함께 저장되는 것은 키프레임뿐이다. 그런 다음 지도와 궤적은 모든 프레임이 아니라 이 키프레임들을 사용해 정제된다. 이 접근법은 2007년 Georg Klein과 David Murray의 PTAM이 실시간 시각 SLAM에 확립했는데, PTAM은 추적과 매핑을 별도의 스레드로 나누었으며, 이후 ORB-SLAM 같은 시스템에서 더 발전했다.

새 키프레임을 만드는 규칙은 핵심적인 설계 선택이다. 흔한 기준으로는 마지막 키프레임 이후의 시간이나 거리, 새 점을 삼각측량할 만큼 충분한 시차, 그리고 현재 시야가 마지막 키프레임과 겹치는 정도의 감소가 있으며, 이 겹침은 예를 들어 공유된 특징이나 공유된 지도 복셀로 측정한다. 시스템은 중복이 된 키프레임을 솎아 내기도(cull) 한다. 키프레임이 너무 적으면 추적을 잃거나 지도가 성기고, 너무 많으면 정보는 늘지 않으면서 최적화가 느려진다.

키프레임은 최적화 기반 SLAM을 감당할 만한 비용으로 만드는 요소다. 번들 조정과 포즈 그래프 최적화는 키프레임에 대해, 흔히 국소 윈도 안의 키프레임에 대해서만 실행되며, 루프 폐쇄 탐색은 새 프레임을 저장된 키프레임과 비교한다. 신경 암시적 매핑 시스템과 조밀 매핑 시스템에서는 지도 학습 중에 키프레임 집합을 재생하여, 네트워크나 특징 격자가 새 프레임으로 갱신될 때 앞서 관측된 영역이 잊히지 않게 한다.

중요한 이유

센서는 로봇이 실시간으로 최적화할 수 있는 것보다 훨씬 많은 프레임을 만든다. 키프레임 선택은 어떤 정보를 보관할지 결정하므로, 그 위에 구축된 모든 SLAM 시스템의 지도 품질, 추적 강건성, 메모리 사용량, 계산 예산에 직접 영향을 미친다.

주요 응용

  • 시각 및 시각-관성 SLAM의 국소 번들 조정
  • 저장된 키프레임 데이터베이스에 대한 루프 폐쇄 검출
  • 신경 암시적 매핑과 조밀 매핑에서 과거 관측의 재생
  • 추적 손실 후 재위치 추정
  • 장기 위치 추정을 위한 경량 지도 구축

실제 사례

초당 30프레임으로 핸드헬드 장비에서 시각-관성 SLAM 시스템을 돌리는 팀은, 걸을 때는 초당 몇 개의 키프레임만 생성되고 가만히 서 있을 때는 거의 생성되지 않는다는 것을 확인한다. 특징이 부족한 복도로 들어가면 추적이 불안정해진다. 겹침 임계값을 낮춰 키프레임이 더 일찍 삽입되게 하면 삼각측량된 점을 충분히 유지하는 데 도움이 된다. 신경 LiDAR 매핑 시스템에서는 마지막 키프레임과의 겹침이 임계값 아래로 떨어지면 새 스캔을 보관하도록 키프레임 규칙을 설정하고, 각 최적화 단계는 현재 프레임과 선택된 저장 키프레임들에서 광선을 샘플링한다. 긴 실행에서는 키프레임 수를 지켜보는데, 제한 없는 집합은 결국 최적화를 느리게 하기 때문이다.

흔한 오해

  • 모든 프레임이 지도의 일부가 된다 — 대부분의 프레임은 추적에만 쓰이며, 선택된 키프레임만 저장되고 최적화된다
  • 키프레임이 많을수록 항상 더 나은 지도가 된다 — 중복 키프레임은 새 정보는 거의 없이 계산만 늘리므로, 시스템이 이를 솎아 낸다
  • SLAM의 키프레임은 애니메이션의 키프레임과 같다 — SLAM에서는 자세가 붙은 저장된 센서 관측이지, 보간에 쓰이는 수작업으로 설정한 자세가 아니다

알아야 할 사람

  • SLAM 및 시각 오도메트리 엔지니어
  • 신경 및 조밀 3D 매핑 시스템 개발자
  • 드론 및 이동 로봇 내비게이션 팀
  • 움직임 기반 구조 복원(structure from motion)을 공부하는 컴퓨터 비전 학생

관련 기술

  • ORB-SLAM
  • PTAM
  • 번들 조정(Bundle Adjustment)
  • 시각-관성 오도메트리(Visual-Inertial Odometry)
  • 시각 단어 가방(Bag of Visual Words)

관련 용어

  • SLAM
  • Visual Odometry
  • Pose Graph Optimization
  • Neural Implicit Representation
  • Neural Radiance Field
  • Loop Closure

관련 프로젝트

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.