DE102022117298A1 - Zusammenfügungsqualitätsbewertung für rundumsichtsysteme - Google Patents

Zusammenfügungsqualitätsbewertung für rundumsichtsysteme Download PDF

Info

Publication number
DE102022117298A1
DE102022117298A1 DE102022117298.8A DE102022117298A DE102022117298A1 DE 102022117298 A1 DE102022117298 A1 DE 102022117298A1 DE 102022117298 A DE102022117298 A DE 102022117298A DE 102022117298 A1 DE102022117298 A1 DE 102022117298A1
Authority
DE
Germany
Prior art keywords
data
constituent images
vehicle
memory
images
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
DE102022117298.8A
Other languages
English (en)
Inventor
Yuzhuo Ren
Niranjan Avadhanam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102022117298A1 publication Critical patent/DE102022117298A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R1/00Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/20Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/22Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle
    • B60R1/23Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle with a predetermined field of view
    • B60R1/27Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle with a predetermined field of view providing all-round vision, e.g. using omnidirectional cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/30Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
    • B60R2300/303Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing using joined images, e.g. multiple camera images
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/60Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective
    • B60R2300/607Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective from a bird's eye viewpoint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30168Image quality inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30264Parking

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

Das Zusammenfügen mehrerer Bilder zu einer zusammengesetzten Darstellung kann unter Verwendung eines Satzes von Zusammenfügungsparametern durchgeführt werden, die zumindest teilweise auf der Grundlage eines subjektiven Bewertungswerts der Zusammenfügungsqualität bestimmt werden. Ein zusammengefügtes Bild kann mit seinen konstituierenden Bildern verglichen werden, um eine oder mehrere Messgrößen objektiver Qualität zu erhalten. Diese Messgrößen objektiver Qualität können als Eingabe in einen trainierten Klassifikator eingespeist werden, der eine Messgröße subjektiver Qualitätsbewertung für das zusammengefügte (oder anderweitig zusammengesetzte) Bild ableiten kann. Diese Messgröße subjektiver Qualitätsbewertung kann verwendet werden, um einen oder mehrere Zusammensetzungsparameterwerte anzupassen, um zumindest einen minimalen subjektiven Qualitätsbewertungswert für zusammengesetzte Bilder bereitzustellen.

Description

  • HINTERGRUND
  • Da die Verwendung von Technologie für voll- oder halbautomatisierte Aufgaben, wie sie sich beispielsweise auf autonomes Fahren und Robotik beziehen können, zunimmt, steigt auch der Wunsch, genaue Informationen bereitzustellen, die für den Betrieb dieser Technologie relevant sind. Dies kann beispielsweise das Erfassen von Live-Videos einer Umgebung, in der diese Technologie betrieben wird, und das Bereitstellen einer genauen Videodarstellung beinhalten. Um eine ansichtskonsistente Darstellung bereitzustellen, können Videodaten, die von mehreren Kameras erfasst wurden, durch einen Prozess wie etwa Bildzusammenfügung kombiniert werden, um eine kombinierte oder zusammengesetzte Darstellung zu erzeugen. Leider kann es schwierig sein, willkürliche komplexe Szenen auf eine realistische Weise zusammenzufügen, die keine markanten Nähte oder Bildartefakte beinhaltet.
  • Figurenliste
  • Verschiedene Ausführungsformen gemäß der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, wobei Folgendes gilt:
    • 1A und 1B veranschaulichen Beispiele eines autonomen Fahrzeugs sowie beispielhafte Kamerapositionen und Sichtfelder für ein autonomes Fahrzeug gemäß mindestens einer Ausführungsform;
    • 2A und 2B veranschaulichen zusammengefügte und zusammengesetzte Bilder, die generiert werden können, gemäß mindestens einer Ausführungsform;
    • 3 veranschaulicht einen beispielhaften Ansichtsgenerator, der genutzt werden kann, gemäß mindestens einer Ausführungsform;
    • 4A und 4B veranschaulichen zusammengesetzte Bilder mit unterschiedlichen Bestimmungen der subjektiven Qualität gemäß mindestens einer Ausführungsform;
    • 5 veranschaulicht einen Prozess zum Anpassen von Zusammenfügungsparametern unter Verwendung einer Messgröße der Zusammenfügungsqualitätsbewertung gemäß mindestens einer Ausführungsform;
    • 6 veranschaulicht Komponenten eines Systems zum Codieren und Übertragen von Bilddaten 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 Rechenzentrumssystem 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 mehreren Ausführungsformen;
    • 13 ist ein beispielhaftes Datenflussdiagramm für eine fortgeschrittene Rechen-Pipeline gemäß mindestens einer Ausführungsform;
    • 14 ist ein Systemdiagramm für ein beispielhaftes System zum Trainieren, Anpassen, Instanziieren und Einsetzen von maschinellen Lernmodellen in einer fortgeschrittenen 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, um Annotationstools mit vortrainierten Annotationsmodellen zu verbessern, gemäß mindestens einer Ausführungsform.
    • 16A und 16B veranschaulichen Komponenten, die mit einem autonomen Fahrzeugsystem verwendet werden können, gemäß mindestens einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • Ansätze gemäß verschiedenen Ausführungsformen können die Generierung, Bearbeitung oder Manipulation von Bild- oder Videodaten bereitstellen. Insbesondere stellen verschiedene Ausführungsformen die Generierung zusammengesetzter Bild- oder Videodaten unter Verwendung eines Zusammenfügungssystems bereit, wobei Parameter unter Verwendung von mindestens einer Messgröße der Zusammenfügungsqualitätsbewertung bestimmt, aktualisiert und/oder optimiert sind. Dies kann zum Beispiel und ohne Einschränkung das Zusammenfügen einzelner Frames in einer Videosequenz beinhalten, sodass jeder Videoframe ein größeres Sichtfeld bereitstellt, als in einem einzelnen Frame der zusammenzufügenden Frames erfasst wird, wie etwa eine 180-Grad- oder 360-Grad-Ansicht. Die Farbwerte von zumindest einigen der Pixel können auch während des Zusammenfügungs- oder Zusammensetzungsprozesses gemischt werden. Objektive Unterschiede zwischen den zusammengefügten Bildern und ihren konstituierenden Bildern können berechnet und einem Klassifikator zugeführt werden. Der Klassifikator kann darauf trainiert werden, diese Werte zu nutzen, um einen Wert abzuleiten, wie etwa einen subjektiven Zusammenfügungsqualitätsbewertungswert, der ein Maß für die subjektive Qualität der zusammengefügten Bilder bereitstellt, die durch einen Betrachter dieses Bildes bereitgestellt werden könnte. Der subjektive Zusammenfügungsqualitätsbewertungswert kann beispielsweise an ein Zusammenfügungsmodul zurückgemeldet werden, das dann bei Bedarf Anpassungen an einem oder mehreren Zusammenfügungsparametern vornehmen kann, um den subjektiven Zusammenfügungsqualitätsbewertungswert auf einen Zielbereich oder zumindest einen Zielwert zu bringen. Ein zusammengefügtes oder zusammengesetztes Bild kann dann zur Darstellung für einen oder mehrere Betrachter, Überwachungssysteme oder andere derartige Optionen bereitgestellt werden.
  • Zusammengefügte oder zusammengesetzte Bilddaten, die unter Verwendung eines solchen Prozesses generiert werden, können für verschiedene Zwecke genutzt werden. Es versteht sich, dass zumindest zur Vereinfachung der Erläuterung „Bild“-Daten hierin erörtert werden, aber Bilddaten viele unterschiedliche Formen annehmen können, wie etwa wenn einzelne Bilder einzelnen Videoframes entsprechen können oder wenn diese Bilddaten verwendet werden, um immersive Video-, Augmented-Reality(AR), Virtual-Reality(VR) oder Mixed-Reality(MR)-Erfahrungen zu generieren. In einem beispielhaften Anwendungsfall könnten Live-Videodaten für eine Vorrichtung oder ein System erfasst werden, wie etwa einen Roboter oder ein autonomes (oder halbautonomes) Fahrzeug. Es kann wünschenswert sein, die Live-Videodaten von mehreren Kameras zu kombinieren, um eine konsistente Ansicht der Umgebung zu generieren, wie etwa eine vollständige Ansicht der Umgebung um diese Vorrichtung herum, die einem Bediener, einem Überwachungssystem, einem Fahrgast oder anderen präsentiert werden kann. Für viele dieser Systeme kann es wichtig sein, solche zusammengesetzten Videodarstellungen in Echtzeit zu generieren, sodass ein Bediener oder Überwachungssystem bei Bedarf auf der Grundlage von Echtzeitbeobachtungen Maßnahmen ergreifen kann.
  • Man stelle sich ein autonomes oder halbautonomes Fahrzeug vor, das einen oder mehrere Fahrgäste beinhalten kann. Das Fahrzeug kann mehrere Kameras (oder zumindest eine mehrteilige Kamera) beinhalten oder diesen zugeordnet sein, die Bilder einer Umgebung erfassen können, in der sich dieses Fahrzeug befindet. Um den Fahrgästen eine nahtlose Visualisierung der Umgebung bereitzustellen, kann es wünschenswert sein, diese Bilder zu einer einzigen Darstellung der Umgebung zusammenzufügen oder zusammenzusetzen, die in Echtzeit aktualisiert wird, beispielsweise während das Fahrzeug in Bewegung ist. Eine solche zusammengesetzte Darstellung kann auch an ein entferntes System übertragen werden, wie etwa ein Überwachungs- oder Steuersystem, das die Leistung des Fahrzeugs analysieren oder potenziell Änderungen am Betrieb des Fahrzeugs vornehmen kann, basierend zumindest teilweise auf aus dieser Darstellung bestimmten Aspekten der Umgebung. Es kann wünschenswert sein, dass diese Visualisierungen so realistisch und fehlerfrei wie möglich sind.
  • 1A veranschaulicht ein beispielhaftes autonomes Fahrzeug 100 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das autonome Fahrzeug 100 (hierin alternativ als „Fahrzeug 100“ bezeichnet) ohne Einschränkung ein Personenkraftwagen sein, wie etwa ein Auto, ein Truck, ein Bus und/oder ein anderer Fahrzeugtyp, der einen oder mehrere Fahrgäste aufnimmt. In mindestens einer Ausführungsform kann das Fahrzeug 100 ein Sattelschlepper sein, der zum Befördern von Fracht verwendet wird. In mindestens einer Ausführungsform kann das Fahrzeug 100 ein Flugzeug, ein Roboterfahrzeug oder eine andere Art von Fahrzeug sein.
  • Autonome Fahrzeuge können in Form von Automatisierungslevels 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 werden. In einer oder mehreren Ausführungsformen kann das Fahrzeug 100 zu einer Funktionalität gemäß einem oder mehreren von Level 1 - Level 5 der Levels für autonomes Fahren in der Lage sein. Zum Beispiel kann in mindestens einer Ausführungsform das Fahrzeug 100 in Abhängigkeit von der Ausführungsform zu einer bedingten Automatisierung (Level 3), einer hohen Automatisierung (Level 4) und/oder einer vollständigen Automatisierung (Level 5) in der Lage sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 100 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 100 ohne Einschränkung ein Antriebssystem 150 beinhalten, wie etwa eine Brennkraftmaschine, ein Hybridelektrotriebwerk, einen vollelektrischen Motor und/oder einen anderen Typ von Antriebssystem. In mindestens einer Ausführungsform kann das Antriebssystem 150 mit einem Antriebsstrang des Fahrzeugs 100 verbunden sein, der ohne Einschränkung ein Getriebe beinhalten kann, um den Antrieb des Fahrzeugs 100 zu ermöglichen. In mindestens einer Ausführungsform kann das Antriebssystem 150 als Reaktion auf das Empfangen von Signalen von einer Drossel/Fahrpedal(en) 152 gesteuert werden.
  • In mindestens einer Ausführungsform wird ein Lenksystem 154, das ohne Einschränkung ein Lenkrad beinhalten kann, verwendet, um ein Fahrzeug 100 zu lenken (z. B. entlang eines gewünschten Pfads oder einer gewünschten Route), wenn ein Antriebssystem 150 in Betrieb ist (z. B., wenn das Fahrzeug in Bewegung ist). In mindestens einer Ausführungsform kann das Lenksystem 154 Signale von Lenkaktor(en) 156 empfangen. Für die vollständige Automatisierungsfunktionalität (Level 5) kann ein Lenkrad optional sein. In mindestens einer Ausführungsform kann ein Bremssensorsystem 146 verwendet werden, um Fahrzeugbremsen als Reaktion auf das Empfangen von Signalen von Bremsaktor(en) 148 und/oder Bremssensoren zu betreiben.
  • In mindestens einer Ausführungsform stellen Steuerung(en) 136, die ohne Einschränkung ein oder mehrere Systeme auf einem Chip (system on chips - „SoCs“) (in 1A nicht gezeigt) und/oder Grafikverarbeitungseinheit(en) („GPU(s)“) beinhalten können, einer/einem oder mehreren Komponenten und/oder Systemen des Fahrzeugs 100 Signale (die z. B. für Befehle repräsentativ sind) bereit. Zum Beispiel können in mindestens einer Ausführungsform die Steuerung(en) 136 Signale zum Betreiben von Fahrzeugbremsen über die Bremsaktor(en) 148, zum Betreiben des Lenksystems 154 über die Lenkaktor(en) 156, zum Betreiben des Antriebssystems 150 über die Drossel/Fahrpedal(e) 152 senden. Die Steuerung(en) 136 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 100 zu unterstützen. In mindestens einer Ausführungsform können die Steuerung(en) 136 eine erste Steuerung 136 für Funktionen des autonomen Fahrens, eine zweite Steuerung 136 für funktionelle Sicherheitsfunktionen, eine dritte Steuerung 136 für eine Funktionalität der künstlichen Intelligenz (z. B. maschinelles Sehen), eine vierte Steuerung 136 für eine Infotainment-Funktionalität, eine fünfte Steuerung 136 für Redundanz in Notfällen und/oder andere Steuerungen beinhalten. In mindestens einer Ausführungsform kann eine einzelne Steuerung 136 zwei oder mehr der vorstehenden Funktionalitäten handhaben, können zwei oder mehr Steuerungen 136 eine einzelne Funktionalität handhaben und/oder eine beliebige Kombination davon.
  • In mindestens einer Ausführungsform stellen die Steuerung(en) 136 Signale zum Steuern einer/eines oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 100 als Reaktion auf Sensordaten bereit, die von einem oder mehreren Sensoren empfangen werden (z. B. Sensoreingaben). In mindestens einer Ausführungsform können Sensordaten zum Beispiel und ohne Einschränkung empfangen werden von Sensor(en) 158 von globalen Navigationssatellitensystemen (global navigation satellite systems - „GNSS“) (z. B. Sensor(en) des globalen Positionsbestimmungssystems), RADAR-Sensor(en) 160, Ultraschallsensor(en) 162, LIDAR-Sensor(en) 164, Sensor(en) 166 einer Trägheitsmesseinheit (inertial measurement unit - „IMU“) (z. B. Beschleunigungsmesser(n), Gyroskop(en), einem Magnetkompass(en), Magnetometer(n) usw.), Mikrofon(en) 196, Stereokamera(s) 168, Weitsichtkamera(s) 170 (z. B. Fischaugenkameras), Infrarotkamera(s) 172, Rundumkamera(s) 174 (z. B. 360-Grad-Kameras), Langstreckenkameras (in 1A nicht gezeigt), Mittelstreckenkamera(s) (in 1A nicht gezeigt), Geschwindigkeitssensor(en) 144 (z. B. zum Messen der Geschwindigkeit des Fahrzeugs 100), Vibrationssensor(en) 142, Lenksensor(en) 140, Bremssensor(en) (z. B. als Teil des Bremssensorsystems 146) und/oder anderen Sensortypen.
  • In mindestens einer Ausführungsform können eine oder mehrere der Steuerung(en) 136 Eingaben (z. B. durch Eingabedaten dargestellt) von einem Kombiinstrument 132 des Fahrzeugs 100 empfangen und Ausgaben (z. B. durch Ausgabedaten, Anzeigedaten usw. dargestellt) über eine Anzeige 134 einer Mensch-Maschine-Schnittstelle (human-machine interface - „HMI“), einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 100 bereitstellen. In mindestens einer Ausführungsform können die Ausgaben Informationen wie Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. eine hochauflösende Karte (in 1A nicht gezeigt), Positionsdaten (z. B. die Position des Fahrzeugs 100, z. B. auf einer Karte), Richtung, Position anderer Fahrzeuge (z. B. ein Belegungsgitter), Informationen über Objekte und den Status von Objekten, wie von der/den Steuerung(en) 136 wahrgenommen, usw. beinhalten. Beispielsweise kann in mindestens einer Ausführungsform die HMI-Anzeige 134 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 100 ferner eine Netzschnittstelle 124, die drahtlose Antenne(n) 126 und/oder Modem(s) zum Kommunizieren über ein oder mehrere Netze verwenden kann. Zum Beispiel kann in mindestens einer Ausführungsform die Netzschnittstelle 124 dazu in der Lage sein, über Netze mit 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 können die drahtlose(n) Antenne(n) 126 auch Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeugen, mobilen Vorrichtungen usw.) unter Verwendung von lokalen Netz(en), wie etwa Bluetooth, Bluetooth Low Energy („LE“), Z-Wave, ZigBee usw., und/oder Weitverkehrsnetz(en) mit geringem Leistungsverbrauch (low power widearea networks - „LPWAN“), wie etwa LoRaWAN-Protokollen, SigFox-Protokollen usw., ermöglichen.
  • 1B veranschaulicht ein Beispiel für Kamerastandorte und Sichtfelder für das autonome Fahrzeug 100 aus 1A gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform stellen die Kameras und die jeweiligen Sichtfelder eine beispielhafte Ausführungsform dar und sie sollen nicht einschränkend sein. Zum Beispiel können in mindestens einer Ausführungsform zusätzliche und/oder alternative Kameras beinhaltet sein und/oder können sich die Kameras an unterschiedlichen Positionen am Fahrzeug 100 befinden.
  • In mindestens einer Ausführungsform können die Kameraarten für Kameras Digitalkameras beinhalten, ohne darauf beschränkt zu sein, die zur Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 100 ausgelegt sind. In mindestens einer Ausführungsform können eine oder mehrere der Kamera(s) mit dem Automobilsicherheitsintegritätslevel (Automotive Safety Integrity Level - „ASIL“) B und/oder mit einem 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 dazu in der Lage sein, Rollblendenverschlüsse, globale Blendenverschlüsse, einen anderen Typ von Blendenverschluss oder eine Kombination davon zu verwenden. In mindestens einer Ausführungsform kann das Farbfilterarray ein Red-Clear-Clear-Clear-(„RCCC“-)Farbfilterarray, ein Red-Clear-Clear-Blue-(„RCCB“-)Farbfilterarray, ein Red-Blue-Green-Clear-(„RBGC“-)Farbfilterarray, ein Foveon-X3-Farbfilterarray, ein Bayer-Sensoren-(„RGGB“-)Farbfilterarray, ein Monochromsensor-Farbfilterarray und/oder einen anderen Typ von Farbfilterarray beinhalten. In mindestens einer Ausführungsform können Klarpixelkameras, wie etwa Kameras mit einem RCCC-, einem RCCB- und/oder einem RBGC-Farbfilterarray, in einem Bestreben zum Erhöhen der Lichtempfindlichkeit verwendet werden.
  • In mindestens einer Ausführungsform können eine oder mehrere der Kamera(s) verwendet werden, um Funktionen der weiterentwickelten Fahrerassistenzsysteme (advanced driver assistance system - „ADAS“) durchzuführen (z. B. als Teil eines redundanten oder ausfallsicheren Designs). Zum Beispiel kann in mindestens einer Ausführungsform eine Multifunktions-Monokamera installiert sein, um Funktionen bereitzustellen, die Spurverlassenswarnung, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung beinhalten. In mindestens einer Ausführungsform 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 können die Kamera(s) in den Außenspiegel integriert sein. Bei Seitensichtkameras können die Kamera(s) in mindestens einer Ausführungsform auch in vier Säulen an jeder Ecke integriert sein.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte der Umgebung vor dem Fahrzeug 100 beinhaltet (z. B. nach vorn gerichtete Kameras), für die Rundumsicht verwendet werden, um dabei zu helfen, nach vorn gerichtete Pfade und Hindernisse zu identifizieren, sowie mit Hilfe einer oder mehrerer Steuerungen 136 und/oder Steuer-SoCs beim Bereitstellen von Informationen zu helfen, die für die Erzeugung eines Belegungsgitters und/oder die Bestimmung bevorzugter Fahrzeugpfade entscheidend sind. In mindestens einer Ausführungsform können nach vorn gerichtete Kameras verwendet werden, um viele der gleichen ADAS-Funktionen wie LIDAR auszuführen, einschließlich, ohne Einschränkung, Notbremsung, Fußgängererkennung und Kollisionsvermeidung. In mindestens einer Ausführungsform können nach vorn gerichtete Kameras auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich ohne Einschränkung Spurverlassenswarnungen (Lane Departure Warnings - „LDW“), autonomer Geschwindigkeitssteuerung (Autonomous Cruise Control - „ACC“) und/oder anderer Funktionen wie etwa Verkehrszeichenerkennung.
  • In mindestens einer Ausführungsform kann eine Vielfalt von Kameras in einer nach vorn gerichteten Konfiguration verwendet werden, zum Beispiel einschließlich eine monokulare Kameraplattform, die einen CMOS(„Complementary Metal Oxide Semiconductor“ - komplementärer Metall-Oxid-Halbleiter)-Farbbildgeber enthält. In mindestens einer Ausführungsform kann die Weitsichtkamera 170 verwendet werden, um Objekte wahrzunehmen, die aus der Peripherie ins Blickfeld kommen (z. B. Fußgänger, kreuzender Verkehr oder Fahrräder). Obwohl in 1B nur eine Weitsichtkamera 170 veranschaulicht ist, kann in anderen Ausführungsformen eine beliebige Anzahl (einschließlich null) von Weitsichtkamera(s) 170 an dem Fahrzeug 100 vorhanden sein. In mindestens einer Ausführungsform kann eine beliebige Anzahl von Langstreckenkamera(s) 198 (z. B. ein Weitsichtstereokamerapaar) zur tiefenbasierten Objektdetektion 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) 198 auch zur Objektdetektion und -klassifizierung sowie zur grundlegenden Objektverfolgung verwendet werden.
  • In mindestens einer Ausführungsform kann eine beliebige Anzahl der Stereokamera(s) 168 auch in einer nach vorn gerichteten Konfiguration enthalten sein. In mindestens einer Ausführungsform können eine oder mehrere der Stereokamera(s) 168 eine integrierte Steuereinheit beinhalten, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik („FPGA“) und einen Mehrkern-Mikroprozessor mit einer integrierten Controller-Area-Network(„CAN“)- oder Ethernet-Schnittstelle auf einem einzelnen Chip bereitstellen kann. In mindestens einer Ausführungsform kann eine derartige Einheit verwendet werden, um eine 3D-Karte einer Umgebung des Fahrzeugs 100 zu generieren, einschließlich einer Abstandsschätzung für alle Punkte in einem Bild. In mindestens einer Ausführungsform können eine oder mehrere der Stereokamera(s) 168 ohne Einschränkung kompakte(n) Stereosichtsensor(en) beinhalten, die ohne Einschränkung zwei Kameraobjektive (je eines links und rechts) und einen Bildverarbeitungschip beinhalten können, die den Abstand von dem Fahrzeug 100 zu einem Zielobjekt messen und die erzeugten Informationen (z. B. Metadaten) verwenden können, um autonome Notbrems- und Spurverlassenswarnfunktionen zu aktivieren. In mindestens einer Ausführungsform können andere Arten von Stereokamera(s) 168 zusätzlich oder alternativ zu den hierin beschriebenen verwendet werden.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte der Umgebung seitlich des Fahrzeugs 100 einschließt (z. B. Seitensichtkameras), für die Rundumsicht verwendet werden, wodurch Informationen bereitgestellt werden, die zur Erstellung und Aktualisierung des Belegungsgitters sowie zur Generierung von Seitenaufprallkollisionswarnungen verwendet werden. Zum Beispiel könnten in mindestens einer Ausführungsform die Rundumkamera(s) 174 (z. B. vier Rundumkameras 174, wie in 1B veranschaulicht) an dem Fahrzeug 100 positioniert sein. In mindestens einer Ausführungsform können die Rundumkamera(s) 174 ohne Einschränkung eine beliebige Anzahl und Kombination von Weitsichtkamera(s) 170, 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 100 positioniert sein. In mindestens einer Ausführungsform kann das Fahrzeug 100 drei Rundumkamera(s) 174 (z. B. links, rechts und hinten) verwenden und eine oder mehrere andere Kamera(s) (z. B. eine nach vorn gerichtete Kamera) als vierte Rundumsichtkamera ausnutzen.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Abschnitte der Umgebung hinter dem Fahrzeug 100 einschließt (z. B. Rückfahrkameras), als Einparkhilfe, für die Rundumsicht, Heckkollisionswarnungen und das Erstellen und Aktualisieren des Belegungsgitters verwendet werden. In mindestens einer Ausführungsform kann eine große Vielfalt an Kameras verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als nach vorn gerichtete Kamera(s) geeignet sind (z. B. Langstreckenkameras 198 und/oder Mittelstreckenkamera(s) 176, Stereokamera(s) 168, Infrarotkamera(s) 172 usw.), wie hierin beschrieben.
  • 2A veranschaulicht einen Satz von vier konstituierenden Bildern 200, die von jeweiligen Kameras an einem autonomen Fahrzeug oder einem anderen derartigen System oder einer anderen derartigen Vorrichtung gemäß verschiedenen Ausführungsformen erfasst oder diesen zugeordnet werden können. In diesem Beispiel haben die Kameras unterschiedliche, aber teilweise überlappende Sichtfelder, sodass die Bilder ohne Lückenfüllung oder zusätzliche Bilddatengenerierung zusammengefügt werden können, auch wenn es sich versteht, dass es andere Situationen geben kann, in denen Kameras keine Bilder mit zumindest teilweise überlappende Ansichten, die solche Aufgaben erfordern können, erzeugen. In diesem Beispiel kann jede Kamera verschiedene intrinsische oder extrinsische Werte aufweisen, die sich auf das Erscheinungsbild eines erfassten Bildes auswirken können, wobei sich diese Werte neben anderen solchen Optionen auf das Sichtfeld, das optische Zentrum, die Brennweite oder die Kamerastellung beziehen können. Wie erwähnt, kann es wünschenswert sein, zumindest teilweise auf Grundlage dieser erfassten Bilder 200 eine einzelne konsistente Ansicht dieser Umgebung zu generieren. Dies kann zum Beispiel das Generieren eines zusammengesetzten Bildes 250 beinhalten, wie es in 2B veranschaulicht ist. Wie veranschaulicht, kann ein solches zusammengesetztes Bild eine einzelne konsistente Darstellung der Umgebung bereitstellen, sei es eine vollständige 360-Grad-Ansicht oder zumindest ein Abschnitt des Winkelbereichs. Eine solche Ansicht kann als eine einzelne Ansicht dargestellt werden, die das gesamte Bild 250 zeigt, oder Abschnitte des Bilds können zu unterschiedlichen Zeiten angezeigt werden, wobei diese Ansicht durch einen Benutzer steuerbar sein kann. In diesem Beispiel wird eine Alpha-Karte mit Winkelform anstelle von beispielsweise einer Alpha-Karte mit rechtwinkliger Form verwendet, um zumindest das Problem der Alpha-Diskontinuität zu vermeiden, das bei verschiedenen herkömmlichen Zusammenfügungstechniken beobachtet wird. Die Farbkontinuität des Mischbereichs kann verbessert werden, indem der/die Mischbereich(e) erweitert wird/werden, um ein Farbdiskontinuitätsproblem um Ecken oder andere derartige Merkmale zu verbergen. Wie in 2B veranschaulicht, kann dieses zusammengesetzte Bild 250, das aus dem Zusammenfügen der konstituierenden Bilder 200 von 2A resultiert, jedoch verschiedene Artefakte oder Elemente aufweisen, die für die Umgebung nicht realistisch sind und deutlich machen, dass das zusammengesetzte Bild nicht als ein einzelnes Bild erfasst wurde. Diese können zum Beispiel eine oder mehrere Nähte 252 beinhalten, die Übergänge zwischen Daten aus unterschiedlichen Frames anzeigen, sowie neben anderen solchen Optionen eine Fehlausrichtung der Nähte, Geisterbilder oder das Verschwinden von Objekten. Dies kann auch Bereiche oder Punkte von Diskontinuitäten 254 beinhalten, wo Merkmale der Daten von unterschiedlichen Bildern nicht übereinstimmen, wie etwa aus einer Fehlausrichtung oder Kalibrierung der jeweiligen Kameras oder Änderungen oder Unterschieden in den Parametern dieser Kameras, neben anderen solchen Optionen, resultieren kann.
  • Ansätze gemäß verschiedenen Ausführungsformen können versuchen, ein Maß der visuellen Qualität eines solchen zusammengesetzten Bildes zu bestimmen. Dieses Maß der visuellen Qualität kann dann verwendet werden, um Aspekte eines Zusammenfügungs- oder Zusammensetzungsprozesses anzupassen, um zu versuchen, die visuelle Qualität dieser zusammengesetzten Bilder zu verbessern. Ein objektiver Ansatz zur Qualitätsbewertung kann jedoch zumindest in einigen Situationen herausfordernd sein, da objektive Bildqualitätsbestimmungen möglicherweise nicht einer subjektiven Bestimmung der Bildqualität eines Betrachters entsprechen. Beispielsweise kann eine objektive Bestimmung, wie etwa das Vorhandensein von Nähten oder Artefakten, angewendet werden, um zu versuchen, das Vorhandensein von Nähten oder Artefakten zu minimieren. Für einen Betrachter kann das resultierende Bild jedoch Unschärfe oder andere unrealistische oder unerwünschte Erscheinungsaspekte aufweisen, sodass ein Betrachter glauben kann, dass das Bild subjektiv eine höhere Qualität gehabt haben könnte, wenn die Nähte oder Artefakte vorhanden wären. Dementsprechend kann ein Qualitätsbewertungssystem versuchen, ein oder mehrere objektive Qualitätsmaße oder Messgrößen der Qualitätsbewertung zu bestimmen. Das System kann dann versuchen, ein subjektives Qualitätsmaß oder eine Messgröße der subjektiven Qualitätsbewertung abzuleiten, zumindest teilweise basierend auf dem/den bestimmten objektiven Maß(en).
  • In mindestens einer Ausführungsform kann eine Abbildung erhalten werden, die subjektive Qualitätswerte angibt, die für spezifische objektive Qualitätswerte bereitgestellt wurden. In anderen Ausführungsformen kann es Schwellenwerte oder Bereiche von objektiven Qualitätswerten geben, die einem spezifischen subjektiven Qualitätsmaß entsprechen, wie etwa einer hohen, mittleren oder niedrigen subjektiven Qualitätsbewertung. In noch anderen Ausführungsformen kann ein Ansatz wie maschinelles Lernen verwendet werden, um eine(n) oder mehrere subjektive Qualitätsbewertungswerte oder -messgrößen zumindest teilweise basierend auf den bestimmten Messgrößen der objektiven Qualitätsbewertung für ein zusammengesetztes Bild oder eine andere zusammengesetzte Datendarstellung abzuleiten.
  • 3 veranschaulicht ein beispielhaften statistisches Modell 300, das gemäß verschiedenen Ausführungsformen genutzt werden kann. In diesem Beispiel wird ein Satz von Kamerabildern 302 als Eingabe empfangen, wie sie neben anderen solchen Optionen von mehreren Kameras empfangen werden können, die einer gegebenen Vorrichtung oder einem gegebenen System zugeordnet sind oder in Bezug auf eine gegebene Umgebung positioniert sind. In mindestens einer Ausführungsform stellen diese Bilder zwei oder mehr unterschiedliche Ansichten einer Umgebung dar, die sich höchstens teilweise überlappen. Diese Bilder können eine vollständige oder teilweise Ansicht einer Szene, eines Ortes oder einer Umgebung darstellen. Diese Bilddaten können „Live“-Daten beinhalten, die kurz nach der Bilderfassung gestreamt oder übertragen werden, oder können zuvor erfasste und eher offline bereitgestellte Bilddaten beinhalten. Ein solches Bild kann neben anderen solchen Optionen auch in verschiedenen Farbräumen vorliegen, wie etwa RGB, CIELAB, CMYK, YIQ, YCbCr, YUV, HSV oder HSL.
  • In diesem Beispiel können die Kamerabilder einem Ansichtsgenerator 304 bereitgestellt werden, der diese eingegebenen Kamerabilder 302 nutzen kann, um eine Ausgabeansicht oder ein zusammengesetztes Bild oder einen Videostream zur Darstellung über mindestens eine Anzeige 324, wie etwa einen Monitor, einen Projektor oder eine tragbare Anzeige, neben anderen solchen Optionen, zu generieren. In diesem Beispiel können die Kamerabilder 302 einem Zusammenfügungsmodul 306 bereitgestellt werden, das versucht, mehrere Bilder zusammenzufügen, um eine zusammengesetzte Darstellung zu generieren. Das Zusammenfügungsmodul kann einen beliebigen einer Anzahl verschiedener Zusammenfügungs- oder Zusammensetzungsalgorithmen verwenden, wie sie verschiedene Misch- oder andere Bildbearbeitungstechniken durchführen können. In mindestens einer Ausführungsform kann das Zusammenfügungsmodul verschiedene intrinsische und extrinsische Parameter der Kameras nutzen, zumindest soweit Werte für diese Parameter bekannt und aus einer Kameradatenbank 308 oder einem anderen solchen Ort verfügbar sind, um die Bilddaten für die Zusammensetzung richtig zuzuweisen. Dies kann zum Beispiel Informationen wie die relativen Stellungen oder die Ausrichtung dieser unterschiedlichen Kameras beinhalten, sodass zumindest eine anfängliche Zusammenfügungsposition und - ausrichtung für jedes Bild bestimmt werden kann. Es versteht sich, dass für Ansichtsgeneratorsysteme, die Bildsequenzen oder Streams von Videoframedaten empfangen, die zusammenzusetzenden Bilder oder Frames diejenigen sind, die dem gleichen Zeitpunkt entsprechen oder zu diesem erfasst wurden, zumindest insoweit, wie eine solche Erfassung synchronisiert werden kann. Die Kamerakalibrierungsparameter können verwendet werden, um die Kameraansichten in einen zusammengefügten Raum abzubilden, der beispielsweise einer Ansicht von oben nach unten oder einer „Schüssel“-Ansicht in einem Projektionsraum, einem gleichwinkligen Projektionsraum, einem perspektivischen Projektionsraum oder einem stereografischen Projektionsraum entsprechen kann. Diese Projektion kann verwendet werden, um Überlappungsbereiche zwischen benachbarten Kameras zu identifizieren, wobei ein oder mehrere Mischalgorithmen verwendet werden können, um mindestens einige der Pixel zu mischen, um das Zusammenfügen weniger sichtbar oder offensichtlich zu machen. Das Zusammenfügungsmodul 306 kann auch Werte für einen oder mehrere Zusammenfügungsparameter nutzen, wie sie in einer Parameterdatenbank 310 oder einem anderen derartigen Ort gespeichert sein können. Werte für diese Parameter können Aspekte bestimmen, wie Komponentenbilder zusammengefügt werden, was sich auf Gewichtungen oder Stellen zum Mischen und andere derartige Aspekte beziehen kann. Beispielhafte Zusammenfügungsparameter beinhalten unter anderem ein Mischverfahren (z. B. Alpha-Mischung, Multiband-Mischung oder Poisson-Mischung), Mischbreite, Mischungs-Alpha-Kartenform (z. B. winkelbasiert oder senkrechtbasiert), Mischgewichtungen verschiedene Bänder beim Multiband-Mischen, Gewichtungen in verschiedenen Farbkanälen in verschiedenen Farbräumen (z. B. RGB, CIELAB, CMYK, YIQ, YCbCr, YUV, HSV oder HSL), Nahttyp (z. B. diagonale Naht, vertikale Naht oder horizontale Naht) und Position der Naht. Das Zusammenfügungsmodul 306 kann Werte für diese verschiedenen Parameter mit den eingegebenen konstituierenden Bildern nutzen, um ein zusammengesetztes Bild oder zusammengefügtes Bild 312 zu generieren, das eine einzelne Darstellung einer Umgebung, einer Szene oder eines Ortes zu einem bestimmten Zeitpunkt bereitstellt, wie etwa einen „aktuellen“ Zeitpunkt, wobei eine gewisse Latenzzeit bei der Übertragung und Verarbeitung berücksichtigt wird.
  • Wenn eine Szene zwischen Kameras nicht harmonisiert ist, kann es wünschenswert sein, eine größere Mischgewichtung oder einen größeren Radius (z. B. 200) zu nutzen, um für einen glatteren Übergang zwischen Daten von Bildern zu sorgen. Wenn es sich beispielsweise um eine stark strukturierte Szene mit vielen Gebäuden und Kanten handelt, kann es wünschenswert sein, eine kleinere Mischgewichtung (z. B. 2) zu nutzen, um Geisterbilder und andere Artefakte aufgrund einer Fehlausrichtung zwischen Kameras zu vermeiden. Ein Einzelbandmischen kann auch genutzt werden, wenn Bilder nur in einem Band (oder einer Teilmenge) mehrerer Bänder gemischt werden. In mindestens einer Ausführungsform können konstituierende Bilder in unterschiedliche Frequenzbänder oder -komponenten zerlegt oder in jedem geeigneten Farbraum (z. B. RGB, CIELAB, CMYK, YIQ, YCbCr, YUV, HSV, HSL usw.) gemischt werden, und für alle diese Bänder, Komponenten oder Farbkanäle können unterschiedliche Mischgewichtungen verwendet werden.
  • Um zu versuchen, zusammengefügte Bilder mit hoher subjektiver Qualität bereitzustellen, kann ein gewisses Maß an Verarbeitung eines zusammengefügten Bildes durchgeführt werden, um zu versuchen, die Qualität zu bewerten, sowie um ein Ergebnis dieser Bewertung zu verwenden, um Änderungen an den Zusammenfügungsparametern vorzunehmen, die möglicherweise erforderlich sind, um die Qualität zu verbessern, zumindest wenn die bestimmte Qualität unter einem Ziel- oder Schwellenwert oder einer Bestimmung liegt. In diesem Beispiel können sowohl das zusammengefügte Bild 312 von dem Zusammenfügungsmodul 306 als auch die konstituierenden Bilder 314, die verwendet werden, um dieses zusammengefügte Bild zu generieren, für eine Qualitätsbewertungsbestimmung genutzt werden. In einigen Ausführungsformen können die konstituierenden Bilder direkt den eingegebenen Kamerabildern 302 entsprechen, während in einigen Ausführungsformen für diese konstituierenden Bilder zumindest ein gewisser Umfang an Verarbeitung durchgeführt worden sein kann, wie etwa zum Reduzieren von Helligkeits-, Farb- oder Kontrastschwankungen oder zum Reduzieren von Rauschen oder zum Entfernen von Bildartefakten, neben anderen solchen Optionen. In mindestens einer Ausführungsform kann das Entfernen oder Reduzieren von Bildartefakten in den einzelnen konstituierenden Bildern vor dem Zusammenfügen zu einem zusammengefügten Bild höherer Qualität führen.
  • In diesem Beispiel können das zusammengefügte Bild 312 und die konstituierenden Bilder 314 verarbeitet werden, um Bilddaten zu erzeugen, die besser für eine oder mehrere spezifische Arten von Vergleichen sorgen. In mindestens einer Ausführungsform kann dies die Nutzung eines Hochpassfilters 316 (oder eines Kanten- oder Merkmalsdetektors) an den Bildern beinhalten, um Kanten oder andere markante Merkmale in den Bildern zu verbessern oder zu identifizieren. Diese kantenverbesserten Bilder können dann einem Differenzmessungsmodul 318 (oder einem Prozess usw.) bereitgestellt werden, das das gefilterte zusammengefügte Bild 312 und die konstituierenden Bilder vergleichen kann, um einen oder mehrere objektive Zusammenfügungsqualitätsbewertungswerte zu erzeugen. Es versteht sich, dass bei Verwendung anderer Zusammensetzungstechniken auch andere Zusammensetzungsqualitätsbewertungswerte generiert werden können. Diese objektiven Bewertungswerte der Zusammenfügungsqualität können neben anderen solchen Optionen zum Beispiel ein strukturelles Ähnlichkeitsindexmaß (structural similarity index measure - SSIM), eine Mischbreite, einen Satz von pixelweisen Unterschieden oder mittleren quadratischen Fehlern oder eine Bestimmung der tatsächlichen Objektgröße beinhalten. Ein Wert wie ein SSIM-Wert kann ein Maß für die Ähnlichkeit zwischen Bildern bereitstellen, das verwendet werden kann, um die wahrgenommene Qualität eines zusammengefügten Bildes relativ zu seinen konstituierenden Bildern abzuleiten.
  • In diesem Beispiel können diese objektiven Werte als Eingabe für einen Klassifikator 320 für maschinelles Lernen bereitgestellt werden. Der Klassifikator für maschinelles Lernen kann trainiert werden, einen subjektiven Zusammenfügungsqualitätsbewertungswert abzuleiten, wenn ein oder mehrere objektive Eingabewerte gegeben sind. Der Klassifikator kann ein beliebiger geeigneter Klassifikator sein, wie etwa ein neuronales Faltungsnetz (Convolutional Neural Network - CNN), eine Support Vector Machine (SVM), ein neuronales Netz (NN), ein Entscheidungsbaum oder ein Random Forest, neben anderen solchen Optionen. Während des Trainings können verschiedene Bilder und objektive Bewertungsdaten als Eingabe bereitgestellt werden, wobei ein subjektiver Zusammenfügungsqualitätsbewertungswert als Ground Truth für jeden Satz von Bildern und objektiven Bewertungsdaten bereitgestellt wird. Der subjektive Bewertungswert der Zusammenfügungsqualität kann durch jeden geeigneten Mechanismus erhalten werden, wie etwa indem die zusammengefügten oder zusammengesetzten Bilder mehreren Betrachtern dargestellt werden und sie jeweils eine subjektive Bewertung der Bildqualität bereitstellen, die dann gemittelt oder anderweitig genutzt werden kann, um einen subjektiven Zusammenfügungsqualitätsbewertungswert zu bestimmen, der in einigen Ausführungsformen einem Konsens unter Betrachtern entsprechen kann, mit oder ohne Berücksichtigung von Ausreißern.
  • In diesem Beispiel kann der ML-Klassifikator 320 den/die objektiven Wert(e) als Eingabe heranziehen und einen abgeleiteten subjektiven Zusammenfügungsqualitätsbewertungswert ausgeben. Dieser kann in einigen Ausführungsformen ein numerischer Wert sein, aber für einen Klassifikator kann neben anderen solchen Optionen eine Klassifizierung wie „hohe Qualität“ oder „niedrige Qualität“ beinhaltet sein. In diesem Beispiel kann das aktuelle zusammengefügte oder zusammengesetzte Bild als Ausgabe zur Darstellung auf mindestens einer Anzeige bereitgestellt werden, insbesondere für Live- oder Echtzeit-Video. Der subjektive Zusammenfügungsqualitätsbewertungswert kann zum Beispiel dem Zusammenfügungsmodul erneut bereitgestellt werden, das dann versuchen kann, sich an Zusammenfügungsparameter anzupassen, um die subjektive Zusammenfügungsqualität für nachfolgende zusammengefügte Bilder zu verbessern. In mindestens einer Ausführungsform kann diese Analyse durchgeführt werden, bis ein akzeptabler subjektiver Zusammenfügungsqualitätsbewertungswert erhalten wird, und diese Zusammenfügungsparameter können weiter verwendet werden, zumindest für einen Rest einer aktuellen Sitzung. In anderen Ausführungsformen kann eine solche Bewertung fortgeführt werden, um eine Anpassung an sich ändernde Bedingungen vorzunehmen, wie beispielsweise Änderungen der Helligkeit oder einer Art von Bildinhalt. Zum Beispiel kann ein Fahrzeug, das in der Stadt fährt, in einer Umgebung mit vielen scharfen Kanten aufgrund von Gebäuden, Schildern und Bürgersteigen sein, während ein Wechsel zum Fahren auf dem Land zu sehr wenigen scharfen Kanten führen kann, sodass unterschiedliche Ansätze für Zusammenfügungsparameter und/oder Filterung optimal sein können. Dies kann für jeden Satz von Bildern oder Frames zu jedem Zeitpunkt durchgeführt werden oder kann periodisch oder bei erkannten Änderungen der Bedingungen durchgeführt werden, um eine durchzuführende Verarbeitungsmenge zu reduzieren und Rechenressourcen zu sparen. In einigen Ausführungsformen kann eine intelligente Szenenanalyse durchgeführt werden, um zu versuchen, die Auswahlmöglichkeiten für die Bewertung der Zusammenfügungsqualität einzugrenzen. In einigen Ausführungsformen kann das Zusammenfügungsmodul auch die objektiven Qualitätsbewertungswerte empfangen, wie etwa den SSIM-Wert für einen gegebenen zusammengesetzten Frame, um beim Anpassen der Zusammenfügungsparameter zu helfen. Gewisse objektive Werte oder Wertebereiche können spezifischen Zusammenfügungsparametern entsprechen, und das Ändern dieser Werte in spezifischen Richtungen oder um spezifische Beträge kann auch mit spezifischen Arten von Änderungen an diesen Zusammenfügungsparametern korreliert werden. Es können auch verschiedene Verfahren verwendet werden, um zu versuchen, den Suchraum der Zusammenfügungsparameter zu reduzieren. Beispielsweise könnten Sätze von Parameterwerten identifiziert werden, die für unterschiedliche Umstände gut funktionieren, und das Zusammenfügungsmodul kann aus diesen Sätzen auswählen, um zu versuchen, den abgeleiteten subjektiven Zusammenfügungsqualitätsbewertungswert zu verbessern. Der geeignete Satz kann basierend auf Faktoren wie dem Szeneninhalt zusätzlich zu subjektiven oder objektiven Qualitätswerten vorhergesagt werden.
  • 4A und 4B veranschaulichen unterschiedliche zusammengesetzte Bilder 400, 450 für die gleichen konstituierenden Bilder unter Verwendung unterschiedlicher Zusammenfügungsparameter. In diesem Beispiel stellen die Kästchen für das Bild 400 Mischregionen dar, wo Daten von unterschiedlichen Bildern zusammengefügt wurden. Wie in dem zusammengefügten Bild 400 der 4A veranschaulicht, gibt es deutlich sichtbare Nähte oder Übergänge in jeder dieser Mischregionen 402. Das SSIM der hochpassgefilterten Version 420 dieses zusammengefügten Bildes zeigt deutlich sichtbare und gut definierte Nähte. Diese Version beinhaltet weiße Bereiche, die als von hoher Bildqualität bestimmt werden, und schwarze Bereiche, die basierend auf den subjektiven Bewertungswerten der Zusammenfügungsqualität als von niedriger Bildqualität angesehen werden. Als Beispielwerte waren die SSIM-Werte für die obere linke Region 402 0,996947 für die Überlappungsregion (wo mindestens zwei Bilder beide Bilddaten für dieselbe Stelle beinhalten - wie etwa Blöcke von Pixeldaten beinhalten können) und 0,918620 für die Mischregion (wo die Werte für Pixel aus mindestens zwei teilweise überlappenden Bildern gemischt werden), was verwendet wurde, um einen „niedrigen“ subjektiven Qualitätsbewertungswert abzuleiten. Im Vergleich dazu zeigt das zusammengefügte Bild 450 in 4B etwas Unschärfe in den Nahtregionen, aber keine deutliche Naht. In ähnlicher Weise zeigt die Visualisierung des SSIM der hochpassgefilterten Version 470 einige unscharfe Kanten, aber keine klar definierte Naht. Als Beispielwerte waren die SSIM-Werte für die obere linke Region 0,989522 für die Überlappungsregion und 0,947744 für die Mischregion, was verwendet wurde, um einen „hohen“ subjektiven Qualitätsbewertungswert abzuleiten. Somit können die Zusammenfügungsparameter, die verwendet werden, um das zusammengefügte Bild 450 in 4B zu erzeugen, (aus Sicht der subjektiven Qualität) wünschenswerter sein als diejenigen, die für das zusammengefügte Bild 400 in 4A verwendet wurden. Es sollte jedoch erwähnt werden, dass es möglicherweise nicht ausreicht, nur die SSIM-Werte zu verwenden. Die Veranschaulichungen der Visualisierung des SSIM der hochpassgefilterten Versionen 420, 470 zeigen verschiedene Arten von Nähten, wobei eine klein, aber gut definiert ist, während die andere größer, aber weniger gut definiert ist. Allein auf der Grundlage dieser Faktoren ist es möglicherweise nicht möglich, festzustellen, welche hochpassgefilterte Version einer höheren subjektiven Qualitätsbewertung des Bildes entsprechen würde. Beispielsweise funktioniert eine solche Bewertung möglicherweise nicht gut für eine Ansicht einer Rasenfläche, wo Änderungen der Stellen einzelner Grashalme möglicherweise keine Rolle spielen, aber das Verwischen von Grasregionen eine Bildbewertung von geringerer subjektiver Qualität erzeugen kann. In mindestens einigen Ausführungsformen kann es vorteilhaft sein, mehrere objektive Zusammenfügungsqualitätsbewertungswerte mit einem Klassifikator zu analysieren, um genauere Ergebnisse über eine größere Vielfalt von Arten von Umgebungen oder Situationen bereitzustellen. Einige Systeme können auch versuchen, objektive Zusammenfügungsqualitätsbewertungswerte zusätzlich zu subjektiven Zusammenfügungsqualitätsbewertungswerten zu optimieren (z. B. zu maximieren). In einigen Ausführungsformen kann ein Versuch unternommen werden, objektive Zusammenfügungswerte zu optimieren, selbst wenn bestimmt wird, dass der subjektive Zusammenfügungswert für ein Bild einer hohen Qualität entspricht.
  • In mindestens einer Ausführungsform können Aspekte wie die Abmessung und die Stelle der Mischregion optimiert werden. Eine Mischregionsgröße und/oder -breite kann an Faktoren wie Szeneninhalte angepasst werden, um beispielsweise zu vermeiden, dass eine Mischregion durch ein Objekt schneidet. Eine optimale Mischregionsgröße kann zumindest teilweise basierend auf Frequenzinformationen für den Bildinhalt berechnet werden. Für Bilder mit Inhalt mit niedrigerer Frequenz kann eine größere Mischbreite verwendet werden, um Farbdiskontinuität zu vermeiden. Für Bilder mit Inhalt mit höherer Frequenz (z. B. markante Kanten) kann eine kleinere Mischbreite verwendet werden, um Geisterbildartefakte oder ähnliche Probleme zu vermeiden. Mindestens eine Ausführungsform kann Multiband-Mischgewichtungen optimieren. Die Pyramidenzerlegung eines Bildes kann verwendet werden, um eine mehrskalige oder mehrstufige Darstellung des Bildes zu erhalten. Anstatt wie bei anderen Ansätzen ein linear erhöhtes Mischen für eine grobe Pyramidenebene zu verwenden, können inhaltsbewusste Mischgewichtungen verwendet werden, wenn verschiedene Alpha-Gewichtungen für unterschiedliche Pyramidenebenen zugewiesen werden. Die Frequenz von Bildinhalten kann berechnet werden und eine oder mehrere optimale Gewichtungen können für verschiedene Bildinhalte verwendet werden. Auch die Anzahl der Pyramidenebenen kann optimiert werden. Wenn die Bildinhaltsfrequenz weit gestreut ist, kann eine vollständige Pyramide genutzt werden. Wenn jedoch ein Bild nur (oder hauptsächlich) niederfrequente Elemente enthält (z. B. zwei gleichmäßige Farbbilder), kann eine einzelne Pyramidenebene mit einer größeren Mischbreite oder glatteren Gewichtungen verwendet werden, ohne eine vollständige Pyramide zu konstruieren. Dies kann helfen, Rechenleistung zu sparen und das Zusammenfügungsergebnis zu verbessern.
  • Wie erwähnt, können solche zusammengesetzten Bilder hoher Qualität für eine Reihe unterschiedlicher Zwecke verwendet werden. Beispielsweise kann ein solches Bild als Visualisierung verwendet werden, die Fahrgästen in einem Fahrzeug dargestellt wird. Solche Bilder können auch bereitgestellt werden, um Überwachungssysteme oder Flottenverwaltungssysteme zu entfernen, die diese Bilder über mindestens ein Netzwerk empfangen können, wie etwa das Internet oder ein Mobilfunknetz, und können bestimmen, ob bestimmte Maßnahmen zumindest teilweise basierend auf diesen Bildern zu ergreifen sind. Dies kann zum Beispiel das Bestimmen beinhalten, ein Fahrzeug umzuleiten oder zusätzliche (oder alternative) Robotervorrichtungen zuzuweisen, um eine Aufgabe durchzuführen.
  • 5 veranschaulicht einen beispielhaften Prozess 500 zum Optimieren von Zusammenfügungsparametern, der gemäß verschiedenen Ausführungsformen durchgeführt werden kann. Es versteht sich, dass für diesen und andere hierin erörterten Prozesse zusätzliche, weniger oder alternative Schritte in einer ähnlichen oder alternativen Reihenfolge oder mindestens teilweise parallel im Umfang von diversen Ausführungsformen ausgeführt werden können, soweit nicht spezifisch anderweitig angegeben. Obwohl eine Zusammenfügung als primäres Beispiel verwendet wird, versteht es sich ferner, dass andere Verfahren zum Zusammensetzen oder Generieren von Bildern ebenfalls innerhalb des Umfangs der verschiedenen Ausführungsformen verwendet werden können. In diesem Beispiel wird ein Satz von Bildern bei 502 empfangen, die unterschiedliche Ansichten einer Szene oder Umgebung beinhalten. Ein Zusammenfügungsmodul kann eine zusammengefügte Darstellung dieser Bilder bei 504 generieren, indem zum Beispiel ein Satz von Kameraeigenschaften, um die Bilder in einen gemeinsamen Raum zu projizieren, und ein Satz von Zusammenfügungsparametern, um zu bestimmen, wie die projizierten Bilddaten zusammengefügt werden sollen, verwendet werden. Dies kann zum Beispiel das Bestimmen beinhalten, welche Pixel gemischt werden sollen und wie dieses Mischen erfolgen soll. Das zusammengefügte Bild und die jeweiligen konstituierenden Bilder können dann unter Verwendung eines Hochpassfilters, eines Kantendetektors oder eines anderen solchen Mechanismus bei 506 verarbeitet werden, um bestimmte Elemente, wie etwa Kanten, in den Bildern hervorzuheben. Eine oder mehrere Differenzmessungen können in Bezug auf die zusammengefügten und konstituierenden Bilder bei 508 berechnet werden, die als objektive Zusammenfügungsqualitätsbewertungswerte dienen. Diese können beispielsweise Werte für SSIM, Mischbreite und tatsächliche Objektgröße beinhalten. Diese objektiven Bewertungswerte können bei 510 als Eingabe für einen Klassifikator für maschinelles Lernen, wie etwa ein CNN, bereitgestellt werden, der darauf trainiert ist, auf der Grundlage dieser eingegebenen objektiven Werte einen subjektiven Zusammenfügungsqualitätsbewertungswert abzuleiten. Ein vom Klassifikator abgeleiteter subjektiver Bewertungswert der Zusammenfügungsqualität kann bei 512 dem Zusammenfügungsmodul erneut bereitgestellt werden, während das zusammengefügte Bild als Ausgabe zur Anzeige bereitgestellt werden kann, zumindest wenn der subjektive Bewertungswert der Bildqualität zumindest ein Mindestkriterium oder einen Mindestschwellenwert erfüllt. Bei 514 kann bestimmt werden, ob die subjektive Qualität des Bildes als akzeptabel bestimmt wird, beispielsweise ob das zusammengefügte Bild eine abgeleitete „hohe“ Bildqualität aufweist. Wenn dies der Fall ist, kann der Prozess mit dem nächsten Satz von Bildern fortgesetzt werden. Wenn nicht, können eine oder mehrere Zusammenfügungsparameteranpassungen bei 516 vorgenommen werden, um zu versuchen, die subjektive Qualitätsbewertung zu verbessern, und der Prozess kann fortgesetzt werden, wobei die angepassten Zusammenfügungsparameter für den nächsten Satz von Eingabebildern verwendet werden.
  • Wie erörtert, sind verschiedene hierin vorgestellte Ansätze leicht genug, um auf einer Client-Vorrichtung, wie etwa einem Personalcomputer oder einer Spielekonsole, in Echtzeit ausgeführt zu werden. Eine solche Verarbeitung kann an Inhalten durchgeführt werden, die auf dieser Client-Vorrichtung generiert oder von einer externen Quelle empfangen werden, wie etwa Streaming-Inhalte, die über mindestens ein Netzwerk empfangen werden. Die Quelle kann neben anderen solchen Optionen jede geeignete Quelle sein, wie etwa ein Spiele-Host, ein Provider für Streaming-Medien, ein Drittanbieter von Inhalten oder eine andere Client-Vorrichtung. In einigen Fällen kann das Verarbeiten und/oder Rendern dieses Inhalts durch eine(s) dieser anderen Vorrichtungen, Systeme oder Einheiten durchgeführt und dann der Client-Vorrichtung (oder einem anderen solchen Empfänger) zur Darstellung oder einer anderen derartigen Verwendung bereitgestellt werden.
  • Als Beispiel veranschaulicht 6 eine beispielhafte Netzwerkkonfiguration 600, die verwendet werden kann, um Inhalt bereitzustellen, zu generieren, zu modifizieren, zu codieren und/oder zu übertragen. In mindestens einer Ausführungsform kann eine Client-Vorrichtung 602 Inhalte für eine Sitzung unter Verwendung von Komponenten einer Inhaltsanwendung 604 auf der Client-Vorrichtung 602 und von Daten, die auf dieser Client-Vorrichtung lokal gespeichert sind, generieren oder empfangen. In mindestens einer Ausführungsform kann eine Inhaltsanwendung 624 (z. B. eine Bildgenerierungs- oder -bearbeitungsanwendung), die auf dem Inhaltsserver 620 (z. B. einem Cloud-Server oder Edge-Server) ausgeführt wird, eine Sitzung initiieren, die mindestens der Client-Vorrichtung 602 zugeordnet ist, die einen Sitzungsmanager und Benutzerdaten, die in einer Benutzerdatenbank 634 gespeichert sind, nutzen und bewirken kann, dass Inhalt 632 durch einen Inhaltsmanager 626 bestimmt wird. Ein Bildzusammenfügungsmodul 628 kann Bilddaten für eine Szene oder Umgebung erhalten und eine zusammengesetzte Darstellung dieser Szene oder Umgebung generieren. Ein Qualitätsbewertungsmodul 630 kann versuchen, die subjektive Qualität dieser zusammengesetzten Darstellung abzuleiten, sodass Zusammenfügungsparameter bei Bedarf angepasst werden können. Mindestens ein Teil dieses Inhalts kann dann unter Verwendung eines geeigneten Übertragungsmanagers 622 zum Senden durch Download, Streaming oder einen anderen derartigen Übertragungskanal an die Client-Vorrichtung 602 übertragen werden. Zum Codieren kann ein Codierer verwendet werden und/oder diese Daten komprimieren, bevor sie an die Client-Vorrichtung 602 übertragen werden. In mindestens einer Ausführungsform kann dieser Inhalt 632 Video- oder Bilddaten für eine Szene beinhalten. In mindestens einer Ausführungsform kann die Client-Vorrichtung 602, die diesen Inhalt empfängt, diesen Inhalt einer entsprechenden Inhaltsanwendung 604 bereitstellen, die auch oder alternativ ein Zusammenfügungsmodul 612 oder Qualitätsbewertungsmodul 614 zum Zusammenfügen von Bilddaten beinhalten kann, die an der Client-Vorrichtung 602 empfangen oder durch diese erfasst werden. Ein Decoder kann ebenfalls verwendet werden, um Daten zu decodieren, die über das/die Netzwerk(e) 640 zur Darstellung über die Client-Vorrichtung 602 empfangen werden, wie etwa Bild- oder Videoinhalt über eine Anzeige 606 und Audio, wie etwa Töne und Musik, über mindestens eine Audiowiedergabevorrichtung 608, wie Lautsprecher oder Kopfhörer. In mindestens einer Ausführungsform können mindestens einige dieser Inhalte bereits auf der Client-Vorrichtung 602 gespeichert, gerendert oder für diese zugänglich sein, sodass keine Übertragung über das Netzwerk 640 für diesen Anteil von Inhalten notwendig ist, wie etwa wenn diese Inhalte möglicherweise zuvor heruntergeladen oder lokal auf einer Festplatte oder einer optischen Platte gespeichert wurden. In mindestens einer Ausführungsform kann ein Übertragungsmechanismus, wie etwa Daten-Streaming, verwendet werden, um diese Inhalte von dem Server 620 oder der Inhaltsdatenbank 634 an die Client-Vorrichtung 602 zu übertragen. In mindestens einer Ausführungsform kann mindestens ein Anteil dieser Inhalte von einer anderen Quelle erzielt oder gestreamt werden, wie etwa von einem Drittanbieter-Inhaltsdienst 660, der ebenfalls eine Inhaltsanwendung 662 zum Generieren und Bereitstellen von Inhalten beinhalten kann. In mindestens einer Ausführungsform können Teile dieser Funktionalität unter Verwendung mehrerer Rechenvorrichtungen oder mehrerer Prozessoren innerhalb einer oder mehrerer Rechenvorrichtungen durchgeführt werden, wie beispielsweise eine Kombination aus CPUs und GPUs.
  • In diesem Beispiel können diese Client-Vorrichtungen beliebige geeignete Rechenvorrichtungen beinhalten, wie etwa einen Desktop-Computer, einen Notebook-Computer, eine Set-Top-Box, eine Streaming-Vorrichtung, eine Spielkonsole, ein Smartphone, einen Tablet-Computer, einen VR-Kopfhörer, eine AR-Brille, einen tragbaren Computer oder einen intelligenten Fernseher. Jede Client-Vorrichtung kann eine Anfrage über mindestens ein drahtgebundenes oder drahtloses Netzwerk senden, das neben anderen solchen Optionen das Internet, ein Ethernet, ein lokales Netzwerk (LAN) oder ein Mobilfunknetz beinhalten kann. In diesem Beispiel können diese Anfragen an eine Adresse gesendet werden, die einem Cloud-Anbieter zugeordnet ist, der eine oder mehrere elektronische Ressourcen in einer Cloud-Anbieterumgebung betreiben oder steuern kann, wie beispielsweise ein Rechenzentrum oder eine Serverfarm. In mindestens einer Ausführungsform kann die Anfrage durch mindestens einen Edge-Server empfangen oder verarbeitet werden, der sich an einem Netzwerkrand befindet und sich außerhalb mindestens einer Sicherheitsschicht befindet, die der Cloud-Anbieterumgebung zugeordnet ist. Auf diese Weise kann die Latenz reduziert werden, indem ermöglicht wird, dass die Client-Vorrichtung mit Servern interagiert, die sich in größerer Nähe befinden, und gleichzeitig die Sicherheit der Ressourcen in der Umgebung des Cloud-Anbieters verbessert werden.
  • In mindestens einer Ausführungsform kann ein solches System zum Durchführen von grafischen Rendering-Operationen verwendet werden. In anderen Ausführungsformen kann ein solches System für andere Zwecke verwendet werden, wie etwa zum Bereitstellen von Bild- oder Videoinhalten zum Testen oder Validieren autonomer Maschinenanwendungen oder zum Durchführen von Deep-Learning-Operationen. In mindestens einer Ausführungsform kann ein solches System unter Verwendung einer Edge-Vorrichtung implementiert werden oder kann eine oder mehrere virtuelle Maschinen (VM) enthalten. In mindestens einer Ausführungsform kann ein solches System zumindest teilweise in einem Rechenzentrum oder zumindest teilweise unter Verwendung von Cloud-Rechenressourcen implementiert werden.
  • INFERENZ- UND TRAININGSLOGIK
  • 7A veranschaulicht Inferenz- und/oder Trainingslogik 715, die verwendet wird, um Inferenz- und/oder Trainingsoperationen durchzuführen, die mit 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 einen Code- und/oder Datenspeicher 701 beinhalten oder an diesen gekoppelt sein, um Graphencode oder andere Software zu speichern, um die Zeitsteuerung und/oder die Reihenfolge zu steuern, in der Gewichtungs- und/oder andere Parameterinformationen geladen werden sollen, um Logik zu konfigurieren, die Ganzzahl- und/oder Gleitkommaeinheiten (zusammen arithmetisch-logische Einheiten (arithmetic logic units - ALU)) beinhalten. In mindestens einer Ausführungsform lädt Code, wie etwa Diagrammcode, Gewichtungsinformationen oder Informationen zu anderen Parametern in Prozessor-ALUs auf Grundlage einer Architektur eines neuronalen Netzes, dem der Code entspricht. In mindestens einer Ausführungsform speichert der Code- und/oder Datenspeicher 701 Gewichtungsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzes, das trainiert oder in Verbindung mit einer oder mehreren Ausführungsformen während der Vorwärtspropagation von Eingabe-/Ausgabedaten und/oder Gewichtsparametern während des Trainings und/oder dem Inferenzieren unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen verwendet wird. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 701 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, enthalten sein.
  • 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 Arbeitsspeicher („DRAM“), ein statischer Arbeitsspeicher („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 für einen Prozessor beispielsweise intern oder extern ist oder aus DRAM, SRAM, Flash oder einer anderen Speicherart besteht, von dem verfügbaren Speicher auf einem Chip gegenüber außerhalb eines Chips, von Latenzanforderungen von ausgeführten Trainings- und/oder Inferenzfunktionen, von der Chargengröße von Daten, die bei Inferenz und/oder Training eines neuronalen Netzes verwendet werden, oder von einer gewissen 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 Ausgangsgewichtung und/oder Ein-/Ausgangsdaten zu speichern, die Neuronen oder Schichten eines neuronalen Netzes entsprechen, das zur Inferenz 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 Trainierens und/oder Inferenzierens 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 an diesen gekoppelt sein, um Graphencode oder andere Software zu speichern, um die Zeitsteuerung und/oder die Reihenfolge zu steuern, in der Gewichtungs- und/oder andere Parameterinformationen geladen werden sollen, um Logik zu konfigurieren, die Ganzzahl- und/oder Gleitkommaeinheiten (zusammen arithmetisch-logische Einheiten (ALU)) beinhalten. In mindestens einer Ausführungsform lädt Code, wie etwa Diagrammcode, Gewichtungsinformationen oder Informationen zu anderen Parametern in Prozessor-ALUs auf Grundlage einer Architektur eines neuronalen Netzes, dem der Code entspricht. In mindestens einer Ausführungsform kann ein beliebiger Abschnitt des Code- und/oder Datenspeichers 705 in einem anderen chipinternen oder chipexternen Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, beinhaltet sein. 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 für einen Prozessor beispielsweise intern oder extern ist oder aus DRAM, SRAM, Flash oder einer gewissen anderen Speicherungsart besteht, von dem verfügbaren Speicher auf einem Chip gegenüber außerhalb eines Chips, von Latenzanforderungen von ausgeführten Trainings- und/oder Inferenzfunktionen, der Chargengröße von Daten, die bei Inferenz und/oder Training eines neuronalen Netzes verwendet werden, oder von einer gewissen 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 Datenspeicher auf einem Chip oder außerhalb eines Chips enthalten sein, einschließlich in einem L1-, L2- oder L3-Cache- oder 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. Graphencode) 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 den ALU(s) 710 als Reaktion auf das Ausführen von Befehlen oder anderem Code ausgefü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 sind die ALU(s) 710 in einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen enthalten, 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 können. In mindestens einer Ausführungsform können die ALUs 710 innerhalb der Ausführungseinheiten eines Prozessors oder anderweitig innerhalb einer Bank von ALUs enthalten sein, worauf die Ausführungseinheiten eines Prozessors zugreifen können, entweder innerhalb des gleichen Prozessors oder verteilt auf unterschiedliche Prozessoren unterschiedlichen Typs (z. B. zentrale Verarbeitungseinheiten, Grafikverarbeitungseinheiten, Festfunktionseinheiten usw.). 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, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, beinhaltet sein. Darüber hinaus kann Inferenz- und/oder Trainingscode mit anderem Code gespeichert werden, auf den ein Prozessor oder eine andere Hardwarelogik oder -schaltung zugreifen kann, und unter Verwendung der Abruf-, Dekodier-, Planungs-, Ausführungs-, Stilllegungs- 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. ein Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann sich der Aktivierungsspeicher 720 ganz oder teilweise innerhalb oder außerhalb eines oder mehrerer Prozessoren oder anderer logischer Schaltungen befinden. In mindestens einer Ausführungsform kann die Wahl, ob der Aktivierungsspeicher 720 für einen Prozessor beispielsweise intern oder extern ist, oder aus einem DRAM, einem SRAM, einem Flash oder einer anderen Speicherart besteht, von dem verfügbaren Speicher auf einem Chip gegenüber außerhalb eines Chips, von Latenzanforderungen, von ausgeführten Trainings- und/oder Inferenz-Funktionen, von der Chargengröße von Daten, die bei Inferenz und/oder Training eines neuronalen Netzes verwendet werden, oder von einer gewissen Kombination dieser Faktoren abhängen. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715, die in 7a veranschaulicht ist, in Verbindung mit einem anwendungsspezifischen integrierten Schaltkreis („ASIC“), wie etwa der Tensorflow®-Einheit von Google, einer Inferenzeinheit (IPU) von Graphcore™ oder eines Nervana®-Prozessors (z. B. „Lake Crest“) von Intel Corp., verwendet werden. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715, die in 7a veranschaulicht ist, in Verbindung mit Zentraleinheits- („CPU“) Hardware, Grafikeinheits- („GPU“) Hardware oder einer anderen Hardware, wie etwa frei programmierbaren logischen Anordnungen („FPGAs“), verwendet werden.
  • 7b veranschaulicht eine Inferenz- und/oder Trainingslogik 715 gemäß mindestens einer oder mehrerer Ausführungsformen In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715 ohne Einschränkung Folgendes beinhalten: Hardwarelogik, bei der Berechnungsressourcen 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 Inferenz- und/oder Trainingslogik 715, die in 7b veranschaulicht ist, in Verbindung mit einem anwendungsspezifischen integrierten Schaltkreis (ASIC), wie etwa mit der Tensorflow®-Einheit von Google, einer Inferenzeinheit (IPU) von Graphcore™ oder einem Nervana®-Prozessor (z. B. „Lake Crest“) von Intel Corp., verwendet werden. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 715, die in 7b veranschaulicht ist, in Verbindung mit einer Zentraleinheits- (CPU) Hardware, einer Grafikeinheits- (GPU) Hardware oder einer anderen Hardware, wie etwa frei programmierbaren logischen Anordnungen (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. Graphencode), Gewichtungswerten und/oder anderen Informationen, einschließlich Verzerrungswerten, Gradienteninformationen, Momentwerten und/oder anderer Parameter- oder Hyperparameterinformationen, verwendet werden können. In mindestens einer Ausführungsform, die in 7b veranschaulicht ist, ist jeder von dem Code- und/oder Datenspeicher 701 und dem Code- und/oder Datenspeicher 705 mit einer dedizierten Rechenressource verknüpft, wie etwa jeweils mit der Rechen-Hardware 702 und der Rechen-Hardware 706. In mindestens einer Ausführungsform umfasst jede von der Rechen-Hardware 702 und der Rechen-Hardware 706 eine oder mehrere ALUs, die mathematische Funktionen, wie etwa lineare algebraische Funktionen, nur an Informationen ausführen, die jeweils in dem Code- und/oder Datenspeicher 701 und dem Code- und/oder Datenspeicher 705 gespeichert sind, deren Ergebnis in dem Aktivierungsspeicher 720 gespeichert ist.
  • In mindestens einer Ausführungsform entspricht jeder von dem Code- und/oder Datenspeicher 701 und 705 und der entsprechenden Rechen-Hardware 702 und 706 jeweils verschiedenen Schichten eines neuronalen Netzes, sodass die sich ergebende Aktivierung von einem „Speicher/Rechen-Paar 701/702“ des Code- und/oder Datenspeichers 701 und der Rechen-Hardware 702 als Eingabe für das „Speicher/Rechen-Paar 705/706“ des Code- und/oder Datenspeichers 705 und der Rechen-Hardware 706 bereitgestellt wird, um die konzeptuelle Organisation eines neuronalen Netzes zu spiegeln. In mindestens einer Ausführungsform kann jedes der Speicher-/Rechenpaar 701/702 und 705/706 mehr als einer Schicht eines neuronalen Netzes entsprechen. In mindestens einer Ausführungsform können zusätzliche Speicher/Rechen-Paare (nicht gezeigt) nach oder parallel zu den Speicher/Rechen-Paaren 701/702 und 705/706 in der Inferenz- und/oder Trainingslogik 715 beinhaltet sein.
  • RECHENZENTRUM
  • 8 veranschaulicht ein beispielhaftes Rechenzentrum 800, bei dem mindestens eine Ausführungsform verwendet werden kann. In mindestens einer Ausführungsform beinhaltet das Rechenzentrum 800 eine Rechenzentrums-Infrastrukturschicht 810, eine Framework-Schicht 820, eine Softwareschicht 830 und eine Anwendungsschicht 840.
  • In mindestens einer Ausführungsform, wie in 8 gezeigt, kann die Rechenzentrums-Infrastrukturschicht 810 einen Ressourchenorchestrierer 812, gruppierte Rechenressourcen 814 und Knotenrechenressourcen („Knoten-RR“) 816(1) bis 816(N) umfassen, wobei „N“ eine beliebige positive Ganzzahl ist. In mindestens einer Ausführungsform können die Knoten-RRs 816(1)-816(N) eine beliebige Anzahl von Zentralverarbeitungseinheiten („CPUs“) oder andere Prozessoren (die Beschleuniger, feldprogrammierbare Gatearrays (FPGAs), Grafikprozessoren usw.), Arbeitsspeichervorrichtungen (z. B. dynamischer Nur-Lese-Speicher), Datenspeichervorrichtungen (z. B. Festkörper- oder Festplattenlaufwerke), Netz-Ein-/Ausgabevorrichtungen (network input/output - „NW E/A“), Netz-Switches, virtuellen Maschinen („VMs“), Leistungsmodulen und Kühlmodule usw. beinhalten, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform können ein oder mehrere Knoten-RRs von den Knoten-RRs 816(1)-816(N) ein Server sein, der eine oder mehrere der vorstehend erwähnten Berechnungsressourcen aufweist.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 814 getrennte Gruppierungen von Knoten-RRs, 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-RRs 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-RRs, die CPUs oder Prozessoren beinhalten, innerhalb eines oder mehrerer Racks gruppiert sein, um Rechenressourcen zum Unterstützen einer oder mehrerer Arbeitslasten bereitzustellen. In mindestens einer Ausführungsform können ein oder mehrere Racks auch eine beliebige Anzahl von Leistungsmodulen, Kühlmodulen und Netz-Switches in beliebiger Kombination beinhalten.
  • In mindestens einer Ausführungsform kann der Ressourchenorchestrierer 812 eine oder mehrere Knoten-RRs 816(1) bis 816(N) und/oder gruppierte Rechenressourcen 814 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourchenorchestrierer 812 eine Verwaltungseinheit einer Software-Design-Infrastruktur („SDI“) für das Rechenzentrum 800 beinhalten. In mindestens einer Ausführungsform kann der Ressourcenorchestrierer Hardware, Software oder eine 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 Softwareschicht 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 umfassen, 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 Softwareschicht 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 Rechenzentrums-Infrastrukturschicht 810 beinhalten. In mindestens einer Ausführungsform kann der Ressourcenmanager 826 mit dem Ressourchenorchestrierer 812 koordinieren, um diese zugeordneten oder zugeteilten Rechenressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die Software 832, die in der Softwareschicht 830 beinhaltet ist, Software beinhalten, die mindestens von Teilen von Knoten-RRs 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-Webseiten-Such-Software, E-Mail-Virus-Scan-Software, Datenbank-Software und Software zum Streamen von Videoinhalten beinhalten.
  • In mindestens einer Ausführungsform kann bzw. können die Anwendung(en) 842, die in der Anwendungsschicht 840 beinhaltet ist bzw. sind, eine oder mehrere Arten von Anwendungen beinhalten, die mindestens von Teilen von Knoten-RRs 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 eine beliebige Anzahl einer Genomikanwendung, einer kognitiven Rechenanwendung und einer maschinellen Lernanwendung beinhalten, die Trainings- oder Inferenzsoftware beinhaltet, Framework-Software des maschinellen Lernens (z. B. PyTorch, TensorFlow, Caffe usw.) oder andere maschinelle Lernanwendungen beinhalten, ohne darauf beschränkt zu sein, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden.
  • In mindestens einer Ausführungsform kann einer von dem Konfigurationsmanager 824, dem Ressourcenmanager 826 und dem Ressourchenorchestrierer 812 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen basierend auf einem beliebigen Betrag und einer beliebigen Art von Daten, die auf beliebige technisch machbare Art und Weise erfasst werden, umsetzen. In mindestens einer Ausführungsform können die selbstmodifizierenden 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 hier beschriebener Ausführungsformen vorherzusagen oder abzuleiten. Beispielsweise kann In mindestens einer Ausführungsform ein maschinelles Lernmodell trainiert werden, indem Gewichtungsparameter gemäß einer neuronalen Netzarchitektur unter Verwendung von zuvor mit 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 mit Bezug auf das Rechenzentrum 800 beschriebenen Ressourcen unter Verwendung von Gewichtungsparametern, die mit einer oder mehreren hier beschriebenen Trainingstechniken berechnet wurden, Informationen abzuleiten oder vorherzusagen.
  • In mindestens einer Ausführungsform kann das Rechenzentrum CPUs, anwendungsspezifische integrierte Schaltkreise (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um das Trainieren und/oder Inferieren 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 des Inferenzierens von Informationen zu ermöglichen, wie etwa Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- 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 Inferenz- oder Prognoseoperationen mindestens teilweise basierend auf Gewichtungsparametern, die unter Verwendung von hier beschriebenen neuronalen Netztrainingsoperationen, neuronalen Netzfunktionen und/oder Architekturen oder neuronalen Netzverwendungsfällen verwendet werden.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten bestimmt werden, zu einer einzigen Darstellung zusammenzusetzen.
  • 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 einen Befehl 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 die Ausführungseinheiten zu verwenden, die eine Logik beinhalten, um Algorithmen für Prozessdaten auszuführen, gemäß der vorliegenden Offenbarung, wie etwa bei der hierin beschriebenen Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 900 Prozessoren beinhalten, wie etwa PENTIUM®-Prozessorfamilie, Mikroprozessoren von Xeon™, Itanium®, XScale™ und/oder StrongARM™, Intel® Core™ oder Intel® Nervana™, die von Intel Corporation aus 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-Geräten und eingebetteten Anwendungen, verwendet werden. Einige Beispiele für tragbare Vorrichtungen sind Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten (personal digital assistants - „PDAs“) und tragbare PCs. In mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen digitalen Signalprozessor (digital signal processor - „DSP“), ein System auf einem Chip, Netzcomputer („NetPCs“), Set-Top-Boxen, Netz-Hubs, Switches für ein Weitverkehrsnetz (wide area network - „WAN“) oder ein beliebiges anderes System beinhalten, das eine oder mehrere Anweisungen gemäß mindestens einer Ausführungsform durchführen kann.
  • 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 das Trainieren und/oder Inferenzieren eines maschinellen Lernmodells gemäß den hierin beschriebenen Techniken auszufü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 Mikroprozessor eines Computers mit komplexem Anweisungssatz („CISC“), einen Mikroprozessor eines Computers mit reduziertem Anweisungssatz („RISC“), einen Mikroprozessor für sehr lange Befehlswörter („VLIW“), einen Prozessor, der eine Kombination von Anweisungssätzen umsetzt, oder eine beliebige andere Prozessorvorrichtung, wie beispielsweise 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 Level-1- („L1“) internen Cache-Speicher („Cache“) 904 beinhalten. In mindestens einer Ausführungsform kann der Prozessor 902 einen einzelnen internen Cache oder mehrere Ebenen von internem Cache aufweisen. In mindestens einer Ausführungsform kann sich der Cache-Speicher außerhalb des Prozessors 902 befinden. Andere Ausführungsformen können in Abhängigkeit von der konkreten Implementation und den Anforderungen auch eine Kombination aus sowohl internen als auch externen Caches beinhalten. 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 Befehlszeigerregister gehören.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 908, die ohne Einschränkung eine Logik umfasst, um Ganzzahl- und Gleitkomma-Operationen auszuführen, ebenfalls in dem Prozessor 902. In mindestens einer Ausführungsform kann der Prozessor 902 auch einen Mikrocode- („uCode“) Festspeicher („ROM“) beinhalten, der Mikrocode für gewisse Makrobefehle 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 dazugehörigen Schaltungen, um Befehle auszuführen, Operationen, die von zahlreichen Multimedia-Anwendungen verwendet werden, unter Verwendung komprimierter Daten in einem universellen Prozessor 902 durchgeführt werden. In einer oder mehreren Ausführungsformen können viele Multimediaanwendungen beschleunigt und effizienter durch das Verwenden der vollen Breite des Datenbusses eines Prozessors zum Ausführen von Operationen an komprimierten Daten ausgeführt werden, wodurch die Notwendigkeit beseitigt werden kann, kleinere Dateneinheiten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen ein Datenelement nach dem anderen 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 Arbeitsspeicher- („DRAM“) Vorrichtung, eine statische Arbeitsspeicher-(„SRAM“) Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung umgesetzt sein. In mindestens einer Ausführungsform kann der Speicher 920 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 Speichersteuerungshub („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 Befehlen 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 Systemlogikchip einen Grafikport zum Koppeln an eine Grafiksteuerung bereitstellen. In mindestens einer Ausführungsform kann der MCH 916 mit dem Speicher 920 über einen Speicherpfad mit hoher Bandbreite 918 gekoppelt sein, und eine Grafik-/Video-Karte 912 kann mit dem MCH 916 über einen beschleunigten Grafikanschluss- („AGP“) Zusammenschluss 914 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 900 eine System-E/A 922, die ein proprietärer Hub-Schnittstellenbus ist, verwenden, um den MCH 916 mit dem E/A-Steuerungshub („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 Anschließen von Peripheriegeräten an den Speicher 920, den Chipsatz und den Prozessor 902 umfassen. Beispiele können ohne Einschränkung eine Audiosteuerung 929, einen Firmware-Hub („Flash-BIOS“) 928, einen drahtlosen Transceiver 926, einen Datenspeicher 924, eine Legacy-E/A-Steuerung 923, die Benutzereingabe- und Tastaturschnittstellen 925 enthält, einen seriellen Erweiterungsanschluss 927, wie etwa einen universellen seriellen Bus („USB“), und eine Netzwerksteuerung 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 Hardware-Vorrichtungen bzw. „Chips“ beinhaltet, wohingegen bei anderen Ausführungsformen 9 ein beispielhaftes System auf einem Chip („SoC“) veranschaulichen kann. In mindestens einer Ausführungsform können die 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 des Computersystems 900 unter Verwendung von Compute-Express-Link- (CXL) Zusammenschaltungen zusammengeschaltet.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen auszuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Einzelheiten 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 Inferenz- oder Prognoseoperationen mindestens teilweise basierend auf Gewichtungsparametern, die unter Verwendung von hier beschriebenen neuronalen Netztrainingsoperationen, neuronalen Netzfunktionen und/oder Architekturen oder neuronalen Netzverwendungsfällen verwendet werden.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten bestimmt werden, zu einer einzigen Darstellung zusammenzusetzen.
  • 10 ist ein Blockdiagramm, das eine elektronische Vorrichtung 1000 zur Verwendung eines Prozessors 1010 gemäß mindestens einer Ausführungsform abbildet. 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 kommunikationsmäßig mit einer beliebigen Anzahl oder einen beliebigen Art von Komponenten, Peripheriegeräten, Modulen oder Vorrichtungen 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 Hardware-Vorrichtungen bzw. „Chips“ beinhaltet, wohingegen bei 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 („NFC“) 1045, einen Sensorhub 1040, einen Wärmesensor 1046, einen Express-Chipsatz („EC“) 1035, ein sicheres Plattformmodul („TPM“) 1038, einen BIOS/Firmware/Flash-Speicher („BIOS, FW-Flash“) 1022, einen DSP 1060, ein Laufwerk 1020, wie etwa ein Solid-State-Laufwerk („SSD“) oder ein Festplattenlaufwerk („HDD“), eine drahtlose lokale Netzwerkeinheit („WLAN“) 1050, eine Bluetooth-Einheit 1052, eine drahtlose Weitverkehrsnetzwerkeinheit („WWAN“) 1056, ein globales Positionsbestimmungssystem (GPS) 1055, eine Kamera („USB 3.0 Kamera“) 1054, wie etwa eine USB-3.0-Kamera und/oder eine Niedrigenergie-Doppeldatenraten- („LPDDR“) Speichereinheit („LPDDR3“) 1015, die beispielsweise im LPDDR3-Standard umgesetzt ist, beinhalten. Diese Komponenten können jeweils auf eine beliebige geeignete Weise implementiert sein.
  • In mindestens einer Ausführungsform können andere Komponenten mit dem Prozessor 1010 über zuvor besprochene Komponenten kommunikationsmäßig gekoppelt sein. In mindestens einer Ausführungsform können ein Beschleunigungsmesser 1041, ein Umgebungslichtsensor („ALS“) 1042, ein Kompass 1043 und ein Gyroskop 1044 kommunikationsmäßig mit dem Sensorhub 1040 gekoppelt sein. In mindestens einer Ausführungsform können ein Wärmesensor 1039, ein Gebläse 1037, eine Tastatur 1046 und ein Touchpad 1030 kommunikationsmäßig mit dem EC 1035 gekoppelt sein. In mindestens einer Ausführungsform können ein Lautsprecher 1063, ein Kopfhörer 1064 und ein Mikrofon („Mic“) 1065 kommunikationsmäßig mit einer Audioeinheit („Audio-Codec und Verstärker Klasse D“) 1062 gekoppelt sein, die wiederum kommunikationsmäßig mit dem DSP 1060 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 umfassen. In mindestens einer Ausführungsform kann eine SIM-Karte („SIM“) 1057 mit der WWAN-Einheit 1056 kommunikationsmäßig 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 („NGFF“) umgesetzt sein.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen auszuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Einzelheiten 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 Inferenz- oder Prognoseoperationen mindestens teilweise basierend auf Gewichtungsparametern, die unter Verwendung von hier beschriebenen neuronalen Netztrainingsoperationen, neuronalen Netzfunktionen und/oder Architekturen oder neuronalen Netzverwendungsfällen verwendet werden.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten bestimmt werden, zu einer einzigen Darstellung zusammenzusetzen.
  • 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 System-auf-einem-Chip (SoC) zur Verwendung in mobilen, handgehaltenen oder eingebetteten Vorrichtungen eingebunden ist.
  • In mindestens einer Ausführungsform kann das System 1100 eine serverbasierte Gaming-Plattform, eine Spielkonsole, die eine Spiel- und Medienkonsole beinhaltet, eine mobile Gaming-Konsole, eine Handheld-Spielkonsole oder eine Online-Spielkonsole beinhalten oder darin eingebunden sein. In mindestens einer Ausführungsform ist das System 1100 ein Mobiltelefon, ein Smartphone, eine Tablet-Computervorrichtung oder eine mobile Internet-Vorrichtung. In mindestens einer Ausführungsform kann das Verarbeitungssystem 1100 auch eine anziehbare Vorrichtung, wie etwa eine anziehbare Vorrichtung als intelligente Armbanduhr, eine intelligente Brillenvorrichtung, eine Vorrichtung mit erweiterter Realität oder einer Vorrichtung mit virtueller Realität beinhalten, damit gekoppelt oder darin eingebunden 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 durch einen oder mehrere Grafikprozessoren 1108 generiert wird, aufweist.
  • In mindestens einer Ausführungsform beinhalten ein oder mehrere Prozessoren 1102 jeweils einen oder mehrere Prozessorkerne 1107, um Befehlen 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 Datenverarbeitung mit komplexem Anweisungssatz (CISC), Datenverarbeitung mit reduziertem Anweisungssatz (RISC) oder Datenverarbeitung über ein sehr langes Befehlswort (VLlW) ermöglichen. In mindestens einer Ausführungsform können die Prozessorkerne 1107 jeweils einen anderen Anweisungssatz 1109 verarbeiten, der Befehle beinhalten kann, um die Emulation von anderen Befehlssä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 enthalten und kann verschiedene Arten von Registern zum Speichern verschiedener Arten von Daten (z. B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Befehlszeigerregister) beinhalten. 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 übertragen. In mindestens einer Ausführungsform kann der Schnittstellenbus 1110 bei einer Ausführungsform ein Prozessorbus sein, wie etwa eine Version eines direkten Medienschnittstellen- (DMI) Busses. In mindestens einer Ausführungsform ist die Schnittstelle 1110 nicht auf einen DMI-Bus beschrä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 eine integrierte Speichersteuerung 1116 und einen Plattformsteuerungshub 1130. In mindestens einer Ausführungsform ermöglicht die Speichersteuerung 1116 die Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 1100, während der Plattformsteuerungshub (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 Arbeitsspeicher- (DRAM) Vorrichtung, eine statische Arbeitsspeicher-(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 die Speichersteuerung 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 auszufü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 ein Head-Mounted-Display (HMD), wie etwa eine stereoskopische Anzeigevorrichtung zur Verwendung bei virtuellen Realitäts- (VR) Anwendungen oder erweiterten Realitäts- (AR) Anwendungen, beinhalten.
  • In mindestens einer Ausführungsform ermöglicht es der Plattformsteuerungshub 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 eine Audiosteuerung 1146, eine Netzwerksteuerung 1134, eine Firmware-Schnittstelle 1128, einen drahtlosen Transceiver 1126, Berührungssensoren 1125, eine Datenspeicherungsvorrichtung 1124 (z. B. ein Festplattenlaufwerk, einen Flash-Speicher usw.). In mindestens einer Ausführungsform kann die Datenspeicherungsvorrichtung 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 (unified extensible firmware interface - UEFI) sein. In mindestens einer Ausführungsform kann die Netzwerksteuerung 1134 eine Netzwerkverbindung mit einem drahtgebundenen Netzwerk ermöglichen. In mindestens einer Ausführungsform ist eine Hochleistungs-Netzwerksteuerung (nicht gezeigt) mit dem Schnittstellenbus 1110 gekoppelt. In mindestens einer Ausführungsform ist die Audiosteuerung 1146 eine Mehrkanal-Hochdefinitions-Audiosteuerung. In mindestens einer Ausführungsform beinhaltet das System 1100 eine optionale Legacy-E/A-Steuerung 1140 zum Koppeln von alten (z. B. Personal-System-2- (PS/2)) Vorrichtungen mit dem System. In mindestens einer Ausführungsform kann der Plattformsteuerungshub 1130 auch mit einer oder mehreren universellen seriellen Bus-(USB) Steuerungen 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 der Speichersteuerung 1116 und des Plattformsteuerungshubs 1130 in einen diskreten externen Grafikprozessor, wie etwa einen externen Grafikprozessor 1112, integriert sein. In mindestens einer Ausführungsform können der Plattformsteuerungshub 1130 und/oder die Speichersteuerung 1116 zu dem einen oder den mehreren Prozessoren 1102 extern sein. Beispielsweise kann in mindestens einer Ausführungsform das System 1100 eine externe Speichersteuerung 1116 und einen Plattformsteuerungshub 1130 beinhalten, die als Speichersteuerungshub und Peripheriesteuerungshub 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 Inferenz- und/oder Trainingsoperationen auszuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Einzelheiten 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 teilweise oder insgesamt in den Grafikprozessor 1500 übernommen werden. Zum Beispiel in mindestens einer Ausführungsform können die hierin beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere der ALUs verwenden, die in einem Grafikprozessor ausgebildet sind. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung von anderer Logik als der in 7A oder 7B veranschaulichten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtungsparameter in einem Speicher und/oder Registern auf einem Chip oder außerhalb eines Chips gespeichert werden (gezeigt oder nicht gezeigt), welche die ALUs eines Grafikprozessors konfigurieren, um einen oder mehrere hier beschriebene maschinelle Lernalgorithmen, neuronale Netzarchitekturen, Verwendungsfälle oder Trainingstechniken auszuführen.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten bestimmt werden, zu einer einzigen Darstellung zusammenzusetzen.
  • 12 ist ein Blockdiagramm eines Prozessors 1200, der einen oder mehrere Prozessorkerne 1202A bis 1202N, eine integrierte Speichersteuerung 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 bis 1202N eine oder mehrere interne Cache-Einheiten 1204A bis 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 bis 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 bis 1204N mindestens eine Ebene von Befehls- und Daten-Cache 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 bis 1204N.
  • In mindestens einer Ausführungsform kann der Prozessor 1200 auch eine Menge von einer oder mehreren Bussteuerungseinheiten 1216 und einen Systemagentenkern 1210 beinhalten. In mindestens einer Ausführungsform verwalten eine oder mehrere Bussteuerungseinheiten 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 eine oder mehrere integrierte Speichersteuerungen 1214, um den Zugriff auf diverse externe Speichervorrichtungen (nicht gezeigt) zu verwalten.
  • In mindestens einer Ausführungsform beinhalten einer oder mehrere der Prozessorkerne 1202A bis 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 bis 1202N während einer Multithread-Verarbeitung. In mindestens einer Ausführungsform kann der Systemagentenkern 1210 zusätzlich eine Energiesteuereinheit (PCU) beinhalten, die eine Logik und Komponenten umfasst, um einen oder mehrere Energiezustände der Prozessorkerne 1202A bis 1202N und des Grafikprozessors 1208 zu verwalten.
  • 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, wozu eine oder mehrere integrierte Speichersteuerungen 1214 gehören. In mindestens einer Ausführungsform beinhaltet der Systemagentenkern 1210 auch eine Anzeigesteuerung 1211, um die Grafikprozessorausgabe an ein oder mehrere gekoppelte Displays anzusteuern. In mindestens einer Ausführungsform kann die Anzeigesteuerung 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 kann eine alternative Zusammenschaltungseinheit verwendet werden, wie etwa eine Punkt-zu-Punkt-Zusammenschaltung, eine geschaltete Zusammenschaltung oder andere Techniken. 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, wozu eine Gehäuse-E/A-Zusammenschaltung gehört, welche die Kommunikation zwischen diversen 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 bis 1202N und dem Grafikprozessor 1208 eingebettete Speichermodule 1218 als gemeinsam genutzten Last-Level-Cache.
  • In mindestens einer Ausführungsform sind die Prozessorkerne 1202A bis 1202N homogene Kerne, die eine gemeinsame Anweisungssatzarchitektur ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1202A bis 1202N im Sinne der Anweisungssatzarchitektur (ISA) heterogen, wobei ein oder mehrere der Prozessorkerne 1202A bis 1202N einen gemeinsamen Anweisungssatz ausführen, während ein oder mehrere andere Kerne der Prozessorkerne 1202A bis 1202N eine Teilmenge eines gemeinsamen Anweisungssatzes oder einen anderen Anweisungssatz ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1202A bis 1202N im Sinne der Mikroarchitektur heterogen, wobei ein oder mehrere Kerne, die einen relativ höheren Energieverbrauch aufweisen, mit einem oder mehreren Energiekernen gekoppelt sind, die einen niedrigeren Energieverbrauch aufweisen. In mindestens einer Ausführungsform kann der Prozessor 1200 auf einem oder mehreren Chips oder als integrierter SoC-Schaltkreis umgesetzt sein.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen auszuführen, die mit einer oder mehreren Ausführungsformen verknüpft sind. Einzelheiten 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 teilweise oder insgesamt in den Prozessor 1200 übernommen werden. Zum Beispiel In mindestens einer Ausführungsform können die hier beschriebenen Trainings- und/oder Inferenztechniken eine oder mehrere der ALUs verwenden, die in einem Grafikprozessor 1512, einem oder mehreren Grafikkernen 1202A bis 1202N oder anderen Komponenten in 12 ausgebildet sind. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenz- und/oder Trainingsoperationen unter Verwendung von anderer Logik als der in 7A oder 7B veranschaulichten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtungsparameter in einem Speicher und/oder Registern auf einem Chip oder außerhalb eines Chips gespeichert werden (gezeigt oder nicht gezeigt), welche die ALUs eines Grafikprozessors 1200 konfigurieren, um einen oder mehrere hier beschriebene maschinelle Lernalgorithmen, neuronale Netzarchitekturen, Verwendungsfälle oder Trainingstechniken auszuführen.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten bestimmt werden, zu einer einzigen Darstellung zusammenzusetzen.
  • VIRTUALISIERTE RECHENPLATTFORM
  • 13 ist ein beispielhaftes Datenflussdiagramm für einen Prozess 1300 zum Generieren und Bereitstellen einer Bildverarbeitungs- und Inferenz-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 Einsatzsystem 1306 ausgeführt werden. In mindestens einer Ausführungsform kann das Trainingssystem 1304 verwendet werden, um das Training, den Einsatz und die Umsetzung von maschinellen Lernmodellen (z. B. von neuronalen Netzen, Objektdetektionsalgorithmen, Computervisionsalgorithmen usw.) zur Verwendung in einem Einsatzsystem 1306 durchzuführen. In mindestens einer Ausführungsform kann das Einsatzsystem 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 Einsatzsystems 1306 während der Ausführung von Anwendungen verwenden oder darauf zurückgreifen.
  • In mindestens einer Ausführungsform können einige der Anwendungen, die in fortgeschrittenen Verarbeitungs- und Inferenz-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- (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 Einsatzsystem 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 (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 bereitstellen, die es Benutzern mit zweckmäßigen Anmeldeinformationen ermöglichen, Modelle mit Anwendungen zu assoziieren, sodass 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 umfassen, 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 in mindestens einer Ausführungsform eine KI-gestü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-gestützte Annotation 1310 ein oder mehrere maschinelle Lernmodelle (z. B. neuronale Faltungsnetze (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 Kl-gestü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-gestützte Annotationen 1310, beschriftete Klinikdaten 1312 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 Einsatzsystem 1306, wie hier 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 Ausführen einer oder mehrerer Verarbeitungsaufgaben für eine oder mehrere Anwendungen in dem Einsatzsystem 1306 benötigt, es kann jedoch sein, dass die Einrichtung 1302 aktuell kein derartiges maschinelles Lernmodell aufweist (oder vielleicht kein Modell aufweist, das für diese 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 umfassen, die trainiert wurden, um diverse verschiedene Inferenzaufgaben an Bildgebungsdaten auszufü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 Modelle des maschinellen Lernens an Bildgebungsdaten von einem Ort, zwei Orten oder einer beliebigen Anzahl von Orten 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 in 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 Einsatzsystem 1306 verwendet werden, um eine oder mehrere Verarbeitungsaufgaben für eine oder mehrere Anwendungen eines Einsatzsystems auszufü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 Einsatzsystem 1306 erfordert, dass die Einrichtung 1302 jedoch vielleicht aktuell kein derartiges maschinelles Lernmodell aufweist (oder vielleicht kein Modell aufweist, das für diese 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-gestü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 beschrifteten 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-gestützte Annotationen 1310, beschriftete 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 Einsatzsystem 1306 verwendet werden, wie hier beschrieben.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 1306 Software 1318, Dienste 1320, Hardware 1322 und/oder andere Komponenten, Merkmale und Funktionalität umfassen. In mindestens einer Ausführungsform kann das Einsatzsystem 1306 einen Software-„Stapel“ beinhalten, sodass die Software 1318 auf Diensten 1320 aufgebaut sein kann und die Dienste 1320 verwenden kann, um einige oder alle der Verarbeitungsaufgaben und Dienste 1320 auszufü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 Einsatzsystems 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 einen oder mehrere Verarbeitungs-Tasks in einer weiterentwickelten Verarbeitungs- und Inferenzpipeline durchführen (z. B. Inferenz, Objektdetektion, Merkmalsdetektion, Segmentierung, Bildverbesserung, Kalibrierung usw.). In mindestens einer Ausführungsform kann eine fortgeschrittene Verarbeitungs- und Inferenz-Pipeline basierend auf 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 hier 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 Eingangsdaten (z. B. Bildgebungsdaten 1308) in einem spezifischen Format als Reaktion auf eine Inferenzanfrage (z. B. eine Anfrage von einem Benutzer des Einsatzsystems 1306) empfangen. In mindestens einer Ausführungsform können die Eingangsdaten 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 als Teil der Datenverarbeitungspipeline einer Vorverarbeitung unterzogen werden, um die Daten für die Verarbeitung durch eine oder mehrere Anwendungen vorzubereiten. In mindestens einer Ausführungsform kann eine Nachbearbeitung an einer Ausgabe einer oder mehrerer Inferenzierungsaufgaben oder anderer Verarbeitungsaufgaben einer Pipeline durchgeführt werden, um Ausgabedaten für eine nächste Anwendung vorzubereiten und/oder Ausgabedaten für die Übermittlung und/oder Verwendung durch einen Benutzer vorzubereiten (z. B. als eine Antwort auf eine Inferenzierungsanfrage). 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, durchgeführt werden.
  • In mindestens einer Ausführungsform können die Aufgaben der Datenverarbeitungs-Pipeline in einem oder mehreren Containern 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 (beispielsweise mit beschränktem Zugriff) eines Containerregisters (nachstehend ausführlicher beschrieben) veröffentlicht werden, und trainierte oder bereitgestellte Modelle können in dem Modellregister 1324 gespeichert und mit einer oder mehreren Anwendungen verknüpft werden. In mindestens einer Ausführungsform können Bilder von Anwendungen (z. B. Containerabbilder) in einer Containerregistrierungsdatenbank verfügbar sein und sobald es durch einen Benutzer aus einer Containerregistrierungsdatenbank für den Einsatz in einer Pipeline ausgewählt wurde, kann ein Abbild verwendet werden, um einen Container für eine Instanziierung einer Anwendung zur Verwendung durch das System eines Benutzers zu erzeugen.
  • In mindestens einer Ausführungsform können Entwickler (z. B. Softwareentwickler, Kliniker, Ärzte usw.) Anwendungen (z. B. in Form von Containern) zur Durchführung von Bildverarbeitung und/oder Inferenzierung auf bereitgestellte 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) ausgeführt werden, das mit einem System verknüpft 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 als System (z. B. als System 1400 aus 14) unterstützen kann, getestet werden. In mindestens einer Ausführungsform, da DICOM-Objekte eine beliebige Anzahl zwischen einem und Hunderten von Bildern oder anderen Datentypen 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. auf Genauigkeit) validiert wurde, in einem Containerregister zur Auswahl und/oder Umsetzung durch einen Benutzer verfügbar sein, um eine oder mehrere Verarbeitungsaufgaben mit Bezug auf Daten in einer Einrichtung (z. B. einer zweiten Einrichtung) eines Benutzers auszufü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 freigegebene Anwendungen oder Container in einem Containerregister gespeichert werden, und verknüpfte maschinelle Lernmodelle können in dem Modellregister 1324 gespeichert werden. In mindestens einer Ausführungsform kann eine anfragende Entität - die eine Inferenz- oder Bildbearbeitungsanfrage 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 Bildgebungsverarbeitungsanfrage unterbreiten. In mindestens einer Ausführungsform kann eine Anforderung Eingabedaten (und in einigen Beispielen damit assoziierte Patientendaten) beinhalten, die zum Durchführen einer Anforderung notwendig sind, und/oder eine Auswahl von Anwendung(en) und/oder Modellen des maschinellen Lernens beinhalten, die bei der Verarbeitung einer Anforderung ausgeführt werden sollen. In mindestens einer Ausführungsform kann eine Anfrage dann an eine oder mehrere Komponenten des Einsatzsystems 1306 (z. B. eine Cloud) weitergegeben werden, um eine Verarbeitung der Datenverarbeitungs-Pipeline auszuführen. In mindestens einer Ausführungsform kann die Verarbeitung durch das Einsatzsystem 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, sobald Ergebnisse durch eine Pipeline generiert wurden, die Ergebnisse als Referenz an einen Benutzer zurückgegeben werden (z. B. zur Ansicht in einer Ansichtanwendungssuite, die auf einer lokalen Arbeitsstation oder einem lokalen Endgerät in den Räumlichkeiten ausgeführt wird).
  • 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- (Kl) 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, sodass die Funktionalität auf einen Dienst abstrahiert werden kann, der von den Anwendungen abgerufen oder genutzt werden kann. In mindestens einer Ausführungsform kann die Funktionalität, die durch die Dienste 1320 bereitgestellt wird, dynamisch und effizienter ablaufen, wobei sie auch 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/die als nicht einschränkende Beispiele zum Ausführen von Detektions- oder Segmentierungs-Tasks verwendet werden kann. In mindestens einer Ausführungsform kann ein Modelltrainingsdienst enthalten sein, der die Fähigkeit bereitstellen kann, Modelle des maschinellen Lernens zu trainieren und/oder erneut zu trainieren. In mindestens einer Ausführungsform kann ferner ein Datenerweiterungsdienst enthalten sein, der die Extraktion, Größenänderung, Skalierung und/oder andere Erweiterung von GPU-beschleunigten Daten (z. B. DICOM-Daten, RIS-Daten, CIS-Daten, REST-konformen Daten, RPC-Daten, Rohdaten usw.) bereitstellen kann. In mindestens einer Ausführungsform kann ein Visualisierungsdienst verwendet werden, der Bild-Rendering-Effekte - 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 Dienste für virtuelle Instrumente enthalten sein, die Strahlformung, Segmentierung, Inferenzieren, Bildgebung und/oder Unterstützung für andere Anwendungen innerhalb von Pipelines virtueller Instrumente 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, in der eine andere Anwendung ein oder mehrere Modelle des maschinellen Lernens für Segmentierungs-Tasks beinhaltet, kann eine Anwendung einen Inferenzdienst aufrufen, um Modelle des maschinellen Lernens zum Durchführen einer oder mehrerer mit Segmentierungs-Tasks assoziierten Verarbeitungsoperationen durchzuführen. In mindestens einer Ausführungsform kann die Software 1318, welche die fortgeschrittene Verarbeitungs- und Inferenz-Pipeline umsetzt, die eine Segmentierungsanwendung und Anomaliedetektionsanwendung beinhaltet, rationalisiert werden, weil jede Anwendung den gleichen Inferenzdienst abrufen kann, um eine oder mehrere Inferenzaufgaben durchzuführen.
  • In mindestens einer Ausführungsform kann die Hardware 1322 GPUs, CPUs, Grafikkarten, ein KI-/Deep Learning-System (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 Einsatzsystem 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/Deep Learning-Systems, in einem Cloud-System und/oder in anderen Verarbeitungskomponenten des Einsatzsystems 1306 umgesetzt 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 mit Bezug auf Deep Learning, maschinelles Lernen und/oder Hochleistungsdatenverarbeitung als nicht einschränkende Beispiele optimiert werden. In mindestens einer Ausführungsform kann mindestens ein Teil der Computerumgebung des Einsatzsystems 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 hierin beschrieben. In mindestens einer Ausführungsform kann die Cloud-Plattform ferner GPU-Verarbeitung für die GPU-optimierte Ausführung von Deep-Learning-Tasks, Tasks des maschinellen Lernens oder anderen Rechen-Tasks beinhalten. In mindestens einer Ausführungsform kann die Cloud-Plattform (z. B. NVIDIAs NGC) unter Verwendung eines oder mehrerer KI/Deep-Learning-Supercomputer und/oder GPU-optimierter Software (z. B. wie auf NVIDIAs DGX-Systemen bereitgestellt) als eine Hardwareabstraktion und -skalierungsplattform ausgeführt werden. In mindestens einer Ausführungsform kann die Cloud-Plattform ein Anwendungscontainer-Clustering-System oder Orchestrierungssystem (z. B. KUBERNETES) auf mehreren GPUs integrieren, um eine nahtlose Skalierung und Lastverteilung zu ermöglichen.
  • 14 ist ein Systemdiagramm für ein beispielhaftes System 1400 zum Generieren und Bereitstellen einer Bildgebungseinsatz-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 umzusetzen, die fortgeschrittene Verarbeitungs- und Inferenz-Pipelines beinhalten. In mindestens einer Ausführungsform kann das System 1400 das Trainingssystem 1304 und das Einsatzsystem 1306 beinhalten. In mindestens einer Ausführungsform können das Trainingssystem 1304 und das Einsatzsystem 1306 unter Verwendung von Software 1318, Diensten 1320 und/oder Hardware 1322 wie hierin beschrieben umgesetzt werden.
  • In mindestens einer Ausführungsform kann das System 1400 (z. B. das Trainingssystem 1304 und/oder das Einsatzsystem 1306) in einer Cloud-Rechenumgebung (z. B. unter Verwendung der Cloud 1426) umgesetzt werden. In mindestens einer Ausführungsform kann das System 1400 lokal mit Bezug auf eine Gesundheitsdiensteinrichtung oder als eine Kombination sowohl von Cloud- als auch von lokalen Rechenressourcen umgesetzt 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 durch einen Authentifizierungsdienst (z. B. AuthN, AuthZ, Gluecon usw.) signiert sein können und eine zweckmäßige Autorisierung tragen können. In mindestens einer Ausführungsform können die APIs von virtuellen Instrumenten (hier 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, wozu ohne Einschränkung lokale Netzwerke (LANs) und/oder Großraumnetzwerke (WANs) gehören, ü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 Übertragen von Inferenzanfragen zum Empfangen von Ergebnissen von Inferenzanfragen 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 hierin mit Bezug auf 13 beschrieben werden. In mindestens einer Ausführungsform, bei der ein oder mehrere maschinelle Lernmodelle in den Einsatz-Pipelines 1410 durch das Einsatzsystem 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) umzusetzen. In mindestens einer Ausführungsform können als Ergebnis der Trainings-Pipelines 1404 ein oder mehrere Ausgabemodelle 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 Eingangsdaten). In mindestens einer Ausführungsform können für verschiedene maschinelle Lernmodelle, die von dem Einsatzsystem 1306 verwendet werden, verschiedene Trainings-Pipelines 1404 verwendet werden. In mindestens einer Ausführungsform kann eine Trainings-Pipeline 1404 ähnlich wie bei einem ersten Beispiel, das mit Bezug auf 13 beschrieben wurde, für ein erstes maschinelles Lernmodell verwendet werden, eine Trainings-Pipeline 1404 ähnlich wie bei einem zweiten Beispiel, das mit Bezug auf 13 beschrieben wurde, kann für ein zweites maschinelles Lernmodell verwendet werden, und eine Trainings-Pipeline 1404 ähnlich wie ein drittes Beispiel, das mit Bezug auf 13 beschrieben wurde, kann 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, sodass die maschinellen Lernmodelle vielleicht keine Verarbeitung durch das Trainingssystem 1304 erfahren und von dem Einsatzsystem 1306 umgesetzt werden können.
  • In mindestens einer Ausführungsform können ein oder mehrere Ausgabemodelle 1316 und/oder vortrainierte Modelle 1406 beliebige Arten von maschinellen Lernmodellen in Abhängigkeit von der Umsetzung oder Ausführungsform umfassen. 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, erzeugend gegnerisch, Flüssigzustandsmaschine usw.) und/oder andere Arten von maschinellen Lernmodellen verwenden.
  • In mindestens einer Ausführungsform können die Trainings-Pipelines 1404 eine KI-gestützte Annotation beinhalten, wie es hier mit Bezug mindestens auf 15B ausführlicher beschrieben wird. In mindestens einer Ausführungsform können beschriftete Daten 1312 (z. B. herkömmliche Annotation) durch eine beliebige Anzahl von Techniken generiert werden. In mindestens einer Ausführungsform können Beschriftungen oder andere Annotationen in einem Zeichenprogramm (z. B. einem Annotationsprogramm), einem CAD (Computer Aided Design)-Programm, einem Labelingprogramm oder einer anderen Art von Programm generiert werden, das zur Generierung von Annotationen oder Beschriftungen für die Ground-Truth geeignet ist, und/oder in einigen Beispielen von Hand gezeichnet werden. In mindestens einer Ausführungsform können die Ground-Truth-Daten synthetisch erzeugt werden (z. B. aus Computermodellen oder Renderings), real erzeugt werden (z. B. aus realen Daten entworfen und erzeugt werden), maschinell automatisiert werden (z. B. unter Verwendung von Merkmalsanalyse und Lernen, um Merkmale aus Daten zu extrahieren und dann Beschriftungen zu generieren), von Menschen beschriftet werden (z. B. Beschrifter oder Annotationsexperte, der die Position der Beschriftungen definiert) und/oder eine Kombination davon. 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-gestützte Annotation als Teil der Einsatz-Pipelines 1410 entweder zusätzlich zu oder anstelle einer Kl-gestützten Annotation, die in den Trainings-Pipelines 1404 enthalten ist, ausgeführt werden. In mindestens einer Ausführungsform kann das System 1400 eine mehrschichtige Plattform beinhalten, die eine Softwareschicht (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 kommunikationsmäßig mit PACS-Servernetzwerken einer oder mehrerer Einrichtungen (z. B. über verschlüsselte Links) 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 auszuführen.
  • In mindestens einer Ausführungsform kann eine Softwareschicht als sichere, verschlüsselte und/oder authentifizierte API umgesetzt werden, über welche Anwendungen oder Container von einer oder mehreren externen Umgebungen (z. B. der Einrichtung 1302) aufgerufen (z. B. abgerufen) werden können. In mindestens einer Ausführungsform können die Anwendungen dann einen oder mehrere Dienste 1320 abrufen oder ausführen, um Rechen-, Kl- oder Visualisierungsaufgaben durchzuführen, die mit jeweiligen Anwendungen verknüpft 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 Einsatzsystem 1306 Einsatz-Pipelines 1410 ausführen. In mindestens einer Ausführungsform können die Einsatz-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-gestützter Annotation, wie zuvor beschrieben, generiert werden. In mindestens einer Ausführungsform wie hierin beschrieben kann eine Einsatz-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 Einsatz-Pipeline 1410 geben. In mindestens einer Ausführungsform, bei der Detektionen von Anomalien durch ein MRT-Gerät erwünscht sind, kann es eine erste Einsatz-Pipeline 1410 geben, und wenn eine Bildverbesserung aus der Ausgabe eines MRT-Geräts erwünscht ist, kann es eine zweite Einsatz-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 ein eigenes Modell des maschinellen Lernens implementieren oder ein Modell des maschinellen Lernens zur Aufnahme in eine Anwendung zum Durchführen eines Verarbeitungs-Tasks auswählen. In mindestens einer Ausführungsform können die Anwendungen auswählbar und individuell anpassbar sein und durch das Definieren von Konstrukten von Anwendungen werden der Einsatz und die Implementation von Anwendungen für einen konkreten Benutzer als nahtlosere Benutzererfahrung dargestellt. 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 Einsatz-Pipelines 1410 noch benutzerfreundlicher sein, eine einfachere Integration bereitstellen und genauere, effiziente und rechtzeitige Ergebnisse erbringen.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 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 Einsatz-Pipelines 1410 auszuwählen, Anwendungen anzuordnen, Anwendungen oder Parameter oder Konstrukte derselben zu bearbeiten oder zu ändern, eine oder mehrere Einsatz-Pipelines 1410 während der Einrichtung und/oder Bereitstellung zu verwenden und damit zu interagieren, und/oder um anderweitig mit dem Einsatzsystem 1306 zu interagieren. In mindestens einer Ausführungsform, obwohl sie mit 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 Einsatzsystem 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 Anwendungsorchestrierungssystem 1428 verwendet werden, um die Interaktion zwischen Anwendungen oder Containern der Einsatz-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. In mindestens einer Ausführungsform, obwohl sie als in der Software 1318 enthalten abgebildet ist, ist dies nicht als Einschränkung gedacht, und bei einigen Beispielen (z. B. wie in 12cc abgebildet) kann der Pipeline-Manager 1412 in den Diensten 1320 enthalten sein. In mindestens einer Ausführungsform kann das Anwendungsorchestrierungssystem 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 das Verknüpfen von Anwendungen aus der oder den Einsatz-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 eingesetzt werden (z. B. kann ein erster Benutzer oder Entwickler eine erste Anwendung entwickeln, bearbeiten und einsetzen, und ein zweiter Benutzer oder Entwickler kann eine zweite Anwendung getrennt von einem ersten Benutzer oder Entwickler entwickeln, bearbeiten und einsetzen), 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 Anwendungsorchestrierungssystem 1428 unterstützt werden. In mindestens einer Ausführungsform, solange eine erwartete Eingabe und/oder Ausgabe jedes Containers oder jeder Anwendung einem System bekannt ist (z. B. basierend auf Konstrukten von Anwendungen oder Containern), können das Anwendungsorchestrierungssystem 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 Einsatz-Pipeline(s) 1410 die gleichen Dienste und Ressourcen gemeinsam nutzen kann bzw. können, kann das Anwendungsorchestrierungssystem 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 Scheduler verwendet werden, um den Ressourcenbedarf von Anwendungen oder Containern, die derzeitige Nutzung oder geplante Nutzung dieser Ressourcen und die Ressourcenverfügbarkeit zu verfolgen. In mindestens einer Ausführungsform kann ein Scheduler somit Ressourcen unterschiedlichen Anwendungen zuweisen und Ressourcen zwischen und unter Anwendungen im Hinblick auf Bedarf und Verfügbarkeit eines Systems verteilen. Bei einigen Beispielen kann ein Scheduler (und/oder eine andere Komponente des Anwendungsorchestrierungssystems 1428) die Verfügbarkeit und Verteilung von Ressourcen basierend auf Auflagen bestimmen, die einem System auferlegt werden (z. B. Benutzerauflagen), wie etwa Dienstqualität (QoS), Dringlichkeit des Bedarfs an Datenausgaben (z. B. um zu bestimmen, ob eine Echtzeit-Verarbeitung oder eine verzögerte Verarbeitung auszuführen ist) usw.
  • In mindestens einer Ausführungsform können Dienste 1320, die von Anwendungen oder Containern in dem Einsatzsystem 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 abrufen (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 Hochleistungsdatenverarbeitungs- (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 Computerplattform 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 Computerplattform 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 Softwareschicht einer parallelen Computerplattform 1430 Zugriff auf virtuelle Befehlssätze und parallele Rechenelemente von GPUs zur Ausführung von Rechen-Kernels geben. In mindestens einer Ausführungsform kann die parallele Computerplattform 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- (IPC) Abrufe 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 Computerplattform 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 gleiche Daten an einem gleichem Speicherort für eine beliebige Anzahl von Verarbeitungs-Tasks verwendet werden (z. B. zur gleichen Zeit, zu unterschiedlichen Zeiten usw.), anstatt eine Kopie der Daten zu erstellen und die Daten an unterschiedliche Orte in dem Speicher zu verschieben (z. B. eine Lese-/Schreiboperation). In mindestens einer Ausführungsform können, da Daten verwendet werden, um neue Daten als Ergebnis der Verarbeitung zu erzeugen, diese Informationen über einen neuen Ort von Daten gespeichert und von verschiedenen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform können ein Ort von Daten und ein Ort von aktualisierten oder modifizierten Daten Teil einer Definition sein, wie Nutzdaten innerhalb von Containern zu verstehen sind.
  • In mindestens einer Ausführungsform können KI-Dienste 1418 genutzt werden, um Inferenzdienste zum Ausführen eines oder mehrerer maschineller Lernmodelle, die mit Anwendungen verknüpft (z. B. mit der Durchführung einer oder mehrerer Verarbeitungsaufgaben einer Anwendung beauftragt) sind, auszufü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 Netz, wie etwa CNNs) für Segmentierungs-, Rekonstruktions-, Objektdetektions-, Merkmalsdetektions-, Klassifizierungs- und/oder andere Inferenzaufgaben auszuführen. In mindestens einer Ausführungsform können die Anwendungen der Einsatz-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 von Inferenz unter Verwendung des Anwendungsorchestrierungssystems 1428 (z. B. eines Schedulers) verfügbar sein. In mindestens einer Ausführungsform kann eine erste Kategorie einen Pfad mit hoher Priorität/geringer Latenz beinhalten, der höhere Service Level Agreements erreichen kann, wie etwa zum Durchführen von Inferenz an dringenden Anforderungen während eines Notfalls oder für einen Radiologen während der Diagnose. In mindestens einer Ausführungsform kann eine zweite Kategorie einen Pfad mit Standardpriorität beinhalten, der für Anforderungen verwendet werden kann, die nicht dringend sind oder bei denen die Analyse zu einem späteren Zeitpunkt durchgeführt werden kann. In mindestens einer Ausführungsform kann das Anwendungsorchestrierungssystem 1428 Ressourcen (z. B. Dienste 1320 und/oder Hardware 1322) basierend auf Prioritätswegen für verschiedene Inferenzaufgaben 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 Datenspeicher als Cache (oder anderer Speichervorrichtungstyp) arbeiten und zum Verarbeiten von Inferenzanforderungen von Anwendungen verwendet werden. In mindestens einer Ausführungsform, wenn eine Inferenzanfrage unterbreitet wird, kann eine Anfrage von einer Menge von API-Instanzen des Einsatzsystems 1306 empfangen werden, und eine oder mehrere Instanzen können ausgewählt werden (z. B. zur besten Anpassung, zum Belastungsausgleich usw.), um eine Anfrage zu verarbeiten. In mindestens einer Ausführungsform kann zum Verarbeiten einer Anfrage eine Anfrage 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 Scheduler (z. B. des Pipeline-Managers 1412) verwendet werden, um eine Anwendung zu starten, auf die in einer Anfrage Bezug genommen wird, falls eine Anwendung nicht bereits läuft, oder falls es nicht genug Instanzen einer Anwendung gibt. In mindestens einer Ausführungsform kann ein Inferenzserver gestartet werden, falls ein Inferenzserver zum Ausführen eines Modells nicht bereits gestartet ist. Pro Modell kann eine beliebige Anzahl von Inferenzservern gestartet werden. In mindestens einer Ausführungsform können in einem Pull-Modell, in dem Ableitungsserver geclustert werden, Modelle zwischengespeichert werden, immer 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 mithilfe eines Inferenzservers durchgeführt werden, der in einem Container läuft. In mindestens einer Ausführungsform kann eine Instanz eines Inferenzservers mit einem Modell (und optional einer Vielzahl von Versionen eines Modells) assoziiert 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 Inferenzierungsanforderung für eine bestimmte Anwendung empfangen werden, und kann ein Container (z. B. mit einer Instanz eines Inferenzierungsservers) geladen werden (falls nicht bereits geschehen), und kann 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, die 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 eine 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 Pixellevel, eine Segmentierung auf Voxellevel, das Generieren einer Visualisierung oder das Generieren von Text zum Zusammenfassen von Befunden beinhalten kann. In mindestens einer Ausführungsform können unterschiedlichen Modellen oder Anwendungen unterschiedliche Prioritäten zugewiesen werden. Zum Beispiel können einige Modelle eine Echtzeitpriorität (TAT < 1 min) aufweisen, während andere eine niedrigere Priorität (z. B. TAT < 10 min) aufweisen können. In mindestens einer Ausführungsform können die Modellausführungszeiten von der anfordernden Institution oder Entität gemessen werden und die Zeit für die Traversierung des Partnernetzes sowie die Ausführung auf einem Inferenzdienst beinhalten.
  • In mindestens einer Ausführungsform kann die Übertragung von Anfragen 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 einzelne Anwendungs-/Tenant-ID-Kombination in einer Warteschlange platziert und ein SDK entnimmt eine Anforderung aus einer Warteschlange und gibt eine Anforderung einer 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 eine asynchrone Kommunikation über eine Warteschlange nützlich sein, da sie es jeder Instanz einer Anwendung ermöglichen kann, Arbeit aufzunehmen, sobald sie verfügbar wird. Ergebnisse können über eine Warteschlange zurückübertragen werden, um sicherzustellen, dass keine Daten verloren gehen. In mindestens einer Ausführungsform können Warteschlangen auch eine Fähigkeit bereitstellen, Arbeit zu segmentieren, da Arbeit mit höchster Priorität an eine Warteschlange gehen kann, mit der die meisten Instanzen einer Anwendung verbunden sind, während Arbeit mit niedrigster Priorität an eine Warteschlange gehen kann, mit der nur eine einzelne Instanz verbunden ist, die Tasks in einer Reihenfolge verarbeitet, in der sie empfangen werden. 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 Inferenz an einer GPU ausfü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 Einsatz-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 Rendering-Effekte, wie etwa Raytracing, durch die Visualisierungsdienste 1420 umgesetzt werden, um bessere Visualisierungen zu generieren. In mindestens einer Ausführungsform können Visualisierungen ohne Einschränkung 2D-Bild-Renderings, 3D-Volumen-Renderings, 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, Filmgestaltungs- und/oder andere Wiedergabe- 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 Einsatzsystems 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 mit 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 auszuführen, und/oder um das Inferenzieren (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 Deep Learning-Aufgaben beinhalten. In mindestens einer Ausführungsform kann das Kl-System 1424 GPUs verwenden, und die Cloud 1426 - oder mindestens ein Teil, der mit Deep Learning oder Inferenz 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) umfassen, das zum Inferenzieren, Deep Learning, maschinellen Lernen und/oder für andere Aufgaben künstlicher Intelligenz konfiguriert ist. In mindestens einer Ausführungsform kann das Kl-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 Kt-basierten Verarbeitungsaufgaben des Systems 1400 umgesetzt sein.
  • In mindestens einer Ausführungsform kann die Cloud 1426 eine GPUbeschleunigte 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 oder mehrere Kl-Systeme 1424 zum Durchführen einer oder mehrerer der Kt-basierten Aufgaben des Systems 1400 (z. B. als Hardware-Abstraktion und Skalierungsplattform) beinhalten. In mindestens einer Ausführungsform kann die Cloud 1426 mit dem Anwendungsorchestrierungssystem 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 hierin beschrieben. In mindestens einer Ausführungsform kann die Cloud 1426 eine kleine und große Stapelinferenz ausführen (die beispielsweise TENSOR RT von NVIDIA ausführt), eine beschleunigte parallele Computer-API und -Plattform 1430 bereitstellen (z. B. CUDA von NVIDIA), das Anwendungsorchestrierungssystem 1428 ausführen (z. B. KUBERNETES), eine Grafikwiedergabe-API und -Plattform bereitstellen (z. B. für Raytracing, 2D-Grafik, 3D-Grafik und/oder andere Wiedergabetechniken, um eine bessere Filmgestaltung 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 hierin beschrieben. In mindestens einer Ausführungsform können verfeinerte Modelle 1512, die von dem Prozess 1500 generiert werden, von dem Einsatzsystem 1306 für eine oder mehrere Containeranwendungen in den Einsatz-Pipelines 1410 verwendet 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 Eingangsdaten, wie etwa eines Kundendatensatzes 1506 und/oder neuer grundlegender Referenzdaten, die mit den Eingangsdaten verknüpft sind) beinhalten. In mindestens einer Ausführungsform können zum erneuten Trainieren oder Aktualisieren des anfänglichen Modells 1504 eine oder mehrere Ausgangs- oder Verlustschichten des anfänglichen Modells 1504 zurückgesetzt oder gelöscht und/oder durch eine oder mehrere aktualisierte oder neue Ausgangs- oder Verlustschichten 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, sodass 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 Ausgangs- oder Verlustschichten des anfänglichen Modells 1504 zurückgesetzt oder ersetzt wurden, die Parameter für einen neuen Datensatz basierend auf Verlustberechnungen, die mit der Genauigkeit der Ausgangs- oder Verlustschicht(en) beim Generieren von Prädiktionen an einem neuen Kundendatensatz 1506 verknüpft 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 teilweise 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 enthalten 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 Einsatz-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, sodass 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. basierend auf der Patientendiversität, demographischen Daten, Arten von verwendeten medizinischen Bildgebungsvorrichtungen usw.). In mindestens einer Ausführungsform kann vor dem Bereitstellen eines vortrainierten Modells 1406 in der Einsatz-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 teilweise von Klinikern, Wissenschaftlern, Ärzten, praktischen Ärzten in einer Einrichtung (z. B. als beschriftete Klinikdaten 1312 aus 13) generiert werden.
  • In mindestens einer Ausführungsform kann eine KI-gestützte Annotation 1310 bei einigen Beispielen verwendet werden, um Ground-Truth-Daten zu generieren. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 1310 (z. B. unter Verwendung eines Kl-gestützten Annotations-SDK umgesetzt) maschinelle Lernmodelle (z. B. neuronale Netze) nutzen, um vorgeschlagene oder vorhergesagte Ground-Truth-Daten 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 (GUI)) an der Computervorrichtung 1508 verwenden.
  • In mindestens einer Ausführungsform kann der Benutzer 1510 mit einer GUI über die Computervorrichtung 1508 interagieren, um (automatische) Annotationen zu bearbeiten oder fein abzustimmen. In mindestens einer Ausführungsform kann ein Polygonbearbeitungsmerkmal verwendet werden, um Vertices eines Polygons an genauere oder feiner abgestimmte Stellen zu verschieben.
  • In mindestens einer Ausführungsform, sobald der Kundendatensatz 1506 grundlegende Referenzdaten verknüpft hat, können die Ground-Truth-Daten (z. B. aus einer Kl-gestü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 Einsatz-Pipelines 1410 in einer Einrichtung zum Durchführen einer oder mehrerer Verarbeitungsaufgaben mit 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, sodass 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-gestützte Annotations-Tools 1536 basierend auf 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 unbearbeiteten Bildern 1534 (z. B. in einem 3D-MRT 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 Ground-Truth-Daten zum Training verwendet werden. In mindestens einer Ausführungsform, wenn die Rechenvorrichtung 1508 extreme Punkte für eine KI-gestützte Annotation 1310 sendet, kann ein Deep Learning-Modell 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-gestütztes Annotations-Tool 1536B in 15B, verbessert werden, indem API-Abrufe (z. B. ein API-Abruf 1544) an einen Server, wie etwa einen Annotationsassistenzserver 1540, der eine Menge 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 Deep Learning-Modelle), die vortrainiert werden, um eine Klgestützte Annotation an einem bestimmten Organ oder einer Anomalie durchführen. Diese Modelle können ferner unter Verwendung der Trainings-Pipelines 1404 aktualisiert werden. In mindestens einer Ausführungsform können vorinstallierte Annotations-Tools im Verlauf der Zeit verbessert werden, wenn neue beschriftete klinische Daten 1312 hinzugefügt werden.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten bestimmt werden, zu einer einzigen Darstellung zusammenzusetzen.
  • AUTOMATISIERTE TECHNOLOGIE
  • 16A 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 16A als über einen Bus 1602 verbunden veranschaulicht. In mindestens einer Ausführungsform kann der Bus 1602 ohne Einschränkung eine CAN-Datenschnittstelle (hierin alternativ als „CAN-Bus“ bezeichnet) beinhalten. 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 so konfiguriert sein, dass er Dutzende oder sogar Hunderte von Knoten aufweist, jeder mit seiner eigenen eindeutigen Kennung (z. B. eine CAN-ID). In mindestens einer Ausführungsform kann der Bus 1602 ausgelesen werden, um den Lenkradwinkel, Grundgeschwindigkeit, die Umdrehungen des Motors pro Minute (revolutions per minute - „RPMs“), Tastenpositionen und/oder andere Fahrzeugstatusindikatoren 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 kann 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 einer beliebigen Anzahl von einem System auf einem Chip/Systemen auf Chips („SoC(s)“) 1604, jede der Steuerung(en) 1636 und/oder jeder Computer im 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 eine oder mehrere Steuerung(en) 1636 beinhalten, wie etwa diejenigen, die hierin in Bezug auf 1A beschrieben sind. Die Steuerung(en) 1636 können für eine Vielfalt von Funktionen verwendet werden. In mindestens einer Ausführungsform können die Steuerung(en) 1636 mit beliebigen von verschiedenen anderen Komponenten und Systemen des Fahrzeugs 1600 gekoppelt sein und können zur Steuerung des Fahrzeugs 1600, der künstlichen Intelligenz des Fahrzeugs 1600, des Infotainment 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 das/die SoC(s) 1604 zur Steuerung 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. System des Fahrzeugs 1600) mit einer hochauflösenden (High Definition - „HD“) Karte 1622 kombiniert werden, die Kartenauffrischungen und/oder -aktualisierungen über die Netzschnittstelle 1624 von einem oder mehreren Servern (in 16A nicht gezeigt) erlangen kann.
  • In mindestens einer Ausführungsform können die CPU(s) 1606 einen CPU-Cluster oder CPU-Komplex (hierin 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 können in mindestens einer Ausführungsform die CPU(s) 1606 acht Kerne in einer kohärenten Mehrprozessorkonfiguration beinhalten. In mindestens einer Ausführungsform können die CPU(s) 1606 vier Doppelkerncluster beinhalten, wobei jeder Cluster über einen dedizierten L2-Cache verfügt (z. B. einen L2-Cache mit 2 MB). In mindestens einer Ausführungsform können die CPU(s) 1606 (z. B. CCPLEX) so konfiguriert sein, dass sie den simultanen Clusterbetrieb unterstützen, sodass 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-lnterrupt(„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 können die CPU(s) 1606 ferner einen erweiterten Algorithmus zur Verwaltung von Leistungsstatus implementieren, bei dem zulässige Leistungsstatus und erwartete Aufwachzeiten spezifiziert werden und die Hardware/der Mikrocode den besten Leistungsstatus bestimmt, in den für einen Kern, einen Cluster und einen CCPLEX einzutreten ist. In mindestens einer Ausführungsform können die Verarbeitungskerne vereinfachte Leistungszustand-Eintrittssequenzen in Software unterstützen, wobei Arbeit an Mikrocode abgeladen wird.
  • In mindestens einer Ausführungsform können die GPU(s) 1608 eine integrierte GPU (hierin alternativ als „iGPU“ bezeichnet) beinhalten. In mindestens einer Ausführungsform können die GPU(s) 1608 programmierbar sein und für parallele Arbeitslasten effizient sein. In mindestens einer Ausführungsform können die GPU(s) 1608 einen erweiterten Tensor-Anweisungssatz verwenden. In mindestens einer Ausführungsform 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 können die GPU(s) 1608 mindestens acht Streaming-Mikroprozessoren beinhalten. In mindestens einer Ausführungsform können die GPU(s) 1608 (eine) Berechnungs-Anwendungsprogrammierschnittstelle(n) (API(s)) verwenden. In mindestens einer Ausführungsform können die GPU(s) 1608 eine oder mehrere Parallelrechenplattformen 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 Performance in Automobil- 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 jeder Streaming-Mikroprozessor eine Anzahl von Verarbeitungskernen mit gemischter Genauigkeit beinhalten, die in mehrere Blöcke partitioniert sind. Zum Beispiel und ohne Einschränkung könnten 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke partitioniert sein. In 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 Deep-Learning-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 Streaming-Mikroprozessoren unabhängige parallele Integer- 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 Streaming-Mikroprozessoren eine unabhängige Thread-Planungsfähigkeit beinhalten, um eine feinkörnigere Synchronisation und Kooperation zwischen parallelen Threads zu ermöglichen. In mindestens einer Ausführungsform können Streaming-Mikroprozessoren eine kombinierte Einheit aus L1-Daten-Cache und gemeinsam genutztem Speicher beinhalten, um die Rechenleistung zu verbessern, während die Programmierung vereinfacht wird.
  • In mindestens einer Ausführungsform können eine oder mehrere der GPU(s) 1608 einen Speicher mit hoher Bandbreite („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 zum HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher („SGRAM“) verwendet werden, z. B. ein synchroner Grafik-Double-Data-Rate-Typ-Fünf-Direktzugriffsspeicher („GDDR5“).
  • In mindestens einer Ausführungsform können die GPU(s) 1608 eine einheitliche Speichertechnologie beinhalten. In mindestens einer Ausführungsform kann die Unterstützung von Adressübersetzungsdiensten (address translation services - „ATS“) verwendet werden, um zu ermöglichen, dass die GPU(s) 1608 direkt auf Seitentabellen von CPU(s) 1606 zugreifen. In mindestens einer Ausführungsform kann, wenn die Speicherverwaltungseinheit („MMU“) der GPU(s) 1608 eine Auslassung erleidet, eine Adressübersetzungsanforderung an die CPU(s) 1606 übertragen werden. Als Reaktion darauf 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 übertragen. In mindestens einer Ausführungsform kann die einheitliche Speichertechnologie einen einzelnen einheitlichen virtuellen Adressraum für den 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 können die GPU(s) 1608 eine beliebige Anzahl von Zugriffszählern beinhalten, welche die Häufigkeit des Zugriffs der GPU(s) 1608 auf den Speicher anderer Prozessoren verfolgen können. In mindestens einer Ausführungsform 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 ein oder mehrere der SoC(s) 1604 eine beliebige Anzahl von Cache(s) 1612 beinhalten, einschließlich der hierin beschriebenen. In mindestens einer Ausführungsform könnten der/die Cache(s) 1612 beispielsweise 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 können der/die Cache(s) 1612 einen Rückschreib-Cache beinhalten, der die Status von Zeilen verfolgen kann, wie z. B. durch die 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 ein 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 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 könnte der/könnten die Beschleuniger 1614 für zielgerichtete Arbeitslasten (z. B. Wahrnehmung, neuronale Faltungsnetze (convolutional neural networks - „CNNs“), rekurrente neuronale Netze (recurrent neural networks - „RNNs“) usw.) verwendet werden, die stabil genug sind, um für eine Beschleunigung geeignet zu sein. In mindestens einer Ausführungsform kann ein CNN regionsbasierte oder regionale neuronale Faltungsnetze (regional convolutional neural networks - „RCNNs“) und schnelle RCNNs (wie z. B. für die Objektdetektion verwendet) oder einen anderen Typ von CNN beinhalten.
  • In mindestens einer Ausführungsform können der/die Beschleuniger 1614 (z. B. Hardware-Beschleunigungscluster) (einen) Deep-Learning-Beschleuniger (deep learning accelerator(s) - „DLA(s)“) beinhalten. DLA(s) können ohne Einschränkung eine oder mehrere Tensor-Verarbeitungseinheiten („TPU(s)“) beinhalten, die so konfiguriert sein können, dass sie zusätzliche zehn Billionen Vorgänge pro Sekunde für Deep-Learning-Anwendungen und -Ableitung bereitstellen. In mindestens einer Ausführungsform 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. DLA(s) können ferner für einen spezifischen Satz von Arten von neuronalen Netzen und Fließkommavorgängen sowie für die Ableitung optimiert sein. In mindestens einer Ausführungsform kann die Ausgestaltung der DLA(s) mehr Rechenleistung pro Millimeter bereitstellen als eine typische Universal-GPU und sie übertrifft typischerweise die Rechenleistung einer CPU bei weitem. In mindestens einer Ausführungsform können die TPU(s) mehrere Funktionen durchführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die zum Beispiel INT8-, INT16- und FP16-Datentypen sowohl für Merkmale als auch für Gewichtungen unterstützt, sowie Postprozessorfunktionen. In mindestens einer Ausführungsform können DLA(s) neuronale Netze, insbesondere CNNs, an verarbeiteten oder unverarbeiteten Daten für eine Vielfalt von Funktionen schnell und effizient ausführen, darunter zum Beispiel und ohne Einschränkung: ein CNN für die Identifizierung und Erkennung von Objekten unter Verwendung von Daten von Kamerasensoren; ein CNN für die Abstandsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN für die Erkennung und Identifizierung und Erkennung von Einsatzfahrzeugen unter Verwendung von Daten von Mikrofonen 1696; ein CNN für die Gesichtserkennung und Identifizierung von Fahrzeugbesitzern unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheitsrelevante Ereignisse.
  • In mindestens einer Ausführungsform können DLA(s) eine beliebige Funktion von GPU(s) 1608 durchführen und durch die Verwendung eines Ableitungsbeschleunigers kann ein Designer beispielsweise entweder DLA(s) oder GPU(s) 1608 für eine beliebige Funktion anvisieren. In mindestens einer Ausführungsform kann der Designer beispielsweise die Verarbeitung von CNNs und Fließkommaoperationen auf DLA(s) konzentrieren und andere Funktionen der/den GPU(s) 1608 und/oder anderen Beschleuniger(n) 1614 überlassen.
  • In mindestens einer Ausführungsform können der/die Beschleuniger 1614 (z. B. Hardware-Beschleunigungscluster) (einen) programmierbare(n) Sichtbeschleuniger (programmable vision accelerator - „PVA“) beinhalten, der hierin alternativ als ein Beschleuniger für maschinelles Sehen bezeichnet werden kann. In mindestens einer Ausführungsform können PVA(s) zur Beschleunigung von Algorithmen des maschinellen Sehens für weiterentwickelte Fahrerassistenzsysteme („ADAS“) 1638, autonomes Fahren, Augmented-Reality(„AR“)-Anwendungen und/oder Virtual-Reality(„VR“)-Anwendungen konstruiert und konfiguriert sein. PVA(s) können ein Gleichgewicht zwischen Performance und Flexibilität bereitstellen. In mindestens einer Ausführungsform können alle PVA(s) beispielsweise und ohne Einschränkung eine beliebige Anzahl von Reduced-lnstruction-Set-Computer(„RISC“)-Kerne, 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 hierin beschriebenen Kameras), 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 RISC-Kerne in Abhängigkeit von der Ausführungsform ein beliebiges von einer Reihe von Protokollen verwenden. In mindestens einer Ausführungsform können RISC-Kerne ein Echtzeitbetriebssystem (real-time operating system - „RTOS“) ausführen. In mindestens einer Ausführungsform können 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 Algorithmen des maschinellen Sehens 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, 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 digitalen Signalprozessor beinhalten, wie z. B. einen digitalen Single-Instruction-Multiple-Data(„SIMD“)-Very-Long-Instruction-Word(„VLIW“)-Signalprozessor. 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 gekoppelt sein. Daher kann in mindestens einer Ausführungsform jeder der Vektorprozessoren so konfiguriert sein, dass er unabhängig von anderen Vektorprozessoren ausgeführt wird. In mindestens einer Ausführungsform können Vektorprozessoren, die in einem konkreten PVA enthalten sind, so konfiguriert sein, dass sie Datenparallelität einsetzen. Zum Beispiel kann in mindestens einer Ausführungsform eine Vielzahl von Vektorprozessoren, die in einem einzelnen PVA enthalten ist, denselben Algorithmus des maschinellen Sehens ausführen, jedoch an unterschiedlichen Regionen eines Bildes. In mindestens einer Ausführungsform können die in einem konkreten PVA enthaltenen Vektorprozessoren simultan unterschiedliche Algorithmen des maschinellen Sehens an demselben Bild ausführen oder sogar unterschiedliche Algorithmen an sequentiellen Bildern oder Abschnitten eines Bildes ausführen. In mindestens einer Ausführungsform kann unter anderem eine beliebige Anzahl von PVAs in einem Hardware-Beschleunigungscluster enthalten sein und kann eine beliebige Anzahl von Vektorprozessoren in jedem der PVAs enthalten sein. In mindestens einer Ausführungsform können der/die PVA(s) einen zusätzlichen Fehlerkorrekturcode(„ECC“)-Speicher beinhalten, um die Gesamtsystemsicherheit zu erhöhen.
  • In mindestens einer Ausführungsform können der/die Beschleuniger 1614 (z. B. ein Hardware-Beschleunigungscluster) ein Netzwerk auf dem Chip für maschinelles Sehen 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 z. B. 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 Schnittstelle für einen weiterentwickelten Peripheriebus (advanced peripheral bus - „APB“), eine Konfigurationsschaltung, eine Steuerung und einen Multiplexer beinhalten. In mindestens einer Ausführungsform kann ein beliebiger Typ 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 Netzwerk auf dem Chip für maschinelles Sehen beinhalten, das den PVA und DLA mit dem Speicher verbindet (z. B. unter Verwendung von APB).
  • In mindestens einer Ausführungsform kann das Netzwerk auf dem Chip für maschinelles Sehen 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 Übertragen von Steuersignalen/Adressen/Daten sowie Burst-artige Kommunikation für eine kontinuierliche Datenübermittlung bereitstellen. In mindestens einer Ausführungsform kann eine Schnittstelle mit den Standards International Organization for Standardization („ISO“) 26262 oder International Electrotechnical Commission („IEC“) 61508 konform sein, obwohl andere Standards und Protokolle verwendet werden können.
  • In mindestens einer Ausführungsform können ein oder mehrere der SoC(s) 1604 einen Echtzeitstrahlverfolgungs-Hardware-Beschleuniger beinhalten. In mindestens einer Ausführungsform kann der Echtzeitstrahlverfolgungs-Hardware-Beschleuniger verwendet werden, um schnell und effizient Positionen und Ausdehnungen von Objekten (z. B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeitvisualisierungssimulationen zu erzeugen, für die RADAR-Signalinterpretation, für die Schallausbreitungssynthese und/oder -analyse, für die Simulation von SONAR-Systemen, für die allgemeine Wellenausbreitungssimulation, für den Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder für andere Funktionen und/oder für andere Verwendungen.
  • In mindestens einer Ausführungsform 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 Performance für halbdichte oder dichte reguläre Berechnungen, auch an kleinen Datensätzen, die vorhersagbare Laufzeiten mit niedriger Latenz und niedriger Leistung benötigen. In mindestens einer Ausführungsform sind in autonomen Fahrzeugen, wie etwa dem Fahrzeug 1600, PVAs für die Ausführung klassischer Algorithmen für maschinelles Sehen konstruiert, da diese effizient bei der Objekterkennung sind und mit Integer-Mathematik arbeiten.
  • Zum Beispiel, gemäß mindestens einer Ausführungsform der Technologie, wird der PVA verwendet, um maschinelles Stereo-Sehen 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 das autonome Fahren auf Level 3-5 Bewegungsschätzung/Stereo-Abgleich spontan (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrspurdetektion usw.). In mindestens einer Ausführungsform kann der PVA eine Funktion des maschinellen Stereo-Sehens 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 Netzwerk auszuführen, um die Steuerung und Fahrsicherheit zu verbessern, einschließlich zum Beispiel und ohne Einschränkung ein neuronales Netz, das ein Maß an Konfidenz für jede Objekterkennung ausgibt. In mindestens einer Ausführungsform kann die Konfidenz als Wahrscheinlichkeit dargestellt oder interpretiert werden oder als Bereitstellung einer relativen „Gewichtung“ jeder Detektion im Vergleich zu anderen Detektionen. 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 Notbrems(automatic emergency braking - „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 Detektionen 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 etwa die Abmessungen des Begrenzungsrahmens, die (z. B. von einem anderen Teilsystem) erhaltene Bodenebenenschätzung, die Ausgabe von IMU-Sensor(en) 1666, die mit der Ausrichtung des Fahrzeugs 1600 korreliert, den Abstand, die 3D-Positionsschätzungen des Objekts, die vom neuronalen Netz und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 1664 oder RADAR-Sensor(en) 1660) erhalten werden, usw.
  • In mindestens einer Ausführungsform können ein 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 speichern kann, die auf der/den GPU(s) 1608 und/oder dem DLA ausgeführt werden sollen. In mindestens einer Ausführungsform kann die Kapazität des/der Datenspeicher(s) 1616 groß genug sein, um mehrere Instanzen von neuronalen Netzen zur Redundanz und Sicherheit zu speichern. In mindestens einer Ausführungsform kann der/können die Datenspeicher 1616 L2- oder L3-Cache(s) umfassen.
  • In mindestens einer Ausführungsform können ein oder mehrere der SoC(s) 1604 eine beliebige Anzahl von Prozessor(en) 1610 (z. B. eingebettete Prozessoren) beinhalten. In mindestens einer Ausführungsform können der/die Prozessor(en) 1610 einen Booting- und Leistungsverwaltungsprozessor beinhalten, der ein dedizierter Prozessor und ein Teilsystem sein 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 Status mit niedriger Leistung, Verwaltung von Thermik und Temperatursensoren des/der SoC(s) 1604 und/oder Verwaltung von Leistungsstatus des/der SoC(s) 1604 bereitstellen. In mindestens einer Ausführungsform kann jeder Temperatursensor als Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und können das/die SoC(s) 1604 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 den/die SoC(s) 1604 in einen Status 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 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 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 Unterbrechungssteuerungen), verschiedene E/A-Steuerungsperipheriegeräte und Routing-Logik beinhalten.
  • In mindestens einer Ausführungsform 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 Unterbrechungssteuerung usw.) und/oder Routing-Logik beinhalten. In einem Sicherheitsmodus können zwei oder mehr Kerne in mindestens einer Ausführungsform in einem Gleichschrittmodus arbeiten und als ein einzelner Kern mit einer Vergleichslogik funktionieren, um beliebige Unterschiede zwischen ihren Vorgängen zu erkennen. In mindestens einer Ausführungsform können der/die Prozessor(en) 1610 ferner eine Echtzeitkamera-Engine beinhalten, die ohne Einschränkung ein dediziertes Prozessorteilsystem zur Handhabung der Echtzeitkameraverwaltung beinhalten kann. In mindestens einer Ausführungsform 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 Kameraverarbeitungspipeline ist.
  • In mindestens einer Ausführungsform 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 Bildes 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 werden. In mindestens einer Ausführungsform kann, wenn die GPU(s) 1608 eingeschaltet sind und aktiv 3D-Rendering durchführen, der Videobildkompositor verwendet werden, um die GPU(s) 1608 zu entlasten, um die Performance und Reaktionsfähigkeit zu verbessern.
  • In mindestens einer Ausführungsform können ein oder mehrere der SoC(s) 1604 ferner eine serielle Mobile-lndustry-Processor-lnterface(„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 ein oder mehrere der SoC(s) 1604 ferner (eine) Eingabe/Ausgabe-Steuerung(en) 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 zugewiesen sind.
  • In mindestens einer Ausführungsform können ein oder mehrere der SoC(s) 1604 ferner eine breite Palette von Peripherieschnittstellen beinhalten, um die Kommunikation mit Peripheriegeräten, Audiocodierern/-decodierern („Codecs“), Leistungsverwaltungs- und/oder anderen Vorrichtungen zu ermöglichen. SoC(s) 1604 können verwendet werden, um Daten von Kameras (z. B. über Gigabit Multimedia Serial Link und Ethernet verbunden), Sensoren (z. B. LIDAR-Sensor(en) 1664, RADAR-Sensor(en) 1660 usw., die über Ethernet verbunden sein können), Daten vom Bus 1602 (z. B. Geschwindigkeit des Fahrzeugs 1600, Lenkradposition usw.), Daten von GNSS-Sensor(en) 1658 (z. B. über Ethernet oder CAN-Bus verbunden) usw. zu verarbeiten. In mindestens einer Ausführungsform können ein oder mehrere der SoC(s) 1604 ferner dedizierte Massenspeichersteuerungen mit hoher Performance beinhalten, die ihre eigenen DMA-Engines beinhalten können und die verwendet werden können, um CPU(s) 1606 von routinemäßigen Datenverwaltungs-Tasks zu befreien.
  • In mindestens einer Ausführungsform können das/die SoC(s) 1604 eine Endezu-Ende-Plattform mit einer flexiblen Architektur sein, welche die Automatisierungslevels 3-5 überspannt und dadurch eine umfassende funktionelle Sicherheitsarchitektur bereitstellt, die Techniken des maschinellen Sehens und des ADAS für Diversität und Redundanz nutzt und effizient einsetzt und eine Plattform für einen flexiblen, zuverlässigen Fahrsoftwarestapel zusammen mit Deep-Learning-Werkzeugen bereitstellt. In mindestens einer Ausführungsform können das/die SoC(s) 1604 schneller, zuverlässiger und sogar energieeffizienter und raumeffizienter 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 Levels 3-5 bereitstellen.
  • In mindestens einer Ausführungsform können Algorithmen des maschinellen Sehens auf CPUs ausgeführt werden, die unter Verwendung einer Programmiersprache auf hohem Level, wie z. B. der Programmiersprache C, konfiguriert werden können, um eine große Vielfalt von Verarbeitungsalgorithmen über eine große Vielfalt von visuellen Daten auszuführen. In mindestens einer Ausführungsform sind die CPUs jedoch oft nicht dazu in der Lage, die Rechenleistungsanforderungen vieler Anwendungen des maschinellen Sehens zu erfüllen, wie zum Beispiel in Bezug auf die Ausführungszeit und den Leistungsverbrauch. In mindestens einer Ausführungsform sind viele CPUs nicht dazu in der Lage, komplexe Objektdetektionsalgorithmen in Echtzeit auszuführen, die in fahrzeuginternen ADAS-Anwendungen und in praktischen autonomen Fahrzeugen der Levels 3-5 verwendet werden.
  • Die hierin beschriebenen Ausführungsformen ermöglichen es, dass mehrere neuronale Netze simultan und/oder sequentiell ausgeführt und die Ergebnisse miteinander kombiniert werden, um eine autonome Fahrfunktionalität der Levels 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. 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 enthalten, 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, z. B. für das Fahren bei Level 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 eingesetzten 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 eingesetzten neuronalen Netz interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass, wenn blinkende Lichter erkannt werden, Vereisungen vorliegen. In mindestens einer Ausführungsform kann ein blinkendes Licht identifiziert werden, indem ein drittes eingesetztes neuronales Netz über mehrere Frames hinweg betrieben wird und die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Nichtvorhandensein) von blinkenden Lichtern informiert. In mindestens einer Ausführungsform können alle drei neuronalen Netze simultan laufen, z. B. innerhalb des DLA und/oder auf GPU(s) 1608.
  • In mindestens einer Ausführungsform kann ein CNN zur Gesichtserkennung und Fahrzeugbesitzeridentifizierung Daten von Kamerasensoren verwenden, um das Vorhandensein 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 das/die SoC(s) 1604 Sicherheit gegen 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 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 Hilde des Ultraschallsensor/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 z. B. einen X86-Prozessor beinhalten. Die CPU(s) 1618 können dazu verwendet werden, eine beliebige einer Vielfalt von Funktionen durchzuführen, z. B. die Vermittlung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und SoC(s) 1604 und/oder die Überwachung des Status und Zustands der Steuerung(en) 1636 und/oder eines Infotainmentsystems auf einem Chip („infotainment-SoC“) 1630.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 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 können. In mindestens einer Ausführungsform 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 können zum Trainieren und/oder Aktualisieren neuronaler Netze verwendet werden, die zumindest teilweise auf Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 1600 basieren.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner eine Netzwerkschnittstelle 1624 beinhalten, die ohne Einschränkung (eine) 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. Eine 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 Geschwindigkeitsregelungsfunktionalitä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 der/den Steuerung(en) 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 vom Basisband auf die Hochfrequenz und die Abwärtskonvertierung von der Hochfrequenz auf das Basisband beinhalten. In mindestens einer Ausführungsform können Frequenzkonvertierungen auf eine beliebige technisch machbare Weise durchgeführt werden. Frequenzkonvertierungen könnten zum Beispiel durch hinreichend bekannte Prozesse und/oder unter Verwendung von Überlagerungsprozessen 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) Datenspeicher 1628 beinhalten, der ohne Einschränkung chipexternen (z. B. außerhalb des/der SoC(s) 1604) Speicher beinhalten kann. In mindestens einer Ausführungsform können der/die Datenspeicher 1628 ohne Einschränkung ein oder mehrere Speicherelemente beinhalten, darunter RAM, SRAM, dynamischer Direktzugriffsspeicher („DRAM“), Video-Direktzugriffsspeicher („VRAM“), Flash, Festplatten und/oder andere Komponenten und/oder Vorrichtungen, die mindestens ein Datenbit speichern können.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner (einen) GNSS-Sensor(en) 1658 (z. B. GPS- und/oder unterstützte GPS-Sensoren) beinhalten, um bei der Kartierung, Wahrnehmung, Erzeugung des Belegungsgitters und/oder Pfadplanungsfunktionen zu helfen. In mindestens einer Ausführungsform kann eine beliebige Anzahl von GNSS-Sensor(en) 1658 verwendet werden, zum Beispiel und ohne Einschränkung ein GPS unter Verwendung eines USB-Steckers mit einer Ethernet-zu-Seriell(z. B. RS-232)-Brücke.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner RADAR-Sensor(en) 1660 beinhalten. Der/die RADAR-Sensor(en) 1660 können vom 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-Funktionssicherheitslevel ASIL B sein. Der/die RADAR-Sensor(en) 1660 können CAN und/oder den Bus 1602 (z. B. zur Übertragung der von dem/den RADAR-Sensor(en) 1660 erzeugten 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 die RADAR-Sensor(en) 1660 für die Verwendung als Front-, Heck- und Seiten-RADAR geeignet sein. In mindestens einer Ausführungsform sind einer oder mehrere des/der RADAR-Sensor(en) 1660 Puls-Doppler-RADAR-Sensor(en).
  • In mindestens einer Ausführungsform können die RADAR-Sensor(en) 1660 unterschiedliche Konfigurationen beinhalten, wie etwa mit großer Reichweite und schmalem Sichtfeld, mit geringer Reichweite und breitem Sichtfeld, mit seitlicher Abdeckung mit kurzer Reichweite usw. In mindestens einer Ausführungsform kann das RADAR mit großer Reichweite für die adaptive Geschwindigkeitssteuerungsfunktionalität 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 der/die RADAR-Sensor(en) 1660 dabei helfen, zwischen statischen und sich bewegenden Objekten zu unterscheiden, und können vom ADAS-System 1638 für den Notbremsassistenten und die Vorwärtskollisionswarnung verwendet werden. Der/die Sensor(en) 1660, die in einem RADAR-System mit großer Reichweite enthalten sind, 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 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 Fahrspurwechsel verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner (einen) Ultraschallsensor(en) 1662 beinhalten. Der/die Ultraschallsensor(en) 1662, die vorne, hinten und/oder an den Seiten des Fahrzeugs 1600 positioniert sein können, 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 Ultraschallsensor(en) 1662 verwendet werden und können unterschiedliche Ultraschallsensor(en) 1662 können für unterschiedliche Erkennungsreichweiten (z. B. 2,5 m, 4 m) verwendet werden. In mindestens einer Ausführungsform können der/die Ultraschallsensor(en) 1662 bei funktionellen Sicherheitslevels 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 können zur Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder andere Funktionen verwendet werden. In mindestens einer Ausführungsform können der/die LIDAR-Sensor(en) 1664 dem funktionellen Sicherheitslevel 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 können der/die LIDAR-Sensor(en) 1664 in der Lage sein, eine Liste von Objekten und deren Abstände für ein 360-Grad-Sichtfeld bereitzustellen. In mindestens einer Ausführungsform können handelsübliche 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 können der/die LIDAR-Sensor(en) 1664 als eine kleine Vorrichtung implementiert werden, das in die Front, das Heck, die Seiten und/oder die Ecken des Fahrzeugs 1600 eingebettet werden kann. In mindestens einer Ausführungsform können der/die LIDAR-Sensor(en) 1664 in einer solchen 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 können der/die an der Front montierte(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 etwa 3D-Flash-LIDAR, verwendet werden. 3D-Flash-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 umfasst eine Flash-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 Flash-LIDAR ermöglichen, dass mit jedem Laserblitz hochgenaue und verzeichnungsfreie Bilder der Umgebung erzeugt werden. In mindestens einer Ausführungsform können vier Flash-LIDAR-Sensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 1600. In mindestens einer Ausführungsform beinhalten 3D-Flash-LIDAR-Systeme ohne Einschränkung eine Festkörper-3D-Staring-Array-LIDAR-Kamera ohne bewegliche Teile außer einem Lüfter (z. B. eine nicht scannende LIDAR-Vorrichtung). In mindestens einer Ausführungsform können die Flash-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 können der/die IMU-Sensor(en) 1666 in mindestens einer Ausführungsform in der Mitte der Hinterachse des Fahrzeugs 1600 angeordnet sein. In mindestens einer Ausführungsform 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 etwa bei sechsachsigen Anwendungen, können der/die IMU-Sensor(en) 1666 ohne Einschränkung Beschleunigungsmesser und Gyroskope beinhalten. In mindestens einer Ausführungsform, wie etwa bei neunachsigen Anwendungen, 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 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 können die IMU-Sensor(en) 1666 und 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, die im und/oder um das Fahrzeug 1600 herum platziert sind. In mindestens einer Ausführungsform können das/die Mikrofon(e) 1696 unter anderem zur Erkennung und Identifizierung von Einsatzfahrzeugen verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner eine beliebige Anzahl von Kameratypen beinhalten, darunter Stereokamera(s) 1668, Weitsichtkamera(s) 1670, Infrarotkamera(s) 1672, Rundumkamera(s) 1674, Langstreckenkamera(s) 1698, Mittelstreckenkamera(s) 1676 und/oder andere Kameratypen. In mindestens einer Ausführungsform können Kameras verwendet werden, um Bilddaten um die gesamte Peripherie des Fahrzeugs 1600 herum 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 notwendige Abdeckung um das Fahrzeug 1600 herum bereitzustellen. 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) hierin bereits in Bezug auf 16A und 16B detaillierter beschrieben.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner Vibrationssensor(en) 1642 beinhalten. In mindestens einer Ausführungsform können die Vibrationssensor(en) 1642 Schwingungen von Komponenten des Fahrzeugs 1600, wie etwa Achse(n), messen. Zum Beispiel können in mindestens einer Ausführungsform Änderungen der Schwingungen eine Änderung des Straßenbelags angeben. In mindestens einer Ausführungsform, wenn zwei oder mehr Vibrationssensoren 1642 verwendet werden, können die Unterschiede zwischen den Vibrationen verwendet werden, um die Reibung oder den Schlupf des Straßenbelags zu bestimmen (z. B., wenn der Unterschied der Vibration 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 autonomen/adaptiven/automatischen Geschwindigkeitssteuerungs(autonomous/adaptive/automatic cruise control - „ACC“)-Systems, eines kooperativen adaptiven Geschwindigkeitssteuerungs(cooperative adaptive cruise control - „CACC“)-Systems, eines Vorwärtszusammenstoßwarn(forward crash warning - „FCW“)-Systems, eines automatischen Notbrems(„AEB“)-Systems, eines Spurverlassenswarn(lane departure warning - „LDW“)-Systems, eines Spurhalteassistenz(lane keep assist - „LKA“)-Systems, eines Totwinkelwarn(blind spot warning - „BSW“)-Systems, eines Querverkehrswarn(rear cross-traffic warning - „RCTW“)-Systems, eines Kollisionswarn(collision warning - „CW“)-Systems, eines Spurzentrierungs(lane centering - „LC“)-Systems und/oder anderer Systeme, Merkmale und/oder Funktionen beinhalten.
  • In mindestens einer Ausführungsform kann das ACC-System RADAR-Sensor(en) 1660, LIDAR-Sensor(en) 1664 und/oder eine beliebige Anzahl von Kamera(s) verwenden. In mindestens einer Ausführungsform kann das ACC-System ein Längs-ACC-System und/oder ein Quer-ACC-System beinhalten. In mindestens einer Ausführungsform überwacht und steuert das Längs-ACC-System den Abstand zum Fahrzeug, das sich unmittelbar vor dem Fahrzeug 1600 befindet, und passt die Geschwindigkeit des Fahrzeugs 1600 automatisch an, um einen sicheren Abstand zu vorausfahrenden Fahrzeugen einzuhalten. In mindestens einer Ausführungsform führt das Quer-ACC-System eine Abstandshaltung durch und rät dem Fahrzeug 1600, die Fahrspuren zu wechseln, wenn dies erforderlich ist. In mindestens einer Ausführungsform ist die Quer-ACC 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 Verknüpfungen durch eine Fahrzeug-zu-Fahrzeug- (vehicle-to-vehicle - „V2V“-) Kommunikationsverknüpfung bereitgestellt werden, während indirekte Verknüpfungen durch eine Infrastruktur-zu-Fahrzeug- (infrastructure-to-vehicle - „I2V“-) Kommunikationsverknüpfung 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 l2V-Kommunikationskonzept Informationen über den weiter entfernt vorausfahrenden Verkehr bereitstellt. In mindestens einer Ausführungsform kann das CACC-System entweder eine oder beide der 12V- 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, den Gleichmäßigkeit des Verkehrsfluss zu verbessern und Staus auf der Straße zu reduzieren.
  • In mindestens einer Ausführungsform ist das FCW-System so konstruiert, dass es den Fahrer vor einer Gefahr warnt, sodass der Fahrer eine korrigierend Handlung durchführen kann. In mindestens einer Ausführungsform verwendet das FCW-System eine nach vorn gerichtete Kamera und/oder RADAR-Sensor(en) 1660, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie etwa 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 Abstandsparameters eine korrigierende Handlung durchführt. In mindestens einer Ausführungsform kann das AEB-System nach vorn gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1660 verwenden, die mit einem 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, um eine korrigierende Handlung durchzuführen, um eine Kollision zu vermeiden, und, wenn der Fahrer keine korrigierenden Handlung durchführt, kann das AEB-System automatisch die Bremsen in dem Bestreben betätigen, die Auswirkungen der vorhergesagten Kollision zu verhindern oder mindestens abzuschwächen. In mindestens einer Ausführungsform kann das AEB-System Techniken, wie zum Beispiel 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 Betätigen des Blinkers angibt. In mindestens einer Ausführungsform kann das LDW-System nach vorne gerichtete Kameras verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie z. B. einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente. 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 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 den Blinker betätigt. In mindestens einer Ausführungsform kann das BSW-System nach hinten gerichtete Kamera(s) und/oder RADAR-Sensor(en) 1660 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie etwa 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ärts fährt. 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 dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, die elektrisch mit einer Rückmeldung des Fahrers gekoppelt sind, wie etwa 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. einer ersten Steuerung 1636 oder einer zweiten Steuerung 1636) zu beachten ist. In mindestens einer Ausführungsform kann das ADAS-System 1638 beispielsweise ein Backup- und/oder sekundärer Computer sein, der Wahrnehmungsinformationen für ein Rationalitätsmodul eines Backup-Computers 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 so konfiguriert sein, dass sie ein neuronales Netz/neuronale Netze ausführt, das/die so trainiert und konfiguriert ist/sind, dass es/sie mindestens teilweise basierend auf den Ausgaben des primären Computers und des sekundären Computers die Bedingungen bestimmt/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 etwa 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 assoziiertem Speicher geeignet ist. In mindestens einer Ausführungsform kann die Kontroll-MCU eine Komponente eines oder mehrerer SoC(s) 1604 umfassen und/oder als solche enthalten sein.
  • In mindestens einer Ausführungsform kann das ADAS-System 1638 einen sekundären Computer beinhalten, der die ADAS-Funktionalität unter Verwendung der traditionellen Regeln der maschinellen Sehens durchführt. In mindestens einer Ausführungsform kann der sekundäre Computer klassische Regeln des maschinellen Sehens (wenn-dann) verwenden und kann das Vorhandensein eines neuronalen Netzes/von neuronalen Netzen in der Kontroll-MCU die Zuverlässigkeit, Sicherheit und Performance 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 Netz verfügen, das trainiert ist und somit das Risiko von falsch positiven Ergebnissen reduziert, wie hierin 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 ein 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 enthalten, die verwendet werden kann, um Audio (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z. B. TV, Filme, Streaming usw.), Telefon (z. B. Freisprechen), Netzwerkkonnektivität (z. B. LTE, WiFi usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Rückwärtseinparkhilfe, ein Radiodatensystem, fahrzeugbezogene Informationen wie Kraftstofffüllstand, insgesamt zurückgelegte Gesamt Strecke, Bremskraftstofffüllstand, Ölfüllstand, Tür öffnen/schließen, Luftfilterinformationen usw.) für das Fahrzeug 1600 bereitzustellen. Das Infotainment-SoC 1630 könnte beispielsweise Radios, Plattenspieler, Navigationssysteme, Videowiedergabevorrichtungen, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, WiFi, Audiosteuerungen am Lenkrad, eine Freisprech-Sprachsteuerung, eine Heads-up-Anzeige (heads-up display - „HUD“), eine HMI-Anzeige 1634, eine Telematikvorrichtung, ein Steuerfeld (z. B. zur Steuerung von 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, um dem/den Benutzer(n) des Fahrzeugs Informationen (z. B. optisch und/oder akustisch) bereitzustellen, wie etwa Informationen vom 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 ausführen kann, falls die primäre(n) Steuerung(en) 1636 (z. B. primärer und/oder Backup-Computer des Fahrzeugs 1600) ausfallen. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 das Fahrzeug 1600 in einen Modus des Chauffierens zu einem sicheren Halt versetzen, wie hierin 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 eine Steuerung und/oder einen Supercomputer (z. B. eine diskrete Steuerung oder einen diskreten 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 z. B. Geschwindigkeitsmesser, Kraftstoffstand, Öldruck, Drehzahlmesser, Wegstreckenzähler, Blinker, Schaltknüppelpositionsangabe, Sicherheitsgurt-Warnleuchte(n), Feststellbremsen-Warnleuchte(n), Motor-Fehlfunktionsleuchte(n), Informationen über ergänzende Rückhaltesysteme (z. B. Airbags), Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen usw. In einigen Beispielen können Informationen angezeigt und/oder vom 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 enthalten sein oder umgekehrt.
  • Die Inferenz- und/oder Trainingslogik 715 wird verwendet, um Inferenz- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten 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 16A für Inferenz- oder Prognoseoperationen mindestens zum Teil auf Grundlage von Gewichtungsparametern verwendet werden, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen von neuronalen Netzen oder hierin beschriebenen Anwendungsfällen für neuronale Netze berechnet wurden.
  • 16B ist eine Darstellung eines Systems 1676 zur Kommunikation zwischen 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 können der/die Server 1678 ohne Einschränkung eine Vielzahl von GPUs 1684(A)-1684(H) (hierin kollektiv als GPUs 1684 bezeichnet), PCle-Switches 1682(A)-1682(D) (hierin kollektiv als PCle-Switches 1682 bezeichnet) und/oder CPUs 1680(A)-1680(B) (hierin kollektiv als CPUs 1680 bezeichnet) beinhalten. Die GPUs 1684, CPUs 1680 und PCIe-Switches 1682 können mit Hochgeschwindigkeitszusammenschaltungen miteinander verbunden sein, wie etwa und ohne Einschränkung den von NVIDIA entwickelten NVLink-Schnittstellen 1688 und/oder PCle-Verbindungen 1686. In mindestens einer Ausführungsform sind die GPUs 1684 über ein NVLink- und/oder NVSwitch-SoC verbunden und sind die GPUs 1684 und die PCle-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 der Server 1678 ohne Einschränkung eine beliebige Anzahl von GPUs 1684, CPUs 1680 und/oder PCIe-Switches 1682 in beliebiger Kombination beinhalten. Zum Beispiel könnten 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 können der/die Server 1678 über das/die Netzwerk(e) 1690 und von Fahrzeugen Bilddaten empfangen, die Bilder darstellen, die unerwartete oder veränderte Straßenbedingungen zeigen, wie etwa kürzlich begonnene Straßenarbeiten. In mindestens einer Ausführungsform können der/die Server 1678 über das/die Netzwerk(e) 1690 und an die Fahrzeuge neuronale Netze 1692, aktualisierte neuronale Netze 1692 und/oder Karteninformationen 1694 übertragen, 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 über Baustellen, Schlaglöcher, Umleitungen, Überschwemmungen und/oder andere 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 teilweise basierend auf Training, das in einem Rechenzentrum (z. B. unter Verwendung von dem/den Server(n) 1678 und/oder anderen Servern) durchgeführt wurde.
  • In mindestens einer Ausführungsform können der/die Server 1678 verwendet werden, um Modelle des maschinellen Lernens (z. B. neuronale Netze) mindestens teilweise basierend auf Trainingsdaten zu trainieren. In mindestens einer Ausführungsform können die Trainingsdaten durch Fahrzeuge generiert werden und/oder in einer Simulation (z. B. unter Verwendung einer Spiele-Engine) erzeugt werden. In mindestens einer Ausführungsform wird eine beliebige Menge von Trainingsdaten mit Tags versehen (z. B., wenn das assoziierte neuronale Netz von überwachtem Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen. In mindestens einer Ausführungsform wird eine beliebige Menge von Trainingsdaten nicht mit Tags versehen und/oder vorverarbeitet (z. B., wenn das damit assoziierte neuronale Netz kein überwachtes Lernen erfordert). In mindestens einer Ausführungsform können, sobald die Modelle des maschinellen Lernens trainiert sind, die Modelle des maschinellen Lernens von den Fahrzeugen verwendet werden (z. B. über das/die Netzwerk(e) 1690 an die Fahrzeuge übertragen werden und/oder können die Modelle des maschinellen Lernens von dem/den Server(n) 1678 verwendet werden, um die Fahrzeuge aus der Ferne zu überwachen.
  • In mindestens einer Ausführungsform können der/die Server 1678 Daten von Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netzwerke zur intelligenten Echtzeit-Ableitung anwenden. In mindestens einer Ausführungsform können der/die Server 1678 Deep-Learning-Supercomputer und/oder dedizierte Kl-Computer beinhalten, die von GPU(s) 1684 angetrieben werden, wie etwa die von NVIDIA entwickelten DGX- und DGX-Station-Maschinen. In mindestens einer Ausführungsform können der/die Server 1678 jedoch eine Deep-Learning-Infrastruktur beinhalten, die CPU-angetriebene Rechenzentren verwendet.
  • In mindestens einer Ausführungsform kann die Deep-Learning-Infrastruktur des/der Server(s) 1678 zur schnellen Echtzeit-Ableitung in der Lage sein und kann diese Fähigkeit nutzen, um den Zustand von Prozessoren, Software und/oder assoziierter Hardware im Fahrzeug 1600 zu bewerten und zu verifizieren. Zum Beispiel kann in mindestens einer Ausführungsform die Deep-Learning-Infrastruktur periodische Aktualisierungen vom 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 maschinelles Sehen und/oder andere Objekt-Klassifizierungstechniken des maschinellen Lernens). In mindestens einer Ausführungsform kann die Deep-Learning-Infrastruktur ihr eigenes neuronales Netz laufen lassen, um Objekte zu identifizieren und sie mit Objekten zu vergleichen, die vom Fahrzeug 1600 identifiziert wurden, und wenn die Ergebnisse nicht übereinstimmen und die Deep-Learning-Infrastruktur zu dem Schluss kommt, dass die Kl im Fahrzeug 1600 eine Fehlfunktion aufweist, dann können der/die Server 1678 ein Signal an das Fahrzeug 1600 übertragen, das einen ausfallsicheren Computer des Fahrzeugs 1600 anweist, die Kontrolle zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • In mindestens einer Ausführungsform können der/die Server 1678 GPU(s) 1684 und einen oder mehrere programmierbare Ableitungsbeschleuniger (z. B. TensorRT 3 von NVIDIA) beinhalten. In mindestens einer Ausführungsform kann die Kombination von GPU-angetriebenen Servern und Ableitungsbeschleunigung eine Reaktionsfähigkeit in Echtzeit ermöglichen. In mindestens einer Ausführungsform, wie etwa, wenn die Rechenleistung weniger kritisch ist, können durch CPUs, FPGAs und andere Prozessoren angetriebene Server zum Inferenzieren verwendet werden. In mindestens einer Ausführungsform wird eine Inferenz- und/oder Trainingslogik 715 verwendet, um eine oder mehrere Ausführungsformen durchzuführen. Einzelheiten bezüglich der Inferenz- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B bereitgestellt.
  • Andere Variationen sind im Sinne der vorliegenden Offenbarung. Während offenbart Techniken verschiedenen Modifikationen und alternativen Konstruktionen zugänglich sind, sind daher bestimmte veranschaulichte Ausführungsformen derselben in den Zeichnungen dargestellt und wurden vorstehend näher 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 Begriffe „ein“ und „eine“ und „der/die/das“ und ähnlicher Bezeichnungen im Zusammenhang mit der Beschreibung erfindungsgemäßer Ausführungsformen (insbesondere im Zusammenhang mit den nachfolgenden Ansprüchen) ist so auszulegen, dass sie sowohl die Einzahl als auch die Vielzahl umfasst, sofern hier nichts anderes angegeben oder durch Kontext eindeutig widerlegt wird, und nicht als Definition eines Begriffs. 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 ineinander enthalten, aneinander befestigt oder aneinander angefü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 genannt ist oder der Kontext dem eindeutig widerspricht, ist verbindende Sprache, wie etwa Formulierungen der Form „wenigstens 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 nicht leere 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 „wenigstens 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}. Eine solche konjunktivische Sprache soll also nicht generell bedeuten, dass bei bestimmten Ausführungsformen jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sein muss. 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“.
  • Operationen der hier beschriebenen Prozesse können in jeder geeigneten Reihenfolge ausgeführt werden, sofern hier nicht anders angegeben oder durch eindeutig widerlegt. In mindestens einer Ausführungsform wird ein Prozess wie die hier beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon) unter der Steuerung eines oder mehrerer Rechensysteme durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind und als Code (z. B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen) implementiert sind, die gemeinsam auf einem oder mehreren Prozessoren, durch Hardware oder Kombinationen davon ausgeführt werden. 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 nichttransitorisches computerlesbares Speichermedium, das transitorische Signale (z. B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nichttransitorische Datenspeicherschaltungen (z. B. Puffer, Cache und Warteschlangen) innerhalb von Sendeempfängern von transitorischen Signalen einschließt. In mindestens einer Ausführungsform ist der Code (z. B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nichttransitorischen computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen gespeichert sind (oder einem anderen Speicher zum Speichern ausführbarer Anweisungen), die bei Ausführung (d. h. als Ergebnis der Ausführung) durch einen oder mehrere Prozessoren eines Computersystems das Computersystem dazu veranlassen, hierin beschriebene Operationen durchzuführen. Ein Satz von nichtflüchtigen computerlesbaren Speichermedien kann in mindestens einer Ausführungsform mehrere nichtflüchtige computerlesbare Speichermedien umfassen und eines oder mehrere von einzelnen nichtflüchtigen Speichermedien der mehreren nichtflüchtigen computerlesbaren Speichermedien verfügen möglicherweise nicht über den gesamten Code, während mehrere nichtflüchtige computerlesbares Speichermedien gemeinschaftlich den gesamten Code speichern. In mindestens einer Ausführungsform werden ausführbare Befehle ausgeführt, sodass verschiedene Befehle von verschiedenen Prozessoren ausgeführt werden - beispielsweise speichert ein nicht vorübergehendes computerlesbares Speichermedium Befehle, und eine Hauptzentraleinheit („CPU“) führt einige der Befehle aus, während ein Grafikprozessor („GPU“) andere Befehle ausführt. In mindestens einer Ausführungsform weisen unterschiedliche Komponenten eines Computersystems separate Prozessoren auf und unterschiedliche Prozessoren führen unterschiedliche Teilmengen von Anweisungen aus.
  • Demgemäß sind in mindestens einer Ausführungsform Rechensysteme so konfiguriert, dass sie einen oder mehrere Dienste implementieren, die einzeln oder gemeinsam Operationen der hier beschriebenen Prozesse durchführen, und sind solche Rechensysteme mit anwendbarer Hardware und/oder Software konfiguriert, die die Durchführung von Operationen ermöglichen. Ferner ist ein Rechensystem, das mindestens eine Ausführungsform der Erfindung implementiert, eine einzelne Vorrichtung und in einer anderen Ausführungsform ein verteiltes Rechensystem, das mehrere Vorrichtungen umfasst, die unterschiedlich arbeiten, sodass das verteilte Rechensystem die hier beschriebenen Operationen durchführt und eine einzelne Vorrichtung nicht alle Operationen durchführt.
  • Die Verwendung von Beispielen oder beispielhaften Formulierungen (z. B. „wie z. B.“) dient lediglich der besseren Veranschaulichung von Ausführungsformen der Erfindung und stellt keine Einschränkung des Umfangs der Erfindung dar, sofern nicht anders angegeben. 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 Patente, die hier zitiert werden, werden hiermit durch Verweis in demselben Umfang einbezogen, als ob jede Referenz einzeln und ausdrücklich als durch Verweis einbezogen angegeben wäre und hier in ihrer Gesamtheit wiedergegeben würde.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ sowie deren Ableitungen verwendet werden. Es versteht sich, dass diese Ausdrücke nicht als Synonyme füreinander beabsichtigt sein können. Vielmehr kann in konkreten 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, beziehen sich Begriffe wie „Verarbeitung“, „Rechnen“, „Berechnen“, „Bestimmen“ oder dergleichen in der gesamten Spezifikation auf Aktionen 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 repräsentiert sind, manipulieren und/oder in andere Daten umwandeln, die in ähnlicher Weise als physische Größen in den Speichern, Registern oder anderen derartigen Informationsspeicher-, -übertragungs- oder -Anzeigevorrichtungen des Rechensystems repräsentiert werden.
  • In vergleichbarer Weise kann sich der Begriff „Prozessor“ auf eine beliebige Vorrichtung oder einen Teil einer Vorrichtung beziehen, die 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 hier verwendet, können „Software“-Prozesse z. B. Software- und/oder Hardware-Entitäten umfassen, die im Laufe der Zeit Arbeit verrichten, wie z. B. Aufgaben, Threads und intelligente Agenten. Außerdem kann sich jeder Prozess auf mehrere Prozesse zum Ausführen von Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend beziehen. Die Begriffe „System“ und „Verfahren“ werden hier austauschbar verwendet, insofern als ein System eine oder mehrere Verfahren verkörpern kann und Verfahren als ein System betrachtet werden können.
  • In dem vorliegenden Dokument kann auf das Erhalten, Erlangen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Subsystem, Rechensystem oder eine computerimplementierte Maschine Bezug genommen werden. Ein Prozess des Erhaltens, Erlangens, Empfangens oder Eingebens von analogen und digitalen Daten kann auf verschiedene Weise durchgeführt werden, z. B. durch Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs einer Anwendungsprogrammierschnittstelle. In einigen Umsetzungen kann der Prozess des Erhaltens, Übernehmens, 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, Erlangens, Empfangens oder Eingebens von analogen oder digitalen Daten durch die Übertragung von Daten über ein Computernetz von der bereitstellenden Einheit zur erfassenden Einheit durchgeführt werden. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Darstellen von analogen oder digitalen Daten Bezug genommen werden. In verschiedenen Beispielen kann der Prozess des Bereitstellens, Ausgebens, Übertragens, 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 Diskussion beispielhafte Implementierungen der beschriebenen Techniken darlegt, können auch andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sollen diese in den Anwendungsbereich dieser Offenbarung fallen. Darüber hinaus könnten, obwohl spezifische Verteilungen von Zuständigkeiten vorstehend zum Zwecke der Erörterung definiert sind, verschiedene Funktionen und Zuständigkeiten in Abhängigkeit von den Umständen anders verteilt und aufgeteilt werden.
  • Auch wenn der Gegenstand in einer Sprache beschrieben wurde, die sich auf strukturelle Merkmale und/oder methodische Handlungen bezieht, versteht sich, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht notwendigerweise auf bestimmte beschriebene Merkmale oder Handlungen beschränkt ist. Vielmehr werden spezifische Merkmale und Handlungen als beispielhafte Formen zum Implementieren der Ansprüche offenbart.

Claims (20)

  1. Computerimplementiertes Verfahren, das Folgendes umfasst: Erhalten einer Vielzahl von konstituierenden Bildern einer Umgebung; Zusammenfügen der konstituierenden Bilder, um ein zusammengesetztes Bild zu generieren; Berechnen einer Vielzahl von Messgrößen der objektiven Qualität für das zusammengesetzte Bild in Bezug auf die konstituierenden Bilder; Ableiten einer Messgröße subjektiver Qualität zumindest teilweise basierend auf der Vielzahl von Messgrößen objektiver Qualität unter Verwendung eines trainierten Klassifikators; und Anpassen mindestens eines Zusammenfügungsparameters zur Verwendung beim Zusammenfügen eines nachfolgenden Satzes von konstituierenden Bildern zumindest teilweise basierend auf der Messgröße subjektiver Qualität.
  2. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: Bestimmen eines oder mehrerer Kameraparameter für einen Satz von Kameraparametern, die verwendet werden, um den Satz von konstituierenden Bildern zu erfassen; und Projizieren der konstituierenden Bilder in einen gemeinsamen Raum für das Zusammenfügen zumindest teilweise basierend auf dem einen oder den mehreren Kameraparametern.
  3. Computerimplementiertes Verfahren nach Anspruch 1 oder 2, ferner umfassend: Zusammenfügen der konstituierenden Bilder unter Verwendung eines anfänglichen Satzes von Zusammenfügungsparametern, wobei die Zusammenfügungsparameter mindestens eines von Folgenden beinhalten: einen Mischtyp, eine Mischbreite, eine Misch-Alpha-Kartenform, einen Nahttyp oder eine Nahtposition.
  4. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei die Vielzahl von Messwerten der objektiven Qualität mindestens eines von Folgenden beinhaltet: ein strukturelles Ähnlichkeitsindexmaß (SSIM), eine Mischbreite, einen Satz von pixelweisen Unterschieden oder mittleren quadratischen Fehlern oder eine Bestimmung der tatsächlichen Objektgröße.
  5. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Verarbeiten des zusammengesetzten Bildes und der konstituierenden Bilder unter Verwendung mindestens eines von einem Hochpassfilter oder einem Kantendetektor vor dem Berechnen der Vielzahl von Messgrößen objektiver Qualität.
  6. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Bestimmen, dass die Messgröße subjektiver Qualität sich einem Zielwert nicht zumindest annähert, bevor der mindestens eine Zusammenfügungsparameter angepasst wird.
  7. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Bereitstellen des zusammengesetzten Bildes zur Darstellung als eine Visualisierung der Umgebung.
  8. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei das Zusammenfügen der konstituierenden Bilder in das zusammengesetzte Bild Folgendes umfasst: Mischen eines oder mehrerer Farbwerte für Pixel der konstituierenden Bilder, wobei das Mischen unter Verwendung eines oder mehrerer Mischparameter durchgeführt wird, die zumindest teilweise basierend auf bestimmten Inhalten in den konstituierenden Bildern bestimmt sind, wobei der Inhalt einem oder mehreren Objekten in der Umgebung entspricht, die in den konstituierenden Bildern dargestellt ist.
  9. Computerimplementiertes Verfahren nach Anspruch 8, ferner umfassend: Bestimmen unterschiedlicher Mischparameter für unterschiedliche Frequenzbänder von Inhalten in den konstituierenden Bildern.
  10. System, das Folgendes umfasst: einen oder mehrere Prozessoren; und Speicher, der Anweisungen speichert, die bei Durchführung durch den einen oder die mehreren Prozessoren das System zu Folgendem veranlassen: Erhalten einer Vielzahl von konstituierenden Bildern einer Umgebung; Generieren eines zusammengesetzten Bildes unter Verwendung der Vielzahl von konstituierenden Bildern; Berechnen mindestens einer Messgröße objektiver Qualität für das zusammengesetzte Bild in Bezug auf die konstituierenden Bilder; Bestimmen einer Messgröße subjektiver Qualität für das zusammengesetzte Bild zumindest teilweise basierend auf der mindestens einen Messgröße objektiver Qualität; und Anpassen mindestens eines Zusammensetzungsparameters zur Verwendung beim Zusammensetzen eines nachfolgenden Satzes von konstituierenden Bildern zumindest teilweise basierend auf der Messgröße subjektiver Qualität.
  11. System nach Anspruch 10, wobei die Messgröße subjektiver Qualität unter Verwendung eines trainierten Klassifikators für maschinelles Lernen abgeleitet wird.
  12. System nach Anspruch 10 oder 11, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen: Bestimmen einer Vielzahl von Kameraparametern, die zum Erfassen des Satzes von konstituierenden Bildern verwendet wird; und Projizieren der konstituierenden Bilder in einen gemeinsamen Raum für das Zusammensetzen zumindest teilweise basierend auf den Kameraparametern.
  13. System nach einem der Ansprüche 10 bis 12, wobei die Anweisungen bei Ausführung das System ferner zu Folgendem veranlassen: Generieren des zusammengesetzten Bildes teilweise durch Zusammenfügen der konstituierenden Bilder unter Verwendung eines anfänglichen Satzes von Zusammensetzungsparametern, wobei die Zusammenfügungsparameter mindestens eines von Folgenden beinhalten: einen Mischtyp, eine Mischbreite, eine Misch-Alpha-Kartenform, einen Nahttyp oder eine Nahtposition.
  14. System nach einem der Ansprüche 10 bis 13, wobei die Vielzahl von Messgrößen objektiver Qualität mindestens eines von Folgenden beinhaltet: ein strukturelles Ähnlichkeitsindexmaß (SSIM), eine Mischbreite, einen Satz von pixelweisen Unterschieden oder mittleren quadratischen Fehlern oder eine Bestimmung der tatsächlichen Objektgröße.
  15. System nach Anspruch 10, wobei das System mindestens eines von Folgenden umfasst: ein System zum Durchführen von Simulationsoperationen; ein System zum Durchführen von Simulationsoperationen zum Testen oder Validieren autonomer Maschinenanwendungen; ein System zum Rendern einer grafischen Ausgabe; ein System zum Durchführen von Deep-Learning-Operationen; ein System, das unter Verwendung einer Edge-Vorrichtung implementiert ist; ein System, das eine oder mehrere virtuelle Maschinen (VM) enthält; ein System, das zumindest teilweise in einem Rechenzentrum implementiert ist; oder ein System, das zumindest teilweise unter Verwendung von Cloud-Rechenressourcen implementiert ist.
  16. Nichttransitorisches computerlesbares Speichermedium, das Anweisungen beinhaltet, die bei Ausführung durch einen oder mehrere Prozessoren den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erhalten eines Satzes von konstituierenden Bildern einer Umgebung; Generieren eines zusammengesetzten Bildes unter Verwendung des Satzes von konstituierenden Bildern; Berechnen mindestens einer Messgröße objektiver Qualität für das zusammengesetzte Bild in Bezug auf die konstituierenden Bilder; Bestimmen einer Messgröße subjektiver Qualität für das zusammengesetzte Bild zumindest teilweise basierend auf der mindestens einen Messgröße objektiver Qualität; und Anpassen mindestens eines Zusammensetzungsparameters zur Verwendung beim Zusammensetzen eines nachfolgenden Satzes von konstituierenden Bildern zumindest teilweise basierend auf der Messgröße subjektiver Qualität.
  17. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 16, wobei die Messgröße subjektiver Qualität unter Verwendung eines trainierten Klassifikators für maschinelles Lernen abgeleitet wird.
  18. Nichttransitorisches computerlesbares Speichermedien nach Anspruch 16 oder 17, wobei die Anweisungen bei Ausführung den einen oder die mehreren Prozessoren ferner zu Folgendem veranlassen: Bestimmen einer Vielzahl von Kameraparametern, die zum Erfassen des Satzes von konstituierenden Bildern verwendet wird; und Projizieren der konstituierenden Bilder in einen gemeinsamen Raum für das Zusammensetzen zumindest teilweise basierend auf den Kameraparametern.
  19. Nichttransitorisches computerlesbares Speichermedien nach einem der Ansprüche 16 bis 18, wobei die Anweisungen bei Ausführung den einen oder die mehreren Prozessoren ferner zu Folgendem veranlassen: Generieren des zusammengesetzten Bildes teilweise durch Zusammenfügen der konstituierenden Bilder unter Verwendung eines anfänglichen Satzes von Zusammensetzungsparametern, wobei die Zusammenfügungsparameter mindestens eines von Folgenden beinhalten: einen Mischtyp, eine Mischbreite, eine Misch-Alpha-Kartenform, einen Nahttyp oder eine Nahtposition.
  20. Nichttransitorisches computerlesbares Speichermedien nach einem der Ansprüche 16 bis 19, wobei die Vielzahl von Messgrößen der objektiven Qualität mindestens eines von Folgenden beinhaltet: ein strukturelles Ähnlichkeitsindexmaß (SSIM), eine Mischbreite, einem Satz von pixelweisen Unterschieden oder mittleren quadratischen Fehlern oder eine Bestimmung der tatsächlichen Objektgröße.
DE102022117298.8A 2021-07-20 2022-07-12 Zusammenfügungsqualitätsbewertung für rundumsichtsysteme Pending DE102022117298A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/381,129 2021-07-20
US17/381,129 US20230024474A1 (en) 2021-07-20 2021-07-20 Stitching quality assessment for surround view systems

Publications (1)

Publication Number Publication Date
DE102022117298A1 true DE102022117298A1 (de) 2023-01-26

Family

ID=84784796

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022117298.8A Pending DE102022117298A1 (de) 2021-07-20 2022-07-12 Zusammenfügungsqualitätsbewertung für rundumsichtsysteme

Country Status (4)

Country Link
US (1) US20230024474A1 (de)
JP (1) JP2023015967A (de)
CN (1) CN115705618A (de)
DE (1) DE102022117298A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341682B2 (en) * 2020-08-13 2022-05-24 Argo AI, LLC Testing and validation of a camera under electromagnetic interference
KR20230001071A (ko) * 2021-06-25 2023-01-04 현대자동차주식회사 자율 주행 차량, 그를 원격 제어하는 관제 시스템 및 그 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006119730A (ja) * 2004-10-19 2006-05-11 Seiko Epson Corp 画像のつなぎ合わせ
US10194097B2 (en) * 2017-01-13 2019-01-29 Gopro, Inc. Apparatus and methods for the storage of overlapping regions of imaging data for the generation of optimized stitched images
US10616482B2 (en) * 2017-03-10 2020-04-07 Gopro, Inc. Image quality assessment
CN110706282B (zh) * 2019-10-31 2020-09-15 镁佳(北京)科技有限公司 全景系统自动标定方法、装置、可读存储介质及电子设备
US11470250B2 (en) * 2019-12-31 2022-10-11 Gopro, Inc. Methods and apparatus for shear correction in image projections

Also Published As

Publication number Publication date
JP2023015967A (ja) 2023-02-01
US20230024474A1 (en) 2023-01-26
CN115705618A (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE102020120201A1 (de) Blickerkennung unter verwendung eines oder mehrerer neuronaler netzwerke
DE102021126648A1 (de) Imitationstraining mittels synthetischen daten
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE102021112247A1 (de) Inhaltsbewusste Stilcodierung unter Verwendung neuronaler Netzwerke
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE112020001396T5 (de) Formfusion zur bildanalyse
DE112019000049T5 (de) Für autonomes fahren geeignete objekterfassung und erfassungssicherheit
DE102021108042A1 (de) Verbessertes medienengagement durch tiefes lernen
DE102021105080A1 (de) Techniken zur verwendung eines neuronalen netzwerks zur erweiterung eines bilds
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE112020001400T5 (de) Iterative erzeugung räumlicher graphen
DE102021125234A1 (de) Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken
DE102021110055A1 (de) Unter verwendung eines oder mehrerer neuronaler netzwerke bestimmte benachrichtigungen
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe
DE102022101664A1 (de) Techniken des maschinellen lernens zur verbesserung von anwendungen für videokonferenzen
DE112021000104T5 (de) Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen
DE102022123130A1 (de) Trainieren von objekterkennungsmodellen unter verwendung von transferlernen
DE102021110778A1 (de) Inhaltsverwaltung unter verwendung eines oder mehrerer neuronaler netzwerke
DE102022117298A1 (de) Zusammenfügungsqualitätsbewertung für rundumsichtsysteme
DE102022100524A1 (de) Paralleles durchführen von nicht-maxima-unterdrückung
DE102022121251A1 (de) Kontextbasierte Zustandsschätzung

Legal Events

Date Code Title Description
R012 Request for examination validly filed