Улучшай свой набор данных для обучения YOLO26 с помощью Albumentations#
Когда ты создаешь computer vision models, качество и разнообразие твоих training data могут сыграть большую роль в том, насколько хорошо работает твоя модель. Albumentations предлагает быстрый, гибкий и эффективный способ применения широкого спектра трансформаций изображений, которые могут улучшить способность твоей модели адаптироваться к сценариям реального мира. Она легко интегрируется с Ultralytics YOLO26 и помогает создавать надежные датасеты для задач object detection, segmentation и classification.
Используя Albumentations, ты можешь дополнить свои обучающие данные YOLO26 такими методами, как геометрические преобразования и цветовые корректировки. В этой статье мы рассмотрим, как Albumentations может улучшить процесс data augmentation и сделать твои YOLO26 projects еще более эффективными. Давай начнем!
Albumentations для аугментации изображений#
Albumentations — это библиотека аугментации изображений с открытым исходным кодом, созданная в June 2018. Она разработана для упрощения и ускорения процесса аугментации изображений в области computer vision. Созданная с учетом performance и гибкости, она поддерживает множество разнообразных методов аугментации, начиная с простых трансформаций, таких как повороты и отражения, и заканчивая более сложными изменениями яркости и контрастности. Albumentations помогает разработчикам генерировать богатые, разнообразные датасеты для таких задач, как image classification, object detection и segmentation.
Ты можешь использовать Albumentations для легкого применения аугментаций к изображениям, segmentation masks, bounding boxes и key points, а также чтобы убедиться, что все элементы твоего датасета трансформируются одновременно. Она легко работает с популярными фреймворками глубокого обучения, такими как PyTorch и TensorFlow, что делает ее доступной для широкого спектра проектов.
Кроме того, Albumentations — отличный вариант для аугментации независимо от того, работаешь ли ты с небольшими датасетами или крупномасштабными computer vision tasks. Она обеспечивает быструю и эффективную обработку, сокращая время, затрачиваемое на подготовку данных. В то же время она помогает улучшить model performance, делая твои модели более эффективными в приложениях реального мира.
Основные возможности Albumentations#
Albumentations предлагает множество полезных функций, которые упрощают сложную аугментацию изображений для широкого спектра computer vision applications. Вот некоторые из ключевых особенностей:
- Широкий спектр трансформаций: Albumentations предлагает более 70 different transformations, включая геометрические изменения (например, поворот, отражение), цветовые корректировки (например, яркость, контрастность) и добавление шума (например, гауссов шум). Наличие множества вариантов позволяет создавать высокоразнообразные и надежные обучающие датасеты.
-
Оптимизация высокой производительности: Построенная на базе OpenCV и NumPy, Albumentations использует передовые методы оптимизации, такие как SIMD (одна инструкция, множественные данные), который обрабатывает несколько точек данных одновременно для ускорения процесса. Она быстро справляется с большими наборами данных, что делает ее одним из самых быстрых доступных вариантов для аугментации изображений.
-
Три уровня аугментации: Albumentations поддерживает три уровня аугментации: преобразования на уровне пикселей, пространственные преобразования и преобразования на уровне смешивания. Преобразования на уровне пикселей затрагивают только входные изображения, не меняя маски, ограничивающие рамки или ключевые точки. В то же время при использовании пространственных преобразований меняются как само изображение, так и его элементы, например маски и ограничивающие рамки. Более того, преобразования на уровне смешивания — это уникальный способ аугментации данных, так как они объединяют несколько изображений в одно.

- Benchmarking Results: Когда дело доходит до бенчмаркинга, Albumentations стабильно превосходит другие библиотеки, особенно на больших датасетах.
Почему тебе стоит использовать Albumentations для своих проектов Vision AI?#
Что касается аугментации изображений, Albumentations выделяется как надежный инструмент для задач компьютерного зрения. Вот несколько основных причин, почему тебе стоит рассмотреть ее использование для своих проектов Vision AI:
-
Простой в использовании API: Albumentations предоставляет единый простой API для применения широкого спектра аугментаций к изображениям, маскам, ограничивающим рамкам и ключевым точкам. Он разработан для легкой адаптации к различным датасетам, делая data preparation проще и эффективнее.
-
Тщательное тестирование на ошибки: Ошибки в конвейере аугментации могут незаметно искажать входные данные, оставаясь незамеченными, но в конечном итоге снижая производительность модели. Albumentations решает эту проблему с помощью тщательного набора тестов, который помогает обнаруживать ошибки на ранних этапах разработки.
-
Расширяемость: Albumentations можно использовать для легкого добавления новых видов аугментации и их применения в конвейерах компьютерного зрения через единый интерфейс наряду со встроенными преобразованиями.
Как использовать Albumentations для аугментации данных при обучении YOLO26#
Теперь, когда мы разобрались, что такое Albumentations и на что она способна, давай посмотрим, как использовать ее для аугментации данных при обучении модели YOLO26. Ее легко настроить, поскольку она интегрируется напрямую в Ultralytics' training mode и применяется автоматически, если у тебя установлен пакет Albumentations.
Установка#
Чтобы использовать Albumentations с YOLO26, начни с проверки того, установлены ли у тебя все необходимые пакеты. Если Albumentations не установлена, аугментации не будут применяться во время обучения. После настройки ты будешь готов к созданию аугментированного набора данных для обучения, при этом Albumentations будет автоматически интегрирована для улучшения твоей модели.
# Install the required packages
pip install albumentations ultralyticsПодробные инструкции и лучшие практики, связанные с процессом установки, можно найти в нашем руководстве по установке Ultralytics. Если в процессе установки необходимых пакетов для YOLO26 у тебя возникнут какие-либо трудности, обратись к нашему руководству по частым проблемам за решениями и советами.
Примеры пользовательских преобразований на этой странице требуют Albumentations версии 1.4.22 или новее, а следовательно, Python 3.9 или новее.
Использование#
После установки необходимых пакетов ты готов начать использовать Albumentations с YOLO26. Когда ты обучаешь YOLO26, набор аугментаций автоматически применяется благодаря интеграции с Albumentations, что позволяет легко повысить производительность модели.
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)Далее давай подробнее рассмотрим конкретные аугментации, которые применяются во время обучения.
Размытие#
Трансформация Blur в Albumentations применяет простой эффект размытия к изображению путем усреднения значений пикселей в небольшой квадратной области или ядре. Это делается с помощью функции OpenCV cv2.blur, которая помогает уменьшить шум на изображении, хотя это также немного снижает детализацию изображения.
Вот параметры и значения, используемые в этой интеграции:
-
blur_limit: Этот параметр контролирует диапазон размера эффекта размытия. По умолчанию диапазон составляет (3, 7), что означает, что размер ядра для размытия может варьироваться от 3 до 7 пикселей, при этом разрешены только нечетные числа, чтобы размытие оставалось центрированным.
-
p: Вероятность применения размытия. В интеграции p=0.01, поэтому существует 1% шанс, что это размытие будет применено к каждому изображению. Низкая вероятность позволяет создавать периодические эффекты размытия, внося небольшое разнообразие, чтобы помочь модели обобщать без чрезмерного размытия изображений.
Медианное размытие (Median Blur)#
Преобразование MedianBlur в Albumentations применяет эффект медианного размытия к изображению, что особенно полезно для уменьшения шума при сохранении краев. В отличие от обычных методов размытия, MedianBlur использует медианный фильтр, который особенно эффективен при удалении импульсного шума (типа «соль и перец») при сохранении резкости вокруг краев.
Вот параметры и значения, используемые в этой интеграции:
-
blur_limit: Этот параметр контролирует максимальный размер ядра размытия. В этой интеграции он по умолчанию установлен в диапазоне (3, 7), что означает, что размер ядра для размытия выбирается случайным образом от 3 до 7 пикселей, при этом разрешены только нечетные значения для обеспечения правильного выравнивания.
-
p: Задает вероятность применения медианного размытия. Здесь p=0.01, поэтому существует 1% шанс применения этого преобразования к каждому изображению. Эта низкая вероятность гарантирует, что медианное размытие используется экономно, помогая модели лучше обобщать за счет эпизодического просмотра изображений с уменьшенным шумом и сохраненными краями.
На изображении ниже показан пример этой аугментации, примененной к изображению.
Оттенки серого#
Преобразование ToGray в Albumentations преобразует изображение в оттенки серого, сводя его к одноканальному формату и при необходимости дублируя этот канал для соответствия заданному количеству выходных каналов. Для настройки вычисления яркости в градациях серого могут использоваться разные методы, от простого усреднения до более продвинутых техник для реалистичного восприятия контрастности и яркости.
Вот параметры и значения, используемые в этой интеграции:
-
num_output_channels: Устанавливает количество каналов в выходном изображении. Если это значение больше 1, единственный канал в градациях серого будет дублирован для создания многоканального изображения в оттенках серого. По умолчанию установлено значение 3, что дает изображение в оттенках серого с тремя идентичными каналами.
-
method: Определяет метод преобразования в оттенки серого. Метод по умолчанию, "weighted_average", применяет формулу (0.299R + 0.587G + 0.114B), которая наиболее близка к человеческому восприятию, обеспечивая естественный эффект серого. Другие варианты, такие как "from_lab", "desaturation", "average", "max" и "pca", предлагают альтернативные способы создания изображений в градациях серого в зависимости от различных потребностей в скорости, акценте на яркость или сохранении деталей.
-
p: Контролирует частоту применения преобразования в оттенки серого. При p=0.01 существует 1% шанс преобразования каждого изображения в оттенки серого, что позволяет использовать смесь цветных и черно-белых изображений для лучшего обобщения модели.
На изображении ниже показан пример примененного преобразования в оттенки серого.
Contrast Limited Adaptive Histogram Equalization (CLAHE)#
Преобразование CLAHE в Albumentations применяет метод адаптивного выравнивания гистограммы с ограничением контраста (CLAHE), который улучшает контрастность изображения путем выравнивания гистограммы в локализованных областях (тайлах), а не по всему изображению. CLAHE создает сбалансированный эффект улучшения, позволяя избежать чрезмерно усиленного контраста, который может возникнуть при обычном выравнивании гистограммы, особенно в областях с изначально низким контрастом.
Вот параметры и значения, используемые в этой интеграции:
-
clip_limit: Контролирует диапазон усиления контраста. Установлен по умолчанию в диапазоне (1, 4) и определяет максимальный контраст, допустимый в каждом тайле. Более высокие значения используются для большего контраста, но также могут привести к появлению шума.
-
tile_grid_size: Определяет размер сетки тайлов, обычно как (строки, столбцы). Значение по умолчанию — (8, 8), что означает, что изображение делится на сетку 8x8. Меньшие размеры тайлов обеспечивают более локализованные настройки, в то время как большие создают эффекты, близкие к глобальному выравниванию.
-
p: Вероятность применения CLAHE. Здесь p=0.01 вводит эффект улучшения только в 1% случаев, гарантируя, что настройки контрастности применяются экономно для периодического внесения разнообразия в обучающие изображения.
На изображении ниже показан пример примененного преобразования CLAHE.
Использование пользовательских преобразований Albumentations#
Хотя стандартная интеграция Albumentations предлагает надежный набор аугментаций, тебе может захотеться настроить преобразования под свой конкретный сценарий использования. С Ultralytics YOLO26 ты можешь легко передавать пользовательские преобразования Albumentations через Python API, используя параметр augmentations. Примеры в этом разделе требуют Albumentations 1.4.22 или новее.
Как определить пользовательские преобразования#
Ты можешь определить свой собственный список трансформаций Albumentations и передать их в функцию обучения. Это заменяет стандартные трансформации Albumentations, сохраняя при этом все остальные аугментации YOLO (такие как hsv_h, degrees, mosaic и т. д.) активными.
Вот пример с более продвинутыми преобразованиями:
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,
)Важные соображения#
При использовании пользовательских преобразований Albumentations учитывай следующие моменты:
- Только Python API: Пользовательские преобразования могут быть переданы только через Python API, а не через CLI или YAML-файлы конфигурации.
- Заменяет встроенные: Твои пользовательские преобразования полностью заменят встроенные преобразования Albumentations. Другие аугментации YOLO останутся активными.
- Обработка ограничивающих рамок (BBox): Ultralytics автоматически обрабатывает корректировку ограничивающих рамок для большинства преобразований, но сложные пространственные преобразования могут потребовать дополнительного тестирования.
- Производительность: Некоторые преобразования требуют больших вычислительных ресурсов. Отслеживай скорость обучения и корректируй параметры соответствующим образом.
- Совместимость с задачами: Пользовательские преобразования Albumentations работают с задачами обнаружения и сегментации, но не с классификацией (которая использует другой конвейер аугментации).
Сценарии использования пользовательских преобразований#
Различные приложения выигрывают от различных стратегий аугментации:
- Медицинская визуализация: используй эластичные деформации, искажения сетки и специализированные шаблоны шума.
- Аэросъемка/спутниковые снимки: применяй преобразования, имитирующие разные высоты, погодные условия и углы освещения.
- Сценарии при слабом освещении: делай акцент на добавлении шума и настройке яркости для обучения надежных моделей в сложных условиях освещения.
- Промышленная инспекция: добавляй вариации текстур и имитируй дефекты для задач контроля качества.
Полный список доступных трансформаций и их параметров см. в Albumentations documentation.
Более подробные примеры и рекомендации по использованию пользовательских трансформаций Albumentations с YOLO26 см. в руководстве YOLO Data Augmentation guide.
Продолжай изучать Albumentations#
Если тебе интересно узнать больше об Albumentations, изучи следующие ресурсы для получения более подробных инструкций и примеров:
-
Albumentations Documentation: Официальная документация предоставляет полный спектр поддерживаемых трансформаций и методов продвинутого использования.
-
Ultralytics Albumentations Guide: Узнай ближе детали функции, которая облегчает эту интеграцию.
-
Albumentations GitHub Repository: Репозиторий включает примеры, бенчмарки и обсуждения, которые помогут тебе начать настраивать аугментации.
Основные выводы#
В этом руководстве мы изучили ключевые аспекты Albumentations, отличной библиотеки на Python для аугментации изображений. Мы обсудили ее широкий спектр преобразований, оптимизированную производительность и то, как ты можешь использовать ее в своем следующем проекте на YOLO26.
Кроме того, если ты хочешь узнать больше о других интеграциях Ultralytics YOLO26, посети нашу integration guide page. Там ты найдешь полезные ресурсы и идеи.
FAQ#
Albumentations бесшовно интегрируется с YOLO26 и применяется автоматически во время обучения, если у тебя установлен пакет. Вот как начать:
# 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)Интеграция включает в себя оптимизированные аугментации, такие как размытие, медианное размытие, преобразование в оттенки серого и CLAHE с тщательно настроенными вероятностями для повышения производительности модели.
Albumentations выделяется по нескольким причинам:
- Производительность: построена на OpenCV и NumPy с SIMD-оптимизацией для превосходной скорости.
- Гибкость: поддерживает более 70 преобразований, включая аугментации на уровне пикселей, пространственные и смешивающие.
- Совместимость: Бесшовно работает с популярными фреймворками, такими как PyTorch и TensorFlow
- Надежность: обширный набор тестов предотвращает скрытое повреждение данных.
- Простота использования: единый API для всех типов аугментации.
Albumentations улучшает различные computer vision tasks, включая:
- Object Detection: Повышает устойчивость модели к изменениям освещения, масштаба и ориентации
- Instance Segmentation: Улучшает точность предсказания масок с помощью разнообразных трансформаций
- Classification: Увеличивает обобщающую способность модели за счет цветовых и геометрических аугментаций
- Pose Estimation: Помогает моделям адаптироваться к различным точкам обзора и условиям освещения
Разнообразные опции аугментации делают библиотеку ценной для любой задачи зрения, требующей высокой производительности модели.