Nervenstark!

Kenne, was dich schwach macht. Konzentriere dich auf das, was dich stark macht! 
Weg von der "psychischen Störung" - hin zur Wertschätzung besonderer Gaben!

Eigengesichter

Eigengesichter (auch engl. Eigenfaces genannt) sind das Resultat eines Verfahrens zur automatisierten Gesichtserkennung. Als Methode des maschinellen Sehens ermöglichen Eigengesichter die Erkennung von einer vorab trainierten Menge menschlicher Identitäten in Echtzeit – verlangen jedoch ein sehr hohes Maß an Homogenität in Bezug auf Lichtverhältnisse, Größe der Bilder, Rotation und Skalierung des Gesichts. Aufgrund dieser hohen Sensibilität für Variation zwischen Trainingsdatensatz und tatsächlich zu klassifizierendem Gesicht werden Eigengesichter in der Praxis immer seltener zur Gesichtserkennung verwandt. Das 1991 entwickelte Verfahren gilt als die erste vollautomatisierte Gesichtserkennungstechnologie und stellte die Grundlage für eine Vielzahl an Weiterentwicklungen, industriellen Anwendungen und Inspirationen für alternative Ansätze dar[1]. Die Methode basiert auf der Hauptkomponentenanalyse und fällt daher, im Gegensatz zu moderneren Verfahren mittels Convolutional Neural Networks, in die Kategorie des unüberwachten Lernens.



Geschichte des Verfahrens

Grundlegende Entwicklung

Ein Kernproblem des maschinellen Sehens ist, dass ein Bild mit den Abmessungen M × N {\displaystyle M\times N} {\displaystyle M\times N} als Vektor in einem hochdimensionalen Raum mit M N {\displaystyle MN} {\displaystyle MN} Dimensionen betrachtet werden kann und diese immense Zahl an Freiheitsgraden (es gibt bereits 10 32 {\displaystyle 10^{32}} {\displaystyle 10^{32}} graustufige 8-bit Bilder der Größe 100 × 100 {\displaystyle 100\times 100} {\displaystyle 100\times 100} Pixel) Objekterkennung rein statistisch zu einem sehr schwierigen Problem macht. Die Hauptkomponentenanalyse (PCA) ist eine Methode, um einen kleinstmöglichen vektoriellen Unterraum zu finden, der die größtmögliche Menge an Varianz in den Daten repräsentiert und redundante Korrelationen eliminiert. Auf der Suche nach einer kompakteren Repräsentation von Bildern von Gesichtern, benutzten Sirovich und Kirby 1987 erstmals die Hauptkomponentenanalyse, um mithilfe der wichtigsten Hauptkomponenten als Basisvektoren eine geringer dimensionale Repräsentation zu erzeugen, deren Linearkombination die ursprünglichen Bilder effektiv rekonstruieren konnte[2]. Dabei werden mittels PCA die Richtungen der größten Varianz extrahiert, indem die Eigenvektoren und Eigenwerte der Kovarianzmatrix von der Wahrscheinlichkeitsverteilung über den hochdimensionalen Raum an möglichen Gesichtsbildern berechnet wird (vereinfacht gesagt die charakteristischsten Features der jeweiligen Gesichter). Vier Jahre später hatten Turk und Pentland das Verfahren weiterentwickelt, sodass Gesichter annähernd in Echtzeit klassifiziert und kategorisiert werden konnten, was einen Durchbruch in der Gesichtserkennungstechnologie darstellte[3]. Im Allgemeinen ist die Berechnung der Eigenvektoren der Korrelationsmatrix sehr zeitintensiv, da die Größe dieser quadratischen Matrix von der Bildqualität abhängt. Entscheidend für die Echtzeit-Berechnung war, dass Turk und Pentland eine Möglichkeit fanden die Eigenvektoren dieser hochdimensionalen Korrelationsmatrix zu berechnen, indem sie, die Eigenvektoren einer verwandten Matrix berechneten, deren Größe nur mit der Menge an Bildern in dem Datenset skaliert (Details im Abschnitt Beschreibung des Verfahrens).

Weiterentwicklungen

Das ursprüngliche Verfahren hat eine Reihe an offensichtlichen Schwächen (Details weiter unten), die durch Verbesserungen zu kompensiert gesucht wurden. Es werden exemplarisch genannt:

Pentland et al. stellten 1994 mit View-Based Eigenfaces einen Ansatz vor, der separate Eigenräume für unterschiedliche mimische Ausdrücke von Gesichtern erstellt, damit die Gesichtserkennung nicht auf neutrale Ausdrücke beschränkt bleibt[4].

In derselben Arbeit wurde ein modularer Eigenfeature Framework beschrieben, der unterschiedliche Eigenräume für bestimmte Komponenten des Gesichts berechnet und die resultierenden Eigennasen, Eigenaugen und weitere Features benutzt um eine „grobe“ Eigengesichtrepräsentation zu verfeinern.

Um Klassifizierung von Gesichtern zu optimieren (anstatt maximal kompakte Repräsentationen zu erzeugen), können Fishergesichter (engl. Fisherfaces) anstatt von Eigengesichtern verwandt werden – basierend auf Linear Discriminant Analysis[5].

Local Binary Patterns Histograms (LBPH). Eigenfaces und Fisherfaces sind stark abhängig von den Lichtverhältnissen. Dieser Nachteil wird mit Hilfe der LBPH-Gesichtserkennung überwunden.[6]

Software

In der freien Software-Bibliothek zur Bildverarbeitung OpenCV sind Eigenfaces, Fisherfaces und LBPH implementiert.[7]

Beschreibung des Verfahrens
Eigengesichter werden erzeugt mittels der Hauptkomponentenanalyse (PCA).

Anleitung zur praktischen Implementation

Angenommen, man hat einen Datensatz mit K = 16 {\displaystyle K=16} {\displaystyle K=16} Bildern von Gesichtern, sodass jedes Bild die Abmessungen M × N {\displaystyle M\times N} {\displaystyle M\times N} hat (beispielsweise M = N = 300 {\displaystyle M=N=300} {\displaystyle M=N=300}, also besteht jedes Bild aus 90.000 {\displaystyle 90.000} {\displaystyle 90.000} Pixeln). Damit die Methodik funktioniert, müssen die Bilder unter ähnlichen Lichtverhältnissen aufgenommen worden sein und dieselben Bestandteile (Auge, Nase, Mund etc.) an denselben Positionen liegen. Dann ist die Prozedur wie folgt:
1. Die einzelnen Bilder I 1 , . . . , I K {\displaystyle I_{1},...,I_{K}} {\displaystyle I_{1},...,I_{K}} werden von einer Matrix zu einem Vektor mit 90.000 Dimensionen umgeformt, sodass I i ∈ R M N ∀ i ≤ K {\displaystyle I_{i}\in \mathbb {R} ^{MN}\forall i\leq K} {\displaystyle I_{i}\in \mathbb {R} ^{MN}\forall i\leq K}.
2. Es wird ein Durchschnittsgesicht I ¯ {\displaystyle {\bar {I}}} {\displaystyle {\bar {I}}} aus dem gesamten Trainingsdatensatz berechnet:
I ¯ = 1 K ∑ i = 1 K I i {\displaystyle {\bar {I}}={\frac {1}{K}}\sum _{i=1}^{K}I_{i}} {\displaystyle {\bar {I}}={\frac {1}{K}}\sum _{i=1}^{K}I_{i}}.
3. Dieses Durchschnittsgesicht wird von jedem Bild aus dem Trainingsdatensatz abgezogen:
Φ i = I i − I ¯ {\displaystyle \Phi _{i}=I_{i}-{\bar {I}}} {\displaystyle \Phi _{i}=I_{i}-{\bar {I}}}.
4. Nun konkateniert man die Differenzgesichter Φ i {\displaystyle \Phi _{i}} {\displaystyle \Phi _{i}} zu einer Matrix A = [ Φ 1 Φ 2 ⋯ Φ K ] ∈ R M N × K {\displaystyle A=[\Phi _{1}\Phi _{2}\cdots \Phi _{K}]\in \mathbb {R} ^{MN\times K}} {\displaystyle A=[\Phi _{1}\Phi _{2}\cdots \Phi _{K}]\in \mathbb {R} ^{MN\times K}}.
5. Die Kovarianzmatrix C {\displaystyle C} C wird berechnet:
C = A A T {\displaystyle C=AA^{T}} {\displaystyle C=AA^{T}}
Nun speichert C ∈ R M N × M N {\displaystyle C\in \mathbb {R} ^{MN\times MN}} {\displaystyle C\in \mathbb {R} ^{MN\times MN}} auf der Hauptdiagonalen die Varianzen der einzelnen Pixel über den gesamten Datensatz und abseits der Hauptdiagonalen an Position i , j {\displaystyle i,j} i,j die Kovarianz von Pixel i {\displaystyle i} i mit Pixel j {\displaystyle j} j über den gesamten Datensatz.
6. Als nächstes berechnet man die Eigenvektoren und Eigenwerte der Kovarianzmatrix C {\displaystyle C} C. Die Eigenvektoren der Kovarianzmatrix C {\displaystyle C} C haben die gleiche Dimensionalität wie die Originalbilder. Turk und Pentland nannten sie wegen ihres gesichtsähnlichen Aussehens Eigengesichter.
7. Die Eigenvektoren werden absteigend nach der absoluten Größe der Eigenwerte sortiert, sodass die ersten Eigenvektoren die meiste Varianz erfassen. Die Menge k < K {\displaystyle k<K} {\displaystyle k<K} der berücksichtigten Eigengesichter wird nun recht willkürlich auf Basis eines Schwellenwertes für die kumulierte erklärte Varianz getroffen.
8. Die Eigengesichter können nun benutzt werden, um bekannte oder neue Gesichter kompakt zu repräsentieren und später zu rekonstruieren oder um die Identität einer Person zu bestimmen.
Geschwindigkeitsproblematik
Das Berechnen der Eigenvektoren aus C {\displaystyle C} C ist in der Regel aus zwei Gründen nicht ohne Weiteres möglich. Erstens: Da C ∈ R M N × M N {\displaystyle C\in \mathbb {R} ^{MN\times MN}} {\displaystyle C\in \mathbb {R} ^{MN\times MN}}, erhält man schon bei Bildern der Größe 300 × 300 {\displaystyle 300\times 300} {\displaystyle 300\times 300} Pixeln eine Kovarianzmatrix der Größe 90.000 {\displaystyle 90.000} {\displaystyle 90.000} erzeugt, dessen Eigenvektoren sich nicht in zufriedenstellender Zeit berechnen lassen. Zweitens gilt im Allgemeinen, dass r a n g ( C ) = r a n g ( A A T ) = r a n g ( A ) ≤ min { M N , K } {\displaystyle \mathrm {rang} (C)=\mathrm {rang} (AA^{T})=\mathrm {rang} (A)\leq \min\{MN,K\}} {\displaystyle \mathrm {rang} (C)=\mathrm {rang} (AA^{T})=\mathrm {rang} (A)\leq \min\{MN,K\}}. Weil nun im speziellen Fall der Berechnung von Eigengesichtern in der Regel K < M N {\displaystyle K<MN} {\displaystyle K<MN} gilt, das Trainingsset also weniger Bilder als jedes Bild Pixel enthält, hat C {\displaystyle C} C keinen vollen Rang und dementsprechend sind einige Eigenwerte gleich Null. In der Regel gibt es exakt K − 1 {\displaystyle K-1} {\displaystyle K-1} tatsächliche Eigenvektoren. Statt diese nun mit extremen Rechenaufwand anhand von C {\displaystyle C} C zu berechnen, benutzten Turk and Pentland einen Trick, der Echtzeit-Lokalisierung und Erkennung von Gesichtern ermöglicht: Man berechnet die K − 1 {\displaystyle K-1} {\displaystyle K-1} Eigenvektoren einer neuen Matrix L {\displaystyle L} L, die wie folgt definiert ist:
L := A T A ∈ R K × K {\displaystyle L:=A^{T}A\in \mathbb {R} ^{K\times K}} {\displaystyle L:=A^{T}A\in \mathbb {R} ^{K\times K}}
Die Eigenvektoren von L {\displaystyle L} L lassen sich in einem Bruchteil der Zeit berechnen, da L {\displaystyle L} L viel kleinere Dimension als C {\displaystyle C} C hat. Bei einem Trainingsset von K = 16 {\displaystyle K=16} {\displaystyle K=16} Bildern der Größe 300 × 300 {\displaystyle 300\times 300} {\displaystyle 300\times 300} hat L {\displaystyle L} L nur noch die Größe 16 × 16 {\displaystyle 16\times 16} {\displaystyle 16\times 16}, anstatt der ursprünglichen Größe von 90.000 × 90.000 {\displaystyle 90.000\times 90.000} {\displaystyle 90.000\times 90.000}. Die Berechnung der Eigenvektoren von C {\displaystyle C} C auf L {\displaystyle L} L zu verlagern gilt aufgrund des Folgenden:
Sei die Eigenwertzerlegung von C {\displaystyle C} C, gegeben durch
C v i = A A T v i = λ i v i {\displaystyle Cv_{i}=AA^{T}v_{i}=\lambda _{i}v_{i}} {\displaystyle Cv_{i}=AA^{T}v_{i}=\lambda _{i}v_{i}}
gesucht. Weil A A T ∈ R M N × M N {\displaystyle AA^{T}\in \mathbb {R} ^{MN\times MN}} {\displaystyle AA^{T}\in \mathbb {R} ^{MN\times MN}} eine zu große Matrix ist, betrachten wir stattdessen die Eigenwertzerlegung von L {\displaystyle L} L:
L u i = A T A u i = λ i u i {\displaystyle Lu_{i}=A^{T}Au_{i}=\lambda _{i}u_{i}} {\displaystyle Lu_{i}=A^{T}Au_{i}=\lambda _{i}u_{i}}
Bei linksseitiger Multiplikation der Gleichung mit A {\displaystyle A} A ergibt sich
A A T A u i = λ i A u i {\displaystyle AA^{T}Au_{i}=\lambda _{i}Au_{i}} {\displaystyle AA^{T}Au_{i}=\lambda _{i}Au_{i}}
Sei nun v i := A u i {\displaystyle v_{i}:=Au_{i}} {\displaystyle v_{i}:=Au_{i}}, so ergibt sich aus der Eigenwertzerlegung von L {\displaystyle L} L eindeutig die gesuchte Eigenwertzerlegung von C {\displaystyle C} C. Die somit erhaltenen Vektoren v i {\displaystyle v_{i}} v_{i} sind die Eigenvektoren von C {\displaystyle C} C, wobei uns nur die K ′ {\displaystyle K'} K' v {\displaystyle v} v's mit den höchsten Eigenwerten interessieren. Die u {\displaystyle u} u's müssen orthonormal sein, d. h. sie müssen noch normalisiert werden.

Interpretation der Eigengesichter

Die Eigengesichter sind die resultierenden Eigenvektoren v i {\displaystyle v_{i}} v_i der Korrelationsmatrix C {\displaystyle C} C. Eigengesichter sind generische Gesichter in dem Sinne, dass tatsächliche Gesichter durch Linearkombination der Eigengesichter rekonstruiert werden können. Bei einem hinreichend großen Datensatz könnte also jedes menschliche Gesicht durch eine Kombination von diesen standardisierten Gesichtern dargestellt werden. Anhand der rechterhand dargestellten Eigengesichter wird deutlich, dass verschiedene Eigengesichter verschiedene Eigenschaften (features) der Trainingsbilder encodieren. Während die oberen Eigengesichter Teile der Frisur widerspiegeln, repräsentiert das Gesicht unten links die Ausleuchtung des Hintergrunds und das Gesicht unten rechts die Richtung des Lichteinfalls.
Um die Eigengesichter zu visualisieren, müssen sie zunächst von Vektor- zu Matrixnotation umgewandelt werden. Es ist üblich, die Eigengesichter nach dem Absolutbetrag der zugehörigen Eigenwerte λ i {\displaystyle \lambda _{i}} \lambda_i zu ordnen, sodass die ersten Eigengesichter die Positionen größter Varianz darstellen und die Relevanz der folgenden Eigengesichter graduell abfällt. Mathematisch gesehen wird durch PCA das Koordinatensystem so rotiert, dass die Achsen des neuen Koordinatensystems (die Eigengesichter) in Richtung der größten Varianz der durch die Trainingsdaten gegebenen Mannigfaltigkeit liegt.

Kompression und Rekonstruktion von Gesichtern

Eigengesichter ermöglichen es, Bilder in sehr kompakter Form zu speichern, indem jedes Trainingsbild in den durch die Eigengesichter aufgespannten Eigenraum projiziert wird. Dies kann durch eine simple Multiplikation des Bildvektors mit der Eigengesichtermatrix erreicht werden und resultiert in einem Vektor der Länge K {\displaystyle K} K anstatt der ursprünglichen Matrix der Größe M × N {\displaystyle M\times N} {\displaystyle M\times N}. Da in der Regel sogar nur auf die k < K {\displaystyle k<K} {\displaystyle k<K} wichtigsten Eigengesichter projiziert wird, ist die tatsächliche Repräsentation eines Bildes noch kompakter. Die tatsächlichen Trainingsbilder können nun durch eine Linearkombination der k < K {\displaystyle k<K} {\displaystyle k<K} wichtigsten Eigengesichter rekonstruiert werden. Dabei verkleinert sich der Rekonstruktionsfehler je mehr Eigengesichter zur Rekonstruktion verwandt werden. Beispielsweise könnte für das erste Trainingsbild Φ i {\displaystyle \Phi _{i}} {\displaystyle \Phi _{i}} gelten: Φ i = 0.15 v 1 + 0.42 v 2 + . . . + 0.2 v k {\displaystyle \Phi _{i}=0.15v_{1}+0.42v_{2}+...+0.2v_{k}} {\displaystyle \Phi _{i}=0.15v_{1}+0.42v_{2}+...+0.2v_{k}} (also 15 % des ersten Eigengesichts plus 42 % des zweiten und so weiter).
Die nebenstehende Grafik (folgt zeitnah) verdeutlicht den Einfluss einer wachsenden Zahl zur Rekonstruktion verwandter Eigengesichter. In jeder Spalte wurde versucht das gleiche Bild zu rekonstruieren. In der ersten Zeile wurde dafür nur das erste Eigengesicht verwandt, in der zweiten Zeile die erste 5 Eigengesichter, in der dritten Zeile die ersten 10 Eigengesichter und in der letzten Zeile wurden alle Eigengesichter verwandt. Obwohl die Gesichter weiter unten besser zu erkennen sind, fällt selbst in diesem Beispiel auf, dass der Rekonstruktionsfehler schnell einen Sättigungspunkt erreicht.
Eigengesichter zur Identitätserkennung
Eigengesichter können auf sehr elegante Art und Weise zur Erkennung von vorab trainierten Identitäten verwandt werden. Dies geschieht, indem eine dem Algorithmus unbekannte Aufnahme einer bekannten Person in den durch die Eigengesichter erzeugten Eigenraum projiziert wird. Der resultierende Vektor kann nun mittels klassischer, vektorieller Abstandsmessung (z.Bsp. Euklidische Norm) mit allen Bildern aus der Trainingsdatenbank verglichen werden. Mittels K-Nächste-Nachbarn oder ähnlichen Klassifikationsverfahren kann dann die Identität der unbekannten Aufnahme bestimmt werden.

Verallgemeinerung von Eigengesichtern zu Eigenbildern

Das Konzept von Eigengesichtern lässt sich problemlos verallgemeinern auf alle andere Arten von Bildern (Eigenbilder, englisch: eigenimages). Der Begriff Eigengesichter hat sich nur etabliert aufgrund der Tatsache, dass die erste mittels Eigenbilder untersuchte Anwendung die Erkennung von Gesichtern war. Beispielsweise können aus einer Menge an Bildern, die dasselbe Objekt aus verschiedenen Blickwinkeln, Distanzen und Lichtverhältnissen zeigt, die Eigenbilder extrahiert werden, um eine möglichst transformationsinvariante Objektrepräsentation zu erzeugen, die dann für top-down Objekterkennungsalgorithmen wie Template Matching oder Drahtgittermodelle benutzt werden kann. Ein anderes Beispiel wäre eine Sequenz an Bildern, die zeigt wie eine beobachtete, statische Szene sich aufgrund von Mikrosakkaden auf der Retina hin und her bewegt. Auch hier zeigen die Eigenbilder die besonders invarianten Bestandteile der Szene.[8]Weitere Anwendungen von Eigenbildern sind im Lippenlesen, in Sprecherauthentifizierung, Bildgebenden Verfahren oder Handschrifterkennung.

Zusammenfassung

Pro

Der Trainingsprozess ist vollautomatisch, unüberwacht und simpel zu implementieren.

Sobald der Trainingsprozess abgeschlossen ist, kann Gesichtserkennung in Echtzeit erfolgen.

Eigengesichter können mit großen Datenbanken an Trainingsbildern umgehen (scalability).

Eigengesichter sind optimal (in Bezug auf Varianz) komprimierte Repräsentationen von hochdimensionalen Bildern von Gesichtern.

Kontra

Hohe Sensibilität für Variation in Lichtverhältnissen, Rotation und Skalierung des Gesichts, Gesichtsausdruck, Verdeckungen und Größe des Bildes. Dementsprechend müssen die Bedingungen unter denen die Bilder aufgenommen werden, sehr präzise kontrolliert werden.

In praktischen Anwendungen repräsentieren die ersten Eigengesichter in der Regel Variation in den Lichtverhältnissen und nicht Variation in den Gesichtern selbst. Um die Präzision des Algorithmus zu verbessern, werden oft die ersten 3 Eigengesichter ignoriert.

Einzelnachweise

1) Shang Zeng and Matthew Turk: Eigenfaces. Scholarpedia Artikel, 2008, abgerufen am 1. Januar 2018 (englisch).

2) Lawrence Sirovich, Michael Kirby: Low-dimensional procedure for the characterization of human faces. (PDF) Journal of the Optical Society of America, 1987, S. 509–524, abgerufen am 1. Januar 2018 (englisch).

3) Matthew Turk, Alex Petland: Eigenfaces for Recognition. (PDF) Journal of Cognitive Neuroscience, 1991, S. 71–86, abgerufen am 1. Januar 2018 (englisch).

4) A. Pentland et al.: View-based and modular eigenspaces for face recognition. Proceedings of CVPR, 1994, abgerufen am 1. Januar 2018 (englisch).

5) P.B. Belhumeur et al.: Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection. (PDF) IEEE Transactions on Pattern Analysis and Machine Intelligence, Juli 1997, abgerufen am 1. Januar 2018 (englisch).

6) Ramiz Raja: Face Detection using OpenCV and Python. Super Data Science, 3. August 2017, abgerufen am 24. Januar 2019 (englisch).

7) OpenCV documentation: Face Recognition with OpenCV. Abgerufen am 24. Januar 2019 (englisch).

8) Born, J. et al.: Hebbian Learning of Hand-Centred Represenations in a Hierarchical Neural Network Model of the Primate Visual System. PLOS ONE, Mai 2017, abgerufen am 1. Januar 2018 (englisch).

(Quelle: https://de.wikipedia.org/wiki/Eigengesichter. Abgerufen am 06.01.2021)