DE102022121251A1 - Kontextbasierte Zustandsschätzung - Google Patents

Kontextbasierte Zustandsschätzung Download PDF

Info

Publication number
DE102022121251A1
DE102022121251A1 DE102022121251.3A DE102022121251A DE102022121251A1 DE 102022121251 A1 DE102022121251 A1 DE 102022121251A1 DE 102022121251 A DE102022121251 A DE 102022121251A DE 102022121251 A1 DE102022121251 A1 DE 102022121251A1
Authority
DE
Germany
Prior art keywords
data
blink
person
network
vehicle
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
DE102022121251.3A
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 DE102022121251A1 publication Critical patent/DE102022121251A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/08Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to drivers or passengers
    • B60W40/09Driving style or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/59Context or environment of the image inside of a vehicle, e.g. relating to seat occupancy, driver state or inner lighting conditions
    • G06V20/597Recognising the driver's state or behaviour, e.g. attention or drowsiness
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0059Measuring for diagnostic purposes; Identification of persons using light, e.g. diagnosis by transillumination, diascopy, fluorescence
    • A61B5/0077Devices for viewing the surface of the body, e.g. camera, magnifying lens
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7235Details of waveform analysis
    • A61B5/7264Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems
    • A61B5/7267Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems involving training the classification device
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B21/00Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
    • G08B21/02Alarms for ensuring the safety of persons
    • G08B21/06Alarms for ensuring the safety of persons indicating a condition of sleep, e.g. anti-dozing alarms
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/40ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/20ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/30ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for calculating health indices; for individual health risk assessment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/08Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to drivers or passengers
    • B60W2040/0818Inactivity or incapacity of driver
    • B60W2040/0827Inactivity or incapacity of driver due to sleepiness
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2540/00Input parameters relating to occupants
    • B60W2540/221Physiology, e.g. weight, heartbeat, health or special needs
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2540/00Input parameters relating to occupants
    • B60W2540/223Posture, e.g. hand, foot, or seat position, turned or inclined
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2540/00Input parameters relating to occupants
    • B60W2540/229Attention level, e.g. attentive to driving, reading or sleeping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • B60W2554/4041Position
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • B60W2554/4042Longitudinal speed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • B60W2554/4046Behavior, e.g. aggressive or erratic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • B60W2554/4049Relationship among other objects, e.g. converging dynamic objects
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2555/00Input parameters relating to exterior conditions, not covered by groups B60W2552/00, B60W2554/00
    • B60W2555/20Ambient conditions, e.g. wind or rain
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • B60W2556/50External transmission of data to or from the vehicle of positioning data, e.g. GPS [Global Positioning System] data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Public Health (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Pathology (AREA)
  • Epidemiology (AREA)
  • Primary Health Care (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Veterinary Medicine (AREA)
  • Animal Behavior & Ethology (AREA)
  • Surgery (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Biophysics (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Emergency Management (AREA)
  • Fuzzy Systems (AREA)
  • Evolutionary Computation (AREA)
  • Signal Processing (AREA)
  • Psychiatry (AREA)
  • Physiology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Radiology & Medical Imaging (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

Zustandsinformationen können für ein Subjekt bestimmt werden, die gegenüber verschiedenen Eingaben oder Bedingungen robust sind. Für Schläfrigkeit können Gesichtsmerkmale aus erfassten Bilddaten bestimmt und zum Bestimmen einer Reihe von Blinzelparametern verwendet werden. Diese Parameter können, z.B. mit einem temporalen Netzwerk, verwendet werden, um einen Zustand (z.B. Schläfrigkeit) des Subjekts zu schätzen. Um die Robustheit zu verbessern, kann ein Augenzustands-Bestimmungsnetzwerk den Augenzustand aus den Bilddaten bestimmen, ohne sich auf dazwischenliegende Orientierungspunkte zu verlassen, der mit z.B. einem anderen temporalen Netzwerk verwendet werden kann, um den Zustand des Subjekts zu schätzen. Eine gewichtete Kombination dieser Werte kann verwendet werden, um einen Gesamtzustand des Subjekts zu bestimmen. Um die Genauigkeit zu verbessern, können individuelle Verhaltensmuster und Kontextinformationen verwendet werden, um Schwankungen in den Daten zu berücksichtigen, die eher auf eine Subjektvariation oder einen aktuellen Kontext als auf Zustandsänderungen zurückzuführen sind.

Description

  • HINTERGRUND
  • Es besteht ein ständiger Wunsch, die Sicherheit in verschiedenen Umgebungen zu verbessern. Dazu gehört beispielsweise die genaue Bestimmung der Schläfrigkeit einer Person, die eine Vorrichtung, wie beispielsweise ein Fahrzeug oder eine Maschine, bedient, das zu Schäden oder Verletzungen führen kann, wenn sie nicht mit ausreichender Aufmerksamkeit oder Wachsamkeit bedient wird. Es gibt zwar Systeme, die versuchen, Zustände wie Schläfrigkeit oder Wachsamkeit zu bestimmen, doch sind diese Systeme nicht in allen Situationen genau oder ausreichend robust gegenüber Veränderungen zwischen Benutzern, Benutzerzuständen oder Umgebungsbedingungen.
  • Figurenliste
  • Verschiedene Ausführungsformen in Übereinstimmung mit der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, in denen:
    • 1A und 1 B Beispiele von Komponenten eines Fahrzeugs veranschaulichen, gemäß mindestens einer Ausführungsform;
    • 2A, 2B, 2C, 2D, 2E und 2F Merkmalsdaten veranschaulichen, die verwendet werden können, gemäß mindestens einer Ausführungsform;
    • 3 ein System zur Einschätzung der Schläfrigkeit veranschaulicht, das verwendet werden kann, gemäß mindestens einer Ausführungsform;
    • 4 einen Beispielprozess zur Schätzung des Zustands eines Subjekts veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 5A und 5B einen Prozess veranschaulicht zum Berücksichtigen von Veränderungen oder Verhaltensweisen, die nicht auf eine Änderung des Zustands eines Subjekts zurückzuführen sind, gemäß mindestens einer Ausführungsform;
    • 6 Komponenten eines Systems zum Bestimmen des Zustands einer Person veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 7A eine Inferenzierungs- und/oder Trainingslogik veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 7B eine Inferenzierungs- und/oder Trainingslogik veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 8 ein beispielhaftes Rechenzentrumssystem veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 9 ein Computersystem veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 10 ein Computersystem veranschaulicht, gemäß mindestens einer Ausführungsform;
    • 11 zumindest Teile eines Grafikprozessors veranschaulicht, gemäß einer oder mehreren Ausführungsformen;
    • 12 zumindest Teile eines Grafikprozessors veranschaulicht, gemäß einer oder mehreren Ausführungsformen;
    • 13 ein beispielhaftes Datenflussdiagramm für eine fortgeschrittene Rechen-Pipeline ist, gemäß mindestens einer Ausführungsform;
    • 14 ein Systemdiagramm ist für ein beispielhaftes System zum Trainieren, Anpassen, Instanziieren und Nutzen von Modellen maschinellen Lernens in einer fortgeschrittenen Rechen-Pipeline, gemäß mindestens einer Ausführungsform; und
    • 15A und 15B ein Datenflussdiagramm für einen Prozess zum Trainieren eines Modells maschinellen Lernens sowie eine Client-Server-Architektur zur Verbesserung von Annotationswerkzeugen mit vortrainierten Annotationsmodellen veranschaulichen, gemäß mindestens einer Ausführungsform.
    • 16A und 16B veranschaulichen Komponenten, die mit einem Fahrzeugsystem verwendet werden können, gemäß mindestens einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ansätze in Übereinstimmung mit verschiedenen Ausführungsformen können Bestimmungen des Zustands einer Person oder eines anderen solchen Subjekts ermöglichen. Insbesondere ermöglichen verschiedene Ausführungsformen die Bestimmung eines Schläfrigkeits-, Müdigkeits- oder Wachheitszustands einer Person basierend zumindest teilweise auf einem beobachteten Blinzelverhalten einer Person im Laufe der Zeit. Es kann ein Ende-zu-Ende-Schläfrigkeitsschätzsystem verwendet werden, das mehrere neuronale Netzwerke umfasst und daher relativ robust gegenüber Änderungen in Eingangsdaten sein kann. Eines dieser neuronalen Netzwerke kann verwendet werden, um einen Satz von Gesichtsmerkmalen in aufgenommenen Bilddaten zu bestimmen, die zum Bestimmen eines Satzes von Blinzelparametern für ein Subjekt über einen Zeitraum verwendet werden können. Dieser Satz von Blinzelparametern kann, z.B. mit einem zeitlichen bzw. temporalen Netzwerk, verwendet werden, um einen Zustandswert für das Subjekt abzuleiten, wie beispielsweise einen Schläfrigkeitsgrad für eine Person von Interesse, die in den erfassten Bilddaten dargestellt ist. Ein separates neuronales Netzwerk kann den Augenzustand (z.B. offen oder geschlossen) aus den erfassten Bilddaten bestimmen, ohne sich auf die Genauigkeit der dazwischenliegenden Gesichtsmerkmale zu verlassen, welches die Robustheit des Gesamtprozesses verbessern kann. Die Informationen über den Augenzustand können, z.B. mit einem anderen temporalen Netzwerk, verwendet werden, um einen anderen Zustandswert für das Subjekt abzuleiten. Die Zustandswerte aus diesen temporalen Netzwerken können dann verwendet werden, wie beispielsweise über eine gewichtete Kombination, falls jeder Wert mit mindestens minimaler Konfidenz abgeleitet wird, um eine Gesamtzustandswertschätzung für die Person zu bestimmen. Dieser Zustandswert kann verwendet werden, um auf der Grundlage des Zustands der Person zu bestimmen, ob eine Maßnahme zu ergreifen ist oder nicht, und ebenso um zu bestimmen, welche Art von Maßnahme zu ergreifen ist. Um die Genauigkeit einer solchen Schätzung zu verbessern, kann ein System auch versuchen, Verhaltensänderungen zwischen einzelnen Personen sowie Schwankungen aufgrund von Änderungen in einem aktuellen Kontext oder in einer aktuellen Umgebung, wie beispielsweise Änderungen im Fahrkontext, zu berücksichtigen. Subjekt- und/oder Kontextdaten können beispielsweise als Eingabe für ein temporales Netzwerk bereitgestellt werden, so dass das Netzwerk durch Vergleichen der Blinzelparameter, oder anderer beobachteter Verhaltensdaten, mit Basislinien, die für das spezifische Subjekt unter dem aktuellen Kontext relevanter sind, genauere Zustandsdaten ableiten kann.
  • Es sei ein in 1A dargestelltes Fahrzeug 100 betrachtet, wie beispielsweise ein halbautonomes oder computergestütztes Fahrzeug, das einen oder mehrere Fahrer oder Fahrgäste enthalten kann. In mindestens einer Ausführungsform kann das Fahrzeug 100, ohne darauf beschränkt zu sein, ein Personenkraftwagen sein, wie z.B. ein Pkw, ein Lkw, ein Bus und/oder eine andere Art von Fahrzeug, das einen oder mehrere Fahrgäste aufnimmt. In mindestens einer Ausführungsform kann das Fahrzeug 100 ein Sattelschlepper sein, der für den Transport von Gütern 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 bezüglich Automatisierungsebenen 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 wurden. In einer oder mehreren Ausführungsformen kann das Fahrzeug 100 zu Funktionalität in Übereinstimmung mit einer oder mehreren der Ebenen (engl.: level) 1 bis 5 der Ebenen des autonomen Fahrens auszuführen. Zum Beispiel kann das Fahrzeug 100 in mindestens einer Ausführungsform je nach Ausführungsform bedingt automatisiert (Level 3), hochautomatisiert (Level 4) und/oder vollständig automatisiert (Level 5) sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 100, ohne darauf beschränkt zu sein, Komponenten wie beispielsweise 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 darauf beschränkt zu sein, ein Antriebssystem 150 beinhalten, wie z.B. einen Verbrennungsmotor, ein Hybrid-Elektrokraftwerk, einen reinen Elektromotor und/oder einen anderen Antriebssystemtyp. In mindestens einer Ausführungsform kann das Antriebssystem 150 mit einem Antriebsstrang des Fahrzeugs 100 verbunden sein, der, ohne darauf beschränkt zu sein, ein Getriebe beinhalten kann, um den Antrieb des Fahrzeugs 100 zu ermöglichen. In mindestens einer Ausführungsform kann das Antriebssystem 150 im Ansprechen auf den Empfang von Signalen von einer Drosselklappe/einem oder mehreren Beschleunigern 152 gesteuert werden.
  • In mindestens einer Ausführungsform wird ein Lenksystem 154, das, ohne darauf beschränkt zu sein, ein Lenkrad umfassen kann, verwendet, um ein Fahrzeug 100 (z.B. entlang eines gewünschten Wegs oder einer Route) zu lenken, wenn ein Antriebssystem 150 in Betrieb ist (z.B. wenn das Fahrzeug in Bewegung ist). In mindestens einer Ausführungsform kann ein Lenksystem 154 Signale von einem oder mehreren Lenkaktuatoren 156 empfangen. Ein Lenkrad kann für die volle Automatisierungsfunktionalität (Level 5) optional sein. In mindestens einer Ausführungsform kann ein Bremssensorsystem 146 verwendet werden, um die Fahrzeugbremsen im Ansprechen auf den Empfang von Signalen von den Bremsaktuator(en) 148 und/oder Bremssensoren zu betätigen.
  • In mindestens einer Ausführungsform liefern eine oder mehrere Steuereinrichtungen 136, die, ohne darauf beschränkt zu sein, ein oder mehrere System-on-Chips („SoCs“) (in 1A nicht dargestellt) und/oder Grafikverarbeitungseinheiten („GPUs“) umfassen können, Signale (z.B. repräsentativ für Befehle) an eine oder mehrere Komponenten und/oder Systeme des Fahrzeugs 100. In mindestens einer Ausführungsform kann (können) die Steuereinrichtung(en) 136 beispielsweise Signale senden, um die Fahrzeugbremsen über den (die) Bremsaktor(en) 148 zu betätigen, um das Lenksystem 154 über den (die) Lenkaktor(en) 156 zu betätigen, um das Antriebssystem 150 über den (die) Drosselklappe/den bzw. die Beschleuniger 152 zu betätigen. Die Steuereinrichtung(en) 136 kann (können) eine oder mehrere eingebaute (z.B. integrierte) Rechenvorrichtungen umfassen, die Sensorsignale verarbeiten und Betriebsbefehle (z.B. Signale, die Befehle darstellen) ausgeben, um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Fahren des Fahrzeugs 100 zu unterstützen. In mindestens einer Ausführungsform kann (können) die Steuereinrichtung(en) 136 eine erste Steuereinrichtung 136 für autonome Fahrfunktionen, eine zweite Steuereinrichtung 136 für funktionale Sicherheitsfunktionen, eine dritte Steuereinrichtung 136 für Funktionen der künstlichen Intelligenz (z.B. Computer Vision), eine vierte Steuereinrichtung 136 für Infotainment-Funktionen, eine fünfte Steuereinrichtung 136 für Redundanz in Notfällen und/oder andere Steuereinrichtungen umfassen. In mindestens einer Ausführungsform kann eine einzelne Steuereinrichtung 136 zwei oder mehr der oben genannten Funktionen übernehmen, können zwei oder mehr Steuereinrichtungen 136 eine einzige Funktion übernehmen und/oder eine beliebige Kombination davon.
  • In mindestens einer Ausführungsform liefern die Steuereinrichtung(en) 136 Signale zur Steuerung einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 100 im Ansprechen auf Sensordaten, die von einem oder mehreren Sensoren (z.B. Sensoreingaben) empfangen werden. In mindestens einer Ausführungsform können Sensordaten zum Beispiel und ohne darauf beschränkt zu sein, von globalen Navigationssatellitensystem („GNSS“)-Sensor(en) 158 (z.B. Global Positioning System-Sensor(en)), RA-DAR-Sensor(en) 160, Ultraschallsensor(en) 162, LIDAR-Sensor(en) 164, Inertialmesseinheitssensor(en) („IMU“) 166 (z.B. Beschleunigungsmesser, Gyroskop(e), Magnetkompass(e), Magnetometer usw.), Mikrofon(e) 196, Stereokamera(s) 168, Weitwinkelkamera(s) 170 (z.B. Fischaugenkameras), Infrarotkamera(s) 172, Surround-Kamera(s) 174 (z.B. 360-Grad-Kameras), Fernkameras (in 1A nicht dargestellt), Mittelbereichskamera(s) (in 1A nicht dargestellt), Geschwindigkeitssensor(en) 144 (z.B. zur Messung der Geschwindigkeit des Fahrzeugs 100), Vibrationssensor(en) 142, Lenksensor(en) 140, Bremssensor(en) (z.B. als Teil des Bremssensorsystems 146), und/oder anderen Sensortypen empfangen werden.
  • In mindestens einer Ausführungsform können ein oder mehrere Steuereinrichtungen 136 Eingaben (z.B. repräsentiert durch Eingabedaten) von einem Kombiinstrument 132 des Fahrzeugs 100 empfangen und Ausgaben (z.B. repräsentiert durch Ausgabedaten, Anzeigedaten usw.) über eine Mensch-Maschine-Schnittstelle („HMI“)-Anzeige 164, einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 100 bereitstellen. In mindestens einer Ausführungsform können die Ausgabedaten Informationen wie beispielsweise Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z.B. eine hochauflösende Karte (in 1A nicht dargestellt), Standortdaten (z.B. der Standort des Fahrzeugs 100, wie beispielsweise auf einer Karte), Richtung, Standort anderer Fahrzeuge (z.B. ein Belegungsraster), Informationen über Objekte und den Status von Objekten, wie sie von der/den Steuereinheit(en) 136, usw. In mindestens einer Ausführungsform kann das HMI-Anzeige 134 beispielsweise Informationen über das Vorhandensein eines oder mehrerer Objekte (z.B. ein Straßenschild, ein Warnschild, eine sich ändernde Ampel usw.) und/oder Informationen über Fahrmanöver anzeigen, die das Fahrzeug durchgeführt hat, gerade durchführt oder durchführen wird (z.B. Spurwechsel jetzt, Ausfahrt 34B in zwei Meilen nehmen usw.).
  • In mindestens einer Ausführungsform beinhaltet das Fahrzeug 100 ferner eine Netzwerkschnittstelle 124, die drahtlose Antenne(n) 126 und/oder ein oder mehrere Modem(e) zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Zum Beispiel kann in mindestens einer Ausführungsform die Netzwerkschnittstelle 124 in der Lage sein, über Long-Term Evolution („LTE“), 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 die Kommunikation zwischen Objekten in der Umgebung (z.B. Fahrzeuge, mobile Geräte usw.) ermöglichen, wobei lokale Netzwerke wie Bluetooth, Bluetooth Low Energy („LE“), Z-Wave, ZigBee usw. und/oder WeitverkehrsNetzwerke mit geringer Leistung („LPWANs“) wie LoRaWAN, SigFox usw. verwendet werden.
  • 1B zeigt ein Beispiel für Kamerapositionen und Sichtfelder für das autonome Fahrzeug 100 von 1A, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform sind die Kameras und jeweilige Sichtfelder ein beispielhaftes Ausführungsbeispiel und sollen nicht beschränkend sein. Zum Beispiel können in mindestens einer Ausführungsform zusätzliche und/oder alternative Kameras enthalten sein, und/oder können Kameras an verschiedenen Stellen des Fahrzeugs 100 angeordnet sein.
  • In mindestens einer Ausführungsform können Kameratypen für Kameras, ohne darauf beschränkt zu sein, Digitalkameras umfassen, die zur Verwendung mit Komponenten und/oder Systemen des Fahrzeugs 100 angepasst sein können. In mindestens einer Ausführungsform können eine oder mehrere von Kameras auf Automotive Safety Integrity Level („ASIL“) B und/oder einem anderen ASIL arbeiten. In mindestens einer Ausführungsform können Kameratypen je nach Ausführungsform eine beliebige Bildaufnahmerate erreichen, z.B. 60 Einzelbilder bzw. Frames pro Sekunde (fps), 120 fps, 240 fps usw. In mindestens einer Ausführungsform können Kameras Rolling Shutters, Global Shutters, einen anderen Verschlusstyp oder eine Kombination davon verwenden. In mindestens einer Ausführungsform kann die Farbfilteranordnung eine Red-Clear-Clear-Clear („RCCC“)-Farbfilteranordnung, eine Red-Clear-Clear-Blue („RCCB“)-Farbfilteranordnung, eine Red-Blue-Green-Clear („RBGC“)-Farbfilteranordnung, eine Foveon X3-Farbfilteranordnung, eine Bayer-Sensor („RGGB“)-Farbfilteranordnung, eine Monochromsensor-Farbfilteranordnung und/oder eine andere Art von Farbfilteranordnung beinhalten. In mindestens einer Ausführungsform können zur Erhöhung der Lichtempfindlichkeit Clear-Pixel-Kameras, wie z.B. Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, verwendet werden.
  • In mindestens einer Ausführungsform können eine oder mehrere Kameras verwendet werden, um erweiterte Fahrerassistenzsystem-Funktionen („ADAS“; Advanced Driver Assistance System) auszuführen (z.B. als Teil einer redundanten oder ausfallsicheren Konstruktion). Zum Beispiel kann in mindestens einer Ausführungsform eine Multifunktions-Monokamera installiert sein, um Funktionen wie Spurverlassenswarnung, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung bereitzustellen. In mindestens einer Ausführungsform können eine oder mehrere der Kameras (z.B. alle Kameras) gleichzeitig Bilddaten (z.B. Video) aufzeichnen und bereitstellen.
  • In mindestens einer Ausführungsform können eine oder mehrere von Kameras in einer Montagebaugruppe montiert sein, z.B. in einer kundenspezifisch gestalteten (dreidimensional („3D“) gedruckten) Baugruppe, um Streulicht und Reflexionen aus dem Inneren des Autos (z.B. Reflexionen vom Armaturenbrett, die sich in den Außenspiegeln der Windschutzscheibe spiegeln) auszuschalten, die die Fähigkeit der Kamera zur Bilddatenerfassung beeinträchtigen können. In Bezug auf Flügelspiegelanordnungen können in mindestens einer Ausführungsform die Außenspiegel-Baugruppen kundenspezifisch in 3D gedruckt sein, so dass die Kameramontageplatte einer Form eines Flügelspiegels entspricht. In mindestens einer Ausführungsform können Kamera(s) in den Flügelspiegel integriert sein. In mindestens einer Ausführungsform können bei Seitenkameras eine oder mehrere Kamera(s) auch in vier Säulen an jeder Ecke eines Fahrgastraums integriert sein.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Teile der Umgebung vor dem Fahrzeug 100 einschließt (z.B. nach vorne gerichtete Kameras), für eine Umgebungsansicht verwendet werden, um dabei zu helfen, nach vorne gerichtete Pfade und Hindernisse zu identifizieren, sowie mit Hilfe von einer oder mehreren Steuereinheit(en) 136 und/oder Steuer-SoCs bei der Bereitstellung von Informationen zu helfen, die für die Erstellung eines Belegungsgitters und/oder die Bestimmung bevorzugter Fahrzeugpfade entscheidend sind. In mindestens einer Ausführungsform können nach vorne gerichtete Kameras verwendet werden, um viele gleiche ADAS-Funktionen wie beispielsweise LIDAR auszuführen, einschließlich, ohne darauf beschränkt zu sein, Notbremsung, Fußgängererkennung und Kollisionsvermeidung. In mindestens einer Ausführungsform können nach vorne gerichtete Kameras auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich, aber nicht beschränkt auf, Spurverlassenswarnungen („LDW“, Lane Departure Warnings), autonome Geschwindigkeitsregelung („ACC“, Autonomous Cruise Control) und/oder andere Funktionen wie Verkehrszeichenerkennung.
  • In mindestens einer Ausführungsform kann eine Vielzahl von Kameras in einer nach vorne gerichteten Konfiguration verwendet werden, die z.B. eine monokulare Kameraplattform umfasst, die einen CMOS („Complementary Metal Oxide Semiconductor“)-Farbbildgeber enthält. In mindestens einer Ausführungsform kann eine Weitwinkelkamera 170 verwendet werden, um Objekte wahrzunehmen, die von der Peripherie ins Blickfeld kommen (z.B. Fußgänger, kreuzender Verkehr oder Fahrräder). Obwohl in 1 B nur eine Weitwinkelkamera 170 dargestellt ist, kann es in anderen Ausführungsformen eine beliebige Anzahl (einschließlich Null) von Weitwinkelkamera(s) 170 am Fahrzeug 100 geben. In mindestens einer Ausführungsform kann eine beliebige Anzahl von Weitwinkelkamera(s) 198 (z.B. ein Weitwinkel-Stereokamerapaar) für die tiefenbasierte Objekterkennung verwendet werden, insbesondere für Objekte, für die ein neuronales Netzwerk noch nicht trainiert wurde. In mindestens einer Ausführungsform können die Weitbereichskamera(s) 198 auch zur Objekterkennung und -klassifizierung sowie zur grundlegenden Objektverfolgung verwendet werden.
  • In mindestens einer Ausführungsform kann eine beliebige Anzahl von Stereokamera(s) 168 auch in einer nach vorne gerichteten Konfiguration enthalten sein. In mindestens einer Ausführungsform kann eine oder mehrere von Stereokamera(s) 168 eine integrierte Steuereinheit enthalten, 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 einzigen Chip bereitstellen kann. In mindestens einer Ausführungsform kann eine solche Einheit verwendet werden, um eine 3D-Karte einer Umgebung des Fahrzeugs 100 zu erzeugen, 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 darauf beschränkt zu sein, kompakte(n) Stereosicht-Sensor(en) enthalten, die, ohne darauf beschränkt zu sein, zwei Kameralinsen (je eine links und rechts) und einen Bildverarbeitungschip enthalten können, der den Abstand zwischen dem Fahrzeug 100 und dem Zielobjekt messen und die erzeugten Informationen (z.B. Metadaten) verwenden kann, um autonome Notbrems- und Spurverlassenswarnfunktionen zu aktivieren. In mindestens einer Ausführungsform können zusätzlich oder alternativ zu den hier beschriebenen Stereokameras auch andere Typen von Stereokamera(s) 168 verwendet werden.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Teile der Umgebung seitlich des Fahrzeugs 100 einschließt (z.B. Seitensichtkameras), für die Umgebungsansicht verwendet werden und Informationen bereitstellen, die zur Erstellung und Aktualisierung eines Belegungsgitters sowie zur Erzeugung von Seitenaufprallwarnungen verwendet werden. Zum Beispiel könnte(n) in mindestens einer Ausführungsform die Surround- bzw. Umgebungskamera(s) 174 (z.B. vier Umgebungskameras wie in 1 B dargestellt) an dem Fahrzeug 100 positioniert sein. In mindestens einer Ausführungsform kann (können) die Umgebungskamera(s) 174, ohne darauf beschränkt zu sein, eine beliebige Anzahl und Kombination von Weitwinkelkamera(s) 170, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder ähnliche Kameras umfassen. Zum Beispiel können in mindestens einer Ausführungsform vier Fischaugenkameras an einer Vorderseite, einer Rückseite und an Seiten des Fahrzeugs 100 positioniert sein. In mindestens einer Ausführungsform kann das Fahrzeug 100 drei Surround-Kamera(s) 174 (z.B. links, rechts und hinten) verwenden und eine oder mehrere andere Kamera(s) (z.B. eine nach vorne gerichtete Kamera) als eine vierte Rundumsicht-Kamera nutzen.
  • In mindestens einer Ausführungsform können Kameras mit einem Sichtfeld, das Teile einer Umgebung an der Rückseite des Fahrzeugs 100 einschließt (z.B. Rückfahrkameras), für die Einparkhilfe, die Umgebungsansicht, Heckkollisionswarnungen und das Erstellen und Aktualisieren eines Belegungsgitters verwendet werden. In mindestens einer Ausführungsform kann eine Vielzahl von Kameras verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als nach vorne gerichtete Kamera(s) geeignet sind (z.B. die Weitbereichskameras 198 und/oder die Mittelbereichskamera(s) 176, die Stereokamera(s) 168), die Infrarotkamera(s) 172 usw.), wie hierin beschrieben.
  • In verschiedenen Situationen kann es wünschenswert sein, den Zustand einer Person, die sich in einem solchen Fahrzeug befindet oder ihm zugeordnet ist, zu bestimmen. Dies kann beispielsweise die Bestimmung eines Schläfrigkeits- oder Wachsamkeitszustands eines Fahrers dieses Fahrzeugs beinhalten. Ein Ansatz in Übereinstimmung mit verschiedenen Ausführungsformen kann sich eine oder mehrere Kameras oder Bildsensoren zunutze machen, wie sie vorstehend für ein solches Fahrzeug erörtert wurden, die Bild- oder Videodaten von zumindest einem Teil einer Person von Interesse erfassen können. Dazu kann beispielsweise eine dem Fahrer zugewandte Kamera gehören, die in der Lage ist, zumindest ein Gesicht eines Fahrers oder einer anderen Person zu erfassen, die auf dem Fahrersitz oder in einer anderen Position sitzt, die zumindest in gewissem Umfang der Fahrzeugsteuerung zugeordnet ist. Eine solche Kamera kann an jeder geeigneten Stelle positioniert sein, wie beispielsweise auf oder in der Nähe eines Kombiinstruments, eines Rückspiegels, einer linken Säule oder einer Berührungsschnittstelle, neben anderen derartigen Optionen. Eine solche Kamera kann eine Vollfarb- oder Graustufenkamera mit beliebiger Auflösung sein, und kann in verschiedenen Ausführungsformen auch Infrarot- (IR) oder andere Sensoren enthalten.
  • In mindestens einer Ausführungsform können Videos oder Bilder einer solchen Person zu bestimmten Zeiten, periodisch oder kontinuierlich aufgezeichnet werden. Falls die Aufnahme zu bestimmten Zeiten erfolgt, können diese Zeiten in Übereinstimmung mit einem Auswahlalgorithmus bestimmt werden, oder basierend zumindest teilweise auf einem oder mehreren Auslösern bestimmt werden, wie beispielsweise einem Signal von einem Fahrzeugsystem, das im Ansprechen auf eine Aktion oder ein Verhalten gesendet wird, das mit Schläfrigkeit des Fahrers in Verbindung gebracht werden kann. In anderen Ausführungsformen kann ein Auslöser im Ansprechen auf eine Veränderung in der Umgebung gesendet werden, z.B. beim Einfahren in ein belebtes Stadtgebiet, in dem möglicherweise mehr Aufmerksamkeit erforderlich ist, oder beim Übergang in die Abend- oder Nachtzeit, in der ein Fahrer mit größerer Wahrscheinlichkeit schläfrig ist. Ein solches Timing kann auch von einem Benutzer, einer Anwendung oder einem Gerät konfiguriert werden.
  • In mindestens einer Ausführungsform kann eine Reihe von Bildern oder eine Sequenz (z.B. ein Strom) von Videobildern bzw. Videoframes unter Verwendung einer oder mehrerer Kameras aufgenommen werden. Unter typischen Umständen werden diese Bilder oder Videoframes eine Darstellung mindestens eines Gesichtsteils einer Person von Interesse enthalten, wie in dem Bild 200 von 2A dargestellt. Abhängig von Faktoren wie beispielsweise einem Standort und einem Sichtfeld der Kamera in Bezug auf die Person kann das aufgenommene Bild hauptsächlich den Gesichtsbereich der Person darstellen, oder kann eine größere Ansicht umfassen, die Teile des Oberkörpers, der Arme usw. einschließen kann. In mindestens einer Ausführungsform kann ein solches Bild an ein Gesichtserkennungsnetzwerk oder einen anderen Gesichtsdetektor weitergeleitet werden, der versuchen kann, festzustellen, ob ein Gesicht einer Person in diesem Bild vorhanden ist. Ein Gesicht kann nicht dargestellt werden, wenn sich die Person beispielsweise gerade nicht an diesem Ort befindet, von der Kamera abgewandt ist oder sich anderweitig in einer Position befindet, in der ein ausreichender Teil des Gesichts dieser Person nicht im Bild dargestellt ist, um eine sichere Gesichtserkennung zu ermöglichen. Es kann auch der Fall sein, dass ein Hindernis die Sicht auf das Gesicht versperrt, wie beispielsweise ein Arm oder eine Hand, die sich während des Betriebs des Fahrzeugs zwischen der Kamera und dem Gesicht befindet.
  • Falls ein Gesicht in einem Bild (oder Videoframe usw.) erkannt wird, dann kann dieses Bild für die Analyse ausgewählt werden. Der Einfachheit halber wird in vielen Beispielen der Begriff „Bild“ oder „Bilddaten“ verwendet, aber es versteht sich, dass sich dies auch auf Videoframes, Videodaten, Sensordaten oder jede andere Art von Daten in jedem beliebigen Format beziehen kann, die Informationen über einen oder mehrere visuelle Aspekte einer Person erfassen oder repräsentieren können. Es kann sein, dass nicht jedes aufgenommene Bild analysiert wird, wie beispielsweise wenn ein System jedes zehnte Bild analysieren könnte, falls sich die Person in einem normalen oder wachen Zustand befindet, aber Bilder häufiger analysieren kann, falls sich die Person in einem weniger wachen oder schläfrigen Zustand befindet. Bilder könnten auch bei bestimmten Umgebungsbedingungen oder im Fahrkontext häufiger analysiert werden, wie an anderer Stelle hierin ausführlicher beschrieben. In mindestens einer Ausführungsform können Daten, die dem Gesichtsbereich eines Bild entsprechen, verwendet werden, um einen Teil des zu analysierenden Bildes auszuwählen, um die benötigte Speicher- und Verarbeitungskapazität zu verringern und ebenso, um sich auf einen relevanteren Teil des Bildes zu konzentrieren, welches dazu beitragen kann, die Genauigkeit von Schlussfolgerungen oder Bestimmungen für zumindest einige Systeme zu verbessern.
  • Bei einem zu analysierenden Bild kann zumindest ein Teil des Gesichts dieses Bilds unter Verwendung eines ersten neuronalen Netzwerks, wie beispielsweise einem Netzwerk zum Erkennen von Gesichtsmerkmalen, verarbeitet werden. Der Gesichtsabschnitt kann durch Koordinaten oder einen umgrenzenden Rahmen bzw. eine Bounding Box identifiziert werden, die von dem Gesichtserkennungsnetzwerk bereitgestellt werden. Im Rahmen der verschiedenen Ausführungsformen können auch andere Mechanismen zur Merkmalserkennung verwendet werden. Ein Netzwerk zum Erkennen von Gesichtsmerkmalen kann dazu trainiert sein, die Positionen bestimmter Arten von Orientierungspunkten, Referenzpunkten oder Merkmalen in einem Bild abzuleiten. Dies kann ein Identifizieren beliebiger von 100 verschiedenen Merkmalen oder mehr umfassen, die in einem Eingangsbild dargestellt oder erkennbar sind. Wie in 2A dargestellt, kann dies ein Identifizieren von Orientierungspunkten 202, wie beispielsweise die Ober- und Unterseiten der Ohren der Person, umfassen. Solche Orientierungspunkte können zumindest insofern nützlich sein, als sie helfen können, eine Pose bzw. Haltung oder Orientierung des Kopfs in Bezug auf die Kamera, die das Bild aufnimmt, zu bestimmen. Andere Orientierungspunkte 232 können ebenfalls nützlich sein, wie diejenigen, die in der Bildregion 230 von 2B dargestellt sind. Diese Orientierungspunkte entsprechen Extremen (hier oben, unten, links und rechts) jeder Iris einer Person, welche dann zum Bestimmen von Informationen wie beispielsweise einem Ausmaß, in welchem diese Person sein oder ihr Auge geöffnet hat, verwendet werden können. Änderungen in den relativen Positionen dieser Orientierungspunkte 232 zwischen aufeinanderfolgenden Einzelbildern bzw. Frames können zum Erkennen von Blinzeln sowie zum Bestimmen von Werten wie beispielsweise der Amplitude, der Geschwindigkeit oder der Dauer eines einzelnen Blinzelns verwendet werden. In mindestens einer Ausführungsform können Informationen für beliebige erkannte Orientierungspunkte von einem Netzwerk zum Erkennen von Gesichtsmerkmalen ausgegeben werden, die beispielsweise Koordinaten eines bestimmten Orientierungspunkts in dem Bild sowie eine Identifizierung der Art des identifizierten Orientierungspunkts enthalten können.
  • Daten für zumindest einige dieser Merkmale oder Orientierungspunkte können auch als Eingabe für andere neuronale Netzwerke, Algorithmen oder Module zum Bestimmen anderer Aspekte oder Verhaltensweisen bereitgestellt werden. Beispielsweise können Gesichtsmerkmale, die sich auf die Augen einer Person beziehen, einem neuronalen Netzwerk zum Bestimmen des Augenzustands bereitgestellt werden, zusammen mit mindestens einem Gesichtsteil eines Eingabebilds, um einen Bereich des Eingangsbilds zu bestimmen, der den Augen einer Person entspricht. In anderen Ausführungsformen können einige der Gesichtsmerkmale verwendet werden, um das Eingangsbild auf nur den/die Augenbereich(e) zu beschneiden, und diese beschnittenen Bilddaten können dem neuronalen Netzwerk zum Bestimmen des Augenzustands als Eingabe zur Verfügung gestellt werden. Auf diese Weise kann sich das neuronale Netzwerk für den Augenzustand auf den Teil des Eingangsbilds konzentrieren, der den Augen entspricht, um genauere Rückschlüsse auf den Augenzustand zu ermöglichen und einen entsprechenden Netzwerktrainingsvorgang zu vereinfachen. In mindestens einer Ausführungsform kann ein Augenzustandsnetzwerk für ein binäres Entscheidungsnetzwerk einen Zustand jedes Auges ausgeben, wie beispielsweise „Auge offen“ oder „geschlossen“, oder Werte wie „offen“, „geschlossen“ oder „teilweise offen“ (möglicherweise mit einem gewissen Wert der Offenheit) für andere. Dies kann ein gewisses Maß an Offenheit für einen teilweise offenen Zustand beinhalten, wie beispielsweise einen abgeleiteten Abstand oder Prozentsatz einer Gesamtblinzelamplitude, zusammen mit einem Vertrauens- bzw. Konfidenzwert in dieser Zustandsbestimmung.
  • Daten für zumindest einige dieser Orientierungspunkte können auch an ein neuronales Netzwerk, einen Prozess oder einen Algorithmus zum Bestimmen der Kopfhaltung der bzw. für die Person weitergegeben werden, zumindest in Bezug auf einen Blickwinkel einer Kamera, die zur Aufnahme des Bilds verwendet wird. Wie in 2A dargestellt, können die relativen Abstände und Positionen zumindest einiger dieser Gesichtsmerkmale verwendet werden, um eine Pose des Kopfs bzw. Kopfhaltung zu bestimmen, wie beispielsweise eine Drehung, eine Neigung und ein Gieren des Kopfs relativ zu einer Standardausrichtung, einer Achse oder einem Koordinatensystem, wie es einem Kopf entsprechen kann, der in dem Bild zentriert und so positioniert ist, dass er direkt in die Kamera zu schauen scheint, oder orthogonal zu einer Ebene des 2D-Bilds (falls die Bilddaten in 2D vorliegen). Haltungsinformationen können nützlich sein zum Bestimmen von Unterschieden zwischen Orientierungspunktpositionen, die auf die Kopfhaltung oder -ausrichtung und nicht auf eine Aktion oder ein Verhalten der Person zurückzuführen sind. Die Haltungsinformationen können auch verwendet werden, um die Positionen dieser Orientierungspunkte zu normalisieren oder den Einfluss der Pose zu entfernen. Beispielsweise können die Haltungsinformationen verwendet werden, um eine Transformation zu bestimmen, die auf die ermittelten Positionen der Orientierungspunkte anzuwenden ist, um eine Darstellung 260 der Orientierungspunkte zu erzeugen, bei der der Einfluss der Kopfhaltung entfernt wurde, so dass die Merkmale dem Gesicht entsprechen, als ob sich das Gesicht in der Standardorientierung oder -position befände. Ein solcher Ansatz kann dazu beitragen, genauere Bestimmungen von Abständen zwischen Merkmalen oder Orientierungspunkten sowie von Veränderungen dieser Abstände im Laufe der Zeit zu erhalten. In mindestens einer Ausführungsform können die Daten von Gesichtsmerkmalen mit einem dreidimensionalen (3D) Grundwahrheitsmodell des Kopfes verglichen werden, um Orientierungspunkte mit dem Modell zu korrelieren und eine relative Ausrichtung des Modells in dem Bild zu bestimmen. In mindestens einer Ausführungsform kann eine solvePnP-Technik verwendet werden, um die Kopfposition und die Drehung in drei Dimensionen zu schätzen.
  • In manchen Fällen kann es ausreichend sein, ein einziges Netzwerk zum Bestimmen von Informationen über das Blinzeln zu verwenden, anstatt sowohl ein Netzwerk für Gesichtsmerkmale als auch ein Netzwerk für den Augenzustand zu verwenden. Zum Beispiel können, wie in Bild 270 in 2D dargestellt, Gesichtsmerkmale 272 verwendet werden, um zu bestimmen, wann die Augen einer Person geöffnet sind, und, wie in FIG. 280 dargestellt, können Gesichtsmerkmale 282 verwendet werden, um zu bestimmen, wann die Augen einer Person geschlossen sind, sowie Zustände dazwischen. Diese Orientierungspunkte können dann verwendet werden, um Informationen wie beispielsweise die Blinzelhäufigkeit zu bestimmen, zusätzlich zu Blinzelparametern wie beispielsweise Blinzelamplitude, -dauer und -geschwindigkeit. Es kann jedoch vorkommen, dass sich das Gesicht des Benutzers in einer Position befindet, z.B. in einer „extremen“ Position, in der diese Orientierungspunkte nicht oder zumindest nicht mit ausreichender Sicherheit oder Genauigkeit identifiziert werden können. Dies könnte, wie bereits erwähnt wurde, auftreten, wenn ein Benutzer von der Kamera wegschaut, die Sicht auf das Gesicht teilweise verdeckt ist, die Person eine spiegelnde Brille trägt und so weiter. Jegliche Unsicherheit bei diesen Orientierungspunkten oder Zwischenmerkmalen kann zu einer Unsicherheit bei der Bestimmung der Blinzelparameter führen.
  • Dementsprechend kann ein Augenzustandsnetzwerk verwendet werden, das den Augenzustand zumindest unter diesen extremen Bedingungen genauer bestimmen kann. Ein Augenzustandsnetzwerk kann in einer Ende-zu-Ende-Weise trainiert werden, so dass das Netzwerk ohne die Notwendigkeit irgendwelcher Zwischenmerkmale oder -werte direkt aus den Eingangsbilddaten auf den Augenzustand schließt. Solange eine ausreichende Menge mindestens eines Auges in Eingangsbilddaten repräsentiert ist, kann ein Augenzustandsnetzwerk den Augenzustand mit relativer Genauigkeit ableiten. Bei der Bestimmung des Blinzelns können die Zustände „offenes Auge“ und „geschlossenes Auge“ mit relativer Genauigkeit bestimmt werden, so dass auch dann, wenn die Zwischenwerte für Zustände teilweise offener oder geschlossener Augen eine gewisse Unsicherheit aufweisen, die Gesamtblinzelhäufigkeit genau bestimmt werden kann. In 2F ist beispielsweise ein Diagramm 290 des Augenzustands (z.B. Seitenverhältnis) über der Zeit (z.B. Anzahl von Einzelbildern in Folge) dargestellt. In diesem Beispiel ist zu erkennen, dass viele der Messungen einem offenen Zustand der Augen entsprechen und Werte (normiert auf 1) aufweisen, die nahe dem maximalen offenen Zustand oder der Blinzelamplitude liegen. Ein Zustand eines geschlossenen Auges in der Nähe des unteren Bereichs der Grafik entspricht ungefähr der Mitte des Blinzelvorgangs, oder zumindest dem Punkt, an dem das Seitenverhältnis seinen niedrigsten Wert hat. Selbst wenn Messungen des Auges für teilweise geöffnete Zustände nicht sehr genau sind, ändert sich die Gesamtform der Kurve nicht wesentlich, so dass die Dauer zwischen offenen Zuständen auf beiden Seiten des Blinzelns genau bestimmt werden kann. Solange also genug von mindestens einem Auge in aufgenommenen Bilddaten sichtbar ist, kann ein Augenzustandsnetzwerk den Augenzustand mit ausreichender Genauigkeit bestimmen, um selbst für extreme Positionen oder Bedingungen genaue Blinzelhäufigkeitsbestimmungen zu generieren. In mindestens einer Ausführungsform kann ein Algorithmus zum Extrahieren von Blinzelmerkmalen eine Ausgabe von einem Augenzustandsnetzwerk empfangen, die angibt, wann ein Auge in einem aktuellen Bild als offen oder geschlossen bestimmt wird. Die nächstgelegenen Frames in einer Sequenz können analysiert werden, um zu bestimmen, ob in aufeinanderfolgenden Frames ein Schließen des Auges erfasst wurde. Falls es mehrere Frames mit geschlossenen Augen gibt, kann das kleinste Augenseitenverhältnis (EAR; eye aspect ratio) bestimmt und als ein unterer Punkt bezeichnet werden, wie in 2F dargestellt, welcher zumindest teilweise auf Gesichtsmerkmalsdaten basieren kann. Der Anfangsframe und der Endframe für das Blinzeln können dann ebenfalls unter Verwendung von EAR-Werten bestimmt werden, die aus Gesichtsmerkmalsdaten abgeleitet wurden.
  • Wie bereits erwähnt, kann ein binäres Augenzustandsnetzwerk in einigen Ausführungsformen mit einem Gesichtsmerkmalnetzwerk verwendet werden, um Blinzelmerkmale zu extrahieren. Ein binäres Augenzustandsnetzwerk kann als ein zuverlässiger binärer Klassifikator dienen und kann für ein bestimmtes Blinzeln mindestens einen Frame identifizieren, bei dem das Auge als geschlossen erkannt wurde. Jeder beliebige dieser identifizierten Frames sowie potenziell nahe gelegene Frames in einer Sequenz können analysiert werden, um einen unteren Punkt bei der Bestimmung des Seitenverhältnisses zu bestimmen oder abzuleiten. Das Seitenverhältnis kann basierend zumindest teilweise auf Gesichtsmerkmalen für diesen Frame berechnet werden, und kann folglich zum Bestimmen eines minimalen Augenseitenverhältnisses für diesen bestimmten Benutzer verwendet werden, welches zwischen verschiedenen Personen unterschiedlich sein kann. Die Frames in dieser Sequenz können dann in jeder Richtung analysiert werden, um einen Blinzelzustandspunkt und einen Blinzelendpunkt zu identifizieren, bei denen das Auge vollständig geöffnet, fast vollständig geöffnet oder zumindest bei oder nahe einem Maximalwert über einen Zeitraum ist. Die Sequenz kann analysiert werden, um ein maximales Seitenverhältnis zu bestimmen, das als ein normales maximales Seitenverhältnis für einen offenen Augenzustand festgelegt werden kann, zumindest unter aktuellen Bedingungen für dieses bestimmte Subjekt. Dieser Wert kann verwendet werden, um Start- und Endpunkte des Blinzelns zu bestimmen, welches dazu beitragen kann, genauere Häufigkeits- und Dauer-Berechnungen zu produzieren.
  • 3 veranschaulicht Komponenten eines beispielhaften Schläfrigkeitsabschätzungssystems 300, das in Übereinstimmung mit verschiedenen Ausführungsformen verwendet werden kann. In diesem Beispiel können ein oder mehrere Bilder 302, die von einer oder mehreren Kameras (oder Sensoren usw.) aufgenommen wurden und zumindest teilweise auf eine Person von Interesse gerichtet sind, als Eingabe für ein Modul 304 (oder ein System, eine Anwendung, einen Dienst oder einen Prozess usw.) zur Schläfrigkeitsabschätzung bereitgestellt werden. Bei einem Fahrzeug kann sich dieses Modul 304 im Fahrzeug selbst oder an einem anderen Ort befinden, wie später hierin beschrieben, wie beispielsweise in der Cloud oder auf einem entfernten Server, der über mindestens ein drahtloses Netzwerk zugänglich ist. In anderen Beispielen können Teile dieser Funktionalität, die sich auf die Gesichtserkennung und/oder die Erkennung von Gesichtsmerkmalen beziehen, auf dem Fahrzeug ausgeführt werden, um die Menge der zur Analyse zu übertragenden Daten im Vergleich zu den vollständigen Bilddaten zu reduzieren.
  • In diesem Beispiel werden die Bilddaten an ein Gesichtserkennungsnetzwerk 306 weitergeleitet. Dieses Netzwerk kann ein beliebiges geeignetes neuronales Netzwerk sein, wie beispielsweise ein faltendes neuronales Netzwerk (CNN), das darauf trainiert ist, das Vorhandensein eines Gesichts in Eingangsdaten abzuleiten. Falls in einem Bild kein Gesicht erkannt wird, zumindest mit minimaler Konfidenz, dann können die Bilddaten verworfen werden, und wird keine weitere Analyse durchgeführt, bis nachfolgende Daten empfangen werden. Falls ein Gesicht erkannt wird, dann kann zumindest ein Teil der Bilddaten an mindestens ein Netzwerk zum Bestimmen von Gesichtsmerkmalen 314 zur Analyse weitergeleitet werden. In mindestens einigen Ausführungsformen können auch Informationen über die Position des erkannten Gesichts in dem Bild weitergeleitet werden, oder es können die Eingangsbilddaten auf den Gesichtsbereich zugeschnitten werden, bevor sie dem Netzwerk 314 zum Erkennen von Gesichtsmerkmalen als Eingabe bereitgestellt werden. Wie ersichtlich sein sollte, können zusätzliche Komponenten, Prozesse oder Module für zumindest einige dieser Funktionen verwendet werden, wie beispielsweise ein Modul, das in der Lage ist, ein Eingangsbild auf eine Gesichtsregion zuzuschneiden, wenn Koordinaten der von dem Gesichtserkennungsnetzwerk bereitgestellten Gesichtsregion gegeben sind.
  • In mindestens einer Ausführungsform können Informationen zu einem erkannten Gesicht auch verwendet werden, um zu versuchen, eine Person zu identifizieren, die einem erkannten Gesicht entspricht. Dies kann durch das Gesichtserkennungsnetzwerk oder durch ein separates Gesichtserkennungsmodul oder -netzwerk in Kommunikation mit dem Gesichtserkennungsnetzwerk erfolgen. Das Eingangsbild, erfasste Gesichtsdaten oder andere Informationen (einschließlich potenzieller Gesichtsmerkmale, die in einigen Ausführungsformen von einem Netzwerk zum Erkennen von Gesichtsmerkmalen 314 bestimmt werden) können mit Gesichtsdaten in einer Personendatenbank 308 oder einem anderen solchen Ort verglichen werden. Falls die Person mit hinreichender Konfidenz identifiziert werden kann, wie beispielsweise mit einer Konfidenz, die zumindest einem Mindestschwellenwert für die Konfidenz genügt, dann kann eine weitere Bestimmung dahingehend durchgeführt werden, ob es ein Profil für diese Person gibt, das in einer Profildatenbank 310 gespeichert oder anderweitig zugänglich ist. Wie später noch näher erläutert werden wird, können solche Profilinformationen dazu verwendet werden, spezifische Blinzelverhalten eines bestimmten Benutzers zu bestimmen, welches verwendet werden kann, um genauere Schläfrigkeitsabschätzungen zu treffen, indem Unterschiede im Blinzelverhalten zwischen verschiedenen Individuen berücksichtigt werden.
  • Wie dargestellt, können Bilddaten für mindestens eine Gesichtsregion, sowie jegliche Ausgaben des Gesichtserkennungsnetzwerks 306 und jegliche Personenprofildaten, an ein oder mehrere neuronale Netzwerke zur Analyse weitergeleitet werden. In diesem Beispiel werden die Daten an ein Gesichtsmerkmalerkennungsnetzwerk 314, ein Kopfhaltungsbestimmungsnetzwerk 312 und ein Augenzustandsbestimmungsnetzwerk 316 weitergeleitet, obwohl im Rahmen der verschiedenen Ausführungsformen auch andere Netzwerke, Algorithmen oder Prozesse verwendet werden können. In diesem Beispiel kann das Gesichtsmerkmalbestimmungsnetzwerk 314 zumindest einen Teil des Gesichts eines Eingangsbilds analysieren, um zu versuchen, die Positionen von so vielen Gesichtsmerkmalen wie möglich zu bestimmen. Das Netzwerk kann dazu trainiert sein, eine beliebige Anzahl verschiedener Orientierungspunkte zu erkennen, wie beispielsweise über 100 verschiedene Orientierungspunkte in mindestens einer Ausführungsform, und kann die Position jedes erkannten Orientierungspunkts in dem Bild, den Typ dieses Orientierungspunkts und eine Konfidenz in diese Bestimmung oder Schlussfolgerung ausgeben.
  • In mindestens einer Ausführungsform können mindestens einige der Gesichtsmerkmalsdaten, potenziell zusammen mit Eingangsbilddaten, an ein Kopfhaltungsbestimmungsnetzwerk 312 übermittelt werden. Das Kopfhaltungsbestimmungsnetzwerk kann dazu trainiert sein, Kopfhaltungs- oder Orientierungsdaten, wie beispielsweise Roll-, Nick- und Gierbewegungen, basierend zumindest teilweise auf den relativen Positionen der Gesichtsmerkmale in dem Eingangsbild abzuleiten. In mindestens einer Ausführungsform kann das Kopfhaltungsnetzwerk abgeleitete Werte für jedes von Rollen, Nicken und Gieren oder andere derartige Ausrichtungsbestimmungen zusammen mit einem oder mehreren entsprechenden Konfidenzwerten ausgeben. In einigen Ausführungsformen kann ein Kopfhaltungsbestimmungsnetzwerk ein Ende-zu-Ende-Netzwerk sein, das die Kopfhaltung aus Eingangsbilddaten ohne die Verwendung von Gesichtsmerkmalsdaten ableitet, welches das Kopfhaltungsbestimmungsnetzwerk robuster machen würde, aber da die Gesichtsmerkmale in diesem System ohnehin bestimmt werden, können diese Merkmale bzw. Orientierungspunkte verwendet werden, um die Kopfhaltung mit ähnlicher Genauigkeit unter den meisten Bedingungen effizienter zu bestimmen. Falls die Bedingungen des Kopfs verhindern, dass die Orientierungspunkte genau sind, dann können die Kopfhaltungsinformation ohnehin nicht verwendet werden, wie an anderer Stelle hierin beschrieben.
  • Die Kopfhaltungsinformationen können zusammen mit den Gesichtsmerkmalsdaten an ein Blinzelparameterbestimmungsmodul 318 übermittelt werden. In mindestens einer Ausführungsform kann dieses Modul die Kopfhaltungsinformationen verwenden, um die Gesichtsmerkmalsdaten zu normalisieren oder Abweichungen in relativen Abständen zwischen Orientierungspunkten aufgrund der Ausrichtung des Gesichts in den Eingangsbilddaten zu entfernen. Das Blinzelparameterbestimmungsmodul kann dann Daten aus diesem Bild sowie aus früheren Bildern in dieser Sequenz verwenden, um Werte für verschiedene Blinzelparameter zu bestimmen. Dies kann z.B. die Bestimmung der Blinzelamplitude, -geschwindigkeit und -dauer über einen kürzlichen Zeitraum umfassen, wie beispielsweise die letzten zehn Sekunden, dreißig Sekunden oder die letzte Minute. Werte für andere Blinzel- oder Zustandsparameter können im Rahmen der verschiedenen Ausführungsformen ebenfalls bestimmt werden. Ferner können, während diese Blinzelparameter von Hand erstellt werden und leicht verständlich sein können, zumindest einige dieser Parameter zuvor unbestimmte Parameter sein, die von einem Netzwerk während des Trainings gelernt werden. In diesem Beispiel können diese Blinzelparameterwerte dann einem temporalen Netzwerk, wie beispielsweise einem Long Short Memory (LSTM)-Netzwerk 322, einem Transformator, einer Gate Recurrent Unit (GRU) oder einer Support Vector Machine (SVU) zur Analyse zugeführt werden. Die Blinzelparameterwerte können mit anderen Schläfrigkeitsindikatorsignalen, wie beispielsweise Lenkradmustern (z.B. Amplitude, Häufigkeit oder Standardabweichung der Lenkradbewegung, Rückwärtsfahren usw.), Spurhaltemustern (z.B. Anzahl der Fahrspurüberquerungen, Standardabweichung der Fahrspurposition), Elektroenzephalographie-/Elektrokardiographie-(EEG/ECG)-Mustern und dergleichen, als Eingabe in das (LSTM) Netzwerk 322 verknüpft werden. Ein LSTM-Netzwerk kann Blinzelwerte, die zu unterschiedlichen Zeiten ermittelt wurden, unterschiedlich gewichten, z.B. indem es Ereignisse in der jüngsten Vergangenheit stärker gewichtet als Ereignisse in der fernen Vergangenheit, und kann diese Informationen nutzen, um einen Schläfrigkeitswert für die Person abzuleiten. Die stärkere Gewichtung von Daten aus der jüngeren Vergangenheit trägt dazu bei, dass das System robuster gegenüber Änderungen der Umgebungsdaten oder des Fahrkontextes oder physiologischen Änderungen bei einem Benutzer im Laufe der Zeit ist, während es gleichzeitig die im Laufe der Zeit bei einer bestimmten Person beobachteten Muster berücksichtigt. Wie weiter unten erläutert wird, kann dies eine Bestimmung eines ersten Zustandswerts umfassen, der beispielsweise einem Wert der Karolinska-Schläfrigkeitsskala (KSS) zum Bestimmen des Schläfrigkeitszustands entsprechen kann. Es können auch andere Zustandswerte bestimmt werden, wie z.B. ein beliebiger Wert auf der Schläfrigkeitsskala (z.B. ein Wert auf der Stanford-Schläfrigkeitsskala oder der Epworth-Schläfrigkeitsskala) oder ein Wert auf einer beliebigen Skala, die für Müdigkeit aufgrund von Schläfrigkeit steht, für schläfrigkeitsbezogene Zustandsbestimmungen. Ein solcher Wert kann auch in Bezug auf eine beliebige Skala (z.B. eine subjektive oder eine gut performende objektive Skala) generiert werden, die für einen Leistungs- oder Fähigkeitsverlust repräsentativ ist, wie z.B. einen Verlust des Fahrvermögens aufgrund von Schläfrigkeit oder Müdigkeit (oder eines anderen Zustands von Interesse). In mindestens einigen Ausführungsformen kann ein temporales Netzwerk wie beispielsweise ein LSTM genauere Ergebnisse liefern als Modelle oder Netzwerke wie beispielsweise ein SVM, mit denen versucht werden kann, Schläfrigkeit augenblicklich zu bestimmen, anstatt ein oder mehrere Muster über einen Zeitraum auf der Grundlage mehrerer Lidschläge zu analysieren.
  • Wie bereits erwähnt, ist ein Schläfrigkeitswert möglicherweise nicht immer zuverlässig, insbesondere bei extremen Bedingungen wie beispielsweise einem Kopf, der während der Bildaufnahme deutlich von der Kamera weggedreht ist. Um eine robuste Schläfrigkeitsabschätzung für solche Situationen bereitzustellen, kann eine zweite Abschätzung der Schläfrigkeit mit Hilfe eines Augenzustandsnetzwerks 316 durchgeführt werden. In diesem Beispiel kann ein Augenzustandsnetzwerk 316 Gesichtsmerkmalsdaten von einem Gesichtsmerkmalsnetzwerk empfangen, zumindest für Merkmale bzw. Orientierungspunkte (oder Begrenzungsfelder usw.), die sich auf die Augen einer Person beziehen. Das Augenzustandsnetzwerk kann dann diese Informationen verwenden, um sich nur auf einen oder mehrere Teile eines Eingangsbilds zu konzentrieren, die ein oder mehrere Augen einer Person repräsentieren. In anderen Ausführungsformen kann das Augenzustandsnetzwerk ein Eingangsbild oder zumindest einen Gesichtsbereich des Bilds analysieren, ohne Gesichtsmerkmalsdaten zu empfangen. Das Augenzustandsnetzwerk 316 kann dazu trainiert sein, den Zustand eines Auges in einem Bild zu bestimmen, z.B. ob das Auge vollständig geöffnet, vollständig geschlossen oder teilweise geöffnet/geschlossen ist. In mindestens einigen Ausführungsformen kann das Netzwerk einen Wert ableiten, der für „Offenheit“ oder „Geschlossenheit“ repräsentativ ist, wie beispielsweise einen Wert zwischen 0 für vollständig geschlossen und 1 für vollständig offen. Ein „vollständig geöffnetes“ Auge kann einem Auge entsprechen, das bis zu einem für diesen Benutzer beobachteten oder anderweitig möglichen maximalen Augenlidabstand geöffnet ist. Das Netzwerk kann einen solchen Wert für jedes erkannte Auge oder für beide Augen zusammen ausgeben, zusammen mit einem entsprechenden Konfidenz- bzw. Vertrauenswert für jede Bestimmung. In mindestens einer Ausführungsform können diese Informationen als weitere Eingabe für ein Blinzelparameterbestimmungsmodul 318 bereitgestellt werden, zur Verwendung bei der Durchführung genauerer Blinzelparameter-Bestimmungen. In diesem Beispiel können die Augenzustandsinformationen zusammen mit verwandten Informationen über einen kürzlichen Zeitraum an ein Modul 320, ein System, eine Vorrichtung, einen Prozess oder einen Dienst zum Bestimmen der Blinzelhäufigkeit geliefert werden. Das Blinzelhäufigkeitsbestimmungsmodul 320 kann Änderungen des Augenzustands über einen kürzlichen Zeitraum analysieren, um das Auftreten von Blinzelvorgängen durch eine Person zu bestimmen, und kann dies verwenden, um einen Blinzelhäufigkeitswert über einen kürzlichen Zeitraum zu berechnen. Diese Blinzelhäufigkeitsinformationen können zusammen mit Blinzelhäufigkeitsinformationen für frühere Zeiträume in diesem Beispiel einem anderen LSTM-Netzwerk 324 zur Verfügung gestellt werden, welches unterschiedliche Gewichtungen auf Blinzelhäufigkeitsdaten anwendet, die für verschiedene Zeiträume in der jüngsten Vergangenheit erhalten wurden. Die Frequenzinformationen können mit anderen Schläfrigkeitsindikatorsignalen wie beispielsweise Lenkradmustern (z.B. Amplitude, Häufigkeit oder Standardabweichung von Lenkradbewegungen, Rückwärtsfahrten usw.), Spurhaltemustern (z.B. Anzahl der Fahrspurüberquerungen oder Standardabweichung der Fahrspurpositionen), EEG/ECG-Daten usw. als Eingabe in das (LSTM) Netzwerk 324 verkettet werden. Dieses LSTM-Netzwerk 324 kann dann einen zweiten Schläfrigkeitswert für die Person ableiten, welcher einer Bestimmung eines zweiten KSS-Werts entsprechen kann. Während diese Werte in einigen Ausführungsformen separat bereitgestellt werden können, können diese Werte in diesem Beispiel verwendet werden, um eine einzige Ausgangsschätzung der Schläfrigkeit zu liefern. Wenn ferner die Konfidenzwerte für die Gesichtsmerkmalsdaten nicht mindestens einen minimalen Konfidenzschwellenwert erfüllen, wie beispielsweise bei einer extremen Kopfposition oder einem Bild, bei dem das Gesicht teilweise verdeckt ist, dann können die Gesichtsmerkmalsdaten dem ersten LSTM-Netzwerk nicht zur Verfügung gestellt werden, und kann nur das zweite LSTM-Netzwerk verwendet werden, um eine Schläfrigkeitsvorhersage für dieses Bild basierend auf einem oder mehreren Ergebnissen des Augenzustandsnetzwerks zu treffen.
  • Stimmen die Schläfrigkeitswerte überein, zumindest innerhalb eines zulässigen Übereinstimmungsbereichs, dann kann diese Schätzung als ein Ausgabeschläfrigkeitswert 330 bereitgestellt werden. Stimmen die Werte nicht überein, können die relativen Konfidenzwerte für die separaten Bestimmungen analysiert werden. Falls eine Bestimmung eine hohe Konfidenz aufweist, die andere jedoch nicht, dann kann die Bestimmung mit hoher Konfidenz bereitgestellt werden. In anderen Ausführungsformen kann der Wert eine Mischung der beiden Bestimmungen sein, gewichtet nach Konfidenz, so dass dann, wenn ein Wert von 8 eine hohe Konfidenz hat und ein Wert von 5 eine niedrige Konfidenz hat, ein Endergebnis von 7 bestimmt werden könnte, basierend auf einer höheren Gewichtung, die auf den Wert von 8 angewandt wird. Verschiedene andere Ansätze können im Rahmen der verschiedenen Ausführungsformen ebenfalls verwendet werden.
  • Wie erwähnt, können Werte abgeleitet oder generiert werden, die einen Überblick über den Zustand einer Person zu einem bestimmten Zeitpunkt oder in einem Zeitraum geben. Während Werte wie beispielsweise KSS-Werte bereits früher erzeugt wurden, um zu versuchen, ein Maß oder einen Hinweis auf einen bestimmten Zustand zu liefern, boten frühere Ansätze aufgrund von Faktoren wie beispielsweise ungenauer Merkmalserkennung oft keine ausreichende Genauigkeit und Robustheit. Ein System in Übereinstimmung mit verschiedenen Ausführungsformen kann solche Unzulänglichkeiten überwinden, indem es mehrere Netzwerke verwendet, wobei diese Netzwerke unterschiedliche Informationen nutzen oder sich auf diese stützen können und somit nicht durch einen einzigen Satz ungenauer Merkmale oder Werte eingeschränkt sind. Wie erwähnt, kann dies die Verwendung eines Augen-Öffnen-Schließen-Netzwerks zur Blinzelerkennung, welches zum Ableiten eines Blinzelhäufigkeitsmerkmals (z.B. PerCLOS) verwendet werden kann, sowie eines Gesichtsmerkmalnetzwerks für die Extraktion von Blinzelmerkmalen einschließlich Blinzelamplitude, Blinzeldauer und Blinzelgeschwindigkeit beinhalten. Ein solches System kann auch zwei temporale Netzwerke (z.B. LSTM) enthalten, um Blinzelereignisse und -merkmale mit KSS zu korrelieren. Basierend zumindest teilweise auf der Vertrauenswürdigkeit von Gesichtsmerkmalen und Kopfpositionsdaten kann ein System zur Schläfrigkeitsschätzung Merkmale mit hoher Konfidenz auswählen, um diese temporalen Netzwerke zu trainieren. Falls die Konfidenz in die Gesichtsmerkmale hoch ist, kann ein temporales Netzwerk unter Verwendung von Blinzelhäufigkeitsmerkmalen zusammen mit Blinzelamplitude, Blinzeldauer und Blinzelgeschwindigkeit trainiert werden, und diese Merkmale können unter Verwendung von Kopfpositionsdaten frontalisiert werden (oder der Einfluss auf die Position aufgrund der Orientierung kann entfernt werden). Andernfalls, falls die Konfidenz in die Gesichtsmerkmale gering ist, kann das temporale Netzwerk nur mit Blinzelhäufigkeitsdaten trainiert werden. Ein solcher Ansatz kann die Genauigkeit der Schläfrigkeitsschätzung aufgrund der Verwendung mehrerer Netzwerke und einer robusten Merkmalsauswahl erheblich verbessern.
  • 4A veranschaulicht einen beispielhaften Prozess 400 zum Bestimmen von Schläfrigkeit, das in Übereinstimmung mit verschiedenen Ausführungsformen verwendet werden kann. Es versteht sich, dass für diesen und andere hierin diskutierte Prozesse zusätzliche, weniger oder alternative Schritte in ähnlicher oder alternativer Reihenfolge, oder zumindest teilweise parallel, im Rahmen der verschiedenen Ausführungsformen durchgeführt werden können, sofern nicht ausdrücklich etwas anderes angegeben ist. Obwohl dieses Beispiel in Bezug auf Schläfrigkeit einer ein Fahrzeug bedienenden Person beschrieben wird, können ferner Bestimmungen des Zustands einer Person auch für andere Arten von Zuständen einer Person oder eines Subjekts, das andere Arten von Aktivitäten ausführt, im Rahmen der verschiedenen Ausführungsformen verwendet werden. In diesem Beispiel werden Bilddaten empfangen 402, die eine Darstellung von mindestens einem Teil eines Gesichts einer Person (oder eines anderen Subjekts) von Interesse, wie beispielsweise eines Fahrzeugführers, enthalten. Diese Bilddaten können mit einem Gesichtserkennungsnetzwerk analysiert werden 404, um das Vorhandensein des Gesichts sowie Informationen über die Position des Gesichts im Bild zu bestimmen. Wird kein Gesicht erkannt oder kann ein Gesicht nicht mit einem Mindestmaß an Konfidenz bestimmt werden, dann kann der Prozess diese Bilddaten verwerfen und auf nachfolgende Bilddaten warten, in denen das Gesicht erkannt werden kann. Falls ein Gesicht erkannt wird, kann zumindest ein Gesichtsbereich dieser Bilddaten analysiert werden 406, um zu versuchen, eine Vielzahl von Gesichtsmerkmalen zu identifizieren, die bei der Bestimmung von Zustandsinformationen für eine Person, wie beispielsweise ein Schläfrigkeitszustand, nützlich sein können.
  • Sobald zumindest eine bestimmbare Teilmenge der Gesichtsmerkmale identifiziert wurde, können diese Gesichtsmerkmale mit einer Reihe verschiedener Aufgaben verwendet werden. Als eine solche Aufgabe können zumindest einige dieser Gesichtsmerkmale einem Kopfhaltungsnetzwerk zur Verfügung gestellt werden 408, um zu versuchen, eine Kopfhaltung der Person von Interesse zu bestimmen, zumindest wie sie in den Bilddaten repräsentiert ist. In anderen Ausführungsformen könnte die Kopfhaltung direkt aus den Eingangsbilddaten bestimmt werden. In diesem Beispiel können die Gesichtsmerkmalsdaten auch dazu verwendet werden 410, die Eingangsbilddaten zu beschneiden oder zumindest einen Teil der Eingangsbilddaten so zu identifizieren, dass sie in erster Linie einen oder mehrere Augenbereiche enthalten, wie beispielsweise einen Bereich für beide Augen oder einen separaten Bereich für jedes Auge (falls in den Bilddaten repräsentiert). Die Bilddaten für diese eine oder mehrere Augenregionen können als Eingabe für ein Augenzustandsbestimmungsnetzwerk bereitgestellt werden, welches einen Zustand der Augen der Person bestimmen kann, wie beispielsweise offen oder geschlossen für ein binäres Netzwerk oder einen teilweise offenen Zustand für ein nicht-binäres Netzwerk. Beliebiges oder alles der Kopfhaltung, des Augenzustands und des Satzes von Gesichtsmerkmalen können auch dazu verwendet werden 412, Werte für einen Satz von Augenparametern, wie beispielsweise Blinzelgeschwindigkeit, -dauer und -amplitude, zu bestimmen. Diese Augenparameterwerte können, zusammen mit ähnlichen Werten über einen kürzlichen Zeitraum, als Eingabe für ein erstes temporales Netzwerk bereitgestellt werden 414, um zu versuchen, einen Zustandswert, wie beispielsweise einen Schläfrigkeitswert, für die Person von Interesse abzuleiten. In einigen Ausführungsformen könnte dieser Schritt nur dann durchgeführt werden, wenn die Gesichtsmerkmale und/oder der Satz von Zustandsparametern mit mindestens einem Mindestmaß oder Schwellenwert an Konfidenz bestimmt werden können. Parallel dazu können die Augenzustandsdaten aus dem Augenzustandsbestimmungsnetzwerk, zusammen mit ähnlichen Daten über den letzten Zeitraum, einem anderen temporalen Netzwerk bereitgestellt werden 416, um einen anderen Schläfrigkeitswert abzuleiten, der auf Augenzustandsdaten unabhängig von dazwischenliegenden Gesichtsmerkmalsdaten basiert, welches diese Bestimmung robuster gegenüber Veränderungen in den Eingangsbilddaten machen kann. Ein Gesamtschläfrigkeitswert für diese Person kann dann basierend zumindest teilweise auf diesen abgeleiteten Schläfrigkeitswerten bestimmt werden 418, wo verfügbar. Dies kann z.B. die Durchführung eines gewichteten Durchschnitts oder ein Auswählen eines vertrauenswürdigsten Schläfrigkeitswerts umfassen. Sobald ein Gesamtschläfrigkeitswert bestimmt wurde, kann ein System, ein Dienst, eine Anwendung, ein Modul oder ein Prozess, das/der/die diesen Wert empfängt, bestimmen 420, ob eine Aktion durchgeführt werden soll, die zumindest teilweise auf diesem Gesamtschläfrigkeitswert (oder einem anderen derartigen Zustand) basiert. Dies kann z.B. en Bereitstellen einer Benachrichtigung, ein Erzeugen eines Alarms oder ein Ergreifen von Abhilfemaßnahmen oder proaktiven Maßnahmen umfassen, beispielsweise um zumindest teilweise die Kontrolle über eine aktuelle Aufgabe zu übernehmen, die von der Person durchgeführt wird oder durchzuführen ist.
  • Ein solcher Ansatz bei der Schätzung des aktuellen Zustands einer Person sehr genau sein. Es wird jedoch oft der Fall sein, dass verschiedene Personen unterschiedliche Verhaltensweisen zeigen, wie beispielsweise unterschiedliches Blinzelverhalten. Um die Genauigkeit von Zustandsschätzungen für verschiedene Subjekte zu verbessern, kann es zumindest in einigen Ausführungsformen vorteilhaft sein, zu versuchen, über Benutzer hinweg zu normalisieren. Es kann unterschiedliche Basisniveaus oder Bereiche geben, in denen sich bestimmte Merkmale oder Verhaltensweisen bei verschiedenen Individuen manifestieren, was mit physiologischen Zuständen bei diesen Individuen zusammenhängen kann. Verschiedene Individuen können auch unterschiedliche Muster optometrischer Betätigung aufweisen, wie beispielsweise unterschiedliche Arten und Raten des Blinzelns. Die Bestimmung von Schläfrigkeit und Müdigkeit kann recht komplex sein und auf einer Reihe verschiedener Faktoren beruhen. Eine gute Annäherung an Schläfrigkeit und Müdigkeit kann durch Analysieren eines Satzes von Blinzelparametern erreicht werden, da bei Einsetzen der Schläfrigkeit die Blinzelrate einer Person zunehmen kann, mit einer entsprechenden Abnahme der Blinzelgeschwindigkeit oder Zunahme der Blinzeldauer. Auch die Blinzelamplitude dieser Person kann bei Einsetzen der Schläfrigkeit abnehmen. Jeder dieser Blinzelparameter kann einzeln oder in Kombination verwendet werden, um die Schläfrigkeit einer Person oder eines Subjekts abzuschätzen. Damit diese Schätzung genau ist, kann es jedoch von Vorteil sein, zu bestimmen, wie sich die Werte dieser Parameter bei einzelnen Subjekten in verschiedenen Schläfrigkeitszuständen verändern. Die Werte können von Person zu Person stark variieren, da manche Menschen viel häufiger blinzeln als andere, und zwar mit potenziell unterschiedlichen Blinzelgeschwindigkeiten, ob sie nun schläfrig sind oder nicht. Insoweit liefern globale Schwellenwerte oder Auswertungen daher möglicherweise keine genauen Ergebnisse für alle beobachteten Benutzer, da eine Blinzelhäufigkeit, die für eine Person normal ist, für eine andere einen Zustand der Schläfrigkeit darstellen kann. Dementsprechend können Ansätze in Übereinstimmung mit verschiedenen Ausführungsformen versuchen, Informationen über die Handlungen oder Verhaltensweisen von Einzelpersonen zu erlernen oder zu erhalten, um Schätzungen oder Bewertungen vorzunehmen, die für diese bestimmte Einzelperson genauer sind.
  • Wie vorstehend erwähnt, können verschiedene Ansätze verwendet werden, um eine Person zu identifizieren, für welche eine Zustandsschätzung durchzuführen ist. In einigen Ausführungsformen kann dies einen Benutzer beinhalten, der sich über eine Schnittstelle in einem Fahrzeug anmeldet oder ein Profil auswählt. Bei bestimmten Fahrzeugen kann es andere Möglichkeiten zum Identifizieren einer Person geben, z.B. durch verschiedene biometrische Merkmale, oder eine Person kann als ein Standardbediener eines Fahrzeugs festgelegt sein. In einigen Fällen kann die Identität durch die Verwendung einer bestimmten Taste oder Eingabe festgestellt werden. Ein System zur Identifizierung oder Erkennung eines Gesichts (oder anderen Körperabschnitts) kann ebenfalls wie vorstehend beschrieben verwendet werden, wie beispielsweise wenn mindestens ein Bild eines Teils einer Person aufgenommen wird, welches dann analysiert werden kann, um zu versuchen, die Identität zu bestimmen. Dies kann z.B. ein Vergleichen von Gesichtsmerkmalen mit einem in einer Benutzerdatenbank gespeicherten Merkmalssatz umfassen, neben anderen derartigen Optionen. Sobald eine Person identifiziert ist, können Informationen zu dieser Person verwendet werden, um Zustandsschätzungen zu verbessern. Dies kann z.B. ein Abrufen von Verhaltensdaten aus einem Benutzerprofil oder ein Bestimmen einer Klassifizierung oder einer Art von Verhalten für diese Person umfassen, neben anderen derartigen Optionen.
  • Ein Benutzerprofil (oder ein anderer Datenspeicher für eine oder mehrere Personen) kann verschiedene Arten von Daten enthalten, die für eine oder mehrere Arten von Zustandsschätzungen relevant sein können. Dies kann zum Beispiel Daten wie beispielsweise eine durchschnittliche oder „normale“ Blinzelrate oder Blinzelamplitude beinhalten, sowie einen typischen Bereich solcher Werte. Auf diese Weise können Schätzungen für Zustände wie beispielsweise Schläfrigkeit durchgeführt werden, die für eine Grundlinie relevant sind, die für das bestimmte Individuum genau ist. Daten für andere Aktionen, Charakteristiken oder Muster können ebenfalls gespeichert werden, die sich auf unterschiedliche Fahrfähigkeiten oder Verhaltensweisen für bestimmte Individuen, unterschiedliche Reaktionsgeschwindigkeiten usw. beziehen, wie z.B. eine Häufigkeit, mit der eine Person ein Lenkrad verstellt, oder ein Muster, dem eine Person beim Spurwechsel folgt. In mindestens einigen Fällen können diese Werte fahrzeugabhängig sein, und eine Person könnte unterschiedliche Werte für verschiedene Fahrzeuge haben, wie beispielsweise für einen Sportwagen im Vergleich zu einem SUV, der in sich selbst sehr unterschiedliche Fahr- oder Betriebseigenschaften haben könnte. In mindestens einer Ausführungsform kann die Robustheit eines Zustandsschätzungssystems oder -dienstes verbessert werden, indem Schwankungen in der Bevölkerung berücksichtigt werden, wie beispielsweise durch Berücksichtigen individueller Besonderheiten während des Modelltrainings.
  • In mindestens einer Ausführungsform kann ein Schläfrigkeitsmodell für eine Person anhand von Daten für diese individuelle Person trainiert werden. Dies kann beispielsweise die Verwendung von selbstberichteten KSS- oder Zustandsdaten sowie von Daten aus einem subjektspezifischen Profil umfassen. Daten aus einem subjektspezifischen Profil können Informationen wie Fahrpraxis, Alter, Geschlecht, Nationalität oder einen beliebige anderen individuellen Unterschied enthalten, die zu Zustandsänderungen führen oder damit korrelieren können, wie z.B. Schläfrigkeitssymptome. Ein Subjektprofil kann auch Grund- bzw. Basisliniensignalwerte enthalten, die angeben, wann sich ein Subjekt in einem bestimmten Zustand befindet, wie beispielsweise einem bestimmten Schläfrigkeitsgrad, der sich auf eine bestimmte Blinzelrate oder einen Bereich von Blinzelraten beziehen kann, oder auf das Verhalten in einem wachen Zustand im Vergleich zu einem schläfrigen Zustand. Profilgrundliniensignale können verwendet werden, um Daten zu normalisieren, so dass Ergebnisse, die unter Verwendung von Schläfrigkeitsschätzungsmodellen produziert wurden, nicht signifikant durch individuelle Unterschiede beeinflusst werden. Beispielsweise können zwei Subjekte in einem wachen Zustand unterschiedliche Blinzelraten haben und werden daher in einem schläfrigen oder müden Zustand wahrscheinlich unterschiedliche Blinzelraten haben. Ohne eine Profilgrundlinie oder andere solche subjektspezifischen Daten kann ein Modell Schwierigkeiten haben, einen Schwellenwert oder einen Bereich zu erlernen, um zwischen Zuständen zu unterscheiden, wie beispielsweise ob ein Subjekt schläfrig ist, auf der Grundlage eines absoluten Blinzelratenwerts. Eine Profilgrundlinie muss nicht von einem bestimmten Zustand, wie z. B. einem Wachzustand, abgeleitet werden, sondern kann auch oder alternativ von einem beliebigen Schläfrigkeitsgrad abgeleitet werden. In mindestens einer Ausführungsform können mehrere Modelle zur Schätzung der Schläfrigkeit auf der Grundlage unterschiedlicher Profilgrunddaten für beliebige oder alle Schläfrigkeitsstufen trainiert werden, so dass das Modell Schläfrigkeit anhand eines Grundlinienprofils in einem beliebigen Schläfrigkeitsgrad schätzen kann. In mindestens einer Ausführungsform kann ein Merkmalsvektor, der von einem Gesichtsmerkmalsnetzwerk erzeugt wurde, oder Blinzelparameter enthält, die aus der Ausgabe des Gesichtsmerkmalsnetzwerks bestimmt wurden, normalisiert werden, bevor er zur Analyse an ein LSTM-Netzwerk weitergeleitet wird. Dies kann z.B. beinhalten, dass der Merkmalsvektor als Mittelwert verwendet wird, oder dass er in Bezug auf den Merkmalsbereich normalisiert, der Mittelwert subtrahiert und durch die Standardabweichung des Merkmalsvektors geteilt wird.
  • In einer Ausführungsform kann dann, wenn ein Subjekt in ein Fahrzeug einsteigt oder an einem überwachten Ort vorhanden ist, wie beispielsweise einem Fahrersitz, ein System versuchen, die Person zu identifizieren. Wie erwähnt, kann dies ein Verwenden einer Gesichtserkennung oder von biometrischen Daten zum Identifizieren der Person beinhalten. Falls identifiziert, kann das System dann versuchen, zu bestimmen, ob diese Person oder dieses Subjekt über ein verfügbares Profil verfügt, das entweder auf nichttransitorischen bzw. nichtflüchtigen Speichermedien in dem Fahrzeug gespeichert oder über mindestens ein Netzwerk zugänglich ist. Falls ein solches Profil verfügbar und zugänglich ist, kann das System Daten in diesem Profil verwenden, um Daten für diesen Benutzer zu normalisieren und ein geeignetes Zustandsschätzungsmodell einzusetzen. Falls das Subjekt nicht über ein vorhandenes und zugängliches Profil verfügt, kann versucht werden, ein solches Profil zu erstellen. In einigen Ausführungsformen kann dies ein Überwachen oder Erfassen von Informationen in Bezug auf diesen Benutzer über einen Zeitraum umfassen, um zu versuchen, Grundlinieninformationen zu bestimmen. In einigen Ausführungsformen kann die Person die Möglichkeit haben, anzugeben, ob sie einen Benutzerkalibrierungsprozess durchführen lassen möchte, wobei die Person gewisse Informationen bereitstellen kann und andere Informationen erfasst oder erhalten werden können, die bei der Erzeugung einer oder mehrerer Zustandsgrundlinien für Benutzeraktivität oder -verhalten nützlich sein können.
  • Um genaue Schätzungen bereitzustellen, können Kameras oder Sensoren auch mit relativ hohen Erfassungsraten betrieben werden. Die Blinzeldauer eines Benutzers kann den Bruchteil einer Sekunde betragen, so dass es vorteilhaft sein kann, eine Kamera mit einer Rate von mindestens 30 Hz oder 60 Hz zu betreiben, um genügend Daten für ein Blinzeln zu erhalten. Falls beispielsweise die Blinzeldauer einer Person etwa 0,2 Sekunden beträgt, müsste die Kamera mit einer Aufnahmerate von mindestens 30 Hz laufen, um mindestens 5-6 Datenpunkte für das Blinzeln zu erhalten, und weniger Punkte können zu einer größeren Unsicherheit bei der zeitlichen Bestimmung des Beginns, der Mitte und des Endes des Blinzelns führen, um Werte wie die Blinzelgeschwindigkeit und -dauer zu bestimmen. In mindestens einigen Ausführungsformen kann es erwünscht sein, diese Datensammlung so unauffällig wie möglich zu gestalten, so dass der Benutzer möglicherweise gar nicht merkt, dass Daten gesammelt werden, und bei Tätigkeiten wie dem Autofahren wird die Datenerfassung die Sicherheit der Aktivität in keiner Weise beeinträchtigen.
  • Falls sich eine Person oder ein Subjekt entscheidet, eine Benutzerkalibrierung durchzuführen, kann die Person angewiesen werden, einer bestimmtes Datenerfassungsprozedur zu folgen, um eine oder mehrere Runden von Daten zu liefern, die das System zur Schätzung einer für dieses Subjekt spezifischen Profilgrundlinie verwenden kann. Das Subjekt braucht in diesem Datensammelschritt keinen vollständigen Datensatz bereitzustellen, da ein Benutzer nicht in der Lage sein kann, Daten für alle möglichen Benutzerzustände bereitzustellen. Das System kann die Daten, die für bestimmte Zustände bereitgestellt gestellt werden, nehmen und kann diese Daten verwenden, um ein nächstgelegenes Profil in einer Profildatenbank zu finden, unter Verwendung beispielsweise eines Nächster-Nachbar-Suchprozesses, um Daten zu lokalisieren, die zur Vervollständigung des Profils dieses Subjekts verwendbar sind, oder zumindest, um irgendwelche fehlenden Daten abzuleiten. Als Teil eines Kalibrierungsprozesses kann ein System Rückmeldungen oder Eingaben eines Benutzers zulassen. Falls ein Subjekt feststellt, dass eine Schläfrigkeitsschätzung signifikant von einem selbstberichteten KSS oder der aktuellen Wahrnehmung von Schläfrigkeit abweicht, kann dieses Subjekt eine Rückmeldung geben, die dazu verwendet werden kann, das relevante Modell anzupassen und/oder neu zu trainieren oder einen oder mehrere Grundlinienwerte oder Bereiche für dieses Subjekt anzupassen.
  • Falls eine Person sich entscheidet, keine Benutzerkalibrierung durchzuführen, kann ein System versuchen, ein Profil zu identifizieren, das dem Verhalten dieser bestimmten Person nahe kommt. Dies kann z.B. ein Analysieren aufgenommener Bilddaten beinhalten, um bestimmte Aspekte der Person zu bestimmen, wie z.B. Alter, Geschlecht, Atemmuster oder Herzfrequenz, und kann ein Profil auswählen, das am ehesten mit Menschen übereinstimmt, die zumindest einige dieser Aspekte aufweisen.
  • 5A veranschaulicht einen Beispielprozess 500 zum Berücksichtigen von Benutzerschwankungen in Verhaltensdaten. In diesem Beispiel werden Bilddaten empfangen 502 (oder auf andere Weise erhalten), die eine Darstellung von mindestens einem Teil eines Gesichts einer Person von Interesse enthalten. In anderen Beispielen können andere Informationen für die Person empfangen werden, die dazu beitragen können, diese Person zu identifizieren, wie z.B. biometrische, identitätsbezogene oder andere derartige Informationen. In diesem Beispiel werden diese Bilddaten unter Verwendung eines Gesichtserkennungsprozesses analysiert 504, um die Identität einer Person von Interesse zu bestimmen, die in den erfassten Bilddaten dargestellt ist. Anschließend kann eine Bestimmung durchgeführt werden 506, ob ein relevantes Verhaltensprofil für diese Person existiert und zugänglich ist. Falls keine Identifizierung vorgenommen werden konnte, dann kann auch kein solches Profil ermittelt werden. Falls bestimmt wird 508, dass ein solches Profils existiert, dann können aus diesem Profil relevante Verhaltensdaten für diese Person erhalten werden 510. Falls ein solches Profil nicht existiert oder anderweitig nicht zugänglich ist, dann kann der Benutzer aufgefordert oder angehaltenwerden, sich einem Kalibrierungsprozess zu unterziehen oder daran teilzunehmen, um zu versuchen, Informationen zu sammeln, die für die Erstellung eines solchen Profils für diese Person nützlich sind. Falls bestimmt wird 512, dass ein solcher Kalibrierungsprozess durchgeführt werden kann, dann kann der Kalibrierungsprozess durchgeführt werden 514, um ein Verhaltensprofil für diese Person zu erstellen. Wie erwähnt, kann dies das Sammeln von Bild- und Sensordaten für diese Person sowie potenzielle Benutzereingaben bezüglich des Zustands umfassen, um Kalibrierungs-, Muster- oder Grundliniendaten für diese Person zumindest unter bestimmten Bedingungen oder in einem bestimmten Kontext zu erzeugen. Ähnliche Profile können herangezogen werden, um zu versuchen, etwaige Lücken in dem Profil zu füllen oder Ausgangspunkte für die Kalibrierung bereitzustellen. Falls keine Kalibrierung durchzuführen ist oder falls die Person unidentifiziert bleibt, dann kann ein am nächsten liegendes Profil oder ein Standardprofil basierend auf allen verfügbaren und zulässigen Daten ausgewählt werden, die sich auf einen Aspekt der Person, des Ortes oder der auszuführenden Aktion beziehen. In einigen Ausführungsformen kann dann, wenn ein Benutzer nicht identifiziert werden kann oder sich weigert, eine Kalibrierung durchzuführen, ein solcher Prozess bestimmen, dass die Verwendung von Daten zum Benutzerverhalten vermieden wird, um zu versuchen, die Genauigkeit der Zustandsbestimmung zu verbessern. Falls ein Profil bestimmt oder erzeugt wird, können die Verhaltensdaten aus diesem Profil zum Normalisieren von Zustandsdaten verwendet werden 518, um Unterschiede zwischen einzelnen Benutzern zu berücksichtigen. Dies kann z.B. die Bereitstellung von Verhaltensdaten als einen Eingangsmerkmalsvektor für ein temporales Netzwerk umfassen, das einen Zustandswert basierend auf beobachtetem Input für einen Benutzer ableitet, wie beispielsweise Blinzelparameterwerte, die über einen kürzlichen Zeitraum bestimmt wurden, wobei personenspezifische Grundlinien, Bereiche oder Verhaltensweisen verwendet werden können, um einen Zustand für diese Person genauer abzuleiten.
  • Wie erwähnt, kann es auch Schwankungen bzw. Veränderungen in dem Verhalten oder den Handlungen einer Person geben aufgrund anderer Faktoren, die mit einer Umgebung oder einem Kontext, in welchem sich die Person befindet oder involviert ist, zusammenhängen können. Für eine Person, die ein Fahrzeug steuert, kann dies verschiedene Arten von Fahrkontextinformationen, wie beispielsweise verschiedene Umgebungs- und andere solche Faktoren, umfassen. Zum Beispiel kann eine Person in einer hellen Umgebung häufiger blinzeln oder die Augen zusammenkneifen als in einer dunklen Umgebung. Ferner könnte ein Fahrer in einer belebten städtischen Umgebung dazu neigen, aufmerksamer sein als in einer ländlichen Umgebung mit wenigen anderen Fahrzeugen oder Gegenständen in der Nähe, und kann in einer solchen städtischen Umgebung dazu neigen, seine Augen häufiger zu bewegen. Zumindest einige dieser Umgebungsbedingungen können durch Analysieren von Bild- oder Videodaten bestimmt werden, die von einer oder mehreren dem Fahrzeug zugeordneten Kameras, wie z.B. den in 1 B dargestellten, erfasst wurden. Umgebungsdaten können auch aus anderen Quellen stammen, wie beispielsweise externen Datenquellen (z.B. Verkehrs-, Wetter- oder Navigationsdiensten), die über mindestens ein Netzwerk zugänglich sind, internen Uhren oder Temperatursensoren usw. Andere Daten, die von Sensoren eines Fahrzeugs erhalten werden, wie beispielsweise einige der vorstehend in Bezug auf 1A erörterten, können ebenfalls verwendet werden, um verschiedene Umgebungsbedingungen oder Aspekte eines aktuellen Fahrkontexts zu bestimmen, wie beispielsweise ob eine Straße kurvenreich oder gerade ist, basierend auf Lenkradbewegungen, ob viel Verkehr herrscht oder ob es Stopps gibt, basierend auf Bremsinformationen, und so weiter. Falls GPS- oder Navigationsdaten verfügbar sind, können diese Informationen auch verwendet werden, um zumindest eine gewisse Menge an Kontextinformationen für eine aktuelle Route oder einen aktuellen Standort zu liefern. Helligkeitssensoren können verwendet werden, um Beleuchtungsbedingungen zu bestimmen, Fahrzeugsteuerungssysteme wie beispielsweise Lenk- und Bremssysteme können verwendet werden, um Aspekte der Straßen- oder Verkehrsbedingungen abzuleiten, und so weiter.
  • Ein solcher Fahrkontext kann verwendet werden, um eine Grundlinie zu verbessern, die für Zustandsrückschlüsse oder -schätzungen für eine Person verwendet wird, die in diesem Fahrkontext fährt. Beliebige oder alle verfügbaren Kontextinformationen (oder andere relevante Informationen oder Rückschlüsse) können analysiert werden, um zu versuchen, eine oder mehrere Zustandsgrundlinien für die Person unter aktuellen Bedingungen zu bestimmen. Dies kann z.B. ein Anpassen von Bereichen oder Grundlinien beinhalten, die zum Ableiten verschiedener Müdigkeits- bzw. Schläfrigkeitszustände basierend auf diesen Bedingungen verwendet werden können. Falls zum Beispiel eine Person wahrscheinlich häufiger blinzelt, wenn sie sich in einem Schneesturm befindet, als unter normalen Bedingungen, dann kann das Anpassen der Grundlinie für diesen Fahrkontext dazu beitragen, dass diese Zunahme der Blinzelhäufigkeit nicht als eine Änderung des Schläfrigkeitszustands interpretiert wird. In ähnlicher Weise kann ein Subjektverhalten, das normalerweise als typisch angesehen werden könnte, tatsächlich darauf hinweisen, dass der Benutzer beginnt, schläfrig zu werden, falls sich der Benutzer im gegenwärtigen Fahrkontext normalerweise anders verhalten würde, wobei die Nichtberücksichtigung des Fahrkontextes dazu führen könnte, dass diese Zunahme der Schläfrigkeit andernfalls unerkannt bleibt.
  • In einigen Systemen kann der Fahrkontext für alle Nutzer in ähnlicher Weise angewendet werden. In anderen Systemen können individuelle Profile mit Informationen für verschiedene Fahrkontexte aktualisiert werden. Dies kann zum Beispiel ein Überwachen des Nutzerverhaltens für verschiedene Fahrkontexte im Laufe der Zeit und ein Aktualisieren von Grundlinien basierend auf dem beobachteten Verhalten umfassen. In einigen Systemen kann ein Benutzer die Sammlung von Informationen genehmigen, die zur Kalibrierung des Systems beitragen können, z.B. durch Beantwortung von Fragen zur Schläfrigkeit oder zu anderen Zuständen, während ein Fahrzeug unter bestimmten Fahrbedingungen oder in einem bestimmten Kontext betrieben wird. Wie bei individuellen Profilen kann es sein, dass nicht genügend Informationen vorhanden sind, um ein komplettes Profil für verschiedene Fahrkontexte zu erstellen, so dass das System versuchen kann, fehlende Informationen zu ergänzen, indem es Informationen aus einem oder mehreren Profilen für andere Personen mit ähnlichen Fahrkontextvariationen heranzieht.
  • Die Verwendung von Fahrkontext (oder ähnlicher Arten von Umgebungsdaten für andere Aktivitäten) kann es einem System zur Zustandsschätzung ermöglichen, gut zu verallgemeinern, wenn es an verschiedenen Einzelpersonen unter verschiedenen Fahrkontexten getestet wird. Um die Genauigkeit weiter zu verbessern, kann ein solches System Eingaben aus mehreren Quellen nutzen, um ein genaueres Bild des Benutzerverhaltens sowie des aktuellen Fahrkontexts oder der Umgebungsbedingungen zu erhalten. Viele herkömmliche Systeme, die versuchen, Schläfrigkeit zu erkennen, stützen sich auf Daten aus nur einer Quelle, wie beispielsweise einem einzigen Sensor oder Verfahren, und berücksichtigen keine Schwankungen im Fahrkontext. Diese Systeme können nach Benutzeraktionen wie beispielsweise Gähnen in Videodaten oder Veränderungen im Lenkradverhalten als einem einzigem Indikator suchen. Erfassungssysteme, die nur eines dieser Verfahren ohne Fahrkontext verwenden, haben das Risiko einer geringen Genauigkeit, da diese Schläfrigkeitssignale von Fahrkontext abhängen, da ein Fahrer in einem gleichen Schläfrigkeitszustand, aber in einem anderen Fahrkontext ein anderes physiologisches Verhalten und ein anderes Fahrvermögen zeigt. Durch Verschmelzen von Informationen aus mehreren Quellen und Berücksichtigen des Fahrkontexts zusätzlich zu den Veränderungen und dem Verhalten des Benutzers kann ein robustes System zur Einschätzung der Schläfrigkeit bereitgestellt werden, das über verschiedenen Subjekte und Bedingungen hinweg genau ist.
  • Wie vorstehend erwähnt, können für ein Fahrzeug verschiedene Kameras, Sensoren oder Datenquellen verwendet werden, um Informationen über einen aktuellen Fahrkontext zu erhalten. Ähnliche Quellen können für andere Arten von Aktivitäten genutzt werden. Für den Fahrkontext können diese Daten Daten wie beispielsweise Straßenkrümmung, Verkehrsaufkommen oder -art, Sichtbarkeit von Fahrbahnmarkierungen, Tageszeit, Jahreszeit, Wetter, Blitzverhältnisse, Geschwindigkeit, Bauweise, Art der Fahrspur, Art der Straßenoberfläche, Windgeschwindigkeit, Fensterzustand, Funkzustand oder - lautstärke, Innenbeleuchtung oder andere Daten in Bezug auf einen Umgebungsaspekt umfassen, der eine erkennbare Änderung im Subjektverhalten, wie z.B. im Blinzelverhalten, auslösen kann. Wie erwähnt kann dann, wenn für ein Subjekt kein Profil verfügbar ist oder das Subjekt nicht identifiziert werden kann, ein generisches Fahrkontextprofil verwendet werden, oder basierend zumindest teilweise auf bestimmbaren (und zulässigen) Aspekten des Subjekts, wie beispielsweise Alter, Geschlecht, Gesundheit oder Region, welche das Fahrverhalten beeinflussen können, ausgewählt werden. Zumindest teilweise weil die Erhebung oder Verwendung solcher Daten für die Entscheidungsfindung sensibel (oder in manchen Fällen unzulässig) sein kann, können andere Methoden verwendet werden, um zu versuchen, das Fahrverhalten eines Benutzers vorherzusagen, wie beispielsweise wenn Informationen über den Erfahrungsstand eines Fahrers oder die Vertrautheit mit einem bestimmten Fahrzeug gewonnen werden können. Jede dieser Informationen kann nützlich sein bei einem Verbessern von Profilgrundlinien zum Normalisieren von Daten, so dass Modelle zur Schläfrigkeits- oder Zustandsschätzung nur minimal durch Abweichungen zwischen Benutzern oder Situationen beeinflusst werden. In mindestens einigen Ausführungsformen können mehrere Modelle zur Schätzung der Schläfrigkeit basierend auf verschiedenen Profilgrundlinien bei allen Schläfrigkeitsgraden trainiert werden, so dass ein Modell in der Lage ist, Schläfrigkeit anhand eines Grundlinienprofils bei jedem beliebigen Schläfrigkeitsgrad zu schätzen. Robustheit wird zumindest teilweise dadurch erreicht, dass der Fahrkontext das physiologische Verhalten und das Fahrvermögen beeinflusst, und diese Effekte können zwischen Subjekten weiter variieren. Zum Beispiel kann eine Fahrsituation einer belebten Straße die Aufmerksamkeit des Fahrers stärker fordern als das Fahren auf einer leeren Straße, so dass im Ergebnis die kognitive Belastung zunehmen, die Blinzelrate sinken und die Blick-/Sakkadenfixierung zunehmen können. Aspekte wie beispielsweise Straßenkrümmung, Wetter, Vertrautheit mit der Strecke und Lichtverhältnisse können sich ebenfalls auf das physiologische Verhalten auswirken, ebenso wie Fahrmuster wie beispielsweise wie ein Fahrer ein Lenkrad einstellt und in der Spur bleibt. Zum Beispiel kann selbst auf derselben Strecke unter ähnlichen Bedingungen ein Nutzer ein anderes Verhalten an den Tag legen, falls es das erste Mal ist, dass der Benutzer diese Strecke fährt, als wenn der Benutzer diese Strecke häufig nimmt und mit der Strecke vertraut ist, und folglich dazu neigen kann, weniger aufmerksam oder weniger wach zu sein.
  • In mindestens einer Ausführungsform kann ein Kontextmonitor 334 verwendet werden, um verfügbare oder empfangene Daten 332 zu analysieren, die sich auf einen Fahrkontext oder einen anderen Satz von Umgebungsbedingungen beziehen, wie in 3 dargestellt. Dies kann zum Beispiel ein Analysieren von Eingangsdaten umfassen, um einen aktuellen Fahrkontext aus einem Satz möglicher Fahrkontexte zu bestimmen oder abzuleiten. In anderen Ausführungsformen kann dies ein Bestimmen eines Satzes von Kontexteingaben oder -merkmalen umfassen, die verwendet werden können, um eine geeignete Grundlinie aus einem geeigneten Modell auszuwählen. Dieser Kontextmonitor kann kontinuierlich, periodisch oder wenn eine signifikante Änderung in mindestens einem Kontexteingang erkannt wird, laufen, neben anderen derartigen Optionen. In einigen Ausführungsformen kann der Kontextmonitor ein neuronales Netzwerk enthalten, das darauf trainiert ist, den Fahrkontext anhand einer Reihe von Eingaben zu bestimmen. In anderen Ausführungsformen können ein oder mehrere Algorithmen oder Prozesse verwendet werden, um einen oder mehrere Kontextfaktoren oder -werte aus den erhaltenen Eingaben zu bestimmen. Dieser Fahrkontext kann dann verwendet werden, um eine geeignete Grundlinie oder einen geeigneten Bereich für ein oder mehrere Verhaltensweisen oder Zustände, die unter den aktuellen Bedingungen zu überwachen sind, zu bestimmen, festzulegen, auszuwählen oder zu berechnen.
  • Wie bei dem vorstehend diskutierten Benutzerprofil kann dann, wenn ein Subjekt in ein Fahrzeug einsteigt oder an einem überwachten Ort vorhanden ist, wie beispielsweise einem Fahrersitz, ein System versuchen, die Person zu identifizieren. Falls sie identifiziert wird, kann das System dann versuchen, zu bestimmen, ob diese Person oder dieses Subjekt ein verfügbares Profil hat, und falls ein solches Profil verfügbar und zugänglich ist, kann das System Daten in diesem Profil verwenden, um Daten für diesen Benutzer für den aktuellen Fahrkontext zu normalisieren und ein geeignetes Zustandsschätzungsmodell einzusetzen. Falls das Subjekt nicht über ein vorhandenes und zugängliches Profil verfügt, kann ein Versuch gemacht werden, ein solches Profil zu erstellen oder zu erhalten. In einigen Ausführungsformen kann dies ein Überwachen oder Erfassen von Informationen mit Bezug zu diesem Benutzer über einen Zeitraum beinhalten, um zu versuchen, Grundlinieninformationen zu ermitteln, sowie fehlende Informationen aus ähnlichen Profilen zu ziehen.
  • In einigen Ausführungsformen können die Blinzelparameter in Zeitinkrementen bereitgestellt werden, wie beispielsweise für eine zurückliegende Zeitminute. Dies kann zum Beispiel eine Anzahl von Blinzelvorgängen beinhalten, die über diese Minute hinweg ermittelt wurden, sowie Informationen über diese Blinzelvorgänge einzeln oder insgesamt. Eine bestimmte Menge an Historie bzw. Verlauf kann in einem Historienpuffer bzw. Verlaufspuffer gespeichert werden, wie beispielsweise für die letzten sechzig Minuten oder die letzten sechzig Perioden von Blinzeldaten, und die Eingabe in ein LSTM-Netzwerk kann dann ein Merkmalsvektor mit einer Länge von 60 Merkmalen sein. Beliebige Fahrkontext- oder Benutzerprofilinformationen können auch als Vektoren ähnlicher oder anderer Länge bereitgestellt werden, die in mindestens eines der LSTM-Netzwerke eingegeben werden. Das Aufzeichnen des Fahrkontexts oder des physiologischen Zustands des Benutzers über einen längeren Zeitraum kann dazu beitragen, genauere Bestimmungen basierend auf dem Blinzel- oder Zustandsverhalten über denselben Zeitraum zu treffen. In mindestens einigen Ausführungsformen können verschiedene Vektoren für verschiedene Arten von Kontextinformationen bereitgestellt werden.
  • In mindestens einigen Ausführungsformen können sich die Merkmalsvektoren (oder eine Zusammensetzung eines gegebenen Merkmalsvektors) im Laufe der Zeit basierend zumindest teilweise auf der Art oder Menge von zu diesem Zeitpunkt verfügbaren Kontext- oder Zustandsdaten unterscheiden. Diese Merkmalsvektoren für Benutzerprofil- und Fahrkontextdaten können dann verwendet werden, um Schwellenwerte anzupassen oder auf andere Weise erwartete Schwankungen (ohne Bezug zu Schläfrigkeit) zu berücksichtigen, um zu versuchen, die Blinzelparameterdaten zu normalisieren und Schwankungen im Blinzelverhalten zu erkennen, die nur auf Änderungen der Schläfrigkeit zurückzuführen sind.
  • 5B veranschaulicht einen Beispielprozess 550 zum Verbessern der Genauigkeit der Zustandsschätzung durch Berücksichtigen eines aktuellen Aktionskontexts oder anderer Umgebungs- oder Bedingungsinformationen. In diesem Beispiel können aktionsbezogene Kontextdaten aus mehreren Quellen empfangen werden 552. Für eine Fahraktion kann dies beliebige fahrkontextbezogenen Daten beinhalten, wie beispielsweise Bilddaten, die von Kameras an einem Fahrzeug erfasst werden, Sensordaten für das Fahrzeug, Betriebsinformationen für das Fahrzeug, Umgebungsdaten aus einem netzverbundenen Dienst oder Positionsdaten, neben anderen derartigen Optionen, wie an anderer Stelle hierin erörtert und vorgeschlagen. In einigen Ausführungsformen kann eine Obermenge von Informationen empfangen oder erhalten werden, und kann eine relevante Teilmenge dieser Daten bestimmt oder ausgewählt werden. Diese empfangenen Daten können verwendet werden, um einen oder mehrere Inhaltsmerkmalsvektoren zu erzeugen 554, die einen aktuellen Handlungskontext anzeigen. Beispielsweise können die empfangenen Daten dazu verwendet werden, Werte für bestimmte Kontextparameter zu bestimmen, wie z.B. Art des Standorts, Wetter, Helligkeit, Verkehrsdichte usw., welche dazu verwendet werden können, den/die Kontextmerkmalsvektor(en) zu bilden. Jeder beliebige erzeugte Kontextmerkmalsvektor sowie jeder beliebige Benutzerprofilvektor (falls verfügbar) und ein Satz von Verhaltensparametern, die von irgendwelchen geeigneten Sensoren wie beispielsweise Kameras gemessen werden und die unter anderem Informationen wie Lenkradmuster, Spurhaltemuster oder EEG/ECG-Daten enthalten können, können als Eingabe für ein zeitliches temporales Netzwerk oder ein anderes Zustandsbestimmungsnetzwerk oder -modul bereitgestellt werden 556. Dieses temporale Netzwerk kann verwendet werden, um einen Zustandswert, wie beispielsweise einen Schläfrigkeitsgrad für eine Person, basierend zumindest teilweise auf dieser Eingabe zu schätzen 558. Die Kontextmerkmalsvektoren und/oder Benutzerprofildaten (welche auch in der Form eines oder mehrerer Merkmalsvektoren bereitgestellt sein können) können verwendet werden, um zu versuchen, die Verhaltensparameter zu normalisieren, um Variationen im Verhalten zu berücksichtigen, die möglicherweise nicht auf Änderungen im Zustand der Person zurückzuführen sind, sondern stattdessen auf Änderungen in einem aktuellen Handlungskontext oder auf personenspezifische Verhaltensmuster zurückzuführen sind. Ein von diesem Netzwerk erzeugter geschätzter Zustandswert kann dann als ein Maß für den aktuellen Zustand der Person bereitgestellt werden 560.
  • Sobald eine Zustandsschätzung erzeugt ist, können Informationen über diese Schätzung für verschiedene Zwecke verwendet werden. Zum Beispiel kann es für einen Schläfrigkeitszustand eines Fahrers eines Fahrzeugs einen Wert oder einen Wertebereich bei Beginn der Schläfrigkeit geben, der bestimmte zu ergreifende Aktionen auslöst, wie beispielsweise die Benachrichtigung eines Benutzers, das Ertönen eines Alarms oder die Anzeige eines Symbols, das anzeigt, dass erfasst wird, dass der Benutzer schläfrig wird. In einigen Ausführungsformen kann die Meldung oder der Alarm an den Benutzer oder den Fahrkontext angepasst werden, da Aktionen, die für jemanden auf einer Autobahn in einer Stadt an einem sonnigen Tag relevant sind, anders sein können als für jemanden, der auf einer Landstraße mitten in einem Schneesturm fährt. Ferner ist es möglich, dass unterschiedliche Benutzer eher unterschiedliche Maßnahmen ergreifen oder bestimmte Empfehlungen (z.B. Kaffee oder Koffein zu trinken) nicht schätzen. In mindestens einigen Ausführungsformen können Empfehlungen auch basierend zumindest teilweise auf historischen oder bevorzugten Daten für einen Benutzer beruhen, wie beispielsweise wenn ein Benutzer auf einer langen Fahrt schon einmal in einem Cafe angehalten hat oder zum Ausdruck gebracht hat, dass er kein Koffein trinkt. Es kann andere Schläfrigkeitsgrade oder -bereiche geben, bei denen bestimmte Maßnahmen von dem Fahrzeug ergriffen werden. Dies kann zum Beispiel ein Aktivieren eines Fahrerassistenzprozesses oder ein Ändern eines Umfangs einer Fahrerassistenz gehören, die bereitgestellt wird. Zum Beispiel können die Spurhaltung und das automatische Bremsen verstärkt werden, falls bestimmt wird, dass ein Fahrer einen bestimmten Schläfrigkeitszustand aufweist. In manchen Situationen kann ein Steuersystem 336 eines Fahrzeugs dazu programmiert sein, bei hohen Schläfrigkeitszuständen, die durch die ausgegebene Schläfrigkeitsschätzung 330 angezeigt wird, drastische Maßnahmen ergreift, wie beispielsweise das Einschalten eines vollständig autonomen Modus oder das Anhalten am Straßenrand, bis der Fahrer sich nicht mehr in einem Zustand hoher Schläfrigkeit befindet. In einigen Fällen kann Vorschriften geben, regelmäßig einen Alarm auszulösen oder bestimmte Maßnahmen zu ergreifen, wenn ein Fahrer als sich in einem bestimmten Zustand befindend bestimmt wird. Diese Maßnahmen können je nach Ort, Gerichtsbarkeit, Fahrzeug, Art der Person, Art der Aktivität oder anderen solchen Faktoren variieren.
  • Verschiedene hierin vorgestellte Ansätze sind ausreichend leichtgewichtig, dass sie auf verschiedenen Arten von Vorrichtungen wie Personal Computern, intelligenten Fahrzeugen oder Spielkonsolen in Echtzeit ausgeführt werden können. Eine solche Verarbeitung kann unter Verwendung von Daten durchgeführt werden, die in der Vorrichtung erfasst oder erzeugt werden oder von einer externen Quelle empfangen werden, wie z.B. Streaming-Daten, die über mindestens ein Netzwerk empfangen werden. Die Quelle kann eine beliebige geeignete Quelle sein, z.B. ein separates Client-Gerät, ein Streaming-Daten-Anbieter oder einen Drittanbieter von Daten, um nur einige Beispiele zu nennen. In einigen Fällen kann die Verarbeitung und/oder Nutzung dieser Daten durch eines dieser anderen Geräte, Systeme oder Unternehmen erfolgen und dann einem Client-Gerät (oder einem anderen Empfänger) zur Darstellung oder einer anderen derartigen Nutzung bereitgestellt werden.
  • Als ein Beispiel veranschaulicht 6 eine beispielhafte Netzwerkkonfiguration 600, die zum Bereitstellen, Erzeugen, Ändern, Kodieren und/oder Übertragen von Daten verwendet werden kann. In mindestens einer Ausführungsform kann ein Client-Gerät 602 Daten für eine Sitzung unter Verwendung von Komponenten einer Zustandsüberwachungsanwendung 604 auf einem Client-Gerät 602 und lokal auf diesem Client-Gerät gespeicherten Daten erzeugen oder empfangen. In mindestens einer Ausführungsform kann eine Zustandsüberwachungsanwendung 624, die auf einem Daten- oder Inhaltsserver 620 (z.B. einem Cloud-Server oder Edge-Server) ausgeführt wird, eine Sitzung initiieren, die mindestens dem Client-Gerät 602 zugeordnet ist, wobei ein Sitzungsverwalter und in einer Benutzerdatenbank 634 gespeicherte Benutzerdaten verwendet werden können, und kann bewirken, dass Inhalte von einem Inhaltsverwalter 626 bestimmt werden. Ein Schätzermodul 628 kann versuchen, Zustandsdaten für ein oder mehreren Subjekte basierend auf empfangenen Daten zu schätzen, und kann mit einem Kontextmodul 630 arbeiten, um Kontextdaten zu empfangen, die aus empfangenen Daten bestimmt wurden. Zumindest ein Teil dieser Daten oder Zustandsschätzung kann dann unter Verwendung eines geeigneten Übertragungsverwalters 622 an das Client-Gerät 602 übertragen werden, um sie per Download, Streaming oder über einen anderen Übertragungskanal zu senden. Ein Kodierer kann verwendet werden, um diese Daten vor der Übertragung an das Client-Gerät 602 zu kodieren und/oder zu komprimieren. In mindestens einer Ausführungsform können diese Daten 632 beliebige Daten enthalten, die für eine Zustandsschätzung, ein Benutzerverhalten oder einen Aktionskontext relevant sind. In mindestens einer Ausführungsform kann das Client-Gerät 602, das diese Daten empfängt, diese Daten einem entsprechenden Zustandsmonitor 604 zur Verfügung stellen, der auch oder alternativ einen Zustandsschätzer 612 oder ein Kontextbestimmungsmodul 614 enthalten kann, um Daten zu analysieren, die an das Client-Gerät 602 gesendet oder von diesem erfasst werden. Ein Dekodierer kann darüber hinaus verwendet werden, um über das/die Netzwerk(e) 640 empfangene Daten zu dekodieren, zur Darstellung oder Aktion über das Client-Gerät 602, wie beispielsweise Benachrichtigungsinhalte über eine Anzeige 606 oder Audio, wie beispielsweise ein Alarm oder eine hörbare Benachrichtigung, über mindestens eine Audiowiedergabevorrichtung 608, wie beispielsweise Lautsprecher oder Kopfhörer. In mindestens einer Ausführungsform können zumindest einige dieser Daten bereits auf dem Client-Gerät 602 gespeichert, erzeugt oder für dieses zugänglich sein, so dass die Übertragung über das Netzwerk 640 zumindest für diesen Teil der Daten nicht erforderlich ist, z.B. wenn diese Daten zuvor heruntergeladen oder lokal auf einer Festplatte oder optischen Platte gespeichert wurden. In mindestens einer Ausführungsform kann ein Übertragungsmechanismus wie Datenstreaming verwendet werden, um diese Daten vom Server 620, wie beispielsweise aus einer Profildatenbank, an das Client-Gerät 602 zu übertragen. In mindestens einer Ausführungsform kann mindestens ein Teil dieser Daten von einer anderen Quelle bezogen, bestimmt oder gestreamt werden, z.B. von einem separaten Client-Gerät 650 oder einem Drittanbieterdienst 660, der auch Funktionalität zum Schätzen eines Zustands, Bestimmen eines Benutzerverhaltens, oder Bestimmen eines Aktionskontexts enthalten kann. In mindestens einer Ausführungsform können Teile dieser Funktionalität unter Verwendung mehrerer Rechenvorrichtungen oder mehrerer Prozessoren in einer oder mehreren Rechenvorrichtungen, wie z.B. einer Kombination aus CPUs und GPUs, durchgeführt werden.
  • In diesem Beispiel können Client-Vorrichtungen beliebige geeignete Rechenvorrichtungen beinhalten, wie beispielsweise einen Desktop-Computer, einen Notebook-Computer, eine Set-Top-Box, ein Streaming-Gerät, eine Spielekonsole, ein Smartphone, einen Tablet-Computer, ein intelligentes Fahrzeug, eine robotergestützte Maschine, ein VR-Headset, eine AR-Brille, einen tragbaren Computer oder ein intelligentes Fernsehgerät. Jede Client-Vorrichtung kann eine Anforderung über mindestens ein kabelgebundenes oder drahtloses Netzwerk, wie z.B. das Internet, ein Ethernet, ein lokales Netzwerk (LAN) oder ein Mobilfunknetzwerk, neben anderen solchen Optionen, ausgeben. In diesem Beispiel können diese Anforderungen an eine Adresse übermittelt werden, die einem Cloud-Anbieter zugeordnet ist, der eine oder mehrere elektronische Ressourcen in einer Cloud-Anbieter-Umgebung, wie z.B. ein Rechenzentrum oder eine Serverfarm, betreiben oder kontrollieren kann. In mindestens einer Ausführungsform kann die Anforderung von mindestens einem Edge-Server empfangen oder verarbeitet werden, der an einem Netzwerkrand sitzt und außerhalb mindestens einer der Umgebung des Cloud-Anbieters zugeordneten Sicherheitsschicht ist. Auf diese Weise kann die Latenz verringert werden, indem die Client-Geräte mit Servern interagieren können, die sich in grö-ßerer Nähe befinden, während gleichzeitig die Sicherheit der Ressourcen in der Umgebung des Cloud-Anbieters verbessert wird.
  • In mindestens einer Ausführungsform kann ein solches System zum Durchführen von graphischen Rendering-Operationen verwendet werden. In anderen Ausführungsformen kann ein solches System für andere Zwecke verwendet werden, z.B. für die Bereitstellung von Bild- oder Video-Inhalten zum Testen oder Validieren von Anwendungen autonomer Maschinen oder für die Durchführung von Deep-Learning-Operationen. In mindestens einer Ausführungsform kann ein solches System mit einem Edge-Gerät implementiert werden oder eine oder mehrere virtuelle Maschinen (VMs) umfassen. In mindestens einer Ausführungsform kann ein solches System zumindest teilweise in einem Rechenzentrum oder zumindest teilweise unter Verwendung von Cloud-Computing-Ressourcen implementiert sein.
  • INFERENZ- UND TRAININGSLOGIK
  • 7A veranschaulicht eine Inferenzierungs- und/oder Trainingslogik 715, die verwendet wird, um Inferenzierungs- und/oder Trainingsoperationen, die einer oder mehreren Ausführungsformen zugeordnet sind. Details zur Inferenzierungs- und/oder Trainingslogik 715 werden weiter unten in Verbindung mit 7A und/oder 7B bereitgestellt.
  • In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, Code- und/oder Datenspeicher 701 zum Speichern von Vorwärts- und/oder Ausgabegewicht und/oder Eingangs-/ Ausgangsdaten und/oder anderen Parametern zum Konfigurieren von Neuronen oder Schichten eines neuronalen Netzwerks beinhalten, das zur Inferenzierung in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder verwendet wird. In zumindest einer Ausführungsform kann die Trainingslogik 715 Code und/oder Datenspeicher 701 beinhalten oder mit diesem gekoppelt sein, um Grafikcode oder andere Software zum Steuern des Timings und/oder der Reihenfolge zu speichern, in welcher Gewichts- und/oder andere Parameterinformationen zu laden sind, um Logik, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten (kollektiv Arithmetik-Logik-Einheiten (ALUs)) zu konfigurieren. In zumindest einer Ausführungsform lädt Code, wie beispielsweise Grafikcode, Gewichts- oder andere Parameterinformationen in Prozessor-ALUs, basierend auf einer Architektur eines neuronalen Netzwerks, dem der Code entspricht. In zumindest einer Ausführungsform speichert der Code- und/oder Datenspeicher 701 Gewichtsparameter und/oder Ein-/Ausgabedaten jeder Schicht eines neuronalen Netzwerks, das in Verbindung mit einer oder mehreren Ausführungsformen während der Vorwärtspropagation von Ein-/Ausgabedaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenzierung unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen trainiert oder verwendet wurde. In zumindest einer Ausführungsform kann jeder Abschnitt des Code- und/oder Datenspeichers 701 in anderem On-Chip- oder Off-Chip-Datenspeicher, einschließlich des L1-, L2- oder L3-Caches oder Systemspeichers eines Prozessors, enthalten sein.
  • In mindestens einer Ausführungsform kann jeder beliebige Abschnitt des Code- und/oder Datenspeichers 701 intern oder extern zu einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen sein. In zumindest einer Ausführungsform können Code und/oder der Code und/oder Datenspeicher 701 Cache-Speicher, dynamisches RAM („DRAM“), statisches RAM („SRAM“), nichtflüchtiger Speicher (z.B. Flash-Speicher) oder anderer Speicher sein. In zumindest einer Ausführungsform kann die Wahl, ob Code und/oder der Code und/oder Datenspeicher 701 beispielsweise intern oder extern zu einem Prozessor ist oder aus DRAM, SRAM, Flash-Speicher oder einem anderen Speichertyp besteht, von auf dem Chip bzw. on-chip gegenüber nicht auf dem Chip bzw. off-chip verfügbarem Speicher, Latenzanforderungen der durchgeführten Trainings- und/oder Inferenzierungsfunktionen, der Stapelgröße der bei der Inferenzierung und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder einer Kombination dieser Faktoren abhängen
  • In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, einen Code- und/oder Datenspeicher 705 beinhalten zum Speichern von Rückwärts- und/oder Ausgangsgewichten und/oder Eingangs-/Ausgangsdaten, die Neuronen oder Schichten eines neuronalen Netzwerks entsprechen, das zur Inferenzierung in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder verwendet wird. In zumindest einer Ausführungsform speichert der Code- und /oder Datenspeicher 705 Gewichtsparameter und/oder Eingangs-/Ausgangsdaten jeder Schicht eines neuronalen Netzwerks, die in Verbindung mit einer oder mehreren Ausführungsformen während einer Rückwärtspropagation von Eingangs-/Ausgangsdaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenzierung unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen trainiert oder verwendet werden. In mindestens einer Ausführungsform kann die Trainingslogik 715 den Code und/oder Datenspeicher 705 beinhalten oder mit diesem gekoppelt sein, um Grafikcode oder andere Software zum Steuern des Timings und/oder der Reihenfolge zu speichern, in welchem bzw. welcher Gewichts- und/oder andere Parameterinformationen zum Konfigurieren von Logik einschließlich Ganzzahl- und/oder Gleitkommaeinheiten (kollektiv Arithmetik-Logik-Einheiten (ALUs)) zu laden sind. In mindestens einer Ausführungsform lädt Code, wie beispielsweise Grafikcode, basierend auf einer Architektur eines neuronalen Netzwerks, dem der Code entspricht, das Laden von Gewichts- oder anderer Parameterinformationen in Prozessor-ALUs. In mindestens einer Ausführungsform kann jeder beliebige Abschnitt des Code- und/oder Datenspeichers 705 in anderem On-Chip- oder Off-Chip-Datenspeicher, einschließlich des L1-, L2- oder L3-Cache oder Systemspeichers eines Prozessors, enthalten sein. In mindestens einer Ausführungsform kann jeder beliebige Abschnitt des Code- und/oder Datenspeichers 705 intern oder extern zu einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder Schaltungen sein. In zumindest einer Ausführungsform kann der Code- und/oder Datenspeicher 705 Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z.B. Flash-Speicher) oder anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob der Code- und/oder Datenspeicher 705 beispielsweise intern oder extern zu einem Prozessor ist oder aus DRAM, SRAM, Flash-Speicher oder einem anderen Speichertyp besteht, von On-Chip gegenüber Off-Chip verfügbarem Speicher, Latenzanforderungen an durchgeführten Trainings- und/oder Inferenzierungsfunktionen, der Stapelgröße der bei der Inferenzierung und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform können der Code und/oder Datenspeicher 701 und der Code und/oder Datenspeicher 705 separate Speicherstrukturen sein. In zumindest einer Ausführungsform können der Code und/oder Datenspeicher 701 und der Code und/oder Datenspeicher 705 eine gleiche Speicherstruktur sein. In zumindest einer Ausführungsform können der Code und/oder Datenspeicher 701 und der Code und/oder Datenspeicher 705 teilweise eine gleiche Speicherstruktur und teilweise separate Speicherstrukturen sein. In mindestens einer Ausführungsform kann jeder beliebige Abschnitt des Code- und/oder Datenspeichers 701 und des Code- und/oder Datenspeichers 705 mit anderen On-Chip- oder Off-Chip-Datenspeichern, einschließlich des L1-, L2- oder L3-Cache oder Systemspeichers eines Prozessors, kombiniert sein.
  • In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, eine oder mehrere Arithmetik-Logik-Einheiten („ALU(s)“) 710, einschließlich Ganzzahl- und/oder Gleitkommaeinheiten, beinhalten, um logische und/oder mathematische Operationen durchzuführen, die zumindest teilweise auf Trainings- und/oder Inferenzierungscode (beispielsweise Grafikcode) basieren oder durch diesen angezeigt werden, deren Ergebnis Aktivierungen (z.B. Ausgangswerte von Schichten oder Neuronen innerhalb eines neuronalen Netzwerks), die in einem Aktivierungsspeicher 720 gespeichert sind, erzeugen kann, die Funktionen von Eingangs-/Ausgangs- und/oder Gewichtsparameterdaten sind, die in dem Code und/oder Datenspeicher 701 und/oder dem Code und/oder Datenspeicher 705 gespeichert sind. In zumindest einer Ausführungsform werden in dem Aktivierungsspeicher 720 gespeicherte Aktivierungen in Übereinstimmung mit linearer algebraischer und/oder matrixbasierter Mathematik erzeugt, die von den ALU(s) 710 im Ansprechen auf das Ausführen von Anweisungen oder anderem Code durchgeführt wird, wobei Gewichtswerte, die in dem Code und/oder Datenspeicher 701 und/oder dem Code- und/oder Datenspeicher 705 gespeichert sind, als Operanden zusammen mit anderen Werten, wie beispielsweise Bias-Werten, Gradienteninformationen, Impulswerten oder anderen Parametern oder Hyperparametern, verwendet werden, von welchen beliebige oder alle in dem Code und/oder Datenspeicher 705 oder dem Code und/oder Datenspeicher 701 oder einem anderen Speicher auf oder außerhalb des Chips gespeichert sein können.
  • In mindestens einer Ausführungsform sind die ALU(s) 710 in einem oder mehreren Prozessoren oder anderen Hardware-Logikgeräten oder -Schaltungen enthalten, während in einer anderen Ausführungsform die ALU(s) 710 extern zu einem Prozessor oder einem anderen Hardware-Logikgerät oder einer Schaltung sein können, die sie verwenden (z.B. ein Co-Prozessor). In mindestens einer Ausführungsform können die ALUs 710 in den Ausführungseinheiten eines Prozessors oder anderweitig in einer Bank von ALUs enthalten sein, auf die die Ausführungseinheiten eines Prozessors zugreifen können, entweder innerhalb desselben Prozessors oder verteilt auf verschiedene Prozessoren unterschiedlichen Typs (z.B. zentrale Verarbeitungseinheiten, Grafikverarbeitungseinheiten, Festfunktionseinheiten usw.). In mindestens einer Ausführungsform können der Code- und/oder Datenspeicher 701, der Code- und/oder Datenspeicher 705 und der Aktivierungsspeicher 720 auf einem gleichen Prozessor oder auf einer anderen Hardware-Logikvorrichtung oder -schaltung liegen, während sie sich in einer anderen Ausführungsform auf verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen oder in einer Kombination aus gleichen und verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen befinden können. In mindestens einer Ausführungsform kann ein beliebiger Teil des Aktivierungsspeichers 720 in anderen On-Chip- oder Off-Chip-Datenspeichern enthalten sein, einschließlich des L1-, L2- oder L3-Cache oder Systemspeichers eines Prozessors. Ferner kann der Inferenzierungs- und/oder Trainingscode zusammen mit anderem Code gespeichert sein, auf den ein Prozessor oder eine andere Hardware-Logik oder -Schaltung zugreifen kann und der unter Verwendung der Abruf-, Decodier-, Planungs-, Ausführungs-, Ausscheidungs- und/oder anderen logischen Schaltungen eines Prozessors abgerufen und/oder verarbeitet wird.
  • In mindestens einer Ausführungsform kann der Aktivierungsspeicher 720 ein Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z.B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann sich der Aktivierungsspeicher 720 vollständig 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 z.B. innerhalb oder außerhalb eines Prozessors liegt oder DRAM, SRAM, Flash-Speicher oder einen anderen Speichertyp umfasst, von dem verfügbaren Speicher auf dem Chip im Vergleich zu außerhalb des Chips, den Latenzanforderungen der durchgeführten Trainings- und/oder Inferenzfunktionen, der Stapelgröße der bei der Inferenzierung und/oder dem Training eines neuronalen Netzwerks verwendeten Daten oder einer Kombination dieser Faktoren abhängen. In mindestens einer Ausführungsform kann die in 7A dargestellte Inferenzierungs- und/oder Trainingslogik 715 in Verbindung mit einem anwendungsspezifischen integrierten Schaltkreis („ASIC“) verwendet werden, wie z.B. einer TensorFlow® Processing Unit von Google, einer Inferenzverarbeitungseinheit (IPU) von Graphcore™ oder einem Nervana® (z.B. „Lake Crest“) Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die in 7A dargestellte Inferenzierungs- und/oder Trainingslogik 715 in Verbindung mit Hardware der Zentralverarbeitungseinheit („CPU“), der Grafikverarbeitungseinheit („GPU“) oder anderer Hardware, wie z.B. Field Programmable Gate Arrays („FPGAs“), verwendet werden.
  • 7B veranschaulicht die Inferenzierungs- und/oder Trainingslogik 715, gemäß mindestens einer Ausführungsform oder mehreren Ausführungsformen. In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, Hardware-Logik umfassen, in der Rechenressourcen dediziert oder anderweitig ausschließlich in Verbindung mit Gewichtswerten oder anderen Informationen verwendet werden, die einer oder mehreren Schichten von Neuronen innerhalb eines neuronalen Netzwerks entsprechen. In mindestens einer Ausführungsform kann die in 7B dargestellte Inferenzierungs- und/oder Trainingslogik 715 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC) verwendet werden, wie z.B. der TensorFlow® Processing Unit von Google, einer Inferenzierungsverarbeitungseinheit (IPU) von Graphcore™ oder einem Nervana® (z.B. „Lake Crest“)-Prozessor von Intel Corp. In mindestens einer Ausführungsform kann die in 7B veranschaulichte Inferenzierungs- und/oder Trainingslogik 715 in Verbindung mit Hardware der Zentralverarbeitungseinheit (CPU), der Grafikverarbeitungseinheit (GPU) oder anderer Hardware, wie z.B. FPGAs (Field Programmable Gate Arrays), verwendet werden. In mindestens einer Ausführungsform umfasst die Inferenzierungs- und/oder Trainingslogik 715, ohne darauf beschränkt zu sein, den Code- und/oder Datenspeicher 701 und den Code- und/oder Datenspeicher 705, die zum Speichern von Code (z.B. Graphencode), Gewichtswerten und/oder anderen Informationen, einschließlich Bias-Werten, Gradienteninformationen, Impulswerten und/oder anderen Parameter- oder Hyperparameterinformationen, verwendet werden können. In mindestens einer Ausführungsform, die in 7B dargestellt ist, ist jeder Code- und/oder Datenspeicher 701 und jeder Code- und/oder Datenspeicher 705 mit einer dedizierten Rechenressource verbunden, wie z.B. Rechenhardware 702 bzw. Rechenhardware 706. In mindestens einer Ausführungsform umfasst jede der Rechenhardware 702 und der Rechenhardware 706 eine oder mehrere ALUs, die mathematische Funktionen, wie lineare algebraische Funktionen, nur auf Informationen ausführen, die im Code- und/oder Datenspeicher 701 bzw. im Code- und/oder Datenspeicher 705 gespeichert sind, deren Ergebnis im Aktivierungsspeicher 720 gespeichert wird.
  • In mindestens einer Ausführungsform entspricht jeder der Code- und/oder Datenspeicher 701 und 705 und die entsprechende Rechenhardware 702 bzw. 706 verschiedenen Schichten eines neuronalen Netzwerks, so dass eine resultierende Aktivierung von einem Speicher-/Rechenpaar 701/702 aus Code- und/oder Datenspeicher 701 und Rechenhardware 702 als Eingabe für ein „Speicher-/Rechenpaar 705/706“ aus Code- und/oder Datenspeicher 705 und Rechenhardware 706 bereitgestellt wird, um eine konzeptionelle Organisation eines neuronalen Netzwerks zu spiegeln. In mindestens einer Ausführungsform kann jedes der Speicher-/Rechenpaare 701/702 und 705/706 mehr als einer neuronalen Netzwerkschicht entsprechen. In mindestens einer Ausführungsform können zusätzliche Speicher-/Rechenpaare (nicht dargestellt) im Anschluss an oder parallel zu den Speicher-/Rechenpaaren 701/702 und 705/706 in die Inferenzierungs- und/oder Trainingslogik 715 einbezogen sein.
  • RECHENZENTRUM
  • 8 veranschaulicht ein beispielhaftes Rechenzentrum 800, in welchem mindestens eine Ausführungsform verwendet werden kann. In mindestens einer Ausführungsform beinhaltet das Rechenzentrum 800 eine Rechenzentrum-Infrastrukturschicht 810, eine Frameworkschicht 820, eine Softwareschicht 830 und eine Anwendungsschicht 840.
  • In mindestens einer Ausführungsform, wie in 8 gezeigt, kann die Rechenzentrum-Infrastrukturschicht 810 einen Ressourcenorchestrator 812, gruppierte Rechenressourcen 814 und Knoten-Rechenressourcen („Knoten-C.R.s“) 816(1)-816(N) beinhalten, wobei „N“ eine beliebige ganze, positive Ganzzahl repräsentiert. In mindestens einer Ausführungsform können die Knoten-C.R.s 816(1)-816(N), ohne darauf beschränkt zu sein, eine beliebige Anzahl von Zentralverarbeitungseinheiten („CPUs“) oder anderen Prozessoren (einschließlich Beschleunigern, feldprogrammierbaren Gate-Arrays („FPGAs“), Grafikprozessoren usw.), Speichervorrichtungen (z.B. dynamischer Festspeicher), Speichergeräte (z.B. Solid-State- oder Festplattenlaufwerke), Netzwerk-Eingabe-/Ausgabe-Geräte („NW E/A“), Netzwerk-Switches, virtuelle Maschinen („VMs“), Leistungsmodule und Kühlmodule usw. beinhalten. In mindestens einer Ausführungsform können ein oder mehrere Knoten-C.R.s unter den Knoten-C.R.s 816(1)-816(N) ein Server mit einer oder mehreren der vorstehend erwähnten Rechenressourcen sein.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 814 separate Gruppierungen von Knoten-C.R.s beinhalten, die in einem oder mehreren Racks (nicht dargestellt) untergebracht sind, oder in vielen Racks, die in Rechenzentren an verschiedenen geografischen Standorten untergebracht sind (ebenfalls nicht dargestellt). Separate Gruppierungen von Knoten-C.R.s können innerhalb der gruppierten Rechenressourcen 814 gruppierte Rechen-, Netzwerk-, Speicher- oder Speicherressourcen beinhalten, die zur Unterstützung einer oder mehrerer Arbeitslasten konfiguriert oder zugewiesen werden können. In mindestens einer Ausführungsform können mehrere Knoten-C.R.s mit CPUs oder Prozessoren in einem oder mehreren Racks gruppiert sein, um Rechenressourcen zur Unterstützung einer oder mehrerer Arbeitslasten bereitzustellen. In mindestens einer Ausführungsform können ein oder mehrere Racks auch eine beliebige Anzahl von Leistungs- bzw. Stromversorgungsmodulen, Kühlmodulen und Netzwerk-Switches in beliebiger Kombination beinhalten.
  • In mindestens einer Ausführungsform kann der Ressourcenorchestrator 812 einen oder mehrere Knoten-CRs 816(1)-816(N) und/oder gruppierte Rechenressourcen 814 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcenorchestrator 812 eine Software-Design-Infrastruktur („SDI“)-Verwaltungseinheit für das Rechenzentrum 800 beinhalten. In mindestens einer Ausführungsform kann der Ressourcenorchestrator Hardware, Software oder eine Kombination davon umfassen.
  • In mindestens einer Ausführungsform, wie in 8 gezeigt, beinhaltet die Frameworkschicht 820 einen Job-Planer bzw. Auftragsplaner 822, einen Konfigurationsverwalter 824, einen Ressourcenverwalter 826 und ein verteiltes Dateisystem 828. In mindestens einer Ausführungsform kann die Frameworkschicht 820 ein Framework zur Unterstützung der Software 832 der Softwareschicht 830 und/oder einer oder mehrerer Anwendung(en) 842 der Anwendungsschicht 840 beinhalten. In mindestens einer Ausführungsform können die Software 832 oder die Anwendung(en) 842 jeweils webbasierte Dienstsoftware oder Anwendungen beinhalten, wie sie beispielsweise von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. In mindestens einer Ausführungsform kann die Frameworkschicht 820 eine Art von freiem und quelloffenem Software-Webanwendungs-Framework wie Apache Spark™ (nachstehend „Spark“) sein, das ein verteiltes Dateisystem 828 für die Verarbeitung großer Datenmengen (z.B. „Big Data“) verwenden kann, ist aber nicht darauf beschränkt. In mindestens einer Ausführungsform kann der Auftragsplaner 822 einen Spark-Treiber enthalten, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Rechenzentrums 800 unterstützt werden. In mindestens einer Ausführungsform kann der Konfigurationsverwalter 824 in der Lage sein, verschiedene Schichten zu konfigurieren, wie beispielsweise die Softwareschicht 830 und die Frameworkschicht 820, einschließlich Spark und das verteilte Dateisystem 828 zur Unterstützung der Verarbeitung großer Datenmengen. In mindestens einer Ausführungsform kann der Ressourcenverwalter 826 in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 828 und des Auftragsplaners 822 gemappt oder zugeordnet sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Rechenressourcen die gruppierten Rechenressourcen 814 auf der Rechenzentrums-Infrastrukturschicht 810 umfassen. In mindestens einer Ausführungsform kann sich der Ressourcenverwalter 826 mit dem Ressourcenorchestrator 812 koordinieren, um diese gemappten oder zugeordneten Rechenressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die in der Softwareschicht 830 enthaltene Software 832 Software enthalten, die von mindestens Teilen der Knoten C.R.s 816(1)-816(N), der gruppierten Rechenressourcen 814 und/oder des verteilten Dateisystems 828 der Frameworkschicht 820 verwendet wird. Die eine oder die mehreren Arten von Software können unter anderem Internet-Suchsoftware, E-Mail-Virenscan-Software, Datenbanksoftware und Software für Streaming-Videoinhalte umfassen.
  • In mindestens einer Ausführungsform kann (können) die in der Anwendungsschicht 840 enthaltene(n) Anwendung(en) 842 eine oder mehrere Arten von Anwendungen umfassen, die von mindestens Teilen der Knoten C.R.s 816(1)-816(N), den gruppierten Rechenressourcen 814 und/oder dem verteilten Dateisystem 828 der Frameworkschicht 820 verwendet werden. Eine oder mehrere Arten von Anwendungen können eine beliebige Anzahl von Genomanwendungen, eine kognitives Rechnen und eine maschinelle Lernanwendung, einschließlich Trainings- oder Inferenzsoftware, maschinelle Lernsoftware (z.B. PyTorch, TensorFlow, Caffe usw.) oder andere maschinelle Lernanwendungen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden, umfassen, sind aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform können der Konfigurationsverwalter 824, der Ressourcenverwalter 826 und der Ressourcenorchestrator 812 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen implementieren, die auf einer beliebigen Menge und Art von Daten basieren, die auf jede technisch mögliche Weise erfasst werden. In mindestens einer Ausführungsform können selbstmodifizierende Aktionen einen Rechenzentrumsbetreiber des Rechenzentrums 800 davon entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Teile eines Rechenzentrums vermeiden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum 800 Werkzeuge, Dienste, Software oder andere Ressourcen enthalten, um ein oder mehrere Modelle maschinellen Lernens zu trainieren oder Informationen unter Verwendung eines oder mehrerer Modelle maschinellen Lernens gemäß einer oder mehrerer hier beschriebener Ausführungsformen vorherzusagen oder abzuleiten. Zum Beispiel kann in mindestens einer Ausführungsform ein Modell maschinellen Lernens trainiert werden, indem Gewichtsparameter gemäß einer neuronalen Netzwerkarchitektur unter Verwendung von Software und Rechenressourcen berechnet werden, die oben in Bezug auf das Datenzentrum 800 beschrieben wurden. In mindestens einer Ausführungsform können trainierte Modelle maschinellen Lernens, die einem oder mehreren neuronalen Netzwerken entsprechen, verwendet werden, um unter Verwendung der oben beschriebenen Ressourcen in Bezug auf das Datenzentrum 800 Informationen abzuleiten oder vorherzusagen, indem Gewichtungsparameter verwendet werden, die durch ein oder mehrere hierin beschriebene Trainingsverfahren berechnet werden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum CPUs, anwendungsspezifische integrierte Schaltkreise (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um das Training und/oder die Inferenzierung mit den oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der oben beschriebenen Software- und/oder Hardwareressourcen als Dienst konfiguriert sein, um Benutzern das Training oder die Inferenzierung von Informationen zu ermöglichen, wie z.B. Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Die Inferenzierungs- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenzierungs- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B beschrieben. In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 715 in dem System von 8 für Inferenzierungs- oder Vorhersageoperationen verwendet werden, die zumindest teilweise auf Gewichtsparametern basieren, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen neuronaler Netzwerke oder hierin beschriebenen Anwendungsfällen neuronaler Netzwerke berechnet werden.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten ermittelt wurden, zu einer einzigen Darstellung zusammenzusetzen.
  • COMPUTERSYSTEME
  • 9 ist ein Blockdiagramm, das ein beispielhaftes Computersystem veranschaulicht, das ein System mit miteinander verbundenen Geräten und Komponenten, ein System auf einem Chip bzw. System-on-a-Chip (SOC) oder eine Kombination davon 900 sein kann, das mit einem Prozessor gebildet ist, der Ausführungseinheiten zur Ausführung einer Anweisung enthalten kann, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 900, ohne darauf beschränkt zu sein, eine Komponente, wie beispielsweise einen Prozessor 902, umfassen, um Ausführungseinheiten einschließlich Logik zur Ausführung von Algorithmen zur Verarbeitung von Daten zu verwenden, gemäß der Erfindung, wie in der hier beschriebenen Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 900 Prozessoren enthalten, wie z.B. die PENTIUM®-Prozessorfamilie, XeonTM, Itanium®, XScaleTM und/oder StrongARMTM, Intel® Core™ oder Intel® Nervana™-Mikroprozessoren, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, technische Workstations, Set-Top-Boxen und dergleichen) verwendet werden können. In mindestens einer Ausführungsform kann das Computersystem 900 eine Version des Betriebssystems WINDOWS ausführen, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (z.B. UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen verwendet werden können.
  • Ausführungsformen können auch in anderen Geräten wie Handheld-Geräten und eingebetteten Anwendungen verwendet werden. Einige Beispiele für Handheld-Geräte sind Mobiltelefone, Internetprotokollgeräte, Digitalkameras, persönliche digitale Assistenten („PDAs“) und Handheld-PCs. In mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen digitalen Signalprozessor („DSP“), ein System auf einem Chip, Netzwerkcomputer („NetPCs“), Set-Top-Boxen, Netzwerk-Hubs, Wide-Area-Network-Switches („WAN“) oder jedes andere System umfassen, das eine oder mehrere Anweisungen gemäß mindestens einer Ausführungsform ausführen kann.
  • In mindestens einer Ausführungsform kann das Computersystem 900, ohne darauf beschränkt zu sein, einen Prozessor 902 enthalten, der, ohne darauf beschränkt zu sein, eine oder mehrere Ausführungseinheiten 908 enthalten kann, um ein Training und/oder eine Inferenzierung eines Modells maschinellen Lernens gemäß hierin beschriebenen Techniken durchzuführen. In mindestens einer Ausführungsform ist das Computersystem 900 ein Einzelprozessor-Desktop- oder -Serversystem, aber in einer anderen Ausführungsform kann das Computersystem 900 ein Multiprozessorsystem sein. In mindestens einer Ausführungsform kann der Prozessor 902, ohne darauf beschränkt zu sein, einen Mikroprozessor mit komplexem Befehlssatz („CISC“), einen Mikroprozessor mit reduziertem Befehlssatz („RISC“), einen Mikroprozessor mit sehr langem Befehlswort („VLIW“), einen Prozessor, der eine Kombination von Befehlssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie z.B. einen digitalen Signalprozessor, umfassen. In mindestens einer Ausführungsform kann der Prozessor 902 mit einem Prozessorbus 910 verbunden 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 darauf beschränkt zu sein, einen internen Cachespeicher der Ebene 1 („L1“) („Cache“) 904 enthalten. In mindestens einer Ausführungsform kann der Prozessor 902 einen einzigen internen Cache oder mehrere Ebenen von internem Cache aufweisen. In mindestens einer Ausführungsform kann sich der Cachespeicher außerhalb des Prozessors 902 befinden. Andere Ausführungsformen können auch eine Kombination aus sowohl internen als auch externen Caches enthalten, je nach spezieller Implementierung und Bedürfnissen. In mindestens einer Ausführungsform kann eine Registerdatei 906 verschiedene Datentypen in verschiedenen Registern speichern, darunter, ohne darauf beschränkt zu sein, Ganzzahlregister, Gleitkommaregister, Statusregister und ein Befehlszeigerregister.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 908, einschließlich, ohne darauf beschränkt zu sein, Logik zur Durchführung von Ganzzahl- und Gleitkommaoperationen, ebenfalls in dem Prozessor 902. In mindestens einer Ausführungsform kann der Prozessor 902 auch einen Nur-Lese-Speicher („ROM“) für Mikrocode („ucode“) enthalten, der Mikrocode für bestimmte Makrobefehle speichert. In mindestens einer Ausführungsform kann die Ausführungseinheit 908 eine Logik zur Verarbeitung eines gepackten Befehlssatzes 909 enthalten. In mindestens einer Ausführungsform können durch Aufnahme des gepackten Befehlssatzes 909 in den Befehlssatz eines Universalprozessors 902 zusammen mit der zugehörigen Schaltung zur Ausführung von Befehlen Operationen, die von vielen Multimedia-Anwendungen verwendet werden, unter Verwendung gepackter Daten in einem Universalprozessor 902 durchgeführt werden. In einer oder mehreren Ausführungsformen können viele Multimedia-Anwendungen beschleunigt und effizienter ausgeführt werden, indem die volle Breite des Datenbusses eines Prozessors für die Ausführung von Operationen mit gepackten Daten genutzt wird, wodurch die Notwendigkeit entfällt, kleinere Dateneinheiten über den Datenbus dieses Prozessors zu übertragen, um eine oder mehrere Operationen mit einem Datenelement nach dem anderen durchzuführen.
  • In mindestens einer Ausführungsform kann die Ausführungseinheit 908 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikgeräten, DSPs und anderen Arten von Logikschaltungen verwendet werden. In mindestens einer Ausführungsform kann das Computersystem 900, ohne darauf beschränkt zu sein, einen Speicher 920 enthalten. In mindestens einer Ausführungsform kann der Speicher 920 als ein dynamischer Direktzugriffsspeicher („DRAM“), ein statischer Direktzugriffsspeicher („SRAM“), ein Flash-Speicher oder eine andere Speichervorrichtung implementiert sein. In mindestens einer Ausführungsform kann der Speicher 920 eine oder mehrere Anweisung(en) 919 und/oder Daten 921 speichern, die durch Datensignale repräsentiert werden, die von dem Prozessor 902 ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein System logik-Chip mit dem Prozessorbus 910 und dem Speicher 920 gekoppelt sein. In mindestens einer Ausführungsform kann ein Systemlogik-Chip, ohne darauf beschränkt zu sein, einen Speichercontroller-Hub („MCH“, Memory Controller Hub) 916 enthalten, und kann der Prozessor 902 mit dem MCH 916 über den Prozessorbus 910 kommunizieren. In mindestens einer Ausführungsform kann der MCH 916 einen Speicherpfad 918 mit hoher Bandbreite zu dem Speicher 920 für die Befehls- und Datenspeicherung und für die 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 einer System-E/A-Schnittstelle 922 überbrücken. In mindestens einer Ausführungsform kann ein Systemlogikchip einen Grafikport zur Kopplung mit einem Grafikcontroller bereitstellen. In mindestens einer Ausführungsform kann der MCH 916 über einen Speicherpfad 918 mit hoher Bandbreite mit dem Speicher 920 gekoppelt sein, und kann eine Grafik-/Videokarte 912 über eine Accelerated Graphics Port („AGP“)-Verbindung 914 mit dem MCH 916 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 900 eine System-E/A-Schnittstelle 922 verwenden, bei dem es sich um einen proprietären Hub-Schnittstellenbus handelt, um den MCH 916 mit einem E/A-Controller-Hub („ICH“) 930 zu verbinden. In mindestens einer Ausführungsform kann der ICH 930 direkte Verbindungen zu einigen E/A-Geräten über einen lokalen E/A-Bus bereitstellen. In mindestens einer Ausführungsform kann der lokale E/A-Bus, ohne darauf beschränkt zu sein, einen Hochgeschwindigkeits-E/A-Bus zur Verbindung von Peripheriegeräten mit dem Speicher 920, einem Chipsatz und dem Prozessor 902 umfassen. Beispiele können, ohne darauf beschränkt zu sein, einen Audiocontroller 929, einen Firmware-Hub („Flash-BIOS“) 928, einen drahtlosen Transceiver 926, einen Datenspeicher 924, einen Legacy-E/A-Controller 923 mit Benutzereingabe- und Tastaturschnittstellen, einen seriellen Erweiterungsport 927, wie beispielsweise einen Universal Serial Bus („USB“)-Port, und einen Netzwerkcontroller 934 umfassen. In mindestens einer Ausführungsform kann der Datenspeicher 924 aus einem Festplattenlaufwerk, einem Diskettenlaufwerk, einem CD-ROM-Gerät, einem Flash-Speichergerät oder einem anderen Massenspeichergerät bestehen.
  • In mindestens einer Ausführungsform zeigt 9 ein System, das miteinander verbundene Hardwarevorrichtungen oder „Chips“ enthält, während in anderen Ausführungsformen 9 ein beispielhaftes System auf einem Chip („SoC“) veranschaulichen kann. In mindestens einer Ausführungsform können die in 9 dargestellten Vorrichtungen mit proprietären Interconnects bzw. Zwischenverbindungen, standardisierten Interconnects (z.B. PCIe) oder einer Kombination davon verbunden sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Computersystems 900 über Compute-Express-Verbindung (CXL)-Verbindungen miteinander verbunden.
  • Die Inferenzierungs- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen in Verbindung mit einer oder mehreren Ausführungsformen durchzuführen. Einzelheiten zur Inferenzierungs- und/oder Trainingslogik 715 sind hierin in Verbindung mit 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 715 im System von 9 für Inferenzierungs- oder Vorhersageoperationen verwendet werden, die zumindest teilweise auf Gewichtsparametern basieren, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen neuronaler Netzwerke oder hierin beschriebenen Anwendungsfällen neuronaler Netzwerke berechnet werden.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten ermittelt wurden, zu einer einzigen Darstellung zusammenzusetzen.
  • 10 ist ein Blockdiagramm, das ein elektronisches Gerät 1000 zur Nutzung eines Prozessors 1010 veranschaulicht, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das elektronische Gerät 1000 beispielsweise, und ohne darauf beschränkt zu sein, ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop, ein Tablet, ein mobiles Gerät, ein Telefon, ein eingebetteter Computer oder ein beliebiges anderes geeignetes elektronisches Gerät sein.
  • In mindestens einer Ausführungsform kann das elektronische Gerät 1000, ohne darauf beschränkt zu sein, einen Prozessor 1010 enthalten, der mit einer beliebigen Anzahl oder Art von Komponenten, Peripheriegeräten, Modulen oder Geräten kommunikativ verbunden ist. In mindestens einer Ausführungsform ist der Prozessor 1010 über einen Bus oder eine Schnittstelle gekoppelt, wie z.B. einen 1°C-Bus, einen Systemverwaltungsbus („SMBus“), einen Low-Pin-Count-Bus (LPC), eine serielle Peripherieschnittstelle („SPI“), einen High-Definition-Audio-Bus („HDA“), einen Serial-Advance-Technology-Attachment-Bus („SATA“), einen Universal-Serial-Bus („USB“) (Versionen 1, 2, 3, usw.) oder einen Universal Asynchronous Receiver/Transmitter-Bus („UART“). In mindestens einer Ausführungsform veranschaulicht 10 ein System, das miteinander verbundene Hardwarevorrichtungen oder „Chips“ enthält, während in anderen Ausführungsformen 10 ein beispielhaftes System auf einem Chip („SoC“) veranschaulichen kann. In mindestens einer Ausführungsform können die in 10 dargestellten Vorrichtungen mit proprietären Interconnects, standardisierten Interconnects (z.B. PCIe) oder einer Kombination davon verbunden sein. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten von 10 über Compute-Express-Verbindung (CXL)-Verbindungen miteinander verbunden.
  • In mindestens einer Ausführungsform kann 10 eine Anzeige 1024, einen berührungsempfindlichen Bildschirm bzw. Touchscreen 1025, eine berührungsempfindliche Sensorfläche bzw. ein Touchpad 1030, eine Nahfeldkommunikations- bzw. Near Field Communications-Einheit („NFC“) 1045, einen Sensor-Hub 1040, einen Wärmesensor 1046, einen Express-Chipsatz („EC“) 1035, ein Trusted Platform Module („TPM“) 1038, BIOS/Firmware/Flash-Speicher („BIOS, FW Flash“) 1022, einen DSP 1060, ein Laufwerk („SSD oder HDD“) 1020 wie beispielsweise eine Solid State Disk („SSD“) oder eine Festplatte („HDD“), eine Wireless Local Area Network-Einheit („WLAN“) 1050, eine Bluetooth-Einheit 1052, eine Wireless Wide Area Network-Einheit („WWAN“) 1056, ein Global Positioning System (GPS) 1055, eine Kamera („USB 3.0-Kamera“) 1054, wie z.B. eine USB 3.0-Kamera, und/oder eine Low Power Double Data Rate („LPDDR“)-Speichereinheit („LPDDR3“) 1015, die z.B. in einem LPDDR3-Standard implementiert ist, beinhalten. Diese Komponenten können jeweils in jeder geeigneten Weise implementiert sein.
  • In mindestens einer Ausführungsform können andere Komponenten über die hierin beschriebenen Komponenten kommunikativ mit dem Prozessor 1010 verbunden sein. In mindestens einer Ausführungsform können ein Beschleunigungsmesser 1041, ein Umgebungslichtsensor („ALS“; Ambient Light Sensor) 1042, ein Kompass 1043 und ein Gyroskop 1044 kommunikativ mit dem Sensor-Hub 1040 verbunden sein. In mindestens einer Ausführungsform können ein Wärmesensor 1039, ein Lüfter 1037, eine Tastatur 1046 und ein Touchpad 1030 kommunikativ mit dem EC 1035 gekoppelt sein. In mindestens einer Ausführungsform können Lautsprecher 1063, ein Kopfhörer 1064 und ein Mikrofon („mic“) 1065 kommunikativ mit einer Audioeinheit („audio codec and dass d amp“, Audio-Codierer/Decodierer und Klasse D-Verstärker) 1064 gekoppelt sein, die ihrerseits kommunikativ mit dem DSP 1060 gekoppelt sein kann. In mindestens einer Ausführungsform kann die Audioeinheit 1064 beispielsweise, und ohne darauf beschränkt zu sein, einen Audio-Codierer/Decodierer („Codec“) und einen Verstärker der Klasse D umfassen. In mindestens einer Ausführungsform kann eine SIM-Karte („SIM“) 1057 kommunikativ mit der WWAN-Einheit 1056 gekoppelt sein. In mindestens einer Ausführungsform können Komponenten wie die WLAN-Einheit 1050 und die Bluetooth-Einheit 1052 sowie die WWAN-Einheit 1056 in einem Next Generation Form Factor („NGFF“) implementiert sein.
  • Die Inferenzierungs- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen in Verbindung mit einer oder mehreren Ausführungsformen durchzuführen. Einzelheiten zur Inferenzierungs- und/oder Trainingslogik 715 sind hierin in Verbindung mit 7A und/oder 7B beschrieben. In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 715 im System von 10 für Inferenzierungs- oder Vorhersageoperationen verwendet werden, die zumindest teilweise auf Gewichtsparametern basieren, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen neuronaler Netzwerke oder hierin beschriebenen Anwendungsfällen neuronaler Netzwerke berechnet werden.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten ermittelt wurden, zu einer einzigen Darstellung zusammenzusetzen.
  • 11 ist ein Blockdiagramm eines Verarbeitungssystems gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform enthält das System 1100 einen oder mehrere Prozessoren 1102 und einen oder mehrere Grafikprozessoren 1108 und kann ein Einzelprozessor-Desktop-System, ein Multiprozessor-Workstation-System oder ein Server-System mit einer großen Anzahl von Prozessoren 1102 oder Prozessorkernen 1107 sein. In mindestens einer Ausführungsform ist das System 1100 eine Verarbeitungsplattform, die in einen integrierten System-on-a-Chip (SoC)-Schaltkreis zur Verwendung in mobilen, tragbaren oder eingebetteten Geräten integriert ist.
  • In mindestens einer Ausführungsform kann das System 1100 eine serverbasierte Spielplattform, eine Spielkonsole, einschließlich einer Spiel- und Medienkonsole, eine mobile Spielkonsole, eine Handheld-Spielkonsole oder eine Online-Spielkonsole umfassen oder darin integriert sein. In mindestens einer Ausführungsform ist das System 1100 ein Mobiltelefon, ein Smartphone, ein Tablet-Computergerät oder ein mobiles Internetgerät. In mindestens einer Ausführungsform kann das Verarbeitungssystem 1100 auch ein Wearable-Gerät umfassen, mit diesem gekoppelt oder in dieses integriert sein, wie z.B. ein Wearable-Gerät für eine intelligente Uhr, eine intelligente Brille, ein Augmented-Reality-Gerät oder ein Virtual-Reality-Gerät. In mindestens einer Ausführungsform ist das Verarbeitungssystem 1100 ein Fernseh- oder Set-Top-Box-Gerät mit einem oder mehreren Prozessoren 1102 und einer grafischen Oberfläche, die von einem oder mehreren Grafikprozessoren 1108 erzeugt wird.
  • In mindestens einer Ausführungsform enthalten ein oder mehrere Prozessoren 1102 jeweils einen oder mehrere Prozessorkerne 1107 zur Verarbeitung von Befehlen, die bei ihrer Ausführung Operationen für System- und Anwendersoftware ausführen. In mindestens einer Ausführungsform ist jeder von einem oder mehreren Prozessorkernen 1107 so konfiguriert, dass er eine bestimmte Befehlssequenz 1109 verarbeitet. In mindestens einer Ausführungsform kann die Befehlssequenz 1109 Complex Instruction Set Computing (CISC), Reduced Instruction Set Computing (RISC) oder die Verarbeitung über ein Very Long Instruction Word (VLIW) ermöglichen. In mindestens einer Ausführungsform können die Prozessorkerne 1107 jeweils eine andere Befehlssequenz 1109 verarbeiten, die Befehle enthalten kann, um die Emulation anderer Befehlssequenzen zu erleichtern. In mindestens einer Ausführungsform kann der Prozessorkern 1107 auch andere Verarbeitungsgeräte enthalten, z.B. einen digitalen Signalprozessor (DSP).
  • In mindestens einer Ausführungsform enthält der Prozessor 1102 einen Cache-Speicher 1104. In mindestens einer Ausführungsform kann der Prozessor 1102 einen einzigen internen Cache-Speicher oder mehrere Ebenen von internen Cache-Speichern haben. In mindestens einer Ausführungsform wird der Cache-Speicher von verschiedenen 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 dargestellt), der von den Prozessorkernen 1107 unter Verwendung bekannter Cache-Kohärenztechniken gemeinsam genutzt werden kann. In mindestens einer Ausführungsform ist zusätzlich eine Registerdatei 1106 in dem Prozessor 1102 enthalten, die verschiedene Arten von Registern zum Speichern unterschiedlicher Datentypen enthalten kann (z.B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Befehlszeigerregister). In mindestens einer Ausführungsform kann die Registerdatei 1106 Universalregister oder andere Register enthalten.
  • In mindestens einer Ausführungsform sind ein oder mehrere Prozessor(en) 1102 mit einem oder mehreren Schnittstellenbus(en) 1110 gekoppelt, um Kommunikationssignale wie Adress-, Daten- oder Steuersignale zwischen dem Prozessor 1102 und anderen Komponenten im System 1100 zu übertragen. In mindestens einer Ausführungsform kann der Schnittstellenbus 1110 ein Prozessorbus sein, wie z.B. eine Version eines Direct Media Interface (DMI)-Busses. In mindestens einer Ausführungsform ist der Schnittstellenbus 1110 nicht auf einen DMI-Bus beschränkt und kann einen oder mehrere Peripheral Component Interconnect-Busse (z.B. PCI, PCI Express), Speicherbusse oder andere Arten von Schnittstellenbussen umfassen. In mindestens einer Ausführungsform umfassen der/die Prozessor(en) 1102 einen integrierten Speicher-Controller 1116 und einen Plattform-Controller-Hub 1130. In mindestens einer Ausführungsform ermöglicht der Speicher-Controller 1116 die Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 1100, während der Plattform-Controller-Hub (PCH) 1130 Verbindungen zu E/A-Geräten über einen lokalen E/A-Bus bereitstellt.
  • In mindestens einer Ausführungsform kann eine Speichervorrichtung 1120 ein dynamischer Direktzugriffsspeicher (DRAM), ein statischer Direktzugriffsspeicher (SRAM), ein Flash-Speicher, ein Phasenwechsel-Speicher oder eine andere Speichervorrichtung mit geeigneter Leistung sein, um als Prozessspeicher zu dienen. In mindestens einer Ausführungsform kann die Speichervorrichtung 1120 als Systemspeicher für das System 1100 arbeiten, um Daten 1122 und Anweisungen 1121 zur Verwendung zu speichern, wenn ein oder mehrere Prozessoren 1102 eine Anwendung oder einen Prozess ausführen. In mindestens einer Ausführungsform koppelt der Speichercontroller 1116 auch mit einem optionalen externen Grafikprozessor 1112, der mit einem oder mehreren Grafikprozessoren 1108 in den Prozessoren 1102 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen. In mindestens einer Ausführungsform kann eine Anzeigevorrichtung 1111 mit Prozessor(en) 1102 verbunden sein. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 1111 eine oder mehrere interne Anzeigevorrichtungen, wie in einem mobilen elektronischen Gerät oder einem Laptop, oder eine externe Anzeigevorrichtung, die über eine Anzeigeschnittstelle (z.B. DisplayPort usw.) verbunden ist, umfassen. In mindestens einer Ausführungsform kann die Anzeigevorrichtung 1111 eine kopfmontiertes Anzeige (HMD, Head Mounted Display) umfassen, wie z.B. ein stereoskopisches Anzeigegerät zur Verwendung in Virtual-Reality (VR)-Anwendungen oder Augmented-Reality (AR)-Anwendungen.
  • In mindestens einer Ausführungsform ermöglicht der Plattform-Controller-Hub 1130 die Verbindung von Peripheriegeräten mit der Speichervorrichtung 1120 und dem Prozessor 1102 über einen Hochgeschwindigkeits-E/A-Bus. In mindestens einer Ausführungsform umfassen die E/A-Peripheriegeräte unter anderem einen Audiocontroller 1146, einen Netzwerkcontroller 1134, eine Firmware-Schnittstelle 1128, einen drahtlosen Transceiver 1126, Berührungssensoren 1125 und eine Datenspeichervorrichtung 1124 (z.B. ein Festplattenlaufwerk, einen Flash-Speicher usw.). In mindestens einer Ausführungsform kann die Datenspeichervorrichtung 1124 über eine Speicherschnittstelle (z.B. SATA) oder über einen Peripheriebus, wie z.B. einen Peripheral Component Interconnect Bus (z.B. PCI, PCI Express), verbunden sein. In mindestens einer Ausführungsform können die Berührungssensoren 1125 Touchscreen-Sensoren, Drucksensoren oder Fingerabdrucksensoren umfassen. In mindestens einer Ausführungsform kann der drahtlose Transceiver 1126 ein Wi-Fi-Transceiver, ein Bluetooth-Transceiver oder ein Mobilfunk-Transceiver sein, wie z.B. ein 3G-, 4G- oder Long Term Evolution (LTE)-Transceiver. In mindestens einer Ausführungsform ermöglicht die Firmware-Schnittstelle 1128 die Kommunikation mit der System-Firmware und kann z.B. eine einheitliche erweiterbare Firmware-Schnittstelle (UEFI, Unified Extensible Firmware Interface) sein. In mindestens einer Ausführungsform kann der Netzwerk-Controller 1134 eine Netzwerkverbindung mit einem kabelgebundenen Netzwerk ermöglichen. In mindestens einer Ausführungsform koppelt ein Hochleistungs-Netzwerk-Controller (nicht dargestellt) mit dem Schnittstellenbus 1110. In mindestens einer Ausführungsform ist der Audio-Controller 1146 ein Mehrkanal-High-Definition-Audio-Controller. In mindestens einer Ausführungsform enthält das System 1100 einen optionalen Legacy-E/A-Controller 1140 zur Kopplung von Legacy-Geräten (z.B. Personal System 2 (PS/2)) mit dem System 1100. In mindestens einer Ausführungsform kann der Plattform-Controller-Hub 1130 auch mit einem oder mehreren Universal Serial Bus (USB)-Controllern 1142 verbunden werden, die Eingabegeräte, wie z.B. Tastatur- und Mauskombinationen 1143, eine Kamera 1144 oder andere USB-Eingabegeräte verbinden.
  • In mindestens einer Ausführungsform kann eine Instanz des Speicher-Controllers 1116 und des Plattform-Controller-Hubs 1130 in einen diskreten externen Grafikprozessor, wie den externen Grafikprozessor 1112, integriert sein. In mindestens einer Ausführungsform können Plattform-Controller-Hub 1130 und/oder Speicher-Controller 1116 extern zu einem oder mehreren Prozessor(en) 1102 sein. Zum Beispiel kann das System 1100 in mindestens einer Ausführungsform einen externen Speicher-Controller 1116 und einen Plattform-Controller-Hub 1130 enthalten, der als Speicher-Controller-Hub und Peripherie-Controller-Hub innerhalb eines System-Chipsatzes konfiguriert sein kann, der mit dem/den Prozessor(en) 1102 in Verbindung steht.
  • Die Inferenzierungs- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenzierungs- und/oder Trainingslogik 715 sind hierin in Verbindung mit 7A und/oder 7B beschrieben. In mindestens einer Ausführungsform können Teile oder die Gesamtheit der Inferenzierungs- und/oder Trainingslogik 715 in den Grafikprozessor 1500 integriert sein. Beispielsweise können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenzierungstechniken eine oder mehrere ALUs verwenden, die in einem Grafikprozessor verkörpert sind. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenzierungs- und/oder Trainingsoperationen unter Verwendung einer anderen Logik als der in 7A oder 7B dargestellten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtsparameter in einem On-Chip- oder Off-Chip-Speicher und/oder Registern (dargestellt oder nicht dargestellt) gespeichert werden, die ALUs eines Grafikprozessors konfigurieren, um einen oder mehrere hierin beschriebene maschinelle Lernalgorithmen, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingsverfahren durchzuführen.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten ermittelt wurden, zu einer einzigen Darstellung zusammenzusetzen.
  • 12 ist ein Blockdiagramm eines Prozessors 1200 mit einem oder mehreren Prozessorkernen 1202A-1202N, einem integrierten Speichercontroller 1214 und einem integrierten Grafikprozessor 1208, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozessor 1200 zusätzliche Kerne bis zu und einschließlich des zusätzlichen Kerns 1202N enthalten, der durch gestrichelte, linierte Kästen dargestellt ist. In mindestens einer Ausführungsform enthält jeder der Prozessorkerne 1202A-1202N eine oder mehrere interne Cache-Einheiten 1204A-1204N. In mindestens einer Ausführungsform hat jeder Prozessorkern auch Zugriff auf eine oder mehrere gemeinsam genutzte Cache-Einheiten 1206.
  • In mindestens einer Ausführungsform repräsentieren die internen Cache-Einheiten 1204A-1204N und die gemeinsam genutzten Cache-Einheiten 1206 eine Cache-Speicherhierarchie innerhalb des Prozessors 1200. In mindestens einer Ausführungsform können die Cache-Speichereinheiten 1204A-1204N mindestens eine Ebene von Befehls- und Daten-Cache innerhalb jedes Prozessorkerns und eine oder mehrere Ebenen von gemeinsam genutztem Mid-Level-Cache, wie z.B. eine Ebene 2 (L2), Ebene 3 (L3), Ebene 4 (L4) oder andere Cache-Ebenen, umfassen, wobei die höchste Cache-Ebene vor dem externen Speicher als LLC klassifiziert wird. In mindestens einer Ausführungsform hält die Cache-Kohärenzlogik die Kohärenz zwischen verschiedenen Cache-Einheiten 1206 und 1204A-1204N aufrecht.
  • In mindestens einer Ausführungsform kann der Prozessor 1200 auch einen Satz von einer oder mehreren Bus-Controller-Einheiten 1216 und einen Systemagentenkern 1210 enthalten. In mindestens einer Ausführungsform verwalten die Bus-Controller-Einheiten 1216 eine Reihe von Peripherie-Bussen, wie z.B. einen oder mehrere PCI- oder PCI-Express-Busse. In mindestens einer Ausführungsform stellt der Systemagentenkern 1210 Verwaltungsfunktionen für verschiedene Prozessorkomponenten bereit. In mindestens einer Ausführungsform enthält der Systemagentenkern 1210 einen oder mehrere integrierte Speicher-Controller 1214, um den Zugriff auf verschiedene externe Speichervorrichtungen (nicht dargestellt) zu verwalten.
  • In mindestens einer Ausführungsform umfassen einer oder mehrere der Prozessorkerne 1202A-1202N Unterstützung für gleichzeitiges Multithreading. In mindestens einer Ausführungsform umfasst der Systemagentenkern 1210 Komponenten zum Koordinieren und Betreiben der Kerne 1202A-1202N während der Multithreading-Verarbeitung. In mindestens einer Ausführungsform kann der Systemagentenkern 1210 zusätzlich eine Leistungssteuerungseinheit (PCU) enthalten, die Logik und Komponenten zur Regelung eines oder mehrerer Leistungszustände der Prozessorkerne 1202A-1202N und des Grafikprozessors 1208 umfasst.
  • In mindestens einer Ausführungsform enthält der Prozessor 1200 zusätzlich den Grafikprozessor 1208 zur Ausführung von Grafikverarbeitungsoperationen. In mindestens einer Ausführungsform koppelt der Grafikprozessor 1208 mit gemeinsam genutzten Cache-Einheiten 1206 und dem Systemagentenkern 1210, einschließlich eines oder mehrerer integrierter Speicher-Controller 1214. In mindestens einer Ausführungsform enthält der Systemagentenkern 1210 auch eine Anzeige-Steuereinrichtung 1211, um die Ausgabe des Grafikprozessors an ein oder mehrere gekoppelte Anzeigen zu steuern. In mindestens einer Ausführungsform kann die Anzeige-Steuereinrichtung 1211 auch ein separates Modul sein, das über mindestens eine Zwischenverbindung mit dem Grafikprozessor 1208 gekoppelt ist, oder er kann in den Grafikprozessor 1208 integriert sein.
  • In mindestens einer Ausführungsform wird eine ringbasierte Interconnect- bzw. Verbindungseinheit 1212 verwendet, um interne Komponenten des Prozessors 1200 zu verbinden. In mindestens einer Ausführungsform kann auch eine alternative Verbindungseinheit verwendet werden, wie z.B. eine Punkt-zu-Punkt-Verbindung, eine geschaltete Verbindung oder andere Techniken. In mindestens einer Ausführungsform ist der Grafikprozessor 1208 über eine E/A-Verbindung 1213 mit der Ringverbindung 1212 gekoppelt.
  • In mindestens einer Ausführungsform repräsentiert die E/A-Verbindung 1213 mindestens eine von mehreren Arten von E/A-Verbindungen, einschließlich einer On-Package-E/A-Verbindung, die die Kommunikation zwischen verschiedenen Prozessorkomponenten und einem eingebetteten Hochleistungsspeichermodul 1218, wie z.B. einem eDRAM-Modul, ermöglicht. In mindestens einer Ausführungsform verwenden jeder der Prozessorkerne 1202A-1202N und der Grafikprozessor 1208 das eingebettete Speichermodul 1218 als gemeinsamen Last Level Cache.
  • In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N homogene Kerne, die eine gemeinsame Befehlssatzarchitektur ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N in Bezug auf die Befehlssatzarchitektur (ISA, Instruction Set Architecture) heterogen, wobei einer oder mehrere der Prozessorkerne 1202A-1202N einen gemeinsamen Befehlssatz ausführen, während ein oder mehrere andere Kerne der Prozessorkerne 1202A-1202N eine Teilmenge eines gemeinsamen Befehlssatzes oder einen anderen Befehlssatz ausführen. In mindestens einer Ausführungsform sind die Prozessorkerne 1202A-1202N in Bezug auf die Mikroarchitektur heterogen, wobei ein oder mehrere Kerne mit einer relativ höheren Leistungsaufnahme mit einem oder mehreren Kernen mit einer niedrigeren Leistungsaufnahme gekoppelt sind. In mindestens einer Ausführungsform kann der Prozessor 1200 auf einem oder mehreren Chips oder als integrierte SoC-Schaltung implementiert sein.
  • Die Inferenzierungs- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen durchzuführen, die einer oder mehreren Ausführungsformen zugeordnet sind. Einzelheiten zur Inferenzierungs- und/oder Trainingslogik 715 sind hierin in Verbindung mit 7A und/oder 7B beschrieben. In mindestens einer Ausführungsform können Teile oder die Gesamtheit der Inferenzierungs- und/oder Trainingslogik 715 in den Prozessor 1200 integriert sein. Zum Beispiel können in mindestens einer Ausführungsform die hierin beschriebenen Trainings- und/oder Inferenzierungstechniken eine oder mehrere ALUs verwenden, die dem Grafikprozessor 1512, den Grafikkerne(n) 1202A-1202N oder in anderen Komponenten in 12 enthalten sind. Darüber hinaus können in mindestens einer Ausführungsform die hierin beschriebenen Inferenzierungs- und/oder Trainingsoperationen unter Verwendung einer anderen Logik als der in 7A oder 7B dargestellten Logik durchgeführt werden. In mindestens einer Ausführungsform können Gewichtsparameter in einem On-Chip- oder Off-Chip-Speicher und/oder Registern (dargestellt oder nicht dargestellt) gespeichert werden, die ALUs des Grafikprozessors 1200 konfigurieren, um einen oder mehrere hierin beschriebene Algorithmen maschinellen Lernens, neuronale Netzwerkarchitekturen, Anwendungsfälle oder Trainingstechniken durchzuführen.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten ermittelt wurden, zu einer einzigen Darstellung zusammenzusetzen.
  • VIRTUALISIERTE RECHENPLATTFORM
  • 13 ist ein beispielhaftes Datenflussdiagramm für einen Prozess 1300 zur Erzeugung und Bereitstellung einer Bildverarbeitungs- und Inferenzierungs-Pipeline, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozess 1300 zur Verwendung mit Bildverarbeitungsgeräten, Verarbeitungsgeräten und/oder anderen Gerätetypen in einer oder mehreren Einrichtungen 1302 eingesetzt werden. Der Prozess 1300 kann in einem Trainingssystem 1304 und/oder einem Einsatzsystem 1306 ausgeführt werden. In mindestens einer Ausführungsform kann das Trainingssystem 1304 verwendet werden, um das Training, den Einsatz und die Implementierung von Modellen des maschinellen Lernens (z.B. neuronale Netzwerke, Objekterkennungsalgorithmen, Computer-Vision-Algorithmen usw.) zur Verwendung in dem Einsatzsystem 1306 durchzuführen. In mindestens einer Ausführungsform kann das Einsatzsystem 1306 so konfiguriert sein, dass es Verarbeitungs- und Rechenressourcen auf eine verteilte Computerumgebung verlagert, 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. Inferenzierung, Visualisierung, Rechenleistung, KI usw.) des Einsatzsystems 1306 während der Ausführung von Anwendungen nutzen oder aufrufen.
  • In mindestens einer Ausführungsform können einige der Anwendungen, die in erweiterten Verarbeitungs- und Inferenzierungs-Pipelines verwendet werden, Modelle maschinellen Lernens oder andere KI verwenden, um einen oder mehrere Verarbeitungsschritte durchzuführen. In mindestens einer Ausführungsform können Modelle maschinellen Lernens in der Einrichtung 1302 unter Verwendung von Daten 1308 (z.B. Bildgebungsdaten) trainiert werden, die in der Einrichtung 1302 erzeugt wurden (und auf einem oder mehreren PACS (Picture Archiving and Communication System)-Servern in der Einrichtung 1302 gespeichert sind), und können sie unter Verwendung von Bildgebungs- oder Sequenzierungsdaten 1308 aus einer oder mehreren anderen Einrichtung(en) oder einer Kombination davon trainiert werden. In mindestens einer Ausführungsform kann das Trainingssystem 1304 verwendet werden, um Anwendungen, Dienste und/oder andere Ressourcen zur Erzeugung funktionierender, einsatzfähiger Modelle maschinellen Lernens für das Einsatzsystem 1306 bereitzustellen.
  • In mindestens einer Ausführungsform kann eine Modellregistrierung 1324 durch einen Objektspeicher unterstützt werden, der Versionierung und Objektmetadaten unterstützen kann. In mindestens einer Ausführungsform kann auf den Objektspeicher z.B. über eine kompatible Anwendungsprogrammierschnittstelle (API) innerhalb einer Cloud-Plattform zugegriffen werden (z.B. eine Cloud 1426 in 14). In mindestens einer Ausführungsform können Modelle maschinellen Lernens innerhalb der Modellregistrierung 1324 von Entwicklern oder Partnern eines Systems, das mit einer API interagiert, hochgeladen, aufgelistet, geändert oder gelöscht werden. In mindestens einer Ausführungsform kann eine API Zugriff auf Verfahren bieten, die es Benutzern mit entsprechenden Anmeldeinformationen ermöglichen, Modelle mit Anwendungen zu verknüpfen, sodass Modelle als Teil der Ausführung von containerisierten Instanziierungen von Anwendungen ausgeführt werden können.
  • In mindestens einer Ausführungsform kann eine Trainings-Pipeline 1404 (14) ein Szenario umfassen, in dem die Einrichtung 1302 ihr eigenes Modell maschinellen Lernens trainiert oder ein bestehendes Modell maschinellen Lernens hat, das optimiert oder aktualisiert werden muss. In mindestens einer Ausführungsform können Bildgebungsdaten 1308, die von Bildgebungsvorrichtungen, Sequenzierungsvorrichtungen und/oder anderen Vorrichtungsarten erzeugt wurden, empfangen werden. In mindestens einer Ausführungsform kann nach dem Empfang von Bildgebungsdaten 1308 eine KI-gestützte Annotation 1310 verwendet werden, um bei der Erzeugung von Annotationen zu helfen, die den Bildgebungsdaten 1308 entsprechen, die als Grundwahrheitsdaten für ein Modell maschinellen Lernens zu verwenden sind. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 1310 ein oder mehrere Modelle maschinellen Lernens (z.B. faltende neuronale Netzwerke (CNNs)) enthalten, die trainiert werden können, um Annotationen zu erzeugen, die bestimmten Arten von Bilddaten 1308 (z.B. von bestimmten Geräten) und/oder bestimmten Arten von Anomalien in Bilddaten 1308 entsprechen. In mindestens einer Ausführungsform können die KI-unterstützten Annotationen 1310 dann direkt verwendet oder mit einem Annotationswerkzeug angepasst oder feinabgestimmt werden, um Grundwahrheitsdaten zu erzeugen. In mindestens einer Ausführungsform können KI-gestützte Annotationen 1310, gelabelte Klinikdaten 1312 oder eine Kombination davon als Grundwahrheitsdaten für das Training eines Modells maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform kann ein trainiertes Modell maschinellen Lernens als Ausgabemodell 1316 bezeichnet werden und von dem Einsatzsystem 1306, wie hierin beschrieben, verwendet werden.
  • In mindestens einer Ausführungsform kann die Trainings-Pipeline 3804 (38) ein Szenario umfassen, in dem die Einrichtung 1302 ein Modell maschinellen Lernens zur Verwendung bei der Durchführung einer oder mehrerer Verarbeitungsaufgaben für eine oder mehrere Anwendungen in dem Einsatzsystem 1306 benötigt, die Einrichtung 1302 aber möglicherweise derzeit nicht über ein solches Modell maschinellen Lernens verfügt (oder nicht über ein Modell, das für diese Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform kann ein vorhandenes Modell maschinellen Lernens aus der Modellregistrierung 1324 ausgewählt werden. In mindestens einer Ausführungsform kann die Modellregistrierung 1324 Modelle für maschinelles Lernen enthalten, die für die Durchführung einer Vielzahl von verschiedenen Inferenzierungs- bzw. Inferenzierungsaufgaben auf Bilddaten trainiert wurden. In mindestens einer Ausführungsform können die Modelle maschinellen Lernens in der Modellregistrierung 1324 auf Bildgebungsdaten von anderen Einrichtungen als der Einrichtung 1302 (z.B. Einrichtungen an einem anderen Standort) trainiert worden sein. In mindestens einer Ausführungsform können die Modelle maschinellen Lernens auf Bildgebungsdaten von einem Standort, zwei Standorten oder einer beliebigen Anzahl von Standorten trainiert worden sein. In mindestens einer Ausführungsform kann das Training, wenn es auf Bildgebungsdaten von einem bestimmten Standort trainiert wird, an diesem Standort stattfinden oder zumindest in einer Weise, die die Vertraulichkeit der Bildgebungsdaten schützt oder die Übertragung von Bildgebungsdaten außerhalb des Standorts beschränkt. In mindestens einer Ausführungsform kann ein Modell für maschinelles Lernen, sobald es an einem Ort trainiert - oder teilweise trainiert - wurde, zur Modellregistrierung 1324 hinzugefügt werden. In mindestens einer Ausführungsform kann ein Modell maschinellen Lernens dann an einer beliebigen Anzahl von anderen Einrichtungen neu trainiert oder aktualisiert werden, und kann ein neu trainiertes oder aktualisiertes Modell in der Modellregistrierung 1324 verfügbar gemacht werden. In mindestens einer Ausführungsform kann dann ein Modell maschinellen Lernens aus der Modellregistrierung 1324 ausgewählt - und als Ausgabemodell 1316 bezeichnet - und im Einsatzsystem 1306 verwendet werden, um eine oder mehrere Verarbeitungsaufgaben für eine oder mehrere Anwendungen eines Einsatzsystems durchzuführen.
  • In mindestens einer Ausführungsform kann die Trainings-Pipeline 1404 (14) in einem Szenario verwendet werden, in dem die Einrichtung 1302 ein Modell maschinellen Lernens zur Verwendung bei der Durchführung einer oder mehrerer Verarbeitungsaufgaben für eine oder mehrere Anwendungen im Einsatzsystem 1306 benötigt, aber die Einrichtung 1302 möglicherweise derzeit nicht über ein solches Modell maschinellen Lernens verfügt (oder möglicherweise nicht über ein Modell verfügt, das für solche Zwecke optimiert, effizient oder effektiv ist). In mindestens einer Ausführungsform könnte ein aus dem Modellregister 1324 ausgewähltes Modell maschinellen Lernens aufgrund von Unterschieden in den Populationen, genetischen Variationen, der Robustheit der zum Trainieren eines Modells maschinellen Lernens verwendeten Trainingsdaten, der Vielfalt der Anomalien der Trainingsdaten und/oder anderer Probleme mit den Trainingsdaten nicht für die in der Einrichtung 1302 erzeugten Bildgebungsdaten 1308 feinabgestimmt oder optimiert sein. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 1310 verwendet werden, um bei der Erzeugung von Annotationen zu helfen, die den Bildgebungsdaten 1308 entsprechen und als Grundwahrheitsdaten für das Neutrainieren oder Aktualisieren eines Modells maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform können gelabelte Daten 1312 als Grundwahrheitsdaten für das Training eines Modells maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform kann das Neutrainieren oder Aktualisieren eines Modells maschinellen Lernens als Modelltraining 1314 bezeichnet werden. In mindestens einer Ausführungsform kann das Modelltraining 1314 - z.B. KI-unterstützte Annotationen 1310, gelabelte Klinikdaten 1312 oder eine Kombination davon - als Grundwahrheitsdaten für das Neutrainieren oder Aktualisieren eines Modells maschinellen Lernens verwendet werden. In mindestens einer Ausführungsform kann ein trainiertes Modell maschinellen Lernens als Ausgabemodell 1316 bezeichnet und vom Einsatzsystem 1306, wie hierin beschrieben, verwendet werden.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 1306 Software 1318, Dienste 1320, Hardware 1322 und/oder andere Komponenten, Merkmale und Funktionen enthalten. In mindestens einer Ausführungsform kann das Einsatzsystem 1306 einen Software-„Stack“ enthalten, so dass die Software 1318 auf den Diensten 1320 aufgebaut sein kann und die Dienste 1320 zur Ausführung einiger oder aller Verarbeitungsaufgaben verwenden kann, und die Dienste 1320 und die Software 1318 auf der Hardware 1322 aufgebaut sein können und die Hardware 1322 zur Ausführung von Verarbeitungs-, Speicher- und/oder anderen Rechenaufgaben des Einsatzsystems 1306 verwenden. In mindestens einer Ausführungsform kann die Software 1318 eine beliebige Anzahl von verschiedenen Containern enthalten, wobei jeder Container eine Instanziierung einer Anwendung ausführen kann. In mindestens einer Ausführungsform kann jede Anwendung eine oder mehrere Verarbeitungsaufgaben in einer erweiterten Verarbeitungs- und Inferenzierungs-Pipeline durchführen (z.B. Inferenzierung, Objekterkennung, Merkmalserkennung, Segmentierung, Bildverbesserung, Kalibrierung usw.). In mindestens einer Ausführungsform kann eine erweiterte Verarbeitungs- und Inferenzierungs-Pipeline auf der Grundlage der Auswahl verschiedener Container definiert werden, die für die Verarbeitung von Bilddaten 1308 erwünscht oder erforderlich sind, zusätzlich zu Containern, die Bilddaten zur Verwendung durch jeden Container und/oder zur Verwendung durch die Einrichtung 1302 nach der Verarbeitung durch eine Pipeline empfangen und konfigurieren (z.B. zur Rückkonvertierung von Ausgaben in einen verwendbaren Datentyp. In mindestens einer Ausführungsform kann eine Kombination von Containern innerhalb der Software 1318 (die z.B. eine Pipeline bilden) als virtuelles Instrument bezeichnet sein (wie hierin ausführlicher beschrieben), und kann ein virtuelles Instrument Dienste 1320 und Hardware 1322 nutzen, um einige oder alle Verarbeitungsaufgaben von in Containern instanziierten Anwendungen auszuführen.
  • In mindestens einer Ausführungsform kann eine Datenverarbeitungs-Pipeline Eingangsdaten (z.B. Bildgebungsdaten 1308) in einem bestimmten Format als Reaktion auf eine Inferenzierungsanforderung (z.B. eine Anforderung von einem Benutzer des Einsatzsystems 1306 empfangen. In mindestens einer Ausführungsform können die Eingangsdaten ein oder mehrere Bilder, Videos und/oder andere Datendarstellungen repräsentieren, die von einer oder mehreren Bildgebungsvorrichtungen erzeugt werden. In mindestens einer Ausführungsform können die Daten als Teil der Datenverarbeitungs-Pipeline einer Vorverarbeitung unterzogen werden, um die Daten für die Verarbeitung durch eine oder mehrere Anwendungen vorzubereiten. In mindestens einer Ausführungsform kann eine Nachverarbeitung 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 um Ausgabedaten für die Übertragung und/oder Verwendung durch einen Benutzer vorzubereiten (z.B. als Antwort auf eine Inferenzierungsanforderung). In mindestens einer Ausführungsform können Inferenzierungsaufgaben von einem oder mehreren Modellen maschinellen Lernens durchgeführt werden, z.B. von trainierten oder eingesetzten neuronalen Netzwerken, die Ausgabemodelle 1316 des Trainingssystems 1304 enthalten können.
  • In mindestens einer Ausführungsform können Aufgaben der Datenverarbeitungs-Pipeline in einem oder mehreren Containern gekapselt werden, die jeweils eine diskrete, voll funktionsfähige Instanziierung einer Anwendung und einer virtualisierten Rechenumgebung repräsentieren, die in der Lage ist, Modelle für maschinelles Lernen zu referenzieren. In mindestens einer Ausführungsform können Container oder Anwendungen in einem privaten (z.B. zugangsbeschränkten) Bereich einer Container-Registrierung bzw. - Registry (hierin ausführlicher beschrieben) veröffentlicht werden, und können trainierte oder eingesetzte Modelle in einer Modell-Registrierung bzw. -Registry 1324 gespeichert und mit einer oder mehreren Anwendungen verknüpft werden. In mindestens einer Ausführungsform können Abbildungen bzw. Images von Anwendungen (z.B. Container-Images) in einer Container-Registry verfügbar sein und kann, sobald sie von einem Benutzer aus einer Container-Registry für den Einsatz in einer Pipeline ausgewählt wurden, ein Image 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 kann die Entwicklung, Veröffentlichung und/oder Speicherung unter Verwendung eines Softwareentwicklungskits (SDK, Software Development Kit) erfolgen, das mit einem System verbunden ist (z.B. um sicherzustellen, dass eine entwickelte Anwendung und/oder ein entwickelter Container mit einem System konform oder kompatibel ist). In mindestens einer Ausführungsform kann eine entwickelte Anwendung lokal (z.B. in einer ersten Einrichtung, auf Daten von einer ersten Einrichtung) mit einem SDK getestet werden, das mindestens einige der Dienste 1320 als System unterstützen kann (z.B. ein System 1400 von 14). In mindestens einer Ausführungsform kann ein Entwickler aufgrund der Tatsache, dass DICOM-Objekte zwischen einem und Hunderten von Bildern oder anderen Datentypen enthalten können, für die Verwaltung (z.B. das Festlegen von Konstrukten, den Einbau von Vorverarbeitungen in eine Anwendung usw.) der Extraktion und Aufbereitung der eingehenden DICOM-Daten verantwortlich sein. In mindestens einer Ausführungsform kann eine Anwendung, nachdem sie vom System 1400 validiert wurde (z.B. hinsichtlich Genauigkeit), in einem Container-Register zur Auswahl und/oder Implementierung durch einen Benutzer verfügbar sein, um eine oder mehrere Verarbeitungsaufgaben in Bezug auf Daten in einer Einrichtung (z.B. einer zweiten Einrichtung) eines Benutzers durchzuführen.
  • In mindestens einer Ausführungsform können Entwickler dann Anwendungen oder Container über ein Netzwerk für den Zugriff und die Verwendung durch Benutzer eines Systems (z.B. das System 1400 von 14) freigeben. In mindestens einer Ausführungsform können fertige und validierte Anwendungen oder Container in einer Container-Registry gespeichert werden, und können zugehörige Modelle maschinellen Lernens in der Modell-Registry 1324 gespeichert werden. In mindestens einer Ausführungsform kann eine anfragende Entität - die eine Inferenzierungs- oder Bildverarbeitungsanforderung bereitstellt - eine Container-Registry und/oder Modell-Registry 1324 nach einer Anwendung, einem Container, einem Datensatz, einem Modell maschinellen Lernens usw. durchsuchen, eine gewünschte Kombination von Elementen zur Aufnahme in die Datenverarbeitungs-Pipeline auswählen und eine Bildverarbeitungsanforderung senden. In mindestens einer Ausführungsform kann eine Anforderung Eingangsdaten (und in einigen Beispielen zugehörige Patientendaten) enthalten, die zur Durchführung einer Anforderung erforderlich sind, und/oder eine Auswahl von Anwendungen und/oder Modellen maschinellen Lernens enthalten, die bei der Verarbeitung einer Anforderung auszuführen sind. In mindestens einer Ausführungsform kann eine Anforderung dann an eine oder mehrere Komponenten des Einsatzsystems 1306 (z.B. eine Cloud) weitergeleitet werden, um die Verarbeitung der Datenverarbeitungs-Pipeline durchzuführen. In mindestens einer Ausführungsform kann die Verarbeitung durch das Einsatzsystem 1306 die Referenzierung ausgewählter Elemente (z.B. Anwendungen, Container, Modelle usw.) aus einer Container-Registry und/oder Modell-Registry 1324 umfassen. In mindestens einer Ausführungsform können die Ergebnisse, sobald sie von einer Pipeline erzeugt wurden, an einen Benutzer als Referenz zurückgegeben werden (z.B. zur Anzeige in einer Anzeigeanwendungssuite, die auf einer lokalen, lokalen Workstation oder einem Terminal ausgeführt wird).
  • In mindestens einer Ausführungsform können zur Unterstützung 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, Dienste für künstliche Intelligenz (KI), Visualisierungsdienste und/oder andere Diensttypen umfassen. In mindestens einer Ausführungsform können Dienste 1320 Funktionalität bereitstellen, die einer oder mehreren Anwendungen in der Software 1318 gemeinsam ist, so dass die Funktionalität zu einem Dienst abstrahiert werden kann, der von Anwendungen aufgerufen oder genutzt werden kann. In mindestens einer Ausführungsform kann die von den Diensten 1320 bereitgestellte Funktionalität dynamisch und effizienter ablaufen, während sie auch gut skaliert, indem sie Anwendungen die parallele Verarbeitung von Daten ermöglicht (z.B. unter Verwendung einer parallelen Rechenplattform 1430 (14)). In mindestens einer Ausführungsform muss nicht jede Anwendung, die dieselbe von einem Dienst 1320 angebotene Funktionalität nutzt, über eine entsprechende Instanz des Dienstes 1320 verfügen, sondern kann der Dienst 1320 von und zwischen verschiedenen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform können die Dienste einen Inferenzierungsserver oder eine Inferenzierungs-Engine umfassen, die zur Ausführung von Erkennungs- oder Segmentierungsaufgaben verwendet werden können, als nicht beschränkende Beispiele. In mindestens einer Ausführungsform kann ein Modelltrainingsdienst enthalten sein, der Funktionen zum Trainieren und/oder Neutrainieren von Modellen maschinellen Lernens bereitstellt. In mindestens einer Ausführungsform kann ferner ein Datenerweiterungsdienst enthalten sein, der GPU-beschleunigte Daten (z.B. DICOM, RIS, CIS, REST-konforme Daten, RPC, Rohdaten usw.) extrahieren, in der Größe verändern, skalieren und/oder andere Erweiterungen vornehmen kann. In mindestens einer Ausführungsform kann ein Visualisierungsdienst verwendet werden, der Bildwiedergabeeffekte hinzufügt - z.B. Raytracing, Rasterung, Entrauschung, Schärfung usw. - um zweidimensionalen (2D) und/oder dreidimensionalen (3D) Modellen mehr Realismus zu verleihen. In mindestens einer Ausführungsform können Dienste für virtuelle Instrumente enthalten sein, die Strahlformung, Segmentierung, Inferenzierung, Bildgebung und/oder Unterstützung für andere Anwendungen innerhalb von Pipelines virtueller Instrumente bieten.
  • In mindestens einer Ausführungsform, in der ein Dienst 1320 einen KI-Dienst (z.B. einen Inferenzierungsdienst) enthält, können ein oder mehrere Modelle maschinellen Lernens, die mit einer Anwendung zur Erkennung von Anomalien (z.B. Tumoren, Wachstumsanomalien, Narbenbildung usw.) verbunden sind, durch Aufrufen (z.B. als API-Aufruf) eines Inferenzierungsdienstes (z.B. eines Inferenzierungsservers) ausgeführt werden, um Modelle maschinellen Lernens oder deren Verarbeitung als Teil der Anwendungsausführung auszuführen. In mindestens einer Ausführungsform, in der eine andere Anwendung ein oder mehrere Modelle maschinellen Lernens für Segmentierungsaufgaben enthält, kann eine Anwendung einen Inferenzierungsdienst aufrufen, um Modelle maschinellen Lernens auszuführen, um eine oder mehrere der mit Segmentierungsaufgaben verbundenen Verarbeitungsoperationen durchzuführen. In mindestens einer Ausführungsform kann die Software 1318, die eine erweiterte Verarbeitungs- und Inferenzierungs-Pipeline implementiert, die eine Segmentierungsanwendung und eine Anomalieerkennungsanwendung enthält, rationalisiert werden, da jede Anwendung denselben Inferenzierungsdienst aufrufen kann, um eine oder mehrere Inferenzierungsaufgaben 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 NVIDIAs DGX), eine Cloud-Plattform oder eine Kombination davon umfassen. In mindestens einer Ausführungsform können verschiedene Arten von Hardware 1322 verwendet werden, um eine effiziente, zweckgebundene Unterstützung für Software 1318 und Dienste 1320 im Einsatzsystem 1306 bereitzustellen. In mindestens einer Ausführungsform kann die Verwendung von GPU-Verarbeitung für die Verarbeitung vor Ort (z.B. in der Einrichtung 1302), innerhalb eines AI/Deep-Learning-Systems, in einem Cloud-System und/oder in anderen Verarbeitungskomponenten des Einsatzsystems 1306 implementiert werden, um die Effizienz, Genauigkeit und Wirksamkeit der Bildverarbeitung und -erzeugung zu verbessern. In mindestens einer Ausführungsform können die Software 1318 und/oder die Dienste 1320 für die GPU-Verarbeitung im Hinblick auf Deep Learning, maschinelles Lernen und/oder High-Performance-Computing optimiert sein, als nicht beschränkende Beispiele. In mindestens einer Ausführungsform kann zumindest ein Teil der Rechenumgebung des Einsatzsystems 1306 und/oder des Trainingssystems 1304 in einem Rechenzentrum auf einem oder mehreren Supercomputern oder Hochleistungsrechnern mit GPU-optimierter Software (z.B. Hardware- und Softwarekombination des DGX-Systems von NVIDIA) ausgeführt werden. In mindestens einer Ausführungsform kann die Hardware 1322 eine beliebige Anzahl von GPUs umfassen, die zur parallelen Verarbeitung von Daten, wie hierin beschrieben, herangezogen werden können. In mindestens einer Ausführungsform kann die Cloud-Plattform außerdem eine GPU-Verarbeitung für die GPU-optimierte Ausführung von Deep-Learning-Aufgaben, maschinellen Lernaufgaben oder anderen Rechenaufgaben umfassen. In mindestens einer Ausführungsform kann die Cloud-Plattform (z.B. NVIDIAs NGC) unter Verwendung von KI/Deep-Learning-Supercomputern und/oder GPU-optimierter Software (z.B. wie auf NVIDIAs DGX-Systemen) als Hardware-Abstraktions- und Skalierungsplattform ausgeführt werden. In mindestens einer Ausführungsform kann die Cloud-Plattform ein Anwendungscontainer-Clustering-System oder ein 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 Erzeugen und Bereitstellen einer Bildverteilungs-Pipeline, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 1400 verwendet werden, um den Prozess 1300 von 13 und/oder andere Prozesse, einschließlich erweiterter Verarbeitungs- und Inferenzierungs-Pipelines, zu implementieren. In mindestens einer Ausführungsform kann das System 1400 das Trainingssystem 1304 und das Einsatzsystem 1306 umfassen. 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, implementiert sein.
  • In mindestens einer Ausführungsform kann das System 1400 (z.B. das Trainingssystem 1304 und/oder das Einsatzsystem 1306) in einer Cloud-Computing-Umgebung implementiert sein (z.B. unter Verwendung der Cloud 1426). In mindestens einer Ausführungsform kann das System 1400 lokal in Bezug auf eine Einrichtung des Gesundheitswesens oder als eine Kombination aus Cloud- und lokalen Rechenressourcen implementiert werden. In mindestens einer Ausführungsform kann der Zugriff auf APIs in der Cloud 1426 durch festgelegte Sicherheitsmaßnahmen oder -protokolle auf autorisierte Benutzer beschränkt werden. In mindestens einer Ausführungsform kann ein Sicherheitsprotokoll Web-Token enthalten, die von einem Authentifizierungsdienst (z.B. AuthN, AuthZ, Gluecon usw.) signiert und mit einer entsprechenden Autorisierung versehen sein können. In mindestens einer Ausführungsform können APIs virtueller Instrumente (wie hierin beschrieben) oder andere Instanzen des Systems 1400 auf eine Reihe öffentlicher IPs beschränkt werden, die für die Interaktion überprüft oder autorisiert wurden.
  • In mindestens einer Ausführungsform können verschiedene Komponenten des Systems 1400 unter Verwendung einer Vielzahl unterschiedlicher Netzwerktypen, einschließlich, aber nicht beschränkt auf lokale Netzwerke (LANs) und/oder WeitverkehrsNetzwerke (WANs), über verdrahtete und/oder drahtlose Kommunikationsprotokolle miteinander kommunizieren. In mindestens einer Ausführungsform kann die Kommunikation zwischen Einrichtungen und Komponenten des Systems 1400 (z.B. zum Senden von Ableitungsanforderungen, zum Empfangen von Ergebnissen von Ableitungsanforderungen usw.) über Datenbus(e), drahtlose Datenprotokolle (Wi-Fi), verdrahtete Datenprotokolle (z.B. Ethernet) usw. erfolgen.
  • In mindestens einer Ausführungsform kann das Trainingssystem 1304 Trainings-Pipelines 1404 ausführen, ähnlich denen, die hierin in Bezug auf 13 beschrieben sind. In mindestens einer Ausführungsform, in der ein oder mehrere Modelle für maschinelles Lernen in Einsatz-Pipelines 1410 durch das Einsatzsystem 1306 verwendet werden sollen, können die Trainings-Pipelines 1404 verwendet werden, um ein oder mehrere (z.B. vortrainierte) Modelle zu trainieren oder neu zu trainieren und/oder ein oder mehrere vortrainierte Modelle 1406 zu implementieren (z.B. ohne die Notwendigkeit eines erneuten Trainings oder einer erneuten Aktualisierung). In mindestens einer Ausführungsform können als Ergebnis der Trainings-Pipelines 1404 Ausgabemodell(e) 1316 erzeugt werden. In mindestens einer Ausführungsform können die Trainings-Pipelines 1404 eine beliebige Anzahl von Verarbeitungsschritten umfassen, wie z.B. die Konvertierung oder Anpassung von Bilddaten (oder anderen Eingabedaten). In mindestens einer Ausführungsform können für verschiedene Modelle maschinellen Lernens, die von dem Einsatzsystem 1306 verwendet werden, verschiedene Trainings-Pipelines 1404 verwendet werden. In mindestens einer Ausführungsform kann für ein erstes Modell maschinellen Lernens eine Trainings-Pipeline 1404 verwendet werden, die einem ersten Beispiel ähnlich ist, das in Bezug auf 13 beschrieben ist, für ein zweites Modell maschinellen Lernens kann eine Trainings-Pipeline 1404 verwendet werden, die einem zweiten Beispiel ähnlich ist, das in Bezug auf 13 beschrieben ist, und für ein drittes Modell maschinellen Lernens kann eine Trainings-Pipeline 1404 verwendet werden, die einem dritten Beispiel ähnlich ist, das in Bezug auf 13 beschrieben ist. In mindestens einer Ausführungsform kann eine beliebige Kombination von Aufgaben innerhalb des Trainingssystems 1304 verwendet werden, je nachdem, was für jedes jeweilige Modell maschinellen Lernens erforderlich ist. In mindestens einer Ausführungsform können eines oder mehrere der Modelle maschinellen Lernens bereits trainiert und einsatzbereit sein, so dass die Modelle maschinellen Lernens keiner Verarbeitung durch das Trainingssystem 1304 unterzogen zu werden brauchen und durch das Einsatzsystem 1306 implementiert werden können.
  • In mindestens einer Ausführungsform können das/die Ausgabemodell(e) 1316 und/oder das/die vortrainierte(n) Modell(e) 1406 alle Arten von Modellen maschinellen Lernens umfassen, je nach Implementierung oder Ausführungsform. In mindestens einer Ausführungsform und ohne darauf beschränkt zu sein, können die von dem System 1400 verwendeten Modelle maschinellen Lernens Modelle maschinellen Lernens unter Verwendung von linearer Regression, logistischer Regression, Entscheidungsbäumen, Unterstützungsvektormaschinen (SVM, Support Vector Machines), Naive Bayes, k-nächster Nachbar (Knn), K-Mittelwert-Clustering, Random Forest, Dimensionalitätsreduktionsalgorithmen, Gradient-Boosting-Algorithmen, neuronalen Netzwerken (z.B. Auto-Codierer, faltend, rekurrent, Perzeptrons, Long/Short Term Memory (LSTM), Hopfield, Boltzmann, Deep Belief, Deconvolutional, Generative Adversarial, Liquid State Machine usw.) und/oder andere Arten von Modellen maschinellen Lernens umfassen.
  • In mindestens einer Ausführungsform können die Trainings-Pipelines 1404 eine KI-gestützte Annotation umfassen, wie hierin in Bezug auf mindestens 15B ausführlicher beschrieben. In mindestens einer Ausführungsform können beschriftete Daten 1312 (z.B. herkömmliche Beschriftungen) durch eine beliebige Anzahl von Techniken erzeugt werden. In mindestens einer Ausführungsform können Beschriftungen oder andere Anmerkungen in einem Zeichenprogramm (z.B. einem Anmerkungsprogramm), einem CAD-Programm (Computer Aided Design), einem Beschriftungsprogramm oder einer anderen Art von Programm erzeugt werden, das zur Erzeugung von Anmerkungen oder Beschriftungen für die Grundwahrheit geeignet ist, und/oder sie können in einigen Beispielen von Hand gezeichnet werden. In mindestens einer Ausführungsform können die Grundwahrheitsdaten 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 erzeugen), von Menschen beschriftet werden (z.B. legt ein Beschriftungsexperte die Position der Beschriftungen fest) und/oder eine Kombination davon. In mindestens einer Ausführungsform kann es für jede Instanz von Bilddaten 1308 (oder anderen Datentypen, die von Modellen maschinellen Lernens verwendet werden) entsprechende Grundwahrheitsdaten geben, die vom Trainingssystem 1304 erzeugt werden. In mindestens einer Ausführungsform kann die KI-gestützte Annotation als Teil der Einsatzpipelines 1410 durchgeführt werden; entweder zusätzlich zu oder anstelle der KI-gestützten Annotation, die in den Trainings-Pipelines 1404 enthalten ist. In mindestens einer Ausführungsform kann das System 1400 eine mehrschichtige Plattform umfassen, die eine Softwareschicht (z.B. Software 1318) von Diagnoseanwendungen (oder anderen Anwendungstypen) enthalten kann, die eine oder mehrere medizinische Bildgebungs- und Diagnosefunktionen ausführen können. In mindestens einer Ausführungsform kann das System 1400 kommunikativ (z.B. über verschlüsselte Verbindungen) mit PACS-Servernetzwerken einer oder mehrerer Einrichtungen verbunden sein. In mindestens einer Ausführungsform kann das System 1400 so konfiguriert sein, dass es auf Daten von PACS-Servern zugreift und diese referenziert, um Operationen durchzuführen, wie z.B. das Trainieren von Modellen des maschinellen Lernens, den Einsatz von Modellen des maschinellen Lernens, die Bildverarbeitung, die Inferenzierung und/oder andere Operationen.
  • In mindestens einer Ausführungsform kann eine Softwareschicht als sichere, verschlüsselte und/oder authentifizierte API implementiert sein, über die Anwendungen oder Container aus einer externen Umgebung (z.B. Einrichtung 1302) aufgerufen werden können. In mindestens einer Ausführungsform können Anwendungen dann einen oder mehrere Dienste 1320 aufrufen oder ausführen, um Rechen-, KI- oder Visualisierungsaufgaben auszuführen, die den jeweiligen Anwendungen zugeordnet sind, und können die Software 1318 und/oder die Dienste 1320 die Hardware 1322 nutzen, um Verarbeitungsaufgaben auf effektive und effiziente Weise auszuführen.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 1306 Einsatz-Pipelines 1410 ausführen. In mindestens einer Ausführungsform können Einsatz-Pipelines 1410 eine beliebige Anzahl von Anwendungen enthalten, die sequenziell, nicht-sequenziell oder anderweitig auf Bildgebungsdaten (und/oder andere Datentypen) angewendet werden können, die von Bildgebungsvorrichtungen, Sequenzierungsvorrichtungen, Genomik-Vorrichtungen usw. erzeugt werden - einschließlich KI-unterstützter Annotation, wie oben beschrieben. In mindestens einer Ausführungsform, wie hierin beschrieben, kann eine Einsatz-Pipeline 1410 für ein einzelnes Gerät als ein virtuelles Instrument für eine Vorrichtung bezeichnet werden (z.B. ein virtuelles Ultraschallinstrument, ein virtuelles CT-Scan-Instrument, ein virtuelles Sequenzierungsinstrument usw.). In mindestens einer Ausführungsform kann es für eine einzelne Vorrichtung mehr als eine Einsatz-Pipeline 1410 geben, je nachdem, welche Informationen aus den von einer Vorrichtung erzeugten Daten gewünscht werden. In mindestens einer Ausführungsform kann es eine erste Einsatz-Pipeline 1410 geben, wenn die Erkennung von Anomalien von einer MRI-Maschine gewünscht wird, und eine zweite Einsatz-Pipeline 1410, wenn eine Bildverbesserung von der Ausgabe einer MRI-Maschine gewünscht wird.
  • In mindestens einer Ausführungsform kann eine Bilderzeugungsanwendung eine Verarbeitungsaufgabe enthalten, die die Verwendung eines Modells maschinellen Lernens beinhaltet. In mindestens einer Ausführungsform kann ein Benutzer sein eigenes Modell maschinellen Lernens verwenden oder ein Modell maschinellen Lernens aus der Modellregistrierung 1324 auswählen. In mindestens einer Ausführungsform kann ein Benutzer sein eigenes Modell maschinellen Lernens implementieren oder ein Modell maschinellen Lernens zur Aufnahme in eine Anwendung zur Durchführung einer Verarbeitungsaufgabe auswählen. In mindestens einer Ausführungsform können Anwendungen auswählbar und anpassbar sein, und durch die Definition von Konstrukten von Anwendungen wird die Bereitstellung und Implementierung von Anwendungen für einen bestimmten Benutzer als eine nahtlosere Benutzererfahrung dargestellt. In mindestens einer Ausführungsform können Entwicklungspipelines 1410 durch die Nutzung anderer Merkmale des Systems 1400 - wie beispielsweise die Dienste 1320 und die Hardware 1322 - noch benutzerfreundlicher sein, eine einfachere Integration ermöglichen und genauere, effizientere und zeitgerechtere Ergebnisse liefern.
  • In mindestens einer Ausführungsform kann das Einsatzsystem 1306 eine Benutzerschnittstelle 1414 (z.B. eine grafische Benutzerschnittstelle, eine Webschnittstelle usw.) enthalten, die verwendet werden kann, um Anwendungen zur Aufnahme in die Einsatz-Pipeline(s) 1410 auszuwählen, Anwendungen anzuordnen, Anwendungen oder Parameter oder Konstrukte davon zu modifizieren oder zu ändern, die Einsatz-Pipeline(s) 1410 während der Einrichtung und/oder Bereitstellung zu verwenden und mit ihr zu interagieren und/oder anderweitig mit dem Einsatzsystem 1306 zu interagieren. In mindestens einer Ausführungsform, die jedoch in Bezug auf das Trainingssystem 1304 nicht dargestellt ist, kann die Benutzerschnittstelle 1414 (oder eine andere Benutzerschnittstelle) für die Auswahl von Modellen zur Verwendung im Einsatzsystem 1306, für die Auswahl von Modellen für das Training oder das Neutrainieren im Trainingssystem 1304 und/oder für die sonstige Interaktion mit dem Trainingssystem 1304 verwendet werden.
  • In mindestens einer Ausführungsform kann der Pipeline-Verwalter 1412 zusätzlich zu einem Anwendungs-Orchestrierungssystem 1428 verwendet werden, um die Interaktion zwischen Anwendungen oder Containern der Einsatz-Pipeline(s) 1410 und Diensten 1320 und/oder Hardware 1322 zu verwalten. In mindestens einer Ausführungsform kann der Pipeline-Verwalter 1412 so konfiguriert sein, dass er die Interaktion zwischen Anwendungen und Anwendungen, zwischen Anwendungen und den Diensten 1320 und/oder zwischen Anwendungen oder Diensten und der Hardware 1322 erleichtert. In mindestens einer Ausführungsform ist dies, obwohl als in Software 1318 enthalten dargestellt, nicht als beschränkend beabsichtigt, und in einigen Beispielen (wie beispielsweise in 12cc dargestellt) kann der Pipeline-Verwalter 1412 in den Diensten 1320 enthalten sein. In mindestens einer Ausführungsform kann das Anwendungs-Orchestrierungssystem 1428 (z.B. Kubernetes, DOCKER usw.) ein Container-Orchestrierungssystem umfassen, das Anwendungen in Containern als logische Einheiten zur Koordination, Verwaltung, Skalierung und Bereitstellung gruppieren kann. In mindestens einer Ausführungsform kann durch die Zuordnung von Anwendungen aus der/den Einsatz-Pipeline(s) 1410 (z.B. eine Rekonstruktionsanwendung, eine Segmentierungsanwendung usw.) zu einzelnen Containern jede Anwendung in einer in sich geschlossenen Umgebung (z.B. auf Kernel-Ebene) ausgeführt werden, um die Geschwindigkeit und Effizienz zu erhöhen.
  • In mindestens einer Ausführungsform kann jede Anwendung und/oder jeder Container (oder ein Image davon) individuell entwickelt, modifiziert und bereitgestellt werden (z.B. kann ein erster Benutzer oder Entwickler eine erste Anwendung entwickeln, modifizieren und bereitstellen, und ein zweiter Benutzer oder Entwickler kann eine zweite Anwendung separat von einem ersten Benutzer oder Entwickler entwickeln, modifizieren und bereitstellen), was die Konzentration auf und die Aufmerksamkeit für eine Aufgabe einer einzelnen Anwendung und/oder eines einzelnen Containers ermöglichen kann, ohne durch Aufgaben einer anderen Anwendung oder eines anderen Containers behindert zu werden. In mindestens einer Ausführungsform kann die Kommunikation und Zusammenarbeit zwischen verschiedenen Containern oder Anwendungen durch den Pipeline-Verwalter 1412 und das Anwendungs-Orchestrierungssystem 1428 unterstützt werden. In mindestens einer Ausführungsform kann, solange eine erwartete Eingabe und/oder Ausgabe jedes Containers oder jeder Anwendung einem System bekannt ist (z.B. auf der Grundlage von Konstrukten von Anwendungen oder Containern), das Anwendungs-Orchestrierungssystem 1428 und/oder der Pipeline-Verwalter 1412 die Kommunikation unter und zwischen den Anwendungen oder Containern und die gemeinsame Nutzung von Ressourcen unter und zwischen ihnen erleichtern. In mindestens einer Ausführungsform können eine oder mehrere Anwendungen oder Container in der/den Einsatz-Pipeline(s) 1410 dieselben Dienste und Ressourcen gemeinsam nutzen, so dass das Anwendungs-Orchestrierungssystem 1428 die gemeinsame Nutzung von Diensten oder Ressourcen zwischen verschiedenen Anwendungen oder Containern orchestrieren, ausgleichen und festlegen kann. In mindestens einer Ausführungsform kann ein Planer verwendet werden, um die Ressourcenanforderungen von Anwendungen oder Containern, die aktuelle oder geplante Nutzung dieser Ressourcen und die Ressourcenverfügbarkeit zu verfolgen. In mindestens einer Ausführungsform kann ein Planer auf diese Weise verschiedenen Anwendungen Ressourcen zuweisen und Ressourcen zwischen und unter Anwendungen im Hinblick auf die Anforderungen und die Verfügbarkeit eines Systems verteilen. In einigen Beispielen kann ein Planer (und/oder eine andere Komponente des Anwendungs-Orchestrierungssystems 1428) die Ressourcenverfügbarkeit und -verteilung auf der Grundlage von Beschränkungen bestimmen, die einem System auferlegt werden (z.B. Benutzerbeschränkungen), wie z.B. Dienstgüte (QoS), Dringlichkeit des Bedarfs an Datenausgaben (z.B. um zu bestimmen, ob Echtzeitverarbeitung oder verzögerte Verarbeitung ausgeführt werden soll) usw.
  • In mindestens einer Ausführungsform können die von Anwendungen oder Containern im Einsatzsystem 1306 genutzten und gemeinsam genutzten Dienste 1320 Rechendienste 1416, KI-Dienste 1418, Visualisierungsdienste 1420 und/oder andere Diensttypen umfassen. In mindestens einer Ausführungsform können Anwendungen einen oder mehrere der Dienste 1320 aufrufen (z.B. ausführen), um Verarbeitungsvorgänge für eine Anwendung durchzuführen. In mindestens einer Ausführungsform können die Rechendienste 1416 von Anwendungen genutzt werden, um Supercomputing- oder andere High-Performance-Computing (HPC)-Aufgaben auszuführen. In mindestens einer Ausführungsform kann/können der/die Rechendienst(e) 1416 genutzt werden, um eine parallele Verarbeitung (z.B. unter Verwendung einer parallelen Rechenplattform 1430) zur Verarbeitung von Daten durch eine oder mehrere Anwendungen und/oder eine oder mehrere Aufgaben einer einzelnen Anwendung im Wesentlichen gleichzeitig durchzuführen. In mindestens einer Ausführungsform kann die parallele Datenverarbeitungsplattform 1430 (z.B. NVIDIAs CUDA) Allzweck-Computing auf GPUs (z.B. GPUs 1422) ermöglichen. In mindestens einer Ausführungsform kann eine Softwareschicht der parallelen Rechenplattform 1430 Zugriff auf virtuelle Befehlssätze und parallele Rechenelemente von GPUs für die Ausführung von Rechenkernen bieten. In mindestens einer Ausführungsform kann die parallele Rechenplattform 1430 Speicher enthalten, und in einigen Ausführungsformen kann ein Speicher zwischen mehreren Containern und/oder zwischen verschiedenen Verarbeitungsaufgaben innerhalb eines einzelnen Containers gemeinsam genutzt werden. In mindestens einer Ausführungsform können IPC (Inter-Process Communication)-Aufrufe für mehrere Container und/oder für mehrere Prozesse innerhalb eines Containers generiert werden, um dieselben Daten aus einem gemeinsam genutzten Speichersegment der parallelen Rechnerplattform 1430 zu verwenden (z.B. wenn mehrere verschiedene Stufen einer Anwendung oder mehrere Anwendungen dieselben Informationen verarbeiten). In mindestens einer Ausführungsform können dieselben Daten an derselben Stelle eines Speichers für eine beliebige Anzahl von Verarbeitungsaufgaben verwendet werden (z.B. zur selben Zeit, zu verschiedenen Zeiten usw.), anstatt eine Kopie der Daten zu erstellen und die Daten an verschiedene Stellen im Speicher zu verschieben (z.B. eine Lese-/Schreiboperation). In mindestens einer Ausführungsform können bei der Verwendung von Daten zur Erzeugung neuer Daten als Ergebnis der Verarbeitung diese Informationen über einen neuen Speicherort der Daten gespeichert und von verschiedenen Anwendungen gemeinsam genutzt werden. In mindestens einer Ausführungsform können der Speicherort von Daten und der Speicherort von aktualisierten oder geänderten Daten Teil einer Definition sein, wie eine Nutzlast innerhalb von Containern zu verstehen ist.
  • In mindestens einer Ausführungsform können die KI-Dienste 1418 genutzt werden, um Inferenzierungsdienste für die Ausführung von Modellen maschinellen Lernens durchzuführen, die mit Anwendungen verbunden sind (z.B. mit der Aufgabe, eine oder mehrere Verarbeitungsaufgaben einer Anwendung auszuführen). In mindestens einer Ausführungsform können die KI-Dienste 1418 das KI-System 1424 nutzen, um Modelle maschinellen Lernens (z.B. neuronale Netzwerke wie CNNs) für Segmentierung, Rekonstruktion, Objekterkennung, Merkmalserkennung, Klassifizierung und/oder andere Inferenzaufgaben auszuführen. In mindestens einer Ausführungsform können die Anwendungen der Einsatzpipeline(s) 1410 ein oder mehrere Ausgabemodelle 1316 aus dem Trainingssystem 1304 und/oder andere Modelle von Anwendungen verwenden, um Inferenzierungen aus Bilddaten zu ziehen. In mindestens einer Ausführungsform können zwei oder mehr Beispiele für die Inferenzierung unter Verwendung des Anwendungs-Orchestrierungssystems 1428 (z.B. ein Planer) verfügbar sein. In mindestens einer Ausführungsform kann eine erste Kategorie einen Pfad mit hoher Priorität/geringer Latenz umfassen, der höhere Service Level Agreements erreichen kann, z.B. für die Durchführung von Inferenzierungen bei dringenden Anfragen 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 umfassen, der für Anfragen verwendet werden kann, die nicht dringlich sind oder bei denen die Analyse zu einem späteren Zeitpunkt durchgeführt werden kann. In mindestens einer Ausführungsform kann das Anwendungs-Orchestrierungssystem 1428 Ressourcen (z.B. Dienste 1320 und/oder Hardware 1322) auf der Grundlage von Prioritätspfaden für verschiedene Inferenzaufgaben der KI-Dienste 1418 verteilen.
  • In mindestens einer Ausführungsform kann gemeinsam genutzter Speicher an die Kl-Dienste 1418 in dem System 1400 angebunden sein. In mindestens einer Ausführungsform kann der gemeinsam genutzte Speicher als Cache (oder ein anderer Speichergerätetyp) fungieren und zur Verarbeitung von Inferenzanforderungen von Anwendungen verwendet werden. In mindestens einer Ausführungsform kann eine Anfrage, wenn sie eingereicht wird, von einer Reihe von API-Instanzen des Einsatzsystems 1306 empfangen werden, und eine oder mehrere Instanzen können ausgewählt werden (z.B. für die beste Anpassung, für den Lastausgleich usw.), um eine Anfrage zu verarbeiten. In mindestens einer Ausführungsform kann zur Bearbeitung einer Anfrage eine Anfrage in eine Datenbank eingegeben werden, kann ein Modell maschinellen Lernens aus der Modellregistrierung 1324 gefunden werden, wenn es sich nicht bereits in einem Cache befindet, kann ein Validierungsschritt sicherstellen, dass ein geeignetes Modell maschinellen Lernens in einen Cache (z.B. einen gemeinsam genutzten Speicher) geladen wird, und/oder kann eine Kopie eines Modells in einem Cache gespeichert werden. In mindestens einer Ausführungsform kann ein Planer (z.B. der Pipeline-Verwalter 1412) verwendet werden, um eine Anwendung zu starten, auf die in einer Anforderung verwiesen wird, wenn eine Anwendung noch nicht läuft oder wenn nicht genügend Instanzen einer Anwendung vorhanden sind. In mindestens einer Ausführungsform kann ein Inferenzierungsserver gestartet werden, wenn noch kein Inferenzierungsserver zur Ausführung eines Modells gestartet ist. Pro Modell kann eine beliebige Anzahl von Inferenzierungsservern gestartet werden. In mindestens einer Ausführungsform können in einem Pull-Modell, in dem die Inferenzierungsserver geclustert sind, die Modelle zwischengespeichert werden, wenn ein Lastausgleich vorteilhaft ist. In mindestens einer Ausführungsform können Inferenzierungsserver statisch in entsprechende, verteilte Server geladen werden.
  • In mindestens einer Ausführungsform kann die Inferenzierung mit Hilfe eines Inferenzierungsservers durchgeführt werden, der in einem Container läuft. In mindestens einer Ausführungsform kann eine Instanz eines Inferenzierungsservers mit einem Modell (und optional einer Vielzahl von Versionen eines Modells) verbunden sein. In mindestens einer Ausführungsform kann eine neue Instanz eines Inferenzierungsservers geladen werden, wenn eine Anforderung zur Durchführung von Inferenzierungen für ein Modell nicht vorhanden ist. In mindestens einer Ausführungsform kann beim Starten eines Inferenzierungsservers ein Modell an einen Inferenzierungsserver übergeben werden, so dass ein und derselbe Container zur Bedienung verschiedener Modelle verwendet werden kann, solange der Inferenzierungsserver als eine andere Instanz läuft.
  • In mindestens einer Ausführungsform kann während der Anwendungsausführung eine Inferenzanforderung für eine bestimmte Anwendung empfangen werden, und kann ein Container (z.B. mit einer Instanz eines Inferenzierungsservers) geladen werden (falls noch nicht geschehen), und kann eine Startprozedur aufgerufen werden. In mindestens einer Ausführungsform kann die Vorverarbeitungslogik in einem Container eingehende Daten laden, dekodieren und/oder eine zusätzliche Vorverarbeitung 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 Inferenzierung vorbereitet sind, die Inferenzierung wie erforderlich an den Daten durchführen. In mindestens einer Ausführungsform kann dies einen einzigen Inferenzaufruf für ein Bild (z.B. ein Handröntgenbild) umfassen oder eine Inferenzierung für Hunderte von Bildern (z.B. ein Brust-CT) erfordern. In mindestens einer Ausführungsform kann eine Anwendung die Ergebnisse vor der Fertigstellung zusammenfassen, was ohne Beschränkung einen einzelnen Konfidenzwert, eine Segmentierung auf Pixelebene, eine Segmentierung auf Voxel-Ebene, die Erstellung einer Visualisierung oder die Erstellung von Text zur Zusammenfassung der Ergebnisse umfassen kann. In mindestens einer Ausführungsform können verschiedenen Modellen oder Anwendungen unterschiedliche Prioritäten zugewiesen werden. Beispielsweise können einige Modelle eine Echtzeitpriorität (TAT < 1 min) haben, während andere eine niedrigere Priorität haben können (z.B. TAT < 10 min). In mindestens einer Ausführungsform kann die Ausführungszeit des Modells von der anfragenden Institution oder Einrichtung aus gemessen werden und kann die Zeit für die Traversierung des Partnernetzwerks sowie die Ausführung in einem Inferenzierungsdienst umfassen.
  • In mindestens einer Ausführungsform kann die Übertragung von Anfragen zwischen den Diensten 1320 und den Ableitungsanwendungen hinter einem Softwareentwicklungskit (SDK) verborgen sein, und kann ein robuster Transport über eine Warteschlange erfolgen. In mindestens einer Ausführungsform wird eine Anfrage über eine API für eine individuelle Anwendung/Tenant-ID-Kombination in eine Warteschlange gestellt, und zieht ein SDK eine Anfrage aus einer Warteschlange und gibt eine Anfrage an eine Anwendung weiter. In mindestens einer Ausführungsform kann der Name einer Warteschlange in einer Umgebung angegeben werden, aus der ein SDK sie abruft. In mindestens einer Ausführungsform kann die asynchrone Kommunikation über eine Warteschlange nützlich sein, da sie es jeder Instanz einer Anwendung ermöglicht, die Arbeit aufzunehmen, sobald sie verfügbar ist. Die Ergebnisse können über eine Warteschlange zurückübertragen werden, um sicherzustellen, dass keine Daten verloren gehen. In mindestens einer Ausführungsform können Warteschlangen auch die Möglichkeit bieten, Arbeit zu segmentieren, da Arbeit mit höchster Priorität an eine Warteschlange gehen kann, an die die meisten Instanzen einer Anwendung angeschlossen sind, während Arbeit mit niedrigster Priorität an eine Warteschlange gehen kann, an die nur eine einzige Instanz angeschlossen ist, die Aufgaben in der empfangenen Reihenfolge bearbeitet. In mindestens einer Ausführungsform kann eine Anwendung auf einer GPU-beschleunigten Instanz laufen, die in der Cloud 1426 generiert wird, und kann ein Inferenzierungsdienst Inferenzierungen auf einer GPU durchführen.
  • In mindestens einer Ausführungsform können Visualisierungsdienste 1420 genutzt werden, um Visualisierungen für die Anzeige der Ausgaben von Anwendungen und/oder der Einsatz-Pipeline(s) 1410 zu erzeugen. In mindestens einer Ausführungsform können die GPUs 1422 von den Visualisierungsdiensten 1420 genutzt werden, um Visualisierungen zu erzeugen. In mindestens einer Ausführungsform können Rendering-Effekte, wie z.B. Raytracing, von den Visualisierungsdiensten 1420 implementiert werden, um Visualisierungen von höherer Qualität zu erzeugen. In mindestens einer Ausführungsform können die Visualisierungen ohne Beschränkung 2D-Bildwiedergaben, 3D-Volumenwiedergaben, 3D-Volumenrekonstruktionen, 2D-Tomographieschichten, Virtual-Reality-Anzeigen, Augmented-Reality-Anzeigen usw. umfassen. 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, Krankenschwestern, Radiologen usw.) zu erzeugen. In mindestens einer Ausführungsform können die Visualisierungsdienste 1420 einen internen Visualisierer, Kinematiken und/oder andere Rendering- oder Bildverarbeitungsfähigkeiten oder -funktionen umfassen (z.B. Raytracing, Rasterisierung, interne Optik usw.).
  • In mindestens einer Ausführungsform kann die Hardware 1322 GPUs 1422, das KI-System 1424, die Cloud 1426 und/oder jede andere Hardware umfassen, die für die Ausführung des Trainingssystems 1304 und/oder des Einsatzsystems 1306 verwendet wird. In mindestens einer Ausführungsform können die GPUs 1422 (z.B. NVIDIAs TESLA und/oder QUADRO GPUs) eine beliebige Anzahl von GPUs umfassen, die für die Ausführung von Verarbeitungsaufgaben der Rechendienste 1416, der KI-Dienste 1418, der Visualisierungsdienste 1420, anderer Dienste und/oder beliebiger Merkmale oder Funktionen der Software 1318 verwendet werden können. In Bezug auf die KI-Dienste 1418 können GPUs 1422 beispielsweise zur Vorverarbeitung von Bilddaten (oder anderen Datentypen, die von Modellen maschinellen Lernens verwendet werden), zur Nachverarbeitung von Ausgaben von Modellen maschinellen Lernens und/oder zur Durchführung von Inferenzierungen (z.B. zur Ausführung von Modellen maschinellen Lernens) verwendet werden. In mindestens einer Ausführungsform können die Cloud 1426, das AI-System 1424 und/oder andere Komponenten des Systems 1400 GPUs 1422 verwenden. In mindestens einer Ausführungsform kann die Cloud 1426 eine GPU-optimierte Plattform für Deep-Learning-Aufgaben enthalten. In mindestens einer Ausführungsform kann das KI-System 1424 GPUs verwenden, und kann die Cloud 1426 - oder zumindest ein Teil, der mit Deep Learning oder Inferencing beauftragt ist - unter Verwendung eines oder mehrerer KI-Systeme 1424 ausgeführt werden. Obwohl die Hardware 1322 als diskrete Komponenten dargestellt ist, ist dies nicht als Beschränkung zu verstehen, und alle Komponenten der Hardware 1322 können mit anderen Komponenten der Hardware 1322 kombiniert oder von ihnen genutzt werden.
  • In mindestens einer Ausführungsform kann das KI-System 1424 ein speziell entwickeltes Rechensystem (z.B. einen Supercomputer oder einen HPC) umfassen, das für Inferencing, Deep Learning, maschinelles Lernen und/oder andere Aufgaben der künstlichen Intelligenz konfiguriert ist. In mindestens einer Ausführungsform kann das KI-System 1424 (z.B. NVIDIAs DGX) GPU-optimierte Software (z.B. einen Software-Stack) enthalten, die unter Verwendung einer Vielzahl von GPUs 1422 zusätzlich zu CPUs, RAM, Speicher und/oder anderen Komponenten, Merkmalen oder Funktionen ausgeführt werden kann. In mindestens einer Ausführungsform können ein oder mehrere KI-Systeme 1424 in der Cloud 1426 (z.B. in einem Rechenzentrum) implementiert werden, um einige oder alle KI-basierten Verarbeitungsaufgaben des Systems 1400 auszuführen.
  • In mindestens einer Ausführungsform kann die Cloud 1426 eine GPU-beschleunigte Infrastruktur (z.B. NGC von NVIDIA) enthalten, die eine GPU-optimierte Plattform für die Ausführung von Verarbeitungsaufgaben des Systems 1400 bereitstellen kann. In mindestens einer Ausführungsform kann die Cloud 1426 ein oder mehrere KI-Systeme 1424 zur Ausführung einer oder mehrerer KI-basierter Aufgaben des Systems 1400 enthalten (z.B. als Hardware-Abstraktions- und Skalierungsplattform). In mindestens einer Ausführungsform kann die Cloud 1426 in das Anwendungs-Orchestrierungssystem 1428 integriert werden, das mehrere GPUs nutzt, um eine nahtlose Skalierung und einen Lastausgleich zwischen und unter den Anwendungen und Diensten 1320 zu ermöglichen. In mindestens einer Ausführungsform kann die Cloud 1426 damit beauftragt werden, mindestens einige der Dienste 1320 des Systems 1400 auszuführen, einschließlich der Rechendienste 1416, der KI-Dienste 1418 und/oder der Visualisierungsdienste 1420, wie hierin beschrieben. In mindestens einer Ausführungsform kann die Cloud 1426 kleine und große Batch-Inferenzierungen durchführen (z.B. die Ausführung von NVIDIAs TENSOR RT), eine beschleunigte parallele Rechen-API und Plattform 1430 (z.B. NVIDIAs CUDA) bereitstellen, ein Anwendungs-Orchestrierungssystem 1428 (z. B, KUBERNETES), eine Grafik-Rendering-API und -Plattform (z.B. für Raytracing, 2D-Grafik, 3D-Grafik und/oder andere Rendering-Techniken zur Erzeugung hochwertigerer Kinofilme) und/oder andere Funktionen für das System 1400 bereitstellen.
  • 15A zeigt ein Datenflussdiagramm für einen Prozess 1500 zum Trainieren, Neutrainieren oder Aktualisieren eines Modells maschinellen Lernens in Übereinstimmung mit mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann der Prozess 1500 unter Verwendung des Systems 1400 von 14 als nicht beschränkendes Beispiel 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 durch den Prozess 1500 erzeugt wurden, durch das Einsatzsystem 1306 für eine oder mehrere containerisierte Anwendungen in Einsatz-Pipelines 1410 ausgeführt werden.
  • In mindestens einer Ausführungsform kann das Modelltraining 1314 das Neutrainieren oder Aktualisieren eines Ausgangsmodells 1504 (z.B. eines vortrainierten Modells) unter Verwendung neuer Trainingsdaten (z.B. neuer Eingabedaten, wie des Kundendatensatzes 1506, und/oder neuer, mit den Eingabedaten verbundener Grundwahrheitsdaten) umfassen. In mindestens einer Ausführungsform kann zum erneuten Trainieren oder Aktualisieren des Ausgangsmodells 1504 die Ausgangs- oder Verlustschicht(en) des Ausgangsmodells 1504 zurückgesetzt oder gelöscht und/oder durch eine aktualisierte oder neue Ausgangs- oder Verlustschicht(en) ersetzt werden. In mindestens einer Ausführungsform kann das Ausgangsmodell 1504 bereits feinabgestimmte Parameter (z.B. Gewichte und/oder Verzerrungen) haben, die von einem früheren Training übrig geblieben sind, so dass das Training oder das Neutrainieren 1314 nicht so lange dauert oder so viel Verarbeitung erfordert wie das Training eines Modells von Grund auf. In mindestens einer Ausführungsform können während des Modelltrainings 1314 durch Zurücksetzen oder Ersetzen der Ausgangs- oder Verlustschicht(en) des Ausgangsmodells 1504 die Parameter aktualisiert und für einen neuen Datensatz neu abgestimmt werden, und zwar auf der Grundlage von Verlustberechnungen, die mit der Genauigkeit der Ausgangs- oder Verlustschicht(en) bei der Erstellung von Vorhersagen für einen neuen Kundendatensatz 1506 (z.B. Bilddaten 1308 von 13) verbunden sind.
  • In mindestens einer Ausführungsform können die vorab trainierten Modelle 1406 in einem Datenspeicher oder einem Register gespeichert werden (z.B. Modellregister 1324 von 13). In mindestens einer Ausführungsform können die vorab trainierten Modelle 1406 zumindest teilweise in einer oder mehreren anderen Einrichtungen als der Einrichtung, die den Prozess 1500 ausführt, trainiert worden sein. In mindestens einer Ausführungsform können zum Schutz der Privatsphäre und der Rechte von Patienten, Probanden oder Kunden verschiedener Einrichtungen vortrainierte Modelle 1406 vor Ort trainiert worden sein, wobei Kunden- oder Patientendaten verwendet wurden, die vor Ort generiert wurden. In mindestens einer Ausführungsform können vortrainierte Modelle 1406 unter Verwendung der Cloud 1426 und/oder anderer Hardware 1322 trainiert werden, aber vertrauliche, datenschutzrechtlich geschützte Patientendaten dürfen nicht an Komponenten der Cloud 1426 (oder anderer externer Hardware) übertragen werden, von diesen verwendet werden oder für diese zugänglich sein. In mindestens einer Ausführungsform, in der ein vortrainiertes Modell 1406 unter 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 auf Patienten- oder Kundendaten von einer anderen Einrichtung trainiert wird. In mindestens einer Ausführungsform, z.B. wenn Kunden- oder Patientendaten aus Datenschutzgründen freigegeben wurden (z.B. durch eine Verzichtserklärung, für experimentelle Zwecke usw.) oder wenn Kunden- oder Patientendaten in einem öffentlichen Datensatz enthalten sind, können Kunden- oder Patientendaten aus einer beliebigen Anzahl von Einrichtungen verwendet werden, um das vortrainierte Modell 1406 vor Ort und/oder außerhalb des Standorts zu trainieren, z.B. in einem Rechenzentrum oder einer anderen Cloud-Computing-Infrastruktur.
  • In mindestens einer Ausführungsform kann ein Benutzer bei der Auswahl von Anwendungen zur Verwendung in Einsatz-Pipelines 1410 auch Modelle für maschinelles Lernen auswählen, die für bestimmte Anwendungen verwendet werden sollen. In mindestens einer Ausführungsform kann ein Benutzer kein Modell zur Verwendung haben, so dass ein Benutzer ein vortrainiertes Modell 1406 zur Verwendung mit einer Anwendung auswählen kann. In mindestens einer Ausführungsform kann das vortrainierte Modell 1406 nicht dafür optimiert sein, genaue Ergebnisse für den Kundendatensatz 1506 einer Einrichtung eines Benutzers zu erzeugen (z.B. auf der Grundlage der Patientenvielfalt, der demografischen Merkmale, der Arten der verwendeten medizinischen Bildgebungsgeräte usw.). In mindestens einer Ausführungsform kann das vortrainierte Modell 1406 vor der Bereitstellung in der Einsatz-Pipeline 1410 zur Verwendung mit einer oder mehreren Anwendungen aktualisiert, neu trainiert und/oder für die Verwendung in einer entsprechenden Einrichtung feinabgestimmt werden.
  • In mindestens einer Ausführungsform kann ein Benutzer ein vortrainiertes Modell 1406 auswählen, das aktualisiert, neu trainiert und/oder feinabgestimmt werden soll, und das vortrainierte Modell 1406 kann als Ausgangsmodell 1504 für das Trainingssystem 1304 innerhalb des Prozesses 1500 bezeichnet werden. In mindestens einer Ausführungsform kann der Kundendatensatz 1506 (z.B. Bildgebungsdaten, Genomikdaten, Sequenzierungsdaten oder andere Datentypen, die von Geräten in einer Einrichtung erzeugt werden) verwendet werden, um das Modelltraining 1314 (das ohne Beschränkung Transferlernen umfassen kann) auf dem Ausgangsmodell 1504 durchzuführen, um ein verfeinertes Modell 1512 zu erzeugen. In mindestens einer Ausführungsform können die dem Kundendatensatz 1506 entsprechenden Grundwahrheitsdaten vom Trainingssystem 1304 erzeugt werden. In mindestens einer Ausführungsform können die Grundwahrheitsdaten zumindest teilweise von Klinikern, Wissenschaftlern, Ärzten, Praktikern in einer Einrichtung generiert werden (z.B. als markierte Klinikdaten 1312 von 13).
  • In mindestens einer Ausführungsform kann die KI-gestützte Annotation 1310 in einigen Beispielen verwendet werden, um Ground-Truth-Daten zu erzeugen. In mindestens einer Ausführungsform kann die KI-gestützte Annotation 1310 (z.B. unter Verwendung eines SDKfür die KI-gestützte Annotation) Modell maschinellen Lernens (z.B. neuronale Netzwerke) nutzen, um vorgeschlagene oder vorhergesagte Grundwahrheitsdaten für einen Kundendatensatz zu erzeugen. In mindestens einer Ausführungsform kann der Benutzer 1510 Annotationswerkzeuge innerhalb einer Benutzeroberfläche (einer grafischen Benutzeroberfläche (GUI)) auf der Rechen- bzw. Computervorrichtung 1508 verwenden.
  • In mindestens einer Ausführungsform kann der Benutzer 1510 über das Computergerät 1508 mit einer grafischen Benutzeroberfläche interagieren, um (Auto-)Annotationen zu bearbeiten oder fein abzustimmen. In mindestens einer Ausführungsform kann eine Polygonbearbeitungsfunktion verwendet werden, um Eckpunkte eines Polygons an genauere oder feinere Positionen zu verschieben.
  • In mindestens einer Ausführungsform können, sobald dem Kundendatensatz 1506 Grundwahrheitsdaten zugeordnet sind, Grundwahrheitsdaten (z.B. aus KI-gestützter Annotation, manueller Beschriftung usw.) während des Modelltrainings 1314 verwendet werden, um ein verfeinertes Modell 1512 zu erstellen. In mindestens einer Ausführungsform kann der Kundendatensatz 1506 beliebig oft auf das Ausgangsmodell 1504 angewendet werden, und die Grundwahrheitsdaten können zur Aktualisierung der Parameter des Ausgangsmodells 1504 verwendet werden, bis ein akzeptables Genauigkeitsniveau für das verfeinerte Modell 1512 erreicht ist. In mindestens einer Ausführungsform kann das verfeinerte Modell 1512, sobald es generiert ist, in einer oder mehreren Einsatzpipelines 1410 in einer Einrichtung eingesetzt werden, um eine oder mehrere Verarbeitungsaufgaben in Bezug auf medizinische Bildgebungsdaten durchzuführen.
  • In mindestens einer Ausführungsform kann das verfeinerte Modell 1512 zu den bereits trainierten Modellen 1406 in der Modellregistrierung 1324 hochgeladen werden, um von einer anderen Einrichtung ausgewählt zu werden. In mindestens einer Ausführungsform kann dieser Prozess in einer beliebigen Anzahl von Einrichtungen abgeschlossen werden, so dass das verfeinerte Modell 1512 beliebig oft an neuen Datensätzen weiter verfeinert werden kann, um ein universelleres Modell zu erzeugen.
  • 15B ist eine beispielhafte Darstellung einer Client-Server-Architektur 1532 zur Verbesserung von Anmerkungswerkzeugen mit vorab trainierten Anmerkungsmodellen gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform können KI-gestützte Annotationswerkzeuge 1536 auf der Grundlage einer Client-Server-Architektur 1532 instanziiert werden. In mindestens einer Ausführungsform können die Annotationswerkzeuge 1536 in bildgebenden Anwendungen Radiologen beispielsweise bei der Identifizierung von Organen und Anomalien unterstützen. In mindestens einer Ausführungsform können Bildgebungsanwendungen Softwaretools enthalten, die dem Benutzer 1510 helfen, als nicht beschränkendes Beispiel einige extreme Punkte auf einem bestimmten Organ von Interesse in Rohbildern 1534 (z.B. in einem 3D-MRI- oder CT-Scan) zu identifizieren und automatisch kommentierte Ergebnisse für alle 2D-Schichten eines bestimmten Organs zu erhalten. In mindestens einer Ausführungsform können die Ergebnisse in einem Datenspeicher als Trainingsdaten 1538 gespeichert und als (z.B. und ohne Beschränkung darauf) Grundwahrheitsdaten für das Training verwendet werden. In mindestens einer Ausführungsform kann ein Deep-Learning-Modell, wenn die Datenverarbeitungsvorrichtung 1508 Extrempunkte für die KI-unterstützte Annotation 1310 sendet, diese Daten als Eingabe empfangen und Inferenzierungsergebnisse eines segmentierten Organs oder einer Abnormalität zurückgeben. In mindestens einer Ausführungsform können voreingestellte Annotationswerkzeuge, wie das Klunterstützte Annotationswerkzeug 1536B in 15B, durch API-Aufrufe (z.B. API-Aufruf 1544) an einen Server, wie einen Annotationsassistenzserver 1540, der einen Satz vortrainierter Modelle 1542 enthalten kann, die z.B. in einem Annotationsmodellregister gespeichert sind, verbessert werden. In mindestens einer Ausführungsform kann eine Annotationsmodellregistrierung vorab trainierte Modelle 1542 (z.B. Modelle für maschinelles Lernen, wie Deep-Learning-Modelle) speichern, die vorab trainiert wurden, um eine KI-gestützte Annotation für ein bestimmtes Organ oder eine Anomalie durchzuführen. Diese Modelle können mit Hilfe von Trainings-Pipelines 1404 weiter aktualisiert werden. In mindestens einer Ausführungsform können die vorinstallierten Annotationswerkzeuge im Laufe der Zeit verbessert werden, wenn neue beschriftete Klinikdaten 1312 hinzugefügt werden.
  • Solche Komponenten können verwendet werden, um konstituierende Bilder unter Verwendung von Parametern, die aus einem oder mehreren Qualitätsbewertungswerten ermittelt wurden, 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(s) der Komponenten, Merkmale und Systeme des Fahrzeugs 1600 in 16A als über einen Bus 1602 verbunden dargestellt. In mindestens einer Ausführungsform kann der Bus 1602, ohne darauf beschränkt zu sein, eine CAN-Datenschnittstelle (hierin alternativ als „CAN-Bus“ bezeichnet) umfassen. 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 z.B. Betätigung von Bremsen, Beschleunigung, Bremsen, Lenkung, Scheibenwischern usw. In mindestens einer Ausführungsform kann der Bus 1602 so konfiguriert sein, dass er Dutzende oder sogar Hunderte von Knoten hat, von denen jeder seine eigene eindeutige Kennung (z.B. eine CAN-ID) hat. In mindestens einer Ausführungsform kann der Bus 1602 ausgelesen werden, um den Lenkradwinkel, die Fahrgeschwindigkeit, die Motorumdrehungen pro Minute („RPMs“), die Tastenpositionen und/oder andere Fahrzeugstatusanzeigen zu ermitteln. In mindestens einer Ausführungsform kann der Bus 1602 ein CAN-Bus sein, der ASIL B-konform ist.
  • In mindestens einer Ausführungsform können zusätzlich zu oder alternativ zu CAN auch FlexRay und/oder Ethernet verwendet werden. In mindestens einer Ausführungsform kann es eine beliebige Anzahl von Bussen 1602 geben, die, ohne darauf beschränkt zu sein, 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 umfassen können. In mindestens einer Ausführungsform können zwei oder mehr Busse 1602 verwendet werden, um unterschiedliche Funktionen auszuführen, und/oder sie können für Redundanz verwendet werden. Zum Beispiel kann ein erster Bus 1602 für die Kollisionsvermeidungsfunktionalität und ein zweiter Bus 1602 für die Betätigungssteuerung verwendet werden. In mindestens einer Ausführungsform kann jeder Bus 1602 mit beliebigen Komponenten des Fahrzeugs 1600 kommunizieren, und können zwei oder mehr Busse 1602 mit gleichen Komponenten kommunizieren. In mindestens einer Ausführungsform kann jede beliebige Anzahl von System(en) auf Chip(s) („SoC(s)“) 1604, jede von Steuereinrichtung(en) 1636 und/oder jeder Computer in dem Fahrzeug Zugriff auf dieselben Eingangsdaten (z.B. Eingaben von Sensoren des Fahrzeugs 1600) haben und mit einem gemeinsamen Bus, wie beispielsweise dem CAN-Bus, verbunden sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ein oder mehrere Steuergerät(e) 1636 enthalten, wie sie hierin in Bezug auf 16A beschrieben sind. Die Steuereinrichtung(en) 1636 können für eine Vielzahl von Funktionen verwendet werden.
  • In mindestens einer Ausführungsform kann (können) das (die) Steuergerät(e) 1636 mit verschiedenen anderen Komponenten und Systemen des Fahrzeugs 1600 gekoppelt sein, und kann (können) für die Steuerung des Fahrzeugs 1600, die künstliche Intelligenz des Fahrzeugs 1600, das 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 enthalten. Jeder der SoCs 1604 kann, ohne darauf beschränkt zu sein, zentrale Verarbeitungseinheiten („CPU(s)“) 1606, Grafikverarbeitungseinheiten („GPU(s)“) 1608, Prozessor(en) 1610, Cache(s) 1612, einen oder mehrere Beschleuniger 1614, einen oder mehrere Datenspeicher 1616 und/oder andere nicht dargestellte Komponenten und Merkmale enthalten. In mindestens einer Ausführungsform können SoC(s) 1604 zur Steuerung des Fahrzeugs 1600 in einer Vielzahl von Plattformen und Systemen verwendet werden. Zum Beispiel können in mindestens einer Ausführungsform SoC(s) 1604 in einem System (z.B. System des Fahrzeugs 1600) mit einer High-Definition („HD“)-Karte 1622 kombiniert sein, die Kartenauffrischungen und/oder -aktualisierungen über die Netzwerkschnittstelle 1624 von einem oder mehreren Servern (in 16A nicht dargestellt) erhalten kann.
  • In mindestens einer Ausführungsform kann (können) die CPU(s) 1606 einen CPU-Cluster oder CPU-Komplex (hierin alternativ als „CCPLEX“ bezeichnet) umfassen. In mindestens einer Ausführungsform, kann/können die CPU(s) 1606 mehrere Kerne und/oder Level-2-Caches („L2“) enthalten. In mindestens einer Ausführungsform kann (können) die CPU(s) 1606 beispielsweise acht Kerne in einer kohärenten Multiprozessorkonfiguration umfassen. In mindestens einer Ausführungsform kann (können) die CPU(s) 1606 vier Dual-Kern-Cluster umfassen, wobei jeder Cluster über einen dedizierten L2-Cache verfügt (z.B. einen 2 MB L2-Cache). In mindestens einer Ausführungsform kann (können) die CPU(s) 1606 (z.B. CCPLEX) so konfiguriert sein, dass sie den gleichzeitigen Clusterbetrieb unterstützen, so dass eine beliebige Kombination von Clustern der CPU(s) 1606 zu einem beliebigen bestimmten Zeitpunkt aktiv sein kann.
  • In mindestens einer Ausführungsform können eine oder mehrere der CPU(s) 1606 Energieverwaltungsfunktionen implementieren, die, ohne darauf beschränkt zu sein, eine oder mehrere der folgenden Funktionen umfassen: einzelne Hardwareblöcke können im Leerlauf automatisch getaktet werden, um dynamische Energie zu sparen; jeder Kerntakt kann getaktet werden, wenn der Kern aufgrund der Ausführung von Wait for Interrupt („WFI“)/Wait for Event („WFE“)-Anweisungen nicht aktiv Anweisungen ausführt; jeder Kern kann unabhängig energiegesteuert werden; jeder Kerncluster kann unabhängig getaktet werden, wenn alle Kerne getaktet oder energiegesteuert werden; und/oder jeder Kerncluster kann unabhängig energiegesteuert werden, wenn alle Kerne energiegesteuert werden. In mindestens einer Ausführungsform kann/können die CPU(s) 1606 außerdem einen erweiterten Algorithmus für die Verwaltung von Energiezuständen implementieren, bei dem die zulässigen Energiezustände und die erwarteten Aufwachzeiten festgelegt werden und die Hardware/der Mikrocode den besten Energiezustand bestimmt, der für den Kern, den Cluster und CCPLEX einzunehmen ist. In mindestens einer Ausführungsform können Prozessorkerne vereinfachte Energiezustands-Eintrittssequenzen in Software unterstützen, wobei die Arbeit an Mikrocode ausgelagert wird.
  • In mindestens einer Ausführungsform kann (können) die GPU(s) 1608 eine integrierte GPU enthalten (hier alternativ als „iGPU“ bezeichnet). In mindestens einer Ausführungsform kann (können) die GPU(s) 1608 programmierbar sein und für parallele Arbeitslasten effizient sein. In mindestens einer Ausführungsform kann (können) die GPU(s) 1608 einen erweiterten Tensor-Befehlssatz verwenden. In mindestens einer Ausführungsform kann (können) GPU(s) 1608 einen oder mehrere Streaming-Mikroprozessoren enthalten, wobei jeder Streaming-Mikroprozessor einen Cache der Ebene eins („L1“) enthalten kann (z. B. einen L1-Cache mit einer Speicherkapazität von mindestens 96 KB), und sich zwei oder mehr Streaming-Mikroprozessoren einen L2-Cache (z. B. einen L2-Cache mit einer Speicherkapazität von 512 KB) teilen können. In mindestens einer Ausführungsform kann (können) die GPU(s) 1608 mindestens acht Streaming-Mikroprozessoren enthalten. In mindestens einer Ausführungsform kann (können) die GPU(s) 1608 eine oder mehrere Anwendungsprogrammierschnittstellen (API(s)) für Berechnungen verwenden. In mindestens einer Ausführungsform kann (können) die GPU(s) 1608 eine oder mehrere parallele Rechenplattformen und/oder Programmiermodelle (z. B. CUDA von NVIDIA) verwenden.
  • In mindestens einer Ausführungsform können eine oder mehrere der GPU(s) 1608 für beste Leistung in Automobil- und eingebetteten Anwendungsfällen energieoptimiert sein. In einer Ausführungsform könnte(n) die GPU(s) 1608 beispielsweise auf einem Fin-Feldeffekttransistor („FinFET“)-Schaltkreis gefertigt sein. In mindestens einer Ausführungsform kann jeder Streaming-Mikroprozessor eine Anzahl von Gemischtgenauigkeits- bzw. Mixed-Precision-Verarbeitungskernen enthalten, die in mehrere Blöcke unterteilt sind. Beispielsweise, und ohne darauf beschränkt zu sein, 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 gemischt-präzise NVIDIA TENSOR Kerne für Deep-Learning-Matrix-Arithmetik, ein Level-Null („L0“) Anweisungscache, ein Warp-Planer, eine Versendeeinheit und/oder eine 64 KB große Registerdatei zugewiesen sein. In mindestens einer Ausführungsform können Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkomma-Datenpfade enthalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnungen und Adressierungsberechnungen zu ermöglichen. In mindestens einer Ausführungsform können Streaming-Mikroprozessoren unabhängige Thread-Planungsfunktionen enthalten, um eine feinkörnigere Synchronisation und Kooperation zwischen parallelen Threads zu ermöglichen. In mindestens einer Ausführungsform können Streaming-Mikroprozessoren einen kombinierten L1-Datencache und eine Einheit für gemeinsam genutzten Speicher enthalten, um die Leistung zu verbessern und gleichzeitig die Programmierung zu vereinfachen.
  • In mindestens einer Ausführungsform können eine oder mehrere der GPU(s) 1608 einen Speicher mit hoher Bandbreite („HBM“) und/oder ein 16-GB-HBM2-Speicher-Subsystem enthalten, um in einigen Beispielen eine Spitzen-Speicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In mindestens einer Ausführungsform kann zusätzlich oder alternativ zu dem HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher („SGRAM“) verwendet werden, z.B. ein synchroner Grafik-Direktzugriffsspeicher mit doppelter Datenrate vom Typ 5 („GDDR5“).
  • In mindestens einer Ausführungsform kann (können) GPU(s) 1608 eine Unified-Memory-Technologie bzw. Technologie für vereinigten Speicher enthalten. In mindestens einer Ausführungsform kann die Unterstützung von Adressübersetzungsdiensten („ATS“) verwendet werden, damit die GPU(s) 1608 direkt auf Seitentabellen der CPU(s) 1606 zugreifen kann. In mindestens einer Ausführungsform kann, wenn eine Speicherverwaltungseinheit („MMU“) der GPU(s) 1608 einen Fehler feststellt, eine Adressübersetzungsanforderung an die CPU(s) 1606 gesendet werden. Als Antwort darauf kann (können) in mindestens einer Ausführungsform CPU(s) 1606 in ihren Seitentabellen nach einer virtuell-physischen Zuordnung für die Adresse suchen und die Übersetzung zurück an die GPU(s) 1608 übertragen. In mindestens einer Ausführungsform kann die Unified-Memory-Technologie einen einzigen vereinheitlichten 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 wird.
  • In mindestens einer Ausführungsform kann (können) die GPU(s) 1608 eine beliebige Anzahl von Zugriffszählern enthalten, die die Häufigkeit des Zugriffs der GPU(s) 1608 auf den Speicher anderer Prozessoren verfolgen können. In mindestens einer Ausführungsform können Zugriffszähler dazu beitragen, dass Speicherseiten in den physischen Speicher eines Prozessors verschoben werden, der am häufigsten auf Seiten zugreift, wodurch die Effizienz für von Prozessoren gemeinsam genutzte Speicherbereiche verbessert wird.
  • In mindestens einer Ausführungsform können ein oder mehrere SoC(s) 1604 eine beliebige Anzahl von Cache(s) 1612 enthalten, einschließlich der hierin beschriebenen. In mindestens einer Ausführungsform könnte(n) der/die Cache(s) 1612 beispielsweise einen Level-3-Cache („L3“) umfassen, der sowohl für die CPU(s) 1606 als auch für die GPU(s) 1608 verfügbar ist (z.B. der sowohl mit der/den CPU(s) 1606 als auch mit der/den GPU(s) 1608 verbunden ist). In mindestens einer Ausführungsform kann (können) der (die) Cache(s) 1612 einen Zurückschreibe-bzw. Write-Back-Cache umfassen, der die Zustände von Leitungen verfolgen kann, z.B. durch Verwendung eines Cache-Kohärenzprotokolls (z.B. MEI, MESI, MSI usw.). In mindestens einer Ausführungsform kann ein L3-Cache 4 MB oder mehr umfassen, je nach Ausführungsform, obwohl auch kleinere Cache-Größen verwendet werden können.
  • In mindestens einer Ausführungsform können ein oder mehrere SoC(s) 1604 einen oder mehrere Beschleuniger 1614 (z.B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon) enthalten. In mindestens einer Ausführungsform kann (können) der (die) SoC(s) 1604 einen Hardware-Beschleunigungscluster enthalten, der optimierte Hardware-Beschleuniger und/oder einen großen On-Chip-Speicher umfassen kann. In mindestens einer Ausführungsform kann ein großer On-Chip-Speicher (z.B. 4 MB SRAM) den Hardware-Beschleunigungscluster in die Lage versetzen, neuronale Netzwerke und andere Berechnungen zu beschleunigen. In mindestens einer Ausführungsform kann der Hardware-Beschleunigungscluster zur Ergänzung der GPU(s) 1608 und zur Auslagerung einiger Aufgaben der GPU(s) 1608 verwendet werden (z.B. um mehr Zyklen der GPU(s) 1608 für die Ausführung anderer Aufgaben freizugeben). In mindestens einer Ausführungsform könnte(n) der/die Beschleuniger 1614 für gezielte Arbeitslasten (z.B. Wahrnehmung, neuronale Faltungsnetzwerke („CNNs“, Convolutional Neural Networks), rekurrente Neuronale Netzwerke („RNNs“, Recurrent Neuronal Networks) usw.) verwendet werden, die stabil genug sind, um für Beschleunigung geeignet zu sein. In mindestens einer Ausführungsform kann ein CNN regionenbasierte oder regional faltende neuronale Netzwerke Netzwerk („RCNNs“, regional convolutional neural networks) und schnelle bzw. Fast RCNs (z.B. wie für die Objekterkennung verwendet) oder eine andere Art von CNN umfassen.
  • In mindestens einer Ausführungsform kann (können) der (die) Beschleuniger 1614 (z.B. ein Hardware-Beschleunigungscluster) einen Deep-Learning-Beschleuniger („DLA“; Deep Learning Accelerator) enthalten. Der/die DLA(s) kann (können), ohne darauf beschränkt zu sein, eine oder mehrere Tensor-Verarbeitungseinheiten („TPUs“, Tensor Processing Units) umfassen, die so konfiguriert sein können, dass sie zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferenzierung bereitstellen. In mindestens einer Ausführungsform können TPUs Beschleuniger sein, die für die Ausführung von Bildverarbeitungsfunktionen (z.B. für CNNs, RCNNs usw.) konfiguriert und optimiert sind. (Ein) DLA(s) (kann) können darüber hinaus für einen bestimmten Satz von Typen neuronaler Netzwerke und Fließkommaoperationen sowie für Inferenzierung optimiert sein. In mindestens einer Ausführungsform kann das Design von DLA(s) mehr Leistung pro Millimeter bieten als eine typische Universal-GPU und typischerweise die Leistung einer CPU weit übertreffen. In mindestens einer Ausführungsform kann (können) die TPU(s) mehrere Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die z.B. INT8-, INT16- und FP16-Datentypen sowohl für Merkmale als auch für Gewichte unterstützt, sowie Nachverarbeitungs- bzw. Postprozessorfunktionen. In mindestens einer Ausführungsform können DLA(s) schnell und effizient neuronale Netzwerke, insbesondere CNNs, auf verarbeiteten oder unverarbeiteten Daten für eine Vielzahl von Funktionen ausführen, einschließlich, zum Beispiel und ohne darauf beschränkt zu sein: 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 von Einsatzfahrzeugen und die Erkennung unter Verwendung von Daten von Mikrofonen 1696; ein CNN für die Gesichtserkennung und die Identifizierung des Fahrzeugbesitzers unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheitsrelevante und/oder sicherheitsbezogene Ereignisse.
  • In mindestens einer Ausführungsform können DLA(s) eine beliebige Funktion der GPU(s) 1608 übernehmen, und kann durch die Verwendung eines Inferenzbeschleunigers ein Entwickler auf beispielsweise entweder DLA(s) oder GPU(s) 1608 für jede beliebige Funktion abzielen. In mindestens einer Ausführungsform kann der Entwickler 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 kann (können) der (die) Beschleuniger 1614 (z.B. ein Hardwarebeschleunigercluster) einen oder mehrere programmierbaren Bildverarbeitungsbeschleuniger („PVA“, Programmable Vision Accelerator) enthalten, der hierin alternativ als Computer-Vision-Beschleuniger bezeichnet werden kann. In mindestens einer Ausführungsform kann (können) der (die) PVA(s) so ausgelegt und konfiguriert sein, dass er (sie) Computer-Vision-Algorithmen für fortschrittliche Fahrerassistenzsysteme („ADAS“) 1638, autonomes Fahren, Augmented-Reality („AR“)-Anwendungen und/oder Virtual-Reality („VR“)-Anwendungen beschleunigt. (Ein) PVA(s) (kann) können ein Gleichgewicht zwischen Leistung und Flexibilität bereitstellen. In mindestens einer Ausführungsform kann jeder/können PVA(s) beispielsweise, und ohne darauf beschränkt zu sein, eine beliebige Anzahl von Computer-Kernen mit reduziertem Befehlssatz („RISC“-Kerne, Reduced Instruction Set Computer-Kerne), direkten Speicherzugriff („DMA“, Direct Memory Access) und/oder eine beliebige Anzahl von Vektorprozessoren umfassen.
  • In mindestens einer Ausführungsform können RISC-Kerne mit Bildsensoren (z.B. Bildsensoren einer beliebigen von hierin beschriebenen Kameras), einem oder mehreren Bildsignalprozessor(en) und/oder dergleichen interagieren. In mindestens einer Ausführungsform kann jeder von RISC-Kernen eine beliebige Menge an Speicher enthalten. In mindestens einer Ausführungsform können die RISC-Kerne je nach Ausführungsform eine beliebige Anzahl von Protokollen verwenden. In mindestens einer Ausführungsform können RISC-Kerne ein Echtzeitbetriebssystem („RTOS“) ausführen. In mindestens einer Ausführungsform können RISC-Kerne mit einem oder mehreren integrierten Schaltkreisen, anwendungsspezifischen integrierten Schaltkreisen („ASICs“) und/oder Speicherbausteinen implementiert sein. In mindestens einer Ausführungsform können RISC-Kerne beispielsweise einen Anweisungs-Cache und/oder einen eng gekoppelten RAM enthalten.
  • In mindestens einer Ausführungsform kann der DMA 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 der DMA eine beliebige Anzahl von Funktionen unterstützen, die zur Optimierung des PVA verwendet werden, einschließlich der, aber nicht beschränkt auf die, Unterstützung mehrdimensionaler Adressierung und/oder zirkulärer Adressierung. In mindestens einer Ausführungsform kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die, ohne darauf beschränkt zu sein, Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockabstufung, vertikale Blockabstufung und/oder Tiefenabstufung umfassen können.
  • In mindestens einer Ausführungsform können Vektorprozessoren programmierbare Prozessoren sein, die für eine effiziente und flexible Ausführung der Programmierung für Computer-Vision-Algorithmen ausgelegt sein können und Signalverarbeitungsfunktionen bereitstellen. In mindestens einer Ausführungsform kann der PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystem-Partitionen umfassen. In mindestens einer Ausführungsform kann der PVA-Kern ein Prozessor-Subsystem, DMA-Engine(s) (z.B. zwei DMA-Engines) und/oder andere Peripheriegeräte umfassen. In mindestens einer Ausführungsform kann das Vektorverarbeitungs-Subsystem als primäre Verarbeitungs-Engine der PVA arbeiten und eine Vektorverarbeitungseinheit („VPU“), einen Anweisungscache und/oder einen Vektorspeicher (z.B. „VMEM“) enthalten. In mindestens einer Ausführungsform kann der VPU-Kern einen digitalen Signalprozessor enthalten, wie z.B. einen digitalen Signalprozessor mit Einzelbefehl und Mehrfachdaten („SIMD“) und sehr langen Anweisungsworten („VLIW“). 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 Anweisungscache enthalten und mit einem dedizierten Speicher gekoppelt sein. Als Ergebnis 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 die Vektorprozessoren, die in einem bestimmten PVA enthalten sind, so konfiguriert sein, dass sie Datenparallelität verwenden. Zum Beispiel kann in mindestens einer Ausführungsform eine Vielzahl von Vektorprozessoren, die in einem einzigen PVA enthalten sind, einen gleichen Computer-Vision-Algorithmus ausführen, aber auf verschiedenen Regionen eines Bildes. In mindestens einer Ausführungsform können in einem bestimmten PVA enthaltene Vektorprozessoren gleichzeitig verschiedene Computer-Vision-Algorithmen auf einem gleichen Bild ausführen oder sogar verschiedene Algorithmen auf aufeinanderfolgenden Bildern oder Teilen 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 PVA enthalten sein. In mindestens einer Ausführungsform können die PVA(s) einen zusätzlichen ECC (Error Correcting Code)-Speicher enthalten, um die Sicherheit des Gesamtsystems zu erhöhen.
  • In mindestens einer Ausführungsform kann (können) der (die) Beschleuniger 1614 (z.B. ein Hardwarbeschleunigercluster) ein Computer-Vision-Netzwerk auf dem Chip und einen statischen Direktzugriffsspeicher („SRAM“) umfassen, um einen SRAM mit hoher Bandbreite und geringer Latenz für den (die) Beschleuniger 1614 bereitzustellen. In mindestens einer Ausführungsform kann der On-Chip-Speicher aus mindestens 4 MB SRAM bestehen, der z.B., und ohne darauf beschränkt zu sein, aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl ein PVA als auch ein DLA zugreifen können. In mindestens einer Ausführungsform kann jedes Paar von Speicherblöcken eine erweiterte Peripheriebus-Schnittstelle („APB“, Advanced Peripheral Bus), Konfigurationsschaltungen, eine Steuereinrichtung und einen Multiplexer enthalten. In mindestens einer Ausführungsform kann jeder Speichertyp verwendet werden. In mindestens einer Ausführungsform können ein PVA und ein DLA auf den Speicher über ein Backbone zugreifen, das einem PVA und einem DLA einen Hochgeschwindigkeitszugriff auf den Speicher ermöglicht. In mindestens einer Ausführungsform kann das Backbone ein Computer-Vision-Netzwerk auf dem Chip umfassen, das einen PVA und einen DLA mit dem Speicher verbindet (z.B. unter Verwendung des APB).
  • In mindestens einer Ausführungsform kann das Computer-Vision-Netzwerk auf dem Chip eine Schnittstelle enthalten, die vor der Übertragung von Steuersignalen/Adressen/Daten bestimmt, dass sowohl ein PVA als auch ein DLA bereitstehende und gültige Signale liefern. In mindestens einer Ausführungsform kann eine Schnittstelle separate Phasen und separate Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-Kommunikation für eine kontinuierliche Datenübertragung bereitstellen. In mindestens einer Ausführungsform kann eine Schnittstelle den Standards der International Organization for Standardization („ISO“) 26262 oder der International Electrotechnical Commission („IEC“) 61508 entsprechen, obwohl auch andere Standards und Protokolle verwendet werden können.
  • In mindestens einer Ausführungsform können ein oder mehrere SoC(s) 1604 einen Echtzeit-Strahlenverfolgungs-Hardwarebeschleuniger enthalten. In mindestens einer Ausführungsform kann der Echtzeit-Strahlenverfolgungs-Hardwarebeschleuniger verwendet werden, um schnell und effizient Positionen und Ausmaße von Objekten (z.B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeit-Visualisierungssimulationen 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 Zweck der Lokalisierung und/oder für andere Funktionen und/oder für andere Zwecke.
  • In mindestens einer Ausführungsform kann/können der/die Beschleuniger 1614 (z.B. ein Hardwarebeschleunigercluster) eine breite Palette von Anwendungen für autonomes Fahren haben. In mindestens einer Ausführungsform kann ein PVA ein programmierbarer Bildverarbeitungsbeschleuniger sein, der für wichtige Verarbeitungsschritte in ADAS und autonomen Fahrzeugen verwendet werden kann. In mindestens einer Ausführungsform sind die Fähigkeiten eines PVA eine gute Ergänzung für algorithmische Domänen, die eine vorhersagbare Verarbeitung bei geringer Leistung und niedriger Latenz benötigen. Mit anderen Worten: Ein PVA eignet sich gut für halbdichte oder dichte reguläre Berechnungen, selbst bei kleinen Datensätzen, die vorhersagbare Laufzeiten mit geringer Latenz und niedrigem Stromverbrauch erfordern. In mindestens einer Ausführungsform, autonomen Fahrzeugen, wie z.B. das Fahrzeug 1600, sind PVAs für die Ausführung klassischer Computer-Vision-Algorithmen entwickelt, da diese effizient bei der Objekterkennung sind und mit Ganzzahlen-Mathematik arbeiten.
  • Zum Beispiel wird gemäß mindestens einer Ausführungsform der Technologie ein PVA verwendet, um Computer-Stereo-Vision durchzuführen. In mindestens einer Ausführungsform kann in einigen Beispielen ein auf semiglobalem Matching basierender Algorithmus verwendet werden, obwohl dies nicht beschränkend sein soll. In mindestens einer Ausführungsform verwenden Anwendungen für das autonome Fahren der Stufe 3-5 Bewegungsschätzung/Stereo-Matching on-the-fly (z.B. Struktur aus Bewegung, Fußgänger-erkennung, Fahrspurerkennung usw.). In mindestens einer Ausführungsform kann der PVA eine Computer-Stereo-Vision-Funktion auf Eingaben von zwei monokularen Kameras ausführen.
  • In mindestens einer Ausführungsform kann ein PVA verwendet werden, um einen dichten optischen Fluss durchzuführen. Zum Beispiel könnte in mindestens einer Ausführungsform ein PVA RADAR-Rohdaten verarbeiten (z.B. mit einer 4D-Fast-FourierTransformation), um verarbeitete RADAR-Daten bereitzustellen. In mindestens einer Ausführungsform wird ein PVA für die Flugzeittiefenverarbeitung verwendet, indem z.B. Flugzeit-Rohdaten verarbeitet werden, um verarbeitete Flugzeitdaten bereitzustellen.
  • In mindestens einer Ausführungsform kann ein DLA verwendet werden, um jede Art von Netzwerk zu betreiben, um die Kontrolle und die Fahrsicherheit zu verbessern, einschließlich zum Beispiel, und ohne darauf beschränkt zu sein, ein neuronales Netzwerk, das ein Konfidenz- bzw. Vertrauensmaß für jede Objekterkennung ausgibt. In mindestens einer Ausführungsform kann eine Konfidenz als eine Wahrscheinlichkeit dargestellt oder interpretiert werden, oder als Bereitstellung einer relativen „Gewichtung“ jeder Erkennung im Vergleich zu anderen Erkennungen. In mindestens einer Ausführungsform ermöglicht die Konfidenz dem System, weitere Entscheidungen darüber zu treffen, welche Erkennungen als echte positive Erkennungen und nicht als falsch positive Erkennungen zu betrachten sind. In mindestens einer Ausführungsform kann ein System einen Schwellenwert für die Konfidenz festlegen und nur Erkennungen, die den Schwellenwert überschreiten, als echte positive Erkennungen betrachten. In einer Ausführungsform, in der ein automatisches Notbremssystem („AEB“) 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 sehr sichere Erkennungen als Auslöser für das AEB betrachtet werden. In mindestens einer Ausführungsform kann ein DLA ein neuronales Netzwerk zur Regression des Konfidenzwertes verwenden. In mindestens einer Ausführungsform kann das neuronale Netzwerk als Eingabe mindestens eine Teilmenge von Parametern verwenden, wie z.B. die Abmessungen des Begrenzungsrahmens, die (z.B. von einem anderen Teilsystem) erhaltene Schätzung der Bodenebene, die Ausgabe eines oder mehrerer IMU-Sensor(s/en) 1666, die mit der Ausrichtung des Fahrzeugs 1600 korreliert, die Entfernung, die 3D-Positionsschätzungen des Objekts, die von dem neuronalen Netzwerk und/oder anderen Sensoren (z.B. LIDAR-Sensor(en) 1664 oder RADAR-Sensor(en) 1660) erhalten werden, und andere.
  • In mindestens einer Ausführungsform kann (können) einer oder mehrere der SoC(s) 1604 Datenspeicher 1616 (z.B. einen Speicher) enthalten. In mindestens einer Ausführungsform kann (können) der (die) Datenspeicher 1616 ein On-Chip-Speicher des (der) SoC(s) 1604 sein, der (die) neuronale(n) Netzwerke speichern kann (können), die auf der (den) GPU(s) 1608 und/oder einem DLA ausgeführt werden. In mindestens einer Ausführungsform kann (können) der (die) Datenspeicher 1616 groß genug sein, um mehrere Instanzen von neuronalen Netzwerken zur Redundanz und Sicherheit zu speichern. In mindestens einer Ausführungsform kann (können) der (die) Datenspeicher 1616 L2 oder L3 Cache(s) umfassen.
  • In mindestens einer Ausführungsform kann (können) ein oder mehrere SoC(s) 1604 eine beliebige Anzahl von Prozessoren 1610 (z.B. eingebettete Prozessoren) enthalten. In mindestens einer Ausführungsform kann (können) der (die) Prozessor(en) 1610 einen Boot- und Energieverwaltungsprozessor umfassen, der ein dedizierter Prozessor und ein Subsystem sein kann, um Boot-Energie- und Verwaltungsfunktionen und die damit verbundene Sicherheitsdurchsetzung zu handhaben. In mindestens einer Ausführungsform kann der Boot- und Energieverwaltungsprozessor ein Teil einer Bootsequenz von SoC(s) 1604 sein und kann Laufzeit-Energieverwaltungsdienste bereitstellen. In mindestens einer Ausführungsform kann ein Boot- und Energieverwaltungsprozessor Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen mit niedrigem Energiebedarf, Verwaltung von SoC(s) 1604-Temperaturen und Temperatursensoren und/oder Verwaltung von SoC(s) 1604-Energie- bzw. Leistungszuständen bereitstellen. In mindestens einer Ausführungsform kann jeder Temperatursensor als ein Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und kann das (können die) SoC(s) 1604 Ringoszillatoren verwenden, um Temperaturen der CPU(s) 1606, der GPU(s) 1608 und/oder des/den Beschleuniger(s/n) 1614 zu erfassen. In mindestens einer Ausführungsform kann der Boot- und Energieverwaltungsprozessor, wenn bestimmt wird, dass die Temperaturen einen Schwellenwert überschreiten, in eine Temperaturfehlerroutine eintreten und SoC(s) 1604 in einen Zustand mit geringerer Leistung versetzen und/oder das Fahrzeug 1600 in einen Chauffeur-zu-sicherem-Halt-Modus versetzen (z.B. das Fahrzeug 1600 zu einem sicheren Halt bringen).
  • In mindestens einer Ausführungsform kann/können der/die Prozessor(en) 1610 außerdem eine Reihe von eingebetteten Prozessoren enthalten, die als Audioverarbeitungs-Engine dienen können. In mindestens einer Ausführungsform kann die Audioverarbeitungs-Engine ein Audio-Subsystem sein, das eine vollständige Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen sowie eine breite und flexible Palette von Audio-E/A-Schnittstellen ermöglicht. In mindestens einer Ausführungsform ist die Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • In mindestens einer Ausführungsform kann (können) der (die) Prozessor(en) 1610 außerdem eine „Immer eingeschaltet“-Prozessor-Engine enthalten, die die erforderlichen Hardware-Funktionen zur Unterstützung der Sensorverwaltung mit geringem Stromverbrauch und der Wake-Use-Cases bzw. Aufwachverwendungsfälle bereitstellen kann. In mindestens einer Ausführungsform kann die „Immer eingeschaltet“-Prozessor-Engine, ohne darauf beschränkt zu sein, einen Prozessorkern, ein eng gekoppeltes RAM, unterstützende Peripheriegeräte (z.B. Zeitgeber und Unterbrechungs-Steuereinrichtungen bzw. Interrupt-Controller), verschiedene E/A-Steuereinrichtungs-Peripheriegeräte und Weiterleitungs- bzw. Routing-Logik umfassen.
  • In mindestens einer Ausführungsform kann (können) der (die) Prozessor(en) 1610 außerdem eine Safety- bzw. Sicherheitscluster-Engine enthalten, die, ohne darauf beschränkt zu sein, ein dediziertes Prozessor-Subsystem zur Handhabung der Sicherheitsverwaltung für Automobilanwendungen umfasst. In mindestens einer Ausführungsform kann die Sicherheitscluster-Engine, ohne darauf beschränkt zu sein, zwei oder mehr Prozessorkerne, einen eng gekoppelten Arbeitsspeicher, unterstützende Peripheriegeräte (z.B. Zeitgeber, eine Unterbrechungs-Steuereinrichtung usw.) und/oder Weiterleitungslogik umfassen. In einem Sicherheitsmodus können zwei oder mehr Kerne in mindestens einer Ausführungsform in einem Verriegelungsschritt- bzw. Lockstep-Modus arbeiten und als ein einziger Kern mit einer Vergleichslogik arbeiten, um etwaige Unterschiede zwischen ihren Operationen zu erfassen. In mindestens einer Ausführungsform kann (können) der (die) Prozessor(en) 1610 außerdem eine Echtzeit-Kamera-Engine enthalten, die, ohne darauf beschränkt zu sein, ein dediziertes Prozessor-Subsystem zur Handhabung der Echtzeit-Kameraverwaltung umfassen kann. In mindestens einer Ausführungsform kann (können) der (die) Prozessor(en) 1610 außerdem einen Signalprozessor mit hohem Dynamikbereich umfassen, der, ohne darauf beschränkt zu sein, einen Bildsignalprozessor umfassen kann, der eine Hardware-Engine ist, die Teil der Kameraverarbeitungs-Pipeline ist.
  • In mindestens einer Ausführungsform kann (können) der (die) Prozessor(en) 1610 einen Videobildkompositor enthalten, der ein Verarbeitungsblock sein kann (z.B. auf einem Mikroprozessor implementiert), der Videonachbearbeitungsfunktionen implementiert, die von einer Videowiedergabeanwendung benötigt werden, um ein endgültiges Bild für ein Abspielerfenster zu erzeugen. In mindestens einer Ausführungsform kann der Videobildkompositor eine Linsenverzerrungskorrektur an der/den Weitwinkelkamera(s) 1670, der/den Surround-Kamera(s) 1674 und/oder an den Sensoren der Überwachungskamera(s) in der Kabine durchführen. In mindestens einer Ausführungsform wird/werden der/die Sensor(en) der kabineninternen Überwachungskamera(n) vorzugsweise von einem neuronalen Netzwerk ü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 System in der Kabine, ohne darauf beschränkt zu sein, ein Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, das Fahrzeugziel zu ändern, das Infotainment-System des Fahrzeugs und Einstellungen zu aktivieren oder zu ändern oder sprachaktiviertes Surfen im Internet zu ermöglichen. In mindestens einer Ausführungsform sind bestimmte Funktionen für den Fahrer verfügbar, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und ansonsten deaktiviert.
  • In mindestens einer Ausführungsform kann der Videobildkompositor eine erweiterte zeitliche Rauschunterdrückung für sowohl räumliche als auch zeitliche Rauschunterdrückung enthalten. In mindestens einer Ausführungsform, in der Bewegung in einem Video vorkommt, gewichtet die Rauschunterdrückung beispielsweise die räumlichen Informationen entsprechend und verringert das Gewicht der Informationen, die von benachbarten Frames geliefert werden. In mindestens einer Ausführungsform, in der ein Bild oder ein Teil eines Bildes keine Bewegung enthält, kann die von dem Videobildkompositor durchgeführte zeitliche Rauschreduzierung Informationen aus dem vorherigen Bild verwenden, um das Rauschen in dem aktuellen Bild zu reduzieren.
  • In mindestens einer Ausführungsform kann der Videobildkompositor auch so konfiguriert sein, dass er eine Stereoentzerrung an eingegebenen Stereoobjektivrahmen durchführt. In mindestens einer Ausführungsform kann der Videobildkompositor auch für die Zusammenstellung der Benutzeroberfläche verwendet werden, wenn die Arbeitsoberfläche des Betriebssystems in Gebrauch ist und die GPU(s) 1608 nicht zum kontinuierlichen Rendern neuer Oberflächen erforderlich sind. In mindestens einer Ausführungsform kann der Videobildkompositor zur Entlastung der GPU(s) 1608 verwendet werden, wenn die GPU(s) 1608 eingeschaltet und aktiv mit dem 3D-Rendering beschäftigt sind, um die Leistung und das Ansprechvermögen zu verbessern.
  • In mindestens einer Ausführungsform können ein oder mehrere der SoC(s) 1604 außerdem eine serielle MIPI (Mobile Industry Processor Interface)-Kameraschnittstelle zum Empfangen von Video und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingabeblock enthalten, der für die Kamera und verwandte Pixeleingabefunktionen verwendet werden kann. In mindestens einer Ausführungsform können ein oder mehrere SoC(s) 1604 außerdem einen oder mehrere Eingangs-/Ausgangs-Steuereinrichtungen enthalten, die per Software gesteuert werden können und für den Empfang von E/A-Signalen verwendet werden können, die keiner bestimmten Rolle zugeordnet sind.
  • In mindestens einer Ausführungsform können ein oder mehrere der SoC(s) 1604 außerdem eine breite Palette von Peripherieschnittstellen enthalten, um die Kommunikation mit Peripheriegeräten, Audio-Encodern/Decodern („Codecs“), einer Energieverwaltung und/oder anderen Geräten zu ermöglichen. Der/die SoC(s) 1604 kann/können verwendet werden, um Daten von Kameras (z. B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z.B. LIDAR-Sensor(en) 1664, RADAR-Sensor(en) 1660, usw., die über Ethernet verbunden sein können), Daten von dem Bus 1602 (z.B. Geschwindigkeit des Fahrzeugs 1600, Lenkradposition, usw.), Daten von einem oder mehreren GNSS-Sensor(en) 1658 (z.B. verbunden über Ethernet oder CAN), usw. zu verarbeiten. In mindestens einer Ausführungsform können ein oder mehrere SoC der SoC(s) 1604 außerdem dedizierte Hochleistungs-Massenspeicher-Steuereinrichtungen enthalten, die ihre eigenen DMA-Engines enthalten können und die verwendet werden können, um die CPU(s) 1606 von Routine-Datenverwaltungsaufgaben zu befreien.
  • In mindestens einer Ausführungsform kann (können) der (die) SoC(s) 1604 eine Endezu-Ende-Plattform mit einer flexiblen Architektur sein, die die Automatisierungsebenen 3 bis 5 überspannt und dadurch eine umfassende funktionale Sicherheitsarchitektur bereitstellt, die Computer-Vision- und ADAS-Verfahren für Diversität und Redundanz nutzt und eine Plattform für einen flexiblen, zuverlässigen Fahrsoftware-Stack zusammen mit Deep-Learning-Tools bereitstellt. In mindestens einer Ausführungsform kann (können) der (die) SoC(s) 1604 schneller, zuverlässiger und sogar energie- und platzsparender als herkömmliche Systeme sein. Zum Beispiel können in mindestens einer Ausführungsform der/die Beschleuniger 1614 in Kombination mit der/den CPU(s) 1606, der/den GPU(s) 1608 und dem/den Datenspeicher(n) 1616 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bilden.
  • In mindestens einer Ausführungsform können Computer-Vision-Algorithmen auf CPUs ausgeführt werden, die mit einer höheren Programmiersprache, wie z.B. der Programmiersprache C, konfiguriert sein können, um eine Vielzahl von Verarbeitungsalgorithmen für eine Vielzahl von visuellen Daten auszuführen. In mindestens einer Ausführungsform sind CPUs jedoch oft nicht in der Lage, Leistungsanforderungen vieler Computer-Vision-Anwendungen zu erfüllen, z.B. in Bezug auf die Ausführungszeit und den Stromverbrauch. In mindestens einer Ausführungsform sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, die in fahrzeuginternen ADAS-Anwendungen und in praktischen autonomen Fahrzeugen der Stufe 3-5 verwendet werden.
  • Hierin beschriebene Ausführungsformen ermöglichen eine gleichzeitige und/oder sequenzielle Ausführung mehrerer neuronaler Netzwerke und eine Kombination der Ergebnisse, um autonome Fahrfunktionen der Stufe 3-5 zu ermöglichen. Zum Beispiel kann in mindestens einer Ausführungsform ein CNN, das auf einem DLA oder einer diskreten GPU (z.B. der/den GPU(s) 1620) ausgeführt wird, eine Text- und Worterkennung beinhalten, die es einem Supercomputer ermöglichen, Verkehrszeichen zu lesen und zu verstehen, einschließlich von Zeichen, für die das neuronale Netzwerk nicht speziell trainiert wurde. In mindestens einer Ausführungsform kann ein DLA außerdem ein neuronales Netzwerk enthalten, das in der Lage ist, ein Schild zu identifizieren, zu interpretieren und semantisch zu verstehen und dieses semantische Verständnis an Wegplanungsmodule weiterzugeben, die auf einem CPU-Komplex laufen.
  • In mindestens einer Ausführungsform können mehrere neuronale Netzwerke gleichzeitig ausgeführt werden, wie beim Fahren in der Stufe 3, 4 oder 5. In mindestens einer Ausführungsform kann z.B. ein Warnschild mit der Aufschrift „Vorsicht: Blinkende Lichter weisen auf Vereisung hin“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzwerken unabhängig oder gemeinsam interpretiert werden. In mindestens einer Ausführungsform kann ein solches Schild selbst von einem ersten eingesetzten neuronalen Netzwerk (z.B. einem trainierten neuronalen Netzwerk) als Verkehrsschild identifiziert werden, und kann ein Text „Blinkende Lichter deuten auf Vereisung hin“ von einem zweiten eingesetzten neuronalen Netzwerk interpretiert werden, das eine Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf einem CPU-Komplex ausgeführt wird) darüber informiert, dass dann, wenn blinkende Lichter erkannt werden, eine Vereisung vorliegt. In mindestens einer Ausführungsform kann ein blinkendes Licht durch den Betrieb eines dritten eingesetzten neuronalen Netzwerks über mehrere Frames hinweg identifiziert werden, das eine Wegplanungssoftware des Fahrzeugs über ein Vorhandensein (oder ein Fehlen) von blinkenden Lichtern informiert. In mindestens einer Ausführungsform können alle drei neuronalen Netzwerke gleichzeitig laufen, z.B. innerhalb eines DLA und/oder auf einer oder mehreren GPU(s) 1608.
  • In mindestens einer Ausführungsform kann ein CNN zur Gesichtserkennung und Identifizierung des Fahrzeugbesitzers Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 1600 zu identifizieren. In mindestens einer Ausführungsform kann eine „Immer eingeschaltet“-Sensorverarbeitungs-Engine verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Besitzer der Fahrertür nähert und die Lichter einschaltet, und um in einem Sicherheitsmodus das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise sorgen die SoC(s) 1604 für Sicherheit gegen Diebstahl und/oder räuberische Angriffe auf Kraftfahrer bzw. Carjacking.
  • 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 SoC(s) 1604 ein CNN zur Klassifizierung von Umgebungs- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. In mindestens einer Ausführungsform wird ein CNN, das auf einem DLA läuft, trainiert, um eine relative Annäherungsgeschwindigkeit eines Einsatzfahrzeugs zu identifizieren (z.B. unter Verwendung eines Dopplereffekts). In mindestens einer Ausführungsform kann ein CNN auch darauf trainiert sein, Einsatzfahrzeuge zu identifizieren, die spezifisch für einen lokalen Bereich sind, in dem ein Fahrzeug fährt, wie von einem oder mehreren GNSS-Sensor(en) 1658 identifiziert. In mindestens einer Ausführungsform wird ein CNN bei einem Betrieb in Europa versuchen, europäische Sirenen zu erkennen, und bei einem Betrieb in den Vereinigten Staaten wird ein CNN versuchen, 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, ein Fahrzeug zu verlangsamen, an einen Straßenrand zu fahren, ein Fahrzeug zu parken und/oder ein Fahrzeug im Leerlauf laufen zu lassen, mit Hilfe von Ultraschallsensor(en) 1662, bis ein oder mehrere Einsatzfahrzeug(e) vorbeifahren.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 eine oder mehrere CPU(s) 1618 (z.B. diskrete CPU(s) oder dCPU(s)) enthalten, die über eine Hochgeschwindigkeitsverbindung (z.B. PCIe) mit dem/den SoC(s) 1604 verbunden sein können. In mindestens einer Ausführungsform kann (können) die CPU(s) 1618 beispielsweise einen X86-Prozessor umfassen. Die CPU(s) 1618 kann/können verwendet werden, um eine Vielzahl von Funktionen auszuführen, einschließlich der Schlichtung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem (der) SoC(s) 1604 und/oder der Überwachung des Status und der Gesundheit der Steuereinrichtung(en) 1636 und/oder eines Infotainment-Systems auf einem Chip („Infotainment-SoC“) 1630, zum Beispiel.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 GPU(s) 1620 (z.B. diskrete GPU(s) oder dGPU(s)) enthalten, die mit dem/den SoC(s) 1604 über eine Hochgeschwindigkeitsverbindung (z.B. NVIDIAs NVLINK) gekoppelt sein können. In mindestens einer Ausführungsform kann/können die GPU(s) 1620 zusätzliche künstliche Intelligenzfunktionalität bereitstellen, z.B. durch Ausführen redundanter und/oder unterschiedlicher neuronaler Netzwerke, und kann/können zum Trainieren und/oder Aktualisieren neuronaler Netzwerke 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 enthalten, die, ohne darauf beschränkt zu sein, eine oder mehrere drahtlose Antennen 1626 (z. B. eine oder mehrere drahtlose Antennen 1626 für verschiedene Kommunikationsprotokolle, wie eine Mobilfunkantenne, eine Bluetooth-Antenne usw.) umfassen kann. In mindestens einer Ausführungsform kann die Netzwerkschnittstelle 1624 verwendet werden, um eine drahtlose Verbindung über das Internet zur Cloud (z.B. mit Server(n) und/oder anderen Netzwerkgeräten), mit anderen Fahrzeugen und/oder mit Computergeräten (z.B. Client-Geräten von Fahrgästen) zu ermöglichen. In mindestens einer Ausführungsform kann zur Kommunikation mit anderen Fahrzeugen eine direkte Verbindung zwischen dem Fahrzeug 160 und einem anderen Fahrzeug und/oder eine indirekte Verbindung (z.B. über Netzwerke und über Internet) hergestellt werden. In mindestens einer Ausführungsform kann die direkte Verbindung über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung hergestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 1600 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 1600 liefern (z.B. Fahrzeuge vor, neben und/oder hinter dem Fahrzeug 1600). In mindestens einer Ausführungsform kann eine solche vorgenannte Funktionalität Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 1600 sein.
  • In mindestens einer Ausführungsform kann die Netzwerkschnittstelle 1624 ein SoC enthalten, das Modulations- und Demodulationsfunktionen bereitstellt und es der/den Steuereinrichtung(en) 1636 ermöglicht, über drahtlose Netzwerke zu kommunizieren. In mindestens einer Ausführungsform kann die Netzwerkschnittstelle 1624 ein Funkfrequenz-Frontend für die Aufwärtskonvertierung von Basisband auf Funkfrequenz und die Abwärtskonvertierung von Funkfrequenz auf Basisband enthalten. In mindestens einer Ausführungsform können die Frequenzumwandlungen auf jede technisch mögliche Weise durchgeführt werden. Zum Beispiel können Frequenzumwandlungen durch bekannte Verfahren und/oder unter Verwendung von Super-Heterodyn-Verfahren durchgeführt werden. In mindestens einer Ausführungsform kann die Hochfrequenz-Frontend-Funktionalität durch einen separaten Chip bereitgestellt werden. 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 umfassen.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 außerdem Datenspeicher 1628 enthalten, die, ohne darauf beschränkt zu sein, einen Speicher außerhalb des Chips (z.B. außerhalb des/der SoC(s) 1604) enthalten können. In mindestens einer Ausführungsform kann (können) der (die) Datenspeicher 1628, ohne darauf beschränkt zu sein, ein oder mehrere Speicherelemente umfassen, darunter RAM, SRAM, dynamischer Direktzugriffsspeicher („DRAM“), Video-Direktzugriffsspeicher („VRAM“), Flash, Festplatten und/oder andere Komponenten und/oder Geräte, die mindestens ein Bit von Daten speichern können.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 außerdem einen oder mehrere GNSS-Sensor(en) 1658 (z.B. GPS und/oder unterstützte GPS-Sensoren) enthalten, um bei der Kartierung, der Wahrnehmung, der Erzeugung von Belegungsrastern und/oder den Pfadplanungsfunktionen zu assistieren. In mindestens einer Ausführungsform kann eine beliebige Anzahl von GNSS-Sensor(en) 1658 verwendet werden, einschließlich, zum Beispiel und ohne darauf beschränkt zu sein, ein GPS, das einen USB-Anschluss mit einer Ethernet-zu-Seriell-Brücke (z.B. RS-232) verwendet.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 außerdem einen oder mehrere RADAR-Sensor(en) 1660 enthalten. Der/die RADAR-Sensor(en) 1660 kann/können von dem Fahrzeug 1600 zur Fahrzeugerfassung mit großer Reichweite verwendet werden, auch bei Dunkelheit und/oder schlechten Wetterbedingungen. In mindestens einer Ausführungsform können die RADAR-Funktionssicherheitsstufen A-SIL B sein. Der/die RADAR-Sensor(en) 1660 kann/können ein CAN und/oder den Bus 1602 (z.B. zur Übertragung der von dem/den RADAR-Sensor(en) 1660 erzeugten Daten) zur Steuerung und zum Zugriff auf Objektverfolgungsdaten verwenden, wobei in einigen Beispielen der Zugriff auf Rohdaten über Ethernet erfolgt. In mindestens einer Ausführungsform kann eine breite Palette von RADAR-Sensortypen verwendet werden. Zum Beispiel, und ohne darauf beschränkt zu sein, kann/können der/die RADAR-Sensor(en) 1660 für die Verwendung von 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 kann/können der/die RADAR-Sensor(en) 1660 verschiedene Konfigurationen umfassen, wie z.B. große Reichweite mit engem Sichtfeld, geringe Reichweite mit breitem Sichtfeld, seitliche Abdeckung mit geringer Reichweite usw. In mindestens einer Ausführungsform kann RADAR mit großer Reichweite für die adaptive Geschwindigkeitsregelungsfunktion 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 Abtastungen realisiert wird, z.B. innerhalb eines Bereichs von 250 m. In mindestens einer Ausführungsform kann/können der/die RADAR-Sensor(en) 1660 dabei assistieren, zwischen statischen und sich bewegenden Objekten zu unterscheiden, und kann/können von dem ADAS-System 1638 für den Notbremsassistenten und die Vorwärtskollisionswarnung verwendet werden. Die in einem RADAR-System mit großer Reichweite enthaltenen Sensoren 1660 können, ohne darauf beschränkt zu sein, ein monostatisches multimodales RADAR mit mehreren (z.B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle umfassen. In mindestens einer Ausführungsform mit sechs Antennen können mittlere vier Antennen ein fokussiertes Strahlenmuster erzeugen, das dafür ausgelegt ist, die Umgebung des Fahrzeugs 1600 bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr auf den benachbarten Fahrspuren zu erfassen. In mindestens einer Ausführungsform können zwei andere Antennen das Sichtfeld erweitern, so dass Fahrzeuge, die in eine Spur des Fahrzeugs 1600 einfahren oder diese verlassen, schnell erfasst werden können.
  • 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) aufweisen. In mindestens einer Ausführungsform können Kurzstrecken-RADAR-Systeme, ohne darauf beschränkt zu sein, eine beliebige Anzahl von RADAR-Sensoren 1660 umfassen, die so ausgelegt sind, dass sie an beiden Enden des hinteren Stoßfängers installiert werden können. Wenn es an beiden Enden des hinteren Stoßfängers installiert ist, kann ein RADAR-Sensorsystem in mindestens einer Ausführungsform zwei Strahlen erzeugen, die tote Winkel hinter und neben dem Fahrzeug ständig überwachen. In mindestens einer Ausführungsform können RADAR-Systeme mit kurzer Reichweite in dem ADAS-System 1638 zur Totwinkelerkennung und/oder Spurwechselassistenz verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 außerdem einen oder mehrere Ultraschall-Sensor(en) 1662 enthalten. Der/die Ultraschallsensor(en) 1662, der/die an der Vorderseite, der Rückseite und/oder an den Seiten des Fahrzeugs 1600 positioniert sein kann/können, kann/können zur Einparkhilfe und/oder zur Erstellung und Aktualisierung eines Belegungsrasters verwendet werden. In mindestens einer Ausführungsform kann eine Vielzahl von Ultraschallsensor(en) 1662 verwendet werden, und können unterschiedliche Ultraschallsensor(en) 1662 für unterschiedliche Erfassungsbereiche (z.B. 2,5 m, 4 m) verwendet werden. In mindestens einer Ausführungsform kann (können) der (die) Ultraschallsensor(en) 1662 auf funktionalen Sicherheitsstufen von A-SIL B arbeiten.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 LIDAR-Sensor(en) 1664 enthalten. Der/die LIDAR-Sensor(en) 1664 kann/können für Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder andere Funktionen verwendet werden. In mindestens einer Ausführungsform kann (können) der (die) LIDAR-Sensor(en) 1664 die funktionale Sicherheitsstufe ASIL B sein. In mindestens einer Ausführungsform kann das Fahrzeug 1600 mehrere LIDAR-Sensoren 1664 (z.B. zwei, vier, sechs usw.) umfassen, die Ethernet verwenden können (z.B. um Daten an einen Gigabit-Ethernet-Switch zu liefern).
  • In mindestens einer Ausführungsform kann (können) der/die LIDAR-Sensor(en) 1664 in der Lage sein, eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld bereitzustellen. In mindestens einer Ausführungsform kann (können) der (die) handelsübliche(n) LIDAR-Sensor(en) 1664 eine beworbene Reichweite von ca. 100 m haben, mit einer Genauigkeit von 2 cm-3 cm und mit Unterstützung für eine 100-Mbit/s-Ethernet-Verbindung, zum Beispiel. In mindestens einer Ausführungsform können ein oder mehrere nicht vorstehende LIDAR-Sensoren 1664 verwendet werden. In einer solchen Ausführungsform kann/können der/die LIDAR-Sensor(en) 1664 als eine kleine Vorrichtung implementiert sein, die in die Front, das Heck, die Seiten und/oder die Ecken des Fahrzeugs 1600 eingebettet sein kann. In mindestens einer Ausführungsform kann (können) der (die) LIDAR-Sensor(en) 1664 ein horizontales Sichtfeld von bis zu 120 Grad und ein vertikales Sichtfeld von bis zu 35 Grad bereitstellen, mit einer Reichweite von 200 m, selbst bei Objekten mit geringem Reflexionsvermögen. In mindestens einer Ausführungsform kann (können) der/die frontseitige(n) LIDAR-Sensor(en) 1664 für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert sein.
  • In mindestens einer Ausführungsform können auch LIDAR-Technologien, wie z.B. 3D-Flash-LIDAR, verwendet werden. 3D-Flash-LIDAR verwendet einen Blitz eines Lasers als eine Sendequelle, um die Umgebung des Fahrzeugs 1600 bis hin zu ca. 200 m zu beleuchten. In mindestens einer Ausführungsform umfasst eine Flash-LIDAR-Einheit, ohne darauf beschränkt zu sein, einen Empfänger bzw. Rezeptor, der die Laufzeit des Laserimpulses und das reflektierte Licht an jedem Pixel aufzeichnet, was wiederum der Entfernung von dem Fahrzeug 1600 zu Objekten entspricht. In mindestens einer Ausführungsform kann das Flash-LIDAR ermöglichen, dass mit jedem Laserblitz hochgenaue und verzerrungsfreie 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 umfassen 3D-Flash-LIDAR-Systeme, ohne darauf beschränkt zu sein, eine Festkörper-3D-Festanordnungs-LIDAR-Kamera ohne bewegliche Teile außer einem Gebläse (z.B. eine nichtabtastende LIDAR-Vorrichtung). In mindestens einer Ausführungsform kann das Flash-LIDAR-Gerät einen 5-Nanosekunden-Laserimpuls der Klasse I (augensicher) pro Bild verwenden und das reflektierte Laserlicht in Form von 3D-Entfernungspunktwolken und koregistrierten Intensitätsdaten erfassen.
  • In mindestens einer Ausführungsform kann das Fahrzeug außerdem einen oder mehrere IMU-Sensor(en) 1666 enthalten. In mindestens einer Ausführungsform kann/können der/die IMU-Sensor(en) 1666 in der Mitte der Hinterachse des Fahrzeugs 1600 angeordnet sein, in mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann (können) der (die) IMU-Sensor(en) 1666 beispielsweise, und ohne darauf beschränkt zu sein, einen oder mehrere Beschleunigungsmesser, Magnetometer, Gyroskop(e), Magnetkompass(e) und/oder andere Sensortypen umfassen. In mindestens einer Ausführungsform, z.B. bei sechsachsigen Anwendungen, kann/können der/die IMU-Sensor(en) 1666, ohne darauf beschränkt zu sein, Beschleunigungsmesser und Gyroskope umfassen. In mindestens einer Ausführungsform, z.B. bei neunachsigen Anwendungen, kann/können der/die IMU-Sensor(en) 1666, ohne darauf beschränkt zu sein, Beschleunigungsmesser, Gyroskope und Magnetometer umfassen.
  • In mindestens einer Ausführungsform kann (können) der (die) IMU-Sensor(en) 1666 als ein miniaturisiertes, hochleistungsfähiges GPS-gestütztes Trägheitsnavigationssystem („GPS/INS“) implementiert sein, das mikroelektromechanische Systeme („MEMS“) Trägheitssensoren, einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Lage zu liefern. In mindestens einer Ausführungsform kann/können der/die IMU-Sensor(en) 1666 das Fahrzeug 1600 in die Lage versetzen, den Kurs zu schätzen, ohne dass Eingaben von einem magnetischen Sensor erforderlich sind, indem Änderungen der Geschwindigkeit vom GPS direkt beobachtet und mit dem/den IMU-Sensor(en) 1666 korreliert werden. In mindestens einer Ausführungsform können der/die IMU-Sensor(en) 1666 und der/die GNSS-Sensor(en) 1658 in einer einzigen integrierten Einheit kombiniert sein.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 Mikrofon(e) 1696 enthalten, die in dem und/oder um das Fahrzeug 1600 herum angeordnet sind. In mindestens einer Ausführungsform kann (können) das (die) Mikrofon(e) 1696 u. a. zur Erkennung und Identifizierung von Einsatzfahrzeugen verwendet werden.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ferner eine beliebige Anzahl von Kameratypen enthalten, einschließlich einer oder mehreren Stereokamera(s) 1668, Weitwinkelkamera(s) 1670, Infrarotkamera(s) 1672, Umgebungskamera(s) 1674, Fernkamera(s) 1698, Mittelbereichskamera(s) 1676 und/oder andere Kameratypen. In mindestens einer Ausführungsform können Kameras verwendet werden, um Bilddaten rund um einen gesamten Umfang des Fahrzeugs 1600 zu erfassen. In mindestens einer Ausführungsform hängen die Typen der verwendeten Kameras von dem Fahrzeug 1600 ab. In mindestens einer Ausführungsform kann eine beliebige Kombination von Kameratypen verwendet werden, um die notwendige Abdeckung um das Fahrzeug 1600 herum bereitzustellen. In mindestens einer Ausführungsform kann die Anzahl der Kameras je nach Ausführungsform unterschiedlich sein. Zum Beispiel kann in mindestens einer Ausführungsform das Fahrzeug 1600 sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras oder eine andere Anzahl von Kameras umfassen. Die Kameras können, als Beispiel und ohne darauf beschränkt zu sein, Gigabit Multimedia Serial Link („GMSL“) und/oder Gigabit Ethernet unterstützen. In mindestens einer Ausführungsform ist jede Kamera wie zuvor hierin in Bezug auf 16A und 16B ausführlicher beschrieben ausgebildet.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 außerdem einen oder mehrere Vibrations- bzw. Schwingungssensor(en) 1642 enthalten. In mindestens einer Ausführungsform kann/können der/die Schwingungssensor(en) 1642 Schwingungen von Komponenten des Fahrzeugs 1600, wie z. B. der Achse(n), messen. Zum Beispiel können in mindestens einer Ausführungsform Änderungen der Schwingungen eine Änderung der Straßenoberfläche anzeigen. In mindestens einer Ausführungsform, wenn zwei oder mehr Schwingungssensoren 1642 verwendet werden, können Unterschiede zwischen Schwingungen verwendet werden, um die Reibung oder den Schlupf der Straßenoberfläche zu bestimmen (z.B. wenn der Unterschied in der Schwingung zwischen einer angetriebenen Achse und einer frei drehenden Achse besteht).
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 ein ADAS-System 1638 enthalten. In mindestens einer Ausführungsform kann das ADAS-System 1638 in einigen Beispielen, ohne darauf beschränkt zu sein, ein SoC enthalten. In mindestens einer Ausführungsform kann das ADAS-System 1638, ohne darauf beschränkt zu sein, eine beliebige Anzahl und Kombination eines autonomen/adaptiven/automatischen Geschwindigkeitsregelungssystems („ACC“), eines kooperativen adaptiven Geschwindigkeitsregelungssystems („CACC“), eines Vorwärts-Crash-Warnsystems („FCW“), eines automatischen Notbremssystems („AEB“), eines Spurverlassenswarnsystems („LDW“), eines Spurhalteassistenzsystems („LKA“), eines Warnsystems für den toten Winkel („BSW“), eines Warnsystem für den rückwärtigen Querverkehr („RCTW“), eines Kollisionswarnsystems („CW“), eines Spurzentrierungssystems („LC“) und/oder andere Systeme, Merkmale und/oder Funktionalität 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 in Längsrichtung wirkendes bzw. longitudinales ACC-System und/oder ein in Seitenrichtung wirkendes bzw. laterales ACC-System umfassen. In mindestens einer Ausführungsform überwacht und steuert das longitudinale ACC-System den Abstand zu einem Fahrzeug unmittelbar vor dem Fahrzeug 1600 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 laterale ACC-System eine Abstandskontrolle durch und rät dem Fahrzeug 1600, die Spur zu wechseln, wenn dies erforderlich ist. In mindestens einer Ausführungsform ist das laterale ACC mit anderen ADAS-Anwendungen wie beispielsweise 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 Funkantenne(n) 1626 von anderen Fahrzeugen über eine drahtlose Verbindung oder indirekt über eine Netzwerkverbindung (z.B. über das Internet) empfangen werden können. In mindestens einer Ausführungsform können direkte Verbindungen durch eine Fahrzeug-zu-Fahrzeug („V2V“) Kommunikationsverbindung bereitgestellt werden, während indirekte Verbindungen durch eine Infrastruktur-zu-Fahrzeug („12V“) Kommunikationsverbindung bereitgestellt werden können. Im Allgemeinen liefert das V2V-Kommunikationskonzept Informationen über unmittelbar vorausfahrende Fahrzeuge (z.B. Fahrzeuge, die sich unmittelbar vor und in derselben Spur wie Fahrzeug 1600 befinden), während das 12V-Kommunikationskonzept Informationen über Verkehr weiter voraus liefert. In mindestens einer Ausführungsform kann ein CACC-System entweder eine oder beide der 12V- und V2V-Informationsquellen enthalten. In mindestens einer Ausführungsform kann ein CACC-System angesichts der Informationen über Fahrzeuge vor dem Fahrzeug 1600 zuverlässiger sein und hat das Potenzial, den Verkehrsfluss zu verbessern und Staus auf der Straße zu reduzieren.
  • In mindestens einer Ausführungsform ist ein FCW-System so konzipiert, dass es einen Fahrer vor einer Gefahr warnt, so dass ein solcher Fahrer korrigierend eingreifen kann. In mindestens einer Ausführungsform verwendet ein FCW-System eine nach vorne gerichtete Kamera und/oder RADAR-Sensor(en) 1660, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der bzw. das elektrisch gekoppelt ist, um eine Rückmeldung an den Fahrer bereitzustellen, z.B. mit einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente. In mindestens einer Ausführungsform kann ein FCW-System eine Warnung ausgeben, z.B. in Form eines Tons, einer optischen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.
  • In mindestens einer Ausführungsform erfasst ein AEB-System eine drohende Vorwärtskollision mit einem anderen Fahrzeug oder einem anderen Objekt und kann automatisch die Bremsen betätigen, falls ein Fahrer nicht innerhalb eines bestimmten Zeit- oder Abstandsparameters korrigierend eingreift. In mindestens einer Ausführungsform kann das AEB-System nach vorne 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 wird dann, wenn ein AEB-System eine Gefahr erkennt, alarmiert das AEB-System typischerweise zuerst den Fahrer, um korrigierende Maßnahmen zu ergreifen, um eine Kollision zu vermeiden, und falls dieser Fahrer keine korrigierende Maßnahmen ergreift, kann das AEB-System automatisch die Bremsen betätigen, um eine Auswirkung einer vorhergesagten Kollision zu verhindern oder zumindest abzuschwächen. In mindestens einer Ausführungsform kann ein AEB-System Techniken wie eine dynamische Bremsunterstützung und/oder eine Voraufprall-Bremsung umfassen.
  • In mindestens einer Ausführungsform stellt ein LDW-System optische, akustische und/oder taktile Warnungen, wie z.B. Lenkrad- oder Sitzvibrationen, bereit, um den Fahrer zu warnen, wenn das Fahrzeug 1600 die Fahrbahnmarkierungen überquert. In mindestens einer Ausführungsform wird ein LDW-System nicht aktiviert, wenn ein Fahrer ein absichtliches Verlassen der Fahrspur anzeigt, indem er beispielsweise einen Blinker betätigt. 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, der bzw. das elektrisch an eine Rückmeldung an den Fahrer gekoppelt ist, wie z.B. mit einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente. In mindestens einer Ausführungsform ist ein LKA-System eine Variante eines LDW-Systems. Das LKA-System stellt Lenkeingaben oder eine Bremsung bereit, um das Fahrzeug 1600 zu korrigieren, wenn das Fahrzeug 1600 beginnt, seine Fahrspur zu verlassen.
  • In mindestens einer Ausführungsform erfasst und warnt ein BSW-System einen Fahrer vor Fahrzeugen im toten Winkel des Fahrzeugs. In mindestens einer Ausführungsform kann ein BSW-System eine optische, akustische und/oder taktile Warnung ausgeben, um darauf hinzuweisen, dass das Zusammenführen oder Wechseln der Fahrspur unsicher ist. In mindestens einer Ausführungsform kann ein BSW-System eine zusätzliche Warnung ausgeben, wenn der Fahrer einen Blinker betätigt. In mindestens einer Ausführungsform kann ein BSW-System (eine) nach hinten gerichtete Kamera(s) und/oder (einen) RADAR-Sensor(en) 1660 verwenden, der/die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt ist/sind, der/die elektrisch an eine Fahrerrückmeldung gekoppelt ist/sind, wie z.B. eine Anzeige, ein Lautsprecher und/oder eine vibrierende Komponente.
  • In mindestens einer Ausführungsform kann ein RCTW-System eine visuelle, akustische und/oder taktile Benachrichtigung bereitstellen, wenn ein Objekt außerhalb des Bereichs einer Rückfahrkamera erkannt wird, wenn das Fahrzeug 1600 rückwärtsfährt. In mindestens einer Ausführungsform umfasst ein RCTW-System ein AEB-System, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Unfall zu vermeiden. In mindestens einer Ausführungsform kann ein RCTW-System einen oder mehrere nach hinten gerichtete(n) RADAR-Sensor(en) 1660 verwenden, der/die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt ist/sind, der/die elektrisch an eine Rückmeldung an den Fahrer gekoppelt ist, wie z.B. mit einer Anzeige, einem Lautsprecher und/oder einer vibrierende Komponente.
  • In mindestens einer Ausführungsform können herkömmliche ADAS-Systeme anfällig für falsch positive Ergebnisse sein, die für einen Fahrer ärgerlich und ablenkend sein können, aber typischerweise nicht katastrophal sind, weil herkömmliche ADAS-Systeme einen Fahrer warnen und es diesem Fahrer erlauben, zu entscheiden, ob eine Sicherheitsbedingung wirklich existiert, und entsprechend zu handeln. In mindestens einer Ausführungsform entscheidet das Fahrzeug 1600 im Falle widersprüchlicher Ergebnisse selbst, ob das Ergebnis eines Primärcomputers oder eines Sekundärcomputers (z.B. eine erste Steuereinheit 1636 oder eine zweite Steuereinheit 1636) beachtet wird. In mindestens einer Ausführungsform kann das ADAS-System 1638 beispielsweise ein Backup- und/oder Sekundärcomputer sein, der Wahrnehmungsinformationen an ein Rationalitätsmodul des Backup-Computers liefert. In mindestens einer Ausführungsform kann ein Backup-Computer-Rationalitätsmonitor redundante diverse Software auf Hardwarekomponenten ausführen, um Fehler in der Wahrnehmung und bei dynamischen Fahraufgaben zu erkennen. In mindestens einer Ausführungsform können die Ausgaben des ADAS-Systems 1638 an eine übergeordnete MCU weitergeleitet werden. In mindestens einer Ausführungsform bestimmt eine übergeordnete MCU, wie der Konflikt zu lösen ist, um einen sicheren Betrieb zu gewährleisten, falls Ausgaben eines Primärcomputers und eines Sekundärcomputers in Konflikt stehen.
  • In mindestens einer Ausführungsform kann ein Primärcomputer so konfiguriert sein, dass er einer übergeordneten MCU einen Konfidenz- bzw. Vertrauenswert liefert, der das Vertrauen dieses Primärcomputers in ein gewähltes Ergebnis angibt. In mindestens einer Ausführungsform kann diese übergeordnete MCU der Anweisung dieses Primärcomputers folgen, falls dieser Konfidenzwert einen Schwellenwert überschreitet, unabhängig davon, ob dieser Sekundärcomputer ein widersprüchliches oder inkonsistentes Ergebnis liefert. In mindestens einer Ausführungsform, in der ein Konfidenzwert einen Schwellenwert nicht erreicht und der Primärcomputer und der Sekundärcomputer unterschiedliche Ergebnisse (z.B. einen Konflikt) anzeigen, kann eine übergeordnete MCU zwischen den Computern vermitteln, um ein geeignetes Ergebnis zu bestimmen.
  • In mindestens einer Ausführungsform kann eine übergeordnete MCU so konfiguriert sein, dass sie ein neuronales Netzwerk bzw. neuronale Netzwerke ausführt, das bzw. die so trainiert und konfiguriert ist bzw. sind, dass es bzw. sie zumindest teilweise auf der Grundlage von Ausgaben eines Primärcomputers und eines Sekundärcomputers Bedingungen bestimmt bzw. bestimmen, unter denen dieser Sekundärcomputer Fehlalarme liefert. In mindestens einer Ausführungsform kann (können) das (die) neuronale(n) Netzwerk(e) in einer übergeordneten MCU lernen, wann der Ausgabe eines Sekundärcomputers vertraut werden kann und wann nicht. Zum Beispiel kann in mindestens einer Ausführungsform, wenn dieser Sekundärcomputer ein RADAR-basiertes FCW-System ist, ein neuronales Netzwerk in dieser übergeordneten MCU lernen, wenn ein FCW-System metallische Objekte identifiziert, die in Wirklichkeit keine Gefahren sind, wie z.B. ein Abflussgitter oder ein Gullydeckel, der einen Alarm auslöst. In mindestens einer Ausführungsform kann dann, wenn ein Sekundärcomputer ein kamerabasiertes LDW-System ist, ein neuronales Netzwerk in dieser übergeordneten MCU lernen, das LDW-System zu übersteuern, wenn Radfahrer oder Fußgänger vorhanden sind und ein Verlassen der Fahrspur tatsächlich ein sicherstes Manöver ist. In mindestens einer Ausführungsform kann eine übergeordnete MCU mindestens einen DLA oder eine GPU enthalten, der/die für die Ausführung von neuronalen Netzwerken mit zugehörigem Speicher geeignet ist. In mindestens einer Ausführungsform kann eine übergeordnete MCU eine Komponente des/der SoC(s) 1604 umfassen und/oder als solche enthalten sein.
  • In mindestens einer Ausführungsform kann das ADAS-System 1638 einen Sekundärcomputer enthalten, der die ADAS-Funktionalität unter Verwendung klassischer Regeln der Computer Vision ausführt. In mindestens einer Ausführungsform kann dieser Sekundärcomputer klassische Computer-Vision-Regeln (wenn-dann bzw. if-then) verwenden, und kann das Vorhandensein eines neuronalen Netzwerks (von neuronalen Netzwerken) in einer übergeordneten MCU die Zuverlässigkeit, Sicherheit und Leistung verbessern. Zum Beispiel macht in mindestens einer Ausführungsform eine diverse Implementierung und absichtliche Nicht-Identität ein Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch Software (oder die Software-Hardware-Schnittstelle) verursacht werden. Wenn beispielsweise in mindestens einer Ausführungsform ein Softwarefehler in der auf einem Primärcomputer laufenden Software auftritt und ein nicht identischer Softwarecode, der auf einem Sekundärcomputer läuft, ein gleiches Gesamtergebnis liefert, dann kann eine übergeordnete MCU ein größeres Vertrauen haben, dass ein Gesamtergebnis korrekt ist und ein Fehler in Software oder Hardware auf diesem Primärcomputer keinen wesentlichen Fehler verursacht.
  • In mindestens einer Ausführungsform kann eine Ausgabe des ADAS-Systems 1638 in den Wahrnehmungsblock eines Primärcomputers und/oder in den Block für dynamische Fahraufgaben des Primärcomputers eingespeist werden. Wenn das ADAS-System 1638 beispielsweise eine Vorwärtsaufprallwarnung aufgrund eines unmittelbar vorausliegenden Objekts anzeigt, kann ein Wahrnehmungsblock in mindestens einer Ausführungsform diese Information bei der Identifizierung von Objekten verwenden. In mindestens einer Ausführungsform kann der Sekundärcomputer über ein eigenes neuronales Netzwerk verfügen, welches trainiert ist und somit ein Risiko von Fehlalarmen reduziert, wie hierin beschrieben.
  • In mindestens einer Ausführungsform kann das Fahrzeug 1600 außerdem ein Infotainment-SoC 1630 (z.B. ein bordeigenes Infotainment-System (IVI)) enthalten. Obwohl als SoC dargestellt und beschrieben, kann das Infotainment-System 1630 in mindestens einer Ausführungsform kein SoC sein und kann, ohne darauf beschränkt zu sein, zwei oder mehr diskrete Komponenten umfassen. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630, ohne darauf beschränkt zu sein, eine Kombination aus Hardware und Software umfassen, 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, Einparkhilfe hinten, ein Radiodatensystem, fahrzeugbezogene Informationen wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremskraftstoffstand, Ölstand, Tür öffnen/schließen, Luftfilterinformationen usw.) an Fahrzeug 1600 bereitzustellen. Das Infotainment-SoC 1630 könnte beispielsweise Radios, Plattenspieler, Navigationssysteme, Videoabspieler, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, WiFi, Audiobedienelemente am Lenkrad, eine Freisprecheinrichtung, ein Heads-Up-Anzeige („HUD“, Head-Up Display), eine HMI-Anzeige 1634, ein Telematikgerät, ein Bedienfeld (z.B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder andere Komponenten umfassen. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 außerdem verwendet werden, um dem/den Benutzer(n) des Fahrzeugs Informationen (z.B. visuell und/oder akustisch) zur Verfügung zu stellen, z.B. Informationen von dem ADAS-System 1638, Informationen zum autonomen Fahren wie beispielsweise geplante Fahrzeugmanöver, Trajektorien bzw. Bewegungsbahnen, 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 enthalten. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 über den Bus 1602 (z.B. einen CAN-Bus, Ethernet) mit anderen Geräten, Systemen und/oder Komponenten des Fahrzeugs 1600 kommunizieren. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 mit einer Überwachungs-MCU gekoppelt sein, so dass die GPU des Infotainment-Systems einige Selbstfahrfunktionen ausführen kann, wenn die primäre(n) Steuereinheit(en) 1636 (z.B. primäre und/oder Backup-Computer des Fahrzeugs 1600) ausfallen. In mindestens einer Ausführungsform kann das Infotainment-SoC 1630 das Fahrzeug 1600 in einen Chauffeur-zu-sicherem-Halt-Modus 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.) enthalten. In mindestens einer Ausführungsform kann das Kombiinstrument 1632, ohne darauf beschränkt zu sein, eine Steuereinrichtung bzw. einen Controller und/oder einen Supercomputer (z.B. eine diskrete Steuereinrichtung oder einen diskreten Supercomputer) enthalten. In mindestens einer Ausführungsform kann das Kombiinstrument 1632, ohne darauf beschränkt zu sein, eine beliebige Anzahl und Kombination von Instrumenten wie Tachometer, Kraftstoffstand, Öldruck, Drehzahlmesser, Kilometerzähler, Blinker, Schaltstellungsanzeige, Sicherheitsgurt-Warnleuchte(n), Parkbrems-Warnleuchte(n), Motor-Fehlfunktionsleuchte(n), Informationen über zusätzliche Rückhaltesysteme (z.B. Airbags), Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen usw. enthalten. In einigen Beispielen können Informationen von dem Infotainment-SoC 1630 und dem Kombiinstrument 1632 angezeigt und/oder gemeinsam genutzt werden. In mindestens einer Ausführungsform kann das Kombiinstrument 1632 als Teil des Infotainment-SoCs 1630 enthalten sein oder umgekehrt.
  • Die Inferenzierungs- und/oder Trainingslogik 715 wird verwendet, um Inferenzierungs- und/oder Trainingsoperationen in Verbindung mit einer oder mehreren Ausführungsformen durchzuführen. Einzelheiten zur Inferenzierungs- und/oder Trainingslogik 715 sind hierin nachstehend in Verbindung mit den 7A und/oder 7B bereitgestellt. In mindestens einer Ausführungsform kann die Inferenzierungs- und/oder Trainingslogik 715 im System von 16A für Inferenzierungs- oder Vorhersageoperationen verwendet werden, die zumindest teilweise auf Gewichtsparametern basieren, die unter Verwendung von Trainingsoperationen für neuronale Netzwerke, Funktionen und/oder Architekturen neuronaler Netzwerke oder hierin beschriebenen Anwendungsfällen neuronaler Netzwerke berechnet werden.
  • 16B ist ein Diagramm eines Systems 1676 für die Kommunikation zwischen dem/den Cloud-basierten Server(n) und dem autonomen Fahrzeug 1600 aus 16A, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das System 1676, ohne darauf beschränkt zu sein, den/die Server 1678, das/die Netzwerk(e) 1690 und eine beliebige Anzahl und Art von Fahrzeugen, einschließlich des Fahrzeugs 1600, umfassen. In mindestens einer Ausführungsform kann/können der/die Server 1678, ohne darauf beschränkt zu sein, eine Vielzahl von GPUs 1684(A)-1684(H) (hierin kollektiv als GPUs 1684 bezeichnet), PCIe-Switches 1682(A)-1682(H) (hierin kollektiv als PCIe-Switches 1682 bezeichnet), und/oder CPUs 1680(A)-1680(B) (hierin kollektiv als CPUs 1680 bezeichnet) umfassen. Die GPUs 1684, die CPUs 1680 und die PCIe-Switches 1682 können über Hochgeschwindigkeitsverbindungen miteinander verbunden sein, wie z.B., und ohne darauf beschränkt zu sein, die von NVIDIA entwickelten NVLink-Schnittstellen 1688 und/oder PCIe-Verbindungen 1686. In mindestens einer Ausführungsform sind die GPUs 1684 über ein NVLink- und/oder NVSwitch-SoC und die GPUs 1684 und PCIe-Switches 1682 über PCIe-Verbindungen verbunden. In mindestens einer Ausführungsform sind zwar acht GPUs 1684, zwei CPUs 1680 und vier PCIe-Switches 1682 dargestellt, dies soll jedoch nicht als beschränkend sein. In mindestens einer Ausführungsform kann jeder der Server 1678, ohne darauf beschränkt zu sein, eine beliebige Anzahl von GPUs 1684, CPUs 1680 und/oder PCIe-Switches 1682 in beliebiger Kombination enthalten. Zum Beispiel könnte(n) in mindestens einer Ausführungsform jeder (der) Server 1678 acht, sechzehn, zweiunddreißig und/oder mehr GPUs 1684 enthalten.
  • In mindestens einer Ausführungsform können der/die Server 1678 über Netzwerk(e) 1690 und von Fahrzeugen Bilddaten empfangen, die für Bilder repräsentativ sind, die unerwartete oder geänderte Straßenbedingungen, wie z.B. kürzlich begonnene Straßenarbeiten, zeigen. In mindestens einer Ausführungsform kann/können der/die Server 1678 über das/die Netzwerk(e) 1690 und an die Fahrzeuge neuronale Netzwerke 1692, aktualisierte neuronale Netzwerke 1692 und/oder Karteninformationen 1694 übertragen, einschließlich, ohne darauf beschränkt zu sein, Informationen bezüglich des Verkehrs und der Straßenbedingungen. In mindestens einer Ausführungsform können die Aktualisierungen der Karteninformationen 1694, ohne darauf beschränkt zu sein, Aktualisierungen für die HD-Karte 1622 beinhalten, wie z.B. Informationen über Baustellen, Schlaglöcher, Umleitungen, Überschwemmungen und/oder andere Hindernisse. In mindestens einer Ausführungsform können neuronale Netzwerke 1692, aktualisierte neuronale Netzwerke 1692 und/oder Karteninformationen 1694 aus neuem Training und/oder Erfahrungen resultieren, die in Daten dargestellt werden, die von einer beliebigen Anzahl von Fahrzeugen in einer Umgebung empfangen werden, und/oder zumindest teilweise auf Training basieren, das in einem Datenzentrum (z.B. unter Verwendung von Server(n) 1678 und/oder anderen Servern) durchgeführt wird.
  • In mindestens einer Ausführungsform können der/die Server 1678 verwendet werden, um Modelle für maschinelles Lernen (z.B. neuronale Netzwerke) zu trainieren, die zumindest teilweise auf Trainingsdaten basieren. In mindestens einer Ausführungsform können die Trainingsdaten von Fahrzeugen erzeugt 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 markiert (z.B. wenn das zugehörige neuronale Netzwerk von überwachtem Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen. In mindestens einer Ausführungsform wird eine beliebige Menge von Trainingsdaten nicht getaggt und/oder vorverarbeitet (z.B. wenn das zugehörige neuronale Netzwerk kein überwachtes Lernen benötigt). In mindestens einer Ausführungsform können die Modelle maschinellen Lernens, sobald sie trainiert sind, von den Fahrzeugen (z.B. durch Übertragung an die Fahrzeuge über das/die Netzwerk(e) 1690 verwendet werden, und/oder können die Modelle maschinellen Lernens von dem/den Server(n) 1678 zur Fernüberwachung der Fahrzeuge verwendet werden.
  • In mindestens einer Ausführungsform können der/die Server 1678 Daten von Fahrzeugen empfangen und Daten auf aktuelle neuronale Netzwerke in Echtzeit anwenden, um ein intelligentes Inferenzieren in Echtzeit durchzuführen. In mindestens einer Ausführungsform können Server 1678 Deep-Learning-Supercomputer und/oder dedizierte Kl-Computer umfassen, die von GPU(s) 1684 angetrieben werden, wie z.B. von NVIDIA entwickelte DGX- und DGX Station-Maschinen. In mindestens einer Ausführungsform können der/die Server 1678 jedoch auch Deep-Learning-Infrastrukturen umfassen, die CPU-betriebene Rechenzentren verwenden.
  • In mindestens einer Ausführungsform kann die Deep-Learning-Infrastruktur des/der Server(s) 1678 in der Lage sein, schnell und in Echtzeit zu inferenzieren, und kann diese Fähigkeit nutzen, um den Zustand bzw. die Gesundheit der Prozessoren, der Software und/oder der zugehörigen Hardware in dem Fahrzeug 1600 zu bewerten und zu überprüfen. Zum Beispiel kann in mindestens einer Ausführungsform die Deep-Learning-Infrastruktur periodische Aktualisierungen von dem Fahrzeug 1600 empfangen, wie z.B. eine Sequenz von Bildern und/oder Objekten, die das Fahrzeug 1600 in dieser Sequenz von Bildern lokalisiert hat (z.B. über Computer-Vision und/oder andere Machine-Learning-Objektklassifizierungsverfahren). In mindestens einer Ausführungsform kann die Deep-Learning-Infrastruktur ihr eigenes neuronales Netzwerk ausführen, um Objekte zu identifizieren und sie mit Objekten zu vergleichen, die von dem Fahrzeug 1600 identifiziert wurden, und falls die Ergebnisse nicht übereinstimmen und die Deep-Learning-Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 1600 eine Fehlfunktion aufweist, dann kann/können der/die Server 1678 ein Signal an das Fahrzeug 1600 senden, das einen ausfallsicheren Computer des Fahrzeugs 1600 anweist, die Kontrolle zu übernehmen, die Passagiere zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • In mindestens einer Ausführungsform kann/können der/die Server 1678 GPU(s) 1684 und einen oder mehrere programmierbare Inferenzbeschleuniger (z.B. TensorRT 3-Geräte von NVIDIA) enthalten. In mindestens einer Ausführungsform kann eine Kombination von GPU-betriebenen Servern und Inferenzbeschleunigung eine Echtzeit-Reaktionsfähigkeit ermöglichen. In mindestens einer Ausführungsform, z.B. wenn die Leistung weniger kritisch ist, können Server, die von CPUs, FPGAs und anderen Prozessoren betrieben werden, für die Inferenzierung verwendet werden. In mindestens einer Ausführungsform wird die Inferenzierungs- und/oder Trainingslogik 715 verwendet, um eine oder mehrere Ausführungsformen durchzuführen. Details zu der Inferenzierungs- und/oder Trainingslogik 715 werden nachstehend in Verbindung mit 7A und/oder 7B bereitgestellt.
  • Andere Variationen sind im Sinne der Erfindung. Während offenbart Techniken verschiedenen Modifikationen und alternativen Konstruktionen zugänglich sind, sind bestimmte veranschaulichte Ausführungsformen derselben in den Zeichnungen gezeigt und wurden vorstehend im Einzelnen beschrieben. Es versteht sich jedoch, dass die Offenbarung nicht auf eine bestimmte Form oder bestimmte Formen zu beschränken ist, sondern dass im Gegenteil beabsichtigt ist, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Gedanken und den Rahmen der Erfindung fallen, wie er in den beigefügten Ansprüchen definiert ist.
  • Die Verwendung der Begriffe „ein“ und „eine“ und „der“ 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 Mehrzahl umfasst, sofern hierin nichts anderes angegeben oder durch Kontext eindeutig widerlegt wird, und nicht als Definition eines Begriffs. Die Begriffe „bestehend aus“, „mit“, „einschließlich“ und „enthaltend“ sind, sofern nicht anders angegeben wird, als offene Begriffe zu verstehen (d.h. „einschließlich, aber nicht beschränkt auf“). Der Begriff „verbunden“ ist, wenn er unverändert bleibt und sich auf physische Verbindungen bezieht, als teilweise oder ganz in einem Bauteil enthalten, an ihm angebracht oder mit ihm verbunden zu verstehen, auch wenn etwas dazwischen liegt. Die Aufzählung von Wertebereichen dient lediglich als Kurzbezeichnung für jeden einzelnen Wert, der in den Bereich fällt, sofern hierin nichts anderes angegeben wird, und jeder einzelne Wert wird in die Spezifikation aufgenommen, als ob er darin einzeln aufgeführt wäre. In mindestens einer Ausführungsform ist die Verwendung des Begriffs „Menge“ (z.B. „eine Menge von Elementen“) oder „Teilmenge“, sofern nichts anderes angegeben oder durch Kontext widerlegt wird, als eine nicht leere Sammlung zu verstehen, die ein oder mehrere Elemente umfasst. Sofern nicht anders vermerkt oder durch den Kontext widerlegt, bezeichnet der Begriff „Teilmenge“ einer entsprechenden Menge nicht unbedingt eine echte Teilmenge der entsprechenden Menge, sondern Teilmenge und entsprechende Menge können gleich sein.
  • Konjunktivische Sprache, wie z.B. Phrasen der Form „mindestens eines von A, B und C“ oder „mindestens eines von A, B und C“, wird, sofern nicht ausdrücklich anders angegeben oder anderweitig eindeutig durch Kontext widersprochen, im Allgemeinen so verstanden, dass damit ausgedrückt wird, dass ein Element, ein Begriff usw. entweder A oder B oder C oder eine beliebige nicht leere Teilmenge der Menge von A und B und C sein kann. So beziehen sich z.B. im dargestellten Beispiel einer Menge mit drei Elementen die konjunktivischen Ausdrücke „mindestens eines von A, B und C“ und „mindestens eines von A, B und C“ auf eine der folgenden Mengen: {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, sofern nicht anders vermerkt oder durch Kontext widersprochen, zeigt der Begriff „Mehrzahl“ einen Zustand an, in dem er plural ist (z.B. „eine Mehrzahl von Elementen“ zeigt mehrere Elemente an). In mindestens einer Ausführungsform beträgt die Anzahl der Elemente in einer Mehrzahl mindestens zwei, kann aber auch mehr sein, wenn dies entweder explizit oder durch Kontext angegeben wird. Sofern nicht anders angegeben oder aus Kontext ersichtlich, bedeutet „basierend auf“ „zumindest teilweise basierend auf“ und nicht „ausschließlich basierend auf“.
  • Operationen der hierin beschriebenen Prozesse können in jeder geeigneten Reihenfolge ausgeführt werden, sofern hierin nicht anders angegeben oder durch eindeutig widerlegt. In mindestens einer Ausführungsform wird ein Prozess wie die hierin beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon) unter der Steuerung eines oder mehrerer Computersysteme 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 der Code auf einem computerlesbaren Speichermedium gespeichert, z.B. in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die von einem oder mehreren Prozessoren ausgeführt werden können. In mindestens einer Ausführungsform ist ein computerlesbares Speichermedium ein nicht-transitorisches computerlesbares Speichermedium, das transitorische Signale (z.B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nicht-transitorische Datenspeicherschaltungen (z.B. Puffer, Cache und Warteschlangen) innerhalb von Transceivern für transitorische Signale enthält. In mindestens einer Ausführungsform ist Code (z.B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nicht-transitorischen, computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen (oder ein anderer Speicher zum Speichern von ausführbaren Anweisungen) gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren eines Computersystems ausgeführt werden (d.h. als Ergebnis der Ausführung), das Computersystem veranlassen, hierin beschriebene Operationen durchzuführen. In mindestens einer Ausführungsform umfasst ein Satz nicht-transitorischer computerlesbarer Speichermedien mehrere nicht-transitorische computerlesbare Speichermedien, und einem oder mehreren der einzelnen nicht-transitorischen Speichermedien mehrerer nicht-transitorischer computerlesbarer Speichermedien fehlt der gesamte Code, während mehrere nicht-transitorische computerlesbare Speichermedien gemeinsam den gesamten Code speichern. In mindestens einer Ausführungsform werden ausführbare Befehle so ausgeführt, dass verschiedene Befehle von verschiedenen Prozessoren ausgeführt werden - zum Beispiel speichert ein nicht-transitorisches computerlesbares Speichermedium Befehle und führt eine zentrale Verarbeitungseinheit („CPU“) einige der Befehle aus, während eine Grafikverarbeitungseinheit („GPU“) andere Befehle ausführt. In mindestens einer Ausführungsform weisen verschiedene Komponenten eines Computersystems separate Prozessoren auf und führen verschiedene Prozessoren verschiedene Teilmengen von Befehlen aus.
  • Demgemäß sind in mindestens einer Ausführungsform Computersysteme so konfiguriert, dass sie einen oder mehrere Dienste implementieren, die einzeln oder gemeinsam Operationen der hierin beschriebenen Prozesse durchführen, und sind solche Computersysteme mit anwendbarer Hardware und/oder Software konfiguriert, die die Durchführung von Operationen ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der Erfindung implementiert, ein einzelnes Gerät und in einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Geräte umfasst, die unterschiedlich arbeiten, so dass das verteilte Computersystem die hierin beschriebenen Operationen durchführt und ein einzelnes Gerät nicht alle Operationen durchführt.
  • Die Verwendung von Beispielen oder beispielhaften Formulierungen (z.B. „wie beispielsweise“) dient lediglich der besseren Veranschaulichung von Ausführungsformen der Erfindung und stellt keine Beschränkung des Umfangs der Erfindung dar, sofern nicht anders angegeben. Keine Formulierung in der Beschreibung ist so auszulegen, dass ein nicht beanspruchtes Element als wesentlich für die Praxis der Erfindung angesehen wird.
  • Alle Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, die hierin 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 hierin 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 Begriffe nicht als Synonyme füreinander gedacht sind. Vielmehr kann in bestimmten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem oder indirektem physischem oder elektrischem Kontakt zueinander stehen. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt zueinander stehen, aber dennoch miteinander kooperieren 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 eines ähnlichen elektronischen Rechengeräts, 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 beschränkende Beispiele kann „Prozessor“ eine CPU oder eine GPU sein. Eine „Datenverarbeitungsplattform“ kann einen oder mehrere Prozessoren umfassen. Wie hierin 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 beziehen, um Anweisungen nacheinander oder parallel, kontinuierlich oder intermittierend auszuführen. 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, Computersystem 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 Implementierungen kann der Prozess des Erhaltens, Erlangens, Empfangens oder Eingebens von analogen oder digitalen Daten durch die Übertragung von Daten über eine serielle oder parallele Schnittstelle durchgeführt 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 Computernetzwerk von der bereitstellenden Einheit zur erfassenden Einheit durchgeführt werden. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren analoger oder digitaler Daten Bezug genommen werden. In verschiedenen Beispielen kann der Prozess des Bereitstellens, Ausgebens, Übertragens, Sendens oder Darstellens analoger oder digitaler Daten durch die Übertragung von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Anwendungsprogrammierschnittstelle oder eines Inter-Prozess-Kommunikationsmechanismus 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. Obwohl vorstehend zu Diskussionszwecken spezifische Verteilungen von Verantwortlichkeiten definiert sind, können verschiedene Funktionen und Verantwortlichkeiten je nach den Umständen auf unterschiedliche Weise 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 ferner, dass der in den beigefügten Ansprüchen beanspruchte Gegenstand nicht notwendigerweise auf bestimmte beschriebene Merkmale oder Handlungen beschränkt ist. Vielmehr werden bestimmte Merkmale und Handlungen als beispielhafte Ausführungsformen der Ansprüche offenbart.

Claims (20)

  1. Computerimplementiertes Verfahren, umfassend: Empfangen von Bilddaten, die eine Darstellung des Gesichts einer Person über einen Zeitraum enthalten; Bestimmen eines Satzes von Blinzelparametern für die Person aus mindestens einem Teil der Bilddaten; Bestimmen von Kontextdaten für einen Zeitpunkt, zu dem die Bilddaten erzeugt wurden, wobei sich die Kontextdaten auf eine oder mehrere Umgebungsbedingungen beziehen; und Weiterleiten des Satzes von Blinzelparametern und der Kontextdaten an mindestens ein erstes temporales Netzwerk, um mindestens eine erste Schläfrigkeitsvorhersage für die Person zu erzeugen, wobei die Kontextdaten verwendet werden, um Variationen in dem Satz von Blinzelparametern aufgrund der einen oder mehreren Umgebungsbedingungen zu berücksichtigen.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei sich die eine oder mehreren Umgebungsbedingungen auf mindestens eines beziehen von: einer Straßenkonfiguration, die Helligkeit, das Wetter, die Tageszeit, den Ort, die Geschwindigkeit oder die Anzahl von umgebenden Objekten.
  3. Computerimplementiertes Verfahren nach Anspruch 1 oder 2, ferner umfassend: Bestimmen der einen oder mehreren Umgebungsbedingungen unter Verwendung von Daten von einer oder mehreren Kameras, Sensoren, Global Positioning System (GPS)-Signalen oder Netzwerkdatenquellen.
  4. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Bestimmen eines Blinzelszenarios basierend zumindest teilweise auf der einen oder den mehreren Umgebungsbedingungen; und Bestimmen der ersten Schläfrigkeitsvorhersage unter Verwendung eines oder mehrerer Blinzelschwellenwerte, die dem Blinzelszenario entsprechen.
  5. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Bestimmen einer Identität der Person unter Verwendung des Bilds; Identifizieren eines Blinzelprofils für die Person einschließlich eines oder mehrerer Blinzelverhalten, die für die Person spezifisch sind; und Erzeugen mindestens der ersten Schläfrigkeitsvorhersage basierend ferner auf Daten für das eine oder die mehreren Blinzelverhalten.
  6. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Identifizieren eines Satzes von Gesichtsmerkmalen in den Bilddaten; Bestimmen von Augenzustandsinformationen aus den Bilddaten, die anzeigen, ob die Augen der Person ganz oder teilweise geöffnet oder geschlossen sind; Bestimmen von Kopfhaltungsinformationen für die Person aus den Bilddaten; Bestimmen des Satzes von Blinzelparametern basierend zumindest teilweise auf dem Satz von Gesichtsmerkmalen, den Kopfhaltungsinformation und den Augenzustandsinformationen; Bestimmen von Blinzelhäufigkeitsinformationen für den letzten Zeitraum aus den Augenzustandsinformationen; Weiterleiten des Satzes von Blinzelparametern an das erste temporale Netzwerk, um die erste Schläfrigkeitsvorhersage für die Person zu erzeugen; Weiterleiten der Blinzelhäufigkeitsinformationen an ein zweites temporales Netzwerk, um eine zweite Schläfrigkeitsvorhersage für die Person zu erzeugen; und Bereitstellen einer Gesamtschläfrigkeitsbestimmung für die Person basierend zumindest teilweise auf der ersten Schläfrigkeitsvorhersage und der zweiten Schläfrigkeitsvorhersage.
  7. Computerimplementiertes Verfahren nach Anspruch 6, wobei das erste temporale Netzwerk und das zweite temporale Netzwerk Long Short Term Memory (LSTM)-Netzwerke sind, und wobei die erste Schläfrigkeitsvorhersage und die zweite Schläfrigkeitsvorhersage, die von den LSTM-Netzwerken erzeugt werden, Karolinska-Schläfrigkeitsskala (KSS)-Werten entsprechen.
  8. Computerimplementiertes Verfahren nach Anspruch 6 oder 7, wobei mindestens eine Teilmenge des Satzes von Blinzelparametern unter Verwendung von Seitenverhältnisinformationen bestimmt wird, die aus dem Satz von Gesichtsmerkmalen berechnet werden.
  9. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei die Kontextdaten als Eingabe für das erste temporale Netzwerk in Form eines oder mehrerer Merkmalsvektoren bereitgestellt werden, die aus den Kontextdaten bestimmt werden.
  10. System, umfassend: eine Kamera zum Erfassen von Bilddaten einschließlich einer Darstellung des Gesichts einer Person über einen Zeitraum; einen oder mehrere Prozessoren; und Speicher mit Anweisungen, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das System veranlassen zum: Bestimmen eines Satzes von Blinzelparametern für die Person aus mindestens einem Teil der Bilddaten; Bestimmen von Kontextdaten für einen Zeitpunkt, zu dem die Bilddaten erfasst wurden, wobei sich die Kontextdaten auf eine oder mehrere Umgebungsbedingungen beziehen; und Erzeugen, unter Verwendung des Satzes von Blinzelparametern und der Kontextdaten mit mindestens einem ersten temporalen Netzwerk, mindestens einer ersten Schläfrigkeitsvorhersage für die Person, wobei die Kontextdaten verwendet werden, um Variationen in dem Satz von Blinzelparametern aufgrund der einen oder der mehreren Umgebungsbedingungen zu berücksichtigen.
  11. System nach Anspruch 10, wobei die Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das System ferner veranlassen zum: Bestimmen der einen oder der mehreren Umgebungsbedingungen unter Verwendung von Daten von einer oder mehreren Kameras, Sensoren, Global Positioning System (GPS)-Signalen oder Netzwerkdatenquellen, wobei sich die einen oder mehreren Umgebungsbedingungen auf mindestens eines beziehen von: einer Straßenkonfiguration, die Helligkeit, das Wetter, die Tageszeit, den Ort, die Geschwindigkeit oder die Anzahl von umgebenden Objekten.
  12. System nach Anspruch 10 oder 11, wobei die Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das System ferner veranlassen zum: Bestimmen eines Blinzelszenarios basierend zumindest teilweise auf der einen oder den mehreren Umgebungsbedingungen; und Bestimmen der ersten Schläfrigkeitsvorhersage unter Verwendung eines oder mehrerer Blinzelschwellenwerte, die dem Blinzelszenario entsprechen.
  13. System nach einem der Ansprüche 10 bis 12, wobei die Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das System ferner veranlassen zum: Bestimmen der Identität der Person unter Verwendung des Bilds; Identifizieren eines Blinzelprofils für die Person, einschließlich eines oder mehrerer Blinzelverhalten, die für die Person spezifisch sind; und Erzeugen mindestens der ersten Schläfrigkeitsvorhersage basierend ferner auf Daten für das eine oder die mehreren Blinzelverhalten.
  14. System nach einem der Ansprüche 10 bis 13, wobei die Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das System ferner veranlassen zum: Identifizieren eines Satzes von Gesichtsmerkmalen in den Bilddaten; Bestimmen, aus den Bilddaten, von Augenzustandsinformationen, die angeben, ob die Augen der Person ganz oder teilweise geöffnet oder geschlossen sind; Bestimmen, aus den Bilddaten, von Kopfhaltungsinformationen für die Person; Bestimmen des Satzes von Blinzelparametern basierend zumindest teilweise auf dem Satz von Gesichtsmerkmalen, den Kopfhaltungsinformation und den Augenzustandsinformationen; Bestimmen von Blinzelhäufigkeitsinformationen für den letzten Zeitraum aus den Augenzustandsinformationen; Weiterleiten des Satzes von Blinzelparametern an das erste temporale Netzwerk, um die erste Schläfrigkeitsvorhersage für die Person zu erzeugen; Weiterleiten der Blinzelhäufigkeitsinformationen an ein zweites zeitliches Netzwerk, um eine zweite Schläfrigkeitsvorhersage für die Person zu erzeugen; und Bereitstellen einer Gesamtschläfrigkeitsbestimmung für die Person basierend zumindest teilweise auf der ersten Schläfrigkeitsvorhersage und der zweiten Schläfrigkeitsvorhersage.
  15. System nach Anspruch 14, wobei das erste zeitliche Netzwerk und das zweite zeitliche Netzwerk Long Short Term Memory (LSTM)-Netzwerke sind, und wobei die erste Schläfrigkeitsvorhersage und die zweite Schläfrigkeitsvorhersage, die von den LSTM-Netzwerken erzeugt werden, den Karolinska-Schläfrigkeitsskala (KSS)-Werten entsprechen.
  16. System nach einem der Ansprüche 10 bis 15, wobei das System mindestens eines umfasst von: einem System zum Durchführen von Simulationsoperationen; einem System zum Durchführen von Simulationsoperationen zum Prüfen oder Validieren von Anwendungen autonomer Maschinen; einem System zum Rendern grafischer Ausgaben; einem System zum Durchführen von Deep-Learning-Operationen; einem System, das unter Verwendung einer Edge-Vorrichtung implementiert ist; einem System, das eine oder mehrere virtuelle Maschinen (VMs) integriert; einem System, das zumindest teilweise in einem Rechenzentrum implementiert ist; oder einem System, das zumindest teilweise unter Verwendung von Cloud-Computing-Ressourcen implementiert ist.
  17. Nichttransitorisches, computerlesbares Speichermedium mit Anweisungen, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen zum: Erhalten von Bilddaten, die eine Darstellung des Gesichts einer Person über einen Zeitraum enthalten; Bestimmen eines Satzes von Blinzelparametern für die Person aus mindestens einem Teil der Bilddaten; Bestimmen von Kontextdaten für einen Zeitpunkt, zu dem die Bilddaten erzeugt wurden, wobei sich die Kontextdaten auf eine oder mehrere Umgebungsbedingungen beziehen; und Erzeugen, unter Verwendung des Satzes von Blinzelparametern und der Kontextdaten mit mindestens einem ersten temporalen Netzwerk, mindestens einer ersten Schläfrigkeitsvorhersage für die Person, wobei die Kontextdaten verwendet werden, um Variationen in dem Satz von Blinzelparametern aufgrund der einen oder mehreren Umgebungsbedingungen zu berücksichtigen.
  18. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 17, wobei die Anweisungen, wenn sie ausgeführt werden, ferner den einen oder die mehreren Prozessoren veranlassen zum: Bestimmen der einen oder mehreren Umgebungsbedingungen unter Verwendung von Daten von einer oder mehreren Kameras, Sensoren, Global Positioning System (GPS)-Signalen oder Netzwerkdatenquellen., wobei sich die einen oder mehreren Umgebungsbedingungen auf mindestens eines beziehen von: eine Straßenkonfiguration, die Helligkeit, das Wetter, die Tageszeit, den Ort, die Geschwindigkeit oder die Anzahl von umgebenden Objekten..
  19. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 17 oder 18, wobei die Anweisungen, wenn sie ausgeführt werden, ferner den einen oder die mehreren Prozessoren veranlassen zum: Bestimmen, unter Verwendung des Bilds, der Identität der Person; Identifizieren eines Blinzelprofils für die Person einschließlich eines oder mehrerer Blinzelverhalten, die für die Person spezifisch sind; und Erzeugen mindestens der ersten Schläfrigkeitsvorhersage basierend ferner auf Daten für das eine oder die mehreren Blinzelverhalten.
  20. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 17 bis 19, wobei die Befehle, wenn sie ausgeführt werden, ferner den einen oder die mehreren Prozessoren veranlassen zum: Identifizieren eines Satzes von Gesichtsmerkmalen in den Bilddaten; aus Bestimmen, aus den Bilddaten, von Augenzustandsinformationen, die angeben, ob die Augen der Person ganz oder teilweise geöffnet oder geschlossen sind; Bestimmen, aus den Bilddaten, von Kopfhaltungsinformationen für die Person; Bestimmen des Satzes von Blinzelparametern basierend zumindest teilweise auf dem Satz von Gesichtsmerkmalen, den Kopfhaltungsinformationen und den Augenzustandsinformationen; Bestimmen, aus den Augenzustandsinformationen, von Blinzelhäufigkeitsinformationen für den letzten Zeitraum; Weiterleiten des Satzes von Blinzelparametern an das erste temporale Netzwerk, um die erste Schläfrigkeitsvorhersage für die Person zu erzeugen; Weiterleiten der Blinzelhäufigkeitsinformationen an ein zweites zeitliches Netzwerk, um eine zweite Schläfrigkeitsvorhersage für die Person zu erzeugen; und Bereitstellen einer Gesamtschläfrigkeitsbestimmung für die Person basierend zumindest teilweise auf der ersten Schläfrigkeitsvorhersage und der zweiten Schläfrigkeitsvorhersage.
DE102022121251.3A 2021-08-24 2022-08-23 Kontextbasierte Zustandsschätzung Pending DE102022121251A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/410,580 2021-08-24
US17/410,580 US20230065399A1 (en) 2021-08-24 2021-08-24 Context-based state estimation

Publications (1)

Publication Number Publication Date
DE102022121251A1 true DE102022121251A1 (de) 2023-03-02

Family

ID=85174794

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022121251.3A Pending DE102022121251A1 (de) 2021-08-24 2022-08-23 Kontextbasierte Zustandsschätzung

Country Status (4)

Country Link
US (1) US20230065399A1 (de)
JP (1) JP2023031259A (de)
CN (1) CN115719486A (de)
DE (1) DE102022121251A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018203287B4 (de) * 2018-03-06 2024-03-07 Audi Ag Verfahren und System zum Betreiben einer Spurhalteassistenzvorrichtung eines Kraftfahrzeugs
US11830259B2 (en) * 2021-08-24 2023-11-28 Nvidia Corporation Robust state estimation
KR20230129787A (ko) * 2022-03-02 2023-09-11 현대모비스 주식회사 실내등 제어시스템 및 이의 제어방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPR872301A0 (en) * 2001-11-08 2001-11-29 Sleep Diagnostics Pty Ltd Alertness monitor
US8102417B2 (en) * 2006-10-25 2012-01-24 Delphi Technologies, Inc. Eye closure recognition system and method
JP2018128974A (ja) * 2017-02-10 2018-08-16 トヨタ自動車株式会社 ドライバ状態監視装置
US20200151474A1 (en) * 2017-07-31 2020-05-14 Alcohol Countermeasure Systems (International) Inc. Non-intrusive assessment of fatigue in drivers using eye tracking
US10538259B2 (en) * 2018-03-28 2020-01-21 Deuta America Corp Fit-for-duty detection and alerting system for rail and transit
CN113474787A (zh) * 2019-01-22 2021-10-01 阿达姆认知科技有限公司 驾驶员的认知状态的检测
US11881036B2 (en) * 2021-01-01 2024-01-23 Nauto, Inc. Devices and methods for detecting drowsiness of drivers of vehicles
US20220230522A1 (en) * 2021-01-18 2022-07-21 Seeing Machines Limited Flight Crew Fatigue And Controlled Rest Management System
US11945435B2 (en) * 2021-06-15 2024-04-02 Nauto, Inc. Devices and methods for predicting collisions and/or intersection violations
EP4142260B1 (de) * 2021-08-23 2024-07-31 Nokia Technologies Oy Erkennung von sidelink-angriffen

Also Published As

Publication number Publication date
US20230065399A1 (en) 2023-03-02
CN115719486A (zh) 2023-02-28
JP2023031259A (ja) 2023-03-08

Similar Documents

Publication Publication Date Title
DE102021126648A1 (de) Imitationstraining mittels synthetischen daten
US20230342941A1 (en) Shape fusion for image analysis
DE102021121558A1 (de) Auf neuronalen netzen basierende bestimmung der blickrichtung unter verwendung räumlicher modelle
DE102021126254A1 (de) Überwachen der Aufmerksamkeit und der kognitiven Belastung der Insassen für autonome und halbautonome Fahranwendungen
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE102021117456A1 (de) Systeme und verfahren zur risikobewertung und gerichteten warnung bei fussgängerüberwegen
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE102020120201A1 (de) Blickerkennung unter verwendung eines oder mehrerer neuronaler netzwerke
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE102021125234A1 (de) Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe
DE102022121251A1 (de) Kontextbasierte Zustandsschätzung
DE102022121121A1 (de) Objektverfolgung unter Verwendung von LiDAR-Daten für autonome Maschinenanwendungen
US11830259B2 (en) Robust state estimation
US20230078218A1 (en) Training object detection models using transfer learning
DE102022111322A1 (de) Engine für adaptive maschinelle lernmodelle zur augenverfolgung
DE102022124361A1 (de) Sichtweiteabschätzung unter verwendung von deep learning in autonomen maschinenanwendungen
DE102020130749A1 (de) System zum maschinellen lernen zur blickbestimmung mit adaptiver gewichtung von eingaben
DE102020131353A1 (de) Auf einem neuronalen netz basierende gesichtsanalyse mittels gesichtslandmarken und zugehörigen vertrauenswerten
DE102022131123A1 (de) Konsistentes sampling für räumliches hashing
DE102022117298A1 (de) Zusammenfügungsqualitätsbewertung für rundumsichtsysteme
DE102022129438A1 (de) Partikelbasierte Gefahrenerfassung für autonome Maschinenanwendungen
DE102021128559A1 (de) Sicherheitszerlegung zur pfadbestimmung in autonomen systemen

Legal Events

Date Code Title Description
R012 Request for examination validly filed