Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,120 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: mit
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
tags:
|
| 4 |
+
- emotion-detection
|
| 5 |
+
- image-classification
|
| 6 |
+
- computer-vision
|
| 7 |
+
- resnet
|
| 8 |
+
datasets:
|
| 9 |
+
- custom
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# emotion_model-thoeppner
|
| 13 |
+
|
| 14 |
+
Dieses Modell ist eine feinjustierte Version von `resnet-18` für einen benutzerdefinierten Emotionsdatensatz. Es erzielt die folgenden Ergebnisse auf der Validierungsmenge:
|
| 15 |
+
|
| 16 |
+
- **Loss**: 0.8515
|
| 17 |
+
- **Accuracy**: 71.60 %
|
| 18 |
+
|
| 19 |
+
## Modell Beschreibung
|
| 20 |
+
|
| 21 |
+
Das Modell basiert auf der ResNet-18 Architektur und wurde mithilfe von PyTorch auf einem Emotionsdatensatz trainiert. Ziel war es, ein robustes Klassifikationsmodell zur Erkennung von 9 Emotionen in Gesichtern zu entwickeln.
|
| 22 |
+
|
| 23 |
+
## Einsatzbereiche und Einschränkungen
|
| 24 |
+
|
| 25 |
+
**Verwendungszweck:**
|
| 26 |
+
|
| 27 |
+
- Klassifizierung von Emotionen zu Bildungs-, Analyse- oder Demonstrationszwecken
|
| 28 |
+
- Kann in Gradio-Anwendungen zur Emotionserkennung auf hochgeladenen Gesichtern genutzt werden
|
| 29 |
+
|
| 30 |
+
**Einschränkungen:**
|
| 31 |
+
|
| 32 |
+
- Nicht geeignet für Emotionen außerhalb der 9 trainierten Klassen
|
| 33 |
+
- Erkennung kann bei schlechten Lichtverhältnissen, verdeckten Gesichtern oder untypischen Gesichtsausdrücken ungenau sein
|
| 34 |
+
- Modell benötigt klare, frontal aufgenommene Gesichter für optimale Ergebnisse
|
| 35 |
+
|
| 36 |
+
## Trainings- und Evaluationsdaten
|
| 37 |
+
|
| 38 |
+
Das Modell wurde auf einem privaten Emotionsdatensatz mit **64 864** Bildern in **9 Klassen** trainiert.
|
| 39 |
+
|
| 40 |
+
**Klassen:**
|
| 41 |
+
|
| 42 |
+
- happy
|
| 43 |
+
- sad
|
| 44 |
+
- angry
|
| 45 |
+
- surprised
|
| 46 |
+
- fear
|
| 47 |
+
- disgust
|
| 48 |
+
- neutral
|
| 49 |
+
- contempt
|
| 50 |
+
- unknown
|
| 51 |
+
|
| 52 |
+
**Aufteilung des Datensatzes:**
|
| 53 |
+
|
| 54 |
+
- 80 % Training
|
| 55 |
+
- 20 % Validierung (interner Split)
|
| 56 |
+
|
| 57 |
+
## Training der Hyperparameter
|
| 58 |
+
|
| 59 |
+
Die folgenden Hyperparameter wurden beim Training verwendet:
|
| 60 |
+
|
| 61 |
+
| Hyperparameter | Wert |
|
| 62 |
+
|-----------------------|----------------|
|
| 63 |
+
| Optimizer | Adam |
|
| 64 |
+
| Learning Rate | 0.0005 (mit ReduceLROnPlateau Scheduler) |
|
| 65 |
+
| Batch Size | 64 |
|
| 66 |
+
| Loss Function | CrossEntropyLoss |
|
| 67 |
+
| Early Stopping | nach 5 Epochen ohne Verbesserung |
|
| 68 |
+
| Maximale Epochen | 6 |
|
| 69 |
+
| Eingabebildgröße | 224 × 224 Pixel |
|
| 70 |
+
|
| 71 |
+
## Training Resultate
|
| 72 |
+
|
| 73 |
+
| Epoche | Train Loss | Train Accuracy | Val Loss | Val Accuracy |
|
| 74 |
+
|-------|------------|----------------|----------|--------------|
|
| 75 |
+
| 1 | 0.9685 | 65.72 % | 0.9370 | 66.70 % |
|
| 76 |
+
| 2 | 0.7705 | 72.42 % | 1.0514 | 62.30 % |
|
| 77 |
+
| 3 | 0.7409 | 73.08 % | 1.0166 | 64.90 % |
|
| 78 |
+
| 4 | 0.6329 | 77.15 % | 0.9834 | 65.70 % |
|
| 79 |
+
| 5 | 0.4704 | 83.40 % | 0.8515 | 71.60 % |
|
| 80 |
+
| 6 | 0.3543 | 87.83 % | 0.9220 | 70.80 % |
|
| 81 |
+
|
| 82 |
+
- **Bestes Validation Loss**: **0.8515**
|
| 83 |
+
- **Bestes Validation Accuracy**: **71.60 %**
|
| 84 |
+
|
| 85 |
+
---
|
| 86 |
+
|
| 87 |
+
## Vergleich mit Zero-Shot-Modell (CLIP)
|
| 88 |
+
|
| 89 |
+
Zur Einordnung der Leistung wurde das Modell mit einem Zero-Shot-Klassifikationsmodell `openai/clip-vit-base-patch32` verglichen. Beide Modelle wurden auf dem identischen Testset (5 000 Bilder) ausgewertet.
|
| 90 |
+
|
| 91 |
+
### Zero-Shot Modell:
|
| 92 |
+
|
| 93 |
+
- **Modell**: CLIP (ViT-Base, Patch-32)
|
| 94 |
+
- **Aufgabe**: Zero-Shot Image Classification
|
| 95 |
+
- **Keine Feinjustierung** – nutzt nur Text-Bild-Verständnis
|
| 96 |
+
|
| 97 |
+
### Beobachtungen:
|
| 98 |
+
|
| 99 |
+
- Das ResNet-18 Modell erzielt eine deutlich höhere Accuracy auf bekannten Emotionen und kann feine Unterschiede zwischen Emotionen besser erkennen.
|
| 100 |
+
- Das CLIP-Modell zeigte gute Generalisierung auf bisher unbekannte Emotionen, hatte jedoch insgesamt eine geringere Genauigkeit.
|
| 101 |
+
|
| 102 |
+
### Zero-Shot Ergebnisse:
|
| 103 |
+
|
| 104 |
+
- **Accuracy**: 10.0 %
|
| 105 |
+
- **Macro Avg F1-Score**: 7 %
|
| 106 |
+
- **Weighted Avg F1-Score**: 5 %
|
| 107 |
+
|
| 108 |
+
---
|
| 109 |
+
|
| 110 |
+
## Framework Versionen
|
| 111 |
+
|
| 112 |
+
| Bibliothek | Version |
|
| 113 |
+
|----------------|---------------|
|
| 114 |
+
| Transformers | 4.52.2 |
|
| 115 |
+
| PyTorch | 2.6.0+cu124 |
|
| 116 |
+
| Datasets | 3.4.1 |
|
| 117 |
+
| Tokenizers | 0.21.1 |
|
| 118 |
+
| scikit-learn | 1.4.2 |
|
| 119 |
+
| Matplotlib | 3.8.4 |
|
| 120 |
+
| Seaborn | 0.13.2 |
|