DE102020117792A1 - Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen - Google Patents

Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen Download PDF

Info

Publication number
DE102020117792A1
DE102020117792A1 DE102020117792.5A DE102020117792A DE102020117792A1 DE 102020117792 A1 DE102020117792 A1 DE 102020117792A1 DE 102020117792 A DE102020117792 A DE 102020117792A DE 102020117792 A1 DE102020117792 A1 DE 102020117792A1
Authority
DE
Germany
Prior art keywords
lane
fence
track
vehicle
data
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
DE102020117792.5A
Other languages
English (en)
Inventor
David Nister
Josh Abbott
Miguel Sainz Serra
Zhaoting Ye
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 DE102020117792A1 publication Critical patent/DE102020117792A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • 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
    • 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
    • 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
    • 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
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • 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/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • 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/30256Lane; Road marking
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Analytical Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)

Abstract

In verschiedenen Beispielen kann der Objektzaun verwendet werden, der Objekten entspricht, die von einem Ego-Fahrzeug erkannt werden, um eine Überlappung der Objektzäüne mit Spuren auf einer Fahroberfläche zu bestimmen. Eine Spurmaske kann erzeugt werden, die den Spuren auf der Fahroberfläche entspricht, und die Objektzäune können mit den Spuren der Spurmaske verglichen werden, um die Überlappung zu bestimmen. Wo sich ein Objektzaun in mehr als einer Spur befindet, kann ein Begrenzungsauswertungsansatz verwendet werden, um ein Verhältnis der Überlappung des Begrenzungszauns und somit des Objekts mit jeder der Spuren zu bestimmen. Die Überlappung mit einer oder mehreren Spuren kann für jedes Objekt verwendet werden, um Spurzuweisungen für die Objekte zu bestimmen, und die Spurzuweisungen können von dem Ego-Fahrzeug verwendet werden, um einen Weg oder eine Trajektorie entlang der Fahroberfläche zu bestimmen.

Description

  • HINTERGRUND
  • Autonome Fahrsysteme und Fahrerassistenzsysteme (Advanced Driver Assistance Systems; ADAS) können Sensoren wirksam einsetzen, wie beispielsweise Kameras, um verschiedene Aufgaben durchzuführen - wie beispielsweise Spurhalten, Spurwechseln, Spurzuweisung, Kamerakalibrierung und - Lokalisierung. Damit autonome und ADAS-Systeme unabhängig und effizient arbeiten, kann beispielsweise ein Verständnis der umliegenden Umgebung des Fahrzeugs - in Echtzeit oder nahezu in Echtzeit - erzeugt werden. Dieses Verständnis kann Informationen bezüglich der Orte von Objekten und/oder Hindernissen in der Umgebung mit Bezug auf verschiedene Abgrenzungen - wie beispielsweise Spuren, Straßenbegrenzungen, Kreuzungen und/oder dergleichen - umfassen. Die Informationen der umliegenden Umgebung können von einem Fahrzeug verwendet werden, wenn Entscheidungen getroffen werden, wie beispielsweise, welchem Weg oder welcher Trajektorie zu folgen ist, ob zu beschleunigen oder abzubremsen ist, ob ein Spurwechsel oder anderes Manöver tatsächlich sicher ist, usw.
  • In herkömmlichen Systemen können Spurzuweisungen (oder (Zuweisungen für einen andere Ort) für Objekte (z.B. Fahrzeuge, Fußgänger usw.) aus Echtzeitbildern interpoliert werden, die unter Verwendung verschiedener Computer-Vision- oder maschinellen Lerntechniken (z.B. von visuellen Indikatoren, die über eine Bildverarbeitung identifiziert werden) verarbeitet werden. Beispielsweise können von einer Fahroberfläche erfasste Bilder, die Spuren und Fahrzeuge umfassen, analysiert werden, um Korrelationen zwischen den Fahrzeugen und den Spuren zu bestimmen. Weil eine Wechselwirkung des gesamten Fahrzeugs mit Spuren verwendet werden kann, können die tatsächlichen Fahrspuren des Fahrzeugs in herkömmlichen Systemen jedoch ungenau gekennzeichnet werden. Beispielsweise kann im Bildraum und abhängig von der Perspektive der Kamera ein Fahrzeug erscheinen, sich in eine benachbarte Spur zu erstrecken (z.B., wenn eine Kamera eine Perspektive eines Fahrzeug zu seiner Linken aufweist, kann die Oberseite des Fahrzeugs erscheinen, sich in linke benachbarten Spuren der Fahrzeugs zu erstrecken), sogar wenn das Fahrzeug tatsächlich in einer einzigen Spur ist. Dies kann nicht die genauesten Ergebnisse zur Verwendung durch die autonomen und/oder ADAS-Systeme bereitstellen, wenn versucht wird die umliegende Umgebung zu verstehen - wodurch die Gesamtwirksamkeit und Zuverlässigkeit dieser Umgebungsinformation vermindert wird.
  • ZUSAMMENFASSUNG
  • Ausführungsformen der vorliegenden Offenbarung betreffen das wirksame Einsetzen von Hindernis- und Spurerkennungen, um Spurzuweisungen für Objekte in einer Umgebung zu bestimmen. Systeme und Verfahren werden offenbart, die das wirksame Einsetzen von Objekterkennungen, Freiraumerkennungen, Objektzaunerkennungen und/oder Spurerkennungen bereitstellen, um Objekte jeweiligen Spuren oder anderen definierten Teilen einer Umgebung effizient und genau zuzuweisen. Im Gegensatz zu herkömmlichen Vorgehensweisen, wie beispielsweise jene, die oben beschrieben sind, stellt das aktuelle System Techniken bereit, um Objekte zu erkennen und Spuren unter Verwendung der Ausgaben von mehreren Sensoren (z.B. Kameras, RADAR-Sensoren, LIDAR-Sensoren usw.) einem Fahrzeug in Echtzeit oder nahezu in Echtzeit zuzuweisen. Ausführungsformen der vorliegenden Offenbarung können Ausgaben von verschiedenen Computer-Vision- oder maschinellen Lernalgorithmen zur Wegerkennung, Spurerkennung und/oder Objekt- oder Hinderniserkennung kombinieren, um Objekte Spuren in einer Umgebung des Fahrzeugs zuzuweisen. Beispielsweise kann das aktuelle System lernen, Pixel und entsprechende Spuren im Bildraum, die von einem Objekt(en) belegt werden, unter Verwendung von Sensordaten von einer beliebigen Anzahl von Sensoren zu erkennen. Die Pixelbelegung eines Objekts kann mit einem Objektzaun oder einem Bereich bestimmt werden, der einem Teil des Objekts entspricht, das eine Spur tatsächlich belegt. Beispielsweise kann eine Grundfläche des Objekts bestimmt werden, so dass lediglich die Grundfläche beim Bestimmen des von dem Objekt belegten Raums verwendet wird. Durch genaueres Identifizieren des Objektzauns oder der Grundfläche des Objekts kann der Prozess zum Bestimmen von Spurzuweisungen vergleichsweise weniger rechenaufwändig sein, weil eine verringerte Anzahl von Pixeln (z.B. Pixel des Objektzauns und nicht des gesamten Fahrzeugs) analysiert werden kann, um Spurzuweisungen zu bestimmen. In Gegenzug kann die Verringerung im Rechenaufwand die Belastung des Bestimmens von Spurzuweisungen für Objekte verringern, um dadurch Verarbeitungsleistung für andere Fahrerassistenzsysteme (advanced driver assistance Systeme; ADAS) oder autonome Aufgaben freizumachen, während gleichzeitig die Laufzeit verringert wird.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zum wirksamen Einsetzen von Hindernis- und Spurerkennungen, um Spurzuweisungen für Objekte in einer Umgebung zu bestimmen, werden ausführlich nachstehend mit Bezugnahme auf die beigefügten Zeichnungsfiguren beschrieben, wobei:
    • 1 ist ein beispielhaftes Datenablaufdiagramm, das einen beispielhaften Prozess zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2A ist eine Veranschaulichung einer beispielhaften Begrenzungsformvorhersage für ein Fahrzeug, das in einem Bild erkannt wird, das von einem Fahrzeugsensor erzeugt wurde, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2B ist eine Veranschaulichung einer beispielhaften zugeschnittenen Begrenzungsform für ein in einem Bild erkannten Fahrzeug gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2C ist eine Veranschaulichung einer beispielhaften befahrbaren Freiraumvorhersage in einer Umgebung gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2D ist eine Veranschaulichung eines Objektzauns für ein Fahrzeug, der unter Verwendung einer befahrbaren Freiraumvorhersage und einer Begrenzungsformvorhersage erzeugt wurde, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 3 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 4 ist eine Veranschaulichung eines Objektzauns für ein Fahrzeug, der durch einen Zaunerzeugungsalgorithmus erzeugt wurde, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 5 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6A ist eine Veranschaulichung von Polypunkten, die Spuren abgrenzen, wie sie durch einen Spurerkennungsalgorithmus erzeugt wurden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6B ist eine Veranschaulichung von Polylinien, die Polypunkte verbinden, die Spuren abgrenzen, wie sie durch einen Spurerkennungsalgorithmus erzeugt wurden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6C ist eine Veranschaulichung einer Spurtriangulation, die an erkannten Spuren durchgeführt wird, um eine Spurmaske zu erzeugen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6D ist eine Veranschaulichung einer Spurmaske, die unter Verwendung von Spurdaten erzeugt wird, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6E ist eine Veranschaulichung einer Spurverlängerung, die an einer Spurmaske durchgeführt wird, um Spuren zu verlängern, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 7A ist eine Veranschaulichung von Eckpunkten, die für einen Objektzaun erzeugt wurden, um eine Überlappung eines Objektzauns mit Spuren einer Spurmaske zu bestimmen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 7B ist einer Veranschaulichung von Eckpunkten, die für einer Objektzaun erzeugt wurden, um eine Überlappung des Objektzauns mit Spuren einer Spurmaske zu bestimmen, wenn der Objektzaun eine Spurbegrenzung kreuzt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 8 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Bestimmen von Verhältnissen von Pixelüberlappungen zwischen einem Objekt und zwei Spuren in einer Umgebung veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 9A ist eine Veranschaulichung eines beispielhaften autonomen Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 9B ist ein Beispiel von Kameraorten und Sichtfeldern für das beispielhafte autonome Fahrzeug von 9A gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 9C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug von 9A gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 9D ist ein Systemdiagramm zur Kommunikation zwischen einem Cloud-basierten Server(n) und dem beispielhaften autonomen Fahrzeug von 9A gemäß einigen Ausführungsformen der vorliegenden Offenbarung; und
    • 10 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung, die für den Gebrauch beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Systeme und Verfahren werden offenbart, die das wirksame Einsetzen von Hindernis- und Spurerkennungen betreffen, um Spurzuweisungen für Objekte in einer Umgebung zu bestimmen. Die hier beschriebenen Systeme und Verfahren können in erweiterter Realität, virtueller Realität, Robotik, Sicherheit und Überwachung, medizinische Bildgebung, autonome Maschinenanwendungen und/oder beliebige andere Technologieräume verwendet werden, bei denen Objekterkennung und Spurzuweisung implementiert werden können. Obwohl die vorliegende Offenbarung mit Bezug auf ein beispielhaftes autonomes Fahrzeug 900 (alternativ hier als „Fahrzeug 900“ oder „autonomes Fahrzeug 900“ bezeichnet, wobei ein Beispiel davon mit Bezug auf 9A-9D beschrieben ist, ist dies nicht bestimmt, beschränkend zu sein. Beispielsweise können die hier beschriebenen Systeme und Verfahren, ohne Beschränkung, von nicht autonomen Fahrzeugen, semi-autonomen Fahrzeugen (z.B. in einem oder mehreren adaptiven Fahrerassistenzsystemen (adaptive driver assistance systems; ADAS)), Robotern, Lagerfahrzeugen, Geländefahrzeugen, Luftschiffen, Booten, Shuttles, Notfall-Einsatzfahrzeugen, Motorrädern, elektrische oder motorisierte Fahrrädern, Flugzeugen, Baufahrzeugen, Unterwasserfahrzeugen, Drohnen und/oder anderen Fahrzeugtypen verwendet werden. Obwohl die hier beschriebenen Erkennungen primär Objekte betreffen, wie beispielsweise Fahrzeuge und/oder Fußgänger, ist die vorliegende Offenbarung des Weiteren nicht bestimmt, lediglich auf diese Erkennungen beschränkt zu sein. Für nicht beschränkende Beispiele können die hier beschriebenen Prozesse zum Erkennen beliebiger Objekte oder Merkmale, wie beispielsweise, ohne Beschränkung, Straßenschilder, Flugzeuge, Boote, Shuttles, Fahrräder, Motorräder, Verkehrsampeln, Gepäck, Zeichen, Masten, Tiere, Bäume, Zeichen, Buchstaben, Artikel, Produkte, Barrieren, digitale Wasserzeichen und/oder anatomische Objekte verwendet werden.
  • Wie obenstehend beschrieben, stellt das aktuelle System im Gegensatz zu herkömmlichen Systemen genaue und rechenmäßig effiziente Vorgehensweisen bereit, um Objekte zu erkennen und unter Verwendung der Ausgaben von mehreren Sensoren (z.B. Kameras, LIDAR-Sensoren, RADAR-Sensoren, SONAR-Sensoren usw.) eines Fahrzeugs in Echtzeit oder nahezu in Echtzeit Spuren zuzuweisen. Beispielsweise können vor der Spurzuweisung Objektzäune oder Grundflächen bestimmt werden. In einigen Ausführungsformen kann der Objektzaun unter Verwendung einer Kombination von Eingaben bestimmt werden. Beispielsweise kann eine Objekterkennungseingabe unter Verwendung eines maschinellen Lernmodells (z.B. eines faltenden neuronalen Netzwerks (CNN), das trainiert wird, um Objekte zu erkennen) und/oder eines Computer-Vision-Objekterkennungsalgorithmus erzeugt werden. Die Objekterkennungseingabe kann eine Begrenzungsform umfassen, wie beispielsweise einen Kasten, der einem Objekt entspricht. In einigen Beispielen kann mindestens ein Teil der Begrenzungsform beschnitten werden, wie beispielsweise, um die Begrenzungsform auf ein unteres Fünftel der Form, in einem nicht beschränkenden Beispiel, zu verringern. Eine weitere Eingabe kann eine Eingabe eines befahrbaren Freiraums umfassen, der auf ähnliche Weise unter Verwendung eines maschinellen Lernmodells und/oder eines Computer-Vision-Algorithmus erzeugt werden kann. Die Eingabe des befahrbaren Freiraums kann verwendet werden, um einen Teil der Begrenzungsform zu beschneiden (oder weiter zu beschneiden) oder herauszuarbeiten, der dem befahrbaren Freiraum entspricht. Als Ergebnis kann der verbleibende Teil der Begrenzungsform (z.B. die Begrenzungsform mit dem herausgearbeiteten befahrbaren Freiraum) als der Objektzaun oder die Grundfläche innerhalb eines zweidimensionalen (2D) Bildraums bezeichnet werden. Dieser Prozess kann für jedes Objekt im Sichtfeld oder sensorischen Feld der Sensoren eines Ego-Fahrzeugs durchgeführt werden. Unter Verwendung dieses Verfahrens können falsche positive Spurzuweisungen vermindert werden, wenn ein oberstes oder ein oberes Teil eines Objekts unwahrscheinlicher Weise tatsächlich eine Spur in Weltraum kreuzt (obwohl es erscheinen kann, dass es eine Spur im Bildraum kreuzt, was ein Nachteil von herkömmlichen Vorgehensweisen ist).
  • In einigen Beispielen kann der Objektzaun unter Verwendung eines Zaunerkennungsalgorithmus erzeugt werden, der speziell programmiert ist (oder trainiert ist, in einem Beispiel, bei dem Algorithmus ein maschinelles Lernmodell ist), um Objekte zu erkennen und Zäune für die Objekte zu erzeugen. Beispielsweise können Sensordaten von einer beliebigen Anzahl von Sensoren (z.B. Kameras, RADAR-Sensoren, LIDAR-Sensoren, SONAR-Sensoren usw.) als Eingaben in einen Zaunerkennungsalgorithmus verwendet werden und der Zaunerkennungsalgorithmus kann den Objektzaun im Weltraum (z.B. dem dreidimensionalen Weltraum) erzeugen. Der Objektzaun kann von einem dreidimensionalen (3D) Weltraum in einen 2D-Bildraum unter Verwendung intrinsischer und/oder extrinsischer Parameter der Sensoren umgewandelt werden, welche die Sensordaten erzeugten.
  • In einigen Ausführungsformen können zukünftige Orte von Objekten in der Umgebung unter Verwendung von Sensordaten (z.B. LIDAR-Daten, SONAR-Daten, Bilddaten, RADAR-Daten usw.) zusätzlich zu dem Objektzaun bestimmt werden. Beispielsweise können, sobald ein Objektzaun bestimmt ist, die Sensordaten verwendet werden, um einen Weg oder eine Trajektorie der Objekte in der Umgebung zu bestimmen, um einen oder mehrere zukünftige Orte (z.B. 0,5 Sekunden in der Zukunft, 1 Sekunde in der Zukunft usw.) zu bestimmen, und der Objektzaun kann auf den (die) zukünftigen Ort(e) angewendet werden. Von daher kann die Verwendung eines aktuellen Orts von Objekten und Geschwindigkeits- und/oder Beschleunigungsdaten, die den Objekten entsprechen, ein oder mehrere Algorithmen und/oder maschinelle Lernmodelle verwendet werden, um zukünftige Orte der Objekte und somit Orte von entsprechenden Objektzäunen für die Objekte an den zukünftigen Orten zu bestimmen. In einigen Beispielen kann ein Skalierungsfaktor verwendet werden, wenn sich der zukünftige Ort der Objekte mit Bezug auf den Ort des Fahrzeugs ändert (z.B., wenn sich ein Objekt weiter weg bewegt, kann der Objektzaun von einer aktuellen Größe verkleinert werden, wenn sich ein Objekt beispielweise als Ergebnis des Abbremsens näher heran bewegt, kann der Objektzaun vergrößert werden und so weiter). Diese Information kann dann verwendet werden, um dem Fahrzeug Spuren oder anderen Teile der Umgebung mitzuteilen, wo sich die Objekte zu einem zukünftigen Zeitpunkt befinden können, um bei der Trajektorien- oder Wegplanung, Hindernisvermeidung und/oder anderen Operationen des Fahrzeugs zu helfen.
  • Der Objektzaun kann dann in Kombination mit Spurdaten verwendet werden, um die Überlappung des Objektzauns mit den Spuren in der Umgebung (z.B. der Fahroberfläche) zu bestimmen - um somit die jedem Objekt zugeordnete(n) Spur(en) zu bestimmen. Die Spurdaten können in der Form eines(von) Spurgraphs(en) und/oder Karten (z.B. Navigationsebenenkarten, hochaufgelösten Karten (HD-Karten) und/oder dergleichen) empfangen werden. Die Spurdaten können verwendet werden, um eine Spurmaske zu erzeugen, welche die Pixel im 2D-Bildraum darstellt, die jeder Spur entsprechen. In einigen Beispielen können die Spurgraphen, die Karten und/oder eine Kombination davon verwendet werden, um die Anzahl und den Ort von Spuren in der Umgebung zu bestimmen. Beispielsweise kann ein Spurmaskenalgorithmus verwendet werden, der die Spurdaten als Eingabe empfängt und die Spurmasken erzeugen kann. In Ausführungsformen können die Spuren durch Polylinien definiert sein (z.B. die Punkte entlang Linien umfassen, welche die Spuren abgrenzen). Von daher kann, um eine Maske aus den Polylinien zu erzeugen, ein Triangulationsverfahren in einigen Ausführungsformen verwendet werden. Das Triangulationsverfahren kann Punkte entlang der Polylinien verbinden (z.B. jeden zweiten Punkt in einer kreuzweisen Art von einer Polylinie zu der anderen Polylinie für jede Spur). Als ein nicht beschränkendes Beispiel kann das Triangulationsverfahren eine monotone Polygontriangulation umfassen. Das Ergebnis der Triangulation kann Polygone im 2D-Bildraum umfassen, die jeweils einer Spur entsprechen, so dass jedes Pixel innerhalb eines Polygons für eine gegebene Spur bestimmt ist, dieser Spur zu entsprechen.
  • In einigen Beispielen kann kein volles oder brauchbares Ausmaß von Spuren während der Spurmaskenerzeugung bestimmt werden. In derartigen Beispielen können die Spuren unter Verwendung eines Spurverlängerungsalgorithmus (z.B. Kurvenanpassung, Spurextrapolation usw.) verlängert werden. Durch Verlängern der Spuren können falsche Positive verringert werden. In anderen Beispielen kann es keine Spurerkennungsdaten zur Verwendung durch das System geben. In derartigen Beispielen können virtuelle Spuren erzeugt werden. Beispielsweise können mindestens drei Spuren in einigen Ausführungsformen erzeugt werden, welche die Ego-Spur (z.B. eine Spur des Ego-Fahrzeugs) und eine benachbarte Spur zu beiden Seiten umfassen. Durch Erzeugen von virtuellen Spuren können, sogar wenn nicht vollständig genau, Objekte virtuellen Spuren zugewiesen werden, um dem Ego-Fahrzeug ein besseres Verständnis von Orten von Objekten relativ zu einem Weg (z.B. einer Ego-Spur) des Ego-Fahrzeugs bereitzustellen.
  • Sobald die Objektzäune und die Spurmaske bestimmt sind, können die Objekte den Spuren durch Bestimmen der Überlappung zwischen den Pixeln des Objektzauns und der Spurmaske im 2D-Bildraum zugeordnet werden. Dem Objekt kann(können) eine Spur(en) in der Spurmaske basierend auf einer Überlappung von Pixeln im Objektzaun mit Spurpixeln in der Spurmaske zugewiesen werden. In einigen Beispielen kann jedes Objekt einer Spur(en) basierend auf einer einfachen Pixelanzahl zugewiesen werden. In anderen Beispielen kann der Objektzaun durch Eckpunkte (oder dazu entsprechende Pixel) entlang eines Umfangs des Objektzauns dargestellt werden. Wo ein Objekt in einer einzigen Spur ist, können die Pixelabstände zwischen jedem Satz von zwei Pixeln am Umfang berechnet und normiert werden, um ein Verhältnis der Kreuzung pro Spur zu erzeugen, das 1/1 für eine einzige Spur sein würde. Wo ein Objekt in mehr als einer Spur ist, kann ein Satz von Punkten, der die Spurbegrenzung kreuzt, bestimmt werden. Sobald die beiden Pixel bestimmt sind, kann ein neuer Eckpunkt an der Kreuzung zwischen den beiden Pixeln erzeugt werden. Diese Pixel können dann verwendet werden, um den Abstand zwischen dem neuen Eckpunkt und jedem anderen Pixel am Umfang oder Eckpunkt auf jeder Seite der Kreuzung zu bestimmen. Eine erste Summe von Abständen zwischen dem neuen Eckpunkt und einem ersten Satz von Pixeln am Umfang für eine erste Spur kann berechnet werden und eine zweite Summe von Abständen zwischen dem neuen Eckpunkt und einem zweiten Satz von Pixeln am Umfang für eine zweite Spur kann berechnet werden. Diese Summen können dann in einigen Ausführungsformen normiert werden. Letztlich kann ein Verhältnis der Kreuzung pro Spur unter Verwendung der ersten Summe und der zweiten Summe bestimmt werden. Eine Kenntnis des Verhältnisses der Kreuzung und wie sich das Verhältnis von Einzelbild zu Einzelbild ändert, kann eine Angabe der Trajektorie des Objekts (z.B. Wechseln von Spuren, Ausscheren, Spurhalten usw.) bereitstellen.
  • In einigen Ausführungsformen kann eine zeitliche Glättung verwendet werden, um vorausgehende Spurzuweisungen für vorherige Einzelbilder für ein Objekt wirksam einzusetzen. Weil Spurzuweisungen genauer sein können, wenn ein Objekt näher an einem Fahrzeug ist, können, wenn sich das Fahrzeug weiter weg bewegt, die vorherigen Spurzuweisungen beispielsweise wirksam eingesetzt werden, um genauere Vorhersagen der Objektspurzuweisung bei weiteren Abständen bereitzustellen, wo Spuren tendenziell erscheinen, im 2D-Bildraum ineinander überzugehen.
  • Letztlich können Daten, welche die Spurzuweisungen für Objekte darstellen, dann kompiliert werden und an eine Wahrnehmungsschicht, eine Weltmodell-Verwaltungsschicht, eine Planungsschicht, eine Steuerschicht und/oder eine andere Schicht eines Software-Stapels für das autonome Fahren gesendet werden, um einem autonomen Fahrzeug und/oder einem ADAS-fähigen Fahrzeug beim Navigieren der Fahroberfläche sicher und wirksam zu helfen.
  • Mit Bezugnahme auf 1 ist 1 ein beispielhaftes Datenablaufdiagramm, das einen beispielhaften Prozess 100 zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Während die mit Bezug auf 1 beschriebenen Erkennungsarten Spurerkennungen sind, ist dies nicht bestimmt, beschränkend zu sein, und dient lediglich beispielhaften Zwecken. Beispielsweise kann der Prozess 100 verwendet werden, um Wege, Pfade, Reihen, Linien und/oder andere Teile einer Umgebung zu erkennen und Objekte dazu zuzuweisen, ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • Der Prozess 100 kann das Erzeugen und/oder Empfangen von Sensordaten 102 von einem oder mehreren Sensoren des Fahrzeugs 900 umfassen. Die Sensordaten 102 können von dem Fahrzeug 900 und innerhalb des Prozesses 100 verwendet werden, um Objekten Spuren oder andere definierte Bereiche einer Umgebung in Echtzeit oder nahezu in Echtzeit zuzuweisen. Die Sensordaten 102 können, ohne Beschränkung, Sensordaten 102 von beliebigen der Sensoren des Fahrzeugs 900 (und/oder anderen Fahrzeugen oder Objekten, wie beispielsweise Robotervorrichtungen, VR-Systemen, AR-Systemen usw., in einigen Beispielen) umfassen. Beispielsweise und mit Bezugnahme auf 9A-9C können die Sensordaten 102 die Daten umfassen, die ohne Beschränkung, von Sensoren globaler Navigationssatellitensystemen 958 (z.B. Global Positioning System Sensor(en); GNSS), RADAR-Sensor(en) 960, Ultraschallsensor(en) 962, LIDAR-Sensor(en) 964, Trägheitsmesseinheit(en) (IMU)-Sensor(en) 966 (z.B. Beschleunigungssensor(en), Gyroskop(en), Magnetkompass(en), Magnetometer(n), usw.), Mikrophon(en) 996, Stereokamera(s) 968, Weitwinkelkamera(s) 970 (z.B. Fisheye-Kameras), Infrarot-Kamera(s) 972, Surround-Kamera(s) 974 (z.B. 360-Grad-Kameras), Fernbereich- und/oder Mittelbereich-Kamera(s) 998, Geschwindigkeitssensor(en) 944 (z.B. zur Messung der Fahrzeuggeschwindigkeit 900), Schwingungssensor(en) 942, Lenksensor(en) 940, Bremssensor(en) (z.B. als Teil des Bremssensorsystems 946) und/oder anderen Sensortypen erzeugt werden.
  • In einigen Beispielen können die Sensordaten 102 die Sensordaten umfassen, die durch einen oder mehrere nach vorne gerichteten Sensoren, wie beispielsweise Kameras (z.B. eine mittig oder nahe-mittig angebrachte Kamera(s)), und/oder anderen Sensortypen (z.B. Stoßstangen-angebrachte RADAR-Sensoren) erzeugt werden. Diese Sensordaten 102 können für Computer-Vision und/oder Wahrnehmung beim Navigieren - z.B. innerhalb einer Spur, durch einen Spurwechsel, durch eine Abbiegung, durch eine Kreuzung usw. - nützlich sein, weil eine nach vorne gerichtete Kamera ein Sichtfeld (z.B. das Sichtfeld der nach vorne gerichtete Stereokamera 968 und/oder der Weitwinkelkamera 970 von 9B) umfassen kann, das sowohl eine aktuelle Fahrspur des Fahrzeugs 900, eine benachbarte Fahrspur(en) des Fahrzeugs 900 und/oder Begrenzungen der Fahroberfläche umfasst. In einigen Beispielen können zusätzlich zu den nach vorne gerichteten Sensoren, Seitenansichtssensoren und/oder Rückansichtssensoren eingesetzt werden, wie beispielsweise, wo die Spurzuweisungen Objekte zu einer Seite des Fahrzeugs 900 und/oder zur Rückseite des Fahrzeugs 900 zu umfassen haben. In einigen Beispielen können mehr als eine Kamera oder ein anderer Sensor (z.B. ein LIDAR-Sensor 964, ein RADAR-Sensor 960 usw.) verwendet werden, um mehrere Sichtfelder (z.B. die Sichtfelder der Fernbereichskameras 898, der nach vorne gerichtete Stereokamera 868 und/oder der nach vorne gerichteten Weitwinkelkamera 870 von 8B) und/oder sensorische Felder (z.B. einen LIDAR-Sensor 964, einen RADAR-Sensor 960 usw.) aufzunehmen.
  • Die Sensordaten 102 können Bilddaten umfassen, die ein Bild(er) darstellen, Bilddaten, die ein Video (z.B. Videoschnappschüsse) darstellen und/oder Sensordaten, die Darstellungen von sensorischen Feldern von Sensoren (z.B. Tiefenkarten für LIDAR-Sensoren, einen Wertegraph für Ultraschallsensoren usw.) darstellen. Wo die Sensordaten 102 Bilddaten umfassen, kann eine beliebige Art von Bilddatenformat verwendet werden, wie beispielsweise und ohne Beschränkung, komprimierte Bilder, wie beispielsweise in Formaten der Joint Photographic Experts Group (JPEG) oder der Luminance/Chrominance (YUV), komprimierte Bilder als Einzelbilder, die von einem komprimierte Videoformat stammen, wie beispielsweise und ohne Beschränkung, komprimierte Bilder wie in den Joint Photographic Experts Group (JPEG)-Formaten oder Luminanz/Chrominanz (YUV)-Formaten, komprimierte Bilder als Einzelbilder, die aus einem komprimierten Videoformat wie H.264/Advanced Video Coding (AVC) oder H.265/High Efficiency Video Coding (HEVC) stammen, Rohbilder, wie sie beispielsweise von Red Clear Blue (RCCB), Red Clear Clear (RCCC) oder einem anderen Typ eines Bildsensors stammen. Außerdem können in einigen Beispielen die Sensordaten 102 innerhalb des Prozesses 100 ohne eine beliebige Vorverarbeitung (z.B. in einem rohen oder erfassten Format) verwendet werden, während in anderen Beispielen die Sensordaten 102 eine Vorverarbeitung durchmachen können (z.B. Rauschabgleich, Demosaicing, Skalieren, Zuschneiden, Augmentation, Weißabgleich, Tonkurveneinstellung usw., wie beispielsweise unter Verwendung eines Sensordatenvorprozessor (nicht gezeigt)). Wie hier verwendet, können die Sensordaten 102 nicht verarbeitete Sensordaten, vorverarbeitete Sensordaten oder eine Kombination davon referenzieren.
  • Die Sensordaten 102 können verwendet werden, um einen Objektzaun 110 für ein oder mehrere Objekte in einer Umgebung zu erzeugen, wie von den Sensoren des Fahrzeugs 900 erfasst. Der Objektzaun 110 kann unter Verwendung eines beliebigen einer Anzahl von unterschiedlichen Verfahren erzeugt werden, wie beispielsweise jene, die hier beschrieben sind, jedoch nicht darauf beschränkt sein. In einigen Beispielen kann der Objektzaun 110 unter Verwendung einer Kombination von Freiraumerkennung 106 und Objekterkennung 104 erzeugt werden, während in anderen Beispielen der Objektzaun 110 unter Verwendung eines Zaunerzeugungsalgorithmus 108 erzeugt werden kann. In beiden Beispielen kann der Objektzaun 110 als eine Eingabe zur Spurerkennung und Spurzuweisung innerhalb des Prozesses 100 verwendet werden.
  • In Ausführungsformen, bei denen die Objekterkennung 104 und die Freiraumerkennung 106 verwendet werden, um den Objektzaun 110 zu erzeugen, können die Sensordaten 102 als eine Eingabe in sowohl die Objekterkennung 104 als auch die Freiraumerkennung 106 verwendet werden. Beispielsweise kann die Objekterkennung 104 die Sensordaten 102 verwenden (z.B. die Bilddaten von einer oder mehreren Kameras, LIDAR-Daten von einem oder mehreren LIDAR-Sensoren, RADAR-Daten von einem oder mehreren RADAR-Sensoren usw.), um Objekte (z.B. Fahrzeuge, Fußgänger, Fahrräder, Trümmer usw.) zu erkennen und Begrenzungsformen (z.B. Begrenzungskasten, Kreise, Polygone usw.) für die erkannten Objekte zu erzeugen. Die Objekterkennung 104 kann ein maschinellen Lernmodells (z.B. ein tiefes neuronales Netzwerk (DNN), wie beispielsweise ein faltendes neuronales Netzwerk (CNN)), einen Computer-Vision-Algorithmus und/oder einen anderen Objekterkennung-Algorithmus-Typ verwenden, um die Objekte zu erkennen und die Begrenzungsformen für die Objekte zu erzeugen. Wo ein maschinelles Lernmodell zur Objekterkennung 104 verwendet wird, kann das maschinelle Lernmodelle, ohne Beschränkung, ein oder mehrere Modelle maschinellen Lernens mit linearer Regression, logistischer Regression, Entscheidungsbäumen, Support Vector Machines (SVM), Naive Bayes, k-nearest neighbor (Knn), K-Mittelwert-Clustering, random forest, Dimensionalitätsreduzierungsalgorithmen, Gradientenverstärkungsalgorithmen, neuronale Netzwerke (z.B., Auto-Encoder, Faltungs-, Wiederholungs-, Wahrnehmungsmodelle, Long/Short Term Memory (LSTM), Hopfield, Boltzmann, deep belief, dekonvolutionär, generativ adversiell, Liquid State Machine, usw.), und/oder andere Typen von Modellen für maschinelles Lernen umfassen.
  • Die Begrenzungsformen, die unter Verwendung der Objekterkennung 104 ausgegeben wurden, können Teile eines(von) Bildes(ern) (durch die Sensordaten 102 dargestellt) darstellen, die Objekten (z.B. auf einer Fahroberfläche des Fahrzeugs 900) entsprechen. Beispielsweise und mit Bezugnahme auf die Visualisierung 200 von 2A kann eine Begrenzungsform 204 für ein Fahrzeug 202 - unter Verwendung der Objekterkennung 104 - erzeugt werden, um ein Teil eines Bildes zu kennzeichnen, das dem Fahrzeug 202 entspricht. In einem nicht beschränkenden Beispiel kann die Ausgabe der Objekterkennung 104 Punkte (z.B. Pixel) in dem(den) Bild(ern) umfassen, wo bestimmt wird, dass sich Objekte befinden. In derartigen Beispielen können die Punkte jeden der Punkte oder jedes der Pixel innerhalb der Begrenzungsform umfassen. Von daher kann die Begrenzungsform, zusätzlich zu einer innerhalb der Begrenzungsform erzeugten Objektmaske, jedes der dem Objekt entsprechenden Pixel definieren. Dieser Prozess der Objekterkennung 104 kann für eine beliebige Anzahl von Objekten in jedem Einzelbild ausgeführt werden.
  • In einigen Ausführungsformen kann, um den Objektzaun 110 zu bestimmen, mindestens ein Teil der Begrenzungsform für jedes erkannte Objekt beschnitten werden. Weil beispielsweise mindestens etwas von dem Objekt innerhalb der Begrenzungsform nicht einer Grundfläche des Objekts auf der Fahroberfläche entsprechen kann (z.B. kann sich im 2D-Bildraum ein oberer Teil des Fahrzeugs 202 über eine Fahrspur hinaus erstrecken), kann mindestens ein Teil der Begrenzungsform beschnitten werden. Wie in der Visualisierung 220 von 2B veranschaulicht, kann die Begrenzungsform 204 beschnitten werden, um eine dem Fahrzeug 202 entsprechende zugeschnittene Begrenzungsform 222 zu erzeugen. In einigen Beispielen kann ein vordefinierter Teil, Betrag oder Prozentsatz der Begrenzungsform beschnitten werden, wie beispielsweise, ohne Beschränkung, eine obere Hälfte, ein oberes drei Viertel, ein oberes vier Fünftel, ein oberes zwei Viertel und ein unteres Viertel usw. der Begrenzungsform Durch Zuschneiden mindestens eines Teils der Begrenzungsform können falsche Negative verringert werden, wenn die resultierende zugeschnittene Begrenzungsform einer Grundfläche des Fahrzeugs 202 auf der Fahroberfläche genauer entsprechen kann. Zusätzlich zu den Vorteilen der Genauigkeit mit Bezug auf eine Grundfläche eines Objekts kann das Zuschneiden eines Teils der Begrenzungsform ebenfalls den Rechenaufwand zum Bestimmen des Objektzauns 110 verringern (z.B. durch Verringern der wirksamen Fläche für die Anwendung der Freiraumerkennung 106) und/oder Einsetzen des Objektzauns 110 für Spurzuweisungen (z.B. durch Verringern der Anzahl von Pixeln in dem ausgeschnittenen Teil der Begrenzungsform, der bei der Berechnung verwendet werden kann).
  • Wie hier beschrieben, können Ausgaben der Freiraumerkennung 106 in Kombination mit der Begrenzungsform und/oder der zugeschnittenen Begrenzungsform verwendet werden, die während der Objekterkennung 104 erzeugt wurden. Beispielsweise können die Sensordaten 102 von einem oder mehreren Computer-Vision-Algorithmen, maschinellen Lernmodellen und/oder anderen Erkennungsalgorithmen für befahrbaren Freiraum verwendet werden, um Teile einer Umgebung innerhalb eines Sichtfelds und/oder Sensorfeldern von Sensoren des Fahrzeugs 900 zu bestimmen. Die maschinellen Lernmodelle, die für die Freiraumerkennung 106 verwendet werden können, können jene umfassen, die hier beschrieben sind (z.B. mit Bezug auf die obige Objekterkennung 104), müssen jedoch nicht darauf beschränkt sein. Als ein nicht beschränkendes Beispiel kann der befahrbare Freiraum unter Verwendung eines Verfahrens bestimmt werden, das in der U.S. Non-Provisional Application No. 16/355,328 beschrieben ist, die am 15. März 2019 eingereicht wurde und hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen ist.
  • Die Ausgabe der Freiraumerkennung 106 kann Teile der Umgebung darstellen - die in Bildern repräsentiert werden, die durch eine Kamera(s) des Fahrzeugs 900 erfasst wurden - die befahrbarem Freiraum und/oder nicht befahrbarem Raum auf einer Fahroberfläche entsprechen. Der befahrbare Freiraum kann Teile der Umgebung, die von dem Fahrzeug 900 passierbar oder befahrbar sind (z.B. kann eine Straße befahrbar sein, während ein Bürgersteig oder Gebäude nicht befahrbar sein kann) sowie auch nicht befahrbaren Raum (z.B. ein Gebäude, ein Park usw.) darstellen. Die Visualisierung 230 von 2C kann mindestens einen Teil der Freiraumerkennung 106 darstellen, wie sie auf die zugeschnittene Begrenzungsform 222 angewendet wird. Beispielsweise kann der Teil des befahrbaren Freiraums 232, der während der Freiraumerkennung 106 bestimmt wurde, aus der zugeschnittenen Begrenzungsform 222 ausgeschnitten werden, um den Objektzaun 110 zu erzeugen (wie in der Visualisierung 240 von 2D dargestellt). Von daher kann mit Bezug auf 2C der Objektzaun 110 den nicht befahrbaren Raum 234 innerhalb der zugeschnittenen Begrenzungsform 222 darstellen - nachdem der befahrbare Freiraum 232 ausgeschnitten ist. In einem Beispiel, bei dem die volle Begrenzungsform 204 verwendet wird, kann der befahrbare Freiraum innerhalb der vollen Begrenzungsform 204 ausgeschnitten werden. In einigen Beispielen kann die Freiraumerkennung 106 Punkte (z.B. Pixel) in dem(den) Bild(ern) umfassen, wo befahrbarer Freiraum und/oder nicht befahrbarer Raum erkannt und das Zuschneiden der Begrenzungsformen und/oder die Erzeugung des Objektzauns 110 unter Verwendung der Punkte durchgeführt werden kann. In einem derartigen Beispiel können die Punkte, die einem befahrbaren Freiraum entsprechen, von den Punkten entfernt werden, die der Begrenzungsform (oder zugeschnittenen Version davon) entsprechen, um den Objektzaun 110 zu erzeugen. Der Ausschneideprozess kann für jedes Objekt durchgeführt werden, das in dem(den) einen Eingabebild(ern) erkannt wird, welches(die) das Sichtfeld oder das sensorische Feld der Sensoren von Fahrzeug 900 darstellen.
  • In einigen Ausführungsformen kann zusätzlich zu oder anstelle der Verwendung der Objekterkennung 104 und der Freiraumerkennung 106 der Objektzaun 110 unter Verwendung des Zaunerzeugungsalgorithmus 108 erzeugt werden. Der Zaunerzeugungsalgorithmus 108 kann ein maschinelles Lernmodell, einen Computer-Vision-Algorithmus und/oder einen Objekterkennungsalgorithmus umfassen. Wo ein maschinelles Lernmodell verwendet wird, können die maschinellen Lernmodelle die hier beschriebenen maschinellen Lernmodellen umfassen (z.B. mit Bezug auf die obige Objekterkennung 104), jedoch nicht darauf beschränkt sein. Der Zaunerzeugungsalgorithmus 108 kann trainiert und/oder programmiert werden, um die Sensordaten 102 als Eingabe zu verwenden, um Objekte zu erkennen und Objektzäune 110 (z.B., wie in 2D anschaulich dargestellt) für jedes erkannte Objekt zu erzeugen. Beispielsweise können Sensordaten 102 von einer beliebigen Anzahl von Sensoren (z.B. Kameras, RADAR-Sensoren 960, LIDAR-Sensoren 964, Ultraschallsensoren 962 usw.) als Eingaben in den Zaunerzeugungsalgorithmus 108 verwendet werden. Der Zaunerzeugungsalgorithmus 108 kann in einigen Ausführungsformen den Objektzaun 110 in einem 2D- oder 3D-Weltraum erzeugen, und intrinsische und/oder extrinsische Parameter der entsprechendes Sensoren, welche die Sensordaten 102 erzeugte, können verwendet werden, um den Objektzaun 110 vom Weltraum in den Bildraum umzuwandeln. Um die Beziehung zwischen Weltraum-Koordinaten und Bildkoordinaten genau zu bestimmen, kann beispielsweise eine 3D-in-2D-Projektion verwendet werden. Beispielsweise können die Sensoren unter Verwendung eines oder mehrerer intrinsischer (z.B. Brennweite, f; optisches Zentrum (uo, vo); Pixel-Seitenverhältnis, α; Schräglage, s; usw.), extrinsischen (z.B. 3D-Rotation, R; Translation, t; usw.) Kameraparameter kalibriert werden. Außerdem können in einigen nicht beschränkenden Beispielen eine oder mehrere Begrenzungen ebenfalls auferlegt werden, wie beispielsweise erforderlich machen, dass der 3D-Punkt immer auf der Grundebene der Fahroberfläche liegt. In einigen Beispielen können einer oder mehrere der Parameter des(der) Sensor(en) dynamisch sein (z.B. aufgrund Schwingung, Bewegung, Orientierung usw.) und die 3D-in-2D-Projektion kann als Ergebnis dynamisch aktualisiert werden.
  • In einigen Ausführungsformen kann der(die) Objektzaun(zäune) 110 als Punkte (z.B. Pixel und/oder Eckpunkte) eines Polygons erzeugt werden, die dem(den) Objektzaun(zäunen) 110 entsprechen. Von daher kann durch Verbinden der Eckpunkte ein dem(den) Objektzaun(zäunen) 110 entsprechendes Polygon erzeugt werden und die Pixel innerhalb des(der) Objektzaun(zäune) 110 können bestimmt werden, dem Objekt zur Spurzuweisung zu entsprechen. Der(die) Objektzaun(zäune) 110 kann(können) vor der Spurzuweisung 120 - unter Verwendung beliebiger Verfahren, wie beispielsweise jene, die hier beschrieben sind - erzeugt werden, um die Genauigkeit und Zuverlässigkeit von Spurzuweisungsvorhersagen durch genaueres Definieren der Form oder Grundfläche des Objekts auf einer Fahroberfläche zu verbessern. Beispielsweise können, sobald die Objektzäune 110 bestimmt sind, die Objektzäune 110 verwendet werden - in Kombination mit den Spurmasken 116 - um eine Überlappungsbestimmung 118 für die Spurzuweisung 120 zu machen.
  • In einigen Ausführungsformen können zukünftige Orte und/oder Zuweisungen von Objekten unter Verwendung der Sensordaten 102 (z.B. LIDAR-Daten, SONAR-Daten, Bilddaten, RADAR-Daten usw.) und des Objektzauns 110 bestimmt werden. Sobald der Objektzaun 110 bestimmt ist, können beispielsweise die Sensordaten 102 - die für Geschwindigkeit, Geschwindigkeitsvektor, Beschleunigung, Gierrate usw. repräsentativ sind - verwendet werden, um einen zukünftigen Weg oder Trajektorie der Objekte in der Umgebung zu bestimmen, um einen oder mehrere zukünftige Orte (z.B. 0,5 Sekunden in der Zukunft, 1 Sekunde in der Zukunft usw.) zu bestimmen. Beispielsweise kann ein lineares dynamisches Modell (z.B. zukünftige Position = aktuelle Position + (Geschwindigkeitsvektor x Zeit)), ein konstantes Beschleunigungsmodell, ein konstantes Abbiegeratenmodell, ein maschinelles Lernmodell, ein anderer Algorithmustyp und/oder eine Kombination davon die Sensordaten (oder dadurch dargestellte Daten) verwenden, um einen zukünftigen Ort(e) (z.B. im Weltraum) des Objekts zu bestimmen. Sobald der(die) zukünftige(n) Ort(e) bekannt sind, kann der Objektzaun 110 (z.B. im Bildraum) unter Verwendung von Information des(der) zukünftigen Orts(e) und des Objektzauns 110 erzeugt werden. In einigen Beispielen kann ein Skalierungsfaktor verwendet werden, wenn sich der(die) zukünftige(n) Ort(e) des Objekts mit Bezug auf den Ort des Fahrzeugs 900 ändert (z.B. während sich ein Objekt weiter weg bewegt, kann der Objektzaun 110 von einer aktuellen Größe verkleinert werden, wenn sich ein Objekt als Ergebnis des Abbremsens näher heran bewegt, kann der Objektzaun 110 beispielsweise vergrößert werden und so weiter). Diese Information kann dann verwendet werden, um dem Fahrzeug 900 Spuren oder anderen Teile der Umgebung mitzuteilen, wo sich die Objekte zu einem zukünftigen Zeitpunkt befinden können, um bei der Trajektorien- oder Wegplanung, Hindernisvermeidung und/oder anderen Operationen des Fahrzeugs zu helfen. Die Bestimmung von Spurzuweisungen 120 kann für zukünftige Objektzaunorte ähnlich sein wie für aktuelle Objektzaunorte und die Kombination von aktuellen und zukünftigen Objektzäunen 110 für ein Fahrzeug kann ein ausführlicheres Verständnis der Flächen oder Volumen innerhalb der Umgebung bereitstellen, die das Objekt prädiziert ist, im Laufe der Zeit zu belegen (z.B. über die nächste Sekunde, zwei Sekunden usw.).
  • Eine Spurerkennung 112 kann die Sensordaten 102 und/oder Spurdaten 126 verwenden, um Orte einer oder mehreren Spuren, Einteilungen, Aufteilungen und/oder Begrenzungen einer Fahroberfläche zu bestimmen. Beispielsweise kann die Spurerkennung 112 einen Computer-Vision-Algorithmus, ein maschinelles Lernmodell und/oder einen Objekterkennungsalgorithmus zum Bestimmen der Orte von Spuren (oder Spurlinien), Einteilungen, Aufteilungen, Begrenzungen und/oder anderen Bereichen einer Fahroberfläche verwenden. Wo ein maschinelles Lernmodell verwendet wird, kann das maschinelle Lernmodelle umfassen, jedoch nicht auf die hier beschriebenen maschinellen Lernmodellen (z.B. mit Bezug auf die obige Objekterkennung 104). Als nicht beschränkende Beispiele werden Verfahren beschrieben, wie beispielsweise jene, die in der U.S. Non-Provisional Application No. 16/286,329 , eingereicht am 15. Februar 2019, und der U.S. Non-Provisional Application No. 16/514,404 , eingereicht am 17 Juli 2019, beschrieben sind, wobei jede von diesen hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen ist.
  • In einigen Beispielen kann die Spurerkennung 112 Spurdaten 126 verwenden, wobei die Spurdaten 126 Spurgraph(en) und/oder Karte(n) (z.B. Navigationsebenenkarten, hochaufgelöste Karten (HD-Karten) umfassen können. Beispielsweise können die Spurdaten 126 für eine Anzahl von Spuren auf einer Fahroberfläche und/oder Ausfahrten, Zusammenführungen, Aufteilungen und/oder andere Merkmalen in der Umgebung repräsentativ sein. Von daher kann die Spurerkennung 112 unter Verwendung der Sensordaten 102, der Spurdaten 126 oder einer Kombination davon erzeugt werden. Beispielsweise können eine oder mehrere Spuren unter Verwendung der Sensordaten 102 in Kombination mit einem Spurerkennungsalgorithmus oder maschinellen Lernmodell identifiziert werden und eine oder mehrere zusätzliche Spuren können unter Verwendung der Spurdaten 126 (z.B. von einer Kartenanwendung) identifiziert werden. Die Ausgabe der Spurerkennung kann Linien (z.B. Polylinien, die durch eine Mehrzahl von Eckpunkten dargestellt werden) umfassen, die Spurlinien, Begrenzungslinien, Zusammenführungslinien, Einteilungslinien und/oder anderen Linien der Fahroberfläche entsprechen.
  • In nicht beschränkenden Beispielen kann die Ausgabe der Spurerkennung 112 Punkte (z.B. Pixel) in dem(den) Bild(ern) umfassen, wo bestimmt wird, dass sich Spurbegrenzungen (z.B. Polypunkte 602A-602H und 604A-604F der Visualisierung 600 von 6A) befinden. Polylinien (z.B. Polylinien 622A-622G und 624A-624E der Visualisierung 620 von 6B) können durch Verbinden benachbarter Polypunkte für die jeweiligen Spuren und/oder Begrenzungen erzeugt werden, wo Verbindungen zwischen Polylinien ein Ausmaß einer Spurlinie oder einer Begrenzung für ein Bild definieren können. Von daher können die Polypunkte und/oder Polylinien die erkannten Spuren, Ausfahrten, Einfahrten, Begrenzungen und/oder andere Merkmale in der Umgebung abgrenzen oder umreißen, wie durch die Sensordaten 102 (z.B. Bilder) und/oder die Kartendaten 226 (z.B. Spurgraphen und/oder Karten) dargestellt.
  • Um eine Spurmaske 116 zu bestimmen, kann in einigen Ausführungsformen eine Spurtriangulation 114 ausgeführt werden. Beispielsweise kann unter Verwendung der Ausgabe der Spurerkennung 112 (z.B. den Polypunkten, die den Polylinien entsprechen), die Spurtriangulation 114 verwendet werden, um die Spurmaske 116 zu erzeugen. In einem derartigen Beispiel kann die Spurtriangulation 114 die Polypunkte zwischen benachbarten Polylinien in einem Muster verbinden, wie beispielsweise einem kreuzweisen Muster. In einem nicht beschränkenden Beispiel und wie in 6C veranschaulicht kann jeder Polypunkt in einer kreuzweisen Art mit einem Polypunkt von einer benachbarten Polylinie verbunden werden, die der gleichen Linie entspricht (z.B. können Polypunkte von einer Spurlinie der linken Seite mit Polypunkten einer Spurlinie der rechten Seite verbunden werden). Ein erster Polypunkt (e.g. unterster Polypunkt) einer ersten Polylinie kann mit einem ersten (oder zweiten) Polypunkt einer zweiten Polylinie verbunden werden, und der erste (oder zweite) Polypunkt der zweiten Polylinie kann mit einem zweiten Polypunkt der ersten Polylinie und so weiter verbunden werden, bis jeder der Polypunkte verbunden ist, um Dreiecke zu bilden, wie in der Visualisierung 640 von 6C veranschaulicht. In einigen nicht beschränkenden Beispielen kann die Spurtriangulation 114 eine monotone Polygontriangulation verwenden, um die Spurmaske 116 zu erzeugen. Es kann vorausgesetzt werden, dass die Polylinien in mindestens einer Achse (z.B. einer Richtung) monoton und nicht gekrümmt sind. Ein Vektor kann zwischen dem Polylinienendpunkt und dem Polylinienanfangspunkt in der jeweiligen Spur bestimmt werden. Die Vektoren können dann verwendet werden, um die Dreiecke (z.B. Dreiecke 642A-642X von 6D) zum Rendern der Spurmaske 116 zu erzeugen, um die Pixel innerhalb des Bildes zu bestimmen, die jeder Spur, Ausfahrt, Einfahrt oder anderem abgegrenzten Teil der Fahroberfläche entsprechen.
  • In einigen Ausführungsformen kann ein Spurregressionsalgorithmus für die Spurtriangulation 114 verwendet werden, um die Spurmaske 116 zu erzeugen. Der Spurregressionsalgorithmus kann eine Linie durch die Polylinien zurückbilden, um das Dreieck zu erzeugen. Beispielsweise kann ein beliebiger bekannter Regressionsalgorithmus verwendet werden, um die Dreiecke zu erzeugen. Die Spurmaske 116 kann unter Verwendung der Dreiecke erzeugt werden, die für jede Spur durch die Spurtriangulation 116 erzeugt wurden. Die Kombination der gerenderten Dreiecke kann Polygone im Bildraum bilden, wo jedes Polygon einer Spur entsprechen kann.
  • Als Ergebnis der Spurtriangulation 114 und/oder einem weiteren Maskenerzeugungsansatz kann die Spurmaske 116 erzeugt werden, um Pixel im Bildraum darzustellen, die Spuren oder anderen Teilen der Fahroberfläche entsprechen. In einigen Beispielen kann jedes Pixel in der Spurmaske 116 als eine Farbe indiziert werden, die einer jeweiligen Spur entspricht (z.B. mit Bezug auf die Visualisierung 660 von 6D, können Pixel für eine linke Spur 662 von einer ersten Farbe oder Muster sein, Pixel für eine mittlere oder Ego-Spur 664 können von einer zweiten Farbe oder Muster sein, und Pixel für eine dritte Spur 666 können von einer dritten Farbe oder Muster sein).
  • In den Ausführungsformen kann ein Skalierungsfaktor verwendet werden, um die Spurmaske 116 herunterzuskalieren. Beispielsweise kann die Spurmaske um einen vorbestimmten Skalierungsfaktor (z.B. eine Hälfte, ein Viertel usw.) herunterskaliert werden, um die Leistung zu erhöhen oder die Laufzeit zu verringern. Sogar nach dem Skalieren kann die Spurmaske 116 die Fidelität des(der) Quellbildes(er), Karte(en) und/oder Graph(en) beibehalten, die verwendet werden, um die Spurmaske 116 zu erzeugen, weil in den Ausführungsformen ein Nachschlagen basierend auf der Skala durchgeführt werden kann, so dass jedes Pixel in den Sensordaten 102 um den Skalierungsfaktor herunterskaliert werden kann - um dadurch Information von einer höheren räumlichen Auflösung sogar bei der niedrigeren, herunterskalierten Auflösung beizubehalten. In einem derartigen Beispiel können die Sensordaten 102 vor der Spurtriangulation 114 herunterskaliert werden und eine Rastereinrichtung kann verwendet werden, um die Sensordaten 102 (z.B. Bilder) herunterzuskalieren. Die herunterskalierten Sensordaten 102 können dann für die Spurtriangulation 114 verwendet werden. In derartigen Ausführungsformen kann der Objektzaun 110 (z.B. Pixel des Objektzauns 110) ebenfalls um den gleichen Skalierungsfaktor herunterskaliert werden.
  • In einigen Beispielen kann die Spurverlängerung 122 und/oder eine virtuelle Spurerzeugung 124 verwendet werden, um die erkannten Spuren zu verlängern und/oder Spuren in der Spurmaske 116 zu erzeugen - wie beispielsweise, wo kein volles oder brauchbares Ausmaß von Spuren für die Spurmaske 116 als Ergebnis der Spurerkennung 112 und/oder Spurtriangulation 114 erzeugt wird. Eine vorbestimmte Länge für Spuren kann verwendet werden, um zu bestimmen, ob die Spurverlängerung 122 durchgeführt werden kann, um eine Spur(en) zu verlängern. In derartigen Beispielen kann ein Spurverlängerungsalgorithmus oder ein maschinelles Lernmodell (wie beispielsweise jene, die hier beschrieben sind) verwendet werden, um die Spur(en) zu verlängern. Jeder bekannte Spurverlängerungsalgorithmus kann verwendet werden - wie beispielsweise Kurvenanpassung und/oder Spurextrapolation, jedoch nicht darauf beschränkt sein - um Spurverlängerungen (z.B. Spurverlängerungen 682, 684, 686 und 688 in der Visualisierung 680 von 6E) zu erzeugen. Eine derartige Spurverlängerung kann falsche Positive für Spurzuweisungen für erkannte Objekte durch Erzeugen von mehr Tiefe für die Spurmaske 116 verringern. Ferner kann der Spurverlängerungsalgorithmus in einigen Beispielen konfiguriert sein, um die Spurverlängerung zu begrenzen, wenn die Verlängerung eine weitere Spurbegrenzung kreuzt.
  • Eine virtuelle Spurerzeugung 124 kann ausgeführt werden, wo eine oder mehrere Spuren (z.B. unterhalb einer Schwellenanzahl von Spuren) nicht erkannt werden. Von daher kann die virtuelle Spurerzeugung 124 verwendet werden, wenn es beschränkte Spurdaten 126 und/oder Sensordaten 102 für die Spurerkennung 112 gibt. In Ausführungsformen kann eine vorbestimmte Anzahl von Spuren verwendet werden, um zu bestimmen, ob virtuelle Spuren erzeugt werden sollen. Wo eine Schwelle gleich drei Spuren ist, können, wenn drei Spuren nicht erkannt werden, virtuelle Spuren erzeugt werden, um die Lücken aufzufüllen. Die drei Spuren können in einem derartigen Beispiel mindestens eine Ego-Spur des Fahrzeugs 900 und eine benachbarte Spur auf jeder Seite der Ego-Spur umfassen. Auf ähnliche Weise zu der Spurverlängerung 122 kann ein Algorithmus oder ein maschinelles Lernmodell verwendet werden, um eine Anzahl von zu erzeugenden virtuellen Spuren und Orte der zu erzeugenden virtuellen Spuren zu bestimmen. Durch Erzeugen virtueller Spuren können Objekte virtuellen Spuren zugewiesen werden, sogar wenn nicht so genau wie tatsächliche Erkennungen, um dem Fahrzeug 900 ein besseres Verständnis von Orten von Objekten relativ zu einem Weg des Ego-Fahrzeugs bereitzustellen.
  • Sobald der(die) Objektzaun(zäune) 110 und die Spurmaske 116 erzeugt sind, kann eine Überlappungsbestimmung 118 ausgeführt werden, um zu bestimmen, welche Objektzäune - oder Teile davon -in jeder der Spuren oder anderen abgegrenzten Teilen der Umgebung sind. Von daher kann die Überlappungsbestimmung 118 die Spurmaske 116 und den Objektzaun 110 verwenden, um eine Überlappung zwischen den Pixeln und/oder den Begrenzungen des Objektzauns 110 und der Spurmaske 116 (z.B. im 2D-Bildraum) zu bestimmen.
  • In einigen Beispielen kann ein Objekt einer Spur(en) in der Spurmaske - während der Spurzuweisung 120 - basierend auf einer Überlappung von Pixeln im Objektzaun 110 mit den Spurpixeln in der Spurmaske 116 zugewiesen werden. Pixelzählen 132 kann verwendet werden, um die Überlappung zwischen den Pixeln des Objektzauns 110 und der Spurmaske 116 zu bestimmen, so dass jedes Objekt mit einem entsprechenden Objektzaun 110 einer oder mehrerer Spuren basierend auf einer Pixelanzahl zugewiesen werden kann. Die Pixel in der Gesamtheit des Objektzauns 110 können gegen die Spurpixel für jede Spur in der Spurmaske 116 abgeglichen werden und das Objekt kann einer oder mehreren Spuren basierend auf der Pixelanzahl für die Pixel des Objektzauns 110 in jeder Spur zugewiesen werden. Der jeder Spurmaske zugeordnete Pixelindex (z.B. Farbe oder Muster, wie mit Bezug auf 6D beschrieben) kann dann verwendet werden, um zu bestimmen, mit welcher Spur das bestimmte Pixel überlappt. In einigen Beispielen kann es erforderlich sein, um ein Objekt einer Spur zuzuordnen, dass eine Anzahl von überlappenden Pixeln über einem Schwellenwert liegt (z.B. größer als zwanzig Pixel, größer als vierzig Pixel, größer als zehn Prozent der Pixel des Objektzauns 110 usw.). Durch Verwenden eines Schwellenwerts können falsche Positive verringert werden, weil Objektzäune 110, die geringfügig mit einer Spur überlappen, unberücksichtigt gelassen werden (was eine Ungenauigkeit im Objektzaun 110 berücksichtigen kann).
  • In einigen Ausführungsformen kann, zusätzlich zu oder alternativ zum Pixelzählen 132, eine Begrenzungsauswertung 134 durchgeführt werden, um die Überlappung zwischen den Pixeln des Objektzauns 110 und der Spurmaske 116 zu bestimmen. In derartigen Beispielen kann der Objektzaun 110 durch Eckpunkte (z.B. Pixel) entlang des Umfangs des Objektzauns 110 (z.B. Eckpunkten 702A, 702B, 702C, ..., 702N) dargestellt werden. Pixelabstände können zwischen den Eckpunkten des Objektzauns 110 bestimmt werden, um die Überlappung zu bestimmen. Wo ein Objekt beispielsweise in einer einzigen Spur ist, können die Pixelabstände zwischen jedem Satz von zwei Pixeln am Umfang berechnet werden, aufaddiert und normiert werden, um ein Verhältnis einer Kreuzung pro Spur zu erzeugen - die für eine einzige Spur 1/1 sein würde.
  • In Beispielen, in denen ein Objekt in mehr als einer Spur sein kann, kann ein Satz von Punkten bestimmt werden, der die Spurbegrenzung kreuzt. Beispielsweise kann bestimmt werden, dass der Eckpunkt 702B und Eckpunkt 702C entlang einer Spurlinie aufgeteilt sind. Von daher kann ein Kreuzungspunkt 722A (oder ein neuer Eckpunkt) durch Finden eines Punkts zwischen den Eckpunkten 702B und 702C bestimmt werden, der auf der Spurlinie ist. Dann kann der Kreuzungspunkt oder der neue Eckpunkt verwendet werden, um den Abstand (z.B. einen Pixelabstand entlang einer geraden Linie, entlang einer Begrenzung des Objektzauns 100 usw.) zwischen dem neuen Eckpunkt und jedem anderen Pixel am Umfang oder Eckpunkt des Objektzauns 110 auf jeder Seite der Kreuzung zu bestimmen. Eine erste Summe von Abständen zwischen dem neuen Eckpunkt und einem ersten Satz von Pixeln am Umfang, der dem Objektzaun 110 in einer ersten Spur entspricht, kann berechnet werden, und eine zweite Summe von Abständen zwischen dem neuen Eckpunkt und einem zweiten Satz von Pixeln am Umfang, der dem Objektzaun 110 in einer zweiten Spur entspricht, kann berechnet werden. Diese Summen können dann in einigen Ausführungsformen normiert werden. Letztlich kann ein Verhältnis von Kreuzung pro Spur basierend auf der ersten Summe von Abständen und der zweiten Summe von Abständen berechnet werden. Eine Kenntnis des Verhältnisses der Kreuzung und wie sich das Verhältnis von Einzelbild zu Einzelbild ändert, kann eine Angabe der Trajektorie des Objekts (z.B. Wechseln von Spuren, Ausscheren, Spurhalten usw.) bereitstellen. Außerdem kann das Verhältnis der Kreuzung verwendet werden, um das Objekt mehreren Spuren während der Spurzuweisung 120 zuzuweisen.
  • Die Überlappungsbestimmung 118 kann verwendet werden, um die Spurzuweisungen 120 für jedes der Objekte mit jeweiligen Objektzäunen 110 zu bestimmen. In einigen Beispielen kann Pixelzählen 132 eine Pixelanzahl von Pixeln des Objektzauns 110 bereitstellen, welche die Pixel der Spurmaske 116 überlappen, und die Überlappung kann verwendet werden, um die Spurzuweisungen zu bestimmen. Als ein weiteres Beispiel kann das Verhältnis der Kreuzung pro Spur für einen Objektzaun 110 - wie durch die Begrenzungsauswertung 134 bestimmt - verwendet, um dem Objekt zwei oder mehr Spuren zuzuweisen. Die Spurzuweisungen 120 können eine aktuelle Fahrspur für ein entsprechendes Objekt darstellen. Die Spurzuweisungen 120 können von dem Fahrzeug 900 verwendet werden, wenn Entscheidungen getroffen werden, wie beispielsweise, welchem Weg oder welcher Trajektorie das Fahrzeug 900 folgen sollte oder folgen kann, ob zu bremsen, zu beschleunigen oder Spuren zu wechseln und/oder andere Arten von Entscheidungen getroffen werden.
  • In einigen Ausführungsformen kann eine zeitliche Glättung 142 durchgeführt werden, um vorherige Spurzuweisungen 120 für ein vorheriges Einzelbild(er) und/oder Bild(er) für ein Objekt wirksam einzusetzen, um den Ort und/oder die Spurzuweisung des Objekts in einem darauffolgenden Einzelbild(ern) und/oder Bild(ern) zu schätzen. Weil Spurzuweisungen beispielsweise genauer sein können, wenn ein Objekt näher an einem Sensor(en) des Fahrzeugs 900 ist, kann, wenn sich das Objekt weiter weg bewegt, die vorherige Spurzuweisung 120 wirksam eingesetzt werden, um genauere Vorhersagen des Objektortes und der Spurzuweisung bei weiteren Abständen - z.B., wo die Spuren erscheinen, im Bildraum ineinander überzugehen - bereitzustellen. In derartigen Beispielen kann(können) eine vorherige Vorhersage(n) mit Bezug auf aktuelle Vorhersagen der Spurzuweisung 120 gewichtet werden (z.B. 90% für aktuelle Vorhersage/10% für vorherige Vorhersage(n), 70% für aktuelle Vorhersage/20% für direkt vorangehende Vorhersage/10% für zwei vorherige Vorhersagen usw.). Eine zeitliche Glättung kann somit vorherige Vorhersagen wirksam einsetzen, um die Genauigkeit der Spurzuweisungen 120 innerhalb des Prozesses 100 zu verbessern.
  • Bezugnehmend nun auf 2A-2D veranschaulichen 2A-2D einen Prozess, um einen Objektzaun für ein Fahrzeug in einem Bild unter Verwendung der Objekterkennung 104 und der Freiraumerkennung 106 zu erzeugen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 2A veranschaulicht eine Begrenzungsform für ein Fahrzeug, das in einem von einen Fahrzeugsensor erzeugten Bild erkannt wird. Eine Begrenzungsform 204 kann für das Fahrzeug 202 - wie in der Visualisierung 200 dargestellt - unter Verwendung eines Objekterkennungsalgorithmus und/oder eines maschinellen Lernmodells erzeugt werden. In einigen Beispielen kann die Begrenzungsform 204 ein das Fahrzeug 202 umgebender Begrenzungskasten sein. Die Begrenzungsform 204 kann als Punkte (z.B. Pixel) innerhalb des Eingabebildes 200 dargestellt werden, wo sich das Fahrzeug 202 potenziell befindet, wie beispielsweise jedes der Pixel, die der Begrenzungsform 204, den Eckpunkten entlang eines Umfangs der Begrenzungsform 204 oder einer Kombination davon entsprechen.
  • 2B veranschaulicht eine zugeschnittene Begrenzungsform 222 für ein in einem Bild erkanntes Fahrzeug 202 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Beispielsweise kann mindestens ein Teil der Begrenzungsform 204 beschnitten werden, um die zugeschnittene Begrenzungsform 222 zu erzeugen, wie hier beschrieben.
  • 2C veranschaulicht das Definieren eines Objektzauns unter Verwendung einer befahrbaren Freiraumbestimmung gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Beispielsweise kann der befahrbare Freiraum 232 - wie hier beschrieben - aus der Begrenzungsform 204 und/oder der zugeschnittenen Begrenzungsform 222 geschnitten werden, um einen Objektzaun 110 zu erzeugen. Obwohl lediglich als befahrbarer Freiraum 232 und nicht befahrbarer Raum 234 innerhalb der zugeschnittenen Begrenzungsform 222 von 2C veranschaulicht, ist dies nicht bestimmt, beschränkend zu sein. In einigen Beispielen kann einiges oder alles von jedem Bild als befahrbarer Freiraum oder nicht befahrbarer Raum abgegrenzt werden und der Teil dieser Ausgabe, welcher der Begrenzungsform 204 und/oder der zugeschnittenen Begrenzungsform 222 entspricht, kann verwendet werden, um den Objektzaun 110 zu erzeugen.
  • 2D veranschaulicht einen Objektzaun für ein Fahrzeug, der durch Entfernen von befahrbarem Freiraum von einer Objektbegrenzungsform erzeugt wird, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Wie in 2D veranschaulicht, kann der befahrbare Freiraum 232 von der zugeschnittenen Begrenzungsform 222 entfernt werden, um den Objektzaun 110 zu erzeugen.
  • Nun umfasst bezugnehmend auf 3 jeder Block des hier beschriebenen Verfahrens 300 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann ebenfalls als computerverwendbare Anweisungen verkörpert sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Außerdem wird das Verfahren 300 beispielhaft mit Bezug auf den Prozess 100 zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung von 1 beschrieben. Das Verfahren kann jedoch zusätzlich oder alternativ von einem beliebigen System oder einer beliebigen Kombination von Systemen, einschließlich, jedoch nicht beschränkt auf, den hier beschriebenen ausgeführt werden.
  • 3 ist ein Ablaufdiagramm, das ein Verfahren 300 zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Bei Block B302 umfasst das Verfahren 300 ein Empfangen von Objekterkennungsdaten, die eine Begrenzungsform darstellen, die einem in einem Bild veranschaulichten Objekt entspricht. Beispielsweise kann eine Begrenzungsform, die einem in einem Bild (z.B., wie durch Sensordaten 102 dargestellt) anschaulich dargestellten Objekt (z.B. ein Fahrzeug, ein Fußgänger, Trümmer usw.) entspricht, nach der Objekterkennung 112 empfangen werden. In einigen Beispielen kann die Begrenzungsform eine zugeschnittene Begrenzungsform sein (z.B. zugeschnittene Begrenzungsform 222 von 2B), die einen Teil der Begrenzungsform darstellt.
  • Bei Block B304 umfasst das Verfahren 300 ein Empfangen von Freiraumdaten, die mindestens einen Teil der Begrenzungsform darstellen, der bestimmt ist, befahrbaren Freiraum zu umfassen. Beispielsweise können die Freiraumdaten, die mindestens einen Teil der Begrenzungsform darstellen, der bestimmt ist, befahrbaren Freiraum zu umfassen, empfangen werden, nachdem die Freiraumerkennung 106 an den Sensordaten 102 durchgeführt ist.
  • Bei Block B306 umfasst das Verfahren 300 ein Ausschneiden des Teils der Begrenzungsform, um einen Objektzaun innerhalb der Begrenzungsform zu erzeugen. Beispielsweise kann der Objektzaun 110 durch Ausschneiden des Teils der Begrenzungsform von der Objekterkennung 102 erzeugt werden, der die Freiraumdaten von der Freiraumbestimmung 106 darstellt.
  • Bei Block B308 umfasst das Verfahren 300 ein Empfangen von Spurdaten, die Orte einer Mehrzahl von Spurlinien innerhalb des Bildes darstellen. Beispielsweise können Spurdaten, die einen Ort einer Mehrzahl von Spurlinien innerhalb der Sensordaten 102 darstellen, und/oder die Spurdaten 126 empfangen werden, nachdem die Spurerkennung 112 durchgeführt ist.
  • Bei Block B310 umfasst das Verfahren 300 ein Erzeugen einer Spurmaske unter Verwendung der Spurdaten. Beispielsweise kann die Spurmaske 116 - z.B. unter Verwendung der Spurtriangulation 114 - aus den von der Spurerkennung 112 empfangenen Spurdaten erzeugt werden.
  • Bei Block B312 umfasst das Verfahren 300 ein Bestimmen einer Überlappung zwischen dem Objektzaun und einer oder mehrerer durch die Spurmaske definierten Spuren. Beispielsweise kann eine Überlappung zwischen dem Objektzaun 110 und der einen oder mehreren durch die Spurmaske 116 definierten Spuren durch eine Überlappungsbestimmung 110 unter Verwendung von Pixelzählen 132 und/oder der Begrenzungsauswertung 134 bestimmt werden.
  • Bei Block B314 umfasst das Verfahren 300 ein Zuweisen des Objekts zu mindestens einer der einen oder mehreren Spuren basierend mindestens teilweise auf der Überlappung. Beispielsweise kann die Spurzuweisung 120 verwendet werden, um das Objekt mindestens einer der einen oder mehreren Spuren von die Spurmaske 116 zuzuweisen.
  • Bezugnehmend auf 4 veranschaulicht 4 einen Objektzaun 404 für ein Fahrzeug, der durch einen Zaunerzeugungsalgorithmus erzeugt wurde, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Ein Zaunerzeugungsalgorithmus 108, wie hier beschrieben, kann verwendet werden, um den Objektzaun 404 für das Fahrzeug 402 zu erzeugen.
  • Nun umfasst bezugnehmend auf 5 jeder Block des hier beschriebenen Verfahrens 500 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann ebenfalls als computerverwendbare Anweisungen verkörpert sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Außerdem wird das Verfahren 500 beispielhaft mit Bezug auf den Prozess 100 zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung von 1 beschrieben. Das Verfahren kann jedoch zusätzlich oder alternativ von einem beliebigen System oder einer beliebigen Kombination von Systemen, einschließlich, jedoch nicht beschränkt auf, den hier beschriebenen ausgeführt werden.
  • 5 ist ein Ablaufdiagramm, das ein Verfahren 500 zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Bei Block B502 umfasst das Verfahren 500 ein Anwenden von Sensordaten, die von einem oder mehreren Sensoren erzeugt wurden, auf einen Objektzaunerzeugungsalgorithmus. Beispielsweise können die Sensordaten 102, die von einem oder mehreren Sensoren erzeugt wurden, auf den Zaunerzeugungsalgorithmus 108 angewendet werden.
  • Bei Block B504 umfasst das Verfahren 500 ein Identifizieren mit dem Objektzaunalgorithmus eines Weltraumobjektzauns für ein Objekt innerhalb eines sensorischen Sichtfelds von mindestens einem Sensor des einen oder mehreren Sensoren. Beispielsweise kann der Objektzaunalgorithmus 108 verwendet werden, um den Objektzaun 110 im Weltraum für das Objekt innerhalb des sensorischen Feldes von mindestens einem Sensor des einen oder mehreren Sensoren zu identifizieren, von denen die Sensordaten 102 empfangen werden.
  • Bei Block B506 umfasst das Verfahren 500 ein Umwandeln des Weltraumobjektzauns in einen Bildraumobjektzaun basierend mindestens teilweise auf Sensorparameter, die dem mindestens einen des einen oder mehreren Sensoren entsprechen. Beispielsweise kann der Zaunerzeugungsalgorithmus 108 verwendet werden, um einen Objektzaun 110 vom Weltraum in den Bildraum basierend mindestens teilweise auf den Sensorparametern umzuwandeln, die mindestens einem des einen oder mehreren Sensoren entsprechen.
  • Bei Block B508 umfasst das Verfahren 500 ein Empfangen von Spurdaten, die für den Ort einer Mehrzahl von Spurlinien innerhalb eines Bildes repräsentativ sind, das durch die Sensordaten dargestellt wird. Beispielsweise können Spurdaten, die für einen Ort einer Mehrzahl von Spurlinien innerhalb eines Bildes repräsentativ ist, das durch die Sensordaten 102 dargestellt wird, über die Spurerkennung 112 empfangen werden.
  • Bei Block B510 umfasst das Verfahren 500 ein Erzeugen einer Spurmaske mit den Spurdaten. Beispielsweise kann die Spurmaske 116 - z.B. unter Verwendung der Spurtriangulation 114 - unter Verwendung der nach der Spurerkennung 112 empfangenen Spurdaten erzeugt werden.
  • Bei Block B512 umfasst das Verfahren 500 ein Bestimmen einer Überlappung zwischen dem Bildraumobjektzaun und einer oder mehrerer durch die Spurmaske definierten Spuren. Beispielsweise kann die Überlappung zwischen dem Objektzaun 110 und der einen oder mehreren durch die Spurmaske 116 definierten Spuren durch die Überlappungsbestimmung 110 unter Verwendung von Pixelzählen 132 und/oder der Begrenzungsauswertung 134 bestimmt werden.
  • Bei Block B514 umfasst das Verfahren 500 ein Zuweisen des Objekts zu mindestens einer der einen oder mehreren Spuren basierend mindestens teilweise auf der Überlappung. Beispielsweise kann die Spurzuweisung 120 verwendet werden, um das Objekt mindestens einer der einen oder mehreren Spuren in der Spurmaske 116 zuzuweisen.
  • Bezugnehmend nun auf 6A-6E veranschaulichen 6A-6E einen Prozess zum Erzeugen einer Spurmaske unter Verwendung von Spurdaten gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 6A veranschaulicht Polypunkte, die Spuren abgrenzen, wie durch ein Spurerkennungsalgorithmus erzeugt. Ein Spurerkennungsalgorithmus kann Spurlinien in Eingabebildern aus den Sensordaten 102 erkennen. Die Spurlinien können Polypunkte 602A-602H und 604A-604F umfassen, die Spuren auf einer Fahroberfläche des Fahrzeugs 900 abgrenzen. Die Polypunkte können Punkte (z.B. Pixel) entlang der Spurlinien sein.
  • 6B veranschaulicht Polylinien, die Polypunkte verbinden, die Spuren abgrenzen, wie durch einen Spurerkennungsalgorithmus erzeugt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Ein Spurerkennungsalgorithmus kann Polylinien 622A-622G und 624A-624E durch Verbinden benachbarter Polypunkte 602A-602H und 604A-604F auf Spurlinien für jeweils jede Spur erzeugen. Die Polylinien können Spurbegrenzungen (z.B. Linien) in einem Bild darstellen, das eine Fahroberfläche des Fahrzeugs 900 darstellt.
  • 6C veranschaulicht eine Spurtriangulation, die an erkannten Spuren durchgeführt wird, um eine Spurmaske zu erzeugen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Dreiecke (z.B. Dreiecke 620A-620L und andere nicht nummerierte) können durch Verbinden von Polypunkten 602A-602Z einer Spurbegrenzung mit Polypunkten 604A-604Z von einer benachbarten Spurbegrenzung in einer kreuzweisen Art mit einer Spurtriangulation 114 erzeugt werden. Jede Spur kann einer Spurtriangulation durch Erzeugen von Dreiecken zwischen jeweiligen Spurbegrenzungen unterzogen werden, um Spuren abzugrenzen.
  • 6D veranschaulicht eine unter Verwendung von Spurdaten erzeugte Spurmaske 660 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Spurmaske 660 kann triangulierte Spuren 662, 664 und 668 umfassen. Jede Spur kann in einem Index mit einer unterschiedlichen Farbe dargestellt werden. Die Pixel innerhalb jeder Spur können dann im Index unter der jeweiligen Spurfarbe gespeichert werden. Die Spurmaske 660 stellt einige oder alle der Spuren auf der Fahroberfläche der Fahrzeug 900 dar.
  • 6E veranschaulicht eine an einer Spurmaske 680 durchgeführte Spurverlängerung, um Spuren zu verlängern, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Beispielsweise kann die Spurverlängerung 122 verwendet werden, um die erkannten Spuren in der Spurmaske zu verlängern, wenn ein vollständiges oder brauchbares Ausmaß von Spuren nicht bestimmt wird (wie durch die Spurverlängerungen 682, 684, 686 und 688 veranschaulicht).
  • Bezugnehmend nun auf 7A-7B veranschaulichen 7A-B für einer Objektzaun erzeugte Eckpunkte, um eine Überlappung des Objektzauns mit Spuren in der Spurmaske zu bestimmen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 7A veranschaulicht für einen Objektzaun erzeugte Eckpunkte, um die Überlappung des Objektzauns mit den Spuren in Spurmaske zu bestimmen, wenn der Objektzaun innerhalb einer Spur mit Bezug auf ein bestimmtes Einzelbild ist. Der Objektzaun 706 kann durch Eckpunkte (z.B. Pixel) 702A, 702B, 702C, ..., 702N entlang des Umfangs des Objektzauns 706 für das Fahrzeug 704 in einem Bild dargestellt werden. Pixelabstände können zwischen den Eckpunkten 702 des Objektzauns 706 bestimmt werden, um die Überlappung zwischen dem Objektzaun der Spur 708 der Spurmaske zu bestimmen. Wo ein Objekt beispielsweise in einer einzigen Spur ist, können die Pixelabstände zwischen jedem Satz von zwei Pixel am Umfang berechnet, aufaddiert und normiert werden, um ein Verhältnis von Kreuzung pro Spur zu erzeugen, was 1/1 für eine einzige Spur 1/1 sein würde.
  • 7B veranschaulicht für einen Objektzaun erzeugte Eckpunkte, um die Überlappung des Objektzauns mit Spuren in der Spurmaske zu bestimmen, wenn der Objektzaun eine Spurbegrenzung kreuzt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Wo das Fahrzeug 704 in mehr als einer Spur ist (z.B. Spuren 708 und 710), kann ein Satz von Punkten, der die Spurbegrenzung kreuzt, Kreuzungspunkten 722A und 722B, bestimmt werden. Sobald die Kreuzungspunkten 722 bestimmt sind, können diese neuen Eckpunkte dann verwendet werden, um den Abstand zwischen dem neuen Eckpunkt und jedem anderen Pixel am Umfang oder Eckpunkt des Objektzauns auf jeder Seite der Kreuzung zu bestimmen, wie hier beschrieben.
  • Nun umfasst bezugnehmend auf 8 jeder Block des hier beschriebenen Verfahrens 800 einen Rechenprozess, der mit einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann ebenfalls als computerverwendbare Anweisungen verkörpert sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Außerdem wird das Verfahren 800 beispielhaft mit Bezug auf den Prozess 100 zum Bestimmen von Spurzuweisungen für Objekte in einer Umgebung von 1 beschrieben. Das Verfahren kann jedoch zusätzlich oder alternativ von einem beliebigen System oder einer beliebigen Kombination von Systemen, einschließlich, jedoch nicht beschränkt auf, den hier beschriebenen ausgeführt werden.
  • 8 ist ein Ablaufdiagramm, das ein Verfahren 800 zum Bestimmen von Verhältnissen von Pixelüberlappungen zwischen einem Objekt und zwei Spuren in einer Umgebung zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Bei Block B802 umfasst das Verfahren 800 ein Bestimmen, basierend mindestens teilweise auf einem Objektzaun und einer Spurmaske, die für eine erste Spur und eine zweite Spur repräsentativ ist, dass der Objektzaun teilweise jede der ersten und der zweiten Spur überlappt. Beispielsweise kann die Überlappungsbestimmung 118 bestimmen, dass der Objektzaun 110 mindestens zwei Spuren in der Spurmaske 116 überlappt.
  • Bei Block B804 umfasst das Verfahren 800 ein Identifizieren eines Paar von Pixeln, die Eckpunkten des Objektzauns entsprechen, die durch eine Spurlinie getrennt werden, welche die erste Spur von der zweiten Spur teilt. Beispielsweise kann ein Paar von Pixeln (z.B. Eckpunkte 702A und 702B von 7B) des Objektzauns (z.B. dem Objektzaun 110, Objektzaun 706), die durch eine Spurlinie (z.B. der Spurbegrenzung) getrennt werden, welche die erste Spur (z.B. der Spur 708 für 7B) von der zweiten Spur (z.B. der Spur 710 von 7B) teilt, über die Überlappungsbestimmung 118 identifiziert werden.
  • Bei Block B806 umfasst das Verfahren 800 ein Bestimmen eines Pixels, das der Spurlinie zwischen dem Paar von Pixeln entspricht. Beispielsweise kann ein Pixel (z.B. der Kreuzungspunkt 722A von 7B), das der Spurlinie zwischen dem Paar von Pixeln (z.B. den Eckpunkten 702A und 702B von 7B) entspricht, durch die Begrenzungsauswertung 134 bestimmt werden.
  • Bei Block B808 umfasst das Verfahren 800 ein Berechnen einer ersten Summe von Abständen zwischen dem Pixel und jedem einer ersten Mehrzahl von Eckpunkten des Objektzauns in der ersten Spur und einer zweiten Summe von Abständen zwischen dem Pixel und jedem einer zweiten Mehrzahl von Eckpunkten des Objektzauns in der zweiten Spur. Beispielsweise kann die Begrenzungsauswertung 134 eine erste Summe von Abständen zwischen dem Pixel (z.B. dem Kreuzungspunkt 722A von 7B) und jedem einer ersten Mehrzahl von Eckpunkten des Objektzauns (z.B. dem Objektzaun 110, Objektzaun 706) in der ersten Spur (z.B. der Spur 708 von 7B) und einer zweiten Summe von Abständen zwischen dem Pixel und jedem der zweiten Mehrzahl von Eckpunkten des Objektzauns in der zweiten Spur (z.B. der Spur 710 von 7B) berechnen.
  • Bei Block B810 umfasst das Verfahren 800 ein Bestimmen eines ersten Verhältnisses der Überlappung für den Objektzaun in der ersten Spur basierend mindestens teilweise auf der ersten Summe der Abstände und eines zweiten Verhältnisses der Überlappung für den Objektzaun in der zweiten Spur basierend mindestens teilweise auf der zweiten Summe der Abstände. Beispielsweise kann die Begrenzungsauswertung 134 ein erstes Verhältnis der Überlappung für den Objektzaun 110 (oder Objektzaun 706 von 7B) in der ersten Spur (z.B. der Spur 708 von 7B) basierend mindestens teilweise auf der ersten Summe des Abstands und eines zweiten Verhältnisses der Überlappung für den Objektzaun in der zweiten Spur (z.B. der Spur 710 von 7B) basierend mindestens auf der zweite Summe des Abstands bestimmen.
  • Bei Block B812 umfasst das Verfahren 800 ein Durchführen von mindestens einer Operation basierend mindestens teilweise auf dem ersten Verhältnis der Überlappung und dem zweiten Verhältnis der Überlappung. Beispielsweise kann die Spurzuweisung 120 das Objekt Spuren basierend auf dem ersten Verhältnis der Überlappung und dem zweiten Verhältnis der Überlappung zuweisen, wie über die Begrenzungsauswertung 134 bestimmt.
  • Beispielhaftes Autonomes Fahrzeug
  • 9A ist eine Veranschaulichung eines beispielhaften autonomen Fahrzeugs 900 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das autonome Fahrzeug 900 (alternativ hier als das „Fahrzeug 900“ bezeichnet) kann, ohne Beschränkung, einen Personenkraftwagen, wie beispielsweise einen Pkw, einen Lastkraftwagen, einen Bus, ein Ersthelferfahrzeug, einen Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, ein Feuerwehrfahrzeug, ein Polizeifahrzeug, eine Ambulanz, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne und/oder eine andere Art von Fahrzeug umfassen (z.B., das unbemannt ist und/oder das einen oder mehrere Fahrgäste aufnehmen kann). Autonome Fahrzeuge werden im Allgemeinen hinsichtlich Automatisierungsgrade beschrieben, die von der National Highway Traffic Safety Administration (NHTSA), einer Abteilung des US Department of Transportation, und dem Standard „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles“ der Society of Automotive Engineers (SAE) (Standard Nr. J3016-201906, veröffentlicht am 15. Juni 2018, Standard Nr. J3016-201609, veröffentlicht am 30. September 2016, und frühere und zukünftige Versionen dieser Norm) definiert wird. Das Fahrzeug 900 kann in Übereinstimmung mit einer oder mehreren der autonomen Fahrstufen 3-5 funktionsfähig sein. Beispielsweise kann das Fahrzeug 900 je nach Ausführungsform in der Lage sein, eine bedingte Automatisierung (Stufe 3), eine hohe Automatisierung (Stufe 4) und/oder eine vollständige Automatisierung (Stufe 5) durchzuführen.
  • Das Fahrzeug 900 kann Komponenten, wie beispielsweise ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z.B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs umfassen. Das Fahrzeug 900 kann ein Antriebssystem 950, wie beispielsweise einen Verbrennungsmotor, eine Hybrid-Elektroanlage, einen vollelektrischen Motor und/oder eine andere Art eines Antriebssystems umfassen. Das Antriebssystem 950 kann mit einem Antriebsstrang des Fahrzeugs 900 verbunden sein, der ein Getriebe umfassen kann, um den Antrieb des Fahrzeugs 900 zu ermöglichen. Das Antriebssystem 950 kann als Antwort auf ein Empfangen von Signalen von der Drossel/dem Beschleuniger 952 gesteuert werden.
  • Ein Lenksystem 954, das ein Lenkrad umfassen kann, kann verwendet werden, um das Fahrzeug 900 zu lenken (z.B. entlang eines gewünschten Wegs oder Route), wenn das Antriebssystem 950 in Betrieb ist (z.B., wenn das Fahrzeug in Bewegung ist). Das Lenksystem 954 kann Signale von einem Lenkaktuator 956 empfangen. Das Lenkrad kann für die Funktionalität der Vollautomatisierung (Stufe 5) optional sein.
  • Das Bremssensorsystem 946 kann verwendet werden, um die Fahrzeugbremsen als Antwort auf Empfangssignale von den Bremsaktuatoren 948 und/oder Bremssensoren zu betätigen.
  • Der(die) Controller 936, der(die) ein oder mehrere Systeme on Chips (SoCs) 904 (9C) und/oder GPU(s) umfassen kann(können), kann(können) Signale (z.B. welche Befehle repräsentieren) einer oder mehreren Komponenten und/oder Systeme des Fahrzeugs 900 bereitstellen. Beispielsweise kann(können) der(die) Controller Signale zum Betätigen der Fahrzeugbremsen über ein oder mehrere Bremsaktuatoren 948, zum Betätigen des Lenksystems 954 über ein oder mehrere Lenkaktuatoren 956 und zum Betätigen des Antriebssystems 950 über ein oder mehrere Drosseln/Beschleuniger 952 senden. Der(die) Controller 936 kann(können) eine oder mehrere eingebaute (z.B. integrierte) Rechenvorrichtungen (z.B. Supercomputer) umfassen, die Sensorsignale verarbeiten, und Betriebsbefehle (z.B. Signale, die Befehle repräsentieren) ausgeben, um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Fahren des Fahrzeugs 900 zu unterstützen. Der(die) Controller 936 kann(können) einen ersten Controller 936 für autonome Fahrfunktionen, einen zweiten Controller 936 für funktionale Sicherheitsfunktionen, einen dritten Controller 936 für Funktionen der künstlichen Intelligenz (z.B. Computervision), einen vierten Controller 936 für Infotainment-Funktionalität, einen fünften Controller 936 für Redundanz bei Notfällen und/oder andere Controller umfassen. In einigen Beispielen kann ein einzelner Controller 936 zwei oder mehrere der oben genannten Funktionalitäten, zwei oder mehrere Controller 936 können eine einzelne Funktionalität und/oder eine beliebige Kombination davon handhaben.
  • Der(die) Controller 936 kann(können) die Signale zum Steuern einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 900 als Antwort auf Sensordaten bereitstellen, die von einem oder mehreren Sensoren (z.B. Sensoreingaben) empfangen werden. Die Sensordaten können beispielsweise und ohne Beschränkung von einem bzw. mehreren Sensor(en) von globalen Navigationssatellitensystemen 958 (z.B. Global Positioning System Sensor(en)), RADAR-Sensor(en) 960, Ultraschallsensor(en) 962, LIDAR-Sensor(en) 964, Inertial Measurement Unit (IMU) Sensor(en) 986 (z.B. Beschleunigungssensor(en), Gyroskop(e), Magnetkompass(e), Magnetometer(e), usw.), Mikrophon(e) 996, Stereokamera(s) 968, Weitwinkelkamera(s) 970 (z.B. Fischaugenkameras), Infrarot-Kamera(s) 972, Surround-Kamera(s) 974 (z.B. 360-Grad-Kameras), Fern- und/oder Mittelbereichskamera(s) 998, Geschwindigkeitssensor(en) 944 (z.B. zur Messung der Geschwindigkeit des Fahrzeugs 900), Schwingungssensor(en) 942, Lenksensor(en) 940, Bremssensor(en) (z.B. als Teil des Bremssensorsystems 946) und/oder anderen Sensortypen empfangen werden.
  • Einer oder mehrere der Controller(s) 936 können Eingaben (repräsentiert durch Eingabedaten) von einer Instrumentengruppe 932 des Fahrzeugs 900 empfangen und Ausgaben (z.B., repräsentiert durch Ausgabedaten, Anzeigedaten usw.) über eine Anzeige einer Mensch-Maschine-Schnittstelle (HMI) 934, eine hörbare Meldevorrichtung, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 900 bereitstellen. Die Ausgaben können Informationen wie Fahrzeugvektorgeschwindigkeit, Geschwindigkeit, Zeit, Kartendaten (z.B. die HD-Karte 922 von 9C), Standortdaten (z.B. den Standort des Fahrzeugs, z.B. auf einer Karte), Richtung, Standort anderer Fahrzeuge (z.B. ein Belegungsgitter), Informationen über Objekte und Status von Objekten, wie von dem(den) Controllern 936 wahrgenommen, usw. umfassen. Beispielsweise kann die HMI-Anzeige 934 Informationen über das Vorhandensein eines oder mehrerer Objekte (z.B. ein Straßenschild, Warnschild, Ampeländerung usw.) und/oder Informationen über Fahrmanöver, die das Fahrzeug durchführte, gerade durchführt oder durchführen wird (z.B. aktuelles Wechseln von Spuren, Nehmen einer Ausfahrt 34B in zwei Meilen, usw.), anzeigen.
  • Das Fahrzeug 900 umfasst ferner eine Netzwerkschnittstelle 924, die eine oder mehrere drahtlose Antenne(n) 926 und/oder Modem(s) zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Beispielsweise kann die Netzwerkschnittstelle 924 imstande sein, über LTE, WCDMA, UMTS, GSM, CDMA2000 usw. zu kommunizieren. Die drahtlose(n) Antenne(n) 926 kann(können) auch die Kommunikation zwischen Objekten in der Umgebung (z.B. Fahrzeugen, mobilen Vorrichtungen usw.) unter Verwendung von einem Lokalbereichsnetzwerk(en), wie beispielweise Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw., und/oder einem Weitbereichsnetzwerk(en) mit geringer Leistung (LPWANs), wie beispielsweise LoRaWAN, SigFox usw., ermöglichen.
  • 9B ist ein Beispiel von Kamerastandorten und Sichtfeldern für das beispielhafte autonome Fahrzeug 900 von 9A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und jeweilige Sichtfelder sind eine Beispielausführungsform und sind nicht bestimmt, einschränkend zu sein. Beispielsweise können zusätzliche und/oder alternative Kameras umfasst sein und/oder die Kameras können an verschiedenen Stellen an dem Fahrzeug 900 lokalisiert sein.
  • Die Kameratypen für die Kameras können, sind jedoch nicht beschränkt darauf, Digitalkameras umfassen, die für eine Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 900 angepasst sein können. Die Kamera(s) kann(können) bei dem Automotive Safety Integrity Level (ASIL) B und/oder bei einem anderen ASIL arbeiten. Die Kameratypen können für eine beliebige Bildaufnahmerate, z.B. 60 Bilder pro Sekunde (fps), 920 fps, 240 fps, usw. abhängig von der Umgebung fähig sein. Die Kameras können in der Lage sein, rollende Verschlüsse, globale Verschlüsse, eine andere Art von Verschluss oder eine Kombination davon zu verwenden. In einigen Beispielen kann ein Farbfilterarray der Kameras ein red clear clear clear (RCCC) Farbfilterarray, ein red clear clear blue (RCCB) Farbfilterarray, ein red blue green clear (RBGC) Farbfilterarray, ein Foveon X3 Farbfilterarray, ein Bayer-Sensoren (RGGB) Farbfilterarray, ein monochromes Sensorfarbfilterarray und/oder eine andere Art von Farbfilterarray umfassen. In einigen Ausführungsformen können klare Pixelkameras, wie beispielsweise Kameras mit einem RCCC, einem RCCB- und/oder einem RBGC-Farbfilterarray, in einem Bemühen verwendet werden, die Lichtempfindlichkeit zu erhöhen.
  • In einigen Beispielen kann(können) eine oder mehrere der Kameras verwendet werden, um ADAS(Advanced Driver Assistance Systems)-Funktionen durchzuführen (z.B. als Teil eines redundanten oder ausfallsicheren Designs). Beispielsweise kann eine Multifunktion-Monokamera installiert sein, um Funktionen bereitzustellen, die Spurabweichungswarnung, Verkehrszeichenunterstützung und intelligente Scheinwerfersteuerung bereitstellt. Eine oder mehrere der Kameras (z.B. alle Kameras) können Bilddaten (z.B. Video) gleichzeitig aufzeichnen und bereitstellen.
  • Eine oder mehrere der Kameras können in einer Montagebaugruppe, wie beispielsweise einer kundenspezifischen (3D-gedruckten) Baugruppe, angebracht sein, um Streulicht und Reflexionen aus dem Fahrzeuginneren (z.B. Reflexionen vom Armaturenbrett, die in den Spiegeln der Windschutzscheibe reflektiert werden) abzubauen, welche die Fähigkeiten der Bilddatenerkennung der Kamera beeinträchtigen können. In Bezug auf die Montagebaugruppen der Außenspiegel können die Außenspiegelbaugruppen kundenspezifisch in 3D gedruckt werden, so dass die Kameramontageplatte der Form des Außenspiegels entspricht. In einigen Beispielen kann(können) die Kamera(s) in dem Außenspiegel integriert sein. Bei Seitensichtkameras kann(können) die Kamera(s) auch in die vier Säulen an jeder Ecke der Kabine integriert sein.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung vor dem Fahrzeug 900 umfasst (z.B. nach vorne gerichtete Kameras), können für eine Rundumsicht verwendet werden, um nach vorne gerichtete Wege und Hindernisse zu identifizieren, sowie mit Hilfe eines oder mehreren Controllern 936 und/oder Steuer-SoCs dabei zu helfen, wichtige Informationen zum Erzeugen eines Belegungsgitters und/oder zum Bestimmen der bevorzugten Fahrzeugwege bereitzustellen. Nach vorne 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 vorne gerichtete Kameras können auch für ADAS-Funktionen und -Systeme, einschließlich Spurverlassenswarnungen (LDW; Lane Departure Warnings), autonome Geschwindigkeitsregelung (ACC; Autonomous Cruise Control) und/oder andere Funktionen, wie beispielsweise Verkehrszeichenerkennung, verwendet werden.
  • Eine Vielfalt von Kameras kann in einer nach vorne gerichteten Konfiguration verwendet werden, die beispielsweise eine monokulare Kameraplattform umfasst, die einen CMOS(complementary metal oxide semiconductor)-Farbbildgeber umfasst. Ein weiteres Beispiel kann(können) eine Weitwinkelkamera(s) 970 sein, die verwendet werden kann(können), um Objekte wahrzunehmen, die von der Peripherie in Sicht kommen (z.B. Fußgänger, Kreuzverkehr oder Fahrräder). Obwohl nur eine Weitwinkelkamera in 9B veranschaulicht ist, kann es eine beliebige Anzahl von Weitwinkelkameras 970 am Fahrzeug 900 geben. Außerdem kann(können) eine Fernbereichskameras 998 (z.B. ein Langsicht-Stereokamerapaar) zur tiefenbasierten Objekterkennung insbesondere für Objekte verwendet werden, für die ein neuronales Netzwerk noch nicht trainiert wurde. Die Fernbereichskamera(s) 998 kann(können) auch zur Objekterkennung und -klassifizierung sowie auch zur grundlegenden Objektverfolgung eingesetzt werden.
  • Eine oder mehrere Stereokameras 968 können ebenfalls in einer nach vorne gerichteten Konfiguration umfasst sein. Die Stereokamera(s) 968 kann(können) eine integrierte Steuereinheit umfassen, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (FPGA) und einen Mehrkernmikroprozessor mit einer integrierten CAN- oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. Eine derartige Einheit kann verwendet werden, um eine 3D-Karte der Umgebung des Fahrzeugs zu erzeugen, die eine Abstandsschätzung für alle Punkte in dem Bild umfasst. Eine alternative Stereokamera(s) 968 kann(können) einen kompakten Stereosichtsensor(en) umfassen, der zwei Kameraobjektive (je eine links und rechts) und einen Bildverarbeitungschip umfassen kann, der den Abstand von dem Fahrzeug zu dem Zielobjekt messen und die erzeugten Informationen (z.B. Metadaten) verwenden kann, um die autonomen Funktionen der Notbremsung und Spurverlassenswarnung zu aktivieren. Andere Typen einer(von) Stereokamera(s) 968 können zusätzlich zu oder alternativ zu den hier beschriebenen verwendet werden.
  • Kameras mit einem Sichtfeld, das Abschnitte der Umgebung seitlich des Fahrzeugs 900 umfasst (z.B. Seitensichtkameras), können für die Surround-Ansicht verwendet werden und Informationen bereitstellen, die zum Erzeugen und Aktualisieren des Belegungsgitters sowie auch zum Erzeugen von Seitenaufprallwarnungen verwendet werden. Beispielsweise kann(können) die Surround-Kamera(s) 974 (z.B. vier Surround-Kameras 974, wie in 9B veranschaulicht) an dem Fahrzeug 900 positioniert werden. Die Surround-Kamera(s) 974 kann(können) Weitwinkelkamera(s) 970, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder dergleichen umfassen. Beispielsweise können vier Fischaugenkameras an der Vorderseite, der Rückseite und den Seiten des Fahrzeugs positioniert werden. In einer alternativen Anordnung kann das Fahrzeug drei Surround-Kameras 974 (z.B. links, rechts und hinten) verwenden und kann eine oder mehrere andere Kameras (z.B. eine nach vorne gerichtete Kamera) als eine vierte Surround-View-Kamera wirksam einsetzen.
  • Kameras mit einem Sichtfeld, das Abschnitte der Umgebung an der Rückseite des Fahrzeugs 900 umfasst (z.B. Rückfahrkameras), können für eine Einparkhilfe, eine Rundumsicht, Warnungen vor Heckkollision sowie zum Erzeugen und Aktualisieren des Belegungsgitters verwendet werden. Eine weite Vielfalt von Kameras kann verwendet werden, einschließlich, jedoch nicht beschränkt auf, Kameras, die auch als nach vorne gerichtete Kameras geeignet sind (z.B. Fern- und/oder Mittelbereichskameras 998, Stereokameras 968), Infrarotkameras 972, usw.), wie hier beschrieben.
  • 9C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug 900 von 9A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es sei zu verstehen, dass diese und andere hier beschriebene Anordnungen nur als Beispiele dargelegt sind. Andere Anordnungen und Elemente (z.B. Maschinen, Schnittstellen, Funktionen, Reihenfolgen, Gruppierungen von Funktionen usw.) können zusätzlich oder anstelle derjenigen verwendet werden, die gezeigt werden, und einige Elemente können ganz weggelassen werden. Ferner sind viele der hier beschriebenen Elemente funktionale Entitäten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und jedem geeigneten Ort implementiert werden können. Verschiedene Funktionen, die hier als von Entitäten ausgeführt beschrieben werden, können durch Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen durch einen Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt.
  • Jede der Komponenten, Merkmale und Systeme des Fahrzeugs 900 in 9C wird als über den Bus 902 verbunden veranschaulicht. Der Bus 902 kann eine CAN(Controller Area Network)-Datenschnittstelle (alternativ hier als ein „GAN-Bus“ bezeichnet) umfassen. Ein CAN kann ein Netzwerk innerhalb des Fahrzeugs 900 sein, das verwendet wird, um bei der Steuerung verschiedener Merkmale und der Funktionalität des Fahrzeugs 900 zu helfen, wie z.B. Betätigung von Bremsen, Beschleunigung, Bremsen, Lenkung, Scheibenwischern usw. Ein CAN-Bus kann konfiguriert sein, Dutzende oder sogar Hunderte von Knoten jeweils mit seinem eigenen eindeutigen Identifikator (z.B. einer CAN-ID) aufzuweisen. Der CAN-Bus kann ausgelesen werden, um Lenkradwinkel, Bodengeschwindigkeit, Motordrehzahlen pro Minute (U/min), Schalterpositionen und/oder andere Fahrzeugstatusanzeigen zu ermitteln. Der CAN-Bus kann ASIL B-konform sein.
  • Obwohl der Bus 902 hier beschrieben ist, ein CAN-Bus zu sein, ist dies nicht bestimmt, einschränkend zu sein. Beispielsweise kann zusätzlich zu oder alternativ der CAN-Bus, FlexRay und/oder Ethernet verwendet werden. Außerdem ist, obwohl eine einzige Leitung zur Darstellung des Busses 902 verwendet wird, dies nicht bestimmt, einschränkend zu sein. Beispielsweise kann es eine beliebige Anzahl von Bussen 902 geben, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Typen von Bussen mit einem unterschiedlichen Protokoll umfassen können. In einigen Beispielen können zwei oder mehr Busse 902 verwendet werden, um unterschiedliche Funktionen auszuführen und/oder können für Redundanz verwendet werden. Beispielsweise kann ein erster Bus 902 für eine Kollisionsvermeidungsfunktionalität und ein zweiter Bus 902 für eine Betätigungssteuerung verwendet werden. In jedem Beispiel kann jeder Bus 902 mit einer der Komponenten des Fahrzeugs 900 kommunizieren, und zwei oder mehr Busse 902 können mit den gleichen Komponenten kommunizieren. In einigen Beispielen kann jedes SoC 904, jede Steuerung 936 und/oder jeder Computer im Fahrzeug Zugriff auf die gleichen Eingabedaten haben (z.B. Eingaben von Sensoren des Fahrzeugs 900) und mit einem gemeinsamen Bus, wie beispielsweise dem CAN-Bus, verbunden sein.
  • Das Fahrzeug 900 kann einen oder mehrere Controller 936 umfassen, wie beispielsweise jene, die hier in Bezug auf 9A beschrieben sind. Der(die) Controller 936 kann(können) für eine Vielfalt von Funktionen verwendet werden. Der(die) Controller 936 kann(können) mit einer der verschiedenen anderen Komponenten und Systeme des Fahrzeugs 900 gekoppelt werden und kann(können) zur Steuerung des Fahrzeugs 900, der künstlichen Intelligenz des Fahrzeugs 900, des Infotainments für das Fahrzeug 900 und/oder dergleichen verwendet werden.
  • Das Fahrzeug 900 kann ein System(e) auf einem Chip SoC 904 umfassen. Das SoC 904 kann CPU(s) 906, GPU(s) 908, Cache-Speicher 912, Beschleuniger 914, Datenspeicher 916 und/oder andere nicht veranschaulichte Komponenten und Merkmale umfassen. Das(die) SoC(s) 904 kann(können) zur Steuerung des Fahrzeugs 900 in einer Vielfalt von Plattformen und Systemen verwendet werden. Beispielsweise kann(können) das(die) SoC(s) 904 in einem System (z.B. dem System des Fahrzeugs 900) mit einer HD-Karte 922 kombiniert werden, die über eine Netzwerkschnittstelle 924 von einem oder mehreren Servern (z.B. Server(n) 978 der 9D) Kartenaktualisierungen und/oder Updates erhalten kann.
  • Die CPU(s) 906 kann(können) einen CPU-Cluster oder CPU-Komplex (alternativ hier als „CCPLEX“ bezeichnet) umfassen. Die CPU(s) 906 kann(können) mehrere Kerne und/oder L2-Caches umfassen. Beispielsweise kann(können) in einigen Ausführungsformen die CPU(s) 906 acht Kerne in einer kohärenten Multiprozessor-Konfiguration umfassen. In einigen Ausführungsformen kann(können) die CPU(s) 906 vier Dual-Core-Cluster umfassen, wobei jeder Cluster einen dedizierten L2-Cache (z.B. einen 2 MB L2-Cache) aufweist. Die CPU(s) 906 (z.B. der CCPLEX) kann(können) so konfiguriert sein, dass sie einen simultanen Clusterbetrieb unterstützen, wobei eine beliebige Kombination der Cluster der CPU(s) 906 zu einem gegebenen Zeitpunkt aktiv sein kann.
  • Die CPU(s) 906 kann(können) Energieverwaltungsfähigkeiten implementieren, die eine oder mehrere der folgenden Merkmale umfassen: einzelne Hardwareblöcke können durch Clock-Gating automatisch im Leerlauf gesteuert werden, um dynamische Leistung zu sparen; jeder Kerntakt kann durch Gating gesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Befehlen keine aktiven Anweisungen ausführt; jeder Kern kann unabhängig durch Power-Gating gesteuert werden; jeder Kerncluster kann durch Clock-Gating unabhängig gesteuert werden, wenn alle Kerne durch Clock-Gating oder Power-Gating gesteuert werden; und/oder jeder Kerncluster kann unabhängig durch Power-Gating gesteuert werden, wenn alle Kerne durch Power-Gating gesteuert werden. Die CPU(s) 906 kann(können) ferner einen erweiterten Algorithmus zur Verwaltung von Leistungszuständen implementieren, bei dem zulässige Leistungszustände und erwartete Aufwachzeiten spezifiziert sind, und die Hardware/der Mikrocode bestimmt den besten Leistungszustand, der für den Kern, den Cluster und den CCPLEX einzugeben ist. Die Verarbeitungskerne können vereinfachte Eingangssequenzen für den Leistungszustand in der Software unterstützen, wobei die Arbeit auf einen Mikrocode abgeladen wird.
  • Die GPU(s) 908 kann(können) eine integrierte GPU(s) umfassen (alternativ hier als „iGPU“ bezeichnet). Die GPU(s) 908 kann(können) programmierbar und für parallele Arbeitslasten effizient sein. Die GPU(s) 908 kann(können) in einigen Beispielen einen erweiterten Tensorbefehlssatz verwenden. Die GPU(s) 908 kann(können) einen oder mehrere Streaming-Mikroprozessoren umfassen, wobei jeder Streaming-Mikroprozessor einen L1-Cache (z.B. einen L1-Cache mit mindestens 96KB Speicherkapazität) umfassen kann, und zwei oder mehrere der Streaming-Mikroprozessoren sich einen L2-Cache (z.B. einen L2-Cache mit einer Speicherkapazität von 512 KB) teilen können. In einigen Ausführungsformen kann(können) die GPU(s) 908 mindestens acht Streaming-Mikroprozessoren umfassen. Der(die) GPU(s) 908 kann(können) eine Anwendungsprogrammierschnittstelle(n) (API(s); Application Programming Interface(s)) verwenden. Außerdem kann(können) die GPU(s) 908 eine oder mehrere parallele Computerplattformen und/oder Programmiermodelle (z.B. NVIDIA's CUDA) verwenden.
  • Die GPU(s) 908 kann(können) zur besten Leistung in Automobil- und eingebetteten Anwendungsfällen leistungsoptimiert sein. Beispielsweise kann(können) die GPU(s) 908 auf einem Fin-Feldeffekttransistor(FinFET) hergestellt werden. Dies ist jedoch nicht als Einschränkung bestimmt und die GPU(s) 908 kann(können) mit anderen Halbleiterherstellungsverfahren hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Anzahl von gemischtpräzisen Verarbeitungskernen umfassen, die in mehrere Blöcke unterteilt sind. Beispielsweise und ohne Einschränkung können 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke unterteilt werden. In einem derartigen Beispiel kann jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA TENSOR COREs mit gemischter Präzision für Deep-Learning-Matrix-Arithmetik, ein L0-Befehlscache, ein Warp-Scheduler, eine Dispositionseinheit und/oder eine 64 KB-Registerdatei zugeteilt werden. Außerdem können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkommadatenpfade umfassen, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnung und Adressierungsberechnungen zu gewährleisten. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Scheduling-Funktionalität umfassen, um eine feinere Synchronisation und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Daten-Cache und eine gemeinsame Speichereinheit umfassen, um die Leistung zu verbessern, während die Programmierung vereinfacht wird.
  • Die GPU(s) 908 kann(können) einen Speicher mit hoher Bandbreite (HBM; High Bandwidth Memory) und/oder ein 16 GB HBM2-Speichersubsystem umfassen, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich zu oder alternativ von dem HBM-Speicher ein synchroner Graphik-Random-Access-Speicher (SGRAM) verwendet werden, wie beispielsweise ein fünf synchrone Graphik-Doppel-Datenraten-Speicher (Graphics Double Data Rate Type Five Synchronous Random-Access Memory, GDDR5).
  • Die GPU(s) 908 kann(können) eine Unified Memory-Technologie einschließlich Zugriffszählern umfassen, um eine genauere Migration von Speicherseiten zu dem Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz der zwischen den Prozessoren geteilten Speicherbereiche verbessert wird. In einigen Beispielen kann die Unterstützung von Adressübersetzungsdiensten (Address Translation Services; ATS) verwendet werden, um der(den) GPU(s) 908 zu ermöglichen, direkt auf die Seitentabellen der CPU(s) 906 zugreifen kann(können). In derartigen Beispielen kann, wenn die Speicherverwaltungseinheit (MMU) der GPU(s) 908 einen Fehlzugriff erfährt, eine Adressübersetzungsanforderung an die CPU(s) 906 gesendet werden. Als Antwort darauf kann(können) die CPU(s) 906 in ihren Seitentabellen nach der virtuelle-in-physikalische Mapping für die Adresse suchen und die Übersetzung zurück an die GPU(s) 908 senden. Als solche kann die Unified Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 906 als auch der GPU(s) 908 ermöglichen, wodurch die Programmierung und Portierung von Anwendungen auf die GPU(s) 908 vereinfacht wird.
  • Außerdem kann(können) die GPU(s) 908 einen Zugriffszähler umfassen, der die Häufigkeit eines Zugriffs der GPU(s) 908 auf den Speicher anderer Prozessoren nachverfolgen kann. Der Zugriffszähler kann dazu beitragen, dass Speicherseiten in den physischen Speicher des Prozessors verschoben werden, der am häufigsten auf die Seiten zugreift.
  • Der(die) SoC(s) 904 kann(können) eine beliebige Anzahl von Cache(s) 912 umfassen, einschließlich derjenigen der hier beschriebenen. Beispielsweise kann(können) der(die) Cache(s) 912 einen L3-Cache umfassen, der sowohl für die CPU(s) 906 als auch die GPU(s) 908 verfügbar ist (z.B. der sowohl mit der(den) CPU(s) 906 und der(den) GPU(s) 908 verbinden ist). Der(die) Cache(s) 912 kann(können) einen Write-Back-Cache umfassen, der den Zustand der Leitungen nachverfolgt, wie beispielsweise durch Verwendung eines Cache-Kohärenzprotokolls (z.B. MEI, MESI, MSI, usw.). Der L3-Cache kann abhängig von der Ausführungsform 4 MB oder mehr umfassen, obwohl kleinere Cachegrößen verwendet werden können.
  • Das(die) SoC(s) 904 kann(können) einen oder mehrere Beschleuniger 914 umfassen (z.B. Hardwarebeschleuniger, Softwarebeschleuniger oder eine Kombination davon). Beispielsweise kann(können) die SoC(s) 904 einen Hardwarebeschleunigungscluster umfassen, der optimierte Hardwarebeschleuniger und/oder einen großen On-Chip-Speicher umfassen kann. Der große On-Chip-Speicher (z.B. 4 MB SRAM) kann es dem Hardwarebeschleunigungscluster ermöglichen, neuronale Netzwerke und andere Berechnungen zu beschleunigen. Der Hardwarebeschleunigungscluster kann verwendet werden, um die GPU(s) 908 zu ergänzen und einige der Aufgaben der GPU(s) 908 auszulagern (z.B. um mehr Zyklen der GPU(s) 908 für die Ausführung anderer Aufgaben freizugeben). Als Beispiel kann(können) der(die) Beschleuniger 914 für gezielte Arbeitslasten (z.B. Wahrnehmung, faltende neuronale Netzwerke (CNNs; Convolutional Neural Networks), usw.) verwendet werden, die für eine Beschleunigung stabil genug sind. Der Begriff „CNN“, wie hier verwendet, kann alle Typen von CNNs einschließlich Regionen-basierte oder regionale faltende neuronale Netzwerke (regional Convolutional Neural Networks; RCNNs) und Fast RCNNs (z.B. wie zur Objekterkennung verwendet) umfassen.
  • Der(die) Beschleuniger 914 (z.B. der Hardwarebeschleunigungscluster) kann(können) einen Beschleuniger für tiefes Lernen (DLA(s); Deep Learning Accelerator(s)) umfassen. Die DLA(s) kann(können) eine oder mehrere Tensor-Verarbeitungseinheiten (TPUs; Tensor Processing Units) umfassen, die konfiguriert sein können, um zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferenzieren bereitzustellen. Die TPUs kann(können) Beschleuniger sein, die für die Durchführung von Bildverarbeitungsfunktionen konfiguriert und optimiert sind (z.B. für CNNs, RCNNs usw.). Der(die) DLA(s) kann (können) ferner für einen bestimmten Satz von neuronalen Netzwerktypen und Gleitkommaoperationen sowie zur Inferenzierung optimiert sein. Die Ausgestaltung der DLA(s) kann mehr Leistung pro Millimeter bieten als ein Universal-Graphikprozessor und übersteigt bei weitem die Leistung einer CPU. Die TPU(s) kann(können) mehrere Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die beispielsweise Merkmale und Gewichtungen bei den Datentypen INT8, INT16 und FP16 sowie auch Postprozessorfunktionen unterstützt.
  • Der(die) DLA(s) kann(können) neuronale Netzwerke, insbesondere CNNs, schnell und effizient an verarbeiteten oder unverarbeiteten Daten für beliebige einer Vielfalt von Funktionen ausführen, einschließlich beispielsweise und ohne Einschränkung: ein CNN zur Objektidentifikation und -erkennung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Abstandsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Fahrzeugerkennung und - identifikation und -erkennung unter Verwendung von Daten aus Mikrophonen; ein CNN zur Gesichtserkennung und Fahrzeughalteridentifikation unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für Sicherheit und/oder sicherheitsbezogene Ereignisse.
  • Der(die) DLA(s) kann(können) jede beliebige Funktion der GPU(s) 908 ausführen und durch die Verwendung eines Inferenzbeschleunigers kann ein Designer beispielsweise für jede Funktion entweder die DLA(s) oder die GPU(s) 908 ansprechen. Beispielsweise kann sich der Designer auf die Verarbeitung von CNNs und Gleitkommaoperationen auf dem(den) DLA(s) konzentrieren und andere Funktionen dem(den) GPU(s) 908 und/oder einem anderem(anderen) Beschleuniger(n) 914 überlassen.
  • Der(die) Beschleuniger 914 (z.B. der Hardwarebeschleunigungscluster) kann(können) einen programmierbaren Visionsbeschleuniger (PVA; Programmable Vision Accelerator) umfassen, der hier alternativ als Computer Vision Accelerator bezeichnet werden kann. Der(die) PVA(s) kann(können) so ausgestaltet und konfiguriert sein, dass sie die Bildverarbeitungsalgorithmen für die Anwendungen der fortgeschrittene Fahrerassistenzsysteme (ADAS; Advanced Driver Assistance Systems), autonomen Fahrens und/oder der Augmented Reality (AR) und/oder Virtual Reality (VR) beschleunigen. Der(die) PVA(s) kann(können) ein Gleichgewicht zwischen Leistung und Flexibilität bereitstellen. Jede(r) PVA(s) kann(können) beispielsweise ohne Einschränkung eine beliebige Anzahl von Computerprozessor mit reduziertem Befehlssatzkernen (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 der hier beschriebenen Kameras), Bildsignalprozessor(en) und/oder dergleichen wechselwirken. Jeder der RISC-Kerne kann eine beliebige Menge an Speicher umfassen. Die RISC-Kerne können je nach Ausführungsform eines einer 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 mit einer oder mehreren integrierten Schaltungsvorrichtungen, anwendungsspezifischen integrierten Schaltungen (Application Specific Integrated Circuits; ASICs) und/oder Speichervorrichtungen implementiert werden. Beispielsweise können die RISC-Kerne einen Befehls-Cache und/oder einen eng gekoppelten RAM umfassen.
  • Der DMA kann Komponenten des(der) PVA(s) ermöglichen, unabhängig von der(den) CPU(s) 906 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Merkmalen unterstützen, die zur Optimierung des PVA verwendet werden, einschließlich, jedoch nicht beschränkt auf, der Unterstützung multidimensionaler Adressierung und/oder zirkulärer Adressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, welche die Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockstufen, vertikale Blockstufen und/oder Tiefenstufen umfassen können.
  • Die Vektorprozessoren können programmierbare Prozessoren sein, die ausgestaltet sein können, dass sie die Programmierung für Computer-Vision-Algorithmen effizient und flexibel durchführen und Signalverarbeitungsfähigkeiten bereitstellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystem-Partitionen umfassen. Der PVA-Kern kann ein Prozessorsubsystem, ein DMA-Engine(s) (z.B. zwei DMA-Engines) und/oder andere Peripheriegeräte umfassen. Das Vektorverarbeitungs-Subsystem kann als die primäre Verarbeitungs-Engine des PVA fungieren und kann eine Vektorverarbeitungseinheit (VPU; Vector Processing Unit), einen Befehls-Cache und/oder einen Vektorspeicher (z.B. VMEM; Vector Memory) umfassen. Ein VPU-Kern kann einen digitalen Signalprozessor, wie beispielsweise einen digitalen Signalprozessor mit mehreren Daten (SIMD; Single Instruction, Multiple Data) und einen digitalen Signalprozessor mit sehr langem Befehlswort (VLIW; Very Long Instruction Word) umfassen. Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.
  • Jeder der Vektorprozessoren kann einen Befehls-Cache umfassen und mit einem dedizierten Speicher gekoppelt sein. Als Ergebnis kann in einigen Beispielen jeder der Vektorprozessoren konfiguriert sein, um unabhängig von den anderen Vektorprozessoren ausführen zu können. In anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA umfasst sind, konfiguriert sein, um Datenparallelität anzuwenden. Beispielsweise können in einigen Ausführungsformen mehrere, in einem einzigen PVA enthaltene Vektorprozessoren, den gleichen Computer-Vision-Algorithmus jedoch auf verschiedenen Bereichen 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 ausführen oder sogar verschiedene Algorithmen an sequentiellen Bildern oder Teile eines Bildes ausführen. Unter anderem können beliebig viele PVAs in dem Hardwarebeschleunigungscluster und beliebig viele Vektorprozessoren in jedem der PVAs eingebunden werden. Außerdem kann(können) die PVA(s) zusätzlichen ECC-(Error Correcting Code)-Speicher umfassen, um die Gesamtsystemsicherheit zu erhöhen.
  • Der(die) Beschleuniger 914 (z.B. der Hardwarebeschleunigungscluster) kann(können) ein On-Chip-Computer-Vision-Netzwerk und SRAM umfassen, um ein SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 914 bereitzustellen. In einigen Beispielen kann der On-Chip-Speicher mindestens 4 MB SRAM umfassen, der beispielsweise aus acht feldkonfigurierbaren Speicherblöcken besteht, die sowohl für den PVA als auch für den DLA zugänglich sind. Jedes Speicherblockpaar kann eine erweiterte APB-Schnittstelle (Advanced Peripheral Bus interface), Konfigurationsschaltungen, einen Controller und einen Multiplexer umfassen. Es kann eine beliebige Art von Speicher verwendet werden. Der PVA und DLA kann über ein Backbone auf den Speicher zugreifen, das dem PVA und DLA einen Hochgeschwindigkeitszugriff auf den Speicher bereitstellt. Das Backbone kann ein On-Chip Computer-Vision-Netzwerk umfassen, das das PVA und das DLA mit dem Speicher (z.B. unter Verwendung des APB) verbindet.
  • Das On-Chip-Computer-Vision-Netzwerk kann eine Schnittstelle umfassen, die vor der Übertragung irgendwelcher Steuersignalen/Adressen/Daten bestimmt, dass sowohl der PVA als auch der DLA bereite und gültige Signale bereitstellen. Eine derartige Schnittstelle kann getrennte Phasen und getrennte Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-Kommunikation für den kontinuierlichen Datentransfer vorsehen. 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 kann(können) das(die) SoC(s) 904 einen Echtzeit-Raytracing-Hardwarebeschleuniger umfassen, wie beispielweise in der U.S. Patentanmeldung Nr. 16/101,232 , eingereicht am 10. August 2018, beschrieben ist. 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.
  • Der(die) Beschleuniger 914 (z.B. der Hardwarebeschleuniger-Cluster) weist(weisen) eine breite Anordnung von Verwendungen für autonomes Fahren auf. Der PVA kann ein programmierbarer Vision-Beschleuniger sein, der 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, die eine vorhersagbare Verarbeitung bei geringer Leistungsaufnahme und geringer Latenzzeit benötigen. Mit anderen Worten kann der PVA bei semidichtem oder dichtem regulärem Rechnen selbst bei kleinen Datensätzen gut arbeiten, die vorhersagbare Laufzeiten mit geringer Latenz und geringer Leistung benötigen. Somit können die PVAs im Kontext von Plattformen für autonome Fahrzeuge so ausgestaltet sein, um klassische Computer-Vision-Algorithmen auszuführen, weil sie typischerweise bei der Objekterkennung 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 semiglobaler Abgleich-basierter Algorithmus verwendet werden, der jedoch nicht bestimmt ist, einschränkend zu sein. Viele Anwendungen für autonomes Fahren der Stufe 3-5 erfordern eine Bewegungsschätzung/on-the-fly Stereoabgleich (z.B. Struktur aus Bewegung, Fußgängererkennung, Spurerkennung usw.). Der PVA kann eine Computer-Stereo-Vision-Funktion an Eingaben von zwei Monokularkameras ausführen.
  • In einigen Beispielen kann der PVA zur Durchführung von dichtem optischem Fluss verwendet werden, um demgemäß rohe RADAR-Daten (z.B. unter Verwendung einer 4D Fast Fourier Transformation) zu verarbeiten, um verarbeiteten RADAR bereitzustellen. In anderen Beispielen wird der PVA für die Time-of-Flight-Tiefenverarbeitung verwendet, indem Rohdaten von Flugdaten verarbeitet werden, um beispielsweise verarbeitete Flugzeitdaten bereitzustellen.
  • Der DLA kann verwendet werden, um jede Art von Netzwerk zu betreiben, um die Kontrolle und Fahrsicherheit zu erhöhen, einschließlich beispielsweise eines neuronalen Netzwerks, das ein Maß an Vertrauen für jede Objekterkennung ausgibt. Ein derartiger Vertrauenswert kann als Wahrscheinlichkeit oder als Bereitstellung einer relativen „Gewichtung“ jeder Erkennung im Vergleich zu anderen Erkennungen interpretiert werden. Dieser Vertrauenswert kann von dem System verwendet werden, um weitere Entscheidungen hinsichtlich dessen zu treffen, welche Erkennungen als echt positive Erkennungen und nicht als falsch positive Erkennungen zu betrachten sind. Das System kann beispielsweise einen Schwellenwert für das Vertrauen festlegen und nur die den Schwellenwert übersteigenden Erkennungen als echt positive Erkennungen betrachten. In einem automatischen Notbremssystem (Automatic Emergency Braking System; AEB-System) würden falsch positive Erkennungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was offensichtlich unerwünscht ist. Daher sollten nur die vertrauensvollsten Erkennungen als Auslöser für die AEB betrachtet werden. Der DLA kann ein neuronales Netzwerk zur Regression des Vertrauenswerts betreiben. Das neuronale Netzwerk kann mindestens eine Teilmenge von Parametern als seine Eingabe verwenden, wie beispielsweise Abmessungen eines Begrenzungskastens, einer Schätzung der Bodenebene (z.B. von einem anderen Subsystem erhalten), eine Ausgabe eines Sensors 966 der Trägheitsmesseinheit (IMU), die mit der Orientierung des Fahrzeugs 900 korreliert, einen Abstand, 3D-Positionsschätzungen des Objekts, die von dem neuronalen Netzwerk und/oder von anderen Sensoren (z.B. LIDAR-Sensor(en) 964 oder RADAR-Sensor(en) 960) stammen.
  • Der(die) SoC(s) 904 kann(können) Datenspeicher 916 (z.B. Speicher) umfassen. Der(die) Datenspeicher 916 kann(können) ein On-Chip-Speicher des(der) SoC(s) 904 sein, der neuronale Netzwerke speichern kann, die auf der GPU und/oder dem DLA ausgeführt werden sollen. In einigen Beispielen kann(können) der(die) Datenspeicher 916 in der Kapazität groß genug sein, um mehrere Instanzen neuronaler Netzwerke für Redundanz und Sicherheit zu speichern. Der(die) Datenspeicher 912 kann(können) einen L2- oder L3-Cache(s) 912 umfassen. Die Bezugnahme auf den(die) Datenspeicher 916 kann eine Bezugnahme auf den Speicher umfassen, der dem PVA, DLA und/oder einem anderen Beschleuniger(n) 914 zugeordnet ist, wie hier beschrieben.
  • Das(die) SoC(s) 904 kann(können) einen oder mehrere Prozessor(en) 910 (z.B. eingebettete Prozessoren) umfassen. Der(die) Prozessor(en) 910 kann(können) einen Boot- und Power-Management-Prozessor umfassen, der ein dedizierter Prozessor und ein Subsystem sein kann, um Boot-Power- und Management-Funktionen und die damit assoziierte Sicherheitserzwingung zu handhaben. Der Boot- und Power-Management-Prozessor kann ein Teil der Boot-Sequenz des(der) SoC(s) 904 sein und zur Laufzeit Power-Management-Dienste bereitstellen. Der Boot-Power- und Management-Prozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen mit niedrigem Leistungsverbrauch, Verwaltung von Thermik- und Temperatursensoren von SoC(s) 904 und/oder Verwaltung der Leistungszustände von SoC(s) 904 bereitstellen. Jeder Temperatursensor kann als Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und das(die) SoC(s) 904 kann(können) die Ringoszillatoren verwenden, um Temperaturen der CPU(s) 906, GPU(s) 908 und/oder Beschleuniger 914 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) 904 in einen niedrigeren Leistungszustand versetzen und/oder das Fahrzeug 900 in einen Chauffeur-zu-sicheren-Stoppmodus versetzen (z.B. das Fahrzeug 900 zu einem sicheren Halt bringen).
  • Der(die) Prozessor(en) 910 kann(können) ferner eine Reihe von eingebetteten Prozessoren umfassen, die als eine Audioverarbeitungs-Engine dienen können. Die Audioverarbeitungs-Engine kann ein Audiosubsystem 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 Audioverarbeitungsmaschine ein dedizierter Prozessorkern mit einem Digitalsignalprozessor mit dediziertem RAM.
  • Der(die) Prozessor(en) 910 kann(können) ferner eine Always-On-Prozessor-Engine umfassen, die notwendige Hardware-Merkmale bereitstellen kann, um die Verwaltung von Sensoren mit niedriger Leistung und Aufwachanwendungen zu unterstützen. Die Always-On-Prozessor-Engine kann einen Prozessorkern, ein eng gekoppeltes RAM, die Unterstützung von Peripherievorrichtungen (z.B. Zeitgeber und Interrupt-Controller), verschiedene E/A-Controller-Peripheriegeräte und Routinglogik umfassen.
  • Der(die) Prozessor(en) 910 kann(können) ferner eine Sicherheits-Cluster-Engine umfassen, die ein dediziertes Prozessorsubsystem für das Sicherheitsmanagement für Automobilanwendungen umfasst. Die Sicherheits-Cluster-Engine kann zwei oder mehr Prozessorkerne, ein eng gekoppeltes RAM, Unterstützung von Peripherievorrichtungen (z.B. Zeitgeber, Interrupt-Controller usw.) und/oder Routinglogik umfassen. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Lockstep-Modus arbeiten und als einzelner Kern mit Vergleichslogik fungieren, um jegliche Unterschiede zwischen ihren Operationen zu erkennen.
  • Der(die) Prozessor(en) 910 kann (können) ferner eine Echtzeit-Kamera-Engine umfassen, die ein dediziertes Prozessor-Subsystem für die Handhabung des Echtzeit-Kamera-Managements umfassen kann.
  • Der(die) Prozessor(en) 910 kann(können) ferner einen Signalprozessor mit hohem Dynamikbereich umfassen, der einen Bildsignalprozessor umfassen kann, der eine Hardware-Engine ist, die Teil der Kameraverarbeitung-Pipeline ist.
  • Der(die) Prozessor(en) 910 kann(können) einen Videobild-Compositor umfassen, der ein Verarbeitungsblock sein kann (z.B. auf einem Mikroprozessor implementiert), der Funktionen zur Videonachbearbeitung implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Player-Fenster zu erzeugen. Der Videobild-Compositor kann eine Objektivverzerrungskorrektur an Weitwinkelkameras 970, Surround-Kameras 974 und/oder an kabineninternen Kamerasensoren durchführen. Der kabineninterne Überwachungskamerasensor wird vorzugsweise von einem neuronalen Netzwerk überwacht, das auf einer anderen Instanz des Advanced SoC läuft und konfiguriert ist, um Ereignisse in der Kabine zu identifizieren und entsprechend zu reagieren. Ein Kabinensystem kann Lippenlesen durchführen, um den Mobilfunk zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, das Ziel des Fahrzeugs zu ändern, das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachaktiviertes Internetsurfen anzubieten. 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 für sowohl räumliche als auch zeitliche Rauschunterdrückung umfassen. Wenn beispielsweise eine Bewegung in einem Video stattfindet, kann die Rauschunterdrückung räumliche Information dementsprechend gewichten und das Gewicht der von benachbarten Einzelbildern bereitgestellten Information verringern. Wenn ein Bild oder ein Teil eines Bildes keine Bewegung umfasst, kann die vom Videobild-Compositor durchgeführte zeitliche Rauschunterdrückung Information aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu verringern.
  • Der Videobild-Compositor kann ebenfalls konfiguriert sein, um eine Stereogleichrichtung für Eingangs-Stereolinseneinzelbilder durchzuführen. Der Videobild-Compositor kann ferner für eine Zusammensetzung der Benutzeroberfläche verwendet werden, wenn der Desktop des Betriebssystems verwendet wird und die GPU(s) 908 nicht erforderlich ist(sind), um kontinuierlich neue Oberflächen darzustellen. Selbst wenn die GPU(s) 908 eingeschaltet und aktiv ist(sind) und 3D-Rendering durchführt/durchführen, kann der Videobild-Compositor verwendet werden, um die GPU(s) 908 zu entlasten und die Leistung und Reaktionsfähigkeit zu verbessern.
  • Das(die) SoC(s) 904 kann(können) ferner eine serielle MIPI-Kameraschnittstelle (Mobile Industry Processor Interface) zum Empfangen von Video und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingangsblock umfassen, der für Kamera- und zugehörige Pixeleingabefunktionen verwendet werden kann. Das(die) SoC(s) 904 kann(können) ferner einen Eingabe-/Ausgabe-Controller umfassen, der(die) durch Software gesteuert werden kann(können) und zum Empfangen von E/A-Signalen verwendet werden kann(können), die nicht an eine spezifische Rolle gebunden sind.
  • Das(die) SoC(s) 904 kann(können) ferner einen breiten Bereich von Peripherieschnittstellen umfassen, um die Kommunikation mit Peripherievorrichtungen, Audiocodecs, Leistungsverwaltung und/oder anderen Vorrichtungen zu ermöglichen. Das(die) SoC(s) 904 kann(können) verwendet werden, um Daten von Kameras (z.B. über Gigabit Multimedia Serial Link und Ethernet verbunden), Sensoren (z.B. LIDAR-Sensor(en) 964, RADAR-Sensor(en) 960, usw., die über Ethernet verbunden sein können), Daten von Bus 902 (z.B. Fahrzeuggeschwindigkeit 900, Lenkradposition usw.), Daten von GNSS-Sensor(en) 958 (z.B. über Ethernet oder CAN-Bus verbunden) zu verarbeiten. Das (die) SoC(s) 904 kann (können) ferner dedizierte Hochleistungs-Massenspeicher-Controller umfassen, die ihre eigenen DMA-Engines umfassen können und die verwendet werden können, um die CPU(s) 906 von Routinedatenverwaltungsaufgaben zu entlasten.
  • Das (die) SoC(s) 904 kann(können) eine Ende-zu-Ende-Plattform mit einer flexiblen Architektur sein, die sich über die Automatisierungsstufen 3-5 erstreckt und somit eine umfassende funktionale Sicherheitsarchitektur bereitstellt, die Computer-Vision- und ADAS-Techniken für Diversität und Redundanz nutzt und effizient einsetzt, eine Plattform für einen flexiblen, zuverlässigen Treiber-Software-Stapel zusammen mit Deep-Learning-Mechanismen darstellt. Das(die) SoC(s) 904 kann(können) schneller, zuverlässiger, energieeffizienter und platzsparender sein als herkömmliche Systeme. Beispielsweise kann(können) der(die) Beschleuniger 914 in Kombination mit der(den) CPU(s) 906, der(den) GPU(s) 908 und dem(den) Datenspeicher(n) 916 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bieten.
  • Die Technologie stellt somit Fähigkeiten und eine Funktionalität bereit, die mit herkömmlichen Systemen nicht erreicht werden können. Beispielsweise können Computer-Vision-Algorithmen auf CPUs ausgeführt werden, die mit einer hochrangigen Programmiersprache, wie der Programmiersprache C, konfiguriert sein können, um eine weite Vielfalt von Verarbeitungsalgorithmen mit einer weiten Vielfalt von visuellen Daten auszuführen. Allerdings sind CPUs oft nicht in der Lage, die Leistungsanforderungen vieler Bildverarbeitungsanwendungen zu erfüllen, wie beispielsweise jene bezogen auf Ausführungszeit und Leistungsverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, was für ADAS-Anwendungen im Fahrzeug und für praktische autonome Fahrzeuge der Stufe 3-5 erforderlich sein kann.
  • Im Gegensatz zu herkömmlichen Systemen ermöglicht die hier beschriebene Technologie durch Bereitstellen eines CPU-Komplexes, eines GPU-Komplexes und eines Hardwarebeschleunigungsclusters, dass mehrere neuronale Netzwerke gleichzeitig und/oder sequentiell verwendet werden können und die Ergebnisse zusammen kombiniert werden, um eine autonome Fahrfunktionalität der Stufe 3-5 zu ermöglichen. Beispielsweise kann ein CNN, das auf dem DLA oder der dGPU ausgeführt wird (z.B. der GPU(s) 920), eine Text- und Worterkennung umfassen, so dass der Supercomputer Verkehrszeichen lesen und verstehen kann, einschließlich Zeichen, für die das neuronale Netzwerk nicht speziell trainiert wurde. Das DLA kann ferner ein neuronales Netzwerk umfassen, das in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und semantisch zu verstehen und dieses semantische Verständnis an die auf dem CPU-Komplex laufenden Wegplanungsmodule weiterzugeben.
  • Als weiteres Beispiel können mehrere neuronale Netzwerke gleichzeitig ausgeführt werden, wie es für das Fahren auf Stufe 3, 4 oder 5 erforderlich ist. Beispielsweise kann ein Warnzeichen bestehend aus „Vorsicht: Blinklichter zeigen eisige Zustände an“ zusammen mit einer elektrischen Lichtquelle von mehreren neuronalen Netzen unabhängig oder gemeinsam interpretiert werden. Das Schild selbst kann durch ein erstes eingesetztes neuronales Netzwerk (z.B. ein neuronales Netzwerk, das trainiert wurde) als Verkehrszeichen identifiziert werden, der Text „Blinklichter zeigen eisige Zustände an“ kann durch ein zweites eingesetztes neuronales Netzwerk interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (vorzugsweise auf dem CPU-Komplex) darüber informiert, dass bei Erkennung von blinkenden Lichtern eisige Bedingungen vorliegen. Das blinkende Licht kann identifiziert werden, indem ein drittes eingesetztes neuronales Netzwerk über mehrere Einzelbilder betrieben wird, das die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von blinkenden Lichtern informiert. Alle drei neuronalen Netzwerke können z.B. innerhalb des DLA und/oder auf der GPU(s) 908 gleichzeitig ausgeführt werden.
  • In einigen Beispielen kann ein CNN zur Gesichtserkennung und Fahrzeughalteridentifikation Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder eines Eigentümers des Fahrzeugs 900 zu identifizieren. Die Always-On-Sensor-Verarbeitungs-Engine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Eigentümer der Fahrertür nähert, und die Lichter einzuschalten, und um das Fahrzeug im Sicherheitsmodus zu deaktivieren, wenn der Eigentümer das Fahrzeug verlässt. Auf diese Weise bietet(bieten) die SoC(s) 904 Schutz vor Diebstahl und/oder Fahrzeugraub.
  • In einem weiteren Beispiel kann ein CNN zur Erkennung und Identifizierung von Rettungsfahrzeugen Daten aus den Mikrophonen 996 verwenden, um Sirenen von Rettungsfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifizierer verwenden, um Sirenen zu erkennen und Merkmale manuell zu extrahieren, verwendet(verwenden) das(die) SoC(s) 904 das CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. In einer bevorzugten Ausführungsform wird das CNN, das auf dem DLA läuft, trainiert, um die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs zu identifizieren (z.B. durch Verwendung des Doppler-Effekts). Das CNN kann ebenfalls trainiert werden, um Rettungsfahrzeuge zu identifizieren, die spezifisch für das lokale Gebiet sind, in dem das Fahrzeug eingesetzt wird, wie durch GNSS-Sensor(en) 958 identifiziert. So wird beispielsweise das CNN beim Arbeiten in Europa versuchen, europäische Sirenen zu erkennen, und wenn es in den Vereinigten Staaten ist, wird das CNN versuchen, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Rettungsfahrzeug erfasst ist, kann ein Steuerprogramm verwendet werden, um eine Notfallroutine für die Fahrzeugsicherheit auszuführen, das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug mit Hilfe von Ultraschallsensoren 962 im Leerlauf zu halten, bis das(die) Rettungsfahrzeug(e) vorbeifährt(vorbeifahren).
  • Das Fahrzeug kann eine CPU(s) 918 (z.B. diskrete CPU(s) oder dCPU(s)) umfassen, die über eine Hochgeschwindigkeitsverbindung (z.B. PCIe) mit dem(den) SoC(s) 904 gekoppelt werden kann(können). Die CPU(s) 918 kann(können) beispielsweise einen X86-Prozessor umfassen. Die CPU(s) 918 kann(können) beispielsweise verwendet werden, um eine Vielfalt von Funktionen auszuführen, einschließlich der Arbitrierung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem(den) SoC(s) 904 und/oder der beispielhaften Überwachung von Status und Gesundheitszustand des(der) Controllers 936 und/oder des Infotainment-SoC 930.
  • Das Fahrzeug 900 kann eine GPU(s) 920 (z.B. diskrete GPU(s) oder dGPU(s)) umfassen, die über eine Hochgeschwindigkeitsverbindung (z.B. NVIDIAs NVLINK) mit dem(den) SoC(s) 904 gekoppelt werden kann(können). Die GPU(s) 920 kann(können) eine zusätzliche Funktionalität künstlicher Intelligenz beispielsweise durch die Ausführung redundanter und/oder verschiedener neuronaler Netzwerke bereitstellen, und können verwendet werden, um neuronale Netzwerke basierend auf Eingaben (z.B. Sensordaten) von Sensoren des Fahrzeugs 900 zu trainieren und/oder zu aktualisieren.
  • Das Fahrzeug 900 kann ferner die Netzwerkschnittstelle 924 umfassen, die eine oder mehrere drahtlose Antennen 926 umfassen kann (z.B. eine oder mehrere drahtlose Antennen für unterschiedliche Kommunikationsprotokolle, wie beispielsweise eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die Netzwerkschnittstelle 924 kann verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z.B. mit dem(den) Server(n) 978 und/oder anderen Netzwerkvorrichtungen), mit anderen Fahrzeugen und/oder mit Rechenvorrichtungen (z.B. Client-Vorrichtungen von Fahrgästen) 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 über das Internet) hergestellt werden. Direkte Verbindungen können über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung bereitgestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 900 Information über Fahrzeuge in der Nähe des Fahrzeugs 900 bereitstellen (z.B. Fahrzeuge vor, an der Seite und/oder hinter dem Fahrzeug 900). Diese Funktionalität kann Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 900 sein.
  • Die Netzwerkschnittstelle 924 kann ein SoC umfassen, das Modulations- und Demodulationsfunktionalität bereitstellt und dem(den) Controller(n) 936 eine Kommunikation über drahtlose Netzwerke ermöglicht. Die Netzwerkschnittstelle 924 kann ein Hochfrequenz-Frontend für eine Aufwärtskonvertierung von einem Basisband zur Hochfrequenz und eine Abwärtskonvertierung von der Hochfrequenz in das Basisband umfassen. Die Frequenzumwandlungen können durch wohlbekannte Verfahren und/oder durch Superheterodyn-Verfahren durchgeführt werden. In einigen Beispielen kann die Radiofrequenz-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 900 kann ferner Datenspeicher 928 umfassen, die auch Off-Chip-Speicher (z.B. außerhalb des(der) SoC((s) 904) Speichers) umfassen können. Der(die) Datenspeicher 928 können ein oder mehrere Speicherelemente einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Vorrichtungen umfassen, die mindestens ein Bit Daten speichern können.
  • Das Fahrzeug 900 kann ferner einen oder mehrere GNSS-Sensoren 958 umfassen. Der(die) GNSS-Sensor(en) 958 (z.B. GPS- und/oder assistierte GPS-Sensoren) hilft(helfen) bei der Kartierung, Wahrnehmung, Belegungsgittererzeugung und/oder der Wegplanungsfunktionen. Es kann eine beliebige Anzahl von GNSS-Sensoren 958 verwendet werden, einschließlich beispielsweise und ohne Einschränkung eines GPS mit einem USB-Anschluss und einer Ethernet-Seriell-(RS-232)-Brücke.
  • Das Fahrzeug 900 kann ferner einen RADAR-Sensor(en) 960 umfassen. Der(die) RADAR-Sensor(en) 960 kann(können) von dem Fahrzeug 900 zur Fahrzeugerkennung mit großer Reichweite selbst bei Dunkelheit und/oder extremen Wetterbedingungen verwendet werden. Die funktionalen Sicherheitsstufen von RADAR können ASIL B sein. Der(die) RADAR-Sensoren 960 können den CAN- und/oder den Bus 902 verwenden (z.B. um Daten zu übertragen, die von den RADAR-Sensoren 960 erzeugt werden), zur Steuerung und zum Zugriff auf Objektverfolgungsdaten, in einigen Beispielen mit Zugriff auf Ethernet zum Zugriff auf Rohdaten. Es können eine weite Vielfalt von RADAR-Sensortypen verwendet werden. Beispielsweise kann(können) der(die) RADAR-Sensor(en) 960 ohne Einschränkung für den vorderen, hinteren und seitlichen RADAR-Einsatz geeignet sein. In einigen Beispielen wird(werden) ein Puls-Doppler-RADAR-Sensor(en) verwendet.
  • Der(die) RADAR-Sensor(en) 960 kann(können) verschiedene Konfigurationen umfassen, wie z.B. eine große Reichweite mit engem Sichtfeld, eine kurze Reichweite mit breitem Sichtfeld, eine seitliche Abdeckung mit kurzer Reichweite usw. In einigen Beispielen kann das RADAR mit großer Reichweite für eine adaptive Geschwindigkeitsregelungsfunktion verwendet werden. Die RADAR-Systeme mit großer Reichweite können ein breites Sichtfeld bereitstellen, das durch zwei oder mehr unabhängige Scans erreicht wird, wie beispielsweise innerhalb einer Reichweite von 250 m. Der(die) RADAR-Sensor(en) 960 kann(können) helfen, zwischen statischen und beweglichen Objekten zu unterscheiden, und kann(können) von ADAS-Systemen zur Notbremsunterstützung und Vorwärtskollisionswarnung verwendet werden. RADAR-Sensoren mit großer Reichweite können monostatische multimodale RADAR-Sensoren mit mehreren (z.B. sechs oder mehr) festen RADAR-Antennen und einer schnellen CAN- und FlexRay-Schnittstelle umfassen. In einem Beispiel mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlmuster erzeugen, das ausgelegt ist, die Umgebungen des Fahrzeugs 900 bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr in benachbarten Spuren aufzunehmen. Die beiden anderen Antennen können das Sichtfeld erweitern, so dass es möglich ist, Fahrzeuge, die in die Spur des Fahrzeugs 900 eintreten oder diese verlassen, schnell erkannt werden können.
  • RADAR-Systeme mit mittlerer Reichweite können beispielsweise eine Reichweite von bis zu 960 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 950 Grad (hinten) umfassen. RADAR-Systeme mit kurzer Reichweite können ohne Einschränkung RADAR-Sensoren umfassen, die für die Installation an beiden Enden der hinteren Stoßstange ausgestaltet sind. Bei Installation an beiden Enden der hinteren Stoßstange kann ein derartiges RADAR-Sensorsystem zwei Strahlen erzeugen, die den toten Winkel im Heck und neben dem Fahrzeug ständig überwachen.
  • RADAR-Systeme mit kurzer Reichweite können in einem ADAS-System zur Erkennung des toten Winkels und/oder zur Spurwechselassistenz verwendet werden.
  • Das Fahrzeug 900 kann ferner einen oder mehrere Ultraschallsensoren 962 umfassen. Der(die) Ultraschallsensor(en) 962, der(die) vorne, hinten und/oder an den Seiten des Fahrzeugs 900 positioniert werden kann(können), kann(können) für eine Einparkhilfe und/oder zum Erzeugen und Aktualisieren eines Belegungsgitters verwendet werden. Eine weite Vielfalt von Ultraschallsensoren 962 kann verwendet werden, und unterschiedliche Ultraschallsensoren 962 können für verschiedene Erkennungsbereiche (z.B. 2,5 m; 4 m) verwendet werden. Der(die) Ultraschallsensor(en) 962 kann(können) bei den funktionalen Sicherheitsstufen von ASIL B arbeiten.
  • Das Fahrzeug 900 kann ein oder mehrere LIDAR-Sensoren 964 umfassen. Der(die) LIDAR-Sensor(en) 964 können zur Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder für andere Funktionen verwendet werden. Der(die) LIDAR-Sensor(en) können von dem Funktionssicherheitsniveau ASIL B sein. In einigen Beispielen kann das Fahrzeug 900 mehrere LIDAR-Sensoren 964 (z.B. zwei, vier, sechs usw.) umfassen, die Ethernet verwenden können (z.B. um Daten an einen Gigabit-Ethernet-Schalter zu liefern).
  • In einigen Beispielen kann(können) der(die) LIDAR-Sensor(en) 964 in der Lage sein, eine Liste von Objekten und deren Abstände für ein 360-Grad-Sichtfeld bereitzustellen. Handelsübliche LIDAR-Sensoren 964 können beispielsweise eine beworbene Reichweite von ungefähr 900 m mit einer Genauigkeit von 2 cm-3 cm und einer Unterstützung für eine 900 Mbit/s Ethernet-Verbindung aufweisen. In einigen Beispielen können ein oder mehrere nicht vorstehende LIDAR-Sensoren 964 verwendet werden. In derartigen Beispielen kann(können) der(die) LIDAR-Sensor(en) 964 als eine kleine Vorrichtung implementiert werden, die in die Vorderseite, dem Heck, den Seiten und/oder Ecken des Fahrzeugs 900 eingebettet sein kann. Der(die) LIDAR-Sensoren) 964 kann(können) in derartigen Beispielen ein horizontales Sichtfeld von bis zu 920 Grad und ein vertikales Sichtfeld von 35 Grad mit einer Reichweite von 200 m sogar für Objekte mit geringer Reflexion bereitstellen. Der(die) vorderseitig montierte(n) LIDAR-Sensor(en) 964 kann(können) für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert sein.
  • In einigen Beispielen können LIDAR-Technologien, wie beispielsweise 3D-Flash-LIDAR, ebenfalls verwendet werden. 3D-Flash-LIDAR verwendet einen Laserblitz als eine Übertragungsquelle, um die Fahrzeugumgebung bis zu etwa 200 m zu beleuchten. Eine Flash-LIDAR-Einheit umfasst einen Rezeptor, der die Laserpulslaufzeit und das reflektierte Licht auf jedem Pixel erfasst, was wiederum der Reichweite von dem Fahrzeug bis zu den Objekten entspricht. Flash-LIDAR kann ermöglichen, dass mit jedem Laserblitz hochpräzise und verzerrungsfreie Bilder der Umgebung erzeugt werden. In einigen Beispielen können vier Flash-LIDAR-Sensoren eingesetzt werden, einer auf jeder Seite des Fahrzeugs 900. Verfügbare 3D-Flash-LIDAR-Systeme umfassen eine 3D-Festkörper-LIDAR-Kamera mit feststehender Anordnung ohne bewegliche Teile außer einem Lüfter (z.B. eine nicht abtastende LIDAR-Vorrichtung). Das Flash-LIDAR-Gerät kann einen Laser der Klasse I (augensicher) mit Pulsen von 5 Nanosekunden pro Bild verwenden und das reflektierte Laserlicht in Form von 3D-Reichweitenpunktwolken und gemeinsam registrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR und weil Flash-LIDAR eine Festkörpervorrichtung ohne bewegliche Teile ist, kann der(die) LIDAR-Sensor(en) 964 weniger anfällig für Bewegungsunschärfe, Schwingungen und/oder Stöße sein.
  • Das Fahrzeug kann ferner einen oder mehrere IMU-Sensor(en) 966 umfassen. Der(die) IMU-Sensor(en) 966 kann(können) in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 900 lokalisiert sein. Der(die) IMU-Sensor(en) 966 kann(können) beispielsweise und ohne Einschränkung einen(mehrere) Beschleunigungssensor(en), Magnetometer, Gyroskop(e), Magnetkompass(e) und/oder andere Sensortypen umfassen. In einigen Beispielen, wie beispielsweise in sechsachsigen Anwendungen, kann(können) der(die) IMU-Sensor(en) 966 Beschleunigungssensoren und Gyroskope umfassen, während in neunachsigen Anwendungen der(die) IMU-Sensor(en) 966 Beschleunigungssensoren, Gyroskope und Magnetometer umfassen können.
  • In einigen Ausführungsformen kann(können) der(die) IMU-Sensor(en) 966 als miniaturisiertes, leistungsstarkes GPSgestütztes Trägheitsnavigationssystem (GPS/INS) implementiert werden, das Trägheitssensoren mikro-elektromechanische Systeme (MEMS), einen hochempfindlichen GPS-Empfänger und erweiterte Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Höhe bereitzustellen. Als solches kann(können) der(die) IMU-Sensor(en) 966 in einigen Beispielen es dem Fahrzeug 900 ermöglichen, die Fahrtrichtung abzuschätzen, ohne dass eine Eingabe von einem Magnetsensor erforderlich ist, indem die Geschwindigkeitsänderungen vom GPS zum IMU-Sensor(en) 966 direkt beobachtet und korreliert werden. In einigen Beispielen kann(können) der(die) IMU-Sensor(en) 966 und der(die) GNSS-Sensor(en) 958 in einer einzigen integrierten Einheit kombiniert sein.
  • Das Fahrzeug kann ein oder mehrere Mikrophone 996 umfassen, die sich im und/oder um das Fahrzeug 900 herum befinden. Das(die) Mikrophon(e) 996 kann(können) unter anderem zur Erkennung und Identifizierung von Rettungsfahrzeugen verwendet werden.
  • Das Fahrzeug kann ferner eine beliebige Anzahl von Kameratypen umfassen, einschließlich Stereokamera(s) 968, Weitwinkelkamera(s) 970, Infrarotkamera(s) 972, Surround-Kamera(s) 974, Kamera(s) 998 mit großer und/oder mittlerer Reichweite und/oder andere Kameratypen. Die Kameras können zum Erfassen von Bilddaten über den gesamten Umfang des Fahrzeugs 900 verwendet werden. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen an das Fahrzeug 900 ab, und eine beliebige Kombination von Kameratypen kann verwendet werden, um die erforderliche Abdeckung rund um das Fahrzeug 900 bereitzustellen. Außerdem kann die Anzahl der Kameras abhängig von der Ausführungsform unterschiedlich sein. Beispielsweise kann das Fahrzeug sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras und/oder eine andere Anzahl von Kameras umfassen. Die Kameras können beispielsweise und ohne Einschränkung Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede der Kameras wird hier ausführlicher mit Bezug auf 9A und 9B beschrieben.
  • Das Fahrzeug 900 kann ferner einen Schwingungssensor(en) 942 umfassen. Der(die) Schwingungssensor(en) 942 kann(können) die Schwingungen von Komponenten des Fahrzeugs, wie beispielsweise der Achse(n), messen. Beispielsweise können Änderungen in Schwingungen auf eine Veränderung in der Straßenoberfläche hinweisen. In einem weiteren Beispiel können, wenn zwei oder mehr Schwingungssensoren 942 verwendet werden, die Unterschiede zwischen den Schwingungen verwendet werden, um die Reibung oder den Schlupf der Straßenoberfläche zu bestimmen (z.B., wenn die Schwingungsdifferenz zwischen einer angetriebenen Achse und einer frei rotierenden Achse besteht).
  • Das Fahrzeug 900 kann ein ADAS-System 938 umfassen. Das ADAS-System 938 kann in einigen Beispielen einen SoC umfassen. Das ADAS-System 938 kann einen autonomen/adaptiven/automatischen Geschwindigkeitsregler (ACC), einen kooperativen adaptiven Geschwindigkeitsregler (CACC), eine Vorwärts-Zusammenstoßwarnung (FCW), eine automatische Notbremsung (AEB), eine Spurverlassenswarnung (LDW), einen Spurhalteassistenten (LKA), eine Tote-Winkel-Warnung (BSW), eine hintere Querverkehrswarnung (RCTW), Kollisionswarnsysteme (CWS), eine Spurzentrierung (LC) und/oder andere Merkmale und Funktionen umfassen.
  • Die ACC-Systeme können RADAR-Sensoren 960, LIDAR-Sensoren 964 und/oder eine oder mehrere Kameras verwenden. Die ACC-Systeme können einen längs gerichteten ACC und/oder einen seitwärts gerichteten ACC umfassen. Der längs gerichtete ACC überwacht und steuert den Abstand zum Fahrzeug unmittelbar vor dem Fahrzeug 900 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen Sicherheitsabstand zu den vorausfahrenden Fahrzeugen einzuhalten. Der seitwärts gerichtete ACC führt eine Abstandshaltung durch und empfiehlt dem Fahrzeug 900, bei Bedarf die Spur zu wechseln. Der seitwärts gerichtete ACC ist mit anderen ADAS-Anwendungen, wie beispielsweise Spurwechselassistenz (Lane Change Assistance; LCA) und Kollisionswarnsystem (Collision Warning System; CWS) assoziiert.
  • Der CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 924 und/oder die drahtlose(n) Antenne(n) 926 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 zwischen Fahrzeug-zu-Fahrzeug (V2V) bereitgestellt werden, während indirekte Verbindungen eine Kommunikationsverbindung zwischen Infrastruktur-zu-Fahrzeug (I2V) sein können. Im Allgemeinen kann das V2V-Kommunikationskonzept Information über die unmittelbar vorausfahrenden Fahrzeuge (z.B. Fahrzeuge unmittelbar vor und in der gleichen Spur wie das Fahrzeug 900), während das I2V-Kommunikationskonzept Information über den weiter entfernten Verkehr liefern kann. CACC-Systeme können eine oder beide der 12V- und V2V-Informationsquellen umfassen. Bei gegebener Information der vor dem Fahrzeug 900 fahrenden Fahrzeuge kann CACC zuverlässiger sein und das Potenzial aufweisen, die Verkehrsflussglätte zu verbessern und Stau auf der Straße zu verringern.
  • FCW-Systeme sind ausgestaltet, um den Fahrer vor einer Gefahr zu warnen, so dass der Fahrer Korrekturmaßnahmen ergreifen kann. FCW-Systeme können eine nach vorne gerichtete Kamera und/oder RADAR-Sensoren 960 umfassen, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Fahrerrückkopplung, wie beispielsweise einer Anzeige, einem Lautsprecher und/oder einer Schwingungskomponente, gekoppelt ist. FCW-Systeme können eine Warnung, wie beispielweise in Form von Schall, einer optischer Warnung, einer Schwingung und/oder einem schnellen Bremsimpuls bereitstellen.
  • AEB-Systeme können eine drohende Vorwärtskollision mit einem anderen Fahrzeug oder einem anderen Objekt erkennen und können die Bremsen automatisch betätigen, wenn der Fahrer innerhalb eines bestimmten Zeit- oder Abstandsparameters keine Korrekturmaßnahmen ergreift. AEB-Systeme können nach vorne gerichtete Kameras und/oder Radarsensoren 960 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, kann es den Fahrer zunächst darauf aufmerksam machen, um Korrekturmaßnahmen zur Vermeidung der Kollision zu ergreifen, und wenn der Fahrer keine Korrekturmaßnahmen ergreift, kann das AEB-System automatisch die Bremsen in einem Bemühen betätigen, um die Auswirkungen der vorhergesagten Kollision zu verhindern oder zumindest zu mildern. AEB-Systeme können Techniken, wie beispielsweise dynamische Bremsunterstützung und/oder Bremsen bei drohender Kollision, umfassen.
  • LDW-Systeme können visuelle, akustische und/oder taktile Warnungen bereitstellen, wie beispielsweise Lenkrad- oder Sitzschwingungen, um den Fahrer zu warnen, wenn das Fahrzeug 900 Fahrbahnmarkierungen überquert. Ein LDW-System kann nicht aktiviert werden, wenn der Fahrer ein absichtliches Verlassen der Spur, wie beispielsweise durch Aktivieren eines Blinkers, angibt. LDW-Systeme können nach vorne/seitlich gerichtete Kameras verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Fahrerrückkopplung gekoppelt ist, wie beispielsweise einer Anzeige, einem Lautsprecher und/oder einer Schwingungskomponente.
  • LKA-Systeme sind eine Variante von LDW-Systemen. LKA-Systeme stellen Lenkeingaben oder Bremsen bereit, um das Fahrzeug 900 zu korrigieren, wenn das Fahrzeug 900 beginnt, die Spur zu verlassen.
  • BSW-Systeme erkennen und warnen den Fahrer von Fahrzeugen im toten Winkel eines Fahrzeugs. BSW-Systeme können einen visuellen, akustischen und/oder taktilen Alarm bereitstellen, um anzugeben, dass das Zusammenführen oder Wechseln von Spuren unsicher ist. Das System kann eine zusätzliche Warnung ausgeben, wenn der Fahrer einen Blinker benutzt. BSW-Systeme können rückseitig gerichtete Kameras und/oder RADAR-Sensoren 960 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Fahrerrückkopplung gekoppelt ist, wie beispielsweise einer Anzeige, einem Lautsprecher und/oder einer Schwingungskomponente.
  • RCTW-Systeme können eine visuelle, akustische und/oder taktile Benachrichtigung liefern, wenn ein Objekt außerhalb des Rückfahrkamerabereichs erkannt wird, wenn das Fahrzeug 900 rückwärtsfährt. Einige RCTW-Systeme umfassen AEB, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Unfall zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete RADAR-Sensoren 960 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Fahrerrückkopplung, wie beispielsweise einer Anzeige, einem Lautsprecher und/oder einer Schwingungskomponente, gekoppelt ist.
  • Herkömmliche ADAS-Systeme können für falsch positive Ergebnissen anfällig sein, die für einen Fahrer lästig und störend sein können, jedoch typischerweise nicht katastrophal sind, da die ADAS-Systeme den Fahrer warnen und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung tatsächlich vorliegt, und entsprechend zu handeln. Bei einem autonomen Fahrzeug 900 kann das Fahrzeug 900 jedoch bei widersprüchlichen Ergebnissen selbst entscheiden, ob es das Ergebnis von einem Primärcomputer oder einem Sekundärcomputer (z.B. einem ersten Controller 936 oder einem zweiten Controller 936) beachtet. Beispielsweise kann das ADAS-System 938 in einigen Ausführungsformen ein Backup- und/oder Sekundärcomputer sein, um einem Rationalitätsmodul des Backup-Computers Wahrnehmungsinformationen zur Verfügung zu stellen. Der Rationalitätsmonitor des Backup-Computers kann eine redundante, diverse Software auf Hardwarekomponenten ausführen, um Fehler in der Wahrnehmung und dynamischen Fahraufgaben zu erkennen. Ausgaben von dem ADAS-System 938 können einer Supervisor-MCU bereitgestellt werden. Wenn Ausgaben von dem primären Computer und dem sekundären Computer miteinander kollidieren, muss die Supervisor-MCU bestimmen, wie der Konflikt zu lösen ist, um einen sicheren Betrieb zu gewährleisten.
  • In einigen Beispielen kann der Primärcomputer konfiguriert sein, um der Supervisor-MCU einen Vertrauenswert zu liefern, der das Vertrauen des Primärcomputers in das gewählte Ergebnis anzeigt. Wenn der Vertrauenswert einen Schwellenwert überschreitet, kann die Supervisor-MCU der Richtung des Primärcomputers ungeachtet dessen folgen, ob der Sekundärcomputer ein widersprüchliches oder inkonsistentes Ergebnis liefert. Wenn der Vertrauenswert den Schwellenwert nicht erreicht und wenn der primäre und der sekundäre Computer unterschiedliche Ergebnisse angeben (z.B. den Konflikt), kann die Supervisor-MCU zwischen den Computern vermitteln, um das angemessene Ergebnis zu bestimmen.
  • Die Supervisor-MCU kann konfiguriert sein, um ein oder mehrere neuronale Netzwerke zu betreiben, die trainiert und konfiguriert sind, um basierend auf den Ergebnissen des primären Computers und des sekundären Computers Bedingungen zu bestimmen, unter denen der sekundäre Computer Fehlalarme liefert. Somit kann(können) das(die) neuronale(n) Netzwerk(e) in der Supervisor-MCU lernen, wenn der Ausgabe des Sekundärcomputers vertraut werden kann und wenn nicht. Wenn der Sekundärcomputer beispielsweise ein RADAR-basiertes FCW-System ist, kann(können) ein neuronales Netzwerk(e) in der Supervisor-MCU lernen, wenn das FCW-System metallische Objekte identifiziert, die in Wirklichkeit keine Gefahren sind, wie beispielsweise ein Drainagerost oder eine Schachtabdeckung, die einen Alarm auslöst. Auf ähnliche Weise kann, wenn der Sekundärcomputer ein kamerabasiertes LDW-System ist, ein neuronales Netzwerk in der Supervisor-MCU lernen, das LDW zu übersteuern, wenn Radfahrer oder Fußgänger anwesend sind und ein Verlassen der Spur tatsächlich das sicherste Manöver ist. In Ausführungsformen, die ein neuronale(s) Netzwerk(e) umfassen, die auf der Supervisor-MCU ausgeführt werden, kann die Supervisor-MCU mindestens eine von einer DLA oder einer GPU umfassen, die zum Ausführen des(der) neuronalen Netzwerks(e) mit zugehörigem Speicher geeignet ist. In einigen Ausführungsformen kann die Supervisor-MCU ein SoC(s) umfassen und/oder als ein Bestandteil des(der) SoC(s) 904 enthalten sein.
  • In anderen Beispielen kann das ADAS-System 938 einen sekundären Computer umfassen, der die ADAS-Funktionalität nach den herkömmlichen Regeln der Computer-Vision ausführt. Somit kann der Sekundärcomputer klassische Computer-Vision-Regeln verwenden (Wenn-Dann), und das Vorhandensein eines oder mehrerer neuronaler Netzwerke in der Supervisor-MCU kann die Zuverlässigkeit, Sicherheit und Leistung verbessern. Beispielsweise kann die vielfältige Implementierung und absichtliche Nicht-Identität das Gesamtsystem insbesondere gegenüber Fehlern fehlertoleranter machen, die durch die Funktionalität von Software (oder einer Software-Hardware-Schnittstelle) verursacht werden. Wenn es beispielsweise einen Software-Bug oder Fehler in der auf dem primären Computer laufenden Software gibt und der nicht-identische Softwarecode, der auf dem sekundären Computer ausgeführt wird, das gleiche Gesamtergebnis liefert, kann die Supervisor-MCU eine größere Sicherheit aufweisen, dass das Gesamtergebnis korrekt ist und der Bug in der Software oder Hardware auf dem primären Computer keinen wesentlichen Fehler verursacht.
  • In einigen Beispielen kann die Ausgabe des ADAS-Systems 938 in den Wahrnehmungsblock des Primärcomputers und/oder in den dynamischen Fahraufgabenblock des Primärcomputers eingespeist werden. Wenn das ADAS-System 938 beispielsweise eine Vorwärts-Zusammenstoß-Warnung aufgrund eines unmittelbar vorausgehenden Objekts anzeigt, kann der Wahrnehmungsblock diese Information beim Identifizieren von Objekten verwenden. In anderen Beispielen kann der Sekundärcomputer sein eigenes neuronales Netzwerk aufweisen, das trainiert wird und somit das Risiko von Fehlalarmen reduziert, wie hier beschrieben.
  • Das Fahrzeug 900 kann ferner das Infotainment-SoC 930 umfassen (z.B. ein Infotainmentsystem (IVI) im Fahrzeug). Obwohl als SoC veranschaulicht und beschrieben, ist das Infotainmentsystem möglicherweise kein SoC und kann zwei oder mehr diskrete Komponenten umfassen. Das Infotainment-SoC 930 kann eine Kombination aus Hardware und Software umfassen, die verwendet werden kann, um Audio (z.B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio, usw.), Video (z.B. TV, Filme, Streaming, usw.), Telefon (z.B. Freisprechfunktion), Netzwerkkonnektivität (z.B. LTE, WiFi usw.) und/oder Informationsdienste (z.B. Navigationssysteme, Heck-Einpark-Assistenz, ein Funkdatensystem, fahrzeugbezogene Information wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremskraftstoffstand, Ölstand, Tür auf/zu, Luftfilterinformation usw.) für das Fahrzeug 900 bereitzustellen. Beispielsweise kann das Infotainment-SoC 930 Radios, Diskettenspieler, Navigationssysteme, Videoplayer, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, WiFi, Lenkrad-Audiosteuerungen, Freisprechfunktion, eine Head-Up-Display (HUD), eine HMI-Display 934, ein Telematikgerät, ein Bedienfeld (z.B. zur Steuerung und/oder Wechselwirkung mit verschiedenen Komponenten, Merkmalen und/oder Systemen) und/oder andere Komponenten umfassen. Das Infotainment-SoC 930 kann ferner verwendet werden, um einem Benutzer(n) des Fahrzeugs Informationen (z.B. visuell und/oder akustisch), wie z.B. Informationen von dem ADAS-System 938, autonome Fahrinformationen, wie geplante Fahrzeugmanöver, Trajektorien, Umgebungsinformationen (z.B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen, usw.) und/oder andere Informationen bereitzustellen.
  • Das Infotainment-SoC 930 kann eine GPU-Funktionalität umfassen. Das Infotainment-SoC 930 kann über den Bus 902 (z.B. CAN-Bus, Ethernet usw.) mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 900 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 930 mit einer Supervisor-MCU gekoppelt sein, so dass die GPU des Infotainmentsystems einige Selbstfahrfunktionen übernehmen kann, falls der(die) primäre(n) Controller 936 (z.B. die primären und/oder Backup-Computer des Fahrzeugs 900) ausfällt/ausfallen. In einem derartigen Beispiel kann das Infotainment-SoC 930 das Fahrzeug 900 in einen sicheren Stoppmodus versetzen, wie hier beschrieben.
  • Das Fahrzeug 900 kann ferner eine Instrumentengruppe 932 umfassen (z.B. ein digitales Armaturenbrett, eine elektronische Instrumentengruppe, ein digitales Instrumentenbrett usw.). Die Instrumentengruppe 932 kann einen Controller und/oder einen Supercomputer (z.B. eine diskrete Steuerung oder einen Supercomputer) umfassen. Die Instrumentengruppe 932 kann einen Satz von Instrumenten umfassen, wie beispielsweise Geschwindigkeitsmesser, Kraftstoffstand, Öldruck, Drehzahlmesser, Kilometerzähler, Blinker, Schaltpositionsanzeige, Sicherheitsgurtwarnleuchte(n), Feststellbremswarnleuchte(n), Motorstörungsleuchte(n), Airbag (SRS)-Systeminformationen, Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen usw. In einigen Beispielen können Informationen zwischen dem Infotainment-SoC 930 und der Instrumentengruppe 932 angezeigt und/oder ausgetauscht werden. Mit anderen Worten kann die Instrumentengruppe 932 als Teil des Infotainment-SoC 930 integriert sein oder umgekehrt.
  • 9D ist ein Systemdiagramm für die Kommunikation zwischen einem Cloud-basierten Server(n) und dem Beispiel eines autonomen Fahrzeugs 900 von 9A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das System 976 kann einen oder mehrere Server 978, ein oder mehrere Netzwerke 990, sowie Fahrzeuge, einschließlich des Fahrzeugs 900 umfassen. Der(die) Server 978 können mehrere GPUs 984(A)-984(H) (hier zusammenfassend als GPUs 984 bezeichnet), PCIe-Schalter 982(A)-982(H) (hier zusammenfassend als PCIe-Schalter 982 bezeichnet) und/oder CPUs 980(A)-980(B) (hier zusammenfassend als CPUs 980 bezeichnet) umfassen. Die GPUs 984, die CPUs 980 und die PCIe-Schalter können mit Hochgeschwindigkeits-Zwischenverbindungen, wie beispielsweise und ohne Einschränkung NVLink-Schnittstellen 988, die von NVIDIA entwickelt wurden, und/oder PCIe-Anschlüssen 986 verbunden sein. In einigen Beispielen sind die GPUs 984 über NVLink und/oder NVSwitch SoC verbunden und die GPUs 984 und die PCIe-Schalter 982 sind über PCIe-Zwischenverbindungen verbunden. Obwohl acht GPUs 984, zwei CPUs 980 und zwei PCIe-Schalter veranschaulicht sind, ist dies nicht bestimmt, einschränkend zu sein. Abhängig von der Ausführungsform kann jeder (der) Server 978 eine beliebige Anzahl von GPUs 984, CPUs 980 und/oder PCIe-Schalter umfassen. Beispielsweise kann(können) der(die) Server 978 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 984 umfassen.
  • Der(die) Server 978 können über das(die) Netzwerk(e) 990 und von den Fahrzeugen Bilddaten empfangen, die Bilder repräsentieren, die unerwartete oder veränderte Straßenbedingungen zeigen, wie beispielsweise kürzlich begonnene Straßenarbeiten. Der(die) Server 978 können über das(die) Netzwerk(e) 990 und an die Fahrzeuge neuronale Netzwerke 992, aktualisierte neuronale Netzwerke 992 und/oder Karteninformation 994 übertragen, einschließlich Information über Verkehrs- und Straßenzustände. Die Aktualisierungen der Karteninformationen 994 können Aktualisierungen für die HD-Karte 922 umfassen, wie beispielsweise Information über Baustellen, Schlaglöcher, Umwege, Überschwemmungen und/oder anderen Hindernisse. In einigen Beispielen können die neuronalen Netzwerke 992, die aktualisierten neuronalen Netzwerke 992 und/oder die Karteninformationen 994 aus einem erneuten Trainieren und/oder aus Erfahrungen, die durch Daten aus einer beliebigen Anzahl von Fahrzeugen in der Umgebung repräsentiert werden, und/oder basierend auf einem in einem Rechenzentrum durchgeführten Training (z.B. unter Verwendung des(der) Servers 978 und/oder eines anderen/anderer Servers) entstanden sein.
  • Der(die) Server 978 kann(können) verwendet werden, um Modelle für maschinelles Lernen (z.B. neuronale Netzwerke) basierend auf Trainingsdaten zu trainieren. Die Trainingsdaten können von den Fahrzeugen erzeugt und/oder in einer Simulation (z.B. mit einer Game-Engine) erzeugt werden. In einigen Beispielen werden die Trainingsdaten mit einer Kennzeichnung versehen (z.B. wenn das neuronale Netzwerk durch überwachtes Lernen profitiert) und/oder eine andere Vorverarbeitung durchläuft, während in anderen Beispielen die Trainingsdaten nicht identifiziert und/oder vorverarbeitet werden (z.B., wenn das neuronale Netzwerk kein überwachtes Lernen erfordert). Sobald die Modelle für maschinelles Lernen trainiert sind, können die Modelle für maschinelles Lernen von den Fahrzeugen verwendet werden (z.B. an die Fahrzeuge über das/die Netzwerk(e) 990 übermittelt werden), und/oder die Modelle für maschinelles Lernen können von dem(den) Server(n) 978 verwendet werden, um die Fahrzeuge aus der Ferne zu überwachen.
  • In einigen Beispielen kann(können) der(die) Server 978 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netzwerke für intelligente Echtzeit-Inferenzierung anwenden. Der(die) Server 978 kann(können) Deep-Learning-Supercomputer und/oder von einer GPU(s) 984 angetriebene dedizierte KI-Computer umfassen, wie beispielsweise DGX- und DGX-Station-Maschinen, die von NVIDIA entwickelt wurden. In einigen Beispielen kann(können) der(die) Server 978 jedoch eine Deep-Learning-Infrastruktur umfassen, die nur CPU-betriebene Rechenzentren verwendet.
  • Die Deep-Learning-Infrastruktur des(der) Servers 978 kann in der Lage sein, schnell und in Echtzeit zu inferenzieren, und kann diese Fähigkeit nutzen, um den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 900 zu bewerten und zu überprüfen. Beispielsweise kann die Deep-Learning-Infrastruktur periodische Aktualisierungen vom Fahrzeug 900 erhalten, wie beispielsweise eine Folge von Bildern und/oder Objekten, die das Fahrzeug 900 in dieser Folge von Bildern lokalisiert hat (z.B. durch Computer-Vision und/oder andere Techniken des maschinellen Lernens zur Klassifizierung von Lernobjekten). Die Deep-Learning-Infrastruktur kann ihr eigenes neuronales Netzwerk betreiben, um die Objekte zu identifizieren und mit den vom Fahrzeug 900 identifizierten Objekten zu vergleichen, und wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 900 nicht funktioniert, können die Server 978 ein Signal an das Fahrzeug 900 senden, das einen ausfallsicheren Computer des Fahrzeugs 900 anweist, die Steuerung zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • Für die Inferenzierung können die Server 978 die GPU(s) 984 und einen oder mehrere programmierbare Inferenzbeschleuniger (z.B. NVIDIAs TensorRT 3) umfassen. Die Kombination aus GPU-angetrieben Servern und Inferenzbeschleunigung kann eine Echtzeit-Reaktionsfähigkeit möglich machen. In anderen Beispielen, in denen beispielsweise die Leistung weniger kritisch ist, können Server, die von CPUs, FPGAs und anderen Prozessoren betrieben werden, zur Inferenzierung verwendet werden
  • Beispielhafte Rechenvorrichtung
  • 10 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung 1000, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Die Rechenvorrichtung 1000 kann einen Bus 1002 umfassen, der direkt oder indirekt die folgenden Vorrichtungen koppelt: Speicher 1004, eine oder mehrere Zentralverarbeitungseinheiten (CPUs) 1006, eine oder mehrere Graphikverarbeitungseinheiten (GPUs) 1008, eine Kommunikationsschnittstelle 1010, Eingabe-/Ausgabe (E/A)-Ports 1012, Eingabe-/Ausgabe (E/A)-Komponenten 1014, eine Leistungsversorgung 1016 und eine oder mehreren Präsentationskomponenten 1018 (z.B. Anzeige(n)).
  • Obwohl die verschiedenen Blöcke von 10 als über den Bus 1002 mit Leitungen verbunden gezeigt sind, ist dies nicht bestimmt, einschränkend zu sein, und dient nur der Klarheit. Beispielsweise kann in einigen Ausführungsformen eine Präsentationskomponente 1018, wie beispielsweise eine Anzeigevorrichtung, als eine E/A-Komponente 1014 betrachtet werden (z.B., wenn die Anzeige ein Touchscreen ist). Als weiteres Beispiel können die CPUs 1006 und/oder die GPUs 1008 Speicher umfassen (z.B. kann der Speicher 1004 für eine Speichervorrichtung zusätzlich zu dem Speicher der GPUs 1008, der CPUs 1006 und/oder anderer Komponenten repräsentativ sein). Mit anderen Worten ist die Rechenvorrichtung von 10 lediglich veranschaulichend. Es wird nicht zwischen derartigen Kategorien wie „Arbeitsstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Vorrichtung“, „mobile Vorrichtung“, „Handheld-Vorrichtung“, „Spielkonsole“, „elektronische Steuereinheit (ECU)“, „Virtual-Reality-System“ und/oder anderen Vorrichtungs- oder Systemtypen unterschieden, wie sie alle innerhalb des Umfangs der Rechenvorrichtung von 10 denkbar sind.
  • Der Bus 1002 kann einen oder mehrere Busse darstellen, wie beispielsweise einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Der Bus 1002 kann eine oder mehrere Bustypen umfassen, wie beispielsweise einen Industrie-Standard-Architektur (ISA)-Bus, einen erweiterten Industrie-Standard-Architektur (EISA)-Bus, einen Video Electronics Standards Association (VESA)-Bus, einen Peripheral Component Interconnect (PCI)-Bus, einen Peripheral Component Interconnect Express (PCIe)-Bus und/oder einen anderen Typ von Bus.
  • Der Speicher 1004 kann beliebige einer Vielfalt von computerlesbaren Medien umfassen. Die computerlesbaren Medien können beliebige verfügbare Medien sein, auf die von der Rechenvorrichtung 1000 zugegriffen werden kann. Die computerlesbaren Medien können sowohl flüchtige als auch nichtflüchtige Medien und entfernbare als auch nicht entfernbare Medien umfassen. Beispielsweise und nicht beschränkend können die computerlesbaren Medien Computer-Speichermedien und Kommunikationsmedien umfassen.
  • Die Computer-Speichermedien können sowohl flüchtige als auch nichtflüchtige Medien und/oder entfernbare als auch nicht entfernbare Medien umfassen, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen, wie beispielsweise computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder anderen Datenarten, implementiert sind. Beispielsweise kann der Speicher 1004 computerlesbare Anweisungen (z.B. solche, die ein Programm(e) und/oder ein Programmelement(e), wie beispielsweise ein Betriebssystem darstellen) speichern. Computer-Speichermedien können umfassen, sind jedoch nicht begrenzt auf, RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, magnetische Plattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium, das verwendet werden kann, um die erwünschten Informationen zu speichern, und auf das von der Rechenvorrichtung 1000 zugegriffen werden kann. Wie hier verwendet, umfassen Computerspeichermedien keine Signale per se.
  • Die Kommunikationsmedien können computerlesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datenarten in einem modulierten Datensignal, wie beispielsweise einer Trägerwelle oder einem anderen Transportmechanismus, verkörpern und beliebige Informationliefernde Medien umfassen. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, das eine oder mehrere seiner Eigenschaften auf eine derartige Art und Weise eingestellt oder geändert hat, um Informationen in dem Signal zu codieren. Beispielhaft und nicht einschränkend können die Kommunikationsmedien drahtgebundene Medien, wie beispielsweise ein drahtgebundenes Netzwerk oder eine direktverdrahtete Verbindung sowie drahtlosen Medien, wie beispielsweise akustische, HF-, Infrarot- und andere drahtlose Medien, umfassen. Kombinationen aus beliebigem des Obigen sollten ebenfalls innerhalb des Umfangs von computerlesbaren Medien umfasst sein.
  • Die CPU(s) 1006 kann(können) konfiguriert sein, um die computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Rechenvorrichtung 1000 zu steuern, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Die CPU(s) 1006 kann(können) jeweils einen oder mehrere Kerne (z.B. ein, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) umfassen, die in der Lage sind, eine Vielfalt von Software-Threads gleichzeitig zu verarbeiten. Die CPU(s) 1006 kann(können) jede Art von Prozessor umfassen und kann(können) unterschiedliche Typen von Prozessoren abhängig von der Art der implementierten Rechenvorrichtung 1000 umfassen (z.B. Prozessoren mit weniger Kernen für mobile Vorrichtungen und Prozessoren mit mehr Kernen für Server). Beispielsweise kann der Prozessor abhängig von der Art von Rechenvorrichtung 1000 ein ARM-Prozessor sein, der unter Verwendung des Reduced Instruction Set Computing (RISC) implementiert ist, oder ein x86-Prozessor sein, der unter Verwendung des Complex Instruction Set Computing (CISC) implementiert ist. Die Rechenvorrichtung 1000 kann eine oder mehrere CPUs 1006 zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzliche Co-Prozessoren, wie beispielsweise mathematische Co-Prozessoren, umfassen.
  • Die GPU(s) 1008 kann(können) von der Rechenvorrichtung 1000 verwendet werden, um Graphiken (z.B. 3D-Graphiken) zu rendern. Die GPU(s) 1008 kann(können) Hunderte oder Tausende von Kernen umfassen, die in der Lage sind, Hunderte oder Tausende von Software-Threads gleichzeitig zu handhaben. Die GPU(s) 1008 kann(können) Pixeldaten für Ausgabebilder als Antwort auf Rendering-Befehle erzeugen (z.B. Rendering-Befehle von der(den) CPU(s) 1006, die über eine Host-Schnittstelle empfangen werden). Die GPU(s) 1008 kann(können) Graphikspeicher, wie beispielsweise Anzeigespeicher, zum Speichern von Pixeldaten umfassen. Der Anzeigespeicher kann als Teil des Speichers 1004 umfasst sein. Die GPU(s) 1008 kann(können) zwei oder mehr GPUs umfassen, die parallel (z.B. über eine Verbindung) arbeiten. Wenn zusammen kombiniert, kann jede GPU 1008 Pixeldaten für unterschiedliche Abschnitte eines Ausgabebildes oder für unterschiedliche Ausgabebilder erzeugen (z.B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann ihren eigenen Speicher umfassen oder kann sich Speicher mit anderen GPUs teilen.
  • In Beispielen, in denen die Rechenvorrichtung 1000 die GPU(s) 1008 nicht umfasst(umfassen), kann(können) die CPU(s) 1006 verwendet werden, um Graphiken zu rendern.
  • Die Kommunikationsschnittstelle 1010 kann einen oder mehrere Empfänger, Sender und/oder Sender-Empfänger umfassen, die es der Rechenvorrichtung 1000 ermöglichen, mit anderen Rechenvorrichtungen über ein elektronisches Kommunikationsnetzwerk, einschließlich drahtgebundener und/oder drahtloser Kommunikation, zu kommunizieren. Die Kommunikationsschnittstelle 1010 kann Komponenten und Funktionalität umfassen, um eine Kommunikation über ein beliebiges einer Anzahl von unterschiedlichen Netzwerken, wie beispielsweise drahtlose Netzwerke (z.B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), drahtgebundene Netzwerke (z.B. Kommunikation über Ethernet), Low-Power-Weitbereichsnetzwerke (z.B. LoRaWAN, SigFox usw.) und/oder das Internet zu ermöglichen.
  • Die E/A-Ports 1012 können es der Rechenvorrichtung 1000 ermöglichen, logisch mit anderen Vorrichtungen, einschließlich der E/A-Komponenten 1014, der Präsentationskomponente(n) 1018 und/oder anderen Komponenten, von denen einigen in die Rechenvorrichtung 1000 eingebaut (z.B. integriert) sein können, gekoppelt zu sein. Veranschaulichende E/A-Komponenten 1014 umfassen ein Mikrophon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Spielecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, eine drahtlose Vorrichtung usw. Die E/A-Komponenten 1014 können eine natürliche Benutzer-Schnittstelle (natural user interface; NUI) bereitstellen, die Luftgesten, Sprache oder andere physiologische Eingaben, die von einem Benutzer erzeugt werden, verarbeitet. In einigen Fällen können Eingaben zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann jede beliebige Kombination aus Spracherkennung, Styluserkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch neben dem Bildschirm, Luftgesten, Kopf- und Augenverfolgung und Berührungserkennung (wie nachstehend ausführlicher beschrieben), die einer Anzeige der Rechenvorrichtung 1000 zugeordnet ist, implementieren. Die Rechenvorrichtung 1000 kann Tiefenkameras umfassen, wie beispielsweise stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon zur Gestenerkennung und -erfassung. Zusätzlich kann die Rechenvorrichtung 1000 Beschleunigungssensoren 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 Beschleunigungssensoren oder der Gyroskope von der Rechenvorrichtung 1000 dazu verwendet werden, immersive erweiterte Realität oder virtuelle Realität zu rendern.
  • Die Leistungsversorgung 1016 kann eine fest verdrahtete Leistungsversorgung, eine Batterieleistungsversorgung oder eine Kombination davon umfassen. Die Leistungsversorgung 1016 kann Leistung an die Rechenvorrichtung 1000 liefern, um zu ermöglichen, dass die Komponenten der Rechenvorrichtung 1000 arbeiten können.
  • Die Präsentationskomponente(n) 1018 kann(können) eine Anzeige (z.B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, eine Heads-up-Anzeige (HUD), andere Anzeigetypen oder ein Kombination davon), Lautsprecher und/oder andere Präsentationskomponenten umfassen. Die Präsentationskomponente(n) 1018 kann(können) Daten von anderen Komponenten (z.B. den GPU(s) 1008, den CPU(s) 1006 usw.) empfangen und die Daten (z.B. als Bild, Video, Ton usw.) ausgeben.
  • Die Offenbarung kann im allgemeinen Kontext von Computercode oder maschinenverwendbaren Anweisungen, einschließlich computerausführbaren Anweisungen, wie beispielsweise Programmmodulen, die von einem Computer oder einer anderen Maschine, wie beispielsweise einem Assistenten für personenbezogene Daten oder einer anderen handgehaltenen Vorrichtung, ausgeführt werden, beschrieben werden. Allgemein beziehen sich Programmodule, die Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw. umfassen, auf einen Code, der bestimmte Aufgaben ausführt oder bestimmte abstrakte Datentypen implementiert. Die Offenbarung kann in einer Vielfalt von Systemkonfigurationen praktiziert werden, die handgehaltene Vorrichtungen, Unterhaltungselektronik, Universalcomputer, spezialisiertere Rechenvorrichtungen usw. umfassen. Die Offenbarung kann auch in verteilten Computerumgebungen praktiziert werden, in denen Aufgaben von entfernten Verarbeitungsvorrichtungen, die über ein Kommunikationsnetzwerk verbunden sind, ausgeführt werden.
  • Wie hier verwendet, sollte eine Angabe von „und/oder“ in Bezug auf zwei oder mehr Elemente so interpretiert werden, dass nur ein Element oder eine Kombination von Elementen gemeint ist. Beispielsweise kann „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder Elemente A, B und C umfassen. Darüber hinaus kann „zumindest eines von Element A oder Element B“ zumindest eines von Element A, zumindest eines von Element B oder zumindest eines von Element A und zumindest eines von Element B umfassen. Weiterhin kann „zumindest eines von Element A und Element B“ zumindest eines von Element A, zumindest eines von Element B oder zumindest eines von Element A und zumindest eines von Element B umfassen.
  • Der Gegenstand der vorliegenden Offenbarung ist hier spezifisch beschrieben, um gesetzlichen Anforderungen zu entsprechen. Die Beschreibung selbst soll jedoch den Umfang dieser Offenbarung nicht einschränken. Vielmehr haben die Erfinder ins Auge gefasst, dass der beanspruchte Gegenstand auch auf andere Weisen verkörpert sein könnte, um unterschiedliche Schritte oder Kombinationen von Schritten ähnlich zu denen in diesem Dokument beschriebenen in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien zu umfassen. Außerdem sollten, obwohl die Begriffe „Schritt“ und/oder „Block“ hier verwendet werden können, um verschiedene Elemente der verwendeten Verfahren zu benennen, sollten die Begriffe nicht so interpretiert werden, dass sie eine bestimmte Reihenfolge unter oder zwischen den verschiedenen hier offenbarten Schritten bedeuten, es sei denn, dass die Reihenfolge der einzelnen Schritte ausdrücklich beschrieben wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/355328 [0022]
    • US 286329 [0027]
    • US 16/514404 [0027]
    • US 16101232 [0118]

Claims (20)

  1. Verfahren, umfassend: Empfangen erster Daten, die für eine Begrenzungsform repräsentativ sind, die einem in einem Bild dargestellten Objekt entspricht; Empfangen zweiter Daten, die mindestens einen Teil der Begrenzungsform darstellen, die bestimmt ist, den befahrbaren Freiraum zu umfassen; Ausschneiden des Teils der Begrenzungsform, um einen Objektzaun von innerhalb der Begrenzungsform zu erzeugen; Empfangen dritter Daten, die für Orte einer Mehrzahl von Spurlinien innerhalb des Bildes repräsentativ sind; Erzeugen einer Spurmaske mit den dritten Daten; Bestimmen einer Überlappung zwischen dem Objektzaun und einer oder mehreren Spuren in dem durch die Spurmaske definierten Bild; und Zuweisen des Objekts zu mindestens einer der einen oder mehreren Spuren basierend mindestens teilweise auf der Überlappung.
  2. Verfahren gemäß Anspruch 1, wobei das Ausschneiden des Teils der Begrenzung umfasst: Ausschneiden eines ersten Teils der Begrenzungsform, um eine zugeschnittene Begrenzungsform zu erzeugen, und Ausschneiden eines zweiten Teils der Begrenzungsform, um einen Objektzaun aus der zugeschnittenen Begrenzungsform zu erzeugen.
  3. Verfahren gemäß Anspruch 1 oder 2, wobei das Bestimmen der Überlappung umfasst: Bestimmen von Abständen zwischen Paaren von Eckpunkten des Objektzauns; Berechnen einer Summe der Abstände; und Verwenden der Summe der Abstände, um mindestens teilweise die Überlappung zu bestimmen.
  4. Verfahren gemäß einem der vorangehenden Ansprüche, wobei das Bestimmen der Überlappung ein Bestimmen umfasst, dass mindestens ein Zaunpixel, das dem Objektzaun in dem Bild entspricht, ein gleiches Pixel wie mindestens ein Spurpixel ist, das einer Spur der einen oder mehreren Spuren entspricht.
  5. Verfahren gemäß einem der vorangehenden Ansprüche, wobei die dritten Daten von mindestens einem eines Spurerkennungsalgorithmus oder vierten Daten von einer Kartenanwendung bestimmt werden.
  6. Verfahren gemäß einem der vorangehenden Ansprüche, wobei das Bestimmen der Überlappung ein Vergleichen einer Anzahl von Pixeln, die zwischen dem Objektzaun und einer Spur der einen oder mehreren Spuren gemeinsam genutzt werden, eine Schwellenanzahl von Pixeln überschreitet.
  7. Verfahren, umfassend: Anwenden erster Daten, die von einem oder mehreren Sensoren erzeugt werden, auf einen Objektzaunerzeugungsalgorithmus; Identifizieren unter Verwendung des Objektzaunerzeugungsalgorithmus eines Weltraumobjektzauns für ein Objekt innerhalb eines sensorischen Sichtfelds von mindestens einem Sensor der einen oder mehreren Sensoren; Umwandeln des Weltraumobjektzauns in einen Bildraumobjektzaun basierend mindestens teilweise auf Sensorparameter, die mindestens einem des einen oder mehreren Sensoren entsprechen; Empfangen zweiter Daten, die für Orte einer Mehrzahl von Spurlinien innerhalb eines Bildes repräsentativ sind, das durch die ersten Daten dargestellt wird; Erzeugen einer Spurmaske unter Verwendung der zweiten Daten; Bestimmen einer Überlappung zwischen dem Bildraumobjektzaun und einer oder mehrerer durch die Spurmaske definierten Spuren; und Zuweisen des Objekts zu mindestens einer Spur der einer oder mehreren Spuren basierend mindestens teilweise auf der Überlappung.
  8. Verfahren gemäß Anspruch 7, wobei die zweiten Daten von einem oder mehreren einer Kartenanwendung, einem Spurerkennungsalgorithmus oder einem neuronalen Netzwerk empfangen werden.
  9. Verfahren gemäß Anspruch 7 oder 8, wobei das Erzeugen der Spurmaske das Verwenden einer Triangulation umfasst, um, in einem kreuzweisen Muster Eckpunkten zwischen Spurlinien der mehreren Spurlinien zu verbinden, die einer gleichen Spur entsprechen.
  10. Verfahren gemäß einem der Ansprüche 7 bis 9, wobei: der Bildraumobjektzaun durch eine Mehrzahl von Eckpunkten eines Polygons dargestellt wird; und das Bestimmen der Überlappung des Bildraumobjektzauns und der einen oder mehreren Spuren umfasst: Berechnen, für jedes Paar von Eckpunkten der Mehrzahl von Eckpunkten, eines Abstands zwischen den Eckpunkten; Aufaddieren der Abstände für jedes Paar von Eckpunkten der Mehrzahl von Eckpunkten, um eine Summe von Abständen zu erzeugen; und Bestimmen der Überlappung basierend mindestens teilweise auf der Summe von Abständen.
  11. Verfahren gemäß einem der Ansprüche 7 bis 10, wobei: ein Bildraumobjektzaun durch eine Mehrzahl von Eckpunkten eines Polygons dargestellt wird; und wenn der Bildraumobjektzaun eine erste Spur und eine zweite Spur überlappt, das Bestimmen der Überlappung umfasst: Bestimmen eines Paars von Eckpunkten der Mehrzahl von Eckpunkten, die durch eine Spurlinie der Mehrzahl von Spurlinien geteilt werden; Bestimmen eines Pixels zwischen dem Paar von Eckpunkten; Berechnen einer ersten Summe von Abständen zwischen dem Pixel und jedem der Mehrzahl von Eckpunkten in der ersten Spur und einer zweiten Summe von Abständen zwischen dem Pixel und jedem der Mehrzahl von Eckpunkten in der zweiten Spur; und Verwenden der ersten Summe von Abständen und der zweiten Summe von Abständen, um ein Verhältnis der Überlappung für den Bildraumobjektzaun in jeder der ersten Spur und der zweiten Spur zu bestimmen.
  12. Verfahren gemäß einem der Ansprüche 7 bis 11, wobei Bildraumobjektzäune über eine Mehrzahl von aufeinanderfolgenden Bilder für das Objekt bestimmt werden und Parameter eines ersten Bildraumobjektzauns der Bildraumobjektzäune verwendet wird, um zweite Parameter eines zweiten Bildraumobjektzauns der Bildraumobjektzäune zu bestimmen.
  13. Verfahren gemäß einem der Ansprüche 7 bis 12, wobei das Erzeugen der Spurmaske ein Verlängern einer Spur der einen oder mehreren Spuren über ein Ausmaß hinaus umfasst, das durch die zweiten Daten dargestellt wird, wobei das Verlängern der Spur mindestens eine Kurvenanpassung und/oder eine Extrapolation umfasst.
  14. System, umfassend: einen oder mehrere Sensoren, um Sensordaten einer Umgebung um ein Fahrzeug zu erzeugen; eine Rechenvorrichtung, die eine oder mehrere Verarbeitungsvorrichtungen und eine oder mehrere Speichervorrichtungen umfasst, die kommunikativ mit der einen oder mehreren Verarbeitungsvorrichtungen gekoppelt sind, die programmierte Anweisungen darauf speichert, welche, wenn durch den Prozessor ausgeführt, die Instanziierung bewirkt von: einem Objektzaungenerator, um Objektzäune, die Objekten in der Umgebung entsprechen, basierend mindestens teilweise auf den Sensordaten zu erzeugen; einem Spurzuweiser, um die Objektzäune mit Spuren innerhalb der Umgebung zu vergleichen, um Spurzuweisungen für die Objekte zu bestimmen; und einer Steuerkomponente, um die Spurzuweisungen zu verwenden, um eine oder mehrere Operationen zum Steuern des Fahrzeugs innerhalb der Umgebung zu bestimmen.
  15. System gemäß Anspruch 14, ferner umfassend einen Spuridentifizierer, um die Spuren unter Verwendung mindestens einer der Sensordaten oder Spurdaten zu identifizieren, die für eine oder mehrere der Spuren in der Umgebung repräsentativ sind.
  16. System gemäß Anspruch 14 oder 15, wobei die Objektzäune durch Zuschneiden von befahrbarem Freiraums aus den Begrenzungsformen erzeugt werden, die den Objekten entsprechen.
  17. System gemäß einem der Ansprüche 14 bis 16, wobei die Objektzäune unter Verwendung eines Zaunerzeugungsalgorithmus erzeugt werden und der Zaunerzeugungsalgorithmus mindestens einen Teil der Sensordaten als Eingabe verwendet.
  18. System gemäß einem der Ansprüche 14 bis 17, wobei der Spurzuweiser ferner: bestimmen soll, basierend mindestens teilweise auf den Objektzäunen und einer Spurmaske, die für mindestens eine ersten Spur und eine zweite Spur der Spuren repräsentativ ist, das ein Objektzaun der Objektzäune mindestens teilweise jede der ersten Spur und der zweiten Spur überlappt; ein Paar von Pixeln identifizieren soll, die den Eckpunkten des Objektzauns entsprechen, die durch eine Spurlinie getrennt werden, welche die erste Spur von der zweiten Spur trennt; ein Pixel bestimmen soll, das der Spurlinie zwischen dem Paar von Pixeln entspricht; eine erste Summe von Abständen zwischen dem Pixel und jeder einer ersten Mehrzahl von Eckpunkten des Objektzauns in der ersten Spur und einer zweiten Summe von Abständen zwischen dem Pixel und jedem einer zweiten Mehrzahl von Eckpunkten des Objektzauns in der zweiten Spur berechnen soll; und ein erstes Verhältnis der Überlappung für den Objektzaun in der ersten Spur basierend mindestens teilweise auf der ersten Summe von Abständen und ein zweites Verhältnis der Überlappung für den Objektzaun in der zweiten Spur basierend mindestens teilweise auf der zweiten Summe von Abständen bestimmen soll.
  19. System gemäß Anspruch 18, wobei der Spurzuweiser ferner die erste Summe von Abständen und die zweite Summe von Abständen normieren soll.
  20. System gemäß einem der Ansprüche 14 bis 19, wobei die eine oder mehreren Operationen der Wegplanung für das Fahrzeug durch die Spuren entsprechen.
DE102020117792.5A 2019-08-08 2020-07-06 Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen Pending DE102020117792A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/535,440 US10997435B2 (en) 2019-08-08 2019-08-08 Leveraging obstacle and lane detections to determine lane assignments for objects in an environment
US16/535,440 2019-08-08

Publications (1)

Publication Number Publication Date
DE102020117792A1 true DE102020117792A1 (de) 2021-02-11

Family

ID=74188380

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020117792.5A Pending DE102020117792A1 (de) 2019-08-08 2020-07-06 Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen

Country Status (4)

Country Link
US (3) US10997435B2 (de)
JP (1) JP7424866B2 (de)
CN (1) CN112347829A (de)
DE (1) DE102020117792A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019178548A1 (en) 2018-03-15 2019-09-19 Nvidia Corporation Determining drivable free-space for autonomous vehicles
WO2020185779A1 (en) 2019-03-11 2020-09-17 Nvidia Corporation Intersection detection and classification in autonomous machine applications
WO2020195875A1 (ja) * 2019-03-27 2020-10-01 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US11375275B2 (en) * 2019-11-19 2022-06-28 Charter Communications Operating, Llc Method and system for using lip sequences to control operations of a device
KR20210062477A (ko) * 2019-11-21 2021-05-31 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20210132496A (ko) * 2020-04-27 2021-11-04 한국전자기술연구원 영상 기반 차선 검출 및 주행 차로 인식 방법 및 장치
US11560154B1 (en) 2020-06-02 2023-01-24 Aurora Operations, Inc. Autonomous vehicle remote teleoperations system
US11644830B1 (en) 2020-06-02 2023-05-09 Aurora Operations, Inc. Autonomous vehicle remote teleoperations system with scenario selection
US11595619B1 (en) * 2020-06-02 2023-02-28 Aurora Operations, Inc. Autonomous vehicle teleoperations system
US11352023B2 (en) 2020-07-01 2022-06-07 May Mobility, Inc. Method and system for dynamically curating autonomous vehicle policies
US11396302B2 (en) 2020-12-14 2022-07-26 May Mobility, Inc. Autonomous vehicle safety platform system and method
US11472444B2 (en) 2020-12-17 2022-10-18 May Mobility, Inc. Method and system for dynamically updating an environmental representation of an autonomous agent
US11472436B1 (en) 2021-04-02 2022-10-18 May Mobility, Inc Method and system for operating an autonomous agent with incomplete environmental information
CN113486531B (zh) * 2021-05-25 2023-08-25 四川见山科技有限责任公司 一种车辆行驶路径规划方法、设备及系统
WO2022267000A1 (en) * 2021-06-25 2022-12-29 Intel Corporation Methods and apparatus for scale recovery from monocular video
CN113255619B (zh) * 2021-07-09 2021-11-23 禾多科技(北京)有限公司 车道线识别及定位方法、电子设备和计算机可读介质
CN113467464A (zh) * 2021-07-17 2021-10-01 普达迪泰(天津)智能装备科技有限公司 一种用于无人车轨迹模拟测试的卫星定位运动轨迹方法
US20230099494A1 (en) * 2021-09-29 2023-03-30 Nvidia Corporation Assigning obstacles to lanes using neural networks for autonomous machine applications
DE102021127748A1 (de) 2021-10-26 2023-04-27 Valeo Schalter Und Sensoren Gmbh Verfahren, computerprogrammprodukt, parkassistenzsystem und fahrzeug
US11814072B2 (en) 2022-02-14 2023-11-14 May Mobility, Inc. Method and system for conditional operation of an autonomous agent

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098751B2 (en) * 2011-07-27 2015-08-04 Gentex Corporation System and method for periodic lane marker identification and tracking
US9721471B2 (en) * 2014-12-16 2017-08-01 Here Global B.V. Learning lanes from radar data
US10262213B2 (en) * 2014-12-16 2019-04-16 Here Global B.V. Learning lanes from vehicle probes
US10586102B2 (en) 2015-08-18 2020-03-10 Qualcomm Incorporated Systems and methods for object tracking
US11136027B2 (en) 2017-05-25 2021-10-05 Honda Motor Co., Ltd. Vehicle control device
US10586456B2 (en) * 2018-04-27 2020-03-10 TuSimple System and method for determining car to lane distance
US10761535B2 (en) * 2018-08-21 2020-09-01 GM Global Technology Operations LLC Intelligent vehicle navigation systems, methods, and control logic for multi-lane separation and trajectory extraction of roadway segments
US10832439B1 (en) * 2019-04-19 2020-11-10 Zoox, Inc. Locating entities in a mapped environment

Also Published As

Publication number Publication date
US20210241004A1 (en) 2021-08-05
JP2021026752A (ja) 2021-02-22
JP7424866B2 (ja) 2024-01-30
US10997435B2 (en) 2021-05-04
US20210241005A1 (en) 2021-08-05
CN112347829A (zh) 2021-02-09
US20210042535A1 (en) 2021-02-11

Similar Documents

Publication Publication Date Title
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112019000048T5 (de) Bestimmung eines befahrbaren freiraums für autonome fahrzeuge
DE112019006468T5 (de) Erkennung des abstands zu hindernissen bei anwendungen mit autonomen maschinen
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE112020001897T5 (de) Trainieren neuronaler Netze unter Verwendung von Grundwahrheitsdaten, die mit Karteninformationen ergänzt wurden, für autonome Maschinenanwendungen
DE112019000122T5 (de) Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112019000279T5 (de) Steuern autonomer fahrzeuge anhand sicherer ankunftszeiten
DE112020002166T5 (de) Simulation realistischer testdaten aus transformierten sensordaten der realen welt für autonome maschinenanwendungen
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE102021121558A1 (de) Auf neuronalen netzen basierende bestimmung der blickrichtung unter verwendung räumlicher modelle
DE112019000070T5 (de) Führen von fahrzeugen durch fahrzeugmanöver unter verwendung von modellen für maschinelles lernen
DE102021126254A1 (de) Überwachen der Aufmerksamkeit und der kognitiven Belastung der Insassen für autonome und halbautonome Fahranwendungen
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE112020006404T5 (de) Planung und steuerung von spurwechseln in autonomen maschinenapplikationen
DE112020001396T5 (de) Formfusion zur bildanalyse
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE102019113114A1 (de) Verhaltensgesteuerte wegplanung in autonomen maschinenanwendungen
DE112020001400T5 (de) Iterative erzeugung räumlicher graphen
DE112021001994T5 (de) Modellbasiertes bestärkendes lernen zur verhaltensvorhersage in autonomen systemen und anwendungen
DE102020100685A1 (de) Vorhersage zeitlicher informationen in autonomenmaschinenanwendungen
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009620000

Ipc: G06V0030190000