-
Querverweis auf verwandte Anmeldung
-
Diese Anmeldung beansprucht den Vorteil der Priorität aus der am 24. Juni 2020 eingereichten
US-Provisional-Anmeldung 63/043 390 . Die vorstehende Anmeldung ist hier durch Verweis in ihrer Gesamtheit aufgenommen.
-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Offenbarung betrifft allgemein die autonome Fahrzeugnavigation.
-
Hintergrundinformation
-
Während sich die Technologie weiterentwickelt, steht das Ziel eines vollkommen autonomen Fahrzeugs, das auf Straßen navigieren kann, am Horizont. Autonome Fahrzeuge können eine Vielzahl von Faktoren berücksichtigen müssen und geeignete Entscheidungen auf der Grundlage dieser Faktoren treffen müssen, um einen vorgesehenen Bestimmungsort sicher und genau zu erreichen. Beispielsweise kann ein autonomes Fahrzeug visuelle Informationen (beispielsweise von einer Kamera erfasste Informationen) verarbeiten und interpretieren müssen und auch von anderen Quellen (beispielsweise von einer GPS-Vorrichtung, einem Geschwindigkeitssensor, einem Beschleunigungsmesser, einem Federungssensor usw.) erhaltene Informationen verwenden. Gleichzeitig kann ein autonomes Fahrzeug zur Navigation zu einem Bestimmungsort auch seinen Ort innerhalb einer bestimmten Straße (beispielsweise eine spezifische Fahrspur innerhalb einer mehrspurigen Straße) identifizieren müssen, entlang anderen Fahrzeugen navigieren müssen, Hindernisse und Fußgänger vermeiden müssen, Verkehrssignale und -zeichen beachten müssen und an geeigneten Kreuzungen oder Abzweigungen von einer Straße auf eine andere Straße fahren müssen. Das Nutzen und Interpretieren von einem autonomen Fahrzeug, während es zu seinem Bestimmungsort fährt, gesammelter umfangreicher Informationsvolumina stellt eine Vielzahl von Entwurfsherausforderungen. Die schiere Menge der Daten (beispielsweise erfasste Bilddaten, Kartendaten, GPS-Daten, Sensordaten usw.), die ein autonomes Fahrzeug möglicherweise analysieren muss, auf die es möglicherweise zugreifen muss und/oder die es möglicherweise speichern muss, stellt Herausforderungen, welche die autonome Navigation tatsächlich begrenzen oder sogar beeinträchtigen können. Ferner stellt das schiere Datenvolumen, das für das Speichern und Aktualisieren der Karte benötigt wird, beängstigende Herausforderungen, falls sich ein autonomes Fahrzeug für die Navigation auf die traditionelle Kartenerzeugungstechnologie verlässt.
-
KURZFASSUNG
-
Ausführungsformen gemäß der vorliegenden Offenbarung sehen Systeme und Verfahren zur Fahrzeugnavigation vor.
-
Gemäß einer Ausführungsform kann ein System zum Navigieren eines Fahrzeugs wenigstens einen Prozessor aufweisen, der eine Schaltungsanordnung und einen Speicher umfasst. Der Speicher weist Befehle auf, die, wenn sie von der Schaltungsanordnung ausgeführt werden, den wenigstens einen Prozessor veranlassen, einen von einer Bildaufnahmevorrichtung in Zusammenhang mit dem Host-Fahrzeug erfassten Bildframe zu empfangen. Der Bildframe kann eine Umgebung des Host-Fahrzeugs repräsentieren. Die Befehle können, wenn sie von der Schaltungsanordnung ausgeführt werden, den wenigstens einen Prozessor veranlassen, im Bildframe eine Repräsentation eines Zielfahrzeugs zu identifizieren und einen oder mehrere Orientierungsindikatoren in Zusammenhang mit dem Zielfahrzeug zu bestimmen. Die Befehle können, wenn sie von der Schaltungsanordnung ausgeführt werden, ferner den wenigstens einen Prozessor veranlassen, auf der Grundlage des einen oder der mehreren bestimmten Orientierungsindikatoren wenigstens ein Kandidatengebiet des erfassten Bildframes, worin erwartet wird, dass eine Repräsentation einer Fahrzeugtür des Zielfahrzeugs in einem Tür-offen-Zustand ist, zu identifizieren. Die Befehle können, wenn sie von der Schaltungsanordnung ausgeführt werden, auch den wenigstens einen Prozessor veranlassen, das wenigstens eine Kandidatengebiet aus dem Bildframe zu extrahieren und das wenigstens eine extrahierte Kandidatengebiet einem Tür-offen-Erkennungsnetz bereitzustellen. Die Befehle können, wenn sie von der Schaltungsanordnung ausgeführt werden, ferner den wenigstens einen Prozessor veranlassen, wenigstens eine Navigationsaktion für das Host-Fahrzeug als Reaktion auf eine Angabe vom Tür-offen-Erkennungsnetz, dass das wenigstens eine extrahierte Kandidatengebiet eine Repräsentation einer Tür des Zielfahrzeugs in einem offenen Zustand aufweist, zu bestimmen. Die Befehle können, wenn sie von der Schaltungsanordnung ausgeführt werden, den wenigstens einen Prozessor auch veranlassen, einen oder mehrere Aktuatoren in Zusammenhang mit dem Host-Fahrzeug zu veranlassen, die wenigstens eine Navigationsaktion zu implementieren.
-
Gemäß einer Ausführungsform kann ein computerimplementiertes Verfahren zum Navigieren eines Host-Fahrzeugs Folgendes aufweisen: Empfangen eines von einer Bildaufnahmevorrichtung in Zusammenhang mit dem Host-Fahrzeug erfassten Bildframes, wobei der Bildframe eine Umgebung des Host-Fahrzeugs repräsentiert, Identifizieren einer Repräsentation eines Zielfahrzeugs im Bildframe, Bestimmen eines oder mehrerer Orientierungsindikatoren in Zusammenhang mit dem Zielfahrzeug, Identifizieren wenigstens eines Kandidatengebiets des erfassten Bildframes, worin eine Repräsentation einer Fahrzeugtür des Zielfahrzeugs in einem Tür-offen-Zustand erwartet wird, auf der Grundlage des einen oder der mehreren bestimmten Orientierungsindikatoren, Extrahieren des wenigstens einen Kandidatengebiets aus dem Bildframe, Bereitstellen des wenigstens einen extrahierten Kandidatengebiets für ein Tür-offen-Erkennungsnetz, Bestimmen wenigstens einer Navigationsaktion für das Host-Fahrzeug als Reaktion auf eine Angabe vom Tür-offen-Erkennungsnetz, dass das wenigstens eine extrahierte Kandidatengebiet eine Repräsentation einer Tür des Zielfahrzeugs in einem offenen Zustand aufweist, und Veranlassen eines oder mehrerer Aktuatoren in Zusammenhang mit dem Host-Fahrzeug, die wenigstens eine Navigationsaktion zu implementieren.
-
Gemäß einer Ausführungsform kann ein nichtflüchtiges computerlesbares Medium Befehle enthalten, die, wenn sie von wenigstens einem Prozessor ausgeführt werden, den wenigstens einen Prozessor veranlassen, Operationen auszuführen, die das Empfangen eines von einer Bildaufnahmevorrichtung in Zusammenhang mit einem Host-Fahrzeug erfassten Bildframes einschließen, wobei der Bildframe eine Umgebung des Host-Fahrzeugs repräsentiert. Der Bildframe kann eine Umgebung des Host-Fahrzeugs repräsentieren. Die Operationen können das Identifizieren einer Repräsentation eines Zielfahrzeugs im Bildframe einschließen. Die Operationen können auch das Bestimmen eines oder mehrerer Orientierungsindikatoren in Zusammenhang mit dem Zielfahrzeug einschließen. Die Operationen können ferner das Identifizieren wenigstens eines Kandidatengebiets des erfassten Bildframes, worin erwartet wird, dass eine Repräsentation einer Fahrzeugtür des Zielfahrzeugs in einem Tür-offen-Zustand ist, auf der Grundlage des einen oder der mehreren bestimmten Orientierungsindikatoren und das Extrahieren des wenigstens einen Kandidatengebiets aus dem Bildframe einschließen. Die Operationen können auch das Bereitstellen des wenigstens einen extrahierten Kandidatengebiets für ein Tür-offen-Erkennungsnetz einschließen. Die Operationen können ferner das Bestimmen wenigstens einer Navigationsaktion für das Host-Fahrzeug als Reaktion auf eine Angabe vom Tür-offen-Erkennungsnetz, dass das wenigstens eine extrahierte Kandidatengebiet eine Repräsentation einer Tür des Zielfahrzeugs in einem offenen Zustand aufweist, und das Veranlassen eines oder mehrerer Aktuatoren in Zusammenhang mit dem Host-Fahrzeug, die wenigstens eine Navigationsaktion zu implementieren, einschließen.
-
Die vorstehende allgemeine Beschreibung und die folgende detaillierte Beschreibung sind lediglich beispielhaft und erklärend und sollen die Ansprüche nicht einschränken.
-
Figurenliste
-
Die anliegenden Zeichnungen, die in diese Offenbarung aufgenommen sind und einen Teil davon bilden, zeigen verschiedene offenbarte Ausführungsformen. Es zeigen:
- 1 eine schematische Darstellung eines beispielhaften Systems gemäß den offenbarten Ausführungsformen,
- 2A eine schematische Seitenansicht eines beispielhaften Fahrzeugs, das ein System gemäß den offenbarten Ausführungsformen aufweist,
- 2B eine schematische Draufsicht des in 2A dargestellten Fahrzeugs und Systems gemäß den offenbarten Ausführungsformen,
- 2C eine schematische Draufsicht einer anderen Ausführungsform eines Fahrzeugs mit einem System gemäß den offenbarten Ausführungsformen,
- 2D eine schematische Draufsicht einer wieder anderen Ausführungsform eines Fahrzeugs mit einem System gemäß den offenbarten Ausführungsformen,
- 2E eine schematische Draufsicht einer wieder anderen Ausführungsform eines Fahrzeugs mit einem System gemäß den offenbarten Ausführungsformen,
- 2F eine schematische Repräsentation beispielhafter Fahrzeugsteuersysteme gemäß den offenbarten Ausführungsformen,
- 3A eine schematische Repräsentation des Inneren eines Fahrzeugs mit einem Rückspiegel und einer Benutzerschnittstelle für ein Fahrzeugbilderzeugungssystem gemäß den offenbarten Ausführungsformen,
- 3B ein Beispiel eines Kamerahalters, der dafür ausgelegt ist, hinter einem Rückspiegel und an die Fahrzeugwindschutzscheibe anliegend angeordnet zu werden, gemäß den offenbarten Ausführungsformen,
- 3C den in 3B dargestellten Kamerahalter aus einer anderen Perspektive gemäß den offenbarten Ausführungsformen,
- 3D ein Beispiel eines Kamerahalters, der dafür ausgelegt ist, hinter einem Rückspiegel und an die Fahrzeugwindschutzscheibe anliegend angeordnet zu werden, gemäß den offenbarten Ausführungsformen,
- 4 ein beispielhaftes Blockdiagramm eines Speichers, der dafür ausgelegt ist, Befehle zur Ausführung einer oder mehrerer Operationen gemäß den offenbarten Ausführungsformen zu speichern,
- 5A ein Flussdiagramm eines beispielhaften Prozesses zum Bewirken einer oder mehrerer Navigationsreaktionen auf der Grundlage einer monokularen Bildanalyse gemäß offenbarten Ausführungsformen,
- 5B ein Flussdiagramm eines beispielhaften Prozesses zum Erkennen eines oder mehrerer Fahrzeuge und/oder Fußgänger in einem Bildsatz gemäß den offenbarten Ausführungsformen,
- 5C ein Flussdiagramm eines beispielhaften Prozesses zum Erkennen von Straßenmarkierungen und/oder Fahrspurgeometrieinformationen in einem Bildsatz gemäß den offenbarten Ausführungsformen,
- 5D ein Flussdiagramm eines beispielhaften Prozesses zum Erkennen von Ampeln in einem Bildsatz gemäß den offenbarten Ausführungsformen,
- 5E ein Flussdiagramm eines beispielhaften Prozesses zum Bewirken einer oder mehrerer Navigationsreaktionen auf der Grundlage eines Fahrzeugwegs gemäß den offenbarten Ausführungsformen,
- 5F ein Flussdiagramm eines beispielhaften Prozesses zum Feststellen, ob ein vorausfahrendes Fahrzeug Fahrspuren wechselt, gemäß den offenbarten Ausführungsformen,
- 6 ein Flussdiagramm eines beispielhaften Prozesses zum Bewirken einer oder mehrerer Navigationsreaktionen auf der Grundlage einer Stereobildanalyse gemäß den offenbarten Ausführungsformen,
- 7 ein Flussdiagramm eines beispielhaften Prozesses zum Bewirken einer oder mehrerer Navigationsreaktionen auf der Grundlage einer Analyse von drei Bildsätzen gemäß den offenbarten Ausführungsformen,
- 8 eine Sparse-Karte zum Bereitstellen einer autonomen Fahrzeugnavigation gemäß den offenbarten Ausführungsformen,
- 9A eine Polynomrepräsentation von Teilen eines Straßensegments gemäß den offenbarten Ausführungsformen,
- 9B eine Kurve im dreidimensionalen Raum, die eine Zielfahrstrecke eines Fahrzeugs für ein bestimmtes Straßensegment, das in einer Sparse-Karte enthalten ist, repräsentiert, gemäß den offenbarten Ausführungsformen,
- 10 beispielhafte Orientierungsmarken, die in die Sparse-Karte aufgenommen werden können, gemäß den offenbarten Ausführungsformen,
- 11A Polynomrepräsentationen von Fahrstrecken gemäß den offenbarten Ausführungsformen,
- die 11B und 11C Zielfahrstrecken entlang einer mehrspurigen Straße gemäß offenbarten Ausführungsformen,
- 11D ein beispielhaftes Straßensignaturprofil gemäß offenbarten Ausführungsformen,
- 12 eine schematische Darstellung eines Systems, das von mehreren Fahrzeugen empfangene Crowdsourcing-Daten für die autonome Fahrzeugnavigation verwendet, gemäß den offenbarten Ausführungsformen,
- 13 ein beispielhaftes Modell der autonomen Fahrzeugstraßennavigation, das durch mehrere dreidimensionale Splines repräsentiert ist, gemäß den offenbarten Ausführungsformen,
- 14 ein durch Kombinieren von Ortsinformationen von vielen Fahrten erzeugtes Kartenskelett gemäß den offenbarten Ausführungsformen,
- 15 ein Beispiel einer longitudinalen Ausrichtung zweier Fahrten mit beispielhaften Zeichen als Orientierungsmarken gemäß den offenbarten Ausführungsformen,
- 16 ein Beispiel einer longitudinalen Ausrichtung vieler Fahrten mit einem beispielhaften Zeichen als Orientierungsmarke gemäß den offenbarten Ausführungsformen,
- 17 eine schematische Darstellung eines Systems zum Erzeugen von Fahrdaten unter Verwendung einer Kamera, eines Fahrzeugs und eines Servers gemäß den offenbarten Ausführungsformen,
- 18 eine schematische Darstellung eines Systems zum Crowdsourcing einer Sparse-Karte gemäß den offenbarten Ausführungsformen,
- 19 ein Flussdiagramm eines beispielhaften Prozesses zur Erzeugung einer Sparse-Karte zur autonomen Fahrzeugnavigation entlang einem Straßensegment gemäß den offenbarten Ausführungsformen,
- 20 ein Blockdiagramm eines Servers gemäß den offenbarten Ausführungsformen,
- 21 ein Blockdiagramm eines Speichers gemäß den offenbarten Ausführungsformen,
- 22 einen Prozess zum Clustern von Fahrzeugfahrstrecken in Zusammenhang mit Fahrzeugen gemäß den offenbarten Ausführungsformen,
- 23 ein Navigationssystem für ein Fahrzeug, das für die autonome Navigation verwendet werden kann, gemäß den offenbarten Ausführungsformen,
- die 24A, 24B, 24C und 24D beispielhafte Fahrspurmarkierungen, die gemäß den offenbarten Ausführungsformen erkannt werden können,
- 24E beispielhafte kartographierte Fahrspurmarkierungen gemäß den offenbarten Ausführungsformen,
- 24F eine beispielhafte Anomalie in Zusammenhang mit der Erkennung einer Fahrspurmarkierung gemäß den offenbarten Ausführungsformen,
- 25A ein beispielhaftes Bild der Umgebung eines Fahrzeugs zur Navigation auf der Grundlage der kartographierten Fahrspurmarkierungen gemäß den offenbarten Ausführungsformen,
- 25B eine Korrektur der lateralen Lokalisierung eines Fahrzeugs auf der Grundlage kartographierter Fahrspurmarkierungen in einem Straßennavigationsmodell gemäß den offenbarten Ausführungsformen,
- die 25C und 25D Konzeptrepräsentationen einer Lokalisierungstechnik zur Lokalisierung eines Host-Fahrzeugs entlang einer Zielfahrstrecke unter Verwendung in einer Sparse-Karte enthaltener kartographierter Merkmale,
- 26A ein Flussdiagramm eines beispielhaften Prozesses zur Kartographierung einer Fahrspurmarkierung zur Verwendung bei der autonomen Fahrzeugnavigation gemäß offenbarten Ausführungsformen,
- 26B ein Flussdiagramm eines beispielhaften Prozesses zum autonomen Navigieren eines Host-Fahrzeugs entlang einem Straßensegment unter Verwendung kartographierter Fahrspurmarkierungen gemäß offenbarten Ausführungsformen,
- 27 ein beispielhaftes Bild einer Fahrzeugumgebung gemäß offenbarten Ausführungsformen,
- 28A ein beispielhaftes Bild einer Fahrzeugumgebung gemäß offenbarten Ausführungsformen,
- 28B ein beispielhaftes Bild einer Fahrzeugumgebung gemäß offenbarten Ausführungsformen,
- 29 ein Blockdiagramm eines beispielhaften Systems zum Navigieren eines Fahrzeugs gemäß offenbarten Ausführungsformen,
- 30 ein Flussdiagramm eines beispielhaften Prozesses zum Navigieren eines Fahrzeugs gemäß offenbarten Ausführungsformen,
- 31 einen beispielhaften Prozess zum Trainieren eines Erkennungsnetzes gemäß offenbarten Ausführungsformen,
- 32 ein beispielhaftes Bild, das eine Repräsentation einer Fahrzeugumgebung aufweist, gemäß offenbarten Ausführungsformen,
- 33 ein beispielhaftes Bild, das eine Repräsentation einer Fahrzeugumgebung aufweist, gemäß offenbarten Ausführungsformen, und
- 34 ein beispielhaftes Bild, das eine Repräsentation einer Fahrzeugumgebung aufweist, gemäß offenbarten Ausführungsformen.
-
DETAILLIERTE BESCHREIBUNG
-
Die folgende detaillierte Beschreibung bezieht sich auf die anliegenden Zeichnungen. Wenn möglich werden in den Zeichnungen und der folgenden Beschreibung die gleichen Bezugszahlen verwendet, um die gleichen oder ähnliche Teile zu bezeichnen. Wenngleich hier mehrere der Erläuterung dienende Ausführungsformen beschrieben werden, sind Modifikationen, Anpassungen und andere Implementationen möglich. Beispielsweise können an den in den Zeichnungen dargestellten Komponenten Substitutionen, Hinzufügungen oder Modifikationen vorgenommen werden und können die hier beschriebenen der Erläuterung dienenden Verfahren durch Substituieren, Umordnen, Entfernen oder Hinzufügen von Schritten zu den offenbarten Verfahren modifiziert werden. Dementsprechend ist die folgende detaillierte Beschreibung nicht auf die offenbarten Ausführungsformen und Beispiele beschränkt. Der eigentliche Schutzumfang wird vielmehr durch die anliegenden Ansprüche definiert.
-
Überblick über autonomes Fahrzeug
-
In dieser gesamten Offenbarung betrifft der Begriff „autonomes Fahrzeug“ ein Fahrzeug, das in der Lage ist, wenigstens eine Navigationsänderung ohne eine Fahrereingabe zu implementieren. Eine „Navigationsänderung“ betrifft eine Änderung in einem oder mehreren von Lenken, Bremsen oder Beschleunigung des Fahrzeugs. Um autonom zu sein, braucht ein Fahrzeug nicht vollständig automatisch (beispielsweise vollständiger Betrieb ohne einen Fahrer oder ohne eine Fahrereingabe) zu sein. Ein autonomes Fahrzeug umfasst vielmehr jene, die während gewisser Zeiträume unter Fahrersteuerung und während anderer Zeiträume ohne Fahrersteuerung arbeiten können. Autonome Fahrzeuge können auch Fahrzeuge einschließen, die nur einige Aspekte der Fahrzeugnavigation wie das Lenken (beispielsweise zum Beibehalten eines Fahrzeugkurses zwischen Fahrzeugfahrspur-Randbedingungen) steuern, jedoch andere Aspekte (beispielsweise Bremsen) dem Fahrer überlassen können. In manchen Fällen können autonome Fahrzeuge einige oder alle Aspekte des Bremsens, der Geschwindigkeitssteuerung und/oder des Lenkens des Fahrzeugs behandeln.
-
Weil sich menschliche Fahrer typischerweise auf Sichthinweise und Beobachtungen für die Steuerung eines Fahrzeugs verlassen, werden dementsprechend Transportinfrastrukturen aufgebaut, wobei Fahrspurmarkierungen, Verkehrszeichen und Ampeln alle dafür ausgelegt sind, Fahrern visuelle Informationen bereitzustellen. Angesichts dieser Entwurfsmerkmale von Transportinfrastrukturen kann ein autonomes Fahrzeug eine Kamera und eine Verarbeitungseinheit, die aus der Umgebung des Fahrzeugs erfasste visuelle Informationen analysiert, aufweisen. Die visuellen Informationen können beispielsweise Komponenten der Transportinfrastruktur (beispielsweise Fahrspurmarkierungen, Verkehrszeichen, Ampeln usw.), die von Fahrern beobachtbar sind, und andere Hindernisse (beispielsweise andere Fahrzeuge, Fußgänger, Abfall usw.) aufweisen. Zusätzlich kann ein autonomes Fahrzeug auch gespeicherte Informationen in der Art von Informationen, die ein Modell der Fahrzeugumgebung bereitstellen, wenn navigiert wird, verwenden. Beispielsweise kann das Fahrzeug GPS-Daten, Sensordaten (beispielsweise von einem Beschleunigungsmesser, einem Geschwindigkeitssensor, einem Federungssensor usw.) und/oder andere Kartendaten zum Bereitstellen von Informationen in Bezug auf seine Umgebung verwenden, während es fährt, und das Fahrzeug (sowie andere Fahrzeuge) kann die Informationen verwenden, um sich auf dem Modell zu lokalisieren.
-
Gemäß einigen Ausführungsformen in dieser Offenbarung kann ein autonomes Fahrzeug Informationen verwenden, die während der Navigation erhalten werden (beispielsweise von einer Kamera, einer GPS-Vorrichtung, einem Beschleunigungsmesser, einem Geschwindigkeitssensor, einem Federungssensor usw.). Gemäß anderen Ausführungsformen kann ein autonomes Fahrzeug Informationen verwenden, die anhand früherer Navigationen durch das Fahrzeug (oder durch andere Fahrzeuge) erhalten wurden, während es navigiert. Gemäß wieder anderen Ausführungsformen kann ein autonomes Fahrzeug eine Kombination von Informationen, die während des Navigierens erhalten werden, und von Informationen, die anhand früherer Navigationen erhalten wurden, verwenden. Die folgenden Abschnitte bieten einen Überblick über ein System gemäß den offenbarten Ausführungsformen, gefolgt von einem Überblick über ein nach vorne weisendes Bilderzeugungssystem und dem System entsprechende Verfahren. Die folgenden Abschnitte offenbaren Systeme und Verfahren zum Bilden, Verwenden und Aktualisieren einer Sparse-Karte für die autonome Fahrzeugnavigation.
-
Systemüberblick
-
1 ist eine Blockdiagrammrepräsentation eines Systems 100 gemäß den beispielhaften offenbarten Ausführungsformen. Das System 100 kann abhängig von den Anforderungen einer bestimmten Implementation verschiedene Komponenten aufweisen. Gemäß einigen Ausführungsformen kann das System 100 eine Verarbeitungseinheit 110, eine Bilderfassungseinheit 120, einen Positionssensor 130, eine oder mehrere Speichereinheiten 140, 150, eine Kartendatenbank 160, eine Benutzerschnittstelle 170 und einen Drahtlos-Sendeempfänger 172 aufweisen. Die Verarbeitungseinheit 110 kann eine oder mehrere Verarbeitungsvorrichtungen aufweisen. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 einen Anwendungsprozessor 180, einen Bildprozessor 190 oder eine andere geeignete Verarbeitungsvorrichtung aufweisen. Ähnlich kann die Bilderfassungseinheit 120 abhängig von den Anforderungen einer bestimmten Anwendung eine beliebige Anzahl von Bilderfassungsvorrichtungen und Komponenten aufweisen. Gemäß einigen Ausführungsformen kann die Bilderfassungseinheit 120 eine oder mehrere Bildaufnahmevorrichtungen (beispielsweise Kameras) in der Art einer Bildaufnahmevorrichtung 122, einer Bildaufnahmevorrichtung 124 und einer Bildaufnahmevorrichtung 126 aufweisen. Das System 100 kann auch eine Datenschnittstelle 128 aufweisen, welche die Verarbeitungsvorrichtung 110 kommunikativ mit der Bilderfassungsvorrichtung 120 verbindet. Beispielsweise kann die Datenschnittstelle 128 eine drahtgestützte und/oder drahtlose Verbindung oder Verbindungen zur Übertragung von der Bilderfassungsvorrichtung 120 erfasster Bilddaten zur Verarbeitungseinheit 110 aufweisen.
-
Der Drahtlos-Sendeempfänger 172 kann eine oder mehrere Vorrichtungen aufweisen, die dafür ausgelegt sind, unter Verwendung eines Funkfrequenz-, Infrarotfrequenz-, Magnetfelds oder elektrischen Felds Übertragungen über eine Luftschnittstelle mit einem oder mehreren Netzen (beispielsweise Mobilfunk-, Internet usw.) auszutauschen. Der Drahtlos-Sendeempfänger 172 kann einen beliebigen bekannten Standard zum Senden und/oder Empfangen von Daten verwenden (beispielsweise WiFi, Bluetooth®, Bluetooth Smart, 802.15.4, ZigBee usw.). Solche Übertragungen können Komplikationen vom Host-Fahrzeug zu einem oder mehreren fernen Servern einschließen. Solche Übertragungen können auch Kommunikationen (Einweg- oder Zweiwege-) zwischen dem Host-Fahrzeug und einem oder mehreren Zielfahrzeugen in einer Umgebung des Host-Fahrzeugs (beispielsweise zur Erleichterung der Koordination der Navigation des Host-Fahrzeugs angesichts Zielfahrzeugen in der Umgebung des Host-Fahrzeugs oder zusammen mit diesen) oder sogar eine Rundfunkübertragung zu unspezifizierten Empfängern in einer Umgebung des sendenden Fahrzeugs einschließen.
-
Sowohl der Anwendungsprozessor 180 als auch der Bildprozessor 190 können verschiedene Typen von Verarbeitungsvorrichtungen einschließen. Beispielsweise können einer oder beide vom Anwendungsprozessor 180 und vom Bildprozessor 190 einen Mikroprozessor, Vorprozessoren (in der Art eines Bildvorprozessors), eine Grafikverarbeitungseinheit (GPU), eine Zentralverarbeitungseinheit (CPU), Unterstützungsschaltungen, Digitalsignalprozessoren, integrierte Schaltungen, einen Speicher oder jegliche andere Typen von Vorrichtungen, die geeignet sind, um Anwendungen auszuführen, sowie zur Bildverarbeitung und -analyse einschließen. Gemäß einigen Ausführungsformen können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 einen beliebigen Typ eines Einzel- oder Mehrkernprozessors, einer Mobilvorrichtungs-Mikrosteuereinrichtung, einer Zentralverarbeitungseinheit usw. einschließen. Es können verschiedene Verarbeitungsvorrichtungen verwendet werden, einschließlich beispielsweise Prozessoren, die von Herstellern in der Art von Intel®, AMD® usw. verfügbar sind, oder GPUs, die von Herstellern in der Art von NVIDIA®, ATI® usw. verfügbar sind, und sie können verschiedene Architekturen (beispielsweise x86-Prozessor, ARM® usw.) aufweisen.
-
Gemäß einigen Ausführungsformen können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 jegliche aus der EyeQ-Reihe von Prozessorchips, die von Mobileye® erhältlich sind, einschließen. Diese Prozessorentwürfe weisen jeweils mehrere Verarbeitungseinheiten mit einem lokalen Speicher und Befehlssätzen auf. Diese Prozessoren können Videoeingänge zum Empfang von Bilddaten von mehreren Bildsensoren und auch Videoausgabefähigkeiten aufweisen. Bei einem Beispiel verwendet der EyeQ2® eine bei 332 MHz arbeitende 90-nm-Micron-Technologie. Die EyeQ2®-Architektur besteht aus zwei Gleitkomma-Hyperthread-32-Bit-RISC-CPUs (MIPS32®-34K®-Keme), fünf Vision Computing Engines (VCE), drei Vektor-Mikrocode-Prozessoren (VMP®), einer Denali-64-Bit-Mobil-DDR-Steuereinrichtung, einer internen 128-Bit-Sonics-Zwischenverbindung, dualen 16-Bit-Video-Eingabe- und 18-Bit-Video-Ausgabe-Steuereinrichtungen, 16-Kanal-DMA und mehreren Peripheriegeräten. Die MIPS34K-CPU steuert die fünf VCEs, drei VMP™ und den DMA, die zweite MIPS34K-CPU und den Mehrkanal-DMA sowie die anderen Peripheriegeräte. Die fünf VCEs, drei VMP® und die MIPS34K-CPU können intensive Sichtberechnungen ausführen, die von Mehrfunktions-Bündelanwendungen benötigt werden. Bei einem anderen Beispiel kann der EyeQ3®, der ein Prozessor der dritten Generation und sechs Mal leistungsfähiger als der EyeQ2® ist, gemäß den offenbarten Ausführungsformen verwendet werden. Bei anderen Beispielen können der EyeQ4® und/oder der EyeQ5® gemäß den offenbarten Ausführungsformen verwendet werden. Natürlich können jegliche neuere oder künftige EyeQ-Verarbeitungsvorrichtungen auch zusammen mit den offenbarten Ausführungsformen verwendet werden.
-
Jegliche der hier offenbarten Verarbeitungsvorrichtungen können konfiguriert werden, bestimmte Funktionen auszuführen. Bei der Konfiguration einer Verarbeitungsvorrichtung in der Art jeglicher der beschriebenen EyeQ-Prozessoren oder einer anderen Steuereinrichtung oder eines anderen Mikroprozessors können bei der Ausführung bestimmter Funktionen computerausführbare Befehle programmiert werden und diese Befehle der Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung verfügbar gemacht werden. Gemäß einigen Ausführungsformen kann bei der Konfiguration einer Verarbeitungsvorrichtung die Verarbeitungsvorrichtung direkt mit Architekturbefehlen programmiert werden. Beispielsweise können Verarbeitungsvorrichtungen in der Art feldprogrammierbarer Gate-Arrays (FPGAs), anwendungsspezifischer integrierter Schaltungen (ASICs) und dergleichen beispielsweise unter Verwendung einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Gemäß anderen Ausführungsformen können bei der Konfiguration einer Verarbeitungsvorrichtung ausführbare Befehle in einem Speicher, welcher der Verarbeitungsvorrichtung während des Betriebs zugänglich ist, gespeichert werden. Beispielsweise kann die Verarbeitungsvorrichtung auf den Speicher zugreifen, um die gespeicherten Befehle während des Betriebs zu erhalten und auszuführen. In jedem Fall repräsentiert die zur Ausführung der Mess-, Bildanalyse- und/oder Navigationsfunktionen, wie hier offenbart, konfigurierte Verarbeitungsvorrichtung ein auf spezialisierter Hardware beruhendes System bei der Steuerung mehrerer auf Hardware beruhender Komponenten eines Host-Fahrzeugs.
-
Wenngleich 1 zwei getrennte in der Verarbeitungseinheit 110 enthaltene Verarbeitungsvorrichtungen zeigt, können mehr oder weniger Verarbeitungsvorrichtungen verwendet werden. Beispielsweise kann gemäß einigen Ausführungsformen eine einzige Verarbeitungsvorrichtung verwendet werden, um die Aufgaben des Anwendungsprozessors 180 und des Bildprozessors 190 zu erfüllen. Gemäß anderen Ausführungsformen können diese Aufgaben durch mehr als zwei Verarbeitungsvorrichtungen ausgeführt werden. Ferner kann das System 100 gemäß einigen Ausführungsformen eine oder mehrere Instanzen der Verarbeitungseinheit 110 aufweisen, ohne dass es andere Komponenten in der Art der Bilderfassungseinheit 120 aufweist.
-
Die Verarbeitungseinheit 110 kann verschiedene Vorrichtungstypen umfassen. Beispielsweise kann die Verarbeitungseinheit 110 verschiedene Vorrichtungen in der Art einer Steuereinrichtung, eines Bildvorprozessors, einer Zentralverarbeitungseinheit (CPU), einer Grafikverarbeitungseinheit (GPU), von Unterstützungsschaltungen, Digitalsignalprozessoren, integrierten Schaltungen, eines Speichers oder anderer Vorrichtungstypen zur Bildverarbeitung und -analyse einschließen. Der Bildvorprozessor kann einen Videoprozessor zur Aufnahme, zum Digitalisieren und zum Verarbeiten der Bilddaten von den Bildsensoren aufweisen. Die CPU kann eine beliebige Anzahl von Mikrosteuereinrichtungen oder Mikroprozessoren umfassen. Die GPU kann auch eine beliebige Anzahl von Mikrosteuereinrichtungen oder Mikroprozessoren umfassen. Die Unterstützungsschaltungen können eine beliebige Anzahl von auf dem Fachgebiet allgemein bekannten Schaltungen in der Art von Cache-, Stromversorgungs-, Takt- und Ein-/Ausgabeschaltungen sein. Der Speicher kann Software speichern, die, wenn sie durch den Prozessor ausgeführt wird, den Betrieb des Systems steuert. Der Speicher kann Datenbanken und Bildverarbeitungssoftware aufweisen. Der Speicher kann eine beliebige Anzahl von Direktzugriffsspeichern, Nurlesespeichern, Flash-Speichern, Plattenlaufwerken, einem optischen Speicher, einem Bandspeicher, einem entfernbaren Speicher und anderen Speichertypen umfassen. In einem Fall kann der Speicher von der Verarbeitungseinheit 110 getrennt sein. In einem anderen Fall kann der Speicher in die Verarbeitungseinheit 110 integriert sein.
-
Jeder Speicher 140, 150 kann Softwarebefehle aufweisen, die, wenn sie durch einen Prozessor (beispielsweise Anwendungsprozessor 180 und/oder Bildprozessor 190) ausgeführt werden, den Betrieb verschiedener Aspekte des Systems 100 steuern können. Diese Speichereinheiten können verschiedene Datenbanken und Bildverarbeitungssoftware sowie ein trainiertes System in der Art beispielsweise eines neuronalen Netzes oder eines tiefen neuronalen Netzes aufweisen. Die Speichereinheiten können einen Direktzugriffsspeicher (RAM), einen Nurlesespeicher (ROM), einen Flash-Speicher, Plattenlaufwerke, einen optischen Speicher, einen Bandspeicher, einen entfernbaren Speicher und/oder andere Speichertypen umfassen. Gemäß einigen Ausführungsformen können die Speichereinheiten 140, 150 vom Anwendungsprozessor 180 und/oder vom Bildprozessor 190 getrennt sein. Gemäß anderen Ausführungsformen können diese Speichereinheiten in den Anwendungsprozessor 180 und/oder den Bildprozessor 190 integriert sein.
-
Der Positionssensor 130 kann einen beliebigen Vorrichtungstyp einschließen, der für die Bestimmung eines Orts in Zusammenhang mit wenigstens einer Komponente des Systems 100 geeignet ist. Gemäß einigen Ausführungsformen kann der Positionssensor 130 einen GPS-Empfänger einschließen. Solche Empfänger können die Position und Geschwindigkeit eines Benutzers durch Verarbeiten von Satelliten des globalen Positionsbestimmungssystems ausgestrahlter Signale bestimmen. Positionsinformationen vom Positionssensor 130 können dem Anwendungsprozessor 180 und/oder dem Bildprozessor 190 zur Verfügung gestellt werden.
-
Gemäß einigen Ausführungsformen kann das System 100 Komponenten in der Art eines Geschwindigkeitssensors (beispielsweise ein Tachometer, einen Geschwindigkeitsmesser) zum Messen der Geschwindigkeit des Fahrzeugs 200 und/oder eines Beschleunigungsmessers (entweder einachsig oder mehrachsig) zum Messen der Beschleunigung des Fahrzeugs 200 aufweisen.
-
Die Benutzerschnittstelle 170 kann eine beliebige Vorrichtung sein, die dafür geeignet ist, einem oder mehreren Benutzern des Systems 100 Informationen bereitzustellen oder von diesen zu empfangen. Gemäß einigen Ausführungsformen kann die Benutzerschnittstelle 170 Benutzereingabevorrichtungen einschließen, wie beispielsweise einen Touchscreen, ein Mikrofon, eine Tastatur, Anzeigevorrichtungen, Trackwheels, Kameras, Knöpfe, Tasten usw. Mit solchen Eingabevorrichtungen kann ein Benutzer in der Lage sein, dem System 100 durch Eintippen von Befehlen oder Informationen, Bereitstellen von Sprachbefehlen, Auswählen von Menüoptionen auf einem Bildschirm unter Verwendung von Tasten, Zeigern oder Augenverfolgungsfähigkeiten oder durch andere geeignete Techniken zur Übermittlung von Informationen zum System 100, Eingaben oder Befehle bereitzustellen.
-
Die Benutzerschnittstelle 170 kann mit einer oder mehreren Verarbeitungsvorrichtungen versehen sein, die dafür ausgelegt sind, einem Benutzer Informationen bereitzustellen und Informationen von ihm zu empfangen und diese Informationen beispielsweise zur Verwendung durch den Anwendungsprozessor 180 zu verarbeiten. Gemäß einigen Ausführungsformen können diese Verarbeitungsvorrichtungen Befehle zum Erkennen und Verfolgen von Augenbewegungen, zum Empfangen und Interpretieren von Sprachbefehlen, zum Erkennen und Interpretieren von auf einem Touchscreen gemachten Berührungen und/oder Gesten, zum Reagieren auf Tastatureingaben oder Menüauswahlen usw. ausführen. Gemäß einigen Ausführungsformen kann die Benutzerschnittstelle 170 eine Anzeige, einen Lautsprecher, eine taktile Vorrichtung und/oder andere Vorrichtungen, um einem Benutzer Ausgangsinformationen bereitzustellen, einschließen.
-
Die Kartendatenbank 160 kann einen beliebigen Datenbanktyp zum Speichern für das System 100 nützlicher Kartendaten einschließen. Gemäß einigen Ausführungsformen kann die Kartendatenbank 160 Daten in Bezug auf die Position verschiedener Bestandteile, einschließlich Straßen, Wassermerkmale, geographischer Merkmale, Geschäfte, interessierender Punkte, Restaurants, Tankstellen usw. in einem Referenzkoordinatensystem aufweisen. Die Kartendatenbank 160 kann nicht nur die Orte solcher Bestandteile, sondern auch Deskriptoren in Bezug auf diese Bestandteile, einschließlich beispielsweise Namen in Zusammenhang mit jeglichen der gespeicherten Merkmale, speichern. Gemäß einigen Ausführungsformen kann die Kartendatenbank 116 physisch gemeinsam mit anderen Komponenten des Systems 100 angeordnet sein. Alternativ oder zusätzlich kann die Kartendatenbank 160 oder ein Teil davon fern von anderen Komponenten des Systems 100 (beispielsweise der Verarbeitungseinheit 110) angeordnet sein. Gemäß solchen Ausführungsformen können Informationen von der Kartendatenbank 160 über eine drahtgestützte oder drahtlose Datenverbindung zu einem Netz (beispielsweise über ein zellenbasiertes Netz und/oder das Internet usw.) heruntergeladen werden. In manchen Fällen kann die Kartendatenbank 160 ein Sparse-Datenmodell, einschließlich Polynomrepräsentationen bestimmter Straßenmerkmale (beispielsweise Fahrbahnmarkierungen) oder Zielfahrstrecken für das Host-Fahrzeug, speichern. Systeme und Verfahren zur Erzeugung einer solchen Karte werden nachstehend mit Bezug auf die 8 - 19 erörtert.
-
Die Bildaufnahmevorrichtungen 122, 124 und 126 können jeweils einen beliebigen Vorrichtungstyp einschließen, der für die Aufnahme wenigstens eines Bilds einer Umgebung geeignet ist. Überdies kann eine beliebige Anzahl von Bildaufnahmevorrichtungen verwendet werden, um Bilder für die Eingabe in den Bildprozessor zu erfassen. Einige Ausführungsformen können nur eine einzige Bildaufnahmevorrichtung aufweisen, während andere Ausführungsformen zwei, drei oder sogar vier oder mehr Bildaufnahmevorrichtungen aufweisen können. Die Bildaufnahmevorrichtungen 122, 124 und 126 werden nachstehend weiter mit Bezug auf die 2B - 2E beschrieben.
-
Das System 100 oder verschiedene Komponenten davon können in verschiedenartige Plattformen aufgenommen sein. Gemäß einigen Ausführungsformen kann das System 100 an einem Fahrzeug 200 bereitgestellt sein, wie in 2A dargestellt ist. Beispielsweise kann das Fahrzeug 200 mit einer Verarbeitungseinheit 110 und jeglichen der anderen Komponenten des Systems 100, wie vorstehend in Bezug auf 1 beschrieben, versehen sein. Wenngleich das Fahrzeug 200 gemäß einigen Ausführungsformen mit nur einer einzigen Bildaufnahmevorrichtung (beispielsweise einer Kamera) versehen sein kann, können gemäß anderen Ausführungsformen in der Art jener, die in Zusammenhang mit den 2B - 2E erörtert wurden, mehrere Bildaufnahmevorrichtungen verwendet werden. Beispielsweise kann eine der Bildaufnahmevorrichtungen 122 und 124 des Systems 200, wie in 2A dargestellt, Teil eines ADAS(hochentwickelte Fahrerassistenzsysteme)-Bilderzeugungssatzes sein.
-
Die am Fahrzeug 200 als Teil der Bilderfassungseinheit 120 bereitgestellte Bildaufnahmevorrichtung kann an einem beliebigen geeigneten Ort positioniert sein. Gemäß einigen Ausführungsformen, wie in den 2A - 2E und 3A - 3C dargestellt ist, kann sich die Bildaufnahmevorrichtung 122 in der Nähe des Rückspiegels befinden. Diese Position kann eine jener des Fahrers des Fahrzeugs 200 ähnliche Sichtlinie bereitstellen, wodurch die Bestimmung erleichtert werden kann, was der Fahrer sehen kann und was nicht. Die Bildaufnahmevorrichtung 122 kann an einer beliebigen Stelle in der Nähe des Rückspiegels positioniert sein, durch Anordnen der Bildaufnahmevorrichtung 122 auf der Fahrerseite des Spiegels kann das Erhalten von Bildern, welche das Gesichtsfeld und/oder die Sichtlinie des Fahrers repräsentieren, jedoch weiter erleichtert werden.
-
Es können auch andere Stellen für die Bildaufnahmevorrichtungen der Bilderfassungseinheit 120 verwendet werden. Beispielsweise kann die Bildaufnahmevorrichtung 124 an oder in einer Stoßstange des Fahrzeugs 200 angeordnet werden. Eine solche Stelle kann besonders für Bildaufnahmevorrichtungen mit einem weiten Gesichtsfeld geeignet sein. Die Sichtlinie an einer Stoßstange angeordneter Bildaufnahmevorrichtungen kann von jener des Fahrers verschieden sein, weshalb die Stoßstangen-Bildaufnahmevorrichtung und der Fahrer nicht immer die gleichen Objekte sehen können. Die Bildaufnahmevorrichtungen (beispielsweise die Bildaufnahmevorrichtungen 122, 124 und 126) können auch an anderen Stellen angeordnet werden. Beispielsweise können die Bildaufnahmevorrichtungen an oder in einem oder beiden der Seitenspiegel des Fahrzeugs 200, auf dem Dach des Fahrzeugs 200, auf der Motorhaube des Fahrzeugs 200, auf dem Kofferraum des Fahrzeugs 200, an den Seiten des Fahrzeugs 200 angeordnet sein, an jeglichen der Fenster des Fahrzeugs 200 montiert, dahinter positioniert oder davor positioniert sein und in oder in der Nähe von Lampen auf der Vorderseite und/oder der Rückseite des Fahrzeugs 200 usw. montiert sein.
-
Zusätzlich zu Bildaufnahmevorrichtungen kann das Fahrzeug 200 verschiedene andere Komponenten des Systems 100 aufweisen. Beispielsweise kann die Verarbeitungseinheit 110 am Fahrzeug 200 entweder in eine Motorsteuereinheit (ECU) des Fahrzeugs integriert oder getrennt davon bereitgestellt sein. Das Fahrzeug 200 kann auch mit einem Positionssensor 130 in der Art eines GPS-Empfängers versehen sein und auch eine Kartendatenbank 160 und Speichereinheiten 140 und 150 aufweisen.
-
Wie zuvor erörtert, kann der Drahtlos-Sendeempfänger 172 Daten über ein oder mehrere Netze (beispielsweise Mobilfunknetze, das Internet usw.) senden und/oder empfangen. Beispielsweise kann der Drahtlos-Sendeempfänger 172 vom System 100 gesammelte Daten zu einem oder mehreren Servern hochladen und Daten vom einen oder von den mehreren Servern herunterladen. Durch den Drahtlos-Sendeempfänger 172 kann das System 100 beispielsweise periodische und/oder angeforderte Aktualisierungen in der Kartendatenbank 160, im Speicher 140 und/oder im Speicher 150 gespeicherter Daten empfangen. Ähnlich kann der Drahtlos-Sendeempfänger 172 jegliche Daten (beispielsweise von der Bilderfassungseinheit 120 aufgenommene Bilder, vom Positionssensor 130 oder anderen Sensoren, von Fahrzeugsteuersystemen usw. empfangene Daten) vom System 100 und/oder jegliche von der Verarbeitungseinheit 110 verarbeitete Daten zu einem oder mehreren Servern hochladen.
-
Das System 100 kann auf der Grundlage einer Datenschutzniveaueinstellung Daten zu einem Server (beispielsweise zur Cloud) hochladen. Beispielsweise kann das System 100 Datenschutzniveaueinstellungen zum Regeln oder Begrenzen der Typen zum Server gesendeter Daten (einschließlich Metadaten), die ein Fahrzeug und/oder den Fahrer/Eigentümer eines Fahrzeugs eindeutig identifizieren können, implementieren. Solche Einstellungen können vom Benutzer beispielsweise über den Drahtlos-Sendeempfänger 172 festgelegt, durch Herstellungseinrichtungs-Standardeinstellungen initialisiert werden oder durch vom Drahtlos-Sendeempfänger 172 empfangene Daten initialisiert werden.
-
Gemäß einigen Ausführungsformen kann das System 100 Daten gemäß einem „hohen“ Datenschutzniveau hochladen und bei der Festlegung einer Einstellung Daten (beispielsweise Ortsinformationen in Bezug auf einen Weg, aufgenommene Bilder usw.) ohne jegliche Einzelheiten über das spezifische Fahrzeug und/oder den Fahrer/Eigentümer übertragen. Wenn Daten beispielsweise gemäß einer „hohen“ Datenschutzeinstellung hochgeladen werden, kann das System 100 keine Fahrzeugidentifikationsnummer (VIN) oder den Namen eines Fahrers oder Eigentümers des Fahrzeugs aufweisen und stattdessen Daten in der Art aufgenommener Bilder und/oder begrenzter Ortsinformationen in Bezug auf einen Weg übertragen.
-
Es werden andere Datenschutzniveaus erwogen. Beispielsweise kann das System 100 Daten gemäß einem „mittleren“ Datenschutzniveau zu einem Server senden und unter einem „hohen“ Datenschutzniveau nicht enthaltene zusätzliche Informationen aufnehmen, wie die Bauart und/oder das Modell eines Fahrzeugs und/oder den Fahrzeugtyp (beispielsweise Personenkraftwagen, SUV, Lastwagen usw.). Gemäß einigen Ausführungsformen kann das System 100 Daten gemäß einem „niedrigen“ Datenschutzniveau hochladen. Unter einer „niedrigen“ Datenschutzniveaueinstellung kann das System 100 Daten hochladen und Informationen aufnehmen, die ausreichen, um ein spezifisches Fahrzeug, einen spezifischen Eigentümer-/Fahrer und/oder einen Teil eines vom Fahrzeug gefahrenen Wegs oder diesen gesamten Weg eindeutig zu identifizieren. Solche Daten entsprechend einem „niedrigen“ Datenschutzniveau können einen oder mehrere beispielsweise von einer VIN, einem Fahrer-/Eigentümernamen, einem Ursprungsort eines Fahrzeugs vor der Abfahrt, einem vorgesehenen Bestimmungsort des Fahrzeugs, von der Bauart und/oder vom Modell des Fahrzeugs, vom Typ des Fahrzeugs usw. einschließen.
-
2A ist eine schematische Seitenansicht eines beispielhaften Fahrzeugbilderzeugungssystems gemäß den offenbarten Ausführungsformen. 2B ist eine schematische Draufsicht der in 2A dargestellten Ausführungsform. Wie in 2B dargestellt ist, können die offenbarten Ausführungsformen ein Fahrzeug 200 aufweisen, in dessen Karosserie sich ein System 100 befindet, das eine in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 200 angeordnete erste Bildaufnahmevorrichtung 122, eine an oder in einem Stoßstangengebiet (beispielsweise einem der Stoßstangengebiete 210) des Fahrzeugs 200 angeordnete zweite Bildaufnahmevorrichtung 124 und eine Verarbeitungseinheit 110 aufweist.
-
Wie in 2C dargestellt ist, können beide Bildaufnahmevorrichtungen 122 und 124 in der Nähe des Rückspiegels und/oder des Fahrers des Fahrzeugs 200 angeordnet sein. Zusätzlich ist zu verstehen, dass, wenngleich in den 2B und 2C zwei Bildaufnahmevorrichtungen 122 und 124 dargestellt sind, andere Ausführungsformen mehr als zwei Bildaufnahmevorrichtungen aufweisen können. Beispielsweise sind gemäß den in den 2D und 2E dargestellten Ausführungsformen eine erste, eine zweite und eine dritte Bildaufnahmevorrichtung 122, 124 und 126 in das System 100 des Fahrzeugs 200 aufgenommen.
-
Wie in 2D dargestellt ist, kann die Bildaufnahmevorrichtung 122 in der Nähe des Rückspiegels und/oder des Fahrers des Fahrzeugs 200 angeordnet sein und können die Bildaufnahmevorrichtungen 124 und 126 an einem oder in einem Stoßstangengebiet (beispielsweise einem der Stoßstangengebiete 210) des Fahrzeugs 200 angeordnet sein. Überdies können, wie in 2E dargestellt ist, Bildaufnahmevorrichtungen 122, 124 und 126 in der Nähe des Rückspiegels und/oder in der Nähe des Fahrersitzes des Fahrzeugs 200 angeordnet sein. Die offenbarten Ausführungsformen sind auf keine bestimmte Anzahl und Konfiguration der Bildaufnahmevorrichtungen beschränkt, und die Bildaufnahmevorrichtungen können an einer beliebigen geeigneten Stelle innerhalb des Fahrzeugs 200 und/oder an diesem angeordnet sein.
-
Es sei bemerkt, dass die offenbarten Ausführungsformen nicht auf Fahrzeuge beschränkt sind und auch in anderen Zusammenhängen angewendet werden könnten. Es ist auch zu verstehen, dass die offenbarten Ausführungsformen nicht auf einen bestimmten Typ des Fahrzeugs 200 beschränkt sind und auf alle Fahrzeugtypen, einschließlich Kraftfahrzeugen, Lastwagen, Anhänger und anderer Fahrzeugtypen, anwendbar sein können.
-
Die erste Bildaufnahmevorrichtung 122 kann einen geeigneten Typ einer Bildaufnahmevorrichtung einschließen. Die Bildaufnahmevorrichtung 122 kann eine optische Achse aufweisen. In einem Fall kann die Bildaufnahmevorrichtung 122 einen Aptina-M9V024-WVGA-Sensor mit einem globalen Shutter aufweisen. Gemäß anderen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine Auflösung von 1280 x 960 Pixeln bereitstellen und einen Rolling Shutter aufweisen. Die Bildaufnahmevorrichtung 122 kann verschiedene optische Elemente aufweisen. Gemäß einigen Ausführungsformen können eine oder mehrere Linsen aufgenommen sein, beispielsweise um eine gewünschte Brennweite und ein gewünschtes Gesichtsfeld für die Bildaufnahmevorrichtung bereitzustellen. Gemäß einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 mit einer 6-mm-Linse oder einer 12-mm-Linse assoziiert sein. Gemäß einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 dafür ausgelegt sein, Bilder mit einem gewünschten Gesichtsfeld (FOV) 202 aufzunehmen, wie in 2D dargestellt ist. Die Bildaufnahmevorrichtung 122 kann beispielsweise so ausgelegt sein, dass sie ein gewöhnliches FOV, beispielsweise innerhalb eines Bereichs von 40 Grad bis 56 Grad, einschließlich eines FOVs von 46 Grad, eines FOVs von 50 Grad, eines FOVs von 52 Grad oder größer, aufweist. Alternativ kann die Bildaufnahmevorrichtung 122 so ausgelegt sein, dass sie ein schmales FOV im Bereich von 23 bis 40 Grad, beispielsweise ein FOV von 28 Grad oder ein FOV von 36 Grad, aufweist. Zusätzlich kann die Bildaufnahmevorrichtung 122 so ausgelegt sein, dass sie ein weites FOV im Bereich von 100 bis 180 Grad aufweist. Gemäß einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine Weitwinkel-Stoßstangenkamera oder eine Kamera mit einem FOV von bis zu 180 Grad aufweisen. Gemäß einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine 7,2-Megapixel-Bildaufnahmevorrichtung mit einem Seitenverhältnis von etwa 2:1 (beispielsweise H x V = 3800 x 1900 Pixel) mit einem horizontalen FOV von etwa 100 Grad sein. Eine solche Bildaufnahmevorrichtung kann anstelle einer Konfiguration mit drei Bildaufnahmevorrichtungen verwendet werden. Infolge der erheblichen Linsenverzerrung kann das vertikale FOV einer solchen Bildaufnahmevorrichtung bei Implementationen, bei denen die Bildaufnahmevorrichtung eine radialsymmetrische Linse verwendet, erheblich kleiner als 50 Grad sein. Beispielsweise kann eine solche Linse nicht radialsymmetrisch sein, was ein vertikales FOV von mehr als 50 Grad mit einem horizontalen FOV von 100 Grad ermöglichen würde.
-
Die erste Bildaufnahmevorrichtung 122 kann mehrere erste Bilder in Bezug auf eine Szene in Zusammenhang mit dem Fahrzeug 200 erfassen. Jedes der mehreren ersten Bilder kann als Serie von Bildabtastzeilen erfasst werden, die unter Verwendung eines Rolling Shutters aufgenommen werden können. Jede Abtastzeile kann mehrere Pixel aufweisen.
-
Die erste Bildaufnahmevorrichtung 122 kann eine Abtastrate in Zusammenhang mit der Erfassung von jeder der ersten Serie von Bildabtastzeilen aufweisen. Die Abtastrate kann sich auf eine Rate beziehen, mit der ein Bildsensor Bilddaten in Zusammenhang mit jedem in einer bestimmten Abtastzeile enthaltenen Pixel erfassen kann.
-
Die Bildaufnahmevorrichtungen 122, 124 und 126 können einen geeigneten Typ und eine geeignete Anzahl von Bildsensoren, einschließlich beispielsweise CCD-Sensoren oder CMOS-Sensoren, enthalten. Gemäß einer Ausführungsform kann ein CMOS-Bildsensor zusammen mit einem Rolling Shutter verwendet werden, so dass die jeweiligen Pixel in einer Reihe nacheinander einzeln gelesen werden, wobei das Abtasten der Reihen Reihe für Reihe fortschreitet, bis ein gesamter Bildframe aufgenommen wurde. Gemäß einigen Ausführungsformen können die Reihen von oben nach unten in Bezug auf den Frame sequenziell aufgenommen werden.
-
Gemäß einigen Ausführungsformen können eine oder mehrere der hier offenbarten Bildaufnahmevorrichtungen (beispielsweise die Bildaufnahmevorrichtungen 122, 124 und 126) eine höher auflösende Bilderzeugungsvorrichtung bilden und eine Auflösung von mehr als 5 Megapixel, 7 Megapixel, 10 Megapixel oder mehr aufweisen.
-
Die Verwendung eines Rolling Shutters kann dazu führen, dass Pixel in verschiedenen Reihen zu verschiedenen Zeiten belichtet und aufgenommen werden, was zu einer Schräglage und anderen Bildartefakten im aufgenommenen Bildframe führen kann. Andererseits können, wenn die Bildaufnahmevorrichtung 122 dafür ausgelegt ist, mit einem globalen oder synchronen Shutter zu arbeiten, alle Pixel während der gleichen Zeitdauer und während einer gemeinsamen Belichtungsperiode belichtet werden. Daher repräsentieren die von einem System, das einen globalen Shutter verwendet, gesammelten Bilddaten in einem Frame einen Schnappschuss des gesamten FOVs (in der Art des FOVs 202) zu einer bestimmten Zeit. Dagegen wird bei einer Rolling-Shutter-Anwendung jede Reihe in einem Frame zu verschiedenen Zeiten belichtet und werden Daten zu verschiedenen Zeiten erfasst. Demgemäß können sich bewegende Objekte bei einer Bildaufnahmevorrichtung mit einem Rolling Shutter verzerrt erscheinen. Dieses Phänomen wird nachstehend in weiteren Einzelheiten beschrieben.
-
Die zweite Bildaufnahmevorrichtung 124 und die dritte Bildaufnahmevorrichtung 126 können einem beliebigen Typ einer Bildaufnahmevorrichtung angehören. Ebenso wie die erste Bildaufnahmevorrichtung 122 kann jede der Bildaufnahmevorrichtungen 124 und 126 eine optische Achse aufweisen. Gemäß einer Ausführungsform kann jede der Bildaufnahmevorrichtungen 124 und 126 einen Aptina-M9V024-WVGA-Sensor mit einem globalen Shutter aufweisen. Alternativ kann jede der Bildaufnahmevorrichtungen 124 und 126 einen Rolling Shutter aufweisen. Ebenso wie die Bildaufnahmevorrichtung 122 können die Bildaufnahmevorrichtungen 124 und 126 so ausgelegt sein, dass sie verschiedene Linsen und optische Elemente aufweisen. Gemäß einigen Ausführungsformen können Linsen in Zusammenhang mit den Bildaufnahmevorrichtungen 124 und 126 FOVs (in der Art der FOVs 204 und 206) bereitstellen, die einem FOV (in der Art des FOVs 202) in Zusammenhang mit der Bildaufnahmevorrichtung 122 gleichen oder schmaler als dieses sind. Beispielsweise können die Bildaufnahmevorrichtungen 124 und 126 FOVs von 40 Grad, 30 Grad, 26 Grad, 23 Grad, 20 Grad oder weniger aufweisen.
-
Die Bildaufnahmevorrichtungen 124 und 126 können mehrere zweite und dritte Bilder in Bezug auf eine Szene in Zusammenhang mit dem Fahrzeug 200 erfassen. Jedes von den mehreren zweiten und dritten Bildern kann als zweite und dritte Serie von Bildabtastzeilen erfasst werden, welche unter Verwendung eines Rolling Shutters aufgenommen werden können. Jede Abtastzeile oder -reihe kann mehrere Pixel aufweisen. Die Bildaufnahmevorrichtungen 124 und 126 können zweite und dritte Abtastraten in Zusammenhang mit der Erfassung jeder der in der zweiten und dritten Serie enthaltenen Bildabtastzeilen aufweisen.
-
Jede Bildaufnahmevorrichtung 122, 124 und 126 kann an einer geeigneten Position und Orientierung in Bezug auf das Fahrzeug 200 angeordnet sein. Die relative Positionierung der Bildaufnahmevorrichtungen 122, 124 und 126 kann gewählt werden, um das Zusammenfügen der von den Bildaufnahmevorrichtungen erfassten Informationen zu unterstützen. Beispielsweise kann gemäß einigen Ausführungsformen ein FOV (in der Art des FOVs 204) in Zusammenhang mit der Bildaufnahmevorrichtung 124 ein FOV (in der Art des FOVs 202) in Zusammenhang mit der Bildaufnahmevorrichtung 122 und ein FOV (in der Art des FOVs 206) in Zusammenhang mit der Bildaufnahmevorrichtung 126 teilweise oder vollständig überlappen.
-
Die Bildaufnahmevorrichtungen 122, 124 und 126 können sich in geeigneten relativen Höhen am Fahrzeug 200 befinden. In einem Fall kann es eine Höhendifferenz zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 geben, wodurch ausreichend Parallaxeninformationen bereitgestellt werden können, um eine Stereoanalyse zu ermöglichen. Beispielsweise weisen, wie in 2A dargestellt ist, die beiden Bildaufnahmevorrichtungen 122 und 124 unterschiedliche Höhen auf. Es kann auch eine laterale Versatzdifferenz zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 geben, wodurch zusätzliche Parallaxeninformationen beispielsweise zur Stereoanalyse durch die Verarbeitungseinheit 110 bereitgestellt werden. Die Differenz des lateralen Versatzes kann mit dx bezeichnet werden, wie in den 2C und 2D dargestellt ist. Gemäß einigen Ausführungsformen kann zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 ein vorheriger oder späterer Versatz (beispielsweise Reichweitenversatz) existieren. Beispielsweise kann sich die Bildaufnahmevorrichtung 122 0,5 bis 2 Meter oder mehr hinter der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 befinden. Dieser Versatztyp kann es ermöglichen, dass eine der Bildaufnahmevorrichtungen mögliche tote Winkel der einen oder der mehreren anderen Bildaufnahmevorrichtungen abdeckt.
-
Die Bildaufnahmevorrichtungen 122 können eine beliebige geeignete Auflösungsfähigkeit (beispielsweise Pixelanzahl in Zusammenhang mit dem Bildsensor) aufweisen, und die Auflösung des einen oder der mehreren Bildsensoren in Zusammenhang mit der Bildaufnahmevorrichtung 122 kann höher als die Auflösung des einen oder der mehreren Bildsensoren in Zusammenhang mit den Bildaufnahmevorrichtungen 124 und 126, niedriger als diese oder gleich dieser sein. Gemäß einigen Ausführungsformen können der eine oder die mehreren Bildsensoren in Zusammenhang mit der Bildaufnahmevorrichtung 122 und/oder den Bildaufnahmevorrichtungen 124 und 126 eine Auflösung von 640 x 480, 1024 x 768, 1280 x 960 oder eine andere geeignete Auflösung aufweisen.
-
Die Framerate (beispielsweise die Rate, mit der eine Bildaufnahmevorrichtung einen Satz von Pixeldaten eines Bildframes erfasst, bevor sie damit fortfährt, Pixeldaten in Zusammenhang mit dem nächsten Bildframe aufzunehmen) kann steuerbar sein. Die Framerate in Zusammenhang mit der Bildaufnahmevorrichtung 122 kann höher als die Framerate in Zusammenhang mit den Bildaufnahmevorrichtungen 124 und 126, niedriger als diese oder gleich dieser sein. Die Framerate in Zusammenhang mit den Bildaufnahmevorrichtungen 122, 124 und 126 kann von einer Vielzahl von Faktoren, welche die Zeitsteuerung der Framerate beeinflussen können, abhängen. Beispielsweise können eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 eine wählbare Pixelverzögerungsperiode aufweisen, die vor oder nach der Erfassung von Bilddaten in Zusammenhang mit einem oder mehreren Pixeln eines Bildsensors in der Bildaufnahmevorrichtung 122, 124 und/oder 126 auferlegt wird. Im Allgemeinen können jedem Pixel entsprechende Bilddaten entsprechend einer Taktrate für die Vorrichtung (beispielsweise ein Pixel pro Taktzyklus) erfasst werden. Zusätzlich können gemäß Ausführungsformen, die einen Rolling Shutter aufweisen, eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 eine wählbare Horizontalaustastperiode aufweisen, die vor oder nach der Erfassung von Bilddaten in Zusammenhang mit einer Pixelreihe eines Bildsensors in der Bildaufnahmevorrichtung 122, 124 und/oder 126 auferlegt wird. Ferner können eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und/oder 126 eine wählbare Vertikalaustastperiode aufweisen, die vor oder nach der Erfassung von Bilddaten in Zusammenhang mit einem Bildframe der Bildaufnahmevorrichtung 122, 124 und 126 auferlegt wird.
-
Diese Zeitsteuerungen können eine Synchronisation von Frameraten in Zusammenhang mit den Bildaufnahmevorrichtungen 122, 124 und 126 selbst dann ermöglichen, wenn die Zeilenabtastraten verschieden sind. Zusätzlich können, wie nachstehend in weiteren Einzelheiten erörtert wird, diese wählbaren Zeitsteuerungen unter anderen Faktoren (beispielsweise Bildsensorauflösung, maximale Zeilenabtastraten usw.) eine Synchronisation der Bildaufnahme von einem Bereich, in dem das FOV der Bildaufnahmevorrichtung 122 eines oder mehrere FOVs der Bildaufnahmevorrichtungen 124 und 126 überlappt, selbst dann ermöglichen, wenn sich das Gesichtsfeld der Bildaufnahmevorrichtung 122 von den FOVs der Bildaufnahmevorrichtungen 124 und 126 unterscheidet.
-
Die Frameraten-Zeitsteuerung in den Bildaufnahmevorrichtungen 122, 124 und 126 kann von der Auflösung der entsprechenden Bildsensoren abhängen. Beispielsweise ist unter der Annahme ähnlicher Zeilenabtastraten für beide Vorrichtungen, falls eine Vorrichtung einen Bildsensor mit einer Auflösung von 640 x 480 aufweist und eine andere Vorrichtung einen Bildsensor mit einer Auflösung von 1280 x 960 aufweist, mehr Zeit erforderlich, um einen Bilddatenframe vom Sensor mit der höheren Auflösung zu erfassen.
-
Ein anderer Faktor, der die Zeitsteuerung der Bilddatenerfassung in den Bildaufnahmevorrichtungen 122, 124 und 126 beeinflussen kann, ist die maximale Zeilenabtastrate. Beispielsweise erfordert die Erfassung einer Bilddatenreihe von einem in den Bildaufnahmevorrichtungen 122, 124 und 126 enthaltenen Bildsensor einen minimalen Zeitraum. Unter der Annahme, dass keine Pixelverzögerungsperioden hinzugefügt werden, steht dieser minimale Zeitraum für die Erfassung einer Bilddatenreihe in Zusammenhang mit der maximalen Zeilenabtastrate für eine bestimmte Vorrichtung. Vorrichtungen, die höhere maximale Zeilenabtastraten bieten, haben das Potential, höhere Frameraten bereitzustellen als Vorrichtungen mit niedrigeren maximalen Zeilenabtastraten. Gemäß einigen Ausführungsformen können eine oder mehrere der Bildaufnahmevorrichtungen 124 und 126 eine maximale Zeilenabtastrate aufweisen, die höher ist als die maximale Zeilenabtastrate in Zusammenhang mit der Bildaufnahmevorrichtung 122. Gemäß einigen Ausführungsformen kann die maximale Zeilenabtastrate der Bildaufnahmevorrichtung 124 und/oder 126 das 1,25-, 1,5-, 1,75- oder 2Fache oder größer als die maximale Zeilenabtastrate der Bildaufnahmevorrichtung 122 sein.
-
Gemäß einer anderen Ausführungsform können die Bildaufnahmevorrichtungen 122, 124 und 126 die gleiche maximale Zeilenabtastrate aufweisen, die Bildaufnahmevorrichtung 122 kann jedoch auch mit einer Abtastrate betrieben werden, die kleiner oder gleich ihrer maximalen Abtastrate ist. Das System kann so ausgelegt sein, dass eine oder mehrere der Bildaufnahmevorrichtungen 124 und 126 bei einer Zeilenabtastrate arbeiten, die gleich der Zeilenabtastrate der Bildaufnahmevorrichtung 122 ist. In anderen Fällen kann das System so ausgelegt sein, dass die Zeilenabtastrate der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 das 1,25-, 1,5-, 1,75- oder 2Fache oder größer als die Zeilenabtastrate der Bildaufnahmevorrichtung 122 ist.
-
Gemäß einigen Ausführungsformen können die Bildaufnahmevorrichtungen 122, 124 und 126 asymmetrisch sein. Das heißt, dass sie Kameras mit unterschiedlichen Gesichtsfeldern (FOVs) und Brennweiten aufweisen können. Das Gesichtsfeld der Bildaufnahmevorrichtungen 122, 124 und 126 kann beispielsweise einen beliebigen gewünschten Bereich in Bezug auf eine Umgebung des Fahrzeugs 200 aufweisen. Gemäß einigen Ausführungsformen können eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 dafür ausgelegt sein, Bilddaten aus einer Umgebung vor dem Fahrzeug 200, hinter dem Fahrzeug 200, an den Seiten des Fahrzeugs 200 oder einer Kombination davon zu erfassen.
-
Ferner kann die Brennweite in Zusammenhang mit jeder der Bildaufnahmevorrichtungen 122, 124 und/oder 126 wählbar sein (beispielsweise durch Aufnahme geeigneter Linsen usw.), so dass jede Vorrichtung Bilder von Objekten in einem gewünschten Abstandsbereich in Bezug auf das Fahrzeug 200 erfasst. Beispielsweise können die Bildaufnahmevorrichtungen 122, 124 und 126 gemäß einigen Ausführungsformen Bilder nahe gelegener Objekte innerhalb einiger Meter vom Fahrzeug erfassen. Die Bildaufnahmevorrichtungen 122, 124 und 126 können auch dafür ausgelegt sein, Bilder von Objekten in ferneren Bereichen vom Fahrzeug (beispielsweise 25 m, 50 m, 100 m, 150 m oder mehr) zu erfassen. Ferner können die Brennweiten der Bildaufnahmevorrichtungen 122, 124 und 126 so gewählt werden, dass eine Bildaufnahmevorrichtung (beispielsweise die Bildaufnahmevorrichtung 122) Bilder von Objekten, die sich verhältnismäßig nahe beim Fahrzeug befinden (beispielsweise innerhalb von 10 m oder innerhalb von 20 m), erfassen kann, während die anderen Bildaufnahmevorrichtungen (beispielsweise die Bildaufnahmevorrichtungen 124 und 126) Bilder von Objekten erfassen können, die weiter entfernt (beispielsweise mehr als 20 m, 50 m, 100 m, 150 m usw.) vom Fahrzeug 200 sind.
-
Gemäß einigen Ausführungsformen kann das FOV einer oder mehrerer der Bildaufnahmevorrichtungen 122, 124 und 126 einen Weitwinkel aufweisen. Es kann beispielsweise vorteilhaft sein, ein FOV von 140 Grad, insbesondere für die Bildaufnahmevorrichtungen 122, 124 und 126, zu haben, die verwendet werden können, um Bilder des Bereichs in der Nähe des Fahrzeugs 200 aufzunehmen. Beispielsweise kann die Bildaufnahmevorrichtung 122 verwendet werden, um Bilder des Bereichs rechts oder links des Fahrzeugs 200 aufzunehmen, und kann es gemäß solchen Ausführungsformen wünschenswert sein, dass die Bildaufnahmevorrichtung 122 ein weites FOV (beispielsweise wenigstens 140 Grad) aufweist.
-
Das Gesichtsfeld in Zusammenhang mit jeder der Bildaufnahmevorrichtungen 122, 124 und 126 kann von den jeweiligen Brennweiten abhängen. Beispielsweise nimmt, wenn die Brennweite zunimmt, das entsprechende Gesichtsfeld ab.
-
Die Bildaufnahmevorrichtungen 122, 124 und 126 können so ausgelegt sein, dass sie beliebige geeignete Gesichtsfelder aufweisen. Bei einem bestimmten Beispiel kann die Bildaufnahmevorrichtung 122 ein horizontales FOV von 46 Grad aufweisen, kann die Bildaufnahmevorrichtung 124 ein horizontales FOV von 23 Grad aufweisen und kann die Bildaufnahmevorrichtung 126 ein horizontales FOV zwischen 23 und 46 Grad aufweisen. In einem anderen Fall kann die Bildaufnahmevorrichtung 122 ein horizontales FOV von 52 Grad aufweisen, kann die Bildaufnahmevorrichtung 124 ein horizontales FOV von 26 Grad aufweisen und kann die Bildaufnahmevorrichtung 126 ein horizontales FOV zwischen 26 und 52 Grad aufweisen. Gemäß einigen Ausführungsformen kann das Verhältnis zwischen dem FOV der Bildaufnahmevorrichtung 122 und den FOVs der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 von 1,5 bis 2,0 variieren. Gemäß anderen Ausführungsformen kann das Verhältnis zwischen 1,25 und 2,25 variieren.
-
Das System 100 kann so ausgelegt sein, dass ein Gesichtsfeld der Bildaufnahmevorrichtung 122 ein Gesichtsfeld der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 zumindest teilweise oder vollständig überlappt. Gemäß einigen Ausführungsformen kann das System 100 so ausgelegt sein, dass die Gesichtsfelder der Bildaufnahmevorrichtungen 124 und 126 beispielsweise in ein gemeinsames Zentrum mit dem Gesichtsfeld der Bildaufnahmevorrichtung 122 fallen (beispielsweise schmaler als dieses sind) und sich dieses damit teilen. Gemäß anderen Ausführungsformen können die Bildaufnahmevorrichtungen 122, 124 und 126 benachbarte FOVs erfassen oder eine teilweise Überlappung in ihren FOVs aufweisen. Gemäß einigen Ausführungsformen können die Gesichtsfelder der Bildaufnahmevorrichtungen 122, 124 und 126 so ausgerichtet sein, dass sich ein Zentrum der Bildaufnahmevorrichtungen 124 und/oder 126 mit einem schmaleren FOV in der unteren Hälfte des Gesichtsfelds der Vorrichtung 122 mit einem weiteren FOV befinden kann.
-
2F ist eine schematische Repräsentation beispielhafter Fahrzeugsteuersysteme gemäß den offenbarten Ausführungsformen. Wie in 2F dargestellt ist, kann die Vorrichtung 200 ein Drosselsystem 220, ein Bremssystem 230 und ein Lenksystem 240 aufweisen. Das System 100 kann Eingaben (beispielsweise Steuersignale) einem oder mehreren vom Drosselsystem 220, vom Bremssystem 230 und vom Lenksystem 240 über eine oder mehrere Datenverbindungen (beispielsweise eine oder mehrere drahtgestützte und/oder drahtlose Verbindungen zur Übertragung von Daten) bereitstellen. Beispielsweise kann das System 100 auf der Grundlage einer Analyse von den Bildaufnahmevorrichtungen 122, 124 und/oder 126 erfasster Bilder einem oder mehreren vom Drosselsystem 220, vom Bremssystem 230 und vom Lenksystem 240 Steuersignale für die Navigation des Fahrzeugs 200 (beispielsweise durch Bewirken einer Beschleunigung, einer Richtungsänderung, eines Fahrspurwechsels usw.) bereitstellen. Ferner kann das System 100 Eingaben von einem oder mehreren vom Drosselsystem 220, vom Bremssystem 230 und vom Lenksystem 240 empfangen, welche Betriebsbedingungen des Fahrzeugs 200 (beispielsweise Geschwindigkeit, ob das Fahrzeug 200 bremst und/oder die Richtung ändert usw.) angeben. Weitere Einzelheiten werden nachstehend in Zusammenhang mit den 4 - 7 bereitgestellt.
-
Wie in 3A dargestellt ist, kann das Fahrzeug 200 eine Benutzerschnittstelle 170 zur Interaktion mit einem Fahrer oder Fahrgast des Fahrzeugs 200 aufweisen. Beispielsweise kann die Benutzerschnittstelle 170 bei einer Fahrzeuganwendung einen Touchscreen 320, Knöpfe 330, Tasten 340 und ein Mikrofon 350 aufweisen. Ein Fahrer oder Fahrgast des Fahrzeugs 200 kann auch Handhebel (die sich beispielsweise an oder in der Nähe der Lenksäule des Fahrzeugs 200 befinden, einschließlich beispielsweise Lenksignal-Handhebel), Tasten (die sich beispielsweise am Lenkrad des Fahrzeugs 200 befinden) und dergleichen verwenden, um mit dem System 100 zu interagieren. Gemäß einigen Ausführungsformen kann sich das Mikrofon 350 angrenzend an einen Rückspiegel 310 befinden. Ähnlich kann sich die Bildaufnahmevorrichtung 122 gemäß einigen Ausführungsformen in der Nähe des Rückspiegels 310 befinden. Gemäß einigen Ausführungsformen kann die Benutzerschnittstelle 170 auch einen oder mehrere Lautsprecher 360 (beispielsweise Lautsprecher eines Fahrzeugaudiosystems) aufweisen. Beispielsweise kann das System 100 über Lautsprecher 360 verschiedene Benachrichtigungen (beispielsweise Warnungen) bereitstellen.
-
Die 3B - 3D sind Darstellungen eines beispielhaften Kamerahalters 370, der gemäß offenbarten Ausführungsformen dafür ausgelegt ist, hinter einem Rückspiegel (beispielsweise Rückspiegel 310) und gegen eine Fahrzeugwindschutzscheibe angeordnet zu werden. Wie in 3B dargestellt ist, kann der Kamerahalter 370 Bildaufnahmevorrichtungen 122, 124 und 126 aufweisen. Die Bildaufnahmevorrichtungen 124 und 126 können hinter einem Blendschutz 380 angeordnet sein, der an die Fahrzeugwindschutzscheibe anliegen kann und eine Zusammensetzung eines Films und/oder antireflektierender Materialien aufweisen kann. Beispielsweise kann der Blendschutz 380 so angeordnet sein, dass er mit
einer passenden Neigung an die Fahrzeugwindschutzscheibe anliegend ausgerichtet ist. Gemäß einigen Ausführungsformen kann jede der Bildaufnahmevorrichtungen 122, 124 und 126 hinter dem Blendschutz 380 angeordnet sein, wie beispielsweise in 3D dargestellt ist. Die offenbarten Ausführungsformen sind auf keine bestimmte Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126, des Kamerahalters 370 und des Blendschutzes 380 beschränkt. 3C ist eine Darstellung eines in 3B dargestellten Kamerahalters 370 aus einer Frontperspektive.
-
Wie Fachleute auf dem Gebiet nach dem Lesen dieser Offenbarung verstehen werden, können an den zuvor offenbarten Ausführungsformen zahlreiche Abänderungen und/oder Modifikationen vorgenommen werden. Beispielsweise sind nicht alle Komponenten für den Betrieb des Systems 100 wesentlich. Ferner kann sich eine Komponente in einem geeigneten Teil des Systems 100 befinden und können die Komponenten in einer Vielfalt von Konfigurationen umgeordnet werden, während sie die Funktionalität der offenbarten Ausführungsformen bereitstellen. Daher sind die vorstehenden Konfigurationen Beispiele und kann das System 100 ungeachtet der vorstehend erörterten Konfigurationen einen weiten Funktionalitätsbereich für die Analyse der Umgebungen des Fahrzeugs 200 und für die Navigation des Fahrzeugs 200 als Reaktion auf die Analyse bereitstellen.
-
Wie nachstehend in weiteren Einzelheiten erörtert wird und in Übereinstimmung mit verschiedenen offenbarten Ausführungsformen kann das System 100 eine Vielfalt von Merkmalen in Bezug auf die Technologie des autonomen Fahrens und/oder der Fahrerunterstützung bereitstellen. Beispielsweise kann das System 100 Bilddaten, Positionsdaten (beispielsweise GPS-Ortsinformationen), Kartendaten, Geschwindigkeitsdaten und/oder Daten von im Fahrzeug 200 enthaltenen Sensoren analysieren. Das System 100 kann die Daten zur Analyse beispielsweise von der Bilderfassungseinheit 120, vom Positionssensor 130 und anderen Sensoren sammeln. Ferner kann das System 100 die gesammelten Daten analysieren, um festzustellen, ob das Fahrzeug 200 eine gewisse Aktion ausführen sollte, und dann automatisch die bestimmte Aktion ohne menschlichen Eingriff ausführen. Wenn das Fahrzeug 200 ohne menschlichen Eingriff navigiert, kann das System 100 das Bremsen, Beschleunigen und/oder Lenken des Fahrzeugs 200 beispielsweise automatisch steuern (beispielsweise durch Senden von Steuersignalen zu einem oder mehreren vom Drosselsystem 220, vom Bremssystem 230 und vom Lenksystem 240). Ferner kann das System 100 die gesammelten Daten analysieren und auf der Grundlage der Analyse der gesammelten Daten Warnungen und/oder Alarmierungen an Fahrzeuginsassen ausgeben. Zusätzliche Einzelheiten in Bezug auf die verschiedenen Ausführungsformen, die durch das System 100 bereitgestellt werden, werden nachstehend bereitgestellt.
-
Nach vorne weisendes Mehrfach-Bilderzeugungssystem
-
Wie vorstehend erörtert, kann das System 100 eine Fahrassistenzfunktionalität bereitstellen, die ein Mehrkamerasystem verwendet. Das Mehrkamerasystem kann eine oder mehrere in Vorwärtsrichtung eines Fahrzeugs weisende Kameras verwenden. Gemäß anderen Ausführungsformen kann das Mehrkamerasystem eine oder mehrere zur Seite eines Fahrzeugs oder zur Rückseite des Fahrzeugs weisende Kameras aufweisen. Gemäß einer Ausführungsform kann das System 100 beispielsweise ein Zweikamera-Bilderzeugungssystem verwenden, wobei eine erste und eine zweite Kamera (beispielsweise Bildaufnahmevorrichtungen 122 und 124) auf der Vorderseite oder auf den Seiten eines Fahrzeugs (beispielsweise des Fahrzeugs 200) angeordnet sein können. Die erste Kamera kann ein Gesichtsfeld aufweisen, das größer als das Gesichtsfeld der zweiten Kamera ist, kleiner als dieses ist oder dieses teilweise überlappt. Zusätzlich kann die erste Kamera mit einem ersten Bildprozessor verbunden sein, um eine monokulare Bildanalyse an von der ersten Kamera bereitgestellten Bildern auszuführen, und kann die zweite Kamera mit einem zweiten Bildprozessor verbunden sein, um eine monokulare Bildanalyse an von der zweiten Kamera bereitgestellten Bildern auszuführen. Die Ausgaben (beispielsweise verarbeiteten Informationen) des ersten und des zweiten Bildprozessors können kombiniert werden. Gemäß einigen Ausführungsformen kann der zweite Bildprozessor Bilder sowohl von der ersten als auch der zweiten Kamera empfangen, um eine Stereoanalyse auszuführen. Gemäß einer anderen Ausführungsform kann das System 100 ein Dreikamera-Bilderzeugungssystem verwenden, wobei jede der Kameras ein anderes Gesichtsfeld aufweist. Ein solches System kann daher Entscheidungen auf der Grundlage von Informationen treffen, die von Objekten abgeleitet wurden, die sich in verschiedenen Abständen sowohl vor dem Fahrzeug als auch auf seinen Seiten befinden. Bezüge auf die monokulare Bildanalyse können Fälle betreffen, in denen die Bildanalyse auf der Grundlage von einem einzigen Blickpunkt (beispielsweise von einer einzigen Kamera) aufgenommener Bilder ausgeführt wird. Die Stereobildanalyse kann Fälle betreffen, in denen die Bildanalyse auf der Grundlage von zwei oder mehr Bildern ausgeführt wird, die mit einer oder mehreren Variationen eines Bildaufnahmeparameters aufgenommen wurden. Beispielsweise können aufgenommene Bilder, die für die Ausführung einer Stereobildanalyse geeignet sind, Bilder einschließen, die von zwei oder mehr verschiedenen Positionen, von verschiedenen Gesichtsfeldern, unter Verwendung verschiedener Brennweiten, zusammen mit Parallaxeninformationen usw. aufgenommen wurden.
-
Beispielsweise kann das System 100 gemäß einer Ausführungsform eine die Bildaufnahmevorrichtungen 122, 124 und 126 verwendende Dreikamerakonfiguration implementieren. Bei einer solchen Konfiguration kann die Bildaufnahmevorrichtung 122 ein schmales Gesichtsfeld (beispielsweise 34 Grad oder andere aus einem Bereich von etwa 20 bis 45 Grad ausgewählte Werte usw.) bereitstellen, kann die Bildaufnahmevorrichtung 124 ein weites Gesichtsfeld (beispielsweise 150 Grad oder andere aus einem Bereich von etwa 100 bis etwa 180 Grad ausgewählte Werte) bereitstellen und kann die Bildaufnahmevorrichtung 126 ein mittleres Gesichtsfeld (beispielsweise 46 Grad oder andere aus einem Bereich von etwa 35 bis etwa 60 Grad ausgewählte Werte) bereitstellen. Gemäß einigen Ausführungsformen kann die Bildaufnahmevorrichtung 126 als eine Haupt- oder Primärkamera wirken. Die Bildaufnahmevorrichtungen 122, 124 und 126 können hinter dem Rückspiegel 310 und im Wesentlichen Seite an Seite (beispielsweise 6 cm getrennt) angeordnet sein. Ferner können gemäß einigen Ausführungsformen, wie vorstehend erörtert, eine oder mehrere Bildaufnahmevorrichtungen 122, 124 und 126 hinter dem mit der Windschutzscheibe des Fahrzeugs 200 abschließenden Blendschutz 380 montiert sein. Diese Abschirmung kann die Wirkung von Reflexionen aus dem Inneren des Wagens auf die Bildaufnahmevorrichtungen 122, 124 und 126 minimieren.
-
Gemäß einer anderen Ausführungsform, wie vorstehend in Zusammenhang mit den 3B und 3C erörtert, kann die Kamera mit einem weiten Gesichtsfeld (beispielsweise die Bildaufnahmevorrichtung 124 beim vorstehenden Beispiel) unterhalb der Kameras mit einem schmalen Gesichtsfeld und dem Hauptgesichtsfeld (beispielsweise der Bildaufnahmevorrichtungen 122 und 126 beim vorstehenden Beispiel) montiert sein. Diese Konfiguration kann eine freie Sichtlinie von der Kamera mit einem weiten Gesichtsfeld bereitstellen. Zur Verringerung von Reflexionen können die Kameras in der Nähe der Windschutzscheibe des Fahrzeugs 200 montiert sein und Polarisatoren an den Kameras aufweisen, um reflektiertes Licht zu dämpfen.
-
Ein Dreikamerasystem kann gewisse Leistungsmerkmale bereitstellen. Beispielsweise können einige Ausführungsformen die Fähigkeit beinhalten, die Erkennung von Objekten durch eine Kamera auf der Grundlage der Erkennungsergebnisse von einer anderen Kamera zu validieren. Bei der vorstehend erörterten Dreikamerakonfiguration kann die Verarbeitungseinheit 110 beispielsweise drei Verarbeitungsvorrichtungen (beispielsweise drei Prozessorchips aus der EyeQ-Reihe, wie vorstehend erörtert) aufweisen, wobei jede Verarbeitungsvorrichtung der Verarbeitung von einer oder mehreren der Bildaufnahmevorrichtungen 122, 124 und 126 aufgenommener Bilder zugewiesen ist.
-
Bei einem Dreikamerasystem kann eine erste Verarbeitungsvorrichtung Bilder sowohl von der Hauptkamera als auch von der Kamera mit einem schmalen Gesichtsfeld empfangen und eine Sichtverarbeitung der Kamera mit einem schmalen FOV ausführen, um beispielsweise andere Fahrzeuge, Fußgänger, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und andere Straßenobjekte zu erkennen. Ferner kann die erste Verarbeitungsvorrichtung eine Pixeldisparität zwischen den Bildern von der Hauptkamera und der schmalen Kamera berechnen und eine 3D-Rekonstruktion der Umgebung des Fahrzeugs 200 erzeugen. Die erste Verarbeitungsvorrichtung kann dann die 3D-Rekonstruktion mit 3D-Kartendaten oder mit 3D-Informationen, die auf der Grundlage von Informationen von einer anderen Kamera berechnet wurden, kombinieren.
-
Die zweite Verarbeitungsvorrichtung kann Bilder von der Hauptkamera empfangen und eine Sichtverarbeitung zur Erkennung anderer Fahrzeuge, Fußgänger, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und anderer Straßenobjekte ausführen. Zusätzlich kann die zweite Verarbeitungsvorrichtung einen Kameraversatz berechnen und auf der Grundlage des Versatzes die Pixeldisparität zwischen aufeinander folgenden Bildern berechnen und eine 3D-Rekonstruktion der Szene (beispielsweise eine Struktur aus der Bewegung) erzeugen. Die zweite Verarbeitungsvorrichtung kann die Struktur von der bewegungsbasierten 3D-Rekonstruktion zur ersten Verarbeitungsvorrichtung senden, um sie mit den Stereo-3D-Bildern zu kombinieren.
-
Die dritte Verarbeitungsvorrichtung kann Bilder von der Kamera mit einem weiten FOV empfangen und die Bilder zur Erkennung von Fahrzeugen, Fußgängern, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und anderen Straßenobjekten verarbeiten. Die dritte Verarbeitungsvorrichtung kann ferner zusätzliche Verarbeitungsbefehle zur Analyse von Bildern ausführen, um sich im Bild bewegende Objekte in der Art von Fahrzeugen, die Fahrspuren wechseln, Fußgängern usw. zu identifizieren.
-
Gemäß einigen Ausführungsformen kann dadurch, dass Streams von bildbasierten Informationen unabhängig aufgenommen und verarbeitet werden, eine Gelegenheit bereitgestellt werden, im System Redundanz bereitzustellen. Eine solche Redundanz kann beispielsweise einschließen, dass eine erste Bildaufnahmevorrichtung verwendet wird und die von dieser Vorrichtung verarbeiteten Bilder verwendet werden, um durch die Aufnahme und Verarbeitung von Bildinformationen von wenigstens einer zweiten Bildaufnahmevorrichtung erhaltene Informationen zu validieren und/oder zu ergänzen.
-
Gemäß einigen Ausführungsformen kann das System 100 zwei Bildaufnahmevorrichtungen (beispielsweise die Bildaufnahmevorrichtungen 122 und 124) verwenden, um Navigationsunterstützung für das Fahrzeug 200 bereitzustellen, und eine dritte Bildaufnahmevorrichtung (beispielsweise die Bildaufnahmevorrichtung 126) verwenden, um Redundanz bereitzustellen und die Analyse von den anderen beiden Bildaufnahmevorrichtungen empfangener Daten zu validieren. Beispielsweise können bei einer solchen Konfiguration die Bildaufnahmevorrichtungen 122 und 124 Bilder für eine Stereoanalyse durch das System 100 zur Navigation des Fahrzeugs 200 bereitstellen, während die Bildaufnahmevorrichtung 126 Bilder zur monokularen Analyse durch das System 100 bereitstellen kann, um Redundanz bereitzustellen und Informationen zu validieren, die auf der Grundlage von der Bildaufnahmevorrichtung 122 und/oder der Bildaufnahmevorrichtung 124 aufgenommener Bilder erhalten wurden. Das heißt, dass davon ausgegangen werden kann, dass die Bildaufnahmevorrichtung 126 (und eine entsprechende Verarbeitungsvorrichtung) ein redundantes Untersystem für das Bereitstellen einer Prüfung der von den Bildaufnahmevorrichtungen 122 und 124 abgeleiteten Analyse (beispielsweise zur Bereitstellung eines automatischen Notbremssystems (AEB-Systems)) bereitstellt. Ferner können gemäß einigen Ausführungsformen die Redundanz und die Validierung der empfangenen Daten auf der Grundlage von einem oder mehreren Sensoren (beispielsweise Radar-, Lidar-, Akustiksensoren, von einem oder mehreren Sendeempfängern außerhalb eines Fahrzeugs empfangene Informationen usw.) empfangener Informationen ergänzt werden.
-
Fachleute werden erkennen, dass die vorstehenden Kamerakonfigurationen, Kameraanordnungen, Kameraanzahlen, Kameraorte usw. nur Beispiele sind. Diese Komponenten und andere, die in Bezug auf das Gesamtsystem beschrieben wurden, können in einer Vielfalt verschiedener Konfigurationen zusammengesetzt und verwendet werden, ohne vom Geltungsbereich der offenbarten Ausführungsformen abzuweichen. Weitere Einzelheiten in Bezug auf die Verwendung eines Mehrkamerasystems zur Bereitstellung einer Fahrerunterstützungsfunktionalität und/oder einer Funktionalität eines autonomen Fahrzeugs folgen nachstehend.
-
4 ist ein beispielhaftes Funktionsblockdiagramm des Speichers 140 und/oder 150, worin Befehle zur Ausführung einer oder mehrerer Operationen gemäß den offenbarten Ausführungsformen gespeichert werden können oder die mit diesen Befehlen programmiert werden können. Wenngleich sich das nachfolgend Erwähnte auf den Speicher 140 bezieht, werden Fachleute erkennen, dass Befehle im Speicher 140 und/oder 150 gespeichert werden können.
-
Wie in 4 dargestellt ist, kann der Speicher 140 ein monokulares Bildanalysemodul 402, ein Stereobildanalysemodul 404, ein Geschwindigkeits- und Beschleunigungsmodul 406 und ein Navigationsreaktionsmodul 408 speichern. Die offenbarten Ausführungsformen sind auf keine bestimmte Konfiguration des Speichers 140 beschränkt. Ferner können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 die in einem der im Speicher 140 enthaltenen Module 402, 404, 406 und 408 gespeicherten Befehle ausführen. Fachleute werden verstehen, dass sich in den folgenden Erörterungen gemachte Bezüge auf die Verarbeitungseinheit 110 individuell oder gemeinsam auf den Anwendungsprozessor 180 und den Bildprozessor 190 beziehen können. Dementsprechend können Schritte jeglicher der folgenden Prozesse durch eine oder mehrere Verarbeitungsvorrichtungen ausgeführt werden.
-
Gemäß einer Ausführungsform kann das monokulare Bildanalysemodul 402 Befehle (in der Art von Computersichtsoftware) speichern, die, wenn sie von der Verarbeitungseinheit 110 ausgeführt werden, eine monokulare Bildanalyse eines Satzes von einer der Bildaufnahmevorrichtungen 122, 124 und 126 erfasster Bilder ausführen. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen von einem Bildsatz mit zusätzlichen Sensorinformationen (beispielsweise Informationen von Radar, Lidar usw.) kombinieren, um die monokulare Bildanalyse auszuführen. Wie nachstehend in Zusammenhang mit den 5A - 5D beschrieben, kann das monokulare Bildanalysemodul 402 Befehle zum Erkennen eines Satzes von Merkmalen innerhalb des Bildsatzes in der Art von Fahrspurmarkierungen, Fahrzeugen, Fußgängern, Straßenschildern, Schnellstraßenausfahrtrampen, Ampeln, gefährlichen Objekten und jeglichen anderen Merkmalen in Zusammenhang mit einer Umgebung eines Fahrzeugs aufweisen. Auf der Grundlage der Analyse kann das System (beispielsweise durch die Verarbeitungseinheit 110) eine oder mehrere Navigationsreaktionen im Fahrzeug 200 hervorrufen, wie eine Richtungsänderung, einen Fahrspurwechsel, eine Beschleunigungsänderung und dergleichen, wie nachstehend in Zusammenhang mit dem Navigationsreaktionsmodul 408 erörtert.
-
Gemäß einer Ausführungsform kann das Stereobildanalysemodul 404 Befehle (in der Art von Computersichtsoftware) speichern, die, wenn sie von der Verarbeitungseinheit 110 ausgeführt werden, eine Stereobildanalyse erster und zweiter Sätze durch eine Kombination von Bildaufnahmevorrichtungen, die aus jeglichen der Bildaufnahmevorrichtungen 122, 124 und 126 ausgewählt sind, erfasster Bilder ausführt Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen vom ersten und vom zweiten Bildsatz mit zusätzlichen Sensorinformationen (beispielsweise Informationen von Radar) kombinieren, um die Stereobildanalyse auszuführen. Beispielsweise kann das Stereobildanalysemodul 404 Befehle zur Ausführung einer Stereobildanalyse auf der Grundlage eines ersten Satzes von der Bildaufnahmevorrichtung 124 erfasster Bilder und eines zweiten Satzes von der Bildaufnahmevorrichtung 126 erfasster Bilder aufweisen. Wie nachstehend in Zusammenhang mit 6 beschrieben wird, kann das Stereobildanalysemodul 404 Befehle zum Erkennen eines Satzes von Merkmalen innerhalb des ersten und des zweiten Bildsatzes in der Art von Fahrspurmarkierungen, Fahrzeugen, Fußgängern, Straßenschildern, Schnellstraßenausfahrtrampen, Ampeln, gefährlichen Objekten und dergleichen aufweisen. Auf der Grundlage der Analyse kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 hervorrufen, wie eine Richtungsänderung, einen Fahrspurwechsel, eine Beschleunigungsänderung und dergleichen, wie nachstehend in Zusammenhang mit dem Navigationsreaktionsmodul 408 erörtert. Ferner kann das Stereobildanalysemodul 404 gemäß einigen Ausführungsformen Techniken in Zusammenhang mit einem trainierten System (in der Art eines neuronalen Netzes oder eines tiefen neuronalen Netzes) oder einem untrainierten System in der Art eines Systems implementieren, das dafür ausgelegt sein kann, Computersichtalgorithmen für das Erkennen und/oder Labeln von Objekten in einer Umgebung, aus der Sensorinformationen erfasst und verarbeitet wurden, zu verwenden. Gemäß einer Ausführungsform können das Stereobildanalysemodul 404 und/oder andere Bildverarbeitungsmodule dafür ausgelegt sein, eine Kombination eines trainierten und eines untrainierten Systems zu verwenden.
-
Gemäß einer Ausführungsform kann das Geschwindigkeits- und Beschleunigungsmodul 406 Software speichern, die dafür ausgelegt ist, von einer oder mehreren Rechenvorrichtungen und elektromechanischen Vorrichtungen im Fahrzeug 200 empfangene Daten zu analysieren, um eine Geschwindigkeits- und/oder Beschleunigungsänderung des Fahrzeugs 200 zu bewirken. Beispielsweise kann die Verarbeitungseinheit 110 Befehle in Zusammenhang mit dem Geschwindigkeits- und Beschleunigungsmodul 406 ausführen, um eine Zielgeschwindigkeit für das Fahrzeug 200 auf der Grundlage von Daten, die anhand der Ausführung des monokularen Bildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 abgeleitet wurden, zu berechnen. Solche Daten können beispielsweise die Zielposition, -geschwindigkeit und/oder -beschleunigung, die Position und/oder die Geschwindigkeit des Fahrzeugs 200 in Bezug auf ein nahe gelegenes Fahrzeug, einen Fußgänger oder ein Straßenobjekt, Positionsinformationen für das Fahrzeug 200 in Bezug auf Fahrspurmarkierungen der Straße und dergleichen einschließen. Zusätzlich kann die Verarbeitungseinheit 110 eine Zielgeschwindigkeit für das Fahrzeug 200 auf der Grundlage einer Sensoreingabe (beispielsweise Informationen von Radar) und einer Eingabe von anderen Systemen des Fahrzeugs 200 in der Art des Drosselsystems 220, des Bremssystems 230 und/oder des Lenksystems 240 des Fahrzeugs 200 berechnen. Auf der Grundlage der berechneten Zielgeschwindigkeit kann die Verarbeitungseinheit 110 elektronische Signale zum Drosselsystem 220, zum Bremssystem 230 und/oder zum Lenksystem 240 des Fahrzeugs 200 senden, um eine Änderung der Geschwindigkeit und/oder der Beschleunigung beispielsweise durch physisches Herunterdrücken der Bremse oder Loslassen des Gaspedals des Fahrzeugs 200 auszulösen.
-
Gemäß einer Ausführungsform kann das Navigationsreaktionsmodul durch die Verarbeitungseinheit 110 ausführbare Software zur Bestimmung einer gewünschten Navigationsantwort auf der Grundlage von der Ausführung des monokularen Bildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 abgeleiteter Daten speichern. Solche Daten können Positions- und Geschwindigkeitsinformationen in Zusammenhang mit nahe gelegenen Fahrzeugen, Fußgängern und Straßenobjekten, Zielpositionsinformationen für das Fahrzeug 200 und dergleichen umfassen. Zusätzlich kann die Navigationsreaktion gemäß einigen Ausführungsformen (teilweise oder vollständig) auf Kartendaten,
einer vorgegebenen Position des Fahrzeugs 200 und/oder einer Relativgeschwindigkeit oder einer Relativbeschleunigung zwischen dem Fahrzeug 200 und einem oder mehreren Objekten, die durch die Ausführung des monokularen Bildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 erkannt wurden, beruhen. Das Navigationsreaktionsmodul 408 kann auch eine gewünschte Navigationsreaktion auf der Grundlage einer Sensoreingabe (beispielsweise Informationen von Radar) und Eingaben von anderen Systemen des Fahrzeugs 200 in der Art des Drosselsystems 220, des Bremssystems 230 und des Lenksystems 240 des Fahrzeugs 200 bestimmen. Auf der Grundlage der gewünschten Navigationsreaktion kann die Verarbeitungseinheit 110 elektronische Signale zum Drosselsystem 220, zum Bremssystem 230 und zum Lenksystem 240 des Fahrzeugs 200 senden, um eine gewünschte Navigationsreaktion beispielsweise durch Drehen des Lenkrads des Fahrzeugs 200, um eine Drehung um einen vorgegebenen Winkel zu erreichen, auszulösen. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 die Ausgabe des Navigationsreaktionsmoduls 408 (beispielsweise die gewünschte Navigationsreaktion) als Eingabe für
die Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 zur Berechnung einer Geschwindigkeitsänderung des Fahrzeugs 200 verwenden.
-
Ferner können jegliche der hier offenbarten Module (beispielsweise die Module 402, 404 und 406) Techniken in Zusammenhang mit einem trainierten System (in der Art eines neuronalen Netzes oder eines tiefen neuronalen Netzes) oder einem untrainierten System implementieren.
-
5A ist ein Flussdiagramm eines beispielhaften Prozesses 500A zum Bewirken einer oder mehrerer Navigationsreaktionen auf der Grundlage einer monokularen Bildanalyse gemäß offenbarten Ausführungsformen. In Schritt 510 kann die Verarbeitungseinheit 110 mehrere Bilder über die Datenschnittstelle 128 zwischen der Verarbeitungseinheit 110 und der Bilderfassungseinheit 120 empfangen. Beispielsweise kann eine in der Bilderfassungseinheit 120 enthaltene Kamera (in der Art der Bildaufnahmevorrichtung 122 mit einem Gesichtsfeld 202) mehrere Bilder eines Bereichs vor dem Fahrzeug 200 (oder beispielsweise an den Seiten oder hinter dem Fahrzeug) aufnehmen und sie über eine Datenverbindung (beispielsweise digital, festverdrahtet, USB, drahtlos, Bluetooth usw.) zur Verarbeitungseinheit 110 übertragen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um die mehreren Bilder in Schritt 520 zu analysieren, wie nachstehend in weiteren Einzelheiten in Zusammenhang mit den 5B - 5D beschrieben wird. Durch Ausführen der Analyse kann die Verarbeitungseinheit 110 einen Satz von Merkmalen innerhalb des Bildsatzes in der Art von Fahrspurmarkierungen, Fahrzeugen, Fußgängern, Straßenschildern, Schnellstraßenausfahrtrampen, Ampeln und dergleichen erkennen.
-
Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 in Schritt 520 auch ausführen, um verschiedene Straßengefahren zu erkennen, wie beispielsweise Teile eines Lastwagenreifens, heruntergefallene Straßenschilder, lose Fracht, kleine Tiere und dergleichen. Der Aufbau, die Form, die Größe und die Farbe von Straßengefahren können variieren, wodurch die Erkennung solcher Gefahren herausfordernder wird. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 das monokulare Bildanalysemodul 402 ausführen, um eine Mehrframeanalyse an den mehreren Bildern auszuführen, um Straßengefahren zu erkennen. Beispielsweise kann die Verarbeitungseinheit 110 eine Kamerabewegung zwischen aufeinander folgenden Bildframes schätzen und die Disparitäten in Pixeln zwischen den Frames berechnen, um eine 3D-Karte der Straße zu bilden. Die Verarbeitungseinheit 110 kann die 3D-Karte dann verwenden, um die Straßenoberfläche sowie oberhalb der Straßenoberfläche vorhandene Gefahren zu erkennen.
-
In Schritt 530 kann die Verarbeitungseinheit 110 das Navigationsreaktionsmodul 408 ausführen, um eine oder mehrere Navigationsreaktionen im Fahrzeug 200 auf der Grundlage der in Schritt 520 ausgeführten Analyse und der vorstehend in Zusammenhang mit 4 beschriebenen Techniken zu bewirken. Navigationsreaktionen können beispielsweise eine Richtungsänderung, einen Fahrspurwechsel, eine Beschleunigungsänderung und dergleichen einschließen. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 anhand der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitete Daten verwenden, um die eine oder die mehreren Navigationsreaktionen zu bewirken. Zusätzlich können mehrere Navigationsreaktionen gleichzeitig, nacheinander oder als Kombination davon auftreten. Beispielsweise kann die Verarbeitungseinheit 110 das Fahrzeug 200 veranlassen, um eine Fahrspur zu wechseln und dann beispielsweise zu beschleunigen, wobei nacheinander Steuersignale zum Lenksystem 240 und zum Drosselsystem 220 des Fahrzeugs 200 gesendet werden. Alternativ kann die Verarbeitungseinheit 110 das Fahrzeug 200 veranlassen, zu bremsen, während gleichzeitig Fahrspuren gewechselt werden, beispielsweise durch gleichzeitiges Senden von Steuersignalen zum Bremssystem 230 und zum Lenksystem 240 des Fahrzeugs 200.
-
5B ist ein Flussdiagramm eines beispielhaften Prozesses 500B zum Erkennen eines oder mehrerer Fahrzeuge und/oder Fußgänger in einem Bildsatz gemäß offenbarten Ausführungsformen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um den Prozess 500B zu implementieren. In Schritt 540 kann die Verarbeitungseinheit 110 einen Satz von Kandidatenobjekten bestimmen, die mögliche Fahrzeuge und/oder Fußgänger repräsentieren. Beispielsweise kann die Verarbeitungseinheit 110 ein oder mehrere Bilder abtasten, die Bilder mit einem oder mehreren vorgegebenen Mustern vergleichen und innerhalb jedes Bilds mögliche Stellen identifizieren, die interessierende Objekte (beispielsweise Fahrzeuge, Fußgänger oder Teile davon) enthalten können. Die vorgegebenen Muster können so entworfen werden, dass eine hohe Rate „falscher Treffer“ und eine niedrige Rate von „Fehltreffern“ erreicht werden. Beispielsweise kann die Verarbeitungseinheit 110 eine niedrige Ähnlichkeitsschwelle für vorgegebene Muster zur Identifikation von Kandidatenobjekten als mögliche Fahrzeuge und Fußgänger verwenden. Dies kann es der Verarbeitungseinheit 110 ermöglichen, die Wahrscheinlichkeit des Verpassens (beispielsweise Nichtidentifizierens) eines ein Fahrzeug oder einen Fußgänger repräsentierenden Kandidatenobjekts zu verringern.
-
In Schritt 542 kann die Verarbeitungseinheit 110 den Satz von Kandidatenobjekten filtern, um gewisse Kandidaten (beispielsweise irrelevante oder weniger relevante Objekte) auf der Grundlage von Klassifikationskriterien auszuschließen. Solche Kriterien können anhand verschiedener Eigenschaften in Zusammenhang mit in einer Datenbank (beispielsweise einer im Speicher 140 gespeicherten Datenbank) gespeicherten Objekttypen abgeleitet werden. Eigenschaften können Objektform, Abmessungen, Textur, Position (beispielsweise in Bezug auf das Fahrzeug 200) und dergleichen umfassen. Die Verarbeitungseinheit 110 kann einen oder mehrere Kriteriensätze verwenden, um falsche Kandidaten aus dem Satz von Kandidatenobjekten zu entfernen.
-
In Schritt 544 kann die Verarbeitungseinheit 110 mehrere Bildframes analysieren, um festzustellen, ob Objekte im Satz von Kandidatenobjekten Fahrzeuge und/oder Fußgänger repräsentieren. Beispielsweise kann die Verarbeitungseinheit 110 ein erkanntes Kandidatenobjekt über aufeinander folgende Frames verfolgen und Daten in Zusammenhang mit dem erkannten Objekt (beispielsweise Größe, Position in Bezug auf das Fahrzeug 200 usw.) Frame für Frame akkumulieren. Zusätzlich kann die Verarbeitungseinheit 110 Parameter für das erkannte Objekt schätzen und die Positionsdaten des Objekts Frame für Frame mit einer vorhergesagten Position vergleichen.
-
In Schritt 546 kann die Verarbeitungseinheit 110 einen Satz von Messungen für die erkannten Objekte bilden. Diese Messungen können beispielsweise Positions-, Geschwindigkeits- und Beschleunigungswerte (in Bezug auf das Fahrzeug 200), die den erkannten Objekten zugeordnet sind, umfassen. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 die Messungen auf der Grundlage von Schätztechniken unter Verwendung einer Reihe zeitbasierter Beobachtungen in der Art von Kalman-Filtern oder einer linearen quadratischen Schätzung (LQE) und/oder auf der Grundlage verfügbarer Modellierungsdaten für verschiedene Objekttypen (beispielsweise Personenkraftwagen, Lastwagen, Fußgänger, Fahrräder, Straßenschilder usw.) bilden. Die Kalman-Filter können auf einer Skalenmessung eines Objekts beruhen, wobei die Skalenmessung proportional zur Zeit bis zu einer Kollision ist (beispielsweise zum Zeitraum, bis zu dem das Fahrzeug 200 das Objekt erreicht). Demgemäß kann die Verarbeitungseinheit 110 durch Ausführen der Schritte 540 - 546 Fahrzeuge und Fußgänger identifizieren, die innerhalb des Satzes aufgenommener Bilder erscheinen, und Informationen (beispielsweise Position, Geschwindigkeit, Größe) in Zusammenhang mit den Fahrzeugen und Fußgängern ableiten. Auf der Grundlage der Identifikation und der abgeleiteten Informationen kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 bewirken, wie vorstehend in Zusammenhang mit 5A beschrieben.
-
In Schritt 548 kann die Verarbeitungseinheit 110 eine optische Flussanalyse eines oder mehrerer Bilder ausführen, um die Wahrscheinlichkeiten des Erkennens eines „falschen Treffers“ und des Verpassens eines Kandidatenobjekts, das ein Fahrzeug oder einen Fußgänger repräsentiert, zu verringern. Die optische Flussanalyse kann sich beispielsweise auf das Analysieren von Bewegungsmustern in Bezug auf das Fahrzeug 200 in dem einen oder den mehreren Bildern in Zusammenhang mit anderen Fahrzeugen und Fußgängern, welche von einer Straßenoberflächenbewegung verschieden sind, beziehen. Die Verarbeitungseinheit 110 kann die Bewegung von Kandidatenobjekten durch Beobachten der verschiedenen Positionen der Objekte über mehrere Bildframes, die zu verschiedenen Zeiten aufgenommen werden, berechnen. Die Verarbeitungseinheit 110 kann die Positions- und Zeitwerte als Eingaben in mathematische Modelle zur Berechnung der Bewegung der Kandidatenobjekte verwenden. Demgemäß kann die optische Flussanalyse ein weiteres Verfahren zum Erkennen von Fahrzeugen und Fußgängern, die sich in der Nähe des Fahrzeugs 200 befinden, bereitstellen. Die Verarbeitungseinheit 110 kann eine optische Flussanalyse in Kombination mit den Schritten 540 - 546 ausführen, um Redundanz für die Erkennung von Fahrzeugen und Fußgängern bereitzustellen und die Zuverlässigkeit des Systems 100 zu erhöhen.
-
5C ist ein Flussdiagramm eines beispielhaften Prozesses 500C zur Erkennung von Straßenmarkierungen und/oder Fahrspurgeometrieinformationen in einem Bildsatz gemäß offenbarten Ausführungsformen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um den Prozess 500C zu implementieren. In Schritt 550 kann die Verarbeitungseinheit 110 einen Satz von Objekten durch Abtasten eines oder mehrerer Bilder erkennen. Zur Erkennung von Segmenten von Fahrspurmarkierungen, Fahrspurgeometrieinformationen und anderen relevanten Straßenmarkierungen kann die Verarbeitungseinheit 110 den Satz von Objekten filtern, um jene auszuschließen, die als irrelevant bestimmt wurden (beispielsweise kleinere Schlaglöcher, kleine Steine usw.). In Schritt 552 kann die Verarbeitungseinheit 110 die in Schritt 550 erkannten Segmente, die zur gleichen Straßenmarkierung oder Fahrspurmarkierung gehören, zusammen gruppieren. Auf der Grundlage der Gruppierung kann die Verarbeitungseinheit 110 ein Modell zur Repräsentation der erkannten Segmente in der Art eines mathematischen Modells entwickeln.
-
In Schritt 554 kann die Verarbeitungseinheit 110 einen Satz von Messungen in Zusammenhang mit den erkannten Segmenten bilden. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Projektion der erkannten Segmente aus der Bildebene in die reale Ebene erzeugen. Die Projektion kann unter Verwendung eines Polynoms dritten Grades mit physikalischen Eigenschaften in der Art von Position, Steigung, Krümmung und Krümmungsableitung der erkannten Straße entsprechenden Koeffizienten gekennzeichnet werden. Bei der Erzeugung der Projektion kann die Verarbeitungseinheit 110 Änderungen der Straßenoberfläche wie Nick- und Rollraten in Zusammenhang mit dem Fahrzeug 200 berücksichtigen. Zusätzlich kann die Verarbeitungseinheit 110 die Straßenhöhe durch Analysieren von Positions- und Bewegungshinweisen, die auf der Straßenoberfläche vorhanden sind, modellieren. Ferner kann die Verarbeitungseinheit 110 die Nick- und Rollraten in Zusammenhang mit dem Fahrzeug 200 durch Verfolgen eines Satzes von Merkmalspunkten in dem einen oder den mehreren Bildern schätzen.
-
In Schritt 556 kann die Verarbeitungseinheit 110 eine Mehrframeanalyse beispielsweise durch Verfolgen der erkannten Segmente über aufeinander folgende Bildframes und Akkumulieren von Frame-für-Frame-Daten in Zusammenhang mit erkannten Segmenten ausführen. Wenn die Verarbeitungseinheit 110 eine Mehrframeanalyse ausführt, kann der in Schritt 554 gebildete Satz von Messungen zuverlässiger werden und mit einem zunehmend höheren Vertrauensniveau assoziiert werden. Demgemäß kann die Verarbeitungseinheit 110 durch Ausführen der Schritte 550, 552, 554 und 556 Straßenmarkierungen identifizieren, die innerhalb des Satzes aufgenommener Bilder erscheinen, und Fahrspurgeometrieinformationen ableiten. Auf der Grundlage der Identifikation und der abgeleiteten Informationen kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 bewirken, wie vorstehend in Zusammenhang mit 5A beschrieben.
-
In Schritt 558 kann die Verarbeitungseinheit 110 zusätzliche Informationsquellen zur Weiterentwicklung eines Sicherheitsmodells für das Fahrzeug 200 in Zusammenhang mit seiner Umgebung berücksichtigen. Die Verarbeitungseinheit 110 kann das Sicherheitsmodell verwenden, um einen Zusammenhang zu definieren, in dem das System 100 eine autonome Steuerung des Fahrzeugs 200 sicher ausführen kann. Zur Entwicklung des Sicherheitsmodells kann die Verarbeitungseinheit 110 gemäß einigen Ausführungsformen die Position und die Bewegung anderer Fahrzeuge, die erkannten Straßenränder und -barrieren und/oder allgemeine Straßenformbeschreibungen, die aus Kartendaten (in der Art von Daten aus der Kartendatenbank 160) extrahiert wurden, berücksichtigen. Durch Berücksichtigen zusätzlicher Informationsquellen kann die Verarbeitungseinheit 110 Redundanz für das Erkennen von Straßenmarkierungen und der Fahrspurgeometrie bereitstellen und die Zuverlässigkeit des Systems 100 erhöhen.
-
5D ist ein Flussdiagramm eines beispielhaften Prozesses 500D zum Erkennen von Ampeln in einem Bildsatz gemäß offenbarten Ausführungsformen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um den Prozess 500D zu implementieren. In Schritt 560 kann die Verarbeitungseinheit 110 den Bildsatz abtasten und Objekte identifizieren, die an Stellen in den Bildern auftreten, die wahrscheinlich Ampeln enthalten. Beispielsweise kann die Verarbeitungseinheit 110 die identifizierten Objekte filtern, um einen Satz von Koordinatenobjekten, ausschließlich jener Objekte, die wahrscheinlich Ampeln entsprechen, zu bilden. Die Filterung kann auf der Grundlage verschiedener Eigenschaften in Zusammenhang mit Ampeln in der Art von Form, Abmessungen, Textur, Position (beispielsweise in Bezug auf das Fahrzeug 200) und dergleichen erfolgen. Diese Eigenschaften können auf mehreren Beispielen von Ampeln und Verkehrssteuersignalen beruhen und in einer Datenbank gespeichert sein. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Mehrframeanalyse an dem Satz mögliche Ampeln widerspiegelnder Kandidatenobjekte ausführen. Beispielsweise kann die Verarbeitungseinheit 110 die Kandidatenobjekte über aufeinander folgende Bildframes verfolgen, die reale Position der Kandidatenobjekte schätzen und jene Objekte, die sich bewegen (bei denen es unwahrscheinlich ist, dass sie Ampeln sind), heraus filtern. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Farbanalyse an den Kandidatenobjekten ausführen und die relative Position der innerhalb möglicher Ampeln erscheinenden erkannten Farben identifizieren.
-
In Schritt 562 kann die Verarbeitungseinheit 110 die Geometrie einer Abzweigung analysieren. Die Analyse kann auf einer Kombination der Folgenden beruhen: (i) der Anzahl der auf beiden Seiten des Fahrzeugs 200 erkannten Fahrspuren, (ii) auf der Straße erkannter Markierungen (in der Art von Pfeilmarkierungen) und (iii) Deskriptoren der Abzweigung, die aus Kartendaten (in der Art von Daten aus der Kartendatenbank 160) extrahiert wurden. Die Verarbeitungseinheit 110 kann die Analyse unter Verwendung von Informationen ausführen, die anhand der Ausführung des monokularen Analysemoduls 402 abgeleitet wurden. Zusätzlich kann die Verarbeitungseinheit 110 eine Entsprechung zwischen den in Schritt 560 erkannten Ampeln und den in der Nähe des Fahrzeugs 200 erscheinenden Fahrspuren bestimmen.
-
Wenn sich das Fahrzeug 200 der Abzweigung nähert, kann die Verarbeitungseinheit 110 in Schritt 564 das Vertrauensniveau in Zusammenhang mit der analysierten Abzweigungsgeometrie und den erkannten Ampeln aktualisieren. Beispielsweise kann das Vertrauensniveau durch die Anzahl der Ampeln, die geschätzt an der Abzweigung auftreten, verglichen mit der Anzahl der Ampeln, die tatsächlich an der Abzweigung auftreten, beeinflusst werden. Demgemäß kann die Verarbeitungseinheit 110 auf der Grundlage des Vertrauensniveaus die Steuerung an den Fahrer des Fahrzeugs 200 delegieren, um Sicherheitsbedingungen zu verbessern. Durch Ausführen der Schritte 560, 562 und 564 kann die Verarbeitungseinheit 110 Ampeln identifizieren, die innerhalb des Satzes aufgenommener Bilder erscheinen, und Abzweigungsgeometrieinformationen analysieren. Auf der Grundlage der Identifikation und Analyse kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 bewirken, wie vorstehend in Zusammenhang mit 5A beschrieben.
-
5E ist ein Flussdiagramm eines beispielhaften Prozesses 500E zum Bewirken einer oder mehrerer Navigationsreaktionen im Fahrzeug 200 auf der Grundlage eines Fahrzeugwegs gemäß den offenbarten Ausführungsformen. In Schritt 570 kann die Verarbeitungseinheit 110 einen anfänglichen Fahrzeugweg in Zusammenhang mit dem Fahrzeug 200 bilden. Der Fahrzeugweg kann unter Verwendung eines Satzes in Koordinaten (x, z) ausgedrückter Punkte repräsentiert werden, und der Abstand di zwischen zwei Punkten im Punktesatz kann in den Bereich von 1 bis 5 Metern fallen. Gemäß einer Ausführungsform kann die Verarbeitungseinheit 110 den anfänglichen Fahrzeugweg unter Verwendung zweier Polynome in der Art eines linken und eines rechten Straßenpolynoms bilden. Die Verarbeitungseinheit 110 kann den geometrischen Mittelpunkt zwischen den beiden Polynomen berechnen und jeden im sich ergebenden Fahrzeugweg enthaltenen Punkt um einen vorgegebenen Versatz (beispielsweise einen intelligenten Fahrspurversatz), falls überhaupt (ein Versatz von null kann dem Fahren in der Mitte einer Fahrspur entsprechen), verschieben. Der Versatz kann in einer Richtung erfolgen, die senkrecht zu einem Segment zwischen jeweiligen zwei Punkten im Fahrzeugweg ist. Gemäß einer anderen Ausführungsform kann die Verarbeitungseinheit 110 ein Polynom und eine geschätzte Fahrspurbreite verwenden, um jeden Punkt des Fahrzeugwegs um die Hälfte der geschätzten Fahrspurbreite zuzüglich eines vorgegebenen Versatzes (beispielsweise eines intelligenten Fahrspurversatzes) zu verschieben.
-
In Schritt 572 kann die Verarbeitungseinheit 110 den in Schritt 570 gebildeten Fahrzeugweg aktualisieren. Die Verarbeitungseinheit 110 kann den in Schritt 570 gebildeten Fahrzeugweg unter Verwendung einer höheren Auflösung rekonstruieren, so dass der Abstand dk zwischen zwei Punkten im den Fahrzeugweg repräsentierenden Punktesatz kleiner als der vorstehend beschriebene Abstand di ist. Beispielsweise kann der Abstand dk in den Bereich von 0,1 bis 0,3 Metern fallen. Die Verarbeitungseinheit 110 kann den Fahrzeugweg unter Verwendung eines parabolischen Splinealgorithmus rekonstruieren, der einen der Gesamtlänge des Fahrzeugwegs (beispielsweise auf der Grundlage des den Fahrzeugweg repräsentierenden Punktesatzes) entsprechenden kumulativen Abstandsvektor S liefern kann.
-
In Schritt 574 kann die Verarbeitungseinheit 110 einen Look-Ahead-Punkt (in Koordinaten als (xllzl) ausgedrückt) auf der Grundlage des in Schritt 572 gebildeten aktualisierten Fahrzeugwegs bestimmen. Die Verarbeitungseinheit 110 kann den Look-Ahead-Punkt aus dem kumulierten Abstandsvektor S extrahieren, und der Look-Ahead-Punkt kann mit einem Look-Ahead-Abstand und einer Look-Ahead-Zeit assoziiert werden. Der Look-Ahead-Abstand, der eine von 10 bis 20 Metern reichende Untergrenze haben kann, kann als Produkt der Geschwindigkeit des Fahrzeugs 200 und der Look-Ahead-Zeit berechnet werden. Beispielsweise kann, wenn die Geschwindigkeit des Fahrzeugs 200 abnimmt, auch der Look-Ahead-Abstand abnehmen (beispielsweise bis er die Untergrenze erreicht). Die Look-Ahead-Zeit, die von 0,5 bis 1,5 Sekunden reichen kann, kann umgekehrt proportional zur Verstärkung einer oder mehrerer Regelschleifen in Zusammenhang mit dem Hervorrufen einer Navigationsreaktion im Fahrzeug 200 in der Art der Steuerkursfehlerverfolgungs-Regelschleife sein. Beispielsweise kann die Verstärkung der Steuerkursfehlerverfolgungs-Regelschleife von der Bandbreite einer Gierratenschleife, einer Lenkungsaktuatorschleife, der lateralen Dynamik des Wagens und dergleichen abhängen. Demgemäß ist die Look-Ahead-Zeit umso kürzer, je höher die Verstärkung der Steuerkursfehlerverfolgungs-Regelschleife ist.
-
In Schritt 576 kann die Verarbeitungseinheit 110 einen Steuerkursfehler und einen Gierratenbefehl auf der Grundlage des in Schritt 574 bestimmten Look-Ahead-Punkts bestimmen. Die Verarbeitungseinheit 110 kann den Steuerkursfehler durch Berechnen des Arkustangens des Look-Ahead-Punkts, beispielsweise arctan (xllzl), bestimmen. Die Verarbeitungseinheit 110 kann den Gierratenbefehl als Produkt des Steuerkursfehlers und einer Verstärkung einer Steuerung hoher Ebene bestimmen. Die Verstärkung der Steuerung hoher Ebene kann gleich (2 / Look-Ahead-Zeit) sein, falls der Look-Ahead-Abstand nicht an der Untergrenze liegt. Andernfalls kann die Verstärkung der Steuerung hoher Ebene gleich (2 * Geschwindigkeit des Fahrzeugs 200/Look-Ahead-Abstand) sein.
-
5F ist ein Flussdiagramm eines beispielhaften Prozesses 500F zur Feststellung, ob ein vorausfahrendes Fahrzeug Fahrspuren wechselt, gemäß den offenbarten Ausführungsformen. In Schritt 580 kann die Verarbeitungseinheit 110 Navigationsinformationen in Zusammenhang mit einem vorausfahrenden Fahrzeug (beispielsweise einem vor dem Fahrzeug 200 fahrenden Fahrzeug) bestimmen. Beispielsweise kann die Verarbeitungseinheit 110 die Position, Geschwindigkeit (beispielsweise Richtung und Geschwindigkeit) und/oder Beschleunigung des vorausfahrenden Fahrzeugs unter Verwendung der vorstehend in Zusammenhang mit den 5A und 5B beschriebenen Techniken bestimmen. Die Verarbeitungseinheit 110 kann auch ein oder mehrere Straßenpolynome, einen Look-Ahead-Punkt (in Zusammenhang mit dem Fahrzeug 200) und/oder eine Fortbewegungsspur (beispielsweise einen Satz von Punkten, wodurch ein vom vorausfahrenden Fahrzeug genommener Weg beschrieben wird) unter Verwendung der vorstehend in Zusammenhang mit 5E beschriebenen Techniken bestimmen.
-
In Schritt 582 kann die Verarbeitungseinheit 110 die in Schritt 580 bestimmten Navigationsinformationen analysieren. Gemäß einer Ausführungsform kann die Verarbeitungseinheit 110 den Abstand zwischen einer Fortbewegungsspur und einem Straßenpolynom (beispielsweise entlang der Spur) berechnen. Falls die Varianz dieses Abstands entlang der Spur eine vorgegebene Schwelle übersteigt (beispielsweise 0,1 bis 0,2 Meter auf einer geraden Straße, 0,3 bis 0,4 Meter auf einer leicht gekrümmten Straße und 0,5 bis 0,6 Meter auf einer Straße mit scharfen Kurven), kann die Verarbeitungseinheit 110 feststellen, dass es wahrscheinlich ist, dass das vorausfahrende Fahrzeug Fahrspuren wechselt. Falls mehrere vor dem Fahrzeug 200 fahrende Fahrzeuge erkannt werden, kann die Verarbeitungseinheit 110 die Fortbewegungsspuren in Zusammenhang mit jedem Fahrzeug vergleichen. Auf der Grundlage des Vergleichs kann die Verarbeitungseinheit 110 feststellen, dass ein Fahrzeug, dessen Fortbewegungsspur nicht mit den Fortbewegungsspuren der anderen Fahrzeuge übereinstimmt, wahrscheinlich Fahrspuren wechselt. Die Verarbeitungseinheit 110 kann zusätzlich die Krümmung der Fortbewegungsspur (in Zusammenhang mit dem vorausfahrenden Fahrzeug) mit der erwarteten Krümmung des Straßensegments, in dem das vorausfahrende Fahrzeug fährt, vergleichen. Die erwartete Krümmung kann aus Kartendaten (beispielsweise Daten aus der Kartendatenbank 160), Straßenpolynomen, Fortbewegungsspuren anderer Fahrzeuge, Vorwissen über die Straße und dergleichen extrahiert werden. Falls die Differenz zwischen der Krümmung der Fortbewegungsspur und der erwarteten Krümmung des Straßensegments eine vorgegebene Schwelle überschreitet, kann die Verarbeitungseinheit 110 feststellen, dass es wahrscheinlich ist, dass das vorausfahrende Fahrzeug Fahrspuren wechselt.
-
Gemäß einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die momentane Position des vorausfahrenden Fahrzeugs über einen spezifischen Zeitraum (beispielsweise 0,5 bis 1,5 Sekunden) mit dem Look-Ahead-Punkt (in Zusammenhang mit dem Fahrzeug 200) vergleichen. Falls der Abstand zwischen der momentanen Position des vorausfahrenden Fahrzeugs und dem Look-Ahead-Punkt während des spezifischen Zeitraums variiert und die kumulative Summe der Variation eine vorgegebene Schwelle (beispielsweise 0,3 bis 0,4 Meter auf einer geraden Straße, 0,7 bis 0,8 Meter auf einer leicht gekrümmten Straße und 1,3 bis 1,7 Meter auf einer Straße mit scharfen Kurven) übersteigt, kann die Verarbeitungseinheit 110 feststellen, dass es wahrscheinlich ist, dass das vorausfahrende Fahrzeug Fahrspuren wechselt. Gemäß einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die Geometrie der Fortbewegungsspur durch Vergleichen der entlang der Spur gefahrenen lateralen Strecke mit der erwarteten Krümmung der Fortbewegungsspur analysieren. Der erwartete Krümmungsradius kann gemäß der Berechnung (δz 2 + δx 2) / 2 / (δx) bestimmt werden, wobei δx die gefahrene laterale Strecke repräsentiert und δz die gefahrene longitudinale Strecke repräsentiert. Falls die Differenz zwischen der gefahrenen lateralen Strecke und der erwarteten Krümmung eine vorgegebene Schwelle (beispielsweise 500 bis 700 m) übersteigt, kann die Verarbeitungseinheit 110 feststellen, dass es wahrscheinlich ist, dass das vorausfahrende Fahrzeug Fahrspuren wechselt. Gemäß einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die Position des vorausfahrenden Fahrzeugs analysieren. Falls die Position des vorausfahrenden Fahrzeugs ein Straßenpolynom verdeckt (beispielsweise wird das vorausfahrende Fahrzeug dem Straßenpolynom überlagert), kann die Verarbeitungseinheit 110 feststellen, dass es wahrscheinlich ist, dass das vorausfahrende Fahrzeug Fahrspuren wechselt. Falls die Position des vorausfahrenden Fahrzeugs derart ist, dass ein anderes Fahrzeug vor dem vorausfahrenden Fahrzeug erkannt wird und die Fortbewegungswege der beiden Fahrzeuge nicht parallel sind, kann die Verarbeitungseinheit 110 feststellen, dass es wahrscheinlich ist, dass das (nähere) vorausfahrende Fahrzeug Fahrspuren wechselt.
-
In Schritt 584 kann die Verarbeitungseinheit 110 auf der Grundlage der in Schritt 582 ausgeführten Analyse feststellen, ob das vorausfahrende Fahrzeug 200 Fahrspuren wechselt. Beispielsweise kann die Verarbeitungseinheit 110 die Feststellung auf der Grundlage einer gewichteten Mittelung der in Schritt 582 ausgeführten individuellen Analysen vornehmen. Unter einem solchen Schema kann beispielsweise einer Entscheidung durch die Verarbeitungseinheit 110, dass es auf der Grundlage eines bestimmten Analysetyps wahrscheinlich ist, dass das vorausfahrende Fahrzeug Fahrspuren wechselt, ein Wert von „1" zugewiesen werden (und von „0“, um eine Feststellung zu repräsentieren, dass es nicht wahrscheinlich ist, dass das vorausfahrende Fahrzeug Fahrspuren wechselt). Unterschiedlichen in Schritt 582 ausgeführten Analysen können unterschiedliche Gewichte zugewiesen werden, und die offenbarten Ausführungsformen sind auf keine bestimmte Kombination von Analysen und Gewichten beschränkt.
-
6 ist ein Flussdiagramm eines beispielhaften Prozesses 600 zum Bewirken einer oder mehrerer Navigationsreaktionen auf der Grundlage einer Stereobildanalyse gemäß offenbarten Ausführungsformen. In Schritt 610 kann die Verarbeitungseinheit 110 eine erste und eine zweite Anzahl von Bildern über die Datenschnittstelle 128 empfangen. Beispielsweise können in der Bilderfassungseinheit 120 enthaltene Kameras (in der Art der Bildaufnahmevorrichtungen 122 und 124 mit Gesichtsfeldern 202 und 204) eine erste und eine zweite Anzahl von Bildern aus einem Bereich vor dem Fahrzeug 200 aufnehmen und sie über eine digitale Verbindung (beispielsweise USB, drahtlos, Bluetooth usw.) zur Verarbeitungseinheit 110 übertragen. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 die erste und die zweite Anzahl von Bildern durch zwei oder mehr Datenschnittstellen empfangen. Die offenbarten Ausführungsformen sind auf keine bestimmten Datenschnittstellenkonfigurationen oder -protokolle beschränkt.
-
In Schritt 620 kann die Verarbeitungseinheit 110 das Stereobildanalysemodul 404 ausführen, um eine Stereobildanalyse der ersten und zweiten Anzahl von Bildern auszuführen, um eine 3D-Karte der Straße vor dem Fahrzeug zu erzeugen und Merkmale innerhalb der Bilder in der Art von Fahrspurmarkierungen, Fahrzeugen, Fußgängern, Straßenschildern, Schnellstraßenausfahrtrampen, Ampeln, Straßengefahren und dergleichen zu erkennen. Die Stereobildanalyse kann ähnlich wie in den vorstehend in Zusammenhang mit den 5A - 5D beschriebenen Schritten ausgeführt werden. Beispielsweise kann die Verarbeitungseinheit 110 das Stereobildanalysemodul 404 ausführen, um Kandidatenobjekte (beispielsweise Fahrzeuge, Fußgänger, Straßenmarkierungen, Ampeln, Straßengefahren usw.) innerhalb der ersten und zweiten Anzahl von Bildern zu erkennen, eine Teilmenge der Kandidatenobjekte auf der Grundlage verschiedener Kriterien herauszufiltern und eine Mehrframeanalyse auszuführen, Messungen zu bilden und ein Vertrauensniveau für die restlichen Kandidatenobjekte zu bestimmen. Bei der Ausführung der vorstehenden Schritte kann die Verarbeitungseinheit 110 Informationen sowohl von der ersten als auch der zweiten Anzahl von Bildern statt Informationen von nur einem Bildsatz zu berücksichtigen. Beispielsweise kann die Verarbeitungseinheit 110 die Differenzen in Pixelniveaudaten (oder anderen Datenteilmengen aus den beiden Streams aufgenommener Bilder) für ein Kandidatenobjekt, das sowohl in der ersten als auch in der zweiten Anzahl von Bildern auftritt, analysieren. Bei einem anderen Beispiel kann die Verarbeitungseinheit 110 die Position und/oder Geschwindigkeit eines Kandidatenobjekts (beispielsweise in Bezug auf das Fahrzeug 200), indem sie beobachtet, dass das Objekt in einem der mehreren Bilder aber nicht in dem anderen auftritt, oder in Bezug auf andere Differenzen, die in Bezug auf Objekte existieren können, die in den beiden Bildstreams auftreten, schätzen. Beispielsweise können die Position, Geschwindigkeit und/oder Beschleunigung in Bezug auf das Fahrzeug 200 auf der Grundlage von Fahrtstrecken, Positionen, Bewegungseigenschaften usw. von Merkmalen in Zusammenhang mit einem Objekt, das in einem oder beiden der Bildstreams auftritt, bestimmt werden.
-
In Schritt 630 kann die Verarbeitungseinheit 110 das Navigationsreaktionsmodul 408 ausführen, um eine oder mehrere Navigationsreaktionen im Fahrzeug 200 auf der Grundlage der in Schritt 620 ausgeführten Analyse und der vorstehend in Zusammenhang mit 4 beschriebenen Techniken zu bewirken. Navigationsreaktionen können beispielsweise eine Richtungsänderung, einen Fahrspurwechsel, eine Beschleunigungsänderung, eine Geschwindigkeitsänderung, ein Bremsen und dergleichen einschließen. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 anhand der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitete Daten verwenden, um die eine oder die mehreren Navigationsreaktionen zu bewirken. Zusätzlich können mehrere Navigationsreaktionen gleichzeitig, nacheinander oder als Kombination davon auftreten.
-
7 ist ein Flussdiagramm eines beispielhaften Prozesses 700 zum Bewirken einer oder mehrerer Navigationsreaktionen auf der Grundlage einer Analyse von drei Bildsätzen gemäß offenbarten Ausführungsformen. In Schritt 710 kann die Verarbeitungseinheit 110 eine erste, eine zweite und eine dritte Anzahl von Bildern über die Datenschnittstelle 128 empfangen. Beispielsweise können in der Bilderfassungseinheit 120 enthaltene Kameras (in der Art der Bildaufnahmevorrichtungen 122, 124 und 126 mit Gesichtsfeldern 202, 204 und 206) eine erste, eine zweite und eine dritte Anzahl von Bildern aus einem Bereich vor und/oder auf der Seite des Fahrzeugs 200 aufnehmen und sie über eine digitale Verbindung (beispielsweise USB, drahtlos, Bluetooth usw.) zur Verarbeitungseinheit 110 übertragen. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 die erste, die zweite und die dritte Anzahl von Bildern über drei oder mehr Datenschnittstellen empfangen. Beispielsweise kann jede der Bildaufnahmevorrichtungen 122, 124, 126 eine zugeordnete Datenschnittstelle zur Übermittlung von Daten zur Verarbeitungseinheit 110 aufweisen. Die offenbarten Ausführungsformen sind auf keine bestimmten Datenschnittstellenkonfigurationen oder -protokolle beschränkt.
-
In Schritt 720 kann die Verarbeitungseinheit 110 die erste, die zweite und die dritte Anzahl von Bildern analysieren, um Merkmale innerhalb der Bilder in der Art von Fahrspurmarkierungen, Fahrzeugen, Fußgängern, Straßenschildern, Schnellstraßenausfahrtrampen, Ampeln, Straßengefahren und dergleichen zu erkennen. Die Analyse kann ähnlich wie in den vorstehend in Zusammenhang mit den 5A - 5D und 6 beschriebenen Schritten ausgeführt werden. Beispielsweise kann die Verarbeitungseinheit 110 eine monokulare Bildanalyse (beispielsweise durch Ausführung des monokularen Bildanalysemoduls 402 und auf der Grundlage der vorstehend in Zusammenhang mit den 5A - 5D beschriebenen Schritte) an jeder von der ersten, der zweiten und der dritten Anzahl von Bildern ausführen. Alternativ kann die Verarbeitungseinheit 110 eine Stereobildanalyse (beispielsweise durch Ausführung des Stereobildanalysemoduls 404 und auf der Grundlage der vorstehend in Zusammenhang mit 6 beschriebenen Schritte) an der ersten und der zweiten Anzahl von Bildern, der zweiten und der dritten Anzahl von Bildern und/oder der ersten und der dritten Anzahl von Bildern ausführen. Die der Analyse der ersten, der zweiten und/oder der dritten Anzahl von Bildern entsprechenden verarbeiteten Informationen können kombiniert werden. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Kombination monokularer und Stereobildanalysen ausführen. Beispielsweise kann die Verarbeitungseinheit 110 eine monokulare Bildanalyse (beispielsweise durch Ausführung des monokularen Bildanalysemoduls 402) an der ersten Anzahl von Bildern und eine Stereobildanalyse (beispielsweise durch Ausführen des Stereobildanalysemoduls 404) an der zweiten und dritten Anzahl von Bildern ausführen. Die Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126 - einschließlich ihrer jeweiligen Orte und Gesichtsfelder 202, 204 und 206 - kann die an der ersten, der zweiten und der dritten Anzahl von Bildern ausgeführten Analysetypen beeinflussen. Die offenbarten Ausführungsformen sind nicht auf eine bestimmte Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126 oder die an der ersten, der zweiten und der dritten Anzahl von Bildern ausgeführten Analysetypen beschränkt.
-
Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 ein Testen am System 100 auf der Grundlage der in den Schritten 710 und 720 aufgenommenen und analysierten Bilder ausführen. Dieses Testen kann einen Indikator für die Gesamtleistung des Systems 100 für gewisse Konfigurationen von Bildaufnahmevorrichtungen 122, 124 und 126 bereitstellen. Beispielsweise kann die Verarbeitungseinheit 110 das Verhältnis zwischen „falschen Treffern“ (beispielsweise Fällen, in denen das System 100 das Vorhandensein eines Fahrzeugs oder Fußgängers inkorrekt bestimmt hat) und „Fehltreffern“ bestimmen.
-
In Schritt 730 kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 auf der Grundlage von zweien von der ersten, der zweiten und der dritten Anzahl von Bildern abgeleiteter Informationen hervorrufen. Die Auswahl von zweien von der ersten, der zweiten und der dritten Anzahl von Bildern kann von verschiedenen Faktoren abhängen, wie beispielsweise von der Anzahl, von den Typen und Größen von Objekten, die in jedem von der Anzahl von Bildern erkannt wurden. Die Verarbeitungseinheit 110 kann die Auswahl auch auf der Grundlage der Bildqualität und -auflösung, des in den Bildern widergespiegelten effektiven Gesichtsfelds, der Anzahl aufgenommener Frames, des Ausmaßes, bis zu dem ein oder mehrere interessierende Objekte tatsächlich in den Frames auftreten (beispielsweise des Prozentsatzes von Frames, in denen ein Objekt auftritt, der Proportion des Objekts, das in jedem solchen Frame auftritt usw.), und dergleichen vornehmen.
-
Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 von zweien von der ersten, der zweiten und der dritten Anzahl von Bildern abgeleitete Informationen durch Bestimmen des Ausmaßes, bis zu dem von einer Bildquelle abgeleitete Informationen mit von anderen Bildquellen abgeleiteten Informationen übereinstimmen, auswählen. Beispielsweise kann die Verarbeitungseinheit 110 die von jeder der Bildaufnahmevorrichtungen 122, 124 und 126 abgeleiteten verarbeiteten Informationen (ob durch Monokularanalyse, Stereoanalyse oder eine Kombination der beiden) kombinieren und Sichtindikatoren (beispielsweise Fahrspurmarkierungen, ein erkanntes Fahrzeug und seinen Ort und/oder Weg, eine erkannte Ampel usw.) bestimmen, die über die von jeder der Bildaufnahmevorrichtungen 122, 124 und 126 aufgenommenen Bilder konsistent sind. Die Verarbeitungseinheit 110 kann auch Informationen ausschließen, die über die aufgenommenen Bilder inkonsistent sind (beispielsweise ein Fahrzeug, das Fahrspuren wechselt, ein Fahrspurmodell, das ein Fahrzeug angibt, das dem Fahrzeug 200 zu nahe ist usw.). Demgemäß kann die Verarbeitungseinheit 110 von zweien von der ersten, der zweiten und der dritten Anzahl von Bildern auf der Grundlage der Bestimmungen konsistenter und inkonsistenter Informationen abgeleitete Informationen auswählen.
-
Navigationsreaktionen können beispielsweise eine Richtungsänderung, einen Fahrspurwechsel, eine Beschleunigungsänderung und dergleichen einschließen. Die Verarbeitungseinheit 110 kann die eine oder die mehreren Navigationsreaktionen auf der Grundlage der in Schritt 720 ausgeführten Analyse und der vorstehend in Zusammenhang mit 4 beschriebenen Techniken bewirken. Die Verarbeitungseinheit 110 kann auch anhand der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitete Daten verwenden, um die eine oder die mehreren Navigationsreaktionen zu bewirken. Gemäß einigen Ausführungsformen kann die Verarbeitungseinheit 110 die eine oder die mehreren Navigationsreaktionen auf der Grundlage der relativen Position, relativen Geschwindigkeit und/oder relativen Beschleunigung zwischen dem Fahrzeug 200 und einem innerhalb jeglicher von der ersten, der zweiten und der dritten Anzahl von Bildern erkannten Objekt bewirken. Mehrere Navigationsreaktionen können gleichzeitig, nacheinander oder als Kombination davon auftreten.
-
Sparse-Straßenmodell zur autonomen Fahrzeugnavigation
-
Gemäß einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine Sparse-Karte für die autonome Fahrzeugnavigation verwenden. Insbesondere kann die Sparse-Karte für die autonome Fahrzeugnavigation entlang einem Straßensegment vorgesehen sein. Beispielsweise kann die Sparse-Karte ausreichend Informationen zur Navigation eines autonomen Fahrzeugs bereitstellen, ohne eine große Datenmenge zu speichern und/oder zu aktualisieren. Wie nachstehend in weiteren Einzelheiten erörtert wird, kann ein autonomes Fahrzeug die Sparse-Karte verwenden, um entlang einer oder mehreren Straßen auf der Grundlage einer oder mehrerer gespeicherter Fahrstrecken zu navigieren.
-
Sparse-Karte zur autonomen Fahrzeugnavigation
-
Gemäß einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine Sparse-Karte zur autonomen Fahrzeugnavigation erzeugen. Beispielsweise kann die Sparse-Karte ausreichend Informationen für die Navigation bereitstellen, ohne einen übermäßig großen Datenspeicher oder übermäßig hohe Datenübertragungsraten zu erfordern. Wie nachstehend in weiteren Einzelheiten erörtert wird, kann ein Fahrzeug (das ein autonomes Fahrzeug sein kann) die Sparse-Karte verwenden, um entlang einer oder mehreren Straßen zu navigieren. Beispielsweise kann die Sparse-Karte gemäß einigen Ausführungsformen Daten in Bezug auf eine Straße und mögliche Orientierungsmarken entlang der Straße, die zur Fahrzeugnavigation ausreichen können, die jedoch auch kleine Datenfootprints zeigen, aufweisen. Beispielsweise können die nachstehend detailliert beschriebenen Sparse-Datenkarten erheblich weniger Speicherplatz und Datenübertragungsbandbreite benötigen als detaillierte Karteninformationen aufweisende digitale Karten, wie entlang einer Straße gesammelte Bilddaten.
-
Beispielsweise kann die Sparse-Datenkarte, statt detaillierte Repräsentationen eines Straßensegments zu speichern, dreidimensionale Polynomrepräsentationen bevorzugter Fahrzeugwege entlang einer Straße speichern. Diese Wege können sehr wenig Datenspeicherplatz erfordern. Ferner können in den beschriebenen Sparse-Datenkarten Orientierungsmarken identifiziert und in das Sparse-Kartenstraßenmodell aufgenommen werden, um die Navigation zu unterstützen. Diese Orientierungsmarken können sich in einem beliebigen für das Ermöglichen einer Fahrzeugnavigation geeigneten Abstand befinden, in einigen Fällen brauchen diese Orientierungsmarken jedoch nicht mit hohen Dichten und geringen Abständen identifiziert zu werden und in das Modell aufgenommen zu werden. Vielmehr kann eine Navigation in manchen Fällen auf der Grundlage von Orientierungsmarken möglich sein, die um wenigstens 50 Meter, wenigstens 100 Meter, wenigstens 500 Meter, wenigstens 1 Kilometer oder wenigstens 2 Kilometer beabstandet sind. Wie in anderen Abschnitten detaillierter erörtert wird, kann die Sparse-Karte auf der Grundlage durch Fahrzeuge, die mit verschiedenen Sensoren und Vorrichtungen in der Art von Bildaufnahmevorrichtungen, Sensoren des globalen Positionsbestimmungssystems, Bewegungssensoren usw. versehen sind, während sich die Fahrzeuge entlang Straßen bewegen, gesammelter oder gemessener Daten erzeugt werden. In manchen Fällen kann die Sparse-Karte auf der Grundlage während mehrerer Fahrten eines oder mehrerer Fahrzeuge entlang einer bestimmten Straße gesammelter Daten erzeugt werden. Die Erzeugung einer Sparse-Karte unter Verwendung mehrerer Fahrten eines oder mehrerer Fahrzeuge kann als „Crowdsourcing“ einer Sparse-Karte bezeichnet werden.
-
Gemäß offenbarten Ausführungsformen kann ein autonomes Fahrzeugsystem eine Sparse-Karte für die Navigation verwenden. Beispielsweise können die offenbarten Systeme und Verfahren eine Sparse-Karte zur Erzeugung eines Straßennavigationsmodells für ein autonomes Fahrzeug verteilen und ein autonomes Fahrzeug unter Verwendung einer Sparse-Karte und/oder eines erzeugten Straßennavigationsmodells entlang einem Straßensegment navigieren. Sparse-Karten gemäß der vorliegenden Offenbarung können eine oder mehrere dreidimensionale Konturen aufweisen, die vorgegebene Fahrstrecken repräsentieren können, welche autonome Fahrzeuge durchfahren können, während sie sich entlang zugeordneten Straßensegmenten bewegen.
-
Sparse-Karten gemäß der vorliegenden Offenbarung können auch ein oder mehrere Straßenmerkmale repräsentierende Daten aufweisen. Solche Straßenmerkmale können erkannte Orientierungsmarken, Straßensignaturprofile und jegliche andere straßenbezogene Merkmale, die bei der Navigation eines Fahrzeugs nützlich sind, einschließen. Sparse-Karten gemäß der vorliegenden Offenbarung können eine autonome Navigation eines Fahrzeugs auf der Grundlage verhältnismäßig kleiner in der Sparse-Karte enthaltener Datenmengen ermöglichen. Beispielsweise können die offenbarten Ausführungsformen der Sparse-Karte, statt detaillierte Repräsentationen einer Straße in der Art von Straßenrändern, der Straßenkrümmung, Bildern in Zusammenhang mit Straßensegmenten oder Daten, die andere physikalische Merkmale in Zusammenhang mit einem Straßensegment detailliert angeben, aufzunehmen, verhältnismäßig wenig Speicherplatz (und verhältnismäßig wenig Bandbreite, wenn Teile der Sparse-Karte zu einem Fahrzeug übertragen werden) benötigen, jedoch noch angemessen eine autonome Fahrzeugnavigation bereitstellen. Der kleine Datenfootprint der offenbarten Sparse-Karte, wie nachstehend in weiteren Einzelheiten erörtert, kann gemäß einigen Ausführungsformen durch Speichern von Repräsentationen straßenbezogener Elemente, die geringe Datenmengen benötigen, jedoch noch eine autonome Navigation ermöglichen, erreicht werden.
-
Beispielsweise können die offenbarten Sparse-Karten, statt detaillierte Repräsentationen verschiedener Aspekte einer Straße zu speichern, Polynomrepräsentationen einer oder mehrerer Fahrstrecken, denen ein Fahrzeug entlang der Straße folgen kann, speichern. Demgemäß kann ein Fahrzeug, statt Einzelheiten in Bezug auf die physikalische Natur der Straße zu speichern (oder übertragen zu müssen), um eine Navigation entlang der Straße zu ermöglichen, unter Verwendung der offenbarten Sparse-Karten entlang einem bestimmten Straßensegment navigiert werden, ohne in manchen Fällen physikalische Aspekte der Straße interpretieren zu müssen, sondern vielmehr durch Ausrichten seines Fahrtwegs mit einer Fahrstrecke (beispielsweise einem Polynom-Spline) entlang dem bestimmten Straßensegment. Auf diese Weise kann das Fahrzeug hauptsächlich auf der Grundlage der gespeicherten Fahrstrecke (beispielsweise eines Polynom-Splines) navigiert werden, die viel weniger Speicherplatz als ein Ansatz, bei dem Straßenbilder, Straßenparameter, das Straßenlayout usw. gespeichert werden, benötigen kann.
-
Zusätzlich zur gespeicherten Polynomrepräsentation der Fahrstrecke entlang einem Straßensegment können die offenbarten Sparse-Karten auch kleine Datenobjekte aufweisen, die ein Straßenmerkmal repräsentieren können. Gemäß einigen Ausführungsformen können die kleinen Datenobjekte digitale Signaturen aufweisen, die von einem Digitalbild (oder einem Digitalsignal) abgeleitet werden, das von einem Sensor (beispielsweise einer Kamera oder einem anderen Sensor in der Art eines Federungssensors) an Bord eines entlang dem Straßensegment fahrenden Fahrzeugs erhalten wurde. Die digitale Signatur kann eine geringere Größe als das durch den Sensor erfasste Signal haben. Gemäß einigen Ausführungsformen kann die digitale Signatur so erzeugt werden, dass sie mit einer Klassifikatorfunktion kompatibel ist, die dafür ausgelegt ist, das Straßenmerkmal anhand des durch den Sensor erfassten Signals, beispielsweise während einer nachfolgenden Fahrt, zu erkennen und zu identifizieren. Gemäß einigen Ausführungsformen kann eine digitale Signatur so erzeugt werden, dass sie einen möglichst kleinen Footprint aufweist, während die Fähigkeit behalten wird, das Straßenmerkmal mit der gespeicherten Signatur auf der Grundlage eines Bilds (oder eines durch einen Sensor erzeugten Digitalsignals, falls die gespeicherte Signatur nicht auf einem Bild beruht und/oder andere Daten aufweist) des Straßenmerkmals, das von einer Kamera an Bord eines zu einer späteren Zeit entlang demselben Straßensegment fahrenden Fahrzeugs aufgenommen wird, zu korrelieren oder zu vergleichen.
-
Gemäß einigen Ausführungsformen kann die Größe der Datenobjekte ferner der Eindeutigkeit des Straßenmerkmals zugeordnet werden. Beispielsweise kann es für ein Straßenmerkmal, das von einer Kamera an Bord eines Fahrzeugs erkennbar ist, wobei das Kamerasystem an Bord des Fahrzeugs mit einem Klassifikator gekoppelt ist, der in der Lage ist, die diesem Straßenmerkmal entsprechenden Bilddaten als einem bestimmten Straßenmerkmalstyp, beispielsweise einem Straßenschild, zugeordnet zu unterscheiden, und wobei ein solches Straßenschild in diesem Bereich eindeutig ist (es gibt in der Nähe beispielsweise kein identisches Straßenschild oder Straßenschild des gleichen Typs), ausreichen, Daten zu speichern, die den Typ des Straßenmerkmals und seinen Ort angeben.
-
Wie nachstehend in weiteren Einzelheiten erörtert wird, können Straßenmerkmale (beispielsweise Orientierungsmarken entlang einem Straßensegment) als kleine Datenobjekte gespeichert werden, die ein Straßenmerkmal in verhältnismäßig wenigen Bytes repräsentieren können, während gleichzeitig ausreichend Informationen bereitgestellt werden, um ein solches Merkmal für die Navigation zu erkennen und zu verwenden. Bei einem Beispiel kann ein Straßenschild als eine erkannte Orientierungsmarke, derer die Navigation eines Fahrzeugs zugrunde gelegt werden kann, identifiziert werden. Eine Repräsentation des Straßenschilds kann in der Sparse-Karte gespeichert werden, um beispielsweise einige Datenbytes, die den Typ einer Orientierungsmarke (beispielsweise ein Stoppzeichen) angeben, und einige Datenbytes, die den Ort der Orientierungsmarke (beispielsweise Koordinaten) angeben, aufzunehmen. Das Navigieren auf der Grundlage solcher an Daten leichten Repräsentationen der Orientierungsmarken (beispielsweise unter Verwendung von Repräsentationen, die ausreichen, um auf der Grundlage der Orientierungsmarken zu lokalisieren, zu erkennen und zu navigieren) kann ein gewünschtes Niveau einer Navigationsfunktionalität in Zusammenhang mit Sparse-Karten bereitstellen, ohne den Daten-Overhead in Zusammenhang mit den Sparse-Karten erheblich zu erhöhen. Diese schlanke Repräsentation von Orientierungsmarken (und anderen Straßenmerkmalen) kann die an Bord solcher Fahrzeuge vorhandenen Sensoren und Prozessoren ausnutzen, die dafür ausgelegt sind, bestimmte Straßenmerkmale zu erkennen, zu identifizieren und/oder zu klassifizieren.
-
Wenn beispielsweise ein Zeichen oder sogar ein bestimmter Zeichentyp in einem gegebenen Bereich lokal eindeutig ist (beispielsweise wenn es kein anderes Zeichen oder kein anderes Zeichen desselben Typs gibt), kann die Sparse-Karte den Typ einer Orientierungsmarke (ein Zeichen oder einen spezifischen Zeichentyp) angebende Daten verwenden und kann der Prozessor während der Navigation, wenn eine Kamera an Bord eines autonomen Fahrzeugs ein Bild des ein Zeichen (oder einen spezifischen Zeichentyp) aufweisenden Bereichs aufnimmt, das Bild verarbeiten, das Zeichen erkennen (falls es tatsächlich im Bild vorhanden ist), das Bild als Zeichen (oder als spezifischen Zeichentyp) klassifizieren und den Ort des Bilds mit dem Ort des Zeichens, wie in der Sparse-Karte gespeichert, korrelieren.
-
Die Sparse-Karte kann eine geeignete Repräsentation entlang einem Straßensegment identifizierter Objekte aufweisen. In manchen Fällen können die Objekte als semantische Objekte oder nicht semantische Objekte bezeichnet werden. Semantische Objekte können beispielsweise Objekte in Zusammenhang mit einer vorgegebenen Typklassifikation einschließen. Diese Typklassifikation kann bei der Verringerung der Datenmenge, die zur Beschreibung des in einer Umgebung erkannten semantischen Objekts erforderlich ist, nützlich sein, was sowohl in der Datensammlungsphase (beispielsweise zum Verringern von Kosten in Zusammenhang mit der Bandbreitenverwendung zur Übertragung von Fahrtinformationen von mehreren Daten sammelnden Fahrzeugen zu einem Server) als auch während der Navigationsphase (beispielsweise kann eine Verringerung von Kartendaten die Übertragung von Kartenkacheln von einem Server zu einem navigierenden Fahrzeug beschleunigen und auch Kosten in Zusammenhang mit der Bandbreitenverwendung für solche Übertragungen verringern) vorteilhaft sein kann. Klassifikationstypen semantischer Objekte können einem beliebigen Typ von Objekten oder Merkmalen zugewiesen werden, von denen erwartet wird, dass sie entlang einer Straße angetroffen werden.
-
Semantische Objekte können ferner in zwei oder mehr logische Gruppen unterteilt werden. Beispielsweise kann in einigen Fällen eine Gruppe semantischer Objekttypen mit vorgegebenen Abmessungen assoziiert werden. Solche semantische Objekte können gewisse Geschwindigkeitsbegrenzungszeichen, Vorfahrt-achten-Zeichen, Fahrspurzusammenführungszeichen, Stoppzeichen, Ampeln, Richtungspfeile auf einer Straße, Schachtabdeckungen oder einen anderen Objekttyp, der mit einer standardisierten Größe assoziiert sein kann, einschließen. Ein Vorteil, der von solchen semantischen Objekten geboten wird, besteht darin, dass sehr wenige Daten benötigt werden können, um die Objekte zu repräsentieren/vollständig zu definieren. Falls beispielsweise eine standardisierte Größe eines Geschwindigkeitsbegrenzungszeichens bekannt ist, braucht ein Daten sammelndes Fahrzeug lediglich (durch Analyse eines aufgenommenen Bilds) das Vorhandensein eines Geschwindigkeitsbegrenzungszeichens (eines erkannten Typs) zusammen mit einer Angabe der Position des erkannten Geschwindigkeitsbegrenzungszeichens (beispielsweise eine 2D-Position im aufgenommenen Bild (oder alternativ eine 3D-Position in realen Koordinaten) des Zentrums des Zeichens oder einer bestimmten Ecke des Zeichens) zu identifizieren, um ausreichend Informationen zur Kartenerzeugung auf der Serverseite bereitzustellen. Wenn 2D-Bildpositionen zum Server übertragen werden, kann auch die Position in Zusammenhang mit dem aufgenommenen Bild, an der das Zeichen erkannt wurde, übertragen werden, so dass der Server die reale Position des Zeichens bestimmen kann (beispielsweise durch Struktur-in-Bewegung-Techniken unter Verwendung mehrerer von einem oder mehreren Daten sammelnden Fahrzeugen aufgenommener Bilder). Selbst mit solchen begrenzten Informationen (die lediglich einige Bytes zur Definition jedes erkannten Objekts erfordern) kann der Server die ein vollständig repräsentiertes Geschwindigkeitsbegrenzungszeichen aufweisende Karte auf der Grundlage des von einem oder mehreren Daten sammelnden Fahrzeugen zusammen mit der Positionsinformation für das erkannte Zeichen empfangenen Typklassifikation (die ein Geschwindigkeitsbegrenzungszeichen repräsentiert) bilden.
-
Semantische Objekte können auch andere erkannte Objekt- oder Merkmalstypen einschließen, die nicht mit bestimmten standardisierten Eigenschaften assoziiert sind. Solche Objekte oder Merkmale können Schlaglöcher, Teernähte, Lichtmasten, nicht standardisierte Zeichen, Bordsteine, Bäume, Baumzweige oder einen anderen erkannten Objekttyp mit einer oder mehreren variablen Eigenschaften (beispielsweise variablen Abmessungen) einschließen. In solchen Fällen kann ein Daten sammelndes Fahrzeug zusätzlich zum Übertragen einer Angabe zum erkannten Objekt oder Merkmalstyp (beispielsweise Schlagloch, Mast usw.) und von Positionsinformationen für das erkannte Objekt oder Merkmal zu einem Server auch eine Angabe der Größe des Objekts oder Merkmals übertragen. Die Größe kann in 2D-Bildabmessungen (beispielsweise mit einem Begrenzungskästchen oder einem oder mehreren Abmessungswerten) oder realen Abmessungen (durch Struktur-in-Bewegung-Berechnungen auf der Grundlage von LIDAR- oder RADAR-Systemausgaben, auf der Grundlage von Ausgaben trainierter neuronaler Netze usw. bestimmt) ausgedrückt werden.
-
Nicht semantische Objekte oder Merkmale können jegliche erkennbare Objekte oder Merkmale einschließen, die außerhalb einer erkannten Kategorie oder eines erkannten Typs liegen, jedoch noch bei der Kartenerzeugung wertvolle Informationen bereitstellen können. In einigen Fällen können solche nicht semantische Merkmale eine erkannte Ecke eines Gebäudes oder eine Ecke eines erkannten Fensters eines Gebäudes, einen eindeutigen Stein oder ein eindeutiges Objekt in der Nähe einer Straße, einen Betonspritzer in einem Straßenseitenstreifen oder ein anderes erkennbares Objekt oder Merkmal einschließen. Nach der Erkennung eines solchen Objekts oder Merkmals können ein oder mehrere Daten sammelnde Fahrzeuge den Ort eines oder mehrerer Punkte (2D-Bildpunkte oder reale 3D-Punkte) in Zusammenhang mit dem erkannten Objekt/Merkmal zu einem Kartenerzeugungsserver übertragen. Zusätzlich kann ein komprimiertes oder vereinfachtes Bildsegment (beispielsweise ein Bild-Hash) für ein Gebiet des aufgenommenen Bilds, worin das erkannte Objekt oder Merkmal enthalten ist, erzeugt werden. Dieser Bild-Hash kann auf der Grundlage eines vorgegebenen Bildverarbeitungsalgorithmus berechnet werden und eine effektive Signatur für das erkannte nicht semantische Objekt oder Merkmal bilden. Eine solche Signatur kann für die Navigation in Bezug auf eine Sparse-Karte, die das nicht semantische Merkmal oder Objekt aufweist, nützlich sein, weil ein entlang der Straße fahrendes Fahrzeug einen Algorithmus, der dem für die Erzeugung des Bild-Hashes verwendeten Algorithmus ähnelt, anwenden kann, um das Vorhandensein des in der Karte abgebildeten nicht semantischen Merkmals oder Objekts in einem aufgenommenen Bild zu bestätigen/zu verifizieren. Durch die Verwendung dieser Technik können nicht semantische Merkmale die Reichheit der Sparse-Karten erhöhen (beispielsweise zur Erhöhung ihrer Nützlichkeit bei der Navigation), ohne erheblichen Daten-Overhead hinzuzufügen.
-
Wie erwähnt, können Zielfahrstrecken in der Sparse-Karte gespeichert werden. Diese Zielfahrstrecken (beispielsweise 3D-Splines) können die bevorzugten oder empfohlenen Wege für jede verfügbare Fahrspur einer Straße, jeden gültigen Weg durch eine Abzweigung, für Zusammenführungen und Ausfahrten usw. repräsentieren. Zusätzlich zu Zielfahrstrecken können auch andere Straßenmerkmale erkannt, gesammelt und in Form repräsentativer Splines in die Sparse-Karten aufgenommen werden. Solche Merkmale können beispielsweise Straßenränder, Fahrspurmarkierungen, Bordsteine, Leitplanken oder andere Objekte oder Merkmale, die entlang einer Straße oder einem Straßensegment verlaufen, einschließen.
-
Erzeugen einer Sparse-Karte
-
Gemäß einigen Ausführungsformen kann eine Sparse-Karte wenigstens eine Linienrepräsentation eines Straßenoberflächenmerkmals, das sich entlang einem Straßensegment erstreckt, und mehrere Orientierungsmarken in Zusammenhang mit dem Straßensegment aufweisen. Bei bestimmten Aspekten kann die Sparse-Karte durch „Crowdsourcing“, beispielsweise durch Bildanalyse mehrerer Bilder, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment durchfahren, erzeugt werden.
-
8 zeigt eine Sparse-Karte 800, auf die ein oder mehrere Fahrzeuge, beispielsweise das Fahrzeug 200 (das ein autonomes Fahrzeug sein kann), zur Bereitstellung einer autonomen Fahrzeugnavigation zugreifen können. Die Sparse-Karte 800 kann in einem Speicher in der Art des Speichers 140 oder 150 gespeichert werden. Solche Speichervorrichtungen können beliebige Typen nichtflüchtiger Speichervorrichtungen oder computerlesbarer Medien einschließen. Beispielsweise kann der Speicher 140 oder 150 gemäß einigen Ausführungsformen Festplattenlaufwerke, Disketten, einen Flash-Speicher, Speichervorrichtungen auf magnetischer Basis, Speichervorrichtungen auf optischer Basis usw. einschließen. Gemäß einigen Ausführungsformen kann die Sparse-Karte 800 in einer Datenbank (beispielsweise Kartendatenbank 160), die im Speicher 140 oder 150 gespeichert werden kann, oder anderen Typen von Speichervorrichtungen gespeichert werden.
-
Gemäß einigen Ausführungsformen kann die Sparse-Karte 800 in einer Speichervorrichtung oder einem nichtflüchtigen computerlesbaren Medium, die oder das an Bord des Fahrzeugs 200 bereitgestellt ist (beispielsweise einer Speichervorrichtung, die in einem Navigationssystem an Bord des Fahrzeugs 200 enthalten ist), gespeichert werden. Ein Prozessor (beispielsweise eine Verarbeitungseinheit 110), die am Fahrzeug 200 bereitgestellt ist, kann auf die Sparse-Karte 800, die in der Speichervorrichtung oder im computerlesbaren Medium gespeichert ist, die oder das an Bord des Fahrzeugs 200 bereitgestellt ist, zugreifen, um Navigationsbefehle zum Anleiten des autonomen Fahrzeugs 200, während es ein Straßensegment entlangfährt, zu erzeugen.
-
Die Sparse-Karte 800 braucht jedoch nicht lokal in Bezug auf ein Fahrzeug gespeichert zu sein. Gemäß einigen Ausführungsformen kann die Sparse-Karte 800 in einer Speichervorrichtung oder einem computerlesbaren Medium gespeichert sein, die oder das an einem fernen Server bereitgestellt ist, der mit dem Fahrzeug 200 oder einer dem Fahrzeug 200 zugeordneten Vorrichtung kommuniziert. Ein am Fahrzeug 200 bereitgestellter Prozessor (beispielsweise die Verarbeitungseinheit 110) kann in der Sparse-Karte 800 enthaltene Daten vom fernen Server empfangen und die Daten ausführen, um das autonome Fahren des Fahrzeugs 200 anzuleiten. Gemäß solchen Ausführungsformen kann der ferne Server die gesamte Sparse-Karte 800 oder nur einen Teil davon speichern. Zusätzlich kann die Speichervorrichtung oder das computerlesbare Medium, das an Bord des Fahrzeugs 200 und/oder an Bord eines oder mehrerer zusätzlicher Fahrzeuge bereitgestellt ist, den oder die restlichen Teile der Sparse-Karte 800 speichern.
-
Ferner kann die Sparse-Karte 800 gemäß solchen Ausführungsformen mehreren Fahrzeugen, die verschiedene Straßensegmente entlangfahren (beispielsweise einigen zehn, hundert, tausend oder Millionen usw. von Fahrzeugen), zugänglich gemacht werden. Es sei auch bemerkt, dass die Sparse-Karte 800 mehrere Teilkarten aufweisen kann. Beispielsweise kann die Sparse-Karte 800 gemäß einigen Ausführungsformen hunderte, tausende, Millionen oder mehr Teilkarten (beispielsweise Kartenkacheln) aufweisen, die bei der Navigation eines Fahrzeugs verwendet werden können. Solche Teilkarten können als lokale Karten oder Kartenkacheln bezeichnet werden, und ein Fahrzeug, das entlang einer Straße fährt, kann auf eine Anzahl lokaler Karten, die für einen Ort, in dem das Fahrzeug fährt, relevant sind, zugreifen. Die lokalen Kartenabschnitte der Sparse-Karte 800 können mit einem Schlüssel des globalen Navigationssatellitensystems (GNSS) als Index für die Datenbank der Sparse-Karte 800 gespeichert werden. Dementsprechend können solche GNSS-Informationen für das Abrufen relevanter lokaler Karten verwendet werden, wenngleich die Berechnung von Lenkwinkeln für das Navigieren eines Host-Fahrzeugs beim vorliegenden System ausgeführt werden kann, ohne sich auf eine GNSS-Position des Host-Fahrzeugs, Straßenmerkmale oder Orientierungsmarken zu verlassen.
-
Im Allgemeinen kann die Sparse-Karte 800 auf der Grundlage von Daten (beispielsweise Fahrtinformationen), die von einem oder mehreren Fahrzeugen beim Fahren entlang Straßen gesammelt wurden, erzeugt werden. Beispielsweise können die Fahrstrecken, über die das eine oder die mehreren Fahrzeuge entlang einer Straße fahren, unter Verwendung von Sensoren an Bord des einen oder der mehreren Fahrzeuge (beispielsweise Kameras, Geschwindigkeitsmesser, GPS, Beschleunigungsmesser usw.) aufgezeichnet werden und kann die Polynomrepräsentation einer bevorzugten Fahrstrecke für Fahrzeuge, die später entlang der Straße fahren, auf der Grundlage der gesammelten Fahrstrecken, entlang derer das eine oder die mehreren Fahrzeuge gefahren sind, bestimmt werden. Ähnlich können von dem einen oder den mehreren Fahrzeugen gesammelte Daten bei der Identifikation möglicher Orientierungsmarken entlang einer bestimmten Straße helfen. Von entlangfahrenden Fahrzeugen gesammelte Daten können auch zur Identifikation von Straßenprofilinformationen in der Art von Straßenbreitenprofilen, Straßenrauigkeitsprofilen, Verkehrslinien-Abstandsprofilen, Straßenbedingungen usw. verwendet werden. Unter Verwendung der gesammelten Informationen kann die Sparse-Karte 800 zur Verwendung bei der Navigation eines oder mehrerer autonomer Fahrzeuge erzeugt und verteilt werden (beispielsweise zur lokalen Speicherung oder durch On-the-fly-Datenübertragung). Gemäß einigen Ausführungsformen kann die Kartenerzeugung jedoch nicht nach der anfänglichen Erzeugung der Karte enden. Wie nachstehend in weiteren Einzelheiten erörtert wird, kann die Sparse-Karte 800 auf der Grundlage von Fahrzeugen, während diese weiter in der Sparse-Karte 800 enthaltene Straßen entlangfahren, gesammelter Daten kontinuierlich oder periodisch aktualisiert werden.
-
In der Sparse-Karte 800 aufgezeichnete Daten können Positionsinformationen auf der Grundlage von Daten des globalen Positionsbestimmungssystems (GPS) einschließen. Beispielsweise können Ortsinformationen für verschiedene Kartenelemente, einschließlich beispielsweise Orientierungsmarkenorte, Straßenprofilorte usw., in die Sparse-Karte 800 aufgenommen sein. Orte für in die Sparse-Karte 800 aufgenommene Kartenelemente können unter Verwendung von eine Straße entlangfahrenden Fahrzeugen gesammelten GPS-Daten erhalten werden. Beispielsweise kann ein Fahrzeug, das eine identifizierte Orientierungsmarke passiert, den Ort der identifizierten Orientierungsmarke unter Verwendung von GPS-Positionsinformationen in Zusammenhang mit dem Fahrzeug und einer Bestimmung des Orts der identifizierten Orientierungsmarke in Bezug auf das Fahrzeug (beispielsweise auf der Grundlage einer Bildanalyse von Daten, die von einer oder mehreren Kameras an Bord des Fahrzeugs gesammelt wurden) bestimmen. Solche Ortsbestimmungen einer identifizierten Orientierungsmarke (oder eines anderen in der Sparse-Karte 800 enthaltenen Merkmals) können wiederholt werden, wenn zusätzliche Fahrzeuge den Ort der identifizierten Orientierungsmarke passieren. Einige oder alle der zusätzlichen Ortsbestimmungen können verwendet werden, um die in der Sparse-Karte 800 gespeicherten Ortsinformationen in Bezug auf die identifizierte Orientierungsmarke zu verfeinern. Beispielsweise können gemäß einigen Ausführungsformen mehrere Positionsmessungen in Bezug auf ein bestimmtes in der Sparse-Karte 800 gespeichertes Merkmal gemittelt werden. Es können jedoch auch andere mathematische Operationen verwendet werden, um einen gespeicherten Ort eines Kartenelements auf der Grundlage mehrerer bestimmter Orte für das Kartenelement zu verfeinern.
-
Bei einem bestimmten Beispiel können Daten sammelnde Fahrzeuge ein bestimmtes Straßensegment durchfahren. Jedes Daten sammelnde Fahrzeug nimmt Bilder seiner jeweiligen Umgebungen auf. Die Bilder können mit einer geeigneten Frameaufnahmerate (beispielsweise 9 Hz usw.) gesammelt werden. Ein oder mehrere Bildanalyseprozessoren an Bord jedes Daten sammelnden Fahrzeugs analysieren die aufgenommenen Bilder, um das Vorhandensein semantischer und/oder nicht semantischer Merkmale/Objekte zu erkennen. Auf einem hohen Niveau sendet das Daten sammelnde Fahrzeug zu einem Kartenserver Angaben zu Erkennungen der semantischen und/oder nicht semantischen Objekte/Merkmale zusammen mit Positionen in Zusammenhang mit diesen Objekten/Merkmalen. Genauer gesagt können Typindikatoren, Abmessungsindikatoren usw. zusammen mit den Positionsinformationen übertragen werden. Die Positionsinformationen können jegliche geeignete Informationen, um es dem Kartenserver zu ermöglichen, die erkannten Objekte/Merkmale zu einer bei der Navigation nützlichen Sparse-Karte zu aggregieren, umfassen. In manchen Fällen können die Positionsinformationen eine oder mehrere 2D-Bildpositionen (beispielsweise X-Y-Pixelorte) in einem aufgenommenen Bild, wo die semantischen oder nicht semantischen Merkmale/Objekte erkannt wurden, einschließen. Diese Bildpositionen können dem Zentrum des Merkmals/Objekts, einer Ecke usw. entsprechen. In diesem Szenario kann jedes Daten sammelnde Fahrzeug zur Unterstützung des Kartenservers bei der Rekonstruktion der Fahrtinformationen und beim Ausrichten der Fahrtinformationen von mehreren Daten sammelnden Fahrzeugen dem Server auch einen Ort (beispielsweise einen GPS-Ort), an dem jedes Bild aufgenommen wurde, bereitstellen.
-
In anderen Fällen kann das Daten sammelnde Fahrzeug dem Server einen oder mehrere reale 3D-Punkte in Zusammenhang mit den erkannten Objekten/Merkmalen bereitstellen. Solche 3D-Punkte können sich auf einen vorgegebenen Ursprung (beispielsweise einen Ursprung eines Fahrtsegments) beziehen und durch eine geeignete Technik bestimmt werden. In manchen Fällen kann eine Struktur-in-Bewegung-Technik verwendet werden, um die reale 3D-Position eines erkannten Objekts/Merkmals zu bestimmen. Beispielsweise kann ein gewisses Objekt in der Art eines bestimmten Geschwindigkeitsbegrenzungszeichens in zwei oder mehr aufgenommenen Bildern erkannt werden. Unter Verwendung von Informationen in der Art der bekannten Eigenbewegung (Geschwindigkeit, Fahrstrecke, GPS-Position usw.) des Daten sammelnden Fahrzeugs zwischen den aufgenommenen Bildern zusammen mit beobachteten Änderungen des Geschwindigkeitsbegrenzungszeichens in den aufgenommenen Bildern (Änderung des X-Y-Pixelorts, Änderung der Größe usw.) kann die reale Position eines oder mehrerer Punkte in Zusammenhang mit dem Geschwindigkeitsbegrenzungszeichen bestimmt und an den Kartenserver weitergeleitet werden. Ein solcher Ansatz ist optional, weil er mehr Berechnung von Seiten der Daten sammelnden Fahrzeugsysteme erfordert. Die Sparse-Karte gemäß den offenbarten Ausführungsformen kann eine autonome Navigation eines Fahrzeugs unter Verwendung verhältnismäßig kleiner gespeicherter Datenmengen ermöglichen. Gemäß einigen Ausführungsformen kann die Sparse-Karte 800 eine Datendichte (beispielsweise einschließlich Daten, welche die Zielfahrstrecken, Orientierungsmarken und jegliche andere gespeicherte Straßenmerkmale repräsentieren) von weniger als 2 MB pro Straßenkilometer, weniger als 1 MB pro Straßenkilometer, weniger als 500 kB pro Straßenkilometer oder weniger als 100 kB pro Straßenkilometer aufweisen. Gemäß einigen Ausführungsformen kann die Datendichte der Sparse-Karte 800 kleiner als 10 kB pro Straßenkilometer oder sogar kleiner als 2 kB pro Straßenkilometer (beispielsweise 1,6 kB pro Kilometer) oder nicht mehr als 10 kB pro Straßenkilometer oder nicht mehr als 20 kB pro Straßenkilometer sein. Gemäß einigen Ausführungsformen können die meisten, falls nicht alle, Straßen der USA unter Verwendung einer Sparse-Karte mit insgesamt 4 GB oder weniger an Daten autonom navigiert werden. Diese Datendichtewerte können einen Durchschnitt über eine gesamte Sparse-Karte 800, über eine lokale Karte innerhalb der Sparse-Karte 800 und/oder über ein bestimmtes Straßensegment innerhalb der Sparse-Karte 800 repräsentieren.
-
Wie erwähnt, kann die Sparse-Karte 800 Repräsentationen mehrerer Zielfahrstrecken 810 zum Anleiten des autonomen Fahrens oder der Navigation entlang einem Straßensegment aufweisen. Solche Zielfahrstrecken können als dreidimensionale Splines gespeichert werden. Die in der Sparse-Karte 800 gespeicherten Zielfahrstrecken können beispielsweise auf der Grundlage von zwei oder mehr rekonstruierten Fahrstrecken früherer Fahrten von Fahrzeugen entlang einem bestimmten Straßensegment bestimmt werden. Ein Straßensegment kann mit einer einzigen Zielfahrstrecke oder mehreren Zielfahrstrecken assoziiert sein. Beispielsweise kann auf einer zweispurigen Straße eine erste Zielfahrstrecke gespeichert werden, um einen vorgesehenen Fahrtweg entlang der Straße in einer ersten Richtung zu repräsentieren, und kann eine zweite Zielfahrstrecke gespeichert werden, um einen vorgesehenen Fahrtweg entlang der Straße in einer anderen Richtung (beispielsweise entgegengesetzt zur ersten Richtung) zu repräsentieren. Zusätzliche Zielfahrstrecken können in Bezug auf ein bestimmtes Straßensegment gespeichert werden. Beispielsweise können auf einer mehrspurigen Straße eine oder mehrere Zielfahrstrecken gespeichert werden, die vorgesehene Fahrtwege für Fahrzeuge in einer oder mehreren Fahrspuren in Zusammenhang mit der mehrspurigen Straße repräsentieren. Gemäß einigen Ausführungsformen kann jede Fahrspur einer mehrspurigen Straße mit ihrer eigenen Zielfahrstrecke assoziiert sein. Gemäß anderen Ausführungsformen kann es weniger gespeicherte Zielfahrstrecken als auf einer mehrspurigen Straße vorhandene Fahrspuren geben. In solchen Fällen kann ein die mehrspurige Straße navigierendes Fahrzeug unter Berücksichtigung des Betrags des Fahrspurversatzes gegenüber einer Fahrspur, für die eine Zielfahrstrecke gespeichert ist, jegliche der gespeicherten Zielfahrstrecken verwenden, um seine Navigation anzuleiten (beispielsweise kann, falls ein Fahrzeug in der am weitesten links gelegenen Fahrspur einer dreispurigen Schnellstraße fährt und eine Zielfahrstrecke nur für die mittlere Fahrspur der Schnellstraße gespeichert ist, das Fahrzeug unter Verwendung der Zielfahrstrecke der mittleren Fahrspur navigieren, indem es den Betrag des Fahrspurversatzes zwischen der mittleren Fahrspur und der am weitesten links gelegenen Fahrspur berücksichtigt, wenn Navigationsbefehle erzeugt werden).
-
Gemäß einigen Ausführungsformen kann die Zielfahrstrecke einen idealen Weg, den ein Fahrzeug nehmen sollte, wenn es fährt, repräsentieren. Die Zielfahrstrecke kann sich beispielsweise in etwa in der Mitte einer gefahrenen Fahrspur befinden. In anderen Fällen kann sich die Zielfahrstrecke anderswo in Bezug auf ein Straßensegment befinden. Beispielsweise kann eine Zielfahrstrecke in etwa mit der Mitte einer Straße, einem Rand einer Straße oder einem Rand einer Fahrspur usw. übereinstimmen. In solchen Fällen kann die Navigation auf der Grundlage der Zielfahrstrecke einschließen, dass ein bestimmter Versatzbetrag in Bezug auf den Ort der Zielfahrstrecke aufrechterhalten wird. Überdies kann gemäß einigen Ausführungsformen der bestimmte in Bezug auf den Ort der Zielfahrstrecke aufrechtzuerhaltende Versatzbetrag vom Fahrzeugtyp abhängen (beispielsweise kann ein zwei Achsen aufweisendes Personenfahrzeug zumindest entlang einem Teil der Zielfahrstrecke einen anderen Versatz aufweisen als ein Lastwagen, der mehr als zwei Achsen aufweist).
-
Die Sparse-Karte 800 kann auch Daten in Bezug auf mehrere vorgegebene Orientierungsmarken 820 in Zusammenhang mit bestimmten Straßensegmenten, lokalen Karten usw. aufweisen. Wie nachstehend in weiteren Einzelheiten erörtert wird, können diese Orientierungsmarken bei der Navigation des autonomen Fahrzeugs verwendet werden. Beispielsweise können die Orientierungsmarken gemäß einigen Ausführungsformen verwendet werden, um die aktuelle Position des Fahrzeugs in Bezug auf eine gespeicherte Zielfahrstrecke zu bestimmen. Mit diesen Positionsinformationen kann das autonome Fahrzeug in der Lage sein, die Fahrtrichtung anzupassen, so dass sie mit der Richtung der Zielfahrstrecke am bestimmten Ort übereinstimmt.
-
Die mehreren Orientierungsmarken 820 können identifiziert und in beliebigen geeigneten Abständen in der Sparse-Karte 800 gespeichert werden. Gemäß einigen Ausführungsformen können Orientierungsmarken mit verhältnismäßig hohen Dichten (beispielsweise alle paar Meter oder mehr) gespeichert werden. Gemäß einigen Ausführungsformen können jedoch erheblich größere Orientierungsmarken-Abstandswerte verwendet werden. Beispielsweise können in der Sparse-Karte 800 identifizierte (oder erkannte) Orientierungsmarken 10 Meter, 20 Meter, 50 Meter, 100 Meter, 1 Kilometer oder 2 Kilometer beabstandet sein. In manchen Fällen können sich die identifizierten Orientierungsmarken in Abständen von sogar mehr als 2 Kilometern befinden.
-
Zwischen Orientierungsmarken und daher zwischen Bestimmungen der Fahrzeugposition in Bezug auf eine Zielfahrstrecke kann das Fahrzeug auf der Grundlage einer Koppelnavigation navigieren, wobei das Fahrzeug Sensoren verwendet, um seine Eigenbewegung zu bestimmen und seine Position in Bezug auf die Zielfahrstrecke zu schätzen. Weil sich Fehler während der Navigation durch Koppelnavigation akkumulieren können, können die Positionsbestimmungen in Bezug auf die Zielfahrstrecke im Laufe der Zeit zunehmend ungenauer werden. Das Fahrzeug kann in der Sparse-Karte 800 auftretende Orientierungsmarken (und ihre bekannten Orte) verwenden, um die durch Koppelnavigation induzierten Fehler in der Positionsbestimmung zu beseitigen. Auf diese Weise können die in die Sparse-Karte 800 aufgenommenen identifizierten Orientierungsmarken als Navigationsanker dienen, anhand derer die genaue Position des Fahrzeugs in Bezug auf eine Zielfahrstrecke bestimmt werden kann. Weil ein gewisser Fehlerbetrag bei der Positionslokalisierung akzeptabel sein kann, braucht einem autonomen Fahrzeug nicht immer eine identifizierte Orientierungsmarke zur Verfügung zu stehen. Vielmehr kann eine geeignete Navigation selbst auf der Grundlage von Orientierungsmarkenabständen von 10 Metern, 20 Metern, 50 Metern, 100 Metern, 500 Metern, 1 Kilometer, 2 Kilometer oder mehr möglich sein, wie vorstehend erwähnt. Gemäß einigen Ausführungsformen kann eine Dichte einer identifizierten Orientierungsmarke pro Straßenkilometer ausreichen, um eine longitudinale Positionsbestimmungsgenauigkeit innerhalb von 1 m aufrechtzuerhalten. Demgemäß braucht nicht jede mögliche entlang einem Straßensegment erscheinende Orientierungsmarke in der Sparse-Karte 800 gespeichert zu werden.
-
Überdies können gemäß einigen Ausführungsformen Fahrspurmarkierungen zur Lokalisation des Fahrzeugs während Orientierungsmarkenabständen verwendet werden. Durch die Verwendung von Fahrspurmarkierungen während Orientierungsmarkenabständen kann die Akkumulation von Fehlern während der Navigation durch Koppelnavigation minimiert werden.
-
Zusätzlich zu Zielfahrstrecken und identifizierten Orientierungsmarken kann die Sparse-Karte 800 Informationen in Bezug auf verschiedene andere Straßenmerkmale aufweisen. Beispielsweise zeigt 9A eine Repräsentation von Kurven entlang einem bestimmten Straßensegment, die in der Sparse-Karte 800 gespeichert werden können. Gemäß einigen Ausführungsformen kann eine einzige Fahrspur einer Straße durch eine dreidimensionale Polynombeschreibung der linken und der rechten Seite der Straße modelliert werden. Solche die linke und die rechte Seite einer einzigen Fahrspur repräsentierende Polynome sind in 9A dargestellt. Unabhängig davon, wie viele Fahrspuren eine Straße haben kann, kann die Straße ähnlich wie in 9A dargestellt unter Verwendung von Polynomen repräsentiert werden. Beispielsweise können die linke und die rechte Seite einer mehrspurigen Straße durch ähnliche Polynome wie die in 9A dargestellten repräsentiert werden und können Zwischenfahrspurmarkierungen, die auf einer mehrspurigen Straße vorhanden sind (beispielsweise gestrichelte Markierungen, die Fahrspurgrenzen repräsentieren, durchgezogene gelbe Linien, die Grenzen zwischen in unterschiedlichen Richtungen verlaufenden Fahrspuren repräsentieren, usw.) auch unter Verwendung von Polynomen in der Art der in 9A dargestellten repräsentiert werden.
-
Wie in 9A dargestellt ist, kann eine Fahrspur 900 unter Verwendung von Polynomen (beispielsweise Polynom ersten Grades, zweiten Grades, dritten Grades oder eines beliebigen geeigneten Grades) repräsentiert werden. Zur Veranschaulichung ist die Fahrspur 900 als zweidimensionale Fahrspur dargestellt und sind die Polynome als zweidimensionale Polynome dargestellt. Wie in 9A dargestellt ist, weist die Fahrspur 900 eine linke Seite 910 und eine rechte Seite 920 auf. Gemäß einigen Ausführungsformen kann mehr als ein Polynom verwendet werden, um einen Ort jeder Seite der Straße oder einer Fahrspurmarkierung zu repräsentieren. Beispielsweise können die linke Seite 910 und die rechte Seite 920 jeweils durch mehrere Polynome einer geeigneten Länge repräsentiert werden. In manchen Fällen können die Polynome eine Länge von etwa 100 m aufweisen, wenngleich auch größere oder kleinere Längen als 100 m verwendet werden können. Zusätzlich können die Polynome einander überlappen, um nahtlose Übergänge bei der Navigation auf der Grundlage nachfolgend angetroffener Polynome, während ein Host-Fahrzeug eine Straße entlangfährt, zu erleichtern. Beispielsweise kann jede von der linken Seite 910 und der rechten Seite 920 durch mehrere Polynome dritten Grades, die in Segmente mit einer Länge von etwa 100 m unterteilt sind (ein Beispiel des ersten vorgegebenen Bereichs) und einander um etwa 50 Meter überlappen, repräsentiert werden. Die Polynome, welche die linke Seite 910 und die rechte Seite 920 repräsentieren, können vom selben Grad sein, oder dies kann nicht der Fall sein. Beispielsweise können gemäß einigen Ausführungsformen einige Polynome Polynome zweiten Grades, einige Polynome dritten Grades und einige Polynome vierten Grades sein.
-
Beim in 9A dargestellten Beispiel ist die linke Seite 910 der Fahrspur 900 durch zwei Gruppen von Polynomen dritten Grades repräsentiert. Die erste Gruppe weist Polynomsegmente 911, 912 und 913 auf. Die zweite Gruppe weist Polynomsegmente 914, 915 und 916 auf. Die beiden Gruppen folgen, wenngleich sie im Wesentlichen parallel zueinander sind, den Orten ihrer jeweiligen Seiten der Straße. Die Polynomsegmente 911, 912, 913, 914, 915 und 916 weisen eine Länge von etwa 100 Metern auf und überlappen benachbarte Segmente in der Reihe um etwa 50 Meter. Wie zuvor erwähnt wurde, können jedoch auch Polynome unterschiedlicher Längen und unterschiedlicher Überlappungsbeträge verwendet werden. Beispielsweise können die Polynome Längen von 500 m, 1 km oder mehr aufweisen und kann der Überlappungsbetrag von 0 bis 50 m oder 50 m bis 100 m variieren oder größer als 100 m sein. Zusätzlich ist, wenngleich 9A als sich im zweidimensionalen Raum (beispielsweise in der Papieroberfläche) erstreckende Polynome repräsentierend dargestellt ist, zu verstehen, dass diese Polynome sich in drei Dimensionen (beispielsweise einschließlich einer Höhenkomponente) erstreckende Kurven repräsentieren können, um Höhenänderungen in einem Straßensegment zusätzlich zur X-Y-Krümmung zu repräsentieren. Beim in 9A dargestellten Beispiel ist die rechte Seite 920 der Fahrspur 900 ferner durch eine erste Gruppe mit Polynomsegmenten 921, 922 und 923 und eine zweite Gruppe mit Polynomsegmenten 924, 925 und 926 repräsentiert.
-
Zu den Zielfahrstrecken der Sparse-Karte 800 zurückkehrend sei bemerkt, dass 9B ein dreidimensionales Polynom zeigt, das eine Zielfahrstrecke für ein entlang einem bestimmten Straßensegment fahrendes Fahrzeug repräsentiert. Die Zielfahrstrecke repräsentiert nicht nur den X-Y-Weg, den ein Host-Fahrzeug entlang einem bestimmten Straßensegment fahren sollte, sondern auch die Höhenänderung, die das Host-Fahrzeug erfährt, wenn es entlang dem Straßensegment fährt. Demgemäß kann jede Zielfahrstrecke in der Sparse-Karte 800 durch ein oder mehr dreidimensionale Polynome in der Art des in 9B dargestellten dreidimensionalen Polynoms 950 repräsentiert werden. Die Sparse-Karte 800 kann mehrere Fahrstrecken aufweisen (beispielsweise Millionen oder Milliarden oder mehr, um Fahrstrecken von Fahrzeugen entlang verschiedenen Straßensegmenten entlang Straßen weltweit zu repräsentieren). Gemäß einigen Ausführungsformen kann jeder Zielfahrstrecke ein Spline entsprechen, das dreidimensionale Polynomsegmente verbindet.
-
In Bezug auf den Daten-Footprint in der Sparse-Karte 800 gespeicherter Polynomkurven kann gemäß einigen Ausführungsformen jedes Polynom dritten Grades durch vier Parameter repräsentiert werden, die jeweils vier Datenbytes erfordern. Geeignete Repräsentationen können mit Polynomen dritten Grades erhalten werden, wobei etwa 192 Datenbytes für alle 100 m benötigt werden. Dies kann zu etwa 200 kB an Datenverwendungs-/Übertragungsanforderungen pro Stunde für ein mit etwa 100 km/h fahrendes Host-Fahrzeug führen.
-
Die Sparse-Karte 800 kann das Fahrspurnetz unter Verwendung einer Kombination von Geometriedeskriptoren und Metadaten beschreiben. Die Geometrie kann durch Polynome oder Splines, wie vorstehend beschrieben, beschrieben werden. Die Metadaten können die Anzahl der Fahrspuren, spezielle Eigenschaften (in der Art einer Fuhrpark-Fahrspur) und möglicherweise andere Sparse-Label beschreiben. Der Gesamt-Footprint solcher Indikatoren kann vernachlässigbar sein.
-
Demgemäß kann eine Sparse-Karte gemäß Ausführungsformen der vorliegenden Offenbarung wenigstens eine Linienrepräsentation eines sich entlang dem Straßensegment erstreckenden Straßenoberflächenmerkmals aufweisen, wobei jede Linienrepräsentation einen Weg entlang dem Straßensegment, der im Wesentlichen dem Straßenoberflächenmerkmal entspricht, repräsentiert. Gemäß einigen Ausführungsformen, wie vorstehend erörtert, kann die wenigstens eine Linienrepräsentation des Straßenoberflächenmerkmals einen Spline, eine Polynomrepräsentation oder eine Kurve aufweisen. Ferner kann das Straßenoberflächenmerkmal gemäß einigen Ausführungsformen wenigstens einen von einem Straßenrand oder einer Fahrspurmarkierung aufweisen. Überdies kann das Straßenoberflächenmerkmal, wie nachstehend in Bezug auf „Crowdsourcing“ erörtert, durch Bildanalyse mehrerer Bilder, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment entlangfahren, identifiziert werden.
-
Wie zuvor erwähnt, kann die Sparse-Karte 800 mehrere vorgegebene Orientierungsmarken in Zusammenhang mit einem Straßensegment aufweisen. Statt tatsächliche Bilder der Orientierungsmarken zu speichern und sich beispielsweise auf eine Bilderkennungsanalyse auf der Grundlage aufgenommener und gespeicherter Bilder zu verlassen, kann jede Orientierungsmarke in der Sparse-Karte 800 unter Verwendung von weniger Daten als bei einem gespeicherten tatsächlichen Bild erforderlich wären, repräsentiert und erkannt werden. Daten, die Orientierungsmarken repräsentieren, können noch ausreichend Informationen für das Beschreiben oder Identifizieren der Orientierungsmarken entlang einer Straße aufweisen. Durch Speichern Eigenschaften von Orientierungsmarken beschreibender Daten anstelle der tatsächlichen Bilder von Orientierungsmarken kann die Größe der Sparse-Karte 800 verringert werden.
-
10 zeigt Beispiele von Orientierungsmarkentypen, die in der Sparse-Karte 800 repräsentiert werden können. Die Orientierungsmarken können jegliche sichtbare und identifizierbare Objekte entlang einem Straßensegment einschließen. Die Orientierungsmarken können so gewählt werden, dass sie fest sind und sich nicht häufig in Bezug auf ihre Orte und/oder ihren Inhalt ändern. Die in der Sparse-Karte 800 enthaltenen Orientierungsmarken können bei der Bestimmung des Orts des Fahrzeugs 200 in Bezug auf eine Zielfahrstrecke, während das Fahrzeug ein bestimmtes Straßensegment entlangfährt, nützlich sein. Beispiele von Orientierungsmarken können Verkehrszeichen, Richtungszeichen, allgemeine Zeichen (beispielsweise rechteckige Zeichen), straßenseitige Haltevorrichtungen (beispielsweise Lampenmasten, Reflektoren usw.) und jegliche andere geeignete Kategorie einschließen. Gemäß einigen Ausführungsformen können Fahrspurmarkierungen auf der Straße auch als Orientierungsmarken in die Sparse-Karte 800 aufgenommen werden.
-
Beispiele in 10 dargestellter Orientierungsmarken umfassen Verkehrszeichen, Richtungszeichen, straßenseitige Haltevorrichtungen und allgemeine Zeichen. Verkehrszeichen können beispielsweise Geschwindigkeitsbegrenzungszeichen (beispielsweise ein Geschwindigkeitsbegrenzungszeichen 1000), Vorfahrt-Achten-Zeichen (beispielsweise ein Vorfahrt-Achten-Zeichen 1005), Straßennummernzeichen (beispielsweise ein Straßennummernzeichen 1010), Ampelzeichen (beispielsweise ein Ampelzeichen 1015) und Stoppzeichen (beispielsweise ein Stoppzeichen 1020) einschließen. Richtungszeichen können ein Zeichen einschließen, das einen oder mehrere Pfeile aufweist, die eine oder mehrere Richtungen zu verschiedenen Orten angeben. Beispielsweise können Richtungszeichen ein Schnellstraßenzeichen 1025 mit Pfeilen für das Leiten von Fahrzeugen zu verschiedenen Straßen oder Orten, ein Ausfahrtzeichen 1030 mit einem Pfeil, der Fahrzeuge von einer Straße leitet, usw. einschließen. Dementsprechend kann wenigstens eine der mehreren Orientierungsmarken ein Straßenschild einschließen.
-
Allgemeine Zeichen können keine Beziehung zu Verkehr haben. Beispielsweise können allgemeine Zeichen Werbetafeln oder ein Willkommensschild an einer Grenze zwischen zwei Ländern, Staaten, Bezirken, Großstädten oder Kleinstädten einschließen. 10 zeigt ein allgemeines Zeichen 1040 („Joe's Restaurant“). Wenngleich das allgemeine Zeichen 1040 eine Rechteckform aufweisen kann, wie in 10 dargestellt, kann es auch andere Formen in der Art eines Quadrats, eines Kreises, eines Dreiecks usw. aufweisen.
-
Orientierungsmarken können auch straßenseitige Haltevorrichtungen einschließen. Straßenseitige Haltevorrichtungen können von Zeichen verschiedene Objekte sein und keine Beziehung zu Verkehr oder Richtungen haben. Beispielsweise können straßenseitige Haltevorrichtungen Lampenmasten (beispielsweise Lampenmast 1035), Strommasten, Ampelmasten usw. einschließen.
-
Orientierungsmarken können auch Signalstationen einschließen, die spezifisch für die Verwendung in einem autonomen Fahrzeugnavigationssystem ausgelegt sein können. Beispielsweise können solche Signalstationen alleinstehende Strukturen, die in vorgegebenen Intervallen angeordnet sind, um bei der Navigation eines Host-Fahrzeugs zu helfen, einschließen. Solche Signalstationen können auch visuelle/graphische Informationen einschließen, die zu existierenden Straßenschildern hinzugefügt sind (beispielsweise Bildzeichen, Embleme, Strichcodes usw.), die von einem ein Straßensegment entlangfahrenden Fahrzeug identifiziert oder erkannt werden können. Solche Signalstationen können auch elektronische Komponenten einschließen. Gemäß solchen Ausführungsformen können elektronische Signalstationen (beispielsweise RFID-Tags usw.) zum Senden nicht visueller Informationen zu einem Host-Fahrzeug verwendet werden. Solche Informationen können beispielsweise Orientierungsmarkenidentifikations- und/oder Orientierungsmarkenortsinformationen, die ein Host-Fahrzeug bei der Bestimmung seiner Position entlang einer Zielfahrstrecke verwenden kann, einschließen.
-
Gemäß einigen Ausführungsformen können die in der Sparse-Karte 800 enthaltenen Orientierungsmarken durch ein Datenobjekt einer vorgegebenen Größe repräsentiert werden. Die eine Orientierungsmarke repräsentierenden Daten können jegliche geeignete Parameter zur Identifikation einer bestimmten Orientierungsmarke einschließen. Beispielsweise können gemäß einigen Ausführungsformen in der Sparse-Karte 800 gespeicherte Orientierungsmarken Parameter in der Art der physischen Größe der Orientierungsmarke (beispielsweise zur Unterstützung einer Abstandsschätzung zur Orientierungsmarke auf der Grundlage einer bekannten Größe/eines bekannten Maßstabs), des Abstands zu einer vorhergehenden Orientierungsmarke, eines lateralen Versatzes, einer Höhe, eines Typcodes (beispielsweise Orientierungsmarkentyp - welcher Typ eines Richtungszeichens, Verkehrszeichens usw.), einer GPS-Koordinate (beispielsweise zur Unterstützung einer globalen Lokalisation) und jeglicher anderer geeigneter Parameter einschließen. Jedem Parameter kann eine Datengröße zugeordnet werden. Beispielsweise kann eine Orientierungsmarkengröße unter Verwendung von 8 Datenbytes gespeichert werden. Der Abstand zu einer vorhergehenden Orientierungsmarke, ein lateraler Versatz und eine Höhe können unter Verwendung von 12 Datenbytes spezifiziert werden. Ein Typcode in Zusammenhang mit einer Orientierungsmarke in der Art eines Richtungszeichens oder eines Verkehrszeichens kann etwa 2 Datenbytes erfordern. Für allgemeine Zeichen kann eine Bildsignatur, welche die Identifikation des allgemeinen Zeichens ermöglicht, unter Verwendung von 50 Bytes eines Datenspeichers gespeichert werden. Die GPS-Position der Orientierungsmarke kann mit 16 Bytes eines Datenspeichers assoziiert sein. Diese Datengrößen für jeden Parameter sind lediglich Beispiele, und es können auch andere Datengrößen verwendet werden. Das Repräsentieren von Orientierungsmarken in der Sparse-Karte 800 in dieser Weise kann eine schlanke Lösung für eine effiziente Repräsentation von Orientierungsmarken in der Datenbank bieten. Gemäß einigen Ausführungsformen können Objekte als standardmäßige semantische Objekte oder nicht standardmäßige semantische Objekte bezeichnet werden. Ein standardmäßiges semantisches Objekt kann eine Objektklasse einschließen, für die es einen standardisierten Satz von Eigenschaften gibt (beispielsweise Geschwindigkeitsbegrenzungszeichen, Warnzeichen, Richtungszeichen, Ampeln usw., die bekannte Abmessungen oder andere Eigenschaften aufweisen). Ein nicht standardmäßiges semantisches Objekt kann ein Objekt einschließen, das mit keinem standardisierten Satz von Eigenschaften assoziiert ist (beispielsweise allgemeine Werbezeichen, Zeichen, die Geschäftseinrichtungen, Schlaglöcher, Bäume usw., welche variable Abmessungen haben können, einschließen). Jedes nicht standardmäßige semantische Objekt kann mit 38 Datenbytes (beispielsweise 8 Bytes für die Größe, 12 Bytes für den Abstand zur vorhergehenden Orientierungsmarke, für den lateralen Versatz und die Höhe, 2 Bytes für einen Typcode und 16 Bytes für Positionskoordinaten) repräsentiert werden. Standardmäßige semantische Objekte können unter Verwendung von sogar noch weniger Daten repräsentiert werden, weil Größeninformationen vom Kartenserver nicht benötigt werden können, um das Objekt in der Sparse-Karte vollständig zu repräsentieren.
-
Die Sparse-Karte 800 kann ein Tag-System zum Repräsentieren von Orientierungsmarkentypen verwenden. In manchen Fällen kann jedem Verkehrszeichen oder jedem Richtungszeichen sein eigenes Tag zugeordnet werden, welches als Teil der Orientierungsmarkenidentifikation in der Datenbank gespeichert werden kann. Beispielsweise kann die Datenbank in der Größenordnung von 1000 verschiedene Tags zur Repräsentation verschiedener Verkehrszeichen und in der Größenordnung von etwa 10000 verschiedene Tags zur Repräsentation von Richtungszeichen aufweisen. Natürlich kann eine beliebige geeignete Anzahl von Tags verwendet werden, und es können zusätzliche Tags nach Bedarf erzeugt werden. Zeichen für allgemeine Zwecke können gemäß einigen Ausführungsformen unter Verwendung von weniger als etwa 100 Bytes (beispielsweise etwa 86 Bytes, einschließlich 8 Bytes für die Größe, 12 Bytes für den Abstand zur vorhergehenden Orientierungsmarke, für den lateralen Versatz und für die Höhe, 50 Bytes für eine Bildsignatur und 16 Bytes für GPS-Koordinaten) repräsentiert werden.
-
Demgemäß kann für semantische Straßenschilder, die keine Bildsignatur erfordern, der Datendichteeinfluss auf die Sparse-Karte 800 selbst bei verhältnismäßig hohen Orientierungsmarkendichten von etwa 1 pro 50 m in der Größenordnung von etwa 760 Bytes pro Kilometer (beispielsweise 20 Orientierungsmarken pro Kilometer x 38 Bytes pro Orientierungsmarke = 760 Bytes) liegen. Selbst für Zeichen für allgemeine Zwecke, die eine Bildsignaturkomponente aufweisen, beträgt der Datendichteeinfluss etwa 1,72 kB pro km (beispielsweise 20 Orientierungsmarken pro km x 86 Bytes pro Orientierungsmarke = 1720 Bytes). Für semantische Straßenschilder ergibt dies etwa 76 kB pro Stunde der Datenverwendung für ein mit 100 km/h fahrendes Fahrzeug. Für Zeichen für allgemeine Zwecke ergibt dies etwa 170 kB pro Stunde für ein mit 100 km/h fahrendes Fahrzeug. Es sei bemerkt, dass es in manchen Umgebungen (beispielsweise städtischen Umgebungen) eine viel höhere Dichte erkannter Objekte, die für die Aufnahme in die Sparse-Karte zur Verfügung stehen (möglicherweise mehr als eines pro Meter), geben kann. Gemäß einigen Ausführungsformen kann ein im Wesentlichen rechteckiges Objekt in der Art eines rechteckigen Zeichens in der Sparse-Karte 800 durch nicht mehr als 100 Datenbytes repräsentiert werden. Die Repräsentation des im Wesentlichen rechteckigen Objekts (beispielsweise allgemeinen Zeichens 1040) in der Sparse-Karte 800 kann eine verdichtete Bildsignatur oder einen Bild-Hash (beispielsweise verdichtete Bildsignatur 1045) in Zusammenhang mit dem im Wesentlichen rechteckigen Objekt einschließen. Diese verdichtete Bildsignatur/dieser Bild-Hash kann unter Verwendung eines geeigneten Bild-Hashing-Algorithmus bestimmt werden und beispielsweise verwendet werden, um bei der Identifikation eines Zeichens für allgemeine Zwecke, beispielsweise als erkannte Orientierungsmarke, zu helfen. Eine solche verdichtete Bildsignatur (beispielsweise von ein Objekt repräsentierenden tatsächlichen Bilddaten abgeleitete Bildinformationen) kann das Speichern eines tatsächlichen Bilds eines Objekts oder die Ausführung einer vergleichenden Bildanalyse an tatsächlichen Bildern, um Orientierungsmarken zu erkennen, überflüssig machen.
-
Mit Bezug auf 10 sei bemerkt, dass die Sparse-Karte 800 eine verdichtete Bildsignatur 1045 in Zusammenhang mit einem allgemeinen Zeichen 1040 anstelle eines tatsächlichen Bilds des allgemeinen Zeichens 1040 aufweisen oder speichern kann. Beispielsweise kann ein Prozessor (beispielsweise Bildprozessor 190 oder ein anderer Prozessor, der Bilder entweder an Bord eines Host-Fahrzeugs oder fern von diesem verarbeiten kann), nachdem eine Bildaufnahmevorrichtung (beispielsweise Bildaufnahmevorrichtung 122, 124 oder 126) ein Bild des allgemeinen Zeichens 1040 aufgenommen hat, eine Bildanalyse ausführen, um die verdichtete Bildsignatur 1045 zu extrahieren/zu erzeugen, die eine eindeutige Signatur oder ein eindeutiges Muster in Zusammenhang mit dem allgemeinen Zeichen 1040 aufweist. Gemäß einer Ausführungsform kann die verdichtete Bildsignatur 1045 eine Form, ein Farbmuster, ein Helligkeitsmuster oder ein anderes Merkmal, das aus dem Bild des allgemeinen Zeichens 1040 extrahiert werden kann, um dieses zu beschreiben, einschließen.
-
Beispielsweise können in 10 die in der verdichteten Bildsignatur 1045 dargestellten Kreise, Dreiecke und Sterne Bereiche unterschiedlicher Farben repräsentieren. Das durch die Kreise, Dreiecke und Sterne repräsentierte Muster kann in der Sparse-Karte 800 gespeichert werden, beispielsweise innerhalb der 50 Bytes, die für die Aufnahme einer Bildsignatur vorgesehen sind. Es sei bemerkt, dass die Kreise, Dreiecke und Sterne nicht notwendigerweise angeben sollen, dass diese Formen als Teil der Bildsignatur gespeichert werden. Vielmehr sollen diese Formen erkennbare Bereiche mit wahrnehmbaren Farbdifferenzen, Textbereiche, graphische Formen oder andere Eigenschaftsvariationen, die mit einem Zeichen für allgemeine Zwecke assoziiert sein können, konzeptionell repräsentieren. Solche verdichtete Bildsignaturen können zur Identifikation einer Orientierungsmarke in Form eines allgemeinen Zeichens verwendet werden. Beispielsweise kann die verdichtete Bildsignatur verwendet werden, um eine Gleichnicht-gleich-Analyse auf der Grundlage eines Vergleichs einer gespeicherten verdichteten Bildsignatur mit beispielsweise unter Verwendung einer Kamera an Bord eines autonomen Fahrzeugs aufgenommenen Bilddaten verwendet werden.
-
Dementsprechend können die mehreren Orientierungsmarken durch Bildanalyse der mehreren Bilder, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment entlangfahren, identifiziert werden. Wie nachstehend in Bezug auf „Crowdsourcing“ erklärt, können bei der Bildanalyse zur Identifikation der mehreren Orientierungsmarken gemäß einigen Ausführungsformen mögliche Orientierungsmarken akzeptiert werden, wenn das Verhältnis der Bilder, in denen die Orientierungsmarke auftritt, zu Bildern, in denen die Orientierungsmarke nicht auftritt, eine Schwelle überschreitet. Ferner können gemäß einigen Ausführungsformen bei der Bildanalyse zur Identifikation der mehreren Orientierungsmarken mögliche Orientierungsmarken abgelehnt werden, wenn das Verhältnis der Bilder, in denen die Orientierungsmarke nicht auftritt, zu Bildern, in denen die Orientierungsmarke auftritt, eine Schwelle überschreitet.
-
Zu den Zielfahrstrecken zurückkehrend sei bemerkt, dass ein Host-Fahrzeug verwendet werden kann, um entlang einem bestimmten Straßensegment zu navigieren. 11A zeigt die Erfassung von Polynomrepräsentationen von Fahrstrecken während des Prozesses des Bildens oder Wartens der Sparse-Karte 800. Eine Polynomrepräsentation einer Zielfahrstrecke, die in der Sparse-Karte 800 enthalten ist, kann auf der Grundlage von zwei oder mehr rekonstruierten Fahrstrecken früherer Fahrten von Fahrzeugen entlang demselben Straßensegment bestimmt werden. Gemäß einigen Ausführungsformen kann die Polynomrepräsentation der Zielfahrstrecke, die in der Sparse-Karte 800 enthalten ist, eine Aggregation von zwei oder mehr rekonstruierten Fahrstrecken früherer Fahrten von Fahrzeugen entlang demselben Straßensegment sein. Gemäß einigen Ausführungsformen kann die Polynomrepräsentation der Zielfahrstrecke, die in der Sparse-Karte 800 enthalten ist, der Durchschnitt der zwei oder mehr rekonstruierten Fahrstrecken früherer Fahrten von Fahrzeugen entlang demselben Straßensegment sein. Andere mathematische Operationen können auch verwendet werden, um eine Zielfahrstrecke entlang einem Straßenweg auf der Grundlage von Fahrzeugen, die ein Straßensegment entlangfahren, gesammelter rekonstruierter Fahrstrecken zu bilden.
-
Wie in 11A dargestellt ist, kann ein Straßensegment 1100 zu verschiedenen Zeiten von einer Anzahl von Fahrzeugen 200 durchfahren werden. Jedes Fahrzeug 200 kann Daten in Bezug auf den Weg, den es entlang dem Straßensegment genommen hat, sammeln. Der von einem bestimmten Fahrzeug gefahrene Weg kann auf der Grundlage von Kameradaten, Beschleunigungsmesserinformationen, Geschwindigkeitssensorinformationen und/oder GPS-Informationen sowie anhand anderer möglicher Quellen bestimmt werden. Solche Daten können zur Rekonstruktion von Fahrstrecken entlang dem Straßensegment fahrender Fahrzeuge verwendet werden, und auf der Grundlage dieser rekonstruierten Fahrstrecken kann eine Zielfahrstrecke (oder mehrere Zielfahrstrecken) für das jeweilige Straßensegment bestimmt werden. Solche Zielfahrstrecken können einen bevorzugten Weg eines Host-Fahrzeugs (beispielsweise durch ein autonomes Navigationssystem geleitet), wenn das Fahrzeug entlang dem Straßensegment fährt, repräsentieren.
-
Beim in 11A dargestellten Beispiel kann eine erste rekonstruierte Fahrstrecke 1101 auf der Grundlage von Daten, die von einem ersten Fahrzeug empfangen werden, das ein Straßensegment 1100 in einem ersten Zeitraum (beispielsweise Tag 1) durchfahren hat, bestimmt werden, kann eine zweite rekonstruierte Fahrstrecke 1102 von einem zweiten Fahrzeug, welches das Straßensegment 1100 in einem zweiten Zeitraum (beispielsweise Tag 2) durchfahren hat, erhalten werden und kann eine dritte rekonstruierte Fahrstrecke 1103 von einem dritten Fahrzeug, welches das Straßensegment 1100 in einem dritten Zeitraum (beispielsweise Tag 3) durchfahren hat, erhalten werden. Jede Fahrstrecke 1101, 1102 und 1103 kann durch ein Polynom in der Art eines dreidimensionalen Polynoms repräsentiert werden. Es sei bemerkt, dass gemäß einigen Ausführungsformen jegliche der rekonstruierten Fahrstrecken an Bord der das Straßensegment 1100 durchfahrenden Fahrzeuge zusammengestellt werden können.
-
Zusätzlich oder alternativ können diese rekonstruierten Fahrstrecken auf einer Serverseite auf der Grundlage von Informationen, die von das Straßensegment 1100 durchfahrenden Fahrzeugen empfangen wurden, bestimmt werden. Beispielsweise können die Fahrzeuge 200 gemäß einigen Ausführungsformen Daten in Bezug auf ihre Bewegung entlang dem Straßensegment 1100 (beispielsweise Lenkwinkel, Steuerkurs, Zeit, Position, Geschwindigkeit, erfasste Straßengeometrie und/oder erfasste Orientierungsmarken usw.) zu einem oder mehreren Servern übertragen. Der Server kann Fahrstrecken für Fahrzeuge 200 auf der Grundlage der empfangenen Daten rekonstruieren. Der Server kann auch eine Zielfahrstrecke zum Anleiten der Navigation eines autonomen Fahrzeugs, das zu einer späteren Zeit entlang demselben Straßensegment 1100 fahren wird, auf der Grundlage der ersten, der zweiten und der dritten Fahrstrecke 1101, 1102 und 1103 erzeugen. Wenngleich eine Zielfahrstrecke mit einer einzigen vorhergehenden Fahrt entlang einem Straßensegment assoziiert sein kann, kann gemäß einigen Ausführungsformen jede in der Sparse-Karte 800 enthaltene Zielfahrstrecke auf der Grundlage von zwei oder mehr rekonstruierten Fahrstrecken von Fahrzeugen, die dasselbe Straßensegment durchfahren, bestimmt werden. In 11A ist die Zielfahrstrecke durch 1110 repräsentiert. Gemäß einigen Ausführungsformen kann die Zielfahrstrecke 1110 auf der Grundlage des Durchschnitts der ersten, der zweiten und der dritten Fahrstrecke 1101, 1102 und 1103 erzeugt werden. Gemäß einigen Ausführungsformen kann die in der Sparse-Karte 800 enthaltene Zielfahrstrecke 1110 eine Aggregation (beispielsweise gewichtete Kombination) von zwei oder mehr rekonstruierten Fahrstrecken sein.
-
Am Kartenserver kann der Server tatsächliche Fahrstrecken für ein bestimmtes Straßensegment von mehreren das Straßensegment durchfahrenden Daten sammelnden Vorrichtungen empfangen. Zur Erzeugung einer Zielfahrstrecke für jeden gültigen Weg entlang dem Straßensegment (beispielsweise jede Fahrspur, jede Fahrtrichtung, jeden Weg durch eine Abzweigung usw.) können die empfangenen tatsächlichen Fahrstrecken ausgerichtet werden. Beim Ausrichtungsprozess können entlang dem Straßensegment identifizierte erkannte Objekte/Merkmale zusammen mit gesammelten Positionen dieser erkannten Objekte/Merkmale verwendet werden, um die tatsächlichen gesammelten Fahrstrecken miteinander zu korrelieren. Sobald die Ausrichtung vorgenommen wurde, kann eine durchschnittliche oder „am besten passende“ Zielfahrstrecke für jede verfügbare Fahrspur usw. auf der Grundlage der aggregierten korrelierten/ausgerichteten tatsächlichen Fahrstrecken bestimmt werden.
-
Die 11B und 11C zeigen ferner das Konzept von Zielfahrstrecken in Zusammenhang mit innerhalb eines geographischen Gebiets 1111 vorhandenen Straßensegmenten. Wie in 11B dargestellt ist, kann ein erstes Straßensegment 1120 innerhalb des geographischen Gebiets 1111 eine mehrspurige Straße einschließen, die zwei für den Fahrzeugverkehr in einer ersten Richtung vorgesehene Fahrspuren 1122 und zwei zusätzliche für den Fahrzeugverkehr in einer zur ersten Richtung entgegengesetzten zweiten Richtung vorgesehene Fahrspuren 1124 aufweist. Die Fahrspuren 1122 und 1124 können durch eine gelbe Doppellinie 1123 getrennt sein. Das geographische Gebiet 1111 kann ein verzweigendes Straßensegment 1130, welches das Straßensegment 1120 schneidet, aufweisen. Das Straßensegment 1130 kann eine zweispurige Straße aufweisen, wobei jede Fahrspur für eine andere Fahrtrichtung vorgesehen ist. Das geographische Gebiet 1111 kann auch andere Straßenmerkmale in der Art einer Stopplinie 1132, eines Stoppzeichens 1134, eines Geschwindigkeitsbegrenzungszeichens 1136 und eines Gefahrenzeichens 1138 aufweisen.
-
Wie in 11C dargestellt ist, kann die Sparse-Karte 800 eine lokale Karte 1140 aufweisen, die ein Straßenmodell zur Unterstützung der autonomen Navigation von Fahrzeugen innerhalb des geographischen Gebiets 1111 aufweist. Beispielsweise kann die lokale Karte 1140 Zielfahrstrecken für eine oder mehrere Fahrspuren in Zusammenhang mit Straßensegmenten 1120 und/oder 1130 innerhalb des geographischen Gebiets 1111 aufweisen. Beispielsweise kann die lokale Karte 1140 Zielfahrstrecken 1141 und/oder 1142, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es sich verlassen kann, wenn es die Fahrspuren 1122 entlangfährt, aufweisen. Ähnlich kann die lokale Karte 1140 Zielfahrstrecken 1143 und/oder 1144, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es sich verlassen kann, wenn es die Fahrspuren 1124 entlangfährt, aufweisen. Ferner kann die lokale Karte 1140 Zielfahrstrecken 1145 und/oder 1146, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es sich verlassen kann, wenn es das Straßensegment 1130 entlangfährt, aufweisen. Die Zielfahrstrecke 1147 repräsentiert einen bevorzugten Weg, dem ein autonomes Fahrzeug folgen sollte, wenn es von Fahrspuren 1120 (und insbesondere in Bezug auf die Zielfahrstrecke 1141 in Zusammenhang mit einer am weitesten rechts gelegenen Fahrspur der Fahrspuren 1120) auf das Straßensegment 1130 übergeht (und insbesondere in Bezug auf eine Zielfahrstrecke 1145 in Zusammenhang mit einer ersten Seite des Straßensegments 1130). Ähnlich repräsentiert die Zielfahrstrecke 1148 einen bevorzugten Weg, dem ein autonomes Fahrzeug folgen sollte, wenn es vom Straßensegment 1130 (und insbesondere in Bezug auf die Zielfahrstrecke 1146) zu einem Abschnitt des Straßensegments 1124 übergeht (und insbesondere, wie dargestellt, in Bezug auf eine Zielfahrstrecke 1143 in Zusammenhang mit einer linken Fahrspur der Fahrspuren 1124).
-
Die Sparse-Karte 800 kann auch Repräsentationen anderer straßenbezogener Merkmale in Zusammenhang mit dem geographischen Gebiet 1111 aufweisen. Beispielsweise kann die Sparse-Karte 800 auch Repräsentationen einer oder mehrerer im geographischen Gebiet 1111 identifizierter Orientierungsmarken aufweisen. Solche Orientierungsmarken können eine erste Orientierungsmarke 1150 in Zusammenhang mit der Stopplinie 1132, eine zweite Orientierungsmarke 1152 in Zusammenhang mit dem Stoppzeichen 1134, eine dritte Orientierungsmarke in Zusammenhang mit dem Geschwindigkeitsbegrenzungszeichen 1154 und eine vierte Orientierungsmarke 1156 in Zusammenhang mit dem Gefahrenzeichen 1138 einschließen. Solche Orientierungsmarken können beispielsweise verwendet werden, um ein autonomes Fahrzeug dabei zu unterstützen, seinen aktuellen Ort in Bezug auf jegliche der dargestellten Zielfahrstrecken zu bestimmen, so dass das Fahrzeug seinen Steuerkurs an die Richtung der Zielfahrstrecke am bestimmten Ort anpassen kann.
-
Gemäß einigen Ausführungsformen kann die Sparse-Karte 800 auch Straßensignaturprofile aufweisen. Solche Straßensignaturprofile können mit einer wahrnehmbaren/messbaren Variation in wenigstens einem Parameter in Zusammenhang mit einer Straße assoziiert sein. Beispielsweise können in manchen Fällen solche Profile mit Variationen in Straßenoberflächeninformationen in der Art von Variationen der Oberflächenrauigkeit eines bestimmten Straßensegments, Variationen der Straßenbreite über ein bestimmtes Straßensegment, Variationen von Abständen zwischen gestrichelten Linien, die entlang einem bestimmten Straßensegment gemalt sind, Variationen der Straßenkrummung entlang einem bestimmten Straßensegment usw. assoziiert sein. 11 D zeigt ein Beispiel eines Straßensignaturprofils 1160. Wenngleich das Profil 1160 jegliche der vorstehend erwähnten oder andere Parameter repräsentieren kann, kann es bei einem Beispiel ein Maß der Straßenoberflächenrauigkeit repräsentieren, das beispielsweise durch Überwachen eines oder mehrerer Sensoren erhalten wird, die Ausgaben in Bezug auf den Betrag des Federungsversatzes, wenn ein Fahrzeug ein bestimmtes Straßensegment durchfährt, bereitstellen.
-
Alternativ oder gleichzeitig kann das Profil 1160 eine Variation der Straßenbreite repräsentieren, die auf der Grundlage durch eine Kamera an Bord eines ein bestimmtes Straßensegment durchfahrenden Fahrzeugs erhaltener Bilddaten bestimmt wurde. Solche Profile können beispielsweise bei der Bestimmung eines jeweiligen Orts eines autonomen Fahrzeugs in Bezug auf eine jeweilige Zielfahrstrecke nützlich sein. Das heißt, dass ein autonomes Fahrzeug, während es ein Straßensegment durchfährt, ein Profil in Zusammenhang mit einem oder mehreren Parametern in Zusammenhang mit dem Straßensegment messen kann. Falls das gemessene Profil mit einem vorgegebenen Profil, das die Parametervariation in Bezug auf die Position entlang dem Straßensegment aufträgt, korreliert/in Übereinstimmung gebracht werden kann, können die gemessenen und vorgegebenen Profile verwendet werden (beispielsweise durch Überlagern entsprechender Abschnitte der gemessenen und vorgegebenen Profile), um die aktuelle Position entlang dem Straßensegment und daher die aktuelle Position in Bezug auf eine Zielfahrstrecke für das Straßensegment zu bestimmen.
-
Gemäß einigen Ausführungsformen kann die Sparse-Karte 800 verschiedene Fahrstrecken auf der Grundlage verschiedener Eigenschaften in Zusammenhang mit einem Benutzer autonomer Fahrzeuge, Umgebungsbedingungen und/oder anderen Parametern in Bezug auf das Fahren aufweisen. Beispielsweise können gemäß einigen Ausführungsformen verschiedene Fahrstrecken auf der Grundlage verschiedener Benutzerpräferenzen und/oder -profile erzeugt werden. Die solche verschiedenen Fahrstrecken aufweisende Sparse-Karte 800 kann verschiedenen autonomen Fahrzeugen verschiedener Benutzer bereitgestellt werden. Beispielsweise können es einige Benutzer bevorzugen, Mautstraßen zu vermeiden, während es andere bevorzugen können, die kürzesten oder schnellsten Wege zu nehmen, unabhängig davon, ob es auf dem Weg eine Mautstraße gibt. Die offenbarten Systeme können verschiedene Sparse-Karten mit verschiedenen Fahrstrecken auf der Grundlage solcher verschiedener Benutzerpräferenzen oder -profile erzeugen. Bei einem anderen Beispiel können es einige Benutzer bevorzugen, in einer schnellen Fahrspur zu fahren, während es andere Benutzer bevorzugen können, stets die Position in der mittleren Fahrspur zu halten.
-
Verschiedene Fahrstrecken können auf der Grundlage verschiedener Umgebungsbedingungen in der Art von Tag und Nacht, Schnee, Regen, Nebel usw. erzeugt und in die Sparse-Karte 800 aufgenommen werden. Autonomen Fahrzeugen, die unter verschiedenen Umgebungsbedingungen fahren, kann die auf der Grundlage solcher verschiedener Umgebungsbedingungen erzeugte Sparse-Karte 800 bereitgestellt werden. Gemäß einigen Ausführungsformen können an autonomen Fahrzeugen bereitgestellte Kameras die Umgebungsbedingungen erkennen und diese Informationen an einen Server, der Sparse-Karten erzeugt und bereitstellt, zurückgeben. Beispielsweise kann der Server eine Sparse-Karte 800 erzeugen oder eine bereits erzeugte Sparse-Karte 800 aktualisieren, um Fahrstrecken aufzunehmen, die für das autonome Fahren unter den erkannten Umgebungsbedingungen geeigneter oder sicherer sein können. Die Aktualisierung der Sparse-Karte 800 auf der Grundlage von Umgebungsbedingungen kann dynamisch ausgeführt werden, wenn die autonomen Fahrzeuge Straßen entlangfahren.
-
Andere verschiedene Parameter in Bezug auf das Fahren können auch als Grundlage zur Erzeugung und zum Bereitstellen verschiedener Sparse-Karten für verschiedene autonome Fahrzeuge verwendet werden. Beispielsweise können Richtungsänderungen strenger sein, wenn ein Fahrzeug mit hoher Geschwindigkeit fährt. Fahrstrecken in Zusammenhang mit spezifischen Fahrspuren anstelle von Straßen können in die Sparse-Karte 800 aufgenommen werden, so dass das autonome Fahrzeug innerhalb einer spezifischen Fahrspur bleiben kann, wenn es einer spezifischen Fahrstrecke folgt. Wenn ein von einer Kamera an Bord des autonomen Fahrzeugs aufgenommenes Bild angibt, dass das Fahrzeug aus der Fahrspur herausgedriftet ist (beispielsweise die Fahrspurmarkierung gekreuzt hat), kann innerhalb des Fahrzeugs eine Aktion ausgelöst werden, um es entsprechend der spezifischen Fahrstrecke zur festgelegten Fahrspur zurückzubringen.
-
Crowdsourcing einer Sparse-Karte
-
Die offenbarten Sparse-Karten können effizient (und passiv) durch die Kraft des Crowdsourcings erzeugt werden. Beispielsweise kann ein privates oder kommerzielles Fahrzeug, das mit einer Kamera (beispielsweise einer einfachen Kamera mit niedriger Auflösung, die in heutigen Fahrzeugen üblicherweise als OEM-Gerät aufgenommen ist) und einem geeigneten Bildanalyseprozessor ausgerüstet ist, als Daten sammelndes Fahrzeug dienen. Keine spezielle Ausrüstung (beispielsweise hochauflösende Bilderzeugungs- und/oder Positionsbestimmungssysteme) wird benötigt. Als Ergebnis der offenbarten Crowdsourcing-Technik können die erzeugten Sparse-Karten sehr genau sein und stark verfeinerte Positionsinformationen aufweisen (wodurch Navigationsfehlergrenzen von 10 cm oder weniger ermöglicht werden), ohne dass ein spezialisiertes Bilderzeugungs- oder Messgerät für die Eingabe in den Kartenerzeugungsprozess erforderlich wäre. Crowdsourcing ermöglicht auch viel schnellere (und kostengünstigere) Aktualisierungen der erzeugten Karten, weil neue Fahrinformationen dem Kartenserversystem von Straßen, die von privaten oder kommerziellen Fahrzeugen durchfahren werden, welche minimal dafür ausgerüstet sind, auch als Daten sammelnde Fahrzeuge zu dienen, kontinuierlich zur Verfügung stehen. Eigens zugewiesene Fahrzeuge, die mit hochauflösenden Bilderzeugungs- und Kartenerzeugungssensoren versehen sind, werden nicht benötigt. Daher können die Kosten in Zusammenhang mit dem Bau solcher spezialisierter Fahrzeuge vermieden werden. Ferner können Aktualisierungen an den gegenwärtig offenbarten Sparse-Karten viel schneller vorgenommen werden als bei Systemen, die auf zweckgebundenen spezialisierten Kartenerzeugungsfahrzeugen beruhen (die infolge ihrer kostspieligen und speziellen Ausrüstung typischerweise auf eine Flotte spezialisierter Fahrzeuge viel geringerer Anzahlen als bei privaten oder kommerziellen Fahrzeugen, die bereits für die Ausführung der offenbarten Datensammeltechniken verfügbar sind, begrenzt sind).
-
Die durch Crowdsourcing erzeugten Sparse-Karten können sehr genau sein, weil sie auf der Grundlage vieler Eingaben von zahlreichen (einigen zehn, einigen hundert, einigen Millionen usw.) Daten sammelnden Fahrzeugen, die Fahrinformationen entlang einem bestimmten Straßensegment gesammelt haben, erzeugt werden können. Beispielsweise kann jedes Daten sammelnde Fahrzeug, das entlang einem jeweiligen Straßensegment fährt, seine tatsächliche Fahrstrecke aufzeichnen und Positionsinformationen in Bezug auf erkannte Objekte/Merkmale entlang dem Straßensegment bestimmen. Diese Informationen werden von zahlreichen Daten sammelnden Fahrzeugen an einen Server weitergeleitet. Die tatsächlichen Fahrstrecken werden aggregiert, um eine verfeinerte Zielfahrstrecke für jeden gültigen Fahrweg entlang dem Straßensegment zu erzeugen. Zusätzlich können auch die von den mehreren Daten sammelnden Fahrzeugen für jedes der erkannten Objekte/Merkmale entlang dem Straßensegment (semantisch oder nicht semantisch) gesammelten Positionsinformationen aggregiert werden. Dadurch kann die kartographierte Position jedes erkannten Objekts/Merkmals einen Durchschnitt hunderter, tausender oder Millionen individuell bestimmter Positionen für jedes erkannte Objekt/Merkmal bilden. Eine solche Technik kann sehr genaue kartographierte Positionen für die erkannten Objekte/Merkmale liefern.
-
Gemäß einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine Sparse-Karte zur autonomen Fahrzeugnavigation erzeugen. Beispielsweise können offenbarte Systeme und Verfahren Crowdsourcing-Daten zur Erzeugung einer Sparse-Karte verwenden, die ein oder mehrere autonome Fahrzeuge zur Navigation entlang einem System von Straßen verwenden können. Hier bedeutet „Crowdsourcing“, dass Daten von verschiedenen zu verschiedenen Zeiten auf einem Straßensegment fahrenden Fahrzeugen (beispielsweise autonomen Fahrzeugen) empfangen werden und diese Daten verwendet werden, um das Straßenmodell, einschließlich Sparse-Karten-Kacheln, zu erzeugen und/oder zu aktualisieren. Das Modell oder jegliche dieser Sparse-Karten-Kacheln können wiederum zu den Fahrzeugen oder zu anderen Fahrzeugen, die später entlang dem Straßensegment fahren, übertragen werden, um die autonome Fahrzeugnavigation zu unterstützen. Das Straßenmodell kann mehrere Zielfahrstrecken aufweisen, die bevorzugte Fahrstrecken repräsentieren, denen autonome Fahrzeuge folgen sollten, wenn sie ein Straßensegment durchfahren. Die Zielfahrstrecken können einer von einem Fahrzeug, das ein Straßensegment, welches vom Fahrzeug zu einem Server übertragen werden kann, durchfahren hat, gesammelten rekonstruierten tatsächlichen Fahrstrecke gleichen. Gemäß einigen Ausführungsformen können die Zielfahrstrecken von tatsächlichen Fahrstrecken, die ein oder mehrere Fahrzeuge zuvor genommen haben, wenn sie ein Straßensegment durchfahren haben, verschieden sein. Die Zielfahrstrecken können auf der Grundlage tatsächlicher Fahrstrecken (beispielsweise durch Mitteln oder eine andere geeignete Operation) erzeugt werden.
-
Die Fahrzeugfahrstreckendaten, die ein Fahrzeug zu einem Server hochladen kann, können der tatsächlichen rekonstruierten Fahrstrecke für das Fahrzeug entsprechen oder einer empfohlenen Fahrstrecke entsprechen, die auf der tatsächlichen rekonstruierten Fahrstrecke des Fahrzeugs beruhen kann oder sich auf diese beziehen kann, sie können jedoch auch von der tatsächlichen rekonstruierten Fahrstrecke abweichen. Beispielsweise können Fahrzeuge ihre tatsächlichen rekonstruierten Fahrstrecken modifizieren und die modifizierten tatsächlichen Fahrstrecken an den Server übergeben (beispielsweise empfehlen). Das Straßenmodell kann die empfohlenen, modifizierten Fahrstrecken als Zielfahrstrecken für die autonome Navigation anderer Fahrzeuge verwenden.
-
Zusätzlich zu Fahrstreckeninformationen können andere Informationen zur möglichen Verwendung bei der Erzeugung einer Sparse-Datenkarte 800 Informationen in Bezug auf mögliche Orientierungsmarkenkandidaten einschließen. Beispielsweise können die offenbarten Systeme und Verfahren durch Crowdsourcing von Informationen mögliche Orientierungsmarken in einer Umgebung identifizieren und Orientierungsmarkenpositionen verfeinern. Die Orientierungsmarken können von einem Navigationssystem autonomer Fahrzeuge verwendet werden, um die Position des Fahrzeugs entlang den Zielfahrstrecken zu bestimmen und/oder anzupassen.
-
Die rekonstruierten Fahrstrecken, die ein Fahrzeug erzeugen kann, während es entlang einer Straße fährt, können durch ein geeignetes Verfahren erhalten werden. Gemäß einigen Ausführungsformen können die rekonstruierten Fahrstrecken durch Zusammenfügen von Bewegungssegmenten für das Fahrzeug beispielsweise unter Verwendung einer Eigenbewegungsschätzung (beispielsweise dreidimensionale Translation und dreidimensionale Rotation der Kamera und daher der Karosserie des Fahrzeugs) entwickelt werden. Die Rotations- und Translationschätzung kann auf der Grundlage der Analyse von einer oder mehreren Bildaufnahmevorrichtungen aufgenommener Bilder zusammen mit Informationen von anderen Sensoren oder Vorrichtungen in der Art von Trägheitssensoren und Geschwindigkeitssensoren bestimmt werden. Beispielsweise können die Trägheitssensoren einen Beschleunigungsmesser oder andere geeignete Sensoren einschließen, die dafür ausgelegt sind, Translations- und/oder Rotationsänderungen der Fahrzeugkarosserie zu messen. Das Fahrzeug kann einen Geschwindigkeitssensor aufweisen, der die Geschwindigkeit des Fahrzeugs misst.
-
Gemäß einigen Ausführungsformen kann die Eigenbewegung der Kamera (und daher der Fahrzeugkarosserie) auf der Grundlage einer optischen Flussanalyse der aufgenommenen Bilder geschätzt werden. Eine optische Flussanalyse einer Bildsequenz identifiziert die Bewegung von Pixeln aus der Bildsequenz und bestimmt auf der Grundlage der identifizierten Bewegung Bewegungen des Fahrzeugs. Die Eigenbewegung kann über die Zeit und entlang dem Straßensegment integriert werden, um eine Fahrstrecke in Zusammenhang mit dem Straßensegment, derer das Fahrzeug gefolgt ist, zu rekonstruieren.
-
Daten (beispielsweise rekonstruierte Fahrstrecken), die von mehreren Fahrzeugen bei mehreren Fahrten entlang einem Straßensegment zu verschiedenen Zeiten gesammelt wurden, können verwendet werden, um das in der Sparse-Datenkarte 800 enthaltene Straßenmodell (einschließlich der Fahrstrecken usw.) zu bilden. Von mehreren Fahrzeugen bei mehreren Fahrten entlang einem Straßensegment zu verschiedenen Zeiten gesammelte Daten können auch gemittelt werden, um die Genauigkeit des Modells zu erhöhen. Gemäß einigen Ausführungsformen können Daten in Bezug auf die Straßengeometrie und/oder Orientierungsmarken von mehreren Fahrzeugen, die zu verschiedenen Zeiten durch das gemeinsame Straßensegment fahren, empfangen werden. Diese von verschiedenen Fahrzeugen empfangenen Daten können kombiniert werden, um das Straßenmodell zu erzeugen und/oder zu aktualisieren.
-
Die Geometrie einer rekonstruierten Fahrstrecke (und auch einer Zielfahrstrecke) entlang einem Straßensegment kann durch eine Kurve im dreidimensionalen Raum repräsentiert werden, wobei es sich um einen dreidimensionale Polynome verbindenden Spline handeln kann. Die Kurve der rekonstruierten Fahrstrecke kann anhand einer Analyse eines Videostreams oder mehrerer von einer am Fahrzeug installierten Kamera aufgenommener Bilder bestimmt werden. Gemäß einigen Ausführungsformen wird ein Ort in jedem Frame oder Bild, der einige Meter vor der aktuellen Position des Fahrzeugs liegt, identifiziert. Dieser Ort gibt an, zu welcher Stelle sich das Fahrzeug in einem vorgegebenen Zeitraum nach Erwartung bewegen wird. Diese Operation kann Frame für Frame wiederholt werden, und das Fahrzeug kann gleichzeitig die Eigenbewegung der Kamera (Rotation und Translation) berechnen. An jedem Frame oder Bild wird vom Fahrzeug in einem Referenzrahmen, der mit der Kamera verbunden ist, ein Nahbereichsmodell für den gewünschten Weg erzeugt. Die Nahbereichsmodelle können zusammengefügt werden, um ein dreidimensionales Modell der Straße in einem Koordinatenrahmen zu erhalten, wobei es sich um einen beliebigen oder vorgegebenen Koordinatenrahmen handeln kann. Das dreidimensionale Modell der Straße kann durch einen Spline, der ein oder mehrere Polynome geeigneter Grade aufweisen oder verbinden kann, angepasst werden.
-
Für den Abschluss des Nahbereichs-Straßenmodells an jedem Rahmen können ein oder mehrere Erkennungsmodule verwendet werden. Beispielsweise kann ein Von-unten-nach-oben-Fahrspurerkennungsmodul verwendet werden. Das Von-unten-nach-oben-Fahrspurerkennungsmodul kann verwendet werden, wenn Fahrspurmarkierungen auf die Straße gezeichnet sind. Dieses Modul kann nach Kanten im Bild suchen und setzt sie zusammen, um die Fahrspurmarkierungen zu bilden. Ein zweites Modul kann zusammen mit dem Von-unten-nach-oben-Fahrspurerkennungsmodul verwendet werden. Das zweite Modul ist ein tiefes neuronales End-to-end-Netz, das trainiert werden kann, um den korrekten Nahbereichsweg anhand eines Eingangsbilds vorherzusagen. In beiden Modulen kann das Straßenmodell im Bildkoordinatenrahmen erkannt werden und in einen dreidimensionalen Raum, der virtuell mit der Kamera verbunden sein kann, transformiert werden.
-
Wenngleich das Verfahren zur Modellierung einer rekonstruierten Fahrstrecke eine Fehlerakkumulation infolge der Integration der Eigenbewegung über einen langen Zeitraum, welche eine Rauschkomponente einschließen kann, einbringen kann, können solche Fehler folgenlos sein, weil das erzeugte Modell ausreichend Genauigkeit für die Navigation über einen lokalen Maßstab bereitstellen kann. Zusätzlich ist es möglich, den Integrationsfehler unter Verwendung externer Informationsquellen in der Art von Satellitenbildern und geodätischen Messungen aufzuheben. Beispielsweise können die offenbarten Systeme und Verfahren einen GNSS-Empfänger verwenden, um akkumulierte Fehler aufzuheben. Die GNSS-Positionsbestimmungssignale können jedoch nicht immer verfügbar und genau sein. Die offenbarten Systeme und Verfahren können eine Lenkanwendung ermöglichen, die nur leicht von der Verfügbarkeit und Genauigkeit der GNSS-Positionsbestimmung abhängt. Bei solchen Systemen kann die Verwendung der GNSS-Signale eingeschränkt sein. Beispielsweise können die offenbarten Systeme gemäß einigen Ausführungsformen die GNSS-Signale nur für Datenbankindexierungszwecke verwenden.
-
Gemäß einigen Ausführungsformen kann der Bereichsmaßstab (beispielsweise lokaler Maßstab), der für eine Lenkanwendung bei der autonomen Fahrzeugnavigation relevant sein kann, in der Größenordnung von 50 Metern, 100 Metern, 200 Metern, 300 Metern usw. liegen. Solche Abstände können verwendet werden, weil das geometrische Straßenmodell hauptsächlich für zwei Zwecke verwendet wird, nämlich zur Planung der voraus liegenden Fahrstrecke und zur Lokalisierung des Fahrzeugs auf dem Straßenmodell. Gemäß einigen Ausführungsformen kann die Planungsaufgabe das Modell über einen typischen Bereich von 40 voraus liegenden Metern (oder einen anderen geeigneten voraus liegenden Abstand in der Art von 20 Metern, 30 Metern, 50 Metern) verwenden, wenn der Steueralgorithmus das Fahrzeug entsprechend einem Zielpunkt lenkt, der 1,3 Sekunden (oder eine andere Zeit in der Art von 1,5 Sekunden, 1,7 Sekunden, 2 Sekunden usw.) voraus liegt. Die Lokalisierungsaufgabe verwendet das Straßenmodell gemäß einem in einem anderen Abschnitt detaillierter beschriebenen als „Heckausrichtung“ bezeichneten Verfahren über einen typischen Bereich von 60 Metern hinter dem Fahrzeug (oder andere geeignete Abstände in der Art von 50 Metern, 100 Metern, 150 Metern usw.). Die offenbarten Systeme und Verfahren können ein geometrisches Modell erzeugen, das über einen bestimmten Bereich, wie 100 Meter, eine ausreichende Genauigkeit aufweist, so dass eine geplante Fahrstrecke nicht um mehr als beispielsweise 30 cm von der Fahrspurmitte abweicht.
-
Wie vorstehend erwähnt, kann ein dreidimensionales Straßenmodell anhand der Erkennung von Nahbereichsabschnitten und Zusammenfügung von ihnen gebildet werden. Das Zusammenfügen kann durch Berechnen eines Eigenbewegungsmodells sechsten Grades unter Verwendung der Videos und/oder Bilder, die von der Kamera aufgenommen wurden, Daten von den Trägheitssensoren, welche die Bewegungen des Fahrzeugs widerspiegeln, und des Geschwindigkeitssignals des Host-Fahrzeugs ermöglicht werden. Der akkumulierte Fehler kann über einen Lokalbereichs-Maßstab, beispielsweise in der Größenordnung von 100 Metern, klein genug sein. All dies kann in einer einzigen Fahrt über ein bestimmtes Straßensegment abgeschlossen werden.
-
Gemäß einigen Ausführungsformen können mehrere Fahrten verwendet werden, um das resultierende Modell zu mitteln und seine Genauigkeit weiter zu erhöhen. Dasselbe Fahrzeug kann dieselbe Route mehrere Male durchfahren, oder mehrere Fahrzeuge können ihre gesammelten Modelldaten zu einem zentralen Server senden. In jedem Fall kann eine Vergleichsprozedur ausgeführt werden, um überlappende Modelle zu identifizieren und um das Mitteln zur Erzeugung von Zielfahrstrecken zu ermöglichen. Das gebildete Modell (beispielsweise einschließlich der Zielfahrstrecken) kann für das Lenken verwendet werden, sobald ein Konvergenzkriterium erfüllt ist. Anschließende Fahrten können für weitere Modellverbesserungen, und um Infrastrukturänderungen Rechnung zu tragen, verwendet werden.
-
Das Teilen von Fahrerfahrung (in der Art gemessener Daten) zwischen mehreren Fahrzeugen wird möglich, falls sie mit einem zentralen Server verbunden sind. Jeder Fahrzeug-Client kann eine Teilkopie eines universellen Straßenmodells speichern, die für seine aktuelle Position relevant sein kann. Eine bidirektionale Aktualisierungsprozedur zwischen den Fahrzeugen und dem Server kann von den Fahrzeugen und dem Server ausgeführt werden. Das vorstehend erörterte Konzept eines kleinen Footprints ermöglicht es den offenbarten Systemen und Verfahren, die bidirektionalen Aktualisierungen unter Verwendung einer sehr kleinen Bandbreite auszuführen.
-
Informationen in Bezug auf mögliche Orientierungsmarken können auch bestimmt und an einen zentralen Server weitergeleitet werden. Beispielsweise können die offenbarten Systeme und Verfahren eine oder mehrere physikalische Eigenschaften einer möglichen Orientierungsmarke auf der Grundlage eines oder mehrerer Bilder, welche die Orientierungsmarke aufweisen, bestimmen. Die physikalischen Eigenschaften können die physikalische Größe (beispielsweise Höhe, Breite) der Orientierungsmarke, den Abstand eines Fahrzeugs von einer Orientierungsmarke, den Abstand zwischen der Orientierungsmarke und einer vorhergehenden Orientierungsmarke, die laterale Position der Orientierungsmarke (beispielsweise die Position der Orientierungsmarke in Bezug auf die gefahrene Fahrspur), die GPS-Koordinaten der Orientierungsmarke, den Typ der Orientierungsmarke, die Identifikation von Text auf der Orientierungsmarke usw. einschließen. Beispielsweise kann ein Fahrzeug ein oder mehrere von einer Kamera aufgenommene Bilder analysieren, um eine mögliche Orientierungsmarke in der Art eines Geschwindigkeitsbegrenzungszeichens zu erkennen.
-
Das Fahrzeug kann den Abstand vom Fahrzeug zur Orientierungsmarke oder eine Position in Zusammenhang mit der Orientierungsmarke (beispielsweise ein semantisches oder nicht semantisches Objekt oder Merkmal entlang einem Straßensegment) auf der Grundlage der Analyse des einen oder der mehreren Bilder bestimmen. Gemäß einigen Ausführungsformen kann der Abstand auf der Grundlage der Analyse von Bildern der Orientierungsmarke unter Verwendung eines geeigneten Bildanalyseverfahrens in der Art eines Skalierungsverfahrens und/oder eines optischen Flussverfahrens bestimmt werden. Wie vorstehend erwähnt, kann eine Position des Objekts/Merkmals eine 2D-Bildposition (beispielsweise eine X-Y-Pixelposition in einem oder mehreren aufgenommenen Bildern) eines oder mehrerer Punkte in Zusammenhang mit dem Objekt/Merkmal einschließen oder eine reale 3D-Position eines oder mehrerer Punkte (beispielsweise durch Struktur-in-Bewegung/Optischer-Fluss-Techniken, LIDAR- oder RADAR-Informationen usw. bestimmt) einschließen. Gemäß einigen Ausführungsformen können die offenbarten Systeme und Verfahren dafür ausgelegt sein, einen Typ oder eine Klassifikation einer möglichen Orientierungsmarke zu bestimmen. Falls das Fahrzeug feststellt, dass eine gewisse mögliche Orientierungsmarke einem vorgegebenen Typ oder einer vorgegebenen Klassifikation, der oder die in einer Sparse-Karte gespeichert ist, entspricht, kann es ausreichen, wenn das Fahrzeug dem Server eine Angabe des Typs oder der Klassifikation der Orientierungsmarke zusammen mit ihrem Ort übermittelt. Der Server kann diese Angaben speichern. Später kann ein navigierendes Fahrzeug während der Navigation ein Bild aufnehmen, das eine Repräsentation der Orientierungsmarke aufweist, das Bild verarbeiten (beispielsweise unter Verwendung eines Klassifikators) und das Ergebnis mit der Orientierungsmarke vergleichen, um die Erkennung der kartographierten Orientierungsmarke zu bestätigen und die kartographierte Orientierungsmarke bei der Lokalisierung des navigierenden Fahrzeugs in Bezug auf die Sparse-Karte zu verwenden.
-
Gemäß einigen Ausführungsformen können mehrere autonome Fahrzeuge, die auf einem Straßensegment fahren, mit einem Server kommunizieren. Die Fahrzeuge (oder Clients) können eine ihre Fahrt beschreibende Kurve (beispielsweise durch Eigenbewegungsintegration) in einem beliebigen Koordinatenrahmen erzeugen. Die Fahrzeuge können Orientierungsmarken erkennen und sie im selben Rahmen lokalisieren. Die Fahrzeuge können die Kurve und die Orientierungsmarken zum Server hochladen. Der Server kann Daten von Fahrzeugen über mehrere Fahrten sammeln und ein vereinheitlichtes Straßenmodell erzeugen. Beispielsweise kann der Server, wie nachstehend in Bezug auf 19 erörtert, eine Sparse-Karte mit dem vereinheitlichten Straßenmodell unter Verwendung der hochgeladenen Kurven und Orientierungsmarken erzeugen.
-
Der Server kann das Modell auch an Clients (beispielsweise Fahrzeuge) verteilen. Beispielsweise kann der Server die Sparse-Karte an ein oder mehrere Fahrzeuge verteilen. Der Server kann das Modell kontinuierlich oder periodisch aktualisieren, wenn er neue Daten von den Fahrzeugen empfängt. Beispielsweise kann der Server die neuen Daten verarbeiten, um festzustellen, ob die Daten Informationen aufweisen, die eine Aktualisierung oder die Erzeugung neuer Daten auf dem Server auslösen sollten. Der Server kann das aktualisierte Modell oder die Aktualisierungen zur Bereitstellung einer autonomen Fahrzeugnavigation an die Fahrzeuge verteilen.
-
Der Server kann ein oder mehrere Kriterien verwenden, um festzustellen, ob von den Fahrzeugen empfangene neue Daten eine Aktualisierung des Modells oder die Erzeugung neuer Daten auslösen sollten. Wenn die neuen Daten beispielsweise angeben, dass eine zuvor an einem spezifischen Ort erkannte Orientierungsmarke nicht mehr existiert oder durch eine andere Orientierungsmarke ersetzt wurde, kann der Server feststellen, dass die neuen Daten eine Aktualisierung des Modells auslösen sollten. Bei einem anderen Beispiel kann der Server, wenn die neuen Daten angeben, dass ein Straßensegment geschlossen wurde, und wenn dies durch von anderen Fahrzeugen empfangene Daten bestätigt wurde, feststellen, dass die neuen Daten eine Aktualisierung des Modells auslösen sollten.
-
Der Server kann das aktualisierte Modell (oder den aktualisierten Teil des Modells) an ein oder mehrere auf dem Straßensegment, mit dem die Aktualisierungen des Modells assoziiert sind, fahrende Fahrzeuge verteilen. Der Server kann das aktualisierte Modell auch an Fahrzeuge, die in Kürze auf dem Straßensegment fahren werden, oder an Fahrzeuge, deren geplante Fahrt das Straßensegment, mit dem die Aktualisierungen des Modells assoziiert sind, aufweist, verteilen. Beispielsweise kann der Server, während ein autonomes Fahrzeug entlang einem anderen Straßensegment fährt, bevor es das Straßensegment erreicht, mit dem eine Aktualisierung assoziiert ist, die Aktualisierungen oder das aktualisierte Modell an das autonome Fahrzeug weiterleiten, bevor das Fahrzeug das Straßensegment erreicht.
-
Gemäß einigen Ausführungsformen kann der ferne Server Fahrstrecken und Orientierungsmarken von mehreren Clients (beispielsweise Fahrzeugen, die entlang einem gemeinsamen Straßensegment fahren) sammeln. Der Server dann Kurven unter Verwendung von Orientierungsmarken vergleichen und ein durchschnittliches Straßenmodell auf der Grundlage der von den mehreren Fahrzeugen gesammelten Fahrstrecken erzeugen. Der Server kann auch einen Graphen von Straßen und den wahrscheinlichsten Weg an jedem Knoten oder jeder Verknüpfung des Straßensegments berechnen. Beispielsweise kann der ferne Server die Fahrstrecken ausrichten, um eine crowdgesourcte Sparse-Karte anhand der gesammelten Fahrstrecken zu erzeugen.
-
Der Server kann von mehreren Fahrzeugen, die entlang dem gemeinsamen Straßensegment gefahren sind, empfangene Orientierungsmarkeneigenschaften in der Art der Abstände zwischen einer Orientierungsmarke und einer anderen (beispielsweise einer vorhergehenden entlang dem Straßensegment), wie von mehreren Fahrzeugen gemessen, mitteln, um einen Bogenlängenparameter zu bestimmen und eine Lokalisation entlang dem Weg und eine Geschwindigkeitskalibrierung für jedes Client-Fahrzeug zu unterstützen. Der Server kann die von mehreren Fahrzeugen, die entlang dem gemeinsamen Straßensegment gefahren sind und dieselbe Orientierungsmarke erkannt haben, gemessenen physikalischen Abmessungen einer Orientierungsmarke mitteln. Die gemittelten physikalischen Abmessungen können zur Unterstützung einer Abstandsschätzung in der Art des Abstands zwischen dem Fahrzeug und der Orientierungsmarke verwendet werden. Der Server kann von mehreren Fahrzeugen, die entlang dem gemeinsamen Straßensegment gefahren sind und dieselbe Orientierungsmarke erkannt haben, gemessene laterale Positionen einer Orientierungsmarke (beispielsweise Position von der Fahrspur, in der die Fahrzeuge fahren, bis zur Orientierungsmarke) mitteln. Die gemittelte laterale Position kann zur Unterstützung einer Fahrspurzuweisung verwendet werden. Der Server kann die von mehreren Fahrzeugen, die entlang demselben Straßensegment gefahren sind und dieselbe Orientierungsmarke erkannt haben, gemessenen GPS-Koordinaten der Orientierungsmarke mitteln. Die gemittelten GPS-Koordinaten der Orientierungsmarke können zur Unterstützung einer globalen Lokalisierung oder Positionsbestimmung der Orientierungsmarke im Straßenmodell verwendet werden.
-
Gemäß einigen Ausführungsformen kann der Server Modelländerungen in der Art von Baustellen, Umleitungen, neuen Zeichen, einer Entfernung von Zeichen usw. auf der Grundlage von den Fahrzeugen empfangener Daten identifizieren. Der Server kann das Modell nach dem Empfang neuer Daten von den Fahrzeugen kontinuierlich oder periodisch oder sofort aktualisieren. Der Server kann Aktualisierungen am Modell oder das aktualisierte Modell an Fahrzeuge verteilen, um eine autonome Navigation bereitzustellen. Beispielsweise kann der Server, wie nachstehend weiter erörtert, crowdgesourcte Daten verwenden, um von Fahrzeugen erkannte „Geister“-Orientierungsmarken herauszufiltern.
-
Gemäß einigen Ausführungsformen kann der Server Fahrereingriffe während des autonomen Fahrens analysieren. Der Fahrer kann vom Fahrzeug zu der Zeit und am Ort, wo der Eingriff aufgetreten ist, empfangene Daten und/oder Daten, die vor der Zeit empfangen wurden, zu welcher der Eingriff aufgetreten ist, analysieren. Der Server kann gewisse Teile der Daten, die den Eingriff hervorgerufen haben oder in enger Beziehung damit stehen, identifizieren, beispielsweise Daten, die eine vorübergehende Fahrspurschließumgebung angeben, oder Daten, die einen Fußgänger auf der Straße angeben. Der Server kann das Modell auf der Grundlage der identifizierten Daten aktualisieren. Beispielsweise kann der Server eine oder mehrere im Modell gespeicherte Fahrstrecken modifizieren.
-
12 ist eine schematische Darstellung eines Systems, das Crowdsourcing verwendet, um eine Sparse-Karte zu erzeugen (und eine crowdgesourcte Sparse-Karte zu verteilen und unter ihrer Verwendung zu navigieren). 12 zeigt ein Straßensegment 1200, das eine oder mehrere Fahrspuren aufweist. Mehrere Fahrzeuge 1205, 1210, 1215, 1220 und 1225 können gleichzeitig oder zu verschiedenen Zeiten auf dem Straßensegment 1200 fahren (wenngleich in 12 dargestellt ist, dass sie gleichzeitig auf dem Straßensegment 1200 erscheinen). Wenigstens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 kann ein autonomes Fahrzeug sein. Aus Gründen der Einfachheit des vorliegenden Beispiels wird angenommen, dass alle Fahrzeuge 1205, 1210, 1215, 1220 und 1225 autonome Fahrzeuge sind.
-
Jedes Fahrzeug kann in anderen Ausführungsformen offenbarten Fahrzeugen (beispielsweise Fahrzeug 200) ähneln und Komponenten oder Vorrichtungen aufweisen, die in Vorrichtungen enthalten sind, die in anderen Ausführungsformen offenbart sind, oder mit diesen assoziiert sind. Jedes Fahrzeug kann mit einer Bildaufnahmevorrichtung oder Kamera (beispielsweise Bildaufnahmevorrichtung 122 oder Kamera 122) versehen sein. Jedes Fahrzeug kann durch ein oder mehrere Netze (beispielsweise über ein Mobilfunknetz und/oder das Internet usw.) durch Drahtloskommunikationswege 1235 mit einem fernen Server 1230 kommunizieren, wie durch die gestrichelten Linien angegeben ist. Jedes Fahrzeug kann Daten zum Server 1230 senden und Daten vom Server 1230 empfangen. Beispielsweise kann der Server 1230 Daten von mehreren zu verschiedenen Zeiten auf dem Straßensegment 1200 fahrenden Fahrzeugen sammeln und die gesammelten Daten verarbeiten, um ein Modell der autonomen Fahrzeugstraßennavigation zu erzeugen oder das Modell zu aktualisieren. Der Server 1230 kann das Modell der autonomen Fahrzeugstraßennavigation oder die Aktualisierung des Modells zu den Fahrzeugen senden, die Daten zum Server 1230 gesendet haben. Der Server 1230 kann das Modell der autonomen Fahrzeugstraßennavigation oder die Aktualisierung des Modells zu anderen Fahrzeugen, die später auf dem Straßensegment 1200 fahren, senden.
-
Wenn Fahrzeuge 1205, 1210, 1215, 1220 und 1225 auf dem Straßensegment 1200 fahren, können von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 gesammelte (beispielsweise erkannte, erfasste oder gemessene) Navigationsinformationen zum Server 1230 übertragen werden. Gemäß einigen Ausführungsformen können die Navigationsinformationen mit dem gemeinsamen Straßensegment 1200 assoziiert sein. Die Navigationsinformationen können eine mit jedem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 assoziierte Fahrstrecke aufweisen, wenn jedes Fahrzeug über das Straßensegment 1200 fährt. Gemäß einigen Ausführungsformen kann die Fahrstrecke auf der Grundlage von verschiedenen Sensoren und Vorrichtungen, die am Fahrzeug 1205 bereitgestellt sind, erfasster Daten rekonstruiert werden. Beispielsweise kann die Fahrstrecke auf der Grundlage von Beschleunigungsmesserdaten, Geschwindigkeitsdaten, Orientierungsmarkendaten, Straßengeometrie- oder -profildaten, Fahrzeugpositionsbestimmungsdaten und/oder Eigenbewegungsdaten rekonstruiert werden. Gemäß einigen Ausführungsformen kann die Fahrstrecke auf der Grundlage von Daten von Trägheitssensoren in der Art eines Beschleunigungsmessers und der durch einen Geschwindigkeitssensor erfassten Geschwindigkeit des Fahrzeugs 1205 rekonstruiert werden. Zusätzlich kann die Fahrstrecke gemäß einigen Ausführungsformen auf der Grundlage der erfassten Eigenbewegung der Kamera, wodurch eine dreidimensionale Translation und/oder dreidimensionale Rotationen (oder Rotationsbewegungen) angegeben werden können, bestimmt werden (beispielsweise durch einen Prozessor an Bord jedes der Fahrzeuge 1205, 1210, 1215, 1220 und 1225). Die Eigenbewegung der Kamera (und daher der Fahrzeugkarosserie) kann anhand einer Analyse eines oder mehrerer von der Kamera aufgenommener Bilder bestimmt werden.
-
Gemäß einigen Ausführungsformen kann die Fahrstrecke des Fahrzeugs 1205 durch einen an Bord des Fahrzeugs 1205 bereitgestellten Prozessor bestimmt werden und zum Server 1230 übertragen werden. Gemäß anderen Ausführungsformen kann der Server 1230 durch verschiedene Sensoren und Vorrichtungen, die im Fahrzeug 1205 bereitgestellt sind, erfasste Daten empfangen und die Fahrstrecke auf der Grundlage der vom Fahrzeug 1205 empfangenen Daten bestimmen.
-
Gemäß einigen Ausführungsformen können die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 zum Server 1230 übertragene Navigationsinformationen Daten in Bezug auf die Straßenoberfläche, die Straßengeometrie oder das Straßenprofil einschließen. Die Geometrie des Straßensegments 1200 kann die Fahrspurstruktur und/oder Orientierungsmarken einschließen. Die Fahrspurstruktur kann die Gesamtzahl der Fahrspuren des Straßensegments 1200, den Typ der Fahrspuren (beispielsweise Einbahn-Fahrspur, Zweibahn-Fahrspur, normale Fahrspur, Überholspur usw.), Markierungen auf Fahrspuren, die Breite von Fahrspuren usw. einschließen. Gemäß einigen Ausführungsformen können die Navigationsinformationen eine Fahrspurzuweisung, beispielsweise auf welcher von mehreren Fahrspuren ein Fahrzeug fährt, einschließen. Beispielsweise kann die Fahrspurzuweisung mit einem Zahlenwert „3“, der angibt, dass das Fahrzeug auf der dritten Fahrspur von links oder rechts fährt, assoziiert sein. Als anderes Beispiel kann die Fahrspurzuweisung mit einem Textwert „mittlere Fahrspur“, die angibt, dass das Fahrzeug auf der mittleren Fahrspur fährt, assoziiert sein.
-
Der Server 1230 kann die Navigationsinformationen auf einem nichtflüchtigen computerlesbaren Medium in der Art einer Festplatte, einer Diskette, eines Bands, eines Speichers usw. speichern. Der Server 1230 kann (beispielsweise durch einen im Server 1230 enthaltenen Prozessor) zumindest einen Teil eines Modells der autonomen Fahrzeugstraßennavigation für das gemeinsame Straßensegment 1200 auf der Grundlage der von den mehreren Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen erzeugen und das Modell als Teil einer Sparse-Karte speichern. Der Server 1230 kann eine Fahrstrecke in Zusammenhang mit jeder Fahrspur auf der Grundlage crowdgesourcter Daten (beispielsweise Navigationsinformationen) bestimmen, die von mehreren Fahrzeugen (beispielsweise 1205, 1210, 1215, 1220 und 1225), die zu verschiedenen Zeiten auf einer Fahrspur des Straßensegments gefahren sind, empfangen wurden. Der Server 1230 kann das Modell der autonomen Fahrzeugstraßennavigation oder einen Teil des Modells (beispielsweise einen aktualisierten Teil) auf der Grundlage mehrerer Fahrstrecken erzeugen, die auf der Grundlage der crowdgesourcten Navigationsdaten bestimmt wurden. Der Server 1230 kann das Modell oder den aktualisierten Teil des Modells zu einem oder mehreren auf dem Straßensegment 1200 fahrenden autonomen Fahrzeugen 1205, 1210, 1215, 1220 und 1225 oder anderen autonomen Fahrzeugen, die zu einer späteren Zeit auf dem Straßensegment fahren, übertragen, um ein existierendes Modell der autonomen Fahrzeugstraßennavigation, das in einem Navigationssystem der Fahrzeuge bereitgestellt ist, zu aktualisieren. Das Modell zur autonomen Fahrzeugstraßennavigation kann von den autonomen Fahrzeugen beim autonomen Navigieren entlang dem gemeinsamen Straßensegment 1200 verwendet werden.
-
Wie vorstehend erklärt, kann das Modell der autonomen Fahrzeugstraßennavigation in eine Sparse-Karte (beispielsweise die in 8 dargestellte Sparse-Karte 800) aufgenommen sein. Die Sparse-Karte 800 kann eine Sparse-Aufzeichnung von Daten in Bezug auf die Straßengeometrie und/oder Orientierungsmarken entlang einer Straße aufweisen, wodurch ausreichend Informationen zum Anleiten der autonomen Navigation eines autonomen Fahrzeugs bereitgestellt werden können, jedoch kein übermäßig großer Datenspeicher benötigt wird. Gemäß einigen Ausführungsformen kann das Modell der autonomen Fahrzeugstraßennavigation getrennt von der Sparse-Karte 800 gespeichert werden und Kartendaten von der Sparse-Karte 800 verwenden, wenn das Modell für die Navigation ausgeführt wird. Gemäß einigen Ausführungsformen kann das Modell der autonomen Fahrzeugstraßennavigation in der Sparse-Karte 800 enthaltene Kartendaten verwenden, um Zielfahrstrecken entlang dem Straßensegment 1200 zum Anleiten der autonomen Navigation autonomer Fahrzeuge 1205, 1210, 1215, 1220 und 1225 oder anderer Fahrzeuge, die entlang dem Straßensegment 1200 fahren, zu bestimmen. Wenn das Modell der autonomen Fahrzeugstraßennavigation beispielsweise durch einen in einem Navigationssystem des Fahrzeugs 1205 enthaltenen Prozessor ausgeführt wird, kann das Modell den Prozessor veranlassen, die auf der Grundlage der vom Fahrzeug 1205 empfangenen Navigationsinformationen bestimmten Fahrstrecken mit in der Sparse-Karte 800 enthaltenen vorgegebenen Fahrstrecken zu vergleichen, um den aktuellen Fahrkurs des Fahrzeugs 1205 zu validieren und/oder zu korrigieren.
-
Im Modell der autonomen Fahrzeugstraßennavigation kann die Geometrie eines Straßenmerkmals oder einer Zielfahrstrecke durch eine Kurve in einem dreidimensionalen Raum codiert werden. Gemäß einer Ausführungsform kann die Kurve ein dreidimensionaler Spline sein, der ein oder mehrere verbindende dreidimensionale Polynome aufweist. Wie Fachleute verstehen werden, kann ein Spline eine numerische Funktion sein, die durch eine Reihe von Polynomen zur Anpassung von Daten punktweise definiert ist. Ein Spline zum Anpassen der dreidimensionalen Geometriedaten der Straße kann einen linearen Spline (erster Ordnung), einen quadratischen Spline (zweiter Ordnung), einen kubischen Spline (dritter Ordnung) oder andere Splines (anderer Ordnungen) oder eine Kombination davon einschließen. Der Spline kann ein oder mehr dreidimensionale Polynome verschiedener Ordnungen, die Punktdaten der dreidimensionalen Geometriedaten der Straße verbinden (beispielsweise anpassen), aufweisen. Gemäß einigen Ausführungsformen kann das Modell der autonomen Fahrzeugstraßennavigation einen dreidimensionalen Spline aufweisen, der einer Zielfahrstrecke entlang einem gemeinsamen Straßensegment (beispielsweise Straßensegment 1200) oder einer Fahrspur des Straßensegments 1200 entspricht.
-
Wie vorstehend erklärt wurde, kann das in der Sparse-Karte enthaltene Modell der autonomen Fahrzeugstraßennavigation andere Informationen in der Art einer Identifikation wenigstens einer Orientierungsmarke entlang dem Straßensegment 1200 aufweisen. Die Orientierungsmarke kann innerhalb eines Gesichtsfelds einer an jedem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 installierten Kamera (beispielsweise Kamera 122) sichtbar sein. Gemäß einigen Ausführungsformen kann die Kamera 122 ein Bild einer Orientierungsmarke aufnehmen. Ein am Fahrzeug 1205 bereitgestellter Prozessor (beispielsweise Prozessor 180, 190 oder Verarbeitungseinheit 110) kann das Bild der Orientierungsmarke verarbeiten, um Identifikationsinformationen für die Orientierungsmarke zu extrahieren. Die Orientierungsmarken-Identifikationsinformationen anstelle eines tatsächlichen Bilds der Orientierungsmarke können in der Sparse-Karte 800 gespeichert werden. Die Orientierungsmarken-Identifikationsinformationen können viel weniger Speicherplatz als ein tatsächliches Bild erfordern. Andere Sensoren oder Systeme (beispielsweise das GPS-System) können auch gewisse Identifikationsinformationen der Orientierungsmarke (beispielsweise Position der Orientierungsmarke) bereitstellen. Die Orientierungsmarke kann wenigstens eines von einem Verkehrszeichen, einer Pfeilmarkierung, einer Fahrspurmarkierung, einer gestrichelten Fahrspurmarkierung, einer Ampel, einer Stopplinie, einem Richtungszeichen (beispielsweise einem Schnellstraßen-Richtungszeichen mit einem eine Richtung angebenden Pfeil, einem Schnellstraßenzeichen mit in verschiedene Richtungen oder zu verschiedenen Orten zeigenden Pfeilen), einer Orientierungsmarken-Signalstation oder einem Lampenmast einschließen. Eine Orientierungsmarken-Signalstation bezieht sich auf eine Vorrichtung (beispielsweise eine RFID-Vorrichtung), die entlang einem Straßensegment installiert ist und ein Signal zu einem an einem Fahrzeug installierten Empfänger sendet oder reflektiert, so dass, wenn das Fahrzeug von der Vorrichtung passiert wird, die vom Fahrzeug empfangene Signalstation und der Ort der Vorrichtung (beispielsweise anhand des GPS-Orts der Vorrichtung bestimmt) als Orientierungsmarke verwendet werden können, die in das Modell der autonomen Fahrzeugstraßennavigation und/oder die Sparse-Karte 800 aufzunehmen ist.
-
Die Identifikation wenigstens einer Orientierungsmarke kann die Position der wenigstens einen Orientierungsmarke einschließen. Die Position der Orientierungsmarke kann auf der Grundlage unter Verwendung von Sensorsystemen (beispielsweise globale Positionsbestimmungssysteme, trägheitsbasierte Positionsbestimmungssysteme, Orientierungsmarken-Signalstation usw.) in Zusammenhang mit den mehreren Fahrzeugen 1205, 1210, 1215, 1220 und 1225 ausgeführter Positionsmessungen bestimmt werden. Gemäß einigen Ausführungsformen kann die Position der Orientierungsmarke durch Mitteln der von Sensorsystemen an verschiedenen Fahrzeugen 1205, 1210, 1215, 1220 und 1225 durch mehrere Fahrten erkannten, gesammelten oder empfangenen Positionsmessungen bestimmt werden. Beispielsweise können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 Positionsmessdaten zum Server 1230 senden, der die Positionsmessungen mitteln kann, und die gemittelte Positionsmessung als Position der Orientierungsmarke verwenden. Die Position der Orientierungsmarke kann durch von Fahrzeugen in nachfolgenden Fahrten empfangene Messungen kontinuierlich verfeinert werden.
-
Die Identifikation der Orientierungsmarke kann die Größe der Orientierungsmarke einschließen. Der an einem Fahrzeug (beispielsweise 1205) bereitgestellte Prozessor kann die physikalische Größe der Orientierungsmarke auf der Grundlage der Analyse der Bilder schätzen. Der Server 1230 kann mehrere Schätzungen der physikalischen Größe derselben Orientierungsmarke von verschiedenen Fahrzeugen über verschiedene Fahrten empfangen. Der Server 1230 kann die verschiedenen Schätzungen mitteln, um die physikalische Größe der Orientierungsmarke zu erhalten, und diese Orientierungsmarkengröße im Straßenmodell speichern. Die Schätzung der physikalischen Größe kann verwendet werden, um ferner den Abstand des Fahrzeugs von der Orientierungsmarke zu bestimmen oder zu schätzen. Der Abstand zur Orientierungsmarke kann auf der Grundlage der aktuellen Geschwindigkeit des Fahrzeugs und eines Ausdehnungsmaßstabs auf der Grundlage der Position der in den Bildern erscheinenden Orientierungsmarke in Bezug auf den Ausdehnungsfokus der Kamera geschätzt werden. Beispielsweise kann der Abstand von der Orientierungsmarke durch Z = V*dt*R/D geschätzt werden, wobei V die Geschwindigkeit des Fahrzeugs ist, R der Abstand im Bild zwischen der Orientierungsmarke zur Zeit t1 und dem Ausdehnungsfokus ist und D die Abstandsänderung für die Orientierungsmarke im Bild von t1 bis t2 ist. dt repräsentiert (t2 - tl). Beispielsweise kann der Abstand von der Orientierungsmarke durch Z = V*dt*R/D geschätzt werden, wobei V die Geschwindigkeit des Fahrzeugs ist, R der Abstand im Bild zwischen der Orientierungsmarke und dem Ausdehnungsfokus ist, dt ein Zeitintervall ist und D der Bildversatz der Orientierungsmarke entlang der Epipolarlinie ist. Es können auch andere der vorstehenden Gleichung äquivalente Gleichungen in der Art von Z = V * ω/Δω für die Schätzung des Abstands von der Orientierungsmarke verwendet werden. Hierbei ist V die Fahrzeuggeschwindigkeit, ω eine Bildlänge (in der Art der Objektbreite) und Δω die Änderung dieser Bildlänge in einer Zeiteinheit.
-
Wenn die physikalische Größe der Orientierungsmarke bekannt ist, kann der Abstand von der Orientierungsmarke auch auf der Grundlage der folgenden Gleichung Z = f * W/ω bestimmt werden, wobei f die Brennweite ist, W die Größe der Orientierungsmarke ist (beispielsweise Höhe oder Breite) und ω die Anzahl der Pixel ist, wenn die Orientierungsmarke das Bild verlässt. Anhand der vorstehenden Gleichung kann eine Änderung des Abstands Z unter Verwendung von ΔZ = f * W * Δω / ω2 + f * ΔW/ω berechnet werden, wobei ΔW durch die Mittelung gegen null abfällt und wobei Δω die Anzahl der eine Begrenzungskästchengenauigkeit im Bild repräsentierenden Pixel ist. Ein die physikalische Größe der Orientierungsmarke schätzender Wert kann durch Mitteln mehrerer Beobachtungen auf der Serverseite berechnet werden. Der resultierende Fehler bei der Abstandsschätzung kann sehr klein sein. Es gibt zwei Fehlerquellen, die auftreten können, wenn die vorstehende Formel verwendet wird, nämlich ΔW und Δω. Ihr Beitrag zum Abstandsfehler ist durch ΔZ = f * W * Δω / ω2 + f * ΔW/ω gegeben. ΔW fällt jedoch durch Mitteln gegen null ab, so dass ΔZ durch Δω bestimmt ist (beispielsweise die Ungenauigkeit des Begrenzungskästchens im Bild).
-
Für Orientierungsmarken unbekannter Abmessungen kann der Abstand von der Orientierungsmarke durch Verfolgen von Merkmalspunkten an der Orientierungsmarke zwischen aufeinander folgenden Frames geschätzt werden. Beispielsweise können gewisse an einem Geschwindigkeitsbegrenzungszeichen auftretende Merkmale zwischen zwei oder mehr Bildframes verfolgt werden. Auf der Grundlage dieser verfolgten Merkmale kann eine Abstandsverteilung pro Merkmalspunkt erzeugt werden. Die Abstandsschätzung kann aus der Abstandsverteilung extrahiert werden. Beispielsweise kann der häufigste in der Abstandsverteilung auftretende Abstand als Abstandsschätzung verwendet werden. Bei einem anderen Beispiel kann der Durchschnitt der Abstandsverteilung als Abstandsschätzung verwendet werden.
-
13 zeigt ein durch mehrere dreidimensionale Splines 1301, 1302 und 1303 repräsentiertes beispielhaftes Modell der autonomen Fahrzeugstraßennavigation. Die in 13 dargestellten Kurven 1301, 1302 und 1303 dienen nur erläuternden Zwecken. Jeder Spline kann ein oder mehrere dreidimensionale Polynome, die mehrere der Datenpunkte 1310 verbinden, aufweisen. Jedes Polynom kann ein Polynom ersten Grades, ein Polynom zweiten Grades, ein Polynom dritten Grades oder eine Kombination jeglicher geeigneter Polynome unterschiedlicher Grade sein. Jeder Datenpunkt 1310 kann mit den von Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen assoziiert werden. Gemäß einigen Ausführungsformen kann jeder Datenpunkt 1310 mit Daten in Bezug auf Orientierungsmarken (beispielsweise Größe, Ort und Identifikationsinformationen von Orientierungsmarken) und/oder Straßensignaturprofilen (beispielsweise Straßengeometrie, Straßenrauigkeitsprofil, Straßenkrummungsprofil, Straßenbreitenprofil) assoziiert werden. Gemäß einigen Ausführungsformen können einige Datenpunkte 1310 mit Daten in Bezug auf Orientierungsmarken assoziiert werden und andere mit Daten in Bezug auf Straßensignaturprofile assoziiert werden.
-
14 zeigt von fünf verschiedenen Fahrten empfangene Rohortsdaten 1410 (beispielsweise GPS-Daten). Eine Fahrt kann von einer anderen Fahrt verschieden sein, falls sie von verschiedenen Fahrzeugen zur selben Zeit, vom selben Fahrzeug zu verschiedenen Zeiten oder von verschiedenen Fahrzeugen zu verschiedenen Zeiten geschehen ist. Um Fehlern in den Ortsdaten 1410 und abweichenden Orten von Fahrzeugen innerhalb derselben Fahrspur (beispielsweise kann ein Fahrzeug näher zur linken Seite einer Fahrspur fahren als ein anderes) Rechnung zu tragen, kann der Server 1230 unter Verwendung einer oder mehrerer statistischer Techniken, um festzustellen, ob Variationen in den Rohortsdaten 1410 tatsächliche Divergenzen oder statistische Fehler repräsentieren, ein Kartenskelett 1420 erzeugen. Jeder Weg innerhalb des Skeletts 1420 kann zu den Rohdaten 1410, die den Weg gebildet haben, zurückverfolgt werden. Beispielsweise ist der Weg zwischen A und B innerhalb des Skeletts 1420 mit Rohdaten 1410 von den Fahrten 2, 3, 4 und 5, jedoch nicht von Fahrt 1, verknüpft. Das Skelett 1420 kann nicht detailliert genug sein, um für die Navigation eines Fahrzeugs verwendet zu werden (beispielsweise weil es anders als die vorstehend beschriebenen Splines Fahrten von mehreren Fahrspuren auf derselben Straße kombiniert), jedoch nützliche topologische Informationen bereitstellen und für die Definition von Kreuzungen verwendet werden.
-
15 zeigt ein Beispiel, durch das zusätzliche Einzelheiten für eine Sparse-Karte innerhalb eines Segments eines Kartenskeletts (beispielsweise Segment A bis B innerhalb des Skeletts 1420) erzeugt werden können. Wie in 15 dargestellt ist, können die Daten (beispielsweise Eigenbewegungsdaten, Straßenmarkierungsdaten und dergleichen) als Funktion der Position S (oder S1 oder S2) entlang der Fahrt dargestellt werden. Der Server 1230 kann Orientierungsmarken für die Sparse-Karte durch Identifizieren eindeutiger Übereinstimmungen zwischen Orientierungsmarken 1501, 1503 und 1505 der Fahrt 1510 und Orientierungsmarken 1507 und 1509 der Fahrt 1520 identifizieren. Ein solcher Vergleichsalgorithmus kann zur Identifikation der Orientierungsmarken 1511, 1513 und 1515 führen. Fachleute werden jedoch erkennen, dass auch andere Vergleichsalgorithmen verwendet werden können. Beispielsweise kann anstelle eines eindeutigen Vergleichs oder in Kombination damit eine Wahrscheinlichkeitsoptimierung verwendet werden. Der Server 1230 kann die Fahrten zur Ausrichtung der verglichenen Orientierungsmarken longitudinal ausrichten. Beispielsweise kann der Server 1230 eine Fahrt (beispielsweise Fahrt 1520) als Referenzfahrt wählen und dann die eine oder die mehreren anderen Fahrten (beispielsweise Fahrt 1510) für die Ausrichtung verschieben und/oder elastisch strecken.
-
16 zeigt ein Beispiel ausgerichteter Orientierungsmarkendaten zur Verwendung in einer Sparse-Karte. Beim Beispiel aus 16 umfasst die Orientierungsmarke 1610 ein Straßenschild. Das Beispiel aus 16 zeigt ferner Daten von mehreren Fahrten 1601, 1603, 1605, 1607, 1609, 1611 und 1613. Beim Beispiel aus 16 bestehen die Daten von Fahrt 1613 aus einer „Geister“-Orientierungsmarke und kann der Server 1230 sie als solche identifizieren, weil keine der Fahrten 1601, 1603, 1605, 1607, 1609 und 1611 eine Identifikation einer Orientierungsmarke in der Nähe der identifizierten Orientierungsmarke in der Fahrt 1613 aufweist. Dementsprechend kann der Server 1230 mögliche Orientierungsmarken akzeptieren, wenn das Verhältnis zwischen Bildern, in denen die Orientierungsmarke erscheint, und Bildern, in denen die Orientierungsmarke nicht erscheint, eine Schwelle überschreitet, und/oder mögliche Orientierungsmarken ablehnen, wenn das Verhältnis zwischen Bildern, in denen die Orientierungsmarke nicht erscheint, und Bildern, in denen die Orientierungsmarke erscheint, eine Schwelle überschreitet.
-
17 zeigt ein System 1700 zur Erzeugung von Fahrtdaten, die zum Crowdsourcing einer Sparse-Karte verwendet werden können. Wie in 17 dargestellt ist, kann das System 1700 eine Kamera 1701 und eine lokalisierende Vorrichtung 1703 (beispielsweise einen GPS-Lokalisierer) aufweisen. Die Kamera 1701 und die lokalisierende Vorrichtung 1703 können an einem Fahrzeug (beispielsweise einem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225) montiert sein. Die Kamera 1701 kann mehrere Daten mehrerer Typen, beispielsweise Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder dergleichen erzeugen. Die Kameradaten und die Ortsdaten können in Fahrtsegmente 1705 segmentiert sein. Beispielsweise können die Fahrtsegmente 1705 jeweils Kameradaten und Ortsdaten von weniger als 1 km einer Fahrt aufweisen.
-
Gemäß einigen Ausführungsformen kann das System 1700 Redundanzen in Fahrtsegmenten 1705 beseitigen. Falls eine Orientierungsmarke beispielsweise in mehreren Bildern von der Kamera 1701 erscheint, kann das System 1700 die redundanten Daten entfernen, so dass die Fahrtsegmente 1705 nur eine Kopie des Orts der Orientierungsmarke und jegliche Metadaten in Bezug auf diese enthalten. Bei einem weiteren Beispiel kann das System 1700, falls eine Fahrspurmarkierung in mehreren Bildern von der Kamera 1701 erscheint, die redundanten Daten entfernen, so dass die Fahrtsegmente 1705 nur eine Kopie des Orts der Fahrspurmarkierung und jegliche Metadaten in Bezug auf diese enthalten.
-
Das System 1700 weist auch einen Server (beispielsweise den Server 1230) auf. Der Server 1230 kann Fahrtsegmente 1705 vom Fahrzeug empfangen und die Fahrtsegmente 1705 zu einer einzigen Fahrt 1707 rekombinieren. Eine solche Anordnung kann eine Verringerung von Bandbreitenanforderungen ermöglichen, wenn Daten zwischen dem Fahrzeug und dem Server übertragen werden, während es dem Server auch ermöglicht wird, Daten in Bezug auf eine gesamte Fahrt zu speichern.
-
18 zeigt das System 1700 aus 17 als weiter für das Crowdsourcing einer Sparse-Karte ausgelegt. Wie in 17 dargestellt ist, weist das System 1700 ein Fahrzeug 1810, das Fahrtdaten beispielsweise unter Verwendung einer Kamera (die beispielsweise Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder dergleichen erzeugt) erfasst, und eine lokalisierende Vorrichtung (beispielsweise einen GPS-Lokalisierer) auf. Wie in 17 dargestellt ist, segmentiert das Fahrzeug 1810 die gesammelten Daten in Fahrtsegmente (in 18 als „DS1 1“, „DS2 1“, „DSN 1“ dargestellt). Der Server 1230 empfängt dann die Fahrtsegmente und rekonstruiert eine Fahrt (in 18 als „Fahrt 1“ dargestellt) anhand der empfangenen Segmente.
-
Wie in 18 ferner dargestellt ist, empfängt das System 1700 auch Daten von zusätzlichen Fahrzeugen. Beispielsweise erfasst das Fahrzeug 1820 auch Fahrtdaten beispielsweise unter Verwendung einer Kamera (die beispielsweise Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder dergleichen erzeugt) und einer lokalisierenden Vorrichtung (beispielsweise eines GPS-Lokalisierers). Ähnlich dem Fahrzeug 1810 segmentiert das Fahrzeug 1820 die gesammelten Daten in Fahrtsegmente (in 18 als „DS 1 2“, „DS2 2“, „DSN 2“ dargestellt). Der Server 1230 empfängt dann die Fahrtsegmente und rekonstruiert eine Fahrt (in 18 als „Fahrt 2“ dargestellt) anhand der empfangenen Segmente. Es kann eine beliebige Anzahl zusätzlicher Fahrzeuge verwendet werden. Beispielsweise weist 18 auch „KRAFTFAHRZEUG N“ auf, das Fahrtdaten erfasst, sie in Fahrtsegmente unterteilt (in 18 als „DS 1 N“, „DS2 N“, „DSN N“ dargestellt) und sie zur Rekonstruktion zu einer Fahrt (in 18 als „Fahrt N“ dargestellt) zum Server 1230 sendet.
-
Wie in 18 dargestellt ist, kann der Server 1230 eine Sparse-Karte (als „KARTE“ dargestellt) unter Verwendung der von mehreren Fahrzeugen (beispielsweise „KRAFTFAHRZEUG 1“ (auch als Fahrzeug 1810 bezeichnet), „KRAFTFAHRZEUG 2“ (auch als Fahrzeug 1820 bezeichnet) und „KRAFTFAHRZEUG N“) gesammelten Fahrten (beispielsweise „Fahrt 1“, „Fahrt 2“ und „Fahrt N“) bilden.
-
19 ist ein Flussdiagramm eines beispielhaften Prozesses 1900 zur Erzeugung einer Sparse-Karte zur autonomen Fahrzeugnavigation entlang einem Straßensegment. Der Prozess 1900 kann durch eine oder mehrere im Server 1230 enthaltene Verarbeitungsvorrichtungen ausgeführt werden.
-
In Prozess 1900 können mehrere Bilder empfangen werden, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment durchfahren (Schritt 1905). Der Server 1230 kann Bilder von in ein oder mehrere der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 aufgenommenen Kameras empfangen. Beispielsweise kann die Kamera 122 ein oder mehrere Bilder der Umgebung um das Fahrzeug 1205 aufnehmen, wenn das Fahrzeug 1205 entlang dem Straßensegment 1200 fährt. Gemäß einigen Ausführungsformen kann der Server 1230 auch abgespeckte Bilddaten empfangen, aus denen durch einen Prozessor am Fahrzeug 1205 Redundanzen beseitigt wurden, wie vorstehend in Bezug auf 17 erörtert.
-
in Prozess 1900 kann ferner auf der Grundlage der mehreren Bilder wenigstens eine Linienrepräsentation eines sich entlang dem Straßensegment erstreckenden Straßenoberflächenmerkmals identifiziert werden (Schritt 1910). Jede Linienrepräsentation kann einen im Wesentlichen dem Straßenoberflächenmerkmal entsprechenden Weg entlang dem Straßensegment repräsentieren. Beispielsweise kann der Server 1230 die von der Kamera 122 empfangenen Umgebungsbilder analysieren, um einen Straßenrand oder eine Fahrspurmarkierung zu identifizieren und eine Fahrstrecke entlang dem Straßensegment 1200 in Zusammenhang mit dem Straßenrand oder der Fahrspurmarkierung zu bestimmen. Gemäß einigen Ausführungsformen kann die Fahrstrecke (oder die Linienrepräsentation) einen Spline, eine Polynomrepräsentation oder eine Kurve aufweisen. Der Server 1230 kann die vom Fahrzeug 1205 gefahrene Fahrstrecke auf der Grundlage in Schritt 1905 empfangener Kameraeigenbewegungen (beispielsweise dreidimensionaler Translations- und/oder dreidimensionaler Rotationsbewegungen) bestimmen.
-
In Prozess 1900 können auch auf der Grundlage der mehreren Bilder mehrere Orientierungsmarken in Zusammenhang mit dem Straßensegment identifiziert werden (Schritt 1910). Beispielsweise kann der Server 1230 die von der Kamera 122 empfangenen Umgebungsbilder analysieren, um eine oder mehrere Orientierungsmarken in der Art von Straßenschildern entlang dem Straßensegment 1200 zu identifizieren. Der Server 1230 kann die Orientierungsmarken unter Verwendung einer Analyse der mehreren Bilder, die erfasst wurden, als ein oder mehrere Fahrzeuge das Straßensegment durchfahren haben, identifizieren. Zum Ermöglichen eines Crowdsourcings kann die Analyse Regeln in Bezug auf das Akzeptieren und Zurückweisen möglicher Orientierungsmarken in Zusammenhang mit dem Straßensegment aufweisen. Beispielsweise können bei der Analyse mögliche Orientierungsmarken akzeptiert werden, wenn das Verhältnis zwischen Bildern, in denen die Orientierungsmarke erscheint, und Bildern, in denen die Orientierungsmarke nicht erscheint, eine Schwelle überschreitet, und/oder mögliche Orientierungsmarken zurückgewiesen werden, wenn das Verhältnis zwischen Bildern, in denen die Orientierungsmarke nicht erscheint, und Bildern, in denen die Orientierungsmarke erscheint, eine Schwelle überschreitet.
-
Der Prozess 1900 kann auch andere vom Server 1230 ausgeführte Operationen oder Schritte aufweisen. Beispielsweise können die Navigationsinformationen eine Zielfahrstrecke, entlang derer Fahrzeuge entlang einem Straßensegment fahren sollen, einschließen und können im Prozess 1900 durch den Server 1230 Fahrzeugfahrstrecken in Bezug auf mehrere Fahrzeuge, die auf dem Straßensegment fahren, geclustert werden und die Zielfahrstrecke auf der Grundlage der geclusterten Fahrzeugfahrstrecken bestimmt werden, wie nachstehend in weiteren Einzelheiten erörtert wird. Beim Clustern von Fahrzeugfahrstrecken können durch den Server 1230 die mehreren Fahrstrecken in Bezug auf die auf dem Straßensegment fahrenden Fahrzeuge auf der Grundlage des absoluten Steuerkurses von Fahrzeugen und/oder der Fahrspurzuweisung der Fahrzeuge in mehrere Cluster unterteilt werden. Bei der Erzeugung der Zielfahrstrecke können die geclusterten Fahrstrecken durch den Server 1230 gemittelt werden. Bei einem weiteren Beispiel können beim Prozess 1900 in Schritt 1905 empfangene Daten ausgerichtet werden. Andere vom Server 1230 ausgeführte Prozesse oder Schritte, wie vorstehend beschrieben, können auch in Prozess 1900 enthalten sein.
-
Die offenbarten Systeme und Verfahren können andere Merkmale aufweisen. Beispielsweise können die offenbarten Systeme lokale Koordinaten anstelle globaler Koordinaten verwenden. Für das autonome Fahren können einige Systeme Daten in Weltkoordinaten präsentieren. Beispielsweise können Längen- und Breitenkoordinaten auf der Erdoberfläche verwendet werden. Zur Verwendung der Karte für das Lenken kann das Host-Fahrzeug seine Position und Orientierung in Bezug auf die Karte bestimmen. Es erscheint natürlich, eine an Bord befindliche GPS-Vorrichtung zu verwenden, um das Fahrzeug auf der Karte zu positionieren und die Rotationstransformation zwischen dem Karosseriereferenzrahmen und dem Weltreferenzrahmen (beispielsweise Nord, Ost und Abwärts) zu finden. Sobald der Karosseriereferenzrahmen mit dem Kartenreferenzrahmen ausgerichtet wurde, kann die gewünschte Route im Karosseriereferenzrahmen ausgedrückt werden und können die Lenkbefehle berechnet oder erzeugt werden.
-
Die offenbarten Systeme und Verfahren können eine autonome Fahrzeugnavigation (beispielsweise Lenksteuerung) mit Modellen mit einem geringen Footprint ermöglichen, welche durch die autonomen Fahrzeuge selbst ohne die Hilfe kostspieliger Überwachungsgeräte gesammelt werden können. Zur Unterstützung der autonomen Navigation (beispielsweise Lenkanwendungen) kann das Straßenmodell eine Sparse-Karte mit der Geometrie der Straße, seiner Fahrspurstruktur und Orientierungsmarken, die verwendet werden können, um den Ort oder die Position von Fahrzeugen entlang einer im Modell enthaltenen Fahrstrecke zu bestimmen, aufweisen. Wie vorstehend erörtert, kann die Erzeugung der Sparse-Karte durch einen fernen Server ausgeführt werden, der mit auf der Straße fahrenden Fahrzeugen kommuniziert und Daten von den Fahrzeugen empfängt. Die Daten können gemessene Daten, auf der Grundlage der gemessenen Daten rekonstruierte Fahrstrecken und/oder empfohlene Fahrstrecken, die modifizierte rekonstruierte Fahrstrecken repräsentieren können, einschließen. Wie nachstehend erörtert, kann der Server das Modell zu den Fahrzeugen oder anderen Fahrzeugen, die später auf der Straße fahren, zurück übertragen, um die autonome Navigation zu unterstützen.
-
20 zeigt ein Blockdiagramm des Servers 1230. Der Server 1230 kann eine Kommunikationseinheit 2005 aufweisen, die sowohl Hardwarekomponenten (beispielsweise Kommunikationssteuerschaltungen, Switches und eine Antenne) als auch Softwarekomponenten (beispielsweise Kommunikationsprotokolle, Computercodes) aufweisen kann. Beispielsweise kann die Kommunikationseinheit 2005 wenigstens eine Netzschnittstelle aufweisen. Der Server 1230 kann durch die Kommunikationseinheit 2005 mit den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 kommunizieren. Beispielsweise kann der Server 1230 von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 übertragene Navigationsinformationen durch die Kommunikationseinheit 2005 empfangen. Der Server 1230 kann das Modell der autonomen Fahrzeugstraßennavigation durch die Kommunikationseinheit 2005 an ein oder mehrere autonome Fahrzeuge verteilen.
-
Der Server 1230 kann wenigstens ein nichtflüchtiges Speichermedium 2010 in der Art einer Festplatte, einer Diskette, eines Bands usw. aufweisen. Die Speichervorrichtung 1410 kann dafür ausgelegt sein, Daten in der Art von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangener Navigationsinformationen und/oder des Modells der autonomen Fahrzeugstraßennavigation, das der Server 1230 auf der Grundlage der Navigationsinformationen erzeugt, zu speichern. Die Speichervorrichtung 2010 kann dafür ausgelegt sein, jegliche andere Informationen in der Art einer Sparse-Karte (beispielsweise der vorstehend in Bezug auf 8 erörterten Sparse-Karte 800) zu speichern.
-
Zusätzlich zur Speichervorrichtung 2010 oder anstelle dieser kann der Server 1230 einen Speicher 2015 aufweisen. Der Speicher 2015 kann dem Speicher 140 oder 150 ähneln oder von diesem verschieden sein. Der Speicher 2015 kann ein nichtflüchtiger Speicher in der Art eines Flash-Speichers, eines Direktzugriffsspeichers usw. sein. Der Speicher 2015 kann dafür ausgelegt sein, Daten in der Art von Computercodes oder Befehlen, die von einem Prozessor (beispielsweise dem Prozessor 2020) ausführbar sind, Kartendaten (beispielsweise Daten der Sparse-Karte 800), das Modell der autonomen Fahrzeugstraßennavigation und/oder von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangene Navigationsinformationen zu speichern.
-
Der Server 1230 kann wenigstens eine Verarbeitungsvorrichtung 2020 aufweisen, die dafür ausgelegt ist, im Speicher 2015 gespeicherte Computercodes oder Befehle auszuführen, um verschiedene Funktionen auszuführen. Beispielsweise kann die Verarbeitungsvorrichtung 2020 die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen analysieren und das Modell der autonomen Fahrzeugstraßennavigation auf der Grundlage der Analyse erzeugen. Die Verarbeitungsvorrichtung 2020 kann die Kommunikationseinheit 1405 steuern, um das Modell der autonomen Fahrzeugstraßennavigation an ein oder mehrere autonome Fahrzeuge (beispielsweise eines oder mehrere der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 oder ein beliebiges Fahrzeug, das zu einer späteren Zeit entlang dem Straßensegment 1200 fährt) zu verteilen. Die Verarbeitungsvorrichtung 2020 kann dem Prozessor 180, 190 oder der Verarbeitungseinheit 110 ähneln oder davon verschieden sein.
-
21 zeigt ein Blockdiagramm des Speichers 2015, der Computercode oder Befehle zur Ausführung einer oder mehrerer Operationen für die Erzeugung eines Straßennavigationsmodells zur Verwendung bei der autonomen Fahrzeugnavigation speichern kann. Wie in 21 dargestellt ist, kann der Speicher 2015 ein oder mehrere Module zur Ausführung der Operationen für die Verarbeitung von Fahrzeugnavigationsinformationen speichern. Beispielsweise kann der Speicher 2015 ein Modellerzeugungsmodul 2105 und ein Modellverteilungsmodul 2110 aufweisen. Der Prozessor 2020 kann die in einem der Module 2105 und 2110, die im Speicher 2015 enthalten sind, gespeicherten Befehle ausführen.
-
Das Modellerzeugungsmodul 2105 kann Befehle speichern, die, wenn sie vom Prozessor 2020 ausgeführt werden, auf der Grundlage von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangener Navigationsinformationen wenigstens einen Teil eines Modells der autonomen Fahrzeugstraßennavigation für ein gemeinsames Straßensegment (beispielsweise Straßensegment 1200) erzeugen können. Beispielsweise kann der Prozessor 2020 bei der Erzeugung des Modells der autonomen Fahrzeugstraßennavigation Fahrzeugfahrstrecken entlang dem gemeinsamen Straßensegment 1200 in verschiedene Cluster unterteilen. Der Prozessor 2020 kann auf der Grundlage der geclusterten Fahrzeugfahrstrecken für jeden der verschiedenen Cluster eine Zielfahrstrecke entlang dem gemeinsamen Straßensegment 1200 bestimmen. Bei einer solchen Operation kann eine mittlere oder durchschnittliche Fahrstrecke der geclusterten Fahrzeugfahrstrecken (beispielsweise durch Mitteln die geclusterten Fahrzeugfahrstrecken repräsentierender Daten) in jedem Cluster gefunden werden. Gemäß einigen Ausführungsformen kann die Fahrzeugfahrstrecke mit einer einzigen Fahrspur des gemeinsamen Straßensegments 1200 assoziiert werden.
-
Das Straßenmodell und/oder die Sparse-Karte können Fahrstrecken in Zusammenhang mit einem Straßensegment speichern. Diese Fahrstrecken können als Zielfahrstrecken bezeichnet werden, welche autonomen Fahrzeugen zur autonomen Navigation bereitgestellt werden. Die Zielfahrstrecken können von mehreren Fahrzeugen empfangen werden oder auf der Grundlage von mehreren Fahrzeugen empfangener tatsächlicher Fahrstrecken oder empfohlener Fahrstrecken (tatsächlicher Fahrstrecken mit einigen Modifikationen) erzeugt werden. Die im Straßenmodell oder in der Sparse-Karte enthaltenen Zielfahrstrecken können kontinuierlich mit von anderen Fahrzeugen empfangenen neuen Fahrstrecken aktualisiert (beispielsweise gemittelt) werden.
-
Auf einem Straßensegment fahrende Fahrzeuge können Daten durch verschiedene Sensoren sammeln. Die Daten können Orientierungsmarken, Straßensignaturprofil, Fahrzeugbewegung (beispielsweise Beschleunigungsmesserdaten, Geschwindigkeitsdaten) und Fahrzeugposition (beispielsweise GPS-Daten) einschließen und entweder die tatsächlichen Fahrstrecken selbst rekonstruieren, oder die Daten können zu einem Server gesendet werden, der die tatsächlichen Fahrstrecken für die Fahrzeuge rekonstruiert. Gemäß einigen Ausführungsformen können die Fahrzeuge Daten in Bezug auf eine Fahrstrecke (beispielsweise eine Kurve in einem beliebigen Referenzrahmen), Orientierungsmarkendaten und eine Fahrspurzuweisung entlang dem Fahrtweg zum Server 1230 übertragen. Verschiedene in mehreren Fahrten entlang demselben Straßensegment fahrende Fahrzeuge können unterschiedliche Fahrstrecken aufweisen. Der Server 1230 kann Routen oder Fahrstrecken in Zusammenhang mit jeder Fahrspur anhand der von Fahrzeugen empfangenen Fahrstrecken durch einen Clusterbildungsprozess identifizieren.
-
22 zeigt einen Prozess zum Clustern von Fahrzeugfahrstrecken in Zusammenhang mit Fahrzeugen 1205, 1210, 1215, 1220 und 1225 zur Bestimmung einer Zielfahrstrecke für das gemeinsame Straßensegment (beispielsweise Straßensegment 1200). Die Zielfahrstrecke oder mehrere Zielfahrstrecken, die durch den Clusterbildungsprozess bestimmt wurden, können in das Modell der autonomen Fahrzeugstraßennavigation oder die Sparse-Karte 800 aufgenommen werden. Gemäß einigen Ausführungsformen können entlang dem Straßensegment 1200 fahrende Fahrzeuge 1205, 1210, 1215, 1220 und 1225 mehrere Fahrstrecken 2200 zum Server 1230 übertragen. Gemäß einigen Ausführungsformen kann der Server 1230 Fahrstrecken auf der Grundlage von Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangener Orientierungsmarken-, Straßengeometrie- und Fahrzeugbewegungsinformationen erzeugen. Zur Erzeugung des Modells der autonomen Fahrzeugstraßennavigation kann der Server 1230 Fahrzeugfahrstrecken 1600 in mehrere Cluster 2205, 2210, 2215, 2220, 2225 und 2230 unterteilen, wie in 22 dargestellt ist.
-
Das Clustern kann unter Verwendung verschiedener Kriterien ausgeführt werden. Gemäß einigen Ausführungsformen können alle Fahrten in einem Cluster in Bezug auf den absoluten Steuerkurs entlang dem Straßensegment 1200 ähnlich sein. Der absolute Steuerkurs kann anhand von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangener GPS-Signalen erhalten werden. Gemäß einigen Ausführungsformen kann der absolute Steuerkurs unter Verwendung einer Koppelnavigation erhalten werden. Koppelnavigation kann, wie Fachleute auf dem Gebiet verstehen werden, verwendet werden, um die aktuelle Position und daher den Steuerkurs der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 unter Verwendung einer zuvor bestimmten Position, einer geschätzten Geschwindigkeit usw. zu bestimmen. Durch den absoluten Steuerkurs geclusterte Fahrstrecken können für die Identifikation von Routen entlang den Straßen nützlich sein.
-
Gemäß einigen Ausführungsformen können alle Fahrten in einem Cluster in Bezug auf die Fahrspurzuweisung (beispielsweise in derselben Fahrspur vor und nach einer Abzweigung) entlang der Fahrt auf dem Straßensegment 1200 ähnlich sein. Durch Fahrspurzuweisung geclusterte Fahrstrecken können zur Identifikation von Fahrspuren entlang den Straßen nützlich sein. Gemäß einigen Ausführungsformen können beide Kriterien (absoluter Steuerkurs und Fahrspurzuweisung) für das Clustern verwendet werden.
-
In jedem Cluster 2205, 2210, 2215, 2220, 2225 und 2230 können Fahrstrecken gemittelt werden, um eine Zielfahrstrecke in Zusammenhang mit dem spezifischen Cluster zu erhalten. Beispielsweise können die Fahrstrecken von mehreren Fahrten in Zusammenhang mit demselben Fahrspurcluster gemittelt werden. Die gemittelte Fahrstrecke kann eine Zielfahrstrecke in Zusammenhang mit einer spezifischen Fahrspur sein. Zur Mittelung eines Clusters von Fahrstrecken kann der Server 1230 einen Referenzrahmen einer beliebigen Fahrstrecke C0 auswählen. Für alle Fahrstrecken (C1, ..., Cn) kann der Server eine starre Transformation finden, die Ci auf C0 abbildet, wobei i = 1, 2, ..., n ist und n eine positive natürliche Zahl ist, die der Gesamtzahl der im Cluster enthaltenen Fahrstrecken entspricht. Der Server 1230 kann eine mittlere Kurve oder Fahrstrecke im CO-Referenzrahmen berechnen.
-
Gemäß einigen Ausführungsformen können die Orientierungsmarken eine zwischen verschiedenen Fahrten passende Bogenlänge definieren, die für die Ausrichtung von Fahrstrecken mit Fahrspuren verwendet werden kann. Gemäß einigen Ausführungsformen können Fahrspurmarkierungen vor und nach einer Abzweigung für die Ausrichtung von Fahrstrecken mit Fahrspuren verwendet werden.
-
Zur Zusammenstellung von Fahrspuren anhand der Fahrstrecken kann der Server 1230 einen Referenzrahmen einer beliebigen Fahrspur wählen. Der Server 1230 kann teilweise überlappende Fahrspuren auf den ausgewählten Referenzrahmen abbilden. Der Server 1230 kann die Abbildung fortsetzen, bis alle Fahrspuren im selben Referenzrahmen liegen. Fahrspuren, die einander nahe liegen, können ausgerichtet werden, als ob sie dieselbe Fahrspur wären, und später lateral verschoben werden.
-
Entlang dem Straßensegment erkannte Orientierungsmarken können in den gemeinsamen Referenzrahmen abgebildet werden, und zwar zuerst auf dem Fahrspurniveau und dann auf dem Abzweigungsniveau. Beispielsweise können dieselben Orientierungsmarken mehrere Male von mehreren Fahrzeugen bei mehreren Fahrten erkannt werden. Die in verschiedenen Fahrten empfangenen Daten in Bezug auf dieselben Orientierungsmarken können etwas verschieden sein. Solche Daten können gemittelt und in denselben Referenzrahmen in der Art des C0-Referenzrahmens abgebildet werden. Zusätzlich oder alternativ kann die Varianz der in mehreren Fahrten empfangenen Daten derselben Orientierungsmarke berechnet werden.
-
Gemäß einigen Ausführungsformen kann jede Fahrspur des Straßensegments 120 mit einer Zielfahrstrecke und gewissen Orientierungsmarken assoziiert werden. Die Zielfahrstrecke oder mehrere solche Zielfahrstrecken können in das Modell der autonomen Fahrzeugstraßennavigation aufgenommen werden, das später von anderen entlang demselben Straßensegment 1200 fahrenden autonomen Fahrzeugen verwendet werden kann. Von Fahrzeugen 1205, 1210, 1215, 1220 und 1225, während sie entlang dem Straßensegment 1200 fahren, identifizierte Orientierungsmarken können in Zusammenhang mit der Zielfahrstrecke aufgezeichnet werden. Die Daten der Zielfahrstrecken und Orientierungsmarken können kontinuierlich oder periodisch durch von anderen Fahrzeugen in nachfolgenden Fahrten empfangene neue Daten aktualisiert werden.
-
Für die Lokalisierung eines autonomen Fahrzeugs können die offenbarten Systeme und Verfahren ein erweitertes Kalman-Filter verwenden. Der Ort des Fahrzeugs kann auf der Grundlage dreidimensionaler Positionsdaten und/oder dreidimensionaler Orientierungsdaten durch eine Vorhersage des künftigen Orts vor dem aktuellen Ort des Fahrzeugs durch Integration der Eigenbewegung bestimmt werden. Die Lokalisierung des Fahrzeugs kann durch Bildbeobachtungen von Orientierungsmarken korrigiert oder angepasst werden. Wenn das Fahrzeug beispielsweise eine Orientierungsmarke innerhalb eines von der Kamera aufgenommenen Bilds erkennt, kann die Orientierungsmarke mit einer bekannten innerhalb des Straßenmodells oder der Sparse-Karte 800 gespeicherten Orientierungsmarke verglichen werden. Die bekannte Orientierungsmarke kann einen im Straßenmodell und/oder in der Sparse-Karte 800 gespeicherten bekannten Ort (beispielsweise GPS-Daten) zusammen mit einer darin gespeicherten Zielfahrstrecke aufweisen. Auf der Grundlage der aktuellen Geschwindigkeit und von Bildern der Orientierungsmarke kann der Abstand zwischen dem Fahrzeug und der Orientierungsmarke geschätzt werden. Der Ort des Fahrzeugs entlang einer Zielfahrstrecke kann auf der Grundlage des Abstands zwischen der Orientierungsmarke und dem bekannten Ort der Orientierungsmarke (im Straßenmodell oder in der Sparse-Karte 800 gespeichert) eingestellt werden. Es kann angenommen werden, dass die im Straßenmodell und/oder in der Sparse-Karte 800 gespeicherten Positions-/Ortsdaten (beispielsweise Mittelwerte von mehreren Fahrten) der Orientierungsmarke genau sind.
-
Gemäß einigen Ausführungsformen kann das offenbarte System ein in einer geschlossenen Regelschleife arbeitendes Untersystem bilden, worin eine Schätzung der sechs Freiheitsgrade des Orts des Fahrzeugs (beispielsweise dreidimensionale Positionsdaten plus dreidimensionale Orientierungsdaten) für die Navigation (beispielsweise das Lenken des Lenkrads) des autonomen Fahrzeugs, um einen gewünschten Punkt (im Speicher beispielsweise 1,3 Sekunden voraus) zu erreichen, verwendet werden kann. Anhand der Lenkung und der tatsächlichen Navigation gemessene Daten können wiederum für die Schätzung der sechs Freiheitsgrade des Orts verwendet werden.
-
Gemäß einigen Ausführungsformen können Masten entlang einer Straße in der Art von Lampenmasten und Strom- oder Kabelleitungsmasten als Orientierungsmarken zur Lokalisierung der Fahrzeuge verwendet werden. Andere Orientierungsmarken in der Art von Verkehrszeichen, Ampeln, Pfeilen auf der Straße, Stopplinien sowie statischer Merkmale oder Signaturen eines Objekts entlang dem Straßensegment können auch als Orientierungsmarken zur Lokalisierung des Fahrzeugs verwendet werden. Wenn Masten zur Lokalisierung verwendet werden, kann die x-Beobachtung der Masten (d. h. der Sichtwinkel vom Fahrzeug) anstelle der y-Beobachtung (d. h. des Abstands vom Mast) verwendet werden, weil die unteren Teile der Masten verdeckt sein können und manchmal nicht in der Straßenebene liegen.
-
23 zeigt ein Navigationssystem für ein Fahrzeug, das zur autonomen Navigation unter Verwendung einer crowdgesourcten Sparse-Karte verwendet werden kann. Zur Veranschaulichung ist das Fahrzeug als Fahrzeug 1205 bezeichnet. Das in 23 dargestellte Fahrzeug kann auch ein anderes hier offenbartes Fahrzeug sein, einschließlich beispielsweise der Fahrzeuge 1210, 1215, 1220 und 1225 sowie des Fahrzeugs 200, wie in anderen Ausführungsformen gezeigt. Wie in 12 dargestellt ist, kann das Fahrzeug 1205 mit dem Server 1230 kommunizieren. Das Fahrzeug 1205 kann eine Bildaufnahmevorrichtung 122 (beispielsweise eine Kamera 122) aufweisen. Das Fahrzeug 1205 kann ein Navigationssystem 2300 aufweisen, das dafür ausgelegt ist, dem Fahrzeug 1205 Navigationsanleitungen für das Fahren auf einer Straße (beispielsweise Straßensegment 1200) bereitzustellen. Das Fahrzeug 1205 kann auch andere Sensoren in der Art eines Geschwindigkeitssensors 2320 und eines Beschleunigungsmessers 2325 aufweisen. Der Geschwindigkeitssensor 2320 kann dafür ausgelegt sein, die Geschwindigkeit des Fahrzeugs 1205 zu erfassen. Der Beschleunigungsmesser 2325 kann dafür ausgelegt sein, eine Beschleunigung oder Verzögerung des Fahrzeugs 1205 zu erfassen. Das in 23 dargestellte Fahrzeug 1205 kann ein autonomes Fahrzeug sein, und das Navigationssystem 2300 kann zum Bereitstellen von Navigationsanleitungen für das autonome Fahren verwendet werden. Alternativ kann das Fahrzeug 1205 auch ein nicht autonomes personengesteuertes Fahrzeug sein und kann das Navigationssystem 2300 dennoch zum Bereitstellen von Navigationsanleitungen verwendet werden.
-
Das Navigationssystem 2300 kann eine Kommunikationseinheit 2305 aufweisen, die dafür ausgelegt ist, über den Kommunikationsweg 1235 mit dem Server 1230 zu kommunizieren. Das Navigationssystem 2300 kann auch eine GPS-Einheit 2310 aufweisen, die dafür ausgelegt ist, GPS-Signale zu empfangen und zu verarbeiten. Das Navigationssystem 2300 kann ferner wenigstens einen Prozessor 2315 aufweisen, der dafür ausgelegt ist, Daten in der Art von GPS-Signalen, Kartendaten von der Sparse-Karte 800 (die auf einer an Bord des Fahrzeugs 1205 bereitgestellten Speichervorrichtung gespeichert und/oder vom Server 1230 empfangen werden kann), der von einem Straßenprofilsensor 2330 erfassten Straßengeometrie, von der Kamera 122 aufgenommenen Bildern und/oder einem vom Server 1230 empfangenen Modell der autonomen Fahrzeugstraßennavigation zu verarbeiten. Der Straßenprofilsensor 2330 kann verschiedene Vorrichtungstypen zum Messen verschiedener Straßenprofiltypen in der Art der Straßenoberflächenrauigkeit, Straßenbreite, Straßenhöhe, Straßenkrümmung usw. aufweisen. Beispielsweise kann der Straßenprofilsensor 2330 eine Vorrichtung aufweisen, welche die Bewegung einer Federung des Fahrzeugs 2305 misst, um das Straßenrauigkeitsprofil abzuleiten. Gemäß einigen Ausführungsformen kann der Straßenprofilsensor 2330 Radarsensoren zum Messen des Abstands zwischen dem Fahrzeug 1205 und Straßenseiten (beispielsweise einer Barriere auf den Straßenseiten), um dadurch die Breite der Straße zu messen, aufweisen. Gemäß einigen Ausführungsformen kann der Straßenprofilsensor 2330 eine Vorrichtung aufweisen, die dafür ausgelegt ist, die Erhebung und Absenkung der Straße zu messen. Gemäß einigen Ausführungsformen kann der Straßenprofilsensor 2330 eine Vorrichtung aufweisen, die dafür ausgelegt ist, die Straßenkrümmung zu messen. Beispielsweise kann eine Kamera (beispielsweise die Kamera 122 oder eine andere Kamera) verwendet werden, um Bilder der Straße, die Straßenkrummungen zeigen, aufzunehmen. Das Fahrzeug 1205 kann solche Bilder verwenden, um Straßenkrümmungen zu erkennen.
-
Der wenigstens eine Prozessor 2315 kann programmiert werden, um von der Kamera 122 wenigstens ein Umgebungsbild in Zusammenhang mit dem Fahrzeug 1205 zu empfangen. Der wenigstens eine Prozessor 2315 kann das wenigstens eine Umgebungsbild analysieren, um Navigationsinformationen in Bezug auf das Fahrzeug 1205 zu bestimmen. Die Navigationsinformationen können eine Fahrstrecke in Bezug auf die Fahrt des Fahrzeugs 1205 entlang dem Straßensegment 1200 einschließen. Der wenigstens eine Prozessor 2315 kann die Fahrstrecke auf der Grundlage von Bewegungen der Kamera 122 (und daher des Fahrzeugs) in der Art dreidimensionaler Translations- und Rotationsbewegungen bestimmen. Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor 2315 die Translations- und Rotationsbewegungen der Kamera 122 auf der Grundlage der Analyse mehrerer von der Kamera 122 erfasster Bilder bestimmen. Gemäß einigen Ausführungsformen können die Navigationsinformationen Fahrspurzuweisungsinformationen (beispielsweise in welcher Fahrspur das Fahrzeug 1205 entlang dem Straßensegment 1200 fährt) einschließen. Die vom Fahrzeug 1205 zum Server 1230 gesendeten Navigationsinformationen können vom Server 1230 verwendet werden, um ein Modell der autonomen Fahrzeugstraßennavigation zu erzeugen und/oder zu aktualisieren, welches vom Server 1230 für die Bereitstellung von Anleitungen zur autonomen Navigation des Fahrzeugs 1205 zum Fahrzeug 1205 zurückgesendet werden kann.
-
Der wenigstens eine Prozessor 2315 kann auch programmiert werden, die Navigationsinformationen vom Fahrzeug 1205 zum Server 1230 zu übertragen. Gemäß einigen Ausführungsformen können die Navigationsinformationen zusammen mit Straßeninformationen zum Server 1230 übertragen werden. Die Straßenortsinformationen können das von der GPS-Einheit 2310 empfangene GPS-Signal, Orientierungsmarkeninformationen, Straßengeometrie- und/oder Fahrspurinformationen usw. einschließen. Der wenigstens eine Prozessor 2315 kann vom Server 1230 das Modell der autonomen Fahrzeugstraßennavigation oder einen Teil des Modells empfangen. Das vom Server 1230 empfangene Modell der autonomen Fahrzeugstraßennavigation kann wenigstens eine Aktualisierung auf der Grundlage der vom Fahrzeug 1205 zum Server 1230 gesendeten Navigationsinformationen aufweisen. Der vom Server 1230 zum Fahrzeug 1205 gesendete Teil des Modells kann einen aktualisierten Teil des Modells aufweisen. Der wenigstens eine Prozessor 2315 kann wenigstens ein Navigationsmanöver (beispielsweise Lenken in der Art des Vornehmens einer Richtungsänderung, Bremsen, Beschleunigen, Überholen eines anderen Fahrzeugs usw.) des Fahrzeugs 1205 auf der Grundlage des empfangenen Modells der autonomen Fahrzeugstraßennavigation oder des aktualisierten Teils des Modells hervorrufen.
-
Der wenigstens eine Prozessor 2315 kann dafür ausgelegt sein, mit verschiedenen im Fahrzeug 1205 enthaltenen Sensoren und Komponenten zu kommunizieren, einschließlich der Kommunikationseinheit 1705, der GPS-Einheit 2315, der Kamera 122, des Geschwindigkeitssensors 2320, des Beschleunigungsmessers 2325 und des Straßenprofilsensors 2330. Der wenigstens eine Prozessor 2315 kann Informationen oder Daten von verschiedenen Sensoren und Komponenten sammeln und die Informationen oder Daten über die Kommunikationseinheit 2305 zum Server 1230 übertragen. Alternativ oder zusätzlich können auch verschiedene Sensoren oder Komponenten des Fahrzeugs 1205 mit dem Server 1230 kommunizieren und von den Sensoren oder Komponenten gesammelte Daten oder Informationen zum Server 1230 übertragen.
-
Gemäß einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 miteinander kommunizieren und Navigationsinformationen miteinander teilen, so dass wenigstens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 das Modell der autonomen Fahrzeugstraßennavigation unter Verwendung von Crowdsourcing beispielsweise auf der Grundlage von anderen Fahrzeugen geteilter Informationen erzeugen kann. Gemäß einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 Navigationsinformationen miteinander teilen und kann jedes Fahrzeug sein eigenes im Fahrzeug bereitgestelltes Modell der autonomen Fahrzeugstraßennavigation aktualisieren. Gemäß einigen Ausführungsformen kann wenigstens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 (beispielsweise das Fahrzeug 1205) als Hub-Fahrzeug wirken. Der wenigstens eine Prozessor 2315 des Hub-Fahrzeugs (beispielsweise des Fahrzeugs 1205) kann einige oder alle der vom Server 1230 ausgeführten Funktionen ausführen. Beispielsweise kann der wenigstens eine Prozessor 2315 des Hub-Fahrzeugs mit anderen Fahrzeugen kommunizieren und Navigationsinformationen von anderen Fahrzeugen empfangen. Der wenigstens eine Prozessor 2315 des Hub-Fahrzeugs kann das Modell der autonomen Fahrzeugstraßennavigation oder eine Aktualisierung des Modells auf der Grundlage der von anderen Fahrzeugen empfangenen geteilten Informationen erzeugen. Der wenigstens eine Prozessor 2315 des Hub-Fahrzeugs kann das Modell der autonomen Fahrzeugstraßennavigation oder die Aktualisierung des Modells zu anderen Fahrzeugen senden, um Anleitungen zur autonomen Navigation bereitzustellen.
-
Navigation auf der Grundlage von Sparse-Karten
-
Wie zuvor erörtert, kann das die Sparse-Karte 800 aufweisende Modell der autonomen Fahrzeugstraßennavigation mehrere kartographierte Fahrspurmarkierungen und mehrere kartographierte Objekte/Merkmale in Zusammenhang mit einem Straßensegment aufweisen. Wie nachstehend in weiteren Einzelheiten erörtert wird, können diese kartographierten Fahrspurmarkierungen, Objekte und Merkmale verwendet werden, wenn das autonome Fahrzeug navigiert. Beispielsweise können die kartographierten Objekte und Merkmale gemäß einigen Ausführungsformen verwendet werden, um ein Host-Fahrzeug in Bezug auf die Karte (beispielsweise in Bezug auf eine kartographierte Zielfahrstrecke) zu lokalisieren. Die kartographierten Fahrspurmarkierungen können (beispielsweise als Prüfung) verwendet werden, um eine laterale Position und/oder Orientierung in Bezug auf eine geplante oder Zielfahrstrecke zu bestimmen. Mit diesen Positionsinformationen kann das autonome Fahrzeug in der Lage sein, die Fahrtrichtung anzupassen, so dass sie mit der Richtung einer Zielfahrstrecke an der bestimmten Position übereinstimmt.
-
Das Fahrzeug 200 kann dafür ausgelegt sein, Fahrspurmarkierungen in einem gegebenen Straßensegment zu erkennen. Das Straßensegment kann j egliche Markierungen auf einer Straße zum Anleiten von Fahrzeugverkehr aufweisen. Beispielsweise können die Fahrspurmarkierungen den Rand einer Fahrspur markierende kontinuierliche oder gestrichelte Linien sein. Die Fahrspurmarkierungen können auch Doppellinien in der Art durchgezogener Doppellinien, gestrichelter Doppellinien oder einer Kombination durchgezogener und gestrichelter Linien, wodurch beispielsweise angegeben wird, ob ein Überholen in einer angrenzenden Fahrspur erlaubt ist, einschließen. Die Fahrspurmarkierungen können auch Schnellstraßeneinfahrt- und Ausfahrtmarkierungen, die beispielsweise eine Verzögerungsspur für eine Ausfahrtrampe angeben, oder gepunktete Linien, die angeben, dass eine Fahrspur nur abbiegt oder endet, einschließen. Die Markierungen können ferner eine Arbeitszone, eine vorübergehende Fahrspurverschiebung, einen Fahrweg durch eine Abzweigung, einen Mittelstreifen, eine Fahrspur für spezielle Zwecke (beispielsweise eine Fahrradspur, eine Fahrgemeinschaftsspur usw.) oder andere verschiedenartige Markierungen (beispielsweise Fußgängerüberweg, Bodenschwelle, Eisenbahnkreuzung, Stopplinie usw.) angeben.
-
Das Fahrzeug 200 kann Kameras in der Art der in der Bilderfassungseinheit 120 enthaltenen Bildaufnahmevorrichtungen 122 und 124 verwenden, um Bilder der umgebenden Fahrspurmarkierungen aufzunehmen. Das Fahrzeug 200 kann die Bilder analysieren, um Punktorte in Zusammenhang mit den Fahrspurmarkierungen auf der Grundlage innerhalb eines oder mehrerer der aufgenommenen Bilder identifizierter Merkmale zu erfassen. Diese Punktorte können zu einem Server hochgeladen werden, um die Fahrspurmarkierungen in der Sparse-Karte 800 zu repräsentieren. Abhängig von der Position und vom Gesichtsfeld der Kamera können Fahrspurmarkierungen für beide Seiten des Fahrzeugs gleichzeitig anhand eines einzigen Bilds erkannt werden. Gemäß anderen Ausführungsformen können verschiedene Kameras verwendet werden, um Bilder auf mehreren Seiten des Fahrzeugs aufzunehmen. Statt tatsächliche Bilder der Fahrspurmarkierungen hochzuladen, können die Markierungen als Spline oder Punktreihen in der Sparse-Karte 800 gespeichert werden, wodurch die Größe der Sparse-Karte 800 und/oder der Daten, die durch das Fahrzeug fern hochgeladen werden müssen, verringert werden kann.
-
Die 24A - 24D zeigen beispielhafte Punktorte, die vom Fahrzeug 200 erkannt werden können, um jeweilige Fahrspurmarkierungen zu repräsentieren. Ähnlich den vorstehend beschriebenen Orientierungsmarken kann das Fahrzeug 200 verschiedene Bilderkennungsalgorithmen oder -software verwenden, um Punktorte innerhalb eines aufgenommenen Bilds zu identifizieren. Beispielsweise kann das Fahrzeug 200 eine Reihe von Randpunkten, Eckpunkten oder verschiedenen anderen Punktorten in Zusammenhang mit einer bestimmten Fahrspurmarkierung erkennen. 24A zeigt eine durchgezogene Fahrspurmarkierung 2410, die vom Fahrzeug 200 erkannt werden kann. Die Fahrspurmarkierung 2410 kann den durch eine durchgezogene weiße Linie repräsentierten Außenrand einer Straße repräsentieren. Wie in 24A dargestellt ist, kann das Fahrzeug 200 dafür ausgelegt sein, mehrere Randortpunkte 2411 entlang der Fahrspurmarkierung zu erkennen. Die Ortspunkte 2411 können gesammelt werden, um die Fahrspurmarkierung in Intervallen zu repräsentieren, die ausreichen, um eine kartographierte Fahrspurmarkierung in der Sparse-Karte zu erzeugen. Beispielsweise kann die Fahrspurmarkierung durch einen Punkt pro Meter des erkannten Rands, einen Punkt alle fünf Meter des erkannten Rands oder in einem anderen geeigneten Abstand repräsentiert werden. Gemäß einigen Ausführungsformen kann der Abstand durch andere Faktoren statt durch festgelegte Intervalle bestimmt werden, beispielsweise auf der Grundlage von Punkten, an denen das Fahrzeug 200 den höchsten Vertrauensrang des Orts der erkannten Punkte hat. Wenngleich 24A Randortpunkte an einem Innenrand der Fahrspurmarkierung 2410 zeigt, können Punkte auf dem Außenrand der Linie oder entlang beiden Rändern gesammelt werden. Ferner können, wenngleich in 24A eine einzige Linie dargestellt ist, ähnliche Randpunkte für eine durchgezogene Doppellinie erkannt werden. Beispielsweise können die Punkte 2411 entlang einem Rand einer oder beider der durchgezogenen Linien erkannt werden.
-
Das Fahrzeug 200 kann Fahrspurmarkierungen auch abhängig vom Typ oder der Form der Fahrspurmarkierung auf andere Weise repräsentieren. 24B zeigt eine beispielhafte gestrichelte Fahrspurmarkierung 2420, die vom Fahrzeug 200 erkannt werden kann. Statt wie in 24A Randpunkte zu identifizieren, kann das Fahrzeug eine Reihe von Eckpunkten 2421 erkennen, die Ecken der Fahrspurstriche repräsentieren, um die gesamte Grenze des Striches zu definieren. Wenngleich 24B zeigt, dass jede Ecke einer gegebenen Strichmarkierung lokalisiert wird, kann das Fahrzeug 200 eine Teilmenge der in der Figur dargestellten Punkte erkennen oder hochladen. Beispielsweise kann das Fahrzeug 200 den vorderen Rand oder die vordere Ecke einer gegebenen Strichmarkierung erkennen oder die beiden Eckpunkte, die dem Inneren der Fahrspur am nächsten liegen, erkennen. Ferner kann nicht jede Strichmarkierung erfasst werden, beispielsweise kann das Fahrzeug 200 Punkte, die eine Probe von Strichmarkierungen (beispielsweise jede zweite, dritte, fünfte usw.) oder Strichmarkierungen in einem vordefinierten Abstand (beispielsweise jeden Meter, alle fünf Meter, alle 10 Meter usw.) repräsentieren, erfassen und/oder aufzeichnen. Eckpunkte können auch für ähnliche Fahrspurmarkierungen in der Art von Markierungen, die zeigen, dass eine Fahrspur für eine Ausfahrtrampe vorgesehen ist, dass eine bestimmte Fahrspur endet, oder andere verschiedene Fahrspurmarkierungen, die erkennbare Eckpunkte aufweisen können, erkannt werden. Eckpunkte können auch für Fahrspurmarkierungen erkannt werden, die aus doppelt gestrichelten Linien oder einer Kombination durchgezogener und gestrichelter Linien bestehen.
-
Gemäß einigen Ausführungsformen können die zum Server hochgeladenen Punkte zur Erzeugung der kartographierten Fahrspurmarkierungen neben den erkannten Randpunkten oder Eckpunkten andere Punkte repräsentieren. 24C zeigt eine Reihe von Punkten, die eine Mittellinie einer gegebenen Fahrspurmarkierung repräsentieren können. Beispielsweise kann die kontinuierliche Fahrspur 2410 durch Mittellinienpunkte 2441 entlang einer Mittellinie 2440 der Fahrspurmarkierung repräsentiert werden. Gemäß einigen Ausführungsformen kann das Fahrzeug 200 dafür ausgelegt sein, diese Mittelpunkte unter Verwendung verschiedener Bilderkennungstechniken in der Art faltender neuronaler Netze (CNN), einer skaleninvarianten Merkmalstransformation (SIFT), Histogramm-orientierter-Gradienten(HOG)-Merkmale oder anderer Techniken zu erkennen. Alternativ kann das Fahrzeug 200 andere Punkte in der Art in 24A dargestellter Randpunkte 2411 erkennen und Mittellinienpunkte 2441 berechnen, beispielsweise durch Erkennen von Punkten entlang jedem Rand und Bestimmen eines Mittelpunkts zwischen den Randpunkten. Ähnlich kann die gestrichelte Fahrspurmarkierung 2420 durch Mittellinienpunkte 2451 entlang einer Mittellinie 2450 der Fahrspurmarkierung repräsentiert werden. Die Mittellinienpunkte können sich am Rand eines Strichs, wie in 24C dargestellt, oder an verschiedenen anderen Stellen entlang der Mittellinie befinden. Beispielsweise kann jeder Strich durch einen einzigen Punkt in der geometrischen Mitte des Strichs repräsentiert werden. Die Punkte können auch in einem vorgegebenen Intervall entlang der Mittellinie (beispielsweise jeden Meter, alle 5 Meter, alle 10 Meter usw.) beabstandet sein. Die Mittellinienpunkte 2451 können direkt durch das Fahrzeug 200 erkannt oder auf der Grundlage anderer erkannter Referenzpunkte in der Art der Eckpunkte 2421, wie in 24B dargestellt, berechnet werden. Eine Mittellinie kann auch verwendet werden, um andere Fahrspurmarkierungstypen in der Art einer Doppellinie unter Verwendung ähnlicher Techniken wie vorstehend erwähnt zu repräsentieren.
-
Gemäß einigen Ausführungsformen kann das Fahrzeug 200 andere Merkmale in der Art eines Scheitelpunkts zwischen zwei schneidenden Fahrspurmarkierungen repräsentierende Punkte identifizieren. 24D zeigt einen Schnittpunkt zwischen zwei Fahrspurmarkierungen 2460 und 2465 repräsentierende beispielhafte Punkte. Das Fahrzeug 200 kann einen Scheitelpunkt 2466, der einen Schnitt zwischen den beiden Fahrspurmarkierungen repräsentiert, berechnen. Beispielsweise kann eine der Fahrspurmarkierungen 2460 oder 2465 einen Zugkreuzungsbereich oder einen anderen Kreuzungsbereich im Straßensegment repräsentieren. Wenngleich dargestellt ist, dass die Fahrspurmarkierungen 2460 und 2465 einander senkrecht kreuzen, können verschiedene andere Konfigurationen erkannt werden. Beispielsweise können die Fahrspurmarkierungen 2460 und 2465 einander unter anderen Winkeln kreuzen oder können eine oder beide der Fahrspurmarkierungen am Scheitelpunkt 2466 enden. Ähnliche Techniken können auch auf Schnitte zwischen gestrichelten oder anderen Fahrspurmarkierungstypen angewendet werden. Zusätzlich zum Scheitelpunkt 2466 können auch verschiedene andere Punkte 2467 erkannt werden, wodurch weitere Informationen über die Orientierung der Fahrspurmarkierungen 2460 und 2465 bereitgestellt werden.
-
Das Fahrzeug 200 kann reale Koordinaten mit jedem erkannten Punkt der Fahrspurmarkierung assoziieren. Beispielsweise können Ortsidentifizierer erzeugt werden, die eine Koordinate für jeden Punkt aufweisen, die zur Kartographierung der Fahrspurmarkierung zu einem Server hochzuladen sind. Die Ortsidentifizierer können ferner andere identifizierende Informationen über die Punkte, einschließlich ob der Punkt einen Eckpunkt, einen Randpunkt, einen Mittelpunkt usw. repräsentiert, einschließen. Das Fahrzeug 200 kann daher dafür ausgelegt sein, eine reale Position jedes Punkts auf der Grundlage einer Analyse der Bilder zu bestimmen. Beispielsweise kann das Fahrzeug 200 andere Merkmale im Bild in der Art der verschiedenen vorstehend beschriebenen Orientierungsmarken erkennen, um die reale Position der Fahrspurmarkierungen zu lokalisieren. Hierbei kann der Ort der Fahrspurmarkierungen im Bild in Bezug auf die erkannte Orientierungsmarke bestimmt werden oder die Position des Fahrzeugs auf der Grundlage der erkannten Orientierungsmarke bestimmt werden und dann der Abstand zwischen dem Fahrzeug (oder der Zielfahrstrecke des Fahrzeugs) und der Fahrspurmarkierung bestimmt werden. Wenn keine Orientierungsmarke verfügbar ist, kann der Ort der Fahrspurmarkierungspunkte in Bezug auf eine auf der Grundlage einer Koppelnavigation bestimmte Position des Fahrzeugs bestimmt werden. Die in den Ortsidentifizierern enthaltenen realen Koordinaten können als absolute Koordinaten (beispielsweise Breiten-/Längenkoordinaten) oder in Bezug auf andere Merkmale, beispielsweise auf der Grundlage einer Längenposition entlang einer Zielfahrstrecke und eines lateralen Abstands von der Zielfahrstrecke, repräsentiert werden. Die Ortsidentifizierer können dann zu einem Server zur Erzeugung der kartographierten Fahrspurmarkierungen im Navigationsmodell (in der Art der Sparse-Karte 800) hochgeladen werden. Gemäß einigen Ausführungsformen kann der Server einen Spline bilden, der die Fahrspurmarkierungen eines Straßensegments repräsentiert. Alternativ kann das Fahrzeug 200 den Spline erzeugen und ihn zum Server hochladen, um ihn im Navigationsmodell aufzuzeichnen.
-
24E zeigt ein beispielhaftes Navigationsmodell oder eine beispielhafte Sparse-Karte für ein entsprechendes Straßensegment, das kartographierte Fahrspurmarkierungen aufweist. Die Sparse-Karte kann eine Zielfahrstrecke 2475, derer ein Fahrzeug entlang einem Straßensegment folgen soll, aufweisen. Wie vorstehend beschrieben, kann die Zielfahrstrecke 2475 einen idealen Weg repräsentieren, den ein Fahrzeug nehmen soll, während es entlang dem entsprechenden Straßensegment fährt, oder es kann sich an anderer Stelle auf der Straße befinden (beispielsweise einer Mittellinie der Straße usw.). Die Zielfahrstrecke 2475 kann in den verschiedenen vorstehend beschriebenen Verfahren beispielsweise auf der Grundlage einer Aggregation (beispielsweise einer gewichteten Kombination) von zwei oder mehr rekonstruierten Fahrstrecken dasselbe Straßensegment durchfahrender Fahrzeuge berechnet werden.
-
Gemäß einigen Ausführungsformen kann die Zielfahrstrecke gleichermaßen für alle Fahrzeugtypen und für alle Straßen-, Fahrzeug- und/oder Umgebungsbedingungen erzeugt werden. Gemäß anderen Ausführungsformen können jedoch auch verschiedene andere Faktoren oder Variablen bei der Erzeugung der Zielfahrstrecke berücksichtigt werden. Eine andere Zielfahrstrecke kann für andere Fahrzeugtypen (beispielsweise ein privates Kraftfahrzeug, einen leichten Lastwagen und einen Lastzug) erzeugt werden. Beispielsweise kann für ein kleines privates Kraftfahrzeug eine Zielfahrstrecke erzeugt werden, die engere Krümmungsradien aufweist als für einen größeren Sattelschlepper. Gemäß einigen Ausführungsformen können auch Straßen-, Fahrzeug- und Umgebungsbedingungen berücksichtigt werden. Beispielsweise kann für andere Straßenbedingungen (beispielsweise nass, verschneit, vereist, trocken usw.), Fahrzeugbedingungen (beispielsweise Reifenzustand oder geschätzter Reifenzustand, Bremszustand oder geschätzter Bremszustand, Restkraftstoffmenge usw.) oder Umgebungsfaktoren (beispielsweise Tageszeit, Sichtbarkeit, Wetter usw.) eine andere Zielfahrstrecke erzeugt werden. Die Zielfahrstrecke kann auch von einem oder mehreren Aspekten oder Merkmalen eines jeweiligen Straßensegments (beispielsweise Geschwindigkeitsbegrenzung, Häufigkeit und Größe von Kurven, Steigung usw.) abhängen. Gemäß einigen Ausführungsformen können auch verschiedene Benutzereinstellungen verwendet werden, um die Zielfahrstrecke zu bestimmen, wie ein festgelegter Fahrmodus (beispielsweise gewünschte Fahraggressivität, wirtschaftlicher Modus usw.).
-
Die Sparse-Karte kann auch Fahrspurmarkierungen entlang dem Straßensegment repräsentierende kartographierte Fahrspurmarkierungen 2470 und 2480 aufweisen. Die kartographierten Fahrspurmarkierungen können durch mehrere Ortsidentifizierer 2471 und 2481 repräsentiert werden. Wie vorstehend beschrieben, können die Ortsidentifizierer Orte in realen Koordinaten von Punkten in Zusammenhang mit einer erkannten Fahrspurmarkierung aufweisen. Ähnlich der Zielfahrstrecke im Modell können die Fahrspurmarkierungen auch Höhendaten aufweisen und als Kurve im dreidimensionalen Raum repräsentiert werden. Beispielsweise kann die Kurve ein dreidimensionale Polynome eines geeigneten Grads verbindender Spline sein und auf der Grundlage der Ortsidentifizierer berechnet werden. Die kartographierten Fahrspurmarkierungen können auch andere Informationen oder Metadaten über die Fahrspurmarkierung in der Art eines Identifizierers des Typs der Fahrspurmarkierung (beispielsweise zwischen zwei Fahrspuren mit der gleichen Fahrtrichtung, zwischen zwei Fahrspuren entgegengesetzter Fahrtrichtungen, Straßenrand usw.) und/oder anderer Eigenschaften der Fahrspurmarkierung (beispielsweise durchgezogen, gestrichelt, Einzellinie, Doppellinie, gelb, weiß usw.) einschließen. Gemäß einigen Ausführungsformen können die kartographierten Fahrspurmarkierungen innerhalb des Modells beispielsweise unter Verwendung von Crowdsourcing-Techniken kontinuierlich aktualisiert werden. Dasselbe Fahrzeug kann während mehrerer Gelegenheiten des Abfahrens desselben Straßensegments Ortsidentifizierer hochladen, oder Daten können von mehreren zu verschiedenen Zeiten entlang dem Straßensegment fahrenden Fahrzeugen (in der Art von 1205, 1210, 1215, 1220 und 1225) ausgewählt werden. Die Sparse-Karte 800 kann dann auf der Grundlage von den Fahrzeugen empfangener und im System gespeicherter nachfolgender Ortsidentifizierer aktualisiert oder verfeinert werden. Wenn die kartographierten Fahrspurmarkierungen aktualisiert und verfeinert werden, können das aktualisierte Straßennavigationsmodell und/oder die aktualisierte Sparse-Karte an mehrere autonome Fahrzeuge verteilt werden.
-
Bei der Erzeugung der kartographierten Fahrspurmarkierungen in der Sparse-Karte können auch Fehler auf der Grundlage von Anomalien in den Bildern oder in den tatsächlichen Fahrspurmarkierungen selbst erkannt und/oder abgeschwächt werden. 24F zeigt eine beispielhafte Anomalie 2495 in Zusammenhang mit der Erkennung einer Fahrspurmarkierung 2490. Die Anomalie 2495 kann im vom Fahrzeug 200 aufgenommenen Bild erscheinen, beispielsweise von einem die Sicht der Kamera auf die Fahrspurmarkierung behindernden Bild, Schmutz auf der Linse usw. In einigen Fällen kann die Anomalie auf die Fahrspurmarkierung selbst zurückzuführen sein, die beschädigt oder abgenutzt oder teilweise mit Schmutz, Rückständen, Wasser, Schnee oder anderen Materialien auf der Straße bedeckt sein kann. Die Anomalie 2495 kann dazu führen, dass durch das Fahrzeug 200 ein fehlerhafter Punkt 2491 erkannt wird. Die Sparse-Karte 800 kann die korrekte kartographierte Fahrspurmarkierung bereitstellen und den Fehler ausschließen. Gemäß einigen Ausführungsformen kann das Fahrzeug 200 den fehlerhaften Punkt 2491 beispielsweise durch Erkennen der Anomalie 2495 im Bild oder durch Identifizieren des Fehlers auf der Grundlage erkannter Fahrspurmarkierungspunkte vor und hinter der Anomalie erkennen. Auf der Grundlage der Erkennung der Anomalie kann das Fahrzeug den Punkt 2491 fortlassen oder ihn so einstellen, dass er mit anderen erkannten Punkten übereinstimmt. Gemäß anderen Ausführungsformen kann der Fehler korrigiert werden, nachdem der Punkt hochgeladen wurde, beispielsweise durch Feststellen, dass der Punkt außerhalb einer erwarteten Schwelle liegt, auf der Grundlage anderer während derselben Fahrt hochgeladener Punkte oder auf der Grundlage einer Aggregation von Daten von vorhergehenden Fahrten entlang demselben Straßensegment.
-
Die kartographierten Fahrspurmarkierungen im Navigationsmodell und/oder in der Sparse-Karte können auch zur Navigation durch ein die entsprechende Straße durchfahrendes autonomes Fahrzeug verwendet werden. Beispielsweise kann ein Fahrzeug, das entlang einer Zielfahrstrecke navigiert, die kartographierten Fahrspurmarkierungen in der Sparse-Karte periodisch verwenden, um sich mit der Zielfahrstrecke auszurichten. Wie vorstehend erwähnt, kann das Fahrzeug zwischen Orientierungsmarken auf der Grundlage von Koppelnavigation navigieren, wobei das Fahrzeug Sensoren verwendet, um seine Eigenbewegung zu bestimmen und seine Position in Bezug auf die Zielfahrstrecke zu schätzen. Fehler können sich im Laufe der Zeit akkumulieren, und Positionsbestimmungen des Fahrzeugs in Bezug auf die Zielfahrstrecke können zunehmend ungenauer werden. Dementsprechend kann das Fahrzeug in der Sparse-Karte 800 auftretende Fahrspurmarkierungen (und ihre bekannten Orte) verwenden, um die durch Koppelnavigation induzierten Fehler bei der Positionsbestimmung zu verringern. Auf diese Weise können die in der Sparse-Karte 800 enthaltenen identifizierten Fahrspurmarkierungen als Navigationsanker dienen, anhand derer die genaue Position des Fahrzeugs in Bezug auf eine Zielfahrstrecke bestimmt werden kann.
-
25A zeigt ein beispielhaftes Bild 2500 der Umgebung eines Fahrzeugs, das zur Navigation auf der Grundlage der kartographierten Fahrspurmarkierungen verwendet werden kann. Das Bild 2500 kann vom Fahrzeug 200 beispielsweise durch in der Bilderfassungseinheit 120 enthaltene Bildaufnahmevorrichtungen 122 und 124 aufgenommen werden. Das Bild 2500 kann ein Bild wenigstens einer Fahrspurmarkierung 2510 aufweisen, wie in 25A gezeigt. Das Bild 2500 kann auch eine oder mehrere Orientierungsmarken 2521 in der Art eines Straßenschilds aufweisen, die zur Navigation verwendet werden, wie vorstehend beschrieben. Einige in 25A dargestellte Elemente in der Art der Elemente 2511, 2530 und 2520, die im aufgenommenen Bild 2500 nicht auftreten, jedoch vom Fahrzeug 200 erkannt und/oder bestimmt werden, sind als Bezug auch dargestellt.
-
Unter Verwendung der verschiedenen vorstehend in Bezug auf die 24A-D und 24F beschriebenen Techniken kann ein Fahrzeug das Bild 2500 analysieren, um die Fahrspurmarkierung 2510 zu identifizieren. Es können verschiedene Punkte 2511 entsprechend Merkmalen der Fahrspurmarkierung im Bild erkannt werden. Die Punkte 2511 können beispielsweise einem Rand der Fahrspurmarkierung, einer Ecke der Fahrspurmarkierung, einem Mittelpunkt der Fahrspurmarkierung, einem Scheitelpunkt zwischen zwei einander schneidenden Fahrspurmarkierungen oder verschiedenen anderen Merkmalen oder Orten entsprechen. Die Punkte 2511 können als einem Ort von Punkten, die in einem von einem Server empfangenen Navigationsmodell gespeichert sind, entsprechend erkannt werden. Falls beispielsweise eine Sparse-Karte empfangen wird, die Punkte enthält, welche eine Mittellinie einer kartographierten Fahrspurmarkierung repräsentieren, können die Punkte 2511 auch auf der Grundlage einer Mittellinie der Fahrspurmarkierung 2510 erkannt werden.
-
Das Fahrzeug kann auch eine durch das Element 2520 repräsentierte longitudinale Position, die sich entlang einer Zielfahrstrecke befindet, bestimmen. Die longitudinale Position 2520 kann anhand des Bilds 2500 beispielsweise durch Erkennen der Orientierungsmarke 2521 innerhalb des Bilds 2500 und Vergleichen eines gemessenen Orts mit einem im Straßenmodell oder in der Sparse-Karte 800 gespeicherten bekannten Orientierungsmarkenort bestimmt werden. Der Ort des Fahrzeugs entlang einer Zielfahrstrecke kann dann auf der Grundlage des Abstands von der Orientierungsmarke und des bekannten Orts der Orientierungsmarke bestimmt werden. Die longitudinale Position 2520 kann auch anhand anderer Bilder als der zum Bestimmen der Position einer Fahrspurmarkierung verwendeten bestimmt werden. Beispielsweise kann die longitudinale Position 2520 durch Erkennen von Orientierungsmarken in Bildern von anderen Kameras innerhalb der Erfassungseinheit 120, die gleichzeitig oder nahezu gleichzeitig mit dem Bild 2500 aufgenommen wurden, bestimmt werden. In manchen Fällen kann sich das Fahrzeug nicht in der Nähe jeglicher Orientierungsmarken oder anderer Referenzpunkte zur Bestimmung der longitudinalen Position 2520 befinden. In solchen Fällen kann das Fahrzeug auf der Grundlage der Koppelnavigation navigieren und demgemäß Sensoren verwenden, um seine Eigenbewegung zu bestimmen und eine longitudinale Position 2520 in Bezug auf die Zielfahrstrecke zu schätzen. Das Fahrzeug kann auch einen Abstand 2530 bestimmen, der den tatsächlichen Abstand zwischen dem Fahrzeug und der im einen oder in den mehreren aufgenommenen Bildern beobachteten Fahrspurmarkierung 2510 repräsentiert. Der Kamerawinkel, die Geschwindigkeit des Fahrzeugs, die Breite des Fahrzeugs oder verschiedene andere Faktoren können bei der Bestimmung des Abstands 2530 berücksichtigt werden.
-
25B zeigt eine Korrektur der lateralen Lokalisierung des Fahrzeugs auf der Grundlage der kartographierten Fahrspurmarkierungen in einem Straßennavigationsmodell. Wie vorstehend beschrieben, kann das Fahrzeug 200 den Abstand 2530 zwischen dem Fahrzeug 200 und einer Fahrspurmarkierung 2510 unter Verwendung eines oder mehrerer vom Fahrzeug 200 aufgenommener Bilder bestimmen. Das Fahrzeug 200 kann auch Zugriff auf ein Straßennavigationsmodell in der Art der Sparse-Karte 800 haben, welches eine kartographierte Fahrspurmarkierung 2550 und eine Zielfahrstrecke 2555 aufweisen kann. Die kartographierte Fahrspurmarkierung 2550 kann unter Verwendung der vorstehend beschriebenen Techniken, beispielsweise unter Verwendung von mehreren Fahrzeugen erfasster crowdgesourcter Ortsidentifizierer, modelliert werden. Die Zielfahrstrecke 2555 kann auch unter Verwendung der verschiedenen zuvor beschriebenen Techniken erzeugt werden. Das Fahrzeug 200 kann auch eine longitudinale Position 2520 entlang der Zielfahrstrecke 2555 bestimmen oder schätzen, wie vorstehend in Bezug auf 25A beschrieben. Das Fahrzeug 200 kann dann einen erwarteten Abstand 2540 auf der Grundlage des lateralen Abstands zwischen der Zielfahrstrecke 2555 und der kartographierten Fahrspurmarkierung 2550 entsprechend der longitudinalen Position 2520 bestimmen. Die laterale Lokalisierung des Fahrzeugs 200 kann durch Vergleichen des unter Verwendung des einen oder der mehreren aufgenommenen Bildern gemessenen tatsächlichen Abstands 2530 mit dem anhand des Modells erwarteten Abstand 2540 korrigiert oder angepasst werden.
-
Die 25C und 25D stellen Darstellungen in Zusammenhang mit einem anderen Beispiel zur Lokalisierung eines Host-Fahrzeugs während der Navigation auf der Grundlage der kartographierten Orientierungsmarken/Objekte/Merkmale in einer Sparse-Karte bereit. 25C repräsentiert konzeptionell eine Reihe von einem Fahrzeug, das entlang einem Straßensegment 2560 navigiert, aufgenommener Bilder. Bei diesem Beispiel weist das Straßensegment 2560 einen geraden Abschnitt einer zweispurigen unterteilten Schnellstraße auf, der durch Straßenränder 2561 und 2562 und eine Mittelspurmarkierung 2563 begrenzt ist. Wie dargestellt, navigiert das Host-Fahrzeug entlang einer Fahrspur 2564, die mit einer kartographierten Zielfahrstrecke 2565 assoziiert ist. Demgemäß sollte das Host-Fahrzeug in einer idealen Situation (und ohne Beeinflussungen in der Art des Vorhandenseins von Zielfahrzeugen oder Objekten auf der Straße usw.) die kartographierte Zielfahrstrecke 2565 eng verfolgen, während es entlang der Fahrspur 2564 des Straßensegments 2560 navigiert. In Wirklichkeit kann das Host-Fahrzeug eine Drift erfahren, während es entlang der kartographierten Zielfahrstrecke 2565 navigiert. Für eine wirksame und sichere Navigation sollte diese Drift innerhalb akzeptabler Grenzen (beispielsweise +/- 10 cm des lateralen Versatzes gegenüber der Zielfahrstrecke 2565 oder einer anderen geeigneten Schwelle) gehalten werden. Um die Drift periodisch zu berücksichtigen und eine benötigte Kurskorrektur vorzunehmen und dadurch zu gewährleisten, dass das Host-Fahrzeug der Zielfahrstrecke 2565 folgt, können die offenbarten Navigationssysteme in der Lage sein, das Host-Fahrzeug unter Verwendung eines oder mehrerer in der Sparse-Karte enthaltener kartographierter Merkmale/Objekte entlang der Zielfahrstrecke 2565 zu lokalisieren (beispielsweise die laterale und longitudinale Position des Host-Fahrzeugs in Bezug auf die Zielfahrstrecke 2565 zu bestimmen).
-
Als einfaches Beispiel zeigt 25C ein Geschwindigkeitsbegrenzungszeichen 2566, wie es in fünf verschiedenen nacheinander aufgenommenen Bildern erscheinen kann, wenn das Host-Fahrzeug entlang dem Straßensegment 2560 navigiert. Beispielsweise kann zu einer ersten Zeit t0 das Zeichen 2566 in einem aufgenommenen Bild in der Nähe des Horizonts erscheinen. Wenn sich das Host-Fahrzeug dem Zeichen 2566 nähert, erscheint es in anschließend zu Zeiten t1, t2, t3 und t4 aufgenommenen Bildern an anderen 2D-X-Y-Pixelorten der aufgenommenen Bilder. Beispielsweise bewegt sich das Zeichen 2566 im Raum des aufgenommenen Bilds entlang der Kurve 2567 (beispielsweise einer in jedem der fünf aufgenommenen Bildframes durch das Zentrum des Zeichens verlaufenden Kurve) abwärts und nach rechts. Das Zeichen 2566 scheint auch an Größe zuzunehmen, wenn sich das Host-Fahrzeug ihm nähert (d. h. es belegt in nachfolgend aufgenommenen Bildern eine große Anzahl von Pixeln).
-
Diese Änderungen in den Bildraumrepräsentationen eines Objekts in der Art des Zeichens 2566 können ausgenutzt werden, um eine lokalisierte Position des Host-Fahrzeugs entlang einer Zielfahrstrecke zu bestimmen. Beispielsweise kann, wie in der vorliegenden Offenbarung beschrieben, jedes erkennbare Objekt oder Merkmal in der Art eines semantischen Merkmals wie das Zeichen 2566 oder eines erkennbaren nicht semantischen Merkmals durch ein oder mehrere Daten sammelnde Fahrzeuge, die zuvor entlang einem Straßensegment (beispielsweise dem Straßensegment 2560) gefahren sind, identifiziert werden. Ein Kartenserver kann die von mehreren Fahrzeugen gesammelten Fahrinformationen zusammenstellen, diese Informationen aggregieren und korrelieren und eine Sparse-Karte erzeugen, die beispielsweise eine Zielfahrstrecke 2565 für die Fahrspur 2564 des Straßensegments 2560 aufweist. Die Sparse-Karte kann auch den Ort des Zeichens 2566 (zusammen mit Typinformationen usw.) speichern. Während der Navigation (beispielsweise vor dem Einfahren in das Straßensegment 2560) kann einem Host-Fahrzeug eine Kartenkachel zugeführt werden, die eine Sparse-Karte für das Straßensegment 2560 aufweist. Zur Navigation in der Fahrspur 2564 des Straßensegments 2560 kann das Host-Fahrzeug der kartographierten Zielfahrstrecke 2565 folgen.
-
Die kartographierte Repräsentation des Zeichens 2566 kann vom Host-Fahrzeug verwendet werden, um sich in Bezug auf die Zielfahrstrecke zu lokalisieren. Beispielsweise nimmt eine Kamera am Host-Fahrzeug ein Bild 2570 der Umgebung des Host-Fahrzeugs auf und kann dieses aufgenommene Bild 2570 eine Bildrepräsentation des Zeichens 2566 mit einer gewissen Größe und einem gewissen X-Y-Bildort, wie in 25D dargestellt, aufweisen. Diese Größe und dieser X-Y-Bildort können zur Bestimmung der Position des Host-Fahrzeugs in Bezug auf die Zielfahrstrecke 2565 verwendet werden. Beispielsweise kann ein Navigationsprozessor des Host-Fahrzeugs auf der Grundlage der eine Repräsentation des Zeichens 2566 aufweisenden Sparse-Karte feststellen, dass als Reaktion darauf, dass das Host-Fahrzeug entlang der Zielfahrstrecke 2565 fährt, eine Repräsentation des Zeichens 2566 in aufgenommenen Bildern erscheinen sollte, so dass sich die Mitte des Zeichens 2566 (im Bildraum) entlang der Linie 2567 bewegt. Falls ein aufgenommenes Bild in der Art des Bilds 2570 zeigt, dass die Mitte (oder ein anderer Referenzpunkt) gegenüber der Linie 2567 (beispielsweise der erwarteten Bildraumbahn) versetzt ist, kann das Navigationssystem des Host-Fahrzeugs feststellen, dass es sich zur Zeit des aufgenommenen Bilds nicht auf der Zielfahrstrecke 2565 befunden hat. Anhand des Bilds kann der Navigationsprozessor jedoch eine geeignete Navigationskorrektur für die Rückführung des Host-Fahrzeugs zur Zielfahrstrecke 2565 bestimmen. Falls eine Analyse beispielsweise einen Bildort des Zeichens 2566 zeigt, der im Bild um einen Abstand 2572 nach links gegenüber dem erwarteten Bildraumort auf der Linie 2567 versetzt ist, kann der Navigationsprozessor eine Kursrichtungsänderung durch das Host-Fahrzeug veranlassen (beispielsweise durch eine Änderung des Lenkwinkels der Räder), um das Host-Fahrzeug um einen Abstand 2573 nach links zu bewegen. Auf diese Weise kann jedes aufgenommene Bild als Teil eines Rückkopplungsschleifenprozesses verwendet werden, so dass die Differenz zwischen einer beobachteten Bildposition des Zeichens 2566 und der erwarteten Bildfahrstrecke 2567 minimiert werden kann, um zu gewährleisten, dass das Host-Fahrzeug mit einer geringen bis verschwindenden Abweichung weiter entlang der Zielfahrstrecke 2565 fährt. Natürlich kann die beschriebene Lokalisierungstechnik umso häufiger verwendet werden, je mehr kartographierte Objekte verfügbar sind, wodurch driftinduzierte Abweichungen von der Zielfahrstrecke 2565 verringert oder beseitigt werden können.
-
Der vorstehend beschriebene Prozess kann für die Erkennung einer lateralen Orientierung oder eines lateralen Versatzes des Host-Fahrzeugs in Bezug auf eine Zielfahrstrecke nützlich sein. Die Lokalisierung des Host-Fahrzeugs in Bezug auf die Zielfahrstrecke 2565 kann auch eine Bestimmung des longitudinalen Orts des Zielfahrzeugs entlang der Zielfahrstrecke einschließen. Beispielsweise weist das aufgenommene Bild 2570 eine Repräsentation des Zeichens 2566, die eine gewisse Bildgröße (beispielsweise 2D-X-Y-Pixelbereich) aufweist, auf. Die Größe kann mit der erwarteten Bildgröße eines kartographierten Zeichens 2566 verglichen werden, wenn es entlang der Linie 2567 durch den Bildraum fährt (beispielsweise wenn die Größe des Zeichens zunehmend ansteigt, wie in 25C dargestellt ist). Auf der Grundlage der Bildgröße des Zeichens 2566 im Bild 2570 und auf der Grundlage des erwarteten Größenverlaufs im Bildraum in Bezug auf die kartographierte Zielfahrstrecke 2565 kann das Host-Fahrzeug seine longitudinale Position (zur Zeit, zu der das Bild 2570 aufgenommen wurde) in Bezug auf die Zielfahrstrecke 2565 bestimmen. Die longitudinale Position in Verbindung mit einem lateralen Versatz in Bezug auf die Zielfahrstrecke 2565, wie vorstehend beschrieben, ermöglicht eine vollständige Lokalisierung des Host-Fahrzeugs in Bezug auf die Zielfahrstrecke 2565, während das Host-Fahrzeug entlang der Straße 2560 navigiert.
-
Die 25C und 25D stellen lediglich ein Beispiel der offenbarten Lokalisierungstechnik unter Verwendung eines einzigen kartographierten Objekts und einer einzigen Zielfahrstrecke bereit. Bei anderen Beispielen kann es mehr als eine Zielfahrstrecke (beispielsweise eine Zielfahrstrecke für jede mögliche Fahrspur einer mehrspurigen Schnellstraße, städtischen Straße, komplexen Abzweigung usw.) geben, und es können viel mehr kartographierte Objekte für die Lokalisierung verfügbar sein. Beispielsweise kann eine Sparse-Karte, die eine städtische Umgebung repräsentiert, viele Objekte pro Meter aufweisen, die für die Lokalisierung zur Verfügung stehen.
-
26A ist ein Flussdiagramm eines beispielhaften Prozesses 2600A zur Kartographierung einer Fahrspurmarkierung zur Verwendung bei der autonomen Fahrzeugnavigation gemäß offenbarten Ausführungsformen. In Schritt 2610 des Prozesses 2600A können zwei oder mehr Ortsidentifizierer in Zusammenhang mit einer erkannten Fahrspurmarkierung empfangen werden. Beispielsweise kann Schritt 2610 durch den Server 1230 oder einen oder mehrere Prozessoren in Zusammenhang mit dem Server ausgeführt werden. Die Ortsidentifizierer können Orte in realen Koordinaten von Punkten in Zusammenhang mit der erkannten Fahrspurmarkierung aufweisen, wie vorstehend in Bezug auf 24E beschrieben. Gemäß einigen Ausführungsformen können die Ortsidentifizierer auch andere Daten in der Art zusätzlicher Informationen über das Straßensegment oder die Fahrspurmarkierung enthalten. Zusätzliche Daten können auch während Schritt 2610 empfangen werden, wie Beschleunigungsmesserdaten, Geschwindigkeitsdaten, Orientierungsmarkendaten, Straßengeometrie- oder -profildaten, Fahrzeugpositionsbestimmungsdaten, Eigenbewegungsdaten oder verschiedene andere vorstehend beschriebene Datenformen. Die Ortsidentifizierer können von einem Fahrzeug in der Art der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 auf der Grundlage vom Fahrzeug aufgenommener Bilder erzeugt werden. Beispielsweise können die Identifizierer auf der Grundlage einer Erfassung wenigstens eines eine Umgebung des Host-Fahrzeugs repräsentierenden Bilds durch eine Kamera in Zusammenhang mit dem Host-Fahrzeug, Analyse des wenigstens einen Bilds zur Erkennung der Fahrspurmarkierung in der Umgebung des Host-Fahrzeugs und Analyse des wenigstens einen Bilds zur Bestimmung der Position der erkannten Fahrspurmarkierung in Bezug auf einen Ort in Zusammenhang mit dem Host-Fahrzeug erzeugt werden. Wie vorstehend beschrieben, kann die Fahrspurmarkierung eine Vielzahl verschiedener Markierungstypen aufweisen und können die Ortsidentifizierer einer Vielzahl von Punkten in Bezug auf die Fahrspurmarkierung entsprechen. Wenn die erkannte Fahrspurmarkierung beispielsweise Teil einer gestrichelten Markierung einer Fahrspurgrenze ist, können die Punkte erkannten Ecken der Fahrspurmarkierung entsprechen. Wenn die erkannte Fahrspurmarkierung Teil einer durchgezogenen Markierung einer Fahrspurgrenze ist, können die Punkte einem erkannten Rand der Fahrspurmarkierung mit verschiedenen Abständen, wie vorstehend beschrieben, entsprechen. Gemäß einigen Ausführungsformen können die Punkte der Mittellinie der erkannten Fahrspurmarkierung entsprechen, wie in 24C dargestellt ist, oder einem Scheitelpunkt zwischen zwei einander schneidenden Fahrspurmarkierungen und wenigstens einem von zwei anderen Punkten in Zusammenhang mit den einander schneidenden Fahrspurmarkierungen entsprechen, wie in 24D dargestellt ist.
-
In Schritt 2612 des Prozesses 2600A kann die erkannte Fahrspurmarkierung mit einem entsprechenden Straßensegment assoziiert werden. Beispielsweise kann der Server 1230 die realen Koordinaten oder andere während Schritt 2610 empfangene Informationen analysieren und die Koordinaten oder anderen Informationen mit im Modell der autonomen Fahrzeugstraßennavigation gespeicherten Ortsinformationen vergleichen. Der Server 1230 kann ein Straßensegment im Modell bestimmen, welches dem realen Straßensegment, in dem die Fahrspurmarkierung erkannt wurde, entspricht.
-
In Schritt 2614 des Prozesses 2600A kann ein Modell der autonomen Fahrzeugstraßennavigation in Bezug auf das entsprechende Straßensegment auf der Grundlage der zwei oder mehr Ortsidentifizierer in Zusammenhang mit der erkannten Fahrspurmarkierung aktualisiert werden. Beispielsweise kann das autonome Straßennavigationsmodell die Sparse-Karte 800 sein und kann der Server 1230 die Sparse-Karte aktualisieren, um eine kartographierte Fahrspurmarkierung in das Modell aufzunehmen oder anzupassen. Der Server 1230 kann das Modell auf der Grundlage der verschiedenen vorstehend in Bezug auf 24E beschriebenen Verfahren oder Prozesse aktualisieren. Gemäß einigen Ausführungsformen können bei der Aktualisierung des Modells der autonomen Fahrzeugstraßennavigation ein oder mehrere Indikatoren der Position in realen Koordinaten der erkannten Fahrspurmarkierung gespeichert werden. Das Modell der autonomen Fahrzeugstraßennavigation kann auch wenigstens eine Zielfahrstrecke, derer ein Fahrzeug entlang dem entsprechenden Straßensegment folgen soll, aufweisen, wie in 24E dargestellt.
-
In Schritt 2616 des Prozesses 2600A kann das aktualisierte Modell der autonomen Fahrzeugstraßennavigation an mehrere autonome Fahrzeuge verteilt werden. Beispielsweise kann der Server 1230 das aktualisierte Modell der autonomen Fahrzeugstraßennavigation an die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 verteilen, die das Modell zur Navigation verwenden. Das Modell der autonomen Fahrzeugstraßennavigation kann durch ein oder mehrere Netze (beispielsweise ein Mobilfunknetz und/oder das Internet usw.) über Drahtloskommunikationswege 1235 verteilt werden, wie in 12 dargestellt.
-
Gemäß einigen Ausführungsformen können die Fahrspurmarkierungen unter Verwendung von mehreren Fahrzeugen empfangener Daten (beispielsweise durch eine Crowdsourcing-Technik, kartographiert werden, wie vorstehend in Bezug auf 24E beschrieben. Beispielsweise können in Prozess 2600A eine erste Kommunikation von einem ersten Host-Fahrzeug, einschließlich Ortsidentifizierern in Zusammenhang mit einer erkannten Fahrspurmarkierung, empfangen werden und eine zweite Kommunikation von einem zweiten Host-Fahrzeug, einschließlich zusätzlicher Ortsidentifizierer in Zusammenhang mit der erkannten Fahrspurmarkierung, empfangen werden. Beispielsweise kann die zweite Kommunikation von einem nachfolgenden Fahrzeug, das auf demselben Straßensegment fährt, oder vom selben Fahrzeug bei einer späteren Fahrt entlang demselben Straßensegment empfangen werden. Im Prozess 2600A kann ferner eine Bestimmung wenigstens einer Position in Zusammenhang mit der erkannten Fahrspurmarkierung auf der Grundlage der in der ersten Kommunikation empfangenen Ortsidentifizierer und der in der zweiten Kommunikation empfangenen zusätzlichen Ortsidentifizierer verfeinert werden. Hierbei können eine Mittelwertbildung der mehreren Ortsidentifizierer und/oder ein Herausfiltern von „Geister“-Identifizierern, welche die reale Position der Fahrspurmarkierung nicht widerspiegeln können, verwendet werden.
-
26B ist ein Flussdiagramm eines beispielhaften Prozesses zur autonomen Navigation eines Host-Fahrzeugs entlang einem Straßensegment unter Verwendung kartographierter Fahrspurmarkierungen. Der Prozess 2600B kann beispielsweise durch die Verarbeitungseinheit 110 des autonomen Fahrzeugs 200 ausgeführt werden. In Schritt 2620 des Prozesses 2600B kann von einem serverbasierten System ein Modell der autonomen Fahrzeugstraßennavigation empfangen werden. Gemäß einigen Ausführungsformen kann das Modell der autonomen Fahrzeugstraßennavigation eine Zielfahrstrecke entlang dem Straßensegment für das Host-Fahrzeug und Ortsidentifizierer in Zusammenhang mit einer oder mehreren Fahrspurmarkierungen in Zusammenhang mit dem Straßensegment aufweisen. Beispielsweise kann das Fahrzeug 200 die Sparse-Karte 800 oder ein anderes unter Verwendung des Prozesses 2600A entwickeltes Straßennavigationsmodell empfangen. Gemäß einigen Ausführungsformen kann die Zielfahrstrecke als dreidimensionaler Spline repräsentiert werden, wie beispielsweise in 9B dargestellt ist. Wie vorstehend in Bezug auf die 24A-F beschrieben, können die Ortsidentifizierer Orte in realen Koordinaten von Punkten in Zusammenhang mit der Fahrspurmarkierung (beispielsweise Eckpunkten einer gestrichelten Fahrspurmarkierung, Randpunkten einer durchgezogenen Fahrspurmarkierung, einem Scheitelpunkt zwischen zwei einander schneidenden Fahrspurmarkierungen und anderen Punkten in Zusammenhang mit den einander schneidenden Fahrspurmarkierungen, einer Mittellinie in Zusammenhang mit der Fahrspurmarkierung usw.) aufweisen.
-
In Schritt 2621 des Prozesses 2600B kann wenigstens ein eine Umgebung des Fahrzeugs repräsentierendes Bild empfangen werden. Das Bild kann von einer Bildaufnahmevorrichtung des Fahrzeugs, beispielsweise durch in der Bilderfassungseinheit 120 enthaltene Bildaufnahmevorrichtungen 122 und 124, empfangen werden. Das Bild kann ein Bild einer oder mehrerer Fahrspurmarkierungen ähnlich dem vorstehend beschriebenen Bild 2500 aufweisen.
-
In Schritt 2622 des Prozesses 2600B kann die longitudinale Position des Host-Fahrzeugs entlang der Zielfahrstrecke bestimmt werden. Wie vorstehend in Bezug auf 25A beschrieben, kann dies auf der Grundlage anderer Informationen im aufgenommenen Bild (beispielsweise Orientierungsmarken usw.) oder durch Koppelnavigation des Fahrzeugs zwischen erkannten Orientierungsmarken geschehen.
-
In Schritt 2623 des Prozesses 2600B kann ein erwarteter lateraler Abstand von der Fahrspurmarkierung auf der Grundlage der bestimmten longitudinalen Position des Host-Fahrzeugs entlang der Zielfahrstrecke und auf der Grundlage der zwei oder mehr Ortsidentifizierer in Zusammenhang mit der wenigstens einen Fahrspurmarkierung bestimmt werden. Beispielsweise kann das Fahrzeug 200 die Sparse-Karte 800 verwenden, um einen erwarteten lateralen Abstand von der Fahrspurmarkierung zu bestimmen. Wie in 25B dargestellt ist, kann die longitudinale Position 2520 entlang einer Zielfahrstrecke 2555 in Schritt 2622 bestimmt werden. Unter Verwendung der Sparse-Karte 800 kann das Fahrzeug 200 einen erwarteten Abstand 2540 von der kartographierten Fahrspurmarkierung 2550 entsprechend der longitudinalen Position 2520 bestimmen.
-
In Schritt 2624 des Prozesses 2600B kann das wenigstens eine Bild analysiert werden, um die wenigstens eine Fahrspurmarkierung zu identifizieren. Das Fahrzeug 200 kann beispielsweise verschiedene Bilderkennungstechniken oder -algorithmen zur Identifikation der Fahrspurmarkierung innerhalb des Bilds verwenden, wie vorstehend beschrieben. Beispielsweise kann die Fahrspurmarkierung 2510 durch Bildanalyse des Bilds 2500 erkannt werden, wie in 25A dargestellt.
-
In Schritt 2625 des Prozesses 2600B kann der tatsächliche laterale Abstand von der wenigstens einen Fahrspurmarkierung auf der Grundlage einer Analyse des wenigstens einen Bilds bestimmt werden. Beispielsweise kann das Fahrzeug einen den tatsächlichen Abstand zwischen dem Fahrzeug und der Fahrspurmarkierung 2510 repräsentierenden Abstand 2530 bestimmen, wie in 25A dargestellt. Der Kamerawinkel, die Geschwindigkeit des Fahrzeugs, die Breite des Fahrzeugs, die Position der Kamera in Bezug auf das Fahrzeug oder verschiedene andere Faktoren können bei der Bestimmung des Abstands 2530 berücksichtigt werden.
-
In Schritt 2626 des Prozesses 2600B kann eine autonome Lenkaktion für das Host-Fahrzeug auf der Grundlage der Differenz zwischen dem erwarteten lateralen Abstand und der wenigstens einen Fahrspurmarkierung und dem bestimmten tatsächlichen lateralen Abstand von der wenigstens einen Fahrspurmarkierung bestimmt werden. Beispielsweise kann das Fahrzeug 200, wie vorstehend in Bezug auf 25B beschrieben, den tatsächlichen Abstand 2530 mit einem erwarteten Abstand 2540 vergleichen. Die Differenz zwischen dem tatsächlichen und dem erwarteten Abstand kann einen Fehler (und seinen Betrag) zwischen der tatsächlichen Position des Fahrzeugs und der vom Fahrzeug zu folgenden Zielfahrstrecke angeben. Dementsprechend kann das Fahrzeug eine autonome Lenkaktion oder eine andere autonome Aktion auf der Grundlage der Differenz festlegen. Falls der tatsächliche Abstand 2530 beispielsweise kleiner als der erwartete Abstand 2540 ist, wie in 25B dargestellt ist, kann das Fahrzeug eine autonome Lenkaktion zum Lenken des Fahrzeugs nach links, von der Fahrspurmarkierung 2510 fort, festlegen. Demgemäß kann die Position des Fahrzeugs in Bezug auf die Zielfahrstrecke korrigiert werden. Der Prozess 2600B kann beispielsweise verwendet werden, um die Navigation des Fahrzeugs zwischen Orientierungsmarken zu verbessern.
-
Die Prozesse 2600A und 2600B stellen Beispiele nur von Techniken bereit, die zur Navigation eines Host-Fahrzeugs unter Verwendung der offenbarten Sparse-Karten verwendet werden können. Bei anderen Beispielen können auch Prozesse, die mit den in den 25C und 25D beschriebenen übereinstimmen, verwendet werden.
-
Erkennen einer offenen Tür
-
Autonome Fahrzeuge können eine Vielzahl von Faktoren berücksichtigen müssen und auf der Grundlage dieser Faktoren geeignete Entscheidungen treffen müssen, um einen vorgesehenen Bestimmungsort sicher und genau zu erreichen. Beispielsweise kann ein autonomes Fahrzeug visuelle Informationen (beispielsweise von einer Kamera erfasste Informationen), Informationen von Radar oder Lidar bearbeiten und interpretieren müssen und auch von anderen Quellen (beispielsweise von einer GPS-Vorrichtung, einem Geschwindigkeitssensor, einem Beschleunigungsmesser, einem Federungssensor usw.) erhaltene Informationen verwenden. Gleichzeitig kann ein autonomes Fahrzeug zur Navigation zu einem Bestimmungsort auch seinen Ort innerhalb einer bestimmten Straße (beispielsweise eine spezifische Fahrspur innerhalb einer mehrspurigen Straße) identifizieren müssen, entlang anderen Fahrzeugen navigieren müssen, Hindernisse oder Fußgänger vermeiden müssen, Verkehrssignale und -zeichen beachten müssen und an geeigneten Kreuzungen oder Abzweigungen von einer Straße auf eine andere Straße fahren müssen und auf eine andere Situation reagieren müssen, die sich während des Betriebs des Fahrzeugs entwickelt.
-
Offene Fahrzeugtüren können eine erhebliche Gefahr für entlang einem Straßensegment navigierende Fahrzeuge darstellen. Viele traditionelle Algorithmen in der Art jener, die in existierenden autonomen Bremssystemen verwendet werden, haben keine mit Menschen vergleichbaren Reaktionszeiten. Dementsprechend sind solche Algorithmen häufig besser für eine Verwendung als Unterstützung für menschliche Fahrer als für eine Verwendung in einem teilweise oder vollständig autonomen Fahrzeug geeignet. Ausführungsformen der vorliegenden Offenbarung können einen oder mehrere der Mängel traditioneller Systeme, wie vorstehend erörtert, adressieren. Das Thema ist für die autonome Fahrzeugnavigation auf schmalen Straßen besonders wichtig, wo offene Fahrzeugtüren einen geplanten Fahrweg des autonomen Fahrzeugs teilweise oder vollständig blockieren können.
-
Gemäß einer Ausführungsform kann ein System zum Navigieren eines Host-Fahrzeugs ein von einer Kamera an Bord des Host-Fahrzeugs aufgenommenes Bild von der Umgebung des Host-Fahrzeugs empfangen. Beispielsweise kann eine Kamera an Bord des Host-Fahrzeugs 2700, wie in 27 dargestellt, dafür ausgelegt sein, ein Bild 2710 aus der Umgebung des Fahrzeugs 2700 aufzunehmen. Das System kann das Bild 2710 analysieren, um ein Zielfahrzeug 2711 im Bild 2710 zu identifizieren und ein Kandidatengebiet 2713 im Bild zu bestimmen, das eine Repräsentation der Fahrzeugtür 2712 des Zielfahrzeugs 2711, von der erwartet wird, dass sie sich in einem Tür-offen-Zustand befindet, aufweisen kann. Das System kann auch das Kandidatengebiet 2713 aus dem Bild 2710 extrahieren und das extrahierte Kandidatengebiet einem Maschinenlernmodell (beispielsweise einem trainierten Netz) als Eingabe zur Erkennung eines Tür-offen-Zustands in Zusammenhang mit dem Zielfahrzeug bereitstellen. Das Maschinenlernmodell kann dafür ausgelegt sein, ein Ergebnis, einschließlich beispielsweise einer Angabe eines Tür-offen-Zustands (oder des Nichtvorhandenseins eines Tür-offen-Zustands), auszugeben. Das System kann wenigstens eine Navigationsaktion für das Host-Fahrzeug (beispielsweise Ändern des Steuerkurses, so dass sich vom Zielfahrzeug fortbewegt wird und das Fahrzeug verlangsamt wird) auf der Grundlage des vom Maschinenlernmodell bereitgestellten Ausgabeergebnisses implementieren.
-
Gemäß einigen Ausführungsformen kann ein Fahrzeug mit einer offenen Tür keine Gefahr für das Host-Fahrzeug darstellen und kann das Host-Fahrzeug ein solches Fahrzeug aus der weiteren Analyse ausschließen. Beispielsweise zeigt 28A ein von der Umgebung des Host-Fahrzeugs 2700 aufgenommenes Bild 2820. Wie in 28A dargestellt ist, weist das Fahrzeug 2821 eine offene Tür 2822 auf. Es kann jedoch unwahrscheinlich sein, dass das Host-Fahrzeug 2700 mit der Tür 2822 des Fahrzeugs 2821 kollidiert. Beispielsweise kann angesichts dessen, dass der longitudinale Abstand zwischen dem Host-Fahrzeug 2700 und dem Fahrzeug 2821 verhältnismäßig groß ist, die Tür 2822 geschlossen werden, wenn das Host-Fahrzeug 2700 an der Position der Tür 2822 ankommt, wenn das Bild 2820 aufgenommen wird. Zusätzlich kann sich das Fahrzeug 2821 in einer von der Fahrspur des Host-Fahrzeugs 2700 verschiedenen Spur befinden, und es kann einen lateralen Sicherheitsabstand (beispielsweise 1 Meter, 2 Meter usw.) für das Host-Fahrzeug 2700 geben, wenn es das Fahrzeug 2821 passiert. Das Host-Fahrzeug 2700 kann das Fahrzeug 2821 selbst dann aus der weiteren Analyse ausschließen, wenn das Fahrzeug 2821 eine offene Tür hat, wenn das Bild 2820 aufgenommen wird.
-
Es wird verständlich sein, dass die Reaktion des Host-Fahrzeugs 2700 auf die Erkennung der offenen Tür 2822 durch eine vom Host-Fahrzeug implementierte Fahrrichtlinie oder Sicherheitsrichtlinie festgelegt werden kann. Beispielsweise kann das Host-Fahrzeug 2700 eine Fahrrichtlinie implementieren, nach der für das in 28A dargestellte Szenario, bei dem es unwahrscheinlich ist, dass das Host-Fahrzeug 2700 mit der Tür 2822 des Fahrzeugs 2821 kollidiert, wenn das Host-Fahrzeug 2700 das Fahrzeug 2821 passiert, das Host-Fahrzeug 2700 vom Zielfahrzeug 2821 und der Tür 2822 (beispielsweise durch Wechseln zur am weitesten links gelegenen Fahrspur) fortlenken kann und/oder die Geschwindigkeit des Host-Fahrzeugs 2700 verringern kann. Diese Aktion kann durch die Fahrrichtlinie festgelegt (oder berechnet) werden, um zu gewährleisten, dass das Host-Fahrzeug 2700 in der Lage sein kann, mögliche Gefahren, die im Fall einer offenen Tür wahrscheinlich sind, die beispielsweise darin bestehen, dass ein Fußgänger das Fahrzeug verlässt (beispielsweise durch die offene Tür 2821), sicher zu behandeln.
-
Bei einem in 28B dargestellten weiteren Beispiel kann ein von der Umgebung des Fahrzeugs 2700 aufgenommenes Bild 2830 eine Repräsentation eines Fahrzeugs 2831 aufweisen, dessen rechte Vordertür 2832 offen ist, während das Host-Fahrzeug 2700 auf der Fahrspur neben der linken Seite des Fahrzeugs 2831 fährt. Ähnlich kann das Host-Fahrzeug 2700 nicht mit der Tür 2832 kollidieren und kann das Fahrzeug 2831 aus der weiteren Analyse ausgeschlossen werden.
-
29 zeigt ein Blockdiagramm eines beispielhaften Systems zum Navigieren eines Fahrzeugs gemäß offenbarten Ausführungsformen. Wie in 29 dargestellt ist, kann das Fahrzeug 2700 einen oder mehrere Prozessoren 2910, einen Speicher 2920, eine Speichervorrichtung 2930, einen Kommunikationsport 2940, einen oder mehrere Sensoren 2950, ein Lidar-System 2960 und ein Navigationssystem 2970 aufweisen.
-
Der Prozessor 2910 kann dafür ausgelegt sein, eine oder mehrere Funktionen des Fahrzeugs 2700 auszuführen, wie in dieser Offenbarung beschrieben. Der Prozessor 2910 kann einen Mikroprozessor, Vorprozessoren (in der Art eines Bildvorprozessors), eine Grafikverarbeitungseinheit (GPU), eine Zentralverarbeitungseinheit (CPU), Unterstützungsschaltungen, Digitalsignalprozessoren, integrierte Schaltungen, einen Speicher oder jegliche andere Vorrichtungstypen, die für das Ausführen von Anwendungen oder einer Rechenaufgabe geeignet sind, aufweisen. Gemäß einigen Ausführungsformen kann der Prozessor 2910 einen beliebigen Typ eines Einzel- oder Mehrkernprozessors, einer Mobilvorrichtungs-Mikrosteuereinrichtung, einer Zentralverarbeitungseinheit usw. einschließen. Es können verschiedene Verarbeitungsvorrichtungen verwendet werden, einschließlich beispielsweise Prozessoren, die von Herstellern in der Art von Intel®, AMD® usw. verfügbar sind, oder GPUs, die von Herstellern in der Art von NVIDIA®, ATI® usw. verfügbar sind, und sie können verschiedene Architekturen (beispielsweise x86-Prozessor, ARM® usw.) aufweisen. Jegliche der hier offenbarten Verarbeitungsvorrichtungen können konfiguriert werden, bestimmte Funktionen auszuführen. Bei der Konfiguration einer Verarbeitungsvorrichtung in der Art jeglicher der beschriebenen Prozessoren oder einer anderen Steuereinrichtung oder eines anderen Mikroprozessors können bei der Ausführung bestimmter Funktionen computerausführbare Befehle programmiert werden und diese Befehle der Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung verfügbar gemacht werden. Gemäß einigen Ausführungsformen kann bei der Konfiguration einer Verarbeitungsvorrichtung die Verarbeitungsvorrichtung direkt mit Architekturbefehlen programmiert werden. Beispielsweise können Verarbeitungsvorrichtungen in der Art feldprogrammierbarer Gate-Arrays (FPGAs), anwendungsspezifischer integrierter Schaltungen (ASICs) und dergleichen beispielsweise unter Verwendung einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Gemäß einigen Ausführungsformen kann der Prozessor 2910 eine Schaltungsanordnung 2911 und einen Speicher 2912 aufweisen. Der Speicher 2912 kann Befehle speichern, die, wenn sie durch die Schaltungsanordnung 2911 ausgeführt werden, den Prozessor 2910 veranlassen können, die hier beschriebenen Funktionen des Prozessors 2910 auszuführen. Die Schaltungsanordnung 2911 kann eines oder mehrere der hier beschriebenen Beispiele aufweisen.
-
Das Fahrzeug 2700 kann einen Speicher 2920 aufweisen, der Befehle für verschiedene Komponenten des Fahrzeugs 2700 speichern kann. Beispielsweise kann der Speicher 2920 Befehle speichern, die, wenn sie durch den Prozessor 2910 ausgeführt werden, dafür ausgelegt sein können, den Prozessor 2910 zu veranlassen, eine oder mehrere hier beschriebene Funktionen auszuführen. Der Speicher 2920 kann eine Anzahl von Direktzugriffsspeichern, Nurlesespeichern, Flash-Speichern, Plattenlaufwerken, einem optischen Speicher, einem Bandspeicher, einem entfernbaren Speicher und anderen Speichertypen aufweisen. In einem Fall kann der Speicher 2920 vom Prozessor 2910 getrennt sein. In einem anderen Fall kann der Speicher 2920 in den Prozessor 2910 integriert sein (beispielsweise als Speicher 2912 aufgenommen sein). Gemäß einigen Ausführungsformen kann der Speicher 2920 Software zur Ausführung einer oder mehrerer Rechenaufgaben sowie ein trainiertes System in der Art eines neuronalen Netzes oder eines tiefen neuronalen Netzes aufweisen. Beispielsweise kann der Speicher 2920 (und/oder der Speicher 2912) ein oder mehrere hier beschriebene Tür-offen-Erkennungsnetze aufweisen.
-
Die Speichervorrichtung 2930 kann dafür ausgelegt sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Fahrzeugs 2700 zu speichern. Die Speichervorrichtung 2930 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Halbleiterlaufwerke, eine für das Schreiben und Lesen von Daten geeignete Vorrichtung oder dergleichen oder eine Kombination davon aufweisen. Die Speichervorrichtung 2930 kann Kartendaten einschließlich beispielsweise Daten eines oder mehrerer Kartensegmente, auf die der Prozessor 2910 zugreifen kann, speichern. Gemäß einigen Ausführungsformen kann die Speichervorrichtung 2930 eine Kartendatenbank speichern. Der Prozessor 2910 kann Daten eines oder mehrerer Kartensegmente aus der Kartendatenbank abrufen. Beispielsweise kann der Prozessor 2910 Kartendaten in Zusammenhang mit einem Kartensegment abrufen.
-
Der Kommunikationsport 2940 kann dafür ausgelegt sein, Datenkommunikationen zwischen dem Fahrzeug 2700 und einer oder mehreren Komponenten der hier beschriebenen offenbarten Systeme über ein Netz zu erleichtern. Beispielsweise kann der Kommunikationsport 2940 dafür ausgelegt sein, Daten von einem Server über ein oder mehrere öffentliche oder private Netze, einschließlich des Internets, eines Intranets, eines WANs (Weitbereichsnetzes), eines MANs (Großstadtnetzes), eines Drahtlosnetzes gemäß den IEEE 802. 11a/b/g/n-Standards, einer gemieteten Leitung oder dergleichen zu empfangen und Daten darüber zum Server zu übertragen.
-
Der Sensor 2950 kann dafür ausgelegt sein, Informationen in Bezug auf das Fahrzeug 2700 und/oder die Umgebung des Fahrzeugs 2700 zu sammeln. Der Sensor 2950 kann einen oder mehrere von einem Bildsensor (beispielsweise einer Kamera), einer Radarvorrichtung, einer Lidar-Vorrichtung, einem Geschwindigkeitssensor, einem Beschleunigungssensor, einem Bremssensor, einem Federungssensor, einer Positionsbestimmungsvorrichtung (beispielsweise einer Vorrichtung des globalen Positionsbestimmungssystems (GPS)), einem Beschleunigungsmesser, einem gyroskopischen Sensor, einem Geschwindigkeitsmesser oder dergleichen, oder eine Kombination davon einschließen. Beispielsweise kann das Fahrzeug 2700 einen Bildsensor (beispielsweise eine Kamera) aufweisen, die dafür ausgelegt ist, ein oder mehrere Bilder seiner Umgebung aufzunehmen, welche eine Repräsentation eines Objekts (oder zumindest eines Teils davon) aufweisen können. Gemäß einigen Ausführungsformen kann das Fahrzeug 2700 einen oder mehrere Bildsensoren ähnlich der Bildaufnahmevorrichtung 122, der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126, die anderswo in dieser Offenbarung beschrieben wurden, aufweisen. Bei einem anderen Beispiel kann das Fahrzeug 2700 eine GPS-Vorrichtung aufweisen, die dafür ausgelegt ist, Positionsbestimmungsdaten in Zusammenhang mit Positionen des Fahrzeugs 2700 über einen Zeitraum zu sammeln.
-
Das LIDAR-System 2960 kann eine oder mehrere LIDAR-Einheiten aufweisen. Gemäß einigen Ausführungsformen können die eine oder die mehreren LIDAR-Einheiten auf dem Dach des Fahrzeugs 2700 angeordnet sein. Eine solche Einheit kann eine sich drehende Einheit, die dafür ausgelegt ist, LIDAR-Reflexionsinformationen innerhalb eines 360-Grad-Gesichtsfelds um das Fahrzeug 2700 oder aus einem Teilsegment des 360-Grad-Gesichtsfelds (beispielsweise einem oder mehreren FOVs, die jeweils weniger als 360 Grad repräsentieren) zu sammeln. Gemäß einigen Ausführungsformen kann eine LIDAR-Einheit vorne am Fahrzeug 2700 angeordnet sein (beispielsweise in der Nähe der Scheinwerfer, im Frontgrill, in der Nähe der Nebelscheinwerfer, in einer vorderen Stoßstange oder an einem anderen geeigneten Ort). In manchen Fällen können eine oder mehrere an einem vorderen Teil des Fahrzeugs 2700 installierte LIDAR-Einheiten Reflexionsinformationen aus einem Gesichtsfeld in einer Umgebung vor dem Fahrzeug 2700 sammeln. Die vom LIDAR-System 2960 gesammelten Daten können dem Prozessor 2910 bereitgestellt werden. Alternativ oder zusätzlich können die Daten über ein Netz zu einem Server und/oder einer Datenbank übertragen werden, wie an anderer Stelle in dieser Offenbarung beschrieben wurde.
-
Ein beliebiger geeigneter Typ einer LIDAR-Einheit kann am Fahrzeug 2700 vorhanden sein. In manchen Fällen kann das LIDAR-System 2960 eine oder mehrere Blitz-LIDAR-Einheiten (beispielsweise 3D-Blitz-LIDAR), wobei ein gesamtes LIDAR-Gesichtsfeld (FOV) mit einem einzigen Laserpuls beleuchtet wird, und einen Zeilen und Spalten von Pixeln aufweisenden Sensor zur Aufzeichnung der Intensität des zurückkehrenden Lichts und von Flugzeit-/Tiefeninformationen aufweisen. Solche Blitzsysteme können eine Szene beleuchten und LIDAR-„Bilder“ mehrere Male pro Sekunde sammeln. Es können auch scannende LIDAR-Einheiten verwendet werden. Solche scannenden LIDAR-Einheiten können auf einer oder mehreren Techniken zur Dispersion eines Laserstrahls über ein bestimmtes FOV beruhen. In manchen Fällen kann eine scannende LIDAR-Einheit einen Scan-Spiegel aufweisen, der einen Laserstrahl zu Objekten innerhalb des FOVs ablenkt und auf diese richtet. Scan-Spiegel können sich um volle 360 Grad oder entlang einer einzigen Achse oder mehreren Achsen über weniger als 360 Grad drehen, um den Laser zu einem vorgegebenen FOV zu lenken. In manchen Fällen können LIDAR-Einheiten eine horizontale Linie abtasten. In anderen Fällen kann eine LIDAR-Einheit mehrere horizontale Linien innerhalb eines FOVs abtasten, wodurch ein bestimmtes FOV effektiv mehrere Male pro Sekunde gerastert wird.
-
Die LIDAR-Einheiten im LIDAR-System 2960 können eine beliebige geeignete Laserquelle aufweisen. Gemäß einigen Ausführungsformen können die LIDAR-Einheiten einen Dauerstrichlaser verwenden. In anderen Fällen können die LIDAR-Einheiten auf gepulsten Laseremissionen beruhen. Zusätzlich kann eine beliebige geeignete Laserwellenlänge verwendet werden. In einigen Fällen kann eine Wellenlänge zwischen etwa 600 nm und etwa 1000 nm verwendet werden.
-
Die eine oder die mehreren LIDAR-Einheiten im LIDAR-System 2960 können auch einen geeigneten Sensortyp aufweisen und einen geeigneten Ausgabetyp bereitstellen. In manchen Fällen können Sensoren der LIDAR-Einheiten Halbleiter-Photodetektoren in der Art einer oder mehrerer Photodioden oder Photomultiplier aufweisen. Die Sensoren können auch eine oder mehrere CMOS- oder CCD-Vorrichtungen mit einer Anzahl von Pixeln aufweisen. Diese Sensoren können für von einer Szene innerhalb des LIDAR-FOVs reflektiertes Laserlicht empfindlich sein. Die Sensoren können verschiedene Ausgabetypen von einer LIDAR-Einheit ermöglichen. In manchen Fällen kann eine LIDAR-Einheit Roh-Lichtintensitätswerte und Flugzeitinformationen in Bezug auf das an jedem Sensor oder an jedem Pixel oder jeder Teilkomponente eines bestimmten Sensors gesammelte reflektierte Laserlicht ausgeben. Zusätzlich oder alternativ kann eine LIDAR-Einheit eine Punktwolke (beispielsweise eine 3D-Punktwolke) ausgeben, die Lichtintensitäts- und Tiefen-/Abstandsinformationen in Bezug auf jeden gesammelten Punkt aufweisen kann. LIDAR-Einheiten können auch verschiedene Typen von Tiefenkarten ausgeben, welche die Lichtreflexionsamplitude und den Abstand von Punkten innerhalb eines Gesichtsfelds repräsentieren. LIDAR-Einheiten können Tiefen- oder Abstandsinformationen in Bezug auf bestimmte Punkte innerhalb eines FOVs bereitstellen, indem sie die Zeit, zu der Licht von der LIDAR-Lichtquelle ursprünglich in das FOV projiziert wurde, registrieren und die Zeit, zu der das einfallende Laserlicht durch einen Sensor in der LIDAR-Einheit empfangen wird, aufzeichnen. Die Zeitdifferenz kann eine Flugzeit repräsentieren, die direkt in Beziehung mit der Umlaufstrecke stehen kann, welche das von der Laserquelle zu einem reflektierenden Objekt und zur LIDAR-Einheit zurück gelaufene einfallende Laserlicht zurückgelegt hat. Durch Überwachen der Flugzeitinformationen in Zusammenhang mit individuellen Laserflecken oder kleinen Segmenten eines LIDAR-FOVs können genaue Abstandsinformationen für mehrere Punkte innerhalb des FOVs bereitgestellt werden (beispielsweise eine Abbildung auf sogar sehr kleine Merkmale von Objekten innerhalb des FOVs). In einigen Fällen können LIDAR-Einheiten komplexere Informationen in der Art von Klassifikationsinformationen ausgeben, die eine oder mehrere Laserreflexionen mit einem Objekttyp, von dem die Laserreflexion erfasst wurde, korrelieren.
-
Das Navigationssystem 2970 kann dafür ausgelegt sein, einen Fahrer des Fahrzeugs 2700 beim Betrieb des Fahrzeugs 2700 zu unterstützen. Alternativ oder zusätzlich kann das Navigationssystem 2970 ein autonomes Fahrzeugnavigationssystem aufweisen, das dafür ausgelegt ist, die Bewegung eines Fahrzeugs 2700 zu steuern, wie an anderer Stelle in dieser Offenbarung beschrieben. Beispielsweise kann das Navigationssystem 2970 dafür ausgelegt sein, das Fahrzeug 2700 auf der Grundlage vom Prozessor 2910 empfangener Befehle zu steuern. Gemäß einigen Ausführungsformen kann das Navigationssystem 2970 ein oder mehrere Aktuatoren oder gesteuerte Vorrichtungen aufweisen, die dafür ausgelegt sind, wenigstens eine Navigationsaktion auf der Grundlage eines oder mehrerer vom Prozessor 2910 empfangener Steuersignale zu implementieren. Diese Aktuatoren und Vorrichtungen können einen Beschleuniger, eine oder mehrere Lenksteuerungen, eine Bremse, einen Signalsender, eine Anzeige oder einen anderen Aktuator oder eine andere Vorrichtung einschließen, der oder die als Teil einer Navigationsoperation in Zusammenhang mit dem Fahrzeug 2700 gesteuert werden können.
-
30 ist ein Flussdiagramm eines beispielhaften Prozesses 3000 zum Navigieren eines Fahrzeugs gemäß offenbarten Ausführungsformen. Ein oder mehrere Schritte des Prozesses 3000 können durch ein Fahrzeug (beispielsweise das Fahrzeug 2700), eine Vorrichtung in Zusammenhang mit dem Host-Fahrzeug, wenigstens einen Prozessor (beispielsweise den Prozessor 2910) und/oder einen Server (beispielsweise einen oder mehrere hier beschriebene Server) ausgeführt werden. Wenngleich in den nachstehend bereitgestellten Beschreibungen des Prozesses 3000 beispielhaft das Fahrzeug 2700 (oder eine oder mehrere Komponenten davon) verwendet wird, werden Fachleute verstehen, dass ein oder mehrere Schritte des Prozesses 3000 durch einen Server und/oder eine Fahrzeugvorrichtung ausgeführt werden können. Beispielsweise weist gemäß einer Ausführungsform ein System zum Navigieren eines Fahrzeugs wenigstens einen Prozessor, der eine Schaltungsanordnung und einen Speicher umfasst, auf. Der Speicher kann Befehle aufweisen, die, wenn sie von der Schaltungsanordnung ausgeführt werden, den wenigstens einen Prozessor veranlassen, eine oder mehrere Operationen in der Art jeglicher der hier und/oder in Zusammenhang mit 30 erörterten Operationen auszuführen. Bei einem anderen Beispiel enthält gemäß einer anderen Ausführungsform ein nichtflüchtiges computerlesbares Medium Befehle, die, wenn sie von wenigstens einem Prozessor (beispielsweise einem Elektronischer-Horizont-Prozessor) ausgeführt werden, den wenigstens einen Prozessor veranlassen können, eine oder mehrere Operationen in der Art jeglicher der hier und/oder in Zusammenhang mit 30 erörterten Operationen auszuführen.
-
In Schritt 3001 empfängt wenigstens ein Prozessor einen von einer Bildaufnahmevorrichtung in Zusammenhang mit dem Host-Fahrzeug erfassten Bildframe. Der Bildframe kann eine Umgebung des Host-Fahrzeugs repräsentieren. Beispielsweise kann eine Kamera in Zusammenhang mit dem Fahrzeug 2700 (beispielsweise Bildaufnahmevorrichtung 122, Bildaufnahmevorrichtung 124 und/oder Bildaufnahmevorrichtung 126) dafür ausgelegt sein, einen oder mehrere Bildframes von der Umgebung des Fahrzeugs 2700 aufzunehmen, wie an anderer Stelle in dieser Offenbarung beschrieben. Beispielsweise kann die Kamera dafür ausgelegt sein, das in 27 dargestellte Bild 2710 von der Umgebung des Fahrzeugs 2700 aufzunehmen und das Bild 2710 zur Weiterverarbeitung zum Prozessor 2910 zu übertragen.
-
Mit Bezug auf 30 sei bemerkt, dass der wenigstens eine Prozessor in Schritt 3002 im Bildframe eine Repräsentation eines Zielfahrzeugs identifiziert. Beispielsweise kann der Prozessor 2910 dafür ausgelegt sein, das Zielfahrzeug 2711 im in 27 dargestellten Bild 2710 zu identifizieren.
-
Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor ein oder mehrere Kandidatenfahrzeuge im Bildframe auf der Grundlage eines oder mehrerer Faktoren aus der weiteren Analyse für eine Tür-offen-Erkennung ausschließen. Beispielhafte Faktoren können die Bewegung (oder ein Fehlen von dieser) eines Kandidatenfahrzeugs, den lateralen Abstand eines Kandidatenfahrzeugs vom Host-Fahrzeug, den longitudinalen Abstand eines Kandidatenfahrzeugs vom Host-Fahrzeug oder dergleichen oder eine Kombination davon einschließen. Beispielsweise kann der wenigstens eine Prozessor ein Zielfahrzeug zumindest teilweise auf der Grundlage einer Feststellung identifizieren, ob sich ein erkanntes Fahrzeug bewegt. Es ist weniger wahrscheinlich, dass ein sich bewegendes Fahrzeug eine offene Tür aufweist, und eine erkannte offene Tür eines sich bewegenden Fahrzeugs kann vom Prozessor als falsch positives Ereignis angesehen werden. Der wenigstens eine Prozessor kann feststellen, dass sich ein erkanntes Fahrzeug nicht bewegt, indem er mehrere Bildframes analysiert, oder er kann dies durch andere Mittel feststellen, beispielsweise auf der Grundlage von Radarinformationen, und das erkannte Fahrzeug als Zielfahrzeug identifizieren. Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor dafür ausgelegt sein, ein anhand der Bildframes erkanntes sich bewegendes Fahrzeug aus der Analyse auszuschließen.
-
Alternativ oder zusätzlich kann der wenigstens eine Prozessor ein Zielfahrzeug zumindest teilweise auf der Grundlage einer Bestimmung eines lateralen Abstands zwischen dem Host-Fahrzeug und dem Zielfahrzeug identifizieren. Beispielsweise kann ein Kandidatenfahrzeug mit einem eine Schwelle (beispielsweise 4,5 Meter) überschreitenden lateralen Abstand vom Host-Fahrzeug außerhalb eines Bereichs liegen, in dem eine offene Tür mit dem Host-Fahrzeug kollidieren kann, und der wenigstens eine Prozessor kann ein solches Kandidatenfahrzeug nicht als Zielfahrzeug identifizieren. Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor ein Kandidatenfahrzeug, das einen lateralen Abstand vom Host-Fahrzeug aufweist, der kleiner oder gleich einem Schwellenabstand (beispielsweise 4,5 Meter) ist, als Zielfahrzeug identifizieren. Der Schwellenabstand kann in einem Bereich von 1 bis 10 Metern liegen, was in Unterbereiche von 1 bis 2 Metern, 2 bis 5 Metern oder 5 bis 10 Metern beschränkt werden kann.
-
Alternativ oder zusätzlich kann der wenigstens eine Prozessor ein Zielfahrzeug zumindest teilweise auf der Grundlage einer Bestimmung eines longitudinalen Abstands zwischen dem Host-Fahrzeug und dem Zielfahrzeug identifizieren. In manchen Fällen kann ein Kandidatenfahrzeug, dessen lateraler Abstand vom Host-Fahrzeug größer als ein Schwellenabstand (beispielsweise 50 Meter) ist, zur Erkennungszeit eine offene Tür aufweisen, wobei die Tür des Kandidatenfahrzeugs jedoch geschlossen sein kann, wenn das Host-Fahrzeug in der Nähe des Kandidatenfahrzeugs fährt. Dementsprechend kann ein Kandidatenfahrzeug, das weit vom Host-Fahrzeug entfernt ist (beispielsweise das in 28A dargestellte Fahrzeug 2821), aus der weiteren Analyse ausgeschlossen werden. Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor ein Kandidatenfahrzeug, das einen lateralen Abstand vom Host-Fahrzeug, der kleiner als ein Schwellenabstand (beispielsweise 50 Meter) ist, aufweist, als Zielfahrzeug identifizieren. Der Schwellenabstand kann in einem Bereich von 10 bis 500 Metern liegen, was in Unterbereiche von 10 bis 20 Metern, 20 bis 50 Metern, 50 bis 100 Metern oder 100 bis 500 Metern beschränkt werden kann.
-
In Schritt 3003 bestimmt der wenigstens eine Prozessor einen oder mehrere Orientierungsindikatoren in Zusammenhang mit dem Zielfahrzeug. Ein Orientierungsindikator kann einen Indikator einschließen, der angibt, dass ein Teil des Zielfahrzeugs im Bildframe repräsentiert ist. Beispielsweise kann der Orientierungsindikator einen oder mehrere der Folgenden einschließen: einen Indikator, der angibt, dass ein Teil der Vorderseite des Zielfahrzeugs im Bildframe repräsentiert ist, einen Indikator, der angibt, dass ein Teil der Rückseite des Zielfahrzeugs im Bildframe repräsentiert ist, und einen Indikator, der angibt, dass ein Teil einer Seite des Zielfahrzeugs im Bildframe repräsentiert ist. Beispielsweise kann, auf 27 verweisend, der wenigstens eine Prozessor einen Indikator bestimmen, der angibt, dass ein Teil einer Seite des Zielfahrzeugs 2711 im Bild 2710 repräsentiert ist.
-
Mit Bezug auf 30 sei bemerkt, dass der wenigstens eine Prozessor in Schritt 3004 wenigstens ein Kandidatengebiet des erfassten Bildframes identifiziert, wo auf der Grundlage des bestimmten einen oder der bestimmten mehreren Orientierungsindikatoren erwartet wird, dass eine Repräsentation einer Fahrzeugtür des Zielfahrzeugs in einem Tür-offen-Zustand ist. Beispielsweise kann der wenigstens eine Prozessor ein Kandidatengebiet identifizieren, das im Bildframe wenigstens einen identifizierten Teil der Fahrzeugtür des Zielfahrzeugs aufweist. Beispielsweise kann der wenigstens eine Prozessor ein Kandidatengebiet 2713 des in 27 dargestellten Bilds 2710 identifizieren, das die Repräsentation der Fahrzeugtür 2712 des Zielfahrzeugs 2711 aufweist, von der erwartet wird, dass sie in einem Tür-offen-Zustand ist.
-
Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor wenigstens ein Kandidatengebiet gemäß dem einen oder den mehreren in Schritt 3003 bestimmten Orientierungsindikatoren in Zusammenhang mit dem Zielfahrzeug identifizieren. Beispielsweise kann der wenigstens eine Prozessor, wie vorstehend beschrieben, einen Indikator bestimmen, der angibt, dass ein Teil der Vorderseite des Zielfahrzeugs im Bildframe repräsentiert ist. Der wenigstens eine Prozessor kann auch wenigstens ein Kandidatengebiet des Bildframes identifizieren, das ein Bildsegment aufweisen kann, das sich rechts oder links einer Repräsentation der Vorderseite des Zielfahrzeugs im Bildframe befindet. Alternativ oder zusätzlich kann der wenigstens eine Prozessor einen Indikator bestimmen, der angibt, dass ein Teil der Rückseite des Zielfahrzeugs im Bildframe repräsentiert ist. Der wenigstens eine Prozessor kann auch wenigstens ein Kandidatengebiet des Bildframes identifizieren, das ein Bildsegment aufweisen kann, das sich rechts oder links einer Repräsentation der Rückseite des Zielfahrzeugs im Bildframe befindet. Alternativ oder zusätzlich kann der wenigstens eine Prozessor einen Indikator bestimmen, der angibt, dass ein Teil einer Seite des Zielfahrzeugs im Bildframe repräsentiert ist. Der wenigstens eine Prozessor kann auch wenigstens ein Kandidatengebiet des Bildframes identifizieren, das ein Bildsegment zumindest teilweise innerhalb einer Bildeinfassung in Zusammenhang mit einer Repräsentation im Bildframe der Seite des Zielfahrzeugs aufweist.
-
Mit Bezug auf 30 sei bemerkt, dass der wenigstens eine Prozessor in Schritt 3005 das wenigstens eine Kandidatengebiet aus dem Bildframe extrahiert. Beispielsweise kann der wenigstens eine Prozessor das Kandidatengebiet 2713 aus dem in 27 dargestellten Bild 2710 extrahieren.
-
Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor das wenigstens eine den identifizierten Abschnitt des Zielfahrzeugs aufweisende Kandidatengebiet und einen vorgegebenen Rand angrenzend an wenigstens eine Seite des identifizierten Teils des Zielfahrzeugs extrahieren.
-
In Schritt 3006 stellt der wenigstens eine Prozessor das wenigstens eine extrahierte Kandidatengebiet einem Tür-offen-Erkennungsnetz bereit. Ein Tür-offen-Erkennungsnetz kann ein oder mehrere in dieser Anmeldung beschriebene Netze einschließen. Beispielsweise kann ein Tür-offen-Erkennungsnetz ein tiefes neuronales Netz (DNN) einschließen. Der wenigstens eine Prozessor kann dafür ausgelegt sein, das wenigstens eine extrahierte Kandidatengebiet dem DNN als Eingabe bereitzustellen.
-
Gemäß einigen Ausführungsformen kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, eine Klassifikation, ob eine Tür des Zielfahrzeugs in einem offenen Zustand ist, auszugeben. Alternativ oder zusätzlich kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, ein Begrenzungskästchen in Zusammenhang mit einer Tür des Zielfahrzeugs, von der festgestellt wurde, dass sie sich in einem offenen Zustand befindet, auszugeben. Alternativ oder zusätzlich kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, eine oder mehrere Abstandskoordinaten zwischen wenigstens einem Teil des Host-Fahrzeugs und einer Tür des Zielfahrzeugs, von der festgestellt wurde, dass sie sich in einem offenen Zustand befindet, auszugeben. Alternativ oder zusätzlich kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, eine Klassifikation, ob eine Tür des Zielfahrzeugs, die zumindest teilweise durch eine Fahrzeugkarosserie verdeckt ist, in einem offenen Zustand ist, auszugeben. Alternativ oder zusätzlich kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, eine Klassifikation, ob eine Tür des Zielfahrzeugs, die zumindest teilweise durch einen Fußgänger verdeckt ist, in einem offenen Zustand ist, auszugeben. Gemäß einigen Ausführungsformen kann das Tür-offen-Erkennungsnetz ferner einen Vertrauenswert (beispielsweise 90 %) in Zusammenhang mit dem ausgegebenen Ergebnis ausgeben.
-
Gemäß einigen Ausführungsformen kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, das wenigstens eine extrahierte Kandidatengebiet drei Mal oder öfter zu analysieren und ein Ergebnis auf der Grundlage der drei oder mehr Analysen auszugeben. Beispielsweise kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, das wenigstens eine extrahierte Kandidatengebiet zu analysieren, um ein erstes Ergebnis auszugeben. Das Tür-offen-Erkennungsnetz kann auch dafür ausgelegt sein, die Analyse des wenigstens einen extrahierten Kandidatengebiets zwei weitere Male zu wiederholen, um ein zweites und ein drittes Ergebnis auszugeben. Das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) kann dafür ausgelegt sein, ein Endergebnis auf der Grundlage des ersten, des zweiten und des dritten Ergebnisses zu bestimmen. Beispielsweise kann das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) dafür ausgelegt sein, festzustellen, dass das wenigstens eine extrahierte Kandidatengebiet eine Repräsentation einer Tür des Zielfahrzeugs, die sich in einem offenen Zustand befindet, aufweist, falls alle drei Analysen einen Tür-offen-Zustand angeben. Alternativ oder zusätzlich kann das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) dafür ausgelegt sein, eine Tür-offen-Angabe zu bestimmen, falls die Anzahl der positiven Ergebnisse größer als die Anzahl der negativen Ergebnisse ist. Gemäß einigen Ausführungsformen, wie an anderer Stelle in dieser Offenbarung beschrieben, kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, einen Vertrauenswert in Zusammenhang mit einem Ergebnis auszugeben. Das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) kann auch dafür ausgelegt sein, eine Tür-offen-Angabe auf der Grundlage eines oder mehrerer Vertrauenswerte in Zusammenhang mit den Ergebnissen von drei oder mehr Analysen zu bestimmen. Beispielsweise kann das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) eine endgültige Tür-offen-Angabe in Zusammenhang mit dem Zielfahrzeug nur dann bestimmen, falls die drei Ergebnisse eine Tür-offen-Angabe aufweisen und alle Vertrauenswerte in Zusammenhang mit den Angaben größer oder gleich einer Schwelle (beispielsweise 90 %) sind. Alternativ oder zusätzlich kann das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) eine endgültige Tür-offen-Angabe bestimmen, falls der Durchschnitt der drei Vertrauenswerte größer oder gleich einer Schwelle (beispielsweise 90 %) ist. Gemäß einigen Ausführungsformen können drei oder mehr Analysen durch das Tür-offen-Erkennungsnetz unter Verwendung unterschiedlicher Daten (beispielsweise Bilddaten und/oder Lidar-Daten) ausgeführt werden. Beispielsweise kann das Tür-offen-Erkennungsnetz ein extrahiertes Kandidatengebiet eines ersten Bilds analysieren, um ein erstes Ergebnis auszugeben, das angibt, ob es eine Angabe einer offenen Tür in Zusammenhang mit dem Zielfahrzeug gibt. Das Tür-offen-Erkennungsnetz kann auch ein extrahiertes Kandidatengebiet eines zweiten Bilds analysieren, um ein zweites Ergebnis auszugeben, das angibt, ob es eine Angabe einer offenen Tür in Zusammenhang mit dem Zielfahrzeug gibt, und ein extrahiertes Kandidatengebiet eines dritten Bilds analysieren, um ein drittes Ergebnis auszugeben, das angibt, ob es eine Angabe einer offenen Tür in Zusammenhang mit dem Zielfahrzeug gibt. Bei einem anderen Beispiel kann das Tür-offen-Erkennungsnetz ein extrahiertes Kandidatengebiet eines ersten Bilds analysieren, um ein erstes Ergebnis auszugeben, und ein extrahiertes Kandidatengebiet eines zweiten Bilds analysieren, um ein zweites Ergebnis auszugeben. Das Tür-offen-Erkennungsnetz (oder ein anderes Erkennungsnetz) kann gleichzeitig (oder im Wesentlichen gleichzeitig) mit der Aufnahme des ersten Bilds und/oder des zweiten Bilds gesammelte Lidar-Daten analysieren, um ein drittes Ergebnis auszugeben. Gemäß einigen Ausführungsformen kann das Tür-offen-Erkennungsnetz (und/oder der Prozessor 2910) ein Endergebnis bestimmen, das auf der Grundlage des ersten, des zweiten und des dritten Ergebnisses das Vorhandensein (oder Nichtvorhandensein) einer offenen Tür angibt. Beispielsweise kann das Tür-offen-Erkennungsnetz (und/oder der Prozessor 2910) ein Endergebnis bestimmen, welches das Vorhandensein einer offenen Tür in Zusammenhang mit dem Zielfahrzeug angibt, wenn alle Ergebnisse eine Tür-offen-Angabe aufweisen. Alternativ kann das Tür-offen-Erkennungsnetz (und/oder der Prozessor 2910) ein mit der Mehrzahl der drei Ergebnisse übereinstimmendes Endergebnis bestimmen. Beispielsweise können das erste und das zweite Ergebnis das Vorhandensein einer offenen Tür angeben, kann das dritte Ergebnis jedoch das Nichtvorhandensein einer offenen Tür angeben. Das Tür-offen-Erkennungsnetz (und/oder der Prozessor 2910) kann ein das Vorhandensein einer offenen Tür in Zusammenhang mit dem Zielfahrzeug angebendes Endergebnis ausgeben.
-
Gemäß einigen Ausführungsformen kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, äußere Türmerkmale (beispielsweise einen Türgriff, einen Außenrahmen), die in dem wenigstens einen Kandidatengebiet des Bildframes repräsentiert sind, zu identifizieren und zumindest teilweise auf der Grundlage der identifizierten äußeren Türmerkmale, die im wenigstens einen Kandidatengebiet des Bildframes repräsentiert sind, festzustellen, ob eine Tür des Zielfahrzeugs in einem offenen Zustand ist. Alternativ oder zusätzlich kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, innere Türmerkmale, die in dem wenigstens einen Kandidatengebiet des Bildframes repräsentiert sind, zu identifizieren und zumindest teilweise auf der Grundlage der identifizierten inneren Türmerkmale, die in dem wenigstens einen Kandidatengebiet des Bildframes repräsentiert sind, festzustellen, ob eine Tür des Zielfahrzeugs in einem offenen Zustand ist. Beispielhafte innere Türmerkmale können eine Armlehne, eine Steuerkonsole (beispielsweise zum Steuern der Fenster und/oder Seitenspiegel des Fahrzeugs), einen Türverriegelungsmechanismus oder Teile oder dergleichen oder eine Kombination davon einschließen.
-
Gemäß einigen Ausführungsformen kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, zusätzliche Informationen in Bezug auf das Zielfahrzeug und/oder die Tür auszugeben. Beispielsweise kann das Tür-offen-Erkennungsnetz dafür ausgelegt sein, einen Indikator des Abstands in Bezug auf eine erkannte offene Tür des Zielfahrzeugs auszugeben. Der Abstand kann den lateralen Abstand und/oder den longitudinalen Abstand in Bezug auf eine erkannte offene Tür des Zielfahrzeugs einschließen.
-
Gemäß einigen Ausführungsformen kann ein sich bewegendes Fahrzeug noch als Zielfahrzeug identifiziert werden (in Schritt 3003) und kann der wenigstens eine Prozessor wenigstens ein Kandidatengebiet im Bildframe identifizieren (in Schritt 3004), das wenigstens eine Kandidatengebiet aus dem Bildframe extrahieren und das wenigstens eine extrahierte Kandidatengebiet einem Tür-offen-Erkennungsnetz bereitstellen (in Schritt 3005), wie an anderer Stelle in dieser Offenbarung beschrieben. Das Tür-offen-Erkennungsnetz kann das extrahierte Kandidatengebiet analysieren und ein Ergebnis (beispielsweise eine Klassifikation, ob eine Tür des Zielfahrzeugs in einem offenen Zustand ist) ausgeben. Gemäß einigen Ausführungsformen kann das Tür-offen-Erkennungsnetz (und/oder der Prozessor 2910) für ein sich bewegendes Fahrzeug dem ausgegebenen Ergebnis einen niedrigeren Vertrauenswert (und/oder einen niedrigeren Gewichtungsfaktor) zuweisen. Ein niedriger Vertrauenswert in Bezug auf eine offene Tür kann gemäß Ausführungsformen, bei denen mehrere Bilder verarbeitet werden, um eine Entscheidung über die offene Tür zu treffen (wobei beispielsweise gefordert wird, dass der durchschnittliche Vertrauenswert oberhalb einer Schwelle liegt usw.) und/oder gemäß Ausführungsformen, bei denen eine Fahrrichtlinie oder eine Sicherheitsrichtlinie verwendet wird, um eine oder mehrere Navigationsaktionen zum Steuern des Fahrzeugs auf der Grundlage eines Umgebungsmodells des Fahrzeugs zu bestimmen, verwendet werden.
-
In Schritt 3007 bestimmt der wenigstens eine Prozessor wenigstens eine Navigationsaktion für das Host-Fahrzeug als Reaktion auf eine Angabe vom Tür-offen-Erkennungsnetz, dass das wenigstens eine extrahierte Kandidatengebiet eine Repräsentation einer Tür des Zielfahrzeugs in einem offenen Zustand aufweist. Beispielhafte Navigationsaktionen können das Ändern der Lenkrichtung des Host-Fahrzeugs, das Bremsen oder Verlangsamen des Host-Fahrzeugs, das Beibehalten des aktuellen Steuerkurses und der aktuellen Geschwindigkeit des Host-Fahrzeugs oder dergleichen oder eine Kombination davon einschließen.
-
Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor wenigstens eine Navigationsaktion für das Host-Fahrzeug auf der Grundlage einer vorhergesagten Zeit bis zu einem Kontakt zwischen dem Host-Fahrzeug und einer erkannten offenen Tür des Zielfahrzeugs bestimmen. Beispielsweise kann der wenigstens eine Prozessor wenigstens eine Navigationsaktion für das Host-Fahrzeug zum Beibehalten des aktuellen Steuerkurses und der aktuellen Geschwindigkeit des Host-Fahrzeugs bestimmen, falls die vorhergesagte Zeit bis zu einem Kontakt zwischen dem Host-Fahrzeug und einer erkannten offenen Tür des Zielfahrzeugs größer als eine Schwellenzeit ist. Alternativ oder zusätzlich kann der wenigstens eine Prozessor wenigstens eine Navigationsaktion für das Host-Fahrzeug auf der Grundlage des Abstands zwischen dem Host-Fahrzeug und einer erkannten offenen Tür des Zielfahrzeugs bestimmen. Beispielsweise kann der wenigstens eine Prozessor wenigstens eine Navigationsaktion für das Host-Fahrzeug zum Beibehalten des aktuellen Steuerkurses und der aktuellen Geschwindigkeit des Host-Fahrzeugs bestimmen, falls der vorhergesagte Abstand (beispielsweise laterale Abstand) bis zu einem Kontakt zwischen dem Host-Fahrzeug und einer erkannten offenen Tür des Zielfahrzeugs größer als ein Schwellenabstand ist. Der Abstand bis zum Kontakt zwischen dem Host-Fahrzeug und einer erkannten offenen Tür des Zielfahrzeugs kann auf der Grundlage durch das Lidar-System 2960 gesammelter LIDAR-Informationen bestimmt werden. Alternativ oder zusätzlich kann der Abstand auf der Grundlage von Bewegungsberechnungen gemäß mehreren Bildframes von der Umgebung des Host-Fahrzeugs bestimmt werden. Alternativ oder zusätzlich kann das Türoffen-Erkennungsnetz den Abstand auf der Grundlage der Eingabe (beispielsweise des extrahierten Kandidatengebiets und/oder des Bildframes) bestimmen. Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor wenigstens eine Navigationsaktion für das Host-Fahrzeug zum Beibehalten des aktuellen Steuerkurses und der aktuellen Geschwindigkeit des Host-Fahrzeugs bestimmen, falls die vorhergesagte Zeit bis zu einem Kontakt zwischen dem Host-Fahrzeug und einer erkannten offenen Tür des Zielfahrzeugs größer als eine Schwellenzeit ist und falls der vorhergesagte Abstand bis zum Kontakt zwischen dem Host-Fahrzeug und einer erkannten offenen Tür des Zielfahrzeugs größer als ein Schwellenabstand ist.
-
Gemäß einigen Ausführungsformen kann das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) dafür ausgelegt sein, festzustellen, ob es eine Erwartung (oder eine Wahrscheinlichkeit oberhalb einer Schwelle) gibt, dass die offene Tür geschlossen wird, bevor das Host-Fahrzeug die Position der offenen Tür schneidet, wenn die offene Tür erkannt wurde. Beispielsweise kann das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) dafür ausgelegt sein, die aktuelle Geschwindigkeit des Host-Fahrzeugs und den Abstand zwischen dem Host-Fahrzeug und dem Zielfahrzeug zu erhalten. Das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) kann auch einen vorhergesagten Zeitraum, nachdem das Host-Fahrzeug die Position der offenen Tür schneiden wird, wenn die offene Tür erkannt wurde, bestimmen. Das Tür-offen-Erkennungsnetz (und/oder der wenigstens eine Prozessor) kann auch feststellen, ob es eine Erwartung (oder eine Wahrscheinlichkeit oberhalb einer Schwelle) gibt, dass die offene Tür geschlossen wird, bevor das Host-Fahrzeug die Position der offenen Tür schneidet, falls der vorhergesagte Zeitraum größer oder gleich einer Schwelle (beispielsweise 30 Sekunden) ist.
-
Gemäß einigen Ausführungsformen kann der wenigstens eine Prozessor eine Navigationsaktion auf der Grundlage der erkannten offenen Tür des Zielfahrzeugs und einer geplanten Fahrstrecke für das Host-Fahrzeug bestimmen. Beispielsweise kann der wenigstens eine Prozessor einen Ort der erkannten offenen Tür des Zielfahrzeugs mit einer geplanten Fahrstrecke für das Host-Fahrzeug vergleichen und die wenigstens eine Navigationsaktion auf der Grundlage des Vergleichs bestimmen. Falls beispielsweise festgestellt wird, dass das Host-Fahrzeug in Kontakt mit einer vordefinierten Einfassung um die Tür des Zielfahrzeugs gelangen oder in diese eintreten kann, falls das Host-Fahrzeug auf der geplanten Fahrstrecke bleibt, kann der wenigstens eine Prozessor eine Implementation einer Navigationsaktion (beispielsweise Ändern der Kursrichtung und/oder Bremsen) festlegen, so dass sich das Host-Fahrzeug vom Zielfahrzeug entfernen kann. Bei diesem Beispiel kann der wenigstens eine Prozessor einen lateralen Sicherheitsabstand (beispielsweise 1 Meter, 2 Meter usw.) für das Host-Fahrzeug auf der Grundlage des bestimmten Abstands, bis zu dem sich die Tür vom Zielfahrzeug fort erstreckt, festlegen und kann die Änderung der geplanten Fahrstrecke des Host-Fahrzeugs zumindest teilweise auf dem festgelegten lateralen Sicherheitsabstand beruhen. Bei einem anderen Beispiel kann der wenigstens eine Prozessor einen lateralen Sicherheitsabstand für das Host-Fahrzeug auf der Grundlage eines vordefinierten Werts in der Art eines Werts, der einem typischen Vorstand entspricht, der mit dem Öffnen einer Fahrzeugtür verbunden ist, festlegen. Ferner kann beispielsweise ein anderer vordefinierter Wert für andere Fahrzeugtypen verwendet werden und kann beispielsweise für andere Größen von Fahrzeugen in der Art eines Lastwagens ein größerer vordefinierter Sicherheitsabstandswert als bei einem kleineren Fahrzeug verwendet werden. Es ist zu verstehen, dass der laterale Sicherheitsabstand zwischen dem Host-Fahrzeug und dem Zielfahrzeug für eine Tür-offen-Situation durch ein trainiertes Netz bestimmt werden kann. Beispielsweise kann das trainierte Netz darauf trainiert sein, einen lateralen Sicherheitsabstand für eine Tür-offen-Situation unter Verwendung von Trainingsdaten bereitzustellen, die mehrere Trainingssätze aufweisen, die jeweils ein Bild eines Zielfahrzeugs enthalten können, für das der laterale Sicherheitsabstand bereitzustellen ist. Gemäß einigen Ausführungsformen kann der laterale Sicherheitsabstand für ein Tür-offen-Situationsnetz unter Verwendung eines großen Satzes von Bildern einer Vielzahl von Fahrzeugen, möglicherweise in verschiedenen Orientierungen und für jedes Fahrzeug und möglicherweise für jede Orientierung für den jeweiligen lateralen Sicherheitsabstand für eine Türoffen-Situation trainiert werden.
-
In Schritt 3008 veranlasst der wenigstens eine Prozessor einen oder mehrere Aktuatoren in Zusammenhang mit dem Host-Fahrzeug, die wenigstens eine in Schritt 3007 bestimmte Navigationsaktion zu implementieren. Beispielsweise kann der wenigstens eine Prozessor zum Implementieren einer Navigationsaktion, welche die aktuelle Geschwindigkeit des Host-Fahrzeugs verringert, ein Steuersignal zum Navigationssystem 2970 senden, das dafür ausgelegt sein kann, Bremsaktuatoren zu veranlassen, die Bremsen des Host-Fahrzeugs zu betätigen, und/oder einen Beschleuniger (beispielsweise ein Gaspedal oder ein elektrisches Pedal) zu veranlassen, die Geschwindigkeit auf der Grundlage des Steuersignals zu verringern.
-
Gemäß einigen Ausführungsformen kann ein Tür-offen-Erkennungsnetz ein trainiertes neuronales Netz zum Identifizieren einer Angabe, dass ein Kandidatengebiet eine Repräsentation einer Tür des Zielfahrzeugs in einem offenen Zustand aufweist, einschließen. Beispielsweise kann ein trainiertes neuronales Netz auf der Grundlage eines in 31 dargestellten beispielhaften Trainingsprozesses 3100 erzeugt werden. 31 ist ein Blockdiagramm eines beispielhaften Trainingsprozesses 3100 zum Training eines Modells zum Identifizieren eines Tür-offen-Zustands in Zusammenhang mit einem Zielfahrzeug. Wie in 31 dargestellt ist, können Trainingsdaten 3104 in einen Trainingsalgorithmus 3106 eingegeben werden, um ein trainiertes Modell 3108 zum Identifizieren eines Tür-offen-Zustands in Zusammenhang mit einem Zielfahrzeug zu erzeugen. Gemäß einigen Ausführungsformen kann der Trainingsalgorithmus 3106 ein künstliches neuronales Netz sein. Es können verschiedene andere Maschinenlernalgorithmen verwendet werden, einschließlich logistischer Regression, linearer Regression, Regression, Random Forest, eines K-Nearest-Neighbor(KNN)-Modells, eines K-Means-Modells, eines Entscheidungsbaums, eines Cox-Proportional-Hazards-Regressionsmodells, eines Naive-Bayes-Modells, eines Support-Vector-Machines(SVM)-Modells, eines Gradient-Boosting-Algorithmus oder einer anderen Form eines Maschinenlernmodells oder - algorithmus. Gemäß der vorliegenden Offenbarung können Trainingsdaten 3104 mehrere Trainingssätze aufweisen. Jeder der Trainingssätze kann einen Bildframe (oder ein Bildsegment davon) und eine Angabe des Vorhandenseins (oder Nichtvorhandenseins) eines Tür-offen-Zustands in Zusammenhang mit einem Fahrzeug, die als Ground Truth bezeichnet werden kann, aufweisen. Die Trainingsdaten können auf der Grundlage vom Host-Fahrzeug (beispielsweise Fahrzeug 2700) und/oder einem anderen Fahrzeug gesammelter Informationen (beispielsweise Bilder) erzeugt werden. Die in den Trainingsdaten enthaltenen Bilder können in den Trainingsalgorithmus 3106 eingegeben werden, der Ergebnisse ausgeben kann. Die ausgegebenen Ergebnisse können mit den Ground Truths verglichen werden, und ein oder mehrere Parameter des Trainingsalgorithmus 3106 können auf der Grundlage des Vergleichs eingestellt werden, bis eine Trainingsschwelle erreicht wurde (beispielsweise eine Genauigkeitsrate eine Genauigkeitsschwelle überschreitet).
-
Gemäß einigen Ausführungsformen können die Trainingsdaten 3104 auf der Grundlage verschiedener Datentypen (beispielsweise Bilddaten, Lidar-Daten usw.) erzeugte Trainingssätze aufweisen. Beispielsweise können die Trainingsdaten 3104 wenigstens einen auf der Grundlage der Bilddaten erzeugten Trainingssatz und wenigstens einen auf der Grundlage von Lidar-Daten erzeugten Trainingssatz aufweisen. Alternativ oder zusätzlich können die Trainingsdaten 3104 Trainingssätze in Zusammenhang mit verschiedenen Typen von Zielfahrzeugen (beispielsweise Sedan, SUV, leichter Lastwagen, schwerer Lastwagen usw.) und/oder verschiedenen Türtypen aufweisen. Alternativ oder zusätzlich können die Trainingsdaten 3104 Trainingssätze in Zusammenhang mit verschiedenen Zuständen offener Türen (beispielsweise teilweise geöffnete Tür, ganz oder im Wesentlichen ganz geöffnete Tür usw.) aufweisen. Alternativ oder zusätzlich können die Trainingsdaten 3104 wenigstens einen Trainingssatz mit Daten (beispielsweise Bilddaten, Lidar-Daten usw.) aufweisen, in denen die Orientierung eines Zielfahrzeugs (beispielsweise ist die Steuerkursrichtung des Zielfahrzeugs entgegengesetzt zur Steuerkursrichtung des Host-Fahrzeugs) von den Daten (beispielsweise Bilddaten, Lidar-Daten usw.) in einem oder mehreren anderen Trainingssätzen verschieden ist (beispielsweise ist die Steuerkursrichtung des Zielfahrzeugs mit der Steuerkursrichtung des Host-Fahrzeugs ausgerichtet (oder im Wesentlichen ausgerichtet)). Alternativ oder zusätzlich können die Trainingsdaten 3104 wenigstens einen Trainingssatz aufweisen, der ein Bild aufweist, das wenigstens ein oder mehrere innere Merkmale (beispielsweise eine Armlehne, eine Steuerkonsole (beispielsweise zum Steuern des Fensters und/oder des Seitenspiegels des Fahrzeugs), einen Türverriegelungsmechanismus oder Teile oder dergleichen oder eine Kombination davon) und ein oder mehrere äußere Merkmale (beispielsweise einen Türgriff, einen äußeren Rahmen oder dergleichen oder eine Kombination davon) einer geöffneten Tür aufweist. Beispielsweise zeigt 32 ein beispielhaftes Bild 3200, das eine Repräsentation eines Fahrzeugs mit einer teilweise geöffneten Tür aufweist. Ein erster Trainingssatz kann unter Verwendung des Trainingsbilds 3200 erzeugt werden. Der erste Trainingssatz kann auch eine Angabe des Vorhandenseins eines Türoffen-Zustands (und/oder eines Tür-teilweise-offen-Zustands) aufweisen. Der erste Trainingssatz kann dem Trainingsalgorithmus 3106 für das Training bereitgestellt werden. Bei einem anderen Beispiel zeigt 33 ein anderes beispielhaftes Bild 3300, das eine Repräsentation einer Fahrzeugtür aufweist, die ganz (oder im Wesentlichen ganz) geöffnet ist, jedoch von einer Person (beispielsweise einem Fußgänger) teilweise verdeckt ist. Ein zweiter Trainingssatz kann unter Verwendung des Bilds 3300 erzeugt werden. Der zweite Trainingssatz kann auch eine Angabe des Vorhandenseins eines Tür-offen-Zustands (und/oder eines Türganz-offen-Zustands) aufweisen. Der zweite Trainingssatz kann dem Trainingsalgorthmus 3106 für das Training bereitgestellt werden. Bei einem wieder anderen Beispiel zeigt 34 ein beispielhaftes Bild 3400, das eine Repräsentation eines Lastwagens mit einer teilweise geöffneten Tür, die teilweise von einer Person verdeckt ist, aufweist. Wie in 34 dargestellt ist, unterscheidet sich die Steuerkursrichtung des Lastwagens von der Kamerarichtung (die der Steuerkursrichtung des Host-Fahrzeugs ähnelt). Der offene Zustand der Tür kann anhand des Bilds 3400 bei der gegebenen Orientierung des Lastwagens, und weil die Tür mit anderen Teilen des Lastwagens im Bild „verschmilzt“, schwer zu erkennen sein. Ein dritter Trainingssatz kann unter Verwendung des Bilds 3400 erzeugt werden. Ähnlich kann der dritte Trainingssatz eine Angabe des Vorhandenseins eines Tür-offen-Zustands (und/oder eines Tür-teilweise-offen-Zustands) aufweisen. Der dritte Trainingssatz kann dem Trainingsalgorithmus 3106 für das Training bereitgestellt werden.
-
Gemäß einigen Ausführungsformen gemäß der vorliegenden Offenbarung und in Bezug auf Zielfahrzeuge sei bemerkt, dass die Trainingsdaten 3104 auch Informationen über den Typ, die Bauart und das Modell eines Zielfahrzeugs aufweisen können. Die vorliegende Offenbarung ist auf keine Form von Trainingsdaten oder eines Trainingsalgorithmus beschränkt, und es können verschiedene andere Mittel zur Erzeugung der Trainingsdaten verwendet werden. Gemäß einigen Ausführungsformen kann das Navigationssystem einen Indikator der Bewegung eines Zielobjekts (beispielsweise Geschwindigkeit, Beschleunigung oder Steuerkurse) auf der Grundlage von zwei oder mehr der erzeugten Ausgaben bestimmen, und er kann ferner auf einer von wenigstens einem Eigenbewegungssensor in Zusammenhang mit dem Host-Fahrzeug empfangenen Ausgabe oder einer Radar- und/oder Lidar-Ausgabe des Host-Fahrzeugs beruhen.
-
Die vorstehende Beschreibung wurde zu Erläuterungszwecken vorgestellt. Sie ist nicht erschöpfend und nicht auf die offenbarten präzisen Formen oder Ausführungsformen beschränkt. Modifikationen und Anpassungen werden Fachleuten beim Lesen der Patentschrift und bei der Verwirklichung der offenbarten Ausführungsformen einfallen. Zusätzlich werden Fachleute, wenngleich Aspekte der offenbarten Ausführungsformen als in einem Speicher gespeichert beschrieben wurden, verstehen, dass diese Aspekte auch auf anderen Typen computerlesbarer Medien in der Art sekundärer Speichervorrichtungen, beispielsweise Festplatten oder CD-ROMs oder anderen Formen von RAMs oder ROMs, USB-Medien, DVD, Blu-ray, 4K-Ultra-HD-Blu-ray oder anderen optischen Laufwerksmedien, gespeichert werden können.
-
Computerprogramme auf der Grundlage der gegebenen Beschreibung und der offenbarten Verfahren liegen innerhalb der Fähigkeiten eines erfahrenen Entwicklers. Die verschiedenen Programme oder Programmmodule können unter Verwendung jeglicher Techniken erzeugt werden, die Fachleuten bekannt sind, oder in Zusammenhang mit existierender Software entwickelt werden. Beispielsweise können Programmabschnitte oder Programmmodule in oder durch .Net Framework, .Net Compact Framework (und verwandten Sprachen in der Art von Visual Basic, C usw.), Java, C++, Objective-C, HTML, HTML/AJAX-Kombinationen, XML oder HTML mit enthaltenen Java-Applets entwickelt werden.
-
Wenngleich hier der Erläuterung dienende Ausführungsformen beschrieben wurden, schließt der Schutzumfang jeglicher und aller Ausführungsformen gleichwertige Elemente, Modifikationen, Fortlassungen, Kombinationen (beispielsweise Aspekte über verschiedene Ausführungsformen), Anpassungen und/oder Abänderungen ein, wie Fachleute auf der Grundlage der vorliegenden Offenbarung verstehen werden. Die Einschränkungen in den Ansprüchen sind auf der Grundlage des in den Ansprüchen verwendeten Sprachgebrauchs breit zu interpretieren, und die Ansprüche sind nicht auf die in der vorliegenden Patentschrift oder während des Fortschreitens der Anmeldung beschriebenen Beispiele beschränkt. Die Beispiele sind als nicht ausschließend auszulegen. Ferner können die Schritte der offenbarten Verfahren in irgendeiner Weise modifiziert werden, einschließlich durch Umordnen von Schritten und/oder durch Einfügen oder Löschen von Schritten. Es ist daher beabsichtigt, dass die Patentschrift und die Beispiele nur als erläuternd angesehen werden, während der wahre Schutzumfang und der Gedanke durch die folgenden Ansprüche und ihren vollständigen Gleichwertigkeitsbereich angegeben werden.
-
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 Patentliteratur
-