Ultralytics YOLO27:

Verbessere deinen Datensatz, um YOLO26 mit Albumentations zu trainieren#

Beim Erstellen von Computer-Vision-Modellen können die Qualität und Vielfalt deiner Trainingsdaten maßgeblich beeinflussen, wie gut dein Modell funktioniert. Albumentations bietet eine schnelle, flexible und effiziente Möglichkeit, eine große Auswahl an Bildtransformationen anzuwenden, die die Fähigkeit deines Modells verbessern können, sich an reale Szenarien anzupassen. Es lässt sich problemlos in Ultralytics YOLO26 integrieren und kann dir helfen, robuste Datensätze für Aufgaben wie Objekterkennung, Segmentierung und Klassifizierung zu erstellen.

Mit Albumentations kannst du deine YOLO26-Trainingsdaten durch Techniken wie geometrische Transformationen und Farbanpassungen erweitern. In diesem Artikel sehen wir uns an, wie Albumentations deinen Prozess der Datenerweiterung verbessern und deine YOLO26-Projekte noch wirkungsvoller machen kann. Legen wir los!

Albumentations für die Bilderweiterung#

Albumentations ist eine Open-Source-Bibliothek zur Bilderweiterung, die im Juni 2018 entwickelt wurde. Sie wurde entwickelt, um den Prozess der Bilderweiterung in der Computer Vision zu vereinfachen und zu beschleunigen. Die auf Leistung und Flexibilität ausgelegte Bibliothek unterstützt viele verschiedene Erweiterungstechniken – von einfachen Transformationen wie Drehungen und Spiegelungen bis hin zu komplexeren Anpassungen wie Änderungen von Helligkeit und Kontrast. Albumentations hilft Entwicklern, umfangreiche und vielfältige Datensätze für Aufgaben wie Bildklassifizierung, Objekterkennung und Segmentierung zu erstellen.

Du kannst Albumentations nutzen, um Augmentierungen problemlos auf Bilder, Segmentierungsmasken, Bounding Boxes und Keypoints anzuwenden und sicherzustellen, dass alle Elemente deines Datensatzes zusammen transformiert werden. Es funktioniert nahtlos mit gängigen Frameworks für Deep Learning wie PyTorch und TensorFlow, wodurch es für eine Vielzahl von Projekten zugänglich ist.

Albumentations ist außerdem eine gute Option für die Datenerweiterung, unabhängig davon, ob du kleine Datensätze oder umfangreiche Computer-Vision-Aufgaben bearbeitest. Die Bibliothek ermöglicht eine schnelle und effiziente Verarbeitung und verkürzt dadurch die für die Datenvorbereitung benötigte Zeit. Gleichzeitig trägt sie zur Verbesserung der Modellleistung bei und macht deine Modelle in realen Anwendungen effektiver.

Wichtige Funktionen von Albumentations#

Albumentations bietet viele nützliche Funktionen, die komplexe Bilderweiterungen für eine große Bandbreite an Computer-Vision-Anwendungen vereinfachen. Hier sind einige der wichtigsten Funktionen:

  • Große Auswahl an Transformationen: Albumentations bietet über 70 verschiedene Transformationen, darunter geometrische Änderungen (z. B. Drehung und Spiegelung), Farbanpassungen (z. B. Helligkeit und Kontrast) sowie das Hinzufügen von Rauschen (z. B. Gaußsches Rauschen). Die vielen Optionen ermöglichen die Erstellung besonders vielfältiger und robuster Trainingsdatensätze.

Albumentations augmentation examples

  • Optimierung für hohe Leistung: Albumentations basiert auf OpenCV und NumPy und verwendet fortschrittliche Optimierungstechniken wie SIMD (Single Instruction, Multiple Data), mit denen mehrere Datenpunkte gleichzeitig verarbeitet werden, um die Verarbeitung zu beschleunigen. Die Bibliothek verarbeitet große Datensätze schnell und gehört damit zu den schnellsten verfügbaren Optionen für die Bilderweiterung.

  • Drei Ebenen der Datenerweiterung: Albumentations unterstützt drei Ebenen der Datenerweiterung: Transformationen auf Pixelebene, auf räumlicher Ebene und auf Mischungsebene. Transformationen auf Pixelebene wirken sich nur auf die Eingabebilder aus, ohne Masken, Begrenzungsrahmen oder Schlüsselpunkte zu verändern. Bei Transformationen auf räumlicher Ebene werden hingegen sowohl das Bild als auch seine Elemente, etwa Masken und Begrenzungsrahmen, transformiert. Transformationen auf Mischungsebene bieten außerdem eine besondere Möglichkeit zur Datenerweiterung, da sie mehrere Bilder zu einem kombinieren.

Übersicht über die verschiedenen Ebenen der Datenerweiterung

  • Benchmark-Ergebnisse: Bei Benchmarks übertrifft Albumentations andere Bibliotheken durchgängig, insbesondere bei großen Datensätzen.

Warum solltest du Albumentations für deine Vision-AI-Projekte verwenden?#

Bei der Bilderweiterung zeichnet sich Albumentations als zuverlässiges Werkzeug für Computer-Vision-Aufgaben aus. Hier sind einige wichtige Gründe, warum du die Bibliothek für deine Vision-AI-Projekte in Betracht ziehen solltest:

  • Benutzerfreundliche API: Albumentations bietet eine einheitliche, unkomplizierte API zum Anwenden einer großen Auswahl an Erweiterungen auf Bilder, Masken, Begrenzungsrahmen und Schlüsselpunkte. Die API ist so konzipiert, dass sie sich leicht an verschiedene Datensätze anpassen lässt und dadurch die Datenvorbereitung einfacher und effizienter macht.

  • Sorgfältige Fehlertests: Fehler in der Pipeline zur Datenerweiterung können Eingabedaten unbemerkt beschädigen und dadurch letztlich die Modellleistung beeinträchtigen. Albumentations begegnet diesem Problem mit einer umfassenden Testsuite, die hilft, Fehler frühzeitig während der Entwicklung zu erkennen.

  • Erweiterbarkeit: Mit Albumentations kannst du problemlos neue Erweiterungen hinzufügen und sie zusammen mit den integrierten Transformationen über eine einheitliche Schnittstelle in Computer-Vision-Pipelines verwenden.

So erweiterst du Daten für das Training von YOLO26 mit Albumentations#

Nachdem wir nun erläutert haben, was Albumentations ist und was die Bibliothek leisten kann, sehen wir uns an, wie du sie zur Erweiterung deiner Daten für das Training eines YOLO26-Modells verwendest. Die Einrichtung ist einfach, da die Bibliothek direkt in den Trainingsmodus von Ultralytics integriert ist und automatisch angewendet wird, wenn du das Albumentations-Paket installiert hast.

Installation#

Um Albumentations mit YOLO26 zu verwenden, stelle zunächst sicher, dass die erforderlichen Pakete installiert sind. Wenn Albumentations nicht installiert ist, werden während des Trainings keine Erweiterungen angewendet. Nach der Einrichtung kannst du einen erweiterten Datensatz für das Training erstellen, wobei Albumentations automatisch integriert wird, um dein Modell zu verbessern.

Installation
# Install the required packages
pip install albumentations ultralytics

Ausführliche Anweisungen und bewährte Vorgehensweisen zur Installation findest du in unserem Installationsleitfaden von Ultralytics. Sollten bei der Installation der für YOLO26 erforderlichen Pakete Schwierigkeiten auftreten, findest du in unserem Leitfaden zu häufigen Problemen Lösungen und Tipps.

Die Beispiele für benutzerdefinierte Transformationen auf dieser Seite benötigen Albumentations 1.4.22 oder neuer und daher Python 3.9 oder neuer.

Verwendung#

Nach der Installation der erforderlichen Pakete kannst du Albumentations mit YOLO26 verwenden. Beim Training von YOLO26 wird durch die Integration mit Albumentations automatisch eine Reihe von Erweiterungen angewendet, sodass du die Leistung deines Modells problemlos verbessern kannst.

Verwendung
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model with default augmentations
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Als Nächstes sehen wir uns die spezifischen Erweiterungen an, die während des Trainings angewendet werden.

Unschärfe#

Die Transformation „Blur“ in Albumentations wendet einen einfachen Unschärfeeffekt auf das Bild an, indem Pixelwerte innerhalb eines kleinen quadratischen Bereichs, des Kernels, gemittelt werden. Dies geschieht mithilfe der OpenCV-Funktion cv2.blur, die das Rauschen im Bild reduziert, zugleich aber auch die Bilddetails leicht verringert.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

  • blur_limit: Steuert den Größenbereich des Unschärfeeffekts. Der Standardbereich ist (3, 7), das heißt, die Kernelgröße für die Unschärfe kann zwischen 3 und 7 Pixeln variieren. Dabei sind nur ungerade Zahlen zulässig, damit die Unschärfe zentriert bleibt.

  • p: Die Wahrscheinlichkeit, mit der die Unschärfe angewendet wird. In der Integration gilt p=0.01, daher besteht für jedes Bild eine Wahrscheinlichkeit von 1 %, dass diese Unschärfe angewendet wird. Die geringe Wahrscheinlichkeit ermöglicht gelegentliche Unschärfeeffekte und bringt etwas Variation ein, damit das Modell besser generalisiert, ohne die Bilder übermäßig zu verwischen.

Albumentations Blur augmentation result

Medianunschärfe#

Die Transformation „MedianBlur“ in Albumentations wendet einen Medianunschärfeeffekt auf das Bild an, der sich besonders zur Rauschreduzierung bei gleichzeitigem Erhalt von Kanten eignet. Im Gegensatz zu herkömmlichen Unschärfemethoden verwendet „MedianBlur“ einen Medianfilter, der insbesondere Salz-und-Pfeffer-Rauschen entfernt und dabei die Kantenschärfe erhält.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

  • blur_limit: Dieser Parameter steuert die maximale Größe des Unschärfekernels. In dieser Integration ist standardmäßig ein Bereich von (3, 7) festgelegt. Das bedeutet, dass die Kernelgröße für die Unschärfe zufällig zwischen 3 und 7 Pixeln gewählt wird, wobei nur ungerade Werte zulässig sind, um eine korrekte Ausrichtung sicherzustellen.

  • p: Legt die Wahrscheinlichkeit fest, mit der die Medianunschärfe angewendet wird. Hier gilt p=0.01, daher besteht für jedes Bild eine Wahrscheinlichkeit von 1 %, dass die Transformation angewendet wird. Durch diese geringe Wahrscheinlichkeit wird die Medianunschärfe sparsam eingesetzt. Das unterstützt die Generalisierung des Modells, da es gelegentlich Bilder mit reduziertem Rauschen und erhaltenen Kanten sieht.

Das folgende Bild zeigt ein Beispiel für diese auf ein Bild angewendete Erweiterung.

Albumentations MedianBlur augmentation

Graustufen#

Die Transformation „ToGray“ in Albumentations konvertiert ein Bild in Graustufen, reduziert es auf ein Einkanalformat und repliziert diesen Kanal optional, um eine festgelegte Anzahl von Ausgabekanälen zu erreichen. Für die Berechnung der Graustufenhelligkeit können verschiedene Methoden verwendet werden – von einer einfachen Mittelwertbildung bis hin zu fortschrittlicheren Verfahren für eine realistische Wahrnehmung von Kontrast und Helligkeit.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

  • num_output_channels: Legt die Anzahl der Kanäle im Ausgabebild fest. Ist dieser Wert größer als 1, wird der einzelne Graustufenkanal repliziert, um ein mehrkanaliges Graustufenbild zu erstellen. Standardmäßig ist der Wert auf 3 gesetzt, wodurch ein Graustufenbild mit drei identischen Kanälen entsteht.

  • method: Legt die Methode zur Umwandlung in Graustufen fest. Die Standardmethode „weighted_average“ verwendet die Formel (0.299R + 0.587G + 0.114B), die der menschlichen Wahrnehmung nahekommt und einen natürlich wirkenden Graustufeneffekt erzeugt. Andere Optionen wie „from_lab“, „desaturation“, „average“, „max“ und „pca“ bieten je nach Anforderungen an Geschwindigkeit, Helligkeitsbetonung oder Detailerhalt alternative Möglichkeiten zur Erstellung von Graustufenbildern.

  • p: Steuert, wie häufig die Graustufentransformation angewendet wird. Bei p=0.01 besteht eine Wahrscheinlichkeit von 1 %, jedes Bild in Graustufen umzuwandeln. Dadurch kann eine Mischung aus Farb- und Graustufenbildern entstehen, die dem Modell hilft, besser zu generalisieren.

Das folgende Bild zeigt ein Beispiel für diese auf ein Bild angewendete Graustufentransformation.

Albumentations grayscale conversion

Kontrastbegrenzte adaptive Histogrammangleichung (CLAHE)#

Die Transformation „CLAHE“ in Albumentations wendet die kontrastbegrenzte adaptive Histogrammangleichung (CLAHE) an, eine Technik zur Verbesserung des Bildkontrasts, bei der das Histogramm in lokalen Bereichen (Kacheln) statt über das gesamte Bild angeglichen wird. CLAHE erzeugt einen ausgewogenen Verbesserungseffekt und vermeidet den übermäßig verstärkten Kontrast, der bei einer standardmäßigen Histogrammangleichung entstehen kann, insbesondere in Bereichen mit ursprünglich geringem Kontrast.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

  • clip_limit: Steuert den Bereich der Kontrastverbesserung. Der Standardbereich ist auf (1, 4) gesetzt und bestimmt den maximal zulässigen Kontrast in jeder Kachel. Höhere Werte erzeugen mehr Kontrast, können jedoch auch Rauschen hinzufügen.

  • tile_grid_size: Definiert die Größe des Kachelrasters, typischerweise als (Zeilen, Spalten). Der Standardwert ist (8, 8), das heißt, das Bild wird in ein 8x8-Raster aufgeteilt. Kleinere Kacheln ermöglichen lokalere Anpassungen, während größere Kacheln Effekte erzeugen, die eher einer globalen Angleichung entsprechen.

  • p: Die Wahrscheinlichkeit, mit der CLAHE angewendet wird. Hier erzeugt p=0.01 den Verbesserungseffekt nur in 1 % der Fälle. Dadurch werden Kontrastanpassungen sparsam eingesetzt und sorgen gelegentlich für Variation in den Trainingsbildern.

Das folgende Bild zeigt ein Beispiel für die angewendete CLAHE-Transformation.

Albumentations CLAHE contrast enhancement

Benutzerdefinierte Albumentations-Transformationen verwenden#

Die standardmäßige Albumentations-Integration bietet zwar eine solide Auswahl an Erweiterungen, du möchtest die Transformationen möglicherweise für deinen speziellen Anwendungsfall anpassen. Mit Ultralytics YOLO26 kannst du über die Python API mithilfe des Parameters augmentations problemlos benutzerdefinierte Albumentations-Transformationen übergeben. Die Beispiele in diesem Abschnitt benötigen Albumentations 1.4.22 oder neuer.

Benutzerdefinierte Transformationen definieren#

Du kannst deine eigene Liste von Albumentations-Transformationen definieren und sie an die Trainingsfunktion übergeben. Dadurch werden die standardmäßigen Albumentations-Transformationen ersetzt, während alle anderen YOLO-Erweiterungen (wie hsv_h, degrees, mosaic usw.) aktiv bleiben.

Hier ist ein Beispiel mit fortgeschritteneren Transformationen:

import albumentations as A

from ultralytics import YOLO

# Load model
model = YOLO("yolo26n.pt")

# Define custom transforms with various augmentation techniques
custom_transforms = [
    # Blur variations
    A.OneOf(
        [
            A.MotionBlur(blur_limit=7, p=1.0),
            A.MedianBlur(blur_limit=7, p=1.0),
            A.GaussianBlur(blur_limit=7, p=1.0),
        ],
        p=0.3,
    ),
    # Noise variations
    A.OneOf(
        [
            A.GaussNoise(std_range=(0.0124, 0.0277), p=1.0),
            A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
        ],
        p=0.2,
    ),
    # Color and contrast adjustments
    A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), p=0.5),
    A.RandomBrightnessContrast(brightness_limit=0.3, contrast_limit=0.3, p=0.5),
    A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=20, p=0.5),
    # Simulate occlusions
    A.CoarseDropout(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]

# Train with custom transforms
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    augmentations=custom_transforms,
)

Wichtige Hinweise#

Beachte bei der Verwendung benutzerdefinierter Albumentations-Transformationen die folgenden Punkte:

  • Konfiguration: Erstelle benutzerdefinierte Transform-Objekte über die Python-API. Serialisierte Transformationen können auch über CLI- oder YAML-Konfigurationsdateien übergeben werden, auch beim Fortsetzen des Trainings.
  • Ersetzt die Standardwerte: Deine benutzerdefinierten Transformationen ersetzen die standardmäßigen Albumentations-Transformationen vollständig. Andere YOLO-Erweiterungen bleiben aktiv.
  • Label-Verarbeitung: Räumliche Transformationen, einschließlich solcher, die in A.OneOf oder A.Compose verschachtelt sind, verschieben Bounding-Boxen, Polygone, Keypoints sowie Tiefen- oder semantische Masken zusammen mit dem Bild. A.RandomGridShuffle kann die Polygon- oder Keypoint-Topologie nicht beibehalten und löst bei Segmentierungs-, Pose- und OBB-Stichproben einen Fehler aus.
  • Leistung: Einige Transformationen sind rechenintensiv. Überwache die Trainingsgeschwindigkeit und passe sie entsprechend an.
  • Aufgabenkompatibilität: Benutzerdefinierte Albumentations-Transformationen funktionieren mit dem Training für Objekterkennung, Segmentierung, semantische Segmentierung, Tiefe, Pose und OBB, jedoch nicht mit der Klassifizierung (die eine andere Augmentierungs-Pipeline verwendet).

Anwendungsfälle für benutzerdefinierte Transformationen#

Verschiedene Anwendungen profitieren von unterschiedlichen Strategien zur Datenerweiterung:

  • Medizinische Bildgebung: Verwende elastische Verformungen, Gitterverzerrungen und spezielle Rauschmuster.
  • Luft- und Satellitenbilder: Wende Transformationen an, die unterschiedliche Flughöhen, Wetterbedingungen und Beleuchtungswinkel simulieren.
  • Szenarien mit wenig Licht: Verstärke das Hinzufügen von Rauschen und Helligkeitsanpassungen, um robuste Modelle für anspruchsvolle Lichtverhältnisse zu trainieren.
  • Industrielle Inspektion: Füge Texturvariationen und simulierte Defekte für Anwendungen der Qualitätskontrolle hinzu.

Eine vollständige Liste der verfügbaren Transformationen und ihrer Parameter findest du in der Albumentations-Dokumentation.

Weitere ausführliche Beispiele und bewährte Vorgehensweisen zur Verwendung benutzerdefinierter Albumentations-Transformationen mit YOLO26 findest du im Leitfaden zur YOLO-Datenerweiterung.

Weiterführende Informationen zu Albumentations#

Wenn du mehr über Albumentations erfahren möchtest, findest du in den folgenden Ressourcen ausführlichere Anleitungen und Beispiele:

Wichtige Erkenntnisse#

In diesem Leitfaden haben wir die wichtigsten Aspekte von Albumentations untersucht, einer leistungsfähigen Python-Bibliothek zur Bilderweiterung. Wir haben ihre große Auswahl an Transformationen und optimierte Leistung besprochen und gezeigt, wie du sie in deinem nächsten YOLO26-Projekt verwenden kannst.

Wenn du mehr über andere Integrationen von Ultralytics YOLO26 erfahren möchtest, besuche außerdem unsere Seite zum Integrationsleitfaden. Dort findest du wertvolle Ressourcen und Einblicke.

FAQ#

  • Albumentations lässt sich nahtlos in YOLO26 integrieren und wird während des Trainings automatisch angewendet, wenn du das Paket installiert hast. So legst du los:

    # Install required packages
    # !pip install albumentations ultralytics
    from ultralytics import YOLO
    
    # Load and train model with automatic augmentations
    model = YOLO("yolo26n.pt")
    model.train(data="coco8.yaml", epochs=100)

    Die Integration umfasst optimierte Erweiterungen wie Unschärfe, Medianunschärfe, die Umwandlung in Graustufen und CLAHE mit sorgfältig abgestimmten Wahrscheinlichkeiten zur Verbesserung der Modellleistung.

  • Albumentations zeichnet sich aus mehreren Gründen aus:

    1. Leistung: Basiert auf OpenCV und NumPy und nutzt SIMD-Optimierung für eine besonders hohe Geschwindigkeit
    2. Flexibilität: Unterstützt mehr als 70 Transformationen auf Pixelebene, räumlicher Ebene und Mischungsebene
    3. Kompatibilität: Funktioniert nahtlos mit gängigen Frameworks wie PyTorch und TensorFlow
    4. Zuverlässigkeit: Eine umfassende Testsuite verhindert die unbemerkte Beschädigung von Daten
    5. Benutzerfreundlichkeit: Eine einheitliche API für alle Arten der Datenerweiterung
  • Albumentations verbessert verschiedene Computer-Vision-Aufgaben, darunter:

    • Objekterkennung: Verbessert die Robustheit des Modells gegenüber Variationen bei Beleuchtung, Maßstab und Ausrichtung.
    • Instanzsegmentierung: Verbessert die Genauigkeit der Maskenvorhersage durch vielfältige Transformationen.
    • Klassifizierung: Verbessert die Generalisierung des Modells durch Farb- und geometrische Erweiterungen.
    • Posenschätzung: Hilft Modellen, sich an unterschiedliche Perspektiven und Lichtverhältnisse anzupassen.

    Die vielfältigen Optionen zur Datenerweiterung machen die Bibliothek für jede Bildverarbeitungsaufgabe wertvoll, die eine robuste Modellleistung erfordert.

Kommentare