Künstliche Intelligenz
DeepFace für erweiterte Gesichtserkennung

Gesichtserkennung ist seit einigen Jahren ein Trendfeld in KI und ML, und die weitreichenden kulturellen und sozialen Auswirkungen der Gesichtserkennung sind weitreichend. Es besteht jedoch eine Leistungslücke zwischen menschlichen visuellen Systemen und Maschinen, die derzeit die Anwendungen der Gesichtserkennung einschränkt.
Um den durch die Leistungslücke entstandenen Puffer zu überwinden und eine Genauigkeit auf menschlicher Ebene zu liefern, führte Meta ein Tiefes Gesicht, ein Gesichtserkennungs-Framework. Das DeepFace-Modell wird anhand eines großen Gesichtsdatensatzes trainiert, der sich erheblich von den Datensätzen unterscheidet, die zur Erstellung der Bewertungsbenchmarks verwendet wurden, und hat das Potenzial, bestehende Frameworks mit minimalen Anpassungen zu übertreffen. Darüber hinaus erzeugt das DeepFace-Framework kompakte Gesichtsdarstellungen im Vergleich zu anderen Systemen, die Tausende von Gesichtsmerkmalen erzeugen.
Das vorgeschlagene DeepFace-Framework verwendet Tiefes Lernen um an einem großen Datensatz zu trainieren, der aus verschiedenen Datenformen besteht, darunter Bilder, Videos und Grafiken. Die DeepFace-Netzwerkarchitektur geht davon aus, dass nach Abschluss der Ausrichtung die Position jedes Gesichtsbereichs auf Pixelebene festgelegt wird. Daher ist es möglich, die Rohpixel-RGB-Werte zu verwenden, ohne mehrere Faltungsschichten zu verwenden, wie dies in anderen Frameworks der Fall ist.
Die herkömmliche Pipeline moderner Gesichtserkennungs-Frameworks umfasst vier Phasen: Erkennung, Ausrichtung, Darstellung und Klassifizierung. Das DeepFace-Framework verwendet explizite 3D-Gesichtsmodellierung, um eine stückweise Transformation anzuwenden, und nutzt ein neunschichtiges tiefes neuronales Netzwerk, um eine Gesichtsdarstellung abzuleiten. Das DeepFace-Framework versucht, die folgenden Beiträge zu leisten
- Entwickeln Sie eine effektive DNN- oder Deep Neural Network-Architektur, die einen großen Datensatz nutzen kann, um eine Gesichtsdarstellung zu erstellen, die auf andere Datensätze verallgemeinert werden kann.
- Verwenden Sie explizite 3D-Modellierung, um ein effektives System zur Gesichtsausrichtung zu entwickeln.
Die Funktionsweise des DeepFace-Modells verstehen
Gesichtsausrichtung
Die Gesichtsausrichtung ist eine Technik, die das Bild einer Person entsprechend dem Augenwinkel dreht. Die Gesichtsausrichtung ist eine beliebte Methode zur Vorverarbeitung von Daten Gesichtserkennungund gesichtsausgerichtete Datensätze tragen dazu bei, die Genauigkeit von Erkennungsalgorithmen zu verbessern, indem sie eine normalisierte Eingabe liefern. Das uneingeschränkte Ausrichten von Gesichtern kann jedoch aufgrund der Vielzahl beteiligter Faktoren wie nicht starrer Gesichtsausdrücke, Körperhaltungen und mehr eine herausfordernde Aufgabe sein. Mehrere ausgefeilte Ausrichtungstechniken wie die Verwendung eines analytischen 3D-Modells des Gesichts oder die Suche nach Referenzpunkten aus externen Datensätzen könnten es Entwicklern ermöglichen, die Herausforderungen zu meistern.
Obwohl die Ausrichtung die beliebteste Methode zur uneingeschränkten Gesichtsüberprüfung und -erkennung ist, gibt es derzeit keine perfekte Lösung. Auch 3D-Modelle kommen zum Einsatz, allerdings hat ihre Beliebtheit in den letzten Jahren deutlich abgenommen, insbesondere bei der Arbeit in einer uneingeschränkten Umgebung. Da es sich bei menschlichen Gesichtern jedoch um 3D-Objekte handelt, könnte dies bei richtiger Anwendung der richtige Ansatz sein. Das DeepFace-Modell verwendet ein System, das Referenzpunkte verwendet, um eine analytische 3D-Modellierung des Gesichts zu erstellen. Diese 3D-Modellierung wird dann verwendet, um einen Gesichtsausschnitt in einen 3D-Frontalmodus zu verzerren.
Darüber hinaus verwendet die DeepFace-Ausrichtung, wie die meisten Ausrichtungspraktiken, auch Referenzpunktdetektoren, um den Ausrichtungsprozess zu steuern. Obwohl das DeepFace-Modell einen einfachen Punktdetektor verwendet, wendet es diesen in mehreren Iterationen an, um die Ausgabe zu verfeinern. Ein Support Vector Regressor oder SVR, der darauf trainiert ist, Punktkonfigurationen zu präjudizieren, extrahiert bei jeder Iteration die Referenzpunkte aus einem Bilddeskriptor. Der Bilddeskriptor von DeepFace basiert auf LBP-Histogrammen, berücksichtigt jedoch auch andere Funktionen.
2D-Ausrichtung
Die Tiefes Gesicht Das Modell leitet den Ausrichtungsprozess ein, indem es sechs Referenzpunkte innerhalb des Erkennungsausschnitts erkennt, zentriert in der Augenmitte, an den Mundstellen und an der Nasenspitze. Sie werden verwendet, um das Bild zu drehen, zu skalieren und an sechs Ankerpositionen zu verschieben und das verzerrte Bild zu iterieren, bis keine sichtbare Änderung mehr auftritt. Die aggregierte Transformation generiert dann ein 2D-ausgerichtetes Unternehmen. Die Ausrichtungsmethode ist der in LFW-a verwendeten sehr ähnlich und wurde im Laufe der Jahre verwendet, um die Modellgenauigkeit zu erhöhen.
3D-Ausrichtung
Um Gesichter mit Rotationen außerhalb der Ebene auszurichten, verwendet das DeepFace-Framework ein generisches 3D-Formmodell und registriert eine 3D-Kamera, die verwendet werden kann, um das 2D-ausgerichtete Körper in seiner Bildebene an die 3D-Form anzupassen. Als Ergebnis generiert das Modell die 3D-ausgerichtete Version des Korps, und dies wird durch die Lokalisierung zusätzlicher 67 Referenzpunkte im 2D-ausgerichteten Korpus mithilfe eines zweiten SVR oder Support Vector Regressors erreicht.
Das Modell platziert dann manuell die 67 Ankerpunkte auf der 3D-Form und ist so in der Lage, eine vollständige Übereinstimmung zwischen 3D-Referenzen und ihren entsprechenden Bezugspunkten zu erreichen. Im nächsten Schritt wird eine 3D-zu-2D-Affinkamera unter Verwendung einer verallgemeinerten Lösung der kleinsten Quadrate zu den linearen Systemen mit einer bekannten Kovarianzmatrix hinzugefügt, die bestimmte Verluste minimiert.
Frontalisierung
Da nicht starre Verformungen und vollständige perspektivische Projektionen nicht modelliert werden, dient die angepasste 3D-zu-2D-Kamera nur als Näherung. In einem Versuch, die Verfälschung wichtiger identitätstragender Faktoren bis zum endgültigen Warp zu reduzieren, fügt das DeepFace-Modell die entsprechenden Residuen zu den xy-Komponenten jedes Referenzbezugspunkts hinzu. Eine solche Entspannung mit dem Ziel, das 2D-Bild mit weniger Verzerrungen der Identität zu verzerren, ist plausibel, und ohne sie wären die Gesichter in 3D in die gleiche Form verzerrt worden und hätten dabei wichtige Unterscheidungsfaktoren verloren.
Schließlich erreicht das Modell eine Frontalisierung durch die Verwendung einer stückweisen affinen Transformation, die durch die aus 67 Referenzpunkten abgeleitete Delaunay-Triangulation gesteuert wird.

- Erkanntes Gesicht mit 6 Referenzpunkten.
- Induziertes 2D-ausgerichtetes Unternehmen.
- 67 Referenzpunkte auf dem 2D-ausgerichteten Korpus.
- Referenz-3D-Form, umgewandelt in ein 2D-ausgerichtetes Unternehmensbild.
- Sichtbarkeit des Dreiecks in Bezug auf die 3D-2D-Kamera.
- 67 durch das 3D-Modell induzierte Referenzpunkte.
- 3D-ausgerichtete Version des endgültigen Unternehmens.
- Neue vom 3D-Modell generierte Ansicht.
Vertretung
Mit zunehmender Menge an Trainingsdaten haben sich lernbasierte Methoden im Vergleich zu technischen Funktionen als effizienter und genauer erwiesen, vor allem weil lernbasierte Methoden Funktionen für eine bestimmte Aufgabe entdecken und optimieren können.
DNN-Architektur und -Schulung
Das DeepFace DNN wird auf eine Gesichtserkennungsaufgabe mit mehreren Klassen trainiert, die die Identität eines Gesichtsbildes klassifiziert.
Die obige Abbildung stellt die Gesamtarchitektur des DeepFace-Modells dar. Das Modell verfügt über eine Faltungsschicht (C1) mit 32 Filtern der Größe 11 x 11 x 3, die mit einem 3D-ausgerichteten 3-Kanal-RGB-Bild der Größe 152 x 152 Pixel gefüttert wird und 32 Feature-Maps ergibt. Diese Feature-Maps werden dann einer Max-Pooling-Schicht oder M2 zugeführt, die das Maximum über 3×3 räumliche Nachbarschaften annimmt und einen Schritt von 2 aufweist, separat für jeden Kanal. Daran schließt sich eine weitere Faltungsschicht (C3) an, die jeweils 16 Filter der Größe 9x9x16 umfasst. Der Hauptzweck dieser Ebenen besteht darin, Merkmale auf niedriger Ebene wie Textur und einfache Kanten zu extrahieren. Der Vorteil der Verwendung von Max-Pooling-Schichten besteht darin, dass die von den Faltungsschichten erzeugte Ausgabe robuster gegenüber lokalen Übersetzungen wird, und wenn sie auf ausgerichtete Gesichtsbilder angewendet werden, machen sie das Netzwerk wesentlich robuster gegenüber Registrierungsfehlern im kleinen Maßstab.
Mehrere Pooling-Ebenen machen das Netzwerk zwar robuster gegenüber bestimmten Situationen, führen aber auch dazu, dass das Netzwerk Informationen über die genaue Position von Mikrotexturen und detaillierten Gesichtsstrukturen verliert. Um zu verhindern, dass das Netzwerk Informationen verliert, verwendet das DeepFace-Modell nur mit der ersten Faltungsschicht eine maximale Pooling-Schicht. Diese Schichten werden dann vom Modell als adaptiver Front-End-Vorverarbeitungsschritt interpretiert. Obwohl sie den Großteil der Berechnungen durchführen, verfügen sie über begrenzte eigene Parameter und erweitern lediglich die Eingabe in eine Reihe lokaler Features.
Die folgenden Schichten L4, L5 und L6 sind lokal verbunden und wenden genau wie eine Faltungsschicht eine Filterbank an, bei der jeder Ort in der Feature-Map einen einzigartigen Satz von Filtern lernt. Da unterschiedliche Regionen in einem ausgerichteten Bild unterschiedliche lokale Statistiken aufweisen, kann die Annahme der räumlichen Stationarität nicht erfüllt werden. Beispielsweise verfügt der Bereich zwischen Augenbrauen und Augen über ein höheres Unterscheidungsvermögen als der Bereich zwischen Mund und Nase. Die Verwendung loyaler Schichten wirkt sich auf die Anzahl der zu trainierenden Parameter aus, hat jedoch keinen Einfluss auf den Rechenaufwand während der Merkmalsextraktion.
Das DeepFace-Modell verwendet in erster Linie nur deshalb drei Schichten, weil es über eine große Menge gut gekennzeichneter Trainingsdaten verfügt. Die Verwendung lokal verbundener Schichten kann weiter gerechtfertigt werden, da jede Ausgabeeinheit einer lokal verbundenen Schicht von einem großen Teil der Eingabedaten betroffen sein kann.
Schließlich werden die oberen Schichten vollständig verbunden, wobei jede Ausgabeeinheit mit allen Eingängen verbunden ist. Die beiden Ebenen können die Korrelationen zwischen Merkmalen erfassen, die in verschiedenen Teilen der Gesichtsbilder erfasst wurden, wie Position und Form des Mundes sowie Position und Form der Augen. Die Ausgabe der ersten vollständig verbundenen Ebene (F7) wird vom Netzwerk als Roh-Feature-Vektor für die Gesichtsdarstellung verwendet. Das Modell führt dann die Ausgabe der letzten vollständig verbundenen Schicht (F8) einem K-Weg-Softmax zu, der eine Verteilung über Klassenbezeichnungen erzeugt.
Datensätze
Das DeepFace-Modell verwendet eine Kombination von Datensätzen, wobei der Social Face Classification- oder SFC-Datensatz der primäre ist. Darüber hinaus verwendet das DeepFace-Modell auch den LFW-Datensatz und den YTF-Datensatz.
SFC-Datensatz
Der SFC-Datensatz basiert auf einer Bildersammlung von Facebook und besteht aus 4.4 Millionen beschrifteten Bildern von 4,030 Personen, von denen jedes 800 bis 1200 Gesichter hat. Die aktuellsten 5 % der Gesichtsbilder jeder Identität im SFC-Datensatz werden zu Testzwecken weggelassen.
LFW-Datensatz
Der LFW-Datensatz besteht aus 13,323 Fotos von über fünftausend Prominenten, die dann in 6,000 Teilungen in 10 Gesichtspaare unterteilt werden.
YTF-Datensatz
Der YTF-Datensatz besteht aus 3,425 Videos von 1,595 Probanden und ist eine Teilmenge der Prominenten im LFW-Datensatz.
Ergebnisse
Ohne Frontalisierung und bei ausschließlicher Verwendung der 2D-Ausrichtung erreicht das Modell eine Genauigkeit von nur etwa 94.3 %. Wenn das Modell den Mittelkörper der Gesichtserkennung verwendet, verwendet es keine Ausrichtung. In diesem Fall gibt das Modell einen Genauigkeitswert von 87.9 % zurück, da einige Teile des Gesichtsbereichs möglicherweise aus dem Mittelkörper herausfallen. Um die Unterscheidungsfähigkeit der Gesichtsdarstellung isoliert zu bewerten, folgt das Modell der unbeaufsichtigten Lernumgebung, um das innere Produkt normalisierter Merkmale zu vergleichen. Es erhöht die durchschnittliche Genauigkeit des Modells auf 95.92 %.

Das obige Modell vergleicht die Leistung des DeepFace-Modells im Vergleich mit anderen hochmodernen Gesichtserkennungsmodellen.

Das obige Bild zeigt die ROC-Kurven im Datensatz.
Fazit
Im Idealfall ist ein Gesichtsklassifikator in der Lage, Gesichter mit der Genauigkeit eines Menschen zu erkennen und unabhängig von Bildqualität, Pose, Gesichtsausdruck oder Beleuchtung eine hohe Genauigkeit zu liefern. Darüber hinaus kann ein ideales Gesichtserkennungs-Framework mit geringen oder keinen Änderungen auf eine Vielzahl von Anwendungen angewendet werden. Obwohl DeepFace derzeit eines der fortschrittlichsten und effizientesten Gesichtserkennungs-Frameworks ist, ist es nicht perfekt und kann in bestimmten Situationen möglicherweise keine genauen Ergebnisse liefern. Aber die Tiefes Gesicht Das Framework ist ein bedeutender Meilenstein in der Gesichtserkennungsbranche. Es schließt die Leistungslücke durch den Einsatz einer leistungsstarken Metrik-Lerntechnik und wird mit der Zeit immer effizienter.










