Facial Recognition
Gesichtserkennung identifiziert oder verifiziert Personen durch den Vergleich von Gesichts-Embeddings. Funktionsweise der Pipeline, Verifizierung vs. Identifizierung, Verzerrungen und Datenschutz.
Gesichtserkennung ist eine biometrische Technologie, mit der Personen identifiziert oder verifiziert werden, indem ein Bild ihres Gesichts mit gespeicherten Gesichtern verglichen wird. Moderne Systeme verwenden Deep Learning, um jedes Gesicht in ein Embedding umzuwandeln: einen Zahlenvektor, der oft als Gesichtsprofil bezeichnet wird. Ob zwei Gesichter derselben Person gehören, wird anhand der Ähnlichkeit ihrer Embeddings entschieden. Gesichtserkennung entsperrt Mobiltelefone, beschleunigt die Abfertigung von Passagieren an Flughafenschleusen und verifiziert Kundinnen und Kunden, die online Bankkonten eröffnen. Sie zählt außerdem zu den am stärksten regulierten Anwendungen der Computer Vision, da Gesichter ohne Wissen der betreffenden Person erfasst werden können.
So funktioniert Gesichtserkennung#
Ein Gesichtserkennungssystem durchläuft bei jedem Bild vier Schritte:
- Erkennung: Ein Gesichtserkennungsmodell findet jedes Gesicht und gibt dessen Bounding Box sowie einige Gesichtslandmarken zurück.
- Ausrichtung: Das Gesicht wird gedreht, skaliert und zugeschnitten, sodass Augen, Nase und Mund an festen Positionen liegen. Dadurch werden die meisten Abweichungen durch Kopfhaltung und Entfernung beseitigt.
- Kodierung mit einem CNN: Das Netzwerk ordnet dem ausgerichteten Ausschnitt ein Embedding mit fester Länge zu.
- Abgleich über Kosinusähnlichkeit: Das neue Embedding wird mit den gespeicherten Embeddings verglichen. Anhand eines Schwellenwerts wird entschieden, ob eine Übereinstimmung vorliegt. Bei großen Installationen werden gespeicherte Gesichtsprofile für eine schnelle Suche in einer Vektordatenbank abgelegt.
Gesichtserkennung ist eine Aufgabe der Objekterkennung. Ein Ultralytics-YOLO26-Modell, das mit einem Gesichtsdatensatz wie WIDER FACE feinabgestimmt wurde, kann Gesichter in Echtzeit auf Edge-Kameras erkennen und die Gesichtsboxen an nachfolgende Verarbeitungsschritte übergeben. Vor dem Deep Learning stützten sich Systeme auf manuell entwickelte Merkmale, von Abständen zwischen Gesichtsmerkmalspunkten bis hin zu Eigenfaces und lokalen Binärmustern. Erlernte Einbettungen ersetzten sie, weil sie bei wechselnder Beleuchtung, Mimik und Alter viel stabiler bleiben. FaceNet trainierte 2015 direkt kompakte Einbettungen mit 128 Dimensionen und einer Triplet-Verlustfunktion. Margin-basierte Verlustfunktionen wie ArcFace rücken die Einbettungen verschiedener Personen heute weiter auseinander. Beim Abgleich werden zwei unterschiedliche Fragen gestellt:
Bei der Verifizierung (1:1) wird geprüft, ob ein Gesicht zu einer angegebenen Identität gehört, etwa wenn ein Mobiltelefon die Besitzerin oder den Besitzer überprüft. Bei der Identifizierung (1:N) wird eine gesamte Galerie durchsucht, etwa wenn ein Zugangskontrollsystem ein Gesicht mit allen registrierten Beschäftigten abgleicht. Mit Modellen aus OpenCV Zoo lässt sich die gesamte Verarbeitungskette in wenigen Zeilen ausführen. Dieser Code registriert die Gesichter in einem Bild und identifiziert sie anschließend in einer gespiegelten Kopie anhand dieser Galerie.
import urllib.request
import cv2
# Download OpenCV Zoo's face detector (YuNet), face recognizer (SFace), and a test image
zoo = "https://github.com/opencv/opencv_zoo/raw/main/models"
urllib.request.urlretrieve(f"{zoo}/face_detection_yunet/face_detection_yunet_2023mar.onnx", "yunet.onnx")
urllib.request.urlretrieve(f"{zoo}/face_recognition_sface/face_recognition_sface_2021dec.onnx", "sface.onnx")
urllib.request.urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
img = cv2.imread("bus.jpg")
detector = cv2.FaceDetectorYN.create("yunet.onnx", "", (img.shape[1], img.shape[0]))
recognizer = cv2.FaceRecognizerSF.create("sface.onnx", "")
# Enroll each detected face as an aligned 128-D embedding
gallery = [recognizer.feature(recognizer.alignCrop(img, face)) for face in detector.detect(img)[1]]
# Identify the faces of a mirrored copy against the gallery (SFace match: cosine >= 0.363)
mirror = cv2.flip(img, 1)
for face in detector.detect(mirror)[1]:
probe = recognizer.feature(recognizer.alignCrop(mirror, face))
print([round(recognizer.match(probe, g, cv2.FaceRecognizerSF_FR_COSINE), 2) for g in gallery])Das Skript gibt [0.87, 0.06] und [0.09, 0.89] aus: Jedes gespiegelte Gesicht erreicht beim Abgleich mit dem eigenen registrierten Embedding einen Wert deutlich über dem Schwellenwert von 0,363 und beim Abgleich mit dem Embedding der anderen Person einen deutlich niedrigeren Wert.
Gesichtserkennung und verwandte Begriffe#
- Gesichtserkennung: Ermittelt, wo sich Gesichter in einem Bild befinden, ohne festzustellen, um wen es sich handelt. Sie ist die erste Stufe der Gesichtswiedererkennung und ermöglicht außerdem den Kameraautofokus sowie das Weichzeichnen von Gesichtern.
- Gesichtsanalyse und affektives Rechnen: Schätzen Merkmale wie Gesichtsausdruck, Kopfhaltung oder Alter, ohne eine Identität festzustellen.
- Wiedererkennung von Objekten (Re-ID): Gleicht Personen anhand ihres gesamten Erscheinungsbilds, etwa ihrer Kleidung, über mehrere Kameras hinweg ab. Das funktioniert auch bei einer Ansicht von hinten und niedriger Auflösung, jedoch nur über kurze Zeiträume.
Anwendungen in der Praxis#
- Entsperren von Geräten: Mobiltelefone verifizieren ihre Besitzerinnen und Besitzer in Sekundenbruchteilen. Apples Face ID projiziert mehr als 30.000 Infrarotpunkte, um eine Tiefenkarte zu erstellen, die ein gedrucktes Foto nicht nachahmen kann.
- Reisen und Grenzkontrollen: Automatisierte elektronische Schleusen vergleichen ein Live-Foto der reisenden Person mit dem Foto auf dem Chip ihres E-Passes.
- Identitätsprüfung: Banken und Onlinedienste vergleichen bei der Kontoeröffnung ein Selfie mit dem Foto auf einem amtlichen Ausweis und führen zusätzlich Lebenderkennung durch.
- Organisation von Fotos: Foto-Apps gruppieren Gesichter in einer persönlichen Bildersammlung, damit Nutzerinnen und Nutzer alle Fotos eines Familienmitglieds finden können.
Genauigkeit, Verzerrungen und Täuschung#
Jedes System muss zwei Fehler gegeneinander abwägen: Bei einer falschen Übereinstimmung wird die falsche Person akzeptiert, bei einer falschen Nichtübereinstimmung die richtige Person abgelehnt. Der Ähnlichkeitsschwellenwert bestimmt die Gewichtung. Die NIST-Bewertung von Gesichtserkennungstechnologien (FRTE), früher FRVT, vergleicht kommerzielle Algorithmen anhand von Millionen Bildern. Eine Studie aus dem Jahr 2019 zu 189 Algorithmen von 99 Entwicklern stellte bei der Mehrheit demografische Unterschiede bei der Rate falsch positiver Ergebnisse fest. Das ist ein zentraler Beleg für algorithmische Verzerrungen. Gesichtserkennung lässt sich außerdem mit Fotos, Bildschirmwiedergaben und Masken täuschen. Daher ergänzen Produktionssysteme eine Erkennung von Präsentationsangriffen, oft Lebenderkennung genannt, die Tiefensensoren, Infrarot oder die Analyse subtiler Bewegungen nutzt.
Datenschutz und Regulierung#
Gesichtsprofile sind biometrische Daten und gelten daher gesetzlich als besonders sensible personenbezogene Daten. Nach der DSGVO gehören biometrische Daten, die zur Identifizierung einer Person verwendet werden, zu einer besonderen Kategorie, für die eine ausdrückliche Rechtsgrundlage erforderlich ist. Das Biometric Information Privacy Act von Illinois verlangt eine schriftliche Einwilligung, bevor ein Unternehmen ein Gesichtsprofil erfasst. Das EU-KI-Gesetz geht noch weiter: Seit dem 2. Februar 2025 verbietet es den Aufbau von Gesichtserkennungsdatenbanken durch die wahllose Erfassung von Bildern aus dem Internet oder Videoüberwachung sowie die biometrische Fernidentifizierung in Echtzeit an öffentlichen Orten durch Strafverfolgungsbehörden, abgesehen von wenigen eng umrissenen Fällen.










