-
GEBIET DER ERFINDUNG
-
Diese Erfindung bezieht sich auf ein Vermeiden von Hindernissen bei autonomen Fahrzeugen durchzuführen.
-
STAND DER TECHNIK
-
In vielen verkehrsreichen, urbanen Gebieten wie San Francisco, Kalifornien, USA, oder London, Vereinigtes Königreich, überholen Motorradfahrer häufig langsame oder stehen gebliebene Fahrzeuge im Verkehr, indem sie zwischen den Fahrspuren fahren, was auch als lane-splitting bezeichnet wird. Dies ist eine sehr gefährliche Fahrtätigkeit, da es für Fahrer in benachbarten Fahrzeugen schwierig ist, derartige Tätigkeiten zu erfassen, insbesondere, wenn Spuren zusammenlaufen. Selbst für zukünftige autonome Fahrzeuge, die eingebaute 360-Grad-Erfassungssysteme aufweisen könnten, würde es eine Herausforderung sein, sich schnell bewegende Objekte wie Motorräder, die Spuren mit viel höheren relativen Geschwindigkeiten wechseln, zu identifizieren. Diese Schwierigkeit würde daher Herausforderungen für die gesamten Erfassungssuiten und -algorithmen präsentieren. Ferner ist es dort problematisch, wo Objekte oder Fahrzeuge ein Erfassungssystem verdecken.
-
Die hier offenbarten Systeme und Verfahren stellen einen Ansatz zum erfassen von lane-splitting ausführenden Fahrzeugen bereit.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Damit die Vorteile der Erfindung ohne weiteres verstanden werden, wird eine nähere Beschreibung der oben kurz beschriebenen Erfindung durch Bezugnahme auf spezifische Ausführungsformen ausgeführt, die in den beigefügten Zeichnungen veranschaulicht sind. Mit dem Verständnis, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung abbilden und daher nicht so betrachtet werden sollen, dass sie ihren Schutzumfang einschränken, wird die Erfindung mit zusätzlicher Spezifität und Ausführlichkeit durch Verwendung der zugehörigen Zeichnungen beschrieben und erklärt:
-
1A und 1B sind schematische Blockdarstellungen eines Systems zur Implementierung von Ausführungsformen der Erfindung;
-
2 ist ein schematisches Blockdiagramm einer beispielhaften Recheneinrichtung, die zum Implementieren von Verfahren gemäß Ausführungsformen der Erfindung geeignet ist;
-
3 ist ein Prozessflussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung zum Trainieren eines Modells, ein lane-splitting ausführendes Fahrzeug zu detektieren;
-
4A und 4B sind schematische Blockdarstellungen eines Szenarios zum Trainieren des Modells gemäß einer Ausführungsform der vorliegenden Erfindung; und
-
5 ist ein Prozessflussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung zum Detektieren von lane-splitting ausführenden Fahrzeugen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es versteht sich ohne weiteres, dass die Komponenten der vorliegenden Erfindung, wie sie vorliegend allgemein beschrieben und in den Figuren veranschaulicht sind, in einer großen Vielzahl unterschiedlicher Konfigurationen angeordnet und konzipiert sein könnten. Somit soll die folgende, ausführlichere Beschreibung der Ausführungsformen der Erfindung, wie sie in den Figuren repräsentiert sind, nicht den Schutzumfang der Erfindung, wie er beansprucht wird, einschränken, sondern ist lediglich repräsentativ für gewisse Beispiele für gegenwärtig in Betracht gezogene Ausführungsformen gemäß der Erfindung. Die vorliegend beschriebenen Ausführungsformen werden am besten durch Bezugnahme auf die Zeichnungen verstanden werden, wobei gleiche Teile durchweg durch gleiche Bezugszahlen bezeichnet werden.
-
Ausführungsformen gemäß der vorliegenden Erfindung können als eine Vorrichtung, ein Verfahren oder ein Computerprogrammprodukt verkörpert sein. Dementsprechend kann die vorliegende Erfindung die Form einer Ausführungsform komplett als Hardware, einer Ausführungsform komplett als Software (einschließlich Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier alle im Allgemeinen als ein „Modul“ oder „System“ bezeichnet werden können. Weiterhin kann die vorliegende Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem beliebigen greifbaren Ausdrucksmedium verkörpert ist, das computeranwendbaren Programmcode aufweist, der in dem Medium verkörpert ist.
-
Eine beliebige Kombination aus einem oder mehreren computeranwendbaren oder computerlesbaren Medien kann genutzt werden. Zum Beispiel kann ein computerlesbares Medium eines oder mehrere von Folgenden enthalten: eine tragbare Computer-Diskette, eine Festplatte, eine Direktzugriffsspeicher(RAM)-Einrichtung, eine Festwertspeicher(ROM)-Einrichtung, eine löschbare, programmierbare ROM(EPROM oder Flash-Speicher)-Einrichtung, einen tragbaren Compact Disc ROM (CD-ROM), eine optische Speichereinrichtung und eine Magnetspeichereinrichtung. Bei ausgewählten Ausführungsformen kann ein computerlesbares Medium ein beliebiges nichtflüchtiges Medium umfassen, das das Programm zur Verwendung durch oder in Verbindung mit dem Anweisungsausführungssystem, der Anweisungsausführungsvorrichtung oder -einrichtung enthalten, speichern, kommunizieren, verbreiten oder transportieren kann.
-
Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann in irgendeiner Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie zum Beispiel Java, Smalltalk, C++ oder ähnliche, und konventioneller prozeduraler Programmiersprachen, wie zum Beispiel die „C“-Programmiersprache oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf einem Computersystem als ein eigenständiges Software-Paket, auf einer eigenständigen Hardware-Einheit, zum Teil auf einem entfernten Computer, der in einigem Abstand vom Computer beabstandet ist, oder komplett auf einem entfernten Computer oder Server ausgeführt werden. Beim letzteren Szenario kann der entfernte Computer mit dem Computer durch eine beliebige Art von Netzwerk verbunden sein, einschließlich einem Local Area Network (LAN) oder einem Wide Area Network (WAN), oder die Verbindung kann zu einem externen Computer erfolgen (zum Beispiel durch das Internet unter Verwendung eines Internet Service Providers).
-
Die vorliegende Erfindung wird im Folgenden unter Bezugnahme auf die Flussdiagrammveranschaulichungen und/oder die Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagrammveranschaulichungen und/oder der Blockdiagramme und Kombinationen von Blöcken in den Flussdiagrammveranschaulichungen und/oder Blockdiagrammen durch Computerprogrammanweisungen oder -code implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Allzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Erzeugung einer Maschine bereitgestellt werden, so dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Implementieren der in dem Flussdiagramm und/oder Blockdiagramm-Block oder -Blöcken spezifizierten Funktionen/Vorgänge erstellen.
-
Diese Computerprogrammanweisungen können auch in einem nichtflüchtigen, computerlesbaren Medium gespeichert werden, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung anleiten kann, in einer speziellen Art und Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen ein Produkt erzeugen, das Anweisungsmittel enthält, die die/den im Flussdiagramm und/oder Blockdiagramm-Block oder -Blöcken spezifizierte(n) Funktion/Vorgang implementieren.
-
Die Computerprogrammanweisungen können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung geladen werden, um zu bewirken, dass eine Reihe von operativen Schritten auf dem Computer oder der anderen programmierbaren Vorrichtung durchgeführt werden, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Implementieren der in dem Flussdiagramm und/oder Blockdiagramm-Block oder -Blöcken spezifizierten Funktionen/Vorgänge bereitstellen.
-
Gemäß 1 kann eine Netzwerkumgebung 100 ein Serversystem 102 umfassen und kann eine Datenbank 104 umfassen oder auf diese zugreifen, die Daten aufweist, die ausreichen, um ein Szenario zum Trainieren eines Detektionssystems zu definieren. Insbesondere kann die Datenbank 104 Fahrzeugmodelle 106a speichern, die die Geometriedaten 108a des Fahrzeugs, z. B. die Form des Chassis, der Reifen und anderer sichtbarer Merkmale des Fahrzeugs, umfassen. Die Geometriedaten 108a können ferner Materialdaten umfassen, wie etwa Härte oder Materialtypen. Das Modell 106 kann ferner ein Geräuschprofil 108b umfassen, das Audiodateien oder andere Daten umfasst, die für Geräusche (d.h. einen bestimmten Ton oder Töne) charakteristisch sind, der durch das Fahrzeug unter bestimmten Umständen, z. B. bei verschiedenen Geschwindigkeiten und verschiedenen Beschleunigungswerten bei verschiedenen Geschwindigkeiten, produziert werden. Das Fahrzeugmodell 106a kann ferner ein dynamisches Modell 108c umfassen, das Betätigungsgrenzen des Fahrzeugs angibt, z. B. Wenderadius, Beschleunigungsprofil (Maximalbeschleunigung bei einer bestimmten Geschwindigkeit) und dergleichen. Die Fahrzeugmodelle 106a können auf tatsächlichen Fahrzeugen basieren und die Felder 108a–108c können unter Verwendung von Daten belegt werden, die bei Messung der tatsächlichen Fahrzeuge erhalten werden.
-
Bei einigen Ausführungsformen kann die Datenbank 104 ein Fahrzeugmodell 106b für ein Fahrzeug speichern, das ein oder mehrere Sensoren enthält, die zur Hindernisdetektion verwendet werden. Wie unten beschrieben wird, können die Ausgaben dieser Sensoren in ein Modell eingegeben werden, das unter Verwendung der Modelle der Datenbank 104 trainiert wird. Dementsprechend kann das Fahrzeugmodell 106b zusätzlich ein Sensormodell 108d umfassen, dass die Orte der Sensoren am Fahrzeug, die Orientierungen der Sensoren und einen oder mehrere Deskriptoren der Sensoren angibt. Zum Beispiel kann das Sensormodell 108d für ein Mikrofon den Verstärkungsfaktor, den Rauschabstand, das Empfindlichkeitsprofil (Empfindlichkeit als Funktion der Frequenz) und dergleichen umfassen. Für eine Kamera kann das Sensormodell 108d das Sichtfeld, die Auflösung, Zoom, Einzelbildrate oder eine andere Betriebsgrenze der Kamera umfassen. Für einen LIDAR- oder RADAR-Sensor kann das Sensormodell 108d eine Auflösung, ein Sichtfeld und eine Abtastrate des Systems umfassen.
-
Die Datenbank 104 kann ein Umgebungsmodell 106c umfassen, das Modelle verschiedener Landschaften umfasst, wie etwa Modelle von Straßen in Städten mit Kreuzungen, Gebäuden, Fußgängern, Bäumen usw. Die Modelle können die Geometrie und den Ort von Objekten in einer Landschaft definieren und können ferner andere Aspekte umfassen, wie Reflexionsgrad gegenüber Laser, RADAR, Schall, Licht usw., um Simulation der Wahrnehmung der Objekte durch einen Sensor zu ermöglichen.
-
Die Datenbank 104 kann ein Maschinenlernmodell 110 speichern. Das Maschinenlernmodell 110 kann unter Verwendung der Modelle 106a–106c gemäß den hier beschriebenen Verfahren trainiert werden. Das Maschinenlernmodell 110 kann ein tiefes neuronales Netzwerk, ein bayesisches Netzwerk oder eine andere Art von Maschinenlernmodell sein.
-
Das Serversystem 102 kann eine Trainings-Engine 112 (Trainingsmaschine) ausführen. Die Trainings-Engine 112 kann ein Szenariomodul 114a umfassen. Das Szenariomodul 114a kann die Modelle 106a–106c abrufen und kann ein Szenario von Modellen und Fahrzeugen erzeugen, die sich entlang Modellen der Straße bewegen. Das Szenariomodul 114a kann diese Szenarien manuell erzeugen oder Eingaben vom Menschen empfangen, die anfängliche Orte von Fahrzeugen, Geschwindigkeiten von Fahrzeugen usw. angeben. Bei einigen Ausführungsformen können Szenarios auf der Basis von Video oder anderen Messungen eines tatsächlichen Orts, z. B. Beobachtungen eines Orts, Bewegungen von Fahrzeugen an dem Ort, Ort anderer Objekte usw., modelliert werden. Wie oben erwähnt, stellen die hier offenbarten Systeme und Verfahren einen Ansatz zum Detektieren von lane-splitting ausführenden Fahrzeugen bereit. Dementsprechend kann eines der Fahrzeugmodelle 106a von einem Fahrzeug sein, das filtern kann, z. B. einem Motorrad, Fahrrad und dergleichen. Dementsprechend kann das Szenariomodul 114a Modelle von lane-splitting ausführenden Fahrzeugen zu dem Szenario hinzufügen, die sich in Bereichen zwischen Spuren zwischen Fahrzeugen bewegen und sich schneller als die Fahrzeuge bewegen.
-
Die Trainings-Engine 112 kann ein Sensorsimluationsmodul 114b umfassen. Insbesondere kann bei einem Szenario und einem in dem Szenario enthaltenen Fahrzeug mit Sensormodelldaten 108d eine Wahrnehmung des Szenarios durch die Sensoren durch das Sensorsimulationsmodul 114b simuliert werden, wie unten ausführlicher beschrieben wird.
-
Die Trainings-Engine 112 kann ein Maschinenlernmodul 114c umfassen. Das Maschinenlernmodul 114c kann das Maschinenlernmodell 110 trainieren. Zum Beispiel kann das Maschinenlernmodell 110 trainiert werden, den Ort eines lane-splitting ausführenden Fahrzeugs zu identifizieren, indem die simulierten Sensorausgaben sowie der Ort des Modells eines lane-splitting ausführenden Fahrzeugs in dem Szenario eingegeben werden. Insbesondere können die Sensorausgaben als Eingangsdatensatz bereitgestellt werden und der relative Ort des lane-splitting ausführenden Fahrzeugs kann als die gewünschte Ausgabe für den Eingangsdatensatz bereitgestellt werden.
-
Mit Bezug auf 1B kann das Maschinenlernmodell 110 zur Durchführung von Hindernisdetektion in dem dargestellten System 120 verwendet werden, das in ein Fahrzeug, wie etwa ein autonomes oder vom Menschen bedientes Fahrzeug integriert werden kann. Das System 120 kann zum Beispiel eine in einem Fahrzeug untergebrachte Steuerung 122 umfassen. Zu dem Fahrzeug kann jedes in der Technik bekannte Fahrzeug zählen. Das Fahrzeug kann alle Strukturen und Merkmale jedes in der Technik bekannten Fahrzeugs aufweisen, einschließlich Räder, einen mit den Rädern gekoppelten Antriebsstrang, einen mit dem Antriebsstrang gekoppelten Motor, ein Lenkungssystem, ein Bremssystem und andere, in der Technik bekannte Systeme, die in ein Fahrzeug einzubeziehen sind.
-
Wie vorliegend ausführlicher besprochen wird, kann die Steuerung 122 eine autonome Navigation und Kollisionsvermeidung durchführen. Insbesondere können Bilddaten und Audiodaten analysiert werden, um Hindernisse zu identifizieren. Insbesondere kann man mit Sensorausgaben Fahrzeuge identifizieren, die sich nicht im Sichtfeld einer oder mehrerer Kameras oder anderer Bildgebungssensoren befinden, wie unten mit Bezug auf 3 ausführlich beschrieben wird.
-
Die Steuerung 122 kann einen oder mehrere Bildströme von einer oder mehreren Abbildungseinrichtungen 124 empfangen. Zum Beispiel können eine oder mehrere Kameras an dem Fahrzeug befestigt sein und Bildströme ausgeben, die durch die Steuerung 122 empfangen werden. Die Steuerung 122 kann einen oder mehrere Audioströme von einem oder mehreren Mikrofonen 126 empfangen. Zum Beispiel können ein oder mehrere Mikrofone oder Mikrofonarrays an dem Fahrzeug befestigt sein und Audioströme ausgeben, die durch die Steuerung 122 empfangen werden. Die Mikrofone 126 können gerichtete Mikrofone beinhalten, die eine mit dem Winkel variierende Empfindlichkeit aufweisen. Bei einigen Ausführungsformen kann das System 120 andere mit der Steuerung 122 gekoppelte Sensoren 128 umfassen, wie etwa LIDAR, RADAR, SONAR und dergleichen. Die Orte und Orientierungen der Erfassungsvorrichtungen 124, 126, 128 können denen entsprechen, die in dem Sensormodell 108d modelliert werden, womit das Maschinenlernmodell 110 trainiert wird.
-
Die Steuerung 122 kann ein Kollisionsvermeidungsmodul 130 ausführen, das die Bildströme und Audioströme empfängt und mögliche Hindernisse identifiziert und Maßnahmen trifft, um diese zu vermeiden. Das Kollisionsvermeidungsmodul 130 kann ferner Ausgaben von den Sensoren 128 empfangen. Das Kollisionsvermeidungsmodul 130 analysiert dann die Ausgaben der Bildgebungsvorrichtungen 124, Mikrofone 126 und Sensoren 128, um potentielle Hindernisse zu identifizieren.
-
Das Kollisionsvermeidungsmodul 130 kann ein Maschinenlernmodul 132a umfassen, das Ausgaben der Bildgebungsvorrichtungen 124, Mikrofone 126 und Sensoren 128 empfängt und eine Schätzung dahingehend ausgibt, ob die Ausgaben die Anwesenheit eines lane-splitting ausführenden Fahrzeugs und eine Richtung oder Distanz zu dem lane-splitting ausführenden Motorrad angeben.
-
Das Kollisionsvermeidungsmodul 130 kann ferner ein Hindernisidentifikationsmodul 132b, ein Kollisionsvorhersagemodul 132c und ein Entscheidungsmodul 132d umfassen. Das Hindernisidentifikationsmodul 132b analysiert den einen oder die mehreren Bildströme und identifiziert potentielle Hindernisse, darunter Personen, Tiere, Fahrzeuge, Gebäude, Bordsteine und andere Objekte und Strukturen. Insbesondere kann das Hindernisidentifikationsmodul 132b die Fahrzeugbilder in dem Bildstrom identifizieren.
-
Das Kollisionsvorhersagemodul 132c sagt voraus, welche Hindernisbilder mit dem Fahrzeug auf der Basis seiner aktuellen Trajektorie oder seines aktuellen beabsichtigten Pfads wahrscheinlich kollidieren werden. Das Kollisionsvorhersagemodul 132c kann die Wahrscheinlichkeit von Kollision mit durch das Hindernisidentifikationsmodul 132b identifizierten Objekten sowie unter Verwendung des Maschinenlernmoduls 132a detektierten Hindernissen auswerten. Das Entscheidungsmodul 132d kann eine Entscheidung treffen, anzuhalten, zu beschleunigen, abzubiegen usw., um Hindernisse zu vermeiden. Wie das Kollisionsvorhersagemodul 132c potentielle Kollisionen vorhersagt und wie das Entscheidungsmodul 132d Aktionen unternimmt, um potentielle Kollisionen zu vermeiden, kann gemäß einem beliebigen Verfahren oder System, das in der Technik autonomer Fahrzeuge bekannt ist, sein.
-
Das Entscheidungsmodul 132d kann die Trajektorie des Fahrzeugs durch Betätigen eines oder mehrerer die Richtung und Geschwindigkeit des Fahrzeugs steuernder Aktoren 136 steuern. Zum Beispiel können die Aktoren 136 einen Lenkungsaktor 138a, einen Gaspedalaktor 138b und einen Bremsenaktor 138c umfassen. Die Konfiguration der Aktoren 138a–138c kann gemäß einer beliebigen Implementierung solcher Aktoren sein, die in der Technik autonomer Fahrzeuge bekannt ist.
-
2 ist ein Blockdiagramm, das eine beispielhafte Recheneinrichtung 200 veranschaulicht. Die Recheneinrichtung 200 kann zum Durchführen verschiedener Prozeduren, wie etwa die vorliegend besprochenen, verwendet werden. Das Serversystem 102 und die Steuerung 122 können einige oder alle der Attribute der Recheneinrichtung 200 aufweisen.
-
Die Recheneinrichtung 200 beinhaltet einen oder mehrere Prozessoren 202, eine oder mehrere Speichereinrichtungen 204, eine oder mehrere Schnittstellen 206, eine oder mehrere Massenspeichereinrichtungen 208, eine oder mehrere Eingabe/Ausgabe(E/A)-Einrichtungen 210 und eine Anzeigeeinrichtung 230, die alle mit einem Bus 212 gekoppelt sind. Der Prozessor bzw. die Prozessoren 202 beinhalten einen oder mehrere Prozessoren oder eine oder mehrere Steuerungen, die Anweisungen ausführen, die in einer oder mehreren Speichereinrichtungen 204 und/oder Massenspeichereinrichtungen 208 gespeichert sind. Der Prozessor bzw. die Prozessoren 202 können auch verschiedene Arten von computerlesbaren Medien beinhalten, wie zum Beispiel Cache-Speicher.
-
Die eine oder die mehreren Speichereinrichtungen 204 beinhalten verschiedene computerlesbare Medien, wie etwa flüchtigen Speicher (z. B. Direktzugriffsspeicher (RAM) 214) und/oder nichtflüchtigen Speicher (z. B. Festwertspeicher (ROM) 216). Die eine oder die mehreren Speichereinrichtungen 204 können auch wiederbeschreibbares ROM beinhalten, wie zum Beispiel Flash-Speicher.
-
Die eine oder die mehreren Massenspeichereinrichtungen 208 beinhalten verschiedene computerlesbare Medien, wie etwa Magnetbänder, Magnetplatten, optische Platten, Halbleiterspeicher (z. B. Flash-Speicher) und so fort. Wie in 2 dargestellt, ist eine spezielle Massenspeichereinrichtung ein Festplattenlaufwerk 224. Verschiedene Laufwerke können auch in der oder den Massenspeichereinrichtungen 208 enthalten sein, um das Lesen von und/oder das Schreiben auf die verschiedenen computerlesbaren Medien zu ermöglichen. Die eine oder die mehreren Massenspeichereinrichtungen 208 beinhalten auswechselbare Medien 226 und/oder nicht auswechselbare Medien.
-
Die eine oder die mehreren E/A-Einrichtungen 210 beinhalten verschiedene Einrichtungen, die gestatten, dass Daten und/oder andere Informationen in die Recheneinrichtung 200 eingegeben oder aus ihr abgerufen werden. Beispielhafte E/A-Einrichtung(en) 210 wären Cursorsteuervorrichtungen, Tastaturen, Tastenfelder, Mikrofone, Monitore oder andere Anzeigeeinrichtungen, Lautsprecher, Drucker, Netzwerkschnittstellenkarten, Modems, Linsen, CCDs oder andere Bildaufnahmevorrichtungen und dergleichen.
-
Die Anzeigeeinrichtung 230 beinhaltet eine beliebige Art von Einrichtung, die in der Lage ist, für einen oder mehrere Benutzer der Recheneinrichtung 200 Informationen anzuzeigen. Beispiele für die Anzeigeeinrichtung 230 beinhalten einen Monitor, eine Anzeigestation, eine Videoprojektionseinrichtung und dergleichen.
-
Die eine oder die mehreren Schnittstellen 206 beinhalten verschiedene Schnittstellen, die der Recheneinrichtung 200 gestatten, mit anderen Systemen, Einrichtungen oder Rechenumgebungen zu interagieren. Die eine oder die mehreren beispielhaften Schnittstellen 206 beinhalten eine beliebige Anzahl von unterschiedlichen Netzwerkschnittstellen 220, wie etwa Schnittstellen zu Local Area Networks (LANs), Wide Area Networks (WANs), drahtlosen Netzwerken und dem Internet. Eine oder mehrere andere Schnittstellen beinhalten eine Benutzerschnittstelle 218 und eine Peripherieeinrichtungsschnittstelle 222. Die Schnittstelle(n) 206 kann bzw. können auch eine oder mehrere Peripherieschnittstellen umfassen, wie etwa Schnittstellen für Drucker, Zeigevorrichtungen (Mäuse, Trackpad usw.), Tastaturen und dergleichen.
-
Der Bus 212 gestattet es dem einen oder den mehreren Prozessoren 202, der einen oder den mehreren Speichereinrichtungen 204, der einen oder den mehreren Schnittstellen 206, der einen oder den mehreren Massenspeichereinrichtungen 208, der einen oder den mehreren E/A-Einrichtungen 210 und der Anzeigeeinrichtung 230, ebenso miteinander zu kommunizieren wie auch mit anderen Einrichtungen oder Komponenten, die mit dem Bus 212 gekoppelt sind. Der Bus 212 repräsentiert eine oder mehrere von mehreren Arten von Busstrukturen, wie etwa einen Systembus, PCI-Bus, IEEE-1394-Bus, USB-Bus und so fort.
-
Zur Veranschaulichung werden Programme und andere ausführbare Programmkomponenten vorliegend als diskrete Blöcke dargestellt, obwohl es sich versteht, dass derartige Programme und Komponenten zu verschiedenen Zeitpunkten in unterschiedlichen Speicherkomponenten der Recheneinrichtung 200 liegen können und durch den einen oder die mehreren Prozessoren 202 ausgeführt werden. Alternativ dazu können die vorliegend beschriebenen Systeme und Prozeduren in Hardware oder in einer Kombination von Hardware, Software und/oder Firmware implementiert sein. Zum Beispiel können eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs) programmiert sein, die vorliegend beschriebenen Systeme und/oder Verfahren auszuführen.
-
Mit Bezug auf 3 kann das dargestellte Verfahren 300 durch das Serversystem 102 ausgeführt werden, um das Maschinenlernmodell 110 zu trainieren. Das Verfahren 300 kann definieren 302 eines Szenariomodells umfassen. Zum Beispiel kann wie in 4A und 4B gezeigt ein Umgebungsmodell mit einer Straße 400 mit Modellen von Fahrzeugen 402 kombiniert werden, die in Spuren der Straße 400 platziert werden und Geschwindigkeiten und Beschleunigung aufweisen, die von einem Zeitschritt zum nächsten während der Ausbreitung des Szenariomodells variieren können. Ein lane-splitting ausführendes Fahrzeug 404 kann in dem Modell zwischen Spuren der Fahrzeuge 402 platziert werden und ähnlich eine Geschwindigkeit und Beschleunigung aufweisen, die von einem Zeitschritt zum nächsten variieren können. In einigen Szenarien fährt das filternde Fahrzeug signifikant schneller als umgebende Fahrzeuge 402.
-
Ein betreffendes Fahrzeug 406 kann auch in dem Modell platziert werden und kann eine Geschwindigkeit und Beschleunigung aufweisen, die von einem Zeitschritt zum nächsten variiert. Wahrnehmung des Szenarios durch Mikrofone, Bildgebungsvorrichtungen und/oder andere Sensoren kann vom Standpunkt des betreffenden Fahrzeugs 406 aus simuliert werden. Insbesondere können Orte und Orientierungen von Bildgebungsvorrichtungen 408a–408c, Mikrofonen 410a, 410b und anderen Sensoren 412 (z. B. LIDAR, RADAR, SONAR) an dem betreffenden Fahrzeug 406 gemäß einem Sensormodell 108d definiert werden.
-
Das Verfahren 300 kann ein Abspielen 304 der Szenario-Modelldynamik umfassen. Insbesondere kann jedes Fahrzeug 402, 404, 406 in dem Modell ein vordefiniertes Geschwindigkeits- oder Positionsprofil aufweisen, das definiert, wie sich die Geschwindigkeit und/oder das Profil mit der Zeit ändern soll. Das Abspielen 304 des Szenarios kann dementsprechend Simulieren mehrerer diskreter Zeitschritte umfassen, wobei für jeden Zeitschritt jedes Fahrzeug 402, 404, 406 gemäß dem vordefinierten Geschwindigkeits- oder Positionsprofil an eine andere Position in dem Modell bewegt wird.
-
Das Verfahren 300 kann ferner ein Simulieren 306 von Sensorwahrnehmung des Szenarios umfassen. Zum Beispiel kann für jeden Zeitschritt der Zustand des Modells (z. B. Positionen und Geschwindigkeiten der Fahrzeuge 402, 404, 406 an diesem Zeitschritt) vom Standpunkt eines bestimmten Sensors aus gesehen erfasst werden. Insbesondere können die Position der Sensoren gemäß dem Sensormodell 108d in dem betreffenden Fahrzeug 406 und die Betriebskapazität der Sensoren, sowie sie in dem Sensormodell 108d definiert ist, zur Simulation einer Sensorausgabe verwendet werden.
-
Zum Beispiel kann für jede Bildgebungsvorrichtung eine Wiedergabe des Szenarios vom Standpunkt der Bildgebungsvorrichtung an dem betreffenden Fahrzeug 406 erzeugt werden. Für ein Mikrofon kann ein Geräusch simuliert werden, das auf das Mikrofon während des Zeitschritts, propagiert von den Fahrzeugen 402, 404, 406 zu dem Ort des Mikrofons an dem betreffenden Fahrzeug, auftrifft. Das Simulieren von Geräusch kann einfach Simulieren der Ausbreitungszeit von einer Quelle des Geräuschs und etwaiger Dopplereffekte umfassen. Das Simulieren von Geräusch kann ferner ein Simulieren von Reflexionen von Fahrzeugen, dem Boden oder Gebäuden umfassen, die an dem Mikrofonort ankommen können.
-
Für einen LIDAR-Sensor kann eine Punktwolke vom Standpunkt des LIDAR-Sensors aus simuliert werden, wobei die Punkte der Punktwolke Punkte von Strukturen der Umgebung oder Fahrzeuge 402, 404, 406 des Szenarios sind, die sich im Sichtfeld des LIDAR-Sensors befinden. Bei einigen LIDAR-Systemen können gemessene Punkte sowohl eine dreidimensionale Koordinate als auch ein Reflexionsgradwert umfassen. Bei einigen Ausführungsformen können die Modelle 106a, 106b Reflexionsgradwerte von Außenoberflächen davon umfassen. Dementsprechend kann für Punkte der Punktwolke im Standpunkt des LIDAR-Systems der Reflexionsgradwert der Struktur einschließlich jedes Punktes aufgenommen werden. Es kann auch die Wahrnehmung des Szenariomodells durch verschiedene andere Sensoren aufgenommen werden. Für ein RADAR- oder SONAR-System können für jeden Zeitschritt Reflexionen von Objekten und Fahrzeugen des Szenarios simuliert werden.
-
Die verschiedenen Sensoren können andere Einzelbild- oder Abtastraten als der Zeitschritt des Aktualisierens des Szenariomodells aufweisen. Dementsprechend können mehr oder weniger Ausgaben als die Anzahl von Zeitschritten produziert werden. Für Geräusch kann zum Beispiel die Anzahl der Abtastwerte, die erforderlich ist, um Detektion von Geräusch genau zu simulieren, größer als der Zeitschritt sein. Dementsprechend können für jeden Zeitschritt mehrere Abtastwerte genommen werden. Zum Beispiel kann der Zeitschritt in kleinere Zeitschritte aufgeteilt werden, und es können simulierte Abtastwerte von Geräusch, der durch das Szenariomodell propagiert wird und auf den Mikrofonort auftrifft, aufgezeichnet werden. Auf ähnliche Weise können Bilder von einer Bildgebungsvorrichtung, Punktwolken von LIDAR, Reflexionen von RADAR oder SONAR in verschiedenen Perioden simuliert werden, die kleiner oder größer als der Zeitschritt sind.
-
Das Ergebnis des Simulierens der Sensorwahrnehmung im Schritt 306 kann ein Strom von Sensorausgaben sein, z. B. eine Reihe von Bildern, ein Audiosignal, eine Menge von Punktwolken, eine Menge von Reflexionen an verschiedenen Zeitpunkten usw. Die Ströme von Sensorausgaben können in einen Maschinenlernalgorithmus eingegeben werden 308. Genauso kann der Ort des lane-splitting ausführenden Fahrzeugs 404 in den Maschinenlernalgorithmus eingegeben werden 310.
-
Zum Beispiel können für jeden Zeitschritt eine oder mehrere Sensorausgaben für jede Art von Sensor, die für diesen Zeitschritt simuliert wurden, in den Maschinenlernalgorithmus eingegeben werden 308. Genauso kann die Position des lane-splitting ausführenden Fahrzeugs 404 an diesem Zeitschritt in das Modell eingegeben werden, z. B. die relative Position des Fahrzeugs 404 zu dem Fahrzeug 406 in dem Szenariomodell an diesem Zeitschritt. Für Audiosignale kann der Zeitschritt für eine sinnvolle Analyse zu kurz sein. Dementsprechend können Abtastwerte von simuliertem Geräusch in Schritt 308 in das Modell für mehrere Zeitschritte eingegeben werden, die jedem Zeitschritt vorausgehen und/oder folgen, d.h. ein Fenster von Zeitschritten, das jeden Zeitschritt umfasst.
-
Das Maschinenlernmodell 110 kann dann erzeugt werden 312, indem das Modell 110 für die Eingabe 308 der Sensorausgaben für jeden Zeitschritt und den Ort des Fahrzeugs 404 an jedem Zeitschritt aktualisiert wird. Die Art und Weise, wie der Maschinenlernalgorithmus das Modell 110 trainiert, kann gemäß einer beliebigen in der Technik des Maschinenlernens bekannten Weise durchgeführt werden. Genauso können die Sensorausgaben auf kontinuierliche Weise in den Maschinenlernalgorithmus eingegeben werden, statt als diskrete Datensätze für einzelne Zeitschritte.
-
Das Ergebnis des Verfahrens 300 ist ein Maschinenlernmodell 110, das trainiert ist, für einen Eingangsstrom von Daten auszugeben, (a) ob ein lane-splitting ausführendes Fahrzeug in der Nähe eines Fahrzeugs wahrgenommen wird und/oder (b) eine Richtung zu dem etwaigen lane-splitting ausführenden Fahrzeug und/oder (c) einen Ort des lane-splitting ausführenden Fahrzeugs. Viele Maschinenlernalgorithmen geben ferner eine Konfidenzbewertung aus, die angibt, wie die Wahrscheinlichkeit, dass eine Ausgabe der Modelle korrekt ist. Für beliebige von (a)–(c) kann dementsprechend auch eine entsprechende Konfidenzbewertung durch das Modell ausgegeben werden.
-
5 zeigt ein Verfahren 500 zur Verwendung des Maschinenlernmodells 110, das gemäß dem Verfahren 300 trainiert wird. Das Verfahren 500, das durch die Steuerung 122 ausgeführt werden kann, indem Ausgaben von den Bildgebungsvorrichtungen 124, dem Mikrofon 126 und/oder anderen Sensoren 128 verarbeitet werden. Das Verfahren 500 kann Empfangen 502 von Sensorausgaben umfassen. Wie oben erwähnt, können die Bildgebungsvorrichtungen Ströme von Bildern produktieren, die Mikrofone 126 können ein Audiosignal produktieren, ein LIDAR-Sensor kann eine Punktwolke produktieren und RADAR und SONAR können Reflexionen von Funk bzw. Schall aufzeichnen. Einige oder alle dieser Ausgaben können deshalb empfangen werden 502.
-
Das Verfahren 500 kann ferner Eingeben 504 der Sensorausgaben in das Maschinenlernmodell 110 und Empfangen 506 einiger oder alle von Folgendem als Ausgabe des Maschinenlernmodells 110 umfassen: (a) ob sich ein lane-splitting ausführendes Fahrzeug in der Nähe des die Steuerung 122 enthaltenen Fahrzeugs befindet, (b) eine Richtung zu dem etwaigen lane-splitting ausführenden Fahrzeug, (c) einen Ort des lane-splitting ausführendes Fahrzeugs relativ zu dem die Steuerung 122 enthaltenden Fahrzeug und (d) eine Konfidenzbewertung für eines oder mehrere von (a) bis (c).
-
Wenn sich zeigt, dass sich die Konfidenzbewertung, dass sich ein lane-splitting ausführendes Fahrzeug in der Nähe befindet, nicht über einer vorbestimmten Schwelle befindet 508, z. B. von einem Wert zwischen 70% und 99%, kann die Ausgabe des Maschinenlernmodells 110 ignoriert werden. Wenn sich zeigt, dass die Konfidenzbewertung für eines oder mehrere von (a) bis (c) die Schwelle übersteigt 508, wird das lane-splitting ausführende Fahrzeug zu einer Menge potentieller Hindernisse hinzugefügt 510. Insbesondere kann ein sich einer Zwischenspurregion näherndes potentielles Hindernis zugefügt werden 510.
-
Bei jedem Ergebnis von Schritt 508 werden Hindernisse unter Verwendung der Erfassungssysteme auf herkömmliche Weise detektiert 512: Fahrzeuge und Hindernisse können in Bildern von den Bildgebungsvorrichtungen 124 identifiziert werden, Hindernisse können in Punktwolken von einem LIDAR-Sensor identifiziert werden, sich nähernde Fahrzeuge können aus Reflexionen identifiziert werden, die durch ein RADAR- oder SONAR-System detektiert werden, und dergleichen. Unter Verwendung der verschiedenen Vorrichtungen 124, 126, 128 516 erfasste Hindernisse werden auch zu der Hindernismenge hinzugefügt. Mit Bezug auf die Hindernismenge wird Kollisionsvermeidung durchgeführt 514. Wie oben beschrieben kann dies Detektieren potentieller Kollisionen und Aktivieren eines Lenkungsaktors 138a und/oder eines Gaspedalaktors 138b und/oder eines Bremsenaktors 138c umfassen, um das Hindernis der Hindernismenge zu vermeiden sowie das Fahrzeug zu einem beabsichtigten Ziel zu führen. Wenn die Hindernismenge ein in Schritt 508 als anwesend bestimmtes lane-splitting ausführendes Fahrzeug umfasst, kann das Durchführen 514 von Kollisionsvermeidung umfassen, von dem Durchführen von Spurwechseln oder anderen Bewegungen in die Zwischenspurregion abzusehen, insbesondere auf einer Seite des Fahrzeugs, auf der sich das lane-splitting ausführende Fahrzeug befindet. Sobald das lane-splitting ausführende Fahrzeug nicht mehr detektiert wird, kann Bewegung in die Zwischenspurregion für die Zwecke von Abbiegungen, Spurwechseln usw. gestattet werden.
-
Bei einigen Ausführungsformen kann als Reaktion auf Detektion eines lane-splitting ausführendes Fahrzeugs in Schritt 508 ein Hinweis in Form eines blinkenden Lichts, eines hörbaren Geräuschs, einer gesprochenen Nachricht, eines Texts auf einer Anzeige oder dergleichen ausgegeben werden, wodurch angegeben wird, dass sich ein lane-splitting ausführendes Fahrzeug nähert und/oder auf welcher Seite des Fahrzeugs es sich befindet. Nachdem das lane-splitting ausführende Fahrzeug nicht mehr detektiert wird, kann der Hinweis abgesetzt werden.
-
Die vorliegende Erfindung kann in anderen spezifischen Formen verkörpert sein, ohne von ihrem Gedanken oder ihren wesentlichen Eigenschaften abzuweichen. Die beschriebenen Ausführungsformen sollen in jeder Hinsicht lediglich als veranschaulichend und nicht als einschränkend betrachtet werden. Der Schutzumfang der Erfindung wird daher durch die beigefügten Ansprüche angegeben, und nicht durch die vorhergehende Beschreibung. Alle Änderungen, die die gleiche Bedeutung wie die Ansprüche erlangen bzw. in den gleichen Bereich kommen, sind daher in ihren Schutzumfang einzubeziehen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-