Перейти к содержимому

Data Preprocessing Techniques for Annotated Computer Vision Data

Введение

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

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

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

Мы уже тщательно собираем и аннотируем наши данные, принимая во внимание множество соображений. Тогда почему предварительная обработка данных так важна для проекта компьютерного зрения? Что ж, предварительная обработка данных заключается в том, чтобы привести ваши данные в подходящий формат для обучения, который снижает вычислительную нагрузку и помогает повысить производительность модели. Ниже приведены некоторые распространенные проблемы с необработанными данными, которые решает предварительная обработка.

  • Шум: Несущественные или случайные вариации в данных.
  • Несоответствие: Различия в размерах, форматах и качестве изображений.
  • Дисбаланс: Неравномерное распределение классов или категорий в наборе данных.

Методы предварительной обработки данных

Одним из первых и важнейших шагов в предварительной обработке данных является изменение размера. Некоторые модели предназначены для работы с переменными размерами входных данных, но для многих моделей требуется постоянный размер входных данных. Изменение размера изображений делает их однородными и снижает вычислительную сложность.

Изменение размера изображений

Вы можете изменить размер изображений следующими способами:

  • Билинейная интерполяция: Сглаживает значения пикселей, беря средневзвешенное значение четырех ближайших значений пикселей.
  • Ближайший сосед: Присваивает ближайшему пикселю значение без усреднения, что приводит к блочности изображения, но ускоряет вычисления.

Чтобы упростить изменение размера, можно использовать следующие инструменты:

  • OpenCV: A popular computer vision library with extensive functions for image processing.
  • PIL (Pillow): Библиотека изображений Python для открытия, манипулирования и сохранения файлов изображений.

With respect to YOLO11, the 'imgsz' parameter during model training allows for flexible input sizes. When set to a specific size, such as 640, the model will resize input images so their largest dimension is 640 pixels while maintaining the original aspect ratio.

Оценив конкретные потребности модели и набора данных, можно определить, является ли изменение размера необходимым этапом предварительной обработки или модель может эффективно обрабатывать изображения различных размеров.

Нормализация значений пикселов

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

  • Масштабирование Min-Max: Масштабируй значения пикселей в диапазоне от 0 до 1.
  • Нормализация по Z-Score: Масштабируй значения пикселей на основе их среднего и стандартного отклонения.

With respect to YOLO11, normalization is seamlessly handled as part of its preprocessing pipeline during model training. YOLO11 automatically performs several preprocessing steps, including conversion to RGB, scaling pixel values to the range [0, 1], and normalization using predefined mean and standard deviation values.

Разделение набора данных

После очистки данных можно приступать к разделению набора данных. Разделение данных на обучающий, проверочный и тестовый наборы выполняется для того, чтобы модель можно было оценить на основе невидимых данных для оценки эффективности ее обобщения. Обычно 70 % приходится на обучение, 20 % — на проверку и 10 % — на тестирование. Существуют различные инструменты и библиотеки, которые вы можете использовать для разделения данных, такие как scikit-learn или TensorFlow.

При разделении набора данных учитывайте следующее:

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

Что такое аугментация данных?

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

Вот еще несколько преимуществ дополнения данных:

  • Создает более надежный набор данных: Расширение данных может сделать модель более устойчивой к изменениям и искажениям входных данных. Сюда относятся изменения освещения, ориентации и масштаба.
  • Cost-Effective: Data augmentation is a cost-effective way to increase the amount of training data without collecting and labeling new data.
  • Лучшее использование данных: Каждая доступная точка данных используется с максимальным потенциалом, создавая новые вариации

Методы дополнения данных

К распространенным методам аугментации относятся зеркальное отражение, поворот, масштабирование и коррекция цвета. Несколько библиотек, таких как Albumentations, Imgaug и TensorFlowImageDataGenerator может генерировать эти дополнения.

Обзор дополнений к данным

With respect to YOLO11, you can augment your custom dataset by modifying the dataset configuration file, a .yaml file. In this file, you can add an augmentation section with parameters that specify how you want to augment your data.

The Ultralytics YOLO11 repository supports a wide range of data augmentations. You can apply various transformations such as:

  • Случайные культуры
  • Зеркальное отражение: изображения можно переворачивать по горизонтали или вертикали.
  • Поворот: изображения можно поворачивать на определенные углы.
  • Искажение

Кроме того, вы можете настроить интенсивность этих методов аугментации с помощью определенных параметров, чтобы получить большее разнообразие данных.

Пример предварительной обработки

Consider a project aimed at developing a model to detect and classify different types of vehicles in traffic images using YOLO11. We've collected traffic images and annotated them with bounding boxes and labels.

Вот как будет выглядеть каждый шаг предварительной обработки для этого проекта:

  • Resizing Images: Since YOLO11 handles flexible input sizes and performs resizing automatically, manual resizing is not required. The model will adjust the image size according to the specified 'imgsz' parameter during training.
  • Normalizing Pixel Values: YOLO11 automatically normalizes pixel values to a range of 0 to 1 during preprocessing, so it's not required.
  • Разделение набора данных: разделите набор данных на обучающий (70%), проверочный (20%) и тестовый (10%) наборы с помощью таких инструментов, как scikit-learn.
  • Data Augmentation: Modify the dataset configuration file (.yaml) to include data augmentation techniques such as random crops, horizontal flips, and brightness adjustments.

Эти шаги позволяют убедиться, что набор данных подготовлен без каких-либо потенциальных проблем и готов к исследовательскому анализу данных (EDA).

Методы исследовательского анализа данных

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

Статистические методы САПР

Статистические методы часто начинаются с вычисления основных показателей, таких как среднее значение, медиана, стандартное отклонение и диапазон. Эти метрики предоставляют краткий обзор свойств набора данных изображений, таких как распределения интенсивности пикселей. Понимание этих базовых статистических данных поможет вам понять общее качество и характеристики ваших данных, что позволит вам обнаружить любые нарушения на ранней стадии.

Визуальные методы САПР

Визуализации являются ключевыми в САПР для наборов данных изображений. Например, анализ дисбаланса классов является еще одним важным аспектом EDA. Это помогает определить, недостаточно ли представлены определенные классы в наборе данных, Визуализация распределения различных классов или категорий изображений с помощью линейчатых диаграмм может быстро выявить любые дисбалансы. Аналогичным образом, выбросы могут быть идентифицированы с помощью инструментов визуализации, таких как ящичковые диаграммы, которые выделяют аномалии в интенсивности пикселей или распределении признаков. Обнаружение выбросов предотвращает искажение результатов необычными точками данных.

К распространенным инструментам для визуализации относятся:

  • Гистограммы и ящичковые диаграммы: полезны для понимания распределения значений пикселов и выявления выбросов.
  • Точечные диаграммы: полезны для изучения взаимосвязей между объектами изображения или аннотациями.
  • Тепловые карты: Эффективны для визуализации распределения интенсивности пикселов или пространственного распределения аннотированных объектов на изображениях.

Использование Ultralytics Проводник для САПР

For a more advanced approach to EDA, you can use the Ultralytics Explorer tool. It offers robust capabilities for exploring computer vision datasets. By supporting semantic search, SQL queries, and vector similarity search, the tool makes it easy to analyze and understand your data. With Ultralytics Explorer, you can create embeddings for your dataset to find similar images, run SQL queries for detailed analysis, and perform semantic searches, all through a user-friendly graphical interface.

Обзор Ultralytics Explorer

Протяните руку помощи и свяжитесь с нами

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

Каналы связи с сообществом

  • GitHub Issues: Visit the YOLO11 GitHub repository and use the Issues tab to raise questions, report bugs, and suggest features. The community and maintainers are there to help with any issues you face.
  • Ultralytics Сервер Discord: Присоединяйся к серверуUltralytics Discord, чтобы общаться с другими пользователями и разработчиками, получать поддержку, делиться знаниями и обмениваться идеями.

Официальная документация

  • Ultralytics YOLO11 Documentation: Refer to the official YOLO11 documentation for thorough guides and valuable insights on numerous computer vision tasks and projects.

Ваш датасет готов!

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

ВОПРОСЫ И ОТВЕТЫ

В чем важность предварительной обработки данных в проектах по компьютерному зрению?

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

Как я могу использовать Ultralytics YOLO для увеличения данных?

For data augmentation with Ultralytics YOLO11, you need to modify the dataset configuration file (.yaml). In this file, you can specify various augmentation techniques such as random crops, horizontal flips, and brightness adjustments. This can be effectively done using the training configurations explained here. Data augmentation helps create a more robust dataset, reduce overfitting, and improve model generalization.

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

Нормализация масштабирует значения пикселей к стандартному диапазону для ускорения сходимости и повышения производительности во время обучения. К распространенным техникам относятся:

  • Масштабирование Min-Max: Масштабируй значения пикселей в диапазоне от 0 до 1.
  • Нормализация по Z-Score: Масштабируй значения пикселей на основе их среднего и стандартного отклонения.

For YOLO11, normalization is handled automatically, including conversion to RGB and pixel value scaling. Learn more about it in the model training section.

Как мне разделить аннотированный набор данных для обучения?

To split your dataset, a common practice is to divide it into 70% for training, 20% for validation, and 10% for testing. It is important to maintain the data distribution of classes across these splits and avoid data leakage by performing augmentation only on the training set. Use tools like scikit-learn or TensorFlow for efficient dataset splitting. See the detailed guide on dataset preparation.

Can I handle varying image sizes in YOLO11 without manual resizing?

Yes, Ultralytics YOLO11 can handle varying image sizes through the 'imgsz' parameter during model training. This parameter ensures that images are resized so their largest dimension matches the specified size (e.g., 640 pixels), while maintaining the aspect ratio. For more flexible input handling and automatic adjustments, check the model training section.


📅 Created 4 months ago ✏️ Updated 8 days ago

Комментарии