Ultralytics YOLO27:

Übersicht über Datensätze#

Ultralytics unterstützt verschiedene Datensätze, um Computer-Vision-Aufgaben wie Objekterkennung, Instanzsegmentierung, semantische Segmentierung, Tiefenschätzung, Klassifizierung, Posenschätzung und rotierte Begrenzungsrahmen (OBB) zu ermöglichen. Nachfolgend findest du eine Liste der wichtigsten Ultralytics-Datensätze, gefolgt von einer Zusammenfassung der einzelnen Computer-Vision-Aufgaben und der jeweiligen Datensätze. Der Tracking-Modus läuft auf Erkennungs-, Segmentierungs-, Posenschätzungs- und OBB-Modellen, ohne ein trackerspezifisches Training zu erfordern; siehe Tracking-Datensätze.



Watch: Ultralytics Datasets Overview

Objekterkennung#

Bei der Objekterkennung mit Begrenzungsrahmen handelt es sich um eine Computer-Vision-Technik, bei der Objekte in einem Bild erkannt und lokalisiert werden, indem um jedes Objekt ein Begrenzungsrahmen gezeichnet wird.

  • African-wildlife: Ein Datensatz mit Bildern afrikanischer Wildtiere, darunter Büffel, Elefanten, Nashörner und Zebras.
  • Argoverse: Ein Datensatz mit Daten zur 3D-Verfolgung und Bewegungsprognose aus städtischen Umgebungen mit umfangreichen Annotationen.
  • Brain-tumor: Ein Datensatz zur Erkennung von Hirntumoren mit MRT- oder CT-Aufnahmen, die Informationen über das Vorhandensein, die Position und die Eigenschaften von Tumoren enthalten.
  • COCO: Common Objects in Context (COCO) ist ein groß angelegter Datensatz zur Objekterkennung, Segmentierung und Bildbeschreibung mit 80 Objektkategorien.
  • COCO8: Eine kleinere Teilmenge der ersten 8 Bilder aus dem COCO train2017-Datensatz, 4 für das Training und 4 für die Validierung, geeignet für schnelle Tests.
  • COCO8-Grayscale: Eine Graustufenversion von COCO8, die durch die Umwandlung von RGB in Graustufen erstellt wurde und sich für die Evaluierung von Modellen mit einem Kanal eignet.
  • COCO8-Multispectral: Eine multispektrale Version von COCO8 mit 10 Kanälen, die durch Interpolation der RGB-Wellenlängen erstellt wurde und sich für die spektralbewusste Evaluierung von Modellen eignet.
  • COCO12-Formats: Ein Testdatensatz mit 12 Bildern, der die 12 unterstützten Bildformate (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) zur Validierung von Bildlade-Pipelines abdeckt.
  • COCO128: Eine kleinere Teilmenge der ersten 128 Bilder aus COCO train2017, geeignet für Tests.
  • Construction-PPE: Ein Datensatz mit annotierten Bildern von Baustellen, der wichtige Schutzausrüstung wie Helme, Westen, Handschuhe, Stiefel und Schutzbrillen sowie Kennzeichnungen für fehlende Ausrüstung umfasst und die Entwicklung von KI-Modellen zur Einhaltung von Vorschriften und zum Schutz von Mitarbeitenden unterstützt.
  • Global Wheat 2020: Ein Datensatz mit Bildern von Weizenähren für die Global Wheat Challenge 2020.
  • HomeObjects-3K: Ein Datensatz mit annotierten Innenraumszenen und 12 häufig vorkommenden Haushaltsgegenständen, ideal für die Entwicklung und Prüfung von Computer-Vision-Modellen in Smart-Home-Systemen, der Robotik und der erweiterten Realität.
  • KITTI: Ein bekannter Datensatz für autonomes Fahren mit Stereo-, LiDAR- und GPS/IMU-Eingaben, der für die 2D-Objekterkennung in verschiedenen Straßenszenen verwendet wird.
  • LVIS: Ein groß angelegter Datensatz zur Objekterkennung, Segmentierung und Bildbeschreibung mit 1203 Objektkategorien.
  • Medical-pills: Ein Datensatz mit beschrifteten Bildern medizinischer Tabletten, der Aufgaben wie pharmazeutische Qualitätskontrolle, Sortierung und die Sicherstellung der Einhaltung von Branchenstandards unterstützt.
  • Objects365: Ein hochwertiger, groß angelegter Datensatz zur Objekterkennung mit 365 Objektkategorien und über 600.000 annotierten Bildern.
  • OpenImagesV7: Ein umfassender Datensatz von Google mit 1,7 Mio. Trainingsbildern und 42.000 Validierungsbildern.
  • RF100: Ein vielfältiger Benchmark für die Objekterkennung mit 100 Datensätzen aus sieben Bildbereichen zur umfassenden Evaluierung von Modellen.
  • Signature: Ein Datensatz mit Bildern verschiedener Dokumente und annotierten Unterschriften, der die Forschung zur Dokumentenprüfung und Betrugserkennung unterstützt.
  • SKU-110K: Ein Datensatz zur Erkennung dicht angeordneter Objekte in Einzelhandelsumgebungen mit über 11.000 Bildern und 1,7 Millionen Begrenzungsrahmen.
  • TT100K: Der Verkehrszeichen-Datensatz Tsinghua-Tencent 100K mit 16.817 Straßenbildern in 221 Schilderkategorien.
  • VisDrone: Ein Datensatz mit Daten zur Objekterkennung und Verfolgung mehrerer Objekte aus Drohnenaufnahmen mit über 10.000 Bildern und Videosequenzen.
  • VOC: Der Datensatz Pascal Visual Object Classes (VOC) zur Objekterkennung und Segmentierung mit 20 Objektklassen und über 11.000 Bildern.
  • xView: Ein Datensatz zur Objekterkennung in Aufnahmen aus der Vogelperspektive mit 60 Objektkategorien und über 1 Million annotierten Objekten.

Instanzsegmentierung#

Die Instanzsegmentierung ist eine Computer-Vision-Technik, bei der Objekte in einem Bild auf Pixelebene identifiziert und lokalisiert werden. Im Gegensatz zur semantischen Segmentierung, bei der nur jedes Pixel klassifiziert wird, unterscheidet die Instanzsegmentierung zwischen verschiedenen Instanzen derselben Klasse.

  • Carparts-seg: Ein speziell entwickelter Datensatz zur Identifizierung von Fahrzeugteilen für Anforderungen in den Bereichen Design, Fertigung und Forschung. Er eignet sich sowohl für Aufgaben der Objekterkennung als auch der Segmentierung.
  • COCO: Ein groß angelegter Datensatz für Aufgaben der Objekterkennung, Segmentierung und Bildbeschreibung mit über 200.000 beschrifteten Bildern.
  • COCO8-seg: Ein kleinerer Datensatz für Aufgaben der Instanzsegmentierung mit einer Teilmenge von 8 COCO-Bildern und Segmentierungsannotationen.
  • COCO128-seg: Ein kleinerer Datensatz für Aufgaben der Instanzsegmentierung mit einer Teilmenge von 128 COCO-Bildern und Segmentierungsannotationen.
  • Crack-seg: Ein speziell erstellter Datensatz zur Erkennung von Rissen auf Straßen und Wänden, der sich sowohl für Aufgaben der Objekterkennung als auch der Segmentierung eignet.
  • Package-seg: Ein speziell zugeschnittener Datensatz zur Identifizierung von Paketen in Lagern oder industriellen Umgebungen, geeignet für Anwendungen der Objekterkennung und Segmentierung.

Semantische Segmentierung#

Bei der semantischen Segmentierung wird jedem Pixel eines Bildes ein Klassenlabel zugewiesen. Dadurch entstehen dichte Szenenkarten für Anwendungen wie autonomes Fahren, Szeneninterpretation und die Kartierung der Landbedeckung.

  • Cityscapes: Ein Datensatz zur semantischen Segmentierung urbaner Straßenszenen mit 19 Trainingsklassen.
  • Cityscapes8: Eine kompakte Teilmenge von Cityscapes mit 8 Bildern für schnelle Prüfungen von Pipelines zur semantischen Segmentierung.
  • ADE20K: Ein Datensatz zur Szeneninterpretation mit 150 semantischen Klassen.

Tiefenschätzung#

Bei der monokularen Tiefenschätzung wird aus einem einzelnen RGB-Bild eine Tiefenkarte pro Pixel in Metern vorhergesagt. Dies unterstützt die 3D-Rekonstruktion von Szenen, die Navigation von Robotern und AR-/VR-Anwendungen.

  • Depth8: Eine kompakte Teilmenge von SUN RGB-D mit 8 Bildern für schnelle Prüfungen von Pipelines.
  • ARKitScenes: Reale Innenbereichs-RGB-D-Daten, erfasst mit Apple ARKit LiDAR, die größte reale Trainingsquelle.
  • SUN RGB-D: Reale Innenszenen, aufgenommen mit vier verschiedenen RGB-D-Sensoren.
  • DIODE: Dichte Innen- und Außentiefeninformationen von einem Laserscanner in Vermessungsqualität.
  • Hypersim: Fotorealistische synthetische Innenszenen mit perfekter Tiefeninformation pro Pixel.
  • TartanAir: Synthetische AirSim-Umgebungen mit dichter Tiefe bis ~80 m.
  • Virtual KITTI 2: Synthetische Nachbildung von KITTI-Fahrszenen mit dichter Tiefe.
  • KITTI: Reale Aussenszenen des autonomen Fahrens mit Velodyne-LiDAR-Tiefe, ausserdem der KITTI-Eigen-Benchmark.
  • ImageNet (pseudo-labeled): ImageNet-1K-Bilder mit Depth Anything 3 Pseudo-Labels für die Destillation.
  • NYU Depth V2: Ein standardmäßiger Benchmark für die Tiefenschätzung in Innenräumen, aufgenommen mit einer Microsoft Kinect v1.
  • ETH3D: Hochpräziser Innen- und Aussen-Laserscanner-Benchmark.
  • Make3D: Out-of-Distribution-Aussen-Campus-Benchmark.
  • iBims-1: Hochwertiger Innenraum-Benchmark für Tiefenkanten und ebene Oberflächen.

Klassifizierung#

Bei der Bildklassifizierung wird ein Bild anhand seines visuellen Inhalts einer oder mehreren vordefinierten Klassen oder Kategorien zugeordnet.

  • Caltech 101: Ein Datensatz mit Bildern aus 101 Objektkategorien für Aufgaben der Bildklassifizierung.
  • Caltech 256: Eine erweiterte Version von Caltech 101 mit 256 Objektkategorien und anspruchsvolleren Bildern.
  • CIFAR-10: Ein Datensatz mit 60.000 farbigen 32x32-Bildern aus 10 Klassen, mit jeweils 6.000 Bildern pro Klasse.
  • CIFAR-100: Eine erweiterte Version von CIFAR-10 mit 100 Objektkategorien und 600 Bildern pro Klasse.
  • Fashion-MNIST: Ein Datensatz mit 70.000 Graustufenbildern aus 10 Modekategorien für Aufgaben der Bildklassifizierung.
  • ImageNet: Ein groß angelegter Datensatz für Objekterkennung und Bildklassifizierung mit über 14 Millionen Bildern und 20.000 Kategorien.
  • ImageNet-10: Eine kleinere Teilmenge von ImageNet mit 10 Kategorien für schnellere Experimente und Tests.
  • Imagenette: Eine kleinere Teilmenge von ImageNet mit 10 leicht unterscheidbaren Klassen für schnelleres Training und Testen.
  • Imagewoof: Eine anspruchsvollere Teilmenge von ImageNet mit 10 Kategorien von Hunderassen für Aufgaben der Bildklassifizierung.
  • MNIST: Ein Datensatz mit 70.000 Graustufenbildern handgeschriebener Ziffern für Aufgaben der Bildklassifizierung.
  • MNIST160: Die ersten 8 Bilder jeder Ziffer (0-9) aus den Trainings- und Testaufteilungen von MNIST. Der Datensatz enthält insgesamt 160 Bilder.

Posenschätzung#

Die Posenschätzung ist eine Technik zur Bestimmung der Pose eines Objekts relativ zur Kamera oder zum Weltkoordinatensystem. Dazu werden wichtige Punkte oder Gelenke auf Objekten identifiziert, insbesondere bei Menschen oder Tieren.

  • COCO: Ein groß angelegter Datensatz mit Annotationen menschlicher Posen, der für Aufgaben der Posenschätzung entwickelt wurde.
  • COCO8-pose: Ein kleinerer Datensatz für Aufgaben der Posenschätzung mit einer Teilmenge von 8 COCO-Bildern und Annotationen menschlicher Posen.
  • Dog-pose: Ein umfassender Datensatz mit etwa 8.500 hundebezogenen Bildern, die mit jeweils 24 Schlüsselpunkten pro Hund annotiert sind, zugeschnitten auf Aufgaben der Posenschätzung.
  • Hand-Keypoints: Ein kompakter Datensatz mit über 26.000 Bildern menschlicher Hände, die mit jeweils 21 Schlüsselpunkten pro Hand annotiert sind, für Aufgaben der Posenschätzung.
  • Tiger-pose: Ein kompakter Datensatz mit 263 tigerbezogenen Bildern, die für Aufgaben der Posenschätzung mit jeweils 12 Schlüsselpunkten pro Tiger annotiert sind.

Orientierte Begrenzungsrahmen (OBB)#

Rotierte Begrenzungsrahmen (OBB) sind ein Verfahren der Computer Vision zur Erkennung schräg ausgerichteter Objekte in Bildern mithilfe gedrehter Begrenzungsrahmen, das häufig auf Luft- und Satellitenaufnahmen angewendet wird. Im Gegensatz zu herkömmlichen Begrenzungsrahmen können OBB Objekte mit unterschiedlichen Ausrichtungen besser umschließen.

  • DOTA-v2: Ein beliebter OBB-Datensatz für Luftaufnahmen mit 1,7 Millionen Instanzen und 11.268 Bildern.
  • DOTA8: Eine kleinere Teilmenge der ersten 8 Bilder aus der DOTAv1-Aufteilung, davon 4 für das Training und 4 für die Validierung, geeignet für schnelle Tests.
  • DOTA128: Eine Teilmenge des DOTA-Datensatzes mit 128 Bildern für Training und Validierung, die ein gutes Verhältnis zwischen Größe und Vielfalt zum Testen von OBB-Modellen bietet.

Neue Datensätze beitragen#

Das Beitragen eines neuen Datensatzes umfasst mehrere Schritte, damit er gut in die bestehende Infrastruktur passt. Nachfolgend findest du die erforderlichen Schritte:



Watch: How to Contribute to Ultralytics Datasets

Schritte zum Beitragen eines neuen Datensatzes#

  1. Bilder sammeln: Sammle die Bilder, die zum Datensatz gehören. Du kannst sie aus verschiedenen Quellen beziehen, etwa aus öffentlichen Datenbanken oder deiner eigenen Sammlung.

  2. Bilder annotieren: Annotiere die Bilder abhängig von der Aufgabe mit Begrenzungsrahmen, Segmenten oder Schlüsselpunkten.

  3. Annotationen exportieren: Wandle diese Annotationen in das von Ultralytics unterstützte YOLO-Dateiformat *.txt um.

  4. Datensatz organisieren: Ordne deinen Datensatz in der korrekten Ordnerstruktur an. Es sollte die Verzeichnisse images/ und labels/ auf oberster Ebene geben, die jeweils ein Unterverzeichnis train/ und val/ enthalten.

    dataset/
    ├── images/
    │   ├── train/
    │   └── val/
    └── labels/
        ├── train/
        └── val/
  5. Eine data.yaml-Datei erstellen: Erstelle im Stammverzeichnis deines Datensatzes eine data.yaml-Datei, die den Datensatz, die Klassen und weitere erforderliche Informationen beschreibt.

  6. Bilder optimieren (optional): Wenn du die Größe des Datensatzes für eine effizientere Verarbeitung reduzieren möchtest, kannst du die Bilder mit dem folgenden Code optimieren. Dies ist nicht erforderlich, wird aber für kleinere Datensätze und schnellere Downloads empfohlen.

  7. Datensatz komprimieren: Komprimiere den gesamten Datensatzordner in einer ZIP-Datei.

  8. Dokumentation und PR: Erstelle eine Dokumentationsseite, die deinen Datensatz und seine Einbindung in das bestehende Framework beschreibt. Reiche anschließend eine Pull-Anfrage (PR) ein. Weitere Informationen zum Einreichen eines PR findest du in den Ultralytics-Richtlinien für Beiträge.

Beispielcode zum Optimieren und Komprimieren eines Datensatzes#

Einen Datensatz optimieren und komprimieren
from pathlib import Path

from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory

# Define dataset directory
path = Path("path/to/dataset")

# Optimize images in dataset (optional)
for f in path.rglob("*.jpg"):
    compress_one_image(f)

# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)

Wenn du diese Schritte befolgst, kannst du einen neuen Datensatz beitragen, der sich gut in die bestehende Struktur von Ultralytics integrieren lässt.

FAQ#

  • Ultralytics unterstützt eine große Auswahl an Datensätzen für die Objekterkennung, darunter:

    • COCO: Ein groß angelegter Datensatz zur Objekterkennung, Segmentierung und Bildbeschreibung mit 80 Objektkategorien.
    • LVIS: Ein umfassender Datensatz mit 1203 Objektkategorien, der für eine feingranularere Objekterkennung und Segmentierung entwickelt wurde.
    • Argoverse: Ein Datensatz mit Daten zur 3D-Verfolgung und Bewegungsprognose aus städtischen Umgebungen mit umfangreichen Annotationen.
    • VisDrone: Ein Datensatz mit Daten zur Objekterkennung und Verfolgung mehrerer Objekte aus Drohnenaufnahmen.
    • SKU-110K: Mit dichter Objekterkennung in Einzelhandelsumgebungen und über 11.000 Bildern.

    Diese Datensätze unterstützen das Training robuster Ultralytics-YOLO-Modelle für verschiedene Anwendungen der Objekterkennung.

  • Das Beitragen eines neuen Datensatzes umfasst mehrere Schritte:

    1. Bilder sammeln: Sammle Bilder aus öffentlichen Datenbanken oder persönlichen Sammlungen.
    2. Bilder annotieren: Füge abhängig von der Aufgabe Begrenzungsrahmen, Segmente oder Schlüsselpunkte hinzu.
    3. Annotationen exportieren: Wandle die Annotationen in das YOLO-Format *.txt um.
    4. Datensatz organisieren: Verwende die Ordnerstruktur mit den Verzeichnissen train/ und val/, die jeweils die Unterverzeichnisse images/ und labels/ enthalten.
    5. Eine data.yaml-Datei erstellen: Füge Beschreibungen des Datensatzes, Klassen und weitere relevante Informationen hinzu.
    6. Bilder optimieren (optional): Reduziere die Größe des Datensatzes für eine effizientere Verarbeitung.
    7. Datensatz komprimieren: Komprimiere den Datensatz in einer ZIP-Datei.
    8. Dokumentation und PR: Beschreibe deinen Datensatz und reiche gemäß den Ultralytics-Richtlinien für Beiträge eine Pull-Anfrage ein.

    Eine umfassende Anleitung findest du unter Neue Datensätze beitragen.

  • Die Ultralytics Platform bietet leistungsstarke Funktionen zur Verwaltung und Analyse von Datensätzen, darunter:

    • Nahtlose Datensatzverwaltung: Lade deine Datensätze hoch, organisiere und verwalte sie an einem zentralen Ort.
    • Sofortige Trainingsintegration: Verwende hochgeladene Datensätze direkt für das Training von Modellen, ohne zusätzliche Einrichtung.
    • Visualisierungswerkzeuge: Untersuche und visualisiere die Bilder und Annotationen deines Datensatzes.
    • Datensatzanalyse: Gewinne Einblicke in die Verteilung und die Merkmale deines Datensatzes.

    Die Plattform optimiert den Übergang von der Datensatzverwaltung zum Modelltraining und macht den gesamten Prozess effizienter. Erfahre mehr über Datensätze der Ultralytics Platform.

  • Ultralytics YOLO-Modelle bieten mehrere einzigartige Funktionen für Aufgaben im Bereich Computer Vision:

    • Echtzeitverarbeitung: Hochgeschwindigkeitsinferenz und -training für zeitkritische Anwendungen.
    • Vielseitigkeit: Unterstützung für Objekterkennung, Instanzsegmentierung, semantische Segmentierung, Tiefenschätzung, Klassifizierung und Posenschätzung in einem einheitlichen Framework.
    • Vortrainierte Modelle: Zugriff auf leistungsstarke, vortrainierte Modelle für verschiedene Anwendungen, wodurch sich die Trainingszeit verkürzt.
    • Umfangreiche Community-Unterstützung: Eine aktive Community und umfassende Dokumentation zur Fehlerbehebung und Entwicklung.
    • Einfache Integration: Eine einfache API zur Integration in bestehende Projekte und Arbeitsabläufe.

    Erfahre mehr über YOLO-Modelle auf der Seite Ultralytics-Modelle.

  • Um einen Datensatz mit den Tools von Ultralytics zu optimieren und zu zippen, kannst du diesem Beispielcode folgen:

    Einen Datensatz optimieren und komprimieren
    from pathlib import Path
    
    from ultralytics.data.utils import compress_one_image
    from ultralytics.utils.downloads import zip_directory
    
    # Define dataset directory
    path = Path("path/to/dataset")
    
    # Optimize images in dataset (optional)
    for f in path.rglob("*.jpg"):
        compress_one_image(f)
    
    # Zip dataset into 'path/to/dataset.zip'
    zip_directory(path)

    Dieser Prozess trägt dazu bei, die Größe des Datensatzes zu reduzieren und so eine effizientere Speicherung sowie schnellere Downloads zu ermöglichen. Erfahre mehr darüber, wie du einen Datensatz optimierst und zippst.

Kommentare