DE102021100065A1 - Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren - Google Patents

Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren Download PDF

Info

Publication number
DE102021100065A1
DE102021100065A1 DE102021100065.3A DE102021100065A DE102021100065A1 DE 102021100065 A1 DE102021100065 A1 DE 102021100065A1 DE 102021100065 A DE102021100065 A DE 102021100065A DE 102021100065 A1 DE102021100065 A1 DE 102021100065A1
Authority
DE
Germany
Prior art keywords
data
predictions
neural network
vehicle
motifs
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
DE102021100065.3A
Other languages
English (en)
Inventor
Richard Bramley
Philip Payman Shirvani
Nirmal Saxena
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 DE102021100065A1 publication Critical patent/DE102021100065A1/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0088Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/08Learning methods
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Databases & Information Systems (AREA)
  • Electromagnetism (AREA)
  • Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Game Theory and Decision Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

In verschiedenen Beispielen werden Motive, Wasserzeichen und/oder Signatureingaben auf ein tiefes neuronales Netz (DNN) aufgebracht, um Fehler in der zugrunde liegenden Hardware und/oder Software, die das DNN ausführt, zu erkennen. Eine Information, die den Motiven, Wasserzeichen und/oder Signaturen entspricht, kann mit den Ausgaben des DNN verglichen werden, die unter Verwendung der Motive, Wasserzeichen und/oder Signaturen erzeugt werden. Wenn die Genauigkeit der Vorhersagen unter einem Schwellenwert liegt oder nicht mit den erwarteten Vorhersagen des DNN übereinstimmt, kann festgestellt werden, dass die Hardware und/oder Software einen Fehler aufweist - beispielsweise einen vorübergehenden, einen zeitweiligen oder einen permanenten Fehler. Wenn ein Fehler festgestellt wird, können Abschnitte des Systems, die von den Berechnungen des DNN abhängen, abgeschaltet werden, oder es können redundante Systeme anstelle des primären Systems verwendet werden. Wenn kein Fehler festgestellt wird, kann sich das System auf die Berechnungen des DNN verlassen.

Description

  • HINTERGRUND
  • Autonome Fahrsysteme und fortschrittliche Fahrerassistenzsysteme ((Advanced Driver Assistance System) ADAS) können Sensoren (wie z. B. Kameras) nutzen, um verschiedene Aufgaben auszuführen - wie z. B. ohne Einschränkung Spurhaltung, Spurwechsel, Spurzuweisung, Fahrspurerkennung, Objekterkennung, Pfadplanung, Kamerakalibrierung und Lokalisierung. Zur Ausführung vieler dieser Aufgaben können maschinelle Lernmodelle - und insbesondere Deep Neural Networks (DNNs) - verwendet werden, um zumindest einen Teil der Verarbeitung durchzuführen. Damit diese Systeme mit einem für autonome oder teilautonome Fahrfunktionen erforderlichen Sicherheitsniveau arbeiten können, müssen die maschinellen Lernmodelle über die gesamte Lebensdauer ihrer Anwendung wie vorgesehen arbeiten.
  • Die Software und/oder Hardware, die zur Ausführung dieser DNNs verwendet wird, kann jedoch durch eine Vielzahl von Quellen beeinträchtigt werden - was zu vorübergehenden Fehlern und/oder permanenten Fehlern führt -, die zu ungenauen Vorhersagen führen können, die möglicherweise die Funktionsfähigkeit der DNNs beeinträchtigen. Mögliche Ursachen für Fehler in DNNs können beispielsweise Hardware-Fehler in den Verarbeitungseinheiten, die die DNNs ausführen, und/oder Software-Fehler des zugrunde liegenden DNNs aufweisen. So kann die Fähigkeit, Fehler in Verbindung mit den DNNs robust und genau zu erkennen, es den autonomen und/oder ADAS-Systemen ermöglichen, kritische Entscheidungen in Echtzeit oder nahezu in Echtzeit zu treffen - etwa um Korrekturmaßnahmen für ein effektives und sicheres Fahren vorzuschlagen oder umzusetzen. Zum Beispiel kann die genaue, effiziente und rechtzeitige Identifizierung von DNN-Fehlern es einem System ermöglichen, zu erkennen, wenn Operationen des Systems, die auf Vorhersagen des DNN beruhen, beeinträchtigt sind, und es dem System infolgedessen ermöglichen, korrigierende Operationen durchzuführen, wie z. B. die Kontrolle wieder an einen menschlichen Fahrer zu übergeben oder ein Sicherheitsmanöver auszuführen (z. B. an den Straßenrand zu fahren).
  • Bei herkömmlichen Systemen kann die Ausfallsicherheit und/oder Fehlerabdeckung eines DNN durch eine redundante Ausführung des DNN bestimmt werden. Beispielsweise können zwei oder mehr Instanzen eines DNN auf denselben Eingabedaten ausgeführt werden, und die Ausgaben der zwei oder mehr Instanzen können miteinander verglichen werden, um festzustellen, ob Unterschiede bestehen. Die Ausführung mehrerer Instanzen eines DNN ist jedoch sowohl speicher- als auch rechenintensiv und erfordert - in einigen Szenarien - auch eine zusätzliche Hardwareauslastung für die Ausführung der gleichlaufenden Instanzen. Darüber hinaus erfordern diese konventionellen Systeme, dass die Ausgaben der zwei oder mehr Instanzen des DNNs verglichen werden, oft bei jeder Iteration, was den Rechenaufwand darüber hinaus erhöht. Aufgrund des Rechenaufwands dieser konventionellen Ansätze für das zugrunde liegende System kann die Ausführung dieser Verfahren eine Fehlererkennung in Echtzeit oder nahezu in Echtzeit verhindern.
  • ZUSAMMENFASSUNG
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf die Fehlererkennung in neuronalen Netzen. Es werden Systeme und Verfahren offenbart, die Techniken zur Erkennung von transienten und/oder permanenten Fehlern in einer oder mehreren Komponenten eines Hardware- und/oder Softwaresystems unter Verwendung einer einzigen Instanz eines neuronalen Netzes verwenden.
  • Im Gegensatz zu konventionellen Systemen, wie den oben beschriebenen, kann das System der vorliegenden Offenbarung ein tiefes neuronales Netz (DNN) implementieren, um Fehler zumindest in der Hardware und/oder Software, die das DNN ausführt, zu erkennen, indem Motive, Wasserzeichen und/oder Signaturen (z. B. Signaturbilder) als Eingaben - oder Modifikationen von Eingaben - des DNN verwendet werden. Als Ergebnis der hier beschriebenen Verfahren kann die Fehleranalyse mit einer im Vergleich zu herkömmlichen Ansätzen erhöhten Fehlerabdeckung mit einer einzigen Instanz eines DNN durchgeführt werden - dadurch wird der Rechenaufwand reduziert und ein Einsatz in Echtzeit oder nahezu in Echtzeit ermöglicht. Aufgrund der Echtzeitfähigkeit des vorliegenden Systems kann beispielsweise die Fehlererkennung in DNNs als Teil eines eingebauten Selbsttestsystems ((Built-In Self-Test) BIST) ausgeführt werden, das im Einsatz arbeitet.
  • Motive, Wasserzeichen und/oder Signaturen können als Eingabe für das DNN verwendet oder an Eingaben (z. B. an Sensordaten) angefügt werden. Bei nicht einschränkenden Ausführungsformen können die Motive, Wasserzeichen und/oder Signaturen so ausgewählt werden, dass sie die nachgelagerte Aufgabe, für die das DNN bereits trainiert ist, nutzen. Wenn das DNN beispielsweise für die Objekterkennung oder speziell für die Erkennung von Fahrzeugen, Fußgängern und Radfahrern trainiert ist, können die Motive, Wasserzeichen und/oder Signaturen Fahrzeuge, Fußgänger und/oder Radfahrer darstellen. Vorhersagen des DNN in Bezug auf die Motive, Wasserzeichen und/oder Signaturen können mit erwarteten Vorhersagen in Bezug auf dieselben verglichen werden, und Inkonsistenzen können analysiert werden, um festzustellen, ob ein Fehler vorliegt. Durch das Anfügen und/oder Verwenden der Motive, Wasserzeichen und/oder Signaturen als Eingabe können die Motive, Wasserzeichen und/oder Signaturen von der einzigen Instanz eines DNN verarbeitet werden - wodurch die Rechenressourcen im Vergleich zu herkömmlichen Systemen, die mehrere Instanzen eines DNN für die Fehlererkennung benötigen, reduziert werden, während gleichzeitig die Laufzeit verringert wird, um einen Einsatz in Echtzeit zu ermöglichen.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zur Fehlererkennung in neuronalen Netzen werden im Folgenden unter Bezugnahme auf die beigefügten Figuren im Detail beschrieben, wobei:
    • 1 ist ein beispielhaftes Datenflussdiagramm, das ein Verfahren zur Erkennung von transienten Fehlern in neuronalen Netzen gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 2 weist eine beispielhafte Darstellung eines neuronalen Netzes auf, das zur Erkennung von Objekten trainiert wurde, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 3A-3B weisen beispielhafte Darstellungen eines Anfügens von Motiven zu einem Eingabebild auf, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 4 ist eine beispielhafte Darstellung eines Verfahrens zum Analysieren von Ausgaben eines Netzwerks zur Fehlererkennung gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 5 ist eine beispielhafte Darstellung eines Verfahrens zur Fehlererkennung in einem neuronalen Netz gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6 ist ein Flussdiagramm, das ein Verfahren zum Erkennen von Fehlern in einem neuronalen Netz unter Verwendung von Motiven und/oder Wasserzeichen gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 7 ist ein beispielhaftes Datenflussdiagramm, das ein Verfahren zum Erkennen von Fehlern in einem neuronalen Netzwerk gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt;
    • 8A-8C weisen beispielhafte Darstellungen von Signatureingaben auf, die zur Bestimmung von Fehlern in neuronalen Netzen verwendet werden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 9 ist ein Flussdiagramm, das ein Verfahren zum Erkennen von Fehlern in einem neuronalen Netz unter Verwendung von Signaturen darstellt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10A ist eine Darstellung eines Beispiels eines autonomen Fahrzeugs, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10B ist ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug von 10A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug von 10A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10D ist eine Systemdarstellung für die Kommunikation zwischen dem/den cloud-basierten Server(n) und dem beispielhaften autonomen Fahrzeug von 10A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung; und
    • 11 ist ein Blockdiagramm einer beispielhaften Recheneinrichtung, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
  • DETAILLIERTE BESCHREIBUNG
  • Es werden Systeme und Verfahren offenbart, die sich auf die Fehlererkennung in neuronalen Netzen beziehen. Die hierin beschriebenen Systeme und Verfahren können in den Bereichen Augmented Reality, Virtual Reality, Robotik, Sicherheit und Überwachung, medizinische Bildgebung, autonome oder halbautonome Maschinenanwendungen, Spiele, Finanzdienstleistungen, Marketing und Vertrieb, Regierungsanwendungen, Öl- und Gastechnologie, Wettervorhersage und/oder anderen Technologiebereichen eingesetzt werden, in denen neuronale Netze oder andere maschinelle Lernmodelle verwendet werden - und somit von der Fehlererkennung in Bezug auf dieselben profitieren können. Obwohl die vorliegende Offenbarung in Bezug auf ein beispielhaftes autonomes Fahrzeug 1000 beschrieben werden kann (hierin alternativ als „Fahrzeug 1000“ oder „autonomes Fahrzeug 1000“ bezeichnet, von dem ein Beispiel in Bezug auf 10A-10D beschrieben wird), ist dies nicht als einschränkend gemeint. Beispielsweise können die hier beschriebenen Systeme und Verfahren ohne Einschränkung von nicht-autonomen Fahrzeugen, teilautonomen Fahrzeugen (z. B. in einem oder mehreren adaptiven Fahrerassistenzsystemen (ADAS)), Robotern, Lagerfahrzeugen, Geländefahrzeugen, fliegenden Luftschiffen, Booten, Shuttles, Notarzteinsatzfahrzeugen, Motorrädern, elektrischen oder motorisierten Fahrrädern, Flugzeugen, Baufahrzeugen, Unterwasserfahrzeugen, Drohnen und/oder anderen Fahrzeugtypen verwendet werden. Obwohl sich die Fehler der vorliegenden Offenbarung in erster Linie auf alle transienten oder permanenten Fehler beziehen können, die mit der Hardware und/oder Software des zugrundeliegenden Systems zusammenhängen, ist dies nicht als Einschränkung zu verstehen. Wenn hier beispielsweise die Erkennung transienter Fehler beschrieben wird, können solche Beispiele auch für die Erkennung permanenter Fehler verwendet werden, und umgekehrt. In ähnlicher Weise können die Systeme und Verfahren der vorliegenden Offenbarung zusätzlich zu oder alternativ zu transienten und permanenten Fehlern für eine Erkennung intermittierender Fehler und/oder die Erkennung anderer Arten von Fehlern genutzt werden, ohne dass dies vom Anwendungsbereich der vorliegenden Offenbarung abweicht.
  • VERFAHREN ZUR ERKENNUNG TRANSIENTER FEHLER
  • Wie es hierin beschrieben ist, erkennt das aktuelle System im Gegensatz zu konventionellen Ansätzen der Fehlererkennung in neuronalen Netzen transiente und/oder permanente Fehler in DNNs mittels Motiven, Wasserzeichen und/oder Signaturen (z. B. Signaturbildern) als Eingabe - oder als Modifikationen von Eingaben - des DNNs. Infolgedessen kann die Fehleranalyse des DNN mit einer einzigen Instanz eines DNN durchgeführt werden - was den Rechenaufwand im Vergleich zu herkömmlichen Systemen reduziert und einen Einsatz in Echtzeit oder nahezu in Echtzeit ermöglicht. Bei einigen nicht einschränkenden Ausführungsformen, wie z. B. bei der Erkennung von transienten Fehlern, können Motive oder Wasserzeichen Eingabedaten (z. B. an Bilddaten, die für Bilder repräsentativ sind) angefügt werden, um eine Fehlererkennung mit Hilfe der DNNs zu ermöglichen. Beispielsweise können Motive oder Wasserzeichen, die den Typen von Vorhersagen entsprechen, für die das DNN trainiert wurde, den Eingabedaten beigefügt werden, wodurch das bereits trainierte DNN für die Fehlervorhersage genutzt wird. Bei solchen Ausführungsformen können die Vorhersagen des DNN in Bezug auf die Motive oder Wasserzeichen mit den erwarteten Vorhersagen des DNN in Bezug auf die Motive oder Wasserzeichen verglichen werden, und Inkonsistenzen können analysiert werden, um festzustellen, ob ein Fehler vorhanden ist.
  • Mit Bezug auf die Erkennung eines Fehlers (von Fehlern) unter Verwendung eines DNN können Sensordaten (z. B. Bilder, Videos, Tiefenkarten, Punktwolken usw.) von Sensoren (z. B. Kameras, LIDAR, RADAR usw.) empfangen werden, die an einem Fahrzeug (z. B. einem autonomen Fahrzeug, einem halbautonomen Fahrzeug usw.) angeordnet oder anderweitig diesem zugeordnet sind. Motive können in die Sensordaten eingeführt (z. B. beigefügt) werden, um Eingabedaten zu erzeugen, die die Sensordaten und die Motive repräsentieren. Die Eingabedaten können auf ein DNN angewendet werden, das so trainiert ist, dass es Vorhersagen (z. B. Orte und/oder Klassen von Objekten, Orte von Linien, Fahrspuren, Schildern usw., Kreuzungen, Pfaden usw.) auf der Grundlage der Eingabedaten erzeugt. Als solche können die Motive oder Wasserzeichen den Typen und/oder Klassen von Objekten, Linien usw. entsprechen, für deren Vorhersage das DNN trainiert ist.
  • Das DNN kann dann Vorhersagen ausgeben, die den Sensordaten und den in den Eingabedaten enthaltenen Motiven entsprechen. Ein Fehlerdetektor kann dann verwendet werden, um die Vorhersagen des DNN mit erwarteten Vorhersagen zu vergleichen, die den Motiven entsprechen. Die erwarteten Vorhersagen können z. B. tatsächliche Orte und/oder Klassenkennzeichen der Motive aufweisen, die zum Zeitpunkt der Einführung der Motive in die Eingabedaten gespeichert worden sein können. Der Vergleich kann den Vergleich von Orten und/oder Klassenkennzeichen aufweisen, die den Eingabedaten entsprechen, um sicherzustellen, dass die Vorhersagen zumindest genaue oder erwartete Vorhersagen in Bezug auf die Motive aufweisen. Basierend auf dem Vergleich kann die Genauigkeit oder Stabilität des Netzes bzw. Netzwerks bestimmt werden, z. B. durch eine Identifizierung, ob die Vorhersagen des DNN nicht den dem Fehlerdetektor bekannten Motivinformationen entsprechen oder die Vorhersagen außerhalb einer Genauigkeitsschwelle in Bezug auf die Motivinformation liegen.
  • Wenn zum Beispiel die erwarteten Vorhersagen, die den Motiven entsprechen, in den Vorhersagen des DNN dargestellt werden, können die Vorhersagen des DNN als genau bestimmt werden, und das DNN oder die unterstützende Hardware und/oder Software kann zumindest in Bezug auf die Verarbeitung des DNN als fehlerfrei angesehen werden. Wenn die erwarteten Vorhersagen, die den Motiven entsprechen, nicht in den Vorhersagen des DNN dargestellt werden, können in ähnlicher Weise die Vorhersagen des DNN als ungenau bestimmt werden, die Vorhersagen können vom System verworfen oder ignoriert werden, und/oder das DNN oder die unterstützende Hardware und/oder Software können als einen Fehler - wie z. B. einen transienten Fehler - aufweisend betrachtet werden. Bei solchen Beispielen können bei Erkennen eines Fehlers Korrekturmaßnahmen ergriffen werden, wie z. B. die Übergabe der Kontrolle des Fahrzeugs an den Fahrer, die Durchführung eines Sicherheitsmanövers und/oder die Auslagerung oder Übertragung der Verarbeitung des DNN auf andere Komponenten - z. B. eine redundante Architektur. Bei einigen Beispielen können die Motive bei jeder Iteration einer Sensordateneingabe in das DNN angewendet werden. Auf diese Weise kann das System fortlaufend Fehler berücksichtigen und so die Sicherheit des Systems erhöhen. Dies ist jedoch nicht als Einschränkung gedacht, und die Motive können in unterschiedlichen Intervallen beigefügt werden, z. B. zufällig, bei jeder zweiten Instanz von Eingabedaten, bei jeder dritten Instanz von Eingabedaten, bei jeder zehnten Instanz von Eingabedaten, und so weiter.
  • Bei einigen Beispielen können die Motive aus Mustern ausgewählt werden, auf die das DNN während des Trainings gestoßen ist. Zum Beispiel kann das DNN für die Objekterkennung trainiert werden, was eine Ausgabe von Vorhersagen einschließt, die den vorhergesagten Orten von Objekten entsprechen, die in den Sensordaten erkannt wurden. Bei einem solchen Beispiel können die Motive so ausgewählt werden, dass sie mit Objekten übereinstimmen, auf die das neuronale Netz während des Trainings im Trainingsdatensatz gestoßen ist. Auf diese Weise kann das Training des DNN genutzt werden, um festzustellen, ob das Netz bzw. Netzwerk transiente Fehler aufweist, und das DNN muss möglicherweise nicht neu trainiert werden, um die Motive zu erkennen. Darüber hinaus können Ort, Anzahl, Klasse und/oder Typ bzw. Art der Motive bei verschiedenen Iterationen der Eingabedaten geändert werden, wodurch ein robustes Fehlererkennungssystem mit erhöhter Fehlerabdeckung erzeugt wird.
  • Unter Bezugnahme auf 1 ist 1 ein beispielhaftes Datenflussdiagramm, das ein beispielhaftes Verfahren 100 zur Fehlererkennung in neuronalen Netzen unter Verwendung von Motiven und/oder Wasserzeichen gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Während die hierin in Bezug auf 1 hauptsächlich beschriebenen Erkennungsarten Erkennungen von transienten oder permanenten Fehlern sind, ist dies nicht als einschränkend zu verstehen und dient nur als Beispiel. Beispielsweise kann das Verfahren 100 verwendet werden, um eine beliebige Anzahl von Attributen und/oder Ursachen der Fehler, wie die hier beschriebenen, zu erkennen und zu klassifizieren, ohne dass dies vom Umfang der vorliegenden Offenbarung abweicht.
  • Das Verfahren 100 kann ein Erzeugen und/oder Empfangen von Sensordaten 102 von einem oder mehreren Sensoren aufweisen. Die Sensordaten 102 können, als nicht einschränkendes Beispiel, von einem oder mehreren Sensoren eines Fahrzeugs (z.B. dem Fahrzeug 1000 der 10A-10C, welches hierin beschrieben ist) empfangen werden. Die Sensordaten 102 können von dem Fahrzeug und innerhalb des Verfahrens 100 verwendet werden, um Fehler in einem neuronalen Netz in Echtzeit oder nahezu in Echtzeit zu erkennen und zu klassifizieren. Die Sensordaten 102 können ohne Einschränkung Sensordaten 102 von jedem der Sensoren des Fahrzeugs aufweisen, einschließlich, zum Beispiel und mit Bezug zu 10A-10C, (einen) GNSS-Sensor(en) 1058 (z. B. (einen) Global-Positioning-System-Sensor(en)), (einen) RADAR-Sensor(en) 1060, (einen) Ultraschallsensor(en) 1062, (einen) LIDAR-Sensor(en) 1064, (einen) IMU-Sensor(en) 1066 (z. B. (einen) Beschleunigungsmesser, (ein) Gyroskop(e), (einen) Magnetkompass(e), (ein) Magnetometer, usw.), (ein) Mikrofon(e) 1076, (eine) Stereokamera(s) 1068, (eine) Weitwinkelkamera(s) 1070 (z. B. Fischaugenkameras), Infrarotkamera(s) 1072, Umgebungskamera(s) 1074 (z. B. 360-Grad-Kameras), (eine) Fern- und/oder Mittelstreckenkamera(s) 1078, (ein) Geschwindigkeitssensor(en) 1044 (z. B. zur Messung der Geschwindigkeit des Fahrzeugs 1000) und/oder andere Sensortypen. Als weiteres Beispiel können die Sensordaten 102 virtuelle Sensordaten aufweisen, die von einer beliebigen Anzahl von Sensoren eines virtuellen Fahrzeugs oder eines anderen virtuellen Objekts erzeugt werden. In einem solchen Beispiel können die virtuellen Sensoren einem virtuellen Fahrzeug oder einem anderen virtuellen Objekt in einer simulierten Umgebung entsprechen (z. B. zum Testen, Trainieren und/oder Validieren der Leistung des neuronalen Netzes), und die virtuellen Sensordaten können Sensordaten darstellen, die von den virtuellen Sensoren in der simulierten oder virtuellen Umgebung erfasst wurden. Durch die Verwendung der virtuellen Sensordaten kann/können das/die hier beschriebene(n) maschinelle(n) Lernmodell(e) 108 unter Verwendung simulierter Daten in einer simulierten Umgebung getestet, trainiert und/oder validiert werden, was das Testen extremerer Szenarien außerhalb einer realen Umgebung ermöglichen kann, in der solche Tests weniger sicher sein können.
  • Bei einigen Ausführungsformen können die Sensordaten 102 aufweisen Bilddaten, die ein oder mehrere Bilder repräsentieren, Bilddaten, die ein Video repräsentieren (z. B. Schnappschüsse von Videos), und/oder Sensordaten, die Darstellungen von Sensorfeldern von Sensoren repräsentieren (z. B. Tiefenkarten für LIDAR-Sensoren, ein Wertediagramm für Ultraschallsensoren usw.). Wenn die Sensordaten 102 Bilddaten aufweisen, kann jede Art von Bilddatenformat verwendet werden, wie z. B. und ohne Einschränkung komprimierte Bilder wie in den Formaten Joint Photographic Experts Group (JPEG) oder Luminanz/Chrominanz (YUV), komprimierte Bilder als Frames, die aus einem komprimierten Videoformat wie H.264 /Advanced Video Coding (AVC) oder H.265/High Efficiency Video Coding (HEVC), Rohbilder, wie sie von einem Red Clear Blue (RCCB), Red Clear (RCCC) oder einer anderen Art von Bildsensor stammen, und/oder andere Formate. Darüber hinaus können die Sensordaten 102 in einigen Beispielen innerhalb des Verfahrens 100 ohne jegliche Vorverarbeitung verwendet werden (z. B. in einem rohen oder erfassten Format), während in anderen Beispielen die Sensordaten 102 einer Vorverarbeitung unterzogen werden können (z. B. Rauschausgleich, Demosaicing, Skalierung, Beschneidung, Vergrößerung, Weißabgleich, Tonkurvenanpassung usw., wie z. B. unter Verwendung eines Sensordaten-Vorprozessors (nicht dargestellt)). Wie es hier verwendet wird, können sich die Sensordaten 102 auf unverarbeitete Sensordaten, vorverarbeitete Sensordaten oder eine Kombination davon beziehen.
  • Das (die) Motiv(e) 104 kann (können) ohne Einschränkung Motive und/oder Wasserzeichen aufweisen, die in die Sensordaten 102 aufgenommen (z. B. beigefügt) werden, um kombinierte Sensordaten 106 zu erzeugen. Bei einigen Ausführungsformen kann/können das/die Motiv(e) 104 durch Bilddaten repräsentiert werden, die den Typen von Vorhersagen entsprechen, für die das/die maschinelle(n) Lernmodell(e) 108 trainiert ist/sind. Zum Beispiel kann/können für ein maschinelles Lernmodell bzw. maschinelle Lernmodelle 108, das bzw. die darauf trainiert ist bzw. sind, Objekte wie Autos, Lastwagen, Straßenschilder, Fußgänger usw. zu erkennen und/oder zu klassifizieren, das/die Motiv(e) 104 als Bild eines Autos, Lastwagens, Straßenschilds und/oder Fußgängers gewählt werden. In einem anderen Beispiel kann/können das/die Motiv(e) 104 für (ein) maschinelle(s) Lernmodell(e) 108, das/die zur Erkennung und/oder Klassifizierung von Fahrspuren trainiert wurde(n), als zusätzliche Linie(n) oder Fahrbahnmarkierung(en) einer Fahrspur gewählt werden. Als solche kann/können bei einigen Beispielen das/die Motiv(e) 104 repräsentativ für Muster sein, auf die das/die maschinelle(n) Lernmodell(e) 108 bereits während des Trainings und/oder der Inferenz gestoßen ist/sind. In einem solchen Beispiel kann/können das/die Motiv(e) 104 so ausgewählt werden, dass sie mit Objekten übereinstimmen, auf die das/die maschinelle(n) Lernmodell(e) 108 während des Trainings in einem Trainingsdatensatz gestoßen ist/sind. Auf diese Weise kann das Training des maschinellen Lernmodells/der maschinellen Lernmodelle 108 genutzt werden, um zu bestimmen, ob das Netz transiente Fehler aufweist, und das maschinelle Lernmodell/die maschinellen Lernmodelle 108 müssen möglicherweise nicht erneut trainiert oder separat trainiert werden, um das/die Motiv(e) 104 zu erkennen.
  • Bei anderen Beispielen kann/können das/die maschinelle(n) Lernmodell(e) 108 unter Verwendung von Trainingssensordaten trainiert werden, die den kombinierten Sensordaten 106 ähnlich sind. Zum Beispiel können während des Trainings die Trainingssensordaten mit dem/den Motiv(en) 104 beigefügt oder erweitert werden, so dass das/die maschinelle(n) Lernmodell(e) 108 trainiert werden, um das/die Motiv(e) 104 direkt vorherzusagen. Bei solchen Beispielen kann/können das/die maschinelle(n) Lernmodell(e) 108 für (eine) erste Aufgabe(n) in Bezug auf die Trainingssensordaten und (eine) zweite Aufgabe(n) in Bezug auf das/die Motiv(e) 104 trainiert werden. Als nicht einschränkendes Beispiel kann/können das/die maschinelle(n) Lernmodell(e) 108 auf Tiefenkarten trainiert werden, die LIDAR-Daten entsprechen, und die Tiefenkarten können mit einem oder mehreren Motiven 104 von zu erkennenden Objekten versehen werden. Als solche kann/können das/die maschinelle(n) Lernmodell(e) 108 trainiert werden, um Vorhersagen unter Verwendung der Tiefenkarten zu machen, während sie auch trainiert werden, um verschiedene Vorhersagen entsprechend dem/den Motiv(en) 104 zu machen. Bei anderen Ausführungen kann die Verwendung des/der Motive(s) 104 beim Training für dieselbe Aufgabe als die primäre Aufgabe des/der maschinellen Lernmodells/Lernmodelle 108 (z. B. Objekterkennung) erfolgen.
  • Die kombinierten Sensordaten 106 können Daten aufweisen, die eine Kombination aus den Sensordaten 102 und dem/den Motiv(en) 104 darstellen. Die kombinierten Sensordaten 106 können als Eingabe für das/die maschinelle(n) Lernmodell(e) 108 verwendet werden. Bei einigen Beispielen kann in den kombinierten Sensordaten 106 bei jeder Iteration ein ähnlicher Typ, eine ähnliche Anzahl und/oder eine ähnliche Klasse von Motiv(en) 104 oder derselbe Typ, dieselbe Anzahl und/oder dieselbe Klasse von Motiv(en) 104 enthalten sein. Bei anderen Beispielen können bei jeder Iteration ein anderer Typ, eine andere Anzahl oder eine andere Klasse von Motiv(en) 104 in die Sensordaten 102 eingebracht werden. Außerdem kann der Ort und/oder die Größe des/der Motive(s) 104 über Iterationen hinweg konstant bleiben oder sich bei verschiedenen Iterationen ändern. Bei einigen Ausführungsformen können, um die Fehlerabdeckung zu erhöhen, die Orte, Typen, Anzahl, Klassen und/oder Größen des/der Motive(s) 104 bei verschiedenen Iterationen der kombinierten Sensordaten 106 geändert werden. Da beispielsweise verschiedene Abschnitte der zugrundeliegenden Hardware und/oder Software, die das/die maschinelle(n) Lernmodell(e) 108 verarbeiten, Informationen verarbeiten können, die verschiedenen Abschnitten der kombinierten Sensordaten 106 entsprechen, kann durch Verschieben, Ändern der Größe oder anderweitiges Ändern des/der Motive(s) 104 in verschiedenen Iterationen ein größerer Umfang der zugrundeliegenden Hardware und/oder Software auf Fehler geprüft werden.
  • Bei nicht einschränkenden Ausführungsformen kann/können das/die maschinelle(n) Lernmodell(e) 108 unter Verwendung von Trainingsdaten (z. B. Trainingsbilder oder andere Trainingsdatendarstellungen) trainiert werden, die einem vollständigen Bild oder einer anderen Darstellung (z. B. ohne Motiv(e) 104) mit einer ersten räumlichen Auflösung entsprechen. Bei solchen Ausführungsformen können während der Inferenz die Sensordaten 102 - oder das Bild oder eine andere Darstellung davon - von der ersten räumlichen Auflösung auf eine zweite räumliche Auflösung herunterskaliert werden, und das/die Motiv(e) 104 kann/können den Sensordaten 102 beigefügt werden, um die kombinierten Sensordaten 106 mit der ersten räumlichen Auflösung zu erzeugen. So können die Trainingssensordaten dieselbe räumliche Auflösung aufweisen wie die kombinierten Sensordaten 106, die das/die Motiv(e) 104 aufweisen, wodurch das/die maschinelle(n) Lernmodell(e) 108 für eine nachgelagerte Aufgabe (z. B. Objekterkennung, Linienregression usw.) unter Verwendung von Trainingssensordaten trainiert werden kann/können, die sich von den während der Inferenz verwendeten kombinierten Sensordaten 106 unterscheiden (z. B. kein(e) Motiv(e) 104 aufweisen). Bei solchen Ausführungsformen kann/können das/die Motiv(e) 104, wie es hier beschrieben ist, Repräsentationen darstellen, auf die das/die maschinelle(n) Lernmodell(e) 108 trainiert wurde(n), um sie zu erkennen oder um sie einer Regressionsanalyse zu unterziehen - wie z. B. bestimmte Typen von Objekten oder andere Merkmale der Umgebung. So können bei einem maschinellen Lernmodell bzw. maschinellen Lernmodellen 108, das bzw. die für eine bestimmte Aufgabe trainiert wurde(n), ohne dass eine Fehlererkennung beabsichtigt ist, die hier beschriebenen Fehlererkennungsverfahren (z. B. Beifügen oder anderweitiges Hinzuaddieren von Motiv(en) 104 zu Sensordaten 102) bei der Inferenz implementiert werden, ohne dass die Leistung des maschinellen Lernmodells bzw. der maschinellen Lernmodelle 108 beeinträchtigt wird oder ein erneutes Training erforderlich ist. Als nicht einschränkende Beispiele veranschaulichen die 3A-3B unter anderem, wie ein Originalbild verkleinert und mit einem oder mehreren Motiven 104 versehen werden kann, um kombinierte Sensordaten 106 zu erzeugen.
  • Der Ort, die Klasse, die Anzahl, die Größe und/oder der Typ des/der Motive(s) 104 von den kombinierten Sensordaten 106 kann als erwartete Vorhersage(n) 112 verfolgt und/oder gespeichert werden. Wenn das/die Motiv(e) 104 bei jeder Iteration feststeht/stehen, kann/können die erwartete(n) Vorhersage(n) 112 ebenfalls feststehen und nur einmal gespeichert werden. Wenn das/die Motiv(e) 104 dynamisch ist/sind, kann der Ort, die Klasse, die Anzahl, die Größe und/oder der Typ des/der Motive(s) 104 über die Zeit verfolgt und zur Verwendung durch einen Fehlerdetektor 114 gespeichert werden, um zu bestimmen, ob ein Fehler vorliegt oder nicht. Zum Beispiel kann der Fehlerdetektor 114 Daten von einer Ausgabe(n) 110 mit der (den) erwarteten Vorhersage(n) 112 vergleichen, um zu sehen, ob die Ausgabe(n) 110 mit der (den) erwarteten Vorhersage(n) 112 übereinstimmt/en (z. B. wenn ein Motiv ein Fahrzeug der Klasse A in der oberen rechten Ecke eines Bildes ist, kann der Fehlerdetektor 114 nach Daten in der (den) Ausgabe(n) 110 suchen, die anzeigen, dass ein Fahrzeug der Klasse A in der oberen rechten Ecke eines Bildes vorhanden ist - wie es z. B. durch die Position einer Bounding Box angezeigt wird). Bei einigen Beispielen kann/können die erwartete(n) Vorhersage(n) 112 als eine Datenstruktur gespeichert werden, die Pixelpositionen speichert, an denen sich jedes Motiv 104 und/oder ein entsprechender Typ und/oder eine Klasse des Motivs/der Motive 104 befindet.
  • Das (die) maschinelle(n) Lernmodell(e) 108 kann (können) als Eingabe ein oder mehrere Bilder oder andere Datendarstellungen (z. B. Tiefenkarten oder Punktwolken aus LIDAR-Daten, Bilder aus RADAR-Daten usw.) verwenden, die durch die kombinierten Sensordaten 106 dargestellt werden, um (eine) Ausgabe(n) 110 zu erzeugen. Bei einem nicht einschränkenden Beispiel kann/können das/die maschinelle(n) Lernmodell(e) 108 als Eingabe ein Bild/mehrere Bilder erhalten, das/die durch die kombinierten Sensordaten 106 dargestellt wird/werden (z. B. nach dem Beifügen von Motiv(en) 104 zu den Sensordaten 102), um die Ausgabe(n) 110 zu erzeugen. Obwohl hier Beispiele in Bezug auf die Verwendung von neuronalen Netzen und insbesondere DNNs als maschinelle(s) Lernmodell(e) 108 beschrieben werden, ist dies nicht als einschränkend zu verstehen. Beispielsweise und ohne Einschränkung kann/können das/die hier beschriebene(n) maschinelle(n) Lernmodell(e) 108 jede Art von maschinellem Lernmodell aufweisen, wie z. B. (ein) maschinelle(s) Lernmodell(e) unter Verwendung von linearer Regression, logistischer Regression, Entscheidungsbäumen, Support Vector Machines (SVM), Naive Bayes, k-nearest neighbor (Knn), K-Means-Clustering, Random Forest, Dimensionalitätsreduktionsalgorithmen, Gradient-Boosting-Algorithmen, neuronalen Netzen (z. B. Auto-Encoder, Faltungsalgorithmen, rekurrente Algorithmen, Perceptrons, Long/Short Term Memory (LSTM), Hopfield, Boltzmann, Deep Belief, Deconvolutional, Generative Adversarial, Liquid State Machine, usw.) und/oder andere Arten von maschinellen Lernmodellen. Darüber hinaus kann es sich bei dem/den maschinellen Lernmodell(en) 108 um ein beliebiges maschinelles Lernmodell handeln, das darauf trainiert ist, beliebige Typen und/oder Klassen von Objekten, Linien usw. zu erkennen, für deren Vorhersage das DNN trainiert ist. So kann es sich bei dem (den) maschinellen Lernmodell(en) 108 um ein Objekterkennungsmodell, ein Segmentierungsmodell, ein Fahrspurerkennungsmodell usw. handeln.
  • Die Ausgabe(n) 110 des/der maschinellen Lernmodelle(s) 108 kann/können Vorhersagen aufweisen, die den kombinierten Sensordaten 106 entsprechen. Zum Beispiel kann (können) die Ausgabe(n) des (der) maschinellen Lernmodells (-modelle) Typen, Klassen, Größen, Orte, Werte und/oder andere Informationen aufweisen, die den kombinierten Sensordaten 106 entsprechen. Zum Beispiel kann/können die Ausgabe(n) 110 (eines) maschinellen/r Lernmodells/e 108, das/die für die Erkennung von Objekten trainiert wurde(n), Pixelpositionen für Vertices von Begrenzungsformen aufweisen, die den Objekten und/oder damit verbundenen Klassenkennzeichen entsprechen. Bei einigen Ausführungsformen können die Ausgaben des/der maschinellen Lernmodelle(s) 108 für eine oder mehrere der Vorhersagen Konfidenzwerte aufweisen. Zum Beispiel können für jedes Pixel in einem Bereich eines vorhergesagten Musters oder für jedes vorhergesagte Muster (oder Vertices davon) Konfidenzwerte für jeden Klassentyp ausgegeben werden, für den das/die maschinelle(n) Lernmodell(e) 108 trainiert ist/sind, um die Klasse des Objekts vorherzusagen, wobei die höchste Konfidenz als die Klasse des Objekts bestimmt wird. Sobald die Klasse mit der höchsten Konfidenz bestimmt ist, kann diese Klasse mit der/den erwarteten Vorhersage(n) 112 verglichen werden, um festzustellen, ob es ein Problem gibt oder nicht - und letztendlich, ob ein Fehler vorliegt oder nicht.
  • Um die Fehler zu bestimmen, wie es hierin beschrieben ist, kann/können die Ausgabe(n) 110 des/der maschinellen Lernmodells/Modelle 108 und die erwartete(n) Vorhersage(n) 112 durch den Fehlerdetektor 114 analysiert oder verglichen werden, um die Genauigkeit der Ausgabe(n) 110 in Bezug auf die erwartete(n) Vorhersage(n) 112 zu bestimmen, die aus den kombinierten Sensordaten 106 bestimmt wurde(n). Als ein weiteres nicht-begrenzendes Beispiel in Bezug auf die Objekterkennung kann für jedes Motiv der in die Sensordaten 102 eingebrachten Motive 104 die erwartete(n) Vorhersage(n) 112, die den tatsächlichen Ort und/oder das tatsächliche Klassenkennzeichen in Bezug auf die kombinierten Sensordaten 106 aufweist/en, mit den vorhergesagten Orten und/oder den vorhergesagten Klassenkennzeichen in der/den Ausgabe(n) 110 verglichen werden, um die Genauigkeit der Vorhersagen oder Ergebnisse zu überprüfen.
  • Basierend auf dem Vergleich kann die Genauigkeit oder Stabilität des/der maschinellen Lernmodells/e 108 bestimmt werden, z. B. durch Identifizierung, ob die Vorhersagen oder die Ausgabe(n) 110 des/der maschinellen Lernmodells/e 108 nicht mit der dem Fehlerdetektor 114 bekannten Motivinformation übereinstimmen oder die Vorhersagen außerhalb einer Genauigkeitsschwelle in Bezug auf die Motivinformation liegen. Bei einigen Beispielen kann der Fehlerdetektor 114, wenn die erwartete(n) Vorhersage(n) 112 für jedes Motiv (die Motive) 104 in der (den) Ausgabe(n) 110 dargestellt wird (werden), feststellen, dass die Vorhersagen des/der maschinellen Lernmodells/e 108 genau sind und die zugrunde liegende Hardware und/oder Software des/r maschinellen Lernmodells/e 108 keinen Fehler aufweist, In ähnlicher Weise kann der Fehlerdetektor 114 feststellen, dass die Vorhersagen des/der maschinellen Lernmodelle(s) 108 ungenau sind und die zugrundeliegende Hardware und/oder Software des/der maschinellen Lernmodelle(s) 108 einen Fehler aufweist, wenn die erwarteten Vorhersagen 112 nicht für jedes Motiv(e) 104 in der/den Ausgabe(n) 110 dargestellt werden. In einem Beispiel muss/müssen die Ausgabe(n) 110 eine Darstellung jedes der Motive 104 in den kombinierten Sensordaten 106 aufweisen, damit das/die maschinelle(n) Lernmodell(e) 108 als fehlerfrei bestimmt werden kann/können. Das/die maschinelle(n) Lernmodell(e) 108 kann/können als einen transienten Fehler aufweisend bestimmt werden, wenn sich die Ergebnisse des/der maschinellen Lernmodells/e 108 als ungenau erweisen. Dies kann es dem System ermöglichen, eine Fehlererkennung mit einer einzigen Instanz des/der maschinellen Lernmodells/e 108 durchzuführen, während - bei einigen Ausführungsformen - das Training des/der maschinellen Lernmodells/e 108 genutzt wird, um Fehler in Echtzeit oder nahezu in Echtzeit zu erkennen.
  • Sobald eine Fehler- oder Nicht-Fehler-Bestimmung erfolgt ist, kann diese Information an eine oder mehrere Komponenten des Systems weitergegeben werden, um (eine) Steuerungsentscheidung(en) 116 zu treffen. Wenn es sich bei dem System beispielsweise um das hier beschriebene Fahrzeug 1000 handelt, kann die Fehlerbestimmung an eine oder mehrere Schichten eines Softwarestacks für autonomes Fahren (z. B. eine Planungsschicht, eine Steuerungsschicht, einen Weltmodell-Manager, eine Wahrnehmungsschicht, eine Hindernisvermeidungsschicht des Antriebsstapels, eine Betätigungsschicht des Fahrstacks usw.) weitergeleitet werden, um (eine) geeignete Steuerungsentscheidung(en) 116 zu treffen. Wenn beispielsweise die Vorhersagen in Bezug auf die Motivinformation außerhalb einer Genauigkeitsschwelle liegen, können einige oder alle Ausgaben des/der maschinellen Lernmodells/e 108 in Bezug auf eine oder mehrere der Steuerungsentscheidung(en) 116 übersprungen oder außer Acht gelassen werden. Bei einigen Beispielen, z. B. wenn die Vorhersagen des/der maschinellen Lernmodells/e 108 ungenau und für den sicheren Betrieb des Fahrzeugs 1000 unbrauchbar sind, kann/können die Steuerungsentscheidung(en) 116 die Rückgabe der Steuerung an einen Fahrer aufweisen (z. B. das Beenden des autonomen oder teilautonomen Betriebs) oder die Ausführung eines Notfall- oder Sicherheitsmanövers (z. B. Anhalten, Anfahren des Straßenrandes oder eine Kombination davon). Als solche kann/können die Steuerungsentscheidung(en) 116 das Vorschlagen einer oder mehrerer korrigierender Maßnahmen für effektives und sicheres Fahren aufweisen - wie z. B. das Ignorieren bestimmter Ergebnisse des/der maschinellen Lernmodelle(s) 108. Bei jedem Beispiel und in Bezug auf autonomes oder teilautonomes Fahren kann/können die Steuerungsentscheidung(en) 116 alle Entscheidungen aufweisen, die einer Verwaltungsschicht eines neuronalen Netzes eines Softwarestacks für autonomes Fahren (hier alternativ als „Fahrstack“ („drive stack“) bezeichnet), einer Wahrnehmungsschicht des Fahrstacks, einer Weltmodell-Verwaltungsschicht des Fahrstacks, einer Planungsschicht des Fahrstacks, einer Steuerungsschicht des Fahrstacks, einer Hindernisvermeidungsschicht des Fahrstacks und/oder einer Betätigungsschicht des Fahrstacks entsprechen. Bei Beispielen, in denen keine Fehler erkannt werden, können die Steuerungsentscheidung(en) 116 dennoch von diesen Informationen beeinflusst werden. Zum Beispiel können bestimmte Funktionen oder Merkmale des Softwarestacks für autonomes Fahren nicht verwendet werden, ohne dass ein Hinweis oder ein Signal empfangen wird (z. B. bei jeder Iteration, in einem Intervall usw.), das anzeigt, dass das/die maschinelle(n) Lernmodell(e) 108 ordnungsgemäß funktioniert/en. Bei einigen Beispielen kann das Verfahren 100 auf einer beliebigen Anzahl von maschinellen Lernmodellen 108 ausgeführt werden, die innerhalb eines Systems arbeiten. Beispielsweise kann sich ein Softwarestack für autonomes Fahren für einen effektiven und sicheren Betrieb auf Hunderte oder Tausende von maschinellen Lernmodellen 108 verlassen, und eine beliebige Anzahl davon kann dem Verfahren 100 unterworfen werden, um sicherzustellen, dass Fehler den sicheren und effektiven Betrieb nicht beeinträchtigen. Wie es hierin beschrieben ist, kann die Genauigkeit der Ausgabe(n) 110 für eine beliebige Anzahl von verschiedenen Operationen, die mit einer oder mehreren Schichten des Fahrstacks korrespondieren, unter Verwendung eines oder mehrerer maschineller Lernmodelle 108 separat bestimmt werden. Als Beispiel kann eine erste Genauigkeit für Objekterkennungsoperationen in Bezug auf die Wahrnehmungsschicht des Fahrstacks unter Verwendung eines ersten maschinellen Lernmodells bestimmt werden, und eine zweite Genauigkeit kann für die Pfadplanung in Bezug auf die Planungsschicht des Fahrstacks unter Verwendung eines zweiten maschinellen Lernmodells bestimmt werden, das für die Regression auf Fahrspurlinien trainiert wurde.
  • 2 zeigt ein Beispiel für ein maschinelles Lernmodell (bzw. maschinelle Lernmodelle) 108, das/die für die Erkennung von Objekten trainiert wurde(n), gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Wie es hierin beschrieben ist, ist (sind) das (die) maschinelle(n) Lernmodell(e) 108 für die Objekterkennung nur ein Beispiel, und andere Arten von maschinellen Lernmodellen 108 können verwendet werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Obwohl Fahrzeuge, Bäume und Gebäude in erster Linie als Beispiele von Objekten für die Erkennung dargestellt sind, ist dies nicht als einschränkend zu verstehen. Als zusätzliche, nicht einschränkende Beispiele kann/können das/die maschinelle(n) Lernmodell(e) 108 trainiert werden, um Inferencing durchzuführen für Vorhersagen unter Verwendung von Bildern von Wolken oder Wolkenstrukturen, für Tiefenvorhersagen unter Verwendung von Bildern (auch wenn sie z. B. unter Verwendung einer Kombination von LIDAR-Daten, RADAR-Daten und/oder Bilddaten trainiert wurden), für die Vorhersage von Bedingungen von Offshore-Öl- oder Gaspipelines unter Verwendung von Sensordaten, usw.
  • Mit Bezug auf 2 kann (können) das (die) maschinelle(n) Lernmodell(e) 108 beispielsweise so trainiert werden, dass es (sie) die Sensordaten 102, die für ein Bild 202 repräsentativ sind, als Eingabe erhält (erhalten) und Vorhersagen 208 ausgibt (ausgeben), die den Objekten im Bild 202 entsprechen. Die Vorhersagen 208 können auf der Grundlage der Objektposition(en) und/oder zugehörigen Objektklassifizierungen (z. B. Klassenkennzeichen) erzeugt werden, die von dem/den maschinellen Lernmodell(en) 108 berechnet werden. Beispielsweise kann jedes Objekt basierend auf der Form, Größe und/oder Position der erkannten Objekte als Auto, Bus, Stoppschild, Fußgänger, LKW, Baum, Gebäude usw. klassifiziert werden - z. B. basierend auf der Anzahl der Klassen, für deren Erkennung das/die maschinelle(n) Lernmodell(e) 108 trainiert wurde(n). Das (die) maschinelle(n) Lernmodell(e) 108 kann (können) Pixel für Pixel Ausgabedaten 206 ausgeben, wobei jedem Pixel ein Wert basierend auf der vorhergesagten Objektklassifizierung (oder keine Klasse) zugeordnet ist, oder kann (können) Pixelpositionen ausgeben, für die eine Regressionsanalyse durchgeführt wurde und die dem (den) Objekt(en) oder den dazugehörigen Begrenzungsformen entsprechen.
  • Mit Bezug auf 3A-3B, sind die 3A-3B beispielhafte Darstellungen eines Hinzufügens von Motiven zu einem Eingabebild gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Beispielsweise kann/können das/die maschinelle(n) Lernmodell(e) 108 Bilddaten, die für ein kombiniertes Bild 310 repräsentativ sind - das Daten aufweist, die für ein Eingabebild 302 und ein oder mehrere Motive 304 repräsentativ sind - als Eingabe verwenden, um Vorhersagen für das kombinierte Bild 310 zu erzeugen. Bezug nehmend auf 3A kann das Eingabebild 302 mit Motiven 304 (z. B. Motive 304A, 304B, 304C) eingeführt werden, um ein kombiniertes Bild 310 mit den Motiven 304 zu erzeugen, die dem Eingabebild 302 beigefügt sind. Wie es hier beschrieben ist, kann in einigen Beispielen das Eingabebild unterabgetastet werden (z. B. um 10 %, 20 %, 35 % usw.), um ein unterabgetastetes Bild 306 zu erzeugen, und die Motive 304 können in das unterabgetastete Bild 306 eingeführt werden. Bei einigen Ausführungsformen können die Motive 304 innerhalb des unterabgetasteten Bildes 306 so angeordnet werden, dass sie sich außerhalb der Begrenzung des unterabgetasteten Bildes 306 befinden, während eine räumliche Auflösung für das kombinierte Bild 310 beibehalten wird, die gleich oder geringer ist als eine räumliche Auflösung des ursprünglichen Eingabebildes 302. Beispielsweise können das Motiv 304A, das Motiv 304B und das Motiv 304C entlang einer Begrenzung (z. B. einer oberen Begrenzung, einer unteren Begrenzung, einer seitlichen Begrenzung oder einer Kombination davon) außerhalb des unterabgetasteten Bildes 306 hinzugefügt werden, wobei die Motive 304 so bemessen sind, dass die räumliche Auflösung des kombinierten Bildes 310 ähnlich oder gleich dem ursprünglichen Eingabebild 302 ist (z. B. eine räumliche Auflösung, auf die das/die maschinelle(n) Lernmodell(e) 108 trainiert wurde(n) und für die es/sie programmiert ist/sind).
  • 3B zeigt ein Beispiel für ein Hinzufügen von Motiven zu einem Bild, das von einem Bildsensor eines Fahrzeugs erfasst wurde. Beispielsweise kann/können das/die maschinelle(n) Lernmodell(e) 108 Bilddaten verwenden, die für ein kombiniertes Bild 330 repräsentativ sind - das Daten aufweist, die für ein von dem Bildsensor des Fahrzeugs 1000 erfasstes Eingabebild 322 und ein oder mehrere Motive 324 repräsentativ sind - um Vorhersagen für das kombinierte Bild 330 zu erzeugen. Ähnlich, wie es oben in Bezug auf das kombinierte Bild 310 beschrieben ist, können Motive 324 (z. B. die Motive 324A, 324B, 324C) in das Eingabebild 322 einfließen, um das kombinierte Bild 330 zu erzeugen.
  • Obwohl die 3A-3B ein Hinzufügen der Motive 304 und 324 an eine Begrenzung der ursprünglichen Eingabebilder 302 bzw. 322 aufweisen, ist dies nicht als Einschränkung zu verstehen. Beispielsweise können die Motive innerhalb der ursprünglichen Bilder hinzugefügt werden, außerhalb der Begrenzungen der ursprünglichen Bilder hinzugefügt werden oder eine Kombination davon. Auch wenn die ursprünglichen Eingabebilder 302 und 322 vor dem Hinzufügen der Motive 304 bzw. 324 als unterabgetastet beschrieben sind, ist dies nicht als Einschränkung zu verstehen. Beispielsweise kann während des Trainings und der Inferenz die Größe der ursprünglichen Bilder gleich bleiben, und die Motive können entweder innerhalb der Originalbilder hinzugefügt werden, oder die während des Trainings verwendeten Bilder können auch Abschnitte aufweisen, die für Motive vorgesehen sind (z. B. kann das maschinelle Lernmodell bzw. können die maschinellen Lernmodelle 108 auf Trainingsdaten trainiert werden, die auch die Motive enthalten, oder die zumindest zusätzliche Abschnitte aufweisen, in denen Motive eingefügt werden können).
  • Nun ist mit Bezug zu 4 4 eine beispielhafte Darstellung eines Verfahrens zum Erzeugen von Ausgaben unter Verwendung eines maschinellen Lernmodells in Bezug auf eine Fehlererkennung, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 400 kann eine visuelle Darstellung einer Instanz des Verfahrens 100 von 1 aufweisen, die verwendet werden kann, um Bilddaten, in die Motive eingeführt sind, auf das/die maschinelle(n) Lernmodell(e) 108 anzuwenden, um Ausgaben zu erzeugen, die den ursprünglichen Bilddaten und den eingeführten Motiven entsprechen. Als nicht einschränkendes Beispiel kann/können das/die maschinelle(n) Lernmodell(e) 108 beim Verfahren 400 für eine Objekterkennung trainiert werden - und zwar speziell für eine Erkennung von Autos, Lastwagen und Bäumen. Das (die) maschinelle(n) Lernmodell(e) 108 kann (können) während der Inferenz als Eingabe Instanzen der kombinierten Sensordaten 106 erhalten, die den Sensordaten 102 (z. B. Bilddaten) entsprechen, die ein Bild repräsentieren, das von einem Sensor eines Fahrzeugs - wie dem Fahrzeug 1000 - erfasst wurde, kombiniert mit (einem) Motiv(en) 104A, 104B und 104C. Das (die) maschinelle(n) Lernmodell(e) 108 kann (können) dann Ausgaben 406 erzeugen (z.B. pixelweise Ausgabedaten, bei denen jedem Pixel ein Wert zugeordnet ist, der auf der vorhergesagten Objektklassifizierung (oder keiner Klasse) basiert, wobei die Pixel Positionen oder Orten in Bezug auf die kombinierten Sensordaten 106 entsprechen, die den Vorhersagen 410A in Bezug auf die Sensordaten 102 und den Vorhersagen 410B in Bezug auf das (die) Motiv(e) 104 entsprechen können. Die Ausgabe(n) 110 kann/können eine Objektinformation (z. B. Bounding Boxes, Klassenkennzeichen, Orte) für Bereiche aufweisen, in denen jedes Objekt in den kombinierten Sensordaten 106 vorhergesagt wird.
  • Obwohl sie als separate Vorhersagen 410A und 410B beschrieben werden, ist dies nicht als Einschränkung zu verstehen. In der Praxis können die Vorhersagen 410A und 410B einem einzigen Satz von Vorhersagen entsprechen, und der Fehlerdetektor 114 kann bestimmen, ob die Vorhersagen eine Teilmenge von Vorhersagen 410B aufweisen, die dem/den Motiv(en) 104 entsprechen, und ob diese Vorhersagen 410B genau sind.
  • Basierend auf den Orten (z. B. Bereichen, Pixeln), an denen jedes Objekt erkannt wird, können in einigen Beispielen die Vorhersagen 410B für das/die Motiv(e) 104 mit den bekannten oder tatsächlichen Orten des/der Motiv(e) 104 in den kombinierten Sensordaten 106 verglichen werden, um die Genauigkeit des/der maschinellen Lernmodells/e 108 zu bestimmen und somit festzustellen, ob ein Fehler vorliegt oder nicht. Zum Beispiel und unter Bezugnahme auf 5 können die Vorhersagen 410B des/der maschinellen Lernmodelle(s) 108 mit der/den erwarteten Vorhersage(n) 112 verglichen werden, um die Genauigkeit der Ergebnisse des/der maschinellen Lernmodelle(s) 108 zu bestimmen. Ein Fehler in dem/den maschinellen Lernmodell(en) 108 kann im Vergleichsblock B512 basierend auf einem Eins-zu-Eins-Vergleich zwischen der/den erwarteten Vorhersage(n) 112 und der/den Vorhersage(n) 410B für das/die von dem/den maschinellen Lernmodell(en) 108 ausgegebene(n) Motiv(e) 104 erkannt werden. Bei den nicht einschränkenden Beispielen der 4 und 5 kann (können) die erwartete(n) Vorhersage(n) 112 Klassenkennzeichen und/oder Orte jedes Motivs bzw. der Motive 104 in den kombinierten Sensordaten 106 aufweisen. Die erwartete(n) Vorhersage(n) 112 für das (die) Motiv(e) 104A, 104B und 104C kann (können) gespeichert worden sein, als das (die) Motiv(e) 104A, 104B und 104C den Sensordaten 102 beigefügt oder anderweitig zu ihnen hinzugefügt wurden, um die kombinierten Sensordaten 106 zu erzeugen.
  • Die erwartete(n) Vorhersage(n) 112 für jedes Motiv kann/können mit den Vorhersagen 410B des/der maschinellen Lernmodelle(s) 108 verglichen werden. Wenn es einen Unterschied (z.B. im Ort, Klassenkennzeichen usw.) zwischen der/den erwarteten Vorhersage(n) 112 und der/den Vorhersage(n) 410B in Bezug auf irgendeines der Motive 104A, 104B und 104C gibt, kann das System bestimmen, dass ein potenzieller Fehler in dem/den maschinellen Lernmodell(en) 108 erkannt wird (bei Block B514A). Wenn die erwartete(n) Vorhersage(n) 112 mit der/den Vorhersage(n) 410B für jedes der Motive 104A, 104B und 104C übereinstimmt/übereinstimmen, kann das System bestimmen, dass kein Fehler in dem/den maschinellen Lernmodell(en) 108 erkannt wurde (bei Block B514B). Bei anderen Beispielen kann für das/die maschinelle(n) Lernmodell(e) 108 festgestellt werden, dass ein transienter Fehler vorliegt, wenn ein Genauigkeitsfehler erkannt wird (im Block B514A). Darüber hinaus können Steuerungsentscheidungen auf der Grundlage getroffen werden, ob ein Fehler in dem/den maschinellen Lernmodell(en) 108 erkannt wird oder nicht. Bei einigen Beispielen kann sich das zugrunde liegende System für jeden Fall von kombinierten Sensordaten 106, bei dem kein Fehler festgestellt wird, auf die Vorhersagen 410A verlassen.
  • Unter Bezugnahme auf 6 umfasst jeder Block eines hier beschriebenen Verfahrens 600 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren 600 kann auch in Form von von einem Computer verwendbaren Anweisungen, die auf Computerspeichermedien gespeichert sind, ausgeführt werden. Das Verfahren 600 kann durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 600 beispielhaft in Bezug auf das Verfahren 100 von 1 beschrieben. Dieses Verfahren 600 kann jedoch zusätzlich oder alternativ von einem beliebigen System oder innerhalb eines beliebigen Verfahrens oder einer beliebigen Kombination von Systemen und Verfahren ausgeführt werden, einschließlich, aber nicht beschränkt auf die hierin beschriebenen.
  • 6 ist ein Flussdiagramm, das ein Verfahren 600 zum Erkennen von Fehlern in einem neuronalen Netz unter Verwendung von Motiven und/oder Wasserzeichen gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Das Verfahren 600 weist in einem Block B602 ein Erzeugen erster Daten auf, die Sensordaten, die von einem Sensor erfasst wurden, und ein oder mehrere Motive, die den Sensordaten zugefügt wurden, darstellen. Beispielsweise können erste Daten (z.B. die kombinierten Sensordaten 106) erzeugt werden, die Sensordaten (z.B. die Sensordaten 102) und Motive (z.B. das/die Motiv(e) 104), die den Sensordaten hinzugefügt sind, darstellen.
  • Das Verfahren 600 weist bei einem Block B604 ein Aufbringen der ersten Daten auf ein neuronales Netz auf. Zum Beispiel können die ersten Daten (z.B. die kombinierten Sensordaten 106) auf das/die maschinelle(n) Lernmodell(e) 108 (z.B. ein neuronales Netz, wie ein DNN) (z.B. als Eingabe) aufgebracht werden.
  • Das Verfahren 600 weist bei einem Block B606 ein Berechnen unter Verwendung des neuronalen Netzes von zweiten Daten auf, die für Vorhersagen des neuronalen Netzes in Bezug auf die ersten Daten repräsentativ sind. Zum Beispiel kann/können das/die maschinelle(n) Lernmodell(e) 108 die Ausgabe(n) 110 (z. B. Klassenkennzeichen, Orte, Pixel, Werte, Konfidenzwerte usw.) berechnen, die Vorhersagen des/der maschinellen Lernmodell(e) 108 zugeordnet sind.
  • Das Verfahren 600 weist bei einem Block B608 ein Vergleichen der zweiten Daten mit dritten Daten auf, wobei die dritten Daten erwartete Vorhersagen darstellen, die dem einen oder den mehreren Motiven entsprechen, die durch die ersten Daten dargestellt werden. Zum Beispiel kann/können die Ausgabe(n) 110 des/der maschinellen Lernmodells/e 108 mit der/den erwarteten Vorhersage(n) 112 (z. B. tatsächlichen Orten und/oder Klassenkennzeichen des/der Motivs/e 104) durch den Fehlerdetektor 114 verglichen werden. Der Fehlerdetektor 114 kann die Ausgabe(n) 110 des (der) maschinellen Lernmodells/e 108 mit der (den) erwarteten Vorhersage(n) 112 für jedes des einen oder der mehreren Motive 104 für eine oder mehrere Instanzen bzw. Beispiele der kombinierten Sensordaten 106 vergleichen.
  • Das Verfahren 600 weist bei einem Block B610 ein Bestimmen auf, dass die Vorhersagen genau sind, wenn, zumindest teilweise basierend auf dem Vergleich, die erwarteten Vorhersagen in den Vorhersagen des neuronalen Netzes dargestellt werden. Beispielsweise kann der Fehlerdetektor 114 bestimmen, dass die Vorhersagen (z.B. die Ausgabe(n) 110) genau sind, wenn die erwartete(n) Vorhersage(n) 112 in der/den Ausgabe(n) 110 des/der maschinellen Lernmodells/e 108 dargestellt werden. Der Fehlerdetektor 114 kann feststellen, dass die erwartete(n) Vorhersage(n) 112 in der (den) Ausgabe(n) 110 dargestellt werden, wenn die erwartete(n) Vorhersage(n) 112 für jedes des einen oder der mehreren Motive 104 in der (den) Ausgabe(n) 110 gefunden wird (werden), oder wenn ein Ähnlichkeitsschwellenwert bestimmt wird (z. B. für die Objekterkennung, solange die vorhergesagten Orte der Vertices einer Begrenzungsform innerhalb einer Genauigkeit von 95 %, 98 % usw. in Bezug auf die erwartete(n) Vorhersage(n) 112 liegen).
  • Das Verfahren 600 weist bei einem Block B612 ein Bestimmen auf, dass die Vorhersagen ungenau sind, wenn die erwarteten Vorhersagen zumindest teilweise auf der Grundlage des Vergleichs nicht in den Vorhersagen des neuronalen Netzwerks dargestellt werden. Beispielsweise kann der Fehlerdetektor 114 feststellen, dass die Vorhersagen (z. B. die Ausgabe(n) 110) ungenau sind, wenn die erwartete(n) Vorhersage(n) 112 nicht in der (den) Ausgabe(n) 110 des (der) maschinellen Lernmodells/e 108 dargestellt werden. Der Fehlerdetektor 114 kann feststellen, dass die erwartete(n) Vorhersage(n) 112 nicht in der (den) Ausgabe(n) 110 dargestellt werden, wenn die erwartete(n) Vorhersage(n) 112 für mindestens eines des einen oder der mehreren Motive 104 nicht in der (den) Ausgabe(n) 110 gefunden wird (werden) oder außerhalb eines Ähnlichkeitsschwellenwerts bezüglich der (den) erwarteten Vorhersage(n) 112 liegt (liegen).
  • VERFAHREN ZUR ERKENNUNG PERMANENTER FEHLER
  • Zur Erkennung permanenter Fehler können Eingabedaten, die für ein Signaturbild repräsentativ sind, als Eingabe für ein tiefes neuronales Netz (DNN) bereitgestellt werden, wobei das DNN entweder so trainiert wird, dass es eine bestimmte Signatur in Bezug auf das Signaturbild vorhersagt, oder so trainiert wird, dass es Vorhersagen für Bilder macht, die dem Signaturbild ähnlich sind, so dass eine erwartete Signatur bekannt ist. Bei solchen Ausführungsformen kann das Signaturbild zeitweilig auf das DNN aufgebracht werden, und die vorhergesagte Signatur kann mit der erwarteten Signatur verglichen werden, um zu bestimmen, ob ein Fehler erkannt wird.
  • Bei Ausführungsformen können zur Erkennung permanenter Fehler in einem DNN Sensordaten (z. B. Bilder, Videos, Tiefenkarten usw.) von Sensoren (z. B. Kameras, LIDAR-Sensoren, RADAR-Sensoren usw.) empfangen werden. Bei nicht einschränkenden Beispielen, die autonomen Fahrzeugen entsprechen, können die Sensoren an einem autonomen oder halbautonomen Fahrzeug angeordnet oder anderweitig diesem zugeordnet sein. Die erfassten Sensordaten können auf ein DNN aufgebracht werden - z. B. als eine Sequenz von Bildern, als eine Sequenz von Tiefenkarten, usw. Bei einigen Ausführungsformen kann zeitweilig, während die Sensordaten auf das neuronale Netz aufgebracht werden, ein Signaturbild (z. B. ein Bild, das Motive aufweist, ein Stockbild, ein Logo usw.) auf das DNN aufgebracht werden. Das Signaturbild kann z. B. in einem Intervall, alle x Bilder, nach dem Zufallsprinzip und/oder dergleichen aufgebracht werden. Bei einer Iteration, bei der ein Signaturbild aufgebracht wird, können die tatsächlichen Vorhersagen des DNN mit einer erwarteten Vorhersage des DNN in Bezug auf das Signaturbild verglichen werden.
  • Die Genauigkeit der Vorhersagen des DNN kann auf der Grundlage des Vergleichs der erwarteten Vorhersage mit der tatsächlichen Vorhersage bestimmt werden. Zum Beispiel kann die erwartete Vorhersage eine Signatur aufweisen, die einem Fehlerdetektor bekannt sein kann, und die von dem DNN ausgegebene Signatur kann mit dieser Signatur verglichen werden. Bei einigen Beispielen kann ein Schwellenwert verwendet werden, so dass die Vorhersagen des DNN in Bezug auf das Signaturbild innerhalb eines Ähnlichkeitsschwellenwerts zu den erwarteten Vorhersagen liegen sollten. Wenn festgestellt wird, dass die Ausgabe des DNN ungenau ist, kann davon ausgegangen werden, dass die Hardware und/oder Software, die der Verarbeitung des DNN entspricht, einen dauerhaften bzw. permanenten Fehler aufweist. In solchen Fällen können Korrekturmaßnahmen ergriffen werden, wie z. B. die Übergabe der Kontrolle des Fahrzeugs an den Fahrer, die Durchführung eines Sicherheitsmanövers und/oder die Auslagerung oder Übertragung der Verarbeitung des DNN auf andere Komponenten - z. B. auf eine redundante Architektur.
  • Mit Bezug auf 7 ist 7 ein beispielhaftes Datenflussdiagramm, das ein Verfahren 700 zur Erkennung von Fehlern in einem neuronalen Netz unter Verwendung von Signaturen darstellt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 700 kann zur Erkennung von permanenten Fehlern in (einem) beliebigen maschinellen Lernmodell(en) 108 verwendet werden, wie z. B., aber nicht beschränkt auf die hierin beschriebenen Modelle. Darüber hinaus ist das Verfahren 700, wie es hierin beschrieben ist, nicht darauf beschränkt, nur permanente Fehler zu erkennen, und kann verwendet werden, um andere Arten von Fehlern zu erkennen, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen - wie etwa transiente oder intermittierende Fehler. Das (die) maschinelle(n) Lernmodell(e) 108 kann (können) als Eingabe die Sensordaten 102 empfangen, die den hier beschriebenen Sensordaten 102 ähnlich sein können. Obwohl die Sensordaten 102 in erster Linie in Bezug auf Bilddaten besprochen werden, die für Bilder repräsentativ sind, ist dies nicht als Einschränkung zu verstehen. Bei einigen Ausführungen können die Sensordaten 102 beispielsweise Daten von einem oder mehreren LIDAR-Sensoren, RADAR-Sensoren, SONAR-Sensoren, Ultraschallsensoren, IMU-Sensoren und/oder anderen Sensortypen aufweisen (z. B. Sensoren und/oder Kameras, die in Bezug auf die 10A-10C beschrieben sind).
  • Die Sensordaten 102, die als Eingabe für das/die maschinelle(n) Lernmodell(e) 108 verwendet werden, können Originalbilder (z. B. wie von einem oder mehreren Bildsensoren erfasst), unterabgetastete Bilder, höherabgetastete Bilder, beschnittene Bilder oder Bilder mit Interessenbereich (ROI), gekennzeichnete Bilder, die für andere Systeme kommentiert oder von diesen ausgegeben wurden, um eine Achse gespiegelte oder anderweitig angereicherte Bilder oder eine Kombination davon einschließen. Die Sensordaten 102 können bei einigen nicht einschränkenden Ausführungsformen Bilder darstellen, die von einem oder mehreren Sensoren (z. B. Kameras eines Fahrzeugs 1000) erfasst wurden, und/oder können Bilder darstellen, die in einer virtuellen Umgebung erfasst wurden, die zum Testen und/oder Erzeugen von Trainingsbildern verwendet wird (z. B. eine virtuelle Kamera eines virtuellen Fahrzeugs in einer virtuellen oder simulierten Umgebung). Bei einigen Beispielen können die Sensordaten 102 auf das/die maschinelle(n) Lernmodell(e) 108 als eine Sequenz von Bildern, eine Sequenz von Tiefenkarten und/oder eine Sequenz einer anderen Sensordatendarstellung aufgebracht werden.
  • Zeitweilig, während die Sensordaten 102 auf das/die maschinelle(n) Lernmodell(e) aufgebracht werden, können Signaturdaten 704 auf das/die maschinelle(n) Lernmodell(e) 108 aufgebracht werden. Die Signaturdaten 704 können repräsentativ für ein Signaturbild sein (z. B. ein Bild, das Motive aufweist, ein Stockbild, ein Logo usw.), das sich von den Mustern (z. B. Objekten, Fahrspuren, Linien usw.), für deren Vorhersage das/die maschinelle(n) Lernmodell(e) 108 trainiert wurde(n), völlig unterscheiden oder diesen Mustern ähnlich sein kann. Die Signaturdaten 704 können auf das/die maschinelle(n) Lernmodell(e) 108 in einem festen Intervall oder in unterschiedlichen Intervallen innerhalb der Sequenz der Sensordaten 102 aufgebracht werden. Zum Beispiel können die Signaturdaten 704 in einem Intervall, alle x Bilder, zufällig und/oder anderweitig aufgebracht werden. Die Signaturdaten 704 können ein oder mehrere Signaturbilder aufweisen. Bei jeder Iteration kann das gleiche oder ein anderes Signaturbild auf das/die maschinelle(n) Lernmodell(e) 108 aufgebracht werden. Wenn beispielsweise verschiedene Signaturbilder aufgebracht werden, kann eine beliebige Anzahl von Signaturbildern und (eine) entsprechende erwartete Vorhersage(n) 112 gespeichert werden, und die Signaturbilder können auf das/die maschinelle(n) Lernmodell(e) 108 in einer Reihenfolge, zufällig und/oder anderweitig aufgebracht werden.
  • Das/die maschinelle(n) Lernmodell(e) 108 kann/können ein beliebiges maschinelles Lernmodell (z. B. ein neuronales Netz, DNN, CNN usw.) sein, das trainiert ist, um Vorhersagen auf der Grundlage von Sensordaten 102 (oder anderen Datentypen, wie es hier beschrieben ist) zu treffen. Das/die maschinelle(n) Lernmodell(e) 108 kann/können in Ausführungsformen so ausgestaltet sein, dass es/sie Ausgabe(n) 110 auf der Grundlage der Sensordaten 102 und der Signaturdaten 704 - separat - erzeugt/erzeugen. Bei einigen Ausführungsformen kann/können das/die maschinelle(n) Lernmodell(e) 108 beispielsweise so trainiert werden, dass es (sie) eine bestimmte (z. B. erwartete) Signatur in Bezug auf ein oder mehrere Signaturbilder der Signaturdaten 704 vorhersagt (vorhersagen), und so trainiert werden, dass es (sie) verschiedene Vorhersagen in Bezug auf die Sensordaten 102 berechnet (berechnen). In solchen Beispielen kann das Training des/der maschinellen Lernmodelle(s) 108 die Verwendung einer ersten Verlustfunktion in Bezug auf die Signaturdaten 704 und einer zweiten Verlustfunktion in Bezug auf die Sensordaten 102 aufweisen. In anderen Beispielen kann/können das/die maschinelle(n) Lernmodell(e) 108 so trainiert werden, dass es/sie (eine) bestimmte Signatur(en) für Bilder vorhersagt/vorhersagen, die einem Signaturbild der Signaturdaten 704 ähnlich sind. In beiden Beispielen kann/können die erwartete(n) Vorhersage(n) 112 für die Signaturdaten 704 gespeichert werden, so dass der Fehlerdetektor 114 die Ausgabe(n) 110 mit der/den erwarteten Vorhersage(n) 112 vergleichen kann. In einigen Beispielen kann auch eine Platzierung (z. B. eine Bildnummer, ein Intervall von Bildern usw.) des/der Signaturbildes/er innerhalb der Sequenz der Sensordaten 102 gespeichert werden, um den Fehlerdetektor 114 bei der Bestimmung zu unterstützen, welche Ausgabe(n) 110 den Signaturdaten 704 entsprechen.
  • In den Fällen, in denen die Signaturdaten 704 angewandt werden, kann (können) das (die) maschinelle(n) Lernmodell(e) 108 die Signaturdaten 704 als Eingabe erhalten und die damit korrespondierende(n) Ausgabe(n) 110 erzeugen. Diese Ausgabe(n) 110 kann/können von dem Fehlerdetektor 114 mit der/den erwarteten Vorhersage(n) 112 für die Signaturdaten 704 verglichen werden, um festzustellen, ob ein Fehler vorliegt. Der Fehlerdetektor 114 kann in einigen nicht einschränkenden Ausführungsformen Informationen verwenden, die den Signaturdaten 704 entsprechen (z. B. Platzierung innerhalb der Sequenz, Typ der erwarteten Signatur usw.), um sie mit der/den von dem/den maschinellen Lernmodell(en) 108 berechneten Ausgabe(n) 110 zu vergleichen. Der Vergleich kann den Vergleich von erwarteten Signaturen mit vorhergesagten Signaturen einschließen, um sicherzustellen, dass die Ausgabe(n) 110 zumindest eine genaue Vorhersage (z. B. innerhalb eines Schwellenwerts) (z. B. im Vergleich zu der/den erwarteten Vorhersage(n) 112) in Bezug auf die Signaturdaten 704 aufweist/en.
  • Basierend auf dem Vergleich kann die Genauigkeit oder Stabilität des/der maschinellen Lernmodells/e 108 bestimmt werden, z. B. durch Identifizieren, ob die Vorhersagen oder die Ausgabe(n) 110 des/der maschinellen Lernmodells/e 108 nicht den erwarteten Signaturen entsprechen, die dem Fehlerdetektor 114 bekannt sind, oder ob die Vorhersagen außerhalb eines Genauigkeitsschwellenwerts in Bezug auf die erwartete Signaturinformation liegen. Bei einigen Beispielen kann der Fehlerdetektor 114, wenn die erwartete(n) Vorhersage(n) 112 für jede Iteration der Signaturdaten 704 in der (den) Ausgabe(n) 110 dargestellt wird (werden), feststellen, dass die Vorhersagen des (der) maschinellen Lernmodells (-modelle) 108 genau sind und dass die zugrunde liegende Software und/oder Hardware, die dem (den) maschinellen Lernmodell(en) 108 entspricht, keinen Fehler aufweist. In ähnlicher Weise kann der Fehlerdetektor 114 feststellen, dass die Vorhersagen des/der maschinellen Lernmodells/e 108 ungenau sind und dass die zugrunde liegende Software und/oder Hardware, die dem/den maschinellen Lernmodell(en) 108 entspricht, einen Fehler aufweist, wenn die erwartete(n) Vorhersage(n) 112 nicht für jede Iteration der Signaturdaten 704 in der/den Ausgabe(n) 110 dargestellt wird/werden.
  • Sobald eine Bestimmung eines Fehlers oder keines Fehlers erfolgt ist, kann diese Information an eine oder mehrere Komponenten des Systems weitergeleitet werden, um Steuerungsentscheidungen 116 zu treffen. Wenn es sich bei dem System beispielsweise um das hier beschriebene Fahrzeug 1000 handelt, kann die Fehlerbestimmung an eine oder mehrere Schichten eines Software-Stacks für autonomes Fahren weitergeleitet werden, um (eine) geeignete Steuerungsentscheidung(en) 116 zu treffen. Wenn beispielsweise die Vorhersagen in Bezug auf die Signaturdaten 704 außerhalb eines Genauigkeitsschwellenwerts liegen, können einige oder alle Ausgaben 110 des/der maschinellen Lernmodells/e 108 übersprungen oder in Bezug auf eine oder mehrere der Steuerungsentscheidungen 116 ignoriert werden. Bei einigen Beispielen, z. B. wenn die Vorhersagen des/der maschinellen Lernmodelle(s) 108 ungenau und für den sicheren Betrieb des Fahrzeugs 1000 unbrauchbar sind, kann/können die Steuerungsentscheidung(en) 116 die Rückgabe der Kontrolle an einen Fahrer (z. B. Beendigung des autonomen oder teilautonomen Betriebs) oder die Ausführung eines Notfall- oder Sicherheitsmanövers (z. B. Anhalten, Anfahren an den Straßenrand oder eine Kombination davon) aufweisen. Da es sich bei der Art des Fehlers um einen permanenten Fehler handeln kann, kann ein Hinweis oder ein Signal erzeugt werden, das anzeigt, dass eine Diagnose oder ein Test durchgeführt werden muss, bevor der weitere Betrieb - zumindest in Bezug auf die Funktionalität(en), die von dem/den maschinelle(n) Lernmodell(en) 108 beeinflusst wird/werden - erlaubt wird. Bei Beispielen, in denen keine Fehler erkannt werden, kann/können die Steuerungsentscheidung(en) 116 dennoch von dieser Information beeinflusst werden. Zum Beispiel können bestimmte Funktionen oder Merkmale des Software-Stacks für autonomes Fahren nicht verwendet werden, ohne dass ein Hinweis oder ein Signal empfangen wird (z. B. bei jeder Iteration, in einem Intervall usw.), der/das anzeigt, dass das/die maschinelle(n) Lernmodell(e) 108 ordnungsgemäß arbeitet/en. Bei einigen Beispielen kann das Verfahren 100 auf einer beliebigen Anzahl von maschinellen Lernmodellen 108 ausgeführt werden, die innerhalb eines Systems arbeiten. Beispielsweise kann ein Software-Stack für autonomes Fahren für einen effektiven und sicheren Betrieb auf Hunderte oder Tausende von maschinellen Lernmodellen 108 angewiesen sein, und eine beliebige Anzahl davon kann dem Verfahren 700 unterworfen werden, um sicherzustellen, dass Fehler den sicheren und effektiven Betrieb nicht beeinträchtigen. Wie es hierin beschrieben ist, kann die Genauigkeit der Ausgabe(n) 110 für eine beliebige Anzahl von verschiedenen Operationen, die einer oder mehreren Schichten des Fahrstacks entsprechen, unter Verwendung eines oder mehrerer maschineller Lernmodelle 108 separat bestimmt werden.
  • Unter Bezugnahme auf 8A-8C sind die 8A-8C beispielhafte Darstellungen von Signatureingaben zur Bestimmung von Fehlern in neuronalen Netzen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Zum Beispiel können die Signaturbilder (z. B. Signaturbilder 810, 820 und/oder 830) - in Ausführungsformen zeitweilig - auf das/die maschinelle(n) Lernmodell(e) 108 anstelle der Sensordaten 102 aufgebracht werden, um auf Fehler in der zugrunde liegenden Software und/oder Hardware zu testen, die das/die maschinelle(n) Lernmodell(e) 108 ausführt/en. Das/die Signaturbild(er) kann/können beispielsweise auf das/die maschinelle(n) Lernmodell(e) 108 in einem Intervall, alle x Bilder, nach dem Zufallsprinzip und/oder dergleichen aufgebracht werden. Bei einer Iteration, bei der ein Signaturbild aufgebracht wird, können die tatsächlichen Vorhersagen des DNN mit einer erwarteten Vorhersage des DNN in Bezug auf das Signaturbild verglichen werden.
  • Das/die maschinelle(n) Lernmodell(e) kann/können entweder trainiert werden, um die Signaturen in Bezug auf die Signaturbilder vorherzusagen, oder es/sie kann/können trainiert werden, um Vorhersagen für Bilder zu machen, die den Signaturbildern ähnlich sind, so dass eine erwartete Signatur bekannt ist. Das/die maschinelle(n) Lernmodell(e) 108 kann/können trainiert werden, um Vorhersagen für eine beliebige Anzahl von Signaturbildern zu treffen. Als nicht einschränkende Beispiele kann/können das/die maschinelle(n) Lernmodell(e) 108 trainiert werden, um eine Signatur in Bezug auf das Bild 810 von 8A vorherzusagen, oder sie können trainiert werden, um Signaturen in Bezug auf jedes der Bilder 810, 820 oder 830 vorherzusagen. Wenn mehr als ein Signaturbildtyp verwendet wird, kann die Fehlerabdeckung erhöht werden, da verschiedene Abschnitte der zugrunde liegenden Software und/oder Hardware an der Verarbeitung in Bezug auf verschiedene Signaturbilder beteiligt sein können. Die Bilder 810, 820 und 830 sind lediglich Beispiele und sollen nicht einschränkend sein. Die Signaturbilder können einen beliebigen Bildtyp oder einen anderen Typ von Sensordatendarstellung oder eine andere Datentypdarstellung (z. B. Finanzdaten) aufweisen.
  • In 9 umfasst jeder Block des hier beschriebenen Verfahrens 900 einen Rechenschritt, der mit einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren 900 kann auch als von einem Computer ausführbare Anweisungen, die auf Computerspeichermedien gespeichert sind, ausgeführt werden. Das Verfahren 900 kann durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 900 beispielhaft in Bezug auf das Verfahren 700 von 7 beschrieben. Dieses Verfahren 900 kann jedoch zusätzlich oder alternativ von einem beliebigen System oder innerhalb eines beliebigen Verfahrens oder einer beliebigen Kombination von Systemen oder Verfahren ausgeführt werden, einschließlich, aber nicht beschränkt auf diejenigen, die hierin beschrieben sind.
  • 9 ist ein Flussdiagramm, das ein Verfahren 900 zur Erkennung von Fehlern in einem neuronalen Netz unter Verwendung von Signaturbildern darstellt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 900 weist im Block B902 erste Daten auf, die eine Vielzahl von Sensordateninstanzen repräsentieren, die von einem Sensor erfasst wurden, und die einem neuronalen Netz zugeführt werden. Zum Beispiel können erste Daten, die Sensordaten repräsentieren (z.B. die Sensordaten 102), auf das/die maschinelle(n) Lernmodell(e) 108 (z.B. ein neuronales Netz, wie ein DNN) (z.B. als Eingabe) aufgebracht werden.
  • Das Verfahren 900 weist in einem Block B904 zeitweilig, während des Aufbringens der ersten Daten auf das neuronale Netz, zweite Daten auf, die eine Signatureingabe für das neuronale Netz darstellen. Zum Beispiel kann eine Signatureingabe (z.B. die Signaturdaten 704) zeitweilig auf das/die maschinelle(n) Lernmodell(e) 108 aufgebracht werden, während die Sensordaten 102 auf das/die maschinelle(n) Lernmodell(e) 108 aufgebracht werden.
  • Das Verfahren 900 weist in einem Block B906 dritte Daten, die eine Ausgabe des neuronalen Netzes darstellen, die zumindest teilweise auf der Grundlage der zweiten Daten berechnet wird, und vierte Daten auf, die eine erwartete Ausgabe des neuronalen Netzes darstellen, die zumindest teilweise auf den zweiten Daten basiert. Beispielsweise kann/können die Ausgabe(n) 110 des/der maschinellen Lernmodelle(s) 108 mit der/den erwarteten Vorhersage(n) 112 (z. B. der erwarteten Ausgabe) verglichen werden, wobei die erwartete(n) Vorhersage(n) 112 eine erwartete Vorhersage für die Signatureingabe aufweist/en. Der Fehlerdetektor 114 kann die Ausgabe(n) 110 mit der/den erwarteten Vorhersage(n) 112 für die Signaturdaten 704 vergleichen.
  • Das Verfahren 900 weist bei einem Block B908 die Feststellung auf, dass die Vorhersagen des neuronalen Netzes genau sind, wenn, zumindest teilweise basierend auf den Vorhersagen, die Ausgabe der erwarteten Ausgabe entspricht. Zum Beispiel kann der Fehlerdetektor 114 feststellen, dass die Vorhersagen (z.B. Ausgabe(n) 110) des/der maschinellen Lernmodells/e 108 genau sind, wenn die Ausgabe(n) 110 der/den erwarteten Vorhersage(n) 112 entspricht/en. Der Fehlerdetektor 114 kann feststellen, dass die Vorhersagen genau sind, wenn die Ausgabe(n) 110 die erwartete(n) Vorhersage(n) 112 für die Signaturdaten 704 aufweist/en.
  • Das Verfahren 900 weist bei einem Block B910 die Feststellung auf, dass die Vorhersagen des neuronalen Netzwerks ungenau sind, wenn die Ausgabe, zumindest teilweise basierend auf den Vorhersagen, nicht der erwarteten Ausgabe entspricht. Zum Beispiel kann der Fehlerdetektor 114 feststellen, dass die Vorhersagen (z.B. Ausgabe(n) 110) des/der maschinellen Lernmodells/e 108 ungenau sind, wenn die Ausgabe(n) 110 nicht der/den erwarteten Vorhersage(n) 112 entspricht/en. Der Fehlerdetektor 114 kann feststellen, dass die Vorhersagen ungenau sind, wenn die Ausgabe(n) 110 nicht die erwartete(n) Vorhersage(n) 112 für die Signaturdaten 704 aufweist/en.
  • BEISPIEL AUTONOMES FAHRZEUG
  • 10A ist eine Darstellung eines beispielhaften autonomen Fahrzeugs 1000, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Wie es hierin beschrieben ist, kann das Fahrzeug 1000 bei einigen nicht einschränkenden Ausführungsformen, z. B. wenn das/die maschinelle(n) Lernmodell(e) 108 in einem Software-Stack für autonomes Fahren vorhanden ist/sind, das zugrunde liegende System darstellen, das das Testen des/der maschinellen Lernmodell(e) 108 ausführt. Zum Beispiel kann das Fahrzeug 1000 einen eingebauten Selbsttest (BIST) während des Einsatzes ausführen, und das Testen des/der maschinellen Lernmodelle(s) 100 gemäß den Verfahren 100 und 700 kann in dem BIST des Fahrzeugs 1000 enthalten sein. Das autonome Fahrzeug 1000 (hier alternativ als „Fahrzeug 1000“ bezeichnet) kann ohne Einschränkung ein Personenfahrzeug sein, wie z. B. ein Pkw, ein Lkw, ein Bus, ein First-Responder-Fahrzeug, ein Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, ein Feuerwehrauto, ein Polizeifahrzeug, ein Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne und/oder eine andere Art von Fahrzeug (z. B., das unbemannt ist und/oder einen oder mehrere Insassen beherbergt). Autonome Fahrzeuge werden im Allgemeinen in Form von Automatisierungsstufen 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 1000 kann eine Funktionalität gemäß einer oder mehreren der Stufe 3 - Stufe 5 der autonomen Fahrstufen aufweisen. Beispielsweise kann das Fahrzeug 1000 je nach Ausführungsform in der Lage sein, bedingt automatisiert (Stufe 3), hochautomatisiert (Stufe 4) und/oder voll automatisiert (Stufe 5) zu fahren.
  • Das Fahrzeug 1000 kann Komponenten wie ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z.B. 2, 4, 6, 8, 18, etc.), Reifen, Achsen und andere Komponenten eines Fahrzeugs aufweisen. Das Fahrzeug 1000 kann ein Antriebssystem 1050 aufweisen, wie z. B. einen Verbrennungsmotor, ein Hybrid-Elektroantrieb, einen reinen Elektromotor und/oder einen anderen Antriebssystemtyp. Das Antriebssystem 1050 kann mit einem Antriebsstrang des Fahrzeugs 1000 verbunden sein, der ein Getriebe aufweisen kann, um den Vortrieb des Fahrzeugs 1000 zu ermöglichen. Das Antriebssystem 1050 kann abhängig von dem Empfang von Signalen von der Drosselklappe/Beschleunigungsvorrichtung 1052 gesteuert werden.
  • Ein Lenksystem 1054, das ein Lenkrad aufweisen kann, kann verwendet werden, um das Fahrzeug 1000 zu lenken (z. B. entlang eines gewünschten Weges oder einer Route), wenn das Antriebssystem 1050 in Betrieb ist (z. B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 1054 kann Signale von einem Lenkaktor 1056 empfangen. Das Lenkrad kann für eine vollständige Automatisierung (Stufe 5) optional sein.
  • Das Bremssensorsystem 1046 kann verwendet werden, um die Fahrzeugbremsen abhängig von dem Empfang von Signalen von den Bremsaktuatoren 1048 und/oder Bremssensoren zu betätigen.
  • (Eine) Steuerung(en) 1036, die eine oder mehrere System-on-Chips (SoCs) 1004 (10C) und/oder GPU(s) aufweisen kann/können, kann/können Signale (z. B. repräsentativ für Befehle) an eine oder mehrere Komponenten und/oder Systeme des Fahrzeugs 1000 liefern. Beispielsweise kann/können die Steuerung(en) Signale zur Betätigung der Fahrzeugbremsen über einen oder mehrere Bremsaktuatoren 1048, zur Betätigung des Lenksystems 1054 über einen oder mehrere Lenkaktuatoren 1056 und/oder zur Betätigung des Antriebssystems 1050 über einen oder mehrere Drossel-/Beschleunigungsregler 1052 senden. Die Steuerung(en) 1036 kann/können eine oder mehrere integrierte Recheneinrichtungen (z. B. Supercomputer) aufweisen, die Sensorsignale verarbeiten und Betriebsbefehle ausgeben (z. B. Signale, die Befehle darstellen), um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Fahren des Fahrzeugs 1000 zu unterstützen. Die Steuerung(en) 1036 kann/können eine erste Steuerung 1036 für autonome Fahrfunktionen, eine zweite Steuerung 1036 für funktionale Sicherheitsfunktionen, eine dritte Steuerung 1036 für Funktionen der künstlichen Intelligenz (z. B. Computer Vision), eine vierte Steuerung 1036 für Infotainment-Funktionen, eine fünfte Steuerung 1036 für Redundanz in Notfällen und/oder andere Steuerungen aufweisen. Bei einigen Beispielen kann eine einzelne Steuerung 1036 zwei oder mehr der oben genannten Funktionalitäten handhaben, zwei oder mehr Steuerungen 1036 können eine einzelne Funktionalität handhaben, und/oder eine beliebige Kombination davon.
  • Die Steuerung(en) 1036 kann (können) die Signale zur Steuerung einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 1000 als Reaktion auf Sensordaten bereitstellen, die von einem oder mehreren Sensoren empfangen werden (z. B. Sensoreingaben). Die Sensordaten können beispielsweise und ohne Einschränkung von (einem) Sensor(en) des globalen Navigationssatellitensystems 1058 (z. B. Global-Positioning-System-Sensor(en)), RADAR-Sensor(en) 1060, Ultraschallsensor(en) 1062, LIDAR-Sensor(en) 1064, Inertialmesseinheit (IMU)-Sensor(en) 1066 (z. B., Beschleunigungssensor(en), Gyroskop(en), Magnetkompass(en), Magnetometer usw.), Mikrofon(en) 1096, Stereokamera(s) 1068, Weitwinkelkamera(s) 1070 (z.B., (z. B. Fischaugenkameras), Infrarotkamera(s) 1072, Umgebungskamera(s) 1074 (z. B. 360-Grad-Kameras), Fern- und/oder Mittelbereichskamera(s) 1098, Geschwindigkeitssensor(en) 1044 (z. B. zur Messung der Geschwindigkeit des Fahrzeugs 1000), Vibrationssensor(en) 1042, Lenksensor(en) 1040, Bremssensor(en) 1046 (z. B. als Teil des Bremssensorsystems 1046) und/oder andere Sensortypen empfangen werden.
  • Eine oder mehrere Steuerung(en) 1036 können Eingaben (z. B. dargestellt durch Eingabedaten) von einem Kombiinstrument 1032 des Fahrzeugs 1000 empfangen und Ausgaben (z. B. dargestellt durch Ausgabedaten, Anzeigedaten usw.) über eine Mensch-Maschine-Schnittstellen- (HMI-) Anzeige 1034, einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 1000 bereitstellen. Die Ausgaben können Informationen wie Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. die HD-Karte 1022 in 10C), Positionsdaten (z. B. die Position des Fahrzeugs 1000, z. B. auf einer Karte), Richtung, Position anderer Fahrzeuge (z. B. ein Belegungsraster), Informationen über Objekte und den Status von Objekten, wie sie von der/den Steuerung(en) 1036 wahrgenommen werden, usw. aufweisen. Zum Beispiel kann die HMI-Anzeige 1034 Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. ein Straßenschild, ein Warnschild, eine sich ändernde Ampel usw.) und/oder Informationen über Fahrmanöver anzeigen, die das Fahrzeug durchgeführt hat, durchführt oder durchführen wird (z. B. jetzt die Spur wechseln, in zwei Meilen die Ausfahrt 34B nehmen usw.).
  • Das Fahrzeug 1000 weist darüber hinaus eine Netzwerkschnittstelle 1024 auf, die eine oder mehrere drahtlose Antennen 1026 und/oder Modem(s) zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Zum Beispiel kann die Netzwerkschnittstelle 1024 in der Lage sein, über LTE, WCDMA, UMTS, GSM, CDMA2000, etc. zu kommunizieren. Die drahtlose(n) Antenne(n) 1026 kann/können auch die Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeuge, mobile Einrichtungen usw.) über lokale Netzwerke wie Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw. und/oder Low-Power-Wide-Area-Netzwerke (LPWANs) wie LoRaWAN, SigFox usw. ermöglichen.
  • 10B ist ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug 1000 von 10A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und die jeweiligen Sichtfelder sind eine beispielhafte Ausführungsform und sind nicht als einschränkend zu verstehen. Beispielsweise können zusätzliche und/oder alternative Kameras vorhanden sein und/oder die Kameras können an verschiedenen Stellen des Fahrzeugs 1000 angeordnet sein.
  • Die Kameratypen für die Kameras können Digitalkameras einschließen, sind aber nicht auf diese beschränkt, die für die Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 1000 angepasst sein können. Die Kamera(s) kann/können mit dem Automotive Safety Integrity Level (ASIL) B und/oder mit einem anderen ASIL arbeiten. Die Kameratypen können je nach Ausführungsform eine beliebige Bildaufnahmerate, wie z. B. 60 Bilder pro Sekunde (fps), 120 fps, 240 fps usw., erreichen. Die Kameras können in der Lage sein, Rolling Shutter, Global Shutter, einen anderen Verschlusstyp oder eine Kombination davon zu verwenden. Bei einigen Beispielen kann das Farbfilter-Array ein RCCC-Farbfilter-Array (red clear clear clear), ein RCCB-Farbfilter-Array (red clear clear blue), ein RBGC-Farbfilter-Array (red blue green clear), ein Foveon X3-Farbfilter-Array, ein RGGB-Farbfilter-Array (Bayer-Sensoren), ein Monochrom-Sensor-Farbfilter-Array und/oder eine andere Art von Farbfilter-Array aufweisen. Bei einigen Ausführungsformen können Clear-Pixel-Kameras, wie z. B. Kameras mit einem RCCC-, einem RCCB- und/oder einem RBGC-Farbfilter-Array, verwendet werden, um die Lichtempfindlichkeit zu erhöhen.
  • Bei einigen Beispielen kann/können eine oder mehrere der Kamera(s) verwendet werden, um erweiterte Fahrerassistenzsystemfunktionen (ADAS) auszuführen (z. B. als Teil eines redundanten oder ausfallsicheren Designs). Zum Beispiel kann eine Multifunktions-Monokamera installiert sein, um Funktionen wie einen Spurhalteassistent, einen Verkehrszeichenassistent und eine intelligente Scheinwerfersteuerung aufzuweisen. Eine oder mehrere der Kamera(s) (z.B. alle Kameras) kann/können gleichzeitig Bilddaten (z.B. Video) aufzeichnen und bereitstellen.
  • Eine oder mehrere der Kameras kann/können in einer Anordnung, wie z. B. einer kundenspezifischen (3D-gedruckten) Anordnung, montiert sein, um Streulicht und Reflexionen aus dem Fahrzeuginneren (z. B. Reflexionen vom Armaturenbrett, die in den Windschutzscheibenspiegeln reflektiert werden) auszuschalten, die die Bilddatenerfassungsfähigkeiten der Kamera beeinträchtigen können. In Bezug auf die Anordnung der Außenspiegel kann die Anordnung der Außenspiegel kundenspezifisch in 3D gedruckt werden, so dass die Kameramontageplatte der Form des Außenspiegels entspricht. Bei einigen Beispielen kann/können die Kamera(s) in den Flügelspiegel integriert sein. Bei Seitenkameras kann/können die Kamera(s) auch in die vier Säulen an jeder Ecke der Fahrgastzelle integriert sein.
  • Kameras mit einem Sichtfeld, das Abschnitte der Umgebung vor dem Fahrzeug 1000 aufweist (z. B. nach vorn 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 1036 und/oder Steuer-SoCs Informationen bereitzustellen, die für die Erstellung eines Belegungsgitters und/oder die Bestimmung der bevorzugten Fahrzeugpfade entscheidend sind. Nach vorn 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 vorn gerichtete Kameras können auch für ADAS-Funktionen und -Systeme verwendet werden, die Spurverlassenwarnungen (Lane Departure Warnings, LDW), autonome Geschwindigkeitsregelung (Autonomous Cruise Control, ACC) und/oder andere Funktionen wie Verkehrszeichenerkennung aufweisen.
  • Eine Vielzahl von Kameras kann in einer nach vorn gerichteten Konfiguration verwendet werden, die z. B. eine monokulare Kameraplattform aufweist, die einen CMOS (Complementary Metal Oxide Semiconductor)-Farbbildgeber aufweist. Ein weiteres Beispiel kann eine Weitwinkelkamera 1070 sein, die verwendet werden kann, um Objekte wahrzunehmen, die von der Peripherie ins Blickfeld kommen (z. B. Fußgänger, kreuzender Verkehr oder Fahrräder). Obwohl in 10B nur eine Weitwinkelkamera dargestellt ist, kann sich eine beliebige Anzahl von Weitwinkelkameras 1070 am Fahrzeug 1000 befinden. Zusätzlich kann/können die Weitwinkelkamera(s) 1098 (z. B. ein Weitwinkel-Stereokamerapaar) zur tiefenbasierten Objekterkennung verwendet werden, insbesondere für Objekte, für die ein neuronales Netz noch nicht trainiert wurde. Die Weitwinkelkamera(s) 1098 kann/können auch für die Objekterkennung und -klassifizierung sowie für die grundlegende Objektverfolgung verwendet werden.
  • Eine oder mehrere Stereokameras 1068 kann/können auch in einer nach vorn gerichteten Konfiguration vorhanden sein. Die Stereokamera(s) 1068 kann/können eine integrierte Steuereinheit aufweisen, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (z. B. FPGA) und einen Mehrkern-Mikroprozessor mit integrierter CAN- oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. Eine solche Einheit kann verwendet werden, um eine 3D-Karte der Fahrzeugumgebung zu erstellen, die eine Abstandsschätzung für alle Punkte im Bild aufweist. (Eine) alternative Stereokamera(s) 1068 kann/können einen kompakten Stereobildsensor aufweisen, der zwei Kameralinsen (je eine links und rechts) und einen Bildverarbeitungschip aufweist, der den Abstand zwischen dem Fahrzeug und dem Zielobjekt misst und die erzeugten Informationen (z. B. Metadaten) zur Aktivierung der autonomen Notbrems- und Spurhaltewarnfunktionen verwendet. Andere Typen von Stereokameras 1068 können zusätzlich oder alternativ zu den hier beschriebenen verwendet werden.
  • Kameras mit einem Sichtfeld, das Abschnitte der Umgebung seitlich des Fahrzeugs 1000 aufweist (z. B. Seitenkameras), können für die Umgebungsansicht verwendet werden und Informationen liefern, die zur Erstellung und Aktualisierung des Belegungsgitters sowie zur Erzeugung von Seitenaufprallwarnungen verwendet werden. Beispielsweise kann/können die Umgebungskamera(s) 1074 (z. B. vier Umgebungskameras 1074 wie in 10B dargestellt) um das Fahrzeug 1000 herum angeordnet sein. Die Umgebungskamera(s) 1074 kann/können Weitwinkelkamera(s) 1070, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder Ähnliches aufweisen. Zum Beispiel können vier Fischaugenkameras an der Vorderseite, am Heck und an den Seiten des Fahrzeugs positioniert sein. In einer alternativen Anordnung kann das Fahrzeug drei Umgebungskamera(s) 1074 (z. B. links, rechts und hinten) verwenden und eine oder mehrere andere Kamera(s) (z. B. eine nach vorn gerichtete Kamera) als vierte Surround-View-Kamera nutzen.
  • Kameras mit einem Sichtfeld, das Abschnitte der Umgebung hinter dem Fahrzeug 1000 aufweist (z. B. Rückfahrkameras), können für die Einparkhilfe, die Umgebungsansicht, Heckkollisionswarnungen und das Erstellen und Aktualisieren des Belegungsrasters verwendet werden. Es kann eine Vielzahl von Kameras verwendet werden, die unter anderem Kameras aufweisen, die auch als nach vorn gerichtete Kamera(s) geeignet sind (z. B. Fern- und/oder Mittelbereichskamera(s) 1098, Stereokamera(s) 1068, Infrarotkamera(s) 1072 usw.), wie es hier beschrieben ist.
  • 10C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug 1000 von 10A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es sollte verstanden werden, dass diese und andere hier beschriebene Anordnungen nur als Beispiele dargestellt sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Anordnungen, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Darüber hinaus handelt es sich bei vielen der hier beschriebenen Elemente um funktionale Einheiten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jedem geeigneten Ort implementiert werden können. Verschiedene hier beschriebene Funktionen, die von Einheiten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Zum Beispiel können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt.
  • Jede der Komponenten, Merkmale und Systeme des Fahrzeugs 1000 in 10C ist so dargestellt, dass sie über einen Bus 1002 verbunden sind. Der Bus 1002 kann eine Controller Area Network (CAN)-Datenschnittstelle aufweisen (hier alternativ als „CAN-Bus“ bezeichnet). Ein CAN kann ein Netzwerk innerhalb des Fahrzeugs 1000 sein, das zur Unterstützung der Steuerung verschiedener Merkmale und Funktionen des Fahrzeugs 1000 verwendet wird, wie z. B. die Betätigung von Bremsen, Beschleunigung, Bremsvorgang, Lenkung, Scheibenwischern usw. Ein CAN-Bus kann so ausgestaltet sein, dass er Dutzende oder sogar Hunderte von Knoten hat, von denen jeder seine eigene eindeutige Kennung hat (z. B. eine CAN-ID). Der CAN-Bus kann gelesen werden, um den Lenkradwinkel, die Fahrgeschwindigkeit, die Motordrehzahl (RPM), die Tastenpositionen und/oder andere Fahrzeugstatusanzeigen zu ermitteln. Der CAN-Bus kann ASIL B-konform sein.
  • Obwohl der Bus 1002 hier als CAN-Bus beschrieben wird, ist dies nicht als Einschränkung zu verstehen. Zum Beispiel können zusätzlich oder alternativ zum CAN-Bus FlexRay und/oder Ethernet verwendet werden. Auch wenn eine einzelne Leitung zur Darstellung des Busses 1002 verwendet wird, ist dies nicht als Einschränkung zu verstehen. Zum Beispiel kann es eine beliebige Anzahl von Bussen 1002 geben, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Bustypen mit einem anderen Protokoll aufweisen können. Bei einigen Beispielen können zwei oder mehr Busse 1002 verwendet werden, um unterschiedliche Funktionen auszuführen, und/oder sie können für Redundanz verwendet werden. Zum Beispiel kann ein erster Bus 1002 für die Kollisionsvermeidungsfunktionalität und ein zweiter Bus 1002 für die Ansteuerungssteuerung verwendet werden. Bei jedem Beispiel kann jeder Bus 1002 mit jeder der Komponenten des Fahrzeugs 1000 kommunizieren, und zwei oder mehr Busse 1002 können mit denselben Komponenten kommunizieren. Bei einigen Beispielen kann jedes SoC 1004, jede Steuerung 1036 und/oder jeder Computer innerhalb des Fahrzeugs Zugriff auf dieselben Eingabedaten haben (z. B. Eingaben von Sensoren des Fahrzeugs 1000) und kann mit einem gemeinsamen Bus, wie dem CAN-Bus, verbunden sein.
  • Das Fahrzeug 1000 kann eine oder mehrere Steuerungen 1036 aufweisen, wie sie hier in Bezug auf 10A beschrieben sind. Die Steuerung(en) 1036 kann/können für eine Vielzahl von Funktionen verwendet werden. Die Steuerung(en) 1036 kann/können mit einer beliebigen der verschiedenen anderen Komponenten und Systeme des Fahrzeugs 1000 gekoppelt sein und kann/können zur Steuerung des Fahrzeugs 1000, zur künstlichen Intelligenz des Fahrzeugs 1000, zum Infotainment für das Fahrzeug 1000 und/oder dergleichen verwendet werden.
  • Das Fahrzeug 1000 kann ein System (Systeme) auf einem Chip (SoC) 1004 aufweisen. Das SoC 1004 kann (eine) CPU(s) 1006, (eine) GPU(s) 1008, (einen) Prozessor(en) 1010, (einen) Cache(s) 1012, (einen) Beschleuniger 1014, (einen) Datenspeicher 1016 und/oder andere nicht dargestellte Komponenten und Merkmale aufweisen. Das/die SoC(s) 1004 kann/können zur Steuerung des Fahrzeugs 1000 in einer Vielzahl von Plattformen und Systemen verwendet werden. Beispielsweise kann das/die SoC(s) 1004 in einem System (z. B. dem System des Fahrzeugs 1000) mit einer HD-Karte 1022 kombiniert sein, die Kartenaktualisierungen und/oder -updates über eine Netzwerkschnittstelle 1024 von einem oder mehreren Servern (z. B. dem/den Server(n) 1078 von 10D) erhalten kann.
  • Die CPU(s) 1006 kann/können einen CPU-Cluster oder CPU-Komplex (hier alternativ als „CCPLEX“ bezeichnet) aufweisen. Die CPU(s) 1006 kann/können mehrere Kerne und/oder L2-Caches aufweisen. Bei einigen Ausführungsformen kann/können die CPU(s) 1006 beispielsweise acht Kerne in einer kohärenten Multiprozessorkonfiguration aufweisen. Bei einigen Ausführungsformen kann/können die CPU(s) 1006 vier Dual-Core-Cluster aufweisen, wobei jeder Cluster einen dedizierten L2-Cache (z. B. einen 2 MB L2-Cache) besitzt. Die CPU(s) 1006 (z. B. der CCPLEX) kann/können so ausgestaltet sein, dass sie den gleichzeitigen Clusterbetrieb unterstützt/en, so dass eine beliebige Kombination der Cluster der CPU(s) 1006 zu einem bestimmten Zeitpunkt aktiv sein kann.
  • Die CPU(s) 1006 kann/können Energieverwaltungsfunktionen implementieren, die eines oder mehrere der folgenden Merkmale aufweisen: einzelne Hardwareblöcke können im Leerlauf automatisch taktgesteuert werden, um dynamische Energie zu sparen; jeder Kerntakt kann gesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Befehlen nicht aktiv Befehle ausführt; jeder Kern kann unabhängig stromgesteuert sein; jeder Kern-Cluster kann unabhängig taktgesteuert sein, wenn alle Kerne taktgesteuert oder stromgesteuert sind; und/oder jeder Kern-Cluster kann unabhängig stromgesteuert sein, wenn alle Kerne stromgesteuert sind. Die CPU(s) 1006 kann/können darüber hinaus einen erweiterten Algorithmus für die Verwaltung von Energiezuständen implementieren, bei dem zulässige Energiezustände und erwartete Aufwachzeiten angegeben werden und die Hardware/der Mikrocode den besten Energiezustand für den Kern, den Cluster und CCPLEX bestimmt. Die Prozessorkerne können vereinfachte Sequenzen zur Eingabe des Energiezustands in Software unterstützen, wobei die Arbeit an den Mikrocode ausgelagert ist.
  • Die GPU(s) 1008 kann/können eine integrierte GPU aufweisen (hier alternativ als „iGPU“ bezeichnet). Die GPU(s) 1008 kann/können programmierbar sein und kann/können effizient für parallele Arbeitslasten sein. Die GPU(s) 1008 kann/können in einigen Beispielen einen erweiterten Tensor-Befehlssatz verwenden. Die GPU(s) 1008 kann/können einen oder mehrere Streaming-Mikroprozessoren aufweisen, wobei jeder Streaming-Mikroprozessor einen L1-Cache (z. B. einen L1-Cache mit einer Speicherkapazität von mindestens 96 KB) aufweisen kann, und zwei oder mehr der Streaming-Mikroprozessoren können sich einen L2-Cache (z. B. einen L2-Cache mit einer Speicherkapazität von 512 KB) teilen. Bei einigen Ausführungsformen kann/können die GPU(s) 1008 mindestens acht Streaming-Mikroprozessoren aufweisen. Die GPU(s) 1008 kann/können computerbasierte Anwendungsprogrammierschnittstelle(n) (API(s)) verwenden. Darüber hinaus kann/können die GPU(s) 1008 eine oder mehrere parallele Rechenplattformen und/oder Programmiermodelle (z. B. CUDA von NVIDIA) verwenden.
  • Die GPU(s) 1008 kann/können für die beste Leistung in automobilen und eingebetteten Anwendungsfällen energieoptimiert sein. Beispielsweise kann/können die GPU(s) 1008 auf einem Fin-Feldeffekttransistor (FinFET) gefertigt sein. Dies ist jedoch nicht als Einschränkung zu verstehen, und die GPU(s) 1008 kann/können auch mit anderen Halbleiterfertigungsverfahren hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Anzahl von Mixed-Precision-Verarbeitungskernen enthalten, die in mehrere Blöcke unterteilt sind. Beispielsweise und ohne Einschränkung können 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke partitioniert sein. Bei 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-Befehls-Cache, ein Warp-Scheduler, eine Dispatch-Einheit und/oder eine 64 KB große Registerdatei zugewiesen werden. Darüber hinaus können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkomma-Datenpfade aufweisen, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnungen und Adressierungsberechnungen zu ermöglichen. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Planungsfunktion aufweisen, um eine feinkörnigere Synchronisation und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Datencache und eine Shared-Memory-Einheit aufweisen, um die Leistung zu verbessern und gleichzeitig die Programmierung zu vereinfachen.
  • Die GPU(s) 1008 kann/können einen Speicher mit hoher Bandbreite (HBM) und/oder ein 16-GB-HBM2-Speicher-Subsystem aufweisen, um in einigen Beispielen eine Spitzen-Speicherbandbreite von etwa 900 GB/Sekunde bereitzustellen.
    In einigen Beispielen kann zusätzlich zu oder alternativ zu dem HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (SGRAM) verwendet werden, wie z. B. ein synchroner Grafik-Doppeldatenraten-Direktzugriffsspeicher vom Typ 5 (GDDR5).
  • Die GPU(s) 1008 kann/können eine Unified-Memory-Technologie aufweisen, die Zugriffszähler enthält, 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 den Prozessoren gemeinsam genutzt werden. Bei einigen Beispielen kann die Unterstützung von Adresskonvertierungsdiensten (ATS) verwendet werden, damit die GPU(s) 1008 direkt auf die Seitentabellen der CPU(s) 1006 zugreifen können. Bei solchen Beispielen kann, wenn die Speicherverwaltungseinheit (MMU) der GPU(s) 1008 einen Fehler feststellt, eine Adresskonvertierungsanforderung an die CPU(s) 1006 gesendet werden. Als Antwort darauf kann/können die CPU(s) 1006 in ihren Seitentabellen nach der virtuell-physikalischen Zuordnung für die Adresse suchen und die Konvertierung zurück an die GPU(s) 1008 übertragen. Als solches kann die Unified-Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 1006 als auch der GPU(s) 1008 ermöglichen, was die Programmierung der GPU(s) 1008 und die Portierung von Anwendungen auf die GPU(s) 1008 vereinfacht.
  • Darüber hinaus kann/können die GPU(s) 1008 einen Zugriffszähler aufweisen, der die Häufigkeit des Zugriffs der GPU(s) 1008 auf den Speicher anderer Prozessoren verfolgen kann. Der Zugriffszähler kann helfen, sicherzustellen, dass Speicherseiten in den physischen Speicher des Prozessors verschoben werden, der am häufigsten auf die Seiten zugreift.
  • Das/die SoC(s) 1004 kann/können eine beliebige Anzahl von Cache(s) 1012 aufweisen, einschließlich der hier beschriebenen. Beispielsweise kann/können der/die Cache(s) 1012 einen L3-Cache aufweisen, der sowohl der/den CPU(s) 1006 als auch der/den GPU(s) 1008 zur Verfügung steht (z. B. der/die sowohl mit der/den CPU(s) 1006 als auch der/den GPU(s) 1008 verbunden ist). Der/die Cache(s) 1012 kann/können einen Write-Back-Cache aufweisen, der die Zustände von Zeilen verfolgen kann, z. B. durch Verwendung eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI usw.). Der L3-Cache kann je nach Ausführungsform 4 MB oder mehr aufweisen, obwohl auch kleinere Cache-Größen verwendet werden können.
  • Das/die SoC(s) 1004 kann/können einen oder mehrere Beschleuniger 1014 aufweisen (z. B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon). Zum Beispiel kann/können das/die SoC(s) 1004 einen Hardware-Beschleunigungscluster aufweisen, der optimierte Hardware-Beschleuniger und/oder einen großen On-Chip-Speicher aufweisen kann. Der große On-Chip-Speicher (z. B. 4 MB SRAM) kann den Hardware-Beschleunigungscluster in die Lage versetzen, neuronale Netze und andere Berechnungen zu beschleunigen. Der Hardware-Beschleunigungscluster kann zur Ergänzung der GPU(s) 1008 und zur Entlastung einiger Aufgaben der GPU(s) 1008 verwendet werden (z. B. um mehr Zyklen der GPU(s) 1008 für die Durchführung anderer Aufgaben freizugeben). Der/die Beschleuniger 1014 kann/können beispielsweise für gezielte Arbeitslasten (z. B. Wahrnehmung, faltende neuronale Netze (CNNs) usw.) verwendet werden, die stabil genug sind, um für eine Beschleunigung geeignet zu sein. Der Begriff „CNN“, wie er hier verwendet wird, kann alle Arten von CNNs einschließen, einschließlich regionenbasierter oder regionaler faltender neuronaler Netze (RCNs) und Fast-RCNs (z. B. wie sie für die Objekterkennung verwendet werden).
  • Der/die Beschleuniger 1014 (z. B. der Hardware-Beschleunigungscluster) kann/können einen Deep-Learning-Beschleuniger (DLA) aufweisen. Der/die DLA(s) kann/können eine oder mehrere Tensor Processing Units (TPUs) aufweisen, die so ausgestaltet sein können, dass sie zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferencing bereitstellen. Die TPUs können Beschleuniger sein, die für die Ausführung von Bildverarbeitungsfunktionen (z. B. für CNNs, RCNNs usw.) ausgestaltet und optimiert sind. Der/die DLA(s) können darüber hinaus für einen bestimmten Satz von Typen neuronaler Netze und Fließkommaoperationen sowie Inferencing optimiert sein. Das Design des/der DLA(s) kann mehr Leistung pro Millimeter bieten als eine Allzweck-GPU und übertrifft die Leistung einer CPU bei weitem. Die TPU(s) kann/können mehrere Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die z. B. INT8-, INT16- und FP16-Datentypen sowohl für Merkmale als auch für Gewichte unterstützt, sowie Postprozessorfunktionen.
  • Der/die DLA(s) kann/können schnell und effizient neuronale Netze, insbesondere CNNs, auf verarbeiteten oder unverarbeiteten Daten für eine Vielzahl von Funktionen ausführen, die beispielsweise und ohne Einschränkung Folgendes aufweisen: ein CNN für die Objektidentifikation und -erkennung 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 Identifikation von Einsatzfahrzeugen unter Verwendung von Daten von Mikrofonen; ein CNN für die Gesichtserkennung und die Identifikation des Fahrzeugbesitzers unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheitsrelevante Ereignisse.
  • Der/die DLA(s) kann/können jede Funktion der GPU(s) 1008 ausführen, und durch die Verwendung eines Inferenzbeschleunigers kann ein Designer beispielsweise entweder den/die DLA(s) oder die GPU(s) 1008 für jede Funktion gezielt einsetzen. Beispielsweise kann der Entwickler die Verarbeitung von CNNs und Fließkommaoperationen auf den/die DLA(s) konzentrieren und andere Funktionen der/den GPU(s) 1008 und/oder anderen Beschleuniger(n) 1014 überlassen.
  • Der/die Beschleuniger 1014 (z. B. der Hardware-Beschleunigungscluster) kann/können einen programmierbaren Bildverarbeitungsbeschleuniger (PVA) aufweisen, der hier alternativ auch als Computer-Vision-Beschleuniger bezeichnet werden kann. Der/die PVA(s) kann/können so gestaltet und ausgestaltet sein, dass er/sie Computer-Vision-Algorithmen für fortschrittliche Fahrerassistenzsysteme (ADAS), autonomes Fahren und/oder Augmented-Reality (AR)- und/oder Virtual-Reality (VR)-Anwendungen beschleunigt. Der/die PVA(s) kann/können ein Gleichgewicht zwischen Leistung und Flexibilität bieten. Zum Beispiel kann jeder PVA beispielsweise und ohne Einschränkung eine beliebige Anzahl von RISC-Kernen (Reduced Instruction Set Computer), direkten Speicherzugriff (DMA) und/oder eine beliebige Anzahl von Vektorprozessoren aufweisen.
  • Die RISC-Kerne können mit Bildsensoren (z. B. den Bildsensoren einer der hier beschriebenen Kameras), Bildsignalprozessor(en) und/oder dergleichen interagieren. Jeder der RISC-Kerne kann eine beliebige Menge an Speicher aufweisen. Die RISC-Kerne können je nach Ausführungsform eine beliebige Anzahl von Protokollen verwenden. Bei einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (RTOS) ausführen. Die RISC-Kerne können mit einer oder mehreren integrierten Einrichtungen, anwendungsspezifischen integrierten Schaltungen (ASICs) und/oder Speichereinrichtungen implementiert sein. Beispielsweise können die RISC-Kerne einen Befehls-Cache und/oder einen eng gekoppelten RAM aufweisen.
  • Der DMA kann es Komponenten der PVA(s) ermöglichen, unabhängig von der/den CPU(s) 1006 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Merkmalen unterstützen, die zur Optimierung der PVA verwendet werden, einschließlich, aber nicht beschränkt auf, die Unterstützung von mehrdimensionaler Adressierung und/oder zirkulärer Adressierung. Bei einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die Blockbreite, Blockhöhe, Blocktiefe, horizontales Blockstepping, vertikales Blockstepping und/oder Tiefenstepping aufweisen können.
  • Die Vektorprozessoren können programmierbare Prozessoren sein, die so gestaltet sein können, dass sie die Programmierung für Computer-Vision-Algorithmen effizient und flexibel ausführen und Signalverarbeitungsfunktionen bereitstellen. Bei einigen Beispielen kann der PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystem-Partitionen aufweisen. Der PVA-Kern kann ein Prozessor-Subsystem, DMA-Engine(s) (z.B. zwei DMA-Engines) und/oder andere Peripheriegeräte aufweisen. Das Vektorverarbeitungs-Subsystem kann als primäre Verarbeitungsmaschine des PVAs arbeiten und kann eine Vektorverarbeitungseinheit (VPU), einen Befehlscache und/oder einen Vektorspeicher (z. B. VMEM) aufweisen. Ein VPU-Kern kann einen digitalen Signalprozessor aufweisen, wie z. B. einen digitalen Signalprozessor mit einer Anweisung, mehreren Daten (SIMD) und sehr langen Anweisungsworten (VLIW). Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.
  • Jeder der Vektorprozessoren kann einen Befehls-Cache aufweisen und mit einem dedizierten Speicher gekoppelt sein. Als Ergebnis kann bei einigen Beispielen jeder der Vektorprozessoren so ausgestaltet sein, dass er unabhängig von den anderen Vektorprozessoren arbeitet. Bei anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA vorhanden sind, so ausgestaltet sein, dass sie Datenparallelität verwenden. Bei einigen Ausführungsformen kann die Vielzahl der in einem einzigen PVA enthaltenen Vektorprozessoren beispielsweise denselben Computer-Vision-Algorithmus ausführen, jedoch für unterschiedliche Bereiche eines Bildes. Bei anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA enthalten sind, gleichzeitig verschiedene Computer-Vision-Algorithmen auf demselben Bild ausführen oder sogar verschiedene Algorithmen auf aufeinanderfolgenden Bildern oder Abschnitten eines Bildes ausführen. Unter anderem kann der Hardware-Beschleunigungs-Cluster eine beliebige Anzahl von PVAs aufweisen und jeder der PVAs kann eine beliebige Anzahl von Vektorprozessoren aufweisen. Darüber hinaus kann/können der/die PVA(s) einen zusätzlichen ECC-Speicher (Error Correcting Code) aufweisen, um die Sicherheit des Gesamtsystems zu erhöhen.
  • Der (die) Beschleuniger 1014 (z. B. der Hardware-Beschleunigungscluster) kann (können) ein Computer-Vision-Netzwerk auf dem Chip und SRAM aufweisen, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den (die) Beschleuniger 1014 bereitzustellen. Bei einigen Beispielen kann der On-Chip-Speicher mindestens 4 MB SRAM aufweisen, der z. B. und ohne Einschränkung aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl der PVA als auch der DLA zugreifen kann. Jedes Paar von Speicherblöcken kann eine APB-Schnittstelle (Advanced Peripheral Bus), Konfigurationsschaltungen, einen Controller und einen Multiplexer aufweisen. Es kann jeder beliebige Speichertyp verwendet werden. Der PVA und der DLA können über ein Backbone auf den Speicher zugreifen, das dem PVA und dem DLA einen Hochgeschwindigkeitszugriff auf den Speicher ermöglicht. Das Backbone kann ein Computer-Vision-Netzwerk auf dem Chip aufweisen, das den PVA und den DLA mit dem Speicher verbindet (z. B. unter Verwendung des APB).
  • Das Computer-Vision-Netzwerk auf dem Chip kann eine Schnittstelle aufweisen, die vor der Übertragung von Steuersignalen/Adressen/Daten feststellt, dass sowohl der PVA als auch der DLA bereitstehende und gültige Signale liefern. Eine solche Schnittstelle kann getrennte Phasen und getrennte Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-Kommunikation für die kontinuierliche Datenübertragung vorsehen. Diese Art von Schnittstelle kann den Normen ISO 26262 oder IEC 61508 entsprechen, obwohl auch andere Normen und Protokolle verwendet werden können.
  • Bei einigen Beispielen kann/können das/die SoC(s) 1004 einen Echtzeit-Raytracing-Hardwarebeschleuniger aufweisen, wie er in der US-Patentanmeldung Nr. 16/101,232 , eingereicht am 10. August 2018, beschrieben ist. Der Echtzeit-Raytracing-Hardwarebeschleuniger kann verwendet werden, um schnell und effizient die Positionen und Ausdehnungen von Objekten (z. B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeit-Visualisierungssimulationen 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 Zweck der Lokalisierung und/oder für andere Funktionen und/oder für andere Zwecke.
  • Der/die Beschleuniger 1014 (z. B. der Hardware-Beschleuniger-Cluster) hat/haben eine breite Palette von Verwendungen für das autonome Fahren. Der PVA kann ein programmierbarer Bildverarbeitungsbeschleuniger sein, der für wichtige Verarbeitungsschritte in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVAs passen gut zu algorithmischen Domänen, die eine vorhersagbare Verarbeitung bei geringem Stromverbrauch und niedriger Latenzzeit benötigen. Mit anderen Worten, der PVA eignet sich gut für halbdichte oder dichte reguläre Berechnungen, auch bei kleinen Datensätzen, die vorhersagbare Laufzeiten mit geringer Latenz und niedrigem Stromverbrauch benötigen. Im Kontext von Plattformen für autonome Fahrzeuge sind die PVAs daher dafür ausgelegt, klassische Computer-Vision-Algorithmen auszuführen, da sie effizient bei der Objekterkennung sind und mit ganzzahliger Mathematik arbeiten.
  • Gemäß einer Ausführungsform der Technologie wird der PVA beispielsweise zur Durchführung von Computer-Stereo-Vision verwendet. Bei einigen Beispielen kann ein semi-globaler Matching-basierter Algorithmus verwendet werden, obwohl dies nicht als Einschränkung gedacht ist. Viele Anwendungen für das autonome Fahren der Stufe 3-5 erfordern eine Bewegungsschätzung/Stereo-Matching on-the-fly (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrspurerkennung usw.). Der PVA kann eine Computer-Stereo-Vision-Funktion auf Eingaben von zwei monokularen Kameras ausführen.
  • Bei einigen Beispielen kann der PVA verwendet werden, um auf einem dichten optischen Fluss zu arbeiten. Entsprechend werden RADAR-Rohdaten verarbeitet (z. B. unter Verwendung einer 4D-Fast-Fourier-Transformation), um verarbeitetes RADAR bereitzustellen. Bei anderen Beispielen wird der PVA für die Flugzeittiefenverarbeitung verwendet, indem er z. B. Flugzeit-Rohdaten verarbeitet, um verarbeitete Flugzeitdaten bereitzustellen.
  • Der DLA kann verwendet werden, um jede Art von Netzwerk zu betreiben, um die Kontrolle und die Fahrsicherheit zu verbessern, was beispielsweise ein neuronales Netz einschließt, das für jede Objekterkennung ein Maß für die Konfidenz bzw. das Vertrauen ausgibt. Ein solcher Konfidenzwert kann als Wahrscheinlichkeit interpretiert werden oder eine relative „Gewichtung“ jeder Erkennung im Vergleich zu anderen Erkennungen liefern. Dieser Konfidenzwert bzw. Vertrauenswert ermöglicht es dem System, darüber hinaus Entscheidungen darüber zu treffen, welche Erkennungen als echte positive Erkennungen und welche 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 echte positive Erkennungen betrachten. Bei einem automatischen Notbremssystem (AEB) 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 sichersten Erkennungen als Auslöser für ein AEB in Betracht gezogen werden. Der DLA kann ein neuronales Netz zur Regression des Konfidenzwertes einsetzen. Das neuronale Netz kann als Eingabe zumindest eine Teilmenge von Parametern verwenden, wie z. B. die Abmessungen des Begrenzungsrahmens, die (z. B. von einem anderen Teilsystem) erhaltene Schätzung der Bodenebene, die Ausgabe des IMU-Sensors 1066 (Inertial Measurement Unit), die mit der Ausrichtung des Fahrzeugs 1000 korreliert, die Entfernung, die 3D-Positionsschätzungen des Objekts, die von dem neuronalen Netz und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 1064 oder RADAR-Sensor(en) 1060) erhalten werden, und andere.
  • Das/die SoC(s) 1004 kann/können die Datenspeicher 1016 (z. B. Speicher) aufweisen. Der (die) Datenspeicher 1016 kann (können) ein On-Chip-Speicher des (der) SoC(s) 1004 sein, der (die) neuronale Netze speichern kann (können), die auf der GPU und/oder dem DLA ausgeführt werden sollen. Bei einigen Beispielen kann die Kapazität des/der Datenspeicher(s) 1016 groß genug sein, um mehrere Instanzen von neuronalen Netzen für Redundanz und Sicherheit zu speichern. Der/die Datenspeicher 1016 kann/können (einen) L2 oder L3 Cache(s) 1012 umfassen. Der Verweis auf den/die Datenspeicher 1016 kann einen Verweis auf den Speicher aufweisen, der mit dem PVA, DLA und/oder anderen Beschleunigern 1014 verbunden ist, wie es hierin beschrieben ist.
  • Das/die SoC(s) 1004 kann/können einen oder mehrere Prozessor(en) 1010 (z. B. eingebettete Prozessoren) aufweisen. Der/die Prozessor(en) 1010 kann/können einen Boot- und Energieverwaltungsprozessor aufweisen, der ein dedizierter Prozessor und ein Subsystem sein kann, um die Boot-Energie- und Verwaltungsfunktionen und die damit verbundene Sicherheitsdurchsetzung zu handhaben. Der Boot- und Energieverwaltungsprozessor kann ein Teil der Boot-Sequenz des/der SoC(s) 1004 sein und kann Laufzeit-Energieverwaltungsdienste bereitstellen. Der Boot-Energieversorgungs- und -Verwaltungsprozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen mit niedrigem Stromverbrauch, Verwaltung von Temperaturen und Temperatursensoren des/der SoC(s) 1004 und/oder Verwaltung der Leistungszustände des/der SoC(s) 1004 bereitstellen. Jeder Temperatursensor kann als Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und das/die SoC(s) 1004 kann/können die Ringoszillatoren verwenden, um die Temperaturen der CPU(s) 1006, GPU(s) 1008 und/oder des/der Beschleuniger(s) 1014 zu erfassen. Wenn festgestellt wird, dass die Temperaturen einen Schwellenwert überschreiten, kann der Boot- und Energieverwaltungsprozessor in eine Temperaturfehlerroutine eintreten und das/die SoC(s) 1004 in einen Zustand mit geringerer Leistung versetzen und/oder das Fahrzeug 1000 in einen Chauffeur-to-Safe-Stop-Modus versetzen (z. B. das Fahrzeug 1000 zu einem sicheren Halt bringen).
  • Der/die Prozessor(en) 1010 kann/können darüber hinaus einen Satz eingebetteter Prozessoren aufweisen, die als eine Audioverarbeitungsmaschine dienen können. Die Audioverarbeitungsmaschine kann ein Audio-Subsystem sein, das eine vollständige Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen und einen breiten und flexiblen Bereich von Audio-E/A-Schnittstellen ermöglicht. Bei einigen Beispielen ist die Audioverarbeitungsmaschine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • Der (die) Prozessor(en) 1010 kann (können) darüber hinaus eine „Always-on“-Prozessor-Maschine aufweisen, die die notwendigen Hardware-Funktionen zur Unterstützung von Sensormanagement mit geringem Stromverbrauch und Wake-Use-Cases bereitstellen kann. Die Always-on-Prozessor-Maschine kann einen Prozessorkern, ein eng gekoppeltes RAM, unterstützende Peripheriegeräte (z. B. Timer und Interrupt-Controller), verschiedene E/A-Controller-Peripheriegeräte und Routing-Logik aufweisen.
  • Der/die Prozessor(en) 1010 kann/können darüber hinaus eine Safety-Cluster-Maschine aufweisen, die ein dediziertes Prozessor-Subsystem zur Handhabung des Sicherheitsmanagements für Automobilanwendungen umfasst. Die Safety-Cluster-Maschine kann zwei oder mehr Prozessorkerne, ein eng gekoppeltes RAM, unterstützende Peripheriegeräte (z. B. Timer, einen Interrupt-Controller usw.) und/oder eine Routing-Logik aufweisen. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Lockstep-Modus arbeiten und als ein einziger Kern mit einer Vergleichslogik arbeiten, um etwaige Unterschiede zwischen ihren Operationen zu erkennen.
  • Der/die Prozessor(en) 1010 kann/können darüber hinaus eine Echtzeit-Kamera-Maschine aufweisen, die ein dediziertes Prozessor-Subsystem zur Handhabung des Echtzeit-Kameramanagements aufweisen kann.
  • Der (die) Prozessor(en) 1010 kann (können) darüber hinaus einen Signalprozessor mit hohem Dynamikbereich aufweisen, der einen Bildsignalprozessor aufweisen kann, der eine Hardware-Maschine ist, die Teil der Kameraverarbeitungspipeline ist.
  • Der (die) Prozessor(en) 1010 kann (können) einen Videobildkompositor aufweisen, 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 Spieler-Fenster zu erzeugen. Der Videobildkompositor kann eine Linsenverzerrungskorrektur an der/den Weitwinkelkamera(s) 1070, der/den Umgebungskamera(s) 1074 und/oder an den Kamerasensoren für die Überwachung in dem Fahrgastraum durchführen. Ein Überwachungskamerasensor innerhalb des Fahrgastraums wird vorzugsweise von einem neuronalen Netz überwacht, das auf einer anderen Instanz des erweiterten SoC läuft und so ausgestaltet ist, dass es Ereignisse innerhalb des Fahrgastraums erkennt und entsprechend reagiert. Ein System im Fahrgastraum kann Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, das Fahrtziel zu ändern, das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachgesteuertes Surfen im Internet zu ermöglichen. Bestimmte Funktionen stehen dem Fahrer nur zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind ansonsten deaktiviert.
  • Der Videobildkompositor kann eine erweiterte zeitliche Rauschunterdrückung sowohl für räumliche als auch zeitliche Rauschunterdrückung aufweisen. Wenn beispielsweise Bewegung in einem Video auftritt, gewichtet die Rauschunterdrückung die räumlichen Informationen entsprechend und verringert das Gewicht der Informationen, die von benachbarten Bildern geliefert werden. Wenn ein Bild oder ein Abschnitt eines Bildes keine Bewegung aufweist, kann die vom Videobildkompositor durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu reduzieren.
  • Der Videobildkompositor kann auch so ausgestaltet sein, dass er eine Stereokorrektur an den eingegebenen Stereolinsenbildern durchführt. Der Videobildkompositor kann darüber hinaus für die Komposition der Benutzeroberfläche verwendet werden, wenn der Desktop des Betriebssystems in Gebrauch ist und die GPU(s) 1008 nicht zum kontinuierlichen Rendern neuer Oberflächen benötigt wird/werden. Selbst wenn die GPU(s) 1008 eingeschaltet ist/sind und aktiv 3D-Rendering durchführt/en, kann der Videobildkompositor verwendet werden, um die GPU(s) 1008 zu entlasten und die Leistung und Reaktionsfähigkeit zu verbessern.
  • Das/die SoC(s) 1004 kann/können darüber hinaus eine serielle MIPI-Kameraschnittstelle für den Empfang von Videos und Eingaben von Kameras, eine Hochgeschwindigkeits-Schnittstelle und/oder einen Videoeingabeblock aufweisen, der für Kamera- und verwandte Pixeleingabefunktionen verwendet werden kann. Das/die SoC(s) 1004 kann/können darüber hinaus eine Eingangs-/Ausgangs-Steuerung aufweisen, die durch Software gesteuert werden kann und für den Empfang von E/A-Signalen verwendet werden kann, die keiner bestimmten Rolle zugeordnet sind.
  • Das/die SoC(s) 1004 kann/können darüber hinaus eine breite Palette von Peripherieschnittstellen aufweisen, um die Kommunikation mit Peripheriegeräten, Audiocodecs, Energieverwaltung und/oder anderen Einrichtungen zu ermöglichen. Das/die SoC(s) 1004 kann/können verwendet werden, um Daten von Kameras (z. B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z. B. LIDAR-Sensor(en) 1064, RADAR-Sensor(en) 1060 usw., die über Ethernet verbunden sein können), Daten vom Bus 1002 (z. B. Geschwindigkeit des Fahrzeugs 1000, Lenkradposition usw.), Daten von GNSS-Sensor(en) 1058 (z. B. verbunden über Ethernet oder CAN-Bus) zu verarbeiten. Das/die SoC(s) 1004 kann/können darüber hinaus dedizierte Hochleistungs-Massenspeicher-Steuerungen aufweisen, die ihre eigenen DMA-Maschinen aufweisen können, und die verwendet werden können, um die CPU(s) 1006 von routinemäßigen Datenverwaltungsaufgaben zu befreien.
  • Das/die SoC(s) 1004 kann/können eine End-to-End-Plattform mit einer flexiblen Architektur sein, die die Automatisierungsstufen 3-5 überspannt und dadurch eine umfassende funktionale Sicherheitsarchitektur bereitstellt, die Computer-Vision- und ADAS-Techniken für Diversität und Redundanz nutzt und effizient einsetzt, und eine Plattform für einen flexiblen, zuverlässigen Fahrsoftware-Stack zusammen mit Deep-Learning-Tools bietet. Das/die SoC(s) 1004 kann/können schneller, zuverlässiger und sogar energie- und platzsparender sein als herkömmliche Systeme. Zum Beispiel kann/können der/die Beschleuniger 1014, wenn er/sie mit der/den CPU(s) 1006, der/den GPU(s) 1008 und dem/den Datenspeicher(n) 1016 kombiniert ist/sind, eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bilden.
  • Die Technologie bietet somit Fähigkeiten und Funktionen, die von herkömmlichen Systemen nicht erreicht werden können. Zum Beispiel können Computer-Vision-Algorithmen auf CPUs ausgeführt werden, die mit einer High-Level-Programmiersprache, wie der Programmiersprache C, ausgestaltet sein können, um eine Vielzahl von Verarbeitungsalgorithmen über eine Vielzahl von visuellen Daten auszuführen. Allerdings sind CPUs oft nicht in der Lage, die Leistungsanforderungen vieler Computer-Vision-Anwendungen zu erfüllen, wie z. B. die Anforderungen an die Ausführungszeit und den Stromverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, was eine Anforderung von fahrzeuginternen ADAS-Anwendungen und eine Anforderung für praxistaugliche autonome Fahrzeuge der Stufe 3-5 ist.
  • Im Gegensatz zu herkömmlichen Systemen ermöglicht die hier beschriebene Technologie durch die Bereitstellung eines CPU-Komplexes, eines GPU-Komplexes und eines Hardware-Beschleunigungs-Clusters die gleichzeitige und/oder sequentielle Ausführung mehrerer neuronaler Netze und die Kombination der Ergebnisse, um die Funktionalität des autonomen Fahrens der Stufe 3-5 zu ermöglichen. Zum Beispiel kann ein CNN, das auf dem DLA oder der dGPU (z. B. der/den GPU(s) 1020) ausgeführt wird, eine Text- und Worterkennung aufweisen, die es dem Supercomputer ermöglicht, Verkehrszeichen zu lesen und zu verstehen, einschließlich Zeichen, für die das neuronale Netz nicht speziell trainiert wurde. Der DLA kann darüber hinaus ein neuronales Netz aufweisen, das in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis zu liefern und dieses semantische Verständnis an die Wegplanungsmodule weiterzugeben, die auf dem CPU-Komplex laufen.
  • Als weiteres Beispiel können mehrere neuronale Netze gleichzeitig ausgeführt werden, wie es für die Stufe 3, 4 oder 5 erforderlich ist. Zum Beispiel kann ein Warnschild, bestehend aus „Vorsicht: Blinkende Lichter weisen auf vereiste Bedingungen hin“, zusammen mit einem elektrischen Licht, unabhängig oder gemeinsam von mehreren neuronalen Netzen interpretiert werden. Das Schild selbst kann von einem ersten eingesetzten neuronalen Netz (z. B. einem trainierten neuronalen Netz) als Verkehrsschild identifiziert werden, der Text „Blinkende Lichter deuten auf Eisglätte hin“ kann von einem zweiten eingesetzten neuronalen Netz interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass bei der Erkennung blinkender Lichter Eisglätte vorliegt. Das Blinklicht kann durch den Betrieb eines dritten eingesetzten neuronalen Netzes über mehrere Bilder identifiziert werden, das die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von Blinklichtern informiert. Alle drei neuronalen Netze können gleichzeitig laufen, z. B. innerhalb des DLAs und/oder auf der/den GPU(s) 1008.
  • Bei einigen Beispielen kann ein CNN für die Gesichtserkennung und die Identifizierung des Fahrzeugbesitzers Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 1000 zu identifizieren. Die „Always-on“-Sensorverarbeitungs-Maschine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn der Besitzer sich der Fahrertür nähert, und um die Beleuchtung einzuschalten, und um im Sicherheitsmodus das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise sorgen das/die SoC(s) 1004 für Sicherheit gegen Diebstahl und/oder Carjacking.
  • Bei einem anderen Beispiel kann ein CNN zur Erkennung und Identifizierung von Einsatzfahrzeugen Daten von Mikrofonen 1096 verwenden, um Sirenen von Einsatzfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifikatoren zur Erkennung von Sirenen und zur manuellen Extraktion von Merkmalen verwenden, nutzt/en das/die SoC(s) 1004 das CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. Bei einer bevorzugten Ausführungsform wird das CNN, das auf dem DLA läuft, darauf trainiert, die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs zu erkennen (z. B. durch Verwendung des Dopplereffekts). Das CNN kann auch so trainiert werden, dass es Einsatzfahrzeuge identifiziert, die spezifisch für den lokalen Bereich sind, in dem das Fahrzeug operiert, wie es von GNSS-Sensor(en) 1058 identifiziert wird. So wird das CNN z. B. bei einem Einsatz in Europa versuchen, europäische Sirenen zu erkennen, und bei einem Einsatz in den Vereinigten Staaten wird das CNN versuchen, nur nordamerikanische Sirenen zu erkennen. Sobald ein Einsatzfahrzeug erkannt wird, kann ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für Einsatzfahrzeuge auszuführen, das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug im Leerlauf laufen zu lassen, mit Hilfe der Ultraschallsensoren 1062, bis das/die Einsatzfahrzeug(e) vorbeifährt bzw. vorbeifahren.
  • Das Fahrzeug kann (eine) CPU(s) 1018 (z. B. diskrete CPU(s) oder dCPU(s)) aufweisen, die mit dem/den SoC(s) 1004 über eine Hochgeschwindigkeitsverbindung (z. B. PCle) gekoppelt sein kann/können. Die CPU(s) 1018 kann/können z. B. einen X86-Prozessor aufweisen. Die CPU(s) 1018 kann/können verwendet werden, um eine beliebige einer Vielzahl von Funktionen auszuführen, einschließlich der Schlichtung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem/den SoC(s) 1004 und/oder der Überwachung des Status und des Zustands der Steuerung(en) 1036 und/oder des Infotainment-SoC 1030, zum Beispiel.
  • Das Fahrzeug 1000 kann (eine) GPU(s) 1020 (z.B. diskrete GPU(s) oder dGPU(s)) aufweisen, die mit dem/den SoC(s) 1004 über eine Hochgeschwindigkeitsverbindung (z.B. NVIDIAs NVLINK) gekoppelt sein kann/können. Der/die GPU(s) 1020 kann/können eine zusätzliche künstliche Intelligenzfunktionalität bereitstellen, z. B. durch Ausführen redundanter und/oder unterschiedlicher neuronaler Netze, und kann/können zum Trainieren und/oder Aktualisieren neuronaler Netze auf der Grundlage von Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 1000 verwendet werden.
  • Das Fahrzeug 1000 kann darüber hinaus die Netzwerkschnittstelle 1024 aufweisen, die eine oder mehrere drahtlose Antennen 1026 aufweisen kann (z. B. eine oder mehrere drahtlose Antennen für verschiedene Kommunikationsprotokolle, wie eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die Netzwerkschnittstelle 1024 kann verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z. B. mit dem/den Server(n) 1078 und/oder anderen Netzwerkeinrichtungen), mit anderen Fahrzeugen und/oder mit Recheneinrichtungen (z. B. Clienteinrichtungen von Insassen) zu ermöglichen. Um mit anderen Fahrzeugen zu kommunizieren, kann eine direkte Verbindung zwischen den beiden Fahrzeugen hergestellt werden und/oder eine indirekte Verbindung (z. B. über Netzwerke und das Internet). Direkte Verbindungen können über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung hergestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 1000 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 1000 liefern (z. B. Fahrzeuge vor, neben und/oder hinter dem Fahrzeug 1000). Diese Funktionalität kann Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 1000 sein.
  • Die Netzwerkschnittstelle 1024 kann ein SoC aufweisen, das Modulations- und Demodulationsfunktionalität bereitstellt und der/den Steuerung(en) 1036 ermöglicht, über drahtlose Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 1024 kann ein Funkfrequenz-Frontend zur Aufwärtskonvertierung eines Basisbands auf eine Funkfrequenz und zur Abwärtskonvertierung von einer Funkfrequenz auf ein Basisband aufweisen. Die Frequenzumwandlungen können durch bekannte Verfahren durchgeführt werden, und/oder sie können unter Verwendung von Super-Heterodyn-Verfahren durchgeführt werden. Bei einigen Beispielen kann die Hochfrequenz-Front-End-Funktionalität von einem separaten Chip bereitgestellt werden. 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 aufweisen.
  • Das Fahrzeug 1000 kann darüber hinaus einen oder mehrere Datenspeicher 1028 aufweisen, die eine Speicherung außerhalb des Chips (z. B. außerhalb des SoCs 1004) aufweisen können. Der/die Datenspeicher 1028 kann/können ein oder mehrere Speicherelemente aufweisen, einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Einrichtungen, die mindestens ein Datenbit speichern können.
  • Das Fahrzeug 1000 kann darüber hinaus (einen) GNSS-Sensor(en) 1058 aufweisen. Die/Der GNSS-Sensor(en) 1058 (z. B. GPS- und/oder unterstützte GPS-Sensoren) assistieren bei der Kartierung, der Wahrnehmung, der Erstellung von Belegungsrastern und/oder den Pfadplanungsfunktionen. Es kann eine beliebige Anzahl von GNSS-Sensor(en) 1058 verwendet werden, die z. B. und ohne Einschränkung ein GPS aufweisen, das einen USB-Anschluss mit einer Ethernet-zu-Seriell-(RS-232)-Brücke verwendet.
  • Das Fahrzeug 1000 kann darüber hinaus RADAR-Sensor(en) 1060 aufweisen. Der/die RADAR-Sensor(en) 1060 kann/können vom Fahrzeug 1000 zur Fahrzeugerkennung über große Entfernungen, auch bei Dunkelheit und/oder schlechten Wetterbedingungen, verwendet werden. Die RADAR-Funktionssicherheitsstufen können ASIL B sein. Der/die RADAR-Sensor(en) 1060 kann/können den CAN-Bus und/oder den Bus 1002 (z. B. zur Übertragung von Daten, die von dem/den RADAR-Sensor(en) 1060 erzeugt werden) zur Steuerung und zum Zugriff auf Objektverfolgungsdaten verwenden, wobei bei einigen Beispielen der Zugriff auf Rohdaten über Ethernet erfolgt. Es kann eine Vielzahl von RADAR-Sensortypen verwendet werden. Zum Beispiel und ohne Einschränkung können der/die RADAR-Sensor(en) 1060 für den Einsatz von Front-, Heck- und Seiten-RADAR geeignet sein. Bei einigen Beispielen werden Puls-Doppler-RADAR-Sensor(en) verwendet.
  • Der/die RADAR-Sensor(en) 1060 kann/können verschiedene Konfigurationen aufweisen, wie z. B. eine große Reichweite mit engem Sichtfeld, eine kurze Reichweite mit breitem Sichtfeld, eine seitliche Abdeckung mit kurzer Reichweite, usw. Bei einigen Beispielen kann ein RADAR mit großer Reichweite für die adaptive Geschwindigkeitsregelungsfunktion verwendet werden. Die RADAR-Systeme mit großer Reichweite können ein breites Sichtfeld bieten, das durch zwei oder mehr unabhängige Abtastungen realisiert wird, z. B. innerhalb einer Reichweite von 250 m. Der/die RADAR-Sensor(en) 1060 kann/können helfen, zwischen statischen und sich bewegenden Objekten zu unterscheiden, und kann/können von ADAS-Systemen für Notbremsassistenten und Vorwärtskollisionswarnungen verwendet werden. Langstrecken-RADAR-Sensoren können ein monostatisches multimodales RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle aufweisen. Bei einem Beispiel mit sechs Antennen können die mittleren vier Antennen ein fokussiertes Strahlenmuster erzeugen, das dazu dient, die Umgebung des Fahrzeugs 1000 bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr auf den benachbarten Fahrspuren zu erfassen. Die anderen beiden Antennen können das Sichtfeld erweitern, so dass Fahrzeuge, die in die Fahrspur des Fahrzeugs 1000 einfahren oder diese verlassen, schnell erfasst werden können.
  • RADAR-Systeme mit mittlerer Reichweite können z. B. eine Reichweite von bis zu 1060 m (vorn) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorn) oder 1050 Grad (hinten) aufweisen. RADAR-Systeme mit kurzer Reichweite können ohne Einschränkung RADAR-Sensoren aufweisen, die für die Installation an beiden Enden des hinteren Stoßfängers vorgesehen sind. Wenn ein solches RADAR-Sensorsystem an beiden Enden des hinteren Stoßfängers installiert ist, kann es zwei Strahlen erzeugen, die ständig den toten Winkel im hinteren Bereich und neben dem Fahrzeug überwachen.
  • RADAR-Systeme mit kurzer Reichweite können in einem ADAS-System zur Erkennung des toten Winkels und/oder als Spurwechselassistent verwendet werden.
  • Das Fahrzeug 1000 kann darüber hinaus Ultraschallsensor(en) 1062 aufweisen. Der/die Ultraschallsensor(en) 1062, der/die an der Vorderseite, der Rückseite und/oder den Seiten des Fahrzeugs 1000 positioniert sein kann/können, kann/können zur Einparkhilfe und/oder zur Erstellung und Aktualisierung eines Belegungsrasters verwendet werden. Es kann eine Vielzahl von Ultraschallsensoren 1062 verwendet werden, und unterschiedliche Ultraschallsensoren 1062 können für unterschiedliche Erfassungsbereiche (z. B. 2,5 m, 4 m) verwendet werden. Der/die Ultraschallsensor(en) 1062 kann/können bei funktionalen Sicherheitsstufen von ASIL B arbeiten.
  • Das Fahrzeug 1000 kann (einen) LIDAR-Sensor(en) 1064 aufweisen. Der/die LIDAR-Sensor(en) 1064 kann/können für Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder andere Funktionen verwendet werden. Der/die LIDAR-Sensor(en) 1064 kann/können die funktionale Sicherheitsstufe ASIL B aufweisen. Bei einigen Beispielen kann das Fahrzeug 1000 mehrere LIDAR-Sensoren 1064 (z. B. zwei, vier, sechs usw.) aufweisen, die Ethernet verwenden können (z. B. zur Bereitstellung von Daten an einen Gigabit-Ethernet-Switch).
  • Bei einigen Beispielen kann/können der/die LIDAR-Sensor(en) 1064 in der Lage sein, eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld zu liefern. Kommerziell erhältliche(r) LIDAR-Sensor(en) 1064 kann/können eine angegebene Reichweite von ca. 1000 m haben, mit einer Genauigkeit von 2cm-3cm und mit Unterstützung für eine 1000 Mbps Ethernet-Verbindung, zum Beispiel. Bei einigen Beispielen können ein oder mehrere nicht vorstehende LIDAR-Sensoren 1064 verwendet werden. Bei solchen Beispielen kann/können der/die LIDAR-Sensor(en) 1064 als kleine Einrichtung implementiert sein, die in die Front, das Heck, die Seiten und/oder die Ecken des Fahrzeugs 1000 eingebettet sein kann. Der/die LIDAR-Sensor(en) 1064 kann/können bei solchen Beispielen ein horizontales Sichtfeld von bis zu 1200 Grad und ein vertikales Sichtfeld von bis zu 35 Grad bereitstellen, mit einer Reichweite von 200 m selbst bei Objekten mit geringer Reflektivität. Der/die frontmontierte(n) LIDAR-Sensor(en) 1064 kann/können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad ausgestaltet sein.
  • Bei einigen Beispielen können auch LIDAR-Technologien, wie z. B. 3D-Flash-LIDAR, verwendet werden. 3D Flash LIDAR verwendet einen Blitz eines Lasers als Sendequelle, um die Umgebung des Fahrzeugs bis zu ca. 200 m auszuleuchten. Eine Flash-LIDAR-Einheit weist einen Rezeptor auf, der die Laufzeit des Laserpulses und das reflektierte Licht auf jedem Pixel aufzeichnet, was wiederum der Entfernung des Fahrzeugs zu den Objekten entspricht. Flash-LIDAR kann es ermöglichen, mit jedem Laserblitz hochgenaue und verzerrungsfreie Bilder der Umgebung zu erzeugen. Bei einigen Beispielen können vier Flash-LIDAR-Sensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 1000. Verfügbare 3D-Flash-LIDAR-Systeme weisen eine Festkörper-3D-Star-Array-LIDAR-Kamera auf, die außer einem Lüfter keine beweglichen Teile aufweist (z. B. eine nicht scannende LIDAR-Einrichtung). Die Flash-LIDAR-Einrichtung kann einen 5 Nanosekunden langen Laserimpuls der Klasse I (augensicher) pro Bild verwenden und das reflektierte Laserlicht in Form von 3D-Entfernungspunktwolken und koregistrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR und weil Flash-LIDAR eine Festkörpereinrichtung ohne bewegliche Teile ist, kann/können der/die LIDAR-Sensor(en) 1064 weniger anfällig für Bewegungsunschärfe, Vibrationen und/oder Stöße sein.
  • Das Fahrzeug kann darüber hinaus IMU-Sensor(en) 1066 aufweisen. Der/die IMU-Sensor(en) 1066 kann/können bei einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 1000 angeordnet sein. Der/die IMU-Sensor(en) 1066 kann/können z. B. und ohne Einschränkung einen oder mehrere Beschleunigungsmesser, einen oder mehrere Magnetometer, ein oder mehrere Gyroskope, einen oder mehrere Magnetkompasse und/oder andere Sensortypen aufweisen. Bei einigen Beispielen, wie z. B. bei sechsachsigen Anwendungen, kann/können der/die IMU-Sensor(en) 1066 Beschleunigungsmesser und Gyroskope aufweisen, während bei neunachsigen Anwendungen der/die IMU-Sensor(en) 1066 Beschleunigungsmesser, Gyroskope und Magnetometer aufweisen kann/können.
  • Bei einigen Ausführungsformen kann/können der/die IMU-Sensor(en) 1066 als ein miniaturisiertes, hochleistungsfähiges GPS-gestütztes Trägheitsnavigationssystem (GPS/INS) implementiert werden, das MEMS-Trägheitssensoren, einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Lage zu liefern. Bei einigen Beispielen können die IMU-Sensoren 1066 das Fahrzeug 1000 in die Lage versetzen, den Kurs zu schätzen, ohne dass Eingaben von einem Magnetsensor erforderlich sind, indem die Geschwindigkeitsänderungen von GPS direkt beobachtet und mit den IMU-Sensoren 1066 korreliert werden. Bei einigen Beispielen können der/die IMU-Sensor(en) 1066 und der/die GNSS-Sensor(en) 1058 in einer einzigen integrierten Einheit kombiniert sein.
  • Das Fahrzeug kann ein oder mehrere Mikrofone 1096 aufweisen, die im und/oder um das Fahrzeug 1000 herum angeordnet sind. Das/die Mikrofon(e) 1096 kann/können u. a. zur Erkennung und Identifizierung von Einsatzfahrzeugen verwendet werden.
  • Das Fahrzeug kann darüber hinaus eine beliebige Anzahl von Kameratypen aufweisen, einschließlich (einer) Stereokamera(s) 1068, (einer) Weitwinkelkamera(s) 1070, (einer) Infrarotkamera(s) 1072, (einer) Umgebungskamera(s) 1074, (einer) Fern- und/oder Mittelbereichskamera(s) 1098 und/oder anderer Kameratypen. Die Kameras können verwendet werden, um Bilddaten rund um den gesamten Umfang des Fahrzeugs 1000 zu erfassen. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen an das Fahrzeug 1000 ab, und es kann eine beliebige Kombination von Kameratypen verwendet werden, um die erforderliche Abdeckung um das Fahrzeug 1000 herum zu gewährleisten. Darüber hinaus kann die Anzahl der Kameras je nach Ausführungsform unterschiedlich sein. Zum Beispiel kann das Fahrzeug sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras und/oder eine andere Anzahl von Kameras aufweisen. Die Kameras können, als Beispiel und ohne Einschränkung, Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede der Kamera(s) wird hierin mit Bezug auf 10A und 10B ausführlicher beschrieben.
  • Das Fahrzeug 1000 kann darüber hinaus (einen) Vibrationssensor(en) 1042 aufweisen. Der/die Vibrationssensor(en) 1042 kann/können Vibrationen von Komponenten des Fahrzeugs, wie z. B. der Achse(n), messen. Zum Beispiel können Änderungen der Vibrationen eine Änderung der Straßenoberfläche anzeigen. Bei einem anderen Beispiel, wenn zwei oder mehr Vibrationssensoren 1042 verwendet werden, können die Unterschiede zwischen den Vibrationen verwendet werden, um die Reibung oder den Schlupf der Straßenoberfläche zu bestimmen (z. B. wenn der Unterschied in der Vibration zwischen einer angetriebenen Achse und einer frei drehenden Achse besteht).
  • Das Fahrzeug 1000 kann ein ADAS-System 1038 aufweisen. Das ADAS-System 1038 kann bei einigen Beispielen ein SoC aufweisen. Das ADAS-System 1038 kann eine autonome/adaptive/automatische Geschwindigkeitsregelung (ACC), eine kooperative adaptive Geschwindigkeitsregelung (CACC), eine Vorwärts-Crash-Warnung (FCW), eine automatische Notbremsung (AEB), eine Spurverlassenwarnung (LDW), einen Spurhalteassistenten (LKA), einen Toter-Winkel-Warner (BSW), einen Querverkehrswarner (RCTW), ein Kollisionswarnsystem (CWS), eine Spurzentrierung (LC) und/oder andere Merkmale und Funktionen aufweisen.
  • Die ACC-Systeme können RADAR-Sensor(en) 1060, LIDAR-Sensor(en) 1064 und/oder eine Kamera(en) verwenden. Die ACC-Systeme können einen ACC in Längsrichtung und/oder einen ACC in Querrichtung aufweisen. Der ACC in Längsrichtung überwacht und regelt den Abstand zum unmittelbar vor dem Fahrzeug 1000 befindlichen Fahrzeug und passt die Fahrzeuggeschwindigkeit automatisch an, um einen sicheren Abstand zu vorausfahrenden Fahrzeugen einzuhalten. Lateral ACC führt eine Abstandsregelung durch und rät dem Fahrzeug 1000 bei Bedarf zum Spurwechsel. Lateral ACC ist mit anderen ADAS-Anwendungen wie LC und CWS verwandt.
  • CACC nutzt Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 1024 und/oder die Funkantenne(n) 1026 von anderen Fahrzeugen über eine drahtlose Verbindung oder indirekt über eine Netzwerkverbindung (z. B. über das Internet) empfangen werden können. Direkte Verbindungen können durch eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung (V2V) bereitgestellt werden, während indirekte Verbindungen Infrastruktur-zu-Fahrzeug-Kommunikationsverbindungen (I2V) sein können. Im Allgemeinen liefert das V2V-Kommunikationskonzept Informationen über die unmittelbar vorausfahrenden Fahrzeuge (z. B. Fahrzeuge, die sich unmittelbar vor dem Fahrzeug 1000 und auf der gleichen Spur wie dieses befinden), während das I2V-Kommunikationskonzept Informationen über den weiter vorausfahrenden Verkehr liefert. CACC-Systeme können entweder eine oder beide I2V- und V2V-Informationsquellen aufweisen. Angesichts der Informationen über die Fahrzeuge vor dem Fahrzeug 1000 kann CACC zuverlässiger sein, und es hat das Potenzial, den reibungslosen Verkehrsfluss zu verbessern und Staus auf der Straße zu reduzieren.
  • FCW-Systeme sind so konzipiert, dass sie den Fahrer vor einer Gefahr warnen, so dass er korrigierend eingreifen kann. FCW-Systeme verwenden eine nach vorn gerichtete Kamera und/oder RADAR-Sensor(en) 1060, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit der Rückmeldung an den Fahrer gekoppelt ist, wie z. B. eine Anzeige, ein Lautsprecher und/oder eine vibrierende Komponente. FCW-Systeme können eine Warnung ausgeben, 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 bestimmten Zeit- oder Abstandsparameters korrigierend eingreift. AEB-Systeme können nach vorn gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1060 verwenden, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, warnt es typischerweise zuerst den Fahrer, damit er korrigierende Maßnahmen ergreift, um die Kollision zu vermeiden, und wenn der Fahrer keine korrigierenden Maßnahmen ergreift, kann das AEB-System automatisch die Bremsen betätigen, um die Auswirkungen der vorhergesagten Kollision zu verhindern oder zumindest abzuschwächen. AEB-Systeme können Techniken wie eine dynamische Bremsunterstützung und/oder ein Bremsen bei bevorstehendem Unfall (Crash-Imminent Braking) aufweisen.
  • LDW-Systeme bieten optische, akustische und/oder taktile Warnungen, wie z. B. Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 1000 die Fahrbahnmarkierungen überquert. Ein LDW-System wird nicht aktiviert, wenn der Fahrer ein absichtliches Verlassen der Fahrspur anzeigt, indem er einen Blinker betätigt. LDW-Systeme können nach vorn gerichtete Kameras verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit dem Fahrerfeedback gekoppelt ist, z. B. mit einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • LKA-Systeme sind eine Variante von LDW-Systemen. LKA-Systeme liefern Lenkeingaben oder Bremsen, um das Fahrzeug 1000 zu korrigieren, wenn das Fahrzeug 1000 beginnt, die Fahrspur zu verlassen.
  • BSW-Systeme erkennen und warnen den Fahrer vor Fahrzeugen im toten Winkel des Fahrzeugs. BSW-Systeme können eine optische, akustische und/oder taktile Warnung ausgeben, um darauf hinzuweisen, dass das Zusammenführen oder Wechseln der Fahrspur unsicher ist. Das System kann eine zusätzliche Warnung ausgeben, wenn der Fahrer einen Blinker betätigt. BSW-Systeme können nach hinten gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1060 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit dem Fahrerfeedback gekoppelt ist, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • RCTW-Systeme können eine visuelle, akustische und/oder taktile Benachrichtigung liefern, wenn ein Objekt außerhalb des Bereichs der Rückfahrkamera erkannt wird, wenn das Fahrzeug 1000 rückwärtsfährt. Einige RCTW-Systeme weisen eine AEB auf, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Unfall zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete(n) RADAR-Sensor(en) 1060 verwenden, der/die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt ist/sind, der/die elektrisch mit einer Fahrerrückmeldung gekoppelt ist/sind, wie z. B. eine Anzeige, ein Lautsprecher und/oder eine vibrierende Komponente.
  • Herkömmliche ADAS-Systeme können anfällig für falsch-positive Ergebnisse sein, die für einen Fahrer ärgerlich und ablenkend sein können, aber typischerweise nicht katastrophal sind, weil die ADAS-Systeme den Fahrer warnen und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung wirklich existiert, und entsprechend zu handeln. In einem autonomen Fahrzeug 1000 muss das Fahrzeug 1000 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 1036 oder einer zweiten Steuerung 1036) beachtet. Bei einigen Ausführungsformen kann das ADAS-System 1038 beispielsweise ein Backup- und/oder Sekundärcomputer sein, der Wahrnehmungsinformationen für ein Backup-Computer-Rationalitätsmodul bereitstellt. Der Backup-Computer-Rationalitätsmonitor kann eine redundante diverse Software auf Hardwarekomponenten ausführen, um Fehler in der Wahrnehmung und bei dynamischen Fahraufgaben zu erkennen. Die Ausgaben des ADAS-Systems 1038 können an eine übergeordnete MCU weitergeleitet werden. Wenn die Ausgaben des primären Computers und des sekundären Computers in Konflikt stehen, muss die übergeordnete MCU bestimmen, wie der Konflikt beigelegt werden kann, um einen sicheren Betrieb zu gewährleisten.
  • Bei einigen Beispielen kann der primäre Computer so ausgestaltet sein, dass er der übergeordneten MCU einen Konfidenzwert liefert, der das Vertrauen des primären Computers in das gewählte Ergebnis angibt. Wenn der Vertrauenswert einen Schwellenwert überschreitet, kann die übergeordnete MCU der Anweisung des primären Computers folgen, unabhängig davon, ob der sekundäre Computer ein dazu widersprüchliches oder inkonsistentes Ergebnis liefert. Wenn der Konfidenzwert den Schwellenwert nicht erreicht und der primäre und der sekundäre Computer unterschiedliche Ergebnisse (z. B. den Konflikt) anzeigen, kann die übergeordnete MCU zwischen den Computern vermitteln, um das geeignete Ergebnis zu bestimmen.
  • Die überwachende MCU kann so ausgestaltet sein, dass sie ein neuronales Netz bzw. neuronale Netze ausführt, das bzw. die so trainiert und ausgestaltet ist bzw. sind, dass es bzw. sie auf der Grundlage der Ausgaben des primären Computers und des sekundären Computers die Bedingungen bestimmt bzw. bestimmen, unter denen der sekundäre Computer Fehlalarme liefert. So kann/können das/die neuronale(n) Netz(e) in der Überwachungs-MCU lernen, wann der Ausgabe des sekundären Computers vertraut werden kann und wann nicht. Wenn es sich bei dem sekundären Computer beispielsweise um ein RADAR-basiertes FCW-System handelt, kann/können (ein) neuronale(s) Netz(e) in der übergeordneten MCU lernen, wann das FCW-System metallische Objekte identifiziert, bei denen es sich in Wirklichkeit nicht um Gefahren handelt, wie z. B. ein Abflussgitter oder ein Schachtdeckel, der einen Alarm auslöst. Wenn der sekundäre Computer ein kamerabasiertes Spurhaltewarnsystem ist, kann ein neuronales Netz in der übergeordneten MCU lernen, das Spurhaltewarnsystem außer Kraft zu setzen, wenn Radfahrer oder Fußgänger vorhanden sind und ein Verlassen der Spur tatsächlich das sicherste Manöver ist. Bei Ausführungsformen, die (ein) neuronale(s) Netz(e) aufweisen, das/die auf der übergeordneten MCU läuft/laufen, kann die übergeordnete MCU mindestens einen DLA oder eine GPU aufweisen, der/die für den Betrieb des/der neuronalen Netzes/Netze mit zugehörigem Speicher geeignet ist. Bei bevorzugten Ausführungsformen kann die Überwachungs-MCU eine Komponente des/der SoC(s) 1004 aufweisen und/oder als solche enthalten sein.
  • Bei anderen Beispielen kann das ADAS-System 1038 einen sekundären Computer aufweisen, der die ADAS-Funktionalität unter Verwendung traditioneller Regeln der Computer-Vision bzw. des Computersehens ausführt. Als solches kann der sekundäre Computer klassische Computer-Vision-Regeln (wenn-dann) verwenden, und das Vorhandensein eines neuronalen Netzes (von neuronalen Netzen) in der übergeordneten MCU kann die Zuverlässigkeit, Sicherheit und Leistung verbessern. Zum Beispiel machen die vielfältige Implementierung und die absichtliche Nicht-Gleichheit das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch Software- (oder Software-Hardware-Schnittstellen-) Funktionalität verursacht werden. Wenn beispielsweise ein Software-Bug oder Fehler in der auf dem primären Computer laufenden Software auftritt und der nicht-identische Software-Code, der auf dem sekundären Computer läuft, das gleiche Gesamtergebnis liefert, kann die überwachende MCU ein größeres Vertrauen haben, dass das Gesamtergebnis korrekt ist und der Bug in der vom primären Computer verwendeten Software oder Hardware keinen wesentlichen Fehler verursacht.
  • Bei einigen Beispielen kann die Ausgabe des ADAS-Systems 1038 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 1038 z. B. eine Vorwärts-Crash-Warnung aufgrund eines unmittelbar vorausliegenden Objekts anzeigt, kann der Wahrnehmungsblock diese Information bei der Identifizierung von Objekten verwenden. Bei anderen Beispielen kann der sekundäre Computer über ein eigenes neuronales Netz verfügen, das trainiert ist und somit das Risiko von Fehlalarmen reduziert, wie es hier beschrieben ist.
  • Das Fahrzeug 1000 kann darüber hinaus das Infotainment-SoC 1030 aufweisen (z. B. ein fahrzeuginternes Infotainment-System (IVI)). Obwohl es als SoC dargestellt und beschrieben ist, ist das Infotainment-System möglicherweise kein SoC und kann zwei oder mehr diskrete Komponenten aufweisen. Das Infotainment-SoC 1030 kann eine Kombination aus Hardware und Software aufweisen, die verwendet werden kann, um Audioinhalte (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Videos (z. B. TV, Filme, Streaming usw.), Telefonate (z. B. Freisprechen), eine Netzwerkkonnektivität (z. B., LTE, Wi-Fi usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Einparkhilfe hinten, ein Radiodatensystem, fahrzeugbezogene Informationen wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremskraftstoffstand, Ölstand, Tür öffnen/schließen, Luftfilterinformationen usw.) für das Fahrzeug 1000 bereitzustellen. Das Infotainment-SoC 1030 kann beispielsweise Radios, Plattenspieler, Navigationssysteme, Videoplayer, eine USB- und Bluetooth-Konnektivität, Carputer, ein In-Car-Entertainment, Wi-Fi, Audiobedienelemente am Lenkrad, eine Freisprecheinrichtung, ein Heads-up-Display (HUD), ein HMI-Display 1034, eine Telematikeinrichtung, ein Bedienfeld (z. B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder andere Komponenten aufweisen. Das Infotainment-SoC 1030 kann darüber hinaus verwendet werden, um einem oder mehreren Benutzern des Fahrzeugs Informationen (z. B. visuell und/oder akustisch) zur Verfügung zu stellen, wie z. B. Informationen von dem ADAS-System 1038, 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 1030 kann eine GPU-Funktionalität aufweisen. Das Infotainment-SoC 1030 kann über den Bus 1002 (z.B. CAN-Bus, Ethernet, etc.) mit anderen Einrichtungen, Systemen und/oder Komponenten des Fahrzeugs 1000 kommunizieren. Bei einigen Beispielen kann das Infotainment-SoC 1030 mit einer Überwachungs-MCU gekoppelt sein, so dass die GPU des Infotainment-Systems einige Selbstfahrfunktionen ausführen kann, wenn die primäre(n) Steuerung(en) 1036 (z. B. der primäre und/oder Backup-Computer des Fahrzeugs 1000) ausfällt/ausfallen. In einem solchen Beispiel kann das Infotainment-SoC 1030 das Fahrzeug 1000 in einen Chauffeur-to-Safe-Stop-Modus versetzen, wie es hierin beschrieben ist.
  • Das Fahrzeug 1000 kann darüber hinaus ein Kombiinstrument 1032 aufweisen (z. B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.). Das Kombiinstrument 1032 kann eine Steuerung und/oder einen Supercomputer aufweisen (z. B. eine diskrete Steuerung oder einen diskreten Supercomputer). Das Kombiinstrument 1032 kann eine Reihe von Instrumenten aufweisen, wie z. B. ein Tachometer, eine Kraftstoffstandanzeige, eine Öldruckanzeige, einen Drehzahlmesser, einen Kilometerzähler, Blinker, eine Schaltstellungsanzeige, Sicherheitsgurt-Warnleuchte(n), Feststellbrems-Warnleuchte(n), Motor-Fehlfunktionsleuchte(n), Airbag (SRS)-Systeminformationen, Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen, usw. Bei einigen Beispielen können die Informationen von dem Infotainment-SoC 1030 und dem Kombiinstrument 1032 angezeigt und/oder gemeinsam genutzt werden. Mit anderen Worten, das Kombiinstrument 1032 kann einen Teil des Infotainment-SoC 1030 bilden, oder umgekehrt.
  • 10D ist ein Systemdiagramm für die Kommunikation zwischen dem/den cloudbasierten Server(n) und dem beispielhaften autonomen Fahrzeug 1000 von 10A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das System 1076 kann den/die Server 1078, das/die Netzwerk(e) 1090 und die Fahrzeuge, einschließlich des Fahrzeugs 1000, aufweisen. Der/die Server 1078 kann/können eine Vielzahl von GPUs 1084(A)-1084(H) (hierin kollektiv als GPUs 1084 bezeichnet), PCIe-Switches 1082(A)-1082(H) (hierin kollektiv als PCIe-Switches 1082 bezeichnet), und/oder CPUs 1080(A)-1080(B) (hierin kollektiv als CPUs 1080 bezeichnet) aufweisen. Die GPUs 1084, die CPUs 1080 und die PCIe-Switches können mit Hochgeschwindigkeits-Verbindungen verbunden sein, wie z. B. und ohne Einschränkung die von NVIDIA entwickelten NVLink-Schnittstellen 1088 und/oder PCIe-Verbindungen 1086. Bei einigen Beispielen sind die GPUs 1084 über NVLink und/oder NVSwitch-SoC und die GPUs 1084 und die PCIe-Switches 1082 über PCIe-Verbindungen verbunden. Obwohl acht GPUs 1084, zwei CPUs 1080 und zwei PCIe-Switches dargestellt sind, ist dies nicht als Einschränkung zu verstehen. Je nach Ausführungsform kann jeder der Server 1078 eine beliebige Anzahl von GPUs 1084, CPUs 1080 und/oder PCIe-Switches aufweisen. Beispielsweise kann der/die Server 1078 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 1084 aufweisen.
  • Der (die) Server 1078 kann (können) über das (die) Netzwerk(e) 1090 und von den Fahrzeugen Bilddaten empfangen, die für Bilder repräsentativ sind, die unerwartete oder veränderte Straßenzustände zeigen, wie zum Beispiel kürzlich begonnene Straßenarbeiten. Der (die) Server 1078 kann (können) über das (die) Netzwerk(e) 1090 und an die Fahrzeuge neuronale Netze 1092, aktualisierte neuronale Netze 1092 und/oder Karteninformationen 1094 übertragen, die Informationen über den Verkehr und die Straßenbedingungen aufweisen. Die Aktualisierungen der Karteninformationen 1094 können Aktualisierungen für die HD-Karte 1022 aufweisen, z. B. Informationen über Baustellen, Schlaglöcher, Umleitungen, Überschwemmungen und/oder andere Hindernisse. Bei einigen Beispielen können die neuronalen Netze 1092, die aktualisierten neuronalen Netze 1092 und/oder die Karteninformationen 1094 aus einem neuen Training und/oder Erfahrungen resultieren, die in Daten repräsentiert sind, die von einer beliebigen Anzahl von Fahrzeugen in der Umgebung empfangen wurden, und/oder auf der Grundlage von einem Training, das in einem Datenzentrum durchgeführt wurde (z. B. unter Verwendung des/der Server(s) 1078 und/oder anderer Server).
  • Der/die Server 1078 kann/können verwendet werden, um maschinelle Lernmodelle (z. B. neuronale Netze) basierend auf Trainingsdaten zu trainieren. Die Trainingsdaten können von den Fahrzeugen erzeugt werden und/oder in einer Simulation (z. B. unter Verwendung einer Spiele-Maschine) erzeugt werden. Bei einigen Beispielen sind die Trainingsdaten markiert (z. B. wenn das neuronale Netz von überwachtem Lernen profitiert) und/oder werden einer anderen Vorverarbeitung unterzogen, während bei anderen Beispielen die Trainingsdaten nicht markiert und/oder vorverarbeitet sind (z. B. wenn das neuronale Netz kein überwachtes Lernen benötigt). Sobald die maschinellen Lernmodelle trainiert sind, können die maschinellen Lernmodelle von den Fahrzeugen verwendet werden (z. B. über das/die Netzwerk(e) 1090 an die Fahrzeuge übertragen werden, und/oder die maschinellen Lernmodelle können von dem/den Server(n) 1078 verwendet werden, um die Fahrzeuge aus der Ferne bzw. abgesetzt zu überwachen.
  • Bei einigen Beispielen kann/können der/die Server 1078 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Netze in Echtzeit für intelligentes Inferencing in Echtzeit anwenden. Der/die Server 1078 kann/können Deep-Learning-Supercomputer und/oder dedizierte KI-Computer aufweisen, die von GPU(s) 1084 versorgt werden, wie z. B. die von NVIDIA entwickelten DGX- und DGX-Station-Maschinen. Bei einigen Beispielen kann/können der/die Server 1078 jedoch eine Deep-Learning-Infrastruktur aufweisen, die nur CPU-betriebene Rechenzentren verwendet.
  • Die Deep-Learning-Infrastruktur des/der Server(s) 1078 kann in der Lage sein, schnelles Inferencing in Echtzeit durchzuführen, und kann diese Fähigkeit nutzen, um den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 1000 zu bewerten und zu überprüfen. Zum Beispiel kann die Deep-Learning-Infrastruktur periodische Updates von dem Fahrzeug 1000 erhalten, wie z. B. eine Sequenz von Bildern und/oder Objekten, die das Fahrzeug 1000 in dieser Sequenz von Bildern lokalisiert hat (z. B. über Computer Vision und/oder andere maschinelle Objektklassifizierungstechniken). Die Deep-Learning-Infrastruktur kann ihr eigenes neuronales Netz ausführen, um die Objekte zu identifizieren und sie mit den von dem Fahrzeug 1000 identifizierten Objekten zu vergleichen, und wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 1000 eine Fehlfunktion aufweist, kann der/die Server 1078 ein Signal an das Fahrzeug 1000 senden, das einen ausfallsicheren Computer des Fahrzeugs 1000 anweist, die Kontrolle zu übernehmen, die Insassen zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • Für das Inferencing kann/können der/die Server 1078 die GPU(s) 1084 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. TensorRT von NVIDIA) aufweisen. Die Kombination von GPU-gesteuerten Servern und Inferenzbeschleunigung kann eine Reaktionsfähigkeit in Echtzeit ermöglichen. Bei anderen Beispielen, z. B. wenn die Ausführung weniger kritisch ist, können Server, die von CPUs, FPGAs und anderen Prozessoren angetrieben werden, für das Inferencing verwendet werden.
  • BEISPIEL RECHENEINRICHTUNG
  • 11 ist ein Blockdiagramm (einer) beispielhaften/r Recheneinrichtung(en) 1100, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist/sind. Beispielsweise kann/können das/die maschinelle(n) Lernmodell(e) 108 in einem beliebigen aus einer Vielzahl von Systemen ausgeführt werden, und die Systeme können einige oder alle Komponenten der Recheneinrichtung 1100 aufweisen. So kann die zugrundeliegende Software und/oder Hardware, die unter Verwendung der Verfahren 100 und 700 auf Fehler getestet werden kann, eine oder mehrere Komponenten - oder ähnliche Komponenten - der Recheneinrichtung 1100 aufweisen. Die Recheneinrichtung 1100 kann einen Bus 1102 aufweisen, der direkt oder indirekt die folgenden Einrichtungen koppelt: einen Speicher 1104, eine oder mehrere Zentraleinheiten (CPUs) 1106, eine oder mehrere Grafikverarbeitungseinheiten (GPUs) 1108, eine Kommunikationsschnittstelle 1110, Eingangs-/Ausgangsanschlüsse (I/O) 1112, Eingangs-/Ausgangskomponenten 1114, eine Stromversorgung 1116 und eine oder mehrere Präsentationskomponenten 1118 (z.B. Anzeige(n)).
  • Obwohl die verschiedenen Blöcke in 11 als über den Bus 1102 mit Leitungen verbunden dargestellt sind, ist dies nicht als einschränkend zu verstehen und dient nur der Übersichtlichkeit. Bei solchen Ausführungsformen kann z. B. eine Präsentationskomponente 1118, wie z. B. eine Anzeigeeinrichtung, als E/A-Komponente 1114 betrachtet werden (z. B. wenn die Anzeige ein Touchscreen ist). Als weiteres Beispiel können die CPUs 1106 und/oder GPUs 1108 Speicher aufweisen (z. B. kann der Speicher 1104 zusätzlich zum Speicher der GPUs 1108, der CPUs 1106 und/oder anderer Komponenten eine Speichereinrichtung darstellen). Mit anderen Worten, die Recheneinrichtung von 11 ist lediglich illustrativ. Es wird nicht zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Gerät“, „Mobilgerät“, „Handheld-Gerät“, „Spielkonsole“, „elektronische Steuereinheit (ECU)“, „Virtual-Reality-System“, und/oder anderen Einrichtungs- oder Systemtypen unterschieden, da alle im Rahmen der Recheneinrichtung von 11 in Betracht gezogen werden.
  • Der Bus 1102 kann eine oder mehrere Verbindungen oder Busse darstellen, wie z. B. einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Der Bus 1102 kann einen oder mehrere Bus- oder Verbindungstypen aufweisen, wie z. B. einen ISA-Bus (Industry Standard Architecture), einen EISA-Bus (Extended Industry Standard Architecture), einen VESA-Bus (Video Electronics Standards Association), einen PCI-Bus (Peripheral Component Interconnect), einen PCIe-Bus (Peripheral Component Interconnect Express) und/oder eine andere Art von Bus.
  • Der Speicher 1104 kann eine beliebige Auswahl an computerlesbaren Medien aufweisen. Bei den computerlesbaren Medien kann es sich um alle verfügbaren Medien handeln, auf die die Recheneinrichtung 1100 zugreifen kann. Die computerlesbaren Medien können sowohl flüchtige als auch nicht-flüchtige Medien sowie entfernbare und nicht-entfernbare Medien aufweisen. Als Beispiel und nicht als Einschränkung können die computerlesbaren Medien Computerspeichermedien und Kommunikationsmedien umfassen.
  • Die Computer-Speichermedien können sowohl flüchtige als auch nicht flüchtige Medien und/oder entfernbare und nicht entfernbare Medien aufweisen, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen, wie z. B. computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder andere Datentypen, implementiert sind. Beispielsweise kann der Speicher 1104 computerlesbare Anweisungen speichern (z. B. welche ein oder mehrere Programme und/oder ein oder mehrere Programmelemente darstellen, wie z. B. ein Betriebssystem. Computerspeichermedien können RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium einschließen, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das die Recheneinrichtung 1100 zugreifen kann, ohne darauf beschränkt zu sein. Wie es hier verwendet ist, umfasst das Computer-Speichermedium nicht per se Signale.
  • Die Kommunikationsmedien können computerlesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datentypen in einem modulierten Datensignal wie einer Trägerwelle oder einem anderen Transportmechanismus verkörpern und weisen beliebige Informationsübertragungsmedien auf. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, bei dem eine oder mehrere seiner Eigenschaften so eingestellt oder verändert sind, dass Informationen in dem Signal kodiert sind. Beispielhaft und ohne Einschränkung können die Kommunikationsmedien verdrahtete Medien, wie z. B. ein verdrahtetes Netzwerk oder eine direkt verdrahtete Verbindung, und drahtlose Medien, wie z. B. akustische, HF-, Infrarot- und andere drahtlose Medien, einschließen. Kombinationen der oben genannten Medien sollten ebenfalls im Umfang der computerlesbaren Medien liegen.
  • Die CPU(s) 1106 kann/können so ausgestaltet sein, dass sie die computerlesbaren Anweisungen ausführen, um eine oder mehrere Komponenten der Recheneinrichtung 1100 zu steuern, um eine oder mehrere der hierin beschriebenen Verfahren und/oder Prozesse durchzuführen. Die CPU(s) 1106 kann/können jeweils einen oder mehrere Kerne aufweisen (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.), die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPU(s) 1106 kann/können jeden Prozessortyp aufweisen und je nach Art der implementierten Recheneinrichtung 1100 verschiedene Typen von Prozessoren aufweisen (z. B. Prozessoren mit weniger Kernen für mobile Einrichtungen und Prozessoren mit mehr Kernen für Server). Je nach Art der Recheneinrichtung 1100 kann der Prozessor z. B. ein (ARM)-Prozessor sein, der mit Reduced Instruction Set Computing (RISC) implementiert ist, oder ein x86-Prozessor, der mit Complex Instruction Set Computing (CISC) implementiert ist. Die Recheneinrichtung 1100 kann eine oder mehrere CPUs 1106 aufweisen, zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzlichen Co-Prozessoren, wie z. B. Mathematik-Coprozessoren.
  • Die GPU(s) 1108 kann/können von der Recheneinrichtung 1100 zum Rendern von Grafiken (z. B. 3D-Grafiken) verwendet werden. Die GPU(s) 1108 kann/können hunderte oder tausende von Kernen aufweisen, die in der Lage sind, hunderte oder tausende von Software-Threads gleichzeitig zu verarbeiten. Die GPU(s) 1108 kann/können als Reaktion auf Rendering-Befehle (z. B. Rendering-Befehle von der/den CPU(s) 1106, die über eine Host-Schnittstelle empfangen werden) Pixeldaten für Ausgabebilder erzeugen. Die GPU(s) 1108 kann/können einen Grafikspeicher, z. B. einen Anzeigespeicher, zum Speichern von Pixeldaten aufweisen. Der Anzeigespeicher kann als ein Teil des Speichers 1104 ausgewiesen sein. Die GPU(s) 708 kann/können zwei oder mehr GPUs aufweisen, die parallel arbeiten (z. B. über eine Verbindung). Wenn sie miteinander kombiniert werden, kann jede GPU 1108 Pixeldaten für verschiedene Abschnitte eines Ausgabebildes oder für verschiedene Ausgabebilder erzeugen (z. B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann ihren eigenen Speicher aufweisen oder sich den Speicher mit anderen GPUs teilen.
  • In Beispielen, in denen die Recheneinrichtung 1100 die GPU(s) 1108 nicht aufweist, kann/können die CPU(s) 1106 zum Rendern von Grafiken verwendet werden.
  • Die Kommunikationsschnittstelle 1110 kann einen oder mehrere Empfänger, Sender und/oder Transceiver aufweisen, die es der Recheneinrichtung 700 ermöglichen, mit anderen Recheneinrichtungen über ein elektronisches Kommunikationsnetzwerk zu kommunizieren, einschließlich drahtgebundener und/oder drahtloser Kommunikation. Die Kommunikationsschnittstelle 1110 kann Komponenten und Funktionalität aufweisen, um die Kommunikation über eine beliebige Anzahl von verschiedenen Netzwerken zu ermöglichen, wie z. B. drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), drahtgebundene Netzwerke (z. B. Kommunikation über Ethernet), Weitverkehrsnetzwerke mit geringer Leistung (z. B. LoRaWAN, SigFox usw.) und/oder das Internet.
  • Die E/A-Anschlüsse 1112 können es ermöglichen, die Recheneinrichtung 1100 logisch mit anderen Einrichtungen zu verbinden, einschließlich der E/A-Komponenten 1114, der Präsentationskomponente(n) 1118 und/oder anderer Komponenten, von denen einige in die Recheneinrichtung 1100 eingebaut (z. B. integriert) sein können. Beispielhafte E/A-Komponenten 1114 weisen ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Gamecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, eine drahtlose Einrichtung usw. auf. Die E/A-Komponenten 1114 können eine natürliche Benutzerschnittstelle (NUI) bereitstellen, die Luftgesten, Sprache oder andere physiologische Eingaben verarbeitet, die von einem Benutzer erzeugt werden. In einigen Fällen können die Eingaben zur weiteren Verarbeitung an ein entsprechendes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination aus Spracherkennung, Stifterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch neben dem Bildschirm, Luftgesten, Kopf- und Augenverfolgung und Berührungserkennung (wie unten genauer beschrieben) in Verbindung mit einer Anzeige der Recheneinrichtung 1100 implementieren. Die Recheneinrichtung 1100 kann Tiefenkameras, wie z. B. stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon zur Gestenerkennung und -erfassung aufweisen. Zusätzlich kann die Recheneinrichtung 1100 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) aufweisen, die eine Bewegungserkennung ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope von der Recheneinrichtung 1100 verwendet werden, um immersive Augmented Reality oder Virtual Reality darzustellen.
  • Die Stromversorgung 1116 kann eine fest verdrahtete Stromversorgung, eine Batteriestromversorgung oder eine Kombination davon aufweisen. Die Stromversorgung 1116 kann die Recheneinrichtung 1100 mit Strom versorgen, um den Betrieb der Komponenten der Recheneinrichtung 1100 zu ermöglichen.
  • Die Präsentationskomponente(n) 1118 kann/können eine Anzeige (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Heads-up-Display (HUD), andere Anzeigetypen oder eine Kombination davon), Lautsprecher und/oder andere Präsentationskomponenten aufweisen. Die Präsentationskomponente(n) 1118 kann/können Daten von anderen Komponenten (z. B. der/den GPU(s) 1108, der/den CPU(s) 1106 usw.) empfangen und die Daten ausgeben (z. B. als Bild, Video, Ton usw.).
  • Die Offenbarung kann im allgemeinen Kontext von Computercode oder maschinell verwendbaren Anweisungen, die computerausführbare Anweisungen wie Programmmodule aufweisen, beschrieben werden, die von einem Computer oder einer anderen Maschine, wie einem persönlichen Datenassistenten oder einer anderen tragbaren Einrichtung, ausgeführt werden. Im Allgemeinen beziehen sich Programmmodule, die Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw. aufweisen, auf Code, der bestimmte Aufgaben ausführt oder bestimmte abstrakte Datentypen implementiert. Die Offenbarung kann in einer Vielzahl von Systemkonfigurationen ausgeübt werden, die Handheld-Geräte, Unterhaltungselektronik, Allzweckcomputer, speziellere Recheneinrichtungen usw. einschließen. Die Offenbarung kann auch in verteilten Rechenumgebungen angewendet werden, in denen Aufgaben von entfernt arbeitenden Einrichtungen ausgeführt werden, die über ein Kommunikationsnetzwerk verbunden sind.
  • Wie es hierin verwendet wird, sollte der Begriff „und/oder“ in Bezug auf zwei oder mehr Elemente so interpretiert werden, dass nur ein Element oder eine Kombination von Elementen gemeint ist. Beispielsweise kann „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder die Elemente A, B und C einschließen. Darüber hinaus 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 einschließen.
  • Der Gegenstand der vorliegenden Offenbarung wird hier mit Genauigkeit beschrieben, um die gesetzlichen Anforderungen zu erfüllen. Die Beschreibung selbst soll jedoch nicht den Umfang der vorliegenden Offenbarung einschränken. Vielmehr haben die Erfinder in Betracht gezogen, dass der beanspruchte Gegenstand auch in anderen Ausführungsformen ausgestaltet sein könnte, um andere Schritte oder Kombinationen von Schritten ähnlich den in diesem Dokument beschriebenen in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien einzuschließen. Obwohl die Begriffe „Schritt“ und/oder „Block“ hier verwendet werden können, um verschiedene Elemente der angewandten Verfahren zu bezeichnen, sollten die Begriffe nicht so interpretiert werden, dass sie eine bestimmte Reihenfolge unter oder zwischen verschiedenen hier offengelegten Schritten implizieren, es sei denn, die Reihenfolge der einzelnen Schritte wird ausdrücklich 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 16/101232 [0102]
  • Zitierte Nicht-Patentliteratur
    • „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 [0061]

Claims (21)

  1. Verfahren umfassend: Erzeugen von ersten Daten, die für von einem Sensor erfasste Sensordaten repräsentativ sind, und von zweiten Daten, die für ein oder mehrere den Sensordaten beigefügte Motive repräsentativ sind; Aufbringen der ersten Daten und der zweiten Daten auf ein neuronales Netz; Berechnen dritter Daten mittels des neuronalen Netzes, welche für Vorhersagen repräsentativ sind, die einem oder mehreren Merkmalen entsprechen, die durch die ersten Daten und die zweiten Daten repräsentiert werden; Vergleichen der dritten Daten mit vierten Daten, wobei die vierten Daten repräsentativ für erwartete Vorhersagen sind, die dem einen oder den mehreren Motiven entsprechen, welche durch die zweiten Daten repräsentiert werden; und Bestimmen, dass die Vorhersagen genau sind, wenn die erwarteten Vorhersagen, die dem einen oder den mehreren Motiven entsprechen, in den Vorhersagen des neuronalen Netzes repräsentiert werden.
  2. Verfahren nach Anspruch 1, wobei das neuronale Netz für eine Objekterkennung trainiert ist, wobei das eine oder die mehreren Merkmale einem oder mehreren Objekten entsprechen, wobei die erwarteten Vorhersagen tatsächlichen Orten des einen oder der mehreren Motive entsprechen, wobei die Vorhersagen vorhergesagten Orten des einen oder der mehreren Objekte entsprechen, die durch die zweiten Daten repräsentiert werden, und wobei das Vergleichen für jedes Motiv des einen oder der mehreren Motive ein Bestimmen aufweist, ob ein vorhergesagter Ort der vorhergesagten Orte einem tatsächlichen Ort des Motivs entspricht.
  3. Verfahren nach Anspruch 2, wobei die Vorhersagen darüber hinaus Klassenkennzeichen entsprechen, die jedem des einen oder der mehreren Objekte zugeordnet sind.
  4. Verfahren nach Anspruch 3, wobei das Bestimmen, dass die Vorhersagen des neuronalen Netzes genau sind, darüber hinaus ein Bestimmen aufweist, ob die Klassenkennzeichen, welche vorhergesagt werden, Motiv-Klassenkennzeichen entsprechen, die jedem Motiv des einen oder der mehreren Motive entsprechen.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei, wenn die erwarteten Vorhersagen, die dem einen oder den mehreren Motiven entsprechen, nicht in den Vorhersagen des neuronalen Netzes repräsentiert werden, bestimmt wird, dass eine Hardware, die mit einer Verarbeitung des neuronalen Netzes korrespondiert, einen transienten Fehler aufweist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei, wenn die erwarteten Vorhersagen, die dem einen oder den mehreren Motiven entsprechen, in den Vorhersagen des neuronalen Netzes repräsentiert werden, die Vorhersagen des neuronalen Netzes verwendet werden, um eine oder mehrere Operationen durchzuführen.
  7. Verfahren nach Anspruch 6, wobei der Sensor ein Bildsensor eines Fahrzeugs ist und die eine oder die mehreren Operationen teilautonomen Fahr- oder autonomen Fahr-Funktionalitäten des Fahrzeugs zugeordnet sind.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei, wenn die erwarteten Vorhersagen, die dem einen oder den mehreren Motiven entsprechen, nicht in den Vorhersagen des neuronalen Netzes repräsentiert werden, eine Durchführung der einen oder der mehreren Operationen ausgesetzt oder beendet wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei bei jeder Iteration der ersten Daten und der zweiten Daten zumindest eines von einem Ort, einer Anzahl oder einer Motivklasse mindestens eines Motivs zumindest von dem einen oder den mehreren Motiven in Bezug auf eine vorangehende Iteration der ersten Daten und der zweiten Daten geändert wird.
  10. Verfahren umfassend: Aufbringen von ersten Daten, die für eine Vielzahl von Sensordateninstanzen repräsentativ sind, welche von mindestens einem Sensor erfasst werden, auf ein neuronales Netz; Aufbringen, zeitweilig während des Aufbringens der ersten Daten auf das neuronale Netz, von zweiten Daten, die für eine Signatureingabe repräsentativ sind, auf das neuronale Netz; Vergleichen dritter Daten, welche für eine Ausgabe des neuronalen Netzes repräsentativ sind, die zumindest teilweise abhängig von den zweiten Daten berechnet wird, mit vierten Daten, welche für eine erwartete Ausgabe des neuronalen Netzes repräsentativ sind, die zumindest teilweise von den zweiten Daten abhängt; und Bestimmen, dass Vorhersagen des neuronalen Netzes genau sind, wenn die Ausgabe der erwarteten Ausgabe entspricht.
  11. Verfahren nach Anspruch 10, wobei für eine Hardware, die mit einer Verarbeitung des neuronalen Netzes korrespondiert, bestimmt wird, dass ein permanenter Fehler vorliegt, wenn die Ausgabe nicht der erwarteten Ausgabe entspricht.
  12. Verfahren nach Anspruch 10 oder 11, wobei Vorhersagen des neuronalen Netzes verwendet werden, um eine oder mehrere Operationen durchzuführen, wenn die Ausgabe der erwarteten Ausgabe entspricht.
  13. Verfahren nach einem der Ansprüche 10 bis 12, wobei das Aufbringen der zweiten Daten ein zeitweiliges Aufbringen der zweiten Daten entweder in einem Zeitintervall oder bei jeder x-ten Anzahl der Vielzahl von Sensordateninstanzen aufweist.
  14. Verfahren nach einem der Ansprüche 10 bis 13, wobei das neuronale Netz für teilautonome Fahrfähigkeiten und/oder autonome Fahrfähigkeiten eines Fahrzeugs verwendet wird, und wobei das Aufbringen der zweiten Daten einem eingebauten Selbsttest (BIST) des Fahrzeugs während des Betriebs entspricht.
  15. Verfahren nach einem der Ansprüche 10 bis 14, wobei die Signatur einem Bild entspricht, das mindestens eines der folgenden aufweist: ein oder mehrere Motive, ein Stockbild oder ein Logo.
  16. Verfahren nach einem der Ansprüche 10 bis 15, wobei die Ausgabe, die der erwarteten Ausgabe entspricht, erste Werte aufweist, die durch die Ausgabe repräsentiert werden und innerhalb eines Abstandsschwellenwerts zu zweiten Werten liegen, die durch die erwartete Ausgabe repräsentiert werden.
  17. System umfassend: einen oder mehrere Sensoren zum Erzeugen erster Daten; eine Recheneinrichtung, die eine oder mehrere Verarbeitungseinrichtungen und eine oder mehrere Speichervorrichtungen aufweist, die kommunikativ mit der einen oder den mehreren Verarbeitungseinrichtungen gekoppelt sind und darauf programmierte Anweisungen speichern, die, wenn sie von einem Prozessor ausgeführt werden, die Instanziierung bewirken von: einem Motiv-Hinzufüger, um zweite Daten durch ein Hinzufügen eines oder mehrerer Motive zu mindestens einer Iteration der ersten Daten zu erzeugen; einem Vorhersager, um unter Verwendung eines neuronalen Netzes und zumindest teilweise abhängig von den zweiten Daten, die der mindestens einen Iteration der ersten Daten entsprechen, dritte Daten zu berechnen, die Vorhersagen des neuronalen Netzes repräsentieren, welche einem oder mehreren Merkmalen entsprechen, die durch die ersten Daten und die zweiten Daten repräsentiert werden; und einem Fehlerdetektor, um zu bestimmen, ob ein Fehler vorliegt, zumindest teilweise abhängig von einem Vergleichen der dritten Daten mit vierten Daten, die für erwartete Vorhersagen entsprechend dem einen oder den mehreren Motiven repräsentativ sind.
  18. System nach Anspruch 17, wobei die Vorhersagen des neuronalen Netzes vorhergesagten Orten von Objekten in den zweiten Daten entsprechen, und wobei das Vergleichen der dritten Daten mit den vierten Daten ein Vergleichen der vorhergesagten Orte der Objekte mit tatsächlichen Orten des einen oder der mehreren Motive aufweist.
  19. System nach Anspruch 18, wobei die Vorhersagen des neuronalen Netzes darüber hinaus einem Klassenkennzeichen von Objekten in den zweiten Daten entsprechen, und wobei das Vergleichen der dritten Daten mit den vierten Daten ein Vergleichen der vorhergesagten Klassenkennzeichen der Objekte mit tatsächlichen Klassenkennzeichen des einen oder der mehreren Motive aufweist.
  20. System nach einem der Ansprüche 17 bis 19, das darüber hinaus umfasst: eine Steuerkomponente, um eine oder mehrere Operationen durchzuführen, die zumindest teilweise auf dem Bestimmen basieren, ob der Fehler vorliegt, wobei die eine oder die mehreren Operationen andere sind, wenn der Fehler erkannt wird, als wenn kein Fehler erkannt wird.
  21. System nach einem der Ansprüche 17 bis 20, wobei das eine oder die mehreren Motive bei einer ersten Iteration der ersten Daten und bei einer zweiten Iteration der ersten Daten den ersten Daten hinzugefügt werden, und wobei sich das eine oder die mehreren Motive zwischen der ersten Iteration und der zweiten Iteration in Bezug auf mindestens eines von Ort, Anzahl, Typ oder Klasse unterscheiden.
DE102021100065.3A 2020-01-16 2021-01-05 Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren Pending DE102021100065A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/745,238 US11592828B2 (en) 2020-01-16 2020-01-16 Using neural networks to perform fault detection in autonomous driving applications
US16/745,238 2020-01-16

Publications (1)

Publication Number Publication Date
DE102021100065A1 true DE102021100065A1 (de) 2021-07-22

Family

ID=76650605

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021100065.3A Pending DE102021100065A1 (de) 2020-01-16 2021-01-05 Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren

Country Status (3)

Country Link
US (2) US11592828B2 (de)
CN (1) CN113139642B (de)
DE (1) DE102021100065A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6866762B2 (ja) * 2017-05-18 2021-04-28 いすゞ自動車株式会社 車両用情報処理システム
US11592828B2 (en) * 2020-01-16 2023-02-28 Nvidia Corporation Using neural networks to perform fault detection in autonomous driving applications
DE102020203705A1 (de) * 2020-03-23 2021-09-23 Robert Bosch Gesellschaft mit beschränkter Haftung Plausibilisierung der Ausgabe neuronaler Klassifikatornetzwerke anhand von Zusatzinformationen über Merkmale
KR20210138201A (ko) * 2020-05-11 2021-11-19 현대자동차주식회사 자율 주행 제어 방법 및 장치
US11798254B2 (en) * 2020-09-01 2023-10-24 Northwestern University Bandwidth limited context based adaptive acquisition of video frames and events for user defined tasks
US20210018590A1 (en) * 2020-09-24 2021-01-21 Intel Corporation Perception system error detection and re-verification
US11820393B2 (en) * 2020-10-28 2023-11-21 Fca Us Llc Functionally safe rationalization check for autonomous vehicle machine learning algorithms
US11858514B2 (en) * 2021-03-30 2024-01-02 Zoox, Inc. Top-down scene discrimination
US11810225B2 (en) * 2021-03-30 2023-11-07 Zoox, Inc. Top-down scene generation
CN113415290B (zh) * 2021-07-30 2022-08-09 驭势(上海)汽车科技有限公司 辅助驾驶方法、装置、设备及存储介质
KR20230036730A (ko) * 2021-09-08 2023-03-15 삼성전자주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN113516749B (zh) * 2021-09-14 2021-12-17 中国汽车技术研究中心有限公司 自动驾驶视觉传感器数据采集方法、装置、设备及介质
CN113791929B (zh) * 2021-11-17 2022-04-08 北京中科开迪软件有限公司 一种基于图像识别的光盘库故障自动恢复方法及系统
US11862016B1 (en) * 2022-07-19 2024-01-02 Jiangsu University Multi-intelligence federal reinforcement learning-based vehicle-road cooperative control system and method at complex intersection

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5919267A (en) * 1997-04-09 1999-07-06 Mcdonnell Douglas Corporation Neural network fault diagnostics systems and related method
DE19902923B4 (de) * 1999-01-26 2005-02-24 Daimlerchrysler Ag Verfahren zur Funktionsüberwachung eines Kühlsystems einer Brennkraftmaschine
KR100682994B1 (ko) * 2004-11-04 2007-02-15 한국전자통신연구원 영상 사실감 예측 장치 및 그 방법
CN104616244B (zh) * 2015-01-24 2018-01-09 河南师范大学 基于 bp 神经网络压缩域的图像水印嵌入与提取方法
JP6727340B2 (ja) * 2017-01-12 2020-07-22 Kddi株式会社 情報処理装置、方法及びコンピュータ可読記憶媒体
JP6849915B2 (ja) * 2017-03-31 2021-03-31 富士通株式会社 比較プログラム、比較方法および比較装置
CN107330519A (zh) * 2017-06-26 2017-11-07 西北工业大学 基于深度神经网络的故障定位方法
DE102018123761A1 (de) * 2017-09-29 2019-04-04 Nvidia Corporation Sicherung gegen fehler in einem fehlerkorrekturcode (ecc), der in einem kraftfahrzeugsystem implementiert ist
CN107832219B (zh) * 2017-11-13 2020-08-25 北京航空航天大学 基于静态分析和神经网络的软件故障预测技术的构建方法
US11150663B2 (en) * 2018-01-26 2021-10-19 Nvidia Corporation Detection of hazardous driving using machine learning
CN111133447B (zh) * 2018-02-18 2024-03-19 辉达公司 适于自主驾驶的对象检测和检测置信度的方法和系统
CN108345890B (zh) * 2018-03-01 2022-10-28 腾讯科技(深圳)有限公司 图像处理方法、装置和相关设备
WO2019190886A1 (en) * 2018-03-29 2019-10-03 The Regents Of The University Of California Digital watermarking of machine learning models
US11221905B2 (en) * 2018-05-17 2022-01-11 International Business Machines Corporation System to monitor computing hardware in a computing infrastructure facility
US11163860B2 (en) * 2018-06-04 2021-11-02 International Business Machines Corporation Protecting deep learning models using watermarking
US10715570B1 (en) * 2018-06-25 2020-07-14 Intuit Inc. Generic event stream processing for machine learning
JP7091174B2 (ja) * 2018-07-09 2022-06-27 キヤノン株式会社 システム、システムの制御方法及びプログラム
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US11232016B1 (en) * 2018-09-21 2022-01-25 Amazon Technologies, Inc. Debug for computation networks using error detection codes
CN109410253B (zh) * 2018-11-06 2019-11-26 北京字节跳动网络技术有限公司 用于生成信息的方法、装置、电子设备和计算机可读介质
KR20200080396A (ko) * 2018-12-18 2020-07-07 삼성전자주식회사 자율 주행 방법 및 장치
KR102424694B1 (ko) * 2018-12-26 2022-07-25 삼성전자주식회사 무선 통신 시스템에서 네트워크 장치의 성능을 모니터링 하기 위한 장치 및 방법
CN109948788B (zh) * 2019-03-07 2021-01-15 清华大学 基于fpga的神经网络加速器
US11074479B2 (en) * 2019-03-28 2021-07-27 International Business Machines Corporation Learning of detection model using loss function
DE102019209462A1 (de) * 2019-06-27 2020-12-31 Robert Bosch Gmbh Verfahren zur Bestimmung eines Vertrauens-Wertes eines detektierten Objektes
JP7220629B2 (ja) * 2019-06-27 2023-02-10 株式会社Screenホールディングス 画像判別モデル構築方法、画像判別装置、および画像判別方法
US11453421B2 (en) * 2019-10-11 2022-09-27 Progress Rail Services Corporation System and method for predicting failures of train components
WO2021106174A1 (ja) * 2019-11-29 2021-06-03 オリンパス株式会社 画像処理方法、学習装置及び画像処理装置
US11592828B2 (en) * 2020-01-16 2023-02-28 Nvidia Corporation Using neural networks to perform fault detection in autonomous driving applications
EP4055557A4 (de) * 2020-03-04 2023-01-11 Samsung Electronics Co., Ltd. Verfahren und systeme zum entrauschen von medien unter verwendung von kontextuellen informationen der medien
US20210323555A1 (en) * 2020-04-15 2021-10-21 Ford Global Technologies, Llc Vehicle data augmentation
US20210382893A1 (en) * 2020-06-08 2021-12-09 Dropbox, Inc. Intelligently identifying the most knowledgable person based on multiple data source inputs
US20220048525A1 (en) * 2020-08-14 2022-02-17 Nvidia Corporation Hardware fault detection for feedback control systems in autonomous machine applications
US20220067531A1 (en) * 2020-08-26 2022-03-03 Nvidia Corporation Efficient identification of critical faults in neuromorphic hardware of a neural network
KR20220049165A (ko) * 2020-10-14 2022-04-21 삼성에스디에스 주식회사 추론 데이터 기반 예측 모델 보정 시스템 및 방법
US20220222527A1 (en) * 2021-01-14 2022-07-14 University Of Louisiana At Lafayette Method for predicting hardware fault using machine learning

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
„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

Also Published As

Publication number Publication date
US20210223780A1 (en) 2021-07-22
CN113139642A (zh) 2021-07-20
CN113139642B (zh) 2024-04-12
US11592828B2 (en) 2023-02-28
US20230152805A1 (en) 2023-05-18

Similar Documents

Publication Publication Date Title
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112020002166T5 (de) Simulation realistischer testdaten aus transformierten sensordaten der realen welt für autonome maschinenanwendungen
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE112020000369T5 (de) Objekterfassung unter verwendung von verzerrten polygonen, die zur parkplatzerfassung geeignet ist
DE112020001897T5 (de) Trainieren neuronaler Netze unter Verwendung von Grundwahrheitsdaten, die mit Karteninformationen ergänzt wurden, für autonome Maschinenanwendungen
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE112019006484T5 (de) Detektion von abständen zu hindernissen in autonomen maschinenanwendungen
DE112019000279T5 (de) Steuern autonomer fahrzeuge anhand sicherer ankunftszeiten
DE112019000048T5 (de) Bestimmung eines befahrbaren freiraums für autonome fahrzeuge
DE112019000122T5 (de) Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
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
DE112020006404T5 (de) Planung und steuerung von spurwechseln in autonomen maschinenapplikationen
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE112020001400T5 (de) Iterative erzeugung räumlicher graphen
DE102020100685A1 (de) Vorhersage zeitlicher informationen in autonomenmaschinenanwendungen
DE102021125234A1 (de) Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe
DE102021129528A1 (de) Erkennung von Einsatzfahrzeugen für Anwendungen im Bereich des autonomen Fahrens
DE112021000104T5 (de) Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen
DE102022121121A1 (de) Objektverfolgung unter Verwendung von LiDAR-Daten für autonome Maschinenanwendungen

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06K0009620000

Ipc: G06V0030190000