Open Source Robotics

Eine kuratierte Sammlung hochwertiger Open-Source-Robotikprojekte, Werkzeuge und Software für die Robotik-Community.

Keyframe

  • Auch genannt: key frame, KF
  • Kategorie: State estimation & navigation › Localisation
  • Schlagwörter: slam, visual-odometry, mapping, state-estimation, bundle-adjustment

Ein ausgewähltes Bild, das ein SLAM- oder Kartierungssystem mit seiner Pose und seinen Beobachtungen für spätere Optimierung behält, während die meisten anderen Bilder kurz genutzt und verworfen werden.

Definition

Ein Keyframe (Schlüsselbild) ist eines aus einer kleinen Menge von Kamerabildern oder Sensorscans, die ein SLAM-, Odometrie- oder Kartierungssystem zu behalten beschließt. Jedes eingehende Bild wird genutzt, um die Bewegung des Sensors zu verfolgen, aber nur Keyframes werden mit ihrer geschätzten Pose und ihren Beobachtungen gespeichert, etwa Bildmerkmalen, Tiefe oder LiDAR-Punkten. Karte und Trajektorie werden dann mit diesen Keyframes statt mit jedem Bild verfeinert. Der Ansatz wurde für Echtzeit-Visual-SLAM durch PTAM von Georg Klein und David Murray im Jahr 2007 etabliert, das Tracking und Kartierung in getrennte Threads aufteilte, und in Systemen wie ORB-SLAM weiterentwickelt.

Die Regel, wann ein neuer Keyframe angelegt wird, ist eine zentrale Entwurfsentscheidung. Übliche Kriterien sind Zeit oder Strecke seit dem letzten Keyframe, genug Parallaxe, um neue Punkte zu triangulieren, und ein Rückgang dessen, wie stark sich die aktuelle Ansicht mit dem letzten Keyframe überlappt, gemessen zum Beispiel an gemeinsamen Merkmalen oder gemeinsamen Kartenvoxeln. Systeme entfernen (cull) außerdem Keyframes, die redundant geworden sind. Zu wenige Keyframes, und das Tracking geht verloren oder die Karte ist dünn; zu viele, und die Optimierung wird langsamer, ohne Information hinzuzufügen.

Keyframes machen optimierungsbasiertes SLAM bezahlbar. Bündelausgleich und Posengraph-Optimierung laufen über Keyframes, oft nur über die in einem lokalen Fenster, und die Suche nach Schleifenschlüssen vergleicht neue Bilder mit gespeicherten Keyframes. In neuronal-impliziten und dichten Kartierungssystemen wird eine Keyframe-Menge während des Trainings der Karte wieder eingespielt, damit früher beobachtete Bereiche nicht vergessen werden, während das Netz oder das Merkmalsgitter mit neuen Bildern aktualisiert wird.

Warum es wichtig ist

Sensoren erzeugen weit mehr Bilder, als ein Roboter in Echtzeit optimieren kann. Die Keyframe-Auswahl entscheidet, welche Information behalten wird, und wirkt sich daher direkt auf Kartenqualität, Robustheit des Trackings, Speicherbedarf und Rechenbudget jedes darauf aufbauenden SLAM-Systems aus.

Wichtige Anwendungen

  • Lokaler Bündelausgleich in visuellem und visuell-inertialem SLAM
  • Erkennung von Schleifenschlüssen gegen eine Datenbank gespeicherter Keyframes
  • Wiedereinspielen früherer Beobachtungen in neuronal-impliziter und dichter Kartierung
  • Relokalisierung nach Tracking-Verlust
  • Aufbau schlanker Karten für Langzeitlokalisierung

In der Praxis

Ein Team, das ein visuell-inertiales SLAM-System auf einem Handgerät mit 30 Bildern pro Sekunde betreibt, stellt fest, dass beim Gehen nur wenige Keyframes pro Sekunde entstehen und beim Stillstehen fast keine. Wenn es in einen merkmalsarmen Flur geht, wird das Tracking fragil; den Überlappungsschwellwert zu senken, damit Keyframes früher eingefügt werden, hilft, genug triangulierte Punkte zu behalten. Für ein neuronales LiDAR-Kartierungssystem legt es die Keyframe-Regel so fest, dass ein neuer Scan behalten wird, wenn seine Überlappung mit dem letzten Keyframe unter einen Schwellwert fällt, und jeder Optimierungsschritt tastet Strahlen aus dem aktuellen Bild und einer Auswahl gespeicherter Keyframes ab. Bei langen Läufen beobachtet es die Zahl der Keyframes, da eine unbegrenzte Menge die Optimierung irgendwann verlangsamt.

Häufige Missverständnisse

  • Jedes Bild wird Teil der Karte — die meisten Bilder dienen nur dem Tracking; nur ausgewählte Keyframes werden gespeichert und optimiert
  • Mehr Keyframes ergeben immer eine bessere Karte — redundante Keyframes erhöhen den Rechenaufwand bei wenig neuer Information, weshalb Systeme sie aussortieren
  • Ein Keyframe im SLAM ist dasselbe wie ein Keyframe in der Animation — im SLAM ist er eine gespeicherte Sensorbeobachtung mit Pose, keine von Hand gesetzte Pose für die Interpolation

Wer das wissen sollte

  • Ingenieure für SLAM und visuelle Odometrie
  • Entwickler neuronaler und dichter 3D-Kartierungssysteme
  • Navigationsteams für Drohnen und mobile Roboter
  • Studierende der Computer Vision, die Structure from Motion lernen

Verwandte Technologien

  • ORB-SLAM
  • PTAM
  • Bündelausgleich (Bundle Adjustment)
  • Visuell-inertiale Odometrie (Visual-Inertial Odometry)
  • Bag of Visual Words

Verwandte Begriffe

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

Verwandte Projekte

  • 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

Diese Website benötigt JavaScript. Bitte aktivieren Sie JavaScript, um unsere Open-Source-Robotikprojekte zu erkunden.