Tech-Talk: Gesichtserkennung mit Deep Learning für WSR
Einsatz künstlicher Intelligenz zur Gesichtserkennung im WSR-Projekt
Das Projekt Werteorientierter Schweizer Roboter entwickelt einen Roboter um Personen in Pflegeeinrichtungen an Therapien zu erinnern und auch dahin zu begleiten. Dafür muss das System eine Personen erkennen können.
Simon Luder zeigt auf, wie Gesichtserkennung mit Deep Learning eingesetzt werden kann, um diese Erkennung effizient durchzuführen. Dabei stellen sich verschiedene Herausforderungen. Eine Person kann nicht ganz im Bild sein, manchmal eine Brille tragen und manchmal nicht, verschiedene Gesichtsausdrücke haben, die Lichtverhältnisse können unterschiedlich sein und so weiter. Es ist wichtig diesen Unterschieden Rechnung zu tragen, um Personen nicht zu verwechseln.
Deep Learning mit DCNN (Deep Convolutional Neural Network) bietet sich für diese Problematiken an. Diese Netzwerke extrahieren Features (Eigenheiten eines Bildes) über mehrere Iterationen und sind nicht von der genauen Position eines Gesichts abhängig.
Um eine Person erkennen zu können, müssen deren Features bekannt sein. Dazu durchläuft das Bild einer Person eine Pipeline mit mehreren Schritten:
– Gesichtserkennung
– Begradigung des Gesichtes
– Encodierung der Features
Die so gefundenen Features eines Bildes werden als multidimensionale Vektoren gespeichert.
Der Roboter kann mit einem Vergleich die berechneten Feature Vektoren einer Person (welche er z.B. in einem Zimmer antrifft) mit denjenigen der gesuchten Person vergleichen und bestimmen ob sie nahe genug zusammen sind um wirklich die selben zu sein.
Es gibt verschiedene DCNN Modelle welche für diesen Prozess verwendet werden können. Welches davon sich am besten eignet, ist eine Abwägung zwischen Geschwindigkeit, Modellgrösse und Genauigkeit.
Anhand dieser Überlegungen wird für den Erkennungsschritt das RetinaFace Modell verwendet. Dieses geht in vier Schritten vor:
– Wo sind Gesichter vorhanden
– Bounding Boxes um Gesichter
– Facial Landmarks Erkennung (wo sind jeweils Augen, Nase und Mund)
– 3D-Mesh Erstellung (nicht relevant hier)
Das Modell wurde auf dem WIDER FACE Datensatz trainiert und deckt damit eine hohe Variabilität in Lichtverhältnissen, Posierungen, Verdeckungen usw. ab.
Für den Feature Vergleich wurden verschiedene Modelle und ihre Genauigkeit verglichen. Dabei war das ArcFace Modell klar am besten. Es führt zu den kleinsten Überlappungen von Feature Vektoren und damit zu weniger False-Positives.
Mit dem beschriebenen Prozess können Gesichter in verschiedenen Situationen schnell erkannt und verglichen werden.
Eine Beispielimplementation kann von Interessierten auf GitHub gefunden werden.
Tech-Talk: Simon Luder (simon.luder@fhnw.ch) Assistent und MSE Student
Blog-Beitrag: Sebastian Hugentobler (sebastian.hugentobler@fhnw.ch) Assistent und MSE Student
Kommentare
Keine Kommentare erfasst zu Tech-Talk: Gesichtserkennung mit Deep Learning für WSR