-
GEBIET DER ERFINDUNG
-
Diese Offenbarung betrifft Systeme und Verfahren zur Gesichtsausrichtung.
-
HINTERGRUND
-
Im Allgemeinen weisen Gesichtsausrichtungstechnologien, die mit Kaskaden von konvolutionellen neuronalen Netzen (CNNs, Convolutional Neural Networks) implementiert werden, wenigstens die folgenden Nachteile auf: fehlendes End-to-End-Training, Extraktion handgefertigter Merkmale und langsame Trainingsgeschwindigkeit. Beispielsweise können die CNNs ohne End-to-End-Training nicht gemeinsam optimiert werden, was zu einer suboptimalen Lösung führt. Zusätzlich implementieren diese Typen von Gesichtsausrichtungstechnologien häufig einfache Verfahren zur Extraktion handgefertigter Merkmale, die verschiedene Gesichtsfaktoren, wie beispielsweise Pose, Ausdruck usw., nicht berücksichtigen. Darüber hinaus weisen diese Kaskaden von CNNs typischerweise flache Frameworks auf, die nicht in der Lage sind, tiefere Merkmale zu extrahieren, indem sie auf den extrahierten Merkmalen von CNN im Frühstadium aufbauen. Ferner ist das Training für diese CNNs in der Regel zeitaufwendig, da jedes der CNNs unabhängig und sequenziell trainiert wird und auch, weil eine Extraktion handgefertigter Merkmale zwischen zwei aufeinanderfolgenden CNNs erforderlich ist.
-
KURZFASSUNG
-
Das Folgende ist eine Kurzfassung bestimmter Ausführungsformen, die nachstehend detailliert beschrieben werden. Die beschriebenen Aspekte werden lediglich präsentiert, um dem Leser eine kurze Zusammenfassung dieser bestimmten Ausführungsformen bereitzustellen, und die Beschreibung dieser Aspekte soll den Schutzbereich dieser Offenbarung nicht einschränken. In der Tat kann diese Offenbarung eine Vielzahl von Aspekten umfassen, die im Folgenden nicht explizit dargelegt werden.
-
In einer beispielhaften Ausführungsform weist ein Rechensystem ein Verarbeitungssystem mit wenigstens einer Verarbeitungseinheit auf. Das Verarbeitungssystem ist konfiguriert, um ein Gesichtsausrichtungsverfahren beim Empfangen von Bilddaten mit einem Gesichtsbild auszuführen. Das Verarbeitungssystem ist konfiguriert, um ein neuronales Netz auf das Gesichtsbild anzuwenden. Das neuronale Netz ist konfiguriert, um eine endgültige Schätzung von Parameterdaten für das Gesichtsbild basierend auf den Bilddaten und einer anfänglichen Schätzung der Parameterdaten bereitzustellen. Das neuronale Netz weist wenigstens eine Visualisierungsschicht auf, die konfiguriert ist, um eine Merkmalskarte basierend auf einer aktuellen Schätzung der Parameterdaten zu generieren. Die Parameterdaten schließen Kopfposendaten und Gesichtsformdaten ein.
-
In einer beispielhaften Ausführungsform beinhaltet ein computerimplementiertes Verfahren das Empfangen von Bilddaten mit einem Gesichtsbild. Das computerimplementierte Verfahren beinhaltet das Implementieren eines neuronalen Netzes, um eine endgültige Schätzung von Parameterdaten für das Gesichtsbild basierend auf den Bilddaten und einer anfänglichen Schätzung der Parameterdaten bereitzustellen. Das neuronale Netz weist wenigstens eine Visualisierungsschicht auf, die konfiguriert ist, um eine Merkmalskarte basierend auf einer aktuellen Schätzung der Parameterdaten zu generieren. Die Parameterdaten schließen Kopfposendaten und Gesichtsformdaten ein.
-
In einer beispielhaften Ausführungsform umfasst ein nichtflüchtiges computerlesbares Medium wenigstens computerlesbare Daten, die, wenn sie durch ein Verarbeitungssystem mit wenigstens einer Verarbeitungseinheit ausgeführt werden, ein Verfahren durchführen, das das Empfangen von Bilddaten mit einem Gesichtsbild beinhaltet. Das Verfahren beinhaltet das Implementieren eines neuronalen Netzes, um eine endgültige Schätzung von Parameterdaten für das Gesichtsbild basierend auf den Bilddaten und einer anfänglichen Schätzung der Parameterdaten bereitzustellen. Das neuronale Netz weist wenigstens eine Visualisierungsschicht auf, die konfiguriert ist, um eine Merkmalskarte basierend auf einer aktuellen Schätzung der Parameterdaten zu generieren. Die Parameterdaten schließen Kopfposendaten und Gesichtsformdaten ein.
-
Diese und andere Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden durch die folgende detaillierte Beschreibung bestimmter beispielhafter Ausführungsformen im Hinblick auf die beigefügten Zeichnungen weiter erläutert, in denen gleiche Zeichen gleiche Teile repräsentieren.
-
Figurenliste
-
- 1 ist ein Blockschaltbild eines Systems gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 2 veranschaulicht ein poseninvariantes Gesichtsausrichtungsmodul des Systems aus 1 gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 3 ist ein Blockschaltbild der Architektur des CNN aus 2 gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 4 ist eine konzeptionelle Darstellung eines Visualisierungsblocks gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 5 ist eine beispielhafte Darstellung einer Architektur eines Visualisierungsblocks gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 6 veranschaulicht ein Beispiel einer Maske gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 7 veranschaulicht ein Beispiel einer Maske gemäß einer alternativen beispielhaften Ausführungsform dieser Offenbarung.
- 8 veranschaulicht ein Beispiel zum Auswählen eines gewünschten Oberflächenpunkts während der Projektion basierend auf Oberflächennormalenvektoren für ein 3D-Objekt gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 9A ist ein Beispiel von Bilddaten gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 9B ist ein Beispiel einer Initialisierung einer Visualisierungsschicht gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 9C ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem ersten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 9D ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem zweiten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 9E ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem dritten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 9F ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem vierten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 9G ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem fünften Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 9H ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem sechsten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 10A ist ein Beispiel von Bilddaten gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 10B ist ein Beispiel einer Initialisierung einer Visualisierungsschicht gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 10C ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem ersten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 10D ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem zweiten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 10E ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem dritten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 10F ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem vierten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 10G ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem fünften Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 10H ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem sechsten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 11A ist ein Beispiel von Bilddaten gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 11B ist ein Beispiel einer Initialisierung einer Visualisierungsschicht gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 11C ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem ersten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 11D ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem zweiten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 11E ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem dritten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 11F ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem vierten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 11G ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem fünften Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
- 11H ist ein Beispiel von Visualisierungsdaten einer Visualisierungsschicht, die mit einem sechsten Visualisierungsblock eines CNN assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung.
-
DETAILLIERTE BESCHREIBUNG
-
Die oben beschriebenen Ausführungsformen, die beispielhaft gezeigt und beschrieben wurden, und viele ihrer Vorteile werden durch die vorstehende Beschreibung verständlich, und es ist offensichtlich, dass verschiedene Änderungen an der Form, Konstruktion und Anordnung der Komponenten vorgenommen werden können, ohne vom offenbarten Gegenstand abzuweichen oder ohne einen oder mehrere seiner Vorteile zu beeinträchtigen. In der Tat sind die beschriebenen Formen dieser Ausführungsformen lediglich erläuternd. Diese Ausführungsformen sind verschiedenen Modifikationen und alternativen Formen zugänglich, und die nachfolgenden Ansprüche sollen derartige Änderungen umfassen und einschließen und nicht auf die bestimmten offenbarten Formen beschränkt sein, sondern vielmehr alle Modifikationen, Äquivalente und Alternativen abdecken, die in das Wesen und den Schutzbereich dieser Offenbarung fallen.
-
1 ist ein Blockschaltbild eines Computersystems 100, das zum Implementieren einer poseninvarianten Gesichtsausrichtung konfiguriert ist. In dieser Hinsicht umfasst das Computersystem 100 verschiedene Software- und Hardwarekomponenten. Beispielsweise beinhaltet das Computersystem 100 wenigstens ein Speichersystem 110, ein Gesichtserkennungsmodul 120, ein poseninvariantes Gesichtsausrichtungsmodul 130, ein Verarbeitungssystem 140, ein Kommunikationssystem 150 und andere Funktionsmodule 160. In einer beispielhaften Ausführungsform ist das Computersystem 100 konfiguriert, um ein poseninvariantes Gesichtsausrichtungsverfahren zu implementieren und auszuführen, wie hierin offenbart und wie vom poseninvarianten Gesichtsausrichtungsmodul 130 bereitgestellt. Zusätzlich ist in einer beispielhaften Ausführungsform das Computersystem 100 auch konfiguriert, um eine Gesichtserkennung zu implementieren und auszuführen, wie hierin offenbart und wie vom Gesichtserkennungsmodul 120 bereitgestellt, bevor das poseninvariante Gesichtsausrichtungsverfahren implementiert und ausgeführt wird.
-
In einer beispielhaften Ausführungsform beinhaltet das Speichersystem 110 verschiedene Daten, unter anderem Trainingsdaten und andere Daten, die mit dem poseninvarianten Gesichtsausrichtungsmodul 130 assoziiert sind. In einer beispielhaften Ausführungsform ist das Speichersystem 110 ein Computer- oder elektronisches Speicherungssystem, das konfiguriert ist, um verschiedene Daten zu speichern und Zugriff darauf bereitzustellen, um wenigstens die Operationen und Funktionalität zu ermöglichen, wie hierin offenbart. In einer beispielhaften Ausführungsform umfasst das Speichersystem 110 eine einzelne Vorrichtung oder eine Mehrzahl von Vorrichtungen. In einer beispielhaften Ausführungsform kann das Speichersystem 110 eine elektrische, elektronische, magnetische, optische, Halbleiter-, elektromagnetische oder eine beliebige geeignete Technologie aufweisen. Beispielsweise kann das Speichersystem 110 in einer beispielhaften Ausführungsform einen Direktzugriffsspeicher (RAM, Random Access Memory), einen Nur-Lese-Speicher (ROM, Read Only Memory), einen Flash-Speicher, ein Plattenlaufwerk, eine Speicherkarte, eine optische Speicherungsvorrichtung, eine magnetische Speicherungsvorrichtung, ein Speichermodul, einen beliebigen geeigneten Typ von Speichervorrichtung oder eine beliebige Kombination davon aufweisen. In einer beispielhaften Ausführungsform ist das Speichersystem 110 in Bezug auf das Computersystem 100 lokal, entfernt oder eine Kombination davon (z. B. teilweise lokal und teilweise entfernt). In einer beispielhaften Ausführungsform kann das Speichersystem 110 wenigstens ein Cloud-basiertes Speicherungssystem (z. B. ein Cloud-basiertes Datenbanksystem) aufweisen, das von den anderen Komponenten des Computersystems 100 entfernt ist.
-
In einer beispielhaften Ausführungsform weist das Gesichtserkennungsmodul 120 Hardware, Software oder eine Kombination davon auf. In einer beispielhaften Ausführungsform ist das Gesichtserkennungsmodul 120 wenigstens konfiguriert, um ein Bild zu empfangen, ein Gesichtsbild innerhalb des Bilds zu identifizieren und Bilddaten 220 bereitzustellen, die sich auf das Gesichtsbild beziehen. In einer beispielhaften Ausführungsform weist das Verarbeitungssystem 140 wenigstens eine zentrale Verarbeitungseinheit (CPU, Central Processing Unit), eine Grafikverarbeitungseinheit (GPU, Graphics Processing Unit), ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC, Application-Specific Integrated Circuit), ein System-on-a-Chip-System (SOC), eine programmierbare Logikvorrichtung (PLD, Programmable Logic Device), eine beliebige geeignete Rechentechnologie oder eine beliebige Kombination davon auf.
-
In einer beispielhaften Ausführungsform weist das Kommunikationssystem 150 eine geeignete Kommunikationstechnologie auf, die es einer beliebigen geeigneten Kombination von Komponenten des Computersystems 100 ermöglicht, miteinander zu kommunizieren. In einer beispielhaften Ausführungsform weist das Kommunikationssystem 150 eine drahtgebundene Technologie, eine drahtlose Technologie und/oder eine Kombination davon auf. In einer beispielhaften Ausführungsform weist das Kommunikationssystem 150 ein drahtgebundenes Netz, ein drahtloses Netz und/oder eine Kombination davon auf. In einer beispielhaften Ausführungsform weist das Kommunikationssystem 150 einen beliebigen geeigneten Typ von Computernetz und/oder Architektur auf. In einer beispielhaften Ausführungsform weist das Kommunikationssystem 150 eine Verbindung zum Internet auf.
-
In einer beispielhaften Ausführungsform weisen die anderen Funktionsmodule 160 Hardware, Software oder eine Kombination davon auf. Beispielsweise weisen die anderen Funktionsmodule 28 Logikschaltungen, ein Betriebssystem, E/A-Vorrichtungen (z. B. eine Anzeige usw.), eine andere Computertechnologie oder eine beliebige Kombination davon auf. Insbesondere ermöglichen die anderen Funktionsmodule 28 in einer beispielhaften Ausführungsform, dass das poseninvariante Gesichtsausrichtungsmodul 130 arbeitet und funktioniert, wie hierin offenbart. In einer beispielhaften Ausführungsform weisen die anderen Funktionsmodule 160 eine Kamera und/oder ein optisches System auf. In dieser Hinsicht sind die Kamera und/oder das optische System konfiguriert, um dem Gesichtserkennungsmodul 120 und/oder dem Verarbeitungssystem 140 ein Bild bereitzustellen, so dass Bilddaten 220 an das poseninvariante Gesichtsausrichtungsmodul 130 bereitgestellt werden. Auch weisen die anderen Funktionsmodule 160 in einer beispielhaften Ausführungsform ein Gesichtsanalysemodul auf, wie beispielsweise ein Gesichtserkennungsmodul, ein Ausdrucksschätzungsmodul, ein 3D-Gesichtsrekonstruktionsmodul, ein beliebiges geeignetes Gesichtsanalysemodul oder eine beliebige Kombination davon. In dieser Hinsicht ist das Gesichtsanalysemodul konfiguriert, um eine Gesichtsanalyse gemäß einer Ausgabe, wie beispielsweise einer endgültigen Schätzung von Parameterdaten, die sich auf das Gesichtsbild beziehen, vom CNN 200 durchzuführen.
-
2 veranschaulicht ein poseninvariantes Gesichtsausrichtungsmodul 130 gemäß einer beispielhaften Ausführungsform. In einer beispielhaften Ausführungsform weist das poseninvariante Gesichtsausrichtungsmodul 130 einen einzelnen CNN 200 auf. In einer beispielhaften Ausführungsform ist dieses CNN 200 konfiguriert, um wenigstens Bilddaten 220 und einen Satz von Parametern 230 als Eingabe zu empfangen. Beim Empfangen der Bilddaten 220 (d. h. eines einzelnen Gesichtsbilds mit einer beliebigen Kopfpose) vom Gesichtserkennungsmodul 120 und beim Erhalten eines Satzes von Parametern 230 ist das poseninvariante Gesichtsausrichtungsmodul 130 konfiguriert, um die 2D-Landmarken mit ihren Sichtbarkeitskennzeichnungen durch Anpassen eines 3D-Gesichtsmodells zu schätzen. In dieser Hinsicht weist das poseninvariante Gesichtsausrichtungsmodul 130 ein einzelnes CNN 200 mit End-to-End-Training für die Modellanpassung auf.
-
3 veranschaulicht eine beispielhafte Architektur des CNN 200 gemäß einer beispielhaften Ausführungsform. Wie gezeigt, weist das CNN 200 eine Mehrzahl von verbundenen Visualisierungsblöcken 210 auf. Beispielsweise weist das CNN 200 als nicht einschränkendes Beispiel wenigstens sechs Visualisierungsblöcke 210 auf. In dieser Hinsicht weist das CNN 200 eine beliebige geeignete Anzahl von Visualisierungsblöcken 210 auf, die die gewünschten Ergebnisse liefern. In einer beispielhaften Ausführungsform beinhalten die Eingaben Bilddaten 220 und eine anfängliche Schätzung von wenigstens einem Parameter, z. B. Parameter P0, und die Ausgabe ist die endgültige Schätzung 290 des Parametersatzes. Im Vergleich zu einem verwandten System mit einer Kaskade von CNN 200s weist das poseninvariante Gesichtsausrichtungsmodul 130 aufgrund der gemeinsamen Optimierung aller Visualisierungsblöcke 210 mit Backpropagation der Verlustfunktionen ein CNN 200 mit einer Architektur auf, die in der Lage ist, während des Trainings in wesentlich weniger Epochen zu konvergieren.
-
In einer beispielhaften Ausführungsform weist das System 100 ein 3D Morphable Model (3DMM) auf. In einer beispielhaften Ausführungsform weisen das Speichersystem 110 (z. B. Trainingsdaten), das poseninvariante Gesichtsausrichtungsmodul 130 oder eine Kombination davon das 3DMM auf. In einer beispielhaften Ausführungsform repräsentiert das 3DMM die 3D-Form eines Gesichts. Insbesondere repräsentiert das 3DMM ein 3D-Gesicht Sp als eine lineare Kombination aus mittlerer Form So, Identitätsbasen SI und Ausdrucksbasen SE mittels der folgenden Gleichung:
-
-
In einer beispielhaften Ausführungsform verwendet das poseninvariante Gesichtsausrichtungsmodul
130 einen Vektor p = [p
I, p
E] für die 3D-Formparameter, wobei
die Identitätsparameter sind und
die Ausdrucksparameter sind. In einer beispielhaften Ausführungsform verwendet das poseninvariante Gesichtsausrichtungsmodul
130 ein Basel-3D-Gesichtsmodell, das
199 Basen aufweist, als Identitätsbasen und das Face-Warehouse-Modell mit 29 Basen als die Ausdrucksbasen. In diesem Fall umfasst jede 3D-Gesichtsform einen Satz von Q 3D-Scheitelpunkten:
-
-
In einer beispielhaften Ausführungsform sind die 2D-Gesichtsformen die Projektion von 3D-Formen. In einer beispielhaften Ausführungsform wird das schwache perspektivische Projektionsmodell mit 6 Freiheitsgraden verwendet, d. h. einem für die Skala, drei für Rotationswinkel und zwei für Translationen, wodurch die 3D-Gesichtsform Sp auf 2D-Bilder projiziert wird, um die 2D-Form U zu erhalten, wie mittels der folgenden Gleichung ausgedrückt:
-
wobei
-
und
-
-
In diesem Fall sammelt U einen Satz von N 2D-Landmarken, M ist die Kameraprojektionsmatrix mit missbräuchlicher Verwendung der Notation P = {M, p}, und der N-dim-Vektor b beinhaltet 3D-Vertex-Indizes, die semantisch 2D-Landmarken entsprechen. In einer beispielhaften Ausführungsform bezeichnen m1 = [m1 m2 m3] und m2 = [m5 m6 m7] die ersten beiden Zeilen der skalierten Rotationskomponente, während m4 und m8 die Translationen sind.
-
Gleichung 3 stellt die Beziehung oder Äquivalenz zwischen 2D-Landmarken U und P her, d. h. 3D-Formparameter p und Kameraprojektionsmatrix M. Da fast alle Trainingsbilder für die Gesichtsausrichtung nur 2D-Labels aufweisen, d. h. U, führt das Verarbeitungssystem 140 einen Datenaugmentierungsschritt durch, um ihr entsprechendes P zu berechnen. Bei gegebenen Bilddaten 220 ist das poseninvariante Gesichtsausrichtungsmodul 130 konfiguriert, um den Parameter P zu schätzen, auf dessen Grundlage die 2D-Landmarken und ihre Sichtbarkeiten abgeleitet werden können.
-
4 veranschaulicht eine konzeptionelle Darstellung eines Visualisierungsblocks 210 gemäß einer beispielhaften Ausführungsform. Wie in 4 gezeigt, weist der Visualisierungsblock 210 eine Visualisierungsschicht 240 auf, die die 3D-Gesichtsform aus den geschätzten Parametern innerhalb des CNN 200 rekonstruiert und ein 2D-Bild über die Oberflächennormalenvektoren 808/810 der sichtbaren Scheitelpunkte synthetisiert. In einer beispielhaften Ausführungsform visualisiert die Visualisierungsschicht 240 das Ausrichtungsergebnis des vorherigen Visualisierungsblocks 210 und nutzt es für den aktuellen Visualisierungsblock 210. In einer beispielhaften Ausführungsform wird die Visualisierungsschicht 240 von den Oberflächennormalen 808/810 des zugrunde liegenden 3D-Gesichtsmodells 806 abgeleitet und codiert die relative Pose zwischen einem Gesicht und einer Kamera (8). In einer beispielhaften Ausführungsform ist die Visualisierungsschicht 240 auch differenzierbar, wodurch der Gradient analytisch berechnet werden kann, wodurch ein End-to-End-Training des CNN 200 ermöglicht wird. Wie in 4 gezeigt, nutzt die Visualisierungsschicht 240 ferner eine Maske 600/700, um zwischen Pixeln in den Mittel- und Konturteilen eines Gesichtsbilds zu unterscheiden und um auch den Pixelwert der visualisierten Bilder über verschiedene Posen hinweg ähnlich zu machen. Darüber hinaus kann, wie in 4 gezeigt, die endgültige Schätzung 290 der Parameter des Gesichtsbilds, wie durch den letzten Visualisierungsblock 210 des CNN 200 bereitgestellt, an ein Gesichtsanalysemodul bereitgestellt werden, um Gesichtslandmarkenerkennungsergebnisse 300 zu erhalten.
-
5 veranschaulicht einen Visualisierungsblock 210 des CNN 200 gemäß einer beispielhaften Ausführungsform. Wie oben erwähnt, weist jeder Visualisierungsblock 210 eine Visualisierungsschicht 240 auf, die auf der neuesten Parameterschätzung basiert. In dieser Hinsicht dient jede Visualisierungsschicht 240 als Brücke zwischen aufeinanderfolgenden Visualisierungsblöcken 210. In einer beispielhaften Ausführungsform generiert jede Visualisierungsschicht 240 eine Merkmalskarte 250 basierend auf dem aktuell geschätzten oder eingegebenen Parameter P. Auf jede Faltungsschicht 260 folgen eine Schicht zur Batch-Normalisierung (BN) und eine Schicht für gleichgerichtete lineare Einheiten (ReLU, Rectified Linear Units). Jede Faltungsschicht 260 extrahiert tiefere Merkmale basierend auf Eingabemerkmalen, die durch den vorherigen Visualisierungsblock 210 und die Visualisierungsschicht 240 bereitgestellt werden. Zwischen den zwei vollständig verbundenen Schichten 270 folgen auf die erste Faltungsschicht 260 eine ReLU-Schicht und eine Dropout-Schicht, während die zweite Faltungsschicht 260 gleichzeitig die Aktualisierung von M und p, ΔP, schätzt. In einer beispielhaften Ausführungsform beinhalten die Ausgaben des Visualisierungsblocks 210 die Ausgabedaten 280A und eine neue Schätzung (oder aktuelle Schätzung) 280B der Parameter 230, wenn beispielsweise ΔP zur Eingabe P hinzugefügt wird. In 5 beinhalten die Ausgabedaten 280A tiefere Merkmale und die Bilddaten 220. In einer alternativen beispielhaften Ausführungsform beinhalten die Ausgabedaten 280A tiefere Merkmale. In einer anderen alternativen beispielhaften Ausführungsform beinhalten die Ausgabedaten 280A die Bilddaten 220. In einer beispielhaften Ausführungsform, wie in 5 gezeigt, konzentriert sich der obere Teil des Visualisierungsblocks 210 im Wesentlichen auf das Lernen tieferer Merkmale, während der untere Teil derartige Merkmale nutzt, um die Parameter 230 in einer ResNet-ähnlichen Struktur zu schätzen. Während eines Rückwärtsdurchgangs der Trainingsphase führt der Visualisierungsblock 210 eine Backpropagation des Verlusts durch seine beiden Eingänge zurück, um die Faltungsschichten 260 und die vollständig verbundenen Schichten 270 in den vorherigen Visualisierungsblöcken 210 anzupassen. Diese Operation ermöglicht dem Visualisierungsblock 210, bessere Merkmale zu extrahieren, die für den nächsten Visualisierungsblock 210 geeignet sind, und die Gesamtparameterschätzung zu verbessern.
-
In einer beispielhaften Ausführungsform ist das CNN 200 konfiguriert, um wenigstens zwei Typen von Verlustfunktionen zu verwenden. In diesem Fall ist beispielsweise der erste Typ der Verlustfunktion ein euklidischer Verlust zwischen der Schätzung und dem Ziel der Parameteraktualisierung, wobei jeder Parameter separat gewichtet wird, wie mittels der folgenden Gleichung ausgedrückt:
-
wobei
der Verlust ist, ΔP
i die Schätzung ist und Δ
P j das Ziel (oder die Grundwahrheit) im i-ten Visualisierungsblock
210 ist. In dieser Gleichung enthält die Diagonalmatrix W die Gewichte. Für jedes Element des Formparameters p ist sein Gewicht das Inverse der Standardabweichung, die aus den beim 3DMM-Training verwendeten Daten erhalten wurde. Um die relative Skala unter den Parametern von M zu kompensieren, berechnet das Verarbeitungssystem
140 das Verhältnis r zwischen dem Durchschnitt der skalierten Rotationsparameter und dem Durchschnitt der Translationsparameter in den Trainingsdaten. In dieser Hinsicht sind die Gewichte der skalierten Rotationsparameter von M auf
und die Gewichte der Translation von M auf 1 festgelegt. Zusätzlich ist der zweite Typ der Verlustfunktion der euklidische Verlust auf den resultierenden 2D-Landmarken, wie mittels der folgenden Gleichung ausgedrückt:
-
wobei
U die Grundwahrheit-2D-Landmarken sind und P
i der Eingabeparameter für den i-ten Block ist, d. h. die Ausgabe des i-1-ten Blocks. In dieser Hinsicht berechnet f (·) 2D-Landmarkenpositionen unter Verwendung der aktuell aktualisierten Parameter mittels der Gleichung 3. In einer beispielhaften Ausführungsform wird zur Backpropagation dieser Verlustfunktion zum Parameter ΔP die Kettenregel verwendet, um den Gradienten zu berechnen, wie mittels der folgenden Gleichung ausgedrückt:
-
-
In einer beispielhaften Ausführungsform wird für die ersten drei Visualisierungsblöcke 210 des CNN 200 der euklidische Verlust bei den Parameteraktualisierungen (Gleichung 6) verwendet, während der euklidische Verlust bei 2D-Landmarken (Gleichung 7) auf die letzten drei Blöcke des CNN 200 angewendet wird. Die ersten drei Blöcke schätzen Parameter, um die 3D-Form grob mit dem Gesichtsbild auszurichten, und die letzten drei Blöcke nutzen die gute Initialisierung, um die Parameter und die 2D-Landmarkenpositionen präziser zu schätzen.
-
In einer beispielhaften Ausführungsform basiert die Visualisierungsschicht 240 auf Oberflächennormalen des 3D-Gesichts, die Oberflächenorientierungen in lokalen Nachbarschaften bereitstellen. In einer beispielhaften Ausführungsform verwendet das Verarbeitungssystem 140 die z-Koordinate von Oberflächennormalen jedes mit der Pose transformierten Scheitelpunkts. In dieser Hinsicht ist die z-Koordinate ein Indikator für eine „Frontabilität“ eines Scheitelpunkts, d. h. den Betrag, um den die Oberflächennormale auf eine Kamera 800 zeigt. Diese Größe wird verwendet, um einen Intensitätswert an seiner projizierten 2D-Position zuzuweisen, um Visualisierungsdaten 242 (z. B. ein Visualisierungsbild) zu konstruieren. In einer beispielhaften Ausführungsform kann das Frontabilitätsmaß g, ein Q-dim-Vektor, mittels der folgenden Gleichung berechnet werden:
-
wobei × das Kreuzprodukt ist und ||·|| die L
2-Norm bezeichnet. Die 3×Q-Matrix No sind die Oberflächennormalenvektoren einer 3D-Gesichtsform. Um die hohen Rechenkosten für die Berechnung der Oberflächennormalen nach jeder Formaktualisierung zu vermeiden, approximiert das Verarbeitungssystem
140 No als die Oberflächennormalen des mittleren 3D-Gesichts.
-
In einer beispielhaften Ausführungsform werden sowohl die Gesichtsform als auch die Kopfpose über verschiedene Visualisierungsblöcke 210 hinweg noch kontinuierlich aktualisiert und werden verwendet, um die projizierte 2D-Position zu bestimmen. Somit würde diese Approximation den Intensitätswert nur geringfügig beeinträchtigen. Um die Oberflächennormale basierend auf der Kopfpose zu transformieren, wendet das Verarbeitungssystem 140 die Schätzung der skalierten Rotationsmatrix (m1 und m2) auf die Oberflächennormalen an, die aus dem mittleren Gesicht berechnet werden. Der Wert wird dann mit der unteren Grenze von 0 abgeschnitten, wie in Gleichung 9 gezeigt. Die Pixelintensität eines visualisierten Bilds V(u,v) wird als gewichteter Durchschnitt der Frontabilitätsmaße innerhalb einer lokalen Nachbarschaft berechnet, wie mittels der folgenden Gleichung ausgedrückt:
-
wobei D (u, v) der Satz von Indizes von Scheitelpunkten ist, deren 2D-projizierte Positionen innerhalb der lokalen Nachbarschaft des Pixels (u, v) liegen.
ist die 2D-projizierte Position des q-ten 3D-Scheitelpunkts. Das Gewicht w ist die Abstandsmetrik zwischen dem Pixel (u, v) und der projizierten Position
-
-
Zusätzlich ist a ein Q-dim-Maskenvektor mit positiven Werten für Scheitelpunkte im Mittelbereich des Gesichts und negativen Werten für Scheitelpunkte um den Konturbereich des Gesichts herum, wie mittels der folgenden Gleichung ausgedrückt:
-
wobei (x
n; y
n; z
n) die Scheitelpunktkoordinate der Nasenspitze ist.
-
In dieser Gleichung wird a(q) auch vorberechnet und für den Nullmittelwert und die Einheitsstandardabweichung normalisiert. In einer beispielhaften Ausführungsform verwendet das Verarbeitungssystem 140 die Maske 600, um zwischen dem zentralen und dem Grenzbereich des Gesichts zu unterscheiden sowie die Ähnlichkeit über die Visualisierung verschiedener Gesichter hinweg zu erhöhen.
-
In einer beispielhaften Ausführungsform berechnet das Verarbeitungssystem
140 die Ableitung von V in Bezug auf die Elemente der Parameter M und p, um eine Backpropagation der Verlustfunktionen durch die Visualisierungsschicht
240 zu ermöglichen. In dieser Hinsicht berechnet das Verarbeitungssystem
140 die partiellen Ableitungen
und
In einer beispielhaften Ausführungsform berechnet das Verarbeitungssystem
140 dann die Ableitungen von
basierend auf der Gleichung 10.
-
6 veranschaulicht zwei Ansichten einer Visualisierung einer beispielhaften Maske 600 gemäß einer beispielhaften Ausführungsform. Insbesondere weist 6 eine Frontalansicht 602 der Maske 600 und eine Seitenansicht 604 (oder Profilansicht) der Maske 600 auf. In diesem Fall wird die Maske 600 beispielsweise mittels wenigstens Gleichung 12 ausgedrückt. Wie in 6 gezeigt, weist die Maske 600, wie mittels a(q)) ausgedrückt, positive Werte im Mittelbereich und negative Werte im Konturbereich auf, wie durch die Skala 606 angezeigt.
-
7 veranschaulicht ein anderes Beispiel einer Maske 700 gemäß einer alternativen beispielhaften Ausführungsform. Insbesondere weist 7 eine Frontalansicht 702 der Maske 700 und eine Seitenansicht 704 (oder Profilansicht) der Maske 700 auf. In diesem Beispiel weist die Maske 700 fünf positive Bereiche auf, die die zwei Augenbereiche, den Nasenspitzenbereich und die zwei Lippeneckenbereiche einschließen, wie durch die Skala 706 angezeigt. Auch in diesem Beispiel werden die Werte auf den Nullmittelwert und die Einheitsstandardabweichung normalisiert. In dieser Hinsicht macht die Maske 700 den Pixelwert von visualisierten Bildern für Gesichter mit unterschiedlichen Posen ähnlich und unterscheidet zwischen dem Mittelbereich und den Konturbereichen des Gesichts. Die Maske 700 aus 7 ist komplexer und vermittelt mehr Informationen über die informativen Gesichtsbereiche im Vergleich zu denen, die durch die Maske 600 aus 5 bereitgestellt werden.
-
8 veranschaulicht eine Position einer Kamera 800 relativ zu einer Bildebene 802 mit einer Mehrzahl von Pixeln. Zusätzlich zeigt 8 eine Pixelachse 804, die sich entlang eines Bildpixels der Bildebene 802 zusammen mit einer Visualisierung eines menschlichen Gesichtsbilds der Bildebene 802 als ein 3D-Objekt 806 erstreckt. 8 weist auch Oberflächennormalenvektoren mit negativen z-Koordinaten, wie durch Pfeil 808 gezeigt, und einen Oberflächennormalenvektor mit einer positiven z-Koordinate und einer kleineren Tiefe, wie durch Pfeil 810 gezeigt, auf. In dieser Hinsicht erfordert die Visualisierung des menschlichen Gesichts als ein 3D-Objekt 806 unter einem beliebigen Ansichtswinkel die Schätzung der Sichtbarkeit jedes 3D-Scheitelpunkts. Um den rechenintensiven Sichtbarkeitstest durch Rendering zu vermeiden, ist das Verarbeitungssystem 140 konfiguriert, um wenigstens zwei Strategien zur Approximation zu implementieren. Als eine Strategie ist das Verarbeitungssystem 140 beispielsweise konfiguriert, um die Scheitelpunkte zu beschneiden, deren Frontabilitätsmaße g gleich 0 sind, d. h. die Scheitelpunkte zeigen gegen die Kamera 800. Zweitens ist, falls mehrere Scheitelpunkte über die Pixelachse 804 auf ein und dasselbe Bildpixel projizieren, das Verarbeitungssystem 140 so konfiguriert, dass nur derjenige mit den kleinsten Tiefenwerten beibehalten wird, wie beispielsweise durch Pfeil 810 in 8 angezeigt.
-
9A ist ein Beispiel von Bilddaten 220 gemäß einer beispielhaften Ausführungsform. Wie in 9A gezeigt, beinhalten die Bilddaten 220 in diesem Beispiel wenigstens eine große Gesichtspose mit einem Ausdruck mit offenem Mund (z. B. ein Lächeln). 9B ist ein Beispiel einer Initialisierung einer Visualisierungsschicht 240 gemäß einer beispielhaften Ausführungsform. 9C ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem ersten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 9D ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem zweiten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 9E ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem dritten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 9F ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem vierten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 9G ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem fünften Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 9H ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem sechsten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung. Wie in 9C-9H stufenweise gezeigt, ist das poseninvariante Gesichtsausrichtungsmodul 130 in der Lage, den Ausdruck und die Kopfpose des Gesichtsbilds der Bilddaten 220, wie in 9A gezeigt, wiederherzustellen. In einer beispielhaften Ausführungsform kann das poseninvariante Gesichtsausrichtungsmodul 130 diese Ergebnisse liefern, indem es wenigstens tiefere Merkmale extrahiert und die Backpropagation von Verlustfunktionen einsetzt.
-
10A ist ein Beispiel von Bilddaten 220 gemäß einer beispielhaften Ausführungsform dieser Offenbarung. Wie in 10A gezeigt, beinhalten die Bilddaten 220 in diesem Beispiel wenigstens eine große Gesichtspose mit einem relativ neutralen Ausdruck. 10B ist ein Beispiel einer Initialisierung einer Visualisierungsschicht 240 gemäß einer beispielhaften Ausführungsform dieser Offenbarung. 10C ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem ersten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung. 10D ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem zweiten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung. 10E ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem dritten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform dieser Offenbarung. 10F ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem vierten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 10G ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem fünften Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 10H ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem sechsten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. Wie in 10C-10H stufenweise gezeigt, ist das poseninvariante Gesichtsausrichtungsmodul 130 in der Lage, den Ausdruck und die Kopfpose des Gesichtsbilds der Bilddaten 220, wie in 10A gezeigt, wiederherzustellen. In einer beispielhaften Ausführungsform kann das poseninvariante Gesichtsausrichtungsmodul 130 diese Ergebnisse liefern, indem es wenigstens tiefere Merkmale extrahiert und die Backpropagation von Verlustfunktionen einsetzt.
-
11A ist ein Beispiel von Bilddaten 220 gemäß einer beispielhaften Ausführungsform dieser Offenbarung. Wie in 11A gezeigt, beinhalten die Bilddaten 220 in diesem Beispiel wenigstens eine große Gesichtspose mit einem relativ neutralen Ausdruck. Auch beinhalten die Bilddaten 220 aus 11A eine Seite eines Gesichts, die sich von einer Seite eines Gesichts unterscheidet, das in den Bilddaten 220 aus 10A eingeschlossen ist. 11B ist ein Beispiel einer Initialisierung einer Visualisierungsschicht 240 gemäß einer beispielhaften Ausführungsform. 11C ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem ersten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 11D ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem zweiten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 11E ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem dritten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 11F ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem vierten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 11G ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem fünften Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. 11H ist ein Beispiel von Visualisierungsdaten 242 einer Visualisierungsschicht 240, die mit einem sechsten Visualisierungsblock 210 eines CNN 200 assoziiert ist, gemäß einer beispielhaften Ausführungsform. Wie in 11C-11H stufenweise gezeigt, ist das poseninvariante Gesichtsausrichtungsmodul 130 in der Lage, den Ausdruck und die Kopfpose des Gesichtsbilds der Bilddaten 220, wie in 11A gezeigt, wiederherzustellen. In einer beispielhaften Ausführungsform kann das poseninvariante Gesichtsausrichtungsmodul 130 diese Ergebnisse liefern, indem es wenigstens tiefere Merkmale extrahiert und die Backpropagation von Verlustfunktionen einsetzt.
-
Wie oben beschrieben, weist das System 100 eine Reihe von vorteilhaften Merkmalen auf. Beispielsweise ist das System 100 konfiguriert, um ein Gesichtsausrichtungsverfahren für eine große Pose mit einem End-to-End-Training über ein einzelnes CNN 200 zu implementieren. Zusätzlich beinhaltet das CNN 200 wenigstens eine differenzierbare Visualisierungsschicht 240, die in das neuronale Netz, d. h. das CNN 200, integriert ist und ermöglicht eine gemeinsame Optimierung durch Backpropagation des Fehlers von wenigstens einem späteren Visualisierungsblock 210 zu wenigstens einem früheren Visualisierungsblock 210. Zusätzlich ist das System 100 so konfiguriert, dass jeder Visualisierungsblock 210 in der Lage ist, tiefere Merkmale durch Nutzung der extrahierten Merkmale aus vorherigen Visualisierungsblöcken 210 zu extrahieren, ohne dass handgefertigte Merkmale extrahiert werden müssen. Auch konvergiert das poseninvariante Ausrichtungsverfahren während der Trainingsphase schneller als das, was von einem verwandten System bereitgestellt wird, das eine Kaskade von CNNs beinhaltet. In dieser Hinsicht ist beispielsweise einer der Hauptvorteile des End-to-End-Trainings eines einzelnen CNN 200 die reduzierte Trainingszeit. Zusätzlich beinhaltet das CNN 200 wenigstens eine Visualisierungsschicht 240, die differenzierbar ist und die Gesichtsgeometriedetails über Oberflächennormalen codiert. Darüber hinaus ist das poseninvariante Gesichtsausrichtungsmodul 130 in der Lage, das CNN 200 zu führen, um sich auf den Gesichtsbereich zu konzentrieren, der sowohl die Posen- als auch die Ausdrucksinformationen enthält. Ferner kann das CNN 200 konfiguriert werden, um ein höheres Maß an Präzision und Genauigkeit zu erreichen, indem einfach die Anzahl der Visualisierungsblöcke 210 in seiner Architektur erhöht wird.
-
Das heißt, die obige Beschreibung soll veranschaulichend und nicht einschränkend sein und im Zusammenhang mit einer bestimmten Anwendung und ihren Anforderungen bereitgestellt werden. Fachleute auf dem Gebiet werden aus der vorstehenden Beschreibung erkennen können, dass die vorliegende Erfindung in einer Vielzahl von Formen implementiert werden kann und dass die verschiedenen Ausführungsformen allein oder in Kombination implementiert werden können. Obgleich die Ausführungsformen der vorliegenden Erfindung in Verbindung mit bestimmten Beispielen davon beschrieben wurden, können die hierin definierten allgemeinen Prinzipien daher auf andere Ausführungsformen und Anwendungen angewendet werden, ohne vom Wesen und Schutzbereich der beschriebenen Ausführungsformen abzuweichen, und der wahre Schutzbereich der Ausführungsformen und/oder Verfahren der vorliegenden Erfindung ist nicht auf die gezeigten und beschriebenen Ausführungsformen beschränkt, da Fachleuten beim Studium der Zeichnungen, der Beschreibung und der nachfolgenden Ansprüche verschiedene Modifikationen ersichtlich werden. Beispielsweise können Komponenten und Funktionalität anders als in der Art der verschiedenen beschriebenen Ausführungsformen getrennt oder kombiniert werden und können unter Verwendung unterschiedlicher Terminologie beschrieben werden. Diese und andere Variationen, Modifikationen, Hinzufügungen und Verbesserungen können innerhalb des Schutzbereichs der Offenbarung fallen, wie in den nachfolgenden Ansprüchen definiert.