Улучши свой датасет для обучения YOLO26 с помощью Albumentations#
При создании моделей компьютерного зрения качество и разнообразие твоих данных для обучения могут существенно влиять на эффективность модели. Albumentations предоставляет быстрый, гибкий и эффективный способ применять широкий спектр преобразований изображений, которые помогают модели лучше адаптироваться к сценариям реального мира. Библиотека легко интегрируется с Ultralytics YOLO26 и помогает создавать надежные датасеты для задач обнаружения объектов, сегментации и классификации.
С помощью Albumentations ты можешь улучшить данные для обучения YOLO26, используя такие методы, как геометрические преобразования и коррекция цвета. В этой статье мы рассмотрим, как Albumentations может улучшить процесс аугментации данных и сделать твои проекты YOLO26 еще эффективнее. Начнем!
Albumentations для аугментации изображений#
Albumentations — это библиотека аугментации изображений с открытым исходным кодом, созданная в июне 2018 года. Она предназначена для упрощения и ускорения процесса аугментации изображений в задачах компьютерного зрения. Разработанная с учетом производительности и гибкости, библиотека поддерживает множество разнообразных методов аугментации: от простых преобразований, таких как поворот и отражение, до более сложных изменений яркости и контрастности. Albumentations помогает разработчикам создавать насыщенные и разнообразные датасеты для таких задач, как классификация изображений, обнаружение объектов и сегментация.
Ты можешь использовать Albumentations, чтобы легко применять аугментации к изображениям, маскам сегментации, ограничивающим рамкам и ключевым точкам, а также следить за тем, чтобы все элементы твоего датасета трансформировались одновременно. Инструмент отлично сочетается с популярными фреймворками глубокого обучения, такими как PyTorch и TensorFlow, что делает его доступным для самых разных проектов.
Кроме того, Albumentations отлично подходит для аугментации как небольших датасетов, так и крупномасштабных задач компьютерного зрения. Библиотека обеспечивает быструю и эффективную обработку, сокращая время подготовки данных. Одновременно она помогает повысить производительность модели, делая модели эффективнее в приложениях реального мира.
Ключевые возможности Albumentations#
Albumentations предлагает множество полезных возможностей, упрощающих сложную аугментацию изображений для широкого спектра приложений компьютерного зрения. Вот некоторые из ключевых возможностей:
- Широкий спектр преобразований: Albumentations предлагает более 70 различных преобразований, включая геометрические изменения (например, поворот и отражение), коррекцию цвета (например, яркости и контрастности) и добавление шума (например, гауссовского шума). Множество вариантов позволяет создавать разнообразные и надежные датасеты для обучения.
-
Высокая производительность: Albumentations построена на OpenCV и NumPy и использует передовые методы оптимизации, такие как SIMD (одна инструкция, множество данных), которые обрабатывают несколько точек данных одновременно для ускорения вычислений. Библиотека быстро обрабатывает большие датасеты, что делает ее одним из самых быстрых доступных вариантов для аугментации изображений.
-
Три уровня аугментации: Albumentations поддерживает три уровня аугментации: попиксельные, пространственные и смешивающие преобразования. Попиксельные преобразования влияют только на входные изображения, не изменяя маски, ограничивающие рамки или ключевые точки. При пространственных преобразованиях изменяются и изображение, и его элементы, такие как маски и ограничивающие рамки. Кроме того, смешивающие преобразования — это уникальный способ аугментации данных, при котором несколько изображений объединяются в одно.

- Результаты бенчмаркинга: В бенчмаркинге Albumentations стабильно превосходит другие библиотеки, особенно при работе с большими датасетами.
Почему стоит использовать Albumentations в проектах Vision AI?#
В области аугментации изображений Albumentations выделяется как надежный инструмент для задач компьютерного зрения. Вот несколько ключевых причин рассмотреть ее использование в проектах Vision AI:
-
Простой API: Albumentations предоставляет единый понятный API для применения широкого спектра аугментаций к изображениям, маскам, ограничивающим рамкам и ключевым точкам. Библиотека легко адаптируется к разным датасетам, упрощая и ускоряя подготовку данных.
-
Тщательное тестирование ошибок: ошибки в конвейере аугментации могут незаметно повредить входные данные, часто оставаясь необнаруженными и в конечном счете ухудшая производительность модели. Albumentations решает эту проблему с помощью обширного набора тестов, который помогает выявлять ошибки на ранних этапах разработки.
-
Расширяемость: Albumentations позволяет легко добавлять новые аугментации и использовать их в конвейерах компьютерного зрения через единый интерфейс наряду со встроенными преобразованиями.
Как использовать Albumentations для аугментации данных при обучении YOLO26#
Теперь, когда мы рассмотрели, что такое Albumentations и на что она способна, давай посмотрим, как использовать ее для аугментации данных при обучении модели YOLO26. Настройка проста, поскольку библиотека напрямую интегрируется с режимом обучения Ultralytics и применяется автоматически, если пакет Albumentations установлен.
Установка#
Чтобы использовать Albumentations с YOLO26, сначала убедись, что необходимые пакеты установлены. Если Albumentations не установлена, аугментации во время обучения применяться не будут. После настройки ты сможешь создать аугментированный датасет для обучения, а Albumentations будет автоматически улучшать твою модель.
# Install the required packages
pip install albumentations ultralyticsПодробные инструкции и рекомендации по установке смотри в нашем руководстве по установке Ultralytics. Если при установке необходимых для YOLO26 пакетов возникнут трудности, обратись к руководству по распространенным проблемам, где encontrarás решения и советы.
Для примеров пользовательских преобразований на этой странице требуется 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 применяет к изображению простой эффект размытия, усредняя значения пикселей в небольшой квадратной области, или ядре. Для этого используется функция cv2.blur из OpenCV, которая помогает уменьшить шум на изображении, хотя при этом немного снижает детализацию.
Ниже приведены параметры и значения, используемые в этой интеграции:
-
blur_limit: управляет диапазоном размера эффекта размытия. Диапазон по умолчанию — (3, 7), то есть размер ядра размытия может составлять от 3 до 7 пикселей; разрешены только нечетные числа, чтобы сохранять центрирование размытия.
-
p: вероятность применения размытия. В интеграции p=0.01, поэтому к каждому изображению размытие применяется с вероятностью 1%. Низкая вероятность обеспечивает лишь периодическое размытие, добавляя небольшое разнообразие и помогая модели обобщать данные без чрезмерного размытия изображений.
Медианное размытие#
Преобразование 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%, благодаря чему сочетание цветных изображений и изображений в градациях серого помогает модели лучше обобщать данные.
На изображении ниже показан пример применения этого преобразования в градации серого.
Адаптивное выравнивание гистограммы с ограничением контраста (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. Сериализованные трансформации также можно передавать через CLI или конфигурационные файлы YAML, в том числе при возобновлении обучения.
- Заменяют стандартные: пользовательские преобразования полностью заменяют стандартные преобразования Albumentations. Другие аугментации YOLO остаются активными.
- Обработка меток: пространственные трансформации, включая вложенные в
A.OneOfилиA.Compose, перемещают ограничивающие рамки, полигоны, ключевые точки, а также карты глубины или семантические маски вместе с изображением.A.RandomGridShuffleне может сохранять топологию полигонов или ключевых точек и вызывает ошибку на выборках сегментации, позы и OBB. - Производительность: некоторые преобразования требуют значительных вычислительных ресурсов. Отслеживай скорость обучения и при необходимости корректируй настройки.
- Совместимость с задачами: кастомные трансформации Albumentations работают с обучением для детектирования, сегментации, семантической сегментации, работы с глубиной, оценки позы и OBB, но не работают с классификацией (в которой используется другой пайплайн аугментации).
Сценарии использования пользовательских преобразований#
Для разных приложений подходят разные стратегии аугментации:
- Медицинская визуализация: используй эластичные деформации, искажения сетки и специализированные шаблоны шума
- Аэрофотосъемка и спутниковые изображения: применяй преобразования, имитирующие различные высоты, погодные условия и углы освещения
- Сценарии с низкой освещенностью: уделяй особое внимание добавлению шума и корректировке яркости, чтобы обучать надежные модели для сложных условий освещения
- Промышленный контроль: добавляй вариации текстур и имитацию дефектов для приложений контроля качества
Полный список доступных преобразований и их параметров смотри в документации Albumentations.
Более подробные примеры и рекомендации по использованию пользовательских преобразований Albumentations с YOLO26 смотри в руководстве по аугментации данных YOLO.
Продолжай изучать Albumentations#
Если ты хочешь узнать больше об Albumentations, изучи следующие ресурсы с подробными инструкциями и примерами:
-
Документация Albumentations: официальная документация содержит полный перечень поддерживаемых преобразований и передовых методов использования.
-
Руководство Ultralytics по Albumentations: подробнее изучи функции, обеспечивающие эту интеграцию.
-
Репозиторий Albumentations на GitHub: репозиторий содержит примеры, результаты бенчмаркинга и обсуждения, которые помогут тебе начать настройку аугментаций.
Основные выводы#
В этом руководстве мы рассмотрели ключевые аспекты Albumentations — отличной библиотеки Python для аугментации изображений. Мы обсудили широкий спектр преобразований, оптимизированную производительность и способы использования библиотеки в следующем проекте YOLO26.
Если ты хочешь узнать больше о других интеграциях Ultralytics YOLO26, посети нашу страницу руководства по интеграциям. Там ты найдешь полезные ресурсы и сведения.
Часто задаваемые вопросы#
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 улучшает различные задачи компьютерного зрения, включая:
- Обнаружение объектов: повышает устойчивость модели к изменениям освещения, масштаба и ориентации
- Сегментация экземпляров: повышает точность прогнозирования масок благодаря разнообразным преобразованиям
- Классификация: улучшает обобщающую способность модели с помощью цветовых и геометрических аугментаций
- Оценка позы: помогает моделям адаптироваться к разным точкам обзора и условиям освещения
Разнообразные возможности аугментации библиотеки делают ее полезной для любой задачи компьютерного зрения, требующей надежной производительности модели.