
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->

# vit-food-classification-chrisis2

Dieses Modell ist eine feinjustierte Version von [google/vit-base-patch16-224](https://huggingface.co/google/vit-base-patch16-224) für den Datensatz "food-classification".
Es erzielt die folgenden Ergebnisse in der Auswertungsmenge:
- Loss: 0.2449
- Accuracy: 0.9263

## Modell Beschreibung

Das Modell basiert auf der Vision Transformer (ViT) Architektur und wurde mithilfe der Hugging Face Trainer API auf ca. 24 000 Bildern trainiert. 
Ziel war es, ein robustes Klassifikationsmodell für die Anwendung von Gerichten zu entwickeln.


## Einsatzbereiche und Einschränkungen

Verwendungszweck:

- Klassifizierung von Lebensmitteln zu Bildungs-, Analyse- oder Demonstrationszwecken
- Kann in Gradio-Anwendungen zur Klassifizierung von Gerichten einschliesslich der westlichen und vor allem indischen Küche verwendet werden
  
Einschränkungen:

- Nicht geeignet für ungewöhnliche oder gemischte Gerichte, die nicht im Trainingssatz enthalten sind.
- Kann keine Zutaten, Kalorienwerte oder Portionsgrössen identifizieren, sondern nur das am besten passende Etikett


## Trainings- und Evaluationsdaten

Das Modell wurde auf einem öffentlichen Lebensmitteldatensatz von Kaggle.com mit rund **24 000 Bildern in 34 Klassen** trainiert. Jede Klasse umfasst ca. 700–800 Bilder.

Aufteilung des Datensatzes:
- 80 % Training
- 10 % Validierung
- 10 % Testdaten

### Training der Hyperparameter

Die folgenden Hyperparameter wurden beim Training verwendet:
- learning_rate: 5e-05
- train_batch_size: 16
- eval_batch_size: 8
- seed: 42
- optimizer: Use adamw_torch with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
- lr_scheduler_type: linear
- num_epochs: 6

### Training Resultate

| Training Loss | Epoch | Step | Validation Loss | Accuracy |
|:-------------:|:-----:|:----:|:---------------:|:--------:|
| 0.0983        | 1.0   | 1194 | 0.2300          | 0.9330   |
| 0.0981        | 2.0   | 2388 | 0.2302          | 0.9359   |
| 0.0873        | 3.0   | 3582 | 0.2302          | 0.9346   |
| 0.1053        | 4.0   | 4776 | 0.2296          | 0.9372   |
| 0.0879        | 5.0   | 5970 | 0.2294          | 0.9351   |
| 0.0982        | 6.0   | 7164 | 0.2293          | 0.9355   |

## Vergleich mit Zero-Shot-Modell (CLIP)

Zur Einordnung der Leistung wurde das Modell mit einem Zero-Shot-Klassifikationsmodell [`openai/clip-vit-large-patch14`](https://huggingface.co/openai/clip-vit-large-patch14) verglichen. Beide Modelle wurden auf dem identischen Testset (2 388 Bilder) ausgewertet.

**Zero-Shot Modell:**
- Modell: CLIP (ViT-Large, Patch-14)
- Aufgabe: `zero-shot-image-classification`
- Keine Feinjustierung – nutzt nur Text-Bild-Verständnis

### Beobachtungen

- Das ViT-Modell erzielt konstant höhere Genauigkeit und klarere Top-1-Vorhersagen, besonders bei gut ausgeleuchteten, zentrierten Bildern.
- Das CLIP-Modell zeigte gute Generalisierung, besonders bei uneindeutigen oder visuell komplexen Gerichten.
- Während das ViT-Modell gezielt auf die Erkennung fester Klassen trainiert wurde, basiert CLIP auf einem allgemeinen Sprach-Bild-Verständnis und ordnet Bilder den semantisch passendsten Beschriftungen zu.

### Zero-Shot Ergebnisse:

- Accuracy: 0.8622  
- Precision: 0.9058  
- Recall: 0.8622 

### Framework Versionen

- Transformers 4.50.0
- Pytorch 2.6.0+cu124
- Datasets 3.4.1
- Tokenizers 0.21.1

baked potato crispy chicken donut fries hot dog sandwich taco taquito apple_pie burger butter_naan chai chapati cheesecake chicken_curry chole_bhature dal_makhani dhokla fried_rice ice_cream idli jalebi kaathi_rolls kadai_paneer kulfi masala_dosa momos omelette paani_puri pakode pav_bhaji pizza samosa sushi