Meet YOLO26: next-gen vision AI.

Link to this sectionOptimiere dein Datenset für das Training von YOLO26 mit Albumentations#

Wenn du Computer-Vision-Modelle entwickelst, spielen die Qualität und Vielfalt deiner Trainingsdaten eine große Rolle für die Leistung deines Modells. Albumentations bietet eine schnelle, flexible und effiziente Möglichkeit, eine breite Palette an Bildtransformationen anzuwenden, die die Fähigkeit deines Modells verbessern können, sich an reale Szenarien anzupassen. Es lässt sich einfach in Ultralytics YOLO26 integrieren und hilft dir dabei, robuste Datensets für Objekterkennung, Segmentierung und Klassifizierung zu erstellen.

Durch die Verwendung von Albumentations kannst du deine YOLO26-Trainingsdaten mit Techniken wie geometrischen Transformationen und Farbanpassungen erweitern. In diesem Artikel zeigen wir dir, wie Albumentations deinen Prozess zur Datenaugmentation verbessern und deine YOLO26-Projekte noch wirkungsvoller machen kann. Lass uns anfangen!

Link to this sectionAlbumentations für Bildaugmentation#

Albumentations ist eine Open-Source-Bibliothek für Bildaugmentation, die im Juni 2018 erstellt wurde. Sie wurde entwickelt, um den Prozess der Bildaugmentation im Bereich Computer Vision zu vereinfachen und zu beschleunigen. Mit Fokus auf Leistung und Flexibilität unterstützt sie viele verschiedene Augmentationstechniken, die von einfachen Transformationen wie Rotationen und Spiegelungen bis hin zu komplexeren Anpassungen wie Helligkeits- und Kontraständerungen reichen. Albumentations hilft Entwicklern dabei, umfangreiche und abwechslungsreiche Datensets für Aufgaben wie Bildklassifizierung, Objekterkennung und Segmentierung zu generieren.

Du kannst Albumentations verwenden, um auf einfache Weise Augmentationen auf Bilder, Segmentierungsmasken, BBoxen und Keypoints anzuwenden und sicherzustellen, dass alle Elemente deines Datensets zusammen transformiert werden. Es funktioniert nahtlos mit gängigen Deep-Learning-Frameworks wie PyTorch und TensorFlow, wodurch es für eine Vielzahl von Projekten zugänglich ist.

Albumentations ist außerdem eine großartige Option für die Augmentation, egal ob du kleine Datensets oder umfangreiche Computer-Vision-Aufgaben bearbeitest. Es sorgt für eine schnelle und effiziente Verarbeitung, was die Zeit für die Datenvorbereitung verkürzt. Gleichzeitig trägt es zur Verbesserung der Modellleistung bei und macht deine Modelle in realen Anwendungen effektiver.

Link to this sectionHauptfunktionen von Albumentations#

Albumentations bietet viele nützliche Funktionen, die komplexe Bildaugmentationen für ein breites Spektrum an Computer-Vision-Anwendungen vereinfachen. Hier sind einige der wichtigsten Funktionen:

  • Große Auswahl an Transformationen: Albumentations bietet über 70 verschiedene Transformationen, einschließlich geometrischer Änderungen (z. B. Rotation, Spiegelung), Farbanpassungen (z. B. Helligkeit, Kontrast) und Rauschhinzufügung (z. B. Gaußsches Rauschen). Die Verfügbarkeit zahlreicher Optionen ermöglicht die Erstellung sehr vielfältiger und robuster Trainingsdatensets.

Albumentations augmentation examples

  • Hochleistungsoptimierung: Basierend auf OpenCV und NumPy verwendet Albumentations fortschrittliche Optimierungstechniken wie SIMD (Single Instruction, Multiple Data), das mehrere Datenpunkte gleichzeitig verarbeitet, um die Verarbeitungsgeschwindigkeit zu erhöhen. Es verarbeitet große Datensets schnell und ist damit eine der schnellsten verfügbaren Optionen für die Bildaugmentation.

  • Drei Ebenen der Augmentation: Albumentations unterstützt drei Augmentationsebenen: Pixel-Level-, Spatial-Level- und Mixing-Level-Transformationen. Pixel-Level-Transformationen betreffen nur die Eingangsbilder, ohne Masken, BBoxen oder Keypoints zu verändern. Währenddessen werden sowohl das Bild als auch seine Elemente, wie Masken und BBoxen, mithilfe von Spatial-Level-Transformationen transformiert. Darüber hinaus sind Mixing-Level-Transformationen eine einzigartige Möglichkeit, Daten zu augmentieren, da sie mehrere Bilder zu einem kombinieren.

Übersicht der verschiedenen Augmentationsebenen

  • Benchmarking-Ergebnisse: Wenn es um Benchmarking geht, übertrifft Albumentations konsequent andere Bibliotheken, besonders bei großen Datensets.

Link to this sectionWarum solltest du Albumentations für deine Vision-AI-Projekte verwenden?#

Hinsichtlich der Bildaugmentation sticht Albumentations als zuverlässiges Werkzeug für Computer-Vision-Aufgaben hervor. Hier sind einige der Hauptgründe, warum du den Einsatz in deinen Vision-AI-Projekten in Betracht ziehen solltest:

  • Benutzerfreundliche API: Albumentations bietet eine einzige, unkomplizierte API für die Anwendung einer breiten Palette von Augmentationen auf Bilder, Masken, BBoxen und Keypoints. Sie ist darauf ausgelegt, sich leicht an verschiedene Datensets anzupassen, was die Datenvorbereitung einfacher und effizienter macht.

  • Strenge Fehlerprüfung: Fehler in der Augmentations-Pipeline können Eingangsdaten unbemerkt korrumpieren, was oft unentdeckt bleibt, aber letztendlich die Modellleistung verschlechtert. Albumentations begegnet dem mit einer gründlichen Testsuite, die hilft, Fehler früh in der Entwicklung zu finden.

  • Erweiterbarkeit: Albumentations kann verwendet werden, um einfach neue Augmentationen hinzuzufügen und diese zusammen mit integrierten Transformationen über eine einzige Schnittstelle in Computer-Vision-Pipelines zu nutzen.

Link to this sectionWie man Albumentations zur Datenaugmentation für das YOLO26-Training nutzt#

Nachdem wir nun behandelt haben, was Albumentations ist und was es kann, schauen wir uns an, wie du es zur Augmentation deiner Daten für das YOLO26-Modelltraining verwendest. Die Einrichtung ist einfach, da es direkt in den Trainingsmodus von Ultralytics integriert ist und automatisch angewendet wird, wenn du das Albumentations-Paket installiert hast.

Link to this sectionInstallation#

Um Albumentations mit YOLO26 zu verwenden, stelle zunächst sicher, dass die erforderlichen Pakete installiert sind. Wenn Albumentations nicht installiert ist, werden die Augmentationen während des Trainings nicht angewendet. Sobald die Einrichtung erfolgt ist, bist du bereit, ein augmentiertes Datenset für das Training zu erstellen, wobei Albumentations integriert ist, um dein Modell automatisch zu verbessern.

Installation
# Install the required packages
pip install albumentations ultralytics

Detaillierte Anweisungen und Best Practices für den Installationsprozess findest du in unserem Ultralytics-Installationsleitfaden. Wenn du bei der Installation der erforderlichen Pakete für YOLO26 auf Schwierigkeiten stößt, schau in unserem Leitfaden zu häufigen Problemen nach Lösungen und Tipps.

Link to this sectionVerwendung#

Nach der Installation der erforderlichen Pakete kannst du Albumentations mit YOLO26 verwenden. Wenn du YOLO26 trainierst, wird durch die Integration mit Albumentations automatisch eine Reihe von Augmentationen angewendet, wodurch die Leistung deines Modells einfach verbessert wird.

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 schauen wir uns die spezifischen Augmentationen genauer an, die während des Trainings angewendet werden.

Link to this sectionWeichzeichnen#

Die Unschärfe-Transformation (Blur) in Albumentations wendet einen einfachen Unschärfeeffekt auf das Bild an, indem die Pixelwerte innerhalb eines kleinen quadratischen Bereichs, des Kernels, gemittelt werden. Dies geschieht mithilfe der OpenCV-Funktion cv2.blur, die hilft, Rauschen im Bild zu reduzieren, obwohl dadurch auch Bilddetails leicht abnehmen.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

  • blur_limit: Dies steuert den Größenbereich des Unschärfeeffekts. Der Standardbereich ist (3, 7), was bedeutet, dass die Kernelgröße für die Unschärfe zwischen 3 und 7 Pixel variieren kann, wobei nur ungerade Zahlen erlaubt sind, um die Unschärfe zentriert zu halten.

  • p: Die Wahrscheinlichkeit der Anwendung der Unschärfe. In der Integration ist p=0.01, es besteht also eine 1%ige Chance, dass diese Unschärfe auf jedes Bild angewendet wird. Die geringe Wahrscheinlichkeit ermöglicht gelegentliche Unschärfeeffekte und führt ein wenig Variation ein, um das Modell bei der Generalisierung zu unterstützen, ohne die Bilder zu stark zu verwischen.

Albumentations Blur augmentation result

Link to this sectionMedian-Unschärfe (Median Blur)#

Die MedianBlur-Transformation in Albumentations wendet einen Median-Unschärfeeffekt auf das Bild an, was besonders nützlich ist, um Rauschen zu reduzieren und gleichzeitig Kanten zu erhalten. Im Gegensatz zu typischen Weichzeichnungsverfahren verwendet MedianBlur einen Median-Filter, der besonders effektiv beim Entfernen von Salz-und-Pfeffer-Rauschen ist, während die Schärfe an den Rändern erhalten bleibt.

Hier sind die in dieser Integration verwendeten Parameter und Werte:

  • blur_limit: Dieser Parameter steuert die maximale Größe des Weichzeichnungskernels. In dieser Integration ist der Standardbereich (3, 7), was bedeutet, dass die Kernelgröße für die Unschärfe zufällig zwischen 3 und 7 Pixeln gewählt wird, wobei nur ungerade Werte für eine korrekte Ausrichtung zulässig sind.

  • p: Legt die Wahrscheinlichkeit für die Anwendung der Median-Unschärfe fest. Hier ist p=0.01, die Transformation hat also eine 1%ige Chance, auf jedes Bild angewendet zu werden. Diese geringe Wahrscheinlichkeit sorgt dafür, dass die Median-Unschärfe sparsam eingesetzt wird, was dem Modell bei der Generalisierung hilft, indem gelegentlich Bilder mit reduziertem Rauschen und erhaltenen Kanten gesehen werden.

Das Bild unten zeigt ein Beispiel dieser Augmentation, die auf ein Bild angewendet wurde.

Albumentations MedianBlur augmentation

Link to this sectionGraustufen (Grayscale)#

Die ToGray-Transformation in Albumentations konvertiert ein Bild in Graustufen, reduziert es auf ein Einkanal-Format und repliziert diesen Kanal optional, um eine festgelegte Anzahl von Ausgabekanälen zu erreichen. Verschiedene Methoden können verwendet werden, um anzupassen, wie die Graustufen-Helligkeit berechnet wird, von einfacher Mittelwertbildung bis hin zu fortgeschritteneren Techniken 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. Wenn dieser Wert größer als 1 ist, wird der einzelne Graustufenkanal repliziert, um ein mehrkanaliges Graustufenbild zu erzeugen. Standardmäßig ist er auf 3 eingestellt, was ein Graustufenbild mit drei identischen Kanälen ergibt.

  • method: Definiert die Graustufen-Konvertierungsmethode. Die Standardmethode "weighted_average" wendet eine Formel (0.299R + 0.587G + 0.114B) an, die eng an der menschlichen Wahrnehmung ausgerichtet ist und einen natürlich wirkenden Graustufeneffekt bietet. Andere Optionen wie "from_lab", "desaturation", "average", "max" und "pca" bieten alternative Möglichkeiten zur Erstellung von Graustufenbildern, basierend auf verschiedenen Anforderungen an Geschwindigkeit, Helligkeitsbetonung oder Detailerhaltung.

  • p: Steuert, wie oft die Graustufen-Transformation angewendet wird. Mit p=0.01 besteht eine 1%ige Chance, jedes Bild in Graustufen umzuwandeln, wodurch eine Mischung aus Farb- und Graustufenbildern möglich ist, um die Generalisierung des Modells zu verbessern.

Das Bild unten zeigt ein Beispiel dieser angewendeten Graustufen-Transformation.

Albumentations grayscale conversion

Link to this sectionContrast Limited Adaptive Histogram Equalization (CLAHE)#

Die CLAHE-Transformation in Albumentations wendet CLAHE (Contrast Limited Adaptive Histogram Equalization) an, eine Technik, die den Bildkontrast verbessert, indem das Histogramm in lokalisierten Regionen (Kacheln) anstatt über das gesamte Bild ausgeglichen wird. CLAHE erzeugt einen ausgewogenen Verstärkungseffekt und vermeidet den übermäßig verstärkten Kontrast, der aus einer Standard-Histogramm-Anpassung resultieren 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 Kontrastverstärkung. Eingestellt auf einen Standardbereich von (1, 4), bestimmt er den maximal zulässigen Kontrast in jeder Kachel. Höhere Werte werden für mehr Kontrast verwendet, können aber auch Rauschen einführen.

  • tile_grid_size: Definiert die Größe des Kachelrasters, typischerweise als (Zeilen, Spalten). Der Standardwert ist (8, 8), was bedeutet, dass das Bild in ein 8x8-Raster unterteilt wird. Kleinere Kachelgrößen bieten stärker lokalisierte Anpassungen, während größere Effekte erzeugen, die eher einer globalen Anpassung entsprechen.

  • p: Die Wahrscheinlichkeit der Anwendung von CLAHE. Hier führt p=0.01 den Verstärkungseffekt nur zu 1% der Zeit ein, was sicherstellt, dass Kontrastanpassungen sparsam für gelegentliche Variationen in Trainingsbildern angewendet werden.

Das Bild unten zeigt ein Beispiel der angewendeten CLAHE-Transformation.

Albumentations CLAHE contrast enhancement

Link to this sectionVerwendung benutzerdefinierter Albumentations-Transformationen#

Während die standardmäßige Albumentations-Integration einen soliden Satz an Augmentationen bietet, möchtest du die Transformationen möglicherweise für deinen spezifischen Anwendungsfall anpassen. Mit Ultralytics YOLO26 kannst du benutzerdefinierte Albumentations-Transformationen ganz einfach über die Python-API mit dem Parameter augmentations übergeben.

Link to this sectionWie man benutzerdefinierte Transformationen definiert#

Du kannst deine eigene Liste von Albumentations-Transformationen definieren und sie der Trainingsfunktion übergeben. Dies ersetzt die standardmäßigen Albumentations-Transformationen, während alle anderen YOLO-Augmentationen (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(var_limit=(10.0, 50.0), 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(
        max_holes=8, max_height=32, max_width=32, min_holes=1, min_height=8, min_width=8, fill_value=0, p=0.2
    ),
]

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

Link to this sectionWichtige Überlegungen#

Wenn du benutzerdefinierte Albumentations-Transformationen verwendest, beachte bitte diese Punkte:

  • Nur Python-API: Benutzerdefinierte Transformationen können nur über die Python-API übergeben werden, nicht über CLI- oder YAML-Konfigurationsdateien.
  • Ersetzt Standardwerte: Deine benutzerdefinierten Transformationen ersetzen die standardmäßigen Albumentations-Transformationen vollständig. Andere YOLO-Augmentationen bleiben aktiv.
  • BBox-Behandlung: Ultralytics handhabt BBox-Anpassungen für die meisten Transformationen automatisch, aber komplexe räumliche Transformationen erfordern möglicherweise zusätzliche Tests.
  • Leistung: Einige Transformationen sind rechenintensiv. Überwache die Trainingsgeschwindigkeit und passe sie entsprechend an.
  • Aufgabenkompatibilität: Benutzerdefinierte Albumentations-Transformationen funktionieren bei Erkennungs- und Segmentierungsaufgaben, jedoch nicht bei der Klassifizierung (die eine andere Augmentations-Pipeline verwendet).

Link to this sectionAnwendungsfälle für benutzerdefinierte Transformationen#

Verschiedene Anwendungen profitieren von unterschiedlichen Augmentationsstrategien:

  • Medizinische Bildgebung: Nutze elastische Verformungen, Gitterverzerrungen und spezielle Rauschmuster
  • Luft-/Satellitenbilder: Wende Transformationen an, die unterschiedliche Höhen, Wetterbedingungen und Beleuchtungswinkel simulieren
  • Low-Light-Szenarien: Betone das Hinzufügen von Rauschen und Helligkeitsanpassungen, um robuste Modelle für schwierige Lichtverhältnisse zu trainieren
  • Industrielle Inspektion: Füge Texturvariationen und simulierte Defekte für Qualitätskontrollanwendungen hinzu

Für eine vollständige Liste der verfügbaren Transformationen und deren Parameter besuche die Albumentations-Dokumentation.

Für detailliertere Beispiele und Best Practices zur Verwendung von benutzerdefinierten Albumentations-Transformationen mit YOLO26 siehe den YOLO-Leitfaden zur Datenaugmentation.

Link to this sectionLerne mehr über Albumentations#

Wenn du mehr über Albumentations erfahren möchtest, schau dir die folgenden Ressourcen für tiefergehende Anleitungen und Beispiele an:

Link to this sectionWichtige Erkenntnisse#

In diesem Leitfaden haben wir die wichtigsten Aspekte von Albumentations untersucht, einer großartigen Python-Bibliothek für die Bildaugmentation. Wir haben ihre breite Palette an Transformationen, ihre optimierte Leistung und die Anwendung in deinem nächsten YOLO26-Projekt besprochen.

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

Link to this sectionFAQ#

Link to this sectionWie kann ich Albumentations mit YOLO26 für eine verbesserte Datenaugmentation integrieren?#

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 beinhaltet optimierte Augmentationen wie Unschärfe, Median-Unschärfe, Graustufenkonvertierung und CLAHE mit sorgfältig abgestimmten Wahrscheinlichkeiten, um die Modellleistung zu verbessern.

Link to this sectionWas sind die Hauptvorteile der Verwendung von Albumentations gegenüber anderen Augmentationsbibliotheken?#

Albumentations zeichnet sich aus mehreren Gründen aus:

  1. Leistung: Basiert auf OpenCV und NumPy mit SIMD-Optimierung für überragende Geschwindigkeit
  2. Flexibilität: Unterstützt über 70 Transformationen über Pixel-, Spatial- und Mixing-Level-Augmentationen hinweg
  3. Kompatibilität: Funktioniert nahtlos mit gängigen Frameworks wie PyTorch und TensorFlow
  4. Zuverlässigkeit: Umfassende Testsuite verhindert unbemerktes Datenverderben
  5. Benutzerfreundlichkeit: Einzige, einheitliche API für alle Augmentationsarten

Link to this sectionWelche Arten von Computer-Vision-Aufgaben können von Albumentations-Augmentationen profitieren?#

Albumentations verbessert verschiedene Computer-Vision-Aufgaben, einschließlich:

  • Objekterkennung: Verbessert die Modellrobustheit gegenüber Beleuchtungs-, Skalierungs- und Orientierungsvariationen
  • Instanzsegmentierung: Erhöht die Genauigkeit der Maskenvorhersage durch vielfältige Transformationen
  • Klassifizierung: Erhöht die Generalisierung des Modells durch Farb- und geometrische Augmentationen
  • Pose Estimation: Hilft Modellen, sich an unterschiedliche Blickwinkel und Lichtverhältnisse anzupassen

Die vielfältigen Augmentationsoptionen der Bibliothek machen sie wertvoll für jede Vision-Aufgabe, die eine robuste Modellleistung erfordert.

Kommentare