Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ss19:eigenfaces [2019/10/05 00:17] Labo [Fazit] |
ss19:eigenfaces [2021/01/05 23:43] (aktuell) Labo [Ergebnis] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Eigengesichter ====== | ====== Eigengesichter ====== | ||
Analysieren und Generieren von menschlichen Gesichtern mit Hilfe eines Autoencoder-Netzwerkes und einer Hauptkomponentenanalyse. | Analysieren und Generieren von menschlichen Gesichtern mit Hilfe eines Autoencoder-Netzwerkes und einer Hauptkomponentenanalyse. | ||
+ | |||
+ | Code: https://git.tu-berlin.de/labo/eigenfaces | ||
Gruppe: Lars Bonczek | Gruppe: Lars Bonczek | ||
Zeile 53: | Zeile 55: | ||
Ein CNN besteht aus einer Abfolge von je einer oder mehreren Convolutions, gefolgt von je einer Pooling-Schicht. Ist die Größe der Neuronen-Matrix ausreichend reduziert, folgen noch eine oder mehrere Fully-connected-Schichten, um die Daten abschließend auszuwerten und beispielsweise zu kategorisieren. Nach jeder Schicht folgt meist die ReLU-Aktivierungsfunktion, die definiert ist als $f(x)=\text{max}(0,x)$. | Ein CNN besteht aus einer Abfolge von je einer oder mehreren Convolutions, gefolgt von je einer Pooling-Schicht. Ist die Größe der Neuronen-Matrix ausreichend reduziert, folgen noch eine oder mehrere Fully-connected-Schichten, um die Daten abschließend auszuwerten und beispielsweise zu kategorisieren. Nach jeder Schicht folgt meist die ReLU-Aktivierungsfunktion, die definiert ist als $f(x)=\text{max}(0,x)$. | ||
===== Planung/Verlauf ===== | ===== Planung/Verlauf ===== | ||
+ | |||
+ | Protokoll in Stichpunkten: {{:ss19:eigenfaces_protokoll.pdf|}} | ||
Mein erster Schritt war es, eine einfache Hauptkomponentenanalyse von Porträtfotos durchzuführen. Dafür suchte ich mir im Internet einen öffentlich zugänglichen Datensatz von Fotos, die von einer Universität zu Forschungszwecken veröffentlicht wurden. Dann implementierte ich die Hauptkomponentenanalyse in Python. Dabei unterliefen mir einige Fehler, sodass die Ergebnisse zunächst nicht meinen Erwartungen entsprachen. | Mein erster Schritt war es, eine einfache Hauptkomponentenanalyse von Porträtfotos durchzuführen. Dafür suchte ich mir im Internet einen öffentlich zugänglichen Datensatz von Fotos, die von einer Universität zu Forschungszwecken veröffentlicht wurden. Dann implementierte ich die Hauptkomponentenanalyse in Python. Dabei unterliefen mir einige Fehler, sodass die Ergebnisse zunächst nicht meinen Erwartungen entsprachen. | ||
Zeile 240: | Zeile 244: | ||
Außerdem gibt es eine [[eigenfaces#Webanwendung]], die für eine beliebige Gesichts-Kodierung das entsprechende dekodierte Gesicht anzeigen kann. Die Parameter des kodierten Gesichts können mit Schiebereglern angepasst werden, sodass man in Echtzeit den Einfluss der Parameter auf das dekodierte Gesicht sieht. | Außerdem gibt es eine [[eigenfaces#Webanwendung]], die für eine beliebige Gesichts-Kodierung das entsprechende dekodierte Gesicht anzeigen kann. Die Parameter des kodierten Gesichts können mit Schiebereglern angepasst werden, sodass man in Echtzeit den Einfluss der Parameter auf das dekodierte Gesicht sieht. | ||
+ | |||
+ | Der aktuelle Code des Projektes ist auf [[https://git.tu-berlin.de/labo/eigenfaces|GitLab]] zu finden und kann dort auch als ZIP-Datei heruntergeladen werden. | ||
+ | |||
+ | Die zuletzt von mir trainierte Version des Autoencoders (trainiert mit gut 64.000 Bildern) inklusive der Ergebnisse der Hauptkomponentenanalyse kann [[https://tubcloud.tu-berlin.de/s/BgY73PWkQdLSjX3|hier]] heruntergeladen werden. Mit diesem Paket kann die Webanwendung ohne weitere Vorbereitungen (außer der [[eigenfaces#Webanwendung|Anpassung der Konfigurationsdatei]]) verwendet werden. Ein neuer Trainingsdatensatz mit gut 140.000 Bildern kann [[https://tubcloud.tu-berlin.de/s/Tp8tpP757tFP3yy|hier]] heruntergeladen werden. | ||
==== aligner.py ==== | ==== aligner.py ==== | ||