Künstliche Intelligenz

DeepFace für erweiterte Gesichtserkennung

mm

Die Gesichtserkennung ist seit mehreren Jahren ein Trendthema in der KI- und ML-Forschung, und die weitreichenden kulturellen und sozialen Auswirkungen der Gesichtserkennung sind enorm. Es gibt jedoch eine Leistungslücke zwischen menschlichen visuellen Systemen und Maschinen, die derzeit die Anwendungen der Gesichtserkennung begrenzt.

Um die durch die Leistungslücke entstandene Barriere zu überwinden und eine Genauigkeit auf menschlichem Niveau zu erreichen, hat Meta DeepFace vorgestellt, ein Framework für die Gesichtserkennung. Das DeepFace-Modell wird auf einem großen Datensatz von Gesichtern trainiert, der sich erheblich von den Datensätzen unterscheidet, die für die Evaluierungsbenchmarks verwendet werden, und es hat das Potenzial, bestehende Frameworks mit minimalen Anpassungen zu übertreffen. Darüber hinaus erzeugt das DeepFace-Framework kompakte Gesichtsrepräsentationen im Vergleich zu anderen Systemen, die Tausende von Gesichtsmerkmalen erzeugen.

Das vorgeschlagene DeepFace-Framework verwendet Deep Learning, um auf einem großen Datensatz zu trainieren, der verschiedene Formen von Daten enthält, einschließlich Bilder, Videos und Grafiken. Die DeepFace-Netzarchitektur geht davon aus, dass nach der Ausrichtung die Position jedes Gesichtsmerkmals auf Pixel-Ebene festgelegt ist. Daher kann das rohe Pixel-RGB-Wert ohne die Verwendung mehrerer Konvolutionslayer wie in anderen Frameworks verwendet werden.

Die herkömmliche Pipeline moderner Gesichtserkennungsframeworks umfasst vier Stufen: Erkennung, Ausrichtung, Repräsentation und Klassifizierung. Das DeepFace-Framework verwendet explizite 3D-Gesichtsmodellierung, um eine stückweise Transformation anzuwenden, und verwendet ein neunschichtiges Deep-Neural-Netz, um eine Gesichtsrepräsentation abzuleiten. Das DeepFace-Framework versucht, die folgenden Beiträge zu leisten

  1. Eine effektive DNN- oder Deep-Neural-Netz-Architektur zu entwickeln, die einen großen Datensatz nutzen kann, um eine Gesichtsrepräsentation zu erstellen, die auf andere Datensätze verallgemeinert werden kann.
  2. Explizite 3D-Modellierung zu verwenden, um ein effektives Gesichtsausrichtungssystem zu entwickeln.

Verständnis des DeepFace-Modells

Gesichtsausrichtung

Gesichtsausrichtung ist eine Technik, die das Bild einer Person entsprechend dem Winkel der Augen rotiert. Gesichtsausrichtung ist eine gängige Praxis, die zur Vorverarbeitung von Daten für Gesichtserkennung verwendet wird, und gesichtsausgerichtete Datensätze helfen bei der Verbesserung der Genauigkeit von Erkennungsalgorithmen, indem sie eine normalisierte Eingabe liefern. Es kann jedoch eine Herausforderung sein, Gesichter auf unaufwendige Weise auszurichten, da mehrere Faktoren wie nicht-rigide Ausdrücke, Körperhaltungen und mehr beteiligt sind. Verschiedene fortgeschrittene Ausrichtungstechniken wie die Verwendung eines analytischen 3D-Modells des Gesichts oder die Suche nach Fiduzialpunkten aus externen Datensätzen können es Entwicklern ermöglichen, diese Herausforderungen zu überwinden.

Obwohl die Ausrichtung die beliebteste Methode zur Bewältigung der unaufwendigen Gesichtsüberprüfung und -erkennung ist, gibt es derzeit keine perfekte Lösung. 3D-Modelle werden auch verwendet, aber ihre Popularität hat in den letzten Jahren, insbesondere in unaufwendigen Umgebungen, erheblich abgenommen. Es kann jedoch die richtige Herangehensweise sein, wenn sie richtig verwendet wird, da menschliche Gesichter 3D-Objekte sind. Das DeepFace-Modell verwendet ein System, das Fiduzialpunkte zur Erstellung eines analytischen 3D-Modells des Gesichts verwendet. Dieses 3D-Modell wird dann verwendet, um eine Gesichtsauschnitt zu einer 3D-Frontalansicht zu verformen.

Darüber hinaus verwendet die DeepFace-Ausrichtung, ähnlich wie die meisten Ausrichtungspraktiken, Fiduzialpunkt-Detektoren, um den Ausrichtungsprozess zu steuern. Obwohl das DeepFace-Modell einen einfachen Punkt-Detektor verwendet, wendet es ihn in mehreren Iterationen an, um die Ausgabe zu verfeinern. Ein Support-Vektor-Regressor oder SVR, der trainiert wird, um Punkt-Konfigurationen vorzubereiten, extrahiert die Fiduzialpunkte aus einem Bild-Deskriptor bei jeder Iteration. Der Bild-Deskriptor von DeepFace basiert auf LBP-Histogrammen, obwohl er auch andere Merkmale berücksichtigt.

2D-Ausrichtung

Das DeepFace-Modell startet den Ausrichtungsprozess, indem es sechs Fiduzialpunkte innerhalb des Erkennungsbereichs, zentriert in der Mitte der Augen, des Mundes und der Nase, erkennt. Sie werden verwendet, um das Bild zu rotieren, zu skalieren und zu übersetzen, und die verformte Bildversion wird iterativ bis zu einem bestimmten Punkt verfeinert. Die aggregierte Transformation generiert dann eine 2D-ausgerichtete Corp. Die Ausrichtungsmethode ist sehr ähnlich wie die, die in LFW-a verwendet wird, und sie wurde im Laufe der Jahre eingesetzt, um die Modellgenauigkeit zu verbessern.

3D-Ausrichtung

Um Gesichter mit Außenrotationswinkeln auszurichten, verwendet das DeepFace-Framework ein generisches 3D-Formmodell und registriert eine 3D-Kamera, die verwendet werden kann, um die 2D-ausgerichtete Corp in die 3D-Form in ihrer BildEbene zu verformen. Als Ergebnis generiert das Modell die 3D-ausgerichtete Version der Corp, und dies wird erreicht, indem 67 zusätzliche Fiduzialpunkte im 2D-ausgerichteten Corp unter Verwendung eines zweiten SVR oder Support-Vektor-Regressors lokalisiert werden.

Das Modell platziert dann manuell die 67 Ankerpunkte auf der 3D-Form und erreicht so eine vollständige Korrespondenz zwischen 3D-Referenzen und ihren entsprechenden Fiduzialpunkten. Im nächsten Schritt wird eine 3D-2D-Affine-Kamera unter Verwendung einer verallgemeinerten kleinsten-Quadrate-Lösung für lineare Systeme mit einer bekannten Kovarianzmatrix hinzugefügt, die bestimmte Verluste minimiert.

Frontalisation

Da nicht-rigide Deformationen und vollständige Perspektivprojektionen nicht modelliert werden, dient die angepasste 3D-2D-Kamera nur als Approximation. In einem Versuch, die Korruption wichtiger Identitätsmerkmale im finalen Warp zu reduzieren, fügt das DeepFace-Modell die entsprechenden Residuen zu den x-y-Komponenten jedes Referenz-Fiduzialpunkts hinzu. Eine solche Relaxation für den Zweck der Verformung des 2D-Bildes mit weniger Verzerrungen zur Identität ist plausibel, und ohne sie wären die Gesichter in die gleiche Form in 3D verformt worden und hätten wichtige diskriminative Faktoren im Prozess verloren.

Schließlich erreicht das Modell die Frontalisation durch die Verwendung einer stückweisen affinen Transformation, die durch die Delaunay-Triangulation abgeleitet wird, die aus 67 Fiduzialpunkten resultiert.

  1. Erkanntes Gesicht mit 6 Fiduzialpunkten.
  2. Induzierte 2D-ausgerichtete Corp.
  3. 67 Fiduzialpunkte auf der 2D-ausgerichteten Corp.
  4. Referenz-3D-Form, transformiert in die 2D-ausgerichtete Corp-Bild.
  5. Dreiecks-Sichtbarkeit in Bezug auf die 3D-2D-Kamera.
  6. 67 Fiduzialpunkte, induziert durch das 3D-Modell.
  7. 3D-ausgerichtete Version der finalen Corp.
  8. Neue Ansicht, generiert durch das 3D-Modell.

Repräsentation

Mit einer Zunahme der Trainingsdaten haben lernbasierte Methoden sich als effizienter und genauer erwiesen als ingenieurstechnische Merkmale, da lernbasierte Methoden Merkmale für eine bestimmte Aufgabe entdecken und optimieren können.

DNN-Architektur und Training

Das DeepFace-DNN wird auf einer multi-klassigen Gesichtserkennungsaufgabe trainiert, die die Identität eines Gesichtsbildes klassifiziert.

Die obige Abbildung stellt die Gesamtbauweise des DeepFace-Modells dar. Das Modell hat eine Konvolutions-Schicht (C1) mit 32 Filtern der Größe 11x11x3, die ein 3D-ausgerichtetes 3-Kanäle-RGB-Bild der Größe 152×152 Pixeln zugeführt wird, und es ergibt 32 Merkmalskarten. Diese Merkmalskarten werden dann einer Max-Pooling-Schicht oder M2 zugeführt, die das Maximum über 3×3-Räumliche Nachbarschaften nimmt, und es hat einen Schritt von 2, getrennt für jeden Kanal. Es folgt eine weitere Konvolutions-Schicht (C3), die 16 Filter jeder der Größe 9x9x16 umfasst. Der Hauptzweck dieser Schichten ist die Extraktion von niedrigstufigen Merkmalen wie Textur und einfache Kanten. Der Vorteil der Verwendung von Max-Pooling-Schichten besteht darin, dass sie die von den Konvolutions-Schichten erzeugte Ausgabe robuster gegenüber lokalen Übersetzungen machen, und wenn sie auf ausgerichtete Gesichtsbilder angewendet werden, machen sie das Netzwerk viel robuster gegenüber Registrierungsfehlern auf kleinen Skalen.

Mehrere Ebenen von Pooling machen das Netzwerk robuster gegen bestimmte Situationen, aber es verursacht auch, dass das Netzwerk Informationen über die genaue Position von Mikro-Texturen und detaillierten Gesichtsstrukturen verliert. Um zu vermeiden, dass das Netzwerk diese Informationen verliert, verwendet das DeepFace-Modell eine Max-Pooling-Schicht nur mit der ersten Konvolutions-Schicht. Diese Schichten werden vom Modell als ein front-end-adaptiver Vorverarbeitungsschritt interpretiert. Obwohl sie den größten Teil der Berechnung durchführen, haben sie selbst begrenzte Parameter, und sie erweitern die Eingabe lediglich in eine Menge lokaler Merkmale.

Die folgenden Schichten L4, L5 und L6 sind lokal verbunden, und ähnlich wie eine Konvolutions-Schicht wenden sie einen Filter-Bank an, wobei jeder Ort in der Merkmalskarte eine eindeutige Menge von Filtern lernt. Da verschiedene Regionen in einem ausgerichteten Bild unterschiedliche lokale Statistiken haben, kann die räumliche Stationaritätsannahme nicht gehalten werden. Zum Beispiel haben die Bereiche zwischen den Augenbrauen und den Augen eine höhere Diskriminierungsfähigkeit im Vergleich zu den Bereichen zwischen dem Mund und der Nase. Die Verwendung von loyalen Schichten beeinflusst die Anzahl der Parameter, die für das Training unterliegen, aber sie beeinflusst nicht die Rechenlast während der Merkmalsextraktion.

Das DeepFace-Modell verwendet drei Schichten, weil es einen großen, gut beschrifteten Trainingsdatensatz hat. Die Verwendung von lokal verbundenen Schichten kann weiterhin dadurch gerechtfertigt werden, dass jedes Ausgabe-Element einer lokal verbundenen Schicht von einem großen Bereich der Eingabedaten beeinflusst werden kann.

Schließlich sind die oberen Schichten vollständig verbunden, wobei jedes Ausgabe-Element mit allen Eingaben verbunden ist. Die beiden Schichten können die Korrelationen zwischen Merkmalen erfassen, die in verschiedenen Teilen der Gesichtsbilder erfasst werden, wie Position und Form des Mundes und Position und Form der Augen. Die Ausgabe der ersten vollständig verbundenen Schicht (F7) wird vom Netzwerk als seine rohe Gesichtsrepräsentations-Merkmalvektor verwendet. Das Modell wird dann die Ausgabe der letzten vollständig verbundenen Schicht (F8) einem K-Weg-Softmax zuführen, der eine Verteilung über Klassen-Labels 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 wird aus einer Sammlung von Bildern von Facebook gelernt und umfasst 4,4 Millionen beschriftete Bilder von 4.030 Personen, wobei jede Person 800 bis 1.200 Gesichter hat. Die neuesten 5% der Gesichtsbilder des SFC-Datensatzes jeder Identität werden für Testzwecke zurückgehalten.

LFW-Datensatz

Der LFW-Datensatz umfasst 13.323 Fotos von über 5.000 Celebrities, die in 6.000 Gesichtspaare über 10 Splits unterteilt sind.

YTF-Datensatz

Der YTF-Datensatz umfasst 3.425 Videos von 1.595 Themen und ist ein Teilmenge der Celebrities im LFW-Datensatz.

Ergebnisse

Ohne Frontalisation und bei Verwendung nur der 2D-Ausrichtung erreicht das Modell eine Genauigkeit von etwa 94,3%. Wenn das Modell den Mittelpunkt des Gesichtsdetektionsbereichs verwendet, wird keine Ausrichtung verwendet, und in diesem Fall gibt das Modell eine Genauigkeit von 87,9% zurück, da einige Teile der Gesichtsregion möglicherweise aus dem Mittelpunkt des Bereichs fallen. Um die diskriminative Fähigkeit der Gesichtsrepräsentation in Isolation zu bewerten, folgt das Modell der unsupervised-Learning-Einstellung, um den inneren Produkt der normalisierten Merkmale zu vergleichen. Es erhöht die mittlere Genauigkeit des Modells auf 95,92%.

Die obige Abbildung vergleicht die Leistung des DeepFace-Modells mit anderen State-of-the-Art-Gesichtserkennungsmodellen.

Die obige Abbildung zeigt die ROC-Kurven auf dem Datensatz.

Schlussfolgerung

Idealerweise sollte ein Gesichtsklassifizierer in der Lage sein, Gesichter mit der Genauigkeit eines Menschen zu erkennen und unabhängig von der Bildqualität, Pose, Ausdruck oder Beleuchtung eine hohe Genauigkeit zurückgeben. Darüber hinaus sollte ein ideales Gesichtserkennungsframework auf eine Vielzahl von Anwendungen mit wenig oder keinen Modifikationen anwendbar sein. Obwohl DeepFace eines der fortschrittlichsten und effizientesten Gesichtserkennungsframeworks ist, ist es nicht perfekt und kann möglicherweise nicht in bestimmten Situationen genaue Ergebnisse liefern. Aber das DeepFace-Framework ist ein bedeutender Meilenstein in der Gesichtserkennungsindustrie und schließt die Leistungslücke durch die Verwendung einer leistungsstarken Metrik-Lern-Technik, und es wird im Laufe der Zeit effizienter.

Ein Ingenieur von Beruf, ein Schriftsteller von Herzen. Kunal ist ein technischer Schriftsteller mit einer tiefen Liebe und einem tiefen Verständnis für KI und ML, der sich der Aufgabe widmet, komplexe Konzepte in diesen Bereichen durch seine ansprechenden und informativen Dokumentationen zu vereinfachen.