-
[Technisches Gebiet]
-
Diese Erfindung bezieht sich allgemein auf die Registrierung dreidimensionaler (3D) Daten und insbesondere auf das Registrieren von 3D-Punkten und 3D-Ebenen miteinander für Echtzeit-Rekonstruktionsanwendungen.
-
[Stand der Technik]
-
3D-Rekonstruktion
-
Interaktive und Echtzeit-3D-Rekonstruktionen einer Szene werden bei einer Anzahl von Anwendungen verwendet, beispielsweise Robotertechnik, vergrößerte Realität, medizinische Abbildung und Computerabbildung. 3D-Rekonstruktionen geringer und hoher Dichte in Echtzeit können passive Sensoren wie Kameras verwenden. Jedoch haben passive Sensoren Schwierigkeiten, texturlose Bereiche zu rekonstruieren.
-
Zum Rekonstruieren texturloser Bereiche können aktive 3D-Sensoren verwendet werden. Beispielsweise verwendet der Kinect-Sensor für die Microsoft Xbox ein IR-Muster zum Erwerben von 3D-Daten als eine Tiefenkarte in Echtzeit von dem Betrachtungspunkt des Sensors aus.
-
Andere Probleme beziehen sich auf die Verarbeitungszeit, die Speicheranforderungen und die Genauigkeit. Aufgrund des Gesichtsfelds und der Auflösung erzeugen 3D-Sensoren üblicherweise eine Teilrekonstruktion einer Szene. Es ist erwünscht, ein genaues und schnelles Registrierungsverfahren vorzusehen, das aufeinanderfolgende Tiefenteilkarten und ein Modell der Szene kombinieren kann. Trägheitssensoren haben die Neigung, zu driften. Daher müssen die Merkmale in einem RGB(Textur)-Bild oder einer Tiefenkarte für eine genaue Registrierung verlässlich sein. Zusätzlich sind Tiefenkarten gewöhnlich störungsbehaftet ohne eine räumliche Randbedingung mit höherem Pegel. Weiterhin erfordert die Punktwolke einen sehr großen Speicher und ist schwierig zu komprimieren.
-
3D-zu-3D-Registrierung
-
Lokal
-
Ausrichtung oder Registrierung von 3D-Daten ist ein fundamentales Problem bei Computerabbildungsanwendungen, das durch Anwendung mehrerer Verfahren gelöst werden kann. Die Registrierungsverfahren können lokal oder global sein. Die lokalen Verfahren sollten mit einer guten Initialisierung beginnen und zwei 3D-Punktwolken unter Verwendung relativ kleiner iterativer Bewegungen registrieren. Dies ist ähnlich einem nichtlinearen Minimierungsverfahren, das zu einer globalen Lösung mit einer guten anfänglichen Lösung konvergiert. Das üblichste lokale Verfahren ist ein iteratives Verfahren für den nächstliegenden Punkt (ICP), das iterativ entsprechende 3D-Punkte und die Bewegungen unter Verwendung einer Lösung in geschlossener Form bestimmt.
-
Global
-
Globale Verfahren berücksichtigen typischerweise die gesamte 3D-Punktwolke, identifizieren einige geometrische Schlüsselmerkmale (Grundelemente), passen die Merkmale über Punktwolken an und erzeugen eine optimale Hypothese unter Verwendung eines minimalen Satzes von Entsprechungen unter Verwendung eines RANdom Sample Consensus(RANSAC)-Vorgangs. Der durch globale Verfahren erhaltenen groben Registrierung folgt üblicherweise eine lokale, nichtlineare Verfeinerung. Globale Verfahren erfordern anders als lokale Verfahren keine Initialisierung. Jedoch können globale Verfahren unter nicht korrekten und ungenügenden Entsprechungen leiden. Die geometrischen Grundelemente, die typischerweise bei globalen Verfahren verwendet werden, sind entweder Punkte, Linien oder Ebenen.
-
Mehrere globale Registrierungsverfahren, die homogene und heterogene Entsprechungen verwenden, sind bekannt. Beispielsweise ist es möglich, eine Lösung in geschlossener Form für die Registrierung gegebener Punkt-zu-Punkt-, Linie-zu-Linie-, Ebene-zu-Ebene-, Punkt-zu-Linie-, Punkt-zu-Ebene- oder Linie-zu-Ebene-Entsprechungen zu bestimmen. Ein Verfahren erhält eine globale optimale Lösung von Punkt-zu-Punkt-, Punkt-zu-Linie- und Punkt-zu-Ebene-Entsprechungen unter Verwendung von Verzweigung-und-Grenze. Ein anderes Verfahren verwendet Verzweigung-und-Grenze, um die optimalen Entsprechungen sowie eine Transformation für das Punkt-zu-Punkt-Registrierungsproblem zu erhalten.
-
SLAM unter Verwendung von 3D-Sensoren
-
In der mobilen Robotertechnik verwenden einige auf 3D-Sensoren basierende Verfahren ein System für gleichzeitige Lokalisierung und Abbildung (SLAM) zum Bestimmen einer Bewegung des Sensors sowie zum Rekonstruieren einer Szenenstruktur. Derartige Verfahren verwenden typischerweise geometrische Merkmale wie Punkt-, Linien- oder Ebenengrundelemente. 3D-Sensoren, die eine ebene Scheibe von 3D-Daten vorsehen, wie 2D-Laserabtaster oder Ultraschallsensoren, können verwendet werden zum Bestimmen einer ebenen Bewegung mit drei Freiheitsgraden (DOF). 3D-Sensoren, die vollständige 3D-Punktwolken vorsehen, wie strukturierte Lichtabtaster, 2D-Laserabtaster, die an sich bewegenden Bühnen angebracht sind, und der Kinect-Sensor können zum Bestimmen von Bewegungen mit sechs DOF verwendet werden.
-
Das RGB-D-Abbilden zieht Schlüsselpunkte aus RGB-Bildern heraus, führt eine Rückprojektion der Punkte in 3D unter Verwendung von Tiefenkarten durch und verwendet drei Punkt-zu-Punkt-Entsprechungen, um eine anfängliche Schätzung der Positur unter Verwendung des RANSAC-Vorgangs zu bestimmen, die weiterhin unter Verwendung des ICP-Verfahrens verfeinert wird.
-
Ein anderes Verfahren verwendet drei Ebene-zu-Ebene-Korrespondenzen in einem SLAM-System mit 3D-Sensoren. Dieses Verfahren wendet sich dem Entsprechungsproblem unter Verwendung geometrischer Randbedingungen zwischen Ebenen zu.
-
Ein anderes Verfahren verwendet eine Kombination von kleinerem Gesichtsfeld(FOV)-3D-Sensor und einem größeren FOV-2D-Laserabtaster für das SLAM-System unter Verwendung sowohl von Ebenen als auch von Liniensegmenten als Grundformen. Dieses Verfahren ist für ein sequentielles SLAM-System entworfen, das ein lokales Registrierungsproblem löst, und kann eine globale Registrierung nicht lösen.
-
KinectFusion registriert eine gegenwärtige Tiefenkarte mit einer virtuellen Tiefenkarte, die aus einer Darstellung einer globalen abgeschnittenen, mit Vorzeichen versehenen Abstandsfunktion (TSDF) durch Verwendung eines ICP-Verfahrens von grob zu fein erzeugt wurde. Die TSDF-Darstellung integriert alle vorhergehenden Tiefenkarten, die in ein globales Koordinatensystem registriert sind, und ermöglicht die Erzeugung einer Tiefenkarte höherer Qualität als die Verwendung eines einzelnen Bildes.
-
Mehrere andere Varianten des ICP-Verfahrens sind bekannt, aber die Varianten leiden noch unter Problemen lokaler Minima, wenn die beiden 3D-Punktwolken verschieden sind. Registrierungsverfahren oder SLAM-Systeme, die nur von Punkten abhängig sind, leiden unter ungenügenden oder nicht korrekten Entsprechungen in texturlosen Bereichen oder Bereichen mit wiederholten Mustern. Auf Ebenen basierende Techniken leiden unter Degenerationsproblemen in Szenen, die eine nicht ausreichende Anzahl von nichtparallelen Ebenen enthalten.
-
Mit 3D-Sensoren wie dem Kinect-Sensor sind Linienentsprechungen schwierig zu erhalten aufgrund von gestörten oder fehlenden Tiefenwerten um Tiefendiskontinuitäten herum.
-
[Zusammenfassung der Erfindung]
-
Die Ausführungsbeispiele der Erfindung sehen ein Verfahren zum Registrieren von Daten in zwei verschiedenen Koordinatensystemen vor. Das Verfahren verwendet sowohl Punkte als auch Ebenen als Registrierungsgrundelemente. Das Verfahren kann von einem System für gleichzeitige Lokalisierung und Abbildung (SLAM) unter Verwendung von 3D-Sensoren angewendet werden. Das SLAM-System ist eine Anwendung unseres Registrierungsverfahrens.
-
Mit dem Verfahren ist es möglich, 3D-Datensätze in zwei verschiedenen Koordinatensystemen unter Verwendung jeder Kombination von zumindest drei Punkt- und Ebenengrundformaten zu registrieren, d. h., drei Ebenen, zwei Ebenen und ein Punkt, eine Ebene und zwei Punkte, und drei Punkte. Das Verfahren ist besonders befasst mit einem Satz von gemischten (heterogenen) Grundelementen, d. h., zumindest zwei 3D-Punkten und zumindest einer 3D-Ebene, oder zumindest einem 3D-Punkt und zumindest zwei 3D-Ebenen.
-
Das heißt, das Verfahren kann einen minimalen Satz von drei Grundelementen und einen RANSAC-Vorgang verwenden, um 3D-Daten zu registrieren und eine Szene zu rekonstruieren. Da die Anzahl von Ebenen in 3D-Daten beträchtlich kleiner als die Anzahl von Punkten ist, verwendet der bei den bevorzugten Ausführungsbeispielen durchgeführte RANSAC-Vorgang eine Grundelementenkombination, die mehr Ebenen als Punkte einbezieht, beispielsweise minimal zwei Ebenen und einen Punkt.
-
Im Gegensatz zu Verfahren nach dem Stand der Technik, die hauptsächlich Punkte für die Registrierung verwenden, hat das vorliegende Verfahren die folgenden Vorteile. Die Entsprechungssuche und die Registrierung sind schneller aufgrund der kleineren Anzahl von ebenen Grundelementen, und können in Echtzeit durchgeführt werden. Das Verfahren erzeugt auf Ebenen basierende 3D-Modelle, die kompakter als auf Punkten basierende Modelle sind. Das Verfahren sieht eine globale Registrierung vor, ohne unter lokalen Minima oder Initialisierungsproblemen wie bei den lokalen Registrierungsverfahren nach dem Stand der Technik zu leiden.
-
[Kurzbeschreibung der Zeichnungen]
-
1 ist eine schematische Darstellung eines Registrierungsverfahrens gemäß Ausführungsbeispielen der Erfindung;
-
2 ist ein Flussdiagramm eines Systems für gleichzeitige Lokalisierung und Abbildung (SLAM) unter Verwendung des Registrierungsverfahrens nach den Ausführungsbeispielen der Erfindung;
-
3 ist eine schematische Darstellung eines RANSAC-Vorgangs, der von Ausführungsbeispielen der Erfindung verwendet wird; und
-
4 ist eine schematische Darstellung eines gemischten, auf Ebene und Punkt basierenden Modells nach Ausführungsbeispielen der Erfindung.
-
[Beschreibung von Ausführungsbeispielen]
-
Die Ausführungsbeispiele der Erfindung sehen ein Verfahren zum Registrieren von 3D-Daten in zwei verschiedenen Koordinatensystemen vor. Wie in 1 gezeigt ist, kann das Verfahren in einem Prozessor 150 durchgeführt werden, der mit einem Speicher und Eingabe/Ausgabe-Schnittstellen verbunden ist, wie im Stand der Technik bekannt ist.
-
1 zeigt eine schematische Darstellung des Registrierungsverfahrens 100. Das Registrierungsverfahren bestimmt eine Transformation 105 eines starren Körpers mit 6 DOF zwischen zwei verschiedenen Koordinatensystemen 101 und 102 durch Verwendung von zwei Sätzen aus zumindest drei Grundelementen, die aus 3D-Daten in den zwei verschiedenen Koordinatensystemen ausgewählt sind. Die Grundelemente enthalten 3D-Punkte 110 und 3D-Ebenen 120. Die drei Grundelemente in jedem Satz enthalten zumindest eine 3D-Ebene, zumindest einen 3D-Punkt und ein drittes Grundelement, das entweder ein Punkt oder eine Ebene sein kann. Ebenen in den zwei Sätzen sind mit Ebenen registriert, und Punkte sind mit Punkten registriert. Das Registrierungsverfahren kann global sein und in Echtzeit durchgeführt werden.
-
Das Registrierungsverfahren kann durch ein System zur gleichzeitigen Lokalisierung und Abbildung (SLAM) verwendet werden, wie in 2 gezeigt ist. Das SLAM-System ist eine Anwendung unseres Registrierungsverfahrens. Das System kann in einen Prozessor 200 implementiert werden, der mit einem Speicher und Eingabe/Ausgabe-Schnittstellen verbunden ist, wie im Stand der Technik bekannt ist. Eine beispielhafte Eingabe 201 in das SLAM-System ist ein Satz von einer oder mehreren Tiefenkarten 202. Eine Tiefenkarte beschreibt einen Tiefenwert (Abstand) jedes Pixels in der Karte, wodurch eine 3D-Punktwolke durch Rückprojektion der Pixel in der Karte gemäß ihren Tiefenwerten erhalten wird. Das SLAM-System kann wahlweise einen Satz von einem oder mehreren 2D-Texturbildern 203 entsprechend den Tiefenkarten erwerben. Die Texturbilder können graustufig sein oder RGB-Farbkanäle haben. Die Tiefenkarten können durch einen 3D-Sensor erworben werden, z. B. eine passive Stereokamera 204 oder eine aktive IR- oder Laserabtastvorrichtung 205, während die Texturbilder durch eine Kamera erworben werden können, beispielsweise eine einzelne Kamera in der Stereokamera 204 oder eine dedizierte Kamera 206. Der 3D-Sensor und die Kamera können von einem Menschen in der Hand gehalten werden, oder sie können von einer Maschine, beispielsweise einem Roboterarm oder einer sich mechanisch bewegenden Bühne gehalten werden. Das Schlüsselkonzept besteht darin, dass die Eingabe durch bewegbare Sensoren erworben werden kann; unser Registrierungsverfahren bestimmt die Bewegung der Sensoren und rekonstruiert eine Szene durch Registrieren von 3D-Punktwolken, die an verschiedenen Betrachtungspunkten erworben wurden.
-
Unser SLAM-System wählt 210 einen Satz von 3D-Punkt- und 3D-Ebenen-Grundelementen aus der Eingabe (als Messungen 211 bezeichnet) aus und registriert 220 die Punkte und Ebenen mit Bezug auf einen Satz von Punkt- und Ebenen-Grundelementen in einer globalen Karte 225 (als Wahrzeichen 221 bezeichnet). Jeder Satz enthält zumindest einen 3D-Punkt und zumindest eine 3D-Ebene. Die dritten Grundelemente in den Sätzen können entweder beide Punkte oder beide Ebenen sein. Die Registrierung wird durch Registrieren der Punkte mit Punkten in den beiden Sätzen und der Ebenen mit Ebenen in den beiden Sätzen durchgeführt.
-
Das SLAM-System führt das Registrierungsverfahren mit einem RANdom Sample Consensus(RANSAC)-Vorgang 220 unter Verwendung der minimal drei Grundelemente durch. Eine Optimierung 230 kann auf die globale Karte angewendet werden, wenn zusätzliche Eingaben erworben werden.
-
3D-Punkte
-
Unser SLAM-System wählt einen oder mehrere Schlüsselpunkte in der 3D-Punktquelle aus, um die 3D-Punkt-Grundelemente zu erhalten. Die Schlüsselpunkte können unter Verwendung von 3D-Schlüsselpunktdetektoren aus der 3D-Punktquelle ohne Verwendung eines Texturbilds ausgewählt werden. Beispielhafte 3D-Schlüsselpunktdetektoren enthalten normal ausgerichtetes Radialmerkmal (NARF) und beschleunigtes 3D-Robustmerkmal (SURF). Alternativ kann das System 2D-Schlüsselpunkte aus jedem Texturbild unter Verwendung von 2D-Schlüsselpunktdetektoren auswählen und die Schlüsselpunkte unter Verwendung des entsprechenden Tiefenwerts rückprojizieren, um die 3D-Punkt-Grundelemente zu erhalten. Beispielhafte 2D-Schlüsselpunktdetektoren enthalten skaleninvariante Merkmalstransformation (SIFT) und beschleunigtes Robustmerkmal (SURF). Derartige 3D- und 2D-Schlüsselpunktdetektoren liefern auch einen Merkmalsdeskriptor für jeden erfassten Schlüsselpunkt.
-
Jedes Punkt-Grundelement wird durch eine Position pm und einen Deskriptor Dm dargestellt, (pm, Dm) eines Schlüsselpunkts. Der Deskriptor kann verwendet werden, um die 3D-Punkt-Grundelemente zwischen den Messungen und Wahrzeichen anzupassen.
-
3D-Ebenen
-
Um Ebenen aus der 3D-Punktwolke auszuwählen, verwenden wir den folgenden iterativen Vorgang:
- 1. Wahlloses Auswählen eines Satzes von Bezugspunkten in der 3D-Punktwolke;
- 2. Bestimmen einer optimalen Ebene für jeden Bezugspunkt unter Verwendung von nahen Punkten innerhalb eines lokalen Fensters;
- 3. Bestimmen alle Innenliegenden, die eine verbundene Komponente mit dem Bezugspunkt hinsichtlich eines Gitterdiagramms der Tiefenkarte bilden;
- 4. Identifizieren einer optimalen Ebene mit einer ausreichenden und maximalen Anzahl von Innenliegenden; und
- 5. Entfernen von Innenliegenden aus der 3D-Punktwolke.
-
Jedes Ebenen-Grundelement wird dargestellt durch Ebenenparameter πm und einen Satz von Innenliegenden Im. Die Ebenenparameter bilden einen 4D-Vektor πm = (n T / m , dm)T, wobei nm Normaleinheitsvektor ist, und dm ein Abstand zu dem Ursprung des Koordinatensystems ist.
-
Registrierung
-
Eine Positur 240 des Sensors (d. h., eine Transformation eines starren Körpers mit 6-DOF in Bezug auf ein Koordinatensystem der globalen Karte) wir bestimmt durch Registrieren der Grundelemente in den Messungen mit Bezug auf die Grundelemente in den Wahrzeichen auf der globalen Karte. Ein Registrierungsverfahren, das sowohl Punkte als auch Ebenen verwendet, und unser RANSAC-Vorgang werden nachfolgend beschrieben.
-
Kartenaktualisierung
-
Unser SLAM-System aktualisiert 250 die globale Karte durch Hinzufügen von Punkt- und Ebenen-Grundelementen, die aus Schlüsselrahmen ausgewählt wurden. Der gegenwärtige Rahmen wird nur dann als ein Schlüsselrahmen angesehen, wenn die Positur ausreichend verschieden von vorhergehenden Schlüsselrahmen ist (z. B. die Translation und die Drehung des gegenwärtigen Rahmens sind verschieden von den Translationen und Drehungen der vorhergehenden Schlüsselrahmen um mehr als vorbestimmte Schwellenwerte). Jedes Punkt-Wahrzeichen wird dargestellt durch die Position pl und den Deskriptor Dl als ((pl, Dl). Jedes Ebenen-Wahrzeichen wird durch Ebenen-Para meter = (n T / l , dl)T und einen Satz von Innenliegenden Il als ((πl, Il) dargestellt.
-
Kartenoptimierung
-
Um die Registrierung zwischen allen Schlüsselrahmen gemeinsam zu verfeinern, führt unser SLAM-System eine Optimierung 230 durch Bündeleinstellung durch, wobei sowohl die Punkte als auch die Ebenen verwendet werden. Die Bündeleinstellung wird in einem getrennten Teilprozess asynchron zu einem Hauptprozess zum Verfolgen der Kamerapositur unter Verwendung des Registrierungsverfahrens durchgeführt. Die Einzelheiten der Bündeleinstellung werden nachfolgend beschrieben.
-
Registrierung unter Verwendung von Punkten und Ebenen
-
Unser Registrierungsverfahren verwendet Punkt-zu-Punkt- und Ebene-zu-Ebene-Entsprechungen und liefert eine Lösung in geschlossener Form. Das Verfahren ist anwendbar auf drei oder mehr Entsprechungen. Somit kann das Verfahren zum Erzeugen von Hypothesen unter Verwendung der minimalen Anzahl von drei Entsprechungen in unserem RANSAC-Vorgang verwendet werden, sowie zum Verfeinern der anfänglichen Hypothese, die durch den RANSAC-Vorgang unter Verwendung der Entsprechungen sämtlicher Innenliegender gegeben ist.
-
Lösung in geschlossener Form für gemischte Punkt-zu-Punkt- und Ebene-zu-Ebene-Entsprechungen
-
Es seien {pi} und {p'i}, i = 1, ..., M, entsprechende 3D-Punkte, und {πj =(nj T, dj)T} und {π'j = (n'j T, d'j)T}, j = 1, ..., N, seien entsprechende 3D-Ebenen in zwei verschiedenen Koordinatensystemen. Wir bestimmen eine Transformation [R, t] eines starren Körpers mit 6-DOF zwischen den Koordinatensystemen, wobei R eine 3×3-Rotationsmatrix ist und t ein 3 × 1-Translationsvektor ist.
-
Lösungen für individuelle Fälle
-
Für Punkt-zu-Punkt-Entsprechungen können die Rotations- und Translationskomponenten entkoppelt werden. Es seien
p =
1 / M Σ
ip
i und
p ' =
1 / M Σ
ip'
i die Flächenschwerpunkte der 3D-Punktsätze, und q
i = p
i –
p und q'
i = p'
i –
p '. Dann wird eine Fehlerquadraturlösung für die Rotation, die den Fehler minimiert
erhalten durch Verwenden einer Quaterniondarstellung der Drehung oder einer Singularwert-Zerlegung (SVD). Unter Verwendung der geschätzten Rotation R ist die Translation eine Differenz zwischen den gedrehten Flächenschwerpunkten
t ^ = p' – R ^p. (2)
-
Für den Fall der Ebene-zu-Ebene-Entsprechung wird die Rotation durch Minimieren des Fehlers
erhalten, der ähnlich dem Fall der Punkt-zu-Punkt-Korrespondenzen gelöst werden kann. Zum Bestimmen der Translation können wir die folgende lineare Randbedingungen für drei oder mehr Ebenen stapeln und das lineare System lösen:
n'j Tt = d'j – dj. (4) Hier ist
T ein Transponierungsoperator.
-
Lösung für gemischten Fall
-
Für den gemischten Fall haben wir Punkt-zu-Punkt- und Ebene-zu-Ebene-Entsprechungen. Wir nutzen die in den individuellen Fällen verwendete Entkopplung aus, um die Rotation und die Translation zu bestimmen. Um die Rotation zu bestimmen, kombinieren wir die Gleichungen (1) und (3) als
worin w
j die Gewichte für Ebenen sind, die sich für jede Ebenenentsprechung ändern können. Gleichung (5) teilt dieselbe Form wie die Gleichungen (1) und (3), und die optimale Rotation wird in derselben Weise erhalten. Insbesondere definieren wir eine 3×3-Korrelationsmatrix K als
-
Es sei K = UDV
T eine Singularwert-Zerlegung (SVD) von K. Dann beträgt die optimale Drehung R ^
-
Um die Translation t zu bestimmen, minimieren wir den folgenden Fehler:
-
Dies entspricht dem Definieren eines linearen Systems
mit einer diagonalen Gewichtsmatrix W = diag(M, M, M, W
1, ...,W
N). Dann ist eine gewichtete Fehlerquadraturlösung t = (A
TWA)
–1A
TWb.
-
Degenerierungsprobleme
-
Zum einmaligen Auswählen von R und t sollten die Korrelationsmatrix K in Gleichung (6) und die Matrix in Gleichung (9) bestimmten Bedingungen genügen. Zum einmaligen Bestimmen von R sollte der Rang der Korrelationsmatrix K größer als eins sein, und zumindest eine der folgenden Bedingungen sollte vorliegen:
- 1. det(UVT) = 1.
- 2. Der minimale Singularwert von K ist eine einfache Wurzel.
-
Für die einmalige Bestimmung der Translation t sollte die Matrix A in Gleichung (9) den Rang drei haben.
-
Die Matrizen K und A genügen den vorgenannten Eigenschaften, wenn die Entsprechungen zumindest eine der folgenden aufweisen: 3 Ebenen, 2 Ebenen und 1 Punkt, 1 Ebene und 2 Punkte, und 3 Punkte. Bei dem RANSAC-Vorgang in unserem SLAM-System verwenden wir diese minimalen Anzahl von Entsprechungen, um Hypothesen zu erzeugen.
-
RANSAC-Vorgang
-
Im Gegensatz zu Entsprechungen nur in einem 2D-Bildraum sehen unsere 3D-Grundelemente mehrere Invarianten vor, die verwendet werden können, um falsche Anpassungen zu identifizieren. Wenn entsprechende Punkte und Ebenen in zwei verschiedenen Koordinatensystemen gegeben sind, sollten bestimmte geometrische Objekte, die in einem Koordinatensystem bestimmt sind, im Wesentlichen den entsprechenden Objekten in dem zweiten Koordinatensystem angepasst sein.
-
Wir identifizieren die folgenden drei Invarianten in jedem Koordinatensystem: I1 basierend auf dem Abstand zwischen zwei Punkten; I2 basierend auf dem Abstand zwischen einem Punkt und einer Ebene; und I3 basierend auf dem Winkel zwischen zwei ebenen Normalen.
-
Entsprechende geometrische Grundelemente können mit einem invarianten Vektor I = (i1, i2, i3) assoziiert sein, wobei i1, i2 und i3 der Anzahl von Invarianten mit Bezug auf de Typ I1, I2 bzw. I3 entsprechen.
-
Alle entsprechenden Tripel, die Punkte und Ebenen einbeziehen, besitzen insgesamt drei Invarianten: 3 Punkte: I = (3, 0, 0); 1 Ebene und 2 Punkte: I = (1, 2, 0); 2 Ebenen und 1 Punkt: I = (0, 2, 1); und 3 Ebenen: I = (0, 0, 3).
-
Ein Interpretationsbaum oder ein Abzweigungs-und-Grenze-Verfahren können verwendet werden, um falsche Anpassungen unter Verwendung dieser Invarianten zu identifizieren. Für unseren RANSAC-Vorgang verwenden wir eine einfache, auf einem Interpretationsbaum basierende Beschneidung.
-
Vor dem Löschen von Fehlanpassungen auf der Grundlage der Invarianten erhalten wir einige anfängliche Entsprechungen. In dem Fall von Punkten verwenden wir die SURF-Deskriptoren, um die Entsprechungen zu erhalten. In dem Fall von Ebenen beginnen wir mit allen möglichen Entsprechungen und löschen die Fehlanpassungen auf der Grundlage der Invarianten. Der RANSAC-Vorgang, der drei Ebenen verwendet, ist viel schneller als derjenige, der drei Punkte verwendet, da die Anzahl von Ebenen in 3D-Daten gewöhnlich viel kleiner als die entsprechende Anzahl von Punkten ist. Darüber hinaus werden, da Ebenen durch viele Punkte erzeugt werden, Ebenen weniger durch Störungen in 3D-Daten beeinträchtigt, was zu einer genaueren Registrierung führt. Daher initialisieren wir, wie in 3 gezeigt ist, den RANSAC-Vorgang mit einem Tripel von Grundelementen, falls verfügbar, in der folgenden bevorzugten Reihenfolge: 3 Ebenen 301, 2 Ebenen und 1 Punkt 302, 1 Ebene und 2 Punkte 303 oder 3 Punkte 304.
-
Eine Beendigungsbedingung für den RANSAC-Vorgang kann eine vorbestimmte minimale Anzahl von abzutastenden Entsprechungen sein.
-
Bündeleinstellung mit Punkten und Ebenen
-
Unser SLAM-System optimiert die folgenden Variablen bei der Bündeleinstellung: Punktwahrzeichen p i / l = (Xi, yi, zi), Ebenenwahrzeichen π j / l = (aj, bj, cj, dj), und Schlüsselrahmen-Posituren Tk = (t k / x , t k / y , t k / z , θ k / x , θ k / y , θ k / z ).
-
Hier sind tk = (t k / x , t k / y , t k / z ) die (x, y, z)-Komponenten der Translation des k-ten Schlüsselrahmens und θk = (θ k / x , θ k / y , θ k / z ) stellen die Rotation um die (x, y, z)-Achsen dar. Die Rotationsmatrix Rk des k-ten Schlüsselrahmens wird durch Rk = Rz(θ k / z )Ry(θ k / y )Rx(θ k / x ) dargestellt.
-
Wir bestimmen eine Jacobi-determinante Matrix unter Verwendung von Punkt/Ebene-Grundelementen, die mit jedem Punkt/Ebenen-Wahrzeichen wie folgt assoziiert sind.
-
Punkt-Wahrzeichen
-
Für Punkt-Wahrzeichen minimieren wir einen euklidischen Abstandsfehler zwischen einem Punkt-Wahrzeichen p i / l und einem assoziierten Punkt p k / m = (x k / m , y k / m , z k / m ) in dem k-ten Schlüsselrahmen, der ∥p i / l – (Rkp k / m + tk)∥2 = 0. (10) ist.
-
Unter Verwendung der gegenwärtigen Schätzung des Wahrzeichens p ^
i / l = (x ^
i, y ^
i, z ^
i) und der Schlüsselrahmen-Position [R ^
k, t ^
k], linearisieren wir Gleichung (10) als
∥p ^ i / l + Δp i / l – (ΔRkp ^ k / m + Δtk)∥2 = 0, (11) wobei p ^
k / m = R ^
kp
k / m + t ^
k und
-
Aus Gleichung (11) erhalten wir drei Gleichungen getrennt für jede (x, y, z)-Komponente. Die Gleichung für die x-Komponente ist
und diejenigen für die y- und die z-Komponente können in gleicher Weise erhalten werden.
-
Ebene-Wahrzeichen
-
Für Ebene-Wahrzeichen minimieren wir einen geometrischen Fehler, der durch eine Summe von Abständen zwischen einem Ebene-Wahrzeichen und 3D-Punkten, die von assoziierten Ebenen in einem Schlüsselrahmen abgetastet wurden, definiert ist. Genauer gesagt, wir tasten 3D-Punkte x
k,s / m von innenliegenden 3D-Punkten eines ebenen Grundelements π
k / m gleichförmig ab und bestimmen den Abstand zwischen jedem abgetasteten Punkt und dem assoziierten Ebene-Wahrzeichen π
j / l . Somit beträgt der geometrische Fehler, den wir minimieren:
-
Wir linearisieren Gleichung (14) unter Verwendung einer gegenwärtigen Schätzung des Ebene-Wahrzeichens π ^
j / l = (a ^
j, b ^
j, c ^
j, d ^
j), und der Schlüsselrahmen-Positur [R ^
k, t ^
k] als
wobei x ^
k,s / m = R ^
kx
k,s / m + t ^
k = (x ^
k,s / m , y ^
k,s / m , z ^
k,s / m ). Nach Vereinfachung haben wir
-
Geometrische Randbedingungen zwischen Ebene-Wahrzeichen
-
Unser SLAM-System kann wahlweise geometrische Randbedingungen zwischen Ebene-Wahrzeichen in der Bündeleinstellung durchsetzen. Die geometrischen Randbedingungen enthalten Parallelität und Orthogonalität. Orthogonale oder parallele Ebenen können gemeinsam in einem künstlichen Umfeld beobachtet werden, in welchem das Durchsetzen der geometrischen Randbedingungen nützlich ist, um eine genaue Registrierung zu erhalten.
-
Für jedes Paar von Ebene-Wahrzeichen π j / l = (aj, bj, cj, dj) und π j' / l = (aj', bj', cj', dj') prüfen wir, ob der Winkel zwischen Normalvektoren der beiden Ebene ausreichend nahe an 0 Grad (parallel) oder 90 Grad (orthogonal) unter Verwendung eines vorbestimmten Schwellenwerts ist. Wenn dies der Fall ist, setzen wir die folgende Randbedingung durch ajaj' + bjbj' + cjcj' = S, (17) worin S = 1 ist, wenn die beiden Ebenen ausreichend nah sind, um parallel zu sein, während S = 0 ist, wenn die beiden Ebenen ausreichend nahe sind, um orthogonal zu sein.
-
Unter Verwendung von gegenwärtigen Schätzungen der beiden Ebene-Wahrzeichen π ^ j / l = (a ^j, b ^j, c ^j, d ^j) und π ^ j' / l = (a ^j', b ^j', c ^j', d ^j') linearisieren wir Gleichung (17) als (a ^j + Δaj)(a ^j' + Δaj') + (b ^j + Δbj)(b ^j' + Δbj') + (c ^j + Δcj)(c ^j' + Δcj') = S. (18)
-
Nach Vereinfachung ergibt Gleichung (18)
-
Lösung
-
Das Stapeln der Gleichungen (13), (16) und (19) für alle Wahrzeichen und Schlüsselrahmen führt zu einem linearen System JΔ = –ε0, wobei die Jacobi-determinante Matrix gleich J ist, der Fehlervektor gleich ε0 ist und der Aktualisierungsvektor gleich Δ = (Δp i / l , Δπ j / l , ΔTk) ist. Wir verwenden ein Gauss-Newton'sches Verfahren, um das Optimierungsproblem zu lösen.
-
Implementierung
-
Unser Echtzeit-SLAM-System verwendet Texturbilder und Tiefenkarten mit einer 640×480 Pixel-Auflösung. Wir visualisieren die Punkt- und Ebene-Wahrzeichen, die über die gegenwärtige Punktwolke überlagert sind, wenn die Registrierung erfolgreich ist. Unser SLAM-System bestimmt immer die globale Registrierung Rahmen-für-Rahmen mit Bezug auf die globale Karte. Somit beeinträchtigen Registrierungsfehler nachfolgende Eingaben nicht. Unser SLAM-System liefert rekonstruierte Ebene-Wahrzeichen als eine auf Ebenen basierende Darstellung der Szene, die kompakter ist und mehr semantische Informationen liefert als eine Darstellung der Szene auf Punktbasis.
-
[Wirkung der Erfindung]
-
Die Erfindung sieht ein Registrierungsverfahren vor, das sowohl Punkte als auch Ebenen als Grundelemente verwendet, um 3D-Daten in zwei verschiedenen Koordinatensystemen zu registrieren. Unter Verwendung des Registrierungsverfahrens wird ein Echtzeit-SLAM-System für 3D-Sensoren, das sowohl Punkt-zu-Punkt- und Ebene-zu-Ebene-Entsprechungen für die Registrierung verwendet, entwickelt. Die Verwendung beider Grundelemente ermöglicht eine schnellere und genauere Registrierung als die Verwendung nur von Punkten. Unser SLAM-System erzeugt ein 3D-Modell als einen Satz von Ebenen, der kompaktere und mehr semantische Informationen der Szene liefert als streng punktbasierte Darstellungen.
-
Die Erfindung zeigt, dass jede Kombination von drei 3D-Punkt/Ebene-Grundelementen die Registrierung zwischen zwei verschiedenen Koordinatensystemen ermöglicht. Die Erfindung zeigt auch ein Bündeleinstellungs-Gerüst, das sowohl 3D-Punkte als auch 3D-Ebenen verwendet, um gemeinsam die Registrierung zwischen mehreren Koordinatensystemen zu optimieren. Das Bündeleinstellungs-Gerüst kann geometrische Randbedingungen zwischen 3D-Ebenen durchsetzen, wie Parallelität und Orthogonalität, um die Registrierungsgenauigkeit für künstliche Umfelder weiter zu verbessern.
-
Die Verwendung von Ebenen ermöglicht sowohl eine schnellere Rekonstruktion als auch ein kompaktes Modellieren. Lokale Verfahren wie iterative Verfahren für den nächstliegenden Punkt (ICP) neigen zu lokalen Minima-Problemen bei schneller Bewegung des 3D-Sensors, während unser Registrierungsverfahren eine globale Lösung liefert und lokale Minima-Probleme vermeidet.
-
Das Verfahren unterscheidet sich von Verfahren, die Ebene-Grundelemente aus 3D-Punktwolken, die bereits registriert sind, herausziehen. Stattdessen verwendet das Verfahren Ebene- und Punkt-Grundelemente, die aus einer individuellen 3D-Punktwolke für die Registrierung ausgewählt sind. Die Verwendung von Ebenen mit Punkten in der Registrierung ermöglicht eine effizientere und genauere Registrierung als die Verwendung nur von Punkten.
-
Wie in 4 gezeigt ist, ist die Ausgabe unseres SLAM-Systems eine registrierte Punktwolke 401 und eine Darstellung 402 der Szene auf Ebenenbasis. Die Darstellung auf Ebenenbasis liefert kompaktere und mehr semantische Informationen als die Darstellung auf Punktbasis. Die Darstellung wird in Echtzeit erzeugt.
-
Da die Erfindung sowohl Punkte als auch Ebenen verwendet, werden bei Verfahren nach dem Stand der Technik vorhandene Fehler vermieden. Dieser gemischte Registrierungsmodus ist neu.
-
Eine Lösung in geschlossener Form zur Registrierung wird für Punkt-zu-Punkt- und Ebene-zu-Ebene-Entsprechungen in einer vereinigten Weise erhalten.