DE102021125234A1 - Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken - Google Patents

Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken Download PDF

Info

Publication number
DE102021125234A1
DE102021125234A1 DE102021125234.2A DE102021125234A DE102021125234A1 DE 102021125234 A1 DE102021125234 A1 DE 102021125234A1 DE 102021125234 A DE102021125234 A DE 102021125234A DE 102021125234 A1 DE102021125234 A1 DE 102021125234A1
Authority
DE
Germany
Prior art keywords
image
background
data
vehicle
mask
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
DE102021125234.2A
Other languages
English (en)
Inventor
Nishant Puri
Sakthivel Sivaraman
Rajath Shetty
Niranjan Avadhanam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102021125234A1 publication Critical patent/DE102021125234A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • G06T5/30Erosion or dilatation, e.g. thinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • 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
    • G06V10/7747Organisation of the process, 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
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/11Hand-related biometrics; Hand pose recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/113Recognition of static hand signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Image Analysis (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

In verschiedenen Beispielen kann ein Hintergrund eines Objekts verändert werden, um ein Trainingsbild zu erzeugen. Eine Segmentierungsmaske kann erstellt werden und zur Erzeugung eines Objektbilds verwendet werden, das Bilddaten enthält, die das Objekt repräsentieren. Das Objektbild kann in einen anderen Hintergrund integriert und zur Datenerweiterung bei einem Training eines neuronalen Netzwerks verwendet werden. Die Datenerweiterung kann auch unter Verwendung einer Farbtonanpassung (z.B. des Objektbilds) und/oder einer Darstellung dreidimensionaler Erfassungsdaten, die dem Objekt aus ausgewählten Ansichten entsprechen, erfolgen. Inferenzierungswerte können analysiert werden, um einen Hintergrund für ein Bild auszuwählen, das in einen Trainingsdatensatz aufzunehmen ist. Während des Trainings (z.B. zwischen Epochen) können Hintergründe ausgewählt und Trainingsbilder iterativ zu einem Trainingsdatensatz hinzugefügt werden. Darüber hinaus kann eine frühe oder späte Verschmelzung eingesetzt werden, die Objektmaskendaten verwendet, um die von einem neuronalen Netzwerk, das unter Verwendung von Objektmaskendaten trainiert wurde, durchgeführte Inferenzierung zu verbessern.

Description

  • HINTERGRUND
  • Beim Training eines neuronalen Netzwerks zur Durchführung einer prädiktiven Aufgabe wie beispielsweise Objektklassifizierung wird die Genauigkeit des trainierten neuronalen Netzwerks oft durch die Qualität des Trainingsdatensatzes beschränkt. Damit das Training zu einem robusten neuronalen Netzwerk führt, sollte das Netzwerk mit anspruchsvollen Trainingsbildern trainiert werden. Beim Training eines neuronalen Netzwerks für die Erkennung von Handhaltungen bzw. Posen der Hand (z.B. Daumen hoch, Friedenszeichen, Faust usw.) kann das Netzwerk Schwierigkeiten haben, Posen vor bestimmten Umgebungsmerkmalen zu erkennen. Wenn eine Pose ausgestreckte Finger enthält, kann das Netzwerk gut funktionieren, wenn die Pose vor einer überwiegend einfarbigen Umgebung liegt, aber Schwierigkeiten haben, wenn die Pose vor einer Umgebung liegt, die bestimmte Farbmuster enthält. In einem weiteren Beispiel kann das Netzwerk Schwierigkeiten mit bestimmten Posen aus bestimmten Winkeln haben oder wenn die Umgebung und die Hand einen ähnlichen Farbton haben.
  • Ob ein bestimmtes Trainingsbild für ein neuronales Netzwerk eine Herausforderung darstellt, kann jedoch von vielen Faktoren abhängen, z.B. von der zu erfüllenden Vorhersageaufgabe, der Architektur des neuronalen Netzwerks und anderen Trainingsbildern, die das Netzwerk sieht. Es ist daher schwierig, durch Vorhersagen, welche Trainingsbilder zum Trainieren des Netzwerks verwendet werden sollten, einen Trainingsdatensatz zu erstellen, der zu einem robusten Netzwerk führt. Es ist zwar möglich abzuschätzen, welche Merkmale der Trainingsbilder für ein neuronales Netzwerk eine Herausforderung darstellen könnten. Doch selbst wenn eine solche Schätzung möglich und genau ist, ist es unter Umständen nicht möglich oder praktisch, genügend Bilder zu erhalten, die diese Merkmale aufweisen, um das Netzwerk ausreichend zu trainieren.
  • KURZBESCHREIBUNG
  • Ausführungsformen der Erfindung beziehen sich auf Datenerweiterung einschließlich Hintergrundfilterung für eine robuste Vorhersage unter Verwendung neuronaler Netzwerke. Es werden Systeme und Verfahren offenbart, die Techniken zur Datenerweiterung, z.B. solche, die auf Hintergrundfilterung basieren, bereitstellen, welche zur Erhöhung der Robustheit trainierter neuronaler Netzwerke verwendet werden können.
  • Im Gegensatz zu herkömmlichen Systemen sieht die Erfindung vor, den Hintergrund eines Objekts zu verändern, um ein Trainingsbild zu erzeugen. Eine Segmentierungsmaske kann erstellt und zur Erzeugung eines Objektbilds verwendet werden, das Bilddaten enthält, die das Objekt repräsentieren. Das Objektbild kann in einen anderen Hintergrund integriert und zur Datenerweiterung beim Training eines neuronalen Netzwerks verwendet werden. Andere Aspekte der Erfindung sehen eine Datenerweiterung durch Farbtonanpassung (z.B. des Objektbilds) und/oder Rendern dreidimensionaler Erfassungsdaten, die dem Objekt aus ausgewählten Blickrichtungen entsprechen, vor. Die Erfindung sieht darüber hinaus die Analyse von Inferenzierungswerten vor, um einen Hintergrund für ein Bild auszuwählen, der in einen Trainingsdatensatz aufgenommen werden soll. Hintergründe können während des Trainings (z.B. zwischen Epochen) iterativ ausgewählt und Trainingsbilder können zu einem Trainingsdatensatz hinzugefügt werden. Darüber hinaus sieht die Erfindung eine frühe oder späte Verschmelzung unter Verwendung von Objektmaskendaten vor, um eine Inferenzierung zu verbessern, die von einem neuronalen Netzwerk durchgeführt wurde, das unter Verwendung von Objektmaskendaten trainiert wurde.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zur Datenerweiterung einschließlich Hintergrundfilterung für eine robuste Vorhersage unter Verwendung neuronaler Netzwerke werden nachstehend unter Bezugnahme auf die beigefügten Zeichnungsfiguren näher beschrieben, wobei:
    • 1 ein Datenflussdiagramm ist, das einen beispielhaften Prozess veranschaulicht zum Trainieren eines oder mehrerer Modelle maschinellen Lernens basierend zumindest auf der Integration von Objektbildern mit Hintergründen, gemäß einigen Ausführungsformen der Erfindung;
    • 2 ein Datenflussdiagramm ist, das ein einen beispielhaften Prozess veranschaulicht zum Erzeugen eines Objektbilds und Integrieren des Objektbilds mit einem oder mehreren Hintergründen, gemäß einigen Ausführungsformen der Erfindung;
    • 3 Beispiele einer Vorverarbeitung enthält, die zur Erzeugung einer Objektmaske verwendet werden kann, die zur Erzeugung von Objektbildern verwendet wird, gemäß einigen Ausführungsformen der Erfindung;
    • 4 zeigt, wie eine dreidimensionale Aufnahme eines Objekts aus mehreren Ansichten gerastert werden kann, gemäß einigen Ausführungsformen der Erfindung;
    • 5A ein Datenflussdiagramm ist, das ein Beispiel einer Inferenzierung unter Verwendung eines Modells maschinellen Lernens und einer frühzeitigen Verschmelzung von Objektmaskendaten zeigt, gemäß einigen Ausführungsformen der Erfindung;
    • 5B ein Datenflussdiagramm ist, das eine Beispielhafte Inferenzierung unter Verwendung eines Modells maschinellen Lernens und später Verschmelzung von Objektmaskendaten zeigt, gemäß einigen Ausführungsformen der Erfindung;
    • 6 ein Flussdiagramm ist, das ein Verfahren zum Trainieren eines oder mehrerer Modelle maschinellen Lernens zeigt, die zumindest auf einer Integration von Objektbildern mit mindestens einem Hintergrund basieren, gemäß einigen Ausführungsformen der Erfindung;
    • 7 ein Flussdiagramm ist, das ein Verfahren zur Inferenzierung unter Verwendung eines Modells maschinellen Lernens zeigt, bei dem Eingaben einer Maske eines Bilds und mindestens einem Teil des Bilds entsprechen, gemäß einigen Ausführungsformen der Erfindung;
    • 8 ein Flussdiagramm ist, das ein Verfahren zum Auswählen eines Hintergrunds eines Objekts zum Trainieren eines oder mehrerer Modelle maschinellen Lernens zeigt, gemäß einigen Ausführungsformen der Erfindung;
    • 9 ein Blockdiagramm ist eines beispielhaften Computergeräts, das zur Verwendung bei der Implementierung einiger Ausführungsformen der Erfindung geeignet ist;
    • 10 ein Blockdiagramm ist eines beispielhaften Rechenzentrums, das zur Verwendung bei der Implementierung einiger Ausführungsformen der Erfindung geeignet ist;
    • 11A eine Darstellung eines beispielhaften autonomen Fahrzeugs ist, gemäß einigen Ausführungsformen der Erfindung;
    • 11B ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug aus 11A ist, gemäß einigen Ausführungsformen der Erfindung;
    • 11C ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug von 11A ist, gemäß einigen Ausführungsformen der Erfindung; und
    • 11D ein Systemdiagramm für die Kommunikation zwischen einem oder mehreren Cloud-basierten Server(n) und dem beispielhaften autonomen Fahrzeug aus 11A ist, gemäß einigen Ausführungsformen der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden Systeme und Verfahren mit Bezug zu Datenerweiterung einschließlich Hintergrundfilterung für eine robuste Vorhersage unter Verwendung neuronaler Netzwerke offenbart. Ausführungsformen der Erfindung beziehen sich auf die Datenerweiterung einschließlich der Hintergrundfilterung für eine robuste Vorhersage unter Verwendung neuronaler Netzwerke. Es werden Systeme und Verfahren offenbart, die Techniken zur Datenerweiterung bereitstellen, wie z.B. solche, die auf Hintergrundfilterung basieren, die zur Erhöhung der Robustheit trainierter neuronaler Netzwerke verwendet werden können.
  • Offenbarte Ausführungsformen können unter Verwendung einer Vielzahl unterschiedlicher Systeme implementiert werden, z.B. in Automobilsystemen, Robotern, Luftfahrtsystemen, medizinischen Systemen, Bootssystemen, intelligenten Bereichsüberwachungssystemen, Simulationssystemen und/oder anderen Technologiebereichen. Offenbarte Ansätze können für jede wahrnehmungsbasierte oder allgemeiner bildbasierte Analyse unter Verwendung von Modellen maschinellen Lernens verwendet werden, wie z.B. für die Überwachung und/oder Verfolgung von Objekten und/oder der Umgebung.
  • Anwendungen offenbarter Techniken beinhalten multimodale Sensorschnittstellen, die im Kontext der Gesundheitsfürsorge eingesetzt werden können. Beispielsweise kann ein Patient, der intubiert ist oder aus anderen Gründen nicht sprechen kann, mit Hilfe von Posen oder Gesten kommunizieren, die von einem Computersystem interpretiert werden. Anwendungen offenbarter Techniken beinhalten ferner autonomes Fahren und/oder die Steuerung oder Interaktion von Fahrzeugen. Beispielsweise können offenbarte Techniken verwendet werden, um eine Handposen- oder Gestenerkennung für die Erfassung in der Kabine des Fahrzeugs 1100 der 11A-11D zur Steuerung von Komfortfunktionen, wie z.B. die Steuerung von Multimedia-Optionen, zu implementieren. Die Erkennung von Handhaltung oder Gesten kann auch auf die äußere Umgebung des Fahrzeugs 1100 angewandt werden, um eine Vielzahl von Steueroperationen für das autonome Fahren zu steuern, einschließlich Funktionen fortschrittlicher Fahrerassistenzsysteme (ADAS; advanced driver assistance systems).
  • Als verschiedene Beispiele können offenbarte Techniken in Systemen implementiert werden, die ein oder mehrere System(e) zur Durchführung von Operationen konversationeller KI- oder persönlicher Assistenz, ein System zur Durchführung von Simulationsoperationen, ein System zur Durchführung von Simulationsoperationen zum Testen oder Validieren von Anwendungen autonomer Maschinen, ein System zur Durchführung von Deep-Learning-Operationen, ein System, das unter Verwendung eines Edge-Geräts implementiert ist, ein System, das eine oder mehrere virtuelle Maschinen (VMs) integriert, ein System, das zumindest teilweise in einem Daten- bzw. Rechenzentrum implementiert ist, oder ein System, das zumindest teilweise unter Verwendung von Cloud-Computing-Ressourcen implementiert ist, umfassen oder darin enthalten sind.
  • Im Gegensatz zu herkömmlichen Systemen sieht die Erfindung ein Identifizierung eines Bereichs in einem Bild vor, der einem Objekt entspricht, und die Verwendung des Bereichs zum Filtern, Entfernen, Ersetzen oder anderweitigen Modifizieren des Hintergrunds des Objekts und/oder des Objekts selbst, um ein Trainingsbild zu erzeugen. In Übereinstimmung mit der Erfindung kann eine Segmentierungsmaske erzeugt werden, die ein oder mehrere Segmente identifiziert, die dem Objekt entsprechen, und ein oder mehrere Segmente, die einem Hintergrund des Objekts in einem Quellbild entsprechen. Die Segmentierungsmaske kann auf das Quellbild angewendet werden, um den Bereich zu identifizieren, der dem Objekt entspricht, beispielsweise um ein Objektbild zu erzeugen, das Bilddaten enthält, die das Objekt repräsentieren. Das Objektbild kann in einen anderen Hintergrund integriert und zur Datenerweiterung beim Training eines neuronalen Netzwerks verwendet werden. Andere Aspekte der Erfindung sehen eine Datenerweiterung unter Verwendung einer Farbtonanpassung (z.B. des Objektbilds) und/oder ein Rendern dreidimensionaler Erfassungsdaten vor, die dem Objekt aus ausgewählten Blickrichtungen entsprechen.
  • Weitere Aspekte der Erfindung stellen Ansätze zum Auswählen eines Hintergrunds eines Objekts zum Trainieren eines neuronalen Netzwerks bereit. In Übereinstimmung mit der Erfindung kann ein Modell maschinellen Lernens (MLM; machine learning model) zumindest teilweise trainiert werden, und können Inferenzierungsdaten durch das MLM unter Verwendung von Bildern erzeugt werden, die verschiedene Hintergründe beinhalten. Das MLM kann das neuronale Netzwerk während des Trainings oder ein anderes MLM umfassen. Inferenzierungswerte, die den Inferenzierungsdaten entsprechen, können analysiert werden, um ein oder mehrere Merkmale von Trainingsbildern auszuwählen, wie z.B. einen bestimmten Hintergrund oder Hintergrundtyp für ein Bild, das in einen Trainingsdatensatz aufgenommen werden soll. Das Bild kann aus vorhandenen Bildern ausgewählt oder unter Verwendung eines Objektbilds und eines Hintergrunds unter Verwendung irgendeines geeigneten Ansatzes, wie beispielsweise den hierin beschriebenen, erzeugt werden. In mindestens einer Ausführungsform können ein oder mehrere Merkmale ausgewählt werden und können ein oder mehrere entsprechende Trainingsbilder während des Trainings iterativ zu einem Trainingsdatensatz hinzugefügt werden.
  • Die Erfindung stellt ferner Ansätze bereit für die Verwendung von Objektmaskendaten zur Verbesserung der Inferenzierung, die von einem neuronalen Netzwerk durchgeführt wird, das unter Verwendung von Objektmaskendaten trainiert wurde. Eine späte Fusion bzw. Verschmelzung kann durchgeführt werden, wo ein Satz von Inferenzierungsdaten aus einem Quellbild und ein anderer Satz von Inferenzierungsdaten aus einem Bild erzeugt ist, das Objektmaskendaten erfasst, wie z.B. das Objektbild (z.B. unter Verwendung zweier Kopien des neuronalen Netzwerks). Die Sätze von Inferenzierungsdaten können verschmolzen und zur Aktualisierung des neuronalen Netzwerks verwendet werden. In weiteren Beispielen kann eine frühe Verschmelzung durchgeführt werden, bei der das Quellbild und das Bild, das die Objektmaskendaten erfasst, kombiniert werden, und können aus dem kombinierten Bild Inferenzierungsdaten erzeugt werden. Die Objektmaskendaten können verwendet werden, um den Hintergrund des Quellbilds weniger zu betonen oder anderweitig zu verändern.
  • Nun auf 1 Bezug nehmend, ist 1 ein Datenflussdiagramm, das einen beispielhaften Prozess 100 zum Trainieren eines oder mehrerer Modelle maschinellen Lernens veranschaulicht, die zumindest auf der Integration von Objektbildern mit Hintergründen basieren, gemäß einigen Ausführungsformen der Erfindung. Der Prozess 100 wird in Bezug auf ein MLM (Machine Learning Model)-Trainingssystem 140 beschrieben, um ein Beispiel zu geben. Neben anderen potenziellen Komponenten kann das MLM-Trainingssystem 140 einen Hintergrundintegrator 102, einen MLM-Trainer 104, einen MLM-Postprozessor 106 und einen Hintergrundselektor 108 beinhalten.
  • Auf einer hohen Ebene kann der Prozess 100 beinhalten, dass der Hintergrundintegrator 102 einen oder mehrere Hintergründe 110 (die als Hintergrundbilder bezeichnet werden können) und Objektbilder 112 empfängt, die einem oder mehreren Objekten (die z.B. von einem oder mehreren MLM 122 klassifiziert, analysiert und/oder erkannt werden sollen) entsprechen. Der Hintergrundintegrator 102 kann die Objektbilder 112 mit dem/den Hintergrund(en) 110 integrieren, um Bilddaten zu erzeugen, die mindestens einen Teil des/der Hintergrunds/Hintergründe 110 und des/der Objekts/Objekte in einem oder mehreren Bildern erfassen (z.B. repräsentieren). Der MLM-Trainer 104 kann aus den Bilddaten eine oder mehrere Eingaben 120 für das eine oder die mehreren MLMs 122 erzeugen. Das/die MLMs 122 kann/können die Eingabe(n) 120 verarbeiten, um eine oder mehrere Ausgaben 124 zu erzeugen. Der MLM-Postprozessor 106 kann die Ausgabe(n) 124 verarbeiten, um Vorhersagedaten 126 (z.B. Inferenzierungswerte, Objektklassenbezeichnungen, Objektbegrenzungsrahmen oder -formen usw.) zu erzeugen. Der Hintergrundselektor 108 kann die Vorhersagedaten 126 analysieren und einen oder mehrere der Hintergründe 110 und/oder Objekte für das Training zumindest auf der Grundlage der Vorhersagedaten 126 auswählen. In einigen Ausführungsformen kann der Prozess 100 für eine beliebige Anzahl von Iterationen wiederholt werden, bis eines oder mehrere der MLMs 122 ausreichend trainiert sind, oder der Hintergrundselektor 108 kann ein einziges Mal oder intermittierend verwendet werden, um Hintergründe 110 für eine erste Trainingsiteration und/oder oder andere Iterationen auszuwählen.
  • Beispielsweise und ohne Beschränkung darauf können die hierin beschriebenen MLM(s) 122 jede beliebige Art von Modell maschinellen Lernens beinhalten, wie z.B. ein oder mehrere Modell(e) maschinellen Lernens unter Verwendung von linearer Regression, logistischer Regression, Entscheidungsbäumen, Support Vector Machines (SVM), Naive Bayes, k-nearest neighbor (Knn), K-Means-Clustering, Random Forest, Dimensionalitätsreduktionsalgorithmen, Gradient-Boosting-Algorithmen, neuronalen Netzen (z.B. Auto-Encoder, Convolutional, Recurrent, Perceptrons, Long/Short Term Memory (LSTM), Hopfield, Boltzmann, Deep Belief, Deconvolutional, Generative Adversarial, Liquid State Machine usw.) und/oder andere Arten von Modellen maschinellen Lernens.
  • Der Prozess 100 kann zumindest teilweise dazu verwendet werden, ein oder mehrere der MLMs 122 zu trainieren, um eine Vorhersageaufgabe durchzuführen. Die Erfindung konzentriert sich auf die Erkennung von Posen und/oder Gesten, insbesondere die Erkennung von Handposen. Offenbarte Techniken sind jedoch weitgehend anwendbar, um ein MLM so zu trainieren, dass es eine Vielzahl möglicher Vorhersageaufgaben durchführt, wie beispielsweise Bild- und/oder Objektklassifizierungsaufgaben. Beispiele beinhalten Objekterkennung, Bounding-Box- bzw. Begrenzungsrahmen- oder Formbestimmung, Objektklassifizierung, Posenklassifizierung, Gestenklassifizierung und vieles mehr. 2 zeigt beispielsweise ein Beispiel eines Bilds 246, das durch den/die Input/s bzw. Eingabe/n 120 in das MLM 122 erfasst werden kann. Der Prozess 100 kann verwendet werden, um das MLM 122 zu trainieren, um eine Pose einer im Bild 246 dargestellten Hand (z.B. Daumen hoch, Daumen runter, Faust, Friedenszeichen, offene Hand, OK-Zeichen usw.) vorherzusagen.
  • In einigen Ausführungsformen kann eine oder mehrere der Iterationen des Prozesses 100 kein Training eines oder mehrerer MLMs 122 beinhalten. Zum Beispiel kann eine Iteration von dem Hintergrundselektor 108 verwendet werden, um einen oder mehrere der Hintergründe 110 und/oder Objekte, die den Objektbildern 112 entsprechen, für die Aufnahme in Trainingsdatensätze auszuwählen, die von dem MLM-Trainer 104 für das Training verwendet werden. Ferner kann in einigen Beispielen der Prozess 100 ein MLM 122 verwenden, um die Hintergründe 110 und/oder Objekte für einen Trainingsdatensatz in einer Iteration auszuwählen, und kann das gleiche oder ein anderes MLM 122 unter Verwendung des Trainingsdatensatzes trainieren (z.B. in einer nachfolgenden Iteration des Prozesses 100 oder anderweitig). Beispielsweise kann das MLM 122, das zur Auswahl aus den Hintergrunddaten 110 für das Training verwendet wird, teilweise oder vollständig für die Durchführung der Vorhersageaufgabe trainiert werden. Wenn in einer oder mehreren Iterationen des Prozesses 100 ein trainiertes oder teilweise trainiertes MLM 122 verwendet wird, um aus den Hintergründen 110 ein anderes MLM 122 zu trainieren, kann die Iteration bzw. können die Iterationen verwendet werden, um das Training des anderen MLM 122 urzuladen, indem anspruchsvolle Hintergrundbilder und/oder Kombinationen von Hintergrund- und Objektbildern für das Training ausgewählt werden.
  • In verschiedenen Beispielen können eine oder mehrere Iterationen des Prozesses 100 eine Rückkopplungsschleife bilden, in der der Hintergrundselektor 108 die Vorhersagedaten einer Iteration (z.B. einer Trainingsepoche) verwendet, um einen oder mehrere der Hintergründe 110 und/oder Objekte, die den Objektbildern 112 entsprechen, zur Aufnahme in einen nachfolgenden Trainingsdatensatz auszuwählen. In einer nachfolgenden Iteration (z.B. einer nachfolgenden Trainingsepoche) des Prozesses 100 kann der Hintergrundintegrator 102 entsprechende Bilder erzeugen oder anderweitig vorbereiten oder auswählen, die der MLM-Trainer 104 in einen Trainingsdatensatz aufnehmen kann. Der Trainingsdatensatz kann dann auf das MLM 122 angewendet werden, das trainiert wird, um die Vorhersagedaten 126 zu erzeugen, die von dem Hintergrundselektor 108 verwendet werden, um einen oder mehrere der Hintergründe 110 und/oder Objekte, die den Objektbildern 112 entsprechen, zur Aufnahme in einen nachfolgenden Trainingsdatensatz auszuwählen. Die Rückkopplungsschleife kann dazu verwendet werden, die Erweiterungen zu bestimmen, um kontinuierliche Verbesserungen der Genauigkeit, der Verallgemeinerungsleistung und der Robustheit des/der trainierten MLMs 122 sicherzustellen.
  • In verschiedenen Beispielen fügt der MLM-Trainer 104 zumindest auf der Grundlage der Auswahl eines oder mehrerer Hintergründe und/oder Objekte durch den Hintergrundselektor 108 ein oder mehrere Bilder aus dem Hintergrundintegrator 102 ein, die den ausgewählten Hintergrund und/oder die ausgewählte Hintergrund- und Objektkombination enthalten. Als ein Beispiel kann der MLM-Trainer 104 ein oder mehrere Bilder zu einem Trainingsdatensatz hinzufügen, der für eine vorherige Trainingsiteration und/oder Epoche verwendet wurde. Der Trainingsdatensatz kann bei jeder Iteration wachsen. In einigen Fällen kann der MLM-Trainer 104 jedoch auch ein oder mehrere Bilder aus dem Trainingsdatensatz entfernen, der für eine vorherige Trainingsiteration und/oder -epoche verwendet wurde (z. B. auf der Grundlage einer Auswahl durch den Hintergrundselektor 108 zur Entfernung und/oder auf der Grundlage des Trainingsdatensatzes, der eine Schwellenanzahl von Bildern überschreitet). In dem gezeigten Beispiel kann der Hintergrundintegrator 102 ein oder mehrere Bilder erzeugen, die zu Beginn einer Iteration des Prozesses 100 auf der Grundlage der von dem Hintergrundselektor 108 getroffenen Auswahlen in einen Trainingsdatensatz aufgenommen werden. In anderen Beispielen können eines oder mehrere der Bilder durch den Hintergrundintegrator 102 vorgeneriert werden, wie z.B. zumindest teilweise vor einem Training mit dem Prozess 100 und/oder während einer oder mehrerer vorheriger Iterationen. Wenn ein Bild vorgeneriert ist, kann der MLM-Trainer 104 das vorgenerierte Bild auf der Grundlage der vom Hintergrundselektor 108 getroffenen Auswahl(en) aus dem Speicher abrufen.
  • Die hierin beschriebene Auswahl eines Hintergrunds kann sich auf die Auswahl des Hintergrunds für mindestens ein für das Training verwendetes Bild beziehen. Die Auswahl eines Hintergrunds kann auch die Auswahl eines Objekts umfassen, das in das Bild mit dem Hintergrund aufzunehmen ist. In mindestens einer Ausführungsform kann der Hintergrundselektor 108 Hintergründe und/oder Hintergrund- und Objektkombinationen auswählen, die mindestens auf einer Konfidenz bzw. einem Vertrauen der MLM(s) 122 in einer oder mehreren Vorhersagen basieren, die unter Verwendung der MLM(s) 122 gemacht wurden. In verschiedenen Beispielen kann das Vertrauen durch einen Satz von Inferenzierungswerten erfasst werden, die Vorhersagen der Vorhersageaufgabe entsprechen, die von einem oder mehreren MLM(s) 122 auf einem oder mehreren Bildern durchgeführt wurden. Zum Beispiel können die Vorhersagen in einer aktuellen Iteration und/oder einer oder mehreren früheren Iterationen des Prozesses 100 gemacht werden. Ein Inferenzierungswert kann sich auf einen Wert beziehen, für den ein MLM trainiert ist oder trainiert wird, um es in Bezug auf eine Vorhersageaufgabe oder einen Teil davon bereitzustellen. In einigen Beispielen kann eine Inferenzierungsbewertung das Vertrauen des MLM in Bezug auf eine oder mehrere der entsprechenden Ausgaben 124 (z.B. Tensordaten) darstellen und/oder kann verwendet werden, um das Vertrauen in Bezug auf die Vorhersageaufgabe zu bestimmen oder zu berechnen. Beispielsweise kann (können) ein (mehrere) Inferenzierungswert(e) das Vertrauen des (der) MLM(s) 122 in ein in einem Bild erkanntes Objekt darstellen, das zu einer Zielklasse gehört (z.B. eine Wahrscheinlichkeit, dass eine Eingabe 120 zu der Zielklasse gehört).
  • Der Hintergrundselektor 108 kann einen oder mehrere Hintergründe und/oder Hintergrund- und Objektkombinationen basierend auf den Inferenzierungswerten auswählen, wobei eine Vielzahl von möglichen Ansätzen verwendet wird. In mindestens einer Ausführungsform kann der Hintergrundselektor 108 einen oder mehrere bestimmte Hintergründe und/oder Objekte auswählen, die mindestens auf der Analyse von Inferenzierungswerten basieren, die Bildern entsprechen, die diese Elemente enthalten. In mindestens einer Ausführungsform kann der Hintergrundselektor 108 einen oder mehrere Hintergründe und/oder Objekte einer bestimmten Klasse oder eines bestimmten Typs oder mit einem oder mehreren anderen bestimmten Merkmalen auswählen, und zwar mindestens auf der Grundlage einer Analyse von Inferenzierungswerten, die Bildern entsprechen, die diese Elemente mit diesen einen oder mehreren Merkmalen enthalten (z.B. bestimmter Hintergrund, bestimmtes Objekt, Textur, Farbe, Beleuchtungsbedingungen, Objekt und/oder Überlagerung, Farbton, Perspektive wie in 4 beschrieben, Orientierung, Hautton, Größe, Thema, enthaltene Hintergrundelemente usw.). Beispielsweise kann der Hintergrundselektor 108 mindestens einen Hintergrund auswählen, der Jalousien enthält, und eine Geste, die eine geöffnete Handfläche enthält, zumindest auf der Grundlage von Inferenzierungswerten von Bildern, die diese Merkmale aufweisen. Als ein weiteres Beispiel kann der Hintergrundselektor 108 einen bestimmten Hintergrund zumindest auf der Grundlage von Inferenzierungswerten von Bildern, die diesen Hintergrund enthalten, auswählen. Als ein weiteres Beispiel kann der Hintergrundselektor 108 einen bestimmten Hintergrund und ein Objekt einer Objektklasse (z.B. Daumen hoch, Daumen runter usw.) zumindest auf der Grundlage von Inferenzierungswerten von Bildern auswählen, die diesen Hintergrund und ein Objekt der Objektklasse enthalten.
  • In einigen Fällen können die Inferenzierungswerte von dem Hintergrundselektor 108 zumindest auf der Grundlage der Berechnung eines Konfusionswerts bewertet werden. Ein Konfusionswert kann als eine Metrik dienen, die die relative Netzwerkkonfusion in Bezug auf Vorhersagen quantifiziert, die für ein oder mehrere Bilder mit einem bestimmten Satz von Merkmalen gemacht wurden. Wenn der Konfusionswert einen Schwellenwert übersteigt (z.B. eine ausreichende Konfusion anzeigt), kann der Hintergrundselektor 108 zumindest einige Elemente (z.B. Hintergrund oder Hintergrund- und Objektkombination) auswählen, die den Satz von Merkmalen aufweisen, um den Trainingsdatensatz zu ändern. In mindestens einer Ausführungsform kann die Konfusion für einen Hintergrund bzw. mehrere Hintergründe zumindest teilweise auf einer Anzahl richtiger und falscher Vorhersagen basieren, die für Bilder gemacht wurden, die ein Element bzw. mehrere Elemente mit dem Satz von Merkmalen enthalten. Zum Beispiel kann ein Konfusionswert zumindest auf der Grundlage eines Verhältnisses zwischen richtigen und falschen Vorhersagen berechnet werden. Zusätzlich oder alternativ kann ein Konfusionswert zumindest auf der Grundlage einer Varianz in der Genauigkeit der Vorhersagen oder Inferenzierungswerte für Bilder berechnet werden, die ein oder mehrere Elemente enthalten, die den Satz von Merkmalen aufweisen (z.B. als Hinweis darauf, dass bei Verwendung eines bestimmten Hintergrunds oder Hintergrundtyps eine hohe Varianz zwischen Zielklassen besteht).
  • Der Hintergrundselektor 108 kann eine oder mehrere Hintergrund- und/oder Hintergrund- und Objektkombinationen zur Aufnahme in mindestens ein Bild für einen Trainingsdatensatz auswählen, und zwar mindestens auf der Grundlage der Auswahl einer oder mehrerer unterschiedlicher Elementmerkmale. Zum Beispiel kann der Hintergrundselektor 108 ein oder mehrere verschiedene Elementmerkmale zumindest auf der Grundlage der entsprechenden Konfusionswerte auswählen. Der Hintergrundselektor 108 kann verschiedene Sätze von Merkmalen in eine Rangfolge bringen und einen oder mehrere Sätze zur Modifikation des Trainingsdatensatzes auf der Grundlage der Rangfolgen auswählen. Als ein nicht beschränkendes Beispiel kann der Hintergrundselektor 108 die besten N bestimmten Hintergründe oder Kombinationen von Hintergründen und Objekten (oder andere Sätze von Merkmalen) auswählen, wobei N eine ganze Zahl ist (z.B. für jeden Konfusionswert, der einen Schwellenwert überschreitet).
  • Der Hintergrundintegrator 102 kann ein oder mehrere Bilder auswählen, abrufen (z.B. aus dem Speicher) und/oder erzeugen, die den von dem Hintergrundselektor 108 getroffenen Auswahlen entsprechen, um sie an den Trainingsdatensatz anzupassen. Wenn der Hintergrundintegrator 102 ein Bild aus einem ausgewählten Hintergrund erzeugt, kann der Hintergrundintegrator 102 das gesamte Hintergrundbild oder einen oder mehrere Teile des Hintergrunds in das Bild aufnehmen. Beispielsweise kann der Hintergrundintegrator 102 einen Bereich (z.B. ein Rechteck, dessen Größe sich nach der Eingabe 120 in das MLM 122 richtet) aus dem Hintergrund mit einem zufälligen oder nicht zufälligen Samplingverfahren auswählen. So kann ein von dem/den MLM 122 verarbeitetes Bild das gesamte Hintergrundbild oder einen Bereich des Hintergrundbilds (z.B. einen abgetasteten Bereich) enthalten. Wenn der Hintergrundintegrator 102 ein Bild von einem ausgewählten Objekt erzeugt, kann der Hintergrundintegrator 102 das gesamte Objektbild oder einen Teil des Objektbilds in das Bild aufnehmen.
  • In mindestens einer Ausführungsform kann der Hintergrundintegrator 102 einen oder mehrere synthetische Hintergründe erzeugen. Ein synthetischer Hintergrund kann beispielsweise für Fälle erzeugt werden, in denen die Vorspannung und Empfindlichkeit des Netzwerks bekannt sind (entweder empirisch durch Messung der Leistung des Netzwerks oder intuitiv). So kann beispielsweise ein synthetischer Hintergrund eines bestimmten Typs (z.B. Punkte und Streifen) für ein Netzwerk erzeugt werden, das für diese speziellen Texturen empfindlich ist, wobei der Hintergrundselektor diesen Hintergrundtyp auswählt. Ein oder mehrere synthetische Hintergründe können vor dem Training des/der MLMs 122 und/oder während des Trainings (z.B. zwischen Iterationen oder Epochen) erzeugt werden. Zur Erzeugung eines synthetischen Hintergrunds können verschiedene Ansätze verwendet werden, z.B. zumindest auf der Grundlage des Renderns einer dreidimensionalen virtuellen Umgebung, die dem Hintergrundtyp zugeordnet ist, der algorithmischen Erzeugung einer Textur, die ein ausgewähltes Muster enthält, der Änderung eines vorhandenen Hintergrunds oder Bilds usw.
  • In Übereinstimmung mit Aspekten der Erfindung können die Objektbilder 112 aus einem oder mehreren Quellbildern extrahiert werden, und kann der Hintergrundintegrator 102 einen oder mehrere der Hintergründe 110 verwenden, um einen ursprünglichen Hintergrund eines Quellbilds zu ersetzen oder zu modifizieren. 2 ist ein Datenflussdiagramm, das einen Beispielprozess 200 zum Erzeugen eines Objektbilds 212 und zum Integrieren des Objektbilds 212 mit einem oder mehreren der Hintergründe 110 gemäß einigen Ausführungsformen der Erfindung zeigt.
  • Der Prozess 200 wird beispielhaft anhand eines Objektbildextraktionssystems 202 beschrieben. Neben anderen potenziellen Komponenten kann das Objektbildextraktionssystem 202 einen Bereichsidentifizierer 204, einen Vorprozessor 206 und einen Bilddatenbestimmer 208 beinhalten.
  • Überblicksweise kann der Bereichsidentifizierer 204 in dem Prozess 200 dazu konfiguriert sein, eine Region innerhalb eines Quellbilds zu identifizieren. Beispielsweise kann der Bereichsidentifizierer 204 einen Bereich 212A innerhalb eines Quellbilds 220 identifizieren, der einem Objekt (z.B. einer Hand) mit einem Hintergrund in dem Quellbild 220 entspricht. Der Bereichsidentifizierer 204 kann ferner eine Segmentierungsmaske 222 erzeugen, die ein Segment 212B enthält, das dem Objekt auf der Grundlage der Identifizierung des Bereichs 212A entspricht. Der Bereichsidentifizierer 204 kann ferner eine Position des Objekts erkennen, um einen Bereich 230 des Quellbilds 220 und/oder der Segmentierungsmaske 222 zu definieren. Der Vorprozessor 206 kann zumindest einen Teil des Segments 212B in dem Bereich 230 der Segmentierungsmaske 222 verarbeiten, um eine Objektmaske 232 zu erzeugen. Der Bilddatenbestimmer 208 kann die Objektmaske 232 verwenden, um das Objektbild 212 aus dem Quellbild 220 zu erzeugen. Das Objektbild kann dann dem Hintergrundintegrator 102 zur Integration mit einem oder mehreren Hintergründen 110 bereitgestellt werden (z.B. um das Objekt über die Hintergrundbilder zu legen oder zu überlagern).
  • In Übereinstimmung mit verschiedenen Ausführungsformen können eines oder mehrere der Objektbilder 112, wie beispielsweise das Objektbild 212, vor dem Training des/der MLMs 122 und/oder während des Trainings des/der MLMs 122 erzeugt werden. Beispielsweise können ein oder mehrere der Objektbilder 112 erzeugt (z.B. wie in 2 beschrieben) und gespeichert und dann nach Bedarf abgerufen werden, um die Eingabe(n) 120 in dem Verfahren 100 zu erzeugen. Als ein weiteres Beispiel können ein oder mehrere der Objektbilder 112 während des Prozesses 100 erzeugt werden, z.B. on-the-fly oder nach Bedarf durch den Hintergrundintegrator 102. In einigen Ausführungsformen wird ein Objektbild 112 während des Prozesses 100 on-the-fly erzeugt und kann dann gespeichert und/oder in nachfolgenden Iterationen des Prozesses 100 und/oder für das Training anderer MLMs als der MLM(s) 122 zu einem späteren Zeitpunkt wiederverwendet werden.
  • Wie hierin beschrieben, kann der Bereichsidentifizierer 204 die Region 212A innerhalb eines Quellbilds 220 identifizieren, die einem Objekt (z.B. einer Hand) mit einem Hintergrund im Quellbild 220 entspricht. In dem gezeigten Beispiel kann der Bereichsidentifizierer 204 auch eine Region 210A innerhalb des Quellbilds 220 identifizieren, die dem Hintergrund des Objekts entspricht. In anderen Beispielen kann der Bereichsidentifizierer 204 nur die Region 212A identifizieren.
  • In mindestens einer Ausführungsform kann der Bereichsidentifizierer 204 die Region 212A identifizieren, um mindestens das Segment 212B des Quellbilds 220 zu bestimmen, das dem Objekt entspricht, und zwar mindestens auf der Grundlage der Durchführung einer Bildsegmentierung des Quellbilds. Die Bildsegmentierung kann ferner dazu verwendet werden, den Bereich 210A zu identifizieren, um zu bestimmen, dass zumindest das Segment 212B des Quellbilds 220 dem Hintergrund entspricht, basierend auf der Durchführung einer Bildsegmentierung auf dem Quellbild 220. In mindestens einer Ausführungsform kann der Bereichsidentifizierer 204 Daten erzeugen, die für die Segmentierungsmaske 222 aus dem Quellbild 220 repräsentativ sind, wobei die Segmentierungsmaske 222 das/die Segment(e) 212B, das/die dem Objekt entspricht/entsprechen (weiße Pixel in 2), und/oder das/die Segment(e) 210B, das/die dem Hintergrund entspricht/entsprechen (schwarze Pixel in 2), anzeigt.
  • Der Bereichsidentifizierer 204 kann auf verschiedene Weise implementiert werden, z.B. durch KI-gestützte Hintergrundentfernung. In mindestens einer Ausführungsform umfasst der Bereichsidentifizierer 204 ein oder mehrere MLMs, die darauf trainiert sind, einzelne Pixel oder Pixelgruppen von Bildern zu klassifizieren oder zu kennzeichnen. Die MLMs können beispielsweise dazu trainiert werden, einen Vordergrund (der z.B. einem Objekt entspricht) und/oder einen Hintergrund in einem Bild zu identifizieren, und die Bildsegmente können dem Vordergrund und/oder dem Hintergrund entsprechen. Als ein nicht beschränkendes Beispiel kann der Bereichsidentifizierer 204 unter Verwendung der Hintergrundentfernungstechnologie von RTX Greenscreen der NVIDIA Corporation implementiert sein. In einigen Beispielen können die MLMs trainiert werden, um Objekttypen zu identifizieren und Pixel entsprechend zu kennzeichnen.
  • In mindestens einer Ausführungsform kann der Bereichsidentifizierer 204 einen oder mehrere Objektdetektoren enthalten, wie z.B. einen Objektdetektor, der darauf trainiert ist, ein Objekt (z.B. eine Hand) zu erkennen, das von dem/den MLMs 122 zu klassifizieren ist. Der Objektdetektor kann unter Verwendung eines oder mehrerer MLMs implementiert sein, die auf die Erkennung des Objekts trainiert sind. Der Objektdetektor kann Daten ausgeben, die den Ort des Objekts angeben, und kann verwendet werden, um den Bereich 230 des Quellbilds 220 und/oder der Segmentierungsmaske 222 zu definieren, der das Objekt enthält. Beispielsweise kann der Objektdetektor dazu trainiert sein, einen Begrenzungsrahmen oder eine Form des Objekts zu liefern, und kann der Begrenzungsrahmen oder die Form zur Definition des Bereichs 230 verwendet werden.
  • In dem gezeigten Beispiel kann der Bereich 230 durch Erweiterung des Begrenzungsrahmens definiert sein, während in anderen Beispielen der Begrenzungsrahmen als Bereich 230 verwendet werden kann. Im vorliegenden Beispiel kann der Bereichsidentifizierer 204 das Segment 212B identifizieren, das dem Objekt entspricht, indem er das Quellbild 220 auf die MLM(s) anwendet. In anderen Beispielen kann der Bereichsidentifizierer 204 den Bereich 230 anstelle des Quellbilds (oder in einigen Ausführungsformen zusätzlich zum Quellbild) auf die MLM(s) anwenden. Durch Anwenden des Quellbilds 220 auf das/die MLM(s) kann das/die MLM(s) über zusätzlichen Kontext verfügen, der in dem Bereich 230 nicht verfügbar ist und der die Genauigkeit des/der MLM(s) verbessern kann.
  • In Ausführungsformen, in denen der Bereich 230 bestimmt wird, kann der Vorprozessor 206 eine Vorverarbeitung zumindest auf der Grundlage des Bereichs 230 durchführen. Beispielsweise kann der Bereich 230 der Segmentierungsmaske 222 durch den Vorprozessor 206 vorverarbeitet werden, bevor er von dem Bilddatenbestimmer 208 verwendet wird. In mindestens einer Ausführungsform kann der Vorprozessor 206 Bilddaten, die dem Bereich 230 der Segmentierungsmaske 222 entsprechen, ausschneiden und die ausgeschnittenen Bilddaten verarbeiten, um eine Objektmaske 232 zu erzeugen. Der Vorprozessor 206 kann verschiedene Arten der Vorverarbeitung für den Bereich 230 durchführen, was die Fähigkeit des Bilddatenbestimmers 208 verbessern kann.
  • Nun auf 3 Bezug nehmend, zeigt 3 Beispiele für die Vorverarbeitung, die zur Erzeugung einer Objektmaske verwendet werden kann, die zur Erzeugung von Objektbildern gemäß einigen Ausführungsformen der Erfindung verwendet wird. Beispielsweise kann der Vorprozessor 206 die Segmentierungsmaske 222 beschneiden, welches in einer Objektmaske 300A resultiert. Der Vorprozessor 206 kann eine Streckung an der Objektmaske 300A durchführen, welches in einer Objektmaske 300B resultiert. Der Vorprozessor 206 kann dann die Objektmaske 300B weichzeichnen, wodurch die Objektmaske 232 entsteht. Die Objektmaske 232 kann dann von dem Bilddatenermittler 208 verwendet werden, um das Objektbild 212 zu erzeugen.
  • Der Vorprozessor 206 kann die Streckung, um das Segment 212B der Objektmaske 300A, das dem Objekt entspricht, zu erweitern. Zum Beispiel kann das Segment 212B in das Segment 210B erweitert werden, das dem Hintergrund entspricht. In einigen Ausführungsformen kann der Vorprozessor 206 eine binäre Streckung durchführen. Es können auch andere Arten einer Streckung durchgeführt werden, z.B. eine Graustufenstreckung. Beispielsweise kann der Vorprozessor 206 zunächst die Objektmaske 300A unscharf machen und dann eine Graustufenstreckung durchführen. Die Streckung kann nützlich sein, um die Robustheit der Objektmaske 232 gegenüber Fehlern in der Segmentierungsmaske 222 zu erhöhen. Wenn das Objekt beispielsweise eine Hand beinhaltet, kann eine Handfläche manchmal als im Hintergrund befindlich klassifiziert werden. Die Streckung ist ein Ansatz, um diesen potenziellen Fehler zu beheben. Andere Maskenvorverarbeitungstechniken fallen in den Anwendungsbereich der Erfindung, wie z.B. eine binäre oder Graustufen-Erosion. Beispielsweise kann eine Erosion an dem Segment 210B durchgeführt werden, das dem Hintergrund entspricht.
  • Der Vorprozessor 206 kann Verunschärfen (z.B. Gaußsche Unschärfe) verwenden, um den Hintergrundintegrator 102 bei der Entschärfung des Übergangs zwischen Bilddaten, die dem Objekt im Objektbild 212 entsprechen, und Bilddaten, die einem Hintergrund 110 entsprechen, zu unterstützen. Ohne Entschärfung des Übergangs zwischen dem Objekt und dem Hintergrund können die Bereiche, die den Kanten der Objektmaske 232 entsprechen, scharf und künstlich wirken. Die Verwendung einer Überblendtechnik wie z.B. Weichzeichnen und anschließende Anwendung der Objektmaske kann zu einem natürlicheren oder realistischeren Übergang zwischen dem Objekt und dem Hintergrund 110 im Bild 246 führen. Während die Maskenverarbeitung so beschrieben wurde, dass sie an einer Objektmaske vor der Anwendung der Maske durchgeführt wird, können in anderen Beispielen ähnliche oder andere Bildverarbeitungsvorgänge durch den Bilddatenbestimmer 208 bei der Anwendung einer Objektmaske (z.B. auf das Quellbild 220) durchgeführt werden.
  • Zu 2 zurückkehrend, kann der Bilddatenbestimmer 208 allgemein eine Objektmaske, wie beispielsweise die Objektmaske 232, verwenden, um das Objektbild 212 zu erzeugen. Beispielsweise kann der Bilddatenbestimmer 208 die Objektmaske 232 verwenden, um einen Bereich 242 aus dem Quellbild 220 zu identifizieren und/oder zu extrahieren, der dem Objekt entspricht. In anderen Ausführungsformen kann auf eine Objektmaske verzichtet werden und eine andere Technik zur Identifizierung und/oder Extraktion des Bereichs 242 verwendet werden. Wenn die Objektmaske 232 verwendet wird, kann der Bilddatenbestimmer 208 die Objektmaske 232 mit dem Quellbild 220 multiplizieren, um das Objektbild 212 zu erhalten, das Bilddaten enthält, die für den Bereich 242 repräsentativ sind, der dem Objekt entspricht (z.B. der Vordergrund des Quellbilds 220).
  • Bei der Integration des Objektbilds 212 mit einem Hintergrund 110 kann der Hintergrundintegrator 102 das Objektbild 212 als Maske verwenden, und die Inversion der Maske kann auf den Hintergrund 110 angewendet werden, wobei das resultierende Bild mit dem Objektbild gemischt wird. Zum Beispiel kann der Hintergrundintegrator 102 ein Alpha-Compositing zwischen dem Objektbild 212 und dem Hintergrund 110 durchführen. Das Überblenden des Objektbilds 212 mit dem Hintergrundintegrator 102 kann eine Vielzahl von möglichen Überblendtechniken verwenden. In einigen Ausführungsformen kann der Hintergrundintegrator 102 Alpha-Blending verwenden, um das Objektbild 212 mit dem Hintergrund 110 zu integrieren. Bei der Kombination des Objektbilds 212 mit dem Hintergrund 110 kann durch Alpha-Blending der Hintergrund aus dem Objektbild 212 eliminiert werden, und können die Vordergrundpixel dem Hintergrund 110 überlagert werden, um das Bild 246 zu erzeugen, oder können die Pixel gewichtet werden (z.B. von 0 bis 1), wenn die Bilddaten aus dem Objektbild 212 und dem Hintergrund 110 entsprechend der von dem Vorprozessor 206 oder auf andere Weise angewandten Unschärfe kombiniert werden. In mindestens einer Ausführungsform kann der Hintergrundintegrator 102 eine oder mehrere nahtlose Überblendtechniken anwenden. Eine nahtlose Überblendtechnik kann darauf abzielen, eine nahtlose Grenze zwischen dem Objekt und dem Hintergrund 110 in dem Bild 246 zu erzeugen. Beispiele für nahtlose Überblendtechniken beinhalten Überblendung von Gradientenbereichen, Laplace-Pyramiden-Überblendung oder Poisson-Überblendung.
  • WEITERE BEISPIELE FÜR DATENERWEITERUNGSTECHNIKEN
  • Wie hierin beschrieben, kann der Prozess 200 zur Erweiterung eines Trainingsdatensatzes verwendet werden, der zum Trainieren eines MLM verwendet wird, wie z. B. das MLM 122 unter Verwendung des Prozesses 100. Die Erfindung stellt weitere Ansätze bereit, die zur Erweiterung eines Trainingsdatensatzes verwendet werden können. In Übereinstimmung mit zumindest einigen Ausführungsformen kann der Farbton eines Objekts, das in einem Quellbild, wie dem beispielsweise Quellbild 220, identifiziert wurde, zur Datenerweiterung modifiziert werden. Wenn das Objekt beispielsweise zumindest einen Teil eines Menschen darstellt, können Hautton, Haarfarbe und/oder andere Farbtöne geändert werden, um den Trainingsdatensatz zu erweitern. Zum Beispiel kann der Farbton für einen oder mehrere Teile eines Bereichs, der einem Objekt entspricht, verschoben werden (z.B. gleichmäßig oder auf andere Weise). In mindestens einer Ausführungsform kann der Farbton zufällig oder nicht zufällig ausgewählt werden. In einigen Fällen kann der Farbton auf der Grundlage einer Analyse der Vorhersagedaten 126 ausgewählt werden. Beispielsweise kann der Farbton als ein Merkmal für die Auswahl oder Erzeugung eines oder mehrerer Trainingsbilder verwendet werden (z.B. durch den Hintergrundintegrator 102), wie hierin beschrieben.
  • Bestimmte Bereiche, wie z.B. der Hintergrund oder nicht primäre oder untergeordnete Abschnitte der Region, die in der Regel einen einheitlichen Farbton für verschiedene reale Varianten des Objekts aufweisen, können den ursprünglichen Farbton beibehalten. Falls beispielsweise das Objekt ein Auto ist, können die Paneele im Farbton verschoben werden, während der Farbton für Lichter, Stoßstangen und Reifen beibehalten wird. In mindestens einer Ausführungsform kann der Hintergrundintegrator 102 die Farbtonänderung vornehmen. Beispielsweise kann die Farbtonänderung an einem oder mehreren Teilen des im Objektbild 212 dargestellten Objekts vorgenommen werden. In anderen Beispielen kann das Objektbild 212 oder die Objektmaske 232 verwendet werden (z.B. durch den Bilddatenbestimmer 208), um Bilddaten, die das Objekt darstellen, zu identifizieren und den Farbton in einem oder mehreren Bereichen des Quellbilds 220 zu ändern. In diesen Beispielen ist der Hintergrundintegrator 102 möglicherweise nicht enthalten.
  • In Übereinstimmung mit zumindest einigen Ausführungsformen kann das Quellbild 220 aus einer Vielzahl von verschiedenen Ansichten des Objekts in einer Umgebung zur Datenerweiterung gerendert werden. Nun auf 4 Bezug nehmend, zeigt 4, wie eine dreidimensionale (3D) Erfassung 402 eines Objekts gemäß einigen Ausführungsformen der Erfindung aus mehreren Ansichten gerastert werden kann. In mindestens einer Ausführungsform kann das Objektbildextraktionssystem 202 eine Ansicht des Objekts in einer Umgebung auswählen. Zum Beispiel kann das Objektbildextraktionssystem 202 eine Ansicht 406A, 406B, 406C oder eine beliebige Ansicht des Objekts in einer Umgebung 400 auswählen. Das Objektbildextraktionssystem 202 kann dann das Quellbild 220 zumindest auf der Grundlage der Rasterung einer 3D-Erfassung des Objekts in der Umgebung aus der Ansicht erzeugen. Beispielsweise kann die dreidimensionale (3D) Erfassung 402 Tiefeninformationen umfassen, die von einer physischen oder virtuellen Tiefenerkennungskamera in einer physischen oder virtuellen Umgebung (die sich von der Umgebung 400 unterscheiden kann) erfasst wurden. In einer oder mehreren Ausführungsformen kann die 3D-Erfassung 402 eine Punktwolke umfassen, die zumindest einen Teil des Objekts und möglicherweise zusätzliche Elemente der Umgebung 400 erfasst. Wenn zum Beispiel die Ansicht 406A ausgewählt wird, kann das Objektbildextraktionssystem 202 zumindest die 3D-Erfassung 402 verwenden, um das Quellbild 220 aus der Ansicht 406A einer Kamera 404 zu rastern. In mindestens einer Ausführungsform kann eine Ansicht zufällig oder nicht zufällig ausgewählt werden. In einigen Fällen kann die Ansicht auf der Grundlage einer Analyse der Vorhersagedaten 126 ausgewählt werden. Beispielsweise kann die Ansicht als Merkmal für die Auswahl oder Erzeugung eines oder mehrerer Trainingsbilder (z.B. durch den Hintergrundintegrator 102) verwendet werden, wie hierin beschrieben (z.B. in Kombination mit der Objektklasse). In mindestens einer Ausführungsform kann das Objekt aus der Ansicht gerastert werden, um ein Objektbild 112 zu erzeugen, das dann mit einem oder mehreren Hintergründen unter Verwendung der hierin beschriebenen Ansätze integriert werden kann. In anderen Beispielen kann das Objekt mit einem Hintergrund 110 (einem zweidimensionalen Bild) oder mit anderen 3D-Inhalten der Umgebung 400 gerastert werden, um einen Hintergrund zu bilden.
  • BEISPIELE FÜR INFERENZIERUNG MIT OBJEKTMASKEN
  • Wie hierin beschrieben, können Objektmasken zur Datenerweiterung beim Training der MLM(s) 122 verwendet werden, zum Beispiel unter Verwendung des Prozesses 100. In mindestens einer Ausführungsform können die MLM(s) 122, die unter Verwendung von Maskendaten trainiert werden, Inferenzierungen auf Bildern durchführen, ohne Objektmasken zu verwenden. Beispielsweise können die Eingaben 120 für das/die MLM(s) 122 während des Einsatzes einem oder mehreren Bildern entsprechen, die von einer Kamera aufgenommen wurden. In solchen Beispielen können die Objektmasken nur zur Datenerweiterung verwendet werden. In anderen Ausführungsformen können Objektmasken auch zur Inferenzierung verwendet werden. Beispiele dafür, wie Objektmasken für die Inferenzierung genutzt werden können, werden unter Bezugnahme auf 5A und 5B beschrieben.
  • Nun auf 5 Bezug nehmend, ist 5A ein Datenflussdiagramm 500, das ein Beispiel für Inferenzierung unter Verwendung des MLM 122 und frühzeitige Verschmelzung von Objektmaskendaten zeigt, gemäß einigen Ausführungsformen der Erfindung. In dem Beispiel von 5A kann das MLM bzw. können die MLMs 122 dazu trainiert sein, eine Inferenzierung auf ein Bild 506 durchzuführen und dabei ein Objektbild 508 zu nutzen, das einer Objektmaske des Bilds 506 entspricht. Beispielsweise können die Eingaben 120 aus einer Kombination des Bilds 506 und des Objektbilds 508 generiert und dann dem MLM 122 (z.B. einem neuronalen Netz) zur Verfügung gestellt werden, das die Ausgabe(n) 124 mit Inferenzierungsdaten 510 erzeugen kann. Wenn das MLM 122 ein neuronales Netzwerk umfasst, können die Inferenzierungsdaten 510 Tensordaten aus dem neuronalen Netzwerk umfassen. Die Inferenzierungsdaten 510 können nachbearbeitet werden, um die Vorhersagedaten 126 zu erzeugen.
  • Das Objektbild 508 ist ein Beispiel für Objektmaskendaten, die mit dem Bild 506 zur Inferenzierung kombiniert werden können. Wenn eine frühzeitige Verschmelzung von Objektmaskendaten für die Inferenzierung verwendet wird, wie im Datenflussdiagramm 500, können die Eingabe(n) 120 für das/die MLM(s) 122 auf ähnliche Weise während des Trainings (z.B. im Prozess 100) erzeugt werden. Allgemein können Objektmaskendaten Informationen über die Art und Weise erfassen, in der der Bereichsidentifizierer 204 Masken aus Quellbildern erzeugt. Durch die Nutzung der Objektmaskendaten während des Trainings und der Inferenzierung können die MLMs 122 lernen, alle Fehler oder unnatürlichen Artefakte zu berücksichtigen, die durch die Erzeugung der Objektmaske entstehen können. Die Objektmaskendaten können auch Informationen über die Art und Weise erfassen, in der der Vorprozessor 206 Objektmasken vorverarbeitet, um alle Fehler oder unnatürlichen Artefakte zu erfassen, die durch die Vorverarbeitung entstehen oder nach der Vorverarbeitung verbleiben können.
  • Das Objektbild 508 kann (z.B. zum Zeitpunkt der Inferenzierung) unter Verwendung des Objektbildextraktionssystems 202 ähnlich wie das Objektbild 212 erzeugt werden. Während das Objektbild 508 in den 5A und 5B gezeigt wird, können in anderen Beispielen die Segmentierungsmaske 222 und/oder die Objektmaske 232 zusätzlich zu dem oder anstelle des Objektbild(s) 508 verwendet werden (vor oder nach der Vorverarbeitung durch den Vorprozessor 206).
  • Zur Erzeugung der Eingaben 120 aus einer Kombination des Bilds 506 und des Objektbilds 508 (allgemeiner: Objektmaskendaten) können verschiedene Ansätze verwendet werden. In mindestens einer Ausführungsform werden das Bild 506 und das Objektbild 508 als separate Eingaben 120 für das/die MLM 122 bereitgestellt. Als weitere Beispiele können das Bild 506 und das Objektbild 508 kombiniert werden, um ein kombiniertes Bild zu bilden, und können die Eingabe(n) 120 aus dem kombinierten Bild erzeugt werden. In mindestens einer Ausführungsform können die Objektmaskendaten verwendet werden, um einen oder mehrere Teile des Bilds 506, die den Hintergrund (wie durch die Objektmaskendaten erfasst) relativ zum Objekt oder Vordergrund des Bilds 506 darstellen, zu verblassen, zu vermindern, zu markieren, anzuzeigen, zu unterscheiden oder anderweitig zu modifizieren. Zum Beispiel kann das Bild 506 mit dem Objektbild 508 überblendet werden, was dazu führt, dass der Hintergrund des Bilds 506 verblasst, verschwommen oder defokussiert wird (z.B. durch einen Tiefenschärfeeffekt). Beim Kombinieren des Bilds 506 und des Objektbilds 508 können die zur Bestimmung der resultierenden Pixelfarben verwendeten Gewichtungen mit dem Abstand zum Objekt abnehmen (z.B. exponentiell), wie es von den Objektmaskendaten vorgegeben wird (z.B. unter Verwendung eines Foveationseffekts).
  • Nun auf 5B Bezug nehmend, ist 5B ein Datenflussdiagramm 502, das ein Beispiel für Inferenzierung unter Verwendung der MLM(s) 122 und späte Verschmelzung von Objektmaskendaten zeigt, gemäß einigen Ausführungsformen der Erfindung.
  • In dem Beispiel von 5B kann das MLM (bzw. können die MLMs) 122 separate Ausgaben 124 für das Bild 506 und das Objektbild 508 bereitstellen. Die Ausgänge 124 können Inferenzierungsdaten 510A entsprechend dem Bild 506 und Inferenzierungsdaten 510B entsprechend dem Objektbild 508 enthalten. Darüber hinaus kann (können) das (die) MLM(s) 122 separate Eingaben 120 für das Bild 506 und das Objektbild 508 umfassen. Zum Beispiel kann (können) das (die) MLM(s) 122 mehrere Kopien eines MLM(122) umfassen, das (die) darauf trainiert ist (sind), Inferenzierungen in Bildern durchzuführen, wobei eine Kopie die Inferenzierungen für das Bild 506 durchführt und die Inferenzierungsdaten 510A erzeugt und eine andere Kopie die Inferenzierungen für das Objektbild 508 durchführt und die Inferenzierungsdaten 510B erzeugt (z.B. parallel). Eine Nachbearbeitung kann an den Inferenzierungsdaten 510A und den Inferenzierungsdaten 510B durchgeführt werden und kann eine späte Verschmelzung verwenden, um die Vorhersagedaten 126 zu erzeugen. Zum Beispiel können entsprechende Tensorwerte über die Inferenzierungsdaten 510A und die Inferenzierungsdaten 510B kombiniert (z.B. gemittelt) werden, um die Inferenzierungsdaten zu verschmelzen, und dann kann eine weitere Nachverarbeitung an den verschmolzenen Inferenzierungsdaten durchgeführt werden, um die Vorhersagedaten 126 zu erzeugen. In mindestens einer Ausführungsform können die Tensorwerte der Inferenzierungsdaten 510A und der Inferenzierungsdaten 510B unter Verwendung von Gewichten (z.B. unter Verwendung eines gewichteten Durchschnitts) kombiniert werden. In mindestens einer Ausführungsform können die Gewichte über einen Validierungsdatensatz abgestimmt werden.
  • Eine Inferenzierung unter Verwendung der MLM(s) 122 kann auch eine zeitliche Filterung der Inferenzierungswerte umfassen, um die Vorhersagedaten 126 zu erzeugen, welches die zeitliche Stabilität der Vorhersagen verbessern kann. Außerdem beziehen sich die gezeigten Beispiele in erster Linie auf die statische Posenerkennung. Die dargestellten Techniken können jedoch auch auf die dynamische Posenerkennung angewendet werden, die als eine Geste bezeichnet werden kann. Um das MLM zu trainieren und zur Vorhersage einer Geste zu verwenden, können dem MLM 122 in mindestens einer Ausführungsform mehrere Bilder zugeführt werden, die das Objekt über einen bestimmten Zeitraum oder eine bestimmte Anzahl oder Abfolge von Bildern erfassen. Wenn Objektmasken-Daten verwendet werden, können Objektmasken-Daten für jedes Eingabebild bereitgestellt werden.
  • Nun auf 6 Bezug nehmend, umfasst jeder Block eines Verfahrens 600 und anderer hierin beschriebener Verfahren einen Rechenprozess, der unter Verwendung einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der in einem Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann auch in Form von computerverwendbaren Anweisungen, die auf Computerspeichermedien gespeichert sind, verkörpert sein. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 600 beispielhaft für das System 140 von 1 und das System 202 von 2 beschrieben. Dieses Verfahren 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 hierin beschriebenen Systeme.
  • 6 ist ein Flussdiagramm, das ein Verfahren 600 zum Trainieren eines oder mehrerer Modelle maschinellen Lernens zeigt, die zumindest auf der Integration von Objektbildern mit mindestens einem Hintergrund basieren, gemäß einigen Ausführungsformen der Erfindung. Das Verfahren 600 umfasst in einem Block B602 ein Identifizieren eines Bereichs in einem ersten Bild, der einem Objekt mit einem ersten Hintergrund entspricht. Zum Beispiel kann der Bereichsidentifizierer 204 in dem Quellbild 220 die Region 212A identifizieren, die einem Objekt mit einem Hintergrund in dem Quellbild 220 entspricht.
  • Das Verfahren 600 umfasst in einem Block B604 ein Bestimmen von Bilddaten, die für das Objekt repräsentativ sind, zumindest auf der Grundlage des Bereichs. Beispielsweise kann der Bilddatenbestimmer 208 Bilddaten, die für das Objekt repräsentativ sind, zumindest auf der Grundlage des Bereichs 212A des Objekts bestimmen. In mindestens einer Ausführungsform kann der Bilddatenbestimmer 208 die Bilddaten unter Verwendung der Objektmaske 232 oder eines nicht-maskenbasierten Ansatzes bestimmen.
  • Das Verfahren 600 umfasst in einem Block B606 ein Erzeugen eines zweiten Bilds, das das Objekt mit einem zweiten Hintergrund enthält, unter Verwendung der Bilddaten. Der Hintergrundintegrator 102 kann das Bild 246, das das Objekt mit einem Hintergrund 110 enthält, zumindest auf der Grundlage der Integration des Objekts mit dem Hintergrund 110 unter Verwendung der Bilddaten erzeugen. Zum Beispiel kann der Bilddatenbestimmer 208 die Bilddaten in das Objektbild 212 integrieren und das Objektbild 212 dem Hintergrundintegrator 102 zur Integration mit dem Hintergrund 110 bereitstellen.
  • Das Verfahren 600 umfasst in einem Block B608 ein Trainieren mindestens eines neuronalen Netzwerks, um eine Vorhersageaufgabe unter Verwendung des zweiten Bilds durchzuführen. Beispielsweise kann der MLM-Trainer 104 das MLM bzw. die MLMs darauf trainieren, Objekte in Bildern unter Verwendung des Bilds 246 zu klassifizieren.
  • Nun auf 7 Bezug nehmend, ist 7 ein Flussdiagramm, das ein Verfahren 700 zur Inferenzierung unter Verwendung eines Modells maschinellen Lernens zeigt, bei dem die Eingaben einer Maske eines Bilds und mindestens einem Teil des Bilds entsprechen, gemäß einigen Ausführungsformen der Erfindung. Das Verfahren 700 umfasst in einem Block B702 ein Beschaffen (oder den Zugriff) auf mindestens ein neuronales Netzwerk, das darauf trainiert ist, eine Vorhersageaufgabe für Bilder unter Verwendung von Eingaben durchzuführen, die aus Masken erzeugt wurden, die den Objekten entsprechen. Beispielsweise kann das MLM (oder die MLMs) 122 von 5A oder 5B erhalten (abgerufen) werden und gemäß dem Verfahren 100 von 1 trainiert worden sein.
  • Das Verfahren 700 umfasst in einem Block B704 ein Erzeugen einer Maske, die einem Objekt in einem Bild entspricht, wobei das Objekt einen Hintergrund im dem Bild hat. Zum Beispiel kann der Bereichsidentifizierer 204 die Segmentierungsmaske 222 erzeugen, die einem Objekt im Quellbild 220 entspricht, wobei das Objekt einen Hintergrund im Quellbild 220 hat.
  • Das Verfahren 700 umfasst in einem Block B706 ein Erzeugen von Eingaben für das mindestens eine neuronale Netzwerk unter Verwendung der Maske. Die Eingabe(n) 120 von 5A oder 5B kann/können beispielsweise unter Verwendung der Segmentierungsmaske 222 (oder ohne Verwendung von Objektmasken-Daten) erzeugt werden. Die Eingabe(n) 120 kann (können) das Objekt mit mindestens einem Teil des Hintergrunds erfassen.
  • Das Verfahren 700 umfasst in einem Block B708 ein Erzeugen mindestens einer Vorhersage der prädiktiven Aufgabe, die mindestens auf der Anwendung der Eingaben auf das mindestens eine neuronale Netzwerk basiert. Beispielsweise kann/können das/die MLM(s) 122 verwendet werden, um zumindest eine Vorhersage der prädiktiven Aufgabe zu erzeugen, die zumindest auf der Anwendung der Eingaben 120 auf das/die MLM(s) 122 basiert, und können die Vorhersagedaten 126 unter Verwendung der Ausgabe(n) 124 von dem/den MLM(s) 122 bestimmt werden.
  • Nun auf 8 Bezug nehmend, ist 8 ein Flussdiagramm, das ein Verfahren 800 zur Auswahl eines Objekthintergrunds für das Training eines oder mehrerer Modelle maschinellen Lernens zeigt, gemäß einigen Ausführungsformen der Erfindung. Das Verfahren 800 umfasst in einem Block B802 ein Empfangen von Bildern von einem oder mehreren Objekten mit einer Vielzahl von Hintergründen. Zum Beispiel kann das MLM-Trainingssystem 140 Bilder von einem oder mehreren Objekten mit einer Vielzahl von Hintergründen 110 empfangen.
  • Das Verfahren 800 umfasst in einem Block B804 ein Erzeugen eines Satzes von Inferenzierungswerten, die einer Vorhersageaufgabe unter Verwendung der Bilder entsprechen. Beispielsweise kann der MLM-Trainer 104 die Eingaben 120 an ein oder mehrere MLMs 122 (oder ein anderes MLM) weitergeben, um die Ausgaben 124 zu erzeugen, und kann der MLM-Postprozessor 106 die Ausgabe(n) 124 verarbeiten, um Vorhersagedaten 126 zu erzeugen.
  • Das Verfahren 800 umfasst in einem Block B806 ein Auswählen eines Hintergrunds auf der Grundlage von mindestens einem oder mehreren der Inferenzierungswerte. Zum Beispiel kann der Hintergrundselektor 108 einen oder mehrere der Hintergründe 110 zumindest auf der Grundlage der Vorhersagedaten 126 auswählen.
  • Das Verfahren 800 umfasst in einem Block B808 ein Erzeugen eines Bilds, das zumindest auf der Integration eines Objekts mit dem Hintergrund basiert. Zum Beispiel kann der Hintergrundintegrator 102 ein Bild erzeugen, das zumindest auf der Integration eines Objekts mit dem Hintergrund basiert (z.B. unter Verwendung eines Objektbilds 112 und eines Hintergrunds 110).
  • Das Verfahren 800 umfasst in einem Block B810 ein Verwenden des Bilds zum Trainieren mindestens eines neuronalen Netzwerks zur Durchführung der Vorhersageaufgabe. Zum Beispiel kann der MLM-Trainer 104 das Bild verwenden, um ein oder mehrere MLMs 122 zu trainieren.
  • BEISPIELHAFTE RECHENVORRICHTUNG
  • 9 ist ein Blockdiagramm von/einer beispielhaften Rechenvorrichtung(en) 900, die zur Verwendung bei der Implementierung einiger Ausführungsformen der Erfindung geeignet ist. Die Rechenvorrichtung 900 kann ein Interconnect- bzw. Verbindungssystem 902 beinhalten, der direkt oder indirekt die folgenden Einrichtungen koppelt: Speicher 904, eine oder mehrere Zentralverarbeitungseinheiten (CPUs) 906, eine oder mehrere Grafikverarbeitungseinheiten (GPUs) 908, eine Kommunikationsschnittstelle 910, Eingabe-/Ausgabe (E/A)-Ports 912, Ein-/Ausgabe-Komponenten 914, eine Stromversorgung 916, eine oder mehrere Darstellungskomponenten 918 (z.B. Anzeige(n)) und eine oder mehrere Logikeinheit(en) 920. In mindestens einer Ausführungsform kann/können die Rechenvorrichtung(en) 900 eine oder mehrere virtuelle Maschinen (VMs) umfassen und/oder kann jede der Komponenten davon virtuelle Komponenten umfassen (z.B. virtuelle Hardwarekomponenten). Was nicht beschränkende Beispiele anbelangt, können eine oder mehrere der GPUs 908 eine oder mehrere vGPUs umfassen, können eine oder mehrere der CPUs 906 eine oder mehrere vCPUs umfassen, und/oder können eine oder mehrere der Logikeinheiten 920 eine oder mehrere virtuelle Logikeinheiten umfassen. Beispielsweise kann eine Rechenvorrichtung 900 diskrete Komponenten (z.B. eine vollständige GPU, die der Rechenvorrichtung 900 zugeordnet ist), virtuelle Komponenten (z.B. einen Teil einer GPU, die der Rechenvorrichtung 900 zugeordnet ist) oder eine Kombination davon beinhalten.
  • Obwohl die verschiedenen Blöcke von 9 als über den Bus 902 mit Leitungen verbunden dargestellt sind, soll dies nicht beschränkend sein und dient nur der Klarheit. Beispielsweise kann in einigen Ausführungsformen eine Darstellungskomponente 918, wie z.B. eine Anzeigevorrichtung, als eine E/A-Komponente 914 betrachtet werden (z.B. wenn die Anzeige ein Touchscreen ist). Als ein weiteres Beispiel können die CPUs 906 und/oder die GPUs 908 Speicher beinhalten (z.B. kann der Speicher 904 für eine Speichervorrichtung zusätzlich zu dem Speicher der GPUs 908, der CPUs 906 und/oder anderer Komponenten repräsentativ sein). Mit anderen Worten ist die Rechenvorrichtung von 9 lediglich veranschaulichend. Es wird nicht zwischen solchen Kategorien wie „Arbeitsstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Vorrichtung“, „mobile Vorrichtung“, „Handheld-Vorrichtung ‟, „Spielkonsole“, „elektronische Steuereinheit (ECU)“, „Virtual-Reality-System“ und/oder anderen Vorrichtungs- oder Systemtypen unterschieden, da alle als im Rahmen des Rechenvorrichtung von 9 liegend betrachtet werden.
  • Das Interconnect- bzw. Verbindungssystem Bus 902 kann eine(n) oder mehrere Verbindungen bzw. Busse repräsentieren, wie beispielsweise einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination derselben. Das Interconnect- bzw. Verbindungssystem 902 kann einen oder mehrere Bus- oder Verbindungstypen beinhalten, wie beispielsweise einen Industry Standard Architecture (ISA)-Bus, einen Extended Industry Standard Architecture (EISA)-Bus, einen Video Electronics Standards Association (VESA-Bus), einen Peripheral Component Interconnect (PCI)-Bus, einen Peripheral Component Interconnect Express (PCIe)-Bus und/oder einen anderen Bustyp oder Verbindungstyp. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen Komponenten. Zum Beispiel kann die CPU 906 direkt mit dem Speicher 904 verbunden sein. Ferner kann die CPU 906 direkt mit der GPU 908 verbunden sein. Bei direkten oder Punkt-zu-Punkt-Verbindungen zwischen Komponenten kann das Verbindungssystem 902 eine PCIe-Verbindung enthalten, um die Verbindung auszuführen. In diesen Beispielen braucht ein PCI-Bus nicht in der Recheneinheit 900 enthalten zu sein.
  • Der Speicher 904 kann ein beliebiges einer Vielzahl von computerlesbaren Medien beinhalten. Die computerlesbaren Medien können beliebige verfügbare Medien sein, auf die von der Rechenvorrichtung 900 zugegriffen werden kann. Die computerlesbaren Medien können sowohl flüchtige als auch nichtflüchtige Medien sowie entnehmbare und nicht entnehmbare Medien beinhalten. Beispielhaft und nicht beschränkend können die computerlesbaren Medien Computer-Speichermedien und Kommunikationsmedien umfassen.
  • Die Computer-Speichermedien können sowohl flüchtige als auch nichtflüchtige Medien und/oder entnehmbare und nicht entnehmbare Medien beinhalten, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen wie beispielsweise computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder anderen Datentypen implementiert sind. Zum Beispiel kann der Speicher 904 computerlesbare Anweisungen speichern (die z.B. ein oder mehrere Programm(e) und/oder ein oder mehrere Programmelement(e), wie beispielsweise ein Betriebssystem, repräsentieren). Computer-Speichermedien können, ohne darauf beschränkt zu sein, RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes beliebige andere Medium beinhalten, welches dazu verwendet werden kann, die gewünschten Informationen zu speichern und auf welche von der Rechenvorrichtung 900 zugegriffen werden kann. Wie hierin verwendet, umfassen Computerspeichermedien keine Signale per se.
  • Die Computer-Speichermedien können computerlesbare Anweisungen, Datenstrukturen, Programmodule und/oder andere Datentypen in einem modulierten Datensignal wie beispielsweise einer Trägerwelle oder einem anderen Transportmechanismus verkörpern und umfassen beliebige Informationslieferungsmedien. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, bei dem eine oder mehrere seiner Eigenschaften so festgelegt oder geändert wurden, dass Informationen in dem Signal kodiert werden. Beispielhaft und nicht beschränkend können die Kommunikationsmedien drahtgebundene Medien wie beispielsweise ein drahtgebundenes Netzwerk oder eine direkt verdrahtete Verbindung sowie drahtlose Medien wie beispielsweise akustische, HF-, Infrarot- und andere drahtlose Medien beinhalten. Kombinationen von Beliebigem des Vorstehenden sollten ebenfalls in den Rahmen computerlesbarer Medien einbezogen werden.
  • Die CPU(s) 906 kann/können dazu konfiguriert sein, die computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten der Rechenvorrichtung 900 auszuführen, um eines oder mehrere der hierin beschriebenen Verfahren und/oder Prozesse auszuführen. Die CPU(s) 906 kann/können jeweils einen oder mehrere Kerne (z.B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) beinhalten, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPU(s) 906 kann/können eine beliebige Art von Prozessor beinhalten, und kann/können je nach Art der implementierten Rechenvorrichtung 900 verschiedene Typen von Prozessoren beinhalten (z.B. Prozessoren mit weniger Kernen für mobile Vorrichtungen und Prozessoren mit mehr Kernen für Server). Je nach Typ der Rechenvorrichtung 900 kann der Prozessor z.B. ein ARM-Prozessor sein, der unter Verwendung von Reduced Instruction Set Computing (RISC) implementiert ist, oder ein x86-Prozessor, der unter Verwendung von Complex Instruction Set Computing (CISC) implementiert ist. Die Rechenvorrichtung 900 kann eine oder mehrere CPUs 906 zusätzlich zu einem oder mehreren Mikroprozessoren oder ergänzenden Coprozessoren, wie z.B. mathematischen Coprozessoren, beinhalten.
  • Zusätzlich zu oder alternativ zu der/den CPU(s) 906 kann/können die GPU(s) 908 dazu konfiguriert sein, zumindest einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Rechenvorrichtung 900 zu steuern, um eines/n oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Eine oder mehrere der GPU(s) 908 können eine integrierte GPU sein (z.B. mit einer oder mehreren der CPU(s) 906) und/oder eine oder mehrere der GPU(s) 908 können eine diskrete GPU sein. In einigen Ausführungsformen kann eine oder mehrere der GPU(s) 908 ein Coprozessor einer oder mehrerer der CPU(s) 906 sein. Die GPU(s) 908 kann/können von der Rechenvorrichtung 900 zum Rendern von Grafiken (z.B. 3D-Grafiken) verwendet werden. Die GPU(s) 908 kann/können Hunderte oder Tausende von Kernen beinhalten, die in der Lage sind, Hunderte oder Tausende von Software-Threads gleichzeitig zu verarbeiten. Die GPU(s) 908 kann/können Pixeldaten für Ausgabebilder im Ansprechen auf Rendering-Anweisungen (z.B. Rendering-Anweisungen von der/den CPU(s) 906, die über eine Host-Schnittstelle empfangen werden) erzeugen. Die GPU(s) 908 kann/können Grafikspeicher, wie z.B. Anzeigespeicher, zur Speicherung von Pixeldaten beinhalten. Der Anzeigespeicher kann als Teil des Speichers 904 enthalten sein. Die GPU(s) 908 kann/können zwei oder mehr parallel (z.B. über eine Verbindung) arbeitende GPUs beinhalten. Wenn sie miteinander kombiniert sind, kann jede GPU 908 Pixeldaten für verschiedene Teile eines Ausgabebilds oder für verschiedene Ausgabebilder erzeugen (z.B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann ihren eigenen Speicher beinhalten, oder kann Speicher mit anderen GPUs gemeinsam nutzen.
  • Zusätzlich zu oder alternativ zu der (den) CPU(s) 906 und/oder der (den) GPU(s) 908 kann (können) die Logikeinheit(en) 920 dazu konfiguriert sein, zumindest einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Rechenvorrichtungen 900 zu steuern, um eines/n oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. In Ausführungsformen können die CPU(s) 906, die GPU(s) 908 und/oder die Logikeinheit(en) 920 diskret oder gemeinsam eine beliebige Kombination der Methoden, Prozesse und/oder Teile davon ausführen. Eine oder mehrere der Logikeinheiten 920 können Teil einer oder mehrerer der CPU(s) 906 und/oder der GPU(s) 908 sein und/oder eine oder mehrere der Logikeinheiten 920 können diskrete Komponenten sein oder anderweitig außerhalb der CPU(s) 906 und/oder der GPU(s) 908 liegen. In Ausführungsformen kann eine oder mehrere der Logikeinheiten 920 ein Coprozessor einer oder mehrerer der CPU(s) 906 und/oder einer oder mehrerer der GPU(s) 908 sein.
  • Beispiele für die Logikeinheit(en) 920 beinhalten einen oder mehrere Verarbeitungskerne und/oder Komponenten davon, wie z. B. Tensorkerne (TCs), Tensor Processing Units (TPUs), Pixel Visual Cores (PVCs), Vision Processing Units (VPUs), Graphics Processing Clusters (GPCs), Texture Processing Clusters (TPCs), Streaming Multiprocessors (SMs), Tree Traversal Units (TTUs), Artificial Intelligence Accelerators (AlAs), Deep Learning Accelerators (DLAs), Arithmetik-Logik-Einheiten (ALUs), anwendungsspezifische integrierte Schaltungen (ASICs), Fließkomma-Einheiten (FPUs), Eingabe-/Ausgabe-Elemente (E/A), Peripheral Component Interconnect (PCI)- oder Peripheral Component Interconnect Express (PCIe)-Elemente und/oder dergleichen.
  • Die Kommunikationsschnittstelle 910 kann einen oder mehrere Empfänger, Sender und/oder Sender-Empfänger beinhalten, die es der Rechenvorrichtung 700 ermöglichen, mit anderen Computergeräten über ein elektronisches Kommunikationsnetz, einschließlich drahtgebundener und/oder drahtloser Kommunikation, zu kommunizieren. Die Kommunikationsschnittstelle 910 kann Komponenten und Funktionalität beinhalten, die eine Kommunikation über ein beliebiges einer Anzahl verschiedener Netzwerke, wie beispielsweise drahtlose Netzwerke (z.B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), drahtgebundene Netzwerke (z.B. Kommunikation über Ethernet), Weitverkehrsnetzwerke mit geringem Stromverbrauch (z.B. LoRaWAN, SigFox usw.) und/oder das Internet ermöglichen.
  • Die E/A-Ports 912 können es der Rechenvorrichtung 900 ermöglichen, logisch mit anderen Vorrichtungen einschließlich der E/A-Komponenten 914, der Präsentationskomponente(n) 918 und/oder anderer Komponenten, von welchen einige in die Rechenvorrichtung 900 eingebaut (z.B. integriert) sein können, gekoppelt zu sein. Illustrative E/A-Komponenten 914 beinhalten ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, eine Spielsteuereinrichtung, eine Satellitenantenne, einen Scanner, einen Drucker, eine drahtlose Vorrichtung usw. Die E/A-Komponenten 914 können eine natürliche Benutzerschnittstelle (NUI; natural user interface) bereitstellen, die Luftgesten, Stimme oder andere physiologische Inputs, die von einem Benutzer erzeugt werden, verarbeitet. In einigen Fällen können Inputs zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination von Spracherkennung, Taststifterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf einem Bildschirm als auch neben dem Bildschirm, Luftgesten, Kopf- und Augenverfolgung und Berührungserkennung (wie nachstehend näher beschrieben) in Verbindung mit einer Anzeige der Rechenvorrichtung 900 implementieren. Die Rechenvorrichtung 900 kann Tiefenkameras, wie beispielsweise stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen derselben, zur Gestenerfassung und Gestenerkennung beinhalten. Darüber hinaus kann die Rechenvorrichtung 900 Beschleunigungsmesser oder Gyroskope (z.B. als Teil einer Trägheitsmesseinheit (IMU)) beinhalten, die die Erfassung von Bewegung ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope von der Rechenvorrichtung 900 dazu verwendet werden, immersive erweiterte Realität oder virtuelle Realität zu rendern.
  • Die Stromversorgung 916 kann eine fest verdrahtete Stromversorgung, eine Batteriestromversorgung oder eine Kombination derselben beinhalten. Die Stromversorgung 916 kann die Rechenvorrichtung 900 mit Energie versorgen, um den Betrieb der Komponenten der Rechenvorrichtung 900 zu ermöglichen.
  • Die eine oder mehreren Präsentationskomponente(n) 918 kann/können eine Anzeige (z.B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, eine Head-up-Anzeige (HUD), andere Anzeigetypen oder eine Kombination derselben), Lautsprecher und/oder andere Präsentationskomponenten beinhalten. Die Präsentationskomponente(n) 918 kann/können Daten von anderen Komponenten (z.B. der/den GPU(s) 908, der/den CPU(s) 906 usw.) empfangen und die Daten (z.B. als ein Bild, Video, Ton usw.) ausgeben.
  • BEISPIELHAFTES RECHENZENTRUM
  • 10 veranschaulicht ein Beispiel für ein Rechenzentrum 1000, das in mindestens einer Ausführungsform der Erfindung verwendet werden kann. Das Rechenzentrum 1000 kann eine Rechenzentrumsinfrastrukturschicht 1010, eine Rahmenschicht 1020, eine Softwareschicht 1030 und/oder eine Anwendungsschicht 1040 umfassen.
  • Wie in 10 gezeigt, kann die Infrastrukturschicht 1010 des Rechenzentrums einen Ressourcen-Orchestrator 1012, gruppierte Rechenressourcen 1014 und Knotenrechenressourcen („Knoten-C.R.s“) 1016(1)-1016(N) umfassen, wobei „N“ eine beliebige ganze, positive Zahl darstellt. In mindestens einer Ausführungsform können die Knoten-C.R.s 1016(1)-1016(N) eine beliebige Anzahl von Zentraleinheiten („CPUs“) oder anderen Prozessoren (einschließlich Beschleunigern, feldprogrammierbaren Gate-Arrays (FPGAs), Grafikprozessoren oder Grafikverarbeitungseinheiten (GPUs) usw.), Speichergeräten (z.B., dynamischer Festwertspeicher), Speichergeräte (z.B. Festkörper- oder Festplattenlaufwerke), Netzwerk-Eingabe-/Ausgabegeräte („NW I/O“), Netzwerk-Switches, virtuelle Maschinen („VMs“), Stromversorgungsmodule und/oder Kühlmodule, usw. In einigen Ausführungsformen können ein oder mehrere Knoten-C.R.s unter den Knoten-C.R.s 1016(1)-1016(N) einem Server entsprechen, der über eine oder mehrere der oben erwähnten Rechenressourcen verfügt. Darüber hinaus können in einigen Ausführungsformen die Knoten C.R.s 1016(1)-10161(N) eine oder mehrere virtuelle Komponenten enthalten, wie z.B. vGPUs, vCPUs und/oder dergleichen, und/oder einer oder mehrere der Knoten C.R.s 1016(1)-1016(N) können einer virtuellen Maschine (VM) entsprechen.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 1014 separate Gruppierungen von Knoten-CRs 1016 umfassen, die in einem oder mehreren Racks (nicht dargestellt) oder in vielen Racks in Datenzentren an verschiedenen geografischen Standorten (ebenfalls nicht dargestellt) untergebracht sind. Getrennte Gruppierungen von Knoten-C.R.s 1016 innerhalb gruppierter Rechenressourcen 1014 können gruppierte Rechen-, Netzwerk-, Speicher- oder Speicherressourcen umfassen, die zur Unterstützung einer oder mehrerer Arbeitslasten konfiguriert oder zugewiesen werden können. In mindestens einer Ausführungsform können mehrere Knoten-CRs 1016 einschließlich CPUs, GPUs und/oder anderer Prozessoren in einem oder mehreren Racks gruppiert werden, um Rechenressourcen zur Unterstützung einer oder mehrerer Arbeitslasten bereitzustellen. Das eine oder die mehreren Racks können auch eine beliebige Anzahl von Stromversorgungsmodulen, Kühlmodulen und/oder Netzwerk-Switches in beliebiger Kombination enthalten.
  • Der Ressourcen-Orchestrator 1022 kann einen oder mehrere Knoten-CRs 1016(1)-1016(N) und/oder gruppierte Rechenressourcen 1014 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator 1022 eine Software-Design-Infrastruktur („SDI“)-Verwaltungseinheit für das Rechenzentrum 1000 umfassen. Der Ressourcen-Orchestrator 1022 kann Hardware, Software oder eine Kombination davon umfassen.
  • In mindestens einer Ausführungsform, wie in 10 gezeigt, kann die Rahmenschicht 1020 einen Job Scheduler 1032, einen Konfigurationsmanager 1034, einen Ressourcenmanager 1036 und/oder ein verteiltes Dateisystem 1038 enthalten. Die Rahmenschicht 1020 kann einen Rahmen zur Unterstützung der Software 1032 der Softwareschicht 1030 und/oder einer oder mehrerer Anwendung(en) 1042 der Anwendungsschicht 1040 enthalten. Die Software 1032 oder die Anwendung(en) 1042 können jeweils webbasierte Dienstsoftware oder Anwendungen umfassen, wie sie von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. Bei der Framework-Schicht 1020 kann es sich um eine Art freies und quelloffenes Software-Webanwendungs-Framework wie Apache Spark™ (im Folgenden „Spark“) handeln, das ein verteiltes Dateisystem 1038 für die Verarbeitung großer Datenmengen (z.B. „Big Data“) nutzen kann, ist aber nicht darauf beschränkt. In mindestens einer Ausführungsform kann der Job Scheduler 1032 einen Spark-Treiber enthalten, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Rechenzentrums 1000 unterstützt werden. Der Konfigurationsmanager 1034 kann in der Lage sein, verschiedene Schichten zu konfigurieren, z.B. die Softwareschicht 1030 und die Rahmenschicht 1020 einschließlich Spark und das verteilte Dateisystem 1038 zur Unterstützung der Verarbeitung großer Datenmengen. Der Ressourcenmanager 1036 kann in der Lage sein, geclusterte oder gruppierte Computerressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 1038 und des Job Schedulers 1032 zugeordnet sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Rechenressourcen gruppierte Rechenressourcen 1014 auf der Infrastrukturschicht 1010 des Rechenzentrums umfassen. Der Ressourcenmanager 1036 kann sich mit dem Ressourcen-Orchestrator 1012 abstimmen, um diese zugeordneten oder zugewiesenen Computerressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die in der Softwareschicht 1030 enthaltene Software 1032 Software enthalten, die von mindestens Teilen der Knoten C.R.s 1016(1)-1016(N), der gruppierten Rechenressourcen 1014 und/oder des verteilten Dateisystems 1038 der Rahmenschicht 1020 verwendet wird. Eine oder mehrere Arten von Software können unter anderem Internet-Suchsoftware, E-Mail-Virenscan-Software, Datenbanksoftware und Software für Streaming-Videoinhalte umfassen.
  • In mindestens einer Ausführungsform kann (können) die in der Anwendungsschicht 1040 enthaltene(n) Anwendung(en) 1042 eine oder mehrere Arten von Anwendungen umfassen, die von mindestens Teilen der Knoten C.R.s 1016(1)-1016(N), gruppierten Rechenressourcen 1014 und/oder dem verteilten Dateisystem 1038 der Rahmenschicht 1020 verwendet werden. Eine oder mehrere Arten von Anwendungen können eine beliebige Anzahl von Genomanwendungen, kognitiven Berechnungen und Anwendungen für maschinelles Lernen umfassen, einschließlich Trainings- oder Inferenzierungssoftware, Framework-Software für maschinelles Lernen (z.B. PyTorch, TensorFlow, Caffe usw.) und/oder andere Anwendungen für maschinelles Lernen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden, sind aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform können der Konfigurationsmanager 1034, der Ressourcenmanager 1036 und der Ressourcen-Orchestrator 1012 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen implementieren, die auf einer beliebigen Menge und Art von Daten basieren, die auf jede technisch mögliche Weise erfasst wurden. Selbstmodifizierende Aktionen können einen Rechenzentrumsbetreiber des Rechenzentrums 1000 davon entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Teile eines Rechenzentrums zu vermeiden.
  • Das Rechenzentrum 1000 kann Werkzeuge, Dienste, Software oder andere Ressourcen enthalten, um ein oder mehrere Modelle maschinellen Lernens zu trainieren oder Informationen unter Verwendung eines oder mehrerer Modelle maschinellen Lernens gemäß einer oder mehrerer hierin beschriebener Ausführungsformen vorherzusagen oder abzuleiten. Beispielsweise kann ein Modell maschinellen Lernens bzw. können Modelle maschinellen Lernens trainiert werden, indem Gewichtsparameter gemäß einer neuronalen Netzwerkarchitektur unter Verwendung von Software und/oder Computerressourcen berechnet werden, die oben in Bezug auf das Datenzentrum 1000 beschrieben wurden. In mindestens einer Ausführungsform können trainierte oder eingesetzte Modelle maschinellen Lernens, die einem oder mehreren neuronalen Netzen entsprechen, verwendet werden, um Informationen abzuleiten oder vorherzusagen, wobei die oben beschriebenen Ressourcen in Bezug auf das Datenzentrum 1000 verwendet werden, indem Gewichtungsparameter verwendet werden, die durch eine oder mehrere Trainingstechniken berechnet werden, wie z.B., aber nicht beschränkt auf die hierin beschriebenen.
  • In mindestens einer Ausführungsform kann das Rechenzentrum 1000 CPUs, anwendungsspezifische integrierte Schaltkreise (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 oben beschriebenen Software- und/oder Hardwareressourcen als ein Dienst konfiguriert sein, um Benutzern das Training oder die Inferenzierung von Informationen zu ermöglichen, wie z.B. Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • BEISPIELHAFTE NETZWERKUMGEBUNGEN
  • Netzwerkumgebungen, die für die Verwendung bei der Implementierung von Ausführungsformen der Erfindung geeignet sind, können ein oder mehrere Client-Geräte, Server, Network Attached Storage (NAS), andere Backend-Geräte und/oder andere Gerätetypen umfassen. Die Client-Geräte, Server und/oder anderen Gerätetypen (z.B. jedes Gerät) können auf einer oder mehreren Instanzen der Rechenvorrichtung 900 von 9 implementiert sein - z.B. kann jedes Gerät ähnliche Komponenten, Merkmale und/oder Funktionalität der Rechenvorrichtung 900 enthalten. Wenn Backend-Geräte (z.B. Server, NAS usw.) implementiert sind, können die Backend-Geräte außerdem Teil eines Rechenzentrums 1000 sein, dessen Beispiel hierin in Bezug auf 10 näher beschrieben wird.
  • Komponenten einer Netzumgebung können über ein oder mehrere Netzwerke miteinander kommunizieren, die drahtgebunden, drahtlos oder beides sein können. Das Netzwerk kann mehrere Netzwerke oder ein Netzwerk von Netzen umfassen. So kann das Netzwerk beispielsweise ein oder mehrere Wide Area Networks (WANs), ein oder mehrere Local Area Networks (LANs), ein oder mehrere öffentliche Netzwerke wie das Internet und/oder ein öffentliches Telefonnetzwerk (PSTN) und/oder ein oder mehrere private Netzwerke umfassen. Wenn das Netzwerk ein drahtloses Telekommunikationsnetzwerk umfasst, können Komponenten wie eine Basisstation, ein Kommunikationsturm oder sogar Zugangspunkte (sowie andere Komponenten) eine drahtlose Konnektivität bereitstellen.
  • Kompatible Netzwerkumgebungen können eine oder mehrere Peer-to-Peer-Netzwerkumgebungen - in diesem Fall kann ein Server nicht in einer Netzwerkumgebung enthalten sein - und eine oder mehrere Client-Server-Netzwerkumgebungen - in diesem Fall können ein oder mehrere Server in einer Netzwerkumgebung enthalten sein - beinhalten. In Peer-to-Peer-Netzwerkumgebungen kann die hierin beschriebene Funktionalität in Bezug auf einen oder mehrere Server auf einer beliebigen Anzahl von Client-Geräten implementiert sein.
  • In mindestens einer Ausführungsform kann eine Netzwerkumgebung eine oder mehrere Cloud-basierte Netzumgebungen, eine verteilte Rechenumgebung, eine Kombination davon usw. umfassen. Eine Cloud-basierte Netzwerkumgebung kann eine Frameworkschicht, einen Job Scheduler, einen Ressourcenverwalter und ein verteiltes Dateisystem umfassen, die auf einem oder mehreren Servern implementiert sind, die einen oder mehrere Core-Netzwerk-Server und/oder Edge-Server umfassen können. Eine Frameworkschicht kann ein Framework zur Unterstützung von Software einer Softwareschicht und/oder einer oder mehrerer Anwendungen einer Anwendungsschicht umfassen. Die Software oder die Anwendung(en) können jeweils webbasierte Dienstsoftware oder Anwendungen umfassen. In Ausführungsformen können ein oder mehrere Client-Geräte die webbasierte Dienstsoftware oder Anwendungen nutzen (z.B. durch Zugriff auf die Dienstsoftware und/oder Anwendungen über eine oder mehrere Anwendungsprogrammierschnittstellen (APIs)). Bei der Frameworkschicht kann es sich um eine Art von freiem und quelloffenem Software-Webanwendungs-Framework handeln, das z.B. ein verteiltes Dateisystem für die Verarbeitung großer Datenmengen (z.B. „Big Data“) verwendet, ohne darauf beschränkt zu sein.
  • Eine Cloud-basierte Netzwerkumgebung kann Cloud-Computing und/oder Cloud-Speicher bereitstellen, die eine beliebige Kombination der hierin beschriebenen Rechen- und/oder Datenspeicherfunktionen (oder einen oder mehrere Teile davon) ausführen. Jede dieser verschiedenen Funktionen kann über mehrere Standorte von zentralen oder Core-Servern (z.B. von einem oder mehreren Rechenzentren, die über einen Staat, eine Region, ein Land, den Globus usw. verteilt sein können) verteilt sein. Befindet sich eine Verbindung zu einem Benutzer (z.B. einem Client-Gerät) relativ nahe an einem oder mehreren Edge-Servern, kann ein Core-Server zumindest einen Teil der Funktionalität dem oder den Edge-Servern zuweisen. Eine Cloud-basierte Netzwerkumgebung kann privat (z.B. auf eine einzelne Organisation beschränkt), öffentlich (z.B. für viele Organisationen verfügbar) und/oder eine Kombination davon (z.B. eine hybride Cloud-Umgebung) sein.
  • Das (die) Client-Gerät(e) kann (können) zumindest einige der Komponenten, Merkmale und Funktionen der hierin in Bezug auf 9 beschriebenen beispielhaften Rechenvorrichtung(en) 900 enthalten. Beispielhaft und ohne Beschränkung darauf kann ein Client-Gerät als ein Personal Computer (PC), ein Laptop, ein mobiles Gerät, ein Smartphone, ein Tablet-Computer, eine Smartwatch, ein tragbarer Computer, ein Personal Digital Assistant (PDA), ein MP3-Player, ein Virtual-Reality-Headset, ein Global Positioning System (GPS) oder ein Gerät, ein Videoplayer, eine Videokamera, ein Überwachungsgerät oder -system, ein Fahrzeug, ein Boot, ein Luftfahrzeug, eine virtuelle Maschine, eine Drohne, ein Roboter, ein tragbares Kommunikationsgerät, ein Krankenhausgerät, ein Spielgerät oder -system, ein Unterhaltungssystem, ein Fahrzeugcomputersystem, ein eingebettetes Systemsteuergerät, eine Fernbedienung, ein Gerät, ein Unterhaltungselektronikgerät, eine Workstation, ein Edge-Gerät, eine beliebige Kombination dieser beschriebenen Geräte oder jedes andere geeignete Gerät verkörpert sein.
  • BEISPIELHAFTES AUTONOMES FAHRZEUG
  • 11A ist eine Darstellung eines beispielhaften autonomen Fahrzeugs 1100, gemäß einigen Ausführungsformen der Erfindung. Das autonome Fahrzeug 1100 (hierin alternativ als das „Fahrzeug 1100“ bezeichnet) kann, ohne Beschränkung darauf, ein Personenfahrzeug sein, wie z.B. ein Pkw, ein Lkw, ein Bus, ein First-Responder-Fahrzeug, ein Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, ein Feuerwehrauto, ein Polizeifahrzeug, ein Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne und/oder eine andere Art von Fahrzeug (z.B., das unbemannt ist und/oder einen oder mehrere Passagiere aufnimmt). Autonome Fahrzeuge werden allgemein im Hinblick auf Automatisierungsgrade 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“ (Norm Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Norm Nr. J3016-201609, veröffentlicht am 30. September 2016, sowie frühere und zukünftige Versionen dieser Norm) definiert werden. Das Fahrzeug 1100 kann zu Funktionalität in Übereinstimmung mit einem oder mehreren der Level 3 - Level 5 der autonomen Fahrstufen in der Lage sein. Beispielsweise kann das Fahrzeug 1100 je nach Ausführungsform zu einer bedingten Automatisierung (Level 3), einer hohen Automatisierung (Level 4) und/oder einer vollständigen Automatisierung (Level 5) in der Lage sein.
  • Das Fahrzeug 1100 kann Komponenten wie ein Fahrgestell, einen Fahrzeugaufbau, Räder (z.B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs beinhalten. Das Fahrzeug 1100 kann ein Antriebssystem 1150 beinhalten, wie z.B. einen Verbrennungsmotor, ein Hybrid-Elektrokraftwerk, einen vollelektrischen Motor und/oder einen anderen Antriebssystemtyp. Das Antriebssystem 1150 kann mit einem Antriebsstrang des Fahrzeugs 1100 verbunden sein, der ein Getriebe beinhalten kann, um den Antrieb des Fahrzeugs 1100 zu ermöglichen. Das Antriebssystem 1150 kann im Ansprechen auf einen Empfang von Signalen von der Drosselklappe/dem Beschleuniger 1152 gesteuert werden.
  • Ein Lenksystem 1154, das ein Lenkrad beinhalten kann, kann dazu verwendet werden, das Fahrzeug 1100 zu lenken (z.B. entlang eines gewünschten Weges oder einer gewünschten Route), wenn das Antriebssystem 1150 in Betrieb ist (z.B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 1154 kann Signale von einem Lenkaktuator bzw. -stellglied 1156 empfangen. Das Lenkrad kann für vollständige Automatisierung (Level 5) optional sein.
  • Das Bremssensorsystem 1146 kann dazu verwendet werden, die Fahrzeugbremsen im Ansprechen auf einen Empfang von Signalen von den Bremsaktuatoren bzw. -stellgliedern 1148 und/oder Bremssensoren zu betätigen.
  • Eine oder mehrere Steuereinrichtung(en) 1136, die ein oder mehrere System(e) auf Chips (SoCs) 1104 (11C) und/oder GPU(s) beinhalten kann/können, kann/können Signale (z.B. repräsentativ für Befehle) an ein(e) oder mehrere Komponenten und/oder Systeme des Fahrzeugs 1100 liefern. Zum Beispiel kann/können die Steuereinrichtungen) Signale zur Betätigung der Fahrzeugbremsen über einen oder mehrere Bremsaktuatoren 1148, zur Betätigung des Lenksystems 1154 über einen oder mehrere Lenkaktuatoren 1156, zur Betätigung des Antriebssystems 1150 über einen oder mehrere Drosselklappen/Beschleuniger 1152 senden. Die Steuereinrichtung(en) 1136 kann/können ein oder mehrere bordeigene (z.B. integrierte) Rechenvorrichtungen (z.B. Supercomputer) beinhalten, die Sensorsignale verarbeiten und Betriebsbefehle (z.B. Signale, die Anweisungen repräsentieren) ausgeben, um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Führen des Fahrzeugs 1100 zu unterstützen. Die Steuereinrichtung(en) 1136 kann/können eine erste Steuereinrichtung 1136 für autonome Fahrfunktionen, eine zweite Steuereinrichtung 1136 für funktionale Sicherheitsfunktionen, eine dritte Steuereinrichtung 1136 für Funktionen der künstlichen Intelligenz (z.B. Computer Vision), eine vierte Steuereinrichtung 1136 für Infotainmentfunktionen, eine fünfte Steuereinrichtung 1136 für Redundanz in Notfällen und/oder andere Steuereinrichtungen umfassen. In einigen Beispielen kann eine einzelne Steuereinrichtung 1136 zwei oder mehr der vorstehend genannten Funktionalitäten handhaben, können zwei oder mehr Steuereinrichtungen 1136 eine einzelne Funktionalität handhaben, und/oder eine beliebige Kombination davon.
  • Die Steuereinrichtung(en) 1136 kann/können die Signale zur Steuerung einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 1100 im Ansprechen auf von einem oder mehreren Sensoren empfangene Sensordaten (z.B. Sensor-Inputs) bereitstellen. Die Sensordaten können z.B. und ohne Beschränkung darauf von einem oder mehreren Sensoren für globale Satellitennavigationssysteme 1158 (z.B. von einem oder mehreren Global Positioning System-Sensor(en), RADAR-Sensor(en) 1160, Ultraschall-Sensor(en) 1162, LIDAR-Sensor(en) 1164, Trägheitsmesseinheits- bzw. Inertial Measurement Unit (IMU)-Sensor(en) 1166 (z.B. Beschleunigungsmesser, Gyroskop(e), Magnetkompass(e), Magnetometer usw.), Mikrofon(e) 1196, Stereokamera(s) 1168, Weitwinkelkamera(s) 1170 (z.B. Fisheye-Kameras), Infrarotkamera(s) 1172, Surround-Kamera(s) 1174 (z.B. 360-Grad-Kameras), Fern- und/oder Mittelbereichskamera(s) 1198, Geschwindigkeitssensor(en) 1144 (z.B. zur Messung der Geschwindigkeit des Fahrzeugs 1100), Vibrationssensor(en) 1142, Lenksensor(en) 1140, Bremssensor(en) (z.B. als Teil des Bremssensorsystems 1146) und/oder anderen Sensortypen empfangen werden.
  • Eine oder mehrere der Steuereinrichtung(en) 1136 kann/können Eingaben (z.B. dargestellt durch Eingangsdaten) von einem Kombiinstrument 1132 des Fahrzeugs 1100 empfangen und Ausgaben (z.B. dargestellt durch Ausgangsdaten, Anzeigedaten usw.) über eine Anzeige 1134 einer Mensch-Maschine-Schnittstelle (HMI), einen akustischen Signalgeber, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 1100 bereitstellen. Die Ausgaben können Informationen wie beispielsweise Fahrzeuggeschwindigkeit, Geschwindigkeit, Zeit, Kartendaten (z.B. die HD-Karte 1122 von 11C), Standortdaten (z.B. die Position des Fahrzeugs 1100, wie beispielsweise auf einer Karte), Richtung, Position anderer Fahrzeuge (z.B. ein Belegungsraster), Informationen über Objekte und den Status von Objekten, wie von der/den Steuereinrichtung(en) 1136 wahrgenommen, usw. beinhalten. Beispielsweise kann die HMI-Anzeige 1134 Informationen über das Vorhandensein eines oder mehrerer Objekte (z.B. ein Straßenschild, ein Warnschild, einen Ampelwechsel usw.) und/oder Informationen über Fahrmanöver, die das Fahrzeug durchgeführt hat, durchführt oder durchführen wird (z.B. Spurwechsel jetzt, Ausfahrt 34B in zwei Meilen, usw.) anzeigen.
  • Das Fahrzeug 1100 beinhaltet ferner eine Netzwerkschnittstelle 1124, welche eine oder mehrere drahtlose Antenne(n) 1126 und/oder ein oder mehrere Modem(s) zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Zum Beispiel kann die Netzwerkschnittstelle 1124 in der Lage sein, über LTE, WCDMA, UMTS, GSM, CDMA2000 usw. zu kommunizieren. Die drahtlose(n) Antenne(n) 1126 kann/können unter Verwendung von lokalen Netzwerken, wie beispielsweise Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw., und/oder Breitbandnetzwerken mit geringer Leistung (LPWANs), wie beispielsweise LoRaWAN, SigFox usw., auch die Kommunikation zwischen Objekten in der Umgebung (z.B. Fahrzeugen, mobilen Geräten usw.) ermöglichen.
  • 11B ist ein Beispiel für Kamerastandorte und Sichtfelder für das beispielhafte autonome Fahrzeug 1100 von 11A, gemäß einigen Ausführungsformen der Erfindung. Die Kameras und die entsprechenden Sichtfelder sind eine beispielhafte Ausführungsform und sollen nicht beschränkend sein. Beispielsweise können zusätzliche und/oder alternative Kameras enthalten sein und/oder können sich die Kameras an verschiedenen Orten auf dem Fahrzeug 1100 befinden.
  • Die Kameratypen für die Kameras können, ohne darauf beschränkt zu sein, Digitalkameras beinhalten, die für die Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 1100 angepasst sein können. Die Kamera(s) können auf einer Fahrzeugsicherheitsintegritätsstufe (Automotive Safety Integrity Level, ASIL) B und/oder einer anderen ASIL-Stufe betrieben werden. Die Kameratypen können je nach Ausführungsform zu jeder beliebigen Bildaufnahmerate in der Lage sein, z.B. zu 60 Bildern pro Sekunde (frames per second, fps), 1120 fps, 240 fps usw. Die Kameras können zur Verwendung von Rolling Shutters, Global Shutters, eines anderen Typs von Verschluss oder eine Kombination derselben in der Lage sein. In einigen Beispielen kann die Farbfilteranordnung eine Rot-Klar-Klar-Klar (RCCC)-Farbfilteranordnung, eine Rot-Klar-Klar-Blau (RCCB)-Farbfilteranordnung, eine Rot-Blau-Grün-Klar (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 Kameras mit klaren Pixeln, wie z.B. Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, dazu verwendet werden, die Lichtempfindlichkeit zu erhöhen.
  • In einigen Beispielen können eine oder mehrere der Kamera(s) dazu verwendet werden, fortgeschrittene Fahrerassistenzsystem (Advanced Driver Assistance Functions, ADAS)-Funktionen durchzuführen (z.B. als Teil eines redundanten oder ausfallsicheren Designs). Beispielsweise kann eine Multifunktions-Monokamera installiert sein, um Funktionen einschließlich Spurverlassenswarnung, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung bereitzustellen. Eine oder mehrere der Kamera(s) (z.B. alle Kameras) können gleichzeitig Bilddaten (z.B. Video) aufzeichnen und bereitstellen.
  • Eine oder mehrere der Kameras können in einer Montagebaugruppe, wie beispielsweise einer kundenspezifisch gestalteten (3-D-gedruckten) Baugruppe, montiert sein, um Streulicht und Reflexionen aus dem Fahrzeuginneren (z.B. Reflexionen von dem Armaturenbrett, die in den Windschutzscheibenspiegeln reflektiert werden), die die Bilddatenerfassungsfähigkeiten der Kamera stören könnten, auszuschließen. In Bezug auf Klappspiegelbefestigungsbaugruppen können die Klappspiegelbaugruppen kundenspezifisch 3-D-gedruckt sein, so dass die Kameramontageplatte mit der Form des Klappspiegels übereinstimmt. In einigen Beispielen kann/können die Kamera(s) in den Klappspiegel integriert sein. Bei Seitensichtkameras können die Kamera(s) auch in die vier Säulen an jeder Ecke der Kabine integriert sein.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung vor dem Fahrzeug 1100 einschließt (z.B. nach vorne gerichtete Kameras), können für Surround- bzw. Rundumsicht verwendet werden, um nach vorne gerichtete Wege und Hindernisse zu identifizieren, sowie mit Hilfe eines oder mehrerer Steuergeräte 1136 und/oder Steuerungs-SoCs bei der Bereitstellung von Informationen, die für die Erzeugung eines Belegungsrasters und/oder die Bestimmung der bevorzugten Fahrzeugpfade entscheidend sind, unterstützen. Nach vorne gerichtete Kameras können dazu verwendet werden, 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 wie Spurverlassenswarnsysteme (Lane Departure Warning, „LDW“), Autonome Geschwindigkeitsregelung (Autonomous Cruise Control, „ACC“) und/oder andere Funktionen wie Verkehrszeichenerkennung verwendet werden.
  • Eine Vielzahl von Kameras kann in einer nach vorne Konfiguration verwendet werden, einschließlich z.B. einer monokularen Kameraplattform, die einen CMOS (komplementärer Metalloxid-Halbleiter)-Farbbildsensor enthält. Ein weiteres Beispiel kann eine oder mehrere Weitwinkelkamera(s) 1170 sein, die zur Wahrnehmung von Objekten verwendet werden kann/können, die von der Peripherie aus in Sicht kommen (z.B. Fußgänger, kreuzender Verkehr oder Fahrräder). Obwohl nur eine Weitwinkelkamera in 11B dargestellt ist, können beliebig viele Weitwinkelkameras 1170 an dem Fahrzeug 1100 vorhanden sein. Darüber hinaus kann/können eine oder mehrere Fernbereichkamera(s) 1198 (z.B. ein Fernbereich-Stereokamerapaar) zur tiefenbasierten Objekterfassung verwendet werden, insbesondere für Objekte, für die ein neuronales Netzwerk noch nicht trainiert worden ist. Die Fernbereichkamera(s) 1198 kann/können auch zur Objekterfassung und -klassifizierung sowie zur grundlegenden Objektverfolgung verwendet werden.
  • Auch eine oder mehrere Stereokameras 1168 können in einer nach vorne gerichteten Konfiguration enthalten sein. Die Stereokamera(s) 1168 kann/können eine integrierte Steuereinheit mit einer skalierbaren Verarbeitungseinheit beinhalten, die eine programmierbare Logik (FPGA) und einen Mehrkern-Mikroprozessor mit einer integrierten CAN- oder Ethernet-Schnittstelle auf einem einzelnen Chip bereitstellen kann. Eine solche Einheit kann dazu verwendet werden, eine 3D-Karte der Fahrzeugumgebung zu erzeugen, einschließlich einer Entfernungsschätzung für alle Punkte im Bild. Eine oder mehrere alternative Stereokamera(s) 1168 kann/können einen oder mehrere kompakte(n) Stereovision-Sensor(en) beinhalten, der/die zwei Kameralinsen (je eine links und rechts) und einen Bildverarbeitungschip umfassen kann/können, der die Entfernung von dem Fahrzeug zu dem Zielobjekt messen und die erzeugten Informationen (z.B. Metadaten) zur Aktivierung der autonomen Notbrems- und Spurverlassenswarnfunktionen verwenden kann. Andere Arten von Stereokamera(s) 1168 können zusätzlich zu oder alternativ zu den hierin beschriebenen verwendet werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung seitlich des Fahrzeugs 1100 einschließt (z.B. Seitensichtkameras), können zur Rundumsicht verwendet werden und Informationen liefern, die zur Erstellung und Aktualisierung des Belegungsrasters sowie zur Erzeugung von Warnungen vor Seitenaufprall-Kollisionen verwendet werden. Zum Beispiel kann/können eine oder mehrere Surround-Kamera(s) 1174 (z.B. vier Surround-Kameras 1174 wie in 11B dargestellt) auf dem Fahrzeug 1100 positioniert sein. Die Surround-Kamera(s) 1174 kann/können Weitwinkelkamera(s) 1170, Fischaugen-Kamera(s), 360-Grad-Kamera(s) und/oder dergleichen beinhalten. Zum Beispiel können vier Fischaugen-Kameras an der Vorderseite, am Heck und an den Seiten des Fahrzeugs positioniert sein. In einer alternativen Anordnung kann das Fahrzeug drei Surround-Kamera(s) 1174 (z.B. links, rechts und hinten) verwenden, und kann eine oder mehrere andere Kamera(s) (z.B. eine nach vorn gerichtete Kamera) als eine vierte Rundumsicht-Kamera einsetzen.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung hinter dem Fahrzeug 1100 einschließt (z.B. Rückfahrkameras), können zur Einparkhilfe, Rundumsicht, Warnungen vor Heckaufprall und Erstellung und Aktualisierung des Belegungsrasters verwendet werden. Es kann eine breite Vielfalt von Kameras verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als nach vorn gerichtete Kamera(s) (z.B. die Fern- und/oder Mittelbereichskamera(s) 1198, die Stereokamera(s) 1168, die Infrarotkamera(s) 1172 usw.) geeignet sind, wie hierin beschrieben.
  • 11C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug 1100 von 11A, gemäß einigen Ausführungsformen der Erfindung. Es versteht sich, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele dargestellt sind. Andere Anordnungen und Elemente (z.B. Maschinen, Schnittstellen, Funktionen, Anweisungen, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Ferner sind viele der hierin beschriebenen Elemente funktionale Entitäten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und Lage implementiert werden können. Verschiedene hierin beschriebene Funktionen, die von Entitäten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der in einem Speicher gespeicherte Anweisungen ausführt.
  • Jede(s) der Komponenten, Merkmale und Systeme des Fahrzeugs 1100 in 11C sind als über einen Bus 1102 verbunden dargestellt. Der Bus 1102 kann eine Datenschnittstelle für ein Controller Area Network (CAN) (hierin alternativ als „CAN-Bus“ bezeichnet) beinhalten. Ein CAN kann ein Netzwerk innerhalb des Fahrzeugs 1100 sein, das zur Unterstützung der Steuerung verschiedener Merkmale und Funktionen des Fahrzeugs 1100, wie z.B. Bremsbetätigung, Beschleunigung, Bremsen, Lenkung, Scheibenwischer usw., verwendet wird Ein CAN-Bus kann dazu konfiguriert sein, Dutzende oder sogar Hunderte von Knoten zu haben, von denen jeder seinen eigenen eindeutigen Identifizierer (z.B. eine CAN-ID) hat. Der CAN-Bus kann ausgelesen werden, um einen Lenkradwinkel, eine Fahrgeschwindigkeit, eine Motordrehzahl (RPMs bzw. 1/min), Schalterstellungen und/oder andere Fahrzeugstatusanzeigen festzustellen. Der CAN-Bus kann ASIL B-konform sein.
  • Obwohl der Bus 1102 hierin als ein CAN-Bus beschrieben wird, soll dies nicht beschränkend sein. Zum Beispiel können zusätzlich zu dem oder alternativ zu dem CAN-Bus FlexRay und/oder Ethernet verwendet werden. Auch wenn eine einzelne Leitung zur Darstellung des Busses 1102 verwendet wird, soll dies nicht beschränkend sein. Beispielsweise kann eine beliebige Anzahl von Bussen 1102 vorhanden sein, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Arten von Bussen, die ein anderes Protokoll verwenden, beinhalten können. In einigen Beispielen können zwei oder mehr Busse 1102 zur Ausführung verschiedener Funktionen und/oder zur Redundanz verwendet werden. Beispielsweise kann ein erster Bus 1102 für die Kollisionsvermeidungsfunktionalität und ein zweiter Bus 1102 für die Betätigungssteuerung verwendet werden. In jedem Beispiel kann jeder Bus 1102 mit jeder der Komponenten des Fahrzeugs 1100 kommunizieren, und können zwei oder mehr Busse 1102 mit den gleichen Komponenten kommunizieren. In einigen Beispielen kann jeder SoC 1104, jede Steuereinrichtung 1136 und/oder jeder Computer innerhalb des Fahrzeugs Zugriff auf die gleichen Eingangsdaten (z.B. Inputs von Sensoren des Fahrzeugs 1100) haben und mit einem gemeinsamen Bus, z.B. dem CAN-Bus, verbunden sein.
  • Das Fahrzeug 1100 kann ein oder mehrere Steuereinrichtung(en) 1136 beinhalten, wie die hierin in Bezug auf 11A beschriebenen. Die Steuereinrichtung(en) 1136 kann/können für eine Vielzahl von Funktionen verwendet werden. Die Steuereinrichtung(en) 1136 kann/können mit den verschiedenen anderen Komponenten und Systemen des Fahrzeugs 1100 gekoppelt sein und kann/können zur Steuerung des Fahrzeugs 1100, der künstlichen Intelligenz des Fahrzeugs 1100, des Infotainmentsfür das Fahrzeug 1100 und/oder dergleichen verwendet werden.
  • Das Fahrzeug 1100 kann ein oder mehrere System(e) auf einem Chip (SoC) 1104 beinhalten. Das SoC 1104 kann CPU(s) 1106, GPU(s) 1108, Prozessor(en) 1110, Cache(s) 1112, Beschleuniger 1114, Datenspeicher 1116 und/oder andere nicht dargestellte Komponenten und Merkmale beinhalten. Das/die SoC(s) 1104 kann/können zur Steuerung des Fahrzeugs 1100 in einer Vielzahl von Plattformen und Systemen verwendet werden. Beispielsweise können das/die SoC(s) 1104 in einem System (z.B. dem System des Fahrzeugs 1100) mit einer HD-Karte 1122 kombiniert werden, die über eine Netzwerkschnittstelle 1124 von einem oder mehreren Servern (z. B. dem/den Server(n) 1178 von 11 D) Kartenauffrischungen und/oder Aktualisierungen erhalten kann.
  • Die CPU(s) 1106 können einen CPU-Cluster oder CPU-Komplex (hierin alternativ als „CCPLEX“ bezeichnet) beinhalten. Die CPU(s) 1106 kann/können mehrere Kerne und/oder L2-Caches beinhalten. Beispielsweise kann/können die CPU(s) 1106 in einigen Ausführungsformen acht Kerne in einer kohärenten Multiprozessor-Konfiguration beinhalten. In einigen Ausführungsformen kann/können die CPU(s) 1106 vier Dual-Core-Cluster beinhalten, wobei jeder Cluster über einen eigenen L2-Cache verfügt (z.B. einen 2 MB großen L2-Cache). Die CPU(s) 1106 (z.B. CCPLEX) kann/können dazu konfiguriert sein, gleichzeitigen Clusterbetrieb zu unterstützen, so dass jede beliebige Kombination der Cluster der CPU(s) 1106 zu jedem beliebigen Zeitpunkt aktiv sein kann.
  • Die CPU(s) 1106 kann/können Energieverwaltungsfunktionen implementieren, die eines oder mehrere der folgenden Merkmale beinhalten: einzelne Hardware-Blöcke können im Leerlauf automatisch taktgesteuert werden, um dynamische Energie zu sparen; jeder Kerntakt kann gesteuert werden, wenn der Kern aufgrund einer Ausführung von WFI/WFE-Anweisungen Anweisungen nicht aktiv ausführt; jeder Kern kann unabhängig leistungsgesteuert werden; jeder Kerncluster kann unabhängig taktgesteuert werden, wenn alle Kerne taktgesteuert oder leistungsgesteuert werden; und/oder jeder Kerncluster kann unabhängig leistungsgesteuert werden, wenn alle Kerne leistungsgesteuert werden. Die CPU(s) 1106 kann/können darüber hinaus einen erweiterten Algorithmus für die Verwaltung von Leistungszuständen implementieren, wobei zulässige Leistungszustände und erwartete Aufwachzeiten spezifiziert sind und die Hardware/der Mikrocode den besten Leistungszustand ermittelt, in den der Kern, der Cluster und der CCPLEX eintreten soll. Die Verarbeitungskerne können vereinfachte Leistungszustand-Eintrittssequenzen in Software unterstützen, wobei die Arbeit auf Mikrocode verlagert wird.
  • Die GPU(s) 1108 kann/können eine integrierte GPU (hierin alternativ als „iGPU“ bezeichnet) beinhalten. Die GPU(s) 1108 kann/können programmierbar und für parallele Arbeitslasten effizient sein. Die GPU(s) 1108 kann/können in einigen Beispielen einen erweiterten Tensor-Befehlssatz verwenden. Die GPU(s) 1108 kann/können einen oder mehrere Streaming-Mikroprozessoren beinhalten, wobei jeder Streaming-Mikroprozessor einen L1-Cache (z.B. einen L1-Cache mit zumindest 96 KB Speicherkapazität) beinhalten kann und zwei oder mehr der Streaming-Mikroprozessoren sich einen L2-Cache (z.B. einen L2-Cache mit 512 KB Speicherkapazität) teilen können. In einigen Ausführungsformen können die GPU(s) 1108 zumindest acht Streaming-Mikroprozessoren beinhalten. Die GPU(s) 1108 kann/können Compute Application Programming Interface(s) (API(s)) verwenden. Darüber hinaus kann/können die GPU(s) 1108 eine oder mehrere parallele Rechnerplattformen und/oder Programmiermodelle (z.B. CUDA von NVIDIA) verwenden.
  • Die GPU(s) 1108 kann/können für beste Leistung in Automobil- und Embedded-Anwendungsfällen leistungsoptimiert sein. Die GPU(s) 1108 kann/können beispielsweise auf einem Fin-Feldeffekttransistor (FinFET) hergestellt sein. Dies soll jedoch nicht beschränkend sein, so dass die GPU(s) 1108 unter Verwendung anderer Halbleiterherstellungsverfahren hergestellt sein kann/können. Jeder Streaming-Mikroprozessor kann eine Anzahl von Verarbeitungskernen mit gemischter Genauigkeit beinhalten, die in mehrere Blöcke unterteilt sind. Zum Beispiel und ohne Beschränkung darauf können 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke partitioniert sein. In einem solchen Beispiel können jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei gemischtgenaue NVIDIA TENSOR-COREs für Deep-Learning-Matrixarithmetik, ein L0-Befehlscache, ein Warp-Scheduler, eine Sendeeinheit und/oder eine 64 KB-Registerdatei zugewiesen sein. Darüber hinaus können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Fließkomma-Datenpfade beinhalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Rechen- und Adressierungsberechnungen zu ermöglichen. Die Streaming-Mikroprozessoren können unabhängige Thread-Scheduling-Fähigkeiten beinhalten, um eine feinkörnigere Synchronisierung und Kooperation zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Daten-Cache und eine gemeinsame Speichereinheit beinhalten, um die Leistung zu verbessern und gleichzeitig die Programmierung zu vereinfachen.
  • Die GPU(s) 1108 kann/können einen Speicher mit hoher Bandbreite (High Bandwidth Memory, HBM) und/oder ein 16 GB HBM2-Speichersubsystem beinhalten, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich zu dem oder alternativ zu dem HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (SGRAM) verwendet werden, wie z.B. ein synchroner Grafik-Direktzugriffsspeicher mit doppelter Datenrate vom Typ fünf (GDDR5).
  • Die GPU(s) 1108 kann/können eine einheitliche Speichertechnologie mit Zugriffszählern beinhalten, um eine genauere Migration von Speicherseiten zu dem Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz für Speicherbereiche, die zwischen Prozessoren gemeinsam genutzt werden, verbessert wird. In einigen Beispielen kann die Unterstützung von Adressübersetzungsdiensten (ATS) genutzt werden, um der/den GPU(s) 1108 den direkten Zugriff auf die Seitentabellen der CPU(s) 1106 zu ermöglichen. In solchen Beispielen kann dann, wenn die Speicherverwaltungseinheit (MMU) der GPU(s) 1108 einen Fehler aufweist, eine Adressübersetzungsanforderung an die CPU(s) 1106 übertragen werden. Als Antwort darauf kann/können die CPU(s) 1106 in ihren Seitentabellen nach der virtuellen-zu-physischen Abbildung für die Adresse suchen und die Übersetzung zurück an die GPU(s) 1108 übertragen. Somit kann die einheitliche bzw. Unified Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für Speicher sowohl der CPU(s) 1106 als auch des/der GPU(s) 1108 ermöglichen, wodurch die Programmierung der GPU(s) 1108 und die Portierung von Anwendungen auf die GPU(s) 1108 vereinfacht wird.
  • Darüber hinaus kann/können die GPU(s) 1108 einen Zugriffszähler beinhalten, der die Häufigkeit des Zugriffs der GPU(s) 1108 auf den Speicher anderer Prozessoren nachverfolgen kann. Der Zugriffszähler kann dazu beitragen, sicherzustellen, dass Speicherseiten in den physischen Speicher des Prozessors verschoben werden, der am häufigsten auf die Seiten zugreift.
  • Das/die SoC(s) 1104 kann/können eine beliebige Anzahl von Cache(s) 1112, einschließlich der hierin beschriebenen, beinhalten. Der/die Cache(s) 1112 kann/können beispielsweise einen L3-Cache beinhalten, der sowohl der/den CPU(s) 1106 als auch der/den GPU(s) 1108 zur Verfügung steht (d.h. der sowohl mit der/den CPU(s) 1106 als auch der/den GPU(s) 1108 verbunden ist). Der/die Cache(s) 1112 kann/können einen Write-Back-Cache beinhalten, der den Zustand von Leitungen nachverfolgen kann, z.B. unter Verwendung eines Cache-Kohärenzprotokolls (z.B. MEI, MESI, MSI usw.). Der L3-Cache kann je nach Ausführungsform 4 MB oder mehr umfassen, wobei auch kleinere Cache-Größen verwendet werden können.
  • Der (die) SoC(s) 1104 kann (können) ein oder mehrere arithmetische Logikeinheit(en) (ALU(s)) enthalten, die bei der Durchführung von Verarbeitungen in Bezug auf eine der verschiedenen Aufgaben oder Operationen des Fahrzeugs 1100 - wie der Verarbeitung von DNNs - genutzt werden kann. Darüber hinaus können die SoC(s) 1104 eine Gleitkommaeinheit(en) (FPU(s)) - oder andere mathematische Koprozessoren oder numerische Coprozessor-Typen - zur Durchführung mathematischer Operationen innerhalb des Systems enthalten. Beispielsweise können die SoC(s) 104 eine oder mehrere FPUs enthalten, die als Ausführungseinheiten in eine CPU(s) 1106 und/oder GPU(s) 1108 integriert sind.
  • Das/die SoC(s) 1104 kann/können einen oder mehrere Beschleuniger 1114 (z.B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon) beinhalten. Das/die SoC(s) 1104 kann/können z.B. einen Hardware-Beschleunigungscluster beinhalten, der optimierte Hardware-Beschleuniger und/oder großen On-Chip-Speicher beinhalten kann. Der große On-Chip-Speicher (z.B. 4 MB SRAM) kann es dem Hardware-Beschleunigungscluster ermöglichen, neuronale Netzwerke und andere Berechnungen zu beschleunigen. Der Hardware-Beschleunigungscluster kann zur Ergänzung der GPU(s) 1108 und zur Auslagerung einiger der Aufgaben der GPU(s) 1108 verwendet werden (z.B. um mehr Zyklen der GPU(s) 1108 für die Ausführung anderer Aufgaben freizugeben). Der/die Beschleuniger 1114 kann/können z.B. für gezielte Arbeitslasten (z.B. Wahrnehmung, faltende neuronale Netzwerke (CNNs) usw.) verwendet werden, die stabil genug sind, um für eine Beschleunigung geeignet zu sein. Der Begriff „CNN“ wie hierin verwendet kann alle Arten von CNNs einschließen, einschließlich regionsbasierter oder regionaler faltender neuronaler Netzwerke (RCNNs) und schneller RCNNs (z.B. wie sie zur Objekterfassung verwendet werden).
  • Der/die Beschleuniger 1114 (z.B. der Hardware-Beschleunigungscluster) kann/können einen oder mehrere tief lernende(n) Beschleuniger (DLA) beinhalten. Der/die DLA(s) kann/können eine oder mehrere Tensorverarbeitungseinheiten (TPUs) beinhalten, die dazu konfiguriert sein können, zusätzliche zehn Trillionen Operationen pro Sekunde für Deep Learning-Anwendungen und Inferenzierung bereitzustellen. Die TPUs können Beschleuniger sein, die dazu konfiguriert und optimiert sind, Bildverarbeitungsfunktionen auszuführen (z.B. für CNNs, RCNNs usw.). Der/die DLA(s) können ferner für einen bestimmten Satz von Typen neuronaler Netzwerke und Gleitkommaoperationen sowie für die Inferenzierung optimiert sein. Die Ausgestaltung des/der DLA(s) kann mehr Leistung pro Millimeter als eine Allzweck-GPU bereitstellen und übertrifft bei weitem die Leistung einer CPU. Die TPU(s) kann/können mehrere Funktionen, einschließlich einer Einzelinstanz-Faltungsfunktion, die z.B. INT8-, INT16- und FP16-Datentypen sowohl für Merkmale als auch Gewichte unterstützt, als auch Nachverarbeitungsfunktionen ausführen.
  • Der/die DLA(s) können schnell und effizient neuronale Netzwerke, insbesondere CNNs, auf verarbeiteten oder unverarbeiteten Daten für eine Vielzahl von Funktionen ausführen, z.B. und ohne Beschränkung darauf: ein CNN zur Objektidentifizierung und -erfassung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Entfernungsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Notfallfahrzeugerkennung und -identifizierung und -erfassung unter Verwendung von Daten von Mikrofonen; ein CNN zur Gesichtserkennung und Fahrzeugbesitzeridentifizierung unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheitsrelevante Ereignisse.
  • Der/die DLA(s) kann/können jede Funktion der GPU(s) 1108 durchführen, und unter Verwendung z.B. eines Inferenzierungsbeschleunigers kann ein Entwickler für jede Funktion entweder den/die DLA(s) oder die GPU(s) 1108 targeten. Der Entwickler kann z.B. die Verarbeitung von CNNs und Gleitkommaoperationen auf den/die DLA(s) konzentrieren und andere Funktionen der/den GPU(s) 1108 und/oder anderen Beschleuniger(n) 1114 überlassen.
  • Der/die Beschleuniger 1114 (z.B. der Hardware-Beschleunigungscluster) kann/können einen oder mehrere programmierbare Sichtbeschleuniger (Programmable Vision Accelerator(s), PVA) beinhalten, der/die hierin alternativ als Computer Vision Accelerator bezeichnet werden kann/können. Der/die PVA(s) kann/können dazu ausgelegt und konfiguriert sein, Computer Vision-Algorithmen für die fortgeschrittenen Fahrerassistenzsysteme (ADAS), autonomes Fahren und/oder Anwendungen der erweiterten Realität (Augmented Reality, AR) und/oder virtuellen Realität (Virtual Reality, VR) zu beschleunigen. Der/die PVA(s) kann/können ein Gleichgewicht zwischen Leistung und Flexibilität bereitstellen. Jeder/jeder der PVA(s) kann beispielsweise und ohne Beschränkung darauf eine beliebige Anzahl von RISC (Reduced Instruction Set Computer)-Kernen bzw. Kernen für Computer mit reduziertem Befehlssatz, Direktspeicherzugriff (Direct Memory Access, DMA) und/oder eine beliebige Anzahl von Vektorprozessoren beinhalten.
  • Die RISC-Kerne können mit Bildsensoren (z.B. den Bildsensoren jeder der hierin beschriebenen Kameras), einem oder mehreren Bildsignalprozessor(en) und/oder dergleichen interagieren. Jeder der RISC-Kerne kann eine beliebige Menge an Speicher beinhalten. Die RISC-Kerne können je nach Ausführungsform eines von mehreren Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (Real-Time Operating System, RTOS) ausführen. Die RISC-Kerne können unter Verwendung einer oder mehrerer integrierter Schaltkreisanordnungen, anwendungsspezifischer integrierter Schaltkreise (Application Specific Integrated Circuits, ASICs) und/oder Speichereinrichtungen implementiert sein. Beispielsweise können die RISC-Kerne einen Befehlscache und/oder ein eng gekoppeltes RAM beinhalten.
  • Der DMA kann es Komponenten der PVA(s) ermöglichen, unabhängig von der/den CPU(s) 1106 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Funktionen unterstützen, die zur Bereitstellung einer Optimierung für den PVA verwendet werden, einschließlich, aber nicht beschränkt auf, die Unterstützung einer mehrdimensionalen Adressierung und/oder einer Ringadressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, darunter Blockbreite, Blockhöhe, Blocktiefe, horizontales Blockstepping, vertikales Blockstepping und/oder Tiefenstepping.
  • Die Vektorprozessoren können programmierbare Prozessoren sein, die dazu ausgelegt sein können, die Programmierung von Computer Vision-Algorithmen effizient und flexibel auszuführen und Signalverarbeitungsfähigkeiten bereitzustellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Subsystem-Partitionen für die Vektorverarbeitung beinhalten. Der PVA-Kern kann ein Prozessor-Subsystem, eine oder mehrere DMA-Engine(s) (z.B. zwei DMA-Engines) und/oder andere Peripherievorrichtungen beinhalten. Das Vektorverarbeitungs-Subsystem kann als die primäre Verarbeitungs-Engine des PVA arbeiten und kann eine Vektorverarbeitungseinheit (Vector Processing Unit, VPU), einen Befehlscache und/oder einen Vektorspeicher (z.B. VMEM) beinhalten. Ein VPU-Kern kann einen digitalen Signalprozessor beinhalten, wie z.B. einen digitalen Signalprozessor für eine einzelne Anweisung und mehrere Daten (Single Instruction, Multiple Data, SIMD) oder einen digitalen Signalprozessor für ein sehr langes Anweisungswort (Very Long Instruction Word, VLIW). Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.
  • Jeder der Vektorprozessoren kann einen Befehlscache beinhalten und kann mit dediziertem Speicher gekoppelt sein. Infolgedessen kann in einigen Beispielen jeder der Vektorprozessoren dazu konfiguriert sein, unabhängig von den anderen Vektorprozessoren auszuführen. In anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA enthalten sind, dazu konfiguriert sein, Datenparallelität zu verwenden. In einigen Ausführungsformen kann z.B. die Mehrzahl der Vektorprozessoren, die in einem einzigen PVA enthalten sind, denselben Computer Vision-Algorithmus ausführen, jedoch in verschiedenen Regionen eines Bilds. In anderen Beispielen können die in einem bestimmten PVA enthaltenen Vektorprozessoren gleichzeitig verschiedene Computer Vision-Algorithmen auf demselben Bild ausführen, oder sogar verschiedene Computer Vision-Algorithmen für aufeinanderfolgende Bilder oder Teile eines Bilds ausführen. Unter anderem kann eine beliebige Anzahl von PVAs in dem Hardware-Beschleunigungscluster und eine beliebige Anzahl von Vektorprozessoren in jedem der PVAs enthalten sein. Darüber hinaus können der/die PVA(s) zusätzlichen Fehlerkorrekturcode-Speicher bzw. ECC (Error Correction Code)-Speicher beinhalten, um die Gesamtsystemsicherheit zu erhöhen.
  • Der/die Beschleuniger 1114 (z.B. der Hardware-Beschleunigungscluster) kann ein Computer Vision-Netzwerk auf dem Chip und SRAM beinhalten, um SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 1114 bereitzustellen. In einigen Beispielen kann der On-Chip-Speicher zumindest 4 MB SRAM umfassen, das z.B. und ohne Beschränkung darauf aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl der PVA als auch der DLA zugreifen können. Jedes Paar von Speicherblöcken kann eine Advanced Peripheral Bus (APB)-Schnittstelle, Konfigurationsschaltkreise, eine Steuereinrichtung und einen Multiplexer beinhalten. Jede Art von Speicher kann verwendet werden. Der PVA und der DLA können über einen Backbone, der dem PVA und dem DLA Hochgeschwindigkeitszugriff auf den Speicher ermöglicht, auf den Speicher zugreifen. Der Backbone kann ein Computer Vision-Netzwerk auf dem Chip umfassen, das den PVA und den DLA mit dem Speicher verbindet (z.B. unter Verwendung des APB).
  • Das On-Chip-Computer Vision-Netzwerk kann eine Schnittstelle beinhalten, die vor der Übertragung irgendwelcher Steuersignale/Adressen/Daten bestimmt, dass sowohl der PVA als auch der DLA fertige und gültige Signale liefern. Eine solche Schnittstelle kann separate Phasen und separate Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie Burst-Kommunikationen für kontinuierliche Datenübertragung bereitstellen. Diese Art von Schnittstelle kann den Normen ISO 26262 oder IEC 61508 entsprechen, es können jedoch auch andere Normen und Protokolle verwendet werden.
  • In einigen Beispielen kann/können das/die SoC(s) 1104 einen Hardware-Beschleuniger für Echtzeit-Strahlenverfolgung bzw. Echtzeit-Raytracing-Hardwarebeschleuniger beinhalten, wie in der am 10. August 2018 eingereichten U.S. Patentanmeldung Nr. 16/101,232 beschrieben. Der Echtzeit-Raytracing-Hardwarebeschleuniger kann zur schnellen und effizienten Bestimmung der Orte und Ausdehnungen von Objekten (z.B. innerhalb eines Weltmodells), zur Erzeugung von Echtzeit-Visualisierungssimulationen, zur RADAR-Signalinterpretation, zur Schallausbreitungssynthese und/oder -analyse, zur Simulation von SONAR-Systemen, zur allgemeinen Wellenausbreitungssimulation, zum Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder anderer Funktionen und/oder für andere Zwecke verwendet werden. In einigen Ausführungsformen kann/können ein oder mehrere Baumtraversierungseinheiten (TTUs; tree traversal units) zum Ausführen einer oder mehrerer Raytracing-bezogener Operationen verwendet werden.
  • Der/die Beschleuniger 1114 (z.B. der Hardware-Beschleunigercluster) haben ein breites Anwendungsspektrum für autonomes Fahren. Der PVA kann ein programmierbarer Sichtbeschleuniger sein, der für wichtige Verarbeitungsstufen in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA eignen sich gut für algorithmische Domänen, die eine vorhersagbare Verarbeitung bei niedriger Leistung und niedriger Latenz erfordern. Mit anderen Worten arbeitet der PVA gut bei semidichten oder dichten regelmäßigen Berechnungen, selbst bei kleinen Datensätzen, die vorhersagbare Laufzeiten mit geringer Latenz und niedriger Leistung benötigen. Folglich sind im Kontext von Plattformen für autonome Fahrzeuge die PVAs dazu ausgelegt, klassische Computer-Vision-Algorithmen auszuführen können, da sie bei Objekterfassung effizient sind und mit Ganzzahlenmathematik arbeiten.
  • Zum Beispiel wird gemäß einer Ausführungsform der Technologie der PVA zur Durchführung von Computer-Stereosehen verwendet. In einigen Beispielen kann ein Algorithmus auf der Grundlage eines semi-globalen Abgleichs verwendet werden, obwohl dies nicht beschränkend sein soll. Viele Anwendungen für autonomes Fahren der Level 3-5 erfordern eine Bewegungsschätzung/einen Stereoabgleich im Vorübergehen bzw. on-the-fly (z.B. Struktur aus Bewegung, Fußgängererkennung, Fahrspurerfassung usw.). Der PVA kann eine Computer-Stereosehfunktion auf Inputs von zwei monokularen Kameras durchführen.
  • In einigen Beispielen kann der PVA dazu verwendet werden, einen dichten optischen Fluss durchzuführen. Entsprechend der Verarbeitung von RADAR-Rohdaten (z.B. unter Verwendung einer 4D-Fast-Fourier-Transformation), um verarbeitetes RADAR bereitzustellen. In anderen Beispielen wird der PVA für die Tiefenverarbeitung zur Laufzeit verwendet, indem z.B. Laufzeit-Rohdaten verarbeitet werden, um verarbeitete Laufzeitdaten bereitzustellen.
  • Der DLA kann für den Betrieb jeder beliebigen Art von Netzwerk verwendet werden, um die Kontrolle und die Fahrsicherheit zu verbessern, einschließlich beispielsweise eines neuronalen Netzwerks, das für jede Objekterfassung ein Vertrauensmaß ausgibt. Ein solcher Vertrauenswert kann als eine Wahrscheinlichkeit interpretiert werden oder als Bereitstellung einer relativen „Gewichtung“ jeder Erfassung im Vergleich zu anderen Erfassungen. Dieser Vertrauenswert ermöglicht es dem System, weitere Entscheidungen darüber zu treffen, welche Erfassungen als echte positive Erfassungen und nicht als falsch positive Erfassungen anzusehen sind. Beispielsweise kann das System einen Schwellenwert für das Vertrauen festlegen und nur diejenigen Erfassungen, die den Schwellenwert überschreiten, als echte positive Erfassungen betrachten. In einem automatischen Notbrems- bzw. Automatic Emergency Braking (AEB)-System würden falsch-positive Erkennungen das Fahrzeug dazu veranlassen, automatisch eine Notbremsung durchzuführen, welches offensichtlich unerwünscht ist. Daher sollten nur die zuverlässigsten Erfassungen als Auslöser für AEB in Betracht gezogen werden. Der DLA kann ein neuronales Netzwerk zur Regression des Vertrauenswerts betreiben. Das neuronale Netzwerk kann als seinen Input zumindest eine Teilmenge von Parametern verwenden, wie z.B. die Begrenzungskastenmaße, die (z.B. von einem anderen Teilsystem) erhaltene Grundebenenschätzung, die Ausgabe des Sensors 1166 der Trägheitsmesseinheit (IMU), die mit der Orientierung des Fahrzeugs 1100 korreliert, die Entfernung, die 3D-Positionsschätzungen des Objekts, die aus dem neuronalen Netzwerk und/oder anderen Sensoren (z.B. LIDAR-Sensor(en) 1164 oder RADAR-Sensor(en) 1160) erhalten wurden, und andere.
  • Das/die SoC(s) 1104 kann/können einen oder mehrere Datenspeicher 1116 (z.B. Speicher) beinhalten. Der/die Datenspeicher 1116 können On-Chip-Speicher des/der SoC(s) 1104 sein, der neuronale Netzwerke speichern kann, die auf der GPU und/oder dem DLA auszuführen sind. In einigen Beispielen kann/können der/die Datenspeicher 1116 groß genug sein, um mehrere Instanzen von neuronalen Netzwerken für Redundanz und Sicherheit zu speichern. Der/die Datenspeicher 1112 kann/können L2- oder L3-Cache(s) 1112 umfassen. Eine Bezugnahme auf den/die Datenspeicher 1116 kann eine Bezugnahme auf den Speicher beinhalten, der dem PVA, DLA und/oder anderen Beschleunigern 1114, wie hierin beschrieben, zugeordnet ist.
  • Das/die SoC(s) 1104 können einen oder mehrere Prozessor(en) 1110 (z.B. eingebettete Prozessoren) beinhalten. Der/die Prozessor(en) 1110 kann/können einen Boot- und Leistungsverwaltungs-Prozessor, der ein dedizierter Prozessor sein kann, und ein Subsystem zur Handhabung von Boot-Leistung und Verwaltungsfunktionen sowie damit verwandter Sicherheitsdurchsetzung beinhalten. Der Boot- und Leistungsmanagement-Prozessor kann ein Teil der Boot-Sequenz des/der SoC(s) 1104 sein und zur Laufzeit Leistungsverwaltungsdienste bereitstellen. Der Boot- und Leistungsverwaltungsprozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Übergängen des Systems zu Energiesparzuständen, eine Verwaltung der Thermik und der Temperatursensoren des/der SoC(s) 1104 und/oder eine Verwaltung der Leistungszustände des/der SoC(s) 1104 bereitstellen. Jeder Temperatursensor kann als ein Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und das/die SoC(s) 1104 kann/können die Ringoszillatoren dazu verwenden, Temperaturen der CPU(s) 1106, der GPU(s) 1108 und/oder des/der Beschleuniger(s) 1114 zu erfassen. Falls festgestellt wird, dass Temperaturen einen Schwellenwert überschreiten, kann der Boot- und Leistungsverwaltungsprozessor in eine Temperaturfehlerroutine eintreten und das/die SoC(s) 1104 in einen Niedrigleistungszustand versetzen und/oder das Fahrzeug 1100 in einen Chauffeur-zu-sicherem-Halt-Modus versetzen (z.B. das Fahrzeug 1100 zu einem sicheren Halt bringen).
  • Der/die Prozessor(en) 1110 kann/können ferner eine Reihe von eingebetteten Prozessoren beinhalten, die als eine Audioverarbeitungs-Engine dienen können. Die Audioverarbeitungs-Engine kann ein Audio-Subsystem sein, das volle Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen und eine breite und flexible Palette von Audio-E/A-Schnittstellen bereitstellt. In einigen Beispielen ist die Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • Der/die Prozessor(en) 1110 kann/können ferner eine ständig eingeschaltete Prozessor-Engine beinhalten, die notwendige Hardwaremerkmale zur Unterstützung von der Verwaltung von Sensoren mit niedrigem Stromverbrauch und Aufwachfällen bereitstellen kann. Die ständig eingeschaltete bzw. Always-on-Prozessor-Engine kann einen Prozessorkern, ein eng gekoppeltes RAM, unterstützende Peripherievorrichtungen (z.B. Zeitgeber und eine oder mehrere Unterbrechungssteuereinrichtung(en)), verschiedene E/A-Steuereinrichtungs-Peripherievorrichtungen und Routing-Logik beinhalten.
  • Der/die Prozessor(en) 1110 kann/können ferner eine Sicherheitscluster-Engine beinhalten, die ein dediziertes Prozessor-Subsystem zur Handhabung des Sicherheitsmanagements für Automobilanwendungen beinhaltet. Die Sicherheitscluster-Engine kann zwei oder mehr Prozessorkerne, ein eng gekoppeltes RAM, unterstützende Peripherievorrichtungen (z.B. Zeitgeber, eine oder mehrere Unterbrechungssteuer-einrichtung(en) usw.) und/oder Routing-Logik beinhalten. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Schrittverriegelungs- bzw. Lockstep-Modus arbeiten und als ein einziger Kern mit Vergleichslogik zur Erfassung von Unterschieden zwischen ihren Operationen funktionieren.
  • Der/die Prozessor(en) 1110 kann/können ferner hinaus eine Echtzeit-Kamera-Engine beinhalten, die ein dediziertes Prozessor-Subsystem zur Handhabung der Echtzeit-Kameraverwaltung umfassen kann.
  • Der/die Prozessor(en) 1110 kann/können ferner einen Signalprozessor mit hohem Dynamikbereich beinhalten, der einen Bildsignalprozessor beinhalten kann, welcher eine Hardware-Engine ist, die Teil der Kamera-Verarbeitungspipeline ist.
  • Der/die Prozessor(en) 1110 kann/können einen Videobildkompositor beinhalten, der ein Verarbeitungsblock (z.B. auf einem Mikroprozessor implementiert) sein kann, der Videonachbearbeitungsfunktionen implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Wiedergabefenster zu produzieren. Der Videobildkompositor kann eine Objektivverzerrungskorrektur bei der/den Weitwinkelkamera(s) 1170, der/den Rundumsicht-Kamera(s) 1174 und/oder bei Sensoren von Überwachungskameras in der Kabine durchführen. Der Sensor der Überwachungskamera in der Kabine wird vorzugsweise durch ein neuronales Netzwerk überwacht, das auf einer anderen Instanz des erweiterten SoC läuft und dazu konfiguriert ist, Ereignisse in der Kabine zu identifizieren und entsprechend zu reagieren. Ein kabineninternes System kann ein Lippenlesen durchführen, um einen Mobilfunkdienst zu aktivieren und einen Telefonanruf zu tätigen, E-Mails zu diktieren, den Zielort des Fahrzeugs zu ändern, das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachaktiviertes Websurfen zu ermöglichen. Bestimmte Funktionen stehen dem Fahrer nur zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind andernfalls deaktiviert.
  • Der Videobildkompositor kann eine verbesserte zeitliche Rauschreduzierung sowohl für die räumliche als auch für die zeitliche Rauschreduzierung beinhalten. Wenn beispielsweise Bewegung in einem Video auftritt, gewichtet die Rauschreduzierung räumliche Informationen in geeigneter Weise und verringert dadurch das Gewicht von von benachbarten Frames bereitgestellten Informationen. Wenn ein Bild oder Teil eines Bilds keine Bewegung enthält, kann die von dem Videobildkompositor durchgeführte zeitliche Rauschreduzierung Informationen aus dem vorherigen Bild dazu verwenden, das Rauschen in dem aktuellen Bild zu reduzieren.
  • Der Videobildkompositor kann auch dazu konfiguriert sein, eine Stereogleichrichtung auf den Eingangs-Stereolinsen-Frames durchzuführen. Der Videobildkompositor kann ferner für eine Benutzeroberflächenkomposition verwendet werden, wenn der Betriebssystem-Desktop in Verwendung ist und die GPU(s) 1108 nicht erforderlich ist/sind, um kontinuierlich neue Oberflächen zu rendern. Selbst wenn die GPU(s) 1108 eingeschaltet ist/sind und aktiv ein 3D-Rendering durchführt/durchführen, kann der Videobildkompositor zur Entlastung der GPU(s) 1108 verwendet werden, um die Leistung und das Ansprechvermögen zu verbessern.
  • Das/die SoC(s) 1104 kann/können ferner eine serielle MIPI (Mobile Industry Processor Interface)-Schnittstellen-Kameraschnittstelle zum Empfang von Video und Input von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingangsblock beinhalten, der für Kamera- und verwandte Pixeleingabefunktionen verwendet werden kann. Das/die SoC(s) 1104 kann/können ferner einen oder mehrere Ein-/Ausgabe-Steuereinrichtung(en) beinhalten, die durch Software gesteuert werden kann/können und zum Empfang von E/A-Signalen, die nicht für eine bestimmte Rolle vorgesehen sind, verwendet werden kann/können.
  • Das/die SoC(s) 1104 können ferner hinaus eine breite Palette von Peripherieschnittstellen beinhalten, um die Kommunikation mit Peripherievorrichtungen, Audio-Codecs, der Energieverwaltung und/oder anderen Vorrichtungen zu ermöglichen. Das/die SoC(s) 1104 kann/können zur Verarbeitung von Daten von Kameras (z.B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z.B. LIDAR-Sensor(en) 1164, RADAR-Sensor(en) 1160, usw.), die über Ethernet verbunden sein können, Daten von dem Bus 1102 (z.B. Fahrzeuggeschwindigkeit 1100, Lenkradposition, usw.), Daten von einem oder mehreren GNSS-Sensor(en) 1158 (z.B. verbunden über Ethernet oder CAN-Bus) verwendet werden. Das/die SoC(s) 1104 kann/können ferner eine oder mehrere dedizierte Hochleistungs-Massenspeicher-Steuereinrichtung(en) beinhalten, die ihre eigenen DMA-Engines beinhalten können und die dazu verwendet werden können, die CPU(s) 1106 von Routineaufgaben der Datenverwaltung zu befreien.
  • Das/die SoC(s) 1104 kann/können eine Ende-zu-Ende-Plattform mit einer flexiblen Architektur sein, die die Automatisierungslevel 3-5 überspannt und damit eine umfassende funktionale Sicherheitsarchitektur bereitstellt, die Computer Vision und ADAS-Techniken für Diversität und Redundanz nutzt und effizient einsetzt, und eine Plattform für einen flexiblen, zuverlässigen Fahrsoftware-Stack zusammen mit Deep Learning-Werkzeugen bereitstellt. Das/die SoC(s) 1104 können schneller, zuverlässiger und sogar energie- und raumsparender sein als konventionelle Systeme. Beispielsweise kann der/die Beschleuniger 1114 in Kombination mit der/den CPU(s) 1106, der/den GPU(s) 1108 und dem/den Datenspeicher(n) 1116 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Level 3-5 bereitstellen.
  • Die Technologie stellt somit Fähigkeiten und Funktionen bereit, die von konventionellen Systemen nicht erreicht werden können. Beispielsweise können Computer Vision-Algorithmen auf CPUs ausgeführt werden, welche unter Verwendung einer höheren Programmiersprache wie beispielsweise der Programmiersprache C dazu konfiguriert sein können, eine Vielzahl von Verarbeitungsalgorithmen für eine breite Vielzahl von Bilddaten auszuführen. CPUs sind jedoch häufig nicht in der Lage, die Leistungsanforderungen vieler Computer-Vision-Anwendungen zu erfüllen, wie beispielsweise diejenigen mit Bezug zu Ausführungszeit und Stromverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterfassungsalgorithmen in Echtzeit auszuführen, welches eine Anforderung von fahrzeuginternen ADAS-Anwendungen und eine Anforderung für praktische autonome Fahrzeuge der Level 3-5 ist.
  • Im Gegensatz zu konventionellen Systemen erlaubt die hierin beschriebene Technologie durch die Bereitstellung eines CPU-Komplexes, eines GPU-Komplexes und eines Hardware-Beschleunigungsclusters, mehrere neuronale Netzwerke gleichzeitig und/oder sequenziell auszuführen, sowie die Kombination der Ergebnisse, um eine autonome Fahrfunktionalität der Level 3-5 zu ermöglichen. Zum Beispiel kann ein CNN, das auf dem DLA oder der dGPU (z.B. den GPU(s) 1120) ausgeführt wird, eine Text- und Worterkennung beinhalten, die es dem Supercomputer erlaubt, Verkehrszeichen zu lesen und zu verstehen, einschließlich der Zeichen, für welche das neuronale Netzwerk nicht speziell trainiert worden ist. Der DLA kann ferner ein neuronales Netzwerk beinhalten, das in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis des Zeichens zu liefern und dieses semantische Verständnis an die auf dem CPU-Komplex laufenden Wegplanungsmodule weiterzugeben.
  • Als weiteres Beispiel können mehrere neuronale Netzwerke gleichzeitig betrieben werden, wie es für das Fahren auf Level 3, 4 oder 5 erforderlich ist. Beispielsweise kann ein Warnschild mit der Aufschrift „Vorsicht: Blinklichter zeigen eisige Bedingungen an“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzwerken unabhängig oder gemeinsam interpretiert werden. Das Schild selbst kann von einem ersten eingesetzten neuronalen Netzwerk (z.B. einem trainierten neuronalen Netzwerk) als ein Verkehrszeichen identifiziert werden, der Text „Blinklichter zeigen eisige Bedingungen an“ kann von einem zweiten eingesetzten neuronalen Netzwerk interpretiert werden, welches die Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass dann, wenn blinkende Lichter erfasst werden, eisige Bedingungen vorliegen. Das blinkende Licht kann durch Betreiben eines dritten eingesetzten neuronalen Netzwerks über mehrere Frames hinweg identifiziert werden, das die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von blinkenden Lichtern informiert. Alle drei neuronalen Netzwerke können gleichzeitig laufen, z.B. innerhalb des DLA und/oder auf der/den GPU(s) 1108.
  • In einigen Beispielen kann ein CNN zur Gesichtserkennung und Identifizierung des Fahrzeugbesitzers Daten von Kamerasensoren nutzen, um die Anwesenheit eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 1100 zu identifizieren. Die immer aktive Sensorverarbeitungs-Engine kann dazu verwendet werden, das Fahrzeug zu entriegeln, wenn sich der Besitzer der Fahrertür nähert, und die Beleuchtung einzuschalten, und um, im Sicherheitsmodus, das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise sorgen das/die SoC(s) 1104 für Sicherheit gegen Diebstahl und/oder Autodiebstahl.
  • In einem anderen Beispiel kann ein CNN für die Erkennung und Identifizierung von Notfallfahrzeugen die Daten von Mikrofonen 1196 zur Erkennung und Identifizierung von Sirenen von Notfallfahrzeugen verwenden. Im Gegensatz zu konventionellen Systemen, die allgemeine Klassifikatoren zur Erfassung von Sirenen und zur manuellen Extraktion von Merkmalen verwenden, verwendet/verwenden das/die SoC(s) 1104 das CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung von visuellen Daten. In einer bevorzugten Ausführungsform ist das CNN, das auf dem DLA läuft, darauf trainiert, die relative Schließgeschwindigkeit des Einsatzfahrzeugs (z.B. durch Nutzung des Doppler-Effekts) zu identifizieren. Das CNN kann darüber hinaus darauf trainiert sein, Notfallfahrzeuge zu identifizieren, die spezifisch für den lokalen Bereich sind, in welchem das Fahrzeug operiert, wie durch einen oder mehrere GNSS-Sensor(en) 1158 identifiziert. Folglich wird zum Beispiel dann, wenn es in Europa arbeitet, das CNN versuchen, europäische Sirenen zu erkennen, und wenn es sich in den Vereinigten Staaten befindet, versuchen, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Notfallfahrzeug erfasst ist, kann ein Steuerprogramm dazu verwendet werden, mit Unterstützung der Ultraschallsensoren 1162 eine Notfallfahrzeug-Sicherheitsroutine auszuführen, das Fahrzeug abzubremsen, zum Straßenrand hin zu lenken, das Fahrzeug zu parken und/oder in den Leerlauf zu versetzen, bis das/die Notfallfahrzeug(e) vorbeifahren.
  • Das Fahrzeug kann eine oder mehrere CPU(s) 1118 (z.B. diskrete CPU(s) oder dCPU(s)) beinhalten, die über eine Hochgeschwindigkeitsverbindung (z.B. PCIe) mit dem/den SoC(s) 1104 gekoppelt sein können. Die CPU(s) 1118 kann/können z.B. einen X86-Prozessor beinhalten. Die CPU(s) 1118 kann/können zur Durchführung einer Vielzahl von Funktionen verwendet werden, einschließlich einer Arbitrierung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem/den SoC(s) 1104 und/oder einer Überwachung des Status und des Zustands beispielsweise des/der Steuereinrichtung(en) 1136 und/oder des Infotainment-SoC 1130.
  • Das Fahrzeug 1100 kann eine oder mehrere GPU(s) 1120 beinhalten (z.B. diskrete GPU(s) oder dGPU(s)), die über eine Hochgeschwindigkeitsverbindung (z.B. NVIDIAs NVLINK) mit dem/den SoC(s) 1104 gekoppelt sein kann/können. Die GPU(s) 1120 kann/können zusätzliche Funktionen der künstlichen Intelligenz bereitstellen, z.B. durch Ausführung redundanter und/oder unterschiedlicher neuronaler Netzwerke, und kann/können zum Trainieren und/oder Aktualisieren neuronaler Netzwerke auf der Grundlage eines Input (z.B. Sensordaten) von Sensoren des Fahrzeugs 1100 verwendet werden.
  • Das Fahrzeug 1100 kann ferner die Netzwerkschnittstelle 1124 beinhalten, welche eine oder mehrere drahtlose Antennen 1126 (z.B. eine oder mehrere drahtlose Antennen für verschiedene Kommunikationsprotokolle, wie z.B. eine Mobilfunkantenne, eine Bluetooth-Antenne usw.) beinhalten kann. Die Netzwerkschnittstelle 1124 kann dazu verwendet werden, eine drahtlose Konnektivität über das Internet mit der Cloud (z.B. mit dem/den Server(n) 1178 und/oder anderen Netzwerkvorrichtungen), mit anderen Fahrzeugen und/oder mit Rechenvorrichtungen (z.B. Client-Vorrichtungen von Passagieren) zu ermöglichen. Um mit anderen Fahrzeugen zu kommunizieren, kann eine direkte Verbindung zwischen den beiden Fahrzeugen hergestellt werden, und/oder kann eine indirekte Verbindung (z.B. über Netzwerke hinweg und über das Internet) hergestellt werden. Direkte Verbindungen können über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung hergestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 1100 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 1100 liefern (z.B. Fahrzeuge vor, seitlich und/oder hinter dem Fahrzeug 1100). Diese Funktionalität kann Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 1100 sein.
  • Die Netzwerkschnittstelle 1124 kann ein SoC beinhalten, das Modulations- und Demodulationsfunktionalität bereitstellt und es dem/den Steuereinrichtung(en) 1136 ermöglicht, über drahtlose Netzwerke zu kommunizieren. Die Netzschnittstelle 1124 kann ein Funkfrequenz-Front-End zur Aufwärtskonvertierung von Basisband zu Funkfrequenz und die Abwärtskonvertierung von Funkfrequenz zu Basisband beinhalten. Die Frequenzkonvertierungen können durch gut bekannte Verfahren durchgeführt werden, und/oder können unter Verwendung von Super-Heterodyne-Prozessen durchgeführt werden. In einigen Beispielen kann die Funkfrequenz-Front-End-Funktionalität durch einen separaten Chip bereitgestellt sein. Die Netzwerkschnittstelle kann 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.
  • Das Fahrzeug 1100 kann darüber hinaus Datenspeicher 1128 beinhalten, die auch Off-Chip-Speicher (z.B. außerhalb der SoC(s) 1104) beinhalten können. Der (die) Datenspeicher 1128 kann (können) ein oder mehrere Speicherelemente einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Geräte beinhalten, die zumindest ein Datenbit speichern können.
  • Das Fahrzeug 1100 kann ferner Datenspeicher 1128 beinhalten, welche Off-Chip-Speicher (z.B. außerhalb des/der SoC(s) 1104) beinhalten können. Der/die Datenspeicher 1128 kann/können ein oder mehrere Speicherelemente einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Vorrichtungen beinhalten, die zumindest ein Datenbit speichern können.
  • Das Fahrzeug 1100 kann ferner einen oder mehrere GNSS-Sensor(en) 1158 beinhalten. Der/die GNSS-Sensor(en) 1158 (z.B. GPS, assistierte GPS-Sensoren, differentielle GPS (DGPS)-Sensoren, usw.), zur Unterstützung von Kartierungs-, Wahrnehmungs-, Belegungsrastererzeugungs- und/oder Wegplanungsfunktionen. Es kann eine beliebige Anzahl von GNSS-Sensor(en) 1158 verwendet werden, einschließlich, zum Beispiel und ohne Beschränkung, eines GPS, das einen USB-Anschluss mit einer Ethernet-zu-Seriell (RS-232)-Brücke verwendet.
  • Das Fahrzeug 1100 kann ferner einen oder mehrere RADAR-Sensor(en) 1160 beinhalten. Der/die RADAR-Sensor(en) 1160 kann/können von dem Fahrzeug 1100 zur Fernbereich-Fahrzeugerfassung, selbst bei Dunkelheit und/oder schlechten Wetterbedingungen, verwendet werden. Die funktionalen Sicherheitsstufen von RADAR können ASIL B sein. Der/die RADAR-Sensor(en) 1160 kann/können das CAN und/oder den Bus 1102 (z.B. zur Übertragung von Daten, die von dem/von den RADAR-Sensor(en) 1160 erzeugt wurden) zur Steuerung und zum Zugriff auf Objektverfolgungsdaten verwenden, in einigen Beispielen mit Zugriff auf Ethernet, um auf Rohdaten zuzugreifen. Es kann eine breite Vielzahl von RADAR-Sensortypen verwendet werden. Der/die RADAR-Sensor(en) 1160 kann/können z.B. und ohne Beschränkung für die frontseitige, die heckseitige und die seitliche RADAR-Nutzung geeignet sein. In einigen Beispielen werden ein oder mehrere Puls-Doppler-RADAR-Sensor(en) verwendet.
  • Der/die RADAR-Sensor(en) 1160 kann/können verschiedene Konfigurationen beinhalten, wie z.B. große Reichweite mit engem Sichtfeld, kurze Reichweite mit breitem Sichtfeld, kurze Reichweite mit seitlicher Abdeckung usw. In einigen Beispielen kann das Fernbereich-RADAR bzw. Radar mit großer Reichweite für Funktionalität der adaptiven Geschwindigkeitsregelung verwendet werden. Die RADAR-Systeme mit großer Reichweite können ein breites Sichtfeld bereitstellen, das durch zwei oder mehr unabhängige Abtastungen, wie beispielsweise innerhalb einer Reichweite von 250 m, realisiert wird. Der/die RADAR-Sensor(en) 1160 kann/können bei der Unterscheidung zwischen statischen und sich bewegenden Objekten helfen und kann/können von ADAS-Systemen für Notbremsunterstützung und Vorauskollisionswarnung verwendet werden. Fernbereich-RADAR-Sensoren können monostatisches multimodales RADAR mit mehreren (z.B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle beinhalten. In einem Beispiel mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlenmuster erzeugen, das dazu ausgelegt ist, die Umgebung des Fahrzeugs 1100 bei höheren Geschwindigkeiten mit minimaler Interferenz durch Verkehr auf benachbarten Fahrspuren aufzuzeichnen. Die anderen beiden Antennen können das Sichtfeld erweitern und es so möglich machen, Fahrzeuge, die in die Fahrspur des Fahrzeugs 1100 einfahren oder diese verlassen, schnell erfasst werden können.
  • Mittelbereich-RADAR-Systeme können beispielsweise eine Reichweite von bis zu 1160m (Front) oder 80m (Heck) und ein Sichtfeld von bis zu 42 Grad (Front) oder 1150 Grad (Heck) beinhalten. Kurzbereich-RADAR-Systeme können ohne Beschränkung darauf RADAR-Sensoren beinhalten, welche an beiden Enden des hinteren Stoßfängers installiert sind. Wenn es an beiden Enden des hinteren Stoßfängers installiert ist, kann ein solches RADAR-Sensorsystem zwei Strahlen erzeugen, die ständig den toten Winkel im hinteren Bereich und neben dem Fahrzeug überwachen.
  • Kurzbereich-RADAR-Systeme können in einem ADAS-System zur Erkennung des toten Winkels und/oder zur Unterstützung des Spurwechsels verwendet werden.
  • Das Fahrzeug 1100 kann ferner Ultraschallsensor(en) 1162 beinhalten. Der/die Ultraschallsensor(en) 1162, der/die vorne, hinten und/oder an den Seiten des Fahrzeugs 1100 positioniert sein kann/können, kann/können zur Einparkunterstützung und/oder zur Erzeugung und Aktualisierung eines Belegungsrasters verwendet werden. Eine breite Vielzahl von Ultraschallsensor(en) 1162 kann verwendet werden, und verschiedene Ultraschallsensor(en) 1162 können für unterschiedliche Erfassungsbereiche (z.B. 2,5m, 4m) verwendet werden. Der/die Ultraschallsensor(en) 1162 kann/können auf einem funktionalen Sicherheitslevel von ASIL B arbeiten.
  • Das Fahrzeug 1100 kann einen oder mehrere LIDAR-Sensor(en) 1164 beinhalten. Der/die LIDAR-Sensor(en) 1164 kann/können für die Objekt- und Fußgängererfassung, Notbremsung, Kollisionsvermeidung und/oder andere Funktionen verwendet werden. Der/die LIDAR-Sensor(en) 1164 kann/können dem funktionalen Sicherheitslevel ASIL B entsprechen. In einigen Beispielen kann das Fahrzeug 1100 mehrere LIDAR-Sensoren 1164 (z.B. zwei, vier, sechs usw.) beinhalten, die Ethernet verwenden können (z.B. zur Bereitstellung von Daten für einen Gigabit-Ethernet-Switch).
  • In einigen Beispielen kann/können der/die LIDAR-Sensor(en) 1164 in der Lage sein, eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld bereitzustellen. (Ein) kommerziell erhältliche(r) LIDAR-Sensor(en) 1164 kann/können eine versprochene Reichweite von näherungsweise 1100m mit einer Genauigkeit von 2cm-3cm haben und unterstützt/unterstützen z.B. eine 1100 Mbps-Ethernet-Verbindung. In einigen Beispielen können ein oder mehrere nicht hervorstehende LIDAR-Sensoren 1164 verwendet werden. In solchen Beispielen kann/können der/die LIDAR-Sensor(en) 1164 als eine kleine Vorrichtung implementiert sein, das in die Front, das Heck, die Seiten und/oder die Ecken des Fahrzeugs 1100 eingebettet sein kann. Der/die LIDAR-Sensor(en) 1164 kann/können in solchen Beispielen ein Sichtfeld von bis zu 1120 Grad horizontal und von bis zu 35 Grad vertikal bereitstellen, mit einer Reichweite von 200m selbst für schwach reflektierende Objekte. (Ein) frontmontierte(r) LIDAR-Sensor(en) 1164 kann/können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert sein.
  • In einigen Beispielen können auch LIDAR-Technologien, wie z.B. 3D-Flash-LIDAR, eingesetzt werden. 3D-Flash-LIDAR verwendet einen Laserblitz als eine Übertragungsquelle, um die Fahrzeugumgebung bis zu einer Entfernung von näherungsweise 200 m auszuleuchten. Eine Flash-LIDAR-Einheit beinhaltet einen Rezeptor, der die Laufzeit des Laserpulses und das reflektierte Licht auf jedem Pixel aufzeichnet, welches wiederum der Reichweite von dem Fahrzeug zu den Objekten entspricht. Flash-LIDAR kann es erlauben, mit jedem Laserblitz hochgenaue und verzerrungsfreie Bilder der Umgebung zu erzeugen. In einigen Beispielen können vier Flash-LIDAR-Sensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 1100. Verfügbare 3D-Flash-LIDAR-Systeme beinhalten eine Festkörper-3D-LIDAR-Kamera ohne bewegliche Teile außer einem Lüfter (z.B. eine nicht abtastende LIDAR-Vorrichtung). Das Flash-LIDAR-Gerät kann einen 5-Nanosekunden-Laserpuls der Klasse I (augensicher) pro Frame verwenden und kann das reflektierte Laserlicht in Form von 3D-Entfernungspunktwolken und co-registrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR, und weil Flash-LIDAR eine Festkörpervorrichtung ohne bewegliche Teile ist, kann/können der/die LIDAR-Sensor(en) 1164 weniger anfällig für Bewegungsunschärfe, Vibrationen und/oder Stöße sein.
  • Das Fahrzeug kann ferner einen oder mehrere IMU-Sensor(en) 1166 beinhalten. Der/die IMU-Sensor(en) 1166 kann/können sich in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 1100 befinden. Der/die IMU-Sensor(en) 1166 kann/können zum Beispiel und ohne Beschränkung darauf einen oder mehrere Beschleunigungsmesser, einen oder mehrere Magnetometer, ein oder mehrere Gyroskop(e), einen oder mehrere Magnetkompass(e) und/oder andere Sensortypen beinhalten. In einigen Beispielen, wie z.B. bei Sechsachsen-Anwendungen, kann/können der/die IMU-Sensor(en) 1166 Beschleunigungsmesser und Gyroskope beinhalten, während bei Neunachsen-Anwendungen der/die IMU-Sensor(en) 1166 Beschleunigungsmesser, Gyroskope und Magnetometer umfassen kann/können.
  • In einigen Ausführungsformen kann/können der/die IMU-Sensor(en) 1166 als ein miniaturisiertes GPS/INS (GPS/INS = GPS-Aided Inertial Navigation System) implementiert sein, das Trägheitssensoren von mikro-elektromechanischen Systemen (MEMS), einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen zur Schätzung von Position, Geschwindigkeit und Lage kombiniert. Insoweit kann/können in einigen Beispielen der/die IMU-Sensor(en) 1166 das Fahrzeug 1100 in die Lage versetzen, einen Kurs abzuschätzen, ohne einen Input von einem magnetischen Sensor zu erfordern, indem die Geschwindigkeitsänderungen vom GPS zu dem/den IMU-Sensor(en) 1166 direkt beobachtet und korreliert werden. In einigen Beispielen kann/können der/die IMU-Sensor(en) 1166 und der/die GNSS-Sensor(en) 1158 in einer einzelnen integrierten Einheit kombiniert sein.
  • Das Fahrzeug kann Mikrofon(e) 1196 beinhalten, die in und/oder um das Fahrzeug 1100 herum platziert sind. Das/die Mikrofon(e) 1196 kann/können unter anderem zur Erkennung und Identifizierung von Notfallfahrzeugen verwendet werden.
  • Das Fahrzeug kann ferner eine beliebige Anzahl von Kameratypen beinhalten, einschließlich Stereokamera(s) 1168, Weitwinkelkamera(s) 1170, Infrarotkamera(s) 1172, Rundumsicht-Kamera(s) 1174, Fern- und/oder Mittelbereichkamera(s) 1198 und/oder andere Kameratypen. Die Kameras können zur Erfassung von Bilddaten um eine gesamte Peripherie des Fahrzeugs 1100 herum verwendet werden. Welche Arten von Kameras verwendet werden, hängt von den Ausführungsformen und Anforderungen für das Fahrzeug 1100 ab, und jede beliebige Kombination von Kameratypen kann verwendet werden, um die erforderliche Abdeckung um das Fahrzeug 1100 herum bereitzustellen. Darüber hinaus kann die Anzahl der Kameras je nach Ausführungsform unterschiedlich sein. Beispielsweise 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 Beschränkung darauf Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede der Kamera(s) ist hierin mit Bezug zu 11A und 11B ausführlicher beschrieben.
  • Das Fahrzeug 1100 kann ferner einen oder mehrere Schwingungssensor(en) 1142 beinhalten. Der/die Schwingungssensor(en) 1142 kann/können Schwingungen von Komponenten des Fahrzeugs, wie z.B. der Achse(n), messen. Änderungen der Vibrationen können zum Beispiel auf eine Veränderung der Straßenoberfläche hinweisen. In einem anderen Beispiel, wenn zwei oder mehr Schwingungssensoren 1142 verwendet werden, können die Unterschiede zwischen den Schwingungen zur Bestimmung der Reibung oder des Schlupfes der Fahrbahnoberfläche verwendet werden (z.B. wenn der Schwingungsunterschied zwischen einer angetriebenen Achse und einer frei rotierenden Achse besteht).
  • Das Fahrzeug 1100 kann ein ADAS-System 1138 beinhalten. Das ADAS-System 1138 kann in einigen Beispielen ein SoC beinhalten. Das ADAS-System 1138 kann eine autonome/adaptive/automatische Geschwindigkeitsregelung (Autonomous/ Adaptive/Automatic Cruise Control, ACC), eine kooperative adaptive Geschwindigkeitsregelung (Cooperative Adaptive Cruise Control, CACC), eine Vorausaufprallwarnung (Forward Crash Warning, FCW), eine automatische Notbremsung (Automatic Emergency Braking, AEB), Spurverlassenswarnungen (Lane Departure Warnings, LDW), Fahrspurhalteunterstützung (Lane Keep Assist, LKA), Totwinkelwarnung (Blind Spot Warning, BSW), Warnung vor rückwärtigem Querverkehr (Rear Cross-Traffic Warning, RCTW), Kollisionswarnsysteme (Collision Warning Systems, CWS), Fahrspurzentrierung (Lane Centering, LC) und/oder andere Merkmale und Funktionalität beinhalten.
  • Die ACC-Systeme können einen oder mehrere RADAR-Sensor(en) 1160, einen oder mehrere LIDAR-Sensor(en) 1164 und/oder eine oder mehrere Kamera(s) verwenden. Die ACC-Systeme können eine Längs-ACC und/oder eine Quer-ACC beinhalten. Die Längs-ACC überwacht und steuert den Abstand zu dem Fahrzeug unmittelbar vor dem Fahrzeug 1100 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen sicheren Abstand zu vorausfahrenden Fahrzeugen einzuhalten. Die Quer-ACC sorgt für die Einhaltung des Abstands und weist das Fahrzeug 1100 an, bei Bedarf die Spur zu wechseln. Die Quer-ACC steht im Zusammenhang mit anderen ADAS-Anwendungen wie beispielsweise LCA und CWS.
  • CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 1124 und/oder die drahtlose(n) Antenne(n) 1126 von anderen Fahrzeugen über eine drahtlose Verbindung oder indirekt über eine Netzwerkverbindung (z.B. über das Internet) empfangen werden können. Direkte Verbindungen können durch eine Fahrzeug-zu-Fahrzeug (V2V)-Kommunikationsverbindung bereitgestellt werden, während indirekte Verbindungen eine Infrastruktur-zu-Fahrzeug (12V)-Kommunikationsverbindung sein können. Allgemein stellt das V2V-Kommunikationskonzept Informationen über die unmittelbar vorausfahrenden Fahrzeuge (z.B. Fahrzeuge unmittelbar vor dem und auf derselben Fahrspur wie das Fahrzeug 1100) bereit, während das I2V-Kommunikationskonzept Informationen über den Verkehr weiter voraus liefert. CACC-Systeme können eine oder beide der 12V- und V2V-Informationsquellen beinhalten. Angesichts der Informationen der Fahrzeuge vor dem Fahrzeug 1100 kann CACC zuverlässiger sein und hat das Potenzial, den Verkehrsfluss zu verbessern und Staus auf der Straße zu verringern.
  • FCW-Systeme sind dazu konzipiert, den Fahrer auf eine Gefahr aufmerksam machen, so dass der Fahrer korrigierend eingreifen kann. FCW-Systeme verwenden eine nach vorn gerichtete Kamera und/oder einen oder mehrere RADAR-Sensor(en) 1160, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Rückmeldung an den Fahrer, wie z.B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente, gekoppelt ist. FCW-Systeme können eine Warnung bereitstellen, wie beispielsweise in der Form eines Tons, einer visuellen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.
  • AEB-Systeme erfassen eine drohende Vorwärtskollision mit einem anderen Fahrzeug oder einem anderen Objekt und können automatisch die Bremsen betätigen, wenn der Fahrer nicht innerhalb eines bestimmten Zeit- oder Abstandsparameters korrigierend eingreift. AEB-Systeme können eine oder mehrere nach vorn gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1160 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erfasst, warnt es in der Regel zuerst den Fahrer, korrigierende Maßnahmen zur Vermeidung des Zusammenstoßes zu ergreifen, und wenn der Fahrer keine korrigierenden Maßnahmen ergreift, kann das AEB-System automatisch die Bremsen betätigen, um die Auswirkungen des vorausgesagten Zusammenstoßes zu verhindern oder zumindest abzuschwächen. AEB-Systeme können Techniken wie beispielsweise dynamische Bremsunterstützung und/oder Abbremsen bei drohendem Zusammenstoß beinhalten.
  • LDW-Systeme stellen sichtbare, hörbare und/oder taktile Warnungen, wie z.B. Lenkrad- oder Sitzvibrationen, bereit, um den Fahrer zu warnen, wenn das Fahrzeug 1100 Fahrbahnmarkierungen überfährt. Ein LDW-System aktiviert sich nicht, wenn der Fahrer durch Aktivierung eines Abbiegesignals ein beabsichtigtes Verlassen einer Fahrspur anzeigt. LDW-Systeme können nach vorn gerichtete Kameras verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Rückmeldung an den Fahrer, wie z.B. einer Anzeige, einem Lautsprecher und/oder einer Vibrationskomponente, gekoppelt ist.
  • LKA-Systeme sind eine Variation von LDW-Systemen. LKA-Systeme stellen einen Lenkinput oder ein Bremsen bereit, um das Fahrzeug 1100 zu korrigieren, falls das Fahrzeug 1100 beginnt, die Fahrspur zu verlassen.
  • BSW-Systeme erfassen und warnen den Fahrer vor Fahrzeugen, die sich im toten Winkel eines Automobils befinden. BSW-Systeme können einen sichtbaren, hörbaren und/oder taktilen Alarm ausgeben, um anzuzeigen, dass ein Einscheren oder ein Spurwechsel unsicher ist. Das System kann eine zusätzliche Warnung ausgeben, wenn der Fahrer ein Abbiegesignal benutzt. BSW-Systeme können eine oder mehrere nach hinten gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1160 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Rückmeldung an den Fahrer, wie z.B. einer Anzeige, einem Lautsprecher und/oder einer Vibrationskomponente, gekoppelt ist.
  • RCTW-Systeme können eine sichtbare, hörbare und/oder taktile Benachrichtigung bereitstellen, wenn beim Rückwärtsfahren des Fahrzeugs 1100 ein Objekt außerhalb des Rückfahrkamerabereichs erfasst wird. Einige RCTW-Systeme beinhalten eine AEB, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Aufprall zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete RADAR-Sensor(en) 1160 verwenden, der/die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt ist/sind, der/die elektrisch mit einer Rückmeldung an den Fahrer, wie z.B. einer Anzeige, einem Lautsprecher und/oder einer Vibrationskomponente, gekoppelt ist/sind.
  • Konventionelle ADAS-Systeme können anfällig für falsch-positive Ergebnisse sein, die für einen Fahrer ärgerlich und ablenkend sein können, in der Regel aber nicht katastrophal sind, da die ADAS-Systeme den Fahrer warnen und ihm die Möglichkeit geben, zu entscheiden, ob wirklich eine Sicherheitsbedingung vorliegt, und entsprechend zu handeln. In einem autonomen Fahrzeug 1100 muss jedoch das Fahrzeug 1100 im Fall widersprüchlicher Ergebnisse selbst entscheiden, ob das Ergebnis von einem Primärcomputer oder einem Sekundärcomputer (z.B. einer ersten Steuereinrichtung 1136 oder einer zweiten Steuereinrichtung 1136) zu berücksichtigen ist. Zum Beispiel kann in einigen Ausführungsformen das ADAS-System 1138 ein Backup- und/oder ein Sekundärcomputer zum Bereitstellen von Wahrnehmungsinformationen an ein Backup-Computer-Rationalitätsmodul sein. Das Backup-Computer-Rationalitätsmodul kann eine redundante diverse Software auf Hardware-Komponenten ausführen, um Fehler in Wahrnehmungen und dynamischen Fahraufgaben zu erkennen. Ausgaben des ADAS-Systems 1138 können einer übergeordneten MCU zur Verfügung gestellt werden. Falls Ausgaben des Primärcomputers und des Sekundärcomputers im Widerspruch stehen, muss die übergeordnete MCU bestimmen, wie der Widerspruch beseitigt werden kann, um einen sicheren Betrieb zu gewährleisten.
  • In einigen Beispielen kann der Primärcomputer dazu konfiguriert sein, der übergeordneten MCU einen Vertrauenswert bereitzustellen, der das Vertrauen des Primärcomputers in das gewählte Ergebnis anzeigt. Falls der Vertrauenswert einen Schwellenwert überschreitet, kann die übergeordnete MCU der Anweisung des Primärcomputers folgen, unabhängig davon, ob der Sekundärcomputer ein widersprüchliches oder inkonsistentes Ergebnis liefert. Wenn der Vertrauenswert den Schwellenwert nicht erreicht und wenn der Primär- und der Sekundärcomputer unterschiedliche Ergebnisse anzeigen (z.B. den Widerspruch), kann die übergeordnete MCU zwischen den Computern vermitteln, um das geeignete Ergebnis zu bestimmen.
  • Die übergeordnete MCU kann dazu konfiguriert sein, ein oder mehrere neuronale(s) Netzwerk(e) bzw. neuronale Netzwerke zu betreiben, das/die so trainiert und konfiguriert ist/sind, dass es/sie auf der Grundlage von Ausgaben des Primärcomputers und des Sekundärcomputers die Bedingungen bestimmt/bestimmen, unter welchen der Sekundärcomputer Fehlalarme bereitstellt. Folglich kann/können das/die neuronale(n) Netzwerk(e) in der übergeordneten MCU erfahren, wann der Ausgabe des Sekundärcomputers vertraut werden kann und wann nicht. Wenn der Sekundärcomputer beispielsweise ein RADAR-basiertes FCW-System ist, kann/können (ein) neuronale(s) Netzwerk(e) in der übergeordneten MCU erfahren, wenn das FCW-System metallische Objekte identifiziert, die in Wirklichkeit keine Gefahren darstellen, wie z.B. ein Entwässerungsgitter oder eine Schachtabdeckung, die einen Alarm auslösen. In ähnlicher Weise kann dann, wenn der Sekundärcomputer ein kamerabasiertes LDW-System ist, ein neuronales Netzwerk in der übergeordneten MCU lernen, die LDW zu übersteuern, wenn Radfahrer 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(s) Netzwerk(e) beinhalten, die auf der übergeordneten MCU laufen, kann die übergeordnete MCU zumindest einen DLA oder eine GPU beinhalten, der/die für den Betrieb des/der neuronalen Netzwerk(s/e) mit zugehörigem Speicher geeignet ist. In bevorzugten Ausführungsformen kann die übergeordnete MCU eine Komponente des/der SoC(s) 1104 umfassen und/oder als eine solche in diesen enthalten sein.
  • In anderen Beispielen kann das ADAS-System 1138 einen Sekundärcomputer beinhalten, der ADAS-Funktionalität unter Verwendung traditioneller Regeln der Computer Vision ausführt. Als solcher kann der Sekundärcomputer die klassischen Regeln der Computer Vision (if-then) verwenden, und kann das Vorhandensein eines oder mehrerer neuronaler Netzwerke in der übergeordneten MCU die Zuverlässigkeit, Sicherheit und Leistung verbessern. Zum Beispiel machen die diverse Implementierung und die absichtliche Nicht-Identität das Gesamtsystem fehlertoleranter, speziell gegenüber Fehlern, die durch Funktionalität der Software (oder der Software-Hardware-Schnittstelle) verursacht sind. Falls beispielsweise ein Softwarefehler oder ein Fehler in der auf dem Primärcomputer laufenden Software vorliegt und der nicht identische Softwarecode, der auf dem Sekundärcomputer läuft, dasselbe Gesamtergebnis liefert, kann die übergeordnete MCU größeres Vertrauen haben, dass das Gesamtergebnis korrekt ist, und verursacht der Fehler in der Software oder Hardware auf dem Primärcomputer keinen wesentlichen Fehler.
  • In einigen Beispielen kann die Ausgabe des ADAS-Systems 1138 in den Wahrnehmungsblock des Primärcomputers und/oder in den Block dynamischer Fahraufgaben des Primärcomputers eingespeist werden. Falls das ADAS-System 1138 beispielsweise eine Vorausunfallwarnung aufgrund eines sich unmittelbar voraus befindenden Objekts anzeigt, kann der Wahrnehmungsblock diese Information verwenden, wenn Objekte identifiziert werden. In anderen Beispielen kann der Sekundärcomputer sein ein eigenes neuronales Netzwerk haben, das trainiert ist und folglich das Risiko von Falsch-Positiven reduziert, wie hierin beschrieben wurde.
  • Das Fahrzeug 1100 kann darüber hinaus das Infotainment SoC 1130 (z.B. ein fahrzeuginternes Infotainmentsystem (In-Vehicle Infotainment, IVI)) beinhalten. Obwohl das Infotainmentsystem als ein SoC dargestellt und beschrieben wird, braucht das Infotainmentsystem kein SoC zu sein und kann zwei oder mehr diskrete Komponenten beinhalten. Das Infotainment-SoC 1130 kann eine Kombination aus Hard- und Software beinhalten, die für die Bereitstellung von Audio (z.B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z.B. Fernsehen, Filme, Streaming usw.), Telefon (z.B. Freisprecheinrichtung), Netzwerkverbindungen (z.B., LTE, Wi-Fi usw.) und/oder Informationsdiensten (z.B. Navigationssysteme, Rückwärtseinparkunterstützung, ein Radiodatensystem, fahrzeugbezogene Informationen wie beispielsweise Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremsflüssigkeitsstand, Ölstand, Tür offen/geschlossen, Luftfilterinformationen usw.) für das Fahrzeug 1100 verwendet werden können. Das Infotainment-SoC 1130 kann z.B. Radios, Plattenspieler, Navigationssysteme, Videoabspieler, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, Wi-Fi, Lenkrad-Audiobedienelemente, eine Freisprech-Sprachsteuerung, eine Head-up-Anzeige (HUD), eine HMI-Anzeige 1134, eine Telematikvorrichtung, ein Bedienfeld (z.B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder andere Komponenten beinhalten. Das Infotainment-SoC 1130 kann darüber hinaus dazu verwendet werden, Informationen (z.B. sichtbar und/oder hörbar) für einen oder mehrere Benutzer des Fahrzeugs bereitzustellen, wie beispielsweise Informationen von dem ADAS-System 1138, Informationen zum autonomen Fahren, wie beispielsweise geplante Fahrzeugmanöver, Bewegungsbahnen, Informationen zur Umgebung (z.B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.
  • Das Infotainment-SoC 1130 kann GPU-Funktionalität beinhalten. Das Infotainment-SoC 1130 kann über den Bus 1102 (z.B. CAN-Bus, Ethernet usw.) mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 1100 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 1130 mit einer übergeordneten MCU gekoppelt sein, so dass die GPU des Infotainmentsystems einige Selbstfahrfunktionen ausführen kann, falls der/die primäre(n) Steuereinrichtung(en) 1136 (z.B. die Primär- und/oder Backup-Computer des Fahrzeugs 1100) ausfallen. In einem solchen Beispiel kann das Infotainment-SoC 1130 das Fahrzeug 1100 in einen Chauffeur-zu-sicherem-Stopp-Modus versetzen, wie hierin beschrieben wurde.
  • Das Fahrzeug 1100 kann ferner ein Kombiinstrument 1132 beinhalten (z.B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.). Das Kombiinstrument 1132 kann eine Steuereinrichtung und/oder einen Supercomputer (z.B. eine diskrete Steuereinrichtung oder einen diskreten Supercomputer) beinhalten. Das Kombiinstrument 1132 kann eine Reihe von Instrumenten wie beispielsweise einen Tachometer, eine Tankanzeige, eine Öldruckanzeige, einen Drehzahlmesser, einen Kilometerzähler, Blinker, eine Schaltpositionsanzeige, eine oder mehrere Gurtwarnleuchte(n), eine oder mehrere Feststellbremswarnleuchte(n), eine oder mehrere Motorstörungsleuchte(n), Airbag (SRS)-Systeminformationen, Beleuchtungssteuerungen, Sicherheitssystemkontrollen, Navigationsinformationen usw. beinhalten. In einigen Beispielen können Informationen angezeigt und/oder zwischen dem Infotainment-SoC 1130 und dem Kombiinstrument 1132 gemeinsam genutzt werden.
  • Mit anderen Worten kann das Kombiinstrument 1132 als Teil des Infotainment-SoC 1130 enthalten sein, oder umgekehrt.
  • 11D ist ein Systemdiagramm für die Kommunikation zwischen einem oder mehreren Cloud-basierten Server(n) und dem beispielhaften autonomen Fahrzeug 1100 von 11A, gemäß einigen Ausführungsformen der Erfindung. Das System 1176 kann einen oder mehrere Server 1178, ein oder mehrere Netzwerk(e) 1190 und Fahrzeuge, einschließlich des Fahrzeugs 1100, beinhalten. Der/die Server 1178 kann/können eine Vielzahl von GPUs 1184(A)-1184(H) (hierin kollektiv als GPUs 1184 bezeichnet), PCIe-Switches 1182(A)-1182(H) (hierin kollektiv als PCIe-Switches 1182 bezeichnet) und/oder CPUs 1180(A)-1180(B) (hierin kollektiv als CPUs 1180 bezeichnet) umfassen. Die GPUs 1184, die CPUs 1180 und die PCIe-Switches können mit Hochgeschwindigkeitsverbindungen verbunden sein, wie z.B., und ohne Beschränkung darauf, die von NVIDIA entwickelten NVLink-Schnittstellen 1188 und/oder PCIe-Verbindungen 1186. In einigen Beispielen sind die GPUs 1184 über NVLink und/oder NVSwitch-SoC verbunden, und sind die GPUs 1184 und die PCIe-Switches 1182 über PCIe-Verbindungen miteinander verbunden. Obwohl acht GPUs 1184, zwei CPUs 1180 und zwei PCIe-Switches dargestellt sind, soll dies nicht beschränkend sein. Je nach Ausführungsform kann jeder der Server 1178 eine beliebige Anzahl von GPUs 1184, CPUs 1180 und/oder PCIe-Switches beinhalten. Der/die Server 1178 können beispielsweise jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 1184 beinhalten.
  • Der/die Server 1178 kann/können über das/die Netzwerk(e) 1190 und von den Fahrzeugen Bilddaten empfangen, die für Bilder repräsentativ sind, die unerwartete oder geänderte Straßenbedingungen zeigen, wie z.B. kürzlich begonnene Straßenarbeiten. Der/die Server 1178 kann/können über das/die Netzwerk(e) 1190 und an die Fahrzeuge neuronale Netzwerke 1192, aktualisierte neuronale Netzwerke 1192 und/oder Karteninformationen 1194, einschließlich Informationen über Verkehrs- und Straßenzustände, übertragen. Die Aktualisierungen der Karteninformationen 1194 können Aktualisierungen für die HD-Karte 1122 beinhalten, wie beispielsweise Informationen über Baustellen, Schlaglöcher, Umleitungen, Überschwemmungen und/oder andere Hindernisse. In einigen Beispielen können die neuronalen Netzwerke 1192, die aktualisierten neuronalen Netzwerke 1192 und/oder die Karteninformationen 1194 aus neuem Training und/oder Erfahrungen hervorgegangen sein, die in Daten repräsentiert sind, die von einer beliebigen Anzahl von Fahrzeugen in der Umgebung empfangen wurden, und/oder auf Training basieren, die in einem Datenzentrum (z.B. unter Verwendung des/der Server(s) 1178 und/oder anderer Server) durchgeführt wurden.
  • Der/die Server 1178 kann/können dazu verwendet werden, Modelle maschinellen Lernens (z.B. neuronale Netzwerke) auf der Grundlage von Trainingsdaten zu trainieren. Die Trainingsdaten können von den Fahrzeugen erzeugt werden, und/oder können in einer Simulation (z.B. unter Verwendung einer Spiel-Engine) generiert werden. In einigen Beispielen werden die Trainingsdaten gekennzeichnet (z.B. wenn das neuronale Netzwerk von überwachtem Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen, während in anderen Beispielen die Trainingsdaten nicht gekennzeichnet und/oder vorverarbeitet werden (z.B. wenn das neuronale Netzwerk kein überwachtes Lernen erfordert). Das Training kann nach einer oder mehreren Klassen von maschinellen Lerntechniken durchgeführt werden, einschließlich, und ohne Beschränkung darauf, 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. Sobald die Modelle maschinellen Lernens trainiert sind, können die Modelle maschinellen Lernens von den Fahrzeugen verwendet werden (z.B. über die Netzwerk(e) 1190 an die Fahrzeuge übertragen werden, und/oder die Modelle maschinellen Lernens können von dem/den Server(n) 1178 zur Fernüberwachung der Fahrzeuge verwendet werden.
  • In einigen Beispielen können der/die Server 1178 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netzwerke zur intelligenten Echtzeit-Inferenzierung anwenden. Der/die Server 1178 können Deep Learning-Supercomputer und/oder dedizierte KI-Computer umfassen, die mit der/den GPU(s) 1184 betrieben werden, wie z.B. die von NVIDIA entwickelten DGX- und DGX-Station-Maschinen. In einigen Beispielen kann/können der/die Server 1178 jedoch auch eine Deep Learning-Infrastruktur umfassen, die nur CPU-gestützte Datenzentren verwendet.
  • Die Deep Learning-Infrastruktur des/der Server(s) 1178 kann in der Lage sein, schnelle Echtzeit-Inferenzierung durchzuführen, und kann diese Fähigkeit dazu nutzen, den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware in dem Fahrzeug 1100 zu bewerten und zu überprüfen. Zum Beispiel kann die Deep Learning-Infrastruktur periodische Aktualisierungen von dem Fahrzeug 1100 empfangen, wie beispielsweise eine Sequenz von Bildern und/oder Objekten, die das Fahrzeug 1100 in dieser Sequenz von Bildern lokalisiert hat (z.B. über Computer Vision und/oder andere Objektklassifizierungstechniken für maschinelles Lernen). Die Deep Learning-Infrastruktur kann ihr eigenes neuronales Netzwerk betreiben, um die Objekte zu identifizieren und sie mit den von dem Fahrzeug 1100 identifizierten Objekten zu vergleichen, und, falls die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI in dem Fahrzeug 1100 fehlfunktioniert, können der/die Server 1178 ein Signal an das Fahrzeug 1100 übertragen, das einen ausfallsicheren Computer des Fahrzeugs 1100 dazu anweist, die Kontrolle zu übernehmen, die Passagiere zu benachrichtigen und ein sicheres Einparkmanöver durchzuführen.
  • Zur Inferenzierung können der/die Server 1178 die GPU(s) 1184 und einen oder mehrere programmierbare Inferenzierungsbeschleuniger (z.B. TensorRT von NVIDIA) beinhalten. Die Kombination aus GPU-betriebenen Servern und Inferenzierungsbeschleunigung kann eine Echtzeit-Ansprechvermögen ermöglichen. In anderen Beispielen, in welchen beispielsweise die Leistung weniger kritisch ist, können Server, die von CPUs, FPGAs und anderen Prozessoren mit Energie versorgt werden, zur Inferenzierung verwendet werden.
  • Die Erfindung kann im allgemeinen Kontext von Computercode oder maschinenverwendbaren Anweisungen, einschließlich computerausführbarer Anweisungen, wie z.B. Programmmodulen, beschrieben werden, die von einem Computer oder einer anderen Maschine, wie z.B. einem Assistenten für persönliche Daten oder einer anderen in der Hand zu haltenden Vorrichtung, ausgeführt werden. Allgemein beziehen sich Programmmodule, einschließlich von Routinen, Programmen, Objekten, Komponenten, Datenstrukturen usw., auf Code, der bestimmte Aufgaben ausführt oder bestimmte abstrakte Datentypen implementiert. Die Erfindung kann in einer Vielzahl von Systemkonfigurationen praktiziert werden, einschließlich von in der Hand zu haltenden Vorrichtungen, Unterhaltungselektronik, Allzweckcomputern, spezielleren Rechenvorrichtungen usw. Die Erfindung kann darüber hinaus in verteilten Computerumgebungen praktiziert werden, in denen Aufgaben durch Fernverarbeitungsvorrichtungen ausgeführt werden, die über ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Wie hierin verwendet, sollte eine Rezitation von „und/oder“ in Bezug auf zwei oder mehr Elemente so interpretiert werden, dass nur ein Element oder eine Kombination von Elementen gemeint ist. Zum Beispiel kann „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder die Elemente A, B und C beinhalten. Darüber hinaus kann „zumindest eines des Elements A oder des Elements B“ zumindest eines des Elements A, zumindest eines von Element B oder zumindest eines von Element A und zumindest eines von Element B beinhalten. Ferner kann „zumindest eines von Element A und Element B“ zumindest eines von Element A, zumindest eines von Element B oder zumindest eines von Element A und zumindest eines von Element B beinhalten.
  • Der Gegenstand der Erfindung wird hierin spezifisch beschrieben, um gesetzliche Anforderungen zu erfüllen. Die Beschreibung selbst soll jedoch den Umfang dieser Erfindung nicht beschränken. Vielmehr haben die Erfinder in Betracht gezogen, dass der beanspruchte Gegenstand auch auf andere Weise verkörpert sein könnte, um verschiedene Schritte oder Kombinationen von Schritten, die zu den in diesem Dokument beschriebenen ähnlich sind, in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien einzubeziehen. Darüber hinaus versteht sich, obwohl die Begriffe „Schritt“ und/oder „Block“ hierin verwendet werden können, um verschiedene Elemente von angewandten Verfahren zu bezeichnen, dass die Begriffe nicht so auszulegen sind, dass sie eine bestimmte Reihenfolge unter oder zwischen verschiedenen hierin offenbarten Schritten implizieren, es sei denn, die Reihenfolge der einzelnen Schritte wird explizit beschrieben.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/101232 [0138]

Claims (22)

  1. Verfahren, umfassend: Identifizieren eines Bereichs in einem ersten Bild, der einem Objekt mit einem ersten Hintergrund in dem ersten Bild entspricht; Bestimmen von Bilddaten, die für das Objekt repräsentativ sind, basierend zumindest auf dem Bereichs des Objekts; Erzeugen eines zweiten Bilds, das das Objekt mit einem zweiten Hintergrund enthält, basierend zumindest auf einem Integrieren des Objekts mit dem zweiten Hintergrund unter Verwendung der Bilddaten; und Trainieren mindestens eines neuronalen Netzwerks zum Durchführen einer Vorhersageaufgabe unter Verwendung des zweiten Bilds.
  2. Verfahren nach Anspruch 1, wobei das Identifizieren des Bereichs ein Bestimmen mindestens eines ersten Segments des ersten Bilds, das dem Objekt entspricht, und mindestens eines zweiten Segments des ersten Bilds, das dem ersten Hintergrund entspricht, basierend mindestens auf einem Durchführen einer Bildsegmentierung des ersten Bilds umfasst.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Trainieren des mindestens einen neuronalen Netzwerks darin besteht, eine oder mehrere Posen der Objekte zu klassifizieren.
  4. Verfahren nach einem der vorangehenden Ansprüche, wobei das Bestimmen der Bilddaten ein Erzeugen einer Maske basierend mindestens auf dem Bereich in dem ersten Bild und ein Anwenden der Maske auf das erste Bild umfasst.
  5. Verfahren nach einem der vorangehenden Ansprüche, wobei das Bestimmen der Bilddaten das Erzeugen einer Maske basierend mindestens auf dem Bereich in dem ersten Bild umfasst und das Erzeugen des zweiten Bilds mindestens auf einem Durchführen einer Streckung und/oder einer Erosion an einem Teil der Maske, der dem Objekt entspricht, basiert.
  6. Verfahren nach einem der vorangehenden Ansprüche, wobei das Bestimmen der Bilddaten das Erzeugen einer Maske basierend mindestens auf dem Bereich in dem Bild umfasst und das Erzeugen des zweiten Bilds mindestens auf einem Verunschärfen mindestens eines Teils einer Grenze der Maske, die dem Objekt entspricht, basiert.
  7. Verfahren nach einem der vorangehenden Ansprüche, wobei das Erzeugen des zweiten Bilds ein Verändern eines Farbtons des Objekts umfasst.
  8. Verfahren nach einem der vorangehenden Ansprüche, ferner umfassend: Auswählen einer Ansicht des Objekts in einer Umgebung; und Erzeugen des ersten Bilds basierend mindestens auf einem Rasterisieren einer dreidimensionalen Erfassung des Objekts in der Umgebung aus der Ansicht.
  9. Verfahren nach einem der vorangehenden Ansprüche, ferner umfassend ein Erzeugen eines dritten Bilds, das das Objekt mit einem dritten Hintergrund enthält, basierend mindestens auf einem Integrieren des Objekts mit dem dritten Hintergrund, wobei das Trainieren des mindestens einen neuronalen Netzwerks ferner das dritte Bild verwendet.
  10. Verfahren nach einem der vorangehenden Ansprüche, wobei das Integrieren ein nahtloses Überblenden des Objekts mit dem zweiten Hintergrund umfasst.
  11. Verfahren, ferner umfassend: Empfangen von Bildern eines oder mehrerer Objekte mit einer Vielzahl von Hintergründen; Erzeugen eines Satzes von Inferenzierungswerten, die einer oder mehreren Vorhersagen einer Vorhersageaufgabe entsprechen, die an dem einen oder den mehreren Objekten durchgeführt wurde, unter Verwendung der Bilder; Auswählen eines Hintergrunds basierend auf mindestens einem oder mehreren Inferenzierungswerten des Satzes von Inferenzierungswerten; Erzeugen eines Bilds basierend mindestens auf einem Integrieren eines Objekts mit dem Hintergrund, der mindestens auf dem Auswählen des Hintergrunds basiert; und Anwenden des Bilds während eines Trainierens mindestens eines neuronalen Netzwerks zum Durchführen der Vorhersageaufgabe.
  12. Verfahren nach Anspruch 11, wobei der eine oder die mehreren Inferenzierungswerte eine Vielzahl von Inferenzierungswerten für eine Gruppe der Bilder umfassen, die den Hintergrund enthalten, und das Auswählen mindestens auf einer Analyse der Vielzahl von Inferenzierungswerten basiert.
  13. Verfahren nach Anspruch 11 oder 12, wobei die Inferenzierungswerte unter Verwendung des mindestens einen neuronalen Netzwerks in einer ersten Epoche des Trainierens des mindestens einen neuronalen Netzwerks erzeugt werden und das Verwenden des Bilds in einer zweiten Epoche des Trainierens erfolgt.
  14. Verfahren nach einem der Ansprüche 11 bis 13, wobei das Erzeugen des Bilds ein Erzeugen einer Maske basierend mindestens auf einem Identifizieren eines Bereichs des Objekts in dem Bild und ein Anwenden der Maske auf das Bild beinhaltet.
  15. Verfahren nach einem der Ansprüche 11 bis 14, wobei das Auswählen des Hintergrunds mindestens auf einem Bestimmen, dass mindestens ein Inferenzierungswert des einen oder der mehreren Inferenzierungswerte unter einem Schwellenwert liegt, basiert.
  16. Verfahren nach einem der Ansprüche 11 bis 15, wobei der eine oder die mehreren Inferenzierungswerte einem ersten beschnittenen Bereich des Hintergrunds entsprechen und das Integrieren des Objekts mit einem zweiten beschnittenen Bereich des Hintergrunds erfolgt, der sich von dem ersten beschnittenen Bereich unterscheidet.
  17. Verfahren nach einem der Ansprüche 11 bis 16, wobei der Hintergrund von einem Hintergrundtyp ist und das Verfahren ferner ein synthetisches Erzeugen des Hintergrunds basierend mindestens auf dem Hintergrundtyp umfasst.
  18. System, umfassend: einen oder mehrere Prozessoren; und eine oder mehrere Speichervorrichtungen, die Anweisungen speichern, die dann, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, Operationen auszuführen, die umfassen: Erhalten mindestens eines neuronalen Netzwerks, das dazu trainiert ist, eine Vorhersageaufgabe für Bilder unter Verwendung von Eingaben durchzuführen, die aus Masken, die Objekten in den Bildern entsprechen, erzeugt wurden, basierend mindestens auf einem Verändern von Hintergründen der Objekte unter Verwendung der Masken; Erzeugen einer Maske, die einem Objekt in einem Bild entspricht, wobei das Objekt einen Hintergrund in dem Bild hat; Erzeugen, unter Verwendung der Maske, von Eingaben für das mindestens eine neuronale Netzwerk, wobei die Eingaben das Objekt mit mindestens einem Teil des Hintergrunds erfassen; und Erzeugen mindestens einer Vorhersage für die Vorhersageaufgabe basierend mindestens auf einem Anwenden der Eingaben auf das mindestens eine neuronale Netzwerk.
  19. System nach Anspruch 18, wobei die Eingaben erste Eingaben umfassen, die mindestens einen Teil des Bilds darstellen, das das Objekt mit dem mindestens einen Teil des Hintergrunds enthält, und zweite Eingaben, die mindestens einen Teil der Maske repräsentieren.
  20. System nach Anspruch 18 oder 19, wobei das Erzeugen der Eingaben ein Erzeugen von Bilddaten basierend mindestens auf einem Verändern des Hintergrunds unter Verwendung der Maske umfasst und mindestens ein Teil der Eingaben den Bilddaten entspricht.
  21. System nach einem der Ansprüche 18 bis 20, wobei das Erzeugen mindestens auf einem Verschmelzen eines ersten und eines zweiten Satzes von Inferenzierungswerten basiert, wobei der erste Satz von Inferenzierungswerten einem ersten Teil der Eingaben entspricht, die mindestens einen Teil des Bilds repräsentieren, das das Objekt mit dem mindestens einen Teil des Hintergrunds umfasst, und der zweite Satz von Inferenzierungswerten einem zweiten Teil der Eingaben entspricht, die mindestens einen Teil der Maske repräsentieren.
  22. System nach einem der Ansprüche 18 bis 21, wobei die Operationen durchgeführt werden durch mindestens eines von: einem Steuerungssystem für eine autonome oder halbautonome Maschine; einem Wahrnehmungssystem für eine autonome oder halbautonome Maschine; einem System zum Durchführen von Simulationsoperationen; einem System zum Durchführen von Deep-Learning-Operationen; einem System, das unter Verwendung eines Edge-Geräts realisiert ist; einem System, das unter Verwendung eines Roboters realisiert ist; einem System, das eine oder mehrere virtuelle Maschinen (VMs) enthält; einem System, das mindestens teilweise in einem Rechenzentrum implementiert ist; oder einem System, das mindestens teilweise unter Verwendung von Cloud-Computing-Ressourcen implementiert ist.
DE102021125234.2A 2020-09-30 2021-09-29 Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken Pending DE102021125234A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/039,437 US11688074B2 (en) 2020-09-30 2020-09-30 Data augmentation including background modification for robust prediction using neural networks
US17/039,437 2020-09-30

Publications (1)

Publication Number Publication Date
DE102021125234A1 true DE102021125234A1 (de) 2022-03-31

Family

ID=80624710

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021125234.2A Pending DE102021125234A1 (de) 2020-09-30 2021-09-29 Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken

Country Status (4)

Country Link
US (1) US11688074B2 (de)
JP (1) JP2022058135A (de)
CN (1) CN114332907A (de)
DE (1) DE102021125234A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230146926A1 (en) * 2021-11-10 2023-05-11 Valeo Schalter Und Sensoren Gmbh Generating and filtering navigational maps
CN117095395A (zh) * 2023-10-19 2023-11-21 北京智源人工智能研究院 用于心脏超声图像分割的模型训练方法、装置和分割方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022091270A (ja) * 2020-12-09 2022-06-21 ブラザー工業株式会社 方法、システム、および、コンピュータプログラム
JP2022122364A (ja) * 2021-02-10 2022-08-23 日本電気株式会社 データ生成装置、データ生成方法、及びプログラム
US11769256B2 (en) * 2021-02-16 2023-09-26 Avanade Holdings Llc Image creation for computer vision model training
US20230100305A1 (en) * 2021-09-27 2023-03-30 Baidu Usa Llc System and process for repainting of planar objects in video
JP2023174415A (ja) * 2022-05-27 2023-12-07 ブラザー工業株式会社 コンピュータプログラム、処理方法、および、処理装置
US11699282B1 (en) 2022-06-30 2023-07-11 Plusai, Inc. Data augmentation for vehicle control
US11574462B1 (en) 2022-06-30 2023-02-07 Plus AI, Inc. Data augmentation for detour path configuring
US11702011B1 (en) * 2022-06-30 2023-07-18 Plusai, Inc. Data augmentation for driver monitoring
CN115345321B (zh) * 2022-10-19 2023-02-17 小米汽车科技有限公司 数据增广方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US11915350B2 (en) * 2018-08-29 2024-02-27 Intel Corporation Training one-shot instance segmenters using synthesized images

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230146926A1 (en) * 2021-11-10 2023-05-11 Valeo Schalter Und Sensoren Gmbh Generating and filtering navigational maps
US11908075B2 (en) * 2021-11-10 2024-02-20 Valeo Schalter Und Sensoren Gmbh Generating and filtering navigational maps
CN117095395A (zh) * 2023-10-19 2023-11-21 北京智源人工智能研究院 用于心脏超声图像分割的模型训练方法、装置和分割方法
CN117095395B (zh) * 2023-10-19 2024-02-09 北京智源人工智能研究院 用于心脏超声图像分割的模型训练方法、装置和分割方法

Also Published As

Publication number Publication date
CN114332907A (zh) 2022-04-12
JP2022058135A (ja) 2022-04-11
US20220101047A1 (en) 2022-03-31
US11688074B2 (en) 2023-06-27

Similar Documents

Publication Publication Date Title
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE102021125234A1 (de) Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken
DE112019006484T5 (de) Detektion von abständen zu hindernissen in autonomen maschinenanwendungen
DE112020002166T5 (de) Simulation realistischer testdaten aus transformierten sensordaten der realen welt für autonome maschinenanwendungen
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE102021126254A1 (de) Überwachen der Aufmerksamkeit und der kognitiven Belastung der Insassen für autonome und halbautonome Fahranwendungen
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE112020001897T5 (de) Trainieren neuronaler Netze unter Verwendung von Grundwahrheitsdaten, die mit Karteninformationen ergänzt wurden, für autonome Maschinenanwendungen
DE102021121558A1 (de) Auf neuronalen netzen basierende bestimmung der blickrichtung unter verwendung räumlicher modelle
DE112019000279T5 (de) Steuern autonomer fahrzeuge anhand sicherer ankunftszeiten
DE112019000122T5 (de) Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE102021126648A1 (de) Imitationstraining mittels synthetischen daten
DE102020100685A1 (de) Vorhersage zeitlicher informationen in autonomenmaschinenanwendungen
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe
DE102022121121A1 (de) Objektverfolgung unter Verwendung von LiDAR-Daten für autonome Maschinenanwendungen
DE112021000104T5 (de) Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen
DE102021105245A1 (de) Verwenden von bildaugmentation mit simulierten objekten zum trainieren von maschinenlernmodellen in autonomen fahranwendungen
DE102020130749A1 (de) System zum maschinellen lernen zur blickbestimmung mit adaptiver gewichtung von eingaben
DE102020131353A1 (de) Auf einem neuronalen netz basierende gesichtsanalyse mittels gesichtslandmarken und zugehörigen vertrauenswerten

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06K0009660000

Ipc: G06V0030194000