Улучши свой набор данных для обучения YOLO26 с помощью Albumentations

Когда ты создаешь модели компьютерного зрения, качество и разнообразие твоих данных для обучения играют важную роль в эффективности работы модели. Albumentations предлагает быстрый, гибкий и эффективный способ применения широкого спектра преобразований изображений, которые могут улучшить способность твоей модели адаптироваться к реальным условиям. Она легко интегрируется с Ultralytics YOLO26 и помогает создавать надежные наборы данных для задач обнаружения объектов, сегментации и классификации.

Используя Albumentations, ты можешь расширить данные для обучения YOLO26 с помощью таких техник, как геометрические преобразования и цветокоррекция. В этой статье мы рассмотрим, как Albumentations может улучшить твой процесс аугментации данных и сделать твои проекты YOLO26 еще эффективнее. Давай начнем!

Albumentations для аугментации изображений

Albumentations — это библиотека аугментации изображений с открытым исходным кодом, созданная в июне 2018 года. Она разработана для упрощения и ускорения процесса аугментации изображений в компьютерном зрении. Созданная с прицелом на производительность и гибкость, она поддерживает множество различных методов аугментации, начиная от простых преобразований, таких как повороты и отражения, и заканчивая более сложными настройками, такими как изменение яркости и контрастности. Albumentations помогает разработчикам создавать богатые и разнообразные наборы данных для таких задач, как классификация изображений, обнаружение объектов и сегментация.

Ты можешь использовать Albumentations для простого применения аугментаций к изображениям, маскам сегментации, ограничивающим прямоугольникам и ключевым точкам, гарантируя, что все элементы твоего набора данных будут преобразованы вместе. Она отлично работает с популярными фреймворками глубокого обучения, такими как PyTorch и TensorFlow, что делает ее доступной для широкого спектра проектов.

Также Albumentations является отличным выбором для аугментации, независимо от того, работаешь ли ты с небольшими наборами данных или с масштабными задачами компьютерного зрения. Она обеспечивает быструю и эффективную обработку, сокращая время, затрачиваемое на подготовку данных. В то же время она помогает улучшить производительность модели, делая твои модели более эффективными в реальных приложениях.

Ключевые особенности Albumentations

Albumentations предлагает множество полезных функций, которые упрощают сложные аугментации изображений для широкого круга приложений компьютерного зрения. Вот некоторые из ключевых особенностей:

  • Широкий спектр преобразований: Albumentations предлагает более 70 различных преобразований, включая геометрические изменения (например, поворот, отражение), цветокоррекцию (например, яркость, контрастность) и добавление шума (например, гауссов шум). Наличие множества вариантов позволяет создавать очень разнообразные и надежные наборы данных для обучения.

Albumentations augmentation examples

  • Высокая оптимизация производительности: Построенная на базе OpenCV и NumPy, Albumentations использует передовые методы оптимизации, такие как SIMD (Single Instruction, Multiple Data), который обрабатывает несколько точек данных одновременно для ускорения процесса. Она быстро обрабатывает большие наборы данных, что делает ее одним из самых быстрых решений для аугментации изображений.

  • Три уровня аугментации: 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 у тебя возникнут трудности, обратись к нашему руководству по распространенным проблемам за решениями и советами.

Использование

После установки необходимых пакетов ты готов начать использование 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%. Низкая вероятность позволяет периодически применять эффекты размытия, внося небольшое разнообразие, чтобы помочь модели обобщать данные, не размывая изображения слишком сильно.

Albumentations Blur augmentation result

Медианное размытие (Median Blur)

Преобразование MedianBlur в Albumentations применяет эффект медианного размытия к изображению, что особенно полезно для уменьшения шума при сохранении границ. В отличие от обычных методов размытия, MedianBlur использует медианный фильтр, который особенно эффективен при удалении импульсного шума (salt-and-pepper) при сохранении четкости краев.

Вот параметры и значения, используемые в этой интеграции:

  • blur_limit: Этот параметр контролирует максимальный размер ядра размытия. В этой интеграции он по умолчанию равен диапазону (3, 7), что означает, что размер ядра для размытия выбирается случайным образом в пределах от 3 до 7 пикселей; для обеспечения правильного выравнивания разрешены только нечетные значения.

  • p: Задает вероятность применения медианного размытия. Здесь p=0.01, поэтому вероятность применения этого преобразования к каждому изображению составляет 1%. Такая низкая вероятность гарантирует, что медианное размытие используется экономно, помогая модели обобщать данные за счет периодического показа изображений с уменьшенным шумом и сохраненными краями.

На изображении ниже показан пример этой аугментации, примененной к изображению.

Albumentations MedianBlur augmentation

Оттенки серого (Grayscale)

Преобразование 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% вероятность преобразования каждого изображения в оттенки серого, что позволяет использовать смесь цветных и черно-белых изображений, чтобы помочь модели лучше обобщать данные.

На изображении ниже показан пример применения этого преобразования в оттенки серого.

Albumentations grayscale conversion

Адаптивное выравнивание гистограммы с ограничением контраста (CLAHE)

Преобразование CLAHE в Albumentations применяет адаптивное выравнивание гистограммы с ограничением контраста (CLAHE), технику, которая улучшает контрастность изображения путем выравнивания гистограммы в локализованных областях (тайлах), а не по всему изображению. CLAHE создает сбалансированный эффект улучшения, избегая чрезмерно усиленного контраста, который может возникнуть при обычном выравнивании гистограммы, особенно в областях с изначально низким контрастом.

Вот параметры и значения, используемые в этой интеграции:

  • clip_limit: Контролирует диапазон усиления контраста. Установлен диапазон по умолчанию (1, 4) и определяет максимально допустимый контраст в каждом тайле. Более высокие значения используются для большего контраста, но также могут вносить шум.

  • tile_grid_size: Определяет размер сетки тайлов, обычно как (строки, столбцы). Значение по умолчанию — (8, 8), что означает, что изображение делится на сетку 8x8. Меньшие размеры тайлов обеспечивают более локализованные корректировки, в то время как большие создают эффекты, близкие к глобальному выравниванию.

  • p: Вероятность применения CLAHE. Здесь p=0.01 вводит эффект улучшения только в 1% случаев, гарантируя, что корректировки контраста применяются экономно для эпизодического разнообразия в обучающих изображениях.

На изображении ниже показан пример применения преобразования CLAHE.

Albumentations CLAHE contrast enhancement

Использование пользовательских преобразований Albumentations

Хотя стандартная интеграция Albumentations предоставляет солидный набор аугментаций, ты можешь настроить преобразования для своего конкретного случая использования. С Ultralytics YOLO26 ты можешь легко передать пользовательские преобразования Albumentations через Python API, используя параметр augmentations.

Как определить пользовательские преобразования

Ты можешь определить свой собственный список преобразований 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,
)

Важные соображения

При использовании пользовательских преобразований Albumentations помни о следующих моментах:

  • Только Python API: Пользовательские преобразования можно передавать только через Python API, но не через CLI или YAML-файлы конфигурации.
  • Замена стандартных: Твои пользовательские преобразования полностью заменят стандартные преобразования Albumentations. Другие аугментации YOLO остаются активными.
  • Обработка ограничивающих прямоугольников: Ultralytics автоматически обрабатывает корректировки ограничивающих прямоугольников для большинства преобразований, но для сложных пространственных преобразований может потребоваться дополнительное тестирование.
  • Производительность: Некоторые преобразования требуют больших вычислительных затрат. Следи за скоростью обучения и вноси коррективы по мере необходимости.
  • Совместимость с задачами: Пользовательские преобразования Albumentations работают с задачами обнаружения и сегментации, но не с классификацией (в которой используется другой конвейер аугментации).

Варианты использования пользовательских преобразований

Различные приложения выигрывают от различных стратегий аугментации:

  • Медицинская визуализация: Используй эластичные деформации, искажения сетки и специализированные шаблоны шума
  • Аэрофотосъемка/Спутниковые снимки: Применяй преобразования, имитирующие разные высоты, погодные условия и углы освещения
  • Сценарии с низкой освещенностью: Делай упор на добавление шума и регулировку яркости, чтобы обучить надежные модели для работы в сложных условиях освещения
  • Промышленный контроль: Добавляй вариации текстур и имитируй дефекты для задач контроля качества

Полный список доступных преобразований и их параметров ты найдешь в документации Albumentations.

Более подробные примеры и рекомендации по использованию пользовательских преобразований Albumentations с YOLO26 см. в руководстве по аугментации данных YOLO.

Продолжай изучать Albumentations

Если тебе интересно узнать больше об Albumentations, ознакомься со следующими ресурсами для получения более глубоких инструкций и примеров:

  • Документация Albumentations: Официальная документация предоставляет полный спектр поддерживаемых преобразований и методов расширенного использования.

  • Руководство Ultralytics по Albumentations: Ознакомься с деталями функции, которая обеспечивает эту интеграцию.

  • Репозиторий Albumentations на GitHub: Репозиторий содержит примеры, тесты производительности и обсуждения, которые помогут тебе начать работу с настройкой аугментаций.

Основные выводы

В этом руководстве мы изучили ключевые аспекты Albumentations, отличной библиотеки Python для аугментации изображений. Мы обсудили широкий спектр ее преобразований, оптимизированную производительность и то, как ты можешь использовать ее в своем следующем проекте YOLO26.

Также, если ты хочешь узнать больше о других интеграциях Ultralytics YOLO26, посети нашу страницу руководств по интеграции. Там ты найдешь полезные ресурсы и инсайты.

Часто задаваемые вопросы (FAQ)

Как я могу интегрировать 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, с тщательно подобранными вероятностями для повышения производительности модели.

Каковы ключевые преимущества использования Albumentations по сравнению с другими библиотеками аугментации?

Albumentations выделяется по нескольким причинам:

  1. Производительность: Построена на базе OpenCV и NumPy с оптимизацией SIMD для превосходной скорости
  2. Гибкость: Поддерживает более 70 преобразований, включая аугментации на уровне пикселей, пространственном уровне и уровне смешивания
  3. Совместимость: Отлично работает с популярными фреймворками, такими как PyTorch и TensorFlow
  4. Надежность: Обширный набор тестов предотвращает незаметное повреждение данных
  5. Удобство использования: Единый API для всех типов аугментаций

Какие типы задач компьютерного зрения могут выиграть от использования аугментации Albumentations?

Albumentations улучшает различные задачи компьютерного зрения, включая:

  • Обнаружение объектов: Повышает устойчивость модели к вариациям освещения, масштаба и ориентации
  • Сегментация экземпляров: Повышает точность предсказания масок за счет разнообразных преобразований
  • Классификация: Увеличивает способность модели к обобщению с помощью цветовых и геометрических аугментаций
  • Оценка позы: Помогает моделям адаптироваться к различным точкам обзора и условиям освещения

Разнообразные варианты аугментации в библиотеке делают ее ценной для любой задачи компьютерного зрения, требующей высокой производительности модели.

Комментарии