Tech Updates

Published on Mar 19, 2020

Was ist Gesichtserkennung?

Derzeit wird nicht nur in der EU viel über die Rechtmäßigkeit und die Regulierung von Gesichtserkennungs-Technologien diskutiert. Dieser Beitrag beschäftigt sich nicht mit der rechtlichen Situation, stattdessen möchte ich einen kurzen Einblick in den technologischen Hintergrund der Gesichtserkennung geben, wie sie funktioniert und wie die gleiche Technologie in anderen Themengebieten angewandt wird.

Dieser Artikel richtet sich an all diejenigen, die sich eine Meinung zu diesem kontroversen Thema bilden wollen und daher eine Einführung in den technischen Hintergrund anstreben.

Es ist keine einfache Materie

Die Gesichtserkennung ist keine einzelne Technologie, sondern eine Mischung aus vielen zusammenwirkenden Algorithmen, jeder einzelne davon wird auch (und meist sogar hauptsächlich) in anderen Gebieten angewandt.

Wo sind Gesichter sichtbar?

Der erste Schritt in vielen Bildverarbeitungsapplikationen ist die Suche nach dem Objekt, das analysiert werden soll. Im Allgemeinen heißen diese Algorithmen „Objektdetektoren“, sie bekommen ein Bild als Eingabewert und bestimmen die Koordinaten von den Objekten, die sie gefunden haben.
Im Falle der Gesichtsdetektion ist das Ziel dieser Algorithmen das Auffinden von Gesichtern in Bild- oder Video- Material. In diesem Schritt passiert noch keine Personenbezogene Analyse, es wird nur die Position von Gesichtern extrahiert.

Wohin bewegen sich die Gesichter?

In den allermeisten Fällen werden Gesichtserkennungsalgorithmen auf Videomaterial (z.B. direkt von Kameras) angewandt. Dabei ergibt sich die nächste Herausforderung: Echtzeitfähigkeit. Technisch bedeutet dies, dass wenn beispielsweise eine Kamera mit den handelsüblichen 30fps (frames per second, dt.: Bilder pro Sekunde) Bilder liefert, so muss die Verarbeitung jedes Bildes in 1/30 Sekunden (ca. 35ms) geschehen. Dies kann vor allem auf schwächeren Endgeräten (z.B. Mobiltelefone oder Stichwort „edge computing“) eine große Herausforderung sein.

Die oben erwähnte Objektdetektion ist einer der aufwändigsten Schritte in der Gesichtserkennung in Bezug auf die Laufzeit. Daher wendet man oft sog. Objekt-Tracker an. Diese können für sich alleine keine Objekte finden, können aber ein bereits gefundenes Objekt (im Konkreten ein Gesicht) in einem Videostream über die Zeit verfolgen. Dies ermöglicht es, die folgenden Schritte der Gesichtserkennung auzszuführen, selbst wenn die Hardware eine Gesichtsdetektion auf jedem Einzelbild nicht ermöglicht.

Wie ist das Gesicht ausgerichtet?

Nachdem wir nun alle Gesichter gefunden haben und in der Lage sind, diese über die Zeit zu verfolgen, ist der nächste Schritt die Analyse der Gesichter (z.B. für die Identifikation der Person). Um diesen technisch sehr schweren Schritt zu vereinfachen, wendet man sog. Vorverarbeitungs-Algorithmen an. Im Falle der Gesichteserkennung ist das Ziel dieser Algorithmen, alle Faktoren aus den Bildern zu entfernen, die keinen Einfluss auf das Endergebnis haben sollen.

Ist es zum Beispiel das Ziel, eine Person zu identifizieren, so sollte es auf das Endergebnis keinen Einfluss haben, ob die Person gerade nach links oder rechts schaut. Hierfür werden zuerst Orientierungspunkte (z.B. Nasenspitz oder Augenwinkel) im Gesicht der Person gesucht und dann das Bild durch Ausrichtung eben dieser Normalisiert. Das heißt, nach diesem Schritt befinden sich die Augen und die Nase der Person immer an exakt der gleichen Stelle des Bildes, unabhängig davon, in welche Richtung die Person ursprünglich geblickt hat.

Technisch gesehen wird dies üblicherweise mit Hilfe eines Machine-Learning-Konzeptes namens „Regression“ durchgeführt – Algorithmen dieser Art bekommen ähnlich wie Objektdetektoren ein Bild als Eingabewert und liefern direkt die Koordinaten von den Orientierungspunkten.

Wie sieht das Gesicht aus?

Dies ist das eigentliche Herzstück jedes Gesichtserkennungssystems, aber auch das am schwersten zu fassende. Stellen Sie sich vor, Sie müssten einer Person ein Gesicht beschreiben. Vermutlich würden Sie sich eine Reihe von Kriterien überlegen, mit denen Sie das Gesicht beschreiben könnten. Z.B. könnten Sie den Augenabstand, die Nasenform, die Breite des Mundes usw. für die Beschreibung verwenden.

Aber – sind dies gute Kriterien, um ein Gesicht zu beschreiben? Für uns Menschen ja, für einen Algorithmus vermutlich nicht. Deshalb geht man hier einen anderen Weg: Anstatt dem Algorithmus solche Kriterien vorzugeben, lässt man ihn selbst die Kriterien lernen, indem man ihm Millionen von Gesichtern zeigt. Das Ergebnis ist eine Liste von Werten, die der Algorithmus verwenden kann, um ein Gesicht zu beschreiben – für uns Menschen sind diese Werte allerdings nicht interpretierbar.

Technisch können dies zum Beispiel 128 mehr oder weniger zufällig anmutende Zahlen sein, die aber eine interessante Eigenschaft aufweisen: wenn wir die Zahlen von zwei Bildern derselben Person erhalten, dann sind diese Zahlen ähnlich; wenn wir sie von zwei verschiedenen Personen erhalten, dann sind sie (hoffentlich) nicht ähnlich.

Das Konzept dahinter nennt sich im Kontext des Machine Learnings „Embedding“.

Wer ist die Person?

Alle Personen, die von einem Gesichtserkennungs-System erkannt werden sollen, müssen in einer Registrierungsphase zuerst erfasst werden. Dazu werden die oben beschriebenen Merkmale auf üblicherweise 1-5 Fotos der Person berechnet und in einer Datenbank gespeichert. Will man nun ein aktuell sichtbares Gesicht einer Person zuordnen, werden die Merkmale mit dieser Datenbank verglichen, sodass man die Ähnlichkeit mit den registrierten Personen bestimmen kann.

Vor diesem Hintergrund ist es ganz einfach, den Unterschied zwischen Verifikation und Identifikation zu erkennen. Die Verifizierung ist der viel einfachere Fall, bei dem man das aktuell sichtbare Gesicht (und damit die aktuellen Merkmale) mit einem einzigen Eintrag in der Datenbank vergleicht und somit die Frage “Ist Person A wirklich aktuell im Bild?” beantwortet. Die Identifikation hingegen ist die Beantwortung der Frage “Wer ist die Person, die sich gerade vor der Kamera befindet?” Um dies zu beantworten, müssen die Merkmale mit jedem einzelnen Eintrag in einer potenziell großen Gesichtsdatenbank verglichen werden.

Gesichtserkennung außerhalb des Überwachungssystems

Die Gesichtserkennung und -verfolgung kann und wird in vielen oft nicht offensichtlichen Anwendungen eingesetzt, die nichts mit Überwachung zu tun haben. So kann diese Technologie für die vollautomatische Schwärzung (d.h. Anonymisierung) von Bildern und Videos verwendet werden – siehe z.B. Google Streetview. Die Erkennung von Gesichtsmarkierungen wird beispielsweise bei der Lächelerkennung in modernen Kameras oder bei der Erkennung “geschlossener Augen” von Bildbearbeitungssoftware eingesetzt.

Auch kann die Gesichtserkennung praktische Anwendungen außerhalb der Überwachung haben: die Markierung von Personen in persönlichen Fotosammlungen oder die Automatisierung in Smart Home-Anwendungen.

Über die Gesichtserkennung hinaus

Jeder Baustein eines Gesichtserkennungssystems hat eine Menge Anwendungen außerhalb des Anwendungsfalles der Gesichtserkennung, und wird in den meisten Fällen tatsächlich hauptsächlich außerhalb der Gesichtserkennung eingesetzt. Objekterkennung und -verfolgung bilden die Grundlage für eine Vielzahl von industriellen Anwendungen wie z.B. Überwachung von Produktionslinien, visuell basierten QA oder Infrastrukturinstallationen (z.B. Verkehrsanalyse) und ist ein zentrales Sicherheitsmerkmal bei selbstfahrenden Autos (z.B. Erkennung und Umgehung von zu Fuß Gehenden, Verkehrszeichenerkennung).

Embeddings werden zur Verarbeitung natürlicher Sprache (NLP, natural language processing), in Empfehlungsmechanismen, in Werkzeugen zur Erkennung von Anomalien oder als ein Schritt zur Vorverarbeitung in verschiedenen Visualisierungen in datengetriebenen Anwendungen verwendet.

Gesichtserkennung bei Cloudflight

Wir haben in den letzten Jahren eine Vielzahl von Anwendungen entwickelt, sowohl für den internen Gebrauch als auch für unsere Kundschaft, von denen keine jedoch im Zusammenhang mit der Überwachung steht. Beispiele dafür sind automatische Live-Video-Anonymisierung, die die Privatsphäre von Personen bei der Aufnahme von Videos in öffentlichen Räumen gewährleisten, oder intelligente Anzeigen, die in unserem Büro installiert sind und personalisierte Informationen in Abhängigkeit von der Person vor ihnen anzeigen.

Wie viele andere Anwendungen der künstlichen Intelligenz haben Gesichtserkennungssysteme ein breites Spektrum von Anwendungsfällen außerhalb der offensichtlichen – und oft nur diskutierten – Überwachungsanwendung.

Wir organisieren ‘Get inspired’-Evens und erstellen regelmäßig Blog-Einträge, um einen Überblick über unser Portfolio und unsere Erfahrungen zu geben. Lassen Sie sich von uns inspirieren – schauen Sie sich den Veranstaltungsteil auf unserer Website an und besuchen Sie uns in unseren Büros. In all unseren Beiträgen und Veranstaltungen möchten wir Ihnen vorstellen, wer wir sind, wie wir über den Tellerrand hinausschauen, wie wir in unserem „Cloudflight Way“ denken und welche Möglichkeiten sich uns eröffnen. Folgen Sie uns online und vor Ort!