-
EINFÜHRUNG
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf die Tiefenabschätzung auf der Grundlage von Bilddaten von Kameras, die an einem Fahrzeug angebracht sind, und insbesondere auf Verfahren und Systeme zur Tiefenabschätzung auf der Grundlage von Bilddaten der Umgebungsansicht.
-
Genaue Tiefendaten sind für viele bestehende und zukünftige Fahrzeugsysteme wichtig. Von der Hindernisvorhersage bis hin zu informativen Benutzeroberflächen erleichtern Tiefendaten die Fahrzeugnutzung. Ein Verfahren zur Gewinnung von Tiefendaten ist das Hinzufügen von LiDARs zu einer Fahrzeugsensorik. Ein anderes Verfahren besteht in der Verwendung von zwei eng beieinander liegenden Frontkameras, die auf die Tiefe hin untersucht werden.
-
LiDARs verursachen zusätzliche Hardware- und Wartungskosten für das Fahrzeug und haben einen erheblichen Energiebedarf. Außerdem liefert LiDAR nur spärliche Tiefenmessungen, so dass eine zusätzliche Verarbeitung erforderlich ist, um sie in dichte Daten umzuwandeln. Stereokameras erfordern ebenfalls zusätzliche Sensoren im Fahrzeug.
-
Dementsprechend ist es wünschenswert, Systeme und Verfahren bereitzustellen, die dichte Tiefendaten mit minimalen zusätzlichen Hardwarekosten für Fahrzeuge liefern können, die bereits über Kameras verfügen, die die Fahrzeugumgebung erfassen. Darüber hinaus werden andere wünschenswerte Merkmale und Eigenschaften der vorliegenden Erfindung aus der nachfolgenden detaillierten Beschreibung und den beigefügten Ansprüchen in Verbindung mit den beigefügten Figuren und dem vorstehenden technischen Gebiet und Hintergrund ersichtlich sein.
-
BESCHREIBUNG
-
Gemäß einem Aspekt wird ein Verfahren zur Steuerung eines Fahrzeugs bereitgestellt. Das Verfahren umfasst: Empfangen von jeweiligen Bilddaten von mindestens zwei Kameras über mindestens einen Prozessor, wobei sich Sichtfelder benachbarter Kameras der mindestens zwei Kameras teilweise überlappen und wobei die mindestens zwei Kameras an dem Fahrzeug angebracht sind; Verarbeiten der jeweiligen Bilddaten durch ein neuronales Netzwerk, wobei das neuronale Netzwerk trainiert wird, um Tiefendaten und semantische Segmentierungsdaten als Ausgaben bereitzustellen, und wobei das neuronale Netzwerk unter Verwendung einer Verlustfunktion trainiert wird, die eine Vielzahl von Verlusttermen kombiniert, einschließlich mindestens eines semantischen Segmentierungsverlustterms und eines Panoramaverlustterms, wobei der Panoramaverlustterm ein Ähnlichkeitsmaß in Bezug auf überlappende Bereiche der jeweiligen Bilddaten enthält, die jeweils einem Bereich überlappender Sichtfelder der benachbarten Kameras entsprechen; Steuern einer Funktion des Fahrzeugs über den mindestens einen Prozessor auf der Grundlage der Tiefendaten.
-
In einer Ausführungsform sind mindestens vier Kameras am Fahrzeug angebracht, die eine Rundumsicht auf das Fahrzeug ermöglichen.
-
Gemäß einer Ausführungsform umfasst die Vielzahl von Verlusttermen einen Disparitätsverlustterm, wobei Disparität der Kehrwert der Tiefe ist.
-
Gemäß einer Ausführungsform umfasst die Vielzahl von Verlusttermen einen Disparitätsglättungs-Verlustterm, wobei die Disparität der Kehrwert der Tiefe ist.
-
In einer Ausführungsform ist der Verlustterm der Disparitätsglättung variabel, so dass er an den Bildrändern geringer ist.
-
Gemäß einer Ausführungsform umfasst das Verfahren die Steuerung der Funktion des Fahrzeugs über den mindestens einen Prozessor auf der Grundlage der Tiefendaten und der semantischen Segmentierungsdaten.
-
Gemäß einer Ausführungsform umfasst das Verfahren die Durchführung der Hinderniserkennung und -vermeidung auf der Grundlage der Tiefendaten und der semantischen Segmentierungsdaten und die Steuerung von mindestens einer der Komponenten Lenkung, Bremsen und Antrieb des Fahrzeugs auf der Grundlage der Ausgabe der Hinderniserkennung und -vermeidung.
-
Gemäß einem Aspekt wird ein Verfahren zum Trainieren eines neuronalen Netzwerks und zur Verwendung des trainierten neuronalen Netzwerks zur Steuerung eines Fahrzeugs bereitgestellt. Das Verfahren umfasst das Empfangen, über mindestens einen Prozessor, jeweiliger Trainingsbilddaten, die Bilddaten darstellen, die von mindestens zwei Kameras empfangen wurden, wobei sich die Sichtfelder benachbarter Kameras der mindestens zwei Kameras teilweise überlappen; das Verarbeiten der jeweiligen Trainingsbilddaten durch ein neuronales Netzwerk, das Tiefendaten und semantische Segmentierungsdaten als Ausgaben bereitstellt; Empfangen, über den mindestens einen Prozessor, von Grundwahrheitsdaten, die semantische Segmentierungsdaten der Grundwahrheit enthalten; Trainieren, über den mindestens einen Prozessor, des neuronalen Netzwerks auf der Grundlage einer Verlustfunktion, wobei die Verlustfunktion eine Vielzahl von Verlusttermen kombiniert, die mindestens einen semantischen Segmentierungsverlustterm und einen Panoramaverlustterm enthalten; wobei der Panorama-Verlustterm ein Ähnlichkeitsmaß in Bezug auf überlappende Bildfelder der jeweiligen Trainingsbilddaten enthält, die jeweils einem Bereich überlappender Sichtfelder der benachbarten Kameras entsprechen; und wobei der semantische Segmentierungs-Verlustterm eine Differenz zwischen den semantischen Segmentierungsdaten der Grundwahrheit und den von dem neuronalen Netzwerk ausgegebenen semantischen Segmentierungsdaten quantifiziert; Verwenden des trainierten neuronalen Netzwerks zum Verarbeiten von Bilddaten, die von mindestens zwei an dem Fahrzeug angebrachten Fahrzeugkameras empfangen werden, wobei sich die Sichtfelder benachbarter Fahrzeugkameras der mindestens zwei Fahrzeugkameras teilweise überlappen, wodurch Live-Tiefendaten und Live-Semantiksegmentierungsdaten als Ausgaben bereitgestellt werden; Steuern einer Funktion des Fahrzeugs über den mindestens einen Prozessor auf der Grundlage der Live-Tiefendaten.
-
In einer Ausführungsform sind mindestens vier Fahrzeugkameras am Fahrzeug angebracht, um eine Rundumsicht des Fahrzeugs zu ermöglichen.
-
Gemäß einer Ausführungsform enthält die Vielzahl von Verlusttermen einen Disparitätsverlustterm, wobei die Disparität der Kehrwert der Tiefe ist, wobei die Grundwahrheitsdaten Grundwahrheits-Disparitätsdaten enthalten und wobei der Disparitätsverlustterm eine Differenz zwischen den Grundwahrheits-Disparitätsdaten und den Disparitätsdaten quantifiziert, die aus den vom neuronalen Netz ausgegebenen Tiefendaten abgeleitet werden.
-
Gemäß einer Ausführungsform umfasst die Vielzahl von Verlusttermen einen Verlustterm der Disparitätsglättung, wobei die Disparität der Kehrwert der Tiefe ist und wobei der Term der Disparitätsglättung eine Glättung der Disparitätsdaten quantifiziert, die aus den vom neuronalen Netz ausgegebenen Tiefendaten abgeleitet wird.
-
In einer Ausführungsform ist der Verlustterm der Disparitätsglättung variabel, so dass er an den Bildrändern niedrigere Werte aufweist.
-
Gemäß einer Ausführungsform wird der Verlustterm für die Disparitätsglättung durch folgende Schritte berechnet: Auffinden von Bildkanten; und Anwenden einer Glättungssteuerungsfunktion, die auf der Grundlage der gefundenen Bildkanten variiert.
-
Gemäß einer Ausführungsform werden die Bildkanten auf der Grundlage der Auswertung lokaler Bildintensitätsänderungen bestimmt.
-
Gemäß einer Ausführungsform wird der Panorama-Verlustterm durch folgende Schritte berechnet: Projizieren der jeweiligen Bilddaten in ein kombiniertes gleichwinkliges Panoramabild; Anwenden einer Maske auf das kombinierte gleichwinklige Panoramabild, um die überlappenden Bildfelder zu extrahieren; und Durchführen des Ähnlichkeitsmaßes an den überlappenden Bildfeldern, um die Ähnlichkeit der überlappenden Bildfelder zu quantifizieren.
-
Gemäß einer Ausführungsform umfasst das Verfahren die Steuerung der Funktion des Fahrzeugs über den mindestens einen Prozessor auf der Grundlage der Tiefendaten und der semantischen Segmentierungsdaten.
-
Gemäß einem Aspekt wird ein Fahrzeug bereitgestellt, das mindestens zwei Kameras umfasst, wobei sich die Sichtfelder benachbarter Kameras der mindestens zwei Kameras teilweise überlappen und wobei die mindestens zwei Kameras an dem Fahrzeug angebracht sind; mindestens einen Prozessor, der in betriebsfähiger Kommunikation mit den mindestens zwei Kameras steht, wobei der mindestens eine Prozessor so konfiguriert ist, dass er Programmanweisungen ausführt, wobei die Programmanweisungen so konfiguriert sind, dass sie den mindestens einen Prozessor veranlassen, Folgendes zu tun Empfangen jeweiliger Bilddaten von den mindestens zwei Kameras; Verarbeiten der jeweiligen Bilddaten durch ein neuronales Netzwerk, wobei das neuronale Netzwerk trainiert wird, um Tiefendaten und semantische Segmentierungsdaten als Ausgaben bereitzustellen, und wobei das neuronale Netzwerk unter Verwendung einer Verlustfunktion trainiert wird, die eine Vielzahl von Verlusttermen kombiniert, einschließlich mindestens eines semantischen Segmentierungsverlustterms und eines Panoramaverlustterms, wobei der Panoramaverlustterm ein Ähnlichkeitsmaß in Bezug auf überlappende Bereiche der jeweiligen Bilddaten enthält, die jeweils einem Bereich überlappender Sichtfelder der benachbarten Kameras entsprechen; und Steuern einer Funktion des Fahrzeugs auf der Grundlage der Tiefendaten.
-
In einer Ausführungsform sind mindestens vier Kameras am Fahrzeug angebracht, die eine Rundumsicht auf das Fahrzeug ermöglichen.
-
Gemäß einer Ausführungsform umfasst die Vielzahl von Verlusttermen einen Disparitätsverlustterm, wobei Disparität der Kehrwert der Tiefe ist.
-
Gemäß einer Ausführungsform umfasst die Vielzahl von Verlusttermen einen Disparitätsglättungsverlustterm, wobei die Disparität der Kehrwert der Tiefe ist und wobei der Disparitätsglättungsverlustterm variabel ist, so dass er an Bildrändern niedrigere Werte aufweist.
-
Figurenliste
-
Die vorliegende Offenbarung wird im Folgenden in Verbindung mit den folgenden Figuren beschrieben, wobei gleiche Bezugsziffern gleiche Elemente bezeichnen und wobei:
- 1 ist ein funktionales Blockdiagramm eines Systems zur Tiefenschätzung in einer Inferenzstufe gemäß einer beispielhaften Ausführungsform;
- 2 ist ein funktionelles Blockdiagramm eines Systems zur Tiefenschätzung in einer Trainingsstufe gemäß einer beispielhaften Ausführungsform;
- Die 3A und 3B zeigen Diagramme zur Bildprojektion in Übereinstimmung mit einer beispielhaften Ausführungsform;
- 4 ist ein Flussdiagramm eines Verfahrens zum Trainieren eines neuronalen Netzes gemäß einer beispielhaften Ausführungsform; und
- 5 ist ein Flussdiagramm eines Verfahrens zur Steuerung eines Fahrzeugs unter Verwendung der Ausgaben eines trainierten neuronalen Netzes gemäß einer beispielhaften Ausführungsform.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende detaillierte Beschreibung ist lediglich beispielhaft und soll die Offenbarung oder deren Anwendung und Verwendung nicht einschränken. Darüber hinaus besteht nicht die Absicht, durch die im vorangegangenen Hintergrund oder in der folgenden detaillierten Beschreibung dargestellte Theorie gebunden zu sein.
-
Wie hierin verwendet, bezieht sich der Begriff Modul auf jede Hardware, Software, Firmware, elektronische Steuerkomponente, Verarbeitungslogik und/oder Prozessorvorrichtung, einzeln oder in beliebiger Kombination, einschließlich, aber nicht beschränkt auf: anwendungsspezifische integrierte Schaltungen (ASIC), eine elektronische Schaltung, einen Prozessor (gemeinsam, dediziert oder als Gruppe) und einen Speicher, der ein oder mehrere Software- oder Firmware-Programme ausführt, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten, die die beschriebene Funktionalität bereitstellen.
-
Ausführungsformen der vorliegenden Offenbarung können hier in Form von funktionalen und/oder logischen Blockkomponenten und verschiedenen Verarbeitungsschritten beschrieben werden. Solche Blockkomponenten können durch eine beliebige Anzahl von Hardware-, Software- und/oder Firmware-Komponenten realisiert werden, die zur Ausführung der angegebenen Funktionen konfiguriert sind. Beispielsweise kann eine Ausführungsform der vorliegenden Offenbarung verschiedene integrierte Schaltungskomponenten verwenden, z. B. Speicherelemente, digitale Signalverarbeitungselemente, Logikelemente, Nachschlagetabellen oder Ähnliches, die eine Vielzahl von Funktionen unter der Kontrolle eines oder mehrerer Mikroprozessoren oder anderer Steuergeräte ausführen können. Darüber hinaus wird der Fachmann erkennen, dass Ausführungsformen der vorliegenden Offenbarung in Verbindung mit einer beliebigen Anzahl von Systemen verwendet werden können und dass die hier beschriebenen Systeme lediglich beispielhafte Ausführungsformen der vorliegenden Offenbarung sind.
-
Der Kürze halber werden konventionelle Techniken im Zusammenhang mit Signalverarbeitung, Datenübertragung, Signalisierung, Steuerung und anderen funktionellen Aspekten der Systeme (und der einzelnen Betriebskomponenten der Systeme) hier nicht im Detail beschrieben. Darüber hinaus sollen die in den verschiedenen Abbildungen dargestellten Verbindungslinien beispielhafte funktionale Beziehungen und/oder physikalische Kopplungen zwischen den verschiedenen Elementen darstellen. Es sollte beachtet werden, dass viele alternative oder zusätzliche funktionale Beziehungen oder physikalische Verbindungen in einer Ausführungsform der vorliegenden Offenbarung vorhanden sein können.
-
Hierin werden Systeme und Verfahren zur Schätzung einer dichten Tiefenkarte aus Eingangsbildern von einer Vielzahl von an einem Fahrzeug montierten Kameras beschrieben. Die dichte Tiefenkarte wird durch Verarbeitung der Bilder mit einem Deep Neural Network (DNN) geschätzt: Ein mögliches DNN umfasst eine Encoder-Decoder-Architektur zur Erzeugung von Tiefendaten und semantischen Segmentierungsdaten. In einer Ausführungsform wird das DNN auf der Grundlage einer Verlustfunktion trainiert, die Verlustbegriffe wie Disparitätsverlust (1/Tiefe), Disparitätsglättungsverlust, semantischer Segmentierungsverlust und Panoramaverlust kombiniert. Bei der Verlustfunktion handelt es sich um eine einfache Multitasking-Lernverlustfunktion. Die vom trainierten DNN ausgegebenen Tiefendaten können in einer Vielzahl von Fahrzeuganwendungen verwendet werden, z. B. für das Splicing oder Stitching von Bildern, die Abschätzung der Entfernung von Hindernissen und die Steuerung des Fahrzeugs zur Vermeidung von Hindernissen, die Vorhersage der Tiefe, die Änderung der Sichtperspektive und die Erzeugung der Umgebungsansicht.
-
In einigen Ausführungsformen werden die Bilddaten der Umgebungskameras vom DNN verarbeitet, um die Konsistenz der Tiefenschätzung zu erzwingen. Bei den Umgebungskameras kann es sich um Weitwinkelkameras handeln. Der Verlustterm „Panorama“ verwendet die Reprojektion der Bilder der Umgebungskameras auf einen gemeinsamen Blickpunkt als Teil der Verlustfunktion. Insbesondere wird ein Ähnlichkeitsmaß verwendet, das überlappende Bildausschnitte von benachbarten Umgebungskameras vergleicht.
-
Die hier beschriebenen Systeme und Verfahren erzeugen eine dichte Tiefenschätzung von Fahrzeugumgebungskameras unter Verwendung des DNN. Das DNN verwendet Multi-Task-Lernen und lernt sowohl die Tiefe als auch die semantische Segmentierung mit. Als Teil der Auswertung des Panoramaverlustterms werden bekannte extrinsische und intrinsische Kameraparameter sowie die abgeleitete Tiefe verwendet, um eine 3D-Punktwolke zu erzeugen. Die 3D-Punktwolke wird auf eine gemeinsame Ebene projiziert, um ein Panoramabild zu erstellen. Die Verlustbedingungen für das Panoramabild bewerten die Ähnlichkeit der sich überlappenden Regionen des Panoramabildes als Teil der Verlustfunktion. Die Verlustfunktion kann die Disparität, ihre Glätte, die semantische Segmentierung und den Panoramaverlust in einer einzigen Verlustfunktion kombinieren.
-
1 veranschaulicht ein System 30 zur Tiefenschätzung und semantischen Segmentierung von Bilddaten 16, die von einer Vielzahl von Kameras 14a bis 14d, die an einem Fahrzeug 12 angebracht sind, empfangen werden. Das Tiefenschätzungssystem 30 ist im Fahrzeug 12 enthalten und umfasst einen Prozessor 24, einen Speicher 26 und ein neuronales Netzwerk 18. Die Kameras 14a bis 14d sind am Fahrzeug 12 an mehreren verschiedenen Stellen angebracht, um Umgebungsbilder zu liefern. In der dargestellten Ausführungsform gibt es vier Kameras 14a bis 14d. Eine erste Kamera 14a ist eine nach vorne gerichtete Kamera. Eine zweite Kamera 14b ist eine nach links gerichtete Kamera. Eine dritte Kamera 14c ist eine nach hinten gerichtete Kamera. Eine vierte Kamera 14d ist eine nach rechts gerichtete Kamera. Das Fahrzeug 12 kann mit einer geringeren oder größeren Anzahl von Kameras 14a bis 14d ausgestattet sein. Bei den Kameras 14a bis 14d handelt es sich in einer Ausführungsform um Weitwinkelkameras, die auch als Fisheye-Kameras bezeichnet werden. Die erste/vordere Kamera 14a hat ein sich teilweise überschneidendes Sichtfeld mit der zweiten/linken Kamera 14b und mit der vierten/rechten Kamera 14d. Die zweite/linke Kamera 14b hat ein teilweise überlappendes Sichtfeld mit der dritten/hinteren Kamera 14c und mit der ersten/vorderen Kamera 14a. Die vierte/rechte Kamera 14d hat ein teilweise überlappendes Sichtfeld mit der dritten/hinteren Kamera 14c und der ersten/vorderen Kamera 14a. Auf diese Weise liefern die von den Kameras 14a bis 14d ausgegebenen Bilddaten 16 einen 360°-Rundumblick um das Fahrzeug 12. Die Kameras 14a bis 14d können Farbbilddaten 16 wie z. B. Rot-Grün-Blau (RGB)-Bilddaten 16 liefern.
-
Das System 30 ist im Zusammenhang mit einem Fahrzeug 12, insbesondere einem Automobil, dargestellt (z. B. in diesem enthalten). Das System 30 ist jedoch auch in anderen Fahrzeugkontexten nützlich, z. B. in Flugzeugen, Seeschiffen usw. In verschiedenen Ausführungsformen ist das Fahrzeug 12 ein autonomes Fahrzeug und das System 30 ist in das autonome Fahrzeug 12 integriert. Das System 30 ist jedoch in jeder Art von Fahrzeug (autonom oder nicht) nützlich, das Umgebungskameras 14a bis 14d umfasst, die Bilddaten 16 erzeugen, die vom neuronalen Netz 18 kombiniert und verarbeitet werden können, um Tiefendaten 20 und semantische Segmentierungsdaten 22 abzuleiten. Das autonome Fahrzeug 12 ist beispielsweise ein Fahrzeug, das automatisch gesteuert wird, um Fahrgäste von einem Ort zu einem anderen zu befördern. Das Fahrzeug 12 ist in der gezeigten Ausführungsform als Pkw dargestellt, aber es sollte verstanden werden, dass jedes andere Fahrzeug, einschließlich Motorräder, Lastwagen, Sport Utility Vehicles (SUVs), Freizeitfahrzeuge (RVs), Wasserfahrzeuge, Flugzeuge usw., ebenfalls verwendet werden kann. In einer beispielhaften Ausführungsform ist das autonome Fahrzeug 12 ein so genanntes Automatisierungssystem der Stufe vier oder fünf. Ein System der Stufe Vier bedeutet „hohe Automatisierung“, d. h. ein automatisiertes Fahrsystem führt alle Aspekte der dynamischen Fahraufgabe durch, auch wenn ein menschlicher Fahrer nicht angemessen auf eine Aufforderung zum Eingreifen reagiert. Ein System der Stufe 5 bedeutet „Vollautomatisierung“, d. h. ein automatisiertes Fahrsystem führt alle Aspekte der dynamischen Fahraufgabe unter allen Straßen- und Umgebungsbedingungen, die ein menschlicher Fahrer bewältigen kann, vollständig aus.
-
In Ausführungsformen umfasst das Fahrzeug 12 ein Fahrzeugsteuergerät 40, das eine oder mehrere Fahrzeugfunktionen auf der Grundlage von mindestens Tiefendaten 20 und optional auch der semantischen Segmentierungsdaten 22 steuert. Das Fahrzeugsteuergerät 40 kann ein oder mehrere fortschrittliche Fahrerassistenzsysteme umfassen, die auf der Grundlage der Ausgaben des neuronalen Netzes 18 elektronische Fahrerassistenz bereitstellen. Das Fahrzeugsteuergerät 40 kann einen autonomen oder teilautonomen Fahrer umfassen, der das Fahrzeug 12 über einen oder mehrere Fahrzeugaktuatoren (z. B. Aktuatoren von Antriebs-, Brems- und Lenksystemen) auf der Grundlage der Tiefendaten 20 und der semantischen Segmentierungsdaten 22 steuert. In Ausführungsformen umfasst das Fahrzeugsteuergerät 40 Steuermodule, die die Tiefendaten 20 und die semantischen Segmentierungsdaten 22 empfangen, um die auf die Fahrzeugaktuatoren anzuwendenden Steueranweisungen zu bestimmen. Die Steuermodule des Fahrzeugsteuergeräts 40 können Lokalisierungs- und Umgebungswahrnehmungsalgorithmen ausführen, die die Tiefendaten 20 und die semantischen Segmentierungsdaten 22 verarbeiten, um die Steueranweisungen zu bestimmen. Die Steuermodule können ein Modul zur Hinderniserkennung und - Vermeidung enthalten, das die Tiefendaten 20 und die semantischen Segmentierungsdaten 22 verarbeitet, um die Art der Hindernisse und die dreidimensionale Lage der Hindernisse zu bewerten. Die Hindernisse werden verfolgt und ihre Flugbahn in drei Dimensionen kann vorhergesagt werden. Das Fahrzeugsteuergerät 40 kann daraufhin das Fahrzeug 12 so steuern, dass es Kollisionen mit den verfolgten Hindernissen vermeidet.
-
Wie in 1 dargestellt, umfasst das Tiefenschätzungssystem 30 mindestens einen Prozessor 24, einen Speicher 26 und dergleichen. Der Prozessor 24 kann in dem Speicher 26 gespeicherte Programmanweisungen 28 ausführen. Der Prozessor 24 kann sich auf eine Zentraleinheit (CPU), eine Grafikverarbeitungseinheit (GPU) oder einen speziellen Prozessor beziehen, auf dem die Verfahren und Funktionen gemäß der vorliegenden Offenbarung ausgeführt werden. Der Speicher 26 kann aus einem flüchtigen Speichermedium und/oder einem nichtflüchtigen Speichermedium bestehen. Beispielsweise kann der Speicher 26 aus einem Festwertspeicher (ROM) und/oder einem Direktzugriffsspeicher (RAM) bestehen. Der Speicher 26 speichert Computerprogrammanweisungen 28, die von dem Prozessor 24 ausgeführt werden, um die hier beschriebenen Blöcke, Module und Verfahrensschritte zu implementieren. Die durch das Tiefenschätzungssystem 30 implementierten Verfahren umfassen den Empfang der Bilddaten 16, das Durchlaufen der Bilddaten 16 durch das neuronale Netz 18 und die Ausgabe von Tiefendaten 20 und semantischen Segmentierungsdaten 22 in der Inferenzphase. In der Trainingsstufe, die in 2 dargestellt ist, wird eine Verlustfunktion 52 ausgewertet, die eine Vielzahl von konzeptionell unterschiedlichen Verlusttermen enthält, wie weiter unten beschrieben wird. Das neuronale Netz 18 kann eine der verschiedenen Arten von neuronalen Netzen sein, einschließlich DNNs wie Convolutional Neural Networks (CNNs). In einer Ausführungsform wird das neuronale Netz 18 mit einer Encoder-Decoder-Architektur oder als Generatives Adversariales Netz (GAN) implementiert.
-
In
2 ist ein Tiefenschätzungssystem 50 in der Trainingsphase dargestellt. Nachdem das neuronale Netz 18 trainiert wurde, kann es im Tiefenschätzungssystem 30 im Fahrzeug 12 in einer Inferenzphase eingesetzt werden, wie in
1 gezeigt. Das Tiefenschätzungssystem 50 in der Trainingsstufe verfügt über einen Prozessor 62 und einen Speicher 64, der Computerprogrammanweisungen 66 speichert. Der Prozessor 62, der Speicher 64 und die Computerprogrammanweisungen 66 können entsprechend der oben in Bezug auf den Prozessor 24, den Speicher 26 und die Computerprogrammanweisungen 28 von
1 beschriebenen Vorgehensweise implementiert werden. Die Computerprogrammanweisungen 66 werden von dem Prozessor 62 ausgeführt, um einen Trainingsprozess zu steuern. Im Trainingsprozess wird die Verlustfunktion 52 berechnet und durch iterative Anpassung der Gewichte des neuronalen Netzes 18 optimiert, bis eine maximale oder minimale Lösung erreicht ist. In einer Ausführungsform ist die Verlustfunktion L:
-
In Gleichung 1 ist L1 der Disparitätsverlust, der die Differenz zwischen einer Disparitätskarte, die aus den vom neuronalen Netz 18 ausgegebenen Tiefendaten 20 abgeleitet wird, und den in den Grundwahrheitsdaten 58 enthaltenen Grundwahrheits-Tiefendaten misst. Der Glättungs- oder Disparitätsglättungsverlust ist ein Maß dafür, wie glatt die Disparitätskarte in Bildbereichen außerhalb der Bildkanten ist. Einem Mangel an Disparitätsglätte an den Bildrändern wird wenig Gewicht beigemessen, was durch eine Glättungssteuerungsfunktion kontrolliert wird. SemSeg oder semantischer Segmentierungsverlust ist ein Maß für die Ähnlichkeit zwischen den vom neuronalen Netz 18 ausgegebenen semantischen Segmentierungsdaten 22 und den in den Grundwahrheitsdaten 58 enthaltenen semantischen Segmentierungsdaten. Der Panoramaverlust ist ein Maß für die Unähnlichkeit von Bildfeldern in sich überlappenden Regionen der Eingabebilder. Die sich überschneidenden Regionen der Eingangsbilder werden bestimmt, indem zunächst die Bilddaten der verschiedenen Kameras in ein gemeinsames globales dreidimensionales Koordinatensystem gebracht und dann die Bilddaten in ein gleichwinkliges Panorama projiziert werden. λ1, λ2, λ3 and λ4 sind abstimmbare Gewichtungsfaktoren. Die Disparität ist definiert als der Kehrwert der Tiefe.
-
Grundwahrheitsdaten 58 und Trainingsbilddaten 54 werden dem Tiefenschätzungssystem 50 in der Trainingsstufe als Eingaben zur Verfügung gestellt. Die Grundwahrheitsdaten 58 umfassen Grundwahrheits-Tiefendaten und Grundwahrheits-Semantiksegmentierungsdaten. Die Trainingsbilddaten 54 können einer Datenbank mit Umgebungsbilddaten entnommen werden, die von den an einem Fahrzeug 12 montierten Kameras 14a bis 14d aufgezeichnet wurden, wie oben in Bezug auf 1 beschrieben. Die Trainingsbilddaten 54 können in anderen Ausführungsformen simuliert werden. Die Bodenwahrheitsdaten 58 können von der Simulation ausgegeben werden, wenn eine Simulation zur Erzeugung der Trainingsbilddaten 54 verwendet wird. Die Tiefenwahrheitsdaten können auf der Grundlage der Tiefenerkennungsfähigkeiten von Stereokamerasystemen, LiDAR-Geräten, RADAR-Geräten oder anderen Tiefenerkennungsgeräten erzeugt werden, die am Fahrzeug 12 angebracht sind und bei der Aufnahme der Trainingsbilddaten 54 mit den Kameras 14a bis 14d zusammenarbeiten. Die semantischen Segmentierungsgrundwahrheitsdaten können durch automatische oder menschliche Kennzeichnung von Objekten auf der Grundlage der Trainingsbilddaten 54 erzeugt werden. Alle möglichen Arten von Hindernissen und Objekten können als Teil der semantischen Segmentierungsausgabe des neuronalen Netzes 18 und als Teil der Grundwahrheitsdaten 58 gekennzeichnet werden, z. B. andere Fahrzeuge, Fahrzeugtyp, Fußgänger, Bäume, Fahrbahnmarkierungen, Bordsteine, Radfahrer usw..
-
Wie in Gleichung 1 beschrieben, enthält die Verlustfunktion 52 eine Vielzahl von Verlusttermen, die in Übereinstimmung mit einer beispielhaften Ausführungsform näher beschrieben werden. Gegeben
Satz von vorhergesagten Disparitätskarten und
Satz von Grundwahrheits-Disparitätskarten, dann kann der Verlustterm L
1 berechnet werden durch:
-
Gleichung 2 ist ein Maß für den Fehler zwischen den vom neuronalen Netz 18 ausgegebenen Tiefendaten 20 und den tatsächlichen Tiefendaten. Das heißt, Gleichung 2 quantifiziert, wie korrekt das System die Tiefendaten 20 im Vergleich zur Grundwahrheit ableitet. Die Verlustfunktion 52 kann auch andere Maße zur Quantifizierung des Disparitätsverlustterms verwenden. Der Satz der vorhergesagten Disparitätskarten kann auf der Grundlage einer Umkehrung der vom neuronalen Netz 18 als Teil der Tiefendaten 20 ausgegebenen Tiefenkarten abgeleitet werden. Der Satz von Grundwahrheits-Disparitätskarten kann auf der Grundlage einer Umkehrung der Grundwahrheits-Tiefenkarten abgeleitet werden, die in den Grundwahrheits-Tiefendaten enthalten sind.
-
Der Verlustterm der Disparitätsglättung der Verlustfunktion 52 wird durch ein Verfahren berechnet, bei dem zunächst die Kanten des Eingangsbildes angenähert werden Δ
x, Δ
y. Die Bildkanten können auf verschiedene Weise ermittelt werden. Ein Verfahren wandelt die Trainingsbilddaten 54, die Farbbilddaten sind, in Graustufen-Intensitätskarten um. Eine absolute Intensitätsdifferenz wird entlang der x- und y-Achse bestimmt, um Intensitäts-Delta-Karten zu ermitteln Δ
x, Δ
y. Die absolute Differenz der Disparitätswerte wird für benachbarte Pixel berechnet, um eine D
x, D
y. Die Disparitäts-Delta-Karten und die Intensitäts-Delta-Karten werden unter Verwendung des Ausdrucks kombiniert:
-
In Gleichung 3, α
s der Glättungsfaktor und
und
sind Glättungssteuerungsfunktionen. Gleichung 3 liefert ein Maß für die Glätte in den vom neuronalen Netz 18 ausgegebenen Tiefendaten 20 in Form einer variablen Funktion, die an bestimmten Bildrändern weniger Gewicht hat. Das heißt, die Glättungssteuerungsfunktionen sind variabel, so dass an Bildkanten (wo Δ
x, Δ
y relativ hoch sind) die Tiefenglättung mit einer kleineren Glättungssteuervariablen multipliziert wird als in Bildbereichen abseits von Bildkanten. Bildkanten sind in Gleichung 3 als die Bereiche mit relativ großen Intensitätssprüngen definiert. Auf diese Weise wird die Einschränkung der Tiefenglättung in Bereichen außerhalb der Bildkanten strenger gehandhabt, während lokale Tiefenschwankungen dort, wo an den Bildkanten Tiefenänderungen zu erwarten sind, eher toleriert werden. In einer anderen Ausführungsform könnten die Bildkanten auf andere Weise bestimmt werden. Beispielsweise haben sich Verfahren des maschinellen Lernens als genau geeignet erwiesen, um Bildkanten zu lokalisieren, und auf dieser Grundlage könnte eine Karte der Nicht-Bildkanten erstellt werden, so dass die Tiefenglättung nur in den Nicht-Bildkantenregionen durchgeführt wird (oder auf eine verzerrte Weise angewendet wird).
-
Der semantische Segmentierungsverlustterm der Verlustfunktion 52 wird anhand einer kategorialen Kreuzentropiefunktion berechnet. Angesichts der vorhergesagten Klasse ŷ
i die in den semantischen Segmentierungsdaten 22 enthalten ist, die vom neuronalen Netz 18 ausgegeben werden, und der Grundwahrheitsklasse y
i die in den Grundwahrheitsdaten 58 enthalten ist, ist der semantische Segmentierungsverlustterm definiert als:
-
Gleichung 4 ist ein Maß für die Korrektheit der vom neuronalen Netz 18 ausgegebenen semantischen Segmentierungsdaten 22 in Bezug auf die Klassifizierungsetiketten der Grundwahrheit. Obwohl eine Kreuzentropieberechnung vorgeschlagen wird, sind auch andere Verfahren zur Quantifizierung der Ähnlichkeit zwischen der Klassifizierungsvorhersage des neuronalen Netzes 18 und der Basiswahrheit möglich.
-
Der Panorama-Verlustterm der Verlustfunktion 52 wird berechnet, indem zunächst ein Panoramabild aus den Trainingsbilddaten 54 in einem gemeinsamen globalen Koordinatenrahmen unter Verwendung einer Bildprojektionsverfahren erstellt wird. Überlappende Bildfelder aus dem Panoramabild werden dann extrahiert und ein Bilddifferenzmaß zwischen überlappenden Bildfeldern wird zur Quantifizierung des Panoramaverlustterms verwendet. In einer beispielhaften Ausführungsform und unter Bezugnahme auf
3A wird jedes Pixel 60 in einem Bild 65 von einer der Kameras in eine dreidimensionale kartesische Koordinate in einem lokalen Koordinatenrahmen der Kamera und unter Verwendung kameraeigener Parameter, die in den intrinsischen und extrinsischen Kameradaten 56 und den Tiefendaten 20 enthalten sind, unprojiziert. Das heißt, für jede u/v-Koordinate eines Pixels 60 im Bild 65 gibt es eine entsprechende Koordinate in kartesischen XYZ-Koordinaten auf der Grundlage der kamerainternen Parameter, die einen Richtungsvektor ergeben. Der Richtungsvektor wird mit der Tiefe multipliziert, die in den vom neuronalen Netz 18 vorhergesagten Tiefendaten 20 enthalten ist, um eine vollständige lokale 3D-Koordinate in einem lokalen kartesischen Koordinatensystem der Kamera zu erhalten. Die im vorigen Schritt abgeleiteten lokalen 3D-Koordinaten werden in globale 3D-Koordinaten transformiert, indem sie unter Verwendung der extrinsischen Parameter der Kamera entsprechend den intrinsischen und extrinsischen Kameradaten 56 gedreht und verschoben werden. Auf diese Weise wird eine 3D-Punktwolke erzeugt, die eine Kombination der Umgebungsbilder in einem globalen, gemeinsamen Koordinatenrahmen darstellt. Aus den globalen 3D-Koordinaten jedes Bildes in den Surround-Trainingsbilddaten 54 wird ein gleichwinkliges Panorama abgeleitet, indem es berechnet wird:
-
In Gleichung 5 werden der Abstand d und die Winkel φ, θ können mit Bezug auf 3B verstanden werden, die ebenfalls einen Punkt 63 im Panorama zeigt, der dem Pixel 60 im Bild von 3A entspricht. Die x-, y- und z-Koordinaten sind die im vorherigen Schritt ermittelten globalen 3D-Koordinaten. Die gleichwinkligen Koordinaten werden auf die Panoramadimensionen normiert, um ein kombiniertes Panoramabild zu erhalten, bei dem sich die Bilddaten jeder Kamera teilweise mit den Bilddaten benachbarter Kameras räumlich überlappen. Die überlappenden Bilddaten in der konstruierten Panoramaprojektion werden als überlappende Bildfelder extrahiert und ein Ähnlichkeitsmaß wird durchgeführt, um den Grad der Bildähnlichkeit zu quantifizieren.
-
In einer Ausführungsform umfassen die Trainingsbilddaten 54 Trainingsbilddaten von (oder simuliert als ob von) Paaren benachbarter Kameras, die an einem Fahrzeug 12 montiert sind, wie in
1 gezeigt, wie z. B. ein vorderes und linkes Kamerapaar, ein vorderes und rechtes Kamerapaar, ein rechtes und hinteres Kamerapaar und ein linkes und hinteres Kamerapaar. Für die Trainingsbilddaten 54 von jedem Paar benachbarter Kameras wird eine Maske überlappender Regionen im Panorama erstellt, die auf sich schneidenden Regionen mit gültigen Daten in den beiden Kameras basiert, und ein strukturelles Ähnlichkeitsindexmaß (SSIM) SSIM (zum Beispiel) wird berechnet, um die Ähnlichkeit überlappender Bildfelder im konstruierten Panorama zu quantifizieren. Die SSIM-Funktion kann wie folgt definiert werden:
-
Gleichung 6 misst die Ähnlichkeit zwischen zwei überlappenden Bildfeldern, die aus dem konstruierten Panorama extrahiert wurden. µ_ ist der Mittelwert der Daten, o_ ist die Kovarianz und c_ sind Konstanten.
-
Unter Bezugnahme auf die 3 und 4 und unter fortgesetzter Bezugnahme auf die 1 und 2 veranschaulichen die Flussdiagramme die Verfahren 100, 200, die von dem Tiefenschätzungssystem 30 in der Inferenzphase von 1 und dem Tiefenschätzungssystem 50 in der Trainingsphase gemäß der vorliegenden Offenbarung durchgeführt werden können. Wie in Anbetracht der Offenbarung zu erkennen ist, ist die Reihenfolge der Abläufe innerhalb des Verfahrens nicht auf die sequentielle Ausführung, wie sie in den 3 und 4 dargestellt ist, beschränkt, sondern kann je nach Anwendbarkeit und in Übereinstimmung mit der vorliegenden Offenbarung in einer oder mehreren unterschiedlichen Reihenfolgen durchgeführt werden. In verschiedenen Ausführungsformen kann das Verfahren 200 von 5 so geplant werden, dass es auf der Grundlage eines oder mehrerer vorbestimmter Ereignisse abläuft, und/oder es kann während des Betriebs des Fahrzeugs 12 kontinuierlich ablaufen.
-
Das beispielhafte Verfahren 100 von 4 ist ein Verfahren zum Trainieren des neuronalen Netzes 18. Das Verfahren 10 kann durch den Prozessor 62 implementiert werden, der die Programmieranweisungen 66, wie in 2 dargestellt, ausführt. Das Verfahren 100 umfasst einen Schritt 110 zum Empfangen der Trainingsbilddaten 54. Die Trainingsbilddaten 54 stellen Bilddaten dar, die von mehreren an einem Fahrzeug montierten Kameras empfangen wurden, die eine Umgebungsansicht des Fahrzeugs liefern, wobei sich die Sichtfelder benachbarter Kameras teilweise überlappen. Die Trainingsbilddaten 54 können simuliert oder von einem in Betrieb befindlichen Fahrzeugsystem erhalten werden. Ferner werden die Grundwahrheitsdaten 58 empfangen, die Grundwahrheits-Tiefendaten und Grundwahrheits-Semantiksegmentierungsdaten umfassen. Die semantischen Grundwahrheits-Segmentierungsdaten können simuliert, aus menschlichen Beschriftungen oder künstlich erzeugten Beschriftungen gewonnen werden. Die Grundwahrheits-Tiefendaten können simuliert oder von Tiefensensoren abgeleitet werden, die mit dem betrieblichen Fahrzeugsystem verbunden sind und mit den Sichtfeldern der mehreren Kameras registriert werden.
-
In Schritt 130 wird aus jedem Bild der Trainingsbilddaten 54 ein Panoramabild erzeugt. Das Panoramabild kann auf verschiedene Weise erzeugt werden. In einer Ausführungsform wird das Panoramabild, wie oben beschrieben, durch Umwandlung des Bildes jeder Kamera in eine dreidimensionale Punktwolke in einem lokalen Koordinatensystem der Kamera unter Verwendung der vom neuronalen Netz 18 ausgegebenen Tiefendaten 20 erzeugt. Das dreidimensionale Bild oder die Punktwolke in dem lokalen Koordinatensystem wird in dreidimensionale Koordinaten in einem globalen Koordinatensystem transformiert, wobei extrinsische Parameter für die Kamera verwendet werden, die in den intrinsischen und extrinsischen Kameradaten 56 enthalten sind. Die 3D-Punktwolke im globalen Koordinatensystem wird in ein kombiniertes Panoramabild mit überlappenden Bildfeldern projiziert. In Schritt 140 werden die überlappenden Bildfelder aus dem Panoramabild extrahiert.
-
In Schritt 150 wird die Verlustfunktion 52 berechnet. Die Verlustfunktion 52 umfasst eine Vielzahl von Verlusttermen, wie oben beschrieben. In einer Ausführungsform umfassen die Verlustterme den Panorama-Verlustterm, in dem die Bildähnlichkeit der überlappenden Bildfelder aus Schritt 140 quantifiziert wird. Zu den Verlusttermen gehört die semantische Segmentierung, die eine Ähnlichkeit zwischen den vom neuronalen Netz ausgegebenen semantischen Segmentierungsdaten 22 und den semantischen Segmentierungsdaten der Grundwahrheit quantifiziert. Die Verlustterme können zusätzlich den Glättungsverlustterm enthalten, der die Glättung der Tiefendaten 20 in einer Weise quantifiziert, die variabel ist, so dass sie in Regionen, die nicht mit Kanten innerhalb des Bildes übereinstimmen, größeres Gewicht hat. Die Verlustterme können zusätzlich den Disparitätsverlustterm enthalten, der die Ähnlichkeit der vom neuronalen Netz 18 ausgegebenen Tiefendaten 20 mit den Tiefendaten der Grundwahrheit quantifiziert. Die verschiedenen Verlustterme werden in einer gewichteten Summe in der Verlustfunktion 52 kombiniert.
-
In Schritt 160 wird das neuronale Netz 18 so angepasst, dass es eine Bewertung der Verlustfunktion 52 optimiert und dadurch das neuronale Netz 18 trainiert. Der Optimierungsalgorithmus kann ein iterativer Prozess sein.
-
Unter Bezugnahme auf 5 wird ein Verfahren 200 zur Steuerung des Fahrzeugs 12 beschrieben. In Schritt 210 werden Bilder der jeweiligen Bilddaten 16 von den mehreren Kameras 14a bis 14d empfangen, die so angeordnet sind, dass sie eine Umgebungsansicht des Fahrzeugs 12 liefern. In Schritt 220 werden die Bilddaten 16, bei denen es sich um eine Verkettung der jeweiligen von jeder Kamera 14a bis 14d empfangenen Bilddaten handeln kann, durch das neuronale Netz 18 geleitet, das gemäß dem beispielhaften Verfahren 100 von 4 trainiert wurde. Das neuronale Netz 18 gibt Tiefendaten 20 und semantische Segmentierungsdaten 22 aus. In Schritt 230 wird eine Anwendung des Fahrzeugs 12 auf der Grundlage der Ausgaben des neuronalen Netzes 18 gesteuert. Die Tiefendaten 20 und die semantischen Segmentierungsdaten 22 sind nützlich für Anwendungen zur Hinderniserkennung, Lokalisierung und Verfolgung sowie zur automatischen Steuerung der Bewegung des Fahrzeugs 12, um Hindernisse zu vermeiden. Die Tiefendaten 20 können auch zum Zusammenfügen von Bildern der jeweiligen Kameras 14a bis 14d oder zur Bereitstellung von Umgebungsansichten oder Perspektivwechseln von Bildern der Kameras 14a bis 14d verwendet werden. Das resultierende Bild kann auf einem internen Bildschirm des Fahrzeugs 12 in einer Benutzerschnittstellen-Steueranwendung angezeigt werden.
-
Es wird deutlich, dass die offenbarten Verfahren, Systeme und Fahrzeuge von den in den Figuren dargestellten und hier beschriebenen abweichen können. So können beispielsweise das Fahrzeug 12, das Tiefenschätzungssystem 30 bei der Inferenz, das Tiefenschätzungssystem 50 beim Training und/oder verschiedene Komponenten davon von den in den 1 und 2 dargestellten und in Verbindung damit beschriebenen abweichen. Darüber hinaus können bestimmte Schritte der Verfahren von den in den 4 und 5 dargestellten abweichen. Ebenso können bestimmte Schritte des oben beschriebenen Verfahrens gleichzeitig oder in einer anderen Reihenfolge als in den 4 und 5 dargestellt ablaufen.
-
Obwohl in der vorangegangenen detaillierten Beschreibung mindestens eine beispielhafte Ausführungsform vorgestellt wurde, sollte man sich darüber im Klaren sein, dass es eine Vielzahl von Varianten gibt. Es sollte auch gewürdigt werden, dass die beispielhafte Ausführungsform oder die beispielhaften Ausführungsformen nur Beispiele sind und nicht dazu gedacht sind, den Umfang, die Anwendbarkeit oder die Konfiguration der Offenbarung in irgendeiner Weise zu begrenzen. Vielmehr soll die vorstehende detaillierte Beschreibung dem Fachmann einen praktischen Leitfaden für die Umsetzung der beispielhaften Ausführungsform oder der beispielhaften Ausführungsformen an die Hand geben. Es versteht sich von selbst, dass verschiedene Änderungen in der Funktion und Anordnung der Elemente vorgenommen werden können, ohne dass der Umfang der beigefügten Ansprüche und ihrer gesetzlichen Entsprechungen verlassen wird.