|
--- |
|
title: Garment Attribute Predictor |
|
emoji: 👕 |
|
colorFrom: indigo |
|
colorTo: blue |
|
sdk: gradio |
|
sdk_version: 5.25.2 |
|
app_file: app.py |
|
pinned: true |
|
--- |
|
|
|
# 👕 Fashion Attribute Predictor |
|
|
|
Ein Gradio-basierter Hugging Face Space zur Vorhersage von Attributen aus Modebildern (z. B. T-Shirts, Pullover, etc.) |
|
Das Modell sagt für jede Attributgruppe (z. B. Farbe, Material, Schnitt) **das wahrscheinlichste Merkmal** vorher – inklusive **Confidence-Score**. |
|
|
|
--- |
|
|
|
## 🔍 Funktionen |
|
|
|
- 📸 Unterstützung für Bild-Upload |
|
- 🧠 Vorhersage von Attributen aus 228 Kategorien |
|
- 📊 Strukturierte **JSON-Ausgabe** mit `label`, `score` und `confidence` |
|
- ✅ Einfache Integration in Datenbanken, APIs oder Forschungsprojekte |
|
|
|
--- |
|
|
|
## 🧩 Unterstützte Attributgruppen |
|
|
|
Das Modell liefert jeweils **das wahrscheinlichste Attribut** aus jeder dieser Gruppen: |
|
|
|
| Attributgruppe | Beschreibung (Beispiele) | |
|
|----------------|-------------------------------------------------| |
|
| `category` | Kleidungstyp (z. B. T-Shirts, Jeans, Blazer) | |
|
| `color` | Farbton (z. B. Red, Black, Blue) | |
|
| `material` | Materialtyp (z. B. Cotton, Leather, Lace) | |
|
| `style` | Stil (z. B. Vintage, Bandage, Peplum) | |
|
| `pattern` | Muster (z. B. Striped, Polka Dot, Floral) | |
|
| `sleeve` | Ärmeltyp (z. B. Sleeveless, Long Sleeves) | |
|
| `neckline` | Ausschnittform (z. B. V-Neck, Round Neck) | |
|
| `gender` | Gender-Zielgruppe (Male, Female, Neutral) | |
|
|
|
--- |
|
|
|
## 📦 Ausgabeformat (Beispiel) |
|
|
|
```json |
|
{ |
|
"category": { |
|
"label": "T-Shirts", |
|
"score": 0.9123, |
|
"confidence": "high" |
|
}, |
|
"color": { |
|
"label": "Red", |
|
"score": 0.4871, |
|
"confidence": "low" |
|
} |
|
} |
|
``` |
|
|
|
- **score**: Modellwahrscheinlichkeit (0.0–1.0) |
|
- **confidence**: `"high"` wenn Score ≥ 0.5, sonst `"low"` |
|
|
|
--- |
|
|
|
## 📁 Dateien |
|
|
|
| Datei | Beschreibung | |
|
|-----------------------------|--------------| |
|
| `app.py` | Haupt-Interface mit JSON-Ausgabe | |
|
| `model_loader.py` | Lädt das trainierte ResNet50-Modell | |
|
| `index_to_attr.py` | Mapping von Indizes zu Attributnamen | |
|
| `model/AttrPredModel_StateDict.pth` | Vorgefertigte Modellgewichte | |
|
|
|
--- |
|
|
|
## ⚙️ Modell-Details |
|
|
|
- Backbone: `ResNet50` |
|
- Trainingsdaten: iMaterialist (Fashion) Challenge 2018 |
|
- Vorhersageformat: Multi-Label (228 binäre Attribute) |
|
- Eingabegröße: 512×512 RGB |
|
- Normalisierung: mean=[0.6765, 0.6347, 0.6207], std=[0.3284, 0.3371, 0.3379] |
|
|
|
--- |
|
|
|
## 📚 Lizenz & Nutzung |
|
|
|
Nur für nicht-kommerzielle Forschungszwecke. |
|
Modelldaten basieren auf öffentlich verfügbaren Wettbewerbsdaten von FGVC5/Kaggle. |
|
|
|
--- |
|
|
|
## 🧑💻 Erstellt von |
|
|
|
Andreas Jewtschuk |
|
Masterarbeit – E-Commerce, Ernst-Abbe-Hochschule Jena |
|
[2025] |
|
|
|
|
|
--- |
|
|
|
## 📥 Modellquelle |
|
|
|
Dieses Projekt basiert auf dem vortrainierten Modell aus: |
|
|
|
**VisualFashionAttributePrediction** |
|
by [Malte Prinzler](https://github.com/malteprinzler) |
|
🔗 https://github.com/malteprinzler/VisualFashionAttributePrediction |
|
|
|
Das Modell wurde ursprünglich im Rahmen der [iMaterialist Challenge (Fashion) 2018](https://www.kaggle.com/competitions/imaterialist-challenge-fashion-2018/) trainiert und basiert auf einem ResNet50-Backbone. |
|
|
|
|
|
--- |
|
|
|
## 🔧 Modifikationen durch den Autor |
|
|
|
Im Rahmen dieser Anwendung wurde ausschließlich die **Ausgabe der Attributvorhersagen** verändert: |
|
|
|
- Ursprünglich wurden nur Attribute mit einem Score über 0.5 angezeigt. |
|
- In dieser Version wird **für jede Attributgruppe** (z. B. Farbe, Material, Ärmel) das **wahrscheinlichste Attribut** angezeigt – unabhängig vom Score. |
|
- Zusätzlich wird eine Einschätzung über die Modellzuversicht (`confidence`: "high" / "low") auf Basis eines Schwellenwerts von 0.5 ausgegeben. |
|
|
|
Das Modell selbst wurde nicht verändert. |
|
|