Die FER+-Anmerkungen stellen eine Reihe neuer Beschriftungen für den Standard-Emotion-FER-Datensatz bereit. In FER+ wurde jedes Bild von 10 Crowd-Sourcing-Taggern gekennzeichnet, die eine qualitativ bessere Grundwahrheit für Standbildemotionen liefern als die ursprünglichen FER-Kennzeichnungen. Mit 10 Taggern für jedes Bild können Forscher die Emotionswahrscheinlichkeitsverteilung pro Gesicht abschätzen. Dies ermöglicht die Konstruktion von Algorithmen, die statistische Verteilungen oder Multi-Label-Ausgaben anstelle der herkömmlichen Single-Label-Ausgabe erzeugen, wie beschrieben in: https://arxiv.org/abs/1608.01041
Hier sind einige Beispiele der FER- vs. FER+-Etiketten, die aus dem oben genannten Papier entnommen wurden (FER oben, FER+ unten):
Die neue Etikettendatei heißt fer2013new.csv und enthält die gleiche Anzahl an Zeilen wie die ursprüngliche Etikettendatei fer2013.csv mit derselben Reihenfolge, sodass Sie ableiten können, welches Emotions-Tag zu welchem Bild gehört. Da wir den eigentlichen Bildinhalt nicht hosten können, finden Sie den Original-FER-Datensatz hier: https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data
Das Format der CSV-Datei ist wie folgt: Verwendung, neutral, Glück, Überraschung, Traurigkeit, Wut, Ekel, Angst, Verachtung, unbekannt, NF. Die „Verwendung“ der Spalten entspricht der ursprünglichen FER-Bezeichnung, um zwischen Schulungs-, öffentlichen Test- und privaten Testsätzen zu unterscheiden. Die anderen Spalten zeigen die Stimmenzahl für jede Emotion mit dem Zusatz „unbekannt“ und „NF“ (Kein Gesicht).
Wir stellen außerdem einen Trainingscode mit Implementierung für alle in https://arxiv.org/abs/1608.01041 beschriebenen Trainingsmodi (Mehrheit, Wahrscheinlichkeit, Kreuzentropie und Multi-Label) bereit. Der Trainingscode verwendet das MS Cognitive Toolkit (ehemals CNTK), verfügbar unter: https://github.com/Microsoft/CNTK.
Nachdem Sie Cognitive Toolkit installiert und den Datensatz heruntergeladen haben (wir besprechen als Nächstes das Datensatzlayout), können Sie einfach Folgendes ausführen, um mit dem Training zu beginnen:
python train.py -d -m majority
python train.py -d -m probability
python train.py -d -m crossentropy
python train.py -d -m multi_target
Es gibt einen Ordner mit dem Namen data, der das folgende Layout hat:
/data
/FER2013Test
label.csv
/FER2013Train
label.csv
/FER2013Valid
label.csv
label.csv in jedem Ordner enthält die eigentliche Beschriftung für jedes Bild. Der Bildname hat das folgende Format: ferXXXXXXXX.png, wobei XXXXXXXX der Zeilenindex der ursprünglichen FER-CSV-Datei ist. Hier also die Namen der ersten paar Bilder:
fer0000000.png
fer0000001.png
fer0000002.png
fer0000003.png
Die Ordner enthalten nicht die tatsächlichen Bilder. Sie müssen sie von https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data herunterladen und dann extrahieren Bilder aus der FER-CSV-Datei so, dass alle Bilder, die „Training“ entsprechen, in den Ordner „FER2013Train“ gehen, alle Bilder, die „PublicTest“ entsprechen, in den Ordner „FER2013Valid“ und alle Bilder, die „PrivateTest“ entsprechen, in den Ordner „FER2013Test“. Oder Sie können das Skript generate_training_data.py
verwenden, um alle oben genannten Schritte für Sie zu erledigen, wie im nächsten Abschnitt erwähnt.
Wir stellen ein einfaches Skript generate_training_data.py
in Python bereit, das fer2013.csv und fer2013new.csv als Eingaben verwendet, beide CSV-Dateien zusammenführt und alle Bilder in PNG-Dateien exportiert, damit der Trainer sie verarbeiten kann.
python generate_training_data.py -d -fer -ferplus
Wenn Sie das neue FER+-Label oder den Beispielcode oder Teile davon in Ihrer Recherche verwenden, geben Sie bitte Folgendes an:
@inproceedings{BarsoumICMI2016,
title={Training Deep Networks für die Erkennung von Gesichtsausdrücken mit Crowd-Source-Label-Verteilung},
Autor={Barsoum, Emad und Zhang, Cha und Canton Ferrer, Cristian und Zhang, Zhengyou},
booktitle={ACM International Conference on Multimodal Interaction (ICMI)},
Jahr={2016}
}