Wie funktioniert eine Gesichtserkennung?
Dieser Beitrag erklärt Dir, wie ein Algorithmus Gesichter erkennt, Du diesen austricksen und selbst programmieren kannst.
Starten wir!
Wie funktioniert eine Gesichtserkennung?
Das Gesicht einer Person ist ein eindeutiges Merkmal, welches jede Person einzigartig macht. Menschen können Personen Jahrzehnte nach der letzten Treffen anhand der charakteristischen Gesichtszüge wiedererkennen.
Ein neuronales Netz im Computer kann die gleiche Aufgabe meistern, indem sie ein aktuelles Bild mit einer „Registrierungsbild“, das Referenzbild, vergleicht.
Die Software fokussiert sich nicht auf Deine Hautfarbe, Schminke, Kopfbedeckung, Brille, Kleidung oder Schmuck, sondern sucht nach markante festen Punkten in Deinem Gesicht wie die Augenwinkel, die Nasenspitze, die Lippenkanten oder das Kinn.
Dabei sind die Proportionen der Punkte zueinander wichtig. Diese Punkte speichert sich die Software ab und nutzt diese als eine Erinnerung.
Gesichtserkennung vs. Passwort
Die Gesichtserkennung gehört zu dem Forschungsgebiet Biometrie innerhalb der IT-Sicherheit. Mit einer Gesichtserkennung kann eine Person am Computer sich anmelden (authentifizieren).
Ein Passwort ist eine „hartes“ Authentifizierungsart. Du musst das Passwort 1 zu 1 eingeben, sonst lässt Dich das System nicht passieren.
Eine Gesichtserkennung gilt als eine „weiche“ Authentifizierungsart. Weil unser Gesicht altert, darf die Software keinen 1 zu 1 Abgleich durchführen, sondern gibt eine Prozent an Ähnlichkeit an. Ist das Referenzbild zu 90 % ähnlich zu dem gezeigten Gesicht, dann geht die Software davon aus, dass die echte Person vor der Kamera steht. Der Schwellwert „90%“ ist je nach Modell unterschiedlich. Je tiefer dieser liegt, desto häufiger funktioniert der Login mit der legitimiere Person (Data Subject) reibungslos. Wenn die Schwelle zu tief liegt, können Kriminelle (Imposter) einen Angriff versuchen und sind erfolgreich.
Wie kann man eine Gesichtserkennung hacken?
Eine Gesichtserkennung kannst Du mit vielen Methoden angreifen.
Lang lebe der Flüchtigkeitsfeler
Du findest eine Schwachstelle in der Implementierung der Software. Jedes mathematische Verfahren ist nur so gut, wie seine Umsetzung. Wenn die Gesichtserkennungssoftware oder das Betriebssystem unsicher programmiert, dann ist die beste Gesichtserkennung nutzlos.
Der Präsentator
Du präsentierst auf einem Display oder Ausdruck das Gesicht der Person. Eine 3D-Referenz mit einem Infrarot-Punktenetz blockiert diese Form des Wiedergabe-Angriffs (Replay-Attack). Neuartige neuronale Netze können Displays und Ausdrucke von echten Personen unterscheiden.
Das letzte Mittel hilft immer?
Du hältst den Sensor über die schlafende oder tote Person, um den Zugang zu erhalten. Eine Lebend-Erkennung erkennt den Unterschied zwischen einem Kadaver-Auge, einer schlafenden Person und einer wachen Person. Eine Wärmebildkamera kann den Lichtsensor unterstützen und den Angriff abwehren.
Die Künstler sind besser als gedacht!
Du nutzt Schminke, um Dich mit allen Konturen und Gesichtsformen in eine andere Person zu verwandeln. Die Schminke muss die Software „ignorieren“, weil die Hautfarbe durch Sonnenbrand oder einen Moment der Bleichheit sich ändern kann. Das größte Problem sind Makeup-Artists, die sehr gut eine zweite Person „nachzeichnen“ können.
Gesichtserkennung im Alltag
Die Technologie ist nicht nur was für James-Bond-Filme, sondern heutzutage „fast“ kostenlos verfügbar. Nicht jeder Versuch mit der Software ist sofort erfolgreich, aber die Systeme werden von Jahr zu Jahr besser.
Anwendungsfälle
Eine Gesichtserkennung ist überall sinnvoll, wo Du Dich anmelden / authentifizieren musst.
- Anmelden am Computer
- Haustür öffnen
- Bahnticket kaufen
- Shoppen / Einkaufen
- Zahlung erlauben
- Zugang zu Sicherheitsäumen
Windows – Schneller anmelden
Das Betriebssystem Windows bietet die Software „Windows Hello“ für Computer mit normaler Webcam (mit Infrarot) an. Ein gutes System projiziert 100-te unsichtbare Infrarot-Punkte auf Dein Gesicht, um einen 3D-Abbild von Deinem Kopf zu machen. Der Login dauert in der Regel nur 1 – 5 Sekunden und Du kannst den Bildschirm mit einem Tastendruck entsperren.
iOS – Schneller Smartphone entsperren
Apples iOS bietet das ähnlich funktionierende „FaceID“-System an. Apple speichert Dein Gesicht lokal in einem sicheren Speicher (Secure Enclave) und nicht in der Cloud.
Eine Gesichtserkennung mit Sonnenbrille oder Maske ist möglich, aber erhöht die Fehlerrate drastisch. Der Algorithmus findet die meisten „Erkennungspunkte“ in der Augenregion.
Software zu Gesichtserkennung
Wenn Du selbst mit der Gesichtserkennung spielen willst, dann teste mal OpenCV und DeepFace aus. Die Open Source Bibliothek OpenCV basiert auf Python und ist ein Werkzeugkasten für Künstliche Intelligenz und Bilder.
Einfachheit siegt – Framework DeepFace
DeepFace ist ein Framework, welches mit wenigen Zeilen Code es möglich macht, die die Werkzeuge von OpenCV für einen Laien einzusetzen. Du brauchst keine Cloud oder krassen Computer, um eine Gesichtsauthentifizierung durchzuführen.
Lade dazu ein neues Referenzbild von Dir in den Arbeitsordner und nutzt die Webcam, um ein aktuelles Bild von Dir zu stellen. Lade die Bilder in DeepFace hinein und lasse das neuronale Netz „ArcFace“ rechnen.
Das Gehirn – ArcFace
Im Jahr 2024 ist ArcFace das beste frei künstliche Intelligenz-Model, welche Gesichter am besten erkennt. Das künstliche Intelligenz-Model Arcface misst ca. 140 MB. Alternativ ist MagFace eine gutes Modell.
Diese musst Du beim ersten Testlauf einmal laden. Nach dem ersten Laden findet einen Abgleich in unter 10 Sekunden statt. Als Ergebnis bekommst Du ein True oder False zurück.
Das Ergebnis – Binär oder Prozentual
Zusätzlich zu der binären Entscheidung liefert Dir das Ergebnis einen Prozent-Wert zurück. Der Algorithmus erkennt eine XX % Distanzwert zwischen den präsentierten Gesichtern. Überschreitet die Ähnlichkeit einen Schwellwert, dann gibt die Software True zurück.
Je nach Modell sind andere Schwellwerte empfohlen. Je höher Du diesen einstellst, desto härter haben es Kriminelle in das System zu kommen. Auf der anderen Seite kämpfen einige legitimierte Nutzer sich mit der Software, weil mit höheren Anforderungen ein scharfes und gut analysierbares Bild notwendig ist.
Schutz gegen Gesichtserkennung
Du trickst den Sensor mit scharfen Kanten und Kontrasten aus.
Die Software sucht im Gesicht nach markanten Punkten. Wenn der Algorithmus Dich nicht erkennen soll, klebe Dir kontrastreiche Dreiecke ins Gesicht.
Setze Dir eine Brille mit einem LED-Strahler auf, um einen Angriff abzuwehren. Die LED überbelichten das Bild, sodass dieser das Gesicht nicht mehr erkennen kann.
Limit von FaceID und Windows Hello
Die biometrische Erkennung und Kameratechnik bringst Du schnell an ihre Grenze, wenn Du Dich
- schnell bewegst (Motion Blur)
- die Aufnahme im Dunkeln stattfindet
- das Gesicht nicht frontal in die Kamera zeigt
- Du auffälligen Schmuck trägst, der kontrastreich zu Deiner Haut ist
- Verdeckt durch einen Gegenstand bist
- Jede Form der Gesichtsbedeckung – je mehr, desto besser
Wie kann ich mit als jemand anderes ausgeben?
Die Vorzeige-Angriffe habe ich bereits erklärt (Replay-Attack). Du kannst aber auch noch weiter gehen.
Ein gemorphtes Portrait ist eine Bild einer nicht-realen Person, die der Computer aus zwei Gesichtern erstellt. Der Mensch erkennt zu beiden Gesichtern eine Ähnlichkeit, kann aber die Fälschung erkennen.
Ein Computer arbeitet mit einer „% an Ähnlichkeit“. Deshalb erkennt der Computer im Idealfall beide Personen mit dem gleichen gemorphten Bild. Gemorphte Bilder sind so gefährlich, weil Kriminelle diese nutzen können, um unbemerkt reisen zu können.