Optimiere dein Datenset für das Training von YOLO26 mit Albumentations#
Wenn du computer vision models entwickelst, können Qualität und Vielfalt deiner training data eine große Rolle dabei spielen, wie gut dein Modell abschneidet. Albumentations bietet eine schnelle, flexible und effiziente Möglichkeit, eine Vielzahl von 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 hilft dir, robuste Datensätze für object detection-, segmentation- und classification-Aufgaben zu erstellen.
Durch die Verwendung von Albumentations kannst du deine YOLO26-Trainingsdaten mit Techniken wie geometrischen Transformationen und Farbanpassungen aufwerten. In diesem Artikel sehen wir uns an, wie Albumentations deinen data augmentation-Prozess verbessern und deine YOLO26 projects noch wirkungsvoller machen kann. Fangen wir an!
Albumentations für Bildaugmentation#
Albumentations ist eine Open-Source-Bibliothek zur Bildaugmentierung, die im June 2018 veröffentlicht wurde. Sie wurde entwickelt, um den Prozess der Bildaugmentierung im Bereich computer vision zu vereinfachen und zu beschleunigen. Im Hinblick auf performance und Flexibilität entwickelt, unterstützt sie viele verschiedene Augmentierungstechniken, angefangen bei einfachen Transformationen wie Drehungen und Spiegelungen bis hin zu komplexeren Anpassungen wie Helligkeits- und Kontraständerungen. Albumentations hilft Entwicklern dabei, reichhaltige, abwechslungsreiche Datensätze für Aufgaben wie image classification, object detection und segmentation zu generieren.
Du kannst Albumentations verwenden, um ganz einfach Augmentierungen auf Bilder, segmentation masks, bounding boxes und key points anzuwenden und sicherzustellen, dass alle Elemente deines Datensatzes gemeinsam 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.
Außerdem ist Albumentations eine großartige Option für die Augmentierung, egal ob du mit kleinen Datensätzen oder groß angelegten computer vision tasks arbeitest. Es sorgt für eine schnelle und effiziente Verarbeitung und verkürzt die für die Datenaufbereitung aufgewendete Zeit. Gleichzeitig trägt es zur Verbesserung der model performance bei, wodurch deine Modelle in realen Anwendungen effektiver werden.
Hauptfunktionen von Albumentations#
Albumentations bietet viele nützliche Funktionen, die komplexe Bildaugmentierungen für eine Vielzahl von computer vision applications vereinfachen. Hier sind einige der wichtigsten Funktionen:
- Große Auswahl an Transformationen: Albumentations bietet über 70 different transformations, darunter geometrische Änderungen (z. B. Rotation, Spiegelung), Farbanpassungen (z. B. Helligkeit, Kontrast) und das Hinzufügen von Rauschen (z. B. Gaußsches Rauschen). Die Vielzahl an Optionen ermöglicht die Erstellung hochgradig diverser und robuster Trainingsdatensätze.
-
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.

- Benchmarking Results: Wenn es um Benchmarks geht, übertrifft Albumentations andere Bibliotheken durchgehend, insbesondere bei großen Datensätzen.
Warum 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 zum Anwenden einer Vielzahl von Augmentierungen auf Bilder, Masken, Bounding Boxes und Keypoints. Sie ist so konzipiert, dass sie sich leicht an verschiedene Datensätze anpasst, was die data preparation 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.
Wie man Albumentations zur Datenaugmentation für das YOLO26-Training nutzt#
Jetzt, da wir behandelt haben, was Albumentations ist und was es tun kann, schauen wir uns an, wie du es verwenden kannst, um deine Daten für das Training von YOLO26-Modellen zu augmentieren. Die Einrichtung ist einfach, da es direkt in den Ultralytics' training mode integriert ist und automatisch angewendet wird, wenn das Albumentations-Paket installiert ist.
Installation#
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.
# Install the required packages
pip install albumentations ultralyticsDetaillierte Anweisungen und bewährte Methoden zum Installationsprozess findest du in unserer Ultralytics-Installationsanleitung. Wenn während der Installation der erforderlichen Pakete für YOLO26 Schwierigkeiten auftreten, findest du in unserem Leitfaden zu häufigen Problemen Lösungen und Tipps.
Die Beispiele für benutzerdefinierte Transformationen auf dieser Seite erfordern 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. Wenn du YOLO26 trainierst, wird durch die Integration mit Albumentations automatisch eine Reihe von Augmentationen angewendet, wodurch die Leistung deines Modells einfach verbessert wird.
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.
Weichzeichnen#
Die Blur-Transformation in Albumentations wendet einen einfachen Unschärfeeffekt auf das Bild an, indem die Pixelwerte innerhalb eines kleinen quadratischen Bereichs bzw. Kernels gemittelt werden. Dies geschieht mithilfe der OpenCV cv2.blur-Funktion, was dazu beiträgt, das Rauschen im Bild zu reduzieren, auch wenn dadurch die Bilddetails leicht verringert werden.
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.
Median-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.
Graustufen (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.
Contrast 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.
Verwendung benutzerdefinierter Albumentations-Transformationen#
Während die standardmäßige Albumentations-Integration einen soliden Satz von Augmentationen bietet, möchtest du die Transformationen möglicherweise für deinen spezifischen Anwendungsfall anpassen. Mit Ultralytics YOLO26 kannst du ganz einfach benutzerdefinierte Albumentations-Transformationen über die Python API mit dem Parameter augmentations übergeben. Die Beispiele in diesem Abschnitt erfordern Albumentations 1.4.22 oder neuer.
Wie man benutzerdefinierte Transformationen definiert#
Du kannst deine eigene Liste von Albumentations-Transformationen definieren und diese an die Trainingsfunktion übergeben. Dadurch werden die standardmäßigen Albumentations-Transformationen ersetzt, während alle anderen YOLO-Augmentierungen (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 Ü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).
Anwendungsfä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
Eine vollständige Liste der verfügbaren Transformationen und ihrer Parameter findest du in der Albumentations documentation.
Ausführlichere Beispiele und bewährte Methoden zur Verwendung benutzerdefinierter Albumentations-Transformationen mit YOLO26 findest du im YOLO Data Augmentation guide.
Lerne mehr über Albumentations#
Wenn du mehr über Albumentations erfahren möchtest, schau dir die folgenden Ressourcen für tiefergehende Anleitungen und Beispiele an:
-
Albumentations Documentation: Die offizielle Dokumentation bietet eine vollständige Palette an unterstützten Transformationen und fortgeschrittenen Anwendungstechniken.
-
Ultralytics Albumentations Guide: Erhalte einen genaueren Einblick in die Details der Funktion, die diese Integration ermöglichen.
-
Albumentations GitHub Repository: Das Repository enthält Beispiele, Benchmarks und Diskussionen, die dir den Einstieg in die Anpassung von Augmentierungen erleichtern.
Wichtige 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 integration guide page. 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 beinhaltet optimierte Augmentationen wie Unschärfe, Median-Unschärfe, Graustufenkonvertierung und CLAHE mit sorgfältig abgestimmten Wahrscheinlichkeiten, um die Modellleistung zu verbessern.
Albumentations zeichnet sich aus mehreren Gründen aus:
- Leistung: Basiert auf OpenCV und NumPy mit SIMD-Optimierung für überragende Geschwindigkeit
- Flexibilität: Unterstützt über 70 Transformationen über Pixel-, Spatial- und Mixing-Level-Augmentationen hinweg
- Kompatibilität: Funktioniert nahtlos mit gängigen Frameworks wie PyTorch und TensorFlow
- Zuverlässigkeit: Umfassende Testsuite verhindert unbemerktes Datenverderben
- Benutzerfreundlichkeit: Einzige, einheitliche API für alle Augmentationsarten
Albumentations verbessert verschiedene computer vision tasks einschließlich:
- Object Detection: Verbessert die Robustheit des Modells gegenüber Licht-, Skalierungs- und Ausrichtungsschwankungen
- Instance Segmentation: Erhöht die Genauigkeit der Maskenvorhersage durch diverse Transformationen
- Classification: Erhöht die Verallgemeinerungsfähigkeit des Modells durch Farb- und geometrische Augmentierungen
- 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.