-
ALLGEMEINER STAND DER TECHNIK
-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft die Umsetzung von Steuerlogik für ein autonomes Fahrzeug.
-
ALLGEMEINER STAND DER TECHNIK
-
Autonome Fahrzeuge werden immer relevanter und kommen tagtäglich immer mehr zum Einsatz. Bei einem autonomen Fahrzeug stützt sich eine Steuerung auf Sensoren, um umliegende Hindernisse und Straßenbeläge zu erfassen. Die Steuerung setzt Logik um, welche die Steuerung des Lenkens, Bremsens und Beschleunigens ermöglicht, um ein Ziel zu erreichen und Kollisionen zu vermeiden. Damit sie richtig autonom arbeiten kann, muss die Steuerung Ampeln identifizieren und deren Zustand bestimmen, um Kollisionen mit Querverkehr zu vermeiden.
-
Das hierin offenbarte System und Verfahren stellt einen verbesserten Ansatz zur Durchführung der Ampelerkennung bei einem autonomen Fahrzeug bereit.
-
Figurenliste
-
Damit die Vorteile der Erfindung ohne Weiteres verstanden werden, erfolgt durch Bezugnahme auf konkrete Ausführungsformen, die in den beigefügten Zeichnungen veranschaulicht sind, eine genauere Beschreibung der vorstehend kurz beschriebenen Erfindung. Unter der Kenntnisnahme, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung darstellen und daher nicht als den Schutzumfang beschränkend aufzufassen sind, wird die Erfindung mit zusätzlicher Genauigkeit und Ausführlichkeit durch die Verwendung der beigefügten Zeichnungen beschrieben und erläutert, in denen Folgendes gilt:
- 1A und 1B sind schematische Blockdiagramme eines Systems zum Umsetzen von Ausführungsformen der Erfindung;
- 2 ist ein schematisches Blockdiagramm einer beispielhaften Rechenvorrichtung, die zum Umsetzen von Verfahren gemäß Ausführungsformen der Erfindung geeignet ist;
- 3 ist ein Verfahren zum Generieren von annotierten Bildern aus einem 3D-Modell, um ein Ampelerkennungsmodell gemäß einer Ausführungsform der vorliegenden Erfindung zu trainieren;
- 4 veranschaulicht ein Szenario zum Trainieren eines maschinellen Lernmodells gemäß einer Ausführungsform der vorliegenden Erfindung; und
- 5 ist ein Prozessablaufdiagramm eines Verfahrens zum Trainieren eines Modells unter Verwendung von annotierten Bildern gemäß einer Ausführungsform der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG
-
Es versteht sich ohne Weiteres, dass die Komponenten der vorliegenden Erfindung, wie sie hierin allgemein beschrieben und in den Figuren veranschaulicht sind, in einer großen Vielfalt von unterschiedlichen Konfigurationen angeordnet und gestaltet sein können. Somit ist die folgende ausführlichere Beschreibung der Ausführungsformen der Erfindung, wie sie in den Figuren dargestellt ist, nicht als den Schutzumfang der beanspruchten Erfindung einschränkend, sondern als rein repräsentativ für bestimmte Beispiele von gegenwärtig in Erwägung gezogenen Ausführungsformen gemäß der Erfindung zu verstehen. Die gegenwärtig beschriebenen Ausführungsformen werden am besten unter Bezugnahme auf die Zeichnungen verstanden, in denen gleiche Teile durch gleiche Bezugszeichen bezeichnet sind.
-
Ausführungsformen gemäß der vorliegenden Erfindung können als eine Vorrichtung, ein Verfahren oder ein Computerprogrammprodukt ausgeführt werden. Dementsprechend kann die vorliegende Erfindung die Form einer ausschließlichen Hardwareausführung, einer ausschließlichen Softwareausführung (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte kombiniert, die hierin im Allgemeinen als ein „Modul“ oder „System“ bezeichnet werden können. Außerdem kann die vorliegende Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem beliebigen greifbaren Expressionsmedium mit computernutzbarem Programmcode, der im Medium ausgeführt ist, ausgeführt ist.
-
Eine beliebige Kombination aus einem oder mehreren computernutzbaren oder computerlesbaren Medien kann verwendet werden. Zum Beispiel kann ein computerlesbares Medium eines oder mehrere einer tragbaren Computerdiskette, einer Festplatte, einer Direktzugriffsspeicher-(random access memory - RAM)-Vorrichtung, einer Festwertspeicher-(read-only memory-ROM)-Vorrichtung, einer löschbaren programmierbaren Festwertspeicher-(EPROM oder Flash-Speicher)-Vorrichtung, eines tragbaren Compact-Disk-Festwertspeichers (CDROM), einer optischen Speichervorrichtung und einer magnetischen Speichervorrichtung beinhalten. In ausgewählten Ausführungsformen kann ein computerlesbares Medium ein beliebiges nichtflüchtiges Medium umfassen, das das Programm zur Verwendung durch oder in Verbindung mit dem/der Anweisungsausführungssystem, - Vorrichtung oder -gerät enthalten, speichern, damit kommunizieren, übertragen oder transportieren kann.
-
Ein Computerprogrammcode zum Ausführen von Vorgängen der vorliegenden Erfindung kann in jeder beliebigen Kombination von einer oder mehreren Programmiersprachen, einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java, Smalltalk, C++ oder dergleichen, und herkömmlicher prozeduraler Programmiersprachen, wie beispielsweise die „C“-Programmiersprache oder ähnliche Programmiersprachen, geschrieben sein. Der Programmcode kann gänzlich auf einem Computersystem als ein eigenständiges Software-Paket, auf einer eigenständigen Hardware-Einheit, teilweise auf einem Ferncomputer, der sich in einigem Abstand zum Computer befindet, oder gänzlich auf einem Ferncomputer oder -server ausgeführt werden. In letztgenanntem Fall kann der Ferncomputer mit dem Computer mittels einer beliebigen Art von Netz verbunden sein, einschließlich eines lokalen Netzes (LAN) oder eines Großraumnetzes (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel mittels des Internets unter Verwendung eines Internetdienstleistungsanbieters).
-
Die vorliegende Erfindung ist nachfolgend unter Bezugnahme auf Flussdiagrammveranschaulichungen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagrammveranschaulichungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Flussdiagrammveranschaulichungen und/oder Blockdiagrammen durch Computerprogrammanweisungen oder einen Computerprogrammcode eingerichtet sein kann. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren, Daten verarbeitenden Vorrichtung zur Herstellung einer Maschine bereitgestellt sein, sodass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren, Daten verarbeitenden Vorrichtung ausgeführt werden, Mittel zum Einrichten der Funktionen/Handlungen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms spezifiziert sind, schaffen.
-
Diese Computerprogrammanweisungen können ebenso in einem nichtflüchtigen computerlesbaren Medium gespeichert werden, das einen Computer oder eine andere programmierbare, Daten verarbeitende Vorrichtung dazu veranlasst, in einer bestimmten Art und Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsgegenstand herstellen, einschließlich Anweisungsmitteln, die die Funktion/Handlung, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms spezifiziert ist, einrichten.
-
Die Computerprogrammanweisungen können ebenso auf einen Computer oder eine andere programmierbare, Daten verarbeitende Vorrichtung aufgespielt werden, um zu veranlassen, dass eine Reihe von Verfahrensschritten auf dem Computer oder der anderen programmierbaren Vorrichtung durchgeführt wird, um ein computereingerichtetes Verfahren herzustellen, sodass die Anweisungen, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Verfahren zum Einrichten der Funktionen/Handlungen bereitstellen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms spezifiziert sind.
-
Unter Bezugnahme auf 1A kann eine Netzwerkumgebung 100 ein Serversystem 102 beinhalten, das eine Datenbank 104 aufnimmt oder darauf zugreifen, welche Daten beinhaltet, die ausreichend sind, um ein Szenario zum Trainieren oder Beurteilen eines Erkennungssystems zu definieren. Insbesondere kann die Datenbank 104 Fahrzeugmodelle 106a speichern, die Geometriedaten 108a für das Fahrzeug beinhalten, z. B. die Form der Karosserie, Reifen und jedes beliebige andere sichtbare Merkmal des Fahrzeugs. Die Geometriedaten 108a können ferner Materialdaten beinhalten, wie etwa Härte, Reflektivität oder Materialtyp. Das Fahrzeugmodell 106a kann ferner ein dynamisches Modell 108b beinhalten, das Betriebsgrenzen des Fahrzeugs angibt, z. B. Drehradius, Beschleunigungsprofil (maximale Beschleunigung bei einer bestimmten Geschwindigkeit) und dergleichen. Die Fahrzeugmodelle 106a können auf tatsächlichen Fahrzeugen beruhen und die Felder 108a, 108b können mithilfe von Daten, die durch Messung der tatsächlichen Fahrzeuge erhalten werden, gefüllt werden.
-
In einigen Ausführungsformen kann die Datenbank 104 ein Fahrzeugmodell 106b für ein Fahrzeug speichern, das einen oder mehrere Sensoren enthält, die zur Hinderniserkennung verwendet werden. Wie nachfolgend beschrieben, können die Ausgaben dieser Sensoren Eingabe in ein Modell sein, das gemäß den hierin offenbarten Verfahren trainiert oder beurteilt wird. Dementsprechend kann das Fahrzeugmodell 106b zusätzlich ein oder mehrere Sensormodell 108c beinhalten, die die Stellen von einem oder mehreren Sensoren am Fahrzeug, die Ausrichtung des einen oder der mehreren Sensoren und einen oder mehrere Deskriptoren des einen oder der mehreren Sensoren angeben. Bei einer Kamera kann das Sensormodell 108c das Sichtfeld, die Auflösung, die Vergrößerung, die Bildwechselfrequenz oder eine andere Betriebsgrenze der Kamera beinhalten. Bei einem Mikrofon beispielsweise kann das Sensormodell 108c die Verstärkung, das Signal-Rausch-Verhältnis, das Empfindlichkeitsprofil (Empfindlichkeit gegenüber Frequenz) und dergleichen beinhalten. Bei einem Ultraschallsensor, LIDAR-Sensor (Light Detection and Ranging), RADAR-Sensor (Radio Detection and Ranging) oder SONAR-Sensor (Sound Navigation and Ranging) kann das Sensormodell 108c eine Auflösung, ein Sichtfeld und eine Abtastrate des Systems beinhalten.
-
Die Datenbank 104 kann ein Umgebungsmodell 106c beinhalten, welches Modelle von verschiedenen Landschaften beinhaltet, wie etwa Modelle von Straßen mit Kreuzungen, Gebäuden, Fußgängern, Bäumen usw. Die Modelle können die Geometrie und Stelle von Objekten in einer Landschaft definieren und können ferner andere Aspekte beinhalten, wie etwa Reflektivität durch Laser, RADAR, Schall, Licht usw., um eine Simulation der Wahrnehmung der Objekte durch einen Sensor zu ermöglichen.
-
Wie nachfolgend beschrieben, sind die hierin offenbarten Verfahren besonders für die Ampelerkennung geeignet. Entsprechend kann das Umgebungsmodell 106c Modelle von Lichtquellen wie zum Beispiel Ampeln 110a und anderen Lichtern 110b wie zum Beispiel Straßenlaternen, beleuchteten Schildern, natürlichen Lichtquellen (Sonne, Mond, Sterne) und dergleichen enthalten. In einigen Ausführungsformen können Fahrzeugmodelle 106a, 106b auch Lichtquellen wie zum Beispiel Heckleuchten, Scheinwerfer und dergleichen enthalten.
-
Die Datenbank 104 kann ein maschinelles Lernmodell 106d speichern. Das maschinelle Lernmodell 106d kann mithilfe der Modelle 106a-106c gemäß den hierin beschriebenen Verfahren trainiert werden. Das maschinelle Lernmodell 106d kann ein tiefes neurales Netzwerk, Bayessches Netzwerk oder ein anderer Typ eines maschinellen Lernmodells sein.
-
Das Serversystem 102 kann eine Trainingengine 112 ausführen. Die Trainingengine 112 kann ein Szenarienmodul 114a beinhalten. Das Szenarienmodul 114a kann Modelle 106a-106c abrufen und ein Szenario von Modellen von Fahrzeugen, die auf Modellen von Straßen platziert sich und/oder sich dort entlang bewegen, generieren. Das Szenarienmodul 114a kann diese Szenarien manuell generieren oder menschliche Eingaben empfangen, die erste Stellen von Fahrzeugen, Geschwindigkeiten von Fahrzeugen usw. spezifizieren. In einigen Ausführungsformen können Szenarien auf Video oder anderen Messungen einer tatsächlichen Stelle modelliert werden, z. B. Beobachtungen einer Stelle, Bewegungen des Fahrzeugs an der Stelle, die Stelle von anderen Objekten usw.
-
In einigen Ausführungsformen kann das Szenarienmodul 114a eine Datei lesen, die Stellen und/oder Ausrichtungen von verschiedenen Modellen eines Szenarios spezifizieren, und ein Modell des Szenarios erstellen, welches Modelle 106a-106c der Elemente aufweist, die laut Anweisung in der Datei positioniert sind. Auf diese Weise können manuell oder automatisch generierte Dateien verwendet werden, um ein breites Spektrum an Szenarien von verfügbaren Modellen 106a-106c zu definieren.
-
Die Trainingengine 112 kann ein Sensorsimulationsmodul 114b beinhalten. Für ein Szenario und ein Fahrzeugmodell 106b, das in dem Szenario enthalten ist, das die Sensormodelldaten 108c beinhaltet, kann insbesondere eine Wahrnehmung des Szenarios durch die Sensoren durch das Sensorsimulationsmodul 114b simuliert werden, wie nachfolgend ausführlicher beschrieben.
-
Insbesondere können verschiedene Renderingschemata verwendet werden, um ein Bild des Szenarios aus Sicht einer durch das Sensormodell 108c definierten Kamera zu rendern. Das Rendern kann das Durchführen von Ray-Tracing oder eines anderen Ansatzes zum Modellieren der Lichtausbreitung von verschiedenen Lichtquellen 110a, 110b in dem Umgebungsmodell 106c und den Fahrzeugmodellen 106a, 106b beinhalten.
-
Die Trainingengine 112 kann ein Annotationsmodul 114c beinhalten. Simulierte Sensorausgaben aus dem Sensorsimulationsmodul 114b können mit „Grundwahrheit“ des Szenarios annotiert werden, welches die tatsächlichen Stellen von Hindernissen im Szenario angibt. In den hierin offenbarten Ausführungsformen können die Annotationen die Stelle und den Zustand (rot, gelb, grün) von Ampeln in einem Szenario beinhalten, denen das Prüffahrzeug 106b unterliegt, d. h. Leiten von Verkehr auf der Spur und in der Verkehrsrichtung des Prüffahrzeugs 106b.
-
Die Trainingengine 112 kann ein maschinelles Lernmodul 114d beinhalten. Das maschinelle Lernmodul 114d kann das maschinelle Lernmodell 106d trainieren. Zum Beispiel kann das maschinelle Lernmodell 106d trainiert werden, um die Stelle und den Zustand einer Ampel zu identifizieren, indem annotierte Bilder verarbeitet werden. Das maschinelle Lernmodell 106d kann trainiert werden, um die Stelle und den Zustand von Ampeln zu identifizieren, sowie, ob die Ampel das Prüffahrzeug betrifft. Das maschinelle Lernmodul 114d kann das maschinelle Lernmodell 106d trainieren, indem die Bilder als eine Eingabe und die Anmerkungen für die Bilder als gewünschte Ausgaben eingegeben werden.
-
Unter Bezugnahme auf 1B kann das maschinelle Lernmodell 106d, wie mithilfe des Systems aus 1A generiert, verwendet werden, um die Ampelerkennung im veranschaulichten System 120 durchzuführen, welches in einem Fahrzeug integriert sein kann, wie etwa einem autonomen oder von einem Menschen bedienten Fahrzeug. Zum Beispiel kann das System 120 die Steuerung 122 beinhalten, die in einem Fahrzeug untergebracht ist. Das Fahrzeug kann ein beliebiges im Fach bekanntes Fahrzeug beinhalten. Das Fahrzeug kann alle der Strukturen und Merkmale eines beliebigen auf dem Fachgebiet bekannten Fahrzeugs aufweisen, einschließlich Rädern, eines an die Räder gekoppelten Antriebsstrangs, eines an den Antriebsstrang gekoppelten Motors, eines Lenksystems, eines Bremssystems und anderer in ein Fahrzeug zu integrierender Systeme.
-
Wie hierin ausführlicher erörtert, kann die Steuerung 122 autonome Navigation und Kollisionsvermeidung mithilfe von Sensordaten durchführen. Alternativ kann die Steuerung 122 mithilfe von Sensordaten Hindernisse identifizieren und vom Benutzer wahrnehmbare Ergebnisse generieren. Insbesondere kann die Steuerung 122 Ampeln in Sensordaten mithilfe des maschinellen Lernens 106d identifizieren, das wie nachfolgend unter Bezugnahme auf 3 bis 5 beschrieben ist.
-
Die Steuerung 122 kann ein oder mehrere Bildströme von einer oder mehreren Abbildungsvorrichtungen 124 empfangen. Zum Beispiel kann/können eine oder mehrere Kamera(s) am Fahrzeug montiert sein und von der Steuerung 122 empfangene Bildströme ausgeben. Die Steuerung 122 kann ein oder mehrere Audioströme von einer oder mehreren Mikrofonen 126 empfangen. Zum Beispiel kann/können eine oder mehrere Mikrofone oder Mikrofonarrays am Fahrzeug montiert sein und von der Steuerung 122 empfangene Audioströme ausgeben. Die Mikrofone 126 können Richtmikrofone mit einer Empfindlichkeit, die mit dem Winkel variiert, beinhalten.
-
In einigen Ausführungsformen kann das System 120 andere Sensoren 128 beinhalten, die an die Steuerung 122 gekoppelt sind, wie etwa LIDAR (Light Detection and Ranging), RADAR (Radio Detection and Ranging), SONAR (Sound Navigation and Ranging), Ultraschallsensor und dergleichen. Die Stellen und Ausrichtungen der Erfassungsvorrichtungen 124, 126, 128 können denen entsprechen, die im Sensormodell 108c modelliert sind, welches verwendet wird, um das maschinelle Lernmodell 106d zu trainieren.
-
Die Steuerung 122 kann ein autonomes Betriebsmodul 130 ausführen, welches Ausgaben von einigen oder allen der Abbildungsvorrichtungen 124, Mikrofone 126 und anderen Sensoren 128 empfängt. Das autonome Betriebsmodul 130 analysiert dann die Ausgaben, um mögliche Hindernisse zu identifizieren.
-
Das autonome Betriebsmodul 130 kann ein Hindernisidentifikationsmodul 132a, ein Kollisionsvorhersagemodul 132b und ein Entscheidungsmodul 132c beinhalten. Das Hindernisidentifikationsmodul 132a analysiert die Ausgaben der Erfassungsvorrichtungen 124, 126, 128 und identifiziert mögliche Hindernisse, einschließlich Menschen, Tiere, Fahrzeuge, Gebäude, Bordsteine und andere Objekte und Strukturen.
-
Das Kollisionsvorhersagemodul 132b sagt vorher, welche Hindernisbilder wahrscheinlich mit dem Fahrzeug basierend auf seinem gegenwärtigen Kurs oder gegenwärtig beabsichtigten Pfad kollidieren werden. Das Kollisionsvorhersagemodul 132b kann die Wahrscheinlichkeit einer Kollision mit Objekten, die durch das Hindernisidentifikationsmodul 132a identifiziert wurden, sowie Objekten, die mithilfe des maschinellen Lernmoduls 114d erkannt wurden, auswerten. Das Entscheidungsmodul 132c kann eine Entscheidung treffen, um anzuhalten, zu beschleunigen, eine Kurve zu fahren usw., um Hindernisse zu vermeiden. Die Weise, auf die das Kollisionsvorhersagemodul 132b mögliche Kollisionen vorhersagt, und die Weise, auf die das Entscheidungsmodul 132c Maßnahmen ergreift, um mögliche Kollisionen zu verhindern, können gemäß einem beliebigen auf dem Fachgebiet autonomer Fahrzeuge bekannten Verfahren oder System sein.
-
Das Entscheidungsmodul 132c kann den Kurs des Fahrzeugs durch Betätigen eines oder mehrerer Aktoren 136, die die Richtung und Geschwindigkeit des Fahrzeugs steuern, um in Richtung eines Ziels fortzuschreiten und Hindernisse zu vermeiden, steuern. Zum Beispiel können die Aktoren 136 einen Lenkaktor 138a, einen Beschleunigungsaktor 138b und einen Bremsaktor 138c beinhalten. Die Konfiguration der Aktoren 138a-138c kann gemäß einer beliebigen Umsetzung solcher im Fach der autonomen Fahrzeuge bekannten Aktoren erfolgen.
-
Das Entscheidungsmodul 132c kann das maschinelle Lernmodell 106d beinhalten oder darauf zugreifen, das unter Verwendung des Systems 100 aus 1A trainiert ist, um Bilder von den Abbildungsvorrichtungen 124 zu verarbeiten, um die Stelle und Zustände von Ampeln zu identifizieren, denen das Fahrzeug unterliegt. Entsprechend hält das Entscheidungsmodul 132c als Reaktion auf die Identifizierung einer regelnden Ampel, die rot ist, an, und fährt, wenn es sicher ist, als Antwort auf die Identifizierung einer regelnden Ampel, die grün ist, weiter.
-
2 ist ein Blockdiagramm, das eine beispielhafte Rechenvorrichtung 200 veranschaulicht. Die Rechenvorrichtung 200 kann dazu verwendet werden, verschiedene Vorgänge auszuführen, wie etwa die hierin erörterten. Das Serversystem 102 und die Steuerung 122 können einige oder alle der Attribute der Rechenvorrichtung 200 aufweisen.
-
Die Rechenvorrichtung 200 beinhaltet einen oder mehrere Prozessor(en) 202, eine oder mehrere Speichervorrichtung(en) 204, eine oder mehrere Schnittstelle(n) 206, eine oder mehrere Massenspeichervorrichtung(en) 208, eine oder mehrere Ein-/Ausgabe-(E/A)-Vorrichtung(en) 210 und eine Anzeigevorrichtung 230, die alle an einen Bus 212 gekoppelt sind. Der/Die Prozessor(en) 202 beinhaltet/beinhalten eine(n) oder mehrere Prozessoren oder Steuerungen, der/die in der/den Speichervorrichtung(en) 204 und/oder der/den Massenspeichervorrichtung(en) 208 gespeicherte Anweisungen ausführen. Der/Die Prozessor(en) 202 kann/können zudem verschiedene Arten von computerlesbaren Medien beinhalten, wie etwa Cache-Speicher.
-
Die Speichervorrichtung(en) 204 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie etwa flüchtigen Speicher (z. B. Direktzugriffsspeicher (random access memory - RAM) 214) und/oder nichtflüchtigen Speicher (z. B. Festwertspeicher (read-only memory - ROM) 216). Die Speichervorrichtung(en) 204 kann/können zudem wiederbeschreibbaren ROM beinhalten, wie etwa Flash-Speicher.
-
Die Massenspeichervorrichtung(en) 208 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie etwa Magnetbänder, Magnetplatten, optische Platten, Festkörperspeicher (z. B. Flash-Speicher) und so weiter. Wie in 2 gezeigt, ist eine besondere Massenspeichervorrichtung ein Festplattenlaufwerk 224. Zudem können verschiedene Laufwerke in der/den Massenspeichervorrichtung(en) 208 beinhaltet sein, um ein Auslesen aus und/oder Schreiben auf die verschiedenen computerlesbaren Medien zu ermöglichen. Die Massenspeichervorrichtung(en) 208 beinhaltet/beinhalten entfernbare Medien 226 und/oder nichtentfernbare Medien.
-
Die E/A-Vorrichtung(en) 210 beinhaltet/beinhalten verschiedene Vorrichtungen, die es ermöglichen, dass Daten und/oder andere Informationen in die Rechenvorrichtung 200 eingegeben oder daraus abgerufen werden. (Eine) Beispielhafte E/A-Vorrichtung(en) 210 beinhaltet/beinhalten Cursorsteuervorrichtungen, Tastaturen, Tastenfelder, Mikrofone, Monitore oder andere Anzeigevorrichtungen, Lautsprecher, Drucker, Netzwerkschnittstellenkarten, Modems, Linsen, CCDs oder andere Bilderfassungsvorrichtungen und dergleichen.
-
Die Anzeigevorrichtung 230 beinhaltet eine beliebige Art von Vorrichtung, die dazu in der Lage ist, einem oder mehreren Benutzern der Rechenvorrichtung 200 Informationen anzuzeigen. Zu Beispielen für eine Anzeigevorrichtung 230 gehören ein Monitor, ein Anzeigeendgerät, eine Videoprojektionsvorrichtung und dergleichen.
-
Die Schnittstelle(n) 206 beinhaltet/beinhalten verschiedene Schnittstellen, die es der Rechenvorrichtung 200 ermöglichen, mit anderen Systemen, Vorrichtungen oder Rechenumgebungen zu interagieren. Zu (einer) beispielhaften Schnittstelle(n) 206 gehören eine beliebige Anzahl von unterschiedlichen Netzwerkschnittstellen 220, wie etwa Schnittstellen zu lokalen Netzwerken (local area networks - LANs), Großraumnetzwerken (wide area networks - WANs), drahtlosen Netzwerken und dem Internet. Zu (einer) andere(n) Schnittstelle(n) gehören eine Benutzerschnittstelle 218 und eine Peripherievorrichtungsschnittstelle 222. Die Schnittstelle(n) 206 kann/können ebenso eine oder mehrere Peripherieschnittstellen beinhalten, wie beispielsweise Schnittstellen für Drucker, Zeigevorrichtungen (Mäuse, Touchpad usw.), Tastaturen und dergleichen.
-
Der Bus 212 ermöglicht dem/den Prozessor(en) 202, der/den Speichervorrichtung(en) 204, der/den Schnittstelle(n) 206, der/den Massenspeichervorrichtung(en) 208, der/den E/A-Vorrichtung(en) 210 und der Anzeigevorrichtung 230, miteinander sowie mit anderen Vorrichtungen oder Komponenten, die an den Bus 212 gekoppelt sind, zu kommunizieren. Der Bus 212 stellt eine oder mehrere von mehreren Arten von Busstrukturen dar, wie etwa einen Systembus, PCI-Bus, IEEE-1394-Bus, USB-Bus und so weiter.
-
Zum Zwecke der Veranschaulichung sind Programme und andere ausführbare Programmkomponenten hierin als diskrete Blöcke gezeigt, auch wenn es sich versteht, dass sich derartige Programme und Komponenten zu verschiedenen Zeitpunkten in unterschiedlichen Speicherkomponenten der Rechenvorrichtung 200 befinden können, und werden durch den/die Prozessor(en) 202 ausgeführt. Alternativ können die hierin beschriebenen Systeme und Vorgänge in Hardware oder einer Kombination aus Hardware, Software und/oder Firmware umgesetzt sein. Ein oder mehrere anwendungsspezifische integrierte Schaltkreise (application specific integrated circuits - ASICs) kann/können zum Beispiel programmiert sein, um eines oder mehrere der hierin beschriebenen Systeme und Verfahren durchzuführen.
-
Unter Bezugnahme auf 3 kann das veranschaulichte Verfahren 300 durch das Serversystem 102 ausgeführt werden, um annotierte Bilder zu generieren, um ein maschinelles Lernmodell zu trainieren, damit es regelnde Ampeln und deren Zustand identifiziert.
-
Das Verfahren 300 kann das Definieren 302a eines Szenarienmodells beinhalten. Zum Beispiel kann, wie in 4 gezeigt, ein Umgebungsmodell, das eine Straße 400 beinhaltet, mit Modellen von Fahrzeugen 402, 404, die innerhalb von Spuren der Straße 400 platziert sind, kombiniert werden. Ebenso kann ein Prüffahrzeug 406, aus dessen Sicht das Szenario wahrgenommen wird, ebenfalls in dem Szenarienmodell enthalten sein. Das Szenarienmodell kann eine statische Konfiguration sein oder kann ein dynamisches Modell sein, wobei die Fahrzeuge 402, 404, 406 Geschwindigkeiten und Beschleunigungen aufweisen, die von einem Zeitschritt zum nächsten während der Ausbreitung des Szenarienmodells variieren können.
-
Das Szenarienmodell beinhaltet ferner eine oder mehrere Ampeln 408a-408c. In einem Beispiel regelt die Ampel 408c das Prüffahrzeug 406, wohingegen die Ampeln 408a-408b dies nicht tun, die Ampeln 408a-408b z. B. Linksabbiegerspuren sein können, die Ampel 408c aber nicht.
-
Das Szenario kann andere Lichtquellen beinhalten, darunter Scheinwerfer und Heckleuchten von einem beliebigen der Fahrzeuge 402, 404, 406, Ampeln, die Querverkehr regeln, beleuchtete Schilder, natürliches Licht (Sonne, Mond, Sterne) und dergleichen.
-
In einigen Ausführungsformen ist das maschinelle Lernmodell 106d ferner trainiert, um zwischen Bildern, bei denen eine Ampel vorhanden ist und bei denen keine Ampel vorhanden ist, zu unterscheiden. Entsprechend enthalten einige Szenarien gegebenenfalls keine Ampel, die das Prüffahrzeug 406 regelt oder enthalten überhaupt keine Ampeln.
-
Unter erneuter Bezugnahme auf 3 kann das Verfahren 300 das Simulieren 304 der Ausbreitung von Licht von den Lichtquellen des Szenarios beinhalten und die Wahrnehmung des Szenarios durch eine oder mehrere Abbildungsvorrichtungen 124 des Prüffahrzeugs 406 kann simuliert 306 werden. Insbesondere können Stellen und Ausrichtungen von Abbildungsvorrichtungen 124a-124d auf dem Prüffahrzeug 406 gemäß einem Sensormodell 108c definiert sein.
-
Die Schritte 302 und 304 können die Verwendung einer beliebigen Renderingtechnik, die im Fach der computererzeugten Bilder bekannt ist, beinhalten. Zum Beispiel kann das Szenario unter Verwendung einer Spielmaschine wie zum Beispiel UNREAL ENGINE definiert werden und ein Rendern des Szenarios kann unter Verwendung von BLENDER, MAYA, 3D STUDIO MAX oder einer beliebigen anderen Renderingsoftware erzeugt werden.
-
Die Ausgabe der Schritte 304, 306 ist ein oder mehrere Bilder des Szenarienmodells aus Sicht einer oder mehrerer simulierter Abbildungsvorrichtungen. In einigen Ausführungsformen, bei denen das Szenarienmodell dynamisch ist, ist die Ausgabe der Schritte 304, 306 eine Reihe von Bildsätzen, wobei jeder Bildsatz Bilder des Szenarios aus dem Blickwinkel der Abbildungsvorrichtung zu einem bestimmten Zeitschritt in einer Simulation des dynamischen Szenarios beinhaltet.
-
Das Verfahren 300 kann ferner das Annotieren 308 der Bilder mit der „Grundwahrheit“ des Szenarienmodells beinhalten. Wenn das Szenarienmodell dynamisch ist, kann jeder Bildsatz mit der Grundwahrheit für das Szenarienmodell zu dem Zeitschritt, zu dem die Bilder des Bildsatzes erfasst wurden, annotiert werden.
-
Die Annotation eines Bildes kann einiges oder alles des Folgenden angeben: (a) ob eine Ampel auf dem Bild vorhanden ist, (b) die Stelle jeder auf dem Bild vorhandenen Ampel, (c) den Zustand jeder auf dem Bild vorhandenen Ampel, und (d) ob die Ampel das Prüffahrzeug regelt. In einigen Ausführungsformen betreffen Annotationen lediglich eine einzelne Ampel, die das Prüffahrzeug regelt, d. h. die Stelle und den Zustand der regelnden Ampel. Wenn keine regelnde Ampel vorhanden ist, können Annotationen für das Bild weggelassen werden oder kann die Annotation diese Tatsache angeben.
-
Das Verfahren 300 kann wiederholt durchgeführt werden, um mehrere zehn, hunderte oder sogar tausende von annotierten Bildern zum Trainieren des maschinellen Lernmodells 106d zu generieren. Entsprechend kann das Verfahren 300 das Lesen 310 von neuen Szenarienparametern aus einer Datei und das Definieren 302 eines neuen Szenarienmodells gemäß den neuen Szenarienparametern beinhalten. Die Verarbeitung bei Schritt 304-308 kann dann fortgesetzt werden. Alternativ können Szenarien automatisch generiert werden, wie zum Beispiel durch zufälliges Umverteilen von Modellen von Fahrzeugen und Lichtquellen und Modifizieren der Stelle und der Zustände von Ampeln.
-
Zum Beispiel kann eine Sammlung von Modellen für verschiedene Fahrzeuge, Gebäude, Ampeln, Lichtquellen (Schilder, Straßenlaternen usw.) definiert sein. Eine Datei kann daher Stellen für verschiedene dieser Modelle und ein Prüffahrzeug spezifizieren. Diese Modelle können dann in Schritt 302 gemäß den in der Datei spezifizierten Stellen in einem Szenarienmodell platziert werden. Die Datei kann ferner dynamische Parameter wie zum Beispiel die Geschwindigkeit von Fahrzeugmodellen und die Zustände von beliebigen Ampeln sowie dynamische Änderungen der Zustände von Ampeln, z. B. Übergänge von rot zu grün oder umgekehrt, in dem dynamischen Szenarienmodell spezifizieren. Die Datei kann ferner andere Parameter des Szenarios definieren, wie zum Beispiel eine Menge an natürlichem Umgebungslicht, um Tag, Nacht und Dämmerzustände zu simulieren.
-
Unter Bezugnahme auf 5 kann das Verfahren 500 durch das Serversystem 102 ausgeführt werden, um das maschinelle Lernmodell 106d zu trainieren. Das Verfahren 500 kann das Empfangen 502 der annotierten Bilder und das Eingeben 504 der annotierten Bilder in einen maschinellen Lernalgorithmus beinhalten.
-
In einigen Ausführungsformen werden mehrere Abbildungsvorrichtungen 124 verwendet, um binokulares Sehen umzusetzen. Entsprechend kann das Eingeben von annotierten Bildern die Verarbeitung eines Satzes an Bildern für das gleiche Szenario oder den gleichen Zeitschritt in einem dynamischen Szenario beinhalten, um eine 3D-Punktwolke zu erhalten, wobei jeder Punkt eine damit assoziierte Farbe (z. B. RGB-Tupel) aufweist. Diese 3D-Punktwolke kann dann mit den Annotationen für die Bilder in dem Bildsatz in das maschinelle Lernmodell eingegeben werden. Alternativ können die Bilder direkt in den maschinellen Lernalgorithmus eingegeben werden.
-
Der maschinelle Lernalgorithmus kann das maschinelle Lernmodell 106d gemäß den annotierten Bildern oder Punktwolken trainieren 506. Wie vorstehend angemerkt, können in Schritt 506 mehrere zehn, hunderte oder sogar tausende von Bildsätzen verwendet werden, um das maschinelle Lernmodell für ein breites Spektrum an Szenarien zu trainieren.
-
Das Verfahren 500 kann dann das Laden 508 des trainierten maschinellen Lernmodells 106d in ein Fahrzeug beinhalten, wie zum Beispiel die Fahrzeugsteuerung 122 des in 1B gezeigten Systems 120. Die Steuerung 122 kann dann die Ampelerkennung gemäß dem trainierten maschinellen Lernmodell 106d durchführen 510. Dies kann das Erfassen einer regelnden Ampel und das Ergreifen einer angemessenen Maßnahme, wie zum Beispiel Anhalten bei einer regelnden roten Ampel und Fortfahren, wenn es sicher ist, bei einer regelnden grünen Ampel beinhalten.
-
In der vorstehenden Offenbarung wurde auf die beigefügten Zeichnungen Bezug genommen, die einen Teil davon bilden und in denen zur Veranschaulichung konkrete Umsetzungen gezeigt sind, in denen die Offenbarung ausgeführt sein kann. Es versteht sich, dass andere Umsetzungen verwendet werden können und strukturelle Änderungen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen. Bezugnahmen in der Beschreibung auf „eine Ausführungsform“, „ein Ausführungsbeispiel“ usw. geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft beinhalten kann, doch es muss nicht notwendigerweise jede Ausführungsform dieses bestimmte Merkmal, diese bestimmte Struktur oder Eigenschaft beinhalten. Darüber hinaus beziehen sich solche Formulierungen nicht notwendigerweise auf dieselbe Ausführungsform. Ferner sei darauf hingewiesen, dass, wenn ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, es im Bereich des Fachwissens des Fachmanns liegt, ein(e) derartige(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen zu bewirken, ob dies nun ausdrücklich beschrieben ist oder nicht.
-
Umsetzungen der hierin offenbarten Systeme, Vorrichtungen und Verfahren können einen Spezial- oder Universalcomputer umfassen oder verwenden, der Computerhardware beinhaltet, wie etwa beispielsweise einen oder mehrere Prozessoren und einen oder mehrere Systemspeicher, wie hier erörtert. Umsetzungen innerhalb des Schutzumfangs der vorliegenden Offenbarung können außerdem physische und andere computerlesbare Medien zum Transportieren oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen beinhalten. Bei derartigen computerlesbaren Medien kann es sich um beliebige verfügbare Medien handeln, auf die durch ein Universal- oder Spezialcomputersystem zugegriffen werden kann. Bei computerlesbaren Medien, auf denen computerausführbare Anweisungen gespeichert werden, handelt es sich um Computerspeichermedien (-vorrichtungen). Bei computerlesbaren Medien, die computerausführbare Anweisungen transportieren, handelt es sich um Übertragungsmedien. Daher können Umsetzungen der Offenbarung beispielsweise und nicht einschränkend mindestens zwei deutlich unterschiedliche Arten von computerlesbaren Medien umfassen: Computerspeichermedien (-vorrichtungen) und Übertragungsmedien.
-
Computerspeichermedien (-vorrichtungen) beinhalten RAM, ROM, EEPROM, CDROM, Festkörperlaufwerke („SSDs“) (z. B. basierend auf RAM), Flash-Speicher, Phasenänderungsspeicher („PCM“), andere Speichertypen, andere optische Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium, das verwendet werden kann, um die gewünschten Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen zu speichern, und auf das durch einen Universal- oder Spezialcomputer zugegriffen werden kann.
-
Eine Umsetzung der hierin offenbarten Vorrichtungen, Systeme und Verfahren kann über ein Computernetzwerk kommunizieren. Ein „Netzwerk“ ist als eine oder mehrere Datenverbindungen definiert, die den Transport elektronischer Daten zwischen Computersystemen und/oder Modulen und/oder anderen elektronischen Vorrichtungen ermöglichen. Wenn Informationen über ein Netzwerk oder eine andere (entweder festverdrahtete, drahtlose oder eine Kombination aus festverdrahteter oder drahtloser) Kommunikationsverbindung an einen Computer übertragen oder diesem bereitgestellt werden, sieht der Computer die Verbindung korrekt als Übertragungsmedium an. Übertragungsmedien können ein Netzwerk und/oder Datenverbindungen beinhalten, die verwendet werden können, um gewünschte Programmcodemittel in der Form von computerausführbaren Anweisungen oder Datenstrukturen zu übertragen und auf die durch einen Universal- oder Spezialcomputer zugegriffen werden kann. Kombinationen aus den Vorstehenden sollten ebenfalls im Schutzumfang computerlesbarer Medien beinhaltet sein.
-
Computerausführbare Anweisungen umfassen beispielsweise Anweisungen und Daten, die bei Ausführung an einem Prozessor einen Universalcomputer, Spezialcomputer oder eine Spezialverarbeitungsvorrichtung dazu veranlassen, eine bestimmte Funktion oder Gruppe von Funktionen durchzuführen. Die computerausführbaren Anweisungen können beispielsweise Binärdateien, Zwischenformatanweisungen, wie etwa Assemblersprache, oder sogar Quellcode sein. Obwohl der Gegenstand in für Strukturmerkmale und/oder methodische Handlungen spezifischer Sprache beschrieben wurde, versteht es sich, dass der in den beigefügten Patentansprüchen definierte Gegenstand nicht notwendigerweise auf die vorstehend beschriebenen Merkmale oder Handlungen beschränkt ist. Die beschriebenen Merkmale und Handlungen werden vielmehr als beispielhafte Formen der Umsetzung der Patentansprüche offenbart.
-
Für den Fachmann versteht es sich, dass die Offenbarung in Netzwerkcomputerumgebungen mithilfe vieler Arten von Computersystemkonfigurationen angewendet werden kann, die einen Armaturenbrett-Fahrzeugcomputer, PCs, Desktop-Computer, Laptops, Nachrichtenprozessoren, Handgeräte, Multiprozessorsysteme, Unterhaltungselektronik auf Mikroprozessorbasis oder programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputer, Großcomputer, Mobiltelefone, PDAs, Tablets, Pager, Router, Switches, verschiedene Speichervorrichtungen und dergleichen beinhalten. Die Offenbarung kann zudem in Umgebungen mit verteilten Systemen angewendet werden, in denen sowohl lokale Computersysteme als auch entfernte Computersysteme, die durch ein Netzwerk (entweder durch festverdrahtete Datenverbindungen, drahtlose Datenverbindungen oder durch eine Kombination aus festverdrahteten und drahtlosen Datenverbindungen) verbunden sind, Aufgaben ausführen. In einer Umgebung mit verteilten Systemen können sich Programmmodule sowohl in lokalen Speichervorrichtungen als auch in Fernspeichervorrichtungen befinden.
-
Ferner können die hierin beschriebenen Funktionen gegebenenfalls in einem oder mehreren der Folgenden ausgeführt werden: Hardware, Software, Firmware, digitale Komponenten oder analoge Komponenten. Beispielsweise können ein oder mehrere anwendungsspezifische integrierte Schaltkreise (Application Specific Integrated Circuits - ASICs) so programmiert sein, dass sie eines bzw. einen oder mehrere der hierin beschriebenen Systeme und Vorgänge ausführen. Bestimmte Ausdrücke werden in der gesamten Beschreibung und den Patentansprüchen verwendet, um auf bestimmte Systemkomponenten Bezug zu nehmen. Für den Fachmann versteht es sich, dass auf Komponenten durch unterschiedliche Bezeichnungen Bezug genommen werden kann. In dieser Schrift soll nicht zwischen Komponenten unterschieden werden, die sich dem Namen nach unterscheiden, nicht jedoch von der Funktion her.
-
Es ist anzumerken, dass die vorstehend erörterten Sensorausführungsformen Computerhardware, -software, -firmware oder eine beliebige Kombination daraus umfassen können, um mindestens einen Teil ihrer Funktionen auszuführen. Ein Sensor kann zum Beispiel Computercode beinhalten, der dazu konfiguriert ist, in einem oder mehreren Prozessoren ausgeführt zu werden, und kann eine Hardware-Logikschaltung/elektrische Schaltung beinhalten, die durch den Computercode gesteuert wird. Diese beispielhaften Vorrichtungen sind hierin zum Zwecke der Veranschaulichung bereitgestellt und sollen nicht einschränkend sein. Ausführungsformen der vorliegenden Offenbarung können in weiteren Arten von Vorrichtungen umgesetzt werden, wie es dem einschlägigen Fachmann bekannt ist.
-
Mindestens einige Ausführungsformen der Offenbarung wurden Computerprogrammprodukten zugeführt, die eine solche Logik (z. B. in Form von Software) umfassen, die auf einem beliebigen computernutzbaren Medium gespeichert ist. Derartige Software veranlasst bei Ausführung in einer oder mehreren Datenverarbeitungsvorrichtungen eine Vorrichtung dazu, wie hierin beschrieben zu arbeiten.
-
Während vorstehend verschiedene Ausführungsformen der vorliegenden Offenbarung beschrieben wurden, versteht es sich, dass diese lediglich als Beispiele dienen und nicht als Einschränkung. Für den einschlägigen Fachmann wird ersichtlich, dass verschiedene Änderungen in Form und Detail daran vorgenommen werden können, ohne vom Geist und Schutzumfang der Offenbarung abzuweichen. Daher sollen die Breite und der Umfang der vorliegenden Offenbarung durch keines der vorstehend beschriebenen Ausführungsbeispiele eingeschränkt werden, sondern sollen lediglich in Übereinstimmung mit den folgenden Patentansprüchen und ihren Äquivalenten definiert sein. Die vorstehende Beschreibung wurde zum Zwecke der Veranschaulichung und Beschreibung dargelegt. Sie erhebt keinerlei Anspruch auf Vollständigkeit und soll die Offenbarung nicht auf die konkrete offenbarte Form beschränken. Viele Modifikationen und Variationen sind in Anbetracht der vorstehenden Lehren möglich. Ferner ist anzumerken, dass beliebige oder alle der vorangehend genannten alternativen Umsetzungen in einer beliebigen gewünschten Kombination verwendet werden können, um zusätzliche Hybridumsetzungen der Offenbarung zu bilden.