In der rasant wachsenden Welt der Künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) ist die Bildklassifikation eine zentrale Aufgabe. Sie treibt Anwendungen von Gesichtserkennung bis hin zu medizinischer Bilddiagnostik an.
Unter den vielen Tools und Bibliotheken für Data Scientists und KI-Profis ist Hugging Face eine feste Größe – besonders in der Sprachverarbeitung (NLP) und zunehmend auch bei Computer-Vision-Aufgaben wie der Bildklassifikation.
Dieser Artikel zeigt dir die Essentials der Bildklassifikation mit Hugging Face: von den Grundlagen über die Datenaufbereitung und das Training bis hin zum Deployment deines Modells im Hugging Face Hub – inklusive Zugriff über API und die Hugging Face Oberfläche.
Egal ob Einsteiger oder erfahrene Praktikerin: Dieser Guide gibt dir wertvolle Einblicke, wie du Hugging Face für deine Bildklassifikationsprojekte optimal nutzt.
Bildklassifikation mit Hugging Face verstehen
In diesem Abschnitt lernst du die Grundlagen der Bildklassifikation und die Vorteile von Hugging Face kennen.
Die Grundlagen der Bildklassifikation
Bildklassifikation bedeutet, Bilder einer von mehreren vordefinierten Klassen zuzuordnen.
Dazu analysieren Algorithmen den visuellen Inhalt eines Bildes und sagen anhand von Mustern aus den Trainingsdaten die passende Kategorie voraus. Tiefe neuronale Netze, insbesondere Convolutional Neural Networks (CNNs), sind hier Standard, weil sie relevante Strukturen in Bilddaten sehr gut erfassen.
Außerdem führt der Artikel Classification in Machine Learning: An Introduction Schritt für Schritt durch das Thema Klassifikation im maschinellen Lernen – was sie ist, wie sie eingesetzt wird und Beispiele für gängige Algorithmen.
Warum Hugging Face für Bildklassifikation?
Hugging Face bietet ein umfassendes ML-Ökosystem mit leicht bedienbaren Schnittstellen, einem riesigen Fundus an vortrainierten Modellen und sehr guter Dokumentation.
Im Vergleich zu anderen Plattformen hat Hugging Face mehrere Vorteile für Bildklassifikation:
Drei Vorteile von Hugging Face (Bild generiert mit GPT-4)
Zugänglichkeit: Die benutzerfreundliche API und die ausführliche Doku machen Hugging Face für Einsteiger und Profis gleichermaßen zugänglich.
Vortrainierte Modelle: Zugriff auf viele vortrainierte Modelle, die du auf eigene Datensätze feinabstimmen kannst – spart Zeit und Rechenressourcen. Mit Account kann jede:r Modelle trainieren und bereitstellen.
Community und Support: Eine lebhafte Community und aktive Foren helfen beim Troubleshooting und bei der Modellverbesserung.
Zusätzlich erleichtert Hugging Face das Deployment auf großen Cloud-Plattformen wie AWS, Azure und Google Cloud Platform – inklusive verschiedener Inferenz-Optionen.
Bereitstellungsoptionen auf Cloud-Plattformen
Daten für die Bildklassifikation vorbereiten
Die Hauptaufgabe in diesem Artikel ist die Bildklassifikation. Für das Beispiel nutzen wir den Beans-Datensatz von Hugging Face. Nach dem Laden visualisieren wir einige Beispiele und steigen dann in die Vorverarbeitung für das Training ein.
Das Notebook mit dem Code findest du zum Mitmachen in Google Colab.
Die Codes in diesem Artikel sind stark an die offizielle Hugging Face Website angelehnt.
Benötigte Bibliotheken
Wir verwenden mehrere Bibliotheken mit jeweils eigener Aufgabe. Einige müssen installiert werden. Die Installation erfolgt mit dem Python-Paketmanager „pip“ wie folgt:
%%bash
pip -q install datasets
pip -q install transformers=='4.29.0'
pip -q install tensorflow=='2.15'# At least this tensorflow version is required to use the "evaluate module"
pip -q install evaluate
pip -q install --upgrade accelerateBereitgestellt von
Nach der Installation solltest du den Kernel neu starten. Danach können die benötigten Bibliotheken per from und import eingebunden werden:
import torch
import torchvision
import numpy as np
import evaluate
from datasets import load_dataset
from huggingface_hub import notebook_login
from torchvision import datasets, transforms
from torch.utils.data import DataLoader
from transformers import DefaultDataCollator
from transformers import AutoImageProcessor
from torchvision.transforms import RandomResizedCrop, Compose, Normalize, ToTensor
from transformers import AutoModelForImageClassification, TrainingArguments, Trainer
import matplotlib.pyplot as pltBereitgestellt von
Datenanforderungen und Organisation
Das Laden der Daten von Hugging Face ist mit der Funktion load_dataset ganz unkompliziert.
Dataset({
features:['image_file_path','image','labels'],
num_rows:1034})Bereitgestellt von
Insgesamt gibt es 1034 Bilder, und jedes Bild hat drei Felder:
image_path: Der Pfad zur Bilddatei.
image: Ein PIL-Objekt des Bohnenblatts.
labels: Das Label des Bildes, eines der folgenden drei:
0: angular_leaf_spot
1: bean_rust
2: healthy
Die folgende Helper-Funktion visualisiert eine bestimmte Anzahl zufällig gewählter Bilder und weist den richtigen Typ zusammen mit den vorhandenen Labels (0, 1, 2) zu.
Kurz gesagt: display_random_images wählt eine zufällige Teilmenge von Bildern aus einem Datensatz und zeigt sie als Grid an – jeweils mit Klassenname (z. B. "angular_leaf_spot", "bean_rust", "healthy") und numerischem Label.
Die Funktion ordnet die Bilder dynamisch in zwei Zeilen an und berechnet die nötige Spaltenanzahl, vermeidet Duplikate und ergänzt jeden Eintrag um Namen und numerisches Label.
Der folgende Code lädt das vortrainierte Modell, bereitet die Daten passend auf und stellt sicher, dass die Bilder korrekt transformiert werden – bereit für Feintuning und Evaluation.
TrainingArguments sind mit Parametern wie Ausgabeverzeichnis, Evaluations- und Speicherstrategie pro Epoche, Lernrate, Batchgröße, Gradientenakkumulation u. a. konfiguriert – für effizientes Training und gute Performance.
Ein Trainer-Objekt bündelt Modell, Trainingsargumente, Data Collator, Trainings- und Evaluationsdaten, den Tokenizer (hier: Image Processor) und die Metrikfunktion.
trainer.model.push_to_hub("zoumana/beans_health_type_classifier")Bereitgestellt von
Damit landet das Modell im Hub, wo du die wichtigsten Eigenschaften siehst.
Modell im Hugging Face Hub
Integration in Anwendungen
Sobald das Modell geteilt ist, kannst du es per REST API in Apps integrieren oder direkt über das Hugging Face Portal nutzen. Entwickler:innen und Forschende können es außerdem mit der Transformers-Bibliothek laden.
Hier sind die drei wichtigsten Nutzungswege.
1. Nutzung im Hugging Face Portal
Im Portal kannst du direkt ein Bild hochladen und dir die Vorhersage anzeigen lassen – wie in der Animation gezeigt.
Nutzung über das Hugging Face Portal
2. Nutzung in Transformers
Über das Icon „Use in Transformers“ erhältst du automatisch den passenden Beispielcode:
Verwendung mit Transformers
3. Nutzung per REST API
Schließlich kannst du das Modell als REST API nutzen. Den Verbindungsstring bekommst du automatisch im Portal unter „Deploy > Inference API (serverless)“.
Nutzung eines API-Endpunkts
Der im Clip gezeigte Codeschnipsel ist unten noch einmal aufgeführt. Damit kannst du für ein Bild Vorhersagen anfragen.
Das verwendete Bild ist dasselbe wie im Portal-Beispiel.
Ersetze „xxx“ durch die echten Werte.
import requests
API_URL ="https://api-inference.huggingface.co/models/zoumana/beans_health_type_classifier"
headers ={"Authorization":"Bearer xxxxxxxxxxxxxxxxx"}defquery(filename):withopen(filename,"rb")as f:
data = f.read()
response = requests.post(API_URL, headers=headers, data=data)return response.json()Bereitgestellt von
Jetzt holen wir die Antwort des Modells mit der Funktion query.
output = query("./inference_images/test_beans_leaf.jpg")Bereitgestellt von
Das Ergebnis ist eine JSON-Antwort wie unten. Das Label mit der höchsten Wahrscheinlichkeit ist die Vorhersage – hier healthy, identisch mit der Ausgabe im Hugging Face Portal.
[{'label':'healthy','score':0.4799719452857971},{'label':'angular_leaf_spot','score':0.27489492297172546},{'label':'bean_rust','score':0.2451331913471222}]Bereitgestellt von
Fazit und weiterführendes Lernen
Dieser Artikel war ein kompletter Leitfaden zur Bildklassifikation mit Hugging Face.
Wir haben mit den Grundlagen begonnen und gezeigt, warum Hugging Face sich durch seine große Modellsammlung und die starke Community besonders eignet.
Dann haben wir erläutert, wie du Trainingsbilder vorbereitest und sicherstellst, dass die Daten die Anforderungen fürs Feintuning erfüllen.
Anschließend sind wir ins Feintuning mit dem passenden vortrainierten Modell eingestiegen und haben drei Wege zur Integration in reale Anwendungen gezeigt.
In KI gibt es immer mehr zu entdecken – jeder Schritt eröffnet neue Möglichkeiten. Wenn du tiefer einsteigen willst, besonders in Bildklassifikation und mehr, empfehlen wir:
Zoumana ist ein vielseitiger Datenwissenschaftler, der sein Wissen gerne mit anderen teilt und anderen etwas zurückgibt. Er erstellt Inhalte auf YouTube und schreibt auf Medium. Er hat Freude am Sprechen, Programmieren und Unterrichten. Zoumana hat zwei Master-Abschlüsse. Den ersten in Informatik mit dem Schwerpunkt Maschinelles Lernen in Paris, Frankreich, und den zweiten in Datenwissenschaft an der Texas Tech University in den USA. Sein beruflicher Werdegang begann als Softwareentwickler bei Groupe OPEN in Frankreich, bevor er als Berater für maschinelles Lernen zu IBM wechselte, wo er End-to-End-KI-Lösungen für Versicherungsunternehmen entwickelte. Zoumana arbeitet bei Axionable, dem ersten nachhaltigen KI-Startup mit Sitz in Paris und Montreal. Dort arbeitete er als Data Scientist und implementierte KI-Produkte, vor allem NLP-Anwendungsfälle, für Kunden aus Frankreich, Montreal, Singapur und der Schweiz. Zusätzlich widmete er 5% seiner Zeit der Forschung und Entwicklung. Zurzeit arbeitet er als Senior Data Scientist bei der IFC, der Weltbankgruppe.
Lerne die wichtigsten Arten von KI-Agenten kennen, wie sie mit ihrer Umgebung interagieren und wie sie in verschiedenen Branchen eingesetzt werden. Verstehe einfache reflexive, modellbasierte, zielbasierte, nutzenbasierte, lernende Agenten und mehr.
Lerne mehr über abstrakte Klassen in Python, wozu sie gut sind und wie du mit dem Modul „abc“ einheitliche Schnittstellen sicherstellen kannst. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
In der rasant wachsenden Welt der Künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) ist die Bildklassifikation eine zentrale Aufgabe. Sie treibt Anwendungen von Gesichtserkennung bis hin zu medizinischer Bilddiagnostik an.
Unter den vielen Tools und Bibliotheken für Data Scientists und KI-Profis ist Hugging Face eine feste Größe – besonders in der Sprachverarbeitung (NLP) und zunehmend auch bei Computer-Vision-Aufgaben wie der Bildklassifikation.
Dieser Artikel zeigt dir die Essentials der Bildklassifikation mit Hugging Face: von den Grundlagen über die Datenaufbereitung und das Training bis hin zum Deployment deines Modells im Hugging Face Hub – inklusive Zugriff über API und die Hugging Face Oberfläche.
Egal ob Einsteiger oder erfahrene Praktikerin: Dieser Guide gibt dir wertvolle Einblicke, wie du Hugging Face für deine Bildklassifikationsprojekte optimal nutzt.
Bildklassifikation mit Hugging Face verstehen
In diesem Abschnitt lernst du die Grundlagen der Bildklassifikation und die Vorteile von Hugging Face kennen.
Die Grundlagen der Bildklassifikation
Bildklassifikation bedeutet, Bilder einer von mehreren vordefinierten Klassen zuzuordnen.
Dazu analysieren Algorithmen den visuellen Inhalt eines Bildes und sagen anhand von Mustern aus den Trainingsdaten die passende Kategorie voraus. Tiefe neuronale Netze, insbesondere Convolutional Neural Networks (CNNs), sind hier Standard, weil sie relevante Strukturen in Bilddaten sehr gut erfassen.
Mehr über CNNs erfährst du im Artikel An Introduction to Convolutional Neural Networks (CNNs) – inklusive Grundlagen, Wirkung auf die Bildanalyse und Strategien gegen Overfitting für robuste Deep-Learning-Anwendungen.
Außerdem führt der Artikel Classification in Machine Learning: An Introduction Schritt für Schritt durch das Thema Klassifikation im maschinellen Lernen – was sie ist, wie sie eingesetzt wird und Beispiele für gängige Algorithmen.
Warum Hugging Face für Bildklassifikation?
Hugging Face bietet ein umfassendes ML-Ökosystem mit leicht bedienbaren Schnittstellen, einem riesigen Fundus an vortrainierten Modellen und sehr guter Dokumentation.
Im Vergleich zu anderen Plattformen hat Hugging Face mehrere Vorteile für Bildklassifikation:
Drei Vorteile von Hugging Face (Bild generiert mit GPT-4)
Zusätzlich erleichtert Hugging Face das Deployment auf großen Cloud-Plattformen wie AWS, Azure und Google Cloud Platform – inklusive verschiedener Inferenz-Optionen.
Bereitstellungsoptionen auf Cloud-Plattformen
Daten für die Bildklassifikation vorbereiten
Die Hauptaufgabe in diesem Artikel ist die Bildklassifikation. Für das Beispiel nutzen wir den Beans-Datensatz von Hugging Face. Nach dem Laden visualisieren wir einige Beispiele und steigen dann in die Vorverarbeitung für das Training ein.
Das Notebook mit dem Code findest du zum Mitmachen in Google Colab.
Die Codes in diesem Artikel sind stark an die offizielle Hugging Face Website angelehnt.
Benötigte Bibliotheken
Wir verwenden mehrere Bibliotheken mit jeweils eigener Aufgabe. Einige müssen installiert werden. Die Installation erfolgt mit dem Python-Paketmanager „pip“ wie folgt:
Nach der Installation solltest du den Kernel neu starten. Danach können die benötigten Bibliotheken per from und import eingebunden werden:
Datenanforderungen und Organisation
Das Laden der Daten von Hugging Face ist mit der Funktion load_dataset ganz unkompliziert.
beansist der Name des verwendeten Datensatzes.trainentspricht dem verwendeten Teil des gesamten Datensatzes.Sobald die Daten geladen sind, können wir uns ihre Eigenschaften ansehen, indem wir einfach den Variablennamen ausgeben.
Das ergibt die folgende Ausgabe:
Insgesamt gibt es 1034 Bilder, und jedes Bild hat drei Felder:
image_path: Der Pfad zur Bilddatei.image: Ein PIL-Objekt des Bohnenblatts.labels: Das Label des Bildes, eines der folgenden drei:Die folgende Helper-Funktion visualisiert eine bestimmte Anzahl zufällig gewählter Bilder und weist den richtigen Typ zusammen mit den vorhandenen Labels (0, 1, 2) zu.
Kurz gesagt:
display_random_imageswählt eine zufällige Teilmenge von Bildern aus einem Datensatz und zeigt sie als Grid an – jeweils mit Klassenname (z. B. "angular_leaf_spot", "bean_rust", "healthy") und numerischem Label.Die Funktion ordnet die Bilder dynamisch in zwei Zeilen an und berechnet die nötige Spaltenanzahl, vermeidet Duplikate und ergänzt jeden Eintrag um Namen und numerisches Label.
Sechs Zufallsbilder lassen sich so anzeigen:
Sechs zufällige Bilder aus dem Datensatz
Datenvorverarbeitung
Bevor wir trainieren, bereiten wir die Daten so auf, dass sie optimal zum Modell passen.
Zunächst teilen wir den ursprünglichen Datensatz in Trainings- (80%) und Validierungsdaten (20%) – mit
train_test_split.Als Nächstes erzeugen wir zwei Dictionaries:
label2idundid2label. Damit wandeln wir zwischen sprechenden Labelnamen und numerischen IDs.Das vereinfacht sowohl das Training als auch die Interpretation der Vorhersagen des finalen Modells.
So sieht die Variable
id2labelaus:Vortrainiertes Modell laden
Für die Klassifikation nutzen wir den vortrainierten Vision Transformer (ViT) von Hugging Face.
Das Modell wurde im Paper An Image is Worth 16x16 words: Transformers for Image Recognition at Scale vorgestellt – die erste erfolgreiche Anwendung der Transformer-Architektur auf Bildklassifikation, trainiert auf ImageNet.
Der folgende Code lädt das vortrainierte Modell, bereitet die Daten passend auf und stellt sicher, dass die Bilder korrekt transformiert werden – bereit für Feintuning und Evaluation.
Was passiert hier genau?
google/vit-base-patch16-224-in21k._transforms): zufälliger Zuschnitt, Tensorkonvertierung und Normalisierung.beans_trainwird damit transformiert und für das Training vorbereitet.Als Evaluationsmetrik verwenden wir die Accuracy. Diese Helper-Funktion berechnet sie:
Dein Modell mit Hugging Face trainieren
Bevor das Training startet, definieren wir das eigentliche Modell als Feintuning eines vortrainierten Modells mit
.from_pretrained:Feintuning und Evaluation
Als Nächstes konfigurieren und initialisieren wir die Trainingsumgebung.
Dazu gehören die wichtigsten Hyperparameter für Training, Evaluation und Optimierung.
Vorher melden wir uns mit unseren Hugging Face Zugangsdaten an, die du so abrufen kannst:
Hauptschritte zum Abrufen der Hugging Face Zugangsdaten
Mit dem Login kannst du dein trainiertes Modell in die Community hochladen und teilen. Die Authentifizierung startest du mit
notebook_login.Wenn du dazu aufgefordert wirst, gib den Verbindungstoken ein, den du in Schritt 4 kopiert hast.
Nach erfolgreichem Login erscheint diese Meldung:
Die Konfiguration und Initialisierung sieht so aus:
TrainingArgumentssind mit Parametern wie Ausgabeverzeichnis, Evaluations- und Speicherstrategie pro Epoche, Lernrate, Batchgröße, Gradientenakkumulation u. a. konfiguriert – für effizientes Training und gute Performance.Trainer-Objekt bündelt Modell, Trainingsargumente, Data Collator, Trainings- und Evaluationsdaten, den Tokenizer (hier: Image Processor) und die Metrikfunktion.Jetzt startet die Trainingsphase mit .train.
Dieses Training ergab folgende Kennzahlen:
Trainingsergebnis für drei Epochen
Die Tabelle zeigt den Verlauf über drei Epochen mit drei Kernmetriken: Trainingsverlust, Validierungsverlust und Accuracy.
Dein Bildklassifikationsmodell bereitstellen
Beim ersten Login im Hugging Face Portal war die Berechtigung Read only. Für das Pushen ins Hub benötigen wir Write-Rechte.
Danach melden wir uns erneut mit
notebook_loginan – diesmal mit den neuen Berechtigungen.Das Pushen erfolgt mit
push_to_hubso:Damit landet das Modell im Hub, wo du die wichtigsten Eigenschaften siehst.
Modell im Hugging Face Hub
Integration in Anwendungen
Sobald das Modell geteilt ist, kannst du es per REST API in Apps integrieren oder direkt über das Hugging Face Portal nutzen. Entwickler:innen und Forschende können es außerdem mit der Transformers-Bibliothek laden.
Hier sind die drei wichtigsten Nutzungswege.
1. Nutzung im Hugging Face Portal
Im Portal kannst du direkt ein Bild hochladen und dir die Vorhersage anzeigen lassen – wie in der Animation gezeigt.
Nutzung über das Hugging Face Portal
2. Nutzung in Transformers
Über das Icon „Use in Transformers“ erhältst du automatisch den passenden Beispielcode:
Verwendung mit Transformers
3. Nutzung per REST API
Schließlich kannst du das Modell als REST API nutzen. Den Verbindungsstring bekommst du automatisch im Portal unter „Deploy > Inference API (serverless)“.
Nutzung eines API-Endpunkts
Der im Clip gezeigte Codeschnipsel ist unten noch einmal aufgeführt. Damit kannst du für ein Bild Vorhersagen anfragen.
Das verwendete Bild ist dasselbe wie im Portal-Beispiel.
Ersetze „xxx“ durch die echten Werte.
Jetzt holen wir die Antwort des Modells mit der Funktion query.
Das Ergebnis ist eine JSON-Antwort wie unten. Das Label mit der höchsten Wahrscheinlichkeit ist die Vorhersage – hier healthy, identisch mit der Ausgabe im Hugging Face Portal.
Fazit und weiterführendes Lernen
Dieser Artikel war ein kompletter Leitfaden zur Bildklassifikation mit Hugging Face.
Wir haben mit den Grundlagen begonnen und gezeigt, warum Hugging Face sich durch seine große Modellsammlung und die starke Community besonders eignet.
Dann haben wir erläutert, wie du Trainingsbilder vorbereitest und sicherstellst, dass die Daten die Anforderungen fürs Feintuning erfüllen.
Anschließend sind wir ins Feintuning mit dem passenden vortrainierten Modell eingestiegen und haben drei Wege zur Integration in reale Anwendungen gezeigt.
In KI gibt es immer mehr zu entdecken – jeder Schritt eröffnet neue Möglichkeiten. Wenn du tiefer einsteigen willst, besonders in Bildklassifikation und mehr, empfehlen wir:
Dieser Guide hilft dir, eigene Projekte zur Bildklassifikation mit Hugging Face zu starten – egal ob du Einsteiger, fortgeschritten oder Profi bist.