DE112019006468T5 - Erkennung des abstands zu hindernissen bei anwendungen mit autonomen maschinen - Google Patents

Erkennung des abstands zu hindernissen bei anwendungen mit autonomen maschinen Download PDF

Info

Publication number
DE112019006468T5
DE112019006468T5 DE112019006468.1T DE112019006468T DE112019006468T5 DE 112019006468 T5 DE112019006468 T5 DE 112019006468T5 DE 112019006468 T DE112019006468 T DE 112019006468T DE 112019006468 T5 DE112019006468 T5 DE 112019006468T5
Authority
DE
Germany
Prior art keywords
data
vehicle
camera
depth
boundary
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
DE112019006468.1T
Other languages
English (en)
Inventor
Yilin YANG
Bala Siva Sashank JUJJAVARAPU
Pekka Janis
Zhaoting Ye
Sangmin Oh
Minwoo Park
Daniel Herrera Castro
Tommi Koivisto
David Nister
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 DE112019006468T5 publication Critical patent/DE112019006468T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/006Theoretical aspects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/93Radar or analogous systems specially adapted for specific applications for anti-collision purposes
    • G01S13/931Radar or analogous systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S15/00Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
    • G01S15/006Theoretical aspects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S15/00Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
    • G01S15/88Sonar systems specially adapted for specific applications
    • G01S15/93Sonar systems specially adapted for specific applications for anti-collision purposes
    • G01S15/931Sonar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/006Theoretical aspects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/02Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00
    • G01S7/40Means for monitoring or calibrating
    • G01S7/4052Means for monitoring or calibrating by simulation of echoes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4802Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00 using analysis of echo signal for target characterisation; Target signature; Target cross-section
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/52Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00
    • G01S7/539Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00 using analysis of echo signal for target characterisation; Target signature; Target cross-section
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/251Fusion techniques of input or preprocessed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Electromagnetism (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Acoustics & Sound (AREA)
  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

In verschiedenen Beispielen wird ein tiefes neuronales Netzwerk (DNN) trainiert, um im Einsatz Abstände zu Objekten und Hindernissen allein unter Verwendung von Bilddaten genau vorherzusagen. Das DNN kann mit Ground-Truth-Daten trainiert werden, die unter Verwendung von Sensordaten von einer beliebigen Anzahl von Tiefenvorhersagesensoren erzeugt und codiert werden, wie z. B. ohne Einschränkung RADAR-Sensoren, LIDAR-Sensoren und/oder SONAR-Sensoren. Kameraadaptionsalgorithmen können in verschiedenen Ausführungsformen verwendet werden, um das DNN für die Verwendung mit Bilddaten anzupassen, die von Kameras mit variierenden Parametern - wie z. B. variierenden Sichtfeldern - erzeugt wurden. In einigen Beispielen kann ein Nachbearbeitungsvorgang für Sicherheitsbegrenzungen an den Vorhersagen des DNN ausgeführt werden, um sicherzustellen, dass die Vorhersagen in einen sicherheitstechnisch zulässigen Bereich fallen.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die Fähigkeit, den Abstand zwischen einem Fahrzeug - wie z. B. einem autonomen oder halbautonomen Fahrzeug - und Objekten oder Hindernissen in der Umgebung korrekt zu erkennen, ist entscheidend für den sicheren Betrieb des Fahrzeugs. Zum Beispiel sind genaue Schätzungen des Abstands zu einem Hindernis - basierend auf Sensordaten - der Kern sowohl von Längssteuerungsaufgaben, wie z. B. automatische Geschwindigkeitssteuerung (automatic cruise control - ACC) und automatische Notbremsung (automated emergency braking - AEB), als auch von Quersteuerungsaufgaben, wie z. B. Sicherheitsprüfungen für Spurwechsel sowie sichere Ausführung von Spurwechseln.
  • Herkömmliche Ansätze zur Berechnung des Abstands zu Objekten oder Hindernissen in der Umgebung eines Fahrzeugs beruhen auf der Annahme, dass eine Bodenebene oder die Erde flach ist. Basierend auf dieser Annahme können dreidimensionale (3D) Informationen unter Verwendung von zweidimensionalen (2D) Informationsquellen - wie z. B. einem 2D-Bild - modelliert werden. Da z. B. angenommen wird, dass die Bodenebene flach ist, nehmen herkömmliche Systeme ferner an, dass sich die Unterseite eines zweidimensionalen Begrenzungsrahmens, der einem erkannten Objekt entspricht, auf der Bodenebene befindet. Sobald ein Objekt erkannt wird und basierend auf der Annahme eines flachen Bodens, wird daher die einfache Geometrie verwendet, um den Abstand des gegebenen Objekts oder Hindernisses zum Fahrzeug zu berechnen.
  • Diese herkömmlichen Ansätze leiden jedoch, wenn die tatsächlichen Straßenoberflächen, welche die tatsächliche Bodenebene definieren, gekrümmt oder anderweitig nicht flach sind. Wenn z. B. die Annahme gilt, dass die Bodenebene flach ist, obwohl sie es in Wirklichkeit nicht ist, führt eine Krümmung auf einer Fahroberfläche zu ungenauen Vorhersagen - z. B. zu einer Über- oder Unterschätzung - in Bezug auf Abstände zu Objekten oder Hindernissen in der Umgebung. In beiden Szenarien weisen ungenaue Abstandsschätzungen eine direkte negative Konsequenz auf verschiedene Vorgänge des Fahrzeugs auf, wodurch die Sicherheit, Performance und Zuverlässigkeit sowohl der Quer- und Längssteuerung als auch der warnbezogenen Fahrmerkmale beeinträchtigt werden können. Ein unterschätzter Abstand kann zum Beispiel dazu führen, dass die ACC nicht aktiviert wird und, was noch kritischer ist, dass die AEB-Merkmale nicht aktiviert werden, um eine mögliche Kollision zu verhindern. Umgekehrt kann ein überschätzter Abstand dazu führen, dass ACC- oder AEB-Merkmale aktiviert werden, wenn sie nicht benötigt werden, was zu potenziellen Unannehmlichkeiten oder Schäden für die Fahrgäste führt und gleichzeitig das Vertrauen der Fahrgäste in die Fähigkeit des Fahrzeugs, sicher zu funktionieren, verringert.
  • Ein weiterer Nachteil herkömmlicher Systeme ist die Abhängigkeit von der Einheitlichkeit zwischen den Kameras, die während des Trainings verwendet werden, und den Kameras, die im Einsatz verwendet werden. Da ein tiefes neuronales Netzwerk (deep neural network - DNN) beispielsweise vom Maßstab der Objekte und der Umgebung lernen kann, entsteht eine Einschränkung, wenn die während des Einsatzes verwendeten Bilddaten von einer Kamera erzeugt werden, die andere Parameter hat als die beim Training verwendete Kamera. So kann z. B. der Maßstab von Objekten in den Trainingsbilddaten anders erscheinen als der Maßstab von Objekten in den eingesetzten Bilddaten, was zu ungenauen Vorhersagen des DNN in Bezug auf Abstände zu Objekten oder Hindernissen führt. Diese ungenauen Vorhersagen können zu ähnlichen Problemen wie den vorstehend beschriebenen in Bezug auf die Genauigkeit und die Effektivität verschiedener Fahraufgaben des Fahrzeugs führen.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf die Berechnung des Abstands zu Hindernissen bei Anwendungen mit autonomen Anwendungen. Es werden Systeme und Verfahren offenbart, die Abstände zu Objekten oder Hindernissen in einer Umgebung genau und robust vorhersagen, indem sie ein tiefes neuronales Netzwerk (DNN) verwenden, das mit Sensordaten trainiert wurde - wie z. B. LIDAR-Daten, RADAR-Daten, SONAR-Daten, Bilddaten und/oder dergleichen. Indem zum Beispiel andere Sensordaten als nur Bilddaten für das Training des DNN verwendet werden, sind die Vorhersagen des DNN auch bei gekrümmten oder anderweitig nicht flachen Fahroberflächen genau und zuverlässig.
  • Im Gegensatz zu herkömmlichen Systemen, wie den vorstehend beschriebenen, kann ein DNN - unter Verwendung eines oder mehrerer Tiefensensoren, wie z. B. LIDAR-Sensoren, RADAR-Sensoren, SONAR-Sensoren und/oder dergleichen - trainiert werden, um Abstände zu Objekten oder Hindernissen in der Umgebung unter Verwendung von Bilddaten vorherzusagen, die von einer oder mehreren Kameras eines Fahrzeugs erzeugt werden. Durch den Einsatz von Tiefensensoren zur Erzeugung von Ground Truth während des Trainings kann das DNN - im Einsatz - Abstände zu Objekten oder Hindernissen in der Umgebung allein unter Verwendung von Bilddaten genau vorhersagen. Insbesondere kann das Setzen auf RADAR-Daten, um bei der Erzeugung von Ground Truth zu helfen, hilfreich sein, um das DNN für die Schätzung von Objekten in größeren Abständen zu trainieren, z. B. über fünfzig Meter vom Fahrzeug entfernt. Da die Ausführungsformen nicht auf eine Schätzung bei flachem Boden beschränkt sind - ein Nachteil herkömmlicher Systeme - kann das DNN außerdem in der Lage sein, Abstände unabhängig von der Topologie der Fahroberfläche robust vorherzusagen.
  • Die Pipeline zur Codierung von Ground-Truth-Daten kann Sensordaten von Tiefensensor(en) verwenden, um - in Ausführungsformen automatisch, ohne manuelle Annotation - Ground-Truth-Daten zu codieren, die den Trainingsbilddaten entsprechen, um das DNN so zu trainieren, genaue Vorhersagen allein anhand von Bilddaten zu treffen. Als ein Ergebnis können Trainingsengpässe, die durch die manuelle Markierung entstehen, beseitigt und die Trainingszeit verkürzt werden. Darüber hinaus kann in einigen Ausführungsformen ein Kameraadaptionsalgorithmus verwendet werden, um die Varianz der intrinsischen Eigenschaften zwischen den Kameramodellen zu überwinden, wodurch das DNN unabhängig vom Kameramodell genau funktionieren kann.
  • In einigen Ausführungsformen kann als ein Ergebnis von potenziellem Rauschen in den Vorhersagen des DNN während der Nachbearbeitung eine Berechnung von Sicherheitsgrenzen durchgeführt werden, um sicherzustellen, dass der berechnete Abstand in einen sicherheitstechnisch zulässigen Bereich von Werten fällt. Zum Beispiel können die Form der Fahroberfläche und/oder Daten, die einer Begrenzungsform eines Objekts oder Hindernisses entsprechen, zur Bestimmung einer oberen Abstandsgrenze und/oder einer unteren Abstandsgrenze herangezogen werden. Wenn also eine Vorhersage des DNN außerhalb des sicherheitstechnisch zulässigen Bereichs liegt, können die Abstandswerte der oberen Abstandsgrenze oder der unteren Abstandsgrenze zugeteilt werden.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zur Erkennung des Abstands zu Hindernissen bei Anwendungen mit autonomen Maschinen werden nachstehend unter Bezugnahme auf die beigefügten Zeichnungsfiguren detailliert beschrieben, in welchen Folgendes gilt:
    • 1 ist ein Datenablaufdiagramm für einen Prozess zum Trainieren eines Modells/von Modellen des maschinellen Lernens zur Vorhersage von Abständen zu Objekten und/oder Hindernissen in einer Umgebung gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2 ist ein Datenablaufdiagramm für die Codierung von Ground-Truth-Daten unter Verwendung von Sensordaten gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 3A ist eine Visualisierung von Ground-Truth-Daten, die von (einem) LIDAR-Sensor(en) erzeugt wurden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 3B ist eine Visualisierung von Ground-Truth-Daten, die von (einem) RADAR-Sensor(en) erzeugt wurden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 4 ist eine Veranschaulichung verschiedener Berechnungen, die in einem Kameraadaptionsalgorithmus verwendet werden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 5A beinhaltet Visualisierungen von Ground-Truth-Masken und Tiefenkartenvorhersagen eines Modells/von Modellen des maschinellen Lernens, die auf variierenden Sensorparametern basieren, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 5B beinhaltet Veranschaulichungen von Verzerrungskarten und Histogrammen für Sensoren mit variierenden Parametern gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6 ist ein Ablaufdiagramm, das ein Verfahren zum Trainieren eines Modells/von Modellen des maschinellen Lernens zur Vorhersage von Abständen zu Objekten und/oder Hindernissen in einer Umgebung zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 7 ist ein Datenablaufdiagramm für einen Prozess zum Vorhersagen von Abständen zu Objekten und/oder Hindernissen in einer Umgebung unter Verwendung eines Modells/von Modellen des maschinellen Lernens gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • Die 8A-8B sind Visualisierungen von Objekterkennungen und Tiefenvorhersagen basierend auf den Ausgaben eines Modells/von Modellen des maschinellen Lernens gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 9 ist ein Ablaufdiagramm, das ein Verfahren zum Vorhersagen von Abständen zu Objekten und/oder Hindernissen in einer Umgebung unter Verwendung eines Modells/von Modellen des maschinellen Lernens zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10A ist ein Diagramm, das eine Berechnung von Sicherheitsgrenzen für Zuteilungsabstandsvorhersagen eines Modelles/von Modellen des maschinellen Lernens veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10B ist ein Diagramm, das eine maximale Aufwärtskontur für Berechnungen von Sicherheitsgrenzen veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10C ist eine Veranschaulichung der Berechnung einer oberen Sicherheitsgrenze gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10D ist ein Diagramm, das eine maximale Abwärtskontur für Berechnungen von Sicherheitsgrenzen veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10E ist eine Veranschaulichung der Berechnung einer unteren Sicherheitsgrenze gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10F ist eine Veranschaulichung eines Sicherheitsbandprofils gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 11 ist ein Ablaufdiagramm, das ein Verfahren zur Bestimmung von Sicherheitsgrenzen unter Verwendung der Straßenform zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 12 ist eine Veranschaulichung der Berechnung von Sicherheitsgrenzen unter Verwendung einer Begrenzungsform, die einem Objekt entspricht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 13 ist ein Ablaufdiagramm, das ein Verfahren zur Bestimmung von Sicherheitsgrenzen unter Verwendung von Begrenzungsformeigenschaften zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 14A ist eine Veranschaulichung eines beispielhaften autonomen Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 14B ist ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug aus 14A gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 14C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug aus 14A gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 14D ist ein Systemdiagramm zur Kommunikation zwischen (einem) cloudbasierten Server(n) und dem beispielhaften autonomen Fahrzeug aus 14A gemäß einigen Ausführungsformen der vorliegenden Offenbarung; und
    • 15 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung, die zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
  • DETAILLIERTE BESCHREIBUNG
  • Es werden Systeme und Verfahren offenbart, die sich auf die Erkennung des Abstands zu Hindernissen bei Anwendungen mit autonomen Maschinen beziehen. Obwohl die vorliegende Offenbarung in Bezug auf ein Beispiel für ein autonomes Fahrzeug 1400 (hierin alternativ als „Fahrzeug 1400“, „Ego-Fahrzeug 1400“ oder „autonomes Fahrzeug 1400“ bezeichnet) beschrieben werden kann, von dem ein Beispiel in Bezug auf die 14A-14D beschrieben ist, soll dies nicht einschränkend sein. Beispielsweise können die hierin beschriebenen Systeme und Verfahren ohne Einschränkung von nicht autonomen Fahrzeugen, halbautonomen Fahrzeugen (z. B. in einem oder mehreren adaptiven Fahrerassistenzsystemen (adaptive driver assistance system - ADAS)), Robotern, Lagerfahrzeugen, Geländewagen, Luftschiffen, Booten, Shuttles, Notarzteinsatzfahrzeugen, Motorrädern, elektrischen oder motorisierten Fahrrädern, Flugzeugen, Baufahrzeugen, Unterwasserfahrzeugen, Drohnen und/oder anderen Fahrzeugarten verwendet werden. Obwohl die vorliegende Offenbarung in Bezug auf autonomes Fahren oder ADAS-Systeme beschrieben werden kann, soll dies ebenfalls nicht einschränkend sein. Die hierin beschriebenen Systeme und Verfahren können beispielsweise in Simulationsumgebungen (z. B. zum Testen der Genauigkeit von Modellen des maschinellen Lernens während der Simulation), in der Robotik, in Luftfahrtsystemen, in Bootssystemen und/oder in anderen Technologiebereichen verwendet werden, z. B. für die Wahrnehmung, die Verwaltung von Weltmodellen, die Pfadplanung, die Hindernisvermeidung und/oder andere Prozesse.
  • Training eines Modells/von Modellen des maschinellen Lernens für Abstandsvorhersagen
  • Unter Bezugnahme auf 1 ist 1 ein Datenablaufdiagramm für einen Prozess 100 zum Trainieren eines Modells/von Modellen des maschinellen Lernens zur Vorhersage von Abständen zu Objekten und/oder Hindernissen in einer Umgebung gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Der Prozess 100 kann Erzeugen und/oder Empfangen von Sensordaten 102 von einem oder mehreren Sensoren des Fahrzeugs 1400 beinhalten. Beim Einsatz können die Sensordaten 102 vom Fahrzeug 1400 und innerhalb des Prozesses 100 verwendet werden, um Tiefen und/oder Abstände zu einem oder mehreren Objekten oder Hindernissen - wie z. B. anderen Fahrzeugen, Fußgängern, statischen Objekten usw. - in der Umgebung vorherzusagen. Die vorhergesagten Abstände können z. B. einen Wert in einer „z“-Richtung darstellen, die als eine Tiefenrichtung bezeichnet werden kann. Die Sensordaten 102 können ohne Einschränkung Sensordaten 102 von beliebigen der Sensoren des Fahrzeugs 1400 (und/oder in einigen Beispielen anderen Fahrzeugen oder Objekten, wie z. B. Robotervorrichtungen, VR-Systemen, AR-Systemen usw.) beinhalten. Zum Beispiel und unter Bezugnahme auf die 14A-14C können die Sensordaten 102 Daten beinhalten, die ohne Einschränkung erzeugt werden durch Sensor(en) 1458 von globalen Navigationssatellitensystemen (GNSS) (z. B. Sensor(en) des globalen Positionsbestimmungssystems), RADAR-Sensor(en) 1460, Ultraschallsensor(en) 1462, LIDAR-Sensor(en) 1464, Sensor(en) 1466 einer Trägheitsmesseinheit (inertial measurement unit - IMU) (z. B. (einem) Beschleunigungsmesser, Gyroskop(en), Magnetkompass(en), (einem) Magnetometer usw.), Mikrofon(en) 1496, Stereokamera(s) 1468, Weitsichtkamera(s) 1470 (z. B. Fischaugenkameras), Infrarotkamera(s) 1472, Rundumkamera(s) 1474 (z. B. 360-Grad-Kameras), Langstrecken- und/oder Mittelstreckenkamera(s) 1498, Geschwindigkeitssensor(en) 1444 (z. B. zum Messen der Geschwindigkeit des Fahrzeugs 1400) und/oder anderen Sensorarten. Obwohl in erster Linie auf die Sensordaten 102 Bezug genommen wird, die LIDAR-Daten, RADAR-Daten und Bilddaten entsprechen, soll dies nicht einschränkend sein und die Sensordaten 102 können alternativ oder zusätzlich von beliebigen der Sensoren des Fahrzeugs 1400, eines anderen Fahrzeugs und/oder eines anderen Systems (z. B. eines virtuellen Fahrzeugs in einer simulierten Umgebung) erzeugt werden.
  • In einigen Beispielen können die Sensordaten 102 die Sensordaten enthalten, die von einem oder mehreren nach vorne gerichteten Sensoren, Seitensichtsensoren und/oder Rückfahrsensoren erzeugt werden. Diese Sensordaten 102 können zur Identifizierung, Erkennung, Klassifizierung und/oder Verfolgung der Bewegung von Objekten um das Fahrzeug 1400 innerhalb der Umgebung nützlich sein. In Ausführungsformen kann eine beliebige Anzahl von Sensoren verwendet werden, um mehrere Sichtfelder (z. B. die Sichtfelder der Langstreckenkameras 1498, der nach vorne gerichteten Stereokamera 1468 und/oder der nach vorne gerichteten Weitsichtkamera 1470 aus 14B) und/oder Sensorfelder (z. B. eines LIDAR-Sensors 1464, eines RADAR-Sensors 1460 usw.) einzubeziehen.
  • In einigen Ausführungsformen können (ein) Modell(e) 104 des maschinellen Lernens trainiert werden, um den Abstand/die Abstände 106 und/oder die Objekterkennung(en) 116 allein unter Verwendung von Bilddaten vorherzusagen. Zum Beispiel kann der Prozess 100 verwendet werden, um das/die Modell(e) 104 des maschinellen Lernens zu trainieren, um den Abstand/die Abstände 106 - oder eine Tiefenkarte, die in Abstände umgewandelt werden kann - von einem oder mehreren Objekten und/oder Hindernissen in der Umgebung allein unter Verwendung von Bildern als Eingabedaten vorherzusagen. Darüber hinaus können in einigen Ausführungsformen das/die Modell(e)104 des maschinellen Lernens trainiert werden, um die Objekterkennung(en) 116 intrinsisch zu berechnen (in einigen Ausführungsformen können die Objekterkennung(en) jedoch von einem Objektdetektor - wie z. B. einem Objekterkennungsalgorithmus, einem Algorithmus des maschinellen Sehens, einem neuronalen Netzwerk usw. - berechnet werden). Um jedoch das/die Modell(e) 104 des maschinellen Lernens effektiver zu trainieren, können jedoch zusätzliche Daten aus den Sensordaten 102 - wie z. B. LIDAR-Daten, RADAR-Daten, SONAR-Daten und/oder dergleichen - verwendet werden, um Ground-Truth-Daten zu erzeugen, die den Bildern entsprechen (z. B. über Ground-Truth-Codierung 110). Im Gegenzug können die Ground-Truth-Daten verwendet werden, um die Genauigkeit des Modells/der Modelle 104 des maschinellen Lernens bei der Vorhersage des Abstands/der Abstände 106 und/oder der Objekterkennung(en) 116 zu erhöhen, indem die zusätzliche Genauigkeit dieser ergänzenden Sensordaten 102 (z. B. LIDAR-Daten, RADAR-Daten, SONAR-Daten usw.) genutzt wird.
  • In Bezug auf die Eingaben in das/die Modell(e) 104 des maschinellen Lernens können die Sensordaten 102 Bilddaten, die ein Bild(er) darstellen, und/oder Bilddaten, die ein Video (z. B. Schnappschüsse eines Videos) darstellen, beinhalten. Wenn die Sensordaten 102 Bilddaten beinhalten, kann eine beliebige Art eines Bilddatenformats verwendet werden, zum Beispiel und ohne Einschränkung komprimierte Bilder wie etwa im Format der Joint Photographic Experts Group (JPEG) oder Luminanz/Chrominanz (YUV), komprimierte Bilder als Einzelbilder, die aus einem komprimierten Videoformat wie etwa H.264/Advanced Video Coding (AVC) oder H.265/High Efficiency Video Coding (HEVC) stammen, Rohbilder wie etwa ursprünglich von Red Clear Blue (RCCB), Red Clear (RCCC) oder einer anderen Art von Bildsensor und/oder andere Formate. Darüber hinaus können die Sensordaten 102 in einigen Beispielen innerhalb des Prozesses 100 ohne eine beliebige Vorbearbeitung verwendet werden (z. B. in einem Roh- oder Aufnahmeformat), während in anderen Beispielen die Sensordaten 102 einer Vorbearbeitung unterzogen werden können (z. B. Rauschausgleich, Entfernung des Mosaikeffekts, Skalierung, Beschneidung, Augmentation, Weißabgleich, Tonkurvenanpassung usw., wie z. B. unter Verwendung eines Sensordatenpräprozessors (nicht gezeigt). Im hier verwendeten Sinne können sich die Sensordaten 102 auf unverarbeitete Sensordaten, vorverarbeitete Sensordaten oder eine Kombination davon beziehen.
  • Als nicht einschränkende Ausführungsform kann zur Erzeugung der Ground-Truth-Daten für das Training des Modells/der Modelle 104 des maschinellen Lernens die Ground-Truth-Codierung 110 gemäß dem Prozess zur Ground-Truth-Codierung 110 aus 2 durchgeführt werden. Zum Beispiel können die Sensordaten 102 - wie z. B. Bilddaten, die ein oder mehrere Bilder darstellen - von einem Objektdetektor 214 verwendet werden, um Objekte und/oder Hindernisse zu erkennen, die durch die Bilddaten dargestellt werden. Zum Beispiel können Personen, Tiere, Fahrzeuge, Schilder, Masten, Ampeln, Gebäude, Luftschiffe, Boote und/oder andere Arten von Objekten und/oder Hindernissen vom Objektdetektor 214 erkannt werden. Bei einer Ausgabe des Objektdetektors 214 kann es sich um Positionen von Begrenzungsformen (z. B. Begrenzungsrahmen, Rechtecke, Quadrate, Kreise, Polygone usw.) handeln, die den durch die Bilddaten dargestellten Objekten oder Hindernissen entsprechen. Sobald die Positionen und Abmessungen der Begrenzungsformen in Bezug auf ein konkretes Bild bekannt sind, können zusätzliche Sensordaten 102 - wie z. B. LIDAR-Daten und/oder RADAR-Daten, als nicht einschränkende Beispiele - verwendet werden, um die Abstände zu den Objekten oder Hindernissen zu bestimmen, die den jeweiligen Begrenzungsformen entsprechen. Wenn es also schwierig ist, den Abstand zu einem Objekt oder Hindernis allein unter Verwendung von Bilddaten - oder einer anderen zweidimensionalen Darstellung - genau zu ermitteln, können diese zusätzlichen Sensordaten 102 verwendet werden, um die Genauigkeit der Vorhersagen in Bezug auf die Abstände zu Objekten oder Hindernissen innerhalb der Bilder zu erhöhen.
  • In einigen Ausführungsformen kann die Ground-Truth-Codierung 110 automatisch ohne manuelle und/oder menschliche Markierungen oder Annotationen erfolgen. Da beispielsweise die Umwandlungen von Weltbereichsausgaben eines oder mehrerer LIDAR-Sensoren, RADAR-Sensoren, SONAR-Sensoren usw. in Bildbereichsausgaben einer oder mehrerer Kameras bekannt sein können und da die Positionen und Abmessungen von Begrenzungsformen innerhalb des Bildbereichs bekannt sein können, können die Abstände (z. B. LIDAR-Abstände 216, RADAR-Abstände 218 usw.) automatisch mit den Objekten und/oder Hindernissen innerhalb der Bilder korreliert werden. Wenn z. B. ein Abstand/Abstände zu einem oder mehreren Objekten im Weltbereich bestimmt werden, um einer Region des Bildbereichs zu entsprechen, die mit einer Begrenzungsform eines Objekts assoziiert ist, können der Abstand/die Abstände mit dem Objekt zum Zwecke der Ground-Truth-Codierung 110 assoziiert werden. In einigen Beispielen kann ein einzelner Abstandswerts mit jedem Objekt korreliert werden, während in anderen Beispielen die Abstände, die einem Objekt entsprechen, basierend auf variierenden Abstandsausgaben von LIDAR-Sensoren, RADAR-Sensoren, SONAR-Sensoren und/oder dergleichen variieren können.
  • In einigen Ausführungsformen können der/die LID-AR-Abstand/Abstände 216, die aus den von einem oder mehreren LIDAR-Sensor(en) 1464 erzeugten LIDAR-Daten bestimmt wurden, für die Ground-Truth-Codierung 110 der Abstände verwendet werden. Zum Beispiel und in Bezug auf 3A können die Begrenzungsformen 304A-304E, die jeweils den Objekten 306A-306E entsprechen, vom Objektdetektor 214 erzeugt und mit einem Bild 302 assoziiert werden. Außerdem können LIDAR-Daten - dargestellt durch die LIDAR-Punkte 310 in der Visualisierung aus 3A - mit dem Bild 302 assoziiert werden. Wie hierin beschrieben, können beispielsweise Umwandlungen zwischen Weltbereichspositionen und entsprechenden Bildbereichspositionen von LIDAR-Daten bekannt sein oder unter Verwendung intrinsischer und/oder extrinsischer Parameter - z. B. nach Kalibrierung - des/der LIDAR-Sensors/Sensoren 1465 und/oder der Kamera(s), die das Bild 302 erzeugt haben, bestimmt werden. Da diese Beziehung zwischen dem Weltbereich und dem Bildbereich bekannt ist und da die LIDAR-Daten und die Bilddaten im Wesentlichen gleichzeitig aufgenommen wurden, können die LIDAR-Daten-Abstandsvorhersagen mit den verschiedenen Objekten 306 - oder ihren entsprechenden Begrenzungsformen 304 - im Bild 302 assoziiert werden.
  • Obwohl die LIDAR-Punkte nur innerhalb der Begrenzungsformen 304 veranschaulicht sind, soll dies nicht einschränkend sein und nur Veranschaulichungszwecken dienen. In einigen Beispielen können die LIDAR-Punkte so erzeugt werden, dass sie dem gesamten Bild 302 entsprechen oder dass sie zusätzlichen oder alternativen Abschnitten des Bildes 302 entsprechen, als die Visualisierung von 3A veranschaulicht.
  • In einigen Ausführungsformen kann für jedes Objekt 306 eine beschnittene Begrenzungsform 308 erzeugt werden, die genau so groß ist wie die dem Objekt entsprechende Begrenzungsform 304 oder kleiner als diese ist. Zum Beispiel, da die Begrenzungsformen 304, die von einem Objektdetektor (z. B. einem neuronalen Netzwerk zur Objekterkennung, einem Algorithmus des maschinellen Sehens oder einem anderen Objekterkennungsalgorithmus) ausgegeben werden, zusätzliche Abschnitte der Umgebung enthalten können, die nicht Teil des Objekts 306 oder Hindernisses sind. Daher und in einem Bestreben, die Genauigkeit des Abgleichs der Tiefenwerte aus den LIDAR-Daten mit den Pixeln des Bildes 302, die dem Objekt 306 oder dem Hindernis entsprechen, zu erhöhen, können die beschnittenen Begrenzungsformen 308 innerhalb der Begrenzungsformen 304 erstellt werden.
  • In einigen Beispielen können die Abmessungen der beschnittenen Begrenzungsformen 308 basierend auf einem Abstand des Objekts 306 von einer Referenzposition (z. B. vom Ego-Fahrzeug, von der Kamera, vom LIDAR-Sensor usw.) bestimmt werden, sodass sich der Betrag der Beschneidung ändert, wenn sich ein Objekt weiter von einer Referenzposition entfernt. Beispielsweise kann der Betrag, der Prozentsatz (z. B. der Prozentsatz der Begrenzungsform 304) oder das Verhältnis (Verhältnis der Größe der beschnittenen Begrenzungsform 308 in Bezug auf die Begrenzungsform 304 oder umgekehrt) des Beschneidens abnehmen, wenn der Abstand des Objekts 306 zunimmt, oder umgekehrt. In solchen Beispielen kann eine berechnete Änderung des Betrags, des Prozentsatzes oder des Verhältnisses der Beschneidung gemäß dem Abstand vorhanden sein (z. B. unter Verwendung einer oder mehrerer Gleichungen, Kurven, Beziehungen, Funktionen usw.), oder können Zonen vorhanden sein, in welchen konkrete Abstandszonen einem bestimmten Betrag, Prozentsatz oder Verhältnis der Beschneidung entsprechen. Bei einem ersten Abstandsbereich von 0-10 Metern kann die Beschneidung beispielsweise 50 % betragen, bei 10-20 Metern kann die Beschneidung 40 % betragen, bei 20-40 Metern kann sie 35 % betragen und so weiter.
  • In einigen Ausführungsformen können die Abmessungen der beschnittenen Begrenzungsformen 308 für unterschiedliche Seiten oder Kanten der beschnittenen Begrenzungsformen 308 unterschiedlich bestimmt werden. Zum Beispiel kann eine untere Beschneidung der Begrenzungsform 304, um eine entsprechende beschnittene Begrenzungsform 308 zu erzeugen, ein anderer Betrag, Prozentsatz oder ein anderes Verhältnis als eine obere Beschneidung, eine Beschneidung auf der linken Seite und/oder eine Beschneidung auf der rechten Seite sein, kann eine obere Bescheidung der Begrenzungsform 304, um eine entsprechende beschnittene Begrenzungsform 308 zu erzeugen, ein anderer Betrag, Prozentsatz oder ein anderes Verhältnis als eine untere Beschneidung, eine Beschneidung auf der linken Seite und/oder eine Beschneidung auf der rechten Seite sein und so weiter. Beispielsweise kann die untere Beschneidung ein festgelegter Betrag, Prozentsatz oder ein festgelegtes Verhältnis für jede beschnittene Begrenzungsform 308 sein, während sich die obere Beschneidung basierend auf einem Faktor oder einer Variablen - wie z. B. dem Abstand von der Referenzposition, der Art des Objekts usw. - ändern kann, oder umgekehrt. Als nicht einschränkendes Beispiel kann die untere Beschneidung immer 10 % betragen, während die obere Beschneidung in einem Bereich zwischen 10 % und 20 % liegen kann, wobei ein Wert innerhalb des Bereichs basierend auf einer Abhängigkeit des Abstands des Objekts 306 von einer Referenzposition bestimmt wird.
  • In mindestens einer Ausführungsform können die LIDAR-Punkte 310, die zur Bestimmung des Abstands eines Objekts 306 verwendet werden, die LIDAR-Punkte 310 sein, die der beschnittenen Begrenzungsform 308 entsprechen. Als ein Ergebnis wird in solchen Ausführungsformen die Wahrscheinlichkeit erhöht, dass die Tiefen oder Abstände, die der Bestimmung nach dem Objekt 306 entsprechen, tatsächlich dem Objekt 306 entsprechen. In anderen Ausführungsformen können die LIDAR-Punkte 310, die zur Bestimmung des Abstands zu einem Objekt verwendet werden, die LIDAR-Punkte 310 sein, die den Begrenzungsformen 304 entsprechen (und die beschnittenen Begrenzungsformen 304 werden in solchen Ausführungsformen möglicherweise nicht verwendet oder erzeugt). Der Abstand, der mit jedem Objekt 306 assoziiert ist (z. B. 10,21 Meter (m) für das Objekt 306A, 14,90 m für das Objekt 306B, 24,13 m für das Objekt 306C, 54,45 m für das Objekt 306D und 58,86 m für das Objekt 306E), kann unter Verwendung eines oder mehrerer der LIDAR-Punkte 310 bestimmt werden, die mit der entsprechenden Begrenzungsform 304 und/oder beschnittenen Begrenzungsform 308 assoziiert sind. Zum Beispiel können die Abstände, die mit jedem der LIDAR-Punkte 310 innerhalb der Begrenzungsform 304 und/oder der Begrenzungsform 308 assoziiert sind, gemittelt werden, um den endgültigen Abstandswert zu erzeugen. Als ein anderes Beispiel kann ein LIDAR-Punkt 310, der sich am nächsten bei einem Schwerpunkt der Begrenzungsform 304 und/oder der beschnittenen Begrenzungsform 308 befindet, zur Bestimmung des endgültigen Abstandswertes verwendet werden. In einem weiteren Beispiel kann eine Gruppe oder Teilmenge der LIDAR-Punkte 310 - wie z.B. eine Teilmenge innerhalb einer Region in der Nähe eines Schwerpunkts der Begrenzungsform 304 und/oder der beschnittenen Begrenzungsform 308 - verwendet werden, um den endgültigen Abstandswert für ein Objekt 306 zu bestimmen (z. B. durch Mittelwertbildung, Gewichtung und/oder anderweitige Verwendung der Abstandswerte, die mit jedem der Gruppe oder Teilmenge der LIDAR-Punkte 310 assoziiert sind, um den endgültigen Abstandswert zu berechnen).
  • Um das Rauschen in den in den Bildbereich projizierten LIDAR-Punkten 310 zu reduzieren, kann in einigen Ausführungsformen zusätzlich ein Filteralgorithmus angewendet werden, um verrauschte LIDAR-Punkte 310 zu entfernen oder herauszufiltern. Beispielsweise und ohne Einschränkung kann ein Random-Sample-Consensus(RANSAC)-Algorithmus auf die Kamera-zu-LIDAR-Datenpunkt-Assoziationen angewendet werden, um die verrauschten LIDAR-Punkte 310 zu clustern und herauszufiltern. Als ein Ergebnis der Verwendung eines Filteralgorithmus, wie z. B. RANSAC, können die verbleibenden LIDAR-Punkte 310, die sich innerhalb einer gegebenen Begrenzungsform 304 und/oder beschnittenen Begrenzungsform 308 befinden, so interpretiert werden, dass sie einen gemeinsamen Abstand von der Kamera oder einer anderen Referenzposition aufweisen.
  • In einigen Ausführungsformen können der/die RADAR-Abstand/Abstände 218, die aus den von einem oder mehreren RADAR-Sensor(en) 1460 erzeugten RADAR-Daten bestimmt wurden, für die Ground-Truth-Codierung 110 der Abstände verwendet werden. Zum Beispiel und in Bezug auf 3B können die Begrenzungsformen 304A-304E, die jeweils den Objekten 306A-306E entsprechen, vom Objektdetektor 214 erzeugt und mit einem Bild 302 assoziiert werden. Außerdem können RADAR-Daten - dargestellt durch die RADAR-Punkte 312 in der Visualisierung aus 3B - mit dem Bild 302 assoziiert werden. Wie hierin beschrieben, können beispielsweise Umwandlungen zwischen Weltbereichspositionen und entsprechenden Bildbereichspositionen von RADAR-Daten bekannt sein oder unter Verwendung intrinsischer und/oder extrinsischer Parameter - z. B. nach Kalibrierung - des/der RADAR-Sensors/Sensoren 1460 und/oder der Kamera(s), die das Bild 302 erzeugt haben, bestimmt werden. In einigen Ausführungsformen können RADAR-Ziel-Clusterung und - Verfolgung verwendet werden, um die Assoziationen zwischen RADAR-Punkten 312 und Objekten 306 - oder diesen entsprechenden Begrenzungsformen 304 - zu bestimmen. Da diese Beziehung zwischen dem Weltbereich und dem Bildbereich bekannt ist und da die RADAR-Daten und die Bilddaten im Wesentlichen gleichzeitig aufgenommen wurden, können die RADAR-Daten-Abstandsvorhersagen mit den verschiedenen Objekten 306 - oder ihren entsprechenden Begrenzungsformen 304 - im Bild 302 assoziiert werden.
  • Obwohl die RADAR-Punkte 312 nur innerhalb der Begrenzungsformen 304 veranschaulicht sind, soll dies nicht einschränkend sein und nur Veranschaulichungszwecken dienen. In einigen Beispielen können die RADAR-Punkte so erzeugt werden, dass sie dem gesamten Bild 302 entsprechen oder dass sie zusätzlichen oder alternativen Abschnitten des Bildes 302 entsprechen, als die Visualisierung von 3B veranschaulicht.
  • In einigen Ausführungsformen, ähnlich wie die Beschreibung hierin in Bezug auf 3A, kann für jedes Objekt 306 eine beschnittene Begrenzungsform 308 (in 3B nicht veranschaulicht) erzeugt werden, die genau so groß ist wie die dem Objekt entsprechende Begrenzungsform 304 oder kleiner als diese ist. In solchen Ausführungsformen und in einem Bestreben, die Genauigkeit des Abgleichs der Tiefenwerte aus den RADAR-Daten mit den Pixeln des Bildes 302, die dem Objekt 306 oder dem Hindernis entsprechen, zu erhöhen, können die beschnittenen Begrenzungsformen 308 innerhalb der Begrenzungsformen 304 erstellt werden. In mindestens einer Ausführungsform können daher die RADAR-Punkte 312, die zur Bestimmung des Abstands eines Objekts 306 verwendet werden, die RADAR-Punkte 312 sein, die der beschnittenen Begrenzungsform 308 entsprechen.
  • Der Abstand, der mit jedem Objekt 306 assoziiert ist (z. B. 13,1 m für das Objekt 306A, 18,9 m für das Objekt 306B, 28,0 m für das Objekt 306C, 63,3 m für das Objekt 306D und 58,6 m für das Objekt 306E), kann unter Verwendung eines oder mehrerer der RADAR-Punkte 312 bestimmt werden, die mit der entsprechenden Begrenzungsform 304 und/oder beschnittenen Begrenzungsform 308 assoziiert sind. Zum Beispiel können die Abstände, die mit jedem der RADAR-Punkte 312 innerhalb der Begrenzungsform 304 (z. B. die RADAR-Punkte 312A und 312B in 3B) und/oder der Begrenzungsform 308 assoziiert sind, gemittelt werden, um den endgültigen Abstandswert zu erzeugen. Als ein anderes Beispiel kann ein einzelner RADAR-Punkt 312 für die Berechnung des endgültigen Abstandswerts ausgewählt werden. Zum Beispiel kann, wie in 3B veranschaulicht, der RADAR-Punkt 312A für das Objekt 306A (wie durch die Kreuzschraffur angegeben) verwendet werden, während der RADAR-Punkt 312B nicht verwendet werden kann. Zum Beispiel kann mit den Kamera-zu-RADAR-Punkten eine Konfidenz assoziiert werden, sodass ein Punkt mit einer höheren Konfidenz ausgewählt werden kann (z. B. kann der RADAR-Punkt 312A gegenüber dem RADAR-Punkt 312B ausgewählt werden). Die Konfidenz kann unter Verwendung einer beliebigen Berechnung bestimmt werden, wie z. B., ohne Einschränkung, durch einen Abstand zu einem Schwerpunkt der Begrenzungsform 304 und/oder der beschnittenen Begrenzungsform 308.
  • Sobald die endgültigen Abstandswerte für jedes Objekt 306 unter Verwendung der LIDAR-Daten und/oder der RADAR-Daten (und/oder SONAR-Daten, Ultraschalldaten usw.) bestimmt wurden, kann bestimmt werden, welcher der endgültigen Abstandswerte für jedes Objekt 306 verwendet werden soll. Zum Beispiel kann für jedes Objekt 306 bestimmt werden, ob der/die LIDAR-Abstand/Abstände 216, der/die RADAR-Abstand/Abstände 218 und/oder eine Kombination davon für die Erzeugung einer Ground-Truth-Tiefenkarte 222 verwendet werden sollen. Wenn ein Abstand für ein bestimmtes Objekt 306 nur von einer Tiefensensormodalität (z. B. RADAR oder LIDAR) berechnet wurde, kann der mit dem Objekt 306 assoziierte Abstand der Abstand von dieser einen Tiefensensormodalität sein. Wenn zwei oder mehr Modalitäten Abstände für ein konkretes Objekt 306 berechnet haben, kann ein Rauschschwellenwert 220 verwendet werden, um zu bestimmen, welche Modalität(en) für die Abstandswerte zu verwenden sind. In einigen nicht einschränkenden Ausführungsformen kann der Rauschschwellenwert 220 als ein Hyperparameter optimiert werden. Obwohl eine beliebige Anzahl von Tiefensensormodalitäten verwendet werden kann, kann in Beispielen, die RADAR und LIDAR verwenden, eine einzelne Modalität gegenüber der anderen ausgewählt werden, wenn beide entsprechende Tiefenwerte für ein Objekt aufweisen. Zum Beispiel können der/die LIDAR-Abstand/Abstände 216 gegenüber dem/den RADAR-Abstand/Abständen 218 ausgewählt werden oder umgekehrt. In anderen Beispielen kann eine Modalität unterhalb eines Schwellenabstands ausgewählt werden und kann eine andere oberhalb des Schwellenabstands ausgewählt werden. In solchen Beispielen können der/die LIDAR-Abstand/Abstände 216 bei kleineren Abständen verwendet werden (z. B. innerhalb von 40 Metern von der Kamera oder einer anderen Referenzposition) und können der/die RADAR-Abstand/Abstände 218 bei größeren Abständen verwendet werden (z. B. weiter als 40 Meter von der Kamera oder einer anderen Referenzposition). Die Verwendung eines Schwellenabstands auf diese Weise kann die Genauigkeit verschiedener Tiefensensormodalitäten über variierende Abstandsbereiche nutzen. In mindestens einer Ausführungsform können der/die LIDAR-Abstand/Abstände 216 und der/die RADAR-Abstand/Abstände 218, wenn beide für ein Objekt 306 berechnet werden, gemittelt oder gewichtet werden, um einen einzigen kombinierten Abstandswert zu berechnen. Beispielsweise können die beiden Abstände mit gleicher Gewichtung gemittelt werden oder kann eine Modalität stärker gewichtet werden als die andere. Wenn eine Gewichtung verwendet wird, kann die Bestimmung der Gewichtung für jede Modalität konstant sein (z. B. 60 % für LIDAR und 40 % für RADAR) oder in Abhängigkeit von einem Faktor, wie z. B. dem Abstand, variieren (z. B. innerhalb von 50 Metern von der Kamera oder einer anderen Referenzposition wird LIDAR mit 70 % gewichtet und wird RADAR mit 30 % gewichtet, während außerhalb von 50 Metern von der Kamera oder einer anderen Referenzposition LIDAR mit 40 % gewichtet wird und RADAR mit 60 % gewichtet wird). Daher kann die Bestimmung, welcher Abstandswert der endgültige Abstandswert für ein konkretes Objekt 306 sein soll, unter Verwendung einer oder mehrerer Tiefensensormodalitäten erfolgen und kann von einer Vielzahl von Faktoren abhängen (z. B. Verfügbarkeit von Daten von verschiedenen Tiefensensormodalitäten, Abstand eines Objekts von der Referenzposition, Rauschen der Daten usw.).
  • In einigen Beispielen können der/die LIDAR-Abstand/Abstände 216 und/oder der/die RADAR-Abstände 218 weiter verbessert werden, indem ein Zeitbereichszustandsschätzer - basierend auf einem Bewegungsmodell - auf Objektspuren angewendet wird. Unter Verwendung des Ansatzes können verrauschte Messwerte von LIDAR und/oder RADAR herausgefiltert werden. Ein Zustandsschätzer kann ferner die Kovarianz des Zustands modellieren, die ein Maß für die Unsicherheit am Ground-Truth-Tiefenwert darstellen kann. Ein solches Maß kann beim Training und bei der Auswertung des Modells/der Modelle 104 des maschinellen Lernens verwendet werden, z. B. durch Herabgewichtung des Verlusts für Stichproben mit hoher Unsicherheit.
  • Sobald ein endgültiger Abstandswert/endgültige Abstandswerte für ein Objekt 306 ausgewählt wurden, können ein oder mehrere Pixel des Bildes 302 mit dem/den endgültigen Tiefenwert(en) codiert werden, um die Ground-Truth-Tiefenkarte 222 zu erzeugen. In einigen nicht einschränkenden Ausführungsformen kann zur Bestimmung des einen oder der mehreren für das Objekt 306 zu codierenden Pixel jedes der mit der Begrenzungsform 304 und/oder der beschnittenen Begrenzungsform 308 assoziierten Pixel mit dem/den endgültigen Abstandswert(en) codiert werden. In solchen Beispielen, in denen sich zwei oder mehr Begrenzungsformen 304 und/oder beschnittene Begrenzungsformen 308 mindestens teilweise überlappen (z. B. eine Begrenzungsform 304 eine andere verdeckt), kann die Verwendung jedes der Pixel der Begrenzungsform 304 und/oder der beschnittenen Begrenzungsform 308 jedoch dazu führen, dass eines oder mehrere der Objekte 306 nicht ausreichend in der Ground-Truth-Tiefenkarte 222 dargestellt werden. Daher kann in einigen Ausführungsformen für jedes Objekt eine Form - z. B. ein Kreis oder eine Ellipse - erzeugt werden. Die Form kann in einigen Beispielen an einem Schwerpunkt der Begrenzungsform 304 und/oder der beschnittenen Begrenzungsform 308 zentriert sein. Durch das Erzeugen eines Kreises oder einer Ellipse kann das Potenzial für eine Verdeckung, die zu einer fehlenden Darstellung eines Objekts 306 in der Ground-Truth-Tiefenkarte 222 führt, reduziert werden, wodurch die Wahrscheinlichkeit erhöht wird, dass jedes der Objekte 306 in der Ground-Truth-Tiefenkarte 222 dargestellt wird. Als Ergebnis kann die Ground-Truth-Tiefenkarte 222 den/die Ground-Truth-Abstand/Abstände darstellen, die auf einem Bild codiert sind - z. B. einem Tiefenkartenbild. Die Ground-Truth-Tiefenkarte 222 - oder das Tiefenkartenbild - kann dann als Ground Truth für das Training des/der Modells/der Modelle 104 des maschinellen Lernens verwendet werden, um Abstände zu Objekten unter Verwendung von Bildern vorherzusagen, die von einer oder mehreren Kameras erzeugt wurden. Daher können das/die Modell(e) 104 des maschinellen Lernens trainiert werden, um - im Einsatz - eine Tiefenkarte vorherzusagen, die den Objekten und/oder Hindernissen entspricht, die in den vom Fahrzeug 1400 (und/oder einer anderen Fahrzeugart, einem Roboter, einem simulierten Fahrzeug, einem Wasserfahrzeug, einem Flugzeug, einer Drohne usw.) aufgenommenen Bildern dargestellt sind.
  • Die Ground-Truth-Codierung 110 in Bezug auf die Vorhersagen der Obj ekterkennung(en) 116 kann die Markierung oder Annotation der Sensordaten 102 (z. B. Bilder, Tiefenkarten, Punktwolken usw.) mit Begrenzungsformen und/oder entsprechenden Klassenmarkierungen (z. B. Fahrzeug, Fußgänger, Gebäude, Flugzeug, Wasserfahrzeug, Straßenschild usw.) beinhalten. Daher können die Ground-Truth-Annotationen oder -Markierungen unter Verwendung von Verlustfunktion(en) 108 mit den Vorhersagen der Objekterkennung(en) 116 durch das/die Modell(e) 104 des maschinellen Lernens verglichen werden, um das/die Modell(e) 104 des maschinellen Lernens für die Vorhersage von Positionen von Objekten und/oder Hindernissen zu aktualisieren und zu optimieren.
  • In Bezug auf die automatische (z. B. zur Codierung der Ground-Truth-Tiefenkarte 222) und/oder manuelle Erzeugung von Ground-Truth-Annotationen können die Annotationen für die Trainingsbilder in einem Zeichenprogramm (z. B. einem Annotationsprogramm), einem computergestützten Konstruktions(Computer Aided Design - CAD)-Programm, einem Markierungsprogramm oder einer anderen Art von Programm, das für die Erzeugung der Annotationen geeignet ist, erzeugt werden und/oder können in einigen Beispielen von Hand gezeichnet werden. In einem beliebigen Beispiel können die Annotationen synthetisch produziert (z. B. aus Computermodellen oder Renderings), real produziert (z. B. aus Daten der realen Welt konstruiert und produziert), maschinell automatisiert (z. B. unter Verwendung von Merkmalsanalyse und Lernen, um Merkmale aus den Daten zu extrahieren und dann Markierungen zu erzeugen), von Menschen annotiert (z. B. definiert ein Markierer oder Annotationsexperte die Position der Markierungen) und/oder eine Kombination davon (z. B. formuliert ein Mensch eine oder mehrere Regeln oder Markierungskonventionen und erzeugt eine Maschine Annotationen) sein. In einigen Beispielen können die LIDAR-Daten, RADAR-Daten, Bilddaten und/oder andere Sensordaten 102, die als Eingabe für das/die Modell(e) 104 des maschinellen Lernens verwendet werden und/oder zur Erzeugung der Ground-Truth-Daten verwendet werden, in einer virtuellen oder simulierten Umgebung erzeugt werden. In Bezug auf ein virtuelles Fahrzeug (z. B. ein Auto, ein LKW, ein Wasserfahrzeug, ein Baufahrzeug, ein Flugzeug, eine Drohne usw.) kann das virtuelle Fahrzeug beispielsweise virtuelle Sensoren (z. B. virtuelle Kameras, virtuelles LIDAR, virtuelles RADAR, virtuelles SONAR usw.) enthalten, die simulierte oder virtuelle Daten der virtuellen oder simulierten Umgebung aufnehmen. Daher können in einigen Ausführungsformen zusätzlich oder alternativ zu den Daten der realen Welt, die als Eingaben für das/die Modell(e) 104 des maschinellen Lernen und/oder für die Erzeugung von Ground Truth verwendet werden, simulierte oder virtuelle Sensordaten verwendet werden und somit in den Sensordaten 102 enthalten sein.
  • Unter erneuter Bezugnahme auf 1 kann die Kameraadaption 112 in einigen Ausführungsformen in einem Bestreben durchgeführt werden, das/die Modell(e) 104 des maschinellen Lernens invariant gegenüber den zugrundeliegenden intrinsischen Eigenschaften der Kamera zu machen. Um z. B. die zugrundeliegende Herausforderung zu berücksichtigen, dass ähnliche Objekte, die sich in einem gleichen Abstand von einer Referenzposition - z. B. einer Kamera - befinden, in Abhängigkeit von den Kameraparametern (z. B. Sichtfeld) unterschiedlich erscheinen, kann ein Kameraadaptionsalgorithmus verwendet werden, um kameraintrinsische Invarianz zu ermöglichen. Würde die Varianz der kameraintrinsischen Parameter nicht berücksichtigt, kann die Performance des Modells/der Modelle 104 des maschinellen Lernens für die Lösungen zur Abstandsschätzung zu Objekten oder Hindernissen beeinträchtigt werden.
  • In einigen Ausführungsformen kann die Kameraadaption 112 die Anwendung eines Skalierungsfaktors auf kamerabasierte Bildmarkierungen beinhalten. Als ein nicht einschränkendes Beispiel kann, wenn eine Kamera mit einem 60-Grad-Sichtfeld als Referenzkamera verwendet wird, ein Multiplikator von 2x auf Markierungen von Bildern exakt derselben Szene angewendet werden, die von einer Kamera mit einem 120-Grad-Sichtfeld erzeugt wurden, da die von dieser Kamera produzierten Objekte im Vergleich zu denjenigen, die von der Referenzkamera erzeugt wurden, halb so groß aussehen werden. Auf ähnliche Weise kann als ein anderes nicht einschränkendes Beispiel, wenn dieselbe Kamera als Referenzkamera verwendet wird, ein Multiplikator von minus 2x auf Markierungen von Bildern exakt derselben Szene angewendet werden, die von einer Kamera mit einem 30-Grad-Sichtfeld erzeugt wurden, da die von dieser Kamera produzierten Objekte im Vergleich zu denjenigen, die von der Referenzkamera erzeugt wurden, doppelt so groß aussehen werden.
  • In mindestens einer Ausführungsform beinhaltet die Kameraadaption 112 die Erzeugung von Skalierungs- und Verzerrungskarten als eine zusätzliche Eingabe für das/die Modell(e) 104 des maschinellen Lernens. Dadurch können die Kameramodellinformationen als eine Eingabe - wie durch den Pfeil mit gestrichelten Linien von der Kameraadaption 112 zu dem/den Modell(en) 104 des maschinellen Lernens in 1 angegeben - für das Lernen zur Verfügung stehen. Zum Beispiel, unter Bezugnahme auf 4, ist 4 eine Veranschaulichung 400 verschiedener Berechnungen, die in einem Kameraadaptionsalgorithmus verwendet werden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In Bezug auf die Veranschaulichung 400 stellen x (z. B. die x-Achse), y (z. B. die y-Achse) und z (z. B. die z-Achse) 3D-Koordinaten von Positionen im Kamerakoordinatensystem dar, während u (z. B. die u-Achse) und v (z. B. die v-Achse) 2D-Koordinaten in der Kamerabildebene darstellen. Eine Position, p, bezeichnet einen 2-Vektor [u, v] als eine Position in der Bildebene. Ein Hauptpunkt bei uo, vo stellt dar, wo die z-Achse die Bildebene schneidet. θ, ϕ, d stellen eine andere 3D-Position (x, y, z) dar, wobei d die Tiefe ist (z. B. eine Position entlang der z-Achse), θ der Winkel zwischen der z-Achse und dem Vektor [x, y, z] (oder Polarwinkel) ist und ϕ der Azimutwinkel (oder Rollwinkel) ist. In einigen Fällen kann d durch einen radialen Abstand, r, dargestellt werden, z. B., wenn das Koordinatensystem ein Kugelkoordinatensystem ist.
  • Daher stellt die Veranschaulichung 400 aus 4 die Koordinatenkonventionen dar, welche die Modellierung einer Kamera in Abhängigkeit von C (einer Funktion, welche die Kamera modelliert oder darstellt) ermöglichen, die 3D-Strahlen (θ, ϕ) (z. B. in Richtung von Objekten und/oder Merkmalen geworfen) zu 2D-Positionen auf der Bildebene (u, v) zuordnet. Wenn ein Objekt oder Merkmal in einer 3D-Richtung (θ, ϕ) liegt, befindet sich sein Bild auf dem Kamerasensor bei Pixel (u, v) = C(θ, ϕ), wobei C eine Funktion ist, welche die Kamera darstellt oder modelliert. Als Ergebnis wird ein 2-Vektor (3D-Richtung) als Eingabe genommen, um einen 2-Vektor (2D-Position am Sensor) zu erzeugen. Auf ähnliche Weise, da C invertierbar ist, existiert auch die Inverse [θ, ϕ]= C-1(u, v).
  • Partielle Ableitungen von C können verwendet werden, um einen lokalen Vergrößerungsfaktor, m, zu berechnen, wie nachstehend in Gleichung (1) dargestellt: m ( u , v ) = n o r m { d d u C θ 1 ( u , v ) , d d u C 1 ( u , v ) , d d v C θ 1 ( u , v ) , d d v C 1 ( u , v ) }
    Figure DE112019006468T5_0001
    wobei die Inversfunktion, C-1, in zwei Funktionen aufgeteilt ist, wie nachstehend durch die Gleichungen (2) und (3) dargestellt: θ = C θ 1 ( u , v )
    Figure DE112019006468T5_0002
    = C 1 ( u , v )
    Figure DE112019006468T5_0003
  • In einigen Ausführungsformen können die anfänglichen Schichten des Modells/der Modelle 104 des maschinellen Lernens, die mit der Merkmalsextraktion, der Objekterkennung (in Ausführungsformen, in denen dieses Merkmal zu den Aufgaben des Modells/der Modelle 104 des maschinellen Lernens gehört) und/oder anderen Aufgaben beauftragt sind, skaleninvariant sein und auch ohne Kameraadaption 112 gut funktionieren. Als ein Ergebnis können die unter Verwendung der Kameraadaption 112 bestimmten Kamerainformationen tiefer in das Netzwerk injiziert werden (z. B. auf einer oder mehreren Schichten weiter in der Architektur des Modells/der Modelle des maschinellen Lernens, nach der Merkmalsextraktion, der Objekterkennung und/oder anderen Schichten), wo die Merkmalskartengrößen erheblich kleiner sein können als auf früheren Schichten. Die Eingabemerkmalskarte dieser tieferen Schichten (z. B. Faltungsschichten) kann mit m(u, v) erweitert werden, damit die mit der Tiefenregression beauftragten Schichten lernen können, sich an das Kameramodell anzupassen.
  • Letztendlich kann eine einzelne Merkmalskarte, m(u, v), erzeugt und dem/den Modell(en) 104 des maschinellen Lernens als zusätzlicher Anhaltspunkt zur Auflösung der Abhängigkeit, wie Objekte durch verschiedene Kameras aussehen, zugeführt werden. Dadurch kann/können ein einzelnes Modell/Modelle 104 des maschinellen Lernens in die Lage versetzt werden, Abstände zuverlässig anhand von Bildern vorherzusagen, die mit unterschiedlichen Kameras mit unterschiedlichen Kameraparametern, wie z. B. unterschiedlichen Sichtfeldern, erhalten wurden. Während des Trainings können dann mehrere Kameras mit räumlicher Augmentation (Zoom) verwendet werden, um einen robusten Tiefenregressor zu erlernen. Die räumliche Augmentation transformiert nicht nur die Bilder, sondern auch die Kameramodellfunktion, C, oder deren Inverse. Während der Ableitung, wie hierin detaillierter beschrieben, kann das Kameramodell verwendet werden, um die feste Vergrößerungsmerkmalskarte m(u, v) zu berechnen (z. B. kann die verwendete Kamera im Einsatz konstant sein), die dann mit den Eingabemerkmalskarten verkettet werden kann, die von einer oder mehreren Schichten (z. B. Faltungsschichten) des Modells/der Modelle 104 des maschinellen Lernens erzeugt werden.
  • Die Ground-Truth-Codierung 110 mit Kameraadaption 112 ist als nicht einschränkende Beispiele in den 5A und 5B veranschaulicht. Zum Beispiel beinhaltet 5A Visualisierungen von Ground-Truth-Masken und Tiefenkartenvorhersagen eines Modells/von Modellen des maschinellen Lernens, die auf variierenden Sensorparametern basieren, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Ground-Truth-Tiefenkarten 502A, 502B und 502C sind beispielhafte Visualisierungen der Ground-Truth-Tiefenkarten 222 aus 2 und entsprechen jeweils den Bildern 506A, 506B und 506C. Als ein Beispiel kann das Bild 506A unter Verwendung einer Kamera mit einem 120-Grad-Sichtfeldsaufgenommen worden sein, kann das Bild 506B unter Verwendung einer Kamera mit einem 60-Grad-Sichtfeld aufgenommen worden sein und kann das Bild 506C unter Verwendung einer Kamera mit einem 30-Grad-Sichtfeld aufgenommen worden sein. Die vorhergesagten Tiefenkarten 504A, 504B und 504C entsprechen den Vorhersagen des Modells/der Modelle 104 des maschinellen Lernens in Bezug auf die Bilder 506A, 506B und 506C. Die Objekte 508A, 508B und 508C befinden sich alle in ungefähr demselben absoluten Abstand von der Referenzposition (z. B. der Kamera, einem oder mehreren anderen Sensoren, einer Referenzposition am Fahrzeug 1400 usw.), scheinen aber aufgrund der unterschiedlichen Sichtfelder in den Bildern 506A, 506B und 506C unterschiedlich groß oder bemessen zu sein. Wie durch die Kreise in jeder der vorhergesagten Tiefenkarten 504 veranschaulicht wird, werden die Objekte 508 jedoch alle derart korrekt vorhergesagt, dass sie ungefähr denselben absoluten Abstand von der Referenzposition aufweisen. Eine zufällige Zoom-Augmentation kann auch auf die Bilder 506 angewendet werden und da das Kameramodell basierend auf der Augmentation angepasst werden kann, werden die vorhergesagten Tiefenkarten 504 die Objekte 508 immer noch korrekt identifizieren.
  • Obwohl zum Zwecke der Übersichtlichkeit in 5 A nicht mit Kreisen hervorgehoben oder identifiziert, sind alle der anderen Objekte in den Bildern 506 auch in den Ground-Truth-Tiefenkarten 502 sowie in den vorhergesagten Tiefenkarten 504 dargestellt.
  • Als Beispiele für Skalierungs- und Verzerrungskarten beinhaltet 5B Veranschaulichungen von Verzerrungskarten und Histogrammen für Sensoren mit variierenden Parametern gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Beispielsweise kann die Verzerrungskarte 520A eine Verzerrungskarte für eine Kamera mit einem 30-Grad-Sichtfeld darstellen, kann die Verzerrungskarte 520B eine Verzerrungskarte für eine Kamera mit einem 60-Grad-Sichtfeld darstellen und kann die Verzerrungskarte 520C eine Verzerrungskarte für eine Kamera mit einem 120-Grad-Sichtfeld darstellen.Damit assoziiert sind die Skalierungskarten 522A, 522B bzw. 522C, die dem Betrag der Skalierung der Tiefen- oder Abstandswerte durch das Sichtfeld der Kamera (z. B. wie im Bildbereich dargestellt) entsprechen. In Bezug auf die Verzerrungskarte 520A sind die Skalierungsfaktoren aus der Skalierungskarte 522A beispielsweise alle kleiner als 1,0, um die erhöhte Größe der Objekte in Bezug auf eine Referenzkamera zu berücksichtigen. Als ein weiteres Beispiel beinhalten in Bezug auf die Verzerrungskarte 520C die Skalierungsfaktoren aus der Skalierungskarte 522C Werte, die größer als 1,0 sind, um die scheinbar kleinere Größe der Objekte zu berücksichtigen, wie sie mit einer Kamera mit einem 120-Grad-Sichtfeld aufgenommen werden, insbesondere um die äußeren Abschnitte des Sichtfelds. Die Histogramme 542A, 524B und 524C, die den Verzerrungskarten 520A, 520B bzw. 520C entsprechen, veranschaulichen die Skalierungsänderungen, die den Verzerrungskarten 520 entsprechen.
  • Unter erneuter Bezugnahme auf 1 können das/die Modell(e) 104 des maschinellen Lernens ein oder mehrere Bilder (oder andere Datendarstellungen), die durch die Sensordaten 102 repräsentiert werden, als Eingabe verwenden, um den Abstand/die Abstände 106 (z. B. dargestellt als eine Tiefenkarte im Bildbereich) und/oder Objekterkennungen (z. B. Positionen von Begrenzungsformen, die Objekten und/oder Hindernissen entsprechen, die in den Sensordaten 102 dargestellt sind)) als Ausgabe zu erzeugen. In einem nicht einschränkenden Beispiel können das/die Modell(e) 104 des maschinellen Lernens als Eingabe ein BildBilder nehmen, das/die durch die vorbearbeiteten Sensordaten und/oder die Sensordaten 102 dargestellt wird/werden, und können die Sensordaten verwenden, um an dem Abstand/den Abständen 106 zu regredieren, die den im Bild abgebildeten Objekten oder Hindernissen entsprechen.
  • In einigen nicht-einschränkenden Ausführungsformen können das/die Modell(e) 104 des maschinellen Lernens ferner so trainiert werden, dass sie die Positionen der Begrenzungsformen als die Objekterkennung(en) 116 intrinsisch vorhersagen (in anderen Ausführungsformen kann ein externer Objekterkennungsalgorithmus oder ein externes Netzwerk verwendet werden, um die Begrenzungsformen zu erzeugen). In einigen solchen Beispielen können das/die Modell(e) 104 des maschinellen Lernens so trainiert werden, dass sie an einem Schwerpunkt von (einer) Begrenzungsform(en), die jedem Objekt entsprechen, sowie vier Kantenpositionen der Begrenzungsformen (z. B. vier Pixelabstände zu den Kanten der Begrenzungsform(en) vom Schwerpunkt) regredieren. Das/die Modell(e) 104 des maschinellen Lernens können daher bei der Vorhersage der Begrenzungsformen einen ersten Kanal ausgeben, der einem Maskenkanal entspricht, der Konfidenzen für Pixel enthält, wobei höhere Konfidenzen (z. B. von 1) einen Schwerpunkt einer Begrenzungsform angeben. Zusätzlich zum Maskenkanal können zusätzliche Kanäle (z. B. vier zusätzliche Kanäle) durch das/die Modell(e) 104 des maschinellen Lernens ausgegeben werden, die den Abständen zu Kanten der Begrenzungsform entsprechen (z. B. ein Abstand nach oben entlang einer Spalte von Pixeln vom Schwerpunkt, ein Abstand nach unten entlang der Spalte von Pixeln vom Schwerpunkt, ein Abstand nach rechts entlang einer Zeile von Pixeln vom Schwerpunkt und ein Abstand nach links entlang einer Zeile von Pixeln vom Schwerpunkt). In anderen Ausführungsformen können das/die Modell(e) 104 des maschinellen Lernens andere Darstellungen der Positionen der Begrenzungsformen ausgeben, z. B. eine Position von Begrenzungsformkanten in einem Bild und Abmessungen der Kanten, Positionen von Vertices von Begrenzungsformen in einem Bild und/oder andere Ausgabedarstellungen.
  • In Beispielen, in denen das/die Modell(e) 104 des maschinellen Lernens so trainiert sind, dass sie die Begrenzungsformen vorhersagen, kann die Ground-Truth-Codierung 110 ferner die Codierung der Positionen der Begrenzungsformen, die von einem Objektdetektor (z. B. dem Objektdetektor 214) erzeugt wurden, als Ground-Truth-Daten beinhalten. In einigen Ausführungsformen kann auch eine Klasse des Objekts oder Hindernisses als Ground Truth codiert und mit jeder Begrenzungsform assoziiert werden. Wenn es sich bei einem Objekt beispielsweise um ein Fahrzeug handelt, können eine Klassifizierung des Fahrzeugs, der Fahrzeugart, der Fahrzeugfarbe, der Fahrzeugmarke, des Fahrzeugmodells, des Fahrzeugjahrs und/oder andere Informationen mit der dem Fahrzeug entsprechenden Begrenzungsform assoziiert werden.
  • Obwohl Beispiele hierin in Bezug auf das Verwenden von neuronalen Netzwerken und insbesondere neuronalen Faltungsnetzwerken als das/die Modell(e) 104 des maschinellen Lernens (wie z. B. hierin in Bezug auf 7 detaillierter beschrieben) beschrieben werden, soll dies nicht einschränkend sein. Zum Beispiel und ohne Einschränkung können das/die hierin beschriebene(n) Modell(e) 104 des maschinellen Lernens eine beliebige Art von Modellen des maschinellen Lernens beinhalten, wie etwa (ein) Modell(e) des maschinellen Lernens unter Verwendung von linearer Regression, logistischer Regression, Entscheidungsbäumen, Stützvektormaschinen (support vector machines - SVM), naivem Bayes-Klassifikator, k-nächstem Nachbarn (k-nearest neighbor - Knn), K-Means-Clustering, Random Forest, Dimensionsreduktionsalgorithmen, Gradientenverstärkungsalgorithmen, neuronalen Netzwerken (z. B. Autocodierern, faltenden, rekurrenten, Perzeptronen, Lang-/Kurzzeitgedächtnis (Long/Short Term Memory - LSTM), Hopfield, Boltzmann, Deep Belief, entfaltenden, erzeugenden gegnerischen, Flüssigkeitszustandsmaschine usw.) und/oder andere Arten von Modellen des maschinellen Lernens.
  • In einigen Ausführungsformen können das/die Modell(e) 104 des maschinellen Lernens eine Faltungsschichtstruktur enthalten, einschließlich Schichten, wie sie hierin beschrieben sind. Zum Beispiel können das/die Modell(e) 104 des maschinellen Lernens eine vollständige Architektur enthalten, die für die Aufgabe der Erzeugung der Ausgabe(n) 114 formuliert ist. In anderen Beispielen können ein oder mehrere vorhandene(s) oder erzeugte(s) Modell(e) 104 des maschinellen Lernens, die für die Objekterkennung konstruiert sind, verwendet werden und können zusätzliche Schichten - z. B. Faltungsschichten, wie die hierin beschriebenen - in das vorhandene Modell eingefügt werden (z. B. als Kopf). Beispielsweise können Merkmalsextraktionsschichten verwendet werden, um Merkmalskarten zu erzeugen, die den Sensordaten 102 entsprechen, die als Eingabe für das/die Modell(e) 104 des maschinellen Lernens bereitgestellt werden. Die Merkmalskarten können dann auf einen ersten Strom von Schichten oder einen ersten Kopf des Modells/der Modelle 104 des maschinellen Lernens angewendet werden, die mit der Objekterkennung beauftragt sind (z. B. Berechnung der Objekterkennung(en) 116), und/oder können auf einen zweiten Strom von Schichten oder einen zweiten Kopf des Modells/der Modelle 104 des maschinellen Lernens angewendet werden, die mit der Abstandsschätzung beauftragt sind (z. B. Berechnung des Abstands/der Abstände 106). Daher, wenn das/die Modell(e) 104 des maschinellen Lernens konstruiert sind, um sowohl den Abstand/die Abstände 106 als auch die Objekterkennung(en) 116 zu erzeugen, können das/die Modell(e) 104 des maschinellen Lernens mindestens zwei Ströme von Schichten (oder zwei Köpfe) an einem Punkt innerhalb der Architektur des Modells/der Modelle 104 des maschinellen Lernens beinhalten.
  • Das/die Modell(e) 104 des maschinellen Lernens können Sensordaten 102 (und/oder vorbearbeitete Sensordaten) als eine Eingabe verwenden. Die Sensordaten 102 können Bilder enthalten, die Bilddaten darstellen, die von einer oder mehreren Kameras erzeugt wurden (z. B. eine oder mehrere der hierin in Bezug auf die 14A-14C beschriebenen Kameras). Die Sensordaten 102 können z. B. Bilddaten enthalten, die ein Sichtfeld der Kamera(s) darstellen. Insbesondere können die Sensordaten 102 einzelne Bilder enthalten, die von der/den Kamera(s) erzeugt wurden, wobei Bilddaten, die ein oder mehrere der einzelnen Bilder darstellen, bei jeder Iteration in das/die Modell(e) 104 des maschinellen Lernens eingegeben werden können.
  • Die Sensordaten 102 können als ein einzelnes Bild eingegeben werden oder können durch Stapelverarbeitung, wie z. B. Mini-Batching, eingegeben werden. So können z. B. zwei oder mehr Bilder gemeinsam (z. B. gleichzeitig) als Eingaben verwendet werden. Die zwei oder mehr Bilder können von zwei oder mehr Sensoren (z. B. zwei oder mehr Kameras) stammen, welche die Bilder zur gleichzeitig aufgenommen haben.
  • Die Sensordaten 102 und/oder die vorbearbeiteten Sensordaten können in (eine) Merkmalsextraktionsschicht(en) des Modells/der Modelle des maschinellen Lernens eingegeben werden, und dann, in Ausführungsformen, in denen die Objekterkennung dem/den Modell(en) 104 des maschinellen Lernens intrinsisch ist, kann die Ausgabe der Merkmalsextraktionsschichten als Eingabe für Objekterkennungsschichten des Modells/der Modelle 104 des maschinellen Lernens bereitgestellt werden. Zusätzliche Schichten - z. B. nach den Merkmalsextraktionsschichten und/oder den Objekterkennungsschichten - des Modells/der Modelle 104 des maschinellen Lernens können an den Abständen 106 regredieren, die den in den Sensordaten 102 abgebildeten Objekten oder Hindernissen entsprechen.
  • Eine oder mehrere der Schichten können eine Eingabeschicht beinhalten. Die Eingabeschicht kann Werte enthalten, die mit den Sensordaten 102 und/oder den vorbearbeiteten Sensordaten assoziiert sind. Wenn es sich bei den Sensordaten 102 zum Beispiel um ein BildBilder handelt, kann die Eingabeschicht Werte, welche die Rohpixelwerte des Bilds/der Bilder darstellen, als ein Volumen (z. B. eine Breite, W, eine Höhe, H, und Farbkanäle, C (z. B. RGB), wie etwa 32 x 32 x 3) und/oder eine Batchgröße, B (z. B., wenn Stapelverarbeitung verwendet wird) enthalten.
  • Eine oder mehrere Schichten des Modells/der Modelle 104 des maschinellen Lernens können Faltungsschichten enthalten. Die Faltungsschichten können die Ausgabe von Neuronen berechnen, die mit lokalen Regionen in einer Eingabeschicht (z. B. der Eingabeschicht) verbunden sind, wobei jedes Neuron ein Skalarprodukt zwischen ihren Gewichtungen und einer kleinen Region berechnet, mit der sie in dem Eingabevolumen verbunden sind. Ein Ergebnis einer Faltungsschicht kann ein anderes Volumen sein, wobei eine der Dimensionen auf der Anzahl der angewendeten Filter beruht (z. B. der Breite, der Höhe und der Anzahl der Filter, wie etwa 32 x 32 x 12, falls 12 die Anzahl der Filter wäre).
  • Eine oder mehrere der Schichten können eine Schicht mit einer gleichgerichteten Lineareinheit (rectified linear unit - ReLU) beinhalten. Die ReLU-Schicht(en) können eine elementweise Aktivierungsfunktion anwenden, wie etwa die max (0, x) mit Schwellenwertbildung zum Beispiel bei null. Das sich daraus ergebende Volumen einer ReLU-Schicht kann das gleiche sein wie das Volumen der Eingabe der ReLU-Schicht.
  • Eine oder mehrere der Schichten können eine Poolingschicht beinhalten. Die Poolingschicht kann einen Vorgang zur Heruntertaktung entlang der räumlichen Dimensionen (z. B. der Höhe und der Breite) durchführen, der ein kleineres Volumen als die Eingabe der Poolingschicht ergeben kann (z. B. 16 x 16 x 12 aus dem Eingabevolumen 32 x 32 x 12). In einigen Beispielen können das/die Modell(e) 104 des maschinellen Lernens keine Poolingschichten enthalten. In solchen Beispielen können geschichtete Faltungsschichten anstelle von Poolingschichten verwendet werden. In einigen Beispielen können die Merkmalsextraktionsschicht(en) 126 sich abwechselnde Faltungsschichten und Poolingschichten enthalten.
  • Eine oder mehrere der Schichten kann eine vollständig verbundene Schicht beinhalten. Jedes Neuron in der/den vollständig verbundenen Schicht(en) kann mit jedem der Neuronen in dem vorherigen Volumen verbunden sein. Die vollständig verbundene Schicht kann Klassenwerte berechnen, und das sich daraus ergebende Volumen kann 1 x 1 x Anzahl von Klassen sein. In einigen Beispielen werden von dem/den Modell(en) 104 des maschinellen Lernen insgesamt keine vollständig verbundenen Schichten verwendet, und zwar in einem Bestreben, die Bearbeitungszeiten zu erhöhen und die Anforderungen an die Rechenressourcen zu reduzieren. In solchen Beispielen, in denen keine vollständig verbundenen Schichten verwendet werden, können das/die Modell(e) 104 des maschinellen Lernens als vollständiges Faltungsnetzwerk bezeichnet werden.
  • Eine oder mehrere der Schichten können in einigen Beispielen Entfaltungsschicht(en) enthalten. Die Verwendung des Begriffs Entfaltung kann jedoch irreführend sein und soll keineswegs einschränkend sein. Die Entfaltungsschicht(en) können z. B. alternativ als transponierte Faltungsschichten oder fraktioniert geschichtete Faltungsschichten bezeichnet werden. Die Entfaltungsschicht(en) können verwendet werden, um ein Herauftaktung an der Ausgabe einer vorherigen Schicht durchzuführen. Die Entfaltungsschicht(en) können z. B. dazu verwendet werden, um auf eine räumliche Auflösung heraufgetaktet zu werden, die der räumlichen Auflösung der Eingabebilder (z. B. der Sensordaten 102) für das/die Modell(e) 104 des maschinellen Lernens entspricht, oder können dazu verwendet werden, um auf die räumliche Eingabeauflösung einer nächsten Schicht heraufgetaktet zu werden.
  • Obwohl Eingabeschichten, Faltungsschichten, Poolingschichten, ReLU-Schichten, Entfaltungsschichten und vollständig verbundene Schichten hierin in Bezug auf das/die Modell(e) 104 des maschinellen Lernens erörtert werden, soll dies nicht einschränkend sein. Zum Beispiel können zusätzliche oder alternative Schichten verwendet werden, wie etwa Normalisierungsschichten, SoftMax-Schichten und/oder andere Schichtarten.
  • In Abhängigkeit von der Ausführungsform können unterschiedliche Ordnungen und Anzahlen der Schichten des Modells/der Modelle 104 des maschinellen Lernens verwendet werden. Darüber hinaus können einige der Schichten Parameter (z. B. Gewichtungen und/oder Neigungen) beinhalten, andere hingegen nicht, wie z. B. die ReLU-Schichten und Poolingschichten. In einigen Beispielen können die Parameter durch das/die Modell(e) 104 des maschinellen Lernens während des Trainings gelernt werden. Ferner können einige der Schichten zusätzliche Hyperparameter beinhalten (z. B. Lernrate, Schrittweite, Epochen, Kernelgröße, Anzahl der Filter, Art des Poolings für Poolingschichten usw.) - wie die Faltungsschicht(en), die Entfaltungsschicht(en) und die Poolingschicht(en) -, andere Schichten hingegen nicht, wie z. B. die ReLU-Schicht(en). Es können verschiedene Aktivierungsfunktionen verwendet werden, einschließlich, ohne darauf beschränkt zu sein, ReLU, undichte ReLU, Sigmoid, hyperbolischer Tangens (tanh), exponentielle Lineareinheit (exponential linear unit - ELU) usw. Die Parameter, Hyperparameter und/oder Aktivierungsfunktionen sollen nicht eingeschränkt sein und können sich in Abhängigkeit von der Ausführungsform unterscheiden.
  • Während des Trainings können die Sensordaten 102 - z. B. Bilddaten, die Bilder repräsentieren, die von einer oder mehreren Kameras mit einem oder mehreren Kameraparametern aufgenommen wurden - auf das/die Modell(e) 104 des maschinellen Lernens angewendet werden. In einigen nicht einschränkenden Ausführungsformen, wie hierin beschrieben, können die Skalierungs- und/oder Verzerrungskarten auf das/die Modell(e) 104 des maschinellen Lernens als weitere Eingabe angewendet werden, wie die gestrichelte Linie von der Kameraadaption 112 zu dem/den Modell(en) 104 des maschinellen Lernens angibt. Das/die Modell(e) 104 des maschinellen Lernens können den Abstand/die Abstände 106 und/oder die Objekterkennung(en) 116 vorhersagen (z. B. in Ausführungsformen, in denen das/die Modell(e) 104 des maschinellen Lernens darauf trainiert sind, Begrenzungsformen, die Objekten oder Hindernissen entsprechen, vorherzusagen). Die Vorhersagen können mit der Ground Truth verglichen werden, die während der Ground-Truth-Codierung 110 erzeugt wird, wobei ein Beispiel dafür hierin mindestens unter Bezugnahme auf 2 erläutert wird. In einigen Beispielen können die Ground-Truth-Daten durch die Kameraadaption 112, wie hierin beschrieben, erweitert werden, während in anderen Ausführungsformen die Kameraadaption 112 nicht an den Ground-Truth-Daten ausgeführt werden kann (wie durch die gestrichelten Linien angegeben). Eine oder mehrere Verlustfunktion(en) 108 können verwendet werden, um die Ground Truth mit der/den Ausgabe(n) 114 des Modells/der Modelle 104 des maschinellen Lernens zu vergleichen.
  • Beispielsweise können das/die Modell(e) 104 des maschinellen Lernens mit den Trainingsbildern unter Verwendung mehrerer Iterationen trainiert werden, bis der Wert von (einer) Verlustfunktion(en) 108 des Modells/der Modelle 104 des maschinellen Lernens unter einem Schwellenverlustwert liegt (z. B. akzeptabler Verlust). Die Verlustfunktion(en) 108 können verwendet werden, um den Fehler in den Vorhersagen des Modells/der Modelle 104 des maschinellen Lernens unter Verwendung von Ground-Truth-Daten zu messen. In einigen nicht einschränkenden Beispielen kann eine Kreuzentropie-Verlustfunktion (z. B. binäre Kreuzentropie), eine L1- Verlustfunktion, eine Verlustfunktion für den mittleren quadratischen Fehler, eine quadratische Verlustfunktion, eine L2-Verlustfunktion, eine Verlustfunktion für den mittleren absoluten Fehler, eine Verlustfunktion für die mittlere Neigung, eine Hinge-Verlustfunktion und/oder eine negative Log-Verlustfunktion verwendet werden.
  • Unter Bezugnahme auf 6 umfasst jeder Block des hierin beschriebenen Verfahrens 600 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen durch einen Prozessor vollzogen werden, der in Speicher gespeicherte Anweisungen ausführt. Das Verfahren 600 kann zudem als computerverwendbare Anweisungen verkörpert sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren 600 kann durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plugin für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 600 beispielhaft in Bezug auf den Prozess 100 aus 1 beschrieben. Dieses Verfahren 600 kann jedoch zusätzlich oder alternativ durch ein beliebiges System oder eine beliebige Kombination von Systemen ausgeführt werden, einschließlich, ohne darauf beschränkt zu sein, der hierin beschriebenen.
  • 6 ist ein Ablaufdiagramm, das ein Verfahren 600 zum Trainieren eines Modells/von Modellen des maschinellen Lernens zur Vorhersage von Abständen zu Objekten und/oder Hindernissen in einer Umgebung zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 600 beinhaltet in Block B602 das Empfangen erster Daten, die LIDAR-Informationen darstellen, zweiter Daten, die RADAR-Informationen darstellen, und dritter Daten, die ein Bild darstellen. Beispielsweise können die Sensordaten 102 empfangen (und/oder erzeugt) werden, wobei die Sensordaten 102 RADAR-Daten, LIDAR-Daten, SONAR-Daten, Bilddaten, die ein Bild/Bilder darstellen, und/oder andere Sensordatenarten beinhalten können.
  • Das Verfahren 600 beinhaltet in Block B604 das Empfangen von vierten Daten, die eine Begrenzungsform darstellen, die einem im Bild abgebildeten Objekt entspricht. Unter Bezugnahme auf 2 kann der Objektdetektor 214 beispielsweise Daten erzeugen, die den Positionen von Objekten entsprechen, wie sie durch Begrenzungsformen des Bildes bezeichnet sind.
  • Das Verfahren 600 beinhaltet in Block B606 das Korrelieren, mit der Begrenzungsform, von Tiefeninformationen, die mindestens teilweise basierend auf einem oder beiden von den LIDAR-Informationen oder den RADAR-Informationen bestimmt wurden. Zum Beispiel können die Tiefeninformationen aus den LIDAR-Daten, RADAR-Daten und/oder anderen Sensordatenarten mit den Begrenzungsformen korreliert werden (in Ausführungsformen z. B. automatisch), die den im Bild abgebildeten Objekten oder Hindernissen entsprechen.
  • Das Verfahren 600 beinhaltet in Block B608 das Erzeugen fünfter Daten, die Ground-Truth-Informationen darstellen, wobei die fünften Daten mindestens teilweise basierend auf der Umwandlung der Tiefeninformationen in eine Tiefenkarte erzeugt werden. Zum Beispiel können die Tiefeninformationen, die den Begrenzungsformen entsprechen, verwendet werden, um die Ground-Truth-Tiefenkarte 222 (2) zu erzeugen.
  • Das Verfahren 600 beinhaltet in Block B610 das Trainieren eines neuronalen Netzwerks, um die vorhergesagte Tiefenkarte unter Verwendung der fünften Daten zu berechnen. Zum Beispiel können das/die Modell(e) 104 des maschinellen Lernens unter Verwendung der Ground-Truth-Tiefenkarte 222 als Ground Truth trainiert werden, um den Abstand/die Abstände 106 zu erzeugen, die den in den Bildern abgebildeten Objekten und/oder Hindernissen entsprechen.
  • Modell(e) des maschinellen Lernen für das Vorhersagen von Abständen
  • Unter Bezugnahme 7 ist 7 ein Datenablaufdiagramm für einen Prozess 700 zum Vorhersagen von Abständen zu Objekten und/oder Hindernissen in einer Umgebung unter Verwendung eines Modells/von Modellen des maschinellen Lernens gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Sensordaten 702 können ähnliche Sensordaten wie diejenigen beinhalten, die hierin mindestens in Bezug auf die 1 und 2 beschrieben sind. In einigen Ausführungsformen können die Sensordaten 702, die im Einsatz auf das/die Modell(e) 104 des maschinellen Lernens angewendet werden, jedoch nur Bilddaten sein. Beispielsweise können das/die Modell(e) 104 des maschinellen Lernens unter Verwendung des Prozesses 100 aus 1 so trainiert werden, dass sie den Abstand/die Abstände 106 und/oder die Objekterkennung(en) 116 allein unter Verwendung von Bilddaten genau vorhersagen. In solchen Ausführungsformen können die Bilddaten von einer oder mehreren Kameras erzeugt werden (z. B. in Ausführungsformen von einer einzelnen monokularen Kamera wie einer Weitsichtkamera 1470 aus 14B, von mehreren Kameras usw.).
  • Die Sensordaten 102 können in Ausführungsformen einer Kameraadaption 704 unterzogen werden. Ähnlich wie bei der Kameraadaption 112 aus 1 kann das Kameramodell bei der Ableitung beispielsweise verwendet werden, um eine feste Vergrößerungsmerkmalskarte m(u, v) zu berechnen, die von dem/den Modell(en) 104 des maschinellen Lernens verwendet werden kann. In einigen Ausführungsformen können z. B. Skalierungs- und/oder Verzerrungskarten (wie z. B. diejenigen, die in 5B als Beispiele veranschaulicht sind) als eine zusätzliche Eingabe auf das/die Modell(e) 104 des maschinellen Lernens angewendet werden. Da jedoch dieselbe(n) Kamera(s) in einer Einsatzinstanz verwendet werden können (z. B. können für das Fahrzeug 1400 dieselbe(n) Kamera(s) zur Erzeugung der Bilddaten verwendet werden), können die Skalierungs- und/oder Verzerrungskarten während des gesamten Einsatzes fest oder gleich sein. Daher kann in einigen nicht einschränkenden Ausführungsformen die feste Vergrößerungsmerkmalskarte mit den Eingabemerkmalskarten der Faltungsschicht verkettet werden.
  • Die Sensordaten 702 und/oder die aus der Kameraadaption 704 generierten Skalierungs- und/oder Verzerrungskarten können auf das/die Modell(e) 104 des maschinellen Lernens angewendet werden. Das/die Modell(e) 104 des maschinellen Lernens (hierin in Bezug auf 1 detaillierter beschrieben) können die Sensordaten 702 und/oder die Skalierungs- und/oder Verzerrungskarten verwenden, um die Ausgabe(n) 114 zu erzeugen. Die Ausgabe(n) 114 können den Abstand/die Abstände 106 und/oder die Objekterkennung(en) 116 beinhalten.
  • Der Abstand/die Abstände 106 können als Tiefen- oder Abstandswerte berechnet werden, die Pixeln des Bildes entsprechen. Zum Beispiel können für mindestens die Pixel des Bildes, die Objekten oder Hindernissen entsprechen, Tiefenwerte berechnet werden, um eine Tiefenkarte zu erzeugen, die den Abständen zu den im Bild abgebildeten Objekten oder Hindernissen entspricht. Wie hierin beschrieben, können die Tiefenwerte einer z-Richtung entsprechen, die als ein Abstand von der Referenzposition (z. B. von der Kamera) zu einem Objekt oder Hindernis interpretiert werden kann, das mindestens teilweise durch ein gegebenes Pixel dargestellt wird.
  • Die Objekterkennung(en) 116, wie hierin beschrieben, können dem/den Modell(en) 104 des maschinellen Lernens intrinsisch sein und/oder können von einem Objektdetektor berechnet werden, der von dem/den Modell(en) 104 des maschinellen Lernens getrennt ist. Wenn das/die Modell(e) 104 des maschinellen Lernens trainiert werden, um die Objekterkennung(en) 116 zu erzeugen, können das/die Modell(e) 104 des maschinellen Lernens Daten ausgeben, die den Positionen von Begrenzungsformen für in Bildern abgebildete Objekte oder Hindernisse entsprechen. In einer nicht einschränkenden Ausführungsform können das/die Modell(e) 104 des maschinellen Lernens mehrere Ausgabekanäle enthalten, die der/den Objekterkennung(en) 116 entsprechen. Zum Beispiel kann eine Ausgabe einem Maskenkanal mit Werten entsprechen, welche die Konfidenzen für Pixel angeben, die den Schwerpunkten der Begrenzungsformen entsprechen. Jedes Pixel - oder mindestens Pixel mit hoher Konfidenz (z. B. 1, ja usw.) für einen Schwerpunkt - kann auch eine Anzahl (z. B. 4) von Ausgabekanälen enthalten, die den Positionen von oder Pixelabständen zu Kanten der Begrenzungsform entsprechen, die dem Schwerpunkt entspricht. Zum Beispiel kann ein erster Kanal einen Pixelabstand zu einer oberen Kante entlang einer Spalte von Pixeln enthalten, die den vorhergesagten oder regredierten Schwerpunkt enthalten, kann ein zweiter Kanal einen Pixelabstand zu einer rechten Kante entlang einer Zeile von Pixeln enthalten, die den vorhergesagten oder regredierten Schwerpunkt enthalten, kann ein dritter Kanal einen Pixelabstand zu einer linken Kante entlang einer Zeile von Pixeln enthalten, die den vorhergesagten oder regredierten Schwerpunkt enthalten, und kann ein vierter Kanal einen Pixelabstand zu einer unteren Kante entlang einer Spalte von Pixeln enthalten, die den vorhergesagten oder regredierten Schwerpunkt enthalten. Daher können diese Informationen verwendet werden, um eine oder mehrere Begrenzungsformen für erkannte Objekte oder Hindernisse in jedem Bild zu erzeugen. In anderen Ausführungsformen können das/die Modell(e) 104 des maschinellen Lernens die Vorhersagen für die Begrenzungsformen als Positionen von Vertices der Begrenzungsformen oder Positionen eines Schwerpunkts und Abmessungen der Begrenzungsformen usw. ausgeben.
  • In Ausführungsformen, in denen die Objekterkennungen nicht intrinsisch durch das/die Modell(e) 104 des maschinellen Lernens vorhergesagt werden, können die Obj ekterkennungen durch einen Objektdetektor 708 (z. B. ähnlich dem Objektdetektor 214 aus 2) erzeugt oder berechnet werden. In solchen Beispielen können die Positionen der Begrenzungsformen, die den Objekten entsprechen, ähnlich wie hierin für Begrenzungsformen beschrieben, berechnet werden, z. B. Positionen von Vertices, Positionen eines Schwerpunkts und Abstände zu Kanten, Pixelpositionen für jedes Pixel innerhalb einer Begrenzungsform oder jedes Pixel entlang der Kanten der Begrenzungsformen usw.
  • Ein Decodierer 706 kann die Ausgabe(n) 114 und/oder die Ausgaben des Objektdetektors 708 verwenden, um eine Korrelation zwischen den Tiefenwerten aus dem Abstand/den Abständen 106 (z. B. aus der vorhergesagten Tiefenkarte) und der/den Begrenzungsform(en) zu bestimmen, die den Objekten entsprechen. Wenn z. B. eine einzelne Begrenzungsform für ein Objekt berechnet wird, können die Abstandswerte, die den Pixeln des Bildes innerhalb der Begrenzungsform des Objekts entsprechen, vom Decoder 706 verwendet werden, um den Abstand zum Objekt zu bestimmen. In einigen Beispielen, in denen die Abstandswerte über die Pixel der Begrenzungsform hinweg variieren, können die Abstandswerte gemittelt, gewichtet werden und/oder kann ein einzelner Abstandswert für das Objekt ausgewählt werden. In nicht einschränkenden Ausführungsformen kann jeder Begrenzungsformvorschlag mit einem einzelnen Pixel in der Tiefenkarte assoziiert sein (z. B. zur Darstellung des Abstands/der Abstände 106). Das einzelne Pixel kann ein zentrales Pixel (z. B. das Schwerpunktpixel) oder ein anderes Pixel sein, z. B. ein Pixel mit der höchsten Konfidenz, dass es mit dem Objekt assoziiert ist.
  • In einigen Beispielen können unter Verwendung des Modells/der Modelle 104 des maschinellen Lernens oder des Objektdetektors 708 für die Objekterkennungen mehrere Objekterkennungen - z. B. Begrenzungsformen - für ein einzelnes Objekt erzeugt werden. Jede Objekterkennung für das Objekt kann mit einem oder mehreren unterschiedlichen Pixeln aus der Tiefenkarte assoziiert sein, was zu mehreren potenziellen Positionen des Objekts und potenziell variierenden Abstandswerten für das Objekt führt. Um die mehreren Objekterkennungsvorschläge zu einer einzigen Objekterkennungsvorhersage pro physischer Objektinstanz zu vereinigen, können die Vorschläge geclustert werden - z. B. unter Verwendung des Density- Based-Spatial-Clustering-of- Application-with- Noise(DBSCAN)-Algorithmus - zu einem einzelnen Cluster von Vorhersagen pro physischer Objektinstanz. Die endgültigen einzelnen Objekterkennungen pro physischer Objektinstanz können durch das Bilden von Mittelwerten der einzelnen Begrenzungsformen und Abstandsvorhersagen innerhalb jedes Clusters erhalten werden. Als Ergebnis kann eine einzelne Begrenzungsform für jedes erkannte Objekt bestimmt werden und kann ein einzelner Tiefenwert mit der Begrenzungsform für das Objekt assoziiert werden.
  • In einigen Ausführungsformen kann jedes der Pixel innerhalb der endgültigen Begrenzungsform mit dem Tiefenwert assoziiert werden und können die Positionen der Pixel im Weltbereich so bestimmt werden, dass das Fahrzeug 1400 in der Lage ist, diese Abstandsinformationen im Weltbereich zu verwenden, um einen oder mehrere Vorgänge durchzuführen. Der eine oder mehreren Vorgänge können das Aktualisieren eines Weltmodells, das Durchführen einer Pfadplanung, das Bestimmen einer oder mehrerer Steuerungen zum Navigieren des Fahrzeugs 1400 gemäß dem Pfad, das Aktualisieren von Sicherheitsprozedurinformationen, um sicherzustellen, dass dem Fahrzeug 1400 Sicherheitsmanöver ohne Kollision zur Verfügung stehen, und/oder für andere Vorgänge beinhalten.
  • Die 8A-8B sind Visualisierungen von Objekterkennungen und Tiefenvorhersagen basierend auf den Ausgaben eines Modells/von Modellen des maschinellen Lernens gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Beispielsweise beinhalten die 8A-8B die Bilder 802A und 802B, die Darstellungen von Bilddaten (z. B. den Sensordaten 702) sein können, die auf das/die Modell(e) 104 des maschinellen Lernens angewendet werden. Die Visualisierungen 804A und 804B, die den Bildern 802A bzw. 802B entsprechen, stellen Begrenzungsformen dar, die den Objekten (z. B. Fahrzeugen) in den Bildern 802A und 802B entsprechen, die von dem/den Modell(en) 104 des maschinellen Lernens und/oder dem Objektdetektor 708 erkannt werden. Die Tiefenkarten 806A und 806B, die den Bildern 802A bzw. 802B entsprechen, stellen den Abstand/die Abstände 106 dar, die von dem/den Modell(en) 104 des maschinellen Lernens vorhersagt werden. Daher kann der Decodierer 706 die Positionen der Begrenzungsformen innerhalb der Visualisierungen 804A und 804B mit den in den Tiefenkarten 806A bzw. 806B dargestellten Abstandswerten korrelieren. Bei dem Ergebnis für das Fahrzeug 1400 kann es sich um Abstände vom Fahrzeug 1400 (oder einer Referenzposition davon, wie z. B. der Kamera, oder einer anderen Position des Fahrzeugs 1400) zu jedem der Objekte mit assoziierten Begrenzungsformen handeln.
  • In einigen Ausführungsformen können aufgrund von Rauschen und/oder Entropie beim Training des Modells/der Modelle 104 des maschinellen Lernens das/die Modell(e) 104 des maschinellen Lernens zum Zeitpunkt der Ableitung oder des Einsatzes gelegentlich falsche Abstandswerte ausgeben. Wenn sich z. B. eine kleine Begrenzungsform eines erkannten weit entfernten Objekts mit einer größeren Begrenzungsform eines erkannten nahegelegenen Objekts überlappt, kann der Abstand zu beiden Objekten fälschlicherweise als gleich vorausgesagt werden. Daher können in einigen Ausführungsformen (ein) Nachbearbeitungsalgorithmus/-algorithmen von einem Sicherheitsgrenzenerzeuger 710 angewendet werden, um sicherzustellen, dass der Abstand/die Abstände 106, die von dem/den Modell(en) 104 des maschinellen Lernens berechnet werden, in einen sicherheitstechnisch zulässigen Wertebereich fallen. Das sicherheitstechnisch zulässige Band, in dem der Abstand/die Abstände 106 liegen sollen - z. B. die minimalen und maximalen Abstandsschätzwerte, die als sicherheitstechnisch zulässig akzeptiert werden - kann anhand von visuellen Hinweisen in den Sensordaten 702 erhalten werden. Nützliche Hinweise können z. B. die Straßenform und/oder Begrenzungsformen sein, die Objekten oder Hindernissen entsprechen (wie z. B. von dem/den Modell(en) 104 des maschinellen Lernens und/oder dem Objektdetektor 708 vorhergesagt). Eine weitere Beschreibung der Berechnungen der Sicherheitsgrenzen wird hierin mindestens in Bezug auf die 10A-13 beschrieben.
  • Unter Bezugnahme auf 9 umfasst jeder Block des hierin beschriebenen Verfahrens 900 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen durch einen Prozessor vollzogen werden, der in Speicher gespeicherte Anweisungen ausführt. Das Verfahren 900 kann zudem als computerverwendbare Anweisungen verkörpert sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren 900 kann durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plugin für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 900 beispielhaft in Bezug auf den Prozess 700 aus 7 beschrieben. Dieses Verfahren 900 kann jedoch zusätzlich oder alternativ durch ein beliebiges System oder eine beliebige Kombination von Systemen ausgeführt werden, einschließlich, ohne darauf beschränkt zu sein, der hierin beschriebenen.
  • 9 ist ein Ablaufdiagramm, das ein Verfahren 900 zum Vorhersagen von Abständen zu Objekten und/oder Hindernissen in einer Umgebung unter Verwendung eines Modells/von Modellen des maschinellen Lernens zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 900 beinhaltet in Block B902 das Anwenden erster Daten, die ein Bild eines Sichtfeldes eines Bildsensors darstellen, auf ein neuronales Netzwerk, wobei das neuronale Netzwerk mindestens teilweise basierend auf zweiten Daten, die Ground-Truth-Informationen darstellen, trainiert wird, die unter Verwendung von mindestens einem von einem LIDAR-Sensor oder einem RADAR-Sensor erzeugt werden. Zum Beispiel können die Sensordaten 702 (und/oder Daten, welche die Skalierungs- und/oder Verzerrungskarte aus der Kameraadaption 704 darstellen) auf das/die Modell(e) 104 des maschinellen Lernens angewendet werden. Wie hierin beschrieben, können das/die Modell(e) 104 des maschinellen Lernens unter Verwendung von Ground Truth trainiert werden, die - in Ausführungsformen automatisch, ohne menschliche Markierung oder Annotation - unter Verwendung von LIDAR-Sensoren und/oder RADAR-Sensoren erzeugt wurde.
  • Das Verfahren 900 beinhaltet in Block B904 das Berechnen, unter Verwendung des neuronalen Netzwerks und mindestens teilweise basierend auf den ersten Daten, dritter Daten, die Tiefenwerte darstellen, die einem Bild entsprechen. Zum Beispiel können das/die Modell(e) 104 des maschinellen Lernens den Abstand/die Abstände 106 (oder eine dafür repräsentative Tiefenkarte) berechnen.
  • Das Verfahren 900 beinhaltet in Block B906 das Bestimmen eines oder mehrerer Pixel des Bildes, die einer Begrenzungsform eines im Bild abgebildeten Objekts entsprechen. Zum Beispiel kann der Decodierer 706 eine Korrelation zwischen (einer) Begrenzungsform(en) - vorhergesagt durch das/die Modell(e) 104 des maschinellen Lernens und/oder den Objektdetektor 708 - und (einem) Tiefenwert(en) anhand des Abstands/der Abstände 106, die durch das/die Modell(e) 104 des maschinellen Lernens vorhergesagt werden, bestimmen.
  • Das Verfahren 900 beinhaltet in Block B908 das Assoziieren eines Tiefenwerts der Tiefenwerte, der dem einen oder den mehreren Pixeln entspricht, zu dem Objekt. Zum Beispiel können für jedes Objekt, das eine assoziierte Begrenzungsform aufweist, dem Objekt ein Abstand/Abstände 106 zugewiesen werden.
  • Sicherheitsgrenzenberechnung für Zuteilungsabstandswerte
  • Angesichts der Genauigkeit von Objekterkennungsverfahren (z. B. über ein Modell/Modelle 104 des maschinellen Lernens, über einen Objektdetektor 708 usw.) können enge Begrenzungsformen um Objekte oder Hindernisse in Bildern mit guter Genauigkeit erzeugt werden. Basierend auf den Kamerakalibrierungsparametern ist es daher möglich, den Pfad eines Lichtstrahls zu berechnen, den er durch den 3D-Weltbereich nimmt, um ein Pixel an einer Zielposition im Bildbereich zu erstellen. Eine Zielposition kann eine Position beinhalten, die einer Begrenzungsform entspricht, wie z. B. eine Position innerhalb einer Begrenzungsform, eine Position entlang einer Kante einer Begrenzungsform oder, in einigen Ausführungsformen, ein unterer Mittelpunkt einer Begrenzungsform (z. B. ein Punkt auf einer unteren Kante einer Begrenzungsform). Unter der Annahme, dass der untere Mittelpunkt der Begrenzungsform auf einer Bodenebene (oder einer Fahroberfläche, bezogen auf ein Fahrzeug oder eine Fahrumgebung) liegt, kann der Lichtstrahl den Boden an diesem Punkt schneiden. Wenn die Straßenkrümmung oder -neigung bekannt ist, kann der radiale Abstand direkt berechnet werden. Die genaue Vorhersage der Straßenkrümmung, insbesondere unter Verwendung von Bilddaten, ist jedoch eine Herausforderung.
  • Daher kann in einigen Ausführungsformen, auch wenn keine direkten Informationen über die tatsächliche Straßenkrümmung oder -neigung vorliegt, eine maximal nach oben ansteigende Krümmung und eine maximal nach unten ansteigende Krümmung für eine Fahroberfläche angenommen werden - beispielsweise durch die Verwendung von Vorschriften zur Straßenneigung als Richtlinie. Die Krümmungen können als extreme Begrenzungswände für die tatsächliche Straßenkrümmung betrachtet werden, sodass diese Krümmungen als Sicherheitsgrenzen bezeichnet werden können. Ein Schnittpunkt des von einer Kamera durch diese maximalen Krümmungspunkte verfolgten Lichtstrahls ergibt daher die minimale und maximale Grenze, innerhalb derer der Abstand/die Abstände 106 liegen dürfen, um als sicherheitstechnisch zulässig zu gelten. Um eine minimale Straßenkrümmung und eine maximale Straßenkrümmung zu berechnen, kann eine Lichtstrahltrajektorie mit Straßenkrümmungstrajektorien gekreuzt werden (wie z. B. durch Gleichungen in geschlossener Form geschätzt, die in einer Ausführungsform näherungsweise linear sein können (dargestellt in den 10B und 10D) und durch Automobilvorschriften für Straßenneigungsgrenzen begrenzt sind). Als ein Ergebnis können der Abstand/die Abstände 106 von dem/den Modell(en) 104 des maschinellen Lernens als sicherheitstechnisch zulässig zugeteilt werden, indem sichergestellt wird, dass der Abstand/die Abstände 106 in den durch den Minimal- und Maximalwert bestimmten Wertebereich fallen. Wenn z. B. ein Abstand 106 kleiner als das Minimum ist, kann der Abstand 106 als das Minimum aktualisiert oder zugeteilt werden, und wenn ein Abstand 106 größer als das Maximum ist, kann der Abstand 106 als das Maximum aktualisiert oder zugeteilt werden. Im 3D-Weltbereich können in einigen Ausführungsformen die physischen Grenzen, die durch die Straßenkrümmung bestimmt werden, die Form von Schalen aufweisen.
  • Als ein Beispiel und in Bezug auf 10A ist 10A ein Diagramm 1000, das eine Berechnung von Sicherheitsgrenzen für Zuteilungsabstandsvorhersagen eines Modelles/von Modellen des maschinellen Lernens veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Diagramm 1000 enthält eine Aufwärtskurve 1002, welche die bestimmte maximale Aufwärtskrümmung darstellt, eine Abwärtskurve 1004, welche die bestimmte maximale Abwärtskrümmung darstellt, und eine Bodenebene 1008. Die Aufwärtskrümmung und die Abwärtskrümmung helfen, das sicherheitstechnisch zulässige Band zur Bestimmung eines Maximalwertes 1012 (z. B. maximaler Abstandswert) und eines Minimalwertes 1012 (z. B. minimaler Abstandswert) zu definieren. Ein Strahl 1006 kann von einer Kamera durch einen Punkt - z. B. einen unteren Mittelpunkt - projiziert werden, der einer Begrenzungsform eines Objekts entspricht, das sich schätzungsweise auf der Bodenebene 1008 befindet. Wenn der Strahl 1006 in den Weltbereich projiziert wird, schneidet der Strahl 1006 die Aufwärtskurve 1002, um den Minimalwert 1012 zu definieren, uns schneidet die Abwärtskurve 1004, um den Maximalwert 1010 zu definieren.
  • Unter Bezugnahme auf 10B ist 10B ein Diagramm 1020, das eine maximale Aufwärtskontur für Berechnungen von Sicherheitsgrenzen veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Diagramm 1020 beinhaltet beispielsweise Beispiele für die Erzeugung oder Definition der Aufwärtskurve 1002 aus 10A, die für die Definition des Minimalwertes 1012 verwendet wird. In einigen Ausführungsformen, wie hierin beschrieben, kann es praktischer sein, eine sanft ansteigende Wand oder Aufwärtskurve 1002 zu haben, die nach einem Schwellenwert begrenzt ist. Dies kann ein Ergebnis von Abständen sein, die sich näher am Horizont immer mehr dehnen. Es ist jedoch wichtig, die Parameter der Aufwärtskurve 1002 sorgfältig abzustimmen, da, wenn sich die Aufwärtskurve 1002 zu stark nach oben krümmt, der Minimalwert 1012 mehr Spielraum für Unsicherheiten gibt. Der Minimalwert 1012 sollte auch nicht so knapp sein, um eine genaue Messung in kleinen Abständen auszuschließen. In einigen Beispielen kann für jede gleichmäßig ansteigende Aufwärtskurve 1002 eine lineare Kurve 1022 konstruiert werden, indem die Enden der gleichmäßigen Aufwärtskurve 1002 verbunden werden. In einigen nicht einschränkenden Ausführungsformen kann diese einfache lineare Kurve 1022 als die Aufwärtskurve 1002 für die Sicherheitsgrenze verwendet werden, die den Mindestwert 1012 definiert. In 10B sind mehrere mögliche Auswahlen für die Aufwärtskurve 1002 veranschaulicht. Die Aufwärtskurve 1002A stellt die Aufwärtskurve 1002 mit geringerer Steigung dar als die Aufwärtskurve 1002B. Die vertikale Wand 1024 kann die extreme Aufwärtskurve für die Parametereinstellung darstellen.
  • Unter Bezugnahme auf 10C ist 10C eine Veranschaulichung der Berechnung einer oberen Sicherheitsgrenze gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In mindestens einer Ausführungsform, wie hierin beschrieben, kann die lineare Kurve 1022 durch Verbinden der Enden der Aufwärtskurve 1002 (z. B. 1002A oder 1002B) bestimmt werden und als die Aufwärtskurve 1002 für die Zwecke der Berechnung des Minimalwertes 1012 verwendet werden. In solchen Ausführungsformen kann es beispielsweise zwei Parameter geben, welche die Struktur der linearen Kurve 1022 bestimmen - einen Neigungswinkel, ϑ, und eine radiale Abstandskappe, λ. Der Neigungswinkel, ϑ, kann zur Vereinfachung der Gleichungen als Funktion der Grenzparameter, D, ausgedrückt werden. Sei h die Höhe der Kamera (z. B. von einem Mittelpunkt oder einer anderen Referenzposition an der Kamera) zur Bodenebene 1008. Es kann angenommen werden, dass die Wand linear mit einem Winkel von ϑ ansteigt, wobei der Neigungswinkel ϑ durch Gleichung (4), nachstehend, gegeben ist: tan ( θ ) = h d
    Figure DE112019006468T5_0004
  • Daher kann die Neigung der linearen Kurve 1022 durch Variieren von D geändert werden. Der Strahl 1006 von der Kamera kann die Bodenebene 1008 an einem Punkt, O, schneiden, der sich im radialen Abstand, d, von der radialen Achse befinden kann. Derselbe Strahl kann die Wand an einem Punkt, P, schneiden und um den radialen Abstand zum Punkt P zu finden, können die nachstehenden Gleichungen (5)-(9) verwendet werden. Der Wert für d kann durch die Verwendung einer Annahme eines flachen Bodens zum Berechnen des radialen Abstands erhalten werden. Hier ist das durch PAO gebildete Dreieck = ϑ und das durch POA gebildete Dreieck = ϑ1. tan ( θ 1 ) = h D
    Figure DE112019006468T5_0005
  • Die folgenden Gleichungen (6)-(7) können durch Anwendung der Sinusregel auf das Dreieck PAO beobachtet werden: x = d sin ( θ 1 ) sin ( θ L + θ )
    Figure DE112019006468T5_0006
    r = x c o s ( θ ) = d 1 + tan ( θ ) tan ( θ 1 )
    Figure DE112019006468T5_0007
  • Da λ die maximale Kappe für den radiale Abstand ist, r = d 1 + d D , f a l l s  d < λ 1 λ D
    Figure DE112019006468T5_0008
    r = λ , s o n s t
    Figure DE112019006468T5_0009
  • Unter Bezugnahme auf 10D ist 10D ein Diagramm 1030, das eine maximale Abwärtskontur für Berechnungen von Sicherheitsgrenzen veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Abwärtskurve 1004 wird zur Definition des Maximalwertes 1012 verwendet. Ähnlich wie bei der Aufwärtskurve 1002 kann für jede gleichmäßig abwärts ansteigende Wand oder Abwärtskurve 1004 eine einfache lineare Kurve 1032 erzeugt werden, die eine gewisse Flexibilität beim Maximalwert 1012 aufweist. In einigen Beispielen kann für jede gleichmäßig ansteigende Abwärtskurve 1004 eine lineare Kurve 1032 konstruiert werden, indem die Enden der gleichmäßigen Abwärtskurve 1004 verbunden werden. In einigen nicht einschränkenden Ausführungsformen kann diese einfache lineare Kurve 1032 als die Abwärtskurve 1004 für die Sicherheitsgrenze verwendet werden, die den Maximalwert 1010 definiert. In 10D sind mehrere mögliche Auswahlen für die Abwärtskurve 1004 veranschaulicht. Die Abwärtskurve 1004A stellt ein Beispiel für die Abwärtskurve 1004 dar, es können jedoch zusätzliche Abwärtskurven 1004 mit mehr oder weniger Steigung in Betracht gezogen werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Die vertikale Wand 1034 kann die extreme Abwärtskurve für die Parametereinstellung darstellen.
  • Unter Bezugnahme auf 10E ist 10E eine Veranschaulichung der Berechnung einer unteren Sicherheitsgrenze gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In mindestens einer Ausführungsform, wie hierin beschrieben, kann die lineare Kurve 1032 durch Verbinden der Enden der Abwärtskurve 1004 (z. B. 1004A) bestimmt werden und als die Abwärtskurve 1004 für die Zwecke der Berechnung des Maximalwertes 1010 verwendet werden. In solchen Ausführungsformen kann es beispielsweise zwei Parameter geben, welche die Struktur der linearen Kurve 1032 bestimmen - einen Neigungswinkel, ϑ, und eine radiale Abstandskappe, λ. Der Neigungswinkel, ϑ, kann zur Vereinfachung der Gleichungen als Funktion der Grenzparameter, D, ausgedrückt werden. Sei h die Höhe der Kamera (z. B. von einem Mittelpunkt oder einer anderen Referenzposition an der Kamera) zur Bodenebene 1008. Es kann angenommen werden, dass die Wand linear mit einem Winkel von ϑ ansteigt, wobei der Neigungswinkel ϑ durch Gleichung (4), hierin beschrieben, gegeben ist. Daher kann die Neigung der linearen Kurve 1032 durch Variieren von D geändert werden. Der Strahl 1006 von der Kamera kann die Bodenebene 1008 an einem Punkt, O, schneiden, der sich im radialen Abstand, d, von der radialen Achse befinden kann. Derselbe Strahl kann die Wand an einem Punkt, P, schneiden und um den radialen Abstand zum Punkt, P, zu finden, können Gleichung (5), hierin beschrieben, und die nachstehenden Gleichungen (10)-(13) verwendet werden. Der Wert für d kann durch die Verwendung einer Annahme eines flachen Bodens zum Berechnen des radialen Abstands erhalten werden. Hier ist das durch PAO gebildete Dreieck = ϑ und das durch COA gebildete Dreieck = ϑ1. Die folgenden Gleichungen (10)-(11) können durch Anwendung der Sinusregel auf das Dreieck PAO beobachtet werden: x = d sin ( θ 1 ) sin ( θ 1 θ )
    Figure DE112019006468T5_0010
    r = x c o s ( θ ) = d 1 - tan ( θ ) tan ( θ 1 )
    Figure DE112019006468T5_0011
  • Da λ die maximale Kappe für den radiale Abstand ist, r = d 1 d D , f a l l s   d < λ 1 λ D
    Figure DE112019006468T5_0012
    r = λ , s o n s t
    Figure DE112019006468T5_0013
  • Unter Bezugnahme auf 10F ist 10F eine Veranschaulichung eines Sicherheitsbandprofils gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Zum Beispiel kann es auch wichtig sein, ein Sicherheitsband 1040 zu betrachten, das im Wesentlichen die Differenz zwischen dem Maximalwert 1010 und dem Minimalwert 1012 sein kann, während sich der Strahl entlang des flachen Bodens bewegt. Bei geringen Abständen sollte das Sicherheitsband 1040 eng sein und sollte sich vergrößern, wenn sich das Hindernis oder Objekt weiter entfernt.
  • Unter Bezugnahme auf 11 umfasst jeder Block des hierin beschriebenen Verfahrens 1100 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen durch einen Prozessor vollzogen werden, der in Speicher gespeicherte Anweisungen ausführt. Das Verfahren 1100 kann zudem als computerverwendbare Anweisungen verkörpert sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren 1100 kann durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plugin für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 1100 beispielhaft in Bezug auf die 10A-10F beschrieben. Das Verfahren 1100 kann durch ein beliebiges System oder eine beliebige Kombination von Systemen ausgeführt werden, einschließlich, ohne darauf beschränkt zu sein, der hierin beschriebenen.
  • 11 ist ein Ablaufdiagramm, das ein Verfahren 1100 zur Bestimmung von Sicherheitsgrenzen unter Verwendung der Straßenform zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 1100 beinhaltet in Block B1102 das Empfangen eines Bildes (oder anderer Sensordaten 702) an dem/den Modell(en) 104 des maschinellen Lernens. Das/die Modell(e) 104 des maschinellen Lernens (und/oder der Objektdetektor 708) können eine Begrenzungsform ausgeben, die in Block B1104 zum Schätzen des Minimalwerts 1012 anhand der Aufwärtskurve 1102 verwendet werden kann und in Block B1106 zum Schätzen des Maximalwerts 1010 anhand der Abwärtskurve 1104 verwendet werden kann. Der Maximalwert 1010 und der Minimalwert 1012 können die Sicherheitsgrenzen (z. B. kann es sich bei einem Bereich von Abstandswerten zwischen dem Minimalwert 1012 und dem Maximalwert 1010 um sicherheitstechnisch zulässige Abstandswerte handeln) für das konkrete Objekt an der konkreten Objektinstanz, die der Begrenzungsform entspricht, definieren. In Block B1102 können das/die Modell(e) 104 des maschinellen Lernens einen Abstand/Abstände 106 als einen vorhergesagten Abstand ausgeben, welcher der durch die Begrenzungsform dargestellten Objektinstanz entspricht. In Block B1108 kann ein Vergleich zwischen dem Abstand/den Abständen 106 und den durch den Minimalwert 1012 und den Maximalwert 1012 definierten Sicherheitsgrenzen durchgeführt werden. Wenn der Abstand/die Abstände 106 innerhalb der Sicherheitsgrenzen liegen (z. B. größer als der Minimalwert 1012 und kleiner als der Maximalwert 1010), können der Abstand/die Abstände 106 in Block B1108 als sicherer Abstand bestimmt werden und können an Block B1112 weitergeleitet werden, um gegenüber dem System anzugeben, dass der Abstand/die Abstände 106 akzeptabel sind. Wenn der Abstand/die Abstände 106 außerhalb der Sicherheitsgrenzen liegen (z. B. kleiner als der Minimalwert 1012 oder größer als der Maximalwert 1010), können der Abstand/die Abstände 106 in Block B1108 als nicht sicherer Abstand bestimmt werden. Wenn der Abstand/die Abstände 106 außerhalb der Sicherheitsgrenzen liegen, können der Abstand/die Abstände 106 in Block B1110 den Sicherheitsgrenzen zugeteilt werden. Wenn beispielsweise der Abstand/die Abstände 106 kleiner als der Mindestwert 1012 sind, können der Abstand/die Abstände 106 auf den Mindestwert 1012 aktualisiert werden. Auf ähnliche Weise können der Abstand/die Abstände 106 auf den Maximalwert 1010 aktualisiert werden, wenn der Abstand/die Abstände 106 größer sind als der Maximalwert 1010. Nach der Aktualisierung können der aktualisierte Abstand/die aktualisierten Abstände an Block B1112 weitergeleitet werden, um gegenüber dem System anzugeben, dass der aktualisierte Abstand/die aktualisierten Abstände akzeptabel sind.
  • Unter Bezugnahme auf 12 ist 12 eine Veranschaulichung der Berechnung von Sicherheitsgrenzen unter Verwendung einer Begrenzungsform, die einem Objekt entspricht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Wie hierin beschrieben, verwendet beispielsweise ein anderes Verfahren zum Bestimmen von Sicherheitsgrenzen - die getrennt von oder in Verbindung mit Sicherheitsgrenzen anhand der Straßenform verwendet werden können - eine Begrenzungsform eines Objekts oder Hindernisses. 12 kann ein Lochkameramodell darstellen. Unter Verwendung einer Brennweite, f, einer realen Höhe, H, eines Objekts 1204, einer Begrenzungsformhöhe, h, und einer Projektionsfunktion, F, kann dann ein Abstand, d, zu einem Objekt unter Verwendung von Gleichung (14), unten, berechnet werden: d = F ( f , H , h )
    Figure DE112019006468T5_0014
  • In einigen Ausführungsformen kann der Abstand, d, zu einem Objekt umgekehrt proportional zur Begrenzungsformhöhe, h, sein, die typischerweise das Lochkameramodell ist. Daher kann der Abstand, d, unter Verwendung von Gleichung (15), unten, berechnet werden, die als das Abstandsmodell bezeichnet werden kann: d = f H h
    Figure DE112019006468T5_0015
  • Die Objekterkennung und Schätzung des Abstands zu dem Objekt kann die Abstände ({d0, d1, d2, ..., dt}) und Begrenzungsformhöhen ({({h0, h1, h2, ..., ht}) bereitstellen. Daher kann eine reale Höhe, H, eines Objekts zum Beispiel unter Verwendung einer linearen Regression zwischen d und 1/h berechnet werden. Nachdem ausreichend viele Proben gesammelt wurden, kann der Wert von d in Gleichung (15) aus h geschätzt werden. Eine untere Sicherheitsgrenze oder ein Mindestwert dL und eine obere Sicherheitsgrenze oder ein Maximalwert du können zum Beispiel unter Verwendung der Gleichungen (16) und (17), unten, bestimmt werden: d L = f H h e
    Figure DE112019006468T5_0016
    d U = f H h + e
    Figure DE112019006468T5_0017

    wobei e eine vordefinierte Sicherheitsspanne ist. Daher kann die reale Höhe, H, des Objekts unter Verwendung einer Modellierung (z. B. Gleichung (15)) basierend auf d- und h-Datenproben im Zeitverlauf geschätzt werden.
  • Die Begrenzungsformhöhe, h, und die Brennweite, f, können durch einen Winkel, α, zwischen den optischen Strahlen an der oberen Mitte und der unteren Mitte der Begrenzungsform ersetzt werden, wie in Gleichung (18), unten, dargestellt: d = H Z tan ( α )
    Figure DE112019006468T5_0018
  • Das Inverskameramodell kann dann direkt auf die Begrenzungsform angewendet werden, um den Winkel, α, zu erhalten. Somit kann die reale Objekthöhe, H, unter Verwendung von Gleichung (18) basierend auf Proben von d und α im Zeitverlauf für ein beliebiges bekanntes Kameramodell geschätzt werden.
  • Unter Bezugnahme auf 13 umfasst jeder Block des hierin beschriebenen Verfahrens 1300 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen durch einen Prozessor vollzogen werden, der in Speicher gespeicherte Anweisungen ausführt. Das Verfahren 1300 kann zudem als computerverwendbare Anweisungen verkörpert sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren 1300 kann durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plugin für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 1300 beispielhaft in Bezug auf 12 beschrieben. Das Verfahren 1300 kann durch ein beliebiges System oder eine beliebige Kombination von Systemen ausgeführt werden, einschließlich, ohne darauf beschränkt zu sein, der hierin beschriebenen.
  • 13 ist ein Ablaufdiagramm, das ein Verfahren 1300 zur Bestimmung von Sicherheitsgrenzen unter Verwendung von Begrenzungsformeigenschaften zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 1300 beinhaltet in Block B1302 das Empfangen eines Bildes (oder anderer Sensordaten 702) an dem/den Modell(en) 104 des maschinellen Lernens. Das/die Modell(e) 104 des maschinellen Lernens (und/oder der Objektdetektor 708) können eine Begrenzungsform ausgeben, die in Block B1304 zum Berechnen eines Abstands, d, gemäß dem Abstandsmodell von Gleichung (15), hierin beschrieben, verwendet werden kann. Der Abstand, d, kann dann in Block B1306 verwendet werden, um Sicherheitsgrenzen zu berechnen (z. B. einen Minimalwert dL und einen Maximalwert du), wie z. B. gemäß den Gleichungen (16) und (17), hierin beschrieben. In Block B1302 können das/die Modell(e) 104 des maschinellen Lernens einen Abstand/Abstände 106 als einen vorhergesagten Abstand ausgeben, welcher der durch die Begrenzungsform dargestellten Objektinstanz entspricht. In Block B1308 kann ein Vergleich zwischen dem Abstand/den Abständen 106 und den durch den Minimalwert, dL, und den Maximalwert, du, definierten Sicherheitsgrenzen durchgeführt werden. Wenn der Abstand/die Abstände 106 innerhalb der Sicherheitsgrenzen liegen (z. B. größer als der Minimalwert und kleiner als der Maximalwert), können der Abstand/die Abstände 106 in Block B1308 als sicherer Abstand bestimmt werden und können an Block B1312 weitergeleitet werden, um gegenüber dem System anzugeben, dass der Abstand/die Abstände 106 akzeptabel sind. Wenn der Abstand/die Abstände 106 akzeptabel sind, können die Informationen außerdem zurück an das Abstandsmodell geleitet werden, um das Abstandsmodell weiter zu trainieren oder zu aktualisieren, wie hierin in Bezug auf 12 beschrieben. Wenn der Abstand/die Abstände 106 außerhalb der Sicherheitsgrenzen liegen (z. B. kleiner als der Minimalwert oder größer als der Maximalwert), können der Abstand/die Abstände 106 in Block B1308 als nicht sicherer Abstand bestimmt werden. Wenn der Abstand/die Abstände 106 außerhalb der Sicherheitsgrenzen liegen, können der Abstand/die Abstände 106 in Block B3110 den Sicherheitsgrenzen zugeteilt werden. Wenn beispielsweise der Abstand/die Abstände 106 kleiner als der Mindestwert sind, können der Abstand/die Abstände 106 auf den Mindestwert aktualisiert werden. Auf ähnliche Weise können der Abstand/die Abstände 106 auf den Maximalwert aktualisiert werden, wenn der Abstand/die Abstände 106 größer sind als der Maximalwert. Nach der Aktualisierung können der aktualisierte Abstand/die aktualisierten Abstände an Block B1312 weitergeleitet werden, um gegenüber dem System anzugeben, dass der aktualisierte Abstand/die aktualisierten Abstände akzeptabel sind.
  • Beispielhaftes autonomes Fahrzeug
  • 14A ist eine Veranschaulichung eines beispielhaften autonomen Fahrzeugs 1400 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das autonome Fahrzeug 1400 (hierin alternativ als das „Fahrzeug 1400“ bezeichnet) kann ohne Einschränkung ein Personenkraftwagen, wie z. B. ein Auto, ein Lkw, ein Bus, ein Rettungsfahrzeug, ein Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, ein Löschfahrzeug, ein Polizeifahrzeug, ein Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne und/oder eine andere Art von Fahrzeug sein (das z. B. unbemannt ist und/oder einen oder mehrere Fahrgäste aufnimmt). Autonome Fahrzeuge sind im Allgemeinen in Form von Automatisierungslevels beschrieben, die von der National Highway Traffic Safety Administration (NHTSA), einer Abteilung des US-Verkehrsministeriums, und der Society of Automotive Engineers (SAE) „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles“ (Standard Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Standard Nr. J3016-201609, veröffentlicht am 30. September 2016, sowie frühere und zukünftige Versionen dieses Standards) definiert werden. Das Fahrzeug 1400 kann zu einer Funktionalität gemäß einem oder mehreren von Level 3 - Level 5 der Levels für autonomes Fahren in der Lage sein. Zum Beispiel kann das Fahrzeug 1400 in Abhängigkeit von der Ausführungsform zu einer bedingten Automatisierung (Level 3), einer hohen Automatisierung (Level 4) und/oder einer vollständigen Automatisierung (Level 5) in der Lage sein.
  • Das Fahrzeug 1400 kann Komponenten wie ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z. B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs beinhalten. Das Fahrzeug 1400 kann ein Antriebssystem 1450 beinhalten, wie z. B. einen Verbrennungsmotor, ein Hybridelektrotriebwerk, einen vollelektrischen Motor und/oder eine andere Art von Antriebssystem. Das Antriebssystem 1450 kann mit einem Antriebsstrang des Fahrzeugs 1400 verbunden sein, der ein Getriebe beinhalten kann, um den Antrieb des Fahrzeugs 1400 zu ermöglichen. Das Antriebssystem 1450 kann als Reaktion auf den Empfang von Signalen von einer Drossel/einem Fahrpedal 1452 gesteuert werden.
  • Ein Lenksystem 1454, das ein Lenkrad beinhalten kann, kann verwendet werden, um das Fahrzeug 1400 zu lenken (z. B. entlang eines gewünschten Pfads oder einer gewünschten Route), wenn das Antriebssystem 1450 in Betrieb ist (z. B., wenn das Fahrzeug in Bewegung ist). Das Lenksystem 1454 kann Signale von einem Lenkaktor 1456 empfangen. Für die vollständige Automatisierungsfunktionalität (Level 5) kann das Lenkrad optional sein.
  • Das Bremssensorsystem 1446 kann verwendet werden, um die Fahrzeugbremsen als Reaktion auf den Empfang von Signalen von den Bremsaktoren 1448 und/oder Bremssensoren zu betreiben.
  • Steuerung(en) 1436, die ein oder mehrere Systeme auf Chips (System on chips - SoCs) 1404 (14C) und/oder eine oder mehrere GPU(s) beinhalten können, können Signale (z. B. repräsentativ für Befehle) für eine oder mehrere Komponenten und/oder ein oder mehrere Systeme des Fahrzeugs 1400 bereitstellen. Die Steuerung(en) können beispielsweise Signale zum Betreiben der Fahrzeugbremsen über einen oder mehrere Bremsaktoren 1448, zum Betreiben des Lenksystems 1454 über einen oder mehrere Lenkaktoren 1456 und zum Betreiben des Antriebssystems 1450 über eine oder mehrere Drosseln/ein oder mehrere Fahrpedale 1452 senden. Die Steuerung(en) 1436 können eine oder mehrere bordeigene (z. B. integrierte) Rechenvorrichtungen (z. B. Supercomputer) beinhalten, die Sensorsignale verarbeiten und Betriebsbefehle ausgeben (z. B. Signale, die Befehle darstellen), um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Führen des Fahrzeugs 1400 zu unterstützen. Die Steuerung(en) 1436 können eine erste Steuerung 1436 für Funktionen des autonomen Fahrens, eine zweite Steuerung 1436 für funktionelle Sicherheitsfunktionen, eine dritte Steuerung 1436 für eine Funktionalität der künstlichen Intelligenz (z. B. maschinelles Sehen), eine vierte Steuerung 1436 für eine Infotainment-Funktionalität, eine fünfte Steuerung 1436 für Redundanz in Notfällen und/oder andere Controller beinhalten. In einigen Beispielen kann eine einzelne Steuerung 1436 zwei oder mehrere der vorstehenden Funktionalitäten handhaben, können zwei oder mehr Steuerungen 1436 eine einzelne Funktionalität handhaben und/oder eine beliebige Kombination davon.
  • Die Steuerung(en) 1436 können die Signale zum Steuern einer/eines oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 1400 als Reaktion auf Sensordaten bereitstellen, die von einem oder mehreren Sensoren (z. B. Sensoreingaben) empfangen werden. Die Sensordaten können zum Beispiel und ohne Einschränkung empfangen werden von Sensor(en) 1458 von globalen Navigationssatellitensystemen (z. B. Sensor(en) des globalen Positionsbestimmungssystems), RADAR-Sensor(en) 1460, Ultraschallsensor(en) 1462, LIDAR-Sensor(en) 1464, Sensor(en) 1466 einer Trägheitsmesseinheit (inertial measurement unit - IMU) (z. B. (einem) Beschleunigungsmesser, Gyroskop(en), Magnetkompass(en), (einem) Magnetometer usw.), Mikrofon(en) 1496, Stereokamera(s) 1468, Weitsichtkamera(s) 1470 (z. B. Fischaugenkameras), Infrarotkamera(s) 1472, Rundumkamera(s) 1474 (z. B. 360-Grad-Kameras), Langstrecken- und/oder Mittelstreckenkamera(s) 1498, Geschwindigkeitssensor(en) 1444 (z. B. zum Messen der Geschwindigkeit des Fahrzeugs 1400), Vibrationssensor(en) 1442, Lenksensor(en) 1440, Bremssensor(en) (z. B. als Teil des Bremssensorsystems 1446) und/oder anderen Sensorarten.
  • Eine oder mehrere der Steuerung(en) 1436 können Eingaben (z. B. durch Eingabedaten dargestellt) von einem Kombiinstrument 1432 des Fahrzeugs 1400 empfangen und Ausgaben (z. B. durch Ausgabedaten, Anzeigedaten usw. dargestellt) über eine Mensch-Maschine-Schnittstellen(human-machine interface - HMI)-Anzeige 1434, einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 1400 bereitstellen. Die Ausgaben können Informationen wie Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. die HD-Karte 1422 aus 14C), Standortdaten (z. B. der Standort des Fahrzeugs 1400, wie z. B. auf einer Karte), Richtung, Standort anderer Fahrzeuge (z. B. ein Belegungsgitter), Informationen über Objekte und Status von Objekten, wie von der/den Steuerung(en) 1436 wahrgenommen, usw. beinhalten. Beispielsweise kann die HMI-Anzeige 1434 Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. eines Straßenschilds, eines Warnschilds, einer sich ändernden Ampel usw.) und/oder Informationen über Fahrmanöver anzeigen, die das Fahrzeug durchgeführt hat, gerade durchführt oder durchführen wird (z. B. jetzt die Spur wechseln, in zwei Meilen die Ausfahrt 34B nehmen usw.).
  • Das Fahrzeug 1400 beinhaltet ferner eine Netzwerkschnittstelle 1424, die eine/ein oder mehrere drahtlose Antenne(n) 1426 und/oder Modem(s) zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Die Netzwerkschnittstelle 1424 kann z. B. zur Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000 usw. in der Lage sein. Die drahtlose(n) Antenne(n) 1426 können auch die Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeugen, mobilen Vorrichtungen usw.) unter Verwendung von (einem) lokalen Netzwerk(en), wie z. B. Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw., und/oder (einem) Weitverkehrsnetzwerk(en) mit geringer Leistung (low power wide-area network(s) - LPWANs), wie z. B. LoRaWAN, SigFox usw., ermöglichen.
  • 14B ist ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug 1400 aus 14A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und die entsprechenden Sichtfelder stellen eine beispielhafte Ausführungsform dar und sind nicht als einschränkend aufzufassen. Zum Beispiel können zusätzliche und/oder alternative Kameras enthalten sein und/oder können sich die Kameras an unterschiedlichen Positionen am Fahrzeug 1400 befinden.
  • Die Kameraarten für die Kameras können Digitalkameras beinhalten, ohne darauf beschränkt zu sein, die zur Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 1400 ausgelegt sein können. Die Kamera(s) können mit dem Automobilsicherheitsintegritätslevel (Automotive Safety Integrity Level - ASIL) B und/oder mit einem anderen ASIL betrieben werden. Die Kameraarten können in Abhängigkeit von der Ausführungsform zu einer beliebigen Bildaufnahmerate in der Lage sein, wie z. B. 60 Bilder pro Sekunde (frames per second - fps), 1420 fps, 240 fps usw. Die Kameras können in der Lage sein, Rollblendenverschlüsse, globale Blendenverschlüsse, eine andere Art von Blendenverschluss oder eine Kombination davon zu verwenden. In einigen Beispielen kann eine Farbfilteranordnung eine Rot-Klar-Klar-Klar(red clear clear clear - RCCC)-Farbfilteranordnung, eine Rot-Klar-Klar-Blau(red clear clear blue - RCCB)-Farbfilteranordnung, eine Rot-Blau-Grün-Klar(red blue green clear - RBGC)-Farbfilteranordnung, eine Foveon-X3-Farbfilteranordnung, eine Bayer-Sensoren(RGGB)-Farbfilteranordnung, eine Monochrom-Sensor-Farbfilteranordnung und/oder eine andere Art von Farbfilteranordnung beinhalten. In einigen Ausführungsformen können Klarpixelkameras, wie zum Beispiel Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, in einem Bestreben zur Erhöhung der Lichtempfindlichkeit verwendet werden.
  • In einigen Beispielen können eine oder mehrere der Kamera(s) verwendet werden, um Funktionen der weiterentwickelten Fahrerassistenzsysteme (advanced driver assistance system - ADAS) durchzuführen (z. B. als Teil eines redundanten oder ausfallsicheren Designs). Zum Beispiel kann eine Multifunktions-Monokamera installiert sein, die Funktionen wie Spurverlassenswarnung, Verkehrszeichenassistenz und intelligente Scheinwerfersteuerung bereitstellt. Eine oder mehrere der Kamera(s) (z. B. alle Kameras) können simultan Bilddaten (z. B. ein Video) aufnehmen und bereitstellen.
  • Eine oder mehrere der Kameras können in einer Montagebaugruppe, z. B. einer kundenspezifisch entworfenen (3D-gedruckten) Baugruppe, montiert sein, um Streulicht und Reflexionen aus dem Inneren des Autos (z. B. Reflexionen vom Armaturenbrett, die sich in den Windschutzscheibenspiegeln spiegeln) auszuschließen, welche die Bilddatenerfassungsfähigkeiten der Kamera beeinträchtigen können. Unter Bezugnahme auf Außenspiegel-Montagebaugruppen können die Außenspiegelbaugruppen kundenspezifisch in 3D gedruckt werden, sodass die Kameramontageplatte der Form des Außenspiegels entspricht. In einigen Beispielen können die Kamera(s) in den Außenspiegel integriert sein. Bei Seitensichtkameras können die Kamera(s) auch in die vier Säulen an jeder Ecke des Fahrerhauses integriert sein.
  • Kameras mit einem Sichtfeld, das Abschnitte der Umgebung vor dem Fahrzeug 1400 beinhaltet (z. B. nach vom gerichtete Kameras), können für die Rundumsicht verwendet werden, um dabei zu helfen, nach vorn gerichtete Pfade und Hindernisse zu identifizieren, sowie mit Hilfe einer oder mehrerer Steuerungen 1436 und/oder Steuer-SoCs beim Bereitstellen von Informationen zu helfen, die für die Erzeugung eines Belegungsgitters und/oder die Bestimmung bevorzugter Fahrzeugpfade entscheidend sind. Nach vom gerichtete Kameras können verwendet werden, um viele der gleichen ADAS-Funktionen wie LIDAR auszuführen, einschließlich Notbremsung, Fußgängererkennung und Kollisionsvermeidung. Nach vom gerichtete Kameras können auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich Spurverlassenswarnungen (Lane Departure Warning - „LDW“), autonome Geschwindigkeitssteuerung (Autonomous Cruise Control - „ACC“) und/oder andere Funktionen wie Verkehrszeichenerkennung.
  • Eine Vielfalt von Kameras kann in einer nach vorn gerichteten Konfiguration verwendet werden, zum Beispiel einschließlich einer monokularen Kameraplattform, die einen CMOS(Complementary Metal Oxide Semiconductor - komplementärer Metall-Oxid-Halbleiter)-Farbbildgeber enthält. Ein weiteres Beispiel können Weitsichtkamera(s) 1470 sein, die zur Wahrnehmung von Objekten verwendet werden können, die aus der Peripherie ins Blickfeld kommen (z. B. Fußgänger, Querverkehr oder Fahrräder). Obwohl in 14B nur eine Weitsichtkamera veranschaulicht ist, kann sich eine beliebige Anzahl von Weitsichtkameras 1470 am Fahrzeug 1400 befinden. Außerdem können Langstreckenkamera(s) 1498 (z. B. ein Weitsichtstereokamerapaar) zur tiefenbasierten Objekterkennung verwendet werden, insbesondere für Objekte, für die noch kein neuronales Netzwerk trainiert wurde. Die Langstreckenkamera(s) 1498 können auch zur Objekterkennung und -klassifizierung sowie zur grundlegenden Objektverfolgung verwendet werden.
  • Eine oder mehrere Stereokameras 1468 können auch in einer nach vorn gerichteten Konfiguration enthalten sein. Die Stereokamera(s) 1468 können eine integrierte Steuereinheit beinhalten, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (FPGA) und einen Mehrkern-Mikroprozessor mit einer integrierten CAN- oder Ethernet-Schnittstelle auf einem einzelnen Chip bereitstellen kann. Eine solche Einheit kann verwendet werden, um eine 3D-Karte der Umgebung des Fahrzeugs zu erzeugen, einschließlich einer Abstandsschätzung für alle Punkte im Bild. Eine oder mehrere alternative Stereokamera(s) 1468 können einen kompakten Stereosichtsensor beinhalten, der zwei Kameralinsen (je eine links und rechts) und einen Bildverarbeitungschip beinhalten kann, der den Abstand von dem Fahrzeug zu dem Zielobjekt messen und die erzeugten Informationen (z. B. Metadaten) verwenden kann, um die autonomen Notbrems- und Spurhaltewarnfunktionen zu aktivieren. Andere Arten von Stereokamera(s) 1468 können zusätzlich oder alternativ zu den hierin beschriebenen verwendet werden.
  • Kameras mit einem Sichtfeld, das Abschnitte der Umgebung seitlich des Fahrzeugs 1400 einschließt (z. B. Seitensichtkameras), können für die Rundumsicht verwendet werden, wodurch Informationen bereitgestellt werden, die zur Erstellung und Aktualisierung des Belegungsgitters sowie zur Erzeugung von Seitenaufprallkollisionswarnungen verwendet werden. Beispielsweise können die Rundumkamera(s) 1474 (z. B. vier Rundumkameras 1474, wie in 14B veranschaulicht) auf dem Fahrzeug 1400 positioniert sein. Die Rundumkamera(s) 1474 können die Weitsichtkamera(s) 1470, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder dergleichen beinhalten. Zum Beispiel können Fischaugenkameras an der Vorderseite, der Rückseite und den Seiten des Fahrzeugs positioniert sein. In einer alternativen Anordnung kann das Fahrzeug drei Rundumkamera(s) 1474 (z. B. links, rechts und hinten) verwenden und kann eine oder mehrere andere Kamera(s) (z. B. eine nach vorn gerichtete Kamera) als eine vierte Rundumsichtkamera nutzen.
  • Kameras mit einem Sichtfeld, das Abschnitte der Umgebung hinter dem Fahrzeug 1400 einschließt (z. B. Rückfahrkameras), können als Einparkhilfe, für die Rundumsicht, Heckkollisionswarnungen und das Erstellen und Aktualisieren des Belegungsgitters verwendet werden. Eine große Vielfalt von Kameras kann verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als nach vorn gerichtete Kamera(s) geeignet sind (z. B. Langstrecken- und/oder Mittelstreckenkamera(s) 1498, Stereokamera(s) 1468), Infrarotkamera(s) 1472 usw.), wie hierin beschrieben.
  • 14C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug 1400 aus 14A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es versteht sich, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele dargelegt sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Befehle, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Ferner sind viele der hierin beschriebenen Elemente funktionale Entitäten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in einer beliebigen geeigneten Kombination und an einer beliebigen geeigneten Position implementiert werden können. Verschiedene hierin beschriebene Funktionen, wie sie von Entitäten durchgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen durch einen Prozessor vollzogen werden, der in Speicher gespeicherte Anweisungen ausführt.
  • Alle der Komponenten, Merkmale und Systeme des Fahrzeugs 1400 in 14C sind als über einen Bus 1402 verbunden veranschaulicht. Der Bus 1402 kann eine Controller-Area-Network(CAN)-Datenschnittstelle (hierin alternativ als „CAN-Bus“ bezeichnet) beinhalten. Ein CAN-Bus kann ein Netzwerk innerhalb des Fahrzeugs 1400 sein, das zur Unterstützung der Steuerung verschiedener Merkmale und Funktionen des Fahrzeugs 1400 verwendet wird, wie z. B. Betätigung der Bremsen, Beschleunigung, Bremsen, Lenkung, Scheibenwischer usw. Ein CAN-Bus kann so konfiguriert sein, dass er Dutzende oder sogar Hunderte von Knoten aufweist, jeder mit seiner eigenen eindeutigen Kennung (z. B. eine CAN-ID). Der CAN-Bus kann ausgelesen werden, um den Lenkradwinkel, die Grundgeschwindigkeit, die Umdrehungen des Motors pro Minute (revolutions per minute - RPMs), Tastenpositionen und/oder andere Fahrzeugstatusindikatoren zu ermitteln. Der CAN-Bus kann ASIL-B-konform sein.
  • Obwohl der Bus 1402 hierin als ein CAN-Bus beschrieben ist, soll dies nicht einschränkend sein. Zum Beispiel können zusätzlich oder alternativ zu dem CAN-Bus FlexRay und/oder Ethernet verwendet werden. Außerdem, obwohl eine einzelne Leitung verwendet wird, um den Bus 1402 darzustellen, soll dies nicht einschränkend sein. Zum Beispiel kann eine beliebige Anzahl von Bussen 1402 vorhanden sein, einen oder mehr CAN-Busse, einen oder mehr FlexRay-Busse, einen oder mehr Ethernet-Busse und/oder eine oder mehr andere Arten von Bussen mit einem anderen Protokoll beinhalten können. In einigen Beispielen können zwei oder mehr Busse 1402 verwendet werden, um unterschiedliche Funktionen auszuführen, und/oder können sie zur Redundanz verwendet werden. Zum Beispiel kann ein erster Bus 1402 für die Kollisionsvermeidungsfunktionalität verwendet werden und kann ein zweiter Bus 1402 für die Antriebssteuerung verwendet werden. In einem beliebigen Beispiel kann jeder Bus 1402 mit beliebigen der Komponenten des Fahrzeugs 1400 kommunizieren und können zwei oder mehr Busse 1402 mit denselben Komponenten kommunizieren. In einigen Beispielen können jedes SoC 1404, jede Steuerung 1436 und/oder jeder Computer innerhalb des Fahrzeugs Zugriff auf dieselben Eingabedaten haben (z. B. Eingaben von Sensoren des Fahrzeugs 1400) und können mit einem gemeinsamen Bus, wie z. B. dem CAN-Bus, verbunden sein.
  • Das Fahrzeug 1400 eine oder mehrere Steuerung(en) 1436 beinhalten, wie z. B. diejenigen, die hierin in Bezug auf 14A beschrieben sind. Die Steuerung(en) 1436 können für eine Vielfalt von Funktionen verwendet werden. Die Steuerung(en) 1436 können mit beliebigen von den verschiedenen anderen Komponenten und Systemen des Fahrzeugs 1400 gekoppelt sein und können zur Steuerung des Fahrzeugs 1400, der künstlichen Intelligenz des Fahrzeugs 1400, des Infotainment für das Fahrzeug 1400 und/oder dergleichen verwendet werden.
  • Das Fahrzeug 1400 kann (ein) System(e) auf einem Chip (SoC) 1404 beinhalten. Das SoC 1404 kann CPU(s) 1406, GPU(s) 1408, Prozessor(en) 1410, Cache(s) 1412, (einen) Beschleuniger 1414, (einen) Datenspeicher 1416 und/oder andere, nicht dargestellte Komponenten und Merkmale beinhalten. Das/die SoC(s) 1404 können zur Steuerung des Fahrzeugs 1400 in einer Vielfalt von Plattformen und Systemen verwendet werden. Beispielsweise können das/die SoC(s) 1404 in einem System (z. B. dem System des Fahrzeugs 1400) mit einer HD-Karte 1422 kombiniert werden, die über eine Netzwerkschnittstelle 1424 von einem oder mehreren Servern (z. B. dem/den Server(n) 1478 aus 14D) Kartenauffrischungen und/oder -aktualisierungen erhalten kann.
  • Die CPU(s) 1406 können einen CPU-Cluster oder CPU-Komplex (hierin alternativ als „CCPLEX“ bezeichnet) beinhalten. Die CPU(s) 1406 können mehrere Kerne und/oder L2-Caches beinhalten. In einigen Ausführungsformen können die CPU(s) 1406 beispielsweise acht Kerne in einer kohärenten Multiprozessorkonfiguration beinhalten. In einigen Ausführungsformen können die CPU(s) 1406 vier Doppelkerncluster beinhalten, wobei jeder Cluster über einen dedizierten L2-Cache verfügt (z. B. einen L2-Cache mit 2 MB). Die CPU(s) 1406 (z. B. der CCPLEX) können so konfiguriert sein, dass sie den simultanen Clusterbetrieb unterstützen, sodass eine beliebige Kombination von Clustern der CPU(s) 1406 zu einem beliebigen gegebenen Zeitpunkt aktiv sein kann.
  • Die CPU(s) 1406 können Leistungsverwaltungsfähigkeiten implementieren, die eines oder mehrere der folgenden Merkmale beinhalten: einzelne Hardwareblöcke können automatisch taktgesteuert werden, wenn sie inaktiv sind, um dynamische Leistung zu sparen; jeder Kerntakt kann gesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Anweisungen keine Anweisungen aktiv ausführt; jeder Kern kann unabhängig leistungsgesteuert sein; jeder Kerncluster kann unabhängig taktgesteuert sein, wenn alle Kerne taktgesteuert oder leistungsgesteuert sind; und/oder jeder Kerncluster kann unabhängig leistungsgesteuert sein, wenn alle Kerne leistungsgesteuert sind. Die CPU(s) 1406 können ferner einen erweiterten Algorithmus zur Verwaltung von Leistungsstatus implementieren, bei dem zulässige Leistungsstatus und erwartete Aufwachzeiten spezifiziert werden und die Hardware/der Mikrocode den besten Leistungsstatus bestimmt, in den für den Kern, den Cluster und den CCPLEX einzutreten ist. Die Verarbeitungskerne vereinfachte Leistungsstatus-Eintrittssequenzen in der Software unterstützen, wobei die Arbeit in den Mikrocode ausgelagert wird.
  • Die GPU(s) 1408 können eine integrierte GPU (hierin alternativ als „iGPU“ bezeichnet) beinhalten. Die GPU(s) 1408 können programmierbar sein und können für parallele Arbeitslasten effizient sein. Die GPU(s) 1408 können in einigen Beispielen einen erweiterten Tensor-Anweisungssatz verwenden. Die GPU(s) 1408 können einen oder mehrere Streaming-Mikroprozessoren beinhalten, wobei jeder Streaming-Mikroprozessor einen L1-Cache beinhalten kann (z. B. einen L1-Cache mit einer Speicherkapazität von mindestens 96 KB), und zwei oder mehr der Streaming-Mikroprozessoren können einen L2-Cache gemeinsam nutzen (z.B. einen L2-Cache mit einer Speicherkapazität von 512 KB). In einigen Ausführungsformen können die GPU(s) 1408 mindestens acht Streaming-Mikroprozessoren beinhalten. Die GPU(s) 1408 können (eine) Berechnungs-Anwendungsprogrammierschnittstelle(n) (application programming interface(s) - API(s)) verwenden. Außerdem können die GPU(s) 1408 eine oder mehrere Parallelrechenplattformen und/oder Programmiermodelle (z. B. CUDA von NVIDIA) verwenden.
  • Die GPU(s) 1408 können für die beste Performance in Automobil- und eingebetteten Anwendungsfällen leistungsoptimiert sein. Die GPU(s) 1408 können beispielsweise auf einem Fin-Feldeffekttransistor (FinFET) gefertigt sein. Dies soll jedoch nicht einschränkend sein und die GPU(s) 1408 können unter Verwendung anderer Halbleiterherstellungsprozesse gefertigt werden. Jeder Streaming-Mikroprozessor kann eine Anzahl von Verarbeitungskernen mit gemischter Genauigkeit beinhalten, die in mehrere Blöcke partitioniert sind. Zum Beispiel, und ohne Einschränkung, können 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke partitioniert sein. In einem solchen Beispiel können jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA TENSOR COREs mit gemischter Genauigkeit für Deep-Learning-Matrixarithmetik, ein L0-Anweisungs-Cache, ein Warp-Planer, eine Verteilungseinheit und/oder eine Registerdatei mit 64 KB zugewiesen sein. Außerdem können die Streaming-Mikroprozessoren unabhängige parallele Integer- und Fließkomma-Datenpfade beinhalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnung und Adressierungsberechnungen zu ermöglichen. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Planungsfähigkeit beinhalten, um eine feinkörnigere Synchronisation und Kooperation zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können eine Einheit aus kombiniertem L1-Daten-Cache und gemeinsam genutztem Speicher beinhalten, um die Performance zu verbessern, während die Programmierung vereinfacht wird.
  • Die GPU(s) 1408 können einen Speicher mit hoher Bandbreite (high bandwidth memory - HBM) und/oder ein 16-GB-HBM2-Speicherteilsystem beinhalten, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich oder alternativ zum HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (synchronous graphics random-access memory - SGRAM) verwendet werden, z. B. ein synchroner Grafik-Double-Data-Rate-Typ-Fünf-Direktzugriffsspeicher (graphics double data rate type five - GDDR5).
  • Die GPU(s) 1408 können eine einheitliche Speichertechnologie mit Zugriffszählern beinhalten, um eine genauere Migration von Speicherseiten zu dem Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz für Speicherbereiche verbessert wird, die von mehreren Prozessoren gemeinsam genutzt werden. In einigen kann die Unterstützung von Adressübersetzungsdiensten (address translation services - ATS) verwendet werden, um zu ermöglichen, dass die GPU(s) 1408 direkt auf Seitentabellen von CPU(s) 1406 zugreifen. In solchen Beispielen kann, wenn die Speicherverwaltungseinheit (memory management unit - MMU) der GPU(s) 1408 eine Auslassung erleidet, eine Adressübersetzungsanforderung an die CPU(s) 1406 übertragen werden. Als Reaktion darauf können die CPU(s) 1406 in ihren Seitentabellen nach einer Virtuell-zu-Physisch-Zuordnung für die Adresse suchen und die Übersetzung zurück an die GPU(s) 1408 übertragen. Daher kann die einheitliche Speichertechnologie einen einzelnen einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 1406 als auch der GPU(s) 1408 ermöglichen, wodurch die Programmierung der GPU(s) 1408 und die Portierung von Anwendungen auf die GPU(s) 1408 vereinfacht werden.
  • Außerdem können die GPU(s) 1408 einen Zugriffszähler beinhalten, der die Häufigkeit des Zugriffs der GPU(s) 1408 auf den Speicher anderer Prozessoren verfolgen kann. Der Zugriffszähler kann dazu beitragen, sicherzustellen, dass Speicherseiten in den physischen Speicher des Prozessors verschoben werden, der am häufigsten auf die Seiten zugreift.
  • Das/die SoC(s) 1404 können eine beliebige Anzahl von Cache(s) 1412 beinhalten, einschließlich der hierin beschriebenen. Der/die Cache(s) 1412 können beispielsweise einen L3-Cache beinhalten, der sowohl der/den CPU(s) 1406 als auch der/den GPU(s) 1408 zur Verfügung steht (der z. B. sowohl mit der/den CPU(s) 1406 als auch mit der/den GPU(s) 1408 verbunden ist). Der/die Cache(s) 1412 können einen Rückschreib-Cache beinhalten, der die Status von Zeilen verfolgen kann, wie z. B. durch die Verwendung eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI usw.). Der L3-Cache kann in Abhängigkeit von der Ausführungsform 4 MB oder mehr beinhalten, obwohl auch kleinere Cache-Größen verwendet werden können.
  • Das/die SoC(s) 1404 können einen oder mehrere Beschleuniger 1414 beinhalten (z. B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon). Zum Beispiel können das/die SoC(s) 1404 einen Hardware-Beschleunigungscluster beinhalten, der optimierte Hardware-Beschleuniger und/oder einen großen chipinternen Speicher beinhalten kann. Der großer chipinterne Speicher (z. B. 4 MB SRAM) kann den Hardware-Beschleunigungscluster zur Beschleunigung neuronaler Netzwerke und anderer Berechnungen ermöglichen. Der Hardware-Beschleunigungscluster kann verwendet werden, um die GPU(s) 1408 zu ergänzen und einige der Aufgaben der GPU(s) 1408 auszulagern (um z. B. mehr Zyklen der GPU(s) 1408 für die Durchführung anderer Aufgaben freizumachen). Als ein Beispiel können der/die Beschleuniger 1414 für zielgerichtete Arbeitslasten (z. B. Wahrnehmung, neuronale Faltungsnetzwerke (convolutional neural networks - CNNs) usw.) verwendet werden, die stabil genug sind, um für eine Beschleunigung geeignet zu sein. Der Begriff „CNN“, wie er hierin verwendet wird, kann alle Arten von CNNs beinhalten, einschließlich regionenbasierter oder regionaler neuronaler Faltungsnetzwerke (regional convolutional neural networks - RCNNs) und schneller RCNNs (wie sie z. B. für die Objekterkennung verwendet werden).
  • Der/die Beschleuniger 1414 (z. B. der Hardware-Beschleunigungscluster) können (einen) Deep-Learning-Beschleuniger (deep learning accelerator(s) - DLA) beinhalten. Der/die DLA(s) können eine oder mehrere Tensor-Verarbeitungseinheiten (tensor processing units - TPUs) beinhalten, die so konfiguriert sein können, dass sie zusätzliche zehn Billionen Vorgänge pro Sekunde für Deep-Learning-Anwendungen und -Ableitung bereitstellen. Die TPUs können Beschleuniger sein, die für die Ausführung von Bildverarbeitungsfunktionen (z. B. für CNNs, RCNNs usw.) konfiguriert und optimiert sind. Der/die DLA(s) können ferner für einen spezifischen Satz von Arten von neuronalen Netzwerken und Fließkommavorgängen sowie für die Ableitung optimiert sein. Das Design des/der DLA(s) kann mehr Performance pro Millimeter bereitstellen als eine typische Universal-GPU und übertrifft die Performance einer CPU bei weitem. Die TPU(s) können mehrere Funktionen durchführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die z. B. INT8-, INT16- und FP16-Datenarten sowohl für Merkmale als auch für Gewichtungen unterstützt, sowie Postprozessorfunktionen.
  • Der/die DLA(s) können neuronale Netzwerke, insbesondere CNNs, an verarbeiteten oder unverarbeiteten Daten für eine beliebige einer Vielfalt von Funktionen schnell und effizient ausführen, darunter zum Beispiel und ohne Einschränkung: ein CNN für die Identifizierung und Erkennung von Objekten unter Verwendung von Daten von Kamerasensoren; ein CNN für die Abstandsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN für die Erkennung und Identifizierung und Erkennung von Einsatzfahrzeugen unter Verwendung von Daten von Mikrofonen; ein CNN für die Gesichtserkennung und Identifizierung von Fahrzeugbesitzern unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für die Sicherheit und/oder sicherheitsrelevante Ereignisse.
  • Der/die DLA(s) können eine beliebige Funktion der GPU(s) 1408 durchführen und durch die Verwendung eines Ableitungsbeschleunigers kann ein Designer beispielsweise entweder den/die DLA(s) oder die GPU(s) 1408 für eine beliebige Funktion anvisieren. Der Designer kann beispielsweise die Verarbeitung von CNNs und Fließkommavorgängen auf dem/den DLA(s) konzentrieren und andere Funktionen der/den GPU(s) 1408 und/oder anderen Beschleuniger(n) 1414 überlassen.
  • Der/die Beschleuniger 1414 (z. B. der Hardware-Beschleunigungscluster) können (einen) programmierbare(n) Sichtbeschleuniger (programmable vision accelerator - PVA) beinhalten, der hierin alternativ als ein Beschleuniger für maschinelles Sehen bezeichnet werden kann. Der/die PVA(s) können zur Beschleunigung von Algorithmen des maschinellen Sehens für weiterentwickelte Fahrerassistenzsysteme (ADAS), autonomes Fahren und/oder Augmented-Reality- (AR) und/oder Virtual-Reality(VR)-Anwendungen konstruiert und konfiguriert sein. Der/die PVA(s) können ein Gleichgewicht zwischen Performance und Flexibilität bereitstellen. Zum Beispiel können alle PVA(s), zum Beispiel und ohne Einschränkung, eine beliebige Anzahl von Reduced-Instruction-Set-Computer(RISC)-Kernen, direkten Speicherzugriff (direct memory access - DMA) und/oder eine beliebige Anzahl von Vektorprozessoren beinhalten.
  • Die RISC-Kerne können mit Bildsensoren (z. B. den Bildsensoren einer beliebigen der hierin beschriebenen Kameras), Bildsignalprozessor(en) und/oder dergleichen interagieren. Jeder der RISC-Kerne kann eine beliebige Menge an Speicher beinhalten. Die RISC-Kerne können in Abhängigkeit von der Ausführungsform ein beliebiges von einer Anzahl von Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (realtime operating system - RTOS) ausführen. Die RISC-Kerne können unter Verwendung einer oder mehrerer Vorrichtungen für integrierte Schaltungen, anwendungsspezifischer integrierter Schaltungen (application specific integrated circuits - ASICs) und/oder Speichervorrichtungen implementiert sein. Die RISC-Kerne können z. B. einen Anweisungs-Cache und/oder einen eng gekoppeltes RAM beinhalten.
  • Der DMA kann es Komponenten des/der PVA(s) ermöglichen, unabhängig von der/den CPU(s) 1406 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Merkmalen unterstützen, die zur Bereitstellung der Optimierung des PVA verwendet werden, einschließlich der Unterstützung von mehrdimensionaler Adressierung und/oder zirkulärer Adressierung, ohne darauf beschränkt zu sein. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockabstufung, vertikale Blockabstufung und/oder Tiefenabstufung beinhalten können.
  • Die Vektorprozessoren können programmierbare Prozessoren sein, die so konstruiert sein können, dass sie die Programmierung für Algorithmen des maschinellen Sehens effizient und flexibel ausführen und Signalverarbeitungsfähigkeiten bereitstellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Vektorverarbeitungsteilsystempartitionen beinhalten. Der PVA-Kern kann ein Prozessorteilsystem, DMA-Engine(s) (z. B. zwei DMA-Engines) und/oder andere Peripheriegeräte beinhalten. Das Vektorverarbeitungsteilsystem kann als die primäre Verarbeitungs-Engine des PVA arbeiten und kann eine Vektorverarbeitungseinheit (vector processing unit - VPU), einen Anweisungs-Cache und/oder einen Vektorspeicher (z. B. VMEM) beinhalten. Die VPU kann einen digitalen Signalprozessor beinhalten, wie z. B. einen digitalen Single-Instruction-Multiple-Data(SIMD)-Very-Long-Instruction-Word(VLIW)-Signalprozessor. Die Kombination aus SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.
  • Jeder der Vektorprozessoren kann einen Anweisungs-Cache beinhalten und kann mit einem dedizierten Speicher gekoppelt sein. Als ein Ergebnis kann in einigen Beispielen jeder der Vektorprozessoren so konfiguriert sein, dass er unabhängig von den anderen Vektorprozessoren arbeitet. In anderen Beispielen können die Vektorprozessoren, die in einem konkreten PVA enthalten sind, so konfiguriert sein, dass sie Datenparallelität einsetzen. Zum Beispiel kann in einigen Ausführungsformen die Vielzahl von Vektorprozessoren, die in einem einzelnen PVA enthalten ist, denselben Algorithmus des maschinellen Sehens ausführen, jedoch an unterschiedlichen Regionen eines Bildes. In anderen Beispielen können die in einem konkreten PVA enthaltenen Vektorprozessoren simultan unterschiedliche Algorithmen des maschinellen Sehens an demselben Bild ausführen oder sogar unterschiedliche Algorithmen an sequentiellen Bildern oder Abschnitten eines Bildes ausführen. Unter anderem kann eine beliebige Anzahl von PVAs in dem Hardware-Beschleunigungscluster enthalten sein und kann eine beliebige Anzahl von Vektorprozessoren in jedem der PVAs enthalten sein. Außerdem können der/die PVA(s) einen zusätzlichen Fehlerkorrekturcode(error correcting code - ECC)-Speicher beinhalten, um die Gesamtsystemsicherheit zu erhöhen.
  • Der/die Beschleuniger 1414 (z. B. der Hardware-Beschleunigungscluster) können ein Netzwerk auf einem Chip für maschinelles Sehen und einen SRAM beinhalten, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 1414 bereitzustellen. In einigen Beispielen kann der chipinterne Speicher mindestens 4 MB SRAM beinhalten, der z. B. und ohne Einschränkung aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl der PVA als auch der DLA zugreifen können. Jedes Paar von Speicherblöcken kann eine weiterentwickelte Peripheriebus(advanced peripheral bus - APB)-Schnittstelle, eine Konfigurationsschaltung, eine Steuerung und einen Multiplexer beinhalten. Eine beliebige Art von Speicher kann verwendet werden. Der PVA und DLA können auf den Speicher über einen Backbone zugreifen, der dem PVA und DLA einen Hochgeschwindigkeitszugriff auf den Speicher bereitstellt. Der Backbone kann ein Netzwerk auf einem Chip für maschinelles Sehen beinhalten, das den PVA und den DLA mit dem Speicher verbindet (z. B. unter Verwendung des APB).
  • Das Netzwerk auf einem Chip für maschinelles Sehen kann eine Schnittstelle beinhalten, die vor der Übertragung eines beliebigen Steuersignals/einer beliebigen Adresse/beliebiger Daten bestimmt, dass sowohl der PVA als auch der DLA einsatzbereite und gültige Signale bereitstellen. Eine solche Schnittstelle kann separate Phasen und separate Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-artige Kommunikation für eine kontinuierliche Datenübertragung bereitstellen. Diese Schnittstellenart kann mit dem Standards ISO 26262 oder IEC 61508 konform sein, obwohl andere Standards und Protokolle verwendet werden können.
  • In einigen Beispielen können das/die SoC(s) 1404 einen Echtzeitstrahlverfolgungs-Hardware-Beschleuniger beinhalten, wie er in der US-Patentanmeldung Nr. 16/101,232 , eingereicht am 10. August 2018, beschrieben ist. Der Echtzeitstrahlverfolgungs-Hardware-Beschleuniger kann verwendet werden, um schnell und effizient die Positionen und Ausdehnungen von Objekten (z. B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeitvisualisierungssimulationen zu erzeugen, für die RADAR-Signalinterpretation, für die Schallausbreitungssynthese und/oder -analyse, für die Simulation von SONAR-Systemen, für die allgemeine Wellenausbreitungssimulation, für den Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder für andere Funktionen und/oder für andere Verwendungen.
  • Der/die Beschleuniger 1414 (z. B. der Hardware-Beschleunigercluster) weisen ein breites Spektrum von Verwendungen für das autonome Fahren auf. Der PVA kann ein programmierbarer Sichtbeschleuniger sein, der für wichtige Verarbeitungsstufen im ADAS und in autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA sind eine gute Ergänzung für algorithmische Domänen, die eine vorhersagbare Verarbeitung bei niedriger Leistung und niedriger Latenz benötigen. Anders ausgedrückt zeigt der PVA eine gute Performance für halbdichte oder dichte reguläre Berechnungen, auch an kleinen Datensätzen, die vorhersagbare Laufzeiten mit niedriger Latenz und niedriger Leistung benötigen. Im Kontext von Plattformen für autonome Fahrzeuge sind die PVAs daher für die Ausführung klassischer Algorithmen des maschinellen Sehens konstruiert, da sie effizient bei der Objekterkennung sind und mit Integer-Mathematik arbeiten.
  • Zum Beispiel, gemäß einer Ausführungsform der Technologie, wird der PVA verwendet, um maschinelles Stereo-Sehen durchzuführen. In einigen Beispielen kann ein auf semiglobalem Abgleich basierender Algorithmus verwendet werden, obwohl dies nicht einschränkend sein soll. Vielen Anwendungen für das autonome Fahren auf Level 3-5 erfordern Bewegungsschätzung/ Stereo-Abgleich spontan (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrspurerkennung usw.). Der PVA kann eine Funktion des maschinellen Stereo-Sehens an Eingaben von zwei monokularen Kameras durchführen.
  • In einigen Beispielen kann der PVA verwendet werden, um einen dichten optischen Fluss durchzuführen. Gemäß Prozessroh-RADAR-Daten (z. B unter Verwendung einer schnellen 4D-Fourier-Transformation), um verarbeitetes RADAR bereitzustellen. In anderen Beispielen wird der PVA für die Laufzeit-Tiefenverarbeitung verwendet, indem z. B. Laufzeit-Rohdaten verarbeitet werden, um verarbeitete Laufzeitdaten bereitzustellen.
  • Der DLA kann verwendet werden, um eine beliebige Art von Netzwerk auszuführen, um die Steuerung und Fahrsicherheit zu verbessern, einschließlich zum Beispiel ein neuronales Netzwerk, das ein Maß an Konfidenz für jede Objekterkennung ausgibt. Ein solcher Konfidenzwert kann als eine Wahrscheinlichkeit interpretiert werden oder als Bereitstellung einer relativen „Gewichtung“ jeder Erkennung im Vergleich zu anderen Erkennungen. Dieser Konfidenzwert ermöglicht es dem System, weitere Entscheidungen darüber zu treffen, welche Erkennungen als richtig positive Erkennungen und nicht als falsch positive Erkennungen betrachtet werden sollten. Zum Beispiel kann das System einen Schwellenwert für die Konfidenz festlegen und nur die Erkennungen, die den Schwellenwert überschreiten, als richtig positive Erkennungen betrachten. In einem automatischen Notbrems(automatic emergency braking - AEB)-System würden falsch positive Erkennungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was natürlich unerwünscht ist. Daher sollten nur die Erkennungen mit höchster Konfidenz als Auslöser für AEB betrachtet werden. Der DLA kann ein neuronales Netzwerk zur Regression des Konfidenzwerts ausführen. Das neuronale Netzwerk kann als seine Eingabe mindestens eine Teilmenge von Parametern verwenden, wie z. B. die Abmessungen des Begrenzungsrahmens, die (z. B. von einem anderen Teilsystem) erhaltene Bodenebenenschätzung, die Ausgabe des Sensors 1466 der Trägheitsmesseinheit (IMU), die mit der Ausrichtung des Fahrzeugs 1400 korreliert, den Abstand, die 3D-Positionsschätzungen des Objekts, die vom neuronalen Netzwerk und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 1464 oder RADAR-Sensor(en) 1460) erhalten werden, usw.
  • Das/die SoC(s) 1404 können (einen) Datenspeicher 1416 (z. B. Speicher) beinhalten. Bei dem/den Datenspeicher(n) 1416 kann es sich um einen chipinternen Speicher des/der SoC(s) 1404 handeln, der neuronale Netzwerke speichern kann, die auf der GPU und/oder dem DLA ausgeführt werden sollen. In einigen Beispielen kann die Kapazität des/der Datenspeicher(s) 1416 groß genug sein, um mehrere Instanzen von neuronalen Netzwerken zur Redundanz und Sicherheit zu speichern. Der/die Datenspeicher 1412 können (einen) L2- oder L3-Cache(s) 1412 beinhalten. Die Bezugnahme auf den/die Datenspeicher 1416 kann eine Bezugnahme auf den Speicher beinhalten, der mit dem PVA, DLA und/oder (einem) anderen Beschleuniger(n) 1414 assoziiert ist, wie hierin beschrieben.
  • Das/die SoC(s) 1404 können einen oder mehrere Prozessor(en) 1410 (z. B. eingebettete Prozessoren) beinhalten. Der/die Prozessor(en) 1410 können einen Booting- und Leistungsverwaltungsprozessor beinhalten, der ein dedizierter Prozessor und ein Teilsystem sein kann, um die Booting-Leistungs- und -Verwaltungsfunktionen und die damit verbundene Sicherheitsdurchsetzung zu handhaben. Der Booting- und Leistungsverwaltungsprozessor kann ein Teil der Booting-Sequenz des/der SoC(s) 1404 sein und kann Laufzeit-Leistungsverwaltungsdienste bereitstellen. Der Booting-Leistungs- und - verwaltungsprozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Übergängen des Systems in einen Status mit niedriger Leistung, Verwaltung von Thermik und Temperatursensoren des/der SoC(s) 1404 und/oder Verwaltung von Leistungsstatus des/der SoC(s) 1404 bereitstellen. Jeder Temperatursensor als Ringoszillator implementiert sein, dessen Ausgabefrequenz proportional zur Temperatur ist, und das/die SoC(s) 1404 können die Ringoszillatoren verwenden, um Temperaturen von der/den CPU(s) 1406, der/den GPU(s) 1408 und/oder dem/den Beschleuniger(n) 1414 zu erkennen. Wenn bestimmt wird, dass Temperaturen einen Schwellenwert überschreiten, kann der Booting- und Leistungsverwaltungsprozessor in eine Temperaturfehlerroutine eintreten und den/die SoC(s) 1404 in einen Status mit niedrigerer Leistung versetzen und/oder das Fahrzeug 1400 in einen Modus des Chauffierens zu einem sicheren Halt versetzen (z. B. das Fahrzeug 1400 zu einem sicheren Halt bringen).
  • Der/die Prozessor(en) 1410 können ferner einen Satz von eingebetteten Prozessoren beinhalten, die als eine Audioverarbeitungs-Engine dienen können. Die Audioverarbeitungs-Engine kann ein Audioteilsystem sein, das eine vollständige Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen sowie eine breite und flexible Palette von Audio-E/A-Schnittstellen ermöglicht. In einigen Beispielen ist die Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM Der/die Prozessor(en) 1410 können ferner eine stets eingeschaltete Prozessor-Engine beinhalten, welche die notwendigen Hardware-Merkmale zur Unterstützung der Sensorverwaltung mit niedriger Leistung und der Aufwach-Anwendungsfälle bereitstellen kann. Die stets eingeschaltete Prozessor-Engine kann einen Prozessorkern, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Timer und Unterbrechungssteuerungen), verschiedene E/A-Steuerungsperipheriegeräte und Routing-Logik beinhalten.
  • Der/die Prozessor(en) 1410 können ferner eine Sicherheitscluster-Engine beinhalten, die ein dediziertes Prozessorteilsystem zur Handhabung der Sicherheitsverwaltung für Automobilanwendungen beinhaltet. Die Sicherheitscluster-Engine kann zwei oder mehr Prozessorkerne, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Timer, eine Unterbrechungssteuerung usw.) und/oder Routing-Logik beinhalten. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Gleichschrittmodus arbeiten und als ein einzelner Kern mit einer Vergleichslogik funktionieren, um beliebige Unterschiede zwischen ihren Vorgängen zu erkennen.
  • Der/die Prozessor(en) 1410 können ferner eine Echtzeitkamera-Engine beinhalten, die ein dediziertes Prozessorteilsystem zur Handhabung der Echtzeitkameraverwaltung beinhalten kann.
  • Der/die Prozessor(en) 1410 können ferner einen Signalprozessor mit hohem Dynamikbereich beinhalten, der einen Bildsignalprozessor beinhalten kann, der eine Hardware-Engine ist, die Teil der Kameraverarbeitungspipeline ist.
  • Der/die Prozessor(en) 1410 können einen Videobildkompositor beinhalten, der ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor implementiert), der Videonachbearbeitungsfunktionen implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Fenster des Wiedergabeprogramms zu erzeugen. Der Videobildkompositor kann eine Linsenverzerrungskorrektur an der/den Weitsichtkamera(s) 1470, der/den Rundumkamera(s) 1474 und/oder an den kabineninternen Überwachungskamerasensoren durchführen. Der kabineninterne Überwachungskamerasensor wird vorzugsweise von einem neuronalen Netzwerk überwacht, das auf einer anderen Instanz des weiterentwickelten SoC läuft und so konfiguriert ist, dass es Ereignisse in der Kabine erkennt und entsprechend reagiert. Ein kabineninternes System kann Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, das Ziel des Fahrzeugs zu ändern, das Infotainment-System des Fahrzeugs und dessen Einstellungen zu aktivieren oder zu ändern oder sprachaktiviertes Surfen im Internet bereitzustellen. Bestimmte Funktionen stehen dem Fahrer nur zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind ansonsten deaktiviert.
  • Der Videobildkompositor kann eine erweiterte zeitliche Rauschunterdrückung sowohl für die räumliche als auch für die zeitliche Rauschunterdrückung beinhalten. Wenn Bewegungen in einem Video vorkommen, gewichtet die Rauschunterdrückung zum Beispiel die räumlichen Informationen entsprechend, indem sie die Gewichtung der Informationen, die von benachbarten Frames bereitgestellt werden, verringert. Wenn ein Bild oder ein Abschnitt eines Bildes keine Bewegungen enthält, kann die vom Videobildkompositor durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu unterdrücken.
  • Der Videobildkompositor kann auch so konfiguriert sein, dass er eine Stereoentzerrung an den eingegebenen Stereolinsen-Frames durchführt. Der Videobildkompositor kann ferner für die Benutzerschnittstellenzusammensetzung verwendet werden, wenn der Desktop des Betriebssystems in Gebrauch ist und die GPU(s) 1408 nicht zum kontinuierlichen Rendern neuer Oberflächen benötigt werden. Auch wenn die GPU(s) 1408 eingeschaltet sind und aktiv 3D-Rendering durchführen, kann der Videobildkompositor verwendet werden, um die GPU(s) 1408 zu entlasten, um die Performance und Reaktionsfähigkeit zu verbessern.
  • Das/die SoC(s) 1404 können ferner eine serielle Mobile-Industry-Processor-Interface(MIPI)-Kameraschnittstelle zum Empfangen von Videos und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingabeblock beinhalten, der für Kamera- und zugehörige Pixeleingabefunktionen verwendet werden kann. Das/die SoC(s) 1404 können ferner (eine) Eingabe/Ausgabe-Steuerung(en) beinhalten, die durch Software gesteuert werden können und für den Empfang von E/A-Signalen verwendet werden können, die keiner bestimmten Rolle zugewiesen sind.
  • Das/die SoC(s) 1404 können ferner eine breite Palette von Peripherieschnittstellen beinhalten, um die Kommunikation mit Peripheriegeräten, Audio-Codecs, Leistungsverwaltungs- und/oder anderen Vorrichtungen zu ermöglichen. Das/die SoC(s) 1404 können verwendet werden, um Daten von Kameras (z. B. über Gigabit Multimedia Serial Link und Ethernet verbunden), Sensoren (z. B. LIDAR-Sensor(en) 1464, RADAR-Sensor(en) 1460 usw., die über Ethernet verbunden sein können), Daten vom Bus 1402 (z. B. Geschwindigkeit des Fahrzeugs 1400, Lenkradposition usw.), Daten von GNSS-Sensor(en) 1458 (z. B. über Ethernet oder CAN-Bus verbunden) zu verarbeiten. Das/die SoC(s) 1404 können ferner dedizierte Massenspeichersteuerungen mit hoher Performance beinhalten, die ihre eigenen DMA-Engines beinhalten können und die verwendet werden können, um die CPU(s) 1406 von routinemäßigen Datenverwaltungsaufgaben zu befreien.
  • Das/die SoC(s) 1404 können eine Ende-zu-Ende-Plattform mit einer flexiblen Architektur sein, welche die Automatisierungslevels 3-5 überspannt und dadurch eine umfassende funktionelle Sicherheitsarchitektur bereitstellt, die Techniken des maschinellen Sehens und des ADAS für Diversität und Redundanz nutzt und effizient einsetzt und eine Plattform für einen flexiblen, zuverlässigen Fahrsoftwarestapel zusammen mit Deep-Learning-Werkzeugen bereitstellt. Das/die SoC(s) 1404 können schneller, zuverlässiger und sogar energieeffizienter und raumeffizienter sein als herkömmliche Systeme. Zum Beispiel können der/die Beschleuniger 1414, wenn sie mit der/den CPU(s) 1406, der/den GPU(s) 1408 und dem/den Datenspeicher(n) 1416 kombiniert sind, eine schnelle, effiziente Plattform für autonome Fahrzeuge der Levels 3-5 bereitstellen.
  • Die Technologie stellt somit Fähigkeiten und Funktionen bereit, die mit herkömmlichen Systemen nicht erreicht werden können. Zum Beispiel können Algorithmen des maschinellen Sehens auf CPUs ausgeführt werden, die unter Verwendung einer Programmiersprache auf hohem Level, wie z. B. der Programmiersprache C, konfiguriert werden können, um eine große Vielfalt von Verarbeitungsalgorithmen über eine große Vielfalt von visuellen Daten auszuführen. Die CPUs sind jedoch oft nicht in der Lage, die Performance-Anforderungen vieler Anwendungen des maschinellen Sehens zu erfüllen, wie z. B. in Bezug auf die Ausführungszeit und den Leistungsverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, was eine Voraussetzung für fahrzeuginterne ADAS-Anwendungen und eine Voraussetzung für praktische autonome Fahrzeuge der Levels 3-5 ist.
  • Im Gegensatz zu herkömmlichen Systemen ermöglicht die hierin beschriebene Technologie durch die Bereitstellung eines CPU-Komplexes, eines GPU-Komplexes und eines Hardware-Beschleunigungsclusters, dass mehrere neuronale Netzwerke simultan und/oder sequentiell ausgeführt und die Ergebnisse miteinander kombiniert werden, um eine autonome Fahrfunktionalität der Levels 3-5 zu ermöglichen. Zum Beispiel kann ein CNN, das auf dem DLA oder der dGPU (z. B. den GPU(s) 1420) ausgeführt wird, eine Text- und Worterkennung beinhalten, die es dem Supercomputer ermöglicht, Verkehrszeichen zu lesen und zu verstehen, einschließlich Zeichen, für die das neuronale Netzwerk nicht speziell trainiert wurde. Der DLA kann ferner ein neuronales Netzwerk enthalten, das in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis davon bereitzustellen und dieses semantische Verständnis an die Pfadplanungsmodule weiterzugeben, die auf dem CPU-Komplex laufen.
  • Als ein anderes Beispiel können mehrere neuronale Netzwerke simultan ausgeführt werden, wie es für das Fahren bei Level 3, 4 oder 5 erforderlich ist. Zum Beispiel kann ein Warnschild mit der Aufschrift „Vorsicht: Blinkende Lichter weisen auf Vereisung hin“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzwerken unabhängig oder gemeinsam interpretiert werden. Das Schild selbst von einem ersten eingesetzten neuronalen Netzwerk (z. B. einem trainierten neuronalen Netzwerk) als Verkehrsschild identifiziert werden, der Text „Blinkende Lichter weisen auf Verweisung hin“ kann von einem zweiten eingesetzten neuronalen Netzwerk interpretiert werden, das die Pfadplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass, wenn blinkende Lichter erkannt werden, Vereisungen vorliegen. Das blinkende Licht kann identifiziert werden, indem ein drittes eingesetztes neuronales Netzwerk über mehrere Frames hinweg betrieben wird und die Pfadplanungssoftware des Fahrzeugs über das Vorhandensein (oder Nichtvorhandensein) von blinkenden Lichtern informiert. Alle drei neuronalen Netzwerke können simultan laufen, z. B. innerhalb des DLA und/oder auf der/den GPU(s) 1408.
  • In einigen Beispielen kann ein CNN zur Gesichtserkennung und Fahrzeugbesitzeridentifizierung Daten von Kamerasensoren verwenden, um das Vorhandensein eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 1400 zu identifizieren. Die stets eingeschaltete Sensorverarbeitungs-Engine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Besitzer der Fahrertür nähert und die Lichter einschaltet, und um im Sicherheitsmodus das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise stellen das/die SoC(s) 1404 Sicherheit gegen Diebstahl und/oder Carjacking bereit.
  • In einem anderen Beispiel kann ein CNN zur Erkennung und Identifizierung von Einsatzfahrzeugen Daten von Mikrofonen 1496 verwenden, um Sirenen von Einsatzfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifikatoren zur Erkennung von Sirenen verwenden und Merkmale manuell extrahieren, nutzen das/die SoC(s) 1404 das CNN zur Klassifizierung von Umgebungs- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. In einer bevorzugten Ausführungsform wird das auf dem DLA laufende CNN dafür trainiert, die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs zu identifizieren (z. B. durch Verwendung des Dopplereffekts). Das CNN kann auch dafür trainiert werden, Einsatzfahrzeuge zu identifizieren, die für das lokale Gebiet, in dem das Fahrzeug betrieben wird, spezifisch sind, wie durch den/die GNSS-Sensor(en) 1458 identifiziert. Somit versucht das CNN, wenn es in Europa betrieben wird, zum Beispiel europäische Sirenen zu erkennen, und in den Vereinigten Staaten versucht das CNN, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Einsatzfahrzeug erkannt wird, kann ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für Einsatzfahrzeuge auszuführen, um das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug im Leerlauf laufen zu lassen, und zwar mit der Hilde des Ultraschallsensors 1462, bis das/die Einsatzfahrzeug(e) vorbeigefahren ist/sind.
  • Das Fahrzeug kann eine oder mehrere CPU(s) 1418 (z. B. diskrete CPU(s) oder dCPU(s)) beinhalten, die über eine Hochgeschwindigkeitszusammenschaltung (z. B. PCle) mit dem/den SoC(s) 1404 gekoppelt sein können. Die CPU(s) 1418 können zum Beispiel einen X86-Prozessor beinhalten. Die CPU(s) 1418 können dazu verwendet werden, eine beliebige einer Vielfalt von Funktionen durchzuführen, einschließlich zum Beispiel der Vermittlung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem/den SoC(s) 1404 und/oder der Überwachung des Status und Zustands der Steuerung(en) 1436 und/oder des Infotainment-SoC 1430.
  • Das Fahrzeug 1400 kann eine oder mehrere GPU(s) 1420 (z. B. diskrete GPU(s) oder dGPU(s)) beinhalten, die über eine Hochgeschwindigkeitszusammenschaltung (z. B. NVLINK von NVIDIA) mit dem/den SoC(s) 1404 gekoppelt sein können. Die GPU(s) 1420 können eine zusätzliche Funktionalität für künstliche Intelligenz bereitstellen, z. B. durch Ausführen redundanter und/oder unterschiedlicher neuronaler Netzwerke, und können zum Trainieren und/oder Aktualisieren neuronaler Netzwerke verwendet werden, die auf Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 1400 basieren.
  • Das Fahrzeug 1400 kann ferner eine Netzwerkschnittstelle 1424 beinhalten, die eine oder mehrere drahtlose Antennen 1426 beinhalten kann (z. B. eine oder mehrere drahtlose Antennen für unterschiedliche Kommunikationsprotokolle, wie z. B. eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die Netzwerkschnittstelle 1424 kann verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z. B. mit dem/den Server(n) 1478 und/oder anderen Netzwerkvorrichtungen), mit anderen Fahrzeugen und/oder mit Rechenvorrichtungen (z. B. Client-Vorrichtungen von Fahrgästen) zu ermöglichen. Zur Kommunikation mit anderen Fahrzeugen kann eine direkte Verknüpfung zwischen den beiden Fahrzeugen hergestellt werden und/oder kann eine indirekte Verknüpfung (z. B. über Netzwerke und das Internet) hergestellt werden. Direkte Verknüpfungen unter Verwendung einer Fahrzeug-zu-Fahrzeug-Kommunikationsverknüpfung können bereitgestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverknüpfung kann dem Fahrzeug 1400 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 1400 bereitstellen (z. B. Fahrzeuge vor, neben und/oder hinter dem Fahrzeug 1400). Diese Funktionalität kann Teil einer kooperativen adaptiven Geschwindigkeitssteuerungsfunktionalität des Fahrzeugs 1400 sein.
  • Die Netzwerkschnittstelle 1424 kann ein SoC beinhalten, das eine Modulations- und Demodulationsfunktionalität bereitstellt und es der/den Steuerung(en) 1436 ermöglicht, über drahtlose Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 1424 kann ein Hochfrequenz-Frontend für die Aufwärtskonvertierung vom Basisband auf die Hochfrequenz und die Abwärtskonvertierung von der Hochfrequenz auf das Basisband beinhalten. Die Frequenzkonvertierungen können durch hinreichend bekannte Prozesse durchgeführt werden und/oder können unter Verwendung von Überlagerungsverfahren durchgeführt werden. In einigen Beispielen kann die Hochfrequenz-Frontend-Funktionalität durch einen separaten Chip bereitgestellt sein. Die Netzwerkschnittstelle kann eine drahtlose Funktionalität zur Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle beinhalten.
  • Das Fahrzeug 1400 ferner (einen) Datenspeicher 1428 beinhalten, die chipexternen (z. B. außerhalb des/der SoC(s) 1404) Speicher beinhalten können. Der/die Datenspeicher 1428 können ein oder mehrere Speicherelemente beinhalten, einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Vorrichtungen, die mindestens ein Datenbit speichern können.
  • Das Fahrzeug 1400 kann ferner (einen) GNSS-Sensor(en) 1458 beinhalten. Der/die GNSS-Sensor(en) 1458 (z. B. GPS- und/oder unterstützte GPS-Sensoren), um bei der Kartierung, Wahrnehmung, Erzeugung des Belegungsgitters und/oder Pfadplanungsfunktionen zu unterstützen. Eine beliebige Anzahl von GNSS-Sensor(en) 1458 kann verwendet werden, einschließlich zum Beispiel eines GPS unter Verwendung eines USB-Steckers mit einer Ethernet-zu-Seriell(RS-232)-Brücke.
  • Das Fahrzeug 1400 kann ferner (einen) RADAR-Sensor(en) 1460 beinhalten. Der/die RADAR-Sensor(en) 1460 können vom Fahrzeug 1400 zur Fahrzeugerkennung mit großer Reichweite verwendet werden, auch bei Dunkelheit und/oder schlechten Wetterbedingungen. Die RADAR-Funktionssicherheitslevel können ASIL B sein. Der/die RADAR-Sensor(en) 1460 können das CAN und/oder den Bus 1402 (z. B. zur Übertragung der von dem/den RADAR-Sensor(en) 1460 erzeugten Daten) zur Steuerung von und zum Zugriff auf Objektverfolgungsdaten verwenden, wobei in einigen Beispielen der Zugriff auf Rohdaten über Ethernet erfolgt. Eine große Vielfalt von RADAR-Sensorarten kann verwendet werden. Zum Beispiel und ohne Einschränkung können der/die RADAR-Sensor(en) 1460 für die Verwendung als Front-, Heck- und Seiten-RADAR geeignet sein. In einigen Beispielen werden Puls-Doppler-RADAR-Sensor(en) verwendet.
  • Der/die RADAR-Sensor(en) 1460 können unterschiedliche Konfigurationen beinhalten, z. B. große Reichweite mit schmalem Sichtfeld, geringe Reichweite mit breitem Sichtfeld, geringe Reichweite mit seitlicher Abdeckung usw. In einigen Beispielen kann RADAR mit großer Reichweite für die adaptive Geschwindigkeitssteuerungsfunktionalität verwendet werden. Die RADAR-Systeme mit großer Reichweite können ein breites Sichtfeld bereitstellen, das durch zwei oder mehr unabhängige Scans realisiert wird, z. B. innerhalb einer Reichweite von 250 m. Der/die RADAR-Sensor(en) 1460 können dabei helfen, zwischen statischen und sich bewegenden Objekten zu unterscheiden, und können vom ADAS-System für den Notbremsassistenten und die Vorwärtskollisionswarnung verwendet werden. RADAR-Sensoren mit großer Reichweite können ein monostatisches multimodales RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle beinhalten. In einem Beispiel mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlenmuster erzeugen, das dazu konstruiert ist, die Umgebung des Fahrzeugs 1400 bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr auf den benachbarten Fahrspuren aufzuzeichnen. Die beiden anderen Antennen können das Sichtfeld erweitern, wodurch es möglich ist, Fahrzeuge, die in die Fahrspur des Fahrzeugs 1400 einfahren oder diese verlassen, schnell zu erkennen.
  • RADAR-Systeme mit mittlerer Reichweite können beispielsweise eine Reichweite von bis zu 1460 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 1450 Grad (hinten) beinhalten. RADAR-Systeme mit geringer Reichweite können ohne Einschränkung RADAR-Sensoren beinhalten, die für die Installation an beiden Enden des hinteren Stoßfängers konstruiert sind. Wenn es an beiden Enden des hinteren Stoßfängers installiert ist, kann ein solches RADAR-Sensorsystem zwei Strahlen erzeugen, die den toten Winkel hinter und neben dem Fahrzeug konstant überwachen.
  • RADAR-Systeme mit geringer Reichweite können in einem ADAS-System zur Erkennung des toten Winkels und/oder zur Unterstützung beim Fahrspurwechsel verwendet werden.
  • Das Fahrzeug 1400 kann ferner (einen) Ultraschallsensor(en) 1462 beinhalten. Der/die Ultraschallsensor(en) 1462, die vorne, hinten und/oder an den Seiten des Fahrzeugs 1400 positioniert sein können, können als Einparkhilfe und/oder zur Erstellung und Aktualisierung eines Belegungsgitters verwendet werden. Eine große Vielfalt von Ultraschallsensor(en) 1462 kann verwendet werden und unterschiedliche Ultraschallsensor(en) 1462 können für unterschiedliche Erkennungsreichweiten (z. B. 2,5 m, 4m) verwendet werden. Der/die Ultraschallsensor(en) 1462 können bei funktionellen Sicherheitslevels von ASIL B arbeiten.
  • Das Fahrzeug 1400 kann (einen) LIDAR-Sensor(en) 1464 beinhalten. Der/die LIDAR-Sensor(en) 1464 können zur Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder für andere Funktionen verwendet werden. Der/die LIDAR-Sensor(en) 1464 können dem funktionellen Sicherheitslevel ASIL B entsprechen. In einigen Beispielen kann das Fahrzeug 1400 mehrere LIDAR-Sensoren 1464 (z. B. zwei, vier, sechs usw.) beinhalten, die Ethernet verwenden können (um z. B. Daten für einen Gigabit-Ethernet-Switch bereitzustellen).
  • In einigen Beispielen können der/die LIDAR-Sensor(en) 1464 in der Lage sein, eine Liste von Objekten und deren Abstände für ein 360-Grad-Sichtfeld bereitzustellen. Handelsübliche LIDAR-Sensor(en) 1464 können zum Beispiel eine beworbene Reichweite von ungefähr 1400 m aufweisen, mit einer Genauigkeit von 2 cm-3 cm und mit Unterstützung für eine 1400-Mbps-Ethernet-Verbindung. In einigen Beispielen können ein oder mehrere nicht vorstehende LIDAR-Sensoren 1464 verwendet werden. In solchen Beispielen können der/die LIDAR-Sensor(en) 1464 als eine kleine Vorrichtung implementiert werden, das in die Front, das Heck, die Seiten und/oder die Ecken des Fahrzeugs 1400 eingebettet werden kann. In solchen Beispielen können der/die LIDAR-Sensor(en) 1464 ein horizontales Sichtfeld von bis zu 1420 Grad und ein vertikales Sichtfeld von bis zu 35 Grad mit einer Reichweite von 200 m selbst bei Objekten mit niedrigem Reflexionsvermögen bereitstellen. Der/die an der Front montierte(n) LIDAR-Sensor(en) 1464 können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert sein.
  • In einigen Beispielen können auch LIDAR-Technologien, wie z. B. 3D-Blitz-LIDAR, verwendet werden. 3D-Blitz-LIDAR verwendet einen Blitz eines Lasers als eine Übertragungsquelle, um die Umgebung des Fahrzeugs bis zu ungefähr 200 m zu erleuchten. Eine Blitz-LIDAR-Einheit beinhaltet einen Rezeptor, der die Laserpuls-Laufzeit und das reflektierte Licht an jedem Pixel aufzeichnet, was wiederum der Reichweite vom Fahrzeug zu den Objekten entspricht. Blitz-LIDAR kann es ermöglichen, dass mit jedem Laserblitz hochgenaue und verzerrungsfreie Bilder der Umgebung erzeugt werden. In einigen Beispielen können vier Blitz-LIDAR-Sensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 1400. Verfügbare 3D-Blitz-LIDAR-Systeme beinhalten eine Festkörper-3D-Staring-Array-LIDAR-Kamera ohne bewegliche Teile außer einem Lüfter (z. B. eine nicht scannende LIDAR-Vorrichtung). Die Blitz-LIDAR-Vorrichtung kann einen 5-Nanosekunden-Laserpuls der Klasse I (augensicher) pro Frame verwenden und kann das reflektierte Laserlicht in Form von 3D-Reichweitenpunktwolken und gemeinsam registrierten Intensitätsdaten erfassen. Durch die Verwendung von Blitz-LIDAR und da Flash-LIDAR eine Festkörpervorrichtung ohne bewegliche Teile ist, können der/die LIDAR-Sensor(en) 1464 weniger anfällig für Bewegungsunschärfe, Vibrationen und/oder Stöße sein.
  • Das Fahrzeug kann ferner (einen) IMU-Sensor(en) 1466 beinhalten. Der/die IMU-Sensor(en) 1466 können in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 1400 angeordnet sein. Der/die IMU-Sensor(en) 1466 können zum Beispiel und ohne Einschränkung (einen) Beschleunigungsmesser, (ein) Magnetometer, (ein) Gyroskop(e), (einen) Magnetkompass(e) und/oder andere Sensorarten beinhalten. In einigen Beispielen, wie z. B. bei sechsachsigen Anwendungen, können der/die IMU-Sensor(en) 1466 Beschleunigungsmesser und Gyroskope beinhalten, während der/die IMU-Sensor(en) 1466 bei neunachsigen Anwendungen Beschleunigungsmesser, Gyroskope und Magnetometer beinhalten können.
  • In einigen Ausführungsformen können der/die IMU-Sensor(en) 1466 als ein miniaturisiertes GPS-gestütztes Trägheitsnavigationssystem (GPS-Aided Inertial Navigation System - GPS/INS) mit hoher Performance implementiert sein, das Trägheitssensoren von mikroelektromechanischen Systemen (MEMS), einen hochempfindlichen GPS-Empfänger und weiterentwickelte Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Stellung bereitzustellen. Daher können in einigen Beispielen der/die IMU-Sensor(en) 1466 es dem Fahrzeug 1400 ermöglichen, den Kurs zu schätzen, ohne dass Eingaben von einem Magnetsensor erforderlich sind, indem vom GPS an den/die IMU-Sensor(en) 1466 die Änderungen der Geschwindigkeit direkt beobachtet und korreliert werden. In einigen Beispielen können der/die IMU-Sensor(en) 1466 und der/die GNSS-Sensor(en) 1458 in einer einzelnen integrierten Einheit kombiniert werden.
  • Das Fahrzeug kann Mikrofon(e) 1496 beinhalten, die im und/oder um das Fahrzeug 1400 herum platziert sind. Das/die Mikrofon(e) 1496 können unter anderem zur Erkennung und Identifizierung von Einsatzfahrzeugen verwendet werden.
  • Das Fahrzeug kann ferner eine beliebige Anzahl von Kameraarten beinhalten, darunter (eine) Stereokamera(s) 1468, (eine) Weitsichtkamera(s) 1470, (eine) Infrarotkamera(s) 1472, (eine) Rundumkamera(s) 1474, (eine) Langstrecken- und/oder Mittelstreckenkamera(s) 1498 und/oder andere Kameraarten. Die Kameras können verwendet werden, um Bilddaten um die gesamte Peripherie des Fahrzeugs 1400 herum zu erfassen. Welche Kameraarten verwendet werden, hängt von den Ausführungsformen und Anforderungen für das Fahrzeug 1400 ab und es kann eine beliebige Kombination von Kameraarten verwendet werden, um die notwendige Abdeckung um das Fahrzeug 1400 herum bereitzustellen. Darüber hinaus kann die Anzahl der Kameras in Abhängigkeit von der Ausführungsform unterschiedlich sein. Das Fahrzeug kann zum Beispiel sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras und/oder eine andere Anzahl von Kameras beinhalten. Die Kameras können zum Beispiel und ohne Einschränkung Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede der Kamera(s) ist hierin in Bezug auf 14A und 14B detaillierter beschrieben.
  • Das Fahrzeug 1400 kann ferner (einen) Vibrationssensor(en) 1442 beinhalten. Der/die Vibrationssensor(en) 1442 können Vibrationen von Komponenten des Fahrzeugs, wie z. B. der Achse(n), messen. Zum Beispiel können Änderungen der Vibrationen eine Änderung des Straßenbelags angeben. In einem anderen Beispiel, wenn zwei oder mehr Vibrationssensoren 1442 verwendet werden, können die Unterschiede zwischen den Vibrationen verwendet werden, um die Reibung oder den Schlupf des Straßenbelags zu bestimmen (z. B., wenn der Unterschied der Vibration zwischen einer leistungsbetriebenen Achse und einer sich frei drehenden Achse besteht).
  • Das Fahrzeug 1400 kann ein ADAS-System 1438 beinhalten. Das ADAS-System 1438 kann in einigen Beispielen ein SoC beinhalten. Das ADAS-System 1438 kann eine autonome/adaptive/automatische Geschwindigkeitssteuerung (ACC), eine kooperative adaptive Geschwindigkeitssteuerung (cooperative adaptive cruise control - CACC), eine Vorwärtszusammenstoßwarnung (forward crash warning - FCW), eine automatische Notbremsung (AEB), eine Spurverlassenswarnung (lane departure warning - LDW), einen Spurhalteassistenten (lane keep assist -LKA), eine Totwinkelwarnung (blind spot warning - BSW), einen Querverkehrswarnung (rear cross-traffic warning - RCTW), ein Kollisionswarnsystem (collision warning System - CWS), eine Spurenzentrierung (lane centering - LC) und/oder andere Merkmale und Funktionalitäten beinhalten.
  • Die ACC-Systeme können RADAR-Sensor(en) 1460, LIDAR-Sensor(en) 1464 und/oder (eine) Kamera(s) verwenden. Die ACC-Systeme können Längs-ACC und/oder Quer-ACC beinhalten. Die Längs-ACC überwacht und steuert den Abstand zum unmittelbar vorausfahrenden Fahrzeug 1400 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen sicheren Abstand zu vorausfahrenden Fahrzeugen einzuhalten. Die Quer-ACC führt eine Abstandshaltung durch und rät dem Fahrzeug 1400, die Fahrspuren zu wechseln, wenn dies erforderlich ist. Die Quer-ACC ist mit anderen ADAS-Anwendungen, wie zum Beispiel LCA und CWS, verbunden.
  • Die CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 1424 und/oder die drahtlose(n) Antenne(n) 1426 von anderen Fahrzeugen über eine drahtlose Verknüpfung oder indirekt über eine Netzwerkverbindung (z. B. über das Internet) empfangen werden können. Direkte Verknüpfungen können durch eine Fahrzeug-zu-Fahrzeug(F-F)-Kommunikationsverknüpfung bereitgestellt werden, während indirekte Verknüpfungen eine Infrastruktur-zu-Fahrzeug(I-F)-Kommunikationsverknüpfung sein können. Im Allgemeinen stellt das F-F-Kommunikationskonzept Informationen über unmittelbar vorausfahrende Fahrzeuge (z. B. Fahrzeuge, die sich unmittelbar vor dem und auf derselben Spur wie das Fahrzeug 1400 befinden) bereit, während das 1-F-Kommunikationskonzept Informationen über den weiter entfernt vorausfahrenden Verkehr bereitstellt. Die CACC-System können entweder eine oder beide der 1-F- und F-F-Informationsquellen beinhalten. Angesichts der Informationen der Fahrzeuge vor dem Fahrzeug 1400 kann die CACC zuverlässiger sein und sie hat das Potenzial, die Gleichmäßigkeit des Verkehrsfluss zu verbessern und Staus auf der Straße zu reduzieren.
  • FCW-Systeme sind so konstruiert, dass sie den Fahrer auf eine Gefahr aufmerksam machen, sodass der Fahrer eine korrigierend Handlung durchführen kann. FCW-Systeme verwenden eine nach vorn gerichtete Kamera und/oder RADAR-Sensor(en) 1460, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente. FCW-Systeme können eine Warnung bereitstellen, z. B. in Form eines Tons, einer optischen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.
  • AEB-Systeme erkennen eine drohende Vorwärtskollision mit einem anderen Fahrzeug oder einem anderen Objekt und können automatisch die Bremsen betätigen, wenn der Fahrer nicht innerhalb eines spezifizierten Zeit- oder Abstandsparameters eine korrigierende Handlung durchführt. AEB-Systeme können (eine) nach vom gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1460 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, warnt das AEB-System typischerweise zuerst den Fahrer, um eine korrigierende Handlung durchzuführen, um die Kollision zu vermeiden, und, wenn der Fahrer keine korrigierenden Handlung durchführt, kann das AEB-System automatisch die Bremsen in dem Bestreben betätigen, die Auswirkungen der vorhergesagten Kollision zu verhindern oder mindestens abzuschwächen. AEB-Systeme können Techniken, wie zum Beispiel dynamische Bremsunterstützung und/oder Bremsung aufgrund eines bevorstehenden Zusammenstoßes, beinhalten.
  • LDW-Systeme stellen optische, akustische und/oder taktile Warnungen bereit, wie z. B. Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 1400 die Fahrspurmarkierungen überquert. Ein LDW-System wird nicht aktiviert, wenn der Fahrer ein absichtliches Verlassen der Fahrspur durch Aktivieren eines Blinkers angibt. LDW-Systeme können nach vorn gerichtete Kameras verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • LKA-Systeme sind eine Variation der LDW-Systeme. LKA-Systeme stellen eine Lenkeingabe oder eine Bremsung bereit, um das Fahrzeug 1400 zu korrigieren, wenn das Fahrzeug 1400 beginnt, die Fahrspur zu verlassen.
  • BSW-Systeme erkennen und warnen den Fahrer vor Fahrzeugen im toten Winkel eines Automobils. BSW-Systeme können einen optischen, akustischen und/oder taktilen Alarm bereitstellen, um anzugeben, dass Einfädeln in oder Wechseln der Fahrspuren unsicher ist. Das System kann eine zusätzliche Warnung bereitstellen, wenn der Fahrer einen Blinker verwendet. BSW-Systeme können (eine) nach hinten gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1460 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • RCTW-Systeme können eine optische, akustische und/oder taktile Benachrichtigung bereitstellen, wenn ein Objekt außerhalb der Reichweite der Heckkamera erkannt wird, wenn das Fahrzeug 1400 rückwärts fährt. Einige RCTW-Systeme beinhalten AEB, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Zusammenstoß zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete RADAR-Sensor(en) 1460 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • Herkömmliche ADAS-Systeme können anfällig für falsch positive Ergebnisse sein, die für den Fahrer ärgerlich und ablenkend sein können, aber typischerweise nicht katastrophal sind, da die ADAS-Systeme den Fahrer warnen und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung wirklich vorliegt und entsprechend zu handeln. In einem autonomen Fahrzeug 1400 muss das Fahrzeug 1400 jedoch im Falle widersprüchlicher Ergebnisse selbst entscheiden, ob es das Ergebnis eines primären Computers oder eines sekundären Computers (z. B. einer ersten Steuerung 1436 oder einer zweiten Steuerung 1436) beachtet. Das ADAS-System 1438 kann in einigen Ausführungsformen beispielsweise ein Backup- und/oder sekundärer Computer sein, der Wahrnehmungsinformationen für ein Rationalitätsmodul eines Backup-Computers bereitstellt. Der Rationalitätsmonitor des Backup-Computers kann eine redundante, diverse Software auf Hardware-Komponenten ausführen, um Fehler in der Wahrnehmung und bei dynamischen Fahraufgaben zu erkennen. Ausgaben des ADAS-Systems 1438 können für eine Kontroll-MCU bereitgestellt werden. Wenn Ausgaben des primären Computers und des sekundären Computers einander widersprechen, muss die Kontroll-MCU bestimmen, wie der Widerspruch beizulegen ist, um einen sicheren Betrieb sicherzustellen.
  • In einigen Beispielen kann der primäre Computer so konfiguriert sein, dass er der Kontroll-MCU eine Konfidenzbewertung bereitstellt, welche die Konfidenz des primären Computers in das gewählte Ergebnis angibt. Wenn die Konfidenzbewertung einen Schwellenwert überschreitet, kann die Kontroll-MCU der Führung des primären Computers folgen, unabhängig davon, ob der sekundäre Computer ein widersprüchliches oder inkonsistentes Ergebnis bereitstellt. Wenn die Konfidenzbewertung den Schwellenwert nicht erreicht und wenn der primäre und der sekundäre Computer unterschiedliche Ergebnisse angeben (z. B. den Widerspruch), kann die Kontroll-MCU zwischen den Computern vermitteln, um das geeignete Resultat zu bestimmen.
  • Die Kontroll-MCU kann so konfiguriert sein, dass sie ein neuronales Netzwerk/neuronale Netzwerke ausführt, das/die so trainiert und konfiguriert ist/sind, dass es/sie basierend auf den Ausgaben des primären Computers und des sekundären Computers die Bedingungen bestimmt/bestimmen, unter denen der sekundäre Computer Fehlalarme bereitstellt. Somit kann/können das neuronale Netzwerk/die neuronalen Netzwerke in der Kotroll-MCU lernen, wann der Ausgabe des sekundären Computers vertraut werden kann und wann nicht. Zum Beispiel kann/können, wenn der sekundäre Computer ein RADAR-basiertes FCW-System ist, ein neuronales Netzwerk/neuronale Netzwerke in der Kontroll-MCU lernen, wenn das FCW-System metallische Objekte identifiziert, die tatsächlich keine Gefahren sind, wie z. B. ein Abflussgitter oder ein Gullydeckel, das/der einen Alarm auslöst. Auf ähnliche Weise, wenn der sekundäre Computer ein kamerabasiertes LDW-System ist, kann ein neuronales Netzwerk in der Kontroll-MCU lernen, die LDW zu überschreiben, wenn Fahrradfahrer oder Fußgänger vorhanden sind und ein Verlassen der Fahrspur tatsächlich das sicherste Manöver ist. In Ausführungsformen, die ein neuronales Netzwerk/neuronale Netzwerke beinhalten, das/die auf der Kontroll-MCU läuft/laufen, kann die Kontroll-MCU mindestens eines von einem DLA oder einer GPU beinhalten, der/die für die Ausführung von (einem) neuronalen Netzwerk(en) mit assoziiertem Speicher geeignet ist. In bevorzugten Ausführungsformen kann die Kontroll-MCU eine Komponente des/der SoC(s) 1404 umfassen und/oder als solche enthalten sein.
  • In anderen Beispielen kann das ADAS-System 1438 einen sekundären Computer beinhalten, der die ADAS-Funktionalität unter Verwendung der traditionellen Regeln der maschinellen Sehens durchführt. Daher kann der sekundäre Computer klassische Regeln des maschinellen Sehens (wenn-dann) verwenden und kann das Vorhandensein eines neuronalen Netzwerks/von neuronalen Netzwerken in der Kontroll-MCU die Zuverlässigkeit, Sicherheit und Performance verbessern. Zum Beispiel macht die vielfältige Implementation und absichtliche Nicht-Identität das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch Software(oder Software-Hardware-Schnittstellen)-Funktionalität verursacht werden. Wenn zum Beispiel ein Software-Bug oder -Fehler in der auf dem primären Computer laufenden Software vorliegt und ein nicht identischer Software-Code, der auf dem sekundären Computer läuft, dasselbe Gesamtergebnis bereitstellt, kann die Kontroll-MCU eine größere Konfidenz darin haben, 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 1438 in den Wahrnehmungsblock des primären Computers und/oder in den Block für dynamische Fahraufgaben des primären Computers eingespeist werden. Wenn das ADAS-System 1438 z. B. eine Vorwärtszusammenstoßwarnung aufgrund eines unmittelbar vorausliegenden Objekts angibt, kann der Wahrnehmungsblock diese Information bei der Identifizierung von Objekten verwenden. In anderen Beispielen kann der sekundäre Computer über sein eigenes neuronales Netzwerk verfügen, das trainiert ist und somit das Risiko von falsch positiven Ergebnissen reduziert, wie hierin beschrieben.
  • Das Fahrzeug 1400 kann ferner das Infotainment-SoC 1430 (z. B. ein fahrzeuginternes Infotainment-System (in-vehicle infotainment system - IVI-System)) beinhalten. Obwohl als ein SoC veranschaulicht und beschrieben, kann das Infotainment-System kein SoC sein und kann zwei oder mehr diskrete Komponenten beinhalten. Das Infotainment-SoC 1430 kann eine Kombination aus Hardware und Software enthalten, 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. Freisprechen), Netzwerkkonnektivitäts- (z. B. LTE, Wi-Fi usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Rückwärtseinparkhilfe, ein Radiodatensystem, fahrzeugbezogene Informationen wie Kraftstofffüllstand, insgesamt zurückgelegte Gesamtstrecke, Bremskraftstofffüllstand, Ölfüllstand, Tür öffnen/schließen, Luftfilterinformationen usw.) für das Fahrzeug 1400 bereitzustellen. Das Infotainment-SoC 1430 kann beispielsweise Radios, Plattenspieler, Navigationssysteme, Videowiedergabevorrichtungen, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, Wi-Fi, Audiosteuerungen am Lenkrad, eine Freisprech-Sprachsteuerung, eine Heads-up-Anzeige (heads-up display - HUD), eine HMI-Anzeige 1434, eine Telematikvorrichtung, ein Steuerfeld (z. B. zur Steuerung von und/oder Interaktion mit verschiedenen Komponenten, Merkmalen und/oder Systemen) und/oder andere Komponenten beinhalten. Das Infotainment-SoC 1430 kann ferner dazu verwendet werden, um (einem) Benutzer(n) des Fahrzeugs Informationen (z. B. optisch und/oder akustisch) bereitzustellen, wie z. B. Informationen vom ADAS-System 1438, Informationen zum autonomen Fahren, wie z. B. geplante Fahrzeugmanöver, Trajektorien, Umgebungsinformationen (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.
  • Das Infotainment-SoC 1430 kann eine GPU-Funktionalität beinhalten. Das Infotainment-SoC 1430 kann über den Bus 1402 (z. B. CAN-Bus, Ethernet usw.) mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 1400 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 1430 mit einer Kontroll-MCU gekoppelt sein, sodass die GPU des Infotainment-Systems einige Selbstfahrfunktionen ausführen kann, falls die primäre(n) Steuerung(en) 1436 (z. B. die primären und/oder Backup-Computer des Fahrzeugs 1400) ausfallen. In einem solchen Beispiel kann das Infotainment-SoC 1430 das Fahrzeug 1400 in einen Modus des Chauffierens zu einem sicheren Halt versetzen, wie hierin beschrieben.
  • Das Fahrzeug 1400 kann ferner ein Kombiinstrument 1432 (z. B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.) beinhalten. Das Kombiinstrument 1432 kann eine Steuerung und/oder einen Supercomputer (z. B. eine diskrete Steuerung oder einen diskreten Supercomputer) beinhalten. Das Kombiinstrument 1432 kann einen Satz von Messausrüstung enthalten, wie z. B. Geschwindigkeitsmesser, Kraftstoffstand, Öldruck, Drehzahlmesser, Wegstreckenzähler, Blinker, Schaltknüppelpositionsangabe, Sicherheitsgurt-Warnleuchte(n), Feststellbremsen-Warnleuchte(n), Motor-Fehlfunktionsleuchte(n), Airbag(SRS)-Systeminformationen, Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen usw. In einigen Beispielen können Informationen angezeigt und/oder zwischen dem Infotainment-SoC 1430 und dem Kombiinstrument 1432 gemeinsam genutzt werden. Anders ausgedrückt kann das Kombiinstrument 1432 als Teil des Infotainment-SoC 1430 enthalten sein oder umgekehrt.
  • 14D ist ein Systemdiagramm zur Kommunikation zwischen (einem) cloudbasierten Server(n) und dem beispielhaften autonomen Fahrzeug 1400 aus 14A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das System 1476 kann den/die Server 1478, das/die Netzwerk(e) 1490 und Fahrzeuge, einschließlich des Fahrzeugs 1400, beinhalten. Der/die Server 1478 können eine Vielzahl von GPUs 1484(A)-1484(H) (hierin kollektiv als GPUs 1484 bezeichnet), PCIe-Switches 1482(A)-1482(H) (hierin kollektiv als PCIe-Switches 1482 bezeichnet) und/oder CPUs 1480(A)-1480(B) (hierin kollektiv als CPUs 1480 bezeichnet) beinhalten. Die GPUs 1484, CPUs 1480 und PCIe-Switches können mit Hochgeschwindigkeitszusammenschaltungen miteinander verbunden sein, wie z. B. und ohne Einschränkung den von NVIDIA entwickelten NVLink-Schnittstellen 1488 und/oder PCIe-Verbindungen 1486. In einigen Beispielen sind die GPUs 1484 über NVLink- und/oder NVSwitch-SoC verbunden und sind die GPUs 1484 und die PCIe-Switches 1482 über PCIe-Zusammenschaltungen verbunden. Obwohl acht GPUs 1484, zwei CPUs 1480 und zwei PCIe-Switches veranschaulicht sind, soll dies nicht einschränkend sein. In Abhängigkeit von der Ausführungsform kann jeder des Servers/der Server 1478 eine beliebige Anzahl von GPUs 1484, CPUs 1480 und/oder PCIe-Switches beinhalten. Der/die Server 1478 können beispielsweise jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 1484 beinhalten.
  • Der/die Server 1478 können über das/die Netzwerk(e) 1490 und von den Fahrzeugen Bilddaten empfangen, die Bilder darstellen, die unerwartete oder veränderte Straßenbedingungen zeigen, wie z. B. kürzlich begonnene Straßenarbeiten. Der/die Server 1478 können über das/die Netzwerk(e) 1490 und an die Fahrzeuge neuronale Netzwerke 1492, aktualisierte neuronale Netzwerke 1492 und/oder Karteninformationen 1494 übertragen, einschließlich Informationen über Verkehrs- und Straßenbedingungen. Die Aktualisierungen der Karteninformationen 1494 können Aktualisierungen für die HD-Karte 1422 beinhalten, wie z. B. Informationen über Baustellen, Schlaglöcher, Umleitungen, Überschwemmungen und/oder andere Hindernisse. Die neuronalen Netzwerke 1492, die aktualisierten neuronalen Netzwerke 1492 und/oder die Karteninformationen 1494 können aus einem neuen Training und/oder Erfahrungen resultieren, das/die in Daten dargestellt wird/werden, die von einer beliebigen Anzahl von Fahrzeugen in der Umgebung empfangen wurden, und/oder basierend auf Training, das in einem Rechenzentrum (z. B. unter Verwendung von dem/den Server(n) 1478 und/oder anderen Servern) durchgeführt wurde.
  • Der/die Server 1478 können verwendet werden, um Modelle des maschinellen Lernens (z. B. neuronale Netzwerke) basierend auf Trainingsdaten zu trainieren. Die Trainingsdaten können von den Fahrzeugen erzeugt werden und/oder können sie in einer Simulation (z. B. unter Verwendung einer Spiele-Engine) erzeugt werden. In einigen Beispielen werden die Trainingsdaten gekennzeichnet (z. B., wenn das neuronale Netzwerk von überwachtem Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen, während in anderen Beispielen die Trainingsdaten nicht gekennzeichnet und/oder vorverarbeitet werden (z. B., wenn das neuronale Netzwerk kein überwachtes Lernen benötigt). Sobald die Modelle des maschinellen Lernens trainiert sind, können die Modelle des maschinellen Lernens von den Fahrzeugen verwendet werden (z. B. über das/die Netzwerk(e) 1490 an die Fahrzeuge übertragen werden und/oder können die Modelle des maschinellen Lernens von dem/den Server(n) 1478 verwendet werden, um die Fahrzeuge aus der Ferne zu überwachen.
  • In einigen Beispielen können der/die Server 1478 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netzwerke zur intelligenten Echtzeit-Ableitung anwenden. Der/die Server 1478 können Deep-Learning-Supercomputer und/oder dedizierte KI-Computer beinhalten, die von GPU(s) 1484 angetrieben werden, wie z. B. die von NVIDIA entwickelten DGX- und DGX-Station-Maschinen. In einigen Beispielen können der/die Server 1478 jedoch eine Deep-Learning-Infrastruktur beinhalten, die nur CPU-angetriebene Rechenzentren verwendet.
  • Die Deep-Learning-Infrastruktur des Servers/der Server 1478 kann zur schnellen Echtzeit-Ableitung in der Lage sein und kann diese Fähigkeit nutzen, um den Zustand der Prozessoren, der Software und/oder der assoziierten Hardware im Fahrzeug 1400 zu bewerten und zu verifizieren. Zum Beispiel kann die Deep-Learning-Infrastruktur periodische Aktualisierungen vom Fahrzeug 1400 empfangen, wie z. B. eine Sequenz von Bildern und/oder Objekte, die das Fahrzeug 1400 in dieser Sequenz von Bildern lokalisiert hat (z. B. über maschinelles Sehen und/oder andere Objekt-Klassifizierungstechniken des maschinellen Lernens). Die Deep-Learning-Infrastruktur kann ihr eigenes neuronales Netzwerk laufen lassen, um die Objekte zu identifizieren und sie mit den Objekten zu vergleichen, die vom Fahrzeug 1400 identifiziert wurden, und wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 1400 eine Fehlfunktion aufweist, können der/die Server 1478 ein Signal an das Fahrzeug 1400 übertragen, das einen ausfallsicheren Computer des Fahrzeugs 1400 anweist, die Kontrolle zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • Zum Ableiten können der/die Server 1478 die GPU(s) 1484 und einen oder mehrere programmierbare Ableitungsbeschleuniger (z. B. TensorRT von NVIDIA) beinhalten. Die Kombination von GPU-angetriebenen Servern und Ableitungsbeschleunigung kann eine Echtzeit-Reaktionsfähigkeit ermöglichen. In anderen Beispielen, wenn z. B. die Performance weniger kritisch ist, können von CPUs, FPGAs und anderen Prozessoren angetriebene Server für die Ableitung verwendet werden.
  • Beispielhafte Rechenvorrichtung
  • 15 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung 1500, die zur Verwendung bei der Implementation einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Die Rechenvorrichtung 1500 kann einen Bus 1502 beinhalten, der die folgenden Vorrichtungen direkt oder indirekt aneinanderkoppelt: Speicher 1504, eine oder mehrere zentrale Verarbeitungseinheiten (central processing units - CPUs) 1506, eine oder mehrere Grafikverarbeitungseinheiten (graphics processing units - GPUs) 1508, eine Kommunikationsschnittstelle 1510, Eingabe-/Ausgabe(E/A)-Anschlüsse 1512, Eingabe-/Ausgabekomponenten 1514, eine Leistungsversorgung 1516 und eine oder mehrere Darstellungskomponenten 1518 (z. B. Anzeige(n)).
  • Obwohl die verschiedenen Blöcke aus 15 mit Linien als über den Bus 1502 verbunden gezeigt sind, soll dies nicht einschränkend sein, und es dient nur der Eindeutigkeit. Zum Beispiel kann in einigen Ausführungsformen eine Darstellungskomponente 1518, wie etwa eine Anzeigevorrichtung, als E/A-Komponente 1514 angesehen werden (falls die Anzeige z. B. ein Touchscreen ist). Als ein anderes Beispiel können die CPUs 1506 und/oder die GPUs 1508 Speicher beinhalten (z. B. kann der Speicher 1504 für eine Speichervorrichtung zusätzlich zu dem Speicher der GPUs 1508, der CPUs 1506 und/oder anderer Komponenten repräsentativ sein). Mit anderen Worten ist die Rechenvorrichtung aus 15 lediglich veranschaulichend. Es wird keine Unterscheidung zwischen solchen Kategorien wie etwa „Arbeitsstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Vorrichtung“, „mobile Vorrichtung“, „Handheld-Vorrichtung“, „Spielekonsole“, „elektronische Steuereinheit (electronic control unit - ECU)“, „Virtual-Reality-System“, „Automobil-Rechenvorrichtung“ und/oder anderen Vorrichtungs- oder Systemarten vorgenommen, wie sie alle im Umfang der Rechenvorrichtung aus 15 in Betracht gezogen werden. In einigen Ausführungsformen können eine oder mehrere Komponenten, die hierin in Bezug auf 15 beschrieben sind, von dem hierin beschriebenen Fahrzeug 1400 verwendet werden. Beispielsweise können die CPUs 1506, die GPUs 1508 und/oder andere Komponenten einer oder mehreren hierin beschriebenen Komponenten des Fahrzeugs 1400 ähnlich sein oder deren Funktionen durchführen.
  • Der Bus 1502 kann einen oder mehrere Busse darstellen, wie etwa einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Der Bus 1502 kann eine oder mehrere Busarten beinhalten, wie etwa einen Industry-Standard-Architecture(ISA)-Bus, einen Extended-Industry-Standard-Architecture(EISA)-Bus, einen Video-Electronics-Standards-Association(VESA)-Bus, einen Peripheral-Component-Interconnect(PCI)-Bus, einen Peripheral-Component-Interconnect-Express(PCIe)-Bus und/oder eine andere Busart.
  • Der Speicher 1504 kann beliebige von vielfältigen computerlesbaren Medien beinhalten. Die computerlesbaren Medien können beliebige verfügbare Medien sein, auf die durch die Rechenvorrichtung 1500 zugegriffen werden kann. Die computerlesbaren Medien können sowohl flüchtige als auch nicht flüchtige Medien sowie entfernbare und nicht entfernbare Medien beinhalten. Beispielhaft und nicht zur Einschränkung können die computerlesbaren Medien Computerspeichermedien und Kommunikationsmedien umfassen.
  • Die Computerspeichermedien können sowohl flüchtige als auch nicht flüchtige und/oder entfernbare und nicht entfernbare Medien beinhalten, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen wie etwa computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder anderen Datentypen implementiert sind. Zum Beispiel kann der Speicher 1504 computerlesbare Anweisungen speichern (die z. B. ein Programm(e) und/oder ein Programmelement(e) darstellen), wie etwa ein Betriebssystem. Computerspeichermedien können unter anderem RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM, Digital Versatile Disks (DVD) oder anderen optischen Plattenspeicher, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium beinhalten, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das durch die Rechenvorrichtung 1500 zugegriffen werden kann. Wie hierin verwendet, umfassen Computerspeichermedien keine Signale an sich.
  • Die Kommunikationsmedien können computerlesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datenarten in einem modulierten Datensignal, wie etwa einer Trägerwelle oder einem anderen Transportmechanismus, verkörpern und beinhalten beliebige Informationsübermittlungsmedien. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, bei dem eine oder mehrere seiner Eigenschaften derart festgelegt oder geändert sind, dass Informationen in dem Signal codiert werden. Beispielhaft und nicht zur Einschränkung können die Kommunikationsmedien drahtgebundene Medien, wie etwa ein drahtgebundenes Netzwerk oder eine direkt verdrahtete Verbindung, sowie drahtlose Medien, wie etwa akustische Medien, HF-Medien, Infrarotmedien und andere drahtlose Medien, beinhalten. Kombinationen aus beliebigen der Vorstehenden sollten ebenfalls im Umfang von computerlesbaren Medien enthalten sein.
  • Die CPU(s) 1506 können dazu konfiguriert sein, die computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Rechenvorrichtung 1500 zu steuern, um eines bzw. einen oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Die CPU(s) 1506 können jeweils einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) beinhalten, die dazu in der Lage sind, eine Mehrzahl von Software-Threads simultan zu verarbeiten. Die CPU(s) 1506 können eine beliebige Prozessorart beinhalten und in Abhängigkeit von der Art der implementierten Rechenvorrichtung 1500 unterschiedliche Prozessorarten beinhalten (z. B. Prozessoren mit weniger Kernen für mobile Vorrichtungen und Prozessoren mit mehr Kernen für Server). Zum Beispiel kann der Prozessor in Abhängigkeit von der Art der Rechenvorrichtung 1500 ein ARM-Prozessor sein, der unter Verwendung von Reduced Instruction Set Computing (RISC) umgesetzt ist, oder ein x86-Prozessor, der unter Verwendung von Complex Instruction Set Computing (CISC) umgesetzt ist. Die Rechenvorrichtung 1500 kann zusätzlich zu einem oder mehreren Mikroprozessoren oder ergänzenden Koprozessoren, wie etwa mathematischen Koprozessoren, eine oder mehrere CPUs 1506 beinhalten.
  • Die GPU(s) 1508 können durch die Rechenvorrichtung 1500 verwendet werden, um Grafiken (z. B. 3D-Grafiken) zu rendern. Die GPU(s) 1508 können hunderte oder tausende von Kernen beinhalten, die dazu in der Lage sind, hunderte oder tausende von Software-Threads simultan zu verarbeiten. Die GPU(s) 1508 können Pixeldaten für Ausgabebilder als Reaktion auf Renderbefehle (z. B. Renderbefehle von der/den CPU(s) 1506, die über eine Host-Schnittstelle empfangen werden) erzeugen. Die GPU(s) 1508 können Grafikspeicher, wie etwa Anzeigespeicher, zum Speichern von Pixeldaten beinhalten. Der Anzeigespeicher kann als Teil des Speichers 1504 enthalten sein. Die GPU(s) 708 können zwei oder mehr GPUs beinhalten, die parallel arbeiten (z. B. über eine Verknüpfung). Wenn sie miteinander kombiniert sind, kann jede GPU 1508 Pixeldaten für unterschiedliche Abschnitte eines Ausgabebilds 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 eigenen Speicher beinhalten oder sich Speicher mit anderen GPUs teilen.
  • In Beispielen, in denen die Rechenvorrichtung 1500 die GPU(s) 1508 nicht beinhaltet, können die CPU(s) 1506 verwendet werden, um Grafiken zu rendern.
  • Die Kommunikationsschnittstelle 1510 kann einen oder mehrere Empfänger, Sender und/oder Transceiver beinhalten, die es der Rechenvorrichtung 700 ermöglichen, mit anderen Rechenvorrichtungen über ein elektronisches Kommunikationsnetzwerk zu kommunizieren, das drahtgebundene und/oder drahtlose Kommunikation beinhaltet. Die Kommunikationsschnittstelle 1510 kann Komponenten und Funktionen beinhalten, um Kommunikation über beliebige einer Reihe von unterschiedlichen Netzwerken zu ermöglichen, wie etwa drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), drahtgebundene Netzwerke (z. B. Kommunizieren über Ethernet), Weitverkehrsnetzwerke mit geringem Leistungsverbrauch (z. B. LoRaWAN, SigFox usw.) und/oder das Internet.
  • Die E/A-Anschlüsse 1512 können es der Rechenvorrichtung 1500 ermöglichen, logisch an andere Vorrichtungen einschließlich der E/A-Komponenten 1514, der Darstellungskomponente(n) 1518 und/oder anderer Komponenten gekoppelt zu sein, von denen einige in die Rechenvorrichtung 1500 eingebaut (z. B. in diese integriert) sein können. Veranschaulichende E/A-Komponenten 1514 beinhalten ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Gamecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, eine drahtlose Vorrichtung usw. Die E/A-Komponenten 1514 können eine natürliche Benutzerschnittstelle (natural user interface - NUI) bereitstellen, die Luftgesten, Spracheingabe oder andere durch einen Benutzer erzeugte physiologische Eingaben verarbeitet. In einigen Fällen können Eingaben zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination von Spracherkennung, Stifterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch benachbart zu dem Bildschirm, Luftgesten, Kopf- und Augenverfolgung und Berührungserkennung (wie nachstehend ausführlicher beschrieben) implementieren, die mit einer Anzeige der Rechenvorrichtung 1500 assoziiert ist. Die Rechenvorrichtung 1500 kann Tiefenkameras, wie etwa stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon zur Gestendetektion und -erkennung beinhalten. Zusätzlich kann die Rechenvorrichtung 1500 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) beinhalten, die eine Erkennung von Bewegung ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope durch die Rechenvorrichtung 1500 verwendet werden, um immersive Augmented Reality oder Virtual Reality zu rendern.
  • Die Leistungsversorgung 1516 kann eine fest verdrahtete Leistungsversorgung, eine Batterieleistungsversorgung oder eine Kombination davon beinhalten. Die Leistungsversorgung 1516 kann der Rechenvorrichtung 1500 Leistung bereitstellen, um es den Komponenten der Rechenvorrichtung 1500 zu ermöglichen, zu arbeiten.
  • Die Darstellungskomponente(n) 1518 können eine Anzeige (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, eine Heads-up-Anzeige (HUD), andere Anzeigearten oder eine Kombination davon), Lautsprecher und/oder andere Darstellungskomponenten beinhalten. Die Darstellungskomponente(n) 1518 können Daten von anderen Komponenten (z. B. der/den GPU(s) 1508, der/den CPU(s) 1506 usw.) empfangen und die Daten (z. B. als Bild, Video, Ton usw.) ausgeben.
  • Die Offenbarung kann im allgemeinen Kontext von Computercode oder maschinenverwendbaren Anweisungen beschrieben sein, einschließlich computerausführbarer Anweisungen, wie etwa Programmmodulen, die durch einen Computer oder eine andere Maschine, wie etwa einen Personal Data Assistant oder eine andere Handheld-Vorrichtung, ausgeführt werden. Im Allgemeinen beziehen sich Programmmodule, die Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw. beinhalten, auf Code, der konkrete Aufgaben durchführt oder konkrete abstrakte Datenarten implementiert. Die Offenbarung kann in vielfältigen Systemkonfigurationen implementiert werden, die Handheld-Vorrichtungen, Unterhaltungselektronik, Universalcomputer, stärker spezialisierte Rechenvorrichtungen usw. beinhalten. Die Offenbarung kann zudem in verteilten Rechenumgebungen implementiert werden, in denen Aufgaben durch Remote-Verarbeitungsvorrichtungen durchgeführt werden, die durch ein Kommunikationsnetzwerk verbunden sind.
  • Wie hierin verwendet, sollte eine Nennung von „und/oder“ in Bezug auf zwei oder mehr Elemente so interpretiert werden, dass nur ein Element oder eine Kombination von Elementen gemeint ist. Zum Beispiel 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 Element A, B und C beinhalten. Zusätzlich kann „mindestens eines von Element A oder Element B“ mindestens eines von Element A, mindestens eines von Element B oder mindestens eines von Element A und mindestens eines von Element B beinhalten. Ferner kann „mindestens eines von Element A und Element B“ mindestens eines von Element A, mindestens eines von Element B oder mindestens eines von Element A und mindestens eines von Element B beinhalten.
  • Der Gegenstand der vorliegenden Offenbarung wird hierin mit Spezifität beschrieben, um die gesetzlichen Anforderungen zu erfüllen. Die Beschreibung selbst soll jedoch den Umfang dieser Offenbarung nicht einschränken. Vielmehr haben die Erfinder in Betracht gezogen, dass der beanspruchte Gegenstand auch auf andere Arten verkörpert werden könnte, damit er unterschiedliche Schritte oder Kombinationen von Schritten, die den in dieser Schrift beschriebenen ähnlich sind, in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien beinhaltet. Obwohl darüber hinaus die Begriffe „Schritt“ und/oder „Block“ hierin verwendet werden können, um unterschiedliche Elemente der eingesetzten Verfahren zu bezeichnen, sollten die Begriffe nicht so interpretiert werden, dass sie eine konkrete Reihenfolge unter oder zwischen verschiedenen hierin offenbarten Schritten implizieren, es sei denn und außer die Reihenfolge der einzelnen Schritte ist explizit beschrieben.
  • 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 16101232 [0145]

Claims (22)

  1. Verfahren, umfassend: Anwenden erster Daten, die ein Bild eines Sichtfeldes eines Bildsensors darstellen, auf ein neuronales Netzwerk, wobei das neuronale Netzwerk mindestens teilweise basierend auf Ground-Truth-Informationen trainiert wird, die unter Verwendung von mindestens einem von einem LIDAR-Sensor oder einem RADAR-Sensor erzeugt werden; Berechnen, unter Verwendung des neuronalen Netzwerks und mindestens teilweise basierend auf den ersten Daten, zweiter Daten, die Tiefenwerte darstellen, die Pixeln des Bilds entsprechen; Berechnen, mindestens teilweise basierend auf den ersten Daten, einer oder mehrerer Begrenzungsformen, die einem in dem Bild abgebildeten Objekt entsprechen; Bestimmen einer Teilmenge der Pixel, die mit der einen oder den mehreren Begrenzungsformen assoziiert ist; und Assoziieren, mit dem Objekt, eines Tiefenwerts, der mindestens teilweise basierend auf den Tiefenwerten bestimmt ist, die der Teilmenge der Pixel entsprechen.
  2. Verfahren nach Anspruch 1, wobei das Berechnen der einen oder der mehreren Begrenzungsformen Folgendes beinhaltet: Empfangen dritter Daten, die Pixelpositionen darstellen, die der einen oder den mehreren Begrenzungsformen entsprechen; und Bestimmen von Positionen der einen oder der mehreren Begrenzungsformen in dem Bild mindestens teilweise basierend auf den Pixelpositionen.
  3. Verfahren nach Anspruch 1, Durchführen eines oder mehrerer Vorgänge durch ein autonomes Fahrzeug mindestens teilweise basierend auf dem Tiefenwert, der mit dem Objekt assoziiert ist.
  4. Verfahren nach Anspruch 1, wobei das Berechnen der einen oder der mehreren Begrenzungsformen Berechnen einer Pixelposition, die einem zentralen Pixel jeder der einen oder der mehreren Begrenzungsformen entspricht, und eines Pixelabstands von dem zentralen Pixel zu mindestens einer Kante jeder der einen oder der mehreren Begrenzungsformen beinhaltet.
  5. Verfahren nach Anspruch 4, wobei das Berechnen der Pixelposition Berechnen von Konfidenzen beinhaltet, die einer Vielzahl von Pixeln des Bildes entsprechen, wobei die Konfidenzen einer Wahrscheinlichkeit entsprechen, dass jedes der Vielzahl von Pixeln zentralen Pixeln der einen oder der mehreren Begrenzungsformen entspricht, wobei das zentrale Pixel jeder Begrenzungsform der einen oder der mehreren Begrenzungsformen mindestens teilweise basierend auf den Konfidenzen bestimmt wird.
  6. Verfahren nach Anspruch 1, wobei zwei oder mehr Begrenzungsformen, die mit dem Objekt assoziiert sind, berechnet werden; ein Density-Based-Spatial-Clustering-of-Applicationwith-Noise(DBSCAN)-Algorithmus verwendet wird, um endgültige Pixelpositionen für eine endgültige Begrenzungsform, die dem Objekt entspricht, zu bestimmen.
  7. Verfahren nach Anspruch 1, wobei: der Bildsensor einer eingesetzten Kamera entspricht; das neuronale Netzwerk ferner gemäß einem Referenzkameraparameter einer Referenzkamera trainiert wird; ein Skalierungsfaktor auf die Tiefenwerte angewendet wird, um endgültige Tiefenwerte basierend auf einem eingesetzten Kameraparameter der eingesetzten Kamera zu erzeugen, der sich von dem Referenzkameraparameter unterscheidet; und die Tiefenwerte der Tiefenwerte einen endgültigen Tiefenwert der endgültigen Tiefenwerte beinhalten.
  8. Verfahren nach Anspruch 7, wobei der Referenzkameraparameter einen ersten Winkel eines ersten Sichtfeldes (FOV) der Referenzkamera beinhaltet und der eingesetzte Kameraparameter einen zweiten Winkel eines zweiten FOV der eingesetzten Kamera beinhaltet.
  9. Verfahren nach Anspruch 1, ferner umfassend: Erzeugen dritter Daten, die eine Verzerrungskarte darstellen, die einem Sichtfeld einer eingesetzten Kamera entspricht, die dem Bildsensor entspricht; und Anwenden der dritten Daten auf das neuronale Netzwerk, wobei das Berechnen zweiten Daten ferner mindestens teilweise auf den dritten Daten basiert.
  10. Verfahren nach Anspruch 1, ferner umfassend: mindestens teilweise basierend auf mindestens einer von einer Begrenzungsform eines Objekts oder einer Form einer Fahroberfläche, Bestimmen von mindestens einem von einem maximalen Tiefenwert oder einem minimalen Tiefenwert für das Objekt; und eines von: Zuteilen des Tiefenwerts zu dem maximalen Tiefenwert, wenn der Tiefenwert den maximalen Tiefenwert überschreitet; oder Zuteilen des Tiefenwerts zu dem minimalen Tiefenwert, wenn der Tiefenwert kleiner als der minimale Tiefenwert ist.
  11. Verfahren, umfassend: Empfangen von ersten Daten, die LIDAR-Informationen darstellen, von zweiten Daten, die RADAR-Informationen darstellen, und von dritten Daten, die ein Bild darstellen; Empfangen von vierten Daten, die eine Begrenzungsform darstellen, die einem in dem Bild abgebildeten Objekt entspricht; Korrelieren, mit der Begrenzungsform, von Tiefeninformationen, die mindestens teilweise basierend auf mindestens einem von den LIDAR-Informationen oder den RADAR-Informationen bestimmt werden; Erzeugen von fünften Daten, die Ground-Truth-Informationen darstellen, wobei die fünften Daten mindestens teilweise basierend auf Umwandeln der Tiefeninformationen in eine Tiefenkarte erzeugt werden, die Tiefenwerte darstellt, die mit Pixeln des Bildes innerhalb der Begrenzungsform assoziiert sind; und Trainieren eines neuronalen Netzwerks, um eine vorhergesagte Tiefenkarte unter Verwendung der fünften Daten zu berechnen.
  12. Verfahren nach Anspruch 11, wobei das Korrelieren der Tiefeninformationen mit der Begrenzungsform Folgendes beinhaltet: Projizieren der Begrenzungsform und von dem mindestens einem von den LIDAR-Informationen oder den RADAR-Informationen in das Bild; und Bestimmen einer Überlappung zwischen der Begrenzungsform und dem mindestens einen von den LIDAR-Informationen oder den RADAR-Informationen.
  13. Verfahren nach Anspruch 11, wobei das Korrelieren der Tiefeninformationen mit der Begrenzungsform Folgendes beinhaltet: Erzeugen einer endgültigen Begrenzungsform durch Beschneiden einer anfänglichen Begrenzungsform, wobei das Beschneiden Entfernen eines ersten Prozentsatzes von einer Oberseite der anfänglichen Begrenzungsform und eines zweiten Prozentsatzes, der sich von dem ersten Prozentsatz unterscheidet, von einer Unterseite der Begrenzungsform beinhaltet.
  14. Verfahren nach Anspruch 13, wobei der erste Prozentsatz größer ist als der zweite Prozentsatz.
  15. Verfahren nach Anspruch 13, wobei der erste Prozentsatz mindestens teilweise basierend auf den Tiefeninformationen bestimmt wird, die der anfänglichen Begrenzungsform entsprechen, sodass der erste Prozentsatz zunimmt, wenn eine Tiefe zunimmt.
  16. Verfahren nach Anspruch 11, wobei Umwandeln der Tiefeninformationen in die Tiefenkarte Folgendes beinhaltet: Bestimmen eines repräsentativen Pixels innerhalb der Begrenzungsform; Auswählen einer Teilmenge von Pixeln der Begrenzungsform aus einer Form innerhalb der Begrenzungsform, die an dem repräsentativen Pixel zentriert ist; Codieren eines Tiefenwerts der Tiefenwerte, die dem repräsentativen Pixel entsprechen, für jedes der Teilmenge von Pixeln.
  17. Verfahren nach Anspruch 16, wobei die Form eine von einer Ellipse oder einem Kreis ist und das repräsentative Pixel ein zentrales Pixel der Begrenzungsform ist.
  18. Verfahren nach Anspruch 11, ferner umfassend: Bestimmen, mindestens teilweise basierend auf einem Winkel eines Sichtfelds einer Kamera, die das Bild aufgenommen hat, von sechsten Daten, die eine Verzerrungskarte darstellen, wobei das neuronale Netzwerk ferner unter Verwendung der sechsten Daten trainiert wird.
  19. Verfahren nach Anspruch 11, wobei die fünften Daten ferner einen Skalierungsfaktor darstellen, der mindestens teilweise basierend auf einem Sichtfeld einer Kamera, die das Bild aufgenommen hat, bestimmt wird.
  20. System, umfassend: einen oder mehrere Bildsensoren, um erste Daten zu erzeugen, die ein Bild einer Umgebung um ein Fahrzeug darstellen; eine Rechenvorrichtung, die eine oder mehrere Verarbeitungsvorrichtungen und eine oder mehrere Speichervorrichtungen beinhaltet, die kommunikativ mit der einen oder den mehreren Verarbeitungsvorrichtungen gekoppelt sind und programmierte Anweisungen darauf speichern, die bei Ausführung durch den Prozessor die Instanziierung veranlassen von: einem Tiefenbestimmer, um Tiefenwerte unter Verwendung eines neuronalen Netzwerks und mindestens teilweise basierend auf den ersten Daten zu berechnen, wobei das neuronale Netzwerk unter Verwendung von mindestens einem von LIDAR-Daten oder RADAR-Daten als Ground Truth trainiert wird; einem Objektzuweiser zum: Berechnen von zweiten Daten, die eine oder mehrere Begrenzungsformen darstellen, die dem einen oder den mehreren Objekten entsprechen; Bestimmen einer Vielzahl von Pixeln, die mit der einen oder den mehreren Begrenzungsformen assoziiert ist; Bestimmen eines oder mehrerer der Tiefenwerte, die der Vielzahl von Pixeln entsprechen; und Zuweisen eines Tiefenwerts, der unter Verwendung des einen oder der mehreren Tiefenwerte bestimmt ist, zu einem oder mehreren in dem Bild abgebildeten Objekten; und einer Steuerkomponente, um einen oder mehrere Vorgänge durchzuführen, die mit der Steuerung des Fahrzeugs assoziiert sind, mindestens teilweise basierend auf dem Tiefenwert und den zweiten Daten.
  21. System nach Anspruch 20, wobei die zweiten Daten entweder von einem von dem neuronalen Netzwerk getrennten Objektdetektor erzeugt oder von dem neuronalen Netzwerk mindestens teilweise basierend auf den ersten Daten berechnet werden.
  22. System nach Anspruch 20, wobei es sich bei dem Fahrzeug um ein autonomes Fahrzeug oder ein halbautonomes Fahrzeug handelt und der eine oder die mehreren Vorgänge Aktualisieren eines Weltmodells beinhalten, um Abstände zu dem einen oder den mehreren Objekten vom Fahrzeug mindestens teilweise basierend auf den Tiefenwerten zu enthalten.
DE112019006468.1T 2018-12-28 2019-12-27 Erkennung des abstands zu hindernissen bei anwendungen mit autonomen maschinen Pending DE112019006468T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862786188P 2018-12-28 2018-12-28
US62/786,188 2018-12-28
US16/728,595 2019-12-27
PCT/US2019/068764 WO2020140047A1 (en) 2018-12-28 2019-12-27 Distance to obstacle detection in autonomous machine applications
US16/728,595 US11308338B2 (en) 2018-12-28 2019-12-27 Distance to obstacle detection in autonomous machine applications

Publications (1)

Publication Number Publication Date
DE112019006468T5 true DE112019006468T5 (de) 2021-10-14

Family

ID=71123242

Family Applications (2)

Application Number Title Priority Date Filing Date
DE112019006484.3T Pending DE112019006484T5 (de) 2018-12-28 2019-12-27 Detektion von abständen zu hindernissen in autonomen maschinenanwendungen
DE112019006468.1T Pending DE112019006468T5 (de) 2018-12-28 2019-12-27 Erkennung des abstands zu hindernissen bei anwendungen mit autonomen maschinen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE112019006484.3T Pending DE112019006484T5 (de) 2018-12-28 2019-12-27 Detektion von abständen zu hindernissen in autonomen maschinenanwendungen

Country Status (4)

Country Link
US (1) US11308338B2 (de)
CN (2) CN113228042A (de)
DE (2) DE112019006484T5 (de)
WO (1) WO2020140047A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114089675A (zh) * 2021-11-23 2022-02-25 长春工业大学 一种基于人机距离的机器控制方法及控制***
DE102021119906A1 (de) 2021-07-30 2023-02-02 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Erzeugen von Trainingsdaten zum selbstüberwachten Trainieren eines neuronalen Netzes, Verfahren zum selbstüberwachten Trainieren eines neuronalen Netzes, Computerprogramm sowie Recheneinrichtung für ein Fahrzeug
WO2024061967A1 (de) * 2022-09-21 2024-03-28 Friedrich-Alexander-Universität Erlangen-Nürnberg System, verfahren, computerprogramm und computerlesbares medium zur erzeugung annotierter daten

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018170074A1 (en) * 2017-03-14 2018-09-20 Starsky Robotics, Inc. Vehicle sensor system and method of use
JP2019012915A (ja) * 2017-06-30 2019-01-24 クラリオン株式会社 画像処理装置、画像変換方法
KR102547823B1 (ko) * 2017-12-13 2023-06-26 삼성전자주식회사 컨텐츠 시각화 장치 및 방법
JP7199984B2 (ja) * 2019-02-01 2023-01-06 株式会社小松製作所 作業車両の制御システム及び作業車両の制御方法
WO2020185779A1 (en) 2019-03-11 2020-09-17 Nvidia Corporation Intersection detection and classification in autonomous machine applications
EP3924845A4 (de) 2019-03-14 2022-12-07 Hewlett-Packard Development Company, L.P. Antworten auf maschinenlernanfragen von mehreren clients
US11483370B2 (en) * 2019-03-14 2022-10-25 Hewlett-Packard Development Company, L.P. Preprocessing sensor data for machine learning
WO2021042277A1 (zh) * 2019-09-03 2021-03-11 浙江大学 基于神经网络的三维物体法向量、几何及材质获取方法
US11577757B2 (en) * 2019-11-01 2023-02-14 Honda Motor Co., Ltd. System and method for future forecasting using action priors
US11120280B2 (en) * 2019-11-15 2021-09-14 Argo AI, LLC Geometry-aware instance segmentation in stereo image capture processes
CN113075922A (zh) * 2019-12-17 2021-07-06 图森有限公司 来自多个传感器的数据集成
EP3846475A1 (de) * 2020-01-05 2021-07-07 iSize Limited Vorverarbeitung von bilddaten
JP7288409B2 (ja) * 2020-02-05 2023-06-07 マツダ株式会社 車両用制御装置
JP7296899B2 (ja) * 2020-02-05 2023-06-23 マツダ株式会社 車両用制御装置
CN111401208B (zh) * 2020-03-11 2023-09-22 阿波罗智能技术(北京)有限公司 一种障碍物检测方法、装置、电子设备及存储介质
EP3882813A1 (de) 2020-03-20 2021-09-22 Aptiv Technologies Limited Verfahren zur erzeugung eines dynamischen belegungsrasters
EP3905105A1 (de) 2020-04-27 2021-11-03 Aptiv Technologies Limited Verfahren zur bestimmung eines kollisionsfreien raumes
EP3905106A1 (de) 2020-04-27 2021-11-03 Aptiv Technologies Limited Verfahren zur bestimmung einer befahrbaren fläche
US11620476B2 (en) * 2020-05-14 2023-04-04 Micron Technology, Inc. Methods and apparatus for performing analytics on image data
CN111783700B (zh) * 2020-07-06 2023-11-24 中国交通通信信息中心 一种路面异物自动识别预警方法和***
KR102427463B1 (ko) * 2020-07-16 2022-08-01 주식회사 비젼그리드 자율주행을 위한 영상추적을 이용한 거리 측정 방법 및 장치
US11691648B2 (en) * 2020-07-24 2023-07-04 SafeAI, Inc. Drivable surface identification techniques
GB202013106D0 (en) * 2020-08-21 2020-10-07 Five Ai Ltd Processing images for extracting information about known objects
US20220073085A1 (en) * 2020-09-04 2022-03-10 Waymo Llc Knowledge distillation for autonomous vehicles
CN114257608A (zh) * 2020-09-21 2022-03-29 福特全球技术公司 一种信息交互方法和信息交互***
CN112184700B (zh) * 2020-10-21 2022-03-18 西北民族大学 基于单目相机的农业无人车障碍物感知方法及装置
WO2022099522A1 (en) 2020-11-11 2022-05-19 Huawei Technologies Co., Ltd. Device and method for verifying estimated depth information
US11513266B2 (en) 2020-12-09 2022-11-29 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for an improved camera system using directional optics to estimate depth
EP4012440A1 (de) * 2020-12-14 2022-06-15 Continental Automotive GmbH Verfahren zur erweiterung des effektiven bereichs eines sensors und entsprechendes sensorsystem
CN112268564B (zh) * 2020-12-25 2021-03-02 中国人民解放军国防科技大学 一种无人机降落空间位置和姿态端到端估计方法
CN112750155B (zh) * 2021-01-15 2022-07-01 福州大学 基于卷积神经网络的全景深度估计方法
US12014510B2 (en) 2021-02-03 2024-06-18 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for an improved camera system using filters for depth estimation of grayscale images
US11663730B2 (en) 2021-02-19 2023-05-30 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for an improved camera system using a graded lens and filters to estimate depth
US20220274269A1 (en) * 2021-03-01 2022-09-01 Samsung Electronics Co., Ltd. Method and apparatus for robot collision avoidance by full surface proximity detection
WO2022197711A1 (en) * 2021-03-15 2022-09-22 Motional Ad Llc Automated emergency braking system
DE102021107904A1 (de) * 2021-03-29 2022-09-29 Conti Temic Microelectronic Gmbh Verfahren und System zur Bestimmung der Bodenebene mit einem künstlichen neuronalen Netz
US11870968B2 (en) 2021-04-13 2024-01-09 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for an improved camera system using filters and machine learning to estimate depth
FR3125150B1 (fr) * 2021-07-08 2023-11-17 Continental Automotive Procédé d’étiquetage d’une image 3D
CN113486837B (zh) * 2021-07-19 2023-07-18 安徽江淮汽车集团股份有限公司 针对低通度障碍物的自动驾驶控制方法
WO2023018389A1 (en) * 2021-08-13 2023-02-16 Mesan Elektronik Sanayi Ticaret Anonim Sirketi A vehicle tracking system, an operation method and an installation method for the same
US11807107B2 (en) 2021-08-17 2023-11-07 Anamnesis Corporation Vehicle system and longitudinal vehicle control method
CN113780101A (zh) * 2021-08-20 2021-12-10 京东鲲鹏(江苏)科技有限公司 避障模型的训练方法、装置、电子设备及存储介质
CN113577772B (zh) * 2021-09-27 2022-01-11 深圳易帆互动科技有限公司 基于瓦片地图的单位移动方法、装置及可读存储介质
US12008788B1 (en) * 2021-10-14 2024-06-11 Amazon Technologies, Inc. Evaluating spatial relationships using vision transformers
US11696011B2 (en) * 2021-10-21 2023-07-04 Raytheon Company Predictive field-of-view (FOV) and cueing to enforce data capture and transmission compliance in real and near real time video
US11792499B2 (en) 2021-10-21 2023-10-17 Raytheon Company Time-delay to enforce data capture and transmission compliance in real and near real time video
US20230135234A1 (en) * 2021-10-28 2023-05-04 Nvidia Corporation Using neural networks for 3d surface structure estimation based on real-world data for autonomous systems and applications
CN113938233B (zh) * 2021-11-18 2023-09-29 重庆邮电大学 一种无人机非平稳空对空mimo信道的几何随机建模方法
US20230213945A1 (en) * 2021-12-30 2023-07-06 Nvidia Corporation Obstacle to path assignment for autonomous systems and applications
CN114104005B (zh) * 2022-01-26 2022-04-19 苏州浪潮智能科技有限公司 自动驾驶设备的决策方法、装置、设备及可读存储介质
US11700448B1 (en) 2022-04-29 2023-07-11 Raytheon Company Computer/human generation, validation and use of a ground truth map to enforce data capture and transmission compliance in real and near real time video of a local scene
CN116039620B (zh) * 2022-12-05 2024-04-19 北京斯年智驾科技有限公司 基于自动驾驶感知的安全冗余处理***
CN116255908B (zh) * 2023-05-11 2023-08-15 山东建筑大学 面向水下机器人的海生物定位测量装置及方法
CN117340204B (zh) * 2023-12-05 2024-02-13 山西宝隆科技有限公司 一种钢锭模与钢锭的分离判定方法

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963661B1 (en) 1999-09-09 2005-11-08 Kabushiki Kaisha Toshiba Obstacle detection system and method therefor
US7852462B2 (en) 2000-05-08 2010-12-14 Automotive Technologies International, Inc. Vehicular component control methods based on blind spot monitoring
ES2391556T3 (es) 2002-05-03 2012-11-27 Donnelly Corporation Sistema de detección de objetos para vehículo
US7068815B2 (en) 2003-06-13 2006-06-27 Sarnoff Corporation Method and apparatus for ground detection and removal in vision systems
US7409295B2 (en) 2004-08-09 2008-08-05 M/A-Com, Inc. Imminent-collision detection system and process
US8164628B2 (en) 2006-01-04 2012-04-24 Mobileye Technologies Ltd. Estimating distance to an object using a sequence of images recorded by a monocular camera
KR20080051302A (ko) 2006-12-05 2008-06-11 삼성전자주식회사 사용자 단말장치 및 영상표시장치 그리고 그들의 광원 조정방법
EP2383679A1 (de) 2006-12-06 2011-11-02 Mobileye Technologies Limited Detektion und Erkennung von Verkehrszeichen
EP2674323B1 (de) 2007-04-30 2018-07-11 Mobileye Vision Technologies Ltd. Erkennung rückseitiger Hindernisse
JP4457136B2 (ja) 2007-09-27 2010-04-28 日立オートモティブシステムズ株式会社 走行制御システム
WO2009076182A1 (en) 2007-12-13 2009-06-18 Clemson University Vision based real time traffic monitoring
US8204542B2 (en) 2008-03-21 2012-06-19 Mediatek Inc. Methods for processing apparatus originated communication request and communication apparatuses utilizing the same
KR101626037B1 (ko) 2008-04-14 2016-06-13 구글 인코포레이티드 가상 표면들을 사용하는 패닝
US8570333B2 (en) 2008-12-11 2013-10-29 Nvidia Corporation Method and system for enabling managed code-based application program to access graphics processing unit
KR101717787B1 (ko) 2010-04-29 2017-03-17 엘지전자 주식회사 디스플레이장치 및 그의 음성신호 출력 방법
KR101225626B1 (ko) 2010-07-19 2013-01-24 포항공과대학교 산학협력단 차선 인식 시스템 및 방법
US9471988B2 (en) 2011-11-02 2016-10-18 Google Inc. Depth-map generation for an input image using an example approximate depth-map associated with an example similar image
US9225942B2 (en) 2012-10-11 2015-12-29 GM Global Technology Operations LLC Imaging surface modeling for camera modeling and virtual view synthesis
JP6013884B2 (ja) 2012-11-08 2016-10-25 日立オートモティブシステムズ株式会社 物体検出装置及び物体検出方法
CN104424466B (zh) 2013-08-21 2018-05-15 佳能株式会社 对象检测方法、对象检测设备及图像拾取设备
US9098323B2 (en) 2013-09-05 2015-08-04 Nvidia Corporation Simultaneous utilization of a first graphics processing unit (GPU) and a second GPU of a computing platform through a virtual machine (VM) in a shared mode and a dedicated mode respectively
US9373057B1 (en) 2013-11-01 2016-06-21 Google Inc. Training a neural network to detect objects in images
US9742869B2 (en) 2013-12-09 2017-08-22 Nvidia Corporation Approach to adaptive allocation of shared resources in computer systems
EP2950175B1 (de) 2014-05-27 2021-03-31 dSPACE digital signal processing and control engineering GmbH Verfahren und Vorrichtung zum Testen eines Steuergerätes
CA3067160A1 (en) 2015-02-10 2016-08-18 Mobileye Vision Technologies Ltd. Sparse map for autonomous vehicle navigation
US9811756B2 (en) 2015-02-23 2017-11-07 Mitsubishi Electric Research Laboratories, Inc. Method for labeling images of street scenes
US11630800B2 (en) 2015-05-01 2023-04-18 Nvidia Corporation Programmable vision accelerator
EP3295422B1 (de) 2015-05-10 2020-01-01 Mobileye Vision Technologies Ltd. Strassenprofile entlang eines prognostizierten weges
US9710714B2 (en) 2015-08-03 2017-07-18 Nokia Technologies Oy Fusion of RGB images and LiDAR data for lane classification
US10282591B2 (en) * 2015-08-24 2019-05-07 Qualcomm Incorporated Systems and methods for depth map sampling
US9767565B2 (en) 2015-08-26 2017-09-19 Digitalglobe, Inc. Synthesizing training data for broad area geospatial object detection
US10002471B2 (en) 2015-09-30 2018-06-19 Ants Technology (Hk) Limited Systems and methods for autonomous vehicle navigation
GB2543749A (en) 2015-10-21 2017-05-03 Nokia Technologies Oy 3D scene rendering
US9741125B2 (en) 2015-10-28 2017-08-22 Intel Corporation Method and system of background-foreground segmentation for image processing
DE102015221920A1 (de) 2015-11-09 2017-05-11 Bayerische Motoren Werke Aktiengesellschaft Verfahren, Computerprogrammprodukt, Vorrichtung, und Fahrzeug umfassend die Vorrichtung zum Steuern einer Trajektorienplanung eines Egofahrzeugs
DE102015226762B4 (de) 2015-12-28 2024-04-25 Robert Bosch Gmbh Verfahren zur Korrektur mindestens eines Kollisionsparameters und korrespondierendes integriertes Sicherheitssystem für ein Fahrzeug
US10134278B1 (en) 2016-01-22 2018-11-20 State Farm Mutual Automobile Insurance Company Autonomous vehicle application
US9996771B2 (en) 2016-02-15 2018-06-12 Nvidia Corporation System and method for procedurally synthesizing datasets of objects of interest for training machine-learning models
US9802599B2 (en) 2016-03-08 2017-10-31 Ford Global Technologies, Llc Vehicle lane placement
JP6575818B2 (ja) 2016-03-25 2019-09-18 パナソニックIpマネジメント株式会社 運転支援方法およびそれを利用した運転支援装置、自動運転制御装置、車両、運転支援システム、プログラム
WO2017177128A1 (en) 2016-04-08 2017-10-12 The Trustees Of Columbia University In The City Of New York Systems and methods for deep reinforcement learning using a brain-artificial intelligence interface
US9896096B2 (en) 2016-04-11 2018-02-20 David E. Newman Systems and methods for hazard mitigation
US10032067B2 (en) 2016-05-28 2018-07-24 Samsung Electronics Co., Ltd. System and method for a unified architecture multi-task deep learning machine for object recognition
CN106114507B (zh) 2016-06-21 2018-04-03 百度在线网络技术(北京)有限公司 用于智能车辆的局部轨迹规划方法和装置
US11772647B2 (en) 2016-06-24 2023-10-03 Jaguar Land Rover Limited Control system for a vehicle
US10127465B2 (en) 2016-06-27 2018-11-13 Mobileye Vision Technologies Ltd. Controlling host vehicle based on detected movement of a target vehicle
US10489972B2 (en) 2016-06-28 2019-11-26 Cognata Ltd. Realistic 3D virtual world creation and simulation for training automated driving systems
US10078335B2 (en) 2016-06-28 2018-09-18 Toyota Motor Engineering & Manufacturing North America, Inc. Ray tracing for hidden obstacle detection
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
US20180011953A1 (en) * 2016-07-07 2018-01-11 Ford Global Technologies, Llc Virtual Sensor Data Generation for Bollard Receiver Detection
EP3492581A4 (de) 2016-07-26 2020-02-05 Kaneka Corporation Transformant, der ein pha-copolymer mit einer 3hh-einheit produziert, und verfahren zur herstellung des pha
GB2553782B (en) 2016-09-12 2021-10-20 Niantic Inc Predicting depth from image data using a statistical model
US10127670B2 (en) 2016-09-27 2018-11-13 Xactware Solutions, Inc. Computer vision systems and methods for detecting and modeling features of structures in images
US10289469B2 (en) 2016-10-28 2019-05-14 Nvidia Corporation Reliability enhancement utilizing speculative execution systems and methods
US20180136332A1 (en) * 2016-11-15 2018-05-17 Wheego Electric Cars, Inc. Method and system to annotate objects and determine distances to objects in an image
US10878583B2 (en) 2016-12-02 2020-12-29 Google Llc Determining structure and motion in images using neural networks
US20180158244A1 (en) 2016-12-02 2018-06-07 Ayotle Virtual sensor configuration
US10670416B2 (en) 2016-12-30 2020-06-02 DeepMap Inc. Traffic sign feature creation for high definition maps used for navigating autonomous vehicles
WO2018128741A1 (en) * 2017-01-06 2018-07-12 Board Of Regents, The University Of Texas System Segmenting generic foreground objects in images and videos
US10380886B2 (en) 2017-05-17 2019-08-13 Cavh Llc Connected automated vehicle highway systems and methods
US10691847B2 (en) 2017-01-13 2020-06-23 Sap Se Real-time damage determination of an asset
US11288595B2 (en) 2017-02-14 2022-03-29 Groq, Inc. Minimizing memory and processor consumption in creating machine learning models
WO2018170074A1 (en) 2017-03-14 2018-09-20 Starsky Robotics, Inc. Vehicle sensor system and method of use
US11899669B2 (en) 2017-03-20 2024-02-13 Carnegie Mellon University Searching of data structures in pre-processing data for a machine learning classifier
US10262238B2 (en) * 2017-04-13 2019-04-16 Facebook, Inc. Panoramic camera systems
US10460180B2 (en) 2017-04-20 2019-10-29 GM Global Technology Operations LLC Systems and methods for visual classification with region proposals
US10328578B2 (en) 2017-04-21 2019-06-25 X Development Llc Methods and systems for detecting, recognizing, and localizing pallets
US10108867B1 (en) 2017-04-25 2018-10-23 Uber Technologies, Inc. Image-based pedestrian detection
US20180349746A1 (en) 2017-05-31 2018-12-06 Uber Technologies, Inc. Top-View Lidar-Based Object Detection
US10310087B2 (en) * 2017-05-31 2019-06-04 Uber Technologies, Inc. Range-view LIDAR-based object detection
US10007269B1 (en) 2017-06-23 2018-06-26 Uber Technologies, Inc. Collision-avoidance system for autonomous-capable vehicle
US11214273B2 (en) 2017-06-23 2022-01-04 Nvidia Corporation Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system
US20180373980A1 (en) * 2017-06-27 2018-12-27 drive.ai Inc. Method for training and refining an artificial intelligence
WO2019028725A1 (en) 2017-08-10 2019-02-14 Intel Corporation CONVOLUTIVE NEURAL NETWORK STRUCTURE USING INVERTED CONNECTIONS AND OBJECTIVITY ANTERIORITIES TO DETECT AN OBJECT
US10339669B2 (en) 2017-08-22 2019-07-02 Here Global B.V. Method, apparatus, and system for a vertex-based evaluation of polygon similarity
US10282995B2 (en) 2017-09-05 2019-05-07 Starship Technologies Oü Mobile robot having collision avoidance system for crossing a road from a pedestrian pathway
KR102026697B1 (ko) 2017-09-21 2019-09-30 엘지전자 주식회사 주행 시스템 및 차량
US10612932B2 (en) 2017-09-29 2020-04-07 Wipro Limited Method and system for correcting a pre-generated navigation path for an autonomous vehicle
US10579897B2 (en) 2017-10-02 2020-03-03 Xnor.ai Inc. Image based object detection
US10997491B2 (en) 2017-10-04 2021-05-04 Huawei Technologies Co., Ltd. Method of prediction of a state of an object in the environment using an action model of a neural network
US20190129831A1 (en) 2017-10-27 2019-05-02 Uber Technologies, Inc. Autonomous Vehicle Simulation Testing Systems and Methods
US10580158B1 (en) 2017-11-03 2020-03-03 Zoox, Inc. Dense depth estimation of image data
CN107862287A (zh) * 2017-11-08 2018-03-30 吉林大学 一种前方小区域物体识别及车辆预警方法
US11017550B2 (en) 2017-11-15 2021-05-25 Uatc, Llc End-to-end tracking of objects
US11062461B2 (en) 2017-11-16 2021-07-13 Zoox, Inc. Pose determination from contact points
US10762396B2 (en) 2017-12-05 2020-09-01 Utac, Llc Multiple stage image based object detection and recognition
CN110574371B (zh) 2017-12-08 2021-12-21 百度时代网络技术(北京)有限公司 使用硬件加速器的立体摄像机深度确定
US20190179979A1 (en) 2017-12-13 2019-06-13 Uber Technologies, Inc. Simulated Sensor Testing
CN110248861B (zh) 2018-01-07 2023-05-30 辉达公司 在车辆操纵过程中使用机器学习模型来引导车辆
US11150663B2 (en) 2018-01-26 2021-10-19 Nvidia Corporation Detection of hazardous driving using machine learning
DE112019000065T5 (de) 2018-02-02 2020-03-05 Nvidia Corporation Sicherheitsprozeduranalyse zur hindernisvermeidung in einem autonomen fahrzeug
US11789449B2 (en) 2018-02-09 2023-10-17 Nvidia Corporation Controlling autonomous vehicles using safe arrival times
US11995551B2 (en) 2018-02-14 2024-05-28 Nvidia Corporation Pruning convolutional neural networks
JP6761828B2 (ja) 2018-03-05 2020-09-30 日本電信電話株式会社 柱状物体状態検出装置、柱状物体状態検出方法、柱状物体状態検出処理プログラム
US10157331B1 (en) 2018-03-08 2018-12-18 Capital One Services, Llc Systems and methods for image preprocessing to improve accuracy of object recognition
WO2019177562A1 (en) * 2018-03-15 2019-09-19 Harman International Industries, Incorporated Vehicle system and method for detecting objects and object distance
WO2019182911A1 (en) 2018-03-17 2019-09-26 Nvidia Corporation Reflection denoising in ray-tracing applications
US11080590B2 (en) 2018-03-21 2021-08-03 Nvidia Corporation Stereo depth estimation using deep neural networks
US11099558B2 (en) 2018-03-27 2021-08-24 Nvidia Corporation Remote operation of vehicles using immersive virtual reality environments
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US10942030B2 (en) 2018-08-17 2021-03-09 Lyft, Inc. Road segment similarity determination
US11494937B2 (en) * 2018-11-16 2022-11-08 Uatc, Llc Multi-task multi-sensor fusion for three-dimensional object detection
US11030476B2 (en) * 2018-11-29 2021-06-08 Element Ai Inc. System and method for detecting and tracking objects
US11635767B2 (en) 2019-02-13 2023-04-25 Semyon Nisenzon System and method of using multi-resolution camera clusters input data for controlling autonomous vehicles
US10625748B1 (en) 2019-06-28 2020-04-21 Lyft, Inc. Approaches for encoding environmental information
US11966673B2 (en) 2020-03-13 2024-04-23 Nvidia Corporation Sensor simulation and learning sensor models with generative machine learning methods

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021119906A1 (de) 2021-07-30 2023-02-02 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Erzeugen von Trainingsdaten zum selbstüberwachten Trainieren eines neuronalen Netzes, Verfahren zum selbstüberwachten Trainieren eines neuronalen Netzes, Computerprogramm sowie Recheneinrichtung für ein Fahrzeug
CN114089675A (zh) * 2021-11-23 2022-02-25 长春工业大学 一种基于人机距离的机器控制方法及控制***
CN114089675B (zh) * 2021-11-23 2023-06-09 长春工业大学 一种基于人机距离的机器控制方法及控制***
WO2024061967A1 (de) * 2022-09-21 2024-03-28 Friedrich-Alexander-Universität Erlangen-Nürnberg System, verfahren, computerprogramm und computerlesbares medium zur erzeugung annotierter daten

Also Published As

Publication number Publication date
US11308338B2 (en) 2022-04-19
WO2020140047A4 (en) 2020-08-06
US20200210726A1 (en) 2020-07-02
DE112019006484T5 (de) 2021-10-21
CN113454636A (zh) 2021-09-28
CN113228042A (zh) 2021-08-06
WO2020140047A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
DE112019006468T5 (de) Erkennung des abstands zu hindernissen bei anwendungen mit autonomen maschinen
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
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020001897T5 (de) Trainieren neuronaler Netze unter Verwendung von Grundwahrheitsdaten, die mit Karteninformationen ergänzt wurden, für autonome Maschinenanwendungen
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE102021126254A1 (de) Überwachen der Aufmerksamkeit und der kognitiven Belastung der Insassen für autonome und halbautonome Fahranwendungen
DE112019000279T5 (de) Steuern autonomer fahrzeuge anhand sicherer ankunftszeiten
DE112020002166T5 (de) Simulation realistischer testdaten aus transformierten sensordaten der realen welt für autonome maschinenanwendungen
DE112019000122T5 (de) Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
DE112020006404T5 (de) Planung und steuerung von spurwechseln in autonomen maschinenapplikationen
DE102021121558A1 (de) Auf neuronalen netzen basierende bestimmung der blickrichtung unter verwendung räumlicher modelle
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE112021001994T5 (de) Modellbasiertes bestärkendes lernen zur verhaltensvorhersage in autonomen systemen und anwendungen
DE102019113114A1 (de) Verhaltensgesteuerte wegplanung in autonomen maschinenanwendungen
DE102021129528A1 (de) Erkennung von Einsatzfahrzeugen für Anwendungen im Bereich des autonomen Fahrens
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe
DE112021000104T5 (de) Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen
DE102021105245A1 (de) Verwenden von bildaugmentation mit simulierten objekten zum trainieren von maschinenlernmodellen in autonomen fahranwendungen
DE102022104026A1 (de) Erzeugung von ground-truth-daten für die wahrnehmung durch tiefe neuronale netze in anwendungen für autonomes fahren
DE102020130749A1 (de) System zum maschinellen lernen zur blickbestimmung mit adaptiver gewichtung von eingaben

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06K0009000000

Ipc: G06V0010000000