-
TECHNISCHES GEBIET
-
Die folgenden Ausführungen betreffen allgemein ein selbstüberwachtes Tiefenschätzungssystem und ein Verfahren zum Erzeugen dichter Tiefenkarten.
-
HINTERGRUND
-
Dichte und genaue Tiefenkarten sind im Allgemeinen für Anwendungen wie autonomes Fahren erforderlich. Allerdings sind in der Regel hochwertige und kostenintensive Sensoren und Erfassungsvorrichtungen erforderlich, um derartige dichte und genaue Tiefenkarten zu erzeugen. Die Kosten für diese Sensoren und Erfassungsvorrichtungen machen die Kosten für die Verwendung von dichten und genauen Tiefenkarten für viele Anwendungen unerschwinglich.
-
KURZFASSUNG
-
Ein System und Verfahren zur selbstüberwachten Tiefenschätzung, das ein digitales Bild einer Umgebung empfängt. Eine oder mehrere tiefe Superpixel-Segmentierungen können aus dem digitalen Bild extrahiert werden, und die tiefen Superpixel-Segmentierungen können partitioniert werden, um einen homogenen Bereich des digitalen Bildes darzustellen. Die tiefen Superpixel-Segmentierungen können auch als lokale planare Regionen dienen, die eine lokale Normalrichtung und eine sekundäre Ableitung der Tiefe innerhalb der einen oder mehreren tiefen Superpixel-Segmentierungen einschränken. Schließlich kann mit der einen oder den mehreren tiefen Superpixel-Segmentierungen eine dichte Tiefenkarte erzeugt werden.
-
Das System und das Verfahren können auch eine Oberflächennormalkarte unter Verwendung eines neuronalen Netzes mit Tiefenregression ableiten, das eine Tiefenkarte mit voller Auflösung anhand des digitalen Bildes und einer spärlichen Tiefenkartenabtastung, die vom Tiefensensor empfangen wird, regressiert. Das neuronale Netz mit Tiefenregression kann auch unter Verwendung einer Codierer-Decodierer-Struktur mit einer Codierschicht, einer Decodierschicht und mehreren Sprungverbindungen ausgestaltet werden. Die Codierschicht kann eine oder mehrere Faltungsschichten, eine oder mehrere ReLU-Schichten, ein oder mehrere neuronale Restnetze (ResNet) und eine oder mehrere Pooling-Schichten umfassen. Und die Decodierschicht kann eine oder mehrere Entfaltungsschichten, eine oder mehrere Unpooling-Schichten, eine oder mehrere ResNet-Schichten und eine oder mehrere ReLU-Schichten aufweisen. Eine abschließende Faltungsschicht kann auch dazu dienen, ein nicht negatives Graustufentiefenbild zu erzeugen, das zur Ableitung der Oberflächennormalkarte verwendet wird.
-
Das System und das Verfahren können ferner dazu betrieben werden, einen Gradienten der spärlichen Tiefenkartenabtastung in vier Richtungen zu berechnen. Die spärliche Tiefenkartenabtastung kann in einen oder mehrere 3-dimensionale Vektoren umgewandelt werden. Das System und das Verfahren können ein oder mehrere normierte Kreuzprodukte des einen oder der mehreren 3-dimensionalen Vektoren mitteln, um eine Scheitelnormale zu bestimmen.
-
Das System und das Verfahren können dazu dienen, eine relative Transformation zwischen dem digitalen Bild und einem verwandten Bild unter Verwendung eines simultanen Lokalisierungs- und Abbildungssystems zu bestimmen. Ein photometrischer Verlust kann unter Verwendung der relativen Transformation, des digitalen Bildes und des verwandten Bildes bestimmt werden. Das System und das Verfahren können auch zur Glättung und Unterdrückung von Inkonsistenzen innerhalb der dichten Tiefenkarte betrieben werden, indem eine sekundäre Tiefenableitung innerhalb der einen oder mehreren tiefen Superpixel-Segmentierungen minimiert wird. Das System und das Verfahren können lokale Normalrichtungen bestimmen abgeleitet ist unter Verwendung einer geschätzten Tiefe. Das System und das Verfahren können eine Begrenzung und eine Kante innerhalb der einen oder mehreren Superpixel-Segmentierungen negieren. Schließlich können das System und das Verfahren eine Konsistenz der Normalrichtung innerhalb jeder der einen oder mehreren tiefen Superpixel-Segmentierungen anwenden.
-
Figurenliste
-
- 1 stellt ein beispielhaftes Computersystem dar.
- 2 veranschaulicht ein beispielhaftes selbstüberwachtes Tiefenschätzungsnetz.
- 3A und 3B veranschaulichen eine Codierer-Decodierer-Struktur, die durch ein Tiefenregressionsnetz implementiert werden kann.
- 4 veranschaulicht ein Computersystem, das einen wenigstens teilweise autonomen Roboter steuert.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Wie erforderlich, werden hier detaillierte Ausführungsformen offenbart; es ist jedoch einzusehen, dass die offenbarten Ausführungsformen lediglich beispielhaft sind und in verschiedenen und alternativen Formen ausgeführt werden können. Die Figuren sind nicht notwendigerweise maßstabsgetreu; einige Merkmale können übertrieben oder verkleinert dargestellt sein, um Einzelheiten bestimmter Komponenten zu zeigen. Daher sind hier offenbarte spezifische strukturelle und funktionale Einzelheiten nicht als einschränkend zu verstehen, sondern lediglich als repräsentative Grundlage, die dem Fachmann auf diesem Gebiet der Technik Anleitung bietet, um die vorliegenden Ausführungsformen auf vielfältige Weise einzusetzen.
-
Unter Tiefenwahrnehmung versteht man allgemein eine visuelle Fähigkeit, die Welt in drei Dimensionen (3D) und die Entfernung eines Objekts wahrzunehmen. Die Tiefenwahrnehmung kann aus verschiedenen Tiefenbildern und Referenzpunkten bestimmt werden. Zum Beispiel kann die Tiefenwahrnehmung binokulare Bilder, die auf dem Empfang von Sinnesinformationen in drei Dimensionen basieren, sowie monokulare Bilder, die nur Bilder beinhalten, die in zwei Dimensionen dargestellt sind, beinhalten.
-
Tiefenkarten, die ein Bild oder einen Bildkanal aufweisen, das bzw. der Informationen über die Entfernung der Oberflächen von Szenenobjekten von einem Standpunkt aus enthält, können ebenfalls zur Bestimmung der Tiefenwahrnehmung verwendet werden. Beispielsweise kann eine dichte und genaue Tiefenkarte verwendet werden, um eine Innen- oder Außenumgebung zu erfassen. Es wird in Betracht gezogen, dass dichte Tiefenkarten für Anwendungen wie 3D-Objektrekonstruktion, Augmented Reality (erweiterte Realität), Robotermanipulation und autonomes Fahren nützlich sein können. Es wird auch betrachtet, dass 3-D-Bilderfassungsverfahren und -sensoren (z. B. LiDAR) betrieben werden können, um die 3D-Daten bereitzustellen, die zum Erzeugen der dichten Tiefenkarten verwendet werden.
-
Allerdings können LiDAR-Sensoren, die dazu betrieben werden können, qualitativ hochwertige, dichte Tiefenkarten zu erzeugen, für bestimmte Anwendungen zu kostenintensiv sein. Kostengünstigere LiDAR-Sensoren bieten dagegen möglicherweise nicht die Genauigkeit und Auflösung, die für genaue, dichte Tiefenkarten erforderlich sind. Es wird auch betrachtet, dass alternative 3D-Erfassungslösungen (z. B. Tiefenkameras) ähnliche Kosten- und Leistungskompromisse wie die LiDAR-Sensoren aufweisen können. Um die Anzahl der Anwendungen für die 3D-Erfassung zu erhöhen, wird in Betracht gezogen, dass kostengünstigere und qualitativ weniger anspruchsvolle Tiefensensoren wünschenswert wären. Um jedoch kostengünstigere und qualitativ weniger anspruchsvolle Tiefensensoren zu implementieren, müssen möglicherweise robustere Algorithmen entwickelt werden, die Tiefenkarten mit höherer Auflösung anhand einer spärlichen Tiefenkartenabtastung 204s (oder sogar minimalen bis gar keinen Abtastungen) schätzen, um die Auflösung von 3D-Erfassungsvorrichtungen geringerer Qualität zu kompensieren.
-
Mit der raschen Verbreitung des tiefen Lernens können Algorithmen zur Tiefenschätzung tiefe neuronale Netze nutzen, um Tiefenkarten aus monokularen Farbbildern und/oder spärlichen Tiefendatensätzen zu erzeugen. Diese Algorithmen können sich auf dichte Grundwahrheits-Tiefenkarten als Überwachung während des Netztrainings stützen. Solche Grundwahrheitsdaten umfassen im Allgemeinen Informationen, die durch direkte Beobachtung (d. h. empirischen Nachweis) bereitgestellt werden können, im Gegensatz zu Informationen, die durch Deduktion bereitgestellt werden.
-
Die Abhängigkeit von dichten Grundwahrheits-Tiefenkarten ist jedoch möglicherweise nicht optimal, da der ursprüngliche Zweck der Schätzung der Tiefenwahrnehmung darin besteht, den Bedarf an solchen dichten Tiefenkarten zu verringern. Bei der Anwendung von Schätzalgorithmen auf eine neue Anwendung oder Umgebung kann die Leistung daher aufgrund des Fehlens dieser dichten Grundwahrheitskarten eingeschränkt sein. Selbstüberwachtes Lernen kann solche Leistungsbeschränkungen manchmal überwinden, indem geometrische Beschränkungen zwischen Paaren aufeinanderfolgender Bilder genutzt werden. Selbstüberwachte Tiefenschätzungen können jedoch eine viel geringere Genauigkeit aufweisen, da die geometrische Beschränkung möglicherweise nicht so genau ist wie die Grundwahrheits-Tiefenkarten.
-
Um die dichten Tiefenkarten von selbstüberwachten Algorithmen zu verbessern, wurde zusätzlich zur rein bildgestützten, auf geometrischen Beschränkungen basierenden Lösung eine stärkere Überwachung der Grundwahrheits-Tiefenkarten untersucht. Beispielsweise sind spärliche Tiefenmessungen, die mit einfachem LiDAR erfasst werden, ein Ansatz, der verfolgt werden kann. Bei spärlichen Tiefenmessungen, die Überwachungen bereitstellen, kann die Mehrdeutigkeit der Bilderscheinung (z. B. sich wiederholende Muster) überwunden werden. Oder das „Multi-Task“-Lernen (Lernen an mehreren Aufgaben), das für das Erlernen mehrerer Modalitäten trainiert wird (z. B. normal, optischer Fluss), kann genutzt werden, um die Tiefenqualität zu verbessern und eine Überanpassung des Modells zu verringern.
-
1 zeigt ein beispielhaftes System 100, das verwendet werden kann, um ein selbstüberwachtes Tiefenschätzungsnetz zum Schätzen von Tiefenkarten basierend auf Farbbildern und spärlichen LiDAR-Abtastungen zu implementieren. Das System 100 kann wenigstens eine Computervorrichtung 102 aufweisen. Das Computersystem 102 kann wenigstens einen Prozessor 104 aufweisen, der operativ mit einer Speichereinheit 108 verbunden ist. Der Prozessor 104 kann aus einer oder mehreren integrierten Schaltungen bestehen, die die Funktionalität einer Zentraleinheit („Central Processing Unit“, CPU) 106 implementieren. Es versteht sich, dass die CPU 106 ebenfalls aus einer oder mehreren integrierten Schaltungen bestehen kann, die die Funktionalität einer allgemeinen Verarbeitungseinheit oder einer spezialisierten Verarbeitungseinheit (z. B. Grafikverarbeitungseinheit, ASIC, FPGA) implementieren.
-
Bei der CPU 106 kann es sich um eine handelsübliche Verarbeitungseinheit handeln, die einen Befehlssatz wie eine der x86-, ARM-, Power- oder MIPS-Befehlssatzfamilien implementiert. Während des Betriebs kann die CPU 106 gespeicherte Programmanweisungen ausführen, die aus der Speichereinheit 108 abgerufen werden. Die gespeicherten Programmanweisungen können Software beinhalten, die den Betrieb der CPU 106 steuert, um die hier beschriebene Operation durchzuführen. In einigen Beispielen kann der Prozessor 104 ein System auf einem Chip („System on a Chip“, SoC) sein, das die Funktionalität der CPU 106, der Speichereinheit 108, einer Netzschnittstelle und der Ein-/Ausgabeschnittstellen in einer einzigen integrierten Vorrichtung integriert. Das Computersystem 102 kann ein Betriebssystem zum Verwalten verschiedener Aspekte der Operation implementieren.
-
Die Speichereinheit 108 kann flüchtigen Speicher und nichtflüchtigen Speicher zum Speichern von Anweisungen und Daten aufweisen. Der nichtflüchtige Speicher kann Festkörperspeicher, wie z. B. NAND-Flash-Speicher, magnetische und optische Speichermedien oder eine beliebige andere geeignete Datenspeichervorrichtung beinhalten, die Daten speichert, wenn das Computersystem 102 deaktiviert oder nicht mehr mit Strom versorgt wird. Der flüchtige Speicher kann statischen und dynamischen Direktzugriffsspeicher („Random Access Memory“, RAM) beinhalten, der Programmanweisungen und Daten speichert. Beispielsweise kann die Speichereinheit 108 ein Maschinenlernmodell 110 oder einen Algorithmus, einen Trainingsdatensatz 112 für das Maschinenlernmodell 110 und/oder rohe Quelldaten 115 speichern.
-
Das Computersystem 102 kann eine Netzschnittstellenvorrichtung 122 aufweisen, die dafür ausgelegt ist, Kommunikation mit externen Systemen und Vorrichtungen bereitzustellen. Beispielsweise kann die Netzschnittstellenvorrichtung 122 eine drahtgebundene und/oder drahtlose Ethernet-Schnittstelle gemäß der 802.11-Normenfamilie des Institute of Electrical and Electronics Engineers (IEEE) beinhalten. Die Netzschnittstellenvorrichtung 122 kann eine zellulare Kommunikationsschnittstelle für die Kommunikation mit einem zellularen Netz (z. B. 3G, 4G, 5G) aufweisen. Die Netzschnittstellenvorrichtung 122 kann ferner dafür ausgelegt sein, eine Kommunikationsschnittstelle zu einem externen Netz 124 oder einer Cloud bereitzustellen.
-
Das externe Netz 124 kann als World Wide Web oder Internet bezeichnet werden. Das externe Netz 124 kann ein Standardkommunikationsprotokoll zwischen Computervorrichtungen einrichten. Das externe Netz 124 kann den einfachen Austausch von Informationen und Daten zwischen Computervorrichtungen und Netzen ermöglichen. Ein oder mehrere Server 130 können mit dem externen Netz 124 in Kommunikationsverbindung stehen.
-
Das Computersystem 102 kann eine Ein-/Ausgabeschnittstelle (E/A) 120 aufweisen, die dafür ausgelegt sein kann, digitale und/oder analoge Ein- und Ausgänge bereitzustellen. Die E/A-Schnittstelle 120 kann zusätzliche serielle Schnittstellen für die Kommunikation mit externen Vorrichtungen aufweisen (z. B. Universal Serial Bus(USB)-Schnittstelle).
-
Das Computersystem 102 kann eine Mensch-Maschine-Schnittstelle (Human-Machine Interface, HMI) 118 aufweisen, was eine beliebige Vorrichtung einschließen kann, die es dem System 100 ermöglicht, Steuereingänge zu empfangen. Beispiele für Eingabevorrichtungen können Eingaben über Mensch-Maschine-Schnittstellen wie Tastaturen, Mäuse, Touchscreens, Spracheingabevorrichtungen und andere ähnliche Vorrichtungen sein. Das Computersystem 102 kann eine Anzeigevorrichtung 132 aufweisen. Das Computersystem 102 kann Hardware und Software zum Ausgeben von Grafik- und Textinformationen an die Anzeigevorrichtung 132 aufweisen. Die Anzeigevorrichtung 132 kann einen elektronischen Anzeigeschirm, einen Projektor, einen Drucker oder eine andere geeignete Vorrichtung zum Anzeigen von Informationen für einen Benutzer oder Bediener beinhalten. Das Computersystem 102 kann ferner dafür ausgelegt sein, die Interaktion mit entfernten HMI- und entfernten Anzeigevorrichtungen über die Netzschnittstellenvorrichtung 122 zu ermöglichen.
-
Das System 100 kann mithilfe eines oder mehrerer Computersysteme implementiert werden. Während das Beispiel ein einzelnes Computersystem 102 zeigt, das alle beschriebenen Merkmale implementiert, ist beabsichtigt, dass verschiedene Merkmale und Funktionen voneinander getrennt und durch mehrere miteinander kommunizierende Computereinheiten implementiert werden können. Die jeweils gewählte Systemarchitektur kann von mehreren Faktoren abhängen.
-
Das System 100 kann einen Maschinenlernalgorithmus 110 implementieren, der dafür ausgelegt ist, die rohen Quelldaten 115 zu analysieren. Die rohen Quelldaten 115 können rohe oder unverarbeitete Sensordaten sein, die repräsentativ für einen Eingangsdatensatz für ein Maschinenlernsystem sein können. Die rohen Quelldaten 115 können Video, Videosegmente, Bilder und rohe oder teilweise verarbeitete Sensordaten (z. B. Daten von Digitalkamera oder LiDAR-Sensor) sein. In einigen Beispielen kann der Maschinenlernalgorithmus 110 ein Algorithmus für neuronale Netze sein, der dafür ausgelegt ist, eine vorgegebene Funktion auszuführen. Beispielsweise kann der Algorithmus des neuronalen Netzes in Automobilanwendungen dafür ausgelegt sein, Objekte (z. B. Fußgänger) anhand von Bildern, die von einer Digitalkamera bereitgestellt werden, und/oder einer Tiefenkarte von einem LiDAR-Sensor zu identifizieren.
-
Das System 100 kann einen Trainingsdatensatz 112 für den Maschinenlernalgorithmus 110 speichern. Der Trainingsdatensatz 112 kann einen Satz zuvor konstruierter Daten zum Trainieren des Maschinenlernalgorithmus 110 darstellen. Der Trainingsdatensatz 112 kann vom Maschinenlernalgorithmus 110 verwendet werden, um Gewichtungsfaktoren zu lernen, die mit einem Algorithmus für neuronale Netze verknüpft sind. Der Trainingsdatensatz 112 kann einen Satz von Quelldaten enthalten, die entsprechende Ausgänge oder Resultate haben, die der Maschinenlernalgorithmus 110 über den Lernprozess zu duplizieren versucht. In diesem Beispiel kann der Trainingsdatensatz 112 Quellbilder und Tiefenkarten aus verschiedenen Szenarien enthalten, in denen Objekte (z. B. Fußgänger) identifiziert werden können.
-
Der Maschinenlernalgorithmus 110 kann in einem Lernmodus betrieben werden, wobei der Trainingsdatensatz 112 als Eingang verwendet wird. Der Maschinenlernalgorithmus 110 kann unter Verwendung der Daten aus dem Trainingsdatensatz 112 über eine Reihe von Iterationen ausgeführt werden. Bei jeder Iteration kann der Maschinenlernalgorithmus 110 interne Gewichtungsfaktoren basierend auf den erzielten Ergebnissen aktualisieren. Beispielsweise kann der Maschinenlernalgorithmus 110 die Ausgaberesultate mit denen vergleichen, die im Trainingsdatensatz 112 enthalten sind. Da der Trainingsdatensatz 112 die erwarteten Ergebnisse enthält, kann der Maschinenlernalgorithmus 110 bestimmen, wann die Leistung akzeptabel ist. Nachdem der Maschinenlernalgorithmus 110 ein vorbestimmtes Leistungsniveau erreicht hat (z. B. 100%ige Übereinstimmung mit den Ergebnissen, die mit dem Trainingsdatensatz 112 verknüpft sind), kann der Maschinenlernalgorithmus 110 mit Daten ausgeführt werden, die nicht im Trainingsdatensatz 112 enthalten sind. Der trainierte Maschinenlernalgorithmus 110 kann auf neue Datensätze angewendet werden, um annotierte Daten zu erzeugen.
-
Der Maschinenlernalgorithmus 110 kann auch dafür ausgelegt sein, ein bestimmtes Merkmal in den rohen Quelldaten 115 zu identifizieren. Die rohen Quelldaten 115 können mehrere Instanzen oder Eingangsdatensätze beinhalten, für die Annotationsergebnisse gewünscht werden. Beispielsweise kann der Maschinenlernalgorithmus 110 dafür ausgelegt sein, die Anwesenheit eines Fußgängers in Bildern zu identifizieren und die Vorkommnisse zu annotieren. Der Maschinenlernalgorithmus 110 kann so programmiert werden, dass er die rohen Quelldaten 115 verarbeitet, um das Vorhandensein der bestimmten Merkmale zu identifizieren. Der Maschinenlernalgorithmus 110 kann dafür ausgelegt sein, ein bestimmtes Merkmal in den rohen Quelldaten 115 als ein vorbestimmtes Merkmal zu identifizieren. Die rohen Quelldaten 115 können aus mehreren Quellen abgeleitet sein. Zum Beispiel können die rohen Quelldaten 115 tatsächliche Eingangsdaten sein, die von einem Maschinenlernsystem gesammelt wurden. Die rohen Quelldaten 115 können zum Testen des Systems maschinell erzeugt werden. Als Beispiel können die rohen Quelldaten 115 rohe digitale Bilder von einer Kamera beinhalten.
-
Im Beispiel kann der Maschinenlernalgorithmus 110 die rohen Quelldaten 115 verarbeiten und eine Ausgabe erzeugen. Ein Maschinenlernalgorithmus 110 kann ein(en) Konfidenzniveau oder -faktor für jede erzeugte Ausgabe erzeugen. Beispielsweise kann ein Konfidenzwert, der einen vorgegebenen oberen Konfidenzschwellenwert überschreitet, anzeigen, dass der Maschinenlernalgorithmus 110 zuversichtlich ist, dass das identifizierte Merkmal dem bestimmten Merkmal entspricht. Ein Konfidenzwert, der unter einem unteren Konfidenzschwellenwert liegt, kann darauf hindeuten, dass der Maschinenlernalgorithmus 110 eine gewisse Unsicherheit hinsichtlich des Vorhandenseins des bestimmten Merkmals aufweist.
-
2 veranschaulicht ein selbstüberwachtes Tiefenschätzungsnetz 200, das für den Maschinenlernalgorithmus 110 repräsentativ ist. Es wird betrachtet, dass das selbstüberwachte Tiefenschätzungsnetz 200 dazu betrieben werden kann, anhand von Farbbildern eine Tiefenkarte zu schätzen, die Beschränkungen aus unterschiedlichen Quellen und Modalitäten enthält, um die Tiefenqualität zu verbessern und eine Überanpassung des Modells zu verringern.
-
Es wird in Betracht gezogen, dass das Netz 200 ein oder mehrere Farbbilder 202 (d. h., zweidimensionale oder dreidimensionale RGB-Farbbilder) von einer Digitalkamera oder einer Videokamera empfangen kann, die dazu betrieben werden kann, RGB-Bilder zu erfassen und/oder zu erzeugen (z. B. eine DSLR-Kamera oder spiegellose Digitalkamera). Das Netz 200 kann auch eine spärliche Tiefenkartenabtastung 204 empfangen, die von einem hoch- oder niedrigauflösenden Tiefensensor (z. B. LiDAR-Sensor) bereitgestellt werden kann. Das Netz 200 kann dazu dienen, das Farbbild 202, die spärliche Tiefenkartenabtastung 204, ein extrahiertes tiefes Superpixel 206 und ein eng verwandtes Farbbild 208 als Daten 115 zum Trainieren des Maschinenlernalgorithmus 110 zu nutzen.
-
Das Netz 200 kann auch mehrere Netzpfade aufweisen. Beispielsweise kann das Netz 200 einen Tiefenverlustpfad 210 aufweisen, bei dem das Farbbild 202 und die entsprechende spärliche Tiefenkartenabtastung 204 in einen Tiefenregressionspfad 212 geleitet werden, der eine dichte Tiefenkarte 214 und eine abgeleitete Oberflächennormalkarte 216 erzeugen kann. Es wird betrachtet, dass der Tiefenregressionspfad 212 die dichte Tiefenkarte 214 (die eine geschätzte Tiefe (d) für jedes Pixel enthält) ausgeben kann, indem das Farbbild 202 und die spärliche Tiefenkartenabtastung 204 (d. h. die vom LiDAR-Sensor bereitgestellte Abtastung) verwendet werden. Es wird auch betrachtet, dass der Tiefenregressionspfad 212 unter Verwendung mehrerer Referenzpunkte, die aus den Eingängen während einer Trainingsroutine gewonnen wurden, normalisiert werden kann. Die Referenzpunkte können zum Beispiel Superpixel, Nachbarbilder und Kameraposen einschließen.
-
3 zeigt ein faltungsneuronales Netz (Convolutional Neural Network, CNN) 300, das als der Tiefenregressionspfad 212 verwendet werden kann. Das CNN 300 kann mit einer Codierer-Decodierer-Struktur und Sprungverbindungen ausgelegt sein, um eine verbesserte Leistung bei der Bild-zu-Bild-Regression zu erzielen.
-
Wie dargestellt, weist das CNN 300 eine oder mehrere Codiererschichten 302 und eine oder mehrere Decodiererschichten 304 auf. Die Codiererschichten 302 können eine oder mehrere Faltungsschichten aufweisen, gefolgt von einer Aktivierungsfunktion (z. B. einer Funktion der gleichgerichteten Lineareinheit („Rectified Linear Unit“, ReLU)). Das CNN 300 kann z. B. das Farbbild 202 in Schicht 306 eingeben, die eine Faltungsschicht und eine ReLU-Aktivierungsfunktion aufweist. Ebenso kann das CNN 300 die spärliche Tiefenkartenabtastung 204 in Schicht 308 eingeben, die eine separate Faltungsschicht und ReLU-Aktivierungsfunktion aufweisen kann. Es wird in Betracht gezogen, dass die Schichten 306-308 Faltungsschichten mit gleich großen Kerneln (z. B. 64x304) beinhalten können. Es wird auch in Betracht gezogen, dass das Farbbild 202 und die spärliche Tiefenkartenabtastung 204 einer einzigen Schicht (z. B. Schicht 306) mit derselben Faltungsschicht und ReLU-Aktivierungsfunktion bereitgestellt werden können, anstelle von separaten Schichten mit separaten Faltungsschichten und ReLU-Aktivierungsfunktionen. Die Schichten 306 und 308 können dann Schicht 310 bereitgestellt werden, die ein neuronales Restnetz (ResNet) und eine ReLU-Aktivierungsfunktion aufweisen kann. Schicht 310 kann auch so ausgestaltet werden, dass sie die gleiche Größe und Abmessung (z. B. 64x304) wie die Schichten 306-308 hat.
-
Die Codierschicht 302 kann auch eine oder mehrere zusätzliche Schichten 312-318 aufweisen. Jede zusätzliche Schicht (z. B. Schicht 312) kann eine ResNet-Schicht, eine ReLU-Aktivierungsfunktion und eine Pooling-Schicht aufweisen. Es wird in Betracht gezogen, dass jede Schicht 312-318 in der Größe variieren kann und die Größe jeder Schicht 312-318 von der Größe des Bildes 202 und der spärlichen Tiefenkartenabtastung 204 abhängig sein kann. Zum Beispiel können das Farbbild 202 und die spärliche Tiefenkartenabtastung 204 64-Kanal-Merkmale aufweisen, die verkettet und in die Schichten 312-318 eingespeist werden. Die Schichten 312-318 können dann so ausgestaltet sein, dass jede empfangene Merkmalskarte um die Hälfte heruntergerechnet wird („Downsampling“, Abwärtsabtastung). Schicht 310 kann eine Merkmalskarte mit einer Größe von 324 bereitstellen, die durch Schicht 312 auf eine Größe von 212 heruntergerechnet wird. Schicht 312 kann eine Merkmalskarte mit einer Größe von 212 bereitstellen, die durch Schicht 314 auf eine Größe von 56 heruntergerechnet wird. Schicht 314 kann eine Merkmalskarte mit einer Größe von 56 bereitstellen, die durch Schicht 316 auf eine Größe von 28 heruntergerechnet wird. Schicht 316 kann eine Merkmalskarte mit einer Größe von 28 bereitstellen, die durch Schicht 318 auf eine Größe von 14 heruntergerechnet wird. Schicht 320, die eine zusätzliche Faltungsschicht und ReLU-Aktivierungsfunktionsschicht aufweist, kann die Merkmalskarte von Schicht 318 empfangen und die Anzahl der Merkmale weiter auf 512 herunterrechnen.
-
Die Faltungsschicht 320 stellt dann Merkmale an die Decodiererschicht 304 bereit. Es wird in Betracht gezogen, dass die Decodiererschicht 2014 eine oder mehrere Schichten 322-360 aufweist. Jede Schicht (z. B. Schicht 322) kann so ausgestaltet sein, dass sie eine „Unpooling“-Schicht, eine Entfaltungsschicht, eine ResNet-Schicht und eine ReLU-Aktivierungsfunktion aufweist. Es wird auch betrachtet, dass die Decodiererschicht 304 mit einem transponierten Faltungsprozess arbeitet, der die Merkmalskarten wieder auf die Originalauflösungen von Bild 202 und die spärliche Tiefenabtastung von Bild 204 hochrechnet („Upsampling“, Aufwärtsabtastung). Für das Aufwärtsabtastverfahren kann das CNN 300 auch eine oder mehrere Sprungverbindungen 344-352 aufweisen, die sich vom Ausgang der Schichten 310-318 zum Eingang der Schichten 324, 328, 332, 336, 340 (d. h. der entsprechenden Schicht der Aufwärtsabtasteinheit) erstrecken. Es wird betrachtet, dass das CNN 300 so ausgestaltet sein kann, dass das Farbbild 202 und die spärliche Tiefenkartenabtastung 204 in den Schichten 306-308 verschmolzen werden können, um zu verhindern, dass unerwünschtes Rauschen im Tiefenzweig über Sprungverbindungen 344-352 in die spätere Stufe des Decodierers übergeht.
-
Schicht 354 kann als abschließende Faltungsschicht ausgestaltet sein, die dazu betrieben werden kann, alle Kanäle zu einem einzigen zu verdichten und so ein nicht negatives Graustufen-Tiefenbild zu erzeugen. Es wird auch betrachtet, dass die Schichten 306, 308 und 320 eine Faltungsschicht aufweisen können, die mittels Stapel(„Batch“)-Normalisierung mit einer angeschlossenen ReLU-Aktivierungsfunktion ausgestaltet wurde. Schicht 354 kann hingegen eine Faltungsschicht aufweisen, die einfach eine ReLU-Aktivierungsfunktion beinhaltet.
-
Schicht 356 kann so ausgestaltet sein, dass eine Oberflächennormalkarte des Tiefenbildes abgeleitet wird. Unter Verwendung der intrinsischen Parameter der Vorrichtung, die zur Erzeugung des Farbbildes 202 verwendet wird (z. B. Farbkamera). Schicht 356 kann dazu betrieben werden, den Gradienten der Tiefenkarte in vier Richtungen zu berechnen und die Tiefenkarte in 3D-Vektoren umzuwandeln. Schicht 356 kann ferner dazu betrieben werden, die Scheitelnormale durch Mitteln der normierten Kreuzprodukte benachbarter 3D-Vektoren zu berechnen.
-
Bezugnehmend auf 2 kann das Netz 200 auch einen photometrischen Verlustpfad 218 aufweisen, der einen Bildausrichtungsfehler zwischen dem Farbbild 202 und dem benachbarten Farbbild 208 ausnutzt, um das Training des Tiefenregressionspfades 212 weiter zu überwachen. Der photometrische Verlustpfad 218 kann den Tiefenregressionspfad 212 unter Verwendung der spärlichen Tiefenkartenabtastungen 204, der intrinsischen Eigenschaften der Vorrichtung, die das Bild 202 erfasst (z. B. Kamera), und einer relativen Transformation (T1→2) überwachen.
-
Es wird in Betracht gezogen, dass der photometrische Verlust durch die Anpassung des Erscheinungsbildes ein für die visuelle RGBD-Odometrie typisches Bildverzerrungsproblem sein könnte. Anstatt die relative Pose eines Kamerasystems zu schätzen, ist das Netz 200 dafür ausgelegt, das Tiefenschätzungsnetz 212 mit einer festen Kameratransformation zu trainieren. Zum Beispiel kann das Netz 200 das Bild 202, das benachbarte Bild 208, die spärliche Tiefenkartenabtastung 204 und die intrinsischen Parameter K der Aufnahmevorrichtung (d. h. der Digitalkamera) sowie die relative Transformation 226 (d. h. T1→2) verwenden, um alle Pixel von Bild 204 in den Bildraum von Bild 202 zu holen und dadurch ein verzerrtes Bild (I1') zu erzeugen. Es versteht sich, dass der Unterschied zwischen dem verzerrten Bild (I1') und dem Bild 202 umso geringer ist, je genauer die Eingabe der spärlichen Tiefenkartenabtastung 204 (d. h. je genauer der Tiefensensor) ist. Das System 102 kann auch dazu betrieben werden, den Übereinstimmungsfehler zwischen dem verzerrten Bild (I1') und Bild 202 zu bestimmen, um die Bestimmung der dichten Tiefenkarte 214 (d. h. d1) zu überwachen.
-
Das Netz 200 kann auch dazu betrieben werden, eine bekannte gleichzeitige Lokalisierung und Abbildung oder das SLAM-System 224 (z. B. ORBSLAM) zu verwenden, um die relative Transformation 226 zwischen ausgewählten Rahmenpaaren zu erzeugen. Zum Beispiel kann das Netz 200 das Bild 202 (d. h. Rahmen 1) und eine spärliche Tiefenkarte 204 (d. h. Rahmen 2) empfangen und an das SLAM-System 224 bereitstellen, das dann die absolute Kamerabahn Ti bestimmt. Die relative Transformation 226 (d. h. T1→2) der Pose zwischen den Rahmen kann T1T2 -1 gleich sein. Es wird in Betracht gezogen, dass, wenn das SLAM-System 224 nicht in der Lage ist, eine robuste Schätzung für einen der bereitgestellten Rahmen bereitzustellen, das Netz 200 den photometrischen Verlust (Lp) schlicht nicht berechnen kann.
-
Es wird auch in Betracht gezogen, dass unter Einbeziehung der spärlichen Tiefenkartenabtastungen 204 als Eingang der Schätzfehler mit zunehmendem Rauschen leicht ansteigen kann. Wenn dem Netz 200 jedoch nicht die spärlichen Tiefenkartenabtastungen 204 bereitgestellt werden, kann der Fehler groß sein und ist das Netz 200 möglicherweise nicht in der Lage, das Nebengeräusch um mehr als 0,1 m zu konvergieren. Es wird daher in Betracht gezogen, dass das SLAM-System 224 das Netz 200 beim Trainieren des Tiefenregressionspfades 212 unterstützt. Das Netz 200 kann darüber hinaus mit einem SLAM-System 224 arbeiten, um zuverlässige Bildposen (z. B. 6-DoF-Pose für Innenraumdatensätze) zu erzeugen, anstelle eines weniger ausgefeilten PnP-Solvers oder Posenschätzungsnetzen.
-
Nach der Bestimmung der Transformation zwischen den beiden Bildern kann das Netz
200 dazu dienen, die Pixel (p
1) des ersten Bildes in den 3D-Raum und dann zurück in die zweite Bildebene (p
1') zu projizieren, unter Verwendung der nachstehenden Gleichung (1):
wobei K die intrinsischen Parameter der Aufnahmevorrichtung (z. B. Kamera) darstellt; T
1→2 die relative Transformation ist; d
1 die dichte Tiefenkarte
214 ist; und p
1 für die Pixel aus dem Farbbild
202 steht. Das Netz
200 kann dann dazu betrieben werden, Bild
208 (d. h. I
2) bilinear neu abzutasten, wobei die zweite Bildebene (p
1') durch Gleichung (1) berechnet wird, um ein verzerrtes Bild (I
1') unter Verwendung von Gleichung (2) unten zu bestimmen:
-
Das Netz
200 kann ferner den Erscheinungsbild-Anpassungsverlust (L
p) mit Hilfe der nachstehenden Gleichung (3) bestimmen:
-
Unter erneuter Bezugnahme auf 2 kann der planare Verlustpfad 220 durch Empfangen des Farbbildes 202 auf einem vortrainierten tiefen Superpixel-Pfad betreibbar sein. Es wird in Betracht gezogen, dass die aus Bild 202 erzeugten Superpixel-Labels (L1) zum Regularisieren der abgeleiteten Oberflächennormalkarte 216 (d. h. n1) und zum Bestimmen der zweiten Ableitung der Tiefenkarte (∇2d1) verwendet werden können, so dass das Netz 200 das Training des Tiefenregressionspfades 212 weiter verbessern kann. Es wird auch in Betracht gezogen, dass der tiefe Superpixel-Pfad 222 während des Trainings des Tiefenregressionspfads 212 nicht aktualisiert werden kann. Es wird in Betracht gezogen, dass, wenn der Tiefenregressionspfad 212 optimal trainiert ist, das Netz 200 dazu dienen kann, während des Betriebs und/oder Tests aus einem einfarbigen Bild (d. h. Bild 202) eine dichte Tiefenkarte 214 zu erzeugen.
-
Es ist allgemein bekannt, dass die Oberflächennormale eine Methode ist, die zur Unterstützung der Tiefenvorhersage verwendet werden kann. Frühere Ansätze regredieren die Oberflächennormale jedoch typischerweise durch überwachtes Trainieren mit aus Tiefenbildern abgeleiteten Grundwahrheits-Normalkarten. Das Netz 200 regularisiert die Oberflächennormale, um die Tiefenschätzung in einem selbstüberwachten Rahmen zu verbessern, ohne Grundwahrheits-Normalkarten zu erfordern. Es wird in Betracht gezogen, dass das Netz 200 eine zuverlässige Beschränkung erfordern könnte, die enger mit der Oberflächennormalen zusammenhängt, um die Notwendigkeit von Grundwahrheits-Normalkarten zu vermeiden. Das Netz 200 kann mit semantischer Bildsegmentierung arbeiten, um die Notwendigkeit von Grundwahrheits-Normalkarten zu vermeiden. Das Netz 200 kann semantische Informationen wie Straßen und Bäume extrahieren, um die Richtungen der geschätzten Normalen zu bestimmen. Zum Beispiel sollte die geschätzte Normale mit einem Straßen-Label nach oben zeigen. Eine solche Verwendung von semantischen Informationen hängt jedoch in hohem Maße von dem bereitgestellten Datensatz ab. Zum Beispiel kann der Trainingsdatensatz 112 ein Innenraumdatensatz wie NYUv2 sein. Bei diesem Trainingsdatensatz 112 darf die Richtung der Digitalkamera nicht senkrecht zum Boden verlaufen. Zur Anpassung der Kamerapositionierung kann das Netz 200 mit dem tiefen Superpixel-Pfad 222 arbeiten, der lokale homogene Regionen als Indikatoren für lokale planare Bereiche darstellt, um die Normalrichtungen zu regularisieren.
-
Für jedes bereitgestellte Bild
202 kann das Netz
200 ein Superpixel-Bild
206 bestimmen, indem es ein bekanntes Modell verwendet, das als Multi-Label-Maske
codiert ist. Das Netz
200 kann davon ausgehen, dass ein Superpixel einen planaren Bereich darstellt, und die Oberflächennormale kann innerhalb des planaren Bereichs dieselbe Richtung haben. Bei Verwendung dieses Ansatzes kann das Netz
200 die Varianz der Normalkartenpixel minimieren, die zu denselben Masken-Labels gehören, wie in Gleichung (4) unten gezeigt:
-
Es wird in Betracht gezogen, dass die kantenbewusste Glättung der Tiefenkarte für eine zusätzliche Tiefenschätzung in die Verlustfunktion einbezogen werden kann. Bekannte Ansätze, die eine Glättung implementieren, schließen im Allgemeinen die Begrenzungen verschiedener Objekte aus, da die Tiefe möglicherweise nicht durchgängig ist (d. h. geometrische Kanten oder Überdeckungskanten). Es wird auch in Betracht gezogen, dass analytische Kanten für eine kantenbewusste Glättung verwendet werden können, aber Laplace-Kanten können redundante Kanten beinhalten, die durch das Erscheinungsbild (z. B. Textur und Beleuchtung) und nicht durch geometrische Beziehungen verursacht werden.
-
Beim Netz
200 wird die Verwendung von Superpixeln zum Steuern des Glättungsprozesses in Betracht gezogen. Die Begrenzungen benachbarter Superpixel-Bereiche können als Superpixel-Kante (Es) definiert werden. Wenn das Netz
200 mit einer geeigneten Anzahl von Superpixeln arbeitet, können die geometrische Kante (E
G), die Superpixel-Kante (Es) und die Laplace-Kante (E
I) der folgenden einschließenden Beziehung folgen: E
G ⊂ E
S ⊂ E
I. Basierend auf dieser Beziehung kann das Netz
200 mit der Superpixel-Kante (E
S) als Annäherung an die geometrische Kante (E
G) arbeiten. Das Netz
200 kann dann die L
1-Normale der zweiten Ableitung der erzeugten Tiefenkarte unter Verwendung von Gleichung (5) unten bestrafen:
-
Es wird in Betracht gezogen, dass das Netz 200 die Superpixel-Kanten ignorieren kann, um die Schärfe entlang der Objektbegrenzungen zu fördern. Das Netz 200 wirkt außerdem dahingehend, zusätzliche Tiefenunterbrechungen zu unterdrücken, um unerwartete Geräusche und Fehler in der geschätzten Tiefe zu vermeiden (z. B. Salz- und Pfefferrauschen, Haarlinienrauschen im planaren Bereich).
-
Schließlich kann das Netz
200 die geschätzte Tiefenkarte mit der spärlichen Grundwahrheits-Tiefenkartenabtastung
204 an jedem Nicht-Null-Pixel unter Verwendung von Gleichung (6) unten vergleichen:
-
Es wird in Betracht gezogen, dass es mehrere Optionen für die Distanzfunktion ||·|| geben kann (z. B. L1-Norm und L2-Norm) und dass die Leistungen der verschiedenen Verlustfunktionen vom Datensatz abhängen können. Es versteht sich auch, dass empirisch L1 eine verbesserte Leistung für RGBD-basierte Datensätze für Innenräume und L2 eine verbesserte Leistung für LiDAR-basierte Datensätze für Außenbereiche aufgrund des Rauschpegels bei Tiefenmessungen bereitstellen kann. Schließlich wird in Betracht gezogen, dass sich mit abnehmender Anzahl von Datensatzabtastungen das Netz 200 in höherem Maße auf die Verluste LP, LN und LC stützen könnte.
-
Das Netz
200 kann dann die abschließende Verlustkostenfunktion (L
N) als gewichtete Kombination der vier Verluste (L
P, L
N, L
D und L
C) mit einem Skalierungsfaktor (λ) unter Verwendung von Gleichung (7) unten berechnen:
wobei die Hochstellung L
(i) den Maßstab angibt. Das Netz
200 kann die letzten drei Terme anhand einer bekannten vierstufigen Pyramide berechnen. Für die abschließende Verlustkostenfunktion kann das Netz
200 mit verschiedenen Skalen mit demselben Gewicht arbeiten. Zum Beispiel können die Gewichte für verschiedene Verlustterme empirisch wie folgt festgelegt werden: λ
2 = 0,2, λ
3 = 0,8 und λ
4 = 0,5.
-
4 veranschaulicht eine Ausführungsform, in der ein Computersystem 440 verwendet werden kann, um einen wenigstens teilweise autonomen Roboter, z. B. ein wenigstens teilweise autonomes Fahrzeug 400, zu steuern. Das Computersystem 440 kann dem in 1 beschriebenen System 100 entsprechen. Der Sensor 430 kann einen oder mehrere Video-/Kamerasensoren und/oder einen oder mehrere Radarsensoren und/oder einen oder mehrere Ultraschallsensoren und/oder einen oder mehrere LiDAR-Sensoren und/oder einen oder mehrere Positionssensoren (wie z. B. GPS) umfassen. Einige oder alle dieser Sensoren sind vorzuziehen, aber nicht unbedingt in Fahrzeug 400 integriert.
-
Alternativ kann der Sensor 430 ein Informationssystem zum Bestimmen eines Zustands des Betätigersystems umfassen. Der Sensor 430 kann Sensordaten oder andere Informationen sammeln, die vom Computersystem 440 verwendet werden sollen. Ein Beispiel für ein solches Informationssystem ist ein Wetterinformationssystem, das einen gegenwärtigen oder zukünftigen Zustand des Wetters in der Umgebung bestimmt. Beispielsweise kann der Klassifikator unter Verwendung des Eingangssignals x etwa Objekte in der Nähe des wenigstens teilweise autonomen Roboters erkennen. Das Ausgangssignal y kann eine Information umfassen, die charakterisiert, wo sich Objekte in der Nähe des wenigstens teilweise autonomen Roboters befinden. Der Steuerbefehl A kann dann in Übereinstimmung mit diesen Informationen bestimmt werden, z. B. um Kollisionen mit den erkannten Objekten zu vermeiden.
-
Der Betätiger 410, der in Fahrzeug 400 integriert sein kann, kann durch eine Bremse, ein Antriebssystem, einen Motor, einen Antriebsstrang oder eine Lenkung von Fahrzeug 400 gegeben sein. Betätigersteuerbefehle können so bestimmt werden, dass der Betätiger (oder die Betätiger) 410 so gesteuert wird (werden), dass das Fahrzeug 400 Kollisionen mit den erkannten Objekten vermeidet. Erkannte Objekte können auch danach klassifiziert werden, als was sie der Klassifikator am wahrscheinlichsten einstuft, z. B. Fußgänger oder Bäume, und Betätigersteuerbefehle A können je nach Klassifizierung bestimmt werden.
-
Die in dieser Patentanmeldung offenbarten Prozesse, Verfahren oder Algorithmen können für eine Verarbeitungsvorrichtung, eine Steuerung oder einen Computer bereitstellbar sein bzw. von dieser/diesem implementiert werden, wobei diese eine beliebige vorhandene, programmierbare elektronische Steuerung oder eine dedizierte elektronische Steuerung einschließen können. In gleicher Weise können die Prozesse, Verfahren oder Algorithmen als Daten, Logik und Anweisungen gespeichert werden, die von einer Steuerung oder einem Computer in vielfältigen Formen ausgeführt werden können, einschließlich, jedoch nicht beschränkt auf dauerhaft auf einem nicht beschreibbaren Medium, etwa ROM-Vorrichtungen, gespeicherte Informationen oder veränderbar auf beschreibbaren Speichermedien wie etwa Disketten, Magnetbändern, CDs, RAM-Vorrichtungen und anderen magnetischen und optischen Datenträgern gespeicherte Informationen. Die Prozesse, Verfahren oder Algorithmen können auch in einem ausführbaren Softwareobjekt implementiert werden. Alternativ können die Prozesse, Verfahren oder Algorithmen insgesamt oder teilweise in geeignete Hardwarekomponenten integriert werden, wie etwa anwendungsspezifische integrierte Schaltungen (Application Specific Integrated Circuits, ASICs), feldprogrammierbare Gatteranordnungen (Field-Programmable Gate Arrays, FPGAs), Zustandsmaschinen, Steuerungen oder sonstige Hardwarekomponenten oder -vorrichtungen oder eine Kombination von Hardware-, Software- und Firmwarekomponenten.
-
Obwohl vorstehend beispielhafte Ausführungsformen beschrieben werden, ist nicht beabsichtigt, dass diese Ausführungsformen alle möglichen Formen der Erfindung beschreiben. Vielmehr sind die in dieser Spezifikation verwendeten Ausdrücke lediglich Ausdrücke zur Beschreibung anstatt der Beschränkung und es ist einzusehen, dass verschiedene Änderungen vorgenommen werden können, ohne das Wesen und den Schutzbereich der Erfindung zu verlassen. Zusätzlich können die Merkmale von verschiedenen Implementierungsausführungen kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden.