-
TECHNISCHES GEBIET
-
Diese Erfindung betrifft allgemein das Gebiet autonomer Fahrzeuge und insbesondere das Beurteilen von Algorithmen für autonome Fahrzeuge.
-
ALLGEMEINER STAND DER TECHNIK
-
Das Definieren von Testszenarien, beispielsweise zum Trainieren autonomer Fahrzeuge, ist manuell, arbeitsintensiv und durch die Fähigkeit eines Ingenieurs eingeschränkt, herausfordernde Szenarien zu entwerfen. Der manuelle Prozess kann mit steigender Anzahl der Parameter und Anzahl möglicher Parameterwerte Fehlermodi für das Algorithmusverhalten verschleiern. Auch können Algorithmen für zahlreiche Interaktionen geprüft werden, was große Mengen an Testergebnisdaten erzeugt. Das manuelle Durchlaufen von Testergebnisdaten ist ebenfalls eine manuelle, arbeitsintensive Aktivität.
-
KURZDARSTELLUNG
-
Die vorliegende Erfindung erstreckt sich auf Verfahren, Systeme und Computerprogrammprodukte zum Beurteilen von Algorithmen für autonome Fahrzeuge. Allgemeiner verwenden Aspekte (z. B. überwachte) Techniken für maschinelles Lernen, um das Verhalten von Algorithmen für autonome Fahrzeuge an realen und simulierten Daten zu analysieren. Techniken für maschinelles Lernen können auch zum Ermitteln von Szenariomerkmalen verwendet werden, bei denen eine Beeinflussung des Alogrithmusverhaltens wahrscheinlicher ist. Techniken für maschinelles Lernen können auch verwendet werden, um Erkenntnisse zu konsolidieren und die Erzeugung relevanter Testfälle im Zuge mehrerer Iterationen zu automatisieren, um fehleranfällige Szenarien zu ermitteln.
-
In einem spezifischeren Aspekt wird ein Algorithmus für autonome Fahrzeuge unter Bedingungen ausgeführt, die in einer Vielzahl unterschiedlicher Szenarien definiert sind, um eine Fahrzeugaktivität zu simulieren. Fehlgeschlagene Szenarien werden pro Merkmal pro Merkmalswert klassifiziert. Es werden Berichte erzeugt. Die Berichte geben die Größe der Merkmalswerte, die zu den fehlgeschlagenen Szenarien beitragen, und die Wichtigkeit von Merkmalen über fehlgeschlagene Szenarien hinweg an. Szenarien können verfeinert werden, um weitere Informationen zu Merkmalswertekombinationen zu erlangen, die zu fehlgeschlagenen Szenarien beitragen.
-
Figurenliste
-
Die spezifischen Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden anhand der nachfolgenden Beschreibung und der begleitenden Zeichnungen deutlicher; es zeigen:
- 1 ein beispielhaftes Blockschaubild einer Rechenvorrichtung.
- 2 eine beispielhafte Computerarchitektur, die das Beurteilen eines Algorithmus für autonome Fahrzeuge ermöglicht.
- 3 ein Ablaufdiagramm eines beispielhaften Verfahrens zum Beurteilen eines Algorithmus für autonome Fahrzeuge.
- 4A und 4B einen beispielhaften Datenfluss zum Beurteilen eines Algorithmus für autonome Fahrzeuge.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die vorliegende Erfindung erstreckt sich auf Verfahren, Systeme und Computerprogrammprodukte zum Beurteilen von Algorithmen für autonome Fahrzeuge.
-
Eine Herausforderung bei der Entwicklung von Code für Produktionszwecke für autonome Fahrzeuge ist das Überprüfen des Verhaltens über Millionen von Meilen in Straßenprüfungen. Daher verwenden Fahrzeughersteller Simulationswerkzeuge, darunter Computerspiel-Engines, um Szenarien manuell zu erzeugen, simulierte Sensordaten zu erfassen und das Verhalten der Algorithmen für autonome Fahrzeuge zu beurteilen. In anderen Aspekten verwenden Fahrzeughersteller reale Daten als eine Komponente zur Überprüfung der Algorithmen für autonome Fahrzeuge. Nach dem ersten Testen eines Algorithmus arbeitet ein Ingenieur eine Hypothese dazu aus, wie sich unterschiedliche Parameter auf das Alogrithmusverhalten auswirken. Um die Hypothese zu bestätigen, führt der Ingenieur weitere Testrunden aus, um Parametertrends in fehleranfälligen Szenarien zu ermitteln. Wenn die Algorithmen komplexer werden und die Szenarien anwachsen (z. B. 100e Parameter beinhalten), werden blinde Flecken unvermeidlich und führen zu Sicherheitsrisiken.
-
Ingenieure verwenden Techniken zur Versuchsauslegung (Design of Experiments - DOE), um Erkenntnisse zum Alogrithmusverhalten manuell herzuleiten und zu konsolidieren. DOE-Techniken sind schwierig anzuwenden, wenn die Anzahl der Parameter ansteigt und Szenarien komplexer werden. Im Allgemeinen ist daher das Testen von Hypothesen zu Algorithmen autonomer Fahrzeuge an simulierten Daten zeitaufwändig, komplex und ungeeignet für höhere Größenordnungen.
-
Somit verwenden Aspekte der Erfindung (z. B. überwachte) Techniken für maschinelles Lernen wie etwa Stützvektormaschinen (Support Vector Machines - SVM), um das Verhalten von Algorithmen für autonome Fahrzeuge an simulierten Daten zu analysieren. Techniken für maschinelles Lernen können auch zum Ermitteln von Szenariomerkmalen verwendet werden, bei denen eine Beeinflussung des Alogrithmusverhaltens wahrscheinlicher ist. Techniken für maschinelles Lernen können auch verwendet werden, um Erkenntnisse zu konsolidieren und die Erzeugung relevanter Testfälle im Zuge mehrerer Iterationen zu automatisieren, um fehleranfällige Szenarien zu ermitteln.
-
Eine Datenbank wird mit einer (potenziell erschöpfenden) Liste unterschiedlicher Merkmalskombinationen für ein Szenario gefüllt. Merkmalskombinationen für ein Szenario können Fahrzeugstellungen, Umweltfaktoren und andere Aspekte einer Simulation beinhalten, wie etwa ein Merkmal zur L2-L5-Automatisierung. Es wird eine Auswahl unterschiedlicher Merkmalwertkombinationen getroffen. Für jede unterschiedliche Merkmalskombination werden Sensordaten und Ground Truth erzeugt. Sensordaten für jede unterschiedliche Merkmalskombination werden einen Algorithmus (z. B. für autonome Fahrzeuge) eingespeist. Der Algorithmus bestimmt Metriken für das Szenario für jede unterschiedliche Merkmalskombination, wie etwa eine binäre Metrik (z. B.), ob ein Szenario bestanden hat (erfolgreich war) oder fehlgeschlagen ist, eine nicht binäre Metrik, oder eine andere benutzerdefinierte Metrik. Der Algorithmus gibt jede Merkmalwertekombination zusammen mit einer Angabe von Metriken aus, etwa ob der Algorithmus bestanden hat oder fehlgeschlagen ist.
-
Die Ausgabe des Algorithmus wird in eine Klassifikationseinrichtung für maschinelles Lernen eingespeist. In einem Aspekt ist die Klassifikationseinrichtung für maschinelles Lernen eine SVM mit einem linearen Kern. Es können jedoch auch andere überwachte Einlernmodelle und/oder Kerne verwendet werden. Die Klassifikationseinrichtung für maschinelles Lernen kann die Algorithmusausgabe in einen übergeordneten Merkmalsraumbericht umwandeln, der angibt, wie häufig unterschiedliche Merkmalwerte mit einem Fehlschlag assoziiert waren. Der übergeordnete Merkmalsraumbericht kann verwendet werden, um eine bessere Trennung zwischen mehreren Klassen zu ermitteln.
-
Die SVM mit linearem Kern kann auch einen Vektor von Gewichtungen erlangen, wobei jede Gewichtung mit einem spezifischen Merkmal assoziiert ist. Anhand der Größe der Gewichtungen kann die Wichtigkeit unterschiedlicher Merkmale für den Erfolg des Algorithmus ermittelt werden. Beispielsweise können Gewichtungen verwendet werden, um die Wichtigkeit von Wetter, Bodenoberfläche, Lichtverhältnissen usw. auf den Erfolg eines Algorithmus für autonome Fahrzeuge oder eines Merkmals zu ermitteln. Ein autonomes Merkmal kann ein beliebiges Merkmal für L2-L5-Automatisierung beinhalten, beispielsweise automatisierten Spurwechsel, andere Autobahnfahrmerkmale (bis hin zur vollständigen Autonomie) usw. Die Klassifikationseinrichtung für maschinelles Lernen kann unter Verwendung der Gewichtungen einen Merkmalswichtigkeitsbericht erzeugen.
-
Der übergeordneten Merkmalsraumbericht kann zum Erlangen eines Merkmalswichtigkeitsberichts (z. B. Vektor von Gewichtungen) verwendet werden. Eine Zusammenfassung des übergeordneten Merkmalsraumberichts und/oder des Merkmalsberichts kann auf einer Visualisierungskonsole angezeigt werden, um Merkmale anzugeben und um anzugeben, wie die Merkmale zum Erfolg/Fehlschlag eines Algorithmus beitragen. Die Visualisierungskonsole kann einem Ingenieur Erkenntnisse liefern, um weitere Prüfentscheidungen zu treffen.
-
In einem Aspekt hält der Ingenieur den Testprozess an und modifiziert den Algorithmus, um das Verhalten zu verbessern. In einem anderen Aspekt führt der Ingenieur eine weitere Iteration der Prüfung aus. Der Ingenieur kann wichtigere Merkmalwerte auf Grundlage des übergeordneten Merkmalsraumberichts und Merkmalswichtigkeitsberichts auswählen. Beispielsweise kann der Ingenieur die drei Merkmale mit der höchsten Größe der Gewichtungen auswählen. Der Ingenieur kann die drei Merkmale zum Automatisieren des DOE-Prozesses verwenden. Beispielsweise kann die Analyse Bodentypen ermitteln, die zu einer reduzierten Wahrscheinlichkeit eines Zusammenstoßes zwischen einem Ego-Fahrzeug und anderen Simulationsakteuren beim Testen eines Zusammenstoßalgorithmus führen. Die Trends können zum Entwerfen von Abfragen für die nächste Iteration verwendet werden.
-
Der iterative Ansatz reduziert somit den manuellen Arbeitsaufwand für einen Ingenieur zum Analysieren des Alogrithmusverhaltens wesentlich. Die automatische Ermittlung von Merkmalen und Merkmalwerten mit stärkerer Auswirkung auf Simulations- und Praxisergebnisse reduziert den Rechen- und Zeitaufwand für die Ausführung von Batch-Prüfungen. Nach jeder Iteration kann der Ingenieur Erkenntnisse aus dem übergeordneten Merkmalsraumbericht und Merkmalswichtigkeitsbericht (z. B. Vektor von Gewichtungen) gewinnen, um die Priorisierung der Verbesserungsanstrengungen der Algorithmen zu verbessern.
-
Außerdem wird die Produktivität für (z. B. umfangreiche) Algorithmustests verbessert. Durch das Automatisieren des Prozesses der Szenarioabfrage und -auswahl für nachfolgende Iterationen können sich Tests stärker auf Szenarien konzentrieren, die zu einem Fehlschlag des Algorithmus führen, anstatt eine zufällige Auswahl zu treffen.
-
1 stellt ein beispielhaftes Blockschaubild einer Rechenvorrichtung 100 dar. Die Rechenvorrichtung 100 kann zum Durchführen verschiedener Abläufe verwendet werden, wie etwa den hierin erörterten. Die Rechenvorrichtung 100 kann als ein Server, ein Client oder eine beliebige andere Recheneinheit dienen. Die Rechenvorrichtung 100 kann verschiedene Kommunikations- und Datenübertragungsfunktionen durchführen, wie hier beschrieben, und kann ein oder mehrere Anwendungsprogramme ausführen, wie etwa die hierin beschriebenen Anwendungsprogramme. Bei der Rechenvorrichtung 100 kann es sich um eine beliebige einer breiten Spanne von Rechenvorrichtungen handeln, wie etwa ein Mobiltelefon oder eine andere mobile Vorrichtung, ein Desktop-Computer, ein Notebook-Computer, einen Server-Computer, ein Handcomputer, ein Tablet-Computer und dergleichen.
-
Die Rechenvorrichtung 100 beinhaltet einen oder mehrere Prozessoren 102, eine oder mehrere Vorrichtungen 104, eine oder mehrere Schnittstellen 106, eine oder mehrere Massenspeichervorrichtungen 108, eine oder mehrere Eingabe/Ausgabe(Input/Output -I/O)-Vorrichtungen 110 und eine Anzeigevorrichtung 130, die alle an einen Bus 112 gekoppelt sind. Der oder die Prozessoren 102 beinhalten einen oder mehrere Prozessoren oder eine oder mehrere Steuerungen, die Anweisungen ausführen, die in einer oder mehreren Speichervorrichtungen 104 und/oder Massenspeichervorrichtungen 108 gespeichert sind. Der oder die Prozessoren 102 können auch verschiedene Arten von Computerspeichermedien wie etwa Cache-Speicher beinhalten.
-
Die eine oder die mehreren Speichervorrichtungen 104 beinhalten verschiedene Computerspeichermedien wie etwa flüchtigen Speicher (z. B. Direktzugriffsspeicher (random access memory - RAM) 114) und/oder nicht flüchtigen Speicher (z. B. Nurlesespeicher (readonly memory - ROM) 116). Die eine oder die mehreren Speichervorrichtungen 104 können auch wieder beschreibbaren ROM wie etwa Flash-Speicher beinhalten.
-
Die eine oder die mehreren Massenspeichervorrichtungen 108 beinhalten verschiedene Computerspeichermedien wie etwa Magnetband, optische Disks, Festkörperspeicher (z. B. Flash-Speicher) und so weiter. Wie in 1 dargestellt, ist eine bestimmte Massenspeichervorrichtung ein Festplattenlaufwerk 124. In der oder den Massenspeichervorrichtungen 108 können verschiedene Laufwerke enthalten sein, um das Lesen oder Beschreiben der verschiedenen computerlesbaren Medien zu ermöglichen. Die eine oder die mehreren Massenspeichervorrichtungen 108 beinhalten Wechselmedien 126 und/oder nicht wechselbare Medien.
-
Die eine oder die mehreren I/O-Vorrichtungen 110 beinhalten verschiedene Vorrichtungen, die es ermöglichen, dass Daten und/oder Informationen in die Rechenvorrichtung 100 eingegeben oder daraus abgerufen werden. Zu beispielhaften I/O-Vorrichtungen 110 gehören Cursor-Steuervorrichtungen, Tastaturen, Tastenfelder, Strichcodescanner, Mikrofone, Monitore oder andere Anzeigevorrichtungen, Lautsprecher, Drucker, Netzwerkschnittstellenkarten, Modems, Kameras, Linsen, Radare, CCDs oder andere Bildaufnahmevorrichtungen und dergleichen.
-
Die Anzeigevorrichtung 130 beinhaltet eine beliebige Art von Vorrichtung, die Informationen an einen oder mehrere Benutzer der Rechenvorrichtung 100 anzeigen kann. Beispiele der Anzeigevorrichtung 130 beinhalten einen Monitor, ein Display, eine Videoprojektionsvorrichtung und dergleichen.
-
Die eine oder die mehreren Schnittstellen 106 beinhalten verschiedene Schnittstellen, mit denen die Rechenvorrichtung 100 mit anderen Systemen, Vorrichtungen oder Rechenumgebungen sowie Menschen interagieren kann. Beispielhafte Schnittstellen 106 können eine beliebige Anzahl von Netzschnittstellen 120, etwa Schnittstellen zu persönlichen Netzen (personal area networks - PANs), lokalen Netzen (local area networks - LANs), Weitverkehrsnetzen (wide area networks - WANs), drahtlosen Netzen (z. B. Nahbereichskommunikations(near field communication - NFC)-, Bluetooth-, Wi-Fi- usw. Netzen) und dem Internet beinhalten. Andere Schnittstellen beinhalten eine Benutzerschnittstelle 118 und eine Peripheriegeräteschnittstelle 122.
-
Der Bus 112 ermöglicht es dem oder den Prozessoren 102, der oder den Speichervorrichtungen 104, der oder den Schnittstellen 106, der oder den Massenspeichervorrichtungen 108 und der oder den I/O-Vorrichtungen 110, miteinander sowie mit anderen Vorrichtungen oder Komponenten zu kommunizieren, die an den Bus 112 gekoppelt sind. Der Bus 112 stellt eine oder mehrere von mehreren Arten von Busstrukturen dar, wie etwa einen Systembus, PCI-Bus, IEEE-1394-Bus, USB-Bus und so weiter.
-
In dieser Beschreibung und den nachfolgenden Ansprüchen kann ein autonomes Fahrzeug ein Bodenfahrzeug sein, beispielsweise ein Pkw, ein Transporter, ein Pickup usw.
-
2 stellt eine beispielhafte Computerarchitektur 200 zum Beurteilen von Algorithmen für autonome Fahrzeuge dar. Wie dargestellt, beinhaltet die Computerarchitektur 200 eine Datenbank 201, ein Testfallbeschreibungsmodul 202, einen Ausführungselementgenerator 203, einen Testsimulator 241, eine Klassifikationseinrichtung 206 für maschinelles Lernen, eine Konsole 232 und einen Ingenieur 207. Der Testsimulator 241 beinhaltet ferner Algorithmen 204 für autonome Fahrzeuge 204 und eine Überwachungseinrichtung 231.
-
Die Datenbank 201 kann einen umfangreichen (und möglicherweise einen erschöpfenden) Satz Szenarien 211 (z. B. 211A, 211B, 211C, 211D usw.) zum Prüfen des Algorithmus 204 für autonome Fahrzeuge beinhalten. Jedes Szenario definiert einen anderen Satz Bedingungen, unter denen das Verhalten eines Algorithmus 204 für autonome Fahrzeuge geprüft werden soll. Jedes Szenario kann auch eine skriptgeführte dynamische Bewegung unterschiedlicher Akteure in einer Szene und ihre Eigenschaften definieren.
-
Die Bedingungen werden durch Auswählen unterschiedlicher Kombinationen von Werten für die Merkmale 212, 213 usw. festgelegt. Beispielsweise beinhaltet Szenario 211A jeweils Werte 212A, 213A usw. für die Merkmale 212, 213 usw. Szenario 211B beinhaltet jeweils Werte 212B, 213B usw. für die Merkmale 212, 213 usw. Szenario 211C beinhaltet jeweils Werte 212C, 213C usw. für die Merkmale 212, 213 usw. Szenario 211D beinhaltet jeweils Werte 212D, 213D usw. für die Merkmale 212, 213 usw. Werte können statische Werte für Umgebungsmerkmale sowie Skripts für dynamische Bewegung beinhalten. Somit kann die Datenbank 201 eine Kombination aus statischen Werten und skriptgeführten dynamischen Bewegungen speichern.
-
Jedes Merkmal stellt eine Variable dar, beispielsweise Wetter, Bodenoberfläche, Lichtverhältnisse, Sonneneinfallswinkel usw., die zahlreiche unterschiedliche Werte aufweisen können. Wetterwerte können beispielsweise Regen, Schnee, Hagel, Sonne usw. beinhalten. Bodenoberflächenwerte können Gras, Beton, Asphalt, Kies, Basis usw. beinhalten. Jedes Merkmal kann mit zwei oder mehr Werten und bis zu einem Dutzend oder mehr Werten assoziiert sein. In einem Aspekt beinhaltet die Datenbank 201 ein Szenario für jede mögliche unterschiedliche Kombination von Merkmalwerten. Somit kann die Datenbank 201 potenziell Millionen von unterschiedlichen Szenarien zum Prüfen des Algorithmus 204 für autonome Fahrzeuge definieren.
-
Das Testfallbeschreibungsmodul 202 ist dazu konfiguriert, in der Datenbank 201 definierte Umgebungen in Testfallbeschreibungen umzuwandeln. In einem Aspekt erstellt das Testfallbeschreibungsmodul 202 eine Szenariobeschreibungsdatei (z. B. eine YAML-Datei, eine JSON-Datei, eine txt-Datei, eine csv-Datei usw.) für jedes Szenario. Der Ausführungselementgenerator 203 ist dazu konfiguriert, eine Beschreibungsdatei in ein mit dem Testsimulator kompatibles ausführbares Szenario umzuwandeln. In einem Aspekt wird der Szenariogenerator 203 verwendet, um mittels einer Szenariobeschreibungsdatei wie etwa einer YAML-Datei eine Simulation in einer virtuellen Umgebung auszuführen und Sensordaten wie etwa ein Video zu erzeugen. Es können jedoch beliebige Mechanismen verwendet werden, die Einzelheiten einer Simulation in einer Textdatei/Datenbank/einem Protokoll erfassen und die Einzelheiten der Simulation zum Erzeugen von Simulationsdaten verwenden. Simulationsdatenkönnen Videodaten von einer Kamera oder IR-Kamera, Punktwolkendaten von Lidars, Erkennungen von Radar, Audio oder beliebige andere Arten simulierter Sensordaten beinhalten. Simulationsdaten können auch Ground Truth beinhalten.
-
Der Testsimulator 241 ist dazu konfiguriert, kompatible Ausführungsszenarien auszuführen, um das Verhalten des Algorithmus 204 für autonome Fahrzeuge in unterschiedlichen physischen Umgebungen zu simulieren. In einem Aspekt ist der Testsimulator 241 eine Computerspiel-Engine. Die auf der Computerspiel-Engine basierte Simulation erzeugt Sensordaten, wie etwa Video, die an einen Algorithmus 204 für autonome Fahrzeuge zur Verarbeitung weitergeleitet werden. Alternativ und/oder in Kombination damit kann der Testsimulator 241 Praxissensordaten verwenden, um das Verhalten des Algorithmus 204 für autonome Fahrzeuge zu simulieren. Die Überwachungseinrichtung 231 (z.B. eine Komponente des Testsimulators 241) ist dazu konfiguriert, das Resultat des Ausführens des Algorithmus 204 für autonome Fahrzeuge für jedes kompatible ausführbare Szenario zu überwachen. Die Überwachungseinrichtung 231 kann eine Tabelle ausgeben, die jeden Testfall zusammen mit einer Angabe beinhaltet, ob der Testfall bestanden hat oder fehlgeschlagen ist.
-
Die Klassifikationseinrichtung 206 für maschinelles Lernen ist dazu konfiguriert, fehlgeschlagenes simuliertes Verhalten für die Vielzahl von Merkmalen zu klassifizieren. In einem Aspekt ist die Klassifikationseinrichtung 206 für maschinelles Lernen ein SVM mit einem linearen Kern. Andere Klassifikationseinrichtungen für maschinelles Lernen, beispielsweise lineare Regression, logistische Regression, naiver Bayes, Entscheidungsbäume usw., können ebenfalls verwendet werden. Statistiken zum Alogrithmusverhalten können pro Merkmal angeben, wie oft mit jedem Merkmalwert ein Fehlschlag des Algorithmus 204 für autonome Fahrzeuge assoziiert war, pro Merkmal angeben, wie oft ein Wert für ein nicht binäres Merkmal aufgetreten ist, andere Metriken angeben, die dazu dienen, die Werte von Merkmalen in einer Simulation nachzuvollziehen. Die Klassifikationseinrichtung 206 für maschinelles Lernen kann auch eine Wichtigkeit, beispielsweise eine Gewichtung, für jedes Merkmal bestimmen. Die bestimmte Wichtigkeit pro Merkmal gibt die Auswirkung des Merkmals auf den Algorithmus 204 für autonome Fahrzeuge an. Die Klassifikationseinrichtung 206 für maschinelles Lernen kann einen Merkmalswichtigkeitsbericht erzeugen, der die Wichtigkeit jedes Merkmals darstellt.
-
Die Klassifikationseinrichtung 206 für maschinelles Lernen kann den übergeordneten Merkmalsraumbericht und die bestimmten Merkmalsgewichtungen auf der Konsole 232 anzeigen.
-
Der Ingenieur 207 kann den übergeordneten Merkmalsraumbericht und den Merkmalswichtigkeitsbericht an der Konsole 232 anschauen. Der Ingenieur 207 kann eine Eingabe tätigen, um den Algorithmus 204 für autonome Fahrzeuge zu modifizieren, und/oder eine Eingabe zum Abfragen der Datenbank 201 tätigen, um weitere simulierte Verhaltensweisen des Algorithmus 204 für autonome Fahrzeuge anzufordern. Angeforderte weitere Verhaltensweisen des Algorithmus 204 für autonome Fahrzeuge können auf Merkmale und Merkmalwerte abzielen, die zu Fehlverhalten des Algorithmus 204 für autonome Fahrzeuge beigetragen haben.
-
3 stellt ein Ablaufdiagramm eines beispielhaften Verfahrens 300 zum Beurteilen eines Algorithmus für autonome Fahrzeuge dar. Das Verfahren 300 wird in Bezug auf die Komponenten und Daten in der Computerarchitektur 200 beschrieben. In einem Aspekt ist der Prozess des Auswählens nachfolgender Abfragen unter Verwendung einer vordefinierten Metrik automatisiert, die die Merkmalwerte ermittelt, die am häufigsten zu einem Fehlschlag eines Algorithmus für autonome Fahrzeuge führen.
-
Das Verfahren 300 beinhaltet das Zugreifen auf eine Vielzahl von simulierten Umgebungen aus einer Szenariodatenbank, wobei jede simulierte Umgebung einen Wert für jedes einer Vielzahl von Merkmalen beinhaltet (301). Beispielsweise kann ein automatisiertes System oder ein Ingenieur 207 eine zufällige Abfrage 221 an die Datenbank 201 senden. In Reaktion auf die zufällige Abfrage 221 kann die Datenbank 201 Einstellungen 222 ausgeben. Jede Einstellung 222 beinhaltet einen Wert für Merkmal 212, einen Wert für Merkmal 213 usw. In einem anderen Aspekt kann der Ingenieur 207 bestimmen, welche simulierte Umgebung für eine erste Iteration verwendet werden soll.
-
Das Verfahren 300 beinhaltet das Erzeugen einer Beschreibungsdatei für jede einer Vielzahl simulierter Umgebungen (302). Beispielsweise kann das Testfallbeschreibungsmodul 202 Testfallbeschreibungen 223 erzeugen. Die Testfallbeschreibungen 223 können einen Testfall für jede Umgebung in den Einstellungen 222 beinhalten. Die Testfallbeschreibungen 223 können YAML-Dateien oder in einer anderen Beschreibungssprache formatiert sein
-
Das Verfahren 300 beinhaltet das Umwandeln jeder Beschreibungsdatei in ein mit einem Testsimulator kompatibles Ausführungselement (303). Beispielsweise kann der Ausführungselementgenerator 203 die Testfallbeschreibungen 223 in Ausführungselemente 224 umwandeln, die mit dem Testsimulator 241 kompatibel sind. Die Ausführungselemente 224 können ein Ausführungselement für jede Testfallbeschreibung in den Testfallbeschreibungen 223 beinhalten. Somit stellt jedes Ausführungselement 224 im Wesentlichen die Ausführung des Algorithmus 204 für autonome Fahrzeuge unter Bedingungen dar, die in einem Szenario aus der Datenbank 201 definiert sind, um Fahrzeugaktivität zu simulieren. Die Ausführungselemente 224 können verwendet werden, um Sensor- und Protokollierungsdaten zum Verhalten des Algorithmus für autonome Fahrzeuge zu erzeugen. Beispielsweise kann das Protokollieren von Kameradaten Videodaten ergeben. Es können jedoch auch andere Arten von Sensoren verwendet werden.
-
Das Verfahren 300 beinhaltet das Ausführen jedes mit einem Testsimulator kompatiblen Ausführungselements in einem Testsimulator, um das Verhalten eines Algorithmus für autonome Fahrzeuge zu simulieren (304). Beispielsweise kann der Testsimulator 241 jedes Ausführungselement 224 zum Simulieren des Algorithmus 204 für autonome Fahrzeuge ausführen, der eine Fahrzeugaktivität ausführt. Jedes Ausführungselement 224 stellt das Verhalten des Algorithmus 204 für autonome Fahrzeuge in einer unterschiedlich definierten physischen Umgebung dar (auf Grundlage der Wert für die Merkmale 212, 213 usw.).
-
Die Überwachungseinrichtung 231 kann das Verhalten des Algorithmus 204 für autonome Fahrzeuge während der Ausführung jedes Ausführungselements 224 überwachen. Die Überwachungseinrichtung 231 kann aus dem überwachten Verhalten eine Tabelle 226 formulieren. Die Tabelle 226 beinhaltet jedes Szenario (z. B. 211A, 211E, 211F, 211G) und entsprechende aus der Datenbank 201 abgefragte Merkmalwerte. Beispielsweise beinhaltet das Szenario 211A jeweils die Werte 212A, 213A usw. für die Merkmale 212, 213 usw. Szenario 21 IE beinhaltet jeweils Werte 212E, 213E usw. für die Merkmale 212, 213 usw. Szenario 211F beinhaltet jeweils Werte 212F, 213F usw. für die Merkmale 212, 213 usw. Szenario 211G beinhaltet jeweils Werte 212G, 213G usw. für die Merkmale 212, 213 usw. Jedes Szenario beinhaltet auch eine Verhaltensangabe 214, die das Verhalten des Algorithmus 204 für autonome Fahrzeuge angibt. Das Szenarioverhalten kann dadurch definiert sein, inwiefern die erzeugten Daten die Zielsetzungen und Kriterien des Algorithmus 204 für autonome Fahrzeuge erfüllen. In einem Beispiel werden ein oder mehrere Zielsetzungen und Kriterien in der von dem Szenario simulierten physischen Umgebung als bestanden oder fehlgeschlagen angegeben.
-
Das Verfahren 300 beinhaltet das Klassifizieren fehlgeschlagener simulierter Verhaltensweisen für die Vielzahl von Merkmalen (305). Beispielsweise kann die Klassifikationseinrichtung 206 für maschinelles Lernen fehlgeschlagenes Verhalten automatisch klassifizieren (z. B. 211E, 211F usw.). Die Klassifikationseinrichtung 206 für maschinelles Lernen kann den übergeordneten Merkmalsraumbericht 227 erzeugen. Der übergeordnete Merkmalsraumbericht 227 kann pro Merkmal angeben, wie oft Werte des Merkmals mit einem Fehlverhalten assoziiert waren. Für das Merkmal 212 beispielsweise kann der übergeordnete Merkmalsraumbericht 227 angeben, wie oft jeder der Werte 212A, 212B, 212C, 212D usw. mit einem Fehlverhalten des Algorithmus 204 für autonome Fahrzeuge assoziiert war.
-
Das Verfahren 300 beinhaltet das Bestimmen einer Wichtigkeit eines jeden der Vielzahl von Merkmalen (306). Beispielsweise kann die Klassifikationseinrichtung 206 für maschinelles Lernen automatisch die Wichtigkeit des Merkmals 212, die Wichtigkeit des Merkmals 213 usw. bestimmten. Pro Merkmal kann die Klassifikationseinrichtung 206 für maschinelles Lernen eine bestimmte Wichtigkeit in den Merkmalswichtigkeitsbericht 228 aufnehmen. In einem Aspekt berechnet die maschinelle Klassifikationseinrichtung 206 eine Gewichtung für jedes Merkmal, die die Wichtigkeit des Merkmals angibt.
-
Somit kann die Klassifikationseinrichtung 206 für maschinelles Lernen 206 automatisch Berichte erzeugen, die die Größe von Merkmalwerten angeben, die zu fehlgeschlagenen Szenarien beitragen, und eine Merkmalswichtigkeit über fehlgeschlagene Szenarien hinweg angeben.
-
Das Verfahren 300 beinhaltet Anzeigen der klassifizierten simulierten Fehlverhaltensweisen und der bestimmten Wichtigkeit für jedes Merkmal an einer Konsole (307). Beispielsweise kann die Klassifikationseinrichtung 206 für maschinelles Lernen den übergeordneten Bericht 227 und den Merkmalswichtigkeitsbericht 228 an der Konsole 232 anzeigen. Der Ingenieur 207 kann den übergeordneten Bericht 227 und den Merkmalswichtigkeitsbericht 228 an der Konsole 232 anschauen.
-
Das Verfahren 300 beinhaltet das Empfangen einer Eingabe in Bezug auf die simulierten Fehlverhaltensweisen, die eins oder mehrere der Folgenden beinhaltet: Modifikationen am Algorithmus für autonome Fahrzeuge oder eine Szenariodatenbankabfrage, die weitere simulierte Verhaltensweisen des Algorithmus für autonome Fahrzeuge anfordert und die auf Merkmale abzielt, die zu simulierten Fehlverhaltensweisen beitragen (308). Beispielsweise kann der Ingenieur 207 Entscheidungen in Bezug auf simulierte Fehlverhaltensweisen des Algorithmus 204 für autonome Fahrzeuge auf Grundlage des Inhalts des übergeordneten Berichts 227 und des Inhalts des Merkmalswichtigkeitsberichts 228 treffen. In einem anderen Aspekt verwendet der Ingenieur 207 einen automatisierten Prozess in Bezug auf die simulierten Fehlverhaltensweisen, wie etwa das Auswählen nachfolgender Testfälle. In einem weiteren Aspekt werden nachfolgende Testfälle unter Verwendung einer Metrik ausgewählt, wobei der Auswählende den Merkmalwert ermittelt, der am häufigsten zu einem Fehlschlag des Algorithmus führt.
-
In einem Aspekt gibt der Ingenieur 207 eine Algorithmusaktualisierung 229 ein, um den Algorithmus 204 für autonome Fahrzeuge zu modifizieren. Der Testsimulator 241 kann die Algorithmusaktualisierung 229 empfangen und die Algorithmusaktualisierung 229 auf den Algorithmus 204 für autonome Fahrzeuge anwenden. In einem anderen Aspekt gibt der Ingenieur 207 eine Abfrage 233 in die Datenbank 201 ein. Die Datenbank 201 kann die Abfrage 233 empfangen und in Reaktion auf die Abfrage 233 weitere Umgebungen ermitteln. Somit kann der Ingenieur 207 Szenarien verfeinern, um weitere Informationen zu Merkmalswertekombinationen zu erlangen, die zu fehlgeschlagenen Szenarien beitragen.
-
4A und 4B stellen einen beispielhaften Datenfluss 400 zum Beurteilen eines Algorithmus für autonome Fahrzeuge dar. Alle möglichen Kombinationen simulierter Umgebungen werden in eine Datenbank eingegeben (401). Es werden Einträge aus der Datenbank abgefragt (402). Abfrageergebnisse werden zum Erzeugen einer YAML-Datei für jedes Szenario verwendet (403). YAML-Dateien werden in Ausführungselemente eingegeben, die Sensordaten (z. B. ein Video) erzeugen (404).
-
Die Videos mit YAML-Dateien und Ausführungselementen werden in einen Algorithmus für autonome Fahrzeuge eingespeist (405). Für jedes Szenario wird Erfolg/Fehlschlag definiert (406). Ein Satz Merkmale zusammen mit dem Erfolg/Fehlschlag des Algorithmus wird weitergeleitet, um eine Klassifikationseinrichtung für maschinelles Lernen, wie etwa eine SVM mit einem linearen Kern zu trainieren (407). Es wird ein Bericht für Fehlschlagsfälle über alle Merkmale hinweg nach Merkmalwert erzeugt (408). Die Zahlen in 408 geben an, wie oft ein Merkmalwert mit einem Fehlverhalten des Algorithmus für autonome Fahrzeuge assoziiert war. Mithilfe eines Vektors von Gewichtungen wird die Wichtigkeit der Merkmale bestimmt (409).
-
Ein Ingenieur kann den Test anhalten und den Algorithmus für autonome Fahrzeuge modifizieren (410) oder kann den Test mit einer weiteren Iteration des Datenflusses fortsetzen (411). Der Ingenieur kann mittels DOE(Design of Experiment)-Trends Abfragen erzeugen (412).
-
Entsprechend beinhalten Aspekte der Erfindung Testen von autonomen Algorithmen an simulierten Daten. Das Testen kann überwachte Techniken für maschinelles Lernen wie etwa Stützvektormaschinen (SVM) benutzen, um Szenariomerkmale zu ermitteln, die mit höchster Wahrscheinlichkeit das Alogrithmusverhalten beeinflussen. Erkenntnisse können konsolidiert und die Erzeugung relevanter Testfälle kann über mehrere Iterationen automatisiert werden, um fehleranfällige Szenarien hervorzuheben.
-
Die anfänglichen Szenarien und Erfolg/Fehlschlag-Kennzeichnungen werden zu einem neuen Datensatz verkettet. Die neue Datenbank wird zum Trainieren einer überwachten Klassifikationseinrichtung für maschinelles Lernen wie etwa einer SVM verwendet. Ein linearer Kern kann verwendet werden, um einen Vektor von Gewichtungen zu erlangen, wobei jede Gewichtung mit einem spezifischen Merkmal assoziiert ist. Die Größe dieser Gewichtungen identifiziert die Wichtigkeit der unterschiedlichen Merkmale. Es wird ein Bericht auf Grundlage des anfänglichen Abfrageszenarios erzeugt, der die Muster und Trends für unterschiedliche Merkmale und ihre Werte in den Simulationsergebnissen zusammenfasst. Auf Grundlage des Berichts wird der autonome Algorithmus für besseres Verhalten modifiziert, oder es werden Abfragen für die nächste Testiteration entworfen, die sich auf fehleranfällige Szenarien konzentrieren.
-
In einem Aspekt sind ein oder mehrere Prozessoren dazu konfiguriert, Anweisungen (z. B. von einem Computer lesbare Anweisungen, von einem Computer ausführbare Anweisungen usw.) auszuführen, um beliebige von einer Vielzahl von beschriebenen Vorgängen durchzuführen. Der eine oder die mehreren Prozessoren können auf Informationen aus Systemspeicher zugreifen und/oder Informationen im Systemspeicher speichern. Der eine oder die mehreren Prozessoren können Informationen zwischen unterschiedlichen Formaten umwandeln, wie beispielsweise Merkmale, Werte, Szenarien, Umgebungen, Testfallbeschreibungen, Ausführungselemente, Tabellen, übergeordnete Merkmalsraumberichte, Merkmalswichtigkeitsberichte, Algorithmusaktualisierungen, Abfragen usw.
-
Der Systemspeicher kann an den einen oder die mehreren Prozessoren gekoppelt sein und kann Anweisungen (z. B. von einem Computer lesbare Anweisungen, von einem Computer ausführbare Anweisungen usw.) speichern, die von dem einen oder den mehreren Prozessoren ausgeführt werden. Der Systemspeicher kann auch dazu konfiguriert sein, beliebige einer Vielzahl anderer Arten von Daten zu speichern, die von den beschriebenen Komponenten erzeugt werden, beispielsweise Merkmale, Werte, Szenarien, Umgebungen, Testfallbeschreibungen, Ausführungselemente, Tabellen, übergeordnete Merkmalsraumberichte, Merkmalswichtigkeitsberichte, Algorithmusaktualisierungen, Abfragen usw.
-
In der vorstehenden Offenbarung wurde auf die begleitenden Zeichnungen Bezug genommen, die einen Teil davon bilden und in denen zur Veranschaulichung spezifische Implementierungen gezeigt sind, in denen die Offenbarung umgesetzt werden kann. Es versteht sich, dass andere Umsetzungen benutzt werden können und strukturelle Änderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Die Bezugnahme auf „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ usw. in der Beschreibung gibt an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft beinhalten kann, aber nicht jede Ausführungsform muss zwingend das bestimmte Merkmal, die bestimmte Struktur oder Eigenschaft beinhalten. Auch beziehen sich diese Ausdrücke nicht zwingend auf dieselbe Ausführungsform. Wenn ferner ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird davon ausgegangen, dass es innerhalb des Wissensumfangs eines Fachmanns liegt, dieses Merkmal, diese Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen zu erzielen, ungeachtet dessen, ob dies ausdrücklich beschrieben ist oder nicht.
-
Umsetzungen der hierin offenbarten Systeme, Vorrichtungen und Verfahren können einen speziellen oder universellen Computer benutzen, der Computerhardware beinhaltet, wie etwa einen oder mehrere Prozessoren und Systemspeicher, wie hierin erörtert. Umsetzungen innerhalb des Umfangs der vorliegenden Offenbarung können auch physische und andere computerlesbare Medien zum Übertragen oder Speichern von von einem Computer ausführbaren Anweisungen und/oder Datenstrukturen beinhalten. Diese computerlesbaren Medien können beliebige verfügbare Medien sein, auf die ein universelles oder spezielles Computersystem zugreifen können. Von einem Computer lesbare Medien, die durch einen Computer ausführbare Anweisungen speichern, sind Computerspeichermedien (-vorrichtungen). Von einem Computer lesbare Medien, die durch einen Computer ausführbare Anweisungen übertragen, sind Übertragungsmedien. Als Beispiel und nicht einschränkend können Umsetzungen der Offenbarung daher wenigstens zwei voneinander verschiedene Arten von einem Computer lesbarer Medien umfassen: Computerspeichermedien (-vorrichtungen) und Übertragungsmedien.
-
Computerspeichermedien (-vorrichtungen) beinhalten RAM, ROM, EEPROM, CD-ROM, Festkörperlaufwerke (solid state drives - SSD) (z. B. auf Grundlage von RAM), Flash-Speicher, Phasenwechselspeicher (phase-change memory - PCM), andere Arten von Speicher, andere optische Disk- oder andere Magnetdiskspeichervorrichtungen, oder ein beliebiges anderes Medium, das zum Speichern gewünschter Programmcodemittel in der Form von durch einen Computer ausführbaren Anweisungen verwendet werden kann, auf die ein universeller oder spezieller Computer zugreifen kann.
-
Eine Implementierung der hierin offenbarten Vorrichtungen, Systeme und Verfahren kann über ein Computernetz kommunizieren. Ein „Netz“ ist als eine oder mehrere Datenverbindungen definiert, die den Transport von elektronischen Daten zwischen Computersystemen und/oder - modulen und/oder anderen elektronischen Vorrichtungen ermöglichen. Wenn Informationen über ein Netz oder eine andere Kommunikationsverbindung (sei diese festverdrahtet, drahtlos oder eine Kombination von festverdrahtet und drahtlos) an einen Computer übertragen oder bereitgestellt werden, betrachtet der Computer die Verbindung faktisch als ein Übertragungsmedium. Übertragungsmedien können ein Netz und/oder Datenverbindungen beinhalten, die dazu verwendet werden können, gewünschte Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen zu transportieren, und auf die durch einen Universal- oder Spezialcomputer zugegriffen werden kann. Kombinationen der Vorstehenden sollen ebenfalls im Umfang computerlesbarer Medien eingeschlossen sein.
-
Von einem Computer ausfü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 von einem Computer ausfü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 sind vielmehr als beispielhafte Formen der Umsetzung der Patentansprüche offenbart.
-
Der Fachmann wird zu schätzen wissen, dass die Offenbarung in Network-Computing-Umgebungen mit vielen Arten von Computersystemkonfigurationen angewendet werden kann, einschließlich eines Armaturenbrett- oder anderen Fahrzeugcomputers, PCs, Desktop-Computern, Laptops, Nachrichtenprozessoren, Handgeräten, Multiprozessorsystemen, Unterhaltungselektronik auf Mikroprozessorbasis oder programmierbarer Unterhaltungselektronik, Netzwerk-PCs, Minicomputern, Mainframe-Computern, Mobiltelefonen, PDAs, Tablets, Pagern, Routern, Switches, verschiedener Speichergeräte und dergleichen. Die Offenbarung kann auch in Umgebungen mit verteilten Systemen angewendet werden, in denen sowohl lokale Computersysteme als auch entfernte Computersysteme, die durch ein Netz (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 entfernten Speichervorrichtungen befinden.
-
Ferner können die hier beschriebenen Funktionen gegebenenfalls in einem oder mehreren der Folgenden ausgeführt werden: Hardware, Software, Firmware, digitalen Komponenten oder analogen Komponenten. Beispielsweise können eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASIC) dazu programmiert sein, die hierin beschriebenen Systeme und Verfahrensweisen auszuführen. Einige Begriffe werden in der gesamten Beschreibung und den Ansprüchen verwendet, um auf bestimmte Systemkomponenten Bezug zu nehmen. Der Fachmann wird erkennen, 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 sei angemerkt, dass die vorstehend erörterten Sensorausführungsformen Computerhardware, -software, -firmware oder eine beliebige Kombination davon umfassen können, um zumindest einen Teil ihrer Funktionen durchzuführen. Ein Sensor kann zum Beispiel einen 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 hier zu Veranschaulichungszwecken bereitgestellt und nicht als einschränkend gedacht. Ausführungsformen der vorliegenden Offenbarung können in weiteren Arten von Vorrichtungen umgesetzt werden, wie es dem Fachmann auf den relevanten Gebieten bekannt ist.
-
Zumindest einige Ausführungsformen der Offenbarung richten sich an Computerprogrammprodukte, 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.
-
Obgleich 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 Fachmann ist ersichtlich, dass verschiedene Änderungen an Form und Detail daran vorgenommen werden können, ohne vom Wesen und Umfang der Offenbarung abzuweichen. Daher sollen die Breite und der Umfang der vorliegenden Offenbarung durch keine der vorstehend beschriebenen beispielhaften Ausführungsformen eingeschränkt werden, sondern sollen ausschließlich in Übereinstimmung mit den folgenden Patentansprüchen und ihren Äquivalenten definiert sein. Die vorstehende Beschreibung wurde zur Veranschaulichung und Beschreibung dargelegt. Sie erhebt keinerlei Anspruch auf Vollständigkeit und sie nicht dazu gedacht, die Offenbarung auf die konkrete offenbarte Form zu beschränken. In Anbetracht der vorstehenden Lehren sind viele Modifikationen, Abwandlungen und Kombinationen möglich. Ferner ist anzumerken, dass beliebige oder alle der vorstehend genannten alternativen Implementierungen in einer beliebigen gewünschten Kombination verwendet werden können, um zusätzliche Hybridimplementierungen der Offenbarung zu bilden.
-
Gemäß der vorliegenden Erfindung beinhaltet ein Simulationsdaten-Pipeline-Verfahren für jedes einer Vielzahl von Szenarien, Ausführen eines Algorithmus für autonome Fahrzeuge unter Bedingungen, die in dem Szenario definiert sind, um eine Fahrzeugaktivität zu simulieren; automatisches Klassifizieren fehlgeschlagener Szenarien pro Merkmal pro Merkmalwert; automatisches Erzeugen von Berichten, die eine Größe von Merkmalwerten, die zu fehlgeschlagenen Szenarien beitragen, und Merkmalswichtigkeit über fehlgeschlagene Szenarien hinweg angeben; und Verfeinern von Szenarien, um weitere Informationen zu Merkmalwertkombinationen zu erlangen, die zu fehlgeschlagenen Szenarien beitragen.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner gekennzeichnet durch Formulieren der Vielzahl von Szenarien, wobei jedes Szenario eine unterschiedliche Kombination von Werten für eine Vielzahl von Merkmalen beinhaltet.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Formulieren der Vielzahl von Szenarien umfasst: Zugreifen auf eine Auswahl von Szenariobeschreibungen aus einer Szenariodatenbank; und Umwandeln jeder Szenariobeschreibung in ein entsprechendes Szenario.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Umwandeln jeder Szenariobeschreibung in ein entsprechendes Szenario umfasst, dass ein Simulator ein Video unter Verwendung einer YAML-Datei erzeugt; und wobei der Algorithmus für autonome Fahrzeuge an dem Video gemäß Bedingungen ausgeführt wird, die in dem Szenario definiert sind.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner gekennzeichnet durch Überwachen der Ausführung des Algorithmus für autonome Fahrzeuge mit simulierten Sensoren im Testsimulator; und wobei das automatische Klassifizieren fehlgeschlagener Szenarien pro Merkmal pro Merkmalwert Klassifizieren fehlgeschlagener Szenarien aus der überwachten Ausführung umfasst.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner gekennzeichnet durch Modifizieren des Algorithmus für autonome Fahrzeuge in Bezug auf die angegebene Größe von Merkmalwerten, die zu fehlgeschlagenen Szenarien beitragen, und Merkmalswichtigkeit über fehlgeschlagene Szenarien hinweg.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Ausführen eines Algorithmus für autonome Fahrzeuge Ausführen des Algorithmus für autonome Fahrzeuge in einem der Folgenden umfasst: virtuelle Umgebung oder eine physische Umgebung; und ferner umfassend Anzeigen der erzeugten Berichte an einer Konsole.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das automatisches Erzeugen von Berichten, die Merkmalwerte, die zu fehlgeschlagene Szenarien beitragen, und Merkmalswichtigkeit über fehlgeschlagene Szenarien hinweg angeben, ferner eine Stützvektormaschine (SVM) mit einem linearen Kern umfasst, die die Berichte automatisch erzeugt.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das automatische Erzeugen von Berichten, die Merkmalswichtigkeit über fehlgeschlagene Szenarien hinweg angeben, Erzeugen eines Berichts umfasst, der jedes Merkmal einer Gewichtung zuordnet.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Verfeinern von Szenarien, um weitere Informationen zu Merkmalwertkombinationen zu erlangen, die zu fehlgeschlagenen Szenarien beitragen, Folgendes umfasst: Formulieren einer Datenbankabfrage aus den Parametern, die zum Fehlschlag geführt haben, unter Verwendung des Inhalts der erzeugten Berichte; Senden der Abfrage an eine Szenariodatenbank; und Empfangen einer Beschreibungsdatei, die eine Vielzahl weiterer Szenarien beschreibt.
-
Gemäß der vorliegenden Erfindung wird ein Computersystem bereitgestellt, das ein Verfahren umsetzt, das Folgendes beinhaltet: Zugreifen auf eine Vielzahl von Umgebungen aus einer Szenariodatenbank, wobei jede Umgebung einen Wert für jedes einer Vielzahl von Merkmalen beinhaltet; Erzeugen einer Beschreibungsdatei für jede einer Vielzahl von Umgebungen; Umwandeln jeder Beschreibungsdatei in ein mit einem Simulator kompatibles Ausführungselement; Ausführen jedes mit einem Simulator kompatiblen Ausführungselements in einem Simulator, um das Verhalten eines Algorithmus für autonome Fahrzeuge zu simulieren; Testen des Simulationsverhaltens hinsichtlich Wahrnehmung oder Sicht des Algorithmus für autonome Fahrzeuge; Klassifizieren fehlgeschlagener simulierter Verhaltensweisen für die Vielzahl von Merkmalen; Bestimmen einer Wichtigkeit eines jeden der Vielzahl von Merkmalen; Anzeigen der klassifizierten simulierten Fehlverhaltensweisen und der bestimmten Wichtigkeit für jedes Merkmal an einer Konsole; und Empfangen einer Eingabe in Bezug auf die simulierten Fehlverhaltensweisen, die eins oder mehrere der Folgenden beinhaltet: Modifikationen am Algorithmus für autonome Fahrzeuge oder eine Szenariodatenbankabfrage, die weitere simulierte Verhaltensweisen des Algorithmus für autonome Fahrzeuge anfordert und die auf Merkmale abzielt, die zu simulierten Fehlverhaltensweisen beitragen.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Ausführen jedes mit einem Simulator kompatiblen Ausführungselements Ausführen jedes mit einem Simulator kompatiblen Ausführungselements in einer Computerspiel-Engine zum Erzeugen einer virtuellen Umgebung umfasst.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Erzeugen einer Beschreibungsdatei für jede der Vielzahl simulierter Umgebungen Erzeugen einer YAML-Datei umfasst.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Umwandeln jeder Beschreibungsdatei in ein mit einem Simulator kompatiblen Ausführungselement Erzeugen eines Ausführungselements umfasst, das dazu konfiguriert wird, eine Vielzahl von Videos unter Verwendung der YAML-Dateien zu erzeugen.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Klassifizieren von simulierten Fehlverhaltensweisen über die Vielzahl von Merkmalen hinweg umfasst, dass eine Stützvektormaschine (SVM) pro Merkmal die Anzahl von Vorkommen jedes Werts über die simulierten Fehlverhaltensweisen hinweg berechnet.
-
Gemäß einer Ausführungsform ist die vorstehende Erfindung ferner dadurch gekennzeichnet, dass das Bestimmen einer Gewichtung für jedes der Vielzahl von Merkmalen umfasst, dass die Stützvektormaschine (SVM) einen Vektor von Merkmalsgewichtungen berechnet.
-
Gemäß der vorliegenden Erfindung wird ein Computersystem bereitgestellt, aufweisend: einen Prozessor; Systemspeicher, der an den Prozessor gekoppelt ist und Anweisungen speichert, die den Prozessor veranlassen zum:-Zugreifen auf eine zufällige Vielzahl von simulierten Umgebungen aus einer Szenariodatenbank, wobei jede simulierte Umgebung einen Wert für jedes einer Vielzahl von Merkmalen beinhaltet; Erzeugen einer Beschreibungsdatei für jede einer Vielzahl von simulierten Umgebungen; Umwandeln jeder Beschreibungsdatei in ein mit einem Testsimulator kompatibles Ausführungselement; Ausführen jedes mit einem Testsimulator kompatiblen Ausführungselements in einem Testsimulator, um das Verhalten eines Algorithmus für autonome Fahrzeuge zu simulieren; Testen des Simulationsverhaltens hinsichtlich Wahrnehmung oder Sicht des Algorithmus für autonome Fahrzeuge; Klassifizieren fehlgeschlagener simulierter Verhaltensweisen für die Vielzahl von Merkmalen; Bestimmen einer Gewichtung für jedes der Vielzahl von Merkmalen, wobei die Gewichtung die Wichtigkeit des Merkmals für das simulierte Verhalten angibt; Anzeigen der klassifizierten simulierten Fehlverhaltensweisen und der bestimmten Gewichtungen an einer Konsole; Zugreifen auf eine Szenariodatenbankabfrage, die weitere simulierte Verhaltensweisen des Algorithmus für autonome Fahrzeuge anfordert, die auf Merkmale abzielen, die zu simulierten Fehlverhaltensweisen beitragen; Senden der Senden der Szenariodatenbankabfrage an die Szenariodatenbank; und Durchführen weiterer simulierter Verhaltensweisen auf Grundlage einer Beschreibungsdatei, die in Reaktion auf die Abfrage zurückgesendet wird.
-
Gemäß einer Ausführungsform umfassen die Anweisungen, die zum Erzeugen einer Beschreibungsdatei für jede der Vielzahl von simulierten Umgebungen konfiguriert sind, Anweisungen, die zum Erzeugen einer YAML-Datei konfiguriert sind; und wobei die Anweisungen, die zum Umwandeln jeder Beschreibungsdatei in ein mit einem Testsimulator kompatibles Ausführungselement konfiguriert sind, Anweisungen umfassen, die zum Umwandeln der YAML-Datei in eine Vielzahl von Videos konfiguriert sind.
-
Gemäß einer Ausführungsform umfassen die Anweisungen, die zum Klassifizieren von simulierten Fehlverhaltensweisen über die Vielzahl von Merkmalen hinweg konfiguriert sind, eine Stützvektormaschine (SVM), die dazu konfiguriert ist, pro Merkmal die Anzahl von Vorkommen jedes Werts über die simulierten Fehlverhaltensweisen hinweg zu berechnen.
-
Gemäß einer Ausführungsform umfassen die Anweisungen, die zum Bestimmen einer Gewichtung für jedes der Vielzahl von Merkmalen konfiguriert sind, die Stützvektormaschine (SVM), die dazu konfiguriert ist, einen Vektor von Merkmalsgewichtungen zu berechnen.