-
TECHNISCHES GEBIET
-
Die Offenbarung betrifft allgemein Verfahren, Systeme und Vorrichtungen zur virtuellen Sensordatenerzeugung und betrifft insbesondere die Erzeugung von virtuellen Sensordaten zum Trainieren und Testen von Modellen und Algorithmen zum Detektieren von Objekten oder Hindernissen, wie etwa Radanschläge oder Parkbarrieren.
-
HINTERGRUND
-
Kraftfahrzeuge stellen einen erheblichen Teil des Transports für kommerzielle, staatliche und private Entitäten bereit. Aufgrund des hohen Wertes von Kraftfahrzeugen und der potenziellen Gefahr für Mitfahrer und Fahrer sind die Fahrersicherheit und die Vermeidung von Unfällen oder Kollisionen mit anderen Fahrzeugen oder Objekten äußerst wichtig.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Nicht-einschränkende und nicht-erschöpfende Implementierungen der vorliegenden Offenbarung werden unter Bezugnahme auf die folgenden Figuren beschrieben, wobei sich durchweg durch die verschiedenen Ansichten gleiche Bezugszahlen auf gleiche Teile beziehen, sofern nicht anderweitig angegeben. Vorteile der vorliegenden Offenbarung werden im Hinblick auf die folgende Beschreibung und die zugehörigen Zeichnungen verständlicher, wobei:
-
1 ein schematisches Blockdiagramm ist, das eine Implementierung eines Fahrzeugsteuersystems, das ein automatisiertes Fahr-/Unterstützungssystem beinhaltet, veranschaulicht;
-
2 ein schematisches Blockdiagramm ist, das eine Implementierung eines Systems zur Sensordatenerzeugung veranschaulicht;
-
3 eine schematische Darstellung ist, die eine Seitenansicht eines Fahrzeugs veranschaulicht, das sich in der Nähe eines Parkklotzes befindet;
-
4 eine schematische Draufsichtdarstellung ist, die eine virtuelle Parkplatzumgebung gemäß einer Ausführungsform veranschaulicht;
-
5 ein beispielhaftes Sensordateneinzelbild ist;
-
6 ein beispielhaftes komplementäres Einzelbild des in 5 veranschaulichten Einzelbildes gemäß einer Implementierung ist;
-
7 ein schematisches Blockdiagramm ist, das beispielhafte Komponenten einer Simulationskomponente gemäß einer Implementierung veranschaulicht; und
-
8 ein schematisches Flussdiagramm ist, das ein Verfahren zum Erzeugen von virtuellen Sensordaten gemäß einer Implementierung veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ein sehr häufiger Ort für Kollisionen oder Unfälle von Fahrzeugen findet während des Parkens oder beim Verlassen eines Parkstandortes statt. Aufgrund der Nähe von anderen Fahrzeugen, Fußgängern oder anderen Objekten gibt es nur einen kleinen Fehlerspielraum, wenn ein Schaden an Fahrzeugen, einschließlich Kratzer an Stoßstangen oder Seitenplatten, vermieden werden soll. In vielen Parkplätzen oder bei anderen Parkstandorten sind Parkstellplätze an mindestens einer Seite durch eine Art von Parkbarriere, wie etwa einen Parkklotz, einen Bordstein oder dergleichen, markiert oder begrenzt. Die Parkbarrieren können verwendet werden, so dass Fahrzeuge daran gehindert werden, zu weit nach vorne (oder hinten) in eine andere Reihe von Fahrzeugen zu rollen, und können ein Fahrzeug davon abhalten, sich zu weit zu bewegen, wenn die Räder auf die Barriere stoßen. Eine Parkbarriere kann eine Parkbarriere, einen Parkklotz, einen Parkradanschlag, einen Bordstein oder dergleichen beinhalten oder vorliegend als diese bezeichnet werden.
-
Wenn ein Auto auf einem Parkplatz geparkt wird, kann es auf einen Radanschlag oder eine andere Parkbarriere stoßen. Die Antragsteller haben erkannt, dass die Größe und Höhe von Radanschlägen erheblich variieren kann. In manchen Situationen ist ein Fahrer, ein automatisiertes Fahrsystem oder ein automatisiertes Unterstützungssystem nicht in der Lage, den Radanschlag zu detektieren, und das Fahrzeug kann darüber fahren und die vordere oder hintere Stoßstange oder Schürze beschädigen. Um eine derartige Kollision zu vermeiden, müssen sowohl die Position als auch die Höhe des Radanschlags bekannt sein, so dass ein Zusammenstoßen oder Kratzen der Unterseite des Autos vermieden werden kann.
-
Die Antragsteller haben jedoch erkannt, dass der Detektionsalgorithmus an großen vielfältigen Datenmengen trainiert und getestet werden muss, wenn die Radanschläge oder Parkbarrieren durch eine fahrzeuginterne Wahrnehmung detektiert werden sollen, so dass eine Warnung an den Fahrer, das automatisierte Fahrsystem oder das automatisierte Unterstützungssystem bereitgestellt werden kann oder dass ein autonomes Bremsen wie benötigt initiiert werden kann. Das Erfassen von realen Sensordaten benötigt jedoch beträchtliche Zeit und Ressourcen, indem physische Tests eingerichtet werden oder mit Sensoren herumgefahren wird, um Daten für relevante Szenarios zu sammeln.
-
Die vorliegende Anmeldung offenbart Systeme und Verfahren zum Erzeugen von synthetischen oder virtuellen Sensordaten und/oder assoziierter Ground-Truth. Bei einer Ausführungsform beinhaltet ein Verfahren Simulieren einer dreidimensionalen (3D) Umgebung, die eine oder mehrere Parkbarrieren beinhaltet. Das Verfahren beinhaltet Erzeugen von virtuellen Sensordaten für mehrere Positionen eines oder mehrerer Sensoren in der 3D-Umgebung. Das Verfahren beinhaltet ferner Bestimmen der virtuellen Ground-Truth, die jeder der mehreren Positionen entspricht, wobei die Ground-Truth eine Höhe der mindestens einen der Parkbarrieren beinhaltet. Das Verfahren beinhaltet ferner Speichern und Assoziieren der virtuellen Sensordaten und der virtuellen Ground-Truth.
-
Manche Implementierungen integrieren eine virtuelle Fahrumgebung, die unter Verwendung von 3D-Modellierungs- und -Animationswerkzeugen erschaffen wird, mit Sensormodellen, um virtuelle Sensordaten in einem kurzen Zeitraum in großen Mengen zu erstellen. Relevante Parameter, wie etwa Beleuchtung und Positionierung des Radanschlags, können in den aufgezeichneten Daten zufällig ausgewählt werden, um eine breit gefächerte Datenmenge mit minimaler Beeinflussung sicherzustellen. Bei einer Implementierung ist ein Sensor relativ zu einer Fahrbahn oder einem Parkplatz (oder einer anderen virtuellen Fahrumgebung) gemäß seiner geplanten Positionierung an einem Fahrzeug positioniert. Der virtuelle Sensor kann neu positioniert und/oder entlang eines virtuellen Pfads in der virtuellen Umgebung an Stellen bewegt werden, wo er Objekte oder Hindernisse, wie etwa Radanschläge, beobachten kann.
-
Während der virtuellen Bewegung oder Neupositionierung kann der virtuelle Sensor periodisch Daten aufzeichnen oder virtuelle Sensordaten erzeugen. Für jeden Zeitschritt der aufgezeichneten Daten – zum Beispiel jedes Einzelbild der Kameradaten – werden automatisch Anmerkungen bereitgestellt, damit Ground-Truth-Informationen über die Positionen aller Radanschläge in der Reichweite des Sensors sowie die Höhe jedes Radanschlags aufgezeichnet werden. Im Fall von Kameradaten können Ground-Truth-Daten für jedes Einzelbild der Bilddaten ein komplementäres Einzelbild pixelweiser segmentierter Bilddaten, die die gleiche Ansicht darstellen, beinhalten. Alle Pixel des Radanschlags im komplementärem Einzelbild können zum Beispiel eine einheitliche Farbe mit konstanten Werten aufweisen (z.B. Rot-Grün-Blau (RGB)), so dass genau bekannt ist, welche Pixel zum Radanschlag gehören. Die Ground-Truth-Informationen können zum Trainieren eines Wahrnehmungsalgorithmus mittels überwachtem Lernen oder zum Testen von bestehenden Algorithmen und Quantifizieren ihrer Leistungsfähigkeit verwendet werden. Die Ausführungsformen können einen virtuellen Sensor für eine Kamera, ein Lichtentfernungsmessungs- und -detektions(LIDAR)-System, ein Radarsystem, ein Ultraschallsystem und/oder ein anderes Sensorsystem oder eine andere Sensorart erzeugen.
-
Die vorliegend offenbarten Systeme und Verfahren können erhebliche Vorteile gegenüber realen Daten liefern. Verglichen mit realen Daten sind virtuelle Daten zum Beispiel hinsichtlich Zeit, Geld und Ressourcen billiger. Insbesondere können die vorliegend offenbarten Systeme und Verfahren tausende virtuelle Bilder für eine Vielfalt von Bedingungen innerhalb weniger Minuten erzeugen, im Gegensatz zu Stunden oder Monaten zum Erfassen einer vergleichbaren Anzahl von Bildern in der realen Welt. Die virtuellen Sensordaten mit automatischen Anmerkungen verbessern die Leichtigkeit beim Erhalten der Ground-Truth oder von anderen Daten, die für das Trainieren und Testen der Objektdetektion oder -ortung nützlich sind, wie etwa für Radanschlagdetektionsalgorithmen, erheblich.
-
Obwohl manche Ausführungsformen der vorliegenden Offenbarung Simulationen und virtuelle Daten für eine Detektion, Klassifizierung und/oder Abmessungsbestimmungen von Parkbarrieren besprechen, sind diese nur als Beispiele gegeben. Die vorliegende Offenbarung zieht die Verwendung der vorliegend offenbarten Systeme, Verfahren und Einrichtungen für die Detektion, Klassifizierung, Ortung und Abmessungsdetektion für ein beliebiges Objekt oder Hindernis in Betracht. Virtuelle Repräsentationen eines beliebigen Objekts oder Hindernisses, das durch ein Fahrzeug in einer Fahrumgebung detektiert werden kann, werden vorliegend in Betracht gezogen.
-
Jetzt mit Bezug auf die Figuren veranschaulicht 1 ein beispielhaftes Fahrzeugsteuersystem 100, das zum automatischen Detektieren von Parkbarrieren verwendet werden kann. Das automatisierte Fahr-/Unterstützungssystem 102 kann zum Automatisieren oder Steuern eines Betriebs eines Fahrzeugs oder zum Bereitstellen von Unterstützung für einen menschlichen Fahrer verwendet werden. Das automatisierte Fahr-/Unterstützungssystem 102 kann zum Beispiel das Bremsen und/oder die Lenkung und/oder Beschleunigung und/oder Lichter und/oder Warnungen und/oder Fahrerbenachrichtigungen und/oder Radio und/oder beliebige andere Hilfssysteme des Fahrzeugs steuern. Bei einem anderen Beispiel ist das automatisierte Fahr-/Unterstützungssystem 102 möglicherweise nicht in der Lage, eine Fahrsteuerung (z.B. Lenkung, Beschleunigung oder Bremsen) bereitzustellen, kann aber Benachrichtigungen und Warnungen bereitstellen, um einen menschlichen Fahrer beim sicheren Fahren zu unterstützen. Das automatisierte Fahr-/Unterstützungssystem 102 kann ein neuronales Netzwerk oder ein anderes Modell oder einen anderen Algorithmus verwenden, um zu bestimmen, dass eine Parkbarriere oder ein Parkklotz vorhanden ist, und kann auch eine Größe, Position und/oder Abmessungen eines Objekts oder Hindernisses, wie etwa einer Parkbarriere oder eines Parkklotzes, bestimmen.
-
Das Fahrzeugsteuersystem 100 beinhaltet auch ein oder mehrere Sensorsysteme bzw. eine oder mehrere Sensoreinrichtungen zum Detektieren eines Vorhandenseins von nahegelegenen Objekten oder zum Bestimmen einer Position eines Stammfahrzeugs (z.B. eines Fahrzeugs, das das Fahrzeugsteuersystem 100 beinhaltet). Das Fahrzeugsteuersystem 100 kann zum Beispiel ein oder mehrere Radarsysteme 106, ein oder mehrere LIDAR-Systeme 108, ein oder mehrere Kamerasysteme 110, ein globales Positionierungssystem (GPS) 112 und/oder ein oder mehrere Ultraschallsysteme 114 beinhalten. Das Fahrzeugsteuersystem 100 kann einen Datenspeicher 116 zum Speichern von relevanten oder nützlichen Daten zur Navigation und Sicherheit, wie etwa Kartendaten, ein Fahrtprotokoll oder andere Daten, beinhalten. Das Fahrzeugsteuersystem 100 kann auch einen Sendeempfänger 118 für eine drahtlose Kommunikation mit einem mobilen oder drahtlosen Netzwerk, anderen Fahrzeugen, Infrastruktur oder einem beliebigen anderen Kommunikationssystem beinhalten.
-
Das Fahrzeugsteuersystem 100 kann Fahrzeugsteueraktoren 120 zum Steuern verschiedener Aspekte des Fahrens des Fahrzeugs, wie etwa Elektromotoren, Schalter oder andere Aktoren zum Steuern des Bremsens, der Beschleunigung, der Lenkung oder dergleichen, beinhalten. Das Fahrzeugsteuersystem 100 kann auch einen oder mehrere Anzeigen 122, Lautsprecher 124 oder andere Einrichtungen beinhalten, so dass Benachrichtigungen an einen menschlichen Fahrer oder Mitfahrer geliefert werden können. Eine Anzeige 122 kann eine Heads-Up-Anzeige, eine Armaturenbrettanzeige oder einen Armaturenbrettindikator, einen Anzeigebildschirm oder einen beliebigen anderen visuellen Indikator, der durch einen Fahrer oder Mitfahrer eines Fahrzeugs gesehen werden kann, beinhalten. Die Lautsprecher 124 können einen oder mehrere Lautsprecher einer Lautsprecheranlage eines Fahrzeugs beinhalten oder können einen für Fahrerbenachrichtigungen dedizierten Lautsprecher beinhalten.
-
Es versteht sich, dass die Ausführungsform von 1 nur beispielhalber gegeben ist. Andere Ausführungsformen können weniger oder zusätzliche Komponenten beinhalten, ohne von dem Schutzumfang der Offenbarung abzuweichen. Zusätzlich dazu können veranschaulichte Komponenten ohne Einschränkung kombiniert werden oder in anderen Komponenten enthalten sein.
-
Bei einer Ausführungsform ist das automatisierte Fahr-/Unterstützungssystem 102 dazu konfiguriert, das Fahren oder die Navigation eines Stammfahrzeugs zu steuern. Das automatisierte Fahr-/Unterstützungssystem 102 kann zum Beispiel die Fahrzeugsteueraktoren 120 steuern, um einen Pfad auf einer Straße, einem Parkplatz, einer Zufahrt oder eines anderen Ortes zu fahren. Das automatisierte Fahr-/Unterstützungssystem 102 kann zum Beispiel einen Pfad basierend auf Informationen oder Wahrnehmungsdaten bestimmen, die durch eine beliebige der Komponenten 106–118 geliefert werden. Die Sensorsysteme/-einrichtungen 106–110 und 114 können zum Erhalten von Echtzeitsensordaten verwendet werden, so dass das automatisierte Fahr-/Unterstützungssystem 102 einen Fahrer unterstützen oder ein Fahrzeug in Echtzeit fahren kann. Das automatisierte Fahr-/Unterstützungssystem 102 kann einen Algorithmus implementieren oder ein Modell verwenden, wie etwa ein tiefes neuronales Netzwerk, um die Sensordaten zu verarbeiten und ein Vorhandensein, eine Position, Höhe und/oder Abmessung einer Parkbarriere, eines Objekts oder eines anderen Hindernisses zu identifizieren. Um ein Modell oder einen Algorithmus zu trainieren oder zu testen, werden jedoch möglicherweise große Mengen an Sensordaten benötigt.
-
Jetzt mit Bezug auf 2 ist eine Ausführungsform eines Systems 200 zur Sensordatenerzeugung dargestellt. Das System 200 beinhaltet eine Simulationskomponente 202, einen Speicher 204, eine Trainingskomponente 206 und eine Testkomponente 208. Die Simulationskomponente 202 kann dazu konfiguriert sein, eine Fahrumgebung zu simulieren und virtuelle Sensordaten 210 und eine virtuelle Ground-Truth oder andere Informationen als Anmerkungen 212 für die virtuellen Sensordaten 210 zu erzeugen. Die Anmerkungen können eine beliebige Art von Ground-Truth beinhalten, wie etwa Simulationsbedingungen, die durch die Simulationskomponente 202 zum Erzeugen der Fahrumgebung und/oder der virtuellen Sensordaten 210 verwendet werden. Die virtuelle Ground-Truth kann zum Beispiel einen virtuellen Abstand zwischen einem Sensor und einer virtuellen Parkbarriere, eine oder mehrere Abmessungen der virtuellen Parkbarriere (z.B. die Höhe) oder ein beliebiges anderes Objekt oder Hindernis beinhalten. Gleichermaßen kann die virtuelle Ground-Truth ein oder mehrere Details über Beleuchtungsbedingungen, Wetterbedingungen, die Sensorposition, Sensorausrichtung, Sensorgeschwindigkeit und/oder virtuelle Sensorart (z.B. einen spezifischen Sensortyp) beinhalten. Die Simulationskomponente 202 kann Einzelbilder oder Sätze von virtuellen Sensordaten mit der entsprechenden Ground-Truth annotieren oder die virtuelle Ground-Truth mit einem Hinweis der Sensordaten, zu denen die virtuelle Ground-Truth gehört, speichern.
-
Die virtuellen Sensordaten 210 und/oder jegliche Informationen zur Einbeziehung in den Anmerkungen 212 können im Speicher 204 gespeichert werden. Der Speicher 204 kann einen Langzeitspeicher, wie etwa eine Festplatte, oder einen Maschinenspeicher, wie etwa Direktzugriffsspeicher (RAM), beinhalten. Die virtuellen Sensordaten 210 und jegliche assoziierten Anmerkungen 212 können als Teil derselben Datei oder in separaten Dateien gespeichert werden. Die Trainingskomponente 206 und/oder die Testkomponente 208 kann bzw. können dann auf die virtuellen Sensordaten 210 und/oder die Anmerkungen 212 zum Trainieren oder Testen eines Parkbarrierendetektionsalgorithmus oder -modells zugreifen und diese verwenden.
-
Die Trainingskomponente 206 ist dazu konfiguriert, einen Maschinenlernalgorithmus unter Verwendung von virtuellen Sensordaten und die durch die Simulationskomponente 202 erzeugte Ground-Truth zu trainieren. Die Trainingskomponente 206 kann zum Beispiel einen Maschinenlernalgorithmus oder ein Maschinenlernmodell trainieren, indem sie mindestens einen Teil der virtuellen Sensordaten und die entsprechende virtuelle Ground-Truth bereitstellt, um den Maschinenlernalgorithmus oder das Maschinenlernmodell zu trainieren, damit er bzw. es eine Höhe und/oder eine Position der einen oder mehreren Parkbarrieren, des Objekts oder anderen Hindernisses bestimmt. Die Trainingskomponente 206 kann die virtuellen Sensordaten und die virtuelle Ground-Truth an einen Trainingsalgorithmus für ein neuronales Netzwerk bereitstellen. Die Trainingskomponente 206 kann zum Beispiel ein neuronales Netzwerk unter Verwendung jeweils eines Sensordateneinzelbildes und der assoziierten Ground-Truth trainieren. Bei einer Ausführungsform kann die Trainingskomponente 206 mehrere unterschiedliche Maschinenlernmodelle trainieren, um unterschiedliche Aspekte der virtuellen Sensordaten zu identifizieren. Beispielsweise kann ein Modell verwendet werden, um ein Objekt in einem virtuellen Sensoreinzelbild als eine Parkbarriere zu klassifizieren, während ein oder mehrere andere Modelle verwendet werden können, um eine Position, Ausrichtung, einen Abstand und/oder eine Abmessung der Parkbarriere, des Objekts oder eines anderen Hindernisses zu bestimmen.
-
Die Testkomponente 208 kann einen Maschinenlernalgorithmus oder ein Maschinenlernmodell unter Verwendung der virtuellen Sensordaten und der virtuellen Ground-Truth testen. Die Testkomponente 208 kann zum Beispiel mindestens einen Teil der virtuellen Sensordaten an den Maschinenlernalgorithmus oder das Maschinenlernmodell bereitstellen, um eine Höhe und/oder eine Position der Parkbarriere, des Objekts oder anderen Hindernisses zu bestimmen und eine ermittelte Höhe oder eine ermittelte Position mit der virtuellen Ground-Truth zu vergleichen. Die Testkomponente 208 kann in der Lage sein, akkurat zu bestimmen, wie gut ein Modell oder Algorithmus funktioniert, da eine ermittelte Klassifizierung oder ein ermittelter Wert mit der virtuellen Ground-Truth verglichen werden kann. Falls ein Algorithmus oder Modell ausreichend akkurat ist, kann er bzw. es als Teil eines automatisierten Fahr-/Unterstützungssystems 102 implementiert werden.
-
3 veranschaulicht eine Seitenansicht eines Fahrzeugs 302 und einer Parkbarriere 304. Falls das Fahrzeug 302 nicht vor der Parkbarriere 304 anhält, kann die Parkbarriere 304 auf eine Stoßstange oder einen anderen Teil des Fahrzeugs 302 auftreffen oder diesen kratzen oder beschädigen. Wenn sich das Fahrzeug der Parkbarriere 304 nähert, ist diese möglicherweise nicht durch eine Windschutzscheibe des Fahrzeugs 302 sichtbar und ein oder mehrere Sensoren, die an oder in der Nähe der Abdeckhaube oder des Daches des Fahrzeugs 302 befestigt sind, sind möglicherweise auch nicht in der Lage, die Parkbarriere 304 zu detektieren. Somit kann es wichtig sein, eine akkurate Höhe und Position der Parkbarriere 304 zu erhalten, solange die Parkbarriere detektierbar ist, so dass ein Kontakt zwischen dem Fahrzeug 302 und der Parkbarriere 304 vermieden werden kann, wenn das Fahrzeug geparkt oder anderweitig in die Nähe der Parkbarriere 304 gefahren wird. Zusätzlich dazu kann die Position der Parkbarriere 304 im Speicher gespeichert werden, so dass ein Fahrer oder das automatisierte Fahr-/Unterstützungssystem 102 an das Vorhandensein und die Position der Parkbarriere 304 erinnert werden kann, wenn der Fahrer zurückkehrt oder das Fahrzeug 302 wieder angestellt wird.
-
4 ist eine Draufsichtdarstellung einer virtuellen Parkplatzumgebung 400 mit mehreren Parkstandorten und Parkbarrieren 404. Die virtuelle Parkplatzumgebung 400 kann zum Beispiel durch die Simulationskomponente 202 erzeugt und simuliert werden. Somit können die virtuelle Parkplatzumgebung 400 und alle Objekte Computermodelle oder -simulationen repräsentieren, die durch die Simulationskomponente 202 erzeugt werden. Die virtuelle Parkplatzumgebung 400 kann auch eine oder mehrere Lichtquellen oder andere Objekte beinhalten, um eine reale Parkplatzumgebung zu simulieren. Die Beleuchtung kann zum Beispiel unterschiedliche Tageszeiten, verschiedene Wetterarten und/oder Beleuchtungspositionen simulieren. Eine oder mehrere Pflanzen, Bordsteine oder eine umgebende Umwelt für die virtuelle Parkplatzumgebung 400 können auch erzeugt oder simuliert werden.
-
In der virtuellen Parkplatzumgebung 400 ist ein Fahrzeug 402 dargestellt, das sich einem spezifischen Parkstellplatz mit einer Parkbarriere 404 nähert oder in diesen einfährt. Die Parkbarriere 404 beinhaltet einen Parkklotz. Ausführungsformen von Parkklötzen beinhalten Beton, Gummi oder andere Barrieren, die an Parkstandorten platziert werden, damit Fahrzeuge daran gehindert werden, zu weit einzufahren oder zu rollen. Die virtuelle Parkplatzumgebung 400 beinhaltet eine Parkbarriere 404 für jeden Parkstellplatz. Manche Parkplätze können jedoch eine uneinheitliche Einbeziehung von Parkbarrieren aufweisen, so dass ein Fahrer oder ein System nicht annehmen kann, dass ein spezifischer Parkstellplatz, basierend auf anderen Parkstellplätzen, eine Parkbarriere beinhalten kann oder nicht. Gemäß einer Ausführungsform, wie durch die Linie 406 angegeben ist, können ein oder mehrere Sensoren Daten (wie etwa ein Bild oder Einzelbild) erhalten, die einen Teil der Parkbarriere 404 beinhalten, wenn das Fahrzeug 402 in den Parkstellplatz einfährt. Wie oben besprochen, kann die Simulationskomponente 202 ein virtuelles Einzelbild von Wahrnehmungsdaten erzeugen, das simuliert, was ein Sensor am Fahrzeug 402 aufnehmen würde, wenn die virtuelle Parkplatzumgebung 400 eine reale Umgebung wäre.
-
Bei einer Ausführungsform wird das Fahrzeug 402 (mit beliebigen assoziierten virtuellen Sensoren) entlang eines Pfads bewegt oder in der virtuellen Parkplatzumgebung 400 zufällig neu positioniert und zusätzliche Einzelbilder von Wahrnehmungsdaten können erzeugt werden. Gleichermaßen können Informationen, die den simulierten Bedingungen entsprechen, mit den Einzelbildern gespeichert werden, so dass die virtuelle Ground-Truth für jedes Einzelbild verfügbar ist. Bei einer Ausführungsform können die Positionen von Objekten in der virtuellen Parkplatzumgebung 400 und eine oder mehrere andere Bedingungen für mehrere unterschiedliche Einzelbilder zufällig ausgewählt sein. Beispielsweise können die Beleuchtung, Positionen, Wetterbedingungen oder dergleichen zufällig, innerhalb akzeptabler Grenzen, erzeugt werden, damit virtuelle Sensordaten für eine breite Vielfalt von verschiedenen Bedingungen erzeugt werden.
-
Obwohl 4 eine Draufsicht einer virtuellen Parkplatzumgebung 400 veranschaulicht, können Fahrzeuge an einer großen Vielfalt von Orten geparkt werden, an denen Parkbarrieren 404 oder Parkklötze vorhanden sein können. Zum Beispiel können ein Parken am Straßenrand, ein Parken in der Zufahrt oder ein beliebiger anderer Parkstandort auch eine Parkbarriere, einen Parkklotz, einen Radanschlag, einen Bordstein oder ein anderes Objekt zum Definieren von Parkstandorten oder Parkstellplätzen beinhalten. Somit kann ein beliebiger Ort, an dem Fahrzeuge gefahren werden oder geparkt werden können, in einer oder mehreren anderen virtuellen Umgebungen simuliert werden.
-
5 veranschaulicht ein beispielhaftes Einzelbild 500 von Sensordaten, die durch eine Simulationskomponente 202 erzeugt werden. Das Einzelbild 500 kann zum Beispiel ein virtuelles Bild beinhalten, das durch eine virtuelle Kamera, die sich an einer simulierten Position befindet, in einer virtuellen Umgebung aufgenommen wurde. Das Einzelbild 500 beinhaltet eine Parkbarriere 502, die in einer virtuellen Umgebung positioniert ist. Die Form und Position der Parkbarriere 502 im Einzelbild 500 kann eine Folge der gegenwärtigen Position und Ausrichtung der Parkbarriere 502 sowie einer virtuellen Kamera, die das Einzelbild 500 „aufgenommen“ hat, sein. Die virtuelle Ground-Truth für das Einzelbild 500 kann mit dem Einzelbild 500 gespeichert oder mit dem Einzelbild 500 assoziiert werden, so dass spezifische virtuelle Bedingungen für das Einzelbild 500 bekannt sind. Die virtuelle Ground-Truth kann einen Abstand (z.B. einen simulierten Abstand in Fuß, Meter oder einer anderen Maßeinheit) zwischen einem Sensor und der Parkbarriere 502, eine Ausrichtung des Sensors, eine Ausrichtung der Parkbarriere 502, eine oder mehrere Abmessungen der Parkbarriere 502, ein Material der Parkbarriere 502, spezifische Positionen von sowohl der Parkbarriere 502 als auch eines Sensors, der das Einzelbild 500 aufgenommen hat, simulierte Wetterbedingungen, simulierte Tageszeit, simulierte Beleuchtungspositionen, simulierte Beleuchtungsfarben oder beliebige andere zusätzliche Informationen über eine simulierte Umgebung, in der das Einzelbild 500 aufgenommen wurde, beinhalten.
-
6 veranschaulicht eine Ausführungsform eines komplementären Einzelbildes 600, das dem Einzelbild 500 von 5 entspricht. Das komplementäre Einzelbild beinhaltet einen Bereich 602 einer einheitlichen Farbe, der einem Bereich des Einzelbildes 500 entspricht, in dem sich die Pixel der Parkbarriere 502 befinden. In 6 ist der Bereich 602 weiß, während der Rest des komplementären Einzelbildes 600 schwarz ist. Andere Ausführungsformen können jedoch dem ursprünglichen Bild ähnlich sein, wobei eine einheitliche Farbe einen Bereich der Parkbarriere 602 bedeckt. Beispielsweise kann eine helle grüne Farbe für den Bereich 602 verwendet werden, während der schwarze Teil des komplementären Einzelbildes 600 möglicherweise nicht schwarz ist, aber identisch zu den entsprechenden Bereichen/Pixeln des ursprünglichen Einzelbildes 500 sein kann. Bei einer Ausführungsform kann das komplementäre Einzelbild 600 in den Ground-Truth-Informationen für das Einzelbild 500 enthalten sein, so dass ein Algorithmus trainiert oder getestet werden kann. Das komplementäre Einzelbild 600 kann zum Beispiel mit dem Einzelbild 500 zum Trainieren eines neuronalen Netzwerkes, das zum Detektieren und/oder Identifizieren von Abmessungen einer Parkbarriere verwendet wird, bereitgestellt werden.
-
Obwohl 5 und 6 oben bezüglich Kamerabildern besprochen werden, werden andere Arten von Sensordateneinzelbildern in Betracht gezogen und fallen in den Schutzumfang der vorliegenden Offenbarung. Beispielsweise können LIDAR-Einzelbilder, Radareinzelbilder, Ultraschalleinzelbilder oder eine beliebige andere Art eines Sensordateneinzelbildes in jeder simulierten Ground-Truth erzeugt und gespeichert werden. Zusätzlich dazu können, obwohl manche vorliegend bereitgestellten Ausführungsformen und Beispiele die Simulation und das Modellieren von Parkbarrieren beinhalten, andere Objektarten oder Daten verwendet werden. Beispielsweise können virtuelle Sensordaten für eine beliebige Objektart, die in einer Fahrumgebung angetroffen werden kann, erzeugt werden. Beispielhafte Objekte oder Hindernisse können Parkbarrieren oder Bordsteine, andere Fahrzeuge, Straßen- oder Spurlinien, Parklinien, Straßenschilder, Fußgänger, Fahrradfahrer, Tiere, Straßenschmutz, Bodenwellen oder Senken in einer Straße oder ein beliebiges anderes Objekt, Hindernis oder Merkmal, das ändern kann, wie ein Fahrzeug funktionieren sollte, oder das einen Pfad eines Fahrzeugs ändert, beinhalten.
-
7 ist ein Blockdiagramm, das beispielhafte Komponenten einer Simulationskomponente 202 veranschaulicht. Bei der abgebildeten Ausführungsform beinhaltet die Simulationskomponente 202 eine Umgebungskomponente 702, eine Komponente 704 für den virtuellen Sensor, eine Ground-Truth-Komponente 706, eine Speicherkomponente 708 und eine Modellkomponente 710. Die Komponenten 702–710 sind nur zur Veranschaulichung gegeben und sind möglicherweise nicht in allen Ausführungsformen enthalten. Genau genommen können manche Ausführungsformen nur eine oder eine beliebige Kombination von zwei oder mehreren der Komponenten 702–710 beinhalten. Manche der Komponenten 702–710 können sich außerhalb der Simulationskomponente 202 befinden.
-
Die Umgebungskomponente 702 ist dazu konfiguriert, eine virtuelle Umgebung zu erzeugen und/oder zu simulieren. Bei einer Ausführungsform simuliert oder erzeugt die Umgebungskomponente 702 eine 3D-Park- oder -Fahrumgebung. Die Umgebungskomponente 702 kann eine 3D-Spiel- oder -Simulations-Engine zum Erzeugen, Simulieren und/oder Rendern einer Umgebung verwenden, in der ein Fahrzeug gefahren oder geparkt werden kann. Spiel-Engines, die für Fahrspiele oder ein beliebiges anderes Spieldesign verwendet werden, können zum Beispiel zum Simulieren einer realen Umgebung verwendet werden.
-
Bei einer Ausführungsform simuliert die Umgebungskomponente 702 eine Umgebung mit mehreren virtuellen Objekten. Die virtuellen Objekte können Parkbarrieren, Fahrzeuge, Bäume, Pflanzen, Bordsteine, gestrichene Linien, Gebäude, Landschaftsformen, Fußgänger, Tiere oder ein beliebiges anderes Objekt, das in einer Fahr- oder Parkumgebung gefunden werden kann, beinhalten. Die Umgebungskomponente 702 kann beengte räumliche Verhältnisse simulieren, in denen sich eine große Anzahl von Fahrzeugen, Fußgängern oder anderen Objekten befinden. Die Umgebungskomponente 702 kann auch Beleuchtungsbedingungen simulieren. Beispielsweise kann die Umgebungskomponente 702 eine Lichtquelle einschließlich einer Sonne, Mondlicht, Straßenlampen, Gebäudebeleuchtung, Fahrzeugscheinwerfer, Fahrzeugbremslichter oder eine beliebige andere Lichtquelle simulieren. Die Umgebungskomponente 702 kann auch Schatten, Beleuchtungsfarben für die Sonne oder den Mond zu unterschiedlichen Tageszeiten oder Wetterbedingungen simulieren. Die Umgebungskomponente 702 kann zum Beispiel eine Beleuchtung für wolkige, regnerische, schneereiche und andere Wetterbedingungen simulieren. Zusätzlich dazu kann die Umgebungskomponente 702 Nässe oder Schneebedingungen simulieren, bei denen Straßen, Parkplätze und Objekte in einer virtuellen Umgebung nass oder mit Schnee bedeckt sind.
-
Bei einer Ausführungsform kann die Umgebungskomponente 702 simulierte Bedingungen zufällig auswählen. Die Umgebungskomponente 702 kann zum Beispiel eine oder mehrere simulierte Bedingungen periodisch zufällig auswählen, um Umgebungen mit einer breiten Vielfalt von Bedingungen zu erzeugen. Bei einer Ausführungsform kann die Umgebungskomponente 702 unterschiedliche Bedingungen für Beleuchtung und/oder Wetter und/oder eine Position der einen oder mehreren virtuellen Parkbarrieren oder anderen Objekte und/oder die Abmessungen der einen oder mehreren virtuellen Parkbarrieren oder anderen Objekte zufällig erzeugen.
-
Bei einer Ausführungsform kann die Umgebungskomponente 702 eine Position eines Sensors in der virtuellen Umgebung simulieren. Die Umgebungskomponente 702 kann eine Bewegung eines oder mehrerer Sensoren entlang eines Pfads in der virtuellen Umgebung simulieren oder die Sensorpositionierung zufällig auswählen. Die Umgebungskomponente 702 kann zum Beispiel eine Position und/oder Ausrichtung eines Sensors basierend auf einer geplanten Position auf einem Fahrzeug simulieren. Bei einer Ausführungsform kann die Umgebungskomponente 702 eine Position, Höhe, Ausrichtung oder andere Positionierungsaspekte eines Sensors in der virtuellen Umgebung zufällig auswählen. Die zufällig ausgewählten Positionen für den Sensor oder andere simulierte Bedingungen für die virtuelle Umgebung können innerhalb vordefinierter Grenzen zufällig ausgewählt werden, um die Wahrscheinlichkeit zu erhöhen, dass die virtuelle Umgebung Bedingungen ähnlich ist, die Fahrzeuge in realen Situationen antreffen würden.
-
Die Komponente 704 für den virtuellen Sensor ist dazu konfiguriert, Sensordaten oder Wahrnehmungsdaten für einen virtuellen Sensor in einer virtuellen Umgebung, die durch die Umgebungskomponente 702 erzeugt oder simuliert wird, zu erzeugen. Bei einer Ausführungsform kann die Komponente 704 für den virtuellen Sensor ein Modell einer realen Leistungsfähigkeit von einem oder mehreren spezifischen Sensoren, die durch ein Fahrzeug verwendet werden sollen, beinhalten oder verwenden. Ein Sensor kann zum Beispiel ein virtuelles Modell aufweisen, das die reale Leistungsfähigkeit des Sensors simuliert. Die Komponente 704 für den virtuellen Sensor kann simulieren, wie ein Sensor ein Einzelbild erzeugt. Die Komponente 704 für den virtuellen Sensor kann virtuelle Sensordaten erzeugen, die computererzeugte Bilder und/oder computererzeugte Radardaten und/oder computererzeugte LIDAR-Daten und/oder computererzeugte Ultraschalldaten und/oder andere Daten für andere Wahrnehmungssensorarten beinhalten.
-
Bei einer Ausführungsform ist die Komponente 704 für den virtuellen Sensor dazu konfiguriert, Sensoreinzelbilder oder Sensordaten periodisch zu erzeugen. Die Komponente 704 für den virtuellen Sensor kann zum Beispiel ein Bild (oder einen anderen Sensor) mit einem simulierten Intervall erzeugen, das ähnlich der Frequenz ist, mit der eine Kamera ein Bild aufnimmt. Bei einer Ausführungsform erzeugt die Komponente 704 für den virtuellen Sensor Sensordaten für jede Position, die durch die Umgebungskomponente 702 simuliert wird. Die Komponente 704 für den virtuellen Sensor kann zum Beispiel Sensordaten für Positionen entlang eines Pfads, der durch ein virtuelles Fahrzeug in einer virtuellen Umgebung gefahren wird, erzeugen. Bei einer Ausführungsform beinhalten ein oder mehrere der Bilder oder Einzelbilder der Sensordaten einen Teil einer virtuellen Parkbarriere oder eines anderen Objekts. Beispielsweise können computererzeugte Bilder von Parkbarrieren oder anderen Objekten in einer virtuellen Umgebung durch die Komponente 704 für den virtuellen Sensor erzeugt werden.
-
Die Ground-Truth-Komponente 706 ist dazu konfiguriert, die virtuelle Ground-Truth für die virtuellen Sensordaten, die durch die Komponente 704 für den virtuellen Sensor erzeugt werden, zu erzeugen. Die Ground-Truth-Datenponente 706 kann zum Beispiel simulierte Bedingungen für jedes Bild oder Einzelbild, das durch die Komponente 704 für den virtuellen Sensor aufgenommen wird, bestimmen. Bei einer Ausführungsform kann die Umgebungskomponente 702 die simulierten Bedingungen an die Ground-Truth-Datenponente 706 bereitstellen. Die Ground-Truth-Datenponente 706 kann eine oder mehrere simulierte Bedingungen als Ground-Truth auswählen oder die Ground-Truth basierend auf den simulierten Bedingungen für spezifische virtuelle Sensordaten berechnen. Die Ground-Truth-Datenponente 706 kann zum Beispiel eine Abmessung einer Parkbarriere (wie etwa Höhe) als die Ground-Truth für ein computererzeugtes Bild oder Einzelbild auswählen. Als ein weiteres Beispiel kann die Ground-Truth-Datenponente 706 virtuelle Positionen einer Parkbarriere und eines Sensors empfangen und dann einen virtuellen Abstand (z.B. Sichtlinienabstand und/oder horizontalen Abstand) zwischen dem virtuellen Sensor und der Parkbarriere berechnen. Ähnliche Informationen über andere Objekte oder Hindernisse in der virtuellen Umgebung werden auch in Betracht gezogen.
-
Die virtuelle Ground-Truth kann Informationen über eine Position und Ausrichtung eines Sensors, eine Position und Ausrichtung einer Parkbarriere oder eines anderen Objekts, eine oder mehrere Abmessungen einer Parkbarriere oder eines anderen Objekts, Beleuchtungsbedingungen, Wetterbedingungen, einen Abstand zwischen dem Sensor und der Parkbarriere oder des anderen Objekts, eine Sensorart, die zum Erfassen von Sensordaten verwendet wird, oder beliebige andere Informationen über Simulationsbedingungen beinhalten. Bei einer Ausführungsform kann ein einheitlicher Satz der Ground-Truth für jedes Einzelbild oder jeden Satz von Sensordaten, die durch die Komponente 704 für den virtuellen Sensor erzeugt werden, bestimmt werden. Beispielsweise können dieselben Ground-Truth-Informationen (z.B. Sensorhöhe, Abstand usw.) für jede Position, bei der virtuelle Sensordaten erzeugt werden, berechnet werden.
-
Bei einer Ausführungsform kann die Ground-Truth-Datenponente 706 ein komplementäres Einzelbild für ein Einzelbild von Sensordaten, die durch die Komponente 704 für den virtuellen Sensor erzeugt werden, erzeugen (siehe 6). Beispielsweise kann das komplementäre Einzelbild den gleichen Farbwert für Pixel, die der einen oder den mehreren virtuellen Parkbarrieren entsprechen, aufweisen. Jedes Pixel, das einer virtuellen Parkbarriere entspricht, kann zum Beispiel die gleiche Farbe aufweisen, so dass ein Trainingsalgorithmus oder ein Testalgorithmus eindeutig bestimmen kann, welcher Teil der virtuellen Sensordaten einer virtuellen Parkbarriere entspricht. Bei einer Ausführungsform kann jedes Pixel des komplementären Einzelbildes einen Bildpixel-, Radar- oder LIDAR-Vektor oder einen anderen Pixel- oder Matrixwert der virtuellen Sensordaten beinhalten.
-
Die Speicherkomponente 708 ist dazu konfiguriert, die virtuellen Sensordaten, die durch die Komponente 704 für den virtuellen Sensor erzeugt werden, und/oder eine jegliche Ground-Truth, die durch die Ground-Truth-Datenponente 706 bestimmt wird, zu speichern. Beispielsweise kann die Speicherkomponente 708 die virtuellen Sensordaten und/oder die Ground-Truth im Speicher 204 von 2 speichern. Bei einer Ausführungsform kann die Speicherkomponente 708 die virtuellen Sensordaten mit der entsprechenden Ground-Truth oder anderen Informationen über simulierte Bedingungen assoziieren oder annotieren. Die Sensordaten und die Ground-Truth können dann für eine breite Vielfalt von Zwecken verwendet werden, wie etwa zum Trainieren eines Maschinenlernalgorithmus oder -modells oder zum Testen eines Maschinenlernalgorithmus oder -modells.
-
Die Modellkomponente 710 ist dazu konfiguriert, die virtuellen Sensordaten und/oder die Ground-Truth an einen Algorithmus zum Testen oder Trainieren eines Maschinenlernalgorithmus oder -modells bereitzustellen. Beispielsweise kann die Modellkomponente 710 die virtuellen Sensordaten und/oder die Ground-Truth bereitstellen, die durch die Komponente 704 für den virtuellen Sensor und/oder die Ground-Truth-Datenponente 706 an die Trainingskomponente 206 oder die Testkomponente 208 von 2 bereitgestellt werden. Bei einer anderen Ausführungsform kann die Modellkomponente 710 die Trainingskomponente 206 und/oder die Testkomponente 208 beinhalten. Beispielsweise können die virtuellen Sensordaten und/oder die virtuelle Ground-Truth verwendet werden, damit ein neuronales Netzwerk, ein tiefes neuronales Netzwerk und/oder ein neuronales Faltungsnetzwerk zum Detektieren, Identifizieren und Bestimmen einer oder mehrerer Eigenschaften einer Parkbarriere oder eines anderen Objekts trainiert oder getestet werden. Der Maschinenlernalgorithmus oder das Maschinenlernmodell können zum Beispiel zur Einbeziehung in das automatisierte Fahr-/Unterstützungssystem 102 von 1 trainiert oder getestet werden.
-
Jetzt mit Bezug auf 8 ist ein schematisches Flussdiagramm eines Verfahrens 800 zum Erzeugen von virtuellen Sensordaten und einer Ground-Truth veranschaulicht. Das Verfahren 800 kann durch eine Simulationskomponente oder ein System zur Sensordatenerzeugung, wie etwa die Simulationskomponente 202 von den 2 oder 7 oder das System 200 zur Sensordatenerzeugung von 2, durchgeführt werden.
-
Bei 802 beginnt das Verfahren 800 und eine Umgebungskomponente 702 simuliert eine dreidimensionale (3D) Umgebung, die eine oder mehrere Parkbarrieren oder andere Objekte umfasst. Bei 804 erzeugt eine Komponente 704 für den virtuellen Sensor virtuelle Sensordaten für mehrere Positionen eines oder mehrerer Sensoren in der 3D-Umgebung. Bei 806 bestimmt eine Ground-Truth-Datenponente 706 eine virtuelle Ground-Truth, die jeder der mehreren Positionen entspricht. Die Ground-Truth kann Informationen über mindestens ein Objekt in den virtuellen Sensordaten beinhalten, wie etwa ein Objekt mit einem oder mehreren Merkmalen, die in einem Bild oder in anderen Sensordaten erfasst werden. Die Informationen können beliebige Informationen über die vorliegend besprochenen Objekte, wie etwa Abmessungen, Position oder Ausrichtungen von Objekten, beinhalten. Die Ground-Truth kann zum Beispiel eine Höhe der mindestens einen der Parkbarrieren oder der anderen Objekte beinhalten. Bei 808 speichert und assoziiert eine Speicherkomponente 708 die virtuellen Sensordaten und die virtuelle Ground-Truth. Das Verfahren kann auch eine Modellkomponente 710 beinhalten, die die virtuellen Sensordaten und/oder die virtuelle Ground-Truth an eine Trainingskomponente 206 oder eine Testkomponente 208 von 2 zum Trainieren oder Testen eines Maschinenlernalgorithmus oder -modells bereitstellt. Nach dem Trainieren und/oder Testen eines Modells, wie etwa eines tiefen neuronalen Netzwerkes, kann das Modell im Fahrzeugsteuersystem 100 von 1 für eine aktive Objekt- oder Parkbarrierendetektion und Abmessungsschätzung während realer Fahrbedingungen enthalten sein.
-
Beispiele
-
Die folgenden Beispiele betreffen weitere Ausführungsformen.
-
Beispiel 1 ist ein Verfahren, das Simulieren einer 3D-Umgebung, die ein oder mehrere Objekte wie etwa Parkbarrieren enthält, beinhaltet. Das Verfahren beinhaltet Erzeugen von virtuellen Sensordaten für mehrere Positionen eines oder mehrerer Sensoren in der 3D-Umgebung. Das Verfahren beinhaltet Bestimmen einer virtuellen Ground-Truth, die jeder der mehreren Positionen entspricht. Die Ground-Truth beinhaltet Informationen über mindestens ein Objekt in den Sensordaten. Die Ground-Truth kann zum Beispiel eine Höhe der mindestens einen der Parkbarrieren beinhalten. Das Verfahren beinhaltet auch Speichern und Assoziieren der virtuellen Sensordaten und der virtuellen Ground-Truth.
-
Bei Beispiel 2 beinhaltet das Verfahren nach Beispiel 1 ferner Bereitstellen der virtuellen Sensordaten und/oder der virtuellen Ground-Truth zum Trainieren oder Testen eines Maschinenlernalgorithmus oder -modells.
-
Bei Beispiel 3 beinhaltet das Maschinenlernmodell oder der Maschinenlernalgorithmus bei Beispiel 2 ein neuronales Netzwerk.
-
Bei Beispiel 4 beinhaltet das Trainieren des Maschinenlernalgorithmus oder -modells bei einem der Beispiele 2–3 Bereitstellen von mindestens einem Teil der virtuellen Sensordaten und der entsprechenden virtuellen Ground-Truth, damit der Maschinenlernalgorithmus oder das Maschinenlernmodell trainiert wird, um eine Höhe und/oder eine Position der einen oder mehreren Parkbarrieren oder der anderen Objekte zu bestimmen.
-
Bei Beispiel 5 beinhaltet das Testen des Maschinenlernalgorithmus oder -modells bei einem der Beispiele 2–4 Bereitstellen von mindestens einem Teil der virtuellen Sensordaten an den Maschinenlernalgorithmus oder das Maschinenlernmodell, um eine Klassifizierung oder eine Position von mindestens einem Objekt zu bestimmen und die Klassifizierung oder die Position mit der virtuellen Ground-Truth zu vergleichen.
-
Bei Beispiel 6 entsprechen die mehreren Positionen bei einem der Beispiele 1–5 geplanten Sensorpositionen an einem Fahrzeug.
-
Bei Beispiel 7 beinhalten die virtuellen Sensordaten bei einem der Beispiele 1–6 computererzeugte Bilder und/oder computererzeugte Radardaten und/oder computererzeugte LIDAR-Daten und/oder computererzeugte Ultraschalldaten.
-
Bei Beispiel 8 beinhaltet das Simulieren der 3D-Umgebung bei einem der Beispiele 1–7 zufälliges Erzeugen unterschiedlicher Bedingungen für Beleuchtung und/oder Wetter und/oder eine Position des einen oder der mehreren Objekte und/oder eine Klassifizierung oder Art des einen oder der mehreren Objekte.
-
Bei Beispiel 9 beinhaltet Erzeugen der virtuellen Sensordaten bei einem der Beispiele 1–8 periodisches Erzeugen der virtuellen Sensordaten während einer simulierten Bewegung des einen oder der mehreren Sensoren in der 3D-Umgebung.
-
Bei Beispiel 10 beinhaltet das Bestimmen der virtuellen Ground-Truth bei einem der Beispiele 1–9 Erzeugen eines Ground-Truth-Einzelbildes, das komplementär zu einem Einzelbild der virtuellen Sensordaten ist, wobei das Ground-Truth-Einzelbild den gleichen Farbwert für Pixel beinhaltet, die dem einen oder den mehreren Objekten entsprechen.
-
Beispiel 11 ist ein System, das eine Umgebungskomponente, eine Komponente für den virtuellen Sensor, eine Ground-Truth-Datenponente und eine Modellkomponente beinhaltet. Die Umgebungskomponente ist dazu konfiguriert, eine 3D-Umgebung zu simulieren, die ein oder mehrere virtuelle Objekte oder Hindernisse umfasst. Die Komponente für den virtuellen Sensor ist dazu konfiguriert, virtuelle Sensordaten für mehrere Positionen eines oder mehrerer Sensoren in der 3D-Umgebung zu erzeugen. Die Ground-Truth-Datenponente ist dazu konfiguriert, die virtuelle Ground-Truth, die jeder der mehreren Positionen entspricht, zu bestimmen, wobei die Ground-Truth Informationen über mindestens ein Hindernis des einen oder der mehreren Hindernisse beinhaltet. Die Modellkomponente ist dazu konfiguriert, die virtuellen Wahrnehmungsdaten und die Ground-Truth an einen Maschinenlernalgorithmus oder ein Maschinenlernmodell zum Trainieren oder Testen des Maschinenlernalgorithmus oder -modells bereitzustellen.
-
Bei Beispiel 12 ist die Modellkomponente bei Beispiel 11 dazu konfiguriert, den Maschinenlernalgorithmus oder das Maschinenlernmodell zu trainieren, wobei das Trainieren Bereitstellen von mindestens einem Teil der virtuellen Sensordaten und der entsprechenden virtuellen Ground-Truth beinhaltet, damit der Maschinenlernalgorithmus oder das Maschinenlernmodell trainiert wird, um eine Klassifizierung oder Position des mindestens einen Hindernisses zu bestimmen.
-
Bei Beispiel 13 ist die Modellkomponente bei einem der Beispiele 11–12 dazu konfiguriert, den Maschinenlernalgorithmus oder das Maschinenlernmodell zu testen. Das Testen beinhaltet Bereitstellen von mindestens einem Teil der virtuellen Sensordaten an den Maschinenlernalgorithmus oder das Maschinenlernmodell, um eine Klassifizierung oder Position des mindestens einen Hindernisses oder Objekts zu bestimmen, und Vergleichen der Klassifizierung oder der Position mit der virtuellen Ground-Truth.
-
Bei Beispiel 14 ist die Komponente für den virtuellen Sensor bei einem der Beispiele 11–13 dazu konfiguriert, virtuelle Sensordaten zu erzeugen, die computererzeugte Bilder und/oder computererzeugte Radardaten und/oder computererzeugte LIDAR-Daten und/oder computererzeugte Ultraschalldaten umfassen.
-
Bei Beispiel 15 ist die Umgebungskomponente bei einem der Beispiele 11–14 dazu konfiguriert, die 3D-Umgebung durch zufälliges Erzeugen unterschiedlicher Bedingungen für eine oder mehrere der mehreren Positionen zu simulieren, wobei die unterschiedlichen Bedingungen Beleuchtungsbedingungen und/oder Wetterbedingungen und/oder eine Position des einen oder der mehreren Hindernisse oder Objekte und/oder Abmessungen des einen oder der mehreren Hindernisse oder Objekte umfassen.
-
Beispiel 16 ist ein computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren virtuelle Sensordaten für mehrere Sensorpositionen in einer simulierten 3D-Umgebung, die ein oder mehrere virtuelle Objekte umfasst, erzeugen. Die Anweisungen bewirken, dass der eine oder die mehreren Prozessoren eine oder mehrere simulierte Bedingungen für jede der mehreren Positionen bestimmen, wobei die simulierten Bedingungen eine Klassifizierung und/oder eine Position und/oder eine Abmessung von mindestens einem Objekt des einen oder der mehreren Objekte umfassen. Die Anweisungen bewirken, dass der eine oder die mehreren Prozessoren die virtuellen Sensordaten mit den simulierten Bedingungen speichern und annotieren.
-
Bei Beispiel 17 bewirken die Anweisungen bei Beispiel 16 ferner, dass der eine oder die mehreren Prozessoren einen Maschinenlernalgorithmus oder ein Maschinenlernmodell basierend auf den virtuellen Sensordaten und/oder den simulierten Bedingungen trainieren oder testen.
-
Bei Beispiel 18 bewirken die Anweisungen bei einem der Beispiele 16–17 ferner, dass der Prozessor den Maschinenlernalgorithmus oder das Maschinenlernmodell trainiert, indem er mindestens einen Teil der virtuellen Sensordaten und die entsprechenden simulierten Bedingungen bereitstellt, damit der Maschinenlernalgorithmus oder das Maschinenlernmodell trainiert wird, um eine Klassifizierung und/oder eine Position und/oder eine Abmessung des mindestens einen Objekts zu bestimmen; und/oder den Maschinenlernalgorithmus oder das Maschinenlernmodell testet, indem er mindestens einen Teil der virtuellen Sensordaten an den Maschinenlernalgorithmus oder das Maschinenlernmodell bereitstellt, um eine Klassifizierung und/oder eine Position und/oder eine Abmessung des mindestens einen Objekts zu bestimmen, und eine ermittelte Klassifizierung, eine Position und eine Abmessung des mindestens einen Objekts mit den simulierten Bedingungen vergleicht.
-
Bei Beispiel 19 beinhaltet das Erzeugen der virtuellen Sensordaten bei einem der Beispiele 16–18 Simulieren der 3D-Umgebung durch ein zufälliges Auswählen einer oder mehrerer simulierter Bedingungen für eine oder mehrere der mehreren Positionen, wobei das zufällige Auswählen der einen oder mehreren simulierten Bedingungen ein zufälliges Auswählen der Beleuchtungsbedingungen und/oder Wetterbedingungen und/oder einer Position des einen oder der mehreren virtuellen Objekte und/oder der Abmessungen des einen oder der mehreren virtuellen Objekte umfasst.
-
Bei Beispiel 20 beinhaltet das Bestimmen der simulierten Bedingungen bei einem der Beispiele 16–19 ferner Erzeugen eines Ground-Truth-Einzelbildes, das komplementär zu einem Einzelbild der virtuellen Sensordaten ist, wobei das Ground-Truth-Einzelbild den gleichen Farbwert für Pixel umfasst, die dem mindestens einen Objekt entsprechen.
-
Beispiel 21 ist ein System oder eine Einrichtung, das bzw. die Mittel zum Implementieren eines Verfahrens oder Realisieren eines Systems oder einer Vorrichtung nach einem der Beispiele 1–20 beinhaltet.
-
In der obigen Offenbarung wurde auf die zugehörigen Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen zur Veranschaulichung spezifische Implementierungen dargestellt sind, in denen die Offenbarung umgesetzt werden kann. Es versteht sich, dass andere Implementierungen verwendet werden können und strukturelle Änderungen durchgeführt werden können, ohne von dem Schutzumfang der vorliegenden Offenbarung abzuweichen. Verweise in der Patentschrift zu „einer Ausführungsform“, „einem Ausführungsbeispiel“ usw. geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft beinhalten kann, jede Ausführungsform aber nicht zwangsläufig das bestimmte Merkmal, die bestimmte Struktur oder Eigenschaft beinhalten kann. Darüber hinaus beziehen sich derartige Formulierungen nicht zwangsläufig auf dieselbe Ausführungsform. Des Weiteren wird, wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben ist, unterbreitet, dass ein Fachmann die Kenntnis aufweist, ein derartiges Merkmal, eine derartige Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen, ob ausdrücklich beschrieben oder nicht, zu beeinflussen.
-
Wie vorliegend verwendet, kann „autonomes Fahrzeug“ ein Fahrzeug sein, das völlig unabhängig von einem menschlichen Fahrer handelt oder funktioniert; oder es kann ein Fahrzeug sein, das in manchen Fällen unabhängig von einem menschlichen Fahrer handelt oder funktioniert, während ein menschlicher Fahrer in anderen Fällen in der Lage sein kann, das Fahrzeug zu bedienen; oder es kann ein Fahrzeug sein, das überwiegend durch einen menschlichen Fahrer, aber mit der Unterstützung eines automatisierten Fahr-/Unterstützungssystems bedient wird.
-
Implementierungen der vorliegend offenbarten Systeme, Einrichtungen und Verfahren können einen Spezial- oder Allzweckcomputer, der Computerhardware, wie etwa zum Beispiel einen oder mehrere Prozessoren und Systemspeicher, beinhaltet, umfassen oder benutzen, wie vorliegend besprochen wird. Implementierungen innerhalb des Schutzumfangs der vorliegenden Offenbarung können auch physische und andere computerlesbare Medien zum Befördern oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen beinhalten. Derartige computerlesbare Medien können beliebige verfügbare Medien sein, auf die durch ein Allzweck- oder Spezialcomputersystem zugegriffen werden kann. Computerlesbare Medien, die computerausführbare Anweisungen speichern, sind Computerspeichermedien(-einrichtungen). Computerlesbare Medien, die computerausführbare Anweisungen befördern, sind Übertragungsmedien. Somit können Implementierungen der Offenbarung beispielhalber und nicht darauf eingeschränkt mindestens zwei merklich unterschiedliche Arten von computerlesbaren Medien umfassen: Computerspeichermedien(-einrichtungen) und Übertragungsmedien.
-
Computerspeichermedien(-einrichtungen) beinhalten RAM, ROM, EEPROM, CD-ROM, Halbleiterfestplatten („SSDs“) (z.B. basierend auf RAM), Flash-Speicher, phasenwechselndern Speicher („PCM“), andere Arten von Speicher, anderen optischen Plattenspeicher, magnetischen Plattenspeicher oder andere magnetische Speichereinrichtungen oder ein beliebiges anderes Medium, das zum Speichern von gewünschten Programmcodemitteln in der Form von computerausführbaren Anweisungen oder Datenstrukturen verwendet werden kann, und auf die durch einen Allzweck- oder Spezialcomputer zugegriffen werden kann.
-
Eine Implementierung der vorliegend offenbarten Einrichtungen, Systeme und Verfahren kann über ein Computernetzwerk kommunizieren. Ein „Netzwerk“ ist als eine oder mehrere Datenverbindungen definiert, die den Transport von elektronischen Daten zwischen Computersystemen und/oder Modulen und/oder anderen elektronischen Einrichtungen ermöglichen. Wenn Informationen über ein Netzwerk oder eine andere Kommunikationsverbindung (entweder festverdrahtet, drahtlos oder eine Kombination aus festverdrahtet oder drahtlos) an einen Computer übermittelt oder bereitgestellt werden, sieht der Computer die Verbindung sachgemäß als ein Übertragungsmedium. Die Übertragungsmedien können ein Netzwerk und/oder Datenverbindungen beinhalten, die dazu verwendet werden können, gewünschte Programmcodemittel in der Form von computerausführbaren Anweisungen oder Datenstrukturen zu befördern und auf die durch einen Allzweck- oder Spezialcomputer zugegriffen werden kann. Kombinationen des oben Genannten sollten auch im Umfang von computerlesbaren Medien enthalten sein.
-
Computerausführbare Anweisungen umfassen zum Beispiel Anweisungen und Daten, die, wenn sie in einem Prozessor ausgeführt werden, verursachen, dass ein Allzweckcomputer, ein Spezialcomputer oder eine Spezialverarbeitungseinrichtung eine bestimmte Funktion oder Gruppe von Funktionen durchführt. Die computerausführbaren Anweisungen können zum Beispiel Binärprogramme, Zwischenformatanweisungen, wie etwa Assemblersprache, oder sogar Quellcode sein. Obwohl der Gegenstand in einer für strukturelle Merkmale und/oder methodische Handlungen spezifischen Sprache beschrieben worden ist, versteht es sich, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die oben beschriebenen Merkmale oder Handlungen eingeschränkt ist. Vielmehr sind die beschriebenen Merkmale und Handlungen als beispielhafte Formen des Implementierens der Ansprüche offenbart.
-
Fachleute werden erkennen, dass die Offenbarung in Netzwerkdatenverarbeitungsumgebungen mit vielen Arten von Computersystemkonfigurationen umgesetzt werden kann, einschließlich eines Fahrzeugcomputers im Armaturenbrett, Personalcomputern, Desktopcomputern, Laptopcomputern, Nachrichtenprozessoren, Handeinrichtungen, Multiprozessorsystemen, Mikroprozessor-basierter oder programmierbarer Verbraucherelektronik, Netzwerk-PCs, Minicomputern, Großrechnern, Mobiltelefonen, PDAs, Tablets, Pagern, Routern, Schaltern, verschiedenen Speichereinrichtungen und dergleichen. Die Offenbarung kann auch in verteilten Systemumgebungen umgesetzt sein, bei denen lokale und entfernte Computersysteme, die (entweder durch festverdrahtete Datenverbindungen, drahtlose Datenverbindungen oder durch eine Kombination aus festverdrahteten und drahtlosen Datenverbindungen) durch ein Netzwerk verbunden sind, wobei beide Aufgaben ausführen. Bei einer verteilten Systemumgebung können sich Programmmodule sowohl in lokalen als auch entfernten Speichereinrichtungen befinden.
-
Außerdem können die vorliegend beschriebenen Funktionen, wenn angemessen, in Hardware und/oder Software und/oder Firmware und/oder digitalen Komponenten und/oder analogen Komponenten durchgeführt werden. Zum Beispiel können eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs) programmiert sein, die vorliegend beschriebenen Systeme und/oder Verfahren auszuführen. Bestimmte Begriffe werden in der Beschreibung und in den Ansprüchen durchgehend verwendet, um bestimmte Systemkomponenten zu bezeichnen. Fachleute werden erkennen, dass Komponenten mit verschiedenen Bezeichnungen bezeichnet werden können. Dieses Dokument beabsichtigt nicht, zwischen Komponenten zu unterscheiden, die zwar unterschiedliche Bezeichnungen, aber die gleiche Funktion aufweisen.
-
Es ist anzumerken, dass die oben besprochenen Sensorausführungsformen Computerhardware, Software, Firmware oder eine beliebige Kombination davon zum Durchführen von mindestens einem Teil ihrer Funktionen umfassen können. Ein Sensor kann zum Beispiel Computercode beinhalten, der dazu konfiguriert ist, von einem oder mehreren Prozessoren ausgeführt zu werden, und kann durch den Computercode gesteuerte Hardwarelogik/elektrische Schaltkreise beinhalten. Diese beispielhaften Einrichtungen sind vorliegend für Zwecke der Veranschaulichung bereitgestellt und nicht als einschränkend anzusehen. Ausführungsformen der vorliegenden Offenbarung können in zusätzlichen Arten von Einrichtungen implementiert werden, wie Fachleuten bekannt sein würde.
-
Zumindest einige Ausführungen der Offenbarung sind auf Computerprogrammprodukte ausgelegt worden, die eine derartige auf einem beliebigen computerverwendbaren Medium gespeicherte Logik (z.B. in der Form von Software) umfassen. Eine derartige Software verursacht, dass eine Einrichtung wie vorliegend beschrieben funktioniert, wenn sie in einer oder mehreren Datenverarbeitungseinrichtungen ausgeführt wird.
-
Obwohl verschiedene Ausführungsformen der vorliegenden Offenbarung zuvor beschrieben worden sind, versteht es sich, dass sie lediglich beispielhalber und ohne Einschränkung präsentiert worden sind. Für Fachleute versteht es sich, dass verschiedene Veränderungen in der Form und in den Einzelheiten darin vorgenommen werden können, ohne von dem Gedanken und dem Schutzumfang der Offenbarung abzuweichen. Somit sollte der Umfang und der Schutzumfang der vorliegenden Offenbarung nicht durch irgendeine der zuvor beschriebenen Ausführungsbeispiele eingeschränkt werden, sondern sollte nur gemäß der folgenden Ansprüche und derer Äquivalente definiert werden. Die vorstehende Beschreibung wurde zu Zwecken der Veranschaulichung und Beschreibung dargelegt. Sie ist nicht als vollständig oder als die Offenbarung auf die exakte, offenbarte Form einschränkend auszulegen. Viele Modifikationen und Variationen sind angesichts der obigen Lehren möglich. Ferner versteht es sich, dass irgendeine oder alle der vorgenannten alternativen Implementierungen in einer beliebigen gewünschten Kombination zum Bilden von zusätzlichen hybriden Implementierungen der Offenbarung verwendet werden können.
-
Obwohl spezifische Implementierungen der Offenbarung beschrieben und veranschaulicht worden sind, ist die Offenbarung jedoch nicht auf die spezifischen Formen oder Anordnungen von so beschriebenen und veranschaulichten Teilen einzuschränken. Der Schutzumfang der Offenbarung soll durch die hier beigefügten Ansprüche, jegliche zukünftigen hier und in anderen Anmeldungen eingereichten Ansprüche und deren Äquivalente definiert werden.