DE102022123130A1 - Trainieren von objekterkennungsmodellen unter verwendung von transferlernen - Google Patents

Trainieren von objekterkennungsmodellen unter verwendung von transferlernen Download PDF

Info

Publication number
DE102022123130A1
DE102022123130A1 DE102022123130.5A DE102022123130A DE102022123130A1 DE 102022123130 A1 DE102022123130 A1 DE 102022123130A1 DE 102022123130 A DE102022123130 A DE 102022123130A DE 102022123130 A1 DE102022123130 A1 DE 102022123130A1
Authority
DE
Germany
Prior art keywords
data
training
image
machine learning
learning model
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
DE102022123130.5A
Other languages
English (en)
Inventor
Yu Wang
Farzin Aghdasi
Parthasarathy Sriram
Subhashree Radhakrishnan
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 DE102022123130A1 publication Critical patent/DE102022123130A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • 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/044Recurrent networks, e.g. Hopfield networks

Landscapes

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

Abstract

Vorrichtungen, Systeme und Techniken zum Trainieren eines Objekterkennungsmodells unter Verwendung von Transferlernen.

Description

  • TECHNISCHES GEBIET
  • Mindestens eine Ausführungsform betrifft Verarbeitungsressourcen, die verwendet werden, um Operationen zum Trainieren eines Objekterkennungsmodells unter Verwendung von Transferlernen durchzuführen und zu erleichtern. Zum Beispiel betrifft mindestens eine Ausführungsform Prozessoren oder Rechensysteme, die verwendet werden, um ein oder mehrere Rechensysteme zum Trainieren eines Objekterkennungsmodells gemäß verschiedenen in dieser Schrift beschriebenen neuen Techniken unter Verwendung von Transferlernen, um Objekte einer Zielklasse zu erkennen, die in einem oder mehreren Bildern gezeigt sind, bereitzustellen und zu befähigen.
  • HINTERGRUND
  • Maschinelles Lernen wird häufig auf Bildverarbeitung angewendet, wie etwa die Identifizierung von Objekten, die in Bildern gezeigt sind. Objektidentifizierung kann in der medizinischen Bildgebung, der wissenschaftlichen Forschung, autonomen Fahrsystemen, der Roboterautomatisierung, Sicherheitsanwendungen, Strafverfolgungspraktiken und vielen anderen Umfeldern verwendet werden. Maschinelles Lernen beinhaltet das Trainieren eines Rechensystems, um - unter Verwendung von Trainingsbildern und anderen Trainingsdaten - Muster in Bildern zu identifizieren, welche die Objekterkennung erleichtern können. Das Trainieren kann überwacht oder unüberwacht erfolgen. Maschinelle Lernmodelle können verschiedene Rechenalgorithmen verwenden, wie etwa Entscheidungsbaumalgorithmen (oder andere regelbasierte Algorithmen), künstliche neuronale Netze und dergleichen. Während einer Inferenzphase wird ein neues Bild in ein trainiertes maschinelles Lernmodell eingegeben und verschiedene interessierende Zielobjekte (z. B. Fahrzeuge in einem Bild einer Fahrbahn) können unter Verwendung von Mustern und Merkmalen, die während des Trainierens identifiziert wurden, identifiziert werden.
  • Figurenliste
  • Verschiedene Ausführungsformen gemäß der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, in denen Folgendes gilt:
    • 1 ist ein Blockdiagramm einer beispielhaften Systemarchitektur gemäß mindestens einer Ausführungsform;
    • 2 ist ein Blockdiagramm eines beispielhaften Trainingsdatengenerators und einer beispielhaften Trainingsengine gemäß mindestens einer Ausführungsform;
    • 3 ist ein Blockdiagramm einer beispielhaften Objekterkennungsengine gemäß mindestens einer Ausführungsform;
    • 4A zeigt ein beispielhaftes trainiertes Objekterkennungsmodell gemäß mindestens einer Ausführungsform;
    • 4B zeigt ein beispielhaftes trainiertes Objekterkennungsmodell, das aktualisiert wird, um einen Maskenkopf zu entfernen, gemäß mindestens einer Ausführungsform;
    • 5A veranschaulicht ein Flussdiagramm eines beispielhaften Verfahrens zum Trainieren eines maschinellen Lernmodells, um Objekte einer Zielklasse zu erkennen, gemäß mindestens einer Ausführungsform;
    • 5B veranschaulicht ein Flussdiagramm eines beispielhaften Verfahrens zum Verwenden eines maschinellen Lernmodells, das trainiert wird, um Objekte einer Zielklasse zu erkennen, gemäß mindestens einer Ausführungsform;
    • 6 veranschaulicht ein Flussdiagramm eines beispielhaften Verfahrens zum Trainieren eines maschinellen Lernmodells und zum Aktualisieren des trainierten maschinellen Lernmodells, um einen Maskenkopf zu entfernen, gemäß mindestens einer Ausführungsform;
    • 7A veranschaulicht Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform;
    • 7B veranschaulicht Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform;
    • 8 veranschaulicht ein beispielhaftes Rechenzentrumsystem gemäß mindestens einer Ausführungsform;
    • 9 veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 10 veranschaulicht ein Computersystem gemäß mindestens einer Ausführungsform;
    • 11 veranschaulicht mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehreren Ausführungsformen;
    • 12 veranschaulicht mindestens Abschnitte eines Grafikprozessors gemäß einer oder mehrerer Ausführungsformen;
    • 13 ist ein beispielhaftes Datenflussdiagramm für eine weiterentwickelte Rechen-Pipeline gemäß mindestens einer Ausführungsform;
    • 14 ist ein Systemdiagramm für ein beispielhaftes System zum Trainieren, Anpassen, Instanziieren und Bereitstellen von maschinellen Lernmodellen in einer weiterentwickelten Rechen-Pipeline gemäß mindestens einer Ausführungsform, und
    • 15A und 15B veranschaulichen ein Datenflussdiagramm für einen Prozess zum Trainieren eines maschinellen Lernmodells sowie eine Client-Server-Architektur zum Verbessern von Annotations-Tools mit vortrainierten Annotationsmodellen gemäß mindestens einer Ausführungsform;
    • 16A veranschaulicht ein Beispiel für ein autonomes Fahrzeug gemäß mindestens einer Ausführungsform;
    • 16B veranschaulicht ein Beispiel für Kamerastandorte und Sichtfelder für das autonome Fahrzeug aus 16A gemäß mindestens einer Ausführungsform;
    • 16C veranschaulicht eine beispielhafte Systemarchitektur für das autonome Fahrzeug aus 16A gemäß mindestens einer Ausführungsform; und
    • 16D veranschaulicht ein System zur Kommunikation zwischen (einem) cloudbasierten Server(n) und dem autonomen Fahrzeug aus 16A gemäß mindestens einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • Das genaue Erkennen und Klassifizieren von Objekten, die in Bildern beinhaltet sind, die verschiedene Umgebungen zeigen, ist eine herausfordernde Aufgabe. Fortschritte wurden in Bezug auf maschinelle Lernmodelle gemacht, die trainiert werden, um Objekte zu erkennen, die in gegebenen Eingabebildern beinhaltet sind. Die Genauigkeit der Objekterkennung und - klassifizierung durch ein maschinelles Lernmodell hängt jedoch von den Daten ab, die zum Trainieren des Modells verwendet werden. In einem Beispiel kann ein intelligentes Überwachungssystem ein maschinelles Lernmodell verwenden, um Objekte einer Zielklasse (z. B. einer „Menschen“- oder „Personen“-Klasse) in Bildern zu erkennen, die von einer Kamera (z. B. einer Überwachungskamera, einer Kamera für ein autonomes Fahrzeug usw.) aufgenommen werden. Zusätzlich zum Erkennen und Klassifizieren von Objekten, die in gegebenen Eingabebildern gezeigt sind, kann ein maschinelles Lernmodell trainiert werden, um eine oder mehrere Eigenschaften zu bestimmen, die den erkannten Objekten zugeordnet sind. Gemäß dem vorherigen Beispiel kann ein maschinelles Lernmodell, das von einem intelligenten Überwachungssystem verwendet wird, um Objekte einer Zielklasse zu erkennen, auch trainiert werden, um eine Position des erkannten Objekts in einem gegebenen Eingabebild (z. B. relativ zu anderen Objekten, die in dem gegebenen Eingabebild gezeigt sind) vorherzusagen.
  • Um ein Modell zu trainieren, um Objekte der Zielklasse mit einem hohen Genauigkeitsgrad (z. B. 95 % oder höher) zu erkennen, können Trainingsdaten auf Grundlage einer großen Anzahl (z. B. Tausenden oder in einigen Fällen Millionen) von Bildern (in dieser Schrift als Trainingsbilder bezeichnet) generiert werden. In einigen Systemen können die zum Trainieren des Modells verwendeten Daten (in dieser Schrift als Trainingsdaten bezeichnet) eine Angabe einer Region jedes Trainingsbilds, die ein Objekt beinhaltet (z. B. einen Begrenzungsrahmen), eine Angabe darüber, ob das Objekt dieser Region der Zielklasse entspricht und zusätzliche Daten (z. B. Maskendaten), welche die Position (z. B. eine Pose, Platzierung oder Ausrichtung usw.) oder eine Form des Objekts angeben, beinhalten. Die Sammlung einer erheblichen Anzahl von Bildern, die zur Verwendung zum Trainieren des Modells, um Objekte einer Zielklasse zu erkennen und zu klassifizieren, geeignet sind, kann eine erhebliche Zeitdauer (z. B. Monate oder in einigen Fällen Jahre) in Anspruch nehmen. Zusätzlich kann das genaue Bestimmen gekennzeichneter Daten für jedes Bild (z. B. der Region jedes Bilds, die das Objekt beinhaltet, der dem Objekt zugeordneten Klasse und der dem Objekt zugeordneten Maskendaten) eine weitere Zeitdauer in Anspruch nehmen. In einigen Systemen verlässt man sich nur auf hoch vertrauenswürdige Entitäten, um gekennzeichnete Daten für die Trainingsbilder genau zu bestimmen und bereitzustellen. Zum Beispiel verlässt man sich in einigen Systemen auf Menschen, um eine Angabe der Region, der Klasse und die zusätzlichen Daten für Objekte, die in jedem Trainingsbild gezeigt sind, bereitzustellen. In derartigen Systemen kann das Erlangen der gekennzeichneten Daten für jedes Trainingsbild jedoch übermäßig teuer sein und eine erhebliche Zeitdauer in Anspruch nehmen, da die hoch vertrauenswürdigen Entitäten, welche die gekennzeichneten Daten bereitstellen, Tausende, wenn nicht Millionen von Bildern überprüfen und die gekennzeichneten Daten für jedes Bild bestimmen und vorgeben müssen.
  • In einigen Fällen können gekennzeichnete Daten auf Grundlage einer kleineren Anzahl (z. B. von Dutzenden oder Hunderten) von Trainingsbildern und/oder auf Grundlage von Bestimmungen, die durch Entitäten vorgenommen werden, die keine hoch vertrauenswürdigen Entitäten sind, generiert werden. In derartigen Systemen kann das maschinelle Lernmodell anfänglich trainiert werden, um Objekte, die in gegebenen Eingabebildern beinhaltet sind, mit einem geringen Genauigkeitsgrad (z. B. weniger als 95 %) zu erkennen und zu klassifizieren. Während der Bereitstellung kann das Modell auf Grundlage von Rückmeldungen neu trainiert werden, die für Daten bereitgestellt werden, die auf Grundlage einer oder mehrerer Ausgaben des Modells bestimmt werden (z. B. die Region eines gegebenen Eingabebilds, die ein erkanntes Objekt beinhaltet, und/oder eine Klasse die für das erkannte Objekt in dem gegebenen Eingabebild bestimmt wird, usw.). Schließlich kann das Modell während der Bereitstellung neu trainiert werden, um Objekte mit einem hohen Genauigkeitsgrad zu erkennen und zu klassifizieren. Das Neutrainieren des Modells, um Objekte mit einem hohen Genauigkeitsgrad zu erkennen und zu klassifizieren, kann jedoch in einigen Fällen eine noch größere Zeitdauer und Menge an Rechenressourcen in Anspruch nehmen, da Zeit und Rechenressourcen zum Trainieren des Modells verbraucht werden und zusätzliche Zeit und Ressourcen verbraucht werden, um das Modell während der Interferenzphase neu zu trainieren.
  • Ausführungsformen der vorliegenden Offenbarung gehen auf die vorstehenden und andere Unzulänglichkeiten ein, indem sie eine Transferlerntechnik zum Trainieren eines Objekterkennungsmodells bereitstellen, um in gegebenen Eingabebildern Objekte zu erkennen, die einer Zielklasse zugeordnet sind. Ein erstes maschinelles Lernmodell (auch als Lehrermodell bezeichnet) kann (z. B. durch einen Trainingsdatengenerator und/oder eine Trainingsengine) trainiert werden, um ein oder mehrere Objekte zu erkennen, die in gegebenen Eingabebildern gezeigt sind. Die in den gegebenen Eingabebildern gezeigten Objekte können in einigen Ausführungsformen mindestens einer von mehreren (z. B. Dutzenden, Hunderten usw.) unterschiedlichen Klassen entsprechen. Das Lehrermodell kann unter Verwendung erster Trainingsdaten trainiert werden, die eine Trainingseingabe, die ein oder mehrere Bilder beinhaltet, und eine Zielausgabe beinhalten können, die gekennzeichnete Daten beinhaltet, wie etwa Daten, die jedem Objekt zugeordnet sind, das in jedem des Satzes von Bildern gezeigt ist. In einigen Ausführungsformen können die jedem Objekt zugeordneten Daten eine Angabe einer Region des einen oder der mehreren Bilder, die ein Objekt beinhaltet, eine Angabe einer Klasse (d. h. der mehreren unterschiedlichen Klassen), die dem Objekt zugeordnet ist, und/oder Maskendaten, die dem Objekt zugeordnet sind, beinhalten. Die Maskendaten beziehen sich auf Daten (z. B. ein zweidimensionales (2D-)Bitarray), die angeben, ob ein oder mehrere Pixel (oder Gruppen von Pixeln) für das Bild einem bestimmten Objekt entsprechen. In einigen Ausführungsformen können die Bilder und die den in den Bildern gezeigten Objekten zugeordneten Daten aus einem öffentlich verfügbaren Archiv oder einer öffentlich verfügbaren Datenbank erlangt werden, das/die eine große Anzahl unterschiedlicher Bilder und Objektdaten beinhaltet, die zum Trainieren von maschinellen Lernmodellen zur Obj ekterkennung verwendet werden können. Das Lehrermodell kann unter Verwendung der ersten Trainingsdaten trainiert werden, um ein oder mehrere Objekte zu erkennen, die in einem gegebenen Satz von Eingabebildern gezeigt sind, und für jedes erkannte Objekt mindestens Maskendaten vorherzusagen, die dem jeweiligen erkannten Objekt zugeordnet sind. In einigen zusätzlichen Ausführungsformen kann das Lehrermodell trainiert werden, um weiter eine Region in einem Bild des gegebenen Satzes von Eingabebildern, die das gezeigte Objekt beinhaltet, (z. B. einen Begrenzungsrahmen) und/oder eine Klasse (d. h. der mehreren unterschiedlichen Klassen), die dem erkannten Objekt entspricht, vorherzusagen.
  • Sobald das Lehrermodell unter Verwendung der ersten Trainingsdaten trainiert wurde, kann das trainierte Lehrermodell verwendet werden, um zweite Trainingsdaten zum Trainieren eines zweiten maschinellen Lernmodells (als Studentenmodell bezeichnet), um Objekte einer Zielklasse zu erkennen, die in gegebenen Eingabebildern gezeigt sind, zu generieren. Ein Satz von Bildern kann als Eingabe für das Lehrermodell bereitgestellt werden. In einigen Ausführungsformen kann jedes des Satzes von Bildern (z. B. aus einem domänenspezifischen oder organisationsspezifischen Archiv oder einer domänenspezifischen oder organisationsspezifischen Datenbank) ausgewählt werden, um zum Generieren der zweiten Trainingsdaten zum Trainieren des Studentenmodells verwendet zu werden. Objektdaten, die Objekten zugeordnet sind, die in jedem des Satzes von Bildern, die als Eingaben für das Lehrermodell bereitgestellt werden, erkannt werden, können auf Grundlage einer oder mehrerer erlangter Ausgaben des Lehrermodells bestimmt werden. In einigen Ausführungsformen können die Objektdaten Maskendaten beinhalten, die jedem erkannten Objekt zugeordnet sind. In einigen zusätzlichen Ausführungsformen können die Objektdaten ferner für jedes erkannte Objekt Daten, die eine Bildregion angeben, die das erkannte Objekt beinhaltet, und/oder eine Angabe einer Klasse, die dem erkannten Objekt zugeordnet ist, beinhalten.
  • Zweite Trainingsdaten, welche die eine oder die mehreren Ausgaben des Lehrermodells beinhalten, können verwendet werden, um das Studentenmodell, das der Zielklasse von Objekten zugeordnet ist, zu trainieren. Insbesondere können die zweiten Trainingsdaten in einigen Ausführungsformen eine Trainingseingabe, die den Satz von Bildern beinhaltet, und eine Zielausgabe beinhalten, welche die Maskendaten beinhaltet, die jedem in dem Satz von Bildern erkannten Objekt zugeordnet sind. Der Trainingsdatengenerator kann in einigen Ausführungsformen die jedem Objekt zugeordneten Maskendaten unter Verwendung der erlangten Ausgaben des Lehrermodells erlangen. Die Zielausgabe der zweiten Trainingsdaten kann zudem eine Angabe darüber beinhalten, ob eine Klasse, die jedem in dem Satz von Bildern erkannten Objekt zugeordnet ist, einer Zielklasse entspricht. Zum Beispiel können, wie vorstehend beschrieben, eine oder mehrere Ausgaben des Lehrermodells eine Angabe der Klasse beinhalten, die einem Objekt zugeordnet ist, das in einem gegebenen Eingabebild erkannt wird, das in den zweiten Trainingsdaten beinhaltet ist. In einigen Ausführungsformen kann der Trainingsdatengenerator auf Grundlage der erlangten Ausgaben des Lehrermodells bestimmen, ob die Klasse, die jedem erkannten Objekt zugeordnet ist, der Zielklasse entspricht. Die Zielausgabe der zweiten Trainingsdaten kann ferner grundlegende Referenzdaten beinhalten, die jedem in dem Satz von Bildern erkannten Objekt zugeordnet sind. Die grundlegenden Referenzdaten können eine Region des Bilds (z. B. einen Begrenzungsrahmen) angeben, die ein jeweiliges erkanntes Objekt beinhaltet. In einigen Ausführungsformen kann der Trainingsdatengenerator die grundlegenden Referenzdaten aus einer Datenbank erlangen, die eine Angabe eines oder mehrerer Begrenzungsrahmen beinhaltet, die einem Bild des Satzes von Bildern zugeordnet sind (z. B. zur Verwendung anstelle der durch das Lehrermodell bereitgestellten Begrenzungsrahmendaten für höhere Genauigkeit). In einigen Ausführungsformen kann die Datenbank eine domänenspezifische oder organisationsspezifische Datenbank sein, die den Satz von Bildern beinhaltet. Jeder der dem Bild zugeordneten Begrenzungsrahmen kann von einer anerkannten Begrenzungsrahmen-Autoritätsentität oder einem Benutzer der Rechenplattform bereitgestellt werden.
  • Die zweiten Trainingsdaten können verwendet werden, um das Studentenmodell zu trainieren, um für ein gegebenes Eingabebild einen Begrenzungsrahmen, der einem in dem gegebenen Eingabebild erkannten Objekt zugeordnet ist, und Maskendaten, die dem in dem gegebenen Eingabebild erkannten Objekt zugeordnet sind, vorherzusagen. Das Studentenmodell kann zudem trainiert werden, um vorherzusagen, ob eine Klasse, die dem in dem gegebenen Eingabebild erkannten Objekt zugeordnet ist, der Zielklasse entspricht. Wie vorstehend beschrieben, kann das Lehrermodell trainiert werden, um mehrere Klassen für ein Objekt vorherzusagen, das in einem gegebenen Eingabebild erkannt wird. Da das Studentenmodell trainiert wird, um eine spezifische Klasse von Objekten (d. h. die Zielklasse) anstatt mehrerer Objektklassen vorherzusagen, kann das Studentenmodell genauere Vorhersagen bereitstellen als das Lehrermodell.
  • In einigen Fällen kann das trainierte Studentenmodell ein maschinelles Lernmodell mit mehreren Köpfen sein. Zum Beispiel kann das trainierte Studentenmodell einen ersten Kopf zum Vorhersagen eines Begrenzungsrahmens, der einem in einem gegebenen Bild erkannten Objekt zugeordnet ist, einen zweiten Kopf zum Vorhersagen einer dem erkannten Objekt zugeordneten Klasse und einen dritten Kopf zum Vorhersagen von dem erkannten Objekt zugeordneten Maskendaten beinhalten. Eine Objekterkennungsengine (z. B. einer Rechenvorrichtung, einer Cloud-Rechenplattform usw.) kann in einigen Fällen den Kopf des Studentenmodells identifizieren, der dem Vorhersagen von Maskendaten entspricht, die einem erkannten Objekt zugeordnet sind, (als Maskenkopf bezeichnet) und kann das Studentenmodell aktualisieren, um den identifizierten Kopf zu entfernen. Nachdem der Maskenkopf aus dem Studentenmodell entfernt wurde, kann das aktualisierte Studentenmodell verwendet werden, um einen Begrenzungsrahmen und eine Klasse vorherzusagen, die einem in einem gegebenen Eingabebild erkannten Objekt zugeordnet sind. Durch anfängliches Einschließen des Maskenkopfs in das Studentenmodell können Objekterkennungs- und Klassifizierungsvorhersagen des aktualisierten Studentenmodells genauer sein als ein Objekterkennungsmodell, das unter Verwendung von Trainingsdaten trainiert wird, die keine Maskendaten beinhalten, die Objekten zugeordnet sind, die in bereitgestellten Trainingsbildern gezeigt sind. Zusätzlich kann eine dem Studentenmodell zugeordnete Inferenzgeschwindigkeit erheblich verbessert werden (z. B. um 10-20 %), nachdem der Maskenkopf aus dem Studentenmodell entfernt wurde und kann eine dem Studentenmodell zugeordnete Modellgröße erheblich reduziert werden. Dementsprechend kann das aktualisierte Studentenmodell in einigen Fällen über ein Netzwerk an eine Edge-Vorrichtung und/oder eine oder mehrere Endpunktvorrichtungen (z. B. eine intelligente Überwachungskamera, ein autonomes Fahrzeug) zur Verwendung zur Objekterkennung übermittelt werden.
  • Aspekte und Ausführungsformen der vorliegenden Offenbarung stellen eine Technik zum Trainieren eines Objekterkennungsmodells unter Verwendung von Transferlernen bereit. Unter Verwendung einer großen Menge von Bildern (d. h. aus einem öffentlich verfügbaren Archiv oder einer öffentlich verfügbaren Datenbank), die Objekte verschiedener Klassen zeigen, können Trainingsdaten verwendet werden, um ein Lehrermodell zu trainieren, um Vorhersagen mit einem ausreichenden Genauigkeitsgrad zu treffen. Bilddaten können aus einem domänenspezifischen oder organisationsspezifischen Archiv oder einer domänenspezifischen oder organisationsspezifischen Datenbank erlangt werden und als Eingabe für das Lehrermodell verwendet werden, um Vorhersagen zu erlangen, die verwendet werden können, um ein Studentenmodell zu trainieren, um eine Vorhersagegenauigkeit für spezifische, fokussierte oder bestimmte Bildklassen zu erhöhen. Demnach kann das Studentenmodell trainiert werden, um Vorhersagen mit einem hohen/höheren Genauigkeitsgrad (z. B. 95 % oder höher) zu treffen, ohne gekennzeichnete Daten für das Training von Experten oder anderen anerkannten Autoritäten zu erlangen. Zusätzlich stellen Ausführungsformen der vorliegenden Offenbarung die Fähigkeit bereit, ein Objekterkennungsmodell zur Verwendung an einer Edge-Vorrichtung und/oder einer Endpunktvorrichtung (z. B. einer intelligenten Überwachungskamera, einem autonomen Fahrzeug usw.) bereitzustellen, wobei das Objekterkennungsmodell trainiert wird, um Objekte der Zielklasse mit dem hohen Genauigkeitsgrad zu erkennen und zudem der Edge-Vorrichtung und/oder der Endpunktvorrichtung zugeordnete Größenbeschränkungen und Inferenzgeschwindigkeitsbedingungen zu erfüllen.
  • SYSTEMARCHITEKTUR
  • 1 ist ein Blockdiagramm einer beispielhafte Systemarchitektur 100 gemäß mindestens einer Ausführungsform. Die Systemarchitektur 100 (in dieser Schrift auch als „System“ bezeichnet) beinhaltet eine Rechenvorrichtung 102, Datenspeicher 112A-N (gemeinsam und einzeln als der/die Datenspeicher 112 bezeichnet) und eine Servermaschine 130, eine Servermaschine 140 und/oder eine Servermaschine 150. In Implementierungen kann ein Netzwerk 110 ein öffentliches Netzwerk (z. B. das Internet), ein privates Netzwerk (z. B. ein lokales Netzwerk (local area network - LAN) oder ein Weitverkehrsnetzwerk (wide area network - WAN)), ein drahtgebundenes Netzwerk (z. B. ein Ethernet-Netzwerk), ein drahtloses Netzwerk (z. B. ein 802.11-Netzwerk oder ein Wi-Fi-Netzwerk), ein Mobilfunknetzwerk (z. B. ein Long-Term-Evolution(LTE)-Netzwerk), Router, Hubs, Switches, Servercomputer, und/oder eine Kombination davon beinhalten.
  • Die Rechenvorrichtung 102 kann ein Desktop-Computer, ein Laptop-Computer, ein Smartphone, ein Tablet-Computer, ein Server oder eine beliebige geeignete Rechenvorrichtung sein, die in der Lage ist, die in dieser Schrift beschriebenen Techniken durchzuführen. In einigen Ausführungsformen kann die Rechenvorrichtung 102 eine Rechenvorrichtung einer Cloud-Rechenplattform sein. Zum Beispiel kann die Rechenvorrichtung 102 eine Servermaschine einer Cloud-Rechenplattform oder eine Komponente davon sein. In derartigen Ausführungsformen kann die Rechenvorrichtung 102 über das Netzwerk 110 mit einer oder mehreren Edge-Vorrichtungen (nicht gezeigt) gekoppelt sein. Eine Edge-Vorrichtung bezieht sich auf eine Rechenvorrichtung, welche die Kommunikation zwischen Rechenvorrichtungen an der Grenze zweier Netzwerke ermöglicht. Zum Beispiel kann eine Edge-Vorrichtung über das Netzwerk 110 mit der Rechenvorrichtung 102, den Datenspeichern 112A-N, der Servermaschine 130, der Servermaschine 140 und/oder der Servermaschine 150 verbunden sein und sie kann über ein anderes Netzwerk mit einer oder mehreren Endpunktvorrichtungen (nicht gezeigt) verbunden sein. In einem derartigen Beispiel kann die Edge-Vorrichtung eine Kommunikation zwischen der Rechenvorrichtung 102, den Datenspeichern 112A-N, der Servermaschine 130, der Servermaschine 140 und/oder der Servermaschine 150 und der einen oder den mehreren Client-Vorrichtungen ermöglichen. In anderen oder ähnlichen Ausführungsformen kann die Rechenvorrichtung 102 eine Edge-Vorrichtung oder eine Komponente davon sein. Zum Beispiel kann die Rechenvorrichtung 102 eine Kommunikation zwischen den Datenspeichern 112A-N, der Servermaschine 130, der Servermaschine 140 und/oder der Servermaschine 150, die über das Netzwerk 110 mit der Rechenvorrichtung 102 verbunden sind, und einer oder mehreren Client-Vorrichtungen, die über ein anderes Netzwerk mit der Rechenvorrichtung 102 verbunden sind, erleichtern.
  • In noch anderen oder ähnlichen Ausführungsformen kann die Rechenvorrichtung 102 eine Endpunktvorrichtung oder eine Komponente davon sein. Zum Beispiel kann es sich bei der Rechenvorrichtung 102 um Vorrichtungen oder eine Komponente davon handeln, wie etwa, aber nicht beschränkt auf: Fernseher, Smartphones, Mobiltelefone, persönliche digitale Assistenten (PDAs), tragbare Mediaplayer, Netbooks, Laptop-Computer, Lesegeräte für elektronische Bücher, Tablet-Computer, Desktop-Computer, Set-Top-Boxen, Gaming-Konsolen, autonome Fahrzeuge, Überwachungsvorrichtungen und dergleichen. In derartigen Ausführungsformen kann die Rechenvorrichtung 102 über das Netzwerk 110 mit den Datenspeichern 112A-N, der Servermaschine 130 und der Servermaschine 140 und/oder der Servermaschine 150 verbunden sein. In anderen oder ähnlichen Ausführungsformen kann die Rechenvorrichtung 102 über ein Netzwerk mit einer Edge-Vorrichtung (nicht gezeigt) des Systems 100 verbunden sein und die Edge-Vorrichtung des Systems 100 kann über das Netzwerk 110 mit den Datenspeichern 112A-N, der Servermaschine 130, der Servermaschine 140 und/oder der Servermaschine 150 verbunden sein.
  • Die Rechenvorrichtung 102 kann einen Speicher 104 beinhalten. Der Speicher 104 kann eine oder mehrere flüchtige und/oder nicht flüchtige Speichervorrichtungen beinhalten, die zum Speichern von Daten konfiguriert sind. In einigen Ausführungsformen kann die Rechenvorrichtung 102 eine Objekterkennungsengine 151 beinhalten. Die Objekterkennungsengine 151 kann dazu konfiguriert sein, ein oder mehrere Objekte zu erkennen, die in einem Bild (z. B. dem Bild 106) gezeigt sind, und in einigen Ausführungsformen Daten zu erlangen, die dem einen oder den mehreren erkannten Objekten zugeordnet sind (z. B. die Objektdaten 108). Zum Beispiel kann die Objekterkennungsengine 151 dazu konfiguriert sein, das Bild 106 als Eingabe für ein trainiertes Objekterkennungsmodell (z. B. ein Modell 160) bereitzustellen und auf Grundlage einer oder mehreren Ausgaben des trainierten Objekterkennungsmodells Objektdaten 108 zu bestimmen, die dem Bild 106 zugeordnet sind. Es ist zu beachten, dass wenngleich Implementierungen der vorliegenden Offenbarung in Bezug auf ein Objekterkennungsmodell erörtert werden, Implementierungen auch allgemein auf eine beliebige Art eines maschinellen Lernmodells angewendet werden können. Weitere Details bezüglich der Objekterkennungsengine 151 und des Objekterkennungsmodells werden in dieser Schrift bereitgestellt.
  • Wie vorstehend beschrieben, kann die Rechenvorrichtung 102 in einigen Ausführungsformen eine Endpunktvorrichtung sein oder eine Komponente davon sein. In derartigen Ausführungsformen kann die Rechenvorrichtung 102 eine audiovisuelle Komponente beinhalten, die Audiodaten und/oder visuelle Daten generieren kann. In einigen Ausführungsformen kann die audiovisuelle Komponente eine Bilderfassungsvorrichtung (z. B. eine Kamera) beinhalten, um ein Bild 106 zu erfassen und zu generieren und Bild- und/oder Videodaten zu generieren, die dem generierten Bild 106 zugeordnet sind. In anderen oder ähnlichen Ausführungsformen kann die Rechenvorrichtung 102 eine Edge-Vorrichtung oder eine Komponente davon sein, wie vorstehend beschrieben. In derartigen Ausführungsformen kann die Rechenvorrichtung 102 das Bild 106 von einer Endpunktvorrichtung, welche die audiovisuelle Komponente beinhaltet, (d. h. über das Netzwerk 110 oder ein anderes Netzwerk) empfangen. Wie ebenfalls vorstehend beschrieben, kann die Rechenvorrichtung 102 in einigen Ausführungsformen eine Servermaschine (z. B. für eine Cloud-Rechenplattform) oder eine Komponente davon sein. In derartigen Ausführungsformen kann die Rechenvorrichtung 102 das Bild 106 von eine Endpunktvorrichtung, welche die audiovisuelle Komponente beinhaltet, und/oder einer Edge-Vorrichtung, die mit der Endpunktvorrichtung (d. h. über das Netzwerk 110 oder ein anderes Netzwerk) verbunden ist, empfangen.
  • In einigen Implementierungen ist der Datenspeicher 112A-N ein dauerhafter Speicher, der in der Lage ist, Inhaltselemente (z. B. Bilder) und den gespeicherten Inhaltselementen zugeordnete Daten (z. B. Objektdaten) sowie Datenstrukturen zum Markieren, Organisieren und Indexieren der Inhaltselemente und/oder der Objektdaten zu speichern. Der Datenspeicher 112 kann von einer oder mehreren Speichervorrichtungen, wie etwa einem Hauptspeicher, magnetischen oder optischen Speicherplatten, Bändern oder Festplatten, NAS, SAN usw., gehostet werden. In einigen Implementierungen kann der Datenspeicher 112 ein an ein Netzwerk angeschlossener Dateiserver sein, während der Datenspeicher 112 in anderen Ausführungsformen eine andere Art von dauerhaftem Speicher sein kann, wie etwa eine objektorientierte Datenbank, eine relationale Datenbank usw., der von der Rechenvorrichtung 102 oder einer oder mehreren anderen Maschinen, die über das Netzwerk 110 mit der Rechenvorrichtung 102 gekoppelt sind, gehostet werden kann.
  • Wie in 1 veranschaulicht, kann das System 100 in einigen Ausführungsformen mehrere Datenspeicher 112 beinhalten. In einigen Ausführungsformen kann ein erster Datenspeicher (z. B. der Datenspeicher 112A) dazu konfiguriert sein, Daten zu speichern, auf die nur die Rechenvorrichtung 102, die Servermaschine 130, die Servermaschine 140 und/oder die Servermaschine 150 zugreifen können. Zum Beispiel kann der Datenspeicher 112A ein domänenspezifisches oder organisationsspezifisches Archiv oder eine domänenspezifische oder organisationsspezifische Datenbank sein oder beinhalten. In einigen Ausführungsformen können die Rechenvorrichtung 102, die Servermaschine 130, die Servermaschine 140 und/oder die Servermaschine 150 nur über das Netzwerk 110, das ein privates Netzwerk sein kann, dazu in der Lage sein, auf den Datenspeicher 112A zugreifen. In anderen oder ähnlichen Ausführungsformen können Daten, die in dem Datenspeicher 112A gespeichert sind, verschlüsselt sein und die Rechenvorrichtung 102, die Servermaschine 130, die Servermaschine 140 und/oder die Servermaschine 150 können über einen Verschlüsselungsmechanismus (z. B. einen privaten Verschlüsselungsschlüssel usw.) darauf zugreifen. In zusätzlichen oder alternativen Ausführungsformen kann ein zweiter Datenspeicher (z. B. der Datenspeicher 112B) dazu konfiguriert sein, Daten zu speichern, auf die eine beliebige Vorrichtung, auf die der Datenspeicher 112B zugreifen kann, über ein beliebiges Netzwerk zugreifen kann. Zum Beispiel kann der Datenspeicher 112B ein öffentlich zugängliches Archiv oder eine öffentlich zugängliche Datenbank sein oder beinhalten. Der Datenspeicher 112B kann in einigen Ausführungsformen ein öffentlich zugänglicher Datenspeicher sein, auf den eine beliebige Vorrichtung über ein öffentliches Netzwerk zugreifen kann. In zusätzlichen oder alternativen Ausführungsformen kann das System 100 einen Datenspeicher 112 beinhalten, der dazu konfiguriert ist, erste Daten, auf die nur die Rechenvorrichtung 102, die Servermaschine 130, die Servermaschine 140 und/oder die Servermaschine 150 (z. B. über das private Netzwerk 110, über einen Verschlüsselungsmechanismus usw.) zugreifen können, und zweite Daten zu speichern, auf die Vorrichtungen zugreifen können, die über ein anderes Netzwerk (z. B. ein öffentliches Netzwerk) mit dem Datenspeicher verbunden sind. In noch zusätzlichen oder alternativen Ausführungsformen kann das System 100 nur einen einzelnen Datenspeicher 112 beinhalten, der dazu konfiguriert ist, Daten zu speichern, auf die nur die Rechenvorrichtung 102, die Servermaschine 130, die Servermaschine 140 und/oder die Servermaschine 150 (z. B. über das private Netzwerk 110, über einen Verschlüsselungsmechanismus usw.) zugreifen können. In derartigen Ausführungsformen kann der Datenspeicher 112 Daten speichern, die (z. B. durch die Rechenvorrichtung 102, den Trainingsdatengenerator 131, die Trainingsengine 141 usw.) aus einem öffentlich zugänglichen Datenspeicher abgerufen werden.
  • Die Servermaschine 130 kann einen Trainingsdatengenerator 131 beinhalten, der in der Lage ist, Trainingsdaten (z. B. einen Satz von Trainingseingaben und einen Satz von Zielausgaben) zu generieren, um die MI,-Modelle 160A-N zu trainieren. Die Trainingsdaten können auf Bildern, die in einem Datenspeicher, der ein domänenspezifisches oder organisationsspezifisches Archiv oder eine domänenspezifische oder organisationsspezifische Datenbank ist oder diese beinhaltet, (z. B. dem Datenspeicher 112A usw.) oder einem privaten Abschnitt eines Datenspeicher 112 gespeichert sind, und/oder auf Bildern, die in einem Datenspeicher, der ein öffentlich zugängliches Archiv oder eine öffentlich zugängliche Datenbank ist oder diese beinhaltet, (z. B. dem Datenspeicher 112B usw.) oder einem öffentlich zugänglichen Abschnitt des Datenspeichers 112 gespeichert sind, basieren. Zum Beispiel kann der Trainingsdatengenerator 131 Trainingsdaten für ein maschinelles Lehrerlernmodell (z. B. ein Lehrerobjekterkennungsmodell) auf Grundlage von Bildern generieren, die in dem Datenspeicher 112B, einem öffentlich zugänglichen Abschnitt des Datenspeichers 112 gespeichert sind oder aus einem öffentlich zugänglichen Datenspeicher (nicht gezeigt) abgerufen werden. In einem anderen Beispiel kann der Trainingsdatengenerator 131 Trainingsdaten für ein maschinelles Studentenlernmodell (z. B. ein Studentenobjekterkennungsmodell) auf Grundlage von Bildern, die in dem Datenspeicher 112A, einem privaten Abschnitt des Datenspeichers 112 gespeichert sind oder aus einem einzelnen, privaten Datenspeicher 112, wie vorstehend beschrieben, und auf Grundlage einer oder mehrerer Ausgaben des Lehrerobjekterkennungsmodells generieren. Weitere Details bezüglich der Generierung von Trainingsdaten für ein Lehrerobjekterkennungsmodell und ein Studentenobjekterkennungsmodell werden in Bezug auf 2 bereitgestellt.
  • Die Servermaschine 140 kann eine Trainingsengine 141 beinhalten. Die Trainingsengine 141 kann ein maschinelles Lernmodell 160A-N unter Verwendung der Trainingsdaten von dem Trainingssatzgenerator 131 trainieren. Das maschinelle Lernmodell 160A-N kann sich auf das Modellartefakt beziehen, das von der Trainingsengine 141 unter Verwendung der Trainingsdaten erstellt wird, die Trainingseingaben und entsprechende Zielausgaben (korrekte Antworten für jeweilige Trainingseingaben) beinhalten. Die Trainingsengine 141 kann Muster in den Trainingsdaten finden, welche die Trainingseingabe auf die Zielausgabe (die vorherzusagende Antwort) abbilden und das maschinelle Lernmodell 160A-N bereitstellen, das diese Muster erfasst. Das maschinelle Lernmodell 160A-N kann z. B. aus einer einzelnen Ebene von linearen oder nicht linearen Operationen bestehen (z. B. eine Support-Vektor-Maschine (SVM)) oder kann ein tiefes Netz sein, d. h. ein maschinelles Lernmodell, das aus mehreren Ebenen nicht linearer Operationen besteht. Ein Beispiel für ein tiefes Netz ist ein neuronales Netz mit einer oder mehreren verborgenen Schichten und ein derartiges maschinelles Lernmodell kann trainiert werden, indem zum Beispiel Gewichtungen eines neuronalen Netzes gemäß einem Backpropagation-Lernalgorithmus oder dergleichen angepasst werden. Der Einfachheit halber bezieht sich der Rest dieser Offenbarung auf die Implementierung als neuronales Netz, obwohl einige Implementierungen eine SVM oder eine andere Art von Lernmaschine anstelle von oder zusätzlich zu einem neuronalen Netz einsetzen könnten. In einigen Ausführungsformen können die Trainingsdaten durch den Trainingsdatengenerator 131 erlangt werden, der von der Servermaschine 130 gehostet wird. Zum Beispiel kann die Trainingsengine 141 erste Trainingsdaten zum Trainieren eines Lehrerobjekterkennungsmodells und zweite Trainingsdaten zum Trainieren eines Studentenobjekterkennungsmodells von dem Trainingssatzgenerator 131 erlangen. Weitere Details bezüglich des Trainierens eines Objekterkennungsmodells (z. B. des Modells 160A-N) werden in Bezug auf 2 bereitgestellt.
  • Der Server 150 kann eine Objekterkennungsengine 151 beinhalten, die ein oder mehrere Bilder als Eingabe für ein trainiertes maschinelles Lernmodell 160A-N bereitstellt, um eine oder mehrere Ausgaben zu erlangen. In einigen Ausführungsformen können das eine oder die mehreren Bilder in dem Datenspeicher 112 oder einem privaten Abschnitt des Datenspeichers 112 gespeichert sein, wie vorstehend beschrieben. Zum Beispiel kann ein trainiertes maschinelles Lernmodell 160A ein trainiertes Lehrerobjekterkennungsmodell sein. In einem derartigen Beispiel kann die Objekterkennungsengine 151 das eine oder die mehreren Bilder als Eingabe für das trainierte maschinelle Lernmodell 160A bereitstellen, um eine oder mehrere erste Ausgaben zu erlangen. Der Trainingsdatengenerator 131 kann die eine oder die mehreren ersten Ausgaben des maschinellen Lernmodells 160A verwenden, um Trainingsdaten zu generieren, um ein Studentenobjekterkennungsmodell gemäß in dieser Schrift bereitgestellten Ausführungsformen zu trainieren. In einem anderen Beispiel kann ein trainiertes maschinelles Lernmodell 160B ein trainiertes Studentenobjekterkennungsmodell sein. In einem derartigen Beispiel kann die Objekterkennungsengine 151 ein oder mehrere Bilder 106, die von der Rechenvorrichtung 102 erlangt werden, als Eingabe für das trainierte maschinelle Lernmodell 160B bereitstellen, um eine oder mehrere zweite Ausgaben zu erlangen. Die Objekterkennungsengine 151 kann die eine oder die mehreren zweiten Ausgaben verwenden, um ein in dem einen oder den mehreren Bildern 106 gezeigtes Objekt zu erkennen und Objektdaten 108 zu bestimmen, die dem einen oder den mehreren erkannten Objekten zugeordnet sind. Weitere Details bezüglich der Objekterkennungs-Engine 151 werden in Bezug auf 3 bereitgestellt.
  • In einigen Implementierungen können die Rechenvorrichtung 102, die Datenspeicher 112 und/oder die Servermaschinen 130-150 ein(e) oder mehrere Rechenvorrichtungen (wie etwa ein Rackmount-Server, ein Router-Computer, ein Servercomputer, ein Personalcomputer, ein Mainframe-Computer, ein Laptop-Computer, ein Tablet-Computer, ein Desktop-Computer usw.), Datenspeicher (z. B. Festplatten, Speicher, Datenbanken), Netzwerke, Softwarekomponenten und/oder Hardwarekomponenten sein, die verwendet werden können, um Objekterkennung auf Grundlage eines Bilds (z. B. des Bilds 106) zu ermöglichen. Es ist zu beachten, dass in einigen anderen Implementierungen die Funktionen der Rechenvorrichtung 102, der Servermaschinen 130, 140 und/oder 150 von einer geringeren Anzahl von Maschinen bereitgestellt werden können. Beispielsweise können in einigen Implementierungen die Servermaschinen 130 und 140 in eine einzelne Maschine integriert sein, während in anderen Implementierungen die Servermaschinen 130, 140 und 150 in mehrere Maschinen integriert sein können. Zusätzlich können in einigen Implementierungen eine oder mehrere der Servermaschinen 130, 140 und 150 in die Rechenvorrichtung 102 integriert sein. Im Allgemeinen können in Implementierungen als von der Rechenvorrichtung 102 und/oder den Servermaschinen 130, 140, 150 durchgeführt beschriebene Funktionen gegebenenfalls auch an einer oder mehreren Edge-Vorrichtungen (nicht gezeigt) und/oder Client-Vorrichtungen (nicht gezeigt) durchgeführt werden. Zusätzlich kann die einer bestimmten Komponente zugeschriebene Funktionalität durch verschiedene oder mehreren Komponenten durchgeführt werden, die zusammen arbeiten. Der Zugriff auf die Rechenvorrichtung 102 und/oder die Servermaschinen 130, 140, 150 kann auch als Dienst erfolgen, der anderen Systemen oder Vorrichtungen durch geeignete Anwendungsprogrammierschnittstellen bereitgestellt wird.
  • 2 ist ein Blockdiagramm eines beispielhaften Trainingsdatengenerators 131 und einer beispielhaften Trainingsengine 141 gemäß mindestens einer Ausführungsform. Der Trainingsdatengenerator 131 kann einen Lehrermodell-Trainingsdatengenerator 210 und einen Studentenmodell-Trainingsdatengenerator 220 beinhalten. Die Trainingsengine 141 kann ein Lehrermodell-Trainingsmodul 230 und ein Studentenmodell-Trainingsmodul 232 beinhalten. Wie zuvor beschrieben, kann sich der Trainingsdatengenerator 131 auf einer Servermaschine befinden, wie etwa der Servermaschine 130 aus 1, die ein Teil der Rechenvorrichtung 102 oder von dieser getrennt ist. Die Trainingsengine 141 kann sich auf der Servermaschine 130 oder einer anderen Servermaschine, wie etwa der Servermaschine 140 befinden, die ein Teil der Rechenvorrichtung 102 oder von dieser getrennt ist.
  • In einigen Ausführungsformen kann der Lehrermodell-Trainingsdatengenerator 210 dazu konfiguriert sein, Trainingsdaten zum Trainieren eines Lehrerobjekterkennungsmodells (z. B. des Modells 160A) zu generieren, und kann der Studentenmodell-Trainingsdatengenerator 220 dazu konfiguriert sein, Trainingsdaten zum Trainieren eines Studentenobjekterkennungsmodells (z. B. des Modells 160B) zu generieren. Wie in 2 veranschaulicht, kann der Trainingsdatengenerator 131 mit dem Datenspeicher 250 verbunden sein. Der Datenspeicher 250 kann dazu konfiguriert sein, Daten zu speichern, die von dem Lehrermodell-Trainingsdatengenerator 210 verwendet werden, um Trainingsdaten zum Trainieren des Lehrerobjekterkennungsmodells zu generieren. Zum Beispiel kann der Datenspeicher 250 dazu konfiguriert sein, ein oder mehrere Trainingsbilder 252 und für jedes Trainingsbild 252 Daten der interessierenden Region des Trainingsbilds (training image region of interest (ROI) data - Trainingsbild-ROI-Daten) 254, Trainingsbildmaskendaten 256 und/oder Trainingsbildobjektdaten 258, die dem Trainingsbild 252 zugeordnet sind, zu speichern. In einigen Ausführungsformen kann jedes Trainingsbild 252 ein Objekt zeigen, das einer bestimmten Klasse eines Satzes mehrerer unterscheidbarer Objektklassen zugeordnet ist. In einem veranschaulichenden Beispiel kann ein Trainingsbild 252 ein erstes Objekt, das einer Personenklasse entspricht, und ein zweites Objekt, das einer Tierklasse (z. B. einer Hundeklasse) entspricht, zeigen.
  • Die Trainingsbild-ROI-Daten 254 können jede Region eines jeweiligen Trainingsbilds 252 angeben, die ein jeweiliges Objekt zeigt. In einigen Ausführungsformen können die Trainingsbild-ROI-Daten 254 einem Begrenzungsrahmen oder einer anderen Begrenzungsform (z. B. einem Sphäroid, einem Ellipsoid, einer zylindrischen Form usw.) entsprechen, der/die eine Region des Trainingsbilds 252 angibt, die das jeweilige Objekt zeigt. Gemäß dem vorherigen Beispiel können die Trainingsbild-ROI-Daten 254 , die dem beispielhaften Trainingsbild 252 zugeordnet sind, einen ersten Begrenzungsrahmen, der eine erste Region des Trainingsbilds 252 angibt, welche das erste Objekt zeigt, und einen zweiten Begrenzungsrahmen, der eine zweite Region des Trainingsbilds 252 angibt, welche das zweite Objekt zeigt, beinhalten.
  • Die Trainingsbildmaskendaten 256 können sich auf Daten (z. B. ein zweidimensionales (2D-)Bitarray) beziehen, die angeben, ob ein oder mehrere Pixel (oder Gruppen von Pixeln) für ein jeweiliges Trainingsbild 252 einem bestimmten Objekt entsprechen. Gemäß dem vorherigen Beispiel können die Trainingsbildmaskendaten 256, die dem beispielhaften Trainingsbild 252 zugeordnet sind, eine Angabe einer ersten Gruppe von Pixeln, die dem ersten Objekt entspricht, und eine Angabe einer zweiten Gruppe von Pixeln, die dem zweiten Objekt entspricht, beinhalten.
  • Die Trainingsbildobjektdaten 258 können sich auf Daten beziehen, die eine oder mehrere Eigenschaften angeben, die jedem Objekt zugeordnet sind, das in einem jeweiligen Trainingsbild 252 gezeigt ist. In einigen Ausführungsformen können die Trainingsbildobjektdaten 258 Daten beinhalten, die eine Klasse (d. h. mehrerer Klassen) angeben, die einem gezeigten Objekt zugeordnet ist. Zum Beispiel können die dem beispielhaften Trainingsbild 252 zugeordneten Trainingsbildobjektdaten 258 Daten beinhalten, die angeben, dass das erste in dem Trainingsbild 252 gezeigte Objekt einer ersten Klasse (z. B. einer Personenklasse) zugeordnet ist und das zweite in dem Trainingsbild 252 gezeigte Objekt einer zweiten Klasse (z. B. einer Tierklasse) zugeordnet ist. In zusätzlichen oder alternativen Ausführungsformen können die Trainingsbildobjektdaten 258 Daten beinhalten, die andere Eigenschaften angeben, die jedem gezeigten Objekt zugeordnet sind, wie etwa eine Position (z. B. eine Ausrichtung usw.) oder eine Form des Objekts.
  • In einigen Ausführungsformen kann das Trainingsbild 252 in einer Sammlung von Bildern beinhaltet sein, die verwendet werden können, um Objekterkennungsmodelle zu trainieren. Zum Beispiel kann das Trainingsbild 252 in einer Sammlung öffentlich zugänglicher Bilder beinhaltet sein, die aus einem öffentlich zugänglichen Datenspeicher (z. B. dem Datenspeicher 112B) oder einem öffentlich zugänglichen Abschnitt eines Datenspeichers (z. B. des Datenspeichers 112) abgerufen und verwendet werden können, um ein Objekterkennungsmodell zu trainieren. In einigen Ausführungsformen kann jedes der Sammlung von Bildern Bilddaten zugeordnet sein, die auch in dem öffentlich zugänglichen Datenspeicher oder dem öffentlich zugänglichen Abschnitt eines Datenspeichers beinhaltet sein können. In einigen Ausführungsformen können jedes der Sammlung von Bildern und die Bilddaten, die jedem der Sammlung von Bildern zugeordnet sind, von einem oder mehreren Benutzern einer Objekterkennungsplattform bereitgestellt werden. Zum Beispiel kann ein Benutzer der Objekterkennungsplattform (d. h. über eine jeweilige dem Benutzer zugeordnete Client-Vorrichtung) ein Bild bereitstellen, das ein oder mehrere Objekte zeigt. Der Benutzer kann auch (d. h. über eine grafische Benutzerschnittstelle der jeweiligen Client-Vorrichtung) eine Angabe von ROI-Daten, Maskendaten und Objektdaten bereitstellen, die jedem in dem bereitgestellten Bild gezeigten Objekt zugeordnet sind. In einem anderen Beispiel kann ein erster Benutzer der Objekterkennungsplattform (d. h. über eine erste Client-Vorrichtung, die dem ersten Benutzer zugeordnet ist) ein Bild bereitstellen, das ein oder mehrere Objekte zeigt, und ein zweiter Benutzer kann (d. h. über eine grafische Benutzerschnittstelle einer zweiten Client-Vorrichtung, die dem zweiten Benutzer zugeordnet ist) eine Angabe von ROI-Daten, Maskendaten und Objektdaten bereitstellen, die jedem Objekt zugeordnet sind, das in dem von dem ersten Benutzer bereitgestellten Bild gezeigt ist. In einigen Ausführungsformen kann ein Datenabrufmodul 212 des Lehrermodell-Trainingsdatengenerators 210 das Trainingsbild 252 aus dem öffentlich zugänglichen Datenspeicher oder dem öffentlich zugänglichen Abschnitt eines Datenspeichers zur Verwendung zum Trainieren eines Lehrerobjekterkennungsmodells gemäß in dieser Schrift bereitgestellten Ausführungsformen abrufen.
  • In einigen Ausführungsformen kann der Datenspeicher 250 einem öffentlich zugänglichen Datenspeicher entsprechen, wie etwa dem Datenspeicher 112B, der in Bezug auf 1 beschrieben ist. In anderen oder ähnlichen Ausführungsformen kann der Datenspeicher 250 einem öffentlich zugänglichen Abschnitt des Datenspeichers 112A entsprechen. Das Datenabrufmodul 212 kann das Trainingsbild 252, die Trainingsbild-ROI-Daten 254, die Trainingsbildmaskendaten 256 und/oder die Trainingsbildobjektdaten 258 aus dem Datenspeicher 250 (d. h. aus dem Datenspeicher 112A oder Datenspeicher 112B) abrufen. In anderen oder ähnlichen Ausführungsformen kann der Datenspeicher 250 einem Datenspeicher 112, auf den nur über ein privates Netzwerk und/oder über einen Verschlüsselungsmechanismus zugegriffen werden kann, (z. B. dem Datenspeicher 112A) entsprechen. In derartigen Ausführungsformen kann das Datenabrufmodul 212 das Trainingsbild 252 , die Trainingsbild-ROI-Daten 254, die Trainingsbildmaskendaten 256 und/oder die Trainingsbildobjektdaten 258 aus einem öffentlich zugänglichen Datenspeicher (nicht gezeigt) abrufen und in dem Datenspeicher 250 speichern.
  • Das Trainingsdatengeneratormodul 214 kann als Reaktion darauf, dass das Datenabrufmodul 212 das Trainingsbild 252, die Trainingsbild-ROI-Daten 254, die Trainingsbild-Maskendaten 256 und/oder die Trainingsbildobjektdaten 258 abruft, Trainingsdaten zur Verwendung zum Trainieren des Lehrerobjekterkennungsmodells generieren. Die Trainingsdaten können in einigen Ausführungsformen einen Satz von Trainingseingaben und einen Satz von Zielausgaben beinhalten. Der Satz von Trainingseingaben kann ein oder mehrere Trainingsbilder 252 beinhalten, die wie vorstehend beschrieben durch das Datenabrufmodul 212 abgerufen werden. In einigen Ausführungsformen kann das Trainingsdatengeneratormodul 214 eine oder mehrere Bildtransformationen auf das eine oder die mehreren Trainingsbilder 252 anwenden, die durch das Datenabrufmodul 212 abgerufen werden. Zum Beispiel kann ein durch das Datenabrufmodul 212 abgerufenes Trainingsbild 252 einer bestimmten Menge an Bildrauschen zugeordnet sein. Das Trainingsdatengeneratormodul 214 kann eine oder mehrere Bildtransformationen auf das abgerufene Trainingsbild 252 anwenden, um ein modifiziertes Trainingsbild zu generieren. Das modifizierte Trainingsbild kann eine andere Menge an Bildrauschen (z. B. eine geringere Menge an Bildrauschen) als das abgerufene Trainingsbild 252 beinhalten. Das Trainingsdatengeneratormodul 214 kann das modifizierte Trainingsbild gemäß vorstehend beschriebenen Ausführungsformen in den Satz von Trainingsbildern 252 einschließen. Der Satz von Zielausgaben kann Trainingsbild-ROI-Daten 254, Trainingsbildmaskendaten 256 und/oder Trainingsbildobjektdaten 258 beinhalten. Als Reaktion auf das Generieren des Satzes von Trainingseingaben und des Satzes von Zielausgaben kann das Trainingsdatengeneratormodul 214 eine Abbildung zwischen dem Satz von Trainingseingaben und dem Satz von Zielausgaben generieren, um Lehrermodell-Trainingsdaten 272 zu generieren.
  • In einigen Ausführungsformen kann der Lehrermodell-Trainingsdatengenerator 210 die Lehrermodell-Trainingsdaten 272 in dem Datenspeicher 270 speichern. Der Datenspeicher 270 kann ein Datenspeicher, der ein domänenspezifisches oder organisationsspezifisches Archiv oder eine domänenspezifische oder organisationsspezifische Datenbank ist oder diese beinhaltet, (z. B. der Datenspeicher 112A) oder ein privater Abschnitt eines Datenspeichers 112 sein, auf den Rechenvorrichtungen über ein privates Netzwerk und/oder über einen Verschlüsselungsmechanismus zugreifen können. Der Datenspeicher 270 kann für den Trainingsdatengenerator 131 und/oder die Trainingsengine 141 gemäß Ausführungsformen, die in Bezug auf 1 beschrieben sind, zugänglich sind. In zusätzlichen oder alternativen Ausführungsformen kann der Lehrermodell-Trainingsdatengenerator 210 die generierte Abbildung dem Lehrermodell-Trainingsmodul 230 der Trainingsengine 141 bereitstellen, um das Lehrerobjekterkennungsmodell zu trainieren.
  • Als Reaktion auf das Erlangen der Trainingsdaten 272 (d. h. von dem Lehrermodell-Trainingsdatengenerator 210 oder aus dem Datenspeicher 270) kann die Lehrermodell-Trainingsengine 230 die Trainingsdaten 272 verwenden, um das Lehrerobjekterkennungsmodell zu trainieren. In einigen Ausführungsformen kann das Lehrobjekterkennungsmodell trainiert werden, um für ein gegebenes Eingabebild ein oder mehrere Objekte der mehreren Klassen, die in dem gegebenen Eingabebild gezeigt sind, zu erkennen und für jedes erkannte Objekt Maskendaten und/oder ROI-Daten, die dem erkannten Objekt zugeordnet sind, vorherzusagen. In einigen Ausführungsformen kann das Lehrobjekterkennungsmodell auch trainiert werden, um für jedes Objekt, das in einem gegebenen Eingabebild erkannt wird, Objektdaten (z. B. eine Objektklasse, andere Eigenschaftsdaten, die dem Objekt zugeordnet sind, usw.) vorherzusagen. In anderen oder ähnlichen Ausführungsformen kann das Lehrobjekterkennungsmodell trainiert werden, um für ein gegebenes Eingabebild ein oder mehrere Objekte einer einzelnen Klasse, die in dem gegebenen Eingabebild gezeigt sind, zu erkennen und für jedes erkannte Objekt Maskendaten, ROI-Daten, Objektklassendaten und/oder andere Objekteigenschaftsdaten, die dem erkannten Objekt zugeordnet sind, vorherzusagen. In einigen Ausführungsformen kann die Trainingsengine 141 als Reaktion auf das Trainieren des Lehrerobjekterkennungsmodells das trainierte Lehrerobjekterkennungsmodell in dem Datenspeicher 270 als Lehrermodell 274 speichern. Der Studentenmodell-Trainingsdatengenerator 220 kann das trainierte Lehrermodell 274 verwenden, um Trainingsdaten zum Trainieren des Studentenobjekterkennungsmodells gemäß in dieser Schrift bereitgestellten Ausführungsformen zu generieren.
  • Der Datenspeicher 270 kann ein oder mehrere Trainingsbilder 276 zur Verwendung zum Trainieren des Studentenobjekterkennungsmodells, um Objekte zu erkennen, die einer Zielklasse zugeordnet sind, speichern. Zum Beispiel kann eine Zielklasse einer Menschenklasse entsprechen. In einem derartigen Beispiel können ein oder mehrere Trainingsbilder 276 in dem Datenspeicher 270 ein oder mehrere Objekte zeigen, die der Menschenklasse zugeordnet sind. In einigen Ausführungsformen kann jedes in einem jeweiligen Trainingsbild 276 gezeigte Objekt einer unterscheidbaren Eigenschaft zugeordnet sein (z. B. einer Person in einer unterscheidbaren Umgebung, einer Person, die sich in einer unterscheidbaren Position befindet usw.). Dementsprechend können das eine oder die mehreren Trainingsbilder 276 verwendet werden, um das Studentenobjekterkennungsmodell zu trainieren, um die Objekte zu erkennen, die der Menschenklasse und zudem unterscheidbaren Eigenschaften zugeordnet sind. In einem anderen Beispiel können ein oder mehrere Trainingsbilder 276 in dem Datenspeicher 270 ein oder mehrere Objekte zeigen, die nicht der Menschenklasse zugeordnet sind, aber einer oder mehreren Eigenschaften entsprechen, die Objekten ähnlich sind, die der Menschenklasse zugeordnet sind (z. B. ist ein Objekt, das in einem Trainingsbild 276 gezeigt ist, einer ähnlichen Position oder Umgebung zugeordnet, die einem Objekt der Menschenklasse zugeordnet ist). Dementsprechend können das eine oder die mehreren Trainingsbilder 276 verwendet werden, um das Studentenobjekterkennungsmodell zu trainieren, um Objekte zu erkennen, die einer oder mehreren der Menschenklasse zugeordneten Eigenschaften entsprechen, aber nicht der Menschenklasse zugeordnet sind.
  • Das Lehrerinferenzmodul 222 kann ein oder mehrere Trainingsbilder 276 aus dem Datenspeicher 270 abrufen und das eine oder die mehreren Trainingsbilder 276 als Eingabe für das trainierte Lehrermodell 274 bereitstellen. Das Lehrerausgabemodul 224 kann eine oder mehrere Ausgaben des trainierten Lehrermodells 274 erlangen und kann aus der einen oder den mehreren erlangten Ausgaben Objektdaten bestimmen, die jedem Eingabetrainingsbild 276 zugeordnet sind. In einigen Ausführungsformen können die bestimmten Objektdaten für ein jeweiliges Trainingsbild 274 Ausgabebild-ROI-Daten 278, Ausgabebildmaskendaten 280 und/oder Ausgabebildeigenschaftsdaten 282 beinhalten. Die Ausgabebild-ROI-Daten 278, die einem jeweiligen Trainingsbild 276 zugeordnet sind, können eine Region des jeweiligen Trainingsbilds 276 sein, die ein bestimmtes Objekt zeigt. Die Ausgabebildmaskendaten 280 können Maskendaten angeben, die dem bestimmten Objekt zugeordnet sind. Die Ausgabebildeigenschaftsdaten 282 können eine oder mehrere Eigenschaften angeben, die dem bestimmten Objekt zugeordnet sind, wie etwa eine Klasse des Objekts, eine Position des Objekts, eine Form des Objekts usw. In einigen Ausführungsformen kann das Lehrerausgabemodul 224 die Ausgabebild-ROI-Daten 278, die Ausgabebildmaskendaten 280 und/oder die Ausgabebildeigenschaftsdaten 282 in dem Datenspeicher 270 speichern.
  • Das Trainingsdatengeneratormodul 226 kann Trainingsdaten zur Verwendung zum Trainieren des Studentenobjekterkennungsmodells, um für ein gegebenes Eingabebild eine oder mehrere Objekte zu erkennen, die einer Zielklasse zugeordnet sind, generieren. Die Trainingsdaten können in einigen Ausführungsformen einen Satz von Trainingseingaben und einen Satz von Zielausgaben beinhalten. Der Satz von Trainingseingaben kann ein oder mehrere Trainingsbilder 276 beinhalten, die als Eingabe für das trainierte Lehrermodell 274 bereitgestellt wurden, wie vorstehend beschrieben. Der Satz von Zielausgaben kann mindestens die Ausgabebildmaskendaten 280 beinhalten, die aus einer oder mehreren Ausgaben des trainierten Lehrermodells 274 bestimmt werden. In einigen Ausführungsformen kann der Satz von Zielausgaben die Ausgabebildmaskendaten 280 und die Ausgabebildeigenschaftsdaten 282 beinhalten.
  • In einigen Ausführungsformen kann das Trainingsdatengeneratormodul 226 aktualisierte Bildeigenschaftsdaten auf Grundlage der Ausgabebildeigenschaftsdaten 282, die aus der einen oder mehreren Ausgaben des trainierten Lehrermodells 274 bestimmt werden, generieren. Zum Beispiel kann ein Trainingsbild 276, das als Eingabe für das trainierte Lehrermodell 274 bereitgestellt wird, ein erstes Objekt, das einer ersten Klasse (z. B. einer Menschenklasse usw.) zugeordnet ist, und ein zweites Objekt, das einer zweiten Klasse zugeordnet ist (z. B. ein Tierklasse usw.), zeigen. Das Lehrerausgabemodul 224 kann eine oder mehrere Ausgaben von dem trainierten Lehrermodell 274 erlangen, die das in dem gegebenen Eingabebild erkannte erste und zweite Objekt angeben, und Bildeigenschaftsdaten 282 ausgeben, die angeben, dass das erste Objekt der ersten Klasse zugeordnet ist und das zweite Objekt der zweiten Klasse zugeordnet ist. Das Trainingsdatengeneratormodul 226 kann bestimmen, ob die erste Klasse und/oder die zweite Klasse der Zielklasse entspricht und kann auf Grundlage der Bestimmung aktualisierte Bildobjektdaten generieren. Wenn zum Beispiel die Zielklasse eine Menschenklasse ist, kann das Trainingsdatengeneratormodul 226 bestimmen, dass die erste Klasse der Zielklasse entspricht und aktualisierte Bildeigenschaftsdaten generieren, um anzugeben, dass das erste Objekt der Zielklasse entspricht. Das Trainingsdatengeneratormodul 226 kann auch bestimmen, dass die zweite Klasse nicht der Zielklasse entspricht und kann aktualisierte Bildeigenschaftsdaten generieren, um anzugeben, dass das zweite Objekt nicht der Zielklasse entspricht. Das Trainingsdatengeneratormodul 226 kann in einigen Ausführungsformen die aktualisierten Objektdaten anstelle der Ausgabebildeigenschaftsdaten 282 in den Satz von Zielausgaben einschließen.
  • In einigen Ausführungsformen kann der Satz von Zielausgaben zusätzlich grundlegende Referenzbilddaten 284 beinhalten. Die grundlegenden Referenzbilddaten 284 können eine Region eines jeweiligen Trainingsbilds 276 angeben, die ein Objekt beinhaltet, das durch das trainierte Lehrermodell 274 erkannt wurde. Zum Beispiel können die grundlegenden Referenzdaten 284 eine Angabe eines oder mehrerer Begrenzungsrahmen beinhalten, die Trainingsbildern 276 zugeordnet sind, die von einer anerkannten Begrenzungsrahmen-Autoritätsentität oder einem Benutzer einer Rechenvorrichtung oder einer Objekterkennungsplattform erlangt werden. In einigen Ausführungsformen können grundlegenden Referenzdaten 284 von der anerkannten Begrenzungsrahmen-Autoritätsentität oder dem Benutzer erlangt werden, bevor oder nachdem das eine oder die mehreren Trainingsbilder 276 als Eingabe für das trainierte Lehrermodell 274 bereitgestellt werden. In einem veranschaulichenden Beispiel können die grundlegenden Referenzbilddaten 284 den Ausgabebild-ROI-Daten 278 entsprechen, abgesehen davon, dass ein Begrenzungsrahmen der grundlegenden Referenzbilddaten 284 eine Region eines Bilds 276, die ein bestimmtes Objekt zeigt, genauer identifizieren kann als ein Begrenzungsrahmen der Ausgabebild-ROI-Daten 278. In einigen zusätzlichen oder alternativen Ausführungsformen können die grundlegenden Referenzbilddaten 284 eine Klasse des Objekts angeben, das durch das trainierte Lehrermodell 274 erkannt wurde. In einigen Ausführungsformen kann der Satz von Zielausgaben die Klasse des Objekts, die durch die grundlegenden Referenzbilddaten 284 angegeben ist, anstelle der Klasse des Objekts, die durch die Ausgabebildeigenschaftsdaten 282 angegeben ist, wie vorstehend beschrieben, beinhalten. In einigen Ausführungsformen kann das Trainingsdatengeneratormodul 226 aktualisierte Bildeigenschaftsdaten auf Grundlage der Objektklasse generieren, die gemäß zuvor beschriebenen Ausführungsformen durch die grundlegenden Referenzbilddaten 284 angegeben ist.
  • Als Reaktion auf das Generieren des Satzes von Trainingseingaben und des Satzes von Zielausgaben für ein jeweiliges Trainingsbild 276 kann das Trainingsdatengeneratormodul 226 eine Abbildung zwischen dem Satz von Trainingseingaben und dem Satz von Zielausgaben generieren, um Studentenmodell-Trainingsdaten 286 zu generieren. In einigen Ausführungsformen kann der Studentenmodell-Trainingsdatengenerator 220 die Studentenmodell-Trainingsdaten 286 in dem Datenspeicher 270 speichern. In anderen oder ähnlichen Ausführungsformen kann der Studentenmodell-Trainingsdatengenerator 220 die Studentenmodell-Trainingsdaten 286 an die Trainingsengine 141 übermitteln. Als Reaktion auf das Erlangen der Trainingsdaten 286 (d. h. von dem Studentenmodell-Trainingsdatengenerator 220 oder aus dem Datenspeicher 270) kann das Studentenmodell-Trainingsmodul 232 die Trainingsdaten 286 verwenden, um das Studentenobjekterkennungsmodell zu trainieren. Das Studentenobjekterkennungsmodell kann trainiert werden, um für eine gegebene Eingabe ein oder mehrere Objekte der Zielklasse, die in dem gegebenen Eingabebild gezeigt sind, zu erkennen und für jedes erkannte Objekt Maskendaten, ROI-Daten und/oder Eigenschaftsdaten, die dem erkannten Objekt zugeordnet sind, vorherzusagen. In einigen Ausführungsformen kann die Trainingsengine 141 das trainierte Studentenobjekterkennungsmodell einer Objekterkennungsengine, wie etwa der Objekterkennungsengine 151 aus 1 bereitstellen.
  • 3 ist ein Blockdiagramm einer beispielhaften Objekterkennungsengine 310 gemäß mindestens einer Ausführungsform. In einigen Ausführungsformen kann die Objekterkennungsengine 310 der Objekterkennungsengine 151 entsprechen, die in Bezug auf 1 beschrieben ist. Wie in 3 veranschaulicht, kann die Objekterkennungsengine 310 eine Eingabebildkomponente 312, eine Objektdatenkomponente 314, eine Modellkopfkomponente 316 und/oder eine Modellaktualisierungskomponente 318 beinhalten. In einigen Ausführungsformen kann die Objekterkennungsengine 310 mit einem Speicher 320 gekoppelt sein. In einigen Ausführungsformen kann sich die Objekterkennungsengine 310 in der Rechenvorrichtung 102 befinden. In derartigen Ausführungsformen kann der Speicher 320 dem Speicher 104 entsprechen, der in Bezug auf 1 beschrieben ist. In anderen oder ähnlichen Ausführungsformen kann sich die Objekterkennungsengine 310 auf dem Server 150 befinden. In derartigen Ausführungsformen kann der Speicher 320 einem Speicher in einem Datenspeicher (z. B. dem Datenspeicher 112), dem Speicher 104 oder einem Speicher einer anderen Speichervorrichtung entsprechen, die dem System 100 zugeordnet ist.
  • Die Eingabebildkomponente 312 kann dazu konfiguriert sein, ein Bild (z. B. das Bild 106) zu erlangen und das erlangte Bild als Eingabe für ein trainiertes Objekterkennungsmodell 322 bereitzustellen, das in dem Speicher 320 gespeichert ist. In einigen Ausführungsformen kann das trainierte Objekterkennungsmodell 322 einem Studentenobjekterkennungsmodell entsprechen, das von der Trainingsengine 141 unter Verwendung von Trainingsdaten trainiert wird, die von dem Trainingsdatengenerator 131 generiert werden, wie in Bezug auf 1 und 2 beschrieben. In anderen oder ähnlichen Ausführungsformen kann das trainierte Objekterkennungsmodell 322 einem anderen trainierten Objekterkennungsmodell entsprechen, das nicht von der Trainingsengine 141 unter Verwendung von Trainingsdaten trainiert wird, die von dem Trainingsdatengenerator 131 generiert werden.
  • Wie in Bezug auf 1 beschrieben, kann die Rechenvorrichtung 102 in einigen Ausführungsformen eine Rechenvorrichtung einer Cloud-Rechenplattform sein. In derartigen Ausführungsformen kann die Rechenvorrichtung 102 mit einer oder mehreren Edge-Vorrichtungen (z. B. der Edge-Vorrichtung 330) gekoppelt sein, die jeweils mit einer oder mehreren Endpunktvorrichtungen (z. B. den Endpunktvorrichtungen 332A-N (gemeinsam und einzeln in dieser Schrift als Endpunkt-Vorrichtung 332 bezeichnet)) gekoppelt sind, wie in 3 veranschaulicht. In einigen Ausführungsformen kann/können (eine) audiovisuelle Komponente(n) und/oder Sensorkomponente(n) einer Endpunktvorrichtung 332 das Bild 106 wie vorstehend beschrieben generieren und das Bild 106 (z. B. über ein Netzwerk) an die Edge-Vorrichtung 330 übermitteln. Die Edge-Vorrichtung 330 kann das empfangene Bild 106 (z. B. über das Netzwerk 110) an die Rechenvorrichtung 102 übermitteln. In derartigen Ausführungsformen kann die Rechenvorrichtung 102 das Bild 106 (z. B. über das Netzwerk 110 oder einen BUS der Rechenvorrichtung 102) an die Eingabebildkomponente 312 übermitteln. In anderen oder ähnlichen Ausführungsformen kann die Rechenvorrichtung 102 die Edge-Vorrichtung 330 oder eine Komponente davon sein, wie ebenfalls vorstehend beschrieben. In derartigen Ausführungsformen kann die Edge-Vorrichtung 330 das Bild 106 (z. B. über ein Netzwerk) von der Endpunktvorrichtung 332 empfangen und kann das Bild 106 (z. B. über das Netzwerk 110 oder einen BUS der Rechenvorrichtung 102) an die Eingabebildkomponente 312 übermitteln. In noch anderen oder ähnlichen Ausführungsformen kann die Rechenvorrichtung 102 eine oder mehrere Endpunktvorrichtungen 332A-N oder eine Komponente davon sein, wie zuvor beschrieben. In derartigen Ausführungsformen können die eine oder die mehreren Endpunktvorrichtungen 332A-N das Bild 106 generieren und das Bild 106 (z. B. über ein Netzwerk, das Netzwerk 110 oder einen BUS der Rechenvorrichtung 102) an die Eingabebildkomponente 312 übermitteln.
  • Als Reaktion auf das Empfangen des Bilds 106 kann die Eingabebildkomponente 312 in einigen Ausführungsformen das Bild 106 als Eingabe für das trainierte Objekterkennungsmodell 322 bereitstellen. In anderen oder ähnlichen Ausführungsformen kann die Eingabebildkomponente 312 eine oder mehrere Bildtransformationen anwenden (z. B. um eine in dem Bild 106 beinhaltete Rauschmenge zu reduzieren), wie vorstehend beschrieben, um ein modifiziertes Bild zu generieren und das modifizierte Bild als Eingabe für das trainierte Objekterkennungsmodell 322 bereitzustellen. Die Objektdatenkomponente 314 kann eine oder mehrere Ausgaben des trainierten Objekterkennungsmodells 322 erlangen und kann auf Grundlage der einen oder der mehreren erlangten Ausgaben Objektdaten 108 bestimmen. In einigen Ausführungsformen können die Objektdaten 108, die auf Grundlage der einen oder mehreren erlangten Ausgaben bestimmt werden, einem oder mehreren Objekten entsprechen, die in dem gegebenen Eingabebild 106 (oder dem modifizierten Eingabebild) erkannt werden. Zum Beispiel können die Objektdaten 108 eine Angabe einer Region des Bilds 106 beinhalten, die ein erkanntes Objekt beinhaltet (z. B. einen Begrenzungsrahmen). In einigen zusätzlichen oder alternativen Ausführungsformen können die Objektdaten 108 ferner Maskendaten beinhalten, die dem erkannten Objekt zugeordnet sind. In einigen zusätzlichen oder alternativen Ausführungsformen können die Objektdaten 108 ferner Daten beinhalten, die eine Klasse und/oder eine oder mehrere Eigenschaften angeben, die dem erkannten Objekt zugeordnet sind.
  • In einigen Ausführungsformen können die eine oder die mehreren Ausgaben des trainierten Objekterkennungsmodells 322 eine Angabe mehrerer Regionen des Bilds 106 und eine Angabe eines Konfidenzniveaus, dass jede Region ein erkanntes Objekt beinhaltet, beinhalten. Die Objektdatenkomponente 314 kann bestimmen, dass eine bestimmte Region des Bilds 106 ein erkanntes Objekt beinhaltet, indem bestimmt wird, dass ein Konfidenzniveau, das der bestimmten Region des Bilds 106 zugeordnet ist, ein Konfidenzniveaukriterium erfüllt (z. B. das Konfidenzniveau einen Schwellenwert überschreitet usw.). Als Reaktion auf das Bestimmen, dass die bestimmte Region des Bilds 106 das Konfidenzniveaukriterium erfüllt, kann die Objektdatenkomponente 314 die Angabe der bestimmten Region des Bilds 106 in die Objektdaten 108 in dem Speicher 320 einschließen. In zusätzlichen oder alternativen Ausführungsformen können die eine oder die mehreren Ausgaben des trainierten Objekterkennungsmodells 322 mehrere Sätze von Maskendaten und eine Angabe eines Konfidenzniveaus beinhalten, dass jeder Satz von Maskendaten dem erkannten Objekt zugeordnet ist. Als Reaktion auf das Bestimmen, dass ein bestimmter Satz von Maskendaten ein Konfidenzniveaukriterium erfüllt, kann die Objektdatenkomponente 314 die Angabe der bestimmten Maskendaten in die Objektdaten 108 in dem Speicher 320 einschließen. In noch zusätzlichen oder alternativen Ausführungsformen können die eine oder die mehreren Ausgaben des trainierten Objekterkennungsmodells 322 mehrere Klassen und/oder Eigenschaften und eine Angabe eines Konfidenzniveaus beinhalten, dass jede Klasse und/oder Eigenschaft einem erkannten Objekt entspricht. Als Reaktion auf das Bestimmen, dass eine bestimmte Klasse und/oder Eigenschaft ein Konfidenzniveaukriterium erfüllt, kann die Objektdatenkomponente 314 die Angabe der bestimmten Klasse und/oder Eigenschaft in die Objektdaten 108 in dem Speicher 320 einschließen.
  • In einigen Ausführungsformen kann die Objektdatenkomponente 314 auf Grundlage der Objektdaten 108 bestimmen, ob ein in dem gegebenen Eingabebild 106 erkanntes Objekt der Zielklasse entspricht. Zum Beispiel können die Objektdaten 108 in einigen Ausführungsformen eine Klasse angeben, die einem erkannten Objekt zugeordnet ist, wie vorstehend beschrieben. Die Objektdatenkomponente 312 kann die angegebene Klasse mit der Zielklasse vergleichen, um zu bestimmen, ob das erkannte Objekt der Zielklasse entspricht. In einem anderen Beispiel können die Objektdaten 108 Daten beinhalten, die gemäß zuvor beschriebenen Ausführungsformen angeben, ob das erkannte Objekt einer Zielklasse entspricht. In einem derartigen Beispiel kann die Objektdatenkomponente 312 auf Grundlage der beinhalteten Daten bestimmen, ob das erkannte Objekt der Zielklasse entspricht. In einigen Ausführungsformen kann die Objektdatenkomponente 314 die Objektdaten 108 derart aktualisieren, dass sie eine Angabe darüber beinhalten, ob das erkannte Objekt der Zielklasse entspricht. Die Objektdatenkomponente 314 kann die Objektdaten 108 an die Rechenvorrichtung 102 übermitteln. In einigen Ausführungsformen kann die Objektdatenkomponente 312 zusätzlich oder alternativ eine Benachrichtigung an die Rechenvorrichtung 102 übermitteln, die angibt, ob ein erkanntes Objekt der Zielklasse entspricht.
  • Wie vorstehend beschrieben, kann in einigen Ausführungsformen das trainierte Objekterkennungsmodell 322 (z. B. das trainierte Studentenobjekterkennungsmodell aus 2) trainiert werden, um ROI-Daten, Bildmaskendaten und/oder Bildeigenschaftsdaten, die einem gegebenen Eingabebild zugeordnet sind, vorherzusagen. In derartigen Ausführungsformen kann das trainierte Objekterkennungsmodell 322 ein Modell mit mehreren Köpfen sein, wobei jeder Kopf des Modells mit mehreren Köpfen verwendet wird, um eine bestimmte Datenart vorherzusagen, die einem in einem gegebenen Eingabebild erkannten Objekt zugeordnet ist. Zum Beispiel kann das trainierte Objekterkennungsmodell 322 einen ersten Kopf, der dem Vorhersagen von ROI-Daten entspricht, die einem erkannten Objekt zugeordnet sind, einen zweiten Kopf, der dem Vorhersagen von Maskendaten entspricht, die einem erkannten Objekt zugeordnet sind, und/oder einen dritten Kopf beinhalten, der dem Vorhersagen von Eigenschaftsdaten entspricht, die einem erkannten Objekt zugeordnet sind, wie etwa einer Klasse des erkannten Objekts. Wie vorstehend beschrieben, kann in einigen Ausführungsformen eine erhebliche Anzahl von Trainingsbildern (z. B. die Trainingsbilder 276 ) verwendet werden, um das Objekterkennungsmodell zu trainieren. Zum Beispiel können in einigen Systemen Hunderte, Tausende oder in einigen Fällen Millionen von Bildern verwendet werden, um das Objekterkennungsmodell zu trainieren. In Anbetracht des Vorstehenden kann das Objekterkennungsmodell 322 mit mehreren Köpfen, das an einer erheblichen Anzahl von Bildern trainiert wird, in einigen Ausführungsformen eine erhebliche Menge an Systemressourcen (z. B. Speicherplatz, Verarbeitungsressourcen usw.) verbrauchen. In einigen Ausführungsformen kann die Objekterkennungsengine 310 einen oder mehrere Köpfe (z. B. einen Maskenkopf) des trainierten Objekterkennungsmodells 322 mit mehreren Köpfen entfernen, um die Menge an Systemressourcen zu reduzieren, die vor und/oder während der Inferenz durch das Objekterkennungsmodell 322 verbraucht werden.
  • 4A zeigt ein beispielhaftes trainiertes Objekterkennungsmodell 322 mit mehreren Köpfen gemäß mindestens einer Ausführungsform. Wie in 4A veranschaulicht, kann das Modell 322 mindestens einen ROI-Kopf 412 und einen Maskenkopf 414 beinhalten. Es ist zu beachten, dass, obwohl das Modell 322, wie in 4A gezeigt, einem neuronalen Netz ähnlich sein kann, Ausführungsformen dieser Offenbarung auf eine beliebige Art von maschinellem Lernmodell angewendet werden können. Die Eingabebildkomponente 312 kann das Bild 106 gemäß zuvor beschriebenen Ausführungsformen als Eingabe für das Modell 322 bereitstellen. Das Eingabebild 106 kann sowohl dem ROI-Kopf 412 als auch dem Maskenkopf 414 des Modells 322 bereitgestellt werden. Das Modell 322 kann auf Grundlage des gegebenen Eingabebilds 106 eine oder mehrere Ausgaben bereitstellen, wie vorstehend beschrieben. In einigen Ausführungsformen kann die bereitgestellte Ausgabe eine ROI-Kopfausgabe 416 und eine Maskenkopfausgabe 418 beinhalten. Die ROI-Kopf-Ausgabe 416 kann auf Grundlage einer Inferenz, die gemäß dem ROI-Kopf 412 durchgeführt wird, bereitgestellt werden. Die Maskenkopfausgabe 418 kann auf Grundlage einer Inferenz, die gemäß dem Maskenkopf 414 durchgeführt wird, bereitgestellt werden.
  • Unter erneuter Bezugnahme auf 3 können in einigen Ausführungsformen die Modellkopfkomponente 316 und die Modellaktualisierungskomponente 318 der Objekterkennungsengine 310 einen Maskenkopf des Objekterkennungsmodells 322 entfernen. Zum Beispiel kann die Modellkopfkomponente 316 einen oder mehrere Köpfe des Modells 322 (z. B. den Maskenkopf 414) identifizieren, die dem Bereitstellen einer bestimmten Ausgabe (z. B. dem Vorhersagen von Maskendaten) entsprechen, die einem gegebenen Eingabebild zugeordnet ist. Als Reaktion darauf, dass die Modellkopfkomponente 316 die entsprechenden Köpfe des Modells 322 identifiziert, kann die Modellaktualisierungskomponente 318 das Modell 322 aktualisieren, um den einen oder die mehreren identifizierten Köpfe zu entfernen. 4B zeigt ein aktualisiertes trainiertes Objekterkennungsmodell 324 , das aktualisiert wird, um den Maskenkopf 414 zu entfernen, gemäß mindestens einer Ausführungsform. Wie in 4B veranschaulicht, kann die Modellaktualisierungskomponente 318 den Maskenkopf 414 des Modells 322 entfernen, um das aktualisierte Modell 324 zu generieren. Dementsprechend kann das Modell 324 in einigen Ausführungsformen die ROI-Kopfausgabe 416 bereitstellen und kann die Maskenkopfausgabe 418 nicht bereitstellen. Es ist zu beachten, dass, obwohl 3 und 4A-4B Ausführungsformen beinhalten, die auf das Entfernen des Maskenkopfs 414 aus dem Modell 322 gerichtet sind, Ausführungsformen der vorliegenden Offenbarung auf das Entfernen eines beliebigen Kopfs des Modells 322 angewendet werden können.
  • Unter erneuter Bezugnahme auf 3 kann die Objekterkennungsengine 310 in einigen Ausführungsformen das aktualisierte Objekterkennungsmodell 324 (z. B. über das Netzwerk 110 oder einen Bus der Rechenvorrichtung 102) an die Rechenvorrichtung 102 übermitteln. Wie ebenfalls vorstehend beschrieben, kann die Rechenvorrichtung 102 in einigen Ausführungsformen eine Cloud-Rechenplattform oder eine Komponente davon sein. In derartigen Ausführungsformen kann die Rechenvorrichtung 102 das aktualisierte Objekterkennungsmodell 324 (z. B. über das Netzwerk 110) an die Edge-Vorrichtung 330 übermitteln. Die Edge-Vorrichtung 330 kann in einigen Ausführungsformen das aktualisierte Objekterkennungsmodell 324 verwenden, um eine Objekterkennung auf Grundlage von Bildern 106 durchzuführen, die durch die Endpunktvorrichtungen 332A-N generiert werden. In anderen oder ähnlichen Ausführungsformen kann die Edge-Vorrichtung 330 das aktualisierte Objekterkennungsmodell 324 an die Endpunktvorrichtungen 332A-N übermitteln. Wie ebenfalls vorstehend beschrieben, kann die Rechenvorrichtung 102 die Edge-Vorrichtung 330 oder eine Komponente davon sein. In derartigen Ausführungsformen kann die Edge-Vorrichtung 330 das aktualisierte Objekterkennungsmodell 324 verwenden, um eine Objekterkennung durchzuführen und/oder kann sie das aktualisierte Objekterkennungsmodell 324 an die Endpunktvorrichtungen 332A übermitteln. Wie ebenfalls vorstehend beschrieben, kann die Rechenvorrichtung 102 eine oder mehrere Endpunktvorrichtungen 332A-N oder eine Komponente davon sein. In derartigen Ausführungsformen können eine oder mehrere der Endpunktorrichtungen 332A-N das aktualisierte Objekterkennungsmodell 324 verwenden, um eine Objekterkennung gemäß vorstehend beschriebenen Ausführungsformen durchzuführen.
  • 5A-B und 6 sind Flussdiagramme beispielhafter Verfahren 500, 550 bzw. 600, die sich auf das Trainieren eines Objekterkennungsmodells gemäß mindestens einigen Ausführungsformen beziehen. In mindestens einer Ausführungsform können die Verfahren 500, 550 und/oder 600 durch die Rechenvorrichtung 102, die Servermaschine 130, die Servermaschine 140, die Servermaschine 150, eine oder mehrere Edge-Vorrichtungen, eine oder mehrere Endpunktvorrichtungen oder eine andere Rechenvorrichtung oder eine Kombination mehrerer Rechenvorrichtungen durchgeführt werden. Die Verfahren 500, 550 und/oder 600 können durch eine oder mehrere Verarbeitungseinheiten (z. B. CPUs und/oder GPUs) durchgeführt werden, die eine oder mehrere Speichervorrichtungen beinhalten (oder mit diesen kommunizieren) können. In mindestens einer Ausführungsform können die Verfahren 500, 550 und/oder 600 durch mehrere Verarbeitungs-Threads (z. B. CPU-Threads und/oder GPU-Threads) durchgeführt werden, wobei jeder Thread eine oder mehrere individuelle Funktionen, Routinen, Unterroutinen oder Operationen des Verfahrens ausführt. In mindestens einer Ausführungsform können Verarbeitungs-Threads, welche die Verfahren 500, 550 und/oder 600 implementieren, (z. B. unter Verwendung von Semaphoren, kritischen Abschnitten und/oder anderen Thread-Synchronisierungsmechanismen) synchronisiert werden. Alternativ können in mindestens einer Ausführungsform die Verarbeitungs-Threads, welche die Verfahren 500, 550 und/oder 600 implementieren, asynchron in Bezug zueinander ausgeführt werden. Verschiedene Operationen der Verfahren 500, 550 und/oder 600 können in einer anderen Reihenfolge im Vergleich zu der in 5A-B und 6 gezeigten Reihenfolge durchgeführt werden. Einige Operationen der Verfahren können gleichzeitig mit anderen Operationen durchgeführt werden. In mindestens einer Ausführungsform können eine oder mehrere der in 5A-B und 6 gezeigten Operationen nicht immer durchgeführt werden.
  • 5A veranschaulicht ein Flussdiagramm eines beispielhaften Verfahrens 500 zum Trainieren eines maschinellen Lernmodells, um Objekte einer Zielklasse zu erkennen, gemäß mindestens einer Ausführungsform. In einigen Ausführungsformen können eine oder mehrere Operationen des Verfahrens 500 durch eine oder mehrere Komponenten oder Module des in dieser Schrift beschriebenen Trainingsdatengenerators 131 durchgeführt werden. Die Verarbeitungseinheiten, die das Verfahren 500 durchführen, können bei Block 510 einen ersten Satz von Bildern identifizieren, der mehrere Objekte mehrerer Klassen beinhaltet. In einigen Ausführungsformen können die Verarbeitungseinheiten den ersten Satz von Bildern aus dem Datenspeicher 270 erlangen, wie zuvor beschrieben.
  • Bei Block 512 können die Verarbeitungseinheiten, die das Verfahren 500 durchführen, den ersten Satz von Bildern als Eingabe für ein erstes maschinelles Lernmodell bereitstellen. Das erste maschinelle Lernmodell kann ein trainiertes Lehrerobjekterkennungsmodell sein, das trainiert wird, um für ein gegebenes Eingabebild ein oder mehrere Objekte mehrerer Klassen, die in dem gegebenen Bild gezeigt sind, zu erkennen. Das trainierte Lehrerobjekterkennungsmodell kann zudem trainiert werden, um für jedes des einen oder der mehreren erkannten Objekte Maskendaten und in einigen Ausführungsformen ROI-Daten vorherzusagen, die dem jeweiligen erkannten Objekt zugeordnet sind. In zusätzlichen oder alternativen Ausführungsformen kann das trainierte Lehrerobjekterkennungsmodell trainiert werden, um für jedes erkannte Objekt eine bestimmte Klasse der mehreren Klassen vorherzusagen, die einem jeweiligen erkannten Objekt zugeordnet ist. Bei Block 514 können die Verarbeitungseinheiten, die das Verfahren 500 durchführen, aus einer oder mehreren Ausgaben des ersten maschinellen Lernmodells Objektdaten bestimmen, die dem ersten Satz von Bildern zugeordnet sind. Die Objektdaten für jedes jeweilige Bild des ersten Satzes von Bildern können Maskendaten beinhalten, die jedem in dem jeweiligen Bild erkannten Objekt zugeordnet sind.
  • Bei Block 516 können die Verarbeitungseinheiten, die das Verfahren 500 durchführen, ein zweites maschinelles Lernmodell trainieren, um Objekte einer Zielklasse in einem zweiten Satz von Bildern unter Verwendung des ersten Satzes von Bildern und eines Abschnitts der Objektdaten, die aus der einen oder den mehreren Ausgaben des ersten maschinellen Lernmodells bestimmt werden, zu erkennen. Das zweite maschinelle Lernmodell kann ein Studentenobjekterkennungsmodell sein. Die Verarbeitungseinheiten können das Studentenobjekterkennungsmodell unter Verwendung einer Trainingseingabe und einer Zielausgabe trainieren. Die Trainingseingabe kann den ersten Satz von Bildern beinhalten (d. h. die als Eingabe für das trainierte Lehrerobjekterkennungsmodell bereitgestellt wurden). Die Zielausgabe kann die Maskendaten beinhalten, die jedem erkannten Objekt in dem ersten Satz von Bildern zugeordnet sind, die in der einen oder den mehreren Ausgaben des Lehrobjekterkennungsmodells beinhaltet sind. Die Zielausgabe kann zudem eine Angabe darüber beinhalten, ob eine Klasse, die jedem in dem ersten Satz von Bildern erkannten Objekt zugeordnet ist, der Zielklasse entspricht. In einigen Ausführungsformen können die Verarbeitungseinheiten bestimmen, ob die bestimmte Klasse, die jedem in dem ersten Satz von Bildern erkannten Objekt zugeordnet ist, der Zielklasse entspricht. Die Zielausgabe kann eine Angabe darüber enthalten, ob die bestimmte Klasse der Zielklasse entspricht. In einer anderen Ausführungsform kann die Zielausgabe eine Angabe der bestimmten Klasse beinhalten, die jedem Objekt zugeordnet ist, das in dem ersten Satz von Bildern erkannt wird.
  • Die Zielausgabe kann in einigen Ausführungsformen zudem grundlegende Referenzdaten beinhalten, die jedem Objekt zugeordnet sind, das in dem ersten Satz von Bildern erkannt wird. Wie vorstehend beschrieben, können die jedem erkannten Objekt zugeordneten grundlegenden Referenzdaten eine Region eines Bilds angeben, die ein jeweiliges erkanntes Objekt beinhaltet. Die Verarbeitungseinheiten können die grundlegenden Referenzdaten unter Verwendung einer Datenbank (z. B. in dem Datenspeicher 270) identifizieren, die gemäß zuvor beschriebenen Ausführungsformen eine Angabe einer oder mehrerer ROIs (z. B. Begrenzungsrahmen) beinhaltet, die dem Bild zugeordnet sind. Jede der in der Datenbank beinhalteten ROIs kann von einer anerkannten ROI-Autorität oder einem Benutzer einer Plattform bereitgestellt werden. In einigen Ausführungsformen können die Verarbeitungseinheiten unter Verwendung der Datenbank zudem eine Klasse identifizieren, die jedem Objekt zugeordnet ist, das in dem ersten Satz von Bildern erkannt wird.
  • In einigen Ausführungsformen kann das trainierte zweite maschinelle Lernmodell ein maschinelles Lernmodell mit mehreren Köpfen sein, wie vorstehend beschrieben. In einigen Ausführungsformen können die Verarbeitungseinheiten einen oder mehrere Köpfe des zweiten maschinellen Lernmodells identifizieren, die dem Vorhersagen von Maskendaten für ein gegebenes Eingabebild entsprechen, und können sie das zweite maschinelle Lernmodell aktualisieren, um den einen oder die mehreren identifizierten Köpfe zu entfernen. In einigen Ausführungsformen können die Verarbeitungseinheiten den zweiten Satz von Bildern als Eingabe für das zweite maschinelle Lernmodell bereitstellen und eine oder mehrere Ausgaben des zweiten maschinellen Lernmodells erlangen. Die Verarbeitungseinheiten können aus der einen oder den mehreren erlangten Ausgaben zusätzliche Objektdaten bestimmen, die jedem des zweiten Satzes von Bildern zugeordnet sind. Die zusätzlichen Objektdaten können in einigen Ausführungsformen eine Angabe einer Region eines jeweiligen Bilds (z. B. einen Begrenzungsrahmen) beinhalten, die ein in dem jeweiligen Bild erkanntes Objekt und eine dem erkannten Objekt zugeordnete Klasse beinhaltet.
  • 5B veranschaulicht ein Flussdiagramm eines beispielhaften Verfahrens 550 zum Verwenden eines maschinellen Lernmodells, das trainiert wird, um Objekte einer Zielklasse zu erkennen, gemäß mindestens einer Ausführungsform. In einigen Ausführungsformen können eine oder mehrere Operationen des Verfahrens 550 durch eine oder mehrere Komponenten oder Module der in dieser Schrift beschriebenen Objekterkennungsengine 151 durchgeführt werden. Die Verarbeitungseinheiten, die das Verfahren 550 durchführen, können bei Block 552 einen Satz aktueller Bilder als Eingabe für ein erstes maschinelle Lernmodell bereitstellen. In einigen Ausführungsformen kann der Satz aktueller Bilder von einer audiovisuellen Komponente (z. B. einer Kamera) generiert werden, die sich an einer Endpunktvorrichtung, an einer Edge-Vorrichtung oder auf einem Server befindet oder damit gekoppelt ist, wie vorstehend beschrieben.
  • Das erste maschinelle Lernmodell kann trainiert werden, um Objekte einer Zielklasse in einem gegebenen Satz von Bildern zu erkennen. In einigen Ausführungsformen kann das erste maschinelle Lernmodell dem Studentenobjekterkennungsmodell entsprechen, wie vorstehend beschrieben. In einigen Ausführungsformen kann das erste maschinelle Lernmodell gemäß zuvor beschriebenen Ausführungsformen trainiert werden. Zum Beispiel kann das erste maschinelle Lernmodell unter Verwendung einer Trainingseingabe, die einen Satz von Trainingsbildern beinhaltet, und einer Zielausgabe für die Trainingseingabe trainiert werden. Die Zielausgabe kann für jedes jeweilige Trainingsbild des Satzes von Trainingsbildern grundlegende Referenzdaten beinhalten, die jedem in dem jeweiligen Trainingsbild gezeigten Objekt zugeordnet sind. Die grundlegenden Referenzdaten können eine Region des jeweiligen Trainingsbilds angeben, die ein jeweiliges Objekt beinhaltet. In einigen Ausführungsformen können die grundlegenden Referenzdaten unter Verwendung einer Datenbank erlangt werden, die eine Angabe eines oder mehrerer Begrenzungsrahmen beinhaltet, die dem Satz von Trainingsbildern zugeordnet sind. Jeder des einen oder mehreren Begrenzungsrahmen kann von einer anerkannten Begrenzungsrahmen-Autoritätsentität und/oder einem Benutzer einer Plattform bereitgestellt werden.
  • Die Zielausgabe kann zudem Maskendaten beinhalten, die jedem in dem jeweiligen Trainingsbild gezeigten Objekt zugeordnet sind. Die Maskendaten können auf Grundlage einer oder mehreren Ausgaben eines zweiten maschinellen Lernmodells erlangt werden. In einigen Ausführungsformen kann das zweite maschinelle Lernmodell dem in dieser Schrift beschriebenen Lehrermodell entsprechen. Zum Beispiel kann der Satz von Trainingsbildern als Eingabe für das zweite maschinelle Lernmodell bereitgestellt werden. Das zweite maschinelle Lernmodell kann trainiert werden, um für ein gegebenes Eingabebild ein oder mehrere Objekte mindestens einer von mehreren Klassen, die in dem gegebenen Eingabebild gezeigt sind, zu erkennen und für jedes des einen oder der mehreren erkannten Objekte mindestens Maskendaten vorherzusagen, die dem jeweiligen erkannten Objekt zugeordnet sind. Die Objektdaten können aus einer oder mehreren Ausgaben des zweiten maschinellen Lernmodells bestimmt werden, wie vorstehend beschrieben. Die Objektdaten für jedes jeweilige Trainingsbild können Maskendaten beinhalten, die jedem in dem jeweiligen Bild erkannten Objekt zugeordnet sind. Die Zielausgabe kann zudem eine Angabe darüber beinhalten, ob eine Klasse, die jedem in dem jeweiligen Trainingsbild gezeigten Objekt zugeordnet ist, der Zielklasse entspricht, gemäß zuvor beschriebenen Ausführungsformen.
  • Die Verarbeitungseinheiten, die das Verfahren 550 durchführen, können bei Block 554 eine oder mehrere Ausgaben des ersten maschinellen Lernmodells erlangen. Die Verarbeitungseinheiten, die das Verfahren 550 durchführen, können bei Block 556 auf Grundlage einer oder mehrerer erlangter Ausgaben Objektdaten bestimmen, die jedem des Satzes aktueller Bilder zugeordnet sind. In einigen Ausführungsformen können die bestimmten Objektdaten für jedes jeweilige Bild des Satzes aktueller Bilder eine Angabe einer Region des jeweiligen Bilds, die ein in dem jeweiligen Bild erkanntes Objekt beinhaltet, und eine Angabe darüber, ob das erkannte Objekt der Zielklasse entspricht, beinhalten. In einigen Ausführungsformen können die Objektdaten ferner Maskendaten beinhalten, die dem in dem jeweiligen Bild erkannten Objekt zugeordnet sind. In einigen Ausführungsformen können die jedem des Satzes von Bildern zugeordneten Objektdaten bestimmt werden, indem ein oder mehrere Sätze von Objektdaten aus der einen oder den mehreren Ausgaben des ersten maschinellen Lernmodells extrahiert werden. Alle des einen oder der mehreren Sätze von Objektdaten können einem Konfidenzniveau zugeordnet sein, dass die Objektdaten einem in dem jeweiligen Bild erkannten Objekt entsprechen. Die Verarbeitungseinheiten können bestimmen, ob das einem jeweiligen Satz von Objektdaten zugeordnete Konfidenzniveau ein Konfidenzniveaukriterium erfüllt (z. B. einen Konfidenzniveauschwellenwert überschreitet). Als Reaktion auf das Bestimmen, dass das dem jeweiligen Satz von Objektdaten zugeordnete Konfidenzniveau das Konfidenzniveaukriterium erfüllt, können die Verarbeitungseinheiten bestimmen, dass der Satz von Objektdaten dem erkannten Objekt entspricht.
  • 6 veranschaulicht ein Flussdiagramm eines beispielhaften Verfahrens zum Trainieren eines maschinellen Lernmodells und zum Aktualisieren des trainierten maschinellen Lernmodells, um einen Maskenkopf zu entfernen, gemäß mindestens einer Ausführungsform. In einigen Ausführungsformen können eine oder mehrere Operationen des Verfahrens 600 durch eine oder mehrere Komponenten oder ein oder mehrere Module des in dieser Schrift beschriebenen Trainingsdatengenerators 131 und/oder der in dieser Schrift beschriebenen Trainingsengine 141 durchgeführt werden. Verarbeitungseinheiten, die das Verfahren 600 durchführen, können bei Block 610 Trainingsdaten für ein maschinelles Lernmodell generieren.
  • Bei Block 612 können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, eine Trainingseingabe generieren, die ein Bild beinhaltet, das ein Objekt zeigt. Bei Block 614 können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, eine Zielausgabe für die Trainingseingabe generieren. Die Zielausgabe kann einen dem gezeigten Objekt zugeordneten Begrenzungsrahmen, dem gezeigten Objekt zugeordnete Maskendaten und eine Angabe einer dem gezeigten Objekt zugeordneten Klasse beinhalten. In einigen Ausführungsformen können die Verarbeitungseinheiten die Zielausgabe generieren, indem sie das Bild, welches das Objekt zeigt, als Eingabe für ein zusätzliches maschinelles Lernmodell bereitstellen, das trainiert wird, um für ein gegebenes Eingabebild ein oder mehrere Objekte, die in dem gegebenen Eingabebild gezeigt sind, zu erkennen und für jedes des einen oder der mehreren erkannten Objekte mindestens Maskendaten vorherzusagen, die dem jeweiligen erkannten Objekt zugeordnet sind. In einigen Ausführungsformen wird das zusätzliche maschinelle Lernmodell ferner trainiert, um eine Klasse vorherzusagen, die einem jeweiligen erkannten Objekt zugeordnet ist. Die Verarbeitungseinheiten können die Maskendaten (und in einigen Ausführungsformen die Angabe der Klasse), die dem in dem Bild der Trainingseingabe gezeigten Objekt zugeordnet sind, unter Verwendung des zusätzlichen maschinellen Lernmodells erlangen.
  • In zusätzlichen oder alternativen Ausführungsformen können die Verarbeitungseinheiten die Zielausgabe erzeugen, indem sie grundlegende Referenzdaten erlangen, die dem Bild zugeordnet sind. Wie vorstehend beschrieben, können die grundlegenden Referenzdaten einen Begrenzungsrahmen beinhalten, der dem gezeigten Objekt zugeordnet ist, und sie können aus einer Datenbank erlangt werden, die eine Angabe von Begrenzungsrahmen speichert, die Objekten zugeordnet sind, die in einem Satz von Bildern gezeigt sind. Die Angabe der Begrenzungsrahmen kann von einer anerkannten Begrenzungsrahmen-Autorität oder einem Benutzer einer Plattform bereitgestellt werden.
  • Bei Block 616 können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, die Trainingsdaten bereitstellen, um das maschinelle Lernmodell an: (i) einem Satz von Trainingseingaben, welche die generierte Trainingseingabe beinhalten, und (ii) einem Satz von Zielausgaben, welche die generierte Zielausgabe beinhalten, zu trainieren. Bei Block 618 können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, einen oder mehrere Köpfe des trainierten maschinellen Lernmodells identifizieren, die dem Vorhersagen von Maskendaten für ein gegebenes Eingabebild entsprechen. Bei Block 620 können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, das trainierte maschinelle Lernmodell aktualisieren, um den einen oder die mehreren identifizierten Köpfe zu entfernen.
  • In einigen Ausführungsformen können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, oder andere Verarbeitungseinheiten einen Satz von Bildern als Eingabe für das aktualisierte trainierte maschinelle Lernmodell bereitstellen und eine oder mehrere Ausgaben des aktualisierten trainierten maschinellen Lernmodells erlangen. Die Verarbeitungseinheiten können aus der einen oder den mehreren Ausgaben Objektdaten bestimmen, die jedem des Satzes von Bildern zugeordnet sind. Die Objektdaten können eine Angabe einer Region eines jeweiligen Bilds beinhalten, die ein in dem jeweiligen Bild erkanntes Objekt und eine dem erkannten Objekt zugeordnete Klasse beinhaltet. In einigen Ausführungsformen können die Verarbeitungseinheiten, die das Verfahren 600 durchführen, oder andere Verarbeitungseinheiten das aktualisierte trainierte maschinelle Lernmodell über ein Netzwerk an mindestens eine von einer Edge-Vorrichtung oder einer Endpunktvorrichtung übermitteln.
  • INFERENZ- UND TRAININGSLOGIK
  • 7A veranschaulicht Inferenz- und/oder Trainingslogik 715, die verwendet wird, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B bereitgestellt.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung Code- und/oder Datenspeicher 701 beinhalten, um Vorwärts- und/oder Ausgabegewichtungs- und/oder Eingabe-/Ausgabedaten und/oder andere Parameter zu speichern, um Neuronen oder Schichten eines neuronalen Netzes zu konfigurieren, das in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder zum Inferenzieren verwendet wird. In mindestens einer Ausführungsform kann die Trainingslogik 715 den Code- und/oder Datenspeicher 701 beinhalten oder damit gekoppelt sein, um Diagrammcode oder andere Software zu speichern, um die Zeitsteuerung und/oder Reihenfolge zu steuern, mit der Gewichtungs- und/oder andere Parameterinformationen zu laden sind, um die Logik, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten (gemeinsam arithmetisch-logische Einheiten (arithmetic logic units - ALUs)), zu konfigurieren. In mindestens einer Ausführungsform lädt der Code, wie etwa der Diagrammcode, Gewichtungs- oder andere Parameterinformationen auf Grundlage einer Architektur eines neuronalen Netzes, dem der Code entspricht, in die Prozessor-ALUs. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 701 die Gewichtungsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzes, das in Verbindung mit einer oder mehreren Ausführungsformen während der Vorwärtsausbreitung von Eingabe-/Ausgabedaten und/oder Gewichtungsparametern während des Trainings und/oder der Inferenzierung unter Verwendung der Aspekte einer oder mehrerer Ausführungsformen trainiert oder verwendet wird. In mindestens einer Ausführungsform kann ein beliebiger Teil des Code- und/oder Datenspeichers 701 in einem anderen chipinternen oder chipexternen Datenspeicher beinhaltet sein, einschließlich in einem L1-, L2- oder L3-Cache oder einem Systemspeicher eines Prozessors.
  • In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 701 für einen oder mehrere Prozessoren oder andere Hardware-Logikvorrichtungen oder Schaltungen intern oder extern sein. In mindestens einer Ausführungsform kann der Code- und/oder Code- und/oder Datenspeicher 701 ein Cache-Speicher, ein dynamischer zufällig adressierbarer Speicher (dynamic randomly addressable memory - „DRAM“), ein statischer zufällig adressierbarer Speicher (static randomly addressable memory - „SRAM“), ein nicht flüchtiger Speicher (z. B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob der Code- und/oder Code- und/oder Datenspeicher 701 zum Beispiel intern oder extern zu einem Prozessor ist oder aus einem DRAM, einem SRAM, einem Flash oder einer anderen Speicherart besteht, von dem verfügbaren chipinternen Speicher im Vergleich zum verfügbaren chipexternen Speicher, Latenzanforderungen von durchgeführten Trainings- und/oder Inferenzierungsfunktionen, der Batch-Größe von Daten, die beim Inferenzieren und/oder Trainieren eines neuronalen Netzes verwendet werden, oder einer Kombination dieser Faktoren abhängen
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung einen Code- und/oder Datenspeicher 705 beinhalten, um eine Rückwärts- und/oder Ausgabegewichtung und/oder Eingabe-/Ausgabedaten zu speichern, die Neuronen oder Schichten eines neuronalen Netzes entsprechen, das zur Inferenzierung bei den Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder verwendet wird. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 705 Gewichtungsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzes, die in Verbindung mit einer oder mehreren Ausführungsformen trainiert oder verwendet wird, während der Rückwärtspropagierung von Eingabe-/Ausgabedaten und/oder Gewichtungsparametern während des Trainings und/oder der Inferenzierung unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen. In mindestens einer Ausführungsform kann die Trainingslogik 715 einen Code- und/oder Datenspeicher 705 beinhalten oder damit gekoppelt sein, um Diagrammcode oder andere Software zu speichern, um die Zeitsteuerung und/oder Reihenfolge zu steuern, mit der Gewichtungs- und/oder andere Parameterinformationen zu laden sind, um die Logik, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten (gemeinsam arithmetisch-logische Einheiten (ALUs)), zu konfigurieren. In mindestens einer Ausführungsform lädt der Code, wie etwa der Diagrammcode, Gewichtungs- oder andere Parameterinformationen auf Grundlage einer Architektur eines neuronalen Netzes, dem der Code entspricht, in die Prozessor-ALUs. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 705 in einem anderen chipinternen oder chipexternen Datenspeicher beinhaltet sein, einschließlich in einem L1-, L2- oder L3-Cache oder einem Systemspeicher eines Prozessors. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 705 für einen oder mehrere Prozessoren oder andere Hardware-Logikvorrichtungen oder Schaltungen intern oder extern sein. In mindestens einer Ausführungsform kann der Code- und/oder Datenspeicher 705 ein Cache-Speicher, ein DRAM, ein SRAM, ein nicht flüchtiger Speicher (z. B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob der Code- und/oder Datenspeicher 705 zum Beispiel intern oder extern zu einem Prozessor oder aus einem DRAM, einem SRAM, einem Flash oder einer gewissen anderen Speicherart besteht, von dem verfügbaren chipinternen Speicher im Vergleich zum verfügbaren chipexternen Speicher, Latenzanforderungen von durchgeführten Trainings- und/oder Inferenzierungsfunktionen, der Batch-Größe von Daten, die beim Inferenzieren und/oder Trainieren eines neuronalen Netzes verwendet werden, oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701 und der Code- und/oder Datenspeicher 705 getrennte Speicherstrukturen sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701 und der Code- und/oder Datenspeicher 705 die gleiche Speicherstruktur sein. In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701 und der Code- und/oder Datenspeicher 705 teilweise die gleiche Speicherstruktur und teilweise getrennte Speicherstrukturen sein. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 701 und des Code- und/oder Datenspeichers 705 in einem anderen chipinternen oder chipexternen Datenspeicher beinhaltet sein, einschließlich in einem L1-, L2- oder L3-Cache oder einem Systemspeicher eines Prozessors.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung eine oder mehrere arithmetisch-logische Einheit(en) („ALU(s)“) 710 beinhalten, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten, um logische und/oder mathematische Operationen durchzuführen, die mindestens zum Teil auf Trainings- und/oder Inferenzcode (z. B. Diagrammcode) basieren oder dadurch angegeben werden, wobei ein Ergebnis davon Aktivierungen (z. B. Ausgabewerte von Schichten oder Neuronen innerhalb eines neuronalen Netzes) produzieren kann, die in einem Aktivierungsspeicher 720 gespeichert sind und die Funktionen von Eingabe/Ausgabe- und/oder Gewichtungsparameterdaten sind, die in dem Code- und/oder Datenspeicher 701 und/oder dem Code- und/oder Datenspeicher 705 gespeichert sind. In mindestens einer Ausführungsform werden Aktivierungen, die in dem Aktivierungsspeicher 720 gespeichert sind, gemäß algebraischer und/oder matrixbasierter Mathematik generiert, die von der/den ALU(s) 710 als Reaktion auf das Durchführen von Anweisungen oder anderem Code durchgeführt wird, wobei Gewichtungswerte, die in dem Code- und/oder Datenspeicher 705 und/oder dem Code- und/oder Datenspeicher 701 gespeichert sind, zusammen mit anderen Werten, wie etwa systematischen Fehlerwerten, Gradienteninformationen, Dynamikwerten oder anderen Parametern oder Hyperparametern, von denen einer oder alle in dem Code- und/oder Datenspeicher 705 oder dem Code- und/oder Datenspeicher 701 oder einem anderen Speicher auf einem Chip oder außerhalb eines Chips gespeichert sein können, als Operanden verwendet werden.
  • In mindestens einer Ausführungsform ist/sind die ALU(s) 710 in einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen beinhaltet, wohingegen bei einer anderen Ausführungsform die ALU(s) 710 für einen Prozessor oder eine andere Hardware-Logikvorrichtung oder Schaltung, die diese verwendet (z. B. ein Coprozessor), extern sein kann/können. In mindestens einer Ausführungsform können die ALUs 710 in den Ausführungseinheiten eines Prozessors oder ansonsten in einer Bank von ALUs, die für die Ausführungseinheiten eines Prozessors zugänglich ist, entweder in dem gleichen Prozessor oder verteilt auf verschiedene Prozessoren verschiedener Arten (z. B. Zentraleinheiten, Grafikeinheiten, Festfunktionseinheiten usw.) beinhaltet sein. In mindestens einer Ausführungsform können sich der Code- und/oder Datenspeicher 701, der Code- und/oder Datenspeicher 705 und der Aktivierungsspeicher 720 auf dem gleichen Prozessor oder einer anderen Hardware-Logikvorrichtung oder Schaltung befinden, wohingegen sie sich bei einer anderen Ausführungsform in verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen oder einer Kombination von gleichen und verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen befinden können. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Aktivierungsspeichers 720 in einem anderen chipinternen oder chipexternen Datenspeicher beinhaltet sein, einschließlich in einem L1-, L2- oder L3-Cache oder einem Systemspeicher eines Prozessors. Außerdem kann Inferenzierungs- und/oder Trainings-Code mit anderem Code gespeichert sein, der für einen Prozessor oder eine andere Hardware-Logik oder Schaltung zugänglich ist, und kann unter Verwendung von Abruf-, Decodierungs-, Planungs-, Ausführungs-, Rückzugs- und/oder anderen logischen Schaltungen eines Prozessors abgerufen und/oder verarbeitet werden.
  • In mindestens einer Ausführungsform kann der Aktivierungsspeicher 720 ein Cache-Speicher, ein DRAM, ein SRAM, ein nicht flüchtiger Speicher (z. B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann der Aktivierungsspeicher 720 vollständig oder teilweise für einen oder mehrere Prozessoren oder andere logische Schaltungen intern oder extern sein. In mindestens einer Ausführungsform kann die Wahl, ob der Aktivierungsspeicher 720 zum Beispiel intern oder extern zu einem Prozessor ist oder aus einem DRAM, einem SRAM, einem Flash oder einer anderen Speicherart besteht, von dem verfügbaren chipinternen Speicher im Vergleich zum verfügbaren chipexternen Speicher, Latenzanforderungen von durchgeführten Trainings- und/oder Inferenzierungsfunktionen, der Batch-Größe von Daten, die beim Inferenzieren und/oder Trainieren eines neuronalen Netzes verwendet werden, oder einer Kombination dieser Faktoren abhängen. In mindestens einer Ausführungsform kann die in 7A veranschaulichte Inferenz- und/oder Trainingslogik 715 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (application-specific integrated circuit - „ASIC“) verwendet werden, wie etwa der TensorFlow®-Verarbeitungseinheit von Google, einer Inferenzverarbeitungseinheit (inference processing unit - IPU) von Graphcore™ oder einem Nervana®-Prozessor (z. B. „Lake Crest“) der Intel Corp. In mindestens einer Ausführungsform kann die in 7A veranschaulichte Inferenz- und/oder Trainingslogik 715 in Verbindung mit Hardware der zentralen Verarbeitungseinheit (central processing unit - „CPU“), Hardware der Grafikverarbeitungseinheit (graphics processing unit - „GPU“) oder anderer Hardware, wie etwa feldprogrammierbaren Gate-Arrays (field programmable gate arrays - „FPGAs“), verwendet werden.
  • 7B veranschaulicht Inferenz- und/oder Trainingslogik 715 gemäß mindestens einer oder mehreren Ausführungsformen. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung Folgendes beinhalten: Hardwarelogik, bei der Rechenressourcen dediziert oder anderweitig ausschließlich in Verbindung mit Gewichtungswerten oder anderen Informationen verwendet werden, die einer oder mehreren Schichten von Neuronen innerhalb eines neuronalen Netzes entsprechen. In mindestens einer Ausführungsform kann die in 7B veranschaulichte Inferenz- und/oder Trainingslogik 715 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC) verwendet werden, wie etwa der TensorFlow®-Verarbeitungseinheit von Google, einer Inferenzverarbeitungseinheit (IPU) von Graphcore™ oder einem Nervana®-Prozessor (z. B. „Lake Crest“) der Intel Corp. In mindestens einer Ausführungsform kann die in 7B veranschaulichte Inferenz- und/oder Trainingslogik 715 in Verbindung mit Hardware der zentralen Verarbeitungseinheit (CPU), Hardware der Grafikverarbeitungseinheit (GPU) oder anderer Hardware, wie etwa feldprogrammierbaren Gate-Arrays (FPGAs), verwendet werden. In mindestens einer Ausführungsform beinhaltet die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung den Code- und/oder Datenspeicher 701 und den Code- und/oder Datenspeicher 705, die zum Speichern von Code (z. B. Diagrammcode), Gewichtungswerten und/oder anderen Informationen, einschließlich Verzerrungswerten, Gradienteninformationen, Momentwerten und/oder anderer Parameter- oder Hyperparameterinformationen, verwendet werden können. In mindestens einer in 7B veranschaulichten Ausführungsform ist jeder des Code- und/oder Datenspeichers 701 und des Code- und/oder Datenspeichers 705 einer dedizierten Rechenressource, wie etwa der Rechenhardware 702 bzw. der Rechenhardware 706, zugeordnet. In mindestens einer Ausführungsform umfasst jede der Rechenhardware 702 und der Rechenhardware 706 eine oder mehrere ALUs, die mathematische Funktionen, wie etwa lineare algebraische Funktionen, nur an Informationen durchführen, die in dem Code- und/oder Datenspeicher 701 bzw. dem Code- und/oder Datenspeicher 705 gespeichert sind, wobei das Ergebnis davon in dem Aktivierungsspeicher 720 gespeichert wird.
  • In mindestens einer Ausführungsform entspricht jeder von dem Code- und/oder Datenspeicher 701 und 705 und der entsprechenden Rechenhardware 702 und 706 jeweils verschiedenen Schichten eines neuronalen Netzes, so dass die sich ergebende Aktivierung von einem „Speicher/Rechenpaar 701/702“ des Code- und/oder Datenspeichers 701 und der Rechenhardware 702 als Eingabe für das „Speicher/Rechenpaar 705/706“ des Code- und/oder Datenspeichers 705 und der Rechenhardware 706 bereitgestellt wird, um die konzeptuelle Organisation eines neuronalen Netzes zu spiegeln. In mindestens einer Ausführungsform kann jedes der Speicher/Rechenpaare 701/702 und 705/706 mehr als einer Schicht eines neuronalen Netzes entsprechen. In mindestens einer Ausführungsform können zusätzliche Speicher/Rechenpaare (nicht gezeigt) nach oder parallel zu den Speicher/Rechenpaaren 701/702 und 705/706 in der Inferenz- und/oder Trainingslogik 715 beinhaltet sein.
  • RECHENZENTRUM
  • 8 veranschaulicht ein beispielhaftes Rechenzentrum 800, in dem mindestens eine Ausführungsform verwendet werden kann. In mindestens einer Ausführungsform beinhaltet das Rechenzentrum 800 eine Rechenzentrum-Infrastrukturschicht 810, eine Framework-Schicht 820, eine Software-Schicht 830 und eine Anwendungsschicht 840.
  • In mindestens einer Ausführungsform kann, wie in 8 gezeigt, die Rechenzentrum-Infrastrukturschicht 810 einen Ressourcenkoordinator 812, gruppierte Rechenressourcen 814 und Knotenrechenressourcen („node computing recources“ - „Knoten-CR“) 816(1) bis 816(N) beinhalten, wobei „N“ eine beliebige positive Ganzzahl ist. In mindestens einer Ausführungsform können die Knoten-CRs 816(1)-816(N) eine beliebige Anzahl von Zentralverarbeitungseinheiten („CPUs“) oder andere Prozessoren (einschließlich Beschleunigern, feldprogrammierbaren Gate-Arrays (FPGAs), Grafikprozessoren usw.), Arbeitsspeichervorrichtungen (z. B. dynamischer Nur-Lese-Speicher), Datenspeichervorrichtungen (z. B. Festkörper- oder Festplattenlaufwerke), Netzwerk-Ein/Ausgabe(„NW-E/A“)-Vorrichtungen, Netzwerk-Switches, virtuelle Maschinen („VMs“), Leistungsmodule und Kühlmodule usw. beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform können eine oder mehrere Knoten-CRs von den Knoten-CRs 816(1)-816(N) ein Server sein, der eine oder mehrere der vorstehend erwähnten Computerressourcen aufweist.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 814 getrennte Gruppierungen von Knoten-CRs, die in einem oder mehreren Rahmen (nicht gezeigt) untergebracht sind, oder viele Rahmen, die in Datenzentren an diversen geografischen Standorten (ebenfalls nicht gezeigt) untergebracht sind, beinhalten. Getrennte Gruppierungen von Knoten-CRs innerhalb von gruppierten Rechenressourcen 814 können gruppierte Rechen-, Netzwerk-, Speicher- oder Speicherungsressourcen beinhalten, die konfiguriert oder zugeteilt werden können, um eine oder mehrere Arbeitsbelastungen zu unterstützen. In mindestens einer Ausführungsform können mehrere Knoten-CRs, die CPUs oder Prozessoren beinhalten, innerhalb eines oder mehrerer Rahmen gruppiert sein, um Rechenressourcen bereitzustellen, um eine oder mehrere Arbeitsbelastungen zu unterstützen. In mindestens einer Ausführungsform können ein oder mehrere Rahmen auch eine beliebige Anzahl von Leistungsmodulen, Kühlmodulen und Netzwerk-Switches in einer beliebigen Kombination beinhalten.
  • In mindestens einer Ausführungsform kann der Ressourcenkoordinator 812 eine oder mehrere Knoten-CRs 816(1) bis 816(N) und/oder gruppierte Rechenressourcen 814 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcenkoordinator 812 eine Verwaltungseinheit einer Software-Design-Infrastruktur („SDP“) für das Rechenzentrum 800 beinhalten. In mindestens einer Ausführungsform kann der Ressourcenkoordinator Hardware, Software oder eine gewisse Kombination davon beinhalten.
  • In mindestens einer Ausführungsform, wie in 8 gezeigt, beinhaltet die Framework-Schicht 820 einen Aufgabenplaner 822, einen Konfigurationsmanager 824, einen Ressourcenmanager 826 und ein verteiltes Dateisystem 828. In mindestens einer Ausführungsform kann die Framework-Schicht 820 ein Framework beinhalten, um Software 832 der Software-Schicht 830 und/oder eine oder mehrere Anwendungen 842 der Anwendungsschicht 840 zu unterstützen. In mindestens einer Ausführungsform können die Software 832 oder die Anwendung(en) 842 jeweils Web-basierte Dienst-Software oder Anwendungen beinhalten, wie etwa solche, die von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. In mindestens einer Ausführungsform kann die Framework-Schicht 820 ohne Einschränkung eine Art von Web-Anwendungs-Framework für kostenlose und Open-Source-Software sein, wie etwa Apache Spark™ (nachstehend „Spark“), welches das verteilte Dateisystem 828 für groß angelegte Datenverarbeitung (z. B. „Big Data“) verwenden kann. In mindestens einer Ausführungsform kann der Aufgabenplaner 822 einen Spark-Treiber beinhalten, um das Einplanen von Arbeitsbelastungen zu erleichtern, die von diversen Schichten des Rechenzentrums 800 unterstützt werden. In mindestens einer Ausführungsform kann der Konfigurationsmanager 824 in der Lage sein, verschiedene Schichten, wie etwa die Software-Schicht 830 und die Framework-Schicht 820, einschließlich Spark und des verteilten Dateisystems 828, zu konfigurieren, um eine groß angelegte Datenverarbeitung zu unterstützen. In mindestens einer Ausführungsform kann der Ressourcenmanager 826 in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die zugeordnet oder zugeteilt sind, um das verteilte Dateisystem 828 und den Aufgabenplaner 822 zu unterstützen. In mindestens einer Ausführungsform können die geclusterten oder gruppierten Rechenressourcen eine gruppierte Rechenressource 814 auf der Rechenzentrum-Infrastrukturschicht 810 beinhalten. In mindestens einer Ausführungsform kann der Ressourcenmanager 826 mit dem Ressourcenkoordinator 812 koordinieren, um diese zugeordneten oder zugeteilten Rechenressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die Software 832, die in der Software-Schicht 830 beinhaltet ist, Software beinhalten, die mindestens von Teilen von Knoten-CRs 816(1) bis 816(N), gruppierten Rechenressourcen 814 und/oder dem verteilten Dateisystem 828 der Framework-Schicht 820 verwendet wird. Die eine oder die mehreren Arten von Software können ohne Einschränkung Internet-Web-Seitensuch-Software, E-Mail-Virus-Scan-Software, Datenbank-Software und Software zum Streamen von Videoinhalten beinhalten.
  • In mindestens einer Ausführungsform kann/können die Anwendung(en) 842, die in der Anwendungsschicht 840 beinhaltet ist/sind, eine oder mehrere Arten von Anwendungen beinhalten, die mindestens von Teilen von Knoten-CRs 816(1) bis 816(N), gruppierten Rechenressourcen 814 und/oder dem verteilten Dateisystem 828 der Framework-Schicht 820 verwendet werden. Eine oder mehrere Arten von Anwendungen können ohne Einschränkung eine beliebige Anzahl von Genomikanwendungen, eine kognitive Rechenanwendung und eine maschinelle Lemanwendung beinhalten, die Trainings- oder Inferenzierungs-Software, Framework-Software des maschinellen Lernens (z. B. PyTorch, TensorFlow, Caffe usw.) oder andere maschinelle Lernanwendungen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden, beinhalten.
  • In mindestens einer Ausführungsform kann einer von dem Konfigurationsmanager 824, dem Ressourcenmanager 826 und dem Ressourcenkoordinator 812 eine beliebige Anzahl und Art von selbständernden Aktionen auf Grundlage eines beliebigen Betrags und einer beliebigen Art von Daten, die auf beliebige technisch machbare Art und Weise erfasst werden, implementieren. In mindestens einer Ausführungsform können die selbständernden Aktionen es einem Rechenzentrumsbediener des Rechenzentrums 800 ersparen, möglicherweise schlechte Konfigurationsentscheidungen zu treffen, und möglicherweise unterbenutzte und/oder schlecht funktionierende Teile eines Rechenzentrums vermeiden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum 800 Tools, Dienste, Software oder andere Ressourcen beinhalten, um ein oder mehrere maschinelle Lernmodelle zu trainieren, oder um Informationen unter Verwendung eines oder mehrerer maschineller Lernmodelle gemäß einer oder mehrerer in dieser Schrift beschriebener Ausführungsformen vorherzusagen oder zu inferenzieren. Beispielsweise kann bei mindestens einer Ausführungsform ein maschinelles Lernmodell trainiert werden, indem Gewichtungsparameter gemäß einer neuronalen Netzarchitektur unter Verwendung von zuvor in Bezug auf das Rechenzentrum 800 beschriebenen Software- und Rechenressourcen berechnet werden. In mindestens einer Ausführungsform können trainierte maschinelle Lernmodelle, die einem oder mehreren neuronalen Netzen entsprechen, verwendet werden, um unter Verwendung von zuvor in Bezug auf das Rechenzentrum 800 beschriebenen Ressourcen unter Verwendung von Gewichtungsparametern, die mit einer oder mehreren in dieser Schrift beschriebenen Trainingstechniken berechnet wurden, Informationen zu inferenzieren oder vorherzusagen.
  • In mindestens einer Ausführungsform kann das Rechenzentrum CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um das Trainieren und/oder Inferenzieren unter Verwendung der zuvor beschriebenen Ressourcen vorzunehmen. Darüber hinaus können eine oder mehrere der vorstehend beschriebenen Software- und/oder Hardware-Ressourcen als Dienst konfiguriert sein, um Benutzern das Trainieren oder Durchführen der Inferenzierung von Informationen zu ermöglichen, wie z. B. Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 in dem System aus 8 für Inferenzierungs- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern, die unter Verwendung von in dieser Schrift beschriebenen Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder Verwendungsfällen von neuronalen Netzen berechnet werden, verwendet werden.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • COMPUTERSYSTEME
  • 9 ist ein Blockdiagramm, das ein beispielhaftes Computersystem veranschaulicht, das ein System 900 mit zusammengeschalteten Vorrichtungen und Komponenten, ein System-auf-einem-Chip (SOC) oder eine gewisse Kombination davon sein kann und mit einem Prozessor gebildet ist, der Ausführungseinheiten beinhalten kann, um eine Anweisung auszuführen, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 900 ohne Einschränkung eine Komponente, wie etwa einen Prozessor 902 beinhalten, um Ausführungseinheiten einzusetzen, die eine Logik beinhalten, um Algorithmen für Prozessdaten durchzuführen, gemäß der vorliegenden Offenbarung, wie etwa in der in dieser Schrift beschriebenen Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 900 Prozessoren beinhalten, wie etwa die PENTIUM®-Prozessorfamilie, Mikroprozessoren von Xeon™, Itanium®, XScale™ und/oder StrongARM™, Intel® Core™ oder Intel® Nervana™, die von der Intel Corporation of Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (die PCs mit anderen Mikroprozessoren, Engineering-Workstations, Set-Top-Boxen und dergleichen beinhalten) verwendet werden können. In mindestens einer Ausführungsform kann das Computersystem 900 eine Version des Betriebssystems WINDOWS ausführen, das bei Microsoft Corporation aus Redmond, Wash., erhältlich ist, obwohl andere Betriebssysteme (beispielsweise UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen ebenfalls verwendet werden können.
  • Die Ausführungsformen können auf anderen Vorrichtungen, wie etwa auf Handheld-Vorrichtungen und eingebetteten Anwendungen, verwendet werden. Einige Beispiele für tragbare Einrichtungen weisen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten („PDAs“) und Handheld-PCs auf. In mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen digitalen Signalprozessor („DSP“), ein System auf einem Chip, Netzwerkcomputer („NetPCs“), Set-Top-Boxen, Netzwerkknoten, Weitverkehrsnetzwerk(„WAN“)-Switches oder ein beliebiges anderes System, das eine oder mehrere Anweisungen durchführen kann, gemäß mindestens einer Ausführungsform beinhalten.
  • In mindestens einer Ausführungsform kann das Computersystem 900 ohne Einschränkung einen Prozessor 902 beinhalten, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 908 beinhalten kann, um Trainieren und/oder Inferenzieren eines maschinellen Lernmodells gemäß den in dieser Schrift beschriebenen Techniken durchzuführen. In mindestens einer Ausführungsform ist das Computersystem 900 ein Einzelprozessor-Desktop- oder Serversystem, doch bei einer anderen Ausführungsform kann das Computersystem 900 ein Mehrprozessorsystem sein. In mindestens einer Ausführungsform kann der Prozessor 902 ohne Einschränkung einen Complex-Instruction-Set Computer(„CISC“)-Mikroprozessor, einen Reduced-Instruction-Set-Computing(„RISC“)-Mikroprozessor, einen Very-Long-Instruction-Word(„VLIW“)-Mikroprozessor, einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie etwa zum Beispiel einen digitalen Signalprozessor, beinhalten. In mindestens einer Ausführungsform kann der Prozessor 902 mit einem Prozessorbus 910 gekoppelt sein, der Datensignale zwischen dem Prozessor 902 und anderen Komponenten in dem Computersystem 900 übertragen kann.
  • In mindestens einer Ausführungsform kann der Prozessor 902 ohne Einschränkung einen internen Level-1(„L1“)-Cache-Speicher („Cache“) 904 beinhalten. In mindestens einer Ausführungsform kann der Prozessor 902 einen einzigen internen Cache oder mehrere Ebenen von internem Cache umfassen. In mindestens einer Ausführungsform kann sich der Cache-Speicher außerhalb des Prozessors 902 befinden. Andere Ausführungsformen können auch eine Kombination von sowohl internen als auch externen Caches beinhalten, je nach der bestimmten Implementierung und den Anforderungen. In mindestens einer Ausführungsform kann die Registerdatei 906 verschiedene Arten von Daten in diversen Registern speichern, wozu ohne Einschränkung Ganzzahlregister, Gleitkommaregister, Statusregister und Anweisungszeigerregister gehören.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 908, die ohne Einschränkung eine Logik beinhaltet, um Ganzzahl- und Gleitkomma-Operationen durchzuführen, ebenfalls in dem Prozessor 902. In mindestens einer Ausführungsform kann der Prozessor 902 auch einen Mikrocode(„uCode“)-Festwertspeicher (read only memory - „ROM‟) beinhalten, der Mikrocode für gewisse Makroanweisungen speichert. In mindestens einer Ausführungsform kann die Ausführungseinheit 908 eine Logik beinhalten, um einen komprimierten Anweisungssatz 909 zu handhaben. In mindestens einer Ausführungsform können durch das Einbeziehen eines komprimierten Anweisungssatzes 909 in einen Anweisungssatz eines universellen Prozessors 902, zusammen mit zugeordneten Schaltungen, um Anweisungen auszuführen, Operationen, die von zahlreichen Multimedia-Anwendungen verwendet werden, unter Verwendung komprimierter Daten in einem universellen Prozessor 902 ausgeführt werden. In einer oder mehreren Ausführungsformen können zahlreiche Multimedia-Anwendungen beschleunigt und effizienter ausgeführt werden, indem die ganze Breite eines Datenbusses des Prozessors verwendet wird, um Operationen an komprimierten Daten durchzuführen, wodurch es vielleicht nicht notwendig ist, kleinere Dateneinheiten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen mit nur einem Datenelement auf einmal durchzuführen.
  • In mindestens einer Ausführungsform kann die Ausführungseinheit 908 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und andersartigen logischen Schaltungen verwendet werden. In mindestens einer Ausführungsform kann das Computersystem 900 ohne Einschränkung einen Speicher 920 beinhalten. In mindestens einer Ausführungsform kann der Speicher 920 als eine dynamische Direkzugriffsspeicher(dynamic random access Memory - „DRAM“)-Vorrichtung, eine statische Direktzugriffsspeicher(static random access memory „SRAM‟)-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung implementiert sein. In mindestens einer Ausführungsform kann der Speicher 920 (eine) Anweisung(en) 919 und/oder Daten 921 speichern, die durch Datensignale dargestellt werden, die von dem Prozessor 902 ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein Systemlogik-Chip mit dem Prozessorbus 910 und dem Speicher 920 gekoppelt sein. In mindestens einer Ausführungsform kann der Systemlogik-Chip ohne Einschränkung einen Speicher-Controller-Knoten (memory controller hub - „MCH“) 916 beinhalten, und der Prozessor 902 kann mit dem MCH 916 über den Prozessorbus 910 kommunizieren. In mindestens einer Ausführungsform kann der MCH 916 einen Speicherpfad mit hoher Bandbreite 918 für den Speicher 920 zur Speicherung von Anweisungen und Daten und zur Speicherung von Grafikbefehlen, Daten und Texturen bereitstellen. In mindestens einer Ausführungsform kann der MCH 916 Datensignale zwischen dem Prozessor 902, dem Speicher 920 und anderen Komponenten in dem Computersystem 900 leiten und Datensignale zwischen dem Prozessorbus 910, dem Speicher 920 und einem System-E/A 922 überbrücken. In mindestens einer Ausführungsform kann der Systemlogik-Chip einen Grafikanschluss zum Koppeln mit einem Grafik-Controller bereitstellen. In mindestens einer Ausführungsform kann der MCH 916 über einen Speicherpfad mit hoher Bandbreite 918 mit dem Speicher 920 gekoppelt sein und kann eine Grafik-/Videokarte 912 über eine Accelerated-Graphics-Port(„AGP“)-Zusammenschaltung 914 mit dem MCH 916 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 900 den System-E/A 922, der ein proprietärer Knotenschnittstellenbus ist, verwenden, um den MCH 916 mit dem E/A-Controller-Knoten („ICH“) 930 zu koppeln. In mindestens einer Ausführungsform kann der ICH 930 direkte Verbindungen zu einigen E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellen. In mindestens einer Ausführungsform kann der lokale E/A-Bus ohne Einschränkung einen schnellen E/A-Bus zum Verbinden von Peripheriegeräten an den Speicher 920, den Chipsatz und den Prozessor 902 beinhalten. Beispiele können ohne Einschränkung einen Audio-Controller 929, einen Firmware-Knoten („Flash-BIOS“) 928, einen drahtlosen Transceiver 926, eine Datenspeichervorrichtung 924, einen Legacy-E/A-Controller 923, der Benutzereingabe- und Tastaturschnittstellen 925 enthält, einen seriellen Erweiterungsanschluss 927, wie etwa einen universellen seriellen Bus („USB“), und einen Netzwerk-Controller 934 beinhalten. Der Datenspeicher 924 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • In mindestens einer Ausführungsform veranschaulicht 9 ein System, das zusammengeschaltete Hardwarevorrichtungen oder „Chips“ beinhaltet, während in anderen Ausführungsformen 9 ein beispielhaftes System auf einem Chip (System on a Chip - „SoC“) veranschaulichen kann. In mindestens einer Ausführungsform können die Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z. B. PCIe) oder einer Kombination davon zusammengeschaltet sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Computersystems 900 unter Verwendung von Compute-Express-Link(CXL)-Zusammenschaltungen zusammengeschaltet.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 in dem System aus 9 für Inferenzierungs- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern, die unter Verwendung von in dieser Schrift beschriebenen Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder Verwendungsfällen von neuronalen Netzen berechnet werden, verwendet werden.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • 10 ist ein Blockdiagramm, das eine elektronische Vorrichtung 1000 zur Nutzung eines Prozessors 1010 gemäß mindestens einer Ausführungsform veranschaulicht. In mindestens einer Ausführungsform kann die elektronische Vorrichtung 1000 beispielsweise und ohne Einschränkung ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop, ein Tablet, eine mobile Vorrichtung, ein Telefon, ein eingebetteter Computer oder eine beliebige andere geeignete elektronische Vorrichtung sein.
  • In mindestens einer Ausführungsform kann das System 1000 ohne Einschränkung den Prozessor 1010 beinhalten, der mit einer beliebigen Anzahl oder einen beliebigen Art von Komponenten, Peripheriegeräten, Modulen oder Vorrichtungen kommunikativ gekoppelt ist. In mindestens einer Ausführungsform ist der Prozessor 1010 unter Verwendung eines Busses oder einer Schnittstelle, wie etwa eines 1°C-Busses, eines System-Management-Busses („SMBus“), eines Low-Pin-Count(LPC)-Busses, einer seriellen Peripherieschnittstelle („SPI“), eines High-Definition-Audio(„HDA“)-Busses, eines Serial-Advance-Technology-Attachment(„SATA“)-Busses, eines universellen seriellen Busses („USB“) (Version 1, 2, 3) oder eines Universal-Asynchronous-Receiver/Transmitter(„UART“)-Busses gekoppelt. In mindestens einer Ausführungsform veranschaulicht 10 ein System, das zusammengeschaltete HardwareVorrichtungen bzw. „Chips“ beinhaltet, wohingegen in anderen Ausführungsformen 10 ein beispielhaftes System auf einem Chip („SoC“) veranschaulichen kann. In mindestens einer Ausführungsform können die in 10 veranschaulichten Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z. B. PCIe) oder einer gewissen Kombination davon zusammengeschaltet sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten aus 10 unter Verwendung von Compute-Express-Link(CXL)-Zusammenschaltungen zusammengeschaltet.
  • In mindestens einer Ausführungsform kann 10 eine Anzeige 1024, einen Berührungsbildschirm 1025, ein Touchpad 1030, eine Nahfeld-Kommunikationseinheit (near field communications unit- „NFC“) 1045, einen Sensorknoten 1040, einen Wärmesensor 1046, einen Express-Chipsatz („EC“) 1035, ein sicheres Plattformmodul (trusted platform module„TPM“) 1038, einen BIOS/Firmware/Flash-Speicher („BIOS, FW-Flash“) 1022, einen DSP 1060, ein Laufwerk 1020, wie etwa ein Solid-State-Laufwerk (solid state drive - „SSD“) oder ein Festplattenlaufwerk (hard disk drive - „HDD“), eine drahtlose lokale Netzwerkeinheit (wireless local area network - „WLAN“) 1050, eine Bluetooth-Einheit 1052, eine drahtlose Weitverkehrsnetzwerkeinheit (wireless wide area network - „WWAN“) 1056, ein globales Positionsbestimmungssystem (global positioning system - GPS) 1055, eine Kamera („USB 3.0-Kamera“) 1054, wie etwa eine USB 3.0-Kamera und/oder eine Low-Power-Double-Data-Rate(„LPDDR“)-Speichereinheit („LPDDR3“) 1015, die zum Beispiel in einem LPDDR3-Standard implementiert ist, beinhalten. Diese Komponenten können jeweils auf geeignete Art und Weise implementiert werden.
  • In mindestens einer Ausführungsform können andere Komponenten mit dem Prozessor 1010 über zuvor besprochene Komponenten kommunikativ gekoppelt sein. In mindestens einer Ausführungsform können ein Beschleunigungsmesser 1041, ein Umgebungslichtsensor („ALS“) 1042, ein Kompass 1043 und ein Gyroskop 1044 mit dem Sensorknoten 1040 kommunikativ gekoppelt sein. In mindestens einer Ausführungsform können ein Wärmesensor 1039, ein Lüfter 1037, eine Tastatur 1046 und ein Touchpad 1030 mit dem EC 1035 kommunikativ gekoppelt sein. In mindestens einer Ausführungsform können ein Lautsprecher 1063, ein Kopfhörer 1064 und ein Mikrofon („Mic“) 1065 mit einer Audioeinheit („Audio-Codec und Verstärker der Klasse D“) 1062 kommunikativ gekoppelt sein, die wiederum mit dem DSP 1060 kommunikativ gekoppelt sein können. In mindestens einer Ausführungsform kann die Audioeinheit 1064 beispielsweise und ohne Einschränkung einen Audiocodierer/-decodierer („Codec“) und einen Verstärker der Klasse D beinhalten. In mindestens einer Ausführungsform kann eine SIM-Karte („SIM“) 1057 mit der WWAN-Einheit 1056 kommunikativ gekoppelt sein. In mindestens einer Ausführungsform können Komponenten, wie etwa die WLAN-Einheit 1050 und die Bluetooth-Einheit 1052, sowie die WWAN-Einheit 1056 in einem Formfaktor der nächsten Generation (next generation form factor - „NGFF“) implementiert sein.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 in dem System aus 10 für Inferenzierungs- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern, die unter Verwendung von in dieser Schrift beschriebenen Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder Verwendungsfällen von neuronalen Netzen berechnet werden, verwendet werden.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • 11 ist ein Blockdiagramm eines Verarbeitungssystems gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform beinhaltet das System 1100 einen oder mehrere Prozessoren 1102 und einen oder mehrere Grafikprozessoren 1108 und kann ein Einzelprozessor-Desktopsystem, ein Mehrprozessor-Arbeitsstationssystem oder ein Serversystem, das eine große Anzahl von Prozessoren 1102 oder Prozessorkernen 1107 aufweist, sein. In mindestens einer Ausführungsform ist das System 1100 eine Verarbeitungsplattform, die in einer integrierten Schaltung eines Systems auf einem Chip (SoC) zur Verwendung in mobilen, handgehaltenen oder eingebetteten Vorrichtungen integriert ist.
  • In mindestens einer Ausführungsform kann das System 1100 eine serverbasierte Gaming-Plattform, eine Spielkonsole, einschließlich einer Spiel- und Medienkonsole, eine mobilen Gaming-Konsole, eine Handheld-Spielkonsole oder eine Online-Spielkonsole beinhalten oder darin integriert sein. In mindestens einer Ausführungsform ist das System 1100 ein Mobiltelefon, ein Smartphone, eine Tablet-Rechenvorrichtung oder eine mobile Internet-Vorrichtung. In mindestens einer Ausführungsform kann das Verarbeitungssystem 1100 auch eine tragbare Vorrichtung, wie etwa eine tragbare Smart-Watch-Vorrichtung, eine Smart-Eyeware-Vorrichtung, eine Augmented-Reality-Vorrichtung oder einer Virtual-Reality-Vorrichtung beinhalten, mit dieser gekoppelt oder in diese integriert sein. In mindestens einer Ausführungsform ist das Verarbeitungssystem 1100 eine Fernseh- oder Set-Top-Box-Vorrichtung, die einen oder mehrere Prozessoren 1102 und eine grafische Oberfläche, die von einem oder mehreren Grafikprozessoren 1108 generiert wird, umfasst.
  • In mindestens einer Ausführungsform beinhalten ein oder mehrere Prozessoren 1102 jeweils einen oder mehrere Prozessorkerne 1107, um Anweisungen zu verarbeiten, die bei ihrer Ausführung Operationen für System- und Benutzer-Software durchführen. In mindestens einer Ausführungsform ist jeder von einem oder mehreren Prozessorkernen 1107 konfiguriert, um einen spezifischen Anweisungssatz 1109 auszuführen. In mindestens einer Ausführungsform kann der Anweisungssatz 1109 Complex Instruction Set Computing (CISC), Reduced Instruction Set Computing (RISC) oder Rechnen über ein Very Long Instruction Word (VLIW) ermöglichen. In mindestens einer Ausführungsform können die Prozessorkerne 1107 jeweils einen anderen Anweisungssatz 1109 verarbeiten, der Anweisungen beinhalten kann, um die Emulation von anderen Anweisungssätzen zu ermöglichen. In mindestens einer Ausführungsform kann der Prozessorkern 1107 auch andere Verarbeitungsvorrichtungen, wie etwa einen digitalen Signalprozessor (DSP), beinhalten.
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 1102 einen Cache-Speicher 1104. In mindestens einer Ausführungsform kann der Prozessor 1102 einen einzigen internen Cache oder mehrere Ebenen von internem Cache aufweisen. In mindestens einer Ausführungsform wird der Cache-Speicher von diversen Komponenten des Prozessors 1102 gemeinsam genutzt. In mindestens einer Ausführungsform verwendet der Prozessor 1102 auch einen externen Cache (z. B. einen Level-3(L3)-Cache oder Last-Level-Cache (LLC)) (nicht gezeigt), die von den Prozessorkernen 1107 unter Verwendung von bekannten Cache-Kohärenztechniken gemeinsam genutzt werden können. In mindestens einer Ausführungsform ist die Registerdatei 1106 zusätzlich in dem Prozessor 1102 beinhaltet, der verschiedene Arten von Registern zum Speichern verschiedener Arten von Daten (z. B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Anweisungszeigerregister) beinhalten kann. In mindestens einer Ausführungsform kann die Registerdatei 1106 universelle Register oder andere Register beinhalten.
  • In mindestens einer Ausführungsform sind ein oder mehrere Prozessoren 1102 mit einem oder mehreren Schnittstellenbussen 1110 gekoppelt, um Kommunikationssignale, wie etwa Adressen-, Daten- oder Steuersignale, zwischen dem Prozessor 1102 und anderen Komponenten in dem System 1100 zu übermitteln. In mindestens einer Ausführungsform kann der Schnittstellenbus 1110 bei einer Ausführungsform ein Prozessorbus sein, wie etwa eine Version eines Direct-Media-Interface(DMI)-Busses. In mindestens einer Ausführungsform ist die Schnittstelle 1110 nicht auf einen DMI-Bus eingeschränkt und kann eine oder mehrere Peripheriekomponenten-Zusammenschaltungsbusse (z. B. PCI, PCI Express), Speicherbusse oder andersartige Schnittstellenbusse beinhalten. In mindestens einer Ausführungsform beinhalten der oder die Prozessoren 1102 einen integrierten Speicher-Controller 1116 und einen Plattform-Controller-Knoten 1130. In mindestens einer Ausführungsform ermöglicht der Speicher-Controller 1116 eine Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 1100, während der Plattform-Controller-Knoten (platform controller hub - PCH) 1130 Verbindungen mit E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellt.
  • In mindestens einer Ausführungsform kann die Speichervorrichtung 1120 eine dynamische Direktzugriffsspeicher(DRAM)-Vorrichtung, eine statische Direktzugriffsspeicher(SRAM)-Vorrichtung, eine Flash-Speichervorrichtung, eine Phasenänderungs-Speichervorrichtung oder eine gewisse andere Speichervorrichtung sein, die eine geeignete Leistung aufweist, um als Prozessspeicher zu dienen. In mindestens einer Ausführungsform kann die Speichervorrichtung 1120 als Systemspeicher für das System 1100 dienen, um Daten 1122 und Anweisungen 1121 zur Verwendung zu speichern, wenn einer oder mehrere Prozessoren 1102 eine Anwendung oder einen Prozess durchführen. In mindestens einer Ausführungsform ist der Speicher-Controller 1116 auch mit einem optionalen externen Grafikprozessor 1112 gekoppelt, der mit einem oder mehreren Grafikprozessoren 1108 in den Prozessoren 1102 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen. In mindestens einer Ausführungsform kann eine Anzeigevorrichtung 1111 an den oder die Prozessoren 1102 angeschlossen sein. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 1111 eine oder mehrere von einer internen Anzeigevorrichtung, wie etwa in einer mobilen elektronischen Vorrichtung oder einer Laptop-Vorrichtung, oder einer externen Anzeigevorrichtung, die über eine Anzeigeschnittstelle (z. B. DisplayPort usw.) angebunden ist, beinhalten. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 1111 eine am Kopf befestigte Anzeigevorrichtung (head mounted display - FIMD), wie etwa eine stereoskopische Anzeigevorrichtung zur Verwendung bei Virtual-Reality(VR)-Anwendungen oder Augmented-Reality(AR)-Anwendungen, beinhalten.
  • In mindestens einer Ausführungsform ermöglicht es der Plattform-Controller-Knoten 1130 Peripheriegeräten, sich über einen schnellen E/A-Bus mit der Speichervorrichtung 1120 und dem Prozessor 1102 zu verbinden. In mindestens einer Ausführungsform beinhalten die E/A-Peripheriegeräte ohne Einschränkung einen Audio-Controller 1146, einen Netzwerk-Controller 1134, eine Firmware-Schnittstelle 1128, einen drahtlosen Transceiver 1126, Berührungssensoren 1125, eine Datenspeichervorrichtung 1124 (z. B. ein Festplattenlaufwerk, einen Flash-Speicher usw.). In mindestens einer Ausführungsform kann die Datenspeichervorrichtung 1124 über eine Speicherungsschnittstelle (z. B. SATA) oder über einen Peripheriebus, wie etwa einen Peripheriekomponenten-Zusammenschaltungsbus (z. B. PCI, PCI Express), angeschlossen sein. In mindestens einer Ausführungsform können die Berührungssensoren 1125 Berührungsbildschirmsensoren, Drucksensoren oder Fingerabdrucksensoren beinhalten. In mindestens einer Ausführungsform kann der drahtlose Transceiver 1126 ein WiFi-Transceiver, ein Bluetooth-Transceiver oder ein mobiler Netzwerk-Transceiver, wie etwa ein 3G-, 4G- oder Long-Term-Evolution(LTE)-Transceiver, sein. In mindestens einer Ausführungsform ermöglicht die Firmware-Schnittstelle 1128 die Kommunikation mit der System-Firmware, und kann beispielsweise eine vereinheitlichte erweiterbare Firmware-Schnittstelle (UEFI) sein. In mindestens einer Ausführungsform kann der Netzwerk-Controller 1134 eine Netzwerkverbindung mit einem drahtgebundenen Netzwerk ermöglichen. In mindestens einer Ausführungsform ist ein Hochleistungs-Netzwerk-Controller (nicht gezeigt) mit dem Schnittstellenbus 1110 gekoppelt. In mindestens einer Ausführungsform ist der Audio-Controller 1146 ein Mehrkanal-Hochdefinitions-Audio-Controller. In mindestens einer Ausführungsform beinhaltet das System 1100 einen optionalen Legacy-E/A-Controller 1140 zum Koppeln von Legacy-Vorrichtungen (z. B. Personal-System-2(PS/2)-Vorrichtungen) mit dem System. In mindestens einer Ausführungsform kann der Plattform-Controller-Knoten 1130 auch mit einem oder mehreren universellen seriellen Bus(USB)-Controllern 1142, Verbindungseingabevorrichtungen, wie etwa Tastatur- und Maus- 1143 Kombinationen, einer Kamera 1144 oder anderen USB-Eingabevorrichtungen, verbunden sein.
  • In mindestens einer Ausführungsform kann eine Instanz des Speicher-Controllers 1116 und des Plattform-Controller-Knotens 1130 in einen diskreten externen Grafikprozessor, wie etwa einen externen Grafikprozessor 1112, integriert sein. In mindestens einer Ausführungsform können der Plattform-Controller-Knoten 1130 und/oder Speicher-Controller 1116 zu dem einen oder den mehreren Prozessoren 1102 extern sein. Beispielsweise kann bei mindestens einer Ausführungsform das System 1100 einen externen Speicher-Controller 1116 und einen Plattform-Controller-Knoten 1130 beinhalten, die als Speicher-Controller-Knoten und Peripherie-Controller-Knoten innerhalb eines System-Chipsatzes, der mit dem oder den Prozessoren 1102 kommuniziert, konfiguriert sein können.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 715 in den Grafikprozessor 1500 integriert sein. Zum Beispiel bei mindestens einer Ausführungsform können die in dieser Schrift beschriebenen Trainings- und/oder Inferenzierungstechniken eine oder mehrere der ALUs verwenden, die in einem Grafikprozessor ausgebildet sind. Des Weiteren können in mindestens einer Ausführungsform die in dieser Schrift beschriebenen Inferenzierungs- und/oder Trainingsoperationen unter Verwendung einer anderen Logik als der in 7A oder 7B veranschaulichten Logik vorgenommen werden. In mindestens einer Ausführungsform können die Gewichtungsparameter in einem chipinternen oder chipexternen Speicher und/oder chipinternen oder chipexternen Registern (gezeigt oder nicht gezeigt) gespeichert werden, welche die ALUs eines Grafikprozessors konfigurieren, um einen oder mehrere in dieser Schrift beschriebene maschinelle Lernalgorithmen, Architekturen, Verwendungsfälle oder Trainingstechniken von neuronalen Netzen durchzuführen.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • 12 ist ein Blockdiagramm eines Prozessors 1200, der einen oder mehrere Prozessorkerne 1202A-1202N, einen integrierten Speicher-Controller 1214 und einen integrierten Grafikprozessor 1208 gemäß mindestens einer Ausführungsform aufweist. In mindestens einer Ausführungsform kann der Prozessor 1200 zusätzliche Kerne, bis zu dem und einschließlich des zusätzlichen Kerns 1202N, die durch gestrichelte Kästchen dargestellt sind, beinhalten. In mindestens einer Ausführungsform beinhaltet jeder der Prozessorkerne 1202A-1202N eine oder mehrere interne Cache-Einheiten 1204A-1204N. In mindestens einer Ausführungsform hat jeder Prozessorkern auch Zugriff auf eine oder mehrere gemeinsam genutzte zwischengespeicherte Einheiten 1206.
  • In mindestens einer Ausführungsform stellen die internen Cache-Einheiten 1204A-1204N und die gemeinsam genutzten Cache-Einheiten 1206 eine Cache-Speicherhierarchie innerhalb des Prozessors 1200 dar. In mindestens einer Ausführungsform können die Cache-Speichereinheiten 1204A-1204N mindestens eine Ebene von Anweisungs- und Datencache innerhalb jedes Prozessorkerns und eine oder mehrere Ebenen von gemeinsam genutzten Mittelebenen-Cache, wie etwa ein Level 2 (L2), Level 3 (L3), Level 4 (L4) oder andere Cache-Ebenen beinhalten, wobei eine höchste Cache-Ebene vor dem externen Speicher als LLC klassifiziert ist. In mindestens einer Ausführungsform bewahrt eine Cache-Kohärenzlogik die Kohärenz zwischen den diversen Cache-Einheiten 1206 und 1204A-1204N.
  • In mindestens einer Ausführungsform kann der Prozessor 1200 auch eine Menge von einer oder mehreren Bus-Controller-Einheiten 1216 und einen Systemagentenkern 1210 beinhalten. In mindestens einer Ausführungsform verwalten eine oder mehrere Bus-Controller-Einheiten 1216 eine Menge von Peripheriebussen, wie etwa einen oder mehrere PCI- oder PCI-Express-Busse. In mindestens einer Ausführungsform stellt der Systemagentenkern 1210 eine Verwaltungsfunktion für diverse Prozessorkomponenten bereit. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 1210 einen oder mehrere integrierte Speicher-Controller 1214, um den Zugriff auf diverse externe Speichervorrichtungen (nicht gezeigt) zu verwalten.
  • In mindestens einer Ausführungsform beinhalten einer oder mehrere der Prozessorkerne 1202A-1202N eine Unterstützung für gleichzeitiges Multithreading. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 1210 Komponenten zum Koordinieren und Betätigen der Kerne 1202A-1202N während einer Multithread-Verarbeitung. In mindestens einer Ausführungsform kann der Systemagentenkern 1210 zusätzlich eine Leistungssteuereinheit (power control unit - PCU) beinhalten, die Logik und Komponenten beinhaltet, um einen oder mehrere Leistungszustände der Prozessorkerne 1202A-1202N und des Grafikprozessors 1208 zu regulieren.
  • In mindestens einer Ausführungsform beinhaltet der Prozessor 1200 zusätzlich einen Grafikprozessor 1208, um Grafikverarbeitungsoperationen durchzuführen. In mindestens einer Ausführungsform ist der Grafikprozessor 1208 mit gemeinsam genutzten Cache-Einheiten 1206 und dem Systemagentenkern 1210 gekoppelt, der einen oder mehrere integrierte Speicher-Controller 1214 beinhaltet. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 1210 zudem einen Anzeige-Controller 1211, um die Grafikprozessorausgabe an eine oder mehrere gekoppelte Anzeigen anzusteuern. In mindestens einer Ausführungsform kann der Anzeige-Controller 1211 auch ein separates Modul sein, das mit dem Grafikprozessor 1208 über mindestens eine Zusammenschaltung gekoppelt ist, oder kann innerhalb des Grafikprozessors 1208 integriert sein.
  • In mindestens einer Ausführungsform wird eine ringbasierte Zusammenschaltungseinheit 1212 verwendet, um interne Komponenten des Prozessors 1200 zu koppeln. In mindestens einer Ausführungsform können eine alternative Zusammenschaltungseinheit, wie etwa eine Punkt-zu-Punkt-Zusammenschaltung, eine geschaltete Zusammenschaltung oder andere Techniken verwendet werden. In mindestens einer Ausführungsform ist der Grafikprozessor 1208 mit der Ringzusammenschaltung 1212 über eine E/A-Verbindung 1213 gekoppelt.
  • In mindestens einer Ausführungsform stellt die E/A-Verbindung 1213 mindestens eine von mehreren Versionen von E/A-Zusammenschaltungen dar, einschließlich einer gehäuseinternen E/A-Zusammenschaltung, welche die Kommunikation zwischen verschiedenen Prozessorkomponenten und einem eingebetteten Hochleistungs-Speichermodul 1218, wie etwa einem eDRAM-Modul, ermöglicht. In mindestens einer Ausführungsform verwendet jeder von den Prozessorkernen 1202A-1202N und dem Grafikprozessor 1208 eingebettete Speichermodule 1218 als gemeinsam genutzten Last-Level-Cache.
  • In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N homogene Kerne, die eine gemeinsame Anweisungssatzarchitektur ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N im Sinne der Anweisungssatzarchitektur (ISA) heterogen, wobei ein oder mehrere der Prozessorkerne 1202A-1202N einen gemeinsamen Anweisungssatz ausführen, während ein oder mehrere andere Kerne der Prozessorkerne 1202A-1202N eine Teilmenge eines gemeinsamen Anweisungssatzes oder einen anderen Anweisungssatz ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N im Sinne der Mikroarchitektur heterogen, wobei ein oder mehrere Kerne, die einen relativ höheren Leistungsverbrauch aufweisen, mit einem oder mehreren Leistungskernen gekoppelt sind, die einen niedrigeren Leistungsverbrauch aufweisen. In mindestens einer Ausführungsform kann der Prozessor 1200 auf einem oder mehreren Chips oder als integrierte SoC-Schaltung implementiert sein.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform können Abschnitte der oder die gesamte Inferenz- und/oder Trainingslogik 715 in den Prozessor 1200 integriert sein. Zum Beispiel können in mindestens einer Ausführungsform die in dieser Schrift beschriebenen Trainings- und/oder Inferenzierungstechniken eine oder mehrere der ALUs verwenden, die in einem Grafikprozessor 1512, einem oder mehreren Grafikkernen 1202A-1202N oder anderen Komponenten in 12 ausgebildet sind. Des Weiteren können in mindestens einer Ausführungsform die in dieser Schrift beschriebenen Inferenzierungs- und/oder Trainingsoperationen unter Verwendung einer anderen Logik als der in 7A oder 7B veranschaulichten Logik vorgenommen werden. In mindestens einer Ausführungsform können Gewichtungsparameter in einem chipinternen oder chipexternen Speicher und/oder chipinternen oder chipexternen Registern gespeichert werden (gezeigt oder nicht gezeigt), welche die ALUs eines Grafikprozessors 1200 konfigurieren, um einen oder mehrere in dieser Schrift beschriebene maschinelle Lernalgorithmen, Architekturen, Verwendungsfälle oder Trainingstechniken von neuronalen Netzen durchzuführen.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • VIRTUALISIERTE RECHENPLATTFORM
  • 13 ist ein beispielhaftes Datenflussdiagramm für einen Prozess 1300 zum Generieren und Bereitstellen einer Bildverarbeitungs- und Inferenzierungs-Pipeline gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozess 1300 zur Verwendung mit Bildgebungsvorrichtungen, Verarbeitungsvorrichtungen und/oder anderen Vorrichtungsarten in einer oder mehreren Einrichtungen 1302 bereitgestellt werden. Der Prozess 1300 kann in einem Trainingssystem 1304 und/oder in einem Bereitstellungssystem 1306 ausgeführt werden. In mindestens einer Ausführungsform kann das Trainingssystem 1304 verwendet werden, um das Training, die Bereitstellung und die Implementierung von maschinellen Lernmodellen (z. B. von neuronalen Netzen, Objekterkennungsalgorithmen, Computervisionsalgorithmen usw.) zur Verwendung in einem Bereitstellungssystem 1306 durchzuführen. In mindestens einer Ausführungsform kann das Bereitstellungssystem 1306 konfiguriert sein, um Verarbeitungs- und Rechenressourcen auf eine verteilte Computerumgebung abzuladen, um die Infrastrukturanforderungen in der Einrichtung 1302 zu reduzieren. In mindestens einer Ausführungsform können eine oder mehrere Anwendungen in einer Pipeline Dienste (z. B. Inferenz, Visualisierung, Rechnen, KI usw.) des Bereitstellungssystems 1306 während der Ausführung von Anwendungen verwenden oder aufrufen.
  • In mindestens einer Ausführungsform können einige der Anwendungen, die in weiterentwickelten Verarbeitungs- und Inferenzierungs-Pipelines verwendet werden, maschinelle Lernmodelle oder andere KI verwenden, um einen oder mehrere Verarbeitungsschritte durchzuführen. In mindestens einer Ausführungsform können die maschinellen Lernmodelle in der Einrichtung 1302 unter Verwendung von Daten 1308 (wie etwa Bildgebungsdaten), die in der Einrichtung 1302 generiert werden (und in einem oder mehreren Bildarchivierungs- und Kommunikationssystem(picture archiving and communication system - PACS)-Servern in der Einrichtung 1302 gespeichert werden), trainiert werden, können unter Verwendung von Bildgebungs- oder Sequenzierungsdaten 1308 von einer oder mehreren anderen Einrichtungen oder einer Kombination davon trainiert werden. In mindestens einer Ausführungsform kann das Trainingssystem 1304 verwendet werden, um Anwendungen, Dienste und/oder andere Ressourcen zum Generieren von funktionierenden, bereitstellbaren maschinellen Lernmodellen für das Bereitstellungssystem 1306 bereitzustellen.
  • In mindestens einer Ausführungsform kann das Modellregister 1324 durch einen Objektspeicher gesichert sein, der Versionierungs- und Objektmetadaten unterstützen kann. In mindestens einer Ausführungsform kann der Objektspeicher beispielsweise über eine Anwendungsprogrammierschnittstelle (application programming interface - API), die mit einem Cloud-Speicher (z. B. der Cloud 1426 aus 14) kompatibel ist, von innerhalb einer Cloud-Plattform aus zugänglich sein. In mindestens einer Ausführungsform können die maschinellen Lernmodelle innerhalb des Modellregisters 1324 von Entwicklern oder Partnern eines Systems, das mit einer API interagiert, hochgeladen, aufgeführt, bearbeitet oder gelöscht werden. In mindestens einer Ausführungsform kann eine API Zugriff auf Verfahren geben, die es Benutzern mit entsprechenden Referenzen erlauben, Modelle Anwendungen zuzuordnen, sodass die Modelle als Teil der Ausführung von containerisierten Instanziierungen von Anwendungen ausgeführt werden können.
  • In mindestens einer Ausführungsform kann die Trainings-Pipeline 1404 (14) ein Szenario beinhalten, bei dem die Einrichtung 1302 ihr eigenes maschinelles Lernmodell trainiert oder ein existierendes maschinelles Lernmodell aufweist, das optimiert oder aktualisiert werden muss. In mindestens einer Ausführungsform können Bildgebungsdaten 1308, die von einer oder mehreren Bildgebungsvorrichtungen, Sequenzierungsvorrichtungen und/oder anderen Vorrichtungsarten generiert werden, empfangen werden. Sobald die Bildgebungsdaten 1308 empfangen wurden, kann bei mindestens einer Ausführungsform eine KI-unterstützte Annotation 1310 verwendet werden, um beim Generieren von Annotationen zu helfen, die den Bildgebungsdaten 1308 entsprechen, die als grundlegende Referenzdaten für ein maschinelles Lernmodell zu verwenden sind. In mindestens einer Ausführungsform kann eine KI-unterstützte Annotation 1310 ein oder mehrere maschinelle Lernmodelle (z. B. neuronale Faltungsnetze (convolutional neural networks - CNNs)), die trainiert werden können, um Annotationen zu generieren, die gewissen Arten von Bildgebungsdaten 1308 (z. B. von gewissen Vorrichtungen) entsprechen, beinhalten. In mindestens einer Ausführungsform können die KI-unterstützten Annotationen 1310 dann direkt verwendet werden oder können unter Verwendung eines Annotations-Tools angepasst oder abgestimmt werden, um grundlegende Referenzdaten zu generieren. In mindestens einer Ausführungsform können KI-unterstützte Annotationen 1310, die Klinikdaten 1312 markiert werden, oder eine Kombination davon als grundlegende Referenzdaten zum Trainieren eines maschinellen Lernmodells verwendet werden. In mindestens einer Ausführungsform kann ein trainiertes maschinelles Lernmodell als Ausgabemodell 1316 bezeichnet werden und kann von dem Bereitstellungssystem 1306, wie in dieser Schrift beschrieben, verwendet werden.
  • In mindestens einer Ausführungsform kann die Trainings-Pipeline 1404 (14) ein Szenario beinhalten, bei dem die Einrichtung 1302 ein maschinelles Lernmodell zur Verwendung beim Durchführen einer oder mehrerer Verarbeitungsaufgaben für eine oder mehrere Anwendungen in dem Bereitstellungssystem 1306 benötigt, aber die Einrichtung 1302 aktuell kein derartiges maschinelles Lernmodell aufweisen kann (oder kein Modell aufweisen kann, das für derartige Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform kann ein existierendes maschinelles Lernmodell aus einem Modellregister 1324 ausgewählt werden. In mindestens einer Ausführungsform kann das Modellregister 1324 maschinelle Lernmodelle beinhalten, die trainiert wurden, um eine Vielfalt von verschiedenen Inferenzaufgaben an Bildgebungsdaten durchzuführen. In mindestens einer Ausführungsform können die maschinellen Lernmodelle in dem Modellregister 1324 an Bildgebungsdaten von anderen Einrichtungen als der Einrichtung 1302 (z. B. entfernt befindlichen Einrichtungen) trainiert worden sein. In mindestens einer Ausführungsform können die maschinellen Lernmodelle an Bildgebungsdaten von einem Standort, zwei Standorten oder einer beliebigen Anzahl von Standorten trainiert worden sein. In mindestens einer Ausführungsform, wenn sie an Bildgebungsdaten von einem spezifischen Standort trainiert werden, kann das Training an diesem Standort oder mindestens auf eine Art und Weise stattfinden, welche die Vertraulichkeit der Bildgebungsdaten schützt, oder einschränkt, dass die Bildgebungsdaten aus der Einrichtung heraus übertragen werden. Sobald ein Modell an einem Standort trainiert - oder teilweise trainiert - wurde, kann bei mindestens einer Ausführungsform ein maschinelles Lernmodell zu dem Modellregister 1324 hinzugefügt werden. In mindestens einer Ausführungsform kann ein maschinelles Lernmodell dann an einer beliebigen Anzahl von anderen Einrichtungen erneut trainiert oder aktualisiert werden, und ein erneut trainiertes oder aktualisiertes Modell kann in dem Modellregister 1324 zur Verfügung gestellt werden. In mindestens einer Ausführungsform kann ein maschinelles Lernmodell dann aus dem Modellregister 1324 ausgewählt werden - und als Ausgabemodell 1316 referenziert werden - und kann in dem Bereitstellungssystem 1306 verwendet werden, um eine oder mehrere Verarbeitungsaufgaben für eine oder mehrere Anwendungen eines Bereitstellungssystems durchzuführen.
  • Bei der Trainings-Pipeline 1404 mindestens einer Ausführungsform (14) kann ein Szenario beinhalten, dass die Einrichtung 1302 ein maschinelles Lernmodell zur Verwendung beim Durchführen einer oder mehrerer Verarbeitungsaufgaben für eine oder mehrere Anwendungen in dem Bereitstellungssystem 1306 erfordert, aber die Einrichtung 1302 aktuell kein derartiges maschinelles Lernmodell aufweisen kann (oder kein Modell aufweisen kann, das für derartige Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform kann es sein, dass ein maschinelles Lernmodell, das aus dem Modellregister 1324 ausgewählt wird, für Bildgebungsdaten 1308, die in der Einrichtung 1302 generiert werden, auf Grund von Differenzen bei den Populationen, der Robustheit der Trainingsdaten, die verwendet werden, um ein maschinelles Lernmodell zu trainieren, der Diversität der Anomalien von Trainingsdaten und/oder anderen Problemen mit den Trainingsdaten nicht abgestimmt oder optimiert ist. In mindestens einer Ausführungsform kann eine KI-unterstützte Annotation 1310 verwendet werden, um zu helfen, Annotationen zu generieren, die den Bildgebungsdaten 1308 entsprechen, die als grundlegende Referenzdaten zum erneuten Trainieren oder Aktualisieren eines maschinellen Lernmodells zu verwenden sind. In mindestens einer Ausführungsform können die gekennzeichneten Daten 1312 als grundlegende Referenzdaten für das Training eines maschinellen Lernmodells verwendet werden. In mindestens einer Ausführungsform kann das erneute Trainieren oder Aktualisieren eines maschinellen Lernmodells als Modelltraining 1314 bezeichnet werden. In mindestens einer Ausführungsform kann das Modelltraining 1314 - z. B. KI-unterstützte Annotationen 1310, gekennzeichnete Klinikdaten 1312 oder eine Kombination davon - als grundlegende Referenzdaten zum erneuten Trainieren oder Aktualisieren eines maschinellen Lernmodells verwendet werden. In mindestens einer Ausführungsform kann ein trainiertes maschinelles Lernmodell als Ausgabemodell 1316 bezeichnet werden und kann von dem Bereitstellungssystem 1306, wie in dieser Schrift beschrieben, verwendet werden.
  • In mindestens einer Ausführungsform kann das Bereitstellungssystem 1306 Software 1318, Dienste 1320, Hardware 1322 und/oder andere Komponenten, Merkmale und Funktionalität beinhalten. In mindestens einer Ausführungsform kann das Bereitstellungssystem 1306 einen Software- „Stapel“ umfassen, so dass die Software 1318 auf Diensten 1320 aufgebaut sein kann und die Dienste 1320 verwenden kann, um einige oder alle der Verarbeitungsaufgaben und Dienste 1320 durchzuführen, und die Software 1318 auf Hardware 1322 aufgebaut sein kann und die Hardware 1322 verwenden kann, um Verarbeitungs-, Speicher- und/oder andere Rechenaufgaben des Bereitstellungssystems 1306 auszuführen. In mindestens einer Ausführungsform kann die Software 1318 beliebige Anzahl von verschiedenen Containern beinhalten, wobei jeder Container eine Instanziierung einer Anwendung ausführen kann. In mindestens einer Ausführungsform kann jede Anwendung eine oder mehrere Verarbeitungsaufgaben in einer weiterentwickelten Verarbeitungs- und Inferenzierungs-Pipeline durchführen (z. B. Inferenzierung, Objekterkennung, Merkmalserkennung, Segmentierung, Bildverbesserung, Kalibrierung usw.). In mindestens einer Ausführungsform kann eine weiterentwickelte Verarbeitungs- und Inferenzierungs-Pipeline auf Grundlage von Auswahlen von verschiedenen Containern definiert werden, die für die Verarbeitung von Bildgebungsdaten 1308 erwünscht oder erforderlich sind, zusätzlich zu Containern, die Bildgebungsdaten zur Verwendung durch jeden Container und/oder zur Verwendung durch die Einrichtung 1302 nach der Verarbeitung über eine Pipeline empfangen und konfigurieren (z. B. um Ausgaben zurück in eine brauchbare Datenart zu konvertieren). In mindestens einer Ausführungsform kann eine Kombination von Containern innerhalb der Software 1318 (die beispielsweise eine Pipeline bildet) als virtuelles Instrument bezeichnet werden (wie es in dieser Schrift noch ausführlicher beschrieben wird), und ein virtuelles Instrument kann Dienste 1320 und Hardware 1322 nutzen, um eine oder alle Verarbeitungsaufgaben von Anwendungen, die in Containern instanziiert sind, auszuführen.
  • In mindestens einer Ausführungsform kann eine Datenverarbeitungs-Pipeline Eingabedaten (z. B. Bildgebungsdaten 1308) in einem spezifischen Format als Reaktion auf eine Inferenzanforderung (z. B. eine Anforderung von einem Benutzer des Bereitstellungssystems 1306) empfangen. In mindestens einer Ausführungsform können die Eingabedaten für ein oder mehrere Bilder, Videomaterial und/oder andere Datendarstellungen, die von einer oder mehreren Bildgebungsvorrichtungen generiert werden, repräsentativ sein. In mindestens einer Ausführungsform können die Daten eine Vorverarbeitung als Teil der Datenverarbeitungs-Pipeline erfahren, um Daten zur Verarbeitung durch eine oder mehrere Anwendungen vorzubereiten. In mindestens einer Ausführungsform kann die Nachverarbeitung an einer Ausgabe einer oder mehrerer Inferenzierungsaufgaben oder anderer Verarbeitungsaufgaben einer Pipeline ausgeführt werden, um Ausgabedaten für eine nächste Anwendung vorzubereiten und/oder um Ausgabedaten für eine Übertragung und/oder Verwendung durch einen Benutzer (z. B. als Reaktion auf eine Inferenzanforderung) vorzubereiten. In mindestens einer Ausführungsform können die Inferenzierungsaufgaben von einem oder mehreren maschinellen Lernmodellen, wie etwa trainierten oder bereitgestellten neuronalen Netzen, die Ausgabemodelle 1316 des Trainingssystems 1304 beinhalten können, ausgeführt werden.
  • In mindestens einer Ausführungsform können die Aufgaben der Datenverarbeitungs-Pipeline in (einem) Container(n) eingekapselt sein, die jeweils eine diskrete, voll funktionierende Instanziierung einer Anwendung und eine virtualisierte Rechenumgebung, die in der Lage ist, sich auf maschinelle Lernmodelle zu beziehen, darstellen. In mindestens einer Ausführungsform können die Container oder Anwendungen in einen privaten Bereich (z. B. mit beschränktem Zugriff) eines Containerregisters (in dieser Schrift nachstehend ausführlicher beschrieben) veröffentlicht werden, und trainierte oder bereitgestellte Modelle können in dem Modellregister 1324 gespeichert und einer oder mehreren Anwendungen zugeordnet werden. In mindestens einer Ausführungsform können Bilder von Anwendungen (z. B. Containerbilder) in einem Containerregister verfügbar sein, und sobald es von einem Benutzer aus einem Containerregister zur Bereitstellung in einer Pipeline ausgewählt wurde, kann ein Bild verwendet werden, um einen Container für eine Instanziierung einer Anwendung zur Verwendung durch das System eines Benutzers zu generieren.
  • In mindestens einer Ausführungsform können Entwickler (z. B. Softwareentwickler, Kliniker, Ärzte) Anwendungen (z. B. als Container) zum Durchführen von Bildverarbeitung und/oder Inferenzierung an bereitgestellten Daten entwickeln, veröffentlichen und speichern. In mindestens einer Ausführungsform können die Entwicklung, Veröffentlichung und/oder Speicherung unter Verwendung eines Software-Entwicklungskits (SDK) durchgeführt werden, das einem System zugeordnet ist (z. B. um sicherzustellen, dass eine entwickelte Anwendung und/oder ein Container zu einem System konform oder damit kompatibel ist). In mindestens einer Ausführungsform kann eine Anwendung, die entwickelt wird, lokal (z. B. in einer ersten Einrichtung an Daten von einer ersten Einrichtung) mit einem SDK, das mindestens einige der Dienste 1320 unterstützen kann, als System (z. B. als System 1400 aus 14) getestet werden. In mindestens einer Ausführungsform, da DICOM-Objekte eine beliebige Anzahl zwischen einem und Hunderten von Bildern oder anderen Datenarten enthalten können, und auf Grund einer Variation der Daten, kann ein Entwickler für die Verwaltung (z. B. das Einstellen von Konstrukten für, das Einbauen einer Vorverarbeitung in eine Anwendung usw.), Extraktion und Vorbereitung von ankommenden Daten verantwortlich sein. In mindestens einer Ausführungsform kann eine Anwendung, sobald sie von dem System 1400 (z. B. für die Genauigkeit) validiert wurde, in einem Containerregister zur Auswahl und/oder Implementierung durch einen Benutzer verfügbar sein, um eine oder mehrere Verarbeitungsaufgaben in Bezug auf Daten in einer Einrichtung (z. B. einer zweiten Einrichtung) eines Benutzers durchzuführen.
  • In mindestens einer Ausführungsform können die Entwickler dann Anwendungen oder Container über ein Netzwerk zum Zugang und zur Verwendung durch die Benutzer eines Systems (z. B. des Systems 1400 aus 14) teilen. In mindestens einer Ausführungsform können fertiggestellte und validierte Anwendungen oder Container in einem Containerregister gespeichert werden, und zugeordnete maschinelle Lernmodelle können in dem Modellregister 1324 gespeichert werden. In mindestens einer Ausführungsform kann eine anfordernde Entität - die eine Inferenz- oder Bildbearbeitungsanforderung bereitstellt - ein Containerregister und/oder ein Modellregister 1324 nach einer Anwendung, einem Container, einem Datensatz, einem maschinellen Lernmodell usw. durchsuchen, eine gewünschte Kombination von Elementen zur Einbeziehung in die Datenverarbeitungs-Pipeline auswählen, und eine Bildgebungsverarbeitungsanforderung unterbreiten. In mindestens einer Ausführungsform kann eine Anforderung Eingabedaten (und bei einigen Beispielen zugeordnete Patientendaten) beinhalten, die notwendig sind, um eine Anforderung durchzuführen, und/oder kann eine Auswahl von einer oder mehreren Anwendungen und/oder maschinellen Lernmodellen, die bei der Verarbeitung einer Anforderung auszuführen sind, beinhalten. In mindestens einer Ausführungsform kann eine Anforderung dann an eine oder mehrere Komponenten des Bereitstellungssystems 1306 (z. B. eine Cloud) weitergegeben werden, um eine Verarbeitung der Datenverarbeitungs-Pipeline durchzuführen. In mindestens einer Ausführungsform kann die Verarbeitung durch das Bereitstellungssystem 1306 das Referenzieren ausgewählter Elemente (z. B. Anwendungen, Container, Modelle usw.) aus einem Containerregister und/oder Modellregister 1324 beinhalten. In mindestens einer Ausführungsform können die Ergebnisse, sobald die Ergebnisse durch eine Pipeline generiert wurden, an einen Benutzer zur Bezugnahme (z. B. zum Visualisieren in einem Visualisierungsanwendungspaket, das auf einer lokalen Vor-Ort-Arbeitsstation oder einem Endgerät abläuft) zurückgegeben werden.
  • In mindestens einer Ausführungsform können zur Beihilfe bei der Verarbeitung oder Ausführung von Anwendungen oder Containern in Pipelines Dienste 1320 genutzt werden. In mindestens einer Ausführungsform können die Dienste 1320 Rechendienste, künstliche Intelligenz(KI)-Dienste, Visualisierungsdienste und/oder andere Dienstarten beinhalten. In mindestens einer Ausführungsform können die Dienste 1320 eine Funktionalität bereitstellen, die einer oder mehreren Anwendungen in der Software 1318 gemeinsam ist, so dass die Funktionalität auf einen Dienst abstrahiert werden kann, der von den Anwendungen aufgerufen oder genutzt werden kann. In mindestens einer Ausführungsform kann die Funktionalität, die durch die Dienste 1320 bereitgestellt wird, dynamisch und effizienter ausgeführt werden, wobei sie zudem gut skalierbar ist, indem sie es den Anwendungen ermöglicht, Daten parallel (z. B. unter Verwendung einer parallelen Rechenplattform 1430 (14)) zu verarbeiten. In mindestens einer Ausführungsform kann, statt dass jede Anwendung, die eine gleiche Funktionalität gemeinsam nutzt, die von einem Dienst 1320 geboten wird, eine jeweilige Instanz des Dienstes 1320 aufweisen muss, der Dienst 1320 von diversen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform können die Dienste einen Inferenzserver oder eine Inferenz-Engine beinhalten, der bzw. die verwendet werden kann, um als nicht einschränkende Beispiele Erkennungs- oder Segmentierungsaufgaben auszuführen. In mindestens einer Ausführungsform kann ein Modelltrainingsdienst beinhaltet sein, der die Fähigkeit bereitstellen kann, maschinelle Lernmodelle zu trainieren und/oder erneut zu trainieren. In mindestens einer Ausführungsform kann ferner ein Datenerweiterungsdienst beinhaltet sein, der die Extraktion, Größenänderung, Skalierung und/oder andere Erweiterung von GPU-beschleunigten Daten (z. B. DICOM-Daten, RIS-Daten, CIS-Daten, RESTkonformen Daten, RPC-Daten, Rohdaten usw.) bereitstellen kann. In mindestens einer Ausführungsform kann ein Visualisierungsdienst verwendet werden, der Bildrenderingeffekte - wie etwa Strahlverfolgung, Rasterung, Entrauschen, Schärfung usw. - hinzufügen kann, um zweidimensionale (2D) und/oder dreidimensionale (3D) Modelle realistischer zu gestalten. In mindestens einer Ausführungsform können virtuelle Instrumentendienste beinhaltet sein, die Strahlenformung, Segmentierung, Inferenz, Bildgebung und/oder Unterstützung für andere Anwendungen innerhalb der Pipelines von virtuellen Instrumenten bereitstellen.
  • In mindestens einer Ausführungsform, bei der ein Dienst 1320 einen KI-Dienst (z. B. einen Inferenzdienst) beinhaltet, können ein oder mehrere maschinelle Lernmodelle ausgeführt werden, indem ein Inferenzdienst (z. B. ein Inferenzserver) (z. B. als API-Aufruf), aufgerufen wird, um ein oder mehrere maschinelle Lernmodelle oder ihre Verarbeitung als Teil der Anwendungsausführung auszuführen. In mindestens einer Ausführungsform, bei der eine andere Anwendung ein oder mehrere maschinelle Lernmodelle für Segmentierungsaufgaben beinhaltet, kann eine Anwendung einen Inferenzdienst aufrufen, um maschinelle Lernmodelle auszuführen, um eine oder mehrere Verarbeitungsoperationen, die Segmentierungsaufgaben zugeordnet sind, durchzuführen. In mindestens einer Ausführungsform kann die Software 1318, welche die weiterentwickelte Verarbeitungs- und Inferenzierungs-Pipeline implementiert, die eine Segmentierungsanwendung und Anomalieerkennungsanwendung beinhaltet, rationalisiert werden, weil jede Anwendung den gleichen Inferenzdienst aufrufen kann, um eine oder mehrere Inferenzierungsaufgaben durchzuführen.
  • In mindestens einer Ausführungsform kann die Hardware 1322 GPUs, CPUs, Grafikkarten, ein KI-/Tieflernsystem (z. B. einen KI-Supercomputer, wie etwa DGX von NVIDIA), eine Cloud-Plattform oder eine Kombination davon beinhalten. In mindestens einer Ausführungsform können verschiedene Arten von Hardware 1322 verwendet werden, um effiziente, spezialgefertigte Software 1318 und Dienste 1320 im Bereitstellungssystem 1306 bereitzustellen. In mindestens einer Ausführungsform kann die Verwendung von GPU-Verarbeitung zum lokalen Verarbeiten (z. B. in der Einrichtung 1302) innerhalb eines KI/Tieflernsystems, in einem Cloud-System und/oder in anderen Verarbeitungskomponenten des Bereitstellungssystems 1306 implementiert werden, um Effizienz, Genauigkeit und Wirksamkeit der Bildverarbeitung und Generierung zu verbessern. In mindestens einer Ausführungsform können die Software 1318 und/oder Dienste 1320 für die GPU-Verarbeitung in Bezug auf Tieflernen, maschinelles Lernen und/oder Hochleistungsdatenverarbeitung als nicht einschränkende Beispiele optimiert werden. In mindestens einer Ausführungsform kann mindestens ein Teil der Computerumgebung des Bereitstellungssystems 1306 und/oder des Trainingssystems 1304 in einem Rechenzentrum, auf einem oder mehreren Supercomputern oder Hochleistungscomputersystemen mit GPU-optimierter Software (z. B. einer Hardware- und Software-Kombination des DGX-Systems von NVIDIA) ausgeführt werden. In mindestens einer Ausführungsform kann die Hardware 1322 eine beliebige Anzahl von GPUs beinhalten, die aufgerufen werden können, um die Verarbeitung von Daten parallel durchzuführen, wie in dieser Schrift beschrieben. In mindestens einer Ausführungsform kann die Cloud-Plattform ferner eine GPU-Verarbeitung für eine GPU-optimierte Ausführung von Tieflernaufgaben, maschinellen Lernaufgaben oder anderen Rechenaufgaben beinhalten. In mindestens einer Ausführungsform kann die Cloud-Plattform (z. B. NGC von NVIDIA) unter Verwendung eines oder mehrerer KI/Tieflern-Supercomputer und/oder GPU-optimierter Software (z. B. wie DGX-Systemen von NVIDIA) als Hardware-Abstraktions- und Skalierungsplattform ausgeführt sein. In mindestens einer Ausführungsform kann die Cloud-Plattform ein Anwendungscontainer-Cluster-System oder Koordinationssystem (z. B. KUBERNETES) auf mehreren GPUs integrieren, um nahtlose Skalierung und Belastungsausgleich zu ermöglichen.
  • 14 ist ein Systemdiagramm für ein beispielhaftes System 1400 zum Generieren und Bereitstellen einer Bildgebungsbereitstellungs-Pipeline gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 1400 verwendet werden, um den Prozess 1300 aus 13 und/oder andere Prozesses zu implementieren, die weiterentwickelte Verarbeitungs- und Inferenzierungs-Pipelines beinhalten. In mindestens einer Ausführungsform kann das System 1400 das Trainingssystem 1304 und das Bereitstellungssystem 1306 beinhalten. In mindestens einer Ausführungsform können das Trainingssystem 1304 und das Bereitstellungssystem 1306 unter Verwendung der Software 1318, Dienste 1320 und/oder Hardware 1322 wie in dieser Schrift beschrieben implementiert werden.
  • In mindestens einer Ausführungsform kann das System 1400 (z. B. das Trainingssystem 1304 und/oder das Bereitstellungssystem 1306) in einer Cloud-Computerumgebung (z. B. unter Verwendung der Cloud 1426) implementiert werden. In mindestens einer Ausführungsform kann das System 1400 lokal in Bezug auf eine Gesundheitsdiensteinrichtung oder als eine Kombination sowohl von Cloud- als auch von lokalen Rechenressourcen implementiert werden. In mindestens einer Ausführungsform kann der Zugriff auf APIs in der Cloud 1426 durch verordnete Sicherheitsmaßnahmen oder Protokolle auf berechtigte Benutzer eingeschränkt werden. In mindestens einer Ausführungsform kann ein Sicherheitsprotokoll Web-Token beinhalten, die von einem Authentifizierungsdienst (z. B. AuthN, AuthZ, Gluecon usw.) signiert sein können und eine geeignete Berechtigung transportieren können. In mindestens einer Ausführungsform können die APIs von virtuellen Instrumenten (in dieser Schrift beschrieben) oder andere Instanziierungen des Systems 1400 auf eine Menge von öffentlichen IPs eingeschränkt werden, die für die Interaktion überprüft oder berechtigt wurden.
  • In mindestens einer Ausführungsform können diverse Komponenten des Systems 1400 unter Verwendung einer von diversen verschiedenen Netzwerkarten, die ohne Einschränkung lokale Netzwerke (LANs) und/oder Weitverkehrsnetzwerk (WANs) beinhalten, über drahtgebundene und/oder drahtlose Kommunikationsprotokolle miteinander kommunizieren. In mindestens einer Ausführungsform kann die Kommunikation zwischen Einrichtungen und Komponenten des Systems 1400 (z. B. zum Übermitteln von Inferenzanforderungen zum Empfangen von Ergebnissen von Inferenzanforderungen usw.) über einen oder mehrere Datenbusse, drahtlose Datenprotokolle (WiFi), drahtgebundene Datenprotokolle (z. B. Ethernet) usw. mitgeteilt werden.
  • In mindestens einer Ausführungsform kann das Trainingssystem 1304 Trainings-Pipelines 1404 ausführen, ähnlich wie diejenigen, die in dieser Schrift in Bezug auf 13 beschrieben sind. In mindestens einer Ausführungsform, bei der ein oder mehrere maschinelle Lernmodelle in den Bereitstellungs-Pipelines 1410 durch das Bereitstellungssystem 1306 zu verwenden sind, können Trainings-Pipelines 1404 verwendet werden, um ein oder mehrere (z. B. vortrainierte) Modelle zu trainieren oder neu zu trainieren, und/oder um ein oder mehrere der vortrainierten Modelle 1406 (z. B. ohne ein erneutes Training oder eine Aktualisierung zu benötigen) zu implementieren. In mindestens einer Ausführungsform kann/können als Ergebnis der Trainings-Pipelines 1404 (ein) Ausgabemodell(e) 1316 generiert werden. In mindestens einer Ausführungsform können die Trainings-Pipelines 1404 eine beliebige Anzahl von Verarbeitungsschritten beinhalten, wie etwa ohne Einschränkung die Umwandlung oder Anpassung von Bildgebungsdaten (oder anderen Eingabedaten). In mindestens einer Ausführungsform können für verschiedene maschinelle Lernmodelle, die von dem Bereitstellungssystem 1306 verwendet werden, verschiedene Trainings-Pipelines 1404 verwendet werden. In mindestens einer Ausführungsform kann eine Trainings-Pipeline 1404, die einem ersten Beispiel ähnlich ist, das in Bezug auf 13 beschrieben ist, für ein erstes maschinelles Lernmodell verwendet werden, kann eine Trainings-Pipeline 1404, die einem zweiten Beispiel ähnlich ist, das in Bezug auf 13 beschrieben ist, für ein zweites maschinelles Lernmodell verwendet werden, und kann eine Trainings-Pipeline 1404, die einem dritten Beispiel ähnlich ist, das in Bezug auf 13 beschrieben ist, für ein drittes maschinelles Lernmodell verwendet werden. In mindestens einer Ausführungsform kann eine beliebige Kombination von Aufgaben innerhalb des Trainingssystems 1304 in Abhängigkeit von dem, was für jedes jeweilige maschinelle Lernmodell benötigt wird, verwendet werden. In mindestens einer Ausführungsform können ein oder mehrere der maschinellen Lernmodelle bereits trainiert und zur Bereitstellung bereit sein, so dass die maschinellen Lernmodelle vielleicht keine Verarbeitung durch das Trainingssystem 1304 erfahren und von dem Bereitstellungssystem 1306 implementiert werden können.
  • In mindestens einer Ausführungsform kann/können (ein) Ausgabemodell(e) 1316 und/oder vortrainierte(s) Modell(e) 1406 beliebige Arten von maschinellen Lernmodellen in Abhängigkeit von der Implementierung oder Ausführungsform beinhalten. In mindestens einer Ausführungsform und ohne Einschränkung können die maschinellen Lernmodelle, die von dem System 1400 verwendet werden, ein oder mehrere maschinelle Lernmodelle beinhalten, die eine lineare Regression, eine logistische Regression, Entscheidungsbäume, Support-Vektor-Maschinen (SVM), Naive-Bayes, k-nächste-Nachbarn (Knn), K-Means-Clustering, Random-Forest, Dimensionalitätsreduktionsalgorithmen, Gradientenverstärkungsalgorithmen, neuronale Netze (z. B. Selbstcodierer, Faltung, wiederkehrend, Perzeptron, langfristigen/kurzfristigen Speicher (LSTM), Hopfield, Boltzmann, tiefe Überzeugung, Entfaltung, generativ kontradiktorisch, Flüssigzustandsmaschine usw.) und/oder andere Arten von maschinellen Lernmodellen verwenden.
  • In mindestens einer Ausführungsform können die Trainings-Pipelines 1404 eine KI-unterstützte Annotation beinhalten, wie in dieser Schrift mindestens in Bezug auf 15B ausführlicher beschrieben. In mindestens einer Ausführungsform können die gekennzeichneten Daten 1312 (z. B. herkömmliche Annotation) durch eine beliebige Anzahl von Techniken generiert werden. In mindestens einer Ausführungsform können Kennzeichnungen oder andere Annotationen innerhalb eines Zeichenprogramms (z. B. eines Annotationsprogramms), eines Programms zur computergestützten Konstruktion (computer aided design - CAD), eines Kennzeichnungsprogramms, einer anderen Art von Programm, das zum Generieren von Annotationen oder Kennzeichnungen als grundlegende Referenz geeignet ist, generiert werden und/oder in einigen Beispielen von Hand gezeichnet werden. In mindestens einer Ausführungsform können die grundlegenden Referenzdaten synthetisch produziert (z. B. aus Computermodellen oder Renderings generiert), real produziert (z. B. aus Daten der realen Welt ausgestaltet und produziert), maschinell automatisiert (z. B. unter Verwendung von Merkmalsanalyse und -lernen, um Merkmale aus Daten zu extrahieren und dann Kennzeichnungen zu generieren), von Menschen annotiert (z. B. definiert ein Kennzeichner oder Annotationsexperte die Stelle von Kennzeichnungen) und/oder eine Kombination davon sein. In mindestens einer Ausführungsform kann es für jede Instanz von Bildgebungsdaten 1308 (oder eine andere Datenart, die von maschinellen Lernmodellen verwendet wird) entsprechende grundlegende Referenzdaten geben, die von dem Trainingssystem 1304 generiert werden. In mindestens einer Ausführungsform kann eine KI-unterstützte Annotation als Teil der Bereitstellungs-Pipelines 1410 entweder zusätzlich zu oder anstelle einer KI-unterstützten Annotation, die in den Trainings-Pipelines 1404 beinhaltet ist, durchgeführt werden. In mindestens einer Ausführungsform kann das System 1400 eine mehrschichtige Plattform beinhalten, die eine Software-Schicht (z. B. die Software 1318) von Diagnoseanwendungen (oder anderen Anwendungsarten), die eine oder mehrere medizinische Bildgebungs- und Diagnosefunktionen durchführen können, beinhalten kann. In mindestens einer Ausführungsform kann das System 1400 mit PACS-Servernetzwerken einer oder mehrerer Einrichtungen (z. B. über verschlüsselte Links) kommunikativ gekoppelt sein. In mindestens einer Ausführungsform kann das System 1400 konfiguriert sein, um auf Daten von PACS-Servern zuzugreifen und Bezug zu nehmen, um Operationen, wie etwa das Trainieren von maschinellen Lernmodellen, das Bereitstellen von maschinellen Lernmodellen, Bildverarbeitung, Inferenz und/oder andere Operationen durchzuführen.
  • In mindestens einer Ausführungsform kann eine Software-Schicht als sichere, verschlüsselte und/oder authentifizierte API implementiert werden, über welche Anwendungen oder Container von einer oder mehreren externen Umgebungen (z. B. der Einrichtung 1302) herangezogen (z. B. aufgerufen) werden können. In mindestens einer Ausführungsform können die Anwendungen dann einen oder mehrere Dienste 1320 aufrufen oder ausführen, um Rechen- , KI- oder Visualisierungsaufgaben durchzuführen, die jeweiligen Anwendungen zugeordnet sind, und Software 1318 und/oder Dienste 1320 können Hardware 1322 nutzen, um Verarbeitungsaufgaben effektiv und effizient durchzuführen.
  • In mindestens einer Ausführungsform kann das Bereitstellungssystem 1306 Bereitstellungs-Pipelines 1410 ausführen. In mindestens einer Ausführungsform können die Bereitstellungs-Pipelines 1410 eine beliebige Anzahl von Anwendungen beinhalten, die sequentiell, nicht sequentiell oder anderweitig auf Bildgebungsdaten (und/oder andere Datenarten) angewendet werden können, die von Bildgebungsvorrichtungen, Sequenzierungsvorrichtungen, Genomikvorrichtungen usw. - einschließlich KI-unterstützter Annotation, wie zuvor beschrieben, generiert werden. In mindestens einer Ausführungsform kann, wie in dieser Schrift beschrieben, eine Bereitstellungs-Pipeline 1410 für eine einzelne Vorrichtung als virtuelles Instrument für eine Vorrichtung (z. B. ein virtuelles Ultraschallinstrument, ein virtuelles CT-Scan-Instrument, ein virtuelles Sequenzierungsinstrument usw.) bezeichnet werden. In mindestens einer Ausführungsform kann es für eine einzige Vorrichtung in Abhängigkeit von Informationen, die aus den Daten erwünscht sind, die von einer Vorrichtung generiert werden, mehr als eine Bereitstellungs-Pipeline 1410 geben. In mindestens einer Ausführungsform, bei der Erkennung von Anomalien aus einer MRI-Maschine erwünscht sind, kann es eine erste Bereitstellungs-Pipeline 1410 geben, und wenn eine Bildverbesserung aus der Ausgabe einer MRI-Maschine erwünscht ist, kann es eine zweite Bereitstellungs-Pipeline 1410 geben.
  • In mindestens einer Ausführungsform kann eine Bildgenerierungsanwendung eine Verarbeitungsaufgabe beinhalten, welche die Verwendung eines maschinellen Lernmodells beinhaltet. In mindestens einer Ausführungsform kann ein Benutzer wünschen, sein eigenes maschinelles Lernmodell zu verwenden, oder ein maschinelles Lernmodell aus dem Modellregister 1324 auszuwählen. In mindestens einer Ausführungsform kann ein Benutzer sein eigenes maschinelles Lernmodell implementieren oder ein maschinelles Lernmodell zur Einbeziehung in eine Anwendung zum Durchführen einer Verarbeitungsaufgabe auswählen. In mindestens einer Ausführungsform können Anwendungen auswählbar und anpassbar sein, und werden durch das Definieren von Konstrukten von Anwendungen, Bereitstellung und Implementierung von Anwendungen für einen bestimmten Benutzer als eine nahtlosere Benutzererfahrung präsentiert. In mindestens einer Ausführungsform können durch das Nutzen anderer Merkmale des Systems 1400 - wie etwa der Dienste 1320 und der Hardware 1322 - die Bereitstellungs-Pipelines 1410 noch benutzerfreundlicher sein, eine einfachere Integration bereitstellen und genauere, effiziente und rechtzeitige Ergebnisse erbringen.
  • In mindestens einer Ausführungsform kann das Bereitstellungssystem 1306 eine Benutzeroberfläche 1414 (z. B. eine grafische Benutzeroberfläche, eine Web-Schnittstelle usw.) beinhalten, die verwendet werden kann, um Anwendungen zur Einbeziehung in eine oder mehrere Bereitstellungs-Pipelines 1410 auszuwählen, Anwendungen anzuordnen, Anwendungen oder Parameter oder Konstrukte derselben zu bearbeiten oder zu ändern, eine oder mehrere Bereitstellungs-Pipelines 1410 während der Einrichtung und/oder Bereitstellung zu verwenden und damit zu interagieren, und/oder um anderweitig mit dem Bereitstellungssystem 1306 zu interagieren. In mindestens einer Ausführungsform, obwohl sie in Bezug auf das Trainingssystem 1304 nicht abgebildet ist, kann die Benutzeroberfläche 1414 (oder eine andere Benutzeroberfläche) verwendet werden, um Modelle zur Verwendung bei dem Bereitstellungssystem 1306 auszuwählen, um Modelle für Training oder erneutes Training in dem Trainingssystem 1304 auszuwählen, und/oder um anderweitig mit dem Trainingssystem 1304 zu interagieren.
  • In mindestens einer Ausführungsform kann der Pipeline-Manager 1412 zusätzlich zu einem Anwendungskoordinationssystem 1428 verwendet werden, um die Interaktion zwischen Anwendungen oder Containern der Bereitstellungs-Pipeline(s) 1410 und Dienste 1320 und/oder Hardware 1322 zu verwalten. In mindestens einer Ausführungsform kann der Pipeline-Manager 1412 konfiguriert sein, um Interaktionen von Anwendung zu Anwendung, von Anwendung zu Dienst 1320 und/oder von Anwendung oder Dienst zu Hardware 1322 zu ermöglichen. Obwohl als in der Software 1318 beinhaltet veranschaulicht, ist dies in mindestens einer Ausführungsform nicht als Einschränkung gedacht, und in einigen Beispielen (z. B. wie in 12cc veranschaulicht) kann der Pipeline-Manager 1412 in den Diensten 1320 beinhaltet sein. In mindestens einer Ausführungsform kann das Anwendungskoordinationssystem 1428 (z. B. Kubernetes, DOCKER usw.) ein Container-Koordinationssystem beinhalten, das Anwendungen in Container als logische Einheiten zur Koordination, Verwaltung, Skalierung und Bereitstellung gruppieren kann. In mindestens einer Ausführungsform kann durch Zuordnen von Anwendungen aus der oder den Bereitstellungs-Pipeline(s) 1410 (z. B. eine Rekonstruktionsanwendung, eine Segmentierungsanwendung usw.) mit einzelnen Containern, jede Anwendung in einer eigenständigen Umgebung (z. B. auf einer Kernel-Ebene) ausgeführt werden, um Geschwindigkeit und Effizienz zu erhöhen.
  • In mindestens einer Ausführungsform kann jede Anwendung und/oder jeder Container (oder ein Abbild davon) einzeln entwickelt, bearbeitet und bereitgestellt werden (z. B. kann ein erster Benutzer oder Entwickler eine erste Anwendung entwickeln, bearbeiten und bereitstellen, und ein zweiter Benutzer oder Entwickler kann eine zweite Anwendung getrennt von einem ersten Benutzer oder Entwickler entwickeln, bearbeiten und bereitstellen), wodurch es möglich ist, sich auf eine Aufgabe einer einzigen Anwendung und/oder eines oder mehrerer Container zu konzentrieren und diese zu beachten, ohne durch Aufgaben einer oder mehrerer anderer Anwendungen oder Container behindert zu werden. In mindestens einer Ausführungsform können Kommunikation und Zusammenwirkung zwischen verschiedenen Containern oder Anwendungen durch den Pipeline-Manager 1412 und das Anwendungskoordinationssystem 1428 unterstützt werden. In mindestens einer Ausführungsform können, solange eine erwartete Eingabe und/oder Ausgabe jedes Containers oder jeder Anwendung einem System bekannt ist (z. B. auf Grundlage von Konstrukten von Anwendungen oder Containern), das Anwendungskoordinationssystem 1428 und/oder der Pipeline-Manager 1412 die Kommunikation und das gemeinsame Nutzen von Ressourcen zwischen jeder der Anwendungen oder jedem der Container ermöglichen. In mindestens einer Ausführungsform, da eine oder mehrere der Anwendungen oder einer oder mehrere der Container in der bzw. den Bereitstellungs-Pipeline(s) 1410 die gleichen Dienste und Ressourcen gemeinsam nutzen kann bzw. können, kann das Anwendungskoordinationssystem 1428 Dienste oder Ressourcen zwischen diversen Anwendungen oder Containern koordinieren, ihre Belastung ausgleichen und ihr gemeinsames Nutzen bestimmen. In mindestens einer Ausführungsform kann ein Planer verwendet werden, um Ressourcenanforderungen von Anwendungen oder Containern, den aktuellen Gebrauch oder den geplanten Gebrauch dieser Ressourcen und die Ressourcenverfügbarkeit zu verfolgen. In mindestens einer Ausführungsform kann ein Planer somit Ressourcen verschiedenen Anwendungen zuteilen und Ressourcen zwischen Anwendungen angesichts der Anforderungen und der Verfügbarkeit eines Systems verteilen. Bei einigen Beispielen kann ein Planer (und/oder eine andere Komponente des Anwendungskoordinationssystems 1428) die Verfügbarkeit und Verteilung von Ressourcen auf Grundlage von Beschränkungen bestimmen, die einem System auferlegt werden (z. B. Benutzerbeschränkungen), wie etwa Dienstqualität (QoS), Dringlichkeit des Bedarfs an Datenausgaben (z. B. um zu bestimmen, ob eine Echtzeit-Verarbeitung oder eine verzögerte Verarbeitung durchzuführen ist) usw.
  • In mindestens einer Ausführungsform können Dienste 1320, die von Anwendungen oder Containern in dem Bereitstellungssystem 1306 genutzt und geteilt werden, Rechendienste 1416, KI-Dienste 1418, Visualisierungsdienste 1420 und/oder andere Dienstarten beinhalten. In mindestens einer Ausführungsform können Anwendungen einen oder mehrere der Dienste 1320 aufrufen (z. B. ausführen), um Verarbeitungsoperationen für eine Anwendung durchzuführen. In mindestens einer Ausführungsform können Rechendienste 1416 durch Anwendungen genutzt werden, um Superdatenverarbeitungs- oder andere Hochleistungsrechen(high-performance computing - HPC)-Aufgaben durchzuführen. In mindestens einer Ausführungsform können ein oder mehrere Rechendienste 1416 genutzt werden, um eine Parallelverarbeitung (z. B. unter Verwendung einer parallelen Rechenplattform 1430) für die Verarbeitung von Daten über eine oder mehrere der Anwendungen und/oder eine oder mehrere Aufgaben einer einzigen Anwendung im Wesentlichen gleichzeitig durchzuführen. In mindestens einer Ausführungsform kann die parallele Rechenplattform 1430 (z. B. CUDA von NVIDIA) eine universelle Datenverarbeitung auf GPUs (GPGPU) (z. B. GPUs 1422) ermöglichen. In mindestens einer Ausführungsform kann eine Software-Schicht einer parallelen Rechenplattform 1430 Zugriff auf virtuelle Anweisungssätze und parallele Rechenelemente von GPUs zur Ausführung von Rechen-Kernels geben. In mindestens einer Ausführungsform kann die parallele Rechenplattform 1430 Speicher beinhalten, und bei einigen Ausführungsformen kann ein Speicher von mehreren Containern und/oder unter verschiedenen Verarbeitungsaufgaben innerhalb eines einzigen Containers gemeinsam genutzt werden. In mindestens einer Ausführungsform können prozessinterne Kommunikations(inter-process communication - IPC)-Aufrufe für mehrere Container und/oder für mehrere Prozesse innerhalb eines Containers generiert werden, um die gleichen Daten aus einem gemeinsam genutzten Speichersegment der parallelen Rechenplattform 1430 zu verwenden (z. B. wobei mehrere verschiedene Stufen einer Anwendung oder mehrerer Anwendungen die gleichen Informationen verarbeiten). In mindestens einer Ausführungsform können, statt eine Kopie der Daten anzulegen und Daten an verschiedene Stellen im Speicher zu bewegen (z. B. eine Lese-/Schreiboperation), Daten an der gleichen Stelle eines Speichers für eine beliebige Anzahl Verarbeitungsaufgaben (z. B. gleichzeitig, zu verschiedenen Zeiten usw.) verwendet werden. In mindestens einer Ausführungsform können, da Daten verwendet werden, um neue Daten als Ergebnis der Verarbeitung zu generieren, diese Informationen über einen neuen Ort von Daten gespeichert und von verschiedenen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform kann die Stelle der Daten und eine Stelle von aktualisierten oder bearbeiteten Daten Teil einer Definition davon sein, wie eine Nutzlast innerhalb der Container angesehen wird.
  • In mindestens einer Ausführungsform können KI-Dienste 1418 genutzt werden, um Inferenzierungsdienste zum Ausführen eines oder mehrerer maschineller Lernmodelle, die Anwendungen zugeordnet (z. B. mit der Ausführung einer oder mehrerer Verarbeitungsaufgaben einer Anwendung beauftragt) sind, durchzuführen. In mindestens einer Ausführungsform können die KI-Dienste 1418 ein KI-System 1424 unterstützen, um ein oder mehrere maschinelle Lernmodelle (z. B. neuronale Netze, wie etwa CNNs) für Segmentierungs-, Rekonstruktions-, Objekterkennungs-, Merkmalserkennungs-, Klassifizierungs- und/oder andere Inferenzierungsaufgaben auszuführen. In mindestens einer Ausführungsform können die Anwendungen der Bereitstellungs-Pipeline(s) 1410 ein oder mehrere der Ausgabemodelle 1316 von dem Trainingssystem 1304 und/oder andere Anwendungsmodelle verwenden, um eine Inferenz an Bildgebungsdaten durchzuführen. In mindestens einer Ausführungsform können zwei oder mehrere Beispiele für Inferenzierung unter Verwendung des Anwendungskoordinationssystems 1428 (z. B. eines Planers) verfügbar sein. In mindestens einer Ausführungsform kann eine erste Kategorie einen Pfad mit hoher Priorität! niedriger Latenz beinhalten, der höhere Dienstniveauvereinbarungen erreichen kann, wie etwa um Inferenz an dringenden Anforderungen während eines Notfalls oder für einen Radiologen während der Diagnose durchzuführen. In mindestens einer Ausführungsform kann eine zweite Kategorie einen Pfad mit normaler Priorität beinhalten, der für Anforderungen verwendet werden kann, die vielleicht nicht dringend sind, oder wenn die Analyse zu einem späteren Zeitpunkt durchgeführt werden kann. In mindestens einer Ausführungsform kann das Anwendungskoordinationssystem 1428 Ressourcen (z. B. Dienste 1320 und/oder Hardware 1322) auf Grundlage von Prioritätspfaden für verschiedene Inferenzierungsaufgaben von KI-Diensten 1418 verteilen.
  • In mindestens einer Ausführungsform kann ein gemeinsam genutzter Speicher für die KI-Dienste 1418 in dem System 1400 installiert sein. In mindestens einer Ausführungsform kann der gemeinsam genutzte Speicher als Cache (oder als eine andere Speichervorrichtungsart) dienen und kann verwendet werden, um Inferenzanforderungen von Anwendungen zu verarbeiten. In mindestens einer Ausführungsform, wenn eine Inferenzanforderung gestellt wird, kann eine Anforderung von einer Menge von API-Instanzen des Bereitstellungssystems 1306 empfangen werden, und eine oder mehrere Instanzen können ausgewählt werden (z. B. zur besten Anpassung, zum Belastungsausgleich usw.), um eine Anforderung zu verarbeiten. In mindestens einer Ausführungsform kann zum Verarbeiten einer Anforderung eine Anforderung in eine Datenbank eingetragen werden, ein maschinelles Lernmodell kann aus dem Modellregister 1324 ausfindig gemacht werden, falls es sich noch nicht im Cache befindet, ein Validierungsschritt kann sicherstellen, dass das geeignete maschinelle Lernmodell in einen Cache (z. B. einen gemeinsam genutzten Speicher) geladen wird, und/oder eine Kopie eines Modells kann in einem Cache gespeichert werden. In mindestens einer Ausführungsform kann ein Planer (z. B. des Pipeline-Managers 1412) verwendet werden, um eine Anwendung zu starten, auf die in einer Anforderung Bezug genommen wird, falls eine Anwendung nicht bereits läuft, oder falls es nicht genug Instanzen einer Anwendung gibt. In mindestens einer Ausführungsform, falls ein Inferenzserver nicht bereits gestartet wurde, um ein Modell auszuführen, kann ein Inferenzserver gestartet werden. Pro Modell kann eine beliebige Anzahl von Inferenzservern gestartet werden. In mindestens einer Ausführungsform können in einem Pull-Modell, in dem Inferenzserver ein Cluster bilden, Modelle zwischengespeichert werden, wenn ein Lastausgleich vorteilhaft ist. In mindestens einer Ausführungsform können Inferenzserver statisch in entsprechende, verteilte Server geladen werden.
  • In mindestens einer Ausführungsform kann die Inferenzierung unter Verwendung eines Inferenzservers durchgeführt werden, der in einem Container läuft. In mindestens einer Ausführungsform kann eine Instanz eines Inferenzservers einem Modell (und optional einer Vielzahl von Versionen eines Modells) zugeordnet sein. In mindestens einer Ausführungsform kann, falls eine Instanz eines Inferenzservers nicht existiert, wenn eine Anforderung zum Durchführen einer Inferenz an einem Modell empfangen wird, eine neue Instanz geladen werden. In mindestens einer Ausführungsform kann beim Starten eines Inferenzservers ein Modell an einen Inferenzserver übergeben werden, sodass der gleiche Container zum Bedienen unterschiedlicher Modelle verwendet werden kann, solange der Inferenzserver als andere Instanz läuft.
  • In mindestens einer Ausführungsform kann während der Anwendungsausführung eine Inferenzanforderung für eine gegebene Anwendung empfangen werden und ein Container (der z. B. eine Instanz eines Inferenzservers hostet) geladen (falls noch nicht geschehen) und eine Startprozedur aufgerufen werden. In mindestens einer Ausführungsform kann Vorverarbeitungslogik in einem Container eingehende Daten laden, decodieren und/oder beliebige zusätzliche Vorverarbeitung an diesen durchführen (z. B. unter Verwendung von CPU(s) und/oder GPU(s)). In mindestens einer Ausführungsform kann ein Container, sobald die Daten für die Inferenz vorbereitet sind, eine Inferenz nach Bedarf an den Daten durchführen. In mindestens einer Ausführungsform kann dies einen einzelnen Inferenzaufruf an einem Bild (z. B. einem Handröntgenbild) beinhalten oder Inferenz an Hunderten von Bildern (z. B. einem Brust-CT) erfordern. In mindestens einer Ausführungsform kann eine Anwendung Ergebnisse vor dem Abschluss zusammenfassen, was ohne Einschränkung eine einzelne Konfidenzbewertung, eine Segmentierung auf Pixelebene, eine Segmentierung auf Voxelebene, das Generieren einer Visualisierung oder das Generieren von Text zum Zusammenfassen von Befunden beinhalten kann. In mindestens einer Ausführungsform können verschiedenen Modellen oder Anwendungen unterschiedliche Prioritäten zugewiesen werden. Zum Beispiel können einige Modelle eine Echtzeitpriorität (TAT < 1 min) haben, während andere eine niedrigere Priorität haben (z. B. TAT < 10 min). In mindestens einer Ausführungsform können die Modellausführungszeiten von der anfordernden Einrichtung oder Entität gemessen werden und können eine Partnernetzwerküberquerungszeit sowie die Ausführung an einem Inferenzdienst beinhalten.
  • In mindestens einer Ausführungsform kann die Übertragung von Anforderungen zwischen Diensten 1320 und Inferenzanwendungen hinter einem Software-Entwicklungskit (SDK) versteckt sein, und ein robuster Transport kann über eine Warteschlange bereitgestellt werden. In mindestens einer Ausführungsform wird eine Anforderung über eine API für eine individuelle Kombination aus Anwendungs-/Mandanten-ID in eine Warteschlange gestellt, und ein SDK holt eine Anforderung aus einer Warteschlange und übergibt eine Anforderung an eine Anwendung. In mindestens einer Ausführungsform kann ein Name einer Warteschlange in einer Umgebung bereitgestellt sein, aus der ein SDK diesen aufnimmt. In mindestens einer Ausführungsform kann die asynchrone Kommunikation über eine Warteschlange nützlich sein, da sie es jeder Instanz einer Anwendung ermöglicht, die Arbeit aufzunehmen, sobald sie verfügbar ist. Die Ergebnisse können über eine Warteschlange zurück übertragen werden, um sicherzustellen, dass keine Daten verloren gehen. In mindestens einer Ausführungsform können die Warteschlangen auch eine Möglichkeit bereitstellen, Arbeit zu segmentieren, da Arbeit mit der höchsten Priorität in eine Warteschlange gehen kann, mit der die meisten Instanzen einer Anwendung verbunden sind, während Arbeit mit der niedrigsten Priorität in eine Warteschlange gehen kann, mit der eine einzige Instanz verbunden ist und die Aufgaben in einer empfangenen Reihenfolge verarbeitet. In mindestens einer Ausführungsform kann eine Anwendung auf einer GPU-beschleunigten Instanz ablaufen, die in der Cloud 1426 generiert wird, und ein Inferenzdienst kann die Inferenzierung an einer GPU durchführen.
  • In mindestens einer Ausführungsform können Visualisierungsdienste 1420 genutzt werden, um Visualisierungen zum Visualisieren von Ausgaben Anwendungen und/oder von einer oder mehreren Bereitstellungs-Pipelines 1410 zu generieren. In mindestens einer Ausführungsform können die GPUs 1422 von Visualisierungsdiensten 1420 genutzt werden, um Visualisierungen zu generieren. In mindestens einer Ausführungsform können Renderingeffekte, wie etwa Raytracing, durch die Visualisierungsdienste 1420 implementiert werden, um Visualisierungen mit höherer Qualität zu generieren. In mindestens einer Ausführungsform können Visualisierungen ohne Einschränkung 2D-Bildrenderings, 3D-Volumenrenderings, 3D-Volumenrekonstruktionen, 2D-Tomografiescheiben, Virtual-Reality-Anzeigen, Augmented-Reality-Anzeigen usw. beinhalten. In mindestens einer Ausführungsform können virtualisierte Umgebungen verwendet werden, um eine virtuelle interaktive Anzeige oder Umgebung (z. B. eine virtuelle Umgebung) für die Interaktion durch Benutzer eines Systems (z. B. Ärzte, Pfleger, Radiologen usw.) zu generieren. In mindestens einer Ausführungsform können die Visualisierungsdienste 1420 einen internen Visualisierer, Filmtechnik und/oder andere Rendering- oder Bildverarbeitungskapazitäten oder - Funktionalität (z. B. Raytracing, Rastern, interne Optik usw.) beinhalten.
  • In mindestens einer Ausführungsform kann die Hardware 1322 GPUs 1422, ein KI-System 1424, eine Cloud 1426 und/oder beliebige andere Hardware, die zum Ausführen eines Trainingssystems 1304 und/oder eines Bereitstellungssystems 1306 verwendet wird, beinhalten. In mindestens einer Ausführungsform können die GPUs 1422 (z. B. die GPUs TESLA und/oder QUADRO von NVIDIA) eine beliebige Anzahl von GPUs beinhalten, die zur Ausführung von Verarbeitungsaufgaben von Rechendiensten 1416, KI-Diensten 1418, Visualisierungsdiensten 1420, anderen Diensten und/oder einem der Merkmale oder der Funktionalität der Software 1318 verwendet werden können. Zum Beispiel können in Bezug auf KI-Dienste 1418 die GPUs 1422 verwendet werden, um eine Vorverarbeitung an Bildgebungsdaten (oder anderen Datenarten, die von maschinellen Lernmodellen verwendet werden), eine Nachverarbeitung an Ausgaben von maschinellen Lernmodellen durchzuführen, und/oder um eine Inferenzierung (z. B. um maschinelle Lernmodelle auszuführen) durchzuführen. In mindestens einer Ausführungsform können die Cloud 1426, das KI-System 1424 und/oder andere Komponenten des Systems 1400 die GPUs 1422 verwenden. In mindestens einer Ausführungsform kann die Cloud 1426 eine GPU-optimierte Plattform für Tieflernaufgaben beinhalten. In mindestens einer Ausführungsform kann das KI-System 1424 GPUs verwenden, und die Cloud 1426 - oder mindestens ein Teil, der mit Tieffernen oder Inferenzierung beauftragt ist - kann unter Verwendung eines oder mehrerer KI-Systeme 1424 ausgeführt werden. Obwohl die Hardware 1322 als diskrete Komponenten abgebildet ist, ist dies somit nicht als Einschränkung gedacht, und es können beliebige Komponenten von Hardware 1322 mit beliebigen anderen Komponenten von Hardware 1322 kombiniert oder genutzt werden.
  • In mindestens einer Ausführungsform kann das KI-System 1424 ein speziell gefertigtes Computersystem (z. B. einen Supercomputer oder einen HPC) beinhalten, das zum Inferenzieren, Tieflernen, maschinellen Lernen und/oder für andere Aufgaben künstlicher Intelligenz konfiguriert ist. In mindestens einer Ausführungsform kann das KI-System 1424 (z. B. DGX von NVIDIA) eine GPU-optimierte Software (z. B. einen Software-Stapel) beinhalten, der unter Verwendung einer Vielzahl von GPUs 1422 zusätzlich zu den CPUs, dem RAM, dem Speicher und/oder anderen Komponenten, Merkmalen oder Funktionalität ausgeführt werden kann. In mindestens einer Ausführungsform können ein oder mehrere KI-Systeme 1424 in einer Cloud 1426 (z. B. in einem Rechenzentrum) zum Durchführen einer oder aller KI-basierten Verarbeitungsaufgaben des Systems 1400 implementiert sein.
  • In mindestens einer Ausführungsform kann die Cloud 1426 eine GPU-beschleunigte Infrastruktur (z. B. NGC von NVIDIA) beinhalten, die eine GPU-optimierte Plattform zum Ausführen von Verarbeitungsaufgaben des Systems 1400 bereitstellen kann. In mindestens einer Ausführungsform kann die Cloud 1426 (ein) KI-System(e) 1424 zum Durchführen einer oder mehrerer der KI-basierten Aufgaben des Systems 1400 (z. B. als Hardware-Abstraktion und Skalierungsplattform) beinhalten. In mindestens einer Ausführungsform kann die Cloud 1426 mit dem Anwendungskoordinationssystem 1428 integriert sein und mehrere GPUs nutzen, um eine nahtlose Skalierung und einen Belastungsausgleich unter den Anwendungen und Diensten 1320 zu ermöglichen. In mindestens einer Ausführungsform kann die Cloud 1426 mit dem Ausführen mindestens einiger der Dienste 1320 des Systems 1400 beauftragt sein, wozu die Rechendienste 1416, KI-Dienste 1418 und/oder Visualisierungsdienste 1420 gehören, wie in dieser Schrift beschrieben. In mindestens einer Ausführungsform kann die Cloud 1426 eine kleine und große Batch-Inferenz durchführen (die beispielsweise TENSOR RT von NVIDIA ausführt), eine beschleunigte parallele Computer-API und -Plattform 1430 bereitstellen (z. B. CUDA von NVIDIA), das Anwendungskoordinationssystem 1428 ausführen (z. B. KUBERNETES), eine Grafikrendering-API und -Plattform bereitstellen (z. B. für Raytracing, 2D-Grafik, 3D-Grafik und/oder andere Renderingtechniken, um Filme mit höherer Qualität zu erzeugen), und/oder kann eine andere Funktionalität für das System 1400 bereitstellen.
  • 15A veranschaulicht ein Datenflussdiagramm für einen Prozess 1500, um ein maschinelles Lernmodell zu trainieren, erneut zu trainieren oder zu aktualisieren, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozess 1500 als nicht einschränkendes Beispiel unter Verwendung des Systems 1400 aus 14 ausgeführt werden. In mindestens einer Ausführungsform kann der Prozess 1500 die Dienste 1320 und/oder die Hardware 1322 des Systems 1400 nutzen, wie in dieser Schrift beschrieben. In mindestens einer Ausführungsform können verfeinerte Modelle 1512, die durch den Prozess 1500 generiert werden, von dem Bereitstellungssystem 1306 für eine oder mehrere containerisierte Anwendungen in den Bereitstellungs-Pipelines 1410 ausgeführt werden.
  • In mindestens einer Ausführungsform kann das Modelltraining 1314 das erneute Trainieren oder Aktualisieren eines anfänglichen Modells 1504 (z. B. eines vortrainierten Modells) unter Verwendung neuer Trainingsdaten (z. B. neuer Eingabedaten, wie etwa eines Kundendatensatzes 1506 und/oder neuer grundlegender Referenzdaten, die den Eingabedaten zugeordnet sind) beinhalten. In mindestens einer Ausführungsform kann/können zum erneuten Trainieren oder Aktualisieren des anfänglichen Modells 1504 (eine) Ausgabe- oder Verlustschicht(en) des anfänglichen Modells 1504 zurückgesetzt oder gelöscht und/oder durch (eine) aktualisierte oder neue Ausgabe- oder Verlustschicht(en) ersetzt werden. In mindestens einer Ausführungsform kann das anfängliche Modell 1504 zuvor fein abgestimmte Parameter aufweisen (z. B. Gewichtungen und/oder systematische Fehler), die vom vorherigen Training übriggeblieben sind, so dass das Trainieren oder erneute Trainieren 1314 nicht so lange dauert oder nicht so viel Verarbeitung benötigt wie das Trainieren eines Modells von Anfang an. In mindestens einer Ausführungsform können während des Modelltrainings 1314, indem die Ausgabe- oder Verlustschicht(en) des anfänglichen Modells 1504 zurückgesetzt oder ersetzt wurden, die Parameter für einen neuen Datensatz auf Grundlage von Verlustberechnungen, die der Genauigkeit der Ausgabe- oder Verlustschicht(en) beim Generieren von Vorhersagten an einem neuen Kundendatensatz 1506 zugeordnet sind (z. B. den Bilddaten 1308 aus 13), aktualisiert und neu abgestimmt werden.
  • In mindestens einer Ausführungsform können vortrainierte Modelle 1406 in einem Datenarchiv oder einem Register (z. B. dem Modellregister 1324 aus 13) gespeichert sein. In mindestens einer Ausführungsform können die vortrainierten Modelle 1406 mindestens zum Teil in einer oder mehreren anderen Einrichtungen als einer Einrichtung, die den Prozess 1500 ausführt, trainiert worden sein. In mindestens einer Ausführungsform können zum Schutz der Privatsphäre und Rechte von Patienten, Versuchspersonen oder Kunden von verschiedenen Einrichtungen die vortrainierten Modelle 1406 vor Ort unter Verwendung von Kunden- oder Patientendaten, die vor Ort generiert werden, trainiert worden sein. In mindestens einer Ausführungsform können die vortrainierten Modelle 1406 unter Verwendung der Cloud 1426 und/oder einer anderen Hardware 1322 trainiert werden, doch können keine vertraulichen, privatsphärengeschützten Patientendaten an beliebige Komponenten der Cloud 1426 (oder andere externe Hardware) übertragen werden, von diesen verwendet oder für diese zugänglich sein. In mindestens einer Ausführungsform, bei der ein vortrainiertes Modell 1406 zur Verwendung von Patientendaten von mehr als einer Einrichtung trainiert wird, kann das vortrainierte Modell 1406 individuell für jede Einrichtung trainiert worden sein, bevor es mit Patienten- oder Kundendaten von einer anderen Einrichtung trainiert wird. In mindestens einer Ausführungsform, wie etwa wenn Kunden- oder Patientendaten von Privatsphärenüberlegungen befreit wurden (z. B. durch eine Verzichterklärung, zu Versuchszwecken usw.), oder wenn Kunden- oder Patientendaten in einem öffentlichen Datensatz beinhaltet sind, können Kunden- oder Patientendaten von einer beliebigen Anzahl von Einrichtungen verwendet werden, um das vortrainierte Modell 1406 vor Ort und/oder extern, wie etwa in einem Rechenzentrum oder einer anderen Cloud-Computerinfrastruktur, zu trainieren.
  • In mindestens einer Ausführungsform, wenn Anwendungen zur Verwendung in Bereitstellungs-Pipelines 1410 ausgewählt werden, kann ein Benutzer auch maschinelle Lernmodelle auswählen, die für spezifische Anwendungen zu verwenden sind. In mindestens einer Ausführungsform kann es sein, dass ein Benutzer kein Modell zur Verwendung hat, so dass ein Benutzer ein vortrainiertes Modell 1406 zur Verwendung mit einer Anwendung auswählen kann. In mindestens einer Ausführungsform ist das vortrainierte Modell 1406 vielleicht nicht optimiert, um genaue Ergebnisse an dem Kundendatensatz 1506 einer Einrichtung eines Benutzers zu generieren (z. B. auf Grundlage der Patientendiversität, von demographischen Daten, Arten von verwendeten medizinischen Bildgebungsvorrichtungen usw.). In mindestens einer Ausführungsform kann vor dem Bereitstellen eines vortrainierten Modells 1406 in der Bereitstellungs-Pipeline 1410 zur Verwendung mit einer oder mehreren Anwendungen das vortrainierte Modell 1406 zur Verwendung in einer jeweiligen Einrichtung aktualisiert, neu trainiert und/oder fein abgestimmt werden.
  • In mindestens einer Ausführungsform kann ein Benutzer das vortrainierte Modell 1406 auswählen, das aktualisiert, neu trainiert und/oder fein abgestimmt werden soll, und das vortrainierte Modell 1406 kann als anfängliches Modell 1504 für das Trainingssystem 1304 innerhalb des Prozesses 1500 bezeichnet werden. In mindestens einer Ausführungsform kann ein Kundendatensatz 1506 (z. B. Bildgebungsdaten, Genomikdaten, Sequenzierungsdaten oder andere Datenarten, die von Vorrichtungen in einer Einrichtung generiert werden) verwendet werden, um das Modelltraining 1314 (das ohne Einschränkung Transferlernen beinhalten kann) an dem anfänglichen Modell 1504 durchzuführen, um ein verfeinertes Modell 1512 zu generieren. In mindestens einer Ausführungsform können grundlegende Referenzdaten, die dem Kundendatensatz 1506 entsprechen, von dem Trainingssystem 1304 generiert werden. In mindestens einer Ausführungsform können grundlegende Referenzdaten mindestens zum Teil von Klinikern, Wissenschaftlern, Ärzten, praktischen Ärzten in einer Einrichtung (z. B. als markierte Klinikdaten 1312 aus 13) generiert werden.
  • In mindestens einer Ausführungsform kann eine KI-unterstützte Annotation 1310 bei einigen Beispielen verwendet werden, um grundlegende Referenzdaten zu generieren. In mindestens einer Ausführungsform kann die KI-unterstützte Annotation 1310 (z. B. unter Verwendung eines KI-unterstützten Annotations-SDK implementiert) maschinelle Lernmodelle (z. B. neuronale Netze) nutzen, um vorgeschlagene oder vorhergesagte grundlegende Referenzdaten für einen Kundendatensatz zu generieren. In mindestens einer Ausführungsform kann der Benutzer 1510 Annotations-Tools innerhalb einer Benutzeroberfläche (einer grafischen Benutzeroberfläche (graphical user interface - GUI)) an der Rechenvorrichtung 1508 verwenden.
  • In mindestens einer Ausführungsform kann der Benutzer 1510 mit einer GUI über die Rechenvorrichtung 1508 interagieren, um (automatische) Annotationen zu bearbeiten oder fein abzustimmen. In mindestens einer Ausführungsform kann ein Polygonbearbeitungsmerkmal verwendet werden, um die Scheitelpunkte eines Polygons an mehrere genaue oder fein abgestimmte Stellen zu bewegen.
  • In mindestens einer Ausführungsform, sobald der Kundendatensatz 1506 grundlegende Referenzdaten zugeordnet aufweist, können die grundlegenden Referenzdaten (z. B. aus einer KI-unterstützten Annotation, einer manuellen Markierung usw.) während des Modelltrainings 1314 verwendet werden, um das verfeinerte Modell 1512 zu generieren. In mindestens einer Ausführungsform kann der Kundendatensatz 1506 beliebig oft auf ein anfängliches Modell 1504 angewendet werden, und die grundlegenden Referenzdaten können verwendet werden, um die Parameter des anfänglichen Modells 1504 zu aktualisieren, bis ein annehmbares Niveau von Genauigkeit für das verfeinerte Modell 1512 erreicht wurde. In mindestens einer Ausführungsform, sobald das verfeinerte Modell 1512 generiert wurde, kann das verfeinerte Modell 1512 innerhalb einer oder mehrerer Bereitstellungs-Pipelines 1410 in einer Einrichtung zum Durchführen einer oder mehrerer Verarbeitungsaufgaben in Bezug auf medizinische Bildgebungsdaten bereitgestellt werden.
  • In mindestens einer Ausführungsform kann das verfeinerte Modell 1512 in vortrainierte Modelle 1406 in dem Modellregister 1324 hochgeladen werden, um von einer anderen Einrichtung ausgewählt zu werden. In mindestens einer Ausführungsform kann dieser Prozess mit beliebig vielen Einrichtungen vervollständigt werden, so dass das verfeinerte Modell 1512 an neuen Datensätzen beliebig oft weiter verfeinert werden kann, um ein universelleres Modell zu generieren.
  • 15B ist eine beispielhafte Veranschaulichung einer Client-Server-Architektur 1532, um Annotations-Tools mit vortrainierten Annotationsmodellen zu verbessern, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können KI-unterstützte Annotations-Tools 1536 auf Grundlage einer Client-Server-Architektur 1532 instanziiert werden. In mindestens einer Ausführungsform können Annotations-Tools 1536 bei Bildgebungsanwendungen Radiologen beispielsweise dabei helfen, Organe und Anomalien zu identifizieren. In mindestens einer Ausführungsform können die Bildgebungsanwendungen Software-Tools beinhalten, die dem Benutzer 1510 helfen, als nicht einschränkendes Beispiel ein paar extreme Punkte an einem bestimmten interessierenden Organ in Rohbildern 1534 (z. B. in einem 3D-MRI oder CT-Scan) zu identifizieren und automatisch markierte Ergebnisse für alle 2D-Schichten eines bestimmten Organs zu erhalten. In mindestens einer Ausführungsform können die Ergebnisse in einem Datenarchiv als Trainingsdaten 1538 gespeichert werden und (beispielhaft und nicht einschränkend) als grundlegende Referenzdaten zum Training verwendet werden. In mindestens einer Ausführungsform, wenn die Rechenvorrichtung 1508 extreme Punkte für eine KI-unterstützte Annotation 1310 sendet, kann ein Tieflernmodell beispielsweise diese Daten als Eingabe empfangen und Inferenzergebnisse eines segmentierten Organs oder einer Anomalie zurückgeben. In mindestens einer Ausführungsform können vorinstanziierte Annotations-Tools, wie etwa ein KI-unterstütztes Annotations-Tool 1536B in 15B, verbessert werden, indem API-Aufrufe (z. B. ein API-Aufruf 1544) an einen Server, wie etwa einen Annotationsassistenzserver 1540, der einen Satz von vortrainierten Modellen 1542 beinhalten kann, die beispielsweise in einem Annotationsmodellregister gespeichert sind, getätigt werden. In mindestens einer Ausführungsform kann ein Annotationsmodellregister vortrainierte Modelle 1542 speichern (z. B. maschinelle Lernmodelle, wie etwa Tieffernmodelle), die vortrainiert werden, um eine KI-unterstützte Annotation an einem bestimmten Organ oder einer Anomalie durchzuführen. Diese Modelle können ferner unter Verwendung der Trainings-Pipelines 1404 aktualisiert werden. In mindestens einer Ausführungsform können vorinstallierte Annotationswerkzeuge im Verlauf der Zeit verbessert werden, wenn neue gekennzeichnete Klinikdaten 1312 hinzugefügt werden.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • AUTONOMES FAHRZEUG
  • 16A veranschaulicht ein Beispiel für ein autonomes Fahrzeug 1600 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das autonome Fahrzeug 1600 (in dieser Schrift alternativ als „Fahrzeug 1600“ bezeichnet) ohne Einschränkung ein Personenkraftwagen sein, wie etwa ein Auto, ein Truck, ein Bus und/oder eine andere Art von Fahrzeug, das einen oder mehrere Fahrgäste aufnimmt. In mindestens einer Ausführungsform kann das Fahrzeug 1a00 ein Sattelschlepper sein, der zum Transport von Fracht verwendet wird. In mindestens einer Ausführungsform kann das Fahrzeug 1a00 ein Flugzeug, ein Roboterfahrzeug oder eine andere Art von Fahrzeug sein.
  • Autonome Fahrzeuge können im Hinblick auf Automatisierungsstufen beschrieben werden, die von der National Highway Traffic Safety Administration („NHTSA“), einer Abteilung des US-Verkehrsministeriums, und der Society of Automotive Engineers („SAE“) „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles“ (z. B. Standard Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Standard Nr. J3016-201609, veröffentlicht am 30. September 2016, sowie frühere und zukünftige Versionen dieses Standards) definiert sind. In einer oder mehreren Ausführungsformen kann das Fahrzeug 1600 zu einer Funktionalität gemäß einer oder mehreren von Stufe 1- Stufe 5 der Stufen für autonomes Fahren in der Lage sein. Zum Beispiel kann in mindestens einer Ausführungsform das Fahrzeug 1600 in Abhängigkeit von der Ausführungsform zu einer bedingten Automatisierung (Stufe 3), einer hohen Automatisierung (Stufe 4) und/oder einer vollständigen Automatisierung (Stufe 5) in der Lage sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ohne Einschränkung Komponenten, wie etwa ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z. B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs beinhalten. In mindestens einer Ausführungsform kann das Fahrzeug 1600 ohne Einschränkung ein Antriebssystem 1650, wie etwa eine Brennkraftmaschine, ein Hybridelektrotriebwerk, einen vollelektrischen Motor und/oder eine andere Art von Antriebssystem, beinhalten. In mindestens einer Ausführungsform kann das Antriebssystem 1650 mit einem Antriebsstrang des Fahrzeugs 1600 verbunden sein, der ohne Einschränkung ein Getriebe beinhalten kann, um den Antrieb des Fahrzeugs 1600 zu ermöglichen. In mindestens einer Ausführungsform kann das Antriebssystem 1650 als Reaktion auf das Empfangen von Signalen von einer Drossel/(einem) Beschleuniger(n) 1652 gesteuert werden.
  • In mindestens einer Ausführungsform wird ein Lenksystem 1654, das ohne Einschränkung ein Lenkrad beinhalten kann, verwendet, um ein Fahrzeug 1600 (z. B. entlang eines gewünschten Pfads oder einer gewünschten Route) zu lenken, wenn das Antriebssystem 1650 in Betrieb ist (z. B., wenn das Fahrzeug in Bewegung ist). In mindestens einer Ausführungsform kann ein Lenksystem 1654 Signale von (einem) Lenkaktor(en) 1656 empfangen. Für die vollständige Automatisierungsfunktionalität (Stufe 5) kann ein Lenkrad optional sein. In mindestens einer Ausführungsform kann ein Bremssensorsystem 1646 verwendet werden, um Fahrzeugbremsen als Reaktion auf das Empfangen von Signalen von (einem) Bremsaktor(en) 1648 und/oder Bremssensoren zu betreiben.
  • In mindestens einer Ausführungsform stellt/stellen der/die Controller 1636, der/die ohne Einschränkung ein oder mehrere Systeme auf einem Chip („SoCs“) (in 16A nicht gezeigt) und/oder (eine) Grafikverarbeitungseinheit(en) („GPU(s)“) beinhalten kann/können, einer/einem oder mehreren Komponenten und/oder Systemen des Fahrzeugs 1600 Signale (die z. B. für Befehle repräsentativ sind) bereit. Zum Beispiel kann/können in mindestens einer Ausführungsform der/die Controller 1636 Signale zum Betreiben der Fahrzeugbremsen über den/die Bremsaktor(en) 1648, zum Betreiben des Lenksystems 1654 über den/die Lenkaktor(en) 1656 und/oder zum Betreiben des Antriebssystems 1650 über die Drossel/den/die Beschleuniger 1652 senden. Der/die Controller 1636 kann/können eine oder mehrere bordeigene (z. B. integrierte) Rechenvorrichtungen (z. B. Supercomputer) beinhalten, die Sensorsignale verarbeiten und Betriebsbefehle ausgeben (z. B. Signale, die Befehle darstellen), um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Führen des Fahrzeugs 1600 zu unterstützen. In mindestens einer Ausführungsform kann/können der/die Controller 1636 einen ersten Controller 1636 für Funktionen des autonomen Fahrens, einen zweiten Controller 1636 für funktionelle Sicherheitsfunktionen, einen dritten Controller 1636 für eine Funktionalität der künstlichen Intelligenz (z. B. Computervision), einen vierten Controller 1636 für eine Infotainment-Funktionalität, einen fünften Controller 1636 für Redundanz in Notfällen und/oder andere Controller beinhalten. In mindestens einer Ausführungsform kann ein einziger Controller 1636 zwei oder mehrere der vorstehend genannten Funktionen handhaben, können zwei oder mehr Controller 1636 eine einzige Funktion handhaben und/oder eine beliebige Kombination davon.
  • In mindestens einer Ausführungsform stellt/stellen der/die Controller 1636 Signale zum Steuern einer/eines oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 1600 als Reaktion auf Sensordaten bereit, die von einem oder mehreren Sensoren empfangen werden (z. B. Sensoreingaben). In mindestens einer Ausführungsform können die Sensordaten zum Beispiel und ohne Einschränkung empfangen werden von (einem) Sensor(en) 1658 von globalen Navigationssatellitensystemen („GNSS“) (z. B. (einem) Sensor(en) des globalen Positionsbestimmungssystems), (einem) RADAR-Sensor(en) 1660, (einem) Ultraschallsensor(en) 1662, (einem) LIDAR-Sensor(en) 1664, (einem) Sensor(en) 1666 einer Trägheitsmesseinheit (inertial measurement unit - „IMU“) (z. B. (einem) Beschleunigungsmesser(n), Gyroskop(en), Magnetkompass(en), (einem) Magnetometer(n) usw.), (einem) Mikrofon(en) 1696, (einer) Stereokamera(s) 1668, (einer) Weitsichtkamera(s) 1670 (z. B. Fischaugenkameras), (einer) Infrarotkamera(s) 1672, (einer) Rundumkamera(s) 1674 (z. B. 360-Grad-Kameras), Langstreckenkameras (in 16A nicht gezeigt), (einer) Mittelstreckenkamera(s) (in 16A nicht gezeigt), (einem) Geschwindigkeitssensor(en) 1644 (z. B. zum Messen der Geschwindigkeit des Fahrzeugs 1600), (einem) Schwingungssensor(en) 1642, (einem) Lenksensor(en) 1640, (einem) Bremssensor(en) (z. B. als Teil des Bremssensorsystems 1646) und/oder anderen Sensorarten.
  • In mindestens einer Ausführungsform können einer oder mehrere der Controller 1636 Eingaben (z. B. durch Eingabedaten dargestellt) von einem Kombiinstrument 1632 des Fahrzeugs 1600 empfangen und Ausgaben (z. B. durch Ausgabedaten, Anzeigedaten usw. dargestellt) über eine Anzeige 1634 einer Mensch-Maschine-Schnittstelle (human-machine interface - „HMI“), einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 1600 bereitstellen. In mindestens einer Ausführungsform können die Ausgaben Informationen wie etwa Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. eine hochauflösende Karte (in 16A nicht gezeigt)), Standortdaten (z. B. den Standort des Fahrzeugs 1600, wie etwa auf einer Karte), Richtung, Standort anderer Fahrzeuge (z. B. ein Belegungsgitter), Informationen über Objekte und den Status von Objekten, wie von dem/den Controller(n) 1636 wahrgenommen, usw. beinhalten. Zum Beispiel kann in mindestens einer Ausführungsform die HMI-Anzeige 1634 Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. eines Straßenschilds, eines Warnschilds, einer sich ändernden Ampel usw.) und/oder Informationen über Fahrmanöver anzeigen, die das Fahrzeug durchgeführt hat, gerade durchführt oder durchführen wird (z. B. jetzt die Spur wechseln, in zwei Meilen die Ausfahrt 34B nehmen usw.).
  • In mindestens einer Ausführungsform beinhaltet das Fahrzeug 1600 ferner eine Netzwerkschnittstelle 1624, die (eine) drahtlose Antenne(n) 1626 und/oder (ein) Modem(s) zum Kommunizieren über ein oder mehrere Netzwerke verwenden kann. Zum Beispiel kann in mindestens einer Ausführungsform die Netzwerkschnittstelle 1624 in der Lage sein, über Long-Term-Evolution („LTE“), Breitband-Codemultiplexverfahren (wideband code division multiple access - „WCDMA“), Universal Mobile Telecommunications System („UMTS“), Global System for Mobile Communication („GSM“), IMT-CDMA-Multi-Carrier („CDMA2000“) usw. zu kommunizieren. In mindestens einer Ausführungsform kann/können die drahtlose(n) Antenne(n) 1626 auch eine Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeugen, mobilen Vorrichtungen usw.) unter Verwendung von (einem) lokalen Netzwerk(en), wie etwa Bluetooth, Bluetooth Low Energy („LE“), Z-Wave, ZigBee usw., und/oder (einem) Weitverkehrsnetzwerk(en) mit geringer Leistung (low power wide-area networks - „LPWANs“), wie etwa LoRaWAN, SigFox usw., ermöglichen.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 in dem System aus 16A für Inferenzierungs- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern, die unter Verwendung von in dieser Schrift beschriebenen Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder Verwendungsfällen von neuronalen Netzen berechnet werden, verwendet werden.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • 16B veranschaulicht ein Beispiel für Kamerastandorte und Sichtfelder für das autonome Fahrzeug 1600 aus 16A gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform stellen die Kameras und die jeweiligen Sichtfelder eine beispielhafte Ausführungsform dar und sind nicht als einschränkend zu betrachten. Beispielsweise können in mindestens einer Ausführungsform zusätzliche und/oder alternative Kameras beinhaltet sein und/oder die Kameras können sich an anderen Stellen des Fahrzeugs 1600 befinden.
  • In mindestens einer Ausführungsform können die Kameraarten für Kameras ohne Einschränkung Digitalkameras beinhalten, die für die Verwendung mit Komponenten und/oder Systemen des Fahrzeugs 1600 angepasst sein können. In mindestens einer Ausführungsform kann/können eine oder mehrere der Kamera(s) mit der Automobilsicherheitsintegritätsstufe (automotive safety integrity level - „ASIL“) B und/oder mit einer anderen ASIL betrieben werden. In mindestens einer Ausführungsform können die Kameraarten in Abhängigkeit von der Ausführungsform zu einer beliebigen Bildaufnahmerate in der Lage sein, wie z. B. 60 Bilder pro Sekunde (frames per second - fps), 120 fps, 240 fps usw. In mindestens einer Ausführungsform können Kameras in der Lage sein, Rollblendenverschlüsse, globale Blendenverschlüsse, eine andere Art von Blendenverschluss oder eine Kombination davon zu verwenden. In mindestens einer Ausführungsform kann die Farbfilteranordnung eine Rot-Klar-Klar-Klar(red clear clear clear - „RCCC“)-Farbfilteranordnung, eine Rot-Klar-Klar-Blau(red clear clear blue - „RCCB“)-Farbfilteranordnung, eine Rot-Blau-Grün-Klar(red blue green clear - „RBGC“)-Farbfilteranordnung, eine Foveon X3-Farbfilteranordnung, eine Bayer-Sensor(„RGGB“)-Farbfilteranordnung, eine Monochromsensor-Farbfilteranordnung und/oder eine andere Art von Farbfilteranordnung beinhalten. In mindestens einer Ausführungsform können zur Erhöhung der Lichtempfindlichkeit Klar-Pixel-Kameras, wie z. B. Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, verwendet werden.
  • In mindestens einer Ausführungsform können eine oder mehrere der Kamera(s) verwendet werden, um Funktionen von weiterentwickelten Fahrerassistenzsystemen (advanced driver assistance systems - ADAS) durchzuführen (z. B. als Teil einer redundanten oder ausfallsicheren Ausgestaltung). Zum Beispiel kann in mindestens einer Ausführungsform eine Multifunktions-Monokamera installiert sein, die Funktionen wie Spurverlassenswarnung, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung bereitstellt. In mindestens einer Ausführungsform kann/können eine oder mehrere der Kamera(s) (z. B. alle Kameras) simultan Bilddaten (z. B. ein Video) aufnehmen und bereitstellen.
  • In mindestens einer Ausführungsform können eine oder mehrere der Kameras in einer Montagebaugruppe, z. B. einer kundenspezifisch entworfenen (dreidimensional („3D“) gedruckten) Baugruppe, montiert sein, um Streulicht und Reflexionen aus dem Inneren des Autos (z. B. Reflexionen vom Armaturenbrett, die sich in den Windschutzscheibenspiegeln spiegeln) auszuschließen, welche die Bilddatenerfassungsfähigkeiten der Kamera beeinträchtigen können. Unter Bezugnahme auf Außenspiegel-Montagebaugruppen können in mindestens einer Ausführungsform die Außenspiegelbaugruppen kundenspezifisch in 3D gedruckt werden, sodass die Kameramontageplatte der Form des Außenspiegels entspricht. In mindestens einer Ausführungsform kann/können die Kamera(s) in den Außenspiegel integriert sein. Bei Seitensichtkameras kann/können die Kamera(s) in mindestens einer Ausführungsform auch in vier Säulen an jeder Ecke der Kabine integriert sein.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte der Umgebung vor dem Fahrzeug 1600 beinhaltet (z. B. nach vorne gerichtete Kameras), für die Rundumsicht verwendet werden, um dabei zu helfen, nach vom gerichtete Pfade und Hindernisse zu identifizieren, sowie mit Hilfe eines oder mehrerer Controller 1636 und/oder Steuer-SoCs beim Bereitstellen von Informationen zu helfen, die zum Generieren eines Belegungsgitters und/oder Bestimmen bevorzugter Fahrzeugpfade entscheidend sind. In mindestens einer Ausführungsform können nach vorne gerichtete Kameras verwendet werden, um viele der gleichen ADAS-Funktionen wie LIDAR durchzuführen, einschließlich, ohne Einschränkung, Notbremsung, Fußgängererkennung und Kollisionsvermeidung. In mindestens einer Ausführungsform können nach vorne gerichtete Kameras auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich, ohne Einschränkung, Spurverlassenswarnungen (lane departure warning - „LDW“), autonomer Geschwindigkeitsregelung (autonomous cruise control - „ACC“) und/oder anderer Funktionen wie Verkehrszeichenerkennung.
  • In mindestens einer Ausführungsform kann eine Vielfalt von Kameras in einer nach vorne gerichteten Konfiguration verwendet werden, einschließlich zum Beispiel einer monokularen Kameraplattform, die einen CMOS(„Complementary-Metal-Oxide-Semiconductor“)-Farbbildwandler aufweist. In mindestens einer Ausführungsform kann die Weitsichtkamera 1670 verwendet werden, um Objekte wahrzunehmen, die aus der Peripherie ins Blickfeld kommen (z. B. Fußgänger, kreuzender Verkehr oder Fahrräder). Obwohl in 16B nur eine Weitsichtkamera 1670 veranschaulicht ist, kann in anderen Ausführungsformen eine beliebige Anzahl (einschließlich null) von Weitsichtkamera(s) 1670 an dem Fahrzeug 1600 vorhanden sein. In mindestens einer Ausführungsform kann eine beliebige Anzahl von Langstreckenkamera(s) 1698 (z. B. ein Weitwinkel-Stereokamerapaar) zur tiefenbasierten Objekterkennung verwendet werden, insbesondere für Objekte, für die ein neuronales Netz noch nicht trainiert worden ist. In mindestens einer Ausführungsform können die Langstreckenkamera(s) 1698 auch zur Objekterkennung und -klassifizierung sowie zur grundlegenden Objektverfolgung verwendet werden.
  • In mindestens einer Ausführungsform kann zudem eine beliebige Anzahl von Stereokamera(s) 1668 in einer nach vorne gerichteten Konfiguration beinhaltet sein. In mindestens einer Ausführungsform können eine oder mehrere der Stereokamera(s) 1668 eine integrierte Steuereinheit beinhalten, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik („FPGA“) und einen Multi-Core-Mikroprozessor mit einer integrierten Controller Area Network („CAN“)- oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. In mindestens einer Ausführungsform kann eine derartige Einheit verwendet werden, um eine 3D-Karte der Umgebung des Fahrzeugs 1600 zu generieren, einschließlich einer Entfernungsschätzung für alle Punkte in dem Bild. In mindestens einer Ausführungsform können eine oder mehrere der Stereokamera(s) 1668 ohne Einschränkung (einen) kompakte(n) Stereosicht-Sensor(en) beinhalten, die ohne Einschränkung zwei Kameralinsen (je eine auf der linken und rechten Seite) und einen Bildverarbeitungschip beinhalten können, der den Abstand zwischen dem Fahrzeug 1600 und dem Zielobjekt messen und die generierten Informationen (z. B. Metadaten) verwenden kann, um autonome Notbrems- und Spurhaltewarnfunktionen zu aktivieren. In mindestens einer Ausführungsform können auch andere Arten von Stereokameras 1668 zusätzlich oder alternativ zu den in dieser Schrift beschriebenen verwendet werden.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte der Umgebung seitlich des Fahrzeugs 1600 beinhaltet (z. B. Seitensichtkameras), für die Rundumsicht verwendet werden, wodurch Informationen bereitgestellt werden, die zum Erzeugen und Aktualisieren des Belegungsgitters sowie zum Generieren von Seitenaufprallkollisionswarnungen verwendet werden. Zum Beispiel könnten in mindestens einer Ausführungsform die Rundumkamera(s) 1674 (z. B. vier Rundumkameras 1674, wie in 16B veranschaulicht) an dem Fahrzeug 1600 positioniert sein. In mindestens einer Ausführungsform kann/können die Rundumkamera(s) 1674 ohne Einschränkung eine beliebige Anzahl und Kombination von (einer) Weitsichtkamera(s) 1670, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder dergleichen beinhalten. Zum Beispiel können in mindestens einer Ausführungsform vier Fischaugenkameras an der Vorderseite, der Rückseite und den Seiten des Fahrzeugs 1600 positioniert sein. In mindestens einer Ausführungsform kann das Fahrzeug 1600 drei Rundumkamera(s) 1674 (z. B. links, rechts und hinten) verwenden und eine oder mehrere andere Kamera(s) (z. B. eine vorwärts gerichtete Kamera) als vierte Rundumsichtkamera einsetzen.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte der Umgebung hinter dem Fahrzeug 1600 beinhaltet (z. B. Rückfahrkameras), als Einparkhilfe, für die Rundumsicht, Heckkollisionswarnungen und das Erzeugen und Aktualisieren des Belegungsgitters verwendet werden. In mindestens einer Ausführungsform kann eine breite Vielfalt von Kameras verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als nach vorne gerichtete Kamera(s) geeignet sind (z. B. (eine) Langstreckenkameras 1698 und/oder Mittelstreckenkamera(s) 1676, Stereokamera(s) 1668, Infrarotkamera(s) 1672 usw.), wie in dieser Schrift beschrieben.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 in dem System aus 16B für Inferenzierungs- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern, die unter Verwendung von in dieser Schrift beschriebenen Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder Verwendungsfällen von neuronalen Netzen berechnet werden, verwendet werden.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • 16C ist ein Blockdiagramm, das eine beispielhafte Systemarchitektur für das autonome Fahrzeug 1600 aus 16A veranschaulicht, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform ist jede/jedes der Komponenten, Merkmale und Systeme des Fahrzeugs 1600 in 16C als über einen Bus 1602 verbunden veranschaulicht. In mindestens einer Ausführungsform kann der Bus 1602 ohne Einschränkung eine CAN-Datenschnittstelle beinhalten (in dieser Schrift alternativ als „CAN-Bus“ bezeichnet). In mindestens einer Ausführungsform kann ein CAN-Bus ein Netzwerk innerhalb des Fahrzeugs 1600 sein, das zur Unterstützung der Steuerung verschiedener Merkmale und Funktionen des Fahrzeugs 1600 verwendet wird, wie etwa Betätigung der Bremsen, Beschleunigung, Bremsen, Lenkung, Scheibenwischer usw. In mindestens einer Ausführungsform kann der Bus 1602 dazu konfiguriert sein, Dutzende oder sogar Hunderte von Knoten aufzuweisen, jeder mit seiner eigenen eindeutigen Kennung (z. B. einer CAN-ID). In mindestens einer Ausführungsform kann der Bus 1602 ausgelesen werden, um den Lenkradwinkel, die Fahrgeschwindigkeit, die Motordrehzahl pro Minute („U/min“), die Tastenpositionen und/oder andere Fahrzeugstatusanzeigen zu ermitteln. In mindestens einer Ausführungsform kann der Bus 1602 ein CAN-Bus sein, der ASIL B-konform ist.
  • In mindestens einer Ausführungsform können zusätzlich zu oder alternativ zu CAN auch FlexRay und/oder Ethernet verwendet werden. In mindestens einer Ausführungsform kann eine beliebige Anzahl von Bussen 1602 vorhanden sein, die ohne Einschränkung null oder mehr CAN-Busse, null oder mehr FlexRay-Busse, null oder mehr Ethernet-Busse und/oder null oder mehr andere Arten von Bussen mit einem anderen Protokoll beinhalten können. In mindestens einer Ausführungsform können zwei oder mehr Busse 1602 verwendet werden, um unterschiedliche Funktionen durchzuführen, und/oder können sie zur Redundanz verwendet werden. Zum Beispiel kann ein erster Bus 1602 für die Kollisionsvermeidungsfunktionalität verwendet werden und ein zweiter Bus 1602 für die Betätigungssteuerung verwendet werden. In mindestens einer Ausführungsform kann jeder Bus 1602 mit beliebigen Komponenten des Fahrzeugs 1600 kommunizieren und können zwei oder mehr Busse 1602 mit denselben Komponenten kommunizieren. In mindestens einer Ausführungsform können jedes von einer beliebigen Anzahl von (einem) System(en) auf (einem) Chip(s) („SoC(s)“) 1604, jeder des/der Controller 1636 und/oder jeder Computer in dem Fahrzeug Zugriff auf dieselben Eingabedaten (z. B. Eingaben von Sensoren des Fahrzeugs 1600) haben und mit einem gemeinsamen Bus, wie etwa dem CAN-Bus, verbunden sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 einen oder mehrere Controller 1636 beinhalten, wie etwa diejenigen, die in dieser Schrift in Bezug auf 16A beschrieben sind. Der/die Controller 1636 können für eine Vielfalt von Funktionen verwendet werden. In mindestens einer Ausführungsform kann/können der/die Controller 1636 mit beliebigen von verschiedenen anderen Komponenten und Systemen des Fahrzeugs 1600 gekoppelt sein und können sie zur Steuerung des Fahrzeugs 1600, der künstlichen Intelligenz des Fahrzeugs 1600, des Infotainments für das Fahrzeug 1600 und/oder dergleichen verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 eine beliebige Anzahl von SoCs 1604 beinhalten. Jedes der SoCs 1604 kann ohne Einschränkung zentrale Verarbeitungseinheiten („CPU(s)“) 1606, Grafikverarbeitungseinheiten („GPU(s)“) 1608, (einen) Prozessor(en) 1610, (einen) Cache(s) 1612, (einen) Beschleuniger 1614, (einen) Datenspeicher 1616 und/oder andere nicht veranschaulichte Komponenten und Merkmale beinhalten. In mindestens einer Ausführungsform können die SoC(s) 1604 zum Steuern des Fahrzeugs 1600 in einer Vielfalt von Plattformen und Systemen verwendet werden. Zum Beispiel können in mindestens einer Ausführungsform die SoC(s) 1604 in einem System (z. B. einem System des Fahrzeugs 1600) mit einer hochauflösenden (High Definition - „HD“-)Karte 1622 kombiniert werden, die Kartenauffrischungen und/oder -aktualisierungen über die Netzwerkschnittstelle 1624 von einem oder mehreren Servern (in 16C nicht gezeigt) erlangen kann.
  • In mindestens einer Ausführungsform kann/können die CPU(s) 1606 einen CPU-Cluster oder CPU-Komplex (in dieser Schrift alternativ als „CCPLEX“ bezeichnet) beinhalten. In mindestens einer Ausführungsform können die CPU(s) 1606 mehrere Kerne und/oder Level-Zwei(„L2“)-Caches beinhalten. Zum Beispiel kann/können in mindestens einer Ausführungsform die CPU(s) 1606 acht Kerne in einer kohärenten Multiprozessorkonfiguration beinhalten. In mindestens einer Ausführungsform kann/können die CPU(s) 1606 vier Doppelkerncluster beinhalten, wobei jeder Cluster einen dedizierten L2-Cache (z. B. einen L2-Cache mit 2 MB) aufweist. In mindestens einer Ausführungsform kann/können die CPU(s) 1606 (z. B. CCPLEX) dazu konfiguriert sein, den simultanen Clusterbetrieb derart zu unterstützen, dass eine beliebige Kombination von Clustern von CPU(s) 1606 zu einem beliebigen gegebenen Zeitpunkt aktiv sein kann.
  • In mindestens einer Ausführungsform können eine oder mehrere der CPU(s) 1606 Leistungsverwaltungsfähigkeiten implementieren, die ohne Einschränkung eines oder mehrere der folgenden Merkmale beinhalten: einzelne Hardwareblöcke können automatisch taktgesteuert werden, wenn sie inaktiv sind, um dynamische Leistung zu sparen; jeder Kerntakt kann gesteuert werden, wenn der Kern aufgrund der Ausführung von Wait-for-Interrupt(„WFI“)-/Wait-for-Event(„WFE“)-Anweisungen keine Anweisungen aktiv ausführt; jeder Kern kann unabhängig leistungsgesteuert sein; jeder Kerncluster kann unabhängig taktgesteuert sein, wenn alle Kerne taktgesteuert oder leistungsgesteuert sind; und/oder jeder Kerncluster kann unabhängig leistungsgesteuert sein, wenn alle Kerne leistungsgesteuert sind. In mindestens einer Ausführungsform kann/können die CPU(s) 1606 ferner einen erweiterten Algorithmus zur Verwaltung von Leistungszuständen implementieren, bei dem zulässige Leistungszustände und erwartete Aufwachzeiten spezifiziert werden und die Hardware/der Mikrocode den besten Leistungszustand bestimmt, in den ein Kern, ein Cluster und ein CCPLEX eintreten soll. In mindestens einer Ausführungsform können die Prozessorkerne vereinfachte Sequenzen zur Eingabe des Leistungszustands in Software unterstützen, wobei die Arbeit an den Mikrocode ausgelagert ist.
  • In mindestens einer Ausführungsform kann/können die GPU(s) 1608 eine integrierte GPU beinhalten (in dieser Schrift alternativ als „iGPU“ bezeichnet). In mindestens einer Ausführungsform kann/können die GPU(s) 1608 programmierbar sein und für parallele Arbeitslasten effizient sein. In mindestens einer Ausführungsform kann/können die GPU(s) 1608 einen erweiterten Tensor-Anweisungssatz verwenden. In mindestens einer Ausführungsform kann/können die GPU(s) 1608 einen oder mehrere Streaming-Mikroprozessoren beinhalten, wobei jeder Streaming-Mikroprozessor einen Level-Eins(„L1“)-Cache beinhalten kann (z. B. einen L1-Cache mit einer Speicherkapazität von mindestens 96 KB), und zwei oder mehr Streaming-Mikroprozessoren können einen L2-Cache gemeinsam nutzen (z. B. einen L2-Cache mit einer Speicherkapazität von 512 KB). In mindestens einer Ausführungsform kann/können die GPU(s) 1608 mindestens acht Streaming-Mikroprozessoren beinhalten. In mindestens einer Ausführungsform kann/können die GPU(s) 1608 (eine) Berechnungs-Anwendungsprogrammierschnittstelle(n) (API(s)) verwenden. In mindestens einer Ausführungsform kann/können die GPU(s) 1608 eine oder mehrere parallele Rechenplattformen und/oder Programmiermodelle (z. B. CUDA von NVIDIA) verwenden.
  • In mindestens einer Ausführungsform können eine oder mehrere der GPU(s) 1608 für die beste Leistung in automobilen und eingebetteten Anwendungsfällen leistungsoptimiert sein. In einer Ausführungsform könnten die GPU(s) 1608 zum Beispiel auf einem Fin-Feldeffekttransistor („FinFET“) gefertigt sein. In mindestens einer Ausführungsform kann in jeden Streaming-Mikroprozessor eine Anzahl von in mehrere Blöcke unterteilten Verarbeitungskernen mit gemischter Genauigkeit integriert sein. Zum Beispiel, und ohne Einschränkung, könnten 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke partitioniert sein. In mindestens einer Ausführungsform könnten jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA TENSOR COREs mit gemischter Genauigkeit für Tieflern-Matrixarithmetik, ein Level-Null(„L0“) Anweisungs-Cache, ein Warp-Planer, eine Verteilungseinheit und/oder eine Registerdatei mit 64 KB zugewiesen sein. In mindestens einer Ausführungsform können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkomma-Datenpfade beinhalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnung und Adressierungsberechnungen zu ermöglichen. In mindestens einer Ausführungsform können die Streaming-Mikroprozessoren eine unabhängige Thread-Planungsfunktion beinhalten, um eine feinkörnigere Synchronisierung und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. In mindestens einer Ausführungsform können die Streaming-Mikroprozessoren einen kombinierten L1-Datencache und eine gemeinsame Speichereinheit beinhalten, um die Leistung zu verbessern und gleichzeitig die Programmierung zu vereinfachen.
  • In mindestens einer Ausführungsform können eine oder mehrere der GPU(s) 1608 einen Speicher mit hoher Bandbreite (high bandwidth memory - „HBM“) und/oder ein 16-GB-HBM2-Speicherteilsystem beinhalten, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In mindestens einer Ausführungsform kann zusätzlich oder alternativ zu dem HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher („SGRAM“) verwendet werden, wie etwa ein synchroner Graphics-Double-Data-Rate-Direktzugriffsspeicher vom Typ 5 („GDDR5“).
  • In mindestens einer Ausführungsform kann/können die GPU(s) 1608 einheitliche Speichertechnologie beinhalten. In mindestens einer Ausführungsform kann Unterstützung von Adressübersetzungsdiensten (address translation services - „ATS“) verwendet werden, um der/den GPU(s) 1608 zu ermöglichen, direkt auf Seitentabellen der CPU(s) 1606 zuzugreifen. In mindestens einer Ausführungsform kann, wenn die Speicherverwaltungseinheit (memory management unit - „MMU“) der GPU(s) 1608 eine Auslassung erleidet, eine Adressübersetzungsanforderung an die CPU(s) 1606 übermittelt werden. Als Reaktion darauf kann/können die CPU(s) 1606 in mindestens einer Ausführungsform in ihren Seitentabellen nach einer Virtuell-zu-Physisch-Zuordnung für die Adresse suchen und die Übersetzung zurück an die GPU(s) 1608 übermitteln. In mindestens einer Ausführungsform kann die einheitliche Speichertechnologie einen einzelnen einheitlichen virtuellen Adressraum für Speicher sowohl der CPU(s) 1606 als auch der GPU(s) 1608 ermöglichen, wodurch die Programmierung der GPU(s) 1608 und die Portierung von Anwendungen auf die GPU(s) 1608 vereinfacht werden.
  • In mindestens einer Ausführungsform kann/können die GPU(s) 1608 eine beliebige Anzahl von Zugriffszählern beinhalten, welche die Häufigkeit des Zugriffs der GPU(s) 1608 auf Speicher anderer Prozessoren nachverfolgen können. In mindestens einer Ausführungsform kann/können der/die Zugriffszähler dazu beitragen, sicherzustellen, dass Speicherseiten in den physischen Speicher des Prozessors verschoben werden, der am häufigsten auf Seiten zugreift, wodurch die Effizienz für Speicherbereiche, die von mehreren Prozessoren gemeinsam genutzt werden, verbessert wird.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1604 eine beliebige Anzahl von Cache(s) 1612 beinhalten, einschließlich der in dieser Schrift beschriebenen. In mindestens einer Ausführungsform könnte(n) der/die Cache(s) 1612 zum Beispiel einen Level-Drei(„L3“)-Cache beinhalten, der sowohl der/den CPU(s) 1606 als auch der/den GPU(s) 1608 zur Verfügung steht (der z. B. sowohl mit der/den CPU(s) 1606 als auch der/den GPU(s) 1608 verbunden ist). In mindestens einer Ausführungsform kann/können der/die Cache(s) 1612 einen Write-Back-Cache beinhalten, der die Zustände der Zeilen verfolgen kann, z. B. durch Verwendung eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI usw.). In mindestens einer Ausführungsform kann der L3-Cache in Abhängigkeit von der Ausführungsform 4 MB oder mehr beinhalten, obwohl auch kleinere Cache-Größen verwendet werden können.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1604 einen oder mehrere Beschleuniger 1614 beinhalten (z. B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon). In mindestens einer Ausführungsform kann/können das/die SoC(s) 1604 einen Hardware-Beschleunigungscluster beinhalten, der optimierte Hardware-Beschleuniger und/oder einen großen chipinternen Speicher beinhalten kann. In mindestens einer Ausführungsform kann der großer chipinterne Speicher (z. B. 4 MB SRAM) einen Hardware-Beschleunigungscluster zur Beschleunigung neuronaler Netze und anderer Berechnungen ermöglichen. In mindestens einer Ausführungsform kann ein Hardware-Beschleunigungscluster verwendet werden, um die GPU(s) 1608 zu ergänzen und einige Tasks der GPU(s) 1608 auszulagern (um z. B. mehr Zyklen der GPU(s) 1608 für die Durchführung anderer Tasks freizumachen). In mindestens einer Ausführungsform kann/können der/die Beschleuniger 1614 für gezielte Arbeitslasten verwendet werden (z. B. Wahrnehmung, neuronale Faltungsnetze („CNNs“), rekurrente neuronale Netze („RNNs“) usw.), die stabil genug sind, um für eine Beschleunigung geeignet zu sein. In mindestens einer Ausführungsform kann ein CNN regionenbasierte oder regionale neuronale Faltungsnetze („RCNNs“) und schnelle RCNNs (z. B. wie für die Objekterkennung verwendet) oder eine andere Art von CNN beinhalten.
  • In mindestens einer Ausführungsform kann/können der/die Beschleuniger 1614 (z. B. Hardware-Beschleunigungscluster) (einen) Tieflernbeschleuniger (deep learning accelerator(s) - „DLA(s)“) beinhalten. Der/die DLA(s) kann/können ohne Einschränkung eine oder mehrere Tensor-Verarbeitungseinheiten („TPU(s)“) beinhalten, die dazu konfiguriert sein können, zusätzliche zehn Billionen Operationen pro Sekunde für Tieflernanwendungen und Inferenzierung bereitzustellen. In mindestens einer Ausführungsform kann/können die TPU(s) Beschleuniger sein, die für die Ausführung von Bildverarbeitungsfunktionen (z. B. für CNNs, RCNNs usw.) konfiguriert und optimiert sind. Der/Die DLA(s) kann/können ferner für einen spezifischen Satz von Arten von neuronalen Netzen und Gleitkommaoperationen sowie für das Inferenzieren optimiert sein. In mindestens einer Ausführungsform kann das Design der DLA(s) mehr Leistung pro Millimeter bereitstellen als eine typische Universal-GPU und übertrifft typischerweise die Leistung einer CPU bei weitem. In mindestens einer Ausführungsform kann/können die TPU(s) mehrere Funktionen durchführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die zum Beispiel INT8-, INT16- und FP16-Datenarten sowohl für Merkmale als auch für Gewichtungen sowie Postprozessorfunktionen unterstützt. In mindestens einer Ausführungsform kann/können der/die DLA(s) neuronale Netze, insbesondere CNNs, an verarbeiteten oder unverarbeiteten Daten für eine beliebige von einer Vielfalt von Funktionen schnell und effizient ausführen, einschließlich zum Beispiel und ohne Einschränkung: eines CNN für die Identifizierung und Erkennung von Objekten unter Verwendung von Daten von Kamerasensoren; eines CNN für die Entfernungsschätzung unter Verwendung von Daten von Kamerasensoren; eines CNN für die Erkennung und Identifizierung und Erkennung von Einsatzfahrzeugen unter Verwendung von Daten von Mikrofonen 1696; eines CNN für die Gesichtserkennung und Identifizierung von Fahrzeugbesitzern unter Verwendung von Daten von Kamerasensoren; und/oder eines CNN für sicherheitsrelevante Ereignisse.
  • In mindestens einer Ausführungsform kann/können der/die DLA(s) eine beliebige Funktion der GPU(s) 1608 durchführen und unter Verwendung eines Inferenzbeschleunigers kann ein Designer zum Beispiel entweder (einen) DLA(s) oder (eine) GPU(s) 1608 für eine beliebige Funktion anvisieren. In mindestens einer Ausführungsform kann der Designer zum Beispiel die Verarbeitung von CNNs und Gleitkommaoperationen auf DLA(s) fokussieren und andere Funktionen der/den GPU(s) 1608 und/oder anderen Beschleuniger(n) 1614 überlassen.
  • In mindestens einer Ausführungsform kann/können der/die Beschleuniger 1614 (z. B. der Hardware-Beschleunigungscluster) (einen) programmierbare(n) Sichtbeschleuniger (programmable vision accelerator - „PVA“) beinhalten, der in dieser Schrift alternativ als Computervisionsbeschleuniger bezeichnet werden kann. In mindestens einer Ausführungsform kann/können der/die PVA(s) zur Beschleunigung von Computervisionsalgorithmen für weiterentwickelte Fahrerassistenzsysteme („ADAS“) 1638, autonomes Fahren, Augmented-Reality(„AR“)-Anwendungen und/oder Virtual-Reality(„VR“)-Anwendungen konstruiert und konfiguriert sein. Der/die PVA(s) kann/können ein Gleichgewicht zwischen Leistung und Flexibilität bereitstellen. In mindestens einer Ausführungsform können alle PVA(s) beispielsweise und ohne Einschränkung eine beliebige Anzahl von Kernen eines Reduced Instruction Set Computer („RISC“), direkten Speicherzugriff (direct memory access - „DMA“) und/oder eine beliebige Anzahl von Vektorprozessoren beinhalten.
  • In mindestens einer Ausführungsform können RISC-Kerne mit Bildsensoren (z. B. Bildsensoren einer beliebigen der in dieser Schrift beschriebenen Kameras), (einem) Bildsignalprozessor(en) und/oder dergleichen interagieren. In mindestens einer Ausführungsform kann jeder der RISC-Kerne eine beliebige Menge an Speicher beinhalten. In mindestens einer Ausführungsform können die RISC-Kerne in Abhängigkeit von der Ausführungsform ein beliebiges von einer Anzahl von Protokollen verwenden. In mindestens einer Ausführungsform können die RISC-Kerne ein Echtzeitbetriebssystem (real-time operating system - „RTOS“) ausführen. In mindestens einer Ausführungsform können die RISC-Kerne unter Verwendung einer oder mehrerer Vorrichtungen mit integrierten Schaltungen, anwendungsspezifischen integrierten Schaltungen („ASICs“) und/oder Speichervorrichtungen implementiert sein. In mindestens einer Ausführungsform könnten die RISC-Kerne zum Beispiel einen Anweisungs-Cache und/oder einen eng gekoppelten RAM beinhalten.
  • In mindestens einer Ausführungsform kann DMA es den Komponenten des/der PVA(s) ermöglichen, unabhängig von der/den CPU(s) 1606 auf den Systemspeicher zuzugreifen. In mindestens einer Ausführungsform kann DMA eine beliebige Anzahl von Merkmalen unterstützen, die zur Bereitstellung der Optimierung eines PVA verwendet werden, einschließlich der Unterstützung von mehrdimensionaler Adressierung und/oder zirkulärer Adressierung, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform kann DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die ohne Einschränkung Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockabstufung, vertikale Blockabstufung und/oder Tiefenabstufung beinhalten können.
  • In mindestens einer Ausführungsform können Vektorprozessoren programmierbare Prozessoren sein, die so konstruiert sein können, dass sie die Programmierung für Computervisionsalgorithmen effizient und flexibel ausführen und Signalverarbeitungsfähigkeiten bereitstellen. In mindestens einer Ausführungsform kann der PVA einen PVA-Kern und zwei Vektorverarbeitungsteilsystempartitionen beinhalten. In mindestens einer Ausführungsform kann der PVA-Kern ein Prozessorteilsystem, (eine) DMA-Engine(s) (z. B. zwei DMA-Engines) und/oder andere Peripheriegeräte beinhalten. In mindestens einer Ausführungsform kann das Vektorverarbeitungsteilsystem als primäre Verarbeitungs-Engine des PVA arbeiten und kann eine Vektorverarbeitungseinheit (vector processing unit - „VPU“), einen Anweisungs-Cache und/oder einen Vektorspeicher (z. B. „VMEM“) beinhalten. In mindestens einer Ausführungsform kann die VPU einen Digitalsignalprozessor beinhalten, wie etwa zum Beispiel einen Single-Instruction-Multiple-Data(„SIMD“)-Very-Long-Instruction-Word(„VLIW“)-Digitalsignalprozessor. In mindestens einer Ausführungsform kann eine Kombination aus SIMD und VLIW den Durchsatz und die Geschwindigkeit erhöhen.
  • In mindestens einer Ausführungsform kann jeder der Vektorprozessoren einen Anweisungs-Cache beinhalten und mit einem dedizierten Speicher verbunden sein. Infolgedessen kann in mindestens einer Ausführungsform jeder der Vektorprozessoren so konfiguriert sein, dass er unabhängig von anderen Vektorprozessoren arbeitet. In mindestens einer Ausführungsform können Vektorprozessoren, die in einem bestimmten PVA beinhaltet sind, dazu konfiguriert sein, Datenparallelität einzusetzen. Zum Beispiel kann in mindestens einer Ausführungsform eine Vielzahl von Vektorprozessoren, die in einem einzelnen PVA beinhaltet ist, denselben Computervisionsalgorithmus ausführen, jedoch an unterschiedlichen Regionen eines Bilds. In mindestens einer Ausführungsform können die in einem bestimmten PVA beinhalteten Vektorprozessoren simultan unterschiedliche Computervisionsalgorithmen an demselben Bild ausführen oder sogar unterschiedliche Algorithmen an sequentiellen Bildern oder Abschnitten eines Bilds ausführen. In mindestens einer Ausführungsform kann unter anderem eine beliebige Anzahl von PVAs in einem Hardware-Beschleunigungscluster beinhaltet sein und kann eine beliebige Anzahl von Vektorprozessoren in jedem der PVAs beinhaltet sein. In mindestens einer Ausführungsform kann/können der/die PVA(s) einen zusätzlichen Speicher für Fehlerkorrekturcode (error correcting code - „ECC“) beinhalten, um die Gesamtsystemsicherheit zu erhöhen.
  • In mindestens einer Ausführungsform kann/können der/die Beschleuniger 1614 (z. B. ein Hardware-Beschleunigungscluster) ein chipinternes Computervisionsnetzwerk und einen statischen Direktzugriffsspeicher („SRAM“) beinhalten, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 1614 bereitzustellen. In mindestens einer Ausführungsform kann der chipinterne Speicher mindestens 4 MB SRAM beinhalten, der zum Beispiel und ohne Einschränkung aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl der PVA als auch der DLA zugreifen können. In mindestens einer Ausführungsform kann jedes Paar von Speicherblöcken eine weiterentwickelte Peripheriebus(advanced peripheral bus - „APB“)-Schnittstelle, eine Konfigurationsschaltung, einen Controller und einen Multiplexer beinhalten. In mindestens einer Ausführungsform kann eine beliebige Art von Speicher verwendet werden. In mindestens einer Ausführungsform können der PVA und DLA auf den Speicher über einen Backbone zugreifen, der dem PVA und DLA einen Hochgeschwindigkeitszugriff auf den Speicher bereitstellt. In mindestens einer Ausführungsform kann der Backbone ein chipinternes Computervisionsnetzwerk beinhalten, das den PVA und DLA (z. B. unter Verwendung von APB) mit dem Speicher zusammenschaltet.
  • In mindestens einer Ausführungsform kann das chipinterne Computervisionsnetzwerk eine Schnittstelle beinhalten, die vor der Übertragung eines beliebigen Steuersignals/einer beliebigen Adresse/beliebiger Daten bestimmt, dass sowohl der PVA als auch der DLA einsatzbereite und gültige Signale bereitstellen. In mindestens einer Ausführungsform kann eine Schnittstelle separate Phasen und separate Kanäle zum Übermitteln von Steuersignalen/Adressen/Daten sowie eine Burst-artige Kommunikation für eine kontinuierliche Datenübertragung bereitstellen. In mindestens einer Ausführungsform kann eine Schnittstelle den Standards der International Organization for Standardization („ISO“) 26262 oder der International Electrotechnical Commission („IEC“) 61508 entsprechen, obwohl andere Standards und Protokolle verwendet werden können.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1604 einen Echtzeit-Raytracing-Hardware-Beschleuniger beinhalten. In mindestens einer Ausführungsform kann der Echtzeit-Raytracing-Hardware-Beschleuniger verwendet werden, um schnell und effizient Positionen und Ausmaße von Objekten (z. B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeit-Visualisierungssimulationen zu generieren, für RADAR-Signalinterpretation, für Schallausbreitungssynthese und/oder -analyse, für die Simulation von SONAR-Systemen, für eine allgemeine Wellenausbreitungssimulation, für den Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder für andere Funktionen und/oder für andere Zwecke.
  • In mindestens einer Ausführungsform weist/weisen der/die Beschleuniger 1614 (z. B. Hardware-Beschleunigercluster) ein breites Spektrum von Verwendungen für das autonome Fahren auf. In mindestens einer Ausführungsform kann der PVA ein programmierbarer Sichtbeschleuniger sein, der für wichtige Verarbeitungsstufen im ADAS und in autonomen Fahrzeugen verwendet werden kann. In mindestens einer Ausführungsform sind die Fähigkeiten des PVA eine gute Ergänzung für algorithmische Domänen, die eine vorhersagbare Verarbeitung bei niedriger Leistung und niedriger Latenz benötigen. Anders ausgedrückt zeigt der PVA eine gute Leistung für halbdichte oder dichte reguläre Berechnungen, auch an kleinen Datensätzen, die vorhersagbare Laufzeiten mit niedriger Latenz und niedriger Leistung benötigen. In mindestens einer Ausführungsform sind in autonomen Fahrzeugen, wie z. B. dem Fahrzeug 1600, PVAs für die Ausführung klassischer Computervisionsalgorithmen konstruiert, da diese effizient bei der Objekterkennung sind und mit Ganzzahl-Mathematik arbeiten.
  • Zum Beispiel, gemäß mindestens einer Ausführungsform der Technologie, wird der PVA verwendet, um Stereo-Computervision durchzuführen. In mindestens einer Ausführungsform kann in einigen Beispielen ein auf semiglobalem Abgleich basierender Algorithmus verwendet werden, obwohl dies nicht als Einschränkung auszulegen ist. In mindestens einer Ausführungsform verwenden Anwendungen für autonomes Fahren der Stufen 3-5 Bewegungsschätzung/Stereo-Abgleich spontan (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrspurerkennung usw.). In mindestens einer Ausführungsform kann der PVA eine Funktion der Stereo-Computervision an Eingaben von zwei monokularen Kameras durchführen.
  • In mindestens einer Ausführungsform kann der PVA verwendet werden, um einen dichten optischen Fluss durchzuführen. Zum Beispiel könnte der PVA in mindestens einer Ausführungsform RADAR-Rohdaten verarbeiten (z. B. unter Verwendung einer schnellen 4D-Fourier-Transformation), um verarbeitete RADAR-Daten bereitzustellen. In mindestens einer Ausführungsform wird der PVA für die Laufzeit-Tiefenverarbeitung verwendet, indem z. B. Laufzeit-Rohdaten verarbeitet werden, um verarbeitete Laufzeitdaten bereitzustellen.
  • In mindestens einer Ausführungsform kann der DLA verwendet werden, um eine beliebige Art von Netzen auszuführen, um die Steuerung und Fahrsicherheit zu verbessern, einschließlich zum Beispiel und ohne Einschränkung eines neuronalen Netzes, das ein Maß an Konfidenz für jede Objekterkennung ausgibt. In mindestens einer Ausführungsform kann die Konfidenz als eine Wahrscheinlichkeit dargestellt oder interpretiert werden oder als Bereitstellung einer relativen „Gewichtung“ jeder Erkennung im Vergleich zu anderen Erkennungen. In mindestens einer Ausführungsform ermöglicht die Konfidenz es einem System, weitere Entscheidungen darüber zu treffen, welche Erkennungen als richtig positive Erkennungen und nicht als falsch positive Erkennungen betrachtet werden sollten. In mindestens einer Ausführungsform kann ein System zum Beispiel einen Schwellenwert für die Konfidenz festlegen und nur Erkennungen, die den Schwellenwert überschreiten, als richtig positive Erkennungen betrachten. In einer Ausführungsform, in der ein automatisches Notbremssystem (automatic emergency braking system - „AEB"-System) verwendet wird, würden falsch positive Erkennungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was natürlich unerwünscht ist. In mindestens einer Ausführungsform können Erkennungen mit hoher Konfidenz als Auslöser für AEB betrachtet werden. In mindestens einer Ausführungsform kann der DLA ein neuronales Netz zur Regression des Konfidenzwerts ausführen. In mindestens einer Ausführungsform kann das neuronale Netz als seine Eingabe mindestens eine Teilmenge von Parametern verwenden, wie z. B. die Abmessungen des Begrenzungsrahmens, die (z. B. von einem anderen Teilsystem) erhaltene Bodenebenenschätzung, die Ausgabe von (einem) IMU-Sensor(en) 1666, die mit der Ausrichtung des Fahrzeugs 1600 korreliert, die Entfernung, die 3D-Positionsschätzungen des Objekts, die von dem neuronalen Netz und/oder anderen Sensoren (z. B. dem/den LIDAR-Sensor(en) 1664 oder RADAR-Sensor(en) 1660) erhalten werden, usw.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1604 (einen) Datenspeicher 1616 (z. B. Speicher) beinhalten. In mindestens einer Ausführungsform kann es sich bei dem/den Datenspeicher(n) 1616 um einen chipinternen Speicher des/der SoC(s) 1604 handeln, der neuronale Netze zur Ausführung auf der/den GPU(s) 1608 und/oder dem DLA speichern kann. In mindestens einer Ausführungsform kann die Kapazität des/der Datenspeicher(s) 1616 groß genug sein, um aus Gründen der Redundanz und Sicherheit mehrere Instanzen von neuronalen Netzen zu speichern. In mindestens einer Ausführungsform kann/können der/die Datenspeicher 1616 L2- oder L3-Cache(s) umfassen.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1604 eine beliebige Anzahl von Prozessor(en) 1610 (z. B. eingebetteten Prozessoren) beinhalten. In mindestens einer Ausführungsform kann/können der/die Prozessor(en) 1610 einen Boot- und Leistungsverwaltungsprozessor beinhalten, bei dem es sich um einen dedizierten Prozessor und ein dediziertes Teilsystem handeln kann, um die Booting-Leistungs- und - verwaltungsfunktionen und die damit verbundene Sicherheitsdurchsetzung zu handhaben. In mindestens einer Ausführungsform kann der Booting- und Leistungsverwaltungsprozessor ein Teil der Booting-Sequenz des/der SoC(s) 1604 sein und Laufzeit-Leistungsverwaltungsdienste bereitstellen. In mindestens einer Ausführungsform kann der Booting-Leistungs- und - verwaltungsprozessor Takt- und Spannungsprogrammierung, Unterstützung bei Übergängen des Systems in einen Zustand mit niedriger Leistung, Verwaltung von Thermik und Temperatursensoren des/der SoC(s) 1604 und/oder Verwaltung von Leistungszuständen des/der SoC(s) 1604 bereitstellen. In mindestens einer Ausführungsform kann jeder Temperatursensor als Ringoszillator implementiert sein, dessen Ausgabefrequenz proportional zur Temperatur ist, und die SoC(s) 1604 können Ringoszillatoren verwenden, um Temperaturen von CPU(s) 1606, GPU(s) 1608 und/oder Beschleuniger(n) 1614 zu erkennen. In mindestens einer Ausführungsform, wenn bestimmt wird, dass Temperaturen einen Schwellenwert überschreiten, kann der Booting- und Leistungsverwaltungsprozessor dann in eine Temperaturfehlerroutine eintreten und das/die SoC(s) 1604 in einen Zustand mit niedrigerer Leistung versetzen und/oder das Fahrzeug 1600 in einen Modus des Chauffierens zu einem sicheren Halt versetzen (z. B. das Fahrzeug 1600 zu einem sicheren Halt bringen).
  • In mindestens einer Ausführungsform kann/können der/die Prozessor(en) 1610 ferner einen Satz von eingebetteten Prozessoren beinhalten, die als eine Audioverarbeitungs-Engine dienen können. In mindestens einer Ausführungsform kann die Audioverarbeitungs-Engine ein Audioteilsystem sein, das eine vollständige Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen sowie eine breite und flexible Palette von Audio-E/A-Schnittstellen ermöglicht. In mindestens einer Ausführungsform ist die Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • In mindestens einer Ausführungsform kann/können der/die Prozessor(en) 1610 ferner eine stets eingeschaltete Prozessor-Engine beinhalten, welche die notwendigen Hardware-Merkmale zur Unterstützung der Sensorverwaltung mit niedriger Leistung und der Aufwach-Anwendungsfälle bereitstellen kann. In mindestens einer Ausführungsform kann die stets eingeschaltete Prozessor-Engine ohne Einschränkung einen Prozessorkern, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Timer und Unterbrechungs-Controller), verschiedene E/A-Controller-Peripheriegeräte und Routing-Logik beinhalten.
  • In mindestens einer Ausführungsform kann/können der/die Prozessor(en) 1610 ferner eine Sicherheitscluster-Engine beinhalten, die ohne Einschränkung ein dediziertes Prozessorteilsystem zur Handhabung der Sicherheitsverwaltung für Automobilanwendungen beinhaltet. In mindestens einer Ausführungsform kann die Sicherheitscluster-Engine ohne Einschränkung zwei oder mehr Prozessorkerne, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Timer, eine Unterbrechungs-Controller usw.) und/oder Routing-Logik beinhalten. In einem Sicherheitsmodus können in mindestens einer Ausführungsform zwei oder mehr Kerne in einem Lockstep-Modus arbeiten und als ein einziger Kern mit einer Vergleichslogik funktionieren, um etwaige Unterschiede zwischen ihren Operationen zu erkennen. In mindestens einer Ausführungsform kann/können der/die Prozessor(en) 1610 darüber hinaus eine Echtzeit-Kamera-Maschine beinhalten, die ohne Einschränkung ein dediziertes Prozessor-Subsystem zur Handhabung des Echtzeit-Kameramanagements beinhalten kann. In mindestens einer Ausführungsform kann/können der/die Prozessor(en) 1610 ferner einen Signalprozessor mit hohem Dynamikbereich beinhalten, der ohne Einschränkung einen Bildsignalprozessor beinhalten kann, der eine Hardware-Engine ist, die Teil einer Kameraverarbeitungs-Pipeline ist.
  • In mindestens einer Ausführungsform kann/können der/die Prozessor(en) 1610 einen Videobildkompositor beinhalten, der ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor implementiert), der Videonachverarbeitungsfunktionen implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Fenster des Wiedergabeprogramms zu erzeugen. In mindestens einer Ausführungsform kann der Videobildkompositor eine Linsenverzerrungskorrektur an der/den Weitsichtkamera(s) 1670, der/den Rundumkamera(s) 1674 und/oder an dem/den kabineninternen Überwachungskamerasensor(en) durchführen. In mindestens einer Ausführungsform werden der/die kabineninternen Überwachungskamerasensor(en) vorzugsweise von einem neuronalen Netz überwacht, das auf einer anderen Instanz des/der SoC(s) 1604 läuft und so konfiguriert ist, dass es Ereignisse in der Kabine erkennt und entsprechend reagiert. In mindestens einer Ausführungsform kann ein kabineninternes System ohne Einschränkung Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, das Ziel des Fahrzeugs zu ändern, das Infotainmentsystem des Fahrzeugs und dessen Einstellungen zu aktivieren oder zu ändern oder sprachaktiviertes Surfen im Internet bereitzustellen. In mindestens einer Ausführungsform stehen dem Fahrer bestimmte Funktionen zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind ansonsten deaktiviert.
  • In mindestens einer Ausführungsform kann der Videobildkompositor eine erweiterte zeitliche Rauschunterdrückung sowohl für die räumliche als auch für die zeitliche Rauschunterdrückung beinhalten. In mindestens einer Ausführungsform, in der Bewegung in einem Video vorkommt, gewichtet die Rauschunterdrückung zum Beispiel die räumlichen Informationen entsprechend, indem sie die Gewichtung der Informationen, die von benachbarten Frames bereitgestellt werden, verringert. In mindestens einer Ausführungsform, in der ein Bild oder ein Abschnitt eines Bilds keine Bewegung enthält, kann die vom Videobildkompositor durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu unterdrücken.
  • In mindestens einer Ausführungsform kann der Videobildkompositor auch so konfiguriert sein, dass er eine Stereoentzerrung an den eingegebenen Stereolinsen-Frames durchführt. In mindestens einer Ausführungsform kann der Videobildkompositor ferner für die Benutzerschnittstellenzusammensetzung verwendet werden, wenn der Desktop des Betriebssystems in Gebrauch ist und die GPU(s) 1608 nicht zum kontinuierlichen Rendern neuer Oberflächen benötigt wird/werden. In mindestens einer Ausführungsform kann, wenn die GPU(s) 1608 eingeschaltet ist/sind und aktiv 3D-Rendering durchführt/durchführen, der Videobildkompositor verwendet werden, um die GPU(s) 1608 zu entlasten, um die Leistung und Reaktionsfähigkeit zu verbessern.
  • In mindestens einer Ausführungsform kann/können ein oder mehrere der SoC(s) 1604 ferner eine serielle Mobile-Industry-Processor-Interface(„MIPI“)-Kameraschnittstelle zum Empfangen von Videos und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingabeblock beinhalten, der für Kamera- und zugehörige Pixeleingabefunktionen verwendet werden kann. In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1604 darüber hinaus einen oder mehrere Eingabe-/Ausgabe-Controller beinhalten, die durch Software gesteuert werden können und für den Empfang von E/A-Signalen verwendet werden können, die keiner bestimmten Rolle zugeordnet sind.
  • In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1604 ferner eine breite Palette von Peripherieschnittstellen beinhalten, um die Kommunikation mit Peripheriegeräten, Audiocodierern/-decodierem („Codecs“), Leistungsverwaltungs- und/oder anderen Vorrichtungen zu ermöglichen. Das/die SoC(s) 1604 kann/können verwendet werden, um Daten von Kameras (z. B. über Gigabit Multimedia Serial Link und Ethernet verbunden), Sensoren (z. B. dem/den LIDAR-Sensor(en) 1664, RADAR-Sensor(en) 1660 usw., die über Ethernet verbunden sein können), Daten von dem Bus 1602 (z. B. Geschwindigkeit des Fahrzeugs 1600, Lenkradposition usw.), Daten von (einem) GNSS-Sensor(en) 1658 (z. B. über Ethernet oder CAN-Bus verbunden) usw. zu verarbeiten. In mindestens einer Ausführungsform können eines oder mehrere der SoC(s) 1604 ferner dedizierte Hochleistungs-Massenspeicher-Controller beinhalten, die ihre eigenen DMA-Engines beinhalten können und die verwendet werden können, um die CPU(s) 1606 von routinemäßigen Datenverwaltungs-Tasks zu befreien.
  • In mindestens einer Ausführungsform kann/können das/die SoC(s) 1604 eine Endezu-Ende-Plattform mit einer flexiblen Architektur sein, welche die Automatisierungsstufen 3-5 überspannt und dadurch eine umfassende funktionelle Sicherheitsarchitektur bereitstellt, die Computervisions- und ADAS-Techniken für Diversität und Redundanz nutzt und effizient einsetzt und eine Plattform für einen flexiblen, zuverlässigen Fahrsoftwarestapel zusammen mit Tieflernwerkzeugen bereitstellt. In mindestens einer Ausführungsform können die SoC(s) 1604 schneller, zuverlässiger und sogar energie- und platzsparender sein als herkömmliche Systeme. Zum Beispiel können in mindestens einer Ausführungsform der/die Beschleuniger 1614, wenn sie mit der/den CPU(s) 1606, der/den GPU(s) 1608 und dem/den Datenspeicher(n) 1616 kombiniert sind, eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufen 3-5 bereitstellen.
  • In mindestens einer Ausführungsform können Computervisionsalgorithmen auf CPUs ausgeführt werden, die unter Verwendung einer höheren Programmiersprache, wie etwa der Programmiersprache C, konfiguriert werden können, um eine große Vielfalt von Verarbeitungsalgorithmen über eine große Vielfalt von visuellen Daten auszuführen. In mindestens einer Ausführungsform sind die CPUs jedoch oft nicht in der Lage, die Leistungsanforderungen vieler Computervisionsanwendungen zu erfüllen, wie z. B. in Bezug auf die Ausführungszeit und den Leistungsverbrauch. In mindestens einer Ausführungsform sind viele CPUs nicht dazu in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, die in fahrzeuginternen ADAS-Anwendungen und in praktischen autonomen Fahrzeugen der Stufen 3-5 verwendet werden.
  • In dieser Schrift beschriebene Ausführungsformen ermöglichen die gleichzeitige und/oder sequentielle Durchführung mehrerer neuronaler Netze und die Kombination der Ergebnisse, um autonome Fahrfunktionen der Stufe 3-5 zu ermöglichen. Zum Beispiel kann in mindestens einer Ausführungsform ein CNN, das auf einem DLA oder einer diskreten GPU (z. B. der/den GPU(s) 1620) ausgeführt wird, eine Text- und Worterkennung beinhalten, die es einem Supercomputer ermöglicht, Verkehrsschilder zu lesen und zu verstehen, einschließlich Schildern, für die das neuronale Netz nicht speziell trainiert wurde. In mindestens einer Ausführungsform kann der DLA ferner ein neuronales Netz beinhalten, das in der Lage ist, Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis davon bereitzustellen und dieses semantische Verständnis an Pfadplanungsmodule weiterzugeben, die auf CPU-Komplex laufen.
  • In mindestens einer Ausführungsform können mehrere neuronale Netze simultan ausgeführt werden, wie zum Fahren mit Stufe 3, 4 oder 5. In mindestens einer Ausführungsform kann zum Beispiel ein Warnschild mit der Aufschrift „Vorsicht: Blinkende Lichter weisen auf Vereisung hin“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzen unabhängig oder gemeinsam interpretiert werden. In mindestens einer Ausführungsform kann ein Schild selbst von einem ersten bereitgestellten neuronalen Netz (z. B. einem trainierten neuronalen Netz) als Verkehrsschild identifiziert werden und kann ein Text „Blinkende Lichter weisen auf Verweisung hin“ von einem zweiten bereitgestellten neuronalen Netz interpretiert werden, das die Pfadplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass, wenn blinkende Lichter erkannt werden, Vereisungen vorliegen. In mindestens einer Ausführungsform kann ein blinkendes Licht identifiziert werden, indem ein drittes bereitgestelltes neuronales Netz über mehrere Frames hinweg betrieben wird und die Pfadplanungssoftware des Fahrzeugs über das Vorhandensein (oder Nichtvorhandensein) von blinkenden Lichtern informiert. In mindestens einer Ausführungsform können alle drei neuronalen Netze simultan laufen, z. B. innerhalb des DLA und/oder auf der/den GPU(s) 1608.
  • In mindestens einer Ausführungsform kann ein CNN zur Gesichtserkennung und zur Identifizierung des Fahrzeugbesitzers Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 1600 zu identifizieren. In mindestens einer Ausführungsform kann eine stets eingeschaltete Sensorverarbeitungs-Engine verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Besitzer der Fahrertür nähert und die Lichter einschaltet, und um im Sicherheitsmodus das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise stellen die SoC(s) 1604 Sicherheit in Bezug auf Diebstahl und/oder Carjacking bereit.
  • In mindestens einer Ausführungsform kann ein CNN zur Erkennung und Identifizierung von Einsatzfahrzeugen Daten von Mikrofonen 1696 verwenden, um Sirenen von Einsatzfahrzeugen zu erkennen und zu identifizieren. In mindestens einer Ausführungsform verwendet/verwenden das/die SoC(s) 1604 das CNN zur Klassifizierung von Umgebungs- und Stadtgeräuschen sowie zur Klassifizierung von visuellen Daten. In mindestens einer Ausführungsform wird das CNN, das auf dem DLA läuft, dafür trainiert, die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs zu identifizieren (z. B. durch Verwendung des Dopplereffekts). In mindestens einer Ausführungsform kann das CNN auch dafür trainiert werden, Einsatzfahrzeuge zu identifizieren, die für das lokale Gebiet, in dem das Fahrzeug betrieben wird, spezifisch sind, wie durch den/die GNSS-Sensor(en) 1658. In mindestens einer Ausführungsform versucht das CNN, wenn es in Europa betrieben wird, europäische Sirenen zu erkennen, und in den Vereinigten Staaten versucht das CNN, nur nordamerikanische Sirenen zu identifizieren. In mindestens einer Ausführungsform kann, sobald ein Einsatzfahrzeug erkannt wird, ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für Einsatzfahrzeuge auszuführen, um das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug im Leerlauf laufen zu lassen, und zwar mit der Hilfe des Ultraschallsensors/der Ultraschallsensoren 1662, bis das/die Einsatzfahrzeug/e vorbeigefahren ist/sind.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 CPU(s) 1618 (z. B. diskrete CPU(s) oder dCPU(s)) beinhalten, die über eine Hochgeschwindigkeitszusammenschaltung (z. B. PCIe) mit dem/den SoC(s) 1604 gekoppelt sein können. In mindestens einer Ausführungsform können die CPU(s) 1618 zum Beispiel einen X86-Prozessor beinhalten. Die CPU(s) 1618 können dazu verwendet werden, eine beliebige einer Vielfalt von Funktionen durchzuführen, einschließlich zum Beispiel des Vermittelns potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und SoC(s) 1604 und/oder des Überwachens des Status und Zustands des/der Controller 1636 und/oder eines Infotainmentsystems auf einem Chip („Infotainment-SoC“) 1630.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 (eine) GPU(s) 1620 (z. B. diskrete GPU(s) oder dGPU(s)) beinhalten, die über eine Hochgeschwindigkeitszusammenschaltung (z. B. NVLINK von NVIDIA) mit dem/den SoC(s) 1604 gekoppelt sein kann/können. In mindestens einer Ausführungsform kann/können die GPU(s) 1620 eine zusätzliche Funktionalität für künstliche Intelligenz bereitstellen, z. B. durch Ausführen redundanter und/oder unterschiedlicher neuronaler Netze, und kann/können zum Trainieren und/oder Aktualisieren neuronaler Netze verwendet werden, die mindestens zum Teil auf Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 1600 basieren.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner die Netzwerkschnittstelle 1624 beinhalten, die ohne Einschränkung drahtlose Antenne(n) 1626 beinhalten kann (z. B. eine oder mehrere drahtlose Antennen 1626 für unterschiedliche Kommunikationsprotokolle, wie etwa eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). In mindestens einer Ausführungsform kann die Netzwerkschnittstelle 1624 verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z. B. mit (einem) Server(n) und/oder anderen Netzwerkvorrichtungen), mit anderen Fahrzeugen und/oder mit Rechenvorrichtungen (z. B. Client-Vorrichtungen von Fahrgästen) zu ermöglichen. In mindestens einer Ausführungsform kann zur Kommunikation mit anderen Fahrzeugen eine direkte Verknüpfung zwischen dem Fahrzeug 160 und dem anderen Fahrzeug hergestellt werden und/oder kann eine indirekte Verknüpfung (z. B. über Netzwerke und das Internet) hergestellt werden. In mindestens einer Ausführungsform können direkte Verknüpfungen unter Verwendung einer Fahrzeug-zu-Fahrzeug-Kommunikationsverknüpfung bereitgestellt werden, Die Fahrzeug-zu-Fahrzeug-Kommunikationsverknüpfung kann dem Fahrzeug 1600 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 1600 bereitstellen (z. B. Fahrzeuge vor, neben und/oder hinter dem Fahrzeug 1600). In mindestens einer Ausführungsform kann die vorgenannte Funktionalität Teil einer kooperativen adaptiven Geschwindigkeitssteuerungsfunktionalität des Fahrzeugs 1600 sein.
  • In mindestens einer Ausführungsform kann die Netzwerkschnittstelle 1624 ein SoC beinhalten, das eine Modulations- und Demodulationsfunktionalität bereitstellt und es dem/den Controller(n) 1636 ermöglicht, über drahtlose Netzwerke zu kommunizieren. In mindestens einer Ausführungsform kann die Netzwerkschnittstelle 1624 ein Hochfrequenz-Frontend für die Aufwärtskonvertierung von einem Basisband auf eine Hochfrequenz und die Abwärtskonvertierung von einer Hochfrequenz auf ein Basisband beinhalten. In mindestens einer Ausführungsform können die Frequenzumwandlungen auf eine beliebige technisch mögliche Weise durchgeführt werden. Beispielsweise können Frequenzumwandlungen durch bekannte Verfahren und/oder unter Verwendung von Superheterodyn-Verfahren durchgeführt werden. In mindestens einer Ausführungsform kann die Hochfrequenz-Frontend-Funktionalität durch einen separaten Chip bereitgestellt sein. In mindestens einer Ausführungsform kann die Netzwerkschnittstelle eine drahtlose Funktionalität zur Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle beinhalten.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner einen oder mehrere Datenspeicher 1628 beinhalten, die ohne Einschränkung chipexternen (z. B. außerhalb der SoC(s) 1604 liegenden) Speicher beinhalten können. In mindestens einer Ausführungsform kann/können der/die Datenspeicher 1628 ohne Einschränkung ein oder mehrere Speicherelemente beinhalten, die RAM, SRAM, dynamischen Direktzugriffsspeicher („DRAM“), Videodirektzugriffsspeicher (video random-access memory - „VRAM“), Flash, Festplatten und/oder andere Komponenten und/oder Vorrichtungen beinhalten, die mindestens ein Datenbit speichern können.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner GNSS-Sensor(en) 1658 (z. B. GPS- und/oder unterstützte GPS-Sensoren) beinhalten, um bei Funktionen zur Kartierung, Wahrnehmung, Generierung des Belegungsgitters und/oder Pfadplanung zu helfen. In mindestens einer Ausführungsform kann eine beliebige Anzahl von GNSS-Sensor(en) 1658 verwendet werden, einschließlich zum Beispiel und ohne Einschränkung eines GPS unter Verwendung eines USB-Verbinders mit einer Ethernet-zu-Seriell-Brücke (z. B. RS-232-Brücke).
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner (einen) RADAR-Sensor(en) 1660 beinhalten. Der/die RADAR-Sensor(en) 1660 kann/können von dem Fahrzeug 1600 zur Fahrzeugerkennung mit großer Reichweite verwendet werden, auch bei Dunkelheit und/oder schlechten Wetterbedingungen. In mindestens einer Ausführungsform können die RADAR-Funktionssicherheitsstufen ASIL B entsprechen. Der/die RADAR-Sensor(en) 1660 kann/können CAN und/oder den Bus 1602 (z. B. zum Übermitteln der von dem/den RADAR-Sensor(en) 1660 generierten Daten) zur Steuerung von und zum Zugriff auf Objektverfolgungsdaten verwenden, wobei in einigen Beispielen der Zugriff auf Rohdaten über Ethernet erfolgt. In mindestens einer Ausführungsform kann eine große Vielfalt von RADAR-Sensorarten verwendet werden. Zum Beispiel und ohne Einschränkung können RADAR-Sensor(en) 1660 für die Verwendung von Front-, Heck- und Seiten-RADAR geeignet sein. In mindestens einer Ausführungsform ist/sind einer oder mehrere des/der RADAR-Sensor(en) 1660 (ein) Puls-Doppler-RADAR-Sensor(en).
  • In mindestens einer Ausführungsform kann/können der/die RADAR-Sensor(en) 1660 verschiedene Konfigurationen beinhalten, wie etwa große Reichweite mit engem Sichtfeld, kurze Reichweite mit breitem Sichtfeld, seitliche Abdeckung mit kurzer Reichweite usw. In mindestens einer Ausführungsform kann das RADAR mit großer Reichweite für die adaptive Geschwindigkeitsregelung verwendet werden. In mindestens einer Ausführungsform können RADAR-Systeme mit großer Reichweite ein breites Sichtfeld bereitstellen, das durch zwei oder mehr unabhängige Scans realisiert wird, z. B. innerhalb einer Reichweite von 250 m. In mindestens einer Ausführungsform können die RADAR-Sensor(en) 1660 dabei helfen, zwischen statischen und sich bewegenden Objekten zu unterscheiden, und von dem ADAS-System 1638 zur Notbremsunterstützung und Vorwärtskollisionswarnung verwendet werden. Der/die Sensor(en) 1660, der/die in einem RADAR-System mit großer Reichweite beinhaltet ist/sind, kann/können ohne Einschränkung ein monostatisches multimodales RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle beinhalten. In mindestens einer Ausführungsform mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlenmuster erzeugen, das dazu konstruiert ist, die Umgebung des Fahrzeugs 1600 bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr auf den benachbarten Fahrspuren aufzuzeichnen. In mindestens einer Ausführungsform können die beiden anderen Antennen das Sichtfeld erweitern, wodurch es möglich ist, Fahrzeuge, die in die Fahrspur des Fahrzeugs 1600 einfahren oder diese verlassen, schnell zu erkennen.
  • In mindestens einer Ausführungsform können RADAR-Systeme mit mittlerer Reichweite beispielsweise eine Reichweite von bis zu 160 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 150 Grad (hinten) beinhalten. In mindestens einer Ausführungsform können RADAR-Systeme mit kurzer Reichweite ohne Einschränkung eine beliebige Anzahl von (einem) RADAR-Sensor(en) 1660 beinhalten, die für die Installation an beiden Enden des hinteren Stoßfängers konstruiert sind. Wenn das RADAR-Sensorsystem an beiden Enden des hinteren Stoßfängers installiert ist, kann es in mindestens einer Ausführungsform zwei Strahlen erzeugen, die den toten Winkel hinter und neben dem Fahrzeug konstant überwachen. In mindestens einer Ausführungsform können RADAR-Systeme mit kurzer Reichweite im ADAS-System 1638 zur Erkennung des toten Winkels und/oder zur Unterstützung beim Spurwechsel verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner (einen) Ultraschallsensor(en) 1662 beinhalten. Der/die Ultraschallsensor(en) 1662, der/die vorne, hinten und/oder an den Seiten des Fahrzeugs 1600 positioniert sein kann/können, kann/können als Einparkhilfe und/oder zur Erstellung und Aktualisierung eines Belegungsgitters verwendet werden. In mindestens einer Ausführungsform kann eine große Vielfalt von (einem) Ultraschallsensor(en) 1662 verwendet werden und es kann/können (ein) unterschiedliche(r) Ultraschallsensor(en) 1662 für unterschiedliche Erkennungsreichweiten (z. B. 2,5 m, 4 m) verwendet werden. In mindestens einer Ausführungsform kann/können der/die Ultraschallsensor(en) 1662 mit Funktionssicherheitsstufen von ASIL B arbeiten.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 (einen) LIDAR-Sensor(en) 1664 beinhalten. Der/die LIDAR-Sensor(en) 1664 kann/können zur Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder für andere Funktionen verwendet werden. In mindestens einer Ausführungsform kann/können der/die LIDAR-Sensor(en) 1664 der Funktionssicherheitsstufe ASIL B entsprechen. In mindestens einer Ausführungsform kann das Fahrzeug 1600 mehrere LIDAR-Sensoren 1664 (z. B. zwei, vier, sechs usw.) beinhalten, die Ethernet verwenden können (um z. B. Daten für einen Gigabit-Ethernet-Switch bereitzustellen).
  • In mindestens einer Ausführungsform kann/können der/die LIDAR-Sensor(en) 1664 in der Lage sein, eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld bereitzustellen. In mindestens einer Ausführungsform kann/können (ein) handelsübliche(r) LIDAR-Sensor(en) 1664 zum Beispiel eine beworbene Reichweite von ungefähr 100 m aufweisen, mit einer Genauigkeit von 2 cm-3 cm und mit Unterstützung für eine 100 Mbps-Ethernet-Verbindung. In mindestens einer Ausführungsform können ein oder mehrere nicht vorstehende LIDAR-Sensoren 1664 verwendet werden. In einer solchen Ausführungsform kann/können der/die LIDAR-Sensor(en) 1664 als kleine Vorrichtung implementiert sein, die in die Front, das Heck, die Seiten und/oder die Ecken des Fahrzeugs 1600 eingebettet sein kann. In mindestens einer Ausführungsform können die LIDAR-Sensor(en) 1664 in einer derartigen Ausführungsform ein horizontales Sichtfeld von bis zu 120 Grad und ein vertikales Sichtfeld von bis zu 35 Grad mit einer Reichweite von 200 m selbst bei Objekten mit niedrigem Reflexionsvermögen bereitstellen. In mindestens einer Ausführungsform kann/können der/die frontmontierte(n) LIDAR-Sensor(en) 1664 für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert sein.
  • In mindestens einer Ausführungsform können auch LIDAR-Technologien, wie z. B. 3D-Blitz-LIDAR, verwendet werden. 3D-Blitz-LIDAR verwendet einen Blitz eines Lasers als eine Übertragungsquelle, um die Umgebung des Fahrzeugs 1600 bis zu ungefähr 200 m zu erleuchten. In mindestens einer Ausführungsform beinhaltet eine Blitz-LIDAR-Einheit ohne Einschränkung einen Rezeptor, der die Laserpuls-Laufzeit und das reflektierte Licht an jedem Pixel aufzeichnet, was wiederum der Reichweite vom Fahrzeug 1600 zu Objekten entspricht. In mindestens einer Ausführungsform kann es der Flash-LIDAR ermöglichen, mit jedem Laserblitz hochgenaue und verzerrungsfreie Bilder der Umgebung zu generieren. In mindestens einer Ausführungsform können vier Flash-LIDAR-Sensoren bereitgestellt werden, einer auf jeder Seite des Fahrzeugs 1600. In mindestens einer Ausführungsform weisen 3D-Blitz-LIDAR-Systeme ohne Einschränkung eine Festkörper-3D-Star-Array-LIDAR-Kamera auf, die außer einem Lüfter keine beweglichen Teile aufweist (z. B. eine nicht scannende LIDAR-Einrichtung). In mindestens einer Ausführungsform kann/können die Blitz-LIDAR-Vorrichtung(en) einen 5-Nanosekunden-Laserpuls der Klasse I (augensicher) pro Bild verwenden und können das reflektierte Laserlicht in Form von 3D-Reichweitenpunktwolken und gemeinsam registrierten Intensitätsdaten erfassen.
  • In mindestens einer Ausführungsform kann das Fahrzeug ferner (einen) IMU-Sensor(en) 1666 beinhalten. In mindestens einer Ausführungsform kann/können der/die IMU-Sensor(en) 1666 sich in mindestens einer Ausführungsform in der Mitte der Hinterachse des Fahrzeugs 1600 befinden. In mindestens einer Ausführungsform kann/können der/die IMU-Sensor(en) 1666 zum Beispiel und ohne Einschränkung (einen) Beschleunigungsmesser, (ein) Magnetometer, (ein) Gyroskop(e), (einen) Magnetkompass(e) und/oder andere Sensorarten beinhalten. In mindestens einer Ausführungsform, wie z. B. bei sechsachsigen Anwendungen, kann/können der/die IMU-Sensor(en) 1666 ohne Einschränkung Beschleunigungsmesser und Gyroskope beinhalten. In mindestens einer Ausführungsform, wie z. B. bei neunachsigen Anwendungen, kann/können der/die IMU-Sensor(en) 1666 ohne Einschränkung Beschleunigungsmesser, Gyroskope und Magnetometer beinhalten.
  • In mindestens einer Ausführungsform können der/die IMU-Sensor(en) 1666 als ein miniaturisiertes GPS-gestütztes Trägheitsnavigationssystem (GPS-aided inertial navigation system - „GPS/INS“) mit hoher Performance implementiert sein, das Trägheitssensoren von mikroelektromechanischen Systemen („MEMS“), einen hochempfindlichen GPS-Empfänger und weiterentwickelte Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Stellung bereitzustellen. In mindestens einer Ausführungsform kann/können der/die IMU-Sensor(en) 1666 es dem Fahrzeug 1600 ermöglichen, den Kurs zu schätzen, ohne dass Eingaben von einem Magnetsensor erforderlich sind, indem vom GPS an den/die IMU-Sensor(en) 1666 Änderungen der Geschwindigkeit direkt beobachtet und korreliert werden. In mindestens einer Ausführungsform kann/können der/die IMU-Sensor(en) 1666 und der/die GNSS-Sensor(en) 1658 in einer einzelnen integrierten Einheit kombiniert sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 (ein) Mikrofon(e) 1696 beinhalten, das/die in dem oder/um das Fahrzeug 1600 herum platziert ist/sind. In mindestens einer Ausführungsform kann/können das/die Mikrofon(e) 1696 u.a. zur Erkennung und Identifizierung von Einsatzfahrzeugen verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner eine beliebige Anzahl von Kameraarten beinhalten, einschließlich (einer) Stereokamera(s) 1668, (einer) Weitsichtkamera(s) 1670, (einer) Infrarotkamera(s) 1672, (einer) Rundumkamera(s) 1674, (einer) Langstreckenkamera(s) 1698, (einer) Mittelstreckenkamera(s) 1676 und/oder anderer Kameraarten. In mindestens einer Ausführungsform können Kameras verwendet werden, um Bilddaten rund um den gesamten Umfang des Fahrzeugs 1600 zu erfassen. In mindestens einer Ausführungsform hängt die Art der verwendeten Kameras vom Fahrzeug 1600 ab. In mindestens einer Ausführungsform kann eine beliebige Kombination von Kameraarten verwendet werden, um die erforderliche Abdeckung um das Fahrzeug 1600 herum zu gewährleisten. In mindestens einer Ausführungsform kann die Anzahl der Kameras in Abhängigkeit von der Ausführungsform unterschiedlich sein. In mindestens einer Ausführungsform könnte das Fahrzeug 1600 zum Beispiel sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras oder eine andere Anzahl von Kameras beinhalten. Kameras können zum Beispiel und ohne Einschränkung Gigabit Multimedia Serial Link („GMSL“) und/oder Gigabit Ethernet unterstützen. In mindestens einer Ausführungsform ist jede der Kamera(s) in dieser Schrift bereits in Bezug auf 16A und 16B detaillierter beschrieben.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner (einen) Schwingungssensor(en) 1642 beinhalten. In mindestens einer Ausführungsform kann/können der/die Schwingungssensor(en) 1642 Schwingungen von Komponenten des Fahrzeugs 1600, wie etwa der Achse(n), messen. Zum Beispiel können in mindestens einer Ausführungsform Änderungen der Schwingungen eine Änderung der Straßenoberfläche anzeigen. In mindestens einer Ausführungsform, wenn zwei oder mehr Schwingungssensoren 1642 verwendet werden, können die Unterschiede zwischen den Schwingungen verwendet werden, um die Reibung oder den Schlupf der Straßenoberfläche zu bestimmen (z. B., wenn ein Schwingungsunterschied zwischen einer leistungsbetriebenen Achse und einer sich frei drehenden Achse besteht).
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 das ADAS-System 1638 beinhalten. Das ADAS-System 1638 kann in einigen Beispielen ohne Einschränkung ein SoC beinhalten. In mindestens einer Ausführungsform kann das ADAS-System 1638 ohne Einschränkung eine beliebige Anzahl und Kombination eines Systems zur autonomen/adaptiven/automatischen Geschwindigkeitsregelung (autonomous/adaptive/automatic cruise control - „ACC“), eines Systems zur kooperativen adaptiven Geschwindigkeitsregelung (cooperative adaptive cruise control - „CACC“), eines Systems zur Vorwärtszusammenstoßwarnung (forward crash warning - „FCW“), eines automatischen Systems zur Notbremsung („AEB“), eines Systems zur Spurverlassenswarnung („LDW“), eines Systems zur Spurhalteassistenz (lane keep assist - „LKA“), eines Systems zur Totwinkelwarnung (blind spot warning - „BSW“), eines Systems zur Querverkehrswarnung (rear cross-traffic warning - „RCTW“), eines Systems zur Kollisionswarnung (collision warning - „CW“), eines Systems zur Spurzentrierung (lane centering - „LC“) und/oder anderer Systeme, Merkmale und/oder Funktionen beinhalten.
  • In mindestens einer Ausführungsform kann das ACC-System (einen) RADAR-Sensor(en) 1660, (einen) LIDAR-Sensor(en) 1664 und/oder eine beliebige Anzahl von Kamera(s) verwenden. In mindestens einer Ausführungsform kann das ACC-System ein ACC-System in Längsrichtung und/oder ein ACC-System in Querrichtung beinhalten. In mindestens einer Ausführungsform überwacht und steuert das ACC-System Längsrichtung die Entfernung zum Fahrzeug, das sich unmittelbar vor dem Fahrzeug 1600 befindet, und passt die Geschwindigkeit des Fahrzeugs 1600 automatisch an, um eine sichere Entfernung zu vorausfahrenden Fahrzeugen einzuhalten. In mindestens einer Ausführungsform führt das ACC-System in Querrichtung eine Entfernungsbeibehaltung durch und rät dem Fahrzeug 1600, die Spur zu wechseln, wenn dies erforderlich ist. In mindestens einer Ausführungsform ist die ACC in Querrichtung mit anderen ADAS-Anwendungen, wie zum Beispiel LC und CW, verbunden.
  • In mindestens einer Ausführungsform verwendet das CACC-System Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 1624 und/oder die drahtlose(n) Antenne(n) 1626 von anderen Fahrzeugen über eine drahtlose Verknüpfung oder indirekt über eine Netzwerkverbindung (z. B. über das Internet) empfangen werden können. In mindestens einer Ausführungsform können direkte Verbindungen durch eine Fahrzeug-zu-Fahrzeug(„V2V“)-Kommunikationsverbindung bereitgestellt werden, während indirekte Verbindungen durch eine Infrastruktur-zu-Fahrzeug(„I2V“)-Kommunikationsverbindung bereitgestellt werden können. Im Allgemeinen stellt das V2V-Kommunikationskonzept Informationen über unmittelbar vorausfahrende Fahrzeuge (z. B. Fahrzeuge, die sich unmittelbar vor dem und auf derselben Spur wie das Fahrzeug 1600 befinden) bereit, während das I2V-Kommunikationskonzept Informationen über den weiter entfernt vorausfahrenden Verkehr bereitstellt. In mindestens einer Ausführungsform kann das CACC-System entweder eine oder beide der I2V- und V2V-Informationsquellen beinhalten. In mindestens einer Ausführungsform kann das CACC-System angesichts der Informationen über Fahrzeuge vor dem Fahrzeug 1600 zuverlässiger sein und hat es das Potenzial, die Gleichmäßigkeit des Verkehrsflusses zu verbessern und Staus auf der Straße zu reduzieren.
  • In mindestens einer Ausführungsform ist das FCW-System dazu ausgestaltet, den Fahrer derart vor einer Gefahr zu warnen, dass der Fahrer eine korrigierende Maßnahme ergreifen kann. In mindestens einer Ausführungsform verwendet das FCW-System eine nach vorne gerichtete Kamera und/oder (einen) RADAR-Sensor(en) 1660, die mit einem/einer dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente. In mindestens einer Ausführungsform kann das FCW-System eine Warnung bereitstellen, z. B. in Form eines Tons, einer optischen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.
  • In mindestens einer Ausführungsform erkennt das AEB-System eine drohende Vorwärtskollision mit einem anderen Fahrzeug oder einem anderen Objekt und kann automatisch die Bremsen betätigen, wenn der Fahrer nicht innerhalb eines spezifizierten Zeit- oder Entfernungsparameters eine korrigierende Maßnahme ergreift. In mindestens einer Ausführungsform kann das AEB-System (eine) nach vorne gerichtete Kamera(s) und/oder (einen) nach vorne gerichtete(n) RADAR-Sensor(en) 1660 verwenden, die mit einem/einer dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. In mindestens einer Ausführungsform, wenn das AEB-System eine Gefahr erkennt, warnt das AEB-System typischerweise zuerst den Fahrer, eine korrigierende Maßnahme zu ergreifen, um eine Kollision zu vermeiden, und, wenn der Fahrer keine korrigierende Maßnahme ergreift, kann das AEB-System automatisch die Bremsen in dem Bestreben betätigen, die Auswirkungen der vorhergesagten Kollision zu verhindern oder mindestens abzuschwächen. In mindestens einer Ausführungsform kann das AEB-System Techniken, wie etwa dynamische Bremsunterstützung und/oder Bremsung aufgrund eines bevorstehenden Zusammenstoßes, beinhalten.
  • In mindestens einer Ausführungsform stellt das LDW-System optische, akustische und/oder taktile Warnungen bereit, wie z. B. Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 1600 die Fahrspurmarkierungen überquert. In mindestens einer Ausführungsform wird das LDW-System nicht aktiviert, wenn der Fahrer ein absichtliches Verlassen der Fahrspur durch Aktivieren eins Abbiegesignals angibt. In mindestens einer Ausführungsform kann das LDW-System nach vorne und zur Seite gerichtete Kameras verwenden, die mit einem/einer dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente. In mindestens einer Ausführungsform ist das LKA-System eine Variation des LDW-Systems. Das LKA-System stellt eine Lenkeingabe oder eine Bremsung bereit, um das Fahrzeug 1600 zu korrigieren, wenn das Fahrzeug 1600 beginnt, die Fahrspur zu verlassen.
  • In mindestens einer Ausführungsform erkennt und warnt das BSW-System den Fahrer vor Fahrzeugen im toten Winkel eines Automobils. In mindestens einer Ausführungsform kann das BSW-System einen optischen, akustischen und/oder taktilen Alarm bereitstellen, um anzugeben, dass das Einfädeln in oder Wechseln der Fahrspuren unsicher ist. In mindestens einer Ausführungsform kann das BSW-System eine zusätzliche Warnung ausgeben, wenn der Fahrer ein Abbiegesignal verwendet. In mindestens einer Ausführungsform kann das BSW-System (eine) nach hinten und zur Seite gerichtete Kamera(s) und/oder (einen) nach hinten und zur Seite gerichtete(n) RADAR-Sensor(en) 1660 verwenden, die mit einem/einer dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • In mindestens einer Ausführungsform kann das RCTW-System eine optische, akustische und/oder taktile Benachrichtigung bereitstellen, wenn ein Objekt außerhalb der Reichweite der Heckkamera erkannt wird, wenn das Fahrzeug 1600 rückwärtsfahrt. In mindestens einer Ausführungsform beinhaltet das RCTW-System das AEB-System, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Zusammenstoß zu vermeiden. In mindestens einer Ausführungsform kann das RCTW-System einen oder mehrere nach hinten gerichtete RADAR-Sensor(en) 1660 verwenden, die mit einem/einer dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • In mindestens einer Ausführungsform können herkömmliche ADAS-Systeme anfällig für falsch positive Ergebnisse sein, die für den Fahrer ärgerlich und ablenkend sein können, aber typischerweise nicht katastrophal sind, da herkömmliche ADAS-Systeme den Fahrer warnen und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung wirklich vorliegt und entsprechend zu handeln. In mindestens einer Ausführungsform entscheidet das Fahrzeug 1600 im Falle von widersprüchlichen Ergebnissen selbst, ob das Ergebnis eines primären Computers oder eines sekundären Computers (z. B. eines ersten Controllers 1636 oder eines zweiten Controllers 1636) zu beachten ist. In mindestens einer Ausführungsform kann das ADAS-System 1638 beispielsweise ein Backup- und/oder Sekundärcomputer sein, der einem Rationalitätsmodul des Backup-Computers Wahrnehmungsinformationen bereitstellt. In mindestens einer Ausführungsform kann der Rationalitätsmonitor des Backup-Computers eine redundante, diverse Software auf Hardware-Komponenten ausführen, um Fehler in der Wahrnehmung und bei dynamischen Fahr-Tasks zu erkennen. In mindestens einer Ausführungsform können die Ausgaben des ADAS-Systems 1638 für eine Kontroll-MCU bereitgestellt werden. In mindestens einer Ausführungsform, wenn Ausgaben vom primären Computer und sekundären Computer einander widersprechen, bestimmt die Kontroll-MCU, wie der Widerspruch beizulegen ist, um einen sicheren Betrieb sicherzustellen.
  • In mindestens einer Ausführungsform kann der primäre Computer so konfiguriert sein, dass er der Kontroll-MCU eine Konfidenzbewertung bereitstellt, welche die Konfidenz des primären Computers in das gewählte Ergebnis angibt. In mindestens einer Ausführungsform, wenn die Konfidenzbewertung einen Schwellenwert überschreitet, kann die Kontroll-MCU der Führung des primären Computers folgen, unabhängig davon, ob der sekundäre Computer ein widersprüchliches oder inkonsistentes Ergebnis bereitstellt. In mindestens einer Ausführungsform, in der die Konfidenzbewertung den Schwellenwert nicht erreicht und der primäre und der sekundäre Computer unterschiedliche Ergebnisse angeben (z. B. einen Widerspruch), kann die Kontroll-MCU zwischen den Computern vermitteln, um ein geeignetes Resultat zu bestimmen.
  • In mindestens einer Ausführungsform kann die Kontroll-MCU dazu konfiguriert sein, ein neuronales Netz/neuronale Netze auszuführen, das/die dazu trainiert und konfiguriert ist/sind, mindestens zum Teil auf Grundlage der Ausgaben des primären Computers und des sekundären Computers die Bedingungen zu bestimmen, unter denen der sekundäre Computer Fehlalarme bereitstellt. In mindestens einer Ausführungsform kann/können das neuronale Netz/die neuronalen Netze in der Kotroll-MCU lernen, wann der Ausgabe des sekundären Computers vertraut werden kann und wann nicht. Zum Beispiel kann/können in mindestens einer Ausführungsform, wenn der sekundäre Computer ein RADAR-basiertes FCW-System ist, ein neuronales Netz/neuronale Netze in der Kontroll-MCU lernen, wenn das FCW-System metallische Objekte identifiziert, die tatsächlich keine Gefahren sind, wie z. B. ein Abflussgitter oder ein Gullydeckel, das/der einen Alarm auslöst. In mindestens einer Ausführungsform, wenn der sekundäre Computer ein kamerabasiertes LDW-System ist, kann ein neuronales Netz in der Kontroll-MCU lernen, die LDW zu überschreiben, wenn Fahrradfahrer oder Fußgänger vorhanden sind und ein Verlassen der Fahrspur tatsächlich das sicherste Manöver ist. In mindestens einer Ausführungsform kann die Kontroll-MCU mindestens eines von einem DLA oder einer GPU beinhalten, der/die für die Ausführung von (einem) neuronalen Netz(en) mit zugeordnetem Speicher geeignet ist. In mindestens einer Ausführungsform kann die Kontroll-MCU eine Komponente des/der SoC(s) 1604 umfassen und/oder als solche beinhaltet sein.
  • In mindestens einer Ausführungsform kann das ADAS-System 1638 einen sekundären Computer beinhalten, der die ADAS-Funktionalität unter Verwendung herkömmlicher Regeln der Computer Vision ausführt. In mindestens einer Ausführungsform kann der sekundäre Computer klassische Regeln der Computervision (wenn-dann) verwenden und kann das Vorhandensein eines neuronalen Netzes/von neuronalen Netzen in der Kontroll-MCU die Zuverlässigkeit, Sicherheit und Leistung verbessern. Zum Beispiel macht in mindestens einer Ausführungsform die vielfältige Implementation und absichtliche Nicht-Identität das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch Software(oder Software-Hardware-Schnittstellen)-Funktionalität verursacht werden. Wenn zum Beispiel in mindestens einer Ausführungsform ein Software-Bug oder -Fehler in der auf dem primären Computer laufenden Software vorliegt und ein nicht identischer Software-Code, der auf dem sekundären Computer läuft, dasselbe Gesamtergebnis bereitstellt, dann kann die Kontroll-MCU eine größere Konfidenz darin haben, dass das Gesamtergebnis korrekt ist und der Bug in der Software oder Hardware auf dem primären Computer keinen wesentlichen Fehler verursacht.
  • In mindestens einer Ausführungsform kann die Ausgabe des ADAS-Systems 1638 in den Wahrnehmungsblock des primären Computers und/oder in den Block für dynamische Fahr-Tasks des primären Computers eingespeist werden. Wenn das ADAS-System 1638 z. B. eine Vorwärtszusammenstoßwarnung aufgrund eines unmittelbar vorausliegenden Objekts angibt, kann der Wahrnehmungsblock in mindestens einer Ausführungsform diese Information bei der Identifizierung von Objekten verwenden. In mindestens einer Ausführungsform kann der sekundäre Computer über sein eigenes neuronales Net verfügen, das trainiert ist und somit das Risiko von falsch positiven Ergebnissen reduziert, wie in dieser Schrift beschrieben.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner ein Infotainment-SoC 1630 (z. B. ein fahrzeuginternes Infotainment-System (in-vehicle infotainment system - IVI-System)) beinhalten. Obwohl als SoC veranschaulicht und beschrieben, kann das Infotainment-System 1630 in mindestens einer Ausführungsform kein SoC sein und kann ohne Einschränkung zwei oder mehr diskrete Komponenten beinhalten. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 ohne Einschränkung eine Kombination aus Hardware und Software beinhalten, die verwendet werden kann, um dem Fahrzeug 1600 Audio (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z. B. TV, Filme, Streaming usw.), Telefon (z. B. Freisprechen), Netzwerkkonnektivität (z. B. LTE, WiFi usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Rückwärtseinparkhilfe, ein Funkdatensystem, fahrzeugbezogene Informationen, wie etwa Kraftstofffüllstand, insgesamt zurückgelegte Strecke, Bremskraftstofffüllstand, Ölfüllstand, Tür offen/geschlossen, Luftfilterinformationen usw.) bereitzustellen. Das Infotainment-SoC 1630 könnte zum Beispiel Radios, Plattenspieler, Navigationssysteme, Videoplayer, eine USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, WiFi, Audiobedienelemente am Lenkrad, eine Freisprecheinrichtung, eine Frontanzeige (heads-up display - „HUD“), eine HMI-Anzeige 1634, eine Telematikvorrichtung, ein Bedienfeld (z. B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Merkmalen und/oder Systemen) und/oder andere Komponenten beinhalten. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 ferner dazu verwendet werden, dem/den Benutzer(n) des Fahrzeugs Informationen (z. B. optisch und/oder akustisch) bereitzustellen, wie etwa Informationen von dem ADAS-System 1638, Informationen zum autonomen Fahren, wie etwa geplante Fahrzeugmanöver, Trajektorien, Umgebungsinformationen (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.
  • In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 eine beliebige Menge und Art von GPU-Funktionalität beinhalten. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 über den Bus 1602 (z. B. CAN-Bus, Ethernet usw.) mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 1600 kommunizieren. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 mit einer Kontroll-MCU gekoppelt sein, sodass die GPU des Infotainment-Systems einige Selbstfahrfunktionen durchführen kann, falls der/die primäre(n) Controller 1636 (z. B. primäre und/oder Backup-Computer des Fahrzeugs 1600) ausfällt/ausfallen. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 das Fahrzeug 1600 in einen Modus des Fahrens zu einem sicheren Halt versetzen, wie in dieser Schrift beschrieben.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner ein Kombiinstrument 1632 (z. B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.) beinhalten. In mindestens einer Ausführungsform kann das Kombiinstrument 1632 ohne Einschränkung einen Controller und/oder einen Supercomputer (z. B. einen diskreten Controller oder einen Supercomputer) beinhalten. In mindestens einer Ausführungsform kann das Kombiinstrument 1632 ohne Einschränkung eine beliebige Anzahl und Kombination eines Satzes von Messausrüstung beinhalten, wie etwa Geschwindigkeitsmesser, Kraftstoffstand, Öldruck, Drehzahlmesser, Wegstreckenzähler, Blinker, Schaltknüppelpositionsangabe, Sicherheitsgurt-Warnleuchte(n), Feststellbremsen-Warnleuchte(n), Motorfehlfunktionsleuchte(n), Informationen über ergänzende Rückhaltesysteme (z. B. Airbags), Beleuchtungssteuerelemente, Sicherheitssystemsteuerelemente, Navigationsinformationen usw. In einigen Beispielen können Informationen angezeigt und/oder von dem Infotainment-SoC 1630 und dem Kombiinstrument 1632 gemeinsam genutzt werden. In mindestens einer Ausführungsform kann das Kombiinstrument 1632 als Teil des Infotainment-SoC 1630 beinhaltet sein oder umgekehrt.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend bereitgestellt. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 in dem System aus 16C für Inferenzierungs- oder Vorhersageoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern, die unter Verwendung von in dieser Schrift beschriebenen Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder Verwendungsfällen von neuronalen Netzen berechnet werden, verwendet werden.
  • Derartige Komponenten können verwendet werden, um synthetische Daten zu generieren, die Fehlerfälle in einem Netztrainingsprozess imitieren, was dazu beitragen kann, die Leistung des Netzes zu verbessern, während die Menge an synthetischen Daten begrenzt wird, um eine Überanpassung zu vermeiden.
  • 16D ist eine Darstellung eines Systems 1676 zur Kommunikation zwischen (einem) cloudbasierten Server(n) und dem autonomen Fahrzeug 1600 aus 16A gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 1676 ohne Einschränkung den/die Server 1678, das/die Netzwerk(e) 1690 und eine beliebige Anzahl und Art von Fahrzeugen, einschließlich des Fahrzeugs 1600, beinhalten. In mindestens einer Ausführungsform kann/können der/die Server 1678 ohne Einschränkung eine Vielzahl von GPUs 1684(A)-1684(H) (in dieser Schrift gemeinsam als GPUs 1684 bezeichnet), PCIe-Switches 1682(A)-1682(D) (in dieser Schrift gemeinsam als PCIe-Switches 1682 bezeichnet) und/oder CPUs 1680(A)-1680(B) (in dieser Schrift gemeinsam als CPUs 1680 bezeichnet) beinhalten. Die GPUs 1684, CPUs 1680 und PCIe-Switches 1682 können mit Hochgeschwindigkeitszusammenschaltungen zusammengeschaltet sein, wie etwa zum Beispiel und ohne Einschränkung den von NVIDIA entwickelten NVLink-Schnittstellen 1688 und/oder PCIe-Verbindungen 1686. In mindestens einer Ausführungsform sind die GPUs 1684 über ein NVLink- und/oder NVSwitch-SoC verbunden und die GPUs 1684 und die PCIe-Switches 1682 über PCIe-Zusammenschaltungen verbunden. In mindestens einer Ausführungsform sind zwar acht GPUs 1684, zwei CPUs 1680 und vier PCIe-Switches 1682 veranschaulicht, jedoch ist dies nicht als Einschränkung auszulegen. In mindestens einer Ausführungsform kann jeder des/der Server(s) 1678 ohne Einschränkung eine beliebige Anzahl von GPUs 1684, CPUs 1680 und/oder PCIe-Switches 1682 in beliebiger Kombination beinhalten. Zum Beispiel könnte(n) in mindestens einer Ausführungsform der/die Server 1678 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 1684 beinhalten.
  • In mindestens einer Ausführungsform kann/können der/die Server 1678 über (ein) Netzwerk(e) 1690 und von Fahrzeugen Bilddaten empfangen, die für Bilder repräsentativ sind, die unerwartete oder veränderte Straßenbedingungen zeigen, wie etwa kürzlich begonnene Straßenarbeiten. In mindestens einer Ausführungsform kann/können der/die Server 1678 über (ein) Netzwerk(e) 1690 und an Fahrzeuge neuronale Netze 1692, aktualisierte neuronale Netze 1692 und/oder Karteninformationen 1694 übermitteln, einschließlich, ohne Einschränkung, Informationen über Verkehrs- und Straßenbedingungen. In mindestens einer Ausführungsform können Aktualisierungen der Karteninformationen 1694 ohne Einschränkung Aktualisierungen für die HD-Karte 1622 beinhalten, wie etwa Informationen bezüglich Baustellen, Schlaglöchern, Umleitungen, Überschwemmungen und/oder anderer Hindernisse. In mindestens einer Ausführungsform können die neuronalen Netze 1692, aktualisierten neuronalen Netze 1692 und/oder Karteninformationen 1694 aus einem neuen Training und/oder Erfahrungen resultieren, das/die in Daten dargestellt wird/werden, die von einer beliebigen Anzahl von Fahrzeugen in der Umgebung empfangen wurden, und/oder mindestens zum Teil auf Training, das in einem Rechenzentrum (z. B. unter Verwendung von dem/den Server(n) 1678 und/oder anderen Servern) durchgeführt wurde, basieren.
  • In mindestens einer Ausführungsform kann/können der/die Server 1678 verwendet werden, um maschinelle Lernmodelle (z. B. neuronale Netze) mindestens zum Teil auf Grundlage von Trainingsdaten zu trainieren. In mindestens einer Ausführungsform können die Trainingsdaten von Fahrzeugen und/oder in einer Simulation (z. B. unter Verwendung einer Spiel-Maschine) generiert werden. In mindestens einer Ausführungsform wird eine beliebige Menge von Trainingsdaten markiert (z. B. wenn das zugeordnete neuronale Netz vom überwachten Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen. In mindestens einer Ausführungsform wird eine beliebige Menge von Trainingsdaten nicht markiert und/oder vorverarbeitet (z. B. wenn das zugeordnete neuronale Netz kein überwachtes Lernen benötigt). In mindestens einer Ausführungsform können, sobald die Modelle des maschinellen Lernens trainiert sind, die Modelle des maschinellen Lernens durch Fahrzeuge verwendet werden (z. B. über das/die Netzwerk(e) 1690 an Fahrzeuge übermittelt werden) und/oder die Modelle des maschinellen Lernens können durch den/die Server 1678 verwendet werden, um Fahrzeuge aus der Ferne zu überwachen.
  • In mindestens einer Ausführungsform kann/können der/die Server 1678 Daten von Fahrzeugen empfangen und Daten auf aktuelle neuronale Echtzeit-Netze für intelligentes Inferenzierung in Echtzeit anwenden. In mindestens einer Ausführungsform kann/können der/die Server 1678 Tieflern-Supercomputer und/oder dedizierte KI-Computer beinhalten, die durch die GPU(s) 1684 angetrieben werden, wie etwa die von NVIDIA entwickelten DGX- und DGX-Station-Maschinen. In mindestens einer Ausführungsform kann/können der/die Server 1678 jedoch eine Tieflerninfrastruktur beinhalten, die CPU-angetriebene Rechenzentren verwendet.
  • In mindestens einer Ausführungsform kann die Tieflerninfrastruktur des/der Server(s) 1678 zum schnellen Echtzeit-Inferenzieren in der Lage sein und diese Fähigkeit verwenden, um den Zustand von Prozessoren, Software und/oder zugeordneter Hardware in dem Fahrzeug 1600 zu bewerten und zu verifizieren. Zum Beispiel kann in mindestens einer Ausführungsform die Tieflerninfrastruktur periodische Aktualisierungen von dem Fahrzeug 1600 empfangen, wie etwa eine Sequenz von Bildern und/oder Objekten, die das Fahrzeug 1600 in dieser Sequenz von Bildern lokalisiert hat (z. B. über Computervisionstechniken und/oder andere Techniken des maschinellen Lernens zur Objektklassifizierung). In mindestens einer Ausführungsform kann die Tieflerninfrastruktur ihr eigenes neuronales Netz ausführen, um Objekte zu identifizieren und sie mit Objekten zu vergleichen, die durch das Fahrzeug 1600 identifiziert wurden, und falls die Ergebnisse nicht übereinstimmen und die Tieflerninfrastruktur zu dem Schluss kommt, dass die KI in dem Fahrzeug 1600 eine Fehlfunktion aufweist, dann kann/können der/die Server 1678 ein Signal an das Fahrzeug 1600 übermitteln, das einen ausfallsicheren Computer des Fahrzeugs 1600 anweist, die Steuerung zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • In mindestens einer Ausführungsform kann/können der/die Server 1678 (eine) GPU(s) 1684 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. TensorRT 3 von NVIDIA) beinhalten. In mindestens einer Ausführungsform kann die Kombination von GPU-angetriebenen Servern und Inferenzbeschleunigung eine Reaktionsfähigkeit in Echtzeit ermöglichen. In mindestens einer Ausführungsform, z. B. wenn die Leistung weniger kritisch ist, können für das Inferenzierung auch Server mit CPUs, FPGAs und anderen Prozessoren verwendet werden. In mindestens einer Ausführungsform wird die Inferenz- und/oder Trainingslogik 715 verwendet, um eine oder mehrere Ausführungsformen durchzuführen. Details bezüglich der Inferenz- und/oder Trainingslogik 715 sind an anderer Stelle in dieser Schrift bereitgestellt.
  • Andere Variationen sind im Sinne der vorliegenden Offenbarung. Somit können zwar bezüglich der offenbarten Verfahren diverse Modifikationen und alternative Konstruktionen vorgenommen werden, bestimmte veranschaulichte Ausführungsformen davon werden jedoch in den Zeichnungen gezeigt und wurden vorangehend ausführlich beschrieben. Allerdings versteht es sich, dass nicht die Absicht verfolgt wird, die Offenbarung auf die spezifische(n) offenbarte(n) Form oder Formen einzuschränken, sondern die Absicht ganz im Gegenteil darin besteht, sämtliche Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Geist und Umfang der wie in den beigefügten Ansprüchen definierten Offenbarung fallen.
  • Die Verwendung der Ausdrücke „ein“ und „eine“ und „der/die/das“ und ähnlicher Referenten im Kontext des Beschreibens offenbarter Ausführungsformen (insbesondere im Kontext der folgenden Ansprüche) ist so auszulegen, dass sie sowohl den Singular als auch den Plural abdeckt, sofern in dieser Schrift nichts anderes angegeben ist oder der Kontext dem eindeutig widerspricht, und nicht als Definition eines Ausdrucks. Die Ausdrücke „umfassend“, „aufweisend“, „beinhaltend“ und „enthaltend“ sind als offene Ausdrücke auszulegen (d. h. in der Bedeutung „beinhaltend, ohne darauf beschränkt zu sein“), es sei denn, es ist etwas anderes angegeben. Der Ausdruck „verbunden“ ist als teilweise oder vollständig in etwas enthalten, an etwas befestigt oder zusammengefügt auszulegen, wenn er unmodifiziert vorliegt und sich auf physische Verbindungen bezieht, selbst wenn ein Element dazwischen eingefügt ist. Die Nennung von Wertebereichen in dieser Schrift soll lediglich als ein schnelles Verfahren des einzelnen Bezugnehmens auf jeden getrennten Wert dienen, der in den Bereich fällt, es sei denn, in dieser Schrift ist etwas anderes angegeben, und jeder getrennte Wert ist in die Beschreibung integriert, als ob er einzeln in dieser Schrift wiedergegeben wäre. Die Verwendung des Ausdrucks „Satz“ (z. B. „ein Satz von Objekten“) oder „Teilsatz“ ist als eine nichtleere Zusammenstellung auszulegen, die ein oder mehrere Elemente umfasst, es sei denn, es ist etwas anderes angemerkt oder dies widerspricht dem Kontext. Ferner bezeichnet der Ausdruck „Teilsatz“ eines entsprechenden Satzes nicht notwendigerweise einen tatsächlichen Teilsatz des entsprechenden Satzes; vielmehr können der Teilsatz und der entsprechende Satz gleich sein, es sei denn, es ist etwas anderes angemerkt oder dies widerspricht dem Kontext.
  • Sofern nicht spezifisch etwas anderes angegeben ist oder der Kontext dem eindeutig widerspricht, sind verbindende Ausdrücke, wie etwa Formulierungen der Form „mindestens eines von A, B und C“ oder „mindestens eines von A, B und C“, andernfalls in dem Kontext zu verstehen, in dem sie allgemein verwendet werden, um darzustellen, dass ein Gegenstand, ein Ausdruck usw. entweder A oder B oder C oder eine beliebige nichtleere Teilmenge des Satzes aus A und B und C sein kann. Zum Beispiel beziehen sich in dem veranschaulichenden Beispiel für einen Satz, der drei Elemente aufweist, die verbindenden Formulierungen „mindestens eines von A, B und C“ und „mindestens eines von A, B und C“ auf einen beliebigen der folgenden Sätze: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Somit sollen derartige verbindenden Ausdrücke im Allgemeinen nicht ausdrücken, dass bestimmte Ausführungen erforderlich machen, dass jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sind. Zusätzlich bezeichnet, sofern nicht anders angegeben oder durch den Kontext widersprochen, der Ausdruck „Vielzahl“ außerdem einen Zustand der Pluralität (z. B. „eine Vielzahl von Elementen“ bezeichnet mehrere Elemente). Eine Vielzahl besteht aus mindestens zwei Elementen, kann jedoch auch mehr sein, wenn dies entweder explizit oder durch den Kontext angegeben ist. Ferner bedeutet, sofern nicht anders angegeben oder aus dem Kontext nicht eindeutig hervorgeht, der Ausdruck „auf Grundlage von“ „mindestens zum Teil auf Grundlage von“ und nicht „ausschließlich auf Grundlage von“.
  • In dieser Schrift beschriebene Operationen von Prozessen können in einer beliebigen geeigneten Reihenfolge durchgeführt werden, sofern es in dieser Schrift nicht anders angegeben ist oder der Kontext dem anderweitig eindeutig widerspricht. In mindestens einer Ausführungsform wird ein Prozess, wie etwa die in dieser Schrift beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon), unter der Steuerung von einem oder mehreren Computersystemen durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind, und er ist als Code (z. B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), der gemeinsam auf einem oder mehreren Prozessoren ausgeführt wird, durch Hardware oder Kombinationen davon implementiert. In mindestens einer Ausführungsform ist Code auf einem computerlesbaren Speichermedium gespeichert, zum Beispiel in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die durch einen oder mehrere Prozessoren ausgeführt werden können. In mindestens einer Ausführungsform ist ein computerlesbares Speichermedium ein nicht transitorisches computerlesbares Speichermedium, das transitorische Signale (z. B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nicht transitorische Datenspeicherschaltungen (z. B. Puffer, Cache und Warteschlangen) innerhalb von Transceivern von transitorischen Signalen beinhaltet. In einigen Ausführungsformen ist der Code (z. B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nicht transitorischen computerlesbaren Speichermedien gespeichert, die darauf gespeicherte ausführbare Anweisungen (oder anderen Speicher, um ausführbare Anweisungen zu speichern) aufweisen, die bei Ausführung (d. h. als Folge davon, dass sie ausgeführt werden) durch einen oder mehrere Prozessoren eines Computersystems das Computersystem veranlassen, in dieser Schrift beschriebene Operationen durchzuführen. Ein Satz von nicht transitorischen computerlesbaren Speichermedien kann in mindestens einer Ausführungsform mehrere nicht transitorische computerlesbare Speichermedien umfassen, und eines oder mehrere von einzelnen nicht transitorischen Speichermedien der mehreren nicht transitorischen computerlesbaren Speichermedien verfügen möglicherweise nicht über den gesamten Code, während mehrere nicht transitorische computerlesbare Speichermedien gemeinsam den gesamten Code speichern. In mindestens einer Ausführungsform werden die ausführbaren Anweisungen so ausgeführt, dass unterschiedliche Anweisungen durch unterschiedliche Prozessoren ausgeführt werden - zum Beispiel speichert ein nicht transitorisches computerlesbares Speichermedium Anweisungen und eine Haupt-Zentralverarbeitungseinheit („CPU“) führt einige der Anweisungen aus, während eine Grafikverarbeitungseinheit („GPU“) andere Anweisungen ausführt. In mindestens einer Ausführungsform weisen unterschiedliche Komponenten eines Computersystems separate Prozessoren auf und unterschiedliche Prozessoren führen unterschiedliche Teilsätze von Anweisungen aus.
  • Dementsprechend sind in mindestens einer Ausführungsform Computersysteme dazu konfiguriert, einen oder mehrere Dienste zu implementieren, die einzeln oder gemeinsam Operationen der in dieser Schrift beschriebenen Prozesse durchführen, und derartige Computersysteme sind mit geeigneter Hardware und/oder Software konfiguriert, welche die Durchführung der Operationen ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der vorliegenden Offenbarung implementiert, eine einzelne Vorrichtung und in einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Vorrichtungen umfasst, die unterschiedlich arbeiten, sodass das verteilte Computersystem die in dieser Schrift beschriebenen Operationen durchführt und sodass eine einzelne Vorrichtung nicht alle Operationen durchführt.
  • Die Verwendung von Beispielen oder beispielhafter Wortwahl (z. B. „wie etwa“), die in dieser Schrift bereitgestellt ist, soll lediglich die Ausführungsformen der Offenbarung besser verdeutlichen und stellt keine Einschränkung des Umfangs der Offenbarung dar, es sei denn, es ist etwas anderes beansprucht. Keinerlei Wortwahl in der Beschreibung sollte so ausgelegt werden, dass sie ein beliebiges nicht beanspruchtes Element als für die Umsetzung der Offenbarung wesentlich angibt.
  • Alle Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patenten, die in dieser Schrift genannt werden, sind hiermit durch Bezugnahme in demselben Maße aufgenommen, als wäre jede Referenz einzeln und spezifisch als durch Referenz eingeschlossen angegeben und in ihrer Gesamtheit in dieser Schrift ausgeführt.
  • In der Beschreibung und den Ansprüchen können die Ausdrücke „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Es versteht sich, dass diese Ausdrücke nicht als Synonyme füreinander beabsichtigt sein können. Vielmehr kann in bestimmten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem oder indirektem physischem oder elektrischem Kontakt miteinander stehen. Mit „gekoppelt“ kann auch gemeint sein, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, jedoch trotzdem miteinander zusammenwirken oder interagieren.
  • Sofern nicht ausdrücklich anders angegeben, versteht es sich, dass sich Ausdrücke wie etwa „Verarbeitung“, „Rechnen“, „Berechnen“, „Bestimmen“ oder dergleichen in der gesamten Beschreibung auf Handlungen und/oder Prozesse eines Computers oder Rechensystems oder einer ähnlichen elektronischen Rechenvorrichtung, die Daten, die als physische, z. B. elektronische, Größen in den Registern und/oder Speichern des Rechensystems dargestellt sind, manipulieren und/oder in andere Daten umwandeln, die auf ähnliche Weise als physische Größen in den Speichern, Registern oder anderen derartigen Vorrichtungen zur Speicherung, Übermittlung und Anzeige von Informationen des Rechensystems dargestellt sind.
  • Auf ähnliche Weise kann sich der Ausdruck „Prozessor“ auf eine beliebige Vorrichtung oder einen beliebigen Abschnitt einer Vorrichtung beziehen, die/der elektronische Daten aus Registern und/oder Speicher verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder Speicher gespeichert werden können. Als nicht einschränkende Beispiele kann der „Prozessor“ eine CPU oder eine GPU sein. Eine „Rechenplattform“ kann einen oder mehrere Prozessoren umfassen. Wie in dieser Schrift verwendet, können „Software“-Prozesse zum Beispiel Software- und/oder Hardware-Entitäten beinhalten, die im Verlauf der Zeit Arbeit verrichten, wie etwa Tasks, Threads und intelligente Agenten. Außerdem kann sich jedes Verfahren auf mehrere Verfahren zum Ausführen von Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend beziehen. Die Ausdrücke „System“ und „Verfahren“ werden in dieser Schrift insofern austauschbar verwendet, dass ein System ein oder mehrere Verfahren verkörpern kann und die Verfahren als System betrachtet werden können.
  • Im vorliegenden Dokument kann Bezug genommen werden auf das Erhalten, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Teilsystem, ein Computersystem oder eine computerimplementierte Maschine. Das Erhalten, Erfassen, Empfangen oder Eingeben von analogen und digitalen Daten kann auf vielfältige Weise erfolgen, wie etwa durch das Empfangen von Daten als ein Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Anwendungsprogrammierschnittstelle. In einigen Implementierungen kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch das Übertragen von Daten über eine serielle oder parallele Schnittstelle erreicht werden. In einer anderen Implementierung kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch das Übermitteln von Daten über ein Computernetzwerk von der bereitstellenden Entität zu der erfassenden Entität erfolgen. Es kann auch auf das Bereitstellen, Ausgeben, Übermitteln, Senden oder Darstellen von analogen oder digitalen Daten Bezug genommen werden. In verschiedenen Beispielen kann der Prozess des Bereitstellens, Ausgebens, Übermittelns, Sendens oder Darstellens von analogen oder digitalen Daten durch das Übermitteln von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Anwendungsprogrammierschnittstelle oder eines Interprozesskommunikationsmechanismus erfolgen.
  • Obwohl die vorstehende Erörterung beispielhafte Implementationen der beschriebenen Techniken darlegt, können auch andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sie sollen im Umfang dieser Offenbarung liegen. Darüber hinaus könnten, obwohl spezifische Verteilungen von Zuständigkeiten zum Zwecke der Erörterung vorstehend definiert sind, verschiedene Funktionen und Zuständigkeiten in Abhängigkeit von den Umständen anders verteilt und aufgeteilt werden.
    Obwohl der Gegenstand ferner in für Strukturmerkmale und/oder Verfahrenshandlungen spezifischer Sprache beschrieben wurde, versteht es sich, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht unbedingt auf die beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr sind die konkreten Merkmale und Handlungen als beispielhafte Formen der Implementierung der Ansprüche offenbart.

Claims (20)

  1. Verfahren, umfassend: Identifizieren eines ersten Satzes von Bildern, die eine Vielzahl von Objekten einer Vielzahl von Klassen umfassen; Bereitstellen des ersten Satzes von Bildern als Eingabe für ein erstes maschinelles Lernmodell, das trainiert wird, um für ein gegebenes Eingabebild ein Vorhandensein eines oder mehrerer Objekte mindestens einer der Vielzahl von Klassen, die in dem gegebenen Eingabebild gezeigt sind, zu erkennen und mindestens Maskendaten, die einem oder mehreren der erkannten Objekte zugeordnet sind, vorherzusagen; Bestimmen von Objektdaten, die jedem des ersten Satzes von Bildern zugeordnet sind, aus einer oder mehreren ersten Ausgaben des ersten maschinellen Lernmodells, wobei die Objektdaten für jedes jeweilige Bild des ersten Satzes von Bildern Maskendaten umfassen, die jedem in dem jeweiligen Bild erkannten Objekt zugeordnet sind; und Trainieren eines zweiten maschinellen Lernmodells, um Objekte einer Zielklasse in einem zweiten Satz von Bildern zu erkennen, wobei das zweite maschinelle Lernmodell unter Verwendung von mindestens einem Teilsatz des ersten Satzes von Bildern und einer Zielausgabe für den mindestens einen Teilsatz des ersten Satzes von Bildern trainiert wird, wobei die Zielausgabe die Maskendaten, die jedem in dem mindestens einen Teilsatz des ersten Satzes von Bildern erkannten Objekt zugeordnet sind, und eine Angabe darüber umfasst, ob eine Klasse, die jedem in dem mindestens einen Teilsatz des ersten Satzes von Bildern erkannten Objekt zugeordnet ist, der Zielklasse entspricht.
  2. Verfahren nach Anspruch 1, wobei das erste maschinelle Lernmodell ferner trainiert wird, um für jedes des einen oder der mehreren erkannten Objekte eine bestimmte Klasse der Vielzahl von Klassen vorherzusagen, die einem jeweiligen erkannten Objekt zugeordnet ist.
  3. Verfahren nach Anspruch 2, ferner umfassend: Generieren der Zielausgabe, wobei das Generieren der Zielausgabe Folgendes umfasst: Bestimmen, ob die bestimmte Klasse, die dem jeweiligen erkannten Objekt zugeordnet ist, der Zielklasse entspricht.
  4. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Identifizieren von grundlegenden Referenzdaten, die dem jeweiligen in dem Bild gezeigten Objekt zugeordnet sind, unter Verwendung einer Angabe eines oder mehrerer Begrenzungsrahmen, die dem Bild zugeordnet sind.
  5. Verfahren nach Anspruch 4, wobei mindestens ein Begrenzungsrahmen des einen oder der mehreren Begrenzungsrahmen von mindestens einem von einer anerkannten Begrenzungsrahmen-Autoritätsentität oder einem Benutzer einer Plattform bereitgestellt wurde.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das zweite maschinelle Lernmodell ein maschinelles Lernmodell mit mehreren Köpfen ist und wobei das Verfahren ferner Folgendes umfasst: beim Trainieren des zweiten maschinellen Lernmodells unter Verwendung des mindestens einen Teilsatzes des ersten Satzes von Bildern und der Zielausgabe, Identifizieren eines oder mehrerer Köpfe des zweiten maschinellen Lernmodells, die dem Vorhersagen von Maskendaten für ein gegebenes Eingabebild entsprechen; und Aktualisieren des zweiten maschinellen Lernmodells, um den einen oder die mehreren identifizierten Köpfe zu entfernen.
  7. Verfahren nach Anspruch 6, ferner umfassend: Bereitstellen eines dritten Satzes von Bildern als Eingabe für das zweite maschinelle Lernmodell; Erlangen einer oder mehrerer zweiter Ausgaben des zweiten maschinellen Lernmodells; und Bestimmen zusätzlicher Objektdaten, die jedem des dritten Satzes von Bildern zugeordnet sind, auf Grundlage der einen oder der mehreren Ausgaben, wobei die zusätzlichen Objektdaten für jedes jeweilige Bild des zweiten Satzes von Bildern eine Angabe einer Region des jeweiligen Bilds, die ein in dem jeweiligen Bild erkanntes Objekt beinhaltet, und einer dem Objekt zugeordneten Klasse umfassen.
  8. Verfahren nach Anspruch 6 oder 7, ferner umfassend: Übermitteln des aktualisierten zweiten maschinellen Lernmodells an mindestens eine von einer Edge-Vorrichtung oder einer Endpunktvorrichtung über ein Netzwerk.
  9. System, umfassend: eine Speichervorrichtung; und eine Verarbeitungsvorrichtung, die mit der Speichervorrichtung gekoppelt ist, wobei die Verarbeitungsvorrichtung dazu dient, Operationen durchzuführen, die Folgendes umfassen: Generieren von Trainingsdaten für ein maschinelles Lernmodell, wobei das Generieren der Trainingsdaten Folgendes umfasst: Generieren einer Trainingseingabe, die ein Bild umfasst, das ein Objekt zeigt; und Generieren einer Zielausgabe für die Trainingseingabe, wobei die Zielausgabe einen Begrenzungsrahmen, der dem gezeigten Objekt zugeordnet ist, Maskendaten, die dem gezeigten Objekt zugeordnet sind, und eine Angabe einer Klasse, die dem gezeigten Objekt zugeordnet ist, umfasst; Bereitstellen der Trainingsdaten zum Trainieren des maschinellen Lernmodells an (i) einem Satz von Trainingseingaben, der die generierte Trainingseingabe umfasst, und (ii) einem Satz von Zielausgaben, der die generierte Zielausgabe umfasst; Identifizieren eines oder mehrerer Köpfe des trainierten maschinellen Lernmodells, die dem Vorhersagen von Maskendaten für ein gegebenes Eingabebild entsprechen; und Aktualisieren des trainierten maschinellen Lernmodells, um den einen oder die mehreren identifizierten Köpfe zu entfernen.
  10. System nach Anspruch 9, wobei die Operationen ferner Folgendes umfassen: Bereitstellen eines Satzes von Bildern als Eingabe für das aktualisierte trainierte maschinelle Lernmodell; Erlangen einer oder mehrerer Ausgaben des aktualisierten trainierten maschinellen Lernmodells; und Bestimmen von Objektdaten, die jedem des Satzes von Bildern zugeordnet sind, aus der einen oder den mehreren Ausgaben, wobei die Objektdaten für jedes jeweilige Bild des zweiten Satzes von Bildern eine Angabe einer Region des jeweiligen Bilds, die ein in dem jeweiligen Bild erkanntes Objekt beinhaltet, und einer dem Objekt zugeordneten Klasse umfassen.
  11. System nach Anspruch 9 oder 10, wobei die Operationen ferner Folgendes umfassen: Bereitstellen des aktualisierten trainierten maschinellen Lernmodells unter Verwendung von mindestens einer von einer Edge-Vorrichtung oder einer Endpunktvorrichtung.
  12. System nach einem der Ansprüche 9 bis 11, wobei das Generieren der Zielausgabe für die Trainingseingabe Folgendes umfasst: Bereitstellen des Bilds, welches das Objekt zeigt, als Eingabe für ein zusätzliches maschinelles Lernmodell, wobei das zusätzliche maschinelle Lernmodell trainiert wird, um für ein gegebenes Eingabebild ein Vorhandensein eines oder mehrerer Objekte, die in dem gegebenen Eingabebild gezeigt sind, zu erkennen und mindestens Maskendaten vorherzusagen, die einem oder mehreren der erkannten Objekte zugeordnet sind; und Bestimmen von Objektdaten, die dem Bild zugeordnet sind, aus einer oder mehreren Ausgaben des zusätzlichen maschinellen Lernmodells, wobei die Objektdaten für das Bild Maskendaten umfassen, die dem gezeigten Objekt zugeordnet sind.
  13. System nach Anspruch 12, wobei das zusätzliche maschinelle Lernmodell ferner trainiert wird, um für jedes des einen oder der mehreren erkannten Objekte eine Klasse vorherzusagen, die dem jeweiligen erkannten Objekt zugeordnet ist, und wobei Objektdaten für das Bild ferner die Angabe der dem gezeigten Objekt zugeordneten Klasse umfassen.
  14. System nach einem der Ansprüche 9 bis 13, wobei das Generieren der Zielausgabe für die Trainingseingabe Folgendes umfasst: Erlangen von grundlegenden Referenzdaten, die dem Bild zugeordnet sind, wobei die grundlegenden Referenzdaten den Begrenzungsrahmen umfassen, der dem gezeigten Objekt zugeordnet ist.
  15. System nach Anspruch 14, wobei die grundlegenden Referenzdaten aus einer Datenbank erlangt werden, die eine Angabe eines oder mehrerer Begrenzungsrahmen umfasst, die Objekten zugeordnet sind, die in einem Satz von Bildern gezeigt sind, wobei das Bild in dem Satz von Bildern beinhaltet ist und wobei der eine oder die mehreren Begrenzungsrahmen von einer anerkannten Begrenzungsrahmen-Autoritätsentität oder einem Benutzer einer Plattform bereitgestellt werden.
  16. Nicht transitorisches computerlesbares Speichermedium, das Anweisungen umfasst, die bei Ausführung durch eine Verarbeitungsvorrichtung die Verarbeitungsvorrichtung dazu veranlassen, Operationen durchzuführen, die Folgendes umfassen: Bereitstellen eines Satzes aktueller Bilder als Eingabe für ein erstes maschinelles Lernmodell, wobei das erste maschinelle Lernmodell trainiert wird, um Objekte einer Zielklasse in einem gegebenen Satz von Bildern unter Verwendung von Folgendem zu erkennen: (i) einer Trainingseingabe, die einen Satz von Trainingsbildern umfasst, und (ii) einer Zielausgabe für die Trainingseingabe, wobei die Zielausgabe für jedes jeweilige Trainingsbild des Satzes von Trainingsbildern Folgendes umfasst: grundlegende Referenzdaten, die jedem in dem jeweiligen Trainingsbild gezeigten Objekt zugeordnet sind, wobei die grundlegenden Referenzdaten eine Region des jeweiligen Trainingsbilds angeben, die ein jeweiliges Objekt beinhaltet, Maskendaten, die jedem in dem jeweiligen Trainingsbild gezeigten Objekt zugeordnet sind, wobei die Maskendaten auf Grundlage einer oder mehrerer Ausgaben eines zweiten maschinellen Lernmodells erlangt werden, und eine Angabe darüber, ob eine Klasse, die jedem in dem jeweiligen Trainingsbild gezeigten Objekt zugeordnet ist, der Zielklasse entspricht; Erlangen einer oder mehrerer Ausgaben des ersten maschinellen Lernmodells; und Bestimmen von Objektdaten, die jedem des Satzes aktueller Bilder zugeordnet sind, auf Grundlage der einen oder der mehreren Ausgaben des ersten maschinellen Lernmodells, wobei die Objektdaten für jedes jeweilige aktuelle Bild des Satzes aktueller Bilder eine Angabe einer Region des jeweiligen aktuellen Bilds, die ein in dem jeweiligen aktuellen Bild erkanntes Objekt beinhaltet, und eine Angabe darüber, ob das erkannte Objekt der Zielklasse entspricht, umfasst.
  17. Nicht transitorisches computerlesbares Speichermedium nach Anspruch 16, wobei die Objektdaten ferner Maskendaten umfassen, die dem in dem jeweiligen aktuellen Bild erkannten Objekt zugeordnet sind.
  18. Nicht transitorisches computerlesbares Speichermedium nach Anspruch 16 oder 17, wobei das Bestimmen von Objektdaten, die jedem des Satzes aktueller Bilder zugeordnet sind, Folgendes umfasst: Extrahieren eines oder mehrerer Sätze von Objektdaten aus der einen oder den mehreren Ausgaben des ersten maschinellen Lernmodells, wobei jeder des einen oder der mehreren Sätze von Objektdaten einem Konfidenzniveau zugeordnet ist, dass die Objektdaten einem in dem jeweiligen aktuellen Bild erkannten Objekt entsprechen; und Bestimmen, ob das Konfidenzniveau, das einem jeweiligen Satz von Objektdaten zugeordnet ist, ein Konfidenzniveaukriterium erfüllt.
  19. Nicht transitorisches computerlesbares Speichermedium nach einem der Ansprüche 16 bis 18, ferner umfassend Trainieren des ersten maschinellen Lernmodells durch Folgendes: Bereitstellen des Satzes von Trainingsbildern als Eingabe für das zweite maschinelle Lernmodell, wobei das zweite maschinelle Lernmodell trainiert wird, um für ein gegebenes Eingabebild ein oder mehrere Objekte mindestens einer von einer Vielzahl von Klassen, die in der gegebenen Eingabe gezeigt sind, zu erkennen und für jedes des einen oder der mehreren erkannten Objekte mindestens Maskendaten vorherzusagen, die dem jeweiligen erkannten Objekt zugeordnet sind; Bestimmen von Objektdaten, die jedem des Satzes von Trainingsbildern zugeordnet sind, aus einer oder mehreren Ausgaben des zweiten maschinellen Lernmodells, wobei die Objektdaten für jedes jeweilige Trainingsbild des Satzes von Trainingsbildern Maskendaten umfassen, die jedem in dem jeweiligen Bild erkannten Objekt zugeordnet sind.
  20. Nicht transitorisches computerlesbares Speichermedium nach einem der Ansprüche 16 bis 19, wobei die grundlegenden Referenzdaten unter Verwendung einer Datenbank erlangt werden, die eine Angabe eines oder mehrerer Begrenzungsrahmen umfasst, die dem Satz von Trainingsbildern zugeordnet sind, wobei jeder des einen oder der mehreren Begrenzungsrahmen von mindestens einem von einer anerkannten Begrenzungsrahmen-Autoritätsentität oder einem Benutzer einer Plattform bereitgestellt wurde.
DE102022123130.5A 2021-09-16 2022-09-12 Trainieren von objekterkennungsmodellen unter verwendung von transferlernen Pending DE102022123130A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/477,370 2021-09-16
US17/477,370 US20230078218A1 (en) 2021-09-16 2021-09-16 Training object detection models using transfer learning

Publications (1)

Publication Number Publication Date
DE102022123130A1 true DE102022123130A1 (de) 2023-03-16

Family

ID=85284768

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022123130.5A Pending DE102022123130A1 (de) 2021-09-16 2022-09-12 Trainieren von objekterkennungsmodellen unter verwendung von transferlernen

Country Status (4)

Country Link
US (1) US20230078218A1 (de)
JP (1) JP2023043825A (de)
CN (1) CN115830486A (de)
DE (1) DE102022123130A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11810225B2 (en) * 2021-03-30 2023-11-07 Zoox, Inc. Top-down scene generation
US11858514B2 (en) 2021-03-30 2024-01-02 Zoox, Inc. Top-down scene discrimination
US11971955B1 (en) * 2021-07-21 2024-04-30 Amazon Technologies, Inc. Example-based image annotation
TWI789033B (zh) * 2021-09-29 2023-01-01 瑞昱半導體股份有限公司 物件偵測模型訓練裝置、方法及其非暫態電腦可讀取記錄媒體
US20230306572A1 (en) * 2022-03-23 2023-09-28 Saudi Arabian Oil Company Flange Integrity Classification Using Artificial Intelligence
KR102511315B1 (ko) * 2022-09-07 2023-03-17 주식회사 스마트인사이드에이아이 환경 변수 데이터 학습에 기초한 영상 기반 객체 인식 방법 및 시스템
CN118447286A (zh) * 2023-09-25 2024-08-06 荣耀终端有限公司 目标检测的方法及电子设备
CN118646483B (zh) * 2024-08-15 2024-11-05 浙江大学 一种用于光载射频多载波信号智能识别的系统和方法
CN118708744A (zh) * 2024-08-29 2024-09-27 浙江大华技术股份有限公司 目标检测方法、设备及存储介质

Also Published As

Publication number Publication date
CN115830486A (zh) 2023-03-21
US20230078218A1 (en) 2023-03-16
JP2023043825A (ja) 2023-03-29

Similar Documents

Publication Publication Date Title
DE102021126648A1 (de) Imitationstraining mittels synthetischen daten
DE102021112247A1 (de) Inhaltsbewusste Stilcodierung unter Verwendung neuronaler Netzwerke
DE102021124008A1 (de) Training eines neuronalen netzes unter verwendung robuster temporaler ensemblebildung
DE112021001762T5 (de) Erzeugen von kennzeichnungen für synthetische bilder unter verwenden eines oder mehrerer neuronaler netzwerke
DE102020120201A1 (de) Blickerkennung unter verwendung eines oder mehrerer neuronaler netzwerke
DE102021105080A1 (de) Techniken zur verwendung eines neuronalen netzwerks zur erweiterung eines bilds
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE112020003832T5 (de) Neuronale netzwerke zur bildregistrierung und bildsegmentierung, die unter verwendung eines registrierungssimulators trainiert werden
DE102022123130A1 (de) Trainieren von objekterkennungsmodellen unter verwendung von transferlernen
DE112020005696T5 (de) Training und ableiten unter verwendung eines neuronalen netzwerkes zum vorhersagen der ausrichtung von objekten in bildern
DE102021122617A1 (de) Globales föderiertes training für neuronale netze
DE102020129425A1 (de) Geführte unsicherheit-bewusste richtlinien-optimierung: kombinieren von modellfreien und modellbasierten strategien für probeneffizientes lernen
DE112021001835T5 (de) Beschriften von bildern mit einem neuronalen netz
DE102022110000A1 (de) Dynamische gewichtsaktualisierungen für neuronale netzwerke
DE112020001396T5 (de) Formfusion zur bildanalyse
DE102021110055A1 (de) Unter verwendung eines oder mehrerer neuronaler netzwerke bestimmte benachrichtigungen
DE102021129825A1 (de) Objekterkennung und kollisionsvermeidung unter verwendung eines neuronalen netzes
DE102021125238A1 (de) Auf fourier-transformation basierte bildsynthese unter verwendung von neuralen netzen
DE102021132071A1 (de) Scheduler für neuronales netz
DE112021000190T5 (de) Videokompression unter Verwendung neuronaler Netzwerke
DE102022101664A1 (de) Techniken des maschinellen lernens zur verbesserung von anwendungen für videokonferenzen
DE102021110778A1 (de) Inhaltsverwaltung unter verwendung eines oder mehrerer neuronaler netzwerke
DE112021001946T5 (de) Attribut-bewusste bildgeneration unter verwendung von neuronalen netzwerken
DE112020005476T5 (de) Neuronales netz zur bildausrichtung
DE102022103881A1 (de) Generieren von frames für die neuronale simulation mit einem oder mehreren neuronalen netzen

Legal Events

Date Code Title Description
R012 Request for examination validly filed