Перейти к содержанию

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

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

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

Albumentations для увеличения изображений

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

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

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

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

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

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

Пример аугментации изображений

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

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

Обзор различных уровней аугментации

Зачем использовать Albumentations для ваших проектов Vision AI?

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

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

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

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

Как использовать Albumentations для увеличения данных для обучения YOLO11

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

Установка

Чтобы использовать Albumentations с YOLO11, начните с того, что убедитесь, что у вас установлены необходимые пакеты. Если Albumentations не установлен, аугментации не будут применяться во время обучения. После настройки вы будете готовы создать дополненный набор данных для обучения, с интегрированным Albumentations для автоматического улучшения вашей модели.

Установка

# Install the required packages
pip install albumentations ultralytics

Подробные инструкции и рекомендации, касающиеся процесса установки, см. в нашем руководстве по установке Ultralytics. Если во время установки необходимых пакетов для YOLO11 у вас возникнут какие-либо трудности, обратитесь к нашему руководству по распространенным проблемам для получения решений и советов.

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

После установки необходимых пакетов вы готовы начать использовать Albumentations с YOLO11. Когда вы обучаете YOLO11, набор дополнений автоматически применяется благодаря его интеграции с Albumentations, что упрощает повышение производительности вашей модели.

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

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

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

Пример аугментации размытия (Blur).

Медианное размытие

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

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

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

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

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

Пример аугментации медианного размытия (MedianBlur).

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

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

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

Пример аугментации ToGray.

Contrast Limited Adaptive Histogram Equalization (CLAHE) (Выравнивание гистограммы с адаптивным ограничением контрастности (CLAHE))

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

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

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

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

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

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

Пример аугментации CLAHE.

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

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

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

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

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

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

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

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

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

Как я могу интегрировать Albumentations с YOLO11 для улучшения аугментации данных?

Albumentations легко интегрируется с YOLO11 и автоматически применяется во время обучения, если у вас установлен пакет. Вот как начать:

# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO

# Load and train model with automatic augmentations
model = YOLO("yolo11n.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 улучшает различные задачи компьютерного зрения, включая:

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

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



📅 Создано 9 месяцев назад ✏️ Обновлено 2 месяца назад

Комментарии