DE102022123434A1 - Gemeinsame Schätzung von Herzfrequenz und Atemfrequenz unter Verwendung neuronaler Netze - Google Patents

Gemeinsame Schätzung von Herzfrequenz und Atemfrequenz unter Verwendung neuronaler Netze Download PDF

Info

Publication number
DE102022123434A1
DE102022123434A1 DE102022123434.7A DE102022123434A DE102022123434A1 DE 102022123434 A1 DE102022123434 A1 DE 102022123434A1 DE 102022123434 A DE102022123434 A DE 102022123434A DE 102022123434 A1 DE102022123434 A1 DE 102022123434A1
Authority
DE
Germany
Prior art keywords
heart rate
computer
subject
attention
rate
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
DE102022123434.7A
Other languages
English (en)
Inventor
Yuzhuo Ren
Niranjan Avadhanam
Rajath Bellipady Shetty
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 DE102022123434A1 publication Critical patent/DE102022123434A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • 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/02Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
    • A61B5/024Detecting, measuring or recording pulse rate or heart rate
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/08Detecting, measuring or recording devices for evaluating the respiratory organs
    • A61B5/0816Measuring devices for examining respiratory frequency
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/08Detecting, measuring or recording devices for evaluating the respiratory organs
    • A61B5/087Measuring breath flow
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0012Biomedical image inspection
    • G06T7/0014Biomedical image inspection using an image reference approach
    • G06T7/0016Biomedical image inspection using an image reference approach involving temporal comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • 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
    • G16H40/67ICT 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 for remote operation
    • 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/70ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30088Skin; Dermal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Landscapes

  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Public Health (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Pathology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Veterinary Medicine (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Physiology (AREA)
  • Epidemiology (AREA)
  • Primary Health Care (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Cardiology (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radiology & Medical Imaging (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Pulmonology (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Signal Processing (AREA)
  • Fuzzy Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Psychiatry (AREA)
  • Quality & Reliability (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Image Analysis (AREA)

Abstract

Ein neuronales Netzwerksystem nutzt die doppelte Aufmerksamkeit, insbesondere sowohl eine räumliche Aufmerksamkeit als auch Kanalaufmerksamkeit, um gemeinsam die Herzfrequenz und Atemfrequenz eines Probanden durch Verarbeiten von Bildern des Probanden zu schätzen. Ein neuronales Bewegungsnetz empfängt Bilder des Probanden und schätzt die Herzfrequenz und Atemfrequenz des Probanden, indem es sowohl räumliche als auch Kanalbereichs-Aufmerksamkeitsmasken verwendet, um die Verarbeitung auf bestimmte Merkmalsdaten zu konzentrieren. Ein neuronales Erscheinungsbildnetz berechnet eine räumliche Aufmerksamkeitsmaske aus den Bildern des Probanden und kann anzeigen, dass Merkmale, die mit dem Gesicht des Probanden verbunden sind (im Gegensatz zu den Haaren oder Schultern des Probanden), die Herz- und/oder Atemfrequenz genau schätzen. Die kanalweise Bereichsaufmerksamkeit wird während des Trainings erlernt und kalibriert die kanalweisen Merkmalsantworten neu, um die informativsten Merkmale für die Verarbeitung auszuwählen. Die Kanalaufmerksamkeitsmaske wird während des Trainings erlernt und kann während des Einsatzes für verschiedene Probanden verwendet werden.

Description

  • Hintergrund
  • Die Messung der Herzfrequenz und Atemfrequenz ist ein entscheidender Schritt zur Diagnose vieler Krankheiten und Leiden. Berührungslose kamerabasierte physiologische Messungen sind in der Regel im Vergleich zu Kontaktinstrumenten, wie z. B. Fingerspitzen-Oxymetern, für die Telemedizin leichter zugänglich und bequemer, da berührungslose Methoden das Infektionsrisiko verringern. Die Messung physiologischer Signale aus der Ferne ist jedoch aufgrund von Schwankungen der Umgebungsbeleuchtung, Kopfbewegungen, Gesichtsausdruck usw. eine Herausforderung. Es besteht die Notwendigkeit, diese Probleme und/oder andere mit dem Stand der Technik verbundene Probleme zu lösen.
  • Zusammenfassung
  • Ausführungsformen der vorliegenden Offenbarung betreffen Techniken zur verbesserten gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz. Es werden Systeme und Verfahren offenbart, die ein neuronales Netzwerksystem zur Schätzung sowohl der Herzfrequenz als auch der Atemfrequenz (z. B. der Atmung) mit höherer Genauigkeit und geringerer Systemkomplexität und Latenzzeit im Vergleich zu herkömmlichen Systemen bereitstellen. Das neuronale Netzwerksystem nutzt die doppelte Aufmerksamkeit, insbesondere die räumliche Aufmerksamkeit und die Kanalaufmerksamkeit, um die Herzfrequenz und Atemfrequenz eines Probanden durch die Verarbeitung eines Videos des Probanden gemeinsam zu schätzen.
  • Gemäß Ausführungsformen verwendet ein Erfassungsnetz eine Folge von Bildern des Probanden und Zeitstempel der Bilder. Begrenzungsrahmen und Merkmale oder Orientierungspunkte (z. B. Gesichtsmerkmale) werden unter Verwendung des Erfassungsnetzwerks für den Probanden erzeugt. Aus den Begrenzungsrahmen zusammenhängender oder nahezu zusammenhängender Frames wird eine Bewegungskarte erstellt, die eine Bewegung der Merkmale zwischen den Frames codiert. Aus der Folge von Bildern werden eine Erscheinungsbildkarte, die das Erscheinungsbild (z. B. als Durchschnitt der Farbwerte einer Pixelposition) eines Probanden codiert, und eine Hautsegmentierungsmaske erzeugt, die eine binäre semantische Maske von Regionen innerhalb der Bilder enthält, die die Haut eines Probanden darstellen. Unter Verwendung der Erscheinungsbildkarte und der Hautsegmentierungsmaske berechnet ein neuronales Netzwerk aus den Bildern des Probanden eine räumliche Aufmerksamkeitsmaske, die Merkmale anzeigen kann, die mit dem Gesicht des Probanden verbunden sind (im Gegensatz zu den Haaren oder Schultern des Probanden), um die Positionen von Pixeln, die Merkmalen des Gesichts des Probanden entsprechen, präzise zu schätzen. Ein neuronales Bewegungsnetz verwendet die Bewegungskarte und die Folge der Bilder, um die Herzfrequenz und die Atemfrequenz des Probanden in den Bildern zu schätzen. Die räumlichen Aufmerksamkeitsmasken werden einem Bewegungsnetz bereitgestellt, um einen Fokus des neuronalen Bewegungsnetzes zu lenken, wodurch Ergebnisse mit höherer Genauigkeit, besserer Präzision und größerer Effizienz erzielt werden, als dies mit herkömmlichen Systemen möglich ist. Im Gegensatz zu herkömmlichen Systemen, wie den oben beschriebenen, wird die Genauigkeit der Schätzungen durch Anwendung eines Aufmerksamkeitsmechanismus sowohl im räumlichen Bereich als auch im kanalweisen Bereich verbessert. Die Aufmerksamkeit im räumlichen Bereich verbessert die räumliche Codierung, die Gesichtsregionen lokalisiert, die eine starke physiologische Signalantwort enthalten. Die Aufmerksamkeit im kanalweisen Bereich rekalibriert die kanalweisen Merkmalsantworten, um die informativsten Merkmale auszuwählen. Die Kanalaufmerksamkeitsmaske wird während des Trainings erlernt und kann während des Einsatzes für verschiedene Probanden verwendet werden.
  • In einer Ausführungsform lernt das neuronale Netzwerksystem, die Herzfrequenz und Atemfrequenz auf der Grundlage einer Korrelation zwischen den beiden Frequenzen zu schätzen. In einer Ausführungsform wird die Genauigkeit des neuronalen Netzsystems verbessert, wenn die räumliche Aufmerksamkeit auf einer Hautsegmentierungsmaske basiert, die einen Bereich identifiziert, der die Gesichtshaut (Stirn, Wangen und Nase), den Hals und die Brust umfasst, um zusätzliche Daten (z. B. die Blutzirkulation) für die Schätzung der Herzfrequenz und Atemfrequenz bereitzustellen.
  • Es werden ein Verfahren, ein computerlesbares Medium und ein System zum gemeinsamen Schätzen mindestens einer Herzfrequenz oder einer Atemfrequenz eines Probanden offenbart. In einer Ausführungsform wird eine Folge von Bildern des Probanden durch Schichten eines neuronalen Bewegungsnetzmodells verarbeitet, um Kanäle von Merkmalsvektoren in zwei räumlichen Dimensionen zu erzeugen, und eine erlernte Kanalaufmerksamkeitsmaske wird auf die Kanäle der Merkmalsvektoren angewendet, um gemeinsam mindestens eine geschätzte Herzfrequenz oder eine geschätzte Atemfrequenz für den Probanden zu erzeugen.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zur gemeinsamen Schätzung der Herzfrequenz und der Atemfrequenz werden im Folgenden unter Bezugnahme auf die beigefügten Figuren im Detail beschrieben, wobei:
    • 1A stellt ein Blockdiagramm eines beispielhaften Netzwerksystems zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz dar, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
    • 1B stellt räumliche Aufmerksamkeitskarten dar, die zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet sind.
    • 1C stellt ein Flussdiagramm eines Verfahrens zur gemeinsamen Schätzung von Herzfrequenz und Atemfrequenz gemäß einer Ausführungsform dar.
    • 2A stellt ein Blockdiagramm eines weiteren beispielhaften Netzwerksystems zur gemeinsamem Schätzung der Herzfrequenz und Atemfrequenz dar, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
    • 2B stellt ein Flussdiagramm eines anderen Verfahrens zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz gemäß einer Ausführungsform dar.
    • 2C stellt eine Frequenzbeziehung zwischen Herz- und Atemfrequenzen dar, die sich zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung eignet.
    • 2D stellt eine Verteilung der Verhältnisse zwischen Herz- und Atemfrequenzen dar, die sich zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung eignet.
    • 3A stellt ein Blockdiagramm einer Trainingskonfiguration für das Netzwerksystem zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz dar, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
    • 3B stellt ein weiteres Flussdiagramm eines Verfahrens zum Trainieren des Netzwerksystems zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz dar, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
    • 4 stellt eine beispielhafte Parallelverarbeitungseinheit dar, die zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
    • 5A ist ein konzeptionelles Diagramm eines Verarbeitungssystems, das unter Verwendung der PPU von 4 implementiert wurde und zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
    • 5B stellt ein beispielhaftes System dar, in dem die verschiedenen Architekturen und/oder Funktionen der verschiedenen vorangegangenen Ausführungsformen implementiert werden können.
    • 5C stellt die Komponenten eines beispielhaften Systems dar, das in mindestens einer Ausführungsform verwendet werden kann, um maschinelles Lernen zu trainieren und zu nutzen.
    • 6 stellt ein beispielhaftes Streaming-System dar, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
  • Detaillierte Beschreibung
  • Es werden Systeme und Methoden für ein Netzwerk zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz offenbart. Es gibt viele Anwendungsfälle für die Schätzung der Herz- und/oder Atemfrequenz, insbesondere in Automobil-, Gesundheits- und Spieleumgebungen. In einer Kraftfahrzeugumgebung kann die Schätzung der Herzfrequenz und Atemfrequenz verwendet werden, um den Stress, die Müdigkeit oder die Untauglichkeit des Fahrers zu überwachen. Auf der Grundlage der Schätzungen können Manöver mit minimalem Risiko eingeleitet werden (z. B. Musikwechsel, Änderung der Bremseinstellungen, Anhalten, Notruf usw.). Die Schätzung der Herzfrequenz und Atemfrequenz kann auch zur Erkennung der Anwesenheit von Kindern verwendet werden. In einer Spielumgebung können Herzfrequenz und Atemfrequenzmessung verwendet werden, um den Grad des Engagements und/oder der Erregung eines Benutzers zu messen. Im Gesundheitswesen kann die Schätzung der Herzfrequenz und Atemfrequenz für telemedizinische oder berührungslose Untersuchungen vor Ort verwendet werden.
  • Die berührungslose kamerabasierte physiologische Messung ist ein aktives Forschungsgebiet, das insbesondere bei Pandemien und der zunehmenden Popularität der medizinischen Fernbetreuung große Aufmerksamkeit auf sich zieht. Die berührungslose kamerabasierte physiologische Messung verringert das Infektionsrisiko und ermöglicht Telemedizin und Gesundheitsüberwachung aus der Ferne. Das zugrundeliegende Prinzip der kamerabasierten physiologischen Messung ist die Erfassung feiner Veränderungen der Hautfarbe oder feiner Bewegungen, die durch den Blutkreislauf und die Atmung verursacht werden. Die Veränderungen der Hautfarbe und die Bewegungen entsprechen den Veränderungen der Lichtreflexion. Bildgebende Verfahren können zur Messung volumetrischer Veränderungen des Blutes auf der Hautoberfläche eingesetzt werden, indem subtile Veränderungen der Hautfarbe und Bewegungen aufgrund des Blutflusses und der Atmung erfasst werden.
  • Die Technologien der bildgebenden Photoplethysmographie (iPPG) und der Fern-Photoplethysmographie (rPPG) beruhen auf der Messung feiner Veränderungen des von der Haut reflektierten Lichts. Die Technologie des bildgebenden Ballistokardiogramms (iBCG) basiert auf der Messung der mechanischen Kraft des Blutes, das durch den Körper gepumpt wird und feine Bewegungen verursacht. Sowohl die Herz- als auch die Atemfrequenz können mit iPPG-, rPPG- und/oder iBCG-basierten Methoden ermittelt werden. Die kamerabasierte Schätzung der Herzfrequenz und Atemfrequenz ist eine Herausforderung, da die Änderung der Hautfarbe und die durch die Blutzirkulation verursachten Bewegungen so subtil sein können, dass sie leicht durch Beleuchtungsschwankungen, Kopfbewegungen, Gesichtsausdruck usw. verfälscht werden.
  • Für das theoretische optische Prinzip des Modells kann das dichromatische Reflexionsmodell (DRM) von Shafer verwendet werden, um Lichtreflexion und physiologische Signale zu modellieren. Ein RGB-Farbwert (rot, grün, blau) des k-ten Hautpixels in einem Bild kann durch eine zeitlich veränderliche Funktion definiert werden: C k ( t ) = I ( t ) v s ( t ) + v d ( t ) + v n ( t ) I ( t ) = I 0 ( 1 + Ψ ( m ( t ) , Θ ( b ( t ) , r ( t ) ) ) ) v s ( t ) = ( u s ( s 0 + Φ ( m ( t ) , Θ ( b ( t ) , r ( t ) ) ) ) ) v d ( t ) = ( u d d 0 + u p ( Θ ( b ( t ) , r ( t ) ) ) )
    Figure DE102022123434A1_0001
    wobei Ck(t) einen Vektor der RGB-Werte bezeichnet; I(t) die Beleuchtungsstärke ist; vs(t) und vd (t) die spiegelnde bzw. diffuse Reflexion sind; vn (t) das Quantisierungsrauschen des Kamerasensors bezeichnet. I(t), vs(t) und vd(t) lassen sich alle in einen stationären Teil I0, us · s0, ud · d0 und einen zeitvariablen Teil (I0 · Ψ (·), us · Φ(·), up · Θ(·)) zerlegen, wobei m(t) alle nicht-physiologischen Schwankungen wie Beleuchtungsschwankungen der Lichtquelle, Kopfbewegungen und Gesichtsausdrücke bezeichnet; Θ(b(t), r(t)) das zeitlich veränderliche physiologische Signal bezeichnet, das eine Kombination sowohl von Informationen Pulses b (t) als auf der Atmung r(t) ist; Ψ(·) bezeichnet die von der Kamera beobachtete Intensitätsvariation; Φ(·) bezeichnet die variierenden Anteile der spiegelnden Reflexionen; us und ud bezeichnet den Einheitsfarbvektor der Lichtquelle bzw. des Hautgewebes; up bezeichnet die relativen pulsierenden Stärken. I0 bezeichnet den stationären Teil der Beleuchtungsstärke; s0 und d0 bezeichnet die stationäre Sepular- bzw. Diffusionsreflexion.
  • Das Hautreflexionsmodell in Gl. (1) zeigt, dass die Beziehung zwischen dem RGB-Wert des k-ten Hautpixels Ck(t) und dem physiologischen Signal O(b(t), r(t)) nichtlinear ist und die Komplexität der Nichtlinearität durch nichtstationäre Bedingungen wie Schwankungen der Beleuchtungsstärke, Kopfbewegungen, Gesichtsausdruck, Schwankungen der Kameraintensität usw. verursacht werden kann. Ein Modell des maschinellen Lernens wird benötigt, um die komplexe Beziehung zwischen Ck(t) und Θ(b(t),r(t)) zu modellieren.
  • 1A zeigt ein Blockdiagramm eines beispielhaften Netzwerksystems 100 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Es sollte verstanden werden, dass diese und andere hier beschriebene Anordnungen nur als Beispiele dargestellt werden. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Anordnungen, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Außerdem sind viele der hier beschriebenen Elemente funktionale Einheiten, die als einzelne oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jedem geeigneten Ort implementiert werden können. Verschiedene hier beschriebene Funktionen, die von Einheiten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Darüber hinaus werden übliche Fachleute verstehen, dass jedes System, das die Operationen des Netzwerksystems 100 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz durchführt, in den Anwendungsbereich und den Geist der Ausführungsformen der vorliegenden Offenbarung fällt.
  • In einer Ausführungsform umfasst das Netzwerksystem 100 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz ein neuronales Bewegungsnetz, das räumliche Aufmerksamkeit 112, räumliche Aufmerksamkeit 122 und eine Bewegungskarte empfängt und die Herzfrequenz und Atemfrequenz des Probanden schätzt, indem es sowohl räumliche als auch Kanalbereichsaufmerksamkeitsmasken verwendet, um die Verarbeitung auf bestimmte Merkmalsdaten zu konzentrieren. In einer oder mehreren Ausführungsformen kann die Bewegungskarte als Differenz pro Pixel zwischen zwei Bildern in einer Folge (z. B. Videoframes) eines Probanden berechnet werden. Die Bilder können von einer Kamera aufgenommen werden, einschließlich, aber nicht beschränkt auf RGB- (Rot, Grün, Blau), IR-(Infrarot) und RGB_IR-Kameras. In einer Ausführungsform können RGB-Bilder mit IR-Bildem verschachtelt werden. In einer Ausführungsform kann die Verschachtelung durch das Signal-Rausch-Verhältnis (SNR) der Bilder oder der äußeren Umgebung bestimmt werden, d. h., IR-Bilder sind bei schwacher Beleuchtung (z. B. nachts) und bei Beleuchtungsänderungen (z. B. beim Passieren von Schatten während der Fahrt) robust. IR-Bilder können verwendet werden, um Beleuchtungsänderungen in RGB-Bildern auszugleichen. In einer anderen Ausführungsform können RGB-Bilder und IR-Bilder miteinander verknüpft werden, um einen Vier-Kanal-Eingang (rot, grün, blau, infrarot) für das Netzwerk zu bilden, um die Robustheit des Netzwerks im Vergleich zu einem Netzwerk nur mit RGB- oder nur mit IR-Bildern zu verbessern.
  • In einer Ausführungsform wird die Bewegungskarte als Differenz pro Pixel für einen interessierenden Bereich berechnet, der das Gesicht des Probanden in jedem der beiden Bilder der Folge umfasst. In einer Ausführungsform identifiziert ein separates neuronales Netz oder eine separate Verarbeitungseinheit den interessierenden Bereich als einen das Gesicht des Probanden umgebende Begrenzungsrahmen. Die räumlichen Aufmerksamkeiten 112 und 122 können als Masken codiert werden, basieren auf dem Erscheinungsbild und können von einem neuronalen Netzwerk für jedes Bild erzeugt werden. In einer Ausführungsform werden die Bilder je nach Bedarf auf der Grundlage der verfügbaren Netzwerkbandbreite oder Speicherressourcen komprimiert. Der Kompressionsgrad kann variabel (d. h. abhängig von der verfügbaren Bandbreite) oder fest sein. Um die Robustheit und Allgemeingültigkeit des Netzwerksystems 100 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz zu verbessern, können die Eingangsbilder während des Trainings mit veränderlichen Graden komprimiert werden (z. B. Kompressionsverhältnissen) (oder nicht).
  • Jede Verarbeitungsschicht des neuronalen Bewegungsnetzes wendet gelernte Parameter auf eine Eingabe an, um Merkmalsdaten in den räumlichen Dimensionen Höhe (H) und Breite (W) für mehrere Kanäle (C) zu erzeugen. Die Merkmalsdaten innerhalb eines einzelnen Kanals sind ein Merkmalsvektor. In einer Ausführungsform umfassen die Faltungsschichten 105 zwei Schichten, die jeweils N × 32 × 72 × 72 (N × C × H × W) sind, und die Eingabebilder sind 1 × 3 × 72 × 72. N ist eine Anzahl von Frames (z. B. Bildern), die auch der Anzahl der aufeinanderfolgenden Bewegungskarten entspricht. Wenn N>1 ist, kann das neuronale Bewegungsnetz zeitliche Informationen aus der Bewegungskarte eines benachbarten Bildes lernen, was die Robustheit verbessert. In einer Ausführungsform wird eine zeitliche Verschiebungsoperation auf die Eingabe einer oder mehrerer der Schichten in den Faltungsschichten 105 angewendet, bevor die Eingabe mit den gelernten Parametern gefaltet wird, um eine Eingabe für eine Pooling-Schicht 110 bereitzustellen. Die zeitliche Verschiebung kann die Komplexität der 3D-Faltung reduzieren, indem ein Teil der Kanäle entlang der zeitlichen Dimension verschoben wird, um den Informationsaustausch zwischen zeitlich nahe beieinander liegenden Bildern zu erleichtern.
  • Die Pooling-Schicht 110 reduziert die Dimension der Merkmalskarten. Die Pooling-Schicht 110 empfängt die elementweise Multiplikation zwischen der Faltungsschicht 105 und der räumlichen Aufmerksamkeit 112. In einer Ausführungsform ist die Pooling-Schicht 110 N × 36 × 36 × 36. Da physiologische Signale auf der menschlichen Haut nicht gleichmäßig verteilt sind, kann die räumliche Aufmerksamkeit 112 (z. B. eine weiche räumliche Aufmerksamkeitsmaske) in Regionen, in denen physiologische Signale stärker sind, höhere Gewichte festlegen, um die Genauigkeit des Netzwerks zu verbessern. Eine räumliche Aufmerksamkeitsmaske, die aus den Bildern des Probanden berechnet wird, kann beispielsweise Merkmale anzeigen, die mit dem Gesicht des Probanden verbunden sind (im Gegensatz zu den Haaren oder Schultern des Probanden), um die Herz- und/oder Atemfrequenz genauer zu schätzen. Mit anderen Worten: Die räumlichen Aufmerksamkeiten 112 und 122 definieren die räumlichen Beziehungen zwischen den Merkmalen auf einer bestimmten Ebene.
  • Die Ausgabe der Pooling-Schicht 110 wird von den Faltungsschichten 115 verarbeitet, bevor sie in eine Pooling-Schicht 120 eingegeben wird, die auch die räumliche Aufmerksamkeit 122 empfängt, In einer Ausführungsform wird eine zeitliche Verschiebungsoperation auf die Eingabe einer oder mehrerer der Schichten in den Faltungsschichten 115 angewendet, bevor die Eingabe mit den gelernten Parametern gefaltet wird, um eine Eingabe für die Pooling-Schicht 120 bereitzustellen. Die Pooling-Schicht 120 empfängt eine elementweise Multiplikation zwischen der Faltungsschicht 115 und der räumlichen Aufmerksamkeit 122. In einer Ausführungsform kann die Pooling-Schicht 120 mit Dimensionen der Größe N × 64 × 18 × 18 implementiert werden. In einer Ausführungsform befindet sich die räumliche Aufmerksamkeit 112 nach einer zweiten Faltungsschicht, und die räumliche Aufmerksamkeit 122 befindet sich nach einer vierten Faltungsschicht. Die räumliche Aufmerksamkeit 112 und 122 sorgen für eine verbesserte Lokalisierung der Gesichtshaut und definieren viel geringere Gewichte für die Hintergrundregion im Vergleich zu relevanten Regionen des Gesichts des Probanden.
  • Eine Ausgabe der Pooling-Schicht 120 wird in eine Kanalaufmerksamkeitsschicht 125 eingegeben. Die kanalweise Bereichsaufmerksamkeit wird während des Trainings erlernt und rekalibriert die kanalweisen Merkmalsantworten, um die informativsten Merkmale für die Verarbeitung auszuwählen. In einer Ausführungsform wird eine eindimensionale Faltung durchgeführt, gefolgt von einer Sigmoid-Funktion zum Erlernen der Kanalaufmerksamkeit. Die Kanalaufmerksamkeitsmaske kann mit Dimensionen der Größe 1 × 1 × c implementiert werden, wobei eine Maske pro Kanal bereitgestellt wird, was bedeutet, dass jedem Kanal c ein Gewicht zugewiesen wird, das während des Trainings gelernt wird. Im Gegensatz zur räumlichen Aufmerksamkeit, die diskriminierende Merkmale in den Dimensionen H und W auswählt, wählt die kanalweise Aufmerksamkeit diskriminierende Merkmale in der Kanaldimension aus. Die Kanäle mit höheren Gewichten haben informativere Merkmale, während Kanäle mit niedrigeren Gewichten weniger wichtig für die Schätzung der Herz- und/oder Atemfrequenz sind. Die gelernte Kanalaufmerksamkeitsmaske, die von der Kanalaufmerksamkeitsschicht 125 auf jeden Merkmalsvektor angewandt wird, kann verallgemeinert werden und kann daher während des Einsatzes für Probanden verwendet werden, die während des Trainings nicht verfügbar waren. Mit anderen Worten lässt sich dieselbe gelernte Kanalaufmerksamkeitsmaske gut verallgemeinern, um die Herz- und/oder Atemfrequenz für Probanden zu schätzen, die während des Trainings nicht gesehen wurden. In einer Ausführungsform können für Probanden spezifische Kanalaufmerksamkeitsmasken und eine räumliche Aufmerksamkeitsmaske gelernt und für die Verwendung während des Einsatzes ausgewählt werden.
  • Nachdem die Kanalaufmerksamkeit angewendet wurde, wird ein Ausgang der Kanalaufmerksamkeitsschicht 125 in eine vollständig verbundene Schicht (FC-Schicht) 130 eingegeben, die eine geschätzte Herzfrequenz und/oder Atemfrequenz erzeugt. Die Einfügung der Kanalaufmerksamkeitsschicht 125 vor der abschließenden Mittelwertbildung, die von der FC-Schicht 130 durchgeführt wird, bewirkt, dass das neuronale Bewegungsnetz informative Merkmale hervorhebt und weniger nützliche unterdrückt.
  • In einer Ausführungsform berechnet das neuronale Bewegungsnetz den Blutvolumenpuls (BVP) zur Schätzung der Herzfrequenz und/oder eine Atemwelle zur Schätzung der Atemfrequenz. In einer Ausführungsform arbeitet das neuronale Bewegungsnetz in einem Multitasking-Verfahren und berechnet sowohl den BVP als auch die Atemwelle. In einer Ausführungsform werden die geschätzte Herzfrequenz und die Atemfrequenz als Pulswellenform-Sequenz bzw. als Atemwellenform-Sequenz dargestellt. Um die Herzfrequenz und die Atemfrequenz in Schlägen pro Minute zu extrahieren, kann ein Butterworth-Bandpassfilter auf den Ausgang der FC-Schicht 130 angewendet werden. In einer Ausführungsform werden Filtergrenzfrequenzen von 0,67 und 4 Hz für die Herzfrequenz und 0,08 und 0,50 Hz für die Atemfrequenz verwendet. Die gefilterten Signale können in 10-Sekunden-Fenster unterteilt werden, und es kann eine Fourier-Transformation durchgeführt werden, um dominante Frequenzen wie die Herzfrequenz und die Atemfrequenz zu ermitteln.
  • Es werden nun weitere illustrative Informationen zu verschiedenen optionalen Architekturen und Merkmalen dargelegt, mit denen das oben beschriebene Framework je nach den Wünschen des Benutzers implementiert werden kann. Es sollte ausdrücklich darauf hingewiesen werden, dass die folgenden Informationen nur zur Veranschaulichung dienen und in keiner Weise als einschränkend angesehen werden sollten. Jedes der folgenden Merkmale kann optional mit oder ohne Ausschluss anderer beschriebener Merkmale eingebaut werden.
  • 1B zeigt die räumlichen Aufmerksamkeitskarten 135 und 140, die sich zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung eignen. In einer Ausführungsform umfassen die räumlichen Aufmerksamkeiten 112 und 122 die räumlichen Aufmerksamkeitskarten 142 bzw. 140. In einer Ausführungsform werden die räumlichen Aufmerksamkeitskarten 142 und 140 durch ein neuronales Netzwerk erzeugt, wie in Verbindung mit 2A beschrieben.
  • Im Vergleich der räumlichen Aufmerksamkeitskarte 135 mit der räumlichen Aufmerksamkeitskarte 132, die mit einem herkömmlichen Verfahren ohne Kanalaufmerksamkeit erstellt wurde, zeigt die räumliche Aufmerksamkeitskarte 132 hohe Gewichte 134 für die Wangen, die Nase und die Stirn des Probenden. Die Begrenzung der hoch gewichteten Region in der räumlichen Aufmerksamkeitskarte 132 ist jedoch unscharf und zeigt falsch positive hohe Gewichte im Augenlidbereich des Probenden. Außerdem sind die Werte der hohen Gewichte 134 in der räumlichen Aufmerksamkeitskarte 132 geringer als die Werte der hohen Gewichte 136 in der räumlichen Aufmerksamkeitskarte 135 für die Wangen, die Nase und die Stirn des Probenden. In ähnlicher Weise sind die niedrigsten Gewichte 133 für die Augen, Haare, Lippen, das Kinn und den Hals des Probenden in der Karte der räumlichen Aufmerksamkeit 135 viel klarer definiert und haben niedrigere Werte als die gleichen Regionen in der Karte der räumlichen Aufmerksamkeit 132. Insgesamt zeigt die räumliche Aufmerksamkeitskarte 135 im Vergleich zur räumlichen Aufmerksamkeitskarte 132 einen deutlich größeren Kontrast zwischen der Gesichtsregion und dem Hintergrund und eine bessere Grenzlokalisierung in der Hautregion, in der das physiologische Signal stärker ist (Stirn und Wangen).
  • Beim Vergleich der räumlichen Aufmerksamkeitskarte 142, die mit der herkömmlichen Technik mit Kanalaufmerksamkeit erzeugt wurde und der räumlichen Aufmerksamkeitskarte 140 entspricht, zeigt die räumliche Aufmerksamkeitskarte 140 einen größeren Kontrast zwischen Gesichtsbereich und Hintergrund mit einer besseren Begrenzungslokalisierung, was auf eine bessere räumliche und kanalweise Merkmalsextraktion hindeutet. Insbesondere weist die Hintergrundregion der räumlichen Aufmerksamkeitskarte 142 hohe Gewichte 144 auf, während die gleiche Region der räumlichen Aufmerksamkeitskarte 140 niedrige Gewichte 148 aufweist, was korrekt anzeigt, dass die Hintergrundregion weniger wichtig ist. Ähnlich wie die räumliche Aufmerksamkeitskarte 135 definiert die räumliche Aufmerksamkeitskarte 140 niedrigste Gewichte 143 für die Augen, Nasenlöcher und Lippen des Probenden, während hohe Gewichte 146 für die Stirn, Nase und Wangen des Probenden beibehalten werden. Zusammenfassend lässt sich sagen, dass die räumlichen Aufmerksamkeitskarten 135 und 140 im Vergleich zu den räumlichen Aufmerksamkeitskarten 132 und 142 höhere Gewichte auf der Haut mit besserer Lokalisierung und niedrigere Gewichte auf Hintergrundregionen aufweisen, was die Robustheit des neuronalen Bewegungsnetzes verbessert und Hintergrundrauschen reduziert.
  • 1C zeigt ein Flussdiagramm eines Verfahrens 150 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz gemäß einer Ausführungsform. Jeder Block des hier beschriebenen Verfahrens 150 umfasst einen Rechenprozess, der mit einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann auch in Form von computerverwendbaren Anweisungen, die auf Computerspeichermedien gespeichert sind, ausgeführt sein. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 150 beispielhaft in Bezug auf das System 100 der 1A beschrieben. Dieses Verfahren kann jedoch zusätzlich oder alternativ von einem beliebigen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hier beschriebenen Systeme. Darüber hinaus werden Durchschnittsfachleute verstehen, dass jedes System, das das Verfahren 150 ausführt, in den Anwendungsbereich und den Geist der Ausführungsformen der vorliegenden Offenbarung fällt.
  • In Schritt 155 wird eine Folge von Bildern eines Probanden durch Schichten eines neuronalen Bewegungsnetzmodells verarbeitet, um Kanäle von Merkmalsvektoren in zwei räumlichen Dimensionen zu erzeugen. In einer Ausführungsform umfasst das neuronale Bewegungsnetzmodell das Netzwerksystem 100 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz. In einer Ausführungsform umfasst die Verarbeitung die Anwendung mindestens einer räumlichen Aufmerksamkeitsmaske zwischen den Schichten. In einer Ausführungsform wird die Aufmerksamkeitsmaske für mindestens einen Erscheinungsbildkanal zwischen einer Faltungsschicht und einer Pooling-Schicht angewendet.
  • In einer Ausführungsform ist die Framerate, mit der jedes Bild in der Bildfolge empfangen wird, variabel, und die Verarbeitung umfasst die Anpassung der geschätzten Herzfrequenz und/oder der geschätzten Atemfrequenz auf der Grundlage der Bildfrequenz. In einer Ausführungsform empfängt das Netzwerksystem 100 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz mit jedem Bild einen Zeitstempel, der zur Berechnung der Bildfrequenz verwendet werden kann. In einer Ausführungsform werden ein oder mehrere Bilder in der Folge der Bilder komprimiert. In einer Ausführungsform werden das eine oder die mehreren Bilder in veränderlichen Stufen komprimiert.
  • In einer Ausführungsform werden für jedes Bild in der Folge eine Erscheinungsbildkarte und eine Hautsegmentierungsmaske von einem neuronalen Aufmerksamkeitsnetz verarbeitet, um die mindestens eine räumliche Aufmerksamkeitsmaske zu berechnen. In einer Ausführungsform wendet das neuronale Aufmerksamkeitsnetz mindestens eine Aufmerksamkeitsmaske für den Erscheinungsbildkanal zwischen Schichten des neuronalen Aufmerksamkeitsnetzes an, um die mindestens eine räumliche Aufmerksamkeitsmaske zu berechnen. In einer Ausführungsform umfasst die Erscheinungsbildkarte einen Teil jedes Bildes des Probanden, der einen Gesichts-, Hals- und Brustbereich des Probanden enthält. In einer Ausführungsform umfasst die Hautsegmentierungsmaske eine Maske, die die Gesichtshaut, einschließlich der Stirn-, Wangen-, Nasen-, Hals- und Brustregionen in jedem Bild des Probanden, getrennt vom Hintergrund, den Haaren, den Augen, den Augenbrauen und den Bartregionen in jedem Bild des Probanden identifiziert.
  • In Schritt 160 wird eine gelernte Kanalaufmerksamkeitsmaske auf die Kanäle der Merkmalsvektoren angewendet, um eine geschätzte Herzfrequenz oder eine geschätzte Atemfrequenz für den Probanden zu erzeugen. In einer Ausführungsform ist die gelernte Kanalaufmerksamkeitsmaske eine Maske pro Kanal, was bedeutet, dass jedem Kanal ein Gewicht zugewiesen wird, das während des Trainings gelernt wird, wobei die Kanäle mit höheren Gewichten informativere Merkmale aufweisen, während Kanäle mit niedrigeren Gewichten weniger wichtig für die Schätzung der Herz- und/oder Atemfrequenz sind. In einer Ausführungsform wird die gelernte Kanalaufmerksamkeitsmaske auf jeden Merkmalsvektor zwischen der Pooling-Schicht 120 und der abschließenden voll verknüpften Schicht 130 angewendet.
  • In einer Ausführungsform wird mindestens einer der Verarbeitungs- und Anwendungsschritte auf einem Server oder in einem Datenzentrum durchgeführt, und die Bildfolge wird von einem Benutzergerät an den Server oder das Datenzentrum gestreamt. In einer Ausführungsform wird mindestens einer der Verarbeitungs- und Anwendungsschritte auf einem Server oder in einem Datenzentrum durchgeführt, und die geschätzte Herzfrequenz und/oder die geschätzte Atemfrequenz wird an ein Benutzergerät gestreamt. In einer Ausführungsform wird mindestens einer der Schritte des Verarbeitens und Anwendens in einer Cloud-Computing-Umgebung durchgeführt. In einer Ausführungsform wird mindestens einer der Verarbeitungs- und Anwendungsschritte zum Trainieren, Testen oder Zertifizieren eines neuronalen Netzes durchgeführt, das in einer Maschine, einem Roboter oder einem autonomen Fahrzeug eingesetzt wird. In einer Ausführungsform wird mindestens einer der Verarbeitungs- und Anwendungsschritte auf einer virtuellen Maschine durchgeführt, die einen Teil einer Grafikverarbeitungseinheit umfasst.
  • 2A zeigt ein Blockdiagramm eines weiteren beispielhaften Netzwerksystems 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Das Netzwerksystem 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz umfasst das in 1A gezeigte neuronale Bewegungsnetz zusätzlich zu einem neuronalen Erscheinungsbildnetzwerk 235.
  • Es versteht sich, dass diese und andere hier beschriebene Anordnungen nur als Beispiele zu verstehen sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Anordnungen, Gruppierungen von Funktionen usw.) können zusätzlich zu den gezeigten oder anstelle von ihnen verwendet werden, und einige Elemente können ganz weggelassen werden. Außerdem sind viele der hier beschriebenen Elemente funktionale Einheiten, die als einzelne oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jedem geeigneten Ort implementiert werden können. Verschiedene hier beschriebene Funktionen, die von Einheiten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Darüber hinaus werden Durchschnittsfachleute verstehen, dass jedes System, das die Operationen des Netzwerksystems 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz durchführt, in den Anwendungsbereich und den Geist der Ausführungsformen der vorliegenden Offenbarung fällt.
  • Das neuronale Netz 235 empfängt eine Erscheinungsbildkarte und eine Hautsegmentierungsmaske als Eingaben und wendet gelernte Parameter an, um die räumlichen Aufmerksamkeiten 112 und 122 für jedes Bild zu berechnen. In einer Ausführungsform ist die Erscheinungsbildkarte (z. B. ein RGB-Bild) ein beschnittener Teil eines aufgenommenen Bildes des Probanden. In einer Ausführungsform wird das aufgenommene Bild auf einen Begrenzungsrahmen zugeschnitten, der einen Gesichtsbereich (der auch den oberen Teil des Halses oder der Brust umfassen kann) des Probanden identifiziert. In einer Ausführungsform wird ein aufgabenspezifisches neuronales Netz (nicht dargestellt) verwendet, um den Begrenzungsrahmen zu identifizieren.
  • In einer Ausführungsform wird ein aufgabenspezifisches neuronales Netz (nicht dargestellt) zur Identifizierung von Gesichtsmerkmalen verwendet, aus denen die binäre Hautsegmentierungsmaske abgeleitet wird. In einer Ausführungsform ist die Hautsegmentierungsmaske (z. B. binäre Segmentierung) eine Maske, die die Gesichtshaut identifiziert, z. B. die Stirn, die Wangen, die Nase, den Hals und den Brustbereich des Probanden. In einer Ausführungsform ist die Hautsegmentierungsmaske eine binäre Karte, bei der „Haut“-Pixel mit „1“ (wahr) und Hintergrundpixel, Haarpixel, Pixel an Augen, Augenbrauen, Bart usw. mit „0“ (falsch) gekennzeichnet sind.
  • Das neuronale Aufmerksamkeitsnetz 235 berechnet die räumlichen Aufmerksamkeiten 112 und 122 unter Verwendung der Erscheinungsbildkarte, der Hautsegmentierungsmaske und der gelernten Kanalaufmerksamkeitsmasken, die von den Kanalaufmerksamkeitsschichten 210 und 225 angewendet werden. Durch Training lernt das neuronale Aufmerksamkeitsnetz 235, welche Region(en) in der Erscheinungsbildkarte für die Schätzung der Herz- oder Atemfrequenz wichtiger sind. Bei der Untersuchung der räumlichen Aufmerksamkeitsgewichte werden höhere Gewichte in der Stirn- und Wangenregion gefunden. Der Zweck der Hautsegmentierungsmaske besteht darin, dem neuronalen Netz 235 mitzuteilen, dass in der Hautregion, in der das Herzfrequenz-/Atemfrequenzsignal erkannt werden kann, höhere Gewichte verwendet werden sollten, was die Genauigkeit der Schätzungen weiter verbessert.
  • In einer Ausführungsform erzeugt das neuronale Netz 235 räumliche Aufmerksamkeiten 112 und 122 für die Eingabe in die Pooling-Schichten 110 bzw. 120 unter Verwendung eines 1 × 1-Faltungsfilters. Dann werden die räumlichen Aufmerksamkeiten 112 und 122 mit den Merkmalskarten im neuronalen Bewegungsnetz durch elementweise Multiplikation multipliziert. In einer Ausführungsform wird die maskierte Merkmalskarte Zk, wobei k der Schichtindex ist, die an die Pooling-Schichten 110 und 120 weitergegeben wird, wie folgt berechnet k = H k W k σ ( ω k X a k + b k ) 2 σ ( ω k X a k + b k ) 1 X m k
    Figure DE102022123434A1_0002
    wobei σ(·) die sigmoide Aktivierungsfunktion ist, ωk der 1 × 1-Faltungs-Kemel ist, bk der Bias ist, X m k
    Figure DE102022123434A1_0003
    die Merkmalskarte des neuronalen Netzes für Bewegung ist, X a k
    Figure DE102022123434A1_0004
    die Merkmalskarte des neuronalen Netzes 235 für das Erscheinungsbild ist, ⊙ die elementweise Multiplikation ist, Hk und Wk Höhe und Breite der Merkmalskarte sind.
  • Wie das neuronale Bewegungsnetz, das die Kanalaufmerksamkeitsschicht 125 enthält, umfasst das neuronale Erscheinungsbildnetzwerk 235 kanalweise Aufmerksamkeitsschichten, insbesondere die Kanalaufmerksamkeitsschichten 210 und 225. Die Kanalaufmerksamkeitsschichten 210 und 225 befinden sich zwischen den Faltungsschichten 205 und der Pooling-Schicht 215 bzw. zwischen den Faltungsschichten 220 und der Pooling-Schicht 230. Durch das Einfügen von kanalweisen Aufmerksamkeitsschichten in das neuronale Netzwerk 235 können bessere räumliche Gesichtsmasken erzeugt werden. Das Einfügen der Kanalaufmerksamkeitsschichten 210 und 225 hilft dem neuronalen Netz 235, informative Merkmale hervorzuheben und weniger nützliche zu unterdrücken.
  • 2B zeigt ein Flussdiagramm eines anderen Verfahrens 250 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz gemäß einer Ausführungsform. Jeder Block des hier beschriebenen Verfahrens 250 umfasst einen Rechenprozess, der mit einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann auch in Form von computerverwendbaren Anweisungen, die auf Computerspeichermedien gespeichert sind, verkörpert sein. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 250 beispielhaft für das System 200 von 2A beschrieben. Dieses Verfahren kann jedoch zusätzlich oder alternativ von einem beliebigen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hier beschriebenen Systeme. Darüber hinaus werden Durchschnittsfachleute verstehen, dass jedes System, das das Verfahren 250 durchführt, in den Anwendungsbereich und den Geist der vorliegenden Offenbarung fällt.
  • In Schritt 255 wird eine Folge von Bildern eines Probanden empfangen. Jedes Bild in der Folge kann verarbeitet werden, um eine Bewegungskarte, eine Erscheinungsbildkarte und eine Hautsegmentierungsmaske zu erzeugen. In Schritt 260 werden eine Erscheinungsbildkarte und eine Hautsegmentierungsmaske für jedes Bild in der Folge verarbeitet. In Schritt 260 verarbeitet ein neuronales Netzmodell die Erscheinungsbildkarte und die Hautsegmentierungsmaske, um räumliche Aufmerksamkeitsmasken zu berechnen. In Schritt 265 werden die Bildfolge und die entsprechenden räumlichen Aufmerksamkeitsmasken von einem neuronalen Bewegungsnetzmodell verarbeitet, um eine geschätzte Herzfrequenz oder eine geschätzte Atemfrequenz für den Probanden zu erzeugen.
  • Die Anwendung von (doppelter) Aufmerksamkeit sowohl im räumlichen Bereich als auch im kanalweisen Bereich verbessert die Genauigkeit der Netzsysteme 100 und 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz. Die Aufmerksamkeit im räumlichen Bereich verbessert die räumliche Codierung, die Gesichtsregionen lokalisiert, die eine starke physiologische Signalantwort enthalten. Die Aufmerksamkeit im kanalweisen Bereich rekalibriert die kanalweisen Merkmalsantworten, um die informativsten Merkmale auszuwählen.
  • Die Netzwerksysteme 100 und 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz können sich auch auf eine Korrelation zwischen Herzfrequenz und Atemfrequenz stützen, um die Genauigkeit zu verbessern. 2C veranschaulicht eine Frequenzbeziehung zwischen Herzfrequenz und Atemfrequenz, die sich zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung eignet. Bei jedem Probanden hat eine gemessene Herzfrequenz 275 eine höhere Frequenz im Vergleich zu einer gemessenen Atemfrequenz 280. Die Beziehung zwischen der gemessenen Herzfrequenz 275 und der gemessenen Atemfrequenz 280 ist für die meisten Probanden konsistent. Die Korrelation zwischen Herzfrequenz und Atemfrequenz kann probandenspezifisch sein, und die während einer Systemkalibrierungsphase erlernte Korrelation kann im Einsatz angewendet werden.
  • 2D stellt eine Verteilung der Verhältnisse zwischen Herzfrequenz und Atemfrequenz dar, die sich zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung eignet. Ein Diagramm der Verhältnisse 285 zwischen Herzfrequenz und Atemfrequenz zeigt, dass sich die Verhältnisse um ein mittleres Verhältnis von 5,5655 gruppieren, mit einem Maximum von 14,8333 und einem Minimum von 2,5417. Die Standardabweichung beträgt 1,9546 bei R=0,3000. In einer Ausführungsform werden während des Einsatzes der Netzwerksysteme 100 und 200 zur gemeinsamen Schätzung der Herzfrequenz und der Atemfrequenz die geschätzte Herzfrequenz und die geschätzte Atemfrequenz verworfen (z. B. entfernt), wenn ein Verhältnis der geschätzten Herzfrequenz und der geschätzten Atemfrequenz außerhalb eines vorbestimmten (Ground-Truth -)Verhältnisbereichs von Herzfrequenz und Atemfrequenz liegt. In einer Ausführungsform werden falsch-positive Herzfrequenz- oder Atemfrequenz-Schätzungen entfernt, indem ein Signal-Rausch-Verhältnis der Herzfrequenz-Wellenform oder der Atemfrequenz-Wellenform verwendet wird, um die Genauigkeit der Herzfrequenz- oder Atemfrequenz-Schätzungen zu bewerten. Das Signal-Rausch-Verhältnis kann im Frequenzbereich als Verhältnis zwischen den ersten beiden Harmonischen und den übrigen Frequenzen innerhalb des Herzfrequenz- oder Atemfrequenzbereichs berechnet werden. Wenn das Signal-Rausch-Verhältnis kleiner als Null ist, wird die Schätzung der Herz- oder Atemfrequenz verworfen, da das Signal schwächer ist als das Rauschen.
  • Während des Trainings der Netzwerksysteme 100 und 200 zur gemeinsamen Schätzung der Herzfrequenz und der Atemfrequenz werden die Parameter (z. B. Gewichte) gelernt und die Kanalaufmerksamkeiten werden ebenfalls gelernt. Die Korrelation zwischen der Herz- und der Atemfrequenz kann während des Trainings verwendet werden, um die Genauigkeit des Netzwerksystems 100 und 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz zu verbessern. In einer Ausführungsform wird das Verhältnis von Herz- zu Atemfrequenz von 4:1 bis 6:1 als Ground-Truth-Bereich verwendet.
  • Herkömmlich ist ein Multitasking-Lernverlust L die Summe des mittleren quadratischen Fehlers (MSE) der Herzfrequenzkurve und des MSE-Verlustes der Atemfrequenzkurve, der wie folgt definiert ist: L = α 1 T t = 1 T ( p ( t ) p ( t ) ' ) 2 + β 1 T t = 1 T ( r ( t ) r ( t ) ' ) 2 ,
    Figure DE102022123434A1_0005
    wobei T ein Zeitfenster ist, p(t) und r(t) die zeitvariante Ground-Truth-Puls- (z. B. Herzfrequenz-) Wellenformsequenz bzw. der Atmungswellenformsequenz sind, p(t)' und r(t)' die vorhergesagte Pulswellenform und die Atmungswellenform sind, α, β empirische Parameter zum Ausgleich des Verlusts der Pulswellenform und der Atmungswellenform sind. In einer Ausführungsform, α = β = 1.
  • Die Ziel- oder Verlustfunktion reduziert die Unterschiede zwischen den vorhergesagten Herzfrequenz und Atemfrequenzen und den tatsächlichen Herzfrequenz und Atemfrequenzen. In einer Ausführungsform ist ein verhältnisbasierter Korrelationsverlust in der Verlustfunktion enthalten: L r a t i o = α 1 T t = 1 T ( p ( t ) p ( t ) ' ) 2 + β 1 T t = 1 T ( r ( t ) r ( t ) ' ) 2 + γ ( ratio_diff )
    Figure DE102022123434A1_0006
    wobei γ ein empirischer Parameter zur Steuerung des verhältnisbasierten Korrelationsverlustes ist und ratio_diff eine Differenz zwischen einem Verhältnis der vorhergesagten Herzfrequenz und Atemfrequenz und dem Ground-Truth-Verhältnisbereich ist. In einer Ausführungsform ergibt die Verlustfunktion Lratio der Gleichung (4) eine höhere Einbuße, wenn das Verhältnis zwischen der vorhergesagten Herzfrequenz und der Atemfrequenz außerhalb des Ground-Truth-Bereichs liegt [4:1, 6:1]. In einer Ausführungsform werden während des Trainings Parameter (z. B. Gewichte) und Kanalaufmerksamkeiten der Netzwerksysteme 100 und 200 zur gemeinsamen Schätzung der Herzfrequenz und der Atemfrequenz angepasst, um Unterschiede zwischen den Verhältnissen der geschätzten Herzfrequenz und Atemfrequenz und den Verhältnissen der tatsächlichen Herzfrequenz und Atemfrequenz zu verringern.
  • In einer Ausführungsform werden die Parameter während des Trainings so angepasst, dass die Korrelationen zwischen den geschätzten Herzfrequenz und Atemfrequenzen mit den Korrelationen zwischen den wahren Herzfrequenz und Atemfrequenzen übereinstimmen. In einer Ausführungsform sind ein verhältnisbasierter Korrelationsverlust und ein Angleichungskorrelationsverlust in der Verlustfunktion enthalten: L a l i g n = α 1 T t = 1 T ( p ( t ) p ( t ) ' ) 2 + β 1 T t = 1 T ( r ( t ) r ( t ) ' ) 2 + γ L ρ L ρ = 1 ρ p ( t ) ' , r ( t ) ' ρ p ( t ) ' , r ( t ) ' = cov ( p ( t ) ' , r ( t ) ' ) σ p ( t ) , σ r ( t ) ' ,
    Figure DE102022123434A1_0007
    wobei σp(t), und σr(t), die Standardabweichung der Pulswellenform bzw. der Atmungswellenform sind und COV die Kovarianz ist.
  • 3A stellt ein Blockdiagramm einer Trainingskonfiguration 300 für die Netzwerksysteme 100 und 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz dar, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Es sollte verstanden werden, dass diese und andere hier beschriebene Anordnungen nur als Beispiele dargestellt werden. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Anordnungen, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Außerdem sind viele der hier beschriebenen Elemente funktionale Einheiten, die als einzelne oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jedem geeigneten Ort implementiert werden können. Verschiedene hier beschriebene Funktionen, die von Einheiten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Darüber hinaus werden Durchschnittsfachleute verstehen, dass jedes System, das die Operationen der Trainingskonfiguration 300 durchführt, in den Anwendungsbereich und den Geist der Ausführungsformen der vorliegenden Offenbarung fällt.
  • Wie in 3A gezeigt, umfasst die Trainingskonfiguration 300 das Netzwerksystem 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz, eine Verlustfunktionseinheit 310, eine Verhältnis-Operationseinheit 315 und eine Kompressionseinheit 320. Das Netzwerksystem 100 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz kann durch das Netzwerksystem 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz ersetzt werden. Die Verhältnis-Operationseinheit 315 berechnet das Verhältnis von Herzfrequenz zu Atemfrequenz und ratio_diff unter Verwendung der vorhergesagten Herzfrequenz, der vorhergesagten Atemfrequenz und des Ground-Truth-Verhältnisbereichs. Die Verlustfunktionseinheit 310 empfängt die vorhergesagte Herzfrequenz, die vorhergesagte Atemfrequenz, das ratio_diff und die Ground-Truth-Herz- und Atemfrequenzen. Die Verlustfunktionseinheit 310 kann eine der Gleichungen (3), (4) oder (5) auswerten, um Parameteraktualisierungen zu berechnen und Kanalaufmerksamkeiten für das Netzwerksystem 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz über Backpropagation zu aktualisieren.
  • In einigen Umgebungen, in denen das Netzwerksystem 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz eingesetzt wird, können die Eingangsbilder komprimiert werden, was typischerweise zu visuellen Artefakten führt und eine genaue Schätzung erschwert. Der Kompressionsgrad kann variabel (d. h. abhängig von der verfügbaren Bandbreite) oder fest sein. Um die Robustheit und Allgemeingültigkeit der Systeme 100 und 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz zu verbessern, können beim Training Eingangsbilder verwendet werden, die mit veränderlichen Graden (z. B. Kompressionsverhältnissen) komprimiert sind (oder nicht). Die Kompression kann während des Trainings effektiv als eine Form der Datenerweiterung eingesetzt werden. Daher kann die Trainingskonfiguration 300 auch die Kompressionseinheit 320 enthalten, die die Bilder des Probanden empfängt und optional jedes Bild vor der Berechnung der Bewegungskarten komprimiert. In einer Ausführungsform werden die Erscheinungsbildkarte und die Hautsegmentierungsmaske auch unter Verwendung der optional komprimierten Bilder erstellt. In einer Ausführungsform verschlechtert sich die Genauigkeit der Schätzungen für unkomprimierte Eingabedaten nicht, wenn das Netzwerksystem 100 und 200 zur gemeinsame Schätzung der Herzfrequenz und Atemfrequenz sowohl mit unkomprimierten als auch mit mehreren Ebenen komprimierter Eingabebilder trainiert wird.
  • 3B zeigt ein weiteres Flussdiagramm eines Verfahrens 330 zum Trainieren des Netzwerksystems 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Jeder Block des hier beschriebenen Verfahrens 330 umfasst einen Rechenprozess, der unter Verwendung einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann auch in Form von computerverwendbaren Anweisungen, die auf Computerspeichermedien gespeichert sind, verkörpert werden. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 330 beispielhaft in Bezug auf das Netzwerksystem 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz von 2A beschrieben. Dieses Verfahren kann jedoch zusätzlich oder alternativ von einem beliebigen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hier beschriebenen Systeme. Darüber hinaus werden Durchschnittsfachleute verstehen, dass jedes System, das das Verfahren 330 durchführt, in den Anwendungsbereich und den Geist der Ausführungsformen der vorliegenden Offenbarung fällt.
  • In Schritt 335 wird eine Folge von Bildern eines Probanden empfangen. In Schritt 340 bestimmt die Kompressionseinheit 320, ob jedes Bild in der Folge komprimiert wird oder nicht. Für einen Abschnitt der zu komprimierenden Bilder bestimmt die Kompressionseinheit 320 auch einen Kompressionsgrad für jedes Bild in dem Abschnitt, und in Schritt 345 komprimiert die Kompressionseinheit 320 jedes Bild in dem Abschnitt, bevor sie eine oder mehrere der folgenden Komponenten erzeugt: eine Bewegungskarte, eine Erscheinungsbildkarte und eine Hautsegmentierungsmaske. Schritt 345 kann komprimierte Bilder mit demselben oder einem anderen Kompressionsgrad als Datenerweiterung erzeugen, um unkomprimierte Daten als Trainingsdaten zu verwenden, so dass das Netzwerksystem 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz mit doppelter Aufmerksamkeit lernt, Schätzungen für jeden Kompressionsgrad zu erzeugen. Während die Kompression von Bildern oder Videos üblicherweise als Einführung von Artefakten in rPPG angesehen wird, weil Kompressionsartefakte ein physiologisches Signal verfälschen, kann die Kompression als Trainingsdatenerweiterungstechnik verwendet werden, um die Robustheit der Netzwerksysteme 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz zu verbessern. Andernfalls erzeugt die Kompressionseinheit 320 für nicht komprimierte Bilder die Bewegungskarte, die Erscheinungsbildkarte und die Hautsegmentierungsmaske unter Verwendung der Bilder in unkomprimierter Form.
  • In Schritt 350 erzeugt ein neuronales Netzmodell für das Erscheinungsbild, z. B. das neuronale Netzmodell 235, räumliche Aufmerksamkeitsmasken unter Verwendung jeder Erscheinungsbildkarte und Hautsegmentierungsmaske. In Schritt 355 verwendet ein neuronales Bewegungsnetzmodell die räumlichen Aufmerksamkeitsmasken, um eine geschätzte Herzfrequenz und/oder eine geschätzte Atemfrequenz für den Probanden zu erzeugen. In Schritt 365 wird eine Verlustfunktion basierend auf der geschätzten Herzfrequenz und/oder der geschätzten Atemfrequenz bewertet. In einer Ausführungsform wertet die Verlustfunktionseinheit 310 die Verlustfunktion aus. In einer Ausführungsform wird ein Verhältnis zwischen der geschätzten Herzfrequenz und der geschätzten Atemfrequenz als Eingabe für die Verlustfunktion berechnet. In einer Ausführungsform wird eine der gemäß Gleichung (3), (4) oder (5) berechneten Verlustfunktionen ausgewertet.
  • In Schritt 370 wird entschieden, ob das Training fortgesetzt werden soll. In einer Ausführungsform wird das Training fortgesetzt, wenn die Auswertung der Verlustfunktion anzeigt, dass der Verlust größer ist als ein Schwellenwert, der mit einem gewünschten Genauigkeitsgrad verbunden ist. Wenn in Schritt 370 das Training nicht fortgesetzt wird, wird in Schritt 375 das Training abgeschlossen, und das Netzwerksystem 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz kann eingesetzt werden. Andernfalls werden in Schritt 380 die Parameter des Netzwerksystems 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz angepasst (z. B. aktualisiert). In einer Ausführungsform werden in Schritt 380 auch die Kanalaufmerksamkeitskarten angepasst.
  • In einer Ausführungsform werden die Parameter von den Schichten des neuronalen Bewegungsnetzmodells und/oder des neuronalen Aufmerksamkeitsnetzmodells angewandt, und die Parameter werden angepasst, um Unterschiede zwischen einer Ground-Truth-Herzfrequenz oder -Atemfrequenz und der geschätzten Herzfrequenz oder Atemfrequenz zu verringern. In einer Ausführungsform werden die Parameter von den Schichten des neuronalen Bewegungsnetzmodells und/oder des neuronalen Aufmerksamkeitsnetzmodells angewandt, und die Parameter werden angepasst, um Unterschiede zwischen einem geschätzten Verhältnis der geschätzten Herzfrequenz und der geschätzten Atemfrequenz und dem Ground-Truth-Verhältnisbereich zu verringern. In einer Ausführungsform werden die Parameter von den Schichten des neuronalen Bewegungsnetzmodells und/oder des neuronalen Aufmerksamkeitsnetzmodells angewandt, und die Parameter werden angepasst, um die Korrelationen zwischen der geschätzten Herzfrequenz und der geschätzten Atemfrequenz zu erhöhen, um sie an die erwarteten Korrelationen zwischen einer Herzfrequenz und einer Atemfrequenz anzupassen.
  • Es gibt viele Anwendungsfälle für die Schätzung der Herz- und/oder Atemfrequenz, insbesondere in der Automobil-, Gesundheits- und Spielebranche. In einer Kraftfahrzeugumgebung kann das Netzwerksystem 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz verwendet werden, um Stress, Müdigkeit oder Fahruntauglichkeit des Fahrers zu überwachen. Auf der Grundlage der Schätzungen können Manöver mit minimalem Risiko eingeleitet werden (z. B. Musikwechsel, Änderung der Bremseinstellungen, Anhalten, Notruf usw.). Das Netzwerksystem 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz kann auch zur Erkennung der Anwesenheit von Kindern verwendet werden. Im Gesundheitswesen kann das Netzwerksystem 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz für telemedizinische oder berührungslose Untersuchungen vor Ort verwendet werden. In einer Spielumgebung kann das Netzwerksystem 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz verwendet werden, um den Grad des Engagements und/oder der Erregung eines Benutzers zu messen.
  • Die Integration sowohl der räumlichen als auch der kanalweisen Aufmerksamkeit in die Architektur des neuronalen Faltungsnetzwerks des neuronalen Bewegungsmodells und des neuronalen Erscheinungsbildmodells verbessert die Schätzung der Herzfrequenz und Atemfrequenz. Insbesondere verbessert die Hautsegmentierungsmaske die Genauigkeit, indem sie die Gesichtshaut (Stirn, Wangen, Nase usw.), den Hals und den Brustbereich identifiziert, um zusätzliche Daten (z. B. die Blutzirkulation) für die Schätzung der Herzfrequenz und Atemfrequenz zu liefern. Im Gegensatz dazu stützen sich herkömmliche Verfahren zur Schätzung der Herz- und/oder Atemfrequenz auf räumliche Aufmerksamkeitsmasken und verwenden keine kanalbasierte Aufmerksamkeit.
  • Die verfügbare Bandbreite für die Übertragung der Eingangsbildfolge kann variieren, was zu unterschiedlichen Frameraten und/oder Bildkompressionsgraden führt. Wenn die Videoframerate der Eingangsbildfolge dynamisch ist, können die Herzfrequenz und Atemfrequenz entsprechend angepasst werden. Während des Trainings kann eine Kompressionserweiterung (in verschiedenen Stufen) eingesetzt werden, um die Allgemeinheit und Robustheit des neuronalen Bewegungsnetzmodells und des neuronalen Erscheinungsbildmodells zu verbessern.
  • Parallelverarbeitungsarchitektur
  • 4 zeigt eine parallele Verarbeitungseinheit (PPU) 400 gemäß einer Ausführungsform. Die PPU 400 kann verwendet werden, um das Netzwerksystem 100 oder 200 zur gemeinsamen Schätzung der Herzfrequenz und Atemfrequenz zu implementieren. Die PPU 400 kann verwendet werden, um eines oder mehrere der folgenden Modelle zu implementieren: das neuronale Bewegungsnetzmodell, das neuronale Erscheinungsbildmodell 235, die Verlustfunktionseinheit 310 und die Kompressionseinheit 320. In einer Ausführungsform kann ein Prozessor wie die PPU 400 so konfiguriert sein, dass er ein neuronales Netzmodell implementiert. Das neuronale Netzmodell kann als Softwareanweisungen implementiert werden, die vom Prozessor ausgeführt werden, oder in anderen Ausführungsformen kann der Prozessor eine Matrix von Hardwareelementen enthalten, die konfiguriert sind, einen Satz von Eingaben (z. B. elektrische Signale, die Werte darstellen) zu verarbeiten, um einen Satz von Ausgaben zu erzeugen, die Aktivierungen des neuronalen Netzmodells darstellen können. In anderen Ausführungsformen kann das neuronale Netzmodell als eine Kombination aus Softwareanweisungen und einer von einer Matrix von Hardwareelementen durchgeführten Verarbeitung implementiert werden. Die Implementierung des neuronalen Netzmodells kann die Bestimmung eines Satzes von Parametern für das neuronale Netzmodell beinhalten, z. B. durch überwachtes oder unbeaufsichtigtes Training des neuronalen Netzmodells sowie, oder alternativ, die Durchführung von Inferenz unter Verwendung des Satzes von Parametem, um neue Sätze von Eingaben zu verarbeiten.
  • In einer Ausführungsform ist die PPU 400 ein Multi-Thread-Prozessor, der auf einem oder mehreren integrierten Schaltkreisen implementiert ist. Bei der PPU 400 handelt es sich um eine latenzverbergende Architektur, die für die parallele Verarbeitung vieler Threads ausgelegt ist. Ein Thread (z. B. ein Ausführungs-Thread) ist eine Instanziierung eines Satzes von Anweisungen, die zur Ausführung durch die PPU 400 konfiguriert sind. In einer Ausführungsform ist die PPU 400 eine Grafikverarbeitungseinheit (GPU), die konfiguriert ist, eine Grafik-Rendering-Pipeline zur Verarbeitung dreidimensionaler (3D) Grafikdaten zu implementieren, um zweidimensionale (2D) Bilddaten zur Anzeige auf einem Anzeigegerät zu erzeugen. In anderen Ausführungsformen kann die PPU 400 für die Durchführung von Allzweckberechnungen verwendet werden. Obwohl hier ein beispielhafter Parallelprozessor zur Veranschaulichung dargestellt wird, sollte ausdrücklich darauf hingewiesen werden, dass dieser Prozessor nur zur Veranschaulichung dient und dass jeder beliebige Prozessor zur Ergänzung und/oder zum Ersatz desselben verwendet werden kann.
  • Eine oder mehrere PPUs 400 können konfiguriert werden, Tausende von High Performance Computing (HPC)-, Rechenzentrums-, Cloud Computing- und maschinelle Lemanwendungen zu beschleunigen. Die PPU 400 kann konfiguriert sein, zahlreiche Deep-Learning-Systeme und -Anwendungen für autonome Fahrzeuge, Simulationen, Computergrafik wie Strahlen- oder Pfadverfolgung, Deep Learning, hochpräzise Sprach-, Bild- und Texterkennungssysteme, intelligente Videoanalyse, molekulare Simulationen, Arzneimittelentdeckung, Krankheitsdiagnose, Wettervorhersage, Big-Data-Analytik, Astronomie, Molekulardynamiksimulation, Finanzmodellierung, Robotik, Fabrikautomatisierung, Echtzeit-Sprachübersetzung, Online-Suchoptimierung, personalisierte Benutzerempfehlungen und Ähnliches zu beschleunigen.
  • Wie in 4 dargestellt, umfasst die PPU 400 eine Eingabe/Ausgabe-Einheit (I/O) 405, eine Front-End-Einheit 415, eine Scheduler-Einheit 420, eine Arbeitsverteilungseinheit 425, einen Hub 430, eine Crossbar (Xbar) 470, einen oder mehrere General Processing Cluster (GPCs) 450 und eine oder mehrere Speicherpartitionseinheiten 480. Die PPU 400 kann mit einem Host-Prozessor oder anderen PPUs 400 über eine oder mehrere Hochgeschwindigkeits-NVLink 41 0- Interconnects verbunden sein. Die PPU 400 kann über einen Interconnect 402 mit einem Host-Prozessor oder anderen Peripheriegeräten verbunden sein. Die PPU 400 kann auch mit einem lokalen Speicher 404 verbunden sein, der eine Reihe von Speichergeräten umfasst. In einer Ausführungsform kann der lokale Speicher eine Reihe von dynamischen Direktzugriffsspeichern (DRAM) umfassen. Die DRAM-Bausteine können als High-Bandwidth Memory (HBM) Subsystem konfiguriert sein, wobei in jedem Baustein mehrere DRAM-Chips gestapelt sind.
  • Der NVLink 410-Interconnect ermöglicht die Skalierung von Systemen mit einer oder mehreren PPUs 400 in Kombination mit einer oder mehreren CPUs, unterstützt die Cache-Kohärenz zwischen den PPUs 400 und den CPUs sowie das CPU-Mastering. Daten und/oder Befehle können über den NVLink 410 durch den Hub 430 zu/von anderen Einheiten der PPU 400 übertragen werden, wie z. B. einer oder mehreren Copy Engines, einem Video-Encoder, einem Video-Decoder, einer Energieverwaltungseinheit usw. (nicht explizit dargestellt). Der NVLink 410 wird in Verbindung mit 5B ausführlicher beschrieben.
  • Die I/O-Einheit 405 ist konfiguriert, Kommunikationen (z. B. Befehle, Daten usw.) von einem Host-Prozessor (nicht abgebildet) über die Zwischenverbindung 402 zu senden und zu empfangen. Die I/O-Einheit 405 kann mit dem Host-Prozessor direkt über den Interconnect 402 oder über ein oder mehrere Zwischengeräte wie eine Speicherbrücke kommunizieren. In einer Ausführungsform kann die I/O-Einheit 405 mit einem oder mehreren anderen Prozessoren, z. B. einer oder mehreren PPUs 400, über den Interconnect 402 kommunizieren. In einer Ausführungsform implementiert die I/O-Einheit 405 eine Peripheral Component Interconnect Express (PCIe)-Schnittstelle für die Kommunikation über einen PCIe-Bus, und die Verbindungsleitung 402 ist ein PCIe-Bus. In alternativen Ausführungsformen kann die I/O-Einheit 405 andere Arten bekannter Schnittstellen für die Kommunikation mit externen Geräten implementieren.
  • Die IIO-Einheit 405 decodiert die über die Verbindung 402 empfangenen Pakete. In einer Ausführungsform stellen die Pakete Befehle dar, die so konfiguriert sind, dass sie die PPU 400 veranlassen, verschiedene Operationen durchzuführen. Die I/O-Einheit 405 überträgt die decodierten Befehle an verschiedene andere Einheiten der PPU 400, wie in den Befehlen angegeben. So können beispielsweise einige Befehle an die Front-End-Einheit 415 übertragen werden. Andere Befehle können an den Hub 430 oder andere Einheiten der PPU 400 übertragen werden, wie z. B. eine oder mehrere Copy Engines, einen Video-Encoder, einen Video-Decoder, eine Energieverwaltungseinheit usw. (nicht explizit dargestellt). Mit anderen Worten: Die I/O-Einheit 405 ist so konfiguriert, dass sie die Kommunikation zwischen und unter den verschiedenen logischen Einheiten der PPU 400 leitet.
  • In einer Ausführungsform codiert ein vom Host-Prozessor ausgeführtes Programm einen Befehlsstrom in einem Puffer, der der PPU 400 Arbeitslasten zur Verarbeitung bereitstellt. Eine Arbeitslast kann aus mehreren Befehlen und Daten bestehen, die von diesen Befehlen verarbeitet werden sollen. Der Puffer ist ein Bereich in einem Speicher, auf den sowohl der Host-Prozessor als auch die PPU 400 zugreifen (z. B. lesen und schreiben) können. Beispielsweise kann die I/O-Einheit 405 so konfiguriert sein, dass sie über Speicheranforderungen, die über die Verbindung 402 übertragen werden, auf den Puffer in einem mit der Verbindung 402 verbundenen Systemspeicher zugreift. In einer Ausführungsform schreibt der Host-Prozessor den Befehlsstrom in den Puffer und überträgt dann einen Zeiger auf den Beginn des Befehlsstroms an die PPU 400. Die Front-End-Einheit 415 empfängt Zeiger auf einen oder mehrere Befehlsströme. Die Front-End-Einheit 415 verwaltet den einen oder die mehreren Ströme, liest Befehle aus den Strömen und leitet Befehle an die verschiedenen Einheiten der PPU 400 weiter.
  • Die Front-End-Einheit 415 ist mit einer Scheduler-Einheit 420 gekoppelt, die die verschiedenen GPCs 450 für die Verarbeitung von Aufgaben konfiguriert, die durch den einen oder die mehreren Streams definiert sind. Die Scheduler-Einheit 420 ist so konfiguriert, dass sie Zustandsinformationen in Bezug auf die verschiedenen von der Scheduler-Einheit 420 verwalteten Aufgaben verfolgt. Der Status kann angeben, welchem GPC 450 eine Aufgabe zugewiesen ist, ob die Aufgabe aktiv oder inaktiv ist, welche Prioritätsstufe mit der Aufgabe verbunden ist usw. Die Scheduler-Einheit 420 verwaltet die Ausführung einer Vielzahl von Aufgaben auf dem einen oder mehreren GPCs 450.
  • Die Scheduler-Einheit 420 ist mit einer Arbeitsverteilungseinheit 425 gekoppelt, die so konfiguriert ist, dass sie Aufgaben zur Ausführung auf den GPCs 450 verteilt. Die Arbeitsverteilungseinheit 425 kann eine Anzahl geplanter Aufgaben verfolgen, die von der Scheduler-Einheit 420 empfangen wurden. In einer Ausführungsform verwaltet die Arbeitsverteilungseinheit 425 einen Pool ausstehender Aufgaben und einen Pool aktiver Aufgaben für jeden der GPCs 450. Wenn ein GPC 450 die Ausführung einer Aufgabe beendet, wird diese Aufgabe aus dem Pool der aktiven Aufgaben für den GPC 450 entfernt und eine der anderen Aufgaben aus dem Pool der anstehenden Aufgaben wird ausgewählt und für die Ausführung auf dem GPC 450 eingeplant. Wenn eine aktive Aufgabe auf dem GPC 450 im Leerlauf war, z. B. während des Wartens auf die Auflösung einer Datenabhängigkeit, kann die aktive Aufgabe aus dem GPC 450 entfernt und in den Pool anstehender Aufgaben zurückgeführt werden, während eine andere Aufgabe im Pool anstehender Aufgaben ausgewählt und zur Ausführung auf dem GPC 450 eingeplant wird.
  • In einer Ausführungsform führt ein Host-Prozessor einen Treiber-Kernel aus, der eine Anwendungsprogrammierschnittstelle (API) implementiert, die es einer oder mehreren auf dem Host-Prozessor ausgeführten Anwendungen ermöglicht, Operationen zur Ausführung auf der PPU 400 zu planen. In einer Ausführungsform werden mehrere Rechenanwendungen gleichzeitig von der PPU 400 ausgeführt, und die PPU 400 bietet Isolierung, Dienstgüte (QoS) und unabhängige Adressräume für die mehreren Rechenanwendungen. Eine Anwendung kann Anweisungen (z. B. API-Aufrufe) generieren, die den Treiber-Kernel veranlassen, eine oder mehrere Aufgaben zur Ausführung durch die PPU 400 zu generieren. Der Treiber-Kernel gibt Aufgaben an einen oder mehrere Datenströme aus, die von der PPU 400 verarbeitet werden. Jede Aufgabe kann eine oder mehrere Gruppen von zusammenhängenden Threads umfassen, die hier als Warp bezeichnet werden. In einer Ausführungsform umfasst ein Warp 32 zusammengehörige Threads, die parallel ausgeführt werden können. Kooperierende Threads können sich auf eine Vielzahl von Threads beziehen, die Anweisungen zur Ausführung der Aufgabe enthalten und Daten über einen gemeinsamen Speicher austauschen können. Die Aufgaben können einer oder mehreren Verarbeitungseinheiten innerhalb eines GPC 450 zugewiesen werden, und die Anweisungen werden für die Ausführung durch mindestens einen Warp geplant.
  • Die Arbeitsverteilungseinheit 425 kommuniziert über die XBar 470 mit dem einen oder mehreren GPCs 450. Die XBar 470 ist ein Verbindungsnetzwerk, das viele der Einheiten der PPU 400 mit anderen Einheiten der PPU 400 verbindet. Beispielsweise kann die XBar 470 so konfiguriert sein, dass sie die Arbeitsverteilungseinheit 425 mit einem bestimmten GPC 450 koppelt. Obwohl nicht explizit dargestellt, können auch eine oder mehrere andere Einheiten der PPU 400 über den Hub 430 mit der XBar 470 verbunden sein.
  • Die Aufgaben werden von der Scheduler-Einheit 420 verwaltet und von der Arbeitsverteilungseinheit 425 an einen GPC 450 weitergeleitet. Der GPC 450 ist so konfiguriert, dass er die Aufgabe verarbeitet und Ergebnisse erzeugt. Die Ergebnisse können von anderen Aufgaben innerhalb des GPC 450 verbraucht, über die XBar 470 an einen anderen GPC 450 weitergeleitet oder im Speicher 404 gespeichert werden. Die Ergebnisse können in den Speicher 404 über die Speicherpartitionseinheiten 480 geschrieben werden, die eine Speicherschnittstelle zum Lesen und Schreiben von Daten in/aus dem Speicher 404 implementieren. Die Ergebnisse können über den NVLink 410 an eine andere PPU 400 oder CPU übertragen werden. In einer Ausführungsform umfasst die PPU 400 eine Anzahl U von Speicherpartitionseinheiten 480, die der Anzahl der separaten und unterschiedlichen Speichergeräte des mit der PPU 400 verbundenen Speichers 404 entspricht. Jeder GPC 450 kann eine Speicherverwaltungseinheit enthalten, um die Übersetzung virtueller Adressen in physikalische Adressen, den Speicherschutz und die Arbitration von Speicheranforderungen zu gewährleisten. In einer Ausführungsform stellt die Speicherverwaltungseinheit einen oder mehrere Adressenübersetzungspuffer (TLBs) zur Verfügung, um die Übersetzung von virtuellen Adressen in physikalische Adressen im Speicher 404 durchzuführen.
  • In einer Ausführungsform umfasst die Speicherpartitionierungseinheit 480 eine Rasteroperations- (ROP)-Einheit, einen Level 2 (L2) Cache und eine Speicherschnittstelle, die mit dem Speicher 404 verbunden ist. Die Speicherschnittstelle kann 32-, 64-, 128-, 1024-Bit-Datenbusse oder ähnliches für die Hochgeschwindigkeitsdatenübertragung implementieren. Die PPU 400 kann mit bis zu Y Speichervorrichtungen verbunden sein, z. B. mit Speicherstapeln mit hoher Bandbreite oder Grafikspeicher mit doppelter Datenrate, Version 5, synchronem dynamischem Direktzugriffsspeicher oder anderen Arten von dauerhaftem Speicher. In einer Ausführungsform implementiert die Speicherschnittstelle eine HBM2-Speicherschnittstelle und Y entspricht der Hälfte von U. In einer Ausführungsform befinden sich die HBM2-Speicherstapel auf demselben physikalischen Gehäuse wie die PPU 400, was im Vergleich zu herkömmlichen GDDR5-SDRAM-Systemen erhebliche Energie- und Flächeneinsparungen ermöglicht. In einer Ausführungsform umfasst jeder HBM2-Stapel vier Speicherchips und Yist gleich 4, wobei jeder HBM2-Stapel zwei 128-Bit-Kanäle pro Chip für insgesamt 8 Kanäle und eine Datenbusbreite von 1024 Bit umfasst.
  • In einer Ausführungsform unterstützt der Speicher 404 den Einzelbitfehlerkorrektur-Doppelbitfehlererkennungs- (SECDED) Fehlerkorrekturcode (ECC) zum Schutz der Daten. ECC bietet eine höhere Zuverlässigkeit für Datenverarbeitungsanwendungen, die empfindlich auf Datenbeschädigungen reagieren. Zuverlässigkeit ist besonders wichtig in großen Cluster-Computing-Umgebungen, in denen die PPUs 400 sehr große Datensätze verarbeiten und/oder Anwendungen über längere Zeiträume laufen lassen.
  • In einer Ausführungsform implementiert die PPU 400 eine mehrstufige Speicherhierarchie. In einer Ausführungsform unterstützt die Speicherpartitionierungseinheit 480 einen einheitlichen Speicher, um einen einzigen einheitlichen virtuellen Adressraum für den CPU- und PPU-400-Speicher bereitzustellen und die gemeinsame Nutzung von Daten zwischen virtuellen Speichersystemen zu ermöglichen. In einer Ausführungsform wird die Häufigkeit der Zugriffe einer PPU 400 auf Speicher auf anderen Prozessoren verfolgt, um sicherzustellen, dass Speicherseiten in den physikalischen Speicher der PPU 400 verschoben werden, die häufiger auf die Seiten zugreift. In einer Ausführungsform unterstützt der NVLink 410 Adressübersetzungsdienste, die es der PPU 400 ermöglichen, direkt auf die Seitentabellen einer CPU zuzugreifen und der PPU 400 vollen Zugriff auf den CPU-Speicher zu gewähren.
  • In einer Ausführungsform übertragen die Copy-Engines Daten zwischen mehreren PPUs 400 oder zwischen PPUs 400 und CPUs. Die Copy-Engines können Seitenfehler für Adressen erzeugen, die nicht in den Seitentabellen abgebildet sind. Die Speicherpartitionierungseinheit 480 kann dann die Fehlseiten bearbeiten, indem sie die Adressen in die Seitentabelle einträgt, woraufhin das Kopiermodul die Übertragung durchführen kann. In einem herkömmlichen System wird der Speicher für mehrere Kopiervorgänge zwischen mehreren Prozessoren gepinnt (z. B. nicht auslagerbar), wodurch der verfügbare Speicher erheblich reduziert wird. Mit einer Hardware-Seitenfehlerbehandlung können Adressen an die Copy Engines weitergegeben werden, ohne dass man sich Gedanken darüber machen muss, ob die Speicherseiten resident sind, und der Kopiervorgang ist transparent.
  • Daten aus dem Speicher 404 oder einem anderen Systemspeicher können von der Speicherpartitionseinheit 480 abgerufen und im L2-Cache 460 gespeichert werden, der sich auf dem Chip befindet und von den verschiedenen GPCs 450 gemeinsam genutzt wird. Wie dargestellt, enthält jede Speicherpartitionseinheit 480 einen Teil des L2-Caches, der einem entsprechenden Speicher 404 zugeordnet ist. Caches der unteren Ebene können dann in verschiedenen Einheiten innerhalb der GPCs 450 implementiert werden. So kann zum Beispiel jede der Verarbeitungseinheiten innerhalb eines GPC 450 einen Cache der Ebene eins (L1) implementieren. Der L1-Cache ist ein privater Speicher, der für eine bestimmte Verarbeitungseinheit bestimmt ist. Der L2-Cache 460 ist mit der Speicherschnittstelle 470 und der XBar 470 gekoppelt, und Daten aus dem L2-Cache können abgerufen und zur Verarbeitung in jedem der L1-Caches gespeichert werden.
  • In einer Ausführungsform implementieren die Verarbeitungseinheiten in jedem GPC 450 eine SIMD-Architektur (Single-Instruction, Multiple-Data), bei der jeder Thread in einer Gruppe von Threads (z. B. ein Warp) so konfiguriert ist, dass er einen anderen Datensatz auf der Grundlage desselben Befehlssatzes verarbeitet. Alle Threads in der Gruppe von Threads führen die gleichen Anweisungen aus. In einer anderen Ausführungsform implementiert die Verarbeitungseinheit eine SIMT-Architektur (Single-Instruction, Multiple Thread), bei der jeder Thread in einer Gruppe von Threads so konfiguriert ist, dass er einen anderen Datensatz auf der Grundlage desselben Befehlssatzes verarbeitet, wobei jedoch einzelne Threads in der Gruppe von Threads während der Ausführung divergieren dürfen. In einer Ausführungsform werden ein Programmzähler, ein Aufrufstapel und ein Ausführungsstatus für jeden Warp beibehalten, wodurch die Gleichzeitigkeit zwischen Warps und die serielle Ausführung innerhalb von Warps ermöglicht wird, wenn die Threads innerhalb des Warps divergieren. In einer anderen Ausführungsform werden ein Programmzähler, ein Aufrufstapel und ein Ausführungsstatus für jeden einzelnen Thread beibehalten, was eine gleiche Gleichzeitigkeit zwischen allen Threads innerhalb und zwischen Warps ermöglicht. Wenn der Ausführungsstatus für jeden einzelnen Thread beibehalten wird, können Threads, die dieselben Anweisungen ausführen, zusammengeführt und parallel ausgeführt werden, um maximale Effizienz zu erzielen.
  • Kooperative Gruppen sind ein Programmiermodell für die Organisation von Gruppen kommunizierender Threads, das es Entwicklern ermöglicht, die Granularität auszudrücken, mit der Threads kommunizieren, und so reichhaltigere, effizientere parallele Dekompositionen zu ermöglichen. Die APIs für den kooperativen Start unterstützen die Synchronisierung zwischen Thread-Blöcken für die Ausführung paralleler Algorithmen. Herkömmliche Programmiermodelle bieten ein einziges, einfaches Konstrukt für die Synchronisierung kooperierender Threads: eine Barriere für alle Threads eines Threadblocks (z. B. die Funktion syncthreads( )). Programmierer möchten jedoch oft Gruppen von Threads mit einer kleineren Granularität als Thread-Blöcke definieren und innerhalb der definierten Gruppen synchronisieren, um eine höhere Leistung, Designflexibilität und Software-Wiederverwendung in Form von gruppenweiten Funktionsschnittstellen zu ermöglichen.
  • Kooperative Gruppen ermöglichen es Programmierern, Gruppen von Threads explizit auf Subblock- (z.B. so klein wie ein einzelner Thread) und Multi-Block-Granularität zu definieren und kollektive Operationen wie die Synchronisation auf den Threads in einer kooperativen Gruppe durchzuführen. Das Programmiermodell unterstützt eine saubere Komposition über Software grenzen hinweg, so dass Bibliotheken und Dienstprogramme innerhalb ihres lokalen Kontexts sicher synchronisieren können, ohne dass Annahmen über die Konvergenz getroffen werden müssen. Die Primitive für kooperative Gruppen ermöglichen neue Muster kooperativer Parallelität, einschließlich Producer-Consumer-Parallelität, opportunistischer Parallelität und globaler Synchronisierung über ein ganzes Netz von Thread-Blöcken.
  • Jede Verarbeitungseinheit umfasst eine große Anzahl (z. B. 128 usw.) verschiedener Verarbeitungskerne (z. B. funktionale Einheiten), die vollständig mit Pipelines, mit einfacher Genauigkeit, mit doppelter Genauigkeit und/oder mit gemischter Genauigkeit arbeiten können und eine arithmetische Gleitkomma-Logikeinheit und eine arithmetische Ganzzahl-Logikeinheit umfassen. In einer Ausführungsform implementieren die arithmetischen Gleitkomma-Logikeinheiten den Standard IEEE 754-2008 für Gleitkomma-Arithmetik. In einer Ausführungsform umfassen die Kerne 64 Gleitkomma-Kerne mit einfacher Genauigkeit (32 Bit), 64 Ganzzahl-Kerne, 32 Gleitkomma-Kerne mit doppelter Genauigkeit (64 Bit) und 8 Tensor-Kerne.
  • Tensor-Kerne, die für die Durchführung von Matrixoperationen konfiguriert sind. Insbesondere sind die Tensor-Kerne so konfiguriert, dass sie Deep-Learning-Matrix-Arithmetik durchführen, wie z. B. GEMM (Matrix-Matrix-Multiplikation) für Faltungsoperationen während des Trainings und der Inferenz von neuronalen Netzen. In einer Ausführungsform arbeitet jeder Tensorkern mit einer 4x4-Matrix und führt eine Matrixmultiplikation und Akkumulationsoperation D=A×B+C durch, wobei A, B, C und D 4x4-Matrizen sind.
  • In einer Ausführungsform können die Matrixmultiplikationseingänge A und B Ganzzahl-, Festkomma- oder Gleitkommamatrizen sein, während die Akkumulationsmatrizen C und D Ganzzahl-, Festkomma- oder Gleitkommamatrizen mit gleicher oder höherer Bitbreite sein können. In einer Ausführungsform arbeiten die Tensorkerne mit ganzzahligen Eingangsdaten von einem, vier oder acht Bit und einer ganzzahligen 32-Bit-Akkumulation. Die 8-Bit-Ganzzahl-Matrixmultiplikation erfordert 1024 Operationen und führt zu einem Produkt mit voller Genauigkeit, das dann durch 32-Bit-Ganzzahladdition mit den anderen Zwischenprodukten zu einer 8x8x16-Matrixmultiplikation akkumuliert wird. In einer Ausführungsform arbeiten Tensor-Cores mit 16-Bit-Gleitkomma-Eingangsdaten mit 32-Bit-Gleitkomma-Akkumulation. Die 16-Bit-Gleitkommamultiplikation erfordert 64 Operationen und ergibt ein Produkt mit voller Genauigkeit, das dann durch 32-Bit-Gleitkommaaddition mit den anderen Zwischenprodukten für eine 4x4x4-Matrixmultiplikation akkumuliert wird. In der Praxis werden Tensor Cores verwendet, um viel größere zweidimensionale oder höherdimensionale Matrixoperationen durchzuführen, die aus diesen kleineren Elementen aufgebaut sind. Eine API, wie z.B. die CUDA 9 C++ API, stellt spezialisierte Matrixlade-, Matrixmultiplikations- und -akkumulations- und Matrixspeicheroperationen zur Verfügung, um Tensor Cores von einem CUDA-C++ Programm aus effizient zu nutzen. Auf der CUDA-Ebene geht die Schnittstelle auf Warp-Ebene von Matrizen der Größe 16x16 aus, die sich über alle 32 Threads des Warps erstrecken.
  • Jede Verarbeitungseinheit kann auch M Spezialfunktionseinheiten (SFUs) umfassen, die spezielle Funktionen ausführen (z. B. Attributauswertung, reziproke Quadratwurzel und dergleichen). In einer Ausführungsform können die SFUs eine Baumverarbeitungseinheit umfassen, die zum Durchlaufen einer hierarchischen Baumdatenstruktur konfiguriert ist. In einer Ausführungsform können die SFUs eine Textureinheit enthalten, die so konfiguriert ist, dass sie Filteroperationen für die Texturkarte durchführt. In einer Ausführungsform sind die Textureinheiten so konfiguriert, dass sie Texturkarten (z. B. ein 2D-Array von Texeln) aus dem Speicher 404 laden und die Texturkarten abtasten, um abgetastete Texturwerte zur Verwendung in Shader-Programmen zu erzeugen, die von der Verarbeitungseinheit ausgeführt werden. In einer Ausführungsform werden die Texturkarten in einem gemeinsam genutzten Speicher gespeichert, der einen L1-Cache umfassen oder einschließen kann. Die Textureinheiten führen Texturoperationen durch, wie z. B. Filteroperationen unter Verwendung von Mip-Maps (z. B. Texturkarten mit unterschiedlichen Detailstufen). In einer Ausführungsform umfasst jede Verarbeitungseinheit zwei Textureinheiten.
  • Jede Verarbeitungseinheit umfasst außerdem N Lade-Speicher-Einheiten (LSUs), die Lade- und Speicheroperationen zwischen dem gemeinsamen Speicher und der Registerdatei durchführen. Jede Verarbeitungseinheit umfasst ein Verbindungsnetzwerk, das jeden der Kerne mit der Registerdatei und die LSU mit der Registerdatei und dem gemeinsamen Speicher verbindet. In einer Ausführungsform ist das Verbindungsnetzwerk eine Kreuzschiene, die so konfiguriert werden kann, dass sie jeden der Kerne mit jedem der Register in der Registerdatei verbindet und die LSUs mit der Registerdatei und Speicherplätzen im gemeinsamen Speicher verbindet.
  • Der gemeinsame Speicher ist ein Array von On-Chip-Speicher, der die Datenspeicherung und Kommunikation zwischen den Verarbeitungseinheiten und zwischen Threads innerhalb einer Verarbeitungseinheit ermöglicht. In einer Ausführungsform umfasst der gemeinsam genutzte Speicher 128 KB Speicherkapazität und befindet sich im Pfad von jeder der Verarbeitungseinheiten zur Speicherpartitionseinheit 480. Der gemeinsame Speicher kann zum Zwischenspeichern von Lese- und Schreibvorgängen verwendet werden. Einer oder mehrere der gemeinsam genutzten Speicher, der L1-Cache, der L2-Cache und der Speicher 404 sind Sicherungsspeicher.
  • Die Kombination von Datencache- und Shared-Memory-Funktionen in einem einzigen Speicherblock bietet die beste Gesamtleistung für beide Arten von Speicherzugriffen. Die Kapazität kann von Programmen, die den gemeinsamen Speicher nicht nutzen, als Cache verwendet werden. Wenn beispielsweise der gemeinsame Speicher so konfiguriert ist, dass die Hälfte der Kapazität genutzt wird, können Textur- und Lade-/Speicheroperationen die verbleibende Kapazität nutzen. Durch die Integration in den gemeinsamen Speicher kann dieser als durchsatzstarke Leitung für Streaming-Daten fungieren und gleichzeitig den Zugriff auf häufig wiederverwendete Daten mit hoher Bandbreite und geringer Latenz ermöglichen.
  • Bei der Konfiguration für allgemeine parallele Berechnungen kann im Vergleich zur Grafikverarbeitung eine einfachere Konfiguration verwendet werden. Insbesondere werden Grafikverarbeitungseinheiten mit fester Funktion umgangen, wodurch ein viel einfacheres Programmiermodell entsteht. In der Konfiguration für allgemeine parallele Berechnungen weist die Arbeitsverteilungseinheit 425 Blöcke von Threads zu und verteilt sie direkt an die Verarbeitungseinheiten innerhalb der GPCs 450. Die Threads führen dasselbe Programm aus, wobei eine eindeutige Thread-ID in der Berechnung verwendet wird, um sicherzustellen, dass jeder Thread eindeutige Ergebnisse erzeugt, wobei die Verarbeitungseinheit(en) zur Ausführung des Programms und zur Durchführung von Berechnungen, der gemeinsam genutzte Speicher zur Kommunikation zwischen den Threads und die LSU zum Lesen und Schreiben des globalen Speichers über den gemeinsam genutzten Speicher und die Speicherpartitionseinheit 480 verwendet werden. Wenn sie für allgemeine parallele Berechnungen konfiguriert sind, können die Verarbeitungseinheiten auch Befehle schreiben, die die Scheduler-Einheit 420 verwenden kann, um neue Arbeiten auf den Verarbeitungseinheiten zu starten.
  • Die PPUs 400 können jeweils einen oder mehrere Verarbeitungskerne und/oder Komponenten davon enthalten und/oder konfiguriert sein, deren Funktionen auszuführen, wie Tensorkerne (TCs), Tensor-Verarbeitungseinheiten (TPUs), Pixel Visual Cores (PVCs), Raytracing (RT) Kerne, Vision Verarbeitung Units (VPUs), Grafikverarbeitungscluster (GPCs), Texturverarbeitungscluster (TPCs), Streaming-Multiprozessoren (SMs), Baum-Traversierungseinheiten (TTUs), Beschleuniger für künstliche Intelligenz (AIAs), Deep Learning-Beschleuniger (DLAs), arithmetisch-logische Einheiten (ALUs), Anwendungsspezifische integrierte Schaltungen (ASICs), Gleitkomma-Einheiten (FPUs), Eingabe/Ausgabe (I/O) Elemente, Peripheral Component Interconnect (PCI) oder Peripheral Component Interconnect Express (PCIe) Elemente und/oder dergleichen.
  • Die PPU 400 kann in einem Tischcomputer, einem Laptop, einem Tablet-Computer, Servern, Supercomputern, einem Smartphone (z.B. einer drahtlosen, tragbaren Vorrichtung), einem persönlichen digitalen Assistenten (PDA), einer Digitalkamera, einem Fahrzeug, einer am Kopf angebrachten Anzeige, einem tragbaren elektronischen Gerät und dergleichen enthalten sein. In einer Ausführungsform ist die PPU 400 auf einem einzigen Halbleitersubstrat ausgeführt. In einer anderen Ausführungsform ist die PPU 400 in einem System-on-a-Chip (SoC) zusammen mit einer oder mehreren anderen Vorrichtungen wie zusätzlichen PPUs 400, dem Speicher 404, einer CPU mit reduziertem Befehlssatz (RISC), einer Speicherverwaltungseinheit (MMU), einem Digital-Analog-Wandler (DAC) und dergleichen enthalten.
  • In einer Ausführungsform kann die PPU 400 in einer Grafikkarte enthalten sein, die eine oder mehrere Speichervorrichtungen enthält. Die Grafikkarte kann so konfiguriert sein, dass sie mit einem PCIe-Steckplatz auf einer Hauptplatine eines Desktop-Computers verbunden werden kann. In einer weiteren Ausführungsform kann die PPU 400 eine integrierte Grafikverarbeitungseinheit (iGPU) oder ein Parallelprozessor sein, der in den Chipsatz der Hauptplatine integriert ist. In einer weiteren Ausführungsform kann die PPU 400 in rekonfigurierbarer Hardware realisiert sein. In einer weiteren Ausführungsform können Teile der PPU 400 in rekonfigurierbarer Hardware realisiert werden.
  • Beispielhaftes Rechensystem
  • Systeme mit mehreren GPUs und CPUs werden in einer Vielzahl von Branchen eingesetzt, da die Entwickler mehr Parallelität in Anwendungen wie der künstlichen Intelligenz aufdecken und ausnutzen. Leistungsstarke, GPU-beschleunigte Systeme mit zehn bis mehreren Tausend Rechenknoten werden in Rechenzentren, Forschungseinrichtungen und Supercomputern eingesetzt, um immer größere Probleme zu lösen. Da die Anzahl der Verarbeitungsgeräte innerhalb der Hochleistungssysteme steigt, müssen die Kommunikations- und Datenübertragungsmechanismen skaliert werden, um die erhöhte Bandbreite zu unterstützen.
  • 5A ist ein konzeptionelles Diagramm eines Verarbeitungssystems 500, das unter Verwendung der PPU 400 aus 4 gemäß einer Ausführungsform implementiert wurde. Das beispielhafte System 500 kann so konfiguriert sein, dass es das in 1C, 2B und/oder 3B gezeigte Verfahren 150, 250 und/oder 330 implementiert. Das Verarbeitungssystem 500 umfasst eine CPU 530, einen Switch 510 und mehrere PPUs 400 sowie entsprechende Speicher 404.
  • Der NVLink 410 stellt Hochgeschwindigkeitskommunikationsverbindungen zwischen den einzelnen PPUs 400 her. Obwohl in 5B eine bestimmte Anzahl von NVLink 410- und Interconnect 402-Verbindungen dargestellt ist, kann die Anzahl der Verbindungen zu jeder PPU 400 und der CPU 530 variieren. Der Switch 510 bildet die Schnittstelle zwischen der Verbindung 402 und der CPU 530. Die PPUs 400, die Speicher 404 und die NVLinks 410 können auf einer einzigen Halbleiterplattform angeordnet sein, um ein Parallelverarbeitungsmodul 525 zu bilden. In einer Ausführungsform unterstützt der Switch 510 zwei oder mehr Protokolle, um eine Schnittstelle zwischen verschiedenen Verbindungen und/oder Links zu bilden.
  • In einer anderen Ausführungsform (nicht dargestellt) stellt der NVLink 410 eine oder mehrere Hochgeschwindigkeits-Kommunikationsverbindungen zwischen jeder der PPUs 400 und der CPU 530 bereit, und der Switch 510 bildet eine Schnittstelle zwischen der Zwischenverbindung 402 und jeder der PPUs 400. Die PPUs 400, die Speicher 404 und die Verbindung 402 können auf einer einzigen Halbleiterplattform angeordnet sein, um ein Parallelverarbeitungsmodul 525 zu bilden. In einer weiteren Ausführungsform (nicht dargestellt) stellt die Verbindung 402 eine oder mehrere Kommunikationsverbindungen zwischen jeder der PPUs 400 und der CPU 530 bereit, und der Switch 510 bildet eine Schnittstelle zwischen jeder der PPUs 400 unter Verwendung des NVLink 410, um eine oder mehrere Hochgeschwindigkeitskommunikationsverbindungen zwischen den PPUs 400 bereitzustellen. In einer anderen Ausführungsform (nicht dargestellt) stellt der NVLink 410 eine oder mehrere Hochgeschwindigkeits-Kommunikationsverbindungen zwischen den PPUs 400 und der CPU 530 über den Switch 510 bereit. In einer weiteren Ausführungsform (nicht dargestellt) stellt die Verbindung 402 eine oder mehrere Kommunikationsverbindungen zwischen den einzelnen PPUs 400 direkt her. Eine oder mehrere der NVLink 410-Hochgeschwindigkeits-Kommunikationsverbindungen können als physikalische NVLink-Verbindung oder entweder als On-Chip- oder On-Die-Verbindung implementiert werden, die dasselbe Protokoll wie der NVLink 410 verwendet.
  • Im Zusammenhang mit der vorliegenden Beschreibung kann sich eine einzelne Halbleiterplattform auf eine einzige einheitliche integrierte Schaltung auf Halbleiterbasis beziehen, die auf einem Die oder Chip hergestellt wird. Der Begriff Einzelhalbleiterplattform kann sich auch auf Multi-Chip-Module mit erhöhter Konnektivität beziehen, die einen On-Chip-Betrieb simulieren und wesentliche Verbesserungen gegenüber einer herkömmlichen Bus-Implementierung bieten. Natürlich können die verschiedenen Schaltungen oder Geräte auch separat oder in verschiedenen Kombinationen von Halbleiterplattformen untergebracht werden, je nach den Wünschen des Benutzers. Alternativ kann das Parallelverarbeitungsmodul 525 als Leiterplattensubstrat implementiert werden und jede der PPUs 400 und/oder Speicher 404 kann eine Vorrichtung im Gehäuse sein. In einer Ausführungsform befinden sich die CPU 530, der Switch 510 und das Parallelverarbeitungsmodul 525 auf einer einzigen Halbleiterplattform.
  • In einer Ausführungsform beträgt die Signalisierungsrate jedes NVLink 410 20 bis 25 Gigabit/Sekunde, und jede PPU 400 umfasst sechs NVLink 410-Schnittstellen (wie in 5A dargestellt, sind fünf NVLink 410-Schnittstellen für jede PPU 400 enthalten). Jeder NVLink 410 bietet eine Datenübertragungsrate von 25 Gigabyte/Sekunde in jeder Richtung, wobei sechs Verbindungen 400 Gigabyte/Sekunde liefern. Die NVLinks 410 können ausschließlich für die PPU-zu-PPU-Kommunikation (siehe 5A) oder für eine Kombination aus PPU-zu-PPU- und PPU-zu-CPU-Kommunikation verwendet werden, wenn die CPU 530 auch eine oder mehrere NVLink 410-Schnittstellen enthält.
  • In einer Ausführungsform ermöglicht der NVLink 410 einen direkten Lade-/Speicher-/Atomzugriff von der CPU 530 auf den Speicher 404 der einzelnen PPUs. In einer Ausführungsform unterstützt der NVLink 410 Kohärenzoperationen, so dass aus den Speichern 404 gelesene Daten in der Cache-Hierarchie der CPU 530 gespeichert werden können, was die Cache-Zugriffslatenz für die CPU 530 verringert. In einer Ausführungsform umfasst der NVLink 410 Unterstützung für Adressübersetzungsdienste (ATS), so dass die PPU 400 direkt auf Seitentabellen innerhalb der CPU 530 zugreifen kann. Einer oder mehrere der NVLinks 410 können auch so konfiguriert werden, dass sie in einem stromsparenden Modus arbeiten.
  • 5B zeigt ein beispielhaftes System 565, in dem die verschiedenen Architekturen und/oder Funktionen der verschiedenen vorherigen Ausführungsformen implementiert werden können. Das Beispielsystem 565 kann so konfiguriert sein, dass es die in den 1C, 2B und/oder 3B gezeigten Verfahren 150, 250 und/oder 330 durchführt.
  • Wie dargestellt, ist ein System 565 vorgesehen, das mindestens eine Zentraleinheit 530 enthält, die mit einem Kommunikationsbus 575 verbunden ist. Der Kommunikationsbus 575 kann direkt oder indirekt eines oder mehrere der folgenden Geräte verbinden: Hauptspeicher 540, Netzwerkschnittstelle 535, CPU(s) 530, Anzeigegerät(e) 545, Eingabegerät(e) 560, Switch 510 und Parallelverarbeitungssystem 525. Der Kommunikationsbus 575 kann unter Verwendung eines beliebigen geeigneten Protokolls implementiert werden und kann eine oder mehrere Verbindungen oder Busse darstellen, wie z. B. einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Der Kommunikationsbus 575 kann einen oder mehrere Bus- oder Verbindungstypen umfassen, z. B. einen ISA-Bus (Industry Standard Architecture), einen EISA-Bus (Extended Industry Standard Architecture), einen VESA-Bus (Video Electronics Standards Association), einen PCI-Bus (Peripheral Component Interconnect), einen PCIe-Bus (Peripheral Component Interconnect Express), HyperTransport und/oder eine andere Art von Bus oder Verbindung. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen den Komponenten. So kann beispielsweise die CPU(s) 530 direkt mit dem Hauptspeicher 540 verbunden sein. Ferner können die CPU(s) 530 direkt mit dem Parallelverarbeitungssystem 525 verbunden sein. Bei einer direkten oder Punkt-zu-Punkt-Verbindung zwischen Komponenten kann der Kommunikationsbus 575 eine PCIe-Verbindung enthalten, um die Verbindung herzustellen. In diesen Beispielen muss das System 565 nicht unbedingt einen PCI-Bus enthalten.
  • Obwohl die verschiedenen Blöcke in 5B als über den Kommunikationsbus 575 mit Leitungen verbunden dargestellt sind, ist dies nicht als einschränkend zu verstehen und dient nur der Übersichtlichkeit. In einigen Ausführungsformen kann beispielsweise eine Präsentationskomponente, wie die Anzeigevorrichtung(en) 545, als I/O-Komponente betrachtet werden, wie die Eingabevorrichtung(en) 560 (wenn z. B. die Anzeige ein Touchscreen ist). Ein weiteres Beispiel ist, dass die CPU(s) 530 und/oder das Parallelverarbeitungssystem 525 einen Speicher enthalten können (z. B. kann der Hauptspeicher 540 zusätzlich zu dem Parallelverarbeitungssystem 525, den CPUs 530 und/oder anderen Komponenten ein Speichergerät darstellen). Mit anderen Worten, die Rechnereinrichtung von 5B ist lediglich illustrativ. Es wird nicht zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Gerät“, „mobiles Gerät“, „Handheld-Gerät“, „Spielkonsole“, „elektronische Steuereinheit (ECU)“, „Virtual-Reality-System“ und/oder anderen Geräte- oder Systemtypen unterschieden, da sie alle in den Anwendungsbereich der Rechenvorrichtung von 5B fallen.
  • Das System 565 umfasst auch einen Hauptspeicher 540. Steuerlogik (Software) und Daten werden im Hauptspeicher 540 gespeichert, der die Form einer Vielzahl von computerlesbaren Medien annehmen kann. Bei den computerlesbaren Medien kann es sich um alle verfügbaren Medien handeln, auf die das System 565 zugreifen kann. Die computerlesbaren Medien können sowohl flüchtige als auch nichtflüchtige Medien sowie entfernbare und nichtentfernbare Medien umfassen. Als Beispiel und ohne Einschränkung können die computerlesbaren Medien Computerspeichermedien und Kommunikationsmedien umfassen.
  • Die Computerspeichermedien können sowohl flüchtige als auch nichtflüchtige Medien und/oder entfernbare und nicht entfernbare Medien umfassen, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen wie computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder anderen Datentypen implementiert sind. Zum Beispiel kann der Hauptspeicher 540 computerlesbare Anweisungen speichern (z.B., die ein oder mehrere Programme und/oder ein oder mehrere Programmelemente darstellen, wie z.B. ein Betriebssystem. Computerspeichermedien können unter anderem RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium umfassen, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das das System 565 zugreifen kann. Der hier verwendete Begriff „Computerspeichermedium“ umfasst nicht per se Signale.
  • Die Computerspeichermedien können computerlesbare Befehle, Datenstrukturen, Programmmodule und/oder andere Datentypen in einem modulierten Datensignal wie z. B. einer Trägerwelle oder einem anderen Transportmechanismus verkörpern und umfassen beliebige Informationsübertragungsmedien. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, bei dem eine oder mehrere seiner Eigenschaften so eingestellt oder verändert sind, dass Informationen in dem Signal codiert werden. Die Computerspeichermedien können beispielsweise verdrahtete Medien, wie ein verdrahtetes Netzwerk oder eine direkte Kabelverbindung, und drahtlose Medien, wie akustische, RF-, Infrarot- und andere drahtlose Medien, umfassen. Kombinationen der oben genannten Medien sollten ebenfalls in den Bereich der computerlesbaren Medien fallen.
  • Bei der Ausführung von Computerprogrammen kann das System 565 verschiedene Funktionen ausführen. Die CPU(s) 530 kann/können so konfiguriert sein, dass sie zumindest einige der computerlesbaren Anweisungen ausführen, um eine oder mehrere Komponenten des Systems 565 zu steuern, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Die CPU(s) 530 können jeweils einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) umfassen, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPU(s) 530 kann/können jede Art von Prozessor umfassen und je nach Art des implementierten Systems 565 verschiedene Arten von Prozessoren umfassen (z. B. Prozessoren mit weniger Kernen für mobile Geräte und Prozessoren mit mehr Kernen für Server). Je nach Art des Systems 565 kann der Prozessor beispielsweise ein Advanced RISC Machines (ARM)-Prozessor sein, der mit Reduced Instruction Set Computing (RISC) arbeitet, oder ein x86-Prozessor, der mit Complex Instruction Set Computing (CISC) arbeitet. Das System 565 kann eine oder mehrere CPUs 530 zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzlichen Coprozessoren, wie z. B. mathematischen Coprozessoren, enthalten.
  • Zusätzlich zu oder alternativ zu der/den CPU(s) 530 kann das Parallelverarbeitungsmodul 525 so konfiguriert sein, dass es zumindest einige der computerlesbaren Anweisungen ausführt, um eine oder mehrere Komponenten des Systems 565 zu steuern, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Das Parallelverarbeitungsmodul 525 kann vom System 565 zum Rendern von Grafiken (z. B. 3D-Grafiken) oder zur Durchführung von Allzweckberechnungen verwendet werden. Beispielsweise kann das Parallelverarbeitungsmodul 525 für Allzweckberechnungen auf GPUs (GPGPU) verwendet werden. In Ausführungsformen können die CPU(s) 530 und/oder das Parallelverarbeitungsmodul 525 diskret oder gemeinsam eine beliebige Kombination der Methoden, Prozesse und/oder Teile davon durchführen.
  • Das System 565 umfasst auch die Eingabevorrichtung(en) 560, das Parallelverarbeitungssystem 525 und die Anzeigevorrichtung(en) 545. Die Anzeigevorrichtung(en) 545 kann/können eine Anzeige (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Head-up-Display (HUD), andere Anzeigetypen oder eine Kombination davon), Lautsprecher und/oder andere Präsentationskomponenten umfassen. Die Anzeigevorrichtung(en) 545 kann (können) Daten von anderen Komponenten (z. B. dem Parallelverarbeitungssystem 525, der (den) CPU(s) 530 usw.) empfangen und die Daten ausgeben (z. B. als Bild, Video, Ton usw.).
  • Die Netzwerkschnittstelle 535 kann es ermöglichen, dass das System 565 logisch mit anderen Geräten verbunden wird, einschließlich der Eingabegeräte 560, der Anzeigevorrichtung(en) 545 und/oder anderer Komponenten, von denen einige in das System 565 eingebaut (z. B. integriert) sein können. Illustrative Eingabegeräte 560 umfassen ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Gamecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, ein drahtloses Gerät usw. Die Eingabegeräte 560 können eine natürliche Benutzerschnittstelle (NUI) bereitstellen, die Luftgesten, Sprache oder andere physiologische Eingaben eines Benutzers verarbeitet. In einigen Fällen können die Eingaben zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination aus Spracherkennung, Stifterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch neben dem Bildschirm, Luftgesten, Kopf- und Augenverfolgung und Berührungserkennung (wie unten ausführlicher beschrieben) in Verbindung mit einer Anzeige des Systems 565 implementieren. Das System 565 kann Tiefenkameras, wie z. B. stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon, zur Gestenerkennung und -erfassung enthalten. Darüber hinaus kann das System 565 Beschleunigungsmesser oder Gyroskope enthalten (z. B. als Teil einer Trägheitsmesseinheit (IMU)), die die Erkennung von Bewegungen ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope vom System 565 verwendet werden, um eine immersive erweiterte Realität oder virtuelle Realität zu rendern.
  • Darüber hinaus kann das System 565 über eine Netzwerkschnittstelle 535 zu Kommunikationszwecken mit einem Netzwerk (z. B. einem Telekommunikationsnetzwerk, einem lokalen Netzwerk (LAN), einem drahtlosen Netzwerk, einem Weitverkehrsnetzwerk (WAN) wie dem Internet, einem Peer-to-Peer-Netzwerk, einem Kabelnetzwerk oder Ähnlichem) verbunden sein. Das System 565 kann in ein verteiltes Netzwerk und/oder eine Cloud-Computing-Umgebung eingebunden sein.
  • Die Netzwerkschnittstelle 535 kann einen oder mehrere Empfänger, Sender und/oder Transceiver enthalten, die es dem System 565 ermöglichen, mit anderen Computergeräten über ein elektronisches Kommunikationsnetzwerk zu kommunizieren, einschließlich drahtgebundener und/oder drahtloser Kommunikation. Die Netzwerkschnittstelle 535 kann als Netzwerkschnittstellen-Controller (NIC) implementiert sein, der eine oder mehrere Datenverarbeitungseinheiten (DPUs) enthält, um Operationen wie (zum Beispiel und ohne Einschränkung) Paketanalyse und Beschleunigung der Netzwerkverarbeitung und - kommunikation durchzuführen. Die Netzwerkschnittstelle 535 kann Komponenten und Funktionen enthalten, um die Kommunikation über eine Reihe verschiedener Netzwerke zu ermöglichen, wie z. B. drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), kabelgebundene Netzwerke (z. B. Kommunikation über Ethernet oder InfiniBand), Weitverkehrsnetzwerke mit geringer Leistung (z. B. LoRaWAN, SigFox usw.) und/oder das Internet.
  • Das System 565 kann auch einen Sekundärspeicher enthalten (nicht dargestellt). Der Sekundärspeicher umfasst beispielsweise ein Festplattenlaufwerk und/oder ein Wechselspeicherlaufwerk, das ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Compact-Disk-Laufwerk, ein DVD-Laufwerk, ein Aufzeichnungsgerät oder einen USB-Flash-Speicher (Universal Serial Bus) darstellt. Das Wechselspeicherlaufwerk liest von einem Wechselspeicher und/oder schreibt auf einen Wechselspeicher in bekannter Weise. Das System 565 kann auch eine festverdrahtete Stromversorgung, eine Batteriestromversorgung oder eine Kombination davon enthalten (nicht dargestellt). Die Stromversorgung kann das System 565 mit Strom versorgen, um den Betrieb der Komponenten des Systems 565 zu ermöglichen.
  • Jedes der vorgenannten Module und/oder Geräte kann sogar auf einer einzigen Halbleiterplattform angeordnet sein, um das System 565 zu bilden. Alternativ können die verschiedenen Module auch separat oder in verschiedenen Kombinationen von Halbleiterplattformen nach den Wünschen des Benutzers angeordnet werden. Obwohl oben verschiedene Ausführungsformen beschrieben wurden, sollten diese nur als Beispiel und nicht als Einschränkung verstanden werden. Daher sollten die Breite und der Umfang einer bevorzugten Ausführungsform nicht durch eine der oben beschriebenen beispielhaften Ausführungsformen eingeschränkt werden, sondern nur in Übereinstimmung mit den folgenden Ansprüchen und deren Äquivalenten definiert werden.
  • Beispielhafte Netzwerkumgebungen
  • Netzwerkumgebungen, die zur Verwendung bei der Implementierung von Ausführungsformen der Offenlegung geeignet sind, können ein oder mehrere Client-Geräte, Server, Network Attached Storage (NAS), andere Backend-Geräte und/oder andere Gerätetypen umfassen. Die Client-Geräte, Server und/oder anderen Gerätetypen (z. B. jedes Gerät) können auf einer oder mehreren Instanzen des Verarbeitungssystems 500 von 5A und/oder des Beispielsystems 565 von 5B implementiert werden - z. B. kann jedes Gerät ähnliche Komponenten, Merkmale und/oder Funktionalität des Verarbeitungssystems 500 und/oder des Beispielsystems 565 enthalten.
  • Die Komponenten einer Netzumgebung können über ein oder mehrere Netze miteinander kommunizieren, die drahtgebunden, drahtlos oder beides sein können. Das Netz kann mehrere Netze oder ein Netz von Netzen umfassen. Beispielsweise kann das Netzwerk ein oder mehrere Wide Area Networks (WANs), ein oder mehrere lokale Netzwerke (LANs), ein oder mehrere öffentliche Netzwerke wie das Internet und/oder ein öffentliches Fernsprechwählnetz (PSTN) und/oder ein oder mehrere private Netzwerke umfassen. Wenn das Netz ein drahtloses Telekommunikationsnetz umfasst, können Komponenten wie eine Basisstation, ein Kommunikationsturm oder sogar Zugangspunkte (sowie andere Komponenten) eine drahtlose Konnektivität bieten.
  • Zu den kompatiblen Netzwerkumgebungen gehören eine oder mehrere Peer-to-Peer-Netzwerkumgebungen - in diesem Fall kann ein Server nicht in einer Netzwerkumgebung enthalten sein - und eine oder mehrere Client-Server-Netzwerkumgebungen - in diesem Fall können ein oder mehrere Server in einer Netzwerkumgebung enthalten sein. In Peer-to-Peer-Netzwerkumgebungen kann die hier beschriebene Funktionalität in Bezug auf einen oder mehrere Server auf einer beliebigen Anzahl von Client-Geräten implementiert werden.
  • In mindestens einer Ausführungsform kann eine Netzumgebung eine oder mehrere Cloud-basierte Netzumgebungen, eine verteilte Rechenumgebung, eine Kombination davon usw. umfassen. Eine Cloud-basierte Netzwerkumgebung kann eine Rahmenschicht, einen Job Scheduler, einen Ressourcenmanager und ein verteiltes Dateisystem umfassen, die auf einem oder mehreren Servern implementiert sind, die einen oder mehrere Kemnetzwerkserver und/oder Edge-Server umfassen können. Eine Rahmenschicht kann einen Rahmen zur Unterstützung von Software einer Softwareschicht und/oder einer oder mehrerer Anwendungen einer Anwendungsschicht umfassen. Die Software oder die Anwendung(en) können jeweils webbasierte Dienstsoftware oder Anwendungen umfassen. In Ausführungsformen können ein oder mehrere Client-Geräte die webbasierte Dienstsoftware oder Anwendungen nutzen (z. B. durch Zugriff auf die Dienstsoftware und/oder Anwendungen über eine oder mehrere Anwendungsprogrammierschnittstellen (APIs)). Bei der Rahmenschicht kann es sich um eine Art von freiem und quelloffenem Software-Webanwendungs-Framework handeln, das z. B. ein verteiltes Dateisystem für die Verarbeitung großer Datenmengen (z. B. „Big Data“) verwendet, ohne darauf beschränkt zu sein.
  • Eine Cloud-basierte Netzwerkumgebung kann Cloud-Computing und/oder Cloud-Speicher bereitstellen, die eine beliebige Kombination der hier beschriebenen Rechen- und/oder Datenspeicherfunktionen (oder einen oder mehrere Teile davon) ausführen. Jede dieser verschiedenen Funktionen kann über mehrere Standorte von zentralen oder Kernservern (z. B. von einem oder mehreren Datenzentren, die über einen Staat, eine Region, ein Land, den Globus usw. verteilt sein können) verteilt sein. Befindet sich eine Verbindung zu einem Benutzer (z. B. einem Client-Gerät) relativ nahe an einem oder mehreren Edge-Servern, kann ein Kemserver zumindest einen Teil der Funktionalität dem oder den Edge-Servern zuweisen. Eine Cloud-basierte Netzwerkumgebung kann privat (z. B. auf eine einzelne Organisation beschränkt), öffentlich (z. B. für viele Organisationen verfügbar) und/oder eine Kombination davon (z. B. eine hybride Cloud-Umgebung) sein.
  • Das (die) Client-Gerät(e) kann (können) zumindest einige der Komponenten, Merkmale und Funktionen des Beispielverarbeitungssystems 500 von 5A und/oder des Beispielsystems 565 von 5B enthalten. Ein Client-Gerät kann beispielsweise ein Personal Computer (PC), ein Laptop, ein mobiles Gerät, ein Smartphone, ein Tablet-Computer, eine Smartwatch, ein tragbarer Computer, ein persönlicher digitaler Assistent (PDA), ein MP3-Player, ein Virtual-Reality-Headset, ein Global Positioning System (GPS) oder ein Gerät, ein Videoplayer, eine Videokamera, ein Überwachungsgerät oder -system, ein Fahrzeug ein Boot, ein Luftschiff, eine virtuelle Maschine, eine Drohne, ein Roboter, ein tragbares Kommunikationsgerät, ein Krankenhausgerät, ein Spielgerät oder -system, ein Unterhaltungssystem, ein Fahrzeugcomputersystem, ein eingebettetes Systemsteuergerät, eine Fernbedienung, ein Gerät, ein Unterhaltungselektronikgerät, eine Workstation, ein Edge-Gerät, eine beliebige Kombination dieser beschriebenen Geräte oder jedes andere geeignete Gerät.
  • Maschinelles Lernen
  • Tiefe neuronale Netze (DNNs), die auf Prozessoren wie der PPU 400 entwickelt wurden, werden für verschiedene Anwendungsfälle eingesetzt, von selbstfahrenden Autos bis zur schnelleren Entwicklung von Medikamenten, von der automatischen Bildunterschrift in Online-Bilddatenbanken bis zur intelligenten Echtzeit-Sprachübersetzung in Video-Chat-Anwendungen. Deep Learning ist eine Technik, die den neuronalen Lernprozess des menschlichen Gehirns modelliert, das kontinuierlich lernt, immer intelligenter wird und mit der Zeit immer genauere Ergebnisse liefert. Ein Kind lernt anfangs von einem Erwachsenen, verschiedene Formen richtig zu erkennen und zu klassifizieren, bis es schließlich in der Lage ist, Formen ohne weitere Anleitung zu erkennen. In ähnlicher Weise muss ein Deep-Learning- oder neuronales Lemsystem in der Objekterkennung und -klassifizierung trainiert werden, damit es intelligenter und effizienter bei der Erkennung von einfachen Objekten, verdeckten Objekten usw. wird und den Objekten auch einen Kontext zuordnen kann.
  • Auf der einfachsten Ebene betrachten die Neuronen im menschlichen Gehirn die verschiedenen Eingaben, die sie erhalten, ordnen jeder dieser Eingaben eine bestimmte Bedeutung zu und leiten die Ergebnisse an andere Neuronen weiter, die darauf reagieren. Ein künstliches Neuron oder Perzeptron ist das einfachste Modell eines neuronalen Netzes. In einem Beispiel kann ein Perzeptron eine oder mehrere Eingaben erhalten, die verschiedene Merkmale eines Objekts darstellen, für dessen Erkennung und Klassifizierung das Perzeptron trainiert wird, und jedem dieser Merkmale wird ein bestimmtes Gewicht zugewiesen, das auf der Bedeutung dieses Merkmals bei der Definition der Form eines Objekts beruht.
  • Ein Modell eines tiefen neuronalen Netzwerks (DNN) enthält mehrere Schichten mit vielen verbundenen Knoten (z. B. Perzeptronen, Boltzmann-Maschinen, radiale Basisfunktionen, Faltungsschichten usw.), die mit enormen Mengen von Eingabedaten trainiert werden können, um komplexe Probleme schnell und mit hoher Genauigkeit zu lösen. In einem Beispiel zerlegt eine erste Schicht des DNN-Modells ein Eingabebild eines Autos in verschiedene Abschnitte und sucht nach grundlegenden Mustern wie Linien und Winkeln. Die zweite Schicht setzt die Linien zusammen und sucht nach übergeordneten Mustern wie Rädern, Windschutzscheiben und Spiegeln. Die nächste Schicht identifiziert den Fahrzeugtyp, und die letzten Schichten erzeugen ein Etikett für das Eingabebild, das das Modell einer bestimmten Automarke identifiziert.
  • Sobald das DNN trainiert ist, kann es eingesetzt und zur Identifizierung und Klassifizierung von Objekten oder Mustern in einem als Inferenz bezeichneten Prozess verwendet werden. Beispiele für Inferenz (der Prozess, durch den ein DNN nützliche Informationen aus einer gegebenen Eingabe extrahiert) sind die Identifizierung handgeschriebener Zahlen auf Schecks, die in Geldautomaten eingezahlt werden, die Identifizierung von Bildern von Freunden auf Fotos, die Bereitstellung von Filmempfehlungen für über fünfzig Millionen Nutzer, die Identifizierung und Klassifizierung verschiedener Arten von Autos, Fußgängern und Straßengefahren in fahrerlosen Autos oder die Übersetzung menschlicher Sprache in Echtzeit.
  • Während des Trainings durchlaufen die Daten das DNN in einer Vorwärtspropagationsphase, bis eine Vorhersage erstellt wird, die eine der Eingabe entsprechende Bezeichnung angibt. Wenn das neuronale Netz die Eingabe nicht korrekt kennzeichnet, werden die Fehler zwischen der korrekten Kennzeichnung und der vorhergesagten Kennzeichnung analysiert, und die Gewichte werden für jedes Merkmal in einer Rückwärtspropagationsphase angepasst, bis das DNN die Eingabe und andere Eingaben in einem Trainingsdatensatz korrekt kennzeichnet. Das Training komplexer neuronaler Netze erfordert eine enorme parallele Rechenleistung, einschließlich Gleitkommamultiplikationen und - additionen, die von der PPU 400 unterstützt werden. Die Inferenz ist weniger rechenintensiv als das Training, da es sich um einen latenzabhängigen Prozess handelt, bei dem ein trainiertes neuronales Netz auf neue Eingaben angewendet wird, die es zuvor noch nicht gesehen hat, um Bilder zu klassifizieren, Emotionen zu erkennen, Empfehlungen zu identifizieren, Sprache zu erkennen und zu übersetzen und allgemein neue Informationen abzuleiten.
  • Neuronale Netze stützen sich in hohem Maße auf mathematische Matrixoperationen, und komplexe mehrschichtige Netze erfordern enorme Mengen an Gleitkommaleistung und Bandbreite, um sowohl effizient als auch schnell zu sein. Mit Tausenden von Rechenkernen, die für Matrix-Mathematik-Operationen optimiert sind und eine Leistung von mehreren Dutzend bis Hunderten von TFLOPS bieten, ist die PPU 400 eine Rechenplattform, die die für Anwendungen der künstlichen Intelligenz und des maschinellen Lernens, die auf tiefen neuronalen Netzen basieren, erforderliche Leistung liefert.
  • Darüber hinaus können Daten wie Bilder, vorhergesagte Herzfrequenzen und/oder vorhergesagte Atemfrequenzen, die unter Anwendung einer oder mehrerer der hier offenbarten Techniken erzeugt wurden, zum Trainieren, Testen oder Zertifizieren von DNNs verwendet werden, die zur Erkennung von Objekten und Umgebungen in der realen Welt eingesetzt werden. Solche Daten können Szenen von Straßen, Fabriken, Gebäuden, städtischen Umgebungen, ländlichen Umgebungen, Menschen, Tieren und anderen physikalischen Objekten oder realen Umgebungen umfassen. Solche Daten können zum Trainieren, Testen oder Zertifizieren von DNNs verwendet werden, die in Maschinen oder Robotern eingesetzt werden, um physikalische Objekte in der realen Welt zu manipulieren, zu handhaben oder zu verändern. Darüber hinaus können solche Daten verwendet werden, um DNNs zu trainieren, zu testen oder zu zertifizieren, die in autonomen Fahrzeugen eingesetzt werden, um die Fahrzeuge durch die reale Welt zu navigieren und zu bewegen. Darüber hinaus können Daten, die unter Anwendung einer oder mehrerer der hier offenbarten Techniken erzeugt wurden, verwendet werden, um den Benutzern solcher Maschinen, Roboter und Fahrzeuge Informationen zu vermitteln.
  • 5C zeigt die Komponenten eines beispielhaften Systems 555, das gemäß mindestens einer Ausführungsform zum Trainieren und Nutzen von maschinellem Lernen verwendet werden kann. Wie noch zu erörtern sein wird, können verschiedene Komponenten durch verschiedene Kombinationen von Computergeräten und Ressourcen oder ein einziges Computersystem bereitgestellt werden, das unter der Kontrolle einer einzelnen oder mehrerer Entitäten stehen kann. Außerdem können Aspekte von verschiedenen Stellen ausgelöst, initiiert oder angefordert werden. In mindestens einer Ausführungsform kann das Training eines neuronalen Netzes von einem Anbieter angewiesen werden, der mit der Anbieterumgebung 506 verbunden ist, während in mindestens einer Ausführungsform das Training von einem Kunden oder einem anderen Benutzer angefordert werden kann, der über ein Client-Gerät 502 oder eine andere derartige Ressource Zugang zu einer Anbieterumgebung hat. In mindestens einer Ausführungsform können Trainingsdaten (oder Daten, die von einem trainierten neuronalen Netz zu analysieren sind) von einem Anbieter, einem Benutzer oder einem Drittanbieter von Inhalten 524 bereitgestellt werden. In mindestens einer Ausführungsform kann das Client-Gerät 502 beispielsweise ein Fahrzeug oder ein Objekt sein, das im Auftrag eines Benutzers navigiert werden soll und das Anfragen stellen und/oder Anweisungen empfangen kann, die bei der Navigation eines Geräts helfen.
  • In mindestens einer Ausführungsform können Anfragen über mindestens ein Netzwerk 504 übermittelt werden, um von einer Anbieterumgebung 506 empfangen zu werden. In mindestens einer Ausführungsform kann ein Client-Gerät ein beliebiges geeignetes elektronisches Gerät und/oder Computergerät sein, das es einem Benutzer ermöglicht, solche Anfragen zu erstellen und zu senden, wie z. B. Desktop-Computer, Notebook-Computer, Computer-Server, Smartphones, Tablet-Computer, Spielkonsolen (tragbar oder nicht), Computerprozessoren, Computerlogik und Set-Top-Boxen, aber nicht darauf beschränkt. Netzwerk(e) 504 kann/können jedes geeignete Netzwerk für die Übertragung einer Anfrage oder anderer solcher Daten umfassen, wie z. B. das Internet, ein Intranet, ein Ethernet, ein Mobilfunknetz, ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN), ein persönliches Netzwerk (PAN), ein Ad-hoc-Netz direkter drahtloser Verbindungen zwischen Gleichgestellten und so weiter.
  • In mindestens einer Ausführungsform können Anforderungen an einer Schnittstellenschicht 508 empfangen werden, die in diesem Beispiel Daten an einen Trainings- und Inferenzmanager 532 weiterleiten kann. Der Trainings- und Inferenzmanager 532 kann ein System oder ein Dienst sein, der Hardware und Software für die Verwaltung von Anforderungen und dienstentsprechenden Daten oder Inhalten umfasst. In mindestens einer Ausführungsform kann der Trainings- und Inferenzmanager 532 eine Anforderung zum Trainieren eines neuronalen Netzes empfangen und Daten für eine Anforderung an ein Trainingsmodul 512 liefern. In mindestens einer Ausführungsform kann das Trainingsmodul 512 ein geeignetes Modell oder neuronales Netz auswählen, das verwendet werden soll, wenn es nicht durch die Anforderung spezifiziert wurde, und ein Modell unter Verwendung relevanter Trainingsdaten trainieren. In mindestens einer Ausführungsform kann es sich bei den Trainingsdaten um einen Datenstapel handeln, der in einem Trainingsdatenspeicher 514 gespeichert ist, vom Client-Gerät 502 empfangen oder von einem Drittanbieter 524 bezogen wird. In mindestens einer Ausführungsform kann das Trainingsmodul 512 für das Training der Daten verantwortlich sein. Ein neuronales Netzwerk kann ein beliebiges geeignetes Netzwerk sein, wie z. B. ein rekurrentes neuronales Netzwerk (RNN) oder ein faltbares neuronales Netzwerk (CNN). Sobald ein neuronales Netz trainiert und erfolgreich ausgewertet wurde, kann ein trainiertes neuronales Netz z. B. in einem Modellspeicher 516 gespeichert werden, in dem verschiedene Modelle oder Netze für Benutzer, Anwendungen oder Dienste usw. gespeichert werden können. In mindestens einer Ausführungsform kann es mehrere Modelle für eine einzelne Anwendung oder Entität geben, die auf der Grundlage einer Reihe verschiedener Faktoren verwendet werden können.
  • In mindestens einer Ausführungsform kann zu einem späteren Zeitpunkt eine Anforderung von der Client-Vorrichtung 502 (oder einer anderen derartigen Vorrichtung) für Inhalte (z. B. Pfadbestimmungen) oder Daten empfangen werden, die zumindest teilweise durch ein trainiertes neuronales Netz bestimmt oder beeinflusst werden. Diese Anforderung kann beispielsweise Eingabedaten enthalten, die mit einem neuronalen Netz verarbeitet werden sollen, um eine oder mehrere Inferenzen oder andere Ausgabewerte, Klassifizierungen oder Vorhersagen zu erhalten, oder bei mindestens einer Ausführungsform können Eingabedaten von der Schnittstellenschicht 508 empfangen und an das Inferenzmodul 518 weitergeleitet werden, obwohl auch ein anderes System oder ein anderer Dienst verwendet werden kann. In mindestens einer Ausführungsform kann das Inferenzmodul 518 ein geeignetes trainiertes Netzwerk, wie z. B. ein trainiertes tiefes neuronales Netzwerk (DNN), wie hierin beschrieben, aus dem Modellspeicher 516 beziehen, wenn es nicht bereits lokal im Inferenzmodul 518 gespeichert ist. Das Inferenzmodul 518 kann Daten als Eingabe für ein trainiertes Netzwerk bereitstellen, das dann eine oder mehrere Inferenzen als Ausgabe erzeugen kann. Dies kann zum Beispiel eine Klassifizierung einer Instanz von Eingabedaten beinhalten. In mindestens einer Ausführungsform können die Inferenzen dann an das Client-Gerät 502 übertragen werden, um einem Benutzer angezeigt oder auf andere Weise mitgeteilt zu werden. In mindestens einer Ausführungsform können Kontextdaten für einen Benutzer auch in einem Benutzerkontextdatenspeicher 522 gespeichert werden, der Daten über einen Benutzer enthalten kann, die als Eingabe für ein Netzwerk beim Erzeugen von Inferenzen oder beim Bestimmen von Daten nützlich sein können, die nach dem Erhalten von Instanzen an einen Benutzer zurückgegeben werden. In mindestens einer Ausführungsform können relevante Daten, die zumindest einige Eingabe- oder Inferenzdaten enthalten können, auch in einer lokalen Datenbank 534 für die Verarbeitung künftiger Anfragen gespeichert werden. In mindestens einer Ausführungsform kann ein Benutzer Kontoinformationen oder andere Informationen verwenden, um auf Ressourcen oder Funktionen einer Anbieterumgebung zuzugreifen. In mindestens einer Ausführungsform können, sofern zulässig und verfügbar, auch Benutzerdaten gesammelt und zum weiteren Trainieren von Modellen verwendet werden, um genauere Schlüsse für künftige Anfragen zu ziehen. In mindestens einer Ausführungsform können Anfragen über eine Benutzerschnittstelle zu einer Anwendung für maschinelles Lernen (526), die auf dem Client-Gerät 502 ausgeführt wird, empfangen und die Ergebnisse über die gleiche Schnittstelle angezeigt werden. Ein Client-Gerät kann Ressourcen wie einen Prozessor 528 und einen Speicher 562 zum Erzeugen einer Anfrage und zum Verarbeiten von Ergebnissen oder einer Antwort sowie mindestens ein Datenspeicherelement 552 zum Speichern von Daten für die maschinelle Lemanwendung 526 enthalten.
  • In mindestens einer Ausführungsform ist ein Prozessor 528 (oder ein Prozessor des Trainingsmoduls 512 oder des Inferenzmoduls 518) eine Zentraleinheit (CPU). Wie bereits erwähnt, können Ressourcen in solchen Umgebungen jedoch GPUs nutzen, um Daten zumindest für bestimmte Arten von Anfragen zu verarbeiten. Mit Tausenden von Kernen sind GPUs wie die PPU 300 für die Bewältigung umfangreicher paralleler Arbeitslasten ausgelegt und haben sich daher beim Deep Learning für das Training neuronaler Netze und die Erstellung von Vorhersagen durchgesetzt. Während die Verwendung von Grafikprozessoren für die Offline-Erstellung ein schnelleres Training größerer und komplexerer Modelle ermöglicht hat, bedeutet die Offline-Erstellung von Vorhersagen, dass entweder Eingabefunktionen zur Anfragezeit nicht verwendet werden können oder dass Vorhersagen für alle Permutationen von Funktionen erstellt und in einer Nachschlagetabelle gespeichert werden müssen, um Echtzeitanfragen zu bedienen. Wenn ein Deep-Learning-Framework einen CPU-Modus unterstützt und ein Modell klein und einfach genug ist, um ein Feed-Forward-Verfahren auf einer CPU mit einer angemessenen Latenz durchzuführen, dann könnte ein Dienst auf einer CPU-Instanz ein Modell hosten. In diesem Fall kann das Training offline auf einer GPU und die Inferenz in Echtzeit auf einer CPU durchgeführt werden. Wenn ein CPU-Ansatz nicht praktikabel ist, kann ein Dienst auf einer GPU-Instanz laufen. Da GPUs jedoch andere Leistungs- und Kostenmerkmale als CPUs aufweisen, muss ein Dienst, der einen Laufzeitalgorithmus auf eine GPU auslagert, möglicherweise anders konzipiert werden als ein CPU-basierter Dienst.
  • In mindestens einer Ausführungsform können Videodaten vom Client-Gerät 502 zur Aufbereitung in der Anbieterumgebung 506 bereitgestellt werden. In mindestens einer Ausführungsform können die Videodaten zur Verbesserung auf dem Client-Gerät 502 verarbeitet werden. In mindestens einer Ausführungsform können Videodaten von einem Drittanbieter von Inhalten 524 gestreamt und vom Drittanbieter von Inhalten 524, der Anbieterumgebung 506 oder dem Clientgerät 502 verbessert werden. In mindestens einer Ausführungsform können Videodaten vom Client-Gerät 502 zur Verwendung als Trainingsdaten in der Anbieterumgebung 506 bereitgestellt werden.
  • In mindestens einer Ausführungsform kann das überwachte und/oder unüberwachte Training durch das Client-Gerät 502 und/oder die Anbieterumgebung 506 durchgeführt werden. In mindestens einer Ausführungsform wird ein Satz von Trainingsdaten 514 (z. B. klassifizierte oder markierte Daten) als Eingabe bereitgestellt, um als Trainingsdaten zu fungieren. In mindestens einer Ausführungsform können die Trainingsdaten Instanzen mindestens eines Objekttyps, für den ein neuronales Netz trainiert werden soll, sowie Informationen zur Identifizierung dieses Objekttyps enthalten. In mindestens einer Ausführungsform können die Trainingsdaten einen Satz von Bildern umfassen, die jeweils eine Darstellung eines Objekttyps enthalten, wobei jedes Bild auch ein Etikett, Metadaten, eine Klassifizierung oder andere Informationen zur Identifizierung eines in einem entsprechenden Bild dargestellten Objekttyps enthält oder damit verbunden ist. Verschiedene andere Datentypen können ebenfalls als Trainingsdaten verwendet werden, wie z. B. Textdaten, Audiodaten, Videodaten usw. In mindestens einer Ausführungsform werden die Trainingsdaten 514 als Trainingseingabe für ein Trainingsmodul 512 bereitgestellt. In mindestens einer Ausführungsform kann das Trainingsmodul 512 ein System oder eine Dienstleistung sein, das bzw. die Hardware und Software umfasst, wie z. B. ein oder mehrere Computergeräte, die eine Trainingsanwendung ausführen, um ein neuronales Netz (oder ein anderes Modell oder einen Algorithmus usw.) zu trainieren. In mindestens einer Ausführungsform empfängt das Trainingsmodul 512 eine Anweisung oder Anforderung, die einen Modelltyp angibt, der für das Training verwendet werden soll. In mindestens einer Ausführungsform kann ein Modell ein beliebiges geeignetes statistisches Modell, Netzwerk oder ein Algorithmus sein, das bzw. der für solche Zwecke nützlich ist, wie z. B. ein künstliches neuronales Netzwerk, ein Deep-Learning-Algorithmus, ein lernender Klassifikator, ein Bayes-Netzwerk usw. In mindestens einer Ausführungsform kann das Trainingsmodul 512 ein Ausgangsmodell oder ein anderes untrainiertes Modell aus einem geeigneten Repository 516 auswählen und Trainingsdaten 514 verwenden, um ein Modell zu trainieren, wodurch ein trainiertes Modell (z. B. ein trainiertes tiefes neuronales Netzwerk) erzeugt wird, das verwendet werden kann, um ähnliche Datentypen zu klassifizieren oder andere derartige Schlüsse zu ziehen. In mindestens einer Ausführungsform, in der keine Trainingsdaten verwendet werden, kann dennoch ein geeignetes Ausgangsmodell für das Training auf Eingangsdaten per Trainingsmodul 512 ausgewählt werden.
  • In mindestens einer Ausführungsform kann ein Modell auf verschiedene Weise trainiert werden, was teilweise von der Art des gewählten Modells abhängen kann. In mindestens einer Ausführungsform kann ein Algorithmus für maschinelles Lernen mit einem Satz von Trainingsdaten versorgt werden, wobei ein Modell ein durch einen Trainingsprozess erstelltes Modellartefakt ist. In mindestens einer Ausführungsform enthält jede Instanz von Trainingsdaten eine richtige Antwort (z. B. eine Klassifizierung), die als Ziel oder Zielattribut bezeichnet werden kann. In mindestens einer Ausführungsform findet ein Lernalgorithmus Muster in den Trainingsdaten, die die Attribute der Eingabedaten auf ein Ziel, eine vorherzusagende Antwort, abbilden, und es wird ein maschinelles Lernmodell ausgegeben, das diese Muster erfasst. In mindestens einer Ausführungsform kann ein maschinelles Lemmodell dann verwendet werden, um Vorhersagen für neue Daten zu erhalten, für die kein Ziel vorbestimmt ist.
  • In mindestens einer Ausführungsform kann der Trainings- und Inferenzmanager 532 aus einer Reihe von maschinellen Lernmodellen auswählen, darunter binäre Klassifikation, Multiklassenklassifikation, generative und Regressionsmodelle. In mindestens einer Ausführungsform kann die Art des zu verwendenden Modells zumindest teilweise von der Art des zu prognostizierenden Ziels abhängen.
  • In einer Ausführungsform umfasst die PPU 400 eine Grafikverarbeitungseinheit (GPU). Die PPU 400 ist so konfiguriert, dass sie Befehle empfängt, die Shader-Programme für die Verarbeitung von Grafikdaten angeben. Grafikdaten können als ein Satz von Primitiven wie Punkte, Linien, Dreiecke, Quads, Dreiecksstreifen und dergleichen definiert werden. Typischerweise enthält ein Primitiv Daten, die eine Anzahl von Vertices für das Primitiv (z. B. in einem Modellraum-Koordinatensystem) sowie Attribute spezifizieren, die mit jedem Vertex des Primitivs verbunden sind. Die PPU 400 kann konfiguriert sein, die Grafikprimitive zu verarbeiten, um einen Frame-Puffer zu erzeugen (z. B. Pixeldaten für jedes der Pixel der Anzeige).
  • Eine Anwendung schreibt Modelldaten für eine Szene (z. B. eine Sammlung von Vertices und Attributen) in einen Speicher wie den Systemspeicher oder den Speicher 404. Die Modelldaten definieren jedes der Objekte, die auf einer Anzeige sichtbar sein können. Die Anwendung tätigt dann einen API-Aufruf an den Treiber-Kernel, der die Modelldaten zum Rendern und Anzeigen anfordert. Der Treiber-Kernel liest die Modelldaten und schreibt Befehle in den einen oder die mehreren Streams, um Operationen zur Verarbeitung der Modelldaten durchzuführen. Die Befehle können auf verschiedene Shader-Programme verweisen, die auf den Verarbeitungseinheiten innerhalb der PPU 400 zu implementieren sind, darunter ein oder mehrere Vertex-Shader, Hull-Shader, Domain-Shader, Geometrie-Shader und ein Pixel-Shader. Beispielsweise kann eine oder mehrere der Verarbeitungseinheiten so konfiguriert sein, dass sie ein Vertex-Shader-Programm ausführen, das eine durch die Modelldaten definierte Anzahl von Vertices verarbeitet. In einer Ausführungsform können die verschiedenen Verarbeitungseinheiten so konfiguriert sein, dass sie verschiedene Shader-Programme gleichzeitig ausführen. So kann beispielsweise eine erste Untergruppe von Verarbeitungseinheiten so konfiguriert sein, dass sie ein Vertex-Shader-Programm ausführt, während eine zweite Untergruppe von Verarbeitungseinheiten so konfiguriert sein kann, dass sie ein Pixel-Shader-Programm ausführt. Die erste Untergruppe von Verarbeitungseinheiten verarbeitet Vertex-Daten, um verarbeitete Vertex-Daten zu erzeugen, und schreibt die verarbeiteten Vertex-Daten in den L2-Cache 460 und/oder den Speicher 404. Nachdem die verarbeiteten Vertex-Daten gerastert (z. B. von dreidimensionalen Daten in zweidimensionale Daten im Bildschirmraum transformiert) wurden, um Fragmentdaten zu erzeugen, führt die zweite Untergruppe von Verarbeitungseinheiten einen Pixel-Shader aus, um verarbeitete Fragmentdaten zu erzeugen, die dann mit anderen verarbeiteten Fragmentdaten gemischt und in den Bildpuffer im Speicher 404 geschrieben werden. Das Vertex-Shader-Programm und das Pixel-Shader-Programm können gleichzeitig ausgeführt werden, wobei verschiedene Daten aus derselben Szene in einer Pipeline verarbeitet werden, bis alle Modelldaten für die Szene in den Bildpuffer übertragen wurden. Dann wird der Inhalt des Bildpuffers an eine Anzeigesteuerung zur Anzeige auf einem Anzeigegerät übertragen.
  • Daten wie Bilder, vorhergesagte Herzfrequenzen und/oder vorhergesagte Atemfrequenzen, die unter Anwendung einer oder mehrerer der hier offenbarten Techniken erzeugt wurden, können auf einem Monitor oder einem anderen Anzeigegerät angezeigt werden. In einigen Ausführungsformen kann die Anzeigevorrichtung direkt mit dem System oder Prozessor verbunden sein, der die Bilder erzeugt oder wiedergibt. In anderen Ausführungsformen kann die Anzeigevorrichtung indirekt mit dem System oder Prozessor verbunden sein, beispielsweise über ein Netzwerk. Beispiele für solche Netzwerke sind das Internet, mobile Telekommunikationsnetzwerke, ein WIFI-Netzwerk sowie jedes andere drahtgebundene und/oder drahtlose Netzwerksystem. Wenn das Anzeigegerät indirekt gekoppelt ist, können die vom System oder Prozessor erzeugten Daten über das Netzwerk zum Anzeigegerät gestreamt werden. Ein solches Streaming ermöglicht es beispielsweise, dass Videospiele oder andere Anwendungen, die Bilder wiedergeben, auf einem Server, in einem Datenzentrum oder in einer Cloud-basierten Rechenumgebung ausgeführt werden und die wiedergegebenen Bilder auf ein oder mehrere Benutzergeräte (wie einen Computer, eine Videospielkonsole, ein Smartphone, ein anderes mobiles Gerät usw.) übertragen und angezeigt werden. ) übertragen und angezeigt werden, die physikalisch vom Server oder Rechenzentrum getrennt sind. Daher können die hier offenbarten Techniken zur Verbesserung der gestreamten Bilder und zur Verbesserung von Diensten, die Bilder streamen, wie NVIDIA GeForce Now (GFN), Google Stadia und dergleichen, eingesetzt werden.
  • Beispielhaftes Streaming-System
  • 6 ist ein beispielhaftes Systemdiagramm für ein Streaming-System 605 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 6 umfasst einen oder mehrere Server 603 (die ähnliche Komponenten, Merkmale und/oder Funktionalität wie das Beispielverarbeitungssystem 500 von 5A und/oder das Beispielsystem 565 von 5B aufweisen können), ein oder mehrere Client-Geräte 604 (die ähnliche Komponenten, Merkmale und/oder Funktionalität wie das Beispielverarbeitungssystem 500 von 5A und/oder das Beispielsystem 565 von 5B aufweisen können) und ein oder mehrere Netzwerke 606 (die ähnlich wie die hier beschriebenen Netzwerke sein können). In einigen Ausführungsformen der vorliegenden Offenbarung kann das System 605 implementiert werden.
  • In einer Ausführungsform ist das Streaming-System 605 ein Spiel-Streaming-System und der/die Server 604 ist/sind ein Spiel-Server. Im System 605 kann das (die) Client-Gerät(e) 604 für eine Spielesitzung nur Eingabedaten als Reaktion auf Eingaben an das (die) Eingabegerät(e) 626 empfangen, die Eingabedaten an den (die) Server 603 übertragen, codierte Anzeigedaten von dem (den) Server(n) 603 empfangen und die Anzeigedaten auf der Anzeige 624 anzeigen. So werden die rechenintensiveren Berechnungen und Verarbeitungen auf den/die Server 603 verlagert (z. B. wird das Rendering - insbesondere die Strahlen- oder Pfadverfolgung - für die grafische Ausgabe der Spielesitzung von der/den GPU(s) 615 des/der Server(s) 603 ausgeführt). Mit anderen Worten: Die Spielesitzung wird von dem/den Server(n) 603 zu dem/den Client-Gerät(en) 604 gestreamt, wodurch die Anforderungen des/der Client-Gerät(e) 604 an die Grafikverarbeitung und das Rendering reduziert werden.
  • Beispielsweise kann ein Client-Gerät 604 bei einer Instanziierung einer Spielesitzung einen Frame der Spielesitzung auf der Anzeige 624 anzeigen, nachdem es die Anzeigedaten von dem/den Server(n) 603 empfangen hat. Die Client-Vorrichtung 604 kann eine Eingabe an eine der Eingabevorrichtung(en) 626 empfangen und als Antwort Eingabedaten erzeugen. Die Client-Vorrichtung 604 kann die Eingabedaten über die Kommunikationsschnittstelle 621 und über das/die Netzwerk(e) 606 (z. B. das Internet) an den/die Server 603 übertragen, und der/die Server 603 kann/können die Eingabedaten über die Kommunikationsschnittstelle 618 empfangen. Die CPU(s) 608 kann/können die Eingabedaten empfangen, die Eingabedaten verarbeiten und Daten an die GPU(s) 615 übertragen, die die GPU(s) 615 veranlassen, ein Rendering der Spielesitzung zu erzeugen. Die Eingabedaten können beispielsweise eine Bewegung eines Charakters des Benutzers in einem Spiel, das Abfeuern einer Waffe, das Nachladen, das Passen eines Balls, das Wenden eines Fahrzeugs usw. darstellen. Die Rendering-Komponente 612 kann die Spielsitzung rendern (z. B. repräsentativ für das Ergebnis der Eingabedaten), und die Rendering-Erfassungskomponente 614 kann das Rendering der Spielsitzung als Anzeigedaten erfassen
    (z. B. als Bilddaten, die das gerenderte Bild der Spielsitzung erfassen). Das Rendering der Spielsitzung kann strahlen- oder pfadverfolgte Beleuchtungs- und/oder Schatteneffekte enthalten, die unter Verwendung einer oder mehrerer paralleler Verarbeitungseinheiten - wie z. B. GPUs, die außerdem einen oder mehrere dedizierte Hardwarebeschleuniger oder Verarbeitungskerne zur Durchführung von Ray- oder Path-Tracing-Techniken verwenden können - des/der Server(s) 603 berechnet werden. Der Encoder 616 kann dann die Anzeigedaten kodieren, um codierte Anzeigedaten zu erzeugen, und die codierten Anzeigedaten können über das/die Netzwerk(e) 606 über die Kommunikationsschnittstelle 618 an das Client-Gerät 604 übertragen werden. Das Client-Gerät 604 kann die codierten Anzeigedaten über die Kommunikationsschnittstelle 621 empfangen und der Decoder 622 kann die codierten Anzeigedaten dekodieren, um die Anzeigedaten zu erzeugen. Das Client-Gerät 604 kann dann die Anzeigedaten über das Display 624 anzeigen.
  • Es ist zu beachten, dass die hierin beschriebenen Techniken in ausführbaren Anweisungen ausgeführt sein können, die in einem computerlesbaren Medium zur Verwendung durch oder in Verbindung mit einer prozessorbasierten Befehlsausführungsmaschine, einem System, einem Apparat oder einer Vorrichtung gespeichert sind. Fachleute werden verstehen, dass bei einigen Ausführungsformen verschiedene Arten von computerlesbaren Medien zur Speicherung von Daten verwendet werden können. Wie hierin verwendet, umfasst ein „computerlesbares Medium“ eines oder mehrere geeignete Medien zum Speichern der ausführbaren Anweisungen eines Computerprogramms, so dass die Befehlsausführungsmaschine, das System, der Apparat oder die Vorrichtung die Anweisungen von dem computerlesbaren Medium lesen (oder abrufen) und die Anweisungen zur Ausführung der beschriebenen Ausführungsformen ausführen kann. Geeignete Speicherformate umfassen ein oder mehrere elektronische, magnetische, optische und elektromagnetische Formate. Eine nicht erschöpfende Liste herkömmlicher, beispielhafter computerlesbarer Medien umfasst: eine tragbare Computerdiskette, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM), eine Flash-Speichervorrichtung und optische Speichervorrichtungen, einschließlich einer tragbaren Compact Disc (CD), einer tragbaren digitalen Videodisk (DVD) und dergleichen.
  • Die in den beigefügten Figuren dargestellte Anordnung der Komponenten dient nur der Veranschaulichung; andere Anordnungen sind möglich. So können beispielsweise eines oder mehrere der hier beschriebenen Elemente ganz oder teilweise als elektronische Hardwarekomponente realisiert werden. Andere Elemente können in Software, Hardware oder einer Kombination aus Software und Hardware implementiert sein. Darüber hinaus können einige oder alle dieser anderen Elemente kombiniert werden, einige können ganz weggelassen werden, und zusätzliche Komponenten können hinzugefügt werden, während immer noch die hier beschriebene Funktionalität erreicht wird. Somit kann der hier beschriebene Gegenstand in vielen verschiedenen Variationen verkörpert werden, und alle diese Variationen fallen unter den Anwendungsbereich der Ansprüche.
  • Um das Verständnis des hier beschriebenen Gegenstands zu erleichtern, werden viele Aspekte in Form von Aktionsfolgen beschrieben. Fachleute werden erkennen, dass die verschiedenen Aktionen von speziellen Schaltungen oder Schaltkreisen, von Programmbefehlen, die von einem oder mehreren Prozessoren ausgeführt werden, oder von einer Kombination aus beidem ausgeführt werden können. Die hierin enthaltene Beschreibung einer Abfolge von Aktionen soll nicht bedeuten, dass die beschriebene spezifische Reihenfolge für die Durchführung dieser Abfolge eingehalten werden muss. Alle hierin beschriebenen Verfahren können in irgendeiner geeigneten Reihenfolge durchgeführt werden, sofern hierin nicht anders angegeben oder anderweitig durch den Kontext eindeutig widersprochen wird.
  • Die Verwendung der Begriffe „ein“, „einer“ und „der“, „die“, „das“ und ähnlicher Verweise im Zusammenhang mit der Beschreibung des Gegenstands (insbesondere im Zusammenhang mit den folgenden Ansprüchen) ist so auszulegen, dass sie sowohl die Einzahl als auch die Mehrzahl umfasst, sofern hier nicht anders angegeben oder durch den Kontext eindeutig widerlegt. Die Verwendung des Begriffs „mindestens eines“, gefolgt von einer Aufzählung von einem oder mehreren Gegenständen (z. B. „mindestens eines von A und B“), ist so zu verstehen, dass damit ein aus den aufgelisteten Gegenständen (A oder B) ausgewählter Gegenstand oder eine beliebige Kombination von zwei oder mehreren der aufgelisteten Gegenstände (A und B) gemeint ist, sofern hier nicht anders angegeben oder durch den Kontext eindeutig widerlegt. Darüber hinaus dient die vorstehende Beschreibung nur der Veranschaulichung und nicht der Einschränkung, da der angestrebte Schutzumfang durch die nachstehend aufgeführten Ansprüche und deren Äquivalente definiert ist. Die Verwendung von Beispielen oder beispielhaften Formulierungen (z. B. „wie“) dient lediglich der besseren Veranschaulichung des Gegenstands und stellt keine Einschränkung des Schutzumfangs dar, sofern nichts anderes beansprucht wird. Die Verwendung des Begriffs „basierend auf“ und anderer ähnlicher Ausdrücke, die eine Bedingung für die Herbeiführung eines Ergebnisses angeben, sowohl in den Ansprüchen als auch in der schriftlichen Beschreibung, soll keine anderen Bedingungen ausschließen, die zu diesem Ergebnis führen. Keine Formulierung in der Beschreibung sollte so ausgelegt werden, dass sie ein nicht beanspruchtes Element als wesentlich für die Ausführung der beanspruchten Erfindung bezeichnet.

Claims (25)

  1. Computerimplementiertes Verfahren zum Schätzen von mindestens einer einer Herzfrequenz oder Atemfrequenz eines Probanden, das aufweist: Verarbeiten einer Folge von Bildern des Probanden durch Schichten eines neuronalen Bewegungsnetzmodells, um Kanäle von Merkmalsvektoren in zwei räumlichen Dimensionen zu erzeugen; und Anwenden einer erlernten Kanalaufmerksamkeitsmaske auf die Kanäle der Merkmalsvektoren, um mindestens eine einer geschätzten Herzfrequenz oder einer geschätzten Atemfrequenz für den Probanden zu erzeugen.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Verarbeiten das Anwenden mindestens einer räumlichen Aufmerksamkeitsmaske zwischen den zwei oder mehreren Schichten des neuronalen Bewegungsnetzes aufweist.
  3. Computerimplementiertes Verfahren nach Anspruch 2, das ferner das Verarbeiten einer Erscheinungsbildkarte und einer Hautsegmentierungsmaske für mindestens ein Bild in der Folge durch ein neuronales Aufmerksamkeitsnetz aufweist, um die mindestens eine räumliche Aufmerksamkeitsmaske zu berechnen.
  4. Computerimplementiertes Verfahren nach Anspruch 3, wobei das neuronale Aufmerksamkeitsnetz mindestens eine Erscheinungsbildkanal-Aufinerksamkeitsmaske zwischen zwei oder mehreren Schichten des neuronalen Aufmerksamkeitsnetzes anwendet, um die mindestens eine räumliche Aufmerksamkeitsmaske zu berechnen.
  5. Computerimplementiertes Verfahren nach Anspruch 3 oder 4, wobei die Erscheinungsbildkarte einen Abschnitt jedes Bildes des Probanden aufweist, der einen Gesichts-, Hals- und Brustbereich des Probanden enthält.
  6. Computerimplementiertes Verfahren nach einem der Ansprüche 3 bis 5, wobei die Hautsegmentierungsmaske eine Segmentierungsmaske aufweist, die die Gesichtshaut einschließlich der Stirn-, Wangen-, Nasen-, Hals- und Brustbereichen in jedem Bild des Probanden getrennt von den Hintergrund-, Haar-, Augen-, Augenbrauen- und Bartbereichen in jedem Bild des Probanden identifiziert.
  7. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei die mindestens eine Erscheinungsbildkanal-Aufmerksamkeitsmaske zwischen einer Faltungsschicht und einer Pooling-Schicht angewendet wird.
  8. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei die Framerate, mit der jedes Bild in der Bildfolge empfangen wird, variabel ist und das Verarbeiten das Anpassen der geschätzten Herzfrequenz und/oder der geschätzten Atemfrequenz basierend auf der Framerate aufweist.
  9. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei ein oder mehrere Bilder in der Bildfolge komprimiert werden.
  10. Computerimplementiertes Verfahren nach Anspruch 9, wobei das eine oder die mehreren Bilder in veränderlichen Stufen komprimiert werden.
  11. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, das ferner das Feststellen, dass ein Verhältnis zwischen der geschätzten Herzfrequenz und der geschätzten Atemfrequenz außerhalb eines vorbestimmten gültigen Bereichs liegt, und das Verwerfen der geschätzten Herzfrequenz und der geschätzten Atemfrequenz aufweist.
  12. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei Parameter durch die Schichten des neuronalen Bewegungsnetzmodells angewendet werden, und das ferner das Anpassen der Parameter aufweist, um Unterschiede zwischen einer Ground-Truth-Herzfrequenz oder -Atemfrequenz und der geschätzten Herzfrequenz oder Atemfrequenz zu verringern.
  13. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei Parameter durch die Schichten des neuronalen Bewegungsnetzmodells angewendet werden, und das ferner das Anpassen der Parameter aufweist, um Unterschiede zwischen einem geschätzten Verhältnis der geschätzten Herzfrequenz und der geschätzten Atemfrequenz und dem Ground-Truth-Verhältnisbereich zu verringern.
  14. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei Parameter durch die Schichten des neuronalen Bewegungsnetzmodells angewendet werden, und das ferner das Anpassen der Parameter aufweist, um die Korrelationen zwischen der geschätzten Herzfrequenz und der geschätzten Atemfrequenz zu erhöhen, um sie mit den erwarteten Korrelationen zwischen einer Herzfrequenz und einer Atemfrequenz in Einklang zu bringen.
  15. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens einer der Schritte des Verarbeitens und Anwendens auf einem Server oder in einem Datenzentrum durchgeführt wird und die Bildfolge von einem Benutzergerät zum Server oder zum Datenzentrum gestreamt wird.
  16. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens einer der Schritte des Verarbeitens und Anwendens auf einem Server oder in einem Datenzentrum durchgeführt wird und die mindestens eine einer geschätzten Herzfrequenz und einer geschätzten Atemfrequenz zu einem Benutzergerät gestreamt wird.
  17. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens einer der Schritte des Verarbeitens und Anwendens in einer Cloud-Computing-Umgebung durchgeführt wird.
  18. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens einer der Schritte des Verarbeitens und Anwendens zum Trainieren, Testen oder Zertifizieren eines neuronalen Netzwerks durchgeführt wird, das in einer Maschine, einem Roboter oder einem autonomen Fahrzeug eingesetzt wird.
  19. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens einer der Schritte des Verarbeitens und Anwendens auf einer virtuellen Maschine durchgeführt wird, die einen Teil einer Grafikverarbeitungseinheit aufweist.
  20. System zum Schätzen der Herzfrequenz und/oder der Atemfrequenz eines Probanden, das aufweist: eine oder mehrere Verarbeitungseinheiten, um ein neuronales Bewegungsnetzmodell zu implementieren durch: Verarbeiten der Bildfolge durch Schichten des neuronalen Bewegungsnetzmodells, um Kanäle von Merkmalsvektoren in zwei räumlichen Dimensionen zu erzeugen; und Anwenden einer gelernten Kanalaufmerksamkeitsmaske auf die Kanäle der Merkmalsvektoren, um mindestens eine geschätzte Herzfrequenz oder eine geschätzte Atemfrequenz für den Probanden zu erzeugen.
  21. System nach Anspruch 20, wobei die eine oder die mehreren Verarbeitungseinheiten ferner ein neuronales Aufmerksamkeitsnetz implementieren, um die mindestens eine räumliche Aufmerksamkeitsmaske durch Verarbeiten einer Erscheinungsbildkarte und einer Hautsegmentierungsmaske für jedes Bild in der Folge zu berechnen.
  22. System nach Anspruch 21, wobei die Hautsegmentierungsmaske eine Maske aufweist, die Bereiche der Gesichtshaut, die mindestens einem der Stirn, einer oder mehrerer Wangen, der Nase, dem Hals und der Brust entsprechen, in jedem Bild des Probanden vom Hintergrund, den Haaren, den Augen, den Augenbrauen und den Bartbereichen in jedem Bild des Probanden getrennt identifiziert.
  23. Nichtflüchtiges, computerlesbares Medium, das Computerbefehle zum Schätzen von mindestens einer einer Herzfrequenz oder Atemfrequenz eines Probanden speichert, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, die Schritte auszuführen: Verarbeiten einer Folge von Bildern des Probanden durch Schichten eines neuronalen Bewegungsnetzmodells, um Kanäle von Merkmalsvektoren in zwei räumlichen Dimensionen zu erzeugen; und Anwenden einer gelernten Kanalaufmerksamkeitsmaske auf die Kanäle der Merkmalsvektoren, um mindestens eine einer geschätzten Herzfrequenz oder einer geschätzten Atemfrequenz für den Probanden zu erzeugen.
  24. Nichtflüchtiges, computerlesbares Medium nach Anspruch 23, das ferner das Verarbeiten einer Erscheinungsbildkarte und einer Hautsegmentierungsmaske für jedes Bild in der Folge durch ein neuronales Aufmerksamkeitsnetz aufweist, um die mindestens eine räumliche Aufmerksamkeitsmaske zu berechnen.
  25. Nichtflüchtiges, computerlesbares Medium nach Anspruch 24, wobei das neuronale Aufmerksamkeitsnetz mindestens eine Erscheinungsbildkanal-Aufmerksamkeitsmaske zwischen Schichten des neuronalen Aufmerksamkeitsnetzes anwendet, um die mindestens eine räumliche Aufmerksamkeitsmaske zu berechnen.
DE102022123434.7A 2021-09-20 2022-09-14 Gemeinsame Schätzung von Herzfrequenz und Atemfrequenz unter Verwendung neuronaler Netze Pending DE102022123434A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/479,648 2021-09-20
US17/479,648 US11954862B2 (en) 2021-09-20 2021-09-20 Joint estimation of heart rate and respiratory rate using neural networks

Publications (1)

Publication Number Publication Date
DE102022123434A1 true DE102022123434A1 (de) 2023-03-23

Family

ID=85383725

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022123434.7A Pending DE102022123434A1 (de) 2021-09-20 2022-09-14 Gemeinsame Schätzung von Herzfrequenz und Atemfrequenz unter Verwendung neuronaler Netze

Country Status (4)

Country Link
US (1) US11954862B2 (de)
JP (1) JP2023044716A (de)
CN (1) CN115841143A (de)
DE (1) DE102022123434A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11800258B2 (en) * 2020-10-19 2023-10-24 University Of Florida Research Foundation, Incorporated High-performance CNN inference model at the pixel-parallel CMOS image sensor
US11881008B2 (en) * 2021-05-12 2024-01-23 Intuitive Research And Technology Corporation Encoding enhanced information into pixel channels
CN116385837B (zh) * 2023-04-24 2023-09-08 天津大学 基于掩码自编码器进行远程生理测量的自监督预训练方法
CN117958792B (zh) * 2023-09-26 2024-07-23 延边大学 基于移动开窗法的自适应卡尔曼滤波呼吸频率计算方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9763585B2 (en) * 2013-04-25 2017-09-19 Covidien Lp System and method for generating an adjusted fluid responsiveness metric
WO2021061699A1 (en) * 2019-09-23 2021-04-01 Bendfeldt Hannes Adaptive interface for screen-based interactions
US11538136B2 (en) * 2020-10-28 2022-12-27 Qualcomm Incorporated System and method to process images of a video stream
US20220222466A1 (en) * 2021-01-13 2022-07-14 Ford Global Technologies, Llc Material spectroscopy

Also Published As

Publication number Publication date
US11954862B2 (en) 2024-04-09
CN115841143A (zh) 2023-03-24
US20230091371A1 (en) 2023-03-23
JP2023044716A (ja) 2023-03-31

Similar Documents

Publication Publication Date Title
DE102022123434A1 (de) Gemeinsame Schätzung von Herzfrequenz und Atemfrequenz unter Verwendung neuronaler Netze
DE102019130889A1 (de) Schätzung der tiefe eines mit einer monokularen rgb-kamera aufgenommenen videodatenstroms
US11620521B2 (en) Smoothing regularization for a generative neural network
DE102019106123A1 (de) Dreidimensionale (3D) Posenschätzung von Seiten einer monokularen Kamera
DE102021121109A1 (de) Wiederherstellung dreidimensionaler modelle aus zweidimensionalen bildern
DE102018009315A1 (de) Verfahren tiefgehenden Lernens zum Trennen von Reflexions- und Übertragungsbildern, die an einer halbreflektierenden Oberfläche in einem Computerbild einer Realweltszene sichtbar sind
CN113762461B (zh) 使用可逆增强算子采用有限数据训练神经网络
DE102022118651A1 (de) Mehrfachauflösung-hash-codierung für neuronale netzwerke
DE102022100360A1 (de) Framework für maschinelles lernen angewandt bei einer halbüberwachten einstellung, um instanzenverfolgung in einer sequenz von bildframes durchzuführen
DE102022104142A1 (de) Strahldichte-caching in echtzeit durch ein neuronales netz für pfadverfolgungszwecke
DE102021207678A1 (de) Streamen eines komprimierten lichtfelds
DE102021121332A1 (de) Bewertung von qualitativer streaming-erfahrung unter verwendung von sitzungsleistungsmetadaten
DE102022113244A1 (de) Gemeinsame Form- und Erscheinungsbildoptimierung durch Topologieabtastung
DE102022107232A1 (de) Gepackter fehlerkorrekturcode (ecc) für komprimierten datenschutz
DE102018128592A1 (de) Erzeugen eines Bilds unter Verwendung einer Map, die verschiedene Klassen von Pixeln repräsentiert
DE102021130031A1 (de) Erscheinungsbildgesteuerte automatische dreidimensionale modellierung
DE102021109501A1 (de) Durch erzeugendes gegnerisches neuronales netzwerk unterstützte videorekonstruktion
DE102021109050A1 (de) Durch ein neuronales generative adversarial netzwerk unterstützte videokompression und -übertragung
US20240104842A1 (en) Encoder-based approach for inferring a three-dimensional representation from an image
DE102022114518A1 (de) Fusionierte verarbeitung eines kontinuierlichen mathematischen operators
DE102021128286A1 (de) Adaptives abtasten mit einer zielabtastrate
CN113408694B (zh) 用于生成式神经网络的权重解调
US11605001B2 (en) Weight demodulation for a generative neural network
DE102021120604A1 (de) Dynamische bildglättung basierend auf netzwerkbedingungen
DE102022112488A1 (de) Projektive hash-karten

Legal Events

Date Code Title Description
R012 Request for examination validly filed