-
TECHNISCHES GEBIET
-
Die Offenbarung betrifft im Allgemeinen den Fahrzeugbetrieb.
-
ALLGEMEINER STAND DER TECHNIK
-
Fahrzeuge können mit Rechenvorrichtungen, Netzwerken, Sensoren und Steuerungen ausgestattet sein, um Informationen bezüglich der Umgebung des Fahrzeugs zu erfassen und das Fahrzeug auf Grundlage der Informationen zu betreiben. Fahrzeugsensoren können Daten bezüglich zurückzulegenden Routen und zu umfahrenden Objekten in der Umgebung des Fahrzeugs bereitstellen. Der Betrieb des Fahrzeugs kann vom Erfassen genauer und aktueller Informationen bezüglich Objekten in der Umgebung eines Fahrzeugs während des Betriebs des Fahrzeugs auf einer Fahrbahn abhängen.
-
KURZDARSTELLUNG
-
Fahrzeuge können derart ausgestattet sein, dass sie sowohl in einem autonomen als auch in einem insassengesteuerten Modus arbeiten. Unter einem halb- oder vollautonomen Modus verstehen die Erfinder einen Betriebsmodus, in dem ein Fahrzeug teilweise oder vollständig von einer Rechenvorrichtung als Teil eines Informationssystems gesteuert werden kann, das Sensoren und Steuerungen aufweist. Für die Zwecke dieser Offenbarung ist ein autonomer Modus als ein Modus definiert, bei dem jedes von Antrieb (z. B. über einen Antriebsstrang, der eine Brennkraftmaschine und/oder einen Elektromotor beinhaltet), Bremsung und Lenkung des Fahrzeugs durch einen oder mehrere Fahrzeugcomputer gesteuert wird; in einem halbautonomen Modus steuert/steuern der/die Fahrzeugcomputer eines oder zwei von Antrieb, Bremsung und Lenkung des Fahrzeugs. In einem nichtautonomen Fahrzeug wird keines von diesen durch einen Computer gesteuert.
-
Eine Rechenvorrichtung in einem Fahrzeug kann dazu programmiert sein, Daten zu der Außenumgebung eines Fahrzeugs zu erfassen und die Daten dazu zu verwenden, einen Fahrzeugweg zu bestimmen, auf dem ein Fahrzeug in einem autonomen oder halbautonomen Modus betrieben werden soll. Ein Fahrzeug kann auf Grundlage eines Fahrzeugwegs auf einer Fahrbahn fahren, indem Befehle bestimmt werden, die Antriebsstrang-, Brems- und Lenkungskomponenten zum Betreiben des Fahrzeugs zu steuern, sodass das Fahrzeug den Weg entlang fährt. Die Daten hinsichtlich der Außenumgebung können den Standort eines oder mehrerer sich bewegender Objekte, wie etwa Fahrzeuge und Fußgänger usw., in einer Umgebung um ein Fahrzeug beinhalten und können durch eine Rechenvorrichtung in dem Fahrzeug dazu verwendet werden, das Fahrzeug zu betreiben.
-
Eine Rechenvorrichtung in einem Fahrzeug kann Fahrzeugsensordaten in ein tiefes neuronales Netzwerk eingeben, um Daten bezüglich der Umgebung um das Fahrzeug, einschließlich beispielsweise von Standorten von Objekten, zu bestimmen. Das Trainieren des tiefen neuronalen Netzwerks für bestimmte Daten bezüglich einer Umgebung um ein Fahrzeug kann durch Szenarien mit hoher Erwartung verbessert werden. Szenarien mit hoher Erwartung sind als Videosequenzen definiert, die Verkehrssituationen entsprechen, die erfordern, dass eine Rechenvorrichtung in einem Fahrzeug das Fahrzeug betreibt, um einen Kontakt oder Beinahekontakt mit einem Objekt innerhalb eines festen Zeitraums (typischerweise z. B. <5 Sekunden) zu vermeiden. Objekte können Fahrzeuge, Fußgänger, Fahrräder und Tiere beinhalten, einschließlich domestizierter Tiere (Haustiere) und Wildtiere, und Beinahekontakt ist so definiert, dass innerhalb von weniger als einer spezifizierten Entfernung, typischerweise z. B. weniger als einen Meter, an einem Objekt vorbeigefahren wird. Diese Definition steht im Einklang mit der Definition von Kontakt oder Beinahekontakt, wie in „Operational Design Domain for Automated Driving Systems“, Krzysztof Czamecki, Waterloo Intelligent System Engineering Lab, University of Waterloo, Waterloo, Kanada, N2L 3G1, 21. Juli 2018, definiert.
-
In dieser Schrift wird ein Verfahren offenbart, das das Identifizieren von Mustern in ersten Szenarien mit hoher Erwartung auf Grundlage einer Benutzeridentifikation beinhaltet, wobei Szenarien mit hoher Erwartung Videosequenzen beinhalten, in denen sich ein erstes Fahrzeug innerhalb einer spezifizierten Entfernung von einem ersten Objekt in einer ersten Umgebung um das erste Fahrzeug befindet, wobei eine Benutzeridentifikation bestimmt wird durch Betrachten von Abschnitten einer jeweiligen Videosequenz, Trainieren eines ersten Modells, das ein tiefes neuronales Netzwerk beinhaltet, um zweite Szenarien mit hoher Erwartung auf Grundlage der in den ersten Szenarien mit hoher Erwartung identifizierten Mustern zu bestimmen, Trainieren eines zweiten Modells, das ein zweites tiefes neuronales Netzwerk beinhaltet, um Standorte und Geschwindigkeiten von zweiten Objekten in den ersten Szenarien mit hoher Erwartung zu modifizieren und modifizierte Szenarien mit hoher Erwartung auszugeben, und Trainieren eines dritten Modells, das ein drittes tiefes neuronales Netzwerk beinhaltet, um ein Fahrzeug auf Grundlage der modifizierten Szenarien mit hoher Erwartung, die durch das zweite Modell ausgegeben werden, zu betreiben. Szenarien mit hoher Erwartung können Videosequenzen beinhalten, in denen sich das erste Fahrzeug innerhalb der spezifizierten Entfernung zum ersten Objekt in der ersten Umgebung um das erste Fahrzeug innerhalb einer geringen Anzahl an Sekunden befindet.
-
Die Benutzeridentifikation kann das Kombinieren von Benutzeridentifikationsdaten von einer Vielzahl von Benutzern beinhalten. Videodaten, die von den im zweiten Fahrzeug enthaltenen Sensoren erfasst werden, können unter Verwendung des zweiten tiefen neuronalen Netzwerks verarbeitet werden, um Szenarien mit hoher Erwartung zu identifizieren und ein zweites Objekt in einer zweiten Umgebung um das zweite Fahrzeug zu bestimmen. Das zweite tiefe neuronale Netzwerk kann trainiert werden, um einen Standort eines Objekts und eine Entfernung zu diesem zu bestimmen. Das zweite Fahrzeug kann durch Steuern von Antriebsstrang, Lenkung und Bremsen des zweiten Fahrzeugs betrieben werden, um das zweite Objekt in der zweiten Umgebung um das zweite Fahrzeug zu vermeiden. Das erste tiefe neuronale Netzwerk kann ein neuronales Faltungsnetzwerk sein, das Faltungsschichten und vollständig verbundene Schichten beinhaltet. Das erste tiefe neuronale Netzwerk kann trainiert werden, um Szenarien mit hoher Erwartung in einer Datenbank von Verkehrsszenarien zu identifizieren. Das zweite tiefe neuronale Netzwerk kann ein neuronales Faltungsnetzwerk sein, das Faltungsschichten und vollständig verbundene Schichten beinhaltet. Das erste Objekt kann eines oder mehrere von einem Fahrzeug, einem Fußgänger, einem Fahrrad und einem Tier beinhalten. Das erste tiefe neuronale Netzwerk kann Szenarien mit hoher Erwartung in einer Datenbank von Beispielvideosequenzen identifizieren. Das Trainieren des zweiten tiefen neuronalen Netzwerks kann das Bestimmen eines Ausweichmanövers beinhalten, das als Ground Truth beim Trainieren des zweiten tiefen neuronalen Netzwerks zu verwenden ist. Das Ausweichmanöver kann von dem zweiten tiefen neuronalen Netzwerk als Reaktion auf eingegebene Videosequenzdaten ausgegeben werden, die das Szenario mit hoher Erwartung beinhalten. Das Betreiben des Fahrzeugs unter Verwendung des zweiten tiefen neuronalen Netzwerks kann das Durchführen des Ausweichmanövers beinhalten.
-
Ferner wird ein computerlesbares Medium offenbart, auf dem Programmanweisungen zum Ausführen einiger oder sämtlicher der vorstehenden Verfahrensschritte gespeichert sind. Ferner wird ein Computer offenbart, der dazu programmiert ist, einige oder alle der vorstehenden Verfahrensschritte auszuführen, einschließlich einer Computervorrichtung, die programmiert ist zum Identifizieren von Mustern in ersten Szenarien mit hoher Erwartung auf Grundlage einer Benutzeridentifikation, wobei Szenarien mit hoher Erwartung Videosequenzen beinhalten, in denen sich ein erstes Fahrzeug innerhalb einer spezifizierten Entfernung von einem ersten Objekt in einer ersten Umgebung um das erste Fahrzeug befindet, wobei eine Benutzeridentifikation bestimmt wird durch Betrachten von Abschnitten einer jeweiligen Videosequenz, Trainieren eines ersten Modells, das ein tiefes neuronales Netzwerk beinhaltet, um zweite Szenarien mit hoher Erwartung auf Grundlage der in den ersten Szenarien mit hoher Erwartung identifizierten Mustern zu bestimmen, Trainieren eines zweiten Modells, das ein zweites tiefes neuronales Netzwerk beinhaltet, um Standorte und Geschwindigkeiten von zweiten Objekten in den ersten Szenarien mit hoher Erwartung zu modifizieren und modifizierte Szenarien mit hoher Erwartung auszugeben, und Trainieren eines dritten Modells, das ein drittes tiefes neuronales Netzwerk beinhaltet, um ein Fahrzeug auf Grundlage der modifizierten Szenarien mit hoher Erwartung, die durch das zweite Modell ausgegeben werden, zu betreiben. Szenarien mit hoher Erwartung können Videosequenzen beinhalten, in denen sich das erste Fahrzeug innerhalb der spezifizierten Entfernung zum ersten Objekt in der ersten Umgebung um das erste Fahrzeug innerhalb einer geringen Anzahl an Sekunden befindet.
-
Der Computer kann ferner dazu programmiert sein, eine Benutzeridentifikation zu identifizieren, einschließlich des Kombinierens von Benutzeridentifikationsdaten von einer Vielzahl von Benutzern. Videodaten, die von den im zweiten Fahrzeug enthaltenen Sensoren erfasst werden, können unter Verwendung des zweiten tiefen neuronalen Netzwerks verarbeitet werden, um Szenarien mit hoher Erwartung zu identifizieren und ein zweites Objekt in einer zweiten Umgebung um das zweite Fahrzeug zu bestimmen. Das zweite tiefe neuronale Netzwerk kann trainiert werden, um einen Standort eines Objekts und eine Entfernung zu diesem zu bestimmen. Das zweite Fahrzeug kann durch Steuern von Antriebsstrang, Lenkung und Bremsen des zweiten Fahrzeugs betrieben werden, um das zweite Objekt in der zweiten Umgebung um das zweite Fahrzeug zu vermeiden. Das erste tiefe neuronale Netzwerk kann ein neuronales Faltungsnetzwerk sein, das Faltungsschichten und vollständig verbundene Schichten beinhaltet. Das erste tiefe neuronale Netzwerk kann trainiert werden, um Szenarien mit hoher Erwartung in einer Datenbank von Verkehrsszenarien zu identifizieren. Das zweite tiefe neuronale Netzwerk kann ein neuronales Faltungsnetzwerk sein, das Faltungsschichten und vollständig verbundene Schichten beinhaltet. Das erste Objekt kann eines oder mehrere von einem Fahrzeug, einem Fußgänger, einem Fahrrad und einem Tier beinhalten. Das erste tiefe neuronale Netzwerk kann Szenarien mit hoher Erwartung in einer Datenbank von Beispielvideosequenzen identifizieren. Das Trainieren des zweiten tiefen neuronalen Netzwerks kann das Bestimmen eines Ausweichmanövers beinhalten, das als Ground Truth beim Trainieren des zweiten tiefen neuronalen Netzwerks zu verwenden ist. Das Ausweichmanöver kann von dem zweiten tiefen neuronalen Netzwerk als Reaktion auf eingegebene Videosequenzdaten ausgegeben werden, die das Szenario mit hoher Erwartung beinhalten. Das Betreiben des Fahrzeugs unter Verwendung des zweiten tiefen neuronalen Netzwerks kann das Durchführen des Ausweichmanövers beinhalten.
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines beispielhaften Verkehrsinfrastruktursystems.
- 2 ist eine Darstellung von beispielhaften Videosequenzen.
- 3 ist eine Darstellung einer beispielhaften Bewertungsmatrix mit hoher Erwartung.
- 4 ist eine Darstellung eines beispielhaften Generative AdversarialNetwork.
- 5 ist eine Darstellung eines beispielhaften tiefen neuronalen Netzwerks.
- 6 ist ein Ablaufdiagramm eines beispielhaften Prozesses zum Betreiben eines Fahrzeugs auf Grundlage eines tiefen neuronalen Netzwerks.
-
DETAILLIERTE BESCHREIBUNG
-
1 ist eine Darstellung eines Verkehrsinfrastruktursystems 100, die ein Fahrzeug 110 beinhaltet, das in einem autonomen („autonom“ für sich bedeutet in dieser Offenbarung „vollautonom“), einem halbautonomen und einem insassengesteuerten (auch als nichtautonom bezeichneten) Modus betrieben werden kann. Eine oder mehrere Rechenvorrichtungen 115 des Fahrzeugs 110 können von Sensoren 116 Informationen bezüglich des Betriebs des Fahrzeugs 110 empfangen. Die Rechenvorrichtung 115 kann das Fahrzeug 110 in einem autonomen Modus, einem halbautonomen Modus oder einem nichtautonomen Modus betreiben.
-
Die Rechenvorrichtung 115 beinhaltet einen Prozessor und einen Speicher, wie sie bekannt sind. Zudem beinhaltet der Speicher eine oder mehrere Arten computerlesbarer Medien und speichert Anweisungen, die durch den Prozessor ausführbar sind, um verschiedene Vorgänge durchzuführen, einschließlich der hierin offenbarten. Beispielsweise kann die Rechenvorrichtung 115 eine Programmierung beinhalten, um eines oder mehrere von Bremsen, Antrieb (z. B. Beschleunigungssteuerung in dem Fahrzeug 110 durch Steuern von einem oder mehreren von einer Brennkraftmaschine, einem Elektromotor, Hybridmotor usw.), Lenkung, Klimaregelung, Innen- und/oder Außenleuchten usw. des Fahrzeugs zu betreiben sowie um zu bestimmen, ob und wann die Rechenvorrichtung 115 im Gegensatz zu einem menschlichen Fahrer derartige Vorgänge steuern soll.
-
Die Rechenvorrichtung 115 kann mehr als eine Rechenvorrichtung, z. B. Steuerungen oder dergleichen, die in dem Fahrzeug 110 zum Überwachen und/oder Steuern verschiedener Fahrzeugkomponenten beinhaltet sind, z.B. eine Antriebsstrangsteuerung 112, eine Bremssteuerung 113, eine Lenksteuerung 114 usw., beinhalten oder z.B. über einen Fahrzeugkommunikationsbus, wie ferner nachstehend beschrieben, kommunikativ mit dieser (diesen) gekoppelt sein. Die Rechenvorrichtung 115 ist im Allgemeinen zur Kommunikation in einem Fahrzeugkommunikationsnetzwerk angeordnet, das z. B. einen Bus in dem Fahrzeug 110, wie etwa ein Controller Area Network (CAN) oder dergleichen, beinhaltet; das Netzwerk des Fahrzeugs 110 kann zusätzlich oder alternativ drahtgebundene oder drahtlose Kommunikationsmechanismen, wie sie bekannt sind, beinhalten, z. B. Ethernet oder andere Kommunikationsprotokolle.
-
Über das Fahrzeugnetzwerk kann die Rechenvorrichtung 115 Nachrichten an verschiedene Vorrichtungen in dem Fahrzeug übertragen und/oder Nachrichten von den verschiedenen Vorrichtungen empfangen, z. B. Steuerungen, Aktoren, Sensoren usw. einschließlich der Sensoren 116. Alternativ oder zusätzlich kann in Fällen, bei denen die Rechenvorrichtung 115 tatsächlich mehrere Vorrichtungen umfasst, das Fahrzeugkommunikationsnetzwerk für Kommunikationen zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als die Rechenvorrichtung 115 dargestellt sind. Ferner können, wie nachstehend erwähnt, verschiedene Steuerungen oder Erfassungselemente, wie etwa die Sensoren 116, der Rechenvorrichtung 115 Daten über das Fahrzeugkommunikationsnetz bereitstellen.
-
Zusätzlich kann die Rechenvorrichtung 115 dazu konfiguriert sein, über ein Netzwerk 130, das, wie nachstehend beschrieben, Hardware, Firmware und Software beinhaltet, die es der Rechenvorrichtung 115 ermöglichen, über ein Netzwerk 130, wie etwa drahtloses Internet (WLAN) oder Mobilfunknetzwerke, mit einem entfernten Servercomputer 120 zu kommunizieren, durch eine Fahrzeug-Infrastruktur-Schnittstelle (V-1-Schnittstelle) 111 mit einem entfernten Servercomputer 120, z.B. einem Cloud-Server, zu kommunizieren. Die V-I-Schnittstelle 111 kann dementsprechend Prozessoren, Speicher, Sendeempfänger usw. beinhalten, die dazu konfiguriert sind, verschiedene drahtgebundene und/oder drahtlose Netzwerktechnologien zu nutzen, z. B. Mobilfunk und drahtgebundene Paketnetzwerke für dedizierte Nahbereichskommunikation (dedicated short range communications - DSRC). Die Rechenvorrichtung 115 kann zum Kommunizieren mit anderen Fahrzeugen 110 über die V-I-Schnittstelle 111 unter Verwendung von Fahrzeug-FahrzeugNetzwerk (V-V-Netzwerken) z. B. gemäß DSRC und/oder dergleichen konfiguriert sein, die z.B. ad hoc zwischen Fahrzeugen 110 in der Nähe gebildet werden oder über infrastrukturbasierte Netzwerke gebildet werden. Die Rechenvorrichtung 115 beinhaltet zudem einen nichtflüchtigen Speicher, wie er bekannt ist. Die Rechenvorrichtung 115 kann Informationen protokollieren, indem sie die Informationen zum späteren Abrufen und Übertragen über das Fahrzeugkommunikationsnetzwerk und eine Fahrzeug-Infrastruktur(V-I)-Schnittstelle 111 an einen Servercomputer 120 oder eine mobile Vorrichtung 160 eines Benutzers in nichtflüchtigem Speicher speichert.
-
Wie bereits erwähnt, ist in Anweisungen, die in dem Speicher gespeichert und durch den Prozessor der Rechenvorrichtung 115 ausführbar sind, im Allgemeinen eine Programmierung zum Betreiben einer oder mehrerer Komponenten des Fahrzeugs 110, z. B. Bremsen, Lenkung, Antrieb usw., ohne Eingreifen eines menschlichen Bedieners enthalten. Unter Verwendung von in der Rechenvorrichtung 115 empfangenen Daten, z. B. der Sensordaten von den Sensoren 116, dem Servercomputer 120 usw., kann die Rechenvorrichtung 115 ohne einen Fahrer zum Betreiben des Fahrzeugs 110 verschiedene Bestimmungen vornehmen und/oder verschiedene Komponenten und/oder Vorgänge des Fahrzeugs 110 steuern. Beispielsweise kann die Rechenvorrichtung 115 eine Programmierung zum Regeln des Betriebsverhaltens des Fahrzeugs 110 (d. h. physischer Manifestationen des Betriebs des Fahrzeugs 110), wie etwa Geschwindigkeit, Beschleunigung, Verlangsamung, Lenken usw., und des taktischen Verhaltens (d. h. Steuerung des Betriebsverhaltens auf eine Weise, die in der Regel ein sicheres und effizientes Abfahren einer Route erreichen soll), wie etwa einer Entfernung zwischen Fahrzeugen und/oder einer Zeit zwischen Fahrzeugen, Spurwechseln, des Mindestabstands zwischen Fahrzeugen, der Mindestzeit zur Wegquerung bei Linksabbiegung, der Zeit bis zur Ankunft an einem bestimmten Standort und der Mindestzeit bis zum Überqueren der Kreuzung an einer Kreuzung (ohne Ampel), beinhalten.
-
Im hierin verwendeten Sinne beinhaltet der Ausdruck Steuerungen Rechenvorrichtungen, die in der Regel zum Überwachen und/oder Steuern eines konkreten Fahrzeugteilsystems programmiert sind. Zu Beispielen gehören eine Antriebsstrangsteuerung 112, eine Bremssteuerung 113 und eine Lenksteuerung 114. Eine Steuerung kann eine elektronische Steuereinheit (electronic control unit - ECU) sein, wie sie bekannt ist, und möglicherweise eine zusätzliche Programmierung wie in dieser Schrift beschrieben beinhalten. Die Steuerungen können kommunikativ mit der Rechenvorrichtung 115 verbunden sein und Anweisungen von dieser empfangen, um das Teilsystem gemäß den Anweisungen zu betätigen. Zum Beispiel kann die Bremssteuerung 113 Anweisungen zum Betreiben der Bremsen des Fahrzeugs 110 von der Rechenvorrichtung 115 empfangen.
-
Die eine oder die mehreren Steuerungen 112, 113, 114 für das Fahrzeug 110 können bekannte elektronische Steuereinheiten (ECUs) oder dergleichen beinhalten, die als nicht einschränkende Beispiele eine oder mehrere Antriebsstrangsteuerungen 112, eine oder mehrere Bremssteuerungen 113 und eine oder mehrere Lenksteuerungen 114 beinhalten. Jede der Steuerungen 112, 113, 114 kann jeweilige Prozessoren und Speicher und einen oder mehrere Aktoren beinhalten. Die Steuerungen 112, 113, 114 können mit einem Kommunikationsbus des Fahrzeugs 110 programmiert und verbunden sein, wie zum Beispiel einem Controller-Area-Network(CAN)-Bus oder einem Local-Interconnect-Network(LIN)-Bus, um Anweisungen von der Rechenvorrichtung 115 zu empfangen und Aktoren auf Grundlage der Anweisungen zu steuern.
-
Die Sensoren 116 können vielfältige Vorrichtungen beinhalten, die für die Bereitstellung von Daten über den Fahrzeugkommunikationsbus bekannt sind. Zum Beispiel kann ein Radar, das an einem vorderen Stoßfänger (nicht gezeigt) des Fahrzeugs 110 befestigt ist, eine Entfernung von dem Fahrzeug 110 zu einem nächsten Fahrzeug vor dem Fahrzeug 110 bereitstellen oder kann ein Sensor für ein globales Positionsbestimmungssystem (global positioning system - GPS), der in dem Fahrzeug 110 angeordnet ist, geografische Koordinaten des Fahrzeugs 110 bereitstellen. Die durch das Radar und/oder die anderen Sensoren 116 bereitgestellte(n) Entfernung(en) und/oder die durch den GPS-Sensor bereitgestellten geografischen Koordinaten können durch die Rechenvorrichtung 115 verwendet werden, um das Fahrzeug 110 autonom oder halbautonom zu betreiben.
-
Das Fahrzeug 110 ist im Allgemeinen ein Landfahrzeug 110, das zu autonomem und/oder halbautonomem Betrieb fähig ist und das drei oder mehr Räder aufweist, z. B. ein PKW, ein Kleinlaster usw. Das Fahrzeug 110 beinhaltet einen oder mehrere Sensoren 116, die V-I-Schnittstelle 111, die Rechenvorrichtung 115 und eine oder mehrere Steuerungen 112, 113, 114. Die Sensoren 116 können Daten in Bezug auf das Fahrzeug 110 und die Umgebung, in der das Fahrzeug 110 betrieben wird, sammeln. Beispielhaft und nicht einschränkend können die Sensoren 116 z. B. Höhenmesser, Kameras, LIDAR, Radar, Ultraschallsensoren, Infrarotsensoren, Drucksensoren, Beschleunigungsmesser, Gyroskope, Temperatursensoren, Drucksensoren, Hallsensoren, optische Sensoren, Spannungssensoren, Stromsensoren, mechanische Sensoren wie etwa Schalter usw. beinhalten. Die Sensoren 116 können verwendet werden, um die Umgebung zu erfassen, in der das Fahrzeug 110 betrieben wird, z. B. können die Sensoren 116 Phänomene wie etwa Wetterbedingungen (Niederschlag, äußere Umgebungstemperatur usw.), die Neigung einer Straße, den Standort einer Straße (z. B. unter Verwendung von Straßenrändern, Spurmarkierungen usw.) oder Standorte von Zielobjekten wie etwa Nachbarfahrzeugen 110 erfassen. Die Sensoren 116 können ferner verwendet werden, um Daten, einschließlich dynamischer Daten des Fahrzeugs 110, die sich auf Vorgänge des Fahrzeugs 110 beziehen, wie etwa Geschwindigkeit, Gierrate, Lenkwinkel, Motordrehzahl, Bremsdruck, Öldruck, des auf die Steuerungen 112, 113, 114 in dem Fahrzeug 110 angewandten Leistungspegels, Konnektivität zwischen Komponenten und einer genauen und rechtzeitigen Leistung von Komponenten des Fahrzeugs 110, zu erheben.
-
2 ist eine Darstellung von Beispielvideosequenzen 200. Beispielvideosequenzen 200 können auf einem Computerbildschirm angezeigt werden und beinhalten eine Videosequenznummer 202, ein Vorschaubild 204, das einem verkleinerten Bild eines Einzelbilds aus jeder Beispielvideosequenz 200 entspricht, und einen Titel 206 mit einer kurzen Beschreibung des Inhalts jeder Beispielvideosequenz 200. Beispielvideosequenzen 200 können durch Aufzeichnen von Videosequenzen von Videosensoren erlangt werden, die in einem Fahrzeug 110 enthalten sind, wenn es auf Straßen im Verkehr betrieben wird. Beispielvideosequenzen können Fahrzeugsensordaten beinhalten, die zu dem Zeitpunkt aufgezeichnet wurden, zu dem die Daten der Beispielvideosequenz 200 aufgezeichnet wurden, wobei Fahrzeugsensordaten eines oder mehrere von verarbeiteten Videodaten, Lidardaten oder Radardaten beinhalten können, wobei die Videodaten, Lidardaten und Radardaten durch eine Rechenvorrichtung verarbeitet werden können, um Standorte, Geschwindigkeiten und Beschleunigungen von Objekten in den Videosequenzdaten 200 zu bestimmen.
-
Beispielvideosequenzen 200, die naturalistischen Fahrsequenzen entsprechen, können in einer Datenbank von Beispielvideosequenzen 200 enthalten sein. Das Einschließen von Beispielvideosequenzen 200 in eine Datenbank kann die Verwendung einer Benutzeroberfläche ermöglichen, wie in 2 veranschaulicht, wobei Benutzer eine Beispielvideosequenz 200 von einem Bildschirm auswählen können, wie in 2 veranschaulicht, und dann die ausgewählte gesamte Videosequenz in voller Auflösung auf einem Computerbildschirm ansehen können. Ein Benutzer kann eine Beispielvideosequenz 200 ansehen und bestimmen, ob die Beispielvideosequenz 200 einem Szenario mit hoher Erwartung entspricht, wie vorstehend definiert, und zwar auf Grundlage des Betrachtens der gesamten Beispielvideosequenz 200 und des Bestimmens, ob das Fahrzeug 110, das die Beispielvideosequenz 200 aufzeichnet, ein Objekt berührt oder beinahe berührt, oder wenn das Fahrzeug 110 ein Ausweichmanöver durchführt, einen Kontakt oder Beinahekontakt mit dem Objekt zu vermeiden. Ein Ausweichmanöver ist als das Steuern des Antriebsstrangs, der Lenkung und der Bremsen des Fahrzeugs 110 definiert, um eines oder mehrere von Beschleunigung, Lenkung und Bremsung durchzuführen, um einen Kontakt oder Beinahekontakt mit einem Objekt zu vermeiden.
-
3 ist eine Darstellung einer Bewertungsmatrix 300 einer Beispielvideosequenz mit hoher Erwartung. Die Bewertungsmatrix 300 mit hoher Erwartung kann durch eine Benutzeridentifikation bestimmt werden, wobei die Benutzeridentifikation eine Bewertung einer Videosequenz durch einen Benutzer in Bezug auf die Fähigkeit eines Benutzers misst, ein Szenario mit hoher Erwartung auf Grundlage eines Videoeinzelbilds zu erkennen, das während des Beginns der Beispielvideosequenz 200 auftritt, kombiniert mit der Fähigkeit eines Benutzers, zu reagieren oder ein Ausweichmanöver zu wählen, das ein Objekt vermeiden würde, und zwar auf Grundlage des Betrachtens eines Einzelbildes von Videodaten. Die Erkennung wird entweder als einfach bewertet, was bedeutet, dass das bevorstehende Ausweichmanöver leicht aus einem Einzelbild von Videodaten zu Beginn der Sequenz ersichtlich ist, oder derart bewertet, dass es schwierig ist, etwas aus einem Einzelbild von Videodaten zu Beginn der Sequenz zu erkennen. Ein Beispiel für ein leicht zu erkennendes Szenario mit hoher Erwartung wäre ein Fußgänger, der auf einem Fußgängerüberweg auf einer Fahrbahn gesehen wird. Ein Beispiel für ein schwierig zu erkennendes Szenario mit hoher Erwartung wäre ein Fußgänger auf einem Bürgersteig in der Nähe einer Fahrbahn, der teilweise oder vollständig durch geparkte Autos verdeckt wird. Die Reaktion wird als einfach bewertet, was bedeutet, dass ein Ausweichmanöver von einem Benutzer leicht auf Grundlage des betrachteten Videoeinzelbilds bestimmt werden kann, oder schwierig, was bedeutet, dass ein Benutzer mehr Zeit in Anspruch nehmen würde, um das geeignete Ausweichmanöver zu bestimmen. Ein Beispiel für eine leichte Reaktion wäre das Betrachten eines Fußgängers auf einem Fußgängerüberweg, während das Fahrzeug mit niedriger Geschwindigkeit fährt. Ein Beispiel für eine schwierige Reaktion wäre das Betrachten eines Fußgängers auf einem Fußgängerüberweg, während das Fahrzeug mit hoher Geschwindigkeit im Verkehr fährt und zwischen Bremsen und Spurwechsel wählen muss.
-
Beispielvideosequenzen 200 können durch Benutzeridentifikationsdaten, einschließlich einer Matrix 300 mit hoher Erwartung, bewertet werden, um zu bestimmen, in welche der vier Kategorien, leicht/leicht, leicht/schwierig, schwierig/leicht oder schwierig/schwierig, eine Beispielvideosequenz 200 kategorisiert wird. Diese Bewertung kann durch Crowdsourcing erfolgen, wobei Crowdsourcing in diesem Zusammenhang bedeutet, dass eine Vielzahl von Benutzern die gleichen Beispielvideosequenzen unabhängig bewertet und dann die Ergebnisse kombiniert (z. B. durch Mitteln und/oder Verwenden eines anderen statistischen Messwerts). Jeder der vier Bewertungen kann ein numerischer Wert gegeben werden und die Bewertungen für jede Beispielvideosequenz 200 können gemittelt werden, um die Endpunktzahl für jede Beispielvideosequenz zu bestimmen. Die Endpunktzahlen für die Beispielvideoszenarien 200 können als niedrige Erwartung zusammengefasst werden, was bedeutet, dass Benutzer zustimmen, dass Erkennung und Reaktion leicht sind, oder als hohe Erwartung, was bedeutet, dass Benutzer zustimmen, dass Erkennung oder Reaktion oder beides schwierig ist. Einzelbilder von Videodaten aus Szenarien mit hoher Erwartung können aufgezeichnet und zum anschließenden Trainieren eines tiefen neuronalen Netzwerks gespeichert werden. Der Betrieb eines Fahrzeugs 110 kann verbessert werden, indem ein tiefes neuronales Netzwerk trainiert wird, um Szenarien mit hoher Erwartung in Videodaten zu erkennen, während das Fahrzeug 110 auf einer Fahrbahn betrieben wird. Die Erkennung von Szenarien mit hoher Erwartung kann es einer Rechenvorrichtung 115 ermöglichen, Ausweichmanöver zu beginnen, sobald das Szenario mit hoher Erwartung erkannt wird, und dadurch die Wahrscheinlichkeit erhöhen, dass ein Kontakt oder Beinahekontakt mit einem Objekt vermieden wird.
-
4 ist eine Darstellung eines tiefen neuronalen Netzwerks (DNN) 400. Ein erstes DNN 400 ist ein Beispiel für ein Modell, das trainiert werden kann, um Videosequenzen zu identifizieren, die Szenarien mit hoher Erwartung beinhalten, wobei ein Modell als ein Prozess künstlicher Intelligenz definiert ist, der trainiert oder programmiert werden kann, um Muster von Verhalten mit hoher Erwartung in Videosequenzen zu identifizieren. Modelle können zum Beispiel regelbasierte Programme zum maschinellen Lernen oder, wie in 4 veranschaulicht, ein DNN 400 beinhalten. Das erste DNN 400 kann ein neuronales Faltungsnetzwerk sein, das eine Faltungsschicht 404 (CONVOLUTION) beinhaltet, die verborgene Variablen 406 erzeugt, indem eine eingegebene Videosequenz 402 mit Faltungsparametern gefaltet wird, die zur Trainingszeit gelernt werden. Die verborgenen Variablen 406 werden in vollständig verbundene Schichten 408 (FULLY CONNECTED) eingegeben, die bestimmen, ob die eingegebene Videosequenz 402 ein Szenario mit hoher Erwartung beinhaltet. Das erste DNN 400 kann trainiert werden, um Videosequenzen 402 zu identifizieren, die Szenarien mit hoher Erwartung beinhalten, indem Videosequenzen, die Szenarien mit hoher und niedriger Erwartung beinhalten, in das erste DNN 400 eingegeben werden und zurückgegebene Ergebnisse 410 mit Ground Truth aus den durch Crowdsourcing erfassten Benutzeridentifikationsdaten verglichen werden, die bestimmt wurden, wie in Bezug auf die 2 und 3 erörtert. Ground Truth beinhaltet Daten bezüglich Objekten in den Daten mit hoher Erwartung, die durch Techniken bestimmt werden, die unabhängig von dem ersten DNN 400 sind, in diesem Beispiel durch Crowdsourcing erfasste Benutzeridentifikationsdaten, wie etwa eine Bewertungsmatrix 300 einer Beispielvideosequenz mit hoher Erwartung. Das DNN 400 kann die eingegebene Videosequenz 402 verarbeiten und bestimmen, ob die Videosequenz einem Szenario mit hoher Erwartung entspricht, und Daten bezüglich Objekten in der Beispielvideosequenz ausgeben, wie etwa Objektstandort, -geschwindigkeit und - beschleunigung. Objektstandort, -geschwindigkeit und -beschleunigung können auf Grundlage von verarbeiteten Videodaten, Lidardaten und Radardaten bestimmt werden, die von einem Fahrzeug zu dem Zeitpunkt erfasst wurden, zu dem die Beispielvideosequenz erfasst wurde.
-
Das erste DNN 400 kann trainiert werden, um Muster in Szenarien mit hoher Erwartung in einer Datenbank von Verkehrsszenarien zu identifizieren, die in Beispielvideosequenzen 200 enthalten sind, die in einer Datenbank von Beispielvideosequenzen 200 enthalten sind, wie vorstehend in Bezug auf 2 erörtert. Muster in Szenarien mit hoher Erwartung sind durch das Verhalten von Objekten in einer Videosequenz definiert, die wiederholt in einer Vielzahl von Videosequenzen beobachtet werden können. Zum Beispiel kann ein Fahrzeug, das von einer sich kreuzenden Fahrbahn von rechts in eine Kreuzung einfährt, als ein Muster in einem Szenario mit hoher Erwartung identifiziert werden. Die synthetischen Videosequenzen 200 können als Szenarien mit hoher Erwartung identifiziert werden, indem das erste DNN 400 trainiert wird, um Muster in Beispielvideosequenzen 200 zu identifizieren, die Abschnitte beinhalten, in denen ein Fahrzeug in der Beispielvideosequenz 200 ein anderes Fahrzeug berührt oder ein anderes Fahrzeug in der Szenenbeschreibung beinahe berührt, wobei Beinahekontakt so definiert ist, dass in weniger als einer spezifizierten Entfernung, typischerweise innerhalb eines Meters, von dem anderen Fahrzeug gelangt wird, wie in der zuvor zitierten „Operational Design Domain for Automated Driving Systems“ definiert. Muster in einem Szenario mit hoher Erwartung können ein Objektverhalten beinhalten, bei dem ein Objekt, einschließlich eines Fahrzeugs, eines Fußgängers, eines Fahrrads oder eines Tieres, verdeckt (teilweise sichtbar) oder nicht sichtbar ist, und zwar bis zu ein paar Sekunden, bevor ein Fahrzeug das Objekt innerhalb der spezifizierten Entfernung berühren oder beinahe berühren kann. Das erste DNN 400 kann trainiert werden, um Ergebnisse 410 auszugeben, die den Standort, die Geschwindigkeit und die Beschleunigung von Objekten beinhalten, die in den eingegebenen Videosequenzdaten 402 vermieden werden sollen.
-
Die Verwendung eines ersten DNN 400 kann das Trainieren eines zweiten tiefen neuronalen Netzwerks (DNN) 500 verbessern, wie nachstehend in Bezug auf 5 erörtert, um ein Fahrzeug 110 durch Identifizieren einer großen Anzahl (größer als 100) von Szenarien mit hoher Erwartung in einer großen Datenbank von Beispielvideosequenzen 200 zu betreiben. Die Anzahl der Szenarien mit hoher Erwartung kann erhöht werden, indem die eingegebenen Szenarien mit hoher Erwartung modifiziert oder gestört werden, um mehrere Ausgabeergebnisse 410 für jedes eingegebene Szenario mit hoher Erwartung zu erzeugen. Die Videoszenarien mit hoher Erwartung können dann verarbeitet werden, um das korrekte Ausweichmanöver zu bestimmen, das von einem Fahrzeug 110 als Reaktion auf das Szenario mit hoher Erwartung durchgeführt werden soll, und das korrekte Ausweichmanöver kann als Ground Truth verwendet werden, um ein zweites DNN 500 zu programmieren, um das korrekte Ausweichmanöver als Reaktion auf eingegebene Videosequenzen auszugeben, die ähnlich den Szenarien mit hoher Erwartung erscheinen, die durch das erste DNN 400 identifiziert wurden. Ein ähnliches Erscheinungsbild in Videosequenzen ist als Videosequenzen definiert, die Objekte, einschließlich Fahrzeuge, Fußgänger, Fahrräder, Tiere usw., in der gleichen Beziehung wie das Fahrzeug, das die Videosequenz erlangt, beinhalten, die sich zum Beispiel einer Kreuzung nähern oder auf eine Fahrbahn gelangen. Durch das Identifizieren von Szenarien mit hoher Erwartung und das Trainieren eines zweiten DNN 500, um die Szenarien mit hoher Erwartung vor dem Kontakt oder Beinahekontakt mit einem Objekt zu erkennen, kann das DNN 550 ein Ausweichmanöver ausgeben, das es dem Fahrzeug 110 ermöglicht, den Kontakt oder Beinahekontakt zu vermeiden.
-
5 ist eine Darstellung eines beispielhaften zweiten tiefen neuronalen Netzwerks (DNN) 500. Wie vorstehend in Bezug auf 4 erörtert, ist das DNN 500 ein Beispiel für ein Modell, das zum Verarbeiten von Videosequenzdaten verwendet werden kann. Das zweite DNN kann ein neuronales Faltungsnetzwerk sein, das Videosequenzdaten unter Verwendung von Faltungsschichten (CONVOLUTION) 504 und vollständig verbundenen Schichten (FULLY CONNECTED) 508 verarbeitet. Videosequenzdaten 502, die von in einem Fahrzeug 110 enthaltenen Videosensoren erfasst werden, können in Faltungsschichten 504 eingegeben werden. Faltungsschichten 504 verarbeiten die eingegebenen Videodaten 502, um verborgene Variablen 506 zu bilden. Verborgene Variablen 506 entsprechen codierten Daten, die Daten bezüglich Objekten in eingegebenen Videosequenzdaten 502 beinhalten. Verborgene Variablen 506 werden an vollständig verbundene Schichten 508 weitergegeben, die die verborgenen Variablen 506 verarbeiten, um Ausgabezustände 510 zu erzeugen. Die Ausgabezustände 510 beinhalten Daten, die eine Rechenvorrichtung 115 darüber informieren, dass die eingegebenen Videosequenzdaten 502 ein Szenario mit hoher Erwartung beinhalten, das die Rechenvorrichtung 115 anweisen kann, ein geeignetes Ausweichmanöver durchzuführen, um ein Objekt in den eingegebenen Videodaten 502 zu vermeiden.
-
Das zweite DNN 500 kann trainiert werden, um die Verhaltensmuster von Objekten in den eingegebenen Videosequenzen zu modifizieren oder zu stören. Das Modifizieren oder Stören der Verhaltensmuster von Objekten in den eingegebenen Videosequenzen ist als das Ändern der Standorte, Geschwindigkeiten und Beschleunigungen der Objekte in den eingegebenen Videosequenzen um kleine Beträge definiert, wobei ein kleiner Betrag als ein kleiner Prozentsatz (kleiner als 10 %) der Änderung des Standorts, der Geschwindigkeit oder der Beschleunigung definiert ist. Indem das Verhalten von Objekten um kleine Beträge modifiziert oder gestört wird, kann eine Vielzahl von Ausgabeergebnissen 410 für ein einzelnes Eingabemuster erzeugt werden. Hierin beschriebene Techniken verbessern das Trainieren eines DNN zum Betreiben eines Fahrzeugs 110 durch Erzeugen einer großen Anzahl (größer als 1000) von Szenarien mit hoher Erwartung durch Modifizieren oder Stören von Mustern in Szenarien mit hoher Erwartung, die durch ein erstes DNN 400 in einer Datenbank von Beispielvideosequenzen 200 identifiziert werden, und Verwenden der modifizierten Videosequenzen, um ein drittes DNN zum Betreiben eines Fahrzeugs 110 zu trainieren.
-
Das zweite DNN 500 kann Ausgabedaten 510 erzeugen, einschließlich Szenarien mit hoher Erwartung und durch Trainieren des DNN 500 mit den Beispielvideosequenzen 200, die durch das erste DNN 400 bestimmt werden, zusammen mit Ground Truth bezüglich der Standorte von Objekten, die in den Videosequenzdaten 502 vermieden werden sollen, ebenfalls bestimmt durch das erste DNN 400. Das zweite DNN 500 kann eine Vielzahl von Lösungen versuchen, die zurückgegeben werden, um mit der korrekten Lösung (d. h- Ground-Truth-Lösung verglichen zu werden, wie durch die Crowdsource-Ergebnisse bestimmt. Wenn das zweite DNN 500 eine korrekte Lösung erreicht, werden die Programmierungsparameter für die Faltungsschichten 504 und die vollständig verbundenen Schichten 508, die die korrekte Lösung erreicht haben, gespeichert. Die Sammlung von Programmierparametern, die korrekte Ergebnisse für den gesamten Satz von Beispielvideosequenzen erreichen, kann als Programmierwerte für das trainierte zweite DNN 500 gespeichert werden. Durch das Modifizieren oder Stören der in Szenarien mit hoher Erwartung enthaltenen Muster kann das DNN 500 eine große Anzahl unterschiedlicher Videosequenzen erzeugen, die beim Trainieren eines dritten DNN verwendet werden, um Szenarien mit hoher Erwartung zu identifizieren. Das Erhöhen der Anzahl unterschiedlicher Videosequenzen kann das Training eines dritten DNN verbessern, um Szenarien mit hoher Erwartung in Videosequenzdaten zu identifizieren, die erlangt werden, während ein Fahrzeug 110 auf einer Fahrbahn betrieben wird.
-
Ein drittes DNN kann traniert werden, um Szenarien mit hoher Erwartung in Videosequenzdaten zu identifizieren, die von einem Fahrzeug 110 erlangt werden, wenn das Fahrzeug 110 auf einer Fahrbahn betrieben wird. Wenn das Fahrzeug auf der Fahrbahn betrieben wird, kann eine in dem Fahrzeug enthaltene Rechenvorrichtung 115 Videosequenzdaten erlangen und die Videosequenzdaten in ein trainiertes drittes DNN eingeben, um zu bestimmen, ob die Videosequenzdaten ein Szenario mit hoher Erwartung beinhalten. Wenn das dritte DNN bestimmt, dass Videosequenzdaten ein Szenario mit hoher Erwartung beinhalten, kann das dritte DNN Daten an die Rechenvorrichtung 115 ausgeben, um die Rechenvorrichtung 115 zu warnen, dass ein Szenario mit hoher Erwartung identifiziert wurde. Die Rechenvorrichtung 115 kann dem Antriebsstrang, der Lenkung und den Bremsen des Fahrzeugs über die Steuerungen 112, 113, 114 befehlen, ein Ausweichmanöver durchzuführen, wie durch die Ausgabedaten bestimmt, um ein Objekt zu vermeiden. Hierin beschriebene Techniken verbessern den Betrieb eines Fahrzeugs 110 durch Erkennen von Szenarien mit hoher Erwartung und Bereitstellen von Ausgabedaten zusätzlich zu anderen Fahrzeugsensordaten, die zum Betreiben eines Fahrzeugs 110 verwendet werden, und erhöhen dadurch die Wahrscheinlichkeit, dass das Fahrzeug 110 ein geeignetes Ausweichmanöver durchführt, um einen Kontakt oder Beinahekontakt mit einem Objekt zu vermeiden.
-
Das Durchführen eines Ausweichmanövers kann das Bestimmen eines Fahrzeugwegpolynoms beinhalten, auf dem ein Fahrzeug 110 betrieben werden soll. Ein Fahrzeugwegpolynom ist eine Polynomfunktion, die eine Reihe von n verbundenen Punkten in der X-Y-Ebene beinhaltet, die vorhergesagte Bewegungsbahnen des Fahrzeugs 110 in n zukünftigen Zeitschritten beinhaltet. Die n verbundenen Punkte werden durch eine Polynomfunktion in der X-Y-Ebene bestimmt, wobei die X-Y-Achsen durch die Richtung des Fahrzeugs 110 bestimmt werden, wobei zum Beispiel die X-Richtung parallel zur Fahrtrichtung ist und die Y-Richtung senkrecht zur Fahrtrichtung ist. Der Chebyshev-Satz besagt, dass n Punkte genau durch ein Polynom vom Grad (n-1) dargestellt werden können. In diesem Fall können n Punkte, wobei n eine große Zahl sein kann, zum Beispiel größer als 100, durch ein Polynom vom Grad k dargestellt werden, wobei in diesem Fall k zum Beispiel eine Zahl kleiner oder gleich 3 sein kann. Die n verbundenen Punkte in einem Polynom des Fahrzeugwegs können durch eine Polynomfunktion in X und Y vom Grad k oder weniger dargestellt sein. Zum Beispiel kann ein Wegpolynom eine vergangene Zeit von 10 Sekunden darstellen und kann mit 100 Millisekunden/Abtastung oder 10 Hz abgetastet werden, um n = 100 Abtastpunkte zu ergeben. In diesem Beispiel können die n = 100 Abtastpunkte in einem Polynom des Fahrzeugwegs durch eine Polynomfunktion in X und Y vom Grad 3 oder weniger dargestellt sein.
-
Die Polynomfunktion in X und Y vom Grad k oder weniger, die das Polynom des Fahrzeugwegs darstellt, kann eine oder mehrere Bezier-Kurven beinhalten. Bezier-Kurven sind Polynomfunktionen vom Grad k oder weniger, die jeweils eine disjunkte Teilmenge der n Punkte darstellen und die zusammengenommen den gesamten Satz von n Punkten darstellen. Bezier-Kurven können eingeschränkt sein, um kontinuierlich differenzierbar zu sein und Einschränkungen oder Grenzen für die zulässigen Ableitungen aufzuweisen, z.B. Grenzen für die Änderungsraten ohne Diskontinuitäten. Bezier-Kurven können auch eingeschränkt sein, um Ableitungen mit anderen Bezier-Kurven an Grenzen abzugleichen, wodurch glatte Übergänge zwischen Teilmengen bereitgestellt werden. Einschränkungen bei Bezier-Kurven können ein Polynom des Fahrzeugwegs zu einem Polynom des lenkbaren Wegs machen, indem die Raten von Längs- und Querbeschleunigungen begrenzt werden, die erforderlich sind, um ein Fahrzeug entlang des Polynoms des Fahrzeugwegs zu steuern, wobei Bremsmoment und Antriebsstrangdrehmoment als positive und negative Längsbeschleunigungen angewendet werden und Lenkdrehmoment im Uhrzeigersinn und gegen den Uhrzeigersinn als linke und rechte Querbeschleunigung aufgebracht werden. Durch das Bestimmen von Quer- und Längsbeschleunigungen, um vorbestimmte Zielwerte innerhalb vorbestimmter Einschränkungen innerhalb vorbestimmter Anzahlen von Zeiträumen zu erreichen, kann das Fahrzeugwegpolynom eingeschränkt sein, um einen Fahrzeugwegpolynom bereitzustellen, auf dem das Fahrzeug 110 betrieben werden kann, ohne die Grenzen der Quer- und Längsbeschleunigungen zu überschreiten.
-
6 ist eine Darstellung eines Ablaufdiagramms, das in Bezug auf 1-5 beschrieben ist, eines Prozesses 600 zum Betreiben eines Fahrzeugs, um Szenarien mit hoher Erwartung zu erkennen und einen Kontakt oder Beinahekontakt mit Objekten zu vermeiden. Der Prozess 600 kann durch einen Prozessor der Rechenvorrichtung umgesetzt werden, der zum Beispiel Informationen von Sensoren als Eingabe heranzieht und Befehle ausführt und Objektinformationen ausgibt. Der Prozess 600 beinhaltet mehrere Blöcke, die in der veranschaulichten Reihenfolge ausgeführt werden können. Der Prozess 600 könnte alternativ oder zusätzlich weniger Blöcke beinhalten oder kann die Blöcke in anderer Reihenfolge ausgeführt beinhalten.
-
Der Prozess 600 beginnt bei Block 602, bei dem Beispielvideosequenzen 200 durch Crowdsourcing analysiert werden, um Szenarien mit hoher Erwartung zu bestimmen, wie in Bezug auf die 2 und 3 oben beschrieben.
-
Bei Block 604 werden die durch Crowdsourcing erfassten Daten in Bezug auf Szenarien mit hoher Erwartung verwendet, um ein erstes DNN 400 zu trainieren, um Muster in Szenarien mit hoher Erwartung auf Grundlage von Videosequenzdaten 402, Crowdsourcing-Bewertungen und Fahrzeugsensordaten, die zum Zeitpunkt der Aufzeichnung der Videosequenzdaten 200 aufgezeichnet und verarbeitet wurden, zu identifizieren, wobei Fahrzeugsensordaten eines oder mehrere von verarbeiteten Videodaten, Lidardaten oder Radardaten beinhalten. Das erste DNN 400 kann die Muster in Szenarien mit hoher Erwartung modifizieren, um mehr Trainingsdaten für ein zweites DNN 500 bereitzustellen, das trainiert werden kann, um ein Fahrzeug 110 zu betreiben und Ausweichmanöverdaten als Reaktion auf das Identifizieren von Mustern von Szenarien mit hoher Erwartung in den eingegebenen Videosequenzdaten 502 auszugeben. Die Modifikationen können das Verhalten eines Eingabemusters in einem Szenario mit hoher Erwartung stören, um einen größeren Datensatz von Videosequenzen zusammen mit Ground Truth zum Trainieren eines dritten DNN bereitzustellen.
-
Bei Block 606 wird ein zweites DNN 500 auf Grundlage der identifizierten Muster von Szenarien mit hoher Erwartung trainiert, die durch das erste DNN 400 ausgegeben werden. Das zweite DNN 500 gibt Videosequenzdaten ein, die Muster beinhalten, einschließlich Szenarien mit hoher Erwartung. Das trainierte zweite DNN 500 kann das Objektverhalten in Mustern, einschließlich eines Szenarios mit hoher Erwartung, in den eingegebenen Videosequenzdaten 502 modifizieren oder stören und Daten des Zustands 510, die modifizierten oder gestörten Mustern, einschließlich Szenarien mit hoher Erwartung, entsprechen, ausgeben, die verwendet werden können, um ein drittes DNN zu trainieren, das zu verwenden ist, um ein Fahrzeug 110 auf einer Fahrbahn zu betreiben. Das dritte DNN kann Daten ausgeben, die es einem Fahrzeug 110 ermöglichen, einen Kontakt oder Beinahekontakt mit einem Objekt zu vermeiden, indem Ausgabedaten, die den Standort, die Geschwindigkeit und die Beschleunigung eines Objekts identifizieren, in den eingegebenen Videosequenzdaten enthalten sind. Das Betreiben des Fahrzeugs 110 kann das Durchführen eines Ausweichmanövers beinhalten.
-
Bei Block 608 kann die Rechenvorrichtung 115 den Antriebsstrang, die Lenkung und die Bremsen des Fahrzeugs steuern, um das Ausweichmanöver durchzuführen, das in den durch ein drittes DNN ausgegebenen Daten spezifiziert ist, indem das Fahrzeug 110 entlang eines Wegpolynoms betrieben wird, wie vorstehend in Bezug auf 5 beschrieben, um zu bewirken, dass Fahrzeug 110 ein Objekt vermeidet. Nach Block 608 endet der Prozess 600.
-
Rechenvorrichtungen, wie etwa die hierin erörterten, beinhalten im Allgemeinen jeweils Befehle, die durch eine oder mehrere Rechenvorrichtungen, wie etwa die vorstehend genannten, und zum Ausführen von Blöcken oder Schritten von vorstehend beschriebenen Prozessen ausführbar sind. Die vorstehend erörterten Prozessblöcke können beispielsweise als computerausführbare Befehle ausgeführt sein.
-
Computerausführbare Befehle können von Computerprogrammen zusammengestellt oder interpretiert werden, die unter Verwendung einer Vielzahl von Programmiersprachen und/oder -technologien erstellt wurden, einschließlich unter anderem, entweder allein oder in Kombination Java™, C, C++, Python, Julia, SCALA, Visual Basic, Java Script, Perl, HTML usw. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Befehle, z. B. von einem Speicher, einem computerlesbaren Medium usw., und führt diese Befehle aus, wodurch er ein oder mehrere Prozesse durchführt, einschließlich eines oder mehrerer der hier beschriebenen Prozesse. Derartige Befehle und andere Daten können in Dateien gespeichert und unter Verwendung vielfältiger computerlesbarer Medien übertragen werden. Eine Datei in einer Rechenvorrichtung ist im Allgemeinen eine Sammlung von Daten, die auf einem computerlesbaren Medium, wie etwa einem Speichermedium, einem Direktzugriffsspeicher usw., gespeichert ist.
-
Ein computerlesbares Medium beinhaltet jedes beliebige Medium, das am Bereitstellen von Daten (z. B. Befehlen) beteiligt ist, die durch einen Computer gelesen werden können. Ein derartiges Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtiger Medien, flüchtiger Medien usw. Nichtflüchtige Medien beinhalten zum Beispiel optische oder magnetische Platten und andere Dauerspeicher. Flüchtige Medien beinhalten einen dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM), der in der Regel einen Hauptspeicher darstellt. Gängige Formen computerlesbarer Medien beinhalten zum Beispiel eine Diskette, eine Folienspeicherplatte, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, Lochkarten, Lochstreifen, ein beliebiges anderes physisches Medium mit Lochmustern, einen RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium, das von einem Computer ausgelesen werden kann.
-
Alle in den Patentansprüchen verwendeten Ausdrücke sollen ihre klare und gewöhnliche Bedeutung aufweisen, wie sie von einem Fachmann verstanden wird, sofern hierin nicht ausdrücklich das Gegenteil angegeben wird. Insbesondere ist die Verwendung der Singularartikel, wie etwa „ein“, „eine“, „der“, „die“, „das“ usw., dahingehend auszulegen, dass ein oder mehrere der aufgeführten Elemente genannt werden, sofern ein Anspruch nicht eine ausdrückliche gegenteilige Einschränkung enthält.
-
Der Ausdruck „beispielhaft“ wird in dieser Schrift in dem Sinne verwendet, dass er ein Beispiel angibt, z. B. sollte eine Bezugnahme auf ein „beispielhaftes Gerät“ einfach als Bezugnahme auf ein Beispiel für ein Gerät gelesen werden.
-
Das einen Wert oder ein Ergebnis modifizierende Adverb „ungefähr“ bedeutet, dass eine Form, eine Struktur, ein Messwert, ein Wert, eine Bestimmung, eine Berechnung usw. von einer bzw. einem genau beschriebenen Geometrie, Abstand, Messwert, Wert, Bestimmung, Berechnung usw. aufgrund von Mängeln hinsichtlich Materialien, Bearbeitung, Herstellung, Sensormessungen, Berechnungen, Verarbeitungszeit, Kommunikationszeit usw. abweichen kann.
-
In den Zeichnungen geben die gleichen Bezugszeichen die gleichen Elemente an. Ferner könnten einige oder alle dieser Elemente geändert werden. Hinsichtlich der in dieser Schrift beschriebenen Medien, Prozesse, Systeme, Verfahren usw. versteht es sich, dass, obwohl die Schritte oder Blöcke derartiger Prozesse usw. zwar als gemäß einer bestimmten Abfolge erfolgend beschrieben worden sind, derartige Prozesse jedoch so umgesetzt werden könnten, dass die beschriebenen Schritte in einer anderen Reihenfolge als der in dieser Schrift beschriebenen Reihenfolge durchgeführt werden. Es versteht sich ferner, dass bestimmte Schritte gleichzeitig durchgeführt, andere Schritte hinzugefügt oder bestimmte in dieser Schrift beschriebene Schritte weggelassen werden könnten. Anders ausgedrückt werden die vorliegenden Beschreibungen von Prozessen zur Veranschaulichung bestimmter Ausführungsformen bereitgestellt und sollten keinesfalls dahingehend ausgelegt werden, dass sie die beanspruchte Erfindung einschränken.
-
Gemäß der vorliegenden Erfindung wird ein Computer bereitgestellt, aufweisend: einen Prozessor; und einen Speicher, wobei der Speicher Anweisungen beinhaltet, die von dem Prozessor zu Folgendem ausführbar sind: Identifizieren von Mustern in ersten Szenarien mit hoher Erwartung auf Grundlage einer Benutzeridentifikation, wobei Szenarien mit hoher Erwartung Videosequenzen beinhalten, in denen sich ein erstes Fahrzeug innerhalb einer spezifizierten Entfernung von einem ersten Objekt in einer ersten Umgebung um das erste Fahrzeug befindet, wobei eine Benutzeridentifikation bestimmt wird durch Betrachten von Abschnitten einer jeweiligen Videosequenz, Trainieren eines ersten Modells, das ein tiefes neuronales Netzwerk beinhaltet, um zweite Szenarien mit hoher Erwartung auf Grundlage der in den ersten Szenarien mit hoher Erwartung identifizierten Mustern zu bestimmen, Trainieren eines zweiten Modells, das ein zweites tiefes neuronales Netzwerk beinhaltet, um Standorte und Geschwindigkeiten von zweiten Objekten in den ersten Szenarien mit hoher Erwartung zu modifizieren und modifizierte Szenarien mit hoher Erwartung auszugeben, und Trainieren eines dritten Modells, das ein drittes tiefes neuronales Netzwerk beinhaltet, um ein Fahrzeug auf Grundlage der modifizierten Szenarien mit hoher Erwartung, die durch das zweite Modell ausgegeben werden, zu betreiben.
-
Gemäß einer Ausführungsform beinhalten Szenarien mit hoher Erwartung Videosequenzen und Ground Truth bezüglich erster Objekte, wobei Ground Truth Lidardaten, Radardaten, Geschwindigkeitsdaten und Beschleunigungsdaten bezüglich der ersten Objekte beinhaltet und wobei sich das erste Fahrzeug innerhalb der spezifizierten Entfernung zum ersten Objekt in der ersten Umgebung um das erste Fahrzeug innerhalb einer kleinen Anzahl von Sekunden befindet, und wobei das erste Objekt für das erste Fahrzeug bis zu einer kleinen Anzahl von Sekunden verdeckt oder nicht sichtbar sein kann, bevor es sich innerhalb der spezifizierten Entfernung befindet.
-
Gemäß einer Ausführungsform beinhaltet die Benutzeridentifikation das Kombinieren von Benutzeridentifikationsdaten von einer Vielzahl von Benutzern.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Anweisungen zum Verarbeiten von Videodaten, die von den im zweiten Fahrzeug enthaltenen Sensoren erfasst werden, unter Verwendung des zweiten tiefen neuronalen Netzwerks, um Szenarien mit hoher Erwartung zu identifizieren und ein zweites Objekt in einer zweiten Umgebung um das zweite Fahrzeug zu bestimmen.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Anweisungen zum Trainieren des zweiten tiefen neuronalen Netzwerks, um einen Standort eines Objekts und eine Entfernung zu diesem zu bestimmen.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Anweisungen zum Betreiben des zweiten Fahrzeugs durch Steuern von Antriebsstrang, Lenkung und Bremsen des zweiten Fahrzeugs, um das zweite Objekt in der zweiten Umgebung um das zweite Fahrzeug zu vermeiden.
-
Gemäß einer Ausführungsform ist das erste tiefe neuronale Netzwerk ein neuronales Faltungsnetzwerk, das Faltungsschichten und vollständig verbundene Schichten beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Anweisungen zum Trainieren des ersten tiefen neuronalen Netzwerks, um Szenarien mit hoher Erwartung in einer Datenbank von Verkehrsszenarien zu identifizieren.
-
Gemäß einer Ausführungsform ist das zweite tiefe neuronale Netzwerk ein neuronales Faltungsnetzwerk, das Faltungsschichten und vollständig verbundene Schichten beinhaltet.
-
Gemäß einer Ausführungsform beinhaltet das erste Objekt eines oder mehrere von einem Fahrzeug, einem Fußgänger, einem Fahrrad und einem Tier.
-
Gemäß der vorliegenden Erfindung wird ein Verfahren bereitgestellt, aufweisend: Identifizieren von Mustern in ersten Szenarien mit hoher Erwartung auf Grundlage einer Benutzeridentifikation, wobei Szenarien mit hoher Erwartung Videosequenzen beinhalten, in denen sich ein erstes Fahrzeug innerhalb einer spezifizierten Entfernung von einem ersten Objekt in einer ersten Umgebung um das erste Fahrzeug befindet, wobei eine Benutzeridentifikation bestimmt wird durch Betrachten von Abschnitten einer jeweiligen Videosequenz, Trainieren eines ersten Modells, das ein tiefes neuronales Netzwerk beinhaltet, um zweite Szenarien mit hoher Erwartung auf Grundlage der in den ersten Szenarien mit hoher Erwartung identifizierten Mustern zu bestimmen, Trainieren eines zweiten Modells, das ein zweites tiefes neuronales Netzwerk beinhaltet, um Standorte und Geschwindigkeiten von zweiten Objekten in den ersten Szenarien mit hoher Erwartung zu modifizieren und modifizierte Szenarien mit hoher Erwartung auszugeben, und Trainieren eines dritten Modells, das ein drittes tiefes neuronales Netzwerk beinhaltet, um ein Fahrzeug auf Grundlage der modifizierten Szenarien mit hoher Erwartung, die durch das zweite Modell ausgegeben werden, zu betreiben.
-
Gemäß einer Ausführungsform beinhalten Szenarien mit hoher Erwartung Videosequenzen, in denen sich das erste Fahrzeug innerhalb der spezifizierten Entfernung zum ersten Objekt in der ersten Umgebung um das erste Fahrzeug innerhalb einer geringen Anzahl an Sekunden befindet.
-
Gemäß einer Ausführungsform beinhaltet die Benutzeridentifikation das Kombinieren von Benutzeridentifikationsdaten von einer Vielzahl von Benutzern.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Verarbeiten von Videodaten, die von den im zweiten Fahrzeug enthaltenen Sensoren erfasst werden, unter Verwendung des zweiten tiefen neuronalen Netzwerks, um Szenarien mit hoher Erwartung zu identifizieren und ein zweites Objekt in einer zweiten Umgebung um das zweite Fahrzeug zu bestimmen.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Trainieren des zweiten tiefen neuronalen Netzwerks, um einen Standort eines Objekts und eine Entfernung zu diesem zu bestimmen.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Betreiben des zweiten Fahrzeugs durch Steuern von Antriebsstrang, Lenkung und Bremsen des zweiten Fahrzeugs, um das zweite Objekt in der zweiten Umgebung um das zweite Fahrzeug zu vermeiden.
-
Gemäß einer Ausführungsform ist das erste tiefe neuronale Netzwerk ein neuronales Faltungsnetzwerk, das Faltungsschichten und vollständig verbundene Schichten beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch das Trainieren des ersten tiefen neuronalen Netzwerks, um Szenarien mit hoher Erwartung in einer Datenbank von Verkehrsszenarien zu identifizieren.
-
Gemäß einer Ausführungsform ist das zweite tiefe neuronale Netzwerk ein neuronales Faltungsnetzwerk, das Faltungsschichten und vollständig verbundene Schichten beinhaltet.
-
Gemäß einer Ausführungsform beinhaltet das erste Objekt eines oder mehrere von einem Fahrzeug, einem Fußgänger, einem Fahrrad und einem Tier.