DE112020002592T5 - Systeme und verfahren zur fahrzeugnavigation basierend auf bildanalyse - Google Patents

Systeme und verfahren zur fahrzeugnavigation basierend auf bildanalyse Download PDF

Info

Publication number
DE112020002592T5
DE112020002592T5 DE112020002592.6T DE112020002592T DE112020002592T5 DE 112020002592 T5 DE112020002592 T5 DE 112020002592T5 DE 112020002592 T DE112020002592 T DE 112020002592T DE 112020002592 T5 DE112020002592 T5 DE 112020002592T5
Authority
DE
Germany
Prior art keywords
vehicle
navigation system
target vehicle
pixels
road
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020002592.6T
Other languages
English (en)
Inventor
Ishay Levi
Asaf Bar Zvi
Yonatan Schwartz
Aaron SIEGEL
Yaakov Shambik
Ohad CHITRIT
Eran Malach
Dan Kufra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mobileye Vision Technologies Ltd
Original Assignee
Mobileye Vision Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mobileye Vision Technologies Ltd filed Critical Mobileye Vision Technologies Ltd
Publication of DE112020002592T5 publication Critical patent/DE112020002592T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • G01C21/3608Destination input or retrieval using speech input, e.g. using speech recognition
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • G01C21/3629Guidance using speech or audio output, e.g. text-to-speech
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • G01C21/3658Lane guidance
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3679Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R11/00Arrangements for holding or mounting articles, not otherwise provided for
    • B60R11/04Mounting of cameras operative during drive; Arrangement of controls thereof relative to the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R11/00Arrangements for holding or mounting articles, not otherwise provided for
    • B60R2011/0001Arrangements for holding or mounting articles, not otherwise provided for characterised by position
    • B60R2011/0003Arrangements for holding or mounting articles, not otherwise provided for characterised by position inside the vehicle
    • B60R2011/0026Windows, e.g. windscreen
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/402Type
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/402Type
    • B60W2554/4026Cycles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • B60W2554/4043Lateral speed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/80Spatial relation or speed relative to objects
    • B60W2554/801Lateral distance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0027Planning or execution of driving tasks using trajectory prediction for other traffic participants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/08Detecting or categorising vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)

Abstract

Systeme und Verfahren werden für die Fahrzeugnavigation bereitgestellt. In einer Implementierung kann mindestens eine Verarbeitungsvorrichtung von einer Kamera des Host-Fahrzeugs mindestens ein erfasstes Bild empfangen, das eine Umgebung des Host-Fahrzeugs darstellt. Die Verarbeitungsvorrichtung kann ein oder mehrere Pixel des mindestens einen erfassten Bilds analysieren, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt eines Zielfahrzeugs darstellen. Für Pixel, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen, kann die Verarbeitungsvorrichtung einen oder mehrere geschätzte Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs bestimmen; und basierend auf der Analyse des einen oder der mehreren Pixel, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die dem einen oder den mehreren Pixeln zugeordnet sind, mindestens einen Abschnitt einer Grenze relativ zu dem Zielfahrzeug erzeugen.

Description

  • Querverweise auf verwandte Anmeldungen
  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung Nr. 62,852,761 , eingereicht am 24. Mai 2019; der vorläufigen US-Patentanmeldung Nr. 62/957,009 , eingereicht am 3. Januar 2020; und der vorläufigen US-Patentanmeldung Nr. 62/976,059 , eingereicht am 13. Februar 2020. Alle vorgenannten Anmeldungen sind hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen.
  • HINTERGRUND
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf die autonome Fahrzeugnavigation.
  • Hintergrundinformationen
  • Mit fortschreitender Technologie liegt das Ziel eines vollständig autonomen Fahrzeugs, das auf Fahrbahnen navigieren kann, am Horizont. Autonome Fahrzeuge müssen möglicherweise eine Vielzahl von Faktoren berücksichtigen und basierend auf diesen Faktoren geeignete Entscheidungen treffen, um ein beabsichtigtes Ziel sicher und genau zu erreichen. So kann beispielsweise ein autonomes Fahrzeug visuelle Informationen (z. B. von einer Kamera erfasste Informationen) verarbeiten und interpretieren und auch Informationen aus anderen Quellen (z. B. von einer GPS-Vorrichtung, einem Geschwindigkeitssensor, einem Beschleunigungsmesser, einem Aufhängungssensor usw.) verwenden. Gleichzeitig muss ein autonomes Fahrzeug, um zu einem Ziel zu navigieren, auch seinen Ort innerhalb einer bestimmten Fahrbahn (z. B. einer bestimmten Fahrspur innerhalb einer mehrspurigen Straße) identifizieren, neben anderen Fahrzeugen navigieren, Hindernisse und Fußgänger vermeiden, Verkehrssignale und Zeichen beobachten und von einer Straße zu einer anderen Straße an geeigneten Kreuzungen oder Kreuzungen fahren. Das Nutzen und Interpretieren großer Mengen von Informationen, die von einem autonomen Fahrzeug gesammelt werden, während das Fahrzeug zu seinem Ziel fährt, stellt eine Vielzahl von Konstruktionsherausforderungen dar. Die schiere Menge von Daten (z. B. erfasste Bilddaten, Kartendaten, GPS-Daten, Sensordaten usw.), die ein autonomes Fahrzeug benötigen kann, um Herausforderungen zu analysieren, darauf zuzugreifen und/oder zu speichern, die die autonome Navigation tatsächlich einschränken oder sogar negativ beeinflussen können. Wenn sich ein autonomes Fahrzeug auf traditionelle Kartierungstechnologie zum Navigieren stützt, stellt die schiere Menge von Daten, die zum Speichern und Aktualisieren der Karte benötigt wird, darüber hinaus gewaltige Herausforderungen dar.
  • ZUSAMMENFASSUNG
  • Ausführungsformen, die mit der vorliegenden Offenbarung konsistent sind, stellen Systeme und Verfahren für die autonome Fahrzeugnavigation bereit. Die offenbarten Ausführungsformen können Kameras verwenden, um Merkmale für die autonome Fahrzeugnavigation bereitzustellen. Zum Beispiel können die offenbarten Systeme konsistent mit den offenbarten Ausführungsformen eine, zwei oder mehr Kameras beinhalten, die die Umgebung eines Fahrzeugs überwachen. Die offenbarten Systeme können eine Navigationsreaktion basierend auf zum Beispiel einer Analyse von Bildern bereitstellen, die von einer oder mehreren der Kameras erfasst werden.
  • In einer Ausführungsform kann ein Navigationssystem für ein Host-Fahrzeug mindestens einen Prozessor beinhalten. Der Prozessor kann dazu programmiert sein, von einer Kamera des Host-Fahrzeugs mindestens ein erfasstes Bild zu empfangen, das eine Umgebung des Host-Fahrzeugs darstellt; und ein oder mehrere Pixel des mindestens einen erfassten Bilds zu analysieren, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt eines Zielfahrzeugs darstellen. Für Pixel, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen, kann der Prozessor einen oder mehrere geschätzte Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front (Engl.: face) des Zielfahrzeugs bestimmen. Ferner kann der Prozessor basierend auf der Analyse des einen oder der mehreren Pixel, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die dem einen oder den mehreren Pixeln zugeordnet sind, mindestens einen Abschnitt einer Grenze relativ zu dem Zielfahrzeug erzeugen.
  • In einer Ausführungsform kann ein Navigationssystem für ein Host-Fahrzeug mindestens einen Prozessor beinhalten. Der Prozessor kann dazu programmiert sein, von einer Kamera des Host-Fahrzeugs mindestens ein erfasstes Bild zu empfangen, das eine Umgebung des Host-Fahrzeugs darstellt; und ein oder mehrere Pixel des mindestens einen erfassten Bilds zu analysieren, um zu bestimmen, ob das eine oder die mehreren Pixel ein Zielfahrzeug darstellen, wobei mindestens ein Abschnitt des Zielfahrzeugs nicht im mindestens einen erfassten Bild dargestellt ist. Der Prozessor kann ferner dazu konfiguriert sein, einen geschätzten Abstand vom Host-Fahrzeug zum Zielfahrzeug zu bestimmen, wobei der geschätzte Abstand zumindest teilweise auf dem Abschnitt des Zielfahrzeugs basiert, der nicht im mindestens einen erfassten Bild dargestellt ist.
  • In einer Ausführungsform kann ein Navigationssystem für ein Host-Fahrzeug mindestens einen Prozessor beinhalten. Der Prozessor kann dazu programmiert sein, von einer Kamera des Host-Fahrzeugs mindestens ein erfasstes Bild zu empfangen, das eine Umgebung des Host-Fahrzeugs darstellt; und zwei oder mehr Pixel des mindestens einen erfassten Bilds zu analysieren, um zu bestimmen, ob die zwei oder mehr Pixel mindestens einen Abschnitt eines ersten Zielfahrzeugs und mindestens einen Abschnitt eines zweiten Zielfahrzeugs darstellen. Der Prozessor kann dazu programmiert sein, zu bestimmen, dass der Abschnitt des zweiten Zielfahrzeugs in einer Repräsentation einer Reflexion auf einer Oberfläche des ersten Zielfahrzeugs enthalten ist. Der Prozessor kann ferner dazu programmiert sein, basierend auf der Analyse der zwei oder mehr Pixel und der Bestimmung, dass der Abschnitt des zweiten Zielfahrzeugs in einer Repräsentation einer Reflexion auf einer Oberfläche des ersten Zielfahrzeugs enthalten ist, mindestens einen Abschnitt einer Grenze relativ zu dem ersten Zielfahrzeug und keine Grenze relativ zu dem zweiten Zielfahrzeug zu erzeugen.
  • In einer Ausführungsform kann ein Navigationssystem für ein Host-Fahrzeug mindestens einen Prozessor beinhalten. Der Prozessor kann dazu programmiert sein, von einer Kamera des Host-Fahrzeugs mindestens ein erfasstes Bild zu empfangen, das eine Umgebung des Host-Fahrzeugs darstellt; und zwei oder mehr Pixel des mindestens einen erfassten Bilds zu analysieren, um zu bestimmen, ob die zwei oder mehr Pixel mindestens einen Abschnitt eines ersten Zielfahrzeugs und mindestens einen Abschnitt eines zweiten Zielfahrzeugs darstellen. Der Prozessor kann dazu programmiert sein, zu bestimmen, dass das zweite Zielfahrzeug vom ersten Zielfahrzeug getragen oder gezogen wird. Der Prozessor kann ferner dazu programmiert sein, basierend auf der Analyse der zwei oder mehr Pixel und der Bestimmung, dass das zweite Zielfahrzeug vom ersten Zielfahrzeug getragen oder gezogen wird, mindestens einen Abschnitt einer Grenze relativ zu dem ersten Zielfahrzeug und keine Grenze relativ zu dem zweiten Zielfahrzeug zu erzeugen.
  • In einer Ausführungsform kann ein Navigationssystem für ein Host-Fahrzeug mindestens einen Prozessor beinhalten. Der Prozessor kann dazu programmiert sein, von einer Kamera des Host-Fahrzeugs ein erstes erfasstes Bild zu empfangen, das eine Umgebung des Host-Fahrzeugs darstellt; und ein oder mehrere Pixel des ersten erfassten Bilds zu analysieren, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt eines Zielfahrzeugs darstellen. Für Pixel, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen, kann der Prozessor einen oder mehrere geschätzte Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs bestimmen. Der Prozessor kann dazu programmiert sein, basierend auf der Analyse des einen oder der mehreren Pixel des ersten erfassten Bilds, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die dem einen oder den mehreren Pixeln des ersten erfassten Bilds zugeordnet sind, mindestens einen Abschnitt einer ersten Grenze relativ zu dem Zielfahrzeug zu erzeugen. Der Prozessor kann ferner dazu programmiert sein, von der Kamera des Host-Fahrzeugs ein zweites erfasstes Bild zu empfangen, das die Umgebung des Host-Fahrzeugs darstellt; und ein oder mehrere Pixel des zweiten erfassten Bilds zu analysieren, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt des Zielfahrzeugs darstellen. Für Pixel, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen, kann der Prozessor einen oder mehrere geschätzte Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs bestimmen. Der Prozessor kann dazu programmiert sein, basierend auf der Analyse des einen oder der mehreren Pixel des zweiten erfassten Bilds, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die dem einen oder den mehreren Pixeln des zweiten erfassten Bilds zugeordnet sind, und basierend auf der ersten Grenze mindestens einen Abschnitt einer zweiten Grenze relativ zu dem Zielfahrzeug zu erzeugen.
  • In einer Ausführungsform kann ein Navigationssystem für ein Host-Fahrzeug mindestens einen Prozessor beinhalten. Der Prozessor kann dazu programmiert sein, von einer Kamera des Host-Fahrzeugs zwei oder mehr Bilder zu empfangen, die von einer Umgebung des Host-Fahrzeugs erfasst wurden; und die zwei oder mehr Bilder zu analysieren, um eine Repräsentation mindestens eines Abschnitts eines ersten Objekts und eine Repräsentation mindestens eines Abschnitts eines zweiten Objekts zu identifizieren. Der Prozessor kann einen ersten Bereich des mindestens einen Bilds, der dem ersten Objekt zugeordnet ist, und eine Art des ersten Objekts bestimmen; und einen zweiten Bereich des mindestens einen Bilds, der dem zweiten Objekt zugeordnet ist, und einen Typ des zweiten Objekts bestimmen, wobei sich der Typ des ersten Objekts von dem Typ des zweiten Objekts unterscheidet.
  • In einer Ausführungsform kann ein Navigationssystem für ein Host-Fahrzeug mindestens einen Prozessor beinhalten. Der Prozessor kann dazu programmiert sein, von einer Kamera des Host-Fahrzeugs mindestens ein Bild zu empfangen, das von einer Umgebung des Host-Fahrzeugs erfasst wurde; und das mindestens eine Bild zu analysieren, um eine Repräsentation mindestens eines Abschnitts eines ersten Objekts und eine Repräsentation mindestens eines Abschnitts eines zweiten Objekts zu identifizieren. Der Prozessor kann dazu programmiert sein, basierend auf der Analyse mindestens einen Aspekt einer Geometrie des ersten Objekts und mindestens einen Aspekt einer Geometrie des zweiten Objekts zu bestimmen. Ferner kann der Prozessor dazu programmiert sein, basierend auf dem mindestens einen Aspekt der Geometrie des ersten Objekts eine erste Bezeichnung zu erzeugen, die einem Bereich des mindestens einen Bilds zugeordnet ist, der die Repräsentation des ersten Objekts beinhaltet; und basierend auf dem mindestens einen Aspekt der Geometrie des zweiten Objekts eine zweite Bezeichnung zu erzeugen, die einem Bereich des mindestens einen Bilds zugeordnet ist, der die Repräsentation des zweiten Objekts beinhaltet.
  • In Übereinstimmung mit anderen offenbarten Ausführungsformen können nichtflüchtige computerlesbare Speichermedien Programmanweisungen speichern, die von mindestens einer Verarbeitungsvorrichtung ausgeführt werden und eines der hierin beschriebenen Verfahren durchführen.
  • Die vorstehende allgemeine Beschreibung und die folgende detaillierte Beschreibung sind nur exemplarisch und erläuternd und schränken die Ansprüche nicht ein.
  • Figurenliste
  • Die beigefügten Zeichnungen, die in diese Offenbarung aufgenommen sind und einen Teil davon bilden, veranschaulichen verschiedene offenbarte Ausführungsformen. In den Zeichnungen gilt:
    • 1 ist eine schematische Repräsentation eines beispielhaften Systems, das mit den offenbarten Ausführungsformen konsistent ist.
    • 2A ist eine schematische Seitenansicht-Repräsentation eines beispielhaften Fahrzeugs, das ein System beinhaltet, das mit den offenbarten Ausführungsformen konsistent ist.
    • 2B ist eine schematische Draufsichtrepräsentation des Fahrzeugs und des in 2A gezeigten Systems, das mit den offenbarten Ausführungsformen konsistent ist.
    • 2C ist eine schematische Draufsicht-Repräsentation einer anderen Ausführungsform eines Fahrzeugs, das ein System beinhaltet, das mit den offenbarten Ausführungsformen konsistent ist.
    • 2D ist eine schematische Draufsichtrepräsentation noch einer anderen Ausführungsform eines Fahrzeugs, das ein System beinhaltet, das mit den offenbarten Ausführungsformen konsistent ist.
    • 2E ist eine diagrammatische Draufsichtrepräsentation noch einer anderen Ausführungsform eines Fahrzeugs, das ein System beinhaltet, das mit den offenbarten Ausführungsformen konsistent ist.
    • 2F ist eine schematische Repräsentation von beispielhaften Fahrzeugsteuersystemen, die mit den offenbarten Ausführungsformen konsistent sind.
    • 3A ist eine diagrammatische Repräsentation eines Inneren eines Fahrzeugs, das einen Rückspiegel und eine Benutzerschnittstelle für ein Fahrzeugbildgebungssystem beinhaltet, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 3B ist eine Veranschaulichung eines Beispiels einer Kamerahaltung, die konfiguriert ist, um hinter einem Rückspiegel und gegen eine Fahrzeugwindschutzscheibe positioniert zu sein, die mit den offenbarten Ausführungsformen konsistent ist.
    • 3C ist eine Veranschaulichung der Kamerahaltung, die in 3B gezeigt ist, aus einer anderen Perspektive, die mit den offenbarten Ausführungsformen konsistent ist.
    • 3D ist eine Veranschaulichung eines Beispiels einer Kamerahaltung, die konfiguriert ist, um hinter einem Rückspiegel und gegen eine Fahrzeugwindschutzscheibe positioniert zu sein, die mit den offenbarten Ausführungsformen konsistent ist.
    • 4 ist ein beispielhaftes Blockdiagramm eines Speichers, der konfiguriert ist, um Anweisungen zum Durchführen von einem oder mehreren Vorgängen zu speichern, die mit den offenbarten Ausführungsformen konsistent sind.
    • 5A ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Veranlassen von einer oder mehreren Navigationsreaktionen basierend auf einer monokularen Bildanalyse zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 5B ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Detektieren von einem oder mehreren Fahrzeugen und/oder Fußgänger in einem Satz von Bildern zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 5C ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Detektieren von Straßenmarkierungen und/oder Fahrspurgeometrieinformationen in einem Satz von Bildern zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 5D ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Detektieren von Ampel in einem Satz von Bildern zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 5E ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Veranlassen von einer oder mehreren Navigationsreaktionen basierend auf einem Fahrzeugweg zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 5F ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Bestimmen zeigt, ob ein vorausfahrendes Fahrzeug Fahrspuren wechselt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 6 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Veranlassen von einer oder mehreren Navigationsreaktionen basierend auf einer Stereobildanalyse zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 7 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Veranlassen von einer oder mehreren Navigationsreaktionen basierend auf einer Analyse von drei Sätzen von Bildern zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 8 zeigt eine dünnbesetzte Karte zum Bereitstellen einer autonomen Fahrzeugnavigation, die mit den offenbarten Ausführungsformen konsistent ist.
    • 9A veranschaulicht Polynomrepräsentationen von Abschnitten eines Straßensegments, die mit den offenbarten Ausführungsformen konsistent sind.
    • 9B veranschaulicht eine Kurve im dreidimensionalen Raum, die eine Zieltrajektorie eines Fahrzeugs für ein bestimmtes Straßensegment repräsentiert, die in einer dünnbesetzten Karte enthalten ist, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 10 veranschaulicht beispielhafte Orientierungspunkte, die in einer dünnbesetzten Karte enthalten sein können, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 11A zeigt Polynomrepräsentationen von Trajektorien, die mit den offenbarten Ausführungsformen konsistent sind.
    • 11B und 11C zeigen Zieltrajektorien entlang einer Straße mit mehreren Fahrspuren, die mit offenbarten Ausführungsformen konsistent sind.
    • 11D zeigt ein beispielhaftes Straßensignaturprofil, das mit offenbarten Ausführungsformen konsistent ist.
    • 12 ist eine schematische Veranschaulichung eines Systems, das Crowd-Sourcing-Daten verwendet, die von einer Vielzahl von Fahrzeugen für autonome Fahrzeugnavigation empfangen werden, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 13 veranschaulicht ein beispielhaftes Straßennavigationsmodell für autonome Fahrzeuge, das durch eine Vielzahl von dreidimensionalen Splines repräsentiert wird, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 14 zeigt ein Kartenskelett, das durch Kombinieren von Ortsinformationen von vielen Fahrten erzeugt wird, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 15 zeigt ein Beispiel einer Längsausrichtung von zwei Fahrten mit beispielhaften Zeichen als Orientierungspunkte, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 16 zeigt ein Beispiel einer Längsausrichtung von vielen Fahrten mit einem beispielhaften Zeichen als Orientierungspunkt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 17 ist eine schematische Veranschaulichung eines Systems zum Erzeugen von Fahrtdaten unter Verwendung einer Kamera, eines Fahrzeugs und eines Servers, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 18 ist eine schematische Veranschaulichung eines Systems zum Crowdsourcing einer dünnbesetzten Karte, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 19 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Erzeugen einer dünnbesetzten Karte zur autonomen Fahrzeugnavigation entlang einem Straßensegment zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 20 veranschaulicht ein Blockdiagramm eines Servers, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 21 veranschaulicht ein Blockdiagramm eines Speichers, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 22 veranschaulicht einen Prozess zum Clustern von Fahrzeugtrajektorien, die mit Fahrzeugen assoziiert sind, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 23 veranschaulicht ein Navigationssystem für ein Fahrzeug, das zur autonomen Navigation verwendet werden kann, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 24A, 24B, 24C und 24D veranschaulichen beispielhafte Fahrspurmarkierungen, die in Übereinstimmung mit den offenbarten Ausführungsformen detektiert werden können.
    • 24E zeigt beispielhafte abgebildete Fahrspurmarkierungen in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 24F zeigt eine beispielhafte Anomalie, die mit dem Detektieren einer Fahrspurmarkierung assoziiert ist, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 25A zeigt ein beispielhaftes Bild der Umgebung eines Fahrzeugs zur Navigation basierend auf den abgebildeten Fahrspurmarkierungen in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 25B veranschaulicht eine seitliche Lokalisierungskorrektur eines Fahrzeugs basierend auf abgebildeten Fahrspurmarkierungen in einem Straßennavigationsmodell in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 26A ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Abbilden einer Fahrspurmarkierung zur Verwendung bei der autonomen Fahrzeugnavigation in Übereinstimmung mit offenbarten Ausführungsformen zeigt.
    • 26B ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum autonomen Navigieren eines Host-Fahrzeugs entlang einem Straßensegment unter Verwendung abgebildeter Fahrspurmarkierungen in Übereinstimmung mit offenbarten Ausführungsformen zeigt.
    • 27 veranschaulicht eine beispielhafte Analyse, die an Pixeln durchgeführt wird, die mit einem Zielfahrzeug assoziiert sind, in Übereinstimmung mit offenbarten Ausführungsformen.
    • 28 ist eine Veranschaulichung eines beispielhaften Bilds, das eine partielle Repräsentation eines Fahrzeugs beinhaltet, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 29 ist eine Veranschaulichung eines beispielhaften Bilds, das Fahrzeuge auf einem Träger zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 30A und 30B veranschaulichen beispielhafte Bilder, die Reflexionen von Fahrzeugen beinhalten, in Übereinstimmung mit offenbarten Ausführungsformen.
    • 31A ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einem Bild zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 31B ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Navigieren eines Host-Fahrzeugs basierend auf einer partiellen Repräsentation eines Fahrzeugs in einem Bild zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 32A ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einem Bild zeigt, das Fahrzeugreflexionen enthält, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 32B ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einem Bild zeigt, das ein mitgeführtes Fahrzeug enthält, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 33 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einer Reihe von Bildern zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 34A und 34B veranschaulichen eine beispielhafte Bildklassifizierung, die durchgeführt werden kann, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 35 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einem Bild zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 36 veranschaulicht eine beispielhafte Datenbank, die Objektbezeichnungsinformationen beinhaltet, in Übereinstimmung mit den offenbarten Ausführungsformen.
    • 37 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Navigieren eines Host-Fahrzeugs basierend auf Objektbezeichnungen und -geometrien zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende detaillierte Beschreibung bezieht sich auf die beigefügten Zeichnungen. Wann immer dies möglich ist, werden die gleichen Bezugszeichen in den Zeichnungen und der folgenden Beschreibung verwendet, um auf die gleichen oder ähnliche Teile zu verweisen. Während hierin mehrere veranschaulichende Ausführungsformen beschrieben sind, sind Modifikationen, Anpassungen und andere Implementierungen möglich. Zum Beispiel können Substitutionen, Hinzufügungen oder Modifikationen an den in den Zeichnungen veranschaulichten Komponenten vorgenommen werden, und die hierin beschriebenen veranschaulichenden Verfahren können durch Ersetzen, Neuordnen, 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. Stattdessen wird der richtige Umfang durch die beigefügten Ansprüche definiert.
  • Überblick über autonome Fahrzeuge
  • Wie in dieser Offenbarung verwendet, bezieht sich der Begriff „autonomes Fahrzeug“ auf ein Fahrzeug, das in der Lage ist, mindestens eine Navigationsänderung ohne Fahrereingabe zu implementieren. Eine „Navigationsänderung“ bezieht sich auf eine Änderung in einem oder mehreren von lenken, bremsen oder beschleunigen des Fahrzeugs. Um autonom zu sein, muss ein Fahrzeug nicht vollständig automatisch sein (z. B. vollständig ohne Fahrer oder ohne Fahrereingabe). Vielmehr beinhaltet ein autonomes Fahrzeug diejenigen, die während bestimmter Zeiträume unter Fahrersteuerung und während anderer Zeiträume ohne Fahrersteuerung betrieben werden können. Autonome Fahrzeuge können auch Fahrzeuge beinhalten, die nur einige Aspekte der Fahrzeugnavigation steuern, wie etwa lenken (z. B. um einen Fahrzeugkurs zwischen Beschränkungen der Fahrspur des Fahrzeugs beizubehalten), können jedoch andere Aspekte dem Fahrer überlassen (z. B. bremsen). In einigen Fällen können autonome Fahrzeuge einige oder alle Aspekte des Bremsens, der Geschwindigkeitssteuerung und/oder des Lenkens des Fahrzeugs handhaben.
  • Da menschliche Fahrer sich typischerweise auf visuelle Hinweise und Beobachtungen stützen, um ein Fahrzeug zu steuern, sind Verkehrsinfrastrukturen entsprechend gebaut, wobei Fahrspurmarkierungen, Verkehrszeichen und Ampeln alle dazu ausgestaltet sind, den Fahrern visuelle Informationen bereitzustellen. Angesichts dieser Ausgestaltungseigenschaften von Verkehrsinfrastrukturen kann ein autonomes Fahrzeug eine Kamera und eine Verarbeitungseinheit beinhalten, die visuelle Informationen analysiert, die aus der Umgebung des Fahrzeugs erfasst werden. Die visuellen Informationen können beispielsweise Komponenten der Verkehrsinfrastruktur (z. B. Fahrspurmarkierungen, Verkehrszeichen, Ampeln usw.) beinhalten, die von Fahrern und anderen Hindernissen (z. B. anderen Fahrzeugen, Fußgängern, Schmutz usw.) beobachtet werden können. Zusätzlich kann ein autonomes Fahrzeug auch gespeicherte Informationen verwenden, wie etwa Informationen, die ein Modell der Umgebung des Fahrzeugs bereitstellen, wenn es navigiert. So kann beispielsweise das Fahrzeug GPS-Daten, Sensordaten (z. B. von einem Beschleunigungsmesser, einem Geschwindigkeitssensor, einem Aufhängungssensor usw.) und/oder andere Kartendaten verwenden, um Informationen in Bezug auf seine Umgebung bereitzustellen, während das Fahrzeug fährt, und das Fahrzeug (sowie andere Fahrzeuge) kann die Informationen verwenden, um sich auf dem Modell zu lokalisieren.
  • In einigen Ausführungsformen in dieser Offenbarung kann ein autonomes Fahrzeug Informationen verwenden, die während des Navigierens erhalten werden (z. B. von einer Kamera, einer GPS-Vorrichtung, einem Beschleunigungsmesser, einem Geschwindigkeitssensor, einem Aufhängungssensor usw.). In anderen Ausführungsformen kann ein autonomes Fahrzeug Informationen verwenden, die von früheren Navigationen durch das Fahrzeug (oder durch andere Fahrzeuge) während des Navigierens erhalten werden. In noch anderen Ausführungsformen kann ein autonomes Fahrzeug eine Kombination von Informationen, die während des Navigierens erhalten werden, und Informationen, die von früheren Navigationen erhalten werden, verwenden. Die folgenden Abschnitte stellen einen Überblick über ein System bereit, das mit den offenbarten Ausführungsformen konsistent ist, gefolgt von einem Überblick über ein nach vorne gerichtetes Bildgebungssystem und Verfahren, die mit dem System konsistent sind. Die folgenden Abschnitte offenbaren Systeme und Verfahren zum Konstruieren, Verwenden und Aktualisieren einer dünnbesetzten Karte für die autonome Fahrzeugnavigation.
  • Systemüberblick
  • 1 ist eine Blockdiagrammrepräsentation eines Systems 100, das mit den beispielhaften offenbarten Ausführungsformen konsistent ist. Das System 100 kann verschiedene Komponenten beinhalten, die von den Anforderungen einer bestimmten Implementierung abhängen. In einigen Ausführungsformen kann das System 100 eine Verarbeitungseinheit 110, eine Bildaufnahmeeinheit 120, einen Positionssensor 130, eine oder mehrere Speichereinheiten 140, 150, eine Kartendatenbank 160, eine Benutzerschnittstelle 170 und einen drahtlosen Sendeempfänger 172 beinhalten. Die Verarbeitungseinheit 110 kann eine oder mehrere Verarbeitungsvorrichtungen beinhalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 einen Anwendungsprozessor 180, einen Bildprozessor 190 oder eine beliebige andere geeignete Verarbeitungsvorrichtung beinhalten. Gleichermaßen kann die Bildaufnahmeeinheit 120 eine beliebige Anzahl von Bildaufnahmevorrichtungen und -komponenten beinhalten, die von den Anforderungen einer bestimmten Anwendung abhängen. In einigen Ausführungsformen kann die Bildaufnahmeeinheit 120 eine oder mehrere Bilderfassungsvorrichtungen (z. B. Kameras), wie beispielsweise die Bilderfassungsvorrichtung 122, die Bilderfassungsvorrichtung 124 und die Bilderfassungsvorrichtung 126, beinhalten. Das System 100 kann auch eine Datenschnittstelle 128 beinhalten, die die Verarbeitungsvorrichtung 110 kommunikativ mit der Bildaufnahmevorrichtung 120 verbindet. Zum Beispiel kann die Datenschnittstelle 128 eine beliebige verdrahtete und/oder drahtlose Verbindung oder Verbindungen zum Übertragen von Bilddaten, die durch die Bildbeschuldigungsvorrichtung 120 aufgenommen wurden, an die Verarbeitungseinheit 110 beinhalten.
  • Der drahtlose Sendeempfänger 172 kann eine oder mehrere Vorrichtungen beinhalten, die dazu konfiguriert sind, Übertragungen über eine Luftschnittstelle zu einem oder mehreren Netzwerken (z. B. Mobilfunk, das Internet usw.) unter Verwendung einer Funkfrequenz, einer Infrarotfrequenz, eines Magnetfelds oder eines elektrischen Felds auszutauschen. Der drahtlose Sendeempfänger 172 kann einen beliebigen bekannten Standard verwenden, um Daten zu übertragen und/oder zu empfangen (z. B. Wi-Fi, Bluetooth® Bluetooth Smart, 802.15.4, ZigBee usw.). Derartige Übertragungen können Kommunikationen vom Host-Fahrzeug zu einem oder mehreren entfernt gelegenen Servern beinhalten. Derartige Übertragungen können außerdem Kommunikationen (Einweg- oder Zweiweg-) zwischen dem Host-Fahrzeug und einem oder mehreren Zielfahrzeugen in einer Umgebung des Host-Fahrzeugs (z. B. um die Koordination der Navigation des Host-Fahrzeugs im Hinblick auf oder zusammen mit Zielfahrzeugen in der Umgebung des Host-Fahrzeugs zu erleichtern) oder sogar eine Rundsendeübertragung zu nicht spezifizierten Empfängern in einer Umgebung des übertragenden Fahrzeugs beinhalten.
  • Sowohl der Anwendungsprozessor 180 als auch der Bildprozessor 190 können verschiedene Arten von Verarbeitungsvorrichtungen beinhalten. Zum Beispiel können einer oder beide von Anwendungsprozessor 180 und Bildprozessor 190 einen Mikroprozessor, Vorprozessoren (wie etwa einen Bildvorprozessor), eine Grafikverarbeitungseinheit (graphics processing unit - GPU), eine zentrale Verarbeitungseinheit (central processing unit - CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder beliebige andere Arten von Vorrichtungen beinhalten, die zum Ausführen von Anwendungen und zur Bildverarbeitung und -analyse geeignet sind. In einigen Ausführungsformen können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 eine beliebige Art von Ein- oder Mehrkernprozessor, Mikrocontroller für mobile Vorrichtungen, zentrale Verarbeitungseinheit usw. beinhalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, einschließlich zum Beispiel Prozessoren, die von Herstellern verfügbar sind, wie etwa Intel® AMD® usw., oder GPUs, die von Herstellern verfügbar sind, wie etwa NVIDIA® ATI® usw., und können verschiedene Architekturen beinhalten (z. B. x86-Prozessor, ARM® usw.).
  • In einigen Ausführungsformen können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 eine beliebige der EyeQ-Reihe von Prozessorchips beinhalten, die von Mobileye® verfügbar sind. Diese Prozessorausgestaltungen beinhalten jeweils mehrere Verarbeitungseinheiten mit lokalem Speicher und Anweisungssätzen. Solche Prozessoren können Videoeingaben zum Empfangen von Bilddaten von mehreren Bildsensoren beinhalten und können auch Videoausgangsfähigkeiten beinhalten. In einem Beispiel verwendet das EyeQ2® eine 90-nm-Mikrometer-Technologie, die bei 332 MHz arbeitet. Die EyeQ2® Architektur besteht aus zwei Gleitkomma-Hyper-Thread-32-Bit-RISC-CPUs (MIPS32® 34K® Kernen), fünf Vision Computing Engines (VCE), drei Vector Microcode Processors (VMP® Denali 64-Bit-Mobile-DDR-Controller, 128-Bit-interne Sonics Interconnect, dual 16-Bit-Videoeingabe und 18-Bit-Videoausgabesteuerungen, 16-Kanal-DMA und mehreren Peripheriegeräten. Die MIPS34K-CPU verwaltet 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 Vision-Berechnungen durchführen, die von Multifunktionsbündelanwendungen benötigt werden. In einem anderen Beispiel kann das EyeQ3® das ein Prozessor der dritten Generation ist und sechsmal leistungsfähiger als das EyeQ2® ist, in den offenbarten Ausführungsformen verwendet werden. In anderen Beispielen können das EyeQ4® und/oder das EyeQ5® in den offenbarten Ausführungsformen verwendet werden. Natürlich können auch beliebige neuere oder zukünftige EyeQ-Verarbeitungsvorrichtungen zusammen mit den offenbarten Ausführungsformen verwendet werden.
  • Beliebige der hierin offenbarten Verarbeitungsvorrichtungen können konfiguriert sein, um bestimmte Funktionen durchzuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie etwa eines beliebigen der beschriebenen EyeQ-Prozessoren oder einer anderen Steuerung oder eines Mikroprozessors, um bestimmte Funktionen durchzuführen, kann das Programmieren von computerausführbaren Anweisungen und das Bereitstellen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Vorgangs der Verarbeitungsvorrichtung beinhalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung das Programmieren der Verarbeitungsvorrichtung direkt mit Architekturanweisungen beinhalten. Zum Beispiel können Verarbeitungsvorrichtungen, wie etwa feldprogrammierbare Gate-Arrays (fieldprogrammable gate arrays - FPGAs), anwendungsspezifische integrierte Schaltungen (application-specific integrated circuits - ASICs) und dergleichen, unter Verwendung von zum Beispiel einer oder mehreren Hardwarebeschreibungssprachen (hardware description languages - HDLs) konfiguriert sein.
  • In anderen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung das Speichern ausführbarer Anweisungen in einem Speicher beinhalten, der für die Verarbeitungsvorrichtung während des Vorgangs zugänglich ist. Zum Beispiel kann die Verarbeitungsvorrichtung auf den Speicher zugreifen, um die gespeicherten Anweisungen während des Vorgangs zu erhalten und auszuführen. In jedem Fall stellt die Verarbeitungsvorrichtung, die konfiguriert ist, um die hierin offenbarten Erfassungs-, Bildanalyse- und/oder Navigationsfunktionen durchzuführen, ein spezialisiertes hardwarebasiertes System dar, das mehrere hardwarebasierte Komponenten eines Host-Fahrzeugs steuert.
  • Während 1 zwei separate Verarbeitungsvorrichtungen zeigt, die in der Verarbeitungseinheit 110 enthalten sind, können mehr oder weniger Verarbeitungsvorrichtungen verwendet werden. Zum Beispiel kann in einigen Ausführungsformen eine einzelne Verarbeitungsvorrichtung verwendet werden, um die Aufgaben des Anwendungsprozessors 180 und des Bildprozessors 190 zu erreichen. In anderen Ausführungsformen können diese Aufgaben von mehr als zwei Verarbeitungsvorrichtungen durchgeführt werden. Ferner kann das System 100 in einigen Ausführungsformen eine oder mehrere Verarbeitungseinheiten 110 beinhalten, ohne andere Komponenten, wie beispielsweise die Bildaufnahmeeinheit 120, zu beinhalten.
  • Die Verarbeitungseinheit 110 kann verschiedene Arten von Vorrichtungen umfassen. Zum Beispiel kann die Verarbeitungseinheit 110 verschiedene Vorrichtungen beinhalten, wie etwa eine Steuerung, einen Bildvorprozessor, eine zentrale Verarbeitungseinheit (central processing unit - CPU), eine Grafikverarbeitungseinheit (graphics processing unit - GPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder beliebige andere Arten von Vorrichtungen zur Bildverarbeitung und -analyse. Der Bildvorprozessor kann einen Videoprozessor zum Erfassen, Digitalisieren und Verarbeiten der Bilder von den Bildsensoren beinhalten. Die CPU kann eine beliebige Anzahl von Mikrocontrollern oder Mikroprozessoren umfassen. Die GPU kann auch eine beliebige Anzahl von Mikrocontrollern oder Mikroprozessoren umfassen. Die Unterstützungsschaltungen können eine beliebige Anzahl von Schaltungen sein, die im Allgemeinen in der Technik gut bekannt sind, einschließlich Cache, Stromversorgung, Takt- und Eingabe-Ausgabe-Schaltungen. Der Speicher kann Software speichern, die bei Ausführung durch den Prozessor den Betrieb des Systems steuert. Der Speicher kann Datenbanken und Bildverarbeitungssoftware beinhalten. Der Speicher kann eine beliebige Anzahl von Direktzugriffsspeichern, Nur-Lese-Speichern, Flash-Speichern, Plattenlaufwerken, optischem Speicher, Bandspeicher, entfernbarem Speicher und anderen Arten von Speicher 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 Softwareanweisungen beinhalten, die bei Ausführung durch einen Prozessor (z. B. Anwendungsprozessor 180 und/oder Bildprozessor 190) den Betrieb verschiedener Aspekte des Systems 100 steuern können. Diese Speichereinheiten können verschiedene Datenbanken und Bildverarbeitungssoftware sowie ein trainiertes System, wie beispielsweise ein neuronales Netzwerk oder ein tiefes neuronales Netzwerk, beinhalten. Die Speichereinheiten können Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), Flash-Speicher, Plattenlaufwerke, optischen Speicher, Bandspeicher, entfernbaren Speicher und/oder beliebige andere Arten von Speicher beinhalten. In einigen Ausführungsformen können die Speichereinheiten 140, 150 vom Anwendungsprozessor 180 und/oder Bildprozessor 190 getrennt sein. In anderen Ausführungsformen können diese Speichereinheiten in den Anwendungsprozessor 180 und/oder Bildprozessor 190 integriert sein.
  • Der Positionssensor 130 kann jede Art von Vorrichtung beinhalten, die zum Bestimmen eines Orts geeignet ist, der mit mindestens einer Komponente des Systems 100 assoziiert ist. In einigen Ausführungsformen kann der Positionssensor 130 einen GPS-Empfänger beinhalten. Derartige Empfänger können eine Benutzerposition und -geschwindigkeit durch Verarbeiten von Signalen bestimmen, die von Satelliten des globalen Positionierungssystems rundgesendet werden. Positionsinformationen vom Positionssensor 130 können dem Anwendungsprozessor 180 und/oder Bildprozessor 190 zur Verfügung gestellt werden.
  • In einigen Ausführungsformen kann das System 100 Komponenten wie einen Geschwindigkeitssensor (z. B. ein Tachometer, einen Geschwindigkeitsmesser) zum Messen einer Geschwindigkeit des Fahrzeugs 200 und/oder einen Beschleunigungsmesser (entweder eine einzelne Achse oder mehrere Achsen) zum Messen der Beschleunigung des Fahrzeugs 200 beinhalten.
  • Die Benutzerschnittstelle 170 kann jede Vorrichtung beinhalten, die zum Bereitstellen von Informationen an oder zum Empfangen von Eingaben von einem oder mehreren Benutzern des Systems 100 geeignet ist. In einigen Ausführungsformen kann die Benutzerschnittstelle 170 Benutzereingabevorrichtungen beinhalten, einschließlich beispielsweise eines Touchscreens, eines Mikrofons, einer Tastatur, von Zeigervorrichtungen, Laufrädern, Kameras, Knöpfen, Tasten usw. Mit solchen Eingabevorrichtungen kann ein Benutzer in der Lage sein, dem System 100 Informationseingaben oder -befehle bereitzustellen, indem er Anweisungen oder Informationen eintippt, Sprachbefehle bereitstellt, Menüoptionen auf einem Bildschirm unter Verwendung von Tasten, Zeigern oder Eye-Tracking-Fähigkeiten auswählt oder durch beliebige andere geeignete Techniken zum Kommunizieren von Informationen an das System 100.
  • Die Benutzerschnittstelle 170 kann mit einer oder mehreren Verarbeitungsvorrichtungen ausgestattet sein, die konfiguriert sind, um Informationen an oder von einem Benutzer bereitzustellen und zu empfangen und diese Informationen zur Verwendung durch beispielsweise den Anwendungsprozessor 180 zu verarbeiten. In einigen Ausführungsformen können solche Verarbeitungsvorrichtungen Anweisungen zum Erkennen und Verfolgen von Augenbewegungen, Empfangen und Interpretieren von Sprachbefehlen, Erkennen und Interpretieren von Berührungen und/oder Gesten auf einem Touchscreen, Reagieren auf Tastatureingaben oder Menüauswahlen usw. ausführen. In einigen Ausführungsformen kann die Benutzerschnittstelle 170 eine Anzeige, einen Lautsprecher, eine taktile Vorrichtung und/oder beliebige andere Vorrichtungen zum Bereitstellen von Ausgabeinformationen an einen Benutzer beinhalten.
  • Die Kartendatenbank 160 kann eine beliebige Art von Datenbank zum Speichern von Kartendaten beinhalten, die für das System 100 nützlich sind. In einigen Ausführungsformen kann die Kartendatenbank 160 Daten beinhalten, die sich auf die Position in einem Referenzkoordinatensystem von verschiedenen Elementen beziehen, einschließlich Straßen, Wassermerkmalen, geografischen Merkmalen, Geschäften, Sehenswürdigkeiten, Restaurants, Tankstellen usw. Die Kartendatenbank 160 kann nicht nur die Orte solcher Elemente speichern, sondern auch Deskriptoren, die sich auf diese Elemente beziehen, einschließlich beispielsweise Namen, die mit beliebigen der gespeicherten Merkmale assoziiert sind. In einigen Ausführungsformen kann sich die Kartendatenbank 160 physisch mit anderen Komponenten des Systems 100 befinden. Alternativ oder zusätzlich kann sich die Kartendatenbank 160 oder ein Teil davon entfernt in Bezug auf andere Komponenten des Systems 100 (z. B. Verarbeitungseinheit 110) befinden. In solchen Ausführungsformen können Informationen von der Kartendatenbank 160 über eine verdrahtete oder drahtlose Datenverbindung zu einem Netzwerk (z. B. über ein Mobilfunknetz und/oder das Internet usw.) heruntergeladen werden. In einigen Fällen kann die Kartendatenbank 160 ein dünnbesetztes Datenmodell speichern, das Polynomrepräsentationen bestimmter Straßenmerkmale (z. B. Fahrspurmarkierungen) oder Zieltrajektorien für das Host-Fahrzeug beinhaltet. Systeme und Verfahren zum Erzeugen einer solchen Karte werden nachfolgend unter Bezugnahme auf die 8-19 erörtert.
  • Die Bilderfassungsvorrichtungen 122, 124 und 126 können jeweils jede Art von Vorrichtung beinhalten, die zum Erfassen mindestens eines Bilds aus einer Umgebung geeignet ist. Darüber hinaus kann eine beliebige Anzahl von Bilderfassungsvorrichtungen verwendet werden, um Bilder zur Eingabe in den Bildprozessor zu erfassen. Einige Ausführungsformen können nur eine einzelne Bilderfassungsvorrichtung beinhalten, während andere Ausführungsformen zwei, drei oder sogar vier oder mehr Bilderfassungsvorrichtungen beinhalten können. Die Bilderfassungsvorrichtungen 122, 124 und 126 werden nachfolgend unter Bezugnahme auf die 2B-2E näher beschrieben.
  • Das System 100 oder verschiedene Komponenten davon können in verschiedene unterschiedliche Plattformen integriert werden. In einigen Ausführungsformen kann das System 100 in einem Fahrzeug 200 enthalten sein, wie in 2A gezeigt. So kann beispielsweise das Fahrzeug 200 mit einer Verarbeitungseinheit 110 und einer beliebigen der anderen Komponenten des Systems 100 ausgestattet sein, wie vorstehend in Bezug auf 1 beschrieben. Während in einigen Ausführungsformen das Fahrzeug 200 mit nur einer einzelnen Bilderfassungsvorrichtung (z. B. Kamera) ausgestattet sein kann, können in anderen Ausführungsformen, wie beispielsweise den in Verbindung mit den 2B-2E erörterten, mehrere Bilderfassungsvorrichtungen verwendet werden. So kann beispielsweise jede der Bilderfassungsvorrichtungen 122 und 124 des Fahrzeugs 200, wie in 2A gezeigt, Teil eines ADAS-(Advanced Driver Assistance Systems)-Bildgebungssatzes sein.
  • Die im Fahrzeug 200 als Teil der Bildaufnahmeeinheit 120 enthaltenen Bilderfassungsvorrichtungen können an jedem geeigneten Ort positioniert werden. In einigen Ausführungsformen, wie in den 2A-2E und 3A-3C gezeigt, kann sich die Bilderfassungsvorrichtung 122 in der Nähe des Rückspiegels befinden. Diese Position kann eine Sichtlinie ähnlich der des Fahrers des Fahrzeugs 200 bereitstellen, die beim Bestimmen helfen kann, was für den Fahrer sichtbar ist und nicht sichtbar ist. Die Bilderfassungsvorrichtung 122 kann an jedem Ort in der Nähe des Rückspiegels positioniert werden, aber das Platzieren der Bilderfassungsvorrichtung 122 auf der Fahrerseite des Spiegels kann ferner beim Erhalten von Bildern helfen, die für das Sichtfeld und/oder die Sichtlinie des Fahrers repräsentativ sind.
  • Andere Orte für die Bilderfassungsvorrichtungen der Bildaufnahmeeinheit 120 können ebenfalls verwendet werden. Beispielsweise kann sich die Bilderfassungsvorrichtung 124 an oder in einem Stoßfänger des Fahrzeugs 200 befinden. Ein solcher Ort kann besonders für Bilderfassungsvorrichtungen mit einem breiten Sichtfeld geeignet sein. Die Sichtlinie der am Stoßfänger angeordneten Bilderfassungsvorrichtungen kann sich von der des Fahrers unterscheiden, und daher können die Bilderfassungsvorrichtung und der Fahrer des Stoßfängers nicht immer die gleichen Objekte sehen. Die Bilderfassungsvorrichtungen (z. B. Bilderfassungsvorrichtungen 122, 124 und 126) können sich auch an anderen Orten befinden. Beispielsweise können sich die Bilderfassungsvorrichtungen an oder in einem oder beiden der Seitenspiegel des Fahrzeugs 200, am Dach des Fahrzeugs 200, an der Motorhaube des Fahrzeugs 200, am Kofferraum des Fahrzeugs 200, an den Seiten des Fahrzeugs 200 befinden, an einem der Fenster des Fahrzeugs 200 montiert, dahinter positioniert oder davor positioniert sein und in oder nahe Lichtfiguren an der Front und/oder Rückseite des Fahrzeugs 200 montiert sein usw.
  • Zusätzlich zu Bilderfassungsvorrichtungen kann das Fahrzeug 200 verschiedene andere Komponenten des Systems 100 beinhalten. So kann beispielsweise die Verarbeitungseinheit 110 im Fahrzeug 200 enthalten sein, die entweder mit einer Motorsteuereinheit (ECU) des Fahrzeugs integriert oder von dieser getrennt ist. Das Fahrzeug 200 kann auch mit einem Positionssensor 130, wie etwa einem GPS-Empfänger, ausgestattet sein und kann auch eine Kartendatenbank 160 und Speichereinheiten 140 und 150 beinhalten.
  • Wie zuvor erörtert, kann der drahtlose Sendeempfänger 172 Daten über ein oder mehrere Netzwerke (z. B. Mobilfunknetze, das Internet usw.) empfangen und/oder empfangen. So kann beispielsweise der drahtlose Sendeempfänger 172 vom System 100 gesammelte Daten auf einen oder mehrere Server hochladen und Daten von einem oder mehreren Servern herunterladen. Über den drahtlosen Sendeempfänger 172 kann das System 100 beispielsweise periodische oder nach Bedarf aktualisierte Daten empfangen, die in der Kartendatenbank 160, dem Speicher 140 und/oder dem Speicher 150 gespeichert sind. Gleichermaßen kann der drahtlose Sendeempfänger 172 beliebige Daten (z. B. Bilder, die von der Bildaufnahmeeinheit 120 erfasst wurden, Daten, die vom Positionssensor 130 oder anderen Sensoren empfangen wurden, Fahrzeugsteuersysteme usw.) vom System 100 und/oder beliebige von der Verarbeitungseinheit 110 verarbeitete Daten auf den einen oder die mehreren Server hochladen.
  • Das System 100 kann Daten basierend auf einer Datenschutzstufeneinstellung auf einen Server (z. B. auf die Cloud) hochladen. So kann beispielsweise das System 100 Datenschutzstufeneinstellungen implementieren, um die an den Server gesendeten Datentypen (einschließlich Metadaten) zu regulieren oder zu begrenzen, die ein Fahrzeug und/oder einen Fahrer/Besitzer eines Fahrzeugs eindeutig identifizieren können. Solche Einstellungen können vom Benutzer beispielsweise über den drahtlosen Sendeempfänger 172, durch Werksstandardeinstellungen oder durch Daten, die vom drahtlosen Sendeempfänger 172 empfangen werden, eingestellt werden.
  • In einigen Ausführungsformen kann das System 100 Daten gemäß einer „hohen“ Datenschutzstufe hochladen, und unter Einstellung einer Einstellung kann das System 100 Daten (z. B. Ortsinformationen in Bezug auf eine Route, erfasste Bilder usw.) ohne irgendwelche Details über das spezifische Fahrzeug und/oder den spezifischen Fahrer/Besitzer übertragen. Wenn beispielsweise Daten gemäß einer „hohen“ Datenschutzeinstellung hochgeladen werden, kann das System 100 keine Fahrzeugidentifikationsnummer (VIN) oder einen Namen eines Fahrers oder Besitzers des Fahrzeugs beinhalten und kann stattdessen Daten, wie z. B. erfasste Bilder und/oder begrenzte Ortsinformationen in Bezug auf eine Route, übertragen.
  • Andere Datenschutzstufen werden in Betracht gezogen. Beispielsweise kann das System 100 Daten an einen Server gemäß einer „mittleren“ Datenschutzstufe übertragen und zusätzliche Informationen beinhalten, die nicht unter einer „hohen“ Datenschutzstufe enthalten sind, wie z. B. eine Marke und/oder ein Modell eines Fahrzeugs und/oder einen Fahrzeugtyp (z. B. ein Personenkraftwagen, ein Geländewagen, ein Lastwagen usw.). In einigen Ausführungsformen kann das System 100 Daten gemäß einer „niedrigen“ Datenschutzstufe hochladen. Unter einer „niedrigen“ Datenschutzstufeneinstellung kann das System 100 Daten hochladen und Informationen beinhalten, die ausreichen, um ein spezifisches Fahrzeug, einen spezifischen Besitzer/Fahrer und/oder einen Teil oder die Gesamtheit einer vom Fahrzeug befahrenen Route eindeutig zu identifizieren. Solche „niedrigen“ Datenschutzstufendaten können eines oder mehrere von beispielsweise einer VIN, einem Namen eines Fahrers/Besitzers, einem Ursprungspunkt eines Fahrzeugs vor der Abfahrt, einem beabsichtigten Ziel des Fahrzeugs, einer Marke und/oder eines Modells des Fahrzeugs, einem Typ des Fahrzeugs usw. beinhalten.
  • 2A ist eine diagrammatische Seitenansichtsrepräsentation eines beispielhaften Fahrzeugbildgebungssystem, das mit den offenbarten Ausführungsformen konsistent ist. 2B ist eine diagrammatische Draufsichtveranschaulichung der in 2A gezeigten Ausführungsform. Wie in 2B veranschaulicht, können die offenbarten Ausführungsformen ein Fahrzeug 200 beinhalten, das in seiner Karosserie ein System 100 mit einer ersten Bilderfassungsvorrichtung 122, die in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 200 positioniert ist, einer zweiten Bilderfassungsvorrichtung 124, die auf oder in einem Stoßfängerbereich (z. B. einem der Stoßfängerbereiche 210) des Fahrzeugs 200 positioniert ist, und einer Verarbeitungseinheit 110 beinhaltet.
  • Wie in 2C veranschaulicht, können die Bilderfassungsvorrichtungen 122 und 124 beide in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 200 positioniert sein. Obwohl zwei Bilderfassungsvorrichtungen 122 und 124 in den 2B und 2C gezeigt sind, versteht es sich außerdem, dass andere Ausführungsformen mehr als zwei Bilderfassungsvorrichtungen beinhalten können. Zum Beispiel sind in den in den 2D und 2E gezeigten Ausführungsformen die erste, zweite und dritte Bilderfassungsvorrichtung 122, 124 und 126 im System 100 des Fahrzeugs 200 enthalten.
  • Wie in 2D veranschaulicht, kann die Bilderfassungsvorrichtung 122 in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 200 positioniert sein, und die Bilderfassungsvorrichtungen 124 und 126 können auf oder in einem Stoßfängerbereich (z. B. einem der Stoßfängerbereiche 210) des Fahrzeugs 200 positioniert sein. Und wie in 2E gezeigt, können die Bilderfassungsvorrichtungen 122, 124 und 126 in der Nähe des Rückspiegels und/oder in der Nähe des Fahrersitzes des Fahrzeugs 200 positioniert sein. Die offenbarten Ausführungsformen sind nicht auf eine bestimmte Anzahl und Konfiguration der Bilderfassungsvorrichtungen beschränkt, und die Bilderfassungsvorrichtungen können an einem beliebigen geeigneten Ort innerhalb und/oder am Fahrzeug 200 positioniert sein.
  • Es versteht sich, dass die offenbarten Ausführungsformen nicht auf Fahrzeuge beschränkt sind und in anderen Kontexten angewendet werden könnten. Es versteht sich auch, dass die offenbarten Ausführungsformen nicht auf einen bestimmten Fahrzeugtyp 200 beschränkt sind und auf alle Fahrzeugtypen, einschließlich Automobile, Lastwagen, Anhänger und andere Fahrzeugtypen, anwendbar sein können.
  • Die erste Bilderfassungsvorrichtung 122 kann jede geeignete Art von Bilderfassungsvorrichtung beinhalten. Die Bilderfassungsvorrichtung 122 kann eine optische Achse beinhalten. In einem Fall kann die Bilderfassungsvorrichtung 122 einen Aptina M9V024 WVGA-Sensor mit einem globalen Verschluss beinhalten. In anderen Ausführungsformen kann die Bilderfassungsvorrichtung 122 eine Auflösung von 1280x960 Pixeln bereitstellen und einen Rolling-Shutter beinhalten. Die Bilderfassungsvorrichtung 122 kann verschiedene optische Elemente beinhalten. In einigen Ausführungsformen können eine oder mehrere Linsen enthalten sein, um beispielsweise eine gewünschte Brennweite und ein gewünschtes Sichtfeld für die Bilderfassungsvorrichtung bereitzustellen. In einigen Ausführungsformen kann die Bilderfassungsvorrichtung 122 mit einer 6-mm-Linse oder einer 12-mm-Linse assoziiert sein. In einigen Ausführungsformen kann die Bilderfassungsvorrichtung 122 konfiguriert sein, um Bilder mit einem gewünschten Sichtfeld (FOV) 202 zu erfassen, wie in 2D veranschaulicht. Beispielsweise kann die Bilderfassungsvorrichtung 122 konfiguriert sein, um ein regelmäßiges FOV aufzuweisen, wie beispielsweise innerhalb eines Bereichs von 40 Grad bis 56 Grad, einschließlich eines 46-Grad-FOV, 50-Grad-FOV, 52-Grad-FOV oder größer. Alternativ kann die Bilderfassungsvorrichtung 122 konfiguriert sein, um ein schmales FOV im Bereich von 23 bis 40 Grad aufzuweisen, wie beispielsweise ein 28-Grad-FOV oder 36-Grad-FOV. Zusätzlich kann die Bilderfassungsvorrichtung 122 konfiguriert sein, um ein breites FOV im Bereich von 100 bis 180 Grad aufzuweisen. In einigen Ausführungsformen kann die Bilderfassungsvorrichtung 122 eine Weitwinkelstoßfängerkamera oder eine mit bis zu einem 180-Grad-FOV beinhalten. In einigen Ausführungsformen kann die Bilderfassungsvorrichtung 122 eine Bilderfassungsvorrichtung mit 7,2 M Pixeln mit einem Seitenverhältnis von etwa 2:1 (z. B. HxV = 3800x1900 Pixel) mit etwa 100 Grad horizontalem FOV sein. Eine solche Bilderfassungsvorrichtung kann anstelle einer Konfiguration mit drei Bilderfassungsvorrichtungen verwendet werden. Aufgrund einer erheblichen Linsenverzerrung kann das vertikale FOV einer solchen Bilderfassungsvorrichtung in Implementierungen, in denen die Bilderfassungsvorrichtung eine radial symmetrische Linse verwendet, deutlich kleiner als 50 Grad sein. Zum Beispiel kann eine solche Linse nicht radial symmetrisch sein, was ein vertikales FOV von mehr als 50 Grad mit einem horizontalen FOV von 100 Grad ermöglichen würde.
  • Die erste Bilderfassungsvorrichtung 122 kann eine Vielzahl von ersten Bildern relativ zu einer Szene erfassen, die mit dem Fahrzeug 200 assoziiert ist. Jedes der Vielzahl von ersten Bildern kann als eine Reihe von Bildabtastlinien erfasst werden, die unter Verwendung eines Rolling-Shutters erfasst werden können. Jede Abtastlinie kann eine Vielzahl von Pixeln beinhalten.
  • Die erste Bilderfassungsvorrichtung 122 kann eine Abtastrate aufweisen, die mit der Erfassung jeder der ersten Reihe von Bildabtastlinien assoziiert ist. Die Abtastrate kann sich auf eine Rate beziehen, mit der ein Bildsensor Bilddaten erfassen kann, die mit jedem Pixel assoziiert sind, das in einer bestimmten Abtastlinie enthalten ist.
  • Die Bilderfassungsvorrichtungen 122, 124 und 126 können jede geeignete Art und Anzahl von Bildsensoren enthalten, einschließlich beispielsweise CCD-Sensoren oder CMOS-Sensoren. In einer Ausführungsform kann ein CMOS-Bildsensor zusammen mit einem Rolling-Shutter verwendet werden, sodass jedes Pixel in einer Reihe nacheinander gelesen wird und das Abtasten der Reihen auf einer Reihe-für-Reihe-Basis erfolgt, bis ein gesamtes Einzelbild erfasst wurde. In einigen Ausführungsformen können die Reihen sequentiell von oben nach unten in Bezug auf den Rahmen erfasst werden.
  • In einigen Ausführungsformen können eine oder mehrere der hierin offenbarten Bilderfassungsvorrichtungen (z. B. Bilderfassungsvorrichtungen 122, 124 und 126) einen hochauflösenden Bildgeber bilden und eine Auflösung von mehr als 5 M Pixel, 7 M Pixel, 10 M Pixel oder mehr aufweisen.
  • Die Verwendung eines Rolling-Shutters kann dazu führen, dass Pixel in verschiedenen Reihen zu verschiedenen Zeiten belichtet und erfasst werden, was zu Verzerrung und anderen Bildartefakten im erfassten Einzelbild führen kann. Wenn andererseits die Bilderfassungsvorrichtung 122 konfiguriert ist, um mit einem globalen oder synchronen Verschluss zu arbeiten, können alle Pixel für die gleiche Zeit und während eines gemeinsamen Belichtungszeitraums belichtet werden. Infolgedessen stellen die Bilddaten in einem Einzelbild, die von einem System gesammelt werden, das einen globalen Verschluss verwendet, eine Momentaufnahme des gesamten FOV (wie beispielsweise FOV 202) zu einem bestimmten Zeitpunkt dar. Im Gegensatz dazu wird in einer Rolling-Shutter-Anwendung jede Reihe in einem Einzelbild belichtet und Daten zu verschiedenen Zeiten erfasst. Somit können sich bewegende Objekte in einer Bilderfassungsvorrichtung mit einem Rolling-Shutter verzerrt erscheinen. Diese Erscheinung wird nachfolgend ausführlicher beschrieben.
  • Die zweite Bilderfassungsvorrichtung 124 und die dritte Bilderfassungsvorrichtung 126 können jede Art von Bilderfassungsvorrichtung sein. Wie die erste Bilderfassungsvorrichtung 122 kann jede der Bilderfassungsvorrichtungen 124 und 126 eine optische Achse beinhalten. In einer Ausführungsform kann jede der Bilderfassungsvorrichtungen 124 und 126 einen Aptina M9V024 WVGA-Sensor mit einem globalen Verschluss beinhalten. Alternativ kann jede der Bilderfassungsvorrichtungen 124 und 126 einen Rolling-Shutter beinhalten. Wie die Bilderfassungsvorrichtung 122 können die Bilderfassungsvorrichtungen 124 und 126 konfiguriert sein, um verschiedene Linsen und optische Elemente zu beinhalten. In einigen Ausführungsformen können die mit den Bilderfassungsvorrichtungen 124 und 126 assoziierten Linsen FOV (wie beispielsweise FOV 204 und 206) bereitstellen, die gleich oder schmaler als ein FOV (wie beispielsweise FOV 202) sind, das mit der Bilderfassungsvorrichtung 122 assoziiert ist. Zum Beispiel können die Bilderfassungsvorrichtungen 124 und 126 FOV von 40 Grad, 30 Grad, 26 Grad, 23 Grad, 20 Grad oder weniger aufweisen.
  • Die Bilderfassungsvorrichtungen 124 und 126 können eine Vielzahl von zweiten und dritten Bildern relativ zu einer Szene erfassen, die mit dem Fahrzeug 200 assoziiert ist. Jedes der Vielzahl von zweiten und dritten Bildern kann als eine zweite und dritte Reihe von Bildabtastlinien erfasst werden, die unter Verwendung eines Rolling-Shutters erfasst werden können. Jede Abtastlinie oder Reihe kann eine Vielzahl von Pixeln aufweisen. Die Bilderfassungsvorrichtungen 124 und 126 können zweite und dritte Abtastraten aufweisen, die mit der Erfassung jeder der Bildabtastlinien assoziiert sind, die in der zweiten und dritten Reihe enthalten sind.
  • Jede Bilderfassungsvorrichtung 122, 124 und 126 kann an jeder geeigneten Position und Ausrichtung relativ zum Fahrzeug 200 positioniert werden. Die relative Positionierung der Bilderfassungsvorrichtungen 122, 124 und 126 kann ausgewählt werden, um beim Zusammenführen der von den Bilderfassungsvorrichtungen erfassten Informationen zu helfen. So kann beispielsweise in einigen Ausführungsformen ein FOV (wie beispielsweise FOV 204), das mit der Bilderfassungsvorrichtung 124 assoziiert ist, teilweise oder vollständig mit einem FOV (wie beispielsweise FOV 202), das mit der Bilderfassungsvorrichtung 122 assoziiert ist, und einem FOV (wie beispielsweise FOV 206), das mit der Bilderfassungsvorrichtung 126 assoziiert ist, überlappen.
  • Die Bilderfassungsvorrichtungen 122, 124 und 126 können sich auf dem Fahrzeug 200 in beliebigen geeigneten relativen Höhen befinden. In einem Fall kann es eine Höhendifferenz zwischen den Bilderfassungsvorrichtungen 122, 124 und 126 geben, die ausreichende Parallaxeninformationen bereitstellen kann, um eine Stereoanalyse zu ermöglichen. Wie beispielsweise in 2A gezeigt, befinden sich die beiden Bilderfassungsvorrichtungen 122 und 124 in unterschiedlichen Höhen. Es kann auch eine laterale Verschiebungsdifferenz zwischen den Bilderfassungsvorrichtungen 122, 124 und 126 geben, die beispielsweise zusätzliche Parallaxeninformationen für die Stereoanalyse durch die Verarbeitungseinheit 110 liefert. Die Differenz in der lateralen Verschiebung kann durch dx bezeichnet werden, wie in 2C und 2D gezeigt. In einigen Ausführungsformen kann eine Vorwärts- oder Rückwärtsverschiebung (z. B. Entfernungsverschiebung) zwischen den Bilderfassungsvorrichtungen 122, 124 und 126 existieren. Beispielsweise kann sich die Bilderfassungsvorrichtung 122 0,5 bis 2 Meter oder mehr hinter der Bilderfassungsvorrichtung 124 und/oder der Bilderfassungsvorrichtung 126 befinden. Diese Art der Verschiebung kann es einer der Bilderfassungsvorrichtungen ermöglichen, potenzielle toten Winkel der anderen Bilderfassungsvorrichtung(en) abzudecken.
  • Die Bilderfassungsvorrichtungen 122 können jede geeignete Auflösungsfähigkeit (z. B. Anzahl der Pixel, die mit dem Bildsensor assoziiert sind) aufweisen, und die Auflösung des Bildsensors/der Bildsensoren, die mit der Bilderfassungsvorrichtung 122 assoziiert sind, kann höher, niedriger oder gleich der Auflösung des Bildsensors/der Bildsensoren sein, die mit den Bilderfassungsvorrichtungen 124 und 126 assoziiert sind. In einigen Ausführungsformen kann/können der/die Bildsensor(en), die mit der Bilderfassungsvorrichtung 122 und/oder den Bilderfassungsvorrichtungen 124 und 126 assoziiert sind, eine Auflösung von 640 x 480, 1024 x 768, 1280 x 960 oder eine beliebige andere geeignete Auflösung aufweisen.
  • Die Bildrate (z. B. die Rate, mit der eine Bilderfassungsvorrichtung einen Satz von Pixeldaten eines Einzelbilds erfasst, bevor sie sich bewegt, um Pixeldaten zu erfassen, die mit dem nächsten Einzelbild assoziiert sind) kann steuerbar sein. Die Bildrate, die mit der Bilderfassungsvorrichtung 122 assoziiert ist, kann höher, niedriger oder gleich der Bildrate sein, die mit den Bilderfassungsvorrichtungen 124 und 126 assoziiert ist. Die Bildrate, die mit den Bilderfassungsvorrichtungen 122, 124 und 126 assoziiert ist, kann von einer Vielzahl von Faktoren abhängen, die das Timing der Bildrate beeinflussen können. Zum Beispiel können eine oder mehrere der Bilderfassungsvorrichtungen 122, 124 und 126 einen auswählbaren Pixelverzögerungszeitraum beinhalten, der vor oder nach der Erfassung von Bilddaten auferlegt wird, die mit einem oder mehreren Pixeln eines Bildsensors in der Bilderfassungsvorrichtung 122, 124 und/oder 126 assoziiert sind. Im Allgemeinen können Bilddaten, die jedem Pixel entsprechen, gemäß einer Taktrate für die Vorrichtung (z. B. ein Pixel pro Taktzyklus) erfasst werden. Zusätzlich können in Ausführungsformen, die einen Rolling-Shutter beinhalten, eine oder mehrere der Bilderfassungsvorrichtungen 122, 124 und 126 einen auswählbaren horizontalen Austastzeitraum beinhalten, der vor oder nach der Erfassung von Bilddaten auferlegt wird, die mit einer Reihe von Pixeln eines Bildsensors in der Bilderfassungsvorrichtung 122, 124 und/oder 126 assoziiert sind. Ferner können eine oder mehrere der Bilderfassungsvorrichtungen 122, 124 und/oder 126 einen auswählbaren vertikalen Austastzeitraum beinhalten, der vor oder nach der Erfassung von Bilddaten auferlegt wird, die mit einem Einzelbild der Bilderfassungsvorrichtung 122, 124 und 126 assoziiert sind.
  • Diese Zeitsteuerungen können die Synchronisation von Einzelbildraten ermöglichen, die mit den Bilderfassungsvorrichtungen 122, 124 und 126 assoziiert sind, selbst wenn die Zeilenabtastraten jeweils unterschiedlich sind. Zusätzlich können, wie nachfolgend ausführlicher erörtert wird, diese auswählbaren Zeitsteuerungen neben anderen Faktoren (z. B. Bildsensorauflösung, maximale Zeilenabtastraten usw.) die Synchronisation der Bilderfassung aus einem Bereich ermöglichen, in dem sich das FOV der Bilderfassungsvorrichtung 122 mit einem oder mehreren FOVs der Bilderfassungsvorrichtungen 124 und 126 überlappt, selbst wenn sich das Sichtfeld der Bilderfassungsvorrichtung 122 von den FOVs der Bilderfassungsvorrichtungen 124 und 126 unterscheidet.
  • Das Timing der Bildrate in der Bilderfassungsvorrichtung 122, 124 und 126 kann von der Auflösung der assoziierten Bildsensoren abhängen. Wenn beispielsweise ähnliche Zeilenabtastraten für beide Vorrichtungen angenommen werden, wenn eine Vorrichtung einen Bildsensor mit einer Auflösung von 640 x 480 beinhaltet und eine andere Vorrichtung einen Bildsensor mit einer Auflösung von 1280 x 960 beinhaltet, dann wird mehr Zeit benötigt, um ein Einzelbild von Bilddaten vom Sensor mit der höheren Auflösung zu erfassen.
  • Ein weiterer Faktor, der das Timing der Bilddatenerfassung in den Bilderfassungsvorrichtungen 122, 124 und 126 beeinflussen kann, ist die maximale Zeilenabtastrate. So erfordert beispielsweise die Erfassung einer Reihe von Bilddaten von einem Bildsensor, der in der Bilderfassungsvorrichtung 122, 124 und 126 beinhaltet ist, eine minimale Zeitdauer. Unter der Annahme, dass keine Pixelverzögerungszeiträume hinzugefügt werden, bezieht sich diese minimale Zeitdauer für die Erfassung einer Reihe von Bilddaten auf die maximale Zeilenabtastrate für eine bestimmte Vorrichtung. Vorrichtungen, die höhere maximale Zeilenabtastraten bieten, haben das Potenzial, höhere Bildraten bereitzustellen als Vorrichtungen mit niedrigeren maximalen Zeilenabtastraten. In einigen Ausführungsformen können eine oder mehrere der Bilderfassungsvorrichtungen 124 und 126 eine maximale Zeilenabtastrate aufweisen, die höher ist als eine maximale Zeilenabtastrate, die mit der Bilderfassungsvorrichtung 122 assoziiert ist. In einigen Ausführungsformen kann die maximale Zeilenabtastrate der Bilderfassungsvorrichtung 124 und/oder 126 das 1,25-, 1,5-, 1,75- oder 2-fache oder mehr einer maximalen Zeilenabtastrate der Bilderfassungsvorrichtung 122 betragen.
  • In einer anderen Ausführungsform können die Bilderfassungsvorrichtungen 122, 124 und 126 die gleiche maximale Zeilenabtastrate aufweisen, aber die Bilderfassungsvorrichtung 122 kann mit einer Abtastrate betrieben werden, die kleiner oder gleich ihrer maximalen Abtastrate ist. Das System kann so konfiguriert sein, dass eine oder mehrere der Bilderfassungsvorrichtungen 124 und 126 mit einer Zeilenabtastrate arbeiten, die gleich der Zeilenabtastrate der Bilderfassungsvorrichtung 122 ist. In anderen Fällen kann das System so konfiguriert sein, dass die Zeilenabtastrate der Bilderfassungsvorrichtung 124 und/oder der Bilderfassungsvorrichtung 126 das 1,25-, 1,5-, 1,75- oder 2-fache oder mehr der Zeilenabtastrate der Bilderfassungsvorrichtung 122 betragen kann.
  • In einigen Ausführungsformen können die Bilderfassungsvorrichtungen 122, 124 und 126 asymmetrisch sein. Das heißt, sie können Kameras mit unterschiedlichen Sichtfeldern (FOV) und Brennweiten beinhalten. Die Sichtfelder der Bilderfassungsvorrichtungen 122, 124 und 126 können beispielsweise einen beliebigen gewünschten Bereich in Bezug auf eine Umgebung des Fahrzeugs 200 beinhalten. In einigen Ausführungsformen können eine oder mehrere der Bilderfassungsvorrichtungen 122, 124 und 126 konfiguriert sein, um Bilddaten von einer Umgebung vor dem Fahrzeug 200, hinter dem Fahrzeug 200, an den Seiten des Fahrzeugs 200 oder Kombinationen davon zu erfassen.
  • Ferner kann die Brennweite, die mit jeder Bilderfassungsvorrichtung 122, 124 und/oder 126 assoziiert ist, auswählbar sein (z. B. durch Einbeziehung geeigneter Linsen usw.), sodass jede Vorrichtung Bilder von Objekten in einem gewünschten Entfernungsbereich in Bezug auf das Fahrzeug 200 erfasst. Zum Beispiel können in einigen Ausführungsformen die Bilderfassungsvorrichtungen 122, 124 und 126 Bilder von Nahaufnahmeobjekten innerhalb von einigen Metern vom Fahrzeug erfassen. In einigen Ausführungsformen können die Bilderfassungsvorrichtungen 122, 124 und 126 Bilder von Nahaufnahmeobjekten innerhalb von Die Bilderfassungsvorrichtungen 122, 124 und 126 können auch konfiguriert sein, um Bilder von Objekten in Entfernungen zu erfassen, die vom Fahrzeug weiter entfernt sind (z. B. 25 m, 50 m, 100 m, 150 m oder mehr). Ferner können die Brennweiten der Bilderfassungsvorrichtungen 122, 124 und 126 so ausgewählt werden, dass eine Bilderfassungsvorrichtung (z. B. Bilderfassungsvorrichtung 122) Bilder von Objekten relativ nahe am Fahrzeug (z. B. innerhalb von 10 m oder innerhalb von 20 m) erfassen kann, während die anderen Bilderfassungsvorrichtungen (z. B. Bilderfassungsvorrichtungen 124 und 126) Bilder von weiter entfernten Objekten (z. B. größer als 20 m, 50 m, 100 m, 150 m usw.) vom Fahrzeug 200 erfassen können.
  • Gemäß einigen Ausführungsformen kann das FOV einer oder mehrerer Bilderfassungsvorrichtungen 122, 124 und 126 einen breiten Winkel aufweisen. Zum Beispiel kann es vorteilhaft sein, ein FOV von 140 Grad aufzuweisen, insbesondere für die Bilderfassungsvorrichtungen 122, 124 und 126, die verwendet werden können, um Bilder des Bereichs in der Nähe des Fahrzeugs 200 zu erfassen. Zum Beispiel kann die Bilderfassungsvorrichtung 122 verwendet werden, um Bilder des Bereichs rechts oder links des Fahrzeugs 200 zu erfassen, und in solchen Ausführungsformen kann es wünschenswert sein, dass die Bilderfassungsvorrichtung 122 ein breites FOV (z. B. mindestens 140 Grad) aufweist.
  • Das Sichtfeld, das mit jeder der Bilderfassungsvorrichtungen 122, 124 und 126 assoziiert ist, kann von den jeweiligen Brennweiten abhängen. Wenn beispielsweise die Brennweite zunimmt, nimmt das entsprechende Sichtfeld ab.
  • Die Bilderfassungsvorrichtungen 122, 124 und 126 können konfiguriert sein, um beliebige geeignete Sichtfelder aufzuweisen. In einem bestimmten Beispiel kann die Bilderfassungsvorrichtung 122 ein horizontales FOV von 46 Grad aufweisen, die Bilderfassungsvorrichtung 124 kann ein horizontales FOV von 23 Grad aufweisen und die Bilderfassungsvorrichtung 126 kann ein horizontales FOV zwischen 23 und 46 Grad aufweisen. In einem anderen Fall kann die Bilderfassungsvorrichtung 122 ein horizontales FOV von 52 Grad aufweisen, die Bilderfassungsvorrichtung 124 kann ein horizontales FOV von 26 Grad aufweisen und die Bilderfassungsvorrichtung 126 kann ein horizontales FOV zwischen 26 und 52 Grad aufweisen. In einigen Ausführungsformen kann ein Verhältnis des FOV der Bilderfassungsvorrichtung 122 zu den FOVs der Bilderfassungsvorrichtung 124 und/oder der Bilderfassungsvorrichtung 126 von 1,5 bis 2,0 variieren. In anderen Ausführungsformen kann dieses Verhältnis zwischen 1,25 und 2,25 variieren.
  • Das System 100 kann so konfiguriert sein, dass ein Sichtfeld der Bilderfassungsvorrichtung 122 zumindest teilweise oder vollständig mit einem Sichtfeld der Bilderfassungsvorrichtung 124 und/oder der Bilderfassungsvorrichtung 126 überlappt. In einigen Ausführungsformen kann das System 100 so konfiguriert sein, dass die Sichtfelder der Bilderfassungsvorrichtungen 124 und 126 beispielsweise in das Sichtfeld der Bilderfassungsvorrichtung 122 fallen (z. B. schmaler als dieses sind) und ein gemeinsames Zentrum mit diesem teilen. In anderen Ausführungsformen können die Bilderfassungsvorrichtungen 122, 124 und 126 benachbarte FOVs erfassen oder eine partielle Überlappung in ihren FOVs aufweisen. In einigen Ausführungsformen können die Sichtfelder der Bilderfassungsvorrichtungen 122, 124 und 126 so ausgerichtet sein, dass ein Zentrum der schmaleren FOV-Bilderfassungsvorrichtungen 124 und/oder 126 in einer unteren Hälfte des Sichtfelds der breiteren FOV-Vorrichtung 122 angeordnet sein kann.
  • 2F ist eine diagrammatische Repräsentation von beispielhaften Fahrzeugsteuersystemen, die mit den offenbarten Ausführungsformen konsistent sind. Wie in 2F angegeben, kann das Fahrzeug 200 ein Drosselsystem 220, ein Bremssystem 230 und ein Lenksystem 240 beinhalten. Das System 100 kann Eingaben (z. B. Steuersignale) an eines oder mehrere von einem Drosselsystem 220, einem Bremssystem 230 und einem Lenksystem 240 über eine oder mehrere Datenverbindungen (z. B. eine beliebige verdrahtete und/oder drahtlose Verbindung oder Verbindungen zum Übertragen von Daten) bereitstellen. Zum Beispiel kann das System 100 basierend auf einer Analyse von Bildern, die durch die Bilderfassungsvorrichtungen 122, 124 und/oder 126 erfasst werden, Steuersignale an eines oder mehrere von einem Drosselsystem 220, einem Bremssystem 230 und einem Lenksystem 240 bereitstellen, um das Fahrzeug 200 zu navigieren (z. B. durch Bewirken einer Beschleunigung, eines Abbiegens, einer Fahrspurverschiebung usw.). Ferner kann das System 100 Eingaben von einem oder mehreren von einem Drosselsystem 220, einem Bremssystem 230 und einem Lenksystem 24 empfangen, die Betriebsbedingungen des Fahrzeugs 200 angeben (z. B. Geschwindigkeit, ob das Fahrzeug 200 bremst und/oder abbiegt usw.). Weitere Einzelheiten werden in Verbindung mit den nachfolgenden 4-7 bereitgestellt.
  • Wie in 3A gezeigt, kann das Fahrzeug 200 auch eine Benutzerschnittstelle 170 zum Interagieren mit einem Fahrer oder einem Fahrgast des Fahrzeugs 200 beinhalten. Zum Beispiel kann die Benutzerschnittstelle 170 in einer Fahrzeuganwendung einen Touchscreen 320, Knöpfe 330, Tasten 340 und ein Mikrofon 350 beinhalten. Ein Fahrer oder Fahrgast des Fahrzeugs 200 kann auch Griffe (die sich z. B. an oder nahe der Lenksäule des Fahrzeugs 200 befinden, einschließlich beispielsweise Blinkergriffe), Tasten (die sich z. B. am Lenkrad des Fahrzeugs 200 befinden) und dergleichen verwenden, um mit dem System 100 zu interagieren. In einigen Ausführungsformen kann das Mikrofon 350 benachbart zu einem Rückspiegel 310 positioniert sein. Ebenso kann sich die Bilderfassungsvorrichtung 122 in einigen Ausführungsformen nahe dem Rückspiegel 310 befinden. In einigen Ausführungsformen kann die Benutzerschnittstelle 170 auch einen oder mehrere Lautsprecher 360 (z. B. Lautsprecher eines Fahrzeugaudiosystems) beinhalten. Zum Beispiel kann das System 100 verschiedene Benachrichtigungen (z. B. Warnungen) über die Lautsprecher 360 bereitstellen.
  • 3B-3D sind Veranschaulichungen einer beispielhaften Kamerahaltung 370, die konfiguriert ist, um hinter einem Rückspiegel (z. B. Rückspiegel 310) und gegen eine Fahrzeugwindschutzscheibe positioniert zu sein, die mit offenbarten Ausführungsformen konsistent ist. Wie in 3B gezeigt, kann die Kamerahaltung 370 Bilderfassungsvorrichtungen 122, 124 und 126 beinhalten. Die Bilderfassungsvorrichtungen 124 und 126 können hinter einem Blendschutz 380 positioniert sein, der bündig an der Fahrzeugwindschutzscheibe sein kann und eine Zusammensetzung von Film- und/oder Antireflexmaterialien beinhalten kann. Beispielsweise kann der Blendschutz 380 derart positioniert sein, dass sich der Schutz an einer Fahrzeugwindschutzscheibe ausrichtet, die eine übereinstimmende Neigung aufweist. In einigen Ausführungsformen kann jede der Bilderfassungsvorrichtungen 122, 124 und 126 hinter dem Blendschutz 380 positioniert sein, wie beispielsweise in 3D gezeigt. Die offenbarten Ausführungsformen sind nicht auf eine bestimmte Konfiguration der Bilderfassungsvorrichtungen 122, 124 und 126, der Kamerahaltung 370 und des Blendschutzes 380 beschränkt. 3C ist eine Veranschaulichung der Kamerahaltung 370, die in 3B gezeigt ist, aus einer Vorderperspektive.
  • Wie für den Fachmann mit dem Vorteil dieser Offenbarung ersichtlich ist, können zahlreiche Variationen und/oder Modifikationen an den vorstehend offenbarten Ausführungsformen vorgenommen werden. Beispielsweise sind nicht alle Komponenten für den Betrieb des Systems 100 wesentlich. Ferner kann sich eine beliebige Komponente in einem beliebigen geeigneten Teil des Systems 100 befinden und die Komponenten können in eine Vielzahl von Konfigurationen umgeordnet werden, während die Funktionalität der offenbarten Ausführungsformen bereitgestellt wird. Daher sind die vorstehenden Konfigurationen Beispiele und unabhängig von den vorstehend erörterten Konfigurationen kann das System 100 einen breiten Bereich von Funktionalität bereitstellen, um die Umgebung des Fahrzeugs 200 zu analysieren und das Fahrzeug 200 als Reaktion auf die Analyse zu navigieren.
  • Wie nachfolgend ausführlicher erörtert und mit verschiedenen offenbarten Ausführungsformen konsistent, kann das System 100 eine Vielzahl von Merkmalen bereitstellen, die sich auf autonomes Fahren und/oder Fahrerassistenztechnologie beziehen. Beispielsweise kann das System 100 Bilddaten, Positionsdaten (z. B. GPS-Ortsinformationen), Kartendaten, Geschwindigkeitsdaten und/oder Daten von Sensoren, die im Fahrzeug 200 beinhaltet sind, analysieren. Das System 100 kann die Daten zur Analyse beispielsweise von der Bildaufnahmeeinheit 120, dem Positionssensor 130 und anderen Sensoren sammeln. Ferner kann das System 100 die gesammelten Daten analysieren, um zu bestimmen, ob das Fahrzeug 200 eine bestimmte Aktion ausführen sollte oder nicht, und dann die bestimmte Aktion ohne menschliches Eingreifen automatisch ausführen. Wenn beispielsweise das Fahrzeug 200 ohne menschliches Eingreifen navigiert, kann das System 100 das Bremsen, Beschleunigen und/oder Lenken des Fahrzeugs 200 automatisch steuern (z. B. durch Senden von Steuersignalen an eines oder mehrere von einem Drosselsystem 220, einem Bremssystem 230 und einem Lenksystem 240). Ferner kann das System 100 die gesammelten Daten analysieren und Warnungen und/oder Warnungen an Fahrzeuginsassen basierend auf der Analyse der gesammelten Daten ausgeben. Zusätzliche Einzelheiten bezüglich der verschiedenen Ausführungsformen, die durch das System 100 bereitgestellt werden, werden nachfolgend bereitgestellt.
  • Nach vorne gerichtetes Multi-Bildgebungssystem
  • Wie vorstehend erörtert, kann das System 100 Fahrassistenzfunktionalität bereitstellen, die ein Multi-Kamerasystem verwendet. Das Multi-Kamerasystem kann eine oder mehrere Kameras verwenden, die in die Vorwärtsrichtung eines Fahrzeugs gerichtet sind. In anderen Ausführungsformen kann das Multi-Kamerasystem eine oder mehrere Kameras beinhalten, die zur Seite eines Fahrzeugs oder zur Rückseite des Fahrzeugs gerichtet sind. In einer Ausführungsform kann das System 100 beispielsweise ein Zwei-Kamera-Bildgebungssystem verwenden, wobei eine erste Kamera und eine zweite Kamera (z. B. Bilderfassungsvorrichtungen 122 und 124) an der Front und/oder den Seiten eines Fahrzeugs (z. B. Fahrzeug 200) positioniert sein können. Die erste Kamera kann ein Sichtfeld aufweisen, das größer als, kleiner als oder teilweise überlappend mit dem Sichtfeld der zweiten Kamera ist. Zusätzlich kann die erste Kamera mit einem ersten Bildprozessor verbunden sein, um eine monokulare Bildanalyse von Bildern durchzuführen, die von der ersten Kamera bereitgestellt werden, und die zweite Kamera kann mit einem zweiten Bildprozessor verbunden sein, um eine monokulare Bildanalyse von Bildern durchzuführen, die von der zweiten Kamera bereitgestellt werden. Die Ausgaben (z. B. verarbeitete Informationen) des ersten und zweiten Bildprozessors können kombiniert werden. In einigen Ausführungsformen kann der zweite Bildprozessor Bilder sowohl von der ersten Kamera als auch der zweiten Kamera empfangen, um eine Stereoanalyse durchzuführen. In einer anderen Ausführungsform kann das System 100 ein Drei-Kamera-Bildgebungssystem verwenden, wobei jede der Kameras ein unterschiedliches Sichtfeld aufweist. Ein solches System kann daher Entscheidungen basierend auf Informationen treffen, die von Objekten abgeleitet sind, die sich in unterschiedlichen Abständen sowohl nach vorne als auch zu den Seiten des Fahrzeugs befinden. Verweise auf eine monokulare Bildanalyse können sich auf Fälle beziehen, in denen eine Bildanalyse basierend auf Bildern durchgeführt wird, die von einem einzelnen Blickwinkel (z. B. von einer einzelnen Kamera) erfasst werden. Eine Stereobildanalyse kann sich auf Fälle beziehen, in denen eine Bildanalyse basierend auf zwei oder mehr Bildern durchgeführt wird, die mit einer oder mehreren Variationen eines Bilderfassungsparameters erfasst werden. Beispielsweise können erfasste Bilder, die zum Durchführen einer Stereobildanalyse geeignet sind, Bilder beinhalten, die von zwei oder mehr unterschiedlichen Positionen, von unterschiedlichen Sichtfeldern, unter Verwendung unterschiedlicher Brennweiten, zusammen mit Parallaxeninformationen usw. erfasst werden.
  • So kann beispielsweise das System 100 in einer Ausführungsform eine Konfiguration mit drei Kameras unter Verwendung der Bilderfassungsvorrichtungen 122, 124 und 126 implementieren. In einer solchen Konfiguration kann die Bilderfassungsvorrichtung 122 ein schmales Sichtfeld bereitstellen (z. B. 34 Grad oder andere Werte, die aus einem Bereich von etwa 20 bis 45 Grad usw. ausgewählt werden), die Bilderfassungsvorrichtung 124 kann ein breites Sichtfeld bereitstellen (z. B. 150 Grad oder andere Werte, die aus einem Bereich von etwa 100 bis etwa 180 Grad ausgewählt werden), und die Bilderfassungsvorrichtung 126 kann ein Zwischensichtfeld bereitstellen (z. B. 46 Grad oder andere Werte, die aus einem Bereich von etwa 35 bis etwa 60 Grad ausgewählt werden). In einigen Ausführungsformen kann die Bilderfassungsvorrichtung 126 als Haupt- oder Primärkamera fungieren. Die Bilderfassungsvorrichtungen 122, 124 und 126 können hinter dem Rückspiegel 310 positioniert und im Wesentlichen nebeneinander positioniert sein (z. B. 6 cm voneinander entfernt). Ferner können in einigen Ausführungsformen, wie vorstehend erörtert, eine oder mehrere der Bilderfassungsvorrichtungen 122, 124 und 126 hinter dem Blendschutz 380 angebracht sein, der bündig mit der Windschutzscheibe des Fahrzeugs 200 ist. Eine derartige Abschirmung kann dazu dienen, den Einfluss von Reflexionen von innerhalb des Autos auf die Bilderfassungsvorrichtungen 122, 124 und 126 zu minimieren.
  • In einer anderen Ausführungsform, wie vorstehend in Verbindung mit den 3B und 3C erörtert, kann die breite Sichtfeldkamera (z. B. die Bilderfassungsvorrichtung 124 im vorstehenden Beispiel) niedriger als die schmalen und Hauptsichtfeldkameras (z. B. die Bildvorrichtungen 122 und 126 im vorstehenden Beispiel) montiert sein. Diese Konfiguration kann eine freie Sichtlinie von der breiten Sichtfeldkamera bereitstellen. Um Reflexionen zu reduzieren, können die Kameras nahe der Windschutzscheibe des Fahrzeugs 200 montiert sein und Polarisatoren an den Kameras beinhalten, um reflektiertes Licht zu dämpfen.
  • Ein System mit drei Kameras kann bestimmte Leistungsmerkmale bereitstellen. So können beispielsweise einige Ausführungsformen eine Fähigkeit beinhalten, die Erkennung von Objekten durch eine Kamera basierend auf Erkennungsergebnissen von einer anderen Kamera zu validieren. In der vorstehend erörterten Konfiguration mit drei Kameras kann die Verarbeitungseinheit 110 beispielsweise drei Verarbeitungsvorrichtungen (z. B. drei EyeQ-Reihen von Prozessorchips, wie vorstehend erörtert) beinhalten, wobei jede Verarbeitungsvorrichtung der Verarbeitung von Bildern gewidmet ist, die von einer oder mehreren der Bilderfassungsvorrichtungen 122, 124 und 126 erfasst werden.
  • In einem System mit drei Kameras kann eine erste Verarbeitungsvorrichtung Bilder sowohl von der Hauptkamera als auch der Kamera mit schmalem Sichtfeld empfangen und eine Bildverarbeitung der Kamera mit schmalem FOV durchführen, um beispielsweise andere Fahrzeuge, Fußgänger, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und andere Straßenobjekte zu erkennen. Ferner kann die erste Verarbeitungsvorrichtung eine Disparität von Pixeln zwischen den Bildern von der Hauptkamera und der schmalen Kamera berechnen und eine 3D-Rekonstruktion der Umgebung des Fahrzeugs 200 erstellen. Die erste Verarbeitungsvorrichtung kann dann die 3D-Rekonstruktion mit 3D-Kartendaten oder mit 3D-Informationen kombinieren, die basierend auf Informationen von einer anderen Kamera berechnet werden.
  • Die zweite Verarbeitungsvorrichtung kann Bilder von der Hauptkamera empfangen und eine Bildverarbeitung durchführen, um andere Fahrzeuge, Fußgänger, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und andere Straßenobjekte zu erkennen. Zusätzlich kann die zweite Verarbeitungsvorrichtung eine Kameraverschiebung berechnen und basierend auf der Verschiebung eine Disparität von Pixeln zwischen aufeinanderfolgenden Bildern berechnen und eine 3D-Rekonstruktion der Szene (z. B. eine Struktur aus Bewegung) erstellen. Die zweite Verarbeitungsvorrichtung kann die Struktur aus einer bewegungsbasierten 3D-Rekonstruktion an die erste Verarbeitungsvorrichtung senden, um mit den Stereo-3D-Bildern kombiniert zu werden.
  • Die dritte Verarbeitungsvorrichtung kann Bilder von der Kamera mit breitem FOV empfangen und die Bilder verarbeiten, um Fahrzeuge, Fußgänger, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und andere Straßenobjekte zu erkennen. Die dritte Verarbeitungsvorrichtung kann ferner zusätzliche Verarbeitungsanweisungen ausführen, um Bilder zu analysieren, um Objekte zu identifizieren, die sich im Bild bewegen, wie etwa Fahrzeuge, die Fahrspuren, Fußgänger usw. wechseln.
  • In einigen Ausführungsformen können Ströme von bildbasierten Informationen, die unabhängig erfasst und verarbeitet werden, eine Möglichkeit zum Bereitstellen von Redundanz im System bereitstellen. Eine solche Redundanz kann beispielsweise die Verwendung einer ersten Bilderfassungsvorrichtung und der von dieser Vorrichtung verarbeiteten Bilder beinhalten, um Informationen zu validieren und/oder zu ergänzen, die durch Erfassen und Verarbeiten von Bildinformationen von mindestens einer zweiten Bilderfassungsvorrichtung erhalten werden.
  • In einigen Ausführungsformen kann das System 100 zwei Bilderfassungsvorrichtungen (z. B. Bilderfassungsvorrichtungen 122 und 124) verwenden, um Navigationsunterstützung für das Fahrzeug 200 bereitzustellen und eine dritte Bilderfassungsvorrichtung (z. B. Bilderfassungsvorrichtung 126) verwenden, um Redundanz bereitzustellen und die Analyse der von den anderen beiden Bilderfassungsvorrichtungen empfangenen Daten zu validieren. So können beispielsweise in einer solchen Konfiguration die Bilderfassungsvorrichtungen 122 und 124 Bilder für die Stereoanalyse durch das System 100 zum Navigieren des Fahrzeugs 200 bereitstellen, während die Bilderfassungsvorrichtung 126 Bilder für die monokulare Analyse durch das System 100 bereitstellen kann, um Redundanz und Validierung von Informationen bereitzustellen, die basierend auf Bildern erhalten werden, die von der Bilderfassungsvorrichtung 122 und/oder der Bilderfassungsvorrichtung 124 erfasst werden. Das heißt, die Bilderfassungsvorrichtung 126 (und eine entsprechende Verarbeitungsvorrichtung) kann als ein redundantes Teilsystem zum Bereitstellen einer Überprüfung der Analyse, die von den Bilderfassungsvorrichtungen 122 und 124 abgeleitet ist (z. B. um ein automatisches Notbremssystem (AEB) bereitzustellen), betrachtet werden. Darüber hinaus kann in einigen Ausführungsformen die Redundanz und Validierung der empfangenen Daten basierend auf Informationen ergänzt werden, die von einem oder mehreren Sensoren empfangen werden (z. B. Radar, Lidar, akustische Sensoren, Informationen, die von einem oder mehreren Sendeempfängern außerhalb eines Fahrzeugs empfangen werden usw.).
  • Ein Fachmann wird erkennen, dass die obigen Kamerakonfigurationen, Kameraplatzierungen, Anzahl der Kameras, Kameraorte usw. nur Beispiele sind. Diese Komponenten und andere, die in Bezug auf das Gesamtsystem beschrieben sind, können in einer Vielzahl von unterschiedlichen Konfigurationen zusammengesetzt und verwendet werden, ohne vom Umfang der offenbarten Ausführungsformen abzuweichen. Weitere Details bezüglich der Verwendung eines Multi-Kamerasystems, um Fahrerassistenz- und/oder autonome Fahrzeugfunktionalität bereitzustellen, folgen nachfolgend.
  • 4 ist ein beispielhaftes funktionales Blockdiagramm des Speichers 140 und/oder 150, der mit Anweisungen zum Durchführen von einem oder mehreren Vorgängen gespeichert/programmiert werden kann, die mit den offenbarten Ausführungsformen konsistent sind. Obwohl sich das Folgende auf den Speicher 140 bezieht, wird ein Fachmann erkennen, dass Anweisungen im Speicher 140 und/oder 150 gespeichert werden können.
  • Wie in 4 gezeigt, kann der Speicher 140 ein Modul zur monokularen Bildanalyse 402, ein Modul zur Stereobildanalyse 404, ein Modul zur Geschwindigkeit und Beschleunigung 406 und ein Modul zur Navigationsreaktion 408 speichern. Die offenbarten Ausführungsformen sind nicht auf eine bestimmte Konfiguration des Speichers 140 beschränkt. Ferner können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 die Anweisungen ausführen, die in einem beliebigen der Module 402, 404, 406 und 408 gespeichert sind, die im Speicher 140 enthalten sind. Ein Fachmann wird verstehen, dass sich Verweise in den folgenden Erörterungen auf die Verarbeitungseinheit 110 einzeln oder gemeinsam auf den Anwendungsprozessor 180 und den Bildprozessor 190 beziehen können. Dementsprechend können Schritte eines beliebigen der folgenden Prozesse durch eine oder mehrere Verarbeitungsvorrichtungen durchgeführt werden.
  • In einer Ausführungsform kann das Modul zur monokularen Bildanalyse 402 Anweisungen (wie etwa Computervisionssoftware) speichern, die bei Ausführung durch die Verarbeitungseinheit 110 eine monokulare Bildanalyse eines Satzes von Bildern durchführen, die von einer der Bilderfassungsvorrichtungen 122, 124 und 126 erfasst werden. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen aus einem Satz von Bildern mit zusätzlichen sensorischen Informationen (z. B. Informationen von Radar, Lidar usw.) kombinieren, um die monokulare Bildanalyse durchzuführen. Wie in Verbindung mit den nachfolgenden 5A-5D beschrieben, kann das Modul zur monokularen Bildanalyse 402 Anweisungen zum Erkennen eines Satzes von Merkmalen innerhalb des Satzes von Bildern beinhalten, wie etwa Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrtrampen, Ampeln, gefährliche Objekte und ein beliebiges anderes Merkmal, das mit einer Umgebung eines Fahrzeugs assoziiert ist. Basierend auf der Analyse kann das System 100 (z. B. über die Verarbeitungseinheit 110) eine oder mehrere Navigationsreaktionen im Fahrzeug 200 bewirken, wie etwa ein Abbiegen, eine Fahrspurverschiebung, eine Änderung der Beschleunigung und dergleichen, wie nachfolgend in Verbindung mit dem Modul zur Navigationsreaktion 408 erörtert.
  • In einer Ausführungsform kann das Modul zur Stereobildanalyse 404 Anweisungen (wie etwa Computervisionssoftware) speichern, die bei Ausführung durch die Verarbeitungseinheit 110 eine Stereobildanalyse eines ersten und zweiten Satzes von Bildern durchführen, die von einer Kombination von Bilderfassungsvorrichtungen erfasst werden, die aus einer beliebigen der Bilderfassungsvorrichtungen 122, 124 und 126 ausgewählt sind. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen aus dem ersten und zweiten Satz von Bildern mit zusätzlichen sensorischen Informationen (z. B. Informationen von Radar) kombinieren, um die Stereobildanalyse durchzuführen. Zum Beispiel kann das Modul zur Stereobildanalyse 404 Anweisungen zum Durchführen einer Stereobildanalyse basierend auf einem ersten Satz von Bildern, die von der Bilderfassungsvorrichtung 124 erfasst werden, und einem zweiten Satz von Bildern, die von der Bilderfassungsvorrichtung 126 erfasst werden, beinhalten. Wie in Verbindung mit den nachfolgenden 6 beschrieben, kann das Modul zur Stereobildanalyse 404 Anweisungen zum Erkennen eines Satzes von Merkmalen innerhalb des ersten und zweiten Satzes von Bildern beinhalten, wie etwa Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrtrampen, Ampeln, gefährliche Objekte und dergleichen. Basierend auf der Analyse kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 bewirken, wie etwa ein Abbiegen, eine Fahrspurverschiebung, eine Änderung der Beschleunigung und dergleichen, wie nachfolgend in Verbindung mit dem Modul zur Navigationsreaktion 408 erörtert. Ferner kann das Modul zur Stereobildanalyse 404 in einigen Ausführungsformen Techniken implementieren, die mit einem trainierten System (wie etwa einem neuronalen Netzwerk oder einem tiefen neuronalen Netzwerk) oder einem nicht trainierten System assoziiert sind, wie etwa einem System, das konfiguriert sein kann, um Computervisionsalgorithmen zu verwenden, um Objekte in einer Umgebung zu erkennen und/oder zu bezeichnen, aus der sensorische Informationen erfasst und verarbeitet wurden. In einer Ausführungsform können das Modul zur Stereobildanalyse 404 und/oder andere Bildverarbeitungsmodule konfiguriert sein, um eine Kombination eines trainierten und nicht trainierten Systems zu verwenden.
  • In einer Ausführungsform kann das Modul zur Geschwindigkeit und Beschleunigung 406 Software speichern, die dazu konfiguriert ist, Daten zu analysieren, die von einer oder mehreren Rechenvorrichtungen und elektromechanischen Vorrichtungen im Fahrzeug 200 empfangen werden, die dazu konfiguriert sind, eine Änderung der Geschwindigkeit und/oder Beschleunigung des Fahrzeugs 200 zu bewirken. Zum Beispiel kann die Verarbeitungseinheit 110 Anweisungen ausführen, die mit dem Modul zur Geschwindigkeit und Beschleunigung 406 assoziiert sind, um eine Zielgeschwindigkeit für das Fahrzeug 200 basierend auf Daten zu berechnen, die von der Ausführung des Moduls zur monokularen Bildanalyse 402 und/oder des Moduls zur Stereobildanalyse 404 abgeleitet werden. Derartige Daten können beispielsweise eine Zielposition, -geschwindigkeit und/oder -beschleunigung, die Position und/oder Geschwindigkeit des Fahrzeugs 200 in Bezug auf ein nahegelegenes Fahrzeug, einen Fußgänger oder ein Straßenobjekt, Positionsinformationen für das Fahrzeug 200 in Bezug auf Fahrspurmarkierungen der Straße und dergleichen beinhalten. Zusätzlich kann die Verarbeitungseinheit 110 eine Zielgeschwindigkeit für das Fahrzeug 200 basierend auf sensorischen Eingaben (z. B. Informationen von Radar) und Eingaben von anderen Systemen des Fahrzeugs 200, wie etwa dem Drosselsystem 220, dem Bremssystem 230 und/oder dem Lenksystem 240 des Fahrzeugs 200, berechnen. Basierend auf der berechneten Zielgeschwindigkeit kann die Verarbeitungseinheit 110 elektronische Signale an das Drosselsystem 220, das Bremssystem 230 und/oder das Lenksystem 240 des Fahrzeugs 200 übertragen, um eine Änderung der Geschwindigkeit und/oder Beschleunigung auszulösen, indem beispielsweise die Bremse physisch niedergedrückt oder der Beschleuniger des Fahrzeugs 200 gelockert wird.
  • In einer Ausführungsform kann das Modul zur Navigationsreaktion 408 Software speichern, die durch die Verarbeitungseinheit 110 ausführbar ist, um eine gewünschte Navigationsreaktion basierend auf Daten zu bestimmen, die von der Ausführung des Moduls zur monokularen Bildanalyse 402 und/oder des Moduls zur Stereobildanalyse 404 abgeleitet werden. Derartige Daten können Positions- und Geschwindigkeitsinformationen, die mit nahegelegenen Fahrzeugen, Fußgängern und Straßenobjekten assoziiert sind, Zielpositionsinformationen für das Fahrzeug 200 und dergleichen beinhalten. Zusätzlich kann die Navigationsreaktion in einigen Ausführungsformen (teilweise oder vollständig) auf Kartendaten, einer vorbestimmten Position des Fahrzeugs 200 und/oder einer relativen Geschwindigkeit oder einer relativen Beschleunigung zwischen dem Fahrzeug 200 und einem oder mehreren Objekten basieren, die von der Ausführung des Moduls zur monokularen Bildanalyse 402 und/oder des Moduls zur Stereobildanalyse 404 detektiert werden. Das Modul zur Navigationsreaktion 408 kann auch eine gewünschte Navigationsreaktion basierend auf sensorischen Eingaben (z. B. Informationen von Radar) und Eingaben von anderen Systemen des Fahrzeugs 200, wie etwa dem Drosselsystem 220, dem Bremssystem 230 und dem Lenksystem 240 des Fahrzeugs 200, bestimmen. Basierend auf der gewünschten Navigationsreaktion kann die Verarbeitungseinheit 110 elektronische Signale an das Drosselsystem 220, das Bremssystem 230 und das Lenksystem 240 des Fahrzeugs 200 übertragen, um eine gewünschte Navigationsreaktion auszulösen, indem beispielsweise das Lenkrad des Fahrzeugs 200 gedreht wird, um eine Drehung eines vorbestimmten Winkels zu erreichen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die Ausgabe des Moduls zur Navigationsreaktion 408 (z. B. die gewünschte Navigationsreaktion) als eine Eingabe zur Ausführung des Moduls zur Geschwindigkeit und Beschleunigung 406 zum Berechnen einer Änderung der Geschwindigkeit des Fahrzeugs 200 verwenden.
  • Darüber hinaus kann jedes der hierin offenbarten Module (z. B. die Module 402, 404 und 406) Techniken implementieren, die mit einem trainierten System (wie etwa einem neuronalen Netzwerk oder einem tiefen neuronalen Netzwerk) oder einem nicht trainierten System assoziiert sind.
  • 5A ist ein Ablaufdiagramm, das einen beispielhaften Prozess 500A zum Veranlassen von einer oder mehreren Navigationsreaktionen basierend auf einer monokularen Bildanalyse zeigt, die mit offenbarten Ausführungsformen konsistent ist. Bei Schritt 510 kann die Verarbeitungseinheit 110 eine Vielzahl von Bildern über die Datenschnittstelle 128 zwischen der Verarbeitungseinheit 110 und der Bildaufnahmeeinheit 120 empfangen. Zum Beispiel kann eine Kamera, die in der Bildaufnahmeeinheit 120 enthalten ist (wie etwa die Bilderfassungsvorrichtung 122 mit dem Sichtfeld 202) eine Vielzahl von Bildern eines Bereichs vor dem Fahrzeug 200 (oder zum Beispiel zu den Seiten oder der Rückseite eines Fahrzeugs) erfassen und sie über eine Datenverbindung (z. B. digital, verdrahtet, USB, drahtlos, Bluetooth usw.) an die Verarbeitungseinheit 110 übertragen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um die Vielzahl von Bildern bei Schritt 520 zu analysieren, wie nachfolgend in Verbindung mit den 5B-5D ausführlicher beschrieben wird. Durch Durchführen der Analyse kann die Verarbeitungseinheit 110 einen Satz von Merkmalen innerhalb des Satzes von Bildern erkennen, wie etwa Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrtrampen, Ampeln und dergleichen.
  • Die Verarbeitungseinheit 110 kann auch das monokulare Bildanalysemodul 402 ausführen, um verschiedene Straßengefahren bei Schritt 520 zu erkennen, wie etwa zum Beispiel Teile eines Lastwagenreifens, gefallene Straßenschilder, lose Ladung, kleine Tiere und dergleichen. Straßengefahren können in Struktur, Form, Größe und Farbe variieren, was die Erkennung solcher Gefahren schwieriger machen kann. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 das monokulare Bildanalysemodul 402 ausführen, um eine Mehrrahmenanalyse an der Vielzahl von Bildern durchzuführen, um Straßengefahren zu erkennen. Zum Beispiel kann die Verarbeitungseinheit 110 die Kamerabewegung zwischen aufeinanderfolgenden Einzelbildern schätzen und die Disparitäten in Pixeln zwischen den Einzelbildern berechnen, um eine 3D-Karte der Straße zu erstellen. Die Verarbeitungseinheit 110 kann dann die 3D-Karte verwenden, um die Straßenoberfläche sowie die über der Straßenoberfläche existierenden Gefahren zu erkennen.
  • Bei Schritt 530 kann die Verarbeitungseinheit 110 das Modul zur Navigationsreaktion 408 ausführen, um eine oder mehrere Navigationsreaktionen im Fahrzeug 200 basierend auf der bei Schritt 520 durchgeführten Analyse und den Techniken, wie oben in Verbindung mit 4 beschrieben, zu bewirken. Navigationsreaktionen können beispielsweise ein Abbiegen, eine Fahrspurverschiebung, eine Änderung der Beschleunigung und dergleichen beinhalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Daten verwenden, die von der Ausführung des Moduls zur Geschwindigkeit und Beschleunigung 406 abgeleitet werden, um die eine oder mehreren Navigationsreaktionen zu bewirken. Zusätzlich können mehrere Navigationsreaktionen gleichzeitig, nacheinander oder in einer beliebigen Kombination davon stattfinden. Beispielsweise kann die Verarbeitungseinheit 110 bewirken, dass das Fahrzeug 200 eine Fahrspur umschaltet und dann beschleunigt, indem sie beispielsweise nacheinander Steuersignale an das Lenksystem 240 und das Drosselsystem 220 des Fahrzeugs 200 überträgt. Alternativ kann die Verarbeitungseinheit 110 bewirken, dass das Fahrzeug 200 bremst, während es gleichzeitig Fahrspuren umschaltet, indem sie beispielsweise gleichzeitig Steuersignale an das Bremssystem 230 und das Lenksystem 240 des Fahrzeugs 200 überträgt.
  • 5B ist ein Ablaufdiagramm, das einen beispielhaften Prozess 500B zum Detektieren von einem oder mehreren Fahrzeugen und/oder Fußgängern in einem Satz von Bildern zeigt, die mit offenbarten Ausführungsformen konsistent sind. Die Verarbeitungseinheit 110 kann das Modul zur monokularen Bildanalyse 402 ausführen, um den Prozess 500B zu implementieren. Bei Schritt 540 kann die Verarbeitungseinheit 110 einen Satz von Kandidatenobjekten bestimmen, die mögliche Fahrzeuge und/oder Fußgänger darstellen. Beispielsweise kann die Verarbeitungseinheit 110 ein oder mehrere Bilder scannen, die Bilder mit einem oder mehreren vorbestimmten Mustern vergleichen und innerhalb jedes Bilds mögliche Orte identifizieren, die Objekte von Interesse enthalten können (z. B. Fahrzeuge, Fußgänger oder Abschnitte davon). Beispielsweise kann die Verarbeitungseinheit 110 einen niedrigen Schwellenwert der Ähnlichkeit mit vorbestimmten Mustern zum Identifizieren von Kandidatenobjekten als mögliche Fahrzeuge oder Fußgänger verwenden. Dies kann es der Verarbeitungseinheit 110 ermöglichen, die Wahrscheinlichkeit zu reduzieren, dass ein Kandidatenobjekt, das ein Fahrzeug oder einen Fußgänger darstellt, fehlt (z. B. nicht identifiziert).
  • Bei Schritt 542 kann die Verarbeitungseinheit 110 den Satz von Kandidatenobjekten filtern, um bestimmte Kandidaten (z. B. irrelevante oder weniger relevante Objekte) basierend auf Klassifizierungskriterien auszuschließen. Solche Kriterien können von verschiedenen Eigenschaften abgeleitet werden, die mit Objekttypen assoziiert sind, die in einer Datenbank (z. B. einer im Speicher 140 gespeicherten Datenbank) gespeichert sind. Eigenschaften können Objektform, Abmessungen, Textur, Position (z. B. relativ zum Fahrzeug 200) und dergleichen beinhalten. Somit kann die Verarbeitungseinheit 110 einen oder mehrere Sätze von Kriterien verwenden, um falsche Kandidaten aus dem Satz von Kandidatenobjekten abzulehnen.
  • Bei Schritt 544 kann die Verarbeitungseinheit 110 mehrere Einzelbilder von Bildern analysieren, um zu bestimmen, ob Objekte im Satz von Kandidatenobjekten Fahrzeuge und/oder Fußgänger darstellen. So kann beispielsweise die Verarbeitungseinheit 110 ein erfasstes Kandidatenobjekt über aufeinanderfolgende Einzelbilder verfolgen und Einzelbilddaten akkumulieren, die mit dem erfassten Objekt assoziiert sind (z. B. Größe, Position relativ zum Fahrzeug 200 usw.). Zusätzlich kann die Verarbeitungseinheit 110 Parameter für das erfasste Objekt schätzen und die Einzelbildpositionsdaten des Objekts mit einer vorhergesagten Position vergleichen.
  • Bei Schritt 546 kann die Verarbeitungseinheit 110 einen Satz von Messungen für die erfassten Objekte erstellen. Derartige Messungen können beispielsweise Positions-, Geschwindigkeits- und Beschleunigungswerte (relativ zum Fahrzeug 200) beinhalten, die mit den erfassten Objekten assoziiert sind. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die Messungen basierend auf Schätztechniken unter Verwendung einer Reihe von zeitbasierten Beobachtungen wie Kalman-Filtern oder linearer quadratischer Schätzung (LQE) und/oder basierend auf verfügbaren Modellierungsdaten für verschiedene Objekttypen (z. B. Autos, Lastwagen, Fußgänger, Fahrräder, Verkehrszeichen usw.) erstellen. Die Kalman-Filter können auf einer Messung der Skala eines Objekts basieren, wobei die Skalenmessung proportional zu einer Zeit bis zur Kollision ist (z. B. die Zeitdauer, die das Fahrzeug 200 benötigt, um das Objekt zu erreichen). Somit kann die Verarbeitungseinheit 110 durch Durchführen der Schritte 540 -546 Fahrzeuge und Fußgänger identifizieren, die innerhalb des Satzes von erfassten Bildern erscheinen, und Informationen (z. B. Position, Geschwindigkeit, Größe) ableiten, die mit den Fahrzeugen und Fußgängern assoziiert sind. Basierend auf der Identifikation und den abgeleiteten Informationen kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 bewirken, wie oben in Verbindung mit 5A beschrieben.
  • Bei Schritt 548 kann die Verarbeitungseinheit 110 eine optische Flussanalyse eines oder mehrerer Bilder durchführen, um die Wahrscheinlichkeiten zu reduzieren, dass ein „falscher Treffer“ detektiert wird und ein Kandidatenobjekt, das ein Fahrzeug oder einen Fußgänger darstellt, fehlt. Die optische Flussanalyse kann sich beispielsweise auf das Analysieren von Bewegungsmustern relativ zum Fahrzeug 200 in einem oder mehreren Bildern beziehen, die mit anderen Fahrzeugen und Fußgängern assoziiert sind und sich von der Straßenoberflächenbewegung unterscheiden. Die Verarbeitungseinheit 110 kann die Bewegung von Kandidatenobjekten berechnen, indem sie die verschiedenen Positionen der Objekte über mehrere Einzelbilder beobachtet, die zu verschiedenen Zeiten erfasst werden. Die Verarbeitungseinheit 110 kann die Positions- und Zeitwerte als Eingaben in mathematische Modelle zum Berechnen der Bewegung der Kandidatenobjekte verwenden. Somit kann die optische Flussanalyse ein anderes Verfahren zum Detektieren von Fahrzeugen und Fußgängern bereitstellen, die sich in der Nähe des Fahrzeugs 200 befinden. Die Verarbeitungseinheit 110 kann die optische Flussanalyse in Kombination mit den Schritten 540 -546 durchführen, um Redundanz zum Detektieren von Fahrzeugen und Fußgängern bereitzustellen und die Zuverlässigkeit des Systems 100 zu erhöhen.
  • 5C ist ein Ablaufdiagramm, das einen beispielhaften Prozess 500C zum Detektieren von Straßenmarkierungen und/oder Fahrspurgeometrieinformationen in einem Satz von Bildern zeigt, in Übereinstimmung mit offenbarten Ausführungsformen. Die Verarbeitungseinheit 110 kann das Modul zur monokularen Bildanalyse 402 ausführen, um den Prozess 500C zu implementieren. Bei Schritt 550 kann die Verarbeitungseinheit 110 einen Satz von Objekten durch Abtasten eines oder mehrerer Bilder detektieren. Um Segmente von Fahrspurmarkierungen, Fahrspurgeometrieinformationen und andere relevante Straßenmarkierungen zu detektieren, kann die Verarbeitungseinheit 110 den Satz von Objekten filtern, um jene auszuschließen, die als irrelevant bestimmt wurden (z. B. kleine Schlaglöcher, kleine Felsen usw.). Bei Schritt 552 kann die Verarbeitungseinheit 110 die in Schritt 550 detektierten Segmente, die zur gleichen Straßenmarkierung oder Fahrspurmarkierung gehören, zusammengruppieren. Basierend auf der Gruppierung kann die Verarbeitungseinheit 110 ein Modell entwickeln, um die detektierten Segmente zu repräsentieren, wie etwa ein mathematisches Modell.
  • Bei Schritt 554 kann die Verarbeitungseinheit 110 einen Satz von Messungen konstruieren, die mit den detektierten Segmenten assoziiert sind. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Projektion der detektierten Segmente von der Bildebene auf die reale Ebene erstellen. Die Projektion kann unter Verwendung eines Polynoms dritten Grads charakterisiert werden, das Koeffizienten aufweist, die physischen Eigenschaften, wie etwa der Position, Neigung, Krümmung und Krümmungsableitung der detektierten Straße, entsprechen. Beim Erzeugen der Projektion kann die Verarbeitungseinheit 110 Änderungen in der Straßenoberfläche sowie Nick- und Rollraten, die mit dem Fahrzeug 200 assoziiert sind, 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, die mit dem Fahrzeug 200 assoziiert sind, durch Verfolgen eines Satzes von Merkmalspunkten in den einen oder mehreren Bildern schätzen.
  • Bei Schritt 556 kann die Verarbeitungseinheit 110 eine Mehrrahmenanalyse durchführen, indem sie beispielsweise die detektierten Segmente über aufeinanderfolgende Einzelbilder verfolgt und Einzelbilddaten akkumuliert, die mit detektierten Segmenten assoziiert sind. Da die Verarbeitungseinheit 110 eine Mehrrahmenanalyse durchführt, kann der bei Schritt 554 erstellte Satz von Messungen zuverlässiger werden und mit einem immer höheren Konfidenzniveau assoziiert werden. Somit kann die Verarbeitungseinheit 110 durch Durchführen der Schritte 550, 552, 554 und 556 Straßenmarkierungen identifizieren, die innerhalb des Satzes von erfassten Bildern erscheinen, und Fahrspurgeometrieinformationen ableiten. Basierend auf der Identifikation und den abgeleiteten Informationen kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 bewirken, wie oben in Verbindung mit 5A beschrieben.
  • Bei Schritt 558 kann die Verarbeitungseinheit 110 zusätzliche Informationsquellen in Betracht ziehen, um ein Sicherheitsmodell für das Fahrzeug 200 im Kontext seiner Umgebung weiter zu entwickeln. Die Verarbeitungseinheit 110 kann das Sicherheitsmodell verwenden, um einen Kontext zu definieren, in dem das System 100 autonome Steuerung des Fahrzeugs 200 auf sichere Weise ausführen kann. Um das Sicherheitsmodell zu entwickeln, kann die Verarbeitungseinheit 110 in einigen Ausführungsformen die Position und Bewegung anderer Fahrzeuge, die detektierten Straßenränder und Hindernisse und/oder allgemeine Straßenformbeschreibungen, die aus Kartendaten (wie etwa Daten aus der Kartendatenbank 160) extrahiert werden, in Betracht ziehen. Durch Berücksichtigen zusätzlicher Informationsquellen kann die Verarbeitungseinheit 110 Redundanz zum Detektieren von Straßenmarkierung und Fahrspur-Geometrie bereitstellen und die Zuverlässigkeit des Systems 100 erhöhen.
  • 5D ist ein Ablaufdiagramm, das einen beispielhaften Prozess 500D zum Detektieren von Ampel in einem Satz von Bildern zeigt, die mit offenbarten Ausführungsformen konsistent sind. Die Verarbeitungseinheit 110 kann das Modul zur monokularen Bildanalyse 402 ausführen, um den Prozess 500D zu implementieren. Bei Schritt 560 kann die Verarbeitungseinheit 110 den Satz von Bildern scannen und Objekte identifizieren, die an Orten in den Bildern erscheinen, die wahrscheinlich Ampel enthalten. Zum Beispiel kann die Verarbeitungseinheit 110 die identifizierten Objekte filtern, um einen Satz von Kandidatenobjekten zu erstellen, wobei ausgeschlossen wird, dass diese Objekte wahrscheinlich nicht der Ampel entsprechen. Das Filtern kann basierend auf verschiedenen Eigenschaften erfolgen, die mit Ampel assoziiert sind, wie etwa Form, Abmessungen, Textur, Position (z. B. relativ zum Fahrzeug 200) und dergleichen. Solche Eigenschaften können auf mehreren Beispielen von Ampel und Verkehrssteuersignalen basieren und in einer Datenbank gespeichert sein. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Mehrrahmenanalyse am Satz von Kandidatenobjekten durchführen, die mögliche Ampel reflektieren. Zum Beispiel kann die Verarbeitungseinheit 110 die Kandidatenobjekte über aufeinanderfolgende Einzelbilder verfolgen, die reale Position der Kandidatenobjekte schätzen und diejenigen Objekte herausfiltern, die sich bewegen (die wahrscheinlich keine Ampel sind). In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Farbanalyse an den Kandidatenobjekten durchführen und die relative Position der detektierten Farben identifizieren, die innerhalb möglicher Ampel erscheinen.
  • Bei Schritt 562 kann die Verarbeitungseinheit 110 die Geometrie einer Kreuzung analysieren. Die Analyse kann auf einer beliebigen Kombination von Folgendem basieren: (i) der Anzahl von Fahrspuren, die auf beiden Seiten des Fahrzeugs 200 detektiert werden, (ii) Markierungen (wie etwa Pfeilmarkierungen), die auf der Straße detektiert werden, und (iii) Beschreibungen der Kreuzung, die aus Kartendaten (wie etwa Daten aus der Kartendatenbank 160) extrahiert werden. Die Verarbeitungseinheit 110 kann die Analyse unter Verwendung von Informationen durchführen, die von der Ausführung des Moduls zur monokularen Analyse 402 abgeleitet werden. Zusätzlich kann die Verarbeitungseinheit 110 eine Übereinstimmung zwischen den bei Schritt 560 detektierten Ampeln und den in der Nähe des Fahrzeugs 200 erscheinenden Fahrspuren bestimmen.
  • Wenn sich das Fahrzeug 200 der Kreuzung nähert, kann die Verarbeitungseinheit 110 bei Schritt 564 das Konfidenzniveau aktualisieren, das mit der analysierten Kreuzungsgeometrie und den detektierten Ampeln assoziiert ist. So kann beispielsweise die Anzahl von Ampeln, die als an der Kreuzung erscheinend geschätzt wird, im Vergleich zu der Anzahl, die tatsächlich an der Kreuzung erscheint, sich auf das Konfidenzniveau auswirken. Somit kann die Verarbeitungseinheit 110 basierend auf dem Konfidenzniveau die Steuerung an den Fahrer des Fahrzeugs 200 delegieren, um die Sicherheitsbedingungen zu verbessern. Durch Durchführen der Schritte 560, 562 und 564 kann die Verarbeitungseinheit 110 Ampeln identifizieren, die innerhalb des Satzes von erfassten Bildern erscheinen, und Kreuzungsgeometrieinformationen analysieren. Basierend auf der Identifikation und der Analyse kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 bewirken, wie oben in Verbindung mit 5A beschrieben.
  • 5E ist ein Ablaufdiagramm, das einen beispielhaften Prozess 500E zum Veranlassen von einer oder mehreren Navigationsreaktionen im Fahrzeug 200 basierend auf einem Fahrzeugweg zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen. Bei Schritt 570 kann die Verarbeitungseinheit 110 einen anfänglichen Fahrzeugweg konstruieren, der mit dem Fahrzeug 200 assoziiert ist. Der Fahrzeugweg kann unter Verwendung eines Satzes von Punkten dargestellt werden, die in Koordinaten (x, z) ausgedrückt werden, und die Entfernung di zwischen zwei Punkten im Satz von Punkten kann in den Bereich von 1 bis 5 Metern fallen. In einer Ausführungsform kann die Verarbeitungseinheit 110 den anfänglichen Fahrzeugweg unter Verwendung von zwei Polynomen, wie etwa linken und rechten Straßenpolynomen, konstruieren. Die Verarbeitungseinheit 110 kann den geometrischen Mittelpunkt zwischen den zwei Polynomen berechnen und jeden Punkt, der im resultierenden Fahrzeugweg enthalten ist, um einen vorbestimmten Versatz (z. B. einen Versatz einer intelligenten Fahrspur) versetzen, falls vorhanden (ein Versatz von null kann einer Fahrt in der Mitte einer Fahrspur entsprechen). Der Versatz kann in einer Richtung senkrecht zu einem Segment zwischen beliebigen zwei Punkten im Fahrzeugweg sein. In 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 plus einen vorbestimmten Versatz (z. B. einen Versatz einer intelligenten Fahrspur) zu versetzen.
  • Bei Schritt 572 kann die Verarbeitungseinheit 110 den bei Schritt 570 konstruierten Fahrzeugweg aktualisieren. Die Verarbeitungseinheit 110 kann den bei Schritt 570 konstruierten Fahrzeugweg unter Verwendung einer höheren Auflösung rekonstruieren, sodass die Entfernung dk zwischen zwei Punkten im Satz von Punkten, die den Fahrzeugweg darstellen, kleiner als die vorstehend beschriebene Entfernung di ist. Beispielsweise kann die Entfernung dk in den Bereich von 0,1 bis 0,3 Metern fallen. Die Verarbeitungseinheit 110 kann den Fahrzeugweg unter Verwendung eines Parabel-Spline-Algorithmus rekonstruieren, der einen kumulativen Entfernungsvektor S liefern kann, der der Gesamtlänge des Fahrzeugwegs entspricht (d. h. basierend auf dem Satz von Punkten, die den Fahrzeugweg darstellen).
  • Bei Schritt 574 kann die Verarbeitungseinheit 110 einen Vorausschaupunkt (ausgedrückt in Koordinaten als (xl, zl)) basierend auf dem bei Schritt 572 konstruierten aktualisierten Fahrzeugweg bestimmen. Die Verarbeitungseinheit 110 kann den Vorausschaupunkt aus dem kumulativen Entfernungsvektor S extrahieren, und der Vorausschaupunkt kann mit einer Vorausschauentfernung und Vorausschauzeit assoziiert sein. Die Vorausschauentfernung, die eine untere Grenze im Bereich von 10 bis 20 Metern aufweisen kann, kann als Produkt der Geschwindigkeit des Fahrzeugs 200 und der Vorausschauzeit berechnet werden. Wenn beispielsweise die Geschwindigkeit des Fahrzeugs 200 abnimmt, kann die Vorausschauentfernung ebenfalls abnehmen (z. B. bis sie die untere Grenze erreicht). Die Vorausschauzeit, die im Bereich von 0,5 bis 1,5 Sekunden liegen kann, kann umgekehrt proportional zu der Verstärkung von einer oder mehreren Steuerschleifen sein, die mit dem Veranlassen einer Navigationsreaktion im Fahrzeug 200 assoziiert sind, wie beispielsweise die Fahrtrichtungsfehlerverfolgungssteuerschleife. So kann beispielsweise die Verstärkung der Fahrtrichtungsfehlerverfolgungssteuerschleife von der Bandbreite einer Gierratenschleife, einer Lenkstellgliedschleife, der Fahrzeugquerdynamik und dergleichen abhängen. Je höher also die Verstärkung der Fahrtrichtungsfehlerverfolgungssteuerschleife ist, desto geringer ist die Vorausschauzeit.
  • Bei Schritt 576 kann die Verarbeitungseinheit 110 einen Fahrtrichtungsfehler und einen Gierratenbefehl basierend auf dem bei Schritt 574 bestimmten Vorausschaupunkt bestimmen. Die Verarbeitungseinheit 110 kann den Fahrtrichtungsfehler bestimmen, indem sie den Arkustangens des Vorausschaupunkts berechnet, z. B. arctan (xl/zl). Die Verarbeitungseinheit 110 kann den Gierratenbefehl als Produkt des Fahrtrichtungsfehlers und einer hohen Steuerverstärkung bestimmen. Die hohe Steuerverstärkung kann gleich: (2/Vorausschauzeit) sein, wenn die Vorausschauentfernung nicht an der unteren Grenze liegt. Andernfalls kann die hohe Steuerverstärkung gleich: (2*Geschwindigkeit des Fahrzeugs 200/Vorausschauentfernung) sein.
  • 5F ist ein Ablaufdiagramm, das einen beispielhaften Prozess 500F zum Bestimmen zeigt, ob ein vorausfahrendes Fahrzeug Fahrspuren wechselt, die mit den offenbarten Ausführungsformen konsistent sind. Bei Schritt 580 kann die Verarbeitungseinheit 110 Navigationsinformationen bestimmen, die mit einem vorausfahrenden Fahrzeug assoziiert sind (z. B. einem Fahrzeug, das vor dem Fahrzeug 200 fährt). Beispielsweise kann die Verarbeitungseinheit 110 die Position, Geschwindigkeit (z. B. Richtung und Geschwindigkeit) und/oder Beschleunigung des vorausfahrenden Fahrzeugs unter Verwendung der oben in Verbindung mit den 5A und 5B beschriebenen Techniken bestimmen. Die Verarbeitungseinheit 110 kann auch ein oder mehrere Straßenpolynome, einen Vorausschaupunkt (assoziiert mit dem Fahrzeug 200) und/oder eine Schneckenspur (z. B. einen Satz von Punkten, die einen Weg beschreiben, der vom vorausfahrenden Fahrzeug aufgenommen wird) unter Verwendung der oben in Verbindung mit 5E beschriebenen Techniken bestimmen.
  • Bei Schritt 582 kann die Verarbeitungseinheit 110 die bei Schritt 580 bestimmten Navigationsinformationen analysieren. In einer Ausführungsform kann die Verarbeitungseinheit 110 den Abstand zwischen einer Schneckenspur und einem Straßenpolynom (z. B. entlang der Spur) berechnen. Wenn die Varianz dieses Abstands entlang der Spur einen vorbestimmten Schwellenwert überschreitet (beispielsweise 0,1 bis 0,2 Meter auf einer geraden Straße, 0,3 bis 0,4 Meter auf einer mäßig kurvigen Straße und 0,5 bis 0,6 Meter auf einer Straße mit scharfen Kurven), kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich Fahrspuren wechselt. Im Falle, dass mehrere Fahrzeuge erfasst werden, die vor dem Fahrzeug 200 fahren, kann die Verarbeitungseinheit 110 die Schneckenspuren vergleichen, die mit jedem Fahrzeug assoziiert sind. Basierend auf dem Vergleich kann die Verarbeitungseinheit 110 bestimmen, dass ein Fahrzeug, dessen Schneckenspur nicht mit den Schneckenspuren der anderen Fahrzeuge übereinstimmt, wahrscheinlich Fahrspuren wechselt. Die Verarbeitungseinheit 110 kann zusätzlich die Krümmung der Schneckenspur (die mit dem vorausfahrenden Fahrzeug assoziiert ist) mit der erwarteten Krümmung des Straßensegments vergleichen, in dem das vorausfahrende Fahrzeug fährt. Die erwartete Krümmung kann aus Kartendaten (z. B. Daten aus der Kartendatenbank 160), aus Straßenpolynomen, aus Schneckenspuren anderer Fahrzeuge, aus Vorkenntnissen über die Straße und dergleichen extrahiert werden. Wenn die Krümmungsdifferenz der Schneckenspur und die erwartete Krümmung des Straßensegments einen vorbestimmten Schwellenwert überschreitet, kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich Fahrspuren wechselt.
  • In einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die momentane Position des vorausfahrenden Fahrzeugs mit dem Vorausschaupunkt (der mit dem Fahrzeug 200 assoziiert ist) über einen spezifischen Zeitraum (z. B. 0,5 bis 1,5 Sekunden) vergleichen. Wenn die Entfernung zwischen der momentanen Position des vorausfahrenden Fahrzeugs und dem Vorausschaupunkt während des spezifischen Zeitraums variiert und die kumulative Summe der Variation einen vorbestimmten Schwellenwert überschreitet (beispielsweise 0,3 bis 0,4 Meter auf einer geraden Straße, 0,7 bis 0,8 Meter auf einer mäßig kurvigen Straße und 1,3 bis 1,7 Meter auf einer Straße mit scharfen Kurven), kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich Fahrspuren wechselt. In einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die Geometrie der Schneckenspur analysieren, indem sie den seitlichen Abstand, der entlang der Spur zurückgelegt wird, mit der erwarteten Krümmung der Schneckenspur vergleicht. Der erwartete Krümmungsradius kann gemäß der Berechnung bestimmt werden: (δz2 + δx2)/2/(δx), wobei δx</sub> den zurückgelegten seitlichen Abstand darstellt und δz</sub> den zurückgelegten Längsabstand darstellt. Wenn die Differenz zwischen dem zurückgelegten seitlichen Abstand und der erwarteten Krümmung einen vorbestimmten Schwellenwert überschreitet (z. B. 500 bis 700 Meter), kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich Fahrspuren wechselt. In einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die Position des vorausfahrenden Fahrzeugs analysieren. Wenn die Position des vorausfahrenden Fahrzeugs ein Straßenpolynom verdeckt (z. B. wird das vorausfahrende Fahrzeug über das Straßenpolynom gelegt), dann kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich Fahrspuren wechselt. Im Falle, dass die Position des vorausfahrenden Fahrzeugs derart ist, dass ein anderes Fahrzeug vor dem vorausfahrenden Fahrzeug erfasst wird und die Schneckenspuren der zwei Fahrzeuge nicht parallel sind, kann die Verarbeitungseinheit 110 bestimmen, dass das (nähere) vorausfahrende Fahrzeug wahrscheinlich Fahrspuren wechselt.
  • Bei Schritt 584 kann die Verarbeitungseinheit 110 basierend auf der bei Schritt 582 durchgeführten Analyse bestimmen, ob das vorausfahrende Fahrzeug 200 Fahrspuren wechselt oder nicht. Beispielsweise kann die Verarbeitungseinheit 110 die Bestimmung basierend auf einem gewichteten Durchschnitt der bei Schritt 582 durchgeführten einzelnen Analysen vornehmen. Unter einem solchen Schema kann beispielsweise einer Entscheidung durch die Verarbeitungseinheit 110, dass das vorausfahrende Fahrzeug wahrscheinlich Fahrspuren wechselt, basierend auf einer bestimmten Art von Analyse ein Wert von „1“ (und „0“, um eine Bestimmung darzustellen, dass das vorausfahrende Fahrzeug wahrscheinlich keine Fahrspuren wechselt) zugeordnet werden. Unterschiedlichen Analysen, die bei Schritt 582 durchgeführt werden, können unterschiedliche Gewichte zugeordnet werden, und die offenbarten Ausführungsformen sind nicht auf eine bestimmte Kombination von Analysen und Gewichten beschränkt.
  • 6 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 600 zum Veranlassen von einer oder mehreren Navigationsreaktionen basierend auf einer Stereobildanalyse zeigt, die mit offenbarten Ausführungsformen konsistent ist. Bei Schritt 610 kann die Verarbeitungseinheit 110 eine erste und zweite Vielzahl von Bildern über die Datenschnittstelle 128 empfangen. Zum Beispiel können Kameras, die in der Bildaufnahmeeinheit 120 enthalten sind (wie etwa die Bilderfassungsvorrichtungen 122 und 124 mit den Sichtfeldern 202 und 204) eine erste und zweite Vielzahl von Bildern eines Bereichs vor dem Fahrzeug 200 erfassen und sie über eine digitale Verbindung (z. B. USB, drahtlos, Bluetooth usw.) an die Verarbeitungseinheit 110 übertragen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die erste und zweite Vielzahl von Bildern über zwei oder mehr Datenschnittstellen empfangen. Die offenbarten Ausführungsformen sind nicht auf bestimmte Datenschnittstellenkonfigurationen oder -protokolle beschränkt.
  • Bei Schritt 620 kann die Verarbeitungseinheit 110 das Stereobildanalysemodul 404 ausführen, um eine Stereobildanalyse der ersten und zweiten Vielzahl von Bildern durchzuführen, um eine 3D-Karte der Straße vor dem Fahrzeug zu erstellen und Merkmale innerhalb der Bilder zu erkennen, wie etwa Fahrspur-Markierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrtrampen, Ampeln, Straßengefahren und dergleichen. Die Stereobildanalyse kann auf eine Weise durchgeführt werden, die den oben in Verbindung mit den 5A-5D beschriebenen Schritten ähnlich ist. Beispielsweise kann die Verarbeitungseinheit 110 das Stereobildanalysemodul 404 ausführen, um Kandidatenobjekte (z. B. Fahrzeuge, Fußgänger, Straßenmarkierungen, Ampeln, Straßengefahren usw.) innerhalb der ersten und zweiten Vielzahl von Bildern zu erkennen, eine Teilmenge der Kandidatenobjekte basierend auf verschiedenen Kriterien herauszufiltern und eine Mehrrahmenanalyse durchzuführen, Messungen zu erstellen und ein Konfidenzniveau für die verbleibenden Kandidatenobjekte zu bestimmen. Beim Durchführen der obigen Schritte kann die Verarbeitungseinheit 110 Informationen sowohl von der ersten als auch der zweiten Vielzahl von Bildern als auch Informationen von einem Satz von Bildern allein in Betracht ziehen. Beispielsweise kann die Verarbeitungseinheit 110 die Differenzen in Pixelebenendaten (oder anderen Datenteilmengen aus den zwei Strömen von erfassten Bildern) für ein Kandidatenobjekt analysieren, das sowohl in der ersten als auch in der zweiten Vielzahl von Bildern erscheint. Als ein anderes Beispiel kann die Verarbeitungseinheit 110 eine Position und/oder Geschwindigkeit eines Kandidatenobjekts (z. B. relativ zum Fahrzeug 200) schätzen, indem sie beobachtet, dass das Objekt in einem der Vielzahl von Bildern erscheint, aber nicht im anderen oder relativ zu anderen Differenzen, die relativ zu Objekten existieren können, die erscheinen, wenn die zwei Bildströme. Beispielsweise können Position, Geschwindigkeit und/oder Beschleunigung relativ zum Fahrzeug 200 basierend auf Trajektorien, Positionen, Bewegungsmerkmalen usw. von Merkmalen bestimmt werden, die mit einem Objekt assoziiert sind, das in einem oder beiden der Bildströme erscheint.
  • Bei Schritt 630 kann die Verarbeitungseinheit 110 das Modul zur Navigationsreaktion 408 ausführen, um eine oder mehrere Navigationsreaktionen im Fahrzeug 200 basierend auf der bei Schritt 620 durchgeführten Analyse und den Techniken, wie oben in Verbindung mit 4 beschrieben, zu bewirken. Navigationsreaktionen können beispielsweise ein Abbiegen, eine Fahrspurverschiebung, eine Änderung der Beschleunigung, eine Änderung der Geschwindigkeit, Bremsen und dergleichen beinhalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Daten verwenden, die von der Ausführung des Moduls zur Geschwindigkeit und Beschleunigung 406 abgeleitet werden, um die eine oder mehreren Navigationsreaktionen zu bewirken. Zusätzlich können mehrere Navigationsreaktionen gleichzeitig, nacheinander oder in einer beliebigen Kombination davon stattfinden.
  • 7 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 700 zum Veranlassen von einer oder mehreren Navigationsreaktionen basierend auf einer Analyse von drei Sätzen von Bildern zeigt, die mit offenbarten Ausführungsformen konsistent sind. Bei Schritt 710 kann die Verarbeitungseinheit 110 eine erste, zweite und dritte Vielzahl von Bildern über die Datenschnittstelle 128 empfangen. Zum Beispiel können Kameras, die in der Bildaufnahmeeinheit 120 enthalten sind (wie etwa die Bilderfassungsvorrichtungen 122, 124 und 126 mit den Sichtfeldern 202, 204 und 206) eine erste, zweite und dritte Vielzahl von Bildern eines Bereichs vor und/oder zur Seite des Fahrzeugs 200 erfassen und sie über eine digitale Verbindung (z. B. USB, drahtlos, Bluetooth usw.) an die Verarbeitungseinheit 110 übertragen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die erste, zweite und dritte Vielzahl von Bildern über drei oder mehr Datenschnittstellen empfangen. Zum Beispiel kann jede der Bilderfassungsvorrichtungen 122, 124, 126 eine assoziierte Datenschnittstelle zum Kommunizieren von Daten an die Verarbeitungseinheit 110 aufweisen. Die offenbarten Ausführungsformen sind nicht auf bestimmte Datenschnittstellenkonfigurationen oder -protokolle beschränkt.
  • Bei Schritt 720 kann die Verarbeitungseinheit 110 die erste, zweite und dritte Vielzahl von Bildern analysieren, um Merkmale innerhalb der Bilder zu erkennen, wie etwa Fahrspur- Markierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrtrampen, Ampeln, Straßengefahren und dergleichen. Die Analyse kann auf eine Weise durchgeführt werden, die den oben in Verbindung mit den 5A-5D und 6 beschriebenen Schritten ähnlich ist. Zum Beispiel kann die Verarbeitungseinheit 110 eine monokulare Bildanalyse (z. B. über die Ausführung des Moduls zur monokularen Bildanalyse 402 und basierend auf den oben in Verbindung mit den 5A-5D beschriebenen Schritten) an jedem der ersten, zweiten und dritten Vielzahl von Bildern durchführen. Alternativ kann die Verarbeitungseinheit 110 eine Stereobildanalyse (z. B. über die Ausführung des Moduls zur Stereobildanalyse 404 und basierend auf den oben in Verbindung mit 6 beschriebenen Schritten) an der ersten und zweiten Vielzahl von Bildern, der zweiten und dritten Vielzahl von Bildern und/oder der ersten und dritten Vielzahl von Bildern durchführen. Die verarbeiteten Informationen, die der Analyse der ersten, zweiten und/oder dritten Vielzahl von Bildern entsprechen, können kombiniert werden. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Kombination von monokularen und Stereobildanalysen durchführen. Zum Beispiel kann die Verarbeitungseinheit 110 eine monokulare Bildanalyse (z. B. über die Ausführung des Moduls zur monokularen Bildanalyse 402) an der ersten Vielzahl von Bildern und eine Stereobildanalyse (z. B. über die Ausführung des Moduls zur Stereobildanalyse 404) an der zweiten und dritten Vielzahl von Bildern durchführen. Die Konfiguration der Bilderfassungsvorrichtungen 122, 124 und 126 - einschließlich ihrer jeweiligen Orte und Sichtfelder 202, 204 und 206 - kann die Arten von Analysen beeinflussen, die an der ersten, zweiten und dritten Vielzahl von Bildern durchgeführt werden. Die offenbarten Ausführungsformen sind nicht auf eine bestimmte Konfiguration der Bilderfassungsvorrichtungen 122, 124 und 126 oder die Arten von Analysen beschränkt, die an der ersten, zweiten und dritten Vielzahl von Bildern durchgeführt werden.
  • In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Prüfung am System 100 basierend auf den bei den Schritten 710 und 720 erfassten und analysierten Bildern durchführen. Eine solche Prüfung kann einen Indikator für die Gesamtleistung des Systems 100 für bestimmte Konfigurationen der Bilderfassungsvorrichtungen 122, 124 und 126 bereitstellen. So kann beispielsweise die Verarbeitungseinheit 110 den Anteil der „falschen Treffer“ (z. B. Fälle, in denen das System 100 das Vorhandensein eines Fahrzeugs oder Fußgängers falsch bestimmt hat) und der „Fehlschläge“ bestimmen.
  • Bei Schritt 730 kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 basierend auf Informationen bewirken, die von zwei der ersten, zweiten und dritten Vielzahl von Bildern abgeleitet werden. Die Auswahl von zwei der ersten, zweiten und dritten Vielzahl von Bildern kann von verschiedenen Faktoren abhängen, wie beispielsweise der Anzahl, den Typen und Größen der in jedem der Vielzahl von Bildern erfassten Objekte. Die Verarbeitungseinheit 110 kann auch die Auswahl basierend auf Bildqualität und Auflösung, dem effektiven Sichtfeld, das in den Bildern reflektiert wird, der Anzahl der erfassten Einzelbilder, dem Ausmaß, in dem ein oder mehrere Objekte von Interesse tatsächlich in den Einzelbildern erscheinen (z. B. dem Prozentsatz der Einzelbilder, in denen ein Objekt erscheint, dem Anteil des Objekts, das in jedem dieser Einzelbilder erscheint, usw.) und dergleichen treffen.
  • In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen auswählen, die von zwei der ersten, zweiten und dritten Vielzahl von Bildern abgeleitet werden, indem sie das Ausmaß bestimmt, in dem Informationen, die von einer Bildquelle abgeleitet werden, mit Informationen konsistent sind, die von anderen Bildquellen abgeleitet werden. Beispielsweise kann die Verarbeitungseinheit 110 die verarbeiteten Informationen kombinieren, die von jeder der Bilderfassungsvorrichtungen 122, 124 und 126 (ob durch monokulare Analyse, Stereoanalyse oder eine beliebige Kombination der beiden) abgeleitet werden, und visuelle Indikatoren (z. B. Fahrspurmarkierungen, ein erfasstes Fahrzeug und seinen Ort und/oder Weg, eine erfasste Ampel usw.) bestimmen, die über die Bilder konsistent sind, die von jeder der Bilderfassungsvorrichtungen 122, 124 und 126 erfasst werden. Die Verarbeitungseinheit 110 kann auch Informationen ausschließen, die über die erfassten Bilder inkonsistent sind (z. B. ein Fahrzeug, das Fahrspuren wechselt, ein Fahrspurmodell, das ein Fahrzeug anzeigt, das zu nahe am Fahrzeug 200 ist usw.). Somit kann die Verarbeitungseinheit 110 Informationen auswählen, die von zwei der ersten, zweiten und dritten Vielzahl von Bildern abgeleitet werden, basierend auf den Bestimmungen konsistenter und inkonsistenter Informationen.
  • Navigationsreaktionen können beispielsweise ein Abbiegen, eine Fahrspurverschiebung, eine Änderung der Beschleunigung und dergleichen beinhalten. Die Verarbeitungseinheit 110 kann die eine oder mehreren Navigationsreaktionen basierend auf der bei Schritt 720 durchgeführten Analyse und den Techniken, wie oben in Verbindung mit 4 beschrieben, bewirken. Die Verarbeitungseinheit 110 kann auch Daten verwenden, die von der Ausführung des Moduls zur Geschwindigkeit und Beschleunigung 406 abgeleitet werden, um die eine oder mehreren Navigationsreaktionen zu bewirken. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die eine oder mehreren Navigationsreaktionen basierend auf einer relativen Position, relativen Geschwindigkeit und/oder relativen Beschleunigung zwischen dem Fahrzeug 200 und einem Objekt, das innerhalb eines beliebigen der ersten, zweiten und dritten Vielzahl von Bildern erfasst wird, bewirken. Mehrere Navigationsreaktionen können gleichzeitig, nacheinander oder in einer beliebigen Kombination davon stattfinden.
  • Dünnbesetztes Straßenmodell für die autonome Fahrzeugnavigation
  • In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünnbesetzte Karte zur autonomen Fahrzeugnavigation verwenden. Insbesondere kann die dünnbesetzte Karte für die autonome Fahrzeugnavigation entlang einem Straßensegment sein. Zum Beispiel kann die dünnbesetzte Karte ausreichende Informationen zum Navigieren eines autonomen Fahrzeugs bereitstellen, ohne eine große Menge von Daten zu speichern und/oder zu aktualisieren. Wie nachfolgend ausführlicher erörtert, kann ein autonomes Fahrzeug die dünnbesetzte Karte verwenden, um eine oder mehrere Straßen basierend auf einer oder mehreren gespeicherten Trajektorien zu navigieren.
  • Dünnbesetzte Karte für die autonome Fahrzeugnavigation
  • In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünnbesetzte Karte zur autonomen Fahrzeugnavigation erzeugen. Zum Beispiel kann die dünnbesetzte Karte ausreichende Informationen zur Navigation bereitstellen, ohne übermäßigen Datenspeicher oder übermäßige Datenübertragungsraten zu erfordern. Wie nachfolgend ausführlicher erörtert, kann ein Fahrzeug (das ein autonomes Fahrzeug sein kann) die dünnbesetzte Karte verwenden, um eine oder mehrere Straßen zu navigieren. Zum Beispiel kann die dünnbesetzte Karte in einigen Ausführungsformen Daten beinhalten, die sich auf eine Straße und potenziell Orientierungspunkte entlang der Straße beziehen, die für die Fahrzeugnavigation ausreichend sein können, die jedoch ebenfalls kleine Datenabdrücke aufweisen. Zum Beispiel können die dünnbesetzten Datenkarten, die nachfolgend ausführlicher beschrieben werden, im Vergleich zu digitalen Karten, die detaillierte Karteninformationen beinhalten, wie etwa Bilddaten, die entlang einer Straße gesammelt werden, deutlich weniger Speicherplatz und Datenübertragungsbandbreite erfordern.
  • Anstatt detaillierte Repräsentationen eines Straßensegments zu speichern, kann die dünnbesetzte Datenkarte beispielsweise dreidimensionale Polynomrepräsentationen von bevorzugten Fahrzeugwegen entlang einer Straße speichern. Diese Wege können sehr wenig Datenspeicherplatz erfordern. Ferner können in den beschriebenen dünnbesetzten Datenkarten Orientierungspunkte identifiziert und in das Straßenmodell der dünnbesetzten Karte aufgenommen werden, um bei der Navigation zu helfen. Diese Orientierungspunkte können sich in einem beliebigen Abstand befinden, der zum Ermöglichen der Fahrzeugnavigation geeignet ist, aber in einigen Fällen müssen solche Orientierungspunkte nicht identifiziert und in das Modell mit hohen Dichten und kurzen Abständen aufgenommen werden. Vielmehr kann die Navigation in einigen Fällen basierend auf Orientierungspunkten möglich sein, die mindestens 50 Meter, mindestens 100 Meter, mindestens 500 Meter, mindestens 1 Kilometer oder mindestens 2 Kilometer voneinander entfernt sind. Wie in anderen Abschnitten ausführlicher erörtert wird, kann die dünnbesetzte Karte basierend auf Daten erzeugt werden, die von Fahrzeugen gesammelt oder gemessen werden, die mit verschiedenen Sensoren und Vorrichtungen ausgestattet sind, wie etwa Bilderfassungsvorrichtungen, Sensoren des globalen Positionsbestimmungssystems, Bewegungssensoren usw., während die Fahrzeuge auf Fahrbahnen fahren. In einigen Fällen kann die dünnbesetzte Karte basierend auf Daten erzeugt werden, die während mehrerer Fahrten eines oder mehrerer Fahrzeuge entlang einer bestimmten Fahrbahn gesammelt werden. Das Erzeugen einer dünnbesetzten Karte unter Verwendung mehrerer Fahrten eines oder mehrerer Fahrzeuge kann als „Crowdsourcing“ einer dünnbesetzten Karte bezeichnet werden.
  • In Übereinstimmung mit offenbarten Ausführungsformen kann ein autonomes Fahrzeugsystem eine dünnbesetzte Karte zur Navigation verwenden. Zum Beispiel können die offenbarten Systeme und Verfahren eine dünnbesetzte Karte zum Erzeugen eines Straßennavigationsmodells für ein autonomes Fahrzeug verteilen und können ein autonomes Fahrzeug entlang einem Straßensegment unter Verwendung einer dünnbesetzten Karte und/oder eines erzeugten Straßennavigationsmodells navigieren. Dünnbesetzte Karten, die mit der vorliegenden Offenbarung konsistent sind, können eine oder mehrere dreidimensionale Konturen beinhalten, die vorbestimmte Trajektorien darstellen können, die autonome Fahrzeuge durchqueren können, wenn sie sich entlang assoziierter Straßensegmente bewegen.
  • Dünnbesetzte Karten, die mit der vorliegenden Offenbarung konsistent sind, können auch Daten beinhalten, die ein oder mehrere Straßenmerkmale darstellen. Solche Straßenmerkmale können erkannte Orientierungspunkte, Straßensignaturprofile und beliebige andere straßenbezogene Merkmale beinhalten, die beim Navigieren eines Fahrzeugs nützlich sind. Dünnbesetzte Karten, die mit der vorliegenden Offenbarung konsistent sind, können eine autonome Navigation eines Fahrzeugs basierend auf relativ kleinen Mengen von Daten ermöglichen, die in der dünnbesetzten Karte enthalten sind. Anstatt zum Beispiel detaillierte Repräsentationen einer Straße, wie etwa Straßenränder, Straßenkrümmung, Bilder, die mit Straßensegmenten assoziiert sind, oder Daten, die andere physische Merkmale, die mit einem Straßensegment assoziiert sind, detailliert sind, zu beinhalten, können die offenbarten Ausführungsformen der dünnbesetzten Karte relativ wenig Speicherplatz (und relativ wenig Bandbreite, wenn Teile der dünnbesetzten Karte zu einem Fahrzeug übertragen werden) erfordern, können jedoch weiterhin adäquat eine autonome Fahrzeugnavigation bereitstellen. Der kleine Datenfußabdruck der offenbarten dünnbesetzten Karten, der nachfolgend ausführlicher erörtert wird, kann in einigen Ausführungsformen durch Speichern von Repräsentationen von straßenbezogenen Elementen erreicht werden, die kleine Mengen von Daten erfordern, die jedoch weiterhin eine autonome Navigation ermöglichen.
  • Anstatt zum Beispiel detaillierte Repräsentationen von verschiedenen Aspekten einer Straße zu speichern, können die offenbarten dünnbesetzten Karten Polynomrepräsentationen von einer oder mehreren Trajektorien speichern, denen ein Fahrzeug entlang der Straße folgen kann. Somit kann ein Fahrzeug, anstatt Details bezüglich der physischen Beschaffenheit der Straße zu speichern (oder übertragen zu müssen), um eine Navigation entlang der Straße zu ermöglichen, unter Verwendung der offenbarten dünnbesetzten Karten entlang eines bestimmten Straßensegments navigiert werden, ohne in einigen Fällen physische Aspekte der Straße interpretieren zu müssen, sondern vielmehr durch Ausrichten seines Fahrwegs mit einer Trajektorie (z. B. einem Polynom-Spline) entlang des bestimmten Straßensegments. Auf diese Weise kann das Fahrzeug hauptsächlich basierend auf der gespeicherten Trajektorie (z. B. einem Polynom-Spline) navigiert werden, die viel weniger Speicherplatz als ein Ansatz erfordern kann, der das Speichern von Fahrbahnbildern, Straßenparametern, Straßenlayout usw. beinhaltet.
  • Zusätzlich zu den gespeicherten Polynomrepräsentationen von Trajektorien entlang eines Straßensegments können die offenbarten dünnbesetzten Karten auch kleine Datenobjekte beinhalten, die ein Straßenmerkmal repräsentieren können. In einigen Ausführungsformen können die kleinen Datenobjekte digitale Signaturen beinhalten, die von einem digitalen Bild (oder einem digitalen Signal) abgeleitet werden, das von einem Sensor (z. B. einer Kamera oder einem anderen Sensor, wie beispielsweise einem Aufhängungssensor) an Bord eines Fahrzeugs erhalten wurde, das entlang des Straßensegments fährt. Die digitale Signatur kann eine reduzierte Größe relativ zu dem Signal aufweisen, das vom Sensor erfasst wurde. In einigen Ausführungsformen kann die digitale Signatur so erzeugt werden, dass sie mit einer Klassifiziererfunktion kompatibel ist, die konfiguriert ist, um das Straßenmerkmal aus dem Signal zu erkennen und zu identifizieren, das vom Sensor beispielsweise während einer nachfolgenden Fahrt erfasst wird. In einigen Ausführungsformen kann eine digitale Signatur so erzeugt werden, dass die digitale Signatur einen Fußabdruck aufweist, der so klein wie möglich ist, während die Fähigkeit beibehalten wird, das Straßenmerkmal mit der gespeicherten Signatur basierend auf einem Bild (oder einem digitalen Signal, das von einem Sensor erzeugt wird, wenn die gespeicherte Signatur nicht auf einem Bild basiert und/oder andere Daten beinhaltet) des Straßenmerkmals zu korrelieren oder abzugleichen, das von einer Kamera an Bord eines Fahrzeugs erfasst wird, das entlang desselben Straßensegments zu einem nachfolgenden Zeitpunkt fährt.
  • In einigen Ausführungsformen kann eine Größe der Datenobjekte ferner mit einer Einzigartigkeit des Straßenmerkmals assoziiert sein. Zum Beispiel kann es für ein Straßenmerkmal, das von einer Kamera an Bord eines Fahrzeugs detektierbar ist, und wenn das Kamerasystem an Bord des Fahrzeugs mit einem Klassifizierer gekoppelt ist, der in der Lage ist, die Bilddaten, die diesem Straßenmerkmal entsprechen, als mit einem bestimmten Typ von Straßenmerkmal assoziiert zu unterscheiden, zum Beispiel einem Straßenschild, und wenn ein solches Straßenschild in diesem Bereich lokal einzigartig ist (z. B. gibt es kein identisches Straßenschild oder Straßenschild derselben Art in der Nähe), ausreichend sein, Daten zu speichern, die den Typ des Straßenmerkmals und seinen Ort angeben.
  • Wie nachfolgend ausführlicher erörtert wird, können Straßenmerkmale (z. B. Orientierungspunkte entlang eines Straßensegments) als kleine Datenobjekte gespeichert werden, die ein Straßenmerkmal in relativ wenigen Bytes repräsentieren können, während gleichzeitig ausreichende Informationen zum Erkennen und Verwenden eines solchen Merkmals zur Navigation bereitgestellt werden. In einem Beispiel kann ein Straßenschild als ein erkannter Orientierungspunkt identifiziert werden, auf dem die Navigation eines Fahrzeugs basieren kann. Eine Repräsentation des Straßenschilds kann in der dünnbesetzten Karte gespeichert werden, um z. B. einige Bytes an Daten, die einen Typ von Orientierungspunkt (z. B. ein Stoppschild) angeben, und einige Bytes an Daten, die einen Ort des Orientierungspunkts (z. B. Koordinaten) angeben, zu beinhalten. Das Navigieren basierend auf solchen Datenlichtrepräsentationen der Orientierungspunkte (z. B. unter Verwendung von Repräsentationen, die zum Lokalisieren, Erkennen und Navigieren basierend auf den Orientierungspunkten ausreichen) kann ein gewünschtes Niveau an Navigationsfunktionalität bereitstellen, das mit dünnbesetzten Karten assoziiert ist, ohne den Datenoverhead, der mit den dünnbesetzten Karten assoziiert ist, signifikant zu erhöhen. Diese schlanke Repräsentation von Orientierungspunkten (und anderen Straßenmerkmalen) kann die Sensoren und Prozessoren, die an Bord solcher Fahrzeuge enthalten sind, die dazu konfiguriert sind, bestimmte Straßenmerkmale zu detektieren, zu identifizieren und/oder zu klassifizieren, nutzen.
  • Wenn zum Beispiel ein Zeichen oder sogar einen bestimmten Typ eines Zeichens in einem gegebenen Bereich lokal einzigartig ist (z. B. wenn es kein anderes Zeichen oder kein anderes Zeichen desselben Typs gibt), kann die dünnbesetzte Karte Daten verwenden, die einen Typ eines Orientierungspunkts (ein Zeichen oder eine bestimmten Typ von Zeichen) angeben, und während der Navigation (z. B. autonome Navigation), wenn eine Kamera an Bord eines autonomen Fahrzeugs ein Bild des Bereichs erfasst, das ein Zeichen (oder einen bestimmte Typ von Zeichen) beinhaltet, kann der Prozessor das Bild verarbeiten, das Zeichen detektieren (wenn es tatsächlich im Bild vorhanden ist), das Bild als ein Zeichen (oder als einen bestimmten Typ von Zeichen) klassifizieren und den Ort des Bilds mit dem Ort des Zeichens, wie in der dünnbesetzten Karte gespeichert, korrelieren.
  • Erzeugen einer dünnbesetzten Karte
  • In einigen Ausführungsformen kann eine dünnbesetzte Karte mindestens eine Linienrepräsentation eines Merkmals der Straßenoberfläche, das sich entlang eines Straßensegments erstreckt, und eine Vielzahl von Orientierungspunkten, die dem Straßensegment zugeordnet sind, beinhalten. In bestimmten Aspekten kann die dünnbesetzte Karte durch „Crowdsourcing“ erzeugt werden, zum Beispiel durch Bildanalyse einer Vielzahl von Bildern, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment überqueren.
  • 8 zeigt eine dünnbesetzte Karte 800, auf die ein oder mehrere Fahrzeuge, z. B. das Fahrzeug 200 (das ein autonomes Fahrzeug sein kann), zugreifen können, um eine autonome Fahrzeugnavigation bereitzustellen. Die dünnbesetzte Karte 800 kann in einem Speicher, wie etwa dem Speicher 140 oder 150, gespeichert sein. Derartige Speichervorrichtungen können beliebige Arten von nichtflüchtigen Speichervorrichtungen oder computerlesbaren Medien beinhalten. Zum Beispiel kann der Speicher 140 oder 150 in einigen Ausführungsformen Festplatten, Compact Discs, Flash-Speicher, magnetbasierte Speichervorrichtungen, optisch basierte Speichervorrichtungen usw. beinhalten. In einigen Ausführungsformen kann die dünnbesetzte Karte 800 in einer Datenbank (z. B. Kartendatenbank 160) gespeichert sein, die im Speicher 140 oder 150 oder anderen Arten von Speichervorrichtungen gespeichert sein kann.
  • In einigen Ausführungsformen kann die dünnbesetzte Karte 800 auf einer Speichervorrichtung oder einem nichtflüchtigen computerlesbaren Medium gespeichert sein, das an Bord des Fahrzeugs 200 bereitgestellt ist (z. B. einer Speichervorrichtung, die in einem Navigationssystem an Bord des Fahrzeugs 200 enthalten ist). Ein Prozessor (z. B. Verarbeitungseinheit 110), der am Fahrzeug 200 bereitgestellt ist, kann auf die dünnbesetzte Karte 800 zugreifen, die in der Speichervorrichtung oder dem computerlesbaren Medium gespeichert ist, das an Bord des Fahrzeugs 200 bereitgestellt ist, um Navigationsanweisungen zum Führen des autonomen Fahrzeugs 200 zu erzeugen, wenn das Fahrzeug ein Straßensegment überquert.
  • Die dünnbesetzte Karte 800 muss jedoch nicht lokal in Bezug auf ein Fahrzeug gespeichert sein. In einigen Ausführungsformen kann die dünnbesetzte Karte 800 auf einer Speichervorrichtung oder einem computerlesbaren Medium gespeichert sein, das auf einem entfernten Server bereitgestellt ist, der mit dem Fahrzeug 200 oder einer Vorrichtung kommuniziert, die mit dem Fahrzeug 200 assoziiert ist. Ein Prozessor (z. B. Verarbeitungseinheit 110), der am Fahrzeug 200 bereitgestellt ist, kann Daten, die in der dünnbesetzten Karte 800 enthalten sind, vom entfernten Server empfangen und kann die Daten zum Führen der autonomen Fahrt des Fahrzeugs 200 ausführen. In derartigen Ausführungsformen kann der entfernte Server die gesamte dünnbesetzte Karte 800 oder nur einen Teil davon speichern. Dementsprechend können die Speichervorrichtung oder das computerlesbare Medium, die/das an Bord des Fahrzeugs 200 und/oder an Bord eines oder mehrerer zusätzlicher Fahrzeuge bereitgestellt ist, den/die verbleibenden Teil(e) der dünnbesetzten Karte 800 speichern.
  • Darüber hinaus kann in derartigen Ausführungsformen die dünnbesetzte Karte 800 für eine Vielzahl von Fahrzeugen zugänglich gemacht werden, die verschiedene Straßensegment durchqueren (z. B. Dutzende, Hunderte, Tausende oder Millionen von Fahrzeugen usw.). Es ist auch anzumerken, dass die dünnbesetzte Karte 800 mehrere Teilkarten beinhalten kann. Zum Beispiel kann die dünnbesetzte Karte 800 in einigen Ausführungsformen Hunderte, Tausende, Millionen oder mehr Teilkarten beinhalten, die beim Navigieren eines Fahrzeugs verwendet werden können. Derartige Teilkarten können als lokale Karten bezeichnet werden und ein Fahrzeug, das entlang einer Fahrbahn fährt, kann auf eine beliebige Anzahl von lokalen Karten zugreifen, die für einen Ort relevant sind, an dem das Fahrzeug fährt. Die lokalen Kartenabschnitte der dünnbesetzten Karte 800 können mit einem Schlüssel des globalen Navigationssatellitensystems (GNSS) als Index für die Datenbank der dünnbesetzten Karte 800 gespeichert werden. Während die Berechnung von Lenkwinkeln zum Navigieren eines Host-Fahrzeugs im vorliegenden System ohne Abhängigkeit von einer GNSS-Position des Host-Fahrzeugs, Straßenmerkmalen oder Orientierungspunkten durchgeführt werden kann, können derartige GNSS-Informationen zum Abrufen relevanter lokaler Karten verwendet werden.
  • Im Allgemeinen kann die dünnbesetzte Karte 800 basierend auf Daten erzeugt werden, die von einem oder mehreren Fahrzeugen gesammelt werden, während sie auf Fahrbahnen fahren. So können beispielsweise unter Verwendung von Sensoren an Bord des einen oder der mehreren Fahrzeuge (z. B. Kameras, Geschwindigkeitsmesser, GPS, Beschleunigungsmesser usw.) die Trajektorien, die das eine oder die mehreren Fahrzeuge entlang einer Fahrbahn fahren, aufgezeichnet werden, und die Polynomrepräsentationen einer bevorzugten Trajektorie für Fahrzeuge, die nachfolgende Fahrten entlang der Fahrbahn unternehmen, können basierend auf den gesammelten Trajektorien bestimmt werden, die durch das eine oder die mehreren Fahrzeuge gefahren werden. Ebenso können Daten, die durch das eine oder die mehreren Fahrzeuge gesammelt werden, beim Identifizieren potenzieller Orientierungspunkte entlang einer bestimmten Fahrbahn helfen. Daten, die von fahrenden Fahrzeugen gesammelt werden, können auch verwendet werden, um Straßenprofilinformationen zu identifizieren, wie etwa Straßenbreitenprofile, Straßenrauhigkeitsprofile, Abstandsprofile der Verkehrslinie, Straßenbedingungen usw. Unter Verwendung der gesammelten Informationen kann die dünnbesetzte Karte 800 erzeugt und zur Verwendung beim Navigieren eines oder mehrerer autonomer Fahrzeuge verteilt werden (z. B. zur lokalen Speicherung oder über die Übertragung von Flugdaten). In einigen Ausführungsformen kann die Kartenerzeugung jedoch bei der anfänglichen Erzeugung der Karte nicht enden. Wie nachfolgend ausführlicher erörtert wird, kann die dünnbesetzte Karte 800 kontinuierlich oder periodisch basierend auf Daten aktualisiert werden, die von Fahrzeugen gesammelt werden, während diese Fahrzeuge weiterhin Fahrbahnen fahren, die in der dünnbesetzten Karte 800 enthalten sind.
  • Daten, die in der dünnbesetzten Karte 800 aufgezeichnet werden, können Positionsinformationen basierend auf Daten des globalen Positionsbestimmungssystems (GPS) beinhalten. Zum Beispiel können Ortsinformationen in der dünnbesetzten Karte 800 für verschiedene Kartenelemente enthalten sein, einschließlich zum Beispiel Orientierungspunktorte, Straßenprofilorte usw. Orte für Kartenelemente, die in der dünnbesetzten Karte 800 enthalten sind, können unter Verwendung von GPS-Daten erhalten werden, die von Fahrzeugen gesammelt werden, die eine Fahrbahn fahren. Zum Beispiel kann ein Fahrzeug, das einen identifizierten Orientierungspunkt passiert, einen Ort des identifizierten Orientierungspunkts unter Verwendung von GPS-Positionsinformationen bestimmen, die mit dem Fahrzeug assoziiert sind, und eine Bestimmung eines Orts des identifizierten Orientierungspunkts relativ zu dem Fahrzeug (z. B. basierend auf Bildanalyse von Daten, die von einer oder mehreren Kameras an Bord des Fahrzeugs gesammelt werden). Derartige Ortsbestimmungen eines identifizierten Orientierungspunkts (oder eines beliebigen anderen Merkmals, das in der dünnbesetzten Karte 800 enthalten ist) können wiederholt werden, wenn zusätzliche Fahrzeuge den Ort des identifizierten Orientierungspunkts passieren. Einige oder alle der zusätzlichen Ortsbestimmungen können verwendet werden, um die Ortsinformationen, die in der dünnbesetzten Karte 800 gespeichert sind, relativ zu dem identifizierten Orientierungspunkt zu verfeinern. Zum Beispiel können in einigen Ausführungsformen mehrere Positionsmessungen relativ zu einem bestimmten Merkmal, das in der dünnbesetzten Karte 800 gespeichert ist, zusammen gemittelt werden. Beliebige andere mathematische Vorgänge können jedoch auch verwendet werden, um einen gespeicherten Ort eines Kartenelements basierend auf einer Vielzahl von bestimmten Orten für das Kartenelement zu verfeinern.
  • Die dünnbesetzte Karte der offenbarten Ausführungsformen kann eine autonome Navigation eines Fahrzeugs unter Verwendung relativ kleiner Mengen von gespeicherten Daten ermöglichen. In einigen Ausführungsformen kann die dünnbesetzte Karte 800 eine Datendichte (z. B. einschließlich Daten, die die Zieltrajektorien, Orientierungspunkte und beliebige andere gespeicherte Straßenmerkmale darstellen) von weniger als 2 MB pro Kilometer Straßen, weniger als 1 MB pro Kilometer Straßen, weniger als 500 kB pro Kilometer Straßen oder weniger als 100 kB pro Kilometer Straßen aufweisen. In einigen Ausführungsformen kann die Datendichte der dünnbesetzten Karte 800 weniger als 10 kB pro Kilometer Straßen oder sogar weniger als 2 kB pro Kilometer Straßen (z. B. 1,6 kB pro Kilometer) oder nicht mehr als 10 kB pro Kilometer Straßen oder nicht mehr als 20 kB pro Kilometer Straßen betragen. In einigen Ausführungsformen können die meisten, wenn nicht alle, der Fahrbahnen der Vereinigten Staaten autonom unter Verwendung einer dünnbesetzten Karte navigiert werden, die insgesamt 4 GB oder weniger Daten aufweist. Diese Datendichtewerte können einen Durchschnitt über eine gesamte dünnbesetzte Karte 800, über eine lokale Karte innerhalb der dünnbesetzten Karte 800 und/oder über ein bestimmtes Straßensegment innerhalb der dünnbesetzten Karte 800 darstellen.
  • Wie angemerkt, kann die dünnbesetzte Karte 800 Repräsentationen einer Vielzahl von Zieltrajektorien 810 zum Führen des autonomen Fahrens oder der Navigation entlang eines Straßensegments beinhalten. Solche Zieltrajektorien können als dreidimensionale Splines gespeichert werden. Die in der dünnbesetzten Karte 800 gespeicherten Zieltrajektorien können beispielsweise basierend auf zwei oder mehr rekonstruierten Trajektorien vorheriger Durchquerungen von Fahrzeugen entlang eines bestimmten Straßensegments bestimmt werden. Ein Straßensegment kann mit einer einzelnen Zieltrajektorie oder mehreren Zieltrajektorien assoziiert sein. Beispielsweise kann auf einer zweispurigen Straße eine erste Zieltrajektorie gespeichert werden, um einen beabsichtigten Fahrweg entlang der Straße in einer ersten Richtung darzustellen, und eine zweite Zieltrajektorie kann gespeichert werden, um einen beabsichtigten Fahrweg entlang der Straße in einer anderen Richtung (z. B. entgegengesetzt zur ersten Richtung) darzustellen. Zusätzliche Zieltrajektorien können in Bezug auf ein bestimmtes Straßensegment gespeichert werden. Beispielsweise können auf einer mehrspurigen Straße eine oder mehrere Zieltrajektorien gespeichert werden, die beabsichtigte Fahrwege für Fahrzeuge in einer oder mehreren Fahrspuren darstellen, die mit der mehrspurigen Straße assoziiert sind. In einigen Ausführungsformen kann jede Fahrspur einer mehrspurigen Straße mit ihrer eigenen Zieltrajektorie assoziiert sein. In anderen Ausführungsformen können weniger Zieltrajektorien gespeichert werden als Fahrspuren, die auf einer mehrspurigen Straße vorhanden sind. In solchen Fällen kann ein Fahrzeug, das die mehrspurige Straße navigiert, eine beliebige der gespeicherten Zieltrajektorien verwenden, um seine Navigation zu führen, indem es eine Menge an Fahrspurversatz von einer Fahrspur berücksichtigt, für die eine Zieltrajektorie gespeichert ist (z. B. wenn ein Fahrzeug auf der am weitesten links gelegenen Fahrspur einer dreispurigen Autobahn fährt und eine Zieltrajektorie nur für die mittlere Fahrspur der Autobahn gespeichert ist, kann das Fahrzeug unter Verwendung der Zieltrajektorie der mittleren Fahrspur navigieren, indem es die Menge an Fahrspurversatz zwischen der mittleren Fahrspur und der am weitesten links gelegenen Fahrspur berücksichtigt, wenn es Navigationsanweisungen erzeugt).
  • In einigen Ausführungsformen kann die Zieltrajektorie einen idealen Weg darstellen, den ein Fahrzeug nehmen sollte, wenn das Fahrzeug fährt. Die Zieltrajektorie kann sich beispielsweise in einer ungefähren Mitte einer Fahrspur befinden. In anderen Fällen kann sich die Zieltrajektorie an anderer Stelle in Bezug auf ein Straßensegment befinden. Beispielsweise kann eine Zieltrajektorie ungefähr mit einer Mitte einer Straße, einem Rand einer Straße oder einem Rand einer Fahrspur usw. übereinstimmen. In solchen Fällen kann die Navigation basierend auf der Zieltrajektorie einen bestimmten Versatzbetrag beinhalten, der in Bezug auf den Ort der Zieltrajektorie beibehalten werden soll. Darüber hinaus kann sich in einigen Ausführungsformen der bestimmte Versatzbetrag, der in Bezug auf den Ort der Zieltrajektorie beibehalten werden soll, basierend auf einem Fahrzeugtyp unterscheiden (z. B. kann ein Personenkraftwagen mit zwei Achsen einen anderen Versatz als ein Lastwagen mit mehr als zwei Achsen entlang mindestens eines Abschnitts der Zieltrajektorie aufweisen).
  • Die dünnbesetzte Karte 800 kann auch Daten beinhalten, die sich auf eine Vielzahl von vorbestimmten Orientierungspunkten 820 beziehen, die bestimmten Straßensegmenten, lokalen Karten usw. zugeordnet sind. Wie nachfolgend ausführlicher erörtert wird, können diese Orientierungspunkte bei der Navigation des autonomen Fahrzeugs verwendet werden. So können beispielsweise in einigen Ausführungsformen die Orientierungspunkte verwendet werden, um eine aktuelle Position des Fahrzeugs in Bezug auf eine gespeicherte Zieltrajektorie zu bestimmen. Mit diesen Positionsinformationen kann das autonome Fahrzeug in der Lage sein, eine Fahrtrichtung anzupassen, um einer Richtung der Zieltrajektorie am bestimmten Ort zu entsprechen.
  • Die Vielzahl von Orientierungspunkten 820 kann identifiziert und in der dünnbesetzten Karte 800 in einem beliebigen geeigneten Abstand gespeichert werden. In einigen Ausführungsformen können Orientierungspunkte mit relativ hohen Dichten gespeichert werden (z. B. alle paar Meter oder mehr). In einigen Ausführungsformen können jedoch deutlich größere Abstandswerte der Orientierungspunkte verwendet werden. So können beispielsweise in der dünnbesetzten Karte 800 identifizierte (oder erkannte) Orientierungspunkte 10 Meter, 20 Meter, 50 Meter, 100 Meter, 1 Kilometer oder 2 Kilometer voneinander entfernt sein. In einigen Fällen können sich die identifizierten Orientierungspunkte in Abständen von sogar mehr als 2 Kilometern voneinander befinden.
  • Zwischen Orientierungspunkten und daher zwischen Bestimmungen der Fahrzeugposition relativ zu einer Zieltrajektorie kann das Fahrzeug basierend auf Koppelnavigation navigieren, bei der das Fahrzeug Sensoren verwendet, um seine Eigenbewegung zu bestimmen und seine Position relativ zur Zieltrajektorie zu schätzen. Da sich während der Navigation durch Koppelnavigation Fehler ansammeln können, können die Positionsbestimmungen relativ zur Zieltrajektorie im Laufe der Zeit immer ungenauer werden. Das Fahrzeug kann Orientierungspunkte verwenden, die in der dünnbesetzten Karte 800 auftreten (und ihre bekannten Orte), um die koppelnavigationsinduzierten Fehler bei der Positionsbestimmung zu eliminieren. Auf diese Weise können die identifizierten Orientierungspunkte, die in der dünnbesetzten Karte 800 enthalten sind, als Navigationsanker dienen, aus denen eine genaue Position des Fahrzeugs relativ zu einer Zieltrajektorie bestimmt werden kann. Da ein gewisser Fehlerbetrag beim Ort der Position akzeptabel sein kann, muss ein identifizierter Orientierungspunkt nicht immer für ein autonomes Fahrzeug verfügbar sein. Vielmehr kann eine geeignete Navigation auch basierend auf Orientierungspunktabständen, wie vorstehend erwähnt, von 10 Metern, 20 Metern, 50 Metern, 100 Metern, 500 Metern, 1 Kilometer, 2 Kilometern oder mehr möglich sein. In einigen Ausführungsformen kann eine Dichte von 1 identifiziertem Orientierungspunkt alle 1 km Straße ausreichend sein, um eine Genauigkeit der longitudinalen Positionsbestimmung innerhalb von 1 m beizubehalten. Somit muss nicht jeder potenzielle Orientierungspunkt, der entlang einem Straßensegment erscheint, in der dünnbesetzten Karte 800 gespeichert werden.
  • Darüber hinaus können in einigen Ausführungsformen Fahrspurmarkierungen zur Lokalisierung des Fahrzeugs während Orientierungspunktabständen verwendet werden. Durch die Verwendung von Fahrspurmarkierungen während Orientierungspunktabständen kann die Ansammlung von Koppelnavigation während der Navigation minimiert werden.
  • Zusätzlich zu Zieltrajektorien und identifizierten Orientierungspunkten kann die dünnbesetzte Karte 800 Informationen beinhalten, die sich auf verschiedene andere Straßenmerkmal beziehen. Beispielsweise veranschaulicht 9A eine Repräsentation von Kurven entlang eines bestimmten Straßensegments, die in der dünnbesetzten Karte 800 gespeichert werden können. In einigen Ausführungsformen kann eine einzelne Fahrspur einer Straße durch eine dreidimensionale Polynombeschreibung der linken und rechten Seite der Straße modelliert werden. Solche Polynome, die die linke und rechte Seite einer einzelnen Fahrspur repräsentieren, sind in 9A gezeigt. Unabhängig davon, wie viele Fahrspuren eine Straße aufweisen kann, kann die Straße unter Verwendung von Polynomen auf eine Weise repräsentiert werden, die der in 9A veranschaulichten ähnlich ist. Beispielsweise können die linke und rechte Seite einer mehrspurigen Straße durch Polynome repräsentiert werden, die denjenigen ähnlich sind, die in 9A gezeigt sind, und Zwischenfahrspurmarkierungen, die auf einer mehrspurigen Straße enthalten sind (z. B. gestrichelte Markierungen, die Fahrspurbegrenzungen repräsentieren, durchgezogene gelbe Linien, die Begrenzungen zwischen Fahrspuren repräsentieren, die in unterschiedliche Richtungen fahren, usw.) können ebenfalls unter Verwendung von Polynomen repräsentiert werden, wie etwa denjenigen, die in 9A gezeigt sind.
  • Wie in 9A gezeigt, kann eine Fahrspur 900 unter Verwendung von Polynomen (z. B. Polynomen erster Ordnung, zweiter Ordnung, dritter Ordnung oder einer beliebigen geeigneten Ordnung) repräsentiert werden. Zur Veranschaulichung ist die Fahrspur 900 als eine zweidimensionale Fahrspur gezeigt und die Polynome sind als zweidimensionale Polynome gezeigt. Wie in 9A gezeigt, beinhaltet die Fahrspur 900 eine linke Seite 910 und eine rechte Seite 920. In einigen Ausführungsformen kann mehr als ein Polynom verwendet werden, um einen Ort jeder Seite der Straße oder Fahrspurbegrenzung zu repräsentieren. Zum Beispiel kann jede der linken Seite 910 und der rechten Seite 920 durch eine Vielzahl von Polynomen einer beliebigen geeigneten Länge repräsentiert werden. In einigen Fällen können die Polynome eine Länge von etwa 100 m aufweisen, obwohl auch andere Längen größer oder kleiner als 100 m verwendet werden können. Zusätzlich können sich die Polynome miteinander überlappen, um nahtlose Übergänge beim Navigieren basierend auf nachfolgend angetroffenen Polynomen zu erleichtern, wenn ein Host-Fahrzeug entlang einer Fahrbahn fährt. Zum Beispiel kann jede der linken Seite 910 und der rechten Seite 920 durch eine Vielzahl von Polynomen dritter Ordnung repräsentiert werden, die in Segmente von etwa 100 Metern Länge (ein Beispiel des ersten vorbestimmten Bereichs) getrennt sind und sich gegenseitig um etwa 50 Meter überlappen. Die Polynome, die die linke Seite 910 und die rechte Seite 920 repräsentieren, können die gleiche Ordnung aufweisen oder nicht. Zum Beispiel können in einigen Ausführungsformen einige Polynome Polynome zweiter Ordnung sein, einige Polynome dritter Ordnung und einige Polynome vierter Ordnung.
  • In dem in 9A gezeigten Beispiel wird die linke Seite 910 der Fahrspur 900 durch zwei Gruppen von Polynomen dritter Ordnung repräsentiert. Die erste Gruppe beinhaltet Polynomsegmente 911, 912 und 913. Die zweite Gruppe beinhaltet Polynomsegmente 914, 915 und 916. Die zwei Gruppen folgen, während 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 angemerkt, können jedoch auch Polynome unterschiedlicher Längen und unterschiedlicher Überlappungsbeträge verwendet werden. Zum Beispiel können die Polynome Längen von 500 m, 1 km oder mehr aufweisen und der Überlappungsbetrag kann von 0 bis 50 m, 50 m bis 100 m oder mehr als 100 m variieren. Während 9A als Polynome dargestellt ist, die sich im 2D-Raum (z. B. auf der Oberfläche des Papiers) erstrecken, versteht es sich außerdem, dass diese Polynome Kurven repräsentieren können, die sich in drei Dimensionen erstrecken (z. B. einschließlich einer Höhenkomponente), um Höhenänderungen in einem Straßensegment zusätzlich zur X-Y-Krümmung zu repräsentieren. In dem in 9A gezeigten Beispiel wird 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.
  • Unter erneuter Bezugnahme auf die Zieltrajektorien der dünnbesetzten Karte 800 zeigt 9B ein dreidimensionales Polynom, das eine Zieltrajektorie für ein Fahrzeug repräsentiert, das sich entlang eines bestimmten Straßensegments bewegt. Die Zieltrajektorie repräsentiert nicht nur den X-Y-Weg, den ein Host-Fahrzeug entlang eines bestimmten Straßensegments fahren sollte, sondern auch die Höhenänderung, die das Host-Fahrzeug beim Fahren entlang des Straßensegments erfahren wird. Somit kann jede Zieltrajektorie in der dünnbesetzten Karte 800 durch ein oder mehrere dreidimensionale Polynome repräsentiert werden, wie das in 9B gezeigte dreidimensionale Polynom 950. Die dünnbesetzte Karte 800 kann eine Vielzahl von Trajektorien beinhalten (z. B. Millionen oder Milliarden oder mehr, um Trajektorien von Fahrzeugen entlang verschiedener Straßensegmente entlang von Fahrbahnen in der ganzen Welt zu repräsentieren). In einigen Ausführungsformen kann jede Zieltrajektorie einem Spline entsprechen, der dreidimensionale Polynomsegmente verbindet.
  • In Bezug auf den Datenfußabdruck von Polynomkurven, die in der dünnbesetzten Karte 800 gespeichert sind, kann in einigen Ausführungsformen jedes Polynom dritten Grads durch vier Parameter repräsentiert werden, die jeweils vier Bytes an Daten erfordern. Geeignete Repräsentationen können mit Polynomen dritten Grads erhalten werden, die etwa 192 Bytes an Daten für alle 100 m erfordern. Dies kann sich auf ungefähr 200 kB pro Stunde bei Datennutzungs-/- übertragungsanforderungen für ein Host-Fahrzeug, das ungefähr 100 km/h fährt, übersetzen.
  • Die dünnbesetzte Karte 800 kann das Fahrspurnetzwerk unter Verwendung einer Kombination von Geometriedeskriptoren und Metadaten beschreiben. Die Geometrie kann durch Polynome oder Splines, wie oben beschrieben, beschrieben werden. Die Metadaten können die Anzahl von Fahrspuren, spezielle Eigenschaften (wie etwa eine Autopool-Fahrspur) und möglicherweise andere dünnbesetzte Bezeichnungen beschreiben. Der Gesamtfußabdruck solcher Indikatoren kann vernachlässigbar sein.
  • Dementsprechend kann eine dünnbesetzte Karte gemäß Ausführungsformen der vorliegenden Offenbarung mindestens eine Linienrepräsentation eines Merkmals der Straßenoberfläche, das sich entlang des Straßensegments erstreckt, beinhalten, wobei jede Linienrepräsentation einen Pfad entlang des Straßensegments repräsentiert, der im Wesentlichen dem Merkmal der Straßenoberfläche entspricht. In einigen Ausführungsformen, wie oben erörtert, kann die mindestens eine Linienrepräsentation des Merkmals der Straßenoberfläche einen Spline, eine Polynomrepräsentation oder eine Kurve beinhalten. Darüber hinaus kann das Merkmal der Straßenoberfläche in einigen Ausführungsformen mindestens eine von einer Straßenkante oder einer Fahrspur-Markierung beinhalten. Darüber hinaus kann, wie nachfolgend in Bezug auf „Crowdsourcing“ erörtert, das Merkmal der Straßenoberfläche durch Bildanalyse einer Vielzahl von Bildern identifiziert werden, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment überqueren.
  • Wie zuvor angemerkt, kann die dünnbesetzte Karte 800 eine Vielzahl von vorbestimmten Orientierungspunkten beinhalten, die einem Straßensegment zugeordnet sind. Anstatt tatsächliche Bilder der Orientierungspunkte zu speichern und sich beispielsweise auf eine Bilderkennungsanalyse basierend auf erfassten Bildern und gespeicherten Bildern zu stützen, kann jeder Orientierungspunkt in der dünnbesetzten Karte 800 unter Verwendung von weniger Daten repräsentiert und erkannt werden, als ein gespeichertes tatsächliches Bild erfordern würde. Daten, die Orientierungspunkte repräsentieren, können weiterhin ausreichende Informationen zum Beschreiben oder Identifizieren der Orientierungspunkte entlang einer Straße beinhalten. Das Speichern von Daten, die Eigenschaften von Orientierungspunkten beschreiben, anstatt der tatsächlichen Bilder von Orientierungspunkten, kann die Größe der dünnbesetzten Karte 800 reduzieren.
  • 10 veranschaulicht Beispiele von Typen von Orientierungspunkten, die in der dünnbesetzten Karte 800 repräsentiert werden können. Die Orientierungspunkte können beliebige sichtbare und identifizierbare Objekte entlang einem Straßensegment beinhalten. Die Orientierungspunkte können so ausgewählt werden, dass sie fest sind und sich in Bezug auf ihre Orte und/oder ihren Inhalt nicht oft ändern. Die in der dünnbesetzten Karte 800 enthaltenen Orientierungspunkte können beim Bestimmen eines Orts des Fahrzeugs 200 in Bezug auf eine Zieltrajektorie nützlich sein, wenn das Fahrzeug ein bestimmtes Straßensegment durchquert. Beispiele von Orientierungspunkten können Verkehrszeichen, Richtungszeichen, allgemeine Zeichen (z. B. rechteckige Zeichen), straßenseitige Befestigungen (z. B. Laternenpfosten, Reflektoren usw.) und eine beliebige andere geeignete Kategorie beinhalten. In einigen Ausführungsformen können Fahrspurmarkierungen auf der Straße auch als Orientierungspunkte in der dünnbesetzten Karte 800 enthalten sein.
  • Beispiele von in 10 gezeigten Orientierungspunkten beinhalten Verkehrszeichen, Richtungszeichen, straßenseitige Befestigungen und allgemeine Zeichen. Verkehrszeichen können zum Beispiel Geschwindigkeitsbegrenzungszeichen (z. B. Geschwindigkeitsbegrenzungszeichen 1000), Vorfahrtszeichen (z. B. Vorfahrtszeichen 1005), Routennummernzeichen (z. B. Routennummernzeichen 1010), Ampel-Zeichen (z. B. Ampel-Zeichen 1015), Stoppschilder (z. B. Stoppschild 1020) beinhalten. Richtungszeichen können ein Zeichen beinhalten, das einen oder mehrere Pfeile beinhaltet, die eine oder mehrere Richtungen zu unterschiedlichen Orten angeben. Zum Beispiel können Richtungszeichen ein Autobahnschild 1025, das Pfeile zum Lenken von Fahrzeugen zu unterschiedlichen Straßen oder Orten aufweist, ein Ausfahrtszeichen 1030, das einen Pfeil zum Lenken von Fahrzeugen von einer Straße aufweist, usw. beinhalten. Dementsprechend kann mindestens einer der Vielzahl von Orientierungspunkten ein Straßenschild beinhalten.
  • Allgemeine Zeichen müssen nicht mit dem Verkehr in Zusammenhang stehen. Zum Beispiel können allgemeine Schilder Werbetafeln, die für Werbung verwendet werden, oder eine Willkommenstafel benachbart zu einer Grenze zwischen zwei Ländern, Staaten, Bezirken, Städten oder Städten beinhalten. 10 zeigt ein allgemeines Zeichen 1040 („Joes Restaurant“). Obwohl das allgemeine Zeichen 1040 eine rechteckige Form aufweisen kann, wie in 10 gezeigt, kann das allgemeine Zeichen 1040 andere Formen aufweisen, wie etwa Quadrat, Kreis, Dreieck usw.
  • Orientierungspunkte können auch straßenseitige Befestigungen beinhalten. Straßenseitige Befestigungen können Objekte sein, die keine Zeichen sind, und müssen nicht mit Verkehr oder Richtungen in Zusammenhang stehen. Zum Beispiel können straßenseitige Befestigungen Laternenpfosten (z. B. Laternenpfosten 1035), Stromleitungspfosten, Ampelpfosten usw. beinhalten.
  • Orientierungspunkte können auch Baken beinhalten, die speziell zur Verwendung in einem Navigationssystem eines autonomen Fahrzeugs ausgestaltet sein können. Zum Beispiel können solche Baken eigenständige Strukturen beinhalten, die in vorbestimmten Intervallen platziert sind, um beim Navigieren eines Host-Fahrzeugs zu helfen. Solche Baken können auch visuelle/grafische Informationen beinhalten, die zu vorhandenen Straßenschildern (z. B. Symbolen, Emblemen, Strichcodes usw.) hinzugefügt werden, die von einem Fahrzeug identifiziert oder erkannt werden können, das entlang einem Straßensegment fährt. Solche Baken können auch elektronische Komponenten beinhalten. In solchen Ausführungsformen können elektronische Baken (z. B. RFID-Markierungen usw.) verwendet werden, um nicht visuelle Informationen an ein Host-Fahrzeug zu übertragen. Solche Informationen können beispielsweise Orientierungspunktidentifikations- und/oder Orientierungspunkt-Ortsinformationen beinhalten, die ein Host-Fahrzeug beim Bestimmen seiner Position entlang einer Zieltrajektorie verwenden kann.
  • In einigen Ausführungsformen können die in der dünnbesetzten Karte 800 enthaltenen Orientierungspunkte durch ein Datenobjekt einer vorbestimmten Größe repräsentiert werden. Die Daten, die einen Orientierungspunkt repräsentieren, können beliebige geeignete Parameter zum Identifizieren eines bestimmten Orientierungspunkts beinhalten. Beispielsweise können in einigen Ausführungsformen Orientierungspunkte, die in der dünnbesetzten Karte 800 gespeichert sind, Parameter wie etwa eine physische Größe des Orientierungspunkts (z. B. um eine Schätzung der Entfernung zu dem Orientierungspunkt basierend auf einer bekannten Größe/Skala zu unterstützen), eine Entfernung zu einem vorherigen Orientierungspunkt, seitlichen Versatz, Höhe, einen Typencode (z. B. einen Orientierungspunkttyp - welcher Typ von Richtungszeichen, Verkehrszeichen usw.), eine GPS-Koordinate (z. B. um eine globale Lokalisierung zu unterstützen) und beliebige andere geeignete Parameter beinhalten. Jeder Parameter kann mit einer Datengröße assoziiert sein. Beispielsweise kann eine Orientierungspunktgröße unter Verwendung von 8 Bytes an Daten gespeichert werden. Eine Entfernung zu einem vorherigen Orientierungspunkt, ein seitlicher Versatz und eine Höhe können unter Verwendung von 12 Bytes an Daten spezifiziert werden. Ein Typencode, der mit einem Orientierungspunkt wie etwa einem Richtungszeichen oder einem Verkehrszeichen assoziiert ist, kann etwa 2 Bytes an Daten erfordern. Für allgemeine Zeichen kann eine Bild-Signatur, die eine Identifikation des allgemeinen Zeichens ermöglicht, unter Verwendung von 50 Bytes an Datenspeicher gespeichert werden. Die Orientierungspunkt-GPS-Position kann mit 16 Bytes an Datenspeicher assoziiert sein. Diese Datengrößen für jeden Parameter sind nur Beispiele und andere Datengrößen können ebenfalls verwendet werden.
  • Das Repräsentieren von Orientierungspunkten in der dünnbesetzten Karte 800 auf diese Weise kann eine schlanke Lösung zum effizienten Repräsentieren von Orientierungspunkten in der Datenbank bieten. In einigen Ausführungsformen können Zeichen als semantische Zeichen und nichtsemantische Zeichen bezeichnet werden. Ein semantisches Zeichen kann eine beliebige Klasse von Zeichen beinhalten, für die es eine standardisierte Bedeutung gibt (z. B. Geschwindigkeitsbegrenzungszeichen, Warnschilder, Richtungszeichen usw.). Ein nicht-semantisches Zeichen kann ein beliebiges Zeichen beinhalten, das nicht mit einer standardisierten Bedeutung assoziiert ist (z. B. allgemeine Werbezeichen, Zeichen, die Geschäftseinrichtungen identifizieren usw.). Beispielsweise kann jedes semantische Zeichen mit 38 Bytes an Daten repräsentiert werden (z. B. 8 Bytes für Größe; 12 Bytes für Entfernung zu einem vorherigen Orientierungspunkt, seitlicher Versatz und Höhe; 2 Bytes für einen Typencode; und 16 Bytes für GPS-Koordinaten). Die dünnbesetzte Karte 800 kann ein Markierungssystem verwenden, um Orientierungspunkttypen zu repräsentieren. In einigen Fällen kann jedes Verkehrszeichen oder Richtungszeichen mit seiner eigenen Markierung assoziiert sein, die als Teil der Orientierungspunktidentifikation in der Datenbank gespeichert werden kann. Beispielsweise kann die Datenbank in der Größenordnung von 1000 unterschiedlichen Markierungen, um verschiedene Verkehrszeichen zu repräsentieren, und in der Größenordnung von etwa 10000 unterschiedlichen Markierungen, um Richtungszeichen zu repräsentieren, beinhalten. Natürlich kann jede geeignete Anzahl von Markierungen verwendet werden, und zusätzliche Markierungen können nach Bedarf erzeugt werden. Allgemeine Zeichen können in einigen Ausführungsformen unter Verwendung von weniger als etwa 100 Bytes repräsentiert werden (z. B. etwa 86 Bytes, einschließlich 8 Bytes für Größe; 12 Bytes für Entfernung zu einem vorherigen Orientierungspunkt, seitlicher Versatz und Höhe; 50 Bytes für eine Bild-Signatur; und 16 Bytes für GPS-Koordinaten).
  • Somit kann für semantische Straßenzeichen, die keine Bild-Signatur erfordern, der Datendichteeinfluss auf die dünnbesetzte Karte 800, selbst bei relativ hohen Orientierungspunktdichten von etwa 1 pro 50 m, in der Größenordnung von etwa 760 Bytes pro Kilometer liegen (z. B. 20 Orientierungspunkte pro km x 38 Bytes pro Orientierungspunkt = 760 Bytes). Selbst für allgemeine Zeichen, die eine Bild-Signaturkomponente beinhalten, beträgt der Datendichteeinfluss etwa 1,72 kB pro km (z. B. 20 Orientierungspunkte pro km x 86 Bytes pro Orientierungspunkt = 1.720 Bytes). Für semantische Straßenzeichen entspricht dies etwa 76 kB pro Stunde Datennutzung für ein Fahrzeug, das 100 km/h fährt. Für allgemeine Zeichen entspricht dies etwa 170 kB pro Stunde für ein Fahrzeug, das 100 km/h fährt.
  • In einigen Ausführungsformen kann ein allgemein rechteckiges Objekt, wie etwa ein rechteckiges Zeichen, in der dünnbesetzten Karte 800 durch nicht mehr als 100 Bytes an Daten repräsentiert werden. Die Repräsentation des allgemein rechteckigen Objekts (z. B. des allgemeinen Zeichens 1040) in der dünnbesetzten Karte 800 kann eine kondensierte Bild-Signatur (z. B. die kondensierte Bild-Signatur 1045) beinhalten, die mit dem allgemein rechteckigen Objekt assoziiert ist. Diese kondensierte Bild-Signatur kann zum Beispiel verwendet werden, um bei der Identifikation eines allgemeinen Zeichens zu helfen, zum Beispiel als ein erkannter Orientierungspunkt. Eine solche kondensierte Bild-Signatur (z. B. Bildinformationen, die von tatsächlichen Bilddaten abgeleitet sind, die ein Objekt repräsentieren) kann eine Notwendigkeit für die Speicherung eines tatsächlichen Bilds eines Objekts oder eine Notwendigkeit für eine vergleichende Bildanalyse, die an tatsächlichen Bildern durchgeführt wird, um Orientierungspunkte zu erkennen, vermeiden.
  • Unter Bezugnahme auf 10 kann die dünnbesetzte Karte 800 eine kondensierte Bild-Signatur 1045 beinhalten oder speichern, die mit einem allgemeinen Zeichen 1040 assoziiert ist, anstatt eines tatsächlichen Bilds des allgemeinen Zeichens 1040. Zum Beispiel kann, nachdem eine Bilderfassungsvorrichtung (z. B. Bilderfassungsvorrichtung 122, 124 oder 126) ein Bild des allgemeinen Zeichens 1040 erfasst, ein Prozessor (z. B. Bildprozessor 190 oder ein beliebiger anderer Prozessor, der Bilder entweder an Bord oder entfernt relativ zu einem Host-Fahrzeug verarbeiten kann) eine Bildanalyse durchführen, um die kondensierte Bild-Signatur 1045 zu extrahieren/zu erzeugen, die eine eindeutige Signatur oder ein eindeutiges Muster beinhaltet, die mit dem allgemeinen Zeichen 1040 assoziiert sind. In einer Ausführungsform kann die kondensierte Bild-Signatur 1045 eine Form, ein Farbmuster, ein Helligkeitsmuster oder ein beliebiges anderes Merkmal beinhalten, das aus dem Bild des allgemeinen Zeichens 1040 extrahiert werden kann, um das allgemeine Zeichen 1040 zu beschreiben.
  • Zum Beispiel können in 10 die Kreise, Dreiecke und Sterne, die in der kondensierten Bild-Signatur 1045 gezeigt sind, Bereiche unterschiedlicher Farben repräsentieren. Das Muster, das durch die Kreise, Dreiecke und Sterne repräsentiert wird, kann in der dünnbesetzten Karte 800 gespeichert werden, z. B. innerhalb der 50 Bytes, die so bezeichnet sind, dass sie eine Bild-Signatur beinhalten. Insbesondere sollen die Kreise, Dreiecke und Sterne nicht notwendigerweise angeben, dass solche Formen als Teil der Bild-Signatur gespeichert sind. Vielmehr sollen diese Formen erkennbare Bereiche mit erkennbaren Farbunterschieden, Textbereichen, grafischen Formen oder anderen Variationen von Eigenschaften, die mit einem allgemeinen Zeichen assoziiert sein können, konzeptionell repräsentieren. Solche kondensierten Bild-Signaturen können verwendet werden, um einen Orientierungspunkt in der Form eines allgemeinen Zeichens zu identifizieren. Zum Beispiel kann die kondensierte Bild-Signatur verwendet werden, um eine gleich-nicht-gleiche Analyse basierend auf einem Vergleich einer gespeicherten kondensierten Bild-Signatur mit Bilddaten, die zum Beispiel unter Verwendung einer Kamera an Bord eines autonomen Fahrzeugs erfasst werden, durchzuführen.
  • Dementsprechend kann die Vielzahl von Orientierungspunkten durch Bildanalyse der Vielzahl von Bildern identifiziert werden, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment überqueren. Wie nachfolgend in Bezug auf „Crowdsourcing“ erläutert, kann die Bildanalyse zum Identifizieren der Vielzahl von Orientierungspunkten in einigen Ausführungsformen das Akzeptieren potenzieller Orientierungspunkte beinhalten, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt erscheint, zu Bildern, in denen der Orientierungspunkt nicht erscheint, einen Schwellenwert überschreitet. Darüber hinaus kann die Bildanalyse zum Identifizieren der Vielzahl von Orientierungspunkten in einigen Ausführungsformen das Ablehnen potenzieller Orientierungspunkte beinhalten, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht erscheint, zu Bildern, in denen der Orientierungspunkt erscheint, einen Schwellenwert überschreitet.
  • Unter erneuter Bezugnahme auf die Zieltrajektorien, die ein Host-Fahrzeug verwenden kann, um ein bestimmtes Straßensegment zu navigieren, zeigt 11A Polynomrepräsentationen von Trajektorien, die während eines Prozesses zum Erstellen oder Beibehalten der dünnbesetzten Karte 800 erfasst werden. Eine Polynomrepräsentation einer Zieltrajektorie, die in der dünnbesetzten Karte 800 enthalten ist, kann basierend auf zwei oder mehr rekonstruierten Trajektorien vorheriger Durchquerungen von Fahrzeugen entlang desselben Straßensegments bestimmt werden. In einigen Ausführungsformen kann die Polynomrepräsentation der Zieltrajektorie, die in der dünnbesetzten Karte 800 enthalten ist, eine Aggregation von zwei oder mehr rekonstruierten Trajektorien vorheriger Durchquerungen von Fahrzeugen entlang desselben Straßensegments sein. In einigen Ausführungsformen kann die Polynomrepräsentation der Zieltrajektorie, die in der dünnbesetzten Karte 800 enthalten ist, ein Durchschnitt der zwei oder mehr rekonstruierten Trajektorien vorheriger Durchquerungen von Fahrzeugen entlang desselben Straßensegments sein. Andere mathematische Vorgänge können auch verwendet werden, um eine Zieltrajektorie entlang eines Straßenpfads basierend auf rekonstruierten Trajektorien zu konstruieren, die von Fahrzeugen gesammelt werden, die entlang eines Straßensegments fahren.
  • Wie in 11A gezeigt, kann ein Straßensegment 1100 zu verschiedenen Zeiten von einer Anzahl von Fahrzeugen 200 befahren werden. Jedes Fahrzeug 200 kann Daten sammeln, die sich auf einen Weg beziehen, den das Fahrzeug entlang des Straßensegments genommen hat. Der von einem bestimmten Fahrzeug zurückgelegte Weg kann unter anderen potenziellen Quellen basierend auf Kameradaten, Beschleunigungsmesserinformationen, Geschwindigkeitssensorinformationen und/oder GPS-Informationen bestimmt werden. Solche Daten können verwendet werden, um Trajektorien von Fahrzeugen zu rekonstruieren, die sich entlang des Straßensegments bewegen, und basierend auf diesen rekonstruierten Trajektorien kann eine Zieltrajektorie (oder mehrere Zieltrajektorien) für das bestimmte Straßensegment bestimmt werden. Solche Zieltrajektorien können einen bevorzugten Weg eines Host-Fahrzeugs (z. B. geführt durch ein autonomes Navigationssystem) darstellen, wenn das Fahrzeug entlang des Straßensegments fährt.
  • Im in 11A gezeigten Beispiel kann eine erste rekonstruierte Trajektorie 1101 basierend auf Daten bestimmt werden, die von einem ersten Fahrzeug empfangen werden, das das Straßensegment 1100 in einem ersten Zeitraum (z. B. Tag 1) fährt, eine zweite rekonstruierte Trajektorie 1102 kann von einem zweiten Fahrzeug erhalten werden, das das Straßensegment 1100 in einem zweiten Zeitraum (z. B. Tag 2) fährt, und eine dritte rekonstruierte Trajektorie 1103 kann von einem dritten Fahrzeug erhalten werden, das das Straßensegment 1100 in einem dritten Zeitraum (z. B. Tag 3) fährt. Jede Trajektorie 1101, 1102 und 1103 kann durch ein Polynom, wie etwa ein dreidimensionales Polynom, repräsentiert werden. Es ist anzumerken, dass in einigen Ausführungsformen jede der rekonstruierten Trajektorien an Bord der Fahrzeuge zusammengebaut werden kann, die das Straßensegment 1100 überqueren.
  • Zusätzlich oder alternativ können solche rekonstruierten Trajektorien auf einer Serverseite basierend auf Informationen bestimmt werden, die von Fahrzeugen empfangen werden, die das Straßensegment 1100 überqueren. Zum Beispiel können die Fahrzeuge 200 in einigen Ausführungsformen Daten an einen oder mehrere Server übertragen, die sich auf ihre Bewegung entlang des Straßensegments 1100 beziehen (z. B. Lenkwinkel, Kurs, Zeit, Position, Geschwindigkeit, erfasste Straßengeometrie und/oder erfasste Orientierungspunkte, unter anderem). Der Server kann Trajektorien für die Fahrzeuge 200 basierend auf den empfangenen Daten rekonstruieren. Der Server kann auch eine Zieltrajektorie zum Führen der Navigation des autonomen Fahrzeugs erzeugen, das zu einem späteren Zeitpunkt entlang desselben Straßensegments 1100 fährt, basierend auf der ersten, zweiten und dritten Trajektorie 1101, 1102 und 1103. Während eine Zieltrajektorie mit einer einzelnen vorherigen Durchquerung eines Straßensegments assoziiert sein kann, kann in einigen Ausführungsformen jede Zieltrajektorie, die in der dünnbesetzten Karte 800 enthalten ist, basierend auf zwei oder mehr rekonstruierten Trajektorien von Fahrzeugen bestimmt werden, die das gleiche Straßensegment durchqueren. In 11A ist die Zieltrajektorie durch 1110 repräsentiert. In einigen Ausführungsformen kann die Zieltrajektorie 1110 basierend auf einem Durchschnitt der ersten, zweiten und dritten Trajektorie 1101, 1102 und 1103 erzeugt werden. In einigen Ausführungsformen kann die Zieltrajektorie 1110, die in der dünnbesetzten Karte 800 enthalten ist, eine Aggregation (z. B. eine gewichtete Kombination) von zwei oder mehr rekonstruierten Trajektorien sein.
  • 11B und 11C veranschaulichen ferner das Konzept von Zieltrajektorien, die mit Straßensegmenten assoziiert sind, die innerhalb eines geografischen Bereichs 1111 vorhanden sind. Wie in 11B gezeigt, kann ein erstes Straßensegment 1120 innerhalb des geografischen Bereichs 1111 eine mehrspurige Straße beinhalten, die zwei Fahrspuren 1122, die für die Fahrzeugfahrt in einer ersten Richtung bestimmt sind, und zwei zusätzliche Fahrspuren 1124, die für die Fahrzeugfahrt in einer zweiten Richtung entgegengesetzt zur ersten Richtung bestimmt sind, beinhalten. Die Fahrspuren 1122 und die Fahrspuren 1124 können durch eine doppelt gelbe Linie 1123 getrennt sein. Der geografische Bereich 1111 kann auch ein Verzweigungsstraßensegment 1130 beinhalten, das sich mit dem Straßensegment 1120 schneidet. Das Straßensegment 1130 kann eine zweispurige Straße beinhalten, wobei jede Fahrspur für eine unterschiedliche Fahrtrichtung bestimmt ist. Der geografische Bereich 1111 kann auch andere Straßenmerkmale beinhalten, wie etwa eine Stopplinie 1132, ein Stoppschild 1134, ein Geschwindigkeitsbegrenzungszeichen 1136 und ein Gefahrenzeichen 1138.
  • Wie in 11C gezeigt, kann die dünnbesetzte Karte 800 eine lokale Karte 1140 beinhalten, die ein Straßenmodell zum Unterstützen der autonomen Navigation von Fahrzeugen innerhalb des geografischen Bereichs 1111 beinhaltet. Zum Beispiel kann die lokale Karte 1140 Zieltrajektorien für eine oder mehrere Fahrspuren beinhalten, die mit den Straßensegmenten 1120 und/oder 1130 innerhalb des geografischen Bereichs 1111 assoziiert sind. Zum Beispiel kann die lokale Karte 1140 Zieltrajektorien 1141 und/oder 1142 beinhalten, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es sich stützen kann, wenn es die Fahrspuren 1122 überquert. Gleichermaßen kann die lokale Karte 1140 Zieltrajektorien 1143 und/oder 1144 beinhalten, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es sich stützen kann, wenn es die Fahrspuren 1124 überquert. Ferner kann die lokale Karte 1140 Zieltrajektorien 1145 und/oder 1146 beinhalten, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es sich stützen kann, wenn es das Straßensegment 1130 überquert. Die Zieltrajektorie 1147 stellt einen bevorzugten Weg dar, dem ein autonomes Fahrzeug folgen sollte, wenn es von den Fahrspuren 1120 (und speziell relativ zu der Zieltrajektorie 1141, die mit einer am weitesten rechts gelegenen Fahrspur der Fahrspuren 1120 assoziiert ist) zu dem Straßensegment 1130 (und speziell relativ zu einer Zieltrajektorie 1145, die mit einer ersten Seite des Straßensegments 1130 assoziiert ist) übergeht. Gleichermaßen stellt die Zieltrajektorie 1148 einen bevorzugten Weg dar, dem ein autonomes Fahrzeug folgen sollte, wenn es von Straßensegment 1130 (und speziell relativ zu der Zieltrajektorie 1146) zu einem Abschnitt des Straßensegments 1124 (und speziell, wie gezeigt, relativ zu einer Zieltrajektorie 1143, die mit einer linken Fahrspur der Fahrspuren 1124 assoziiert ist) übergeht.
  • Die dünnbesetzte Karte 800 kann auch Repräsentationen anderer straßenbezogener Merkmale beinhalten, die mit dem geografischen Bereich 1111 assoziiert sind. Zum Beispiel kann die dünnbesetzte Karte 800 auch Repräsentationen eines oder mehrerer Orientierungspunkte beinhalten, die im geografischen Bereich 1111 identifiziert sind. Solche Orientierungspunkte können einen ersten Orientierungspunkt 1150, der mit der Stopplinie 1132 assoziiert ist, einen zweiten Orientierungspunkt 1152, der mit dem Stoppschild 1134 assoziiert ist, einen dritten Orientierungspunkt, der mit dem Geschwindigkeitsbegrenzungszeichen 1154 assoziiert ist, und einen vierten Orientierungspunkt 1156, der mit dem Gefahrenzeichen 1138 assoziiert ist, beinhalten. Solche Orientierungspunkte können beispielsweise verwendet werden, um ein autonomes Fahrzeug beim Bestimmen seines aktuellen Orts in Bezug auf eine der gezeigten Zieltrajektorien zu unterstützen, sodass das Fahrzeug seine Fahrtrichtung anpassen kann, um einer Richtung der Zieltrajektorie am bestimmten Ort zu entsprechen.
  • In einigen Ausführungsformen kann die dünnbesetzte Karte 800 auch Straßensignaturprofile beinhalten. Solche Straßensignaturprofile können mit einer beliebigen erkennbaren/messbaren Variation in mindestens einem Parameter assoziiert sein, der mit einer Straße assoziiert ist. Beispielsweise können solche Profile in einigen Fällen mit Variationen in Straßenoberflächeninformationen assoziiert sein, wie etwa Variationen in der Oberflächenrauhigkeit eines bestimmten Straßensegments, Variationen in der Straßenbreite über ein bestimmtes Straßensegment, Variationen in Abständen zwischen gestrichelten Linien, die entlang eines bestimmten Straßensegments gemalt sind, Variationen in der Straßenkrümmung entlang eines bestimmten Straßensegments usw. 11D zeigt ein Beispiel eines Straßensignaturprofils 1160. Während das Profil 1160 einen beliebigen der vorstehend erwähnten Parameter oder andere darstellen kann, kann das Profil 1160 in einem Beispiel ein Maß der Straßenoberflächenrauhigkeit darstellen, wie es beispielsweise durch Überwachen eines oder mehrerer Sensoren erhalten wird, die Ausgaben bereitstellen, die eine Menge an Aufhängungsverschiebung anzeigen, wenn ein Fahrzeug ein bestimmtes Straßensegment fährt.
  • Alternativ oder gleichzeitig kann das Profil 1160 eine Variation in der Straßenbreite darstellen, wie sie basierend auf Bilddaten bestimmt wird, die über eine Kamera an Bord eines Fahrzeugs erhalten werden, das ein bestimmtes Straßensegment fährt. Solche Profile können beispielsweise beim Bestimmen eines bestimmten Orts eines autonomen Fahrzeugs in Bezug auf eine bestimmte Zieltrajektorie nützlich sein. Das heißt, wenn es ein Straßensegment überquert, kann ein autonomes Fahrzeug ein Profil messen, das mit einem oder mehreren Parametern assoziiert ist, die mit dem Straßensegment assoziiert sind. Wenn das gemessene Profil mit einem vorbestimmten Profil korreliert/abgeglichen werden kann, das die Parametervariation in Bezug auf die Position entlang des Straßensegments darstellt, können die gemessenen und vorbestimmten Profile verwendet werden (z. B. durch Überlagern entsprechender Abschnitte der gemessenen und vorbestimmten Profile), um eine aktuelle Position entlang des Straßensegments und daher eine aktuelle Position in Bezug auf eine Zieltrajektorie für das Straßensegment zu bestimmen.
  • In einigen Ausführungsformen kann die dünnbesetzte Karte 800 verschiedene Trajektorien basierend auf verschiedenen Eigenschaften, die mit einem Benutzer von autonomen Fahrzeugen assoziiert sind, Umgebungsbedingungen und/oder andere Parameter, die sich auf die Fahrt beziehen, beinhalten. Beispielsweise können in einigen Ausführungsformen verschiedene Trajektorien basierend auf verschiedenen Benutzerpräferenzen und/oder -profilen erzeugt werden. Die dünnbesetzte Karte 800, die solche verschiedenen Trajektorien beinhaltet, kann verschiedenen autonomen Fahrzeugen verschiedener Benutzer bereitgestellt werden. Beispielsweise können einige Benutzer bevorzugen, mautpflichtige Straßen zu vermeiden, während andere bevorzugen, die kürzesten oder schnellsten Routen zu nehmen, unabhängig davon, ob eine mautpflichtige Straße auf der Route vorhanden ist. Die offenbarten Systeme können verschiedene dünnbesetzte Karten mit verschiedenen Trajektorien basierend auf solchen verschiedenen Benutzerpräferenzen oder -profilen erzeugen. Als ein anderes Beispiel können einige Benutzer bevorzugen, auf einer schnell fahrenden Fahrspur zu fahren, während andere bevorzugen, jederzeit eine Position auf der zentralen Fahrspur beizubehalten.
  • Verschiedene Trajektorien können erzeugt und in der dünnbesetzten Karte 800 basierend auf verschiedenen Umgebungsbedingungen, wie etwa Tag und Nacht, Schnee, Regen, Nebel usw., beinhaltet sein. Autonome Fahrzeuge, die unter verschiedenen Umgebungsbedingungen fahren, können mit der dünnbesetzten Karte 800 bereitgestellt werden, die basierend auf solchen verschiedenen Umgebungsbedingungen erzeugt wird. In einigen Ausführungsformen können Kameras, die auf autonomen Fahrzeugen bereitgestellt werden, die Umgebungsbedingungen detektieren und können solche Informationen zurück an einen Server bereitstellen, der dünnbesetzte Karten erzeugt und bereitstellt. Zum Beispiel kann der Server eine bereits erzeugte dünnbesetzte Karte 800 erzeugen oder aktualisieren, um Trajektorien zu beinhalten, die für autonomes Fahren unter den detektierten Umgebungsbedingungen geeigneter oder sicherer sein können. Die Aktualisierung der dünnbesetzten Karte 800 basierend auf Umgebungsbedingungen kann dynamisch durchgeführt werden, während die autonomen Fahrzeuge auf Straßen fahren.
  • Andere verschiedene Parameter, die sich auf das Fahren beziehen, können ebenfalls als eine Basis zum Erzeugen und Bereitstellen verschiedener dünnbesetzter Karten für verschiedene autonome Fahrzeuge verwendet werden. Wenn zum Beispiel ein autonomes Fahrzeug mit einer hohen Geschwindigkeit fährt, können Kurven enger sein. Trajektorien, die mit spezifischen Fahrspuren assoziiert sind, anstatt Straßen, können in der dünnbesetzten Karte 800 beinhaltet sein, sodass das autonome Fahrzeug innerhalb einer spezifischen Fahrspur beibehalten kann, während das Fahrzeug einer spezifischen Trajektorie folgt. Wenn ein Bild, das durch eine Kamera an Bord des autonomen Fahrzeugs erfasst wird, angibt, dass das Fahrzeug außerhalb der Fahrspur gedriftet ist (z. B. die Fahrspurmarkierung überquert hat), kann eine Handlung innerhalb des Fahrzeugs ausgelöst werden, um das Fahrzeug gemäß der spezifischen Trajektorie zurück auf die festgelegte Fahrspur zu bringen.
  • Crowdsourcing einer dünnbesetzten Karte
  • In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünnbesetzte Karte zur autonomen Fahrzeugnavigation erzeugen. Zum Beispiel können offenbarte Systeme und Verfahren Crowdsourcing-Daten zur Erzeugung einer Dünnbesetzung verwenden, die ein oder mehrere autonome Fahrzeuge verwenden können, um entlang einem System von Straßen zu navigieren. Wie hierin verwendet, bedeutet „Crowdsourcing“, dass Daten von verschiedenen Fahrzeugen (z. B. autonomen Fahrzeugen) empfangen werden, die zu unterschiedlichen Zeiten auf einem Straßensegment fahren, und solche Daten werden verwendet, um das Straßenmodell zu erzeugen und/oder zu aktualisieren. Das Modell kann wiederum an die Fahrzeuge oder andere Fahrzeuge übertragen werden, die später entlang dem Straßensegment fahren, um die autonome Fahrzeugnavigation zu unterstützen. Das Straßenmodell kann eine Vielzahl von Zieltrajektorien beinhalten, die bevorzugte Trajektorien darstellen, denen autonome Fahrzeuge folgen sollten, wenn sie ein Straßensegment überqueren. Die Zieltrajektorien können dieselben sein wie eine rekonstruierte tatsächliche Trajektorie, die von einem Fahrzeug gesammelt wird, das ein Straßensegment überquert, die vom Fahrzeug an einen Server übertragen werden kann. In einigen Ausführungsformen können sich die Zieltrajektorien von tatsächlichen Trajektorien unterscheiden, die ein oder mehrere Fahrzeuge zuvor beim Überqueren eines Straßensegments genommen haben. Die Zieltrajektorien können basierend auf tatsächlichen Trajektorien erzeugt werden (z. B. durch Mittelung oder einen beliebigen anderen geeigneten Vorgang).
  • Die Fahrzeugtrajektoriendaten, die ein Fahrzeug auf einen Server hochladen kann, können der tatsächlichen rekonstruierten Trajektorie für das Fahrzeug entsprechen oder können einer empfohlenen Trajektorie entsprechen, die auf der tatsächlichen rekonstruierten Trajektorie des Fahrzeugs basieren oder sich auf diese beziehen kann, sich aber von der tatsächlichen rekonstruierten Trajektorie unterscheiden kann. Zum Beispiel können Fahrzeuge ihre tatsächlichen rekonstruierten Trajektorien modifizieren und die modifizierten tatsächlichen Trajektorien an den Server übermitteln (z. B. empfehlen). Das Straßenmodell kann die empfohlenen modifizierten Trajektorien als Zieltrajektorien für die autonome Navigation anderer Fahrzeuge verwenden.
  • Zusätzlich zu Trajektorieninformationen können andere Informationen zur potenziellen Verwendung beim Erstellen einer dünnbesetzten Datenkarte 800 Informationen beinhalten, die sich auf potenzielle Orientierungspunktkandidaten beziehen. Zum Beispiel können die offenbarten Systeme und Verfahren durch Crowd-Sourcing von Informationen potenzielle Orientierungspunkte in einer Umgebung identifizieren und Orientierungspunktpositionen verfeinern. Die Orientierungspunkte können von einem Navigationssystem autonomer Fahrzeuge verwendet werden, um die Position des Fahrzeugs entlang der Zieltrajektorien zu bestimmen und/oder anzupassen.
  • Die rekonstruierten Trajektorien, die ein Fahrzeug erzeugen kann, wenn das Fahrzeug entlang einer Straße fährt, können durch ein beliebiges geeignetes Verfahren erhalten werden. In einigen Ausführungsformen können die rekonstruierten Trajektorien durch Zusammenfügen von Bewegungssegmenten für das Fahrzeug unter Verwendung von z. B. Ego-Bewegungsschätzung (z. B. dreidimensionale Translation und dreidimensionale Rotation der Kamera und damit der Karosserie des Fahrzeugs) entwickelt werden. Die Rotations- und Translationsschätzung kann basierend auf der Analyse von Bildern bestimmt werden, die von einer oder mehreren Bilderfassungsvorrichtung(en) zusammen mit Informationen von anderen Sensoren oder Vorrichtungen, wie Trägheitssensoren und Geschwindigkeitssensoren, erfasst werden. So können beispielsweise die Trägheitssensoren einen Beschleunigungsmesser oder andere geeignete Sensoren beinhalten, die konfiguriert sind, um Änderungen in der Translation und/oder Rotation der Fahrzeugkarosserie zu messen. Das Fahrzeug kann einen Geschwindigkeitssensor beinhalten, der eine Geschwindigkeit des Fahrzeugs misst.
  • In einigen Ausführungsformen kann die Ego-Bewegung der Kamera (und damit der Fahrzeugkarosserie) basierend auf einer optischen Flussanalyse der erfassten Bilder geschätzt werden. Eine optische Flussanalyse einer Bildsequenz identifiziert die Bewegung von Pixeln aus der Bildsequenz und bestimmt basierend auf der identifizierten Bewegung die Bewegungen des Fahrzeugs. Die Ego-Bewegung kann im Laufe der Zeit und entlang des Straßensegments integriert werden, um eine Trajektorie zu rekonstruieren, die mit dem Straßensegment assoziiert ist, dem das Fahrzeug gefolgt ist.
  • Daten (z. B. rekonstruierte Trajektorien), die von mehreren Fahrzeugen in mehreren Fahrten entlang eines Straßensegments zu verschiedenen Zeiten gesammelt werden, können verwendet werden, um das Straßenmodell (z. B. einschließlich der Zieltrajektorien usw.) zu konstruieren, das in der Karte mit dünnbesetzten Daten 800 enthalten ist. Daten, die von mehreren Fahrzeugen in mehreren Fahrten entlang eines Straßensegments zu verschiedenen Zeiten gesammelt werden, können auch gemittelt werden, um eine Genauigkeit des Modells zu erhöhen. In einigen Ausführungsformen können Daten bezüglich der Straßengeometrie und/oder Orientierungspunkte von mehreren Fahrzeugen empfangen werden, die zu verschiedenen Zeiten durch das gemeinsame Straßensegment fahren. Solche Daten, die von verschiedenen Fahrzeugen empfangen werden, können kombiniert werden, um das Straßenmodell zu erzeugen und/oder das Straßenmodell zu aktualisieren.
  • Die Geometrie einer rekonstruierten Trajektorie (und auch einer Zieltrajektorie) entlang eines Straßensegments kann durch eine Kurve im dreidimensionalen Raum repräsentiert werden, die ein Spline sein kann, der dreidimensionale Polynome verbindet. Die rekonstruierte Trajektorienkurve kann aus der Analyse eines Videostroms oder einer Vielzahl von Bildern bestimmt werden, die von einer am Fahrzeug installierten Kamera erfasst werden. In einigen Ausführungsformen wird in jedem Rahmen oder Bild ein Ort identifiziert, der sich einige Meter vor der aktuellen Position des Fahrzeugs befindet. Dieser Ort ist der Ort, an den das Fahrzeug voraussichtlich in einem vorbestimmten Zeitraum fahren wird. Dieser Vorgang kann rahmenweise wiederholt werden, und gleichzeitig kann das Fahrzeug die Ego-Bewegung der Kamera (Rotation und Translation) berechnen. An jedem Rahmen oder Bild wird ein Nahbereichsmodell für den gewünschten Weg vom Fahrzeug in einem Referenzrahmen erzeugt, der an der Kamera befestigt ist. Die Nahbereichsmodelle können zusammengefügt werden, um ein dreidimensionales Modell der Straße in einem Koordinatenrahmen zu erhalten, der ein beliebiger oder vorbestimmter Koordinatenrahmen sein kann. Das dreidimensionale Modell der Straße kann dann durch einen Spline angepasst werden, der ein oder mehrere Polynome geeigneter Ordnungen beinhalten oder verbinden kann.
  • Um das Nahbereichsstraßenmodell an jedem Rahmen abzuschließen, können ein oder mehrere Erkennungsmodule verwendet werden. So kann beispielsweise ein Boden-oben-Fahrspur-Erkennungsmodul verwendet werden. Das Boden-oben-Fahrspur-Erkennungsmodul kann nützlich sein, wenn Fahrspurmarkierungen auf der Straße gezogen werden. Dieses Modul kann nach Kanten im Bild suchen und sie zusammenfügen, um die Fahrspurmarkierungen zu bilden. Ein zweites Modul kann zusammen mit dem Boden-oben-Fahrspur-Erkennungsmodul verwendet werden. Das zweite Modul ist ein tiefes neuronales Ende-zu-Ende-Netzwerk, das trainiert werden kann, um den korrekten Nahbereichsweg aus einem Eingangsbild vorherzusagen. In beiden Modulen kann das Straßenmodell im Bildkoordinatenrahmen erkannt und in einen dreidimensionalen Raum umgewandelt werden, der virtuell an der Kamera befestigt sein kann.
  • Obwohl das rekonstruierte Trajektorienmodellierungsverfahren eine Ansammlung von Fehlern aufgrund der Integration von Ego-Bewegung über einen langen Zeitraum einführen kann, die eine Rauschkomponente beinhalten kann, können solche Fehler unbedeutend sein, da das erzeugte Modell eine ausreichende Genauigkeit für die Navigation über eine lokale Skala bereitstellen kann. Darüber hinaus ist es möglich, den integrierten Fehler durch Verwendung externer Informationsquellen, wie beispielsweise Satellitenbilder oder geodätische Messungen, zu beseitigen. So können beispielsweise die offenbarten Systeme und Verfahren einen GNSS-Empfänger verwenden, um angesammelte Fehler zu beseitigen. Die GNSS-Positionierungssignale sind jedoch möglicherweise nicht immer verfügbar und genau. Die offenbarten Systeme und Verfahren können eine Lenkanwendung ermöglichen, die schwach von der Verfügbarkeit und Genauigkeit der GNSS-Positionierung abhängt. In solchen Systemen kann die Verwendung der GNSS-Signale begrenzt sein. So können beispielsweise die offenbarten Systeme in einigen Ausführungsformen die GNSS-Signale nur für Datenbankindizierungszwecke verwenden.
  • In einigen Ausführungsformen kann die Reichweitenskala (z. B. lokale Skala), die für eine autonome 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, da das geometrische Straßenmodell hauptsächlich für zwei Zwecke verwendet wird: Planung der vorausliegenden Trajektorie und Lokalisierung des Fahrzeugs auf dem Straßenmodell. In einigen Ausführungsformen kann die Planungsaufgabe das Modell über eine typische Reichweite von 40 Metern voraus (oder einen anderen geeigneten Abstand voraus, wie beispielsweise 20 Meter, 30 Meter, 50 Meter) verwenden, wenn der Steueralgorithmus das Fahrzeug gemäß einem Zielpunkt lenkt, der sich 1,3 Sekunden voraus befindet (oder einem anderen Zeitpunkt, wie beispielsweise 1,5 Sekunden, 1,7 Sekunden, 2 Sekunden usw.). Die Lokalisierungsaufgabe verwendet das Straßenmodell über eine typische Reichweite von 60 Metern hinter dem Auto (oder einen anderen geeigneten Abstand, wie beispielsweise 50 Meter, 100 Meter, 150 Meter usw.) gemäß einem Verfahren, das in einem anderen Abschnitt ausführlicher beschrieben wird. Die offenbarten Systeme und Verfahren können ein geometrisches Modell erzeugen, das eine ausreichende Genauigkeit über einen bestimmten Bereich, wie beispielsweise 100 Meter, aufweist, sodass eine geplante Trajektorie nicht um mehr als beispielsweise 30 cm von der Fahrspurmitte abweicht.
  • Wie vorstehend erläutert, kann ein dreidimensionales Straßenmodell aus dem Erkennen von Nahbereichsabschnitten und dem Zusammenfügen derselben konstruiert werden. Das Zusammenfügen kann durch Berechnen eines sechs-Grad-Ego-Bewegungsmodells unter Verwendung der von der Kamera erfassten Videos und/oder Bilder, Daten von den Trägheitssensoren, die die Bewegungen des Fahrzeugs widerspiegeln, und des Host-Fahrzeug-Geschwindigkeitssignals ermöglicht werden. Der akkumulierte Fehler kann über eine lokale Reichweitenskala, wie beispielsweise in der Größenordnung von 100 Metern, klein genug sein. All dies kann in einer einzelnen Fahrt über ein bestimmtes Straßensegment abgeschlossen werden.
  • In einigen Ausführungsformen können mehrere Fahrten verwendet werden, um das resultierende Modell zu mitteln und seine Genauigkeit weiter zu erhöhen. Das gleiche Auto kann mehrmals die gleiche Route fahren, oder mehrere Autos können ihre gesammelten Modelldaten an einen zentralen Server senden. In jedem Fall kann ein Abgleichverfahren durchgeführt werden, um überlappende Modelle zu identifizieren und eine Mittelung zu ermöglichen, um Zieltrajektorien zu erzeugen. Das konstruierte Modell (z. B. einschließlich der Zieltrajektorien) kann zum Lenken verwendet werden, sobald ein Konvergenzkriterium erfüllt ist. Nachfolgende Fahrten können für weitere Modellverbesserungen und zur Anpassung an Infrastrukturänderungen verwendet werden.
  • Das Teilen von Fahrerfahrung (wie etwa erfassten Daten) zwischen mehreren Autos wird machbar, wenn sie mit einem zentralen Server verbunden sind. Jeder Fahrzeugclient kann eine partielle Kopie eines universellen Straßenmodells speichern, das für seine aktuelle Position relevant sein kann. Ein bidirektionales Aktualisierungsverfahren zwischen den Fahrzeugen und dem Server kann durch die Fahrzeuge und den Server durchgeführt werden. Das vorstehend erörterte Konzept mit kleinem Fußabdruck ermöglicht es den offenbarten Systemen und Verfahren, die bidirektionalen Aktualisierungen unter Verwendung einer sehr kleinen Bandbreite durchzuführen.
  • Informationen, die sich auf potenzielle Orientierungspunkte beziehen, können ebenfalls bestimmt und an einen zentralen Server weitergeleitet werden. Zum Beispiel können die offenbarten Systeme und Verfahren eine oder mehrere physische Eigenschaften eines potenziellen Orientierungspunkts basierend auf einem oder mehreren Bildern bestimmen, die den Orientierungspunkt beinhalten. Die physischen Eigenschaften können eine physische Größe (z. B. Höhe, Breite) des Orientierungspunkts, eine Entfernung von einem Fahrzeug zu einem Orientierungspunkt, eine Entfernung zwischen dem Orientierungspunkt zu einem vorherigen Orientierungspunkt, die seitliche Position des Orientierungspunkts (z. B. die Position des Orientierungspunkts relativ zu der Fahrspur), die GPS-Koordinaten des Orientierungspunkts, einen Typ von Orientierungspunkt, Identifizierung von Text auf dem Orientierungspunkt usw. beinhalten. Zum Beispiel kann ein Fahrzeug ein oder mehrere Bilder analysieren, die von einer Kamera erfasst werden, um einen potenziellen Orientierungspunkt, wie etwa ein Geschwindigkeitsbegrenzungszeichen, zu detektieren.
  • Das Fahrzeug kann eine Entfernung vom Fahrzeug zum Orientierungspunkt basierend auf der Analyse des einen oder der mehreren Bilder bestimmen. In einigen Ausführungsformen kann die Entfernung basierend auf der Analyse von Bildern des Orientierungspunkts unter Verwendung eines geeigneten Bildanalyseverfahrens, wie etwa eines Skalierungsverfahrens und/oder eines optischen Flussverfahrens, bestimmt werden. In einigen Ausführungsformen können die offenbarten Systeme und Verfahren dazu konfiguriert sein, einen Typ oder Klassifizierung eines potenziellen Orientierungspunkts zu bestimmen. Falls das Fahrzeug bestimmt, dass ein bestimmter potenzieller Orientierungspunkt einem vorbestimmten Typ oder Klassifizierung entspricht, die in einer dünnbesetzten Karte gespeichert ist, kann es ausreichend sein, dass das Fahrzeug dem Server eine Angabe des Typs oder Klassifizierung des Orientierungspunkts zusammen mit seinem Ort kommuniziert. Der Server kann derartige Angaben speichern. Zu einem späteren Zeitpunkt können andere Fahrzeuge ein Bild des Orientierungspunkts erfassen, das Bild verarbeiten (z. B. unter Verwendung eines Klassifizierers) und das Ergebnis aus dem Verarbeiten des Bilds mit der Angabe, die im Server gespeichert ist, in Bezug auf den Typ des Orientierungspunkts vergleichen. Es kann verschiedene Typen von Orientierungspunkten geben und verschiedene Typen von Orientierungspunkten können mit verschiedenen Typen von Daten assoziiert sein, die auf den Server hochgeladen und im Server gespeichert werden sollen, verschiedene Verarbeitung an Bord des Fahrzeugs kann den Orientierungspunkt detektieren und Informationen über den Orientierungspunkt an den Server kommunizieren und das System an Bord des Fahrzeugs kann die Orientierungspunktdaten vom Server empfangen und die Orientierungspunktdaten zum Identifizieren eines Orientierungspunkts bei autonomer Navigation verwenden.
  • In 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 Kurve erzeugen, die ihre Fahrt (z. B. durch Ego-Bewegungsintegration) in einem beliebigen Koordinatenrahmen beschreibt. Die Fahrzeuge können Orientierungspunkte detektieren und sie im gleichen Rahmen lokalisieren. Die Fahrzeuge können die Kurve und die Orientierungspunkte auf den Server hochladen. Der Server kann Daten von Fahrzeugen über mehrere Fahrten sammeln und ein einheitliches Straßenmodell erzeugen. Wie beispielsweise nachfolgend in Bezug auf 19 erörtert, kann der Server eine dünnbesetzte Karte mit dem einheitlichen Straßenmodell unter Verwendung der hochgeladenen Kurven und Orientierungspunkte erzeugen.
  • Der Server kann das Modell auch an Clients (z. B. Fahrzeuge) verteilen. Beispielsweise kann der Server die dünnbesetzte 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 zu bewerten, ob die Daten Informationen beinhalten, die eine Aktualisierung oder Erstellung neuer Daten auf dem Server auslösen sollten. Der Server kann das aktualisierte Modell oder die Aktualisierungen an die Fahrzeuge verteilen, um eine autonome Fahrzeugnavigation bereitzustellen.
  • Der Server kann ein oder mehrere Kriterien verwenden, um zu bestimmen, ob neue Daten, die von den Fahrzeugen empfangen werden, eine Aktualisierung des Modells auslösen oder die Erstellung neuer Daten auslösen sollten. Wenn beispielsweise die neuen Daten anzeigen, dass ein zuvor erkannter Orientierungspunkt an einem bestimmten Ort nicht mehr existiert oder durch einen anderen Orientierungspunkt ersetzt wird, kann der Server bestimmen, dass die neuen Daten eine Aktualisierung des Modells auslösen sollten. Als weiteres Beispiel, wenn die neuen Daten anzeigen, dass ein Straßensegment geschlossen wurde, und wenn dies durch Daten bestätigt wurde, die von anderen Fahrzeugen empfangen werden, kann der Server bestimmen, dass die neuen Daten eine Aktualisierung des Modells auslösen sollten.
  • Der Server kann das aktualisierte Modell (oder den aktualisierten Abschnitt des Modells) an ein oder mehrere Fahrzeuge verteilen, die auf dem Straßensegment fahren, mit dem die Aktualisierungen des Modells assoziiert sind. Der Server kann das aktualisierte Modell auch an Fahrzeuge verteilen, die im Begriff sind, auf dem Straßensegment zu fahren, oder Fahrzeuge, deren geplante Fahrt das Straßensegment beinhaltet, mit dem die Aktualisierungen des Modells assoziiert sind. Während beispielsweise ein autonomes Fahrzeug entlang eines anderen Straßensegments fährt, bevor es das Straßensegment erreicht, mit dem eine Aktualisierung assoziiert ist, kann der Server die Aktualisierungen oder das aktualisierte Modell an das autonome Fahrzeug verteilen, bevor das Fahrzeug das Straßensegment erreicht.
  • In einigen Ausführungsformen kann der entfernte Server Trajektorien und Orientierungspunkte von mehreren Clients (z. B. Fahrzeugen, die entlang eines gemeinsamen Straßensegments fahren) sammeln. Der Server kann Kurven unter Verwendung von Orientierungspunkten abgleichen und ein durchschnittliches Straßenmodell basierend auf den von den mehreren Fahrzeugen gesammelten Trajektorien erstellen. Der Server kann auch eine Grafik von Straßen und den wahrscheinlichsten Weg an jedem Knoten oder in Verbindung mit dem Straßensegment berechnen. Beispielsweise kann der entfernte Server die Trajektorien ausrichten, um eine gecrowdsourcte dünnbesetzte Karte aus den gesammelten Trajektorien zu erzeugen.
  • Der Server kann Orientierungspunkteigenschaften, die von mehreren Fahrzeugen empfangen werden, die entlang des gemeinsamen Straßensegments gefahren sind, wie etwa die Entfernungen zwischen einem Orientierungspunkt zu einem anderen (z. B. einem vorherigen entlang des Straßensegments), wie durch mehrere Fahrzeuge gemessen, mitteln, um einen Bogenlängenparameter zu bestimmen und Lokalisierung entlang des Wegs und Geschwindigkeitskalibrierung für jedes Client-Fahrzeug zu unterstützen. Der Server kann die physischen Abmessungen eines Orientierungspunkts, die durch mehrere Fahrzeuge gemessen werden, die entlang des gemeinsamen Straßensegments gefahren sind, mitteln und denselben Orientierungspunkt erkennen. Die gemittelten physischen Abmessungen können verwendet werden, um Entfernungsschätzung zu unterstützen, wie etwa die Entfernung vom Fahrzeug zum Orientierungspunkt. Der Server kann laterale Positionen eines Orientierungspunkts (z. B. Position von der Fahrspur, auf der Fahrzeuge fahren, zum Orientierungspunkt), die durch mehrere Fahrzeuge gemessen werden, die entlang des gemeinsamen Straßensegments gefahren sind, mitteln und denselben Orientierungspunkt erkennen. Die gemittelte laterale Position kann verwendet werden, um Fahrspurzuweisung zu unterstützen. Der Server kann die GPS-Koordinaten des Orientierungspunkts, die durch mehrere Fahrzeuge gemessen werden, die entlang desselben Straßensegments gefahren sind, mitteln und denselben Orientierungspunkt erkennen. Die gemittelten GPS-Koordinaten des Orientierungspunkts können verwendet werden, um globale Lokalisierung oder Positionierung des Orientierungspunkts im Straßenmodell zu unterstützen.
  • In einigen Ausführungsformen kann der Server Modelländerungen, wie etwa Konstruktionen, Umleitungen, neue Zeichen, Entfernen von Zeichen usw., basierend auf Daten, die von den Fahrzeugen empfangen werden, identifizieren. Der Server kann das Modell kontinuierlich oder periodisch oder sofort aktualisieren, wenn er neue Daten von den Fahrzeugen empfängt. Der Server kann Aktualisierungen an das Modell oder das aktualisierte Modell an Fahrzeuge verteilen, um autonome Navigation bereitzustellen. Beispielsweise kann der Server, wie nachfolgend weiter erörtert, Crowdsourcing-Daten verwenden, um „Geister“-Orientierungspunkte herauszufiltern, die von Fahrzeugen erkannt werden.
  • In einigen Ausführungsformen kann der Server Fahrereingriffe während der autonomen Fahrt analysieren. Der Server kann Daten, die vom Fahrzeug zu dem Zeitpunkt und Ort, an dem ein Eingriff stattfindet, empfangen werden, und/oder Daten, die vor dem Zeitpunkt, zu dem der Eingriff stattgefunden hat, empfangen werden, analysieren. Der Server kann bestimmte Teile der Daten identifizieren, die den Eingriff verursacht haben oder eng damit zusammenhängen, beispielsweise Daten, die eine vorübergehende Einrichtung zum Schließen der Fahrspur anzeigen, Daten, die einen Fußgänger auf der Straße anzeigen. Der Server kann das Modell basierend auf den identifizierten Daten aktualisieren. Beispielsweise kann der Server eine oder mehrere Trajektorien modifizieren, die im Modell gespeichert sind.
  • 12 ist eine schematische Veranschaulichung eines Systems, das Crowdsourcing verwendet, um eine dünnbesetzte Karte zu erzeugen (sowie unter Verwendung einer Crowdsourcingdünnbesetzten Karte zu verteilen und zu navigieren). 12 zeigt ein Straßensegment 1200, das eine oder mehrere Fahrspuren beinhaltet. Eine Vielzahl von Fahrzeugen 1205, 1210, 1215, 1220 und 1225 kann gleichzeitig oder zu verschiedenen Zeiten auf dem Straßensegment 1200 fahren (obwohl in 12 als gleichzeitig auf dem Straßensegment 1200 erscheinend gezeigt). Mindestens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 kann ein autonomes Fahrzeug sein. Zur Vereinfachung des vorliegenden Beispiels wird angenommen, dass alle Fahrzeuge 1205, 1210, 1215, 1220 und 1225 autonome Fahrzeuge sind.
  • Jedes Fahrzeug kann ähnlich wie Fahrzeuge sein, die in anderen Ausführungsformen offenbart sind (z. B. Fahrzeug 200), und kann Komponenten oder Vorrichtungen beinhalten, die in anderen Ausführungsformen offenbarten Fahrzeugen beinhaltet oder mit diesen assoziiert sind. Jedes Fahrzeug kann mit einer Bilderfassungsvorrichtung oder Kamera (z. B. Bilderfassungsvorrichtung 122 oder Kamera 122) ausgestattet sein. Jedes Fahrzeug kann mit einem entfernten Server 1230 über ein oder mehrere Netzwerke (z. B. über ein Mobilfunknetz und/oder das Internet usw.) über drahtlose Kommunikationspfade 1235 kommunizieren, wie durch die gestrichelten Linien angegeben. Jedes Fahrzeug kann Daten an den Server 1230 übertragen und Daten vom Server 1230 empfangen. Zum Beispiel kann der Server 1230 Daten von mehreren Fahrzeugen sammeln, die zu unterschiedlichen Zeiten auf dem Straßensegment 1200 fahren, und kann die gesammelten Daten verarbeiten, um ein Straßennavigationsmodell eines autonomen Fahrzeugs oder eine Aktualisierung des Modells zu erzeugen. Der Server 1230 kann das Straßennavigationsmodell des autonomen Fahrzeugs oder die Aktualisierung des Modells an die Fahrzeuge übertragen, die Daten an den Server 1230 übertragen haben. Der Server 1230 kann das Straßennavigationsmodell des autonomen Fahrzeugs oder die Aktualisierung des Modells an andere Fahrzeuge übertragen, die zu späteren Zeitpunkten auf dem Straßensegment 1200 fahren.
  • Wenn die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 auf dem Straßensegment 1200 fahren, können Navigationsinformationen, die durch die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 gesammelt (z. B. detektiert, erfasst oder gemessen) werden, an den Server 1230 übertragen werden. In einigen Ausführungsformen können die Navigationsinformationen mit dem gemeinsamen Straßensegment 1200 assoziiert sein. Die Navigationsinformationen können eine Trajektorie beinhalten, die mit jedem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 assoziiert ist, wenn jedes Fahrzeug über das Straßensegment 1200 fährt. In einigen Ausführungsformen kann die Trajektorie basierend auf Daten rekonstruiert werden, die durch verschiedene Sensoren und Vorrichtungen erfasst werden, die am Fahrzeug 1205 bereitgestellt sind. Zum Beispiel kann die Trajektorie basierend auf mindestens einem von Beschleunigungsmesserdaten, Geschwindigkeitsdaten, Orientierungspunktdaten, Straßengeometrie- oder -profildaten, Fahrzeugpositionierungsdaten und Eigenbewegungsdaten rekonstruiert werden. In einigen Ausführungsformen kann die Trajektorie basierend auf Daten von Trägheitssensoren, wie Beschleunigungsmesser, und der Geschwindigkeit des Fahrzeugs 1205, die von einem Geschwindigkeitssensor erfasst wird, rekonstruiert werden. Zusätzlich kann in einigen Ausführungsformen die Trajektorie basierend auf erfasster Eigenbewegung der Kamera bestimmt werden (z. B. durch einen Prozessor an Bord jedes der Fahrzeuge 1205, 1210, 1215, 1220 und 1225), was dreidimensionale Translation und/oder dreidimensionale Rotationen (oder Rotationsbewegungen) anzeigen kann. Die Eigenbewegung der Kamera (und damit der Fahrzeugkarosserie) kann aus der Analyse eines oder mehrerer Bilder bestimmt werden, die von der Kamera erfasst werden.
  • In einigen Ausführungsformen kann die Trajektorie des Fahrzeugs 1205 durch einen Prozessor bestimmt werden, der an Bord des Fahrzeugs 1205 bereitgestellt und an den Server 1230 übertragen wird. In anderen Ausführungsformen kann der Server 1230 Daten empfangen, die von den verschiedenen Sensoren und Vorrichtungen erfasst werden, die im Fahrzeug 1205 bereitgestellt sind, und die Trajektorie basierend auf den vom Fahrzeug 1205 empfangenen Daten bestimmen.
  • In einigen Ausführungsformen können die Navigationsinformationen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 an den Server 1230 übertragen werden, Daten bezüglich der Straßenoberfläche, der Straßengeometrie oder des Straßenprofils beinhalten. Die Geometrie des Straßensegments 1200 kann eine Fahrspurstruktur und/oder Orientierungspunkte beinhalten. Die Fahrspurstruktur kann die Gesamtzahl der Fahrspuren des Straßensegments 1200, den Typ der Fahrspuren (z. B. Einwegspur, Zweiwegspur, Fahrt, Überholspur usw.), Markierungen auf den Fahrspuren, Breite der Fahrspuren usw. beinhalten. In einigen Ausführungsformen können die Navigationsinformationen eine Fahrspurzuweisung beinhalten, z. B. auf welcher Fahrspur einer Vielzahl von Fahrspuren ein Fahrzeug fährt. Zum Beispiel kann die Fahrspurzuweisung mit einem numerischen Wert „3“ assoziiert sein, der angibt, dass das Fahrzeug auf der dritten Fahrspur von links oder rechts fährt. Als ein anderes Beispiel kann die Fahrspurzuweisung mit einem Textwert „Mittelspur“ assoziiert sein, der angibt, dass das Fahrzeug auf der Mittelspur fährt.
  • Der Server 1230 kann die Navigationsinformationen auf einem nichtflüchtigen computerlesbaren Medium speichern, wie etwa einer Festplatte, einer Compact Disc, einem Band, einem Speicher usw. Der Server 1230 kann (z. B. durch einen Prozessor, der im Server 1230 enthalten ist) mindestens einen Abschnitt eines Straßennavigationsmodells eines autonomen Fahrzeugs für das gemeinsame Straßensegment 1200 basierend auf den Navigationsinformationen erzeugen, die von der Vielzahl von Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden, und kann das Modell als einen Abschnitt einer dünnbesetzten Karte speichern. Der Server 1230 kann eine Trajektorie, die mit jeder Fahrspur assoziiert ist, basierend auf Crowdsourcing-Daten (z. B. Navigationsinformationen) bestimmen, die von mehreren Fahrzeugen (z. B. 1205, 1210, 1215, 1220 und 1225) empfangen werden, die zu unterschiedlichen Zeiten auf einer Fahrspur des Straßensegments fahren. Der Server 1230 kann das Straßennavigationsmodell des autonomen Fahrzeugs oder einen Abschnitt des Modells (z. B. einen aktualisierten Abschnitt) basierend auf einer Vielzahl von Trajektorien erzeugen, die basierend auf den Crowd-Sourcing-Navigationsdaten bestimmt werden. Der Server 1230 kann das Modell oder den aktualisierten Abschnitt des Modells an ein oder mehrere autonome Fahrzeuge 1205, 1210, 1215, 1220 und 1225, die auf dem Straßensegment 1200 fahren, oder beliebige andere autonome Fahrzeuge übertragen, die zu einem späteren Zeitpunkt auf dem Straßensegment fahren, um ein existierendes Straßennavigationsmodell des autonomen Fahrzeugs zu aktualisieren, das in einem Navigationssystem der Fahrzeuge bereitgestellt wird. Das Straßennavigationsmodell des autonomen Fahrzeugs kann durch die autonomen Fahrzeuge beim autonomen Navigieren entlang dem gemeinsamen Straßensegment 1200 verwendet werden.
  • Wie vorstehend erläutert, kann das Straßennavigationsmodell des autonomen Fahrzeugs in einer dünnbesetzten Karte (z. B. der in 8 gezeigten dünnbesetzten Karte 800) enthalten sein. Die dünnbesetzte Karte 800 kann eine dünnbesetzte Aufzeichnung von Daten beinhalten, die sich auf die Straßengeometrie und/oder Orientierungspunkte entlang einer Straße beziehen, die ausreichende Informationen zum Führen der autonomen Navigation eines autonomen Fahrzeugs bereitstellen können, jedoch keinen übermäßigen Datenspeicher erfordern. In einigen Ausführungsformen kann das Straßennavigationsmodell des autonomen Fahrzeugs getrennt von der dünnbesetzten Karte 800 gespeichert werden und kann Kartendaten von der dünnbesetzten Karte 800 verwenden, wenn das Modell zur Navigation ausgeführt wird. In einigen Ausführungsformen kann das Straßennavigationsmodell des autonomen Fahrzeugs Kartendaten verwenden, die in der dünnbesetzten Karte 800 enthalten sind, um Zieltrajektorien entlang dem Straßensegment 1200 zu bestimmen, um die autonome Navigation der autonomen Fahrzeuge 1205, 1210, 1215, 1220 und 1225 oder anderer Fahrzeuge zu führen, die später entlang dem Straßensegment 1200 fahren. Wenn beispielsweise das Straßennavigationsmodell des autonomen Fahrzeugs von einem Prozessor ausgeführt wird, der in einem Navigationssystem des Fahrzeugs 1205 enthalten ist, kann das Modell den Prozessor veranlassen, die basierend auf den vom Fahrzeug 1205 empfangenen Navigationsinformationen bestimmten Trajektorien mit vorbestimmten Trajektorien zu vergleichen, die in der dünnbesetzten Karte 800 enthalten sind, um den aktuellen Fahrverlauf des Fahrzeugs 1205 zu validieren und/oder zu korrigieren.
  • Im Straßennavigationsmodell des autonomen Fahrzeugs kann die Geometrie eines Straßenmerkmal oder einer Zieltrajektorie durch eine Kurve in einem dreidimensionalen Raum kodiert werden. In einer Ausführungsform kann die Kurve ein dreidimensionaler Spline sein, der ein oder mehrere verbindende dreidimensionale Polynome beinhaltet. Wie ein Fachmann verstehen würde, kann ein Spline eine numerische Funktion sein, die stückweise durch eine Reihe von Polynomen zum Anpassen von Daten definiert ist. Ein Spline zum Anpassen der dreidimensionalen Geometriedaten der Straße kann einen linearen Spline (erste Ordnung), einen quadratischen Spline (zweite Ordnung), einen kubischen Spline (dritte Ordnung) oder beliebige andere Splines (andere Ordnungen) oder eine Kombination davon beinhalten. Der Spline kann ein oder mehrere dreidimensionale Polynome unterschiedlicher Ordnungen beinhalten, die Datenpunkte der dreidimensionalen Geometriedaten der Straße verbinden (z. B. anpassen). In einigen Ausführungsformen kann das Straßennavigationsmodell für autonome Fahrzeuge einen dreidimensionalen Spline beinhalten, der einer Zieltrajektorie entlang einem gemeinsamen Straßensegment (z. B. Straßensegment 1200) oder einer Fahrspur des Straßensegments 1200 entspricht.
  • Wie vorstehend erläutert, kann das Straßennavigationsmodell für autonome Fahrzeuge, das in der dünnbesetzten Karte enthalten ist, andere Informationen beinhalten, wie etwa die Identifikation von mindestens einem Orientierungspunkt entlang dem Straßensegment 1200. Der Orientierungspunkt kann in einem Sichtfeld einer Kamera (z. B. Kamera 122) sichtbar sein, die an jedem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 installiert ist. In einigen Ausführungsformen kann die Kamera 122 ein Bild eines Orientierungspunkts erfassen. Ein Prozessor (z. B. Prozessor 180, 190 oder Verarbeitungseinheit 110), der am Fahrzeug 1205 bereitgestellt ist, kann das Bild des Orientierungspunkts verarbeiten, um Identifikationsinformationen für den Orientierungspunkt zu extrahieren. Die Orientierungspunkt-Identifikationsinformationen können, anstatt eines tatsächlichen Bilds des Orientierungspunkts, in der dünnbesetzten Karte 800 gespeichert werden. Die Orientierungspunkt-Identifikationsinformationen können viel weniger Speicherplatz als ein tatsächliches Bild erfordern. Andere Sensoren oder Systeme (z. B. GPS-System) können ebenfalls bestimmte Identifikationsinformationen des Orientierungspunkts bereitstellen (z. B. Position des Orientierungspunkts). Der Orientierungspunkt kann mindestens eines von einem Verkehrszeichen, einer Pfeilmarkierung, einer Fahrspurmarkierung, einer Markierung mit gestrichelter Fahrspur, einer Ampel, einer Stopplinie, einem Richtungsschild (z. B. einem Autobahnausfahrtsschild mit einem Pfeil, der eine Richtung angibt, einem Autobahnschild mit Pfeilen, die in unterschiedliche Richtungen oder Orte zeigen), einer Orientierungspunkt-Bake oder einem Laternenpfosten beinhalten. Eine Orientierungspunkt-Bake bezieht sich auf eine Vorrichtung (z. B. eine RFID-Vorrichtung), die entlang einem Straßensegment installiert ist, das ein Signal an einen Empfänger überträgt oder reflektiert, der an einem Fahrzeug installiert ist, sodass, wenn das Fahrzeug an der Vorrichtung vorbeifährt, die vom Fahrzeug empfangene Bake und der Ort der Vorrichtung (z. B. bestimmt aus dem GPS-Ort der Vorrichtung) als Orientierungspunkt verwendet werden können, um in das autonome Fahrzeugstraßennavigationsmodell und/oder die dünnbesetzte Karte 800 aufgenommen zu werden.
  • Die Identifikation von mindestens einem Orientierungspunkt kann eine Position des mindestens einen Orientierungspunkts beinhalten. Die Position des Orientierungspunkts kann basierend auf Positionsmessungen bestimmt werden, die unter Verwendung von Sensorsystemen (z. B. globalen Positionsbestimmungssystemen, trägheitsbasierten Positionsbestimmungssystemen, Orientierungspunkt-Bake usw.) durchgeführt werden, die mit der Vielzahl von Fahrzeugen 1205, 1210, 1215, 1220 und 1225 assoziiert sind. In einigen Ausführungsformen kann die Position des Orientierungspunkts durch Mitteln der Positionsmessungen bestimmt werden, die durch Sensorsysteme an verschiedenen Fahrzeugen 1205, 1210, 1215, 1220 und 1225 durch mehrere Fahrten detektiert, gesammelt oder empfangen werden. Zum Beispiel können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 Positionsmessungsdaten an den Server 1230 übertragen, der die Positionsmessungen mitteln und die gemittelte Positionsmessung als die Position des Orientierungspunkts verwenden kann. Die Position des Orientierungspunkts kann durch Messungen, die von Fahrzeugen in nachfolgenden Fahrten empfangen werden, kontinuierlich verfeinert werden.
  • Die Identifikation des Orientierungspunkts kann eine Größe des Orientierungspunkts beinhalten. Der Prozessor, der an einem Fahrzeug (z. B. 1205) bereitgestellt ist, kann die physische Größe des Orientierungspunkts basierend auf der Analyse der Bilder schätzen. Der Server 1230 kann mehrere Schätzungen der physischen Größe desselben Orientierungspunkts von verschiedenen Fahrzeugen über verschiedene Fahrten empfangen. Der Server 1230 kann die verschiedenen Schätzungen mitteln, um zu einer physischen Größe für den Orientierungspunkt zu gelangen, und diese Orientierungspunktgröße im Straßenmodell speichern. Die Schätzung der physischen Größe kann verwendet werden, um ferner eine Entfernung vom Fahrzeug zum Orientierungspunkt zu bestimmen oder zu schätzen. Die Entfernung zum Orientierungspunkt kann basierend auf der aktuellen Geschwindigkeit des Fahrzeugs und einem Ausdehnungsmaßstab basierend auf der Position des Orientierungspunkts, der in den Bildern erscheint, in Bezug auf den Ausdehnungsfokus der Kamera geschätzt werden. Zum Beispiel kann die Entfernung zum Orientierungspunkt durch Z = V*dt*R/D geschätzt werden, wobei V die Geschwindigkeit des Fahrzeugs ist, R die Entfernung im Bild vom Orientierungspunkt zum Zeitpunkt t1 bis zum Ausdehnungsfokus ist und D die Änderung der Entfernung für den Orientierungspunkt im Bild von t1 bis t2 ist. dt repräsentiert (t2-tl). Zum Beispiel kann die Entfernung zum Orientierungspunkt durch Z = V*dt*R/D geschätzt werden, wobei V die Geschwindigkeit des Fahrzeugs ist, R die Entfernung im Bild zwischen dem Orientierungspunkt und dem Ausdehnungsfokus ist, dt ein Zeitintervall ist und D die Bildverschiebung des Orientierungspunkts entlang der Epipolarlinie ist. Andere Gleichungen, die der obigen Gleichung entsprechen, wie z. B. Z = V*ω/Δω, können zum Schätzen der Entfernung zum Orientierungspunkt verwendet werden. Hier ist V die Fahrzeuggeschwindigkeit, ω ist eine Bildlänge (wie die Objektbreite) und Δω ist die Änderung dieser Bildlänge in einer Zeiteinheit.
  • Wenn die physische Größe des Orientierungspunkts bekannt ist, kann die Entfernung zum Orientierungspunkt auch basierend auf der folgenden Gleichung bestimmt werden: Z = f*W/ω, wobei f die Brennweite ist, W die Größe des Orientierungspunkts (z. B. Höhe oder Breite) ist, ω ist die Anzahl von Pixeln, wenn der Orientierungspunkt das Bild verlässt. Aus der obigen Gleichung kann eine Änderung der Entfernung Z unter Verwendung von ΔZ = f*W*Δω/ω2 + f*ΔW/ω berechnet werden, wobei ΔW durch Mitteln auf null abfällt und wobei Δω die Anzahl von Pixeln ist, die eine Begrenzungsrahmengenauigkeit im Bild darstellen. Ein Wert, der die physische Größe des Orientierungspunkts schätzt, kann durch Mitteln mehrerer Beobachtungen auf der Serverseite berechnet werden. Der resultierende Fehler bei der Entfernungsschätzung kann sehr klein sein. Es gibt zwei Fehlerquellen, die auftreten können, wenn die obige Formel verwendet wird, nämlich ΔW und Δω. Ihr Beitrag zum Entfernungsfehler wird durch ΔZ = f*W*Δω/ω2 + f*/ΔW/ω gegeben. ΔW fällt jedoch durch Mitteln auf null ab; daher wird ΔZ durch Δω bestimmt (z. B. die Ungenauigkeit des Begrenzungsrahmens im Bild).
  • Für Orientierungspunkte unbekannter Abmessungen kann die Entfernung zum Orientierungspunkt durch Verfolgen von Merkmalspunkten auf dem Orientierungspunkt zwischen aufeinanderfolgenden Rahmen geschätzt werden. Zum Beispiel können bestimmte Merkmale, die auf einem Geschwindigkeitsbegrenzungszeichen erscheinen, zwischen zwei oder mehr Einzelbildern verfolgt werden. Basierend auf diesen verfolgten Merkmalen kann eine Entfernungsverteilung pro Merkmalspunkt erzeugt werden. Die Entfernungsschätzung kann aus der Entfernungsverteilung extrahiert werden. Zum Beispiel kann die häufigste Entfernung, die in der Entfernungsverteilung erscheint, als die Entfernungsschätzung verwendet werden. Als ein anderes Beispiel kann der Durchschnitt der Entfernungsverteilung als die Entfernungsschätzung verwendet werden.
  • 13 veranschaulicht ein beispielhaftes Straßennavigationsmodell für autonome Fahrzeuge, das durch eine Vielzahl von dreidimensionalen Splines 1301, 1302 und 1303 repräsentiert wird. Die in 13 gezeigten Kurven 1301, 1302 und 1303 dienen nur zur Veranschaulichung. Jeder Spline kann ein oder mehrere dreidimensionale Polynome beinhalten, die eine Vielzahl von Datenpunkten 1310 verbinden. Jedes Polynom kann ein Polynom erster Ordnung, ein Polynom zweiter Ordnung, ein Polynom dritter Ordnung oder eine Kombination beliebiger geeigneter Polynome mit unterschiedlichen Ordnungen sein. Jeder Datenpunkt 1310 kann mit den Navigationsinformationen assoziiert sein, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden. In einigen Ausführungsformen kann jeder Datenpunkt 1310 mit Daten assoziiert sein, die sich auf Orientierungspunkte (z. B. Größe, Ort und Identifikationsinformationen von Orientierungspunkten) und/oder Straßensignaturprofile (z. B. Straßengeometrie, Straßenrauhigkeitsprofil, Straßenkrümmungsprofil, Straßenbreitenprofil) beziehen. In einigen Ausführungsformen können einige Datenpunkte 1310 mit Daten assoziiert sein, die sich auf Orientierungspunkte beziehen, und andere können mit Daten assoziiert sein, die sich auf Straßensignaturprofile beziehen.
  • 14 veranschaulicht Ausgangsortsdaten 1410 (z. B. GPS-Daten), die von fünf getrennten Fahrten empfangen werden. Eine Fahrt kann von einer anderen Fahrt getrennt sein, wenn sie gleichzeitig von getrennten Fahrzeugen, zu getrennten Zeiten vom selben Fahrzeug oder zu getrennten Zeiten von getrennten Fahrzeugen befahren wurde. Um Fehler in den Ortsdaten 1410 und für unterschiedliche Orte von Fahrzeugen innerhalb derselben Fahrspur zu berücksichtigen (z. B. kann ein Fahrzeug näher an der linken Seite einer Fahrspur fahren als ein anderes), kann der Server 1230 ein Kartenskelett 1420 unter Verwendung einer oder mehrerer statistischer Techniken erzeugen, um zu bestimmen, ob Variationen in den Ausgangsortsdaten 1410 tatsächliche Abweichungen oder statistische Fehler repräsentieren. Jeder Weg innerhalb des Skeletts 1420 kann zurück zu den Ausgangsdaten 1410, die den Weg gebildet haben, verknüpft werden. Zum Beispiel ist der Weg zwischen A und B innerhalb des Skeletts 1420 mit den Ausgangsdaten 1410 von den Fahrten 2, 3, 4 und 5, aber nicht von der Fahrt 1 verknüpft. Das Skelett 1420 ist möglicherweise nicht detailliert genug, um verwendet zu werden, um ein Fahrzeug zu navigieren (z. B. weil es Fahrten von mehreren Fahrspuren auf derselben Straße im Gegensatz zu den oben beschriebenen Splines kombiniert), kann aber nützliche topologische Informationen bereitstellen und kann verwendet werden, um Kreuzungen zu definieren.
  • 15 veranschaulicht ein Beispiel, durch das zusätzliche Details für eine dünnbesetzte Karte innerhalb eines Segments eines Kartenskeletts (z. B. Segment A bis B innerhalb des Skeletts 1420) erzeugt werden können. Wie in 15 gezeigt, können die Daten (z. B. Eigenbewegungsdaten, Straßenmarkierungsdaten und dergleichen) als eine Funktion der Position S (oder S1 oder S2) entlang der Fahrt gezeigt werden. Der Server 1230 kann Orientierungspunkte für die dünnbesetzte Karte identifizieren, indem er eindeutige Übereinstimmungen zwischen den Orientierungspunkten 1501, 1503 und 1505 der Fahrt 1510 und den Orientierungspunkten 1507 und 1509 der Fahrt 1520 identifiziert. Ein solcher Abgleichalgorithmus kann zur Identifikation der Orientierungspunkte 1511, 1513 und 1515 führen. Ein Fachmann würde jedoch erkennen, dass andere Abgleichalgorithmen verwendet werden können. Zum Beispiel kann eine Wahrscheinlichkeitsoptimierung anstelle von oder in Kombination mit einer eindeutigen Übereinstimmung verwendet werden. Der Server 1230 kann die Fahrten längs ausrichten, um die abgeglichenen Orientierungspunkte auszurichten. Zum Beispiel kann der Server 1230 eine Fahrt (z. B. die Fahrt 1520) als eine Referenzfahrt auswählen und dann die andere(n) Fahrt(en) (z. B. die Fahrt 1510) zur Ausrichtung verschieben und/oder elastisch dehnen.
  • 16 zeigt ein Beispiel von ausgerichteten Orientierungspunktdaten zur Verwendung in einer dünnbesetzten Karte. Im Beispiel aus 16 umfasst der Orientierungspunkt 1610 ein Straßenschild. Das Beispiel aus 16 zeigt ferner Daten von einer Vielzahl von Fahrten 1601, 1603, 1605, 1607, 1609, 1611 und 1613. Im Beispiel aus 16 bestehen die Daten von der Fahrt 1613 aus einem „Geister“-Orientierungspunkt, und der Server 1230 kann sie als solche identifizieren, da keine der Fahrten 1601, 1603, 1605, 1607, 1609 und 1611 eine Identifikation eines Orientierungspunkts in der Nähe des identifizierten Orientierungspunkts in der Fahrt 1613 beinhalten. Dementsprechend kann der Server 1230 potenzielle Orientierungspunkte akzeptieren, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt erscheint, zu Bildern, in denen der Orientierungspunkt nicht erscheint, einen Schwellenwert überschreitet, und/oder potenzielle Orientierungspunkte ablehnen, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht erscheint, zu Bildern, in denen der Orientierungspunkt erscheint, einen Schwellenwert überschreitet.
  • 17 zeigt ein System 1700 zum Erzeugen von Fahrtdaten, das verwendet werden kann, um eine dünnbesetzte Karte zu crowdsourcen. Wie in 17 gezeigt, kann das System 1700 eine Kamera 1701 und eine Lokalisierungsvorrichtung 1703 (z. B. einen GPS-Positionsgeber) beinhalten. Die Kamera 1701 und die Lokalisierungsvorrichtung 1703 können an einem Fahrzeug (z. B. einem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225) montiert sein. Die Kamera 1701 kann eine Vielzahl von Daten mehrerer Typen erzeugen, z. B. Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder dergleichen. Die Kameradaten und Ortsdaten können in Fahrtsegmente 1705 segmentiert werden. Zum Beispiel können die Fahrtsegmente 1705 jeweils Kameradaten und Ortsdaten von weniger als 1 km Fahrt aufweisen.
  • In einigen Ausführungsformen kann das System 1700 Redundanzen in den Fahrtsegmenten 1705 eliminieren. Wenn zum Beispiel ein Orientierungspunkt in mehreren Bildern von der Kamera 1701 erscheint, kann das System 1700 die redundanten Daten entfernen, sodass die Fahrtsegmente 1705 nur eine Kopie des Orts und irgendwelche Metadaten, die sich auf den Orientierungspunkt beziehen, enthalten. Als weiteres Beispiel, wenn eine Fahrspur-Markierung in mehreren Bildern von der Kamera 1701 erscheint, kann das System 1700 die redundanten Daten entfernen, sodass die Fahrtsegmente 1705 nur eine Kopie des Orts und irgendwelche Metadaten, die sich auf die Fahrspur-Markierung beziehen, enthalten.
  • Das System 1700 beinhaltet auch einen Server (z. B. Server 1230). Der Server 1230 kann Fahrtsegmente 1705 vom Fahrzeug empfangen und die Fahrtsegmente 1705 in eine einzelne Fahrt 1707 rekombinieren. Eine derartige Anordnung kann reduzierte Bandbreitenanforderungen beim Übertragen von Daten zwischen dem Fahrzeug und dem Server ermöglichen, während es dem Server auch ermöglicht wird, Daten, die sich auf eine gesamte Fahrt beziehen, zu speichern.
  • 18 zeigt das System 1700 aus 17, das ferner zum Crowdsourcing einer dünnbesetzten Karte konfiguriert ist. Wie in 17 beinhaltet das System 1700 das Fahrzeug 1810, das Fahrtdaten beispielsweise unter Verwendung einer Kamera (die z. B. Eigenbewegungsdaten, Verkehrszeichen-Daten, Straßendaten oder dergleichen erzeugt) und einer Lokalisierungsvorrichtung (z. B. eines GPS-Positionsgebers) erfasst. Wie in 17 segmentiert das Fahrzeug 1810 die gesammelten Daten in Fahrtsegmente (in 18 als „DS11“, „DS21“, „DSN1“ dargestellt). Der Server 1230 empfängt dann die Fahrtsegmente und rekonstruiert eine Fahrt (in 18 als „Fahrt 1“ dargestellt) aus den empfangenen Segmenten.
  • Wie ferner in 18 dargestellt, empfängt das System 1700 auch Daten von zusätzlichen Fahrzeugen. Beispielsweise erfasst das Fahrzeug 1820 auch Fahrtdaten beispielsweise unter Verwendung einer Kamera (die z. B. Eigenbewegungsdaten, Verkehrszeichen-Daten, Straßendaten oder dergleichen erzeugt) und einer Lokalisierungsvorrichtung (z. B. eines GPS-Positionsgebers). Ähnlich wie das Fahrzeug 1810 segmentiert das Fahrzeug 1820 die gesammelten Daten in Fahrtsegmente (in 18 als „DS1 2“, „DS2 2“, „DSN 2“ dargestellt). Der Server 1230 empfängt dann die Fahrtsegmente und rekonstruiert eine Fahrt (in 18 als „Fahrt 2“ dargestellt) aus den empfangenen Segmenten. Es kann eine beliebige Anzahl von zusätzlichen Fahrzeugen verwendet werden. Beispielsweise beinhaltet 18 auch „AUTO N“, das Fahrtdaten erfasst, sie in Fahrtsegmente segmentiert (in 18 als „DS1 N“, „DS2 N“, „DSN N“ dargestellt) und sie zur Rekonstruktion in eine Fahrt (in 18 als „Fahrt N“ dargestellt) an den Server 1230 sendet.
  • Wie in 18 dargestellt, kann der Server 1230 eine dünnbesetzte Karte (als „KARTE“ dargestellt) unter Verwendung der rekonstruierten Fahrten (z. B. „Fahrt 1“, „Fahrt 2“ und „Fahrt N“) konstruieren, die von einer Vielzahl von Fahrzeugen (z. B. „AUTO 1“ (auch als Fahrzeug 1810 bezeichnet), „AUTO 2“ (auch als Fahrzeug 1820 bezeichnet) und „AUTO N“) gesammelt werden.
  • 19 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 1900 zum Erzeugen einer dünnbesetzten Karte zur autonomen Fahrzeugnavigation entlang einem Straßensegment zeigt. Der Prozess 1900 kann durch eine oder mehrere Verarbeitungsvorrichtungen durchgeführt werden, die im Server 1230 enthalten sind.
  • Der Prozess 1900 kann das Empfangen einer Vielzahl von Bildern beinhalten, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment überqueren (Schritt 1905). Der Server 1230 kann Bilder von Kameras empfangen, die in einem oder mehreren der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 enthalten sind. Zum Beispiel kann die Kamera 122 ein oder mehrere Bilder der Umgebung erfassen, die das Fahrzeug 1205 umgibt, wenn das Fahrzeug 1205 entlang dem Straßensegment 1200 fährt. In einigen Ausführungsformen kann der Server 1230 auch entfernte Bilddaten empfangen, die Redundanzen aufweisen, die durch einen Prozessor am Fahrzeug 1205 eliminiert wurden, wie oben in Bezug auf 17 erörtert.
  • Der Prozess 1900 kann ferner das Identifizieren, basierend auf der Vielzahl von Bildern, mindestens einer Linienrepräsentation eines Merkmals der Straßenoberfläche, das sich entlang des Straßensegments erstreckt, beinhalten (Schritt 1910). Jede Linienrepräsentation kann einen Pfad entlang des Straßensegments repräsentieren, der im Wesentlichen dem Merkmal der Straßenoberfläche entspricht. Zum Beispiel kann der Server 1230 die Umgebungsbilder, die von der Kamera 122 empfangen werden, analysieren, um eine Straßenkante oder eine Fahrspur-Markierung zu identifizieren und eine Fahrtrajektorie entlang des Straßensegments 1200 zu bestimmen, die mit der Straßenkanten- oder Fahrspur-Markierung assoziiert ist. In einigen Ausführungsformen kann die Trajektorie (oder Linienrepräsentation) einen Spline, eine Polynomrepräsentation oder eine Kurve beinhalten. Der Server 1230 kann die Fahrtrajektorie des Fahrzeugs 1205 basierend auf Kamera-Eigenbewegungen (z. B. dreidimensionale Translation und/oder dreidimensionale Rotationsbewegungen) bestimmen, die bei Schritt 1905 empfangen werden.
  • Der Prozess 1900 kann auch das Identifizieren, basierend auf der Vielzahl von Bildern, einer Vielzahl von Orientierungspunkten beinhalten, die dem Straßensegment zugeordnet sind (Schritt 1910). Zum Beispiel kann der Server 1230 die Umgebungsbilder, die von der Kamera 122 empfangen werden, analysieren, um einen oder mehrere Orientierungspunkte, wie etwa das Straßenschild entlang des Straßensegments 1200, zu identifizieren. Der Server 1230 kann die Orientierungspunkte unter Verwendung der Analyse der Vielzahl von Bildern identifizieren, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment überqueren. Um Crowdsourcing zu ermöglichen, kann die Analyse Regeln bezüglich des Akzeptierens und Ablehnens von möglichen Orientierungspunkten beinhalten, die dem Straßensegment zugeordnet sind. Zum Beispiel kann die Analyse das Akzeptieren potenzieller Orientierungspunkte beinhalten, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt erscheint, zu Bildern, in denen der Orientierungspunkt nicht erscheint, einen Schwellenwert überschreitet, und/oder das Ablehnen potenzieller Orientierungspunkte, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht erscheint, zu Bildern, in denen der Orientierungspunkt erscheint, einen Schwellenwert überschreitet.
  • Der Prozess 1900 kann andere Vorgänge oder Schritte beinhalten, die durch den Server 1230 durchgeführt werden. Zum Beispiel können die Navigationsinformationen eine Zieltrajektorie beinhalten, damit Fahrzeuge entlang eines Straßensegments fahren, und der Prozess 1900 kann das Clustern, durch den Server 1230, von Fahrzeugtrajektorien, die sich auf mehrere Fahrzeuge beziehen, die auf dem Straßensegment fahren, und das Bestimmen der Zieltrajektorie basierend auf den geclusterten Fahrzeugtrajektorien beinhalten, wie nachfolgend ausführlicher erörtert wird. Das Clustern von Fahrzeugtrajektorien kann das Clustern, durch den Server 1230, der mehreren Trajektorien, die sich auf die Fahrzeuge beziehen, die auf dem Straßensegment fahren, in eine Vielzahl von Clustern basierend auf mindestens einem von der absoluten Fahrtrichtung der Fahrzeuge oder der Fahrspurzuweisung der Fahrzeuge beinhalten. Das Erzeugen der Zieltrajektorie kann das Mitteln, durch den Server 1230, der geclusterten Trajektorien beinhalten. Als weiteres Beispiel kann der Prozess 1900 das Ausrichten von Daten beinhalten, die in Schritt 1905 empfangen werden. Andere Prozesse oder Schritte, die durch den Server 1230 durchgeführt werden, wie vorstehend beschrieben, können ebenfalls im Prozess 1900 enthalten sein.
  • Die offenbarten Systeme und Verfahren können andere Merkmale beinhalten. Zum Beispiel können die offenbarten Systeme lokale Koordinaten anstelle von globalen Koordinaten verwenden. Für die autonome Fahrt können einige Systeme Daten in Weltkoordinaten darstellen. Zum Beispiel können Längen- und Breitenkoordinaten auf der Erdoberfläche verwendet werden. Um die Karte zum Lenken zu verwenden, kann das Host-Fahrzeug seine Position und Ausrichtung relativ zur Karte bestimmen. Es erscheint natürlich, eine GPS-Vorrichtung an Bord zu verwenden, um das Fahrzeug auf der Karte zu positionieren und um die Rotationstransformation zwischen dem Karosseriereferenzrahmen und dem Weltreferenzrahmen (z. B. Norden, Osten und Unten) zu finden. Sobald der Karosseriereferenzrahmen mit dem Kartenreferenzrahmen ausgerichtet ist, kann die gewünschte Route im Karosseriereferenzrahmen ausgedrückt werden und die Lenkbefehle können berechnet oder erzeugt werden.
  • Die offenbarten Systeme und Verfahren können eine autonome Fahrzeugnavigation (z. B. Lenksteuerung) mit Modellen mit geringem Fußabdruck ermöglichen, die durch die autonomen Fahrzeuge selbst ohne die Hilfe von teurer Vermessungsausrüstung gesammelt werden können. Um die autonome Navigation (z. B. Lenkanwendungen) zu unterstützen, kann das Straßenmodell eine dünnbesetzte Karte mit der Geometrie der Straße, ihrer Fahrspurstruktur und Orientierungspunkten beinhalten, die verwendet werden können, um den Ort oder die Position von Fahrzeugen entlang einer im Modell enthaltenen Trajektorie zu bestimmen. Wie vorstehend erörtert, kann die Erzeugung der dünnbesetzten Karte durch einen entfernten Server durchgeführt werden, der mit Fahrzeugen kommuniziert, die auf der Straße fahren und der Daten von den Fahrzeugen empfängt. Die Daten können erfasste Daten, Trajektorien, die basierend auf den erfassten Daten rekonstruiert wurden, und/oder empfohlene Trajektorien beinhalten, die modifizierte rekonstruierte Trajektorien darstellen können. Wie nachfolgend erörtert, kann der Server das Modell zurück an die Fahrzeuge oder andere Fahrzeuge übertragen, die später auf der Straße fahren, um die autonome Navigation zu unterstützen.
  • 20 veranschaulicht ein Blockdiagramm des Servers 1230. Der Server 1230 kann eine Kommunikationseinheit 2005 beinhalten, die sowohl Hardwarekomponenten (z. B. Kommunikationssteuerschaltungen, Schalter und Antenne) als auch Softwarekomponenten (z. B. Kommunikationsprotokolle, Computercodes) beinhalten kann. Zum Beispiel kann die Kommunikationseinheit 2005 mindestens eine Netzwerkschnittstelle beinhalten. Der Server 1230 kann mit den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 über die Kommunikationseinheit 2005 kommunizieren. Zum Beispiel kann der Server 1230 über die Kommunikationseinheit 2005 Navigationsinformationen empfangen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 übertragen werden. Der Server 1230 kann über die Kommunikationseinheit 2005 das Straßennavigationsmodell des autonomen Fahrzeugs an ein oder mehrere autonome Fahrzeuge verteilen.
  • Der Server 1230 kann mindestens ein nichtflüchtiges Speichermedium 2010 beinhalten, wie etwa eine Festplatte, eine Compact Disc, ein Band usw. Die Speichervorrichtung 1410 kann dazu konfiguriert sein, Daten zu speichern, wie etwa Navigationsinformationen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 und/oder dem Straßennavigationsmodell des autonomen Fahrzeugs empfangen werden, die der Server 1230 basierend auf den Navigationsinformationen erzeugt. Die Speichervorrichtung 2010 kann dazu konfiguriert sein, beliebige andere Informationen zu speichern, wie etwa eine dünnbesetzte Karte (z. B. die dünnbesetzte Karte 800, die vorstehend in Bezug auf 8 erörtert wurde).
  • Zusätzlich zu oder anstelle der Speichervorrichtung 2010 kann der Server 1230 einen Speicher 2015 beinhalten. Der Speicher 2015 kann dem Speicher 140 oder 150 ähnlich oder davon verschieden sein. Der Speicher 2015 kann ein nichtflüchtiger Speicher sein, wie etwa ein Flash-Speicher, ein Direktzugriffsspeicher usw. Der Speicher 2015 kann dazu konfiguriert sein, Daten zu speichern, wie etwa Computercodes oder Anweisungen, die durch einen Prozessor (z. B. den Prozessor 2020) ausführbar sind, Kartendaten (z. B. Daten der dünnbesetzten Karte 800), das Straßennavigationsmodell des autonomen Fahrzeugs und/oder Navigationsinformationen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden.
  • Der Server 1230 kann mindestens eine Verarbeitungsvorrichtung 2020 beinhalten, die dazu konfiguriert ist, Computercodes oder Anweisungen, die im Speicher 2015 gespeichert sind, auszuführen, um verschiedene Funktionen durchzuführen. Zum Beispiel kann die Verarbeitungsvorrichtung 2020 die Navigationsinformationen analysieren, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden, und das Straßennavigationsmodell des autonomen Fahrzeugs basierend auf der Analyse erzeugen. Die Verarbeitungsvorrichtung 2020 kann die Kommunikationseinheit 1405 steuern, um das Straßennavigationsmodell des autonomen Fahrzeugs an ein oder mehrere autonome Fahrzeuge zu verteilen (z. B. ein oder mehrere der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 oder ein beliebiges Fahrzeug, das zu einem späteren Zeitpunkt auf dem Straßensegment 1200 fährt). Die Verarbeitungsvorrichtung 2020 kann dem Prozessor 180, 190 oder der Verarbeitungseinheit 110 ähnlich oder davon verschieden sein.
  • 21 veranschaulicht ein Blockdiagramm des Speichers 2015, der Computercode oder Anweisungen zum Durchführen eines oder mehrerer Vorgänge zum Erzeugen eines Straßennavigationsmodells zur Verwendung bei der autonomen Fahrzeugnavigation speichern kann. Wie in 21 gezeigt, kann der Speicher 2015 ein oder mehrere Module zum Durchführen der Vorgänge zum Verarbeiten von Fahrzeugnavigationsinformationen speichern. Zum Beispiel kann der Speicher 2015 ein Modellerzeugungsmodul 2105 und ein Modellverteilungsmodul 2110 beinhalten. Der Prozessor 2020 kann die Anweisungen ausführen, die in einem beliebigen der Module 2105 und 2110 gespeichert sind, die im Speicher 2015 enthalten sind.
  • Das Modellerzeugungsmodul 2105 kann Anweisungen speichern, die, wenn sie durch den Prozessor 2020 ausgeführt werden, mindestens einen Abschnitt eines Straßennavigationsmodells eines autonomen Fahrzeugs für ein gemeinsames Straßensegment (z. B. das Straßensegment 1200) basierend auf Navigationsinformationen erzeugen können, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden. Zum Beispiel kann der Prozessor 2020 beim Erzeugen des Straßennavigationsmodells des autonomen Fahrzeugs Fahrzeugtrajektorien entlang dem gemeinsamen Straßensegment 1200 in verschiedene Cluster clustern. Der Prozessor 2020 kann eine Zieltrajektorie entlang dem gemeinsamen Straßensegment 1200 basierend auf den geclusterten Fahrzeugtrajektorien für jedes der verschiedenen Cluster bestimmen. Ein solcher Vorgang kann das Finden einer mittleren oder durchschnittlichen Trajektorie der geclusterten Fahrzeugtrajektorien (z. B. durch Mitteln von Daten, die die geclusterten Fahrzeugtrajektorien darstellen) in jedem Cluster beinhalten. In einigen Ausführungsformen kann die Zieltrajektorie mit einer einzelnen Fahrspur des gemeinsamen Straßensegments 1200 assoziiert sein.
  • Das Straßenmodell und/oder die dünnbesetzte Karte können Trajektorien speichern, die mit einem Straßensegment assoziiert sind. Diese Trajektorien können als Zieltrajektorien bezeichnet werden, die autonomen Fahrzeugen für die autonome Navigation bereitgestellt werden. Die Zieltrajektorien können von mehreren Fahrzeugen empfangen werden oder können basierend auf tatsächlichen Trajektorien oder empfohlenen Trajektorien (tatsächlichen Trajektorien mit einigen Modifikationen) erzeugt werden, die von mehreren Fahrzeugen empfangen werden. Die Zieltrajektorien, die im Straßenmodell oder der dünnbesetzten Karte enthalten sind, können kontinuierlich mit neuen Trajektorien aktualisiert (z. B. gemittelt) werden, die von anderen Fahrzeugen empfangen werden.
  • Fahrzeuge, die auf einem Straßensegment fahren, können Daten durch verschiedene Sensoren sammeln. Die Daten können Orientierungspunkte, Straßensignaturprofil, Fahrzeugbewegung (z. B. Beschleunigungsmesserdaten, Geschwindigkeitsdaten), Fahrzeugposition (z. B. GPS-Daten) beinhalten und können entweder die tatsächlichen Trajektorien selbst rekonstruieren oder die Daten an einen Server übertragen, der die tatsächlichen Trajektorien für die Fahrzeuge rekonstruiert. In einigen Ausführungsformen können die Fahrzeuge Daten übertragen, die sich auf eine Trajektorie (z. B. eine Kurve in einem beliebigen Referenzrahmen), Orientierungspunktdaten und Fahrspurzuweisung entlang des Fahrwegs an den Server 1230 beziehen. Verschiedene Fahrzeuge, die entlang desselben Straßensegments bei mehreren Fahrten fahren, können unterschiedliche Trajektorien aufweisen. Der Server 1230 kann Routen oder Trajektorien, die mit jeder Fahrspur assoziiert sind, aus den Trajektorien identifizieren, die von Fahrzeugen durch einen Clustering-Prozess empfangen werden.
  • 22 veranschaulicht einen Prozess zum Clustern von Fahrzeugtrajektorien, die mit den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 assoziiert sind, zum Bestimmen einer Zieltrajektorie für das gemeinsame Straßensegment (z. B. Straßensegment 1200). Die Zieltrajektorie oder eine Vielzahl von Zieltrajektorien, die aus dem Clustering-Prozess bestimmt werden, können im Straßennavigationsmodell oder der dünnbesetzten Karte 800 des autonomen Fahrzeugs beinhaltet sein. In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225, die entlang dem Straßensegment 1200 fahren, eine Vielzahl von Trajektorien 2200 an den Server 1230 übertragen. In einigen Ausführungsformen kann der Server 1230 Trajektorien basierend auf Orientierungspunkt-, Straßengeometrie- und Fahrzeugbewegungsinformationen erzeugen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden. Um das Straßennavigationsmodell des autonomen Fahrzeugs zu erzeugen, kann der Server 1230 Fahrzeugtrajektorien 1600 in eine Vielzahl von Clustern 2205, 2210, 2215, 2220, 2225 und 2230 clustern, wie in 22 gezeigt.
  • Das Clustern kann unter Verwendung verschiedener Kriterien durchgeführt werden. In einigen Ausführungsformen können alle Fahrten in einem Cluster in Bezug auf die absolute Fahrtrichtung entlang dem Straßensegment 1200 ähnlich sein. Die absolute Fahrtrichtung kann aus GPS-Signalen erhalten werden, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden. In einigen Ausführungsformen kann die absolute Fahrtrichtung unter Verwendung von Koppelnavigation erhalten werden. Koppelnavigation kann, wie ein Fachmann verstehen würde, verwendet werden, um die aktuelle Position und damit die Fahrtrichtung der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 zu bestimmen, indem zuvor bestimmte Position, geschätzte Geschwindigkeit usw. verwendet werden. Trajektorien, die durch die absolute Fahrtrichtung geclustert sind, können zum Identifizieren von Routen entlang den Fahrbahnen nützlich sein.
  • In einigen Ausführungsformen können alle Fahrten in einem Cluster in Bezug auf die Fahrspurzuweisung (z. B. in derselben Fahrspur vor und nach einer Kreuzung) entlang der Fahrt auf dem Straßensegment 1200 ähnlich sein. Trajektorien, die durch die Fahrspurzuweisung geclustert sind, können zum Identifizieren von Fahrspuren entlang den Fahrbahnen nützlich sein. In einigen Ausführungsformen können beide Kriterien (z. B. absolute Fahrtrichtung und Fahrspurzuweisung) zum Clustern verwendet werden.
  • In jedem Cluster 2205, 2210, 2215, 2220, 2225 und 2230 können Trajektorien gemittelt werden, um eine Zieltrajektorie zu erhalten, die mit dem spezifischen Cluster assoziiert ist. Zum Beispiel können die Trajektorien von mehreren Fahrten, die mit demselben Fahrspurcluster assoziiert sind, gemittelt werden. Die gemittelte Trajektorie kann eine Zieltrajektorie sein, die mit einer spezifischen Fahrspur assoziiert ist. Um ein Cluster von Trajektorien zu mitteln, kann der Server 1230 einen Referenzrahmen einer beliebigen Trajektorie C0 auswählen. Für alle anderen Trajektorien (C1,..., Cn) kann der Server 1230 eine starre Transformation finden, die C1 auf C0 abbildet, wobei i = 1, 2,..., n, wobei n eine positive ganze Zahl ist, die der Gesamtzahl der im Cluster enthaltenen Trajektorien entspricht. Der Server 1230 kann eine mittlere Kurve oder Trajektorie im C0-Referenzrahmen berechnen.
  • In einigen Ausführungsformen können die Orientierungspunkte einen Bogenlängenabgleich zwischen verschiedenen Fahrten definieren, der zur Ausrichtung von Trajektorien mit Fahrspuren verwendet werden kann. In einigen Ausführungsformen können Fahrspurmarkierungen vor und nach einer Kreuzung zur Ausrichtung von Trajektorien mit Fahrspuren verwendet werden.
  • Um Fahrspuren aus den Trajektorien zusammenzusetzen, kann der Server 1230 einen Referenzrahmen einer beliebigen Fahrspur auswählen. Der Server 1230 kann teilweise überlappende Fahrspuren auf den ausgewählten Referenzrahmen abbilden. Der Server 1230 kann die Abbildung fortsetzen, bis sich alle Fahrspuren im gleichen Referenzrahmen befinden. Fahrspuren, die sich nebeneinander befinden, können so ausgerichtet werden, als ob sie die gleiche Fahrspur wären, und später können sie lateral verschoben werden.
  • Orientierungspunkte, die entlang des Straßensegments erkannt werden, können auf den gemeinsamen Referenzrahmen abgebildet werden, zuerst auf der Fahrspurebene, dann auf der Kreuzungsebene. Zum Beispiel können die gleichen Orientierungspunkte mehrmals von mehreren Fahrzeugen in mehreren Fahrten erkannt werden. Die Daten bezüglich der gleichen Orientierungspunkte, die in verschiedenen Fahrten empfangen werden, können leicht unterschiedlich sein. Solche Daten können gemittelt und auf den gleichen Referenzrahmen abgebildet werden, wie etwa den C0-Referenzrahmen. Zusätzlich oder alternativ kann die Varianz der Daten desselben Orientierungspunkts, die in mehreren Fahrten empfangen werden, berechnet werden.
  • In einigen Ausführungsformen kann jede Fahrspur des Straßensegments 120 mit einer Zieltrajektorie und bestimmten Orientierungspunkten assoziiert sein. Die Zieltrajektorie oder eine Vielzahl solcher Zieltrajektorien kann im Straßennavigationsmodell des autonomen Fahrzeugs beinhaltet sein, das später von anderen autonomen Fahrzeugen verwendet werden kann, die entlang demselben Straßensegment 1200 fahren. Orientierungspunkte, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 identifiziert werden, während die Fahrzeuge entlang des Straßensegments 1200 fahren, können in Assoziation mit der Zieltrajektorie aufgezeichnet werden. Die Daten der Zieltrajektorien und Orientierungspunkte können kontinuierlich oder periodisch mit neuen Daten aktualisiert werden, die von anderen Fahrzeugen in nachfolgenden Fahrten empfangen werden.
  • Zur Lokalisierung eines autonomen Fahrzeugs können die offenbarten Systeme und Verfahren einen erweiterten Kalman-Filter verwenden. Der Ort des Fahrzeugs kann basierend auf dreidimensionalen Positionsdaten und/oder dreidimensionalen Orientierungsdaten, Vorhersage des zukünftigen Orts vor dem aktuellen Ort des Fahrzeugs durch Integration von Ego-Bewegung bestimmt werden. Die Lokalisierung des Fahrzeugs kann durch Bildbeobachtungen von Orientierungspunkten korrigiert oder angepasst werden. Wenn zum Beispiel das Fahrzeug einen Orientierungspunkt innerhalb eines Bilds detektiert, das von der Kamera erfasst wird, kann der Orientierungspunkt mit einem bekannten Orientierungspunkt verglichen werden, der innerhalb des Straßenmodells oder der dünnbesetzten Karte 800 gespeichert ist. Der bekannte Orientierungspunkt kann einen bekannten Ort (z. B. GPS-Daten) entlang einer Zieltrajektorie aufweisen, die im Straßenmodell und/oder der dünnbesetzten Karte 800 gespeichert ist. Basierend auf der aktuellen Geschwindigkeit und den Bildern des Orientierungspunkts kann die Entfernung vom Fahrzeug zum Orientierungspunkt geschätzt werden. Der Ort des Fahrzeugs entlang einer Zieltrajektorie kann basierend auf der Entfernung zum Orientierungspunkt und dem bekannten Ort des Orientierungspunkts (der im Straßenmodell oder der dünnbesetzten Karte 800 gespeichert ist) angepasst werden. Es kann angenommen werden, dass die Positions-/Ortsdaten des Orientierungspunkts (z. B. Mittelwerte von mehreren Fahrten), die im Straßenmodell und/oder der dünnbesetzten Karte 800 gespeichert sind, genau sind.
  • In einigen Ausführungsformen kann das offenbarte System ein Teilsystem mit geschlossener Schleife bilden, in dem die Schätzung des Orts mit sechs Freiheitsgraden des Fahrzeugs (z. B. dreidimensionale Positionsdaten plus dreidimensionale Orientierungsdaten) verwendet werden kann, um das autonome Fahrzeug zu navigieren (z. B. das Rad davon zu lenken), um einen gewünschten Punkt (z. B. 1,3 Sekunden davor im gespeicherten) zu erreichen. Im Gegenzug können Daten, die von der Lenkung und der tatsächlichen Navigation gemessen werden, verwendet werden, um den Ort mit sechs Freiheitsgraden zu schätzen.
  • In einigen Ausführungsformen können Masten entlang einer Straße, wie etwa Laternenpfosten und Strom- oder Kabellinienmasten, als Orientierungspunkte zum Lokalisieren der Fahrzeuge verwendet werden. Andere Orientierungspunkte, wie Verkehrszeichen, Ampeln, Pfeile auf der Straße, Stopplinien sowie statische Merkmale oder Signaturen eines Objekts entlang des Straßensegments können ebenfalls als Orientierungspunkte zum Lokalisieren des Fahrzeugs verwendet werden. Wenn Masten zur Lokalisierung verwendet werden, kann die x-Beobachtung der Masten (d. h. der Blickwinkel vom Fahrzeug) anstelle der y-Beobachtung (d. h. der Abstand zum Masten) verwendet werden, da die Böden der Masten verdeckt sein können und sie manchmal nicht auf der Straßenebene liegen.
  • 23 veranschaulicht ein Navigationssystem für ein Fahrzeug, das zur autonomen Navigation unter Verwendung einer gecrowdsourcten dünnbesetzten Karte verwendet werden kann. Zur Veranschaulichung wird das Fahrzeug als Fahrzeug 1205 referenziert. Das in 23 gezeigte Fahrzeug kann ein beliebiges anderes hierin offenbartes Fahrzeug sein, einschließlich beispielsweise der Fahrzeuge 1210, 1215, 1220 und 1225 sowie des in anderen Ausführungsformen gezeigten Fahrzeugs 200. Wie in 12 gezeigt, kann das Fahrzeug 1205 mit dem Server 1230 kommunizieren. Das Fahrzeug 1205 kann eine Bilderfassungsvorrichtung 122 (z. B. Kamera 122) beinhalten. Das Fahrzeug 1205 kann ein Navigationssystem 2300 beinhalten, das dazu konfiguriert ist, Navigationsführung für das Fahrzeug 1205 bereitzustellen, um auf einer Straße (z. B. Straßensegment 1200) zu fahren. Das Fahrzeug 1205 kann auch andere Sensoren beinhalten, wie beispielsweise einen Geschwindigkeitssensor 2320 und einen Beschleunigungsmesser 2325. Der Geschwindigkeitssensor 2320 kann dazu konfiguriert sein, die Geschwindigkeit des Fahrzeugs 1205 zu detektieren. Der Beschleunigungsmesser 2325 kann dazu konfiguriert sein, eine Beschleunigung oder Verzögerung des Fahrzeugs 1205 zu detektieren. Das in 23 gezeigte Fahrzeug 1205 kann ein autonomes Fahrzeug sein und das Navigationssystem 2300 kann zum Bereitstellen von Navigationsführung für autonomes Fahren verwendet werden. Alternativ kann das Fahrzeug 1205 auch ein nicht autonomes, vom Menschen gesteuertes Fahrzeug sein und das Navigationssystem 2300 kann weiterhin zum Bereitstellen von Navigationsführung verwendet werden.
  • Das Navigationssystem 2300 kann eine Kommunikationseinheit 2305 beinhalten, die dazu konfiguriert ist, mit dem Server 1230 über den Kommunikationspfad 1235 zu kommunizieren. Das Navigationssystem 2300 kann auch eine GPS-Einheit 2310 beinhalten, die dazu konfiguriert ist, GPS-Signale zu empfangen und zu verarbeiten. Das Navigationssystem 2300 kann ferner mindestens einen Prozessor 2315 beinhalten, der dazu konfiguriert ist, Daten zu verarbeiten, wie etwa GPS-Signale, Kartendaten von der dünnbesetzten Karte 800 (die auf einer Speichervorrichtung gespeichert sein können, die an Bord des Fahrzeugs 1205 bereitgestellt ist und/oder vom Server 1230 empfangen wird), Straßengeometrie, die von einem Straßenprofilsensor 2330 erfasst wird, Bilder, die von der Kamera 122 erfasst werden, und/oder ein autonomes Fahrzeugstraßennavigationsmodell, das vom Server 1230 empfangen wird. Der Straßenprofilsensor 2330 kann verschiedene Typen von Vorrichtungen zum Messen verschiedener Arten von Straßenprofilen beinhalten, wie etwa Straßenoberflächenrauhigkeit, Straßenbreite, Straßenhöhe, Straßenkrümmung usw. Zum Beispiel kann der Straßenprofilsensor 2330 eine Vorrichtung beinhalten, die die Bewegung einer Aufhängung des Fahrzeugs 2305 misst, um das Straßenrauhigkeitsprofil abzuleiten. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 Radarsensoren beinhalten, um den Abstand vom Fahrzeug 1205 zu den Straßenseiten (z. B. Barriere auf den Straßenseiten) zu messen, wodurch die Breite der Straße gemessen wird. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 eine Vorrichtung beinhalten, die zum Messen der Höhe der Straße nach oben und unten konfiguriert ist. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 eine Vorrichtung beinhalten, die zum Messen der Straßenkrümmung konfiguriert ist. Zum Beispiel kann eine Kamera (z. B. Kamera 122 oder eine andere Kamera) verwendet werden, um Bilder der Straße zu erfassen, die Straßenkrümmungen zeigen. Das Fahrzeug 1205 kann derartige Bilder verwenden, um Straßenkrümmungen zu detektieren.
  • Der mindestens eine Prozessor 2315 kann dazu programmiert sein, von der Kamera 122 mindestens ein Umgebungsbild zu empfangen, das mit dem Fahrzeug 1205 assoziiert ist. Der mindestens eine Prozessor 2315 kann das mindestens eine Umgebungsbild analysieren, um Navigationsinformationen zu bestimmen, die sich auf das Fahrzeug 1205 beziehen. Die Navigationsinformationen können eine Trajektorie beinhalten, die sich auf die Fahrt des Fahrzeugs 1205 entlang dem Straßensegment 1200 bezieht. Der mindestens eine Prozessor 2315 kann die Trajektorie basierend auf Bewegungen der Kamera 122 (und damit des Fahrzeugs) bestimmen, wie etwa dreidimensionale Translation und dreidimensionale Rotationsbewegungen. In einigen Ausführungsformen kann der mindestens eine Prozessor 2315 die Translation und Rotationsbewegungen der Kamera 122 basierend auf der Analyse einer Vielzahl von Bildern bestimmen, die von der Kamera 122 erfasst werden. In einigen Ausführungsformen können die Navigationsinformationen Fahrspurzuweisungsinformationen beinhalten (z. B. auf welcher Fahrspur das Fahrzeug 1205 entlang dem Straßensegment 1200 fährt). Die Navigationsinformationen, die vom Fahrzeug 1205 an den Server 1230 übertragen werden, können vom Server 1230 verwendet werden, um ein Straßennavigationsmodell des autonomen Fahrzeugs zu erzeugen und/oder zu aktualisieren, das zurück vom Server 1230 an das Fahrzeug 1205 übertragen werden kann, um autonome Navigationsführung für das Fahrzeug 1205 bereitzustellen.
  • Der mindestens eine Prozessor 2315 kann auch programmiert sein, um die Navigationsinformationen vom Fahrzeug 1205 an den Server 1230 zu übertragen. In einigen Ausführungsformen können die Navigationsinformationen zusammen mit den Straßeninformationen an den Server 1230 übertragen werden. Die Straßenortsinformationen können mindestens eines des GPS-Signals, das von der GPS-Einheit 2310 empfangen wird, Orientierungspunktinformationen, Straßengeometrie, Fahrspurinformationen usw. beinhalten. Der mindestens eine Prozessor 2315 kann vom Server 1230 das Straßennavigationsmodell des autonomen Fahrzeugs oder einen Abschnitt des Modells empfangen. Das Straßennavigationsmodell des autonomen Fahrzeugs, das vom Server 1230 empfangen wird, kann mindestens eine Aktualisierung basierend auf den Navigationsinformationen beinhalten, die vom Fahrzeug 1205 an den Server 1230 übertragen werden. Der Abschnitt des Modells, der vom Server 1230 an das Fahrzeug 1205 übertragen wird, kann einen aktualisierten Abschnitt des Modells beinhalten. Der mindestens eine Prozessor 2315 kann mindestens ein Navigationsmanöver (z. B. lenken, wie etwa Abbiegen, Bremsen, Beschleunigen, Überholen eines anderen Fahrzeugs usw.) durch das Fahrzeug 1205 basierend auf dem empfangenen Straßennavigationsmodell des autonomen Fahrzeugs oder dem aktualisierten Abschnitt des Modells bewirken.
  • Der mindestens eine Prozessor 2315 kann dazu konfiguriert sein, mit verschiedenen Sensoren und Komponenten zu kommunizieren, die im Fahrzeug 1205 enthalten sind, einschließlich der Kommunikationseinheit 1705, der GPS-Einheit 2315, der Kamera 122, dem Geschwindigkeitssensor 2320, dem Beschleunigungsmesser 2325 und dem Straßenprofilsensor 2330. Der mindestens eine Prozessor 2315 kann Informationen oder Daten von verschiedenen Sensoren und Komponenten sammeln und die Informationen oder Daten über die Kommunikationseinheit 2305 an den Server 1230 übertragen. Alternativ oder zusätzlich können verschiedene Sensoren oder Komponenten des Fahrzeugs 1205 auch mit dem Server 1230 kommunizieren und Daten oder Informationen, die durch die Sensoren oder Komponenten gesammelt werden, an den Server 1230 übertragen.
  • In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 miteinander kommunizieren und können Navigationsinformationen miteinander teilen, sodass mindestens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 das Straßennavigationsmodell des autonomen Fahrzeugs unter Verwendung von Crowdsourcing erzeugen kann, z. B. basierend auf Informationen, die von anderen Fahrzeugen geteilt werden. In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 Navigationsinformationen miteinander teilen und kann jedes Fahrzeug sein eigenes Straßennavigationsmodell des autonomen Fahrzeugs, das im Fahrzeug bereitgestellt ist, aktualisieren. In einigen Ausführungsformen kann mindestens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 (z. B. das Fahrzeug 1205) als ein Hub-Fahrzeug fungieren. Der mindestens eine Prozessor 2315 des Hub-Fahrzeugs (z. B. das Fahrzeug 1205) kann einige oder alle der vom Server 1230 durchgeführten Funktionen durchführen. Zum Beispiel kann der mindestens eine Prozessor 2315 des Hub-Fahrzeugs mit anderen Fahrzeugen kommunizieren und Navigationsinformationen von anderen Fahrzeugen empfangen. Der mindestens eine Prozessor 2315 des Hub-Fahrzeugs kann das Straßennavigationsmodell des autonomen Fahrzeugs oder eine Aktualisierung des Modells basierend auf den geteilten Informationen, die von anderen Fahrzeugen empfangen werden, erzeugen. Der mindestens eine Prozessor 2315 des Hub-Fahrzeugs kann das Straßennavigationsmodell des autonomen Fahrzeugs oder die Aktualisierung des Modells an andere Fahrzeuge übertragen, um autonome Navigationsführung bereitzustellen.
  • Abbilden von Fahrspurmarkierungen und Navigation basierend auf abgebildeten Fahrspurmarkierungen
  • Wie zuvor erörtert, können das Straßennavigationsmodell und/oder die dünnbesetzte Karte 800 des autonomen Fahrzeugs eine Vielzahl von abgebildeten Fahrspurmarkierungen beinhalten, die mit einem Straßensegment assoziiert sind. Wie nachfolgend ausführlicher erörtert, können diese abgebildeten Fahrspurmarkierungen verwendet werden, wenn das autonome Fahrzeug navigiert. So können beispielsweise in einigen Ausführungsformen die abgebildeten Fahrspurmarkierungen verwendet werden, um eine laterale Position und/oder Ausrichtung in Bezug auf eine geplante Trajektorie zu bestimmen. Mit diesen Positionsinformationen kann das autonome Fahrzeug in der Lage sein, eine Fahrtrichtung anzupassen, um einer Richtung einer Zieltrajektorie an der bestimmten Position zu entsprechen.
  • Das Fahrzeug 200 kann dazu konfiguriert sein, Fahrspurmarkierungen in einem gegebenen Straßensegment zu detektieren. Das Straßensegment kann beliebige Markierungen auf einer Straße zum Führen des Fahrzeugverkehrs auf einer Fahrbahn beinhalten. So können beispielsweise die Fahrspurmarkierungen durchgehende oder gestrichelte Linien sein, die den Rand einer Fahrspur markieren. Die Fahrspurmarkierungen können auch doppelte Linien beinhalten, wie beispielsweise doppelte durchgehende Linien, doppelte gestrichelte Linien oder eine Kombination aus durchgehenden und gestrichelten Linien, die beispielsweise anzeigen, ob das Überholen in einer benachbarten Fahrspur erlaubt ist. Die Fahrspurmarkierungen können auch Autobahneinfahrt- und Ausfahrtsmarkierungen beinhalten, die beispielsweise eine Verzögerungsfahrspur für eine Ausfahrtrampe oder gepunktete Linien anzeigen, die anzeigen, dass eine Fahrspur nur abbiegt oder dass die Fahrspur endet. Die Markierungen können ferner eine Arbeitszone, eine vorübergehende Fahrspurverschiebung, einen Fahrweg durch eine Kreuzung, einen Median, eine Sonderfahrspur (z. B. eine Fahrradfahrspur, eine HOV-Fahrspur usw.) oder andere verschiedene Markierungen (z. B. Fußgängerüberweg, eine Geschwindigkeitsauffahrt, einen Bahnübergang, eine Stopplinie usw.) anzeigen.
  • Das Fahrzeug 200 kann Kameras, wie beispielsweise Bilderfassungsvorrichtungen 122 und 124, die in der Bildaufnahmeeinheit 120 enthalten sind, verwenden, um Bilder der umgebenden Fahrspurmarkierungen zu erfassen. Die Bilderfassungsvorrichtungen 122 und 124 können Bilder der umgebenden Fahrspurmarkierungen erfassen Das Fahrzeug 200 kann die Bilder analysieren, um Punktorte zu erfassen, die mit den Fahrspurmarkierungen assoziiert sind, basierend auf Merkmalen, die innerhalb eines oder mehrerer der erfassten Bilder identifiziert wurden. Diese Punktorte können auf einen Server hochgeladen werden, um die Fahrspurmarkierungen in der dünnbesetzten Karte 800 darzustellen. Abhängig von der Position und dem Sichtfeld der Kamera können Fahrspurmarkierungen für beide Seiten des Fahrzeugs gleichzeitig aus einem einzelnen Bild erfasst werden. In anderen Ausführungsformen können verschiedene Kameras verwendet werden, um Bilder auf mehreren Seiten des Fahrzeugs zu erfassen. Anstatt tatsächliche Bilder der Fahrspurmarkierungen hochzuladen, können die Markierungen in der dünnbesetzten Karte 800 als ein Spline oder eine Reihe von Punkten gespeichert werden, wodurch die Größe der dünnbesetzten Karte 800 und/oder die Daten, die entfernt durch das Fahrzeug hochgeladen werden müssen, reduziert werden.
  • 24A-24D veranschaulichen beispielhafte Punktorte, die durch das Fahrzeug 200 detektiert werden können, um bestimmte Fahrspurmarkierungen darzustellen. Ähnlich den oben beschriebenen Orientierungspunkten kann das Fahrzeug 200 verschiedene Bilderkennungsalgorithmen oder Software verwenden, um Punktorte innerhalb eines erfassten Bilds zu identifizieren. Zum Beispiel kann das Fahrzeug 200 eine Reihe von Randpunkten, Eckpunkten oder verschiedenen anderen Punktorten, die mit einer bestimmten Fahrspurmarkierung assoziiert sind, erkennen. 24A zeigt eine durchgehende Fahrspurmarkierung 2410, die durch das Fahrzeug 200 detektiert werden kann. Die Fahrspurmarkierung 2410 kann den äußeren Rand einer Fahrbahn darstellen, dargestellt durch eine durchgehende weiße Linie. Wie in 24A gezeigt, kann das Fahrzeug 200 dazu konfiguriert sein, eine Vielzahl von Randortspunkten 2411 entlang der Fahrspurmarkierung zu detektieren. Die Ortspunkte 2411 können gesammelt werden, um die Fahrspurmarkierung in beliebigen Intervallen darzustellen, die ausreichend sind, um eine abgebildete Fahrspurmarkierung in der dünnbesetzten Karte zu erstellen. Zum Beispiel kann die Fahrspurmarkierung durch einen Punkt pro Meter des detektierten Rands, einen Punkt pro alle fünf Meter des detektierten Rands oder in anderen geeigneten Abständen dargestellt werden. In einigen Ausführungsformen kann der Abstand durch andere Faktoren bestimmt werden, anstatt in festgelegten Intervallen, wie etwa zum Beispiel basierend auf Punkten, bei denen das Fahrzeug 200 eine höchste Konfidenzeinstufung des Orts der detektierten Punkte aufweist. Obwohl 24A Randortspunkte an einem inneren Rand der Fahrspurmarkierung 2410 zeigt, können Punkte am äußeren Rand der Linie oder entlang beider Ränder gesammelt werden. Ferner können, während eine einzelne Linie in 24A gezeigt ist, ähnliche Randpunkte für eine doppelte durchgehende Linie detektiert werden. Zum Beispiel können die Punkte 2411 entlang eines Rands einer oder beider der durchgehenden Linien detektiert werden.
  • Das Fahrzeug 200 kann auch Fahrspurmarkierungen unterschiedlich abhängig von dem Typ oder Form der Fahrspurmarkierung darstellen. 24B zeigt eine beispielhafte gestrichelte Fahrspurmarkierung 2420, die durch das Fahrzeug 200 detektiert werden kann. Anstatt Randpunkte zu identifizieren, wie in 24A, kann das Fahrzeug eine Reihe von Eckpunkten 2421 detektieren, die Ecken der Fahrspurstriche darstellen, um die vollständige Grenze des Strichs zu definieren. Während 24B zeigt, dass sich jede Ecke einer gegebenen Strichmarkierung befindet, kann das Fahrzeug 200 eine Teilmenge der in der Figur gezeigten Punkte detektieren oder hochladen. Zum Beispiel kann das Fahrzeug 200 den vorderen Rand oder die vordere Ecke einer gegebenen Strichmarkierung detektieren oder kann die zwei Eckpunkte, die dem Inneren der Fahrspur am nächsten sind, detektieren. Ferner kann nicht jede Strichmarkierung erfasst werden, zum Beispiel kann das Fahrzeug 200 Punkte erfassen und/oder aufzeichnen, die eine Stichprobe von Strichmarkierungen (z. B. jede zweite, jede dritte, jede fünfte usw.) oder Strichmarkierungen in einem vordefinierten Abstand (z. B. jeder Meter, alle fünf Meter, alle 10 Meter usw.) darstellen. Eckpunkte können auch für Fahrspurmarkierungen detektiert werden, die aus doppelt gestrichelten Linien oder einer Kombination aus durchgehenden und gestrichelten Linien bestehen.
  • In einigen Ausführungsformen können die Punkte, die auf den Server hochgeladen werden, um die abgebildeten Fahrspurmarkierungen zu erzeugen, andere Punkte neben den detektierten Randpunkten oder Eckpunkten darstellen. 24C veranschaulicht eine Reihe von Punkten, die eine Mittellinie einer gegebenen Fahrspurmarkierung darstellen können. Zum Beispiel kann die durchgehende Fahrspur 2410 durch Mittellinienpunkte 2441 entlang einer Mittellinie 2440 der Fahrspurmarkierung dargestellt werden. In einigen Ausführungsformen kann das Fahrzeug 200 konfiguriert sein, um diese Mittelpunkte unter Verwendung verschiedener Bilderkennungstechniken zu detektieren, wie beispielsweise Convolutional Neural Networks (CNN), Scale-Invariant Feature Transform (SIFT), Histogram of Oriented Gradients (HOG)-Merkmale oder andere Techniken. Alternativ kann das Fahrzeug 200 andere Punkte detektieren, wie beispielsweise Randpunkte 2411, die in 24A gezeigt sind, und kann Mittellinienpunkte 2441 berechnen, zum Beispiel durch Detektieren von Punkten entlang jeder Kante und Bestimmen eines Mittelpunkts zwischen den Randpunkten. In ähnlicher Weise kann die gestrichelte Fahrspurmarkierung 2420 durch Mittellinienpunkte 2451 entlang einer Mittellinie 2450 der Fahrspurmarkierung dargestellt werden. Die Mittellinienpunkte können sich am Rand eines Strichs befinden, wie in 24C gezeigt, oder an verschiedenen anderen Orten entlang der Mittellinie. Beispielsweise kann jeder Strich durch einen einzelnen Punkt in der geometrischen Mitte des Strichs dargestellt werden. Die Punkte können auch in einem vorbestimmten Intervall entlang der Mittellinie beabstandet sein (z. B. jeder Meter, 5 Meter, 10 Meter usw.). Die Mittellinienpunkte 2451 können direkt durch das Fahrzeug 200 detektiert werden oder können basierend auf anderen detektierten Referenzpunkten, wie beispielsweise Eckpunkten 2421, berechnet werden, wie in 24B gezeigt. Eine Mittellinie kann auch verwendet werden, um andere Fahrspurmarkierungstypen, wie beispielsweise eine doppelte Linie, unter Verwendung ähnlicher Techniken wie oben darzustellen.
  • In einigen Ausführungsformen kann das Fahrzeug 200 Punkte identifizieren, die andere Merkmale darstellen, wie beispielsweise einen Scheitelpunkt zwischen zwei sich schneidenden Fahrspurmarkierungen. 24D zeigt beispielhafte Punkte, die eine Kreuzung zwischen zwei Fahrspurmarkierungen 2460 und 2465 darstellen. Das Fahrzeug 200 kann einen Scheitelpunkt 2466 berechnen, der eine Kreuzung zwischen den zwei Fahrspurmarkierungen darstellt. Zum Beispiel kann eine der Fahrspurmarkierungen 2460 oder 2465 einen Bahnübergangsbereich oder einen anderen Übergangsbereich im Straßensegment darstellen. Während die Fahrspurmarkierungen 2460 und 2465 als einander senkrecht kreuzend gezeigt sind, können verschiedene andere Konfigurationen detektiert werden. Zum Beispiel können sich die Fahrspurmarkierungen 2460 und 2465 in anderen Winkeln kreuzen, oder eine oder beide der Fahrspurmarkierungen können am Scheitelpunkt 2466 enden. Ähnliche Techniken können auch für Kreuzungen zwischen gestrichelten oder anderen Fahrspurmarkierungstypen angewendet werden. Zusätzlich zum Scheitelpunkt 2466 können auch verschiedene andere Punkte 2467 detektiert werden, die weitere Informationen über die Ausrichtung der Fahrspurmarkierungen 2460 und 2465 bereitstellen.
  • Das Fahrzeug 200 kann reale Koordinaten mit jedem detektierten Punkt der Fahrspurmarkierung assoziieren. Zum Beispiel können Ortskennungen erzeugt werden, einschließlich Koordinaten für jeden Punkt, um sie auf einen Server zum Abbilden der Fahrspurmarkierung hochzuladen. Die Ortskennungen können ferner andere Identifizierungsinformationen über die Punkte beinhalten, einschließlich, ob der Punkt einen Eckpunkt, einen Randpunkt, einen Mittelpunkt usw. darstellt. Das Fahrzeug 200 kann daher konfiguriert sein, um eine reale Position jedes Punkts basierend auf der Analyse der Bilder zu bestimmen. Zum Beispiel kann das Fahrzeug 200 andere Merkmale im Bild detektieren, wie etwa die verschiedenen oben beschriebenen Orientierungspunkte, um die reale Position der Fahrspurmarkierungen zu lokalisieren. Dies kann das Bestimmen des Orts der Fahrspurmarkierungen im Bild in Bezug auf den detektierten Orientierungspunkt oder das Bestimmen der Position des Fahrzeugs basierend auf dem detektierten Orientierungspunkt und dann das Bestimmen eines Abstands vom Fahrzeug (oder der Zieltrajektorie des Fahrzeugs) zur Fahrspurmarkierung beinhalten. Wenn kein Orientierungspunkt verfügbar ist, kann der Ort der Fahrspurmarkierungspunkte in Bezug auf eine Position des Fahrzeugs bestimmt werden, die basierend auf Koppelnavigation bestimmt wird. Die in den Ortskennungen enthaltenen realen Koordinaten können als absolute Koordinaten (z. B. Breiten-/Längenkoordinaten) dargestellt werden oder können in Bezug auf andere Merkmale sein, wie etwa basierend auf einer Längsposition entlang einer Zieltrajektorie und einem seitlichen Abstand von der Zieltrajektorie. Die Ortskennungen können dann zur Erzeugung der abgebildeten Fahrspurmarkierungen im Navigationsmodell (wie etwa der dünnbesetzten Karte 800) auf einen Server hochgeladen werden. In einigen Ausführungsformen kann der Server einen Spline konstruieren, der die Fahrspurmarkierungen eines Straßensegments darstellt. Alternativ kann das Fahrzeug 200 den Spline erzeugen und ihn auf den Server hochladen, um im Navigationsmodell aufgezeichnet zu werden.
  • 24E zeigt ein beispielhaftes Navigationsmodell oder eine dünnbesetzte Karte für ein entsprechendes Straßensegment, das abgebildete Fahrspurmarkierungen beinhaltet. Die dünnbesetzte Karte kann eine Zieltrajektorie 2475 beinhalten, der ein Fahrzeug entlang eines Straßensegments folgen soll. Wie oben beschrieben, kann die Zieltrajektorie 2475 einen idealen Weg darstellen, den ein Fahrzeug nehmen soll, wenn es das entsprechende Straßensegment fährt, oder kann sich an anderer Stelle auf der Straße (z. B. einer Mittellinie der Straße usw.) befinden. Die Zieltrajektorie 2475 kann in den verschiedenen oben beschriebenen Verfahren berechnet werden, zum Beispiel basierend auf einer Aggregation (z. B. einer gewichteten Kombination) von zwei oder mehr rekonstruierten Trajektorien von Fahrzeugen, die dasselbe Straßensegment überqueren.
  • In einigen Ausführungsformen kann die Zieltrajektorie gleichermaßen für alle Fahrzeugtypen und für alle Straßen-, Fahrzeug- und/oder Umgebung-Bedingungen erzeugt werden. In anderen Ausführungsformen können jedoch auch verschiedene andere Faktoren oder Variablen beim Erzeugen der Zieltrajektorie berücksichtigt werden. Eine andere Zieltrajektorie kann für verschiedene Fahrzeugtypen erzeugt werden (z. B. ein Privatfahrzeug, ein Kleinlaster und ein Vollanhänger). Zum Beispiel kann eine Zieltrajektorie mit relativ engeren Kurvenradien für ein kleines Privatfahrzeug als ein größerer Sattelschlepper erzeugt werden. In einigen Ausführungsformen können Straßen-, Fahrzeug- und Umgebungsbedingungen ebenfalls berücksichtigt werden. Zum Beispiel kann eine andere Zieltrajektorie für verschiedene Straßenbedingungen (z. B. nass, schneebedeckt, vereist, trocken usw.), Fahrzeugbedingungen (z. B. Reifenzustand oder geschätzter Reifenzustand, Bremszustand oder geschätzter Bremszustand, verbleibende Kraftstoffmenge usw.) oder Umgebungsfaktoren (z. B. Tageszeit, Sicht, Wetter usw.) erzeugt werden. Die Zieltrajektorie kann auch von einem oder mehreren Aspekten oder Merkmalen eines bestimmten Straßensegments (z. B. Geschwindigkeitsbegrenzung, Häufigkeit und Größe der Kurven, Steigung usw.) abhängen. In einigen Ausführungsformen können verschiedene Benutzereinstellungen auch verwendet werden, um die Zieltrajektorie zu bestimmen, wie etwa einen festgelegten Fahrmodus (z. B. gewünschte Fahraggressivität, Sparmodus usw.).
  • Die dünnbesetzte Karte kann auch abgebildete Fahrspurmarkierungen 2470 und 2480 beinhalten, die Fahrspurmarkierungen entlang des Straßensegments darstellen. Die abgebildeten Fahrspurmarkierungen können durch eine Vielzahl von Ortskennungen 2471 und 2481 dargestellt werden. Wie vorstehend beschrieben, können die Ortskennungen Orte in realen Koordinaten von Punkten beinhalten, die mit einer detektierten Fahrspurmarkierung assoziiert sind. Ähnlich wie die Zieltrajektorie im Modell können die Fahrspurmarkierungen auch Höhendaten beinhalten und können als eine Kurve im dreidimensionalen Raum dargestellt werden. Zum Beispiel kann die Kurve ein Spline sein, der dreidimensionale Polynome geeigneter Ordnung verbindet, wobei die Kurve basierend auf den Ortskennungen berechnet werden kann. Die abgebildeten Fahrspurmarkierungen können auch andere Informationen oder Metadaten über die Fahrspurmarkierung beinhalten, wie etwa eine Kennung des Typs der Fahrspurmarkierung (z. B. zwischen zwei Fahrspuren mit der gleichen Fahrtrichtung, zwischen zwei Fahrspuren mit entgegengesetzter Fahrtrichtung, Rand einer Fahrbahn usw.) und/oder andere Eigenschaften der Fahrspurmarkierung (z. B. durchgehend, gestrichelt, einzelne Linie, doppelte Linie, gelb, weiß usw.). In einigen Ausführungsformen können die abgebildeten Fahrspurmarkierungen innerhalb des Modells kontinuierlich aktualisiert werden, beispielsweise unter Verwendung von Crowdsourcing-Techniken. Das gleiche Fahrzeug kann Ortskennungen während mehrerer Fahrten desselben Straßensegments hochladen oder Daten können aus einer Vielzahl von Fahrzeugen (wie etwa 1205, 1210, 1215, 1220 und 1225), die das Straßensegment zu verschiedenen Zeiten fahren, ausgewählt werden. Die dünnbesetzte Karte 800 kann dann basierend auf nachfolgenden Ortskennungen, die von den Fahrzeugen empfangen und im System gespeichert werden, aktualisiert oder verfeinert werden. Wenn die abgebildeten Fahrspurmarkierungen aktualisiert und verfeinert werden, können das aktualisierte Straßennavigationsmodell und/oder die dünnbesetzte Karte an eine Vielzahl von autonomen Fahrzeugen verteilt werden.
  • Das Erzeugen der abgebildeten Fahrspurmarkierungen in der dünnbesetzten Karte kann auch das Detektieren und/oder Abschwächen von Fehlern basierend auf Anomalien in den Bildern oder in den tatsächlichen Fahrspurmarkierungen selbst beinhalten. 24F zeigt eine beispielhafte Anomalie 2495, die mit dem Detektieren einer Fahrspurmarkierung 2490 assoziiert ist. Die Anomalie 2495 kann im Bild erscheinen, das vom Fahrzeug 200 erfasst wird, beispielsweise von einem Objekt, das die Sicht der Kamera auf die Fahrspurmarkierung, Schmutz auf der Linse usw. behindert. In einigen Fällen kann die Anomalie auf die Fahrspurmarkierung selbst zurückzuführen sein, die beschädigt oder abgenutzt oder teilweise abgedeckt sein kann, beispielsweise durch Schmutz, Schmutz, Wasser, Schnee oder andere Materialien auf der Straße. Die Anomalie 2495 kann dazu führen, dass ein fehlerhafter Punkt 2491 vom Fahrzeug 200 detektiert wird. Die dünnbesetzte Karte 800 kann die korrekte abgebildete Fahrspurmarkierung bereitstellen und den Fehler ausschließen. In einigen Ausführungsformen kann das Fahrzeug 200 einen fehlerhaften Punkt 2491 detektieren, beispielsweise durch Detektieren der Anomalie 2495 im Bild oder durch Identifizieren des Fehlers basierend auf detektierten Fahrspurmarkierungspunkten vor und nach der Anomalie. Basierend auf dem Detektieren der Anomalie kann das Fahrzeug den Punkt 2491 auslassen oder kann ihn so anpassen, dass er mit anderen detektierten Punkten übereinstimmt. In anderen Ausführungsformen kann der Fehler korrigiert werden, nachdem der Punkt hochgeladen wurde, beispielsweise durch Bestimmen, dass der Punkt außerhalb eines erwarteten Schwellenwerts liegt, basierend auf anderen Punkten, die während derselben Fahrt hochgeladen wurden, oder basierend auf einer Aggregation von Daten vorheriger Fahrten entlang desselben Straßensegments.
  • Die abgebildeten Fahrspurmarkierungen im Navigationsmodell und/oder der dünnbesetzten Karte können auch zur Navigation durch ein autonomes Fahrzeug verwendet werden, das die entsprechende Fahrbahn befährt. Beispielsweise kann ein Fahrzeug, das entlang einer Zieltrajektorie navigiert, periodisch die abgebildeten Fahrspurmarkierungen in der dünnbesetzten Karte verwenden, um sich mit der Zieltrajektorie auszurichten. Wie vorstehend erwähnt, kann das Fahrzeug zwischen Orientierungspunkten basierend auf Koppelnavigation navigieren, bei der das Fahrzeug Sensoren verwendet, um seine Eigenbewegung zu bestimmen und seine Position relativ zur Zieltrajektorie zu schätzen. Fehler können sich im Laufe der Zeit ansammeln und die Positionsbestimmungen des Fahrzeugs relativ zur Zieltrajektorie können immer ungenauer werden. Dementsprechend kann das Fahrzeug Fahrspurmarkierungen verwenden, die in der dünnbesetzten Karte 800 auftreten (und ihre bekannten Orte), um die koppelnavigationsinduzierten Fehler bei der Positionsbestimmung zu reduzieren. Auf diese Weise können die identifizierten Fahrspurmarkierungen, die in der dünnbesetzten Karte 800 enthalten sind, als Navigationsanker dienen, aus denen eine genaue Position des Fahrzeugs relativ zu einer Zieltrajektorie bestimmt werden kann.
  • 25A zeigt ein beispielhaftes Bild 2500 der Umgebung eines Fahrzeugs, das zur Navigation basierend auf den abgebildeten Fahrspurmarkierungen verwendet werden kann. Das Bild 2500 kann beispielsweise durch das Fahrzeug 200 über die Bilderfassungsvorrichtungen 122 und 124 erfasst werden, die in der Bildaufnahmeeinheit 120 enthalten sind. Das Bild 2500 kann ein Bild von mindestens einer Fahrspurmarkierung 2510 beinhalten, wie in 25A gezeigt. Das Bild 2500 kann auch einen oder mehrere Orientierungspunkte 2521, wie beispielsweise ein Straßenschild, beinhalten, die zur Navigation verwendet werden, wie oben beschrieben. Einige in 25A gezeigte Elemente, wie beispielsweise die Elemente 2511, 2530 und 2520, die nicht im erfassten Bild 2500 erscheinen, aber durch das Fahrzeug 200 detektiert und/oder bestimmt werden, sind ebenfalls zur Referenz gezeigt.
  • Unter Verwendung der verschiedenen Techniken, die oben in Bezug auf die 24A-D und 24F beschrieben wurden, kann ein Fahrzeug das Bild 2500 analysieren, um die Fahrspurmarkierung 2510 zu identifizieren. Verschiedene Punkte 2511 können entsprechend Merkmalen der Fahrspurmarkierung im Bild detektiert werden. Die Punkte 2511 können zum Beispiel einer Kante der Fahrspurmarkierung, einer Ecke der Fahrspurmarkierung, einem Mittelpunkt der Fahrspurmarkierung, einem Scheitelpunkt zwischen zwei sich schneidenden Fahrspurmarkierungen oder verschiedenen anderen Merkmalen oder Orten entsprechen. Die Punkte 2511 können detektiert werden, um einem Ort von Punkten zu entsprechen, die in einem Navigationsmodell gespeichert sind, das von einem Server empfangen wird. Wenn zum Beispiel eine dünnbesetzte Karte empfangen wird, die Punkte enthält, die eine Mittellinie einer abgebildeten Fahrspurmarkierung darstellen, können die Punkte 2511 auch basierend auf einer Mittellinie der Fahrspurmarkierung 2510 detektiert werden.
  • Das Fahrzeug kann auch eine longitudinale Position bestimmen, die durch das Element 2520 dargestellt wird und sich entlang einer Zieltrajektorie befindet. Die longitudinale Position 2520 kann aus dem Bild 2500 bestimmt werden, zum Beispiel durch Detektieren des Orientierungspunkts 2521 innerhalb des Bilds 2500 und Vergleichen eines gemessenen Orts mit einem bekannten Orientierungspunktort, der im Straßenmodell oder der dünnbesetzten Karte 800 gespeichert ist. Der Ort des Fahrzeugs entlang einer Zieltrajektorie kann dann basierend auf der Entfernung zum Orientierungspunkt und dem bekannten Ort des Orientierungspunkts bestimmt werden. Die longitudinale Position 2520 kann auch aus anderen Bildern als jenen bestimmt werden, die verwendet werden, um die Position einer Fahrspurmarkierung zu bestimmen. Zum Beispiel kann die longitudinale Position 2520 durch Detektieren von Orientierungspunkten in Bildern von anderen Kameras innerhalb der Bildaufnahmeeinheit 120 bestimmt werden, die gleichzeitig oder nahezu gleichzeitig zum Bild 2500 aufgenommen werden. In einigen Fällen kann sich das Fahrzeug nicht nahe beliebigen Orientierungspunkten oder anderen Referenzpunkten zum Bestimmen der longitudinalen Position 2520 befinden. In solchen Fällen kann das Fahrzeug basierend auf Koppelnavigation navigieren und kann somit Sensoren verwenden, um seine Eigenbewegung zu bestimmen und eine longitudinale Position 2520 relativ zur Zieltrajektorie zu schätzen. Das Fahrzeug kann auch eine Entfernung 2530 bestimmen, die die tatsächliche Entfernung zwischen dem Fahrzeug und der Fahrspurmarkierung 2510 darstellt, die im/in den erfassten Bild(ern) beobachtet wird. Der Kamerawinkel, die Geschwindigkeit des Fahrzeugs, die Breite des Fahrzeugs oder verschiedene andere Faktoren können beim Bestimmen der Entfernung 2530 berücksichtigt werden.
  • 25B veranschaulicht eine seitliche Lokalisierungskorrektur des Fahrzeugs basierend auf den abgebildeten Fahrspurmarkierungen in einem Straßennavigationsmodell. Wie oben beschrieben, kann das Fahrzeug 200 eine Entfernung 2530 zwischen dem Fahrzeug 200 und einer Fahrspurmarkierung 2510 unter Verwendung eines oder mehrerer Bilder bestimmen, die vom Fahrzeug 200 erfasst werden. Das Fahrzeug 200 kann auch Zugriff auf ein Straßennavigationsmodell, wie etwa die dünnbesetzte Karte 800, aufweisen, das eine abgebildete Fahrspurmarkierung 2550 und eine Zieltrajektorie 2555 beinhalten kann. Die abgebildete Fahrspurmarkierung 2550 kann unter Verwendung der oben beschriebenen Techniken modelliert werden, beispielsweise unter Verwendung von Crowdsourcing-Ortskennungen, die von einer Vielzahl von Fahrzeugen erfasst werden. Die Zieltrajektorie 2555 kann auch unter Verwendung der verschiedenen zuvor beschriebenen Techniken erzeugt werden. Das Fahrzeug 200 kann auch eine longitudinale Position 2520 entlang der Zieltrajektorie 2555 bestimmen oder schätzen, wie oben in Bezug auf 25A beschrieben. Das Fahrzeug 200 kann dann eine erwartete Entfernung 2540 basierend auf einer lateralen Entfernung zwischen der Zieltrajektorie 2555 und der abgebildeten Fahrspurmarkierung 2550 bestimmen, die der longitudinalen Position 2520 entspricht. Die seitliche Lokalisierung des Fahrzeugs 200 kann durch Vergleichen der tatsächlichen Entfernung 2530, die unter Verwendung des/der erfassten Bild(er) gemessen wird, mit der erwarteten Entfernung 2540 vom Modell korrigiert oder angepasst werden.
  • 26A ist ein Ablaufdiagramm, das einen beispielhaften Prozess 2600A zum Abbilden einer Fahrspurmarkierung zur Verwendung bei der autonomen Fahrzeugnavigation in Übereinstimmung mit offenbarten Ausführungsformen zeigt. Bei Schritt 2610 kann der Prozess 2600A das Empfangen von zwei oder mehr Ortskennungen beinhalten, die mit einer detektierten Fahrspurmarkierung assoziiert sind. Zum Beispiel kann Schritt 2610 durch den Server 1230 oder einen oder mehrere Prozessoren, die mit dem Server assoziiert sind, durchgeführt werden. Die Ortskennungen können Orte in realen Koordinaten von Punkten beinhalten, die mit der detektierten Fahrspurmarkierung assoziiert sind, wie vorstehend in Bezug auf 24E beschrieben. In einigen Ausführungsformen können die Ortskennungen auch andere Daten enthalten, wie etwa zusätzliche Informationen über das Straßensegment oder die Fahrspurmarkierung. Zusätzliche Daten können auch während Schritt 2610 empfangen werden, wie etwa Beschleunigungsmesserdaten, Geschwindigkeitsdaten, Orientierungspunktdaten, Straßengeometrie- oder -profildaten, Fahrzeugpositionierungsdaten, Eigenbewegungsdaten oder verschiedene andere Formen von vorstehend beschriebenen Daten. Die Ortskennungen können durch ein Fahrzeug erzeugt werden, wie etwa Fahrzeuge 1205, 1210, 1215, 1220 und 1225, basierend auf Bildern, die durch das Fahrzeug erfasst werden. Zum Beispiel können die Kennungen basierend auf der Erfassung von mindestens einem Bild, das eine Umgebung des Host-Fahrzeugs darstellt, von einer Kamera, die mit einem Host-Fahrzeug assoziiert ist, der Analyse des mindestens einen Bilds, um die Fahrspurmarkierung in der Umgebung des Host-Fahrzeugs zu detektieren, und der Analyse des mindestens einen Bilds, um eine Position der detektierten Fahrspurmarkierung relativ zu einem Ort zu bestimmen, der mit dem Host-Fahrzeug assoziiert ist, bestimmt werden. Wie vorstehend beschrieben, kann die Fahrspurmarkierung eine Vielzahl von unterschiedlichen Markierungstypen beinhalten, und die Ortskennungen können einer Vielzahl von Punkten relativ zur Fahrspurmarkierung entsprechen. Wenn beispielsweise die detektierte Fahrspurmarkierung Teil einer gestrichelten Linie ist, die eine Fahrspurbegrenzung markiert, können die Punkte detektierten Ecken der Fahrspurmarkierung entsprechen. Wenn die detektierte Fahrspurmarkierung Teil einer durchgehenden Linie ist, die eine Fahrspurbegrenzung markiert, können die Punkte einem detektierten Rand der Fahrspurmarkierung entsprechen, mit verschiedenen Abständen, wie vorstehend beschrieben. In einigen Ausführungsformen können die Punkte der Mittellinie der detektierten Fahrspurmarkierung entsprechen, wie in 24C gezeigt, oder können einem Scheitelpunkt zwischen zwei sich schneidenden Fahrspurmarkierungen und mindestens zwei anderen Punkten entsprechen, die mit den sich schneidenden Fahrspurmarkierungen assoziiert sind, wie in 24D gezeigt.
  • Bei Schritt 2612 kann der Prozess 2600A das Assoziieren der detektierten Fahrspurmarkierung mit einem entsprechenden Straßensegment beinhalten. Beispielsweise kann der Server 1230 die realen Koordinaten oder andere Informationen, die während Schritt 2610 empfangen werden, analysieren und die Koordinaten oder andere Informationen mit Ortsinformationen vergleichen, die in einem Straßennavigationsmodell des autonomen Fahrzeugs gespeichert sind. Der Server 1230 kann ein Straßensegment im Modell bestimmen, das dem realen Straßensegment entspricht, in dem die Fahrspurmarkierung detektiert wurde.
  • Bei Schritt 2614 kann der Prozess 2600A das Aktualisieren eines Straßennavigationsmodells des autonomen Fahrzeugs relativ zum entsprechenden Straßensegment basierend auf den zwei oder mehr Ortskennungen beinhalten, die mit der detektierten Fahrspurmarkierung assoziiert sind. Beispielsweise kann das autonome Straßennavigationsmodell eine dünnbesetzte Karte 800 sein und der Server 1230 kann die dünnbesetzte Karte aktualisieren, um eine abgebildete Fahrspurmarkierung in das Modell aufzunehmen oder anzupassen. Der Server 1230 kann das Modell basierend auf den verschiedenen Verfahren oder Prozessen aktualisieren, die oben in Bezug auf 24E beschrieben wurden. In einigen Ausführungsformen kann das Aktualisieren des Straßennavigationsmodells des autonomen Fahrzeugs das Speichern von einem oder mehreren Positionsindikator(en) in realen Koordinaten der detektierten Fahrspurmarkierung beinhalten. Das Straßennavigationsmodell des autonomen Fahrzeugs kann auch mindestens eine Zieltrajektorie beinhalten, der ein Fahrzeug entlang des entsprechenden Straßensegments folgen soll, wie in 24E gezeigt.
  • Bei Schritt 2616 kann der Prozess 2600A das Verteilen des aktualisierten Straßennavigationsmodells des autonomen Fahrzeugs an eine Vielzahl von autonomen Fahrzeugen beinhalten. Beispielsweise kann der Server 1230 das aktualisierte Straßennavigationsmodell des autonomen Fahrzeugs an die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 verteilen, die das Modell für die Navigation verwenden können. Das Straßennavigationsmodell des autonomen Fahrzeugs kann über ein oder mehrere Netzwerke (z. B. über ein Mobilfunknetz und/oder das Internet usw.) über drahtlose Kommunikationspfade 1235 verteilt werden, wie in 12 gezeigt.
  • In einigen Ausführungsformen können die Fahrspurmarkierungen unter Verwendung von Daten abgebildet werden, die von einer Vielzahl von Fahrzeugen empfangen werden, beispielsweise durch eine Crowdsourcing-Technik, wie oben in Bezug auf 24E beschrieben. Zum Beispiel kann der Prozess 2600A das Empfangen einer ersten Kommunikation von einem ersten Host-Fahrzeug, einschließlich Ortskennungen, die mit einer detektierten Fahrspurmarkierung assoziiert sind, und das Empfangen einer zweiten Kommunikation von einem zweiten Host-Fahrzeug, einschließlich zusätzlicher Ortskennungen, die mit der detektierten Fahrspurmarkierung assoziiert sind, beinhalten. Zum Beispiel kann die zweite Kommunikation von einem nachfolgenden Fahrzeug, das auf demselben Straßensegment fährt, oder von demselben Fahrzeug auf einer nachfolgenden Fahrt entlang desselben Straßensegments empfangen werden. Der Prozess 2600A kann ferner das Verfeinern einer Bestimmung von mindestens einer Position, die mit der detektierten Fahrspurmarkierung assoziiert ist, basierend auf den Ortskennungen, die in der ersten Kommunikation empfangen werden, und basierend auf den zusätzlichen Ortskennungen, die in der zweiten Kommunikation empfangen werden, beinhalten. Dies kann das Verwenden eines Durchschnitts der mehreren Ortskennungen und/oder das Herausfiltern von „Geister“-Kennungen beinhalten, die die reale Position der Fahrspurmarkierung möglicherweise nicht widerspiegeln.
  • 26B ist ein Ablaufdiagramm, das einen beispielhaften Prozess 2600B zum autonomen Navigieren eines Host-Fahrzeugs entlang einem Straßensegment unter Verwendung abgebildeter Fahrspurmarkierungen zeigt. Der Prozess 2600B kann zum Beispiel durch die Verarbeitungseinheit 110 des autonomen Fahrzeugs 200 durchgeführt werden. Bei Schritt 2620 kann der Prozess 2600B das Empfangen eines Straßennavigationsmodells des autonomen Fahrzeugs von einem serverbasierten System beinhalten. In einigen Ausführungsformen kann das Straßennavigationsmodell des autonomen Fahrzeugs eine Zieltrajektorie für das Host-Fahrzeug entlang dem Straßensegment und Ortskennungen, die mit einer oder mehreren Fahrspurmarkierungen assoziiert sind, die mit dem Straßensegment assoziiert sind, beinhalten. Zum Beispiel kann das Fahrzeug 200 eine dünnbesetzte Karte 800 oder ein anderes Straßennavigationsmodell empfangen, das unter Verwendung des Prozesses 2600A entwickelt wurde. In einigen Ausführungsformen kann die Zieltrajektorie als ein dreidimensionaler Spline repräsentiert werden, wie zum Beispiel in 9B gezeigt. Wie vorstehend in Bezug auf die 24A-F beschrieben, können die Ortskennungen Orte in realen Koordinaten von Punkten beinhalten, die mit der Fahrspurmarkierung assoziiert sind (z. B. Eckpunkte einer gestrichelten Fahrspurmarkierung, Kantenpunkte einer durchgehenden Fahrspurmarkierung, einen Scheitelpunkt zwischen zwei sich schneidenden Fahrspurmarkierungen und anderen Punkten, die mit den sich schneidenden Fahrspurmarkierungen assoziiert sind, eine Mittellinie, die mit der Fahrspurmarkierung assoziiert ist, usw.).
  • Bei Schritt 2621 kann der Prozess 2600B das Empfangen mindestens eines Bilds beinhalten, das eine Umgebung des Fahrzeugs darstellt. Das Bild kann von einer Bilderfassungsvorrichtung des Fahrzeugs empfangen werden, wie etwa durch die Bilderfassungsvorrichtungen 122 und 124, die in der Bildaufnahmeeinheit 120 enthalten sind. Das Bild kann ein Bild einer oder mehrerer Fahrspurmarkierungen beinhalten, ähnlich dem vorstehend beschriebenen Bild 2500.
  • Bei Schritt 2622 kann der Prozess 2600B das Bestimmen einer longitudinalen Position des Host-Fahrzeugs entlang der Zieltrajektorie beinhalten. Wie vorstehend in Bezug auf 25A beschrieben, kann dies auf anderen Informationen im erfassten Bild (z. B. Orientierungspunkte usw.) oder durch Koppelnavigation des Fahrzeugs zwischen detektierten Orientierungspunkten basieren.
  • Bei Schritt 2623 kann der Prozess 2600B das Bestimmen eines erwarteten seitlichen Abstands zur Fahrspurmarkierung basierend auf der bestimmten longitudinalen Position des Host-Fahrzeugs entlang der Zieltrajektorie und basierend auf den zwei oder mehr Ortskennungen, die mit der mindestens einen Fahrspurmarkierung assoziiert sind, beinhalten. So kann beispielsweise das Fahrzeug 200 die dünnbesetzte Karte 800 verwenden, um einen erwarteten seitlichen Abstand zur Fahrspurmarkierung zu bestimmen. Wie in 25B dargestellt, kann die longitudinale Position 2520 entlang einer Zieltrajektorie 2555 in Schritt 2622 bestimmt werden. Unter Verwendung der Ersatzkarte 800 kann das Fahrzeug 200 einen erwarteten Abstand 2540 zur abgebildeten Fahrspurmarkierung 2550 bestimmen, die der longitudinalen Position 2520 entspricht.
  • Bei Schritt 2624 kann der Prozess 2600B das Analysieren des mindestens einen Bilds beinhalten, um die mindestens eine Fahrspurmarkierung zu identifizieren. Das Fahrzeug 200 kann beispielsweise verschiedene Bilderkennungstechniken oder Algorithmen verwenden, um die Fahrspurmarkierung innerhalb des Bilds zu identifizieren, wie oben beschrieben. So kann beispielsweise die Fahrspurmarkierung 2510 durch Bildanalyse des Bilds 2500 detektiert werden, wie in 25A gezeigt.
  • Bei Schritt 2625 kann der Prozess 2600B das Bestimmen eines tatsächlichen seitlichen Abstands zu der mindestens einen Fahrspurmarkierung basierend auf der Analyse des mindestens einen Bilds beinhalten. So kann beispielsweise das Fahrzeug einen Abstand 2530 bestimmen, wie in 25A gezeigt, der den tatsächlichen Abstand zwischen dem Fahrzeug und der Fahrspurmarkierung 2510 darstellt. Der Kamerawinkel, die Geschwindigkeit des Fahrzeugs, die Breite des Fahrzeugs, die Position der Kamera relativ zum Fahrzeug oder verschiedene andere Faktoren können beim Bestimmen des Abstands 2530 berücksichtigt werden.
  • Bei Schritt 2626 kann der Prozess 2600B das Bestimmen einer autonomen Lenkaktion für das Host-Fahrzeug basierend auf einer Differenz zwischen dem erwarteten seitlichen Abstand zu der mindestens einen Fahrspurmarkierung und dem bestimmten tatsächlichen seitlichen Abstand zu der mindestens einen Fahrspurmarkierung beinhalten. So kann beispielsweise, wie oben in Bezug auf 25B beschrieben, das Fahrzeug 200 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 seine Größe) zwischen der tatsächlichen Position des Fahrzeugs und der vom Fahrzeug zu verfolgenden Zieltrajektorie anzeigen. Dementsprechend kann das Fahrzeug eine autonome Lenkaktion oder eine andere autonome Aktion basierend auf der Differenz bestimmen. Wenn beispielsweise der tatsächliche Abstand 2530 kleiner als der erwartete Abstand 2540 ist, wie in 25B gezeigt, kann das Fahrzeug eine autonome Lenkaktion bestimmen, um das Fahrzeug nach links weg von der Fahrspurmarkierung 2510 zu lenken. Somit kann die Position des Fahrzeugs in Bezug auf die Zieltrajektorie korrigiert werden. Der Prozess 2600B kann beispielsweise verwendet werden, um die Navigation des Fahrzeugs zwischen den Orientierungspunkten zu verbessern.
  • Navigation basierend auf Bildanalyse
  • Wie vorstehend beschrieben, können autonome oder teilweise autonome Fahrzeugnavigationssysteme auf Sensoreingaben zurückgreifen, um Informationen bezüglich der aktuellen Bedingungen, Infrastruktur, Objekte usw. in der Umgebung des Fahrzeugs zu sammeln. Basierend auf den gesammelten Informationen kann das Navigationssystem eine oder mehrere Navigationsaktionen bestimmen (basierend auf einer Anwendung einer oder mehrerer Fahrrichtlinien, beispielsweise auf die gesammelten Informationen) und kann die eine oder mehreren Navigationsaktionen durch am Fahrzeug verfügbare Betätigungssysteme implementieren.
  • In einigen Fällen können die Sensoren zum Sammeln von Informationen über die Umgebung des Fahrzeugs eine oder mehrere Kameras, wie beispielsweise Bilderfassungsvorrichtung 122, 124 und 126, wie vorstehend beschrieben, beinhalten. Jeder von einer relevanten Kamera erfasste Rahmen kann von einer oder mehreren Komponenten des Fahrzeugnavigationssystems analysiert werden, um eine gewünschte Funktion des Fahrzeugnavigationssystems bereitzustellen. Zum Beispiel kann ein erfasstes Bild separaten Modulen zugeführt werden, die für das Erfassen bestimmter Objekte oder Merkmale in der Umgebung und Navigieren bei Vorhandensein der erfassten Objekte oder Merkmale verantwortlich sind. Zum Beispiel kann das Navigationssystem separate Module zum Erfassen eines oder mehrerer von Fußgänger, anderen Fahrzeugen, Objekten in einer Fahrbahn, Straßenbegrenzungen, Straßenmarkierungen, Ampel, Verkehrszeichen, geparkten Fahrzeugen, seitlicher Bewegung von Fahrzeugen in der Nähe, Öffnen von Türen von geparkten Fahrzeugen, einer Rad-/Straßenbegrenzung von Fahrzeugen in der Nähe, Drehung, die mit erfassten Rädern von Fahrzeugen in der Nähe assoziiert ist, Bedingungen einer Straßenoberfläche (z. B. nass, schneebedeckt, Eis, Kies usw.) und vieles mehr beinhalten.
  • Jedes Modul oder jede Funktion kann die Analyse der zugeführten Bilder (z. B. jedes erfassten Einzelbilds) beinhalten, um das Vorhandensein bestimmter Merkmale zu erfassen, auf denen die Logik dieses Moduls oder dieser Funktion basiert. Zusätzlich können verschiedene Bildanalysetechniken verwendet werden, um die Rechenressourcen zum Verarbeiten und Analysieren erfasster Bilder zu optimieren. Zum Beispiel kann im Falle eines Moduls, das für das Erfassen einer sich öffnenden Tür verantwortlich ist, die mit diesem Modul assoziierte Bildanalysetechnik eine Abtastung der Bildpixel beinhalten, um zu bestimmen, ob irgendwelche mit einem geparkten Auto assoziiert sind. Wenn keine Pixel identifiziert werden, die ein geparktes Auto repräsentieren, kann die Arbeit des Moduls relativ zu einem bestimmten Einzelbild abgeschlossen werden. Wenn ein geparktes Auto identifiziert wird, kann sich das Modul jedoch darauf konzentrieren, zu identifizieren, welche der mit dem geparkten Auto assoziierten Pixel eine Türkante (z. B. eine hinterste Türkante) repräsentieren. Diese Pixel können analysiert werden, um zu bestimmen, ob es Belege dafür gibt, dass die Tür offen oder vollständig geschlossen ist. Diese Pixel und die Eigenschaften der assoziierten Türkante können über mehrere Einzelbilder hinweg verglichen werden, um ferner zu bestätigen, ob sich eine erfasste Tür in einem Öffnungszustand befindet. In jedem Fall muss sich eine bestimmte Funktion oder ein bestimmtes Modul möglicherweise nur auf Abschnitte des erfassten Einzelbilds konzentrieren, um die gewünschte Funktionalität bereitzustellen.
  • Obwohl verschiedene Bildanalysetechniken verwendet werden können, um die Analyse zu optimieren, um verfügbare Rechenressourcen effizient zu nutzen, kann die parallele Verarbeitung von Einzelbildern über mehrere Funktionen/Module hinweg die Verwendung signifikanter Rechenressourcen beinhalten. Wenn tatsächlich jedes Modul/jede Funktion für seine eigene Bildanalyse verantwortlich ist, um die Merkmale zu identifizieren, auf die es sich stützt, dann kann jedes zusätzliche Modul/jede zusätzliche Funktion, das/die dem Navigationssystem hinzugefügt wird, eine Bildanalysekomponente hinzufügen (z. B. eine Komponente, die mit Pixel-für-Pixel-Überprüfung und -Klassifizierung assoziiert sein kann). Unter der Annahme, dass jedes erfasste Einzelbild Millionen von Pixeln beinhaltet, mehrere Einzelbilder pro Sekunde erfasst werden und die Einzelbilder Dutzenden oder Hunderten von verschiedenen Modulen/Funktionen zur Analyse zugeführt werden, können die Rechenressourcen, die verwendet werden, um die Analysen über viele Funktionen/Module hinweg und mit einer Rate durchzuführen, die für die Fahrt geeignet ist (z. B. mindestens so schnell wie die Einzelbilder erfasst werden), signifikant sein. In vielen Fällen können die Rechenanforderungen der Bildanalysephase die Anzahl von Funktionen oder Merkmalen begrenzen, die das Navigationssystem im Hinblick auf Hardware-Beschränkungen bereitstellen kann usw.
  • Die beschriebenen Ausführungsformen beinhalten eine Bildanalysearchitektur, um diese Herausforderungen in einem Fahrzeugnavigationssystem zu bewältigen. So können beispielsweise die beschriebenen Ausführungsformen ein einheitliches Bildanalyse-Framework beinhalten, das die Bildanalyselast von einzelnen Navigationssystemmodulen/-funktionen entfernen kann. Ein solches einheitliches Bildanalyse-Framework kann beispielsweise eine einzelne Bildanalyseschicht beinhalten, die erfasste Einzelbilder als Eingabe empfängt, die Pixel analysiert und charakterisiert, die mit den erfassten Einzelbildern assoziiert sind, und die charakterisierten Einzelbilder als Ausgabe bereitstellt. Die charakterisierten Einzelbilder können dann den mehreren verschiedenen Funktionen/Modulen des Navigationssystems zur Erzeugung und Implementierung geeigneter Navigationsaktionen basierend auf den charakterisierten Einzelbildern zugeführt werden.
  • In einigen Ausführungsformen kann jedes Pixel eines Bilds analysiert werden, um zu bestimmen, ob das Pixel mit bestimmten Typen von Objekten oder Merkmalen in der Umgebung eines Host-Fahrzeugs assoziiert ist. So kann beispielsweise jedes Pixel innerhalb eines Bilds oder eines Abschnitts eines Bilds analysiert werden, um zu bestimmen, ob sie mit einem anderen Fahrzeug in der Umgebung des Host-Fahrzeugs assoziiert sind. Für jedes Pixel können zusätzliche Informationen bestimmt werden, wie beispielsweise, ob das Pixel einer Kante eines Fahrzeugs, einer Front eines Fahrzeugs usw. entspricht. Solche Informationen können eine genauere Identifikation und eine korrekte Ausrichtung von Begrenzungsrahmen ermöglichen, die zu Navigationszwecken um erkannte Fahrzeuge gezogen werden können.
  • 27 veranschaulicht eine beispielhafte Analyse, die an Pixeln durchgeführt wird, die mit einem Zielfahrzeug assoziiert sind, in Übereinstimmung mit den offenbarten Ausführungsformen. 27 kann ein Bild oder einen Abschnitt eines Bilds darstellen, das von einer Bilderfassungsvorrichtung, wie beispielsweise der Bildaufnahmeeinheit 120, erfasst wird. Das Bild kann eine Repräsentation eines Fahrzeugs 2710 innerhalb der Umgebung eines Host-Fahrzeugs, wie beispielsweise des oben beschriebenen Fahrzeugs 200, beinhalten. Das Bild kann aus einer Vielzahl von einzelnen Pixeln, wie beispielsweise den Pixeln 2722 und 2724, zusammengesetzt sein. Ein Navigationssystem (z. B. Verarbeitungseinheit 110) kann jedes Pixel analysieren, um zu bestimmen, ob es mit einem Zielfahrzeug assoziiert ist. Wie hierin verwendet, kann sich ein Zielfahrzeug auf ein Fahrzeug innerhalb der Umgebung eines Host-Fahrzeugs beziehen, das ein Potenzial aufweist, relativ zum Host-Fahrzeug zu navigieren. Dies kann beispielsweise Fahrzeuge, die auf einem Anhänger oder Träger transportiert werden, Reflexionen von Fahrzeugen oder andere Repräsentationen von Fahrzeugen, die in einem Bild erkannt werden können, ausschließen, wie nachfolgend ausführlicher erörtert wird. Die Analyse kann an jedem Pixel eines erfassten Bilds durchgeführt werden oder kann an jedem Pixel innerhalb eines Kandidatenbereichs durchgeführt werden, der relativ zum erfassten Bild identifiziert wird.
  • Das Navigationssystem kann ferner konfiguriert sein, um jedes Pixel zu analysieren, um andere relevante Informationen zu bestimmen. So kann beispielsweise jedes Pixel, das als mit einem Zielfahrzeug assoziiert bestimmt wird, analysiert werden, um zu bestimmen, mit welchem Abschnitt eines Fahrzeugs das Pixel assoziiert ist. Dies kann das Bestimmen beinhalten, ob Pixel mit einer Kante des Fahrzeugs assoziiert sind. Wie beispielsweise in 27 gezeigt, kann das Fahrzeug 2710 mit einer Kante 2712 assoziiert sein, die im Bild repräsentiert ist. Beim Analysieren des Pixels 2724 kann das Navigationssystem bestimmen, dass das Pixel 2724 ein Begrenzungspixel ist und somit die Kante 2712 beinhaltet. In einigen Ausführungsformen können Pixel auch analysiert werden, um zu bestimmen, ob sie mit einer Front des Fahrzeugs assoziiert sind. Die Begriffe Begrenzung, Kante und Front beziehen sich auf eine virtuelle Form, die durch das Navigationssystem definiert ist und die ein Objekt von Interesse zumindest teilweise begrenzt oder umgibt, und in diesem Beispiel das Fahrzeug 2710. Die Form kann jede Form annehmen und kann fest oder spezifisch für einen Objekttyp oder eine Objektklasse sein. Typischerweise und als Beispiel kann die Form ein Rechteck beinhalten, das eng um die Konturen des Objekts von Interesse passt. In anderen Beispielen kann für mindestens einige Objektklassen ein 3D-Kasten und jede Front des Kastens eine Front einer entsprechenden Front des 3D-Objekts in der Umgebung des Host-Fahrzeugs eng begrenzen. In diesem speziellen Beispiel begrenzt ein 3D-Kasten das Fahrzeug 2710.
  • Somit kann das Navigationssystem beispielsweise das Pixel 2722 analysieren, um zu bestimmen, dass es auf eine Front 2730 des Fahrzeugs 2710 fällt. Das Navigationssystem kann ferner einen oder mehrere geschätzte Abstandswerte vom Pixel 2722 bestimmen. In einigen Ausführungsformen können ein oder mehrere Abstände vom Pixel 2722 zu einer Kante der Front 2730 geschätzt werden. Im Falle eines 3D-Kastens kann der Abstand von einem gegebenen Pixel zur Kante der Front des 3D-Kastens, der dieses Pixel begrenzt, bestimmt werden. Beispielsweise kann das Navigationssystem den Abstand 2732 zu einer Seite der Front 2730 und den Abstand 2734 zu einer unteren Kante der Front 2730 schätzen. Die Schätzung kann darauf basieren, welcher Abschnitt des Fahrzeugs 2722 bestimmt wird, um eine typische Abmessung von diesem Abschnitt des Fahrzeugs zur Kante der Front 2730 darzustellen. Beispielsweise kann das Pixel 2722 einem bestimmten Abschnitt eines Stoßfängers entsprechen, der vom System erkannt wird. Andere Pixel, wie beispielsweise Pixel, die ein Nummernschild, Rücklicht, Reifen, Abgasrohr oder dergleichen darstellen, können mit unterschiedlichen geschätzten Abständen assoziiert werden. Obwohl in 27 nicht gezeigt, können verschiedene andere Abstände geschätzt werden, einschließlich eines Abstands zu einer oberen Kante der Front 2730, Abstände zu vorderen oder hinteren Kanten (abhängig von der Ausrichtung des Fahrzeugs 2710), Abstände zur Kante 2712 des Fahrzeugs 2710 oder dergleichen. Die Abstände können in beliebigen geeigneten Einheiten zur Analyse durch das Navigationssystem gemessen werden. In einigen Ausführungsformen können die Abstände in Pixeln relativ zum Bild gemessen werden. In anderen Ausführungsformen können die Abstände reale Abstände darstellen, die relativ zum Zielfahrzeug gemessen werden (z. B. in Zentimetern, Metern, Zoll, Fuß usw.).
  • Jedes geeignete Verfahren kann von der Verarbeitungseinheit 110 verwendet werden, um die vorstehend beschriebene pixelbasierte Analyse bereitzustellen. In einigen Ausführungsformen kann das Navigationssystem ein trainiertes neuronales Netzwerk beinhalten, das einzelne Pixel innerhalb eines Bilds gemäß einem Trainingsprotokoll des neuronalen Netzwerks charakterisiert. Der Trainingsdatensatz, der zum Trainieren des neuronalen Netzwerks verwendet wird, kann eine Vielzahl von erfassten Bildern einschließlich Repräsentationen von Fahrzeugen beinhalten. Jedes Pixel des Bilds kann gemäß einem vorbestimmten Satz von Eigenschaften, die das neuronale Netzwerk erkennen sollte, überprüft und charakterisiert werden. Beispielsweise kann jedes Pixel klassifiziert werden, um anzuzeigen, ob es Teil einer Repräsentation eines Zielfahrzeugs ist, ob es eine Kante des Zielfahrzeugs beinhaltet, ob es eine Front des Zielfahrzeugs darstellt, gemessene Abstände vom Pixel zu Kanten der Front (die in Pixeln oder realen Abständen gemessen werden können) oder andere relevante Informationen. Die bezeichneten Bilder können als Trainingsdatensatz für das neuronale Netzwerk verwendet werden.
  • Das resultierende trainierte Modell kann verwendet werden, um Informationen zu analysieren, die mit einem Pixel oder Cluster von Pixeln assoziiert sind, um zu identifizieren, ob es ein Zielfahrzeug darstellt, ob es sich auf einer Front oder Kante des Fahrzeugs befindet, Abstände zu einer Kante einer Front oder andere Informationen. Während das System in der gesamten vorliegenden Offenbarung als ein neuronales Netzwerk beschrieben wird, können verschiedene andere Maschinenlemalgorithmen verwendet werden, einschließlich einer logistischen Regression, einer linearen Regression, einer Regression, eines Random-Forest-Modells, eines K-Nearest-Neighbor-Modells (KNN-Modells), eines K-Means-Modells, eines Entscheidungsbaums, eines Cox-Proportional-Hazards-Regressionsmodells, eines Naive-Bayes-Modells, eines Support-Vector-Machines-Modells (SVM-Modells), eines Gradient-Boosting-Algorithmus, eines Deep-Learning-Modells oder einer beliebigen geeigneten Form von Maschinenlernmodell oder Algorithmus.
  • Basierend auf der Abbildung jedes Pixels auf Begrenzungen oder Frontflächen des Zielfahrzeugs 2710 kann das Navigationssystem eine Begrenzung des Fahrzeugs 2710 genauer bestimmen, was es dem Host-Fahrzeug ermöglichen kann, eine oder mehrere geeignete Navigationsaktionen genau zu bestimmen. Zum Beispiel kann das System in der Lage sein, eine vollständige Begrenzung des Fahrzeugs zu bestimmen, die durch den Rand 2712 dargestellt wird. In einigen Ausführungsformen kann das Navigationssystem einen Begrenzungsrahmen 2720 für ein Fahrzeug bestimmen, der die Begrenzung des Fahrzeugs innerhalb des Bilds darstellen kann. Der Begrenzungsrahmen 2720, der basierend auf der Analyse jedes Pixels bestimmt wird, kann die Begrenzung des Fahrzeugs 2710 genauer definieren als herkömmliche Objekterkennungsverfahren.
  • Ferner kann das System eine Begrenzung mit einer Ausrichtung bestimmen, die die Ausrichtung des Zielfahrzeugs genauer darstellt. Zum Beispiel können basierend auf einer kombinierten Analyse von Pixeln innerhalb der Front 2730 des Fahrzeugs 2710 (z. B. Pixel 2722) Kanten der Front 2730 geschätzt werden. Durch Identifizieren diskreter Frontflächen des Fahrzeugs 2710, die im Bild dargestellt werden, kann das System den Begrenzungsrahmen 2720 genauer ausrichten, sodass er einer Ausrichtung des Fahrzeugs 2710 entspricht. Die verbesserte Genauigkeit der Ausrichtung des Begrenzungsrahmens kann die Fähigkeit des Systems verbessern, geeignete Navigationsaktionsantworten zu bestimmen. Zum Beispiel kann für Fahrzeuge, die von seitlich ausgerichteten Kameras erkannt werden, eine unsachgemäße Ausrichtung eines Begrenzungsrahmens anzeigen, dass das Fahrzeug in Richtung des Host-Fahrzeugs fährt (z. B. ein Schnittszenario). Die offenbarten Techniken können besonders vorteilhaft in Situationen sein, in denen Zielfahrzeuge viel, wenn nicht gar ein erfasstes Bild belegen (z. B. wenn mindestens eine Kante des Fahrzeugs nicht vorhanden ist, um die Ausrichtung des Begrenzungsrahmens vorzuschlagen), in dem Reflexionen eines Zielfahrzeugs in einem Bild enthalten sind, in dem ein Fahrzeug auf einem Anhänger oder Träger getragen wird usw.
  • 28 ist eine Veranschaulichung eines beispielhaften Bilds 2800, das eine partielle Repräsentation eines Fahrzeugs 2810 beinhaltet, in Übereinstimmung mit den offenbarten Ausführungsformen. Wie gezeigt, kann mindestens eine Kante (oder ein Abschnitt einer Kante) des Fahrzeugs 2810 aus dem Bild 2800 ausgeschlossen werden. In einigen Ausführungsformen kann dies darauf zurückzuführen sein, dass sich ein Abschnitt des Fahrzeugs 2810 außerhalb des Sichtfelds der Kamera befindet. In anderen Ausführungsformen kann ein Abschnitt des Fahrzeugs 2810 aus der Sicht verdeckt sein, zum Beispiel durch ein Gebäude, eine Vegetation, ein anderes Fahrzeug usw. Während die Konfiguration im Bild 2800 beispielhaft bereitgestellt ist, kann das Fahrzeug 2810 in einigen Ausführungsformen einen größeren Abschnitt des Bilds 2800 aufnehmen, sodass einige oder alle Kanten ausgeschlossen sind.
  • Unter Verwendung herkömmlicher Objekterkennungstechniken kann eine für das Fahrzeug 2810 erkannte Begrenzung ungenau sein, da Kanten, die nicht im Bild enthalten sind, benötigt werden können, um eine Form und/oder Ausrichtung des Fahrzeugs zu bestimmen. Dies kann insbesondere für Bilder gelten, bei denen das Fahrzeug das meiste oder das gesamte Bild aufnimmt. Unter Verwendung der hierin offenbarten Techniken kann jedes Pixel, das mit dem Fahrzeug 2810 im Bild 2800 assoziiert ist, analysiert werden, um den Begrenzungsrahmen 2820 zu bestimmen, unabhängig davon, ob das vollständige Fahrzeug 2810 im Bild repräsentiert ist. Beispielsweise kann ein trainiertes neuronales Netzwerkmodell verwendet werden, um zu bestimmen, dass das Pixel 2824 eine Kante des Fahrzeugs 2810 beinhaltet. Das trainierte Modell kann auch bestimmen, dass sich das Pixel 2822 auf einer Front des Fahrzeugs 2810 befindet, ähnlich dem Pixel 2722. Das System kann auch einen oder mehrere Abstände vom Pixel 2822 zu einer Kante der Front des Fahrzeugs bestimmen, ähnlich den vorstehend beschriebenen Abständen 2732 und 2734. In einigen Ausführungsformen können diese geschätzten Entfernungsinformationen verwendet werden, um eine Begrenzung des Fahrzeugs zu definieren, die nicht im Bild enthalten ist. Beispielsweise kann das Pixel 2822 analysiert werden, um eine geschätzte Entfernung vom Pixel 2822 zu einer Kante des Fahrzeugs 2810 zu bestimmen, die jenseits der Kante des Einzelbilds liegt. Dementsprechend kann basierend auf einer kombinierten Analyse der Pixel, die mit dem Fahrzeug 2810 assoziiert sind, die im Bild erscheinen, eine genaue Begrenzung für das Fahrzeug 2810 bestimmt werden. Diese Informationen können zum Bestimmen einer Navigationsaktion für das Host-Fahrzeug verwendet werden. Beispielsweise kann eine unsichtbare Hinterkante eines Fahrzeugs (z. B. ein Lastwagen, Bus, Anhänger usw.) basierend auf einem Abschnitt des Fahrzeugs bestimmt werden, der sich innerhalb des Einzelbilds befindet. Dementsprechend kann das Navigationssystem schätzen, welcher Freiraum für das Zielfahrzeug erforderlich ist, um zu bestimmen, ob das Host-Fahrzeug bremsen oder verlangsamen, sich in eine benachbarte Fahrspur bewegen, beschleunigen usw. muss.
  • In einigen Ausführungsformen können die offenbarten Techniken verwendet werden, um Begrenzungsrahmen zu bestimmen, die Fahrzeuge darstellen, die keine Zielfahrzeuge sind und somit nicht mit einem Begrenzungsrahmen für Navigationsbestimmungen assoziiert werden sollten. In einigen Ausführungsformen kann dies Fahrzeuge beinhalten, die von anderen Fahrzeugen gezogen oder getragen werden. 29 ist eine Veranschaulichung eines beispielhaften Bilds 2900, das Fahrzeuge auf einem Träger zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen. Das Bild 2900 kann von einer Kamera eines Host-Fahrzeugs erfasst werden, wie beispielsweise der Bilderfassungsvorrichtung 120 des Fahrzeugs 200, wie oben beschrieben. Im in 29 gezeigten Beispiel kann das Bild 2900 ein Seitenansichtsbild sein, das von einer Kamera aufgenommen wird, die auf einer Seite des Fahrzeugs 200 positioniert ist. Das Bild 2900 kann ein Trägerfahrzeug 2910 beinhalten, das ein oder mehrere Fahrzeuge 2920 und 2930 tragen kann. Während das Trägerfahrzeug 2910 als ein Automobiltransportanhänger gezeigt ist, können verschiedene andere Fahrzeugträger identifiziert werden. Zum Beispiel kann das Trägerfahrzeug 2910 einen Flachbettanhänger, einen Abschleppwagen, einen Einzelwagenanhänger, einen Kippwagenträger, einen Schwanenhalsanhänger, einen Drop-Deck-Anhänger, einen Keilanhänger, einen Automobillieferwagen oder ein beliebiges anderes Fahrzeug zum Transportieren eines anderen Fahrzeugs beinhalten.
  • Unter Verwendung der oben beschriebenen Techniken kann jedes der Pixel im Bild analysiert werden, um eine Grenze der Fahrzeuge zu identifizieren. So können beispielsweise Pixel, die mit dem Trägerfahrzeug 2910 assoziiert sind, analysiert werden, um eine Grenze des Trägerfahrzeugs 2910 zu bestimmen, wie oben beschrieben. Das System kann auch Pixel analysieren, die mit den Fahrzeugen 2920 und 2930 assoziiert sind. Basierend auf der Analyse der Pixel kann das System bestimmen, dass die Fahrzeuge 2920 und 2930 keine Zielfahrzeuge sind und somit nicht mit einem Begrenzungsrahmen assoziiert werden sollten. Diese Analyse kann auf vielfältige Weise durchgeführt werden. So kann beispielsweise das oben beschriebene trainierte neuronale Netzwerk unter Verwendung eines Satzes von Trainingsdaten einschließlich Bildern von getragenen Fahrzeugen trainiert werden. Pixel, die mit den getragenen Fahrzeugen im Bild assoziiert sind, können als getragene Fahrzeuge oder Nicht-Zielfahrzeuge bezeichnet werden. Dementsprechend kann das trainierte neuronale Netzwerkmodell basierend auf Pixeln im Bild 2900 bestimmen, dass die Fahrzeuge 2920 und 2930 auf dem Trägerfahrzeug 2910 transportiert werden. So kann beispielsweise das neuronale Netzwerk so trainiert werden, dass ein Pixel innerhalb der Fahrzeuge 2920 oder 2930 mit einer Kante des Fahrzeugs 2910 anstatt einer Kante der Fahrzeuge 2920 oder 2930 assoziiert ist. Somit kann keine Grenze für die getragenen Fahrzeuge bestimmt werden. Die Fahrzeuge 2920 und 2930 können auch als Fahrzeuge identifiziert werden, die unter Verwendung anderer Techniken getragen werden, beispielsweise basierend auf der Position des Fahrzeugs relativ zum Fahrzeug 2910, einer Ausrichtung des Fahrzeugs, der Position des Fahrzeugs relativ zu anderen Elementen im Bild usw.
  • In einigen Ausführungsformen kann das System in ähnlicher Weise bestimmen, dass Reflexionen von Fahrzeugen innerhalb eines Bilds nicht als Zielfahrzeuge betrachtet werden sollten und daher keine Begrenzung für die Reflexionen bestimmen können. 30A und 30B veranschaulichen beispielhafte Bilder 3000A und 3000B, die Reflexionen von Fahrzeugen beinhalten, in Übereinstimmung mit offenbarten Ausführungsformen. In einigen Ausführungsformen können die Reflexionen auf einer Oberfläche einer Straße basieren. Beispielsweise kann, wie in 30A gezeigt, das Bild 3000A ein Fahrzeug 3010 beinhalten, das auf einer reflektierenden oder zumindest teilweise reflektierenden Oberfläche fährt, wie etwa einer nassen Straße. Dementsprechend kann das Bild 3000A auch eine Reflexion 3030 des Fahrzeugs 3010 beinhalten. Solche Reflexionen können in automatisierten Fahrzeugsystemen problematisch sein, da in einigen Fällen die Reflexion 3030 vom System als Zielfahrzeug interpretiert werden kann. Daher kann die Reflexion 3030 mit ihrem eigenen Begrenzungsrahmen assoziiert sein und kann bei Fahrzeugnavigationsentscheidungen berücksichtigt werden. Beispielsweise kann das Host-Fahrzeug 200 bestimmen, dass die Reflexion 3030 viel näher als das Fahrzeug 3010 ist, was bewirken kann, dass das Fahrzeug 200 unnötige Navigationsaktionen durchführt (z. B. Betätigen einer Bremse, Durchführen eines Spurwechsels usw.).
  • Unter Verwendung der offenbarten Verfahren können Pixel, die mit der Reflexion 3030 assoziiert sind, analysiert werden, um zu bestimmen, dass die Reflexion 3030 kein Zielfahrzeug ist und dementsprechend eine Begrenzung des reflektierten Fahrzeugs nicht bestimmt werden sollte. Dies kann ähnlich den vorstehend beschriebenen Verfahren in Bezug auf die Fahrzeuge auf einem Träger durchgeführt werden. Beispielsweise kann ein neuronales Netzwerkmodell unter Verwendung von Bildern trainiert werden, die Reflexionen von Fahrzeugen enthalten, sodass einzelne Pixel, die mit den Reflexionen assoziiert sind, als eine Reflexion anzeigend oder kein Zielfahrzeug anzeigend identifiziert werden können. Dementsprechend kann das trainierte Modell in der Lage sein, Pixel zu unterscheiden, die mit einem Zielfahrzeug assoziiert sind, wie etwa dem Fahrzeug 3010 und der Reflexion 3030. In einigen Ausführungsformen kann die Reflexion 3030 als eine Reflexion basierend auf ihrer Ausrichtung, ihrer Position relativ zum Fahrzeug 3010, ihrer Position relativ zu anderen Elementen des Bilds 3000A usw. identifiziert werden. Das System kann einen Begrenzungsrahmen 3020 bestimmen, der mit dem Fahrzeug 3010 assoziiert ist, kann jedoch keinen Begrenzungsrahmen oder eine andere Begrenzung bestimmen, die mit der Reflexion 3030 assoziiert ist. Während die Reflexion 3030 vorstehend als auf einer nassen Straßenoberfläche erscheinend beschrieben ist, kann die Reflexion auf anderen Oberflächen erscheinen, wie etwa einem Metall oder einer anderen reflektierenden Oberfläche, einer Mirage-Reflexion aufgrund einer erwärmten Straßenoberfläche oder dergleichen.
  • Zusätzlich zu Reflexionen auf Straßen können Reflexionen von Fahrzeugen basierend auf Reflexion in anderen Oberflächen detektiert werden. Beispielsweise kann, wie in 30B gezeigt, eine Reflexion eines Fahrzeugs innerhalb eines Bilds auf der Oberfläche eines anderen Fahrzeugs erscheinen. Das Bild 3000B kann ein Bild darstellen, das von einer Kamera des Fahrzeugs 200 erfasst wird, wie etwa einer Seitenansichtskamera. Das Bild 3000B kann eine Repräsentation eines anderen Fahrzeugs 3050 beinhalten, das in diesem Beispiel neben dem Fahrzeug 200 fahren kann. Eine Oberfläche des Fahrzeugs 3050 kann zumindest teilweise reflektierend sein, sodass die Reflexion 3060 eines zweiten Fahrzeugs im Bild 3000B erscheinen kann. Die Reflexion 3060 kann eine Reflexion des Host-Fahrzeugs 200 sein, die in der Oberfläche des Fahrzeugs 3050 erscheint, oder kann eine Reflexion eines anderen Zielfahrzeugs sein. Ähnlich wie bei der Reflexion 3030 kann das System Pixel analysieren, die mit der Reflexion 3060 assoziiert sind, um zu bestimmen, dass die Reflexion 3060 kein Zielfahrzeug darstellt und somit keine Begrenzung für die Reflexion 3060 bestimmt werden sollte. So kann beispielsweise das neuronale Netzwerk so trainiert werden, dass ein Pixel innerhalb der Reflexion 3060 mit einer Kante des Fahrzeugs 3050 anstatt einer Kante der Repräsentation des reflektierten Fahrzeugs assoziiert ist. Somit kann keine Begrenzung für die Reflexion 3060 bestimmt werden. Sobald die Reflexion 3060 als eine Reflexion identifiziert wurde, kann sie zum Zwecke der Bestimmung von Navigationsaktionen ignoriert werden. Wenn sich beispielsweise die Bewegung der Reflexion in Richtung des Host-Fahrzeugs zu bewegen scheint, kann das Host-Fahrzeug nicht bremsen oder andere Navigationsaktionen durchführen, die es sonst durchführen könnte, wenn die Bewegung von einem Zielfahrzeug durchgeführt würde. Während die Reflexion 3060 in 30B als auf der Seite eines Tankwagens erscheinend dargestellt ist, kann sie auch auf anderen Oberflächen erscheinen, wie etwa einer glänzend lackierten Oberfläche eines anderen Fahrzeugs (z. B. einer Tür, einer Seitenwand, einem Stoßfänger usw.), einer Chromoberfläche, einer Glasoberfläche eines anderen Fahrzeugs (z. B. eines Fensters usw.), eines Gebäudes (z. B. eines Gebäudefensters, einer Metalloberfläche usw.) oder einer beliebigen anderen reflektierenden Oberfläche, die ein Bild eines Zielfahrzeugs reflektieren kann.
  • 31A ist ein Ablaufdiagramm, das einen beispielhaften Prozess 3100 zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einem Bild zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen. Der Prozess 3100 kann durch mindestens eine Verarbeitungsvorrichtung, wie etwa die Verarbeitungseinheit 110, wie vorstehend beschrieben, durchgeführt werden. Mit anderen Worten kann ein Prozessor eine oder mehrere Strukturen beinhalten, die logische Vorgänge durchführen, ob solche Strukturen zusammengelegt, verbunden oder ausgeräumt sind. In einigen Ausführungsformen kann ein nichtflüchtiges computerlesbares Medium Anweisungen enthalten, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, den Prozess 3100 durchzuführen. Ferner ist der Prozess 3100 nicht notwendigerweise auf die in 31A gezeigten Schritte beschränkt und beliebige Schritte oder Prozesse der verschiedenen in der vorliegenden Offenbarung beschriebenen Ausführungsformen können ebenfalls im Prozess 3100 enthalten sein, einschließlich der vorstehend in Bezug auf die 27-30B beschriebenen.
  • In Schritt 3110 kann der Prozess 3100 das Empfangen von einer Kamera eines Host-Fahrzeugs mindestens eines erfassten Bilds beinhalten, das eine Umgebung des Host-Fahrzeugs darstellt. Beispielsweise kann die Bildaufnahmeeinheit 120 ein oder mehrere Bilder erfassen, die eine Umgebung des Host-Fahrzeugs 200 darstellen. Die erfassten Bilder können Bildern wie den vorstehend in Bezug auf die 27-30B beschriebenen entsprechen.
  • In Schritt 3120 kann der Prozess 3100 das Analysieren eines oder mehrerer Pixel des mindestens einen erfassten Bilds beinhalten, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt eines Zielfahrzeugs darstellen. So können beispielsweise die Pixel 2722 und 2724 wie vorstehend beschrieben analysiert werden, um zu bestimmen, dass die Pixel einen Abschnitt des Fahrzeugs 2710 darstellen. In einigen Ausführungsformen kann die Analyse für jedes Pixel des erfassten Bilds durchgeführt werden. In anderen Ausführungsformen kann die Analyse an einer Teilmenge von Pixeln durchgeführt werden. So kann beispielsweise die Analyse an jedem Pixel eines Zielfahrzeugkandidatenbereichs durchgeführt werden, der relativ zum erfassten Bild identifiziert wird. Solche Bereiche können beispielsweise unter Verwendung des nachfolgend ausführlich beschriebenen Prozesses 3500 bestimmt werden. Die Analyse kann unter Verwendung verschiedener Techniken einschließlich des oben beschriebenen trainierten Systems durchgeführt werden. Dementsprechend kann ein trainiertes System, das ein oder mehrere neuronale Netzwerke beinhalten kann, mindestens einen Teil der Analyse des einen oder der mehreren Pixel durchführen.
  • In Schritt 3130 kann der Prozess 3100 das Bestimmen eines oder mehrerer geschätzter Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs für Pixel beinhalten, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen. So kann beispielsweise, wie vorstehend beschrieben, die Verarbeitungseinheit 110 bestimmen, dass das Pixel 2722 eine Front 2730 des Fahrzeugs 2710 darstellt. Dementsprechend können ein oder mehrere Abstände zu einer Kante der Front 2730, wie beispielsweise die Abstände 2732 und 2734, bestimmt werden. So können beispielsweise die Abstandswerte einen Abstand von einem bestimmten Pixel zu mindestens einer von einer Vorderkante, einer Hinterkante, einer Seitenkante, einer Oberkante oder einer Unterkante des Zielfahrzeugs beinhalten. Die Abstandswerte können in Pixeln basierend auf dem Bild gemessen werden oder können in realen Abständen relativ zu dem Zielfahrzeug gemessen werden. In einigen Ausführungsformen kann der Prozess 3100 ferner das Bestimmen beinhalten, ob das eine oder die mehreren Pixel ein Begrenzungspixel beinhalten, das eine Repräsentation von mindestens einem Abschnitt der mindestens einen Kante des Zielfahrzeugs beinhaltet. So kann beispielsweise das Pixel 2724 als ein Pixel identifiziert werden, das eine Repräsentation der Kante 2712 beinhaltet, wie vorstehend beschrieben.
  • In Schritt 3140 kann der Prozess 3100 das Erzeugen, basierend auf der Analyse des einen oder der mehreren Pixel, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die dem einen oder den mehreren Pixeln zugeordnet sind, mindestens eines Abschnitts einer Grenze relativ zu dem Zielfahrzeug beinhalten. So kann beispielsweise Schritt 3140 das Bestimmen eines Abschnitts einer Begrenzung beinhalten, die durch die Kante 3712 dargestellt wird, wie in 27 gezeigt. Dies kann basierend auf einer kombinierten Analyse aller Pixel bestimmt werden, die dem Zielfahrzeug 2710 innerhalb des Bilds zugeordnet sind. So kann beispielsweise die Kante 3712 basierend auf einer Kombination der geschätzten Abstandswerte geschätzt werden, die basierend auf Pixeln erzeugt werden, die auf einer Front des Fahrzeugs enthalten sind, zusammen mit Pixeln, die als die Kante 3712 beinhaltend identifiziert wurden. In einigen Ausführungsformen kann der Abschnitt der Begrenzung mindestens einen Abschnitt eines Begrenzungsrahmens beinhalten, wie beispielsweise den Begrenzungsrahmen 2720.
  • Der Prozess 3100 kann in bestimmten Szenarien durchgeführt werden, um die Genauigkeit der bestimmten Begrenzung eines Zielfahrzeugs zu verbessern. So kann beispielsweise in einigen Ausführungsformen mindestens ein Abschnitt mindestens einer Kante (oder einer oder mehrerer Kanten) des Zielfahrzeugs nicht im erfassten Bild dargestellt werden, wie in 28 veranschaulicht. Unter Verwendung des Prozesses 3100 kann die Begrenzung des Zielfahrzeugs (z. B. Fahrzeug 2810) basierend auf den Pixeln bestimmt werden, die mit dem Zielfahrzeug assoziiert sind, die im Bild erscheinen. In einigen Ausführungsformen kann der Prozess 3100 ferner das Bestimmen, basierend auf der Analyse des erfassten Bilds, ob das Zielfahrzeug von einem anderen Fahrzeug oder einem Anhänger getragen wird, beinhalten, wie vorstehend in Bezug auf 29 beschrieben. Dementsprechend kann die Verarbeitungseinheit 110 keine Begrenzung für ein getragenes Fahrzeug bestimmen. Ebenso kann der Prozess 3100 das Bestimmen, basierend auf der Analyse des erfassten Bilds, ob das Zielfahrzeug in einer Repräsentation einer Reflexion im mindestens einen Bild enthalten ist, beinhalten, wie vorstehend in Bezug auf die 30A und 30B beschrieben. In solchen Ausführungsformen kann die Verarbeitungseinheit 110 keine Begrenzung für die Fahrzeugreflexion bestimmen.
  • In einigen Ausführungsformen kann der Prozess 3100 zusätzliche Schritte basierend auf der vorstehenden Analyse beinhalten. So kann beispielsweise der Prozess 3100 das Bestimmen einer Ausrichtung des mindestens einen Abschnitts der erzeugten Begrenzung relativ zu dem Zielfahrzeug beinhalten. Wie vorstehend beschrieben, kann die Ausrichtung basierend auf der kombinierten Analyse jedes der Pixel bestimmt werden, die dem Zielfahrzeug zugeordnet sind, einschließlich einer oder mehrerer identifizierter Frontflächen, die dem Zielfahrzeug zugeordnet sind. Die bestimmte Ausrichtung kann eine Aktion (oder zukünftige Aktion oder zukünftiger Zustand) anzeigen, die vom Zielfahrzeug durchgeführt wird oder durchgeführt wird. So kann beispielsweise die bestimmte Ausrichtung eine seitliche Bewegung relativ zum Host-Fahrzeug (z. B. ein Spurwechselmanöver) durch das Zielfahrzeug oder ein Manöver durch das Zielfahrzeug in Richtung eines Weges des Host-Fahrzeugs anzeigen. Der Prozess 3100 kann ferner das Bestimmen einer Navigationsaktion für das Host-Fahrzeug basierend auf der bestimmten Ausrichtung des mindestens einen Abschnitts der Begrenzung beinhalten und das Fahrzeug veranlassen, die bestimmte Navigationsaktion zu implementieren. So kann beispielsweise die bestimmte Navigationsaktion ein Zusammenführungsmanöver, ein Bremsmanöver, ein Beschleunigungsmanöver, ein Spurwechselmanöver, ein Ausweichmanöver oder ein anderes Ausweichmanöver oder dergleichen beinhalten. In einigen Ausführungsformen kann der Prozess 3100 ferner das Bestimmen eines Abstands des Abschnitts der Begrenzung zum Host-Fahrzeug beinhalten. Dies kann das Bestimmen einer Position des Abschnitts der Begrenzung innerhalb des Bilds und das Schätzen eines Abstands zum Host-Fahrzeug basierend auf der Position beinhalten. Verschiedene andere Techniken, die in der gesamten vorliegenden Offenbarung beschrieben sind, können ebenfalls verwendet werden, um den Abstand zu bestimmen. Der Prozess 3100 kann ferner das Veranlassen des Fahrzeugs beinhalten, eine Navigationsaktion basierend mindestens auf dem bestimmten Abstand zu implementieren.
  • In einigen Ausführungsformen kann der Prozess 3100 das Bestimmen von Informationen über das Zielfahrzeug basierend auf den analysierten Pixeln beinhalten. So kann beispielsweise der Prozess 3100 das Bestimmen eines Typs des Zielfahrzeugs und das Ausgeben des Typs des Zielfahrzeugs beinhalten. Derartige Typen von Zielfahrzeugen können mindestens eines von einem Bus, Lastwagen, Fahrrad, Motorrad, Van, Auto, Baufahrzeug, Einsatzfahrzeug oder anderen Fahrzeugtypen beinhalten. Der Typ des Zielfahrzeugs kann basierend auf einer Größe des Abschnitts der Begrenzung bestimmt werden. So kann beispielsweise die Anzahl der innerhalb der Begrenzung enthaltenen Pixel den Typ des Zielfahrzeugs angeben. In einigen Ausführungsformen kann die Größe auf einer realen Größe basieren, die basierend auf dem Abschnitt der Begrenzung geschätzt wird. So können beispielsweise, wie vorstehend beschrieben, die Entfernungen zur Kante des Fahrzeugs basierend auf Pixeln geschätzt werden, die mit dem Fahrzeug assoziiert sind, die im Bild erscheinen. Basierend auf dieser Analyse kann eine genaue Begrenzung für das Fahrzeug bestimmt werden, obwohl es sich außerhalb des Einzelbilds befindet.
  • Wie vorstehend in Bezug auf 27 beschrieben, kann das Navigationssystem konfiguriert sein, um partielle Repräsentationen von Zielfahrzeugen in einem Bild zu analysieren und Grenzen der Zielfahrzeuge zu bestimmen, die nicht im Bild enthalten sind. Dies kann für Navigationsaktionsbestimmungen wichtig sein. 31B ist ein Ablaufdiagramm, das einen beispielhaften Prozess 3150 zum Navigieren eines Host-Fahrzeugs basierend auf einer partiellen Repräsentation eines Fahrzeugs in einem Bild zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen. Der Prozess 3150 kann durch mindestens eine Verarbeitungsvorrichtung, wie etwa die Verarbeitungseinheit 110, wie vorstehend beschrieben, durchgeführt werden. In einigen Ausführungsformen kann ein nichtflüchtiges computerlesbares Medium Anweisungen enthalten, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, den Prozess 3150 durchzuführen. Ferner ist der Prozess 3150 nicht notwendigerweise auf die in 31B gezeigten Schritte beschränkt und beliebige Schritte oder Prozesse der verschiedenen in der gesamten vorliegenden Offenbarung beschriebenen Ausführungsformen können ebenfalls im Prozess 3150 enthalten sein, einschließlich der vorstehend in Bezug auf die 27-31A beschriebenen.
  • In Schritt 3160 kann der Prozess 3150 das Empfangen von einer Kamera eines Host-Fahrzeugs mindestens eines erfassten Bilds beinhalten, das eine Umgebung des Host-Fahrzeugs darstellt. Beispielsweise kann die Bildaufnahmeeinheit 120 ein oder mehrere Bilder erfassen, die eine Umgebung des Host-Fahrzeugs 200 darstellen. Die erfassten Bilder können dem Bild 2800 entsprechen, das vorstehend in Bezug auf 28 beschrieben wurde.
  • In Schritt 3170 kann der Prozess 3150 das Analysieren eines oder mehrerer Pixel des mindestens einen erfassten Bilds beinhalten, um zu bestimmen, ob das eine oder die mehreren Pixel ein Zielfahrzeug darstellen. In einigen Ausführungsformen kann mindestens ein Abschnitt des Zielfahrzeugs nicht im mindestens einen erfassten Bild dargestellt werden. So kann beispielsweise das Zielfahrzeug dem Fahrzeug 2810 entsprechen und ein Abschnitt des Fahrzeugs 2810 kann nicht in Bild 2800 enthalten sein, wie in 28 gezeigt. Ähnlich wie bei Prozess 3100 führt ein trainiertes System mindestens einen Teil der Analyse des einen oder der mehreren Pixel durch. So kann beispielsweise das trainierte System ein oder mehrere neuronale Netzwerke beinhalten, wie vorstehend beschrieben.
  • In Schritt 3180 kann der Prozess 3150 das Bestimmen eines geschätzten Abstands vom Host-Fahrzeug zum Zielfahrzeug beinhalten. Der geschätzte Abstand kann zumindest teilweise auf dem Abschnitt des Zielfahrzeugs basieren, der nicht im mindestens einen erfassten Bild dargestellt ist. So kann beispielsweise Schritt 3180 das Bestimmen des Orts mindestens einer Begrenzung des Zielfahrzeugs beinhalten, die nicht im mindestens einen erfassten Bild dargestellt ist. Diese Begrenzung kann konsistent mit dem vorstehend beschriebenen Prozess 3100 bestimmt werden. Dementsprechend kann die mindestens eine Begrenzung basierend auf der Analyse des einen oder der mehreren Pixel bestimmt werden. So kann beispielsweise jedes der Pixel, die im mindestens einen erfassten Bild (oder einer Teilmenge von Pixeln, die mit dem Zielfahrzeug assoziiert sind) enthalten sind, unter Verwendung eines trainierten neuronalen Netzwerks analysiert werden. Für Pixel, die als mit dem Zielfahrzeug assoziiert bestimmt sind, kann Schritt 3180 das Bestimmen mindestens eines Abstands vom Pixel zu der mindestens einen Begrenzung beinhalten. In einigen Ausführungsformen kann die mindestens eine Begrenzung ein Abschnitt einer Gesamtbegrenzung des Zielfahrzeugs sein. Der geschätzte Abstand vom Host-Fahrzeug zum Zielfahrzeug kann ein geschätzter Abstand vom Host-Fahrzeug zur mindestens einen Begrenzung sein.
  • Wie vorstehend in Bezug auf 28 beschrieben, kann der Prozess 3150 ferner das Implementieren einer Navigationsaktion basierend auf dem geschätzten Abstand beinhalten. So kann beispielsweise der geschätzte Abstand ein Abstand vom Host-Fahrzeug zu einer Hinterkante des Zielfahrzeugs (z. B. der Rückseite eines Busses, eines Anhängers, eines Lastwagens usw.) sein. Die Hinterkante kann der mindestens einen Begrenzung entsprechen und ist daher möglicherweise nicht im Bild enthalten. Obwohl die Hinterkante nicht sichtbar ist, kann das Navigationssystem dennoch konfiguriert sein, um einen Ort der Hinterkante zu bestimmen und eine Navigationsaktion basierend auf der Hinterkante durchzuführen. So kann beispielsweise die Navigationsaktion mindestens eines von einem Bremsmanöver (z. B. um einen Freiraumabstand zwischen dem Host-Fahrzeug und dem Zielfahrzeug zu erhöhen), einem Spurwechselmanöver, einem Ausweichmanöver, einem Beschleunigungsmanöver oder verschiedenen anderen Manövern beinhalten, die basierend auf dem geschätzten Abstand erforderlich sein können, einschließlich anderer Navigationsaktionen, die in der gesamten vorliegenden Offenbarung beschrieben sind.
  • 32A ist ein Ablaufdiagramm, das einen beispielhaften Prozess 3200 zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einem Bild zeigt, das Fahrzeugreflexionen enthält, in Übereinstimmung mit den offenbarten Ausführungsformen. Der Prozess 3200 kann durch mindestens eine Verarbeitungsvorrichtung, wie etwa die Verarbeitungseinheit 110, wie vorstehend beschrieben, durchgeführt werden. In einigen Ausführungsformen kann ein nichtflüchtiges computerlesbares Medium Anweisungen enthalten, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, den Prozess 3200 durchzuführen. Ferner ist der Prozess 3200 nicht notwendigerweise auf die in 32A gezeigten Schritte beschränkt und beliebige Schritte oder Prozesse der verschiedenen in der gesamten vorliegenden Offenbarung beschriebenen Ausführungsformen können ebenfalls im Prozess 3200 enthalten sein, einschließlich der vorstehend in Bezug auf die 30A und 30B beschriebenen.
  • In Schritt 3210 kann der Prozess 3200 das Empfangen von einer Kamera eines Host-Fahrzeugs mindestens eines erfassten Bilds beinhalten, das eine Umgebung des Host-Fahrzeugs darstellt. Beispielsweise kann die Bildaufnahmeeinheit 120 ein oder mehrere Bilder erfassen, die eine Umgebung des Host-Fahrzeugs 200 darstellen. In einigen Ausführungsformen kann das erfasste Bild dem Bild 3000B entsprechen, wie vorstehend beschrieben.
  • In Schritt 3220 kann der Prozess 3200 das Analysieren von zwei oder mehr Pixeln des mindestens einen erfassten Bilds beinhalten, um zu bestimmen, ob die zwei oder mehr Pixel mindestens einen Abschnitt eines ersten Zielfahrzeugs und mindestens einen Abschnitt eines zweiten Zielfahrzeugs darstellen. In einigen Ausführungsformen kann die Analyse für jedes Pixel des erfassten Bilds durchgeführt werden. In anderen Ausführungsformen kann die Analyse an einer Teilmenge von Pixeln durchgeführt werden. So kann beispielsweise die Analyse an jedem Pixel eines Zielfahrzeugkandidatenbereichs durchgeführt werden, der relativ zum erfassten Bild identifiziert wird. Solche Bereiche können beispielsweise unter Verwendung des nachfolgend beschriebenen Prozesses 3500 bestimmt werden. Die Analyse kann unter Verwendung verschiedener Techniken einschließlich des oben beschriebenen trainierten Systems durchgeführt werden. Dementsprechend kann ein trainiertes System, das ein oder mehrere neuronale Netzwerke beinhalten kann, mindestens einen Teil der Analyse des einen oder der mehreren Pixel durchführen.
  • In Schritt 3230 kann der Prozess 3200 das Bestimmen beinhalten, dass der Abschnitt des zweiten Zielfahrzeugs in einer Repräsentation einer Reflexion auf einer Oberfläche des ersten Zielfahrzeugs enthalten ist. So kann beispielsweise der Abschnitt des zweiten Zielfahrzeugs der Reflexion 3060 entsprechen, die auf einer Oberfläche des Fahrzeugs 3050 erscheint. Während das Fahrzeug 3050 in 32 als Tankwagenfahrzeug gezeigt ist, versteht es sich, dass das erste Zielfahrzeug ein Auto, einen Lastwagen, einen Van, einen Bus, ein Einsatzfahrzeug, ein Baufahrzeug oder einen beliebigen anderen Fahrzeugtyp beinhalten kann, der eine reflektierende Oberfläche beinhalten kann.
  • In Schritt 3240 kann der Prozess 3200 das Erzeugen, basierend auf der Analyse der zwei oder mehr Pixel und der Bestimmung, dass der Abschnitt des zweiten Zielfahrzeugs in einer Repräsentation einer Reflexion auf einer Oberfläche des ersten Zielfahrzeugs enthalten ist, mindestens eines Abschnitts einer Grenze relativ zu dem ersten Zielfahrzeug und keine Grenze relativ zu dem zweiten Zielfahrzeug beinhalten. So kann beispielsweise Schritt 3240 das Erzeugen einer Grenze für das Fahrzeug 3050 und nicht das Erzeugen einer Grenze für die Reflexion 3060 beinhalten. Somit kann die wahrgenommene Bewegung des zweiten Fahrzeugs zum Zwecke der Bestimmung von Navigationsaktionen ignoriert werden, wie vorstehend beschrieben. Die für das erste Fahrzeug erzeugte Grenze kann gemäß dem vorstehend beschriebenen Prozess 3100 erzeugt werden. Dementsprechend kann jeder der vorstehend in Bezug auf den Prozess 3100 beschriebenen Schritte auch als Teil des Prozesses 3200 durchgeführt werden. In einigen Ausführungsformen kann die Grenze mindestens einen Abschnitt eines Begrenzungsrahmens beinhalten.
  • 32B ist ein Ablaufdiagramm, das einen beispielhaften Prozess 3250 zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einem Bild zeigt, das ein mitgeführtes Fahrzeug enthält, in Übereinstimmung mit den offenbarten Ausführungsformen. Der Prozess 3250 kann durch mindestens eine Verarbeitungsvorrichtung, wie etwa die Verarbeitungseinheit 110, wie vorstehend beschrieben, durchgeführt werden. In einigen Ausführungsformen kann ein nichtflüchtiges computerlesbares Medium Anweisungen enthalten, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, den Prozess 3250 durchzuführen. Ferner ist der Prozess 3250 nicht notwendigerweise auf die in 32B gezeigten Schritte beschränkt und beliebige Schritte oder Prozesse der verschiedenen in der gesamten vorliegenden Offenbarung beschriebenen Ausführungsformen können ebenfalls im Prozess 3250 enthalten sein, einschließlich der vorstehend in Bezug auf 29 beschriebenen.
  • In Schritt 3260 kann der Prozess 3250 das Empfangen von einer Kamera eines Host-Fahrzeugs mindestens eines erfassten Bilds beinhalten, das eine Umgebung des Host-Fahrzeugs darstellt. Beispielsweise kann die Bildaufnahmeeinheit 120 ein oder mehrere Bilder erfassen, die eine Umgebung des Host-Fahrzeugs 200 darstellen. In einigen Ausführungsformen kann das erfasste Bild dem Bild 2900 entsprechen, wie vorstehend beschrieben.
  • In Schritt 3270 kann der Prozess 3250 das Analysieren von zwei oder mehr Pixeln des mindestens einen erfassten Bilds beinhalten, um zu bestimmen, ob die zwei oder mehr Pixel mindestens einen Abschnitt eines ersten Zielfahrzeugs und mindestens einen Abschnitt eines zweiten Zielfahrzeugs darstellen. In einigen Ausführungsformen kann die Analyse für jedes Pixel des erfassten Bilds durchgeführt werden. In anderen Ausführungsformen kann die Analyse an einer Teilmenge von Pixeln durchgeführt werden. So kann beispielsweise die Analyse an jedem Pixel eines Zielfahrzeugkandidatenbereichs durchgeführt werden, der relativ zum erfassten Bild identifiziert wird. Solche Bereiche können beispielsweise unter Verwendung des nachfolgend beschriebenen Prozesses 3500 bestimmt werden. Die Analyse kann unter Verwendung verschiedener Techniken einschließlich des oben beschriebenen trainierten Systems durchgeführt werden. Dementsprechend kann ein trainiertes System, das ein oder mehrere neuronale Netzwerke beinhalten kann, mindestens einen Teil der Analyse des einen oder der mehreren Pixel durchführen.
  • In Schritt 3280 kann der Prozess 3250 das Bestimmen beinhalten, dass das zweite Zielfahrzeug vom ersten Zielfahrzeug getragen oder gezogen wird. So kann beispielsweise das erste Fahrzeug dem Fahrzeug 2910 und das zweite Fahrzeug einem der Fahrzeuge 2920 oder 2930 entsprechen. Während das Fahrzeug 2910 in 29 als ein Automobiltransportanhänger gezeigt ist, versteht es sich, dass das erste Zielfahrzeug einen Abschleppwagen, einen Anhänger, einen offenen Luftträger, einen Flachbettwagen oder einen beliebigen anderen Fahrzeugtyp beinhalten kann, der andere Fahrzeuge tragen oder ziehen kann.
  • In Schritt 3290 kann der Prozess 3250 das Erzeugen, basierend auf der Analyse der zwei oder mehr Pixel und der Bestimmung, dass das zweite Zielfahrzeug vom ersten Zielfahrzeug getragen oder gezogen wird, mindestens eines Abschnitts einer Grenze relativ zu dem ersten Zielfahrzeug und keine Grenze relativ zu dem zweiten Zielfahrzeug beinhalten. So kann beispielsweise Schritt 3290 das Erzeugen einer Grenze für das Fahrzeug 2910 und nicht das Erzeugen einer Grenze für das Fahrzeug 2920 und/oder das Fahrzeug 2930 beinhalten. Die für das erste Fahrzeug erzeugte Grenze kann gemäß dem vorstehend beschriebenen Prozess 3100 erzeugt werden. Dementsprechend kann jeder der vorstehend in Bezug auf den Prozess 3100 beschriebenen Schritte auch als Teil des Prozesses 3250 durchgeführt werden. In einigen Ausführungsformen kann die Grenze mindestens einen Abschnitt eines Begrenzungsrahmens beinhalten.
  • In einigen Ausführungsformen können einer oder mehrere der vorstehend beschriebenen Prozesse in einem iterativen Prozess durchgeführt werden. Eine Begrenzung eines Zielfahrzeugs, die aus einem ersten Bild bestimmt wird, kann in Bezug auf nachfolgende Bilder verwendet werden, um eine zweite Begrenzung des Zielfahrzeugs zu bestimmen. Die erste Begrenzung kann als „Abkürzung“ (d. h. um Verarbeitungszeit und Rechenanforderungen zu reduzieren) zum Bestimmen der zweiten Begrenzung verwendet werden. Zum Beispiel kann erwartet werden, dass sich die zweite Begrenzung in einer ähnlichen Position innerhalb der ersten Begrenzung innerhalb ihrer jeweiligen Bilder befindet. Der erwartete Grad der Ähnlichkeit kann von Faktoren abhängen, wie etwa der Zeit zwischen dem ersten und zweiten Bild, das erfasst wird, der Geschwindigkeit, mit der das Host-Fahrzeug und/oder das Zielfahrzeug fährt, usw. In einigen Ausführungsformen können die später erfassten Bilder verwendet werden, um die anfängliche Begrenzung zu verfeinern, um die Genauigkeit der bestimmten Begrenzung zu verbessern. Wenn zum Beispiel ein Fahrzeug teilweise durch den Rand des Bilds abgeschnitten wird, können mehr Pixel im zweiten Bild enthalten sein, wenn sich das Fahrzeug im Sichtfeld der Kamera bewegt. Die zusätzlichen Pixelinformationen können eine bessere Schätzung der Begrenzung basierend auf dem Prozess 3100 und den verschiedenen anderen vorstehend beschriebenen Techniken bereitstellen.
  • 33 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 3300 zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einer Reihe von Bildern zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen. Der Prozess 3300 kann durch mindestens eine Verarbeitungsvorrichtung, wie etwa die Verarbeitungseinheit 110, wie vorstehend beschrieben, durchgeführt werden. In einigen Ausführungsformen kann ein nichtflüchtiges computerlesbares Medium Anweisungen enthalten, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, den Prozess 3300 durchzuführen. Ferner ist der Prozess 3300 nicht notwendigerweise auf die in 33 gezeigten Schritte beschränkt und beliebige Schritte oder Prozesse der verschiedenen in der gesamten vorliegenden Offenbarung beschriebenen Ausführungsformen können ebenfalls im Prozess 3300 enthalten sein, einschließlich der vorstehend in Bezug auf den Prozess 3100 beschriebenen.
  • Die Schritte 3310-3330 können den Schritten 3110-3140 des Prozesses 3100, wie vorstehend beschrieben, entsprechen. Zum Beispiel kann der Prozess 3300 in Schritt 3310 das Empfangen von einer Kamera eines Host-Fahrzeugs eines ersten erfassten Bilds beinhalten, das eine Umgebung des Host-Fahrzeugs darstellt. In Schritt 3320 kann der Prozess 3300 das Analysieren eines oder mehrerer Pixel des ersten erfassten Bilds beinhalten, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt eines Zielfahrzeugs darstellen, und für Pixel, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen, einen oder mehrere geschätzte Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs zu bestimmen. Zum Beispiel können die geschätzten Abstandswerte den vorstehend beschriebenen Entfernungen 2732 und 2734 entsprechen. Bei Schritt 3330 kann der Prozess 3300 das Erzeugen, basierend auf der Analyse des einen oder der mehreren Pixel des ersten erfassten Bilds, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die mit dem einen oder den mehreren Pixeln des ersten erfassten Bilds assoziiert sind, mindestens eines Abschnitts einer ersten Grenze relativ zu dem Zielfahrzeug beinhalten. Der Abschnitt der ersten Grenze kann der in Schritt 3140 des Prozesses 3100 bestimmten Grenze entsprechen. Dementsprechend kann jeder der vorstehend in Bezug auf den Prozess 3100 bereitgestellten Schritte oder Beschreibungen auch für den Prozess 3300 gelten.
  • Bei Schritt 3340 kann der Prozess 3300 das Empfangen eines zweiten erfassten Bilds von der Kamera des Host-Fahrzeugs beinhalten, das die Umgebung des Host-Fahrzeugs darstellt. In einigen Ausführungsformen kann das zweite erfasste Bild zu einer vorbestimmten Zeit nach dem ersten erfassten Bild erfasst werden. So kann beispielsweise der vorbestimmte Zeitraum auf einer Bildrate der Kamera basieren.
  • Bei Schritt 3350 kann der Prozess 3300 das Analysieren eines oder mehrerer Pixel des zweiten erfassten Bilds beinhalten, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt des Zielfahrzeugs darstellen. In einigen Ausführungsformen kann dies das Analysieren aller Pixel innerhalb des zweiten erfassten Bilds beinhalten. In anderen Ausführungsformen kann nur eine Teilmenge analysiert werden. So kann beispielsweise eine gesamte Gruppe von Pixeln, die als mit dem Zielfahrzeug assoziiert bestimmt wird, analysiert werden. In einigen Ausführungsformen kann die Teilmenge basierend auf der ersten Grenze ausgewählt werden. So kann beispielsweise die Analyse in Schritt 3350 auf Pixel innerhalb oder nahe der identifizierten ersten Grenze fokussiert werden. Wie bei Schritt 3320 kann Schritt 3350 das Bestimmen eines oder mehrerer geschätzter Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs für Pixel beinhalten, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen.
  • In Schritt 3360 kann der Prozess 3300 das Erzeugen , basierend auf der Analyse des einen oder der mehreren Pixel des zweiten erfassten Bilds, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die mit dem einen oder den mehreren Pixeln des zweiten erfassten Bilds assoziiert sind, und basierend auf der ersten Grenze, mindestens eines Abschnitts einer zweiten Grenze relativ zu dem Zielfahrzeug beinhalten. In einigen Ausführungsformen kann die zweite Grenze eine angepasste Version der ersten Grenze sein. So kann beispielsweise die zweite Grenze auf einer aktualisierten Position des Zielfahrzeugs innerhalb des Einzelbilds basieren. Die zweite Grenze kann eine verfeinerte Version der ersten Grenze sein, beispielsweise basierend auf zusätzlichen Informationen, die im zweiten erfassten Bild enthalten sind, wie beispielsweise zusätzliche Pixel, die das Zielfahrzeug im zweiten erfassten Bild darstellen.
  • Die verschiedenen oben in Bezug auf die 27-33 beschriebenen Prozesse sind mit der Analyse jedes Pixels eines Bilds verbunden, um ein Zielfahrzeug innerhalb des Bilds zu identifizieren und eine dem Zielfahrzeug zugeordnete Grenze zu bestimmen. Dementsprechend kann ein Bereich des Bilds als mit dem Zielfahrzeug assoziiert klassifiziert werden. Unter Verwendung der offenbarten Techniken können verschiedene andere Objekte oder Bereiche eines Bilds auch als Teil eines einheitlichen Bildanalyse-Frameworks klassifiziert werden, wie vorstehend erläutert. So kann beispielsweise eine einzelne Bildanalyseschicht erfasste Einzelbilder als Eingabe empfangen, die Pixel analysieren und charakterisieren, die mit den erfassten Einzelbildern assoziiert sind, und die charakterisierten Einzelbilder als Ausgabe bereitstellen. Die charakterisierten Einzelbilder können dann den mehreren verschiedenen Funktionen/Modulen des Navigationssystems zur Erzeugung und Implementierung geeigneter Navigationsaktionen basierend auf den charakterisierten Einzelbildern zugeführt werden.
  • In einigen Ausführungsformen können einige oder alle der vorstehend beschriebenen Prozesse (z. B. Prozess 3100) als Teil der Bildanalyseschicht durchgeführt werden. So kann beispielsweise der Prozess 3100 verwendet werden, um einen Abschnitt des Bilds als mit dem Fahrzeug assoziiert zu charakterisieren, der einer Funktion oder einem Modul zur weiteren Verarbeitung zugeführt werden kann. In anderen Ausführungsformen kann ein Teil oder der gesamte Prozess 3100 durchgeführt werden, nachdem die Bildanalyseschicht angewendet wurde. So kann beispielsweise der Prozess 3100 nur eine Teilmenge von Pixeln im Bild analysieren, die als einem Fahrzeug zugeordnet charakterisiert wurden.
  • Um die Bildanalyseschicht des offenbarten Navigationssystems bereitzustellen, kann jedes geeignete System verwendet werden, das in der Lage ist, erfasste Einzelbilder zu empfangen und charakterisierte Bilder auszugeben. In einigen Fällen kann die Bildanalyseschicht ein trainiertes neuronales Netzwerk beinhalten, das Segmente der erfassten Bilder gemäß einem Trainingsprotokoll des neuronalen Netzwerks charakterisiert.
  • Der Trainingsdatensatz, der zum Trainieren des neuronalen Netzwerks verwendet wird, kann jeden geeigneten Datensatz beinhalten. In einigen Fällen können die Trainingsdaten eine Vielzahl von erfassten Bildern beinhalten, die gemäß einem vorbestimmten Satz von Eigenschaften, die das neuronale Netzwerk erkennen sollte, überprüft und charakterisiert wurden. Eine solche Charakterisierung kann beispielsweise von einem oder mehreren menschlichen Prüfern durchgeführt werden, die ein erfasstes Bild in einem Trainingsdatensatz analysieren, Segmente des erfassten Bilds mit dem vorbestimmten Satz von interessierenden Eigenschaften (z. B. Straße, nicht Straße, Vegetation, Objekt, Fußgänger, Fahrzeug, Fahrzeugrad, Fahrzeugtürkante und viele andere) vergleichen und die Pixel des erfassten Bilds bezeichnen, die mit jeder der interessierenden Eigenschaften assoziiert sind. Die bezeichneten Bilder können als Trainingsdatensatz für das neuronale Netzwerk verwendet werden. Dementsprechend kann das neuronale Netzwerk der Bildanalyseschicht anstelle von mehreren separaten Prozessen, die einzelne neuronale Netzwerke anwenden, um verschiedene Klassifizierungen von Objekten zu identifizieren und eine assoziierte Analyse durchzuführen, die verschiedenen Teile des Bilds in einer anfänglichen Analyse klassifizieren.
  • Die Effektivität und Genauigkeit des neuronalen Netzwerks kann von der Qualität und Quantität der verfügbaren Trainingsdaten innerhalb der Trainingsdatensätze abhängen. Somit können Vorteile bereitgestellt werden, indem große Trainingsdatensätze verwendet werden (z. B. einschließlich Hunderte, Tausende oder Millionen von bezeichneten erfassten Bildern). Das Erzeugen solcher großen Datensätze kann jedoch unpraktisch oder unmöglich sein. Ferner mangelt es solchen manuellen Überprüfungs- und Bezeichnungstechniken an Flexibilität, da das Hinzufügen sogar eines neuen Merkmals zur Charakterisierung (z. B. einer Mannlochabdeckungsidentifikationsfähigkeit) eine Neubezeichnung von Hunderten, Tausenden, Millionen von Bildern usw. erfordern kann. Ein solcher Ansatz kann kostspielig und langsam sein.
  • Um diese Herausforderung zu bewältigen, kann das vorliegende System eine Reihe von Bildanalysealgorithmen verwenden, die dazu ausgestaltet sind, die vorbestimmten Eigenschaften einer Umgebung in erfassten Bildern spezifisch zu identifizieren. Basierend auf der Identifikation können die erfassten Bilder auf einer Pixel-für-Pixel-Basis automatisch bezeichnet werden, um anzugeben, welche Pixel oder Pixelsegmente jedem Merkmal von Interesse in einer Umgebung entsprechen. Eine solche Bezeichnung kann dazu führen, dass erfasste Bilder einen Abschnitt der Bildpixel aufweisen, die als mit einem bestimmten Merkmal von Interesse assoziiert bezeichnet werden, oder kann zu einer vollständigen Bezeichnung der Bilder führen, sodass alle Pixel als mit mindestens einem Merkmal einer Fahrzeugumgebung assoziiert bezeichnet werden. Ein solches automatisches System zur Bildanalyse und Bezeichnung kann die Geschwindigkeit und Größe, mit der Trainingsdatensätze erzeugt werden können, erheblich verbessern.
  • Verschiedene Bildanalysealgorithmen können verwendet werden, um die vorbestimmten Eigenschaften zu identifizieren. In einigen Ausführungsformen können die Bildanalysealgorithmen konfiguriert sein, um Merkmale innerhalb der Umgebung des Host-Fahrzeugs basierend auf einer bestimmten Struktur innerhalb der Bilder zu erkennen. In einigen Ausführungsformen kann diese Struktur basierend auf einem „Parallaxen“-Effekt bestimmt werden, der aus einer Bildsequenz ersichtlich sein kann. Solche Systeme verwenden im Allgemeinen mehrere Bilder von derselben Kamera in verschiedenen Zeiträumen. Die Bewegung der Kamera kann, wenn sich das Fahrzeug bewegt, unterschiedliche Perspektiven (z. B. Informationen) bereitstellen, die das trainierte neuronale Netzwerk verwenden kann, um das dreidimensionale (3D) Modell der Umgebung zu erzeugen.
  • Als erster Schritt kann ein iterativer Prozess des Umwandelns von Bildern in einen normalisierten Zustand (z. B. zur Korrektur der Kameralinsenverzerrung), des Ausrichtens von Pixeln zwischen Bildern in Folge (z. B. Verzerren eines früheren Bilds, um ein späteres Bild über eine Homografie weitgehend abzugleichen) und des Messens der verbleibenden Pixelbewegung (z. B. Restbewegung) verwendet werden, um die Umgebung zu modellieren. Sobald eine Sequenz von Bildern normalisiert wurde, kann eine Restbewegung innerhalb der Bilder (ausgedrückt als μ
    Figure DE112020002592T5_0001
    ) wie folgt berechnet werden: μ = H Z T Z d ' π ( e p w ) ,
    Figure DE112020002592T5_0002
    wobei der H Z
    Figure DE112020002592T5_0003
    Ausdruck „gamma“ ist - ein Verhältnis von Höhe H eines Pixels über einer Ebene (z.B. der Straßenoberfläche) und Entfernung Z eines Pixels zu dem Sensor, TZ stellt eine Translation eines Sensors in die Vorwärtsrichtung dar (z.B., wie weit hat sich das Fahrzeug zwischen Bildern bewegt), d'π stellt die Höhe des Sensors über Ebene dar, e
    Figure DE112020002592T5_0004
    stellt die Epipol-Information dar (z.B., wohin reist das Fahrzeug), und p w
    Figure DE112020002592T5_0005
    stellt die korrespondieren Bildkoordinaten eines Pixels nach Anwendung eines Homographiebasierten Warpings dar.
  • Ein trainiertes Modell (z. B. maschinelles Lernsystem, künstliches neuronales Netzwerk (ANN), tiefes ANN (DNN), Convolutional ANN (CNN) usw.) kann entwickelt werden, um Gamma- oder Höheninformationen zu berechnen, die mit jedem Pixel in einem Bild direkt aus einer Bildsequenz assoziiert sind. Zum Beispiel kann eine Bildsequenz (z. B. ein aktuelles Bild und zwei vorherige Bilder) in das trainierte Modell eingegeben werden und eine Höhe jedes Pixels kann bestimmt werden, was eine Struktur des Bilds angibt. Diese Strukturdaten können zum Trainieren des neuronalen Netzwerks verwendet werden.
  • Ein Problem, das auftreten kann, beinhaltet Objekte, die sich innerhalb der Szene bewegen, wie etwa andere Fahrzeuge. Feste Objekte neigen dazu, sich auf eine vorhersagbare Weise zu transformieren, wenn sich die Kameraperspektive innerhalb der Szene bewegt. Beispielsweise bewegt sich bei einem vertikalen Objekt, wie etwa einem Lichtmast, die Unterseite des Masts mit einer Straßenoberfläche, während die Oberseite des Masts sich schneller zu bewegen scheint als die Straßenoberfläche, wenn sich die Kamera nähert. Ein Problem, das auftreten kann, beinhaltet Objekte, die sich innerhalb der Szene bewegen, wie etwa andere Fahrzeuge.
  • Die unterschiedliche Reaktion zwischen sich bewegenden und festen Objekten kann zu Artefakten beim Training des neuronalen Netzwerks führen, die sich auf die Genauigkeit des Umgebungsmodells auswirken können. Eine Technik, um dies zu bekämpfen, kann das Identifizieren sich bewegender Objekte und dann das Ignorieren (z. B. Maskieren) von ihnen in den Trainingsbildern beinhalten, um ihren Einfluss auf das Training zu reduzieren. Dies ähnelt dem Bestrafen oder Belohnen des Netzwerks allein auf Grundlage seiner Ausgabe für feste (z. B. statische, sich nicht bewegende) Bereiche der Umgebung, die in den Bildern repräsentiert sind. Diese Maskierung kann jedoch zu einigen Problemen führen. Beispielsweise weist das Ergebnis im Allgemeinen keine nützlichen 3D-Informationen über die sich bewegenden Objekte auf. Außerdem können sich verschiedene Artefakte in der Ausgabe ergeben, wie etwa Vorhersagen von Löchern (z. B. Vertiefungen) in der Nähe von sich bewegenden Objekten, wo keine Löcher existieren. Da es sich bei den sich bewegenden Objekten häufig um Fahrzeuge vor der Kamera handelt, kann das Netzwerk ferner versehentlich trainiert werden, um Objekte direkt vor der Kamera zu löschen (z. B. zu ignorieren), unabhängig davon, ob sich die Objekte bewegen oder fest sind.
  • Um einige der vorstehend erwähnten Probleme zu bewältigen, können die mehreren Einzelbilder, die zum Trainieren des Netzwerks verwendet werden, von mehreren Kameras zu einem Zeitpunkt statt von einer Kamera zu mehreren Zeitpunkten aufgenommen werden. Da die verschiedenen Perspektiven gleichzeitig erfasst werden, gibt es keine Unterscheidung mehr zwischen sich bewegenden und sich nicht bewegenden Objekten. Stattdessen können die variierenden Perspektiven verwendet werden, um die 3D-Eigenschaften aller Objekte in der Szene zu modellieren, um die Ground-Truth bereitzustellen, die zum Trainieren des neuronalen Netzwerks verwendet wird.
  • Im ersten Vorgang wird Kalibrierung (z. B. RT) zwischen Kameras bestimmt, die die Bilder bereitstellen. Dies kann unter Verwendung eines anfänglichen Verständnisses der 3D-Informationen durchgeführt werden, die in Einzelbildern von den Eckkameras sichtbar sind, um die Rolling-Shutter-Bilder als Globale-Shutter-Bilder neu zu zeichnen. Zum Beispiel Rolling-Shutter-Korrektur unter Verwendung von 3D-Informationen der Szene, Belichtungszeit für jede Reihe von Pixeln und Egomotion der Kamera um einen Zeitstempel. Dies kann mit relativ naiven 3D-Informationen erreicht werden, wie einer Annahme, dass sich alle Pixel auf der Ebene befinden, oder mit viel reicheren 3D-Informationen, wie Trainieren eines anderen Parallaxenmodells auf dieser Kamera und Verwenden seiner Ausgabe für diese Korrektur.
  • Als Nächstes können die Bilder von links und rechts unter Verwendung der Ebene und RT (z. B. einer Homografie) zum aktuellen Rahmen verzerrt werden. Nun kann bei der Verlustberechnung eine neue Version des aktuellen Rahmens unter Verwendung der Pixel aus dem verzerrten Seitenrahmen und der 3D-Informationen aus dem neuronalen Netzwerk gerendert werden. Das Ergebnis kann mit dem realen aktuellen Rahmen (z. B. von der Hauptkamera) verglichen werden, um den Grad zu ermitteln, mit dem Abschnitte der zwei Übereinstimmung übereinstimmen.
  • Als Nächstes können zwei Wege verfolgt werden. Der Verlust von den Surround-Kameras über das gesamte Bild kann verwendet werden, oder der Verlust von den Surround-Kameras kann nur innerhalb sich bewegender Objektmasken verwendet werden.
  • In einem Beispiel, wenn die Rolling-Shutter-Bilder nicht als Globale-Shutter-Bilder neu gezeichnet werden, wie vorstehend beschrieben, kann der Rolling-Shutter hier korrigiert werden. Unter Verwendung von Egomotion, Belichtungszeit pro Reihe und der 3D-Informationen aus der Ausgabe des neuronalen Netzwerks bei dieser Iteration.
  • Die vorstehenden Vorgänge können auf mehrere Weisen verwendet werden. So kann beispielsweise ein neuronales Netzwerk für die Inferenz basierend auf der Eingabe von den drei Kameras trainiert werden, wobei das Training den Verlust wie vorstehend beschrieben verwendet. In einem anderen Beispiel erfolgt die Eingabe für die Inferenz von einer einzelnen Kamera (z. B. drei Rahmen von der Hauptkamera), und die Surround-Bilder werden nur für den fotometrischen Verlust während des Trainings verwendet. In diesem Beispiel arbeitet das neuronale Netzwerk im Feld, wenn nur die Hauptkamera verfügbar ist, und die fahrzeuginterne Architektur ist die gleiche wie in vorherigen Implementierungen. Dementsprechend ist die Recheneffizienz (z. B. Kosten) auf dem Chip die gleiche. Das neuronale Netzwerk hat jedoch nun gelernt, wie man auch vernünftige 3D-Informationen über sich bewegende Objekte ausgibt. Mit diesem zweiten Ansatz haben wir dieses Merkmal im Hinblick auf die installierte Hardware oder Leistung im Wesentlichen kostenlos hinzugefügt.
  • Zusätzlich zum Bereitstellen der 3D-Informationen über ein oder mehrere Objekte, die sich bewegen und sich nicht bewegen, kann diese Kombination von Verlusten verwendet werden, um eine Maske auszugeben, die angibt, welche Pixel im Bild Teil eines sich bewegenden Objekts sind und welche nicht. Dies kann durch Hinzufügen eines anderen Kanals zur Ausgabe des neuronalen Netzwerks erreicht werden. Anstatt nur 3D-Informationen für jedes Pixel im Bild zu erzeugen, wird somit auch eine sich bewegende/nicht bewegende Vorhersage (z. B. zwischen null und eins) für jedes Pixel bereitgestellt. Um das neuronale Netzwerk zu trainieren, um diese Ausgabe bereitzustellen, wird das neuronale Netzwerk veranlasst, abzuleiten, wie stark sich der Verlust zwischen den ursprünglichen fünf Bildern von der Hauptkamera (z. B. die Technik von Anhang A) und der Verlust von den Surround-Kameras unterscheiden. Da relativ große Unterschiede (z. B. wie über Verhältnisse von Unterschieden gemessen) zwischen dem Verlust von Surround-Kameras und von der Hauptkamera in Bereichen auftreten, in denen sich Objekte bewegen, werden große Variationen ermutigt, um größere Werte im zusätzlichen Ausgabekanal zu erzeugen. Diese Werte können dann als sich bewegende vs. sich nicht bewegende Maske verwendet werden. Zum Beispiel kann es beim Messen der 3D-Form von Objekten in einem Abstand aufgrund der relativ breiten Basislinie zwischen den Surround-Kameras genauer sein, wenn mit einer einzelnen Kamera verglichen. Darüber hinaus geben bestimmte Texturen - wie z. B. feste Straßenmarkierungen (z. B. Linien) Tiefeninformationen in erster Linie, wenn die Kamerabildbewegung lateral ist. Somit sind diese festen Straßenmarkierungen bei der Bereitstellung von Tiefeninformationen für eine monokulare Kamera in-line mit der Straßenmarkierung oft schlecht, während die Surround-Kameras aufgrund der beiden unterschiedlichen Winkel zur festen Straßenmarkierung sehr effektiv feste Straßenmarkierungen verwenden können.
  • Sobald der Trainingsdatensatz erzeugt ist, kann er dem neuronalen Netzwerk bereitgestellt werden, so dass das Modell validiert werden kann. Sobald das neuronale Netzwerk trainiert und validiert ist, kann es dann in einem Fahrzeugnavigationssystem zum Analysieren und Charakterisieren von erfassten Bildern während des Flugs zur Verwendung beim Navigieren des Fahrzeugs verwendet werden. So kann beispielsweise jedes Bild, das von einer Kamera an Bord eines Fahrzeugs erfasst wird, dem Navigationssystem zur Charakterisierung durch die Bildanalyseschicht bereitgestellt werden. Diese Schicht kann beliebige oder alle Merkmale von Interesse erkennen, die in der Fahrzeugumgebung enthalten sind und in den entsprechenden erfassten Bildern dargestellt sind. Solche Merkmale von Interesse, wie vorstehend erwähnt, können ein beliebiges Merkmal einer Umgebung beinhalten, basierend auf dem ein oder mehrere Aspekte der Fahrzeugnavigation abhängen können (z. B. Fahrzeuge, andere Objekte, Räder, Vegetation, Straßen, Straßenränder, Barrieren, Fahrspur-Markierungen, Schlaglöcher, Teerstreifen, Verkehrszeichen, Fußgänger, Ampeln, Versorgungsinfrastruktur, Freiraumbereiche, Arten von freiem Raum (Parkplatz, Einfahrt usw., was bei der Bestimmung, ob ein Nicht-Straßenbereich beispielsweise im Notfall navigierbar ist, wichtig sein kann) und viele andere Merkmale). Die Ausgabe der Bildanalyseschicht des trainierten neuronalen Netzwerks kann vollständig oder teilweise als Einzelbilder bezeichnet werden, in denen die Pixel aller Merkmale von Interesse bezeichnet werden. Diese Ausgabe kann dann einer Vielzahl von verschiedenen Fahrzeugnavigationsfunktionen/-modulen bereitgestellt werden, und jedes einzelne Modul/jede einzelne Funktion kann sich auf die bezeichneten Einzelbilder stützen, um die Informationen abzuleiten, die es zur Bereitstellung seiner entsprechenden Navigationsfunktionalität benötigt.
  • 34A und 34B veranschaulichen eine beispielhafte Bildklassifizierung, die durchgeführt werden kann, in Übereinstimmung mit den offenbarten Ausführungsformen. Insbesondere stellt 34A ein Bild 3400A dar, das von einer Bilderfassungsvorrichtung eines Host-Fahrzeugs, wie etwa der Bilderfassungsvorrichtung 120, erfasst werden kann. Wie gezeigt, beinhaltet das Bild 3400A mehrere Elemente, die von einem Fahrzeugnavigationssystem, wie etwa dem Fahrzeug 3410A, dem Fußgänger 3420A, dem Pfosten 3422A, dem Baum 3424A, der Straßenoberfläche 3430A, dem Bürgersteig 3432A, dem Median 3434A, der Leitplanke 3436A und der Fahrspur-Markierung 3438A, erkannt werden können. Die Bildanalyseschicht kann konfiguriert sein, um einige oder alle dieser Merkmale zu erkennen und einzelne Pixel innerhalb des Bilds in mehrere Klassen zu segmentieren. In einigen Ausführungsformen kann die Klassifizierung binäre Klassifizierungen beinhalten, wie beispielsweise „Auto“/„nicht Auto“, bei denen bestimmt wird, dass jedes Pixel entweder einem Fahrzeug zugeordnet ist oder nicht (wie vorstehend in Bezug auf den Prozess 3100 beschrieben). In einigen Ausführungsformen kann die Analyse Pixel als „Straße“/„nicht Straße“ klassifizieren, die angeben, ob eine Oberfläche im Bild eine befahrbare Straßenoberfläche ist. Eine dritte Klassifizierung kann auch für Bereiche beinhaltet sein, in denen eine Fahrt eines Fahrzeugs möglich ist, aber vermieden werden sollte. Dies kann Bereiche beinhalten, auf denen das Fahrzeug in einer Notsituation fahren könnte (z. B. ein Grasbereich, eine private Einfahrt, ein Schmutzbereich in der Nähe einer Straße, ein niedriger Bürgersteig usw.).
  • Alternativ oder zusätzlich zu diesen binären Klassifizierungen kann jedes Pixel gemäß einer Liste von vordefinierten Klassen von Objekten oder Merkmalen klassifiziert werden. Derartige Klassen können unter anderem Auto, Lastwagen, Bus, Motorrad, Fußgänger, Straße, Barriere, Leitplanke, lackierte Straßenoberfläche, erhöhte Bereiche relativ zur Straße, befahrbare Straßenoberfläche, Masten oder ein beliebiges anderes Merkmal beinhalten, das für ein Fahrzeugnavigationssystem relevant sein kann. 34B veranschaulicht ein Bild 3400B mit klassifizierten Bereichen von Pixeln in Übereinstimmung mit den offenbarten Ausführungsformen. Das Bild 3400B kann dem Bild 3400A entsprechen, nachdem es durch die Bildanalyseschicht verarbeitet wurde. Beispielsweise kann das Bild 3400A einen Bereich 3410B als Pixel beinhaltend klassifizieren, die einem Fahrzeug zugeordnet sind, das einem Teil oder dem gesamten vorstehend beschriebenen Prozess 3100 entsprechen kann. Gleichermaßen kann das Bild 3400B den Bereich 3420B beinhalten, der als einen Fußgänger beinhaltend klassifiziert ist, den Bereich 3424B, der als einen Baum (oder Vegetation usw.) beinhaltend klassifiziert ist, den Bereich 3422B, der einen Pfosten beinhaltet, den Bereich 3430B, der als eine Straßenoberfläche klassifiziert ist, die Bereiche 3432B und 3434B, die als eine erhöhte Oberfläche klassifiziert sind, und/oder den Bereich 3436B, der als eine Leitplanke klassifiziert ist. Ähnlich der vorstehend in Bezug auf Fahrzeuge in 33 beschriebenen Kantenerkennung können auch Kanten der verschiedenen Objektklassifizierungen bestimmt werden. Beispielsweise kann eine Kante des Straßenoberflächenbereichs 3430B sowie Kanten des Pfostenbereichs 3422B, der erhöhten Bereiche 3432B und 3434B und/oder anderer Merkmale innerhalb des Bilds 2800B bestimmt werden. Während der Straßenoberflächenbereich 3430B als die gesamte Oberfläche der Straße 3430A beinhaltend gezeigt ist, kann er zusätzliche Klassifizierungen beinhalten, wie etwa eine Klassifizierung für gemalte Straßenmarkierungen (z. B. Fahrspurmarkierung 3438A) oder dergleichen. Insbesondere können die Leitplanke 3436A und der Median 3434A (z. B. eine Betonbarriere) basierend auf der Analyse der Pixel innerhalb des Bilds 3400A separat klassifiziert werden. In einigen Ausführungsformen können auch andere Sensorinformationen, wie etwa RADAR-Daten usw., zum Zwecke der Unterscheidung zwischen Leitplanken und Betonbarrieren verwendet werden. Dementsprechend kann diese Klassifizierung wichtig sein, wenn sie in Kombination mit RADAR oder ähnlichen Systemen verwendet wird, um dabei zu helfen, die separaten Merkmale zu unterscheiden.
  • Das Klassifizieren eines oder mehrerer Pixel in einem Bild durch diese anfängliche Analyse (z. B. unter Verwendung eines trainierten neuronalen Netzwerks, wie vorstehend beschrieben) kann wiederholte Identifikationsaufgaben durch einzelne Bildanalysemodule vermeiden. Durch Vermeiden von Duplizierungsbemühungen durch verschiedene Module kann die Effizienz innerhalb des Navigationssystems erheblich verbessert werden. Diese Klassifizierung kann auch die Genauigkeit des Detektierens von Objekten und anderen Merkmalen innerhalb des Bilds verbessern. Zum Beispiel kann ein System durch Bestimmen, dass ein Pixel nicht zu einer bestimmten Klasse gehört, in der Lage sein, zuverlässiger zu bestimmen, zu welcher Klasse es gehört. In einigen Ausführungsformen können Bereiche des Bilds zu mehreren Klassifizierungen gehören. Das Bewerten mehrerer Klassifizierungen, denen ein Bereich zugeordnet sein kann (und Klassifizierungen, die ausgeschlossen sind), kann eine genauere Identifikation eines bestimmten Objekts ermöglichen.
  • Ferner kann das beschriebene System die Flexibilität des Navigationssystems erhöhen, um zum Beispiel basierend auf neuen oder verschiedenen Merkmalen, Teilmerkmalen (z. B. Türgriffen in einer identifizierten Fahrzeugtür, innerhalb eines identifizierten Fahrzeugs) oder Merkmalscharakterisierungen zu berücksichtigen und zu navigieren. Die automatisierte Erzeugung von Trainingsdatensätzen kann nicht nur die Geschwindigkeit des Erzeugens eines neuen trainierten Datensatzes, der ein neues Merkmal behandelt, usw. erhöhen, sondern die Funktionen und Module des Navigationssystems können weitgehend unverändert bleiben. Nur die Bildanalyseschicht kann ein erneutes Training erfordern, um das neue Merkmal zu berücksichtigen. Die neue trainierte Bildanalyseschicht kann in der Tat rückwärtskompatibel mit zuvor entwickelten Modulen/Funktionen sein, die sich nicht auf das neue Merkmal stützen oder dieses benötigen. Diejenigen, die das/die neu identifizierte(n) Merkmal(e) durch die neu trainierte Bildanalyseschicht nutzen können, können modifiziert oder neu entwickelt werden. Mit anderen Worten können neue Fähigkeiten hinzugefügt werden, ohne große Teile des Navigationssystems zu modifizieren. Und durch Durchführen der gesamten Bildanalyse und Klassifizierung in einer einzelnen Bildanalyseschicht gibt es keine funktions-/modulspezifischen Bildanalysealgorithmen, die entwickelt werden müssen. Infolgedessen können neue Navigationsmerkmale basierend auf neu identifizierten Kategorien oder Klassen von Merkmalen von Interesse in einer Umgebung eines Fahrzeugs wenig zusätzliche Rechenressourcen zur Implementierung erfordern, insbesondere aus einer Bildanalyseperspektive.
  • 35 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 3500 zum Navigieren eines Host-Fahrzeugs basierend auf einer Analyse von Pixeln in einem Bild zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen. Der Prozess 3500 kann durch mindestens eine Verarbeitungsvorrichtung, wie etwa die Verarbeitungseinheit 110, wie vorstehend beschrieben, durchgeführt werden. In einigen Ausführungsformen kann ein nichtflüchtiges computerlesbares Medium Anweisungen enthalten, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, den Prozess 3500 durchzuführen. Ferner ist der Prozess 3500 nicht notwendigerweise auf die in 35 gezeigten Schritte beschränkt und beliebige Schritte oder Prozesse der verschiedenen in der gesamten vorliegenden Offenbarung beschriebenen Ausführungsformen können ebenfalls im Prozess 3500 enthalten sein, einschließlich der vorstehend in Bezug auf die 27-30B beschriebenen.
  • In Schritt 3510 kann der Prozess 3500 das Empfangen von einer Kamera eines Host-Fahrzeugs mindestens eines erfassten Bilds beinhalten, das von einer Umgebung des Host-Fahrzeugs erfasst wurde. Beispielsweise kann die Bildaufnahmeeinheit 120 ein oder mehrere Bilder erfassen, die eine Umgebung des Host-Fahrzeugs 200 darstellen. Das mindestens eine erfasste Bild kann dem Bild 3400A entsprechen, wie vorstehend beschrieben.
  • In Schritt 3520 kann der Prozess 3500 das Analysieren des mindestens einen Bilds beinhalten, um eine Repräsentation mindestens eines Abschnitts eines ersten Objekts und eine Repräsentation mindestens eines Abschnitts eines zweiten Objekts zu identifizieren. Beispielsweise kann der Prozess 3500 verwendet werden, um Objekte zu detektieren, die im Bild 3400A beinhaltet sind, wie etwa das Fahrzeug 3410A, der Fußgänger 3420A usw. In einigen Ausführungsformen kann ein trainiertes System mindestens einen Teil der Analyse durchführen. So kann beispielsweise das trainierte System ein oder mehrere neuronale Netzwerke beinhalten, wie vorstehend beschrieben.
  • In einigen Ausführungsformen kann das Analysieren des mindestens einen Bilds das Analysieren eines oder mehrerer Pixel des mindestens einen Bilds beinhalten, wie vorstehend beschrieben. So kann beispielsweise ein trainiertes neuronales Netzwerk verwendet werden, um jedes Pixel innerhalb eines Bilds zu analysieren. Dementsprechend kann das Identifizieren der Repräsentation des Abschnitts des ersten Objekts das Identifizieren mindestens eines Pixels beinhalten, das mit der Repräsentation des ersten Objekts assoziiert ist, und das Identifizieren der Repräsentation des Abschnitts des zweiten Objekts kann das Identifizieren mindestens eines Pixels beinhalten, das mit der Repräsentation des zweiten Objekts assoziiert ist. In einigen Ausführungsformen kann das Bestimmen, dass ein Pixel nicht mit einem bestimmten Objekt assoziiert ist, dazu beitragen, es als mit einem anderen Objekt assoziiert zu klassifizieren. Dementsprechend kann in einigen Ausführungsformen das mindestens eine Pixel im mindestens einen Bild, das mit der Repräsentation des ersten Objekts assoziiert ist, das mindestens eine Pixel im mindestens einen Bild, das mit der Repräsentation des zweiten Objekts assoziiert ist, nicht beinhalten.
  • In Schritt 3530 kann der Prozess 3500 das Bestimmen eines ersten Bereichs des mindestens einen Bilds, das mit dem ersten Objekt assoziiert ist, und einem Typ des ersten Objekts beinhalten. Beispielsweise können die Bereiche einem der in 34B dargestellten Bereiche entsprechen. Ähnlich kann der Prozess 3500 in Schritt 3540 das Bestimmen eines zweiten Bereichs des mindestens einen Bilds, das mit dem zweiten Objekt assoziiert ist, und einem Typ des zweiten Objekts beinhalten. In einigen Ausführungsformen kann sich der Typ des ersten Objekts von dem Typ des zweiten Objekts unterscheiden. Beispielsweise kann der Typ des ersten Objekts ein Fahrzeug (z. B. Fahrzeug 3410A) sein, während das zweite Objekt ein Fußgänger (z. B. Fußgänger 3420A) sein kann. Als ein anderes Beispiel kann das erste Objekt eine Leitplanke (z. B. Leitplanke 3436A) beinhalten und das zweite Objekt kann eine Betonbarriere (z. B. Median 3434A) beinhalten. In einigen Ausführungsformen kann das erste Objekt eine gemalte Straßenoberfläche beinhalten und das zweite Objekt kann eine nicht gemalte Straßenoberfläche beinhalten. So kann beispielsweise die Analyse die Straßenoberfläche 3430A von der Fahrspurmarkierung 3438A unterscheiden. In einigen Ausführungsformen kann der Prozess 3500 ferner das Ausgeben der Art des ersten Objekts oder des Typs des zweiten Objekts beinhalten.
  • Als ein anderes Beispiel können das erste und das zweite Objekt unterschiedlichen Bereichen entsprechen, die im Bild identifiziert sind. Mit anderen Worten kann das erste Objekt einen ersten Bereich in der Umgebung des Host-Fahrzeugs beinhalten und das zweite Objekt kann einen zweiten Bereich in der Umgebung des Host-Fahrzeugs beinhalten. In einigen Ausführungsformen weisen der erste Bereich und der zweite Bereich unterschiedliche Höhen auf. Mindestens einer des ersten Bereichs oder des zweiten Bereichs wird basierend auf der Differenz der Höhen identifiziert. Zum Beispiel kann das mindestens eine Bild eine Vielzahl von Bildern umfassen, die zu unterschiedlichen Zeiten erfasst werden, und die Differenz der Höhen wird basierend auf einem Vergleich von Pixeln zwischen der Vielzahl von Bildern bestimmt (z. B. basierend auf der oben erörterten „Gamma“-Gleichung). In einigen Ausführungsformen kann der erste Bereich ein befahrbarer Bereich sein und der zweite Bereich kann ein nicht befahrbarer Bereich sein. Zum Beispiel kann der nicht befahrbare Bereich eine unbefestigte Oberfläche, eine Einfahrt, einen Bürgersteig oder einen Grasbereich beinhalten, wie vorstehend erörtert.
  • Die Objekte können basierend auf ihren Objekttyp unter verschiedenen Klassifizierungen klassifiziert werden. Zum Beispiel kann der Typ des ersten Objekts in einer ersten Objektklasse enthalten sein und der Typ des zweiten Objekts kann in einer zweiten Objektklasse enthalten sein. In einigen Ausführungsformen können die erste Objektklasse und die zweite Objektklasse sich gegenseitig ausschließende Objekte beinhalten. Mit anderen Worten können die erste Objektklasse und die zweite Objektklasse sich keine Objekte gemeinsam teilen. Beispielhafte Objektklassen können eines oder mehrere von einem Auto, Lastwagen, Bus, Motorrad, Straße, Barriere, Leitplanke, lackierte Straßenoberfläche, erhöhte Bereiche relativ zur Straße, befahrbare Straßenoberfläche oder Mast beinhalten. Es versteht sich, dass diese Objektklassen nur als Beispiel bereitgestellt werden und zusätzliche oder unterschiedliche Objektklassen verwendet werden können.
  • In einigen Ausführungsformen können mehrere Bilder verwendet werden, um Objekte innerhalb des Bilds zu identifizieren. Zum Beispiel kann das Identifizieren der Repräsentation des Abschnitts des ersten Objekts oder der Repräsentation des Abschnitts des zweiten Objekts das Analysieren mindestens eines zweiten Bilds beinhalten, das von der Kamera erfasst wurde. In einigen Ausführungsformen kann das zweite Bild einen vorbestimmten Zeitraum nach dem mindestens einen Bild erfasst werden. Die vorbestimmte Zeit kann auf einem festgelegten Zeitraum zwischen dem Analysieren von Bildern (z. B. durch System- oder Benutzereinstellungen) basieren. In anderen Ausführungsformen kann der vorbestimmte Zeitraum auf einer Bildrate der Kamera basieren (z. B. der maximalen oder festgelegten Rate, mit der die Kamera Bilder erfassen kann.
  • In einigen Ausführungsformen kann das Fahrzeug-Navigationssystem ferner konfiguriert sein, um Bezeichnungen zu erzeugen, die mit erfassten Objekten in den Bildern assoziiert sind, sowie Geometrien für die erfassten Objekte. Dieser Prozess kann als Teil der Bildanalyseschicht durchgeführt werden, wie vorstehend beschrieben. So kann beispielsweise das neuronale Netzwerk unter Verwendung eines Satzes von Bildern mit entsprechenden Objektbezeichnungen und Objektgeometrien trainiert werden, ähnlich dem vorstehend beschriebenen Prozess. Dementsprechend kann das trainierte Modell konfiguriert sein, um Objektbezeichnungen und/oder Geometrien basierend auf einem oder mehreren in das Modell eingegebenen Bildern zu bestimmen. Daher kann ein einzelnes trainiertes neuronales Netzwerkmodell unter Verwendung von sowohl Objektbezeichnungen als auch Objektstrukturinformationen trainiert werden. In einigen Ausführungsformen können die Ausgaben unterschiedliche Auflösungen aufweisen. So kann beispielsweise die Objektgeometrie (d. h. Strukturinformationen) mit einer geringeren Auflösung als die Objektbezeichnungen ausgegeben werden. Mit anderen Worten können die Objektgeometrien und Bezeichnungen als Bild oder eine Bildschicht ausgegeben werden, und das Bild, das die Objektgeometrie zeigt, kann ein Bild mit geringerer Auflösung als das Objektschichtbild sein. In einigen Ausführungsformen kann das System die Ausgabe basierend auf dem bereitstellen, was für die Navigation verwendet wird. So kann beispielsweise nach dem Training des Modells ein Culling-Verfahren verwendet werden, um alle Berechnungen zu entfernen, die sich nicht auf die tatsächlichen Ausgabewerte beziehen, die vom Navigationssystem verwendet werden.
  • Eine Objektbezeichnung kann ein beliebiges Datenelement sein, das Informationen über ein in einem Bild erfasstes Objekt beinhaltet. In einigen Ausführungsformen kann die Objektbezeichnung einen Typ des erfassten Objekts beinhalten. Wenn beispielsweise das Fahrzeug 3410A im Bild 3400A erfasst wird (siehe 34A), kann die Bildanalyseschicht eine Datenbezeichnung erzeugen, die anzeigt, dass das Objekt ein Auto ist. Die Objektbezeichnung kann auch andere Informationen beinhalten, wie beispielsweise eine Objektklasse (z. B. Fahrzeug), eine Objektkennung oder beliebige andere relevante Informationen. Die Objektbezeichnung kann in einer Vielzahl von Formaten erzeugt und dargestellt werden. In einigen Ausführungsformen können die Objektbezeichnungen am Bild befestigt sein, beispielsweise in Bildmetadaten usw. In anderen Ausführungsformen können die Objektbezeichnungen in einer Datenstruktur, wie beispielsweise einer Datenbank, oder ähnlichen Formaten enthalten sein.
  • 36 veranschaulicht eine beispielhafte Datenbank 3600, die Objektbezeichnungsinformationen beinhaltet, in Übereinstimmung mit den offenbarten Ausführungsformen. Als ein veranschaulichendes Beispiel kann die Datenbank 3600 Objekte beinhalten, die im Bild 3400A detektiert wurden, wie vorstehend beschrieben. Die Datenbank 3600 kann Informationen für jedes detektierte Objekt beinhalten, wie beispielsweise eine Objektkennung (ID) 3610, eine Objektklasse 3620, einen Objekttyp 3630 und andere Informationen 3640. Eine Objektkennung kann ein beliebiges Zeichen oder eine beliebige Zeichenfolge von Zeichen beinhalten, die das detektierte Objekt repräsentieren. In einigen Ausführungsformen kann die Objekt-ID eine zufällige oder pseudozufällige Zeichenfolge sein. In anderen Ausführungsformen können die Objekt-IDs in einem strukturierten Format (z. B. in numerischer Reihenfolge, basierend auf einem Zeit- und/oder Datumsstempel, basierend auf einer Kennung, die mit dem Bild assoziiert ist, basierend auf einer Kennung, die mit dem Host-Fahrzeug assoziiert ist, usw.) zugewiesen werden. In einigen Ausführungsformen kann die Kennung für die bestimmte Instanz des Objekts eindeutig sein. Alternativ oder zusätzlich kann die Kennung ein Typ des Objekts, eine Klassifizierung des Objekts oder andere Informationen angeben. Die Kennung kann in einer Vielzahl von Formaten (z. B. Text, numerisch, alphanumerisch usw.) dargestellt werden.
  • Die Datenbank 3600 kann ferner eine Objektklasse beinhalten, die mit dem detektierten Objekt assoziiert ist. Beispielsweise kann ein Objekt, das durch die Reihe 3650 angegeben wird, einem Fahrzeug entsprechen, das im Bild detektiert wird, und kann somit als ein Fahrzeug klassifiziert werden. Die Datenbank 3600 kann ferner einen Objekttyp beinhalten, die aus dem Bild detektiert werden kann. Das Objekt, das durch die Reihe 3650 angegeben wird, kann als ein Auto bezeichnet werden, wie in 36 gezeigt. Die Datenbank 3600 kann ferner zusätzliche Informationen 3640 über das detektierte Objekt beinhalten, die je nach Anwendung variieren können. Beispielsweise können die Informationen 3640 Koordinaten eines Bereichs beinhalten, der mit dem Objekt assoziiert ist (z. B. durch eine Reihe von Vertices, einen Bereich von Pixeln usw. dargestellt). Die Informationen 3640 können auch Ausrichtungsinformationen beinhalten, die eine detektierte Ausrichtung des Objekts angeben. Andere Informationen, die in der Datenbank 3600 enthalten sein können, können eine Beschreibung des detektierten Objekts, einen Zeit- und/oder Datumsstempel, Informationen über das Bild (z. B. eine Bild-ID usw.), Informationen über das Fahrzeug (z. B. eine Fahrzeug-ID usw.) oder beliebige andere Informationen beinhalten, die für Analyse- oder Navigationszwecke relevant sein können. Die Datenbank 3600 kann an verschiedenen Orten gespeichert sein. Beispielsweise kann die Datenbank 3600 an einem Netzwerkort, wie etwa einem Speicher, der mit dem entfernten Server 1230 assoziiert ist, gespeichert sein. In einigen Ausführungsformen kann die Datenbank 3600 lokal auf einem Fahrzeug, wie etwa innerhalb des Speichers 150 oder der Kartendatenbank 160, gespeichert sein.
  • Die Bildanalyseschicht kann ferner konfiguriert sein, um eine Geometrie der erfassten Objekte zu bestimmen. Wie hierin verwendet, kann sich eine Geometrie auf Daten beziehen, die eine oder mehrere Beziehungen von Punkten, Linien, Oberflächen, Feststoffen oder anderen Elementen des Objekts angeben. In einigen Ausführungsformen kann die Geometrie aus mehreren Aspekten bestehen. Wie hierin verwendet, kann ein Aspekt einer Geometrie einen Wert oder einen Satz von Werten beinhalten, die mindestens einen Abschnitt der Geometrie definieren. So kann beispielsweise ein Aspekt einer Geometrie einen Höhenwert (z. B. relativ zu einer Oberfläche der Straße oder relativ zu einer Ebene, die eine Oberfläche der Straße darstellt), einen Längenwert, einen Breitenwert, einen Ausrichtungswinkel, einen Koordinatenpunkt, eine Flächenmessung, eine Volumenmessung oder andere Werte beinhalten, die einen Abschnitt einer Geometrie darstellen können. Die Bildanalyseschicht kann konfiguriert sein, um einen oder mehrere Aspekte einer Geometrie eines erfassten Objekts zu bestimmen, die für die Fahrzeugnavigation verwendet werden kann.
  • 37 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 3700 zum Navigieren eines Host-Fahrzeugs basierend auf Objektbezeichnungen und -geometrien zeigt, in Übereinstimmung mit den offenbarten Ausführungsformen. Der Prozess 3700 kann durch mindestens eine Verarbeitungsvorrichtung, wie etwa die Verarbeitungseinheit 110, wie vorstehend beschrieben, durchgeführt werden. In einigen Ausführungsformen kann ein nichtflüchtiges computerlesbares Medium Anweisungen enthalten, die bei Ausführung durch einen Prozessor den Prozessor dazu veranlassen, den Prozess 3700 durchzuführen. Ferner ist der Prozess 3700 nicht notwendigerweise auf die in 37 gezeigten Schritte beschränkt und beliebige Schritte oder Prozesse der verschiedenen in der gesamten vorliegenden Offenbarung beschriebenen Ausführungsformen können ebenfalls im Prozess 3700 enthalten sein, einschließlich der vorstehend in Bezug auf die 34A-35 beschriebenen.
  • In Schritt 3710 kann der Prozess 3700 das Empfangen von einer Kamera des Host-Fahrzeugs mindestens eines Bilds beinhalten, das von einer Umgebung des Host-Fahrzeugs erfasst wurde. Beispielsweise kann die Bildaufnahmeeinheit 120 ein oder mehrere Bilder erfassen, die eine Umgebung des Host-Fahrzeugs 200 darstellen. Das mindestens eine erfasste Bild kann dem Bild 3400A entsprechen, wie vorstehend beschrieben.
  • In Schritt 3720 kann der Prozess 3700 das Analysieren des mindestens einen Bilds beinhalten, um eine Repräsentation mindestens eines Abschnitts eines ersten Objekts und eine Repräsentation mindestens eines Abschnitts eines zweiten Objekts zu identifizieren. Beispielsweise kann der Prozess 3500 verwendet werden, um Objekte zu detektieren, die im Bild 3400A beinhaltet sind, wie etwa das Fahrzeug 3410A, der Fußgänger 3420A usw. In einigen Ausführungsformen kann ein trainiertes System mindestens einen Teil der Analyse durchführen. So kann beispielsweise das trainierte System ein oder mehrere neuronale Netzwerke beinhalten, wie vorstehend beschrieben.
  • In Schritt 3730 kann der Prozess 3700 das Bestimmen, basierend auf der Analyse, mindestens eines Aspekts einer Geometrie des ersten Objekts und mindestens eines Aspekts einer Geometrie des zweiten Objekts beinhalten. Wie vorstehend beschrieben, kann der mindestens eine Aspekt des ersten und zweiten Objekts jeden Wert oder Satz von Werten beinhalten, die mindestens einen Abschnitt der Geometrie eines Objekts darstellen. Wie vorstehend beschrieben, kann die Geometrie eine Ausgabe des trainierten neuronalen Netzwerks sein. In einigen Ausführungsformen kann die Geometrie zumindest teilweise auf einer Textur des Objekts basieren, die basierend auf der Analyse des Bilds bestimmt wird. Dementsprechend können das erste und zweite Objekt unterschiedliche Texturen aufweisen, die im Bild dargestellt sind, die zumindest teilweise verwendet werden können, um die beiden Objekte zu segmentieren und zumindest teilweise ihre Geometrien zu definieren. Beispielsweise kann in einigen Ausführungsformen das erste Objekt eine Leitplanke sein und das zweite Objekt kann eine Betonbarriere sein. Die Leitplanke und die Betonbarriere können zusammen eine relativ gleichmäßige Geometrie aufweisen, sodass es schwierig sein kann, zwischen den beiden zu unterscheiden. Die Leitplanke kann eine deutlich andere Textur als die Betonbarriere aufweisen. So kann beispielsweise die Leitplanke Schienen und eine Reihe von Pfosten beinhalten, die voneinander beabstandet sind, während die Betonbarriere eine relativ gleichmäßige Oberfläche aus Beton, Ziegeln usw. sein kann. Die Leitplanke und die Betonbarriere können basierend auf der Textur als separate Objekte identifiziert werden. In einigen Ausführungsformen kann der mindestens eine Aspekt der Geometrien basierend auf einem separaten Sensor bestimmt werden. So kann beispielsweise der Prozess 3700 ferner das Empfangen einer Ausgabe von mindestens einem Sensor des Host-Fahrzeugs (z. B. einem RADAR-Sensor, einem LIDAR-Sensor, einer separaten Kamera (oder einem Stereokamerapaar), einem Näherungssensor usw.) beinhalten und der mindestens eine Aspekt der Geometrie des ersten Objekts oder der mindestens eine Aspekt der Geometrie des zweiten Objekts kann basierend auf der Ausgabe bestimmt werden. In einigen Ausführungsformen kann der Prozess 3600 das Ausgeben des mindestens einen Aspekts der Geometrie des ersten Objekts oder des mindestens einen Aspekts der Geometrie des zweiten Objekts beinhalten.
  • In Schritt 3740 kann der Prozess 3700 das Erzeugen, basierend auf dem mindestens einen Aspekt der Geometrie des ersten Objekts, einer ersten Bezeichnung beinhalten, die einem Bereich des mindestens einen Bilds zugeordnet ist, der die Repräsentation des ersten Objekts beinhaltet. Ähnlich kann der Prozess 3700 in Schritt 3750 das Erzeugen, basierend auf dem mindestens einen Aspekt der Geometrie des zweiten Objekts, einer zweiten Bezeichnung beinhalten, die einem Bereich des mindestens einen Bilds zugeordnet ist, der die Repräsentation des zweiten Objekts beinhaltet. Wie vorstehend beschrieben, können die erste und die zweite Bezeichnung beliebige Informationen beinhalten, die basierend auf der Analyse des Bilds über das erste und das zweite Objekt bestimmt werden können. In einigen Ausführungsformen können die erste und die zweite Bezeichnung einen Typ des ersten bzw. des zweiten Objekts angeben. Ferner können die erste und die zweite Bezeichnung mit einer Kennung eines Typs des ersten und des zweiten Objekts assoziiert sein. Die Kennung kann ein numerischer Wert, eine Textzeichenfolge oder eine alphanumerische Zeichenfolge sein, die den Typ des Objekts angibt. In einigen Ausführungsformen kann die Kennung dem Objekttyp 3630 und/oder der Objekt-ID 3610 entsprechen.
  • In einigen Ausführungsformen können die Bezeichnungen basierend auf der bestimmten Geometrie des ersten und des zweiten Objekts erzeugt werden. So kann beispielsweise der mindestens eine Aspekt der Geometrie eine Höhe des Objekts beinhalten, die verwendet werden kann, um das Objekt von anderen Objekten zu unterscheiden (z. B. Unterscheidung eines Bordsteins, eines Medians, eines Bürgersteigs oder einer Barriere von einer Straßenoberfläche usw.). Dementsprechend kann der mindestens eine Aspekt der Geometrie des ersten Objekts eine Höhe des ersten Objekts beinhalten und die erste Bezeichnung kann zumindest teilweise basierend auf der Höhe erzeugt werden. Ebenso kann der mindestens eine Aspekt der Geometrie des zweiten Objekts eine Höhe des zweiten Objekts beinhalten und die zweite Bezeichnung kann zumindest teilweise basierend auf der Höhe erzeugt werden. Die Höhe kann als explizite Messung ausgegeben werden (z. B. in Einheiten von Zentimetern, Metern, Füßen usw.) oder kann basierend auf anderen Ausgabeinformationen implizit sein. So kann beispielsweise ein als Fahrspur-Markierung gekennzeichnetes Objekt eine vernachlässigbare Höhe aufweisen, ein als Bordstein gekennzeichnetes Objekt kann eine geringe Höhe aufweisen und eine Betonbarriere kann relativ hoch sein.
  • In einigen Ausführungsformen können die Objekte mit einer Objektklasse assoziiert sein. Dementsprechend kann der Typ des ersten Objekts in einer ersten Objektklasse enthalten sein und der Typ des zweiten Objekts kann in einer zweiten Objektklasse enthalten sein. Die Objektklassen können in der Datenbank 3600 durch die Objektklasse 3620 dargestellt werden. In einigen Ausführungsformen beinhalten die erste Objektklasse und die zweite Objektklasse sich gegenseitig ausschließende Objekte. Mit anderen Worten kann es sein, dass die erste Objektklasse und die zweite Objektklasse sich keine Objekte gemeinsam teilen. Beispielhafte Objektklassen können eines oder mehrere von einer Fahrspur-Markierung, einem Bordstein, einer Wand, einer Barriere, einem Auto, einem Lastwagen, einem Bus, einem Motorrad, einer Straße, einer Barriere, einer Leitplanke, einer lackierten Straßenoberfläche, einem erhöhten Bereich relativ zur Straße, einer befahrbaren Straßenoberfläche oder Mast beinhalten. In einigen Ausführungsformen kann das System konfiguriert sein, um mehrere Straßenkantenmerkmale gleichzeitig auszugeben. So kann beispielsweise die erste Objektklasse ein Bordstein und die zweite Objektklasse eine Fahrspur-Markierung sein. In einigen Ausführungsformen kann der Prozess 3700 ferner das Bestimmen beinhalten, ob das erste Objekt oder das zweite Objekt eine Straßenkante ist. Wie hierin verwendet, kann eine Straßenkante jeder Übergang zwischen einer befahrbaren Straßenoberfläche und einem anderen Abschnitt der Umgebung sein. In Übereinstimmung mit den vorstehend offenbarten Ausführungsformen kann der Prozess 3700 das Bestimmen eines Typs der Straßenkante beinhalten. Exemplarische Straßenkanten können einen Bürgersteig, einen Bordstein, eine Barriere, einen Grasbereich, einen Schmutzbereich, eine private Einfahrt oder ähnliche Kantenmerkmale beinhalten. Die Verarbeitungseinheit 110 kann konfiguriert sein, um zwischen Typen von Straßenkanten zu unterscheiden, die beim Navigieren des Host-Fahrzeugs nützlich sein können. In einigen Ausführungsformen kann der Prozess 3700 ferner das Bestimmen beinhalten, ob die Straßenkante vom Host-Fahrzeug überquerbar ist. Obwohl sie beispielsweise unter normalen Bedingungen nicht als befahrbare Straßenoberfläche betrachtet werden kann, kann die Straßenkante als überquerbar klassifiziert werden (z. B. in Notsituationen usw.). Dies kann basierend auf der bestimmten Klasse oder Typ der Straßenkante (z. B. Gras kann überquerbar sein, während ein Median nicht überquerbar sein kann), durch eine gemessene Höhe der Straßenkante (die dem mindestens einen Aspekt der Abmessung der Straßenkante entsprechen kann), Informationen von einem Sensor oder andere Angaben, ob sie überquerbar ist oder nicht, bestimmt werden.
  • Die vorstehende Beschreibung wurde zum Zwecke der Veranschaulichung vorgestellt. Sie ist nicht erschöpfend und beschränkt sich nicht auf die genauen offenbarten Formen oder Ausführungsformen. Modifikationen und Anpassungen sind für den Fachmann aus der Betrachtung der Beschreibung und der Praxis der offenbarten Ausführungsformen ersichtlich. Obwohl Aspekte der offenbarten Ausführungsformen als im Speicher gespeichert beschrieben werden, wird der Fachmann zudem erkennen, dass diese Aspekte auch auf anderen Arten von computerlesbaren Medien gespeichert werden können, wie etwa sekundären Speichervorrichtungen, wie etwa Festplatten oder CD-ROM, oder anderen Formen von RAM oder ROM, USB-Medien, DVD, Blu-ray, 4K Ultra HD Blu-ray oder anderen optischen Laufwerksmedien.
  • Computerprogramme basierend auf der schriftlichen Beschreibung und den offenbarten Verfahren liegen innerhalb des Geschicks eines erfahrenen Entwicklers. Die verschiedenen Programme oder Programmmodule können unter Verwendung einer beliebigen der dem Fachmann bekannten Techniken erzeugt werden oder können in Verbindung mit bestehender Software ausgestaltet sein. So können beispielsweise Programmabschnitte oder Programmmodule in oder mittels.Net Framework,.Net Compact Framework (und verwandten Sprachen, wie Visual Basic, C usw.), Java, C++, Objective-C, HTML, HTML/AJAX-Kombinationen, XML oder HTML mit eingeschlossenen Java-Applets ausgestaltet sein.
  • Darüber hinaus wurden hierin veranschaulichende Ausführungsformen beschrieben, wobei der Umfang aller Ausführungsformen äquivalente Elemente, Modifikationen, Auslassungen, Kombinationen (z. B. von Aspekten über verschiedene Ausführungsformen hinweg), Anpassungen und/oder Änderungen aufweist, wie der Fachmann basierend auf der vorliegenden Offenbarung erkennen würde. Die Einschränkungen in den Ansprüchen sind basierend auf der in den Ansprüchen verwendeten Sprache weit auszulegen und nicht auf die in der vorliegenden Beschreibung oder während der Verfolgung der Anmeldung beschriebenen Beispiele beschränkt. Die Beispiele sind als nicht-exklusiv auszulegen. Darüber hinaus können die Schritte der offenbarten Verfahren auf beliebige Weise modifiziert werden, einschließlich durch Neuordnen von Schritten und/oder Einfügen oder Löschen von Schritten. Es ist daher beabsichtigt, dass die Beschreibung und die Beispiele nur als veranschaulichend betrachtet werden, wobei ein wahrer Umfang und Geist durch die folgenden Ansprüche und ihren vollen Umfang von Äquivalenten angegeben wird.
  • 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
    • US 62852761 [0001]
    • US 62/957009 [0001]
    • US 62/976059 [0001]

Claims (88)

  1. Navigationssystem für ein Host-Fahrzeug, wobei das System umfasst: mindestens einen Prozessor, der programmiert ist zum: Empfangen von einer Kamera des Host-Fahrzeugs mindestens eines erfassten Bilds, das eine Umgebung des Host-Fahrzeugs darstellt; Analysieren eines oder mehrerer Pixel des mindestens einen erfassten Bilds, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt eines Zielfahrzeugs darstellen, und für Pixel, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen, Bestimmen eines oder mehrerer geschätzter Abstandswerte von den einem oder den mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs; und Erzeugen, basierend auf der Analyse des einen oder der mehreren Pixel, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die dem einen oder den mehreren Pixeln zugeordnet sind, mindestens eines Abschnitts einer Grenze relativ zu dem Zielfahrzeug.
  2. Navigationssystem nach Anspruch 1, wobei der eine oder die mehreren Abstandswerte in Pixeln gemessen werden.
  3. Navigationssystem nach Anspruch 1, wobei der eine oder die mehreren Abstandswerte realen Abständen entsprechen, die relativ zu dem Zielfahrzeug gemessen werden.
  4. Navigationssystem nach Anspruch 1, wobei der eine oder die mehreren Abstandswerte einen Abstand von einem bestimmten Pixel zu mindestens einer von einer Vorderkante, einer Hinterkante, einer Seitenkante, einer Oberkante oder einer Unterkante des Zielfahrzeugs beinhalten.
  5. Navigationssystem nach Anspruch 1, wobei der mindestens eine Prozessor ferner dazu programmiert ist, eine Ausrichtung des mindestens einen Abschnitts der erzeugten Begrenzung relativ zu dem Zielfahrzeug zu bestimmen.
  6. Navigationssystem nach Anspruch 5, wobei der mindestens eine Prozessor ferner dazu programmiert ist, eine Navigationsaktion für das Host-Fahrzeug basierend auf der bestimmten Ausrichtung des mindestens einen Abschnitts der Begrenzung zu bestimmen und das Fahrzeug zu veranlassen, die bestimmte Navigationsaktion zu implementieren.
  7. Navigationssystem nach Anspruch 5, wobei die bestimmte Ausrichtung ein Manöver durch das Zielfahrzeug in Richtung eines Weges des Host-Fahrzeugs anzeigt.
  8. Navigationssystem nach Anspruch 5, wobei die bestimmte Ausrichtung eine seitliche Bewegung durch das Zielfahrzeug relativ zum Host-Fahrzeug anzeigt.
  9. Navigationssystem nach Anspruch 1, wobei der mindestens eine Prozessor ferner dazu programmiert ist, zu bestimmen, ob das eine oder die mehreren Pixel ein Begrenzungspixel beinhalten, das eine Repräsentation von mindestens einem Abschnitt der mindestens einen Kante des Zielfahrzeugs beinhaltet.
  10. Navigationssystem nach Anspruch 1, wobei die Analyse für jedes Pixel des erfassten Bilds durchgeführt wird.
  11. Navigationssystem nach Anspruch 1, wobei die Analyse für jedes Pixel eines Zielfahrzeugkandidatenbereichs durchgeführt wird, der relativ zu dem erfassten Bild identifiziert wird.
  12. Navigationssystem nach Anspruch 1, wobei der Abschnitt der Begrenzung mindestens einen Abschnitt eines Begrenzungsrahmens beinhaltet.
  13. Navigationssystem nach Anspruch 1, wobei der mindestens eine Prozessor ferner dazu programmiert ist, einen Abstand des Abschnitts der Begrenzung zum Host-Fahrzeug zu bestimmen und das Fahrzeug zu veranlassen, eine Navigationsaktion basierend mindestens auf dem bestimmten Abstand zu implementieren.
  14. Navigationssystem nach Anspruch 1, wobei ein trainiertes System mindestens einen Teil der Analyse des einen oder der mehreren Pixel durchführt.
  15. Navigationssystem nach Anspruch 14, wobei das trainierte System ein oder mehrere neuronale Netzwerke beinhaltet.
  16. Navigationssystem nach Anspruch 1, wobei mindestens ein Abschnitt mindestens einer Kante des Zielfahrzeugs nicht im erfassten Bild dargestellt wird.
  17. Navigationssystem nach Anspruch 1, wobei eine oder mehrere Kanten des Zielfahrzeugs nicht in dem erfassten Bild dargestellt werden.
  18. Navigationssystem nach Anspruch 1, wobei der mindestens eine Prozessor ferner dazu programmiert ist, basierend auf der Analyse des erfassten Bilds zu bestimmen, ob das Zielfahrzeug von einem anderen Fahrzeug oder einem Anhänger getragen wird.
  19. Navigationssystem nach Anspruch 18, wobei der mindestens eine Prozessor ferner dazu programmiert ist, keine Begrenzung für ein getragenes Fahrzeug zu bestimmen.
  20. Navigationssystem nach Anspruch 1, wobei der mindestens eine Prozessor ferner dazu programmiert ist, basierend auf der Analyse des erfassten Bilds zu bestimmen, ob das Zielfahrzeug in einer Repräsentation einer Reflexion in dem mindestens einen Bild enthalten ist.
  21. Navigationssystem nach Anspruch 20, wobei der mindestens eine Prozessor ferner dazu programmiert ist, keine Begrenzung für eine Fahrzeugreflexion zu bestimmen.
  22. Navigationssystem nach Anspruch 1, wobei der mindestens eine Prozessor ferner dazu programmiert ist, einen Typ des Zielfahrzeugs auszugeben.
  23. Navigationssystem nach Anspruch 22, wobei der Typ des Zielfahrzeugs mindestens auf einer Größe des Abschnitts der Begrenzung basiert.
  24. Navigationssystem nach Anspruch 22, wobei der Typ des Zielfahrzeugs mindestens teilweise auf einer Anzahl von innerhalb der Begrenzung enthaltenen Pixeln basiert.
  25. Navigationssystem nach Anspruch 22, wobei der Typ des Zielfahrzeugs mindestens eines von einem Bus, Lastwagen, Fahrrad, Motorrad oder Auto beinhaltet.
  26. Navigationssystem für ein Host-Fahrzeug, wobei das System umfasst: mindestens einen Prozessor, der programmiert ist zum: Empfangen von einer Kamera des Host-Fahrzeugs mindestens eines erfassten Bilds, das eine Umgebung des Host-Fahrzeugs darstellt; Analysieren eines oder mehrerer Pixel des mindestens einen erfassten Bilds, um zu bestimmen, ob das eine oder die mehreren Pixel ein Zielfahrzeug darstellen, wobei mindestens ein Abschnitt des Zielfahrzeugs nicht in dem mindestens einen erfassten Bild dargestellt ist, und Bestimmen eines geschätzten Abstands von dem Host-Fahrzeug zu dem Zielfahrzeug, wobei der geschätzte Abstand zumindest teilweise auf dem Abschnitt des Zielfahrzeugs basiert, der nicht in dem mindestens einen erfassten Bild dargestellt ist.
  27. Navigationssystem nach Anspruch 26, wobei ein trainiertes System mindestens einen Teil der Analyse des einen oder der mehreren Pixel durchführt.
  28. Navigationssystem nach Anspruch 27, wobei das trainierte System ein oder mehrere neuronale Netzwerke beinhaltet.
  29. Navigationssystem nach Anspruch 26, wobei der mindestens eine Prozessor ferner konfiguriert ist, um eine Navigationsaktion basierend auf dem geschätzten Abstand zu implementieren.
  30. Navigationssystem nach Anspruch 26, wobei das Bestimmen des geschätzten Abstands das Bestimmen des Orts mindestens einer Begrenzung des Zielfahrzeugs umfasst, die nicht in dem mindestens einen erfassten Bild dargestellt ist.
  31. Navigationssystem nach Anspruch 30, wobei der Ort der mindestens einen Begrenzung basierend auf Analyse des einen oder der mehreren Pixel bestimmt wird.
  32. Navigationssystem nach Anspruch 30, wobei der geschätzte Abstand vom Host-Fahrzeug zum Zielfahrzeug ein geschätzter Abstand vom Host-Fahrzeug zur mindestens einen Begrenzung ist.
  33. Navigationssystem für ein Host-Fahrzeug, wobei das System umfasst: mindestens einen Prozessor, der programmiert ist zum: Empfangen von einer Kamera des Host-Fahrzeugs mindestens eines erfassten Bilds, das eine Umgebung des Host-Fahrzeugs darstellt; Analysieren von zwei oder mehr Pixeln des mindestens einen erfassten Bilds, um zu bestimmen, ob die zwei oder mehr Pixel mindestens einen Abschnitt eines ersten Zielfahrzeugs und mindestens eines Abschnitts eines zweiten Zielfahrzeugs darstellen; Bestimmen, dass der Abschnitt des zweiten Zielfahrzeugs in einer Repräsentation einer Reflexion auf einer Oberfläche des ersten Zielfahrzeugs enthalten ist, und Erzeugen, basierend auf der Analyse der zwei oder mehr Pixel und der Bestimmung, dass der Abschnitt des zweiten Zielfahrzeugs in einer Repräsentation einer Reflexion auf einer Oberfläche des ersten Zielfahrzeugs enthalten ist, mindestens eines Abschnitts einer Grenze relativ zu dem ersten Zielfahrzeug und keiner Grenze relativ zu dem zweiten Zielfahrzeug.
  34. Navigationssystem nach Anspruch 33, wobei ein trainiertes System mindestens einen Teil der Analyse der zwei oder mehr Pixel durchführt.
  35. Navigationssystem nach Anspruch 34, wobei das trainierte System ein oder mehrere neuronale Netzwerke beinhaltet.
  36. Navigationssystem nach Anspruch 33, wobei das Bestimmen, dass der Abschnitt des zweiten Zielfahrzeugs in einer Repräsentation einer Reflexion auf einer Oberfläche des ersten Zielfahrzeugs enthalten ist, das Bestimmen umfasst, dass mindestens ein Pixel, das mit dem zweiten Zielfahrzeug assoziiert ist, mit einer Kante des ersten Zielfahrzeugs assoziiert ist.
  37. Navigationssystem nach Anspruch 33, wobei die Grenze mindestens einen Abschnitt eines Begrenzungsrahmens beinhaltet.
  38. Navigationssystem für ein Host-Fahrzeug, wobei das System umfasst: mindestens einen Prozessor, der programmiert ist zum: Empfangen von einer Kamera des Host-Fahrzeugs mindestens eines erfassten Bilds, das eine Umgebung des Host-Fahrzeugs darstellt; Analysieren von zwei oder mehr Pixeln des mindestens einen erfassten Bilds, um zu bestimmen, ob die zwei oder mehr Pixel mindestens einen Abschnitt eines ersten Zielfahrzeugs und mindestens einen Abschnitts eines zweiten Zielfahrzeugs darstellen; Bestimmen, dass das zweite Zielfahrzeug von dem ersten Zielfahrzeug getragen oder gezogen wird; und Erzeugen, basierend auf der Analyse der zwei oder mehr Pixel und der Bestimmung, dass das zweite Zielfahrzeug von dem ersten Zielfahrzeug getragen oder gezogen wird, mindestens eines Abschnitts einer Grenze relativ zu dem ersten Zielfahrzeug und keiner Grenze relativ zu dem zweiten Zielfahrzeug.
  39. Navigationssystem nach Anspruch 38, wobei das zweite Zielfahrzeug mindestens eines von einem Abschleppwagen, einem Anhänger, einem offenen Luftträger oder einem Flachbettwagen beinhaltet.
  40. Navigationssystem nach Anspruch 38, wobei das Bestimmen, dass das zweite Zielfahrzeug vom ersten Zielfahrzeug getragen oder gezogen wird, das Bestimmen umfasst, dass mindestens ein Pixel, das mit dem zweiten Zielfahrzeug assoziiert ist, mit einer Kante des ersten Zielfahrzeugs assoziiert ist.
  41. Navigationssystem für ein Host-Fahrzeug, wobei das System umfasst: mindestens einen Prozessor, der programmiert ist zum: Empfangen von einer Kamera des Host-Fahrzeugs eines ersten erfassten Bilds, das eine Umgebung des Host-Fahrzeugs darstellt; Analysieren von einem oder mehreren Pixeln des ersten erfassten Bilds, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt eines Zielfahrzeugs darstellen, und für Pixel, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen, Bestimmen eines oder mehrerer geschätzter Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs; Erzeugen, basierend auf der Analyse des einen oder der mehreren Pixel des ersten erfassten Bilds, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die dem einen oder den mehreren Pixeln des ersten erfassten Bilds zugeordnet sind, mindestens einen Abschnitt einer ersten Grenze relativ zu dem Zielfahrzeug; Empfangen von der Kamera des Host-Fahrzeugs eines zweiten erfassten Bilds, das die Umgebung des Host-Fahrzeugs darstellt; Analysieren von einem oder mehreren Pixeln des zweiten erfassten Bilds, um zu bestimmen, ob das eine oder die mehreren Pixel mindestens einen Abschnitt des Zielfahrzeugs darstellen, und für Pixel, von denen bestimmt wurde, dass sie mindestens einen Abschnitt des Zielfahrzeugs darstellen, Bestimmen eines oder mehrerer geschätzter Abstandswerte von einem oder mehreren Pixeln zu mindestens einer Kante einer Front des Zielfahrzeugs; und Erzeugen, basierend auf der Analyse des einen oder der mehreren Pixel des zweiten erfassten Bilds, einschließlich des bestimmten einen oder der bestimmten mehreren Abstandswerte, die dem einen oder den mehreren Pixeln des zweiten erfassten Bilds zugeordnet sind, und basierend auf der ersten Grenze, mindestens eines Abschnitts einer zweiten Grenze relativ zu dem Zielfahrzeug.
  42. Navigationssystem nach Anspruch 41, wobei ein trainiertes System mindestens einen Teil der Analyse des einen oder der mehreren Pixel durchführt.
  43. Navigationssystem nach Anspruch 42, wobei das trainierte System ein oder mehrere neuronale Netzwerke beinhaltet.
  44. Navigationssystem nach Anspruch 41, wobei die erste Begrenzung mindestens einen Abschnitt eines ersten Begrenzungsrahmens beinhaltet und die zweite Begrenzung mindestens einen Abschnitt eines zweiten Begrenzungsrahmens beinhaltet.
  45. Navigationssystem für ein Host-Fahrzeug, wobei das System umfasst: mindestens einen Prozessor, der programmiert ist zum: Empfangen von einer Kamera des Host-Fahrzeugs von zwei oder mehr Bildern, die von einer Umgebung des Host-Fahrzeugs erfasst wurden; Analysieren der zwei oder mehr Bilder, um eine Repräsentation mindestens eines Abschnitts eines ersten Objekts und eine Repräsentation mindestens eines Abschnitts eines zweiten Objekts zu identifizieren; Bestimmen eines ersten Bereichs des mindestens einen Bilds, der mit dem ersten Objekt assoziiert ist, und eines Typs des ersten Objekts, und Bestimmen eines zweiten Bereichs des mindestens einen Bilds, der mit dem zweiten Objekt assoziiert ist, und eines Typs des zweiten Objekts, wobei sich der Typ des ersten Objekts von dem Typ des zweiten Objekts unterscheidet.
  46. Navigationssystem nach Anspruch 45, wobei der mindestens eine Prozessor ferner dazu programmiert ist, den Typ des ersten Objekts oder den Typ des zweiten Objekts auszugeben.
  47. Navigationssystem nach Anspruch 45, wobei ein trainiertes System mindestens einen Teil der Analyse der zwei oder mehr Bilder durchführt.
  48. Navigationssystem nach Anspruch 47, wobei das trainierte System ein oder mehrere neuronale Netzwerke beinhaltet.
  49. Navigationssystem nach Anspruch 45, wobei der mindestens eine Prozessor ferner dazu programmiert ist, das Host-Fahrzeug zu veranlassen, eine Navigationsaktion basierend auf dem Typ des ersten Objekts oder dem Typ des zweiten Objekts zu implementieren.
  50. Navigationssystem nach Anspruch 45, wobei der Typ des ersten Objekts in einer ersten Objektklasse enthalten ist und der Typ des zweiten Objekts in einer zweiten Objektklasse enthalten ist und wobei die erste Objektklasse und die zweite Objektklasse sich gegenseitig ausschließende Objekte beinhalten.
  51. Navigationssystem nach Anspruch 50, wobei die erste Objektklasse und die zweite Objektklasse mindestens eines von einem Fahrzeug, einem Fußgänger, einem aufrechten unbeweglichen Objekt und einer Straßenoberfläche umfassen.
  52. Navigationssystem nach Anspruch 50, wobei die erste Objektklasse eines oder mehrere von einem Auto, Lastwagen, Bus, Motorrad, Straße, Barriere, Leitplanke, lackierte Straßenoberfläche, erhöhte Bereiche relativ zur Straße, befahrbare Straßenoberfläche oder Mast beinhaltet.
  53. Navigationssystem nach Anspruch 45, wobei das Analysieren der zwei oder mehr Bilder das Analysieren eines oder mehrerer Pixel der zwei oder mehr Bilder beinhaltet.
  54. Navigationssystem nach Anspruch 53, wobei das Identifizieren der Repräsentation des Abschnitts des ersten Objekts das Identifizieren mindestens eines Pixels in den zwei oder mehr Bildern beinhaltet, die mit der Repräsentation des ersten Objekts assoziiert sind.
  55. Navigationssystem nach Anspruch 54, wobei das Identifizieren der Repräsentation des Abschnitts des zweiten Objekts das Identifizieren mindestens eines Pixels in den zwei oder mehr Bildern beinhaltet, die mit der Repräsentation des zweiten Objekts assoziiert sind.
  56. Navigationssystem nach Anspruch 55, wobei das mindestens eine Pixel in den zwei oder mehr Bildern, die mit der Repräsentation des ersten Objekts assoziiert sind, nicht das mindestens eine Pixel in den zwei oder mehr Bildern beinhaltet, die mit der Repräsentation des zweiten Objekts assoziiert sind.
  57. Navigationssystem nach Anspruch 45, wobei das erste Objekt eine Leitplanke beinhaltet und das zweite Objekt eine Betonbarriere beinhaltet.
  58. Navigationssystem nach Anspruch 45, wobei das erste Objekt eine gemalte Straßenoberfläche beinhaltet und das zweite Objekt eine nicht gemalte Straßenoberfläche beinhaltet.
  59. Navigationssystem nach Anspruch 45, wobei der erste Bereich und der zweite Bereich unterschiedliche Höhen aufweisen.
  60. Navigationssystem nach Anspruch 59, wobei mindestens einer des ersten Bereichs oder des zweiten Bereichs basierend auf der Differenz der Höhen identifiziert wird.
  61. Navigationssystem nach Anspruch 59, wobei die zwei oder mehr Bilder eine Vielzahl von Bildern umfassen, die zu unterschiedlichen Zeiten erfasst werden, und die Differenz der Höhen wird basierend auf einem Vergleich von Pixeln zwischen der Vielzahl von Bildern bestimmt.
  62. Navigationssystem nach Anspruch 45, wobei der erste Bereich ein befahrbarer Bereich ist und der zweite Bereich ein nicht befahrbarer Bereich ist.
  63. Navigationssystem nach Anspruch 62, wobei der nicht befahrbare Bereich eine unbefestigte Oberfläche beinhaltet.
  64. Navigationssystem nach Anspruch 62, wobei der nicht befahrbare Bereich mindestens eines von einer Einfahrt, einem Bürgersteig oder einem Grasbereich beinhaltet.
  65. Navigationssystem nach Anspruch 45, wobei das erste Objekt ein Fahrzeug beinhaltet und das zweite Objekt einen Fußgänger beinhaltet.
  66. Navigationssystem nach Anspruch 45, wobei das Identifizieren der Repräsentation des Abschnitts des ersten Objekts oder der Repräsentation des Abschnitts des zweiten Objekts das Analysieren mindestens eines zweiten Bilds beinhaltet, das von der Kamera erfasst wurde.
  67. Navigationssystem nach Anspruch 66, wobei das zweite Bild einen vorbestimmten Zeitraum nach den zwei oder mehr Bildern erfasst wurde.
  68. Navigationssystem nach Anspruch 67, wobei der vorbestimmte Zeitraum auf einer Bildrate der Kamera basiert.
  69. Navigationssystem für ein Host-Fahrzeug, wobei das System umfasst: mindestens einen Prozessor, der programmiert ist zum: Empfangen von einer Kamera des Host-Fahrzeugs von mindestens einem Bild, das von einer Umgebung des Host-Fahrzeugs erfasst wurde; Analysieren des mindestens einen Bilds, um eine Repräsentation mindestens eines Abschnitts eines ersten Objekts und eine Repräsentation mindestens eines Abschnitts eines zweiten Objekts zu identifizieren; Bestimmen, basierend auf der Analyse, mindestens eines Aspekts einer Geometrie des ersten Objekts und mindestens eines Aspekts einer Geometrie des zweiten Objekts, Erzeugen, basierend auf dem mindestens einen Aspekt der Geometrie des ersten Objekts, einer ersten Bezeichnung, die einem Bereich des mindestens einen Bilds zugeordnet ist, der die Repräsentation des ersten Objekts beinhaltet; und Erzeugen, basierend auf dem mindestens einen Aspekt der Geometrie des zweiten Objekts, einer zweiten Bezeichnung, die einem Bereich des mindestens einen Bilds zugeordnet ist, der die Repräsentation des zweiten Objekts beinhaltet.
  70. Navigationssystem nach Anspruch 69, wobei die erste Bezeichnung einen Typ des ersten Objekts angibt.
  71. Navigationssystem nach Anspruch 69, wobei die erste Bezeichnung mit einer Kennung eines Typs des ersten Objekts assoziiert ist.
  72. Navigationssystem nach Anspruch 69, wobei die zweite Bezeichnung einen Typ des zweiten Objekts angibt.
  73. Navigationssystem nach Anspruch 69, wobei die zweite Bezeichnung mit einer Kennung eines Typs des zweiten Objekts assoziiert ist.
  74. Navigationssystem nach Anspruch 69, wobei der mindestens eine Prozessor ferner dazu programmiert ist, den mindestens einen Aspekt der Geometrie des ersten Objekts oder den mindestens einen Aspekt der Geometrie des zweiten Objekts auszugeben.
  75. Navigationssystem nach Anspruch 69, wobei ein trainiertes System mindestens einen Teil der Analyse des mindestens einen Bilds durchführt.
  76. Navigationssystem nach Anspruch 75, wobei das trainierte System ein oder mehrere neuronale Netzwerke beinhaltet.
  77. Navigationssystem nach Anspruch 69, wobei das erste Objekt eine Leitplanke beinhaltet und das zweite Objekt eine Betonbarriere beinhaltet.
  78. Navigationssystem nach Anspruch 77, wobei die Leitplanke zumindest teilweise basierend auf einer Textur der Leitplanke, die aus dem mindestens einen Bild bestimmt wird, als ein separates Objekt von der Betonbarriere identifiziert wird.
  79. Navigationssystem nach Anspruch 69, wobei der mindestens eine Aspekt der Geometrie des ersten Objekts eine Höhe des ersten Objekts beinhaltet und die erste Bezeichnung zumindest teilweise basierend auf der Höhe erzeugt wird.
  80. Navigationssystem nach Anspruch 69, wobei der mindestens eine Aspekt der Geometrie des zweiten Objekts eine Höhe des zweiten Objekts beinhaltet und die zweite Bezeichnung zumindest teilweise basierend auf der Höhe erzeugt wird.
  81. Navigationssystem nach Anspruch 69, wobei der Typ des ersten Objekts in einer ersten Objektklasse enthalten ist und der Typ des zweiten Objekts in einer zweiten Objektklasse enthalten ist und wobei die erste Objektklasse und die zweite Objektklasse sich gegenseitig ausschließende Objekte beinhalten.
  82. Navigationssystem nach Anspruch 81, wobei jede der ersten Objektklasse und der zweiten Objektklasse mindestens eines von einer Fahrspur-Markierung, einem Bordstein oder einer Wand beinhaltet.
  83. Navigationssystem nach Anspruch 69, wobei der mindestens eine Prozessor ferner dazu programmiert ist, eine Ausgabe von mindestens einem Sensor des Host-Fahrzeugs zu empfangen, und wobei der mindestens eine Aspekt der Geometrie des ersten Objekts oder der mindestens eine Aspekt der Geometrie des zweiten Objekts basierend auf der Ausgabe bestimmt wird.
  84. Navigationssystem nach Anspruch 69, wobei der mindestens eine Aspekt der Geometrie des ersten Objekts basierend auf einer Textur des ersten Objekts bestimmt wird.
  85. Navigationssystem nach Anspruch 69, wobei der mindestens eine Aspekt der Geometrie des zweiten Objekts basierend auf einer Textur des zweiten Objekts bestimmt wird.
  86. Navigationssystem nach Anspruch 69, wobei der mindestens eine Prozessor ferner dazu programmiert ist, zu bestimmen, dass mindestens eines des ersten Objekts oder des zweiten Objekts eine Straßenkante ist.
  87. Navigationssystem nach Anspruch 86, wobei der mindestens eine Prozessor ferner dazu programmiert ist, einen Typ der Straßenkante zu bestimmen.
  88. Navigationssystem nach Anspruch 86, wobei der mindestens eine Prozessor ferner dazu programmiert ist, zu bestimmen, ob die Straßenkante vom Host-Fahrzeug überquerbar ist.
DE112020002592.6T 2019-05-24 2020-05-22 Systeme und verfahren zur fahrzeugnavigation basierend auf bildanalyse Pending DE112020002592T5 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962852761P 2019-05-24 2019-05-24
US62/852,761 2019-05-24
US202062957009P 2020-01-03 2020-01-03
US62/957,009 2020-01-03
US202062976059P 2020-02-13 2020-02-13
US62/976,059 2020-02-13
PCT/US2020/034231 WO2020242945A1 (en) 2019-05-24 2020-05-22 Systems and methods for vehicle navigation based on image analysis

Publications (1)

Publication Number Publication Date
DE112020002592T5 true DE112020002592T5 (de) 2022-03-03

Family

ID=71094818

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020002592.6T Pending DE112020002592T5 (de) 2019-05-24 2020-05-22 Systeme und verfahren zur fahrzeugnavigation basierend auf bildanalyse

Country Status (5)

Country Link
US (2) US20220027642A1 (de)
JP (2) JP2022532695A (de)
CN (1) CN113825979A (de)
DE (1) DE112020002592T5 (de)
WO (1) WO2020242945A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022128390A1 (de) 2022-10-26 2024-05-02 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Betreiben eines Fahrerassistenzsystems eines Fahrzeugs mit automatisierter Querführung bei einer Folgefahrt, Fahrerassistenzsystem sowie Fahrzeug

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6838522B2 (ja) * 2017-08-10 2021-03-03 トヨタ自動車株式会社 画像収集システム、画像収集方法、画像収集装置、および記録媒体
US11836933B2 (en) * 2019-07-18 2023-12-05 Toyota Motor Europe Method for calculating information relative to a relative speed between an object and a camera
EP3770881B1 (de) * 2019-07-26 2023-11-15 Volkswagen AG Verfahren, computerprogramme, vorrichtungen, fahrzeug und verkehrseinheit zum aktualisieren eines umgebungsmodells eines fahrzeugs
KR102443401B1 (ko) * 2020-06-29 2022-09-15 주식회사 라이드플럭스 자율주행 차량을 위한 로드 네트워크 데이터 생성 방법, 장치 및 컴퓨터프로그램
US11823395B2 (en) * 2020-07-02 2023-11-21 Magna Electronics Inc. Vehicular vision system with road contour detection feature
US11790665B2 (en) * 2021-04-29 2023-10-17 Hitachi Astemo, Ltd. Data driven dynamically reconfigured disparity map
CN113674422A (zh) * 2021-08-27 2021-11-19 中汽创智科技有限公司 一种数据同步采集方法、控制模块、系统及存储介质
US20230303084A1 (en) * 2022-03-23 2023-09-28 Robert Bosch Gmbh Systems and methods for multi-modal data augmentation for perception tasks in autonomous driving
CN114897683A (zh) * 2022-04-25 2022-08-12 深圳信路通智能技术有限公司 车侧图像的获取方法及其装置、系统和计算机设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009033219A1 (de) * 2009-01-23 2010-07-29 Daimler Ag Verfahren zur Ermittlung eines Fahrzeug vorausliegenden Straßenprofils einer Fahrspur
US8977007B1 (en) * 2013-04-23 2015-03-10 Google Inc. Detecting a vehicle signal through image differencing and filtering
US9305223B1 (en) * 2013-06-26 2016-04-05 Google Inc. Vision-based indicator signal detection using spatiotemporal filtering
KR102359806B1 (ko) * 2016-06-27 2022-02-09 모빌아이 비젼 테크놀로지스 엘티디 검출된 주차 차량의 특징에 기반을 둔 호스트 차량의 제어
US10311312B2 (en) * 2017-08-31 2019-06-04 TuSimple System and method for vehicle occlusion detection
US11200433B2 (en) * 2017-05-03 2021-12-14 Mobileye Vision Technologies Ltd. Detection and classification systems and methods for autonomous vehicle navigation
DE102017215718B4 (de) * 2017-09-07 2019-06-13 Audi Ag Verfahren zum Auswerten eines optischen Erscheinungsbildes in einer Fahrzeugumgebung und Fahrzeug
US11474530B1 (en) * 2019-08-15 2022-10-18 Amazon Technologies, Inc. Semantic navigation of autonomous ground vehicles

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022128390A1 (de) 2022-10-26 2024-05-02 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Betreiben eines Fahrerassistenzsystems eines Fahrzeugs mit automatisierter Querführung bei einer Folgefahrt, Fahrerassistenzsystem sowie Fahrzeug

Also Published As

Publication number Publication date
US20220027642A1 (en) 2022-01-27
CN113825979A (zh) 2021-12-21
US20220035378A1 (en) 2022-02-03
WO2020242945A1 (en) 2020-12-03
JP2022532695A (ja) 2022-07-19
JP2023106536A (ja) 2023-08-01

Similar Documents

Publication Publication Date Title
US11940290B2 (en) Virtual stop line mapping and navigation
DE112020002175T5 (de) Systeme und verfahren zur fahrzeugnavigation
DE112020006426T5 (de) Systeme und verfahren zur fahrzeugnavigation
DE112020003897T5 (de) Systeme und verfahren zur überwachung von fahrspurüberlastung
DE112020002604T5 (de) Systeme und verfahren für die fahrzeugnavigation
DE112020004931T5 (de) Systeme und verfahren zur bestimmung der verkehrssicherheit
DE112018002143T5 (de) Systeme und verfahren zur kompression von fahrspurdaten
DE112020002764T5 (de) Systeme und verfahren zur fahrzeugnavigation
DE112020002592T5 (de) Systeme und verfahren zur fahrzeugnavigation basierend auf bildanalyse
DE112020004133T5 (de) Systeme und verfahren zur identifizierung möglicher kommunikationshindernisse
DE112021000094T5 (de) Systeme und verfahren zur fahrzeugnavigation, die ampeln und verkehrszeichen einbezieht
JP2022553491A (ja) 車両ナビゲーション用のシステムおよび方法
DE112020002869T5 (de) Navigationssysteme und verfahren zum bestimmen von objektabmessungen
DE112021002001T5 (de) Navigieren eines fahrzeugs unter verwendung eines elektronischen horizonts
DE112020000925T5 (de) Systeme und verfahren zur fahrzeugnavigation
DE112021003811T5 (de) Systeme und verfahren zur dynamischen strassengeometriemodellierung und navigation
DE112020001106T5 (de) Ausrichten von Straßeninformationen zur Navigation
DE112021002680T5 (de) Systeme und verfahren zum erkennen einer offenen tür
DE112021004128T5 (de) Systeme und verfahren für kartenbasierte modellierung der realen welt
DE112021002014T5 (de) Regelkreis zum navigieren eines fahrzeugs
DE112020006427T5 (de) Systeme und verfahren zum detektieren von ampeln
DE112020005275T5 (de) Systeme und verfahren zur selektiven verzögerung eines fahrzeugs
DE112022000380T5 (de) Systeme und verfahren zur einheitlichen geschwindigkeitskartierung und navigation
DE102022128968A1 (de) Systeme und verfahren zum sammeln von bildern zur fahrzeugnavigation

Legal Events

Date Code Title Description
R012 Request for examination validly filed