FaceNet ist ein Deep-Learning-Modell zur Gesichtserkennung und -verifikation, das von Forschern bei Google entwickelt wurde. Es bildet Gesichtsbilder auf einen kompakten 128-dimensionalen euklidischen Raum ab, in dem die quadrierte L2-Distanz zwischen Einbettungen direkt der Gesichtsähnlichkeit entspricht. Das Modell wurde in einem 2015 veröffentlichten Paper mit dem Titel „FaceNet: A Unified Embedding for Face Recognition and Clustering“ von Florian Schroff, Dmitry Kalenichenko und James Philbin vorgestellt.
Im Gegensatz zu früheren Gesichtserkennungssystemen, die Zwischen-Bottleneck-Schicht-Repräsentationen aus Klassifikationsnetzwerken verwendeten, wurde FaceNet end-to-end mit einer neuartigen Triplet-Loss-Funktion trainiert. Diese Verlustfunktion stellt sicher, dass die Distanz zwischen Einbettungen derselben Person kleiner ist als die Distanz zwischen Einbettungen verschiedener Personen, und zwar um eine festgelegte Marge. Dieser Ansatz ermöglichte es FaceNet, damals auf mehreren Benchmark-Datensätzen eine hochmoderne Genauigkeit zu erreichen, darunter 99,63 % auf dem Labeled Faces in the Wild (LFW)-Datensatz und 95,12 % auf dem YouTube Faces DB.
Architektur und Training
FaceNet verwendet eine tiefe faltende neuronale Netzwerkarchitektur (CNN) mit zwei Hauptvarianten: dem Zeiler-Fergus (ZF)-Netzwerk und dem Inception (GoogLeNet)-Netzwerk. Das auf Inception basierende Modell, das in späteren Versionen Batch-Normalisierung und Residualverbindungen einsetzt, erzielte die beste Leistung. Das Netzwerk verarbeitet alignierte Gesichtsausschnitte mit einer Größe von 96x96 oder 224x224 Pixeln und erzeugt einen 128-dimensionalen Einbettungsvektor.
Das Training erfolgte mit stochastischem Gradientenabstieg (SGD) und in einigen Konfigurationen mit dem Adam-Optimierer. Der Triplet-Loss wurde mithilfe einer Triplet-Mining-Strategie optimiert, die innerhalb jedes Mini-Batches harte positive und harte negative Beispiele auswählt. Diese Mining-Technik war entscheidend für die Konvergenz, da eine zufällige Triplet-Auswahl oft zu langsamem Training führte. Das Modell wurde auf einem großen Datensatz von etwa 200 Millionen Gesichtsbildern von ungefähr 8 Millionen eindeutigen Identitäten trainiert, die aus Web-Bildern stammten.
Triplet-Loss
Die Kerninnovation von FaceNet ist die Triplet-Loss-Funktion. Für jedes Trainingsbeispiel besteht ein Triplet aus einem Ankerbild, einem positiven Bild (gleiche Identität wie der Anker) und einem negativen Bild (andere Identität). Der Verlust fördert, dass die Einbettungsdistanz zwischen Anker und positivem Bild kleiner ist als die zwischen Anker und negativem Bild, und zwar um mindestens eine Marge α (typischerweise auf 0,2 gesetzt). Der Verlust ist definiert als L = max(0, d(a,p) - d(a,n) + α), wobei d die euklidische Distanz bezeichnet.
Um das Training effizient zu gestalten, schlugen die Autoren zwei Triplet-Auswahlstrategien vor: Batch-Hard-Mining (Auswahl des härtesten positiven und härtesten negativen Beispiels innerhalb eines Batches) und Batch-All-Mining (Verwendung aller gültigen Triplets in einem Batch). Die Batch-Hard-Strategie erwies sich als am effektivsten und führte zu schnellerer Konvergenz und besserer finaler Genauigkeit.
Anwendungen und Auswirkungen
Die Einbettungen von FaceNet wurden weitgehend für Gesichtsverifikation, Gesichtserkennung und Gesichts-Clustering übernommen. Die Fähigkeit des Modells, kompakte, diskriminative Einbettungen zu erzeugen, ermöglichte eine effiziente Ähnlichkeitssuche mithilfe von Nearest-Neighbor-Algorithmen. Es beeinflusste nachfolgende Arbeiten im Bereich des Metrik-Lernens und wurde in verschiedene kommerzielle Systeme integriert, darunter die Gesichtsgruppierungsfunktion von Google Photos.
Der Ansatz inspirierte auch Forschung über die Gesichtserkennung hinaus, einschließlich Personen-Re-Identifikation, Bildabruf und One-Shot-Lernen. Das Triplet-Loss-Konzept wurde später für andere Bereiche wie Sprachmodelle und Empfehlungssysteme adaptiert.
Einschränkungen und nachfolgende Arbeiten
FaceNet erforderte sorgfältig alignierte Gesichtsausschnitte, und seine Leistung verschlechterte sich bei Variationen in Pose, Beleuchtung und Okklusion. Das Modell wurde auch hinsichtlich Datenschutz und Verzerrung kritisiert, da Gesichtserkennungssysteme demografische Disparitäten aufweisen können. Nachfolgende Modelle wie ArcFace und CosFace verbesserten FaceNet, indem sie anstelle der euklidischen Marge Winkelmargen-Verluste verwendeten und so eine bessere Leistung auf anspruchsvollen Benchmarks erzielten.
Trotz dieser Fortschritte bleibt FaceNet ein grundlegender Referenzpunkt im Bereich der Gesichtserkennung, und seine Triplet-Loss-Formulierung wird noch heute in vielen Machine-Learning-Kursen gelehrt. Das ursprüngliche Paper wurde über 10.000 Mal zitiert, was seinen anhaltenden Einfluss auf die Forschung im Bereich Computer Vision widerspiegelt.