Volltextübersetzung des ORB-SLAM2-Artikels

vorne geschrieben

ORB-SLAM2: An Open-Source SLAM System form Monocular, Stereo, and RGB-D Cameras ist ein klassischer Artikel im Bereich SLAM. Es gibt auch viele chinesische Übersetzungen im Internet, aber ich finde, dass die Übersetzungen nicht sehr gut sind. Bei der Übersetzung dieses Artikels handelt es sich um die Übersetzung fremdsprachiger Dokumente für meinen Bachelor-Abschluss. Ich habe ihn selbst übersetzt und er fühlt sich reibungsloser an. Wenn es Fehler gibt, weisen Sie bitte darauf hin.

Raúl Mur-Artal und Juan D. Tardós. ORB-SLAM2: ein Open-Source-SLAM-System für Monokular-, Stereo- und RGB-D-Kameras. IEEE Transactions on Robotics, vol. 33, nein. 5, S. 1255-1262, 2017.  PDF

Thema

ORB-SLAM2: Ein Open-Source-SLAM-System für Monokular-, Stereo- und RGB-D-Kameras

Zusammenfassung 

In diesem Artikel wird ORB-SLAM2 vorgeschlagen, ein vollständiges SLAM-System, das auf monokularen, binokularen oder RGB-D-Kameras basiert und Kartenwiederverwendung, Erkennung von Schleifenschließungen und Neulokalisierungsfunktionen umfasst. Dieses System kann auf eine Vielzahl von Umgebungen angewendet werden, sei es ein kleines Handgerät für den Innenbereich oder eine fliegende Drohne in einer Fabrikumgebung und ein Fahrzeug, das in einer Stadt fährt, es kann in Echtzeit auf einer Standard-CPU laufen. Das Backend des Systems verwendet eine Bündelanpassung basierend auf monokularen und binokularen Beobachtungen, die es ermöglicht, den Maßstab der Flugbahn genau abzuschätzen. Das System verfügt über einen einfachen Positionierungsmodus, der mithilfe der visuellen Odometrie nicht kartierte Bereiche verfolgt und Kartenpunkte für eine driftfreie Positionierung abgleicht. Experimentelle Auswertungen an 29 häufig verwendeten öffentlichen Datensätzen zeigen, dass unsere Methode in den meisten Fällen die genaueste SLAM-Lösung ist. Wir haben den Quellcode des Systems veröffentlicht, um die Entwicklung des SLAM-Bereichs voranzutreiben und Forschern in anderen Bereichen auch eine Reihe sofort einsatzbereiter SLAM-Lösungen zur Verfügung zu stellen.

1. Einleitung 

Simultaneous Localization Mapping (SLAM) ist seit zwei Jahrzehnten ein Forschungsschwerpunkt in den Bereichen Computer Vision und Robotik und hat in letzter Zeit auch die Aufmerksamkeit von High-Tech-Unternehmen auf sich gezogen. Die SLAM-Technologie kartiert die unbekannte Umgebung und lokalisiert gleichzeitig die Position des Sensors in der Karte in Echtzeit. Unter den verschiedenen Sensoren sind Kameras relativ kostengünstig und können umfangreiche Umgebungsinformationen liefern, die für eine robuste und genaue Positionserkennung erforderlich sind. Daher ist die visuelle SLAM-Lösung mit Kameras als Hauptsensor derzeit der beliebteste Forschungsschwerpunkt. Die Positionserkennung ist ein Schlüsselmodul im SLAM-System zur Erzielung einer Loopback-Erkennung (wenn erkannt wird, dass der Sensor in das Gebiet zurückkehrt, in dem die Karte erstellt wurde, wird der kumulative Fehler im Erkundungsprozess korrigiert). Es kann das System neu initialisieren Nach einem Tracking-Fehler aufgrund von Okklusion oder heftiger Bewegung müssen Sie die Position der Kamera neu positionieren.

Visuelles SLAM kann nur mit einer Monokularkamera erreicht werden, die das billigste und kleinste Sensorgerät ist. Allerdings können Tiefeninformationen nicht nur mit einer monokularen Kamera beobachtet werden, sodass der Maßstab der Karte und die geschätzte Flugbahn unbekannt sind. Da das monokulare Vision-SLAM-System außerdem nicht nur auf der Grundlage des ersten Bildbilds triangulieren kann, sind mehrere Betrachtungswinkel oder Filtertechniken erforderlich, um beim Start des Systems eine anfängliche Karte zu erstellen. Gleichzeitig verursacht monokulares SLAM eine Skalendrift, die bei reiner Rotationsexplosion fehlschlagen kann. Durch den Einsatz von binokularen oder RGB-D-Kameras können diese Probleme jedoch gelöst werden, was zu einer zuverlässigeren visuellen SLAM-Lösung führt.

In diesem Artikel schlagen wir auf der Grundlage unseres zuvor vorgeschlagenen monokularen ORB-SLAM weiter ORB-SLAM2 vor, das die folgenden Beiträge leistet:

  • Das erste Open-Source-SLAM-System basierend auf monokularen, binokularen RGB-D-Kameras, einschließlich Funktionen zur Schleifenerkennung, Neulokalisierung und Kartenwiederverwendung.
  • Unsere RGB-D-Ergebnisse zeigen, dass wir durch die Bündelanpassung (BA) eine höhere Genauigkeit erreichen können als die besten aktuellen Methoden, die auf iterativem Closest Point (ICP) oder Breiten- und Tiefenfehlerminimierung basieren.
  • Durch die Verwendung von Fern-Nah-Matching-Binokularpunkten und monokularen Beobachtungen sind unsere binokularen Ergebnisse genauer als das aktuelle, hochmoderne direkte binokulare SLAM.
  • Es wird ein leichtes Verlagerungsmuster vorgeschlagen, das die Karte effizient wiederverwendet, wenn sie nicht erstellt werden kann.

Abbildung 1 ORB-SLAM2 verarbeitet binokulare und RGB-D-Eingaben, schätzt Kamerabahnen und erstellt eine Karte der Umgebung. Das System ist in der Lage, Schleifen zu schließen, Karten zu verschieben und auf einer Standard-CPU in Echtzeit mit hoher Präzision und Robustheit wiederzuverwenden.

Abbildung 1 zeigt die Ausgabe des ORB-SLAM2-Systems mit binokularen und RGB-D-Eingängen. Das binokulare Beispiel zeigt die endgültige geschätzte Flugbahn und die Ergebnisse der spärlichen Rekonstruktion der KITTI-Datensatz-00-Sequenz. Hierbei handelt es sich um eine Sequenz städtischer Szenendaten mit mehreren Schleifenschlüssen, die vom ORB-SLAM2-System erfolgreich erkannt wurden. Das RGB-D-Beispiel zeigt die Keyframe-Pose-Schätzergebnisse der Frl-Room-Sequenz im TUM-RGB-D-Datensatz und die resultierende dichte Punktwolke, wobei die dichte Punktwolke auf der Keyframe-Pose basiert und die von erhaltene Sensortiefenkarte umkehrt Projektion. Es ist zu beachten, dass das ORB-SLAM2-System keine Fusion wie Systeme wie KinectFusion durchführt, aber in der Lage ist, die Keyframe-Pose genau abzuschätzen. Weitere Beispiele werden im beigefügten Video gezeigt.

Im Rest dieses Artikels besprechen wir verwandte Arbeiten in Abschnitt 2, stellen unser System in Abschnitt 3 vor, stellen experimentelle Bewertungsergebnisse in Abschnitt 4 vor und schließen in Abschnitt 5 ab.

2. Verwandte Arbeiten

 In diesem Abschnitt diskutieren wir verwandte Arbeiten zu Binokular- und RGB-D-SLAM. Die Diskussion in diesem Abschnitt und die Bewertung in Abschnitt IV beziehen sich nur auf SLAM-Methoden.

2.1 Fernglas-SLAM

Paz et al. haben ein frühes hervorragendes binokulares SLAM-System entwickelt [5], das auf dem bedingt unabhängigen Partitions-Extended-Kalman-Filter-SLAM (EKF-SLAM) basierte, sodass das System mit anderen Methoden dieser Zeit verglichen werden kann. Funktioniert in größeren Szenarien . Am wichtigsten ist, dass es das erste ist, das sowohl nahe als auch ferne Merkmalspunkte verwendet (die aufgrund ihrer geringen Parallaxe in Stereokameras die Tiefe nicht zuverlässig schätzen können) und für letztere einen inversen Tiefenparameter verwendet. Geschätzte [6]. Sie zeigen empirisch, dass Merkmalspunkte zuverlässig trianguliert werden können, wenn ihre Tiefe weniger als das 40-fache der Basislinienlänge der Stereokamera beträgt. In dieser Arbeit führen wir diese Strategie fort, nahe und ferne Merkmalspunkte unterschiedlich zu behandeln, was in Abschnitt 3.1 erläutert wird.

Die meisten modernen Stereo-SLAM-Systeme basieren auf Keyframes [7] und lokaler BA-Optimierung für Skalierbarkeit. Die Arbeit von Strasdat et al. [8] verwendet die BA-Optimierung innerhalb des Keyframe-Fensters (Punkt-Pose-Beschränkung) und die Pose-Graph-Optimierung außerhalb des Keyframe-Fensters (Pose-Pose-Optimierung). Durch die Begrenzung der Fenstergröße kann mit dieser Methode eine konstante Zeitkomplexität erreicht werden, es kann jedoch keine globale Konsistenz garantiert werden. Mei et. RSLAM kann den Abschluss der Schleife erreichen, wodurch der Aktivierungsbereich an beiden Enden der Schleife erweitert werden kann, die globale Konsistenz jedoch nicht verbessert werden kann. Das kürzlich von Pire et al. vorgeschlagene S-PTAM [10] übernimmt lokale BA, ihm fehlt jedoch die Funktion, große Schleifen zu schließen. Ähnlich wie bei diesen Methoden übernehmen wir auch BA in der lokalen Keyframe-Sammlung, sodass die Komplexität der Methode nicht durch die Kartengröße beeinflusst wird und wir die Methode in großen Szenen implementieren können. Unser Ziel ist es jedoch, eine weltweit einheitliche Karte zu erstellen. Ähnlich wie bei RSLAM richtet unser System beim Schließen einer Schleife zunächst beide Enden aus, sodass das Tracking-Modul weiterhin mit der alten Karte lokalisieren kann, verwendet dann die Pose-Graph-Optimierung, um die kumulative Drift in der Schleife zu minimieren, und führt dann eine globale BA durch.

Das kürzlich von Engel et al. vorgeschlagene binokulare LSD-SLAM [11] ist eine halbdichte Methode, die den photometrischen Fehler in Regionen mit großen Bildgradienten minimiert. Die Methode soll eine bessere Robustheit in Umgebungen mit Bewegungsunschärfe oder schwachen Texturen erreichen, ohne auf Funktionen angewiesen zu sein. Als direkte Methode nimmt die Leistung dieser Methode jedoch aufgrund nicht modellierter Faktoren wie Rolling Shutter oder nicht-Lambertscher Reflexionen erheblich ab.

2.2 RGB-D SLAM

KinectFusion [4], vorgeschlagen von Newcombe et al., ist eines der frühesten und bekanntesten RGB-D-SLAM-Systeme. Die Methode führt alle Tiefendaten von Sensoren zu einem dichten volumetrischen Modell zusammen und verwendet ICP, um die Kameraposition zu verfolgen. Da das System eine volumetrische Darstellung verwendet und keine Schleifenschlusserkennung aufweist, kann es nur auf kleine Arbeitsbereiche angewendet werden. Kintinuous [12], vorgeschlagen von Whelan et al., verwendet einen rollierenden Ringpuffer und enthält ein Schleifenschlussmodul, das mithilfe von Positionserkennung und Posendiagrammen optimiert ist, sodass es in großen Szenen ausgeführt werden kann.

RGB-D SLAM [13], vorgeschlagen von Endres et al., ist wahrscheinlich das früheste populäre Open-Source-System. Es handelt sich um ein merkmalsbasiertes System. Sein Front-End berechnet die Bewegung zwischen Frames durch Feature-Matching und ICP. Sein Back-End nutzt Pose-Graph-Optimierung und seine Einschränkungen für die Erkennung von Schleifenschließungen werden durch heuristische Suche ermittelt. In ähnlicher Weise verwendet das von Kerl et al. vorgeschlagene Backend von DVO-SLAM [14] ebenfalls eine Pose-Graph-Optimierung, bei der Einschränkungen zwischen Schlüsselbildern durch eine visuelle Odometrie berechnet werden, die fotometrische und Tiefenfehler minimiert. Unterdessen sucht DVO-SLAM heuristisch nach Kandidaten für den Schleifenschluss in allen vorherigen Frames, ohne sich auf die Positionserkennung zu verlassen.

Kürzlich hat ElasticFusion [15], vorgeschlagen von Whelan et al., eine Surfel-Karte der Umgebung erstellt. Dabei handelt es sich um eine Methode, die die Pose ignoriert und die Karte als Kern verwendet. Stattdessen wird eine nicht starre Verformung der Karte verwendet, um einen Schleifenschluss zu erreichen von Die Methode der Pose-Graph-Optimierung wird übernommen. Die Detailrekonstruktion und Positionierungsgenauigkeit des Systems sind ausgezeichnet, aber aufgrund der Komplexität, die die Anzahl der Surfel in der Karte mit sich bringt, ist es derzeit auf die Erstellung einer raumgroßen Karte beschränkt.

Unser ORB-SLAM2-System verwendet eine von Strasdat et al. [8] vorgeschlagene Methode, die Tiefeninformationen verwendet, um Stereokoordinaten für in Bildern extrahierte Merkmale zu synthetisieren. Auf diese Weise kann unser System den Eingang von Stereo oder RGB-D verarbeiten. Im Gegensatz zu allen oben genannten Methoden basiert das Backend unserer Methode auf BA und kann eine global konsistente spärliche Rekonstruktion erhalten. Unsere Methode ist daher leichtgewichtig und kann auf Standard-CPUs ausgeführt werden. Unser Ziel ist eine langfristige und weltweit konsistente Lokalisierung statt einer dichten Rekonstruktion mit mehr Details. Unsere Methode kann jedoch auch die lokale Umgebung in Echtzeit genau rekonstruieren, indem sie eine Tiefenkartenfusion mit hochpräzisen Schlüsselbildposen durchführt oder die Tiefenkarten aller Schlüsselbilder nach globaler BA verarbeitet, um die gesamte Szene zu erhalten. Genaue 3D-Modelle.

3 ORB-SLAM2

ORB-SLAM2 basiert auf binokularen und RGB-D-Kameras und baut auf unserem funktionsbasierten monokularen ORB-SLAM [1] auf. Zur Vereinfachung des Lesers fassen wir hier die Grundkomponenten des monokularen ORB-SLAM zusammen. Ein allgemeiner Überblick über das System ORB-SLAM2 basierend auf binokularen und RGB-D-Kameras baut auf unserem funktionsbasierten monokularen ORB-SLAM auf. Zur Vereinfachung des Lesers fassen wir hier die Grundkomponenten des monokularen ORB-SLAM zusammen. Abbildung 2 ORB-SLAM2 besteht aus drei parallelen Hauptthreads: Tracking, lokale Zuordnung und Schleifenerkennung. Nach der Loopback-Erkennung wird der vierte Thread ausgeführt, um globale BA durchzuführen. Der Tracking-Thread verarbeitet sowohl binokulare als auch RGB-D-Eingaben vor, sodass der Rest des Systems unabhängig von den Eingabesensoren arbeiten kann. Obwohl in dieser Abbildung nicht dargestellt, kann ORB-SLAM2 auch mit monokularem Eingang betrieben werden. Abbildung 2 bietet einen allgemeinen Überblick über das System. Das System verfügt über drei parallele Hauptthreads: 1) Der Tracking-Thread wird verwendet, um die Kameraposition in jedem Bild zu lokalisieren, indem Merkmale und lokale Karten abgeglichen werden und eine Nur-Bewegungs-BA (Nur-Bewegungs-BA) durchgeführt wird, um Reprojektionsfehler zu minimieren; 2) ) Der lokale Mapping-Thread wird zum Verwalten und Optimieren der lokalen Karte verwendet. 3) Der Schleifenerkennungs-Thread wird zum Erkennen großer Schleifen und zum Korrigieren des kumulativen Fehlers durch Ausführen einer Pose-Graph-Optimierung verwendet. Nachdem das Posendiagramm optimiert wurde, startet dieser Thread den vierten Thread, um die globale BA auszuführen und die optimalen Struktur- und Bewegungsergebnisse zu berechnen.

 Abbildung 2 ORB-SLAM2 besteht aus drei parallelen Hauptthreads: Tracking, lokale Zuordnung und Schleifenerkennung. Nach der Loopback-Erkennung wird der vierte Thread ausgeführt, um globale BA durchzuführen. Der Tracking-Thread verarbeitet sowohl binokulare als auch RGB-D-Eingaben vor, sodass der Rest des Systems unabhängig von den Eingabesensoren arbeiten kann. Obwohl in dieser Abbildung nicht dargestellt, kann ORB-SLAM2 auch auf monokularen Eingängen laufen [1]. (a) System-Threads und Module (b) Vorverarbeitung der Eingabe

Das System integriert ein auf DBoW2 [16] basierendes Positionserkennungsmodul, das zur Neulokalisierung im Falle eines Trackingfehlers (z. B. Kollision) oder einer Neuinitialisierung in der kartierten Szene sowie zur Erkennung von Schleifenschließungen verwendet wird. Das System unterhält eine konvisible Karte [8], die alle zwei Keyframes verbindet, die denselben Kartenpunkt beobachten; gleichzeitig unterhält das System auch einen minimalen Spanning Tree, der alle Keyframes verbindet. Diese Kartenstruktur realisiert das Abrufen des lokalen Fensters des Schlüsselbilds, sodass der Tracking-Thread und der lokale Mapping-Thread lokal ausgeführt werden können, sodass sie in einer großen Szene funktionieren können. Gleichzeitig kann die Struktur auch für verwendet werden Pose-Graph-Optimierung während des Schleifenschlusses. Kann als optimierte Graphstruktur verwendet werden.

Das System nutzt die gleichen ORB-Funktionen [17] für Tracking-, Kartierungs- und Ortserkennungsaufgaben. Diese Funktionen sind robust gegenüber Rotations- und Skalierungsänderungen und invariant gegenüber automatischer Kameraverstärkung, automatischer Belichtung und Beleuchtungsänderungen. Darüber hinaus ist die Geschwindigkeit des Extrahierens und Anpassens von ORB-Merkmalen hoch, sodass eine Ausführung in Echtzeit möglich ist, und es zeigt eine gute Präzision/Erinnerung bei der Positionserkennungsaufgabe des Bag-of-Word-Modells [18].

Im Rest dieses Abschnitts zeigen wir, wie Stereo-/Tiefeninformationen genutzt werden und welche Teile des Systems davon betroffen sind. Eine detailliertere Beschreibung der einzelnen Teile des Systems finden Sie in unserem monokularen ORB-SLAM-Artikel [1].

3.1 Monokulare, Nah-Stereo- und Fern-Stereo-Schlüsselpunkte

Als merkmalsbasierte Methode verarbeitet ORB-SLAM2 die Eingabe vor und extrahiert Merkmale an wichtigen Schlüsselpunkten, wie in Abbildung 2b dargestellt. Als nächstes wird das Eingabebild verworfen und alle Berechnungen des Systems basieren auf diesen Merkmalen, sodass das System unabhängig von binokularen oder RGB-D-Eingaben arbeiten kann. Unser System verarbeitet monokulare und stereoskopische Schlüsselpunkte, die weiter in Nah- und Fernpunkte unterteilt werden.

Stereo-Schlüsselpunkte (binokular) werden durch dreidimensionale Koordinaten x_s=(u_L,v_L,u_R )definiert , (u_L,v_L ) bei denen es sich um die Koordinaten des Schlüsselpunkts im linken Bild und u_Rdie horizontalen Koordinaten des Schlüsselpunkts im rechten Bild handelt. Bei binokularen Kameras extrahieren wir ORB-Merkmale gleichzeitig im linken und rechten Bild. Für jedes ORB-Feature im linken Bild suchen wir nach einer entsprechenden Übereinstimmung im rechten Bild. Bei entzerrten binokularen Bildern sind die Epipolarlinien horizontal, sodass die oben genannten Aufgaben sehr effizient erledigt werden können. Dann generieren wir Stereoschlüsselpunkte gemäß den ORB-Feature-Koordinaten im linken Bild und den übereinstimmenden horizontalen Feature-Koordinaten im rechten Bild. Für RGB-D-Kameras extrahieren wir, wie von Strasdat et al. [8] angegeben, ORB-Merkmale im RGB-Bild und  (u_L,v_L ) berechnen für jedes Merkmal mit Koordinaten eine virtuelle rechte Bildkoordinate entsprechend seinem Tiefenwert d:

u_R=u_L-(f_x b)/d

Wo  f_xist die horizontale Brennweite; Bist die Basislinienlänge zwischen dem resultierenden Lichtprojektor und der IR-Kamera, die wir bei den Kinect- und Asus Xtion-Kameras auf etwa 8 cm eingestellt haben. Die Unsicherheit des Tiefensensors wird durch die virtuelle rechte Koordinate dargestellt. Auf diese Weise kann der Rest des Systems Funktionen von Stereo- oder RGB-D-Eingängen auf die gleiche Weise verarbeiten.

Wie in [5] beschrieben gilt: Wenn der Tiefenwert eines Stereo-Schlüsselpunkts weniger als das 40-fache der Basislinienlänge von Binokular/RGB-D beträgt, wird er als Nahpunkt betrachtet, andernfalls wird er als Fernpunkt betrachtet. In der Nähe befindliche Schlüsselpunkte können sicher trianguliert werden, da ihre Tiefe genau geschätzt werden kann und Informationen zu Skalierung, Translation und Rotation bereitgestellt werden. Andererseits liefern entfernte Schlüsselpunkte zwar präzise Rotationsinformationen, aber keine präzisen Skalierungs- und Translationsinformationen. Daher triangulieren wir entfernte Schlüsselpunkte nur dann, wenn sie in mehreren Ansichten vorhanden sind.

x_m=(u_L,v_L)Die monokularen Schlüsselpunkte werden durch die zweidimensionalen Koordinaten im linken Bild  definiert. Wenn die binokulare Anpassung der ORB-Funktion fehlschlägt oder die RGB-D-Kamera ihren effektiven Tiefenwert nicht erhalten kann, wird diese Methode verwendet. Diese Punkte werden in der Mehrfachansicht nur trianguliert und liefern keine Maßstabsinformationen, können aber zur Rotations- und Translationsschätzung verwendet werden.

3.2 Systemstart

Einer der Hauptvorteile der Verwendung einer binokularen oder RGB-D-Kamera besteht darin, dass wir die Tiefeninformationen eines Einzelbildbilds direkt erhalten können, ohne dass eine spezifische SFM-Initialisierung (Struktur aus Bewegung) wie beim monokularen SLAM erforderlich ist. Beim Systemstart erstellen wir einen Keyframe für das erste Bild, legen seine Pose als Anfangspose fest und erstellen aus allen Stereo-Schlüsselpunkten eine Anfangskarte.

3.3 Strahloptimierungsmethode (BA) unter monokularen und binokularen Randbedingungen

Unser System verwendet BA im Tracking-Thread zur Optimierung der Kameraposition (reine Bewegungs-BA), im lokalen Mapping-Thread zur Optimierung lokaler Fenster von Keyframes und Punkten (lokaler BA) und zur Optimierung aller Keyframes und Punkte nach dem Schleifenschluss (globaler BA). ). Zur Optimierung verwenden wir die in g2o [19] implementierte Levenberg-Marquardt-Methode.

Pure Motion BA (Motion-Only BA) optimiert die Rotationsmatrix  \mathbf{R} \in SO(3)und die Position  der Kamera und minimiert den Reprojektionsfehler zwischen dem 3D-Punkt und dem Schlüsselpunkt \mathbf{t}\in \mathbb{R}^{3}im passenden Weltkoordinatensystem   (monokularer Punkt   oder binokularer Punkt  , für alle passenden rechts ):\mathbf{X}^{i}\in \mathbb{R}^{3}\mathbf{x}_{(\cdot)}^{i}\mathbf{x}_{\mathrm{m}}^{i}\mathbb{R}^{2}\mathbf{x}_{\mathrm{s}}^{i}\mathbb{R}^{3}i \in \mathcal{X}

\{\mathbf{R}, \mathbf{t}\}=\interpret{\mathbf{R}, \mathbf{t}}{\operatorname{argmin}} \sum_{i\in \mathcal{X}} \rho\left(\left\|\mathbf{x}_{(\cdot)}^{i}-\pi_{(\cdot)}\left(\mathbf{R}\mathbf{X}^{i }+\mathbf{t}\right)\right\|_{\Sigma}^{2}\right)

 Dabei \rhoist die robuste Huber-Kostenfunktion und \Summedie Kovarianzmatrix der Schlüsselpunktskala. Unter diesen sind die Projektionsfunktion \pi_{(\cdot)}, die monokulare Projektionsfunktion \pi_mund die korrigierte binokulare Projektionsfunktion \pi_swie folgt definiert:

\pi_{\mathrm{m}}\left(\left[\begin{array}{l} X \\ Y \\ Z \end{array}\right]\right)=\left[\begin{array} {l} f_{x} \frac{X}{Z}+c_{x} \\ f_{y} \frac{Y}{Z}+c_{y} \end{array}\right], \pi_ {\mathrm{s}}\left(\left[\begin{array}{l} X \\ Y \\ Z \end{array}\right]\right)=\left[\begin{array}{c } f_{x} \frac{X}{Z}+c_{x} \\ f_{y} \frac{Y}{Z}+c_{y} \\ f_{x} \frac{Xb}{Z }+c_{x} \end{array}\right]

Wo (f_x,f_y)ist die Brennweite, (c_x,c_y)der optische Mittelpunkt Bund die Grundlinienlänge? Diese Werte werden durch Kalibrierung ermittelt.

Globale BA ist ein Sonderfall der lokalen BA, bei der alle Keyframes und Kartenpunkte optimiert werden, mit Ausnahme des anfänglichen Keyframes, der festgelegt ist, um rechnerische Freiheitsgrade zu eliminieren.

Local BA ordnet einen Satz sichtbarer Keyframes \mathcal{K}_Lallen sichtbaren Punkten in diesen Keyframes zu \mathcal{P}_L. Alle anderen Keyframes, die nicht \mathcal{K}_Lin sind, aber auch die Punkte in beobachten , nehmen ebenfalls an der Berechnung der Kostenfunktion teil, werden aber nicht optimiert. Wir definieren den Satz übereinstimmender Paare zwischen Punkten in und Schlüsselpunkten im Keyframe k als und definieren das Optimierungsproblem wie folgt:\mathcal{P}_L\mathcal{K}_F\mathcal{P}_L\mathcal{X}_k

\begin{array}{c}\left\{\mathbf{X}^{i}, \mathbf{R}_{l}, \mathbf{t}_{l} |  i \in \mathcal{P}_{L}, l \in \mathcal{K}_{L}\right\}=\mathbf{X}^{i}, \mathbf{R}_{ l}, \mathbf{t}_{l}}{\operatorname{argmin}} \sum_{k \in \mathcal{K}_{L}\cup \mathcal{K}_{F}} \sum_{ j \in \mathcal{X}_{k}}\rho\left(E_{kj}\right) \\E_{kj}=\left\|\mathbf{x}_{(\cdot)}^{ j}- \pi_{(\cdot)}\left(\mathbf{R}_{k} \mathbf{X}^{j}+\mathbf{t}_{k}\right)\right\|_ {\Sigma }^{2}\end{array}

Globale BA ist ein Sonderfall der lokalen BA, bei der alle Keyframes und Kartenpunkte optimiert werden, mit Ausnahme des anfänglichen Keyframes, der festgelegt ist, um rechnerische Freiheitsgrade zu eliminieren.

3.4 Schleifenerkennung und globale BA

Die Erkennung des Schleifenschlusses erfolgt in zwei Schritten: Der erste Schritt besteht darin, den Schleifenschluss zu erkennen und zu bestätigen, und der zweite Schritt besteht darin, den Schleifenschluss durch Optimierung des Posendiagramms zu korrigieren. Im Vergleich zu monokularem ORB-SLAM, das möglicherweise eine Skalendrift aufweist [20], machen binokulare/Tiefeninformationen die Skala beobachtbar, sodass sich die geometrische Überprüfung und Optimierung des Posendiagramms nicht mehr mit der Skalendrift befassen müssen auf starren Körpern Transformation statt auf Ähnlichkeit basierend.

In ORB-SLAM2 verwenden wir die globale BA-Optimierung, um nach der Posendiagrammoptimierung die optimale Lösung zu erhalten. Dieser Optimierungsprozess kann teuer sein, daher stellen wir ihn in einen separaten Thread, damit das System weiterhin Karten erstellen und Loopbacks erkennen kann. In diesem Fall wird es jedoch schwierig sein, die BA-Ausgabe mit dem aktuellen Kartenstatus zu verknüpfen. Wird während der Optimierung eine neue Schleife gefunden, dann stoppen wir die Optimierung und schließen stattdessen die Schleife, wodurch die globale BA-Optimierung erneut gestartet wird. Wenn die globale BA abgeschlossen ist, muss der durch die globale BA-Optimierung aktualisierte Satz von Keyframes und Punkten mit den nicht aktualisierten Keyframes und Punkten, die während des Optimierungsprozesses eingefügt wurden, zusammengeführt werden. Dies erfolgt durch Weitergabe der Korrektur der aktualisierten Keyframes (Transformation von der nicht optimierten Pose zur optimierten Pose) entlang des Spanning Tree an die nicht aktualisierten Keyframes. Nicht aktualisierte Punkte werden entsprechend der Revision ihres Referenzrahmens transformiert.

3.5 Einfügen von Schlüsselbildern

ORB-SLAM2 folgt der im monokularen ORB-SLAM eingeführten Strategie: häufig Schlüsselbilder einfügen und dann redundante Schlüsselbilder entfernen. Der Unterschied zwischen dem nahen Stereopunkt und dem fernen Stereopunkt ermöglicht es uns, beim Einfügen von Schlüsselbildern eine neue Bedingung einzuführen, die sehr wichtig ist, wenn sich ein großer Teil der Szene in der Umgebung weit entfernt vom Binokularsensor befindet, wie in gezeigt Abbildung 3 dargestellt. In einer solchen Umgebung müssen wir über genügend Nahpunkte verfügen, um die Übersetzung genau abzuschätzen. Wenn also die Anzahl der verfolgten Nahpunkte geringer ist und dieser Rahmen \straff}mindestens \tau_{s}neue Nahstereopunkte erstellen kann, fügt das System „Einfügen“ diesen Rahmen als ein neuer Keyframe. Erfahrungsgemäß ist in unseren Experimenten \tau_{t} = 100, \tau_{s} = 70die Wirkung von .

Abbildung 3 Trackingpunkte in KITTI 01. Grüne Punkte stellen Punkte mit Tiefenwerten dar, die weniger als das 40-fache der Länge der binokularen Basislinie betragen, und blaue Punkte stellen weiter entfernte Punkte dar. Bei dieser Art von Videosequenz ist es notwendig, Schlüsselbilder häufig einzufügen, damit die Gesamtzahl der nahegelegenen Punkte die Anforderung einer genauen Schätzung des Übersetzungsbetrags erfüllt. Entfernte Punkte sind für die Schätzung der Rotation nützlich, jedoch nicht so sehr für die Schätzung der Translation und Skalierung.

3.6 Positionierungsmodus

Unser System verfügt über einen Lokalisierungsmodus, der für eine einfache Langzeitlokalisierung in gut kartierten Regionen effizient ist, solange sich die Umgebung nicht wesentlich ändert. In diesem Modus sind der lokale Mapping-Thread und der Schleifenerkennungs-Thread deaktiviert und die Kamera wird bei Bedarf kontinuierlich durch die Neupositionierungsfunktion des Tracking-Threads neu positioniert. In diesem Modus verwendet der Tracking-Thread übereinstimmende Paare aus der visuellen Odometrie und ordnet sie Kartenpunkten zu. Ein passendes Paar in der visuellen Odometrie bezieht sich auf ein passendes Paar zwischen den ORB-Merkmalen im aktuellen Frame und den 3D-Punkten, die aus den Binokular-/Tiefeninformationen im vorherigen Frame erstellt wurden. Diese übereinstimmenden Paare machen die Lokalisierungsfunktion in nicht kartierten Regionen robuster, leiden jedoch unter einer kumulativen Drift. Der Abgleich mit Kartenpunkten gewährleistet eine driftfreie Positionierung im kartierten Bereich. Dieser Modus wird im beigefügten Video demonstriert und erklärt.

4 Kommentare

Wir bewerten die Leistung von ORB-SLAM2 anhand von drei häufig verwendeten Datensätzen und vergleichen sie mit anderen hochmodernen SLAM-Systemen. Die Bewertungsergebnisse anderer von uns verwendeter SLAM-Systeme basieren auf den Standardbewertungsmetriken im Originalartikel des Autors. Wir führen ORB-SLAM2 auf einem Desktop-Computer mit einem Intel Core i7-4790 und 16 GB RAM aus. Um zu verhindern, dass die Unsicherheit des Multithread-Systems die Bewertungsergebnisse beeinflusst, führen wir jede Datensequenz fünfmal aus und zeigen schließlich den Medianwert der Ergebnisse der Trajektorienschätzungsgenauigkeit an. Unsere Open-Source-Implementierung umfasst Kamerakalibrierung und Anweisungen zum Ausführen des ORB-SLAM2-Systems für diese Datensätze.

4.1 KITTI-Datensatz

Der KITTI-Datensatz [2] umfasst binokulare Videosequenzen, die von Fahrzeugen in städtischen Umgebungen und auf Autobahnen aufgenommen wurden. Die Basislänge des binokularen Sensors beträgt 54 cm, die Arbeitsfrequenz beträgt 10 Hz und die korrigierte Auflösung beträgt 1240×376 Pixel. Wobei die Videosequenzen 00, 02, 05, 06, 07 und 09 Loopbacks enthalten. Unser ORB-SLAM2-System kann alle Schleifenschlüsse erkennen und die Karte anschließend wiederverwenden (mit Ausnahme der Videosequenz 09, da Schleifenschlüsse nur in wenigen Bildern gegen Ende der Sequenz auftreten). Tabelle 1 zeigt die Bewertungsergebnisse von 11 Trainingsvideosequenzen mit öffentlich verfügbaren entsprechenden Grundwahrheiten. Nach unserem besten Wissen können nur binokulare SLAM-Algorithmen detaillierte Ergebnisse für alle oben genannten Videosequenzen liefern, daher vergleichen wir unsere Methode mit dem derzeit besten binokularen LSD-SLAM [11]. Wir verwenden zwei verschiedene Metriken: absolute Übersetzung RMSE t_abs [3], relativer mittlerer Übersetzungsfehler t_rel, relativer mittlerer Rotationsfehler r_rel [2]. Unser System übertrifft binokulares LSD-SLAM bei den meisten Videosequenzen, typischerweise mit einem relativen Fehler von weniger als 1 %. Die in Abbildung 3 gezeigte Videosequenz ist die einzige Videosequenz auf der Autobahn im Trainingssatz und ihr Übersetzungsfehler ist etwas schlimmer. In dieser Sequenz ist es schwieriger, den Umfang der Übersetzung abzuschätzen, da die hohe Geschwindigkeit und die niedrige Bildrate dazu führen, dass nur sehr wenige Punkte verfolgt werden. Allerdings ist die geschätzte Rotation mit einem Fehler von nur 0,21 Grad pro 100 Meter sehr genau, da es viele entfernte Punkte gibt, die über einen langen Zeitraum verfolgt werden können. Abbildung 4 zeigt einige Beispiele geschätzter Trajektorien.

Tabelle 1 Vergleich der Genauigkeit jedes SLAM-Systems im KITTI-Datensatz

 

 Abbildung 4 Geschätzte Flugbahnen (schwarz) und Grundwahrheit (rot) in KITTI 00, 01, 05, 07: Im Vergleich zu den monokularen ORB-SLAM-Ergebnissen in [1] kann die in diesem Artikel vorgeschlagene binokulare Version die monokulare Systemverarbeitung verarbeiten. Kein Video Sequenz 01. Aus Abbildung 3 ist ersichtlich, dass in dieser Autobahnsequenz Nahpunkte nur in wenigen Bildern weiterhin auftreten können. Die binokulare Version kann Kartenpunkte basierend auf einem Stereo-Keyframe erstellen, ohne dass eine Stereoversion erforderlich ist, die nur einen Stereo-Keyframe zum Erstellen von Kartenpunkten benötigt, anstatt eine verzögerte Initialisierung wie Monocular zu verwenden (in zwei Keyframes nach passenden Paaren suchen), was macht Es ist weniger wahrscheinlich, dass es in dieser Reihenfolge verloren geht. Darüber hinaus können Stereosysteme den Maßstab von Karten und Trajektorien ohne Maßstabsabweichung abschätzen.

Abbildung 5. Geschätzte Flugbahnen (schwarz) und Grundwahrheit (rot) in KITTI 08. Links: Monokulares ORB-SLAM [1]; Rechts: ORB-SLAM2 (binokular). Monokulares ORBSLAM erzeugt in dieser Sequenz eine starke Skalendrift, insbesondere bei Kurvenfahrten. Im Vergleich dazu kann die in diesem Artikel vorgeschlagene binokulare Version den genauen Maßstab von Flugbahnen und Karten ohne Maßstabsabweichung gut abschätzen.

4.2 EuRoC-Datensatz

Der aktuelle EuRoc-Datensatz [21] enthält 11 binokulare Videosequenzen, die von einem unbemannten Mikro-Luftfahrzeug (MAV) in zwei verschiedenen Häusern und einer großen Industrieumgebung aufgenommen wurden. Der binokulare Sensor hat eine Basislinienlänge von 11 cm und gibt WVGA-Bilder mit 20 Hz aus. Diese Videosequenzen werden je nach Geschwindigkeit der Mikrodrohne, Lichtverhältnissen und Textur der Szene in leicht, mittel und schwierig kategorisiert. In allen Videosequenzen kehren die Mikrodrohnen an Orte zurück, an denen sie zuvor waren, sodass das ORB-SLAM2-System bei Bedarf Karten wiederverwenden oder Schleifen schließen kann. Tabelle 2 zeigt den quadratischen Mittelfehler des absoluten Translationsbetrags von ORB-SLAM2 und binokularem LSD-SLAM [11] in allen Videosequenzen dieses Datensatzes. Die Positionierungsgenauigkeit von ORB-SLAM2 erreicht Zentimeter-Niveau und ist damit höher als die des binokularen LSD-SLAM. Einige Teile der V2_03_difficult-Sequenz gehen unserem Tracking-Modul aufgrund starker Bewegungsunschärfe verloren. Wie in [22] beschrieben, kann diese Sequenz durch Hinzufügen von Informationen zur Inertialmesseinheit (IMU) verarbeitet werden. Abbildung 6 zeigt den Vergleich zwischen einigen berechneten Flugbahnschätzungen und der Grundwahrheit.

Tabelle 2 EuRoC-Datensatz: Vergleich der Ergebnisse des Übersetzungs-Root-Mean-Square-Errors (RMSE).

Abb. 6 Geschätzte Flugbahnen (schwarz) und wahre Werte (rot) in den Sequenzen EuRoC V1 02 mittel, V2 02 mittel, MH 03 mittel und MH 05 schwierig.

4.3 TUM RGB-D-Datensatz

Der TUM RGB-D-Datensatz [3] besteht aus Innenvideosequenzen, die von RGB-D-Sensoren erfasst wurden und in mehrere Kategorien gruppiert sind, um Objektrekonstruktions- und SLAM-/Odometriemethoden unter verschiedenen Textur-, Beleuchtungs- und Strukturbedingungen zu bewerten. Wirkung. Wir zeigen Bewertungsergebnisse für mehrere Videosequenzen, die am häufigsten zur Bewertung von RGB-D-Methoden verwendet werden. In Tabelle 3 vergleichen wir die Genauigkeit unserer Methode mit den derzeit besten Methoden (ElasticFusion [15], Kintinuous [12], DVO-SLAM [14], RGB-D SLAM [13]). Unsere Methode ist die einzige BA- basierte Methode, und ihre Wirkung ist in den meisten Sequenzen besser als bei anderen Methoden. Wir haben beobachtet, dass der RGB-D-SLAM in [1] eine Skalenabweichung von 4 % in der Tiefenkarte der Freiburg-2-Sequenz aufweist, die möglicherweise durch eine falsche Kalibrierung verursacht wurde, und haben dies daher im laufenden Betrieb kompensiert. Dies erklärt teilweise unsere guten Ergebnisse. Abbildung 7 zeigt die Punktwolkenergebnisse, die durch Rückprojektion der Sensortiefenkarte gemäß den berechneten Keyframe-Posen in vier Videosequenzen erhalten wurden. Experimentelle Ergebnisse zeigen, dass unsere Methode die Umrisse von Tischen und Postern gut rekonstruiert, was zeigt, dass unsere Methode eine hohe Lokalisierungsgenauigkeit aufweist.

Tabelle 3 TUM RGB-D-Datensatz: Vergleich der Ergebnisse des quadratischen Mittelwerts der Übersetzung

Abbildung 7 Rekonstruktion einer dichten Punktwolke der TUM RGB-D-Sequenzen fr3_office, fr1_room, fr2_desk, fr3_nst basierend auf der geschätzten Keyframe-Pose und der Sensortiefenkarte.

4.4 Timing-Ergebnisse

Um unser vorgeschlagenes System umfassender zu bewerten, zeigen wir in Tabelle 4 den Rechenzeitverbrauch unter verschiedenen Bildauflösungen und Sensorbedingungen in drei Videosequenzen. Wir zeigen die durchschnittlich verstrichene Zeit pro Thread und ihren Bereich von zwei Standardabweichungen. Da diese Sequenzen aus einer einzelnen Schleife bestehen, müssen einige Aufgaben der globalen BA- und Schleifenerkennungsthreads nur einmal ausgeführt werden, sodass wir nur eine einzige Zeitmessung zeigen. Die durchschnittliche Tracking-Zeit pro Bild in jeder Sequenz ist geringer als der Kehrwert der Bildrate der Kamera, was bedeutet, dass unser System in Echtzeit laufen kann. Da die ORB-Merkmalsextraktion in den binokularen linken und rechten Bildern parallel erfolgt, ist ersichtlich, dass die Geschwindigkeit der Extraktion von 1000 ORB-Merkmalen im binokularen WVGA-Bild der V2_02-Sequenz dieselbe ist wie im einzelnen VGA-Bildkanal von fr3_office Quantitative Funktionen benötigen ungefähr die gleiche Zeit.

Tabelle 4 Berechnungszeit pro Thread/ms (Mittelwert ± 2 Standardabweichungen)

Wir zeigen die Anzahl der Keyframes im Schleifenschluss, die als Referenz für den Zeitaufwand der Schleifenschlusserkennung dient. Obwohl die KITTI 07-Sequenz mehr Keyframes enthält, ist das Sichtbarkeitsdiagramm der fr3_office-Innensequenz dichter, sodass der Aufwand für die Schleifenschlussfusion, Posendiagrammoptimierung und globale BA größer ist. Je dichter das Sichtbarkeitsdiagramm, desto mehr Off-Frames und Punkte enthält die lokale Karte, sodass der Aufwand für die lokale Kartenverfolgung und die lokale BA größer ist.

5. Schlussfolgerung

Wir schlagen ein komplettes SLAM-System vor, das auf monokularen, binokularen oder RGB-D-Sensoren basiert und eine Neulokalisierung, Schleifenschließung und Kartenwiederverwendung in Echtzeit auf einer Standard-CPU realisieren kann. Unser Fokus liegt auf der Erstellung global konsistenter Karten für die langfristige Lokalisierung in den in unseren Experimenten vorgestellten großräumigen Umgebungen. Unser vorgeschlagenes Lokalisierungsschema einschließlich Relokalisierung ist eine robuste, driftfreie und leichte Lokalisierungsmethode in bekannten Umgebungen. Dieser Modus kann für bestimmte Anwendungen angepasst werden, beispielsweise um den Blickwinkel des Benutzers in der virtuellen Realität zu verfolgen, wo die Umgebung gut kartiert ist.

Im Vergleich zu den besten aktuellen SLAM-Systemen erreicht ORB in den meisten Fällen die höchste Genauigkeit. Im visuellen Odometrie-Benchmark von KITTI ist ORB-SLAM2 derzeit die beste binokulare SLAM-Lösung. Wichtig ist, dass ORB-SLAM2 im Vergleich zur kürzlich populären Methode der binokularen visuellen Odometrie eine driftfreie Lokalisierung im kartierten Bereich erreicht.

Überraschenderweise zeigen unsere RGB-D-Ergebnisse, dass BA eine bessere Leistung erbringt als direkte Methoden oder ICP, wenn eine Kameralokalisierung mit höchster Genauigkeit erforderlich ist. Außerdem ist sie weniger rechenintensiv und kann in Echtzeit durchgeführt werden, ohne auf den GPU-Lauf angewiesen zu sein.

Wir veröffentlichen den Systemquellcode, Beispiele und Anweisungen, damit andere Forscher das System problemlos nutzen können. Nach unserem besten Wissen ist ORB-SLAM2 das erste visuelle Open-Source-SLAM-System, das mit monokularen, binokularen oder RGB-D-Eingaben arbeitet. Darüber hinaus enthält unser Quellcode ein Augmented-Reality-Anwendungsbeispiel mit einer Monokularkamera, um die Möglichkeiten unserer Lösung zu demonstrieren.

Zukünftige Forschungsrichtungen könnten Folgendes umfassen: nicht überlappende Mehrfachkameras, Fischaugenkameras, Unterstützung für Panoramakameras, groß angelegte dichte Fusion, kollaborative Kartierung und verbesserte Robustheit gegenüber Bewegungsunschärfe.

Nachgedruckt in: https://www.cnblogs.com/MingruiYu/p/12991119.html

Ich denke du magst

Origin blog.csdn.net/weixin_58045467/article/details/130887883
Empfohlen
Rangfolge