-
EINLEITUNG
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf die Kartierung von Straßen und insbesondere auf Systeme und Verfahren zum Detektieren von Stra-ßen- und Fahrspurverbindungen an Kreuzungen.
-
Einige Fahrzeuge verwenden fahrzeuginterne Module, um Daten zu sammeln und zu übertragen. Es ist deshalb nützlich, Verfahren und Systeme zu entwickeln, um nicht von fahrzeuginternen Modulen abhängende Daten über Straßen zu sammeln. Das hier offenbarte Verfahren und System detektierten Straßen- und Fahrspurverbindungen an Kreuzungen ohne Verwendung von fahrzeuginternen Modulen.
-
ZUSAMMENFASSUNG
-
In Anbetracht eines Fahrzeugs, das sich einer spezifischen eingehenden Fahrspur einer Kreuzung nähert, beschreibt die vorliegende Offenbarung ein Verfahren zum Spezifizieren aller gültigen aufnehmenden abgehenden Fahrspuren an der Kreuzung und der Ränder der entsprechenden virtuellen Fahrspuren, die die spezifische eingehende Fahrspur mit der gültigen aufnehmenden abgehenden Fahrspur verbinden. Überdies beschreibt die vorliegende Offenbarung ein Verfahren zum Detektieren der Straßenränder der Kreuzung, die die Grenze der Kreuzung beschreiben. Diese Straßenränder repräsentieren sowohl ein Kartenmerkmal, das für das System des autonomen Fahrens nützlich ist, als auch ihre Rolle zum Ableiten anderer Kartenmerkmale, wie z. B. der Fahrspurränder und der Orte der Verkehrssteuerung.
-
Gemäß einem Aspekt der vorliegenden Offenbarung enthält ein Verfahren zum Detektieren von Straßenrändern an einer vorgegebenen Kreuzung: Empfangen, durch den Controller, von Luftbilddaten über die vorgegebene Kreuzung. Die „Luftbilddaten über die vorgegebene Kreuzung“ bedeuten Daten aus einem Bild, das innerhalb eines vorgegebenen Radius um die vorgegebene Kreuzung aufgenommen worden ist, wobei sich der Controller nicht notwendigerweise im Fahrzeug befindet; Empfangen, durch den Controller, von Fahrzeugtelemetriedaten, die innerhalb eines vorgegebenen Radius um die vorgegebene Kreuzung von mehreren Fahrzeugen, die die vorgegebene Kreuzung passieren, gesammelt worden sind; Detektieren von Straßenrändern an der vorgegebenen Kreuzung unter Verwendung der Luftbilddaten und/oder der Fahrzeugtelemetriedaten und wenigstens eines Modells des tiefen Lernens, wie z. B. eines erzeugenden gegnerischen Netzes (GAN), über einen Hybriden aus einem GAN und einem in dem Controller ausgeführten Schiebefensteralgorithmus; Klassifizieren, unter Verwendung einer Klassifikation des maschinellen Lernens, wie z. B. eines Zufallswald-Klassifikators (RFC), der in dem Controller ausgeführt wird, der vorgegebenen Kreuzung mit jedem Telemetriedatenpunkt, der durch ein entsprechendes eindeutiges Manöver markiert ist, um manövermarkierte Telemetriedatenpunkte an der vorgegebenen Kreuzung zu erzeugen; Errichten eines probabilistischen endlichen Automaten (PFSA) unter Verwendung der manövermarkierten Telemetriedatenpunkte, die durch den RFC bestimmt worden sind, und der Straßenränder, um eingehende Fahrspuren mit abgehenden Fahrspuren an der vorgegebenen Kreuzung zu paaren; und Bestimmen von Fahrspurrändern an der vorgegebenen Kreuzung unter Verwendung eines Homotopiemodells.
-
Gemäß einem Aspekt der vorliegenden Offenbarung enthält das Verfahren ferner Bestimmen, ob die unter Verwendung eines bildbasierten Modells, wie z. B. des GAN, detektierten Straßenränder genau sind.
-
Gemäß einem Aspekt der vorliegenden Offenbarung sind die unter Verwendung des GAN detektierten Straßenränder bildbasierte Straßenränder, und enthält das Verfahren ferner Bestimmen von telemetriebasierten Straßenrändern an der vorgegebenen Kreuzung unter Verwendung der Fahrzeugtelemetriedaten und eines in dem Controller ausgeführten schiebfensterbasierten Modells in Reaktion auf das Bestimmen, dass die unter Verwendung des GAN detektierten bildbasierten Straßenränder nicht genau sind.
-
Gemäß einem Aspekt der vorliegenden Offenbarung verwendet das Homotopiemodell eine Analyse der nächsten Nachbarn, um die spezifischen Straßenränder, die zum Erzeugen der geeigneten Fahrspurränder für jedes Manöver nachgeahmt werden sollen, an der vorgegebenen Kreuzung zu detektieren.
-
Gemäß einem Aspekt der vorliegenden Offenbarung enthält das Verfahren ferner Identifizieren zulässiger Manöver unter Verwendung der Fahrzeugtelemetriedaten, wobei es die Datenpunkte der Fahrzeugtelemetriedaten, die den zulässigen Manövern entsprechen, als wegmarkierte Datenpunkte markiert. Dies bezieht sich nur auf zulässige Manöver.
-
Gemäß einem Aspekt der vorliegenden Offenbarung enthält das Verfahren ferner Trainieren des RFC unter Verwendung der wegmarkierten Datenpunkte.
-
Gemäß einem Aspekt der vorliegenden Offenbarung verwendet das Homotopiemodell eine lineare Interpolation, um die Fahrspurränder an der vorgegebenen Kreuzung zu bestimmen.
-
Gemäß einem Aspekt der vorliegenden Offenbarung verwendet das Homotopiemodell eine Vektordrehung, um die Fahrspurränder an der vorgegebenen Kreuzung zu detektieren.
-
Gemäß einem Aspekt der vorliegenden Offenbarung enthält das Verfahren ferner das Steuern eines Host-Fahrzeugs, so dass das Host-Fahrzeug beim Durchfahren der vorgegebenen Kreuzung innerhalb der Fahrspurränder bleibt.
-
Die obigen Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden Lehren sind aus der folgenden ausführlichen Beschreibung einiger der besten Arten und anderer Ausführungsformen zum Ausführen der vorliegenden Lehren, wie sie in den beigefügten Ansprüchen definiert sind, leicht ersichtlich, wenn sie in Verbindung mit den beigefügten Zeichnungen betrachtet werden.
-
Figurenliste
-
Die vorliegende Offenbarung wird in Verbindung mit den folgenden Figuren beschrieben, wobei gleiche Bezugszeichen gleiche Elemente bezeichnen, es zeigen:
- 1 eine schematische graphische Darstellung eines Systems zum Sammeln von Luftbildern und Fahrzeugtelemetriedaten;
- 2 einen Ablaufplan eines Verfahrens zum Detektieren von Straßen- und Fahrspurverbindungen an einer Kreuzung;
- 3 einen Ablaufplan eines Verfahrens zum Detektieren von Straßen unter Verwendung von GANs, das ein Abschnitt des Verfahrens nach 2 ist;
- 4 einen Ablaufplan eines Verfahrens zum Detektieren von Straßenrändern unter Verwendung von Telemetriedaten, das ein Abschnitt des Verfahrens nach 2 ist;
- 5 einen Ablaufplan eines Verfahrens zur Manövermarkierung, das ein Abschnitt des Verfahrens nach 2 ist;
- 6 ein Verfahren zum Errichten einer PFSA für die Fahrspurpaarung, das ein Abschnitt des Verfahrens nach 2 ist;
- 7 einen Ablaufplan eines Verfahrens zum Detektieren von Fahrspurrändern unter Verwendung eines Homotopiemodells;
- 8 eine schematische graphische Darstellung zum Schätzen der Homotopie unter Verwendung linearer Interpolation; und
- 9 eine schematische graphische Darstellung zum Schätzen der Homotopie unter Verwendung von Vektordrehungen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende ausführliche Beschreibung ist lediglich beispielhaft und soll die Anwendung und die Verwendungen nicht einschränken. Weiterhin gibt es keine Absicht, an die ausdrückliche oder implizite Theorie gebunden zu sein, die in dem vorangehenden technischen Gebiet, dem vorangehenden Hintergrund, der vorangehenden kurzen Zusammenfassung oder der folgenden ausführlichen Beschreibung dargestellt ist.
-
Der Begriff „Modul“, wie er hier verwendet wird, bezieht sich auf Hardware, Software, Firmware, elektronische Steuerkomponenten, eine Verarbeitungslogik und/oder eine Prozessorvorrichtung, einzeln oder in deren Kombination, einschließlich und ohne Einschränkung: anwendungsspezifischer integrierter Schaltungen (ASIC), einer elektronische Schaltung, eines Prozessors (gemeinsam benutzt, dediziert oder Gruppe) und Speichers, der ein oder mehrere Software- oder Firmware-Programme ausführt, einer kombinatorischen Logikschaltung und/oder anderer geeigneter Komponenten, die die beschriebene Funktionalität bereitstellen.
-
Die Ausführungsformen der vorliegenden Offenbarung können hier in Form von funktionalen und/oder logischen Blockkomponenten und verschiedenen Prozessschritten beschrieben werden. Es sollte erkannt werden, dass derartige Blockkomponenten durch eine Anzahl von Hardware-, Software- und/oder Firmware-Komponenten verwirklicht sein können, die konfiguriert sind, die spezifizierten Funktionen auszuführen. Eine Ausführungsform der vorliegenden Offenbarung kann z. B. verschiedene integrierte Schaltungskomponenten, z. B. Speicherelemente, digitale Signalverarbeitungselemente, Logikelemente, Nachschlagetabellen oder dergleichen, verwenden, die unter der Steuerung eines oder mehrerer Mikroprozessoren oder anderer Steuervorrichtungen verschiedene Funktionen ausführen können. Zusätzlich erkennen die Fachleute auf dem Gebiet, dass die Ausführungsformen der vorliegenden Offenbarung in Verbindung mit einer Anzahl von Systemen praktiziert werden können und dass die hier beschriebenen Systeme lediglich beispielhafte Ausführungsformen der vorliegenden Offenbarung sind.
-
Um der Kürze willen können auf Signalverarbeitung, Datenfusion, Signalisierung, Steuerung und andere funktionale Aspekte der Systeme (und der einzelnen Betriebskomponenten der Systeme) bezogene Techniken hier nicht ausführlich beschrieben werden. Weiterhin sollen die in den verschiedenen hier enthaltenen Figuren gezeigten Verbindungslinien beispielhafte funktionale Beziehungen und/oder physische Kopplungen zwischen den verschiedenen Elementen darstellen. Es sollte beachtet werden, dass in einer Ausführungsform der vorliegenden Offenbarung alternative oder zusätzliche funktionale Beziehungen oder physische Verbindungen vorhanden sein können.
-
In 1 ist ein Steuersystem 10 konfiguriert, um Straßenränder an einer vorgegebenen Kreuzung zu detektieren. In der dargestellten Ausführungsform enthält das System 10 einen Controller 12. Der Controller 12 enthält wenigstens einen Prozessor 14 und eine nicht transitorische computerlesbare Speichervorrichtung oder Medien 16. Der Prozessor 14 kann ein kundenspezifisch angefertigter Prozessor, eine Zentraleinheit (CPU), ein Hilfsprozessor unter mehreren dem Controller 12 zugeordneten Prozessoren, ein halbleiterbasierter Mikroprozessor (in der Form eines Mikrochips oder Chipsatzes), ein Makroprozessor, eine Kombination davon oder im Allgemeinen eine Vorrichtung zur Ausführung von Anweisungen sein. Die computerlesbare Speichervorrichtung oder Medien 16 können flüchtigen und nichtflüchtigen Speicher z. B. in Festwertspeicher (ROM), Schreib-Lese-Speicher (RAM) und Haltespeicher (KAM) enthalten. KAM ist ein permanenter oder nichtflüchtiger Speicher, der verwendet werden kann, um verschiedene Betriebsvariable zu speichern, während der Prozessor 14 ausgeschaltet ist. Die computerlesbare Speichervorrichtung oder die computerlesbaren Medien 16 können unter Verwendung einer Anzahl von Speichervorrichtungen, wie z. B. PROMs (programmierbarer Festwertspeicher), EPROMs (elektrisch PROM), EEPROMs (elektrisch löschbarer PROM), Flash-Speicher oder weiteren elektrischen, magnetischen, optischen oder Kombinationsspeichervorrichtungen implementiert sein, die Daten speichern können, von denen einige ausführbare Anweisungen repräsentieren, die durch den Controller 12 verwendet werden. Wie im Folgenden erörtert wird, ist der Controller 12 programmiert, das Verfahren 100 (2) auszuführen.
-
Das System 10 kann ferner ein oder mehrere Fahrzeuge 18 enthalten oder in Kombination mit einem oder mehreren Fahrzeugen 18 vorhanden sein. Jedes Fahrzeug 18 enthält einen oder mehrere Fahrzeugsensoren 20, die Fahrzeugtelemetriedaten abtasten. Die Fahrzeuge 18 können autonom sein. Die Fahrzeugtelemetriedaten der Fahrzeuge 18 können die Fahrzeugposition (z. B. die Längen- und Breitenkoordinaten), die Fahrzeuggeschwindigkeit, den Fahrzeugkurs neben anderen Merkmalen enthalten. Um die Fahrzeugtelemetriedaten abzutasten, können die Fahrzeugsensoren 20 z. B. Lidare, Geschwindigkeitsmesser, Radare, Sender/Empfänger des globalen Positionierungssystem (GPS), Kilometerzähler, eine oder mehrere Kameras (z. B. optische Kameras und/oder Wärmekameras, wie z. B. eine Heckkamera und/oder eine Frontkamera), einen Lenkwinkelsensor, Ultraschallsensoren, eine oder mehrere Trägheitsmesseinheiten (IMU) und/oder andere Sensoren 20 enthalten, sind aber nicht darauf eingeschränkt. Ungeachtet der Art der verwendeten Fahrzeugsensoren 20 sind die Fahrzeugtelemetriedaten sogenannte Crowd-Source-Daten, die von den Fahrzeugen 18 in vorgegebenen Intervallen (z. B. alle drei Sekunden) gesammelt werden, wenn das Fahrzeug 18 eingeschaltet ist.
-
Das System 10 kann ferner ein Telekommunikationssystem 22 enthalten oder mit einem Telekommunikationssystem 22 in Verbindung stehen. Deshalb stehen die Fahrzeugsensoren 20 über die Telekommunikationssysteme 22 mit dem Controller 12 in Verbindung. Die Telekommunikationssysteme 22 können z. B. einen oder mehrere Fernmeldetürme 24 und/oder einen oder mehrere Telekommunikationssatelliten 26 enthalten, um die Fahrzeugtelemetriedaten vom Fahrzeug 18 zu einer Datenbank 28 zu übertragen. Die Datenbank 28 kann Teil des Telekommunikationssystems 22 sein und steht mit dem Controller 12 in Verbindung. Die Fahrzeugtelemetriedaten als solche können von den Fahrzeugen 18 über das Telekommunikationssystem 22 zu dem Controller 12 übertragen werden.
-
Das System 10 kann ferner eine Luftvorrichtung 30, wie z. B. ein Luftfahrzeug, einen Hubschrauber, ein unbemanntes Luftfahrzeug (UAV), einen Ballon, einen Satelliten unter anderen, enthalten oder mit dieser in Verbindung stehen. Die Luftvorrichtung 30 enthält einen oder mehrere Bildsensoren 32, wie z. B. eine Kamera, die konfiguriert sind, Luftbilder einer Straßenkreuzung zu sammeln. Die Luftbilder werden dann in Luftbilddaten transformiert. Weil die Luftvorrichtung 30 mit dem Controller 12 in Verbindung steht, können die Luftbilddaten von der Luftvorrichtung 30 zu dem Controller 12 übertragen werden.
-
2 ist ein Ablaufplan für ein Verfahren 100 zum Detektieren von Straßenrändern an einer vorgegebenen Kreuzung 34. Das Verfahren 100 beginnt im Block 102. Im Block 102 sammelt der Bildsensor 32 Luftbilddaten von der vorgegebenen Kreuzung 34. Wie oben erörtert worden ist, kann der Bildsensor 32 eine Kamera sein, wobei er in einer Luftvorrichtung 30, wie z. B. einem Luftfahrzeug, angebracht ist. Um die Luftbilddaten zu sammeln, nimmt der Bildsensor 32 Bilder der vorgegebenen Kreuzung 34 auf. Nach dem Sammeln der Luftbilddaten geht das Verfahren 100 zum Block 104 weiter. Im Block 104 empfängt und verarbeitet der Controller 12 die Luftbilddaten.
-
Das Verfahren 100 enthält außerdem den Block 106. Im Block 106 sammeln die Fahrzeugsensoren 20 Telemetriedaten über die Fahrzeuge 18, die die vorgegebene Kreuzung 34 passieren. Wie oben erörtert worden ist, können die Telemetriedaten der Fahrzeuge 18 die Fahrzeugposition (z. B. die Längen- und Breitenkoordinaten), die Fahrzeuggeschwindigkeit, den Fahrzeugkurs neben anderen Merkmalen enthalten. Ferner werden die Telemetriedaten von den Fahrzeugen 18 in vorgegebenen Intervallen (z. B. alle drei Sekunden) per sogenanntem Crowd-Sourcing beschafft, wenn das Fahrzeug 18 eingeschaltet ist. Nach dem Sammeln der Telemetriedaten geht das Verfahren 100 zum Block 108 weiter. Im Block 108 empfängt und verarbeitet der Controller 12 die Telemetriedaten von wenigstens einem der Fahrzeuge 18, die die vorgegebene Kreuzung 34 passieren.
-
Das Verfahren 100 enthält ferner den Block 109. Im Block 109 verwendet der Controller 12 die Luftbilddaten, um die Straßenränder an der vorgegebenen Kreuzung 34 zu detektieren. Die Straßenränder 36, die unter Verwendung der Luftbilddaten detektiert werden, können als bildbasierte Straßenränder bezeichnet werden. Um die Straßenränder unter Verwendung der Luftbilddaten zu detektieren, kann der Controller 12 erzeugende gegnerische Netze (GANs) ausführen. Nach dem Detektieren der Straßenränder 36 an der vorgegebenen Kreuzung 34 geht das Verfahren 100 zum Block 110 weiter.
-
Im Block 110 bestimmt der Controller 12, ob die unter Verwendung des GAN detektierten Straßenränder 36 genau sind. Um dies auszuführen, kann der Controller 12 einen Bildklassifikator ausführen, wie z. B. einen Klassifikator eines neuronalen Faltungsnetzes (CNN). Im Block 110 kann der Controller 12 den CNN-Klassifikator verwenden, um zu bestimmen, ob die unter Verwendung des GAN detektierten Straßenränder 36 genau sind. Das Verfahren 100 geht dann zum Entscheidungsblock 112 weiter.
-
Im Entscheidungsblock 112 geht das Verfahren 100 dann und nur dann zum Block 114 weiter, wenn der CNN-Klassifikator bestimmt, dass die unter Verwendung des GAN detektierten Straßenränder nicht genau sind. Andererseits geht das Verfahren 100 dann und nur dann zum Block 116 weiter, wenn die unter Verwendung des GAN detektierten Straßenränder 36 genau sind.
-
Im Block 114 führt der Controller 12 unter Verwendung der Fahrzeugtelemetriedaten einen schiebefensterbasierenden Algorithmus aus, um die Straßenränder 36 an der vorgegebenen Kreuzung 34 zu detektieren. Die Straßenränder 36, die unter Verwendung der Fahrzeugtelemetriedaten detektiert werden, können als telemetriebasierte Straßenränder bezeichnet werden.
-
Das Verfahren 100 enthält außerdem den Block 118. Im Block 118 klassifiziert der Controller 12 jede Fahrzeugtrajektorie der Fahrzeuge 20, die die vorgegebene Kreuzung 34 passieren, mit einer Markierung, die einem eindeutigen Manöver entspricht, um eine Manövermarkierung an der vorgegebenen Kreuzung 34 zu erzeugen. Um dies auszuführen, führt der Controller 12 einen Zufallswald-Klassifikator (RFC) unter Verwendung der Fahrzeugtelemetriedaten aus. Anschließend geht das Verfahren 100 zum Block 116 weiter.
-
Im Block 116 verwendet der Controller 12 die durch den RFC bestimmten Manövermarkierung und die Straßenränder, um einen probabilistischen endlichen Automaten (PFSA) zu errichten. Der PFSA wird verwendet, um an der vorgegebenen Kreuzung 34 eingehende Fahrspuren 38 mit abgehenden Fahrspuren 40 zu paaren. Nach dem Block 116 geht das Verfahren 100 zum Block 120 weiter.
-
Im Block 120 führt der Controller 12 ein Homotopiemodell unter Verwendung der gepaarten eingehenden Fahrspuren 38 und abgehenden Fahrspuren 40 aus, um die Fahrspurränder 42 zu detektieren. Das Homotopiemodell kann die Suche nach dem nächsten Nachbarn (NNS) verwenden, um den geeigneten „homotopen“ Straßenrand zu detektieren. Dann wird der detektierte homotope Straßenrand nachgeahmt, um den gewünschten Fahrspurrand zu erzeugen. Sobald der Controller 12 die Fahrspurränder 42 bestimmt hat, geht das Verfahren 100 zum Block 122 weiter.
-
Im Block 122 errichtet der Controller 12 eine Merkmalskarte 124 basierend auf den Fahrspurrändern 42, den Straßenrändern 36 und den gepaarten eingehenden Fahrspuren 38 und abgehenden Fahrspuren 40. Außerdem kann der Controller 12 oder ein weiterer Controller im Block 122 die Bewegung eines oder mehrerer Fahrzeuge 18 durch die vorgegebene Kreuzung 34 befehlen (oder das Fahrzeug 18 mit ausreichenden Informationen versorgen, um die Bewegung eines oder mehrerer Fahrzeuge 18 durch die vorgegebene Kreuzung 34 zu befehlen oder zu steuern). Die Merkmalskarte 124 kann außerdem verwendet werden, um andere Kartenmerkmale, wie z. B. die Orte von Verkehrssteuerungen, abzuleiten. Ferner kann der Controller 12 im Block 122 eines der Fahrzeuge 18 (d. h., ein Host-Fahrzeug) unter Verwendung der durch das Homotopiemodell detektierten Fahrspurränder autonom steuern.
-
3 ist ein Ablaufplan eines Verfahren 200 zum Detektieren von Straßenrändern 36 unter Verwendung von GANs, das dem Block 109 nach 2 entspricht. In diesem Verfahren 200 verwendet der Controller 12 die Luftbilddaten, um die Straßenränder 36 an der vorgegebenen Kreuzung 34 zu detektieren. Das Verfahren 200 beginnt im Block 202. Im Block 202 gibt der Controller 12 die Luftbilder in das GAN ein. Dann geht das Verfahren 200 zum Block 203 weiter.
-
Im Block 203 verarbeitet ein Generatornetz 204 die Luftbilder. Das GAN enthält das Generatornetz 204. Das Generatornetz 204 enthält einen Codierer 206 und einen Decodierer 208. Der Codierer 206 codiert den Inhalt der Luftbilder und erzeugt die Merkmale der Luftbilder. Der Decoder 208 decodiert die Merkmale der Luftbilder und erzeugt die erzeugten Masken. Der Codierer 206 kann mehrere Codiererschichten aufweisen, während der Decodierer 208 mehrere Decodiererschichten aufweisen kann. Jede Codiererschicht führt eine Faltung mit einer Filterbank aus, um eine Menge von Merkmalskarten zu erzeugen. Der Decodierer 208 empfängt die Merkmalskarten vom Codierer 206 und erzeugt die erzeugten Masken. Das Verfahren 200 geht dann zum Block 210 weiter. Im Block 210 speichert der Controller 12 die durch das Generatornetz 204 erzeugten Masken.
-
Das Verfahren 200 enthält außerdem den Block 212. Im Block 212 empfängt und handhabt der Controller 12 die Luftbilder, um echte Masken zu erzeugen. Der Controller 12 speichert dann die echten Masken. Das Verfahren 200 geht dann zum Block 214 weiter. Im Block 214 gibt der Controller 12 die echten Masken und die erzeugten Masken in ein Diskriminatornetz 216 ein. Das Diskriminatornetz 216 ist ein Teil des GAN und vergleicht die durch das Generatornetz 204 erzeugten Masken mit den echten Masken, um zu bestimmen, ob die erzeugten Masken echt oder gefälscht sind. Während des Trainings des GAN lernt das Diskriminatornetz 216, zwischen den durch das Generatornetz 204 erzeugten Masken und den echten Masken zu unterscheiden.
-
4 ist ein Ablaufplan eines Verfahrens 300 zum Detektieren von Straßenrändern unter Verwendung von Telemetriedaten, das dem Block 114 nach 2 entspricht. Das Verfahren 300 beginnt im Block 302. Im Block 302 verwendet der Controller 12 die Luftbilder (d. h., der Luftbilddaten), um eine Folgerungsmaske der vorgegebenen Kreuzung 34 zu erzeugen. Falls die erzeugten Straßenränder schlecht sind, werden sie mit den Fahrzeugtelemetriedaten an der vorgegebenen Kreuzung erweitert, wobei die verbesserten Straßenränder unter Verwendung eines schiebefensterbasierenden Algorithmus neu erzeugt werden, der die Kombination der Punkte der bildbasierten (schlechten) Straßenränder und der Fahrzeugtelemetrie-Datenpunkte wirksam einsetzt. Außerdem speichert der Controller 12 die von den die vorgegebene Kreuzung 34 passierenden Fahrzeugen 18 empfangenen Telemetriedaten. Dann geht das Verfahren 300 zum Block 304 weiter.
-
Im Block 304 führt der Controller 12 unter Verwendung der Telemetriedaten einen Schiebefensteralgorithmus aus, um Kandidaten-Straßenränder 36 an der vorgegebenen Kreuzung 34 zu detektieren. Beim Schiebefensteralgorithmus werden die Telemetriedatenpunkte mit den durch das bildbasierte Modell erzeugten - möglicherweise schlechten - Straßenrandpunkten erweitert. Dann „gleitet“ ein rechteckiges Fenster mit fester Breite und Höhe horizontal und vertikal über diese Punkte. Jene Punkte, die sich im Schiebefenster befinden, wenn sich der Zustand des Fensters von leer zu nicht leer - oder umgekehrt - ändert, werden gekennzeichnet, wie im Block 306 gezeigt ist. Dann geht das Verfahren 300 zum Block 308 weiter.
-
Im Block 308 führt der Controller 12 eine Clusterbildungs-Operation aus, um die im Block 304 gekennzeichneten Datenpunkte zu gruppieren, die den anfänglichen Straßenrändern 36 der vorgegebenen Kreuzung 34 entsprechen. Die Ausgangs-Cluster sind im Block 310 gezeigt. Dann geht das Verfahren 300 zum Block 312 weiter.
-
Im Block 312 führt der Controller 12 eine Kurvenanpassungsoperation aus. Spezifisch wird eine Kurve an jeden Cluster von Datenpunkten angepasst, wodurch die Straßenrandkandidaten für die vorgegebene Kreuzung 34 erzeugt werden. Die Ausgabe der Kurvenanpassungsoperation ist im Block 314 gezeigt. Dann geht das Verfahren 300 zum Block 316 weiter.
-
Im Block 316 führt der Controller 12 eine Korrekturoperation aus. Die Korrekturoperation ist eine leichte Verformung, die an dem kurvenangepassten Straßenrandkandidaten - der aus dem Kurvenanpassungsschritt erhalten worden ist - ausgeführt wird, um sicherzustellen, dass der erzeugte Straßenrand auf die stromaufwärts und stromabwärts gelegenen eingehenden bzw. abgehenden Schenkel ausgerichtet ist, um sowohl Kontinuität als auch Glätte sicherzustellen.
-
5 ist ein Ablaufplan eines Verfahrens 400 zur Manövermarkierung, das dem Block 118 nach 2 entspricht. Das Verfahren 400 beginnt im Block 402. Im Block 402 sammelt der Controller 12 (unter Verwendung der Sensoren 20) kartenangepasste Telemetriedaten innerhalb eines vorgegebenen Radius um die vorgegebene Kreuzung 34 (2). Dann geht das Verfahren 400 zum Block 404 weiter. Im Block 404 tastet der Controller 12 jeden VIX ab, um Änderungen in Straßensegmenten zu identifizieren, an die das Fahrzeug 18 angepasst ist. Der VIX ist eine Identifikationsnummer, die ein Fahrzeug 18 für irgendein gegebenes Intervall zwischen dem Ein- und dem Aus-Betrieb identifiziert. Das heißt, wenn das Fahrzeug 18 ausgeschaltet ist, wird ihm ein neuer VIX zugewiesen, nachdem es abermals eingeschaltet worden ist. Falls die Änderung der Markierung einem zulässigen Manöver entspricht, das in der Wegtabelle der Straßennetztopologie (RNT) aufgeführt ist, werden alle Punkte in dem VIX mit den entsprechenden Weginformationen markiert. Dann geht das Verfahren 400 zum Block 406 weiter.
-
Im Block 406 trainiert der Controller 12 einen RFC mit den wegmarkierten VIXs, um den Weg irgendwelcher verbleibenden, nicht markierten VIXs zu folgern. Die Merkmale, die bei der Klassifikation verwendet werden, sind die ersten und die letzten Breitengrade, Längengrade und der Kursrichtungs-Einheitsvektor des VIX. Das Training kann mit synthetischen Daten ergänzt werden, die aus den Straßensegmenten in jedem Weg erzeugt werden. Das Verfahren 400 geht dann zum Block 408 weiter. Im Block 408 gibt der Controller 12 die durch den RFC erzeugte Manövermarkierung aus.
-
6 ist ein Verfahren 500 zum Errichten eines PFSA für die Fahrspurpaarung. Der PFSA kann alternativ als eine Maschine bezeichnet werden. Das Verfahren 500 beginnt im Block 502. Im Block 502 empfängt der Controller 12 Eingaben, die die Zustände der Fahrzeuge 18 enthalten, die die vorgegebene Kreuzung 34 passieren. Der Zustand der Fahrzeuge 18, der basierend auf den Telemetriedaten bestimmt werden kann, kann als der Zustand si der Maschine bezeichnet werden. Als ein nicht einschränkendes Beispiel können die Zustände si der Maschine einen ersten Zustand s1, einen zweiten Zustand s2 und einen dritten Zustand s3 enthalten. Es kann jedoch mehr oder weniger Maschinenzustände si geben. In der dargestellten Ausführungsform repräsentieren die Zustände si der Maschine die Position eines der Fahrzeuge 18 in der vorgegebenen Kreuzung 34. Dann geht das Verfahren 500 zum Block 504 weiter.
-
Im Block 504 errichtet der Controller 12 den PFSA basierend auf den im Block 502 empfangenen Eingaben (d. h., den Zuständen si der Maschine). In dem im Block 504 dargestellten Diagramm repräsentieren die Kreise die Zustände si der Maschine (z. B. den ersten Zustand s1, den zweiten Zustand s2 und den dritten Zustand s3), während die Pfeile die Übergänge pij vom Maschinenzustand si zu einem weiteren Zustand sj repräsentieren, wobei pij die Wahrscheinlichkeit ist, dass der Zustand j eintritt, vorausgesetzt, dass sich die Maschine im Zustand i befindet. Der Zustand i entspricht einem Fahrzeugort auf einer eingehenden Fahrspur an der vorgegebenen Kreuzung 34, während der Zustand j einem Fahrzeugort auf einer abgehenden Fahrspur an der vorgegebenen Kreuzung 34 entspricht. In der vorliegenden Offenbarung ist pij gleich (Anzahl der Fahrzeuge, die von i nach j übergehen)/(Gesamtzahl der Fahrzeuge, die den Zustand i verlassen). In der dargestellten Ausführungsform enthalten die Übergänge pij p11, p12, p13, p21, p22, p23, p31, p32 und p33. Der PFSA kann jedoch mehr oder weniger Übergänge pij enthalten. In diesem Diagramm repräsentieren die Übergänge pij eine Eingabe, die dem Fahrzeug 18 gegeben wird, um von einer ersten Position (die durch den Zustand si der Maschine repräsentiert wird) zu einer zweiten Position (die durch den Zustand sj der Maschine repräsentiert wird) an der vorgegebenen Kreuzung 34 überzugehen. Sobald der PFSA errichtet ist, geht das Verfahren 500 zum Block 506 weiter. Im Block 506 gibt der PFSA eine Zustandsübergangsmatrix mit allen möglichen Übergängen aus. Dann geht das Verfahren 500 zum Block 508 weiter.
-
Im Block 508 verwendet der Controller 12 die Zustandsübergangsmatrix, um zu bestimmen, ob das Fahrzeugmanöver von Zustand i nach Zustand j gültig ist. Hier bestimmt der Controller 12, ob das Fahrzeugmanöver gültig ist, falls der Wert von pij gleich einem oder größer als ein vorgegebener Schwellenwert τ ist. Wenn der Wert von pij gleich einem oder größer als ein vorgegebener Schwellenwert τ ist, dann entspricht pij einem gültigen Fahrzeugmanöver von i nach j. Wenn der Wert von pij kleiner als der vorgegebene Schwellenwert τ ist, dann entspricht pij keinem gültigen Fahrzeugmanöver. Als solche wird eine Fahrspurpaarung ausgeführt. Während die vorgegebene Kreuzung 34 nur einige Fahrspuren enthält, wird in Betracht gezogen, dass die vorgegebene Kreuzung 34 mehrere Fahrspuren enthalten kann, wobei das gleiche Verfahren 500 für die Fahrspurpaarung mehrerer Fahrspuren verwendet werden kann. Das Verfahren 500 weist einige Einschränkungen auf. Die Dateneingaben in diesem Verfahren 500 enthalten Straßen- und Fahrspurränder bis zur vorgegebenen Kreuzung 34 und die Straßennetztopologie (RNT). Das Verfahren 500 weist einige Einschränkungen auf. Für ein Manöver ist die Anzahl der eingehenden Fahrspuren gleich der Anzahl der abgehenden Fahrspuren für eine Eins-zu-eins-Abbildung der Fahrspuren bei einfacher Paarung. Das Verfahren 500 kann eine einfache Paarung oder eine komplexe Paarung beinhalten. Bei der einfachen Paarung verwendet das Verfahren 500 keine manöverunterteilten Telemetriedaten. Bei der komplexen Paarung verwendet das Verfahren 500 manöverunterteilte Telemetriedaten.
-
7 ist ein Ablaufplan eines Verfahrens 600 zur Fahrspurranddetektion unter Verwendung eines Homotopiemodells. Das Verfahren 600 beginnt im Block 602. Im Block 602 empfängt der Controller 12 Eingaben, wie z. B. die unter Verwendung des Verfahrens 500 bestimmte Fahrspurpaarung. Das Verfahren 600 geht zum Block 604 weiter. Im Block 604 wendet der Controller 12 eine Analyse der nächsten Nachbarn an, um die homotopen Straßenränder 36 zu detektieren. Dann geht das Verfahren 600 geht zum Block 606 weiter. Im Block 606 schätzt der Controller 12 eine Homotopie H(s, t). Im Block 606 ist ho(s) eine Funktion, die den Straßenrand 36 beschreibt, ist h1(s) eine Funktion, die den Fahrspurrand beschreibt, und ist H(s, t) eine kontinuierliche Funktion, wie z. B. H(s, 0) = ho(s) und H(s, 1) = h1(s). H(s, t) wird für jedes Manöver ausgeführt. Dann geht das Verfahren 600 zum Block 608 weiter. Im Block 608 erzeugt der Controller 12 unter Verwendung der geschätzten Homotopie H(s, t) für jedes Manöver homotope Fahrspurränder. Dann geht das Verfahren 600 zum Block 610 weiter. Im Block 610 gibt der Controller 12 eine virtuelle Karte der vorgegebenen Kreuzung 36 mit den Fahrspurrändern für alle durchführbaren Manöver aus.
-
In
8 kann der Controller 12 die folgenden Gleichungen verwenden, um die Homotopie H(s, t) unter Verwendung einer linearen Interpolation zu schätzen:
und
wobei: r
n eine radiale Koordinate des n-ten zu schätzenden und vom n-ten Straßenrandpunkt gemessenen Fahrspurrandpunkts ist;
θ
n eine Winkelkoordinate des n-ten zu schätzenden und vom n-ten Straßenrandpunkt gemessenen Fahrspurrandpunkts ist;
M die Anzahl der Straßenrandpunkte ist; und
n eine ganze Zahl zwischen 0 und M ist, d. h., 0 ≤ n ≤ M.
-
In
9 kann der Controller 12 die folgenden Gleichungen verwenden, um die Homotopie H(s, t) unter Verwendung von Vektordrehungen zu schätzen:
wobei:
- Un ein Vektor zwischen zwei aufeinanderfolgenden Straßenrandpunkten ist;
- Rn eine Drehmatrix ist;
- Vn ein Vektor zwischen einem Straßenrandpunkt und einem zu schätzenden Fahrspurrandpunkt ist;
- α ein Winkel zwischen V0 und VM-1 ist;
- M die Anzahl der Straßenrandpunkte ist;
- n eine ganze Zahl zwischen 0 und M ist, d. h., 0 ≤ n ≤ M;
- en ein Einheitsvektor entlang Vn ist; und
- ||. || die euklidische Norm ist.
-
Die ausführliche Beschreibung und die Zeichnungen oder Figuren sind eine unterstützende Beschreibung der vorliegenden Lehren, wobei aber der Schutzumfang der vorliegenden Lehren ausschließlich durch die Ansprüche definiert ist. Während einige der besten Arten und andere Ausführungsformen zum Ausführen der vorliegenden Lehren ausführlich beschrieben worden sind, gibt es verschiedene alternative Entwürfe und Ausführungsformen zum Praktizieren der vorliegenden Lehren, die in den beigefügten Ansprüchen definiert sind.