-
Die Erfindung betrifft ein Verfahren zum Erfassen von für ein Fahrzeug zur Verfügung stehenden künftigen Fahrspuren.
-
Darüber hinaus betrifft die Erfindung ein Steuergerät für ein System zum Erfassen von für ein Fahrzeug zur Verfügung stehenden künftigen Fahrspuren, ein System zum Erfassen von für ein Fahrzeug zur Verfügung stehenden Fahrspuren, ein Computerprogramm und einen computerlesbaren Datenträger.
-
Viele moderne Fahrzeuge verfügen über Fahrassistenzsysteme, die ein Subsystem oder mehrere Subsysteme des Fahrzeugs wenigstens teilweise automatisiert steuern. Ein Beispiel hierfür sind aktive Spurhaltesysteme, die ein ungewolltes Verlassen einer Fahrspur erkennen und diesem durch aktives Eingreifen in die Fahrzeuglenkung und/oder die Fahrzeugbeschleunigung entgegenwirken. Diese Fahrassistenzsysteme steuern also eine Längs- und/oder Querbewegung des Fahrzeugs wenigstens teilweise automatisiert.
-
Solche Fahrerassistenzsysteme basieren häufig auf zumindest einer Kamera, die Bilder von einer Umgebung des Fahrzeugs erzeugt. Die Bilder werden automatisch mittels Bildverarbeitungsalgorithmen verarbeitet und das Fahrassistenzsystem steuert das Fahrzeug basierend auf den verarbeiteten Bildern zumindest teilweise automatisiert, insbesondere vollständig automatisiert. Beispielsweise wird für den Spurhalteassistenten basierend auf den verarbeiteten Bildern eine Fahrspur ermittelt, die einer zu haltenden Spur entspricht. Zudem erfassen bekannte Spurhalteassistenten üblicherweise die links und rechts von der zu haltenden Spur liegenden Fahrspuren.
-
Zudem ist die Anzahl an zukünftig zur Verfügung stehenden Fahrspuren eine wichtige Information für autonome Fahrzeuge bzw. deren Steuergeräte, um ein Fahrmanöver zuverlässig planen zu können.
-
Vor diesem Hintergrund ist es die Aufgabe der Erfindung, bekannte Verfahren und System zum Erfassen von für ein Fahrzeug zur Verfügung stehenden künftigen Fahrspuren weiter zu verbessern. Gleiches gilt für zugehörige Steuergeräte, Computerprogramme und computerlesbare Datenträger.
-
Die Aufgabe wird durch ein Verfahren der eingangs genannten Art gelöst, wobei das Fahrzeug wenigstens eine Kamera und ein Steuergerät aufweist und die Kamera dazu ausgebildet ist, zumindest ein Bild von einem Fahrbahnabschnitt zu erzeugen, der in Fahrtrichtung vor dem Fahrzeug liegt, und an das Steuergerät weiterzuleiten, wobei das Steuergerät ein Maschinenlernmodul mit einem künstlichen neuronalen Netz umfasst. Das Verfahren hat dabei die folgenden Schritte:
- - Erhalten des Bildes des Fahrbahnabschnitts in Fahrtrichtung vor dem Fahrzeug von der wenigstens einen Kamera;
- - Extrahieren charakteristischer Bildmerkmale des Bildes mittels des künstlichen neuronalen Netzes; und
- - Bestimmen, mittels desselben künstlichen neuronalen Netzes, einer Anzahl an für das Fahrzeug künftig zur Verfügung stehenden Fahrspuren und derjenigen der zur Verfügung stehenden Fahrspuren, auf der sich das Fahrzeug befindet, basierend auf den extrahierten charakteristischen Bildmerkmalen.
-
Dabei wird diejenige Fahrspur, auf der sich das Fahrzeug befindet, häufig auch als Ego-Lane bezeichnet.
-
Auf diese Weise wird beim Erfassen von für ein Fahrzeug zur Verfügung stehenden künftigen Fahrspuren die gesamte von der Kamera erfasste Struktur des in Fahrtrichtung vor dem Fahrzeug liegenden Fahrbahnabschnitts detektiert und verarbeitet. Im Vergleich zu bekannten Spurhalteassistenten, die lediglich diejenige Fahrspur, auf der sich das Fahrzeug befindet, sowie die links und rechts benachbarten Fahrspuren erfassen, wird also eine deutlich größere Datengrundlage verwendet. Damit wird es möglich, sich neu öffnende und/oder zu Ende gehende Fahrspuren frühzeitig zu erkennen und in einer teilweise oder vollständig autonomen Fahrstrategie (Mission Planning) zu berücksichtigen. Insbesondere können auf diese Weise anstehende Spurwechsel frühzeitig geplant werden.
-
Darüber hinaus kann das vorliegende Verfahren auch ohne hochauflösende Karten (sog. HD-maps) verwendet werden, da ja sowohl diejenige Fahrspur, auf der sich das Fahrzeug befindet, als auch die künftig zur Verfügung stehenden Fahrspuren aus dem mittels der Kamera erfassten Bild ermittelt werden. Streng genommen sind also Karten nur noch für die Navigation nötig. Dies ist insbesondere in Gegenden vorteilhaft, für die keine hochauflösenden Karten existieren. Folglich kann der Aufwand zum Erstellen solcher Karten reduziert oder gänzlich eingespart werden.
-
Der Grundgedanke der vorliegenden Erfindung ist dabei, ein automatisiertes Verfahren zum Erfassen von für ein Fahrzeug zur Verfügung stehenden künftigen Fahrspuren bereitzustellen, das nach der Art und Weise funktioniert, wie menschliche Fahrer die für ein Fahrzeug zur Verfügung stehenden künftigen Fahrspuren erfassen. Der Mensch erfasst diese Informationen visuell und berücksichtigt dabei die Fahrbahnstruktur als Ganzes. Dabei blickt er weit voraus, um frühzeitig sich neu öffnende und/oder zu Ende gehende Fahrspuren zu erkennen.
-
Im erfindungsgemäßen Verfahren kann vorgesehen sein, dass entlang einer im Wesentlichen quer zur Fahrtrichtung des Fahrzeugs verlaufenden Linie im Bild, die insbesondere in Bildkoordinaten definiert ist, mittels des künstlichen neuronalen Netzes die Anzahl der auf dieser Linie zur Verfügung stehenden künftigen Fahrspuren erfasst wird. Es wird also im von der Kamera erfassten Bild eine Linie gezogen und gezählt, wie viele Fahrspuren diese Linie schneidet. Wenn die Fahrtrichtung im Bild im Wesentlichen mit einer vertikalen Richtung übereinstimmt, dann verläuft die Linie im Wesentlichen horizontal. Auf diese Weise lässt sich an einer durch die Linie definierten Stelle im Bild schnell und einfach die Anzahl der zur Verfügung stehenden künftigen Fahrspuren ermitteln.
-
Gemäß einer Ausführungsform wird entlang mehrerer, insbesondere entlang vier, im Wesentlichen quer zur Fahrtrichtung des Fahrzeugs verlaufender Linien im Bild, die insbesondere in Bildkoordinaten definiert sind, mittels des künstlichen neuronalen Netzes die jeweilige Anzahl an zur Verfügung stehenden künftigen Fahrspuren erfasst, wobei die Linien in Fahrtrichtung voneinander beabstandet sind. Es ergibt sich also für jede dieser Linien eine Anzahl an zur Verfügung stehenden Fahrspuren, die der Anzahl der Fahrspuren entspricht, die durch die jeweilige Linie geschnitten werden. Dabei verlaufen die Linien wieder im Wesentlichen horizontal, wenn die Fahrtrichtung im Bild im Wesentlichen einer vertikalen Richtung entspricht.
-
Die Positionen der einzelnen Linien können beispielsweise ausgehend vom oberen oder vom unteren Bildrand in Prozent der Bildhöhe angegeben werden. In einem Beispiel mit vier Linien kann ausgehend vom unteren Bildrand eine erste Linie bei 17% der Bildhöhe, eine zweite Linie bei 34% der Bildhöhe, eine dritte Linie bei 42% der Bildhöhe und eine vierte Linie bei 50% der Bildhöhe angeordnet sein. Selbstverständlich sind dabei auch andere geeignete Anzahlen an Linien und andere jeweils zugeordnete Positionen möglich.
-
In einer Ausgestaltung wird zum Bestimmen der Anzahl an zur Verfügung stehenden künftigen Fahrspuren für jede der Linien im Bild ein separates Dekodieruntermodul verwendet. Ein Dekodieruntermodul wird in diesem Zusammenhang auch als Decoder bezeichnet. Die einzelnen Dekodier können somit parallel und unabhängig voneinander arbeiten. Dadurch lassen sich die Anzahlen der zur Verfügung stehenden Fahrspuren für jede Linie besonders schnell und zuverlässig ermitteln.
-
Die Dekodieruntermodule sind zum Beispiel Teilnetze des künstlichen neuronalen Netzwerks, die insbesondere identisch sind.
-
Gemäß einer Verfahrensvariante wird ein Fahrspurenvektor erzeugt, in dem jeweils eine Komponente einer der Linien im Bild zugeordnet ist und die jeweils entlang der Linien erfassten Anzahlen an zur Verfügung stehenden künftigen Fahrspuren der zugehörigen Komponente bilden. Dabei entspricht die Abfolge der Linien im Bild insbesondere einer Abfolge der Vektoreinträge. Mit anderen Worten werden die Nachbarschaftsverhältnisse der Linien im Bild auch in den Fahrspurenvektor übertragen. Wenn also der Fahrspurenvektor ein Zeilenvektor ist, wird dieser bevorzugt links beginnend mit den Anzahlen an zur Verfügung stehenden künftigen Fahrspuren befüllt, wobei mit derjenigen Linie begonnen wird, die am nächsten am Fahrzeug liegt. Wenn der Fahrspurenvektor ein Spaltenvektor ist, wird dieser bevorzugt in entsprechender Weise von oben nach unten befüllt. Mit dem Fahrspurenvektor lässt sich also die erfasste Information hinsichtlich einer oder mehrerer Linien in einfacher und speichertechnisch effizienter Weise darstellen.
-
Zudem kann eine Fahrspurenmatrix erzeugt werden, indem der Fahrspurenvektor derart in die Fahrspurenmatrix übertragen wird, dass jeder Linie im Bild eine Zeile der Fahrspurenmatrix zugeordnet ist und an einem Ende dieser Zeile beginnend, insbesondere am linken Ende, in jedes Matrixfeld dieser Zeile einer erster Wert, insbesondere der Wert 1, eingetragen wird bis die Summe der Eintragungen in der Zeile dem zur entsprechenden Linie gehörenden Komponente entspricht. Dabei beläuft sich, wie oben beschrieben, der zu einer Linie gehörende Komponente auf die Anzahl der auf dieser Linie erfassten, zur Verfügung stehenden künftigen Fahrspuren.
-
Zum Beispiel wird zudem diejenige Linie im Bild, die am nächsten am Fahrzeug liegt, der untersten Zeile der Fahrspurenmatrix zugeordnet. Die übrigen Linien werden entsprechend der Reihenfolge ihres Auftretens im Bild den übrigen Matrixzeilen zugeordnet. Die Nachbarschaftsverhältnisse der Linien im Bild entsprechen also den Nachbarschaftsverhältnissen der Matrixzeilen. Die Fahrspurenmatrix repräsentiert somit die Fahrbahnstruktur in Fahrtrichtung vor dem Fahrzeug.
-
Eine Matrixspalte, deren Matrixfelder alle mit dem ersten Wert gefüllt sind, stellt somit eine durchgängige Fahrspur dar, deren Ende noch nicht abzusehen ist. Eine Fahrspur, deren Ende bereits sichtbar ist, ist ebenfalls durch eine Matrixspalte repräsentiert. In dieser sind jedoch nur in einem unteren Bereich von Matrixfeldern die ersten Werte eingetragen. Umgekehrt verhält sich die Fahrspurenmatrix bei einer neu eröffnenden Fahrspur. Bildlich gesprochen stellen also die ersten Werte die Fahrbahn dar. Die Fahrbahnstruktur ist folglich mittels der Fahrspurenmatrix in ein maschinenlesbares Format übersetzt, das effizient gespeichert und ausgelesen werden kann.
-
Beispielsweise wird dabei in jedem durch eine Matrixzeile und eine Matrixspalte definierten Matrixfeld, in dem nicht der erste Wert eingetragen wurde, ein zweiter Wert, insbesondere der Wert 0 angegeben. Jedes Matrixfeld ist somit durch einen eindeutigen Wert belegt. Insbesondere wird dabei die gesamte Matrix mit den zweiten Werten vorbefüllt und erst danach mit der Übertragung des Fahrspurenvektors in die Fahrspurenmatrix begonnen.
-
Zusätzlich kann vorgesehen sein, dass ein dritter Wert, insbesondere der Wert -1, als Fehlersignal definiert wird. Es wird dann in allen Matrixfeldern der Fahrspurenmatrix der dritte Wert notiert, wenn diesbezüglich keine eindeutige Information über das Vorliegen oder Fehlen einer Fahrspur gegeben ist. Damit wir die Zuverlässigkeit und Fehlerrobustheit des Verfahrens weiter erhöht.
-
Die eine Linie oder die mehreren Linien und die zugeordneten Anzahlen an zur Verfügung stehenden künftigen Fahrspuren können in ein Fahrzeugkoordinatensystem umgerechnet werden, um zu ermitteln, auf welcher der zur Verfügung stehenden Fahrspuren sich das Fahrzeug befindet. Wie bereits erläutert, wird diejenige Fahrspur, auf der sich das Fahrzeug befindet, auch als Ego-Lane bezeichnet. Diese wird insbesondere als ganze Zahl angegeben, die ausgehend vom linken Fahrbahnrand die Ego-Lane bezeichnet. Fährt ein Fahrzeug also auf der zweiten Fahrspur von links, ist der Wert der Ego-Lane 2. Diejenige Fahrspur, auf der sich das Fahrzeug befindet, wird also in einem datentechnisch leicht verarbeitbaren Format angegeben.
-
Beispielsweise wird für das Berechnen der Ego-Lane ein Dekodieruntermodul verwendet, das von den Dekodieruntermodulen für die Bestimmung der Anzahlen der Fahrspuren auf den einzelnen Linien des Bildes separat ist. Dadurch wird sichergestellt, dass die Ego-Lane zuverlässig und schnell ermittelt werden kann.
-
Gemäß einer Ausführungsform ist vorgesehen, dass das künstliche neuronale Netz mit Soll-Trainingsdaten trainiert wird, wobei die Soll-Trainingsdaten ein mittels der Kamera erzeugtes Bild und Informationen zum im Bild vorhandenen tatsächlichen charakteristischen Bildmerkmalen, der tatsächlichen Anzahl an für das Fahrzeug künftig zur Verfügung stehenden Fahrspuren, der tatsächlichen Fahrspur, auf der sich das Fahrzeug befindet, dem tatsächlichen Fahrspurenvektor und/oder der tatsächlichen Fahrspurenmatrix umfassen, mit den folgenden Trainingsschritten:
- - Vorwärtsspeisen des künstlichen neuronalen Netzes mit den Soll-Trainingsdaten;
- - Ermitteln von charakteristischen Bildmerkmalen mittels des künstlichen neuronalen Netzes;
- - Bestimmen eines Fehlers zwischen den ermittelten charakteristischen Bildmerkmalen und den tatsächlichen charakteristischen Bildmerkmalen; und
- - Ändern von Gewichtungsfaktoren des neuronalen Netzes durch Rückwärtsspeisen des künstlichen neuronalen Netzes mit dem Fehler.
-
Auf diese Weise wird die Leistungsfähigkeit und Zuverlässigkeit des Verfahrens sichergestellt.
-
In einer Ausgestaltung umfasst das künstliche neuronales Netz ein Convolutional Neural Network oder das künstliche neuronale Netz ist ein Convolutional Neural Network. Teilweise werden Convolutional Neural Networks auf Deutsch auch als faltende neuronale Netze bezeichnet. Solche neuronalen Netze zeichnen sich durch eine besonders geringe Fehlerquote aus. Sie sind also besonders zuverlässig bei der Erkennung charakteristischer Bildmerkmale, wodurch eine besonders hohe Zuverlässigkeit des Verfahrens erreicht wird.
-
Das Extrahieren charakteristischer Bildmerkmale des Bildes mittels des künstlichen neuronalen Netzes kann in einem gemeinsamen Merkmaluntermodul erfolgen. Ein Merkmaluntermodul wird dabei auch als Encoder und speziell im vorliegenden Fall als Feature Extractor bezeichnet. Auf diese Weise kann die Anzahl an Modulen und damit die Größe des künstlichen Neuronalen Netzes gering gehalten werden.
-
Das Merkmaluntermodul ist zum Beispiel Teilnetz des künstlichen neuronalen Netzes, das insbesondere unabhängig von den Dekodieruntermodulen ist.
-
Ferner wird die Aufgabe durch ein Steuergerät für ein System zum Erfassen von für ein Fahrzeug zur Verfügung stehenden künftigen Fahrspuren gelöst, das ein Maschinenlernmodul aufweist, welches ein künstliches neuronales Netz umfasst, wobei das Steuergerät dazu ausgebildet ist, ein erfindungsgemäßes Verfahren durchzuführen. Mit einem solchen Steuergerät kann also das erfindungsgemäße Verfahren ausgeführt werden. Es ergeben sich die bereits hinsichtlich der Verfahrens genannten Effekte und Vorteile.
-
Auch wird die Aufgabe durch ein System zum Erfassen von für ein Fahrzeug zur Verfügung stehenden Fahrspuren gelöst, das ein erfindungsgemäßes Steuergerät und wenigstens einer Kamera umfasst, die dazu ausgebildet ist, zumindest ein Bild von einem Fahrbahnabschnitt in Fahrtrichtung vor dem Fahrzeug zu erzeugen und an das Steuergerät weiterzuleiten. Es ergeben sich die bereits bezüglich des Verfahrens und des Steuergeräts ausgeführten Effekte und Vorteile.
-
Darüber hinaus wird die Aufgabe durch ein Computerprogramm gelöst, das Programmcodemittel aufweist, um die Schritte eines erfindungsgemäßen Verfahrens durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Recheneinheit ausgeführt wird, insbesondere auf einer Recheneinheit eines erfindungsgemäßen Steuergeräts. Mittels des Computerprogramms ist also das erfindungsgemäße Verfahren umgesetzt. Es können daher mittels des Computerprogramms dieselben Effekte und Vorteile erreicht werden, die bereits hinsichtlich des Verfahrens erläutert wurden.
-
Unter „Programmcodemitteln“ sind dabei und im Folgenden computerausführbare Instruktionen in Form von Programmcode und/oder Programmcodemodulen in kompilierter und/oder in unkompilierter Form zu verstehen, die in einer beliebigen Programmiersprache und/oder in Maschinensprache vorliegen können.
-
Zudem wird die Aufgabe durch einen computerlesbaren, insbesondere nicht-flüchtigen Datenträger gelöst, auf dem ein erfindungsgemäßes Computerprogramm gespeichert ist. Es ergeben sich die bereits bezüglich des Computerprogramms ausgeführten Effekte und Vorteile.
-
Die Erfindung wird nachstehend anhand eines Ausführungsbeispiels erläutert, das in den beigefügten Zeichnungen gezeigt ist. Es zeigen:
- - 1 ein Fahrzeug mit einem erfindungsgemäßen System zum Erfassen von für das Fahrzeug zur Verfügung stehenden Fahrspuren, das ein erfindungsgemäßes Steuergerät umfasst.
- - 2 ein Ablaufdiagramm eines erfindungsgemäßen Verfahrens,
- - 3 eine Struktur eines Maschinenlernmoduls des Steuergerätes gemäß 1,
- - 4 schematisch einen Fahrspurenvektor des erfindungsgemäßen Verfahrens aus 2,
- - 5 schematisch eine Fahrspurenmatrix des erfindungsgemäßen Verfahrens aus 2, und
- - 6 ein exemplarisches, mittels einer Kamera eines erfindungsgemäßen Systems zum Erfassen von für ein Fahrzeug zur Verfügung stehenden Fahrspuren aufgenommenes Bild einer Fahrbahn.
-
1 zeigt ein Fahrzeug 10, das auf einer mittleren Fahrspur 12a einer insgesamt drei Fahrspuren 12a, 12b, 12c umfassenden Fahrbahn 14 entlang einer Fahrtrichtung 16 fährt.
-
Das Fahrzeug 10 ist mit einem System 18 zum Erfassen von für das Fahrzeug 10 zur Verfügung stehenden Fahrspuren 12a, 12b, 12c ausgestattet.
-
Dieses System 18 umfasst ein Steuergerät 20 und wenigstens eine Kamera 22. Dabei ist die Kamera 22 dazu ausgebildet, zumindest ein Bild B von einem Fahrbahnabschnitt in Fahrtrichtung 16 vor dem Fahrzeug 10 zu erzeugen und an das Steuergerät 20 weiterzuleiten.
-
Das Steuergerät 20 weist ein Verarbeitungsmodul 23 und ein Maschinenlernmodul 24 auf, das ein künstliches neuronales Netz umfasst.
-
Das Steuergerät 20 ist dazu ausgebildet, ein Verfahren zum Erfassen von für das Fahrzeug 10 zur Verfügung stehenden künftigen Fahrspuren 12a, 12b, 12c auszuführen.
-
Hierzu weist das Steuergerät 20 eine Recheneinheit 26 auf, die ein auf einem computerlesbaren nicht-flüchtigen Datenträger 27 gespeichertes Computerprogramm ausführen kann, das Programmcode umfasst, in dem das Verfahren implementiert ist.
-
In 3 ist der Aufbau des Maschinenlernmoduls 24 schematisch dargestellt, das im dargestellten Beispiel ein Convolutional Neural Network ist.
-
Das Maschinenlernmodul 24 weist ein gemeinsames Merkmaluntermodul 38 und mehrere Dekodieruntermodule 42a, 42b, 42c, 42d und 42e auf.
-
Das Merkmaluntermodul 38 stellt das erste Modul des Maschinenlernmoduls 24 dar und empfängt die dem Maschinenlernmodul 24 übergebenen Daten.
-
Das Merkmaluntermodul 38 kann auch als Feature Extractor bezeichnet werden und ist dazu ausgebildet und trainiert, charakteristische Bildmerkmale aus einem Bild zu extrahieren.
-
Die Dekodieruntermodule 42a, 42b, 42c, 42d, 42e sind mit dem Merkmaluntermodul 38 verbunden und erhalten jeweils die Ausgabe des Merkmaluntermoduls 38.
-
Im gezeigten Ausführungsbeispiel sind die Dekodieruntermodule 42a, 42b, 42c, 42d, 42e die letzten Module des Maschinenlernmoduls 24 und erzeugen die Ausgabe des Maschinenlernmoduls 24.
-
Die Ausgabewerte der Dekodieruntermodule 42a, 42b, 42c, 42d, 42e werden somit ausgegeben und zum Beispiel vom Verarbeitungsmodul 23 des Steuergerätes 28 empfangen.
-
Ein Flussdiagramm des Verfahrens zum Erfassen von für das Fahrzeug 10 zur Verfügung stehenden künftigen Fahrspuren 12a, 12b, 12c ist in 2 gezeigt.
-
In einem vorgelagerten Schritt S0 wird ein Bild B des Fahrbahnabschnitts in Fahrtrichtung 16 vor dem Fahrzeug 10 von der Kamera 22 aufgenommen. Ein derartiges Bild B ist in 6 zu sehen.
-
Das Bild B wird dann in einem ersten Schritt S1 an das Steuergerät 20 übermittelt und von diesem erhalten.
-
In einem zweiten Schritt S2 wird das Bild B dem Maschinenlernmodul 24 zugeführt und die charakteristischen Bildmerkmale des Bildes B werden mittels des künstlichen neuronalen Netzes, genauer gesagt des Merkmaluntermoduls 38 extrahiert.
-
Die charakteristischen Bildmerkmale und optional das Bild B werden an die Dekodieruntermodule 42a, 42b, 42c, 42d, 42e übergeben.
-
Im nächsten Schritt S3 werden mittels der Dekodieruntermodule 42a, 42b, 42c, 42d, 42e die für das Fahrzeug 10 künftig zur Verfügung stehenden Fahrspuren 12a, 12b, 12c bestimmt sowie diejenige Fahrspur 12a ermittelt, auf der sich das Fahrzeug 10 befindet.
-
Die Bestimmung der Fahrspuren 12a, 12b, 12c erfolgt für vier Abstände vor dem Fahrzeug 10. Diese Abstände entsprechen vier Linien 34a, 34b, 34c, 34d im Bild B, die in Bildkoordinaten bestimmt und angegeben werden.
-
Die Linien 34a, 34b, 34c, 34d verlaufen dabei im Wesentlichen quer zur Fahrtrichtung 16, was in der Darstellung der 6 einer horizontalen Orientierung der Linien 34a, 34b, 34c, 34d entspricht. Zudem sind die Linien 34a, 34b, 34c, 34d entlang der Fahrtrichtung 16 voneinander beabstandet.
-
In anderen Worten umfasst eine Linie 34a, 34b, 34c, 34d jeweils alle Bildpunkte, bei denen die vertikale Bildkoordinate, z.B. die Y-Koordinate, einen festgelegten Wert bzw. einen festgelegten Wertebereich hat.
-
Jedem der Dekodieruntermodule 42a, 42b, 42c, 42d ist eine der Linien 34a, 34b, 34c, 34d zugeordnet und die Dekodieruntermodule 42a, 42b, 42c, 42d sind dazu ausgebildet und trainiert, die Anzahl an zur Verfügung stehenden Fahrspuren 12a, 12b, 12c auf der ihnen zugeordneten Linie zu bestimmen. Diese Anzahl ist der Ausgabewert 36a, 36b, 36c, 36d des jeweiligen Dekodieruntermoduls 42a, 42b, 42c, 42d und wird zum Beispiel als Skalar ausgegeben.
-
Dafür verwenden die Dekodieruntermodule 42a, 42b, 42c, 42d die charakteristischen Bildmerkmale und ggf. das gesamte Bild B.
-
Zum Beispiel sind die Dekodieruntermodule 42a, 42b, 42c, 42d identisch aufgebaut und können sogar mit den gleichen Testdatensätzen trainiert sein. Denkbar ist jedoch auch, dass die Dekodieruntermodule 42a, 42b, 42c, 42d identisch aufgebaut, aber mit unterschiedlichen Testdatensätzen trainiert wurden.
-
Auch kann das künstliche neuronale Netz als Ganzes trainiert worden sein.
-
Das Dekodieruntermodul 42e ist von den übrigen Dekodieruntermodulen 42a, 42b, 42c, 42d verschieden. Es ist dazu ausgebildet und trainiert, diejenige Fahrspur 12a zu ermitteln, auf der sich das Fahrzeug 10 befindet, also die Ego-Lane.
-
Dafür verwendet das Dekodieruntermodul 42e die charakteristischen Bildmerkmale und ggf. das gesamte Bild.
-
Das Dekodieruntermodul 42e gibt als Ausgabewerte 36e einen Skalar aus, der die Nummer der Fahrspur 12a angibt, auf der sich das Fahrzeug 10 befindet, wobei die Fahrspuren 12a, 12b, 12c von links nach rechts durchgezählt werden (oder umgekehrt).
-
Die Dekodieruntermodule 42a, 42b, 42c, 42d, 42e erzeugen somit jeweils einen Skalar, die alle ausgegeben werden.
-
Die Schritte S2 und S3 werden dabei insbesondere mittels des Maschinenlernmoduls 24 bzw. des künstlichen neuronalen Netzes ausgeführt und sind daher nicht zwingend als getrennte Schritte wahrnehmbar.
-
Im Beispiel der 6 ermitteln die Dekodieruntermodule 42a, 42b, 42c, 42d, dass entlang der Linie 34a zwei Fahrspuren 12a, 12b, entlang der Linie 34b drei Fahrspuren 12a, 12b, 12c und entlang der Linien 34c und 34d ebenfalls jeweils drei Fahrspuren 12a, 12b, 12c vorhanden sind.
-
Die Dekodieruntermodule 42a, 42b, 42c, 42d geben als Ausgabewerte 36a, 36b, 36c, 36d somit die Skalare 2, 3, 3 bzw. 3 aus.
-
Das Dekodieruntermodul 42e ermittelt, dass sich das Fahrzeug 10 auf der zweiten Fahrspur 12a von links befindet und gibt als Ausgabewert 36e den Skalar 2 aus.
-
Die Ausgabe des Maschinenlernmoduls 24 ist somit ein Vektor, hier ein fünfdimensionaler Vektor, der im Folgenden Fahrspurenvektor r genannt wird und in 4 dargestellt ist.
-
Der Fahrspurenvektor r ist im vorliegenden Beispiel als Zeilenvektor ausgeführt und enthält die Ausgabewerte 36a, 36b, 36c, 36d, 36e als Komponenten.
-
Der Fahrspurenvektor r gibt somit die Anzahl an Fahrspuren 12a, 12b, 12c in Abständen zum Fahrzeug 10 an, die mit den Linien 34a, 34b, 34c, 34d im Bild B korrespondieren, sowie die aktuelle Fahrspur 12a des Fahrzeugs 10. Der Fahrspurenvektor ergibt sich im Beispiel also als r = (2, 3, 3, 3, 2).
-
Im nächsten Schritt S4 wird die Ausgabe des Maschinenlernmoduls 24, hier also der Fahrspurenvektor r weiterverarbeitet. Dies geschieht im gezeigten Ausführungsbeispiel durch das Verarbeitungsmodul 23, das die Ausgabe des Maschinenlernmoduls 24 erhält.
-
Das Verarbeitungsmodul 23 ist zum Beispiel ein klassisches, d.h. nichtlernendes Modul, das vorbestimmte Operationen durchführt.
-
Selbstverständlich kann der Fahrspurenvektor r auch durch weitere Untermodule des Maschinenlernmodules 24 auf gleiche Weise bzw. mit gleichem Ergebnis weiterverarbeitet werden.
-
In Schritt S4 wird aus dem Fahrspurenvektor r eine Fahrspurenmatrix R erzeugt.
-
In der Matrix werden mittels eines ersten Wertes, eines zweiten Wertes und eines dritten Wertes, den die Elemente der Matrix annehmen können, die zukünftig zur Verfügung stehenden Fahrspuren dargestellt. Die Fahrspurenmatrix R weist so viele Zeilen auf, wie Linien 34a, 34b, 34c, 34d zur Bestimmung der Fahrspuren verwendet wurden.
-
Jeder Zeile ist somit eine der Komponenten des Fahrspurenvektors r bzw. einer der Ausgabewerte 36a, 36b, 36c, 36d zugeordnet.
-
Die Anzahl der Spalten der Fahrspurenmatrix R ist dabei so gewählt, dass möglichst viele Fahrspuren erfasst werden können, ohne die Performanz des Verfahrens zu beeinträchtigen.
-
Im Beispiel sind fünf Spalten vorgesehen, sodass fünf Fahrspuren gleichzeitig erfasst werden können.
-
Dabei ist die unterste Zeile der Fahrspurenmatrix R derjenigen Linie 34a zugeordnet, die im mittels der Kamera 22 erfassten Bild B dem Fahrzeug 10 am nächsten liegt. Die übrigen Zeilen ergeben sich entsprechend dem Auftreten der weiteren Linien 34b, 34c und 34d im Bild B.
-
Alle Elemente der Fahrspurenmatrix R sind mit einem zweiten Wert, hier dem Wert 0 vorbelegt.
-
Ausgehend von dieser Situation wird nun der Fahrspurenvektor r folgendermaßen in die Fahrspurenmatrix R übertragen.
-
Für eine Zeile, der im Fahrspurenvektor r eine Komponente entspricht, werden beginnend bei der ersten Spalte so viele Elemente der Zeile in den ersten Wert, hier der Wert 1, geändert, wie die zugeordnete Komponente des Fahrspurenvektors r angibt.
-
Im Beispiel ist die unterste Zeile der Fahrspurenmatrix R dem Ausgabewert 36a zugeordnet, der den Wert 2 aufweist. Somit wird ausgehend von der ersten Spalte der letzten Zeile zweimal der Wert 1 eingetragen.
-
Die vorletzte Zeile der Fahrspurenmatrix R ist dem Ausgabewert 36b zugeordnet, der den Wert 3 trägt. Entsprechend wird dreimal der Wert 1 in diese Zeile eingetragen.
-
In gleicher Weise wird für die oberste und die zweit-oberste Zeile der Fahrspurenmatrix R verfahren, die dem Ausgabewert 36d bzw. 36c zugeordnet sind.
-
Die auf diese Weise erhaltene Fahrspurenmatrix R ist in 5 dargestellt.
-
Es wird somit die Struktur der zur Verfügung stehenden Fahrspuren 12a, 12b, 12c aus dem Bild B in die Fahrspurenmatrix R übertragen. Alle Werte 1 symbolisieren dabei das Vorhandensein einer Fahrspur. Die Werte 0 symbolisieren die Abwesenheit einer Fahrspur.
-
Zusätzlich kann vorgesehen sein, dass - wenn für eine bestimmte Fahrspur nicht erkannt werden kann, ob diese tatsächlich befahrbar ist - ein dritter Wert, insbesondere der Wert -1, als Fehlerwert in das entsprechende Element der Fahrspurenmatrix R geschrieben wird.
-
Der Fehlerwert wird zum Beispiel verwendet, wenn keine eindeutige Information über das Vorliegen oder Fehlen einer Fahrspur gegeben ist.
-
Die Fahrspurenmatrix R wird im nächsten Schritt S5 ausgegeben, zum Beispiel an ein Fahrmanöverplanungsmodul 44 des Steuergerätes 20. Auf Grundlage der Fahrspurenmatrix R, die nun in einem informationstechnisch einfach zu verarbeitenden Format vorliegt, kann somit ein mögliches Fahrmanöver bestimmt und das Fahrzeug 10 entsprechend gesteuert werden.
-
Denkbar ist auch, dass anhand die Fahrspurenmatrix R und der Linien 34a, 34b, 34c, 34d die Anzahl an zukünftig zur Verfügung stehenden Fahrspuren vom Verarbeitungsmodul 23 in Fahrzeugkoordinaten bestimmt wird.
-
Zum Training des Maschinenlernmoduls 24 bzw. des künstlichen neuronalen Netzes werden Soll-Trainingsdaten verwendet.
-
Ein Satz von Soll-Trainingsdaten enthält zum Beispiel ein Bild B, das einem mittels der Kamera 22 erzeugten Bild B entspricht bzw. ein mit der Kamera 22 aufgenommenes Bild B ist, sowie Informationen zu in dem Bild B vorhandenen, tatsächlichen charakteristischen Merkmalen, der tatsächlichen Anzahl an für das Fahrzeug 10 künftig zur Verfügung stehenden Fahrspuren 12a, 12b, 12c, der tatsächlichen Fahrspur 12a, 12b, 12c, auf der sich das Fahrzeug 10 befindet, dem für das Bild korrekten Fahrspurenvektor r und/oder die für das Bild B korrekte Fahrspurenmatrix R.
-
Für das Training wird zunächst das künstliche neuronale Netz oder einzelne der Untermodule 38, 42a, 42b, 42c, 42d, 42e werden mit den Soll-Trainingsdaten, insbesondere mit den Bildern B, vorwärtsgespeist, und charakteristische Bildmerkmale, ein Fahrspurenvektor r und/oder eine Fahrspurenmatrix R werden mittels des künstlichen neuronalen Netzes bzw. der entsprechenden Module ermittelt.
-
Anschließend wird der Fehler zwischen den ermittelten charakteristischen Bildmerkmalen, dem ermittelten Fahrspurenvektor r und/oder der ermittelten Fahrspurenmatrix R einerseits und den tatsächlichen charakteristischen Merkmalen, dem für das Bild korrekten Fahrspurenvektor r und/oder der für das Bild B korrekten Fahrspurenmatrix R andererseits ermittelt.
-
Dann werden die Gewichtungsfaktoren des neuronalen Netzes durch Rückwärtsspeisen des künstlichen neuronalen Netzes mit dem Fehler angepasst.