Ultralytics YOLO27:
Get Started

Optimiere deinen Datensatz, um YOLO26 mit Albumentations zu trainieren#

Wenn du Computer-Vision-Modelle entwickelst, können Qualität und Vielfalt deiner Trainingsdaten wesentlich dazu beitragen, wie gut dein Modell abschneidet. Albumentations bietet eine schnelle, flexible und effiziente Möglichkeit, zahlreiche Bildtransformationen anzuwenden, mit denen sich die Anpassungsfähigkeit deines Modells an reale Szenarien verbessern lässt. Die Bibliothek lässt sich problemlos in Ultralytics YOLO26 integrieren und hilft dir dabei, robuste Datensätze für Aufgaben wie Objekterkennung, Segmentierung und Klassifizierung zu erstellen.

Mit Albumentations kannst du deine YOLO26-Trainingsdaten durch Verfahren wie geometrische Transformationen und Farbanpassungen erweitern. In diesem Artikel erfährst du, wie Albumentations deinen Prozess der Datenerweiterung verbessern und deine YOLO26-Projekte noch wirkungsvoller machen kann. Los geht’s!

Albumentations für die Bildaugmentation#

Albumentations ist eine quelloffene Bibliothek zur Bildaugmentation, die im Juni 2018 entwickelt wurde. Sie wurde konzipiert, um den Prozess der Bildaugmentation in der Computer Vision zu vereinfachen und zu beschleunigen. Die Bibliothek wurde mit Blick auf Leistung und Flexibilität entwickelt und unterstützt zahlreiche verschiedene Augmentierungsmethoden, von einfachen Transformationen wie Drehungen und Spiegelungen bis hin zu komplexeren Anpassungen wie Änderungen von Helligkeit und Kontrast. Albumentations hilft Entwicklerinnen und Entwicklern dabei, umfangreiche und vielfältige Datensätze für Aufgaben wie Bildklassifizierung, Objekterkennung und Segmentierung zu erstellen.

Mit Albumentations kannst du Augmentierungen ganz einfach auf Bilder, Segmentierungsmasken, Begrenzungsrahmen und Schlüsselpunkte anwenden und sicherstellen, dass alle Elemente deines Datensatzes gemeinsam transformiert werden. Die Bibliothek funktioniert reibungslos mit beliebten Deep-Learning-Frameworks wie PyTorch und TensorFlow und eignet sich dadurch für viele verschiedene Projekte.

Albumentations eignet sich außerdem hervorragend zur Augmentierung, ganz gleich, ob du kleine Datensätze oder umfangreiche Computer-Vision-Aufgaben bearbeitest. Die Bibliothek sorgt für eine schnelle und effiziente Verarbeitung und verkürzt so die Zeit für die Datenaufbereitung. Gleichzeitig hilft sie dabei, die Modellleistung zu verbessern und deine Modelle in realen Anwendungen effektiver zu machen.

Wichtige Funktionen von Albumentations#

Albumentations bietet viele nützliche Funktionen, die komplexe Bildaugmentierungen für zahlreiche Computer-Vision-Anwendungen vereinfachen. Hier sind einige der wichtigsten Funktionen:

  • Große Auswahl an Transformationen: Albumentations bietet mehr als 70 verschiedene Transformationen, darunter geometrische Veränderungen (z. B. Drehungen und Spiegelungen), Farbanpassungen (z. B. Helligkeit und Kontrast) und das Hinzufügen von Rauschen (z. B. Gaußsches Rauschen). Die Vielzahl an Optionen ermöglicht es, äußerst vielfältige und robuste Trainingsdatensätze zu erstellen.

Albumentations augmentation examples

  • Hohe Verarbeitungsgeschwindigkeit: Albumentations basiert auf OpenCV und NumPy und nutzt fortschrittliche Optimierungstechniken wie SIMD (Einzelinstruktion, mehrere Daten), bei der mehrere Datenpunkte gleichzeitig verarbeitet werden, um die Verarbeitung zu beschleunigen. Die Bibliothek verarbeitet große Datensätze schnell und zählt damit zu den schnellsten verfügbaren Optionen für die Bildaugmentation.

  • Drei Ebenen der Augmentierung: Albumentations unterstützt drei Ebenen der Augmentierung: Transformationen auf Pixelebene, räumliche Transformationen und Transformationen auf Mischungsebene. Transformationen auf Pixelebene verändern ausschließlich die Eingabebilder, nicht aber Masken, Begrenzungsrahmen oder Schlüsselpunkte. Bei räumlichen Transformationen werden hingegen sowohl das Bild als auch seine Elemente wie Masken und Begrenzungsrahmen verändert. Transformationen auf Mischungsebene bieten darüber hinaus eine besondere Möglichkeit zur Datenerweiterung, indem sie mehrere Bilder zu einem zusammenführen.

Übersicht über die verschiedenen Ebenen der Augmentierung

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

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

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

  • Einfach zu verwendende API: Albumentations bietet eine einzige, unkomplizierte API, mit der du zahlreiche Augmentierungen auf Bilder, Masken, Begrenzungsrahmen und Schlüsselpunkte anwenden kannst. Die API lässt sich leicht an verschiedene Datensätze anpassen und macht so die Datenaufbereitung einfacher und effizienter.

  • Gründliche Fehlertests: Fehler in der Augmentierungspipeline können Eingabedaten unbemerkt verfälschen und dadurch letztlich die Modellleistung beeinträchtigen. Albumentations wirkt dem mit einer umfassenden Testsuite entgegen, die hilft, Fehler frühzeitig während der Entwicklung zu finden.

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

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

Nachdem wir nun behandelt haben, was Albumentations ist und was die Bibliothek kann, schauen wir uns an, wie du damit deine Daten für das Training eines YOLO26-Modells augmentierst. Die Einrichtung ist einfach, denn Albumentations ist direkt in den Trainingsmodus von Ultralytics integriert und wird automatisch angewendet, wenn das Albumentations-Paket installiert ist.

Installation#

Um Albumentations mit YOLO26 zu verwenden, musst du zunächst sicherstellen, dass die erforderlichen Pakete installiert sind. Ist Albumentations nicht installiert, werden während des Trainings keine Augmentierungen angewendet. Nach der Einrichtung kannst du einen augmentierten Trainingsdatensatz erstellen. Albumentations ist dabei so integriert, dass die Modellleistung automatisch verbessert wird.

Installation
# Install the required packages
pip install albumentations ultralytics

Ausführliche Anweisungen und bewährte Vorgehensweisen zur Installation findest du in unserer Installationsanleitung von Ultralytics. Falls bei der Installation der für YOLO26 erforderlichen Pakete Probleme auftreten, findest du Lösungen und Tipps in unserer Anleitung zu häufigen Problemen.

Für die Beispiele benutzerdefinierter Transformationen auf dieser Seite ist Albumentations 1.4.22 oder neuer und daher Python 3.9 oder neuer erforderlich.

Verwendung#

Sobald du die erforderlichen Pakete installiert hast, kannst du Albumentations mit YOLO26 verwenden. Beim Training von YOLO26 wird automatisch eine Reihe von Augmentierungen angewendet, da YOLO26 in Albumentations integriert ist. So lässt sich die Modellleistung ganz einfach verbessern.

Verwendung
from ultralytics import YOLO

# Vortrainiertes Modell laden
model = YOLO("yolo26n.pt")

# Trainiere das Modell mit den Standardaugmentierungen
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Schauen wir uns als Nächstes die konkreten Augmentierungen genauer 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 die Pixelwerte innerhalb eines kleinen quadratischen Bereichs, dem Kernel, gemittelt werden. Dafür wird die OpenCV-Funktion cv2.blur verwendet, die das Bildrauschen verringert, jedoch auch die Bilddetails leicht reduziert.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

  • blur_limit: Legt den Größenbereich des Unschärfeeffekts fest. Der Standardbereich ist (3, 7). Das bedeutet, dass die Kernelgröße für die Unschärfe zwischen 3 und 7 Pixeln variieren kann. Damit die Unschärfe zentriert bleibt, sind nur ungerade Zahlen zulässig.

  • p: Gibt die Wahrscheinlichkeit an, mit der die Unschärfe angewendet wird. In der Integration beträgt p=0.01. Somit besteht für jedes Bild eine Wahrscheinlichkeit von 1 %, dass diese Unschärfe angewendet wird. Durch die geringe Wahrscheinlichkeit tritt der Unschärfeeffekt gelegentlich auf und sorgt für etwas Variation, damit das Modell besser generalisiert, ohne die Bilder übermäßig unscharf zu machen.

Albumentations Blur augmentation result

Medianunschärfe#

Die Transformation MedianBlur in Albumentations wendet einen Medianunschärfeeffekt auf das Bild an. Das ist besonders nützlich, um Rauschen zu reduzieren und dabei Kanten zu erhalten. Im Gegensatz zu herkömmlichen Unschärfemethoden verwendet MedianBlur einen Medianfilter, der sich besonders gut zum Entfernen von Salz-und-Pfeffer-Rauschen eignet und gleichzeitig die Kanten scharf hält.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

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

  • p: Legt die Wahrscheinlichkeit fest, mit der die Medianunschärfe angewendet wird. Hier beträgt p=0.01, sodass die Transformation mit einer Wahrscheinlichkeit von 1 % auf jedes Bild angewendet wird. Durch diese geringe Wahrscheinlichkeit wird die Medianunschärfe sparsam eingesetzt. Das hilft dem Modell bei der Generalisierung, da es gelegentlich Bilder mit reduziertem Rauschen und erhaltenen Kanten sieht.

Das folgende Bild zeigt ein Beispiel dafür, wie diese Augmentierung auf ein Bild angewendet wird.

Albumentations MedianBlur augmentation

Graustufen#

Die Transformation ToGray in Albumentations wandelt ein Bild in Graustufen um. Dabei wird es auf ein Einkanalformat reduziert und dieser Kanal kann optional so oft vervielfältigt werden, dass eine bestimmte Anzahl an Ausgabekanälen entsteht. Für die Berechnung der Helligkeit in Graustufen stehen verschiedene Methoden zur Verfügung: von einfacher Mittelwertbildung bis hin zu fortschrittlicheren Verfahren, die Kontrast und Helligkeit möglichst wirklichkeitsgetreu abbilden.

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 vervielfältigt, um ein Graustufenbild mit mehreren Kanälen zu erstellen. Standardmäßig ist der Wert auf 3 gesetzt. Das ergibt ein Graustufenbild mit drei identischen Kanälen.

  • method: Legt die Methode zur Umwandlung in Graustufen fest. Die Standardmethode „weighted_average“ verwendet eine Formel (0.299R + 0.587G + 0.114B), die der menschlichen Wahrnehmung sehr nahekommt und für natürlich wirkende Graustufen sorgt. Weitere Optionen wie „from_lab“, „desaturation“, „average“, „max“ und „pca“ bieten alternative Möglichkeiten, Graustufenbilder zu erstellen, je nachdem, ob Geschwindigkeit, Helligkeitsbetonung oder Detailerhalt wichtig sind.

  • p: Legt fest, wie oft die Graustufentransformation angewendet wird. Bei p=0.01 besteht eine Wahrscheinlichkeit von 1 %, dass jedes Bild in Graustufen umgewandelt wird. So entsteht eine Mischung aus Farb- und Graustufenbildern, die dem Modell bei der Generalisierung helfen kann.

Das folgende Bild zeigt ein Beispiel dafür, wie diese Graustufentransformation angewendet wird.

Albumentations grayscale conversion

Kontrastbegrenzte adaptive Histogramm-Equalisierung (CLAHE)#

Die CLAHE-Transformation in Albumentations wendet eine kontrastbegrenzte adaptive Histogramm-Equalisierung (CLAHE) an. Dieses Verfahren verbessert den Bildkontrast, indem es das Histogramm in lokalen Bereichen (Kacheln) statt im gesamten Bild ausgleicht. CLAHE sorgt für eine ausgewogene Verbesserung und vermeidet den übermäßig verstärkten Kontrast, der durch eine herkömmliche Histogramm-Equalisierung entstehen kann, insbesondere in Bereichen mit ursprünglich geringem Kontrast.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

  • clip_limit: Legt den Bereich der Kontrastverbesserung fest. Der Standardbereich beträgt (1, 4) und bestimmt den maximal zulässigen Kontrast in jeder Kachel. Höhere Werte sorgen für stärkeren Kontrast, können aber auch Rauschen verursachen.

  • tile_grid_size: Legt die Größe des Kachelrasters fest, üblicherweise in der Form (Zeilen, Spalten). Der Standardwert ist (8, 8). Das bedeutet, dass das Bild in ein 8x8-Raster unterteilt wird. Kleinere Kacheln ermöglichen lokalere Anpassungen, während größere Kacheln Effekte erzeugen, die einem globalen Histogrammausgleich näherkommen.

  • p: Gibt die Wahrscheinlichkeit an, mit der CLAHE angewendet wird. Hier sorgt p=0.01 dafür, dass der Verbesserungseffekt nur in 1 % der Fälle auftritt. So werden Kontrastanpassungen sparsam eingesetzt und sorgen gelegentlich für Abwechslung in den Trainingsbildern.

Das folgende Bild zeigt ein Beispiel dafür, wie die CLAHE-Transformation angewendet wird.

Albumentations CLAHE contrast enhancement

Benutzerdefinierte Albumentations-Transformationen verwenden#

Die standardmäßige Albumentations-Integration bietet eine solide Auswahl an Augmentierungen. Für deinen spezifischen Anwendungsfall möchtest du die Transformationen jedoch möglicherweise anpassen. Mit Ultralytics YOLO26 kannst du benutzerdefinierte Albumentations-Transformationen über die Python-API einfach mit dem Parameter augmentations übergeben. Für die Beispiele in diesem Abschnitt ist Albumentations 1.4.22 oder neuer erforderlich.

Benutzerdefinierte Transformationen definieren#

Du kannst eine 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-Augmentierungen (wie hsv_h, degrees, mosaic usw.) weiterhin aktiv bleiben.

Hier ist ein Beispiel mit fortgeschritteneren Transformationen:

import albumentations as A

from ultralytics import YOLO

# Modell laden
model = YOLO("yolo26n.pt")

# Benutzerdefinierte Transformationen mit verschiedenen Augmentierungstechniken definieren
custom_transforms = [
    # Unschärfevarianten
    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,
    ),
    # Rauschvarianten
    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,
    ),
    # Farb- und Kontrastanpassungen
    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),
    # Verdeckungen simulieren
    A.CoarseDropout(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]

# Mit benutzerdefinierten Transformationen trainieren
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    augmentations=custom_transforms,
)

Wichtige Hinweise#

Beachte bei der Verwendung benutzerdefinierter Albumentations-Transformationen folgende Punkte:

  • Konfiguration: Erstelle benutzerdefinierte Transformationsobjekte über die Python-API. Serialisierte Transformationen können auch über CLI- oder YAML-Konfigurationsdateien übergeben werden, auch beim Fortsetzen des Trainings.
  • Ersetzt Standardeinstellungen: Deine benutzerdefinierten Transformationen ersetzen die standardmäßigen Albumentations-Transformationen vollständig. Andere YOLO-Augmentierungen bleiben aktiv.
  • Umgang mit Labels: Räumliche Transformationen, auch solche, die in A.OneOf oder A.Compose verschachtelt sind, verschieben Begrenzungsrahmen, Polygone, Keypoints und Tiefen- oder semantische Masken gemeinsam mit dem Bild. A.RandomGridShuffle kann die Topologie von Polygonen oder Keypoints nicht erhalten und löst bei Segmentierungs-, Pose- und OBB-Beispielen einen Fehler aus.
  • Leistung: Einige Transformationen sind rechenintensiv. Überwache die Trainingsgeschwindigkeit und passe sie entsprechend an.
  • Aufgabenkompatibilität: Benutzerdefinierte Albumentations-Transformationen funktionieren beim Training für Objekterkennung, Segmentierung, semantische Segmentierung, Tiefe, Pose und OBB, jedoch nicht bei der Klassifizierung (die eine andere Augmentierungspipeline verwendet).

Anwendungsfälle für benutzerdefinierte Transformationen#

Verschiedene Anwendungen profitieren von unterschiedlichen Augmentierungsstrategien:

  • Medizinische Bildgebung: Verwende elastische Verformungen, Gitterverzerrungen und spezielle Rauschmuster.
  • Luft- und Satellitenbilder: Verwende Transformationen, die unterschiedliche Höhen, Wetterbedingungen und Beleuchtungswinkel simulieren.
  • Schlechte Lichtverhältnisse: Verstärke Rauschen und passe die Helligkeit an, um robuste Modelle für schwierige 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.

Ausführlichere Beispiele und bewährte Vorgehensweisen zur Verwendung benutzerdefinierter Albumentations-Transformationen mit YOLO26 findest du im Leitfaden zur YOLO-Datenaugmentierung.

Mehr über Albumentations erfahren#

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

Wichtigste Erkenntnisse#

In diesem Leitfaden haben wir die wichtigsten Aspekte von Albumentations betrachtet, einer leistungsstarken Python-Bibliothek zur Bildaugmentierung. Wir haben die vielfältigen Transformationen, die optimierte Leistung und die Verwendungsmöglichkeiten in deinem nächsten YOLO26-Projekt besprochen.

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

Häufig gestellte Fragen#

  • 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:

    # Erforderliche Pakete installieren
    # !pip install albumentations ultralytics
    from ultralytics import YOLO
    
    # Modell laden und mit automatischen Augmentierungen trainieren
    model = YOLO("yolo26n.pt")
    model.train(data="coco8.yaml", epochs=100)

    Die Integration umfasst optimierte Augmentierungen wie Unschärfe, Medianunschärfe, Graustufenumwandlung und CLAHE mit sorgfältig abgestimmten Wahrscheinlichkeiten, um die Modellleistung zu verbessern.

  • 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 für Augmentierungen auf Pixel-, Raum- und Mischungsebene
    3. Kompatibilität: Funktioniert nahtlos mit beliebten Frameworks wie PyTorch und TensorFlow
    4. Zuverlässigkeit: Eine umfangreiche Testsuite verhindert unbemerkte Datenbeschädigungen
    5. Benutzerfreundlichkeit: Eine einheitliche API für alle Arten von Augmentierungen
  • Albumentations verbessert verschiedene Computer-Vision-Aufgaben, darunter:

    • Objekterkennung: Verbessert die Robustheit des Modells gegenüber Änderungen der Beleuchtung, des Maßstabs und der Ausrichtung
    • Instanzsegmentierung: Verbessert die Genauigkeit der Maskenvorhersage durch vielfältige Transformationen
    • Posenschätzung: Hilft Modellen, sich an unterschiedliche Blickwinkel und Lichtverhältnisse anzupassen
    • Erkennung orientierter Begrenzungsrahmen: Ergänzt Farb- und Rauschvariationen für Luftbilder und Bilder gedrehter Objekte

    Die vielfältigen Augmentierungsoptionen der Bibliothek machen sie wertvoll für Vision-Aufgaben, die eine robuste Modellleistung erfordern. Beim Klassifizierungstraining mit Ultralytics YOLO26 kommt eine eigene, auf torchvision basierende Augmentierungspipeline zum Einsatz; Albumentations-Transformationen werden dabei nicht angewendet.

Kommentare