Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Keyframe

  • Detto anche: key frame, KF
  • Categoria: State estimation & navigation › Localisation
  • Tag: slam, visual-odometry, mapping, state-estimation, bundle-adjustment

Un fotogramma selezionato che un sistema di SLAM o di mappatura conserva, con la sua posa e le sue osservazioni, per l'ottimizzazione successiva, mentre la maggior parte degli altri fotogrammi viene usata brevemente e scartata.

Definizione

Keyframe (fotogramma chiave) è una delle poche immagini di telecamera o scansioni di sensore che un sistema di SLAM, odometria o mappatura decide di conservare. Ogni fotogramma in arrivo viene usato per tracciare il moto del sensore, ma solo i keyframe vengono memorizzati con la loro posa stimata e le loro osservazioni, come feature dell'immagine, profondità o punti lidar. La mappa e la traiettoria vengono poi raffinate usando questi keyframe anziché ogni fotogramma. L'approccio si è affermato per lo SLAM visivo in tempo reale con PTAM, di Georg Klein e David Murray nel 2007, che separò tracciamento e mappatura in thread distinti, ed è stato sviluppato ulteriormente in sistemi come ORB-SLAM.

La regola per creare un nuovo keyframe è una scelta progettuale centrale. I criteri comuni includono il tempo o la distanza dall'ultimo keyframe, una parallasse sufficiente a triangolare nuovi punti e un calo della sovrapposizione della vista attuale con l'ultimo keyframe, misurata per esempio tramite feature condivise o voxel della mappa condivisi. I sistemi inoltre scartano (cull) i keyframe diventati ridondanti. Con troppo pochi keyframe il tracciamento si perde o la mappa è rada; con troppi l'ottimizzazione rallenta senza aggiungere informazione.

I keyframe sono ciò che rende sostenibile lo SLAM basato su ottimizzazione. Il bundle adjustment e l'ottimizzazione del grafo delle pose girano sui keyframe, spesso solo su quelli di una finestra locale, e la ricerca di chiusure d'anello confronta i nuovi fotogrammi con i keyframe memorizzati. Nei sistemi di mappatura implicita neurale e densa, un insieme di keyframe viene riproposto durante l'addestramento della mappa, così che le regioni osservate in precedenza non vengano dimenticate mentre la rete o la griglia di feature si aggiorna con i nuovi fotogrammi.

Perché è importante

I sensori producono molti più fotogrammi di quanti un robot possa ottimizzare in tempo reale. La selezione dei keyframe decide quale informazione viene conservata, quindi incide direttamente su qualità della mappa, robustezza del tracciamento, uso della memoria e budget computazionale di ogni sistema di SLAM che vi si basa.

Applicazioni principali

  • Bundle adjustment locale nello SLAM visivo e visivo-inerziale
  • Rilevamento delle chiusure d'anello rispetto a un database di keyframe memorizzati
  • Riproposizione di osservazioni passate nella mappatura implicita neurale e densa
  • Rilocalizzazione dopo la perdita del tracciamento
  • Costruzione di mappe leggere per la localizzazione a lungo termine

In pratica

Un team che fa girare un sistema di SLAM visivo-inerziale su un supporto portatile a 30 fotogrammi al secondo nota che camminando vengono creati solo pochi keyframe al secondo e quasi nessuno da fermi. Quando entra in un corridoio povero di feature, il tracciamento diventa fragile; abbassare la soglia di sovrapposizione in modo che i keyframe vengano inseriti prima aiuta a mantenere abbastanza punti triangolati. Per un sistema neurale di mappatura lidar, il team imposta la regola dei keyframe in modo che una nuova scansione venga conservata quando la sua sovrapposizione con l'ultimo keyframe scende sotto una soglia, e ogni passo di ottimizzazione campiona raggi dal fotogramma attuale e da una selezione di keyframe memorizzati. Nelle esecuzioni lunghe tiene d'occhio il numero di keyframe, perché un insieme senza limite finirà per rallentare l'ottimizzazione.

Idee sbagliate comuni

  • Ogni fotogramma entra a far parte della mappa — la maggior parte dei fotogrammi serve solo al tracciamento; solo i keyframe selezionati vengono memorizzati e ottimizzati
  • Più keyframe danno sempre una mappa migliore — i keyframe ridondanti aggiungono calcolo con poca informazione nuova, ed è per questo che i sistemi li scartano
  • Un keyframe nello SLAM è la stessa cosa di un keyframe nell'animazione — nello SLAM è un'osservazione di sensore memorizzata con una posa, non una posa impostata a mano usata per l'interpolazione

Chi dovrebbe saperlo

  • Ingegneri di SLAM e odometria visiva
  • Sviluppatori di sistemi di mappatura 3D neurale e densa
  • Team di navigazione di droni e robot mobili
  • Studenti di visione artificiale che studiano la structure from motion

Tecnologie correlate

  • ORB-SLAM
  • PTAM
  • Bundle Adjustment
  • Odometria visivo-inerziale (Visual-Inertial Odometry)
  • Bag of Visual Words

Termini correlati

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

Progetti correlati

  • 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

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.