DE102022107848A1 - System und verfahren zur aktualisierung von karten mit hoher auflösung - Google Patents

System und verfahren zur aktualisierung von karten mit hoher auflösung Download PDF

Info

Publication number
DE102022107848A1
DE102022107848A1 DE102022107848.5A DE102022107848A DE102022107848A1 DE 102022107848 A1 DE102022107848 A1 DE 102022107848A1 DE 102022107848 A DE102022107848 A DE 102022107848A DE 102022107848 A1 DE102022107848 A1 DE 102022107848A1
Authority
DE
Germany
Prior art keywords
objects
vehicle
coordinate system
absolute coordinate
positions
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
DE102022107848.5A
Other languages
English (en)
Inventor
Amir Akbarzadeh
Ruchita Bhargava
Bhaven Dedhia
Rambod Jacoby
Jeffrey Liu
Vaibhav Thukral
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102022107848A1 publication Critical patent/DE102022107848A1/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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3859Differential updating map data
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3811Point data, e.g. Point of Interest [POI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/3667Display of a road map
    • G01C21/3673Labelling using text of road map data items, e.g. road names, POI names
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3815Road data
    • G01C21/3819Road shape data, e.g. outline of a route
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3844Data obtained from position sensors only, e.g. from inertial navigation
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3852Data derived from aerial or satellite images
    • 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
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/584Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of vehicle lights or traffic lights
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0108Measuring and analyzing of parameters relative to traffic conditions based on the source of data
    • G08G1/0112Measuring and analyzing of parameters relative to traffic conditions based on the source of data from the vehicle, e.g. floating car data [FCD]
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0125Traffic data processing
    • G08G1/0129Traffic data processing for creating historical data or processing based on historical data
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/04Detecting movement of traffic to be counted or controlled using optical or ultrasonic detectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
    • 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/10024Color image
    • 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/10028Range image; Depth image; 3D point clouds
    • 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/20081Training; Learning
    • 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
    • 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
    • G06T2207/30261Obstacle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Analytical Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Traffic Control Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Instructional Devices (AREA)
  • Navigation (AREA)

Abstract

Systeme und Verfahren zur fahrzeugbasierten Ermittlung von HD-Kartenaktualisierungsinformationen. Mit Sensoren ausgestattete Fahrzeuge können Standorte verschiedener erkannter Objekte relativ zu den Fahrzeugen bestimmen. Fahrzeuge können auch den Standort von Referenzobjekten relativ zu den Fahrzeugen bestimmen, wobei der Standort der Referenzobjekte in einem absoluten Koordinatensystem ebenfalls bekannt ist. Die absoluten Koordinaten verschiedener erkannter Objekte können dann aus der absoluten Position der Referenzobjekte und den Standorten anderer Objekte relativ zu den Referenzobjekten bestimmt werden. Die neu ermittelten absoluten Standorte der erkannten Objekte können dann an die HD-Kartendienste für Aktualisierungszwecke übermittelt werden.

Description

  • Hintergrund der Erfindung
  • Ausführungsformen der Erfindung betreffen allgemein Fahrzeuge. Genauer gesagt, betreffen Ausführungsformen der Erfindung die fahrzeugbasierte Aktualisierung hochauflösender Karten.
  • Zusammenfassung der Erfindung
  • Moderne autonome Fahrzeuge verwenden häufig hochauflösende (HD) Karten, um verschiedene Fahrfunktionen, wie zum Beispiel autonome Navigation, Pfadplanung und Umfahren von Hindernissen, zu unterstützen. Solche HD-Karten beschreiben üblicherweise Standorte verschiedener straßenrelevanter Merkmale mit der für die Navigation gewünschten Genauigkeit im Zentimeterbereich.
  • Fahrzeuge, welche HD-Karten verwenden, stehen jedoch vor erheblichen Herausforderungen. HD-Karten müssen regelmäßig bzw. häufig aktualisiert werden, da sich Straßenbedingungen und Objekte - oft sporadisch - aufgrund von Bauarbeiten, Naturereignissen und Ähnlichem ändern. Aktualisierung von HD-Karten auf den Zentimeter genau erforderte bisher den Einsatz hochpräziser Systeme zur Lokalisierungsbestimmung wie zum Beispiel globale Navigationssatellitensysteme (GNSS, Global Navigation Satellite Systems), die teuer und unhandlich sind und sich nicht für den Einsatz in Privatfahrzeugen eignen. Aktualisierungen von HD-Karten erforderten daher spezielle mit GNSS-Empfängern ausgestattete Fahrzeuge, was mit erheblichen Kosten verbunden war und deren begrenzter Einsatz - wiederum aus Kostengründen - logischerweise die Abdeckung und Häufigkeit von Aktualisierungen einschränkte.
  • Als Alternative akzeptieren einige HD-Kartenaktualisierungsdienste relative Koordinaten von Objekten. Fahrzeuge können Standorte oder Koordinaten von Objekten relativ zu den Fahrzeugen selbst ermitteln, und Kartenaktualisierungsdienste können diese relativen Koordinaten in Koordinaten in einem absoluten System wie dem globalen geodätischen System (WGS84, World Geodetic System 1984) unter Verwendung ermittelter Standorte der Fahrzeuge konvertieren. Leider werden relative Koordinaten von solchen Kartenaktualisierungsdiensten nicht weithin akzeptiert.
  • Dementsprechend werden hier Systeme und Methoden zum Aktualisieren von HD-Karten unter Verwendung absoluter und nicht relativer Koordinaten beschrieben. Absolute Koordinaten werden aus den von den Fahrzeugen berechneten relativen Koordinaten bestimmt, und diese absoluten Koordinaten werden an HD-Kartenaktualisierungsdienste gesendet, wo sie einfacher akzeptiert werden als relative Koordinaten. Fahrzeuge können die relativen Standorte von Objekten mit Hilfe verschiedener fahrzeugeigener Dienste bestimmen und den absolute Standort eines Referenzobjekts, für das auch ein relativer Standort bekannt ist, abrufen. Die absoluten Koordinaten beliebiger erkannten Objekts können dann aus dem absoluten Standort des Referenzobjekts und den berechneten Standorten dieser anderen Objekte relativ dazu ermittelt werden. Neu ermittelte absolute Standorte erkannter Objekte können dann an die HD-Kartendienste zur Aktualisierung übermittelt werden
  • Fahrzeuge können relative Standorte von Objekten unter Verwendung beliebiger geeigneter Sensoreingaben jeder Art bestimmen. In einigen Ausführungsformen der Erfindung können autonome Fahrzeuge, welche mit Kameras oder anderen Sensoren ausgestattet sind, relative Standorte von Objekten aus Sensordaten bestimmen. Beispielsweise können mit Kameras ausgestattete Fahrzeuge Bilder von Objekten innerhalb ihres Sichtfeldes aufnehmen und die Positionen dieser Objekte relativ zum Fahrzeug anhand dieser Bilder bestimmen. Objektpositionen können auch von anderen Sensoren ermittelt werden, zum Beispiel von LiDAR-Daten (Light Detection and Ranging), Ultraschall- oder anderen Näherungssensoren oder Ähnlichem.
  • Fahrzeuge können relative Standorte von Objekten auch mit jedem geeigneten Verfahren bzw. jeder geeigneten Herangehensweise bestimmen. In einem Beispiel können Fahrzeuge mehrere verschiedene Schätzungen der relativen Position eines Objekts ermitteln, wobei diese Schätzungen dann in geeigneter Weise gemittelt werden können, um einen Positionswert festzulegen. Beispielsweise kann ein einzelnes Fahrzeug ein Objekt mehrmals passieren und dabei jedes Mal eine Schätzung der relativen Position dieses Objekts bestimmen. In einem weiteren Beispiel können mehrere Fahrzeuge dasselbe Objekt passieren, wobei jedes Fahrzeug eine Positionsschätzung für das Objekt vornimmt. Unabhängig davon, auf welche Art mehrere Positionsschätzungen für ein Objekt ermittelt werden, können dann die mehreren Schätzungen in irgendeiner Weise gemittelt werden, um einen einzigen Positionswert für das Objekt festzulegen. Dementsprechend können genauere Positionsinformationen ermittelt und jede Bewegung eines Objekts im Laufe der Zeit berücksichtigt werden.
  • Einige Ausführungsformen der Erfindung verwenden auch ein lokales absolutes Koordinatensystem, welches sich vom absoluten Koordinatensystem der HD-Karte unterscheidet. Dementsprechend können Fahrzeuge zunächst Objektpositionen in diesem lokalen absoluten Koordinatensystem ermitteln und dann entweder lokale absolute Koordinatenpositionen an HD-Kartendienste übertragen oder lokale absolute Koordinaten in absolute HD-Kartenkoordinaten konvertieren und diese konvertierten Koordinaten an HD-Kartendienste senden. Beispielsweise können Fahrzeuge eine lokale Straßenkarte verwalten, in der sie erkannte Objekte platzieren, wobei diese Straßenkarte ein absolutes Koordinatensystem verwendet, welches mit dem von einer entfernten HD-Karte verwendeten Koordinatensystem identisch sein kann oder nicht. Das heißt, Fahrzeuge können die Koordinaten erkannter Objekte in diesem absoluten Straßenkoordinatensystem anhand ihrer ermittelten relativen Koordinaten und dem Standort eines Referenzobjekts innerhalb des Straßenkoordinatensystems bestimmen. Objekte, welche sich im Straßenkoordinatensystem befinden, können an einen HD-Kartendienst übermittelt werden, zum Beispiel durch Konvertierung ihrer Standorte im Straßenkoordinatensystem in das globale HD-Karten-Koordinatensystem und anschließende Übertragung der umgerechneten Koordinaten an den HD-Kartendienst
  • Es ist ebenfalls zu beachten, dass Systeme und Verfahren der Ausführungsformen der Erfindung eingesetzt werden können, um bereits bekannte Objektpositionen zu bestätigen oder zu korrigieren. Das heißt, absolute Standorte von Objekten können ermittelt und mit bereits bekannten Objektstandorten verglichen werden. Weicht der neu ermittelte Standort übermäßig von dem bestehenden Standort ab (z. B. über einen Schwellenwert hinaus), kann der bestehende Standort auf beliebige Weise korrigiert werden. Durch fortlaufende Berichtigungen kann ein Objekt im Laufe der Zeit genauer lokalisiert werden. Auf diese Weise können auch Objekte am Straßenrand berücksichtigt werden, deren Standort sich im Laufe der Zeit verändern kann, zum Beispiel ein durch einen Neubau versetzter Laternenpfahl, ein umgestürzter Baumstamm oder Ähnliches.
  • Ausführungsformen der Erfindung stellen somit Systeme und Verfahren für die Bestimmung absoluter Koordinaten von Objekten von einem Fahrzeug aus vor, welches sich möglicherweise in Bewegung befindet. Standorte von Objekten relativ zu einem Fahrzeug werden vom Fahrzeug während der Fahrt ermittelt, und diese relativen Positionen werden in absolute Koordinaten konvertiert, wobei ein oder mehrere Referenzobjekte, welche vom Fahrzeug erfasst und deren absolute Koordinaten bekannt sind, genutzt werden. Berechnete absolute Koordinaten können dann zum Beispiel an einen HD-Kartendienst übertragen werden, um die HD-Karte zu aktualisieren.
  • Figurenliste
  • Die oben genannten und andere Objekte und Vorteile der Erfindung werden bei Betrachtung der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Figuren deutlich, in denen sich gleiche Bezugszeichen durchgehend auf gleiche Teile beziehen. Sie zeigen:
    • 1 zeigt konzeptionell beispielhafte Systeme und Verfahren zur fahrzeugbasierten Aktualisierung von HD-Karten gemäß Ausführungsformen der Erfindung,
    • 2 zeigt eine beispielhafte semantische HD-Karte zur Verwendung bei autonomen Fahrzeugen gemäß Ausführungsformen der Erfindung,
    • 3 ist ein Blockdiagramm eines beispielhaften semantischen Kartierungssystems zur Verwendung bei autonomen Fahrzeugen gemäß Ausführungsformen der Erfindung,
    • 4A zeigt ein beispielhaftes autonomes Fahrzeug gemäß einigen Ausführungsformen der vorliegenden Erfindung,
    • 4B ist ein Beispiel für Kamerastandorte und Sichtfelder für das beispielhafte autonome Fahrzeug von 4A gemäß einigen Ausführungsformen der vorliegenden Erfindung,
    • 4C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug von 4A gemäß einigen Ausführungsformen der vorliegenden Erfindung,
    • 4D ist ein Systemdiagramm zur Kommunikation zwischen dem(den) cloudbasierten Server(n) und dem beispielhaften autonomen Fahrzeug von 4A gemäß einigen Ausführungsformen der vorliegenden Erfindung,
    • 5 ist ein Blockdiagramm eines beispielhaften Rechners, der zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Erfindung geeignet ist,
    • 6 zeigt Training und Einsatz eines Modells für maschinelles Lernen von Ausführungsformen der Erfindung und
    • 7 ist ein Flussdiagramm, das einen beispielhaften Prozess fahrzeugbasierter Aktualisierung von HD-Karten gemäß Ausführungsformen der Erfindung veranschaulicht.
  • Detaillierte Beschreibung der Erfindung
  • In einer Ausführungsform betrifft die Erfindung Systeme und Verfahren zur fahrzeugbasierten Ermittlung von HD-Karten-Aktualisierungsinformationen. Mit Sensoren ausgerüstete Fahrzeuge können Standorte verschiedener erkannter Objekte relativ zu den Fahrzeugen bestimmen. Fahrzeuge können auch den Standort von Referenzobjekten relativ zu den Fahrzeugen ermitteln, wobei der Standort der Referenzobjekte in einem absoluten Koordinatensystem ebenfalls bekannt ist. Die absoluten Koordinaten verschiedener erkannter Objekte können dann aus der absoluten Position der Referenzobjekte und den Standorten anderer Objekte relativ zu den Referenzobjekten ermittelt werden. Neu ermittelte absolute Standorte erkannter Objekte können dann an HD-Kartendienste zum Zwecke der Aktualisierung übermittelt werden.
  • 1 zeigt konzeptionell beispielhafte Systeme und Verfahren zum fahrzeugbasierten Aktualisieren von HD-Karten gemäß Ausführungsformen der Erfindung. Fahrzeug 100 kann ein Fahrzeug sein, wie zum Beispiel das weiter unten beschriebene autonome Fahrzeug 400, welches mit Sensoren, die Kameras umfassen, sowie mit einem oder mehreren Prozessoren ausgestattet ist. Die Prozessoren sind programmiert, eine Reihe von Funktionen auszuführen, darunter Erstellung und Pflege einer semantischen Karte sowie autonome Fahrfunktionen, wie zum Beispiel Routen- und Wegplanung unter Verwendung der semantischen Karte, Steuerung des Fahrzeugs zur Navigation sowie Erkennung und Umfahrung von Objekten. Der Aufbau und die Verwendung semantischer Karten zur Fahrzeugnavigation und für andere Funktionen werden im Folgenden näher beschrieben.
  • Im Betrieb kann ein Fahrzeug 100 Bilder von Objekten aufnehmen und deren Standorte relativ zum Fahrzeug 100 ermitteln. Genauer gesagt kann ein Objekt 130, zum Beispiel ein Stoppschild, von einer nach vorn gerichteten Kamera des Fahrzeugs 100 erfasst werden, wenn es sich in deren Sichtfeld 110 befindet. In ähnlicher Weise kann ein anderes Objekt 150, zum Beispiel eine Straßenlaterne, von einer seitlich gerichteten Kamera des Fahrzeugs 100 erfasst werden, wenn sich das Objekt 150 innerhalb des Sichtfelds 120 dieser seitlich gerichteten Kamera befindet. Erfasste Bilder können in einigen Ausführungsformen der Erfindung Bilder sichtbaren Lichts sein, obwohl in alternativen Ausführungsformen der Erfindung die Kameras auch Bilder beliebiger anderer Lichtwellenlängen erfassen können.
  • Das Fahrzeug 100 kann die Positionen und Formen dieser Objekte 130, 150 aus den aufgenommenen Bildern bestimmen, ebenso wie andere Sensoren, falls gewünscht. Positionsinformationen können auf jede geeignete Weise ermittelt werden, um die Position eines Objekts in einem oder mehreren aufgenommenen Bildern relativ zu der einen oder den mehreren Kameras, welche die Bilder aufgenommen haben, zu bestimmen. Solche Verfahren zur Positionsbestimmung umfassen die Ermittlung sowohl von Entfernung als auch Ausrichtung relativ zum Fahrzeug 100. Bestimmung der Entfernung kann durch jedes geeignete Verfahren bewerkstelligt werden, beispielsweise durch Entfernungsmesssysteme, welche die Entfernung eines Objekts anhand der Flugzeit der von diesen Objekten reflektierten Signale bestimmen. Solche Systeme können beliebige Signale verwenden, zum Beispiel LiDAR-Strahlen, Radar-, Ultraschall-, Funksignale oder dergleichen. Entfernungsbestimmung kann auch über erfasste Bilder erfolgen, zum Beispiel über Monokular- oder Stereo-Bilderfassungssysteme, welche Triangulation von Objekten in den von einer oder mehreren Kameras aufgenommenen Bildern verwenden. Gleichermaßen kann Orientierungsbestimmung durch jedes geeignete Verfahren erfolgen, beispielweise durch Monokular- oder Stereo-Bilderfassungssysteme, welche die relative Ausrichtung von Objekten anhand von Referenzpunkten in den von einer oder mehreren Kameras aufgenommenen Bildern bestimmen.
  • Sobald die relativen Standorte von Objekten wie den Objekten 130, 150 ermittelt wurden, kann das Fahrzeug 100 ihre absoluten Standorte bestimmen. Insbesondere kann das Fahrzeug 100 eine semantische Karte führen, welche in einer oder mehreren ihrer Kartenebenen den Standort von mindestens einem Referenzobjekt enthält, dessen absoluter Standort bekannt ist. Darüber hinaus bestimmt das Fahrzeug 100 seinen eigenen absoluten Standort zum Zeitpunkt der Aufnahme eines jeden Bildes, zum Beispiel über ein eingebautes globales Positionsbestimmungssystem (GPS). Die absoluten Standorte von Objekten 130, 150 können dann aus ihren relativen Standorten, dem absoluten Standort des einen oder der mehreren Referenzobjekte und dem absoluten Standort des Fahrzeugs 100, der zum Beispiel über sein GPS bestimmt wird, ermittelt werden.
  • Beispielsweise kann das Fahrzeug 100 seinen Standort über GPS bestimmen und in seiner semantischen Karte auch den absoluten Standort eines Referenzobjekts wie des Stoppschilds 160, das es kürzlich passiert hat, gespeichert haben. Ein oder mehrere Bilder, welche Stoppschild 160 und Straßenlaterne 150 erfassen, können dann verwendet werden, um den Standort der Straßenlaterne 150 relativ zum Stoppschild 160 zu bestimmen. Solche relativen Abstände zwischen diesen Objekten 150, 160 können auf beliebige Weise bestimmt werden und umfassen Bestimmung dieses relativen Abstands aus relativen Abständen zwischen diesen Objekten und dem Fahrzeug 100, wie sie aus den aufgenommenen Bildern ermittelt wurden, und den GPS-bestimmten Positionen des Fahrzeugs 100, als jedes Bild aufgenommen wurde. In ähnlicher Weise können relative Abstände zwischen diesen Objekten 150, 160 aus einem aufgenommenen Bild, welches beide Objekte 150 und 160 innerhalb seines Sichtfeldes enthält, ermittelt werden (oder aus mehreren solchen aufgenommenen Bildern, deren zusammengesetztes Bild beide Objekte 150, 160 enthält).
  • Sobald die Standorte von Objekten relativ zum Referenzobjekt 160 bestimmt sind, können auch ihre absoluten Standorte anhand des absoluten Standortes des Referenzobjekts 160 bestimmt werden. Auf diese Weise können absolute Standorte beliebiger Objekte vom Fahrzeug 100 bestimmt werden. Insbesondere können Formen und Standorte von Objekten wie Straßenbegrenzungen 110 (bei denen es sich um beliebige Begrenzungen wie Gehwegbegrenzungen, Bürgersteige, Fahrbahnmarkierungen oder Ähnliches handeln kann), Fußgängerüberwegmarkierungen 140 oder anderen Straßenmarkierungen oder anderen Objekte, welche von Kameras oder anderen Sensoren erfasst werden können, durch Ausführungsformen der Erfindung bestimmt werden.
  • Das Fahrzeug 100 kann eine lokal gespeicherte semantische Karte, wie beispielsweise eine Straßenkarte, zur Verwendung zum Beispiel für Navigationszwecke pflegen. Erkannte Objekte, ihre Standorte, Formen und Klassifizierungen können in geeigneten Schichten dieser Straßenkarte gespeichert werden. Darüber hinaus können zu verschiedenen Zeitpunkten in der Straßenkarte gespeicherte oder platzierte Objekte an andere Kartendienste übertragen werden, um deren HD-Karten zu aktualisieren. Auf diese Weise kann das Fahrzeug 100 jede lokal oder anderweitig gespeicherte HD-Karte mit genauen absoluten Positionsinformationen für jedes erkannte Objekt aktualisieren. Die semantischen Karten des Fahrzeugs 100 können durch Synchronisierung mit einem HD-Kartendienst gepflegt werden, d. h. durch regelmäßiges oder zu anderen Zeiten erfolgendes Herunterladen von HD-Karten-Merkmalen und Einfügen in ihre straßenseitigen Karten. So können die Fahrzeuge 100 beispielsweise Merkmale herunterladen, welche sich in einer bestimmten Entfernung von ihrem GPS-Standort befinden. Der Abruf von Merkmalen kann zu jedem beliebigen Zeitpunkt erfolgen, zum Beispiel in vorgegebenen Intervallen, beim Starten des Fahrzeugs, wenn das Fahrzeug eine vorgegebene Strecke zurückgelegt hat und dergleichen.
  • Das Augenmerk richtet sich nun auf semantische Karten und beispielhafte autonome Fahrzeuge (AVs, autonomous vehicles), welche solche Karten in Übereinstimmung mit einigen Ausführungsformen der Erfindung verwenden können. Semantische HD-Karten und ihre zentimetergenaue Präzision sind für AVs nützlich, um in Echtzeit Wissen über die Umgebung und durch maschinelles Lernen gestützte Entscheidungsfähigkeiten zu erzeugen. Bei Aufschlüsselung ihrer Funktionalität umfassen semantische Karten in der Regel drei Hauptschichten: eine Geometrie-Schicht, eine Fahrspurgeometrie-Schicht und eine Schicht mit semantischen Merkmalen und Kartenprioritäten.
  • Eine Geometrie-Schicht, bzw. die Basisschicht, kann als komplexeres Navigationssystem beschrieben werden. Diese Schicht umfasst voraussichtlich Straßenabschnitte, Kreuzungen und Verkehrsverbindungen. Die Fahrspur-Geometrie-Schicht kann Daten darüber enthalten, wie viele Fahrspuren vorhanden sind, in welche Richtung die Straßen verlaufen und wie die Straßen miteinander verbunden sind. Die Geometrie-Schicht ist in der Regel auch die Stelle, an der sich ein AV oder ein beliebiges Fahrzeug mit Kartierungsvermögen auf der semantischen Karte lokalisiert.
  • Eine Fahrspurgeometrie-Schicht, bzw. mittlere Schicht, erfordert in der Regel hohe Präzision. Die Fahrspurgeometrie-Schicht kann Merkmale speichern, welche dazu beitragen, den Weg eines Fahrzeugs zentimetergenau zu definieren. Diese mittlere Schicht enthält Merkmale wie individuelle Fahrbahnmarkierungen, Straßenverkehrsregeln (z. B. Vorfahrt gewähren, langsam fahren oder Vorsicht) und die Nähe benachbarter Fahrzeuge. Während sich die Geometrie-Schicht damit befasst, wie man von Punkt A nach Punkt B gelangt, befasst sich die Fahrbahngeometrie-Schicht mit detaillierter Wegplanung, um sicher ans Ziel zu kommen.
  • Eine Schicht Semantischer Merkmale und Kartenprioritäten, bzw. oberste Schicht, kann in zwei Teile unterteilt werden. Der Teil Semantische Merkmale dieser Schicht kann Merkmale enthalten, welche statischen oder im Wesentlichen statischen Objekten in einer Umgebung entsprechen, zum Beispiel Ampeln, Fußgängerüberwegen und Straßenschildern, die zusammen mit den von der Fahrspurgeometrie- und der Geometrie-Schicht bereitgestellten Informationen einem AV mehr Kontext über seine Umgebung liefern, so dass er genaue Navigationsentscheidungen treffen kann. Der Teil Kartenprioritäten dieser Schicht kann sich mit Bereichen befassen, in denen man eine korrelierende Wahrscheinlichkeit für ein bestimmtes, beobachtetes Verhalten erwarten würde. Dazu kann zum Beispiel die Wahrscheinlichkeit gehören, dass Kinder eine bestimmte Straße zwischen 7:00 und 8:00 Uhr und zwischen 15:00 und 16:30 Uhr in der Nähe einer Mittelschule überqueren. Kartenprioritäten können in der Kartensoftware kodiert sein. In einigen Ausführungsformen können Kartenprioritäten differenziertere Entscheidungsfähigkeiten verkörpern, welche für ein AV erforderlich sind, um menschliches Verhalten bei der Navigation effektiv zu berücksichtigen.
  • Faltende neuronale Netze (CNNs, Convolutional Neural Networks), welche Deep-Learning-Strategie veranschaulichen, werden üblicherweise bei semantischer Kartierung verwendet. In einigen Ausführungsformen kann eine Kamera an einem AV ein RGB-Bild in Echtzeit erzeugen, während das AV betrieben wird. CNNs analysieren unter Verwendung einer kleineren Matrix oder eines Kernels die Pixelmatrix des RGB-Bildes, um eine gefaltete Matrix zu erzeugen. Aufeinanderfolgende Schichten von Kerneln können Bildmerkmale herausfiltern, welche von aufeinanderfolgenden Teilen des CNN oder anderen neuronalen Netzen verwendet werden, um Objekte innerhalb des Bildes zu klassifizieren oder zu identifizieren.
  • In einem AV sind üblicherweise bestimmte Sensoren zur Verwendung mit semantischen Karten eingesetzt. Dazu gehören GPS-Sensoren, Trägheitsmessgeräte (IMUs, Inertial Measurement Units), LiDAR-Systeme, Kameras mit sichtbarem Licht und Ähnliches. Ein beliebiger oder mehrere dieser Sensoren können verwendet werden, um eine 3D-Darstellung der Umgebung eines AV zu erzeugen. Darüber hinaus ist ein iterativer Prozess mit mehreren AVs auf der Straße oft sinnvoll, um die semantische Karte ständig zu aktualisieren und zu verbessern. Solche Konfigurationen können einen entfernten Server einsetzen, welcher eine zentrale semantische HD-Karte pflegt und mit dem jedes AV ständig über ein Kommunikationsmedium wie ein sicheres Netzwerk kommuniziert, um die semantische Karte zu speichern und zu aktualisieren. Alternativ oder zusätzlich kann die semantische Karte auch auf einer lokalen Festplatte innerhalb jedes AV gespeichert und gepflegt werden.
  • 2 zeigt die Funktionalität einer semantischen HD-Karte, welche in autonomen Fahrzeugen (AVs) für verschiedene Funktionen, wie zum Beispiel Navigation und Routenplanung, verwendet wird. In einer beispielhaften Ausführungsform kann die Geometrie-Schicht, auch als Basisschicht bezeichnet, als die Straßen, Fahrspuren und Kreuzungen dargestellt werden, auf denen andere Schichten einer semantischen HD-Karte aufgebaut werden können. In einer beispielhaften Ausführungsform kann die Basisschicht rudimentärere Aspekte der Karte enthalten, zum Beispiel Merkmale wie Mauer 203 und die Absperrung 204. In einer beispielhaften Ausführungsform kann sich die Fahrspurgeometrie-Schicht - bzw. mittlere Schicht - mit Fahrspurmarkierungen und Regeln auf Straßenebene, die zum Beispiel Fahrradweg 206, Fahrstreifenpfeil 207 und Fahrbahnbreite 208 enthalten, befassen. In einer beispielhaften Ausführungsform kann die Schicht Semantischer Merkmale und Kartenprioritäten - bzw. die oberste Schicht - Ampel 200, Fußgängerüberweg 201, Haltelinie 202 und Pfosten 205 sowie andere Informationen umfassen, wie zum Beispiel Wahrscheinlichkeiten von Risiken oder Hindernissen (z. B. die lokale Wahrscheinlichkeit, dass Fußgänger die Straße überqueren), die verwendet werden, wenn ein AV den besten Weg zur Erreichung seines Ziels plant. Befände sich diese Kreuzung beispielsweise in der Nähe einer Schule oder eines Hundeparks, könnte die oberste Schicht, insbesondere die Kartenprioritäten, beim Kartografieren eines Weges die Wahrscheinlichkeiten für diese Orte berücksichtigen.
  • 3 ist ein Blockdiagramm eines beispielhaften semantischen Kartierungssystems zur Verwendung bei autonomen Fahrzeugen gemäß Ausführungsformen der Erfindung. In einer beispielhaften Ausführungsform erzeugen Kamera 300 und LiDAR 307 (falls eingesetzt) ein RGB-Bild 301 und eine Punktwolke 306. In einigen Ausführungsformen kann ein RGB-Bild eine Matrix von Pixeln mit entsprechenden Gewichten, oder Bits, sein, welche die Anzahl der von ihnen angezeigten Farben bestimmen; eine Punktwolke ist eine Menge von Datenpunkten im Raum, welche beispielsweise durch LiDAR-Laserreflektion von einem Objekt erzeugt werden. Ein neuronales Netz, wie zum Beispiel ein faltendes neuronales Netz (CNN), kann verwendet werden, um Merkmale des RGB-Bildes, wie oben beschrieben, zu extrahieren und eine semantische Segmentierung 302 zu erzeugen, die pixelweise Beschriftungen enthält. In einigen Ausführungsformen können die Merkmale dann über das CNN oder andere neuronale Netze identifiziert werden, um eine semantische Kartierung 305 vorzunehmen, bei der die Standorte und ermittelten Formen (über z. B. die Punktwolke 306 oder das RGB-Bild 301) der identifizierten Objekte in die entsprechende semantische Kartenschicht eingefügt werden. Dies kann eine semantische 2,5D-Gitterkarte 304 oder eine aktualisierte lokale oder Straßenkarte hoher Auflösung ergeben, welche von neuronalen Netzen und anderen Prozessen zur Planung eines Fahrzeugwegs 303 verwendet werden kann.
  • Semantische Kartierungen 305 können zur Aktualisierung lokal gespeicherter Straßenkarten des AV wie oben beschrieben verwendet und/oder zur Aktualisierung der entfernt gespeicherten HD-Karten übertragen werden. Im letzteren Fall können mehrere AVs ihre semantischen Kartierungen 305 übertragen, um eine entfernt gespeicherte HD-Karte zu aktualisieren. Auf diese Weise kann eine zentrale HD-Karte von mehreren AVs, welche während der Fahrt verschiedene Straßenmerkmale erkennen und bestimmen, in Echtzeit gepflegt und aktualisiert werden.
  • 4A zeigt ein beispielhaftes autonomes Fahrzeug 400 gemäß einigen Ausführungsformen der vorliegenden Erfindung. Das autonome Fahrzeug 400 (hier alternativ Fahrzeug 400 genannt) kann, ohne darauf beschränkt zu sein, ein Personenfahrzeug, wie zum Beispiel einen Pkw, einen Lkw, einen Bus, einen Rettungswagen, einen Shuttle, ein Elektrofahrrad oder Mofa, ein Motorrad, ein Feuerwehrauto, ein Polizeifahrzeug, einen Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne, einen Roboter, wie zum Beispiel einen Fabrikroboter oder einen persönlichen Assistenzroboter, eine Roboterplattform und/oder eine andere Art von Fahrzeug (z. B. das unbemannt ist und/oder einen oder mehrere Fahrgäste aufnimmt) umfassen.
    Autonome Fahrzeuge werden im Allgemeinen in Form von Automatisierungsstufen beschrieben, welche von der US-Bundesbehörde für Straßen- und Fahrzeugsicherheit (National Highway Traffic Safety Administration, NHTSA), einer Abteilung des US-Verkehrsministeriums, und der Gesellschaft der Automobilingenieure (Society of Automotive Engineers, SAE) in der Publikation „Systematik und Definitionen von Termini in Verbindung mit Automatisierten Fahrsystemen für Straßengebundene Kraftfahrzeuge“ (Norm Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Norm Nr. J 3016-201609 , veröffentlicht am 30. September 2016, sowie frühere und zukünftige Versionen dieser Norm) definiert sind. Das Fahrzeug 400 kann in der Lage sein, Funktionen gemäß einer oder mehrerer der Stufen 3 bis 5 der autonomen Fahrstufen auszuführen. Beispielsweise kann das Fahrzeug 400 je nach Ausführungsform bedingt automatisiert (Stufe 3), hochautomatisiert (Stufe 4) und/oder vollständig automatisiert (Stufe 5) sein.
  • Das Fahrzeug 400 kann Komponenten wie ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z. B. 2, 4, 6, 8, 18 etc.), Reifen, Achsen und andere Fahrzeugteile umfassen. Das Fahrzeug 400 kann ein Antriebssystem 450, wie zum Beispiel einen Verbrennungsmotor, einen Hybridantrieb, einen reinen Elektromotor und/oder einen anderen Antriebstyp, umfassen. Das Antriebssystem 450 kann mit einem Antriebsstrang des Fahrzeugs 400, welcher ein Getriebe umfassen kann, um den Antrieb des Fahrzeugs 500 zu ermöglichen, verbunden sein. Das Antriebssystem 450 kann als Reaktion auf den Empfang von Signalen von der Drosselklappe/dem Beschleuniger 452 gesteuert werden.
  • Ein Lenksystem 454, welches ein Lenkrad umfassen kann, kann verwendet werden, um das Fahrzeug 400 zu lenken (z. B. entlang eines gewünschten Weges oder einer gewünschten Route), wenn das Antriebssystem 450 in Betrieb ist (z. B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 454 kann Signale von einem Lenkaktuator 456 empfangen. Das Lenkrad kann bei vollständiger Automatisierungsfunktionalität (Stufe 5) optional sein.
  • Das Bremssensorsystem 446 kann eingesetzt werden, um die Fahrzeugbremsen als Reaktion auf den Empfang von Signalen von den Bremsaktuatoren 448 und/oder Bremssensoren zu betätigen.
  • Ein oder mehrere Steuerungen 436, welche eine oder mehrere CPUs, System-on-Chips (SoCs) 404 (4C) und/oder GPUs umfassen können, können einer oder mehreren Komponenten und/oder einem oder mehreren Systemen des Fahrzeugs 400 Signale (z. B. in Form von Befehlen) bereitstellen. Beispielsweise können die eine oder die mehreren Steuereinheiten Signale senden, um die Fahrzeugbremsen über einen oder mehrere Bremsaktuatoren 448 zu betätigen, das Lenksystem 454 über einen oder mehrere Lenkaktuatoren 456 zu betätigen und/oder das Antriebssystem 450 über einen oder mehrere Drosselklappen/Beschleuniger 452 zu betätigen. Die eine oder mehreren Steuerungen 436 können eine oder mehrere eingebaute (z. B. integrierte) Rechner (z. B. Supercomputer) umfassen, welche Sensorsignale verarbeiten und Betriebsbefehle ausgeben (z. B. Signale in Form von Befehlen), um autonomes Fahren zu ermöglichen und/oder eine Person beim Lenken des Fahrzeugs 400 zu unterstützen. Die eine oder mehreren Steuerungen 436 können eine erste Steuerung 436 für autonome Fahrfunktionen, eine zweite Steuerung 436 für funktionale Sicherheitsfunktionen, eine dritte Steuerung 436 für Funktionen der künstlichen Intelligenz (z. B. Computer Vision), eine vierte Steuerung 436 für Infotainment-Funktionen, eine fünfte Steuerung 436 für Redundanz in Notfällen und/oder andere Steuerungen umfassen. In einigen Beispielen kann eine einzelne Steuerung 536 zwei oder mehr der oben genannten Funktionen übernehmen, zwei oder mehr Steuerungen 536 können eine einzelne Funktion übernehmen und/oder eine beliebige Kombination davon ist möglich.
  • Die eine oder mehreren Steuerungen 436 können von einem oder mehreren Sensoren (z. B. Sensoreingaben) empfangene Signale zur Steuerung einer oder mehrerer Komponenten und/oder eines oder mehrerer Systeme des Fahrzeugs 400 als Reaktion auf Sensordaten bereitstellen. Die Sensordaten können beispielsweise und ohne darauf beschränkt zu sein von einem oder mehreren Sensoren des globalen Navigationssatellitensystems 458 (z. B. GPS-Sensor(en)), einem oder mehreren RADAR-Sensoren 460, Ultraschallsensoren 462, LiDAR-Sensoren 464, IMU-Sensoren 466 (z. B. Beschleunigungsmesser(n), Gyroskop(en), Magnetkompass(en), Magnetometer(n) etc.), Mikrofonen 496, einer oder mehreren Stereokameras 468, Weitwinkelkameras 470 (z. B. Fisheye-Kameras), Infrarotkameras 472, Rundumsichtkameras 474 (z. B. 360-Grad-Kameras), Weit- und/oder Mittelbereichskameras 498, einem oder mehreren Geschwindigkeitssensoren 444 (z. B. zur Messung der Geschwindigkeit des Fahrzeugs 400), Vibrationssensoren 442, Lenksensoren 440, Bremssensoren 446 (z. B. als Teil des Bremssensorsystems 446) und/oder anderen Sensortypen empfangen werden.
  • Eine oder mehrere der Steuerungen 436 können Eingaben (z. B. in Form von Eingabedaten) von einem Kombi-Instrument 432 des Fahrzeugs 400 empfangen und Ausgaben (z. B. in Form von Ausgabedaten, Anzeigedaten etc.) über eine Mensch-Maschinen-Schnittstellenanzeige (HMI-Display) 434, eine akustischen Meldeeinrichtung, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 400 bereitstellen. Die Ausgaben können Informationen wie Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. die HD-Karte 422 von 4C), Standortdaten (z. B. den Standort des Fahrzeugs 400, z. B. wie auf einer Karte), Richtung, Standort anderer Fahrzeuge (z. B. ein Belegungsraster), Informationen über Objekte und den Status von Objekten, wie von der oder den Steuerungen 436 erkannt, usw. umfassen. Beispielsweise kann das HMI-Display 434 Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. ein Straßenschild, ein Warnschild, eine Ampelschaltung etc.) und/oder Informationen über Fahrmanöver anzeigen, welche das Fahrzeug durchgeführt hat, gerade durchführt oder durchführen wird (z. B. Spur jetzt wechseln, Ausfahrt 34B in 2 Meilen nehmen etc.).
  • Das Fahrzeug 400 umfasst ferner eine Netzwerkschnittstelle 424, welche eine oder mehrere drahtlose Antennen 426 und/oder ein oder mehrere Modems zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Zum Beispiel kann die Netzwerkschnittstelle 424 in der Lage sein, über LTE, WCDMA, UMTS, GSM, CDMA2000 usw. zu kommunizieren. Die eine oder mehreren drahtlosen Antennen 426 können auch eine Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeuge, mobile Geräte etc.), unter Nutzung lokaler Netzwerke wie Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw. und/oder Low Power Wide Area Networks (LPWANs) wie LoRaWAN, SigFox usw. ermöglichen.
  • 4B zeigt ein Beispiel für Kamerastandorte und Sichtfelder für das beispielhafte autonome Fahrzeug 400 von 4A gemäß einigen Ausführungsformen der vorliegenden Erfindung. Die Kameras und die jeweiligen Sichtfelder sind ein Beispiel für eine Ausführungsform und nicht als Einschränkung zu verstehen. Beispielsweise können zusätzliche und/oder alternative Kameras vorhanden sein und/oder die Kameras können an verschiedenen Stellen des Fahrzeugs 400 angeordnet sein.
  • Die Kameratypen für die Kameras können, ohne auf diese beschränkt zu sein, Digitalkameras umfassen, welche für die Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 400 angepasst sein können. Die eine oder mehreren Kameras können auf der Sicherheitsstufe B (Automotive Safety Integrity Level, ASIL) und/oder einer anderen ASIL betrieben werden. Die Kameratypen können je nach Ausführungsform eine beliebige Bildaufnahmerate haben, zum Beispiel 60 Bilder pro Sekunde (fps), 120 fps, 240 fps usw. Die Kameras können Rolling Shutter, Global Shutter, einen anderen Shutter-Typ oder eine Kombination davon verwenden. In einigen Beispielen kann die Farbfilteranordnung eine Rot-Klar-Klar-Klar-Farbfilteranordnung (RCCC), eine Rot-Klar-Klar-Blau-Farbfilteranordnung (RCCB), eine Rot-Blau-Grün-Klar-Farbfilteranordnung (RBGC), eine Foveon X3-Farbfilteranordnung, eine Bayer-Sensor-Farbfilteranordnung (RGGB), eine Monochromsensor-Farbfilteranordnung und/oder eine andere Art von Farbfilteranordnung umfassen. In einigen Ausführungsformen können Kameras mit klaren Pixeln, wie beispielsweise Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, verwendet werden, um die Lichtempfindlichkeit zu erhöhen.
  • In einigen Beispielen können eine oder mehrere der Kameras verwendet werden, um hochentwickelte Fahrerassistenzsystemfunktionen (ADAS-Funktionen) auszuführen (z. B. als Teil einer redundanten oder ausfallsicheren Ausgestaltung). So kann beispielsweise eine Multifunktions-Monokamera installiert sein, um Funktionen wie Spurhalteassistent, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung bereitzustellen. Eine oder mehrere der Kameras (z. B. alle Kameras) können Bilddaten (z. B. Videos) gleichzeitig aufzeichnen und bereitstellen.
  • Eine oder mehrere der Kameras können in einer Baugruppe, wie beispielsweise einer kundenspezifischen (3D-gedruckten) Baugruppe, montiert sein, um Streulicht und Reflexionen aus dem Fahrzeuginneren (z. B. Reflexionen des Armaturenbretts, das in der Windschutzscheibe reflektiert wird), welche die Bilddatenerfassungsleistungen der Kamera beeinträchtigen können, auszuschließen. Bei der Montage von Außenspiegeln können die Außenspiegel kundenspezifisch dreidimensional gedruckt sein, so dass die Kameramontageplatte der Form des Außenspiegels entspricht. In einigen Beispielen können die Kameras in den Außenspiegel integriert sein. Bei Seitensichtkameras können die eine oder mehreren Kameras auch in die vier Säulen an jeder Ecke des Innenraums eingebaut sein.
  • Kameras mit einem Sichtfeld, welches Teile der Umgebung vor dem Fahrzeug 400 einschließt (z. B. nach vorn gerichtete Kameras), können für Rundumsicht verwendet werden, um die Identifizierung vorwärts gerichteter Wege und Hindernisse zu unterstützen sowie mit Hilfe einer oder mehreren Steuerungen 436 und/oder Steuer-SoCs Informationen bereitzustellen, die zum Erstellen eines Belegungsrasters und/oder Bestimmen der bevorzugten Fahrzeugwege entscheidend sind. Nach vom gerichtete Kameras können verwendet werden, um viele der gleichen ADAS-Funktionen wie LiDAR, einschließlich Notbremsung, Fußgängererkennung und Kollisionsvermeidung, durchzuführen. Nach vorn gerichtete Kameras können auch für ADAS-Funktionen und -Systeme wie Spurhalteassistent (LDW, Lane Departure Warnings), autonome Geschwindigkeitsregelung (ACC, Autonomous Cruise Control) und/oder andere Funktionen wie Verkehrszeichenerkennung eingesetzt werden.
  • Eine Vielzahl von Kameras kann in einer nach vorn ausgerichteten Anordnung verwendet werden, einschließlich und ohne darauf beschränkt zu sein, in einer monokularen Kameraplattform, die einen CMOS-Farbbildgeber (Complementary Metal Oxide Semiconductor) enthält. Ein weiteres Beispiel sind eine oder mehrere Weitwinkelkameras 470, welche verwendet werden können, um Objekte zu erkennen, die von der Peripherie ins Blickfeld kommen (z. B. Fußgänger, kreuzender Verkehr oder kreuzende Fahrräder). Obwohl in 4B nur eine Weitwinkelkamera dargestellt ist, kann das Fahrzeug 400 mit einer beliebigen Anzahl von Weitwinkelkameras 470 ausgestattet sein. Darüber hinaus können die eine oder mehreren Weitbereichskameras 498 (z. B. ein Weitwinkel-Stereokamerapaar) zur tiefenbasierten Objekterkennung verwendet werden, insbesondere für Objekte, für die ein neuronales Netz noch nicht trainiert wurde. Die eine oder mehreren Weitbereichskameras 498 können auch für Objekterkennung und -klassifizierung sowie grundlegende Objektnachverfolgung eingesetzt werden.
  • Eine oder mehrere Stereokameras 568 können ebenfalls in einer nach vorn ausgerichteten Anordnung enthalten sein. Die eine oder mehreren Stereokameras 568 können eine integrierte Steuereinheit enthalten, welche eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (z. B. FPGA) und einen Multicore-Mikroprozessor mit einer integrierten CAN- oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. Eine solche Einheit kann verwendet werden, um eine 3D-Karte der Fahrzeugumgebung, einschließlich einer Entfernungsschätzung für alle Punkte im Bild, zu erstellen. Eine oder mehrere alternative Stereokameras 468 können einen oder mehrere kompakte stereoskopische Sensoren umfassen, die zwei Kameralinsen (je eine links und rechts) und einen Bildverarbeitungschip enthalten, welcher die Entfernung vom Fahrzeug zum Zielobjekt messen und die erzeugten Informationen (z. B. Metadaten) zur Aktivierung der autonomen Notbrems- und Spurhaltehalteassistent-Funktionen verwenden kann. Zusätzlich oder alternativ zu den hier beschriebenen Stereokameras können auch andere Typen von Stereokameras 468 eingesetzt werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung seitlich des Fahrzeugs 500 einschließt (z. B. Seitensichtkameras), können zur Rundumsicht verwendet werden und Informationen liefern, welche zum Erstellen und Aktualisieren des Belegungsrasters sowie zum Erzeugen von Seitenaufprall-Kollisionswarnungen genutzt werden. Beispielsweise können die eine oder mehreren Rundumsichtkameras 474 (z. B. vier Rundumsichtkameras 474 wie in 4B dargestellt) rundum im Fahrzeug 400 positioniert sein. Die eine oder mehreren Rundumsichtkameras 474 können Weitwinkelkamera(s) 470, Fisheye-Kamera(s), 360-Grad-Kamera(s) und/oder dergleichen umfassen. Beispielsweise können vier Fisheye-Kameras an der Vorderseite, am Heck und an den Seiten des Fahrzeugs angebracht sein. In einer alternativen Anordnung kann das Fahrzeug drei Rundumsichtkameras 474 (z. B. links, rechts und hinten) verwenden und eine oder mehrere andere Kameras (z. B. eine nach vorn gerichtete Kamera) als vierte Rundumsichtkamera nutzen.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung hinter dem Fahrzeug 400 einschließt (z. B. Rücksichtkameras), können für Einparkhilfe, Rundumsicht, Heckkollisionswarnungen und zum Erstellen und Aktualisieren des Belegungsrasters verwendet werden. Es kann eine Vielzahl von Kameras verwendet werden, einschließlich aber nicht beschränkt auf Kameras, die auch wie hier beschrieben als nach vorn gerichtete Kameras geeignet sind (z. B. Weit- und/oder Mittelbereichskamera(s) 498, Stereokamera(s) 468, Infrarotkamera(s) 472 etc.).
  • Kameras mit einem Sichtfeld, das Teile des Innenraums bzw. der Kabine des Fahrzeugs 400 umfasst, können verwendet werden, um einen oder mehrere Zustände von Fahrzeugführern, Fahrgästen oder Objekten im Innenraum zu überwachen. Es kann jede Art von Kamera verwendet werden, einschließlich aber ohne Beschränkung auf Innenraumkamera(s) 441, welche jede hierin beschriebene Art von Kamera sein und an jeder Stelle am oder im Fahrzeug 400, die einen Blick auf die Kabine bzw. den Innenraum bietet, positioniert werden kann. Beispielsweise können die einen oder mehreren Kabinen- bzw. Innenraumkameras 441 innerhalb oder an einem Teil des Armaturenbretts, des Rückspiegels, der Seitenspiegel, der Sitze oder der Türen des Fahrzeugs 400 angebracht und so ausgerichtet sein, dass sie Bilder von Fahrzeugführern, Fahrgästen oder anderen Objekten oder Teilen des Fahrzeugs 400 aufnehmen.
  • 4C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug 400 von 4A gemäß einigen Ausführungsformen der vorliegenden Erfindung. Es versteht sich, dass diese und andere hier beschriebenen Anordnungen nur als Beispiele dargestellt sind. Andere Anordnungen und Elemente (z. B. Vorrichtungen, Schnittstellen, Funktionen, Reihenfolgen, Gruppierungen von Funktionen etc.) können zusätzlich zu oder anstelle der dargestellten verwendet werden und einige Elemente können ganz weggelassen werden. Außerdem sind viele der hier beschriebenen Elemente funktionale Einheiten, welche als einzelne oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jeder geeigneten Stelle implementiert sein können. Verschiedene hier beschriebene Funktionen, welche von Einheiten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor realisiert werden, der im Speicher gespeicherte Anweisungen ausführt.
  • Alle Komponenten, Merkmale und Systeme des Fahrzeugs 400 in 4C sind so dargestellt, dass sie über einen Bus 402 verbunden sind. Der Bus 402 kann eine Controller Area Network (CAN)-Datenschnittstelle (hier alternativ als CAN-Bus bezeichnet) umfassen. Ein CAN-Bus kann ein Netzwerk innerhalb des Fahrzeugs 400 sein, welches zur Unterstützung der Steuerung verschiedener Features und Funktionen des Fahrzeugs 400, wie beispielsweise Bremsantrieb, Beschleunigung, Bremsung, Lenkung, Scheibenwischer usw., verwendet wird. Ein CAN-Bus kann eingerichtet sein, Dutzende oder sogar Hunderte von Knoten zu haben, jeder mit seiner eigenen eindeutigen Kennung (z. B. einer CAN-ID). Der CAN-Bus kann gelesen werden, um Lenkradwinkel, Fahrgeschwindigkeit, Motordrehzahl pro Minute (RPM), Button-Positionen und/oder andere Fahrzeugstatusanzeigen zu ermitteln. Der CAN-Bus kann ASIL B-konform sein.
  • Obwohl der Bus 402 hier als CAN-Bus beschrieben wird, ist dies nicht als Einschränkung zu verstehen. Beispielsweise können/kann zusätzlich oder alternativ zum CAN-Bus auch FlexRay und/oder Ethernet verwendet werden. Obwohl eine einzelne Leitung zur Darstellung des Busses 402 verwendet wird, ist dies ebenfalls nicht als Einschränkung zu verstehen. Beispielsweise kann es eine beliebige Anzahl von Bussen 402 geben, welche einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder eine oder mehrere andere Arten von Bussen umfassen, die ein anderes Protokoll verwenden. In einigen Beispielen können zwei oder mehr Busse 402 verwendet werden, um unterschiedliche Funktionen auszuführen, und/oder sie können für Redundanzzwecke verwendet werden. So kann beispielsweise ein erster Bus 402 für die Kollisionsvermeidungsfunktion und ein zweiter Bus 402 für die Antriebssteuerung verwendet werden. In jedem Beispiel kann jeder Bus 402 mit einer beliebigen Komponente des Fahrzeugs 400 kommunizieren, und zwei oder mehr Busse 402 können mit denselben Komponenten kommunizieren. In einigen Beispielen kann jeder SoC 404, jede Steuerung 436 und/oder jeder Computer innerhalb des Fahrzeugs Zugriff auf dieselben Eingangsdaten (z. B. Eingaben von Sensoren des Fahrzeugs 400) haben und mit einem gemeinsamen Bus, wie dem CAN-Bus, verbunden sein.
  • Das Fahrzeug 400 kann eine oder mehrere Steuerungen 436 wie solche enthalten, die hier mit Bezug auf 4A beschrieben sind. Die eine oder mehreren Steuerungen 436 können für eine Vielzahl von Funktionen verwendet werden. Die eine oder mehreren Steuerungen 436 können mit einer der verschiedenen anderen Komponenten und Systeme des Fahrzeugs 400 gekoppelt und zum Steuern des Fahrzeugs 400, zur künstlichen Intelligenz des Fahrzeugs 400, zum Infotainment für das Fahrzeug 400 und/oder für Ähnliches verwendet werden.
  • Das Fahrzeug 400 kann ein oder mehrere Systeme auf einem Chip (SoC) 404 enthalten. Das SoC 404 kann CPU(s) 406, GPU(s) 408, Prozessor(en) 410, Cache(s) 412, Beschleuniger 414, Datenspeicher 416 und/oder andere nicht dargestellte Komponenten und Features umfassen. Das oder die SoCs 404 können zur Steuerung des Fahrzeugs 400 in einer Vielzahl von Plattformen und Systemen verwendet werden. Zum Beispiel können das oder die SoCs 404 in einem System (z. B. dem System des Fahrzeugs 400) mit einer HD-Karte 422 kombiniert sein, die Kartenerneuerungen und/oder -aktualisierungen über eine Netzwerkschnittstelle 424 von einem oder mehreren Servern (z. B. dem(den) Server(n) 478 von 4D) erhalten kann.
  • Die eine oder mehreren CPUs 406 können einen CPU-Cluster oder CPU-Komplex (hier alternativ als CCPLEX bezeichnet) umfassen. Die eine oder mehreren CPUs 406 können mehrere Kerne und/oder L2-Caches enthalten. In einigen Ausführungsformen können die eine oder mehreren CPUs 406 beispielsweise acht Kerne in einer kohärenten Multiprozessorkonfiguration umfassen. In einigen Ausführungsformen können die eine oder mehreren CPUs 406 vier Dual-Core-Cluster umfassen, wobei jeder Cluster über einen dedizierten L2-Cache (z. B. einen 2 MB L2-Cache) verfügt. Die eine oder mehreren CPUs 406 (z. B. CCPLEX) können ausgelegt sein, den gleichzeitigen Clusterbetrieb zu unterstützen, womit eine beliebige Kombination der Cluster der CPU(s) 406 in die Lage versetzt wird, zu einem bestimmten Zeitpunkt aktiv zu sein.
  • Die eine oder mehreren CPUs 406 können Energiemanagementleistungen implementieren, welche ein oder mehrere der folgenden Funktionen umfassen: Einzelne Hardwareblöcke können im Leerlauf automatisch taktgesteuert werden, um dynamische Leistung zu sparen; jeder Kerntakt kann gesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Anweisungen nicht aktiv Anweisungen ausführt, jeder Kern kann unabhängig energiegesteuert sein; jeder Kerncluster kann unabhängig taktgesteuert sein, wenn alle Kerne taktgesteuert oder energiegesteuert sind; und/oder jeder Kerncluster kann unabhängig energiegesteuert sein, wenn alle Kerne energiegesteuert sind. Ferner können die eine oder mehreren CPUs 406 einen erweiterten Algorithmus zum Verwalten von Energiezuständen implementieren, bei dem zulässige Energiezustände und erwartete Wakeup-Zeiten angegeben werden und die Hardware/der Mikrocode den besten Energiezustand für den Kern, den Cluster und CCPLEX bestimmt. Die Prozessorkerne können vereinfachte Eintrittssequenzen in den Energiezustand in Software unterstützen, wobei die Arbeit an den Mikrocode ausgelagert wird.
  • Die eine oder mehreren GPUs 408 können eine integrierte GPU (hier auch als iGPU bezeichnet) umfassen. Die eine oder mehreren GPUs 408 können programmierbar und für parallele Arbeitslasten effizient sein. Die eine oder mehreren GPUs 408 können in einigen Beispielen einen erweiterten Tensor-Befehlssatz verwenden. Die eine oder mehreren GPUs 408 können einen oder mehrere Streaming-Mikroprozessoren umfassen, wobei jeder Streaming-Mikroprozessor einen L1-Cache (z. B. einen L1-Cache mit mindestens 96 KB Speicherkapazität) umfassen kann und zwei oder mehr der Streaming-Mikroprozessoren sich einen L2-Cache (z. B. einen L2-Cache mit 512 KB Speicherkapazität) teilen können. In einigen Ausführungsformen können die eine oder mehreren GPUs 408 mindestens acht Streaming-Mikroprozessoren umfassen. Die eine oder mehreren GPUs 408 können computerbasierte Anwendungsprogrammierschnittstelle(n) (API(s)) verwenden. Darüber hinaus können die eine oder mehreren GPUs 408 eine oder mehrere parallele Rechenplattformen und/oder Programmiermodelle (z. B. CUDA von NVIDIA) verwenden.
  • Die eine oder mehreren GPUs 408 können für höchste Leistung in automobilen und eingebetteten Anwendungsfällen energieoptimiert sein. Beispielsweise können die eine oder mehreren GPUs 408 auf einem Fin-Feldeffekttransistor (FinFET) hergestellt werden. Dies ist jedoch nicht als Einschränkung zu verstehen, und die eine oder mehreren GPUs 408 können auch mit anderen Halbleiterfertigungsverfahren hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Anzahl von Rechenkernen mit gemischter Präzision (mixed-precision), in mehrere Blöcke unterteilt, enthalten. Beispielsweise und ohne darauf beschränkt zu sein können 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke unterteilt sein. In einem solchen Beispiel können jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei Mixed-Precision NVIDIA TENSOR-KERNE für Deep-Learning-Matrixarithmetik, ein L0-Befehlscache, ein Warp-Scheduler, eine Dispatch-Einheit und/oder eine 64-KB-Registerdatei zugewiesen sein. Darüber hinaus können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkomma-Datenpfade enthalten, um eine effiziente Ausführung von Arbeitslasten mit einer Kombination aus Berechnungen und Adressierung von Berechnungen zu ermöglichen. Die Streaming-Mikroprozessoren können unabhängige Thread-Scheduling-Leistungen enthalten, um eine feinkörnigere Synchronisierung und Kooperation zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Datencache und eine gemeinsam genutzte Speichereinheit enthalten, um die Leistung zu verbessern indem die Programmierung vereinfacht wird.
  • Die eine oder mehreren GPUs 408 können einen Speicher mit hoher Bandbreite (HBM) und/oder ein 16-GB-HBM2-Speicher-Subsystem umfassen, um in einigen Beispielen eine Spitzen-Speicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich oder alternativ zum HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (SGRAM) verwendet werden, wie zum Beispiel ein synchroner Grafik-Doppeldatenraten-Direktzugriffsspeicher vom Typ 5 (GDDR5).
  • Die eine oder mehreren GPUs 408 können eine einheitliche Speichertechnologie mit Zugriffszählern umfassen, um eine genauere Zuweisung von Speicherseiten an den Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, und so die Effizienz der von den Prozessoren gemeinsam genutzten Speicherbereiche zu erhöhen. In einigen Beispielen kann die Unterstützung von Adressübersetzungsdiensten (ATS) verwendet werden, damit die eine oder mehreren GPUs 408 direkt auf die Seitentabellen der CPU(s) 406 zugreifen können. In solchen Beispielen kann, wenn die Speicherverwaltungseinheit (MMU) der GPU(s) 408 einen Fehler feststellt, eine Adressübersetzungsanforderung an die CPU(s) 406 übermittelt werden. Als Reaktion darauf können die eine oder mehreren CPUs 406 in ihren Seitentabellen nach dem virtuell-zu-physischen Mapping für die Adresse suchen und die Übersetzung an die GPU(s) 408 zurückübertragen. Als solches kann die Unified-Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 406 als auch der GPU(s) 408 ermöglichen, wodurch die Programmierung der GPU(s) 408 und die Portierung von Anwendungen an die GPU(s) 408 vereinfacht wird.
  • Zusätzlich können die eine oder mehreren GPUs 408 einen Zugriffszähler umfassen, welcher die Häufigkeit des Zugriffs der GPU(s) 408 auf den Speicher anderer Prozessoren nachverfolgen kann. Der Zugriffszähler kann dazu beitragen, dass Speicherseiten in den physischen Speicher desjenigen Prozessors verschoben werden, der am häufigsten auf die Seiten zugreift.
  • Das eine oder die mehreren SoCs 404 können eine beliebige Anzahl von Caches 412, einschließlich der hier beschriebenen, enthalten. Der oder die Caches 412 können beispielsweise einen L3-Cache umfassen, welcher sowohl den CPU(s) 406 als auch den GPU(s) 408 zur Verfügung steht (z. B. der sowohl mit den CPU(s) 406 als auch den GPU(s) 408 verbunden ist). Der oder mehreren Caches 412 können einen Write-Back-Cache umfassen, welcher die Zustände von Zeilen verfolgen kann, beispielsweise durch Verwenden eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI etc.). Der L3-Cache kann je nach Ausführungsform 4 MB oder mehr umfassen, obwohl auch kleinere Cache-Größen verwendet werden können.
  • Das eine oder die mehreren SoCs 404 können eine oder mehrere arithmetische Logikeinheiten (ALU(s)) umfassen, welche bei der Realisierung von Verarbeitungen in Bezug auf eine beliebige Vielfalt von Aufgaben bzw. Operationen des Fahrzeugs 400 - wie beispielsweise Verarbeitung von DNNs - wirksam eingesetzt werden können. Darüber hinaus können das oder die SoCs 404 Gleitkommaeinheit(en) (FPU(s)) - oder andere mathematische Coprozessoren oder numerische Coprozessortypen - zur Durchführung mathematischer Operationen innerhalb des Systems umfassen. Zum Beispiel können das oder die SoCs 404 eine oder mehrere FPUs umfassen, welche als Ausführungseinheiten innerhalb einer oder mehrerer CPUs 406 und/oder GPUs 408 integriert sind.
  • Das eine oder die mehreren SoCs 404 können einen oder mehrere Beschleuniger 414 umfassen (z. B. Hardwarebeschleuniger, Softwarebeschleuniger oder eine Kombination davon). Beispielsweise können das oder die SoCs 404 einen Hardwarebeschleunigungscluster enthalten, welcher optimierte Hardwarebeschleuniger und/oder einen großen On-Chip-Speicher umfassen kann. Der große On-Chip-Speicher (z. B. 4 MB statischer Arbeitsspeicher; SRAM) kann den Hardwarebeschleunigungscluster in die Lage versetzen, neuronale Netze und andere Berechnungen zu beschleunigen. Der Hardwarebeschleunigungscluster kann zur Ergänzung der GPU(s) 408 und zur Entlastung einiger Aufgaben der GPU(s) 408 verwendet werden (z. B., um mehr Zyklen der GPU(s) 408 für die Durchführung anderer Aufgaben freizugeben). Der oder die Beschleuniger 414 können beispielsweise für gezielte Arbeitslasten (z. B. Wahrnehmung, faltende neuronale Netze (CNNs, Convolutional Neural Networks) etc.) verwendet werden, welche stabil genug sind, um beschleunigt werden zu können. Der hier verwendete Begriff CNN kann alle Arten von CNNs umfassen, einschließlich auf Regionen basierender bzw. regionaler CNNs (RCNNs) und schneller RCNNs (z. B. zur Objekterkennung).
  • Der eine oder die mehreren Beschleuniger 414 (z. B. der Hardwarebeschleunigungscluster) können einen oder mehrere Deep-Learning-Beschleuniger (DLA) enthalten. Der oder die DLAs können eine oder mehrere Tensorverarbeitungseinheiten (TPUs) umfassen, welche ausgelegt sein können, zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferenzieren bereitzustellen. Bei den TPUs kann es sich um Beschleuniger handeln, welche für die Ausführung von Bildverarbeitungsfunktionen (z. B. für CNNs, RCNNs etc.) konfiguriert und optimiert sind. Der eine oder die mehreren DLAs können ferner für einen bestimmten Satz von neuronalen Netztypen- und Gleitkommaoperationen sowie für Inferenzieren optimiert sein. Die Ausführung des(der) DLA(s) kann mehr Leistung pro Millimeter als eine Universal-GPU bieten und übertrifft die Leistung einer CPU enorm. Die eine oder mehreren TPUs können verschiedene Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die beispielsweise Merkmale und Gewichtungen bei den Datentypen INT8-, INT16- und FP16 unterstützt, sowie Postprozessorfunktionen.
  • Der bzw. die DLAs können schnell und effizient neuronale Netze, insbesondere CNNs, an verarbeiteten oder unverarbeiteten Daten für eine Vielzahl von Funktionen ausführen, einschließlich zum Beispiel und ohne darauf beschränkt zu sein: ein CNN zur Identifizierung und Erkennung von Objekten unter Verwendung von Daten von Kamerasensoren, ein CNN zur Entfernungsschätzung unter Verwendung von Daten von Kamerasensoren, ein CNN zur Erkennung und Identifizierung von Einsatzfahrzeugen unter Verwendung von Daten von Mikrofonen, ein CNN zur Gesichtserkennung und Identifizierung von Fahrzeughaltern unter Verwendung von Daten von Kamerasensoren und/oder ein CNN für sicherheitsrelevante Ereignisse.
  • Der bzw. die DLAs können jede Funktion der GPU(s) 408 ausführen, und durch die Verwendung eines Inferenzbeschleunigers kann ein Entwickler zum Beispiel für eine beliebige Funktion entweder den(die) DLA(s) oder die GPU(s) 408 ansprechen. Beispielsweise kann sich der Entwickler auf die Verarbeitung von CNNs und Gleitkommaoperationen auf dem(den) DLA(s) konzentrieren und andere Funktionen der(den) GPU(s) 408 und/oder einem oder mehreren anderen Beschleunigern 414 überlassen.
  • Der eine oder die mehreren Beschleuniger 414 (z. B. der Hardwarebeschleunigungscluster) können einen oder mehrere programmierbare Bilderverarbeitungsbeschleuniger (PVA) umfassen, die hier alternativ auch als Computer Vision Accelerator bezeichnet werden können. Der oder die PVAs können zur Beschleunigung von Computer-Vision-Algorithmen für hochentwickelte Fahrerassistenzsysteme (ADAS, Advanced Driver Assistance Systems), autonomes Fahren und/oder Anwendungen der erweiterten Realität (AR, Augmented Reality) und/oder virtuellen Realität (VR, Virtual Reality) entwickelt und konfiguriert sein. Der oder die PVAs können ein Gleichgewicht zwischen Leistung und Flexibilität bieten. So kann jeder PVA beispielsweise und ohne darauf beschränkt zu sein eine beliebige Anzahl von Kernen von Rechnern mit reduziertem Befehlssatz (RISC cores, Reduced Instruction Set Computer cores), Direktzugriffsspeicher (DMA, Direct Memory Access) und/oder eine beliebige Anzahl von Vektorprozessoren umfassen.
  • Die RISC-Kerne können mit Bildsensoren (z. B. den Bildsensoren einer beliebigen der hier beschriebenen Kameras), Bildsignalprozessor(en) und/oder dergleichen interagieren. Jeder der RISC-Kerne kann eine beliebige Speicherkapazität umfassen. Die RISC-Kerne können je nach Ausführungsform eine beliebige Anzahl von Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (Real-Time Operating System, RTOS) ausführen. Die RISC-Kerne können unter Verwendung eines oder mehrerer integrierter Schaltungsvorrichtungen, anwendungsspezifischer integrierter Schaltkreise (Application Specific Integrated Circuits, ASICs) und/oder Speicherbausteine implementiert sein. Beispielsweise können die RISC-Kerne einen Befehls-Cache und/oder einen fest gekoppelten RAM umfassen.
  • Der DMA kann es Komponenten des(der) PVA(s) ermöglichen, unabhängig von der(den) CPU(s) 406 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Features unterstützen, welche zur Optimierung des PVA verwendet werden, einschließlich aber nicht beschränkt auf Unterstützung mehrdimensionaler Adressierung und/oder zirkulärer Adressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, welche Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockstufen, vertikale Blockstufen und/oder Tiefenstufen umfassen können.
  • Bei den Vektorprozessoren kann es sich um programmierbare Prozessoren handeln, welche ausgelegt sein können, die Programmierung von Computer-Vision-Algorithmen effizient und flexibel auszuführen und Signalverarbeitungsleistungen bereitzustellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystem-Partitionen umfassen. Der PVA-Kern kann ein Prozessor-Subsystem, DMA-Engine(s) (z. B. zwei DMA-Engines) und/oder andere Peripheriegeräte umfassen. Das Vektorverarbeitungs-Subsystem kann als primäre Verarbeitungseinheit des PVA fungieren und eine Vektorverarbeitungseinheit (Vector Processing Unit, VPU), einen Befehlscache und/oder einen Vektorspeicher (z. B. Vector Memory, VMEM) umfassen. Ein VPU-Kern kann einen digitalen Signalprozessor umfassen, wie beispielsweise einen Prozessor für digitale Signale mit einer einzigen Anweisung, mehreren Daten (Single Instruction Multiple Data, SIMD) und sehr langen Anweisungsworten (Very Long Instruction Word, VLIW). Die Kombination von SIMD und VLIW kann Durchsatz und Geschwindigkeit erhöhen.
  • Jeder der Vektorprozessoren kann einen Befehls-Cache beinhalten und mit einem dedizierten Speicher gekoppelt sein. Folglich kann in einigen Beispielen jeder der Vektorprozessoren eingerichtet sein, unabhängig von den anderen Vektorprozessoren zu operieren. In anderen Beispielen können die Vektorprozessoren, welche in einem bestimmten PVA enthalten sind, ausgelegt sein, Datenparallelität anzuwenden. In einigen Ausführungsformen kann die Mehrzahl der in einem einzigen PVA enthaltenen Vektorprozessoren beispielsweise denselben Computer-Vision-Algorithmus, jedoch für unterschiedliche Bereiche eines Bildes, ausführen. In anderen Beispielen können die in einem bestimmten PVA enthaltenen Vektorprozessoren gleichzeitig verschiedene Computer-Vision-Algorithmen für dasselbe Bild oder sogar verschiedene Algorithmen für aufeinanderfolgende Bilder oder Teile eines Bildes ausführen. Unter anderem können beliebig viele PVAs im Hardwarebeschleunigungscluster enthalten sein und eine beliebige Anzahl von Vektorprozessoren in jedem der PVAs. Darüber hinaus können der oder die PVAs einen zusätzlichen Fehlerkorrekturcode-Speicher (Error Correcting Code, ECC) umfassen, um die Sicherheit des Gesamtsystems zu erhöhen.
  • Der eine oder die mehreren Beschleuniger 414 (z. B. der Hardwarebeschleunigungscluster) können ein On-Chip-Computer-Vision-Netzwerk und SRAM umfassen, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den(die) Beschleuniger 414 bereitzustellen. In einigen Beispielen kann der On-Chip-Speicher mindestens 4 MB SRAM umfassen, beispielsweise bestehend aus acht feldkonfigurierbaren Speicherblöcken, welche sowohl für den PVA als auch den DLA zugänglich sind. Jedes Speicherblockpaar kann eine APB-Schnittstelle (Advanced Peripheral Bus interface), Konfigurationsschaltungen, eine Steuerung und einen Multiplexer umfassen. Es kann jeder beliebige Speichertyp verwendet werden. Der PVA und der DLA können auf den Speicher über ein Backbone zugreifen, welcher dem PVA und dem DLA einen Hochgeschwindigkeitszugriff auf den Speicher ermöglicht. Der Backbone kann ein On-Chip-Computer-Vision-Netzwerk umfassen, das den PVA und den DLA mit dem Speicher (z. B. unter Verwendung des APB) verbindet.
  • Das On-Chip-Computer-Vision-Netzwerk kann eine Schnittstelle umfassen, welche vor der Übertragung beliebiger Steuersignale/Adressen/Daten bestimmt, dass sowohl der PVA als auch der DLA gültige Signale und Bereitschaftssignale bereitstellen. Eine derartige Schnittstelle kann separate Phasen und separate Kanäle zur Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-Kommunikation für den kontinuierlichen Datentransfer bereitstellen. Diese Art von Schnittstelle kann den Normen ISO 26262 oder IEC 61508 entsprechen, obwohl auch andere Normen und Protokolle verwendet werden können.
  • In einigen Beispielen können das(die) SoC(s) 404 einen Echtzeit-Raytracing-Hardwarebeschleuniger umfassen, wie beispielweise in der U.S. Patentanmeldung Nr. 16/101,232 beschrieben, eingereicht am 10. August 2018. Der Echtzeit-Raytracing-Hardwarebeschleuniger kann verwendet werden, um schnell und effizient die Positionen und Ausmaße von Objekten (z. B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeit-Visualisierungssimulationen zur RADAR-Signalinterpretation, zur Schallausbreitungssynthese und/oder -analyse, zur Simulation von SONAR-Systemen, zur Simulation einer allgemeinen Wellenausbreitung, zum Vergleich mit LiDAR-Daten zum Zwecke der Lokalisierung und/oder andere Funktionen und/oder für andere Anwendungen zu erzeugen. In einigen Ausführungsformen können eine oder mehrere Baum-Such-Einheiten (Tree Traversal Units, TTUs) für die Ausführung einer oder mehrerer Raytracing-Operationen verwendet werden.
  • Der eine oder die mehreren Beschleuniger 414 (z. B. der Hardwarebeschleunigungscluster) weisen eine breites Feld von Verwendungen für autonomes Fahren auf. Der PVA kann ein programmierbarer Vision-Beschleuniger sein, welcher für wichtige Verarbeitungsstufen in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA sind eine gute Anpassung für algorithmische Domänen, welche eine vorhersagbare Verarbeitung bei geringer Leistungsaufnahme und geringer Latenzzeit benötigen. Anders ausgedrückt kann der PVA bei semi-dichten oder dichten regulären Berechnungen, selbst bei kleinen Datensätzen, die vorhersagbare Laufzeiten mit geringer Latenz und geringer Leistung benötigen, gut arbeiten. Somit können die PVAs im Kontext von Plattformen für autonome Fahrzeuge ausgestaltet sein, klassische Computer-Vision-Algorithmen auszuführen, da sie bei Objekterfassung effizient sind und mit ganzzahliger Mathematik arbeiten.
  • Zum Beispiel wird gemäß einer Ausführungsform der Technologie der PVA verwendet, um Computer-Stereo-Vision durchzuführen. In einigen Beispielen kann ein Semi-Global Matching-Algorithmus verwendet werden, obwohl dies nicht als Einschränkung gedacht ist. Viele Anwendungen für autonomes Fahren der Stufe 3 bis 5 erfordern eine Bewegungsschätzung/Stereo-Matching on-the-fly (z. B. Struktur von Bewegung, Fußgängererfassung, Fahrspurerkennung etc.). Der PVA kann eine Computer-Stereo-Vision-Funktion an Eingaben von zwei monokularen Kameras ausführen.
  • In einigen Beispielen kann der PVA zur Durchführung von dichtem optischem Fluss verwendet werden. Beispielsweise kann der PVA verwendet werden, um RADAR-Rohdaten zu verarbeiten (z. B. unter Verwendung einer 4D-Fast-Fourier-Transformation), um ein verarbeitetes RADAR-Signal bereitzustellen, bevor der nächste RADAR-Impuls gesendet wird. In anderen Beispielen wird der PVA für die Time-of-Flight-Tiefenverarbeitung verwendet, indem er zum Beispiel TOF-Rohdaten verarbeitet, um verarbeitete TOF-Daten bereitzustellen.
  • Der DLA kann zum Betreiben jeder Art von Netzwerk verwendet werden, um Steuerung und Fahrsicherheit zu erhöhen, einschließlich beispielsweise eines neuronalen Netzes, das einen Vertrauens- bzw. Confidence-Wert für jede Objekterfassung ausgibt. Ein solcher Confidence-Wert kann als Wahrscheinlichkeit oder als Bereitstellung einer relativen „Gewichtung“ jeder Erfassung im Vergleich zu anderen Erfassungen interpretiert werden. Dieser Confidence-Wert kann von dem System verwendet werden, um weitere Entscheidungen darüber zu treffen, welche Erfassungen als echt positive Erfassungen und nicht als falsch positive Erfassungen zu betrachten sind. Das System kann beispielsweise einen Confidence-Schwellenwert festlegen und nur die den Schwellenwert übersteigenden Erfassungen als echt positive Erfassungen berücksichtigen. In einem automatischen Notbremssystem (Automatic Emergency Braking system, AEB system) würden falsch positive Erfassungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, die offensichtlich unerwünscht ist. Daher sollten nur die vertrauensvollsten Erfassungen als Auslöser für AEB betrachtet werden. Der DLA kann ein neuronales Netz zur Regression des Confidence-Werts betreiben. Das neuronale Netz kann als seine Eingabe zumindest eine Teilmenge von Parametern verwenden, wie beispielsweise Bounding Box-Abmessungen, Schätzung der Bodenebene (z. B. von einem anderen Subsystem erhalten), Ausgabe eines Sensors der Trägheitsmesseinheit (IMU, Inertial Measurement Unit) 466, die mit der Ausrichtung des Fahrzeugs 400 korreliert, Entfernung, 3D-Positionsschätzungen des Objekts, die von dem neuronalen Netz und/oder von anderen Sensoren (z. B. LiDAR-Sensor(en) 464 oder RADAR-Sensor(en) 460) erhalten werden.
  • Das eine oder die mehreren SoCs 404 können einen oder mehrere Datenspeicher 416 (z. B. Speicher) umfassen. Der eine oder die mehreren Datenspeicher 816 können ein On-Chip-Speicher des(der) SoC(s) 404 sein, welcher neuronale Netze speichern kann, die auf der GPU und/oder dem DLA ausgeführt werden sollen. In einigen Beispielen können der bzw. die Datenspeicher 416 eine Kapazität aufweisen, die groß genug ist, um mehrere Instanzen neuronaler Netze für Redundanz- und Sicherheitszwecke zu speichern. Der oder die Datenspeicher 416 können L2- oder L3-Cache(s) 412 umfassen. Verweis auf den(die) Datenspeicher 416 kann einen Verweis auf den Speicher umfassen, welcher wie hier beschrieben dem PVA, DLA und/oder einem oder mehreren anderen Beschleunigern 414 zugeordnet ist.
  • Das eine oder die mehreren SoCs 404 können einen oder mehrere Prozessoren 410 (z. B. eingebettete Prozessoren) umfassen. Der oder die Prozessoren 410 können einen Boot- und Power-Management-Prozessor umfassen, welcher ein dedizierter Prozessor und ein Subsystem sein kann, um Boot- und Power-Management-Funktionen und die damit verbundene Sicherheitserzwingung zu handhaben. Der Boot- und Power-Management-Prozessor kann ein Teil der Boot-Sequenz des(der) SoC(s) 404 sein und zur Laufzeit Power-Management-Dienste bereitstellen. Der Boot- und Power-Management-Prozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen mit niedrigem Leistungsverbrauch, Verwaltung von Thermik- und Temperatursensoren von SoC(s) 404 und/oder Verwaltung der Leistungszustände von SoC(s) 404 bereitstellen. Jeder Temperatursensor kann als Ringoszillator implementiert sein, dessen Ausgangsfrequenz sich proportional zur Temperatur verhält, und das oder die SoCs 404 können die Ringoszillatoren verwenden, um Temperaturen der CPU(s) 406, GPU(s) 408 und/oder Beschleuniger 414 zu erfassen. Wenn festgestellt wird, dass die Temperaturen einen Schwellenwert überschreiten, kann der Boot- und Power-Management-Prozessor in eine Temperaturfehlerroutine eintreten und das(die) SoC(s) 404 in einen niedrigeren Leistungszustand und/oder das Fahrzeug 400 in einen als Chauffeur auslösenden sicheren Stoppmodus versetzen (z. B. das Fahrzeug 400 zu einem sicheren Halt bringen).
  • Der eine oder die mehreren Prozessoren 410 können ferner eine Reihe eingebetteter Prozessoren umfassen, welche als Audioverarbeitungs-Engine dienen können. Die Audioverarbeitungs-Engine kann ein Audio-Subsystem sein, das eine vollständige Hardwareunterstützung für Mehrkanal-Audio über mehrere Schnittstellen und eine breite und flexible Palette von Audio-E/A-Schnittstellen ermöglicht. In einigen Beispielen ist die Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • Der eine oder die mehreren Prozessoren 410 können ferner eine stets eingeschaltete Prozessor-Engine umfassen, welche die notwendigen Hardware-Features zur Unterstützung der Verwaltung von Sensoren mit niedriger Leistung und Aufwachanwendungen bereitstellen kann. Die stets eingeschaltete Prozessor-Engine kann einen Prozessorkern, einen fest gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Timer und Interrupt-Controller), verschiedene E/A-Controller-Peripheriegeräte und Routing-Logik umfassen.
  • Der eine oder die mehreren Prozessoren 410 können ferner eine Sicherheitscluster-Engine enthalten, welche ein spezielles Prozessor-Subsystem für das Sicherheitsmanagement von Automobilanwendungen umfasst. Die Sicherheitscluster-Engine kann zwei oder mehr Prozessorkerne, einen fest gekoppelten Arbeitsspeicher, unterstützende Peripheriegeräte (z. B. Timer, einen Interrupt-Controller etc.) und/oder Routing-Logik umfassen. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Lockstep-Modus arbeiten und als ein einzelner Kern mit einer Vergleichslogik funktionieren, um jegliche Unterschiede zwischen ihren Operationen zu erkennen.
  • Der eine oder die mehreren Prozessoren 410 können ferner eine Echtzeit-Kamera-Engine enthalten, welche ein dediziertes Prozessor-Subsystem zur Handhabung des Echtzeit-Kamera-Managements umfassen kann.
  • Der eine oder die mehreren Prozessoren 410 können ferner einen Signalprozessor mit hohem Dynamikbereich umfassen, welcher einen Bildsignalprozessor enthalten kann, der eine Hardware-Engine ist, die Teil der Kameraverarbeitungspipeline ist.
  • Der eine oder die mehreren Prozessoren 410 können einen Videobild-Compositor enthalten, welcher ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor implementiert), der Videonachverarbeitungsfunktionen ausführt, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Player-Fenster zu erzeugen. Der Videobild-Compositor kann eine Linsenverzerrungskorrektur an Weitwinkelkamera(s) 470, Rundumsichtkamera(s) 474 und/oder an den Kamerasensoren für die Überwachung im Fahrzeuginnenraum bzw. der Fahrgastkabine vornehmen. Ein kabineninterner Überwachungskamerasensor wird vorzugsweise von einem neuronalen Netz überwacht, welches auf einer anderen Instanz des Advanced SoC läuft und eingerichtet ist, Ereignisse im Innenraum zu erkennen und entsprechend zu reagieren. Ein System im Fahrzeuginnenraum kann Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, den Zielort des Fahrzeugs zu ändern, das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachaktiviertes Surfen im Internet zu ermöglichen. Bestimmte Funktionen stehen dem Fahrer nur zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind andernfalls deaktiviert.
  • Der Videobild-Compositor kann eine verbesserte zeitliche Rauschunterdrückung sowohl für räumliche als auch zeitliche Rauschunterdrückung umfassen. Findet beispielsweise Bewegung in einem Video statt, gewichtet die Rauschunterdrückung räumliche Informationen dementsprechend, wobei die Gewichtung der von benachbarten Bildern stammenden Informationen verringert wird. Wenn ein Bild oder ein Teil eines Bildes keine Bewegung umfasst, kann die vom Videobild-Compositor durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um Rauschen im aktuellen Bild zu vermindern.
  • Der Videobild-Compositor kann auch eingerichtet sein, eine Stereorektifizierung an eingegebenen Stereolinsenbildern durchzuführen. Der Videobild-Compositor kann ferner für eine Zusammensetzung der Benutzeroberfläche verwendet werden, wenn der Desktop des Betriebssystems in Gebrauch ist, und die eine oder mehreren GPUs 408 nicht erforderlich sind, um kontinuierlich neue Flächen darzustellen. Selbst wenn die eine oder mehreren GPUs 408 eingeschaltet sind und aktiv 3D-Rendering durchführen, kann der Videobild-Compositor verwendet werden, um die GPU(s) 408 zu entlasten und Leistung und Reaktionsfähigkeit zu verbessern.
  • Das eine oder die mehreren SoCs 404 können ferner eine serielle Kameraschnittstelle für mobile industrielle Bildverarbeitung (Mobile Industry Procerssor Interface, MIPI) zum Empfangen von Videos und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingabeblock enthalten, der für Kamera- und verbundene Pixeleingabefunktionen verwendet werden kann. Der oder die SoCs 504 können ferner eine oder mehrere E/A-Steuerungen enthalten, welche von Software gesteuert und für den Empfang von nicht an eine spezifische Rolle gebundenen E/A-Signalen verwendet werden können.
  • Das eine oder die mehreren SoCs 404 können ferner eine breite Palette von Peripherieschnittstellen umfassen, um die Kommunikation mit Peripheriegeräten, Audiocodecs, Energiemanagementsystemen und/oder anderen Vorrichtungen zu ermöglichen. Das oder die SoCs 404 können zum Verarbeiten von Daten von Kameras (z. B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z. B. LiDAR-Sensor(en) 464, RADAR-Sensor(en) 460etc., die über Ethernet verbunden sein können), Daten vom Bus 402 (z. B. Geschwindigkeit des Fahrzeugs 400, Lenkradposition etc.), Daten von GNSS-Sensor(en) 458 (z. B. verbunden über Ethernet oder CAN-Bus) verwendet werden. Das oder die SoCs 404 können ferner dedizierte Hochleistungs-Massenspeicher-Steuerungen umfassen, welche ihre eigenen DMA-Engines enthalten können und die verwendet werden können, um die CPU(s) 406 von Routineaufgaben der Datenverwaltung zu entlasten.
  • Das eine oder die mehreren SoCs 404 können eine End-to-End-Plattform mit einer flexiblen Architektur sein, welche sich über die Automatisierungsstufen 3 bis 5 erstreckt und somit eine umfassende funktionale Sicherheitsarchitektur bereitstellt, die Computer-Vision- und ADAS-Techniken für Diversität und Redundanz nutzt und eine Plattform für einen flexiblen, zuverlässigen Treiber-Softwarestapel zusammen mit Deep-Learning-Tools bereitstellt. Das oder die SoCs 404 können schneller, zuverlässiger und sogar energie- und platzsparender sein als herkömmliche Systeme. Zum Beispiel können der oder die Beschleuniger 414, wenn sie mit der(den) CPU(s) 406, der(den) GPU(s) 408 und dem(den) Datenspeicher(n) 416 kombiniert sind, eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3 bis 5 bereitstellen.
  • Die Technologie stellt somit Fähigkeiten und Funktionen bereit, welche mit herkömmlichen Systemen nicht erreicht werden können. Beispielsweise können Computer-Vision-Algorithmen auf CPUs ausgeführt werden, die mit Hilfe von hochrangigen Programmiersprachen, wie der Programmiersprache C, konfiguriert sein können, um eine Vielzahl von Verarbeitungsalgorithmen mit einer Vielzahl von visuellen Daten auszuführen. Allerdings sind CPUs oft nicht in der Lage, die Leistungsanforderungen vieler Bildverarbeitungsanwendungen zu erfüllen, zum Beispiel in puncto Ausführungszeit und Energieverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, wobei diese Fähigkeit eine Voraussetzung für fahrzeuginterne ADAS-Anwendungen und eine Voraussetzung für zweckmäßige autonome Fahrzeuge der Stufe 3 bis 5 ist.
  • Im Gegensatz zu herkömmlichen Systemen ermöglicht die hier beschriebene Technologie durch Bereitstellung eines CPU-Komplexes, eines GPU-Komplexes und eines Hardwarebeschleunigungsclusters die gleichzeitige und/oder sequentielle Ausführung mehrerer neuronaler Netze und die Kombination der Ergebnisse, um autonome Fahrfunktionen der Stufe 3 bis 5 zu ermöglichen. Beispielsweise kann ein CNN, das auf dem DLA oder der dGPU (z. B. der(den) GPU(s) 420) ausgeführt wird, eine Text- und Worterkennung umfassen, die es dem Supercomputer ermöglicht, Verkehrsschilder zu lesen und zu verstehen, einschließlich Zeichen, für die das neuronale Netz nicht speziell trainiert wurde. Der DLA kann ferner ein neuronales Netz umfassen, welches in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis zu liefern und dieses semantische Verständnis an die auf dem CPU-Komplex laufenden Wegplanungsmodule weiterzuleiten.
  • Als weiteres Beispiel können mehrere neuronale Netze gleichzeitig ausgeführt werden, wie es für das Fahren der Stufe 3, 4 oder 5 erforderlich ist. So kann beispielsweise ein Warnschild mit der Aufschrift „Vorsicht: Blinklichter weisen auf Eisglätte hin“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzen unabhängig voneinander oder gemeinsam interpretiert werden. Das Schild selbst kann von einem ersten eingesetzten neuronalen Netz (z. B. einem trainierten neuronalen Netz) als Verkehrsschild identifiziert werden, der Text „Blinklichter weisen auf Eisglätte hin“ kann von einem zweiten eingesetzten neuronalen Netz interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass beim Erkennen blinkender Lichter Glatteis vorliegt. Das Blinklicht kann identifiziert werden, indem ein drittes neuronales Netz über mehrere Bilder betrieben wird, welches die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von Blinklichtern informiert. Alle drei neuronalen Netze können gleichzeitig ausgeführt werden, zum Beispiel innerhalb des DLA und/oder auf der(den) GPU(s) 408.
  • In einigen Beispielen kann ein CNN zur Gesichtserkennung und Identifizierung des Fahrzeughalters Daten von Kamerasensoren nutzen, um die Anwesenheit eines autorisierten Fahrers und/oder Halters des Fahrzeugs 400 zu identifizieren. Die stets eingeschaltete Sensorverarbeitungs-Engine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Fahrzeughalter der Fahrertür nähert, und die Beleuchtung einschalten und, im Sicherheitsmodus, das Fahrzeug zu deaktivieren, wenn der Fahrzeughalter das Fahrzeug verlässt. Auf diese Weise sorgen das oder die SoCs 404 für Sicherheit gegen Diebstahl und/oder Carjacking.
  • In einem anderen Beispiel kann ein CNN zur Erkennung und Identifizierung von Einsatzfahrzeugen Daten von Mikrofonen 496 nutzen, um Sirenen von Einsatzfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, welche allgemeine Klassifikatoren zur Erkennung von Sirenen und zur manuellen Extraktion von Merkmalen verwenden, nutzen das oder die SoCs 404 das CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. In einer bevorzugten Ausführungsform wird das auf dem DLA laufende CNN so trainiert, dass es die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs erkennt (z. B. durch Verwendung des Doppler-Effekts). Das CNN kann auch trainiert werden, Einsatzfahrzeuge zu identifizieren, die spezifisch für das lokale Gebiet sind, in dem das Fahrzeug gemäß Identifizierung durch den(die) GNSS-Sensor(en) 458 betrieben wird. So wird das CNN beispielsweise bei einem Einsatz in Europa versuchen, europäische Sirenen zu identifizieren, und bei einem Einsatz in den Vereinigten Staaten wird das CNN versuchen, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Einsatzfahrzeug erkannt wird, kann ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für Einsatzfahrzeuge auszuführen, das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug mit Hilfe von Ultraschallsensoren 462 im Leerlauf zu halten, bis das eine oder die mehreren Einsatzfahrzeuge vorbeigefahren sind.
  • Das Fahrzeug kann eine oder mehrere CPUs 418 (z. B. diskrete CPUs bzw. dCPUs) umfassen, welche über eine Hochgeschwindigkeitsverbindung (z. B. PCIe) mit dem(den) SoC(s) 404 gekoppelt sein können. Die eine oder mehreren CPUs 418 können beispielsweise einen X86-Prozessor enthalten. Die eine oder mehreren CPUs 418 können beispielsweise verwendet werden, um eine beliebige Funktion aus einer Vielzahl von Funktionen auszuführen, beispielsweise einschließlich Arbitrierung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem(den) SoC(s) 404 und/oder Überwachung von Status und gutem Zustand der Steuerung(en) 436 und/oder des Infotainment-SoC 430.
  • Das Fahrzeug 400 kann eine oder mehrere GPUs 420 (z. B. diskrete GPUs oder dGPUs) umfassen, welche mit dem(den) SoC(s) 404 über eine Hochgeschwindigkeitsverbindung (z. B. NVLINK von NVIDIA) gekoppelt sein können. Die eine oder mehreren GPUs 420 können zusätzliche Funktionen der künstlichen Intelligenz bereitstellen, zum Beispiel durch Ausführen redundanter und/oder verschiedener neuronaler Netze, und können basierend auf Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 400 zum Trainieren und/oder Aktualisieren neuronaler Netze verwendet werden.
  • Das Fahrzeug 400 kann ferner die Netzwerkschnittstelle 424 umfassen, welche eine oder mehrere drahtlose Antennen 426 umfassen kann (z. B. eine oder mehrere drahtlose Antennen für verschiedene Kommunikationsprotokolle, wie eine Mobilfunkantenne, eine Bluetooth-Antenne etc.). Die Netzwerkschnittstelle 424 kann verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z. B. mit dem(den) Server(n) 478 und/oder anderen Netzwerkgeräten), mit anderen Fahrzeugen und/oder mit Rechnern (z. B. Client-Geräten der Fahrgäste) zu ermöglichen. Um mit anderen Fahrzeugen zu kommunizieren, kann eine direkte Verbindung zwischen den beiden Fahrzeugen und/oder eine indirekte Verbindung (z. B. über Netzwerke und das Internet) hergestellt werden. Direkte Verbindungen können über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung bereitgestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 400 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 400 liefern (z. B. Fahrzeuge vor, neben und/oder hinter dem Fahrzeug 400). Diese Funktionalität kann Teil einer kooperativen adaptiven Abstands- und Geschwindigkeitsregelungsfunktion des Fahrzeugs 400 sein.
  • Die Netzwerkschnittstelle 424 kann ein SoC enthalten, welches Modulations- und Demodulationsfunktionen bereitstellt und der(den) Steuerung(en) 436 ermöglicht, über drahtlose Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 424 kann ein Funkfrequenz-Frontend-System für die Aufwärtskonvertierung vom Basisband auf Funkfrequenz und die Abwärtskonvertierung von Funkfrequenz auf Basisband umfassen. Die Frequenzumwandlungen können mit bekannten Verfahren und/oder mit Superheterodyn-Verfahren durchgeführt werden. In einigen Beispielen kann die Funkfrequenz-Frontend-Funktionalität durch einen separaten Chip bereitgestellt werden. Die Netzwerkschnittstelle kann drahtlose Funktionen für die Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle umfassen.
    Das Fahrzeug 400 kann ferner einen oder mehrere Datenspeicher 428 umfassen, welche Off-Chip-Speicher (z. B. außerhalb des(der) SoC(s) 404) umfassen können. Der oder die Datenspeicher 428 können ein oder mehrere Speicherelemente umfassen, einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Geräte, die mindestens ein Datenbit speichern können.
  • Das Fahrzeug 400 kann ferner GNSS-Sensor(en) 458 (z. B. GPS- und/oder unterstützte GPS-Sensoren) umfassen, um bei Mapping, Wahrnehmung, Erzeugung von Belegungsgittern und/oder Wegplanungsfunktionen zu assistieren. Dabei kann eine beliebige Anzahl von GNSS-Sensoren 458 verwendet werden, beispielsweise und ohne darauf beschränkt zu sein ein GPS mit einem USB-Anschluss und einer Datenbrücke zwischen Ethernet und serieller Schnittstelle (RS-232).
    Das Fahrzeug 400 kann ferner RADAR-Sensor(en) 460 umfassen. Der oder die RADAR-Sensoren 460 können selbst bei Dunkelheit und/oder extremen Wetterbedingungen vom Fahrzeug 400 für weitreichende Fahrzeugerkennung verwendet werden. Der oder die RADAR-Sensoren 460 können den CAN-Bus und/oder den Bus 402 zur Steuerung und zum Zugriff auf Objektnachverfolgungsdaten verwenden (z. B. um Daten zu übertragen, die von dem oder den RADAR-Sensoren 460 erzeugt wurden), in einigen Beispielen mit Zugriff auf Ethernet, um auf Rohdaten zuzugreifen. Dabei kann eine Vielzahl von RADAR-Sensortypen verwendet werden. Beispielsweise und ohne darauf beschränkt zu sein können der oder die RADAR-Sensoren 460 für den vorderen, hinteren und seitlichen RADAR-Einsatz geeignet sein. In einigen Beispielen werden ein oder mehrere Pulse-Doppler-RADAR-Sensoren verwendet.
  • Der eine oder die mehreren RADAR-Sensoren 460 können verschiedene Konfigurationen umfassen, wie beispielsweise große Reichweite mit engem Sichtfeld, kurze Reichweite mit weitem Sichtfeld, seitliche Abdeckung mit kurzer Reichweite usw. In einigen Beispielen kann RADAR mit großer Reichweite für eine adaptive Geschwindigkeitsregelungsfunktion verwendet werden. Die RADAR-Systeme mit großer Reichweite können ein weites Sichtfeld bereitstellen, welches durch zwei oder mehr unabhängige Scans erreicht wird, zum Beispiel innerhalb einer Reichweite von 250 m. Der oder die RADAR-Sensoren 560 können helfen, zwischen statischen und sich bewegenden Objekten zu unterscheiden, und können von ADAS-Systemen für Notbremsunterstützung und Warnungen vor Kollisionen mit vorausfahrenden Fahrzeugen genutzt werden. RADAR-Sensoren mit großer Reichweite können monostatische multimodale RADAR-Systeme mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle umfassen. In einem Beispiel mit sechs Antennen können die mittleren vier Antennen ein fokussiertes Strahlenmuster erzeugen, welches dazu dient, die Umgebung des Fahrzeugs 400 bei höheren Geschwindigkeiten mit minimalen Störungen durch Verkehr auf den benachbarten Fahrspuren zu erfassen. Die beiden anderen Antennen können das Sichtfeld erweitern, so dass Fahrzeuge, welche sich in die Fahrspur des Fahrzeugs 400 einordnen oder diese verlassen, schnell erkannt werden können.
  • RADAR-Systeme mit mittlerer Reichweite können beispielsweise eine Reichweite von bis zu 460 m (vorn) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorn) oder 450 Grad (hinten) aufweisen. Zu den RADAR-Systemen mit geringer Reichweite können, ohne auf diese beschränkt zu sein, RADAR-Sensoren gehören, welche an beiden Enden der hinteren Stoßstange installiert werden können. Bei Installation eines solchen RADAR-Sensorsystems an beiden Enden der hinteren Stoßstange kann es zwei Strahlen erzeugen, die ständig den toten Winkel im hinteren Bereich und neben dem Fahrzeug überwachen.
  • RADAR-Systeme mit kurzer Reichweite können in einem ADAS-System zur Erfassung des toten Winkels und/oder als Spurwechselassistent eingesetzt werden.
  • Das Fahrzeug 400 kann ferner einen oder mehrere Ultraschallsensoren 462 umfassen. Der oder die Ultraschallsensoren 462, welche vorn, hinten und/oder an den Seiten des Fahrzeugs 400 installiert sein können, können als Einparkhilfe und/oder zum Erzeugen und Aktualisieren eines Belegungsgitters verwendet werden. Es kann eine Vielzahl von Ultraschallsensoren 462 verwendet werden, und unterschiedliche Ultraschallsensoren 462 können für unterschiedliche Erfassungsbereiche (z. B. 2,5 m, 4 m) eingesetzt werden. Der oder die Ultraschallsensoren 462 können bei den funktionalen Sicherheitsstufen von ASIL B operieren.
  • Das Fahrzeug 400 kann einen oder mehrere LiDAR-Sensoren 464 umfassen. Der oder die LiDAR-Sensoren 464 können zur Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder für andere Funktionen verwendet werden. Der oder die LiDAR-Sensoren 464 können der funktionalen Sicherheitsstufe ASIL B entsprechen. In einigen Beispielen kann das Fahrzeug 400 mehrere LiDAR-Sensoren 464 umfassen (z. B. zwei, vier, sechs etc.), die Ethernet verwenden können (z. B. um Daten an einen Gigabit-Ethernet-Switch zu liefern).
  • In einigen Beispielen können der oder die LiDAR-Sensoren 464 in der Lage sein, eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld bereitzustellen. Handelsübliche LiDAR-Sensoren 464 können eine angezeigte Reichweite von etwa 100 m mit einer Genauigkeit von 2 cm bis 3 cm haben und beispielsweise Unterstützung für eine 100 Mbps-Ethernet-Verbindung aufweisen. In einigen Beispielen können ein oder mehrere baulich nicht vorstehende LiDAR-Sensoren 464 verwendet werden. In solchen Beispielen können der oder die LiDAR-Sensoren 464 als kleine Geräte implementiert werden, welche in den vorderen Teil, den hinteren Teil, die Seiten und/oder Ecken des Fahrzeugs 400 eingebettet sein können. Der oder die LiDAR-Sensoren 464 können in solchen Beispielen ein horizontales Sichtfeld von bis zu 120 Grad und ein vertikales Sichtfeld von 35 Grad mit einer Reichweite von 200 m selbst für Objekte mit geringer Reflexion bereitstellen. Der oder die frontmontierten LiDAR-Sensoren 464 können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad ausgelegt sein.
  • In einigen Beispielen können auch LiDAR-Technologien wie 3D-Flash-LiDAR eingesetzt werden. Die 3D-Flash-LiDAR-Technologie verwendet einen Laserblitz als Übertragungsquelle, um die Umgebung des Fahrzeugs bis zu einer Entfernung von etwa 200 m zu auszuleuchten. Eine Flash-LiDAR-Einheit umfasst einen Empfänger, welcher die Laufzeit des Laserpulses und das reflektierte Licht auf jedem Pixel erfasst, was wiederum der Entfernung zwischen dem Fahrzeug und den Objekten entspricht. Mit Flash-LiDAR lassen sich mit jedem Laserblitz hochpräzise und verzerrungsfreie Bilder der Umgebung erzeugen. In einigen Beispielen können vier Flash-LiDAR-Sensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 400. Zu den verfügbaren 3D-Flash-LiDAR-Systemen gehört eine 3D-Festkörper-LiDAR-Kamera mit feststehender Anordnung, die außer einem Lüfter keine beweglichen Teile aufweist (z. B. ein nicht scannendes LiDAR-Gerät). Das Flash-LiDAR-Gerät kann einen Laser der Klasse I (augensicherer Bereich) mit Pulsen von fünf Nanosekunden pro Bild verwenden und das reflektierte Laserlicht in Form von 3D-Bereich-Punktwolken und co-registrierten Intensitätsdaten erfassen. Aufgrund der Verwendung von Flash-LiDAR und der Tatsache, dass Flash-LiDAR ein Festkörpergerät ohne bewegliche Teile ist, können der oder die LiDAR-Sensoren 464 weniger anfällig für Bewegungsunschärfe, Vibrationen und/oder Erschütterung sein.
  • Das Fahrzeug kann ferner einen oder mehrere IMU-Sensoren 466 umfassen. Der oder die IMU-Sensoren 466 können in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 400 angeordnet sein. Der oder die IMU-Sensoren 466 können beispielsweise und ohne darauf beschränkt zu sein einen oder mehrere Beschleunigungsmesser, einen oder mehrere Magnetometer, ein oder mehrere Gyroskope, einen oder mehrere Magnetkompasse und/oder andere Sensortypen umfassen. In einigen Beispielen, wie beispielsweise in sechsachsigen Anwendungen, können der oder die IMU-Sensoren 466 Beschleunigungsmesser und Gyroskope umfassen, während in neunachsigen Anwendungen der oder die IMU-Sensoren 466 Beschleunigungsmesser, Gyroskope und Magnetometer umfassen können.
  • In einigen Ausführungsformen können der oder die IMU-Sensoren 466 als miniaturisiertes, leistungsstarkes GPS-gestütztes Trägheitsnavigationssystem (GPS/INS) implementiert sein, welches Trägheitssensoren mikroelektromechanischer Systeme (MEMS), einen hochempfindlichen GPS-Empfänger und erweiterte Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Stellung bereitzustellen. Als solche können in einigen Beispielen der oder die IMU-Sensoren 466 das Fahrzeug 400 in die Lage versetzen, die Fahrtrichtung abzuschätzen, ohne dass Eingaben von einem Magnetsensor erforderlich sind, indem die Geschwindigkeitsänderungen vom GPS zu dem(den) IMU-Sensor(en) 466 direkt beobachtet und korreliert werden. In einigen Beispielen können der oder die IMU-Sensoren 466 und der oder die GNSS-Sensoren 458 in einer einzigen integrierten Einheit kombiniert sein.
  • Das Fahrzeug kann ein oder mehrere Mikrofone 496 umfassen, welche im und/oder um das Fahrzeug 400 herum angeordnet sind. Das oder die Mikrofone 496 können unter anderem zur Erfassung und Identifizierung von Einsatzfahrzeugen verwendet werden.
  • Das Fahrzeug kann ferner eine beliebige Anzahl von Kameratypen umfassen, einschließlich einer oder mehrerer Stereokameras 468, Weitwinkelkameras 470, Infrarotkameras 472, Rundumsichtkameras 474, Weit- und/oder Mittelbereichskameras 498 und/oder anderer Kameratypen. Die Kameras können verwendet werden, um Bilddaten rund um ein gesamtes Umfeld des Fahrzeugs 400 zu erfassen. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen für das Fahrzeug 400 ab, und es kann eine beliebige Kombination von Kameratypen verwendet werden, um die erforderliche Abdeckung rund um das Fahrzeug 400 bereitzustellen. Darüber hinaus kann die Anzahl der Kameras je nach Ausführungsform variieren. So kann das Fahrzeug beispielsweise sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras und/oder eine andere Anzahl von Kameras umfassen. Die Kameras können zum Beispiel und ohne darauf beschränkt zu sein Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede der Kameras wird hier mit Bezug auf 4A und 4B ausführlicher beschrieben.
  • Das Fahrzeug 400 kann ferner einen oder mehrere Vibrationssensoren 442 umfassen. Der oder die Vibrationssensoren 442 können Vibrationen von Komponenten des Fahrzeugs, wie zum Beispiel der Achse(n), messen. Beispielsweise können Änderungen der Vibrationen eine Änderung der Straßenoberfläche anzeigen. In einem anderen Beispiel können bei Verwendung von zwei oder mehr Vibrationssensoren 442 die Unterschiede zwischen den Vibrationen herangezogen werden, um Haftung oder Schlupf der Straßenoberfläche zu bestimmen (z. B. wenn der Vibrationsunterschied zwischen einer angetriebenen Achse und einer frei rotierenden Achse besteht).
  • Das Fahrzeug 400 kann ein ADAS-System 438 umfassen. Das ADAS-System 438 kann in einigen Beispielen einen SoC enthalten. Das ADAS-System 438 kann autonome/adaptive/automatische Geschwindigkeitsregelung (ACC), zusammenwirkende adaptive Geschwindigkeitsregelung (CACC), Auffahrwarnungen (FCW), automatische Notbremsung (AEB), Warnungen bei Verlassen der Spur (LDW), Spurhalteassistent (LKA), Tote-Winkel-Warnungen (BSW), Warnungen vor von hinten querenden Fahrzeugen (RCTW), Kollisionswarnungen (Collision Warning System, CWS), Spurenzentrierung (Lane Change assistance, LC) und/oder andere Features und Funktionen umfassen.
  • Die ACC-Systeme können ein oder mehrere RADAR-Sensoren 460, LiDAR-Sensoren 464 und/oder eine oder mehrere Kameras verwenden. Die ACC-Systeme können eine längs gerichtete ACC und/oder eine seitwärts gerichtete ACC umfassen. Die längs gerichtete ACC überwacht und steuert den Abstand zu dem sich unmittelbar vor dem Fahrzeug 400 befindenden Fahrzeug und passt die Fahrzeuggeschwindigkeit automatisch an, um einen Sicherheitsabstand zu vorausfahrenden Fahrzeugen einzuhalten. Die seitwärts gerichtete ACC hält den Abstand ein und weist das Fahrzeug 400 bei Bedarf an, die Spur zu wechseln. Die seitwärts gerichtete ACC ist mit anderen ADAS-Anwendungen wie LC und CWS verbunden.
  • CACC verwendet Informationen von anderen Fahrzeugen, welche über die Netzwerkschnittstelle 424 und/oder die drahtlose(n) Antenne(n) 426 von anderen Fahrzeugen über eine drahtlose Verbindung oder indirekt über eine Netzwerkverbindung (z. B. über das Internet) empfangen werden können. Direkte Verbindungen können über eine Kommunikationsverbindung von Fahrzeug-zu-Fahrzeug (V2V) bereitgestellt werden, während indirekte Verbindungen Kommunikationsverbindungen von Infrastruktur-zu-Fahrzeug- (12V) sein können. Im Allgemeinen liefert das V2V-Kommunikationskonzept Informationen über die unmittelbar vorausfahrenden Fahrzeuge (z. B. Fahrzeuge, die sich unmittelbar vor dem Fahrzeug 500 und auf derselben Fahrspur wie dieses befinden), während das I2V-Kommunikationskonzept Informationen über den weiter vorausfahrenden Verkehr liefert. CACC-Systeme können sowohl 12V- als auch V2V-Informationsquellen umfassen. Angesichts der Informationen über die vor dem Fahrzeug 400 fahrenden Fahrzeuge kann CACC zuverlässiger sein und hat das Potenzial, den Verkehrsfluss zu verbessern und Staus auf der Straße zu reduzieren.
  • FCW-Systeme sind ausgebildet, den Fahrer vor einer Gefahr zu warnen, so dass er korrigierend eingreifen kann. FCW-Systeme verwenden eine nach vorn gerichtete Kamera und/oder RADAR-Sensor(en) 460, welche mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der wiederum elektrisch mit dem Fahrer-Feedback gekoppelt ist, zum Beispiel einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente. FCW-Systeme können eine Warnung bereitstellen, beispielsweise in Form eines Tons, einer optischen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.
  • AEB-Systeme erkennen eine drohende Kollision mit einem anderen vorausfahrenden Fahrzeug oder einem anderen vorausgehenden Objekt und können automatisch die Bremsen betätigen, wenn der Fahrer nicht innerhalb eines bestimmten Zeit- oder Entfernungsparameters korrigierend eingreift. AEB-Systeme können nach vorn gerichtete Kamera(s) und/oder RADAR-Sensor(en) 460 verwenden, welche mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, warnt es in der Regel zunächst den Fahrer, damit er korrigierende Maßnahmen ergreift, um die Kollision zu vermeiden, und wenn der Fahrer keine korrigierenden Maßnahmen ergreift, kann das AEB-System automatisch die Bremsen betätigen, um die Auswirkungen der vorhergesehenen Kollision zu verhindern oder zumindest zu mildern. AEB-Systeme können Techniken wie dynamische Bremsunterstützung und/oder automatische Notbremsung umfassen.
  • LDW-Systeme stellen dem Fahrer optische, akustische und/oder taktile Warnungen bereit, beispielsweise durch Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 400 die Fahrspurmarkierungen überquert. Ein LDW-System wird nicht aktiviert, wenn der Fahrer durch Betätigen des Blinkers ein absichtliches Verlassen der Fahrspur anzeigt. LDW-Systeme können nach vorn gerichtete Kameras verwenden, welche mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC, gekoppelt sind, der seinerseits elektrisch mit dem Fahrer-Feedback gekoppelt ist, zum Beispiel einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • LKA-Systeme sind eine Variante von LDW-Systemen. LKA-Systeme stellen Lenkeingaben bereit oder bremsen, um das Fahrzeug 400 zu korrigieren, wenn das Fahrzeug 400 beginnt, die Spur zu verlassen.
    BSW-Systeme erfassen Fahrzeuge, die sich im toten Winkel des Fahrzeugs befinden und warnen den Fahrer vor diesen. BSW-Systeme können ein optisches, akustisches und/oder taktiles Warnsignal ausgeben, um darauf hinzuweisen, dass das Zusammenführen oder Wechseln von Fahrspuren unsicher ist. Das System kann eine zusätzliche Warnung bereitstellen, wenn der Fahrer einen Fahrtrichtungsblinker betätigt. BSW-Systeme können rückwärts-seitlich gerichtete Kamera(s) und/oder RADAR-Sensor(en) 460 verwenden, welche mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, zum Beispiel mit einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • RCTW-Systeme können eine optische, akustische und/oder taktile Meldung ausgeben, wenn beim Rücksetzen des Fahrzeugs 400 ein Objekt außerhalb des Bereichs der Rückfahrkamera erkannt wird. Einige RCTW-Systeme umfassen AEB zur Sicherstellung, dass die Fahrzeugbremsen betätigt werden, um einen Unfall zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete RADAR-Sensoren 460 verwenden, welche mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, wie zum Beispiel einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • Herkömmliche ADAS-Systeme können anfällig für falsch positive Ergebnisse sein, die für einen Fahrer lästig und ablenkend sein können, jedoch üblicherweise nicht katastrophal sind, weil die ADAS-Systeme den Fahrer warnen und es dem Fahrer ermöglichen zu entscheiden, ob wirklich eine sicherheitskritische Situation besteht, und entsprechend zu handeln. Beim autonomen Fahrzeug 400 muss das Fahrzeug 400 jedoch im Falle widersprüchlicher Ergebnisse selbst entscheiden, ob es das Ergebnis eines Primärcomputers oder eines Sekundärcomputers (z. B. einer ersten Steuerung 436 oder einer zweiten Steuerung 436) befolgen soll. In einigen Ausführungsformen kann das ADAS-System 438 beispielsweise ein Backup- und/oder Sekundärcomputer sein, welcher Wahrnehmungsinformationen an ein Rationalitätsmodul des Backup-Computers liefert. Der Rationalitätsmonitor des Backup-Computers kann eine redundante diverse Software auf Hardwarekomponenten ausführen, um Fehler in Wahrnehmung und dynamischen Fahraufgaben zu erkennen. Die Ausgaben des ADAS-Systems 438 können an eine überwachende MCU weitergeleitet werden. Wenn sich Ausgaben des Primärcomputers und des Sekundärcomputers widersprechen, muss die überwachende MCU bestimmen, wie der Konflikt gelöst werden kann, um einen sicheren Betrieb zu gewährleisten.
  • In einigen Beispielen kann der Primärcomputer eingerichtet sein, der überwachenden MCU einen Confidence-Wert bereitzustellen, der das Vertrauen des Primärcomputers in das gewählte Ergebnis anzeigt. Wenn der Confidence-Wert einen Schwellenwert überschreitet, kann die überwachende MCU dem Hinweis des Primärcomputers folgen, unabhängig davon, ob der Sekundärcomputer ein widersprüchliches oder nicht übereinstimmendes Ergebnis liefert. Erreicht der Confidence-Wert den Schwellenwert nicht und geben der Primär- und Sekundärcomputer unterschiedliche Ergebnisse an (z. B. den Konflikt), kann die überwachende MCU zwischen den Rechnern vermitteln, um das angemessene Ergebnis zu bestimmen.
  • Die überwachende MCU kann eingerichtet sein, ein oder mehrere neuronale Netze zu betreiben, welche trainiert und konfiguriert sind, auf der Grundlage der Ausgaben des Primärcomputers und Sekundärcomputers die Bedingungen zu bestimmen, unter denen der Sekundärcomputer Fehlalarme ausgibt. So können das oder die neuronalen Netze in der überwachenden MCU lernen, wann der Ausgabe des Sekundärcomputers vertraut werden kann und wann nicht. Handelt es sich bei dem Sekundärcomputer beispielsweise um ein RADAR-basiertes FCW-System, kann ein neuronales Netz in der überwachenden MCU lernen, wann das FCW-System metallische Objekte identifiziert, die in Wirklichkeit keine Gefahr darstellen, wie etwa ein Abflussgitter oder ein Kanaldeckel, der einen Alarm auslöst. In ähnlicher Weise, wenn der Sekundärcomputer ein kamerabasiertes LDW-System ist, kann ein neuronales Netz in der überwachenden MCU lernen, das LDW-System zu übersteuern, wenn Radfahrer oder Fußgänger anwesend sind und ein Verlassen der Fahrspur tatsächlich das sicherste Manöver ist. In Ausführungsformen, welche ein oder mehrere neuronale Netze umfassen, die auf der überwachenden MCU laufen, kann die überwachende MCU mindestens einen eines DLA oder Grafikprozessors umfassen, der für den Betrieb des oder der neuronalen Netze mit zugehörigem Speicher geeignet ist. In bevorzugten Ausführungsformen kann die überwachende MCU ein oder mehrere SoCs 404 umfassen und/oder als Komponente des(der) SoC(s) 404 enthalten sein.
  • In anderen Beispielen kann das ADAS-System 438 einen Sekundärcomputer umfassen, welcher ADAS-Funktionalität unter Verwendung herkömmlicher Regeln von Computer-Vision ausführt. So kann der Sekundärcomputer klassische Computer-Vision-Regeln (wenn-dann) verwenden, und das Vorhandensein eines oder mehrerer neuronaler Netze in der überwachenden MCU kann Zuverlässigkeit, Sicherheit und Leistung verbessern. Beispielsweise machen die unterschiedliche Implementierung und absichtliche Nicht-Identität das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, welche durch Funktionalität der Software (oder einer Software-Hardware-Schnittstelle) verursacht werden. Wenn beispielsweise ein Bug bzw. Softwarefehler in der auf dem Primärcomputer laufenden Software auftritt und der nicht identische Softwarecode auf dem Sekundärcomputer das gleiche Gesamtergebnis liefert, kann die überwachende MCU mit größerer Sicherheit davon ausgehen, dass das Gesamtergebnis korrekt ist und der Bug in der vom Primärcomputer verwendeten Software oder Hardware keinen wesentlichen Fehler verursacht.
  • In einigen Beispielen kann die Ausgabe des ADAS-Systems 438 in den Wahrnehmungsblock des Primärcomputers und/oder in den Block für dynamische Fahraufgaben des Primärcomputers eingespeist werden. Wenn das ADAS-System 438 beispielsweise eine Warnung vor einem Aufprall aufgrund eines unmittelbar vorausliegenden Objekts anzeigt, kann der Wahrnehmungsblock diese Informationen beim Identifizieren von Objekten verwenden. In anderen Beispielen kann der Sekundärcomputer über ein eigenes neuronales Netz verfügen, das trainiert ist und somit, wie hier beschrieben, das Risiko von Fehlalarmen reduziert.
  • Das Fahrzeug 400 kann ferner das Infotainment-SoC 430 (z. B. ein bordeigenes Infotainment-System (IVI)) umfassen. Obwohl das Infotainment-System als SoC dargestellt und beschrieben wird, muss es nicht unbedingt ein SoC sein, sondern kann auch zwei oder mehr diskrete Komponenten umfassen. Das Infotainment-SoC 430 kann eine Kombination aus Hardware und Software umfassen, welche verwendet werden kann, um Akustik (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio etc.), Video (z. B. Fernsehen, Filme, Streaming etc.), Telefon (z. B. Freisprechfunktion), Netzwerkkonnektivität (z. B. LTE, Wi-Fi etc.) und/oder Informationsdienste (z. B. Navigationssysteme, rückwärtige Einparkhilfe, ein Funkdatensystem, fahrzeugbezogene Informationen wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremsflüssigkeitsstand, Ölstand, Tür auf/zu, Luftfilterinformationen etc.) an das Fahrzeug 400 bereitzustellen. Das Infotainment-SoC 430 kann beispielsweise Radios, CD-Player, Navigationssysteme, Videoplayer, USB- und Bluetooth-Konnektivität, Car-PCs, In-Car-Entertainment, Wi-Fi, Audiobedienelemente am Lenkrad, Freisprecheinrichtung, ein Head-up-Display (HUD), ein HMI-Display 434, ein Telematikgerät, ein Bedienfeld (z. B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder andere Komponenten umfassen. Das Infotainment-SoC 430 kann ferner verwendet werden, um einem oder mehreren Nutzern des Fahrzeugs Informationen (z. B. visuell und/oder akustisch), wie beispielsweise Informationen aus dem ADAS-System 438, Informationen zum autonomen Fahren wie geplante Fahrzeugmanöver, Bewegungsverläufe, Umgebungsinformationen (z. B. Informationen über Kreuzungen, Fahrzeuginformationen, Straßeninformationen etc.) und/oder andere Informationen, bereitzustellen.
  • Das Infotainment-SoC 430 kann GPU-Funktionen umfassen. Das Infotainment-SoC 430 kann über den Bus 402 (z. B. CAN-Bus, Ethernet etc.) mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 400 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 430 mit einer überwachenden MCU gekoppelt sein, so dass die GPU des Infotainment-Systems einige Selbstfahrfunktionen übernehmen kann, wenn die eine oder die mehreren primären Steuerungen 436 (z. B. der Primär- und/oder Backup-Computer des Fahrzeugs 400) ausfallen. In einem solchen Beispiel kann das Infotainment-SoC 430 das Fahrzeug 400 in einen wie hier beschriebenen sicheren Chauffeur-Stopp-Modus versetzen.
  • Das Fahrzeug 400 kann ferner ein Kombi-Instrument 432 (z. B. ein digitales Armaturenbrett, ein elektronisches Kombi-Instrument, eine digitale Instrumententafel etc.) umfassen. Das Kombi-Instrument 432 kann eine Steuerung und/oder einen Supercomputer (z. B. eine diskrete Steuerung oder einen diskreten Supercomputer) umfassen. Das Kombi-Instrument 432 kann einen Satz von Instrumenten umfassen, wie beispielsweise Tachometer, Kraftstoffstandmesser, Öldruckmesser, Drehzahlmesser, Kilometerzähler, Blinker, Schaltpositionsanzeige, Sicherheitsgurtwarnleuchte(n), Feststellbremswarnleuchte(n), Motorfehlfunktionsleuchte(n), Informationen über das Airbag-System (SRS), Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen usw. In einigen Beispielen können die Informationen vom Infotainment-SoC 430 und dem Kombi-Instrument 432 angezeigt und/oder ausgetauscht werden. Anders ausgedrückt kann das Kombi-Instrument 432 Teil des Infotainment-SoC 430 sein oder umgekehrt.
  • 4D zeigt ein Systemdiagramm für die Kommunikation zwischen dem(den) cloudbasierten Server(n) und dem beispielhaften autonomen Fahrzeug von 4A gemäß einigen Ausführungsformen der Erfindung. Das System 476 kann einen oder mehrere Server 478, ein oder mehrere Netze 490 und die Fahrzeuge, einschließlich des Fahrzeugs 400, umfassen. Der eine oder die mehreren Server 478 können eine Vielzahl von GPUs 484(A)-484(H) (hier zusammenfassend als GPUs 484 bezeichnet), PCIe-Switches 482(A)-482(H) (hier zusammenfassend als PCIe-Switches 482 bezeichnet) und/oder CPUs 480(A)-480(B) (hier zusammenfassend als CPUs 480 bezeichnet) umfassen. Die GPUs 484, die CPUs 480 und die PCIe-Switches können über Hochgeschwindigkeitsverbindungen miteinander verbunden sein, wie zum Beispiel und ohne darauf beschränkt zu sein über die von NVIDIA entwickelten NVLink-Schnittstellen 488 und/oder PCIe-Interconnects 486. In einigen Beispielen sind die GPUs 484 über NVLink und/oder NVSwitch SoC und die GPUs 484 und die PCIe-Switches 482 über PCIe-Interconnects verbunden. Obwohl acht GPUs 484, zwei CPUs 480 und zwei PCIe-Switches dargestellt sind, ist dies nicht als Einschränkung zu verstehen. Je nach Ausführungsform kann jeder der Server 478 eine beliebige Anzahl von GPUs 484, CPUs 480 und/oder PCIe-Switches umfassen. Beispielsweise kann jeder Server 478 acht, sechzehn, zweiunddreißig und/oder mehr GPUs 584 umfassen.
  • Der eine oder die mehreren Server 478 können über das(die) Netzwerk(e) 490 und von den Fahrzeugen Bilddaten empfangen, welche Bilder repräsentieren, die unerwartete oder veränderte Straßenzustände zeigen, wie beispielsweise kürzlich begonnene Straßenbauarbeiten. Der oder die Server 478 können, über das(die) Netzwerk(e) 490 und an die Fahrzeuge, neuronale Netze 492, aktualisierte neuronale Netze 492 und/oder Karteninformationen 494, einschließlich Informationen über Verkehrs- und Straßenzustände, übertragen. Die Aktualisierungen der Karteninformationen 494 können Aktualisierungen für die HD-Karte 422 umfassen, zum Beispiel Informationen über Baustellen, Schlaglöcher, Umleitungen, Überschwemmungen und/oder andere Hindernisse. In einigen Beispielen können die neuronalen Netze 492, die aktualisierten neuronalen Netze 492 und/oder die Karteninformationen 494 Ergebnisse neuen Trainings und/oder neuer Erfahrungen sein, welche in Daten repräsentiert sind, die von einer beliebigen Anzahl von Fahrzeugen in der Umgebung empfangen wurden, und/oder auf einem Training basieren, welches in einem Rechenzentrum durchgeführt wurde (z. B. unter Verwendung des oder der Server 478 und/oder anderer Server).
  • Der eine oder die mehreren Server 478 können verwendet werden, um Modelle für maschinelles Lernen (z. B. neuronale Netze) basierend auf Trainingsdaten zu trainieren. Die Trainingsdaten können von den Fahrzeugen und/oder in einer Simulation (z. B. unter Verwendung einer Game-Engine) erzeugt werden. In einigen Beispielen sind die Trainingsdaten markiert (z. B. wenn das neuronale Netz von überwachtem Lernen profitiert) und/oder sind einer anderen Vorverarbeitung unterzogen, während in anderen Beispielen die Trainingsdaten nicht markiert und/oder vorverarbeitet sind (z. B. wenn das neuronale Netz kein überwachtes Lernen erfordert). Das Training kann nach einer oder mehreren Klassen von Techniken des maschinellen Lernens durchgeführt werden, einschließlich aber nicht beschränkt auf Klassen wie: überwachtes Training, teilweise überwachtes Training, unüberwachtes Training, Selbstlernen, Reinforcement Learning (Verstärkungslernen), Federated Learning (Föderales Lernen), Transfer Learning (Transfer-Lernen), Feature Learning (Charakteristik-Lernen) (einschließlich Hauptkomponenten- und Clusteranalysen), multi-linear Subspace Learning (Multilineares Unterraumlernen), Manifold Learning (Vielfältiges Lernen), Representation Learning (Darstellendes Lernen) (einschließlich Ersatzwörterbuchlernen), regelbasiertes maschinelles Lernen, Anomalieerkennung sowie alle Varianten oder Kombinationen davon. Sobald die Modelle für maschinelles Lernen trainiert sind, können die Modelle für maschinelles Lernen von den Fahrzeugen genutzt werden (z. B. durch Übertragung an die Fahrzeuge über das(die) Netzwerk(e) 490, und/oder die Modelle für maschinelles Lernen können von dem oder den Servern 478 zur Fernüberwachung der Fahrzeuge verwendet werden.
  • In einigen Beispielen können der oder die Server 478 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Netze in Echtzeit für intelligente Inferenz in Echtzeit anwenden. Der oder die Server 478 können Deep-Learning-Supercomputer und/oder von GPU(s) 484 angetriebene dedizierte KI-Computer umfassen, wie zum Beispiel die von NVIDIA entwickelten DGX- und DGX-Station-Maschinen. In einigen Beispielen können der oder die Server 478 jedoch auch eine Deep-Learning-Infrastruktur umfassen, welche nur CPUbetriebene Rechenzentren verwendet.
  • Die Deep-Learning-Infrastruktur des einen oder der mehreren Server 478 kann in der Lage sein, schnell und in Echtzeit zu inferenzieren und kann diese Fähigkeit nutzen, um den ordnungsgemäßen Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 400 zu bewerten und zu überprüfen. Beispielsweise kann die Deep-Learning-Infrastruktur regelmäßige Aktualisierungen vom Fahrzeug 400 erhalten, wie etwa eine Bildsequenz und/oder Objekte, die das Fahrzeug 400 in dieser Bildsequenz geortet hat (z. B. über Computer Vision und/oder andere Objektklassifizierungstechniken des maschinellen Lernens). Die Deep-Learning-Infrastruktur kann ihr eigenes neuronales Netz betreiben, um die Objekte zu identifizieren und sie mit den vom Fahrzeug 400 identifizierten Objekten zu vergleichen, und wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 400 eine Fehlfunktion aufweist, können der oder die Server 478 ein Signal an das Fahrzeug 400 senden, das einen ausfallsicheren Computer des Fahrzeugs 400 anweist, die Kontrolle zu übernehmen, die Fahrgäste zu informieren und ein sicheres Parkmanöver durchzuführen.
  • Für Inferenzzwecke können der oder die Server 478 die GPU(s) 484 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. TensorRT von NVIDIA) umfassen. Die Kombination von GPU-angetriebenen Servern und Inferenzbeschleunigung kann eine Reaktionsfähigkeit in Echtzeit ermöglichen. In anderen Beispielen, in denen beispielsweise die Leistung weniger kritisch ist, können Server mit CPUs, FPGAs und anderen Prozessoren für Inferenz verwendet werden.
  • 5 zeigt ein Blockdiagramm eines beispielhaften Rechners 500, welcher zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Erfindung geeignet ist. Der Rechner 500 kann ein Verbindungssystem 502 umfassen, welches die folgenden Vorrichtungen direkt oder indirekt koppelt: Speicher 504, eine oder mehrere Zentraleinheiten (CPU(s)) 506, eine oder mehrere Grafikverarbeitungseinheiten (GPU(s)) 508, eine Kommunikationsschnittstelle 510, E/A-Anschlüsse 512, Eingabe-/Ausgabekomponenten 514, eine Stromversorgung 516, eine oder mehrere Präsentationskomponenten 518 (z. B. Anzeige(n)) und eine oder mehrere Logikeinheiten 520.
  • Obwohl die verschiedenen Blöcke von 5 als über das Verbindungssystem 502 mit Leitungen verbunden dargestellt sind, ist dies nicht als Einschränkung gedacht und dient nur der Anschaulichkeit. Beispielsweise kann in einigen Ausführungsformen eine Präsentationskomponente 518, wie ein Anzeigegerät, als E/A-Komponente 514 betrachtet werden (z. B., wenn die Anzeige ein Touchscreen ist). Als weiteres Beispiel können die CPUs 506 und/oder GPUs 508 einen Speicher umfassen (z. B. kann der Speicher 504 zusätzlich zum Speicher der GPUs 508, der CPUs 506 und/oder anderer Komponenten eine Speichervorrichtung darstellen). Anders ausgedrückt dient der Rechner von 5 lediglich der Veranschaulichung. Es wird nicht zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Gerät“, „mobiles Gerät“, „Handheld-Gerät“, „Spielkonsole“, „elektronische Steuereinheit (ECU)“, „Virtual-Reality-System“, „Augmented-Reality-System“ und/oder anderen Geräte- oder Systemtypen unterschieden, da sie alle innerhalb des Umfangs des Rechners von 5 denkbar sind.
  • Das Verbindungssystem 502 kann eine oder mehrere Verbindungen oder Busse darstellen, wie zum Beispiel einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Das Verbindungssystem 502 kann einen oder mehrere Bus- oder Verbindungstypen umfassen, zum Beispiel einen ISA-Bus (Industry Standard Architecture), einen EISA-Bus (Extended Industry Standard Architecture), einen VESA-Bus (Video Electronics Standards Association), einen PCI-Bus (Peripheral Component Interconnect), einen PCIe-Bus (Peripheral Component Interconnect Express) und/oder eine andere Art von Bus bzw. Verbindung. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen den Komponenten. So kann beispielsweise die CPU 506 direkt mit dem Speicher 504 verbunden sein. Außerdem kann die CPU 506 direkt mit der GPU 508 verbunden sein. Bei einer direkten oder Punkt-zu-Punkt-Verbindung zwischen Komponenten kann das Verbindungssystem 502 eine PCIe-Verbindung umfassen, um die Verbindung zu realisieren. In diesen Beispielen muss ein PCI-Bus nicht im Rechner 500 enthalten sein.
  • Der Speicher 504 kann ein beliebiges aus einer Vielzahl von computerlesbaren Medien umfassen. Bei den computerlesbaren Medien kann es sich um jedes verfügbare Medium handeln, auf das der Rechner 500 zugreifen kann. Die computerlesbaren Medien können sowohl flüchtige als auch nicht flüchtige Medien sowie Wechsel- als auch Nicht-Wechselmedien umfassen. Als Beispiel und nicht als Einschränkung können die computerlesbaren Medien Computerspeichermedien und Kommunikationsmedien umfassen.
  • Die Computerspeichermedien können sowohl flüchtige als auch nicht flüchtige Medien und/oder Wechsel- als auch Nicht-Wechselmedien umfassen, welche in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen, wie beispielsweise computerlesbarer Anweisungen, Datenstrukturen, Programmmodule und/oder anderer Datentypen, implementiert sind. Beispielsweise kann der Speicher 504 computerlesbare Anweisungen speichern (z. B. solche, die ein oder mehrere Programme und/oder ein oder mehrere Programmelemente darstellen, wie z. B. ein Betriebssystem). Computerspeichermedien können beispielsweise und ohne darauf beschränkt zu sein RAM-, ROM-, EEPROM-, Flash-Speicher oder andere Speichertechnologien, CD-ROM, DVDs oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium sein, welches zur Speicherung der gewünschten Informationen verwendet werden kann und auf das der Rechner 500 zugreifen kann. Wie hier verwendet, umfassen Computerspeichermedien nicht per se Signale.
  • Die Computerspeichermedien können computerlesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datentypen in einem modulierten Datensignal, wie beispielsweise einer Trägerwelle oder einem anderen Transportmechanismus, verkörpern und beliebige Informationsübertragungsmedien umfassen. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, welches eine oder mehrere seiner Eigenschaften derart eingestellt oder verändert hat, um Informationen in dem Signal zu kodieren. Computerspeichermedien können beispielsweise und ohne darauf beschränkt zu sein drahtgebundene Medien, wie ein drahtgebundenes Netzwerk oder eine direkt verdrahtete Verbindung, sowie drahtlose Medien, wie beispielsweise Audio-, RF-, Infrarot- und andere drahtlose Medien, sein. Kombinationen der oben genannten Medien sollten ebenfalls in den Umfang von computerlesbaren Medien einbezogen sein.
  • Die eine oder mehreren CPUs 506 können konfiguriert sein, zumindest einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten des Rechners 500 zu steuern, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Die eine oder mehreren CPUs 506 können einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig etc.) umfassen, welche in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die eine oder mehreren CPUs 506 können jede Art von Prozessor umfassen und je nach Art des implementierten Rechners 500 verschiedene Arten von Prozessoren umfassen (z. B. Prozessoren mit weniger Kernen für mobile Geräte und Prozessoren mit mehr Kernen für Server). Je nach Art des Rechners 500 kann der Prozessor beispielsweise ein Prozessor von Advanced RISC Machines (ARM) sein, der mit RISC (Berechnungen mit reduziertem Befehlssatz) arbeitet, oder ein x86-Prozessor, der mit CISC (Berechnungen mit komplexem Befehlssatz) arbeitet. Der Rechner 500 kann eine oder mehrere CPUs 506 zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzliche Co-Prozessoren, wie zum Beispiel mathematische Co-Prozessoren, umfassen.
  • Zusätzlich oder alternativ zu der(den) CPU(s) 506 können die eine oder mehreren GPUs 508 konfiguriert sein, zumindest einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten des Rechners 500 zu steuern, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Eine oder mehrere der GPU(s) 508 können eine integrierte GPU sein (z. B. mit einer oder mehreren der CPU(s) 506) und/oder eine oder mehrere der GPU(s) 508 können eine diskrete GPU sein. In einigen Ausführungsformen kann eine oder mehrere der GPU(s) 508 ein Co-Prozessor einer oder mehrerer der CPU(s) 506 sein. Die eine oder mehreren GPUs 508 können von dem Rechner 500 zum Rendern von Grafiken (z. B. 3D-Grafiken) oder zum Durchführen von Universalberechnungen verwendet werden. Die eine oder mehreren GPUs 508 können beispielsweise für Universalberechnungen auf GPUs (GPGPU) verwendet werden. Die eine oder mehreren GPUs 508 können Hunderte oder Tausende von Kernen umfassen, welche in der Lage sind, Hunderte oder Tausende von Software-Threads gleichzeitig zu handhaben. Die eine oder mehreren GPUs 508 können als Reaktion auf Rendering-Befehle (z. B. Rendering-Befehle von der(den) CPU(s) 506, die über eine Host-Schnittstelle empfangen werden) Pixeldaten für Ausgabebilder erzeugen. Die eine oder mehreren GPUs 508 können Grafikspeicher, zum Beispiel Anzeigespeicher, zum Speichern von Pixeldaten oder beliebigen anderen geeigneten Daten, zum Beispiel GPGPU-Daten, umfassen. Der Anzeigespeicher kann als Teil des Speichers 504 enthalten sein. Die eine oder mehreren GPUs 508 können zwei oder mehr GPUs umfassen, die parallel arbeiten (z. B. über eine Verbindung). Die Verbindung kann die GPUs direkt (z. B. mit NVLINK) oder über einen Switch (z. B. mit NVSwitch) verbinden. Wenn sie miteinander kombiniert werden, kann jede GPU 508 Pixeldaten oder GPGPU-Daten für verschiedene Teile einer Ausgabe oder für verschiedene Ausgaben erzeugen (z. B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann über einen eigenen Speicher verfügen oder den Speicher mit anderen GPUs gemeinsam nutzen.
  • Zusätzlich oder alternativ zu der(den) CPU(s) 506 und/oder der(den) GPU(s) 508 können die eine oder mehreren Logikeinheiten 520 ausgelegt sein, zumindest einige der computerlesbaren Befehle auszuführen, um eine oder mehrere Komponenten des Rechners 500 zu steuern, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. In Ausführungsformen können die CPU(s) 506, die GPU(s) 508 und/oder die Logikeinheit(en) 520 diskret oder gemeinsam eine beliebige Kombination der Verfahren, Prozesse und/oder Teile davon ausführen. Eine oder mehrere der Logikeinheiten 520 können Teil einer oder mehrerer der CPU(s) 506 und/oder der GPU(s) 508 sein und/oder eine oder mehrere der Logikeinheiten 520 können diskrete Komponenten sein oder sich anderweitig außerhalb der CPU(s) 506 und/oder der GPU(s) 508 befinden. In Ausführungsformen können eine oder mehrere der Logikeinheiten 520 ein Co-Prozessor einer oder mehrerer der CPU(s) 506 und/oder einer oder mehrerer der GPU(s) 508 sein.
  • Beispiele für die Logikeinheit(en) 520 umfassen einen oder mehrere Rechenkerne und/oder Komponenten davon, wie zum Beispiel TCs (Tensor-Kerne), TPUs (TensorVerarbeitungseinheiten), PVCs (Pixelvisualisierungskerne), VPUs (Bildverarbeitungseinheiten), GPCs (GPU-Cluster), TPCs (Texturverarbeitungscluster), SMs (Streaming-Multiprozessoren), TTUs (Bauchsucheinheiten), AIAs (KI-Beschleuniger), DLAs (Deep-Learning-Beschleuniger), ALUs (Arithmetische Logikeinheiten), ASICs (anwendungsspezifische integrierte Schaltungen), FPUs (Gleitkommaeinheiten), E/A-Elemente, PCI- (Peripheriegeräteverbindung) oder PCIe (Peripheriegeräteverbindung mit Chipsatz eines Hauptprozessors)-Elemente und/oder dergleichen.
  • Die Kommunikationsschnittstelle 510 kann einen oder mehrere Empfänger, Sender und/oder kombinierte Sender- und Empfangsgeräte enthalten, welche es dem Rechner 500 ermöglichen, mit anderen Rechnern über ein elektronisches Kommunikationsnetzwerk, einschließlich drahtgebundener oder drahtloser Kommunikation, zu kommunizieren. Die Kommunikationsschnittstelle 510 kann Komponenten und Funktionen umfassen, um Kommunikation über ein beliebiges einer Anzahl verschiedener Netzwerke zu ermöglichen, wie beispielsweise drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee etc.), drahtgebundene Netzwerke (z. B. Ethernet oder InfiniBand), Weitverkehrsnetzwerke mit geringer Leistung (z. B. LoRaWAN, SigFox usw.) und/oder das Internet.
  • Die E/A-Anschlüsse 512 können es dem Rechner 500 ermöglichen, mit anderen Geräten, einschließlich den E/A-Komponenten 514, der(den) Präsentationskomponente(n) 518 und/oder anderen Komponenten, von denen einige in dem Rechner 500 eingebaut (z. B. integriert) sein können, gekoppelt zu sein. Beispielhafte E/A-Komponenten 514 umfassen ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Gamecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, ein drahtloses Gerät usw. Die E/A-Komponenten 514 können eine natürliche Benutzerschnittstelle (NUI) bereitstellen, die Luftbewegungen, Sprache oder andere von einem Benutzer erzeugte physiologische Eingaben verarbeitet. In einigen Fällen können die Eingaben zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination aus Spracherkennung, Stifterkennung, Gesichtserkennung, biometrischer Erkennung, Bewegungserkennung sowohl auf als auch neben dem Bildschirm, sowie Luftbewegungs-, Kopf- und Augenverfolgung und Berührungserkennung (wie unten ausführlicher beschrieben), die einer Anzeige des Rechners 500 zugeordnet sind, implementieren. Der Rechner 500 kann Tiefenkameras, wie stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon, zur Bewegungserkennung und -erfassung umfassen. Darüber hinaus kann der Rechner 500 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) umfassen, welche die Erkennung von Bewegungen ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope von dem Rechner 500 verwendet werden, um immersive erweiterte Realität oder virtuelle Realität zu rendern.
  • Die Stromversorgung 516 kann eine festverdrahtete Stromversorgung, eine Batteriestromversorgung oder eine Kombination davon umfassen. Die Stromversorgung 516 kann den Rechner 500 mit Strom versorgen, um den Betrieb der Komponenten des Rechners 500 zu ermöglichen.
    Die eine oder mehreren Präsentationskomponenten 518 können eine Anzeige (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Head-up-Display (HUD), andere Display-Typen oder eine Kombination davon), Lautsprecher und/oder andere Präsentationskomponenten umfassen. Die eine oder mehreren Präsentationskomponenten 518 können Daten von anderen Komponenten (z. B. der(den) GPU(s) 508, der(den) CPU(s) 506 etc.) empfangen und die Daten ausgeben (z. B. als ein Bild, ein Video, einen Ton etc.).
  • Die Erfindung kann im allgemeinen Kontext von Computercode oder maschinell verwendbaren Anweisungen beschrieben sein, einschließlich computerausführbaren Anweisungen, wie zum Beispiel Programmmodulen, welche von einem Computer oder einer anderen Maschine, wie zum Beispiel einem Assistenten für personenbezogene Daten oder einem anderen handgehaltenen Gerät ausgeführt werden. Allgemein beziehen sich Programmmodule, einschließlich Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., auf Codes, welche bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Die Erfindung kann in einer Vielzahl von Systemkonfigurationen, die handgehaltene Geräte, Unterhaltungselektronik, Universalcomputer, spezialisiertere Datenverarbeitungsgeräte usw. umfassen, praktisch umgesetzt werden. Die Erfindung kann auch in verteilten Computerumgebungen realisiert werden, in denen Aufgaben von ferngesteuerten, über ein Kommunikationsnetz verbundenen Geräten ausgeführt werden.
  • 6 zeigt Training und Einsatz eines Modells für maschinelles Lernen von Ausführungsformen der Erfindung. In mindestens einer Ausführungsform kann das Modell für maschinelles Lernen ein neuronales Netz, wie zum Beispiel ein CNN, umfassen. Ein untrainiertes neuronales Netz 606 wird anhand eines Trainingsdatensatzes 602 trainiert, der in einigen Ausführungsformen der Erfindung ein Satz von Bildern von Personen sein kann, die verschiedene Kopfhaltungen annehmen. In mindestens einer Ausführungsform ist der Trainingsrahmen 604 ein PyTorch-Framework, während in anderen Ausführungsformen der Trainingsrahmen 604 ein TensorFlow-, Boost-, Caffe-, Microsoft Cognitive Toolkit/CNTK-, MXNet-, Chainer-, Keras-, Deeplearning4j- oder ein anderer Trainingsrahmen ist. Der Trainingsrahmen 604 trainiert ein untrainiertes neuronales Netz 606 unter Verwendung der hier beschriebenen Verarbeitungsressourcen, um ein trainiertes neuronales Netz 608 zu erzeugen. In mindestens einer Ausführungsform können die Anfangsgewichte nach dem Zufallsprinzip oder durch Vortraining mit einem Deep-Belief-Netzwerk ausgewählt werden. Das Training kann entweder auf überwachte, teilweise überwachte oder unüberwachte Weise durchgeführt werden.
  • In mindestens einer Ausführungsform, beispielsweise wenn ein Regressionsklassifikator verwendet wird, kann das untrainierte neuronale Netz 606 durch überwachtes Lernen trainiert werden, wobei der Trainingsdatensatz 602 eine Eingabe umfasst, die mit einer gewünschten Ausgabe gepaart ist, oder wobei der Trainingsdatensatz 602 eine Eingabe mit bekannter Ausgabe umfasst und die Ausgaben der neuronalen Netze manuell klassifiziert werden. In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 606 auf überwachte Weise trainiert. Der Trainingsrahmen 604 verarbeitet Eingaben aus dem Trainingsdatensatz 602 und vergleicht die resultierenden Ausgaben mit einer Reihe erwarteter bzw. gewünschter Ausgaben. In mindestens einer Ausführungsform werden dann die Fehler durch das untrainierte neuronale Netz 606 zurückverfolgt. Der Trainingsrahmen 604 passt Gewichte an, die das untrainierte neuronale Netz 606 steuern. Der Trainingsrahmen 604 kann Werkzeuge enthalten, um zu überwachen, wie gut das untrainierte neuronale Netz 606 zu einem Modell konvergiert, wie zum Beispiel dem trainierten neuronalen Netz 608, welches geeignet ist, korrekte Antworten zu erzeugen, wie beispielsweise im Ergebnis 614, basierend auf bekannten Eingabedaten, wie zum Beispiel neuen Daten 612. In mindestens einer Ausführungsform trainiert der Trainingsrahmen 604 das untrainierte neuronale Netz 606 wiederholt, während es Gewichte anpasst, um eine Ausgabe des untrainierten neuronalen Netzes 606 unter Verwendung einer Verlustfunktion und eines Anpassungsprozesses, wie zum Beispiel stochastischen Gradientenabstiegs, zu verfeinern. In mindestens einer Ausführungsform trainiert der Trainingsrahmen 604 das untrainierte neuronale Netz 606, bis das untrainierte neuronale Netz 606 eine gewünschte Genauigkeit erreicht. Das trainierte neuronale Netz 608 kann dann eingesetzt werden, um eine beliebige Anzahl maschineller Lernoperationen zu implementieren.
  • In mindestens einer Ausführungsform kann das untrainierte neuronale Netz 606 durch unüberwachtes Lernen trainiert werden, wobei das untrainierte neuronale Netz 606 versucht, sich selbst mit unmarkierten Daten zu trainieren. In mindestens einer Ausführungsform kann der Trainingsdatensatz 602 des unüberwachten Lernens Eingabedaten ohne verknüpfte Ausgabedaten oder „Grundwahrheitsdaten“ umfassen. Das untrainierte neuronale Netz 606 kann Gruppierungen innerhalb des Trainingsdatensatzes 602 lernen und bestimmen, in welcher Beziehung einzelne Eingaben zu dem untrainierten Datensatz 602 stehen. In mindestens einer Ausführungsform kann unüberwachtes Training verwendet werden, um eine selbstorganisierende Karte zu erzeugen, die eine Art von trainiertem neuronalem Netz 608 ist, welches in der Lage ist Operationen durchzuführen, die für Reduzierung der Dimensionalität neuer Daten 612 nützlich sind. Unüberwachtes Training kann auch zur Erkennung von Anomalien verwendet werden, womit Identifizierung von Datenpunkten in einem neuen Datensatz 612, die von normalen oder bestehenden Mustern des neuen Datensatzes 612 abweichen, ermöglicht wird.
  • In mindestens einer Ausführungsform kann teilweise überwachtes Lernen verwendet werden, d. h. eine Technik, bei der der Trainingsdatensatz 602 eine Mischung aus markierten und nicht markierten Daten enthält. Der Trainingsrahmen 604 kann somit für inkrementelles Lernen verwendet werden, zum Beispiel durch übertragene Lerntechniken. Ein solches inkrementelles Lernen ermöglicht es dem trainierten neuronalen Netz 608, sich an neue Daten 612 anzupassen, ohne das Wissen zu vergessen, das dem Netz während des anfänglichen Trainings eingeflößt wurde.
  • 7 ist ein Flussdiagramm, das einen beispielhaften Prozess der fahrzeugbasierten Aktualisierung von HD-Karten gemäß Ausführungsformen der Erfindung zeigt. Hier kann ein autonomes Fahrzeug 400 Bilder von einem oder mehreren Objekten im Sichtfeld seiner verschiedenen Sensoren aufnehmen (Schritt 700), wie in 1 dargestellt. Bei den Bildern kann es sich um Bilder von Kameras mit sichtbarem Licht oder beliebigen anderen Sensoren handeln, einschließlich Sensoren wie LiDAR-Systemen. Anschließend werden die relativen Koordinaten dieser Objekte bzw. die Positionen dieser Objekte relativ zum Fahrzeug 400 bestimmt (Schritt 710). Bestimmung der relativen Positionen von Objekten kann auf beliebige Weise erfolgen, zum Beispiel durch Triangulation aus mehreren Bildern, die in einem bekannten Abstand zueinander aufgenommen wurden. Beispielsweise können mehrere verschiedene Kameras gleichzeitig Bilder desselben Objekts aufnehmen, wobei die relative Position des Objekts durch eine Triangulation unter Verwendung der aufgenommenen Bilder und eines bekannten Abstands zwischen den Kameras bestimmt werden kann. Als ein anderes Beispiel kann eine einzelne Kamera mehrere Bilder desselben Objekts aufnehmen, wobei GPS-Sensoren oder andere Positionserkennungssysteme den Standort des Fahrzeugs 400 zum Zeitpunkt jedes aufgenommenen Bildes bestimmen. Triangulation kann dann unter Verwendung der aufgenommenen Bilder und der Differenz der Positionen des Fahrzeugs 400 zwischen den zwei Bildern durchgeführt werden. Als weiteres Beispiel kann die Position wie oben beschrieben bestimmt werden, wobei ein beliebiges Entfernungsmesssystem, Mono- oder Stereosichtsystem verwendet wird.
  • Das Fahrzeug 400 bestimmt auch die absoluten Koordinaten von mindestens einem Referenzobjekt (Schritt 720). Insbesondere kann das Fahrzeug 400 die absoluten Koordinaten eines Objekts bestimmen, dessen relative Koordinaten ebenfalls bestimmt werden können. Beispielsweise kann das Fahrzeug 400 ein Objekt im Sichtfeld eines seiner Sensoren auswählen, das auch ein Objekt ist, das in seiner Straßenkarte oder in einer HD-Karte enthalten ist, auf die das Fahrzeug 400 Zugriff hat und die zur Platzierung von Objekten in seiner Straßenkarte verwendet werden kann. So können Objekte wie oben beschrieben erkannt und identifiziert werden, wobei ihre Formen und relativen Positionen mit den entsprechenden Objekten der semantischen Karte verglichen werden, um festzustellen, ob eine Übereinstimmung besteht. Bei übereinstimmenden Objekten kann festgestellt werden, dass es sich um Objekte handelt, welche bereits auf der semantischen Karte vorhanden und deren absolute Koordinaten bekannt sind. Übereinstimmungen zwischen erkannten Objekten und Objekten der semantischen Karte können auf jede beliebige Art und Weise festgestellt werden, beispielsweise durch den Vergleich von Objektstandorten und Größen/Formen innerhalb einer oder mehrerer vorgegebener Metriken. So können beispielsweise Objekte, die als derselbe Objekttyp klassifiziert sind und innerhalb eines vorgegebenen Schwellenabstands zueinander liegen, als dasselbe Objekt betrachtet werden. Gleichermaßen können Objekte, deren Größen innerhalb einer oder mehrerer vorgegebener Maßtoleranzen und innerhalb eines vorgegebenen Schwellenabstands zueinander übereinstimmen, als dasselbe Objekt betrachtet werden.
  • Wenn ein erkanntes Objekt als mit einem Objekt übereinstimmend angesehen wird, das bereits in der semantischen Karte des Fahrzeugs 400 oder in einer anderen semantischen Karte, auf die das Fahrzeug 400 Zugriff hat, gespeichert ist, beispielsweise in einer semantischen Karte, die von einem entfernten, mit dem Fahrzeug 400 in elektronischer Verbindung stehenden Dienst verwaltet wird, werden die absoluten Koordinaten dieses Objekts abgerufen. Dieses Objekt kann dann als Referenzobjekt dienen, dessen absolute Koordinaten zur Bestimmung der absoluten Koordinaten anderer erkannter Objekte verwendet werden können. Das heißt, das Fahrzeug 400 kann dann die absoluten Koordinaten anderer erkannter Objekte (Schritt 730) aus den absoluten Koordinaten des Referenzobjekts, den absoluten Koordinaten (z. B. GPS-Koordinaten) des Fahrzeugs 400 und den ermittelten Positionen der erkannten Objekte relativ zum Fahrzeug 400 berechnen.
  • Das Fahrzeug 400 kann dann seine Straßenkarte mit den berechneten absoluten Koordinaten aller erkannten Objekte aktualisieren (Schritt 740). Das heißt, erkannte Objekte können in die entsprechende(n) Schicht(en) der semantischen Straßenkarte des Fahrzeugs 400 eingefügt werden. Auf diese Weise kann bemerkt werden, dass Ausführungsformen der Erfindung den Fahrzeuge 400 ermöglichen, ihre Straßenkarten mit Formen, absoluten Koordinaten und Klassifizierungen oder Identitäten erkannter Objekte in Echtzeit zu aktualisieren, während das Fahrzeug 400 einen beliebigen Weg fährt.
  • Darüber hinaus kann das Fahrzeug 400 die absoluten Koordinaten von Objekten, welche in seine Straßenkarte eingegeben wurden, zur Aktualisierung entfernter HD-Karten übertragen. Das heißt, das Fahrzeug 400 kann zu jedem gewünschten Zeitpunkt Informationen über erkannte Objekte an einen entfernten HD-Kartendienst senden, so dass die entfernte HD-Karte aktualisiert werden kann, um diese Objekte aufzunehmen. So kann das Fahrzeug 400 prüfen, ob es Aktualisierungen an einen solchen entfernten Dienst senden soll (Schritt 750). Falls nicht, kann der Prozess zu Schritt 700 zurückkehren und das Fahrzeug kann damit fortfahren, Objekte zu erkennen und ihre berechneten Informationen in seine Straßenkarte einzugeben. Wenn jedoch das Fahrzeug 400 entscheidet, dass es seine Aktualisierungen übertragen soll, kann das Fahrzeug 400 die absoluten Koordinaten und alle anderen gewünschten Informationen - wie entsprechende Objektformen/-konturen und Identifizierungen/Klassifizierungen - an einen entfernten HD-Kartendienst übertragen (Schritt 760).
  • Es wird darauf hingewiesen, dass mehrere Fahrzeuge 400 Aktualisierungsinformationen an den entfernten HD-Kartendienst übertragen können. Das heißt, HD-Karten können kontinuierlich durch mehrere verschiedene entfernte Fahrzeuge 400 aktualisiert werden. Es wird ebenfalls darauf hingewiesen, dass die Fahrzeuge 400 absolute Koordinaten beliebiger Objekte erkennen und bestimmen können, einschließlich der Objekte, die bereits in semantischen Karten des Fahrzeugs 400 oder in entfernten HD-Karten vorhanden sind. Die Fahrzeuge 400 können daher feststellen, dass bestimmte Objekte absolute Koordinatenwerte haben, welche sich von denen unterscheiden, die bereits in ihren bordeigenen Karten bzw. Straßenkarten enthalten sind. Dies kann beispielsweise der Fall sein, wenn ein Objekt zum Beispiel aufgrund von Bauarbeiten versetzt wurde, oder dies kann aus einer Ungenauigkeit resultieren, wie zum Beispiel ungenauen GPS-Messwerten aufgrund von schlechten Empfangsbedingungen für Satellitensignale. Die Fahrzeuge 400 können mit solchen Positionsabweichungen auf jedwede Weise umgehen. Beispielsweise können die Fahrzeuge 400 die Objekte einfach auf ihre neu ermittelte Position aktualisieren, die Position des Objekts auf einen beliebigen Mittelwert der alten und neuen Koordinaten korrigieren, die alten Koordinaten auswählen, bis die neuen Koordinaten durch einen weiteren Durchgang des Objekts bestätigt werden, die neuen Koordinaten verwerfen, wenn eine Ungenauigkeit, wie zum Beispiel eine schlechte GPS-Messung, festgestellt wird, oder Ähnliches. Mehrere Erfassungen eines Objekts an einer neuen Position können ebenfalls zu der Feststellung führen, dass sich das Objekt bewegt hat, sodass die alten Koordinaten verworfen und durch die neu ermittelten Koordinaten ersetzt werden.
  • Gleichermaßen können entfernte HD-Kartendienste Koordinaten für ein Objekt erhalten, die sich von den vorhandenen gespeicherten Koordinaten für dieses Objekt unterscheiden. Die Kartendienste können solche Diskrepanzen auf jedwede Weise behandeln. So können beispielsweise absolute Koordinaten für ein beliebiges Objekt als Datensatz der für dieses Objekt empfangenen Koordinaten akkumuliert oder gespeichert werden, und die Position des Objekts kann als Durchschnitt der akkumulierten Positionswerte bestimmt werden. Beispielsweise kann die Position eines Objekts als arithmetisches Mittel einer vorbestimmten Anzahl der jüngsten von mehreren verschiedenen Fahrzeugen 400 empfangenen Abtastungen oder als arithmetisches Mittel von Abtastungen bestimmt werden, die innerhalb eines jüngsten vorbestimmten Zeitraums (z. B. innerhalb der letzten 24 Stunden, der letzten Woche oder dergleichen) empfangen wurden. Positionen von Objekten oder Merkmalen können auch nur dann aktualisiert oder korrigiert werden, wenn die neu empfangenen Positionswerte um mehr als einen bestimmten Betrag abweichen. Das heißt, in einigen Ausführungsformen können empfangene Messungen, welche dem bereits gespeicherten Wert allzu ähnlich sind, verworfen werden. Ausführungsformen der Erfindung ziehen die Bestimmung von Positionen aus mehreren verschiedenen empfangenen Positionswerten auf beliebige Weise in Betracht, wobei ein beliebiger Mittelwertbildungs- oder Schätzungsprozess verwendet werden kann.
  • Es wird auch darauf hingewiesen, dass sich die Koordinatensysteme lokaler Karten oder Straßenkarten von denen entfernter HD-Kartendienste unterscheiden können, selbst wenn es sich in beiden Fällen um absolute Koordinatensysteme handelt und das eine zur Aktualisierung des anderen verwendet werden kann. Ausführungsformen der Erfindung sehen eine Umrechnung zwischen diesen Koordinatensystemen in bekannter Weise vor, wobei bekannte Transformationen oder Ähnliches verwendet werden. Sowohl das Fahrzeug 400 als auch die entfernten HD-Kartendienste oder beide können je nach Bedarf Koordinatentransformationen durchführen.
  • In der vorstehenden Beschreibung wurde zur Erläuterung eine spezielle Nomenklatur verwendet, um ein umfassendes Verständnis der Erfindung zu ermöglichen. Für Fachleute versteht es sich, dass spezielle Details nicht erforderlich sind, um die Verfahren und Systeme der Erfindung in die Praxis umzusetzen. Daher dienen die vorstehenden Darstellungen bestimmter Ausführungsformen der vorliegenden Erfindung der Veranschaulichung und Beschreibung. Sie erheben keinen Anspruch auf Vollständigkeit und beschränken die Erfindung nicht auf die offenbarten genauen Formen. Viele Modifikationen und Variationen sind in Anbetracht der obigen Lehren möglich. Beispielsweise können beliebige Sensoren, Kameras oder andere Vorrichtungen zur Erfassung von Objekten verwendet werden. Die absoluten Objektkoordinaten können auf beliebige Weise bestimmt und in einer beliebigen semantischen Kartenschicht gespeichert werden. Darüber hinaus können die Positionen auf der semantischen Karte auf beliebige Weise neu bearbeitet oder aktualisiert werden, um Diskrepanzen zwischen den Objektpositionen auf irgendeine Art zu beheben. Die Ausführungsformen wurden ausgewählt und beschrieben, um die Prinzipien der Erfindung und ihre praktischen Anwendungen bestmöglich zu erläutern, so dass andere Fachleute die Verfahren und Systeme der Erfindung und die verschiedenen Ausführungsformen mit verschiedenen Modifikationen, welche für die jeweilige angedachte Verwendung geeignet sind, optimal nutzen können. Darüber hinaus können verschiedene Merkmale der verschiedenen Ausführungsformen, die offenbart oder nicht offenbart sind, gemischt und aufeinander abgestimmt oder anderweitig kombiniert werden, um weitere Ausführungsformen zu schaffen, die durch die Erfindung in Betracht gezogen sind.
  • 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
    • JP 3016201609 [0029]
    • US 16/101232 [0072]

Claims (20)

  1. Verfahren zum Bestimmen von Positionen von Objekten in einer Umgebung, die einem gigantischen Rechenzentrum (Ego-Maschine) entspricht, das Verfahren umfassend: Bestimmen einer Position eines ersten Objekts in einem absoluten Koordinatensystem, Empfangen von Positionsinformationen von einem oder mehreren zweiten Objekten relativ zu der Position des ersten Objekts und Bestimmen von Positionen des einen bzw. der mehreren zweiten Objekte in dem absoluten Koordinatensystem aus den Positionsinformationen des einen bzw. der mehreren zweiten Objekte relativ zu der Position des ersten Objekts und aus der Position des ersten Objekts in dem absoluten Koordinatensystem unter Verwendung einer Parallelverarbeitungsschaltung.
  2. Verfahren nach Anspruch 1, wobei die Positionen des einen bzw. der mehreren zweiten Objekte unter Verwendung mindestens eines Bildes des einen bzw. der mehreren zweiten Objekte bestimmt werden.
  3. Verfahren nach Anspruch 2, wobei das mindestens eine Bild mindestens ein Bild ist, das unter Verwendung einer der Ego-Maschine entsprechenden Kamera aufgenommen wurde.
  4. Verfahren nach einem der vorhergehenden Ansprüche: wobei Empfangen von Positionsinformationen des einen bzw. der mehreren zweiten Objekte ferner Empfangen mehrerer Schätzungen von Positionen jedes zweiten Objekts relativ zur Position des ersten Objekts von einer oder mehreren Ego-Maschinen umfasst, wobei das Verfahren ferner Bestimmen von Positionen des einen bzw. der mehreren zweiten Objekte relativ zum ersten Objekt aus den mehreren Schätzungen von Positionen jedes zweiten Objekts umfasst und wobei Bestimmen der Positionen des einen bzw. der mehreren zweiten Objekte ferner Bestimmen der Positionen des einen bzw. der mehreren zweiten Objekte in dem absoluten Koordinatensystem aus den bestimmten Positionen des einen bzw. der mehreren zweiten Objekte relativ zu dem ersten Objekt und aus der Position des ersten Objekts in dem absoluten Koordinatensystem umfasst.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das absolute Koordinatensystem ein erstes absolutes Koordinatensystem ist, das Verfahren ferner Bestimmen von Positionen des einen bzw. der mehreren zweiten Objekte in einem zweiten absoluten Koordinatensystem zumindest teilweise aus den bestimmten Positionen des einen bzw. der mehreren zweiten Objekte in dem ersten absoluten Koordinatensystem und Übertragen der Positionen des einen bzw. der mehreren zweiten Objekte in das zweite absolute Koordinatensystem umfassend.
  6. Verfahren nach einem der vorhergehenden Ansprüche ferner umfassend Übertragen der Positionen des einen bzw. der mehreren zweiten Objekte in das absolute Koordinatensystem.
  7. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend Empfangen aktualisierter Positionsinformationen des einen bzw. der mehreren zweiten Objekte und Überarbeiten der Positionen des einen bzw. der mehreren zweiten Objekte in dem absoluten Koordinatensystem anhand der aktualisierten Positionsinformationen.
  8. Verfahren zum Bestimmen von Positionen in einem absoluten Koordinatensystem von Objekten in einer Umgebung, die einer Ego-Maschine entspricht, das Verfahren umfassend: Bestimmen einer Position eines ersten Objekts in einem absoluten Koordinatensystem, Bestimmen der Position eines zweiten Objekts relativ zu einem ersten Objekt unter Verwendung einer Parallelverarbeitungsschaltung, die einer Ego-Maschine entspricht, während die Ego-Maschine in Bewegung ist, Bestimmen einer Position des zweiten Objekts in dem absoluten Koordinatensystem aus der Position des zweiten Objekts relativ zu dem ersten Objekt und der Position des ersten Objekts in dem absoluten Koordinatensystem unter Verwendung der parallelen Verarbeitungsschaltung des Fahrzeugs und Übertragen der Position des zweiten Objekts in das absolute Koordinatensystem.
  9. Verfahren nach Anspruch 8, wobei Bestimmen der Position des zweiten Objekts ferner Bestimmen der Position des zweiten Objekts relativ zu dem ersten Objekt aus einem oder mehreren Bildern des ersten Objekts und des zweiten Objekts umfasst.
  10. Verfahren nach Anspruch 8 oder 9, wobei Bestimmen der Position des zweiten Objekts ferner Bestimmen einer Position des ersten Objekts relativ zu der Ego-Maschine, Bestimmen der Position des zweiten Objekts relativ zu der Ego-Maschine und Bestimmen der Position des zweiten Objekts relativ zu dem ersten Objekt aus der Position des ersten Objekts relativ zu dem Fahrzeug und der Position des zweiten Objekts relativ zu der Ego-Maschine umfasst.
  11. Prozessor umfassend: eine oder mehrere Verarbeitungseinheiten zum Bestimmen einer Position in einem absoluten Koordinatensystem eines ersten Objekts in einer Umgebung, die einer Ego-Maschine entspricht, Empfangen von Positionsinformationen eines oder mehrerer zweiter Objekte in der Umgebung relativ zu der Position des ersten Objekts, und Bestimmen von Positionen des einen bzw. der mehreren zweiten Objekte in dem absoluten Koordinatensystem zumindest teilweise basierend auf der Position des ersten Objekts in dem absoluten Koordinatensystem und der Positionsinformationen des einen bzw. der mehreren zweiten Objekte relativ zu der Position des ersten Objekts.
  12. Prozessor nach Anspruch 11, wobei die Positionen des einen bzw. der mehreren zweiten Objekte unter Verwendung mindestens eines Bildes des einen bzw. der mehreren zweiten Objekte bestimmt werden.
  13. Prozessor nach Anspruch 12, wobei das mindestens eine Bild mindestens ein Bild ist, das mit einer der Ego-Maschine entsprechenden Kamera aufgenommen wurde.
  14. Prozessor nach einem der Ansprüche 11 bis 13: wobei die eine oder die mehreren Verarbeitungseinheiten dazu dienen, Positionsinformationen des einen bzw. der mehreren zweiten Objekte zu empfangen, indem sie von einer oder mehreren Ego-Maschinen mehrere Schätzungen der Positionen jedes zweiten Objekts relativ zur Position des ersten Objekts empfangen, wobei die eine oder die mehreren Verarbeitungseinheiten ferner dazu dienen, Positionen des einen bzw. der mehreren zweiten Objekte relativ zu dem ersten Objekt aus den mehrfachen Schätzungen der Positionen jedes zweiten Objekts zu bestimmen und wobei die eine oder die mehreren Verarbeitungseinheiten dazu dienen, die Positionen des einen bzw. der mehreren zweiten Objekte zu bestimmen, indem sie die Positionen des einen bzw. der mehreren zweiten Objekte in dem absoluten Koordinatensystem aus den bestimmten Positionen des einen bzw. der mehreren zweiten Objekte relativ zu dem ersten Objekt und aus der Position des ersten Objekts in dem absoluten Koordinatensystem bestimmen.
  15. Prozessor nach einem der Ansprüche 11 bis 14, wobei es sich bei dem absoluten Koordinatensystem um ein erstes absolutes Koordinatensystem handelt, und wobei die eine oder die mehreren Verarbeitungseinheiten ferner dazu dienen, Positionen des einen bzw. der mehreren zweiten Objekte in einem zweiten absoluten Koordinatensystem zumindest teilweise aus den ermittelten Positionen des einen bzw. der mehreren zweiten Objekte in dem ersten absoluten Koordinatensystem zu bestimmen und die Positionen des einen bzw. der mehreren zweiten Objekte in das zweite absolute Koordinatensystem zu übertragen.
  16. Prozessor nach einem der Ansprüche 11 bis 15, wobei die eine oder mehreren Verarbeitungseinheiten ferner dazu dienen, die Positionen des einen bzw. der mehreren zweiten Objekte in das absoluten Koordinatensystem zu übertragen.
  17. Prozessor nach einem der Ansprüche 11 bis 16, wobei die eine oder die mehreren Verarbeitungseinheiten ferner dazu dienen, aktualisierte Positionsinformationen des einen bzw. der mehreren zweiten Objekte zu empfangen und die Positionen des einen bzw. der mehreren zweiten Objekte in dem absoluten Koordinatensystem anhand der aktualisierten Positionsinformationen zu korrigieren.
  18. Prozessor umfassend: eine oder mehrere Verarbeitungseinheiten, um eine Position in einem absoluten Koordinatensystem eines ersten Objekts in einer Umgebung zu bestimmen, die einer Ego-Maschine entspricht, die Position eines zweiten Objekts in der Umgebung relativ zu einem ersten Objekt zu bestimmen, während die Ego-Maschine in Bewegung ist, eine Position des zweiten Objekts in dem absoluten Koordinatensystem basierend auf der Position des zweiten Objekts relativ zu dem ersten Objekt und der Position des ersten Objekts in dem absoluten Koordinatensystem zu bestimmen und die Position des zweiten Objekts in das absolute Koordinatensystem zu übertragen.
  19. Prozessor nach Anspruch 18, wobei die eine oder mehreren Verarbeitungseinheiten ferner dazu dienen, die Position des zweiten Objekts zu bestimmen, indem sie die Position des zweiten Objekts relativ zu dem ersten Objekt aus einem oder mehreren Bildern des ersten Objekts und des zweiten Objekts bestimmen.
  20. Prozessor nach Anspruch 18 oder 19, wobei die eine oder mehreren Verarbeitungseinheiten dazu dienen, die Position des zweiten Objekts bestimmen, indem sie eine Position des ersten Objekts relativ zur Ego-Maschine bestimmen, die Position des zweiten Objekts relativ zur Ego-Maschine bestimmen und die Position des zweiten Objekts relativ zu dem ersten Objekt aus der Position des ersten Objekts relativ zum Fahrzeug und der Position des zweiten Objekts relativ zur Ego-Maschine bestimmen.
DE102022107848.5A 2021-04-19 2022-04-01 System und verfahren zur aktualisierung von karten mit hoher auflösung Pending DE102022107848A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/234,397 US20220333950A1 (en) 2021-04-19 2021-04-19 System and methods for updating high definition maps
US17/234,397 2021-04-19

Publications (1)

Publication Number Publication Date
DE102022107848A1 true DE102022107848A1 (de) 2022-10-20

Family

ID=83447474

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022107848.5A Pending DE102022107848A1 (de) 2021-04-19 2022-04-01 System und verfahren zur aktualisierung von karten mit hoher auflösung

Country Status (4)

Country Link
US (1) US20220333950A1 (de)
JP (1) JP2022165372A (de)
CN (1) CN115218888A (de)
DE (1) DE102022107848A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230000655A (ko) * 2021-06-25 2023-01-03 현대자동차주식회사 차량 및 그 제어 방법
US11821738B2 (en) * 2021-11-03 2023-11-21 Gm Cruise Holdings Llc Methodology for establishing time of response to map discrepancy detection event
CN116847059A (zh) * 2022-03-24 2023-10-03 北京小米移动软件有限公司 深度摄像头、深度图像采集装置和多传感器融合***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080243378A1 (en) * 2007-02-21 2008-10-02 Tele Atlas North America, Inc. System and method for vehicle navigation and piloting including absolute and relative coordinates
JP7167876B2 (ja) * 2018-08-31 2022-11-09 株式会社デンソー 地図生成システム、サーバ、方法

Also Published As

Publication number Publication date
JP2022165372A (ja) 2022-10-31
US20220333950A1 (en) 2022-10-20
CN115218888A (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
DE112020002166T5 (de) Simulation realistischer testdaten aus transformierten sensordaten der realen welt für autonome maschinenanwendungen
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE102021126254A1 (de) Überwachen der Aufmerksamkeit und der kognitiven Belastung der Insassen für autonome und halbautonome Fahranwendungen
DE102021121558A1 (de) Auf neuronalen netzen basierende bestimmung der blickrichtung unter verwendung räumlicher modelle
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020006404T5 (de) Planung und steuerung von spurwechseln in autonomen maschinenapplikationen
DE112020001897T5 (de) Trainieren neuronaler Netze unter Verwendung von Grundwahrheitsdaten, die mit Karteninformationen ergänzt wurden, für autonome Maschinenanwendungen
DE112021000422T5 (de) Vorhersage künftiger Trajektorien in Umgebungen mit mehreren Aktoren für autonome Maschinenanwendungen
DE102021117456A1 (de) Systeme und verfahren zur risikobewertung und gerichteten warnung bei fussgängerüberwegen
DE112019000279T5 (de) Steuern autonomer fahrzeuge anhand sicherer ankunftszeiten
DE112019006468T5 (de) Erkennung des abstands zu hindernissen bei anwendungen mit autonomen maschinen
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE112019000070T5 (de) Führen von fahrzeugen durch fahrzeugmanöver unter verwendung von modellen für maschinelles lernen
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE112021001994T5 (de) Modellbasiertes bestärkendes lernen zur verhaltensvorhersage in autonomen systemen und anwendungen
DE102021129528A1 (de) Erkennung von Einsatzfahrzeugen für Anwendungen im Bereich des autonomen Fahrens
DE102019113114A1 (de) Verhaltensgesteuerte wegplanung in autonomen maschinenanwendungen
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe
DE112021000104T5 (de) Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen
DE102022121121A1 (de) Objektverfolgung unter Verwendung von LiDAR-Daten für autonome Maschinenanwendungen
DE102022107848A1 (de) System und verfahren zur aktualisierung von karten mit hoher auflösung

Legal Events

Date Code Title Description
R012 Request for examination validly filed