ImageWoof-Datensatz
Der ImageWoof-Datensatz ist eine Teilmenge von ImageNet, die aus 10 Klassen besteht, die schwer zu klassifizieren sind, da es sich um Hunderassen handelt. Er wurde als schwierigere Aufgabe für Bildklassifizierungsalgorithmen erstellt, um die Entwicklung fortschrittlicherer Modelle zu fördern.
Hauptmerkmale
- ImageWoof enthält Bilder von 10 verschiedenen Hunderassen: Australian Terrier, Border Terrier, Samojede, Beagle, Shih-Tzu, English Foxhound, Rhodesian Ridgeback, Dingo, Golden Retriever und Old English Sheepdog.
- Der Datensatz bietet Bilder in verschiedenen Auflösungen (volle Größe, 320px, 160px), um unterschiedlichen Rechenkapazitäten und Forschungsbedürfnissen gerecht zu werden.
- Es enthält auch eine Version mit verrauschten Labels, die ein realistischeres Szenario bietet, in dem Labels möglicherweise nicht immer zuverlässig sind.
Dataset-Struktur
Die Struktur des ImageWoof-Datensatzes basiert auf den Hunderassenklassen, wobei jede Rasse ihr eigenes Bildverzeichnis hat. Ähnlich wie bei anderen Klassifizierungsdatensätzen folgt er einem Split-Directory-Format mit separaten Ordnern für Trainings- und Validierungssätze.
Anwendungen
Der ImageWoof-Datensatz wird häufig zum Trainieren und Evaluieren von Deep-Learning-Modellen in Bildklassifizierungsaufgaben verwendet, insbesondere wenn es um komplexere und ähnliche Klassen geht. Die Herausforderung des Datensatzes liegt in den subtilen Unterschieden zwischen den Hunderassen, wodurch die Leistung und Generalisierung des Modells an ihre Grenzen gebracht werden. Er ist besonders wertvoll für:
- Benchmarking der Klassifizierungsmodell-Performance auf feingliedrigen Kategorien
- Testen der Modellrobustheit gegenüber ähnlich aussehenden Klassen
- Entwicklung von Algorithmen, die subtile visuelle Unterschiede erkennen können
- Bewertung der Möglichkeiten des Transferlernens von allgemeinen zu spezifischen Bereichen
Nutzung
Um ein CNN-Modell auf dem ImageWoof-Datensatz für 100 Epochen mit einer Bildgröße von 224x224 zu trainieren, können Sie die folgenden Code-Snippets verwenden. Eine umfassende Liste der verfügbaren Argumente finden Sie auf der Seite Training des Modells.
Trainingsbeispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="imagewoof", epochs=100, imgsz=224)
# Start training from a pretrained *.pt model
yolo classify train data=imagewoof model=yolo11n-cls.pt epochs=100 imgsz=224
Datensatzvarianten
Der ImageWoof-Datensatz ist in drei verschiedenen Größen erhältlich, um verschiedenen Forschungsanforderungen und Rechenkapazitäten gerecht zu werden:
-
Volle Größe (imagewoof): Dies ist die Originalversion des ImageWoof-Datensatzes. Er enthält Bilder in voller Größe und ist ideal für das abschließende Training und Performance-Benchmarking.
-
Mittlere Größe (imagewoof320): Diese Version enthält Bilder, die auf eine maximale Kantenlänge von 320 Pixeln verkleinert wurden. Sie eignet sich für ein schnelleres Training, ohne die Modellleistung wesentlich zu beeinträchtigen.
-
Geringe Größe (imagewoof160): Diese Version enthält Bilder, die so skaliert wurden, dass sie eine maximale Kantenlänge von 160 Pixeln haben. Sie ist für schnelles Prototyping und Experimentieren konzipiert, bei denen die Trainingsgeschwindigkeit Priorität hat.
Um diese Varianten in Ihrem Training zu verwenden, ersetzen Sie einfach 'imagewoof' im Datensatzargument durch 'imagewoof320' oder 'imagewoof160'. Zum Beispiel:
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model (recommended for training)
# For medium-sized dataset
model.train(data="imagewoof320", epochs=100, imgsz=224)
# For small-sized dataset
model.train(data="imagewoof160", epochs=100, imgsz=224)
# Load a pretrained model and train on the medium-sized dataset
yolo classify train model=yolo11n-cls.pt data=imagewoof320 epochs=100 imgsz=224
Es ist wichtig zu beachten, dass die Verwendung kleinerer Bilder wahrscheinlich zu einer geringeren Leistung in Bezug auf die Klassifikationsgenauigkeit führt. Es ist jedoch eine ausgezeichnete Möglichkeit, in den frühen Phasen der Modellentwicklung und des Prototypings schnell Iterationen durchzuführen.
sample_images und Anmerkungen
Der ImageWoof-Datensatz enthält farbenfrohe Bilder verschiedener Hunderassen und bietet einen anspruchsvollen Datensatz für Bildklassifizierungsaufgaben. Hier sind einige Beispiele für Bilder aus dem Datensatz:
Das Beispiel zeigt die feinen Unterschiede und Gemeinsamkeiten zwischen den verschiedenen Hunderassen im ImageWoof-Datensatz und unterstreicht die Komplexität und Schwierigkeit der Klassifizierungsaufgabe.
Zitate und Danksagungen
Wenn Sie den ImageWoof-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, stellen Sie bitte sicher, dass Sie die Urheber des Datensatzes würdigen, indem Sie auf das offizielle Datensatz-Repository verlinken.
Wir möchten das FastAI-Team für die Erstellung und Pflege des ImageWoof-Datensatzes als wertvolle Ressource für die Machine-Learning- und Computer-Vision-Forschungsgemeinschaft anerkennen. Weitere Informationen über den ImageWoof-Datensatz finden Sie im ImageWoof-Datensatz-Repository.
FAQ
Was ist der ImageWoof-Datensatz in Ultralytics?
Der ImageWoof-Datensatz ist eine anspruchsvolle Teilmenge von ImageNet, die sich auf 10 bestimmte Hunderassen konzentriert. Er wurde entwickelt, um die Grenzen von Bildklassifizierungsmodellen zu erweitern, und umfasst Rassen wie Beagle, Shih-Tzu und Golden Retriever. Der Datensatz enthält Bilder in verschiedenen Auflösungen (volle Größe, 320px, 160px) und sogar verrauschte Labels für realistischere Trainingsszenarien. Diese Komplexität macht ImageWoof ideal für die Entwicklung fortschrittlicherer Deep-Learning-Modelle.
Wie kann ich ein Modell mit dem ImageWoof-Datensatz mit Ultralytics YOLO trainieren?
Um ein Convolutional Neural Network (CNN)-Modell auf dem ImageWoof-Datensatz mit Ultralytics YOLO für 100 Epochen bei einer Bildgröße von 224x224 zu trainieren, können Sie den folgenden Code verwenden:
Trainingsbeispiel
from ultralytics import YOLO
model = YOLO("yolo11n-cls.pt") # Load a pretrained model
results = model.train(data="imagewoof", epochs=100, imgsz=224)
yolo classify train data=imagewoof model=yolo11n-cls.pt epochs=100 imgsz=224
Weitere Informationen zu den verfügbaren Trainingsargumenten finden Sie auf der Seite Training.
Welche Versionen des ImageWoof-Datensatzes sind verfügbar?
Der ImageWoof-Datensatz ist in drei Größen erhältlich:
- Volle Größe (imagewoof): Ideal für das abschließende Training und Benchmarking, da es Bilder in voller Größe enthält.
- Mittlere Größe (imagewoof320): Bilder mit einer maximalen Kantenlänge von 320 Pixeln, geeignet für schnelleres Training.
- Geringe Größe (imagewoof160): Skalierte Bilder mit einer maximalen Kantenlänge von 160 Pixeln, ideal für schnelles Prototyping.
Verwenden Sie diese Versionen, indem Sie 'imagewoof' im Dataset-Argument entsprechend ersetzen. Beachten Sie jedoch, dass kleinere Bilder eine geringere Klassifizierungs-Genauigkeit ergeben können, aber für schnellere Iterationen nützlich sein können.
Inwiefern profitieren Trainings von verrauschten Labels im ImageWoof-Datensatz?
Verrauschte Labels im ImageWoof-Datensatz simulieren reale Bedingungen, in denen Labels möglicherweise nicht immer korrekt sind. Das Trainieren von Modellen mit diesen Daten trägt zur Entwicklung von Robustheit und Generalisierung bei Bildklassifizierungsaufgaben bei. Dies bereitet die Modelle darauf vor, mehrdeutige oder falsch gekennzeichnete Daten effektiv zu verarbeiten, was in praktischen Anwendungen häufig vorkommt.
Was sind die größten Herausforderungen bei der Verwendung des ImageWoof-Datensatzes?
Die größte Herausforderung des ImageWoof-Datensatzes liegt in den subtilen Unterschieden zwischen den darin enthaltenen Hunderassen. Da er sich auf 10 eng verwandte Rassen konzentriert, erfordert die Unterscheidung zwischen ihnen fortschrittlichere und fein abgestimmte Bildklassifizierungsmodelle. Dies macht ImageWoof zu einem ausgezeichneten Benchmark, um die Fähigkeiten und Verbesserungen von Deep-Learning-Modellen zu testen.