Meet YOLO26: next-gen vision AI.

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

Albumentations augmentation examples

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

Albumentations Blur augmentation result

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

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

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

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

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

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

Albumentations MedianBlur augmentation

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

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

Albumentations grayscale conversion

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.

Albumentations CLAHE contrast enhancement

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, изучи следующие ресурсы для получения более подробных инструкций и примеров:

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

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

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

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

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

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

Комментарии