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

- Результаты бенчмаркинга: Что касается бенчмаркинга, Albumentations стабильно превосходит другие библиотеки, особенно при работе с большими наборами данных.
Link to this sectionПочему тебе стоит использовать Albumentations для своих проектов Vision AI?#
Что касается аугментации изображений, Albumentations выделяется как надежный инструмент для задач компьютерного зрения. Вот несколько основных причин, почему тебе стоит рассмотреть ее использование для своих проектов Vision AI:
-
Простой в использовании API: Albumentations предоставляет единый, понятный API для применения широкого спектра аугментаций к изображениям, маскам, ограничивающим рамкам и ключевым точкам. Она разработана для легкой адаптации к различным наборам данных, что делает подготовку данных проще и эффективнее.
-
Тщательное тестирование на ошибки: Ошибки в конвейере аугментации могут незаметно искажать входные данные, оставаясь незамеченными, но в конечном итоге снижая производительность модели. Albumentations решает эту проблему с помощью тщательного набора тестов, который помогает обнаруживать ошибки на ранних этапах разработки.
-
Расширяемость: Albumentations можно использовать для легкого добавления новых видов аугментации и их применения в конвейерах компьютерного зрения через единый интерфейс наряду со встроенными преобразованиями.
Link to this sectionКак использовать Albumentations для аугментации данных при обучении YOLO26#
Теперь, когда мы разобрались, что такое Albumentations и на что она способна, давай посмотрим, как использовать ее для аугментации данных при обучении модели YOLO26. Настроить ее легко, так как она интегрируется напрямую в режим обучения Ultralytics и применяется автоматически, если у тебя установлен пакет Albumentations.
Link to this sectionУстановка#
Чтобы использовать Albumentations с YOLO26, начни с проверки того, установлены ли у тебя все необходимые пакеты. Если Albumentations не установлена, аугментации не будут применяться во время обучения. После настройки ты будешь готов к созданию аугментированного набора данных для обучения, при этом Albumentations будет автоматически интегрирована для улучшения твоей модели.
# Install the required packages
pip install albumentations ultralyticsПодробные инструкции и лучшие практики по процессу установки ищи в нашем руководстве по установке Ultralytics. Если при установке необходимых пакетов для YOLO26 у тебя возникнут трудности, обратись к нашему руководству по распространенным проблемам за решениями и советами.
Link to this sectionИспользование#
После установки необходимых пакетов ты готов начать использовать 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)Далее давай подробнее рассмотрим конкретные аугментации, которые применяются во время обучения.
Link to this sectionРазмытие#
Преобразование Blur в Albumentations применяет простой эффект размытия к изображению путем усреднения значений пикселей в небольшой квадратной области, или ядре. Это выполняется с помощью функции OpenCV cv2.blur, которая помогает уменьшить шум на изображении, хотя и немного снижает детализацию.
Вот параметры и значения, используемые в этой интеграции:
-
blur_limit: Этот параметр контролирует диапазон размера эффекта размытия. По умолчанию диапазон составляет (3, 7), что означает, что размер ядра для размытия может варьироваться от 3 до 7 пикселей, при этом разрешены только нечетные числа, чтобы размытие оставалось центрированным.
-
p: Вероятность применения размытия. В интеграции p=0.01, поэтому существует 1% шанс, что это размытие будет применено к каждому изображению. Низкая вероятность позволяет создавать периодические эффекты размытия, внося небольшое разнообразие, чтобы помочь модели обобщать без чрезмерного размытия изображений.
Link to this sectionМедианное размытие (Median Blur)#
Преобразование MedianBlur в Albumentations применяет эффект медианного размытия к изображению, что особенно полезно для уменьшения шума при сохранении краев. В отличие от обычных методов размытия, MedianBlur использует медианный фильтр, который особенно эффективен при удалении импульсного шума (типа «соль и перец») при сохранении резкости вокруг краев.
Вот параметры и значения, используемые в этой интеграции:
-
blur_limit: Этот параметр контролирует максимальный размер ядра размытия. В этой интеграции он по умолчанию установлен в диапазоне (3, 7), что означает, что размер ядра для размытия выбирается случайным образом от 3 до 7 пикселей, при этом разрешены только нечетные значения для обеспечения правильного выравнивания.
-
p: Задает вероятность применения медианного размытия. Здесь p=0.01, поэтому существует 1% шанс применения этого преобразования к каждому изображению. Эта низкая вероятность гарантирует, что медианное размытие используется экономно, помогая модели лучше обобщать за счет эпизодического просмотра изображений с уменьшенным шумом и сохраненными краями.
На изображении ниже показан пример этой аугментации, примененной к изображению.
Link to this sectionОттенки серого#
Преобразование 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% шанс преобразования каждого изображения в оттенки серого, что позволяет использовать смесь цветных и черно-белых изображений для лучшего обобщения модели.
На изображении ниже показан пример примененного преобразования в оттенки серого.
Link to this sectionContrast 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.
Link to this sectionИспользование пользовательских преобразований Albumentations#
Хотя встроенная интеграция Albumentations предоставляет солидный набор аугментаций, ты можешь захотеть настроить преобразования под свои конкретные нужды. С Ultralytics YOLO26 ты можешь легко передавать пользовательские преобразования Albumentations через Python API с помощью параметра augmentations.
Link to this sectionКак определить пользовательские преобразования#
Ты можешь определить свой собственный список преобразований 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(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 sectionВажные соображения#
При использовании пользовательских преобразований Albumentations учитывай следующие моменты:
- Только Python API: Пользовательские преобразования могут быть переданы только через Python API, а не через CLI или YAML-файлы конфигурации.
- Заменяет встроенные: Твои пользовательские преобразования полностью заменят встроенные преобразования Albumentations. Другие аугментации YOLO останутся активными.
- Обработка ограничивающих рамок (BBox): Ultralytics автоматически обрабатывает корректировку ограничивающих рамок для большинства преобразований, но сложные пространственные преобразования могут потребовать дополнительного тестирования.
- Производительность: Некоторые преобразования требуют больших вычислительных ресурсов. Отслеживай скорость обучения и корректируй параметры соответствующим образом.
- Совместимость с задачами: Пользовательские преобразования Albumentations работают с задачами обнаружения и сегментации, но не с классификацией (которая использует другой конвейер аугментации).
Link to this sectionСценарии использования пользовательских преобразований#
Различные приложения выигрывают от различных стратегий аугментации:
- Медицинская визуализация: используй эластичные деформации, искажения сетки и специализированные шаблоны шума.
- Аэросъемка/спутниковые снимки: применяй преобразования, имитирующие разные высоты, погодные условия и углы освещения.
- Сценарии при слабом освещении: делай акцент на добавлении шума и настройке яркости для обучения надежных моделей в сложных условиях освещения.
- Промышленная инспекция: добавляй вариации текстур и имитируй дефекты для задач контроля качества.
Для получения полного списка доступных преобразований и их параметров посети документацию Albumentations.
Для получения более подробных примеров и лучших практик использования пользовательских преобразований Albumentations с YOLO26 ознакомься с руководством по аугментации данных YOLO.
Link to this sectionПродолжай изучать Albumentations#
Если тебе интересно узнать больше об Albumentations, изучи следующие ресурсы для получения более подробных инструкций и примеров:
-
Документация Albumentations: Официальная документация предоставляет полный спектр поддерживаемых преобразований и методов продвинутого использования.
-
Руководство по Albumentations в Ultralytics: Ознакомься подробнее с функциями, обеспечивающими эту интеграцию.
-
Репозиторий Albumentations на GitHub: Репозиторий включает примеры, бенчмарки и обсуждения, которые помогут тебе начать работу с настройкой аугментаций.
Link to this sectionОсновные выводы#
В этом руководстве мы изучили ключевые аспекты Albumentations, отличной библиотеки на Python для аугментации изображений. Мы обсудили ее широкий спектр преобразований, оптимизированную производительность и то, как ты можешь использовать ее в своем следующем проекте на YOLO26.
Кроме того, если ты хочешь узнать больше о других интеграциях Ultralytics YOLO26, посети нашу страницу руководств по интеграции. Там ты найдешь ценные ресурсы и идеи.
Link to this sectionFAQ#
Link to this sectionКак я могу интегрировать Albumentations с 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 с тщательно настроенными вероятностями для повышения производительности модели.
Link to this sectionКаковы основные преимущества использования Albumentations по сравнению с другими библиотеками аугментации?#
Albumentations выделяется по нескольким причинам:
- Производительность: построена на OpenCV и NumPy с SIMD-оптимизацией для превосходной скорости.
- Гибкость: поддерживает более 70 преобразований, включая аугментации на уровне пикселей, пространственные и смешивающие.
- Совместимость: бесшовно работает с популярными фреймворками, такими как PyTorch и TensorFlow.
- Надежность: обширный набор тестов предотвращает скрытое повреждение данных.
- Простота использования: единый API для всех типов аугментации.
Link to this sectionКакие типы задач компьютерного зрения могут выиграть от аугментации с Albumentations?#
Albumentations улучшает различные задачи компьютерного зрения, включая:
- Обнаружение объектов: повышает устойчивость модели к изменениям освещения, масштаба и ориентации.
- Сегментация экземпляров: улучшает точность предсказания масок за счет разнообразных преобразований.
- Классификация: увеличивает обобщающую способность модели за счет цветовых и геометрических аугментаций.
- Оценка позы: помогает моделям адаптироваться к разным точкам обзора и условиям освещения.
Разнообразные опции аугментации делают библиотеку ценной для любой задачи зрения, требующей высокой производительности модели.