SLAM – Road to BEYOND REALITY

(Kommentare: 0)

Feature-basiertes monokulares SLAM-Verfahren
Feature-basiertes monokulares SLAM-Verfahren

Als Fortsetzung unseres Blog-Beitrags zu den Themen Augmented, Virtual und Mixed Reality (MR) und deren Anwendungsgebieten, möchten wir jetzt einen Blick auf die technischen Hintergründe werfen. Was muss beispielsweise getan werden, um für einen MR-Anwendungsfall die Position eines Head-Mounted-Displays (HMD) nur mit Hilfe einer integrierten Videokamera zu bestimmen und dabei gleichzeitig die Umgebung zu rekonstruieren, um reale Welt und virtuelle Objekte miteinander zu „verschmelzen“. Wie bereits skizziert, eignen sich hierfür die sogenannten SLAM-Verfahren (Simultaneous Localization and Mapping), die das gleichzeitige Erstellen von Umgebungsrekonstruktionen und Lokalisieren in diesen rekonstruierten Umgebungskarten ermöglichen. Sie haben ihren Ursprung in der Robotik im Kontext maschinellen Sehens („Computer Vision“) und existieren für die unterschiedlichsten Sensordaten. SLAM-Verfahren sind unter anderem in Systemen für die autonome Bewegungs- und Navigationssteuerung von Autos, Robotern oder Drohnen zu finden.

Monokulares SLAM

Darüber hinaus ist SLAM ein Paradebeispiel für ein typisches Henne-Ei-Problem: Für die Rekonstruktion einer Umgebung benötigt man eine gute Lokalisierung des Sensors innerhalb dieser Umgebung und für eine gute Lokalisierung eine bestehende Umgebungsrekonstruktion. Mit dem Begriff Lokalisierung wird die Positions- und Lagebestimmung des Sensors bezeichnet, der die zu verarbeitenden Sensordaten liefert; Position und Lage eines Sensors werden zusammenfassend als Pose bezeichnet. Im Kontext des oben genannten MR-Anwendungsfalls muss ein SLAM-Verfahren daher die Pose des Kamerasensors beziehungsweise die zu den einzelnen Videobildern passenden Posen kontinuierlich bestimmen. Entsprechende Verfahren, die auf Basis der Videobilder einer einzelnen Videokamera visuelles SLAM realisieren, werden monokulare SLAM-Verfahren genannt. Sie analysieren und verarbeiten die aufeinanderfolgenden Videobilder, um beispielsweise Korrelationen zwischen diesen zu finden. Auf Basis der Korrelationen können dann die Posen der Videobilder bestimmt und die dreidimensionale Rekonstruktion der mit der Videokamera aufgezeichneten Umgebung erstellt werden. Da jedoch Bilder stets eine Projektion der dreidimensionalen Umgebung auf eine zweidimensionale Ebene sind und damit die Tiefeninformationen verloren gehen, müssen die dreidimensionalen Informationen unter Zuhilfenahme mathematischer Modelle wie der Epipolargeometrie auf Basis der Videobilder berechnet werden. Da mehrere unterschiedliche Varianten monokularer SLAM-Verfahren existieren, konzentriert sich der Artikel im Folgenden auf die Beschreibung eines Feature-basierten monokularen SLAM-Verfahren.

Allgemeines Konzept Feature-basierter monokularer SLAM-Verfahren

Für die Bestimmung von Korrelationen zwischen aufeinanderfolgenden Videobildern versuchen Feature-basierte (monokulare) SLAM-Verfahren zunächst markante Punkte in aufeinanderfolgenden Videobildern zu erkennen – sogenannte Features. Diese Features sind in der Regel an abgebildeten Ecken zu finden („Feature Detection“), beispielsweise an einer Tischplatte. Um sie zuverlässig in aufeinanderfolgenden Videobildern wiederzuerkennen, werden die erkannten Features unter Einbeziehung ihrer umgebenden Bildinformationen „beschrieben“ („Feature Description“). Diese Beschreibung wird in entsprechenden Feature-Deskriptoren gespeichert. Zueinander passende Features aufeinanderfolgender Videobilder können dann mittels der Epipolargeometrie und dem Vergleichen der Feature-Deskriptoren bestimmt werden („Feature Matching“), um anschließend durch Triangulation dieser Feature-Paare die entsprechenden 3D-Punkte zu berechnen. Die erstellten 3D-Punkte bekommen ebenfalls jeweils einen entsprechenden Feature-Deskriptor zugewiesen. Im Gegensatz zu anderen Varianten monokularer SLAM-Verfahren werden bei Feature-basierten SLAM somit nur Feature-Paare trianguliert, sodass lediglich eine grobe Umgebungsrekonstruktion entsteht.

Initialisierung monokularer SLAM-Verfahren

Gemäß der Henne-Ei-Problematik ist eine automatische Initialisierung von monokularen SLAM-Verfahren, das heißt eine initiale Lokalisierung der Videokamera und eine initiale Erstellung der Umgebungsrekonstruktion, nicht trivial, da eine Umgebungsrekonstruktion nicht vorhanden und die Posen der Videobilder nicht bestimmbar sind. Aufgrund der Komplexität, Annahmen über die Umgebung ohne synthetische Hilfsmittel zu treffen, werden folgende Annahmen über die bei der Initialisierung beteiligten Videobilder getroffen:

  • Die Pose des ersten Videobilds liegt im Ursprung des dreidimensionalen Koordinatensystems der Umgebungsrekonstruktion.
  • Die Pose des zweiten Videobilds wird auf eine vordefinierte Distanz gegenüber der ersten Pose gesetzt.

Zudem müssen die bei der Initialisierung beteiligten Videobilder eine ausreichende Parallaxe aufweisen, da nur so eine gute Triangulation der Feature-Paare gewährleistet ist. Aufgrund der – für eine automatische Initialisierung monokularer SLAM-Verfahren notwendigen – Annahmen wird allerdings ersichtlich, dass lediglich relative Aussagen über die dreidimensionale Anordnung der Umgebungsrekonstruktion und der Posen der Videobilder getroffen werden können.

Fortlaufende Lokalisierung und Umgebungsrekonstruktion

Die initial erstellten 3D-Punkte werden anschließend für die weitere Posen-Berechnung der folgenden Videobilder verwendet, da ab diesem Zeitpunkt nicht nur Feature-Paare zwischen aufeinanderfolgenden Videobildern ermittelt werden können; vielmehr entsteht durch die Projektion bereits erstellter 3D-Punkte in das jeweils aktuelle Videobild auch Korrelationen zwischen 3D-Punkten und der im Videobild erkannten Features. Durch die Minimierung der Abstände zwischen den Projektionspunkten der 3D-Punkte und den Features sowie dem Vergleichen der Deskriptoren kann dann die Pose des aktuellen Videobilds ermittelt werden. Infolgedessen können neue 3D-Punkte durch die Triangulation von neuen Feature-Paaren zwischen dem aktuellen Videobild und den vorhergehenden Videobildern erstellt werden. Da somit Lokalisierung und Erstellung von 3D-Punkten voneinander abhängig sind, wird durch das gleichzeitige Ausführen beider Komponenten die gesamte SLAM-Funktionalität gewährleistet.

Weitere SLAM-Bestandteile

In Abgrenzung zu Odometrie-Verfahren besitzen SLAM-Verfahren oft andere Funktionalitäten oder auch weitere Bestandteile. Beispielsweise haben Odometrie-Verfahren stets nur eine „lokale“ Umgebungsrekonstruktion für die Berechnung der aktuellen Posen zwischengespeichert und verwerfen nicht länger benötigte Teile der Umgebungsrekonstruktion, während SLAM-Verfahren alle rekonstruierten 3D-Punkte speichern und lediglich einzelne Punkte durch Optimierungsverfahren entfernen.

Weiterhin beinhalten SLAM-Verfahren in der Regel Mechanismen zum sogenannten Loop-Closing oder zur Relokalisierung. Letzterer wird (im Kontext des Feature-basierten monokularen SLAM-Verfahrens) bei einer fehlgeschlagenen Lokalisierung ausgelöst. So lassen sich für die folgenden Videobilder Korrelationen zwischen ihren Features und den bereits existierenden 3D-Punkten bestimmen, um bei ausreichender valider Anzahl von Korrelationen mittels Minimierung der Abstände zwischen den Projektionspunkten der 3D-Punkte und den Features wieder eine valide Pose zu ermitteln ist. Dazu werden insbesondere auch die Deskriptoren der Features mit denen der 3D-Punkte verglichen.

Autor:
Benjamin Weißer
Consultant

Bild- und Videorechte: © SyroCon Consulting GmbH

Zurück

Kommentare

Einen Kommentar schreiben