DE112022000498T5 - TRAINING PERCEPTION MODELS USING SYNTHETIC DATA FOR AUTONOMOUS SYSTEMS AND APPLICATIONS - Google Patents

TRAINING PERCEPTION MODELS USING SYNTHETIC DATA FOR AUTONOMOUS SYSTEMS AND APPLICATIONS Download PDF

Info

Publication number
DE112022000498T5
DE112022000498T5 DE112022000498.3T DE112022000498T DE112022000498T5 DE 112022000498 T5 DE112022000498 T5 DE 112022000498T5 DE 112022000498 T DE112022000498 T DE 112022000498T DE 112022000498 T5 DE112022000498 T5 DE 112022000498T5
Authority
DE
Germany
Prior art keywords
data
vehicle
machine
synthetic data
machine learning
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
DE112022000498.3T
Other languages
German (de)
Inventor
David Jesus Acuna Marrero
Sanja Fidler
Jonah Philion
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
Priority claimed from PCT/US2022/031426 external-priority patent/WO2022251692A1/en
Publication of DE112022000498T5 publication Critical patent/DE112022000498T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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/0475Generative networks
    • 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
    • G06N3/094Adversarial learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/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
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

In verschiedenen Beispielen werden Systeme und Verfahren offenbart, die eine Domänenanpassungstheorie verwenden, um die Realitätslücke zwischen simulierten und echten Domänen für das Training von Modellen für maschinelles Lernen zu minimieren. Zum Beispiel kann das Sampling von räumlichen Prioritäten verwendet werden, um synthetische Daten zu erzeugen, die der Vielfalt der Daten aus der echten Welt besser entsprechen. Um mit diesen synthetischen Daten Modelle zu trainieren, die auch in der echten Welt gut durchführen, können die Systeme und Verfahren der vorliegenden Offenbarung einen Diskriminator verwenden, der es einem Modell ermöglicht, domäneninvariante Darstellungen zu lernen, um die Divergenz zwischen der virtuellen Welt und der echten Welt in einem latenten Raum zu minimieren. So ermöglichen die hier beschriebenen Techniken einen prinzipiellen Ansatz zum Erlernen neuronal-invarianter Repräsentationen und einen theoretisch inspirierten Ansatz für Proben aus einem Simulator, die in Kombination das Training von maschinellen Lernmodellen mit synthetischen Daten ermöglichen.Various examples disclose systems and methods that use domain adaptation theory to minimize the reality gap between simulated and real domains for training machine learning models. For example, spatial priority sampling can be used to produce synthetic data that more closely matches the diversity of real-world data. To use this synthetic data to train models that perform well in the real world, the systems and methods of the present disclosure may use a discriminator that allows a model to learn domain-invariant representations to measure the divergence between the virtual world and the to minimize the real world in a latent space. The techniques described here enable a principled approach to learning neural-invariant representations and a theoretically inspired approach for samples from a simulator, which in combination enable the training of machine learning models with synthetic data.

Description

STAND DER TECHNIKSTATE OF THE ART

Autonome und teilautonome Fahrsysteme, einschließlich fortgeschrittener Fahrerassistenzsysteme (ADAS), können Sensoren - wie beispielsweise Kameras, LiDAR-Sensoren und RADAR-Sensoren - verwenden, um ein Verständnis für die Umgebung des Fahrzeugs zu bilden. Dieses Verständnis kann Informationen über den Standort von Objekten, Hindernissen, Verkehrsschildern, Fahrbahnoberflächen und/oder anderen Markierungen beinhalten. Autonome Fahrsysteme stützen sich auf maschinelle Lernmodelle und/oder neuronale Netze, um die Prozesse des Aufnehmens von Informationen und der Entscheidungsfindung zu unterstützen. Ein effektives maschinelles Lernmodell oder neuronales Netz erfordert ein Training mit Sammlungen echter und/oder synthetischer Trainingsdaten.Autonomous and semi-autonomous driving systems, including advanced driver assistance systems (ADAS), can use sensors - such as cameras, LiDAR sensors and RADAR sensors - to form an understanding of the vehicle's surroundings. This understanding may include information about the location of objects, obstacles, traffic signs, road surfaces and/or other markings. Autonomous driving systems rely on machine learning models and/or neural networks to support the processes of information gathering and decision making. An effective machine learning model or neural network requires training with collections of real and/or synthetic training data.

Eine gängige Strategie für das Training von Wahrnehmungsmodellen ist der Einsatz von Datensammelfahrzeugen, die riesige Mengen echter Daten aufheben, eine große Anzahl von Kommentatoren anheuern, um die Daten zu beschriften, und dann die Modelle anhand dieser Daten mit Hilfe von überwachtem Lernen trainieren. Obwohl dieser Ansatz wahrscheinlich asymptotisch erfolgreich sein wird, steigen die finanziellen und zeitlichen Kosten mit der Menge der aufzunehmenden und zu beschriftenden Daten. Des Weiteren kann eine Veränderung der Sensoren dazu führen, dass der Aufwand in großem Umfang neu gemacht werden muss. Einige Aufgaben wie beispielsweise die Kennzeichnung mehrdeutiger, weit entfernter oder verdeckter Objekte können für Menschen schwierig oder sogar unmöglich sein.A common strategy for training perceptual models is to use data collection vehicles that take massive amounts of real data, hire large numbers of annotators to label the data, and then train the models on that data using supervised learning. Although this approach is likely to be asymptotically successful, the financial and time costs increase with the amount of data to be recorded and labeled. Furthermore, changing the sensors can result in the effort having to be redone on a large scale. Some tasks, such as labeling ambiguous, distant, or obscured objects, may be difficult or even impossible for humans.

Im Vergleich dazu hat das Sammeln von Daten aus Selbstfahrsimulatoren mehrere Vorteile. Erstens weist ein Benutzer die Kontrolle über den Inhalt eines Simulators auf, wodurch sich alle Selbstfahrszenarien effizient erzeugen lassen, unabhängig davon, wie selten das Ereignis in der realen Welt sein mag. Zweitens sind im Simulator alle Informationen über den Zustand der Welt bekannt, so dass nahezu perfekte Beschriftungen für Informationen erstellt werden können, die der Mensch möglicherweise nicht richtig zuordnen kann, sowie Beschriftungen für vollständig verdeckte Objekte, die außerhalb der Simulation nur schwer oder gar nicht zu beschriften wären. Schließlich lassen sich extrinsische und intrinsische Sensoren in einem Simulator leichter kontrollieren, so dass Daten für ein festes Szenario mit einer beliebigen Sensorausrüstung aufgenommen werden können. In Anbetracht dieser Eigenschaften der Simulation wäre es wertvoll, einsatzfähige Wahrnehmungsmodelle anhand von Daten zu trainieren, die man bei einer Simulation des selbstfahrenden Autos erhält.In comparison, collecting data from self-driving simulators has several advantages. First, a user has control over the content of a simulator, allowing all self-driving scenarios to be efficiently generated, regardless of how rare the event may be in the real world. Second, all information about the state of the world is known in the simulator, allowing near-perfect labels to be created for information that humans may not be able to correctly assign, as well as labels for completely occluded objects that are difficult or impossible to identify outside of the simulation would be labeled. Finally, extrinsic and intrinsic sensors are easier to control in a simulator, allowing data to be recorded for a fixed scenario using any sensor equipment. Given these properties of the simulation, it would be valuable to train operational perception models using data obtained from a simulation of the self-driving car.

Es gibt jedoch zwei kritische Herausforderungen bei der Verwendung eines Fahrsimulators. Erstens bilden die Sensormodelle in der Simulation die Sensoren der realen Welt nicht perfekt ab. Selbst bei exakter Kalibrierung der Extrinsics und Intrinsics ist es äußerst schwierig, alle Materialien der Szene perfekt zu kennzeichnen und komplizierte Interaktionen zwischen Sensoren und Objekten zu modellieren. Zweitens ist es schwierig, Inhalte aus der realen Welt in die Simulation zu integrieren. Das Layout der Welt kann unterschiedlich sein, die Objekte sind möglicherweise nicht vielfältig genug, und synthetische Materialien, Texturen und Wetterbedingungen sind möglicherweise nicht gut auf ihre echten Gegenstücke ausgerichtet. Ferner reagieren Modelle des maschinellen Lernens - und insbesondere neuronale Netze - sehr empfindlich auf diese Diskrepanzen und sind dafür bekannt, dass sie sich nur schlecht von einer virtuellen Domäne auf eine echte Domäne verallgemeinern lassen.However, there are two critical challenges when using a driving simulator. First, the sensor models in the simulation do not perfectly represent the sensors in the real world. Even with accurate calibration of the extrinsics and intrinsics, it is extremely difficult to perfectly label all the materials in the scene and to model complicated interactions between sensors and objects. Second, it is difficult to integrate real-world content into the simulation. The layout of the world may be different, the objects may not be diverse enough, and synthetic materials, textures, and weather conditions may not be well aligned with their real-world counterparts. Furthermore, machine learning models - and neural networks in particular - are very sensitive to these discrepancies and are known to generalize poorly from a virtual domain to a real domain.

KURZDARSTELLUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Ausführungsformen der vorliegenden Offenbarung beziehen sich auf das Training von Wahrnehmungsmodellen unter Verwendung synthetischer Daten für autonome Systeme und Anwendungen. Es werden Systeme und Verfahren offenbart, die die Theorie der Domänenanpassung nutzen, um die Realitätslücke zwischen simulierten und echten Domänen zu minimieren. Zum Beispiel verwenden das System und die Verfahren der vorliegenden Offenbarung Stichproben von räumlichen Prioritäten - z. B. unabhängig von der Struktur der Straße -, um synthetische Daten zu erzeugen, die der Vielfalt der Daten aus der realen Welt besser entsprechen, um die Nachteile früherer Lösungen zu berücksichtigen. Um Modelle mit synthetischen Daten zu trainieren, die auch in der echten Welt gut durchgeführt werden können, verwenden die Systeme und Verfahren der vorliegenden Offenbarung einen Diskriminator, der es einem Modell ermöglicht, domäneninvariante Darstellungen zu lernen, um die Divergenz zwischen der virtuellen Welt und der echten Welt in einem latenten Raum zu minimieren. Durch die Minimierung der Divergenz in einem Darstellungsraum kann der Algorithmus zur Anpassung der Domäne unabhängig von verschiedenen Sensoren und Architekturen sein. Um das Training ferner zu verbessern, können Pseudo-Kennzeichnungen mit Hilfe von Konfidenz-Levels in den Vorhersagen des Modells erzeugt werden, um das Modell während des Trainings mit echten Daten zu konfrontieren. So ermöglichen die hier beschriebenen Techniken einen prinzipiellen Ansatz zum Erlernen neuronalinvarianter Repräsentationen und einen theoretisch inspirierten Ansatz für Proben aus einem Simulator, die in Kombination das Training von maschinellen Lernmodellen - und insbesondere von neuronalen Netzen - unter Verwendung simulierter Daten ermöglichen. Auf diese Weise wird der Umfang der Rechen- und Zeitressourcen, die für das Training eines genauen und präzisen Modells für den Einsatz in der realen Welt erforderlich sind, in Bezug auf herkömmliche Trainingsansätze erheblich verringert.Embodiments of the present disclosure relate to training perceptual models using synthetic data for autonomous systems and applications. Systems and methods are disclosed that utilize domain adaptation theory to minimize the reality gap between simulated and real domains. For example, the system and methods of the present disclosure use sampling spatial priorities - e.g. B. independent of the structure of the road - to produce synthetic data that more closely matches the diversity of real-world data, to take into account the disadvantages of previous solutions. To train models on synthetic data that perform well in the real world, the systems and methods of the present disclosure use a discriminator that allows a model to learn domain-invariant representations to determine the divergence between the virtual world and the to minimize the real world in a latent space. By minimizing divergence in a representation space, the domain adaptation algorithm can be independent of different sensors and architectures. To further improve training, pseudo labels can be created using confidence Levels in the model's predictions are created to confront the model with real data during training. Thus, the techniques described here enable a principled approach to learning neural-invariant representations and a theoretically inspired approach to samples from a simulator, which in combination enable the training of machine learning models - and in particular neural networks - using simulated data. In this way, the amount of computational and time resources required to train an accurate and precise model for use in the real world is significantly reduced with respect to traditional training approaches.

KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Die vorliegenden Systeme und Verfahren zum Training von Wahrnehmungsmodellen unter Verwendung synthetischer Daten für autonome Systeme und Anwendungen werden im Folgenden unter Bezugnahme auf die im Anhang befindlichen Figuren ausführlich beschrieben, wobei Folgendes gilt:

  • 1 ist eine Veranschaulichung eines beispielhaften Datenflussdiagramms für einen Prozess des Trainings eines maschinellen Lernmodells unter Verwendung synthetischer Daten gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 2 beinhaltet gemäß einigen Ausführungsformen der vorliegenden Offenbarung Veranschaulichungen von beispielhaften induzierten Randbedingungen für verschiedene Stichprobenstrategien;
  • 3A beinhaltet gemäß einigen Ausführungsformen der vorliegenden Offenbarung Beispielvisualisierungen für die Verwendung verschiedener Stichprobenstrategien in einem Simulator;
  • 3B veranschaulicht Diagramme, die gemäß einigen Ausführungsformen der vorliegenden Offenbarung verschiedenen Parametern zur Erzeugung von Szenen in einem Simulator entsprechen;
  • 4 veranschaulicht das Training eines maschinellen Lernmodells unter Verwendung synthetischer Daten gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 5 ist ein Flussdiagramm, das ein Verfahren zum Trainieren eines maschinellen Lernmodells unter Verwendung synthetischer Daten gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt;
  • 6A ist eine Veranschaulichung eines beispielhaften autonomen Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 6B ist ein Beispiel für Kamerapositionen und Sichtfelder des beispielhaften autonomen Fahrzeugs aus 6A gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 6C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug aus 6A gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 6D ist ein Systemdiagramm für die Kommunikation zwischen (einem) cloudbasierten Server(n) und dem beispielhaften autonomen Fahrzeug aus 6A gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 7 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist; und
  • 8 ist ein Blockdiagramm eines beispielhaften Rechenzentrums, das zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
The present systems and methods for training perception models using synthetic data for autonomous systems and applications are described in detail below with reference to the appended figures, provided that:
  • 1 is an illustration of an example data flow diagram for a process of training a machine learning model using synthetic data, according to some embodiments of the present disclosure;
  • 2 includes illustrations of example induced constraints for various sampling strategies, according to some embodiments of the present disclosure;
  • 3A includes example visualizations for using various sampling strategies in a simulator, according to some embodiments of the present disclosure;
  • 3B illustrates diagrams corresponding to various parameters for generating scenes in a simulator, according to some embodiments of the present disclosure;
  • 4 illustrates training a machine learning model using synthetic data in accordance with some embodiments of the present disclosure;
  • 5 is a flowchart depicting a method for training a machine learning model using synthetic data in accordance with some embodiments of the present disclosure;
  • 6A is an illustration of an example autonomous vehicle in accordance with some embodiments of the present disclosure;
  • 6B is an example of camera positions and fields of view of the exemplary autonomous vehicle 6A according to some embodiments of the present disclosure;
  • 6C is a block diagram of an example system architecture for the example autonomous vehicle 6A according to some embodiments of the present disclosure;
  • 6D is a system diagram for communication between cloud-based server(s) and the example autonomous vehicle 6A according to some embodiments of the present disclosure;
  • 7 is a block diagram of an example computing device suitable for use in implementing some embodiments of the present disclosure; and
  • 8th is a block diagram of an example data center suitable for use in implementing some embodiments of the present disclosure.

DETAILLIERTE BESCHREIBUNG DER ERFINDUNGDETAILED DESCRIPTION OF THE INVENTION

Es werden Systeme und Verfahren offenbart, die sich relativ zu dem Training von Wahrnehmungsmodellen für autonome Systeme und Anwendungen unter Verwendung synthetischer Daten beziehen. Obwohl die vorliegende Offenbarung in Bezug auf ein Beispiel für ein autonomes Fahrzeug 600 (hier alternativ als „Fahrzeug 600“ oder „Ego-Maschine 600“ bezeichnet) beschrieben werden kann, wird ein Beispiel davon auf 6A-6D) beschrieben wird, ist dies nicht als Einschränkung zu verstehen. Beispielsweise können die hier beschriebenen Systeme und Verfahren ohne Einschränkung von nicht-autonomen Fahrzeugen, halbautonomen Fahrzeugen (z. B. in einem oder mehreren adaptiven Fahrerassistenzsystemen (ADAS)), gelenkten und ungelenkten Robotern oder Roboterplattformen, Lagerfahrzeugen, Geländefahrzeugen, Fahrzeugen, die mit einem oder mehreren Anhängern gekoppelt sind, fliegenden Gefäßen, Booten, Shuttles, Rettungsfahrzeugen, Motorrädern, elektrischen oder motorisierten Fahrrädern, Flugzeugen, Baufahrzeugen, Unterwasserfahrzeugen, Drohnen und/oder anderen Fahrzeugtypen verwendet werden. Auch wenn die vorliegende Offenbarung sich auf das Training von Wahrnehmungsmodellen für den Einsatz in autonomen oder halbautonomen Systemen und Anwendungen bezieht, ist dies nicht als Einschränkung zu verstehen. Die hierin beschriebenen Systeme und Verfahren können in den Bereichen Augmented Reality, Virtual Reality, Mixed Reality, Robotik, Sicherheit und Überwachung, autonome oder halbautonome Maschinenanwendungen und/oder in jedem anderen Technologiebereich eingesetzt werden, in dem maschinelle Lernmodelle verwendet werden können.Systems and methods related to training perceptual models for autonomous systems and applications using synthetic data are disclosed. Although the present disclosure may be described with respect to an example of an autonomous vehicle 600 (alternatively referred to herein as “vehicle 600” or “ego machine 600”), an example thereof is provided 6A-6D ) is described, this should not be understood as a restriction. For example, the systems and methods described herein may be used, without limitation, by non-autonomous vehicles, semi-autonomous vehicles (e.g. in one or more adaptive driver assistance systems (ADAS)), guided and unguided robots or robotic platforms, warehouse vehicles, off-road vehicles, vehicles equipped with a or multiple trailers, flying vessels, boats, shuttles, rescue vehicles, motorcycles, electric or motorized bicycles, aircraft, construction vehicles, underwater vehicles, drones and/or other types of vehicles. Even if the present one As the disclosure relates to the training of perception models for use in autonomous or semi-autonomous systems and applications, this should not be construed as a limitation. The systems and methods described herein may be used in the areas of augmented reality, virtual reality, mixed reality, robotics, security and surveillance, autonomous or semi-autonomous machine applications, and/or any other technology area in which machine learning models can be used.

Die hier beschriebenen Systeme und Verfahren können ohne Einschränkung von nicht-autonomen Fahrzeugen, halbautonomen Fahrzeugen (z. B. in einem oder mehreren adaptiven Fahrerassistenzsystemen (ADAS)), gelenkten und ungelenkten Robotern oder Roboterplattformen, Lagerfahrzeugen, Geländefahrzeugen, Fahrzeugen, die mit einem oder mehreren Anhängern gekoppelt sind, fliegenden Gefäßen, Booten, Shuttles, Rettungsfahrzeugen, Motorrädern, elektrischen oder motorisierten Fahrrädern, Flugzeugen, Baufahrzeugen, Unterwasserfahrzeugen, Drohnen und/oder anderen Fahrzeugtypen verwendet werden. Ferner können die hierin beschriebenen Systeme und Verfahren für eine Vielzahl von Zwecken verwendet werden, z. B. und ohne Einschränkung für die Steuerung von Maschinen, die Fortbewegung von Maschinen, das Fahren von Maschinen, die Erzeugung synthetischer Daten, das Training von Modellen, die Wahrnehmung, die erweiterte Realität, die virtuelle Realität, die gemischte Realität, die Robotik, die Sicherheit und Überwachung, die Simulation und das digitale Twinning, autonome oder halbautonome Anwendungen von Maschinen, Deep Learning, die Simulation von Umgebungen, die Simulation von Objekten oder Akteuren und/oder das digitale Twinning, die Verarbeitung von Rechenzentren, die Konversations-Kl, die Simulation des Leichtverkehrs (z. B, Ray-Tracing, Path-Tracing usw.), kollaborative Inhaltserstellung für 3D-Assets, Cloud Computing und/oder jegliche andere geeignete Anwendung.The systems and methods described herein may be used, without limitation, by non-autonomous vehicles, semi-autonomous vehicles (e.g. in one or more adaptive driver assistance systems (ADAS)), guided and unguided robots or robotic platforms, warehouse vehicles, off-road vehicles, vehicles equipped with a or coupled to multiple trailers, flying vessels, boats, shuttles, rescue vehicles, motorcycles, electric or motorized bicycles, aircraft, construction vehicles, underwater vehicles, drones and/or other types of vehicles. Furthermore, the systems and methods described herein can be used for a variety of purposes, e.g. B. and without limitation for the control of machines, the locomotion of machines, the driving of machines, the generation of synthetic data, the training of models, perception, augmented reality, virtual reality, mixed reality, robotics, the Security and surveillance, simulation and digital twinning, autonomous or semi-autonomous applications of machines, deep learning, simulation of environments, simulation of objects or actors and/or digital twinning, data center processing, conversational computing, the Light traffic simulation (e.g., ray tracing, path tracing, etc.), collaborative content creation for 3D assets, cloud computing and/or any other suitable application.

Die offenbarten Ausführungsformen können eine Vielzahl unterschiedlicher Systeme umfassen, wie beispielsweise automobile Systeme (z. B., ein Steuerungssystem für eine autonome oder halbautonome Maschine, ein Wahrnehmungssystem für eine autonome oder halbautonome Maschine), Systeme, die unter Verwendung eines Roboters implementiert werden, Luftfahrtsysteme, mediale Systeme, Bootssysteme, Systeme zur Überwachung intelligenter Bereiche, Systeme zum Durchführen von Deep Learning-Operationen, Systeme zum Durchführen von Simulationsoperationen, Systeme zum Durchführen von digitalen Zwillingsoperationen, Systeme, die unter Verwendung einer Edge-Vorrichtung implementiert werden, Systeme, die eine oder mehrere virtuelle Maschinen (VMs) enthalten, Systeme zum Durchführen von Operationen zur Erzeugung synthetischer Daten, Systeme, die zumindest teilweise in einem Rechenzentrum implementiert sind, Systeme zum Durchführen von Konversations-Kt-Operationen, Systeme zum Durchführen von Lichttransport-Simulationen, Systeme zum Durchführen von kollaborativer Inhaltserstellung für 3D-Assets, Systeme, die zumindest teilweise unter Verwendung von Cloud-Rechenressourcen implementiert sind, und/oder andere Arten von Systemen.The disclosed embodiments may include a variety of different systems, such as automotive systems (e.g., a control system for an autonomous or semi-autonomous machine, a perception system for an autonomous or semi-autonomous machine), systems implemented using a robot, aviation systems , media systems, boat systems, systems for monitoring intelligent areas, systems for performing deep learning operations, systems for performing simulation operations, systems for performing digital twin operations, systems implemented using an edge device, systems that are a or multiple virtual machines (VMs), systems for performing synthetic data generation operations, systems that are at least partially implemented in a data center, systems for performing conversational Kt operations, systems for performing light transport simulations, systems for Perform collaborative content creation for 3D assets, systems implemented at least in part using cloud computing resources, and/or other types of systems.

Auch wenn die Ausgaben der hier beschriebenen maschinellen Lernmodelle in erster Linie als Segmentierungskarten aus der Vogelperspektive beschrieben werden, ist dies nicht als Einschränkung zu verstehen. Zum Beispiel können die Ausgaben des/der maschinellen Lernmodelle(s) aus jeder beliebigen Perspektive erfolgen (z. B. aus der Vogelperspektive, aus der Perspektive (z. B. aus der Perspektive des Sensors), projiziert usw.), ohne den Rahmen der vorliegenden Offenbarung zu sprengen. Darüber hinaus können die Ausgaben des/der maschinellen Lernmodelle(s) eine andere Art von Maske, eine Klassifizierung, eine Konfidenz, eine Wahrscheinlichkeit, eine binäre Ausgabe und/oder eine andere Ausgabeart beinhalten, auch wenn sie in erster Linie als Segmentierungskarte für Objekte beschrieben werden.Although the outputs of the machine learning models described here are described primarily as bird's-eye segmentation maps, this should not be construed as a limitation. For example, the outputs of the machine learning model(s) may be from any perspective (e.g., bird's-eye view, perspective (e.g., sensor's perspective), projected, etc.), excluding the frame of the present revelation. In addition, the outputs of the machine learning model(s) may include another type of mask, classification, confidence, probability, binary output and/or another type of output, even if described primarily as a segmentation map for objects become.

Unter Bezugnahme auf 1 ist 1 ein beispielhaftes Flussdiagramm für einen Prozess 100 des Trainings eines maschinellen Lernmodells unter Verwendung synthetischer Daten gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es versteht sich, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele aufgeführt werden. 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 implementiert 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. In einigen Ausführungsformen können die hierin beschriebenen Systeme, Verfahren und Prozesse unter Verwendung ähnlicher Komponenten, Merkmale und/oder Funktionen wie die des beispielhaften autonomen Fahrzeugs 600 aus 6A-6D, der beispielhaften Rechenvorrichtung 700 aus 7 und/oder des beispielhaften Rechenzentrums 800 aus 8 ausgeführt werden.With reference to 1 is 1 an example flowchart for a process 100 of training a machine learning model using synthetic data according to some embodiments of the present disclosure. It is to be understood that these and other arrangements described herein are provided as examples only. Other arrangements and elements (e.g., machines, interfaces, functions, commands, groupings of functions, etc.) may be used in addition to or instead of those shown, and some elements may be omitted entirely. Further, many of the elements described herein are functional units that may be implemented as discrete or distributed components or in conjunction with other components and in any suitable combination and position. Various functions described herein as being performed by devices may be performed by hardware, firmware, and/or software. For example, various functions can be performed by a processor executing instructions stored in memory. In some embodiments, the systems, methods, and processes described herein may use similar components, features, and/or functions to those of the example autonomous vehicle 600 out 6A-6D , the exemplary computing device 700 7 and/or the exemplary data center 800 8th be executed.

Der Prozess 100 beinhaltet eine effektive Technik für Proben von Daten, z. B. von einem Selbstfahrsimulator, die simulatorunabhängig und in der Praxis einfach zu implementieren ist. Der Prozess 100 kann auf dem Prinzip der Verringerung des Abstands zwischen den Rändern der Kennzeichnungen aufbauen, wodurch die Domänenlücke verringert wird und es adversen Frameworks ermöglicht wird, in einem Repräsentationsraum (z. B. einem latenten Raum) sinnvoll zu lernen. Der Prozess 100 kann Verfahren zur Minimierung von Diskrepanzen, die z. B. Pearson x2 verwenden, auf Aufgaben der dichten Vorhersage verallgemeinern. In einigen Ausführungsformen kann der Prozess 100 das Kombinieren von Domänen-Adversarial-Verfahren mit Pseudo-Kennzeichnungen 116 beinhalten. Obwohl Ausführungsformen beschrieben werden, bei denen in der Zieldomäne (z. B. der realen Welt) keine Kennzeichnungen verfügbar sind, können in einigen Ausführungsformen Kennzeichnungen in der Zieldomäne verfügbar sein, um die Leistung des Prozesses 100 beim Training eines oder mehrerer maschineller Lernmodelle 112 ferner zu steigern.The process 100 includes an effective technique for sampling data, e.g. B. from a self-driving simulator, which is simulator-independent and easy to implement in practice. The process 100 may be built on the principle of reducing the distance between the edges of the labels, thereby reducing the domain gap and allowing adverse frameworks to learn meaningfully in a representation space (e.g., a latent space). The process 100 may include methods for minimizing discrepancies, e.g. B. Using Pearson x 2 , generalize to dense prediction tasks. In some embodiments, the process 100 may include combining domain adversarial techniques with pseudo labels 116. Although embodiments are described in which labels are not available in the target domain (e.g., the real world), in some embodiments labels may be available in the target domain to further improve the performance of the process 100 when training one or more machine learning models 112 to increase.

Die Verallgemeinerungsfähigkeiten eines oder mehrerer maschineller Lernmodelle 112 unter Verteilungsänderungen können durch die Analyse eines entsprechenden binären Klassifikators des oder der maschinellen Lernmodelle 112 erlernt werden. Als solches kann der Prozess 100 die Theorie der Domänenanpassung implementieren und davon ausgehen, dass die Domäne der Ausgabe y = {0, 1} ist, und die mathematische Analyse auf die Einstellung der binären Klassifizierung beschränken. Ein Simulator 106 kann automatisch Beschriftungen für eine Aufgabe erzeugen, und diese vom Simulator 106 erhaltenen Datenproben können als synthetischer (oder simulierter) Datensatz (S) (z. B. synthetische Daten 108) mit beschrifteten Datenpunkten S = { ( x i s , y i s ) } i = 1 n s

Figure DE112022000498T5_0001
bezeichnet werden. In einigen Ausführungsformen kann auch ein echter Datensatz (T) (z. B. Daten der realen Welt 110) mit unmarkierten Beispielen T = { ( x i t ) } i = 1 n t ,
Figure DE112022000498T5_0002
die in der realen Welt aufgenommen wurden, verfügbar sein. Das Ziel des Prozesses 100 ist das Erlernen eines Modells (Hypothese) h für eine bestimmte Aufgabe (z. B. Objekterkennung, Objektverfolgung, Freiraumanalyse usw.) unter Verwendung von Daten aus dem beschrifteten Datensatz S (z. B. den synthetischen Daten 108), so dass h in der echten Welt gut durchgeführt wird. In Ausführungsformen kann der nicht beschriftete Datensatz T (z. B. die echten Daten 110) in den Lernprozess einbezogen werden, um die Verteilung in der echten Welt zu erfassen.The generalization capabilities of one or more machine learning models 112 under distribution changes may be learned by analyzing a corresponding binary classifier of the machine learning model(s) 112. As such, the process 100 may implement domain adaptation theory and assume that the domain of the output is y = {0, 1} and limit the mathematical analysis to the binary classification setting. A simulator 106 may automatically generate labels for a task, and these data samples obtained from the simulator 106 may be used as a synthetic (or simulated) data set (S) (e.g., synthetic data 108) with labeled data points S = { ( x i s , y i s ) } i = 1 n s
Figure DE112022000498T5_0001
be referred to. In some embodiments, a real data set (T) (e.g., real world data 110) with unlabeled examples may also be used T = { ( x i t ) } i = 1 n t ,
Figure DE112022000498T5_0002
recorded in the real world will be available. The goal of the process 100 is to learn a model (hypothesis) h for a specific task (e.g. object detection, object tracking, free space analysis, etc.) using data from the labeled data set S (e.g. the synthetic data 108) , so h is performed well in the real world. In embodiments, the unlabeled data set T (e.g., real data 110) may be included in the learning process to capture the real-world distribution.

Die synthetischen Daten 108 können auf jeglichem Wege erzeugt werden - z. B. durch Domänen-Randomisierung, Stilübertragung usw. Basierend auf den Leistungsergebnissen während des Experiments können die synthetischen Daten 108 (z. B. entsprechend dem Datensatz S) im Prozess 100 jedoch aus einer Domänenanpassungsperspektive erzeugt werden, mit dem Ziel, den Mangel an beschrifteten Daten in der Ziel-Domäne (z. B. in der realen Welt 110, wie durch den Datensatz T dargestellt) durch Überführen von Wissen aus einer beschrifteten Quell-Domäne (z. B. einer virtuellen oder simulierten Welt) zu bewältigen.The synthetic data 108 can be generated in any way - e.g. However, based on the performance results during the experiment, the synthetic data 108 (e.g., corresponding to the data set S) in the process 100 can be generated from a domain adaptation perspective, with the aim of addressing the lack of labeled Data in the target domain (e.g., in the real world 110, as represented by data set T) by transferring knowledge from a labeled source domain (e.g., a virtual or simulated world).

In einigen Ausführungsformen können zum Ausführen des Prozesses 100 verschiedene Annahmen getroffen werden. Zum Beispiel können die Quelleneingaben x i s

Figure DE112022000498T5_0003
und die Zieleingaben x i t
Figure DE112022000498T5_0004
unabhängig und identisch aus den Verteilungen Ps bzw. Pt, verteilt sein, beide über X. Die Domäne der Ausgabe kann Y = {0, 1} sein, und als Indikator für die Leistung kann das Risiko einer Hypothese h : X → Y bezogen auf die Beschriftungsfunktion f angenommen werden, unter Verwendung einer Verlustfunktion I : Y x Y →ℝ+, unter der Verteilung D oder formal R D l ( h , f ) : = E D [ l ( h ( x ) , f ( x ) ) ] .
Figure DE112022000498T5_0005
Die Beschriftungsfunktion kann ein optimaler Bayes-Klassifikator f(x) = argmaxyP(y = ŷ|x)sein, wobei P(y|x) die bedingte Klassenverteilung entweder für die Quellendomäne (z. B, virtuelle oder simulierte Welt) (Ps(y|x)) oder die Ziel-Domäne (z. B. die echte Welt) ((Pt(y|x). Der Einfachheit halber kann R S l ( h )
Figure DE112022000498T5_0006
als R S l ( h ) : = R P s l ( h , f s )
Figure DE112022000498T5_0007
und R T l ( h )
Figure DE112022000498T5_0008
als R T l ( h ) : = R R t l ( h , f t )
Figure DE112022000498T5_0009
definiert werden.In some embodiments, various assumptions may be made to perform process 100. For example, the source inputs x i s
Figure DE112022000498T5_0003
and the target entries x i t
Figure DE112022000498T5_0004
independent and identical from the distributions P s and P t , respectively, both over X. The domain of the output can be Y = {0, 1}, and as an indicator of performance the risk of a hypothesis h : based on the labeling function f, using a loss function I : Y x Y →ℝ+, under the distribution D or formally R D l ( H , f ) : = E D [ l ( H ( x ) , f ( x ) ) ] .
Figure DE112022000498T5_0005
The label function can be an optimal Bayesian classifier f(x) = argmax ŷy P(y = ŷ|x), where P(y|x) is the conditional class distribution for either the source domain (e.g., virtual or simulated world ) (P s (y|x)) or the target domain (e.g. the real world) ((P t (y|x). For simplicity can R S l ( H )
Figure DE112022000498T5_0006
as R S l ( H ) : = R P s l ( H , f s )
Figure DE112022000498T5_0007
and R T l ( H )
Figure DE112022000498T5_0008
as R T l ( H ) : = R R t l ( H , f t )
Figure DE112022000498T5_0009
To be defined.

Die Hypothesen h (z. B. das/die maschinelle(n) Lernmodell(e) 112) können als die Zusammensetzung von h = ĥ◦g mit g : X→Z und ĥ:Z → Y interpretiert werden, wobei Z ein Repräsentationsraum (z. B. ein latenter Raum) ist. So kann die Hypothesenklasse als H := {ĥ◦h:ĥ ∈ Ĥ, g ∈ G} definiert werden, wie beispielsweise h ∈ H. Eine Generalisierungsgrenze kann dann verwendet werden, um die Generalisierungsleistung eines Modells h zu messen.The hypotheses h (e.g. the machine learning model(s) 112) can be interpreted as the composition of h = ĥ◦g with g : X→Z and ĥ:Z → Y, where Z is a representation space (e.g. a latent space). So the hypothesis class can be defined as H := {ĥ◦h:ĥ ∈ Ĥ, g ∈ G}, such as h ∈ H. A generalization limit can then be used to measure the generalization performance of a model h.

In einigen Ausführungsformen kann das folgende Theorem (1) verwendet werden, um zu bestimmen, wie gut ein oder mehrere Modelle des maschinellen Lernens 112 von der virtuellen zur echten Welt verallgemeinert werden können. Angenommen, dass I: YxY → [0,1] an und λ * : = m i n h H R S l ( h ) + R T l ( h ) .

Figure DE112022000498T5_0010
Als Ergebnis kann Theorem (1) wie folgt definiert werden: R T l ( h ) R S l ( h ) + D h , H ϕ ( P s | P t ) + λ *
Figure DE112022000498T5_0011
wobei D h , H ϕ ( P s | P t ) : = s u p h ' H | E x P s [ l ( h ( x ) , h ' ( x ) ) ] E x P t [ ϕ * ( l ( h ( x ) , h ' ( x ) ) ) | ,
Figure DE112022000498T5_0012
und die Funktion ϕ: ℝ+ → ℝ definiert eine bestimmte f-Divergenz, wobei ϕ ihre (Fenchel-)Konjugierte ist. Der erste Begriff im Theorem kann die Leistung des/der maschinellen Lernmodelle(s) 112 bei der Simulation erklären und zeigt an, dass das Modell 112 den synthetischen Datensatz S (z. B. die synthetischen Daten 108) gut durchführen muss. In some embodiments, the following theorem (1) may be used to determine how well one or more machine learning models 112 generalize from the virtual to the real world can be meant. Assume that I: YxY → [0,1] on and λ * : = m i n H H R S l ( H ) + R T l ( H ) .
Figure DE112022000498T5_0010
As a result, Theorem (1) can be defined as follows: R T l ( H ) R S l ( H ) + D H , H ϕ ( P s | P t ) + λ *
Figure DE112022000498T5_0011
where D H , H ϕ ( P s | P t ) : = s u p H ' H | E x P s [ l ( H ( x ) , H ' ( x ) ) ] E x P t [ ϕ * ( l ( H ( x ) , H ' ( x ) ) ) | ,
Figure DE112022000498T5_0012
and the function ϕ: ℝ + → ℝ defines a certain f-divergence, where ϕ is its (fennel) conjugate. The first term in the theorem can explain the performance of the machine learning model(s) 112 in simulation and indicates that the model 112 must perform well on the synthetic data set S (e.g., the synthetic data 108).

Der zweite Begriff des Theorems entspricht der Diskrepanz zwischen den Randverteilungen Ps(x) und Pt(x) - z. B. wie unähnlich die virtuelle und die echte Welt aus der Sicht eines Beobachters sind. Der dritte Begriff misst die ideale gemeinsame Hypothese (λ*), die den Begriff der Anpassungsfähigkeit beinhaltet und auf die Unähnlichkeit zwischen den Kennzeichnungsfunktionen zurückgeführt werden kann.The second term of the theorem corresponds to the discrepancy between the marginal distributions P s (x) and Pt(x) - z. E.g. how dissimilar the virtual and real worlds are from the perspective of an observer. The third term measures the ideal common hypothesis (λ*), which includes the notion of adaptability and can be attributed to the dissimilarity between the label functions.

Bei der traditionellen Anpassung von Domänen sind zwei Ansätze am gebräuchlichsten, die davon abhängen, welche Annahmen an λ* gestellt werden. Der erste Ansatz geht davon aus, dass der letzte Begriff in Theorem (1) vernachlässigbar ist, und das Lernen wird adversarisch durchgeführt, indem das Risiko in der Domäne der Quelle und die Domänendiskrepanz in Z minimiert werden. Der zweite Ansatz bringt Neugewichtungsschemata ein, um die Unähnlichkeit zwischen den Kennzeichnungs-Marginals Ps(y) und Pt(y) zu berücksichtigen, die entweder implizit oder explizit sein kann. In dem Prozess 100 besteht jedoch eine Kontrolle über die synthetischen Daten 108, da die synthetischen Daten 108 vom Simulator 106 abgerufen werden. So ermöglicht der Prozess 100 die Kontrolle z. B. der Klassen von Objekten, der Häufigkeit des Auftretens von Objekten, der Variationen im Aussehen oder der Klasse von Objekten und/oder der Standorte, an denen die Objekte angeordnet sind. Infolgedessen zeigt Theorem (1) an, dass der Prozess der Datenerzeugung so durchgeführt werden sollte, dass λ* vernachlässigbar ist. Wenn dies der Fall ist, liegt der Schwerpunkt auf dem Lernen invarianter Darstellungen. Um dies zu erreichen, beinhaltet der Prozess 100 eine Datengenerierungsprozedur unter Verwendung eines Prior-Generators 102 (z. B. zur Erzeugung eines räumlichen Priors) und einen Trainingsalgorithmus, der von einer Trainingsmaschine 114 ausgeführt wird. Die Trainingsstrategie wurde basierend auf der Wichtigkeit der Kontrolle der Unähnlichkeit zwischen den Etikettenrandwerten Ps(y) und Pt(y) bestimmt. Dies wird veranschaulicht, indem man eine untere Grenze befolgt, wie sie mit Bezug auf Theorem (2) beschrieben ist. Zum Beispiel, angenommen, dass DJS(Ps(y)||Pt(Y)) ≥ DJS(Ps(z)||Pt(z)) und DJS der Jensen-Shannon-Divergenz entspricht, dann kann Theorem (2) wie folgt definiert werden: R T l ( h ) + R S l ( h ) 1 2 ( D J S ( P s ( y ) P t ( y ) ) D J S ( P s ( z ) P t ( z ) ) ) 2

Figure DE112022000498T5_0013
In traditional domain fitting, two approaches are most common, depending on what assumptions are made about λ*. The first approach assumes that the last term in Theorem (1) is negligible, and the learning is carried out adversarially by minimizing the risk in the domain of the source and the domain mismatch in Z. The second approach introduces reweighting schemes to account for the dissimilarity between the labeling marginals P s (y) and Pt(y), which can be either implicit or explicit. However, in the process 100 there is control over the synthetic data 108 because the synthetic data 108 is retrieved from the simulator 106. The process 100 enables control, for example. B. the classes of objects, the frequency of occurrence of objects, the variations in the appearance or class of objects and / or the locations at which the objects are arranged. As a result, Theorem (1) indicates that the process of data generation should be carried out so that λ* is negligible. If this is the case, the focus is on learning invariant representations. To achieve this, the process 100 includes a data generation procedure using a prior generator 102 (e.g., to generate a spatial prior) and a training algorithm executed by a training machine 114. The training strategy was determined based on the importance of controlling the dissimilarity between the label edge values P s (y) and Pt(y). This is illustrated by following a lower bound as described with reference to Theorem (2). For example, assuming that D JS (P s ( y )||P t ( Y )) ≥ D JS (P s (z)||P t (z)) and D JS corresponds to the Jensen-Shannon divergence, then Theorem (2) can be defined as follows: R T l ( H ) + R S l ( H ) 1 2 ( D J S ( P s ( y ) P t ( y ) ) D J S ( P s ( e.g ) P t ( e.g ) ) ) 2
Figure DE112022000498T5_0013

Theorem (2) ist wichtig, um eine untere Schranke für das gemeinsame Risiko anzuordnen, und ist nützlich für Algorithmen, die darauf abzielen, domäneninvariante Repräsentationen zu lernen. In dem Prozess 100 veranschaulicht Theorem (2) die Bedeutung des Verfahrens zur Erzeugung von Daten im Simulator 106. Wenn die synthetischen Daten 108 absichtlich aus dem Simulator 106 entnommen werden und Objekte so positioniert werden, dass es zu Abweichungen zwischen der echten und der virtuellen Welt kommt, hilft es möglicherweise nicht, einfach nur das Risiko in der Domäne der Quelle und die Diskrepanz zwischen der Domäne der Quelle und der des Ziels im Repräsentationsraum zu minimieren. So kann das Versäumnis, die Marginalien auszurichten, den Prozess 100 daran hindern, SoTA Algorithmen für adversariales Lernen zu verwenden.Theorem (2) is important for imposing a lower bound on the joint risk and is useful for algorithms that aim to learn domain-invariant representations. In the process 100, theorem (2) illustrates the importance of the method of generating data in the simulator 106. When the synthetic data 108 is intentionally taken from the simulator 106 and objects are positioned in such a way that there are deviations between the real and the virtual world simply minimizing the risk in the source's domain and the discrepancy between the source's domain and the target's domain in the representation space may not help. Thus, failure to align the marginalia may prevent the process 100 from using SoTA algorithms for adversarial learning.

Um dem Rechnung zu tragen, sind die Datenstichprobentechniken im Prozess 100 wirksam, um synthetische Daten 108 zu erzeugen, die die Wahrscheinlichkeit einer Nichtübereinstimmung zwischen den Etikettenmarginalen in der Ziel- und Quellendomäne verringern. Zum Beispiel können in einigen Ausführungsformen räumliche Prioritäten mit dem Prioritätsgenerator 102 erzeugt werden, der auf ein System ausgerichtet ist, in dem es keine echten beschrifteten Daten gibt. Als weiteres Beispiel können in Ausführungsformen, in denen einige wenige Datenpunkte in der Ziel-Domäne (z. B. in der realen Welt) beschriftet sind, diese Beschriftungen verwendet werden, um einen Prior für die Positionen der Objekte in der Szene zu schätzen.To accommodate this, the data sampling techniques in the process 100 are effective to generate synthetic data 108 that reduces the likelihood of mismatch between the label marginals in the target and source domains. For example, in some embodiments, spatial priorities may be generated using the priority generator 102 targeted to a system in which there is no real labeled data. As another example, in embodiments in which a few data points in the target domain (e.g., in the real world) are labeled, these labels may be used to estimate a prior for the positions of the objects in the scene.

Zum Beispiel wurden in früheren Ansätzen die Positionen von Objekten basierend auf der Struktur oder dem Layout einer Straße oder eines Weges und/oder basierend auf dem befahrbaren Bereich einer Karte ermittelt. Wie in 2 veranschaulicht, veranschaulichen die Visualisierungen 202 und 204 die induzierte Marge Ps(y), wenn die Stichprobenstrategie den Standardansätzen für die Struktur der Straße und/oder den Bereich der Karte folgt. Im Gegensatz dazu veranschaulicht die Visualisierung 206 den induzierten Randwert, wenn die Standorte der Objekte unter Verwendung eines räumlichen Priors des Priorgenerators 102 lokalisiert werden. In ähnlicher Weise veranschaulicht die Visualisierung 208 die induzierte Marginalität, wenn die Standorte der Objekte unter Verwendung einer Zielpriorität des Priorgenerators 102 abgetastet werden, wobei die Zielpriorität basierend auf einem oder mehreren Trainingsdatensätzen in der Zieldomäne (z. B. in der realen Welt) erzeugt wird. Die Visualisierung 210 entspricht einem Validierungssatz, z. B. für die Segmentierung von Fahrzeugen aus der Vogelperspektive (BEV). Wie veranschaulicht, ist das Sampling in der Visualisierung 206 unter Verwendung eines räumlichen Priors in einem Simulator 106 dem Sampling aus dem echten Trainingsdatensatz der Visualisierung 208 am ähnlichsten. Durch die Verwendung des räumlichen Priors der vorliegenden Offenbarung können die synthetischen Daten 108 besser mit der Verteilung von Objekten in der realen Welt abgeglichen werden, so dass ein oder mehrere Modelle für maschinelles Lernen 112, die auf synthetischen Daten 108 trainiert wurden, in der realen Welt gut durchgeführt werden können. Im Vergleich zu den vorherigen Ansätzen minimiert die Jensen-Shannon-Divergenz (JSD) zwischen dem induzierten Randwert unter Verwendung des räumlichen Priors die Divergenz zwischen dem Randwert des Aufgabenlabels (z. B. 5,7e-4 für den räumlichen Prior-Ansatz der vorliegenden Offenbarung im Gegensatz zu 1,40e-3 für die vorherigen auf Straßen oder Karten basierenden Ansätze) und führt zu einem vielfältigeren synthetischen Datensatz. Insbesondere ist der JSD für den echten Trainingsdatensatz in der Visualisierung 208 von der gleichen Größenordnung wie der räumliche Prior der Visualisierung 206 (z. B. 5,7e-4 für den räumlichen Prior und 5,4e-4 für den echten markierten Trainingsdatensatz), und der räumliche Prior erfordert keinen Zugriff auf markierte Daten. In den Experimenten der vorliegenden Offenbarung wurde als Trainingsdatensatz der nuScenes Trainingsdatensatz verwendet.For example, in previous approaches, the positions of objects were determined based on the structure or layout of a road or path and/or based on the drivable area of a Map determined. As in 2 As illustrated, visualizations 202 and 204 illustrate the induced margin P s (y) when the sampling strategy follows standard approaches for the structure of the street and/or the area of the map. In contrast, the visualization 206 illustrates the induced edge value when the locations of the objects are located using a spatial prior of the prior generator 102. Similarly, the visualization 208 illustrates the induced marginality when the locations of the objects are sampled using a target priority of the prior generator 102, where the target priority is generated based on one or more training data sets in the target domain (e.g., in the real world). . The visualization 210 corresponds to a validation set, e.g. B. for the segmentation of vehicles from a bird's eye view (BEV). As illustrated, sampling in visualization 206 using a spatial prior in a simulator 106 is most similar to sampling from the real training data set of visualization 208. By using the spatial prior of the present disclosure, the synthetic data 108 can be better matched to the distribution of objects in the real world, such that one or more machine learning models 112 trained on synthetic data 108 can be better aligned in the real world can be carried out well. Compared to the previous approaches, the Jensen-Shannon divergence (JSD) between the induced marginal value using the spatial prior minimizes the divergence between the marginal value of the task label (e.g. 5.7e -4 for the spatial prior approach of the present Revelation as opposed to 1.40e -3 for the previous road or map based approaches) and results in a more diverse synthetic data set. In particular, the JSD for the real training data set in the visualization 208 is of the same order of magnitude as the spatial prior of the visualization 206 (e.g. 5.7e -4 for the spatial prior and 5.4e -4 for the real labeled training data set), and the spatial prior does not require access to labeled data. In the experiments of the present disclosure, the nuScenes training data set was used as the training data set.

Wenn keine Beschriftungen in der Ziel-Domäne verfügbar sind, kann die Divergenz zwischen den Beschriftungsrandwerten P(y) zwischen den erzeugten und den echten Daten nicht gemessen werden. Wenn jedoch z. B. eine Segmentierungskarte aus der Vogelperspektive vorliegt, kann ein empirisch ausgewählter räumlicher Prior erzeugt werden, der Positionen mit einer hohen Wahrscheinlichkeit für das Auffinden eines Objekts darstellt. Zum Beispiel kann, wie in der Visualisierung 206 in 2 dargestellt, ein räumlicher Prior erzeugt werden, der Positionen von Objekten proportional zu einem longitudinalen (z. B. von links nach rechts) Abstand des Objekts/der Objekte zur Ego-Maschine lokalisiert. Bei Proben mit dem räumlichen Prior nimmt die Wahrscheinlichkeit, dass sich ein Objekt an einem bestimmten Standort befindet, mit zunehmendem seitlichen Abstand von der Ego-Maschine ab. Zum Beispiel kann für die Position (x1,x2)∈ℝ2 in Metern relativ zur Ego-Maschine der räumliche Prior, Präumlich, gemäß der folgenden Gleichung (3) dargestellt werden: P r a ¨ u m l i c h ( x 1 , x 2 ) { 1 125 | x 2 | + 0,6 | x 2 | 12,5 1 75 | x 2 | 50 | x 2 | > 12,5

Figure DE112022000498T5_0014
If no labels are available in the target domain, the divergence between the label boundary values P(y) between the generated and the real data cannot be measured. However, if e.g. For example, if a bird's-eye view segmentation map is available, an empirically selected spatial prior can be generated that represents positions with a high probability of finding an object. For example, as in the visualization 206 in 2 shown, a spatial prior can be generated that localizes positions of objects proportional to a longitudinal (e.g. from left to right) distance of the object(s) to the ego machine. For samples with the spatial prior, the probability of an object being at a particular location decreases as the lateral distance from the ego machine increases. For example, for the position (x1,x2)∈ℝ 2 in meters relative to the ego machine, the spatial prior, P spatial , can be represented according to the following equation (3): P r a ¨ u m l i c H ( x 1 , x 2 ) { 1 125 | x 2 | + 0.6 | x 2 | 12.5 1 75 | x 2 | 50 | x 2 | > 12.5
Figure DE112022000498T5_0014

Diese Werte von Gleichung (3) können einer linearen Interpolation zwischen einer Wahrscheinlichkeit proportional zu 0,0 für |x2| = 50 Meter, 0,5 für |x2| = 12,5 Meter und 0,6 für |x2| = 0 Meter entsprechen. So modelliert der räumliche Prior Präumlich die Beobachtung, dass sich andere Objekte im Allgemeinen entlang der Längsachse (z. B. von vorne nach hinten) der Ego-Maschine befinden. Die Dichte ist unabhängig von x1, das den Präumlich auf einer geraden Straße modelliert. Demzufolge ist es für jedes x gleich wahrscheinlich, dass sich ein Objekt x̂1 Meter vor oder hinter der Ego-Maschine x̂1 ∈ ℝ befindet.These values of equation (3) can be a linear interpolation between a probability proportional to 0.0 for |x 2 | = 50 meters, 0.5 for |x 2 | = 12.5 meters and 0.6 for |x 2 | = correspond to 0 meters. Thus, the spatial prior P spatially models the observation that other objects are generally located along the long axis (e.g., front to back) of the ego machine. The density is independent of x 1 , which spatially models the P on a straight road. Therefore, for each x, it is equally likely that an object x̂ 1 meter is in front of or behind the ego machine x̂ 1 ∈ ℝ.

Zum Beispiel veranschaulicht 3A den Unterschied zwischen früheren Stichprobenverfahren, die sich auf die Struktur von Straßen oder den befahrbaren Bereich einer Karte stützen, und dem räumlichen Ansatz der vorliegenden Offenbarung. Zum Beispiel veranschaulicht die Visualisierung 302 die potenziellen Standorte von Objekten, die sich bei der Verwendung früherer Ansätze lokalisieren lassen. Im Gegensatz dazu veranschaulicht die Visualisierung 304 die potenziellen Standorte von Objekten, die sich unter Verwendung eines räumlichen Priors befinden. Wie Sie sehen, wird die Vielfalt der Standorte für Objekte erhöht, wenn ein räumlicher Prior verwendet wird. Dies ermöglicht einen vielfältigeren synthetischen Datensatz, der der Vielfalt eines echten Datensatzes ähnlicher ist (z. B. wie oben in Bezug auf die JSD beschrieben). In der Visualisierung 304 kann diese Vielfalt in den synthetischen Daten 108 die maschinellen Lernmodelle 112 dazu zwingen, sich auf die eigentliche Aufgabe zu konzentrieren (z. B. Objekterkennung, Objektsegmentierung usw.), anstatt sich zu sehr auf die konventionelle Anordnung von Objekten auf einem Pfad zu konzentrieren, auch wenn die Objekte nicht auf dem Pfad der Ego-Maschine liegen oder in nichttraditioneller Weise ausgerichtet sind (z. B. kann die Position eines Fahrzeugs senkrecht zum Pfad oder in entgegengesetzter Richtung zur Fahrtrichtung liegen usw.). Zum Beispiel zwingen die auf diese Weise erzeugten synthetischen Daten 108 das/die maschinelle(n) Lernmodell(e) 112, wesentliche Merkmale zu lernen, die der jeweiligen Aufgabe entsprechen (z. B. wesentliche Merkmale eines Objekts von Interesse für die Objekterkennung zu lernen). Infolgedessen wird auch die Divergenz zwischen den Randbedingungen der Aufgabenbeschriftung verringert, wie hier zumindest bezogen auf 2 beschrieben.For example illustrated 3A the difference between previous sampling methods that rely on the structure of streets or the drivable area of a map and the spatial approach of the present disclosure. For example, visualization 302 illustrates the potential locations of objects that can be located using previous approaches. In contrast, visualization 304 illustrates the potential locations of objects located using a spatial prior. As you can see, the diversity of locations for objects is increased when a spatial prior is used. This allows for a more diverse synthetic data set that is more similar to the diversity of a real data set (e.g. as described above in relation to the JSD). In the visualization 304, this diversity in the synthetic data 108 can force the machine learning models 112 to focus on the task at hand (e.g., object detection, object segmentation, etc.) rather than focusing too much on the conventional arrangement of objects on one path, even if the objects are not on the path of the ego machine or in a non-traditional way (e.g. a vehicle's position may be perpendicular to the path or in the opposite direction to the direction of travel, etc.). For example, the synthetic data 108 generated in this manner forces the machine learning model(s) 112 to learn essential features appropriate to the task at hand (e.g., learning essential features of an object of interest for object recognition ). As a result, the divergence between the boundary conditions of the task labeling is also reduced, at least in relation to here 2 described.

In einigen Ausführungsformen kann zusätzlich oder alternativ zur Verwendung der räumlichen Priorität eine Zielpriorität basierend auf einem Datensatz in einer Zieldomäne erzeugt werden, der Beschriftungen beinhaltet. Zum Beispiel gibt es in der praktischen Anwendung oft nur einen kleinen Anteil an Daten, die in der Ziel-Domäne verfügbar sind. In solchen Szenarien bestünde ein natürlicher Prior für Stichproben darin, Pt(y) zu berechnen und darauf basierend die synthetischen Daten zu erzeugen. Je nachdem, wie groß die Datenmenge in der Zieldomäne ist, kann der Prior eine Mischung aus dem räumlichen Prior und dem Zielprior (z. B. αPspatial + (1 - α)Pt). beinhalten. In einem solchen Beispiel können die Standorte der Objekte aus dem Zielprior, dem räumlichen Prior oder einer Kombination davon für jegliches α ∈ [0,1].In some embodiments, in addition or alternatively to using spatial priority, a target priority may be generated based on a data set in a target domain that includes labels. For example, in practical applications there is often only a small proportion of data available in the target domain. In such scenarios, a natural sampling prior would be to calculate P t (y) and generate the synthetic data based on that. Depending on how large the amount of data is in the target domain, the prior can be a mixture of the spatial prior and the target prior (e.g. αPspatial + (1 - α)Pt). include. In such an example, the locations of the objects can be chosen from the target prior, the spatial prior, or a combination thereof for any α ∈ [0,1].

Neben der Auswahl der Standorte von Objekten aus den Raum- und/oder Zielprioritäten können auch andere Szeneninformationen 104 verwendet werden, um einen synthetischen Datensatz 108 zu erzeugen, der vielfältig ist und die Divergenz zwischen der Ziel- und der Quellendomäne minimiert. Zum Beispiel können die Szeneninformationen die Anzahl der Objekte, die Position der Objekte, die Farbe der Objekte, die Art der Objekte, die intrinsischen Sensorparameter, die extrinsischen Kameraparameter, das Wetter und/oder andere Szeneninformationen 104 beinhalten. In einigen Ausführungsformen können die Szeneninformationen 104 nach dem Zufallsprinzip, basierend auf einem bestehenden Datensatz und/oder unter Verwendung einer anderen Technik abgetastet werden. Zum Beispiel veranschaulicht 3B Szeneninformationen aus einem Musterdatensatz in der Ziel-Domäne. Diagramm 310 veranschaulicht die Verteilung der Anzahl der Fahrzeuge pro Szene, Diagramm 312 veranschaulicht die Verteilung des Sichtfelds der Kameras einer Ego-Maschine, Diagramm 314 veranschaulicht die Gier relativ zum Koordinatensystem der Ego-Maschine der Kameras (z. B. 6 Peaks für 6 unterschiedliche Kamerarichtungen), und Diagramm 316 veranschaulicht die Höhe eines LiDAR-Sensors der Ego-Maschine. In addition to selecting the locations of objects from the spatial and/or target priorities, other scene information 104 may also be used to create a synthetic data set 108 that is diverse and minimizes the divergence between the target and source domains. For example, the scene information may include the number of objects, the position of the objects, the color of the objects, the type of objects, the intrinsic sensor parameters, the extrinsic camera parameters, the weather, and/or other scene information 104. In some embodiments, the scene information 104 may be sampled randomly based on an existing data set and/or using another technique. For example illustrated 3B Scene information from a sample data set in the target domain. Diagram 310 illustrates the distribution of the number of vehicles per scene, Diagram 312 illustrates the distribution of the field of view of the cameras of an ego machine, Diagram 314 illustrates the greed relative to the ego machine coordinate system of the cameras (e.g. 6 peaks for 6 different camera directions), and diagram 316 illustrates the height of a LiDAR sensor of the ego machine.

In einigen Ausführungsformen können diese Statistiken abgeglichen werden, wenn Daten (z. B. Szeneninformationen 104) aus dem Simulator 106 abgerufen werden.In some embodiments, these statistics may be reconciled when data (e.g., scene information 104) is retrieved from the simulator 106.

Bezogen auf das Wetter kann es je nach Simulator 106 unterschiedliche Wettereinstellungen geben. Zum Beispiel kann es Kontrollen für Bewölkung, Niederschlag, Niederschlagsablagerungen (z. B. Pfützen), Windstärke, Nässe, Nebeldichte, Sonnenstandswinkel usw. geben. In Ausführungsformen kann das Wetter zufällig aus x ~ Unif(0,v) für v ∈ {0,2,0,4,0,6,0,8,1,0} und/oder kategorisch aus den je vorliegenden Wettereinstellungen des Simulators 106 entnommen werden. Auf der Grundlage von Experimenten wurde bestimmt, dass die Verwendung einer „sonnigen“ Wettereinstellung für alle Daten und das Sampling der Objektpositionen unter Verwendung eines räumlichen Priors einen Großteil des Verlustes an Wettervielfalt kompensieren kann, insbesondere im Vergleich zum Sampling nur aus der „sonnigen“ Wettereinstellung und dem Sampling von Objektpositionen basierend auf früheren Ansätzen.Regarding the weather, there can be 106 different weather settings depending on the simulator. For example, there may be controls for cloud cover, precipitation, precipitation deposits (e.g. puddles), wind strength, wetness, fog density, sun angle, etc. In embodiments, the weather can be randomly selected from x ~ Unif(0,v) for v ∈ {0,2,0,4,0,6,0,8,1,0} and/or categorically from the simulator's respective weather settings 106 can be removed. Based on experiments, it was determined that using a “sunny” weather setting for all data and sampling the object positions using a spatial prior can compensate for much of the loss in weather diversity, especially when compared to sampling only from the “sunny” weather setting and sampling object positions based on previous approaches.

In einigen Ausführungsformen können die erzeugten synthetischen Daten 108 nachbearbeitet werden, bevor sie für das Training des/der maschinellen Lernmodelle(s) 112 verwendet werden. Zum Beispiel können die synthetischen Daten 108 bearbeitet oder erweitert werden, um einen realistischeren Eindruck bereitzustellen, wie beispielsweise durch das Aufbringen von Vignetten-, Kornflimmern-, Aufhellungs-, Belichtungsautomatik-, Linsenreflexions- und/oder Schärfentiefe-Effekten in der Nachbearbeitung.In some embodiments, the generated synthetic data 108 may be post-processed before being used to train the machine learning model(s) 112. For example, the synthetic data 108 may be edited or enhanced to provide a more realistic impression, such as by applying vignette, grain flicker, brightening, autoexposure, lens flare, and/or depth of field effects in post-processing.

Unter Verwendung der vom Simulator 106 erzeugten synthetischen Daten 108 in Kombination mit den realen Daten 110 können in Ausführungsformen das/die maschinelle(n) Lernmodell(e) 112 trainiert werden (z. B. können ein oder mehrere Parameter - wie Gewichte und Vorspannen - des/der maschinellen Lernmodell(e) 112 unter Verwendung der Daten 108 und 110 als Eingang aktualisiert oder angepasst werden), wobei eine Trainingsmaschine 114 verwendet wird. Zum Beispiel können die Parameter des/der maschinellen Lernmodelle(s) 112 aktualisiert werden, bis ein akzeptables Level an Genauigkeit oder Präzision erreicht ist (z. B. bis Konvergenz erreicht ist). Da die synthetischen Daten 108 mit Hilfe einer simulatorunabhängigen Stichprobenstrategie erzeugt werden, kann jeder beliebige Simulator 106 verwendet werden, um die synthetischen Daten 108 mit einer ausreichenden Vielfalt zu erzeugen, um den Abstand zwischen den Etikettenrändern zu minimieren. Wie basierend auf dem obigen Theorem (1) festgestellt wurde, sollte der Abstand zwischen den Verteilungen der Eingaben Ps(x) und Pt(x) minimiert werden, um die Leistung in der echten Welt zu verbessern. Der Trainingsalgorithmus der vorliegenden Offenbarung erreicht dies durch das Erlernen domäneninvarianter Repräsentationen und die Minimierung der Divergenz zwischen der virtuellen und der echten Welt in einem latenten Raum Z. Die Minimierung der Divergenz in einem latenten Raum ermöglicht es den Algorithmen zur Anpassung der Domäne, sensor- und architekturunabhängig zu sein. Ohne die Sampling-Strategie der vorliegenden Offenbarung wäre das effektive Erlernen invarianter Repräsentationen durch adversariales Lernen weniger effektiv. Daher ermöglicht die Kombination aus dem adversen Trainingsalgorithmus und der Sampling-Strategie zum Erzeugen der synthetischen Daten 108 das Erlernen der invarianten Darstellungen der Domäne. Darüber hinaus können in Ausführungsformen Pseudo-Labels 116 verwendet werden, um die Trainingsalgorithmen ferner zu verbessern und die Genauigkeit und Präzision des/der maschinellen Lernmodelle(s) 112 zu erhöhen.Using the synthetic data 108 generated by the simulator 106 in combination with the real data 110, in embodiments, the machine learning model(s) 112 may be trained (e.g., one or more parameters - such as weights and biases - may be of the machine learning model(s) 112 are updated or adjusted using the data 108 and 110 as input), using a training engine 114. For example, the parameters of the machine learning model(s) 112 may be updated until an acceptable level of accuracy or precision is reached (e.g., until convergence is achieved). Because the synthetic data 108 is generated using a simulator-independent sampling strategy, any simulator 106 can be used to generate the synthetic data 108 with sufficient diversity to minimize the distance between label edges. As determined based on theorem (1) above, the distance between the distributions of the inputs P s (x) and Pt(x) should be minimized to improve real-world performance to improve. The training algorithm of the present disclosure achieves this by learning domain-invariant representations and minimizing the divergence between the virtual and real worlds in a latent space Z. Minimizing the divergence in a latent space enables the domain adaptation algorithms to be sensor and to be architecture independent. Without the sampling strategy of the present disclosure, effectively learning invariant representations through adversarial learning would be less effective. Therefore, the combination of the adverse training algorithm and the sampling strategy for generating the synthetic data 108 enables learning the invariant representations of the domain. Additionally, in embodiments, pseudo-labels 116 may be used to further improve the training algorithms and increase the accuracy and precision of the machine learning model(s) 112.

Der Trainingsalgorithmus kann gleichzeitig den Fehler der Domäne der Quelle minimieren und die beiden Verteilungen (z. B. virtuelle und echte) in einem Repräsentationsraum Z ausrichten. Ein Ziel des Trainings ist es, eine Hypothese h zu finden, die gemeinsam die ersten beiden Begriffe von Theorem (1) minimiert. Angenommen h:X→Y mit Y ⊆ ℝh·v , was einer pixelweisen binären Segmentierungskarte der Dimensionen h bzw. w entspricht, wobei X einer ungeordneten Menge von Multiview-Bildern für die Kamera-Vogelperspektive (BEV)-Segmentierung X ⊆ ℝN·3·H·W und einer Punkt-Cloud für die LiDAR-basierte BEV-Segmentierung X ⊆ ℝ3·N entspricht. Die Zielfunktion kann dann auf eine kontradiktorische Weise formuliert werden, indem zum Beispiel das Ziel der Gleichung (4) minimiert wird: h ^ H ^ , g m i n G h ' ^ H ^ m a x   E x , y p s [ l ( h ^ g , y ) ] + d s t

Figure DE112022000498T5_0015
wobei I: ℝh·wxℝh·w → R+ definiert ist als l ( p , q ) : = 1 h w i = 0 h w β p i l o g q i + ( 1 p i ) log ( 1 q i )
Figure DE112022000498T5_0016
 
Figure DE112022000498T5_0017
und pi und qi ∈ [0,1] (der gemittelte Binärkreuz-Entropieverlust). B ist ein Hyperparameter, der die Bedeutung positiver Pixel in der pixelweisen binären Sementierunskarte ewichtet. dst kann emäß Gleichuna (5) unten definiert werden: d s t : = E x p s [ E h w [ ( h ' ^ g ) ] ] E x p t [ E h w [ 1 4 ( h ' ^ g ) i 2 + h ' ^ g ( x ) i ] ]
Figure DE112022000498T5_0018
was der Pearson x2-Divergenz und E h w [ x ] : = 1 h w i = 0 h w x i
Figure DE112022000498T5_0019
entspricht. Anders als bei früheren Implementierungen von f-DAL Pearson kann dst als Klassifikator für eine Domäne pro Standort 410 interpretiert werden, wie in 4 veranschaulicht. Zum Beispiel kann der Klassifikator 410 als Diskriminator fungieren, der identifiziert, ob die Daten in einem latenten Raum einer echten Domäne oder einer simulierten oder virtuellen Domäne entsprechen. Wenn die Werte im latenten Raum als zur Domäne der Quelle (und nicht zur Ziel-Domäne) gehörend klassifiziert werden, kann dies im dst-Wert erfasst und von der Trainingsmaschine 114 verwendet werden, um die Parameter des/der maschinellen Lernmodells/Maschinenmodelle 112 zu aktualisieren. In Ausführungsformen kann eine Gradientenumkehrschicht verwendet werden, um das Min-Max-Ziel in einem einzigen Vorwärts-Rückwärts-Durchgang zu behandeln.The training algorithm can simultaneously minimize the source domain error and align the two distributions (e.g. virtual and real) in a representation space Z. One goal of the training is to find a hypothesis h that jointly minimizes the first two terms of Theorem (1). Suppose h:X→Y with Y ⊆ ℝ h·v , which corresponds to a pixel-wise binary segmentation map of dimensions h and w, respectively, where X is an unordered set of multiview images for camera bird's eye view (BEV) segmentation ·3·H·W and a point cloud for LiDAR-based BEV segmentation X ⊆ ℝ 3·N . The objective function can then be formulated in an adversarial way, for example by minimizing the objective of equation (4): H ^ H ^ , G m i n G H ' ^ H ^ m a x E x , y p s [ l ( H ^ G , y ) ] + d s t
Figure DE112022000498T5_0015
where I: ℝ h w xℝ h w → R + is defined as l ( p , q ) : = 1 H w i = 0 H w β p i l O G q i + ( 1 p i ) log ( 1 q i )
Figure DE112022000498T5_0016
Figure DE112022000498T5_0017
and pi and qi ∈ [0,1] (the averaged binary cross entropy loss). B is a hyperparameter that weights the importance of positive pixels in the pixel-wise binary segmentation map. d st can be defined according to equation (5) below: d s t : = E x p s [ E H w [ ( H ' ^ G ) ] ] E x p t [ E H w [ 1 4 ( H ' ^ G ) i 2 + H ' ^ G ( x ) i ] ]
Figure DE112022000498T5_0018
what the Pearson x 2 divergence and E H w [ x ] : = 1 H w i = 0 H w x i
Figure DE112022000498T5_0019
corresponds. Unlike previous implementations of f-DAL Pearson, d st can be interpreted as a one domain per site classifier 410 as in 4 illustrated. For example, the classifier 410 may function as a discriminator that identifies whether the data in a latent space corresponds to a real domain or a simulated or virtual domain. If the values in the latent space are classified as belonging to the source domain (and not the target domain), this can be captured in the d st value and used by the training engine 114 to adjust the parameters of the machine learning model(s) 112 to update. In embodiments, a gradient inversion layer may be used to handle the min-max target in a single forward-backward pass.

Wie in 4 veranschaulicht, kann der Prozess 400 verwendet werden, um das/die maschinelle(n) Lernmodell(e) 112 zu trainieren. Zum Beispiel wird zum Berechnen des Begriffs der Diskrepanz, dst, ein Domänen-Klassifikator ĥ' pro Standort eingebracht, und zwar in Ausführungsformen vor dem abschließenden Up-Sampling-Modul des Encoders des Modells aus der Vogelperspektive. Der Domänenklassifikator kann zwei Faltungsschichten mit LeakyRelu-Nichtlinearität beinhalten, die vorhersagen, ob ein Pixel in der semantischen Karte H x W entweder einer Quellendomäne (z. B. der virtuellen oder simulierten Welt) oder einer Ziel-Domäne (z. B. der echten Welt) entspricht. Die andere Ausgabe, ĥ, sagt die Ausgabe des/der maschinellen Lernmodells/Modelle 112 voraus - in diesem Beispiel eine BEV-Segmentierungskarte. g bildet das Rückgrat des/der maschinellen Lernmodells/Modelle 112, das einen CamEncoder und einen BevEncoder (bis zum letzten Up-Sampling-Modul) beinhalten kann.As in 4 illustrated, process 400 can be used to train machine learning model(s) 112. For example, to calculate the notion of discrepancy, d st , a domain classifier ĥ' is introduced per site, in embodiments prior to the final up-sampling module of the bird's eye view model encoder. The domain classifier can include two convolutional layers with LeakyRelu nonlinearity that predict whether a pixel in the H x W semantic map belongs to either a source domain (e.g. the virtual or simulated world) or a target domain (e.g. the real one world). The other output, ĥ, predicts the output of the machine learning model(s) 112 - in this example, a BEV segmentation map. g forms the backbone of the machine learning model(s) 112, which may include a CamEncoder and a BevEncoder (up to the last up-sampling module).

In einigen Ausführungsformen kann zusätzlich zu dem Ziel aus Gleichung (4) ein Pseudo-Verlust verwendet werden, wie beispielsweise in Gleichung (6) unten: l p s e u d o ( p . p a u g ) : = i = 0 h w [ p i τ ] [ β l o g p a u g i ] + [ 1 p i 1 τ ] log ( 1 p a u g i )

Figure DE112022000498T5_0020
wobei τ ∈ [0,1], 1[x] der Anzeigefunktion p: = h◦g(xt) entspricht und paug := h◦ g◦ aug(xt) mit aug : X→Xeiner Funktion, die eine starke Augmentierung des Eingabedatenpunkts erzeugt. Bei Kamerasensoren kann aug eine Version von RandAugment sein, die zusätzlich Kameraaussetzer einbezieht. Bei LiDAR können die Bildvergrößerungen durch zufälliges Rauschen über die Punktpositionen sowie durch Punktausfälle ersetzt werden. T kann ein jeglicher Wert sein, wie beispielsweise 0,8, 0,9, 0,95 usw. In nicht einschränkenden Ausführungsformen wurde T auf 0,9 festgelegt. Das Ziel von Gleichung (5) ist es, Pseudo-Kennzeichnungen 116 unter Verwendung der durch T bestimmten Konfidenzpunkte in den Vorhersagen des Modells für die Ziel-Domäne auf einer nicht stark erweiterten Version desselben Datenpunktes zu erzeugen. Die Verwendung von Pseudo-Kennzeichnungen 116 und adversariales Training minimieren gemeinsam die Gleichungen (4) und (6).In some embodiments, in addition to the objective of equation (4), a pseudo loss may be used, such as in equation (6) below: l p s e u d O ( p . p a u G ) : = i = 0 H w [ p i τ ] [ β l O G p a u G i ] + [ 1 p i 1 τ ] log ( 1 p a u G i )
Figure DE112022000498T5_0020
where τ ∈ [0,1], 1[x] corresponds to the display function p: = h◦g(x t ) and p aug := h◦ g◦ aug(x t ) with aug : X→Xa function that is a strong augmentation of the input data point generated. For camera sensors, aug can be a version of RandAugment that also includes camera dropouts. With LiDAR, the image magnifications can be replaced by random noise about the spot positions as well as spot dropouts. T can be any value such as 0.8, 0.9, 0.95, etc. In non-limiting embodiments, T has been set to 0.9. The goal of equation (5) is to generate pseudo-labels 116 using the confidence points determined by T in the model's predictions for the target domain on a not greatly expanded version of the same data point. The use of pseudo-labels 116 and adversarial training jointly minimize equations (4) and (6).

Das (die) maschinelle(n) Lernmodell(e) 112 kann (können) jede Art von maschinellem Lernmodell oder -algorithmus beinhalten, wie beispielsweise ein maschinelles Lernmodell (maschinelle Lernmodelle), das (die) lineare Regression, logistische Regression, Entscheidungsbäume, Support Vector Machines (SVM), Naive Bayes, k-nearest neighbor (Knn), K means clustering, random forest, Algorithmen zur Dimensionalitätsreduktion, Gradient-Boosting-Algorithmen, neuronale Netze (z. B., Auto-Encoder, Faltungsalgorithmen, rekurrente Algorithmen, Perceptrons, Lang-/Kurzzeitspeicher/LSTM, Hopfield, Boltzmann, Deep Belief, Dekonvolution, generative adversarische Algorithmen, Liquid State Machine usw.), Algorithmen zur Detektion von Interessensgebieten, Algorithmen für das maschinelle Sehen und/oder andere Arten von Algorithmen oder maschinelle Lernmodelle.The machine learning model(s) 112 may include any type of machine learning model or algorithm, such as a machine learning model(s) that supports linear regression, logistic regression, decision trees, etc Vector Machines (SVM), Naive Bayes, k-nearest neighbor (Knn), K means clustering, random forest, dimensionality reduction algorithms, gradient boosting algorithms, neural networks (e.g., auto-encoders, convolution algorithms, recurrent algorithms , Perceptrons, Long/Short Term Memory/LSTM, Hopfield, Boltzmann, Deep Belief, Deconvolution, Generative Adversary Algorithms, Liquid State Machine, etc.), interest detection algorithms, computer vision algorithms and/or other types of algorithms or machine Learning models.

Wie in 5 dargestellt, umfasst jeder Block des hier beschriebenen Verfahrens 500 einen Prozess des Berechnens, der mit einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Zum Beispiel können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren 500 kann auch in Form von computerverwendbaren Anweisungen, die auf Computer-Speichermedien gespeichert sind, verkörpert werden. 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. Darüber hinaus wird das Verfahren 500 beispielhaft bezogen auf den Prozess 100 von 1 beschrieben. Dieses Verfahren 500 kann jedoch zusätzlich oder alternativ von einem beliebigen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hier beschriebenen Systeme.As in 5 As shown, each block of the method 500 described herein includes a process of computing that can be performed with any combination of hardware, firmware and/or software. For example, various functions can be performed by a processor executing instructions stored in memory. The method 500 may also be embodied in the form of computer-usable instructions stored on computer storage media. Method 500 may be provided through a standalone application, service, or hosted service (standalone or in combination with another hosted service), or a plug-in for another product, to name a few. In addition, the method 500 is based on the process 100 by way of example 1 described. However, this method 500 may additionally or alternatively be performed by any system or combination of systems, including but not limited to the systems described herein.

5 ist ein Flussdiagramm, das ein Verfahren 500 zum Trainieren eines maschinellen Lernmodells unter Verwendung synthetischer Daten gemäß einiger Ausführungsformen der vorliegenden Offenbarung zeigt. Das Verfahren 500 beinhaltet im Block B502 das Abtasten eines oder mehrerer Standorte von Objekten aus einem Prior. Zum Beispiel können ein oder mehrere Standorte von Objekten aus einem räumlichen Prior (wenn keine beschrifteten Zieldaten verfügbar sind) und/oder aus einem Zielprior (wenn beschriftete Daten verwendet werden können, um eine Verteilung zu bestimmen) abgetastet werden. Der Prior kann mit Hilfe des Prioritätsgenerators 102 erzeugt werden. 5 is a flowchart depicting a method 500 for training a machine learning model using synthetic data in accordance with some embodiments of the present disclosure. The method 500 includes, at block B502, sampling one or more locations of objects from a prior. For example, one or more locations of objects may be sampled from a spatial prior (if labeled target data is not available) and/or from a target prior (if labeled data can be used to determine a distribution). The prior can be generated using the priority generator 102.

NetzDas Verfahren 500 beinhaltet in Block B504 das Erzeugen von synthetischen Daten, die zumindest teilweise auf den Positionen eines oder mehrerer Objekte basieren und ein oder mehrere Objekte an den Positionen eines oder mehrerer Objekte enthalten. Zum Beispiel kann unter Verwendung der abgetasteten Standorte der Objekte und/oder anderer Szeneninformationen 104 eine Szene in einem Simulator 106 erzeugt werden und die synthetischen Daten 108 können aus der Szene erzeugt werden.NetworkThe method 500 includes, in block B504, generating synthetic data based at least in part on the locations of one or more objects and including one or more objects at the locations of one or more objects. For example, using the sampled locations of the objects and/or other scene information 104, a scene may be created in a simulator 106 and the synthetic data 108 may be generated from the scene.

Das Verfahren 500 beinhaltet im Block B506 die Aktualisierung eines oder mehrerer Parameter eines maschinellen Lernmodells unter Verwendung eines Diskriminators, zumindest teilweise basierend auf den synthetischen Daten und den Daten der echten Welt. Zum Beispiel können mit Hilfe eines Diskriminators h' ein oder mehrere maschinelle Lernmodelle 112 für den Einsatz in der realen Welt unter Verwendung der synthetischen Daten 108 und der echten Daten 110 trainiert werden. In Ausführungsformen können Pseudo-Kennzeichnungen für Datenpunkte erzeugt werden, bei denen die Konfidenz der Ausgabe des/der maschinellen Lernmodelle(s) 112 über einer Konfidenzschwelle liegt (z. B. 0,85, 0,9 usw.). In einer weiteren Trainingsepoche können die Pseudo-Kennzeichnungen dann als Grundlage für das weitere Training des/der maschinellen Lernmodelle(s) 112 verwendet werden.The method 500 includes, at block B506, updating one or more parameters of a machine learning model using a discriminator based at least in part on the synthetic data and the real world data. For example, using a discriminator h', one or more machine learning models 112 can be trained for real-world use using the synthetic data 108 and the real data 110. In embodiments, pseudolabels may be generated for data points where the confidence of the output of the machine learning model(s) 112 is above a confidence threshold (e.g., 0.85, 0.9, etc.). In a further training epoch, the pseudo labels can then be used as a basis for further training of the machine learning model(s) 112.

BEISPIELHAFTES AUTONOMES FAHRZEUGEXEMPLARY AUTONOMOUS VEHICLE

6A ist eine Veranschaulichung eines beispielhaften autonomen Fahrzeugs 600 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das autonome Fahrzeug 600 (hierin alternativ als „Fahrzeug 600“ bezeichnet) kann ohne Einschränkung ein Personenfahrzeug beinhalten, wie etwa ein Auto, einen Lastwagen, einen Bus, ein Rettungsfahrzeug, ein Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, ein Feuerwehrauto, ein Polizeifahrzeug, einen Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne, ein an einen Anhänger gekoppeltes Fahrzeug und/oder eine andere Art von Fahrzeug (das z. B. unbemannt ist und/oder einen oder mehrere Passagiere beherbergt). Autonome Fahrzeuge werden im Allgemeinen im Hinblick auf Automatisierungslevels beschrieben, die von der National Highway Traffic Safety Administration (NHTSA), einer Abteilung des US-Verkehrsministeriums, und der Society of Automotive Engineers (SAE) „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles“ (z. B. Standard Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Standard Nr. J3016-201609, veröffentlicht am 30. September 2016, sowie frühere und zukünftige Versionen dieses Standards) definiert sind. Das Fahrzeug 600 kann gemäß einer oder mehreren der Stufen 3-5 der autonomen Fahrstufen funktionstüchtig sein. Das Fahrzeug 600 kann gemäß einer oder mehreren der Stufen 1-5 der autonomen Fahrstufen funktionstüchtig sein. Zum Beispiel kann das Fahrzeug 600 je nach Ausführungsform zu einer Fahrerassistenz (Stufe 1), einer teilweisen Automatisierung (Stufe 2), einer bedingten Automatisierung (Stufe 3), einer hohen Automatisierung (Stufe 4) und/oder einer vollständigen Automatisierung (Stufe 5) in der Lage sein. Der Begriff „autonom“, wie er hierin verwendet wird, kann beliebige und/oder alle Arten von Autonomie für das Fahrzeug 600 oder eine andere Maschine beinhalten, wie etwa vollständig autonom sein, hochgradig autonom sein, bedingt autonom sein, teilweise autonom sein, unterstützende Autonomie bereitstellen, halbautonom sein, primär autonom sein oder eine andere Bezeichnung haben. 6A is an illustration of an example autonomous vehicle 600 according to some embodiments of the present disclosure. The autonomous vehicle 600 (alternatively referred to herein as “vehicle 600”) may include, without limitation, a personal vehicle such as a car, a truck, a bus, an emergency vehicle, a shuttle, an electric or motorized bicycle, a motorcycle, a fire engine, a police vehicle, an ambulance, a boat, a construction vehicle, an underwater vehicle, a drone, a trailer-coupled vehicle, and/or any other type of vehicle (e.g., which is unmanned and/or accommodates one or more passengers). Autonomous vehicles are generally described in terms of automation levels as defined by the National Highway Traffic Safety Administration (NHTSA), a division of the U.S. Department of Transportation, and the Society of Automotive Engineers (SAE) “Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles” (e.g., Standard No. J3016-201806, published June 15, 2018, Standard No. J3016-201609, published September 30, 2016, and previous and future versions of this standard). . The vehicle 600 may be operable according to one or more of levels 3-5 of the autonomous driving levels. The vehicle 600 may be operable according to one or more of levels 1-5 of the autonomous driving levels. For example, depending on the embodiment, the vehicle 600 can have driver assistance (level 1), partial automation (level 2), conditional automation (level 3), high automation (level 4) and/or full automation (level 5). be able to. The term “autonomous,” as used herein, may include any and/or all types of autonomy for the vehicle 600 or other machine, such as being fully autonomous, highly autonomous, conditionally autonomous, partially autonomous, assistive Providing autonomy, being semi-autonomous, being primarily autonomous, or some other name.

Das Fahrzeug 600 kann Komponenten wie Chassis, Karosserie, Räder (z. B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs beinhalten. Das Fahrzeug 600 kann ein Antriebssystem 650 enthalten, wie z. B. einen Verbrennungsmotor, ein Hybrid-Elektro-Antriebsmaschine, einen vollelektrischen Motor und/oder einen anderen Antriebstyp. Das Antriebssystem 650 kann an einen Antriebsstrang des Fahrzeugs 600 angeschlossen werden, der ein Getriebe enthalten kann, um den Antrieb des Fahrzeugs 600 zu ermöglichen. Das Antriebssystem 650 kann als Reaktion auf den Empfang von Signalen des Gaspedals/Gashebel 652 gesteuert werden.The vehicle 600 may include components such as chassis, body, wheels (e.g., 2, 4, 6, 8, 18, etc.), tires, axles, and other components of a vehicle. The vehicle 600 may include a propulsion system 650, such as. B. an internal combustion engine, a hybrid electric prime mover, a fully electric motor and / or another type of drive. The propulsion system 650 may be connected to a powertrain of the vehicle 600, which may include a transmission to enable propulsion of the vehicle 600. The propulsion system 650 may be controlled in response to receiving signals from the accelerator pedal/throttle lever 652.

Ein Lenksystem 654, das möglicherweise ein Lenkrad enthält, kann verwendet werden, um das Fahrzeug 600 zu lenken (z. B. entlang eines gewünschten Wegs oder Route), wenn das Antriebssystem 650 in Betrieb ist (z. B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 654 kann Signale von einem Lenkaktuator 656 empfangen. Für die vollständige Automatisierungsfunktionalität (Stufe 5) kann das Lenkrad optional sein.A steering system 654, which may include a steering wheel, may be used to steer the vehicle 600 (e.g., along a desired path or route) when the propulsion system 650 is in operation (e.g., when the vehicle is in motion is). The steering system 654 may receive signals from a steering actuator 656. For full automation functionality (Level 5), the steering wheel can be optional.

Das Bremssensorsystem 646 kann zur Betätigung der Fahrzeugbremsen verwendet werden, wenn Signale von den Bremsaktuatoren 648 und/oder Bremssensoren empfangen werden.The brake sensor system 646 may be used to actuate the vehicle brakes when signals are received from the brake actuators 648 and/or brake sensors.

Controller 636, die ein oder mehrere System-on-Chips (SoCs) 604 (6C) und/oder GPUs umfassen, können Signale (z. B. repräsentativ für Befehle) an eine oder mehrere Komponenten und/oder Systeme des Fahrzeugs 600 senden. Beispielsweise kann der Controller Signale senden, um die Fahrzeugbremse über einen oder mehrere Bremsaktuatoren 648 zu betätigen, das Lenksystem 654 über einen oder mehrere Lenkaktuatoren 656 zu bedienen, um das Antriebssystem 650 über eines oder mehrere Gaspedale/Gashebel 652 zu bedienen. Der Controller 636 kann eine oder mehrere Onboard- (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 einen menschlichen Fahrer beim Fahren des Fahrzeugs zu unterstützen 600. Der Controller 636 kann einen ersten Controller 636 für autonome Fahrfunktionen, einen zweiten Controller 636 für funktionale Sicherheitsfunktionen, einen dritten Controller 636 für die Funktionalität der künstlichen Intelligenz (z. B. Computervision), einen vierten Controller 636 für Infotainment-Funktionalität, einen fünften Controller 636 für Redundanz im Notfall und/oder andere Controller enthalten. In einigen Beispielen kann ein einzelner Controller 636 zwei oder mehr der oben genannten Funktionalitäten verarbeiten, zwei oder mehr Controller 636 können eine einzelne Funktionalität und/oder eine beliebige Kombination davon verarbeiten.Controller 636, which has one or more system-on-chips (SoCs) 604 ( 6C ) and/or GPUs may send signals (e.g., representative of commands) to one or more components and/or systems of the vehicle 600. For example, the controller may send signals to operate the vehicle brake via one or more brake actuators 648, to operate the steering system 654 via one or more steering actuators 656, to operate the drive system 650 via one or more accelerator pedals/levers 652. The controller 636 may include one or more onboard (e.g., integrated) computing devices (e.g., supercomputers) that process sensor signals and issue operational commands (e.g., signals representing commands) to enable autonomous driving and/or to support a human driver in driving the vehicle 600. The controller 636 may include a first controller 636 for autonomous driving functions, a second controller 636 for functional safety functions, a third controller 636 for artificial intelligence functionality (e.g. computer vision ), a fourth controller 636 for infotainment functionality, a fifth controller 636 for emergency redundancy, and/or other controllers. In some examples, a single controller 636 may handle two or more of the above functionalities, two or more controllers 636 may handle a single functionality, and/or any combination thereof.

Der/die Controller 636 kann/können die Signale zur Steuerung einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 600 als Reaktion auf Sensordaten bereitstellen, die von einem oder mehreren Sensoren (z. B. Sensoreingaben) empfangen werden. Die Sensordaten können beispielsweise und ohne Einschränkung von globalen Satellitennavigationssystem(„GNSS“)-Sensoren 658 (z. B. Global Positioning System Sensor(en)), RADAR-Sensor(en) 660, Ultraschallsensor(en) 662, LIDAR-Sensor(en) 664, Trägheitsmesseinheits-Sensor(en) (IMU) 666 (z. B. Beschleunigungsmesser, Gyroskop(e), Magnetkompass(e), Magnetometer usw.), Mikrofon(en) 696, Stereokameras 668, Weitwinkelkameras 670 (z. B. Fischaugenkameras), Infrarotkameras 672, Umgebungskameras 674 (z. B. 360-Grad-Kameras), Langstreckenkameras und/oder Mittelstreckenkameras 698, Geschwindigkeitssensor(en) 644 (z. B. zur Messung der Fahrzeuggeschwindigkeit 600), Vibrationssensor(en) 642, Lenksensor(en) 640, Bremssensor(en) (z. B. als Teil des Bremssensorsystems 646) und/oder anderen Sensortypen empfangen werden.The controller(s) 636 may provide the signals to control one or more components and/or systems of the vehicle 600 in response to sensor data received from one or more sensors (e.g., sensor inputs). The sensor data can, for example, and without limitation of global navigation satellite system ("GNSS") sensors 658 (e.g. Global Positioning System sensor(s)), RADAR sensor(s) 660, ultrasonic sensor(s) 662, LIDAR sensor(s) 664, inertial measurement units -Sensor(s) (IMU) 666 (e.g. accelerometer(s), gyroscope(s), magnetic compass(s), magnetometer(s), etc.), microphone(s) 696, stereo cameras 668, wide-angle cameras 670 (e.g. fisheye cameras), Infrared cameras 672, ambient cameras 674 (e.g. 360 degree cameras), long-range cameras and/or medium-range cameras 698, speed sensor(s) 644 (e.g. for measuring vehicle speed 600), vibration sensor(s) 642, steering sensor(s). ) 640, brake sensor(s) (e.g. as part of the brake sensor system 646) and/or other sensor types are received.

Eine oder mehrere der Controller 636 können Eingaben (z. B. dargestellt durch Eingabedaten) von einem Kombiinstrument 632 des Fahrzeugs 600 empfangen und Ausgaben (z. B. dargestellt durch Ausgabedaten, Anzeigedaten usw.) über eine Mensch-Maschine-Schnittstelle (human-machine interface - HMI)-Anzeige 634, einen akustischen Signalgeber, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 600 empfangen. Die Ausgaben können Informationen wie etwa Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Abbildungsdaten (z. B. die hochauflösende („HD“) Karte 622 aus 6C), Standortdaten (z. B. den Standort des Fahrzeugs 600, wie etwa auf einer Karte), Richtung, Standort von anderen Fahrzeugen (z. B. ein Belegungsraster), Informationen über Objekte und Status von Objekten, wie sie durch den/die Controller 636 wahrgenommen werden, usw. beinhalten. Zum Beispiel kann die HMI-Anzeige 634 Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. eines Straßenschilds, eines Warnschilds, einer umschaltenden Ampel usw.) und/oder Informationen über Fahrmanöver, die das Fahrzeug vorgenommen hat, vornimmt oder vornehmen wird (z. B. dass es jetzt die Spur wechselt, in zwei Meilen Ausfahrt 34B nimmt usw.), anzeigen.One or more of the controllers 636 may receive inputs (e.g., represented by input data) from an instrument cluster 632 of the vehicle 600 and outputs (e.g., represented by output data, display data, etc.) via a human-machine interface (human-machine interface). machine interface (HMI) display 634, an acoustic signal generator, a loudspeaker and / or received via other components of the vehicle 600. The outputs may include information such as vehicle speed, RPM, time, imaging data (e.g., the high resolution (“HD”) map 622 6C ), location data (e.g., the location of the vehicle 600, such as on a map), direction, location of other vehicles (e.g., an occupancy grid), information about objects and status of objects as indicated by the Controller 636 are perceived, etc. include. For example, the HMI display 634 may provide information about the presence of one or more objects (e.g., a street sign, a warning sign, a changing traffic light, etc.) and/or information about driving maneuvers that the vehicle has made, is making, or will make (e.g. that it is now changing lanes, taking exit 34B in two miles, etc.).

Das Fahrzeug 600 beinhaltet ferner eine NetzNetzeschnittstelle 624, die eine oder mehrere drahtlose Antennen 626 und/oder Modems zur Kommunikation über ein oder mehrere Netze verwenden kann. Zum Beispiel kann die NetzNetzeschnittstelle 624 in der Lage sein, über LTE, WCDMA, UMTS, GSM, CDMA2000 usw. zu kommunizieren. Die drahtlose(n) Antenne(n) 626 kann/können auch eine Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeugen, mobilen Vorrichtungen usw.) unter Verwendung von (einem) lokalen Netz(en), wie etwa Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw., und/oder (einem) Weitverkehrsnetz(en) mit geringer Leistung (low power wide-area networks - „LPWANs“), wie etwa LoRaWAN, SigFox usw., ermöglichen.The vehicle 600 further includes a network interface 624 that may use one or more wireless antennas 626 and/or modems to communicate over one or more networks. For example, the network network interface 624 may be capable of communicating via LTE, WCDMA, UMTS, GSM, CDMA2000, etc. The wireless antenna(s) 626 may also enable communication between objects in the environment (e.g., vehicles, mobile devices, etc.) using local area network(s), such as Bluetooth LE, Z-Wave, ZigBee, etc., and/or low power wide-area networks (“LPWANs”), such as LoRaWAN, SigFox, etc.

6B ist ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug 600 aus 6A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und die entsprechenden Sichtfelder stellen eine beispielhafte Ausführungsform dar und sind nicht als einschränkend aufzufassen. Beispielsweise können zusätzliche und/oder alternative Kameras enthalten sein und/oder die Kameras können sich an verschiedenen Positionen im Fahrzeug 600 befinden. 6B is an example of camera positions and fields of view for the example autonomous vehicle 600 6A according to some embodiments of the present disclosure. The cameras and the corresponding fields of view represent an exemplary embodiment and should not be construed as limiting. For example, additional and/or alternative cameras may be included and/or the cameras may be located at different locations within the vehicle 600.

Die Kameratypen für die Kameras können, sind aber nicht darauf beschränkt, unter anderem Digitalkameras umfassen, die für die Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 600 angepasst werden können. Die Kamera(s) kann/können mit dem Automobilsicherheitsintegritätslevel (automotive safety integrity level - ASIL) B und/oder mit einem anderen ASIL betrieben werden. Die Kameraarten können in Abhängigkeit von der Ausführungsform zu einer beliebigen Bildaufnahmerate in der Lage sein, wie etwa 60 Bilder pro Sekunde (frames per second - fps), 120 fps, 240 fps usw. Die Kameras können dazu in der Lage sein, Rollblendenverschlüsse, globale Blendenverschlüsse, einen anderen Typ von Blendenverschluss oder eine Kombination davon zu verwenden. In einigen Beispielen kann die Farbfilteranordnung eine Rot-Klar-Klar-Klar (red clear - RCCC)-Farbfilteranordnung, eine Rot-Klar-Klar-Blau (red clear blue - RCCB)-Farbfilteranordnung, eine Rot-Blau-Grün-Klar (red blue green clear - RBGC)-Farbfilteranordnung, eine Foveon-X3-Farbfilteranordnung, eine Bayer-Sensoren (RGGB)-Farbfilteranordnung, eine Monochrom-Sensor-Farbfilteranordnung und/oder eine andere Art von Farbfilteranordnung beinhalten. In einigen Ausführungsformen können Klarpixelkameras, wie zum Beispiel Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, in einem Bestreben zur Erhöhung der Lichtempfindlichkeit verwendet werden.Camera types for the cameras may include, but are not limited to, digital cameras that may be adapted for use with the components and/or systems of the vehicle 600. The camera(s) may operate at automotive integrity safety level (ASIL) B and/or another ASIL. The camera types may be capable of any image capture rate depending on the embodiment, such as 60 frames per second (fps), 120 fps, 240 fps, etc. The cameras may be capable of rolling shutters, global Shutters, another type of shutter, or a combination thereof. In some examples, the color filter assembly may be a red clear-clear (RCCC) color filter assembly, a red clear blue (RCCB) color filter assembly, a red-blue-green-clear ( red blue green clear (RBGC) color filter array, a Foveon-X3 color filter array, a Bayer Sensor (RGGB) color filter array, a monochrome sensor color filter array, and/or another type of color filter array. In some embodiments, clear pixel cameras, such as cameras with an RCCC, an RCCB, and/or an RBGC color filter array, may be used in an effort to increase light sensitivity.

In einigen Beispielen können eine oder mehrere der Kamera(s) verwendet werden, um Funktionen der weiterentwickelten Fahrerassistenzsysteme (advanced driver assistance systems - ADAS) durchzuführen (z. B. als Teil einer redundanten oder ausfallsicheren Ausgestaltung). Zum Beispiel kann eine Multifunktions-Monokamera installiert sein, die Funktionen wie Spurverlassenswarnung, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung bereitstellt. Eine oder mehrere der Kamera(s) (z. B. alle Kameras) können simultan Bilddaten (z. B. ein Video) aufnehmen und bereitstellen.In some examples, one or more of the cameras may be used to perform functions of the advanced driver assistance systems (ADAS) (e.g., as part of a redundant or fail-safe design). For example, a multi-function mono camera can be installed, providing functions such as lane departure warning, traffic sign assistant and intelligent headlight control. One or more of the camera(s) (e.g. all cameras) can simultaneously record and provide image data (e.g. a video).

Eine oder mehrere der Kameras können in einer Montagebaugruppe, wie etwa einer kundenspezifisch entworfenen (3D-gedruckten) Baugruppe, montiert sein, um Streulicht und Reflexionen aus dem Inneren des Autos (z. B. Reflexionen vom Armaturenbrett, die sich in den Windschutzscheibenspiegeln spiegeln) auszuschließen, welche die Bilddatenerfassungsfähigkeiten der Kamera beeinträchtigen können. Unter Bezugnahme auf Seitenspiegelmontagebaugruppen können die Seitenspiegelbaugruppen kundenspezifisch 3D-gedruckt werden, sodass die Kameramontageplatte mit der Form des Seitenspiegels übereinstimmt. In einigen Beispielen kann/können die Kamera(s) in den Seitenspiegel integriert sein. Bei Seitensichtkameras kann/können die Kamera(s) auch in den vier Säulen an jeder Ecke des Fahrerhauses integriert sein.One or more of the cameras may be mounted in a mounting assembly, such as a custom-designed (3D printed) assembly, to capture stray light and reflections from inside the car (e.g., reflections from the dashboard reflected in the windshield mirrors). to exclude those that could affect the image data capture capabilities of the camera. Referring to side mirror mounting assemblies, the side mirror assemblies can be custom 3D printed so that the camera mounting plate matches the shape of the side mirror. In some examples, the camera(s) may be integrated into the side mirror. With side view cameras, the camera(s) can also be integrated into the four pillars at each corner of the driver's cab.

Kameras mit einem Sichtfeld, das Abschnitte der Umgebung vor dem Fahrzeug 600 beinhaltet (z. B. nach vorn gerichtete Kameras), können für die Rundumsicht verwendet werden, um dabei zu helfen, nach vorne gerichtete Wege und Hindernisse zu identifizieren, und dabei zu helfen, mithilfe eines oder mehrerer Controller 636 und/oder Steuer-SoCs, wichtige Informationen zur Erzeugung eines Belegungsraster und/oder zur Bestimmung der bevorzugten Fahrzeugwege bereitzustellen. Nach vorn gerichtete Kameras können verwendet werden, um viele der gleichen ADAS-Funktionen wie LIDAR auszuführen, einschließlich Notbremsung, Fußgängererkennung und Kollisionsvermeidung. Nach vorn gerichtete Kameras können auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich Spurverlassenswarnungen (LDW), autonome Geschwindigkeitssteuerung (ACC) und/oder andere Funktionen wie etwa Verkehrszeichenerkennung.Cameras with a field of view that includes portions of the environment in front of the vehicle 600 (e.g., forward-facing cameras) may be used for surround vision to help identify and assist in forward-facing paths and obstacles , using one or more controllers 636 and/or control SoCs, to provide important information for generating an occupancy grid and/or determining preferred vehicle paths. Forward-facing cameras can be used to perform many of the same ADAS functions as LIDAR, including emergency braking, pedestrian detection and collision avoidance. Forward-facing cameras can also be used for ADAS functions and systems, including lane departure warnings (LDW), autonomous cruise control (ACC), and/or other functions such as traffic sign recognition.

Eine Vielfalt an Kameras kann in einer nach vorn gerichteten Konfiguration verwendet werden, einschließlich zum Beispiel einer monokularen Kameraplattform, die einen CMOS (complementary metal oxide semiconductor - komplementärer Metalloxid-Halbleiter)-Farbbildgeber beinhaltet. Ein weiteres Beispiel ist/sind (eine) Weitwinkelkamera(s) 670, die verwendet werden kann/können, um Objekte wahrzunehmen, die aus der Peripherie in den Blick kommen (z. B. Fußgänger, Kreuzungsverkehr oder Fahrräder). Obwohl in 6B nur eine Weitwinkelkamera veranschaulicht ist, kann es eine beliebige Anzahl von Weitwinkelkameras 670 auf dem Fahrzeug 600 geben. Zusätzlich können Langstreckenkamera(s) 698 (z. B. ein Langbild-Stereokamerapaar) für die tiefenbasierte Objekterkennung verwendet werden, insbesondere für Objekte, für die noch kein neuronales Netz trainiert wurde. Die Langstreckenkamera(s) 698 kann/können auch zur Objekterkennung und - klassifizierung sowie zur einfachen Objektverfolgung verwendet werden.A variety of cameras may be used in a forward-facing configuration, including, for example, a monocular camera platform that includes a CMOS (complementary metal oxide semiconductor) color imager. Another example is wide angle camera(s) 670, which may be used to perceive objects coming into view from the periphery (e.g., pedestrians, intersection traffic, or bicycles). Although in 6B Only one wide-angle camera is illustrated, there may be any number of wide-angle cameras 670 on the vehicle 600. Additionally, long-range camera(s) 698 (e.g., a long-view stereo camera pair) may be used for depth-based object detection, particularly for objects for which a neural network has not yet been trained. The 698 long range camera(s) can also be used for object detection and classification as well as simple object tracking.

Eine oder mehrere Stereokameras 668 können auch in einer nach vorne gerichteten Konfiguration beinhaltet sein. Die eine oder mehrere der Stereokamera(s) 668 eine integrierte Steuereinheit beinhalten, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (FPGA) und einen Mehrkern-Mikroprozessor mit einer integrierten CAN- oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. Eine solche Einheit kann verwendet werden, um eine 3D-Karte der Umgebung des Fahrzeugs zu erzeugen, die eine Abstandsschätzung für alle Punkte im Bild beinhaltet. (Eine) alternative Stereokamera(s) 668 kann/können einen/mehrere kompakte Stereo-Vision-Sensor(en) beinhalten, der/die zwei Kameraobjektive (jeweils eines links und rechts) und einen Bildverarbeitungs-Chip beinhalten kann/können, der den Abstand vom Fahrzeug zum Zielobjekt messen und die erzeugten Informationen (z. B. Metadaten) verwenden kann, um die autonomen Notbrems- und Spurverlassenswarnungsfunktionen zu aktivieren. Andere Stereokameratypen 668 können zusätzlich oder alternativ zu den hier beschriebenen verwendet werden.One or more stereo cameras 668 may also be included in a front-facing configuration. The one or more of the stereo camera(s) 668 include an integrated control unit that includes a scalable processing unit that can provide programmable logic (FPGA) and a multi-core microprocessor with an integrated CAN or Ethernet interface on a single chip. Such a unit can be used to generate a 3D map of the vehicle's surroundings, which includes a distance estimate for all points in the image. (An) alternative stereo camera(s) 668 may include a compact stereo vision sensor(s), which may include two camera lenses (one each on the left and one on the right) and an image processing chip that may include the Measure the distance from the vehicle to the target object and use the generated information (e.g. metadata) to activate the autonomous emergency braking and lane departure warning functions. Other stereo camera types 668 may be used in addition to or as an alternative to those described here.

Kameras mit einem Sichtfeld, das Teile der Umgebung an der Seite des Fahrzeugs 600 umfasst (z. B. Seitenansicht-Kameras), können für die Rundumsicht verwendet werden und Informationen liefern, um das Belegungsraster zu erzeugen und zu aktualisieren sowie Seitenkollisionswarnungen zu erzeugen. Zum Beispiel kann/können Umgebungskamera(s) 674 (z. B. vier Umgebungskameras 674, wie in 6B dargestellt) auf dem Fahrzeug 600 positioniert werden. Die Umgebungskamera(s) 674 kann/können Weitwinkelkameras 670, Fischaugenkameras, 360-Grad-Kameras und/oder ähnliche Kameras umfassen. Zum Beispiel können vier Fischaugenkameras vorne, hinten und an den Seiten des Fahrzeugs positioniert werden. In einer alternativen Anordnung kann das Fahrzeug drei Umgebungskameras 674 (z. B. links, rechts und hinten) verwenden und eine oder mehrere andere Kameras (z. B. eine nach vorne gerichtete Kamera) als vierte Surround-View-Kamera nutzen.Cameras with a field of view that includes portions of the environment on the side of the vehicle 600 (e.g., side view cameras) may be used for surround vision and provide information to generate and update the occupancy grid and generate side collision warnings. For example, environmental camera(s) 674 (e.g., four environmental cameras 674, as in 6B shown) can be positioned on the vehicle 600. The ambient camera(s) 674 may include wide-angle cameras 670, fisheye cameras, 360-degree cameras, and/or similar cameras. For example, four fisheye cameras can be positioned at the front, rear and sides of the vehicle. In an alternative arrangement, the vehicle may use three surround cameras 674 (e.g., left, right, and rear) and use one or more other cameras (e.g., a front-facing camera) as a fourth surround-view camera.

Kameras mit einem Sichtfeld, das Teile der Umgebung im Heck des Fahrzeugs 600 umfasst (z. B. Rückfahrkameras), können zur Parkhilfe, zur Rundumsicht, zur Warnung vor Heckkollisionen sowie zur Erstellung und Aktualisierung des Belegungsrasters verwendet werden. Es kann eine Vielzahl von Kameras verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als Frontkameras geeignet sind (z. B. Langstrecken- und/oder Mittelstreckenkameras 698, Stereokameras 668, Infrarotkameras 672 usw.), wie hier beschrieben.Cameras with a field of view that includes portions of the environment at the rear of the vehicle 600 (e.g., rearview cameras) may be used for parking assistance, surround visibility, rear collision warning, and occupancy grid creation and updating. A variety of cameras may be used, including, but not limited to, cameras that are also suitable as front-facing cameras (e.g., long-range and/or medium-range cameras 698, stereo cameras 668, infrared cameras 672, etc.), as described herein.

6C ist ein Blockdiagramm einer Beispiel-Systemarchitektur für das beispielhafte autonome Fahrzeug 600 aus 6A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es versteht sich, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele aufgeführt werden. 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 implementiert 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. 6C is a block diagram of an example system architecture for the example autonomous vehicle 600 6A , according to some embodiments of the present disclosure. It is to be understood that these and other arrangements described herein are provided as examples only. Other arrangements and elements (e.g., machines, interfaces, functions, commands, groupings of functions, etc.) may be used in addition to or instead of those shown, and some elements may be omitted entirely. Further, many of the elements described herein are functional units that may be implemented as discrete or distributed components or in conjunction with other components and in any suitable combination and position. Various functions described herein as being performed by devices may be performed by hardware, firmware, and/or software. For example, various functions can be performed by a processor executing instructions stored in memory.

Alle Komponenten, Merkmale und Systeme des Fahrzeugs 600 in 6C sind als über Bus 602 verbunden dargestellt. Der Bus 602 kann eine Controller Area Network (CAN)-Datenschnittstelle beinhalten (alternativ hierin auch als „CAN-Bus“ bezeichnet). Ein CAN kann ein Netz innerhalb des Fahrzeugs 600 sein, das zur Unterstützung der Steuerung verschiedener Merkmale und Funktionalitäten des Fahrzeugs 600 verwendet wird, wie etwa Betätigung der Bremsen, Beschleunigung, Bremsen, Lenken, Scheibenwischer usw. Ein CAN-Bus kann dazu konfiguriert sein, dass er Dutzende oder sogar Hunderte von Knoten aufweist, die jeweils eine eigene eindeutige Kennung haben (z. B. eine CAN-ID). Der CAN-Bus kann ausgelesen werden, um Lenkradwinkel, Geschwindigkeit über Grund, Motorumdrehungen pro Minute (revolutions per minute - RPMs), Tastenpositionen und/oder andere Fahrzeugstatusindikatoren zu ermitteln. Der CAN-Bus kann ASIL B-konform sein.All components, features and systems of the vehicle 600 in 6C are shown as connected via bus 602. The bus 602 may include a Controller Area Network (CAN) data interface (alternatively referred to herein as a “CAN bus”). A CAN may be a network within the vehicle 600 that is used to assist in controlling various features and functionalities of the vehicle 600, such as brake application, acceleration, braking, steering, windshield wipers, etc. A CAN bus may be configured to: that it has dozens or even hundreds of nodes, each with its own unique identifier (e.g. a CAN ID). The CAN bus can be read to determine steering wheel angle, ground speed, engine revolutions per minute (RPMs), button positions and/or other vehicle status indicators. The CAN bus can be ASIL B compliant.

Obwohl der Bus 602 hier als CAN-Bus beschrieben wird, soll dies nicht einschränkend sein. Zum Beispiel können zusätzlich oder alternativ zum CAN-Bus auch FlexRay und/oder Ethernet verwendet werden. Auch dies soll, obwohl eine einzelne Leitung verwendet wird, um den Bus 602 darzustellen, nicht einschränkend sein. Beispielsweise kann es eine beliebige Anzahl von Bussen 602 geben, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Bustypen mit einem anderen Protokoll umfassen können. In einigen Beispielen können zwei oder mehr Busse 602 verwendet werden, um verschiedene Funktionen auszuführen und/oder um Redundanz zu gewährleisten. Beispielsweise kann ein erster Bus 602 zur Kollisionsvermeidung und ein zweiter Bus 602 zur Ansteuerung verwendet werden. In jedem Beispiel kann jeder Bus 602 mit einer beliebigen Komponente des Fahrzeugs 600 kommunizieren, und zwei oder mehr Busse 602 können mit denselben Komponenten kommunizieren. In einigen Beispielen kann jedes SoC 604, jeder Controller 636 und/oder jeder Computer im Fahrzeug auf dieselben Eingabedaten zugreifen (z. B. Eingaben von Sensoren des Fahrzeugs 600) und an einen gemeinsamen Bus, wie den CAN-Bus, angeschlossen werden.Although bus 602 is described herein as a CAN bus, this is not intended to be limiting. For example, FlexRay and/or Ethernet can also be used in addition to or as an alternative to the CAN bus. Again, although a single line is used to represent bus 602, this is not intended to be limiting. For example, there may be any number of buses 602, which may include one or more CAN buses, one or more FlexRay buses, one or more Ethernet buses, and/or one or more other types of buses with a different protocol. In some examples, two or more buses 602 may be used to perform various functions and/or to provide redundancy. For example, a first bus 602 can be used to avoid collisions and a second bus 602 can be used for control. In each example, each bus 602 may communicate with any component of the vehicle 600, and two or more buses 602 may communicate with the same components. In some examples, each SoC 604, each controller 636, and/or each computer in the vehicle may access the same input data (e.g., inputs from sensors of the vehicle 600) and be connected to a common bus, such as the CAN bus.

Das Fahrzeug 600 kann einen oder mehrere Controller 636 umfassen, wie hier in Bezug auf 6A beschrieben wird. Der Controller 636 kann für eine Vielzahl von Funktionen verwendet werden. Der Controller 636 kann an eine der verschiedenen anderen Komponenten und Systeme des Fahrzeugs 600 gekoppelt werden und kann/können zur Steuerung des Fahrzeugs 600, der künstlichen Intelligenz des Fahrzeugs 600, des Infotainments für das Fahrzeug 600 und/oder dergleichen verwendet werden.The vehicle 600 may include one or more controllers 636, as described herein 6A is described. The 636 controller can be used for a variety of functions. The controller 636 may be coupled to any of the various other components and systems of the vehicle 600 and may be used to control the vehicle 600, the artificial intelligence of the vehicle 600, the infotainment for the vehicle 600, and/or the like.

Das Fahrzeug 600 kann ein Ein-Chip-System (system on a chip - SoC) 604 umfassen. Das SoC 604 kann CPUs 606, GPUs 608, Prozessor(en) 610, Caches 612, Beschleuniger 614, Datenspeicher 616 und/oder andere Komponenten und Funktionen, die nicht abgebildet sind, umfassen. Das SoC 604 kann zur Steuerung des Fahrzeugs 600 in einer Vielzahl von Plattformen und Systemen verwendet werden. Beispielsweise kann das SoC 604 in einem System (z. B. dem System des Fahrzeugs 600) mit einer HD-Karte 622 kombiniert werden, die Kartenaktualisierungen und/oder Aktualisierungen über eine NetzNetzeschnittstelle 624 von einem oder mehreren Servern (z. B. Server(n) 678 aus 6D) bezieht.The vehicle 600 may include a system on a chip (SoC) 604. The SoC 604 may include CPUs 606, GPUs 608, processor(s) 610, caches 612, accelerators 614, data storage 616, and/or other components and functions not shown. The SoC 604 can be used to control the vehicle 600 in a variety of platforms and systems. For example, the SoC 604 may be combined in a system (e.g., the system of the vehicle 600) with an HD card 622 that receives map updates and/or upgrades via a network interface 624 from one or more servers (e.g., servers ( n) 678 out 6D ).

Die CPUs 606 kann/können einen CPU-Cluster oder einen CPU-Komplex enthalten (hier alternativ auch als „CCPLEX“ bezeichnet). Die CPUs 606 kann/können mehrere Kerne und/oder L2-Caches enthalten. In einigen Ausführungsformen kann/können die CPUs 606 beispielsweise acht Kerne in einer kohärenten Multi-Prozessor-Konfiguration enthalten. In einigen Ausführungsformen kann/können die CPUs 606 vier Dual-Core-Cluster umfassen, wobei jeder Cluster über einen dedizierten L2-Cache verfügt (z. B. einen 2 MB L2-Cache). Die CPUs 606 (z. B. CCPLEX) kann/können konfiguriert sein, um den gleichzeitigen Clusterbetrieb zu unterstützen, so dass eine beliebige Kombination des/der CPUs 606-Cluster zu einem bestimmten Zeitpunkt aktiv sein kann/können.The CPUs 606 may include a CPU cluster or a CPU complex (alternatively referred to herein as a “CCPLEX”). The CPUs 606 may include multiple cores and/or L2 caches. For example, in some embodiments, CPUs 606 may include eight cores in a coherent multi-processor configuration. In some embodiments, the CPUs 606 may include four dual-core clusters, each cluster having a dedicated L2 cache (e.g., a 2 MB L2 cache). The CPUs 606 (e.g., CCPLEX) may be configured to support concurrent cluster operation so that any combination of the CPUs 606 cluster(s) may be active at any given time.

Die CPUs 606 kann/können Energieverwaltungsfunktionen implementieren, die eine oder mehrere der folgenden Merkmale umfassen: einzelne Hardwareblöcke können automatisch im Leerlauf taktgesteuert werden, um dynamische Energie zu sparen; jeder Kerntakt kann gesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Befehlen keine aktiven Anweisungen ausführt; jeder Kern kann unabhängig leistungsgesteuert werden; jeder Kern-Cluster kann unabhängig taktgesteuert werden, wenn alle Kerne taktgesteuert oder leistungsgesteuert sind; und/oder jeder Kern-Cluster kann unabhängig leistungsgesteuert werden, wenn alle Kerne leistungsgesteuert sind. Die CPUs 606 kann/können einen erweiterten Algorithmus zur Verwaltung von Energiezuständen implementieren, bei dem zulässige Energiezustände und erwartete Aktivierungszeiten angegeben werden und der Hardware-/Mikrocode den besten Energiezustand für den Kern, Cluster und CCPLEX bestimmt. Die Verarbeitungskerne können vereinfachte Leistungsstatus-Eintragssequenzen in der Software unterstützen, wobei die Arbeit in den Mikrocode ausgelagert wird.The CPUs 606 may implement power management functions that include one or more of the following features: individual hardware blocks may be automatically clocked when idle to conserve dynamic power; each core clock can be controlled when the core is not executing active instructions due to the execution of WFI/WFE instructions; each core can be independently power controlled; each core cluster can be clocked independently if all cores are clocked or power driven; and/or each core cluster can be independently power controlled when all cores are power controlled. The CPUs 606 may implement an advanced power state management algorithm in which allowed power states and expected wake times are specified and the hardware/microcode determines the best power state for the core, cluster, and CCPLEX. The processing cores can support simplified performance status entry sequences in software, offloading the work to microcode.

Die GPUs 608 kann/können eine integrierte GPU enthalten (hier alternativ auch als „iGPU“ bezeichnet). Die GPUs 608 kann/können programmierbar sein und für parallele Workloads effizient sein. Die GPUs 608 kann/können in einigen Beispielen einen erweiterten Tensor-Befehlssatz verwenden. Die GPUs 608 kann/können einen oder mehrere Streaming-Mikroprozessoren enthalten, wobei jeder Streaming-Mikroprozessor einen L1-Cache umfassen kann (z. B. einen L1-Cache mit mindestens 96 KB Speicherkapazität) und zwei oder mehr der Streaming-Mikroprozessoren sich einen L2-Cache teilen können (z. B. einen L2-Cache mit einer Speicherkapazität von 512 KB). In einigen Ausführungsformen kann/können die GPUs 608 mindestens acht Streaming-Mikroprozessoren enthalten. Die GPUs 608 kann/können Programmierschnittstellen für Computeranwendungen (application programming interface - API) verwenden. Außerdem kann/können die GPUs 608 eine oder mehrere parallele Rechnerplattformen und/oder Programmiermodelle (z. B. NVIDIA CUDA) verwenden.The GPUs 608 may contain an integrated GPU (alternatively referred to here as “iGPU”). The GPUs 608 may be programmable and efficient for parallel workloads. The GPUs 608 may use an extended Tensor instruction set in some examples. The GPUs 608 may include one or more streaming microprocessors, where each streaming microprocessor may include an L1 cache (e.g., an L1 cache with at least 96 KB of storage capacity) and two or more of the streaming microprocessors share one Share L2 cache (e.g. an L2 cache with a storage capacity of 512 KB). In some embodiments, GPUs 608 may include at least eight streaming microprocessors. The GPUs 608 may use computer application programming interfaces (API). Additionally, the GPUs 608 may use one or more parallel computing platforms and/or programming models (e.g., NVIDIA CUDA).

Die GPUs 608 kann/können für die beste Leistung im Automobil- und Embedded-Anwendungsfall leistungsoptimiert sein. Beispielsweise kann/können die GPUs 608 auf einem Fin-Feldeffekttransistor (Fin field-effect transistor - FinFET) hergestellt werden. Dies soll jedoch nicht einschränkend sein und die GPUs 608 kann/können mithilfe anderer Halbleiterfertigungsprozesse hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Anzahl von Verarbeitungskernen mit gemischter Genauigkeit beinhalten, die in mehrere Blöcke partitioniert sind. Zum Beispiel, und ohne Einschränkung, könnten 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke partitioniert sein. In solch einem Beispiel könnten jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA TENSOR COREs mit gemischter Genauigkeit für Deep-Learning-Matrixarithmetik, ein L0- Anweisungs-Cache, ein Warp--Scheduler, eine Verteilungseinheit und/oder eine Registerdatei mit 64 KB zugewiesen sein. Zusätzlich können Streaming-Mikroprozessoren unabhängige parallele Integer- und Fließkomma-Datenpfade beinhalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnung und Adressierungsberechnungen zu ermöglichen. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Planungsfunktion beinhalten, um eine feinkörnigere Synchronisation und Kooperation zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können eine Einheit aus kombiniertem L1-Daten-Cache und gemeinsam genutztem Speicher beinhalten, um die Performance zu verbessern, während die Programmierung vereinfacht wird.The GPUs 608 may be power optimized for the best performance in automotive and embedded use cases. For example, the GPUs 608 may be fabricated on a Fin field-effect transistor (FinFET). However, this is not intended to be limiting and the GPUs 608 may be manufactured using other semiconductor manufacturing processes. Each streaming microprocessor may include a number of mixed-precision processing cores partitioned into multiple blocks. For example, and without limitation, 64 PF32 cores and 32 PF64 cores could be partitioned into four processing blocks. In such an example, each processing block could have 16 FP32 cores, 8 FP64 cores, 16 INT32 cores, two mixed-precision NVIDIA TENSOR COREs for deep learning matrix arithmetic, an L0 instruction cache, a warp scheduler, a Distribution unit and/or a 64 KB register file must be assigned. Additionally, streaming microprocessors can include independent parallel integer and floating point data paths to enable efficient execution of workloads with a mix of computation and addressing computations. The streaming microprocessors can include an independent thread scheduling function to enable finer-grained synchronization and cooperation between parallel threads. The streaming microprocessors can include a combined L1 data cache and shared memory unit to improve performance while simplifying programming.

Die GPUs 608 kann/können einen Speicher mit hoher Bandbreite (High Bandwidth Memory - HBM) und/oder ein 16 GB HBM2-Speichersubsystem enthalten, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/s zu bieten. In einigen Beispielen kann zusätzlich oder alternativ zu dem HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (synchronous graphics random-access memory - SGRAM) verwendet werden, wie etwa ein synchroner Direktzugriffsspeicher vom Graphics-Double-Data-Rate-Typ fünf (graphics double data rate type five - GDDR5).The GPUs 608 may include high bandwidth memory (HBM) and/or a 16 GB HBM2 memory subsystem to provide peak memory bandwidth of approximately 900 GB/s in some examples. In some examples, in addition to or as an alternative to the HBM memory, a synchronous graphics random-access memory (SGRAM) may be used, such as a graphics double data rate type five synchronous random access memory (graphics double data rate type five - GDDR5).

Die GPUs 608 kann/können eine Unified-Memory-Technologie einschließlich Zugriffsprozessoren enthalten, um eine genauere Migration von Speicherseiten auf den Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz für Speicherbereiche, die zwischen Prozessoren gemeinsam genutzt werden, verbessert wird. In einigen Beispielen kann die Unterstützung von Address Translation Services (ATS) verwendet werden, um der/den GPUs 608 den direkten Zugriff auf die CPUs 606-Seitentabellen zu ermöglichen. In solchen Beispielen kann eine Anfrage zur Adressübersetzung an die CPUs 606 gesendet werden, wenn die Speicherverwaltungseinheit (memory management unit - MMU) der GPUs 608 einen Fehler aufweist. Als Reaktion darauf sucht/suchen die CPUs 606 möglicherweise in ihren Seitentabellen nach dem Virtuellen-zu-Physisch-Mapping für die Adresse und überträgt die Übersetzung zurück an die GPUs 608. Daher kann die Unified-Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher der CPUs 606 und der GPUs 608 ermöglichen, wodurch die GPUs 608-Programmierung und die Portierung von Anwendungen auf die GPUs 608 vereinfacht wird.The GPUs 608 may include unified memory technology including access processors to enable more accurate migration of memory pages to the processor that accesses them most frequently, thereby improving efficiency for memory areas shared between processors . In some examples, Address Translation Services (ATS) support may be used to allow the GPU(s) 608 to directly access the CPUs 606 page tables. In such examples, an address translation request may be sent to the CPUs 606 if the memory management unit (MMU) of the GPUs 608 has an error. In response, the CPUs 606 may search their page tables for the virtual-to-physical mapping for the address and transmit the translation back to the GPUs 608. Therefore, unified memory technology may provide a single unified virtual address space for the Enable memory of the CPUs 606 and the GPUs 608, which simplifies GPUs 608 programming and porting applications to the GPUs 608.

Darüber hinaus kann/können die GPUs 608 einen Zugriffszähler enthalten, der die Zugriffshäufigkeit der GPUs 608 auf den Speicher anderer Prozessoren nachverfolgen kann. Der Zugriffszähler kann dazu beitragen, dass Speicherseiten in den physischen Speicher desjenigen Prozessors verschoben werden, der am häufigsten auf die Seiten zugreift.In addition, the GPUs 608 may include an access counter that can track the frequency of access of the GPUs 608 to the memory of other processors. The access counter can help move memory pages to the physical memory of the processor that accesses the pages most frequently.

Das SoC 604 kann eine beliebige Anzahl von Caches 612 enthalten, einschließlich der hier beschriebenen. Der Caches 612 kann beispielsweise einen L3-Cache enthalten, der sowohl der/den CPUs 606 als auch der/den GPUs 608 zur Verfügung steht (z. B. der sowohl an die CPUs 606 als auch die GPUs 608 angeschlossen ist). Der/die Caches 612 kann/können einen Write-Back-Cache enthalten, der den Status von Zeilen nachverfolgen kann, z. B. durch Verwendung eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI usw.). Der L3-Cache kann in Abhängigkeit von der Ausführungsform 4 MB oder mehr beinhalten, obwohl auch kleinere Cache-Größen verwendet werden können.The SoC 604 may include any number of caches 612, including those described herein. For example, caches 612 may include an L3 cache that is available to both CPU(s) 606 and GPU(s) 608 (e.g., attached to both CPUs 606 and GPUs 608). The cache(s) 612 may include a write-back cache that can track the status of lines, e.g. B. by using a cache coherency protocol (e.g. MEI, MESI, MSI, etc.). The L3 cache may include 4 MB or more depending on the embodiment, although smaller cache sizes may also be used.

Die SoCs 604 können eine arithmetische Logikeinheiten (arithmetic logic units - ALUs) enthalten, die bei der Verarbeitung in Bezug auf eine der verschiedenen Aufgaben oder Operationen des Fahrzeugs 600 genutzt werden kann - z. B. bei der Verarbeitung von DNNs. Darüber hinaus können die SoCs 604 eine Gleitkommaeinheiten (floating point units - FPUs) - oder andere mathematische Coprozessor- oder numerische Coprozessor-Typen - für die Durchführung mathematischer Operationen im System enthalten. Zum Beispiel können die SoCs 104 ein oder mehrere FPUs enthalten, die als Ausführungseinheiten innerhalb einer CPU 606 und/oder GPU 608 integriert sind.The SoCs 604 may include arithmetic logic units (ALUs) that may be used in processing related to one of the various tasks or operations of the vehicle 600 - e.g. B. when processing DNNs. In addition, the SoCs 604 may include floating point units (FPUs) - or other types of mathematical coprocessors or numerical coprocessors - for performing mathematical operations in the system. For example, the SoCs 104 may include one or more FPUs integrated as execution units within a CPU 606 and/or GPU 608.

Das SoC 604 kann einen oder mehrere Beschleuniger 614 enthalten (z. B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon). Beispielsweise kann das SoC 604 einen Hardware-Beschleunigungscluster enthalten, der optimierte Hardware-Beschleuniger und/oder einen großen On-Chip-Speicher umfassen kann. Der große chipinterne Speicher (z. B. 4 MB SRAM) kann einen Hardware-Beschleunigungscluster zur Beschleunigung neuronaler Netze und anderer Berechnungen ermöglichen. Der Hardware-Beschleunigungscluster kann verwendet werden, um die GPUs 608 zu ergänzen und einige der Aufgaben der GPUs 608 zu entlasten (z. B. um mehr Zyklen der GPUs 608 für die Durchführung anderer Aufgaben freizumachen). Als Beispiel können die Beschleuniger 614 für gezielte Workloads (z. B. Wahrnehmung, konvolutionale neuronale Netze (CNNs) usw.) verwendet werden, die stabil genug sind, um für eine Beschleunigung geeignet zu sein. Der Begriff „CNN“, wie er hierin verwendet wird, kann alle Typen von CNNs beinhalten, einschließlich regionenbasierter oder regionaler neuronaler Faltungsnetze (RCNNs) und Fast RCNNs (z. B. für die Objekterkennung).The SoC 604 may include one or more accelerators 614 (e.g., hardware accelerators, software accelerators, or a combination thereof). For example, the SoC 604 may include a hardware acceleration cluster, which may include optimized hardware accelerators and/or large on-chip memory. The large on-chip memory (e.g. 4 MB SRAM) can enable a hardware acceleration cluster to accelerate neural networks and other calculations. The hardware acceleration cluster may be used to supplement the GPUs 608 and offload some of the tasks of the GPUs 608 (e.g., freeing up more cycles of the GPUs 608 to perform other tasks). As an example, the accelerators 614 may be used for targeted workloads (e.g., perception, convolutional neural networks (CNNs), etc.) that are stable enough to be suitable for acceleration. The term “CNN” as used herein may include all types of CNNs, including region-based or regional convolutional neural networks (RCNNs) and fast RCNNs (e.g., for object detection).

Der/die Beschleuniger 614 (z. B. der Hardware-Beschleunigungscluster) kann/können einen/mehrere DeepLearning-Beschleuniger (deep learning accelerator - DLA) enthalten. Die DLA(s) können eine oder mehrere Tensor-Verarbeitungseinheiten (TPUs) beinhalten, die so konfiguriert sein können, dass sie zusätzliche zehn Billionen Vorgänge pro Sekunde für Deep-Learning-Anwendungen und -Inferenzierung bereitstellen. Die TPUs können Beschleuniger sein, die zum Durchführen von Bildverarbeitungsfunktionen (z. B. für CNNs, RCNNs usw.) konfiguriert und optimiert sind. Die DLA(s) können ferner für einen spezifischen Satz von Arten von neuronalen Netzen und Fließkommavorgängen sowie für die Ableitung optimiert sein. Das Design der DLA(s) kann mehr Performance pro Millimeter bereitstellen als eine typische Universal-GPU und übertrifft die Performance einer CPU bei weitem. Die TPU(s) können mehrere Funktionen durchführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die z. B. INT8-, INT16- und FP16-Datenarten sowohl für Merkmale als auch für Gewichtungen unterstützt, sowie Postprozessorfunktionen.The accelerator(s) 614 (e.g., the hardware acceleration cluster) may include one or more deep learning accelerators (DLA). The DLA(s) may include one or more Tensor Processing Units (TPUs), which may be configured to provide an additional ten trillion operations per second for deep learning applications and inference. The TPUs may be accelerators configured and optimized to perform image processing functions (e.g. for CNNs, RCNNs, etc.). The DLA(s) may be further optimized for a specific set of types of neural networks and floating point operations as well as inference. The design of the DLA(s) can deliver more performance per millimeter than a typical general purpose GPU and far exceeds the performance of a CPU. The TPU(s) can perform multiple functions, including a single instance convolution function, e.g. B. INT8, INT16 and FP16 data types supported for both features and weights, as well as post-processing functions.

Der/die DLAs können schnell und effizient neuronale Netze, insbesondere CNNs, auf bearbeiteten oder unbearbeiteten Daten für eine Vielzahl von Funktionen ausführen, einschließlich beispielsweise und ohne Einschränkung: Ein CNN zur Objektidentifizierung und -erkennung mithilfe von Daten von Kamerasensoren; ein CNN für die Abstandsabschätzung mit Daten von Kamerasensoren, ein CNN für die Erkennung und Identifizierung von Rettungsfahrzeugen und Erkennung mit Daten von Mikrofonen; ein CNN für die Gesichtserkennung und die Identifizierung von Fahrzeugbesitzern durch Verwendung von Daten von Kamerasensoren und/oder ein CNN für Sicherheits- und/oder sicherheitsrelevante Ereignisse.The DLA(s) can quickly and efficiently run neural networks, particularly CNNs, on processed or raw data for a variety of functions, including, for example, and without limitation: A CNN for object identification and recognition using data from camera sensors; a CNN for distance estimation with data from camera sensors, a CNN for detection and identification of emergency vehicles and detection with data from microphones; a CNN for facial recognition and vehicle owner identification using data from camera sensors and/or a CNN for security and/or safety-related events.

Der/die DLAs kann/können jede Funktion der GPUs 608 ausführen, und durch die Verwendung eines Inferenzbeschleunigers kann ein Entwickler beispielsweise für jede Funktion entweder den/die DLAs oder die GPUs 608 als Ziel verwenden. So kann der Designer beispielsweise die Verarbeitung von CNNs und Gleitkommaoperationen auf den/die DLAs konzentrieren und andere Funktionen der/den GPUs 608 und/oder anderen Beschleunigern 614 überlassen.The DLA(s) may perform any function of the GPUs 608, and by using an inference accelerator, for example, a developer may target either the DLA(s) or the GPUs 608 for each function. For example, the designer can process CNNs and sliding Focus comma operations on the DLA(s) and leave other functions to the GPU(s) 608 and/or other accelerators 614.

Der/die Beschleuniger 614 (z. B. der Hardware-Beschleunigungscluster) können einen/mehrere programmierbare(n) Bildverarbeitungsbeschleuniger (programmable vision accelerator - PVA) umfassen, der/die in diesem Dokument alternativ als Bildverarbeitungsbeschleuniger bezeichnet werden kann/können. Die PVA(s) können zur Beschleunigung von Algorithmen des maschinellen Sehens für weiterentwickelte Fahrerassistenzsysteme (ADAS), autonomes Fahren, Augmented-Reality(AR)- und/oder Virtual-Reality(VR)-Anwendungen ausgestaltet und/oder konfiguriert sein. Die PVA(s) können ein Gleichgewicht zwischen Performance und Flexibilität bereitstellen. Beispielswiese und ohne Einschränkung können alle PVA(s) eine beliebige Anzahl von Reduced-Instruction-Set-Computer (RISC)-Kerne, direkten Speicherzugriff (direct memory access - DMA) und/oder eine beliebige Anzahl von Vektorprozessoren beinhalten.The accelerator(s) 614 (e.g., the hardware acceleration cluster) may include a programmable vision accelerator (PVA), which may alternatively be referred to as a vision accelerator in this document. The PVA(s) may be designed and/or configured to accelerate machine vision algorithms for advanced driver assistance systems (ADAS), autonomous driving, augmented reality (AR) and/or virtual reality (VR) applications. The PVA(s) can provide a balance between performance and flexibility. By way of example and without limitation, all PVA(s) may include any number of Reduced Instruction Set Computer (RISC) cores, direct memory access (DMA), and/or any number of vector processors.

RISC-Kerne können mit Bildsensoren (z. B. den Bildsensoren einer beliebigen der hierin beschriebenen Kameras), (einem) Bildsignalprozessor(en) und/oder dergleichen interagieren. Jeder der RISC-Kerne kann eine beliebige Menge an Speicher beinhalten. Die RISC-Kerne können in Abhängigkeit von der Ausführungsform ein beliebiges von einer Anzahl von Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (real-time operating system - RTOS) ausführen. Die RISC-Kerne können unter Verwendung einer oder mehrerer Vorrichtungen für integrierte Schaltungen, anwendungsspezifischer integrierter Schaltungen (ASICs) und/oder Speichervorrichtungen implementiert sein. Die RISC-Kerne können beispielsweise einen Anweisungs-Cache und/oder einen eng gekoppelten RAM beinhalten.RISC cores may interact with image sensors (e.g., the image sensors of any of the cameras described herein), image signal processor(s), and/or the like. Each of the RISC cores can contain any amount of memory. The RISC cores may use any of a number of protocols depending on the embodiment. In some examples, the RISC cores may run a real-time operating system (RTOS). The RISC cores may be implemented using one or more integrated circuit devices, application specific integrated circuits (ASICs), and/or memory devices. For example, the RISC cores may include an instruction cache and/or tightly coupled RAM.

Der DMA kann Komponenten des/der PVAs unabhängig von der/den CPUs 606 den Zugriff auf den Systemspeicher ermöglichen. Der DMA kann eine beliebige Anzahl von Merkmalen unterstützen, die zum Bereitstellen der Optimierung des PVA verwendet werden, einschließlich der Unterstützung von mehrdimensionaler Adressierung und/oder zirkulärer Adressierung, ohne darauf beschränkt zu sein. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockabstufung, vertikale Blockabstufung und/oder Tiefenabstufung beinhalten können.The DMA may allow components of the PVA(s) to access system memory independently of the CPU(s) 606. The DMA may support any number of features used to provide optimization of the PVA, including, but not limited to, support for multidimensional addressing and/or circular addressing. In some examples, the DMA may support up to six or more dimensions of addressing, which may include block width, block height, block depth, horizontal block gradation, vertical block gradation, and/or depth gradation.

Die Vektorprozessoren können programmierbare Prozessoren sein, die so ausgestaltet sein können, dass sie die Programmierung für Algorithmen des maschinellen Sehens effizient und flexibel ausführen und Signalverarbeitungsfähigkeiten bereitstellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Vektorverarbeitungsteilsystempartitionen beinhalten. Der PVA-Kern kann ein Prozessorteilsystem, DMA-Engine(s) (z. B. zwei DMA-Engines) und/oder andere Peripheriegeräte beinhalten. Das Vektorverarbeitungsteilsystem kann als primäre Verarbeitungs-Engine des PVA arbeiten und kann eine Vektorverarbeitungseinheit (vector processing unit - VPU), einen Anweisungs-Cache und/oder einen Vektorspeicher (z. B. VMEM) beinhalten. Ein VPU-Kern kann einen digitalen Signalprozessor beinhalten, wie zum Beispiel einen digitalen Single-Instruction-Multiple-Data-(SIMD-)Very-Long-Instruction-Word-(VLI W-)Signalprozessor. Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.The vector processors may be programmable processors that may be designed to efficiently and flexibly execute programming for computer vision algorithms and provide signal processing capabilities. In some examples, the PVA may include a PVA core and two vector processing subsystem partitions. The PVA core may include a processor subsystem, DMA engine(s) (e.g., two DMA engines), and/or other peripherals. The vector processing subsystem may operate as the primary processing engine of the PVA and may include a vector processing unit (VPU), an instruction cache, and/or a vector memory (e.g., VMEM). A VPU core may include a digital signal processor, such as a single instruction multiple data (SIMD) very long instruction word (VLI W) digital signal processor. The combination of SIMD and VLIW can increase throughput and speed.

Jeder der Vektorprozessoren kann einen Anweisungs-Cache beinhalten und an dedizierten Speicher gekoppelt sein. Daher 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 Vektorprozessoren, die in einem konkreten PVA enthalten sind, so konfiguriert sein, dass sie Datenparallelität einsetzen. Zum Beispiel kann in einigen Ausführungsformen die Vielzahl von Vektorprozessoren, die in einem einzelnen PVA enthalten ist, denselben Algorithmus des maschinellen Sehens ausführen, jedoch an unterschiedlichen Regionen eines Bildes. In anderen Beispielen können die in einem konkreten PVA enthaltenen Vektorprozessoren simultan unterschiedliche Algorithmen des maschinellen Sehens an demselben Bild ausführen oder sogar unterschiedliche Algorithmen an sequentiellen Bildern oder Abschnitten eines Bildes ausführen. Unter anderem kann eine beliebige Anzahl von PVAs in dem Hardware-Beschleunigungscluster enthalten sein und kann eine beliebige Anzahl von Vektorprozessoren in jedem der PVAs enthalten sein. Zusätzlich können der/die PVA(s) einen zusätzlichen Fehlerkorrekturcode(ECC)-Speicher beinhalten, um die Gesamtsystemsicherheit zu erhöhen.Each of the vector processors may include an instruction cache and be coupled to dedicated memory. Therefore, in some examples, each of the vector processors may be configured to execute independently of the other vector processors. In other examples, vector processors included in a specific PVA may be configured to employ data parallelism. For example, in some embodiments, the plurality of vector processors included in a single PVA may execute the same computer vision algorithm but on different regions of an image. In other examples, the vector processors included in a specific PVA may simultaneously execute different computer vision algorithms on the same image, or even execute different algorithms on sequential images or portions of an image. Among other things, any number of PVAs may be included in the hardware acceleration cluster and any number of vector processors may be included in each of the PVAs. Additionally, the PVA(s) may include additional error correction code (ECC) memory to increase overall system security.

Der/die Beschleuniger 614 (z. B. der Hardware-Beschleunigungscluster) können ein Computervision-Netz auf dem Chip und SRAM enthalten, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 614 bereitzustellen. In einigen Beispielen kann der chipinterne Speicher mindestens 4 MB SRAM beinhalten, der z. B. und ohne Einschränkung aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl der PVA als auch der DLA zugreifen können. Jedes Paar von Speicherblöcken kann eine weiterentwickelte Peripheriebus (advanced peripheral bus -APB)-Schnittstelle, eine Konfigurationsschaltung, einen Controller und einen Multiplexer beinhalten. Es kann jede Art von Speicher verwendet werden. Der PVA und DLA können auf den Speicher über einen Backbone zugreifen, der dem PVA und DLA einen Hochgeschwindigkeitszugriff auf den Speicher bereitstellt. Der Backbone kann ein Netz auf dem Chip für maschinelles Sehen beinhalten, das den PVA und DLA mit dem Speicher verbindet (z. B. unter Verwendung von dem APB).The accelerator(s) 614 (e.g., hardware acceleration cluster) may include an on-chip computer vision network and SRAM to provide high-bandwidth, low-latency SRAM for the accelerator(s) 614. In some examples, the on-chip memory may include at least 4 MB of SRAM, e.g. B. and without limitation consists of eight field-configurable memory blocks that can be accessed by both the PVA and the DLA. Any pair of memory blocks can include an advanced peripheral bus (APB) interface, a configuration circuit, a controller and a multiplexer. Any type of storage can be used. The PVA and DLA can access the memory over a backbone that provides the PVA and DLA with high-speed access to the memory. The backbone may include an on-chip computer vision network that connects the PVA and DLA to the memory (e.g., using the APB).

Das chipinterne Netz für maschinelles Sehen kann eine Schnittstelle beinhalten, die vor der Übertragung eines beliebigen Steuersignals/einer beliebigen Adresse/beliebiger Daten bestimmt, dass sowohl ein PVA als auch ein DLA einsatzbereite und gültige Signale bereitstellen. Eine derartige Schnittstelle kann separate Phasen und separate Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-artige Kommunikation für eine kontinuierliche Datenübertragung bereitstellen. Diese Art von Schnittstelle kann den Normen ISO 26262 oder IEC 61508 entsprechen, obwohl auch andere Normen und Protokolle verwendet werden können.The on-chip computer vision network may include an interface that determines that both a PVA and a DLA provide operational and valid signals before transmitting any control signal/address/data. Such an interface can provide separate phases and separate channels for control signal/address/data transmission as well as burst-like communication for continuous data transmission. This type of interface can conform to ISO 26262 or IEC 61508 standards, although other standards and protocols can also be used.

In einigen Beispielen kann das SoC 604 einen Echtzeit-Hardware-Beschleuniger für die Raytracing-Überwachung enthalten, wie in der am 10. August 2018 eingereichten US-Patentanmeldung Nr. 16/101,232 beschrieben. Der Echtzeit-Raytracing-Hardware-Beschleuniger kann verwendet werden, um schnell und effizient die Positionen und Ausdehnungen von Objekten (z. B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeitvisualisierungssimulationen zu erzeugen, für die RADAR-Signalinterpretation, für die Schallausbreitungssynthese und/oder -analyse, für die Simulation von SONAR-Systemen, für die allgemeine Wellenausbreitungssimulation, für den Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder für andere Funktionen und/oder für andere Anwendungen. In einigen Ausführungsformen können eine oder mehrere Tree Traversal Units (TTUs) verwendet werden, um eine oder mehrere Raytracing-bezogene Operationen auszuführen.In some examples, the SoC 604 may include a real-time hardware accelerator for ray tracing monitoring, as in the filing on August 10, 2018 US Patent Application No. 16/101,232 described. The real-time ray tracing hardware accelerator can be used to quickly and efficiently determine the positions and extents of objects (e.g. within a world model), to generate real-time visualization simulations, for RADAR signal interpretation, for sound propagation synthesis and/or or analysis, for simulation of SONAR systems, for general wave propagation simulation, for comparison with LIDAR data for localization purposes and/or for other functions and/or for other applications. In some embodiments, one or more Tree Traversal Units (TTUs) may be used to perform one or more ray tracing-related operations.

Der/die Beschleuniger 614 (z. B. der Hardware-Beschleunigercluster) haben eine Vielzahl von Einsatzmöglichkeiten für autonomes Fahren. Der PVA kann ein programmierbarer Sichtbeschleuniger sein, der für wichtige Verarbeitungsstufen im ADAS und in autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA sind eine gute Ergänzung für algorithmische Domänen, die eine vorhersagbare Verarbeitung bei niedriger Leistung und niedriger Latenz benötigen. Anders ausgedrückt zeigt der PVA eine gute Performance für halbdichte oder dichte reguläre Berechnungen, auch an kleinen Datensätzen, die vorhersagbare Laufzeiten mit niedriger Latenz und niedriger Leistung benötigen. Folglich sind die PVAs im Zusammenhang mit Plattformen für autonome Fahrzeuge für die Ausführung klassischer Algorithmen für maschinelles Sehen konstruiert, da diese effizient bei der Objekterkennung sind und mit Integer-Mathematik arbeiten.The accelerator(s) 614 (e.g. the hardware accelerator cluster) have a variety of possible uses for autonomous driving. The PVA can be a programmable vision accelerator that can be used for key processing stages in ADAS and autonomous vehicles. PVA's capabilities are a good complement for algorithmic domains that require predictable, low-power, low-latency processing. In other words, the PVA shows good performance for semi-dense or dense regular computations, even on small datasets that require predictable runtimes with low latency and low power. Consequently, the PVAs associated with autonomous vehicle platforms are designed to execute classical computer vision algorithms because they are efficient at object detection and operate on integer mathematics.

Zum Beispiel wird gemäß einer Ausführungsform der Technologie der PVA verwendet, um maschinelles Stereo-Sehen durchzuführen. Ein auf semiglobalem Abgleich basierender Algorithmus kann verwendet werden, obwohl dies nicht als Einschränkung auszulegen ist. Viele Anwendungen für das autonome Fahren auf Level 3-5 erfordern Bewegungsschätzung/Stereo-Abgleich spontan (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrspurerkennung usw.). Der PVA kann eine Funktion des maschinellen Stereo-Sehens an Eingaben von zwei monokularen Kameras durchführen.For example, according to one embodiment of the technology, PVA is used to perform machine stereo vision. An algorithm based on semi-global matching may be used, although this should not be construed as a limitation. Many Level 3-5 autonomous driving applications require motion estimation/stereo matching on the fly (e.g. structure from motion, pedestrian detection, lane detection, etc.). The PVA can perform a machine stereo vision function on inputs from two monocular cameras.

In einigen Beispielen kann der PVA verwendet werden, um einen dichten optischen Fluss durchzuführen. Gemäß der Verarbeitung von RADAR-Rohdaten (z. B. mit einer 4D-Fast-Fourier-Transformation) zur Bereitstellung von verarbeitetem RADAR. In anderen Beispielen wird der PVA für die Laufzeit-Tiefenverarbeitung verwendet, indem z. B. Laufzeit-Rohdaten verarbeitet werden, um verarbeitete Laufzeitdaten bereitzustellen.In some examples, the PVA can be used to perform dense optical flow. Pursuant to processing raw RADAR data (e.g. using a 4D Fast Fourier Transform) to provide processed RADAR. In other examples, the PVA is used for runtime deep processing, e.g. B. Raw runtime data is processed to provide processed runtime data.

Der DLA kann verwendet werden, um eine beliebige Art von Netz auszuführen, um die Steuerung und Fahrsicherheit zu verbessern, einschließlich zum Beispiel ein neuronales Netz, das ein Maß an Konfidenz für jede Objekterkennung ausgibt. Ein derartiger Konfidenzwert kann als eine Wahrscheinlichkeit interpretiert werden oder als Bereitstellung einer relativen „Gewichtung“ jeder Erkennung im Vergleich zu anderen Erkennungen. Der Konfidenzwert ermöglicht es dem System, weitere Entscheidungen darüber zu treffen, welche Erkennungen als richtig positive Erkennungen und nicht als falsch positive Erkennungen betrachtet werden sollten. Zum Beispiel kann das System einen Schwellenwert für die Konfidenz festlegen und nur Erkennungen, die den Schwellenwert überschreiten, als richtig positive Erkennungen betrachten. In einem automatischen Notbrems (automatic emergency braking - AEB)-System würden falsch positive Erkennungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was natürlich unerwünscht ist. Daher sollten nur die sichersten Erkennungen als Auslöser für AEB in Betracht gezogen werden. Der DLA kann ein neuronales Netz zur Regression des Konfidenzwerts ausführen. Das neuronale Netz kann als Eingabe mindestens eine Teilmenge von Parametern verwenden, wie z. B. Abmessungen des Begrenzungsrahmens, Schätzung der Bodenebene (z. B. von einem anderen Subsystem), IMU-Sensor-666-Ausgabe (Inertial Measurement Unit - IMU), die mit der Ausrichtung des Fahrzeugs 600, Abstand, 3D-Positionsabschätzungen des Objekts, das aus dem neuronalen Netz und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 664 oder RADAR-Sensor(en) 660), unter anderem gewonnen wurden.The DLA can be used to run any type of network to improve control and driving safety, including, for example, a neural network that outputs a level of confidence for each object detection. Such a confidence value can be interpreted as a probability or as providing a relative "weight" of each detection compared to other detections. The confidence value allows the system to make further decisions about which detections should be considered true positive detections rather than false positive detections. For example, the system may set a confidence threshold and only consider detections that exceed the threshold as true positive detections. In an automatic emergency braking (AEB) system, false positive detections would cause the vehicle to automatically perform emergency braking, which is of course undesirable. Therefore, only the safest detections should be considered as triggers for AEB. The DLA can Run a neural network to regression the confidence value. The neural network can use as input at least a subset of parameters, such as: B. Bounding box dimensions, ground plane estimation (e.g. from another subsystem), Inertial Measurement Unit (IMU) sensor 666 output associated with vehicle 600 orientation, distance, 3D position estimates of the object obtained from the neural network and/or other sensors (e.g., LIDAR sensor(s) 664 or RADAR sensor(s) 660), among others.

Das SoC 604 kann Datenspeicher 616 (z. B. Speicher) enthalten. Der Datenspeicher 616 kann ein On-Chip-Speicher des SoC 604 sein, das neuronale Netze speichern kann, die auf der GPU und/oder der DLA ausgeführt werden. In einigen Beispielen kann der Datenspeicher 616 groß genug sein, um mehrere Instanzen neuronaler Netze für Redundanz und Sicherheit zu speichern. Der Datenspeicher 612 kann L2- oder L3-Caches 612 umfassen. Der Verweis auf den Datenspeicher 616 kann, wie hier beschrieben, den Bezug zum Speicher des PVA-, DLA- und/oder anderen Beschleunigern 614 enthalten.The SoC 604 may include data storage 616 (e.g., memory). The data memory 616 may be on-chip memory of the SoC 604, which may store neural networks running on the GPU and/or the DLA. In some examples, data storage 616 may be large enough to store multiple instances of neural networks for redundancy and security. Data storage 612 may include L2 or L3 caches 612. The reference to the data memory 616 may include reference to the memory of the PVA, DLA, and/or other accelerators 614, as described herein.

Das SoC 604 kann einen oder mehr Prozessoren 610 (z. B. eingebettete Prozessoren) enthalten. Die Prozessoren 610 können einen Boot- und Energieverwaltungsprozessor enthalten, der ein dedizierter Prozessor und ein Subsystem sein kann, um die Boot-Energie- und Verwaltungsfunktionen sowie die damit verbundene Sicherheitsdurchsetzung zu handhaben. Der Boot- und Energieverwaltungsprozessor kann Teil der SoC 604-Startsequenz sein und kann Laufzeitenergieverwaltungsdienste bereitstellen. Der Bootenergie- und Verwaltungsprozessor kann die Taktfrequenz- und Spannungsprogrammierung, Unterstützung bei Übergängen des Energiesparzustands des Systems, die Verwaltung von SoC 604-Thermik und Temperatursensoren und/oder die Verwaltung der SoC 604-Leistungszustände bereitstellen. Jeder Temperatursensor kann als Ringoszillator implementiert werden, dessen Ausgangsfrequenz proportional zur Temperatur ist, und das SoC 604 kann die Ringoszillatoren verwenden, um Temperaturen von CPUs 606, GPUs 608 und/oder Beschleunigern 614 zu erkennen. Wenn die Temperaturen einen Schwellenwert überschreiten, kann Boot- und Energieverwaltungsprozessor in eine Temperaturfehlerroutine wechseln und das SoC 604 in einen niedrigeren Leistungszustand versetzen und/oder das Fahrzeug 600 in einen Sicheren-Stopp-Modus versetzen (z. B. das Fahrzeug 600 zu einem sicheren Halt führen).The SoC 604 may include one or more processors 610 (e.g., embedded processors). The processors 610 may include a boot and power management processor, which may be a dedicated processor and subsystem to handle the boot power and management functions and associated security enforcement. The boot and power management processor may be part of the SoC 604 boot sequence and may provide runtime power management services. The boot power and management processor may provide clock frequency and voltage programming, support for system power state transitions, management of SoC 604 thermals and temperature sensors, and/or management of SoC 604 power states. Each temperature sensor can be implemented as a ring oscillator whose output frequency is proportional to temperature, and the SoC 604 can use the ring oscillators to detect temperatures of CPUs 606, GPUs 608, and/or accelerators 614. If temperatures exceed a threshold, the boot and power management processor may enter a temperature error routine and place the SoC 604 into a lower power state and/or place the vehicle 600 into a safe stop mode (e.g., the vehicle 600 into a safe stop).

Die Prozessoren 610 können außerdem einen Satz integrierter Prozessoren enthalten, die als Audioprozessor dienen können. Die Audioverarbeitungs-Engine kann ein Audioteilsystem sein, das eine vollständige Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen sowie eine breite und flexible Palette von Audio-E/A-Schnittstellen ermöglicht. In einigen Beispielen ist die Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.The processors 610 may also include a set of integrated processors that may serve as an audio processor. The audio processing engine can be an audio subsystem that enables full hardware support for multi-channel audio across multiple interfaces, as well as a wide and flexible range of audio I/O interfaces. In some examples, the audio processing engine is a dedicated processor core with a digital signal processor with dedicated RAM.

Der/die Prozessor(en) 610 kann/sind außerdem mit einem „Always-on“-Prozessor ausgestattet, der die erforderlichen Hardwarefunktionen zur Unterstützung der Sensorverwaltung mit niedrigem Energieverbrauch und der Anwendungsfälle für das Einschalten bietet. Die stets eingeschaltete Prozessor-Engine kann einen Prozessorkern, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Zeitgeber und Unterbrechungssteuerungen), verschiedene E/A-Controller-Peripheriegeräte und Routing-Logik beinhalten.The processor(s) 610 may also be equipped with an always-on processor that provides the necessary hardware features to support low-power sensor management and power-on use cases. The always-on processing engine may include a processor core, tightly coupled RAM, supporting peripherals (e.g., timers and interrupt controllers), various I/O controller peripherals, and routing logic.

Der/die Prozessor(en) 610 kann/können außerdem eine Sicherheits-Cluster-Engine enthalten, die ein dediziertes Prozessor-Subsystem für das Sicherheitsmanagement für Automobilanwendungen enthält. Die Sicherheitscluster-Engine kann zwei oder mehr Prozessorkerne, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Zeitgeber, eine Unterbrechungssteuerung usw.) und/oder Routing-Logik beinhalten. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Gleichschrittmodus arbeiten und als ein einzelner Kern mit einer Vergleichslogik funktionieren, um beliebige Unterschiede zwischen ihren Vorgängen zu erkennen.The processor(s) 610 may also include a security cluster engine that includes a dedicated processor subsystem for security management for automotive applications. The security cluster engine may include two or more processor cores, tightly coupled RAM, supporting peripherals (e.g., timers, an interrupt controller, etc.), and/or routing logic. In a safe mode, the two or more cores can operate in lockstep mode, functioning as a single core with comparison logic to detect any differences between their operations.

Der/die Prozessor(en) 610 kann/können außerdem einen Echtzeit-Kamera-Engine enthalten, der ein dediziertes Prozessor-Subsystem für die Echtzeitkameraverwaltung enthalten kann.The processor(s) 610 may also include a real-time camera engine, which may include a dedicated processor subsystem for real-time camera management.

Der/die Prozessor(en) 610 kann/können außerdem einen Signalprozessor mit hohem Dynamikbereich enthalten, der einen Bildsignalprozessor enthält, der als Hardware-Engine Teil der Kameraverarbeitungspipeline ist.The processor(s) 610 may also include a high dynamic range signal processor that includes an image signal processor that is part of the camera processing pipeline as a hardware engine.

Die Prozessoren 610 kann/können einen Videobild-Compositor enthalten, der ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor implementiert), der Video-Nachbearbeitungsfunktionen implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Playerfenster zu erzeugen. Der Videobild-Compositor kann die Objektivverzerrungskorrektur an Weitwinkelkameras 670, Umgebungskameras 674 und/oder an Sensoren der Fahrgastraum-Überwachungskamera durchführen. Der kabineninterne Überwachungskamerasensor wird vorzugsweise von einem neuronalen Netz überwacht, das auf einer anderen Instanz des Advanced SoC läuft und so konfiguriert ist, dass es Ereignisse in der Kabine erkennt und entsprechend reagiert. Ein kabineninternes System kann Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, ein Ziel des Fahrzeugs zu ändern, ein Infotainmentsystem des Fahrzeugs und dessen Einstellungen zu aktivieren oder zu ändern oder sprachaktiviertes Surfen im Internet bereitzustellen. Dem Fahrer stehen bestimmte Funktionen nur zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind ansonsten deaktiviert.The processors 610 may include a video image compositor, which may be a processing block (e.g., implemented on a microprocessor) that implements video post-processing functions required by a video playback application to generate the final image for the player window . The video image compositor can provide lens distortion correction on wide-angle cameras 670, surrounding cameras 674 and/or on sensors of the passenger compartment surveillance camera. The in-cabin security camera sensor is preferably monitored by a neural network running on another instance of the Advanced SoC and configured to detect and respond to events in the cabin. An in-cabin system can perform lip reading to activate cellular service and place a call, dictate email, change a vehicle's destination, activate or change a vehicle's infotainment system and its settings, or provide voice-activated Internet surfing. Certain features are only available to the driver when the vehicle is operating in an autonomous mode and are disabled otherwise.

Der Videobildkompositor kann eine erweiterte zeitliche Rauschunterdrückung sowohl für die räumliche als auch für die zeitliche Rauschunterdrückung beinhalten. Wenn, zum Beispiel Bewegung in einem Video vorkommt, gewichtet die Rauschunterdrückung die räumlichen Informationen entsprechend, indem sie die Gewichtung der Informationen, die von benachbarten Frames bereitgestellt werden, verringert. Wenn ein Bild oder ein Abschnitt eines Bildes keine Bewegung beinhaltet, kann die durch den Videobildkompositor durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um das Rauschen in einem derzeitigen Bild zu unterdrücken.The video image compositor may include advanced temporal noise reduction for both spatial and temporal noise reduction. For example, if there is motion in a video, noise reduction will weight the spatial information accordingly by reducing the weight of the information provided by neighboring frames. When an image or portion of an image does not contain motion, temporal noise reduction performed by the video image compositor may use information from the previous image to suppress noise in a current image.

Der Videobild-Compositor kann auch so konfiguriert werden, dass Stereo-Rektifikation auf Stereoeingangs-Linsenframes durchgeführt wird. Der Videobild-Compositor kann auch für die Erstellung der Benutzeroberfläche verwendet werden, wenn der Betriebssystemdesktop verwendet wird und die GPUs 608 nicht erforderlich ist, um kontinuierlich neue Oberflächen zu rendern. Selbst wenn die GPUs 608 eingeschaltet ist und aktiv 3D-Rendering macht, kann der Videobild-Compositor verwendet werden, um die GPUs 608 zu entlasten, um die Leistung und Reaktionsfähigkeit zu verbessern.The video image compositor can also be configured to perform stereo rectification on stereo input lens frames. The video image compositor can also be used for user interface creation when the operating system desktop is used and the GPUs 608 are not required to continuously render new interfaces. Even when the GPUs 608 is turned on and actively doing 3D rendering, the video image compositor can be used to offload the GPUs 608 to improve performance and responsiveness.

Das SoC 604 kann außerdem eine serielle Schnittstelle für mobile Industrieprozessorschnittstellen (mobile industry processor interface - MIPI) für den Empfang von Video und Input von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingangsblock enthalten, der für Kamera- und verwandte Pixeleingabefunktionen verwendet werden kann. Das SoC 604 kann außerdem eine Eingabe-/Ausgabesteuerung umfassen, die von der Software gesteuert werden kann und für den Empfang von E/A-Signalen verwendet werden kann, die nicht einer bestimmten Rolle zugewiesen sind.The SoC 604 may also include a mobile industry processor interface (MIPI) serial port for receiving video and input from cameras, a high-speed interface, and/or a video input block that may be used for camera and related pixel input functions. The SoC 604 may also include an input/output controller that may be controlled by software and may be used to receive I/O signals that are not assigned to a specific role.

Das SoC 604 kann darüber hinaus eine breite Palette von Peripherieschnittstellen enthalten, um die Kommunikation mit Peripheriegeräten, Audio-Codecs, Energieverwaltung und/oder anderen Vorrichtungen zu ermöglichen. Das SoC 604 kann zur Verarbeitung von Daten von Kameras (z. B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z. B. LIDAR-Sensor(en) 664, RADAR-Sensor(en) 660 usw., die über Ethernet angeschlossen werden können), Daten von Bus 602 (z. B. Geschwindigkeit von Fahrzeug 600, Lenkradposition usw.), Daten von GNSS-Sensor(en) 658 (z. B. über Ethernet oder CAN-Bus angeschlossen), verwendet werden. Das SoC 604 kann außerdem dedizierte Hochleistungs-Massenspeichercontroller enthalten, die ihre eigenen DMA-Engines enthalten können und die dazu verwendet werden können, die CPUs 606 von routinemäßigen Datenverwaltungsaufgaben zu befreien.The SoC 604 may also include a wide range of peripheral interfaces to enable communication with peripherals, audio codecs, power management, and/or other devices. The SoC 604 can be used to process data from cameras (e.g. connected via Gigabit Multimedia Serial Link and Ethernet), sensors (e.g. LIDAR sensor(s) 664, RADAR sensor(s) 660, etc., which can be connected via Ethernet), data from bus 602 (e.g. speed of vehicle 600, steering wheel position, etc.), data from GNSS sensor(s) 658 (e.g. connected via Ethernet or CAN bus). become. The SoC 604 may also include dedicated high-performance mass storage controllers that may include their own DMA engines and that may be used to free the CPUs 606 from routine data management tasks.

Das SoC 604 kann eine End-to-End-Plattform mit einer flexiblen Architektur sein, die die Automatisierungsstufen 3 bis 5 umfasst und somit eine umfassende funktionale Sicherheitsarchitektur bietet, die Computervision und ADAS-Techniken für Vielfalt und Redundanz effizient nutzt, eine Plattform für einen flexiblen, zuverlässigen Fahrsoftware-Stack bietet, zusammen mit Deep-Learning-Tools. Das SoC 604 kann schneller, zuverlässiger und noch energieeffizienter und platzsparender als herkömmliche Systeme sein. So kann der Beschleuniger 614 in Kombination mit der CPU 606, der GPU 608 und dem Datenspeicher 616 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bereitstellen.The SoC 604 can be an end-to-end platform with a flexible architecture that spans automation levels 3 to 5, thus providing a comprehensive functional safety architecture that efficiently leverages computer vision and ADAS techniques for diversity and redundancy, one platform at a time flexible, reliable driving software stack, along with deep learning tools. The SoC 604 can be faster, more reliable and even more energy efficient and space-saving than conventional systems. Thus, the accelerator 614 in combination with the CPU 606, the GPU 608 and the data storage 616 can provide a fast, efficient platform for level 3-5 autonomous vehicles.

Die Technologie bietet somit Fähigkeiten und Funktionalität, die mit herkömmlichen Systemen nicht erreicht werden können. Zum Beispiel können Algorithmen des maschinellen Sehens auf CPUs ausgeführt werden, die unter Verwendung einer Programmiersprache auf hohem Level, wie z. B. der Programmiersprache C, konfiguriert werden können, um eine große Vielfalt von Verarbeitungsalgorithmen über eine große Vielfalt von visuellen Daten auszuführen. Die CPUs sind jedoch oft nicht in der Lage, die Performance-Anforderungen vieler Anwendungen des maschinellen Sehens zu erfüllen, wie z. B. in Bezug auf die Ausführungszeit und den Leistungsverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, die in fahrzeuginternen ADAS-Anwendungen und in praktischen autonomen Fahrzeugen der Levels 3-5 erforderlich sind.The technology therefore offers capabilities and functionality that cannot be achieved with conventional systems. For example, computer vision algorithms can be executed on CPUs using a high-level programming language such as B. the C programming language, can be configured to execute a wide variety of processing algorithms over a wide variety of visual data. However, the CPUs are often unable to meet the performance requirements of many computer vision applications, such as: B. in terms of execution time and power consumption. In particular, many CPUs are unable to execute complex, real-time object detection algorithms required in in-vehicle ADAS applications and in practical Level 3-5 autonomous vehicles.

Im Gegensatz zu herkömmlichen Systemen ermöglicht die hier beschriebene Technologie durch Bereitstellung eines CPU-Komplexes, eines GPU-Komplexes und eines Hardware-Beschleunigungsclusters die gleichzeitige und/oder sequenzielle Durchführung mehrerer neuronaler Netze und die Kombination der Ergebnisse, um die Level 3-5-Funktionalität für autonomes Fahren zu ermöglichen. Ein CNN beispielsweise, das auf der DLA oder dGPU ausgeführt wird (z. B. die GPU 620), kann eine Text- und Worterkennung enthalten, die es dem Supercomputer ermöglicht, Verkehrszeichen zu lesen und zu verstehen, einschließlich Zeichen, für die das neuronale Netz nicht speziell ausgebildet wurde. Der DLA kann ferner ein neuronales Netz beinhalten, das in der Lage ist, Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis davon bereitzustellen und dieses semantische Verständnis an den Pfadplanungsmodule weiterzugeben, die auf dem CPU-Komplex laufen.Unlike traditional systems, the technology described here, by providing a CPU complex, a GPU complex and a hardware acceleration cluster, allows multiple neural networks to be performed simultaneously and/or sequentially and the combination of the results to achieve Level 3-5 functionality for autonomous driving. For example, a CNN running on the DLA or dGPU (e.g., the GPU 620) may include text and word recognition that allows the supercomputer to read and understand traffic signs, including signs for which the neural Network has not been specially trained. The DLA may further include a neural network capable of identifying, interpreting and providing a semantic understanding of characters and passing this semantic understanding to the path planning modules running on the CPU complex.

Als weiteres Beispiel können mehrere neuronale Netze simultan ausgeführt werden, wie für das Fahren bei Level 3, 4 oder 5 erforderlich ist. Zum Beispiel kann ein Warnschild mit der Aufschrift „Vorsicht: Blinkende Lichter weisen auf Vereisung hin“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzen unabhängig oder gemeinsam interpretiert werden. Das Schild selbst kann von einem ersten eingesetzten neuronalen Netz (z. B. einem trainierten neuronalen Netz) als Verkehrsschild identifiziert werden und der Text „Blinkende Lichter weisen auf Verweisung hin“ kann von einem zweiten eingesetzten neuronalen Netz interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass, wenn blinkende Lichter erkannt werden, Vereisungen vorliegen. Das blinkende Licht kann identifiziert werden, indem ein drittes eingesetztes neuronales Netz über mehrere Frames hinweg betrieben wird und die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Nichtvorhandensein) von blinkenden Lichtern informiert. Alle drei neuronalen Netze können gleichzeitig ausgeführt werden, z. B. innerhalb des DLA und/oder auf der GPU 608.As another example, multiple neural networks may be running simultaneously, as required for driving at Level 3, 4, or 5. For example, a warning sign that reads “Caution: Flashing lights indicate icing” along with an electric light can be interpreted independently or jointly by multiple neural networks. The sign itself can be identified as a traffic sign by a first deployed neural network (e.g. a trained neural network) and the text “Flashing lights indicate referral” can be interpreted by a second deployed neural network, which is the vehicle's path planning software (which preferably runs on the CPU complex) informs you that if blinking lights are detected, there is icing. The flashing light can be identified by operating a third deployed neural network over multiple frames and informing the vehicle's path planning software of the presence (or absence) of flashing lights. All three neural networks can run simultaneously, e.g. B. within the DLA and/or on the GPU 608.

In einigen Beispielen kann ein CNN zur Gesichtserkennung und Fahrzeugidentifikation Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Fahrzeugbesitzers zu identifizieren 600. Die stets eingeschaltete Sensorverarbeitungs-Engine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Besitzer der Fahrertür nähert und Lichter einschaltet, und um in dem Sicherheitsmodus das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise sorgen die SoCs 604 für Sicherheit gegen Entwendung und/oder Diebstahl.In some examples, a facial recognition and vehicle identification CNN may use data from camera sensors to identify the presence of an authorized driver and/or vehicle owner 600. The always-on sensor processing engine may be used to unlock the vehicle when the owner is away from the vehicle Driver's door approaches and lights turn on, and to disarm the vehicle in security mode when the owner leaves the vehicle. In this way, the SoCs 604 ensure security against theft and/or theft.

In einem anderen Beispiel kann ein CNN zur Erkennung und Identifizierung von Rettungsfahrzeugen Daten von Mikrofonen 696 verwenden, um Sirenen von Notfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifikatoren verwenden, um Sirenen zu erkennen und Funktionen manuell zu extrahieren, verwenden die SoCs 604 CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung von visuellen Daten. In einer bevorzugten Ausführungsform wird das CNN, das auf dem DLA läuft, dafür trainiert, die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs zu identifizieren (z. B. durch Verwendung des Dopplereffekts). Das CNN kann auch geschult werden, um Einsatzfahrzeuge zu identifizieren, die für den lokalen Einsatzbereich des Fahrzeugs spezifisch sind, wie durch GNSS-Sensor(en) 658 identifiziert. Folglich versucht das CNN zum Beispiel, wenn es in Europa betrieben wird, europäische Sirenen zu erkennen, und in den Vereinigten Staaten versucht das CNN, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Rettungsfahrzeug erkannt wird, kann ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für Rettungsfahrzeuge auszuführen, das Fahrzeug zu verlangsamen, zur Seite der Straße zu fahren, das Fahrzeug abzustellen und/oder das Fahrzeug mit Hilfe der Ultraschallsensoren 662 im Leerlauf laufen zu lassen, bis das Rettungsfahrzeug vorbeifährt.In another example, an emergency vehicle detection and identification CNN may use data from microphones 696 to detect and identify emergency vehicle sirens. Unlike traditional systems that use general classifiers to detect sirens and extract features manually, the SoCs use 604 CNN to classify environmental and urban sounds as well as classify visual data. In a preferred embodiment, the CNN running on the DLA is trained to identify the relative approach speed of the emergency vehicle (e.g., using the Doppler effect). The CNN can also be trained to identify emergency vehicles specific to the vehicle's local operational area, as identified by GNSS sensor(s) 658. Consequently, for example, when operating in Europe, the CNN attempts to identify European sirens, and in the United States, the CNN attempts to identify only North American sirens. Once an emergency vehicle is detected, a control program may be used to execute an emergency vehicle safety routine, slow the vehicle, pull to the side of the road, turn off the vehicle, and/or idle the vehicle using the ultrasonic sensors 662, until the emergency vehicle drives past.

Das Fahrzeug kann eine CPU 618 (z. B. diskrete CPU oder dCPU) enthalten, die über eine Hochgeschwindigkeitsverbindung (z. B. PCIe) mit dem SoC 604 gekoppelt werden kann. Die CPU 618 kann z. B. einen X86-Prozessor enthalten. Die CPU 618 kann zur Ausführung einer Vielzahl von Funktionen verwendet werden, einschließlich beispielsweise der Beurteilung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem SoC 604 und/oder Überwachung des Status und Zustands der Controller 636 und/oder des Infotainment-SoC 630.The vehicle may include a CPU 618 (e.g., discrete CPU or dCPU) that may be coupled to the SoC 604 via a high-speed connection (e.g., PCIe). The CPU 618 can e.g. B. contain an X86 processor. The CPU 618 may be used to perform a variety of functions, including, for example, assessing potentially inconsistent results between ADAS sensors and the SoC 604 and/or monitoring the status and health of the controllers 636 and/or the infotainment SoC 630.

Das Fahrzeug 600 kann eine GPU 620 (z. B. diskrete GPU oder dGPU) enthalten, die über eine Hochgeschwindigkeitsverbindung (z. B. NVLINK von NVIDIA) mit dem SoC 604 gekoppelt werden kann. Die GPU 620 kann zusätzliche künstliche Intelligenz-Funktionen bereitstellen, z. B. durch die Ausführung redundanter und/oder verschiedener neuronaler Netze, und kann verwendet werden, um neuronale Netze auf der Grundlage von Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 600 auszubilden und/oder zu aktualisieren.The vehicle 600 may include a GPU 620 (e.g., discrete GPU or dGPU) that may be coupled to the SoC 604 via a high-speed connection (e.g., NVLINK from NVIDIA). The GPU 620 can provide additional artificial intelligence functions such as: by executing redundant and/or different neural networks, and may be used to train and/or update neural networks based on inputs (e.g., sensor data) from sensors of the vehicle 600.

Das Fahrzeug 600 kann außerdem die NetzNetzeschnittstelle 624 enthalten, die eine oder mehrere Funkantennen 626 enthalten kann (z. B. eine oder mehrere Funkantennen für verschiedene Kommunikationsprotokolle, wie z. B. eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die NetzNetzeschnittstelle 624 kann verwendet werden, um drahtlose Verbindungen über das Internet mit der Cloud (z. B. mit dem Server 678 und/oder anderen Netzvorrichtungen), mit anderen Fahrzeugen und/oder mit Rechenvorrichtungen (z. B. Client-Vorrichtungen von Passagieren) zu ermöglichen. Zum Kommunizieren mit anderen Fahrzeugen kann eine direkte Verknüpfung zwischen den zwei Fahrzeugen hergestellt werden und/oder eine indirekte Verknüpfung (z. B. über Netze und über das Internet) hergestellt werden. Direkte Verknüpfungen können unter Verwendung einer Fahrzeug-zu-Fahrzeug-Kommunikationsverknüpfung hergestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 600 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 600 liefern (z. B. Fahrzeuge vor, seitlich und/oder hinter dem Fahrzeug 600). Diese Funktion kann Teil einer kooperativen adaptiven Geschwindigkeitsregelfunktion des Fahrzeugs 600 sein.The vehicle 600 may also include the network interface 624, which may include one or more radio antennas 626 (e.g., one or more radio antennas for various communication protocols, such as a cellular antenna, a Bluetooth antenna, etc.). The network network interface 624 may be used to establish wireless connections over the Internet to the cloud (e.g., to the server 678 and/or other network devices), to other vehicles, and/or to computing devices (e.g., passenger client devices ) to enable. To communicate with other vehicles, a direct link can be established between the two vehicles and/or an indirect link can be established (e.g. via networks and via the Internet). Direct links can be established using a vehicle-to-vehicle communication link. The vehicle-to-vehicle communication link may provide the vehicle 600 with information about vehicles in the vicinity of the vehicle 600 (e.g., vehicles in front of, to the side of, and/or behind the vehicle 600). This function may be part of a cooperative adaptive cruise control function of the vehicle 600.

Die NetzNetzeschnittstelle 624 kann über einen SoC verfügen, der Modulation und Demodulation bietet und es dem Controller 636 ermöglicht, über drahtlose Netze zu kommunizieren. Die NetzNetzeschnittstelle 624 kann ein Hochfrequenz-Front-End für die Up-Konvertierung von Basisband zu Hochfrequenz und Down-Konvertierung von Hochfrequenz zu Basisband enthalten. Die Frequenzkonvertierungen können durch hinreichend bekannte Prozesse und/oder unter Verwendung von Überlagerungsverfahren durchgeführt werden. In einigen Beispielen kann die Hochfrequenz-Frontend-Funktionalität durch einen separaten Chip bereitgestellt sein. Die NetzNetzeschnittstelle kann eine drahtlose Funktionalität für die Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle beinhalten.The network network interface 624 may have an SoC that provides modulation and demodulation and allows the controller 636 to communicate over wireless networks. The network interface 624 may include a radio frequency front end for up-conversion from baseband to radio frequency and down conversion from radio frequency to baseband. The frequency conversions can be carried out by well-known processes and/or using superposition methods. In some examples, the high frequency front-end functionality may be provided by a separate chip. The network interface may include wireless functionality for communication via LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN and/or other wireless protocols.

Das Fahrzeug 600 kann außerdem Datenspeicher 628 enthalten, die auch Off-Chip-Speicher (z. B. Off-the-SoC 604) umfassen können. Die Datenspeicher 628 können ein oder mehrere Speicherelemente einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Geräte, die mindestens ein Bit von Daten speichern können, umfassen.The vehicle 600 may also include data storage 628, which may also include off-chip memory (e.g., off-the-SoC 604). The data memories 628 may include one or more storage elements including RAM, SRAM, DRAM, VRAM, flash, hard drives, and/or other components and/or devices capable of storing at least one bit of data.

Das Fahrzeug 600 kann außerdem einen oder mehrere GNSS-Sensoren 658 enthalten. Die GNSS-Sensoren 658 (z. B. GPS, unterstützte GPS-Sensoren, differenzielle GPS-Sensoren (differential GPS - DGPS) usw.) unterstützen bei der Kartierung, Wahrnehmung, Generierung von Belegungsrastern und/oder der Wegplanung. Es kann eine beliebige Anzahl von GNSS-Sensoren 658 verwendet werden, einschließlich z. B. eines GPS-Geräts, das einen USB-Anschluss mit einer Ethernet-zu-Seriell-Brücke (RS-232) verwendet.The vehicle 600 may also include one or more GNSS sensors 658. The GNSS sensors 658 (e.g., GPS, supported GPS sensors, differential GPS (DGPS), etc.) assist in mapping, sensing, occupancy grid generation, and/or path planning. Any number of GNSS sensors 658 can be used, including e.g. B. a GPS device that uses a USB port with an Ethernet-to-serial bridge (RS-232).

Das Fahrzeug 600 kann außerdem einen oder mehrere RADAR-Sensoren 660 enthalten. Der RADAR-Sensor 660 kann vom Fahrzeug 600 für die Fernerkennung von Fahrzeugen verwendet werden, selbst bei Dunkelheit und/oder bei Unwetter. Die funktionalen Sicherheitsstufen des RADAR können ASIL B sein. Der RADAR-Sensor 660 kann den CAN und/oder den Bus 602 (z. B. zur Übertragung der vom RADAR-Sensor 660 generierten Daten) zur Steuerung und zum Zugriff auf Daten zur Objektverfolgung verwenden, wobei in einigen Beispielen auf Ethernet zugegriffen werden kann, um auf Rohdaten zuzugreifen. Eine große Vielfalt von RADAR-Sensortypen kann verwendet werden. Beispielsweise können die RADAR-Sensoren 660 uneingeschränkt als Front-, Heck- und Seiten-RADAR verwendet werden. In einigen Beispielen werden Puls-Doppler-RADAR-Sensoren verwendet.The vehicle 600 may also include one or more RADAR sensors 660. The RADAR sensor 660 can be used by the vehicle 600 for remote vehicle detection, even in darkness and/or severe weather. The functional safety levels of the RADAR can be ASIL B. The RADAR sensor 660 may use the CAN and/or the bus 602 (e.g., to transmit the data generated by the RADAR sensor 660) to control and access data for object tracking, which may be accessed via Ethernet in some examples to access raw data. A wide variety of RADAR sensor types can be used. For example, the RADAR sensors 660 can be used without restrictions as front, rear and side RADAR. In some examples, pulse Doppler RADAR sensors are used.

Die RADAR-Sensoren 660 können verschiedene Konfigurationen beinhalten, z. B. große Reichweite mit engem Sichtfeld, kurze Reichweite mit großem Sichtfeld, kurze Seitenabdeckung usw. In einigen Beispielen kann ein Langstrecken-RADAR für die adaptive Geschwindigkeitsregelung verwendet werden. Die Langstrecken-RADAR-Systeme können ein breites Sichtfeld bereitstellen, das durch zwei oder mehr unabhängige Scans realisiert wird, z. B. innerhalb einer Reichweite von 250 m. Die RADAR-Sensoren 660 können bei der Unterscheidung zwischen statischen und sich bewegenden Objekten helfen und von ADAS-Systemen zur Notbremsunterstützung und Kollisionswarnung verwendet werden. Langstrecken-RADAR-Sensoren können ein monostatisches multimodales RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle beinhalten. In einem Beispiel mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlmuster erzeugen, das entwickelt wurde, um die Umgebung des Fahrzeugs 600 bei höheren Geschwindigkeiten mit minimaler Beeinträchtigung durch den Verkehr in benachbarten Fahrbahnen aufzuzeichnen. Die anderen beiden Antennen können das Sichtfeld erweitern, wodurch es möglich ist, schnell Fahrzeuge zu erkennen, die in die Fahrbahn des Fahrzeugs 600 fahren oder diese verlassen.The RADAR sensors 660 can include various configurations, e.g. E.g. long range with narrow field of view, short range with wide field of view, short side coverage, etc. In some examples, a long range RADAR may be used for adaptive cruise control. The long-range RADAR systems can provide a wide field of view realized by two or more independent scans, e.g. B. within a range of 250 m. The RADAR sensors 660 can help distinguish between static and moving objects and can be used by ADAS systems for emergency braking support and collision warning. Long-range RADAR sensors may include a monostatic multimodal RADAR with multiple (e.g. six or more) fixed RADAR antennas and a high-speed CAN and FlexRay interface. In a six antenna example, the central four antennas may produce a focused beam pattern designed to record the surroundings of the vehicle 600 at higher speeds with minimal interference from traffic in adjacent lanes. The other two antennas can expand the field of view, making it possible to quickly detect vehicles entering or leaving the path of vehicle 600.

Mittelstrecken-RADAR-Systeme können beispielsweise eine Reichweite von bis zu 660 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 650 Grad (hinten) umfassen. Kurzstrecken-RADAR-Systeme können ohne Einschränkung RADAR-Sensoren beinhalten, die für die Installation an beiden Enden des hinteren Stoßfängers ausgelegt sind. Wenn das Sensorsystem an beiden Enden des hinteren Stoßfängers installiert ist, kann ein derartiges RADAR-Sensorsystem zwei Strahlen erzeugen, die den toten Winkel hinter und neben dem Fahrzeug konstant überwachen.For example, medium-range RADAR systems can include a range of up to 660 m (front) or 80 m (rear) and a field of view of up to 42 degrees (front) or 650 degrees (rear). Short-range RADAR systems may include, without limitation, RADAR sensors designed for installation at either end of the rear bumper. When the sensor system is installed at both ends of the rear bumper, such a RADAR sensor system can produce two beams that constantly monitor the blind spot behind and alongside the vehicle.

Kurzstrecken-RADAR-Systeme können in einem ADAS-System zur Erkennung des toten Winkels und/oder zur Fahrbahnwechselunterstützung verwendet werden.Short-range RADAR systems can be used in an ADAS system for blind spot detection and/or lane change assistance.

Das Fahrzeug 600 kann außerdem Ultraschallsensoren 662 enthalten. Die Ultraschallsensoren 662, die sich vorne, hinten und/oder an den Seiten des Fahrzeugs 600 befinden können, können zum Einparken und/oder zum Erstellen und Aktualisieren eines Belegungsrasters verwendet werden. Es können eine Vielzahl von Ultraschallsensoren 662 und verschiedene Ultraschallsensoren 662 für verschiedene Detektionsbereiche (z. B. 2,5 m, 4 m) verwendet werden. Die Ultraschallsensoren 662 können mit der Funktionssicherheitsstufe ASIL B arbeiten.The vehicle 600 may also contain ultrasonic sensors 662. The ultrasonic sensors 662, which may be located at the front, rear, and/or sides of the vehicle 600, may be used for parking and/or for creating and updating an occupancy grid. A variety of ultrasonic sensors 662 and different ultrasonic sensors 662 for different detection ranges (e.g. 2.5 m, 4 m) can be used. The 662 ultrasonic sensors can work with functional safety level ASIL B.

Das Fahrzeug 600 kann LIDAR-Sensoren 664 enthalten. Die LIDAR Sensoren 664 können für die Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder andere Funktionen verwendet werden. Die LIDAR-Sensoren 664 können die funktionale Sicherheitsstufe ASIL B sein. In einigen Beispielen kann das Fahrzeug 600 mehrere LIDAR-Sensoren 664 (z. B. zwei, vier, sechs usw.) beinhalten, die Ethernet verwenden können (z. B. zur Bereitstellung von Daten an einen Gigabit-Ethernet-Switch).The vehicle 600 may contain LIDAR sensors 664. The LIDAR sensors 664 can be used for object and pedestrian detection, emergency braking, collision avoidance and/or other functions. The LIDAR sensors 664 can be functional safety level ASIL B. In some examples, the vehicle 600 may include multiple LIDAR sensors 664 (e.g., two, four, six, etc.) that may use Ethernet (e.g., to provide data to a Gigabit Ethernet switch).

In einigen Beispielen können die LIDAR-Sensoren 664 eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld bereitstellen. Im Handel erhältliche LIDAR-Sensoren 664 können eine angekündigte Reichweite von etwa 600 m, eine Genauigkeit von 2 cm bis 3 cm und beispielsweise eine Unterstützung für eine 600-Mbit/s-Ethernet-Verbindung aufweisen. In einigen Beispielen können ein oder mehrere nicht vorstehende LIDAR-Sensoren 664 verwendet werden. In solchen Beispielen können die LIDAR-Sensoren 664 als kleine Vorrichtung implementiert werden, die in die Front, ins Heck, in die Seiten- und/oder in die Ecken des Fahrzeugs 600 eingebettet werden können. Der/die LIDAR-Sensor(en) 664 können in solchen Beispielen ein horizontales Sichtfeld von bis zu 120 Grad und ein vertikales Sichtfeld von bis zu 35 Grad mit einer Reichweite von 200 m selbst bei Objekten mit niedrigem Reflexionsvermögen bereitstellen. Front-montierte LIDAR-Sensoren 664 können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert werden.In some examples, the LIDAR sensors 664 may provide a list of objects and their distances for a 360-degree field of view. Commercially available LIDAR sensors 664 may have an advertised range of approximately 600 m, an accuracy of 2 cm to 3 cm, and, for example, support for a 600 Mbps Ethernet connection. In some examples, one or more non-protruding LIDAR sensors 664 may be used. In such examples, the LIDAR sensors 664 may be implemented as a small device that may be embedded in the front, rear, sides, and/or corners of the vehicle 600. The LIDAR sensor(s) 664 in such examples can provide a horizontal field of view of up to 120 degrees and a vertical field of view of up to 35 degrees with a range of 200 m even for low reflectivity objects. Front-mounted LIDAR sensors 664 can be configured for a horizontal field of view between 45 degrees and 135 degrees.

In einigen Beispielen können auch LIDAR-Technologien, wie etwa 3D-Flash-LIDAR, verwendet werden. 3D-Flash-LIDAR verwendet einen Laserblitz als Sendequelle, um die Umgebung des Fahrzeugs bis zu einer Entfernung von ca. 200 m auszuleuchten. Eine Flash-LIDAR-Einheit beinhaltet einen Rezeptor, der die Laserpuls-Laufzeit und das reflektierte Licht an jedem Pixel aufzeichnet, was wiederum der Reichweite vom Fahrzeug zu den Objekten entspricht. Flash-LIDAR kann ermöglichen, dass mit jedem Laserblitz hochgenaue und verzerrungsfreie Bilder der Umgebung erzeugt werden. In einigen Beispielen können vier LIDAR-Blitzsensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 600. Verfügbare 3D-Flash-LIDAR-Systeme beinhalten eine Festkörper-3D-Staring-Array-LIDAR-Kamera ohne bewegliche Teile außer einem Lüfter (z. B. eine nicht scannende LIDAR-Vorrichtung). Die Flash-LIDAR-Vorrichtung kann einen 5-Nanosekunden-Laserpuls der Klasse I (augensicher) pro Bild verwenden und kann das reflektierte Laserlicht in Form von den 3D-Reichweitenpunktwolken und gemeinsam registrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR und weil Flash-LIDAR ein Festkörpergerät ohne bewegliche Teile ist, ist der LIDAR-Sensor 664 möglicherweise weniger anfällig für Bewegungsunschärfen, Vibrationen und/oder Stöße.In some examples, LIDAR technologies, such as 3D flash LIDAR, may also be used. 3D flash LIDAR uses a laser flash as a transmission source to illuminate the vehicle's surroundings up to a distance of approximately 200 m. A flash LIDAR unit includes a receptor that records the laser pulse travel time and reflected light at each pixel, which in turn corresponds to the range from the vehicle to the objects. Flash LIDAR can enable highly accurate and distortion-free images of the environment to be created with each laser flash. In some examples, four LIDAR lightning sensors may be deployed, one on each side of the vehicle 600. Available 3D flash LIDAR systems include a solid-state 3D staring array LIDAR camera with no moving parts other than a fan (e.g . a non-scanning LIDAR device). The flash LIDAR device can use a 5-nanosecond Class I (eye-safe) laser pulse per image and can capture the reflected laser light in the form of the 3D range point clouds and co-registered intensity data. By using Flash LIDAR and because Flash LIDAR is a solid-state device with no moving parts, the 664 LIDAR sensor may be less susceptible to motion blur, vibration and/or shock.

Das Fahrzeug kann außerdem IMU-Sensoren 666 enthalten. Die IMU-Sensoren 666 können sich in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 600 befinden. Die IMU-Sensoren 666 können z. B. einen oder mehrere Beschleunigungsmesser, Magnetometer, Gyroskope, magnetische Kompasse und/oder andere Sensortypen umfassen. In einigen Beispielen, wie z. B. in sechs-Achsen-Anwendungen, können die IMU-Sensoren 666 Beschleunigungsmesser und Gyroskope enthalten, während in neun-Achsen-Anwendungen die IMU-Sensoren 666 Beschleunigungsmesser, Gyroskope und Magnetometer umfassen können.The vehicle may also include IMU sensors 666. The IMU sensors 666 may be located in the center of the rear axle of the vehicle 600 in some examples. The IMU sensors 666 can e.g. B. include one or more accelerometers, magnetometers, gyroscopes, magnetic compasses and / or other types of sensors. In some examples, such as For example, in six-axis applications, the IMU sensors 666 may include accelerometers and gyroscopes, while in nine-axis applications, the IMU sensors may include 666 accelerometers, gyroscopes, and magnetometers.

In einigen Ausführungsformen können die IMU-Sensoren 666 als Miniatur-GPS-Aided Inertial Navigation System (GPS/INS) implementiert werden, das Inertialsensoren mikroelektromechanischer Systeme (micro-electro-mechanical systems - MEMS), einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen kombiniert, um Abschätzungen von Position, Geschwindigkeit und Neigung zu liefern. In einigen Beispielen können die IMU-Sensoren 666 es dem Fahrzeug 600 ermöglichen, den Kurs ohne Eingabe eines Magnetsensors zu schätzen, indem die Geschwindigkeitsänderungen vom GPS direkt auf den IMU-Sensoren 666 beobachtet und korreliert werden. In einigen Beispielen können IMU-Sensoren 666 und GNSS-Sensoren 658 in einer einzigen integrierten Einheit kombiniert werden.In some embodiments, the IMU sensors 666 may be implemented as a miniature GPS-Aided Inertial Navigation System (GPS/INS) that includes micro-electro-mechanical systems (MEMS) inertial sensors, a highly sensitive GPS receiver, and advanced Kalman filtering algorithms combined to provide estimates of position, velocity and inclination. In some examples, the IMU sensors 666 may enable the vehicle 600 to estimate heading without input from a magnetic sensor by observing and correlating the speed changes from GPS directly on the IMU sensors 666. In some examples, IMU sensors 666 and GNSS sensors 658 may be combined into a single integrated unit.

Das Fahrzeug kann mit Mikrofonen 696 ausgestattet sein, die in und/oder um das Fahrzeug 600 platziert sind. Die Mikrofone 696 können unter anderem zur Erkennung und Identifizierung von Rettungsfahrzeugen verwendet werden.The vehicle may be equipped with microphones 696 placed in and/or around the vehicle 600. The microphones 696 can be used, among other things, to detect and identify emergency vehicles.

Das Fahrzeug kann außerdem eine beliebige Anzahl von Kameratypen umfassen, einschließlich Stereokameras 668, Weitwinkelkameras 670, Infrarotkameras 672, Umgebungskameras 674, Langstrecken- und/oder Mittelstreckenkameras 698 und/oder andere Kameratypen. Mit den Kameras können Bilddaten rund um eine gesamte Peripherie des Fahrzeugs 600 herum erfasst werden. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen für das Fahrzeug 600 ab, und jede Kombination von Kameratypen kann verwendet werden, um die erforderliche Abdeckung um das Fahrzeug 600 herum zu gewährleisten. Zusätzlich kann die Anzahl der Kameras in Abhängigkeit von der 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 zum Beispiel und ohne Einschränkung Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede Kamera wird in diesem Dokument in Bezug auf 6A und 6B beschrieben.The vehicle may also include any number of camera types, including stereo cameras 668, wide-angle cameras 670, infrared cameras 672, ambient cameras 674, long-range and/or medium-range cameras 698, and/or other camera types. The cameras can be used to capture image data around an entire periphery of the vehicle 600. The types of cameras used depend on the embodiments and requirements for the vehicle 600, and any combination of camera types can be used to provide the required coverage around the vehicle 600. In addition, the number of cameras may vary depending on the embodiment. For example, the vehicle may include six cameras, seven cameras, ten cameras, twelve cameras, and/or another number of cameras. For example, and without limitation, the cameras may support Gigabit Multimedia Serial Link (GMSL) and/or Gigabit Ethernet. Each camera is referred to in this document 6A and 6B described.

Das Fahrzeug 600 kann außerdem Vibrationssensoren 642 enthalten. Die Vibrationssensoren 642 können Vibrationen von Komponenten des Fahrzeugs, z. B. den Achsen, messen. Zum Beispiel können Änderungen der Vibrationen eine Änderung des Straßenbelags angeben. In einem anderen Beispiel können bei Verwendung von zwei oder mehr Vibrationssensoren 642 die Unterschiede zwischen den Vibrationen zur Bestimmung der Reibung oder des Schlupfes der Fahrbahnoberfläche verwendet werden (z. B. wenn der Vibrationsunterschied zwischen einer elektrisch angetriebenen und einer frei drehenden Achse besteht).The vehicle 600 may also include vibration sensors 642. The vibration sensors 642 can detect vibrations from components of the vehicle, e.g. B. the axes. For example, changes in vibration may indicate a change in the road surface. In another example, when using two or more vibration sensors 642, the differences between the vibrations can be used to determine the friction or slip of the road surface (e.g., if the difference in vibration is between an electrically powered and a freely rotating axle).

Das Fahrzeug 600 kann ein ADAS-System 638 enthalten. Das ADAS-System 638 kann in einigen Beispielen ein SoC enthalten. Das ADAS-System 638 kann autonome/adaptive/automatische Geschwindigkeitsregelung (autonomous/adaptive/automatic cruise control - ACC), kooperative adaptive Geschwindigkeitsregelung (cooperative adaptive cruise control - CACC), Aufprallwarnung (forward crash warning - FCW), automatische Notbremsung (automatic emergency braking - AEB), Spurerkennungssystem (lane departure warning - LDW), Spurhalteassistent (lane keep assistent - LKA), Totwinkel-Warner (blind spot warning - BSW), Heckbereichswarnung (rear cross-traffic warning - RCTW), Kollisionswarnsysteme (collision warning system - CWS), Fahrbahnzentrierung (lane centering - LC) und/oder andere Merkmale und Funktionalitäten umfassen.The vehicle 600 may include an ADAS system 638. The ADAS system 638 may include an SoC in some examples. The ADAS system 638 can provide autonomous/adaptive/automatic cruise control (ACC), cooperative adaptive cruise control (CACC), forward crash warning (FCW), automatic emergency braking (automatic emergency braking - AEB), lane detection system (lane departure warning - LDW), lane keeping assistant (lane keep assistant - LKA), blind spot warning (BSW), rear cross-traffic warning (RCTW), collision warning systems (collision warning system - CWS), lane centering (LC) and/or other features and functionalities.

Die ACC-Systeme können RADAR-Sensoren 660, LIDAR-Sensoren 664 und/oder Kameras verwenden. Die ACC-Systeme können eine ACC in Längsrichtung und/oder eine ACC in Querrichtung beinhalten. Das ACC in Längsrichtung überwacht und steuert den Abstand zum Fahrzeug unmittelbar vor dem Fahrzeug 600 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen sicheren Abstand zu den vorausfahrenden Fahrzeugen einzuhalten. Das laterale ACC führt die Distanzmessung durch und rät dem Fahrzeug 600, bei Bedarf die Fahrbahn zu wechseln. Die ACC in Querrichtung ist mit anderen ADAS-Anwendungen, wie etwa LCA und CWS, verbunden.The ACC systems may use RADAR sensors 660, LIDAR sensors 664 and/or cameras. The ACC systems may include a longitudinal ACC and/or a transverse ACC. The longitudinal ACC monitors and controls the distance to the vehicle immediately in front of the vehicle 600 and automatically adjusts the vehicle speed to maintain a safe distance from the vehicles in front. The lateral ACC carries out the distance measurement and advises the vehicle 600 to change lanes if necessary. The transverse ACC is connected to other ADAS applications such as LCA and CWS.

CACC verwendet Informationen von anderen Fahrzeugen, die über die NetzNetzeschnittstelle 624 und/oder die Wireless-Antenne(n) 626 von anderen Fahrzeugen über eine Wireless-Verbindung oder indirekt über eine Netzverbindung (z. B. über das Internet) empfangen werden können. Direkte Verknüpfungen können durch eine Fahrzeug-zu-Fahrzeug (V2V)-Kommunikationsverknüpfung bereitgestellt werden, während indirekte Verknüpfungen durch eine Infrastruktur-zu-Fahrzeug (l2V)-Kommunikationsverknüpfung bereitgestellt werden können. Das Kommunikationskonzept V2V informiert in der Regel über die unmittelbar vorausfahrenden Fahrzeuge (z. B. Fahrzeuge unmittelbar vor und auf derselben Fahrbahn wie das Fahrzeug 600), während das Kommunikationskonzept I2V Informationen über den weiteren vorausfahrenden Verkehr liefert. CACC-Systeme können entweder eines oder beides von !2V- und V2V-Informationsquellen beinhalten. Angesichts der Informationen über die Fahrzeuge vor dem Fahrzeug 600 könnte CACC zuverlässiger sein und das Potenzial haben, die Verkehrsströme zu verbessern und Staus auf der Straße zu reduzieren.CACC uses information from other vehicles that can be received via network interface 624 and/or wireless antenna(s) 626 from other vehicles via a wireless connection or indirectly via a network connection (e.g., via the Internet). Direct links may be provided through a vehicle-to-vehicle (V2V) communications link, while indirect links may be provided through an infrastructure-to-vehicle (I2V) communications link. The V2V communication concept usually provides information about the vehicles immediately in front (e.g. vehicles immediately in front of and on the same road as vehicle 600), while the I2V communication concept provides information about the other traffic in front. CACC systems can include either or both of !2V and V2V information sources. Given the information about the vehicles in front of vehicle 600, CACC could be more reliable and have the potential to improve traffic flows and reduce road congestion.

FCW-Systeme wurden entwickelt, um den Fahrer auf eine Gefahr aufmerksam zu machen, damit der Fahrer Korrekturmaßnahmen ergreifen kann. FCW-Systeme verwenden eine nach vorne gerichtete Kamera und/oder RADAR-Sensoren 660 gekoppelt an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, Lautsprecher und/oder einer vibrierenden Komponente. FCW-Systeme können eine Warnung bereitstellen, z. B. in Form eines Tons, einer optischen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.FCW systems are designed to alert the driver to a hazard so the driver can take corrective action. FCW systems use a forward-facing camera and/or RADAR sensors 660 coupled to a dedicated processor, DSP, FPGA and/or ASIC that is electrically coupled to driver feedback, e.g. B. a display, speakers and / or a vibrating component. FCW systems can provide an alert, e.g. B. in the form of a sound, a visual warning, a vibration and / or a quick braking pulse.

AEB-Systeme erkennen einen drohenden Aufprall mit einem anderen Fahrzeug oder einem anderen Objekt und können die Bremsen automatisch betätigen, wenn der Fahrer innerhalb eines bestimmten Zeit- oder Entfernungsparameters keine Korrekturmaßnahmen ergreift. AEB-Systeme können nach vorne gerichtete Kameras und/oder RADAR-Sensoren 660 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkannt, warnt es typischerweise zuerst den Fahrer, um eine korrigierende Handlung durchzuführen, um eine Kollision zu vermeiden, und, wenn der Fahrer keine korrigierende Handlung durchführt, kann das AEB-System automatisch die Bremsen in dem Bestreben betätigen, die Auswirkungen der vorhergesagten Kollision zu verhindern oder mindestens abzuschwächen. AEB-Systeme können Techniken, wie zum Beispiel dynamische Bremsunterstützung und/oder Bremsung aufgrund eines bevorstehenden Zusammenstoßes, beinhalten.AEB systems detect an impending collision with another vehicle or object and can automatically apply the brakes if the driver does not take corrective action within a certain time or distance parameter. AEB systems may use forward-facing cameras and/or RADAR sensors 660 coupled to a dedicated processor, DSP, FPGA and/or ASIC. When the AEB system detects a danger, it typically first alerts the driver to take a corrective action to avoid a collision and, if the driver does not take a corrective action, the AEB system may automatically apply the brakes in the effort to prevent or at least mitigate the effects of the predicted collision. AEB systems may include techniques such as dynamic brake support and/or impending collision braking.

LDW-Systeme bieten optische, akustische und/oder taktile Warnungen, wie z. B. Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 600 die Fahrbahnmarkierungen überquert. Ein LDW-System wird nicht aktiviert, wenn der Fahrer ein absichtliches Verlassen der Fahrspur anzeigt, indem er den Blinker betätigt. LDW-Systeme können nach vorne gerichtete Kameras verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.LDW systems provide visual, audible and/or tactile warnings, such as: B. Steering wheel or seat vibrations to alert the driver when the vehicle 600 crosses the road markings. An LDW system will not activate if the driver indicates intentional lane departure by using the turn signal. LDW systems may use forward-facing cameras coupled to a dedicated processor, DSP, FPGA and/or ASIC that are electrically coupled to driver feedback such as: B. a display, a speaker and / or a vibrating component.

LKA-Systeme sind eine Variante der LDW-Systeme. LKA-Systeme bieten Lenkeingaben oder Bremsen, um das Fahrzeug 600 zu korrigieren, wenn das Fahrzeug 600 die Fahrbahn verlässt.LKA systems are a variant of the LDW systems. LKA systems provide steering inputs or braking to correct the vehicle 600 when the vehicle 600 leaves the roadway.

BSW-Systeme erkennen und warnen den Fahrer vor Fahrzeugen im toten Winkel eines Automobils. BSW-Systeme können einen optischen, akustischen und/oder taktilen Alarm bereitstellen, um anzugeben, dass Einfädeln in oder Wechseln der Fahrspuren unsicher ist. Das System kann eine zusätzliche Warnung bereitstellen, wenn der Fahrer einen Blinker setzt. BSW-Systeme können (eine) nach hinten und zur Seite gerichtete Kamera(s) und/oder RADAR-Sensor(en) 660 verwenden, die an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, das heißt elektrisch an eine Rückführung des Fahrers gekoppelt, wie etwa eine Anzeige, einen Lautsprecher und/oder eine schwingende Komponente.BSW systems detect and warn the driver of vehicles in an automobile's blind spot. BSW systems can provide a visual, audible and/or tactile alarm to indicate that merging or changing lanes is unsafe. The system can provide an additional warning when the driver uses a turn signal. BSW systems may use rear- and side-facing camera(s) and/or RADAR sensor(s) 660 coupled to a dedicated processor, DSP, FPGA and/or ASIC, i.e. electrically coupled to a Driver feedback coupled, such as a display, a speaker and / or a vibrating component.

RCTW-Systeme können visuelle, akustische und/oder taktile Benachrichtigungen liefern, wenn ein Objekt außerhalb des Bereichs der Rückfahrkamera erkannt wird, wenn das Fahrzeug 600 rückwärtsfährt. Einige RCTW-Systeme beinhalten das AEB-System, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Zusammenstoß zu vermeiden. RCTW-Systeme können eine oder mehrere nach hinten gerichtete RADAR-Sensoren 660 verwenden, gekoppelt mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, einem Lautsprecher und/oder einer vibrierenden Komponente.RCTW systems can provide visual, audible and/or tactile notifications when an object is detected outside the range of the rearview camera when the vehicle 600 is reversing. Some RCTW systems include the AEB system to ensure that the vehicle brakes are applied to avoid a collision. RCTW systems may use one or more rear-facing RADAR sensors 660 coupled with a dedicated processor, DSP, FPGA and/or ASIC that is electrically coupled to driver feedback, e.g. B. a display, a speaker and / or a vibrating component.

Herkömmliche ADAS-Systeme können zu falsch positiven Ergebnissen neigen, die für den Fahrer störend und ablenkend sein können, aber in der Regel nicht katastrophal sind, da die ADAS-Systeme den Fahrer alarmieren und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung tatsächlich vorliegt, und entsprechend zu handeln. Bei einem autonomen Fahrzeug 600 muss das Fahrzeug 600 selbst jedoch bei widersprüchlichen Ergebnissen entscheiden, ob das Ergebnis eines primären oder eines sekundären Computers (z. B. eines ersten Controllers 636 oder eines zweiten Controllers 636) berücksichtigt werden soll. In einigen Ausführungsformen kann das ADAS-System 638 beispielsweise ein Backup- und/oder Sekundärcomputer sein, um Wahrnehmungsinformationen für ein Rationalitätsmodul des Backup-Computers bereitzustellen. Der Rationalitätsmonitor des Backup-Computers kann eine redundante, diverse Software auf Hardware-Komponenten ausführen, um Fehler in der Wahrnehmung und bei dynamischen Fahraufgaben zu erkennen. Ausgaben vom ADAS-System 638 können einer Überwachungs-MCU bereitgestellt werden. Wenn die Ausgaben des primären und des sekundären Computers miteinander in Konflikt geraten, muss die Überwachungs-MCU bestimmen, wie der Konflikt beigelegt werden kann, um einen sicheren Betrieb zu gewährleisten.Traditional ADAS systems can be prone to false positives, which can be disruptive and distracting to the driver, but are usually not catastrophic because the ADAS systems alert the driver and allow the driver to decide whether a safety condition actually exists exists and to act accordingly. However, in an autonomous vehicle 600, in the event of conflicting results, the vehicle 600 itself must decide whether the result of a primary or a secondary computer (e.g. a first controller 636 or a second controller 636) should be taken into account. For example, in some embodiments, the ADAS system 638 may be a backup and/or secondary computer to provide perception information to a rationality module of the backup computer. The backup computer's rationality monitor can run redundant, diverse software on hardware components to detect errors in perception and dynamic driving tasks. Outputs from the ADAS system 638 may be provided to a monitoring MCU. If the outputs of the primary and secondary computers conflict with each other, the monitoring MCU must determine how to resolve the conflict to ensure safe operation.

In einigen Beispielen kann der primäre Computer so konfiguriert sein, dass er der Überwachungs-MCU eine Konfidenzbewertung bereitstellt, die eine Konfidenz des primären Computers für das gewählte Ergebnis angibt. Falls die Konfidenzbewertung einen Schwellenwert überschreitet, kann diese Überwachungs-MCU der Führung des primären Computers folgen, unabhängig davon, ob dieser sekundäre Computer ein widersprüchliches oder inkonsistentes Ergebnis bereitstellt. Wenn die Konfidenzbewertung den Schwellenwert nicht erreicht und der primäre und der sekundäre Computer unterschiedliche Ergebnisse angeben (z. B. den Widerspruch), kann die Überwachungs-MCU zwischen den Computern vermitteln, um das zweckmäßige Resultat zu bestimmen.In some examples, the primary computer may be configured to provide the monitoring MCU with a confidence score that indicates a confidence of the primary computer for the selected result. If the confidence score exceeds a threshold, this monitoring MCU can follow the lead of the primary computer, regardless of whether this secondary computer provides a conflicting or inconsistent result. If the confidence score does not reach the threshold and the primary and secondary computers report different results (e.g., the contradiction), the monitoring MCU can mediate between the computers to determine the appropriate result.

Die Überwachungs-MCU kann so konfiguriert sein, dass sie neuronale(s) Netz(e) ausführt, die dafür trainiert und konfiguriert sind, mindestens auf Grundlage von Ausgaben aus dem primären Computer und dem sekundären Computer die Bedingungen zu bestimmen, unter denen der sekundäre Computer Fehlalarme bereitstellt. Folglich können das/die neuronale Netz(e) in der Überwachungs-MCU lernen, wann der Ausgabe eines sekundären Computers vertraut werden kann und wann nicht. Zum Beispiel können, wenn der sekundäre Computer ein RADARbasiertes FCW-System ist, neuronale Netz(e) in der Überwachungs-MCU lernen, wann das FCW-System metallische Objekte identifiziert, die tatsächlich keine Gefahren sind, wie etwa ein Abflussgitter oder ein Gullydeckel, das/der einen Alarm auslöst. Wenn der sekundäre Computer ein kamerabasiertes LDW-System ist, kann ein neuronales Netz in der Überwachungs-MCU ähnlich lernen, die LDW zu überschreiben, wenn Fahrradfahrer oder Fußgänger vorhanden sind und ein Verlassen der Fahrspur tatsächlich das sicherste Manöver ist. In Ausführungsformen, die ein oder mehrere neuronale Netze beinhalten, die auf der Überwachungs-MCU laufen, kann die Überwachungs-MCU mindestens eine DLA oder GPU beinhalten, die für die Ausführung des oder der neuronalen Netze mit zugeordnetem Speicher geeignet ist. In bevorzugten Ausführungsformen kann die Überwachungs-MCU als Bestandteil des SoCs 604 enthalten und/oder einbezogen werden.The monitoring MCU may be configured to execute neural network(s) trained and configured to determine, based at least on outputs from the primary computer and the secondary computer, the conditions under which the secondary Computer provides false alarms. Consequently, the neural network(s) in the monitoring MCU can learn when the output of a secondary computer can and cannot be trusted. For example, if the secondary computer is a RADAR-based FCW system, neural network(s) in the surveillance MCU can learn when the FCW system identifies metallic objects that are not actually hazards, such as a drain grate or manhole cover, that triggers an alarm. Similarly, if the secondary computer is a camera-based LDW system, a neural network in the surveillance MCU can learn to override the LDW when cyclists or pedestrians are present and lane departure is actually the safest maneuver. In embodiments that include one or more neural networks running on the monitoring MCU, the monitoring MCU may include at least one DLA or GPU capable of executing the neural network(s) with associated memory. In preferred embodiments, the monitoring MCU may be included and/or incorporated as part of the SoC 604.

In anderen Beispielen kann das ADAS-System 638 einen sekundären Computer umfassen, der die ADAS-Funktionalität mithilfe herkömmlicher Regeln der Computervision ausführt. Somit kann der sekundäre Computer klassische Regeln des maschinellen Sehens (wenn-dann) verwenden und kann das Vorhandensein eines neuronalen NetzNetzes/von neuronalen Netzen in der Überwachungs-MCU die Zuverlässigkeit, Sicherheit und Leistung verbessern. Zum Beispiel macht die vielfältige Implementation und absichtliche Nicht-Identität das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch Software (oder Software-Hardware-Schnittstellen)-Funktionalität verursacht werden. Wenn zum Beispiel ein Software-Bug oder -Fehler in der auf dem primären Computer laufenden Software vorliegt und der nicht identische Software-Code, der auf dem sekundären Computer läuft, dasselbe Gesamtergebnis bereitstellt, kann die Überwachungs-MCU eine größere Konfidenz darin haben, dass das Gesamtergebnis korrekt ist und der Bug in der Software oder Hardware auf dem primären Computer keinen wesentlichen Fehler verursacht.In other examples, the ADAS system 638 may include a secondary computer that performs the ADAS functionality using conventional computer vision rules. Thus, the secondary computer can use classical computer vision rules (if-then), and the presence of a neural network network(s) in the monitoring MCU can improve reliability, security and performance. For example, diverse implementation and intentional non-identity makes the overall system more fault-tolerant, especially to errors caused by software (or software-hardware interfaces) functionality. For example, if there is a software bug or error in the software running on the primary computer and the non-identical software code running on the secondary computer provides the same overall result, the monitoring MCU can have greater confidence that the overall result is correct and the bug in the software or hardware on the primary computer does not cause a significant error.

In einigen Beispielen kann die Ausgabe des ADAS-Systems 638 in den Wahrnehmungs-Block des primären Computers und/oder den dynamischen Fahraufgaben-Block des primären Computers eingespeist werden. Wenn das ADAS-System 638 beispielsweise eine Aufprallwarnung aufgrund eines unmittelbar vorausliegenden Objekts anzeigt, kann der Wahrnehmungs-Block diese Informationen bei der Identifizierung von Objekten verwenden. In anderen Beispielen kann der sekundäre Computer über sein eigenes neuronales Netz verfügen, das trainiert ist und somit das Risiko von falsch positiven Ergebnissen reduziert, wie hierin beschrieben.In some examples, the output of the ADAS system 638 may be fed into the primary computer's perception block and/or the primary computer's dynamic driving task block. For example, if the ADAS system 638 displays a collision warning due to an object immediately ahead, the perception block may use this information in identifying objects. In other examples, the secondary computer may have its own neural network trained, thereby reducing the risk of false positives, as described herein.

Das Fahrzeug 600 kann außerdem das Infotainment-SoC 630 (z. B. ein Fahrzeug-Infotainment-System (in-vehicle infotainment - IVI)) enthalten. Obwohl als ein SoC veranschaulicht und beschrieben, kann das Infotainment-System möglicherweise kein SoC sein und kann zwei oder mehr diskrete Komponenten beinhalten. Das Infotainment-SoC 630 kann eine Kombination aus Hardware und Software umfassen, die verwendet werden kann, um dem Fahrzeug 600 Audio (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z. B. TV, Filme, Streaming usw.), Telefon (z. B. Freisprechfunktion), Netzkonnektivität (z. B. LTE, Wi-Fi, Usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Einparkhilfe hinten, ein Funkdatensystem, fahrzeugbezogene Informationen wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremsflüssigkeitsstand, Ölstand, Tür auf/zu, Luftfilterinformationen usw.) bereitzustellen. Zum Beispiel kann das Infotainment-SoC 630 Radios, CD-Player, Navigationssysteme, Videoplayer, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, Wi-Fi, Lenkrad-Audiosteuerungen, freihändige Sprachsteuerung, ein Heads-Up-Display (HUD), ein HMI-Display 634, ein Telematikgerät, ein Bedienfeld (z. B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder anderen Komponenten umfassen. Das Infotainment-SoC 630 kann außerdem dazu verwendet werden, Informationen (z. B. visuell und/oder hörbar) für Benutzer des Fahrzeugs bereitzustellen, z. B. Informationen aus dem ADAS-System 638, Informationen zum autonomen Fahren wie geplante Fahrzeugmanöver, Trajektorien, Umgebungsdaten (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.The vehicle 600 may also include the infotainment SoC 630 (e.g., an in-vehicle infotainment (IVI) system). Although illustrated and described as an SoC, the infotainment system may not be an SoC and may include two or more discrete components. The infotainment SoC 630 may include a combination of hardware and software that may be used to provide the vehicle 600 with audio (e.g., music, a personal digital assistant, navigation instructions, news, radio, etc.), video (e.g., . TV, movies, streaming, etc.), telephone (e.g. hands-free function), network connectivity (e.g. LTE, Wi-Fi, etc.) and/or information services (e.g. navigation systems, rear parking sensors, a radio data system , vehicle-related information such as fuel level, total distance traveled, brake fluid level, oil level, door open/close, air filter information, etc.). For example, the infotainment SoC 630 can support radios, CD players, navigation systems, video players, USB and Bluetooth connectivity, carputer, in-car entertainment, Wi-Fi, steering wheel audio controls, hands-free voice control, a heads-up display (HUD), an HMI display 634, a telematics device, a control panel (e.g., for controlling and/or interacting with various components, functions and/or systems), and/or other components. The infotainment SoC 630 may also be used to provide information (e.g., visual and/or audible) to users of the vehicle put, e.g. B. information from the ADAS system 638, autonomous driving information such as planned vehicle maneuvers, trajectories, environmental data (e.g. intersection information, vehicle information, road information, etc.) and / or other information.

Das Infotainment-SoC 630 kann GPU-Funktionalität enthalten. Das Infotainment-SoC 630 kann über den Bus 602 (z. B. CAN-Bus, Ethernet usw.) mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 600 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 630 mit einer Überwachungs-MCU gekoppelt werden, sodass die GPU des Infotainment-Systems einige Selbstfahr-Funktionen ausführen kann, falls der primäre Controller 636 (z. B. der primäre und/oder Backup-Computer des Fahrzeugs 600) ausfällt. In einem solchen Beispiel kann das Infotainment-SoC 630 das Fahrzeug 600 in den sicheren Stopp-Modus versetzen, wie hier beschrieben.The infotainment SoC 630 may include GPU functionality. The infotainment SoC 630 may communicate with other devices, systems, and/or components of the vehicle 600 via the bus 602 (e.g., CAN bus, Ethernet, etc.). In some examples, the infotainment SoC 630 may be coupled with a monitoring MCU so that the infotainment system's GPU can perform some self-driving functions if the primary controller 636 (e.g., the primary and/or backup computer of the Vehicle 600) fails. In such an example, the infotainment SoC 630 may place the vehicle 600 into safe stop mode, as described herein.

Das Fahrzeug 600 kann außerdem ein Kombiinstrument 632 (z. B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.) enthalten. Das Kombiinstrument 632 kann einen Controller und/oder Supercomputer (z. B. einen diskreten Controller oder Supercomputer) beinhalten. Das Kombiinstrument 632 kann einen Satz von Instrumenten wie etwa einen Geschwindigkeitsmesser, Kraftstofffüllstand, Öldruck, Tachometer, Wegstreckenzähler, Blinker, Schaltpositionsanzeige, Sicherheitsgurtwarnleuchte(n), Parkbremswarnleuchte(n), Motorfehlfunktionsleuchte(n), Airbag- (SRS-) Systeminformationen, Beleuchtungssteuerelemente, Sicherheitssystemsteuerelemente, Navigationsinformationen usw. beinhalten. In einigen Beispielen können Informationen angezeigt und/oder zwischen dem Infotainment-SoC 630 und dem Kombiinstrument 632 gemeinsam genutzt werden. Mit anderen Worten kann das Kombiinstrument 632 als Teil des Infotainment-SoC 630 oder umgekehrt beinhaltet sein.The vehicle 600 may also include an instrument cluster 632 (e.g., a digital dashboard, an electronic instrument cluster, a digital instrument panel, etc.). The instrument cluster 632 may include a controller and/or supercomputer (e.g., a discrete controller or supercomputer). The instrument cluster 632 may include a set of instruments such as a speedometer, fuel level, oil pressure, speedometer, odometer, turn signal, shift position indicator, seat belt warning light(s), parking brake warning light(s), engine malfunction light(s), airbag (SRS) system information, lighting controls, Include security system controls, navigation information, etc. In some examples, information may be displayed and/or shared between the infotainment SoC 630 and the instrument cluster 632. In other words, the instrument cluster 632 may be included as part of the infotainment SoC 630 or vice versa.

6D ist ein Systemdiagramm für die Kommunikation zwischen cloudbasierten Servern und dem beispielhaften autonomen Fahrzeug 600 aus 6A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das System 676 kann Server 678, Netze 690 und Fahrzeuge einschließlich Fahrzeug 600 umfassen. Die Server 678 können eine Vielzahl von GPUs 684(A)-684(H) (zusammenfassend als GPUs 684 bezeichnet), PCIe-Switches 682(A)-682(H) (gemeinsam als PCIe-Switches 682 bezeichnet) und/oder CPUs 680(A)-680(B) (gemeinsam als CPUs 680 bezeichnet) enthalten. Die GPUs 684, die CPUs 680 und die PCle-Switches können mit Hochgeschwindigkeitsverbindungen wie beispielsweise den von NVIDIA entwickelten NVLink-Schnittstellen 688 und/oder PCIe Connections 686 verbunden werden. In einigen Beispielen werden die GPUs 684 über NVLink und/oder NVSwitch SoC angeschlossen und die GPUs 684 und die PCIe-Switches 682 über PCIe-Verbindungen. Obwohl acht GPUs 684, zwei CPUs 680 und zwei PCIe-Switches abgebildet sind, soll dies nicht als einschränkend verstanden werden. Je nach Ausführungsform kann jeder Server 678 eine beliebige Anzahl von GPUs 684, CPUs 680 und/oder PCIe-Switches enthalten. Zum Beispiel können die Server 678 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 684 enthalten. 6D is a system diagram for communication between cloud-based servers and the example autonomous vehicle 600 6A , according to some embodiments of the present disclosure. The system 676 may include servers 678, networks 690 and vehicles including vehicle 600. The servers 678 may include a variety of GPUs 684(A)-684(H) (collectively referred to as GPUs 684), PCIe switches 682(A)-682(H) (collectively referred to as PCIe switches 682), and/or CPUs 680(A)-680(B) (collectively referred to as CPUs 680). The GPUs 684, the CPUs 680 and the PCle switches can be connected with high-speed connections such as the NVLink interfaces 688 and/or PCIe Connections 686 developed by NVIDIA. In some examples, the GPUs 684 are connected via NVLink and/or NVSwitch SoC and the GPUs 684 and the PCIe switches 682 are connected via PCIe connections. Although eight 684 GPUs, two 680 CPUs and two PCIe switches are shown, this should not be construed as limiting. Depending on the embodiment, each server 678 may include any number of GPUs 684, CPUs 680, and/or PCIe switches. For example, the servers 678 may each contain eight, sixteen, thirty-two, and/or more GPUs 684.

Die Server 678 können über die Netze 690 und von den Fahrzeugen Bilddaten empfangen, die repräsentativ für Bilder sind, die unerwartete oder veränderte Straßenbedingungen zeigen, wie z. B. kürzlich begonnene Straßenarbeiten. Die Server 678 können, über die Netze 690 und an die Fahrzeuge, neuronale Netze 692, aktualisierte neuronale Netze 692 und/oder Karteninformationen 694 übertragen, einschließlich Informationen über den Verkehr und die Straßenbedingungen. Die Aktualisierungen der Karteninformationen 694 können Aktualisierungen für die HD-Karte 622 enthalten, wie z. B. Informationen zu Baustellen, Schlaglöchern, Umwegen, Überschwemmungen und/oder anderen Hindernissen. In einigen Beispielen können die neuronalen Netze 692, die aktualisierten neuronalen Netze 692 und/oder die Karteninformationen 694 aus neuen Ausbildungen und/oder Erfahrungen resultieren, dargestellt in Daten aus einer beliebigen Anzahl von Fahrzeugen in der Umgebung, und/oder basierend auf Ausbildungen, die in einem Rechenzentrum durchgeführt werden (z. B. unter Verwendung der Server 678 und/oder anderer Server).The servers 678 may receive image data representative of images showing unexpected or changing road conditions, such as, over the networks 690 and from the vehicles. E.g. recently started road works. The servers 678 may transmit, over the networks 690 and to the vehicles, neural networks 692, updated neural networks 692, and/or map information 694, including information about traffic and road conditions. The updates to the map information 694 may include updates to the HD map 622, such as: B. Information about construction sites, potholes, detours, floods and/or other obstacles. In some examples, the neural networks 692, the updated neural networks 692, and/or the map information 694 may result from new training and/or experiences represented in data from any number of vehicles in the environment, and/or based on training provided be performed in a data center (e.g., using servers 678 and/or other servers).

Die Server 678 können verwendet werden, um maschinelle Lernmodelle (z. B. neuronale Netze) basierend auf Ausbildungsdaten auszubilden. Die Trainingsdaten können von Fahrzeugen erzeugt werden und/oder können in einer Simulation (z. B. unter Verwendung einer Spiele-Engine) erzeugt werden. In einigen Beispielen werden die Trainingsdaten mit Tags versehen (z. B. wenn das neuronale Netz von überwachtem Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen, während in anderen Beispielen die Trainingsdaten nicht mit Tags versehen und/oder vorverarbeitet werden (z. B. wenn das neuronale Netz kein überwachtes Lernen benötigt). Das Training kann nach einer oder mehreren Klassen von maschinellen Lerntechniken erfolgen, einschließlich, aber nicht beschränkt auf Klassen wie: überwachtes Training, halbüberwachtes Training, unüberwachtes Training, Selbstlernen, Verstärkungslernen, föderiertes Lernen, Transferlernen, Merkmalslernen (einschließlich Hauptkomponenten- und Clusteranalysen), multilineares Unterraumlernen, vielfältiges Lernen, Repräsentationslernen (einschließlich Ersatzwörterbuchlernen), regelbasiertes maschinelles Lernen, Anomalieerkennung und alle Varianten oder Kombinationen davon. Nach dem Trainieren der maschinellen Lernmodelle können die maschinellen Lernmodelle von den Fahrzeugen verwendet werden (z. B. über das Netz 690 an die Fahrzeuge übertragen) und/oder können die maschinellen Lernmodelle von den Servern 678 zur Fernüberwachung der Fahrzeuge verwendet werden.The servers 678 can be used to train machine learning models (e.g., neural networks) based on training data. The training data may be generated by vehicles and/or may be generated in a simulation (e.g. using a game engine). In some examples, the training data is tagged (e.g., when the neural network benefits from supervised learning) and/or undergoes other preprocessing, while in other examples, the training data is not tagged and/or preprocessed (e.g., . if the neural network does not require supervised learning). Training may be according to one or more classes of machine learning techniques, including but not limited to classes such as: supervised training, semi-supervised training, unsupervised training, self-learning, reinforcement learning, federated learning, transfer learning, feature learning (including principal component and cluster analyses), multilinear Subspace learning, manifold learning, representation learning (including surrogate dictionary learning), rule based machine learning, anomaly detection and any variants or combinations thereof. After training the machine learning models, the machine learning models may be used by the vehicles (e.g., transmitted to the vehicles over the network 690) and/or the machine learning models may be used by the servers 678 to remotely monitor the vehicles.

In einigen Beispielen kann der Server 678 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netze anwenden, um intelligente Echtzeit-Inferenzen zu ermöglichen. Die Server 678 können Deep-Learning-Supercomputer und/oder dedizierte KI-Computer mit GPUs 684 umfassen, wie z. B. DGX- und DGX-Stationsmaschinen, die von NVIDIA entwickelt wurden. In einigen Beispielen können die Server 678 jedoch eine Deep-Learning-Infrastruktur enthalten, die nur CPU-betriebene Rechenzentren verwendet.In some examples, the server 678 may receive data from the vehicles and apply the data to current real-time neural networks to enable intelligent real-time inferences. The servers 678 may include deep learning supercomputers and/or dedicated AI computers with GPUs 684, such as: B. DGX and DGX station machines developed by NVIDIA. However, in some examples, servers 678 may include deep learning infrastructure that uses only CPU-powered data centers.

Die Deep-Learning-Infrastruktur der Server 678 kann eine schnelle Echtzeit-Inferenz ermöglichen und diese Funktion nutzen, um den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 600 zu bewerten und zu überprüfen. Beispielsweise kann die Deep-Learning-Infrastruktur regelmäßige Aktualisierungen vom Fahrzeug 600 erhalten, wie z. B. eine Abfolge von Bildern und/oder Objekten, die das Fahrzeug 600 in dieser Abfolge von Bildern lokalisiert hat (z. B. durch Computervision und/oder andere Techniken zur Klassifizierung von Machine-Learning-Objekten). Die Deep-Learning-Infrastruktur kann ein eigenes neuronales Netz betreiben, um die Objekte zu identifizieren und sie mit den vom Fahrzeug 600 identifizierten Objekten zu vergleichen. Wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 600 defekt ist, kann der Server 678 ein Signal an das Fahrzeug 600 senden, das einen ausfallsicheren Computer des Fahrzeugs 600 anweist, die Kontrolle zu übernehmen, die Passagiere zu benachrichtigen und ein sicheres Einparkmanöver durchzuführen.The deep learning infrastructure of the servers 678 may enable rapid, real-time inference and use this capability to assess and verify the health of the processors, software, and/or associated hardware in the vehicle 600. For example, the deep learning infrastructure may receive regular updates from the vehicle 600, such as: B. a sequence of images and/or objects that the vehicle 600 has located in that sequence of images (e.g., through computer vision and/or other machine learning object classification techniques). The deep learning infrastructure can operate its own neural network to identify the objects and compare them with the objects identified by the vehicle 600. If the results do not agree and the infrastructure concludes that the AI in the vehicle 600 is defective, the server 678 may send a signal to the vehicle 600 instructing a fail-safe computer of the vehicle 600 to take control of the passengers to notify and carry out a safe parking maneuver.

Für die Inferenz können die Server 678 die GPUs 684 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. NVIDIA TensorRT) enthalten. Die Kombination von GPU-angetriebenen Servern und Inferenzbeschleunigung kann eine Reaktionsfähigkeit in Echtzeit ermöglichen. In anderen Beispielen, wenn z. B. die Performance weniger kritisch ist, können von CPUs, FPGAs und anderen Prozessoren angetriebene Server für die Ableitung verwendet werden.For inference, servers 678 may include GPUs 684 and one or more programmable inference accelerators (e.g., NVIDIA TensorRT). The combination of GPU-powered servers and inference acceleration can enable real-time responsiveness. In other examples, if e.g. For example, if performance is less critical, servers powered by CPUs, FPGAs, and other processors can be used for derivation.

BEISPIELHAFTE RECHENVORRICHTUNGEXEMPLARY COMPUTING DEVICE

7 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung(en) 700, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Die Rechenvorrichtung 700 kann ein Verbindungssystem 702 beinhalten, das die folgenden Vorrichtungen direkt oder indirekt koppelt: Speicher 704, eine oder mehrere zentrale Verarbeitungseinheiten (CPUs) 706, einen oder mehrere Grafikprozessoren (GPUs) 708, eine Kommunikationsschnittstelle 710, Eingangs-/Ausgangs (E/A)-Ports 712, Eingabe-/Ausgabekomponenten 714, ein Netzteil 716 und eine oder mehrere Darstellungskomponenten 718 (z. B. Displays) und eine oder mehrere Logikeinheiten 720. In mindestens einer Ausführungsform kann/können die Rechenvorrichtung(en) 700 eine oder mehrere virtuelle Maschinen (VM) umfassen und/oder kann jede ihrer Komponenten virtuelle Komponenten (z. B. virtuelle Hardwarekomponenten) umfassen.Nicht einschränkende Beispiele können eine oder mehrere GPUs 708 eine oder mehrere vGPUs umfassen, eine oder mehrere CPUs 706 können eine oder mehrere vCPUs umfassen und/oder eine oder mehrere Logikeinheiten 720 können eine oder mehrere virtuelle Logikeinheiten umfassen. Die Rechenvorrichtung(en) 700 kann/können somit diskrete Komponenten (z. B. eine vollständige, der Rechenvorrichtung 700 zugeordnete GPU), virtuelle Komponenten (z. B. einen Abschnitt einer der Rechenvorrichtung 700 zugeordneten GPU) oder eine Kombination davon beinhalten. 7 is a block diagram of an example computing device(s) 700 suitable for use in implementing some embodiments of the present disclosure. The computing device 700 may include an interconnection system 702 that directly or indirectly couples the following devices: memory 704, one or more central processing units (CPUs) 706, one or more graphics processing units (GPUs) 708, a communications interface 710, input/output (E /A) ports 712, input/output components 714, a power supply 716, and one or more display components 718 (e.g., displays), and one or more logic units 720. In at least one embodiment, the computing device(s) 700 may be a or multiple virtual machines (VM) and/or each of their components may include virtual components (e.g. virtual hardware components). Non-limiting examples may include one or more GPUs 708, one or more vGPUs, one or more CPUs 706 may include one or more include multiple vCPUs and/or one or more logic units 720 may include one or more virtual logic units. The computing device(s) 700 may thus include discrete components (e.g., a complete GPU associated with the computing device 700), virtual components (e.g., a portion of a GPU associated with the computing device 700), or a combination thereof.

Obwohl die verschiedenen Blöcke aus 7 als über Verbindungssystem 702 mit Leitungen verbunden gezeigt werden, soll dies nicht als einschränkend gedacht sein und dient nur der Übersichtlichkeit. In einigen Ausführungsformen kann beispielsweise eine Darstellungskomponente 718, wie z. B. ein Anzeigegerät, als E/A-Komponente 714 betrachtet werden (z. B. wenn es sich bei dem Display um einen Touchscreen handelt). Als weiteres Beispiel können die CPUs 706 und/oder GPUs 708 Speicher enthalten (z. B. kann der Speicher 704 neben dem Speicher der GPUs 708, der CPUs 706 und/oder anderer Komponenten repräsentativ für ein Speichergerät sein). Mit anderen Worten ist die Rechenvorrichtung aus 7 lediglich illustrativ. Es wird nicht zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Vorrichtung“, „Mobilgerät“, „Handheld-Vorrichtung“, „Spielkonsole“, „elektronisches Steuergerät (electronic control unit - ECU)“, „Virtual-Reality-System“ und/oder anderen Geräte- oder Systemtypen unterschieden, da alle im Rahmen der Rechenvorrichtung aus 7 liegen.Although the different blocks from 7 As shown connected to wires via connection system 702, this is not intended to be limiting and is for convenience only. For example, in some embodiments, a presentation component 718, such as. B. a display device, can be considered an I/O component 714 (e.g. if the display is a touchscreen). As another example, CPUs 706 and/or GPUs 708 may include memory (e.g., memory 704 may be representative of a storage device in addition to the memory of GPUs 708, CPUs 706, and/or other components). In other words, the computing device is off 7 merely illustrative. It does not distinguish between categories such as workstation, server, laptop, desktop, tablet, client device, mobile device, handheld device, game console, electronic control device ( electronic control unit (ECU)”, “virtual reality system” and/or other types of devices or systems, as they are all within the scope of the computing device 7 lay.

Das Verbindungssystem 702 kann einen oder mehrere Verbindungen oder Busse darstellen, z. B. einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Das Verbindungssystem 702 kann einen oder mehrere Bus- oder Verbindungstypen umfassen, z. B. einen ISA-Bus (Industry Standard Architecture), einen EISA-Bus (Extended Industry Standard Architecture), einen VESA-Bus (Video Electronics Standards Association), einen PCI-Bus (Peripheral Component Interconnect), einen PCle-Bus (Peripheral Component Interconnect Express) und/oder einen anderen Bus- oder Verbindungstyp. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen Komponenten. Als Beispiel kann die CPU 706 direkt an den Speicher 704 angeschlossen werden. Außerdem kann die CPU 706 direkt an die GPU 708 angeschlossen werden. Bei direkter oder Punkt-zu-Punkt-Verbindung zwischen Komponenten kann das Verbindungssystem 702 eine PCIe-Verbindung zur Durchführung der Verbindung enthalten. In diesen Beispielen muss kein PCI-Bus in die Rechenvorrichtung 700 aufgenommen werden.The connection system 702 may represent one or more connections or buses, e.g. B. an address bus, a data bus, a control bus or a combination thereof. The connection system 702 may include one or more types of buses or connections, e.g. B. an ISA bus (Industry Standard Architecture), an EISA bus (Extended Industry Standard Architecture), a VESA bus (Video Electronics Standards Association), a PCI bus (Peripheral Component Interconnect), a PCle bus (Peripheral Component Interconnect Express) and/or another bus or connection type. In some embodiments, there are direct connections between components. As an example, CPU 706 can be connected directly to memory 704. In addition, the CPU 706 can be connected directly to the GPU 708. For direct or point-to-point connection between components, the connection system 702 may include a PCIe connection to perform the connection. In these examples, no PCI bus needs to be included in the computing device 700.

Der Speicher 704 kann über eine Vielzahl von computerlesbaren Medien verfügen. Die computerlesbaren Medien können alle verfügbaren Medien sein, auf die die Rechenvorrichtung 700 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 umfassen.Memory 704 may include a variety of computer-readable media. The computer-readable media can be any available media that the computing device 700 can access. The computer-readable media may include both volatile and non-volatile media as well as removable and non-removable media. By way of example and not limitation, the computer-readable media may include computer storage media and communication media.

Das Computerspeichermedium kann sowohl flüchtige als auch nichtflüchtige Medien und/oder wechselbare und nicht wechselbare Medien enthalten, die in jedem Verfahren oder Technologie zur Speicherung von Informationen wie computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder andere Datentypen implementiert sind. Im Speicher 704 können beispielsweise computerlesbare Anweisungen gespeichert werden (z. B., die ein oder mehrere Programme und/oder Programmelemente darstellen, z. B. ein Betriebssystem. Zu den Speichermedien für Computer gehören unter anderem RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Datenträger, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere magnetische Speichergeräte, oder jedes andere Medium, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das die Rechenvorrichtung 700 zugreifen kann. Im hierin verwendeten Sinne umfassen Computerspeichermedien keine Signale an sich.The computer storage medium may include both volatile and non-volatile media and/or removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules and/or other types of data. For example, memory 704 may store computer-readable instructions (e.g., representing one or more programs and/or program elements, e.g., an operating system). Storage media for computers include, but are not limited to, RAM, ROM, EEPROM, flash memory or other storage technologies, CD-ROM, Digital Versatile Disks (DVD) or other optical media, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and which is accessible by the computing device 700 As used herein, computer storage media does not include signals per se.

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 verkörpern und beinhalten beliebige Informationsliefermedien. Der Begriff „moduliertes Datensignal“ kann ein Signal betreffen, das eine oder mehrere seiner Eigenschaften auf solch eine Weise verändert aufweist, dass Informationen in dem Signal codiert werden. Zum Beispiel, und nicht als Einschränkung, können Computerspeichermedien verkabelte Medien beinhalten, wie beispielsweise ein verkabeltes Netz oder eine drahtgebundene Verbindung, und drahtlose Medien, wie beispielsweise akustische, RF, infrarote und andere drahtlose Medien. Kombinationen aller Vorstehenden sollen ebenfalls im Umfang computerlesbarer Medien eingeschlossen sein.The computer storage media may embody computer-readable instructions, data structures, program modules, and/or other types of data in a modulated data signal such as a carrier wave or other transport mechanism, and include any information delivery media. The term “modulated data signal” may refer to a signal that has one or more of its properties altered in such a way that information is encoded in the signal. By way of example, and not as a limitation, computer storage media may include wired media, such as a wired network or wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of all of the foregoing are also intended to be included within the scope of computer-readable media.

Die CPUs 706 können so konfiguriert werden, dass sie mindestens einige der computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 700 ausführen, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse auszuführen. Die CPUs 706 können jeweils einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) umfassen, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPUs 706 können jede Art von Prozessor enthalten und je nach Art der implementierten Rechenvorrichtung 700 verschiedene Typen von Prozessoren enthalten (z. B. Prozessoren mit weniger Kernen für Mobilgeräte und Prozessoren mit mehr Kernen für Server). Je nach Rechenvorrichtung 700 kann es sich beispielsweise um einen Advanced RISC Machine (ARM)-Prozessor mit reduziertem Instruction Set Computing (RISC) oder einen x86-Prozessor mit komplexem Instruction Set Computing (CISC) handeln. Die Rechenvorrichtung 700 kann zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzlichen Coprozessoren, wie z. B. mathematischen Coprozessoren, eine oder mehrere CPUs 706 enthalten.The CPUs 706 may be configured to execute at least some of the computer-readable instructions to control one or more components of the computer 700 to perform one or more of the methods and/or processes described herein. The CPUs 706 may each include one or more cores (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) capable of processing a plurality of software threads simultaneously. The CPUs 706 may include any type of processor and may include different types of processors depending on the type of computing device 700 being implemented (e.g., processors with fewer cores for mobile devices and processors with more cores for servers). Depending on the computing device 700, it can be, for example, an Advanced RISC Machine (ARM) processor with reduced instruction set computing (RISC) or an x86 processor with complex instruction set computing (CISC). The computing device 700 may in addition to one or more microprocessors or additional coprocessors, such as. B. mathematical coprocessors, one or more CPUs 706 included.

Die GPUs 708 können darüber hinaus oder alternativ von den CPUs 706 so konfiguriert werden, dass sie mindestens einige computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 700 ausführen, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse auszuführen. Eine oder mehrere GPUs 708 können eine integrierte GPU (z. B. mit einer oder mehreren CPUs 706) sein und/oder eine oder mehrere GPUs 708 können eine separate GPU sein. In Ausführungsformen können eine oder mehrere GPUs 708 ein Coprozessor einer oder mehrerer CPUs 706 sein. Die GPUs 708 können von der Rechenvorrichtung 700 zum Rendern von Grafiken (z. B. 3D-Grafiken) oder Durchführen allgemeiner Berechnungen verwendet werden. Beispielsweise können die GPUs 708 zur General-Purpose Computing on GPUs (GPGPU) verwendet werden. Die GPUs 708 können Hunderte oder Tausende von Kernen umfassen, die Hunderte oder Tausende von Software-Threads gleichzeitig verarbeiten können. Die GPUs 708 können als Reaktion auf Rendering-Befehle (z. B. Rendering-Befehle von den CPUs 706, die über eine Host-Schnittstelle empfangen wurde) Pixeldaten für Ausgabebilder generieren. Die GPUs 708 können Grafikspeicher, wie z. B. Displayspeicher, zum Speichern von Pixeldaten oder anderen geeigneten Daten, wie GPGPU-Daten, enthalten. Der Displayspeicher kann als Teil des Speichers 704 enthalten sein. Die GPUs 708 können zwei oder mehr GPUs enthalten, die parallel arbeiten (z. B. über eine Verbindung). Die Verbindung kann die GPUs direkt verbinden (z. B. unter Verwendung von NVLINK) oder kann die GPUs über ein Switch verbinden (z. B. unter Verwendung von NVSwitch). Wenn sie zusammen kombiniert werden, kann jede GPU 708 Pixeldaten oder GPGPU-Daten für verschiedene 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 kann Speicher mit anderen GPUs gemeinsam nutzen.The GPUs 708 may further or alternatively be configured by the CPUs 706 to execute at least some computer-readable instructions to control one or more components of the computer 700 to perform one or more of the methods and/or processes described herein. One or more GPUs 708 may be an integrated GPU (e.g., with one or more CPUs 706) and/or one or more GPUs 708 may be a separate GPU. In embodiments, one or more GPUs 708 may be a coprocessor of one or more CPUs 706. The GPUs 708 may be used by the computing device 700 to render graphics (e.g., 3D graphics) or perform more general calculations are used. For example, the GPUs 708 can be used for general-purpose computing on GPUs (GPGPU). The GPUs 708 can include hundreds or thousands of cores that can process hundreds or thousands of software threads simultaneously. The GPUs 708 may generate pixel data for output images in response to rendering commands (e.g., rendering commands from the CPUs 706 received via a host interface). The GPUs 708 can have graphics memory such as. B. Display memory, for storing pixel data or other suitable data, such as GPGPU data. The display memory may be included as part of the memory 704. The GPUs 708 may include two or more GPUs operating in parallel (e.g., over a connection). The connection can connect the GPUs directly (e.g. using NVLINK) or can connect the GPUs via a switch (e.g. using NVSwitch). When combined together, each GPU can generate 708 pixel data or GPGPU data for different parts of an output or for different outputs (e.g. a first GPU for a first image and a second GPU for a second image). Each GPU can include its own memory or can share memory with other GPUs.

Die Logikeinheiten 720 können darüber hinaus oder alternativ von den CPUs 706 und/oder den GPUs 708 so konfiguriert werden, dass sie mindestens einige computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 700 ausführen, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse auszuführen. In Ausführungsformen können die CPUs 706, die GPUs 708 und/oder die Logikeinheiten 720 diskret oder gemeinsam jede beliebige Kombination der Verfahren, Prozesse und/oder Teile davon durchführen. Eine oder mehrere der Logikeinheiten 720 können Teil einer und/oder mehrerer CPUs 706 und/oder GPUs 708 sein und/oder eine oder mehrere der Logikeinheiten 720 können diskrete Komponenten oder auf andere Weise außerhalb der CPUs 706 und/oder der GPUs 708 sein. In Ausführungsformen können eine oder mehrere der Logikeinheiten 720 ein Coprozessor einer oder mehrerer der CPUs 706 und/oder einer oder mehrerer der GPUs 708 sein.The logic units 720 may further or alternatively be configured by the CPUs 706 and/or the GPUs 708 to execute at least some computer-readable instructions to control one or more components of the computer 700 to perform one or more of the methods and/or described herein Execute processes. In embodiments, the CPUs 706, the GPUs 708, and/or the logic units 720 may discretely or collectively perform any combination of the methods, processes, and/or portions thereof. One or more of the logic units 720 may be part of one and/or more CPUs 706 and/or GPUs 708 and/or one or more of the logic units 720 may be discrete components or otherwise external to the CPUs 706 and/or the GPUs 708. In embodiments, one or more of the logic units 720 may be a coprocessor of one or more of the CPUs 706 and/or one or more of the GPUs 708.

Beispiele der Logikeinheit(en) 720 beinhalten einen oder mehrere Verarbeitungskerne und/oder Komponenten davon, wie etwa Datenverarbeitungseinheiten (Data Processing Units - DPUs), Tensorkerne (Tensor Cores - TC), Tensor-Verarbeitungseinheiten (Tensor Processing Unit - TPU), visuelle Pixelkerne (Pixel Visual Cores - PVC), Bildverarbeitungseinheiten (Vision Processing Unit - VPU), Grafikverarbeitungscluster (Graphics Processing Cluster - GPC), Texturverarbeitungscluster (Texture Processing Cluster - TPC), Streaming-Multiprozessoren (SM), Baumdurchquerungseinheiten (Tree Traversal Unit - TTU), Beschleuniger für künstliche Intelligenz (Artificial Intelligence Accelerator - AIA), DeepLearning-Beschleuniger (Deep Learning Accelerator - DLA), arithmetische Logikeinheiten (ALU), anwendungsspezifische integrierte Schaltungen (ASIC), Gleitkommaeinheiten (Floating Point Unit - FPU), Eingabe/Ausgabe(E/A)-Elemente, Elemente für Verschaltung von Periphärkomponenten (PCI) oder Expressverschaltung von Periphärkomponenten (peripheral component interconnect express - PCIe) und/oder dergleichen.Examples of the logic unit(s) 720 include one or more processing cores and/or components thereof, such as data processing units (DPUs), tensor cores (TC), tensor processing units (TPU), visual pixel cores Pixel Visual Cores (PVC), Vision Processing Unit (VPU), Graphics Processing Cluster (GPC), Texture Processing Cluster (TPC), Streaming Multiprocessors (SM), Tree Traversal Unit (TTU) , Artificial Intelligence Accelerator (AIA), Deep Learning Accelerator (DLA), Arithmetic Logic Units (ALU), Application Specific Integrated Circuits (ASIC), Floating Point Unit (FPU), Input/Output ( I/O) elements, elements for interconnecting peripheral components (PCI) or express interconnecting peripheral components (peripheral component interconnect express - PCIe) and/or the like.

Die Kommunikationsschnittstelle 710 kann einen oder mehrere Empfänger, Sender und/oder Transceiver beinhalten, die es der Rechenvorrichtung 700 ermöglichen, über ein elektronisches Kommunikationsnetz, einschließlich drahtgebundener und/oder drahtloser Kommunikation, mit anderen Rechenvorrichtungen zu kommunizieren. Die Kommunikationsschnittstelle 710 kann Komponenten und Funktionen enthalten, die die Kommunikation über eine Reihe verschiedener Netze ermöglichen, z. B. drahtlose Netze (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), kabelgebundene Netze (z. B. Kommunikation über Ethernet oder InfiniBand), Low-Power-Wide-Area-Netze (z. B. LoRaWAN, Sigfox usw.) und/oder das Internet. In einer oder mehreren Ausführungsformen können die Logikeinheit(en) 720 und/oder die Kommunikationsschnittstelle 710 eine oder mehrere Datenverarbeitungseinheiten (DPUs) beinhalten, um über ein Netz und/oder durch das Verschaltungssystem 702 empfangene Daten direkt an eine oder mehrere GPU(s) 708 (z. B. einen Speicher davon) zu übertragen.The communications interface 710 may include one or more receivers, transmitters, and/or transceivers that enable the computing device 700 to communicate with other computing devices via an electronic communications network, including wired and/or wireless communications. The communication interface 710 may include components and functions that enable communication over a number of different networks, e.g. B. wireless networks (e.g. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g. communication via Ethernet or InfiniBand), low-power wide-area networks (e.g. LoRaWAN, Sigfox, etc.) and/or the Internet. In one or more embodiments, the logic unit(s) 720 and/or the communications interface 710 may include one or more data processing units (DPUs) for transmitting data received over a network and/or through the interconnection system 702 directly to one or more GPU(s) 708 (e.g. a memory thereof).

Die E/A-Ports 712 können ermöglichen, dass die Rechenvorrichtung 700 logisch mit anderen Vorrichtungen gekoppelt wird, einschließlich der E/A-Komponenten 714, der Darstellungskomponente(n) 718 und/oder anderen Komponenten, von denen einige in die Rechenvorrichtung 700 eingebaut (z. B. integriert) sein können. Veranschaulichende E/A-Komponenten 714 beinhalten ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Gamecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, eine drahtlose Vorrichtung usw. Die E/A-Komponenten 714 können eine natürliche Benutzerschnittstelle (natural user interface - NUI) bereitstellen, die Luftgesten, Spracheingabe oder andere durch einen Benutzer erzeugte physiologische Eingaben verarbeitet. In einigen Fällen können Eingaben zur weiteren Verarbeitung an ein geeignetes Netzelement übertragen werden. Eine NUI kann eine beliebige Kombination aus Spracherkennung, Tasterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch in der Nähe des Bildschirms, Luftgesten, Kopf- und Augenverfolgung und Touch-Erkennung (wie unten näher beschrieben) implementieren, die mit einem Display der Rechenvorrichtung 700 verbunden ist. Die Rechenvorrichtung 700 kann Tiefenkameras umfassen, wie stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon, zur Gestendetektion und -erkennung. Darüber hinaus kann die Rechenvorrichtung 700 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) enthalten, die eine Bewegungserkennung ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope von der Rechenvorrichtung 700 verwendet werden, um immersive Augmented Reality oder Virtual Reality darzustellen.The I/O ports 712 may enable the computing device 700 to be logically coupled to other devices, including the I/O components 714, the presentation component(s) 718, and/or other components, some of which are built into the computing device 700 (e.g. integrated). Illustrative I/O components 714 include a microphone, a mouse, a keyboard, a joystick, a gamepad, a game controller, a satellite dish, a scanner, a printer, a wireless device, etc. The I/O components 714 may be natural Provide a natural user interface (NUI) that processes air gestures, voice input, or other physiological input generated by a user. In some cases, inputs can be transferred to an appropriate network element for further processing. A NUI can do any combination of voice recognition, tactile recognition, face recognition, biometric recognition, both on-screen and near-screen gesture recognition, air gestures, head and eye tracking, and touch detection Implementation (as described in more detail below) that is connected to a display of the computing device 700. The computing device 700 may include depth cameras, such as stereoscopic camera systems, infrared camera systems, RGB camera systems, touchscreen technology, and combinations thereof, for gesture detection and recognition. In addition, the computing device 700 may include accelerometers or gyroscopes (e.g., as part of an inertial measurement unit (IMU)) that enable motion detection. In some examples, the output of the accelerometers or gyroscopes from the computing device 700 may be used to display immersive augmented reality or virtual reality.

Das Netzteil 716 kann ein fest verdrahtetes Netzteil, ein Batterienetzteil oder eine Kombination davon umfassen. Das Netzteil 716 kann die Rechenvorrichtung 700 mit Strom versorgen, damit die Komponenten der Rechenvorrichtung 700 funktionieren können.The power supply 716 may include a hardwired power supply, a battery power supply, or a combination thereof. The power supply 716 may provide power to the computing device 700 to enable the components of the computing device 700 to function.

Die Darstellungskomponenten 718 können ein Display (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Heads-Up-Display (HUD), andere Anzeigetypen oder eine Kombination davon), Lautsprecher und/oder andere Darstellungskomponenten beinhalten. Die Darstellungskomponenten 718 können Daten von anderen Komponenten (z. B. GPUs 708, CPUs 706, DPUs usw.) empfangen und die Daten ausgeben (z. B. als Bild, Video, Ton usw.).The display components 718 may include a display (e.g., a monitor, a touch screen, a television screen, a heads-up display (HUD), other display types, or a combination thereof), speakers, and/or other display components. The presentation components 718 may receive data from other components (e.g., GPUs 708, CPUs 706, DPUs, etc.) and output the data (e.g., as image, video, sound, etc.).

BEISPIELHAFTES RECHENZENTRUMEXEMPLARY DATA CENTER

8 veranschaulicht ein beispielhaftes Rechenzentrum 800, das in mindestens einer Ausführungsform der vorliegenden Offenbarung verwendet werden kann. Das Rechenzentrum 800 kann eine Rechenzentrumsinfrastrukturschicht 810, eine Framework-Schicht 820, eine Softwareschicht 830 und/oder eine Anwendungsschicht 840 beinhalten. 8th illustrates an example data center 800 that may be used in at least one embodiment of the present disclosure. The data center 800 may include a data center infrastructure layer 810, a framework layer 820, a software layer 830, and/or an application layer 840.

Wie in 8 gezeigt, kann die Rechenzentrumsinfrastrukturschicht 810 einen Ressourcenorchestrator 812, gruppierte Rechenressourcen 814 und Knoten-Rechenressourcen („Knoten-C.R.“) 816(1)-816(N) beinhalten, wobei „N“ eine beliebige positive ganze Zahl darstellt. In mindestens einer Ausführungsform können die Knoten-C.R. 816(1)-816(N) eine beliebige Anzahl von Zentraleinheiten (CPUs) oder andere Prozessoren (einschließlich DPUs, Beschleuniger, feldprogrammierbare Gate-Arrays (FPGAs), Grafikprozessoren oder Grafikverarbeitungseinheiten (GPUs) usw.), Speichervorrichtungen (z. B. dynamischer Nur-Lese-Speicher), Datenspeichervorrichtungen (z. B. Festkörper- oder Festplattenlaufwerke), Netz-Ein-/Ausgabevorrichtungen (NW E/A), Netz-Switches, virtuellen Maschinen (VMs), Leistungsmodule und/oder Kühlmodule usw. beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform können ein oder mehrere Knoten-C.R. unter den Knoten-C.R. 816(1)-816(N) einem Server entsprechen, der eine oder mehrere der vorstehend genannten Rechenressourcen aufweist. Darüber hinaus können die Knoten-C.R. 816(1)-8161(N) in einigen Ausführungsformen eine oder mehrere virtuelle Komponenten beinhalten, wie etwa vGPUs, vCPUs und/oder dergleichen, und/oder können einer oder mehrere der Knoten-C.R. 816(1)-816(N) einer virtuellen Maschine (VM) entsprechen.As in 8th As shown, the data center infrastructure layer 810 may include a resource orchestrator 812, clustered computing resources 814, and node computing resources (“node CR”) 816(1)-816(N), where “N” represents any positive integer. In at least one embodiment, the node CRs 816(1)-816(N) may include any number of central processing units (CPUs) or other processors (including DPUs, accelerators, field programmable gate arrays (FPGAs), graphics processors or graphics processing units (GPUs), etc .), storage devices (e.g., dynamic read-only memory), data storage devices (e.g., solid-state or hard disk drives), network input/output devices (NW I/O), network switches, virtual machines (VMs ), power modules and/or cooling modules, etc. include, but are not limited to. In at least one embodiment, one or more node CRs among node CRs 816(1)-816(N) may correspond to a server having one or more of the aforementioned computing resources. Additionally, in some embodiments, the node CRs 816(1)-8161(N) may include one or more virtual components, such as vGPUs, vCPUs, and/or the like, and/or may include one or more of the node CRs 816(1 )-816(N) correspond to a virtual machine (VM).

In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 814 separate Gruppierungen von Knoten-C.R. 816 beinhalten, die innerhalb eines oder mehrerer Racks (nicht gezeigt) oder vieler Racks untergebracht sind, die in Rechenzentren an verschiedenen geografischen Standorten untergebracht sind (ebenfalls nicht gezeigt). Separate Gruppierungen von Knoten-C.R. 816 innerhalb der gruppierten Rechenressourcen 814 können gruppierte Rechen-, Netz-, Arbeitsspeicher- oder Datenspeicherressourcen beinhalten, die zur Unterstützung einer oder mehrerer Arbeitslasten konfiguriert oder zugewiesen sein können. In mindestens einer Ausführungsform können mehrere Knoten-C.R. 816, die CPUs, GPUs, DPUs und/oder Prozessoren beinhalten, in einem oder mehreren Racks gruppiert sein, 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 Netz-Switches in beliebiger Kombination beinhalten.In at least one embodiment, the grouped computing resources 814 may be separate groupings of node C.R. 816 housed within one or more racks (not shown) or many racks housed in data centers in different geographic locations (also not shown). Separate groupings of node C.R. 816 within the grouped computing resources 814 may include grouped computing, network, memory, or data storage resources that may be configured or assigned to support one or more workloads. In at least one embodiment, multiple node C.R. 816, including CPUs, GPUs, DPUs, and/or processors, may be grouped in one or more racks to provide computing resources to support one or more workloads. The one or more racks may also contain any number of power modules, cooling modules and/or network switches in any combination.

Der Ressourcenorchestrator 812 kann einen oder mehrere Knoten-C.R. 816(1)-816(N) und/oder gruppierte Rechenressourcen 814 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcenorchestrator 812 eine Verwaltungsentität für Softwaregestaltungsinfrastruktur (software design infrastructure - SDI) für das Rechenzentrum 800 beinhalten. Der Ressourcenorchestrator 812 kann aus Hardware, Software oder einer Kombination davon bestehen.The resource orchestrator 812 may have one or more node C.R. Configure or otherwise control 816(1)-816(N) and/or grouped computing resources 814. In at least one embodiment, the resource orchestrator 812 may include a software design infrastructure (SDI) management entity for the data center 800. The resource orchestrator 812 may consist of hardware, software, or a combination thereof.

In mindestens einer Ausführungsform, wie in 8 gezeigt, kann die Framework-Schicht 820 einen Aufgaben-Scheduler 833, einen Konfigurationsmanager 834, einen Ressourcenmanager 836 und/oder ein verteiltes Dateisystem 838 beinhalten. Die Framework-Schicht 820 kann ein Framework zur Unterstützung von Software 832 einer Softwareschicht 830 und/oder einer oder mehrerer Anwendungen 842 einer Anwendungsschicht 840 beinhalten. Die Software 832 oder die Anwendung(en) 842 können jeweils webbasierte Dienstsoftware oder -anwendungen beinhalten, wie etwa diejenigen, die von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt sind. Die Framework-Schicht 820 kann eine Art von freiem und Open-Source-Software-Webanwendungs-Framework sein, ohne darauf beschränkt zu sein, wie etwa Apache Spark™ (im Folgenden „Spark“), welches das verteilte Dateisystem 838 für umfangreiche Datenverarbeitungen (z. B. „Big Data“) nutzen kann. In mindestens einer Ausführungsform kann der Aufgaben-Scheduler 833 einen Spark-Treiber beinhalten, um die Planung von Arbeitslasten zu erleichtern, die durch verschiedene Schichten des Rechenzentrums 800 unterstützt werden. Der Konfigurationsmanager 834 kann in der Lage sein, unterschiedliche Schichten zu konfigurieren, wie etwa die Softwareschicht 830 und die Framework-Schicht 820, was Spark und das verteilte Dateisystem 838 zum Unterstützen einer umfangreichen Datenverarbeitung beinhaltet. Der Ressourcenmanager 836 kann in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 838 und des Aufgaben-Schedulers 833 zugeordnet oder zugewiesen sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Rechenressourcen die gruppierte Rechenressource 814 auf der Rechenzentrumsinfrastrukturschicht 810 beinhalten. Der Ressourcenmanager 836 und der Ressourcenorchestrator 812 können sich aufeinander abstimmen, um diese zugeordneten oder zugewiesenen Rechenressourcen zu verwalten.In at least one embodiment, as in 8th As shown, the framework layer 820 may include a task scheduler 833, a configuration manager 834, a resource manager 836, and/or a distributed file system 838. The framework layer 820 may include a framework for supporting software 832 of a software layer 830 and/or one or more applications 842 of an application layer 840. The software 832 or the application(s) 842 may each include web-based service software or applications, such as those provided by Amazon Web Services, Google Cloud, and Microsoft Azure. The framework layer 820 may be any type of free and open source software web application framework, such as Apache Spark™ (hereinafter “Spark”), which provides the distributed file system 838 for large-scale data processing ( e.g. “Big Data”). In at least one embodiment, the task scheduler 833 may include a Spark driver to facilitate scheduling of workloads supported by different tiers of the data center 800. The configuration manager 834 may be able to configure different layers, such as the software layer 830 and the framework layer 820, which includes Spark and the distributed file system 838 to support large-scale data processing. The resource manager 836 may be capable of managing clustered or grouped computing resources allocated or assigned to support the distributed file system 838 and the task scheduler 833. In at least one embodiment, clustered or grouped computing resources may include the clustered computing resource 814 on the data center infrastructure layer 810. The resource manager 836 and the resource orchestrator 812 may coordinate to manage these associated or assigned computing resources.

In mindestens einer Ausführungsform kann die in der Softwareschicht 830 enthaltene Software 832 Software beinhalten, die mindestens durch Abschnitte der Knoten-C.R. 816(1)-816(N), der gruppierten Rechenressourcen 814 und/oder des verteilten Dateisystems 838 der Framework-Schicht 820 verwendet wird. Eine oder mehrere Arten von Software können Software zum Durchsuchen von Internet-Webseiten, Software zum Scannen von E-Mails auf Viren, Datenbank-Software und Software für Streaming-Videoinhalte beinhalten, ohne darauf beschränkt zu sein.In at least one embodiment, the software 832 included in the software layer 830 may include software that is represented by at least portions of the node C.R. 816(1)-816(N), the clustered computing resources 814 and/or the distributed file system 838 of the framework layer 820 is used. One or more types of software may include, but are not limited to, Internet web page scanning software, email virus scanning software, database software, and streaming video content software.

In mindestens einer Ausführungsform können die in der Anwendungsschicht 840 enthaltenen Anwendung(en) 842 einen oder mehrere Typen von Anwendungen beinhalten, die mindestens durch Abschnitte der Knoten-C.R. 816(1)-816(N), der gruppierten Rechenressourcen 814 und/oder des verteilten Dateisystems 838 der Framework-Schicht 820 verwendet werden. Eine oder mehrere Arten von Anwendungen können eine beliebige Anzahl einer Genomikanwendung, einer kognitiven Rechenanwendung und einer maschinellen Lernanwendung beinhalten, die Trainings- oder Inferenzierungssoftware beinhaltet, Framework-Software des maschinellen Lernens (z. B. PyTorch, TensorFlow, Caffe usw.) und/oder andere maschinelle Lernanwendungen beinhalten, ohne darauf beschränkt zu sein, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden.In at least one embodiment, the application(s) 842 included in the application layer 840 may include one or more types of applications that are supported by at least portions of the node C.R. 816(1)-816(N), the clustered computing resources 814 and/or the distributed file system 838 of the framework layer 820 can be used. One or more types of applications may include any number of a genomics application, a cognitive computing application, and a machine learning application that includes training or inference software, machine learning framework software (e.g., PyTorch, TensorFlow, Caffe, etc.), and/or or include, but is not limited to, other machine learning applications used in connection with one or more embodiments.

In mindestens einer Ausführungsform können beliebige des Konfigurationsmanagers 834, des Ressourcenmanagers 836 und des Ressourcenorchestrators 812 eine beliebige Anzahl und einen beliebigen Typ von selbstmodifizierenden Handlungen implementieren, die auf einer beliebigen Menge und einem beliebigen Typ von Daten basieren, die auf eine beliebige technisch machbare Weise erfasst wurden. Selbstmodifizierende Handlungen können einen Rechenzentrumsbetreiber des Rechenzentrums 800 dahingehend entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Abschnitte eines Rechenzentrums zu vermeiden.In at least one embodiment, any of the configuration manager 834, the resource manager 836, and the resource orchestrator 812 may implement any number and type of self-modifying actions based on any amount and type of data collected in any technically feasible manner became. Self-modifying actions can relieve a data center operator of the data center 800 from making potentially poor configuration decisions and potentially avoiding underutilized and/or poorly performing sections of a data center.

Das Rechenzentrum 800 kann Werkzeuge, Dienste, Software oder andere Ressourcen beinhalten, um ein oder mehrere maschinelle Lernmodelle zu trainieren oder Informationen unter Verwendung eines oder mehrerer maschineller Lernmodelle gemäß einer oder mehreren in dieser Schrift beschriebenen Ausführungsformen vorherzusagen oder zu inferenzieren. Zum Beispiel kann/können ein maschinelle Lernmodell(e) trainiert werden, indem Gewichtungsparameter gemäß einer Architektur eines neuronalen NetzNetzes unter Verwendung von Software und/oder Rechenressourcen berechnet werden, die vorstehend in Bezug auf das Rechenzentrum 800 beschrieben sind. In mindestens einer Ausführungsform können trainierte oder eingesetzte maschinelle Lernmodelle, die einem oder mehreren neuronalen Netzen entsprechen, verwendet werden, um Informationen unter Verwendung der vorstehend in Bezug auf das Rechenzentrum 800 beschriebenen Ressourcen zu inferenzieren oder vorherzusagen, indem Gewichtungsparameter verwendet werden, die durch eine oder mehrere Trainingstechniken berechnet werden, wie etwa die hierin beschriebenen, ohne darauf beschränkt zu sein.The data center 800 may include tools, services, software, or other resources to train one or more machine learning models or to predict or infer information using one or more machine learning models in accordance with one or more embodiments described herein. For example, a machine learning model(s) may be trained by calculating weighting parameters according to a neural network architecture using software and/or computing resources described above with respect to data center 800. In at least one embodiment, trained or deployed machine learning models corresponding to one or more neural networks may be used to infer or predict information using the resources described above with respect to the data center 800 by using weighting parameters specified by one or more multiple training techniques may be calculated, such as, but not limited to, those described herein.

In mindestens einer Ausführungsform kann das Rechenzentrum 800 CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs und/oder andere Hardware (oder entsprechende virtuelle Rechenressourcen) verwenden, um das Training und/oder die Inferenzierung mit den oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der vorstehend beschriebenen Software- und/oder Hardware-Ressourcen als Dienst konfiguriert sein, um Benutzern das Trainieren oder Durchführen des Inferenzierens von Informationen zu ermöglichen, wie etwa Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.In at least one embodiment, the data center 800 may use CPUs, application specific integrated circuits (ASICs), GPUs, FPGAs, and/or other hardware (or corresponding virtual computing resources) to perform training and/or inference using the resources described above. Additionally, one or more of the software and/or hardware resources described above may be configured as a service to enable users to train or perform inference of information, such as image recognition, speech recognition, or other artificial intelligence services.

BEISPIELHAFTE NETZWERKUMGEBUNGENEXAMPLE NETWORK ENVIRONMENTS

Netzumgebungen, die für die Verwendung beim Implementieren von Ausführungsformen der Offenbarung geeignet sind, können ein oder mehrere Client-Vorrichtungen, Server, netzverbundenen Speicher (network attached storage - NAS), andere Backend-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 700 in 7 implementiert sein - jede Vorrichtung kann z. B. ähnliche Komponenten, Merkmalen und/oder Funktionen der Rechenvorrichtung(en) 700 beinhalten. Zusätzlich, wenn Backend-Vorrichtungen (z. B. Server, NAS usw.) implementiert werden, können die Backend-Vorrichtungen auch Teil eines Rechenzentrums 800 sein, dessen Beispiel in 8 näher beschrieben wird.Network environments suitable for use in implementing embodiments of the disclosure may include one or more client devices, servers, network attached storage (NAS), other backend devices, and/or other device types. The client devices, servers, and/or other types of devices (e.g., any device) may reside on one or more instances of the computing device 700 in 7 be implemented - each device can e.g. B. include similar components, features and/or functions of the computing device(s) 700. Additionally, when implementing backend devices (e.g., servers, NAS, etc.), the backend devices may also be part of a data center 800, an example of which is shown in 8th is described in more detail.

Komponenten einer Netzumgebung können miteinander über ein oder mehrere Netze kommunizieren, die drahtgebunden, drahtlos oder beides sein können. Das Netz kann mehrere Netze oder ein Netz von Netzen beinhalten. Beispielsweise kann das Netz ein oder mehrere Weitverkehrsnetze (WANs), ein oder mehrere lokale Netze (LANs), ein oder mehrere öffentliche Netze wie das Internet und/oder ein öffentliches Telefonvermittlungsnetz (PSTN) und/oder ein oder mehrere private Netze beinhalten. Wenn das Netz ein drahtloses Telekommunikationsnetz beinhaltet, können Komponenten wie etwa eine Basisstation, ein Kommunikationsturm oder sogar Zugangspunkte (sowie andere Komponenten) eine drahtlose Konnektivität bereitstellen.Components of a network environment may communicate with each other over one or more networks, which may be wired, wireless, or both. The network may include multiple networks or a network of networks. For example, the network may include one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks such as the Internet and/or a public switched telephone network (PSTN), and/or one or more private networks. If the network includes a wireless telecommunications network, components such as a base station, a communications tower, or even access points (as well as other components) can provide wireless connectivity.

Kompatible Netzumgebungen können eine oder mehrere Peer-to-Peer-Netzumgebungen beinhalten - in diesem Fall kann ein Server nicht in einer Netzumgebung beinhaltet sein - und eine oder mehrere Client-Server-Netzumgebungen - in diesem Fall können ein oder mehrere Server in einer Netzumgebung beinhaltet sein. In Peer-to-Peer-Netzumgebungen kann die hierin in Bezug auf einen oder mehrere Server beschriebene Funktionalität auf einer beliebigen Anzahl von Client-Vorrichtungen implementiert sein.Compatible network environments may include one or more peer-to-peer network environments - in which case a server may not be included in a network environment - and one or more client-server network environments - in which case one or more servers may be included in a network environment be. In peer-to-peer network environments, the functionality described herein with respect to one or more servers may be implemented on any number of client devices.

In mindestens einer Ausführungsform kann eine Netzumgebung eine oder mehrere cloudbasierte Netzumgebungen, eine verteilte Rechenumgebung, eine Kombination davon usw. beinhalten. Eine cloudbasierte Netzumgebung kann eine Framework-Schicht, einen Aufgaben-Scheduler, einen Ressourcenmanager und ein verteiltes Dateisystem beinhalten, die auf einem oder mehreren Servern implementiert sind, die einen oder mehrere Kernnetznetzeserver und/oder Edge-Server beinhalten können. Eine Framework-Schicht kann ein Framework zur Unterstützung von Software einer Software-Schicht und/oder einer oder mehrerer Anwendungen einer Anwendungsschicht beinhalten. Die Software oder Anwendung(en) können jeweils Web-basierte Dienstsoftware oder Anwendungen beinhalten. In Ausführungsformen können eine oder mehrere der Client-Vorrichtungen die Web-basierte Dienstsoftware oder Anwendungen verwenden (z. B. durch Zugreifen auf die Dienstsoftware und/oder Anwendungen über eine oder mehrere Anwendungsprogrammierschnittstellen (API)). Bei der Framework-Schicht kann es sich um eine Art freies und quelloffenes Software-Webanwendungs-Framework handeln, das etwa ein verteiltes Dateisystem für die Verarbeitung großer Datenmengen (z. B. „Big Data“) verwenden kann, ist aber nicht darauf beschränkt.In at least one embodiment, a network environment may include one or more cloud-based network environments, a distributed computing environment, a combination thereof, etc. A cloud-based network environment may include a framework layer, a task scheduler, a resource manager, and a distributed file system implemented on one or more servers, which may include one or more core network servers and/or edge servers. A framework layer may include a framework for supporting software of a software layer and/or one or more applications of an application layer. The software or application(s) may each include web-based service software or applications. In embodiments, one or more of the client devices may use the web-based service software or applications (e.g., by accessing the service software and/or applications via one or more application programming interfaces (API)). The framework layer may be, but is not limited to, a type of free and open source software web application framework, such as using a distributed file system to process large amounts of data (e.g., "big data").

Eine cloudbasierte Netzumgebung kann Cloud-Computing und/oder Cloud-Speicher bereitstellen, die eine beliebige Kombination von hierin beschriebenen Rechen- und/oder Datenspeicherfunktionen (oder einen oder mehrere Abschnitte davon) ausführen. 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 sein. 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 dem oder den Edge-Servern mindestens einen Teil der Funktionalität zuweisen. Eine cloudbasierte Netzumgebung kann privat sein (z. B. auf eine einzelne Organisation beschränkt), kann öffentlich sein (z. B. für viele Organisationen verfügbar) und/oder eine Kombination davon sein (z. B. eine hybride Cloud-Umgebung).A cloud-based network environment may provide cloud computing and/or cloud storage that perform any combination of computing and/or data storage functions described herein (or one or more portions thereof). Each of these different functions may be distributed across multiple locations of central or core servers (e.g., one or more data centers that may be distributed across a state, region, country, globe, etc.). When a connection to a user (e.g., a client device) is relatively close to one or more edge servers, one or more core servers may assign at least some functionality to the edge server(s). A cloud-based network environment may be private (e.g., limited to a single organization), may be public (e.g., available to many organizations), and/or a combination thereof (e.g., a hybrid cloud environment).

Die Client-Vorrichtungen können mindestens einige der Komponenten, Merkmale und Funktionalitäten der hierin beschriebenen beispielhaften Rechenvorrichtung(en) 700 in Bezug auf 7 beinhalten. Als Beispiel und nicht einschränkend kann eine Client-Vorrichtung als Personal Computer (PC), Laptop-Computer, mobile Vorrichtung, Smartphone, Tablet-Computer, Smartwatch, tragbarer Computer, Personal Digital Assistant (PDA), MP3-Player, Virtual-Reality-Headset, System oder Vorrichtung zur globalen Positionsbestimmung (GPS), Videoplayer, Videokamera, Überwachungsvorrichtung oder -system, Fahrzeug, Boot, Flugschiff, virtuelle Maschine, Drohne, Roboter, tragbare Kommunikationsvorrichtung, Vorrichtung in einem Krankenhaus, Spielgerät oder -system, Unterhaltungssystem, Fahrzeugcomputersystem, eingebetteter Systemcontroller, Fernbedienung, Haushaltsgerät, Unterhaltungselektronikgerät, Workstation, Edge-Vorrichtung, eine beliebige Kombination dieser skizzierten Vorrichtungen oder jede beliebige andere geeignete Vorrichtung verkörpert sein.The client devices may include at least some of the components, features, and functionality of the example computing device(s) 700 described herein 7 include. By way of example and not limitation, a client device may be a personal computer (PC), laptop computer, mobile device, smartphone, tablet computer, smartwatch, wearable computer, personal digital assistant (PDA), MP3 player, virtual reality Headset, global positioning system or device (GPS), video player, video camera, surveillance device or system, vehicle, boat, aircraft, virtual machine, drone, robot, portable communication device, hospital device, gaming device or system, entertainment system, vehicle computer system , embedded system controller, remote control, home appliance, consumer electronics device, workstation, edge device, any combination of these outlined devices, or any other suitable device.

Die Offenbarung kann im allgemeinen Kontext von Computercode- oder maschinenverwendbaren Anweisungen, einschließlich computerausführbarer Anweisungen wie Programmmodulen, die von einem Computer oder einem anderen Computer, wie einem Personal Data Assistent oder einer anderen Handheld-Vorrichtung, ausgeführt werden, beschrieben 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 Vielfalt von Systemkonfigurationen praktiziert werden, einschließlich Handheld-Vorrichtungen, Unterhaltungselektronik, Universalcomputern, spezielleren Rechenvorrichtungen usw. Die Offenbarung kann auch in verteilten Rechenumgebungen praktiziert werden, in denen Aufgaben von entfernten Verarbeitungsvorrichtungen, die über ein Kommunikationsnetz verbunden sind, durchgeführt werden.The disclosure may be described in the general context of computer code or machine-usable instructions, including computer-executable instructions such as program modules that are executed by a computer or another computer, such as a personal data assistant or other handheld device. In general, program modules including routines, programs, objects, components, data structures, etc. refer to code that performs specific tasks or implements specific abstract data types. The disclosure may be practiced in a variety of system configurations, including handheld devices, consumer electronics, general purpose computers, more specialized computing devices, etc. The disclosure may also be practiced in distributed computing environments in which tasks are performed by remote processing devices connected via a communications network .

Im hier verwendeten Sinne ist der Gebrach von „und/oder“ in Bezug auf zwei oder mehr Elemente als nur ein Element oder eine Kombination von Elementen auszulegen. Zum Beispiel kann „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder Elemente A, B und C enthalten. 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 umfassen. 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.As used herein, the use of “and/or” in reference to two or more elements is to be construed as just one element or a combination of elements. For example, "Element A, Element B and/or Element C" can only contain Element A, only Element B, only Element C, Element A and Element B, Element A and Element C, Element B and Element C, or Elements A, B and C included. Additionally, “at least one of Element A or Element B” may include at least one of Element A, at least one of Element B, or at least one of Element A and at least one of Element B. Further, “at least one of element A and element B” may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B.

Der Gegenstand der vorliegenden Offenbarung wird hierin genau beschrieben, um gesetzliche Anforderungen zu erfüllen. Die Beschreibung selbst soll jedoch den Schutzumfang dieser Offenbarung nicht einschränken. Vielmehr haben die Erfinder in Erwägung gezogen, dass der beanspruchte Gegenstand auch auf andere Weise verkörpert 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. Auch wenn die Begriffe „Schritt“ und/oder „Block“ in diesem Dokument verwendet werden können, um verschiedene Elemente der verwendeten Methoden zu bezeichnen, sollten die Begriffe nicht als eine bestimmte Reihenfolge unter den oder zwischen den verschiedenen hierin genannten Schritten voraussetzend interpretiert werden, es sei denn, die Reihenfolge der einzelnen Schritte wird ausdrücklich beschrieben.The subject matter of the present disclosure is detailed herein to meet legal requirements. However, the description itself is not intended to limit the scope of this disclosure. Rather, the inventors have contemplated that the claimed subject matter could be embodied in other ways to include other steps or combinations of steps similar to those described in this document in connection with other current or future technologies. Although the terms "step" and/or "block" may be used in this document to refer to different elements of the methods used, the terms should not be interpreted as implying any particular order among or between the various steps mentioned herein. unless the sequence of the individual steps is expressly described.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

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.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 16101232 [0082]US 16101232 [0082]

Claims (20)

Prozessor, umfassend: eine oder mehrere Schaltungen, um unter Verwendung eines maschinellen Lernmodells eine oder mehrere Steuerungsoperationen für eine Ego-Maschine zu berechnen, wobei ein oder mehrere Parameter des maschinellen Lernmodells während des Trainings aktualisiert werden, basierend zumindest teilweise auf einem Datensatz, der synthetische Daten umfasst, die unter Verwendung eines Simulators erzeugt wurden, wobei ein oder mehrere Standorte eines oder mehrerer Objekte in einer durch die synthetischen Daten dargestellten Umgebung zumindest teilweise basierend auf einem oder mehreren räumlichen Prioren, die der Umgebung entsprechen, abgetastet werden.Processor comprising: one or more circuits to calculate one or more control operations for an ego machine using a machine learning model, wherein one or more parameters of the machine learning model are updated during training based at least in part on a data set that is synthetic Data generated using a simulator, wherein one or more locations of one or more objects in an environment represented by the synthetic data are sampled based at least in part on one or more spatial priors corresponding to the environment. Prozessor nach Anspruch 1, wobei der eine oder die mehreren räumlichen Priore erzeugt werden, indem der eine oder die mehreren Standorte proportional zu einem longitudinalen Abstand des einen oder der mehreren Objekte zu einer synthetischen Ego-Maschine, die durch die synthetischen Daten dargestellt wird, abgetastet werden.Processor after Claim 1 , wherein the one or more spatial priors are generated by sampling the one or more locations proportional to a longitudinal distance of the one or more objects to a synthetic ego machine represented by the synthetic data. Prozessor nach Anspruch 1, wobei der Datensatz eine Kombination aus den synthetischen Daten und echten Daten umfasst.Processor after Claim 1 , where the data set includes a combination of the synthetic data and real data. Prozessor nach Anspruch 3, wobei das maschinelle Lernmodell zumindest teilweise unter Verwendung eines Diskriminators trainiert wird, der die Ausgaben des maschinellen Lernmodells als den synthetischen Daten oder den echten Daten entsprechend klassifiziert.Processor after Claim 3 , wherein the machine learning model is trained at least in part using a discriminator that classifies the outputs of the machine learning model as corresponding to the synthetic data or the real data. Prozessor nach Anspruch 1, wobei das maschinengelernte Modell zumindest teilweise unter Verwendung von Pseudo-Kennzeichnungen trainiert wird, wobei eine oder mehrere der Pseudo-Kennzeichnungen während des Trainings des maschinengelernten Modells unter Verwendung von Ausgaben des maschinengelernten Modells erzeugt werden, die eine Konfidenz oberhalb einer Konfidenzschwelle aufweisen.Processor after Claim 1 , wherein the machine-learned model is trained at least in part using pseudo-labels, wherein one or more of the pseudo-labels are generated during training of the machine-learned model using outputs of the machine-learned model that have a confidence above a confidence threshold. Prozessor nach Anspruch 1, wobei der eine oder die mehreren räumlichen Priore unabhängig von einer Struktur eines Pfades einer synthetischen Ego-Maschine durch die Umgebung abgetastet werden.Processor after Claim 1 , wherein the one or more spatial priors are sampled independently of a structure of a synthetic ego machine path through the environment. Prozessor nach Anspruch 1, wobei ein oder mehrere Simulatorparameter abgetastet werden, um die synthetischen Daten zu erzeugen, wobei der eine oder die mehreren Simulatorparameter mindestens eine Anzahl von Objekten des einen oder der mehreren Objekte, eine oder mehrere Posen des einen oder der mehreren Objekte, eine oder mehrere Farben des einen oder der mehreren Objekte, Farben eines oder mehrerer Umgebungsmerkmale oder eine oder mehrere Wetterbedingungen einer virtuellen Umgebung beinhalten.Processor after Claim 1 , wherein one or more simulator parameters are sampled to generate the synthetic data, wherein the one or more simulator parameters include at least a number of objects of the one or more objects, one or more poses of the one or more objects, one or more colors of the one or more objects, colors of one or more environmental features or one or more weather conditions of a virtual environment. Prozessor nach Anspruch 1, wobei der räumliche Prior einem Ziel-Prior entspricht, der zumindest teilweise basierend auf einer Verteilung eines echten Datensatzes erzeugt wird.Processor after Claim 1 , where the spatial prior corresponds to a target prior generated based at least in part on a distribution of a real data set. Prozessor nach Anspruch 1, wobei der Prozessor mindestens eines der folgenden Elemente umfasst: ein Steuerungssystem für eine autonome oder halbautonome Maschine; ein Wahrnehmungssystem für eine autonome oder halbautonome Maschine; ein System zum Durchführen von Operationen für Simulationen; ein System zum Durchführen von Operationen für digitale Zwillinge; ein System zum Durchführen von Simulationen für den Leichttransport; ein System zum Durchführen von kollaborativer Inhaltserstellung für 3D-Assets; ein System zum Durchführen von Deep Learning-Operationen; ein System, das unter Verwendung einer Edge-Vorrichtung implementiert ist; ein System, das unter Verwendung eines Roboters implementiert ist; ein System zum Durchführen von Konversations-KI-Operationen; ein System zum Erzeugen synthetischer Daten; ein System, das eine oder mehrere virtuelle Maschinen (VMs) enthält; ein System, das zumindest teilweise in einem Rechenzentrum implementiert ist; oder ein System, das zumindest teilweise unter Verwendung von Cloud-Rechenressourcen implementiert ist.Processor after Claim 1 , wherein the processor comprises at least one of the following elements: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing operations for simulations; a system for performing digital twin operations; a system for performing simulations for light transportation; a system for performing collaborative content creation for 3D assets; a system for performing deep learning operations; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for generating synthetic data; a system that contains one or more virtual machines (VMs); a system that is at least partially implemented in a data center; or a system implemented at least in part using cloud computing resources. System umfassend: eine oder mehrere Verarbeitungseinheiten, die eine Verarbeitungsschaltung für Folgendes umfassen: Abtasten eines oder mehrerer Objekt-Standorte aus einer Wahrscheinlichkeitsverteilung, die geringere Wahrscheinlichkeiten für den einen oder die mehreren Objekt-Standorte enthält, wenn der longitudinale Abstand von einem Standort einer Ego-Maschine zunimmt; Erzeugen, unter Verwendung eines neuronalen NetzNetzes und basierend zumindest teilweise auf dem einen oder den mehreren Objekt-Standorten, synthetischer Daten, die ein oder mehrere Objekte an dem einen oder den mehreren Objekt-Standorten enthalten; und Aktualisieren, zumindest teilweise basierend auf den synthetischen Daten und den realen Daten, eines oder mehrerer Parameter eines maschinellen Lernmodells unter Verwendung eines Diskriminators, der Ausgaben des maschinellen Lernmodells als den synthetischen Daten oder den realen Daten entsprechend klassifiziert.System comprising: one or more processing units comprising processing circuitry for: sampling one or more object locations from a probability distribution containing lower probabilities for the one or more object locations when the longitudinal distance from an ego location machine increases; Generate, using a neural network network and based at least in part on the one or more object locations, synthetic data containing one or more objects at the one or more object locations; and updating, based at least in part on the synthetic data and the real data, one or more parameters of a machine learning model using a discriminator that classifies outputs of the machine learning model as corresponding to the synthetic data or the real data. System nach Anspruch 10, wobei der eine oder die mehreren Parameter zumindest teilweise basierend auf der Verwendung einer oder mehrerer Pseudo-Kennzeichnungen aktualisiert werden, die zumindest teilweise basierend auf einer oder mehreren Ausgaben des maschinellen Lernmodells bestimmt werden, die eine Konfidenz oberhalb einer Konfidenzschwelle aufweisen.System after Claim 10 , wherein the one or more parameters are updated at least in part based on the use of one or more pseudo-labels determined at least in part based on one or more outputs of the machine learning model that have a confidence above a confidence threshold. System nach Anspruch 10, wobei die Wahrscheinlichkeitsverteilung einem räumlichen Prior entspricht, der unabhängig von der Struktur eines Pfades der Ego-Maschine ist.System after Claim 10 , where the probability distribution corresponds to a spatial prior that is independent of the structure of an ego machine path. System nach Anspruch 10, wobei eine oder mehrere Wahrscheinlichkeiten der Wahrscheinlichkeitsverteilung proportional zum longitudinalen Abstand abnehmen.System after Claim 10 , where one or more probabilities of the probability distribution decrease in proportion to the longitudinal distance. System nach Anspruch 10, wobei ein Wert einer Verlustfunktion, die von dem neuronalen Netz verwendet wird, höher ist, wenn der Diskriminator eine Ausgabe der Ausgaben als den synthetischen Daten entsprechend klassifiziert.System after Claim 10 , wherein a value of a loss function used by the neural network is higher when the discriminator classifies an output of the outputs as corresponding to the synthetic data. System nach Anspruch 10, wobei das System mindestens eines der folgenden Systeme umfasst: ein Steuerungssystem für eine autonome oder halbautonome Maschine; ein Wahrnehmungssystem für eine autonome oder halbautonome Maschine; ein System zum Durchführen von Operationen für Simulationen; ein System zum Durchführen von Operationen für digitale Zwillinge; ein System zum Durchführen von Simulationen für den Leichttransport; ein System zum Durchführen von kollaborativer Inhaltserstellung für 3D-Assets; ein System zum Durchführen von Deep Learning-Operationen; ein System, das unter Verwendung einer Edge-Vorrichtung implementiert ist; ein System, das unter Verwendung eines Roboters implementiert ist; ein System zum Durchführen von Konversations-KI-Operationen; ein System zum Erzeugen synthetischer Daten; ein System, das eine oder mehrere virtuelle Maschinen (VMs) enthält; ein System, das zumindest teilweise in einem Rechenzentrum implementiert ist; oder ein System, das zumindest teilweise unter Verwendung von Cloud-Rechenressourcen implementiert ist.System after Claim 10 , wherein the system comprises at least one of the following systems: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing operations for simulations; a system for performing digital twin operations; a system for performing simulations for light transportation; a system for performing collaborative content creation for 3D assets; a system for performing deep learning operations; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for generating synthetic data; a system that contains one or more virtual machines (VMs); a system that is at least partially implemented in a data center; or a system implemented at least in part using cloud computing resources. Verfahren, umfassend: Berechnen einer oder mehrerer Kontrolloperationen für eine Ego-Maschine, basierend zumindest teilweise auf einem maschinellen Lernmodell, wobei ein oder mehrere Parameter des maschinellen Lernmodells während des Trainings aktualisiert werden, basierend zumindest teilweise auf synthetischen Daten, die unter Verwendung eines Simulators erzeugt werden, wobei ein oder mehrere Standorte eines oder mehrerer Objekte, die durch die synthetischen Daten repräsentiert werden, zumindest teilweise auf der Grundlage eines räumlichen Priors abgetastet werden.A method comprising: computing one or more control operations for an ego machine based at least in part on a machine learning model, wherein one or more parameters of the machine learning model are updated during training based at least in part on synthetic data generated using a simulator wherein one or more locations of one or more objects represented by the synthetic data are sampled at least in part based on a spatial prior. Verfahren nach Anspruch 16, wobei der räumliche Prior durch Abtasten des einen oder der mehreren Standorte proportional zu einem longitudinalen Abstand des einen oder der mehreren Objekte zu einer synthetischen Ego-Maschine, die durch die synthetischen Daten dargestellt wird, erzeugt wird.Procedure according to Claim 16 , wherein the spatial prior is generated by sampling the one or more locations proportional to a longitudinal distance of the one or more objects to a synthetic ego machine represented by the synthetic data. Verfahren nach Anspruch 16, wobei das maschinelle Lernmodell zumindest teilweise unter Verwendung eines Diskriminators trainiert wird.Procedure according to Claim 16 , where the machine learning model is at least partially trained using a discriminator. Verfahren nach Anspruch 16, wobei das maschinengelernte Modell zumindest teilweise unter Verwendung eines oder mehrerer Pseudo-Labels trainiert wird, wobei die eine oder mehreren Pseudo-Kennzeichnungen während des Trainings des maschinengelernten Modells unter Verwendung von Ausgaben des maschinengelernten Modells erzeugt werden, die eine Konfidenz oberhalb einer Konfidenzschwelle aufweisen.Procedure according to Claim 16 , wherein the machine-learned model is trained at least in part using one or more pseudo-labels, the one or more pseudo-labels being generated during training of the machine-learned model using outputs of the machine-learned model that have a confidence above a confidence threshold. Verfahren nach Anspruch 16, wobei der Prior einem Ziel-Prior entspricht, der zumindest teilweise basierend auf einer Verteilung eines realen Datensatzes erzeugt wird.Procedure according to Claim 16 , where the prior corresponds to a target prior generated at least in part based on a distribution of a real data set.
DE112022000498.3T 2021-05-28 2022-05-27 TRAINING PERCEPTION MODELS USING SYNTHETIC DATA FOR AUTONOMOUS SYSTEMS AND APPLICATIONS Pending DE112022000498T5 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163194668P 2021-05-28 2021-05-28
US63/194,668 2021-05-28
PCT/US2022/031426 WO2022251692A1 (en) 2021-05-28 2022-05-27 Training perception models using synthetic data for autonomous systems and applications

Publications (1)

Publication Number Publication Date
DE112022000498T5 true DE112022000498T5 (en) 2023-11-02

Family

ID=88307009

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022000498.3T Pending DE112022000498T5 (en) 2021-05-28 2022-05-27 TRAINING PERCEPTION MODELS USING SYNTHETIC DATA FOR AUTONOMOUS SYSTEMS AND APPLICATIONS

Country Status (1)

Country Link
DE (1) DE112022000498T5 (en)

Similar Documents

Publication Publication Date Title
DE112021000135T5 (en) SENSOR FUSION FOR AUTONOMOUS MACHINE APPLICATIONS THROUGH MACHINE LEARNING
DE112020006410T5 (en) THREE-DIMENSIONAL INTERSECTION STRUCTURE PREDICTION FOR AUTONOMOUS DRIVING APPLICATIONS
DE112020003043T5 (en) DETECTION AND CLASSIFICATION OF CROSSROADS REGIONS FOR AUTONOMOUS MACHINE APPLICATIONS
DE112020002602T5 (en) MULTI-OBJECT TRACKING USING CORRELATION FILTERS IN VIDEO ANALYSIS APPLICATIONS
DE112020002126T5 (en) DETECTION OF CROSSING POSES IN AUTONOMOUS MACHINE APPLICATIONS
DE112020000413T5 (en) DETECTION OF ORIENTATION POINTS USING CURVE FITTING FOR APPLICATIONS FOR AUTONOMOUS DRIVING
DE112020001897T5 (en) Training of neural networks using basic truth data supplemented with map information for autonomous machine applications
DE112019006484T5 (en) DETECTION OF DISTANCE TO OBSTACLES IN AUTONOMOUS MACHINE APPLICATIONS
DE112020002166T5 (en) SIMULATION OF REALISTIC TEST DATA FROM TRANSFORMED REAL WORLD SENSOR DATA FOR AUTONOMOUS MACHINE APPLICATIONS
DE112019000279T5 (en) CONTROLLING AUTONOMOUS VEHICLES USING SAFE ARRIVAL TIMES
DE112020006404T5 (en) PLANNING AND CONTROL OF LANE CHANGES IN AUTONOMOUS MACHINE APPLICATIONS
DE102021123159A1 (en) ADAPTIVE OBJECT TRACKING ALGORITHM FOR AUTONOMOUS MACHINE APPLICATIONS
DE102021100065A1 (en) USE OF NEURONAL NETWORKS FOR ERROR DETECTION IN APPLICATIONS FOR AUTONOMOUS DRIVING
DE112020001400T5 (en) ITERATIVE GENERATION OF SPATIAL GRAPHS
DE112021001994T5 (en) MODEL-BASED REINFORCEMENT LEARNING FOR BEHAVIOR PREDICTION IN AUTONOMOUS SYSTEMS AND APPLICATIONS
DE102019113114A1 (en) BEHAVIOR-CONTROLLED ROUTE PLANNING IN AUTONOMOUS MACHINE APPLICATIONS
DE102021129528A1 (en) Detection of emergency vehicles for autonomous driving applications
DE112020006181T5 (en) EYE DETERMINATION WITH GLARE AS INPUT
DE102022121121A1 (en) Object tracking using LiDAR data for autonomous machine applications
DE112021000104T5 (en) PROJECTING IMAGES TAKEN WITH FISHEYE LENSES FOR FEATURE RECOGNITION IN AUTONOMOUS MACHINE APPLICATIONS
DE102022104026A1 (en) GENERATION OF GROUND TRUTH DATA FOR PERCEPTION BY DEEP NEURAL NETWORKS IN AUTONOMOUS DRIVING APPLICATIONS
DE102020130749A1 (en) SYSTEM FOR MACHINE LEARNING FOR EYE DETERMINATION WITH ADAPTIVE WEIGHTING OF INPUTS
DE102022124361A1 (en) VISIBILITY ASSESSMENT USING DEEP LEARNING IN AUTONOMOUS MACHINE APPLICATIONS
DE102022107848A1 (en) SYSTEM AND PROCEDURE FOR UPDATING HIGH RESOLUTION MAPS
DE102021128559A1 (en) SECURITY DECOMPOSITION FOR PATH DETERMINATION IN AUTONOMOUS SYSTEMS

Legal Events

Date Code Title Description
R012 Request for examination validly filed