YOLO Vision 2026:

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

Albumentations augmentation examples

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

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

Overview of the Different Levels of Augmentations

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

Albumentations Blur augmentation result

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

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

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

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

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

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

Albumentations MedianBlur augmentation

Оттенки серого#

Преобразование 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

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 CLAHE contrast enhancement

Использование пользовательских преобразований 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 выделяется по нескольким причинам:

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

    • Object Detection: Повышает устойчивость модели к изменениям освещения, масштаба и ориентации
    • Instance Segmentation: Улучшает точность предсказания масок с помощью разнообразных трансформаций
    • Classification: Увеличивает обобщающую способность модели за счет цветовых и геометрических аугментаций
    • Pose Estimation: Помогает моделям адаптироваться к различным точкам обзора и условиям освещения

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

Комментарии