-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft allgemein eine simultane Lokalisierung und Kartierung und insbesondere eine robuste simultane Lokalisierung und Kartierung durch Entfernung dynamischer Verkehrsteilnehmer.
-
Einleitung
-
Die Entwicklung autonomer Fahrzeuge ist neben anderen Faktoren aufgrund der Erweiterung der Wahrnehmung, Bewegungsplanung und - steuerung und/oder der sich abzeichnenden Sensortechnologien erheblich vorangekommen. Um eine autonome Navigation zu erreichen, kann eine genaue Lokalisierung und Kartierung erforderlich sein. Autonome Fahrzeuge können Bilder und Punktwolken einer Umgebung aufgenommenen, um die Lokalisierung und Kartierung zu unterstützen. Autonome Fahrzeuge führen simultane Lokalisierungs- und Kartierungs- (SLAM - simultaneous localization and mapping) -vorgänge an den aufgenommenen Bildern und Punktwolken durch, um eine Karte der Umgebung zu erstellen und Bewegungs- und Trajektorie-/Odometriedaten zu erhalten. SLAM-Vorgänge können einen oder mehrere Vorgänge umfassen, um eine Lokalisierung und Kartierung zu extrahieren, zu assoziieren, abzuschätzen und/oder zu aktualisieren. Häufig enthalten Bilder und Punktwolken Daten, welche Objekte angeben, welche nicht zum Kartieren der Umgebung und zum Erhalten von Bewegungs- und Trajektorie-/Odometriedaten erforderlich sind. Die unnötigen Objekte können dynamische Verkehrsteilnehmer wie etwa Fahrzeuge, Fußgänger, Radfahrer und Tiere umfassen. Eine Einbeziehung dieser Objekte während eines SLAM-Vorgangs kann zu einer ungenauen oder falschen Kartierung und Lokalisierung führen.
-
Im Hinblick auf das Vorstehende kann in der Technik ein Bedarf nach Wegen bestehen, eine Lokalisierung und Kartierung für autonome Fahrzeuge genauer zu implementieren, indem dynamische Verkehrsteilnehmer identifiziert werden und die dynamischen Teilnehmer vor einem SLAM-Vorgang entfernt werden. Weitere Vorteile und neue Merkmale werden aus der nachstehenden bereitgestellten Offenbarung ersichtlich.
-
ZUSAMMENFASSUNG
-
Das Folgende stellt eine Zusammenfassung eines oder mehrerer Aspekte der Offenbarung dar, um ein grundlegendes Verständnis solcher Aspekte bereitzustellen. Diese Zusammenfassung ist kein umfassender Überblick über alle in Betracht gezogenen Aspekte und soll weder Schlüssel- oder kritische Elemente aller Aspekte identifizieren noch den Umfang einiger oder aller Aspekte abgrenzen. Ihr einziger Zweck besteht darin, einige Konzepte eines oder mehrerer Aspekte der Offenbarung in einer vereinfachten Form als ein Auftakt für die detailliertere Beschreibung darzustellen, welche später präsentiert wird.
-
In einem Beispiel wird ein Verfahren zur Lokalisierung und Kartierung für ein autonomes Fahrzeug bereitgestellt. Das Verfahren kann umfassen ein Erhalten, durch eine Kamera, eines Bildes, welches an einem ersten Ort erlangt wird, ein Zuordnen von Labels zu einem oder mehreren Objekten des Bildes, ein Erhalten, durch einen Lichtdetektor, einer Punktwolke, welche an einem zweiten Ort erlangt wird, welcher sich innerhalb eines Schwellenwertabstands des ersten Orts befindet, ein Bestimmen eines oder mehrerer Objektcluster der Punktwolke, ein Assoziieren der dem einen oder den mehreren Objekten des Bildes zugeordneten Labels mit Punkten der Objektcluster der Punktwolke und ein Identifizieren dreidimensionaler (3D) Objekte der Punktwolke basierend auf den mit den Punkten der Objektcluster assoziierten Labels. In einigen Beispielen kann das Verfahren auch ein Entfernen dynamischer Verkehrsteilnehmer von der Punktwolke basierend auf den identifizierten 3D-Objekten, ein Durchführen eines simultanen Lokalisierungs- und Kartierungsvorgangs an der Punktwolke mit den entfernten dynamischen Verkehrsteilnehmern, ein Durchführen einer semantischen Segmentierung an dem Bild auf einer Pro-Pixel-Basis, ein Assoziieren von Labels wenigstens eines Teils der Pixel des Bildes mit entsprechenden Punkten der Punktwolke, ein Identifizieren der dynamischen Verkehrsteilnehmer innerhalb des Bildes und/oder ein Identifizieren einer Bodenebene der Punktwolke und ein Entfernen der Bodenebene von der Punktwolke umfasst.
-
In einem anderen Beispiel wird ein System zur Lokalisierung und Kartierung für ein autonomes Fahrzeug bereitgestellt. Das System kann eine Kamera zum Aufnehmen eines oder mehrerer Bilder, einen Lichtdetektor zum Aufnehmen einer oder mehrerer Punktwolken, einen mit der Kamera und dem Lichtdetektor gekoppelten Speicher zum Speichern des einen oder der mehreren Bilder und der einen oder den mehreren Punktwolken und einen oder mehrere Prozessoren umfassen, welche mit dem Speicher gekoppelt sind. Der eine oder die mehreren Prozessoren kann/können eingerichtet sein zum Erhalten, durch die Kamera, eines Bildes, welches an einem ersten Ort erlangt wird, Zuordnen von Labels zu einem oder mehreren Objekten des Bildes, Erhalten, durch den Lichtdetektor, einer Punktwolke, welche an einem zweiten Ort erlangt wird, welche sich innerhalb eines Schwellenwertabstands des ersten Orts befindet, Bestimmen eines oder mehrerer Objektcluster der Punktwolke, Assoziieren der dem einen oder den mehreren Objekten des Bildes zugeordneten Labels mit Punkten der Objektcluster der Punktwolke und Identifizieren von 3D-Objekten der Punktwolke basierend auf den mit den Punkten der Objektcluster assoziierten Labels. In einigen Variationen kann/können der eine oder die mehreren Prozessoren ferner eingerichtet sein zum Entfernen dynamischer Verkehrsteilnehmer von der Punktwolke basierend auf den identifizierten 3D-Objekten, Durchführen eines simultanen Lokalisierungs- und Kartierungsvorgangs an der Punktwolke mit den entfernten dynamischen Verkehrsteilnehmern, Durchführen einer semantischen Segmentierung an dem Bild auf einer Pro-Pixel-Basis, Assoziieren von Labels wenigstens eines Teils der Pixel des Bildes mit entsprechenden Punkten der Punktwolke, Identifizieren der dynamischen Verkehrsteilnehmer innerhalb des Bildes und/oder Identifizieren einer Bodenebene der Punktwolke und Entfernen der Bodenebene von der Punktwolke.
-
In einem anderen Beispiel wird ein computerlesbares Medium bereitgestellt, welches einen computerausführbaren Code zur Lokalisierung und Kartierung für ein autonomes Fahrzeug speichert. Das computerlesbare Medium kann einen Code umfassen zum Erhalten, durch eine Kamera, eines Bildes, welches an einem ersten Ort erlangt wird, Zuordnen von Labels zu einem oder mehreren Objekten des Bildes, Erhalten, durch einen Lichtdetektor, einer Punktwolke, welche an einem zweiten Ort erlangt wird, welche sich innerhalb eines Schwellenwertabstands des ersten Orts befindet, Bestimmen eines oder mehrerer Objektcluster der Punktwolke, Assoziieren der dem einen oder den mehreren Objekten des Bildes zugeordneten Labels mit Punkten der Objektcluster der Punktwolke und Identifizieren von 3D-Objekten der Punktwolke basierend auf den mit den Punkten der Objektcluster assoziierten Labels. In einigen Variationen kann das computerlesbare Medium ferner einen Code umfassen zum Entfernen dynamischer Verkehrsteilnehmer von der Punktwolke basierend auf den identifizierten 3D-Objekten, Durchführen eines simultanen Lokalisierungs- und Kartierungsvorgangs an der Punktwolke mit den entfernten dynamischen Verkehrsteilnehmern, Durchführen einer semantischen Segmentierung an dem Bild auf einer Pro-Pixel-Basis, Assoziieren von Labels wenigstens eines Teils der Pixel des Bildes mit entsprechenden Punkten der Punktwolke, Identifizieren der dynamischen Verkehrsteilnehmer innerhalb des Bildes und/oder Identifizieren einer Bodenebene der Punktwolke und Entfernen der Bodenebene von der Punktwolke.
-
Um die vorstehenden und verwandte Ziele zu erreichen, umfassen der eine oder die mehreren Aspekte der Offenbarung die im Folgenden vollständig beschriebenen und insbesondere in den Ansprüchen hervorgehobenen Merkmale. Die folgende Beschreibung und die beigefügten Zeichnungen legen bestimmte veranschaulichende Merkmale des einen oder der mehreren Aspekte im Detail dar. Diese Merkmale sind jedoch nur indikativ für einige der verschiedenen Wege, auf welche die Prinzipien verschiedener Aspekte eingesetzt werden können, und diese Beschreibung soll alle solche Aspekte und deren Äquivalente umfassen.
-
Figurenliste
-
Die neuen Merkmale, von welchen angenommen wird, dass sie Charakteristika der Offenbarung sind, sind in den beigefügten Ansprüchen dargelegt. In der Beschreibung, welche folgt, sind gleiche Teile über die Beschreibung und die Zeichnungen hinweg jeweils mit den gleichen Bezugszeichen versehen. Die Zeichnungsfiguren sind nicht notwendigerweise maßstabsgetreu gezeichnet und bestimmte Figuren können im Interesse der Klarheit und der Übersichtlichkeit übertrieben oder verallgemeinert gezeigt sein. Die Offenbarung selbst wie auch ein bevorzugter Verwendungsmodus, weitere Aufgaben und Vorteile davon werden jedoch am besten unter Bezugnahme auf die folgende detaillierte Beschreibung veranschaulichender Aspekte der Offenbarung verstanden werden, wenn sie in Verbindung mit den beigefügten Zeichnungen gelesen werden, wobei:
- 1 stellt eine schematische Ansicht eines Beispiels eines Systems zur Lokalisierungskartierung gemäß Aspekten der vorliegenden Offenbarung dar;
- 2 stellt ein Ablaufdiagramm dar, welches ein beispielhaftes Verfahren zur Lokalisierung und Kartierung gemäß Aspekten der vorliegenden Offenbarung zeigt;
- 3 stellt ein Beispiel eines zur Lokalisierung und Kartierung aufgenommenen Bildes gemäß einem Aspekt der vorliegenden Offenbarung dar;
- 4 stellt ein Beispiel eines aus dem Bild aus 3 erzeugten semantischen vorhergesagten Bildes gemäß einem Aspekt der vorliegenden Offenbarung dar;
- 5 stellt ein Beispiel einer zur Lokalisierung und Kartierung aufgenommenen Punktwolke gemäß einem Aspekt der vorliegenden Offenbarung dar;
- 6 stellt ein Beispiel einer Punktwolke mit einem Clustering und einer Bodenentfernung, welche aus der Punktwolke aus 5 erzeugt worden sind, gemäß einem Aspekt der vorliegenden Offenbarung dar;
- 7 stellt ein Beispiel einer aus der Punktwolke aus 5 erzeugten gelabelten Punktwolke gemäß einem Aspekt der vorliegenden Offenbarung dar;
- 8 stellt ein Beispiel einer aus der gelabelten Punktwolke aus 7 erzeugten Punktwolke mit entfernten dynamischen Verkehrsteilnehmern gemäß einem Aspekt der vorliegenden Offenbarung dar;
- 9 stellt eine Darstellung eines beispielhaften Systems verschiedener Hardwarekomponenten und anderer Funktionen zur Verwendung gemäß Aspekten der vorliegenden Offenbarung dar; und
- 10 ist ein Blockdiagramm verschiedener beispielhafter Systemkomponenten zur Verwendung gemäß Aspekten der vorliegenden Offenbarung.
-
DETAILLIERTE BESCHREIBUNG
-
Die detaillierte Beschreibung, welche nachstehend in Verbindung mit den beigefügten Zeichnungen dargelegt wird, soll eine Beschreibung verschiedener Konfigurationen sein und soll nicht die einzigen Konfigurationen darstellen, in welchen die hierin beschriebenen Konzepte praktiziert werden können. Die detaillierte Beschreibung umfasst spezifische Details zu dem Zweck, ein umfassendes Verständnis verschiedener Konzepte zu vermitteln. Jedoch wird es für den Fachmann offensichtlich sein, dass diese Konzepte ohne diese spezifischen Details praktiziert werden können. In einigen Fällen sind allgemein bekannte Komponenten in Form eines Blockdiagramms gezeigt, um zu vermeiden, dass solche Konzepte verschleiert werden.
-
Eine Lokalisierung und Kartierung für ein autonomes Fahrzeug kann unter Verwendung einer Eingabe von einer Mehrzahl von Eingabequellen, wie etwa neben anderen Eingabequellen einer Bildeingabe (z. B. von einer Kamera) und einer Lichtsensoreingabe (z. B. von einer Lichterfassungs- und Entfernungsmessungs- (LIDAR - light detection and ranging) -Vorrichtung), erzeugt werden. Zum Beispiel kann die Mehrzahl von Eingabequellen Eingaben aufnehmen und/oder zu ähnlichen Zeitpunkten, an ähnlichen Orten etc. oder aufgenommene Eingaben zuordnen, so dass die Eingaben gleichzeitig analysiert werden können. In einem spezifischen Beispiel kann eine Testvorrichtung, wie etwa ein Fahrzeug, mit einer Kamera und einer LIDAR-Vorrichtung ausgerüstet sein und kann Bilder und Punktwolken aufnehmen, wenn sich das Fahrzeug entlang einer Route bewegt. Die Bilder und Punktwolken können gleichzeitig analysiert werden, um Punktwolkenkarten und/oder eine Autonomes-Fahrzeug-Bewegungs-Trajektorie/Odometrie zu erzeugen. Zum Beispiel können die Bilder und Punktwolken analysiert werden, um Punktwolkenkarten und/oder eine Autonomes-Fahrzeug-Bewegungs-Trajektorie/Odometrie zu erzeugen. Während eines Analysierens der Bilder und Punktwolken, kann ein Identifizieren und ein Labeln dynamischer Verkehrsteilnehmer, wie etwa Fahrzeuge, Fußgänger, Radfahrer oder Tiere, in der Punktwolke basierend auf Labels von den Bildern durchgeführt werden. Ferner können die dynamischen Verkehrsteilnehmer von Punktwolken entfernt werden, um genauere Ergebnisse von einem simultanen Lokalisierungs- und Kartierungs-(SLAM) -vorgang bereitzustellen.
-
Das Folgende umfasst Definitionen ausgewählter Ausdrücke, welche hierin verwendet werden. Die Definitionen umfassen verschiedene Beispiele und/oder Formen von Komponenten, welche in den Geltungsbereich eines Ausdrucks fallen und welche für eine Implementierung verwendet werden können. Die Beispiele sollen nicht einschränkend sein.
-
Der Ausdruck „Bus“, wie er hierin verwendet wird, kann sich auf eine miteinander verbundene Architektur beziehen, welche betriebsfähig verbunden ist, um Daten zwischen Computerkomponenten innerhalb eines einzelnen oder mehrerer Systeme zu übertragen. Der Bus kann unter anderem ein Speicherbus, ein Speichercontroller, ein Peripheriebus, ein externer Bus, ein Kreuzschienenschalter und/oder ein lokaler Bus sein. Der Bus kann auch ein Fahrzeugbus sein, welcher Komponenten innerhalb eines Fahrzeugs unter Verwendung von Protokollen wie etwa Controller Area Network (CAN) und Local Interconnect Network (LIN) miteinander verbindet.
-
Der Ausdruck „Speicher“, wie er hierin verwendet wird, kann einen flüchtigen Speicher und/oder einen nichtflüchtigen Speicher umfassen. Der nichtflüchtige Speicher kann zum Beispiel einen Nur-Lese-Speicher (ROM - read only memory), einen programmierbaren Nur-Lese-Speicher (PROM - programmable read only memory), einen löschbaren PROM (EPROM - erasable PROM) und einen elektrisch löschbaren PROM (EEPROM - electrically erasable PROM) umfassen. Der flüchtige Speicher kann zum Beispiel einen Direktzugriffsspeicher (RAM - random access memory), einen synchronen RAM (SRAM - synchronous RAM), einen dynamischen RAM (DRAM - dynamic RAM), einen synchronen DRAM (SDRAM - synchronous DRAM), einen SDRAM mit doppelter Datenrate (DDR SDRAM - double data rate SDRAM) und einen Direkt-RAM-Bus-RAM (DRRAM - direct RAM bus RAM) umfassen.
-
Der Ausdruck „betriebsfähige Verbindung“, wie er hierin verwendet wird, kann eine Verbindung umfassen, durch die Funktionseinheiten „betriebsfähig verbunden“ sind, wobei Signale, physikalische Kommunikationen und/oder logische Kommunikationen gesendet und/oder empfangen werden können. Eine betriebsfähige Verbindung kann eine physikalische Schnittstelle, eine Datenschnittstelle und/oder eine elektrische Schnittstelle umfassen.
-
Der Ausdruck „Prozessor“, wie er hierin verwendet wird, kann sich auf eine Vorrichtung beziehen, welche Signale verarbeitet und allgemeine Datenverarbeitungs- und Arithmetikfunktionen durchführt. Von dem Prozessor verarbeitete Signale können digitale Signale, Datensignale, Computeranweisungen, Prozessoranweisungen, Nachrichten, ein Bit, einen Bitstrom oder andere Datenverarbeitungen umfassen, welche empfangen, übertragen und/oder erfasst werden können. Ein Prozessor kann zum Beispiel Mikroprozessoren, Mikrocontroller, digitale Signalprozessoren (DSPs - digital signal processors), feldprogrammierbare Gate-Arrays (FPGAs - field programmable gate arrays), programmierbare Logikvorrichtungen (PLDs - programmable logic devices), Zustandsmaschinen, gattergesteuerte Logik, diskrete Hardwareschaltungen, ein System auf einem Chip (SoC - system-on-a-chip) und andere geeignete Hardware umfassen, welche dazu eingerichtet ist, die hierin beschriebenen verschiedenen Funktionen durchzuführen.
-
Einige Aspekte bestimmter Systeme werden nun unter Bezugnahme auf verschiedene Vorrichtungen und Verfahren dargelegt. Diese Vorrichtungen und Verfahren werden in der folgenden detaillierten Beschreibung beschrieben und in den beigefügten Zeichnungen durch verschiedene Blöcke, Module, Komponenten, Schaltungen, Schritte, Prozesse, Algorithmen etc. (kollektiv als „Elemente“ bezeichnet) dargestellt. Diese Elemente können unter Verwendung von elektronischer Hardware, Computersoftware oder jeglicher Kombination davon implementiert werden. Ob solche Elemente als Hardware oder Software implementiert werden, hängt von den bestimmten Anwendungs- und Designbeschränkungen ab, welche dem Gesamtsystem auferlegt sind.
-
Als Beispiel kann ein Element oder jeglicher Teil eines Elements oder jegliche Kombination von Elementen mit einem „Verarbeitungssystem“ implementiert werden, welches einen oder mehrere Prozessoren umfasst. Ein oder mehrere Prozessoren in dem Verarbeitungssystem können Software ausführen. Software soll derart breit ausgelegt werden, dass Anweisungen, Anweisungssätze, Code, Codesegmente, Programmcode, Programme, Subprogramme, Softwaremodule, Anwendungen, Softwareanwendungen, Softwarepakete, Routinen, Subroutinen, Objekte, ausführbare Dateien, Ausführungsthreads, Vorgänge, Funktionen etc. gemeint sind, unabhängig davon, ob sie als Software, Firmware, Middleware, Mikrocode, Hardwarebeschreibungssprache oder auf andere Weise bezeichnet wird.
-
Dementsprechend können die beschriebenen Funktionen in einem oder mehreren Aspekten in Hardware, Software, Firmware oder jeglicher Kombination davon implementiert werden. Wenn sie in Software implementiert werden, können die Funktionen als eine oder mehrere Anweisungen oder als Code auf einem computerlesbaren Medium gespeichert oder codiert werden. Computerlesbare Medien umfassen Computerspeichermedien. Speichermedien können jegliche verfügbare Medien sein, auf welche ein Computer zugreifen kann. Als Beispiel und nicht als Einschränkung können solche computerlesbaren Medien RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jegliches andere Medium umfassen, welches verwendet werden kann, um gewünschten Programmcode in der Form von Anweisungen oder Datenstrukturen zu tragen oder zu speichern, und auf welches ein Computer zugreifen kann.
-
1 zeigt eine schematische Ansicht eines Beispiels eines Systems 100 zum Lokalisieren und Kartieren gemäß hierin beschriebenen Aspekten. Komponenten des Systems 100 wie auch die Komponenten anderer Systeme, Hardwarearchitekturen und Softwarearchitekturen, welche hierin erörtert werden, können für verschiedene Aspekte der Offenbarung kombiniert, weggelassen oder in unterschiedliche Architekturen organisiert werden. Jedoch konzentrieren sich die hierin diskutierten beispielhaften Aspekte und Konfigurationen auf das System 100, wie es in 1 dargestellt ist, mit entsprechenden Systemkomponenten und zugehörigen Verfahren.
-
Wie in 1 gezeigt, kann das System 100 einen oder mehrere Prozessoren 102 und einen oder mehrere Speicher 104 umfassen oder betriebsfähig damit gekoppelt sein (oder durch diese ausgeführt werden), welche kommunizieren, um bestimmte hierin beschriebene Aktionen zu bewirken. Zum Beispiel können der eine oder die mehreren Prozessoren 102 und/oder der eine oder die mehreren Speicher 104 eine Lokalisierungs- und Kartierungskomponente 106 zum Erzeugen von Lokalisierungs- und Kartierungsinformationen, wie etwa eine dreidimensionale (3D) Punktwolkenkarte und eine Autonomes-Fahrzeug-Bewegungs-Trajektorie/Odometrie, eine Bildkomponente 108 zum Empfangen eines oder mehrerer Bilder (z. B. von einer Kamera 110), eine Punktwolkenkomponente 112 zum Empfangen einer oder mehrerer Punktwolken (z. B. von einer LIDAR- 114 -Vorrichtung) und/oder eine Ortskomponente 116 zum Empfangen eines oder mehrerer Parameter, welche sich auf einen Ort des Systems 100 beziehen (z. B. und/oder entsprechend den Bild- und/oder Punktwolkeneingaben), ausführen und/oder Anweisungen, Parameter etc. zum Ausführen speichern. Der Prozessor / die Prozessoren 102, der/die Speicher 104, verschiedene der Komponenten 106, 108, 112, 116 etc. können über einen Bus 118 betriebsfähig gekoppelt sein. In einem anderen Beispiel kann/können der Prozessor / die Prozessoren 102 eine oder mehrere der verschiedenen Komponenten 106, 108, 112, 116 ausführen, um hierin beschriebene Funktionen durchzuführen, während sie über den Bus 118 betriebsfähig mit dem Speicher / den Speichern 104 und/oder anderen Komponenten gekoppelt sind.
-
In einem Beispiel kann die Lokalisierungs- und Kartierungskomponente 106 eine 3D-Erfassungskomponente 120 zum Erfassen von Objekten in einer Punktwolke basierend auf einer Bildeingabe und einer Punktwolkeneingabe, eine Dynamischer-Verkehrsteilnehmer-Entfernungskomponente 122 zum Entfernen dynamischer Verkehrsteilnehmer von einer Punktwolke und/oder eine SLAM-Komponente 124 zum Durchführen eines SLAM-Vorgangs an der Punktwolke mit entfernten dynamischen Verkehrsteilnehmern umfassen.
-
In einem Aspekt kann das System 100 vollständig oder teilweise innerhalb eines Fahrzeugs eingesetzt werden, welches eine Route fährt. In einem anderen Beispiel kann das System 100 zwischen einem Fahrzeug und einem oder mehreren entfernten Geräten verteilt sein (z. B. kann die Kamera 110 oder der LIDAR 114 an dem Fahrzeug vorhanden sein, während eine oder mehrere Komponenten, wie etwa die Lokalisierungs- und Kartierungskomponente 106, auf einen oder mehrere entfernt angeordnete Computer verteilt werden können). In dieser Hinsicht kann zum Beispiel eine Verarbeitung einer Eingabe von der Kamera 110, dem LIDAR 114 etc. an dem Fahrzeug oder an einer entfernt angeordneten Vorrichtung zum Durchführen einer Lokalisierung und Kartierung stattfinden. In einem Aspekt kann in jedem Fall die Lokalisierungs- und Kartierungskomponente 106 einer oder mehreren anderen Vorrichtungen über ein Netzwerk 140 zum Anzeigen und/oder zum weiteren Verarbeiten Lokalisierungs- und Kartierungsinformationen, wie etwa eine 3D-Punktwolkenkarte und/oder die Autonomes-Fahrzeug-Bewegungs-Trajektorie/Odometrie, bereitstellen.
-
Nun wird unter Bezugnahme auf 2, welche in Verbindung mit dem beispielhaften System 100 aus 1 beschrieben wird, ein beispielhaftes Verfahren 200 zum Lokalisieren und Kartieren dargestellt. In einem Aspekt kann das Verfahren 200 durch den einen oder die mehreren Prozessoren 102 und/oder die Speicher 104 des Systems 100 durchgeführt werden, welche, wie oben beschrieben, in einem Fahrzeug angeordnet sein können oder an verschiedenen Orten verteilt sein können. In dieser Hinsicht können ein oder mehrere Blöcke (z. B. vollständig oder teilweise) an einem Fahrzeug oder an einem entfernten Ort durchgeführt werden, um Lokalisierungs- und Karteninformationen zu erzeugen.
-
In Block 202 kann das Verfahren ein Erhalten eines Bildes umfassen. In einem Aspekt kann die Bildkomponente 108 über eine Kamera (z. B. Kamera 110) das Bild erhalten. Zum Beispiel kann die Kamera 110 an einem Fahrzeug positioniert sein, welches entlang einer Route fährt, und kann dazu eingerichtet sein, periodisch Bilder aufzunehmen und/oder ein Video mit einer bestimmten Anzahl von Bildern pro Sekunde (FPS - frames per second) aufzunehmen. Die Kamera 110 kann die Bilder / das Video lokal und/oder in einem oder mehreren Speichern 104 speichern und/oder kann die Bilder / das Video einer entfernten Vorrichtung bereitstellen, von welcher die Bildkomponente 108 das Bild empfangen kann. Zusätzlich kann die Ortskomponente 116 zum Beispiel einen mit dem Bild assoziierten Ort bestimmen, was ein Erhalten von Global-Positioning-System- (GPS - global positioning system) -Koordinaten eines die Kamera 110 umfassenden Fahrzeugs zu oder nahe dem Zeitpunkt umfassen kann, zu welchem das Bild durch die Kamera 110 aufgenommen wird. In einem Aspekt kann die Ortskomponente 116 die GPS-Koordinaten mit dem Bild assoziieren (z. B. in Bildmetadaten oder anderweitig in einem relationalen Speicher), so dass der Ort für das Bild bestimmt werden kann, wenn das Bild verarbeitet wird.
-
In Block 204 kann das Verfahren 200 ein Durchführen einer semantischen Segmentierung an dem Bild umfassen. In einem Aspekt kann die Lokalisierungs- und Kartierungskomponente 106 die semantische Segmentierung an dem Bild durchführen. Zum Beispiel kann die 3D-Erfassungskomponente 120 eine semantische Segmentierung an dem Bild durchführen, indem ein neuronales Netzwerk mit erweiterter semantischer Segmentierung mit Faltung auf das Bild angewendet wird, um wenigstens einen Teil der Pixel mit einer oder mehreren semantischen Vorhersagen zu assoziieren. In einem Aspekt kann die 3D-Erfassungskomponente 120 das neuronale Netzwerk mit erweiterter semantischer Segmentierung mit Faltung anwenden. Eine Objekterkennung kann in dem Bildbereich (z. B. im Gegensatz zu dem Punktwolkenbereich) basierend auf einer genaueren bildlichen Darstellung der Szene genauer sein. Dementsprechend kann die 3D-Erfassungskomponente 120 das neuronale Netzwerk mit erweiterter semantischer Segmentierung mit Faltung auf das Bild anwenden, um eine Vorhersage von dichten pixelweisen semantischen Kategorien auszugeben. Zum Beispiel kann die Ausgabe von dem Anwenden der semantischen Segmentierung derart erscheinen, dass sie ähnliche Formen und Umrisse wie das Bild aufweist, wobei Farbwerte für die Pixel basierend auf Objektdefinitionen in der semantischen Segmentierung durch Farbwerte ersetzt werden, welche einem erkannten Objekt entsprechen. Somit kann zum Beispiel eine semantische Kategorie, welche einer Gruppe von Pixeln entspricht, basierend auf dem Pixelfarbwert bestimmt werden und bestimmte Größenparameter des Objekts können basierend auf einer Anzahl benachbarter Pixel, welche dem Pixelfarbwert entsprechen, in einer vorgegebenen Richtung bestimmt oder abgeleitet werden. Die semantische Segmentierung kann dazu führen, dass ein Bild Pixel aufweist, welche entsprechend den semantischen Kategorien gelabelt sind.
-
In einem Aspekt können die semantischen Kategorien neben anderen Kategorien Straße, Himmel, Gehweg, Pflanze, Person, Fahrzeug und Gebäude umfassen. In einem Beispiel kann die 3D-Erfassungskomponente 120 die semantischen Kategorien bestimmen, welche an einer Grenze des Objekts in dem Bild teilweise aufgrund der Unsicherheit, ob die Randpixel des Objekts aufgrund von Ungenauigkeiten der Informationen in der semantischen Segmentierung Teil des Objekts sind, nicht genau sein können. Darüber hinaus kann zum Beispiel ein Anwenden der semantischen Segmentierung zu einer semantischen Kategorisierung führen, welche nicht instanzspezifisch ist (z. B. können mehrere Objekte, welche die gleiche semantische Kategorie aufweisen, mit den gleichen Pixelwerten assoziiert werden).
-
In Block 206 kann das Verfahren 200 ein Erhalten einer Punktwolke umfassen. In einem Aspekt kann die Punktwolkenkomponente 112 über den Lichtdetektor (z. B. den LIDAR 114) die Punktwolke erhalten. Zum Beispiel kann der LIDAR 114 an einem entlang einer Route fahrenden Fahrzeug positioniert sein und dazu eingerichtet sein, Punktwolkenscans eines Bereichs entlang der Route periodisch aufzunehmen. Der LIDAR 114 kann die Punktwolken lokal und/oder in dem Speicher / den Speichern 104 speichern und/oder kann die Punktwolken einer entfernten Vorrichtung bereitstellen, von welcher die Punktwolkenkomponente 112 die Punktwolken empfangen kann. Zusätzlich kann die Ortskomponente 116 zum Beispiel einen mit den Punktwolken assoziierten Ort bestimmen, was ein Erhalten von Global-Positioning-System- (GPS - global positioning system) -Koordinaten eines den LIDAR 114 umfassenden Fahrzeugs zu oder nahe dem Zeitpunkt umfassen kann, zu welchem wenigstens ein Teil der Punktwolke durch den LIDAR 114 aufgenommen wird. In einem Beispiel kann die Ortskomponente 116 die GPS-Koordinaten mit den Punktwolken assoziieren (z. B. in Punktwolkenmetadaten oder anderweitig in einem relationalen Speicher), so dass der Ort für die Punktwolke bei einem Verarbeiten der Punktwolke für eine Lokalisierung und Kartierung bestimmt werden kann.
-
In einem Aspekt kann die Ortskomponente 116 die zu einem ähnlichen Zeitpunkt aufgenommenen Bilder und Punktwolken miteinander und/oder mit den entsprechenden Orten assoziieren. Zusätzlich kann, wie hierin weiter beschrieben, die Lokalisierungs- und Kartierungskomponente 106 die Bild- und Punktwolkeneingaben erhalten, welche unter anderen Faktoren basierend auf einem assoziierten Zeitpunkt, zu welchem das Aufnehmen des Bildes und der Punktwolke stattfand, und basierend auf dem assoziierten Ort synchronisiert werden können.
-
In Block 208 kann das Verfahren 200 ein Bestimmen einer Mehrzahl von Objektclustern innerhalb der Punktwolke umfassen. Zum Beispiel kann die 3D-Erfassungskomponente 120 die Objektcluster bestimmen, indem die Punktwolke in kleinere Teile organisiert wird und verschiedene Teile der Punktwolke kategorisiert werden. In einem Aspekt kann die 3D-Erfassungskomponente 120 ein Clustering durchführen, indem sie zum Beispiel ein Clustering-Verfahren mit radial begrenztem nächsten Nachbarn (RBNN - radially bounded nearest neighbor), ein Euklidischer-Sinn-Verfahren oder ein Regionswachstumssegmentierungsverfahren verwendet.
-
In Block 210 kann das Verfahren 200 ein Entfernen eines Bodens von der Punktwolke umfassen. In einem Aspekt kann die 3D-Erfassungskomponente 120 Boden entfernen, indem sie Punkte entfernt, welche geclustert und als Boden identifiziert worden sind. Zum Beispiel kann die 3D-Erfassungskomponente 120 den Boden als die größte planare Komponente in der Punktwolke bestimmen. Zusätzlich kann die Objekt-Clustering-Komponente 120 Punkte in der Punktwolke entfernen, ignorieren oder anderweitig vermeiden, von denen bestimmt wird, dass sie planare Inlier sind, bis es keine große Ebene gibt (z. B. eine Ebene, welche größer als eine Schwellenpunktgröße ist). Zum Beispiel kann die 3D-Erfassungskomponente 120 die planaren Inlier unter Verwendung von Übereinstimmung mit einer zufälligen Stichprobe (RANSAC - random sample consensus) entfernen, ignorieren oder anderweitig vermeiden, um die planaren Inlier zu bestimmen, welche die Schwellenwertpunktgröße erreichen.
-
In Block 212 kann das Verfahren ein Übertragen von Labels von dem Bild zu der Punktwolke umfassen. In einem Aspekt kann die 3D-Erfassungskomponente 120 das Bild empfangen, nachdem eine semantische Segmentierung durchgeführt worden ist, und die Punktwolke empfangen, nachdem die Objekte geclustert worden sind und der Boden entfernt worden ist. In einem Aspekt kann die 3D-Erfassungskomponente 120 wenigstens den Teil der Punkte, welcher wenigstens dem Teil der Pixel entspricht, mit der assoziierten einen oder den assoziierten mehreren semantischen Vorhersagen assoziieren. Basierend auf der Assoziation der Pixel zu den Punkten kann die 3D-Erfassungskomponente 120 Labels von den Pixeln des Bildes zu assoziierten Punkten der Punktwolke übertragen.
-
In Block 214 kann das Verfahren 200 ein Entfernen dynamischer Teilnehmer von der Punktwolke umfassen. In einem Aspekt kann die Dynamischer-Verkehrsteilnehmer-Entfernungskomponente 122 die gelabelte Punktwolke empfangen und die dynamischen Teilnehmer basierend auf den Labels von der Punktwolke entfernen. Zum Beispiel kann die Dynamischer-Verkehrsteilnehmer-Entfernungskomponente 122 Punkte entfernen, welche als eine Person, ein Fahrzeug oder ein anderes Objekt gelabelt sind, welches als ein dynamischer Verkehrsteilnehmer angesehen wird.
-
In Block 216 kann das Verfahren 200 ein Durchführen eines SLAM-Vorgangs umfassen. In einem Aspekt kann die SLAM-Komponente 124 die Punktwolke empfangen, welche entfernte dynamische Teilnehmer entfernt hat, und den SLAM-Vorgang an der Punktwolke mit entfernten dynamischen Verkehrsteilnehmern durchführen. In einem Beispiel kann die SLAM-Komponente 124 der SLAM-Vorgang unter Verwendung eines oder mehrerer SLAM-Algorithmen durchführen, wie etwa Normal-Distributive-Transformation (NDT - Normal Distributive Transformation), Iterative-Closest-Point (ICP - Iterative Closest Point), Probabilistic-Iterative-Correspondence (pIC - Probabilistic Iterative Correspondence), Conditional-Random-Fields (CRF - Conditional Random Fields), Local-Geometric-Features-registration und Branch-and-Bound.
-
In Block 218 kann das Verfahren 200 eine Lokalisierung und Kartierung basierend auf dem durchgeführten SLAM-Algorithmus ausgeben. In einem Aspekt kann die SLAM-Komponente 124 3D-Punktwolkenkartendaten und/oder Autonomes-Fahrzeug-Bewegungs-Trajektorie-/Odometriedaten basierend auf dem SLAM-Algorithmus ausgeben.
-
In einem Beispiel kann die Lokalisierungs- und Kartierungskomponente 106 die 3D-Punktwolkenkartendaten und/oder die Autonomes-Fahrzeug-Bewegungs-Trajektorie-/Odometriedaten über das Netzwerk 140 einer oder mehreren anderen Vorrichtungen bereitstellen. Zum Beispiel kann die Lokalisierungs- und Kartierungskomponente 106 die 3D-Punktwolkenkartendaten und/oder die Autonomes-Fahrzeug-Bewegungs-Trajektorie-/Odometriedaten über das Netzwerk 140 hochladen und andere Fahrzeuge, persönliche Vorrichtungen (z. B. Mobiltelefone, Tablets etc.) können die 3D-Punktwolkenkartendaten und/oder die Autonomes-Fahrzeug-Bewegungs-Trajektorie-/Odometriedaten zum Anzeigen auf einer Anzeige eines Navigationssystems, zum Erweitern oder Aktualisieren der 3D-Kartierungs- und/oder Autonomes-Fahrzeug-Bewegungs-Trajektorie-/Odometriedaten etc. herunterladen.
-
Die 3-8 stellen Beispiele von Bildern und/oder Scans gemäß oben beschriebener Aspekte dar. 3 stellt ein Beispiel eines von einer Kamera 110 aufgenommenen Bildes 300 dar, wobei die Kamera 110 an einem Fahrzeug 302 montiert sein kann, welches eine Route fährt. Das Bild 300 stellt eine entlang der Route von der Kamera 110 aufgenommene Szene dar und die Szene kann mit einem Ort assoziiert sein (z. B. einem Ort des Fahrzeugs 302, wenn das Bild 300 aufgenommen wird), wie oben beschrieben. Das Bild 300 umfasst eine Straße 304, verschiedene Gebäude 306 entlang der Straße 304, eine Mehrzahl von Personen 308, 310, 312, welche auf oder in der Nähe der Straße 304 gehen, und eine Mehrzahl von Fahrzeugen 314, 316, 318, welche geparkt sind und/oder entlang der Straße 304 fahren. Dieses Bild 300 kann ein Beispiel für ein der Lokalisierungs- und Kartierungskomponente 106 bereitgestelltes Bild sein. 4 stellt ein Beispiel eines aus dem Bild 300 erzeugten vorhergesagten semantischen Bildes 400 dar. Zum Beispiel kann die 3D-Erfassungskomponente 120 die Straße 304 in dem Bild 300 erfassen und Pixelwerte von als Straße 304 identifizierten Pixeln derart modifizieren, dass sie eine Farbe haben, um in dem vorhergesagten semantischen Bild 400 eine Straße 404 zu ergeben. Ähnlich kann die 3D-Erfassungskomponente 120 die Gebäude 306 in dem Bild 300 erfassen und Pixelwerte von als Gebäude 306 identifizierten Pixeln derart modifizieren, dass sie eine Farbe haben, um in dem vorhergesagten semantischen Bild 400 Gebäude 406 zu ergeben. Ferner kann die 3D-Erfassungskomponente 120 die Personen 308, 310, 312 in dem Bild 300 erfassen und Pixelwerte von als Personen 308, 310, 312 Pixeln derart modifizieren, dass sie eine Farbe haben, um in dem vorhergesagten semantischen Bild 400 Personen 408 zu ergeben. Darüber hinaus kann zum Beispiel die 3D-Erfassungskomponente 120 die Fahrzeuge 314, 316, 318 in dem Bild 300 erfassen und Pixelwerte von als ein Fahrzeug identifizierten Pixeln derart modifizieren, dass sie eine Farbe haben, um in dem vorhergesagten semantischen Bild 400 Fahrzeuge 410 zu ergeben. Wie beschrieben, können in der gleichen semantischen Klasse (z. B. Fahrzeug) identifizierte Objekte derart modifiziert werden, dass sie die gleiche Farbe haben und daher das gleiche Label umfassen.
-
5 stellt ein Beispiel einer Punktwolke 500 dar, welche von einem LIDAR 114 erhalten wird, welcher auch an dem Fahrzeug 502 montiert sein kann, welches die Route fährt. Die Punktwolke 500 stellt einen entlang der Route von dem LIDAR 114 aufgenommenen LIDAR-Scan dar und kann basierend auf einer Zeit, zu welcher das Bild 300 und die Punktwolke 500 aufgenommen werden, einem Ort des Fahrzeugs 502, wenn die Punktwolke 500 aufgenommen wird etc., auch mit einem Ort des Bildes 300 assoziiert sein. Die Punktwolke 500 umfasst eine Mehrzahl von Punkten, welche eine Straße 504 (welche in dem Bild 300 die Straße 304 sein kann), ein oder mehrere Gebäude 506 (welche in dem Bild 300 das Gebäude 306 sein können) eine Mehrzahl von Personen 508, 510, 512 (welche in dem Bild 300 die Mehrzahl von Personen 308-312 sein kann) und eine Mehrzahl von Fahrzeugen 514, 516, 518 (welche in dem Bild 300 eines oder mehrere der Fahrzeuge 314-318 sein können) definieren. Die Punktwolke 500 kann auch der Lokalisierungs- und Kartierungskomponente 106 bereitgestellt werden.
-
6 stellt ein Beispiel einer Punktwolke 600 dar, bei welcher ein Objekt-Clustering und eine Bodenentfernung durchgeführt worden ist. In einem Aspekt kann die 3D-Erfassungskomponente 120 Objektcluster basierend auf dem einen oder den mehreren oben beschriebenen Verfahren bestimmen. Zum Beispiel kann die 3D-Erfassungskomponente 120 die Straße 504 (nicht in 6 gezeigt), das Gebäude 606 (welches das Gebäude 506 der Punktwolke 500 sein kann), die Personen 608, 610, 612 (welche die Mehrzahl von Personen 508-512 der Punktwolke 500 sein können) und die Fahrzeuge 614, 616, 618 (welche die Mehrzahl von Fahrzeugen 514- 518 der Punktwolke 500 sein können) clustern. Die 3D-Erfassungskomponente 120 kann Boden von der Punktwolke 600 entfernen, indem sie zum Beispiel bestimmt, dass der Boden die größte planare Komponente in der Punktwolke 600 ist.
-
7 stellt ein Beispiel einer Punktwolke 700 mit von dem Bild 400 übertragenen Labels, mit Labeling für die Punktwolke 600, wobei Clustering durchgeführt worden ist, und mit entferntem Boden dar. In einem Aspekt kann die 3D-Erfassungskomponente 120 die Label des Bildes 300 mit den Punkten der Punktwolke 600 assoziieren und kann dynamische Verkehrsteilnehmer basierend auf den Labels bestimmen. Wie durch 7 gezeigt, sind die Personen 608-612 (welche die Personen 508- 512 der Punktwolke 500 sein können) der Punktwolke 600 als Personen und die Fahrzeuge 614-618 (welche die Fahrzeuge 514-518 der Punktwolke 500 sein können) der Punktwolke 600 als Fahrzeuge gelabelt worden und sind daher als dynamische Verkehrsteilnehmer 702 bestimmt. Jedoch ist das Gebäude 706 (welches das Gebäude 506 der Punktwolke 500 sein kann) der Punktwolke 700 als ein Gebäude gelabelt worden, für welches bestimmt ist, dass es ein dynamischer Verkehrsteilnehmer ist.
-
8 stellt ein Beispiel einer Punktwolke 800 dar, bei welcher die dynamischen Verkehrsteilnehmer entfernt sind. In einem Aspekt kann die Dynamischer-Verkehrsteilnehmer-Komponente 122 dynamische Verkehrsteilnehmer basierend auf der gelabelten Punktwolke entfernen. In einem Beispiel können dynamische Verkehrsteilnehmer die Personen 508-512 und die Fahrzeuge 514-518 umfassen. Im Vergleich zu 5, umfasst 8 die Personen 508-512 und die Fahrzeuge 514-518 nicht, da die dynamischen Verkehrsteilnehmer von der Punktwolke 800 entfernt worden sind. Wie in 8 gezeigt, verbleibt jedoch das Gebäude 808 (welches das Gebäude 506 der Punktwolke 500 sein kann) in der Punktwolke 800. Sobald dynamische Verkehrsteilnehmer entfernt worden sind, kann die SLAM-Komponente einen SLAM-Vorgang wie oben beschrieben unter Verwendung von Daten von der Punktwolke 800 durchführen, bei welcher dynamische Verkehrsteilnehmer entfernt sind.
-
Aspekte der vorliegenden Offenbarung können unter Verwendung von Hardware, Software oder einer Kombination davon implementiert werden und können in einem oder mehreren Computersystemen oder anderen Verarbeitungssystemen implementiert werden. In einer Variation sind Aspekte der Offenbarung auf ein oder mehrere Computersysteme gerichtet, welche dazu in der Lage sind, die hierin beschriebene Funktionalität auszuführen. Ein Beispiel eines solchen Computersystems 900 ist in 9 gezeigt.
-
Das Computersystem 900 umfasst einen oder mehrere Prozessoren, wie etwa einen Prozessor 904. Der Prozessor 904 ist mit einer Kommunikationsinfrastruktur 906 (z. B. einem Kommunikationsbus, einer Überkreuzungsstange oder einem Netzwerk) verbunden. Verschiedene Softwareaspekte werden im Hinblick auf dieses beispielhafte Computersystem beschrieben. Nach dem Lesen dieser Beschreibung wird einem Fachmann in dem relevanten Fachgebiet ersichtlich werden, wie Aspekte der Offenbarung unter Verwendung anderer Computersysteme und/oder Architekturen implementiert werden können.
-
Das Computersystem 900 kann eine Anzeigeschnittstelle 902 umfassen, welche Grafiken, Text und andere Daten von der Kommunikationsinfrastruktur 906 (oder von einem nicht gezeigten Bildpuffer) zur Anzeige auf einer Anzeigeeinheit 930 weiterleitet. Das Computersystem 900 umfasst auch einen Hauptspeicher 908, vorzugsweise einen Direktzugriffsspeicher (RAM - random access memory), und kann auch einen Sekundärspeicher 910 umfassen. Der Sekundärspeicher 910 kann zum Beispiel ein Festplattenlaufwerk 912 und/oder ein Wechselspeicherlaufwerk 914 umfassen, welches ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein optisches Plattenlaufwerk etc. darstellt. Das Wechselspeicherlaufwerk 914 liest aus und/oder schreibt in eine Wechselspeichereinheit 918 auf bekannte Weise. Die Wechselspeichereinheit 918 stellt eine Diskette, ein Magnetband, eine optische Platte etc. dar, welche von dem Wechselspeicherlaufwerk 914 gelesen und beschrieben werden. Wie zu erkennen ist, umfasst die Wechselspeichereinheit 918 ein in einem Computer verwendbares Speichermedium mit darin gespeicherter Computersoftware und/oder darin gespeicherten Daten.
-
In alternativen Aspekten kann der Sekundärspeicher 910 andere ähnliche Vorrichtungen umfassen, um zu ermöglichen, dass Computerprogramme oder andere Anweisungen in das Computersystem 900 geladen werden. Solche Vorrichtungen können zum Beispiel eine Wechselspeichereinheit 922 und eine Schnittstelle 920 umfassen. Beispiele davon können eine Programmkassette und eine Kassettenschnittstelle (wie diejenigen, welche in Videospielvorrichtungen vorhanden sind), einen Wechselspeicherchip (wie etwa einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM - erasable programmable read only memory) oder einen programmierbaren Nur-Lese-Speicher (PROM - programmable read only memory)) und eine assoziierte Buchse sowie andere Wechselspeichereinheiten 922 und Schnittstellen 920 umfassen, welche ermöglichen, dass Software und Daten von der Wechselspeichereinheit 922 zu dem Computersystem 900 übertragen werden.
-
Das Computersystem 900 kann auch eine Kommunikationsschnittstelle 924 umfassen. Die Kommunikationsschnittstelle 924 ermöglicht, dass Software und Daten zwischen dem Computersystem 900 und externen Vorrichtungen übertragen werden. Beispiele der Kommunikationsschnittstelle 924 können ein Modem, eine Netzwerkschnittstelle (wie etwa eine Ethernet-Karte), einen Kommunikationsanschluss, einen Personal-Computer-Memory-Card-International-Association- (PCMCIA - Personal Computer Memory Card International Association) -Steckplatz und eine Personal-Computer-Memory-Card-International-Association-Karte etc. umfassen. Software und Daten, welche über die Kommunikationsschnittstelle 924 übertragen werden, liegen in der Form von Signalen 928 vor, welche elektronische, elektromagnetische, optische oder andere Signale sein können, welche von der Kommunikationsschnittstelle 924 empfangen werden können. Diese Signale 928 werden der Kommunikationsschnittstelle 924 über einen Kommunikationspfad (z. B. Kanal) 926 bereitgestellt. Dieser Pfad 926 trägt Signale 928 und kann unter Verwendung von Draht oder Kabel, Faseroptik, einer Telefonleitung, einer zellularen Verbindung, einer Funkfrequenz- (RF - radio frequency) -Verbindung und/oder anderen Kommunikationskanälen implementiert werden. In diesem Dokument werden die Ausdrücke „Computerprogrammmedium“ und „computernutzbares Medium“ verwendet, um sich allgemein auf Medien wie etwa ein Wechselspeicherlaufwerk 980, eine im Festplattenlaufwerk 970 installierte Festplatte und Signale 928 zu beziehen. Diese Computerprogrammprodukte dem Computersystem 900 Software bereit. Aspekte der Offenbarung sind auf solche Computerprogrammprodukte gerichtet.
-
Computerprogramme (auch als Computersteuerlogik bezeichnet) werden in dem Hauptspeicher 908 und/oder in dem Sekundärspeicher 910 gespeichert. Computerprogramme können auch über die Kommunikationsschnittstelle 924 empfangen werden. Solche Computerprogramme ermöglichen, wenn sie ausgeführt werden, dass das Computersystem 900 verschiedene Funktionen gemäß Aspekten der vorliegenden Offenbarung durchführt, wie hierin erörtert. Insbesondere ermöglichen die Computerprogramme, wenn sie ausgeführt werden, dass der Prozessor 904 solche Funktionen durchführt. Dementsprechend stellen solche Computerprogramme Steuerungen des Computersystems 900 dar. Computerprogramme können eine Lokalisierungs- und Kartierungskomponente 106, eine Bildkomponente 108 zum Empfangen von Bildern von einer oder mehreren Kameras 110, eine Punktwolkenkomponente 112 zum Empfangen von Punktwolken, eine Ortskomponente 116 zum Bestimmen eines Orts einer oder mehrerer Einheiten, welche mit dem Prozessor 904 etc. assoziiert sind, umfassen, wie hierin beschrieben.
-
In Variationen, bei welchen Aspekte der Offenbarung unter Verwendung von Software implementiert werden, kann die Software in einem Computerprogrammprodukt gespeichert werden und unter Verwendung eines Wechselspeicherlaufwerks 914, eines Festplattenlaufwerks 912 oder einer Kommunikationsschnittstelle 920 in das Computersystem 900 geladen werden. Die Steuerlogik (Software) veranlasst, wenn sie durch den Prozessor 904 ausgeführt wird, dass der Prozessor 904 die Funktionen gemäß Aspekten der Offenbarung durchführt, wie hierin beschrieben. In einer anderen Variation werden Aspekte hauptsächlich in Hardware implementiert, wobei zum Beispiel Hardwarekomponenten verwendet werden, wie etwa anwendungsspezifische integrierte Schaltungen (ASICs - application specific integrated circuits). Eine Implementierung der Hardware-Zustandsmaschine, um die hierin beschriebenen Funktionen durchzuführen, ist für einen Fachmann in dem relevanten Fachgebiet offensichtlich.
-
In noch einer weiteren Variation werden Aspekte der Offenbarung unter Verwendung einer Kombination von sowohl Hardware als auch Software implementiert.
-
10 ist ein Blockdiagramm verschiedener beispielhafter Systemkomponenten, welche werden können, gemäß Aspekten der vorliegenden Offenbarung. Zum Beispiel können sich die verschiedenen Komponenten innerhalb des Fahrzeugs 102 befinden oder nur einige der Komponenten können sich innerhalb des Fahrzeugs 102 befinden und andere Komponenten können sich von dem Fahrzeug 102 entfernt befinden. Das System 1000 umfasst einen oder mehrere Accessoren 1060, 1062 (ebenfalls hierin austauschbar als ein oder mehrere „Benutzer“ bezeichnet) und ein oder mehrere Endgeräte 1042, 1066 (solche Endgeräte können zum Beispiel verschiedene Funktionen des Objekterfassungssystems 110 sein oder umfassen). In einem Aspekt werden Daten zur Verwendung gemäß Aspekten der vorliegenden Offenbarung zum Beispiel durch die Accesssoren 1060, 1062 eingegeben oder es wird auf diese Daten durch die Accessoren zugegriffen über die Endgeräte 1042, 1066, wie etwa Personal Computer (PCs - personal computers), Minicomputer, Großrechner, Mikrocomputer, Telefonvorrichtungen oder drahtlose Vorrichtungen, wie etwa persönliche digitale Assistenten („PDAs“ - personal digital assistants) oder mit einem Server 1043 gekoppelte tragbare drahtlose Vorrichtungen, wie etwa ein PC, ein Minicomputer, ein Großrechner, ein Mikrocomputer oder eine andere Vorrichtung mit einem Prozessor und einem Repository für Daten und/oder einer Verbindung zu einem Repository für Daten, zum Beispiel über ein Netzwerk 1044, wie etwa das Internet oder ein Intranet, und Kopplungen 1045, 1046, 1064. Die Kopplungen 1045, 1046, 1064 umfassen zum Beispiel verdrahtete, drahtlose oder Faseroptikverbindungen. In einer anderen beispielhaften Variation arbeiten das Verfahren und das System gemäß Aspekten der vorliegenden Offenbarung in einer eigenständigen Umgebung, wie etwa auf einem einzelnen Endgerät.
-
Die hierin diskutierten Aspekte der Offenbarung können auch in dem Kontext eines computerlesbaren Speichermediums beschrieben und implementiert werden, welches computerausführbare Anweisungen speichert. Computerlesbare Speichermedien umfassen Computerspeichermedien und Kommunikationsmedien. Zum Beispiel Flash-Speicherlaufwerke, Digital Versatile Discs (DVDs), Compact Discs (CDs), Disketten und Bandkassetten. Computerlesbare Speichermedien können flüchtige und nicht flüchtige, entfernbare und nicht entfernbare Medien umfassen, welche in jeglichem Verfahren oder jeglicher Technologie zum Speichern von Informationen wie etwa computerlesbaren Anweisungen, Datenstrukturen, Modulen oder anderen Daten implementiert sind.
-
Es versteht sich, dass verschiedene Implementierungen der vorstehend offenbarten und anderer Merkmale und Funktionen oder Alternativen oder Varianten davon wünschenswerterweise in vielen anderen verschiedenen Systemen oder Anwendungen kombiniert werden können. Auch, dass verschiedene derzeit unvorhergesehene oder unerwartete Alternativen, Modifikationen, Variationen oder Verbesserungen darin nachträglich durch einen Fachmann vorgenommen werden können, welche ebenfalls von den folgenden Ansprüchen umfasst sein sollen.
-
Ein System, ein computerlesbares Medium und ein Verfahren zur Lokalisierung und Kartierung für ein autonomes Fahrzeug werden bereitgestellt. Das System kann ein Bild erhalten. Das System kann einem oder mehreren Objekten des Bildes Labels zuordnen. Das System kann auch eine Punktwolke erhalten. Das System kann einen oder mehrere Objektcluster der Punktwolke bestimmen und die dem einen oder den mehreren Objekten des Bildes zugeordneten Labels mit Punkten der Objektcluster der Punktwolke assoziieren. Das System kann ferner dreidimensionale (3D) Objekte der Punktwolke basierend auf den mit den Punkten der Objektcluster assoziierten Labels identifizieren. In einigen Aspekten kann das System dynamische Verkehrsteilnehmer von der Punktwolke basierend auf den identifizierten 3D-Objekten entfernen und/oder einen simultanen Lokalisierungs- und Kartierungsvorgang an der Punktwolke durchführen, nachdem die dynamischen Verkehrsteilnehmer entfernt worden sind.