DE112020000413T5 - Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren - Google Patents

Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren Download PDF

Info

Publication number
DE112020000413T5
DE112020000413T5 DE112020000413.9T DE112020000413T DE112020000413T5 DE 112020000413 T5 DE112020000413 T5 DE 112020000413T5 DE 112020000413 T DE112020000413 T DE 112020000413T DE 112020000413 T5 DE112020000413 T5 DE 112020000413T5
Authority
DE
Germany
Prior art keywords
data
curves
vehicle
curve fitting
control points
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
DE112020000413.9T
Other languages
English (en)
Inventor
Minwoo Park
Yilin YANG
Xiaolin Lin
Abhishek Bajpayee
Hae-Jong Seo
Eric Jonathan Yuan
Xudong Chen
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 DE112020000413T5 publication Critical patent/DE112020000413T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24137Distances to cluster centroïds
    • G06F18/2414Smoothing the distance, e.g. radial basis function networks [RBFN]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • 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/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/757Matching configurations of points or features
    • 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/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • G06V10/763Non-hierarchical techniques, e.g. based on statistics of modelling distributions
    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/582Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • G06V10/471Contour-based spatial representations, e.g. vector-coding using approximation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Automation & Control Theory (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

In verschiedenen Beispielen werden ein oder mehrere tiefe neuronale Netze (deep neural networks - DNN) zur Regression an Kontrollpunkten einer Kurve ausgeführt, und die Kontrollpunkte können dazu verwendet werden, eine Kurvenanpassungsoperation - z. B. eine Bezierkurvenanpassung - durchzuführen, um Standorte und Geometrien von Orientierungspunkten in einer Umgebung zu identifizieren. Die Ausgaben des/der DNN können somit die zweidimensionalen (2D-) Bildraum- und/oder dreidimensionalen (3D-) Welt-Raum-Kontrollpunktpositionen anzeigen, und Nachverarbeitungstechniken - wie Clusterbildung und zeitliche Glättung - können ausgeführt werden, um Standorte und Stellungen von Orientierungspunkten präzise und in Echtzeit zu bestimmen. Infolgedessen können rekonstruierte Kurven, die den Orientierungspunkten entsprechen - z. B. Fahrspurlinie, Straßenbegrenzungslinie, Zebrastreifen, Mast, Text usw. - von einem Fahrzeug verwendet werden, um eine oder mehrere Operationen zum Navigieren in einer Umgebung durchzuführen.

Description

  • STAND DER TECHNIK
  • Die Fähigkeit, Orientierungspunkte - z. B. Fahrspurlinien, Straßenbegrenzungslinien, Text, Masten oder Schilder und/oder andere Merkmale - in einer Umgebung genau und präzise zu erkennen, ist für autonome Maschinenanwendungen auf allen Autonomieebenen, z. B. von fahrer-/pilotunterstützten Maschinen oder Fahrzeugen bis hin zu teilautonomen und vollautonomen Maschinen und Fahrzeugen, zwingend erforderlich. Aufgrund der unterschiedlichen Qualität von Straßenmarkierungen, geografischen oder regionalen Unterschieden bei Fahrspur- und Straßenmarkierungskonventionen sowie Straßenmarkierungsbehinderungen, -verschlechterungen und/oder -verdeckungen aufgrund von Abnutzung, Wetterbedingungen, Lichtverhältnissen, temporären Markierungen (z. B. aufgrund von Bauarbeiten oder Katastrophenhilfe) und/oder dergleichen, ist die Vielfalt von Fahrspurmarkierungen, die während der Fahrt in der Umgebung angetroffen werden können, sehr hoch.
  • Einige konventionelle Ansätze zur Fahrspur- oder Fahrlinienerkennung verwenden tiefe neuronale Netze (deep neural networks - DNN), bei denen hochauflösende Bilder von Fahrflächen und zugehörige Annotationen von Fahrspuren und Fahrlinien verwendet werden, um das DNN zu trainieren (z. B. ein faltungsneuronales Netz (convolutional neural network - CNN)), Fahrbahnlinien zu erkennen. Diese herkömmlichen Ansätze haben das DNN trainiert, um eine Segmentierungsmaske zu generieren, die eine allgemeine Position von Fahrspurlinien in einem Bild zeigt, indem jedes Pixel des Bildes entweder als Teil einer Fahrspurlinie klassifiziert wird oder nicht. Diese herkömmlichen Ansätze erfordern jedoch eine umfangreiche Nachverarbeitung - wie etwa dynamische Programmierung -, um die Ausgabe in eine verwendbare Darstellung von Fahrspurlinien, Straßenbegrenzungen, Masten und/oder anderen Merkmalen zu konvertieren. Da zum Beispiel die Ausgaben dieser herkömmlichen DNN die Identifizierung jedes der Pixel beinhalten, die zu jedem Orientierungspunktmerkmal gehören, müssen Korrelationen zwischen jedem der Pixel, die zu demselben Orientierungspunkt gehören, sowie deren Klassifizierungen während der Nachverarbeitung bestimmt werden. Darüber hinaus müssen für Orientierungspunkte, die kein gerades Profil haben - z. B. um Kurven oder Konturen einer Fahrfläche zu folgen -, zusätzliche Winkel- oder Richtungsinformationen durch das DNN ausgegeben und nachverarbeitet werden, um Winkel oder Richtungen der Orientierungspunktmerkmale zu bestimmen. Diese umfangreichen Nachverarbeitungsaufgaben erhöhen die Latenz des Systems sowie die Rechenanforderungen des Systems, wodurch diese herkömmlichen DNN für den Echtzeiteinsatz in einem Fahrzeug weniger nützlich sind.
  • KURZFASSUNG DER ERFINDUNG
  • Ausführungsformen der vorliegenden Offenbarung betreffen die Erkennung von Orientierungspunkten unter Verwendung von Kurvenanpassung für Anwendungen für autonomes Fahren. Es werden Systeme und Verfahren offenbart, die ein oder mehrere tiefe neuronale Netze (DNN) zur Regression an Kontrollpunkten einer Kurve verwenden und die Kontrollpunkte dazu verwenden, eine Kurvenanpassungsoperation - z. B. eine Bezierkurvenanpassung - durchzuführen, um Standorte und Geometrien von Orientierungspunkten in einer Umgebung zu identifizieren. Die Ausgaben des/der DNN können somit die zweidimensionalen (2D-) Bild-Raum- und/oder die dreidimensionalen (3D-) Welt-Raum-Kontrollpunktpositionen anzeigen, und weniger rechen- und zeitaufwendige Nachverarbeitungstechniken - wie Clusterbildung und zeitliche Glättung - können ausgeführt werden, um Standorte und Stellungen von Orientierungspunkten präzise und in Echtzeit zu bestimmen. Infolgedessen und im Gegensatz zu herkömmlichen Systemen können die Kontrollpunkte ähnlich wie bei einem Objekterfassungsansatz regressiert werden, und die Kontrollpunkte können dann verwendet werden, um die Kurve entsprechend dem Orientierungspunkt - z. B. Fahrspurlinie, Straßenbegrenzungslinie, Zebrastreifen, Mast, Text, usw. - für jeden Orientierungspunkt in einem Sichtfeld von jedem eines oder mehrerer Sensoren eines Fahrzeugs zu rekonstruieren.
  • Um das/die DNN für eine genaue Vorhersage zu trainieren, können Ground-Truth-Daten, die Kontrollpunktpositionen für Orientierungspunktmerkmale entsprechen, aus Polylinien- und/oder Polygonannotationen, die Orientierungspunktmerkmalen in Trainingsdatensätzen entsprechen, generiert werden. Da Trainingsdatensätze beispielsweise zuvor annotierte Polylinien oder Polygone beinhalten können, können diese vorhandenen Annotationen - zusätzlich zu oder alternativ zu neuen oder zusätzlichen Trainingsdatensätzen - unter Verwendung eines Kurvenanpassungsansatzes analysiert werden, um Kontrollpunkte zur Verwendung bei der Generierung von Ground-Truth-Daten zu bestimmen. In einigen Ausführungsformen können, um die Genauigkeit der Kontrollpunktbestimmungen zu erhöhen, Punkte von den Ground-Truth-Polylinien erneut gesampelt werden, um gleichmäßiger beabstandete Punkte entlang der Polylinien zu generieren, sodass die bestimmten Kontrollpunkte die Kurve des Orientierungspunktmerkmals genauer widerspiegeln. Die Ground-Truth-Daten, die zum Trainieren des/der DNN zur Regression an Kontrollpunkten verwendet werden, können eine Binärmaske, die Pixel innerhalb eines Schwellenabstands zu einer Kurve anzeigt, Abstandsregressionskanäle, die Abstände anzeigen - in x-, y- und/oder z-Richtung (zur 3D-Kontrollpunktregression) - zu Kontrollpunkten und/oder Klassifizierungskanäle zum Bestimmen von Klassifizierungs- oder semantischen Informationen, die jedem Kontrollpunkt oder jeder angepassten Kurve entsprechen, beinhalten. Einmal trainiert und eingesetzt, können das/die DNN genaue und präzise Ausgaben berechnen, die Kontrollpunktpositionen und diesen entsprechende semantische Informationen angeben, und diese Ausgaben können dekodiert und nachverarbeitet werden, um Kurven zu bestimmen, die Orientierungspunktmerkmalen entsprechen.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zur Erkennung von Orientierungspunkten unter Verwendung von Kurvenanpassung für Anwendungen für autonomes Fahren werden im Folgenden detailliert unter Bezugnahme auf die angehängten Zeichnungen beschrieben, wobei Folgendes gilt:
    • 1 ist ein Datenflussdiagramm, das einen beispielhaften Prozess zum Trainieren eines tiefen neuronalen Netzes (DNN) zur Erkennung von Orientierungspunkten veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2A zeigt eine Visualisierung von Annotationen, die einem Trainingsbild zugeordnet sind, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2B zeigt eine Kurvenanpassungsoperation gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2C zeigt eine Visualisierung von Annotationen, die unter Verwendung einer Kurvenanpassungsoperation in Kurven konvertiert wurden;
    • 3A zeigt eine Visualisierung von Trainingsdaten zur Verwendung bei der Generierung von Ground-Truth-Daten gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 3B zeigt eine Visualisierung einer binären Maske gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 3C zeigt eine Visualisierung einer Bit-Klassifizierungsmaske gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 3D-3K zeigen Visualisierungen von Abstandsregressionsmasken gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 4A-4C zeigen Visualisierungen von Ground-Truth-Daten, die unter Verwendung reduzierter Längen und unterschiedlicher Gewichtung generiert wurden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 5 ist ein Ablaufdiagramm, das ein Verfahren zum Trainieren eines DNN zur Erkennung von Orientierungspunkten zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6 ist ein Datenflussdiagramm, das einen beispielhaften Prozess der Verwendung eines DNN zur Erkennung von Orientierungspunkten veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 7 ist ein Datenflussdiagramm, das einen beispielhaften Prozess der Dekodierung- und Nachverarbeitungsausgaben eines DNN zur Erkennung von Orientierungspunkten veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 8A-8B zeigt Visualisierungen von prognostizierten Kurven vor und nach der Nachverarbeitung, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 9A-9D zeigt Visualisierungen von beispielhaften Arten von Orientierungspunkten, die unter Verwendung eines DNN erkennt werden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 10 ist ein Ablaufdiagramm, das ein Verfahren zur Erkennung von Orientierungspunkten unter Verwendung eines DNN zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 11A ist eine Veranschaulichung eines beispielhaften autonomen Fahrzeugs, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 11B ist ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug aus 11A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 11C ist ein Blockdiagramm für eine beispielhafte Systemarchitektur für das beispielhafte autonome Fahrzeug aus 11A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 11D ist ein Systemdiagramm zur Kommunikation zwischen (einem) Cloudbasierten Server(n) und dem beispielhaften autonomen Fahrzeug aus 11A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 12 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung, die dazu geeignet ist, bei der Umsetzung einiger Ausführungsformen der vorliegenden Offenbarung verwendet zu werden; und
    • 13 ist ein Blockdiagramm eines beispielhaften Datenzentrums, das dazu geeignet ist, bei der Umsetzung einiger Ausführungsformen der vorliegenden Offenbarung verwendet zu werden.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es werden Systeme und Verfahren in Bezug auf die Erkennung von Orientierungspunkten unter Verwendung von Kurvenanpassung für Anwendungen für autonomes Fahren offenbart. Obwohl sich die vorliegende Offenbarung in Bezug auf ein beispielhaftes autonomes Fahrzeug 1100 beschreiben lässt (das hierin alternativ als „Fahrzeug 1100“ oder „autonomes Fahrzeug 1100“ bezeichnet wird, von dem ein Beispiel in Bezug auf die 11A-11D beschrieben wird), soll dies nicht einschränkend sein. Die hierin beschriebenen Systeme und Verfahren können beispielsweise von nichtautonomen Fahrzeugen, halbautonomen Fahrzeugen (z. B. in adaptiven Fahrerassistenzsystemen (ADAS)), Robotern, Lagerfahrzeugen, Geländefahrzeugen, Flugschiffen, Booten, in einem Personenkraftwagen, Auto, Lastwagen, Bus, Ersthelferfahrzeug, Shuttle, Elektrofahrrad oder Mofa, Motorrad, Feuerwehrauto, Polizeifahrzeug, Krankenwagen, Baufahrzeug, Unterwasserfahrzeug, in einer Drohne, in einem anderen Fahrzeugtyp (z. B. einem, der unbemannt ist und/oder einen oder mehrere Fahrgäste aufnimmt), einem gesteuerten oder nicht gesteuertem Roboter und/oder einer gesteuerten oder nicht gesteuerten Roboterplattform verwendet werden. Obwohl sich die vorliegende Offenbarung in Bezug auf autonomes Fahren beschreiben lässt, soll dies ebenfalls nicht einschränkend sein. Zum Beispiel können die hierin beschriebenen Systeme und Verfahren in Robotik, Flugsystemen, Bootssystemen und/oder anderen Technologiebereichen verwendet werden, wie etwa zur Wahrnehmung, Weltmodellverwaltung, Wegplanung, Hindernisvermeidung und/oder anderen Prozessen.
  • Unter Bezugnahme auf 1 handelt es sich bei 1 um ein Datenflussdiagramm, das einen beispielhaften Prozess zum Trainieren eines tiefen neuronalen Netzes (DNN) für die Erkennung von Orientierungspunkten veranschaulicht. Es versteht sich, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele angegeben sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Befehle, Gruppierungen von Funktionen usw.) können zusätzlich oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Ferner sind viele der hierin beschriebenen Elemente funktionale Einheiten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und Position umgesetzt werden können. Verschiedene Funktionen, die hierin als durch Einheiten ausgeführt beschrieben sind, können durch Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. In einigen Ausführungsformen kann das Training eines tiefen neuronalen Netzes (DNN) 104 gemäß dem Prozess 100 zumindest teilweise unter Verwendung ähnlicher Komponenten, Merkmale und/oder Funktionalität umgesetzt werden, wie hierin in Bezug auf das Fahrzeug 1100 aus 11A-11D, die beispielhafte Computervorrichtung 1200 aus 12 und/oder das beispielhafte Datenzentrum 1300 aus 13 beschrieben.
  • Der Prozess 100 kann das Generieren und/oder Empfangen von Sensordaten 102 von einem oder mehreren Sensoren beinhalten. Die Sensordaten 102 können, als nichteinschränkendes Beispiel, von einem oder mehreren Sensoren eines Fahrzeugs empfangen werden (z. B. Fahrzeug 1100 aus 11A-11D wie hierin beschrieben). Die Sensordaten 102 können durch das Fahrzeug 1100 und innerhalb des Prozesses 100 verwendet werden, um ein oder mehrere DNN 104 dazu zu trainieren, Orientierungspunkte zu erkennen, z. B. Standort, Stellung, semantische Klassen von Orientierungspunkten usw. Während des Trainings generiert die Sensordaten 102 unter Verwendung eines oder mehrerer Datenerfassungsfahrzeuge generiert werden, die Sensordaten zum Trainieren von DNNs generieren, wie etwa das/die DNN 104, und/oder können vorgeneriert und in einen Trainingsdatensatz aufgenommen werden. Die während des Trainings verwendeten Sensordaten 102 können zusätzlich oder alternativ unter Verwendung simulierter Sensordaten (z. B. Sensordaten, die unter Verwendung eines oder mehrerer virtueller Sensoren eines virtuellen Fahrzeugs in einer virtuellen Umgebung generiert wurden) und/oder erweiterter Sensordaten (z. B. Sensordaten, die unter Verwendung eines oder mehrerer Datenerfassungsfahrzeuge generiert bzw. mit virtuellen Daten modifiziert werden). Nachdem sie im Fahrzeug 1100 trainiert und eingesetzt wurden, können die Sensordaten 102 von einem oder mehreren Sensoren des Fahrzeugs 1100 generiert und von dem/den DNN(s) 104 verarbeitet werden, um verschiedene Ausgaben 106 zu berechnen, wie hierin beschrieben.
  • Insofern können die Sensordaten 102 ohne Einschränkung Sensordaten 102 von einem der Sensoren des Fahrzeugs 1100 beinhalten, einschließlich beispielsweise und unter Bezugnahme auf 11A-11C, RADAR-Sensor(en) 1160, Ultraschallsensor(en) 1162, LIDAR-Sensor(en) 1164, Stereokamera(s) 1168, Weitwinkelkamera(s) 1170 (z. B. Fischaugenkameras), Infrarotkamera(s) 1172, Surround-Kamera(s) 1174 (z. B. 360-Grad-Kameras), Fernbereichs- und/oder Mittelbereichs-Kamera(s) 1178 und/oder andere Sensortypen. Als weiteres Beispiel können die Sensordaten 102 virtuelle (z. B. simulierte oder erweiterte) Sensordaten beinhalten, die von einer beliebigen Anzahl von Sensoren eines virtuellen Fahrzeugs oder eines anderen virtuellen Objekts in einer virtuellen (z. B. Test-) Umgebung generiert 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 DNN-Leistung), und die virtuellen Sensordaten können Sensordaten darstellen, die durch die virtuellen Sensoren innerhalb der simulierten oder virtuellen Umgebung erfasst werden. Unter Verwendung der virtuellen Sensordaten kann/können das/die hierin beschriebene(n) DNN 104 unter Verwendung simulierter oder erweiterter Daten in einer simulierten Umgebung getestet, trainiert und/oder validiert werden, was das Testen extremerer Szenarien außerhalb einer realen Umgebung, in der solche Tests möglicherweise weniger sicher sind, ermöglicht.
  • In einigen Ausführungsformen können die Sensordaten 102 Bilddaten, die ein Bild oder mehrere Bilder darstellen, Bilddaten, die ein Video darstellen (z. B. Schnappschüsse von Videos) und/oder Sensordaten, die Darstellungen sensorischer Felder von Sensoren (z. B. Tiefenkarten für LIDAR-Sensoren, ein Wertediagramm für Ultraschallsensoren usw.) beinhalten. Wenn die Sensordaten 102 Bilddaten umfassen, kann jede Art von Bilddatenformat verwendet werden, wie zum Beispiel und ohne Einschränkung komprimierte Bilder wie etwa in den Joint Photographic Experts Group (JPEG)- oder Luminanz/Chrominanz (YUV)-Formaten, komprimierte Bilder als Frames, die aus einem komprimierten Videoformat wie H.264/Advanced Video Coding (AVC) oder H.265/High Efficiency Video Coding (HEVC) stammen, Rohbilder, die beispielsweise von 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 Prozesses 100 ohne jegliche Vorverarbeitung (z. B. in einem Roh- oder erfassten Format) verwendet werden, während in anderen Beispielen die Sensordaten 102 einer Vorverarbeitung unterzogen werden können (z. B. Rauschausgleich, Demosaicing, Skalierung, Zuschneidung, Vergrößerung, Weißabgleich, Tonkurvenanpassung usw., wie beispielsweise unter Verwendung eines Sensordaten-Vorprozessors (nicht gezeigt)). Wie hierin verwendet, können sich die Sensordaten 102 auf unverarbeitete Sensordaten, vorverarbeitete Sensordaten oder eine Kombination davon beziehen.
  • Die für das Training verwendeten Sensordaten 102 können Originalbilder (z. B. wie sie von einem oder mehreren Bildsensoren erfasst wurden), Downsampling-Bilder, Upsampling-Bilder, zugeschnittene oder interessierende (ROI-) Bilder, anderweitig erweiterte Bilder und/oder eine Kombination davon sein. Das/die DNN 104 kann/können unter Verwendung der Bilder (und/oder anderer Sensordaten 102) sowie entsprechender Ground-Truth-Daten 122 trainiert werden - z. B. Ground-Truth-(GT)-Binärmaske(n) 124, GT-Abstandsregressionsmaske(n) 126 und/oder GT-Bit-Klassifizierungsmaske(n) 128. Die Ground-Truth-Daten 122 können durch einen Kodierer 120 unter Verwendung von Annotationsdaten 114 - z. B. Annotationen, Beschriftungen, Masken und/oder dergleichen - einer Kurvenanpassungseinrichtung 116', und/oder Kontrollpunkten 118 generiert werden. Zum Beispiel können die Annotationsdaten 114 in einigen Ausführungsformen Polylinien darstellen, die einem beliebigen Orientierungspunkttyp entsprechen, wie etwa Straßenmarkierungen, Fahrspurlinien, Straßenbegrenzungslinien, Kreuzungslinien, Fußgängerwege, Radweglinien, Text, Masten, Bäume, Lichtmasten, Schilder usw. In Bezug auf 2A kann zum Beispiel die Visualisierung 200A Polylinien 202A-202F beinhalten, die Fahrspuren und/oder Straßenbegrenzungslinien entsprechen können. Die Polylinien 202A-202F können entsprechende Semantik- oder Klassifizierungsinformationen enthalten. Zum Beispiel können beim Annotieren der Polylinien 202 die Polylinien 202 einer oder mehreren bestimmten semantischen Klasse(n) zugeordnet werden. Zum Beispiel kann die Polylinie 202A einer Straßenbegrenzungslinie oder genauer gesagt einer durchgezogenen weißen Straßenbegrenzungslinie entsprechen. In ähnlicher Weise kann die Polylinie 202C einer gestrichelten Fahrspurlinie entsprechen und die Polylinie 202D kann einer durchgezogenen Straßenbegrenzungslinie entsprechen.
  • In einigen Ausführungsformen können die Polylinien aus Polygonen bestimmt oder extrahiert werden. Zum Beispiel können die Annotationen oder Beschriftungen, die durch die Annotationsdaten 114 dargestellt werden, Polygonen entsprechen, die im Wesentlichen die Formen der Orientierungspunkte definieren - z. B. Polygone, die auf jede Fahrspur passen, Polygone, die zu Masten passen, Polygone, die zu Text passen usw. Eine Mittellinie, eine linke Grenzlinie und/oder rechte Grenzlinie der Polygone können verwendet werden, um Polylinien zu erzeugen. Zum Beispiel kann für eine Fahrspur ein Polygon verwendet werden, um eine linke Fahrspurlinie (z. B. eine linke Kante des Polygons), eine rechte Fahrspurlinie (z. B. eine rechte Kante des Polygons) und/oder eine Mittellinie bzw. ein Mittelstreifen der Fahrspur (z. B. eine Linie, die sich durch eine Mitte des Polygons erstreckt) zu bestimmen. Insofern können, wenn Polygone verwendet werden, die Polylinien - wie etwa die Polylinien 202 aus 2A - aus den Polygonen generiert oder extrahiert werden. In allen Ausführungsformen können die Annotationen Polygone, Polylinien, einen anderen Annotations- oder Beschriftungstyp oder eine Kombination davon beinhalten.
  • Wie hierin beschrieben, können die Annotationsdaten 114 Semantik- oder Klassifizierungsinformationen darstellen, die den Polygonen, Polylinien und/oder anderen Annotations- oder Beschriftungstypen entsprechen. Die semantischen Klassen können jede Granularität aufweisen. Die semantischen Klassen können beispielsweise Fahrspurlinien, Straßenbegrenzungslinien, Kreuzungslinien, Masten, Schilder, Texte usw. beinhalten. Auf einer granularen Ebene können die semantischen Klassen für Fahrspurlinien beispielsweise durchgezogene oder gestrichelte Linien, gelbe oder weiße Linien, einzelne oder doppelte Linien oder eine Kombination davon beinhalten. Insofern können, als nichteinschränkende Beispiele, die semantischen Klassen für Fahrspurlinien weiß-einzeln-durchgezogen, gelb-einzeln-durchgezogen, weiß-einzeln-gestrichelt, gelb-einzeln-gestrichelt, weiß-doppelt-durchgezogen, gelb-doppelt-durchgezogen, weiß-doppelt-gestrichelt, gelb-doppelt-gestrichelt, weißdurchgezogen-gestrichelt, gelb-durchgezogen-gestrichelt, weiß-gestrichelt-durchgezogen, gelb-gestrichelt-durchgezogen, dreifach-durchgezogen, dreifach-gestrichelt, durchgezogen-gestrichelt-durchgezogen, gestrichelt-durchgezogen-gestrichelt usw. beinhalten. Für die Straßenbegrenzung können die semantischen Klassen als nichteinschränkende Beispiele Barrieren, Bordsteine, Ränder, Linien usw. beinhalten. Für Kreuzungslinien können die semantischen Klassen als nichteinschränkende Beispiele Kreuzungslinien, Zebrastreifenlinien, Haltelinien, Fußgängerlinien usw. beinhalten. Für Masten können die semantischen Klassen als nichteinschränkende Beispiele Straßenschilder, Masten, Lichter, Strommasten, Bäume usw. beinhalten, oder für Schilder können Verkehrsschilder, Bauschilder, Werbeschilder usw. umfassen. Insofern kann eine beliebige Anzahl und Granularität semantischer Klassen mit den Annotationen oder Beschriftungen verknüpft und dazu verwendet werden, die Ground-Truth-Daten 122 zum Trainieren des/der DNN(s) 104 zu generieren.
  • Die Annotationen können in einem Zeichenprogramm (z. B. einem Annotationsprogramm), einem Computer Aided Design (CAD)-Programm, einem Beschriftungsprogramm, einer anderen Art von Programm, das zum Generieren der Annotationen geeignet ist, generiert werden und/oder sie können in einigen Fällen von Hand gezeichnet werden. In jedem Beispiel können die Annotationsdaten 114 synthetisch erzeugt (z. B. aus Computermodellen oder Renderings generiert), real erzeugt (z. B. aus realen Daten entworfen und erzeugt), maschinenautomatisiert (z. B. unter Verwendung von Merkmalsanalyse und Lernen zum Extrahieren von Merkmalen aus Daten, gefolgt von Generieren von Beschriftungen), von Menschen annotiert (z. B. definiert der Beschrifter oder Annotationsexperte die Position der Beschriftungen) werden und/oder durch eine Kombination davon (z. B. identifiziert ein Mensch den Mittelpunkt oder Ursprungspunkt und Abmessungen von Bereichen, eine Maschine generiert Polygone und/oder Beschriftungen für Kreuzungsbereiche).
  • Der Prozess 100 kann das Ausführen einer Kurvenanpassungsoperation unter Verwendung einer Kurvenanpassungseinrichtung 116 beinhalten. Zum Beispiel können die durch die Annotationsdaten 114 dargestellten Polylinien einer Kurvenanpassungsoperation unterzogen werden, um Kontrollpunkte zu bestimmen, die Punkte einer Kurve definieren. Insofern können die Ground-Truth-Daten 122 verwendet werden, um das/die DNN(s) 104 dazu zu trainieren, die Positionen - im 2D-Bildraum oder 3D-Weltraum - der Kontrollpunkte vorherzusagen, zu regressieren oder anderweitig zu berechnen. Die Kurvenanpassungsoperation kann einen 2D-Bezierkurvenanpassungsalgorithmus (z. B. für die Schätzung des Bildraum-Kontrollpunkts), einen 3D-Bezier-Kurvenanpassungsalgorithmus (z. B. für die Welt-Raum-Kontrollpunktschätzung), einen kubischen Bezier-Kurvenanpassungsalgorithmus (z. B. vier Kontrollpunkte für jede Kurve), einen Bezierkurvenanpassungsalgorithmus höherer Ordnung (z. B. fünf oder mehr Kontrollpunkte), oder einen teilungsweisen Bezier-Kurvenanpassungsalgorithmus (z. B. eine einzelne Kurve, die in zwei oder mehr Kurven aufgeteilt wird, die jeweils eine Vielzahl von Kontrollpunkten beinhalten) und/oder einen anderen Typ von Kurvenanpassungsalgorithmus beinhalten. In einigen Ausführungsformen kann der Kurvenanpassungsalgorithmus verwendet werden, um drei oder mehr Kontrollpunkte zu bestimmen, um die Präzision und Genauigkeit der Kurvenanpassung zu erhöhen. Mit nur zwei Punkten ist das Ergebnis der Kurvenanpassung beispielsweise dem einer linearen Interpolation ähnlich, was bei nichtlinearen Kurven zu weniger genauen oder präzisen Ergebnissen führen würde. Je mehr Kontrollpunkte verwendet werden, desto genauer oder präziser kann die Kurvenanpassung sein, während die Operation umso verarbeitungs- und rechenintensiver ist, je mehr Kontrollpunkte verwendet werden, was die Laufzeit des Systems erhöht. Somit kann durch Experimentieren und als nichteinschränkendes Beispiel die Verwendung von drei bis fünf Kontrollpunkten zu genauen und präzisen Ergebnissen mit einem akzeptablen Rechenbedarf führen, der eine Bereitstellung in Echtzeit ermöglicht. Es kann jedoch eine beliebige Anzahl von Kontrollpunkten verwendet werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Obwohl die Darstellungen hierin vier Kontrollpunkte pro Kurve umfassen, soll dies ebenfalls nicht einschränkend sein und dient nur beispielhaften Zwecken. Ferner soll, obwohl hierin hauptsächlich die Bezierkurvenanpassung beschrieben wird, dies nicht einschränkend sein, und es können andere Kurvenanpassungsalgorithmen verwendet werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Die Bezierkurvenanpassung bietet allerdings mehrere Vorteile, einschließlich der Verwendung von drei oder mehr Kontrollpunkten, um genauere Kurvenanpassungsergebnisse zu generieren, und zwei der Kontrollpunkte befinden sich am Anfang und am Ende jeder Kurve, was für das Fahrzeug 1100 bei der Planung, Steuerung oder andere Arten von Entscheidungen nützlich ist.
  • In einigen Ausführungsformen können vor dem Kurvenanpassungsvorgang die Punkte entlang der Polylinien aus den Annotationsdaten erneut gesampelt werden. Da die Polylinien beispielsweise weniger Punkte mit geraden Kurven und mehr Punkte mit stärkerer Krümmung enthalten können, kann es an einigen Stellen mehr Punkte geben als an anderen. Während Polylinien ohne Resampling genaue Ergebnisse liefern können, kann die Genauigkeit durch Resampling der Punkte entlang der Polylinien erhöht werden, um eine gleichmäßigere Verteilung der Punkte einzuschließen. Als Beispiel kann die Polylinie 202F aus 2A Punkte 206 vor dem Resampling beinhalten, während die Polylinie 202C Punkte 206 nach dem Resampling beinhalten kann. Wie dargestellt, sind die Punkte 206 entlang der Polylinie 202C gleichmäßiger verteilt als die Punkte entlang der Polylinie 202F. Durch das Resampling kann es weniger wahrscheinlich sein, dass die Kurvenanpassungsoperation Kontrollpunkte generieren, die Regionen der Polylinien bevorzugen, die eine höhere Anzahl von Punkten aufweisen. Infolgedessen können die unter Verwendung der Kurvenanpassungseinrichtung 116 bestimmten Kontrollpunkte und somit die unter Verwendung der Kontrollpunkte generierten Ground-Truth-Daten 122 für die Kurvenanpassung genauer sein.
  • Die Polylinien - in Ausführungsformen nach dem Resampling - können dann der Kurvenanpassungsoperation unterzogen werden, um die Kontrollpunktpositionen zu bestimmen. Unter Bezugnahme auf 2B, und als ein Beispiel, bei dem Bezierkurvenanpassung verwendet wird, kann die Bezier -Kurve als Q(t) definiert werden, wobei t einen Parameter beinhalten kann, sodass 0 < t < 1 ist. Die erste Matrix T im Matrixausdruck der nachstehenden Gleichung (1) besteht aus t0, t1, t2 und t3. In Gleichung (1) kann die zweite Matrix M als Bezier-Matrix bezeichnet werden, die aus Koeffizienten besteht, wenn wir das kubische Polynom erweitern. Die vier Kontrollpunkte (in diesem Beispiel kubischer Bezierkurvenanpassungsalgorithmus) beinhalten P0, P1, P2 und P3, und da es in diesem Beispiel zwei Dimensionen gibt, können die Kontrollpunkte als dritte Matrix P in Gleichung (1) ausgedrückt werden, wobei x0 und y0 (x, y)-Koordinaten (z. B. Pixelkoordinaten im 2D-Bildraum) für den Kontrollpunkt Po darstellen, und so weiter. Obwohl dies als 2D-Pixel- oder Bildraumkoordinaten dargestellt ist, soll dies nicht einschränkend sein, und in einigen Ausführungsformen können die Koordinaten 3D-Welt-Raum-Koordinaten entsprechen, so dass das/die DNN 104 trainiert werden, 3D-Koordinaten für die Kontrollpunkte der Kurven zu berechnen. Q ( t ) = ( 1 t ) 3 P 3 + 3 ( 1 t ) 3 t P 2 + 3 ( 1 t ) t 2 P 1 + t 3 P 0 =                                            [ t 3 t 2 t 1 ] T [ t 3 1 3 1 t 2 3 3 0 t 3 0 0 1 1 0 0 ] [ x 0 y 0 x 1 y 1 x 2 y 2 x 3 y 3 ]
    Figure DE112020000413T5_0001
  • Der Bezierkurvenanpassungsalgorithmus kann alternativ P und T optimieren. Ein anfängliches Tkann durch die Länge jedes Liniensegments (oder j eder Polylinie) berechnet werden. Wenn nur ein Liniensegment vorhanden ist, kann das Liniensegment gleichmäßig in drei Liniensegmente aufgeteilt werden. Wenn nur zwei Liniensegmente vorhanden sind, kann das längere zu gleichen Teilen in zwei Liniensegmente aufgeteilt werden. Jedes Liniensegment kann in Ausführungsformen in kleine Stücke geteilt werden, sodass jedes Liniensegment relativ die gleiche Länge hat. Das anfängliche T kann berechnet werden, nachdem die Liniensegmente bestimmt wurden, und dann kann die erneut gesampelte Polylinie zur Optimierung verwendet werden. Wenn T fixiert ist, kann P durch eine Methode der kleinsten Quadrate gelöst werden, wie zum Beispiel nach der folgenden Gleichung (2): P = ( M T T T T M ) 1 M T T T    Q
    Figure DE112020000413T5_0002
  • Wenn P fixiert ist, kann T durch ein Newton-Raphson-Verfahren gelöst werden. Zum Beispiel kann das zu lösende Problem die Wurzel von Gleichung (3) unten sein: f ( t ) = ( Q ( t ) Q ) Q ' ( t )
    Figure DE112020000413T5_0003
  • Das Konzept ist beispielhaft in 2B dargestellt, wobei der Fuß von f(t), f(t), gemäß Gleichung (4) unten berechnet wird: f ' ( t ) = Q ' ( t ) Q ' ( t ) + ( Q ( t ) Q ) Q ' ' ( t )
    Figure DE112020000413T5_0004
    wobei der Aktualisierungsschritt durch Gleichung (5) unten dargestellt wird: t = t f ( t ) / f ( t )
    Figure DE112020000413T5_0005
  • Bei jeder Iteration kann ein Fehler e gemäß Gleichung (6) unten berechnet werden: e =      P T M Q   
    Figure DE112020000413T5_0006
  • Wenn der Fehler e aufhört abzunehmen, kann Konvergenz bestimmt werden. Wenn der Fehler e über einen maximalen Fehler hinausgeht, kann eine Divergenz bestimmt werden. Wenn eine maximale Anzahl von Schritten oder Iterationen erreicht ist, kann das Ergebnis der letzten Iteration verwendet werden.
  • Infolge der Kurvenanpassungsoperation durch die Kurvenanpassungseinrichtung 116 können eine oder mehrere Kurven generiert werden, die jeweils durch Kontrollpunkte 118 definiert sind. Als Beispiel für das Ergebnis der Kurvenanpassungsoperation beinhaltet 2C eine Visualisierung 200B von Kurven 204 (z. B. Kurven 204A-204F), die aus den Polylinien 202 aus 2A nach der Kurvenanpassung generiert wurden. Insofern beinhaltet jede Kurve (einer bestimmten semantischen Beschriftung) eine gleiche Anzahl von Kontrollpunkten 118 - z. B. vier in diesem Beispiel, beispielsweise dort, wo eine kubische Bezierkurvenanpassung ausgeführt wurde. Wie dargestellt, können, obwohl im Welt-Raum zusammenhängend, zwei Kurven 204 mit jeweils entsprechenden Kontrollpunkten 118 generiert werden, da die Kurve 204C einer Fahrspurlinie und die Kurve 204E einer Straßenbegrenzungslinie entspricht. Das/die DNN 104 kann/können trainiert werden, um eine oder mehrere Bit-Klassifizierungsmasken 112 entsprechend bestimmten semantischen Klassen zu berechnen, und/oder eine oder mehrere Binärmaske(n) 108 und Abstandsregressionsmaske(n) 110 zu regressieren (oder anderweitig zu berechnen), die den Kontrollpunkten 118 einer Kurve 204 für einen bestimmten Typ von Orientierungspunkt entsprechen (z. B. einen bestimmten Straßenmarkierungstyp in Bezug auf 2C).
  • Die Kontrollpunkte 118 und/oder die semantischen Klassifizierungsinformationen können dann von einem Kodierer 120 verwendet werden, um die Ground-Truth-Daten 122 zum Trainieren des/der DNN 104 unter Verwendung einer Trainings-Engine 130 zu generieren. Insofern können für jede Instanz der Sensordaten 102 im Trainingsdatensatz Ground-Truth-Daten 122 generiert werden. Die Ground-Truth-Daten 122 können eine oder mehrere GT-Binärmasken 124, eine oder mehrere GT-Abstandsregressionsmasken 126 und/oder eine oder mehrere GT-Bit-Klassifizierungsmasken 128 beinhalten. In einigen Ausführungsformen, wie etwa wenn variable Längen und/oder Breiten zum Kodieren von Kurven in den Ground-Truth-Daten 122 verwendet werden - wie hierin ausführlicher beschrieben -, kann auch ein Gewichtungskanal für die Ground-Truth-Daten 122 generiert werden. Letztlich können die Ground-Truth-Daten 122 mit den Ausgaben 106 des DNN 104 durch die Trainings-Engine 130 unter Verwendung einer oder mehrerer Verlustfunktionen verglichen werden, wie etwa, ohne darauf beschränkt zu sein, die hierin beschriebenen. Zum Beispiel kann/können die binäre(n) Maske(n) 108, die von dem/den DNN 104 für eine Instanz der Sensordaten 102 berechnet werden, mit der/den binären GT-Maske(n) 124, die derselben Instanz der Sensordaten 102 entspricht, verglichen werden, die Abstandsregressionsmaske(n) 110, die von dem/den DNN 104 für eine Instanz der Sensordaten 102 berechnet werden, kann/können mit der/den GT-Abstandsregressionsmaske(n) 126 entsprechend derselben Instanz der Sensordaten 102 verglichen werden, und so weiter. Die Trainings-Engine 130 kann die Verlustfunktion(en) verwenden, um Aktualisierungen von Parametern (z. B. Gewichtungen, Verzerrungen usw.) des/der DNN 104 zu bestimmen, und dieser Prozess kann wiederholt werden, bis das/die DNN 104 auf ein akzeptables Genauigkeitsniveau konvergiert - z. B. bis die trainierten Parameter des/der DNN 104 zu optimalen, gewünschten und/oder akzeptablen Werten konvergieren.
  • Als Beispiel und unter Bezugnahme auf 3A kann die Visualisierung 300 einer Instanz der Sensordaten 102 (z. B. einem Bild) und entsprechenden Kurven 302A-302D entsprechen, die jeweils Kontrollpunkte 118 beinhalten (z. B. kann jede Kurve 302 vier Kontrollpunkte 118 beinhalten). Jede Kurve 302 kann durch die Kurvenanpassungseinrichtung 116 aus Polylinien erzeugt worden sein, die durch die Annotationsdaten 114 dargestellt werden. Die Kurven 302 können jeweils semantischen Klassifizierungsinformationen zugeordnet sein. Zum Beispiel können die Kurven 302A und 302D Straßenbegrenzungslinien entsprechen und die Kurven 302B und 302C können Fahrspurlinien (z. B. Fahrspurrandlinien) entsprechen. Wie nur in Bezug auf die Kurve 302D veranschaulicht (aus Gründen der Klarheit), kann jede Kurve 302 einen ersten Kontrollpunkt 118A, einen zweiten Kontrollpunkt 118B, einen dritten Kontrollpunkt 118C und einen vierten Kontrollpunkt 118D beinhalten. Der erste Kontrollpunkt 118A kann einem Endkontrollpunkt entsprechen und der vierte Kontrollpunkt 118D kann einem Anfangskontrollpunkt 118 für jede Kurve entsprechen.
  • Der Kodierer 120 kann die Kurven 302 verwenden, um die GT-Binärmaske(n) 124 zu kodieren. In 3B ist eine GT-Binärmaske 124A veranschaulicht, die den Kurven 302 aus der Visualisierung 300 entspricht. Die GT-Binärmaske 124A kann durch Kodieren eines ersten Wertes (z. B. 1) für jedes Pixel innerhalb eines vordefinierten Radius einer beliebigen Kurve 302 und eines zweiten Werts (z. B. 0) für jedes Pixel außerhalb des vordefinierten Radius einer beliebigen Kurve 302 generiert werden. Der Radius kann beliebig gewählt werden. Beispielsweise kann in einem nichteinschränkenden Beispiel, in dem sich die Eingabe- und Ausgabeauflösung des/der DNN 104 unterscheiden (z. B. aufgrund von Downsampling durch Faltungsoperationen), der Radius zwischen 2 und 6 Pixel bei der Ausgabeauflösung des DNN 104 sein, die 16 bis 48 Pixel (z. B. bei einem Auflösungsunterschied von 8x) bei der Eingabeauflösung des/der DNN 104 (z. B. der Auflösung des Bildes aus der Visualisierung 300) beinhalten kann. Jedoch kann je nach Ausführungsform ein unterschiedlicher Radius eingestellt werden und/oder je nach Ausführungsform kann ein Unterschied in der Eingabegegenüber der Ausgabeauflösung eingestellt werden. Da die als innerhalb eines Radius kodierten Pixel während der Dekodierung als Kandidatenpixel zum Regressieren (oder anderweitigen Berechnen) der Kontrollpunkte 118 verwendet werden können, kann beispielsweise ein Radius so bestimmt werden, dass genügend Kandidatenpixel für genaue und präzise Vorhersagen ausgewählt werden, ohne so viele Pixel aufzunehmen, dass sich Verarbeitungsanforderungen und Laufzeit erhöhen.
  • Der Kodierer 120 kann die Kontrollpunkte 118 der Kurven 302 verwenden, um die GT-Bit-Klassifizierungsmaske(n) 128 zu kodieren. Zum Beispiel kann eine Anzahl von GT-Bit-Klassifizierungsmaske(n) 128 oder Kanälen basierend auf der Anzahl unterschiedlicher semantische Klassen bestimmt werden, zu deren Vorhersage das/die DNN 104 trainiert wird/werden. Wenn es zum Beispiel n semantische Klassen gibt, kann es eine Obergrenze (Maximum) von log2(n) Kanälen geben. Wenn es nur eine einzige semantische Klasse gibt, gibt es möglicherweise keine Bit-Klassifizierungskanäle und somit keine GT-Bit-Klassifizierungsmasken 128. Wo jedoch zwei Bit-Klassifizierungskanäle vorhanden sind, kann es einen einzelnen Bit-Klassifizierungskanal und somit eine einzelne GT-Bit-Klassifizierungsmaske 128 geben. In einem solchen Beispiel kann ein erster Wert (z. B. 0) anzeigen, dass ein Pixel einer ersten semantischen Klasse entspricht, und ein zweiter Wert (z. B. 1) kann anzeigen, dass ein Pixel einer zweiten semantischen Klasse entspricht. Als Beispiel und unter Bezugnahme auf 3C kann die GT-Bit-Klassifizierungsmaske 128A der Visualisierung 300 entsprechen, wo es zwei semantische Klassen gibt (z. B. unter der Annahme, dass das/die DNN 104 in einem solchen Beispiel nur trainiert wird/werden, um für zwei Klassen vorherzusagen). Zum Beispiel können die Kurven 302C und 302B, die den Fahrspurlinien entsprechen, mit einem ersten Wert (z. B. 1, der Weiß entspricht) kodiert werden und die Kurven 302A und 302D, die den Straßenbegrenzungslinien entsprechen, können mit einem zweiten Wert (z. B. 0, der Schwarz entspricht) kodiert werden. In einigen Ausführungsformen kann jedes der Pixel der GT-Abstandsregressionsmaske 126 mit einem Bit-Klassifizierungswert kodiert (oder für die Kodierung in Betracht gezogen) werden, während in anderen Beispielen nur die Pixel, die als innerhalb des Radius einer Kurve 302 von der GT-Binärmaske(n) 124 liegend identifiziert werden, mit Bit-Klassifizierungswerten kodiert werden können. Wenn der Radius für jeden Maskentyp verwendet wird, kann/können die DNN 104 trainiert werden, um Vorhersagen für die Pixel zu treffen, die am wahrscheinlichsten zur Genauigkeit der Vorhersage beitragen, ohne an Hintergrundpixeln zu trainieren.
  • Der Kodierer 120 kann die Kontrollpunkte 118 der Kurven 302 verwenden, um die GT-Abstandsregressionsmaske(n) 126 zu kodieren. Zum Beispiel kann für jeden Kontrollpunkt 118 eine x-Achsen-GT-Abstandsregressionsmaske 126 und eine y-Achsen-GT-Abstandsregressionsmaske 126 kodiert werden. In Ausführungsformen, in denen die Kontrollpunkte 118 in 3D-Welt-Raum-Koordinaten liegen, kann jeder Kontrollpunkt 118 eine zusätzliche z-Achsen-GT-Abstandsregressionsmaske 126 beinhalten. Zum Beispiel kann jede Kurve 302 einen ersten Kontrollpunkt 118 (z. B. einen Endkontrollpunkt) beinhalten, können die Pixel der x-Achsen-GT-Abstandsregressionsmasken 126 mit einem Abstand (z. B. einem Pixelabstand) in der x-Richtung zu einem nächsten ersten Kontrollpunkt 118A einer beliebigen der Kurven 302 kodiert sein, und können die Pixel der y-Achsen-GT-Abstandsregressionsmasken 126 mit einem Abstand (z. B. einem Pixelabstand) in y-Richtung zu einem nächsten ersten Kontrollpunkt 118A einer beliebigen der Kurven 302 kodiert sein. Dieser Prozess kann für jeden der Kontrollpunkte 118B-118D wiederholt werden (wo vier Kontrollpunkte 118 vorhanden sind, er kann jedoch mehr oder weniger Iterationen beinhalten, wenn mehr oder weniger Kontrollpunkte 118 vorhanden sind). Auf die Werte für Abstände kann ein Skalierungsfaktor angewendet werden, um aktualisierte Abstandswerte zu erzeugen, die innerhalb eines kleineren Wertebereichs liegen (z. B. näher an 0-1 als 0-90 oder einigen anderen Werten). In einigen Ausführungsformen kann jedes der Pixel der GT-Abstandsregressionsmaske 126 kodiert werden, während in anderen Beispielen nur die Pixel, die als innerhalb des Radius einer Kurve 302 von der GT-Binärmaske(n) 124 identifiziert wurden, mit Abstandswerten kodiert werden können. In Beispielen, in denen nur die Pixel innerhalb des Radius verwendet werden, leidet die Genauigkeit möglicherweise nicht, während die Verarbeitungsanforderungen und die Laufzeit reduziert werden können.
  • Als Beispiel und mit Bezug auf 3D-3K können die Kontrollpunkte 118A für jede Kurve 302A-302D in eine x-Achsen-GT-Abstandsregressionsmaske 126A-X (3D) und eine y-Achsen-GT-Abstandsregressionsmaske 126A-Y (3E) kodiert werden, können die Kontrollpunkte 118B für jede Kurve 302A-302D in eine x-Achsen-GT-Abstandsregressionsmaske 126B-X (3F) und eine y-Achsen-GT-Abstandsregressionsmaske 126B-Y (3G) kodiert werden, und können die Kontrollpunkte 118C für jede Kurve 302A-302D in eine x-Achsen-GT-Abstandsregressionsmaske 126C-X (3H) und eine y-Achsen-GT-Abstandsregressionsmaske 126C-Y (31) kodiert werden, und können die Kontrollpunkte 118D für jede Kurve 302A-302D in eine x-Achsen-GT-Abstandsregressionsmaske 126D-X (3J) und eine y-Achsen-GT-Abstandsregressionsmaske 126D-Y (3K) kodiert werden.
  • In einigen Ausführungsformen können die Abstände der Ausgabeauflösung des/der DNN 104 entsprechen, während in anderen Ausführungsformen die Abstände der Eingabeauflösung des/der DNN 104 entsprechen können. Insofern kann, selbst wenn ein x-Achsen- oder y-Achsenabstand für ein Pixel bei der Ausgabeauflösung berechnet wird, der Wert dem Abstand (z. B. Pixelabstand) bei der Eingabeauflösung (z. B. eines Eingabebildes in das/die DNN 104) entsprechen. Insofern kann das Pixel während des Dekodierens bei der Ausgabeauflösung (ein) bekannte(s) oder geschätzte(s) entsprechende(s) Pixel bei der Eingabeauflösung aufweisen, und das/die bekannte(n) oder geschätzte(n) entsprechende(n) Pixel kann/können dann den Wert aus der ihm/ihnen zugeordneten Ausgabeauflösung aufweisen. Dieser Prozess kann 2A-2B und der begleitenden Beschreibung in der nichtvorläufigen US-Patentanmeldung Nr. 16/514,230 , eingereicht am 17. Juli 2019, ähneln, die hiermit in ihrer Gesamtheit durch Bezugnahme aufgenommen wird.
  • In einigen Ausführungsformen, beispielsweise wenn zwei oder mehr der binären GT-Maske(n) 124, der GT-Abstandsregressionsmasken 126 oder der GT-Bit-Klassifizierungsmaske(n) 128 so generiert werden, dass nur Pixel innerhalb eines Radius einer Kurve 302 kodiert sind, kann sich der Radius bei verschiedenen Maskentypen unterscheiden. Zum Beispiel kann die GT-Binärmaske 124 einen ersten Radius aufweisen und die GT-Abstandsregressionsmaske(n) 126 können einen zweiten Radius aufweisen, der sich von dem ersten Radius unterscheidet. In ähnlicher Weise können die GT-Bit-Klassifizierungsmaske(n) 128 einen anderen Radius als die GT-Binärmaske 124 und/oder die GT-Abstandsregressionsmaske(n) 126 aufweisen. In solchen Ausführungsformen kann ein anderer GT-Gewichtungskanal oder eine andere GT-Gewichtungsmaske generiert werden, um das/die DNN 104 dazu zu trainieren, den Gewichtungskanal auszugeben, um das Decodieren der Masken zu unterstützen, selbst wenn sich ihr Radius (z. B. Pixelradius von einer Kurve) möglicherweise unterscheidet. Zum Beispiel kann in Bezug auf 4A-4C eine binäre GT-Maske 124B (4A) einen ersten Radius beinhalten, eine GT-Abstandsregressionsmaske 126E (4B) kann einen zweiten, größeren Radius beinhalten, und ein Gewichtungskanal oder eine Gewichtungsmaske 400 (4C)kann verwendet werden, um diese Informationen zu kodieren, sodass ein berechneter Gewichtungskanal des/der DNN 104 während des Einsatzes von einem Dekodierer 120 (6) verwendet werden kann, um die Positionen der Kontrollpunkte 118 genauer zu regressieren (oder anderweitig zu berechnen).
  • In einigen Ausführungsformen können die Ground-Truth-Daten 122 mit einer kürzeren Länge für die Kurven kodiert werden, um Prognosen des/der DNN 104 konzentrierter zu machen. Beispielsweise kann jede der GT-Binärmaske(n) 124, der GT-Abstandsregressionsmaske(n) 126 und/oder der GT-Bit-Klassifizierungsmaske(n) 128 mit einem kürzeren Abstand kodiert werden - wie durch den Unterschied zwischen den Masken aus 3B-3K und den Masken aus 4A-4C veranschaulicht. Beispielsweise können in einigen Ausführungsformen die kodierten Werte für die Kurven in jeder der Masken oben und/oder unten um einen gewissen Prozentsatz oder Betrag zugeschnitten werden. In nichteinschränkenden Ausführungsformen können die Werte, die den oberen 25 % einer Kurve entsprechen, und die Werte, die den unteren oder unteren 25 % einer Kurve entsprechen, so zugeschnitten werden, dass die resultierenden Masken aus den Ground-Truth-Daten 122 50 % ihrer potentiellen oder ursprüngliche Länge betragen, sollte die gesamte Kurve codiert werden. Diese Werte dienen nur zu Beispielszwecken, und ein oder mehrere Leistungskennzahlen (KPI) können verwendet werden, um geeignete oder ideale Werte für eine bestimmte Ausführungsform zu bestimmen. Dieser Prozess kann hilfreich sein, da der Prozess das rezeptive Feld des/der DNN 104 berücksichtigt. Wenn beispielsweise die vollständige Kurve oder Polylinie verwendet wird, dann können die Pixel oder Punkte (z. B. im 3D-Welt-Raum) an jedem Ende der Kurven oder Polylinien eine ebenso genaue Regressionskanalausgabe aufweisen.
  • Sobald die Ground-Truth-Daten 122 kodiert wurden, können das/die DNN 104 somit einem Training unter Verwendung der Trainings-Engine 130 unterzogen werden. Die Sensordaten 102 können auf das/die DNN 104 angewendet werden und das/die DNN 104 kann/können die Ausgaben 106 berechnen. Die Ausgaben 106 können dann mit den entsprechenden Ground-Truth-Daten 122 unter Verwendung einer oder mehrerer Verlustfunktionen verglichen werden, und die Ausgaben der Verlustfunktion(en) können von der Trainings-Engine 130 verwendet werden, um Parameter des/der DNN 104 zu aktualisieren. Dieser Prozess kann wiederholt werden, bis eine akzeptable Konvergenz erreicht wurde.
  • Die Verlustfunktionen können in einigen Ausführungsformen für verschiedene Typen von Ground-Truth-Daten 122 unterschiedlich sein. Zum Beispiel kann eine erste Verlustfunktion verwendet werden, um das/die DNN 104 in Bezug auf die GT-Binärmaske(n) 124 und die Binärmaske(n) 108 zu trainieren, eine zweite Verlustfunktion kann verwendet werden, um das/die DNN 104 in Bezug auf die GT-Distanzregressionsmaske(n) 126 und die Distanzregressionsmaske(n) 110 zu trainieren, und eine dritte Verlustfunktion kann verwendet werden, um das/die DNN 104 in Bezug auf die GT-Bit-Klassifizierungsmaske(n) 128 und die Bit-Klassifizierungsmaske(n) 112 zu trainieren. Als nichteinschränkendes Beispiel können die Binärmaskenkanäle unter Verwendung des binären Kreuzentropieverlusts trainiert werden, die Abstandsregressionskanäle können unter Verwendung des maskierten LI-Verlusts trainiert werden und die Bit-Klassifizierungskanäle können kann unter Verwendung von maskiertem binären Kreuzentropieverlust trainiert werden.
  • Unter Bezugnahme auf 5 umfasst jeder Block des hierin beschriebenen Verfahrens 500 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren 500 kann auch als computerverwendbare Anweisungen ausgeführt sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren 500 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. Außerdem wird das Verfahren 500 beispielhaft in Bezug auf den Prozess 100 aus 1 beschrieben. Dieses Verfahren 500 kann jedoch zusätzlich oder alternativ durch einen beliebigen Prozess und innerhalb eines beliebigen Systems oder einer beliebigen Kombination von Prozessen und Systemen ausgeführt werden, einschließlich, ohne darauf beschränkt zu sein, die hierin beschriebenen.
  • 5 ist ein Flussdiagramm, das ein Verfahren 500 zum Trainieren eines DNN 104 zur Erkennung von Orientierungspunkten zeigt. Das Verfahren 500 beinhaltet bei Block B502 das Empfangen von Annotationsdaten, die eine Polylinie, die einem Bild zugeordnet ist, und Klassifizierungsinformationen, die der Polylinie zugeordnet sind, darstellen. Zum Beispiel können die einer Instanz der Sensordaten 102 zugeordneten Annotationsdaten 114 empfangen und/oder generiert werden, und die Annotationsdaten können eine oder mehrere Polylinien darstellen, die diesen zugeordneten Orientierungspunkten und/oder Klassifizierungsinformationen entsprechen.
  • Das Verfahren 500 beinhaltet bei Block B504, zumindest teilweise auf Grundlage der Polylinie, Ausführen eines Kurvenanpassungsalgorithmus, um eine Vielzahl von Kontrollpunkten, die einer Kurve zugeordnet sind, zu bestimmen. Zum Beispiel kann die Kurvenanpassungseinrichtung 116 eine Kurvenanpassungsoperation unter Verwendung der Annotationsdaten 114 ausführen, um Kontrollpunkte entsprechend einer Kurve zu bestimmen.
  • Das Verfahren 500 beinhaltet bei Block B506, zumindest teilweise auf Grundlage der Vielzahl von Kontrollpunkten, die der Kurve zugeordnet sind, Kodieren einer Binärmaske, die Pixel des Bildes angibt, die innerhalb eines Radius zu der Kurve liegen, und Kodieren einer Vielzahl von Abstandsregressionsmasken. Beispielsweise kann der Kodierer 120 unter Verwendung der Kontrollpunkte 118 und/oder der Kurveninformationen die GT-Binärmaske(n) 124 und/oder die GT-Abstandsregressionsmaske(n) 126 kodieren, wobei jede Abstandsregressionsmaske Abstände zu einem Kontrollpunkt 118 der Vielzahl von Kontrollpunkten 118 angeben kann.
  • Das Verfahren 500 beinhaltet bei Block B508, zumindest teilweise auf Grundlage der Klassifizierungsinformationen, Kodieren einer oder mehrerer Bit-Klassifizierungsmasken. Zum Beispiel kann der Kodierer 120 die GT-Bit-Klassifizierungsmaske(n) 128 unter Verwendung der Klassifizierungsinformationen und/oder der Kontrollpunkt- oder Kurveninformationen kodieren.
  • Das Verfahren 500 beinhaltet bei Block B510 Trainieren eines neuronalen Netzes unter Verwendung der Binärmaske, der Vielzahl von Abstandsregressionsmasken und der einen oder mehreren Bit-Klassifizierungsmasken als Ground-Truth-Daten. Zum Beispiel kann die Trainings-Engine 130 die Ground-Truth-Daten 122 verwenden, um das/die DNN 104 zu trainieren, um die Ausgaben 106 zu berechnen.
  • DNN zur Erkennung von Orientierungspunkten
  • Unter Bezugnahme auf 6 handelt es sich bei 6 um ein ein Datenflussdiagramm, das einen beispielhaften Prozess 600 zum Verwenden eines DNN zur Erkennung von Orientierungspunkten gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Es versteht sich, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele angegeben sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Befehle, Gruppierungen von Funktionen usw.) können zusätzlich oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Ferner sind viele der hierin beschriebenen Elemente funktionale Einheiten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und Position umgesetzt werden können.
  • Verschiedene hierin als von Einheiten ausgeführt beschriebene Funktionen können durch Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. In einigen Ausführungsformen kann der Einsatz des/der DNN 104 gemäß dem Prozess 600 zumindest teilweise unter Verwendung ähnlicher Komponenten, Merkmale und/oder Funktionalität umgesetzt werden, wie hierin in Bezug auf das Fahrzeug 1100 aus 11A-11D, der beispielhaften Rechenvorrichtung 1200 aus 12 und/oder dem beispielhaften Datenzentrum 1300 aus 13 beschrieben.
  • Der Prozess 600 kann das Generieren und/oder Empfangen von Sensordaten 102 beinhalten, die von einem oder mehreren Sensoren des Fahrzeugs 1100 generiert werden. Die Sensordaten 102 können den hierin beschriebenen ähnlich sein, wie etwa in Bezug auf den Prozess 100 aus 1. Die Sensordaten 102 können auf das/die DNN 104 angewendet werden - die gemäß Prozess 100 aus 1 trainiert werden können - und das/die DNN 104 kann/können die Ausgaben 106 berechnen. Das/die DNN 104 können in Ausführungsformen ein faltungsneuronales Netz (convolutional neural network - CNN) beinhalten. Obwohl hierin Beispiele in Bezug auf die Verwendung neuronaler Netze und insbesondere faltungsneuronaler Netze als das/die DNN 104 beschrieben sind, soll dies nicht einschränkend sein. Zum Beispiel und ohne Einschränkung können das/die hierin beschriebene(n) DNN 104 jede Art von Modell für maschinelles Lernen beinhalten, wie etwa Modell(e) für maschinelles Lernen unter Verwendung von linearer Regression, logistischer Regression, Entscheidungsbäume, Support Vector Machines (SVM), Naive Bayes, k-nearest Neighbor (Knn), K means Clustering, Random Forest, Dimensionsreduktionsalgorithmen, Gradient-Boosting-Algorithmen, neuronale Netze (z. B. Auto-Encoder, Convolutional, Recurrent, Perceptrons, Long/Short Term Memory (LSTM), Hopfield, Boltzmann, Deep Belief, Deconvolutional, Generative Adversarial, Liquid State Machine usw.) und/oder andere Arten von Modellen für maschinelles Lernen.
  • Als ein Beispiel, wie etwa wenn das DNN 104 ein CNN beinhaltet, kann das DNN 104 eine beliebige Anzahl von Schichten beinhalten. Eine oder mehrere der Schichten können eine Eingabeschicht umfassen. Die Eingabeschicht kann Werte enthalten, die den Sensordaten 102 zugeordnet sind (z. B. vor oder nach der Nachverarbeitung). Wenn zum Beispiel die Sensordaten 102 ein Bild sind, kann die Eingabeschicht Werte enthalten, die die Rohpixelwerte des Bildes bzw. der Bilder als Volumen (z. B. eine Breite, eine Höhe und Farbkanäle (z. B. RGB), wie etwa 32 x 32 x 3) darstellen.
  • Eine oder mehrere Schichten können Faltungsschichten beinhalten. Die Faltungsschichten können die Ausgabe von Neuronen berechnen, die mit lokalen Regionen in einer Eingabeschicht verbunden sind, wobei jedes Neuron ein Punktprodukt zwischen seinen Gewichten und einer kleinen Region, mit der sie im Eingabevolumen verbunden sind, berechnet. Ein Ergebnis der Faltungsschichten kann ein anderes Volumen sein, wobei eine der Abmessungen auf der Anzahl der angewendeten Filter basiert (z. B. der Breite, Höhe und Anzahl der Filter, wie etwa 32 x 32 x 12, wenn 12 die Anzahl der Filter wäre).
  • Eine oder mehrere Schichten können Entfaltungsschichten (oder transponierte Faltungsschichten) umfassen. Ein Ergebnis der Entfaltungsschichten kann beispielsweise ein anderes Volumen mit einer höheren Dimensionalität als der Eingabedimensionalität von Daten sein, die an der Entfaltungsschicht empfangen werden.
  • Eine oder mehrere der Schichten können eine Schicht mit gleichgerichteter linearer Einheit (rectified linear unit - ReLU) beinhalten. Die ReLU-Schicht(en) können eine elementweise Aktivierungsfunktion anwenden, wie etwa das Maximum (0, x), mit beispielsweise einer Schwellenwertbildung bei null. Das resultierende Volumen einer ReLU-Schicht kann gleich dem Volumen der Eingabe der ReLU-Schicht sein.
  • Eine oder mehrere der Schichten können eine Pooling-Schicht beinhalten. Die Pooling-Schicht kann eine Downsampling-Operation entlang der räumlichen Abmessungen (z. B. der Höhe und Breite) durchführen, was zu einem kleineren Volumen als die Eingabe der Pooling-Schicht (z. B. 16 x 16 x 12 von dem 32 x 32 x 12 Zoll-Eingangsvolumen).
  • Eine oder mehrere der Schichten können eine oder mehrere vollständig verbundene Schicht(en) umfassen. Jedes Neuron in der/den vollständig verbundenen Schicht(en) kann mit jedem der Neuronen im vorherigen Volumen verbunden sein. Die vollständig verbundene Schicht kann Klassenbewertungen berechnen und das resultierende Volumen kann 1 x 1 x Anzahl von Klassen sein. In einigen Beispielen kann das CNN eine/mehrere vollständig verbundene(n) Schicht(en) beinhalten, sodass die Ausgabe einer oder mehrerer der Schichten des CNN als Eingabe an eine/mehrere vollständig verbundene(n) Schicht(en) des CNN bereitgestellt werden kann. In einigen Beispielen können ein oder mehrere Faltungsströme durch das/die DNN 104 umgesetzt werden, und einige oder alle der Faltungsströme können (eine) jeweilige vollständig verbundene(n) Schicht(en) umfassen.
  • In einigen nichteinschränkenden Ausführungsformen kann/können das/die DNN 104 eine Reihe von Faltungs- und Max-Pooling-Schichten beinhalten, um die Bildmerkmalsextraktion zu erleichtern, gefolgt von mehrskaligen dilatierten Faltungs- und Upsampling-Schichten, um die globale Kontextmerkmalsextraktion zu erleichtern.
  • Obwohl hierin Eingabeschichten, Faltungsschichten, Pooling-Schichten, ReLU-Schichten und vollständig verbundene Schichten in Bezug auf das/die DNN 104 erörtert werden, soll dies nicht einschränkend sein. Zum Beispiel können zusätzliche oder alternative Schichten in dem/den DNN 104 verwendet werden, wie etwa Normalisierungsschichten, SoftMax-Schichten und/oder andere Schichttypen.
  • In Ausführungsformen, bei denen das/die DNN 104 ein CNN umfasst, können je nach Ausführungsform unterschiedliche Reihenfolgen und Anzahlen der Schichten des CNN verwendet werden. Mit anderen Worten, die Reihenfolge und Anzahl der Schichten des DNN 104 ist nicht auf eine Architektur beschränkt.
  • Außerdem können einige der Schichten Parameter (z. B. Gewichte und/oder Vorspannungen) enthalten, wie etwa die Faltungsschichten und die vollständig verbundenen Schichten, während andere dies nicht können, wie etwa die ReLU-Schichten und Pooling-Schichten. In einigen Beispielen können die Parameter von dem/den DNN 104 während des Trainings gelernt werden. Ferner können einige der Schichten zusätzliche Hyperparameter (z. B. Lernrate, Schrittlänge, Epochen usw.) beinhalten, wie etwa die Faltungsschichten, die vollständig verbundenen Schichten und die Pooling-Schichten, während andere Schichten dies nicht können, wie etwa die ReLU-Schichten.
  • Die Parameter und Hyperparameter sind nicht beschränkt und können je nach Ausführungsform unterschiedlich sein.
  • Die Ausgaben 106 können unter Verwendung des Dekodierers 602 dekodiert werden, um die Kontrollpunkte 118 zu bestimmen. Zum Beispiel kann jedes Pixel, das als positiv (oder innerhalb eines Radius einer Kurve) von der/den Binärmaske(n) 108 klassifiziert wird, als Kandidatenpixel (z. B. für 2D-Progrnosen) oder Punkt (z. B. für 3D-Prognosen) betrachtet werden. Die entsprechenden Werte für dasselbe Pixel in der/den Abstandsregressionsmaske(n) 110 und der/den Bit-Klassifikationsmaske(n) 112 können als die Eigenschaften für einen Kurvenkandidaten (z. B. einen Bezierkurvenkandidaten) verwendet werden. Zum Beispiel können für ein Pixel der Binärmaske, das ein positives Pixel ist (z. B. ein weißes Pixel oder ein Pixel, das als innerhalb des Radius einer Kurve identifiziert wurde), die x-Abstandswerte von einem oder mehreren (z. B. allen) der x-Achsen-Abstandsregressionsmasken 110 und die y-Abstandswerte von einer oder mehreren (z. B. allen) der y-Achsen-Abstandsregressionsmasken 110 verwendet werden, um Kandidaten-Kontrollpunktpositionen zu bestimmen. Dieser Prozess kann für jedes der Kandidatenpixel wiederholt werden. Letztlich kann es für jeden in einem Bild dargestellten Orientierungspunkt zahlreiche überlappende oder ähnliche Kontrollpunkte und Kurven geben, wie in 8A veranschaulicht. Zum Beispiel kann es für einen einzelnen Orientierungspunkt - z. B. eine Fahrspurlinie - mehrere Sätze von Kontrollpunkten 118 geben.
  • Die Kurvenanpassungseinrichtung 116 kann jeden Satz von Kontrollpunkten 118 verwenden, um eine Kurvenanpassungsoperation auszuführen, um die Kurven zu generieren (z. B. Bezierkurven).
  • Aufgrund der Möglichkeit, dass mehrere Kurven für denselben Orientierungspunkt generiert werden, können verschiedene Nachverarbeitungsoperationen unter Verwendung des Postprozessors 604 ausgeführt werden, um endgültige Kurven zur Verwendung durch das Fahrzeug 1100 zu bestimmen - z. B. durch einen Softwarestack (oder Antrieb-Stack) 608 für autonomes Fahren. Zum Beispiel kann Clustering durch den Postprozessor 604 unter Verwendung eines beliebigen Clustering-Algorithmustyps ausgeführt werden. In einer nichteinschränkenden Ausführungsform kann ein Algorithmus für Density-based Spatial Clustering of Applications with Noise (DBSCAN) für die Kurvenkandidaten ausgeführt werden, während in einer anderen nichteinschränkenden Ausführungsform ein Probabilistic-Voting-Algorithmus verwendet werden kann. In jedem Beispiel kann eine Ähnlichkeitsfunktion innerhalb des Clustering-Algorithmus verwendet werden. Die Ähnlichkeitsfunktion kann in einigen Ausführungsformen eine Integralverlust-Ähnlichkeitsfunktion beinhalten. Zum Beispiel kann die nachstehende Gleichung (7) ein Beispiel der Integralverlust-Ähnlichkeitsfunktion darstellen. 0 1 P 1 ( t ) P 2 ( t ) 2 2 d t = 1 7 ( a 1 a 2 ) 2 + 1 6 [ 2 ( a 1 a 2 ) ( b 1 b 2 ) ]            + 1 5 [ ( b 1 b 2 ) 2 + 2 ( a 1 a 2 ) ( c 1 c 2 ) ]            + 1 4 [ 2 ( a 1 a 2 ) ( d 1 d 2 ) + 2 ( b 1 b 2 ) ( c 1 c 2 ) ]            + 1 3 [ ( c 1 c 2 ) 2 + 2 ( b 1 b 2 ) ( d 1 d 2 ) ]            + 1 2 [ 2 ( c 1 c 2 ) ( d 1 d 2 ) ] + ( d 1 d 2 ) 2
    Figure DE112020000413T5_0007
  • In Gleichung (7) sind P1 und P2 Punkte auf zwei (Bezier-)Kurven, die verglichen werden, t ist ein Parameter der Kurven, der sich von 0 nach 1 bewegt, a1 und a2 sind kubische Koeffizienten der ersten bzw. zweiten Kurve, b1 und b2 quadratische Koeffizienten der ersten bzw. zweiten Kurve sind, c1 und c2 sind lineare Koeffizienten der ersten bzw. zweiten Kurve und d1 und d2 sind Polynom-Koeffizienten der ersten bzw. zweiten Kurve. Somit kann P1(t) = a1*t3 + b1*t2 + c1*t + d1 (0<=t<=1) und P2(t) = a2*t3 + b2*t2 + c2*t + d2 (0< = t < = 1) kann jeweils der Formel der Punkte auf den beiden Bezierkurven entsprechen. Nach dem Clustering sollte für jedes Orientierungspunktmerkmal eine einzelne Kurve vorhanden sein. In einigen Fällen kann es jedoch immer noch zwei oder mehr Kurven für eines oder mehrere der Orientierungspunktmerkmale geben. In solchen Beispielen kann eine andere Nachbearbeitungstechnik zum Entfernen von Duplikaten durch den Postprozessor 604 ausgeführt werden. Zum Beispiel können Kurven mit anderen Kurven verglichen werden, die nahe beieinander liegen (z. B. innerhalb eines gewissen Schwellenabstands voneinander), und die Kurve mit geringerer Konfidenz kann entfernt werden. Insofern kann jede der Kurven basierend auf den Prognosen des DNN 104 und/oder der Clusterbildung eine ihr zugeordnete Konfidenz aufweisen, und die Kurve mit der niedrigsten Konfidenz kann entfernt werden.
  • Als Beispiel und mit Bezug auf 8A können die dekodierten Ausgaben 106 des/der DNN 104 in der Visualisierung 800A dargestellt werden. Wie veranschaulicht, kann eine Vielzahl von Kandidatenkurven 802 für jeden Typ von Orientierungspunkt erzeugt werden - z. B. Fahrspurlinien oder Straßenbegrenzungslinien in der Abbildung von 8A. Insofern kann eine Nachbearbeitung ausgeführt werden, um Endkurven 804 zu erzeugen, die eine Endkurve 804 pro Orientierungspunktmerkmal beinhalten. Beispielsweise können die Kandidatenkurven 802A einer Nachbearbeitung unterzogen werden, um die endgültige Kurve 804A zu erzeugen, die Kandidatenkurven 802B können einer Nachbearbeitung unterzogen werden, um die endgültige Kurve 804B zu generieren, und so weiter. Diese endgültigen Kurven 804 können Orientierungspunkten 606 zugeordnet sein, sodass Standort, Ausrichtung, Stellung und/oder andere Informationen über die Orientierungspunkte bekannt sein können.
  • Unter Bezugnahme auf 7 handelt es sich bei 7 um ein Datenflussdiagramm, das einen beispielhaften Prozess 700 zum Dekodieren und Nachverarbeiten von Ausgaben eines DNN 104 zur Erkennung von Orientierungspunkten gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Zum Beispiel kann der Prozess 700 einen End-to-End-(E2E)-Prozess zur Erkennung von Orientierungspunkten beinhalten. Verschiedene Klassen von Orientierungspunkten 606 können zusammen verwendet werden, um endgültige Informationen zu bestimmen, wie etwa Fahrspurerkennung, Kreuzungserkennung, Straßenmarkierungserkennung und so weiter. Um durchgezogene/gestrichelte Linien (oder Fahrspurlinien) zu bestimmen, können die Ausgaben 106 dekodiert werden, um die Kandidatenkurven zu generieren, die Kandidatenkurven können geclustert werden, um Endkurven zu generieren (z. B. um eine Fahrspurmarkierungsausgabe zu füllen), und wenn die letzte Kurve nahe an einer anderen endgültigen Kurve liegt, kann eine Duplizierungsentfernung durchgeführt werden, um zu einer Erkennung einer durchgezogenen/gestrichelten Linie (oder einer Fahrspurlinie) zu führen. Ein ähnlicher Prozess kann für Straßenbegrenzungslinien ausgeführt werden, und die Kombination der Fahrspurlinien und Straßenbegrenzungslinien kann verwendet werden, um jede der Fahrspuren der Fahroberfläche zu identifizieren - z. B. um einen Fahrspurgraphen zu erzeugen. Als weiteres Beispiel können ähnliche Prozesse für Kreuzungen oder überquerende Kreuzungen (z. B. Zebrastreifen, Fußgängerwege usw.), Masten oder Schilder und/oder Text oder andere Formen, die unter Verwendung des/der DNN 104 identifiziert werden, ausgeführt werden. Diese Ausgaben - z. B. Kreuzungserkennung unter Verwendung von Kreuzungslinien, Kreuzungserkennung unter Verwendung von Masten oder Straßenschildern und Straßenmarkierungserkennung - können verwendet werden, um Standorte, Strukturen und Stellungen von Kreuzungen zu bestimmen und/oder Straßenmarkierungsinformationen zu bestimmen. Selbst wenn separate Informationsklassen von dem/den DNN 104 berechnet werden, können eine oder mehrere Klassen von erkannten Kurven verwendet werden, um eine endgültige Ausgabe zu bestimmen - z. B. Fahrspurgraph, Kreuzungsstruktur usw. - , die durch das Fahrzeug 1100 verwendet werden, wie etwa durch den Antrieb-Stack 608.
  • Unter erneuter Bezugnahme auf 1 können die Orientierungspunkte 606 beliebige Typen von Orientierungspunkten beinhalten, wie beispielsweise, ohne darauf beschränkt zu sein, Straßenmarkierungen, Fahrspurlinien, Straßenbegrenzungslinien, Kreuzungslinien, Fußgängerwege, Radweglinien, Text, Masten, Bäume, Lichtmasten oder Schilder. Wie hierin beschrieben, können die verschiedenen Klassen eine beliebige Anzahl von Unterklassen beinhalten, zu deren Prognose die DNN 104 trainiert ist/sind. Als Beispiele für Orientierungspunkte 606 beinhaltet 9A eine Visualisierung 900A von Kurven, die an Fahrspurlinien angepasst sind, 9B beinhaltet eine Visualisierung 900B von Kurven, die an Straßenbegrenzungslinien angepasst sind, 9C beinhaltet eine Visualisierung 900C von Kurven, die an Kreuzungslinien angepasst sind, und 9D beinhaltet eine Visualisierung von Kurven, die an Masten und Schilder angepasst sind.
  • Unter Bezugnahme auf 10 beinhaltet jeder Block des hierin beschriebenen Verfahrens 1000 einen Rechenprozess, der unter Verwendung einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen durch einen Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren 1000 kann
    auch als computerverwendbare Anweisungen ausgeführt sein, die auf Computerspeichermedien gespeichert sind. Das Verfahren 1000 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. Außerdem wird das Verfahren 1000 beispielhaft mit Bezug auf den Prozess 600 aus 6 und das Fahrzeug 1100 AUS 11A-11D beschrieben. Dieses Verfahren 1000 kann jedoch zusätzlich oder alternativ durch einen beliebigen Prozess und innerhalb eines beliebigen Systems oder einer beliebigen Kombination von Prozessen und Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hierin beschriebenen.
  • 10 ist ein Ablaufdiagramm, das ein Verfahren 1000 zur Erkennung von Orientierungspunkten unter Verwendung eines DNN gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt. Das Verfahren 1000 beinhaltet bei Block B1002 Anwenden von Sensordaten, die ein Bild eines sensorischen Felds eines Sensors einer Maschine darstellen, auf ein neuronales Netz. Zum Beispiel kann eine Instanz der Sensordaten 102 auf das/die DNN 104 angewendet werden.
  • Das Verfahren 1000 beinhaltet bei Block B1004 Berechnen, unter Verwendung des neuronalen Netzes und zumindest teilweise auf Grundlage der Sensordaten, von ersten Daten, die Pixel des Bildes innerhalb eines Radius von zumindest einer Kurve von einer oder mehreren Kurven, die in dem Bild identifiziert sind, und von zweiten Daten, die Abstände zu Kontrollpunkten der einen oder mehreren Kurven angeben. Zum Beispiel können das/die DNN 104 die Binärmaske(n) 108 und die Abstandsregressionsmaske(n) 110 zumindest teilweise auf Grundlage der Verarbeitung der Instanz der Sensordaten 102 berechnen.
  • Das Verfahren 1000 beinhaltet bei Block B1006 Dekodieren der ersten Daten und der zweiten Daten, um Positionen der Kontrollpunkte der einen oder mehreren Kurven zu bestimmen. Zum Beispiel können die Binärmaske(n) 108 und die Abstandsregressionsmaske(n) 110 unter Verwendung des Dekodierers 602 dekodiert werden, um Positionen - z. B. im 2D-Bildraum oder 3D-Welt-Raum - der Kontrollpunkte 118 zu bestimmen.
  • Das Verfahren 1000 beinhaltet bei Block B1008 Erzeugen der einen oder mehreren Kurven unter Verwendung eines Kurvenanpassungsalgorithmus und zumindest teilweise auf Grundlage der Positionen der Kontrollpunkte. Zum Beispiel kann die Kurvenanpassungseinrichtung 116 die Kontrollpunkte 118 verwenden, um die Form der Kurven zu bestimmen, die Orientierungspunkten in der Umgebung entsprechen.
  • Das Verfahren 1000 beinhaltet bei Block B1010 Durchführen einer oder mehrerer Operationen durch die Maschine zumindest teilweise auf Grundlage der einen oder mehreren Kurven. Zum Beispiel kann das Fahrzeug 1000 die Kurven (und/oder die diesen entsprechenden semantischen Informationen) verwenden, um eine oder mehrere Operationen durchzuführen, wie etwa Weltmodellverwaltung, Kartierung, Planung, Steuerung usw.
  • Beispielhaftes autonomes Fahrzeug
  • 11A ist eine Veranschaulichung eines beispielhaften autonomen Fahrzeugs 1100 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das autonome Fahrzeug 1100 (hier alternativ als „Fahrzeug 1100“ bezeichnet) kann ohne Einschränkung ein Personenfahrzeug, wie etwa ein Auto, einen Lastwagen, einen Bus, ein Ersthelferfahrzeug, einen Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, ein Feuerwehrauto, ein Polizeifahrzeug, ein Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne und/oder ein anderer Fahrzeugtyp (z. B. unbemannt und/oder mit einem oder mehreren Fahrgästen) beinhalten. Autonome Fahrzeuge werden im Allgemeinen in Bezug auf Automatisierungsstufen beschrieben, definiert von der National Highway Traffic Safety Administration (NHTSA), einer Abteilung des US-Verkehrsministeriums, und der Society of Automotive Engineers (SAE) in „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles" (Norm Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Norm Nr. J3016-201609, veröffentlicht am 30. September 2016, und frühere und zukünftige Versionen dieser Norm). Das Fahrzeug 1100 kann gemäß einer oder mehreren von Stufe 3 bis Stufe 5 der autonomen Fahrstufen funktionsfähig sein. Zum Beispiel kann das Fahrzeug 1100 je nach Ausführungsform zur bedingten Automatisierung (Stufe 3), Hochautomatisierung (Stufe 4) und/oder Vollautomatisierung (Stufe 5) fähig sein.
  • Das Fahrzeug 1100 kann Komponenten beinhalten, wie etwa ein Chassis, eine Fahrzeugkarosserie, Räder (z. B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs. Das Fahrzeug 1100 kann ein Antriebssystem 1150 beinhalten, wie etwa einen Verbrennungsmotor, ein Hybrid-Elektrokraftwerk, einen vollelektrischen Motor und/oder einen anderen Antriebssystemtyp. Das Antriebssystem 1150 kann mit einem Antriebsstrang des Fahrzeugs 1100 verbunden sein, der ein Getriebe beinhalten kann, um den Antrieb des Fahrzeugs 1100 zu ermöglichen. Das Antriebssystem 1150 kann als Reaktion auf den Empfang von Signalen von der Drossel/dem Gaspedal 1152 gesteuert werden.
  • Ein Lenksystem 1154, das ein Lenkrad beinhalten kann, kann verwendet werden, um das Fahrzeug 1100 (z. B. entlang eines gewünschten Pfads oder einer gewünschten Route) zu lenken, wenn das Antriebssystem 1150 in Betrieb ist (z. B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 1154 kann Signale von einem Lenkaktor 1156 empfangen. Das Lenkrad kann bei einer vollständigen Automatisierungsfunktionalität (Stufe 5) optional sein.
  • Das Bremssensorsystem 1146 kann verwendet werden, um die Fahrzeugbremsen als Reaktion auf den Empfang von Signalen von den Bremsaktoren 1148 und/oder Bremssensoren zu betätigen.
  • Die Steuerung(en) 1136, die ein oder mehrere System-on-Chips (SoCs) 1104 ( 11C) und/oder GPU(s) umfassen können, können Signale (die z. B. Befehle darstellen) einer oder mehreren Komponenten und/oder Systemen des Fahrzeugs 1100 zuführen. Zum Beispiel können die Steuerung(en) Signale senden, um die Fahrzeugbremsen über einen oder mehrere Bremsaktoren 1148 zu betätigen, um das Lenksystem 1154 über einen oder mehrere Lenkaktoren 1156 zu betreiben, um das Antriebssystem 1150 über eine oder mehrere Drosseln/Beschleuniger 1152 zu betreiben. Die Steuerung(en) 1136 können eine oder mehrere integrierte (z. B. integrierte) Rechenvorrichtungen (z. B. Supercomputer) umfassen, die Sensorsignale verarbeiten und Betriebsbefehle (z. B. Signale, die Befehle darstellen) ausgeben, um autonomes Fahren zu ermöglichen und/oder zu unterstützen menschlichen Fahrers beim Fahren des Fahrzeugs 1100. Die Steuerung(en) 1136 können eine erste Steuerung 1136 für autonome Fahrfunktionen, eine zweite Steuerung 1136 für funktionale Sicherheitsfunktionen, eine dritte Steuerung 1136 für Funktionen künstlicher Intelligenz (z. B. Computervision), eine vierte Steuerung 1136 für Infotainment-Funktionalität, eine fünfte Steuerung 1136 für Redundanz unter Notfallbedingungen und/oder andere Steuerungen beinhalten. In einigen Beispielen kann eine einzelne Steuerung 1136 zwei oder mehr der obigen Funktionalitäten handhaben, zwei oder mehr Steuerungen 1136 können eine einzelne Funktionalität handhaben und/oder eine beliebige Kombination davon.
  • Die Steuerung(en) 1136 können die Signale zum Steuern einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 1100 als Reaktion auf von einem oder mehreren Sensoren (z. B. Sensoreingaben) empfangene Sensordaten bereitstellen. Die Sensordaten können zum Beispiel und ohne Einschränkung von einem/von globalen Navigationssatellitensystem-Sensor(en) 1158 (z. B. globalen Positionierungssystemsensor(en)), RADAR-Sensor(en) 1160, Ultraschallsensor(en) 1162, LIDAR-Sensor(en) 1164, Sensoren von Trägheitsmesseinheiten (IMU) 1166 (z. B. Beschleunigungsmesser, Gyroskop(e), Magnetkompass(e), Magnetometer usw.), Mikrofon(en) 1196, Stereokamera(s) 1168, Weitsichtkamera(s) 1170 (z. B. Fischaugenkameras), Infrarotkamera(s) 1172, Surround-Kamera(s) 1174 (z.B. 360-Grad-Kameras), Fernbereich- und/oder Mittelbereichskamera(s) 1198, Geschwindigkeitssensor(en) 1144 (z. B. zum Messen der Geschwindigkeit des Fahrzeugs 1100), Vibrationssensor(en) 1142, Lenksensor(en) 1140, Bremssensor(en) (z. B. als Teil des Bremssensorsystems 1146) und/oder andere Sensortypen empfangen werden.
  • Eine oder mehrere der Steuerungen 1136 können Eingaben (z. B. durch Eingabedaten dargestellt) von einem Zentralanzeigegerät 1132 des Fahrzeugs 1100 empfangen und Ausgaben (z. B. durch Ausgabedaten, Anzeigedaten usw. dargestellt) über eine Mensch-Maschine-Schnittstelle- (MMS-) Anzeige 1134, eine akustische Anzeige, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 1100 bereitstellen. Die Ausgaben können Informationen wie etwa Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. die HD-Karte 1122 aus 11C), Standortdaten (z. B. den Standort des Fahrzeugs 1100, wie etwa auf einer Karte), Richtung, Standort anderer Fahrzeuge (z. B. ein Belegungsraster), Informationen über Objekte und Status von Objekten, wie er von der/den Steuerung(en) 1136 wahrgenommen wird, usw. beinhalten. Zum Beispiel kann die MMS-Anzeige 1134 Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. ein Straßenschild, ein Warnschild, ein Ampelwechsel usw.) und/oder Informationen über Fahrmanöver, die das Fahrzeug ausgeführt hat, ausführt oder ausführen wird (z. B. jetzt die Spur wechseln, in zwei Meilen die Ausfahrt 34B nehmen usw.) anzeigen.
  • Das Fahrzeug 1100 beinhaltet ferner eine Netzwerkschnittstelle 1124, die eine oder mehrere drahtlose Antenne(n) 1126 und/oder Modem(s) verwenden kann, um über ein oder mehrere Netzwerke zu kommunizieren. Zum Beispiel kann die Netzwerkschnittstelle 1124 in der Lage sein, über LTE, WCDMA, UMTS, GSM, CDMA2000 usw. zu kommunizieren. Die drahtlose(n) Antenne(n) 1126 können auch die Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeugen, Mobilgeräten usw.) unter Verwendung von lokalen Netzwerken wie Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw. und/oder energiearmen Weitverkehrsnetzen (LPWANs), wie LoRaWAN, SigFox usw. ermöglichen.
  • 11B ist ein Beispiel für Kamerastandorte und Sichtfelder für das beispielhafte autonome Fahrzeug 1100 aus 11A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und die jeweiligen Sichtfelder sind eine beispielhafte Ausführungsform und sollen nicht einschränkend sein. Zum Beispiel können zusätzliche und/oder alternative Kameras beinhaltet sein und/oder die Kameras können sich an unterschiedlichen Stellen des Fahrzeugs 1100 befinden.
  • Die Kameratypen für die Kameras können Digitalkameras beinhalten, die zur Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 1100 angepasst werden können. Die Kamera(s) kann/können auf dem Automotive Safety Integrity Level (ASIL) B und/oder auf einem anderen ASIL betrieben werden. Die Kameratypen können je nach Ausführungsform eine beliebige Bilderfassungsrate aufweisen, wie beispielsweise 60 Bilder pro Sekunde (fps), 120 fps, 240 fps usw. Die Kameras können in der Lage sein, Rolling Shutters, Global Shutters, eine andere Art von Blendenverschlüssen oder eine Kombination davon zu verwenden. In einigen Beispielen kann das Farbfilterarray ein Red Clear Clear Clear (RCCC)-Farbfilterarray, ein Red Clear Clear Blue (RCCB)-Farbfilterarray, ein Red Blue Green Clear (RBGC)-Farbfilterarray, eine Foveon X3-Farbfilterarray, ein Bayer-Sensor-(RGGB)-Farbfilterarray, ein Monochromsensor-Farbfilterarray und/oder eine andere Art von Farbfilterarray beinhalten. In einigen Ausführungsformen können klare Pixelkameras wie Kameras mit einem RCCC, einem RCCB und/oder einem RBGC-Farbfilterarray verwendet werden, um die Lichtempfindlichkeit zu erhöhen.
  • In einigen Beispielen können eine oder mehrere der Kamera(s) verwendet werden, um Funktionen von fortgeschrittenen Fahrerassistenzsystemen (ADAS) auszuführen (z. B. als Teil eines redundanten oder ausfallsicheren Designs). Beispielsweise kann eine Multifunktions-Monokamera installiert werden, um Funktionen wie Spurverlassen-Warnung, Verkehrszeichen-Assistent und intelligente Scheinwerfersteuerung bereitzustellen. Eine oder mehrere der Kameras (z. B. alle Kameras) können gleichzeitig Bilddaten (z. B. Video) aufzeichnen und bereitstellen.
  • Eine oder mehrere der Kameras können in einer Montagebaugruppe montiert werden, beispielsweise einer kundenspezifischen (3D-gedruckten) Baugruppe, um Streulicht und Reflexionen aus dem Inneren des Fahrzeugs (z. B. Windschutzscheibenspiegel), die die Bilddatenerfassungsfähigkeiten der Kamera beeinträchtigen können, zu eliminieren. In Bezug auf Außenspiegelmontagebaugruppen können die Außenspiegelbaugruppen kundenspezifisch 3D-gedruckt werden, sodass die Kameramontageplatte der Form des Außenspiegels entspricht. In einigen Beispielen können die Kamera(s) in den Außenspiegel integriert sein. Bei Seitensichtkameras kann/können die Kamera(s) auch in die vier Säulen an jeder Ecke der Fahrgastzelle integriert werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung vor dem Fahrzeug 1100 umfasst (z. B. nach vorne gerichtete Kameras), können für die Rundumsicht verwendet werden, um nach vorne gerichtete Wege und Hindernisse zu identifizieren und dazu beizutragen, mit Hilfe der einen oder mehrerer Steuerungen 1136 und/oder Steuer-SoCs Informationen, die für das Generieren eines Belegungsrasters und/oder das Bestimmen der bevorzugten Fahrzeugwege kritisch sind, bereitzustellen. Nach vorne 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 vorne gerichtete Kameras können auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich Spurverlassen-Warnungen (Lane Deparature Warnings - „LDW“), Autonomous Cruise Control („ACC“) und/oder andere Funktionen wie etwa Verkehrszeichenerkennung.
  • Eine Vielzahl von Kameras kann in einer nach vorne gerichteten Konfiguration verwendet werden, einschließlich beispielsweise einer monokularen Kameraplattform, die einen CMOS-(komplementären Metalloxid-Halbleiter)-Farbbildgeber umfasst. Ein weiteres Beispiel kann/können (eine) Weitsichtkamera(s) 1170 sein, die verwendet werden können, um Objekte wahrzunehmen, die von der Peripherie in Sicht kommen (z. B. Fußgänger, querender Verkehr oder Fahrräder). Obwohl in 11B nur eine Weitblickkamera veranschaulicht ist, kann eine beliebige Anzahl von Weitblickkameras 1170 an dem Fahrzeug 1100 vorhanden sein. Außerdem können Fernbereichskamera(s) 1198 (z. B. ein Weitblick-Stereokamerapaar) für die tiefenbasierte Objekterkennung verwendet werden, insbesondere für Objekte, für die noch kein neuronales Netz trainiert wurde. Die Fernbereichskamera(s) 1198 können auch zur Objekterkennung und -klassifizierung sowie zur grundlegenden Objektverfolgung verwendet werden.
  • Eine oder mehrere Stereokameras 1168 können auch in einer nach vorne gerichteten Konfiguration beinhaltet sein. Die Stereokamera(s) 1168 können eine integrierte Steuereinheit umfassen, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (FPGA) und einen Mehrkern-Mikroprozessor mit einer integrierten CAN- oder Ethernet-Schnittstelle auf einem einzelnen Chip bereitstellen kann. Eine solche Einheit kann verwendet werden, um eine 3D-Karte der Fahrzeugumgebung zu generieren, einschließlich einer Entfernungsschätzung für alle Punkte im Bild. Eine oder mehrere alternative Stereokamera(s) 1168 können einen oder mehrere kompakte Stereo-Vision-Sensoren umfassen, die zwei Kameralinsen (jeweils eine links und eine rechts) und einen Bildverarbeitungschip umfassen können, der die Entfernung vom Fahrzeug zum Zielobjekt messen kann und die generierten Informationen (z. B. Metadaten) verwenden kann, um die autonomen Notbrems- und Spurverlassen-Warnfunktionen zu aktivieren. Andere Arten von Stereokamera(s) 1168 können zusätzlich zu den hierin beschriebenen oder alternativ dazu verwendet werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung seitlich des Fahrzeugs 1100 beinhaltet (z. B. Seitensichtkameras), können für die Rundumansicht verwendet werden, indem sie Informationen bereitstellen, die zum Erstellen und Aktualisieren des Belegungsrasters sowie zum Generieren von Seitenkollisionswarnungen verwendet werden können. Zum Beispiel können Surround-Kamera(s) 1174 (z. B. vier Surround-Kameras 1174 wie in 11B dargestellt) an dem Fahrzeug 1100 positioniert sein. Die Surround-Kamera(s) 1174 kann/können Weitblickkamera(s) 1170, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder dergleichen beinhalten. Beispielsweise können vier Fischaugenkameras vorne, hinten und an den Seiten des Fahrzeugs positioniert werden. In einer alternativen Anordnung kann das Fahrzeug drei Surround-Kamera(s) 1174 (z. B. links, rechts und hinten) verwenden und kann eine oder mehrere andere Kamera(s) (z. B. eine nach vorne gerichtete Kamera) als vierte Surround-Kamera nutzen.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung hinter dem Fahrzeug 1100 beinhaltet (z. B. Rückfahrkameras) können für Parkassistenz, Rundumsicht, Heckkollisionswarnungen und zum Erstellen und Aktualisieren des Belegungsrasters verwendet werden. Es kann eine Vielzahl von Kameras verwendet werden, einschließlich, aber nicht beschränkt auf Kameras, die auch als nach vorne gerichtete Kamera(s) geeignet sind (z. B. Weitsicht- und/oder Mittelsichtkamera(s) 1198, Stereokamera(s) 1168), Infrarotkamera(s) 1172 usw.), wie hierin beschrieben.
  • 11C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug 1100 aus 11A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es versteht sich, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele angegeben sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Befehle, Gruppierungen von Funktionen usw.) können zusätzlich oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Ferner sind viele der hierin beschriebenen Elemente funktionale Einheiten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und Position umgesetzt werden können. Verschiedene hierin als von Einheiten ausgeführt beschriebene Funktionen können durch Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen durch einen Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt.
  • Jede der Komponenten, Merkmale und Systeme des Fahrzeugs 1100 in 11C sind als über den Bus 1102 verbunden veranschaulicht. Der Bus 1102 kann eine Controller Area Network (CAN)-Datenschnittstelle (die hier alternativ als „CAN-Bus“ bezeichnet wird) beinhalten. Ein CAN kann ein Netzwerk innerhalb des Fahrzeugs 1100 sein, das verwendet wird, um bei der Steuerung verschiedener Merkmale und Funktionen des Fahrzeugs 1100 zu helfen, wie etwa Bremsenbetätigung, Beschleunigung, Bremsung, Lenkung, Scheibenwischer usw. Ein CAN-Bus kann so konfiguriert sein, dass er Dutzende oder sogar Hunderte von Knoten, jeder mit seiner eigenen eindeutigen Kennung (z. B. einer CAN-ID), aufweist. Der CAN-Bus kann gelesen werden, um Lenkradwinkel, Fahrgeschwindigkeit, Motorumdrehungen pro Minute (U/min), Tastenpositionen und/oder andere Fahrzeugstatusanzeigen zu finden. Der CAN-Bus kann ASIL B-konform sein.
  • Obwohl der Bus 1102 hierin als CAN-Bus beschrieben wird, soll dies nicht einschränkend sein. Beispielsweise können zusätzlich oder alternativ zum CAN-Bus FlexRay und/oder Ethernet verwendet werden. Obwohl eine einzelne Linie verwendet wird, um den Bus 1102 darzustellen, soll dies außerdem nicht einschränkend sein. Zum Beispiel kann es eine beliebige Anzahl von Bussen 1102 geben, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Arten von Bussen umfassen können, die ein anderes Protokoll verwenden. In einigen Beispielen können zwei oder mehr Busse 1102 verwendet werden, um unterschiedliche Funktionen auszuführen, und/oder können für Redundanz verwendet werden. Zum Beispiel kann ein erster Bus 1102 für die Kollisionsvermeidungsfunktionalität verwendet werden und ein zweiter Bus 1102 kann für die Betätigungssteuerung verwendet werden. In jedem Beispiel kann jeder Bus 1102 mit einer beliebigen der Komponenten des Fahrzeugs 1100 kommunizieren, und zwei oder mehr Busse 1102 können mit denselben Komponenten kommunizieren. In einigen Beispielen kann jeder SoC 1104, jede Steuerung 1136 und/oder jeder Computer innerhalb des Fahrzeugs Zugriff auf dieselben Eingabedaten haben (z. B. Eingaben von Sensoren des Fahrzeugs 1100) und kann mit einem gemeinsamen Bus verbunden sein, wie z. B. dem CAN-Bus.
  • Das Fahrzeug 1100 kann eine oder mehrere Steuerung(en) 1136 beinhalten, wie zum Beispiel die hierin in Bezug auf 11A beschriebene(n). Die Steuerung(en) 1136 können für eine Vielzahl von Funktionen verwendet werden. Die Steuerung(en) 1136 können mit einer der verschiedenen anderen Komponenten und Systeme des Fahrzeugs 1100 gekoppelt sein und können zur Steuerung des Fahrzeugs 1100, künstlichen Intelligenz des Fahrzeugs 1100, Infotainment für das Fahrzeug 1100 und/oder dergleichen verwendet werden.
  • Das Fahrzeug 1100 kann (ein) System(e) auf einem Chip (SoC) 1104 beinhalten. Das SoC 1104 kann CPU(s) 1106, GPU(s) 1108, Prozessor(en) 1110, Cache(s) 1112, Beschleuniger(n) 1114, Datenspeicher(n) 1116 und/oder andere nicht veranschaulichte Komponenten und Merkmale beinhalten. Das/die SoC 1104 kann/können verwendet werden, um das Fahrzeug 1100 in einer Vielfalt von Plattformen und Systemen zu steuern. Zum Beispiel können das/die SoC 1104 in einem System (z. B. dem System des Fahrzeugs 1100) mit einer HD-Karte 1122 kombiniert werden, die Kartenaktualisierungen und/oder -updates über eine Netzwerkschnittstelle 1124 von einem oder mehreren Servern (z. B. Server 1178 aus 11D) erhalten kann.
  • Die CPU(s) 1106 können einen CPU-Cluster oder einen CPU-Komplex (hier alternativ als „CCPLEX“ bezeichnet) beinhalten. Die CPU(s) 1106 können mehrere Kerne und/oder L2-Caches beinhalten. Beispielsweise können die CPU(s) 1106 in einigen Ausführungsformen acht Kerne in einer kohärenten Multiprozessorkonfiguration beinhalten. In einigen Ausführungsformen können die CPU(s) 1106 vier Dual-Core-Cluster beinhalten, wobei jeder Cluster einen dedizierten L2-Cache (z. B. einen 2 MB L2-Cache) aufweist. Die CPU(s) 1106 (z. B. der CCPLEX) können so konfiguriert sein, dass sie einen gleichzeitigen Clusterbetrieb unterstützen, sodass jede Kombination der Cluster der CPU(s) 1106 zu einem bestimmten Zeitpunkt aktiv sein kann.
  • Die CPU(s) 1106 können Leistungsverwaltungsfähigkeiten implementieren, die eines oder mehrere der folgenden Merkmale umfassen: einzelne Hardwareblöcke können im Leerlauf automatisch getaktet werden, um dynamische Leistung 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 Kerncluster kann unabhängig taktgesteuert sein, wenn alle Kerne taktgesteuert oder leistungsgesteuert sind; und/oder jeder Kerncluster kann unabhängig stromgesteuert sein, wenn alle Kerne stromgesteuert sind. Die CPU(s) 1106 können ferner einen verbesserten Algorithmus zum Verwalten von Energiezuständen implementieren, wobei zulässige Energiezustände und erwartete Aufwachzeiten spezifiziert werden und die Hardware/der Mikrocode den besten Leistungszustand für den Kern, Cluster und CCPLEX bestimmt. Die Verarbeitungskerne können vereinfachte Eintrittssequenzen für den Energiezustand in der Software unterstützen, wobei die Arbeit in den Mikrocode ausgelagert wird.
  • Die GPU(s) 1108 können eine integrierte GPU (die hier alternativ als „iGPU“ bezeichnet wird) beinhalten. Die GPU(s) 1108 können programmierbar sein und können für parallele Arbeitslasten effizient sein. Die GPU(s) 1108 können in einigen Beispielen einen verbesserten Tensor-Befehlssatz verwenden. Die GPU(s) 1108 können einen oder mehrere Streaming-Mikroprozessoren beinhalten, wobei jeder Streaming-Mikroprozessor einen L1-Cache beinhalten kann (z. B. einen L1-Cache mit mindestens 96 KB Speicherkapazität), und zwei oder mehr der Streaming-Mikroprozessoren einen L2-Cache gemeinsam nutzen können (z. B. ein L2-Cache mit einer Speicherkapazität von 512 KB). In einigen Ausführungsformen können die GPU(s) 1108 mindestens acht Streaming-Mikroprozessoren beinhalten. Die GPU(s) 1108 können Rechenanwendungsprogrammierschnittstelle(n) (application programming interface(s) - API(s)) verwenden. Außerdem können die GPU(s) 1108 eine oder mehrere parallele Rechenplattformen und/oder Programmiermodelle (z. B. NVIDIAs CUDA) verwenden.
  • Die GPU(s) 1108 können für die beste Leistung in Automobil- und eingebetteten Anwendungsfällen energieoptimiert sein. Zum Beispiel können die GPU(s) 1108 auf einem Fin-Feldeffekttransistor (FinFET) hergestellt werden. Dies soll jedoch nicht einschränkend sein und die GPU(s) 1108 können unter Verwendung anderer Halbleiterherstellungsverfahren hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Anzahl von Mixed-Precision-Verarbeitungskernen eingliedern, die in mehrere Blöcke unterteilt sind. Beispielsweise und ohne Einschränkung können 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke unterteilt werden. In einem solchen Beispiel können jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei Mixed-Precision-NVIDIA-TENSOR-Kerne für Deep-Learning-Matrix-Arithmetik, ein L0-Befehlscache, ein Warp-Scheduler, eine Dispatch-Einheit und/oder eine 64-KB-Registerdatei zugeteilt werden. Außerdem können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkomma-Datenpfade umfassen, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Rechnen und Adressierungsberechnungen zu ermöglichen. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Scheduling-Fähigkeit beinhalten, um eine feinkörnigere Synchronisation und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten LI-Daten-Cache und eine gemeinsam genutzte Speichereinheit beinhalten, um die Leistung zu verbessern und gleichzeitig die Programmierung zu vereinfachen.
  • Die GPU(s) 1108 können einen Speicher mit hoher Bandbreite (high bandwidth memory - HBM) und/oder ein 16-GB-HBM2-Speichersubsystem umfassen, um in einigen Beispielen Spitzenspeicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich oder alternativ zu dem HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (SGRAM) verwendet werden, wie beispielsweise ein Grafik-Doppeldatenraten-Typ fünf synchroner Direktzugriffsspeicher (GDDR5).
  • Die GPU(s) 1108 können eine einheitliche Speichertechnologie einschließlich Zugriffszählern umfassen, um eine genauere Migration von Speicherseiten zu dem Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz für von Prozessoren gemeinsam genutzte Speicherbereiche verbessert wird. In einigen Beispielen kann die Unterstützung von Adressübersetzungsdiensten (ATS) verwendet werden, um es der/den GPU(s) 1108 zu ermöglichen, direkt auf die Seitentabellen der CPU(s) 1106 zuzugreifen. In solchen Beispielen kann, wenn bei der Speicherverwaltungseinheit (memory management unit - MMU) der GPU(s) 1108 ein Fehler auftritt, eine Adressübersetzungsanforderung an die CPU(s) 1106 übertragen werden. Als Reaktion darauf können die CPU(s) 1106 in ihren Seitentabellen nach dem virtuell-zu-physischen Mapping für die Adresse suchen und die Übersetzung zurück an die GPU(s) 1108 übertragen. Insofern kann die Unified Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 1106 als auch der GPU(s) 1108 ermöglichen, wodurch die Programmierung der GPU(s) 1108 und das Portieren von Anwendungen auf die GPU(s) 1108 vereinfacht wird.
  • Außerdem können die GPU(s) 1108 einen Zugriffszähler beinhalten, der die Zugriffshäufigkeit der GPU(s) 1108 auf Speicher anderer Prozessoren verfolgen kann. Der Zugriffszähler kann dabei helfen, sicherzustellen, dass Speicherseiten in den physischen Speicher des Prozessors verlegt werden, der am häufigsten auf die Seiten zugreift.
  • Das/die SoC 1104 können eine beliebige Anzahl von Cache(s) 1112 beinhalten, einschließlich der hierin beschriebenen. Zum Beispiel kann/können der/die Cache(s) 1112 einen L3-Cache beinhalten, der sowohl für die CPU(s) 1106 als auch die GPU(s) 1108 verfügbar ist (z. B. der sowohl mit der/den CPU(s) 1106 als auch mit der/den GPU(s) 1108 verbunden ist/sind). Der/die Cache(s) 1112 kann/können einen Write-Back-Cache umfassen, der Zustände von Zeilen verfolgen kann, beispielsweise durch Verwendung eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI usw.). Der L3-Cache kann je nach Ausführungsform 4 MB oder mehr beinhalten, obwohl kleinere Cache-Größen verwendet werden können.
  • Das/die SoC 1104 kann/können eine oder mehrere arithmetische Logikeinheit(en) (arithmetic logic unit(s) - ALU(s)) beinhalten, die beim Durchführen einer Verarbeitung in Bezug auf eine der Vielfalt von Aufgaben oder Operationen des Fahrzeugs 1100 - wie etwa die Verarbeitung von DNN - genutzt werden können. Außerdem können die SoC 1104 (eine) Fließkommaeinheit(en) (floating point unit(s) - FPU(s)) oder andere mathematische Coprozessor- oder numerische Coprozessor-Typen beinhalten, um mathematische Operationen innerhalb des Systems durchzuführen. Zum Beispiel kann/können die SoC 104 eine oder mehrere FPUs beinhalten, die als Ausführungseinheiten in (eine) CPU(s) 1106 und/oder GPU(s) 1108 integriert sind.
  • Das/die SoC 1104 kann/können einen oder mehrere Beschleuniger 1114 beinhalten (z. B. Hardwarebeschleuniger, Softwarebeschleuniger oder eine Kombination davon). Zum Beispiel können das/die SoC 1104 einen Hardwarebeschleunigungscluster beinhalten, der optimierte Hardwarebeschleuniger und/oder einen großen On-Chip-Speicher beinhalten kann. Der große On-Chip-Speicher (z. B. 4 MB SRAM) kann es dem Hardwarebeschleunigungscluster ermöglichen, neuronale Netze und andere Berechnungen zu beschleunigen. Der Hardwarebeschleunigungscluster kann verwendet werden, um die GPU(s) 1108 zu ergänzen und einige der Aufgaben der GPU(s) 1108 abzunehmen (z. B. um mehr Zyklen der GPU(s) 1108 zum Ausführen anderer Aufgaben freizugeben). Als Beispiel kann/können der/die Beschleuniger 1114 für gezielte Arbeitslasten (z. B. Wahrnehmung, faltungsneurale Netze (CNN) usw.) verwendet werden, die stabil genug sind, um einer Beschleunigung zugänglich zu sein. Der Begriff „CNN“, wie er hier verwendet wird, kann alle Arten von CNN beinhalten, einschließlich regionenbasierter oder regionaler faltungsneuraler Netze (RCNN) und schnelle RCNNs (z. B. wie sie zur Objekterkennung verwendet werden).
  • Der/die Beschleuniger 1114 (z. B. der Hardwarebeschleunigungs-Cluster) kann/können einen oder mehrere Deep-Learning-Beschleuniger (deep learning accelerator(s) - DLA(s)) beinhalten. Der/die DLA(s) können eine oder mehrere Tensor-Verarbeitungseinheiten (TPUs) umfassen, die dazu konfiguriert sein können, zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferenz bereitzustellen. Die TPUs können Beschleuniger sein, die zum Durchführen von Bildverarbeitungsfunktionen (z. B. für CNN, RCNN usw.) konfiguriert und optimiert sind. Die DLA(s) können ferner für einen bestimmten Satz neuronaler Netztypen und Fließkommaoperationen sowie für Inferenz optimiert werden. 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) können mehrere Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die beispielsweise die Datentypen INT8, INT16 und FP16 sowohl für Merkmale als auch Gewichte sowie Postprozessorfunktionen unterstützt.
  • Der/die DLA(s) kann/können neuronale Netze, insbesondere CNN, schnell und effizient auf verarbeiteten oder unverarbeiteten Daten für eine beliebige einer Vielfalt von Funktionen ausführen, einschließlich zum Beispiel und ohne Einschränkung: ein CNN zur Objektidentifikation und -erkennung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Entfernungsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN für die Erkennung und Identifizierung und Erkennung von Rettungsfahrzeugen unter Verwendung von Daten von Mikrofonen; ein CNN zur Gesichtserkennung und Fahrzeugbesitzeridentifikation unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheits- und/oder schutzbezogene Ereignisse.
  • Der/die DLA(s) kann/können jede Funktion der GPU(s) 1108 ausführen, und unter Verwendung eines Inferenzbeschleunigers kann ein Designer beispielsweise entweder die DLA(s) oder die GPU(s) 1108 für jede Funktion anvisieren. Zum Beispiel kann der Designer die Verarbeitung von CNN und Fließkommaoperationen auf den/die DLA(s) konzentrieren und andere Funktionen der/den GPU(s) 1108 und/oder anderen Beschleunigern 1114 überlassen.
  • Der/die Beschleuniger 1114 (z. B. der Hardwarebeschleunigungs-Cluster) kann/können einen oder mehrere programmierbare Sichtbeschleuniger (programmable vision accelerator - PVA) beinhalten, die hier alternativ als Computersichtbeschleuniger bezeichnet werden können. Die PVA(s) können dazu ausgelegt und konfiguriert sein, Computervisionsalgorithmen für fortschrittliche Fahrerassistenzsysteme (ADAS), autonomes Fahren und/oder Augmented Reality (AR) und/oder Virtual Reality (VR)-Anwendungen zu beschleunigen. Die PVA(s) können ein Gleichgewicht zwischen Leistung und Flexibilität bieten. Zum Beispiel kann/können jede(s) PVA(s) beispielsweise und ohne Einschränkung eine beliebige Anzahl von Computerkernen mit reduziertem Befehlssatz (reduced instruction set computer - RISC), direkten Speicherzugriff (DMA) und/oder eine beliebige Anzahl von Vektorprozessoren beinhalten.
  • Die RISC-Kerne können mit Bildsensoren (z. B. den Bildsensoren einer der hierin beschriebenen Kameras), Bildsignalprozessor(en) und/oder dergleichen interagieren. Jeder der RISC-Kerne kann eine beliebige Speichermenge beinhalten. Die RISC-Kerne können je nach Ausführungsform eines von mehreren Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (RTOS) ausführen. Die RISC-Kerne können unter Verwendung einer oder mehrerer integrierter Schaltungsvorrichtungen, anwendungsspezifischer integrierter Schaltungen (ASICs) und/oder Speichervorrichtungen implementiert werden. Zum Beispiel können die RISC-Kerne einen Befehlscache und/oder einen eng gekoppelten RAM umfassen.
  • Der DMA kann es Komponenten der PVA(s) ermöglichen, unabhängig von der/den CPU(s) 1106 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Merkmalen unterstützen, die verwendet werden, um dem PVA eine Optimierung bereitzustellen, einschließlich, ohne darauf beschränkt zu sein, die Unterstützung mehrdimensionaler Adressierung und/oder zirkulärer Adressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockstufen, vertikale Blockstufen und/oder Tiefenstufen beinhalten können.
  • Die Vektorprozessoren können programmierbare Prozessoren sein, die dafür ausgelegt sein können, effizient und flexibel Programmierungen für Computervision-Algorithmen auszuführen und Signalverarbeitungsfähigkeiten bereitzustellen. In einigen Beispielen kann die PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystempartitionen beinhalten. Der PVA-Kern kann ein Prozessor-Subsystem, DMA-Engine(s) (z. B. zwei DMA-Engines) und/oder andere Peripheriegeräte beinhalten. Das Vektorverarbeitungssubsystem kann als primäre Verarbeitungsmaschine des PVA arbeiten und kann eine Vektorverarbeitungseinheit (VPU), einen Befehlscache und/oder einen Vektorspeicher (z. B. VMEM) umfassen. Ein VPU-Kern kann einen digitalen Signalprozessor beinhalten, wie beispielsweise einen digitalen Signalprozessor mit einem einzigen Befehl, mehreren Daten (SIMD), einem sehr langen Befehlswort (VLIW). Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit verbessern.
  • Jeder der Vektorprozessoren kann einen Befehlscache beinhalten und kann mit einem dedizierten Speicher verbunden sein. Infolgedessen kann in einigen Beispielen jeder der Vektorprozessoren so konfiguriert sein, dass er unabhängig von den anderen Vektorprozessoren ausgeführt wird. In anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA beinhaltet sind, konfiguriert sein, um Datenparallelität zu verwenden. Zum Beispiel ist in einigen Ausführungsformen die Vielzahl von Vektorprozessoren, die in einem einzelnen einzelner PVA beinhaltet ist, denselben Computervision-Algorithmus ausführen, jedoch in unterschiedlichen Regionen eines Bildes. In anderen Beispielen können die in einem bestimmten PVA beinhalteten Vektorprozessoren gleichzeitig verschiedene Computervision-Algorithmen auf demselben Bild ausführen oder sogar verschiedene Algorithmen auf sequentiellen Bildern oder Abschnitten eines Bildes ausführen. Unter anderem kann eine beliebige Anzahl von PVAs in dem Hardwarebeschleunigungscluster beinhaltet sein und eine beliebige Anzahl von Vektorprozessoren kann in jedem der PVAs beinhaltet sein. Außerdem können die PVA(s) einen zusätzlichen Fehlerkorrekturcode-(ECC)-Speicher umfassen, um die Gesamtsystemsicherheit zu verbessern.
  • Der/die Beschleuniger 1114 (z. B. der Hardwarebeschleunigungscluster) können ein chipintegriertes Computervision-Netzwerk und einen SRAM beinhalten, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 1114 bereitzustellen. In einigen Beispielen kann der chipintegrierte Speicher mindestens 4 MB SRAM umfassen, der beispielsweise und ohne Einschränkung aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl der PVA als auch der DLA zugreifen können. Jedes Paar von Speicherblöcken kann eine Advanced Peripheral Bus (APB)-Schnittstelle, eine Konfigurationsschaltung, eine Steuerung und einen Multiplexer beinhalten. Jede Art von Speicher kann 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 bereitstellt. Das Backbone kann ein computerintegriertes Computervision-Netzwerk beinhalten, das den PVA und den DLA mit dem Speicher verbindet (z. B. unter Verwendung des APB).
  • Das chipintegrierte Computervision-Netzwerk kann eine Schnittstelle beinhalten, die vor der Übertragung von Steuersignalen/Adressen/Daten bestimmt, dass sowohl der PVA als auch der DLA bereite und gültige Signale bereitstellen. Eine solche Schnittstelle kann separate Phasen und separate Kanäle zum Übertragen von Steuersignalen/Adressen/Daten sowie Burst-Typ-Kommunikationen für eine kontinuierliche Datenübertragung bereitstellen. Diese Art von Schnittstelle kann den Standards ISO 26262 oder IEC 61508 entsprechen, obwohl auch andere Standards und Protokolle verwendet werden können.
  • In einigen Beispielen kann/können das/die SoC(s) 1104 einen Echtzeit-Raytracing-Hardwarebeschleuniger beinhalten, 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 generieren, zur RADAR-Signalinterpretation, zur Schallausbreitungssynthese und/oder -analyse, zur Simulation von SONAR-Systemen, zur allgemeinen Wellenausbreitungssimulation, zum Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder anderer Funktionen und/oder für andere Zwecke. In einigen Ausführungsformen können eine oder mehrere Tree-Traversal-Units (TTUs) zum Ausführen einer oder mehrerer Raytracing-bezogener Operationen verwendet werden.
  • Der Beschleuniger bzw. die Beschleuniger 1114 (z. B. der Hardwarebeschleunigercluster) haben ein breites Anwendungsspektrum für autonomes Fahren. Der PVA kann ein programmierbarer Sichtbeschleuniger sein, der für wichtige Verarbeitungsstufen in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA passen gut zu algorithmischen Domänen, die eine vorhersagbare Verarbeitung bei geringem Stromverbrauch und geringer Latenz erfordern. Mit anderen Worten, der PVA schneidet bei halbdichten oder dichten regulären Berechnungen gut ab, selbst bei kleinen Datensätzen, die vorhersagbare Laufzeiten mit geringer Latenz und geringem Stromverbrauch benötigen. Im Kontext von Plattformen für autonome Fahrzeuge sind die PVAs daher darauf ausgelegt, klassische Computervision-Algorithmen auszuführen, da sie bei der Objekterkennung effizient sind und mit ganzzahliger Mathematik arbeiten.
  • Beispielsweise wird gemäß einer Ausführungsform der Technologie der PVA verwendet, um Computer-Stereo-Vision durchzuführen. In einigen Beispielen kann ein semiglobaler Matching-basierter Algorithmus verwendet werden, obwohl dies nicht einschränkend sein soll. Viele Anwendungen für autonomes Fahren von Stufe 3-5 erfordern eine Bewegungsschätzung/Stereoanpassung im laufenden Betrieb (z. B. Struktur aus Bewegung, Fußgängererkennung, Spurerkennung usw.). Der PVA kann eine Computer-Stereo-Vision-Funktion an Eingaben von zwei monokularen Kameras ausführen.
  • In einigen Beispielen kann der PVA verwendet werden, um einen dichten optischen Fluss durchzuführen. Entsprechend werden RADAR-Rohdaten verarbeitet (z. B. unter Verwendung einer 4D-Fast-Fourier-Transformation), um verarbeitetes RADAR bereitzustellen. In anderen Beispielen wird der PVA für die Flugzeittiefenverarbeitung verwendet, indem beispielsweise rohe Flugzeitdaten verarbeitet werden, um verarbeitete Flugzeitdaten bereitzustellen.
  • Der DLA kann verwendet werden, um jede Art von Netzwerk laufen zu lassen, um die Kontrolle und Fahrsicherheit zu verbessern, einschließlich beispielsweise eines neuronalen Netzes, das ein Konfidenzmaß für jede Objekterkennung ausgibt. Ein solcher Konfidenzwert kann als Wahrscheinlichkeit interpretiert werden oder als Bereitstellung eines relativen „Gewichts“ jeder Erkennung im Vergleich zu anderen Erkennungen. Dieser Konfidenzwert ermöglicht es dem System, weitere Entscheidungen darüber zu treffen, welche Erkennungen als richtig positive Erkennungen anstatt als falsch positive Erkennungen angesehen werden sollten. Zum Beispiel kann das System einen Schwellenwert für die Konfidenz festlegen und nur die Erkennungen, die den Schwellenwert überschreiten, als richtig positive Erkennungen betrachten. Bei einem automatischen Notbremssystem (AEB) würden falsch positive Erkennungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was offensichtlich unerwünscht ist. Daher sollten nur die sichersten Erkennungen als Auslöser für AEB betrachtet werden. Der DLA kann ein neuronales Netz zum Regressieren des Vertrauenswerts betreiben. Das neuronale Netz kann als Eingabe mindestens eine Teilmenge von Parametern nehmen, wie zum Beispiel Begrenzungskastenabmessungen, eine (z. B. von einem anderen Teilsystem) erhaltene Masseebenenschätzung, eine Ausgabe des Sensors der Trägheitsmesseinheit (IMU) 1166, die mit der Ausrichtung des Fahrzeugs 1100 korreliert, Abstand, 3D-Standortschätzungen des Objekts, die unter anderem von dem neuronalen Netz und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 1164 oder RADAR-Sensor(en) 1160) erhalten wurden.
  • Das/die SoC 1104 kann/können einen oder mehrere Datenspeicher 1116 (z. B. Speicher) beinhalten. Der/die Datenspeicher 1116 kann/können chipintegrierte Speicher des/der SoC 1104 sein, die neuronale Netze speichern können, die auf der GPU und/oder dem DLA ausgeführt werden sollen. In einigen Beispielen kann/können der/die Datenspeicher 1116 groß genug sein, um mehrere Instanzen neuronaler Netze für Redundanz und Sicherheit zu speichern. Der/die Datenspeicher 1112 kann/können L2- oder L3-Cache(s) 1112 umfassen. Die Bezugnahme auf den/die Datenspeicher 1116 kann eine Bezugnahme auf den Speicher umfassen, der dem PVA, DLA und/oder anderen Beschleunigern 1114 zugeordnet ist, wie hierin beschrieben.
  • Das/die SoC 1104 kann/können einen oder mehrere Prozessor(en) 1110 (z. B. eingebettete Prozessoren) umfassen. Der/die Prozessor(en) 1110 kann/können einen Start- und Leistungsmanagement-Prozessor umfassen, der ein dedizierter Prozessor und ein Subsystem sein kann, um Startleistungs- und Managementfunktionen und die damit verbundene Sicherheitsdurchsetzung zu handhaben. Der Start- und Leistungsmanagement-Prozessor kann ein Teil des/der SoC 1104 Startsequenz sein und kann Laufzeit-Leistungsmanagementdienste bereitstellen. Der Startleistungs- und Managementprozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen mit niedrigem Leistungszustand, Verwaltung von Thermik- und Temperatursensoren des/der SoC 1104 und/oder Verwaltung der Leistungszustände des/der SoC 1104 bereitstellen. Jeder Temperatursensor kann als Ringoszillator umgesetzt sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und der/die SoC 1104 können die Ringoszillatoren verwenden, um Temperaturen der CPU(s) 1106, GPU(s) 1108 und/oder Gaspedal(e) 1114 zu erfassen. Wenn bestimmt wird, dass die Temperaturen einen Schwellenwert überschreiten, kann der Start- und Leistungsmanagementprozessor in eine Temperaturfehlerroutine eintreten und das/die SoC 1104 in einen niedrigeren Energiezustand versetzen und/oder das Fahrzeug 1100 in einen Zu-sicherem-Halt-chauffieren-Modus versetzen (z. B. das Fahrzeug 1100 zu einem sicheren Halt bringen).
  • Der/die Prozessor(en) 1110 kann/können ferner einen Satz eingebetteter Prozessoren beinhalten, die als Audioverarbeitungs-Engine dienen können. Die Audioverarbeitungs-Engine kann ein Audio-Subsystem sein, das volle Hardwareunterstützung für Mehrkanal-Audio über mehrere Schnittstellen und eine breite und flexible Auswahl an Audio-E/A-Schnittstellen ermöglicht. In einigen Beispielen ist die Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • Der/die Prozessor(en) 1110 kann/können ferner eine Always-on-Prozessor-Engine umfassen, die notwendige Hardware-Merkmale bereitstellen kann, um eine Sensorverwaltung mit geringem Stromverbrauch und Aufweck-Anwendungsfällen zu aktivieren. Die Always-On-Prozessor-Engine kann einen Prozessorkern, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Zeitgeber und Interrupt Controller), verschiedene E/A-Steuerung-Peripheriegeräte und Routing-Logik umfassen.
  • Der/die Prozessor(en) 1110 kann/können ferner eine Sicherheitscluster-Engine beinhalten, die ein dediziertes Prozessor-Subsystem umfasst, um das Sicherheitsmanagement für Automobilanwendungen zu handhaben. Die Sicherheitscluster-Engine kann zwei oder mehr Prozessorkerne, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Zeitgeber, einen Interrupt Controller usw.) und/oder Routing-Logik beinhalten. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Lockstep-Modus arbeiten und als einzelner Kern mit einer Vergleichslogik fungieren, um jegliche Unterschiede zwischen ihren Operationen zu erkennen.
  • Der/die Prozessor(en) 1110 kann/können ferner eine Echtzeit-Kamera-Engine beinhalten, die ein dediziertes Prozessor-Subsystem zum Handhaben des Echtzeit-Kameramanagement beinhalten kann.
  • Der/die Prozessor(en) 1110 kann/können ferner einen Signalprozessor mit hohem Dynamikbereich umfassen, der einen Bildsignalprozessor beinhalten kann, der eine Hardware-Engine ist, die Teil der Kameraverarbeitungspipeline ist.
  • Der/die Prozessor(en) 1110 kann/können einen Videobildcompositor beinhalten, der ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor umgesetzt), der Video-Nachverarbeitungsfunktionen umsetzt, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Player-Fenster zu erzeugen. Der Videobildcompositor kann eine Linsenverzerrungskorrektur an Weitsichtkamera(s) 1170, Surround-Kamera(s) 1174 und/oder an fahrgastzelleninternen Überwachungskamerasensoren durchführen. Der Überwachungskamerasensor in der Fahrgastzelle wird vorzugsweise von einem neuronalen Netz überwacht, das auf einer anderen Instanz des erweiterten SoC läuft und dazu konfiguriert ist, Ereignisse in der Fahrgastzelle zu identifizieren und entsprechend zu reagieren. Ein System in der Fahrgastzelle kann Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Telefonanruf zu tätigen, E-Mails zu diktieren, das Ziel des Fahrzeugs zu ändern, das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachaktiviertes Websurfen bereitzustellen. Bestimmte Funktionen stehen dem Fahrer nur im autonomen Modus des Fahrzeugs zur Verfügung und sind ansonsten deaktiviert.
  • Der Videobildcompositor kann eine verbesserte zeitliche Rauschunterdrückung sowohl für die räumliche als auch für die zeitliche Rauschunterdrückung beinhalten. Wenn beispielsweise in einem Video eine Bewegung auftritt, gewichtet die Rauschunterdrückung räumliche Informationen angemessen, wodurch die Gewichtung der von benachbarten Frames bereitgestellten Informationen verringert wird. Wenn ein Bild oder ein Teil eines Bildes keine Bewegung enthält, kann die vom Videobildcompositor durchgeführte zeitliche Rauschreduzierung Informationen aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu reduzieren.
  • Der Videobildcompositor kann auch dazu konfiguriert sein, eine Stereo-Entzerrung an eingegebenen Stereo-Linsenrahmen durchzuführen. Der Videobildcompositor kann ferner für die Zusammensetzung der Benutzerschnittstelle verwendet werden, wenn der Betriebssystemdesktop verwendet wird und die GPU(s) 1108 nicht ständig neue Oberflächen rendern müssen. Selbst wenn die GPU(s) 1108 eingeschaltet und aktiv beim 3D-Rendering ist, kann der Videobildcompositor dazu verwendet werden, die GPU(s) 1108 zu entlasten, um die Leistung und Reaktionsfähigkeit zu verbessern.
  • Das/die SoC 1104 kann/können ferner eine serielle Kameraschnittstelle der mobilen Industrieprozessorschnittstelle (mobile industry processor interface - MIPI) zum Empfangen von Video und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingangsblock beinhalten, der für die Kamera und zugehörige Pixel verwendet werden kann. Das/die SoC 1104 kann/können ferner (eine) Eingabe-/Ausgabe-Steuerung(en) beinhalten, der/die durch Software gesteuert werden kann/können und zum Empfangen von E/A-Signalen verwendet werden können, die nicht auf eine bestimmte Rolle festgelegt sind.
  • Das/die SoC 1104 kann/können ferner eine breite Palette von Peripherieschnittstellen umfassen, um eine Kommunikation mit Peripheriegeräten, Audio-Codecs, Energieverwaltung und/oder anderen Vorrichtungen zu ermöglichen. Das/die SoC 1104 können verwendet werden, um Daten von Kameras (z. B. über Gigabit Multimedia Serial Link und Ethernet verbunden), Sensoren (z. B. LIDAR-Sensor(en) 1164, RADAR-Sensor(en) 1160 usw.), die über Ethernet verbunden sein können), Daten von Bus 1102 (z. B. Geschwindigkeit des Fahrzeugs 1100, Lenkradposition usw.), Daten von GNSS-Sensor(en) 1158 (z. B. verbunden über Ethernet oder CAN-Bus) zu verarbeiten. Das/die SoC 1104 können ferner dedizierte Hochleistungs-Massenspeichersteuerungen beinhalten, die ihre eigenen DMA-Engines beinhalten können und die verwendet werden können, um die CPU(s) 1106 von routinemäßigen Datenmanagementaufgaben zu befreien.
  • Die SoC 1104 können eine End-to-End-Plattform mit einer flexiblen Architektur sein, die die Automatisierungsstufen 3 bis 5 umfasst, wodurch eine umfassende funktionale Sicherheitsarchitektur bereitgestellt wird, die Computervision und ADAS-Techniken für Diversität und Redundanz einsetzt und effizient nutzt sowie eine Plattform für einen flexiblen, zuverlässigen Treibersoftware-Stack samt Deep-Learning-Tools bietet. Die SoC 1104 können schneller, zuverlässiger und sogar energieeffizienter und platzsparender als herkömmliche Systeme sein. Zum Beispiel können der/die Beschleuniger 1114 in Kombination mit der/den CPU(s) 1106, der/den GPU(s) 1108 und dem/den Datenspeicher(n) 1116 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufen 3 bis 5 bereitstellen.
  • Die Technologie bietet somit Fähigkeiten und Funktionalitäten, die von herkömmlichen Systemen nicht erzielt werden können. Zum Beispiel können Computervision-Algorithmen auf CPUs ausgeführt werden, die unter Verwendung einer höheren Programmiersprache, wie der Programmiersprache C, konfiguriert sein können, um eine breite Palette von Verarbeitungsalgorithmen über eine breite Palette visueller Daten auszuführen. CPUs sind jedoch oft nicht in der Lage, die Leistungsanforderungen vieler Computervision-Anwendungen zu erfüllen, wie beispielsweise diejenigen, die sich auf Ausführungszeit und Stromverbrauch beziehen. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, was eine Voraussetzung für fahrzeuginterne ADAS-Anwendungen und eine Voraussetzung für praktische autonome Fahrzeuge der Stufen 3 bis 5 ist.
  • Im Gegensatz zu herkömmlichen Systemen ermöglicht die hierin beschriebene Technologie durch Bereitstellen eines CPU-Komplexes, GPU-Komplexes und eines Hardwarebeschleunigungsclusters, dass mehrere neuronale Netze gleichzeitig und/oder sequentiell ausgeführt werden und dass die Ergebnisse miteinander kombiniert werden, um eine autonome Fahrfunktionalität der Stufe 3 bis 5 zu ermöglichen. Zum Beispiel kann ein CNN, das auf dem DLA oder dGPU ausgeführt wird (z. B. den GPU(s) 1120), eine Text- und Worterkennung beinhalten, die es dem Supercomputer ermöglicht, Verkehrszeichen zu lesen und zu verstehen, einschließlich Schildern, für die das neuronale Netz nicht spezifisch trainiert wurde. Der DLA kann ferner ein neuronales Netz beinhalten, das in der Lage ist, das Schild zu identifizieren, zu interpretieren und ein semantisches Verständnis des Schildes bereitzustellen sowie dieses semantische Verständnis an die auf dem CPU-Komplex laufenden Pfadplanungsmodule weiterzugeben.
  • Als weiteres Beispiel können mehrere neuronale Netze gleichzeitig betrieben werden, wie es für das Fahren auf Stufe 3, 4 oder 5 erforderlich ist. Beispielsweise kann ein Warnzeichen bestehend aus „Achtung: Blinklichter weisen auf eisige Bedingungen hin“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzen unabhängig oder gemeinsam interpretiert werden. Das Schild selbst kann von einem ersten eingesetzten neuronalen Netz (z. B. einem trainierten neuronalen Netz) als Verkehrszeichen erkannt werden, der Text „Blinklichter weisen auf eisige Bedingungen hin“ kann von einem zweiten eingesetzten neuronalen Netz interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) informiert, dass beim Erkennen von blinkenden Lichtern eisige Bedingungen vorliegen. Das Blinklicht kann identifiziert werden, indem ein drittes eingesetztes neuronales Netz über mehrere Frames betrieben wird, wodurch die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von Blinklicht informiert wird. Alle drei neuronalen Netze können gleichzeitig laufen, wie etwa innerhalb des DLA und/oder auf der/den GPU(s) 1108.
  • In einigen Beispielen kann ein CNN für Gesichtserkennung und Identifizierung des Fahrzeugbesitzers Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 1100 zu identifizieren. Die Always-on-Sensorverarbeitungs-Engine kann dazu verwendet werden, das Fahrzeug zu entriegeln, wenn sich der Besitzer der Fahrertür nähert und die Lichter einschaltet, und im Sicherheitsmodus das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise sorgt/sorgen das/die SoC 1104 für Schutz gegen Diebstahl und/oder Carjacking.
  • In einem anderen Beispiel kann ein CNN zur Erkennung und Identifizierung von Rettungsfahrzeugen Daten von Mikrofonen 1196 verwenden, um Sirenen von Rettungsfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifikatoren verwenden, um Sirenen zu erkennen und Merkmale manuell zu extrahieren, verwendet/verwenden das/die SoC 1104 das CNN zur Klassifizierung von Umgebungs- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. In einer bevorzugten Ausführungsform wird das auf dem DLA laufende CNN trainiert, um die relative Schließgeschwindigkeit des Rettungsfahrzeugs zu identifizieren (z. B. unter Verwendung des Doppler-Effekts). Das CNN kann auch darauf trainiert werden, Notfallfahrzeuge zu identifizieren, die für den lokalen Bereich, in dem das Fahrzeug betrieben wird, spezifisch sind, wie durch den/die GNSS-Sensor(en) 1158 identifiziert. Wenn das CNN beispielsweise in Europa betrieben wird, wird es versuchen, europäische Sirenen zu erkennen, und 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 Notfallfahrzeug-Sicherheitsroutine auszuführen, das Fahrzeug zu verlangsamen, am Straßenrand zu halten, das Fahrzeug zu parken und/oder das Fahrzeug mit Hilfe von Ultraschallsensoren 1162 im Leerlauf zu lassen, bis das/die Notfallfahrzeug(e) vorbeigefahren ist/sind.
  • Das Fahrzeug kann eine CPU(n) 1118 (z. B. diskrete CPU(s) oder dCPU(s)) beinhalten, die über eine Hochgeschwindigkeitsverbindung (z. B. PCie) mit dem/den SoC 1104 gekoppelt sein können. Die CPU(s) 1118 können beispielsweise einen X86-Prozessor umfassen. Die CPU(s) 1118 können verwendet werden, um eine Vielfalt von Funktionen auszuführen, einschließlich beispielsweise der Vermittlung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem/den SoC 1104 und/oder Überwachen des Status und des Zustands des/der Steuerung(en) 1136 und/oder des Infotainment-SoC 1130.
  • Das Fahrzeug 1100 kann eine GPU(s) 1120 (z. B. diskrete GPU(s) oder dGPU(s)) beinhalten, die über eine Hochgeschwindigkeitsverbindung (z. B. NVIDIA's NVLINK) mit dem/den SoC 1104 gekoppelt sein können. Die GPU(s) 1120 können zusätzliche Funktionen der künstlichen Intelligenz bereitstellen, wie etwa durch Ausführen redundanter und/oder unterschiedlicher neuronaler Netze, und können verwendet werden, um neuronale Netze auf Grundlage Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 1100 zu trainieren und/oder zu aktualisieren.
  • Das Fahrzeug 1100 kann ferner die Netzwerkschnittstelle 1124 beinhalten, die eine oder mehrere drahtlose Antennen 1126 beinhalten kann (z. B. eine oder mehrere drahtlose Antennen für verschiedene Kommunikationsprotokolle, wie etwa eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die Netzwerkschnittstelle 1124 kann verwendet werden, um eine drahtlose Konnektivität über das Internet mit der Cloud (z. B. mit dem/den Server(n) 1178 und/oder anderen Netzwerkgeräten), mit anderen Fahrzeugen und/oder mit Rechenvorrichtungen (z. B. Client-Vorrichtungen der Fahrgäste) zu ermöglichen. Um mit anderen Fahrzeugen zu kommunizieren, kann eine direkte Verbindung zwischen den beiden Fahrzeugen hergestellt werden und/oder kann eine indirekte Verbindung hergestellt werden (z. B. über Netzwerke und über das Internet). Direkte Verbindungen können unter Verwendung einer Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung bereitgestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 1100 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 1100 (z. B. Fahrzeuge vor, seitlich und/oder hinter dem Fahrzeug 1100) bereitstellen. Diese Funktionalität kann Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 1100 sein.
  • Die Netzwerkschnittstelle 1124 kann ein SoC umfassen, das Modulations- und Demodulationsfunktionalität bereitstellt und es der/den Steuerung(en) 1136 ermöglicht, über drahtlose Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 1124 kann ein Hochfrequenz-Front-End für eine Aufwärtsumsetzung vom Basisband auf eine Hochfrequenz und eine Abwärtsumsetzung von einer Hochfrequenz auf das Basisband beinhalten. Die Frequenzumwandlungen können durch wohlbekannte Prozesse durchgeführt werden und/oder können unter Verwendung von Superheterodyn-Prozessen durchgeführt werden. In einigen Beispielen kann die Funkfrequenz-Front-End-Funktionalität durch einen separaten Chip bereitgestellt werden. Die Netzwerkschnittstelle kann drahtlose Funktionalität zum Kommunizieren über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle beinhalten.
  • Das Fahrzeug 1100 kann ferner einen oder mehrere Datenspeicher 1128 beinhalten, die chipexternen Speicher (z. B. außerhalb des/der SoC 1104) beinhalten können. Der oder die Datenspeicher 1128 können ein oder mehrere Speicherelemente umfassen, einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Vorrichtungen, die mindestens ein Datenbit speichern können.
  • Das Fahrzeug 1100 kann ferner GNSS-Sensor(en) 1158 beinhalten. Der/die GNSS-Sensor(en) 1158 (z. B. GPS, unterstützte GPS-Sensoren, differentielle GPS-(DGPS)-Sensoren usw.) zur Unterstützung bei der Kartierung, Wahrnehmung, Belegungsrastererzeugung und/oder Wegplanungsfunktionen. Eine beliebige Anzahl von GNSS-Sensor(en) 1158 kann verwendet werden, einschließlich zum Beispiel und ohne Einschränkung ein GPS, das einen USB-Anschluss mit einer Ethernet-zu-Seriell-(RS-232)-Brücke verwendet.
  • Das Fahrzeug 1100 kann ferner (einen) RADAR-Sensor(en) 1160 beinhalten. Der/die RADAR-Sensor(en) 1160 kann/können von dem Fahrzeug 1100 zur Fahrzeugerkennung über große Entfernungen selbst bei Dunkelheit und/oder schwierigen Wetterbedingungen verwendet werden. RADAR-Funktionssicherheitsniveaus können ASIL B sein. Der/die RADAR-Sensor(en) 1160 kann/können das CAN und/oder den Bus 1102 verwenden (z. B. um von dem/den RADAR-Sensor(en) 1160) generierte Daten zur Steuerung zu übertragen und auf Objektverfolgungsdaten zuzugreifen, mit Zugriff auf Ethernet, um in einigen Beispielen auf Rohdaten zuzugreifen. Es kann eine breite Palette von RADAR-Sensortypen verwendet werden. Zum Beispiel und ohne Einschränkung kann/können der/die RADAR-Sensor(en) 1160 für die Front-, Heck- und Seiten-RADAR-Nutzung geeignet sein. In einigen Beispielen werden Puls-Doppler-RADAR-Sensor(en) verwendet.
  • Der/die RADAR-Sensor(en) 1160 kann/können unterschiedliche Konfigurationen aufweisen, wie etwa Fernbereich mit schmalem Sichtfeld, Nahbereich mit großem Sichtfeld, Nahbereichs-Seitenabdeckung usw. In einigen Beispielen kann Langstrecken-RADAR für die adaptive Geschwindigkeitsregelungsfunktionalität verwendet werden. Die Langstrecken-RADAR-Systeme können ein breites Sichtfeld bereitstellen, das durch zwei oder mehr unabhängige Scans realisiert wird, beispielsweise innerhalb einer Reichweite von 250 m. Der/die RADAR-Sensor(en) 1160 kann/können bei der Unterscheidung zwischen statischen und sich bewegenden Objekten helfen und können von ADAS-Systemen für Notbremsassistenten und Vorwärtskollisionswarnungen verwendet werden. Langstrecken-RADAR-Sensoren können monostatische multimodale RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle beinhalten. In einem Beispiel mit sechs Antennen können die mittleren vier Antennen ein fokussiertes Strahlmuster erzeugen, das dazu ausgelegt ist, die Umgebung des Fahrzeugs 1100 bei höheren Geschwindigkeiten mit minimaler Störung durch den Verkehr auf benachbarten Fahrspuren aufzuzeichnen.
  • Die anderen beiden Antennen können das Sichtfeld erweitern, wodurch es möglich wird, Fahrzeuge schnell zu erkennen, die in die Spur des Fahrzeugs 1100 einfahren oder diese verlassen.
  • Mittelstrecken-RADAR-Systeme können beispielsweise eine Reichweite von bis zu 1160 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 1150 Grad (hinten) beinhalten. Kurzstrecken-RADAR-Systeme können ohne Einschränkung RADAR-Sensoren beinhalten, die dafür ausgelegt sind, an beiden Enden des hinteren Stoßfängers installiert zu werden. Wenn sie an beiden Enden des hinteren Stoßfängers angebracht sind, können solche RADAR-Sensorsysteme zwei Strahlen erzeugen, die ständig den toten Winkel im Heck und neben dem Fahrzeug überwachen.
  • Kurzstrecken-RADAR-Systeme können in einem ADAS-System zur Erkennung des toten Winkels und/oder zur Spurwechselunterstützung verwendet werden.
  • Das Fahrzeug 1100 kann ferner Ultraschallsensor(en) 1162 beinhalten. Der/die Ultraschallsensor(en) 1162, der/die vorne, hinten und/oder an den Seiten des Fahrzeugs 1100 positioniert sein kann/können, können für Parkassistenz und/oder zum Erstellen oder Aktualisieren eines Belegungsrasters verwendet werden. Eine breite Palette von Ultraschallsensoren 1162 kann verwendet werden, und verschiedene Ultraschallsensoren 1162 können für unterschiedliche Erkennungsbereiche (z. B. 2,5 m, 4 m) verwendet werden. Der/die Ultraschallsensor(en) 1162 kann/können auf funktionalen Sicherheitsniveaus von ASIL B betrieben werden.
  • Das Fahrzeug 1100 kann (einen) LIDAR-Sensor(en) 1164 beinhalten. Der/die LIDAR-Sensor(en) 1164 kann/können zur Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder für andere Funktionen verwendet werden. Der (die) LIDAR-Sensor(en) 1164 kann/können die funktionale Sicherheitsstufe ASIL B aufweisen. In einigen Beispielen kann das Fahrzeug 1100 mehrere LIDAR-Sensoren 1164 (z. B. zwei, vier, sechs usw.) beinhalten, die Ethernet verwenden können (z. B. um einem Gigabit-Ethernet-Switch Daten bereitzustellen).
  • In einigen Beispielen kann/können der/die LIDAR-Sensor(en) 1164 in der Lage sein, eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld bereitzustellen. Kommerziell erhältliche LIDAR-Sensoren 1164 können eine angekündigte Reichweite von ungefähr 1100 m aufweisen, mit einer Genauigkeit von 2 cm bis 3 cm und beispielsweise mit Unterstützung für eine 1100 Mbps Ethernet-Verbindung. In einigen Beispielen können ein oder mehrere nicht hervorstehende LIDAR-Sensoren 1164 verwendet werden. In solchen Beispielen kann/können der/die LIDAR-Sensor(en) 1164 als kleine Vorrichtung implementiert sein, die in die Front-, Heck-, Seiten- und/oder Ecken des Fahrzeugs 1100 eingebettet sein kann. Der/die LIDAR-Sensor(en) 1164 in solchen Beispielen kann/können ein horizontales Sichtfeld von bis zu 120 Grad und ein vertikales Sichtfeld von 35 Grad bieten, mit einer Reichweite von 200 m sogar für Objekte mit geringem Reflexionsvermögen. Frontmontierte LIDAR-Sensoren 1164 können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert werden.
  • In einigen Beispielen können auch LIDAR-Technologien wie 3D Flash LIDAR verwendet werden. 3D Flash LIDAR verwendet einen Laserblitz als Sendequelle, um die Fahrzeugumgebung bis zu etwa 200 m weit auszuleuchten. Eine Blitz-LIDAR-Einheit enthält einen Empfänger, der die Laserpulslaufzeit und das reflektierte Licht an jedem Pixel aufzeichnet, was wiederum der Entfernung vom Fahrzeug zu den Objekten entspricht. Mit Flash LIDAR können mit jedem Laserblitz hochpräzise und verzerrungsfreie Bilder der Umgebung generiert werden. In einigen Beispielen können vier Blitz-LIDAR-Sensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 1100. Verfügbare 3D-Blitz-LIDAR-Systeme beinhalten eine Festkörper-3D-LIDAR-Kamera mit starrem Array ohne andere bewegliche Teile außer einem Lüfter (z. B. eine nicht-scannende LIDAR-Vorrichtung). Die Flash-LIDAR-Vorrichtung kann einen Laserpuls der Klasse I (augensicher) von 5 Nanosekunden pro Frame verwenden und das reflektierte Laserlicht in Form von 3D-Entfernungspunktwolken und mitregistrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash LIDAR und da Flash LIDAR ein Festkörpergerät ohne bewegliche Teile ist, kann/können der/die LIDAR-Sensor(en) 1164 weniger anfällig für Bewegungsunschärfe, Vibration und/oder Stöße sein.
  • Das Fahrzeug kann ferner IMU-Sensor(en) 1166 umfassen. Der/die IMU-Sensor(en) 1166 können in einigen Beispielen in einer Mitte der Hinterachse des Fahrzeugs 1100 angeordnet sein. Der/die IMU-Sensor(en) 1166 kann/können zum Beispiel und ohne Einschränkung (einen) Beschleunigungsmesser, (einen) Magnetometer, (ein) Gyroskop(e), (einen) Magnetkompass(e) und/oder andere Sensortypen beinhalten. In einigen Beispielen, wie etwa in sechsachsigen Anwendungen, können der/die IMU-Sensor(en) 1166 Beschleunigungsmesser und Gyroskope beinhalten, während in neunachsigen Anwendungen der/die IMU-Sensor(en) 1166 Beschleunigungsmesser, Gyroskope und Magnetometer beinhalten können.
  • In einigen Ausführungsformen kann/können der/die IMU-Sensor(en) 1166 als Miniatur-Hochleistungs-GPS-unterstütztes Trägheitsnavigationssystem (GPS/INS) umgesetzt sein, das Trägheitssensoren mikroelektromechanischer Systeme (MEMS), einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Fluglage bereitzustellen. Insofern kann/können der/die IMU-Sensor(en) 1166 in einigen Beispielen dem Fahrzeug 1100 ermöglichen, den Kurs zu schätzen, ohne eine Eingabe von einem Magnetsensor zu erfordern, indem die Geschwindigkeitsänderungen von GPS zu dem/den IMU-Sensor(en) 1166 direkt beobachtet und korreliert werden. In einigen Beispielen kann/können der/die IMU-Sensor(en) 1166 und der/die GNSS-Sensor(en) 1158 in einer einzigen integrierten Einheit kombiniert sein.
  • Das Fahrzeug kann ein oder mehrere Mikrofone 1196 beinhalten, die in und/oder um das Fahrzeug 1100 herum angeordnet sind. Das/die Mikrofon(e) 1196 können unter anderem zur Erkennung und Identifizierung von Rettungsfahrzeugen verwendet werden.
  • Das Fahrzeug kann ferner eine beliebige Anzahl von Kameratypen beinhalten, einschließlich Stereokamera(s) 1168, Weitsichtkamera(s) 1170, Infrarotkamera(s) 1172, Surround-Kamera(s) 1174, Kamera(s) mit großer und/oder mittlerer Reichweite 1198 und/oder andere Kameratypen. Die Kameras können verwendet werden, um Bilddaten um eine gesamte Umgebung des Fahrzeugs 1100 zu erfassen. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen für das Fahrzeug 1100 ab, und jede Kombination von Kameratypen kann verwendet werden, um die erforderliche Abdeckung um das Fahrzeug 1100 bereitzustellen. Außerdem 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 beinhalten. Die Kameras können beispielsweise und ohne Einschränkung Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede der Kamera(s) wird hierin mit Bezug auf 11A und 11 B ausführlicher beschrieben.
  • Das Fahrzeug 1100 kann ferner Vibrationssensor(en) 1142 beinhalten. Der/die Vibrationssensor(en) 1142 kann/können Vibrationen von Komponenten des Fahrzeugs, wie beispielsweise der Achse(n) messen. Zum Beispiel können Änderungen der Vibrationen auf eine Änderung der Straßenoberfläche hinweisen. In einem anderen Beispiel, wenn zwei oder mehr Vibrationssensoren 1142 verwendet werden, können die Unterschiede zwischen den Vibrationen verwendet werden, um Reibung oder Schlupf der Straßenoberfläche zu bestimmen (z. B. wenn die Vibrationsdifferenz zwischen einer angetriebenen Achse und einem frei rotierenden Achse besteht).
  • Das Fahrzeug 1100 kann ein ADAS-System 1138 beinhalten. Das ADAS-System 1138 kann in einigen Beispielen ein SoC beinhalten. Das ADAS-System 1138 kann autonome/adaptive/automatische Geschwindigkeitsregelung (ACC), kooperative adaptive Geschwindigkeitsregelung (CACC), Vorwärtsaufprallwarnung (FCW), automatische Notbremsung (AEB), Spurverlassen-Varnung (LDW), Spurhalteassistent (LKA), Totwinkelwarnung (BSW), Querverkehrswarnung hinten (RCTW), Kollisionswarnsysteme (CWS), Spurzentrierung (LC) und/oder andere Merkmale und Funktionen beinhalten.
  • Die ACC-Systeme können RADAR-Sensor(en) 1160, LIDAR-Sensor(en) 1164 und/oder (eine) Kamera(s) verwenden. Die ACC-Systeme können Längs-ACC und/oder Quer-ACC beinhalten. Längs-ACC überwacht und steuert den Abstand zum Fahrzeug unmittelbar vor dem Fahrzeug 1100 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen sicheren Abstand zu vorausfahrenden Fahrzeugen einzuhalten. Die seitliche ACC führt die Abstandswahrung durch und weist das Fahrzeug 1100 an, bei Bedarf die Spur zu wechseln. Die seitliche ACC ist mit anderen ADAS-Anwendungen wie LCA und CWS verwandt.
  • CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 1124 und/oder die drahtlose(n) Antenne(n) 1126 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(V2V)-Kommunikationsverbindung bereitgestellt werden, während indirekte Verbindungen eine Infrastruktur-zu-Fahrzeug(I2V)-Kommunikationsverbindung sein können. Im Allgemeinen stellt das V2V-Kommunikationskonzept Informationen über die unmittelbar vorausfahrenden Fahrzeuge bereit (z. B. Fahrzeuge unmittelbar vor und auf derselben Fahrspur wie das Fahrzeug 1100), während das 12V-Kommunikationskonzept Informationen über den Verkehr weiter vorne bereitstellt. CACC-Systeme können eine oder beide 12V- und V2V-Informationsquellen beinhalten. Angesichts der Informationen über die Fahrzeuge vor dem Fahrzeug 1100 kann CACC zuverlässiger sein und hat das Potenzial, den Verkehrsfluss zu verbessern und Staus auf der Straße zu reduzieren.
  • FCW-Systeme sind so konzipiert, dass sie den Fahrer auf eine Gefahr aufmerksam machen, damit der Fahrer korrigierende Maßnahmen ergreifen kann. FCW-Systeme verwenden eine nach vorne gerichtete Kamera und/oder RADAR-Sensor(en) 1160, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit Fahrer-Feedback gekoppelt sind, wie etwa einem Display, Lautsprecher und/oder einer vibrierenden Komponente. FCW-Systeme können eine Warnung bereitstellen, beispielsweise in Form eines Tons, einer visuellen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.
  • AEB-Systeme erkennen eine drohende Frontalkollision mit einem anderen Fahrzeug oder einem anderen Objekt und können automatisch die Bremsen betätigen, wenn der Fahrer innerhalb eines festgelegten Zeit- oder Entfernungsparameters keine Korrekturmaßnahmen ergreift. AEB-Systeme können nach vorne gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1160 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, warnt es den Fahrer in der Regel zuerst, Korrekturmaßnahmen zu ergreifen, um die Kollision zu vermeiden, und wenn der Fahrer keine Korrekturmaßnahmen ergreift, kann das AEB-System automatisch die Bremsen betätigen, um dies zu verhindern oder zumindest die Auswirkungen der vorhergesagten Kollision abmildern. AEB-Systeme können Techniken wie dynamische Bremsunterstützung und/oder Bremsen bei drohendem Zusammenstoß beinhalten.
  • LDW-Systeme stellen visuelle, akustische und/oder taktile Warnungen bereit, wie etwa Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 1100 über Fahrspurmarkierungen fährt. Ein LDW-System wird nicht aktiviert, wenn der Fahrer ein absichtliches Verlassen der Fahrspur anzeigt, indem er ein Abbiegesignal aktiviert. LDW-Systeme können nach vom gerichtete Kameras verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit Fahrerfeedback gekoppelt sind, wie etwa einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • LKA-Systeme sind eine Variation von LDW-Systemen. LKA-Systeme stellen Lenkeingaben oder Bremsen bereit, um das Fahrzeug 1100 zu korrigieren, wenn das Fahrzeug 1100 beginnt, die Fahrspur zu verlassen.
  • BSW-Systeme erkennen und warnen den Fahrer vor Fahrzeugen im toten Winkel eines Autos. BSW-Systeme können einen visuellen, akustischen und/oder taktilen Alarm ausgeben, um anzuzeigen, dass ein Einfädeln oder Wechsel von Fahrspuren unsicher ist. Das System kann eine zusätzliche Warnung bereitstellen, wenn der Fahrer ein Abbiegesignal verwendet. BSW-Systeme können nach hinten gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1160 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit Fahrerfeedback gekoppelt sind, wie etwa einer Anzeige, einem Lautsprecher und/oder einer vibrierende Komponente.
  • RCTW-Systeme können eine visuelle, hörbare und/oder taktile Benachrichtigung bereitstellen, wenn ein Objekt außerhalb der Reichweite der Heckkamera erkannt wird, während das Fahrzeug 1100 rückwärts fährt. Einige RCTW-Systeme enthalten AEB, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Unfall zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete RADAR-Sensoren 1160 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit Fahrer-Feedback gekoppelt sind, wie etwa einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • Herkömmliche ADAS-Systeme können anfällig für falsch positive Ergebnisse sein, die für einen Fahrer störend und ablenkend sein können, aber typischerweise nicht katastrophal sind, da die ADAS-Systeme den Fahrer warnen und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung wirklich existiert, und entsprechend zu handeln. In einem autonomen Fahrzeug 1100 muss das Fahrzeug 1100 jedoch selbst im Falle widersprüchlicher Ergebnisse entscheiden, ob das Ergebnis von einem Primärcomputer oder einem Sekundärcomputer (z. B. einer ersten Steuerung 1136 oder einer zweiten Steuerung 1136) beachtet werden soll. Zum Beispiel kann das ADAS-System 1138 in einigen Ausführungsformen ein Backup- und/oder ein sekundärer Computer sein, um Wahrnehmungsinformationen an ein Rationalitätsmodul eines Backup-Computers bereitzustellen. Der Rationalitätsmonitor des Backup-Computers kann eine redundante diverse Software auf Hardwarekomponenten ausführen, um Fehler in der Wahrnehmung und dynamischen Fahraufgaben zu erkennen. Ausgaben von dem ADAS-System 1138 können einer überwachenden MCU zugeführt werden. Wenn die Ausgaben des primären Computers und des sekundären Computers in Konflikt geraten, muss die überwachende MCU bestimmen, wie der Konflikt zu vereinbaren ist, um einen sicheren Betrieb zu gewährleisten.
  • In einigen Beispielen kann der primäre Computer dazu konfiguriert sein, der überwachenden MCU eine Konfidenzbewertung bereitzustellen, die das Vertrauen des primären Computers in das gewählte Ergebnis anzeigt. Wenn die Konfidenzbewertung einen Schwellenwert überschreitet, kann die überwachende MCU der Anweisung des Primärcomputers folgen, unabhängig davon, ob der Sekundärcomputer ein widersprüchliches oder inkonsistentes Ergebnis liefert. Wenn die Konfidenzbewertung den Schwellenwert nicht erfüllt und wenn der primäre und der sekundäre Computer unterschiedliche Ergebnisse anzeigen (z. B. den Konflikt), kann die überwachende MCU zwischen den Computern vermitteln, um das geeignete Ergebnis zu bestimmen.
  • Die Überwachungs-MCU kann dazu konfiguriert sein, ein neuronales Netz oder mehrere neuronale Netze zu betreiben, die trainiert und konfiguriert sind, um auf Grundlage von Ausgaben des Primärcomputers und des Sekundärcomputers Bedingungen zu bestimmen, unter denen der Sekundärcomputer falsche Alarme ausgibt. Somit können das (die) neuronalen Netz(e) in der überwachenden MCU lernen, wann der Ausgabe des sekundären Computers vertraut werden kann und wann nicht. Wenn der Sekundärcomputer beispielsweise ein RADAR-basiertes FCW-System ist, können ein oder mehrere neuronale Netze in der überwachenden MCU lernen, wenn das FCW-System metallische Objekte identifiziert, die tatsächlich keine Gefahren darstellen, wie z. B. ein Kanaldeckel, der einen Alarm auslöst. Wenn der Sekundärcomputer ein kamerabasiertes LDW-System ist, kann ein neuronales Netz in der überwachenden MCU lernen, das LDW zu überschreiben, wenn Radfahrer oder Fußgänger anwesend sind und ein Verlassen der Fahrspur tatsächlich das sicherste Manöver ist. In Ausführungsformen, die ein oder mehrere neuronale Netze beinhalten, die auf der überwachenden MCU laufen, kann die überwachende MCU mindestens einen DLA oder eine GPU beinhalten, der/die geeignet ist, um das (die) neuronalen Netz(e) mit zugehörigem Speicher zu betreiben. In bevorzugten Ausführungsformen kann die überwachende MCU eine Komponente des/der SoC 1104 umfassen und/oder als eine davon beinhaltet sein.
  • In anderen Beispielen kann das ADAS-System 1138 einen sekundären Computer beinhalten, der ADAS-Funktionalität unter Verwendung traditioneller Regeln der Computervision ausführt. Als solcher kann der Sekundärcomputer klassische Computervision-Regeln verwenden (wenn-dann), und das Vorhandensein eines oder mehrerer neuronalen Netz(e) in der überwachenden MCU kann die Zuverlässigkeit, Sicherheit und Leistung verbessern. So macht beispielsweise die vielfältige Umsetzung und die bewusste Nicht-Identität das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch die Funktionalität der Software (oder der Software-Hardware-Schnittstelle) verursacht werden. Wenn beispielsweise ein Programmfehler oder Softwarefehler in der auf dem primären Computer ausgeführten Software vorliegt und der nicht identische Softwarecode, der auf dem sekundären Computer ausgeführt wird, das gleiche Gesamtergebnis liefert, kann die überwachende MCU mehr darauf vertrauen, dass das Gesamtergebnis korrekt ist und der Fehler in der Software oder Hardware auf dem primären Computer keinen materiellen Fehler verursacht.
  • In einigen Beispielen kann die Ausgabe des ADAS-Systems 1138 in den Wahrnehmungsblock des Primärcomputers und/oder den Aufgabenblock des dynamischen Fahrens des Primärcomputers eingespeist werden. Wenn beispielsweise das ADAS-System 1138 eine Vorwärtsaufprallwarnung aufgrund eines unmittelbar vorausfahrenden Objekts anzeigt, kann der Wahrnehmungsblock diese Informationen beim Identifizieren von Objekten verwenden. In anderen Beispielen kann der sekundäre Computer sein eigenes neuronales Netz aufweisen, das trainiert ist und somit das Risiko von falsch positiven Ergebnissen verringert, wie hierin beschrieben.
  • Das Fahrzeug 1100 kann ferner das Infotainment-SoC 1130 (z. B. ein fahrzeuginternes Infotainmentsystem (IVI)) beinhalten. Obwohl das Infotainmentsystem als SoC dargestellt und beschrieben ist, ist es möglicherweise kein SoC und kann zwei oder mehr diskrete Komponenten beinhalten. Der Infotainment-SoC 1130 kann eine Kombination aus Hardware und Software beinhalten, die verwendet werden kann, um Audio (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z. B. TV, Filme, Streaming, usw.), Telefon (z. B. Freisprechen), Netzwerkkonnektivität (z. B. LTE, WLAN usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Einparkhilfe hinten, ein Datenfunksystem, fahrzeugbezogene Informationen wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremskraftstoffstand, Ölstand, Tür öffnen/schließen, Luftfilterinformationen usw.) dem Fahrzeug 1100 bereitzustellen. Zum Beispiel kann das Infotainment-SoC 1130 Radios, Plattenspieler, Navigation Systeme, Videoplayer, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, Wi-Fi, Lenkrad-Audiosteuerung, Freisprech-Sprachsteuerung, ein Heads-up-Display (HUD), ein HMI-Display 1134, ein Telematikgerät, ein Bedienfeld (z. B. zum Steuern und/oder Interagieren mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder andere Komponenten beinhalten. Das Infotainment-SoC 1130 kann ferner verwendet werden, um einem oder mehreren Benutzern des Fahrzeugs Informationen (z. B. visuell und/oder hörbar) bereitzustellen, wie beispielsweise Informationen vom ADAS-System 1138, Informationen zum autonomen Fahren, wie beispielsweise geplante Fahrzeugmanöver, Trajektorien, Umgebungsumgebungsinformationen (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.
  • Das Infotainment-SoC 1130 kann GPU-Funktionalität beinhalten. Das Infotainment-SoC 1130 kann über den Bus 1102 (z. B. CAN-Bus, Ethernet usw.) mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 1100 kommunizieren. In einigen Beispielen kann der Infotainment-SoC 1130 mit einer Überwachungs-MCU gekoppelt sein, sodass die GPU des Infotainmentsystems einige Selbstfahrfunktionen ausführen kann, falls die primäre(n) Steuerung(en) 1136 (z. B. die primären und/oder Backup-Computer des Fahrzeugs 1100) ausfallen. In einem solchen Beispiel kann das Infotainment-SoC 1130 das Fahrzeug 1100 wie hierin beschrieben in einen Zu sicherem-Halt-chauffieren-Modus versetzen.
  • Das Fahrzeug 1100 kann ferner ein Zentralanzeigegerät 1132 (z. B. ein digitales Armaturenbrett, ein elektronisches Zentralanzeigegerät, ein digitales Armaturenbrett usw.) beinhalten. Das Zentralanzeigegerät 1132 kann eine Steuerung und/oder Supercomputer (z. B. eine diskrete Steuerung oder Supercomputer) beinhalten. Das Zentralanzeigegerät 1132 kann eine Reihe von Instrumenten umfassen, wie etaw einen Tachometer, Kraftstoffstand, Öldruck, Drehzahlmesser, Kilometerzähler, Fahrtrichtungsanzeiger, Gangschaltpositionsanzeige, Sicherheitsgurt-Warnleuchte(n), Feststellbrems-Warnleuchte(n), Motorfehlfunktionsleuchte(n), Airbag-(SRS)-Systeminformationen, Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen usw. In einigen Beispielen können Informationen angezeigt und/oder zwischen dem Infotainment-SoC 1130 und dem Zentralanzeigegerät 1132 geteilt werden. Mit anderen Worten, das Zentralanzeigegerät 1132 kann als Teil des Infotainment-SoC 1130 beinhaltet sein oder umgekehrt.
  • 11D ist ein Systemdiagramm für die Kommunikation zwischen (einem) Cloudbasierten Server(n) und dem beispielhaften autonomen Fahrzeug 1100 aus 11A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das System 1176 kann Server 1178, Netzwerk(e) 1190 und Fahrzeuge, einschließlich des Fahrzeugs 1100, beinhalten. Der/die Server 1178 können mehrere GPUs 1184(A)-1184(H) (hierin gemeinsam als GPUs 1184 bezeichnet), PCie-Switches 1182(A)-1182(H) (hierin gemeinsam als PCie-Switches 1182 bezeichnet) und/oder CPUs 1180(A)-1180(B) (hierin gemeinsam als CPUs 1180 bezeichnet) beinhalten. Die GPUs 1184, die CPUs 1180 und die PCie-Switches können mit Hochgeschwindigkeitsverbindungen verbunden sein, wie beispielsweise und ohne Einschränkung NVLink-Schnittstellen 1188, die von NVIDIA entwickelt wurden, und/oder PCie-Verbindungen 1186. In einigen Beispielen sind die GPUs 1184 über NVLink und/ oder NVSwitch SoC verbunden und die GPUs 1184 und die PCie-Switches 1182 sind über PCie-Verbindungen verbunden. Obwohl acht GPUs 1184, zwei CPUs 1180 und zwei PCie-Switches veranschaulicht sind, soll dies nicht einschränkend sein. Je nach Ausführungsform kann jeder der Server 1178 eine beliebige Anzahl von GPUs 1184, CPUs 1180 und/oder PCie-Switches beinhalten. Zum Beispiel kann/können der/die Server 1178 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 1184 beinhalten.
  • Der/die Server 1178 kann/können über das/die Netzwerk(e) 1190 und von den Fahrzeugen Bilddaten empfangen, die Bilder darstellen, die unerwartete oder geänderte Straßenbedingungen zeigen, wie etwa kürzlich begonnene Straßenarbeiten. Der/die Server 1178 kann/können über das/die Netzwerk(e) 1190 und an die Fahrzeuge neuronale Netze 1192, aktualisierte neuronale Netz 1192 und/oder Karteninformationen 1194, einschließlich Informationen zu Verkehrs- und Straßenbedingungen, übertragen. Die Aktualisierungen der Karteninformationen 1194 können Aktualisierungen für die HD-Karte 1122 beinhalten, wie etwa Informationen zu Baustellen, Schlaglöchern, Umleitungen, Überschwemmungen und/oder anderen Hindernissen. In einigen Beispielen können die neuronalen Netze 1192, die aktualisierten neuronalen Netze 1192 und/oder die Karteninformationen 1194 aus neuem Training und/oder Erfahrungen resultieren, die in Daten dargestellt sind, die von einer beliebigen Anzahl von Fahrzeugen in der Umgebung empfangen werden, und/oder basierend auf Training, das in einem Rechenzentrum durchgeführt wird (z. B. unter Verwendung des/der Server(s) 1178 und/oder anderer Server).
  • Der/die Server 1178 kann/können verwendet werden, um Modelle des maschinellen Lernens (z. B. neuronale Netze) basierend auf Trainingsdaten zu trainieren. Die Trainingsdaten können durch die Fahrzeugn generiert werden und/oder können in einer Simulation (z. B. unter Verwendung einer Spiel-Engine) generiert werden. In einigen Beispielen werden die Trainingsdaten markiert (z. B. wenn das neuronale Netz vom überwachten Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen, während in anderen Beispielen die Trainingsdaten nicht markiert und/oder vorverarbeitet werden (z. B. wenn das neuronale Netz kein überwachtes Lernen erfordert).Das Training kann gemäß einer oder mehreren Klassen von maschinellen Lerntechniken durchgeführt werden, einschließlich, aber nicht beschränkt auf Klassen wie: überwachtes Training, halbüberwachtes Training, nicht überwachtes Training, Selbstlernen, Verstärkungslemen, föderiertes Lernen, Transferlernen, Feature Learning (einschließlich Hauptkomponenten- und Clusteranalysen), multilineares Teilraumlernen, Manifold Learning, Repräsentationslemen (einschließlich Ersatzwörterbuch-Lernen), regelbasiertes maschinelles Lernen, Anomalieerkennung und beliebige Varianten oder Kombinationen davon. Sobald die Modelle für maschinelles Lernen trainiert sind, können die Modelle für maschinelles Lernen von den Fahrzeugen verwendet werden (z. B. an die Fahrzeuge über das/die Netzwerk(e) 1190 übertragen werden und/oder die Modelle für maschinelles Lernen können von dem/den Server(n) 1178 verwendet werden, um die Fahrzeuge aus der Ferne zu überwachen).
  • In einigen Beispielen kann/können der/die Server 1178 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeitnetzee für intelligente Echtzeitschlussfolgerung anwenden. Der/die Server 1178 können Deep-Learning-Supercomputer und/oder dedizierte KI-Computer beinhalten, die von GPU(s) 1184 angetrieben werden, wie etwa von NVIDIA entwickelte DGX- und DGX-Station-Maschinen. In manchen Beispielen kann/können der/die Server 1178 eine Deep-Learning-Infrastruktur beinhalten, die nur CPU-betriebene Datenzentren verwendet.
  • Die Deep-Learning-Infrastruktur des/der Server(s) 1178 kann in der Lage sein, schnelle Echtzeitschlussfolgerungen durchzuführen und kann diese Fähigkeit verwenden, um den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 1100 zu bewerten und zu überprüfen. Zum Beispiel kann die Deep-Learning-Infrastruktur periodische Updates vom Fahrzeug 1100 empfangen, wie etwa eine Sequenz von Bildern und/oder Objekten, die das Fahrzeug 1100 in dieser Sequenz von Bildern lokalisiert hat (z. B. über Computervision und/oder andere Objektklassifikationstechniken maschinellen Lernens). Die Deep-Learning-Infrastruktur kann ihr eigenes neuronales Netz betreiben, um die Objekte zu identifizieren und sie mit den vom Fahrzeug 1100 identifizierten Objekten zu vergleichen, und wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 1100 eine Fehlfunktion aufweist, kann/können der/die Server 1178 ein Signal an das Fahrzeug 1100 übertragen, das einen ausfallsicheren Computer des Fahrzeugs 1100 anweist, die Kontrolle zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • Zur Inferenz kann/können der/die Server 1178 die GPU(s) 1184 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. NVIDIAs TensorRT) beinhalten. Die Kombination aus GPU-betriebenen Servern und Inferenzbeschleunigung kann eine Reaktionsfähigkeit in Echtzeit ermöglichen. In anderen Beispielen, beispielsweise wenn die Leistung weniger kritisch ist, können Server, die von CPUs, FPGAs und anderen Prozessoren betrieben werden, für die Inferenz verwendet werden.
  • Beispielhafte Rechenvorrichtung
  • 12 ist ein Blockdiagramm eines oder mehrerer beispielhafter Rechenvorrichtungen 1200, die zur Verwendung beim Umsetzen einiger Ausführungsformen der vorliegenden Offenbarung geeignet sind. Die Rechenvorrichtung 1200 kann ein Verbindungssystem 1202 beinhalten, das die folgenden Vorrichtungen direkt oder indirekt koppelt: Speicher 1204, eine oder mehrere Zentraleinheiten (CPUs) 1206, eine oder mehrere Grafikverarbeitungseinheiten (GPUs) 1208, eine Kommunikationsschnittstelle 1210, Eingabe-/Ausgabe-(E/A)-Ports 1212, Eingabe-/Ausgabekomponenten 1214, eine Stromversorgung 1216, eine oder mehrere Präsentationskomponenten 1218 (z. B. Anzeige(n)) und eine oder mehrere Logikeinheiten 1220. In mindestens einer Ausführungsform kann/können die Rechenvorrichtung(en) 1200 eine oder mehrere virtuelle Maschinen (VMs) beinhalten, und/oder jede der Komponenten davon kann virtuelle Komponenten beinhalten (z. B. virtuelle Hardwarekomponenten). Für nichteinschränkende Beispiele können eine oder mehrere der GPUs 1208 eine oder mehrere vGPUs beinhalten, eine oder mehrere der CPUs 1206 können eine oder mehrere vCPUs beinhalten und/oder eine oder mehrere der Logikeinheiten 1220 können eine oder mehrere virtuelle Logikeinheiten beinhalten. Insofern kann/können (eine) Rechenvorrichtung(en) 1200 diskrete Komponenten (z. B. eine vollständige GPU, die der Rechenvorrichtung 1200 gewidmet ist), virtuelle Komponenten (z. B. einen Teil einer GPU, die der Computervorrichtung 1200 gewidmet ist) oder eine Kombination davon beinhalten.
  • Obwohl die verschiedenen Blöcke in 12 über das Verbindungssystem 1202 mit Leitungen verbunden gezeigt sind, soll dies nicht einschränkend sein und dient nur der Klarheit. Beispielsweise kann in einigen Ausführungsformen eine Präsentationskomponente 1218, wie etwa ein Anzeigegerät, als eine E/A-Komponente 1214 betrachtet werden (z. B. wenn die Anzeige ein Touchscreen ist). Als weiteres Beispiel können die CPUs 1206 und/oder GPUs 1208 Speicher beinhalten (z. B. kann der Speicher 1204 zusätzlich zum Speicher der GPUs 1208, der CPUs 1206 und/oder anderer Komponenten repräsentativ für eine Speichervorrichtung sein). Mit anderen Worten dient die Rechenvorrichtung aus 12 lediglich der Veranschaulichung. Es wird nicht zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Vorrichtung“, „Mobilvorrichtung“, „Handheld-Vorrichtung“, „Spielekonsole“, „elektronische Steuereinheit (ECU),“ „Virtual-Reality-System“ und/oder anderen Vorrichtungs- oder Systemtypen unterschieden, da sie alle im Umfang der Rechenvorrichtung aus 12 in Betracht gezogen werden.
  • Das Verbindungssystem 1202 kann eine oder mehrere Verbindungen oder Busse darstellen, wie beispielsweise einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Das Verbindungssystem 1202 kann einen oder mehrere Bus- oder Verbindungstypen beinhalten, wie etwa einen Industry Standard Architecture (ISA)-Bus, einen Extended Industry Standard Architecture (EISA-Bus, einen Video Electronics Standards Association (VESA)-Bus, einen Peripheral Component Interconnect (PCI)-Bus, einen Peripheral Component Interconnect express (PCie)-Bus und/oder eine andere Art von Bus oder Verbindung. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen Komponenten. Als ein Beispiel kann die CPU 1206 direkt mit dem Speicher 1204 verbunden sein. Ferner kann die CPU 1206 direkt mit der GPU 1208 verbunden sein. Wo eine direkte oder Punkt-zu-Punkt-Verbindung zwischen Komponenten besteht, kann das Verbindungssystem 1202 einen PCie-Link beinhalten, um die Verbindung herzustellen. In diesen Beispielen muss kein PCI-Bus in der Rechenvorrichtung 1200 enthalten sein.
  • Der Speicher 1204 kann ein beliebiges einer Vielfalt von computerlesbaren Medien beinhalten. Die computerlesbaren Medien können beliebige verfügbare Medien sein, auf die die Rechenvorrichtung 1200 zugreifen kann. Die computerlesbaren Medien können sowohl flüchtige als auch nichtflüchtige Medien sowie entfernbare und nicht entfernbare Medien beinhalten. Beispielhaft und nicht einschränkend können die computerlesbaren Medien Computerspeichermedien und Kommunikationsmedien beinhalten.
  • Die Computerspeichermedien können sowohl flüchtige als auch nichtflüchtige Medien und/oder entfernbare und nicht entfernbare Medien beinhalten, die in einem Verfahren oder einer Technologie zum Speichern von Informationen umgesetzt sind, wie etwa computerlesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datentypen. Zum Beispiel kann der Speicher 1204 computerlesbare Anweisungen speichern (die z. B. ein oder mehrere Programme und/oder ein oder mehrere Programmelemente darstellen, wie etwa ein Betriebssystem). Computerspeichermedien können Folgendes beinhalten, ohne darauf beschränkt zu sein: RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichergeräte oder jedes andere Medium, das verwendet werden, um die gewünschten Informationen zu speichern und auf die von der Rechenvorrichtung 1200 zugegriffen werden kann. Wie hierin verwendet, beinhalten Computerspeichermedien keine Signale an sich.
  • Die Computerspeichermedien können computerlesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datentypen in einem modulierten Datensignal wie etwa einer Trägerwelle oder einem anderen Transportmechanismus enthalten und beinhalten beliebige Informationsliefermedien. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, bei dem eine oder mehrere seiner Eigenschaften so eingestellt oder geändert wurden, dass Informationen in dem Signal kodiert werden. Beispielhaft und nicht einschränkend können die Computerspeichermedien drahtgebundene Medien beinhalten, wie beispielsweise ein drahtgebundenes Netzwerk oder eine direkte drahtgebundene Verbindung, und drahtlose Medien, wie beispielsweise akustische, HF-, Infrarot- und andere drahtlose Medien. Kombinationen von einem der oben genannten sollten ebenfalls in den Umfang computerlesbarer Medien beinhalten sein.
  • Die CPU(s) 1206 kann/können dazu konfiguriert sein, mindestens einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Rechenvorrichtung 1200 zu steuern, um eines oder mehrere der hierin beschriebenen Verfahren und/oder Prozesse auszuführen. Die CPU(s) 1206 kann/können jeweils einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) beinhalten, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu handhaben. Die CPU(s) 1206 kann/können jede Art von Prozessor beinhalten und unterschiedliche Arten von Prozessoren beinhalten, je nach Art der implementierten Rechenvorrichtung 1200 (z. B. Prozessoren mit weniger Kernen für mobile Vorrichtungen und Prozessoren mit mehr Kernen für Server). Zum Beispiel kann der Prozessor je nach Art der Rechenvorrichtung 1200 ein Advanced RISC Machines (ARM)-Prozessor sein, der unter Verwendung von Reduced Instruction Set Computing (RISC) implementiert ist, oder ein x86-Prozessor, der unter Verwendung von Complex Instruction Set Computing (CISC) implementiert ist. Die Rechenvorrichtung 1200 kann eine oder mehrere CPUs 1206 zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzlichen Coprozessoren, wie etwa mathematischen Coprozessoren, beinhalten.
  • Zusätzlich zu oder alternativ von der/den CPU(s) 1206 kann/können die GPU(s) 1208 dazu konfiguriert sein, mindestens einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Rechenvorrichtung 1200 zu steuern, um eine oder mehrere der hierin beschriebenen Verfahren und/oder Prozesse durchzuführen. Eine oder mehrere der GPU(s) 1208 können eine integrierte GPU sein (z. B. mit einer oder mehreren der CPU(s) 1206) und/oder eine oder mehrere der GPU(s) 1208 können eine diskrete GPU sein. In Ausführungsformen können eine oder mehrere der GPU(s) 1208 ein Coprozessor einer oder mehrerer der CPU(s) 1206 sein. Die GPU(s) 1208 können von der Rechenvorrichtung 1200 verwendet werden, um Grafiken (z. B. 3D-Grafiken) zu rendern oder allgemeine Berechnungen durchführen. Zum Beispiel können die GPU(s) 1208 für General-Purpose Computing auf GPUs (GPGPU) verwendet werden. Die GPU(s) 1208 kann/können Hunderte oder Tausende von Kernen umfassen, die Hunderte oder Tausende von Software-Threads gleichzeitig verarbeiten können. Die GPU(s) 1208 kann/können Pixeldaten für Ausgabebilder als Reaktion auf Renderbefehle generieren (z. B. Renderbefehle von der/den CPU(s) 1206, die über eine Host-Schnittstelle empfangen werden). Die GPU(s) 1208 kann/können Grafikspeicher beinhalten, wie beispielsweise Anzeigespeicher, zum Speichern von Pixeldaten oder anderen geeigneten Daten, wie beispielsweise GPGPU-Daten. Der Anzeigespeicher kann als Teil des Speichers 1204 beinhaltet sein. Die GPU(s) 1208 kann/können zwei oder mehr GPUs beinhalten, die parallel arbeiten (z. B. über eine Verbindung). Der Link kann die GPUs direkt verbinden (z. B. unter Verwendung von NVLINK) oder kann die GPUs über einen Switch verbinden (z. B. unter Verwendung von NVSwitch). Wenn sie miteinander kombiniert werden, kann jede GPU 1208 Pixeldaten oder GPGPU-Daten für unterschiedliche Teile einer Ausgabe oder für unterschiedliche Ausgaben generieren (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 beinhalten oder Speicher mit anderen GPUs teilen.
  • Zusätzlich oder alternativ zu der/den CPU(s) 1206 und/oder der/den GPU(s) 1208 kann/können die Logikeinheit(en) 1220 dazu konfiguriert sein, mindestens einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Rechenvorrichtung 1200 zu steuern, um eines oder mehrere der hierin beschriebenen Verfahren und/oder Prozesse durchzuführen. In Ausführungsformen können die CPU(s) 1206, die GPU(s) 1208 und/oder die Logikeinheit(en) 1220 diskret oder gemeinsam eine beliebige Kombination der Verfahren, Prozesse und/oder Teile davon ausführen. Eine oder mehrere der Logikeinheiten 1220 können Teil einer oder mehrerer der CPU(s) 1206 und/oder der GPU(s) 1208 sein und/oder können in diese integriert sein und/oder eine oder mehrere der Logikeinheiten 1220 können diskrete Komponenten oder anderweitig außerhalb der CPU(s) 1206 und/oder der GPU(s) 1208 sein. In Ausführungsformen können eine oder mehrere der Logikeinheiten 1220 ein Coprozessor einer oder mehrerer der CPU(s) 1206 und/oder eine oder mehrere der GPU(s) 1208 sein.
  • Beispiele der Logikeinheit(en) 1220 beinhalten einen oder mehrere Verarbeitungskerne und/oder Komponenten davon, wie Tensor-Kerne (TCs), Tensor-Verarbeitungseinheiten (TPUs), Pixel Visual Cores (PVCs), Bildverarbeitungseinheiten (VPUs), Grafikverarbeitungscluster (GPCs), Texturverarbeitungscluster (TPCs), Streaming-Multiprozessoren (SMs), Tree Traversal Units (TTUs), Artificial Intelligence Accelerator (AIAs), Deep Leaming Accelerator (DLAs), Arithmetic Logic Units (ALUs), Anwendungsspezifische integrierte Schaltungen (ASICs), Fließkommaeinheiten (FPUs), Eingabe/Ausgabe-(E/A)-Elemente, Peripheriekomponenten-Verbindungs-(PCI)- oder Peripheriekomponenten-Verbindungs-Express-(PCie)-Elemente und/oder dergleichen.
  • Die Kommunikationsschnittstelle 1210 kann einen oder mehrere Empfänger, Sender und/oder Transceiver umfassen, die es der Rechenvorrichtung 1200 ermöglichen, mit anderen Rechenvorrichtungen über ein elektronisches Kommunikationsnetzwerk, einschließlich drahtgebundener und/oder drahtloser Kommunikation, zu kommunizieren.
  • Die Kommunikationsschnittstelle 1210 kann Komponenten und Funktionalität beinhalten, um die Kommunikation über ein beliebiges von einer Reihe verschiedener Netzwerke zu ermöglichen, wie etwa drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), drahtgebundene Netzwerke (z. B. Kommunikation über Ethernet oder InfiniBand), Low-Power-Wide-Area-Netzwerke (z. B. LoRaWAN, SigFox usw.) und/oder das Internet.
  • Die E/A-Ports 1212 können ermöglichen, dass die Rechenvorrichtung 1200 logisch mit anderen Vorrichtungen verbunden ist, einschließlich der E/A-Komponenten 1214, der Präsentationskomponente(n) 1218 und/oder anderer Komponenten, von denen einige die Rechenvorrichtung 1200 eingebaut (z. B. integriert) sind. Veranschaulichende E/A-Komponenten 1214 beinhalten ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Gamecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, ein drahtloses Gerät usw. Die E/A-Komponenten 1214 kann eine natürliche Benutzerschnittstelle (natural user interface - NUI) bereitstellen, die Luftgesten, Stimme oder andere von einem Benutzer erzeugte physiologische Eingaben verarbeitet. In einigen Fällen können Eingaben zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination 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 ausführlicher beschrieben) umsetzen, die einer Anzeige der Rechenvorrichtung 1200 zugeordnet ist. Die Rechenvorrichtung 1200 kann zur Gestenerkennung und -erfassung Tiefenkameras beinhalten, wie etwa stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon. Außerdem kann die Rechenvorrichtung 1200 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) beinhalten, die eine Bewegungserkennung ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope von der Rechenvorrichtung 1200 verwendet werden, um immersive erweiterte Realität oder virtuelle Realität zu rendern.
  • Die Stromversorgung 1216 kann eine fest verdrahtete Stromversorgung, eine Batteriestromversorgung oder eine Kombination davon beinhalten. Die Stromversorgung 1216 kann der Rechenvorrichtung 1200 Strom bereitstellen, um den Betrieb der Komponenten der Rechenvorrichtung 1200 zu ermöglichen.
  • Die Präsentationskomponente(n) 1218 kann/können ein Display (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Heads-up-Display (HUD), andere Displaytypen oder eine Kombination davon), Lautsprecher und/oder andere Präsentationskomponenten sein. Die Präsentationskomponente(n) 1218 kann/können Daten von anderen Komponenten (z. B. den GPU(s) 1208, den CPU(s) 1206 usw.) empfangen und die Daten ausausgeben (z. B. als Bild, Video, Ton usw.).
  • Beispielhaftes Datenzentrum
  • 13 veranschaulicht ein beispielhaftes Datenzentrum 1300, das in mindestens einer Ausführungsform der vorliegenden Offenbarung verwendet werden kann. Das Datenzentrum 1300 kann eine Datenzentrumsinfrastrukturschicht 1310, eine Framework-Schicht 1320, eine Softwareschicht 1330 und/oder eine Anwendungsschicht 1340 beinhalten.
  • Wie in 13 gezeigt kann die Datenzentrumsinfrastrukturschicht 1310 einen Ressourcen-Orchestrierer 1312, gruppierte Rechenressourcen 1314 und Knoten-Rechenressourcen („Knoten-CRs“) 1316(1)-1316(N) beinhalten, wobei „N“ eine beliebige positive ganze Zahl darstellt. In mindestens einer Ausführungsform können die Knoten-CRs 1316(1)-1316(N) eine beliebige Anzahl von Zentraleinheiten („CPUs“) oder andere Prozessoren (einschließlich Beschleuniger, feldprogrammierbare Gate-Arrays (FPGAs), Grafikprozessoren oder Grafikprozessoren (GPUs) usw.), Speichergeräte (z. B. dynamische Nur-Lese-Speicher), Speichervorrichtungen (z. B. Solid-State- oder Plattenlaufwerke), Netzwerkeingabe/-ausgabe- („NW E/A“-)Vorrichtungen, Netzwerkswitches, virtuelle Maschinen („VMs“), Strommodule und/oder Kühlmodule usw. beinhalten, ohne darauf beschränkt zu sein.
  • In einigen Ausführungsformen können ein oder mehrere Knoten-CRs aus den Knoten-CRs 1316(1)-1316(N) einem Server mit einer oder mehreren der oben erwähnten Rechenressourcen entsprechen. Darüber hinaus können in einigen Ausführungsformen die Knoten-CRs 1316(1)-13161(N) eine oder mehrere virtuelle Komponenten beinhalten, wie etwa vGPUs, vCPUs und/oder dergleichen und/oder eine oder mehrere der Knoten-CRs 1316(1)-1316(N) können einer virtuellen Maschine (VM) entsprechen.
  • In mindestens einer Ausführungsform können gruppierte Rechenressourcen 1314 separate Gruppierungen von Knoten-CRs 1316 beinhalten, die in einem oder mehreren Racks (nicht gezeigt) untergebracht sind, oder vielen Racks, die in Datenzentren an verschiedenen geografischen Standorten (ebenfalls nicht gezeigt) untergebracht sind. Separate Gruppierungen von Knoten-CRs 1316 innerhalb gruppierter Rechenressourcen 1314 können gruppierte Rechen-, Netzwerk-, Arbeitsspeicher- oder Speicherressourcen beinhalten, die konfiguriert oder zugeteilt sein können, um eine oder mehrere Arbeitslasten zu unterstützen. In mindestens einer Ausführungsform können mehrere Knoten-CRs 1316 einschließlich CPUs, GPUs und/oder andere Prozessoren in einem oder mehreren Racks gruppiert werden, um Rechenressourcen bereitzustellen, um eine oder mehrere Arbeitslasten zu unterstützen. Das eine oder die mehreren Racks können auch eine beliebige Anzahl von Leistungsmodulen, Kühlmodulen und/oder Netzwerkschaltern in beliebiger Kombination beinhalten.
  • Der Ressourcen-Orchestrierer 1322 kann einen oder mehrere Knoten-CRs 1316(1)-1316(N) und/oder gruppierte Rechenressourcen 1314 und/oder gruppierte Rechenressourcen 1314 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcen-Orchestrierer 1322 eine Softwaredesigninfrastruktur-Managementeinheit („SDI“) für das Rechenzentrum 1300 beinhalten. Der Ressourcen-Orchestrierer 1322 kann Hardware, Software oder eine Kombination davon beinhalten.
  • In mindestens einer Ausführungsform, wie in 13 gezeigt, kann die Framework-Schicht 1320 einen Job-Scheduler 1332, einen Konfigurationsmanager 1334, einen Ressourcenmanager 1336 und/oder ein verteiltes Dateisystem 1338 beinhalten. Die Framework-Schicht 1320 kann ein Framework beinhalten, um Software 1332 der Softwareschicht 1330 und/oder eine oder mehrere Anwendung(en) 1342 der Anwendungsschicht 1340 zu unterstützen. Die Software 1332 oder die Anwendung(en) 1342 kann bzw. können webbasierte Dienstsoftware oder Anwendungen beinhalten, wie beispielsweise diejenigen, die von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. Die Framework-Schicht 1320 kann eine Art von freiem und quelloffenem Software-Webanwendungs-Framework wie Apache Spark™ (im Folgenden „Spark“) sein, das das verteilte Dateisystem 1338 für groß angelegte Datenverarbeitung (z. B. „Big Data“) verwenden kann, ist jedoch nicht darauf beschränkt. In mindestens einer Ausführungsform kann der Job-Scheduler 1332 einen Spark-Treiber umfassen, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Datenzentrums 1300 unterstützt werden. Der Konfigurationsmanager 1334 kann in der Lage sein, verschiedene Schichten zu konfigurieren, wie etwa die Softwareschicht 1330 und die Framework-Schicht 1320 einschließlich Spark und ein verteiltes Dateisystem 1338 zum Unterstützen groß angelegter Datenverarbeitung. Der Ressourcenmanager 1336 kann in der Lage sein, geclusterte oder gruppierte Computerressourcen zu verwalten, die dem verteilten Dateisystem 1338 und dem Job-Scheduler 1332 zugeordnet oder zur Unterstützung zugeteilt sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Computerressourcen gruppierte Computerressourcen 1314 in der Datenzentrum-Infrastrukturschicht 1310 beinhalten. Der Ressourcenmanager 1036 kann sich mit dem Ressourcen-Orchestrierer 1312 koordinieren, um diese abgebildeten oder zugewiesenen Computerressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die in der Softwareschicht 1330 enthaltene Software 1332 Software beinhalten, die durch mindestens Teile der Knoten-CRs 1316(1)-1316(N), der gruppierte Rechenressourcen 1314 und/oder des verteiltes Dateisystems 1338 der Framework-Schicht 1320 verwendet wird. Eine oder mehrere Arten von Software können unter anderem Internet-Webseiten-Suchsoftware, E-Mail-Virenscan-Software, Datenbanksoftware und Streaming-Video-Content-Software beinhalten.
  • In mindestens einer Ausführungsform kann/können die Anwendung(en) 1342, die in der Anwendungsschicht 1340 beinhaltet sind, einen oder mehrere Anwendungstypen beinhalten, die durch mindestens Teile der Knoten-CRs 1316(1)-1316(N), der gruppierte Rechenressourcen 1314 und/oder dem verteilten Dateisystem 1338 der Framework-Schicht 1320 verwendet werden. Eine oder mehrere Arten von Anwendungen können eine beliebige Anzahl einer Genomik-Anwendung, einer kognitiven Berechnung und einer maschinellen Lernanwendung beinhalten, einschließlich Trainings- oder Inferenzsoftware, Framework-Software für maschinelles Lernen (z. B. PyTorch, TensorFlow, Caffe usw.) und/oder andere Anwendungen maschinellen Lernens, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden.
  • In mindestens einer Ausführungsform kann jeder von dem Konfigurationsmanager 1334, dem Ressourcenmanager 1336 und dem Ressourcen-Orchestrierer 1312 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen auf Grundlage einer beliebigen Menge und Art von Daten umsetzen, die auf jede technisch machbare Weise erfasst werden. Selbstmodifizierende Aktionen können einen Datenzentrumsbetreiber des Datenzentrums 1300 davon befreien, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und womöglich nicht ausgelastete und/oder leistungsschwache Teile eines Datenzentrums zu vermeiden.
  • Das Datenzentrum 1300 kann Tools, Dienste, Software oder andere Ressourcen beinhalten, um ein oder mehrere Modelle des maschinellen Lernens zu trainieren oder Informationen unter Verwendung eines oder mehrerer Modelle des maschinellen Lernens gemäß einer oder mehreren hierin beschriebenen Ausführungsformen vorherzusagen oder abzuleiten. Zum Beispiel können ein oder mehrere Modelle für maschinelles Lernen trainiert werden, indem Gewichtungsparameter gemäß einer neuronalen Netzarchitektur unter Verwendung von Software und/oder Rechenressourcen, die oben in Bezug auf das Rechenzentrum 1300 beschrieben wurden, berechnet werden. Lernmodelle, die einem oder mehreren neuronalen Netzen entsprechen, können verwendet werden, um Informationen unter Verwendung von Ressourcen, die oben in Bezug auf das Datenzentrum 1300 beschrieben sind, abzuleiten oder vorherzusagen, indem Gewichtungsparameter verwendet werden, die durch eine oder mehrere Trainingstechniken berechnet werden, wie beispielsweise, aber nicht beschränkt auf die hierin beschriebenen.
  • In mindestens einer Ausführungsform kann das Datenzentrum 1300 CPUs, anwendungsspezifische integrierte Schaltkreise (ASICs), GPUs, FPGAs und/oder andere Hardware (oder entsprechende virtuelle Rechenressourcen) verwenden, um Training und/oder Inferenz unter Verwendung der oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere oben beschriebene Software- und/oder Hardwareressourcen als Dienst konfiguriert sein, um Benutzern zu ermöglichen, Inferenzen von Informationen zu trainieren oder durchzuführen, wie etwa Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Beispielhafte Netzwerkumgebungen
  • Netzwerkumgebungen, die zur Verwendung beim Umsetzen von Ausführungsformen der Offenbarung geeignet sind, können ein oder mehrere Client-Vorrichtungen, Server, Network Attached Storage (NAS), andere Back-End-Vorrichtungen und/oder andere Vorrichtungstypen beinhalten. Die Client-Vorrichtungen, Server und/oder andere Vorrichtungstypen (z. B. jede Vorrichtung) können auf einer oder mehreren Instanzen der Rechenvorrichtung(en) 1200 aus 12 umgesetzt sein - z. B. kann jede Vorrichtung ähnliche Komponenten, Merkmale und/oder Funktionen der Rechenvorrichtung(en) 1200 enthalten. Wenn Back-End-Vorrichtungen (z. B. Server, NAS usw.) umgesetzt sind, können die Back-End-Vorrichtungen außerdem als Teil eines Datenzentrums 1300 beinhaltet sein, wofür ein Beispiel hierin mit Bezug auf 13 ausführlicher beschrieben ist.
  • Komponenten einer Netzwerkumgebung können über ein oder mehrere Netzwerke miteinander kommunizieren, die drahtgebunden, drahtlos oder beides sein können. Das Netzwerk kann mehrere Netzwerke oder ein Netzwerk von Netzwerken umfassen. Beispielsweise kann das Netzwerk ein oder mehrere Wide Area Networks (WANs), ein oder mehrere Local Area Networks (LANs), ein oder mehrere öffentliche Netzwerke wie das Internet und/oder ein öffentliches Telefonvermittlungsnetz (PSTN) und/oder ein oder mehrere private Netzwerke beinhalten. Wenn das Netz ein drahtloses Telekommunikationsnetz umfasst, können Komponenten wie etwa eine Basisstation, ein Kommunikationsmast oder sogar Zugangspunkte (sowie andere Komponenten) drahtlose Konnektivität bereitstellen.
  • Kompatible Netzwerkumgebungen können eine oder mehrere Peer-to-Peer-Netzwerkumgebungen - in diesem Fall kann ein Server nicht in einer Netzwerkumgebung enthalten sein - und eine oder mehrere Client-Server-Netzwerkumgebungen - in diesem Fall können ein oder mehrere Server in einer Netzwerkumgebung enthalten sein - beinhalten. In Peer-to-Peer-Netzwerkumgebungen kann die hierin in Bezug auf einen oder mehrere Server beschriebene Funktionalität auf einer beliebigen Anzahl von Client-Vorrichtungen umgesetzt werden.
  • In mindestens einer Ausführungsform kann eine Netzwerkumgebung eine oder mehrere Cloud-basierte Netzwerkumgebungen, eine verteilte Computerumgebung, eine Kombination davon usw. beinhalten. Eine Cloud-basierte Netzwerkumgebung kann eine Framework-Schicht, einen Job-Scheduler, einen Ressourcenmanager und ein verteiltes Dateisystem beinhalten, das auf einem oder mehreren Servern umgesetzt ist, die einen oder mehrere Kernnetzwerkserver und/oder Edge-Server beinhalten können. Eine Framework-Schicht kann ein Framework umfassen, um Software einer Software-Schicht und/oder eine oder mehrere Anwendung(en) einer Anwendungsschicht zu unterstützen. Die Software oder Anwendung(en) können jeweils webbasierte Dienstsoftware oder Anwendungen beinhalten. In Ausführungsformen können eine oder mehrere der Client-Vorrichtungen die webbasierte Dienstsoftware oder Anwendungen verwenden (z. B. durch Zugreifen auf die Dienstsoftware und/oder Anwendungen über eine oder mehrere Anwendungsprogrammierschnittstellen (APIs)). Die Framework-Schicht kann, ohne darauf beschränkt zu sein, eine Art von freiem und quelloffenem Software-Webanwendungs-Framework sein, wie es beispielsweise ein verteiltes Dateisystem für groß angelegte Datenverarbeitung (z. B. „Big Data“) verwenden kann.
  • Eine Cloud-basierte Netzwerkumgebung kann Cloud-Computing und/oder Cloud-Speicher bereitstellen, die eine beliebige Kombination von hierin beschriebenen Computer- und/oder Datenspeicherfunktionen (oder einen oder mehrere Teile davon) ausführt. Jede dieser verschiedenen Funktionen kann über mehrere Standorte von zentralen oder Kernservern (z. B. von einem oder mehreren Rechenzentren, die über einen Staat, eine Region, ein Land, den Globus usw. verteilt sein können) verteilt werden. Wenn eine Verbindung zu einem Benutzer (z. B. einer Client-Vorrichtung) relativ nahe bei einem oder mehreren Edge-Servern ist, können ein oder mehrere Core-Server mindestens einen Teil der Funktionalität dem oder den Edge-Servern zuweisen. Eine Cloud-basierte Netzwerkumgebung kann privat (z. B. auf eine einzelne Organisation beschränkt), öffentlich (z. B. für viele Organisationen verfügbar) und/oder eine Kombination davon (z. B. eine Hybrid-Cloud-Umgebung) sein.
  • Die Client-Vorrichtung(en) kann/können zumindest einige der Komponenten, Merkmale und Funktionen der beispielhaften Rechenvorrichtung(en) 1200 beinhalten, die hierin mit Bezug auf 12 beschrieben sind. Beispielhaft und nicht einschränkend kann eine Client-Vorrichtung ein Personal Computer (PC), ein Laptop-Computer, ein Mobilgerät, ein Smartphone, ein Tablet-Computer, eine Smartwatch, ein tragbarer Computer, ein Personal Digital Assistent (PDA), ein MP3-Player, ein Virtual-Reality-Headset, ein globales Positionsbestimmungssystem (GPS) oder -gerät, ein Videoplayer, eine Videokamera, ein Überwachungsgerät oder -system, ein Fahrzeug, ein Boot, ein fliegendes Schiff, eine virtuelle Maschine, eine Drohne, ein Roboter, eine tragbare Kommunikationsvorrichtung, eine Krankenhausvorrichtung, ein Spielgerät oder -system, ein Unterhaltungssystem, Fahrzeugcomputersystem, eine eingebettete Systemsteuerung, Fernbedienung, ein Haushaltgerät, Verbraucherelektronik, eine Workstation, eine Edge-Vorrichtung, eine beliebige Kombination dieser abgegrenzten Vorrichtungen oder eine beliebige andere geeignete Vorrichtung sein.
  • Die Offenbarung kann im allgemeinen Kontext von Computercode oder maschinenverwendbaren Anweisungen beschrieben werden, einschließlich computerausführbarer Anweisungen wie etwa Programmmodulen, die von einem Computer oder einer anderen Maschine wie etwa einem persönlichen Datenassistenten oder einem anderen Handgerät ausgeführt werden. Im Allgemeinen beziehen sich Programmmodule einschließlich Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw. auf Code, der bestimmte Aufgaben ausführt oder bestimmte abstrakte Datentypen implementiert. Die Offenbarung kann in einer Vielzahl von Systemkonfigurationen umgesetzt werden, einschließlich tragbarer Geräte, Unterhaltungselektronik, Allzweckcomputer, speziellere Computergeräte usw. Die Offenbarung kann auch in verteilten Computerumgebungen umgesetzt werden, in denen Aufgaben durch Fernverarbeitungsgeräte ausgeführt werden, die über ein Kommunikationsnetzwerk verbunden sind.
  • Wie hierin verwendet, sollte der Ausdruck „und/oder“ in Bezug auf zwei oder mehr Elemente so interpretiert werden, dass er nur ein Element oder eine Kombination von Elementen bedeutet. Beispielsweise kann „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder Elemente A, B und C beinhalten. Außerdem kann „mindestens eines von Element A oder Element B“ mindestens eines von Element A, mindestens eines von Element B oder mindestens eines von Element A und mindestens eines von Element B beinhalten. Ferner kann „mindestens eines von Element A und Element B“ mindestens eines von Element A, mindestens eines von Element B oder mindestens eines von Element A und mindestens eines von Element B beinhalten.
  • Der Gegenstand der vorliegenden Offenbarung wird hierin präzise beschrieben, um die gesetzlichen Anforderungen zu erfüllen. Die Beschreibung selbst soll jedoch den Umfang dieser Offenbarung nicht einschränken. Vielmehr haben die Erfinder in Erwägung gezogen, dass der beanspruchte Gegenstand auch auf andere Weise ausgeführt werden 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 Ausdrücke „Schritt“ und/oder „Block“ hierin verwendet werden können, um verschiedene Elemente der verwendeten Verfahren zu bezeichnen, sollten die Ausdrücke darüber hinaus nicht so interpretiert werden, dass sie eine bestimmte Reihenfolge zwischen verschiedenen hierin offenbarten Schritten implizieren, es sei denn, die Reihenfolge der einzelnen Schritte ist explizit beschrieben.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16514230 [0030]
    • US 16101232 [0110]
  • Zitierte Nicht-Patentliteratur
    • „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles” (Norm Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Norm Nr. J3016-201609, veröffentlicht am 30. September 2016 [0068]

Claims (26)

  1. Verfahren, Folgendes umfassend: Anwenden, auf ein neuronales Netz, von Sensordaten, die ein sensorisches Feld eines Sensors darstellen; Berechnen, unter Verwendung des neuronalen Netzes und zumindest teilweise auf Grundlage der Sensordaten, einer oder mehrerer Positionen eines oder mehrerer Kontrollpunkte einer oder mehrerer Kurven, die in einem Bild identifiziert sind, das den Sensordaten entspricht; Generieren, unter Verwendung eines Kurvenanpassungsalgorithmus und zumindest teilweise auf Grundlage der Positionen der Kontrollpunkte, der einen oder mehreren Kurven; und Durchführen einer oder mehrerer Operationen durch eine Maschine zumindest teilweise auf Grundlage der einen oder mehreren Kurven.
  2. Verfahren nach Anspruch 1, wobei das Berechnen der einen oder mehreren Positionen eines oder mehrerer Kontrollpunkte Folgendes umfasst: Berechnen, unter Verwendung des neuronalen Netzes, erster Daten, die Pixel des Bildes innerhalb eines Radius mindestens einer Kurve der einen oder mehreren in dem Bild identifizierten Kurven angeben; Berechnen zweiter Daten, die Abstände zu dem einen oder den mehreren Kontrollpunkten der einen oder mehreren Kurven angeben; und Dekodieren der ersten und zweiten Daten, um die eine oder mehreren Positionen des einen oder der mehreren Kontrollpunkte zu bestimmen.
  3. Verfahren nach Anspruch 2, wobei das neuronale Netz ferner dritte Daten berechnet, die Klassifizierungsinformationen für die eine oder mehreren Kurven angeben, und das Verfahren ferner Folgendes umfasst: Zuordnen, zumindest teilweise auf Grundlage der dritten Daten, der Klassifizierungsinformationen zu der einen oder den mehreren Kurven, wobei das Durchführen der einen oder mehreren Operationen durch die Maschine ferner zumindest teilweise auf den zugeordneten Klassifizierungsinformationen beruht.
  4. Verfahren nach Anspruch 3, wobei die dritten Daten eine oder mehrere Bit-Klassifizierungsmasken darstellen.
  5. Verfahren nach Anspruch 4, wobei eine Anzahl von Bit-Klassifizierungsmasken der einen oder mehreren Bit-Klassifizierungsmasken gleich eins weniger als eine Anzahl von Klassifikationstypen ist, für die das neuronale Netz Ausgaben berechnet.
  6. Verfahren nach Anspruch 2, wobei die ersten Daten eine Binärmaske darstellen, wobei die Pixel des Bildes innerhalb des Radius der mindestens einen Kurve der einen oder mehreren im Bild dargestellten Kurven einen ersten Wert aufweisen und andere Pixel außer den Pixeln einen zweiten Wert aufweisen, der sich von dem ersten Wert unterscheidet.
  7. Verfahren nach Anspruch 2, wobei jede Kurve eine Anzahl von Kontrollpunkten beinhaltet, die größer als drei ist, wobei die zweiten Daten eine Vielzahl von Regressionsmasken darstellen und die Vielzahl von Regressionsmasken eine Anzahl von x-Achsen-Regressionsmasken und y-Achsen-Regressionsmasken beinhalten, die gleich der Anzahl von Kontrollpunkten sind.
  8. Verfahren nach Anspruch 1, wobei der Kurvenanpassungsalgorithmus mindestens einen von einem zweidimensionalem Bezierkurvenanpassungsalgorithmus, einem dreidimensionalen Bezierkurvenanpassungsalgorithmus, einem kubischen Bezierkurvenanpassungsalgorithmus, einem Bezierkurvenanpassungsalgorithmus höherer Ordnung oder einem geteilten Bezierkurvenanpassungsalgorithmus beinhaltet.
  9. Verfahren nach Anspruch 1, ferner umfassend: Ausführen eines Clustering-Algorithmus auf der einen oder den mehreren Kurven, um einen endgültigen Kurvensatz zu generieren, wobei das Durchführen der einen oder mehreren Operationen zumindest teilweise auf dem endgültigen Kurvensatz beruht.
  10. Verfahren nach Anspruch 9, wobei der Clustering-Algorithmus eine dichtebasierte Spatial Clustering of Application with Noise (DBSCAN)-Operation umfasst, die integralen Verlust als Ähnlichkeitsfunktion verwendet.
  11. Verfahren nach Anspruch 1, wobei die eine oder die mehreren Kurven einer oder mehreren von Fahrspurmarkierungen, Fahrspurlinien, Straßenbegrenzungslinien, Kreuzungslinien, Fußgängerwegen, Radweglinien, Text, Masten, Bäumen, Lichtmasten oder Schildern entsprechen.
  12. System, Folgendes umfassend: einen oder mehrere Sensoren; eine oder mehrere Verarbeitungseinheiten; und eine oder mehrere Speichervorrichtungen, die Anweisungen speichert, die bei Ausführung unter Verwendung der einen oder mehreren Verarbeitungseinheiten die eine oder mehreren Verarbeitungseinheiten dazu veranlasst, Operationen auszuführen, die Folgendes umfassen: Anwenden, auf ein neuronales Netz, von Sensordaten, die Bild darstellen, die einem sensorischen Feld eines Sensors des einen oder der mehreren Sensoren entsprechen; Berechnen, unter Verwendung des neuronalen Netzes und zumindest teilweise auf Grundlage der Sensordaten, von Positionen eines oder mehrerer Kontrollpunkte einer oder mehrerer Kurven, die einem oder mehreren in dem Bild identifizierten Merkmalen entsprechen; Generieren, unter Verwendung eines Kurvenanpassungsalgorithmus und zumindest teilweise auf Grundlage der Positionen der Kontrollpunkte, der einen oder mehreren Kurven; und Durchführen einer oder mehrerer Operationen zumindest teilweise auf Grundlage der einen oder mehreren Kurven.
  13. System nach Anspruch 12, wobei das Berechnen Folgendes umfasst: Berechnen einer Binärmaske, die Pixel des Bildes innerhalb eines Radius von mindestens einer Kurve einer oder mehrerer Kurven angibt, die in dem Bild identifizierten Merkmalen entsprechen; Berechnen einer oder mehrerer Abstandsregressionskarten, die Abstände zu Kontrollpunkten der einen oder mehreren Kurven angeben; und Dekodieren der Binärmaske und der Abstandsregressionskarten zum Bestimmen der Positionen der Kontrollpunkte.
  14. System nach Anspruch 13, wobei das neuronale Netz ferner eine oder mehrere Bit-Klassifizierungsmasken generiert, die Klassifizierungsinformationen für die eine oder mehrere Kurven angeben, und wobei die Operationen ferner Folgendes umfassen: Zuordnen, zumindest teilweise auf Grundlage der Bit-Klassifizierungsmasken, der Klassifizierungsinformationen zu der einen oder den mehreren Kurven, wobei das Durchführen der einen oder mehreren Operationen ferner zumindest teilweise auf den zugeordneten Klassifizierungsinformationen beruht.
  15. System nach Anspruch 14, wobei eine Anzahl von Bit-Klassifizierungsmasken gleich eins weniger als eine Anzahl von Klassifikationstypen ist, für die das neuronale Netz Ausgaben berechnet.
  16. System nach Anspruch 13, wobei jede Kurve eine Anzahl von Kontrollpunkten beinhaltet, und die Abstandsregressionsmasken eine Anzahl von x-Achsen-Abstandsregressionsmasken und y-Achsen-Abstandsregressionsmasken beinhalten, die gleich der Anzahl von Kontrollpunkten sind.
  17. System nach Anspruch 12, wobei der Kurvenanpassungsalgorithmus mindestens einen von einem zweidimensionalem Bezierkurvenanpassungsalgorithmus, einem dreidimensionalen Bezierkurvenanpassungsalgorithmus, einem kubischen Bezierkurvenanpassungsalgorithmus, einem Bezierkurvenanpassungsalgorithmus höherer Ordnung oder einem geteilten Bezierkurvenanpassungsalgorithmus beinhaltet.
  18. System nach Anspruch 12, wobei die Operationen ferner Folgendes umfassen: Ausführen eines Clustering-Algorithmus auf der einen oder den mehreren Kurven, um einen endgültigen Kurvensatz zu generieren, wobei das Durchführen der einen oder mehreren Operationen zumindest teilweise auf dem endgültigen Kurvensatz beruht.
  19. System nach Anspruch 12, wobei das System mindestens eines von Folgendem umfasst: ein System zum Durchführen von Simulationsoperationen; ein System zum Durchführen von Simulationsoperationen, um autonome Maschinenanwendungen zu testen oder zu validieren; ein System zum Durchführen von Deep-Learning-Operationen; ein unter Verwendung einer Edge-Vorrichtung umgesetztes System; ein System mit einer oder mehreren virtuellen Maschinen (VM); ein zumindest teilweise in einem Datenzentrum umgesetztes System; oder ein System, das zumindest teilweise unter Verwendung von Cloud-Computing-Ressourcen umgesetzt ist.
  20. Verfahren, umfassend: Empfangen von Annotationsdaten, die eine Polylinie, die einem Bild zugeordnet ist, und Klassifizierungsinformationen, die der Polylinie zugeordnet ist, darstellen; Ausführen, zumindest teilweise auf Grundlage der Polylinie, eines Kurvenanpassungsalgorithmus, um eine Vielzahl von der Kurve zugeordneten Kontrollpunkten zu bestimmen; Kodieren, zumindest teilweise auf Grundlage der Vielzahl von der Kurve zugeordneten Kontrollpunkte, einer Binärmaske, die Pixel des Bilds innerhalb eines Radius zu der Kurve angibt; und Kodieren einer Vielzahl von Abstandsregressionsmasken, wobei jede Abstandsregressionsmaske Abstände zu einem Kontrollpunkt der Vielzahl von Kontrollpunkten angibt; Kodieren, zumindest teilweise auf Grundlage der Klassifizierungsinformationen, einer oder mehrerer Bit-Klassifizierungsmasken; und Trainieren eines neuronalen Netzes unter Verwendung der Binärmaske, der Vielzahl von Abstandsregressionsmasken und der einen oder mehreren Klassifizierungsmasken als Ground-Truth-Daten.
  21. Verfahren nach Anspruch 20, ferner umfassend Zuschneiden von mindestens einem von einem oberen Abschnitt oder einem unteren Abschnitt der Polylinie, um eine zugeschnittene Polylinie zu generieren, wobei das Ausführen des Kurvenanpassungsalgorithmus zumindest teilweise auf der zugeschnittenen Polylinie basiert.
  22. Verfahren nach Anspruch 20, ferner umfassend: Empfangen erster Annotationsdaten, die ein Polygon darstellen; und Extrahieren, zumindest teilweise auf Grundlage der ersten Annotationsdaten, der Polylinie als eines von einer linken Kante, einer rechten Kante oder einer Mittelgeraden des Polygons, um die Annotationsdaten zu generieren.
  23. Verfahren nach Anspruch 20, wobei das neuronale Netz unter Verwendung eines oder mehrerer von integralem Verlust, binärem Kreuzentropieverlust, maskiertem L1-Verlust oder maskiertem binärem Kreuzentropieverlust trainiert wird.
  24. Verfahren nach Anspruch 20, wobei das Kodieren der Vielzahl von Abstandsregressionskarten für jeden Kontrollpunkt der Vielzahl von Kontrollpunkten Kodieren einer x-Achsen-Distanzregressionskarte und einer y-Achsen-Abstandsregressionskarte beinhaltet.
  25. Verfahren nach Anspruch 20, wobei das neuronale Netz dazu trainiert ist, eine Anzahl n von Klassifizierungstypen vorherzusagen und die eine oder mehreren Bit-Klassifizierungsmasken zu kodieren, einschließlich des Kodierens von n-1 Bit-Klassifizierungsmasken.
  26. Verfahren nach Anspruch 20, wobei der Kurvenanpassungsalgorithmus zumindest einen von einem zweidimensionalem Bezierkurvenanpassungsalgorithmus, einem dreidimensionalen Bezierkurvenanpassungsalgorithmus, einem kubischen Bezierkurvenanpassungsalgorithmus, einem Bezierkurvenanpassungsalgorithmus höherer Ordnung oder einem geteilten Bezierkurvenanpassungsalgorithmus beinhaltet.
DE112020000413.9T 2019-12-03 2020-12-02 Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren Pending DE112020000413T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962943200P 2019-12-03 2019-12-03
US62/943,200 2019-12-03
PCT/US2020/062869 WO2021113346A1 (en) 2019-12-03 2020-12-02 Landmark detection using curve fitting for autonomous driving applications
US17/109,421 US11651215B2 (en) 2019-12-03 2020-12-02 Landmark detection using curve fitting for autonomous driving applications
US17/109,421 2020-12-02

Publications (1)

Publication Number Publication Date
DE112020000413T5 true DE112020000413T5 (de) 2021-11-04

Family

ID=76091588

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000413.9T Pending DE112020000413T5 (de) 2019-12-03 2020-12-02 Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren

Country Status (5)

Country Link
US (2) US11651215B2 (de)
JP (1) JP2023503729A (de)
CN (1) CN113994390A (de)
DE (1) DE112020000413T5 (de)
WO (1) WO2021113346A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022118631A1 (de) 2022-07-26 2024-02-01 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Verfahren, System und Computerprogrammprodukt zur Validierung eines Fahrerassistenzsystems (ADAS) und/oder eines automatisierten Fahrsystems (ADS)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11043124B2 (en) 2018-01-31 2021-06-22 Peter Yeung Roadway information detection system consists of sensors on the autonomous vehicles and devices for the road
CA3130361A1 (en) 2016-10-18 2018-03-01 Peter Yeung Roadway information detection sensor device/system for autonomous vehicles
JP7083306B2 (ja) * 2018-12-17 2022-06-10 本田技研工業株式会社 走行軌道決定処理及び自動運転装置
US20210208236A1 (en) * 2020-01-03 2021-07-08 Qualcomm Incorporated Techniques for radar data compression
US11520342B2 (en) * 2020-03-12 2022-12-06 Pony Ai Inc. System and method for determining realistic trajectories
US11776282B2 (en) * 2021-03-26 2023-10-03 Here Global B.V. Method, apparatus, and system for removing outliers from road lane marking data
US20220414385A1 (en) * 2021-06-29 2022-12-29 New Eagle, Llc Use of dbscan for lane detection
US20230035780A1 (en) * 2021-07-29 2023-02-02 Zoox, Inc. Systematic fault detection in vehicle control systems
GB2609434A (en) * 2021-07-30 2023-02-08 Continental Automotive Gmbh A method and a system to detect a junction ahead of a vehicle
GB2610169A (en) * 2021-08-20 2023-03-01 Aptiv Tech Ltd Method and system for creating training data
CN113911177B (zh) * 2021-10-14 2024-02-02 华晟智能自动化装备有限公司 一种直线往复式rgv曲线调速方法及***
US12008788B1 (en) * 2021-10-14 2024-06-11 Amazon Technologies, Inc. Evaluating spatial relationships using vision transformers
US20230135234A1 (en) * 2021-10-28 2023-05-04 Nvidia Corporation Using neural networks for 3d surface structure estimation based on real-world data for autonomous systems and applications
CN114581667A (zh) * 2022-03-04 2022-06-03 北京百度网讯科技有限公司 地图数据处理方法、装置、电子设备和存储介质
CN114781498B (zh) * 2022-04-06 2023-09-01 欧亚高科数字技术有限公司 基于人工智能的道路塌陷监测方法及***
CN115240411B (zh) * 2022-06-29 2023-05-09 合肥工业大学 一种城市道路交叉口右转冲突警示线测画方法
CN116453133B (zh) * 2023-06-16 2023-09-05 湖北工业大学 基于贝塞尔曲线和关键点的横幅文本检测方法及***
CN117311563B (zh) * 2023-11-28 2024-02-09 西安大地测绘股份有限公司 一种基于ar的公路违法用地监测方法及***

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006062061B4 (de) * 2006-12-29 2010-06-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung, Verfahren und Computerprogramm zum Bestimmen einer Position basierend auf einem Kamerabild von einer Kamera
US8935057B2 (en) * 2012-01-17 2015-01-13 LimnTech LLC Roadway mark data acquisition and analysis apparatus, systems, and methods
US9784843B2 (en) * 2012-01-17 2017-10-10 Limn Tech LLC Enhanced roadway mark locator, inspection apparatus, and marker
US11630800B2 (en) 2015-05-01 2023-04-18 Nvidia Corporation Programmable vision accelerator
EP3171297A1 (de) 2015-11-18 2017-05-24 CentraleSupélec Bildsegmentierung mit gemeinsamer randerkennung und objekterkennung mittels tiefen lernens
US10289469B2 (en) 2016-10-28 2019-05-14 Nvidia Corporation Reliability enhancement utilizing speculative execution systems and methods
KR102628654B1 (ko) * 2016-11-07 2024-01-24 삼성전자주식회사 차선을 표시하는 방법 및 장치
US10670416B2 (en) * 2016-12-30 2020-06-02 DeepMap Inc. Traffic sign feature creation for high definition maps used for navigating autonomous vehicles
US11214273B2 (en) 2017-06-23 2022-01-04 Nvidia Corporation Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system
WO2019071212A1 (en) * 2017-10-06 2019-04-11 Netradyne Inc. SYSTEM AND METHOD FOR DETERMINING A CURVE
DE112019000122T5 (de) * 2018-02-27 2020-06-25 Nvidia Corporation Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US11150665B2 (en) * 2019-09-17 2021-10-19 Ha Q Tran Smart vehicle
US11353592B2 (en) * 2019-09-30 2022-06-07 Zoox, Inc. Complex ground profile estimation
US20210192231A1 (en) * 2019-12-20 2021-06-24 Qualcomm Incorporated Adaptive multiple region of interest camera perception

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" (Norm Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Norm Nr. J3016-201609, veröffentlicht am 30. September 2016

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022118631A1 (de) 2022-07-26 2024-02-01 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Verfahren, System und Computerprogrammprodukt zur Validierung eines Fahrerassistenzsystems (ADAS) und/oder eines automatisierten Fahrsystems (ADS)

Also Published As

Publication number Publication date
WO2021113346A1 (en) 2021-06-10
JP2023503729A (ja) 2023-02-01
US11651215B2 (en) 2023-05-16
US20230214654A1 (en) 2023-07-06
CN113994390A (zh) 2022-01-28
US20210166052A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020004139T5 (de) Erstellung von karten und lokalisierung für anwendungen im bereich des autonomen fahrens
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE112019006484T5 (de) Detektion von abständen zu hindernissen in autonomen maschinenanwendungen
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
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
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
DE112020001396T5 (de) Formfusion zur bildanalyse
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE102021126648A1 (de) Imitationstraining mittels synthetischen daten
DE112020001400T5 (de) Iterative erzeugung räumlicher graphen
DE112021001994T5 (de) Modellbasiertes bestärkendes lernen zur verhaltensvorhersage in autonomen systemen und anwendungen
DE102019113114A1 (de) Verhaltensgesteuerte wegplanung in autonomen maschinenanwendungen
DE102021129528A1 (de) Erkennung von Einsatzfahrzeugen für Anwendungen im Bereich des autonomen Fahrens
DE102022121121A1 (de) Objektverfolgung unter Verwendung von LiDAR-Daten für autonome Maschinenanwendungen
DE112021000104T5 (de) Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen
DE102021105245A1 (de) Verwenden von bildaugmentation mit simulierten objekten zum trainieren von maschinenlernmodellen in autonomen fahranwendungen
DE102022104026A1 (de) Erzeugung von ground-truth-daten für die wahrnehmung durch tiefe neuronale netze in anwendungen für autonomes fahren
DE102022126706A1 (de) 3D-Oberflächenrekonstruktion mit Punktwolkenverdichtung unter Verwendung tiefer neuronaler Netze für autonome Systeme und Anwendungen

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06K0009000000

Ipc: G06V0010000000