DE112018007721T5 - Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze - Google Patents

Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze Download PDF

Info

Publication number
DE112018007721T5
DE112018007721T5 DE112018007721.7T DE112018007721T DE112018007721T5 DE 112018007721 T5 DE112018007721 T5 DE 112018007721T5 DE 112018007721 T DE112018007721 T DE 112018007721T DE 112018007721 T5 DE112018007721 T5 DE 112018007721T5
Authority
DE
Germany
Prior art keywords
model
face
image
vector
parameter
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
DE112018007721.7T
Other languages
English (en)
Inventor
Shandong WANG
Ming Lu
Anbang Yao
Yurong Chen
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112018007721T5 publication Critical patent/DE112018007721T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Human Computer Interaction (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Image Analysis (AREA)

Abstract

Es werden Techniken im Zusammenhang mit dem Aufnehmen von 3D-Gesichtern unter Verwendung neuronaler Bild- und Zeitverfolgungsnetze und dem Modifizieren von Ausgabevideos unter Verwendung der aufgenommenen 3D-Gesichter besprochen. Solche Techniken umfassen das Anwenden eines ersten neuronalen Netzes auf einen Eingabevektor, der einem ersten Videobild mit einer Darstellung eines menschlichen Gesichts entspricht, um einen Parametervektor eines morphbaren Modells zu generieren, das Anwenden eines zweiten neuronalen Netzes auf einen Eingabevektor, der einem ersten und einem zweiten zeitlich anschließenden entspricht, um einen Parameter-Deltavektor eines morphbaren Modells zu generieren, das Generieren eines 3D-Gesichtsmodells des menschlichen Gesichts unter Verwendung des Parametervektor eines morphbaren Modells und des Parameter-Deltavektor eines morphbaren Modells, und das Generieren eines Ausgabevideos unter Verwendung des 3D-Gesichtsmodells.

Description

  • Figurenliste
  • Der im vorliegenden Text beschriebene Gegenstand wird in den begleitenden Figuren beispielhaft und nicht in einem einschränkenden Sinn veranschaulicht. Aus Gründen der Einfachheit und Klarheit der Darstellung sind die in den Figuren veranschaulichten Elemente nicht unbedingt maßstabsgetreu gezeichnet. Beispielsweise können die Abmessungen einiger Elemente im Verhältnis zu anderen Elementen aus Gründen der Klarheit der Darstellung vergrößert gezeigt sein. Darüber hinaus wurden, wenn es als zweckmäßig erachtet wurde, Bezugsbezeichnungen in den Figuren wiederholt, um entsprechende oder analoge Elemente zu bezeichnen. In den Figuren ist Folgendes dargestellt:
    • 1 veranschaulicht ein beispielhaftes System zum Aufnehmen von 3D-Gesichtern und zum Anwenden von Effekten auf der Grundlage der aufgenommenen 3D-Gesichter;
    • 2 veranschaulicht das Verarbeiten eines beispielhaften Eingabebildes zum Generieren eines beispielhaften Eingabevektors;
    • 3 veranschaulicht das Verarbeiten eines beispielhaften Parametervektors eines morphbaren Modells zum Generieren eines beispielhaften 3D-Maschennetz- oder -Gesichtsmodells;
    • 4 veranschaulicht das Anwenden eines beispielhaften 3D-Objektelements unter Verwendung eines 3D-Gesichtsmodells;
    • 5 veranschaulicht das Anwenden eines beispielhaften Texturelements unter Verwendung eines 3D-Gesichtsmodells;
    • 6 veranschaulicht ein beispielhaftes System zum Vor-Trainieren eines Bild-CNN;
    • 7 veranschaulicht ein beispielhaftes System zum Vor-Trainieren eines Verfolgungs-CNN;
    • 8 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Trainieren von CNNs und deren Implementieren für das Aufnehmen und Rendern von 3D-Gesichtern veranschaulicht;
    • 9 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Verarbeiten von Video veranschaulicht;
    • 10 ist ein veranschaulichendes Diagramm eines beispielhaftes Systems zum Verarbeiten von Video;
    • 11 ist ein veranschaulichendes Diagramm eines beispielhaftes Systems; und
    • 12 veranschaulicht eine beispielhafte Vorrichtung mit kleinem Formfaktor, die gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung konfiguriert ist.
  • DETAILLIERTE BESCHREIBUNG
  • Eine oder mehrere Ausführungsformen oder Implementierungen werden nun unter Bezug auf die beigefügten Figuren beschrieben. Obgleich konkrete Konfigurationen und Anordnungen besprochen werden, versteht es sich, dass dies nur zu veranschaulichenden Zwecken geschieht. Der einschlägig bewanderte Fachmann erkennt, dass auch andere Konfigurationen und Anordnungen verwendet werden können, ohne vom Wesen und Geltungsbereich der Beschreibung abzuweichen. Dem einschlägig bewanderten Fachmann ist klar, dass die im vorliegenden Text beschriebenen Techniken und/oder Anordnungen auch in verschiedensten anderen Systemen und Anwendungen als den im vorliegenden Text beschriebenen genutzt werden können.
  • Obgleich die folgende Beschreibung verschiedene Implementierungen darlegt, die sich in Architekturen wie zum Beispiel System-on-Chip (SoC)-Architekturen niederschlagen können, ist die Implementierung der im vorliegenden Text beschriebenen Techniken und/oder Anordnungen nicht auf bestimmte Architekturen und/oder Computersysteme beschränkt und kann durch jede beliebige Architektur und/oder jedes beliebige Computersystem für ähnliche Zwecke implementiert werden. So können zum Beispiel verschiedene Architekturen, die zum Beispiel mehrere Integrierte-Schaltkreis (IC)-Chips und/oder -Packages verwenden, und/oder verschiedene Computervorrichtungen und/oder konsumelektronische (Consumer Electronic, CE) Vorrichtungen, wie zum Beispiel Multifunktionsvorrichtungen, Tablets, Smartphones usw., die im vorliegenden Text beschriebenen Techniken und/oder Anordnungen implementieren. Obgleich die folgende Beschreibung zahlreiche konkrete Details wie zum Beispiel Logik-Implementierungen, Typen und Beziehungen von Systemkomponenten, logische Partitionierungs- und Integrationsoptionen usw. enthalten kann, kann der beanspruchte Gegenstand auch ohne diese konkreten Details praktiziert werden. In anderen Fällen sind einige Gegenstände, wie zum Beispiel Steuerungsstrukturen und Voll-Software-Instruktionssequenzen, nicht unbedingt im Detail gezeigt, um den im vorliegenden Text offenbarten Gegenstand nicht unnötig in den Hintergrund treten zu lassen.
  • Der im vorliegenden Text offenbare Gegenstand kann in Hardware, Firmware, Software oder einer Kombination davon implementiert sein. Der im vorliegenden Text offenbare Gegenstand kann auch in Form von Instruktionen implementiert sein, die auf einem maschinenlesbaren Medium gespeichert sind, das durch einen oder mehrere Prozessoren gelesen und ausgeführt werden kann. Ein maschinenlesbares Medium kann jedes beliebige Medium und/oder jeden beliebigen Mechanismus zum Speichern oder Senden von Informationen in einer Form, die durch eine Maschine (zum Beispiel eine Computervorrichtung) gelesen werden kann, umfassen. Ein maschinenlesbares Medium kann zum Beispiel Nurlesespeicher (ROM), Direktzugriffsspeicher (RAM), Magnetplatten-Speichermedien, optische Speichermedien, Flash-Speichervorrichtungen, elektrische, optische, akustische oder andere Formen von ausgebreiteten Signalen (zum Beispiel Trägerwellen, Infrarotsignale, digitale Signale usw.), und anderes umfassen.
  • Verweise in der Spezifikation auf „eine bestimmte Implementierung“, „eine Implementierung“, „eine beispielhafte Implementierung“ oder Beispiele oder Ausführungsformen usw. besagen, dass die beschriebene Implementierung ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft enthalten kann, aber nicht jede Ausführungsform unbedingt das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft enthalten muss. Darüber hinaus beziehen sich solche Wendungen nicht unbedingt auf dieselbe Implementierung. Wenn des Weiteren ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, so wird davon ausgegangen, dass es innerhalb der Kompetenz eines Fachmanns liegt, dieses Merkmal, diese Struktur oder diese Eigenschaft in Verbindung mit anderen Implementierungen zu realisieren, unabhängig davon, ob sie im vorliegenden Text ausdrücklich beschrieben sind oder nicht.
  • Im vorliegenden Text werden Verfahren, Vorrichtungen, Geräte, Computerplattformen und Artikel beschrieben, die sich auf das Erfassen von Parametern für ein 3D-Gesichtsmodell aus Video und das Modifizieren des Videos auf der Grundlage des gerenderten 3D-Gesichtsmodells beziehen.
  • Wie oben beschrieben, kann es wünschenswert sein, eine 3D-Gesichtsform und -textur durch Bestimmen von Parametern eines 3D-Gesichtsmodells mit hoher Geschwindigkeit und Genauigkeit aufzunehmen oder zu schätzen. Das resultierende morphbare 3D-Modell oder die Parameter für ein solches morphbares Modell können in vielen Anwendungen verwendet werden, zum Beispiel Anwendungen mit visuellen Effekten, Mapping auf digitale Avatare, Animation, Hinzufügen von 2D-Aufklebern oder dynamischen 3D-Requisiten, virtuelle Realität, fotorealistisches 3D-Gesichtsrendern, Unterstützung chirurgischer Eingriffe durch Modellierung usw. Die im vorliegenden Text besprochenen Techniken bieten die Fähigkeit, 3D-Gesichtsaufnahmen und Videomodifizierung, wie zum Beispiel Gesichtsanimation usw., in Echtzeit, kostengünstig und einfach zu implementieren.
  • Wie im vorliegenden Text besprochen, umfassen Ausführungsformen das Verarbeiten von Video-Frames (die auch als Bilder bezeichnet werden können) mit Darstellungen eines menschlichen Gesichts. Insbesondere sind die Video-Frames ein Standardformat, das RGB-Daten, YUV-Daten oder dergleichen ohne Tiefeninformationen enthält. Die Eingabevideo-Frames können durch Croppen (zum Beispiel auf der Grundlage eines detektierten Gesichts) und Abwärtsskalieren auf zum Beispiel 256x256 Pixel vorverarbeitet werden. Für einen ersten Eingabevideo-Frame wird ein Eingabevektor auf der Grundlage der gecroppten und abwärtsskalierten Region generiert. In einer Ausführungsform enthält der Eingabevektor RGB-Daten, die der gecroppten und abwärtsskalierten Region entsprechen, so dass der Eingabevektor ein 256x256x3-Vektor mit einem R-, G- und B-Wert für jede Pixelposition ist. Der Eingabevektor wird in ein vortrainiertes neuronales Faltungsnetz (Convolutional Neural Network, CNN) eingespeist, das als eine Ausgabeschicht Knoten enthält, um einen Ausgabevektor bereitzustellen, der Parameter für ein 3D-Gesichtsmodell (das heißt, einen Parametervektor eines morphbaren Modells) enthält. Im Sinne des vorliegenden Textes wird der Begriff CNN verwendet, um jedes beliebige neuronale Netz zu bezeichnen, das zum Analysieren visueller Bilder verwendet wird. CNNs enthalten zum Beispiel in der Regel künstliche neuronale Feed-Forward-Netze. Das 3D-Gesichtsmodell kann beliebige geeigneten Parameter zum Implementieren durch das 3D-Gesichtsmodell enthalten, um eine Darstellung eines menschlichen Gesichts zu generieren, das im vorliegenden Text als eine Gesichts-Maschennetz charakterisiert wird. In einer Ausführungsform enthält der Parametervektor eines morphbaren Modells Werte zur Bereitstellung von geometrischer Form, Textur (zum Beispiel Haut-Albedo), Beleuchtung und Pose für das Gesichts-Maschennetz oder Gesichtsmodell des menschlichen Gesichts.
  • Darüber hinaus wird für zeitlich aufeinanderfolgende Video-Frames ein Eingangsvektor (zum Beispiel ein Zeitverfolgungs-Eingangsvektor) auf der Basis gecroppter und abwärtsskalierter Regionen zweier zeitlich benachbarter Frames generiert. In einer Ausführungsform enthält der Zeitverfolgungs-Eingangsvektor RGB-Daten, die den gecroppten und abwärtsskalierten Regionen zweier zeitlich benachbarter Frames entsprechen, so dass der Zeitverfolgungs-Eingangsvektor ein 256x256x3x2-Vektor ist, der einen R-, G- und B-Wert für jede Pixelposition für beide gecroppten und abwärtsskalierten Regionen enthält. Der Zeitverfolgungs-Eingabevektor unterscheidet sich von dem zuvor besprochenen Eingabevektor dadurch, dass er Daten für zwei gecroppte und abwärtsskalierte Regionen enthält. Der Zeitverfolgungs-Eingabevektor wird in ein zweites vortrainiertes CNN eingespeist, das als eine Ausgabeschicht Knoten enthält, um einen Ausgabevektor bereitzustellen, der Delta-Parameter für ein 3D-Gesichtsmodell (das heißt, einen Parameter-Deltavektor eines morphbaren Modells) enthält. Der Parameter-Deltavektor eines morphbaren Modells stellt Delta- oder Differenzwerte für jeden Parameter des zuvor besprochenen Parametervektors eines morphbaren Modells für einen zeitlich ersten Frame der beiden zeitlich benachbarten Frames bereit. Der Parametervektor eines morphbaren Modells für den zeitlich ersten Frame (wie durch das erste CNN bestimmt, wenn es ein erster Frame in einer Sequenz ist) wird dann durch den Parameter-Deltavektor eines morphbaren Modells modifiziert (zum Beispiel werden sie addiert oder differenziert), um einen Parametervektor eines morphbaren Modells für den zeitlich zweiten Frame zu generieren.
  • Dadurch werden Parametervektoren eines morphbaren Modells für jeden oder einige Frames einer Videosequenz generiert, wobei für den zeitlich ersten Frame ein vortrainiertes Raum- oder Bild-CNN und für zeitlich anschließende Frames ein vortrainiertes Verfolgungs- oder Zeit-CNN (von dem vortrainierten Raum- oder Bild-CNN getrennt) verwendet wird. Das zuvor besprochene 3D-Gesichtsmodell kann die Parametervektoren eines morphbaren Modells implementieren oder durch sie modelliert werden, um ein 3D-Gesichts-Maschennetz oder -Modell zu generieren, das ein menschliches Gesicht darstellt. Die Eingabevideo-Frames können dann auf der Grundlage des 3D-Gesichts-Maschennetzes oder -Modells modifiziert werden, um Ausgabevideo-Frames zu generieren, die gespeichert und/oder einem Benutzer präsentiert werden. Die Modifizierung kann jede geeignete Modifizierung umfassen, zum Beispiel das Anwenden visueller Effekte unter Verwendung von Informationen aus dem 3D-Gesichts-Maschennetz oder -Modell (zum Beispiel das Anwenden eines Effekts am Ende der Nase, wie durch das 3D-Gesichts-Maschennetz oder - Modell angezeigt), durch Modifizieren des 3D-Gesichts-Maschennetzes oder -Modells selbst (zum Beispiel das Anwenden einer Maskentextur auf Regionen des 3D-Gesichts-Maschennetzes oder -Modells) usw. In einigen Ausführungsformen werden Ausgabevideo-Frames unter Verwendung des 3D-Gesichts-Maschennetzes oder -Modells ohne Verwendung der Eingabevideo-Frames generiert. Zum Beispiel können Ausgabevideo-Frames durch Rendern eines Avatars unter Verwendung des 3D-Gesichts-Maschennetzes oder -Modells, durch Rendern eines fotorealistischen Bildes unter Verwendung des 3D-Gesichts-Maschennetzes oder -Modells usw. generiert werden.
  • Die im vorliegenden Text besprochenen Techniken bieten das automatische Aufnehmen und Verfolgen einer 3D-Darstellung eines menschlichen Gesichts beispielsweise von RGB-Konsumenten-Kameras sowie 2D/3D-Spezialeffekte auf der Grundlage der 3D-Darstellungen in Echtzeit. Solche Techniken können in Echtzeit-Umgebungen implementiert werden, um Echtzeit-3D-Gesichtsmodellierung, -Verfolgung und -Verbesserung (Modifizierung) auf der Grundlage von Bildern, wie besprochen, von RGB-Kameras zu unterstützen. Die besprochenen Techniken bieten hohe Genauigkeit, zeitliche Stabilität und Verfolgung für eine verbesserte Leistung der Vorrichtung. Darüber hinaus sind die besprochenen Techniken rechnerisch effizient und bieten eine verbesserte Leistung der Vorrichtung und Energieeinsparungen während der Implementierung. Die im vorliegenden Text besprochenen Techniken bieten ein Einpassungsverfahren für ein morphbares 3D-Gesichtsmodell (zum Beispiel „3D Morphable Model“, 3DMM), das automatisch (zum Beispiel ohne menschliches Eingreifen) Gesichtsmodellparameter aus Eingabevideo-Frames bestimmt.
  • 1 veranschaulicht ein beispielhaftes System 100 zum Aufnehmen von 3D-Gesichtern und Anwenden von Effekten auf der Grundlage der aufgenommenen 3D-Gesichter, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Wie in 1 gezeigt, umfasst das System 100 ein Bildvorverarbeitungsmodul 121, ein Bild-CNN 122, ein 3D-Gesichtsrenderungsmodul 124, ein Effekte- und Bildausgabemodul 126, ein (zeitliches) Verfolgung-CNN 123, ein 3D-Gesichtsrenderungsmodul 125, und ein Effekte- und Bildausgabemodul 127. Wie ebenfalls gezeigt, können das Bild-CNN 122, das 3D-Gesichtsrenderungsmodul 124 und das Effekte- und Bildausgabemodul 126 als eine erste Stufe 141 (oder eine räumliche Stufe) implementiert werden, und das Verfolgung-CNN 123, das 3D-Gesichtsrenderungsmodul 125 und das Effekte- und Bildausgabemodul 127 können als eine zweite Stufe 142 (oder eine zeitliche Verfolgungsstufe) implementiert werden. Das Bild-CNN 122 kann als eine räumliches CNN, Bild-CNN oder dergleichen charakterisiert werden. Das Verfolgung-CNN 123 kann als eine zeitliches CNN, Zeitverfolgung-CNN oder dergleichen charakterisiert werden. Wie gezeigt, sind das Bild-CNN 122 und das Verfolgung-CNN 123 separate CNNs mit unterschiedlichen und getrennten Eingabeschichten, internen Schichten und Ausgabeschichten. Das System 100 kann mittels jeder geeigneten Vorrichtung, wie zum Beispiel einen Personalcomputer, einen Laptop-Computer, ein Tablet, ein Phablet, ein Smartphone, eine Digitalkamera, eine Spielekonsole, eine am Körper tragbare Vorrichtung, eine Anzeigevorrichtung, eine All-in-One-Vorrichtung, eine Two-in-One-Vorrichtung oder dergleichen implementiert werden. Zum Beispiel kann das System 100 mindestens einen Abschnitt einer Bildsignalverarbeitungspipeline bereitstellen, die in Hardware, Software oder einer Kombination davon implementiert werden kann. Wie besprochen, kann das System 100 ein morphbares 3D-Gesichtsmodell 131 implementieren. Wie gezeigt, empfängt das System 100 das Eingabevideo 101, das eine beliebige Anzahl von Eingabebildern enthält, die Darstellungen eines menschlichen Gesichts enthalten.
  • Das Eingabevideo 101 kann beliebige geeignete Video-Frames, Videobilder, Sequenzen solcher Video-Frames oder -bilder, Gruppen von Bildern, Videodaten oder dergleichen in jeder geeigneten Auflösung enthalten. Das Video kann zum Beispiel Video Graphics Array (VGA), High Definition (HD), Full-HD (zum Beispiel 1080p), Video mit 4K-Auflösung, Video mit 5K-Auflösung oder dergleichen sein, und das Video kann eine beliebige Anzahl von Video-Frames, Sequenzen von Video-Frames, Bildern, Gruppen von Bildern oder dergleichen enthalten. Das Eingabevideo 101 kann zum Beispiel monokulares Video (zum Beispiel mit einer einzigen Sicht) von einer einzelnen RGB-Kamera sein. Die im vorliegenden Text besprochenen Techniken werden in Bezug auf Video-Frames und -Bilder austauschbar besprochen. Zum Beispiel kann ein Frame oder ein Bild aus Farbvideodaten drei Chrominanzebenen (Pixelwerte für die Chrominanz) oder -kanäle, wie zum Beispiel die Ebenen R, G und B, oder eine Luminanzebene (zum Beispiel Pixelwerte für die Luminanz) oder -kanal und zwei Chrominanzebenen (zum Beispiel Pixelwerte für die Chrominanz) oder -kanäle enthalten. Das Eingabevideo 101 enthält eine beliebige Anzahl von Frames oder Bildern 102, 103, 104, dergestalt, dass die Bilder 102, 103, 104 in einer zeitlichen Reihenfolge angeordnet sind. Das heißt, das Bild 102 geht dem Bild 103 mit einer beliebigen Anzahl dazwischenliegender Bilder zeitlich voran, und das Bild 103 geht dem Bild 104 zeitlich voran. In einer Ausführungsform geht das Bild 103 zeitlich unmittelbar dem Bild 104 voran (das heißt, es gibt keine dazwischenliegenden Bilder). In einer Ausführungsform wird das Eingabevideo 101 in Echtzeit über eine Kamera (nicht gezeigt) aufgenommen. In einer Ausführungsform wird das Eingabevideo 101 aus einem Speicher (nicht gezeigt) oder von einer räumlich abgesetzten Vorrichtung (nicht gezeigt) empfangen. Das Eingabevideo 101 kann als mehrere aufeinanderfolgende Video-Frames oder -Bilder charakterisiert werden.
  • Wie gezeigt, empfängt das Bildvorverarbeitungsmodul 121 die Eingabebilder 102, 103, 104. Die Eingabebilder 102, 103, 104 können eine beliebige Anzahl von Darstellungen eines oder mehrerer menschlicher Gesichter enthalten. In einer Ausführungsform enthalten die Eingabebilder 102, 103, 104 eine einzelne Darstellung eines einzelnen menschlichen Gesichts, das sich im Lauf der Zeit in Ausdruck, Pose usw. verändert. Die durch das Bildvorverarbeitungsmodul 121 ausgeführte Bildvorverarbeitung kann jede geeignete Bildvorverarbeitung umfassen, um Eingabevektoren 112, 113, 114 zu generieren, die den Eingabebildern 102, 103, 104 entsprechen. Zum Beispiel kann das Bildvorverarbeitungsmodul 121 eine Gesichtsdetektion, eine Gesichtsmerkmaldetektion oder dergleichen durchführen, um eine Darstellung eines menschlichen Gesichts in einem oder mehreren der Eingabebilder 102, 103, 104 zu detektieren. Auf der Grundlage des detektierten Gesichts kann das Bildvorverarbeitungsmodul 121 jedes der Eingabebilder 102, 103, 104 auf eine Region croppen, die Gesicht enthält, und die gecroppte Region auf eine vordefinierte Standardgröße abwärtsskalieren. In einer Ausführungsform detektiert das Bildvorverarbeitungsmodul 121 ein menschliches Gesicht, croppt die Eingabebilder 102, 103, 104 in einer zuvor festgelegte Regionsform (zum Beispiel quadratisch), skaliert die Region auf eine zuvor festgelegte Pixeldichte abwärts (zum Beispiel auf eine Auflösung von 256x256 Pixeln), und generiert jeden der Eingabevektoren 112, 113, 114 als eine Verkettung der Chrominanz-Pixelwerte für jede Pixelposition der abwärtsskalierten Region. In einer Ausführungsform enthält jeder der Eingabevektoren 112, 113, 114 256x256x3-Werte, die einen Wert für jeden von drei (zum Beispiel RGB-) Chrominanzwerten für jeden der abwärtsskalierten Pixelwerte enthalten.
  • Solche Cropp- und Abwärtsskalierungstechniken können mittels jeder geeigneten Technik oder jeglichen geeigneten Techniken, wie zum Beispiel Downsampling-Techniken, durchgeführt werden. Darüber hinaus kann jedes geeignete Bildformat und jede geeignete Regionsgröße und - form verwendet werden, obgleich sich die Besprechung auf das Croppen und Abwärtsskalieren von RGB-Bildern auf 256x256 Pixel bezieht. In einer Ausführungsform ist die Region eine rechteckige Region, deren Höhe größer ist als ihre Breite. In einer Ausführungsform wird keine Abwärtsskalierung angewendet. In jedem Fall wird jeder der Eingabevektoren 112, 113, 114 auf das oder die Formate formatiert, die zum Vortrainieren des Bild-CNN 122 und des Verfolgungs-CNN 123 verwendet werden, wie weiter unten noch besprochen wird.
  • 2 veranschaulicht das Verarbeiten eines beispielhaften Eingabebildes 102 zum Generieren eines beispielhaften Eingabevektors 112, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Wie in 2 gezeigt, hat das Eingabebild 102 oder mindestens ein Abschnitt 201 davon (zum Beispiel kann 2 einen Abschnitt 201 eines vollständigen Eingabebildes 102 oder ein Eingabebild veranschaulichen) eine Darstellung eines menschlichen Gesichts 202. Wie besprochen, kann die Darstellung des menschlichen Gesichts 202 detektiert werden, und das Eingabebild 102 kann unter Verwendung eines Begrenzungsrahmens (Bounding Box) gecroppt werden, um einen Teilregion 203 des Eingabebildes 102 zu definieren. Das Eingabebild 102 wird unter Verwendung der Teilregion 203 gecroppt (zum Beispiel Beibehaltung der Pixelwerte innerhalb der Teilregion 203 und Verwerfen der Werte außerhalb der Teilregion 203), und die Region innerhalb der Teilregion 203 wird auf eine zuvor festgelegte Pixelauflösung (zum Beispiel 256x256) abwärtsskaliert, wie durch die Cropp- und Abwärtsskalierungsoperation 211 gezeigt, um den Eingabevektor 112 bereitzustellen. Wie besprochen, kann der Eingabevektor 112 einen 256x256x3-Elementvektor enthalten, dessen Werte jeden R-, G- und B-Wert jedes Pixels der gecroppten und abwärtsskalierten Region innerhalb der Teilregion 203 enthalten.
  • Wir kehren zu 1 zurück. Der Eingabevektor 112 wird in das Bild-CNN 122 eingespeist. Insbesondere kann der Eingabevektor 112 einem Eingabebild 102 entsprechen, das ein erstes Bild des Eingabevideos 101, ein erstes Bild einer Sequenz des Eingabevideos 101, ein erstes Bild nach einem Szenenwechsel des Eingabevideos 101 usw. ist. Ein solches Bild wird als I0 bezeichnet. Der Eingabevektor 112 wird das Bild-CNN 122 empfangen, das den Eingabevektor 112 verarbeitet, um einen ihm entsprechenden Parametervektor 116 eines morphbaren Modells zu generieren (das heißt, θ0). Im vorliegenden Text werden Parametervektoren eines morphbaren Modells mit θ und einem tiefgestellten Index bezeichnet, der das Eingabebild angibt, dem es entspricht. Das Bild-CNN 122 kann jedes beliebige CNN mit einer beliebigen Anzahl von Schichten (zum Beispiel 6-8 Schichten) enthalten, einschließlich einer Eingabeschicht und einer Ausgabeschicht. Die Eingabeschicht hat die gleiche Anzahl von Knoten wie die Anzahl von Elementen des Eingabevektors 112, und die Ausgabeschicht hat die gleiche Anzahl von Elementen wie der Parametervektor 116 eines morphbaren Modells, die für die Modellierung eines 3D-Gesichtsmodells benötigt werden, wie weiter unten noch besprochen wird. Die Schichten des Bild-CNN 122 können beliebige geeignete Verarbeitungsschichten enthalten, wie zum Beispiel Schichten, denen rektifizierte lineare Einheiten (Rectified Linear Units, ReLU), maximales Pooling und/oder lokale Antwortnormalisierung (Local Response Normalization, LRN) folgen, wie dem Fachmann bekannt ist. Das Bild-CNN 122 wird unter Verwendung einer oder mehrerer geeigneter Techniken vortrainiert, wie zum Beispiel jener, die im Folgenden in Bezug auf 6 besprochen werden.
  • Der Parametervektor 116 eines morphbaren Modells wird in das 3D-Gesichtsrenderungsmodul 124 eingespeist, welches das 3D-Gesichtsmodell 131 unter Verwendung des Parametervektors 116 eines morphbaren Modells implementiert, um ein resultierendes Gesichts-Maschennetz oder ein resultierendes 3D-Gesicht zu generieren. Das resultierende Gesichts-Maschennetz enthält jede geeignete Datenstruktur, die für ein menschliches Gesicht repräsentativ ist, wie zum Beispiel pro-Scheitelpunkt-Form, pro-Scheitelpunkt-Textur (zum Beispiel Haut-Albedo) und Beleuchtungsparameter. Insbesondere kann das resultierende Gesichts-Maschennetz oder 3D-Gesicht auf ein 2D-Bild projiziert werden, um ein Ausgabebild zu generieren.
  • In einer Ausführungsform wird das 3D-Gesichtsmodell 131 unter Verwendung des Parametervektors 116 eines morphbaren Modells modelliert, um ein rekonstruiertes 3D-Gesicht mit korrekter Gegenüberstellung und 3D-Form folgendermaßen zu generieren. Das 3D-Gesichtsmodell 131 (zum Beispiel ein „3D morphable Model“, 3DMM) parametrisiert eine neuartige Gesicht, wie in Bezug auf die Gleichungen (1), (2) und (3) gezeigt, wie folgt: S = S ¯ + A i d α i d + A e x p α e x p
    Figure DE112018007721T5_0001
    T = T ¯ + A a l b α a l b
    Figure DE112018007721T5_0002
    I i = T i b = 1 B 2 h b ( n i ) γ b
    Figure DE112018007721T5_0003
    wobei Gleichung (1) die geometrische Form des rekonstruierten 3D-Gesichts definiert, Gleichung (2) die Haut-Albedo (zum Beispiel Textur oder Reflexionsgrad) des rekonstruierten 3D-Gesichts definiert, und Gleichung (3) das Aussehen der Beleuchtung des rekonstruierten 3D-Gesichts definiert. In den obigen Gleichungen kodieren S, T ∈ ℝ3N die pro-Scheitelpunkt-Form (S) und die Albedo (T) eines zuvor festgelegten Durchschnittsgesichts, wobei N die Scheitelpunktzahl (das heißt, die Anzahl der Scheitelpunkte) ist. Die Form des zuvor festgelegten Durchschnittsgesichts wird dann durch Modifizierungen (unter Verwendung von αid) zu der Formidentitätsmatrix Aid und Modifizierungen (unter Verwendung von αexp) zu der Formidentitätsmatrix Aexp modifiziert. Die Albedo des zuvor festgelegten Durchschnittsgesichts wird ebenfalls durch Modifizierungen (unter Verwendung von αalb) zu der Albedo-Identitätsmatrix Aexp modifiziert. Das heißt, Aid, Aalb ∈ ℝ3N×K sind die Formidentitäts-Basismatrix bzw. die Albedo-Basismatrix mit zum Beispiel K = 99, und Aexp 3 N × K e
    Figure DE112018007721T5_0004
    ist eine Delta-Expressionsmatrix mit zum Beispiel Ke = 80. Die oben besprochenen Modifizierungen an solchen Basismatrizen werden im vorliegenden Text als Koeffizienten zur Modifizierung solcher Matrizen charakterisiert. Unter Verwendung der Formkoeffizienten, Expressionskoeffizienten und Albedokoeffizienten werden die Basismatrizen unter Verwendung von Matrixmultiplikation modifiziert und zu der zuvor festgelegten durchschnittlichen Gesichtsform bzw. Albedo addiert, um eine Form und eine Albedo eines einmaligen Gesichts zu erhalten. Darüber hinaus ist in Gleichung (3) Ti die Haut-Albedo des i-ten Scheitelpunktes, und hb(ni) ∈ ℝ ist die b-te Basisfunktion der sphärischen Harmonischen (SH), die normal, ni, bestimmt wird, wobei B auf 3 gesetzt wird.
  • Darüber hinaus werden die besprochene Form, Albedo und Beleuchtung (zum Beispiel die Bereitstellung eines 3D-Gesichtsmodells) mit Hilfe eines perspektivischen Kameramodells auf der Grundlage von Rotations-, Translations- und Fokusparametern auf eine 2D-Bildebene projiziert. Um also das 3D-Gesichtsmodell 131 vollständig in eine 2D-Bildebenen-Renderung des detektierten Gesichts zu translatieren, enthält der Parametervektor 116 eines morphbaren Modells die folgenden Parameter: αid ∈ ℝ99, αalb) ∈ ℝ99 , αexp ∈ ℝ80 (Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells 131, Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells 131 bzw. Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells 131), γ = { γ 1 r , γ 1 g , γ 1 b , , γ 9 r , γ 9 g , γ 9 b }
    Figure DE112018007721T5_0005
    (Beleuchtungsparameter), R,T (Posentransformationsparameter für Rotation bzw. Translation), und / (ein Kameraparameter für die Posentransformation), dergestalt, dass jeder im vorliegenden Text besprochene Parametervektor eines morphbaren Modells 3 Rotationsparameter, 3 Translationsparameter, 1 Kameraparameter, 99 Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells 131, 99 Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells 131, 80 Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells 131 und 27 Beleuchtungsparameter für insgesamt 312 Parameter enthalten kann. Das heißt, ein Parameter-Deltavektor eines morphbaren Modells, 0, kann folgendermaßen charakterisiert werden: θ = {R, T, f, aid, aalb, aexp, γ}.
  • 3 veranschaulicht das Verarbeiten eines beispielhaften Parametervektors 116 eines morphbaren Modells zum Generieren eines beispielhaften 3D-Maschennetz- oder - Gesichtsmodells, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Wie in 3 gezeigt, wird der Parametervektor 116 eines morphbaren Modells durch die Renderoperation 311, wie oben beschrieben, gerendert, um ein 3D-Gesichtsmodell 301 zu generieren, das dem menschlichen Gesicht 202 entspricht (siehe 2). In dem veranschaulichten Beispiel von 3 wird das 3D-Gesichtsmodell 301 aus zwei Perspektiven gezeigt - das obere Gesicht von vorn und das untere gedreht -, um die Darstellung klarer zu machen. Die Renderoperation 311 kann unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken angewendet werden, die im vorliegenden Text besprochen werden, wie zum Beispiel das Anwenden eines oder mehrerer von Rotationsparametern, Translationsparametern, eines Kameraparameters, Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells 131, Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells 131, Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells 131, und Beleuchtungsparametern für insgesamt 312 Parameter. Insbesondere brauchen nicht alle der Parameter oder Elemente des Parametervektors 116 eines morphbaren Modells angewendet zu werden, um das 3D-Gesichtsmodell 301 zu rendern. Zum Beispiel kann die Textur als ein Spezialeffekt auf das 3D-Gesichtsmodell 301 komplett oder teilweise angewendet werden.
  • Wir kehren zu 1 zurück. Das 3D-Gesichtsrenderungsmodul 124 empfängt dann das 3D-Gesichtsmodell 131 und implementiert mindestens einen Abschnitt des Parametervektors 116 eines morphbaren Modells über das Modell (zum Beispiel wird ein repräsentatives Gesichtsmodell unter Verwendung des Parametervektors 116 eines morphbaren Modells generiert), um ein Gesichts-Maschennetz oder 3D-Gesichtsmodell zu generieren. Optional können ein oder mehrere Spezialeffekte auf der Grundlage des Gesichts-Maschennetzes oder 3D-Gesichtsmodells über das Effekte- und Bildausgabemodul 126 angewendet werden. Die Spezialeffekte können unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken angewendet werden. In einer Ausführungsform umfasst das Anwenden eines Spezialeffekts das Hinzufügen eines Bildelements (zum Beispiel eines animierten Sprite, eines gecroppten Bildes usw.) auf der Basis einer bestimmten Stelle des 3D-Gesichtsmodells, wie zum Beispiel an einem Scheitelpunkt der Nase, das Bedecken eines Auges, auf einer Wange usw., und das Anwenden des Bildelements auf das Eingabebild 102, um ein Ausgabebild 118 zu generieren, das das Bildelement enthält. Insbesondere ermöglicht das 3D-Gesichtsmodell die genaue Anwendung solcher Bildelemente.
  • 4 veranschaulicht das Anwenden eines beispielhaften 3D-Objektelements 401 unter Verwendung des 3D-Gesichtsmodells 301, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Wie in 4 gezeigt, wird das 3D-Objektelement 401 (das heißt, das Renderungsergebnis eines fliegenden 3D-Schmetterlings) unter Verwendung des 3D-Gesichtsmodells 301 auf das Eingabebild 102 angewendet. Insbesondere wird das 3D-Objektelement 401 auf eine bestimmte Stelle 402 des Eingabebildes 102 auf der Basis des 3D-Gesichtsmodells 301 angewendet. In einer Ausführungsform soll das 3D-Objektelement 401 auf eine gewünschte Stelle auf dem menschlichen Gesicht 202 und entsprechend auf das 3D-Gesichtsmodell 301 (zum Beispiel auf der Stirn, auf der Nasenspitze usw.) angewendet werden, und die Stelle wird innerhalb des Eingabebildes 102 unter Verwendung des Parametervektors 116 eines morphbaren Modells bestimmt, der auf das 3D-Gesichtsmodell 131 angewendet wird, um das 3D-Gesichtsmodell 301 zu generieren. In einer Ausführungsform wird das 3D-Objektelement 401 mit dem 3D-Gesichtsmodell gerendert, und die resultierende Renderung wird auf eine 2D-Bildebene projiziert. In einer Ausführungsform wird das 3D-Gesichtsmodell 301 auf die 2D-Bildebene des Eingabebildes 102 projiziert, und eine Pixelposition 402, die einem bestimmten Scheitelpunkt des 3D-Gesichtsmodells 301 entspricht, wird verwendet, um eine untere linke Ecke oder dergleichen des 3D-Objektelements 401 zu zentrieren oder bereitzustellen. Das 3D-Objektelement 401 kann dann über das Eingabebild 102 gelegt werden, um das Ausgabebild 118 zu generieren, das das 3D-Objektelement 401 enthält, wie gezeigt.
  • In Bezug auf 1 wird in anderen Ausführungsformen eine Spezialeffekt-Textur auf das 3D-Gesichtsmodell komplett oder teilweise angewendet, der Abschnitt des 3D-Gesichtsmodells wird auf die 2D-Bildebene des Eingabebildes 102 translatiert, und der translatierte Abschnitt wird über das Eingabebild 102 gelegt, um das Ausgabebild 118 zu generieren. In einer Ausführungsform empfängt das Effekte- und Bildausgabemodul 126 das 3D-Gesichtsmodell, das durch den Parametervektor 116 eines morphbaren Modells generiert wird, und wendet eine Textur auf eine Region (zum Beispiel über den Augen bei der Erstellung einer Maske, auf den Wangen oder Augenlidern bei der Erstellung eines Make-up, auf einer Wange bei der Erstellung einer Narbe usw.) oder auf eine Gesamtheit des 3D-Gesichtsmodells an. Der Textureffekt kann unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken angewendet werden, wie zum Beispiel Textur-Mapping-Techniken und/oder 3D-Grafik-Renderungstechniken.
  • 5 veranschaulicht das Anwenden eines beispielhaften Texturelements 501 unter Verwendung des 3D-Gesichtsmodells 301, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Wie in 5 gezeigt, wird das Texturelement 501 (das heißt, eine dekorative Maskentextur) unter Verwendung des 3D-Gesichtsmodells 301 auf das Eingabebild 102 angewendet. Insbesondere wird das Texturelement 501 auf eine bestimmte Region 502 des Eingabebildes 102 auf der Basis des 3D-Gesichtsmodells 301 angewendet. In einer Ausführungsform soll das Texturelement 501 auf eine gewünschte Region auf dem menschlichen Gesicht 202 und entsprechend auf das 3D-Gesichtsmodell 301 (zum Beispiel auf der Stirn, auf einem Abschnitt, der eine Maske nachahmt, auf Wangen, über Augen usw.) angewendet werden, und die Stelle wird innerhalb des Eingabebildes 102 unter Verwendung des Parametervektors 116 eines morphbaren Modells bestimmt, der auf das 3D-Gesichtsmodell 131 angewendet wird, um das 3D-Gesichtsmodell 301 zu generieren. In einer Ausführungsform wird die gewünschte Textur auf das 3D-Gesichtsmodell 301 angewendet, und die resultierende texturierte Region wird auf die 2D-Bildebene des Eingabebildes 102 projiziert. Danach wird die resultierende texturierte Projektion über das Eingabebild 102 gelegt, um das Ausgabebild 118 zu generieren, das das Texturelement 501 enthält, wie gezeigt.
  • Wir kehren zu 1 zurück. Das Effekte- und Bildausgabemodul 126 kann das Ausgabebild 118 auf der Grundlage des gerenderten 3D-Gesichtsmodells unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken generieren. In einer Ausführungsform wird das 3D-Gesichtsmodell so generiert, dass es fotorealistisch ist (dass es zum Beispiel so weit wie möglich mit einem menschlichen Gesicht 202 übereinstimmt), und das 3D-Gesichtsmodell wird in eine Bildebene translatiert und in ein zuvor festgelegtes Hintergrundbild eingefügt (zum Beispiel wird das menschliche Gesicht auf einen anderweitig animierten oder zuvor aufgenommenen Charakter oder Avatar oder in eine zuvor aufgenommene Umgebung oder eine Virtual-Reality (VR)-Umgebung oder dergleichen platziert), um das Ausgabebild 118 zu generieren. In einer Ausführungsform wird das 3D-Gesichtsmodell texturiert (zum Beispiel eingefärbt, damit es mit einem Charakter übereinstimmt), und das 3D-Gesichtsmodell wird in die Bildebene des Eingabebildes 102 oder eine andere Bildebene translatiert und in das Eingabebild 102 oder ein zuvor festgelegtes Hintergrundbild eingefügt, um das Ausgabebild 118 zu generieren. In einer Ausführungsform wird das 3D-Gesichtsmodell so modifiziert oder justiert, dass es mit einem gewünschten chirurgischen Ergebnis übereinstimmt (zum Beispiel Schönheits-OP oder Beseitigung einer Verletzung), und das justierte 3D-Gesichtsmodell wird in eine Ausgabebildebene translatiert, um das Ausgabebild 118 zur Ansicht für einen Chirurgen während der Operation zu generieren. Die besprochenen Techniken können zum Beispiel in einer Vielzahl verschiedener Kontexte verwendet werden, wie zum Beispiel bei der Erstellung spezieller visueller Effekte in Filmen, im Fernsehen und in Spielen, beim Abbilden des aufgenommenen (und optional modifizierten) Gesichts auf einen digitalen Avatar, oder beim Hinzufügen von 2D-Aufklebern oder dynamischen 3D-Requisiten zu einem Gesicht in Videos (zum Beispiel Ersetzen des Ursprungsgesichts durch einige virtuelle Elemente optional in Echtzeit, bei der Anwendung in sozialen VR-Netzen und zur Unterstützung eines Arztes bei der Durchführung einer Operation unter Verwendung des rekonstruierten 3D-Gesichtsmodells).
  • Wie besprochen, generiert das Bildvorverarbeitungsmodul 121 Eingabevektoren 112, 113, 114, die den Eingabebildern 102, 103, 104 entsprechen. Wie gezeigt, werden die Eingabevektoren 113, 114, die den Eingabebildern 102, 103 bzw. 104 entsprechen, zu einem Eingabevektor 115 kombiniert. Zum Beispiel können die Eingabevektoren 113, 114 Werte enthalten, die einen Wert für jeden von drei (zum Beispiel RGB) Chrominanzwerten für jeden der abwärtsskalierten Pixelwerte von gecroppten und abwärtsskalierten Regionen enthalten, wie im vorliegenden Text besprochen. Der Eingabevektor 115 enthält eine Kombination solcher Werte. In einer Ausführungsform enthält der Eingabevektor eine Verkettung von Eingabevektoren 113, 114. In einer Ausführungsform enthält der Eingabevektor 256x256x3x2-Werte, die einem Wert für jeden von drei (zum Beispiel RGB) Chrominanzwerten für jeden der abwärtsskalierten Pixelwerte (zum Beispiel bei einer Auflösung von 256x256 Pixeln) sowohl für die gecroppte Region des Eingabebildes 103 als auch für die gecroppte Region des Eingabebildes 104 entsprechen. Obgleich sich die Besprechung auf RGB-Werte für eine quadratische, gecroppte Region von 256x256 Pixeln bezieht, können beliebige geeigneten Pixelwerte (zum Beispiel YUV-Werte) sowie Form und Größe der gecroppten Regionen verwendet werden. Insbesondere wird der Eingabevektor 115 auf das Format formatiert, das zum Vortrainieren des Verfolgung-CNN 123 verwendet wird.
  • Wie besprochen, entspricht der Eingabevektor 115 den Eingabebildern 103, 104 (mit It-1 bzw. It bezeichnet). Wie besprochen, folgt das Eingabebild 104 zeitlich auf das Eingabebild 103. In einer Ausführungsform folgt das Eingabebild 104 zeitlich unmittelbar auf das Eingabebild 103, dergestalt, dass keine Bilder zwischen den Eingabebildern 103, 104 liegen. In einer Ausführungsform ist das Eingabebild 103 das Bild I0, und das Eingabebild 104 folgt zeitlich auf das Eingabebild (zum Beispiel I1). Die in Bezug auf die Eingabebilder 103, 104 besprochene Verarbeitung kann für eine beliebige Anzahl zeitlich benachbarter Eingabebilder durchgeführt werden.
  • Der Eingabevektor 115 wird in das Verfolgung-CNN 123 eingespeist, das den Eingabevektor 115 verarbeitet, um einen ihm entsprechenden Parameter-Deltavektor 117 eines morphbaren Modells (das heißt, Δθt) zu generieren. Im vorliegenden Text werden Parameter-Deltavektoren eines morphbaren Modells mit Δθ und einem tiefgestellten Index bezeichnet, der das Eingabebild angibt, dem der Parameter-Deltavektor eines morphbaren Modells entspricht. Das Verfolgungs-CNN 123 kann jedes beliebige CNN mit einer beliebigen Anzahl von Schichten (zum Beispiel 6-8 Schichten) enthalten, einschließlich einer Eingabeschicht und einer Ausgabeschicht. Die Eingabeschicht hat die gleiche Anzahl von Knoten wie die Anzahl von Elementen des Eingabevektors 115, und die Ausgabeschicht hat die gleiche Anzahl von Elementen wie der Parametervektor 116 eines morphbaren Modells und der Parameter-Deltavektor 117 eines morphbaren Modells, die zur Modellierung des 3D-Gesichtsmodells 131 benötigt werden. Die Schichten des Verfolgungs-CNN 123 können beliebige geeignete Verarbeitungsschichten enthalten, wie zum Beispiel Schichten, denen rektifizierte lineare Einheiten (Rectified Linear Units, ReLU), maximales Pooling und/oder lokale Antwortnormalisierung (Local Response Normalization, LRN) folgen, wie dem Fachmann bekannt ist. Das Verfolgungs-CNN 123 wird unter Verwendung einer oder mehrerer geeigneter Techniken vortrainiert, wie zum Beispiel jener, die im Folgenden in Bezug auf 7 besprochen werden.
  • Im Sinne des vorliegenden Textes bezeichnet der Begriff „Parameter-Deltavektor eines morphbaren Modells“ einen Vektor von Elementen oder Werten zum Justieren oder Ändern eines Parametervektors eines morphbaren Modells. Ein Parameter-Deltavektor eines morphbaren Modells enthält Deltawerte für jeden der Werte oder jedes der Elemente eines Parametervektors eines morphbaren Modells, wie oben besprochen. In einer Ausführungsform enthält der Parameter-Deltavektor 117 eines morphbaren Modells Delta-Koeffizientenwerte zum Justieren von Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells 131, Delta-Koeffizientenwerte zum Justieren von Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells 131, Delta-Koeffizientenwerte zum Justieren von Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells 131, Delta-Werte oder Parameter zum Justieren von Beleuchtungsparametern, Delta-Posentransformationsparameter zum Modifizieren von Rotations- bzw. Translationswerten, und einen Delta-Kameraparameter zum Justieren eines Kameraparameters für die Posentransformation. Das heißt, ein Parameter-Deltavektor eines morphbaren Modells, Δθ, kann folgendermaßen charakterisiert werden: Δθ = {ΔR, ΔT, Δf, Δαid, Δαalb, Δαexp, Δγ}.
  • Zum Beispiel kann der Parameter-Deltavektor 117 eines morphbaren Modells 312 Delta-Parameter enthalten, die den 312 Parametern entsprechen, die in Bezug auf einen Parametervektor eines morphbaren Modells besprochen wurden. Solche Modifizierungs- oder Justierwerte des Parameter-Deltavektors 117 eines morphbaren Modells können zu einem Parametervektor eines morphbaren Modells, wie zum Beispiel dem Parametervektor 132 eines morphbaren Modells, addiert oder von diesem subtrahiert werden, um einen Parametervektor eines morphbaren Modells (θt, nicht gezeigt) zu generieren. Das heißt, der Parameter-Deltavektor 117 eines morphbaren Modells, der dem Eingabevektor 115 entspricht, der seinerseits zeitlich benachbarten Eingabebildern 103, 104 (It-1, It) entspricht, wird zu dem Parametervektor 116 eines morphbaren Modells (θt-1), der dem Eingabebild 103 (It-1) entspricht, addiert oder von diesem subtrahiert, um einen Parametervektor eines morphbaren Modells (θt, nicht gezeigt) für das Eingabebild 104 (It) zu generieren. Auf diese Weise werden zeitliche Aktualisierungen der Parametervektoren eines morphbaren Modells über Frames hinweg unter Verwendung der Ausgabe des Verfolgung-CNN 123 bereitgestellt.
  • Wie gezeigt, empfängt das 3D-Gesichtsrenderungsmodul 125 den Parameter-Deltavektor 117 eines morphbaren Modells, den Parametervektor 132 eines morphbaren Modells (der durch das Bild-CNN 122 oder eine frühere Kombination aus einem Parametervektor eines morphbaren Modells und einem Parameter-Deltavektor eines morphbaren Modells generiert werden kann) und das 3D-Gesichtsmodell 131. Das 3D-Gesichtsrenderungsmodul 125 generiert einen Parametervektor eines morphbaren Modells für das momentane Eingabebild (zum Beispiel It) durch Modifizieren des Parametervektors 132 eines morphbaren Modells unter Verwendung des Parameter-Deltavektors 117 eines morphbaren Modells. Eine solche Modifizierung kann durch Addition, Subtraktion oder Multiplikation des Parametervektors 132 eines morphbaren Modells mit dem Parameter-Deltavektor 117 eines morphbaren Modells erfolgen. Das 3D-Gesichtsrenderungsmodul 125 implementiert dann mindestens einen Abschnitt des Parametervektors eines morphbaren Modells für das momentane Bild auf der Basis des 3D-Gesichtsmodells 131 (zum Beispiel wird ein repräsentatives 3D-Gesichtsmodell unter Verwendung des Parametervektors eines morphbaren Modells, 9t, generiert), um ein Gesichts-Maschennetz oder 3D-Gesichtsmodell zu generieren. Optional können ein oder mehrere Spezialeffekte auf der Grundlage des Gesichts-Maschennetzes oder 3D-Gesichtsmodells über das Effekte- und Bildausgabemodul 127 angewendet werden.
  • Das 3D-Gesichtsrenderungsmodul 125 kann das Gesichts-Maschennetz oder das 3D-Gesichtsmodell unter Verwendung jeglicher Techniken generieren, die im vorliegenden Text in Bezug auf das 3D-Gesichtsrenderungsmodul 124 besprochen werden. Darüber hinaus kann das Effekte- und Bildausgabemodul 127 Spezialeffekte implementieren und das Ausgabebild 119, das dem Eingabebild 104 entspricht, unter Verwendung jeglicher Techniken generieren, die im vorliegenden Text in Bezug auf das Effekte- und Bildausgabemodul 126 besprochen werden. Diese Beschreibung wird aus Gründen der Kürze und Klarheit der Darstellung nicht wiederholt. Insbesondere können das 3D-Gesichtsrenderungsmodul 125 und das 3D-Gesichtsrenderungsmodul 124 und/oder das Effekte- und Bildausgabemodul 126 und das Effekte- und Bildausgabemodul 127 separat implementiert werden, wie veranschaulicht, oder sie können zusammen implementiert werden. In einer Ausführungsform kann eine getrennte Implementierung über die erste Stufe 141 und die zweite Stufe 142 den Vorteil einer parallelen Verarbeitung bieten. Zum Beispiel können ein oder mehrere Prozesse der ersten Stufe 141 und der zweiten Stufe 142 gleichzeitig implementiert werden.
  • 6 veranschaulicht ein beispielhaftes System 600 zum Vortrainieren eines CNN-Bildes, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Wie in 6 gezeigt, umfasst das System 600 das Bildvorverarbeitungsmodul 121, ein CNN-Trainingsmodul 611, das 3D-Gesichtsrenderungsmodul 612 und ein Verlustmessungsmodul 613. Das System 600 kann über jede geeignete Vorrichtung implementiert werden, die in Bezug auf das System 100 besprochen wird. Wie gezeigt, empfängt das System 600 einen Trainingskorpus 601 aus einer beliebigen Anzahl von Eingabebildern (von denen im Interesse der besseren Übersichtlichkeit nur eines veranschaulicht ist), das Darstellungen eines menschlichen Gesichts enthält.
  • Wie im vorliegenden Text besprochen, empfängt das Bildvorverarbeitungsmodul 121 Eingabebilder 602 und generiert entsprechende Eingabevektoren 603, die diesen entsprechen. Der Trainingskorpus 601 kann eine beliebige Anzahl von Eingabebildern 602 enthalten, wie zum Beispiel etwa 100.000 Bilder, die jeweils eine Darstellung eines menschlichen Gesichts enthalten. In einer Ausführungsform ist das Vortrainieren des Bild-CNN ein selbstbeaufsichtigtes Training, dergestalt, dass die Eingabebilder 602 des Trainingskorpus 601 unbezeichnete Bilder sind. Die Eingabebilder 602 und die Eingabevektoren 603 können beliebige im vorliegenden Text besprochene Eigenschaften in Bezug auf die Eingabebilder 102, 103, 104 und die Eingabevektoren 112, 113, 114 aufweisen. Das Bildvorverarbeitungsmodul 121 kann zum Beispiel Gesichtsdetektion, Gesichtsmerkmaldetektion oder dergleichen durchführen, um eine Darstellung eines menschlichen Gesichts zu detektieren, das Eingabebild 602 auf eine Region croppen, die das Gesicht enthält, die gecroppte Region auf eine vorgegebene Standardpixelauflösung abwärtsskalieren, und jeden der Eingabevektoren 603 als eine Verkettung der Chrominanz-Pixelwerte für jede Pixelposition der abwärtsskalierten Region generieren. In einer Ausführungsform enthält jeder der Eingabevektoren 256x256x3-Werte, die einen Wert für jeden von drei (zum Beispiel RGB-) Chrominanzwerten für jeden der abwärtsskalierten Pixelwerte enthalten.
  • Die Eingabevektoren 603 werden iterativ über eine große Anzahl von Trainingsiterationen in das Bild-CNN-Trainingsmodul 611 eingespeist. Während des Trainings werden CNN-Parameter 604 auf der Basis von Eingabevektoren 603 und unter Verwendung einer Kostenfunktion trainiert (zum Beispiel nach jedem Bild oder nach der Verarbeitung von Bildgruppen aktualisiert), um die Darstellung eines menschlichen Gesichts in einem Eingabebild 602 und ein rekonstruiertes 3D-Modell des menschlichen Gesichts zu vergleichen, das auf der Basis der Ausgabe des momentanen Bild-CNN generiert wurde, das durch das Bild-CNN-Trainingsmodul 611 unter Verwendung momentaner CNN-Parameter 604 bereitgestellt wird.
  • Bei einer momentanen Iteration und für einen momentanen Eingabevektor 603 implementiert das Bild-CNN-Trainingsmodul 611 zum Beispiel ein momentanes Bild-CNN unter Verwendung der momentanen CNN-Parameter 604, um einen Parametervektor 605 eines morphbaren Modells zu generieren, das diesem entspricht. Das Bild-CNN kann jegliche Eigenschaften aufweisen, die im vorliegenden Text in Bezug auf das Bild-CNN 122 besprochen werden. Darüber hinaus kann der Parametervektor 605 eines morphbaren Modells jegliche Eigenschaften aufweisen, die in Bezug auf den Parametervektor 116 eines morphbaren Modells oder jeden beliebigen im vorliegenden Text besprochenen Parametervektor eines morphbaren Modells besprochen werden. Der Parametervektor 605 eines morphbaren Modells wird in das 3D-Gesichtsrenderungsmodul 612 eingespeist, welches das 3D-Gesichtsmodell 131 unter Verwendung des Parametervektors 605 eines morphbaren Modells implementiert, um ein resultierendes Gesichts-Maschennetz oder 3D-Gesicht in dem gerenderten Ausgabebild 606 (hier als R veranschaulicht) zu generieren. Das resultierende Gesichts-Maschennetz oder 3D-Gesicht enthält jede beliebige im vorliegenden Text besprochene geeignete Datenstruktur. Insbesondere kann das resultierende Gesichts-Maschennetz oder 3D-Gesicht alle Details des Parametervektors 605 eines morphbaren Modells enthalten oder implementieren, um zu versuchen, der Darstellung eines menschlichen Gesichts, das in dem entsprechenden Eingabebild 602 enthalten ist, so genau wie möglich zu entsprechen. Darüber hinaus wird das resultierende Gesichts-Maschennetz oder 3D-Gesicht auf ein 2D-Bild projiziert, um das gerenderte Ausgabebild 606 zu generieren und so ein realistisches synthetisches Bild zu generieren, das eine Darstellung eines menschlichen Gesichts enthält.
  • Wie gezeigt, werden das gerenderte Ausgabebild 606 und das entsprechende Eingabebild 602 in das Verlustmessungsmodul 613 eingespeist, das das gerenderte Ausgabebild 606 und das entsprechende Eingabebild 602 über eine Kosten- oder Verlustfunktion vergleicht, die über das Training des Bild-CNN durch das Bild-CNN-Trainingsmodul 611 minimiert wird (zum Beispiel durch Justieren der CNN-Parameter 604). Die Kosten- oder Verlustfunktion kann jede geeignete Funktion sein, die Kosten oder Verluste in Bezug auf die Differenz zwischen dem gerenderten Ausgabebild 606 und dem entsprechenden Eingabebild 602 und/oder andere Messgrößen, wie zum Beispiel ein Maß zur Beschränkung von Parametervektoren eines morphbaren Modells, bereitstellt. In einer Ausführungsform ist die Kosten- oder Verlustfunktion eine Summe eines Maßes für die photometrische Ausrichtung zwischen dem Eingabebild 602 und dem gerenderten Ausgabebild 606 und eines Maßes zur Beschränkung des Parametervektors 605 eines morphbaren Modells. In einer Ausführungsform ist das Maß der photometrischen Ausrichtung eine Summe der Farbunterschiede pro Pixel (zum Beispiel Summe der Quadrate, Summe der absoluten Wertdifferenz usw.). In einer Ausführungsform ist das Maß zur Beschränkung des Parametervektors 605 eines morphbaren Modells eine Funktion, die einen skalaren Wert bereitstellt, der dem Ausmaß entspricht, um wie viel der Parametervektor 605 eines morphbaren Modells von einem Mittel- oder Medianwert oder von einem mittleren Bereich oder einem Medianbereich von Werten abweicht. In einer Ausführungsform wird die Kosten- oder Verlustfunktion wie in Gleichung (4) gezeigt bereitgestellt: E L o s s ( θ ) = λ p E p h o t o ( θ ) + λ r E r e g ( θ )
    Figure DE112018007721T5_0006
    wobei ELoss(θ) die Kosten- oder Verlustfunktion ist und die Kosten als eine Funktion des momentanen Parametervektors 605 eines morphbaren Modells auf der Basis des gerenderten Ausgabebildes 606 und des entsprechenden Eingabebildes 602 und des Beschränkungsmaßes des Parametervektors 605 eines morphbaren Modells bereitstellt, Ephoto (θ) eine Messung der dichten photometrischen Ausrichtung (zum Beispiel eine Summe der Farbdifferenz pro Pixel) zwischen dem gerenderten Ausgabebild 606 und dem entsprechenden Eingabebild 602 ist und als ein skalarer Wert ausgedrückt ist, Ereg(θ) eine Beschränkungsfunktion zum Messen der Abweichung des Parametervektors 605 eines morphbaren Modells von einem Mittelwert oder Medianwert und/oder zum Messen der Verletzung von Beschränkungen erwarteter Parameterwerte des Parametervektors 605 eines morphbaren Modells, als ein skalarer Wert ausgedrückt, ist, λp ein Gewichtungskoeffizient für die Messung der dichten photometrischen Ausrichtung ist, und λr ein Gewichtungskoeffizient für die Messung der Beschränkungsfunktion ist.
  • Nach der Auswertung durch das Verlustmessungsmodul 613 werden die CNN-Parameter 604 justiert (zum Beispiel pro Bild, pro Bildgruppe oder pro Trainingskorpus), und diese Verarbeitung wird so lange wiederholt, bis die durch das Verlustmessungsmodul 613 angewendete Kosten- oder Verlustfunktion minimiert ist. Wie besprochen, ist in einigen Ausführungsformen ein solches CNN-Training selbstbeaufsichtigt, dergestalt, dass die Eingabebilder 602 des Trainingskorpus 601 unbezeichnete Bilder sind. Darüber hinaus ist ein solches CNN-Training ein End-to-End-Training, dergestalt, dass die Eingabevektoren 603 und die Ausgabe-Parametervektoren 605 eines morphbaren Modells direkt, ohne Teilung des Bild-CNN während des Trainings, ausgewertet werden. Da die Renderungsschicht (die zum Beispiel durch das 3D-Gesichtsrenderungsmodul 612 implementiert wird) und die Verlustfunktion (die zum Beispiel durch das Verlustmessungsmodul 613 implementiert wird) vollständig analytisch und differenzierbar sind, kann des Weiteren das Back-Forward-Pass-Training unter Verwendung von Rückausbreitungstechniken, wie sie dem Fachmann bekannt sind, durchgeführt werden.
  • 7 veranschaulicht ein beispielhaftes System 700 zum Vortrainieren eines Verfolgung-CNN, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Wie in 7 gezeigt, enthält das System 700 das Bildvorverarbeitungsmodul 121, ein Verfolgungs-CNN-Trainingsmodul 711, ein 3D-Gesichtsrenderungsmodul 712, ein Verlustmessungsmodul 713, und ein Optisches-Fluss-Modul 714. Das System 700 kann über jede geeignete Vorrichtung implementiert werden, die in Bezug auf das System 100 besprochen wird. Wie gezeigt, empfängt das System 700 einen Trainingskorpus 701 aus einer beliebigen Anzahl zeitlich aufeinanderfolgender Eingabebilder oder Video-Frames (von denen im Interesse der besseren Übersichtlichkeit nur zwei veranschaulicht sind), die jeweils eine Darstellung eines menschlichen Gesichts enthalten.
  • Wie im vorliegenden Text besprochen, empfängt das Bildvorverarbeitungsmodul 121 Eingabebilder 702, 703 und generiert entsprechende Eingabevektoren 704, 705, die diesen entsprechen. Der Trainingskorpus 701 kann eine beliebige Anzahl sequentieller Eingabebilder oder -Frames enthalten, wie zum Beispiel etwa 1.000 Sequenzen von Bildern oder Frames, die jeweils etwa 200 sequentielle Bilder oder Frames enthalten. In einer Ausführungsform ist das Vortrainieren des Verfolgung-CNN ein selbstbeaufsichtigtes Training, dergestalt, dass die Eingabebilder des Trainingskorpus 601 unbezeichnete Bilder sind. Die Eingabebilder 702, 703 und die Eingabevektoren 704, 705 sowie der Eingabevektor 706 (zum Beispiel eine Kombination der Eingabevektoren 704, 705) können beliebige im vorliegenden Text besprochene Eigenschaften in Bezug auf die Eingabebilder 102, 103, 104 und die Eingabevektoren 112, 113, 114, 115. Das Bildvorverarbeitungsmodul 121 kann zum Beispiel Gesichtsdetektion, Gesichtsmerkmaldetektion oder dergleichen durchführen, um eine Darstellung eines menschlichen Gesichts zu detektieren, die Eingabebilder 702, 703 auf eine Region croppen, die das Gesicht enthält, die gecroppte Region auf eine vorgegebene Standardpixelauflösung abwärtsskalieren, und jeden der Eingabevektoren 702, 703 als eine Verkettung der Chrominanz-Pixelwerte für jede Pixelposition der abwärtsskalierten Region generieren. In einer Ausführungsform enthält jeder der Eingabevektoren 256x256x3-Werte, die einen Wert für jeden von drei (zum Beispiel RGB-) Chrominanzwerten für jeden der abwärtsskalierten Pixelwerte enthalten. Darüber hinaus generiert das Bildvorverarbeitungsmodul 121 oder ein anderes Modul den Eingabevektor 706 durch Verketten der Eingabevektoren 704, 705.
  • Zum Beispiel wird für jedes zeitlich aufeinanderfolgende Paar von Eingabebildern 702, 703 ein Eingabevektor 706 generiert, dergestalt, dass der Eingabevektor 706 Pixelwerte für jede der Regionen der Eingabebilder 702, 703 enthält, das eine Darstellung eines menschlichen Gesichts enthält. Die Eingabevektoren 706 werden iterativ über eine große Anzahl von Trainingsiterationen in das Verfolgungs-CNN-Trainingsmodul 711 eingespeist. Während des Trainings werden CNN-Parameter 707 auf der Basis von Eingabevektoren 706 und unter Verwendung einer Kostenfunktion trainiert (zum Beispiel nach jedem Bild oder nach der Verarbeitung von Bildgruppen aktualisiert), um die Darstellung eines menschlichen Gesichts in einem Eingabebild 703 und ein rekonstruiertes 3D-Modell des menschlichen Gesichts zu vergleichen, das auf der Basis der Ausgabe des momentanen Bild-CNN generiert wurde, das durch das Bild-CNN-Trainingsmodul 711 unter Verwendung momentaner CNN-Parameter 707 bereitgestellt wird.
  • Bei einer momentanen Iteration und für einen momentanen Eingabevektor 706 implementiert das Verfolgungs-CNN-Trainingsmodul 711 zum Beispiel ein momentanes Verfolgungs-CNN unter Verwendung der momentanen CNN-Parameter 707, um einen Parameter-Deltavektor 708 eines morphbaren Modells zu generieren, das diesem entspricht. Das Verfolgungs-CNN kann jegliche Eigenschaften aufweisen, die im vorliegenden Text in Bezug auf das Verfolgungs-CNN 123 besprochen werden. Darüber hinaus kann der Parameter-Deltavektor 708 eines morphbaren Modells jegliche Eigenschaften aufweisen, die in Bezug auf den Parameter-Deltavektor 117 eines morphbaren Modells oder jeden beliebigen im vorliegenden Text besprochenen Parameter-Deltavektor eines morphbaren Modells besprochen werden. Der Parameter-Deltavektor 708 eines morphbaren Modells wird in das 3D-Gesichtsrenderungsmodul 712 eingespeist, das einen Parametervektor eines morphbaren Modells (θt, nicht gezeigt) durch Addieren oder Subtrahieren des Parameter-Deltavektors 117 eines morphbaren Modells mit dem Parametervektor 732 eines morphbaren Modells (θt-1), der dem Eingabebild 702 entspricht, generiert. Der Parametervektor 732 eines morphbaren Modells kann unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken generiert werden. In einer Ausführungsform wird ein Parametervektor 732 eines morphbaren Modells für jedes Eingabebild unter Verwendung des vortrainierten Bild-CNN 122 (zum Beispiel vortrainiert, wie in Bezug auf 6 besprochen) zur Verwendung durch das 3D-Gesichtsrenderungsmodul 712 generiert. Das 3D-Gesichtsrenderungsmodul 712 implementiert dann das 3D-Gesichtsmodell 131 unter Verwendung des Parametervektors eines morphbaren Modells (9t) für das momentane Eingabebild 703 und des Eingabevektors 706, um ein resultierendes Gesichts-Maschennetz oder 3D-Gesicht in dem gerenderten Ausgabebild 709 (als Rt veranschaulicht) zu generieren. Das resultierende Gesichts-Maschennetz oder 3D-Gesicht enthält jede beliebige im vorliegenden Text besprochene geeignete Datenstruktur. Insbesondere kann das resultierende Gesichts-Maschennetz oder 3D-Gesicht alle Details des Parametervektors eines morphbaren Modells enthalten oder implementieren, um zu versuchen, der Darstellung eines menschlichen Gesichts, das in dem entsprechenden Eingabebild 703 enthalten ist, so genau wie möglich zu entsprechen. Darüber hinaus wird das resultierende Gesichts-Maschennetz oder 3D-Gesicht auf ein 2D-Bild projiziert, um das gerenderte Ausgabebild 709 zu generieren und so ein realistisches synthetisches Bild zu generieren, das eine Darstellung eines menschlichen Gesichts enthält.
  • Wie gezeigt, werden das gerenderte Ausgabebild 709 und das entsprechende Eingabebild 602 über eine Kosten- oder Verlustfunktion, die über das Training des Verfolgungs-CNN durch das Verfolgungs-CNN-Trainingsmodul 711 (zum Beispiel durch Justieren der CNN-Parameter 707) minimiert wird, in das Verlustmessungsmodul 613 eingespeist, das das gerenderte Ausgabebild 709 mit dem entsprechenden Eingabebild 703 und mit einem gerenderten Bild 710 vergleicht, das dem Parametervektor 732 eines morphbaren Modells entspricht (wobei ein Pixelabgleich zwischen dem gerenderten Ausgabebild und dem gerenderten das Bild 710 unter Verwendung des Optischen-Fluss-Moduls 714 ausgeführt wird). Die Kosten- oder Verlustfunktion kann jede geeignete Funktion sein, die Kosten oder Verluste in Bezug auf die Differenz zwischen dem gerenderten Ausgabebild 709 und dem entsprechenden Eingabebild 703 und/oder Kosten oder Verluste im Zusammenhang mit der Differenz zwischen dem gerenderten Ausgabebild 709 und dem gerenderten Bild 710 bereitstellt. Wie besprochen, basiert das gerenderte das Bild 710 auf dem Parametervektor 732 eines morphbaren Modells. In einer Ausführungsform wird das gerenderte Bild 710 unter Verwendung des Parametervektors 732 eines morphbaren Modells generiert, um das 3D-Gesichtsmodell 131, wie im vorliegenden Text besprochen, zu implementieren. In einer Ausführungsform wird der Parametervektor 732 eines morphbaren Modells durch Anwenden des Bild-CNN 122 auf das Eingabebild 702 generiert.
  • Für den Vergleich des gerenderten Ausgabebildes 709 und des gerenderten Bildes 710 kann eine Pixelabgleich unter Verwendung der Optisches-Fluss-Daten von dem Optischen-Fluss-Modul 714 vorgenommen werden. Solche Optischen-Fluss-Daten können in jedem geeigneten Format vorliegen, wie zum Beispiel einer pro-Pixel-Bewegung, die durch die pro-Pixel-Verschiebung und -Richtungsdaten bereitgestellt wird. Wie gezeigt, kann das Optische-Fluss-Modul 714 Teilregionen auswerten, die eine Darstellung eines menschlichen Gesichts enthalten, um solche Optischen-Fluss-Daten zwischen Eingabebildern 702, 703 zu generieren, wie dem Fachmann bekannt ist. Die resultierenden Optischen-Fluss-Daten werden verwendet, um Pixelübereinstimmungen zwischen dem gerenderten Ausgabebild 709 und dem gerenderten Bild 710 herzustellen (zum Beispiel durch Auffinden eines übereinstimmenden Pixels für ein Pixel des gerenderten Bildes 710 in dem gerenderten Ausgabebild 709 auf der Grundlage der pro-Pixel-Verschiebung und -Richtungsdaten).
  • Wie besprochen, kann die durch das Verlustmessungsmodul 713 ausgewertete Kosten- oder Verlustfunktion jede geeignete Funktion sein, die Kosten oder Verluste in Bezug auf die Differenz zwischen dem gerenderten Ausgabebild 709 und dem entsprechenden Eingabebild 703 und/oder Kosten oder Verluste im Zusammenhang mit der Differenz zwischen dem gerenderten Ausgabebild 709 und dem gerenderten Bild 710 bereitstellt. In einer Ausführungsform ist die Kosten- oder Verlustfunktion eine Summe eines Maßes der photometrischen Ausrichtung zwischen dem gerenderten Ausgabebild 709 und dem entsprechenden Eingabebild 703 und eines Maßes der zeitlichen Übereinstimmung zwischen dem gerenderten Ausgabebild 709 und dem gerenderten Bild 710 (als Pixelabgleich unter Verwendung Optischer-Fluss-Daten). In einer Ausführungsform ist das Maß der photometrischen Ausrichtung eine Summe der Farbunterschiede pro Pixel (zum Beispiel Summe der Quadrate, Summe der absoluten Wertdifferenz usw.). In ähnlicher Weise ist in einer Ausführungsform das Maß der zeitlichen Übereinstimmung eine Summe von Farbdifferenzen pro Pixel (zum Beispiel Summe der Quadrate, Summe der absoluten Wertdifferenz usw.), die beide als eine skalare Werte bereitgestellt werden können. In einer Ausführungsform wird die Kosten- oder Verlustfunktion wie in Gleichung (5) gezeigt bereitgestellt: E L o s s ( θ ) = λ s E s p a t i a l ( θ ) + λ t E t e m p o r a l ( θ )
    Figure DE112018007721T5_0007
    wobei ELoss(θ) die Kosten- oder Verlustfunktion ist und die Kosten als eine Funktion des momentanen Parametervektors eines morphbaren Modells (θt) und des Parametervektors eines morphbaren Modells (Δθt) auf der Grundlage des gerenderten Ausgabebildes 709, des Eingabebildes 703 und des gerenderten Bildes 710 bereitstellt, Espatial(θ) eine Messung der dichten photometrischen Ausrichtung (zum Beispiel eine Summe der Farbdifferenz pro Pixel) zwischen dem gerenderten Ausgabebild 709 und dem entsprechenden Eingabebild 703 ist und als ein skalarer Wert ausgedrückt wird (zum Beispiel ist er analog zu Ephoto(θ) und stellt ein Maß dafür bereit, wie gut das gerenderte Bild mit dem betrachteten Gesichtsbild übereinstimmt), und Etemporal(θ) ein Maß der zeitlichen Übereinstimmung zwischen dem gerenderten Ausgabebild 709 und dem gerenderten Bild 710 ist (um zum Beispiel große Änderungen zwischen dem momentanen Bild und dem vorherigen Bild zu begrenzen). Wie besprochen, ist in einer Ausführungsform Etemporal(θ) eine Farbdifferenz pro Pixel zwischen dem gerenderten Ausgabebild 709 und dem gerenderten Bild 710. In einer Ausführungsform wird Etemporal(θ) wie in Gleichung (6) gezeigt bestimmt: E t e m p o r a l ( θ ) = i Ω R t [ i ] R t 1 [ i ] 2
    Figure DE112018007721T5_0008
    wobei Rt das gerenderte Ausgabebild 709 ist, Rt-1, das gerenderte Bild 710 ist, und Ω die Anzahl der Pixel in jedem Bild oder Bildabschnitt ist, und i eine Zählervariable ist. Wie besprochen, wird die Pixelentsprechung zwischen dem gerenderten Ausgabebild 709 und dem gerenderten Bild 710 durch den optischen Fluss zwischen den Eingabebildern 702, 703 (zum Beispiel einem Eingabebildpaar) bestimmt. Wie besprochen, stellt Etemporal(θ) die zeitliche Verfolgung in den Videoverfolgungsergebnissen sicher, indem die zeitliche Kohärenz zwischen den Eingabebildern 702, 703 gemessen wird.
  • 8 ist ein Flussdiagramm, das einen beispielhaften Prozess 800 zum Trainieren von CNNs und deren Implementierung für das Aufnehmen und Rendern von 3D-Gesichtern veranschaulicht, der gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Der Prozess 800 kann eine oder mehrere Operationen 801- 816 umfassen, wie in 8 veranschaulicht. Der Prozess 800 oder Abschnitte davon können durch jede im vorliegenden Text besprochene Vorrichtung oder jedes im vorliegenden Text besprochene System durchgeführt werden.
  • Der Prozess 800 beginnt bei Operation 801, wo ein Bild-CNN trainiert wird. Das Bild-CNN kann unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken trainiert werden. In einer Ausführungsform wird ein vorgegebenes CNN, wie zum Beispiel ein künstliches neuronales Feed-Forward-Netz, so modifiziert, dass es eine Anzahl von Eingabeknoten enthält, die gleich einer Anzahl von Elementen in einem Eingabevektor ist, der ein Bild repräsentiert, das eine Darstellung eines menschlichen Gesichts enthält (zum Beispiel eine Anzahl von Elementen gleich einem Wert für jede Farbe jeder Pixelposition einer gecroppten und abwärtsskalierten Region), und eine Anzahl von Ausgabeknoten enthält, die gleich einer Anzahl von Parametern in einem Parametervektor eines morphbaren Modells θ entspricht. Das Bild-CNN wird trainiert, um Parameter des Bild-CNN (zum Beispiel Gewichte, Koeffizienten usw.) zu bestimmen. In einer Ausführungsform enthält das Training das iterative Einspeisen von Eingabevektoren in das Bild-CNN und das Modifizieren seiner Parameter auf der Grundlage einer Verlust- oder Kostenfunktion, die mit den Ergebnissen aus dem Bild-CNN verknüpft ist. Zum Beispiel wird der resultierende Parametervektor eines morphbaren Modells verwendet, um ein 3D-Gesichts-Maschennetz oder -Modell zu generieren, das in eine 2D-Bildebene translatiert wird. Das resultierende Bild wird mit dem Eingabebild verglichen, um räumlichen Kosten oder eine räumlichen Differenz zu bestimmen. Die räumlichen Kosten oder die räumliche Differenz werden zu den Kosten addiert, die mit einer eventuellen Abweichung des resultierenden Parametervektors eines morphbaren Modells von den auf ihn angewendeten Einschränkungen verbunden sind, um die Gesamtkosten zu bestimmen. Während des gesamten Trainings wird die Kosten- oder Verlustfunktion über Trainingsbilder hinweg minimiert, und die resultierenden Bild-CNN-Parameter werden für die Implementierung bei Operation 806 gespeichert.
  • Die Verarbeitung wird bei Operation 802 fortgesetzt, wo ein Verfolgungs-CNN trainiert wird. Das Verfolgungs-CNN kann unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken trainiert werden. In einer Ausführungsform wird ein vorgegebenes CNN, wie zum Beispiel ein künstliches neuronales Feed-Forward-Netz, so modifiziert, dass es eine Anzahl von Eingabeknoten enthält, die gleich einer Anzahl von Elementen in einem Eingabevektor ist, der ein zeitlich aufeinanderfolgendes Paar Bilder repräsentiert, die jeweils Darstellungen eines menschlichen Gesichts enthalten (zum Beispiel eine Anzahl von Elementen gleich einem Wert für jede Farbe jeder Pixelposition einer gecroppten und abwärtsskalierten Region zeitlich benachbarter Bilder), und eine Anzahl von Ausgabeknoten enthält, die gleich einer Anzahl von Parametern in einem Parameter-Deltavektor eines morphbaren Modells Δθ ist. Das Verfolgungs-CNN wird trainiert, um Parameter des Verfolgungs-CNN (zum Beispiel Gewichte, Koeffizienten usw.) zu bestimmen. In einer Ausführungsform enthält das Training das iterative Einspeisen von Eingabevektoren in das Bild-CNN und das Modifizieren seiner Parameter auf der Grundlage einer Verlust- oder Kostenfunktion, die mit den Ergebnissen aus dem Bild-CNN verknüpft ist. Zum Beispiel wird der resultierende Parameter-Deltavektor eines morphbaren Modells verwendet, um ein 3D-Gesichts-Maschennetz oder -Modell zu generieren (nachdem zuerst ein Parametervektor eines morphbaren Modells eines vorherigen Bildes unter Verwendung des Parameter-Deltavektors eines morphbaren Modells modifiziert wurde), das in eine 2D-Bildebene translatiert wird. Das resultierende Bild wird mit dem Eingabebild verglichen, um räumlichen Kosten oder eine räumlichen Differenz zu bestimmen. Die räumlichen Kosten oder die räumliche Differenz werden zu den zeitlichen Kosten addiert, die durch Vergleichen des resultierenden Bildes mit einem zuvor gerenderten Bild (mit Pixelabgleich auf der Grundlage einer O0tischen-Fluss-Analyse des Eingabebildpaares) bestimmt werden. Während des gesamten Trainings wird die Kosten- oder Verlustfunktion über Trainingsbilder hinweg minimiert, und die resultierenden Verfolgungs-CNN-Parameter werden für die Implementierung bei Operation 811 gespeichert.
  • Wie gezeigt, werden die Operationen 802, 803 in einer Trainingsphase 821 durchgeführt, während anschließende Operationen des Prozesses 800 in einer Implementierungsphase 831 durchgeführt werden. Insbesondere können die Trainingsphase 821 und die Implementierungsphase 831 durch verschiedene Vorrichtungen durchgeführt werden.
  • Die Verarbeitung wird bei Operation 803 fortgesetzt, wo das Eingabevideo unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken empfangen wird. In einer Ausführungsform wird das Eingabevideo mit einer lokalen Vorrichtung aufgenommen, vorverarbeitet und als eine Sequenz von RGB- oder YUV-Bildern oder -Frames bereitgestellt. In einer Ausführungsform wird das Eingabevideo aus einem lokalen Speicher oder von einer räumlich abgesetzten Vorrichtung empfangen. Die Verarbeitung wird bei der Operation 804 fortgesetzt, wo ein Bild ausgewählt und nach Bedarf gecroppt und abwärtsskaliert wird. In einer Ausführungsform wird ein Gesicht innerhalb des ausgewählten Bildes detektiert, und um das detektierte Gesicht herum wird unter Verwendung einer vorgegebenen Form (zum Beispiel ein Quadrat, Rechteck usw.) ein Cropp-Vorgang ausgeführt. In einer Ausführungsform wird der gecroppte Region nach dem Croppen auf eine vorgegebene Pixelauflösung (zum Beispiel NxM Pixel) abwärtsskaliert.
  • Die Verarbeitung wird bei der Entscheidungsoperation 805 fortgesetzt, wo bestimmt wird, ob das bei Operation 804 ausgewählte Bild ein erstes Bild in einer Videosequenz ist. Eine solche Bestimmung kann unter Verwendung einer oder mehrerer geeigneter Techniken erfolgen, wie zum Beispiel bei einer Szenenwechseldetektion oder der Bestimmung, dass das Bild ein erstes verfügbares das Bild ist, oder dergleichen. Wenn ja, so wird die Verarbeitung bei Operation 806 fortgesetzt, wo ein Eingabevektor für das momentane Bild als Chroma-Pixelwerte oder Luma- und Chroma-Werte für die gecroppte und abwärtsskalierte Region generiert wird (zum Beispiel NxMx3-Werte für 3 Chroma-Kanäle oder 1 Luma-Kanal und 2 Chroma-Kanäle). Die Pixelwerte können innerhalb des Vektors unter Verwendung jeder geeigneten Technik oder jeglicher geeigneten Techniken, wie zum Beispiel Rasterscanordnung oder dergleichen, organisiert werden.
  • Die Verarbeitung wird bei Operation 807 fortgesetzt, wo ein Bild-CNN auf den Eingabevektor angewendet wird, um einen Parametervektor eines morphbaren Modells (θ) zu generieren. In einer Ausführungsform wird das bei Operation 801 trainierte das Bild-CNN auf den Eingabevektor angewendet, um einen Parametervektor eines morphbaren Modells zu generieren. Das Bild-CNN kann jedes im vorliegenden Text besprochene Bild-CNN sein. Darüber hinaus enthält der Parametervektor eines morphbaren Modells Koeffizienten und Parameter zum Rendern eines 3D-Gesichts-Maschennetzes oder -Gesichtsmodells auf der Grundlage eines 3D-Gesichtsmodells, wie zum Beispiel eines 3DMM eines Gesichts.
  • Die Verarbeitung wird bei Operation 808 fortgesetzt, wo ein 3D-Gesichtsmodell auf der Grundlage des Parametervektors eines morphbaren Modells gerendert wird, und bei Operation 809, wo ein visueller Effekt angewendet oder ein Bild auf der Grundlage des Gesichts-Maschennetzes oder -Modells modifiziert wird, um ein Ausgabebild zu generieren. In einer Ausführungsform wird ein Abschnitt der Parameter des Parametervektors eines morphbaren Modells zum Rendern des 3D-Gesichts-Maschennetzes oder -Modells verwendet, das anschließend modifiziert wird (zum Beispiel durch Anwenden einer Farbe oder Textur auf das Gesicht), um ein 2D-Bild zu generieren. In einer Ausführungsform werden alle oder ein Teil der Parameter des Parametervektors eines morphbaren Modells zum Rendern des 3D-Gesichts-Maschennetzes oder -Modells verwendet, das in ein 2D-Bild translatiert und dafür verwendet wird, entweder eine modifizierte Version des momentanen Eingabebildes als ein Ausgabebild oder ein völlig neues Ausgabebild zu generieren. Zum Beispiel kann das 2D-Bild des Gesichts in das Eingabebild eingefügt oder auf ein anderes Bild (das zum Beispiel einen bestimmten Hintergrund oder eine bestimmte Animation hat) angewendet werden, um ein Ausgabebild zu generieren. In einer Ausführungsform wird das 3D-Gesichts-Maschennetz oder -Modell verwendet, um ein Bild so zu rendern, dass das 3D-Gesichts-Maschennetz oder -Modell vor der Translation in ein 2D-Bild in ein 3D-Modell eingefügt wird. In einer Ausführungsform wird eine fotorealistische Version des 3D-Gesichts-Maschennetzes oder -Modells in einen Bildhintergrund eingefügt.
  • Wir kehren zu der Entscheidungsoperation 805 zurück. Wenn das momentane Bild kein erstes Bild in einer Sequenz ist, so wird die Verarbeitung bei Operation 810 fortgesetzt, wo ein Eingabevektor für ein Eingabebildpaar generiert wird, das das momentane Bild und ein zeitlich früheres Bild als Chroma-Pixelwerte oder Luma- und Chroma-Werte für die gecroppten und abwärtsskalierten Regionen des momentanen Bildes und des zeitlich vorangehenden Bildes enthält (zum Beispiel NxMx3x2-Werte für 3 Chroma-Kanäle oder 1 Luma-Kanal und 2 Chroma-Kanäle für zwei Bilder). Die Pixelwerte können innerhalb des Vektors unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken organisiert werden, wie zum Beispiel einer Rasterscanordnung der Region für das zeitlich vorangehende Bild, gefolgt von einer Rasterscanordnung der Region für das momentane Bild oder dergleichen.
  • Die Verarbeitung wird bei Operation 811 fortgesetzt, wo ein Verfolgungs-CNN auf den Eingabevektor angewendet wird, um einen Parameter-Deltavektor eines morphbaren Modells (Δθ) zu generieren. In einer Ausführungsform wird das bei Operation 802 trainierte Verfolgungs-CNN auf den Eingabevektor angewendet, um einen Parameter-Deltavektor eines morphbaren Modells zu generieren. Das Verfolgungs-CNN kann jedes im vorliegenden Text besprochene Verfolgungs-CNN sein. Darüber hinaus enthält der Parameter-Deltavektor eines morphbaren Modells Justierungen der Koeffizienten und Parameter (zum Beispiel Deltas für solche Werte), um ein 3D-Gesichts-Maschennetz oder -Gesichtsmodell auf der Grundlage eines 3D-Gesichtsmodells, wie zum Beispiel eines 3DMM eines Gesichts, zu rendern.
  • Die Verarbeitung wird bei Operation 812 fortgesetzt, wo der bei Operation 811 generierte Parameter-Deltavektor eines morphbaren Modells zu einem vorherigen Parametervektor eines morphbaren Modells für das zeitlich vorherige Bild des Bildpaares addiert (oder davon subtrahiert) wird, um den Parametervektor eines morphbaren Modells für das momentane Bild zu bestimmen. Die Verarbeitung wird bei Operation 813 fortgesetzt, wo ein 3D-Gesichtsmodell auf der Grundlage des Parametervektors eines morphbaren Modells gerendert wird, und bei Operation 814, wo ein visueller Effekt angewendet oder ein Bild auf der Grundlage des Gesichts-Maschennetzes oder -Modells modifiziert wird, um ein Ausgabebild zu generieren. In einer Ausführungsform wird ein Abschnitt der Parameter des Parametervektors eines morphbaren Modells zum Rendern des 3D-Gesichts-Maschennetzes oder -Modells verwendet, das anschließend modifiziert wird (zum Beispiel durch Anwenden einer Farbe oder Textur auf das Gesicht), um ein 2D-Bild zu generieren. In einer Ausführungsform werden alle oder ein Teil der Parameter des Parametervektors eines morphbaren Modells zum Rendern des 3D-Gesichts-Maschennetzes oder -Modells verwendet, das in ein 2D-Bild translatiert und dafür verwendet wird, entweder eine modifizierte Version des momentanen Eingabebildes als ein Ausgabebild oder ein völlig neues Ausgabebild zu generieren. Zum Beispiel kann das 2D-Bild des Gesichts in das Eingabebild eingefügt oder auf ein anderes Bild (das zum Beispiel einen bestimmten Hintergrund oder eine bestimmte Animation hat) angewendet werden, um ein Ausgabebild zu generieren. In einer Ausführungsform wird das 3D-Gesichts-Maschennetz oder -Modell verwendet, um ein Bild so zu rendern, dass das 3D-Gesichts-Maschennetz oder -Modell vor der Translation in ein 2D-Bild in ein 3D-Modell eingefügt wird. In einer Ausführungsform wird eine fotorealistische Version des 3D-Gesichts-Maschennetzes oder -Modells in einen Bildhintergrund eingefügt.
  • Die Verarbeitung wird ab Operation 809 oder Operation 814 bei der Entscheidungsoperation 815 fortgesetzt, wo bestimmt wird, ob das momentane Bild ein letztes Bild in der Sequenz ist. Wenn nicht, so wird die Verarbeitung, wie oben besprochen, bei Operation 804 fortgesetzt. Wenn ja, so wird die Verarbeitung bei Operation 816 fortgesetzt, wo die generierten Ausgabebilder als eine Videosequenz gespeichert und/oder einem Benutzer über ein Display als Video präsentiert werden.
  • 9 ist ein Flussdiagramm, das einen beispielhaften Prozess 900 zum Verarbeiten von Video veranschaulicht und gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Der Prozess 900 kann eine oder mehrere Operationen 901- 907 umfassen, wie in 9 veranschaulicht. Der Prozess 900 kann mindestens einen Teil einer Videoverarbeitungstechnik bilden. Als ein nicht-einschränkendes Beispiel kann der Prozess 900 mindestens einen Teil einer Verarbeitungstechnik bilden, die durch eines oder mehrere der Systeme 100, 600, 700 ausgeführt wird, wie im vorliegenden Text besprochen. Darüber hinaus wird der Prozess 900 im vorliegenden Text unter Bezug auf das System 1000 von 10 beschrieben.
  • 10 ist ein veranschaulichendes Diagramm eines beispielhaften Systems 1000 zum Verarbeiten von Video, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. Wie in 10 gezeigt, kann das System 1000 einen Zentralprozessor 1001, einen Bildprozessor 1002, einen Speicher 1003 und eine Kamera 1004 enthalten. Zum Beispiel können die Kamera 1004 und ein Display (nicht abgebildet) ein Eingabevideo zur Verarbeitung und Anzeige von Video aufnehmen, das auf der Grundlage von 3D-Gesichtsmodellen modifiziert wurde, die jeweils wie im vorliegenden Text besprochen generiert wurden. Wie ebenfalls gezeigt, kann der Zentralprozessor 1001 das Bildvorverarbeitungsmodul 121, das Bild-CNN 122, das Verfolgungs-CNN 123, ein oder mehrere 3D-Gesichtsrenderungsmodule 124, 125, 612, 712, ein oder mehrere Effekte- und Bildausgabemodule 126, 127, das Bild-CNN-Trainingsmodul 611 und das Verlustmessungsmodul 613 sowie das Verfolgungs-CNN-Trainingsmodul 711, das Verlustmessungsmodul 713 und ein Optisches-Fluss-Modul 714 enthalten oder implementieren. In einer Ausführungsform implementiert das System 1000 nur das Bildvorverarbeitungsmodul 121, das Bild-CNN 122, das Verfolgungs-CNN 123, die 3D-Gesichtsrenderungsmodule 124, 125 und die Bildausgabemodule 126, 127 (das heißt, in einem Implementierungskontext). In einer Ausführungsform implementiert das System 1000 nur das Bildvorverarbeitungsmodul 121, das Bild-CNN-Trainingsmodul 611 und das Verlustmessungsmodul 613 (das heißt, in einem Bild-CNN-Trainingskontext). In einer Ausführungsform implementiert das System 1000 nur das Verfolgungs-CNN-Trainingsmodul 711, das Verlustmessungsmodul 713 und ein Optisches-Fluss-Modul 714 (das heißt, in einem Verfolgungs-CNN-Trainingskontext). Solche Komponenten oder Module können zur Durchführung der im vorliegenden Text besprochenen Operationen implementiert werden. In dem Speicher 1003 können Bilder, Bilddaten, Eingabevektoren, Ausgabevektoren, 3D-Modellparameter, Parametervektoren eines morphbaren Modells, Parameter-Deltavektoren eines morphbaren Modells, Effektdaten oder andere im vorliegenden Text besprochene Daten gespeichert werden.
  • Wie gezeigt, werden in einigen Beispielen eines oder mehrere von dem Bildvorverarbeitungsmodul 121, dem Bild-CNN 122, dem Verfolgungs-CNN 123, einem oder mehreren 3D-Gesichtsrenderungsmodulen 124, 125, 612, 712, einem oder mehreren Effekte- und Bildausgabemodulen 126, 127, dem Bild-CNN-Trainingsmodul 611 und dem Verlustmessungsmodul 613 sowie dem Verfolgungs-CNN-Trainingsmodul 711, dem Verlustmessungsmodul 713 sowie dem Optischen-Fluss-Modul 714 über den Zentralprozessor 1001 implementiert. In anderen Beispielen werden eines oder mehrere oder Abschnitte von dem Bildvorverarbeitungsmodul 121, dem Bild-CNN 122, dem Verfolgungs-CNN 123, einem oder mehreren 3D-Gesichtsrenderungsmodulen 124, 125, 612, 712, einem oder mehreren Effekte- und Bildausgabemodulen 126, 127, dem Bild-CNN Trainingsmodul 611 und dem Verlustmessungsmodul 613 sowie dem Verfolgungs-CNN-Trainingsmodul 711, dem Verlustmessungsmodul 713 und einem Optischen-Fluss-Modul 714 über den Bildprozessor 1002, einen Videoprozessor, einen Grafikprozessor oder dergleichen implementiert. In weiteren Beispielen sind eines oder mehrere oder Abschnitte von dem Bildvorverarbeitungsmodul 121, dem Bild-CNN 122, dem Verfolgungs-CNN 123, einem oder mehreren 3D-Gesichtsrenderungsmodulen 124, 125, 612, 712, einem oder mehreren Effekte- und Bildausgabemodulen 126, 127, dem Bild-CNN-Trainingsmodul 611 und dem Verlustmessungsmodul 613 sowie dem Verfolgungs-CNN-Trainingsmodul 711, dem Verlustmessungsmodul 713 sowie einem Optischen-Fluss-Modul 714 über eine Bild- oder Videoverarbeitungspipeline oder -einheit implementiert.
  • Der Bildprozessor 1002 kann eine beliebige Anzahl und Art von Grafik-, Bild- oder Videoverarbeitungseinheiten enthalten, die die im vorliegenden Text beschriebenen Operationen bereitstellen können. In einigen Beispielen kann der Bildprozessor 1002 ein Bildsignalprozessor sein. Solche Operationen können über Software oder Hardware oder eine Kombination davon implementiert werden. Zum Beispiel kann der Bildprozessor 1002 eine Schaltungen enthalten, die dafür ausgelegt sind, aus dem Speicher 1003 erhaltene Framedaten, Bilddaten oder Videodaten zu bearbeiten. Der Zentralprozessor 1001 kann eine beliebige Anzahl und Art von Verarbeitungseinheiten oder -modulen enthalten, die Steuerungs- und andere übergeordnete Funktionen für das System 1000 bereitstellen und/oder jegliche Operationen, wie im vorliegenden Text besprochen, bereitstellen können. Der Speicher 1003 kann jede Art von Speicher sein, wie zum Beispiel flüchtiger Speicher (zum Beispiel Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM) usw.), oder nicht-flüchtiger Speicher (zum Beispiel Flash-Speicher usw.), und so weiter. In einem nicht-einschränkenden Beispielhaft kann der Speicher 1003 durch Cache-Speicher implementiert werden.
  • In einer Ausführungsform sind eines oder mehrere oder Abschnitte von dem Bildvorverarbeitungsmodul 121, dem Bild-CNN 122, dem Verfolgungs-CNN 123, einem oder mehreren 3D-Gesichtsrenderungsmodulen 124, 125, 612, 712, einem oder mehreren Effekte- und Bildausgabemodulen 126, 127, dem Bild-CNN-Trainingsmodul 611 und dem Verlustmessungsmodul 613 sowie dem Verfolgungs-CNN-Trainingsmodul 711, dem Verlustmessungsmodul 713 sowie einem Optischen-Fluss-Modul 714 über eine Ausführungseinheit (Execution Unit, EU) des Bildprozessors 1002 implementiert. Die EU kann zum Beispiel programmierbare Logik oder Schaltungen wie zum Beispiel einen oder mehrere Logikkerne umfassen, die ein breites Spektrum an programmierbaren Logikfunktionen bieten können. In einer Ausführungsform sind eines oder mehrere oder Abschnitte von dem Bildvorverarbeitungsmodul 121, dem Bild-CNN 122, dem Verfolgungs-CNN 123, einem oder mehreren 3D-Gesichtsrenderungsmodulen 124, 125, 612, 712, einem oder mehreren Effekte- und Bildausgabemodulen 126, 127, dem Bild-CNN-Trainingsmodul 611 und dem Verlustmessungsmodul 613 sowie dem Verfolgungs-CNN-Trainingsmodul 711, dem Verlustmessungsmodul 713 sowie einem Optischen-Fluss-Modul 714 über dedizierte Hardware wie zum Beispiel Festfunktionsschaltungen oder dergleichen implementiert. Festfunktionsschaltungen können dedizierte Logik oder Schaltungen enthalten und können eine Reihe von Festfunktions-Eintrittspunkten bereitstellen, die auf die dedizierte Logik für einen festen Zweck oder eine feste Funktion abbilden können. In einigen Ausführungsformen können eines oder mehrere oder Abschnitte von dem Bildvorverarbeitungsmodul 121, dem Kamera- und Posenschätzungsmodul 132, dem Konturbestimmungs- und -abgleichsmodul 133, dem Linearform-Schätzungsmodul 134, dem Texturschätzungsmoduls 135 und dem Formverfeinerungsmodul 136 über einen anwendungsspezifischen integrierten Schaltkreis (ASIC) implementiert werden. Der ASIC kann einen integrierten Schaltkreis enthalten, die speziell dafür ausgelegt ist, die im vorliegenden Text besprochenen Operationen auszuführen. Die Kamera 1004 kann eine beliebige Kamera enthalten, die ein beliebiges geeignetes Objektiv und einen beliebigen geeigneten Bildsensor und/oder beliebige geeignete zugehörige Hardware zur Aufnahme von Bildern oder Video aufweisen.
  • Wir kehren zur Besprechung von 9 zurück. Der Prozess 900 beginnt bei Operation 901, wo sequentielle Video-Bilder oder -Frames, die eine Darstellung eines menschlichen Gesichts enthalten, zur Verarbeitung empfangen werden. Die sequentiellen Video-Bilder können in jedem Format vorliegen und können lokal von der Kamera 1004 oder aus dem Speicher 1003 oder von einer räumlich abgesetzten Vorrichtung (nicht gezeigt) empfangen werden.
  • Die Verarbeitung wird bei Operation 902 fortgesetzt, wo ein erstes (Bild-) CNN auf einen ersten Eingabevektor angewendet wird, der einem ersten Video-Bild der sequentiellen Video-Bilder entspricht, um einen ersten Parametervektor eines morphbaren Modells zu generieren. Das erste Video-Bild kann ein beliebiges Video-Bild der sequentiellen Video-Bilder sein. In einer Ausführungsform ist das erste Video-Bild das zeitlich erste Video-Bild der sequentiellen Video-Bilder. In einer Ausführungsform ist das erste Video-Bild ein Szenenwechselbild oder I-Frame oder dergleichen. Der erste Eingabevektor kann ein beliebiger Eingabevektor für die Eingabe in ein im vorliegenden Text besprochenes Bild-CNN sein. In einer Ausführungsform enthält der erste Eingabevektor Chroma-Werte für Pixel einer ersten abwärtsskalierten Teilregion des ersten Video-Bildes. Zum Beispiel kann die erste abwärtsskalierte Teilregion eine gecroppte und abwärtsskalierte Region sein, die eine Darstellung eines menschlichen Gesichts enthält. In einer Ausführungsform enthält der Prozess 900 des Weiteren die Durchführung einer Gesichtsdetektion der Eingabebilder, das Croppen der Bilder auf eine Teilregion, die das detektierte Gesicht enthält, und das Abwärtsskalieren der gecroppten Region auf eine vorgegebene Pixelauflösung. Der erste Parametervektor eines morphbaren Modells und jeder andere im vorliegenden Text besprochene Parametervektor eines morphbaren Modells können beliebige geeignete Parameter zum Generieren eines Gesichtsmodells aus einem 3D-Gesichtsmodell enthalten. In einer Ausführungsform enthält der Parametervektor eines morphbaren Modells eine Verkettung von Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells, und Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells. Optional kann der Parametervektor eines morphbaren Modells zusätzliche Parameter wie zum Beispiel Rotationsparameter, Translationsparameter, einen Kameraparameter und Beleuchtungsparameter enthalten.
  • Die Verarbeitung wird bei Operation 903 fortgesetzt, wo ein zweites (Verfolgungs-) und separates CNN auf einen zweiten Eingabevektor angewendet wird, der dem ersten Video-Bild und einem zweiten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen Parameter-Deltavektor eines morphbaren Modells zu generieren. Das zweite Video-Bild kann ein beliebiges Video-Bild sein, das zeitlich auf das erste Video-Bild folgt, wie zum Beispiel ein unmittelbar zeitlich anschließendes Video-Bild. Der zweite Eingabevektor kann ein beliebiger Eingabevektor für die Eingabe in ein im vorliegenden Text besprochenes Verfolgungs-CNN sein. In einer Ausführungsform enthält der zweite Eingabevektor Chroma-Werte für Pixel der ersten abwärtsskalierten Teilregion des ersten Video-Bildes und Chroma-Werte für Pixel einer zweiten abwärtsskalierten Teilregion des zweiten Video-Bildes. Zum Beispiel kann die zweite abwärtsskalierte Teilregion eine gecroppte und abwärtsskalierte Region sein, die analog zu der ersten abwärtsskalierten Teilregion eine Darstellung eines menschlichen Gesichts enthält. In einer Ausführungsform enthält der zweite Eingabevektor die Informationen des ersten Eingabevektors (zum Beispiel Chroma-Werte für Pixel einer ersten abwärtsskalierten Teilregion), die mit denselben Daten für das zweite Eingabebild (zum Beispiel Chroma-Werten für Pixel einer zweiten abwärtsskalierten Teilregion) verkettet sind. In einer Ausführungsform werden das erste und das zweite Eingabebild als ein Paar Eingabebilder charakterisiert.
  • In einer Ausführungsform enthält der Prozess 900 des Weiteren das Anwenden des zweiten (Verfolgungs-) CNN auf einen dritten Eingabevektor, der dem zweiten Video-Bild und einem dritten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen zweiten Parameter-Deltavektor eines morphbaren Modells zu generieren, dergestalt, dass der dritte Eingabevektor die zweiten Chroma-Werte (zum Beispiel für das zweite Eingabebild) und dritten Chroma-Werte für dritte Pixel einer dritten abwärtsskalierten Teilregion eines dritten Video-Bildes enthält. Zum Beispiel kann die in Bezug auf Operation 903 besprochene Verarbeitung für eine beliebige Anzahl aufeinanderfolgender Bildpaare (zum Beispiel von zeitlich benachbarten Bildern) wiederholt werden. In einer Ausführungsform enthält jeder der ersten, zweiten und dritten Chroma-Werte jeweils Werte für den ersten, zweiten und dritten Chroma-Kanal der Eingabebilder, wie zum Beispiel RGB-Werte. Der Parameter-Deltavektor eines morphbaren Modells und jeder andere im vorliegenden Text besprochene Parameter-Deltavektor eines morphbaren Modells kann beliebige geeignete Parameter zum Modifizieren eines Parametervektors eines morphbaren Modells enthalten, die nach dem Modifizieren zum Generieren eines Gesichtsmodells aus einem 3D-Gesichtsmodell verwendet werden können. In einer Ausführungsform enthält der Parameter-Deltavektor eines morphbaren Modells eine Verkettung zweiter Koeffizienten zum Modifizieren jedes der Koeffizienten zum Modifizieren der Formidentitäts-Basismatrix, der Koeffizienten zum Modifizieren der Expressionsidentitäts-Basismatrix, und der Koeffizienten zum Modifizieren der Texturidentitäts-Basismatrix vor dem Anwenden auf das 3D-Gesichtsmodell. Optional kann der Parameter-Deltavektor eines morphbaren Modells zusätzliche Parameter oder Koeffizienten oder Werte enthalten, um Rotationsparameter, Translationsparameter, einen Kameraparameter und Beleuchtungsparameter zu modifizieren.
  • Die Verarbeitung wird bei Operation 904 fortgesetzt, wo ein erstes Gesichtsmodell des menschlichen Gesichts durch Anwenden des ersten Parametervektors eines morphbaren Modells auf ein 3D-Gesichtsmodell generiert wird. Das 3D-Gesichtsmodell kann jedes im vorliegenden Text besprochene Modell, wie zum Beispiel das in Bezug auf die Gleichungen (1), (2) und (3) besprochene Modell, oder einen Abschnitt davon enthalten. Zum Beispiel kann ein 3D-Gesichtsmodell unter Verwendung von weniger als allen verfügbaren Modellierungsparametern generiert werden (zum Beispiel nur mit Form, nur mit Form und Albedo, usw.). Im Sinne des vorliegenden Textes meint die Wendung „Anwenden eines Parametervektors eines morphbaren Modells auf ein 3D-Gesichtsmodell“, dass ein 3D-Modell durch Implementieren des Parameters eines morphbaren Modells unter Verwendung des 3D-Gesichtsmodells generiert oder gerendert wird. Das heißt, das 3D-Gesichtsmodell (zum Beispiel ein 3DMM) ist so konzipiert, dass es durch Koeffizienten oder Parameter modifiziert werden kann, die unter Verwendung eines Parametervektors eines morphbaren Modells implementiert werden.
  • Die Verarbeitung wird bei Operation 905 fortgesetzt, wo ein zweiter Parametervektor eines morphbaren Modells durch Modifizieren des ersten Parametervektors eines morphbaren Modells unter Verwendung des bei Operation 902 generierten Parameter-Deltavektors eines morphbaren Modells bestimmt wird. Der erste Parametervektor eines morphbaren Modells kann unter Verwendung des Parameter-Deltavektors eines morphbaren Modells unter Verwendung jeder geeigneten Technik oder jeglicher geeigneter Techniken modifiziert werden. In einer Ausführungsform wird der Parameter-Deltavektor eines morphbaren Modells dem ersten Parametervektor eines morphbaren Modells hinzugefügt, um den zweiten Parametervektor eines morphbaren Modells zu generieren. In einer Ausführungsform wird der Parameter-Deltavektor eines morphbaren Modells von dem ersten Parametervektor eines morphbaren Modells subtrahiert, um den zweiten Parametervektor eines morphbaren Modells zu generieren. In einer Ausführungsform werden der Parameter-Deltavektor eines morphbaren Modells und der erste Parametervektor eines morphbaren Modells elementweise multipliziert, um den zweiten Parametervektor eines morphbaren Modells zu generieren.
  • Die Verarbeitung wird bei Operation 906 fortgesetzt, wo ein zweites Gesichtsmodell des menschlichen Gesichts durch Anwenden des zweiten Parametervektors eines morphbaren Modells auf ein 3D-Gesichtsmodell generiert wird. Wie in Bezug auf Operation 905 besprochen, kann das 3D-Gesichtsmodell jedes beliebige im vorliegenden Text besprochene Modell enthalten.
  • Die Verarbeitung wird bei Operation 907 fortgesetzt, wo Ausgabevideo-Bilder, die Bildmerkmale enthalten, die mindestens teilweise auf dem ersten und dem zweiten Gesichtsmodell basieren, im Speicher gespeichert, über ein Display präsentiert, zu einer anderen Vorrichtung gesendet werden, usw. Die Bildmerkmale können in geeigneter Weise mindestens teilweise auf dem ersten und dem zweiten Gesichtsmodell basieren. In einer Ausführungsform werden die Bildmerkmale an einer bestimmten Stelle in den Ausgabebildern unter Verwendung einer bestimmten Stelle (zum Beispiel Nase, Ohr usw.) des ersten und des zweiten Gesichtsmodells bereitgestellt. In einer Ausführungsform umfasst das Bildmerkmal eine Renderung der Gesichtsmodelle (zum Beispiel eine fotorealistische Renderung, eine Renderung mit einer ersetzten Textur oder einem ersetzten Texturabschnitt, eine Renderung mit einer Modifizierung der Form des Gesichtsmodells, usw.). In einer Ausführungsform werden die Bildmerkmale angewendet, um die Eingabebilder zu modifizieren. In einer Ausführungsform sind die Bildmerkmale ein Abschnitt eines neu generierten Ausgabebildes. In einer Ausführungsform enthält der Prozess 900 des Weiteren das Anwenden eines Effekts auf mindestens eines des ersten und des zweiten Gesichtsmodells vor dem Speichern, Präsentieren oder Speichern der Ausgabevideo-Bilder.
  • In einer Ausführungsform enthält der Prozess 900 des Weiteren das Vortrainieren des ersten (Bild-) CNN durch Generieren mehrerer Trainings-Eingabevektoren auf der Grundlage von Trainingsbildern, die jeweils eine Darstellung eines menschlichen Gesichts umfassen, dergestalt, dass jeder der Trainings-Eingabevektoren Chroma-Werte für eine Region eines Trainingsbildes umfasst, das das menschliche Gesicht umfasst, das iterative Anwenden des ersten CNN auf die mehreren Trainings-Eingabevektoren, um entsprechende mehrere Parametervektoren eines morphbaren Modells zu generieren, das Rendern resultierender Ausgabebilder durch Anwenden der mehreren Parametervektoren eines morphbaren Modells auf das 3D-Gesichtsmodell, und das Minimieren einer Kostenfunktion, die ein Maß der photometrischen Ausrichtung zwischen den Trainingsbildern und den resultierenden Ausgabebildern und ein Maß zur Beschränkung der Parametervektoren eines morphbaren Modells enthält. In einer Ausführungsform enthält das Vortrainieren ein selbstbeaufsichtigtes Training, dergestalt, dass die Trainings-Video-Bilder unbezeichnete Bilder umfassen.
  • In einer Ausführungsform enthält der Prozess 900 des Weiteren das Vortrainieren des zweiten (Verfolgungs-) CNN durch Generieren mehrerer Trainings-Eingabevektoren auf der Grundlage von Trainings-Video-Bildern, die jeweils eine Darstellung eines menschlichen Gesichts umfassen, dergestalt, dass jeder der Trainings-Eingabevektoren erste Chroma-Werte für eine erste Region eines ersten bestimmten Trainings-Video-Bildes und zweite Chroma-Werte für eine zweite Region eines zweiten bestimmten Trainings-Video-Bildes zeitlich nach dem ersten bestimmten Trainings-Video-Bild umfasst, das iterative Anwenden des zweiten CNN auf die mehreren Trainings-Eingabevektoren, um entsprechende mehrere Parameter-Deltavektoren eines morphbaren Modells zu generieren, das Rendern eines ersten resultierenden Ausgabebildes durch Anwenden eines Parametervektors eines morphbaren Modells, der unter Verwendung eines Parameter-Deltavektors eines morphbaren Modells justiert wurde, auf das 3D-Gesichtsmodell, und das Minimieren einer Kostenfunktion, die ein Maß für die photometrische Ausrichtung zwischen einem Trainings-Video-Bild und dem ersten resultierenden Ausgabebild und ein Maß für die zeitliche Kohärenz zwischen dem ersten resultierenden Ausgabebild und einem früheren zeitlichen resultierenden Ausgabebild umfasst. In einer Ausführungsform enthält das Maß der zeitlichen Kohärenz eine Farbdifferenz pro Pixel zwischen dem ersten resultierenden Ausgabebild und dem früheren zeitlichen resultierenden Ausgabebild auf der Basis einer pro-Pixel-Entsprechung zwischen dem ersten resultierenden Ausgabebild und dem früheren zeitlichen resultierenden Ausgabebild, die auf der Basis einer Optischen-Fluss-Detektion des ersten und des zweiten bestimmten Trainings-Video-Bildes generiert wird.
  • Verschiedene Komponenten der im vorliegenden Text beschriebenen Systeme können in Software, Firmware und/oder Hardware und/oder einer beliebigen Kombination davon implementiert sein. Zum Beispiel können verschiedene Komponenten der im vorliegenden Text besprochenen Systeme mindestens teilweise durch Hardware eines Computer-System-on-Chip (SoC) bereitgestellt werden, wie man es zum Beispiel in einem Computersystem, wie zum Beispiel einem Smartphone, findet. Der Fachmann erkennt, dass die im vorliegenden Text beschriebenen Systeme zusätzliche Komponenten enthalten können, die in den entsprechenden Figuren nicht gezeigt sind. Zum Beispiel können die im vorliegenden Text besprochenen Systeme zusätzliche Komponenten wie zum Beispiel Kommunikationsmodule und dergleichen enthalten, die im Interesse der Übersichtlichkeit nicht gezeigt wurden.
  • Obgleich die Implementierung der im vorliegenden Text besprochenen beispielhaften Prozesse die Durchführung aller gezeigten Operationen in der veranschaulichten Reihenfolge umfassen kann, ist die vorliegende Offenbarung in dieser Hinsicht nicht beschränkt, und in verschiedenen Beispielen braucht die Implementierung der im vorliegenden Text besprochenen beispielhaften Prozesse nur eine Teilmenge der gezeigten Operationen zu umfassen, kann Operationen umfassen, die in einer anderen Reihenfolge als veranschaulicht ausgeführt werden, oder kann zusätzliche Operationen umfassen.
  • Darüber hinaus können eine oder mehrere der im vorliegenden Text besprochenen Operationen in Reaktion auf durch ein oder mehrere Computerprogrammprodukte bereitgestellte Instruktionen ausgeführt werden. Zu solchen Programmprodukten können signaltragende Medien gehören, die Instruktionen bereitstellen, die, wenn sie zum Beispiel durch einen Prozessor ausgeführt werden, die im vorliegenden Text beschriebene Funktionalität bereitstellen können. Die Computerprogrammprodukte können in jeder beliebigen Form eines oder mehrerer maschinenlesbarer Datenträger bereitgestellt werden. So kann zum Beispiel ein Prozessor, der eine oder mehrere Grafikverarbeitungseinheiten oder einen oder mehrere Prozessorkerne enthält, einen oder mehrere der Blöcke der im vorliegenden Text beschriebenen beispielhaften Prozesse in Reaktion auf Programmcode und/oder Instruktionen oder Instruktionssätze ausführen, die an den Prozessor durch ein oder mehrerer maschinenlesbare Medien übermittelt werden. Im Allgemeinen kann ein maschinenlesbares Medium Software in Form von Programmcode und/oder Instruktionen oder Instruktionssätzen transportieren, die beliebige der Vorrichtungen und/oder Systeme, die im vorliegenden Text beschrieben sind, veranlassen, mindestens Abschnitte der im vorliegenden Text besprochenen Systeme oder sonstige Module oder Komponenten, die im vorliegenden Text besprochen werden, zu implementieren.
  • In Sinne der im vorliegenden Text beschriebenen Implementierungen bezieht sich der Begriff „Modul“ oder „Komponente“ auf jede beliebige Kombination von Software-Logik, Firmware-Logik, Hardware-Logik und/oder Schaltungen, die so konfiguriert sind, dass sie die im vorliegenden Text beschriebene Funktionalität bereitstellen. Die Software kann in Form eines Softwarepaketes, eines Codes und/oder eines Instruktionssatzes oder von Instruktionen ausgeführt werden, und „Hardware“ kann im Sinne der im vorliegenden Text beschriebenen Implementieren zum Beispiel - einzeln oder in einer beliebigen Kombination - festverdrahtete Schaltungen, programmierbare Schaltungen, Zustandsmaschinenschaltungen, Festfunktionsschaltungen, Ausführungseinheiten, Schaltungen und/oder Firmware umfassen, die Instruktionen speichern, die durch programmierbare Schaltungen ausgeführt werden. Die Module können kollektiv oder einzeln als Schaltungen verkörpert sein, die Teil eines größeren Systems sind, zum Beispiel eines integrierten Schaltkreises (IC), eines System-on-Chip (SoC) usw.
  • 11 ist ein veranschaulichendes Diagramm eines beispielhaften Systems 1100, das gemäß mindestens einigen Implementierungen der vorliegenden Offenbarung konfiguriert ist. In verschiedenen Implementierungen kann das System 1100 ein mobiles System sein, obgleich das System 1100 nicht auf diesen Kontext beschränkt ist. Das System 1100 kann beliebige im vorliegenden Text besprochenen Module oder Techniken implementieren und/oder ausführen. Zum Beispiel kann das System 1100 in einen Personalcomputer (PC), einen Server, einen Laptop-Computer, einen Ultra-Laptop-Computer, ein Tablet, ein Touchpad, einen portablen Computer, einen handgehaltenen Computer, einen Palmtop-Computer, einen Personal Digital Assistant (PDA), ein Mobiltelefon, eine Kombination aus Mobiltelefon und PDA, einen Fernseher, eine intelligente Vorrichtung (zum Beispiel ein Smartphone, ein Smart Tablet oder einen Smart-Fernseher), eine mobile Internetvorrichtung (MID), eine Messaging-Vorrichtung, eine Datenkommunikationsvorrichtung, Kameras (zum Beispiel Point-and-Shoot-Kameras, Super-Zoom-Kameras, digitale Spiegelreflexkameras (DSLR)) und so weiter eingebaut werden. In einigen Beispielen kann das System 1100 über eine Cloud-Computing-Umgebung implementiert werden.
  • In verschiedenen Implementierungen enthält das System 1100 eine Plattform 1102, die mit einem Display 1120 gekoppelt ist. Die Plattform 1102 kann Inhalte von einer Inhaltsvorrichtung, wie zum Beispiel einer oder mehreren Inhaltsdienste-Vorrichtungen 1130 oder Inhaltsübermittlungs-Vorrichtungen 1140, oder anderen ähnlichen Inhaltsquellen empfangen. Ein Navigations-Controller 1150, der ein oder mehrere Navigationsmerkmale enthält, kann verwendet werden, um zum Beispiel mit der Plattform 1102 und/oder dem Display 1120 zu interagieren. Jede dieser Komponenten wird unten noch ausführlicher beschrieben.
  • In verschiedenen Implementierungen kann die Plattform 1102 eine beliebige Kombination aus einem Chipsatz 1105, einem Prozessor 1110, einem Speicher 1112, einer Antenne 1113, einem Massenspeicher 1114, einem Grafik-Teilsystem 1115, Anwendungen 1116 und/oder einer Funkvorrichtung 1118 enthalten. Der Chipsatz 1105 kann eine Interkommunikation zwischen dem Prozessor 1110, dem Speicher 1112, dem Massenspeicher 1114, dem Graphik-Teilsystem 1115, den Anwendungen 1116 und/oder der Funkvorrichtung 1118 ermöglichen. Zum Beispiel kann der Chipsatz 1105 einen Speicheradapter (nicht abgebildet) enthalten, der in der Lage ist, eine Interkommunikation mit dem Massenspeicher 1114 zu ermöglichen.
  • Der Prozessor 1110 kann als ein Complex Instruction Set Computer (CISC)- oder Reduced Instruction Set Computer (RISC)-Prozessor, als x86-Instruktionssatz-kompatible Prozessoren, als Mehrkernprozessor oder als ein sonstiger Mikroprozessor oder eine sonstige zentrale Verarbeitungseinheit (CPU) implementiert werden. In verschiedenen Implementierungen kann der Prozessor 1110 ein oder mehrere Dualkern-Prozessoren, ein oder mehrere mobile Dualkern-Prozessoren usw. sein.
  • Der Speicher 1112 kann als ein flüchtiger Speicher, wie zum Beispiel ein Random Access Memory (RAM), ein Dynamic Random Access Memory (DRAM) oder ein Static RAM (SRAM) implementiert werden, ohne darauf beschränkt zu sein.
  • Der Massenspeicher 1114 kann als eine nicht-flüchtige Speichervorrichtung implementiert werden, wie zum Beispiel, ohne darauf beschränkt zu sein, ein Magnet-Disk-Laufwerk, ein optisches Disk-Laufwerk, ein Bandlaufwerk, eine interne Speichervorrichtung, eine angeschlossene Speichervorrichtung, ein Flash-Speicher, ein über Batterie abgesicherter SDRAM (synchroner DRAM) und/oder eine netzwerkzugängliche Speichervorrichtung. In verschiedenen Implementierungen kann der Massenspeicher 1114 eine Technologie zur Steigerung des erhöhten Schutzes der Speicherleistung für wertvolle digitale Medien enthalten, wenn zum Beispiel mehrere Festplattenlaufwerke eingebaut sind.
  • Der Bildsignalprozessor 1117 kann als ein spezialisierter digitaler Signalprozessor oder dergleichen implementiert werden, der für die Bild- oder Video-Frame-Verarbeitung verwendet wird. In einigen Beispielen kann der Bildsignalprozessor 1117 auf der Grundlage einer Single Instruction Multiple Data- oder einer Multiple Instruction Multiple Data-Architektur oder dergleichen implementiert werden. In einigen Beispielen kann der Bildsignalprozessor 1117 als ein Medienprozessor charakterisiert werden. Wie im vorliegenden Text besprochen, kann der Bildsignalprozessor 1117 auf der Grundlage eines System-on-Chip-Architektur und/oder auf der Grundlage einer Mehrkern-Architektur implementiert werden.
  • Das Grafik-Teilsystem 1115 kann die Verarbeitung von Bildern, wie zum Beispiel Standbilder oder Videos, zum Anzeigen durchführen. Das Grafik-Teilsystem 1115 kann zum Beispiel eine Grafikverarbeitungseinheit (GPU) oder eine visuelle Verarbeitungseinheit (VPU) sein. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Grafik-Teilsystem 1115 und das Display 1120 kommunikativ zu koppeln. Die Schnittstelle kann zum Beispiel eine von High-Definition Multimedia Interface-, DisplayPort-, wireless HDMI und/oder wireless HDkompatiblen Techniken sein. Das Grafik-Teilsystem 1115 kann in den Prozessor 1110 oder den Chipsatz 1105 integriert werden. In einigen Implementierungen kann das Grafik-Teilsystem 1115 eine eigenständige Vorrichtung sein, die kommunikativ mit dem Chipsatz 1105 gekoppelt ist.
  • Die im vorliegenden Text beschriebenen Grafik- und/oder Videoverarbeitungstechniken können in verschiedenen Hardware-Architekturen implementiert werden. Zum Beispiel kann die Grafik- und/oder Videofunktionalität in einem Chipsatz integriert sein. Alternativ kann ein diskreter Grafik- und/oder Videoprozessor verwendet werden. Als eine weitere Implementierung können die Grafik- und/oder Videofunktionen durch einen Allzweckprozessor, der einen Mehrkernprozessor enthält, bereitgestellt werden. In weiteren Ausführungsformen können die Funktionen in einer konsumelektronischen Vorrichtung implementiert werden.
  • Die Funkvorrichtung 1118 kann eine oder mehrere Funkvorrichtungen umfassen, die in der Lage sind, Signale unter Verwendung verschiedener geeigneter drahtloser Kommunikationstechniken zu senden und zu empfangen. Solche Techniken können die Kommunikation über ein oder mehrere drahtlose Netze hinweg umfassen. Zu Beispielen von Drahtlosnetzen gehören Wireless Local Area Networks (WLANs), Wireless Personal Area Networks (WPANs), Wireless Metropolitan Area Network (WMANs), Mobilfunknetze und Satellitennetze. Bei der Kommunikation über solche Netze hinweg kann die Funkvorrichtung 1118 gemäß einem oder mehreren einschlägigen Standards in jeder beliebigen Version arbeiten.
  • In verschiedenen Implementierungen kann das Display 1120 jeden beliebigen Monitor oder jedes beliebige Display vom Fernseher-Typ umfassen. Als Display 1120 kann zum Beispiel ein Computerbildschirm, ein Touchscreen-Bildschirm, ein Videomonitor, eine Fernseher-artige Vorrichtung und/oder eine Fernsehgerät verwendet werden. Das Display 1120 kann digital und/oder analog sein. In verschiedenen Implementierungen kann das Display 1120 ein holografisches Display sein. Das Display 1120 kann auch eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Solche Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten vermitteln. Zum Beispiel können solche Projektionen ein visuelles Overlay für eine Mobile Augmented Reality (MAR)-Anwendung sein. Unter der Kontrolle einer oder mehrerer Software-Anwendungen 1116 kann die Plattform 1102 eine Benutzerschnittstelle 1122 auf dem Display 1120 anzeigen.
  • In verschiedenen Implementierungen können die eine oder die mehreren Inhaltsdienste-Vorrichtungen 1130 durch jeden nationalen, internationalen und/oder unabhängigen Dienst gehostet werden und somit zum Beispiel über das Internet für die Plattform 1102 zugänglich sein. Die eine oder die mehreren Inhaltsdienste-Vorrichtungen 1130 können mit der Plattform 1102 und/oder dem Display 1120 gekoppelt sein. Die Plattform 1102 und/oder die eine oder die mehreren Inhaltsdienste-Vorrichtungen 1130 können mit einem Netzwerk 1160 gekoppelt werden, um Medieninformationen von und zu dem Netzwerk 1160 zu kommunizieren (zum Beispiel zu senden und/oder zu empfangen). Die eine oder die mehreren Inhaltsübermittlungs-Vorrichtungen 1140 können auch mit der Plattform 1102 und/oder dem Display 1120 gekoppelt sein.
  • In verschiedenen Implementierungen können die eine oder die mehreren Inhaltsdienste-Vorrichtungen 1130 eine Kabelfernsehbox, einen Personalcomputer, ein Netzwerk, ein Telefon, internetfähige Vorrichtungen oder Geräte umfassen, die in der Lage sind, digitale Informationen und/oder Inhalte zu übermitteln, sowie jede andere ähnliche Vorrichtung, die in der Lage ist, Inhalte unidirektional oder bidirektional zwischen Inhaltsanbietern und der Plattform 1102 und/oder dem Display 1120, über das Netzwerk 1160 oder direkt, zu übermitteln. Es versteht sich, dass der Inhalt unidirektional und/oder bidirektional zu und von jeder der Komponenten in dem System 1100 und einem Inhaltsanbieter über das Netzwerk 1160 übermittelt werden kann. Zu Beispielen für Inhalte können beliebige Medieninformationen gehören, einschließlich beispielsweise Video, Musik, medizinische und Spiele-Informationen usw.
  • Die eine oder die mehreren Inhaltsdienste-Vorrichtungen 1130 können Inhalte wie zum Beispiel Kabelfernsehprogramme empfangen, einschließlich Medieninformationen, digitale Informationen und/oder andere Inhalte. Zu Beispielen für Inhaltsanbieter können Kabel- oder Satellitenfernsehen oder Radio oder Internet-Inhaltsanbieter gehören. Die angeführten Beispiele sind nicht dafür gedacht, Implementierungen gemäß der vorliegenden Offenbarung in irgendeiner Weise einzuschränken.
  • In verschiedenen Implementierungen kann die Plattform 1102 Steuersignale von dem Navigations-Controller 1150, der ein oder mehrere Navigationsmerkmale aufweist, empfangen. Die Navigationsmerkmale des Navigations-Controllers 1150 können zum Beispiel zur Interaktion mit der Benutzerschnittstelle 1122 verwendet werden. In verschiedenen Ausführungsformen kann der Navigations-Controller 1150 eine Zeigevorrichtung sein, die eine Computer-Hardware-Komponente (insbesondere eine Schnittstellenvorrichtung zu einem Menschen) sein kann, die es einem Benutzer ermöglicht, räumliche (zum Beispiel kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie zum Beispiel grafische Benutzerschnittstellen (GUI) sowie Fernseher und Monitore, ermöglichen es dem Benutzer, den Computer oder den Fernseher unter Verwendung physischer Gesten zu steuern und Daten an diesen zu übermitteln.
  • Bewegungen der Navigationsmerkmale des Navigations-Controllers 1150 können auf einem Display (zum Beispiel Display 1120) durch Bewegungen eines Zeigers, eines Cursors, eines Fokusrings oder anderer auf dem Display angezeigter visueller Indikatoren repliziert werden. Zum Beispiel können unter der Steuerung von Software-Anwendungen 1116 die auf dem Navigations-Controller 1150 befindlichen Navigationsmerkmale auf virtuelle Navigationsmerkmale abgebildet werden, die zum Beispiel auf der Benutzerschnittstelle 1122 angezeigt werden. In verschiedenen Ausführungsformen braucht der Navigations-Controller 1150 keine separate Komponente zu sein, sondern kann in die Plattform 1102 und/oder das Display 1120 integriert werden. Die vorliegende Offenbarung ist jedoch nicht auf die im vorliegenden Text gezeigten oder beschriebenen Elemente oder auf den im vorliegenden Text gezeigten oder beschriebenen Kontext beschränkt.
  • In verschiedenen Implementierungen können Treiber (nicht abgebildet) Technologie enthalten, die es den Benutzern ermöglicht, die Plattform 1102, wie zum Beispiel einen Fernseher, nach dem anfänglichen Hochfahren auf Knopfdruck an- und auszuschalten, falls diese Funktion aktiviert ist. Programmlogik kann es der Plattform 1102 ermöglichen, Inhalte an Medienadapter oder eine oder mehrere andere Inhaltsdienste-Vorrichtungen 1130 oder Inhaltsübermittlungs-Vorrichtungen 1140 zu streamen, selbst wenn die Plattform ausgeschaltet ist. Zusätzlich kann der Chipsatz 1105 Hardware- und/oder Software-Unterstützung zum Beispiel für 5.1. Surround-Sound-Audio und/oder hochauflösendes 7.1 Surround-Sound-Audio enthalten. Die Treiber können einen Grafiktreiber für integrierte Grafikplattformen enthalten. In verschiedenen Ausführungsformen kann der Grafiktreiber eine Peripheral Component Interconnect (PCI) Express-Grafikkarte enthalten.
  • In verschiedenen Implementierungen können eine oder mehrere der in dem System 1100 gezeigten Komponenten integriert werden. Zum Beispiel können die Plattform 1102 und die eine oder die mehreren Inhaltsdienste-Vorrichtungen 1130 integriert werden, oder die Plattform 1102 und die eine oder die mehreren Inhaltsübermittlungs-Vorrichtungen 1140 können integriert werden, oder die Plattform 1102, die eine oder die mehreren Inhaltsdienste-Vorrichtungen 1130 und die eine oder die mehreren Inhaltsübermittlungs-Vorrichtungen 1140 können integriert werden. In verschiedenen Ausführungsformen können zum Beispiel die Plattform 1102 und das Display 1120 eine integrierte Einheit sein. Zum Beispiel können das Display 1120 und die eine oder die mehreren Inhaltsdienste-Vorrichtungen 1130 integriert werden, oder das Display 1120 und die eine oder die mehreren Inhaltsübermittlungs-Vorrichtungen 1140 können integriert werden. Diese Beispiele sind nicht dafür gedacht, die vorliegende Offenbarung einzuschränken.
  • In verschiedenen Ausführungsformen kann das System 1100 als eine drahtloses System, als eine drahtgebundenes System oder als eine Kombination aus beidem implementiert werden. Wenn das System 1100 als eine drahtloses System implementiert wird, so kann es Komponenten und Schnittstellen enthalten, die für die Kommunikation über drahtlose, gemeinsam genutzte Medien geeignet sind, wie zum Beispiel eine oder mehrere Antennen, Sender, Empfänger, Transceiver, Verstärker, Filter, Steuerlogik usw. Ein Beispiel für gemeinsam genutzte drahtlose Medien können Abschnitte eines Drahtlos-Spektrums sein, wie zum Beispiel das HF-Spektrum usw. Wenn das System 1100 als ein drahtgebundenes System implementiert wird, so kann es Komponenten und Schnittstellen enthalten, die für die Kommunikation über drahtgebundene Kommunikationsmedien geeignet sind, wie zum Beispiel Eingabe-/Ausgabe (E/A)-Adapter, physische Verbinder zum Verbinden des E/A-Adapters mit einem entsprechenden drahtgebundenen Kommunikationsmedium, eine Netzschnittstellenkarte (NIC), ein Disk-Controller, ein Video-Controller, ein Audio-Controller und dergleichen. Zu Beispielen für drahtgebundene Kommunikationsmedien können ein Draht, ein Kabel, Metallleitungen, eine gedruckte Leiterplatte (PCB), eine Hauptplatine, ein Switch-Fabric, ein Halbleitermaterial, eine verdrillte Zwillingsleitung, ein Koaxialkabel, Faseroptik usw. gehören.
  • Die Plattform 1102 kann einen oder mehrere logische oder physische Kanäle zur Übermittlung von Informationen bilden. Die Informationen können Medieninformationen und Steuerungsinformationen umfassen. „Medieninformationen“ kann sich auf jegliche Daten beziehen, die für einen Benutzer bestimmte Inhalte darstellen. Zu Beispielen für Inhalte können Daten aus einer Sprachkonversation, einer Videokonferenz, einem Video-Streaming, einer elektronischen Post („E-Mail“), einer Voice-Mail-Nachricht, alphanumerischen Symbolen, Grafiken, Bildern, Videos, Text usw. gehören. Daten aus einer Sprachkonversation können zum Beispiel Sprachinformationen, Schweigezeiträume, Hintergrundgeräusche, Komfortgeräusche, Töne und so weiter sein. Steuerungsinformationen können sich auf beliebige Daten beziehen, die Befehle, Instruktionen oder Steuerungswörter darstellen, die für ein automatisiertes System bestimmt sind. Steuerungsinformationen können zum Beispiel dafür verwendet werden, Medieninformationen durch ein System zu routen oder einen Knotenpunkt anzuweisen, die Medieninformationen in einer zuvor festgelegten Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf die in 11 gezeigten oder beschriebenen Elemente oder den dort beschriebenen Kontext beschränkt.
  • Wie oben beschrieben, kann das System 1100 in verschiedenen physischen Stilen oder Formfaktoren verkörpert sein. 12 veranschaulicht eine beispielhafte Vorrichtung 1200 mit kleinem Formfaktor, die gemäß mindestens einigen Implementierungen der vorliegenden Offenlegung konfiguriert ist. In einigen Beispielen kann das System 1100 über die Vorrichtung 1200 implementiert werden. In anderen Beispielen können andere im vorliegenden Text besprochene Systeme oder Teile davon über die Vorrichtung 1200 implementiert werden. In verschiedenen Ausführungsformen kann zum Beispiel die Vorrichtung 1200 als eine mobile Computervorrichtung implementiert sein und kann über Drahtlosfähigkeiten verfügen. Eine mobile Computervorrichtung kann sich auf jede beliebige Vorrichtung beziehen, die über ein Verarbeitungssystem und eine mobile Stromquelle oder -versorgung, wie zum Beispiel eine oder mehrere Batterien, verfügt.
  • Zu Beispielen für eine mobile Computervorrichtung können gehören: ein Personalcomputer (PC), ein Laptop-Computer, ein Ultra-Laptop-Computer, ein Tablet, ein Touchpad, ein portabler Computer, ein handgehaltener Computer, ein Palmtop-Computer, ein Personal Digital Assistant (PDA), ein Mobiltelefon, eine Kombination aus Mobiltelefon und PDA, eine intelligente Vorrichtung (zum Beispiel ein Smartphone, ein Smart Tablet oder ein Smart-Fernseher), eine mobile Internetvorrichtung (MID), eine Messaging-Vorrichtung, eine Datenkommunikationsvorrichtung, Kameras (zum Beispiel Point-and-Shoot-Kameras, Super-Zoom-Kameras, digitale Spiegelreflexkameras (DSLR)) und so weiter.
  • Zu Beispielen für eine mobile Computervorrichtung können auch Computer gehören, die so konfiguriert sind, dass sie durch eine Person getragen werden, wie zum Beispiel Handgelenkcomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelschnallencomputer, Armbandcomputer, Schuhcomputer, Kleidungscomputer und andere am Körper tragbare Computer. In verschiedenen Ausführungsformen kann zum Beispiel eine mobile Computervorrichtung als ein Smartphone implementiert werden, das sowohl Computeranwendungen als auch Sprach- und/oder Datenkommunikation ausführen kann. Obgleich einige Ausführungsformen mit einer mobilen Computervorrichtung beschrieben werden können, die als ein Smartphone implementiert ist, versteht es sich, dass andere Ausführungsformen auch unter Verwendung anderer mobiler Drahtlos-Computervorrichtungen implementiert werden können. Die Ausführungsformen sind nicht auf diesen Kontext beschränkt.
  • Wie in 12 gezeigt, kann die Vorrichtung 1200 ein Gehäuse mit einer Vorderseite 1201 und einer Rückseite 1202 enthalten. Die Vorrichtung 1200 enthält ein Display 1204, eine Ein-/Ausgabe (E/A)-Vorrichtung 1206, eine Kamera 1215, eine Kamera 1205, und eine integrierte Antenne 1208. Die Vorrichtung 1200 kann auch Navigationsmerkmale 1212 enthalten. Die E/A-Vorrichtung 1206 kann jede geeignete E/A-Vorrichtung zur Eingabe von Informationen in eine mobile Computervorrichtung sein. Zu Beispielen der E/A-Vorrichtung 1206 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Touchpad, Eingabetasten, Knöpfe, Schalter, Mikrofone, Lautsprecher, eine Sprachdetektionsvorrichtung und Software usw. gehören. Informationen können auch über ein Mikrofon (nicht abgebildet) in die Vorrichtung 1200 eingegeben werden oder können durch eine Sprachdetektionsvorrichtung digitalisiert werden. Wie gezeigt, kann die Vorrichtung 1200 die Kamera 1205 und einen Blitz 1210 enthalten, die in die Rückseite 1202 (oder an anderer Stelle) der Vorrichtung 1200 integriert sind, und kann eine Kamera 1215 enthalten, die in die Vorderseite 1201 der Vorrichtung 1200 integriert ist. In einigen Ausführungsformen können eine oder beide Kameras 1215, 1205 in Bezug auf das Display 1204 beweglich sein. Die Kamera 1215 und/oder die Kamera 1205 können Komponenten eines Bildgabemoduls oder einer Bildgabepipeline sein, um Farbbilddaten zu generieren, die zu einem Streaming-Video verarbeitet werden, das an das Display 1204 ausgegeben wird und/oder zum Beispiel über die Antenne 1208 von der Vorrichtung 1200 fernübermittelt wird. Zum Beispiel kann die Kamera 1215 Eingabebilder aufnehmen, und es können blickkontaktkorrigierte Bilder an das Display 1204 ausgegeben und/oder über die Antenne 1208 von der Vorrichtung 1200 fernübermittelt werden.
  • Verschiedene Ausführungsformen können mit Hilfe von Hardware-Elementen, SoftwareElementen oder einer Kombination aus beiden implementiert werden. Zu Beispielen für Hardware-Elemente können gehören: Prozessoren, Mikroprozessoren, Schaltkreise, Schaltkreiselemente (zum Beispiel Transistoren, Widerstände, Kondensatoren, Induktivitäten usw.), integrierte Schaltkreise, anwendungsspezifische integrierte Schaltkreise (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), ein feldprogrammierbares Gate-Array (FPGA), Logikgatter, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze usw. Zu Beispielen für Software können gehören: Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterprogramme, Funktionen, Verfahren, Abläufe, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API), Instruktionssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon. Die Bestimmung, ob eine Ausführungsform unter Verwendung von Hardware- und/oder Softwareelementen implementiert wird, kann gemäß einer beliebigen Anzahl von Faktoren variieren, wie zum Beispiel der gewünschten Verarbeitungsrate, den Energieverbräuchen, den Wärmetoleranzen, dem Verarbeitungszyklusbudget, den Eingangsdatenraten, den Ausgangsdatenraten, den Speicherressourcen, den Datenbusgeschwindigkeiten und anderen Design- oder Leistungsbeschränkungen.
  • Ein oder mehrere Aspekte mindestens einer Ausführungsform können durch repräsentative Instruktionen implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors repräsentiert, die, wenn sie durch eine Maschine gelesen werden, die Maschine veranlassen, eine Logik zum Ausführen der im vorliegenden Text beschriebenen Techniken zu knüpfen. Solche Darstellungen, die als „IP-Kerne“ bekannt sind, können auf einem greifbaren, maschinenlesbaren Medium gespeichert sein und an verschiedene Kunden oder Fertigungseinrichtungen übermittelt werden, um sie in die Fertigungsmaschinen zu laden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Obgleich bestimmte im vorliegenden Text beschriebene Merkmale unter Bezug auf verschiedene Implementierungen beschrieben wurden, darf diese Beschreibung nicht in einem einschränkenden Sinne ausgelegt werden. Daher gilt, dass verschiedene Modifizierungen der im vorliegenden Text beschriebenen Implementierungen sowie andere Implementierungen, die für den einschlägig bewanderten Fachmann offenbar sind, unter das Wesen und in den Schutzumfang der vorliegenden Offenbarung fallen.
  • Der Fachmann erkennt, dass die Ausführungsformen nicht auf die so beschriebenen Ausführungsformen beschränkt sind, sondern mit Modifizierungen und Änderungen praktiziert werden können, ohne den Schutzumfang der beigefügten Ansprüche zu verlassen. Zum Beispiel können die obigen Ausführungsformen spezielle Kombinationen von Merkmalen enthalten. Die obigen Ausführungsformen sind jedoch nicht in dieser Hinsicht beschränkt, und in verschiedenen Implementierungen können die obigen Ausführungsformen das Ausführen nur einer Teilmenge solcher Merkmale, das Ausführen einer anderen Reihenfolge solcher Merkmale, das Ausführen einer anderen Kombination solcher Merkmale und/oder das Ausführen zusätzlicher Merkmale im Vergleich zu den ausdrücklich aufgeführten Merkmalen enthalten. Der Geltungsbereich der Ausführungsformen ist daher anhand der beigefügten Ansprüche, zusammen mit dem vollen Geltungsbereich der Äquivalente, auf die diese Ansprüche Anspruch haben, zu bestimmen.

Claims (25)

  1. Maschinengestütztes Verfahren zur Videoverarbeitung, das umfasst: Empfangen mehrerer sequentieller Video-Bilder, die Darstellungen eines menschlichen Gesichts umfassen; Anwenden eines ersten neuronalen Faltungsnetzes (Convolutional Neural Network, CNN) auf einen ersten Eingabevektor, der einem ersten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen ersten Parametervektor eines morphbaren Modells zu generieren; Anwenden eines zweiten CNN auf einen zweiten Eingabevektor, der dem ersten Video-Bild und einem zweiten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen Parameter-Deltavektor eines morphbaren Modells zu generieren; Generieren eines ersten Gesichtsmodells des menschlichen Gesichts durch Anwenden des ersten Parametervektors eines morphbaren Modells auf ein 3D-Gesichtsmodell; Bestimmen eines zweiten Parametervektors eines morphbaren Modells durch Modifizieren des ersten Parametervektors eines morphbaren Modells unter Verwendung des Parameter-Deltavektors eines morphbaren Modells; Generieren eines zweiten Gesichtsmodells des menschlichen Gesichts durch Anwenden des zweiten Parametervektors eines morphbaren Modells auf das 3D-Gesichtsmodell; und Speichern oder Präsentieren von Ausgabevideo-Bildern, die Bildmerkmale umfassen, die mindestens teilweise auf dem ersten und dem zweiten Gesichtsmodell basieren.
  2. Verfahren nach Anspruch 1, wobei der erste Eingabevektor erste Chroma-Werte für erste Pixel einer ersten abwärtsskalierten Teilregion des ersten Video-Bildes umfasst und der zweite Eingabevektor die ersten Chroma-Werte und die zweiten Chroma-Werte für zweite Pixel einer zweiten abwärtsskalierten Teilregion des zweiten Video-Bildes umfasst.
  3. Verfahren nach Anspruch 2, das des Weiteren umfasst: Anwenden des zweiten CNN auf einen dritten Eingabevektor, der dem zweiten Video-Bild und einem dritten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen zweiten Parameter-Deltavektor eines morphbaren Modells zu generieren, wobei der dritte Eingabevektor die zweiten Chroma-Werte und die dritten Chroma-Werte für dritte Pixel einer dritten abwärtsskalierten Teilregion des zweiten Video-Bildes umfasst, wobei jeder der ersten, zweiten und dritten Chroma-Werte jeweils Werte für erste, zweite und dritte Chroma-Kanäle umfasst.
  4. Verfahren nach Anspruch 1, wobei der erste Parametervektor eines morphbaren Modells eine Verkettung von Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten für eine Kamera- und Posentransformation, und Beleuchtungskoeffizienten umfasst.
  5. Verfahren nach Anspruch 4, wobei der Parameter-Deltavektor eines morphbaren Modells eine Verkettung von zweiten Koeffizienten zum Modifizieren jedes der Koeffizienten zum Modifizieren der Formidentitäts-Basismatrix, der Koeffizienten zum Modifizieren der Expressionsidentitäts-Basismatrix, der Koeffizienten zum Modifizieren der Texturidentitäts-Basismatrix vor dem Anwenden auf das 3D-Gesichtsmodell, der Koeffizienten für die Kamera- und Posentransformation, und der Beleuchtungskoeffizienten umfasst.
  6. Verfahren nach Anspruch 1, das des Weiteren umfasst: Anwenden eines Effekts auf mindestens eines des ersten oder des zweiten Gesichtsmodells vor dem Speichern oder Präsentieren der ausgegebenen Video-Bilder.
  7. Verfahren nach Anspruch 1, das des Weiteren umfasst: Vortrainieren des ersten CNN durch: Generieren mehrerer Trainings-Eingabevektoren auf der Grundlage von Trainingsbildern, die jeweils eine Darstellung eines menschlichen Gesichts umfassen, wobei jeder der Trainings-Eingabevektoren Chroma-Werte für eine Region eines Trainingsbildes umfasst, die das menschliche Gesicht umfasst; iteratives Anwenden des ersten CNN auf die mehreren Trainings-Eingabevektoren, um entsprechende mehrere Parametervektoren eines morphbaren Modells zu generieren; Rendern resultierender Ausgabebilder durch Anwenden der mehreren Parametervektoren eines morphbaren Modells auf das 3D-Gesichtsmodell; und Minimieren einer Kostenfunktion, die ein Maß der photometrischen Ausrichtung zwischen den Trainingsbildern und den resultierenden Ausgabebildern sowie ein Maß der Einschränkung der Parametervektoren eines morphbaren Modells umfasst.
  8. Verfahren nach Anspruch 7, wobei das Vortrainieren ein selbstbeaufsichtigtes Training umfasst, wobei die Trainings-Video-Bilder unbezeichnete Bilder umfassen.
  9. Verfahren nach Anspruch 1, das des Weiteren umfasst: Vortrainieren des zweiten CNN durch: Generieren mehrerer Trainings-Eingabevektoren auf der Grundlage von Trainings-VideoBildern, die jeweils eine Darstellung eines menschlichen Gesichts umfassen, wobei jeder der Trainings-Eingabevektoren erste Chroma-Werte für eine erste Region eines ersten bestimmten Trainings-Video-Bildes und zweite Chroma-Werte für eine zweite Region eines zweiten bestimmten Trainings-Video-Bildes, das zeitlich auf das erste bestimmte Trainings-Video-Bild folgt, umfasst; iteratives Anwenden des zweiten CNN auf die mehreren Trainings-Eingabevektoren, um entsprechende mehrere Parameter-Deltavektoren eines morphbaren Modells zu generieren; Rendern eines ersten resultiereden Ausgabebildes durch Anwenden eines Parametervektors eines morphbaren Modells, der unter Verwendung eines Parameter-Deltavektors eines morphbaren Modells justiert wurde, auf das 3D-Gesichtsmodell; und Minimieren einer Kostenfunktion, die ein Maß der photometrischen Ausrichtung zwischen einem Trainings-Video-Bild und dem ersten resultierenden Ausgabebild und ein Maß der zeitlichen Kohärenz zwischen dem ersten resultierenden Ausgabebild und einem früheren zeitlichen resultierenden Ausgabebild umfasst.
  10. Verfahren nach Anspruch 9, wobei das Maß der zeitlichen Kohärenz eine Farbdifferenz pro Pixel zwischen dem ersten resultierenden Ausgabebild und dem früheren zeitlichen resultierenden Ausgabebild auf der Basis einer pro-Pixel-Entsprechung zwischen dem ersten resultierenden Ausgabebild und dem früheren zeitlichen resultierenden Ausgabebild, die auf der Basis einer Optischen-Fluss-Detektion des ersten und des zweiten bestimmten Trainings-Video-Bildes generiert wird, umfasst.
  11. System, das umfasst: einen Speicher zum Speichern mehrerer sequentieller Video-Bilder; und einen Prozessor, der mit dem Speicher gekoppelt ist, wobei der Prozessor konfiguriert ist zum: Anwenden eines ersten neuronalen Faltungsnetzes (Convolutional Neural Network, CNN) auf einen ersten Eingabevektor, der einem ersten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen ersten Parametervektor eines morphbaren Modells zu generieren; Anwenden eines zweiten CNN auf einen zweiten Eingabevektor, der dem ersten Video-Bild und einem zweiten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen Parameter-Deltavektor eines morphbaren Modells zu generieren; Generieren eines ersten Gesichtsmodells des menschlichen Gesichts durch Anwenden des ersten Parametervektors eines morphbaren Modells auf ein 3D-Gesichtsmodell; Bestimmen eines zweiten Parametervektors eines morphbaren Modells durch Modifizieren des ersten Parametervektors eines morphbaren Modells unter Verwendung des Parameter-Deltavektors eines morphbaren Modells; Generieren eines zweiten Gesichtsmodells des menschlichen Gesichts durch Anwenden des zweiten Parametervektors eines morphbaren Modells auf das 3D-Gesichtsmodell; und Senden von Ausgabevideo-Bildern, die Bildmerkmale umfassen, die mindestens teilweise auf dem ersten und dem zweiten Gesichtsmodell basieren, zum Speichern oder Präsentieren.
  12. System nach Anspruch 11, wobei der erste Eingabevektor erste Chroma-Werte für erste Pixel einer ersten abwärtsskalierten Teilregion des ersten Video-Bildes umfasst und der zweite Eingabevektor die ersten Chroma-Werte und die zweiten Chroma-Werte für zweite Pixel einer zweiten abwärtsskalierten Teilregion des zweiten Video-Bildes umfasst.
  13. System nach Anspruch 12, wobei der Prozessor des Weiteren konfiguriert ist zum: Anwenden des zweiten CNN auf einen dritten Eingabevektor, der dem zweiten Video-Bild und einem dritten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen zweiten Parameter-Deltavektor eines morphbaren Modells zu generieren, wobei der dritte Eingabevektor die zweiten Chroma-Werte und die dritten Chroma-Werte für dritte Pixel einer dritten abwärtsskalierten Teilregion des zweiten Video-Bildes umfasst, wobei jeder der ersten, zweiten und dritten Chroma-Werte jeweils Werte für erste, zweite und dritte Chroma-Kanäle umfasst.
  14. System nach Anspruch 11, wobei der erste Parametervektor eines morphbaren Modells eine Verkettung von Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten für eine Kamera- und Posentransformation, und Beleuchtungskoeffizienten umfasst.
  15. System nach Anspruch 14, wobei der Parameter-Deltavektor eines morphbaren Modells eine Verkettung von zweiten Koeffizienten zum Modifizieren jedes der Koeffizienten zum Modifizieren der Formidentitäts-Basismatrix, der Koeffizienten zum Modifizieren der Expressionsidentitäts-Basismatrix, der Koeffizienten zum Modifizieren der Texturidentitäts-Basismatrix vor dem Anwenden auf das 3D-Gesichtsmodell, der Koeffizienten für die Kamera- und Posentransformation, und der Beleuchtungskoeffizienten umfasst.
  16. System, das umfasst: ein Mittel zum Empfangen mehrerer sequentieller Video-Bilder, die Darstellungen eines menschlichen Gesichts umfassen; ein Mittel zum Anwenden eines ersten neuronalen Faltungsnetzes (Convolutional Neural Network, CNN) auf einen ersten Eingabevektor, der einem ersten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen ersten Parametervektor eines morphbaren Modells zu generieren; ein Mittel zum Anwenden eines zweiten CNN auf einen zweiten Eingabevektor, der dem ersten Video-Bild und einem zweiten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen Parameter-Deltavektor eines morphbaren Modells zu generieren; ein Mittel zum Generieren eines ersten Gesichtsmodells des menschlichen Gesichts durch Anwenden des ersten Parametervektors eines morphbaren Modells auf ein 3D-Gesichtsmodell; ein Mittel zum Bestimmen eines zweiten Parametervektors eines morphbaren Modells durch Modifizieren des ersten Parametervektors eines morphbaren Modells unter Verwendung des Parameter-Deltavektors eines morphbaren Modells; ein Mittel zum Generieren eines zweiten Gesichtsmodells des menschlichen Gesichts durch Anwenden des zweiten Parametervektors eines morphbaren Modells auf das 3D-Gesichtsmodell; und ein Mittel zum Speichern oder ein Mittel zum Präsentieren von Ausgabevideo-Bildern, die Bildmerkmale umfassen, die mindestens teilweise auf dem ersten und dem zweiten Gesichtsmodell basieren.
  17. System nach Anspruch 16, wobei der erste Eingabevektor erste Chroma-Werte für erste Pixel einer ersten abwärtsskalierten Teilregion des ersten Video-Bildes umfasst und der zweite Eingabevektor die ersten Chroma-Werte und die zweiten Chroma-Werte für zweite Pixel einer zweiten abwärtsskalierten Teilregion des zweiten Video-Bildes umfasst.
  18. System nach Anspruch 17, das des Weiteren umfasst: ein Mittel zum Anwenden des zweiten CNN auf einen dritten Eingabevektor, der dem zweiten Video-Bild und einem dritten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen zweiten Parameter-Deltavektor eines morphbaren Modells zu generieren, wobei der dritte Eingabevektor die zweiten Chroma-Werte und die dritten Chroma-Werte für dritte Pixel einer dritten abwärtsskalierten Teilregion des zweiten Video-Bildes umfasst, wobei jeder der ersten, zweiten und dritten Chroma-Werte jeweils Werte für erste, zweite und dritte Chroma-Kanäle umfasst.
  19. System nach Anspruch 16, wobei der erste Parametervektor eines morphbaren Modells eine Verkettung von Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells und Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells umfasst.
  20. System nach Anspruch 19, wobei der Parameter-Deltavektor eines morphbaren Modells eine Verkettung von zweiten Koeffizienten zum Modifizieren jedes der Koeffizienten zum Modifizieren der Formidentitäts-Basismatrix, der Koeffizienten zum Modifizieren der Expressionsidentitäts-Basismatrix und der Koeffizienten zum Modifizieren der Texturidentitäts-Basismatrix vor dem Anwenden auf das 3D-Gesichtsmodell umfasst.
  21. Mindestens ein maschinenlesbares Medium, das mehrere Instruktionen umfasst, die in Reaktion auf ihre Ausführung in einer Vorrichtung die Vorrichtung veranlassen, Video zu verarbeiten durch: Empfangen mehrerer sequentieller Video-Bilder, die Darstellungen eines menschlichen Gesichts umfassen; Anwenden eines ersten neuronalen Faltungsnetzes (Convolutional Neural Network, CNN) auf einen ersten Eingabevektor, der einem ersten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen ersten Parametervektor eines morphbaren Modells zu generieren; Anwenden eines zweiten CNN auf einen zweiten Eingabevektor, der dem ersten Video-Bild und einem zweiten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen Parameter-Deltavektor eines morphbaren Modells zu generieren; Generieren eines ersten Gesichtsmodells des menschlichen Gesichts durch Anwenden des ersten Parametervektors eines morphbaren Modells auf ein 3D-Gesichtsmodell; Bestimmen eines zweiten Parametervektors eines morphbaren Modells durch Modifizieren des ersten Parametervektors eines morphbaren Modells unter Verwendung des Parameter-Deltavektors eines morphbaren Modells; Generieren eines zweiten Gesichtsmodells des menschlichen Gesichts durch Anwenden des zweiten Parametervektors eines morphbaren Modells auf das 3D-Gesichtsmodell; und Speichern oder Präsentieren von Ausgabevideo-Bildern, die Bildmerkmale umfassen, die mindestens teilweise auf dem ersten und dem zweiten Gesichtsmodell basieren.
  22. Maschinenlesbares Medium nach Anspruch 21, wobei der erste Eingabevektor erste Chroma-Werte für erste Pixel einer ersten abwärtsskalierten Teilregion des ersten Video-Bildes umfasst und der zweite Eingabevektor die ersten Chroma-Werte und die zweiten Chroma-Werte für zweite Pixel einer zweiten abwärtsskalierten Teilregion des zweiten Video-Bildes umfasst.
  23. Maschinenlesbares Medium nach Anspruch 22, das des Weiteren Instruktionen umfasst, die in Reaktion auf ihre Ausführung in einer Vorrichtung die Vorrichtung veranlassen, Video zu verarbeiten durch: Anwenden des zweiten CNN auf einen dritten Eingabevektor, der dem zweiten Video-Bild und einem dritten Video-Bild der mehreren sequentiellen Video-Bilder entspricht, um einen zweiten Parameter-Deltavektor eines morphbaren Modells zu generieren, wobei der dritte Eingabevektor die zweiten Chroma-Werte und die dritten Chroma-Werte für dritte Pixel einer dritten abwärtsskalierten Teilregion des zweiten Video-Bildes umfasst, wobei jeder der ersten, zweiten und dritten Chroma-Werte jeweils Werte für erste, zweite und dritte Chroma-Kanäle umfasst.
  24. Maschinenlesbares Medium nach Anspruch 21, wobei der erste Parametervektor eines morphbaren Modells eine Verkettung von Koeffizienten zum Modifizieren einer Formidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten zum Modifizieren einer Expressionsidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten zum Modifizieren einer Texturidentitäts-Basismatrix des 3D-Gesichtsmodells, Koeffizienten für eine Kamera- und Posentransformation, und Beleuchtungskoeffizienten umfasst.
  25. Maschinenlesbares Medium nach Anspruch 24, wobei der Parameter-Deltavektor eines morphbaren Modells eine Verkettung von zweiten Koeffizienten zum Modifizieren jedes der Koeffizienten zum Modifizieren der Formidentitäts-Basismatrix, der Koeffizienten zum Modifizieren der Expressionsidentitäts-Basismatrix, der Koeffizienten zum Modifizieren der Texturidentitäts-Basismatrix vor dem Anwenden auf das 3D-Gesichtsmodell, der Koeffizienten für die Kamera- und Posentransformation, und der Beleuchtungskoeffizienten umfasst.
DE112018007721.7T 2018-06-14 2018-06-14 Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze Pending DE112018007721T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/091219 WO2019237299A1 (en) 2018-06-14 2018-06-14 3d facial capture and modification using image and temporal tracking neural networks

Publications (1)

Publication Number Publication Date
DE112018007721T5 true DE112018007721T5 (de) 2021-04-01

Family

ID=68841685

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018007721.7T Pending DE112018007721T5 (de) 2018-06-14 2018-06-14 Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze

Country Status (4)

Country Link
US (1) US11308675B2 (de)
CN (1) CN111971713A (de)
DE (1) DE112018007721T5 (de)
WO (1) WO2019237299A1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107748869B (zh) * 2017-10-26 2021-01-22 奥比中光科技集团股份有限公司 3d人脸身份认证方法与装置
EP3495988A1 (de) 2017-12-05 2019-06-12 Aptiv Technologies Limited Verfahren zur verarbeitung von bilddaten in einem verbindungsnetzwerk
EP3561726A1 (de) 2018-04-23 2019-10-30 Aptiv Technologies Limited Vorrichtung und verfahren zur verarbeitung von datensequenzen mithilfe eines neuronalen faltungsnetzes
EP3561727A1 (de) * 2018-04-23 2019-10-30 Aptiv Technologies Limited Vorrichtung und verfahren zum extrahieren von dynamischen informationen über eine szene unter verwendung eines neuronalen faltungsnetzwerks
CN109191507B (zh) * 2018-08-24 2019-11-05 北京字节跳动网络技术有限公司 三维人脸图像重建方法、装置和计算机可读存储介质
US11468616B1 (en) 2018-09-17 2022-10-11 Meta Platforms Technologies, Llc Systems and methods for improving animation of computer-generated avatars
WO2020122675A1 (ko) * 2018-12-13 2020-06-18 삼성전자주식회사 3차원 메쉬 컨텐트를 압축하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
US11356640B2 (en) * 2019-05-09 2022-06-07 Present Communications, Inc. Method for securing synthetic video conference feeds
US11627283B2 (en) * 2019-05-09 2023-04-11 Present Communications, Inc. Method for enabling synthetic autopilot video functions and for publishing a synthetic video feed as a virtual camera during a video call
US11475608B2 (en) * 2019-09-26 2022-10-18 Apple Inc. Face image generation with pose and expression control
EP4062379A1 (de) * 2019-11-18 2022-09-28 Wolfprint 3D OÜ Verfahren und system zur erzeugung von virtuellen 3d-objekten
CN110991619A (zh) * 2019-12-09 2020-04-10 Oppo广东移动通信有限公司 神经网络处理器、芯片和电子设备
CN111389008B (zh) * 2020-03-16 2023-03-31 网易(杭州)网络有限公司 虚拟角色的面部生成方法、自动捏脸方法及装置
US11386656B2 (en) * 2020-04-08 2022-07-12 Moxa Inc. Device and method of handling video content analysis
US11367254B2 (en) * 2020-04-21 2022-06-21 Electronic Arts Inc. Systems and methods for generating a model of a character from one or more images
US11386633B2 (en) * 2020-06-13 2022-07-12 Qualcomm Incorporated Image augmentation for analytics
CN113536939B (zh) * 2021-06-18 2023-02-10 西安电子科技大学 一种基于3d卷积神经网络的视频去重方法
CN113643412B (zh) 2021-07-14 2022-07-22 北京百度网讯科技有限公司 虚拟形象的生成方法、装置、电子设备及存储介质
CN113744129A (zh) * 2021-09-08 2021-12-03 深圳龙岗智能视听研究院 一种基于语义神经渲染的人脸图像生成方法及***
CN116563450A (zh) * 2022-01-28 2023-08-08 华为技术有限公司 表情迁移方法、模型训练方法和装置
CN116029024B (zh) * 2022-12-28 2024-01-02 广州极点三维信息科技有限公司 视角自动规划的生长动画生成方法、***、装置及介质
CN115984943B (zh) * 2023-01-16 2024-05-14 支付宝(杭州)信息技术有限公司 面部表情捕捉及模型训练方法、装置、设备、介质及产品

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2005286823B2 (en) 2004-09-17 2009-10-01 Cyberextruder.Com, Inc. System, method, and apparatus for generating a three-dimensional representation from one or more two-dimensional images
US20140009465A1 (en) 2012-07-05 2014-01-09 Samsung Electronics Co., Ltd. Method and apparatus for modeling three-dimensional (3d) face, and method and apparatus for tracking face
WO2018053703A1 (en) 2016-09-21 2018-03-29 Intel Corporation Estimating accurate face shape and texture from an image
CN106600667B (zh) * 2016-12-12 2020-04-21 南京大学 一种基于卷积神经网络的视频驱动人脸动画方法
US10229534B2 (en) * 2017-01-10 2019-03-12 Ditto Technologies, Inc. Modeling of a user's face
CN107067429A (zh) 2017-03-17 2017-08-18 徐迪 基于深度学习的人脸三维重建和人脸替换的视频编辑***及方法
CN107292950A (zh) * 2017-06-08 2017-10-24 深圳市唯特视科技有限公司 一种基于深度神经网络的端到端三维人脸重建方法
US20190205700A1 (en) * 2017-12-29 2019-07-04 Uber Technologies, Inc. Multiscale analysis of areas of interest in an image

Also Published As

Publication number Publication date
WO2019237299A1 (en) 2019-12-19
US11308675B2 (en) 2022-04-19
CN111971713A (zh) 2020-11-20
US20210104086A1 (en) 2021-04-08

Similar Documents

Publication Publication Date Title
DE112018007721T5 (de) Aufnehmen und modifizieren von 3D-Gesichtern unter Verwendung neuronaler Bild-und Zeitverfolgungsnetze
DE102020123304A1 (de) Tiefes lernen für engmaschige semantische segmentierung in video mit automatisierter interaktivität und verbesserter zeitlicher kohärenz
Li et al. Low-light image and video enhancement using deep learning: A survey
DE102020201787A1 (de) Erzeugen von blickkorrigierten bildern unter verwendung eines bidirektional trainierten netzwerks
DE112020003794T5 (de) Tiefenbewusste Fotobearbeitung
DE102020129800A1 (de) Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen
DE112017002119T5 (de) Augenkontaktkorrektur in Echtzeit unter Verwendung von auf neuronalen Netzwerken basierendem maschinellem Lernen
DE102020125197A1 (de) Feinkörnige objektsegmentierung in video mit tiefen merkmalen und graphischen mehrebenenmodellen
DE102021118479A1 (de) Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung
DE102020004960A1 (de) Formverändern von Textilien unter Nutzung eines Multiskalen-Patchadversativverlustes
DE102018132245A1 (de) Verfahren und System zur rekurrenten semantischen Segmentierung zur Bildverarbeitung
DE102019216136A1 (de) Verfahren und system zur 3d-rekonstruktion mit volumenbasierter filterung zur bildverarbeitung
DE102018120304A1 (de) Verfahren und System zur Bildverzerrungkorrektur für Bilder, die durch Verwenden einer Weitwinkellinse aufgenommen werden
DE102020125612A1 (de) Kontinuierliche lokale 3d-rekonstruktionsverfeinerung in video
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE112013004778T5 (de) Kodierung von Bildern unter Verwendung eines 3D-Netzes von Polygonen und entsprechenden Strukturen
DE102015213832B4 (de) Verfahren und Vorrichtung zum Erzeugen eines künstlichen Bildes
DE102018119625A1 (de) Reduzieren von strukturierten IR-Mustern bei der Stereoskopischen Tiefensensorbildgebung
CN110223236B (zh) 用于增强图像序列的方法
CN110769323B (zh) 一种视频通信方法、***、装置和终端设备
CN109993824B (zh) 图像处理方法、智能终端及具有存储功能的装置
DE102020200310A1 (de) Verfahren und System zur Dunstreduzierung für die Bildverarbeitung
DE102021119882A1 (de) Videohintergrundschätzung unter verwendung von räumlich-zeitlichen modellen
CN115272570A (zh) 虚拟表情生成方法、装置、电子设备和存储介质
US20220342365A1 (en) System and method for holographic communication

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009620000

Ipc: G06V0030190000