Ultralytics YOLO27:

Стратегии сбора и аннотирования данных для компьютерного зрения#

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



Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀

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

Настройка классов и сбор данных#

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

Выбор подходящих классов для проекта#

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

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

При определении классов важно также решить, использовать ли укрупнённое или детализированное количество классов. «Количество» означает число отдельных классов, которые тебя интересуют. Это решение влияет на детализацию данных и сложность модели. Ниже приведены соображения для каждого подхода:

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

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

Источники данных#

Ты можешь использовать общедоступные датасеты или собрать собственные данные. Общедоступные датасеты, например на Kaggle и в поисковой системе Google Dataset Search, содержат хорошо аннотированные стандартизированные данные, поэтому отлично подходят для начала обучения и валидации моделей.

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

Как избежать смещения при сборе данных#

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

Вот как можно избежать смещения при сборе данных:

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

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

Что такое аннотирование данных?#

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

Типы аннотирования данных#

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

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

Data annotation types including bounding boxes, polygons, and masks

Распространённые форматы аннотаций#

После выбора типа аннотации важно выбрать подходящий формат для хранения и обмена аннотациями. Наиболее распространённые форматы:

ФорматСтруктура файловОбычно используется для
COCOОдин файл JSONОбнаружение объектов, сегментация экземпляров, обнаружение ключевых точек, сегментация фона и паноптическая сегментация, создание подписей к изображениям
Pascal VOCОдин XML-файл на изображениеОбнаружение объектов
YOLOОдин файл .txt на изображениеОбнаружение объектов, сегментация, оценка позы и ориентированные рамки

Формат YOLO хранит одну строку на объект, причём индексы классов начинаются с 0. Для обнаружения объектов строка имеет вид class x_center y_center width height с нормализованными координатами в диапазоне 0–1. В строке сегментации рамка заменяется нормализованными точками полигона объекта, а строка оценки позы сохраняет рамку и добавляет после неё координаты ключевых точек с флагом видимости каждой точки, если датасет объявляет kpt_shape: [n, 3]. Строка OBB хранит class x1 y1 x2 y2 x3 y3 x4 y4, используя нормализованные координаты углов.

Если твой инструмент аннотирования экспортирует COCO JSON, ты можешь либо конвертировать его в метки YOLO .txt, либо обучаться непосредственно на JSON с пользовательским классом датасета.

Настройка рекомендаций по аннотированию#

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

  • Чёткость и детализация: убедись, что инструкции понятны. Используй примеры и иллюстрации, чтобы показать ожидаемый результат.
  • Единообразие: сохраняй единообразие аннотаций. Установи стандартные критерии для аннотирования разных типов данных, чтобы все аннотации соответствовали одним и тем же правилам.
  • Снижение смещения: сохраняй нейтральность. Приучай себя быть объективным и минимизируй личные предубеждения, чтобы обеспечить справедливую разметку.
  • Эффективность: работай рациональнее, а не усерднее. Используй инструменты и рабочие процессы, автоматизирующие повторяющиеся задачи и делающие аннотирование быстрее и эффективнее.

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

Инструменты аннотирования#

Хороший инструмент аннотирования позволяет размечать все типы данных, необходимые для задачи, обеспечивает соблюдение единых рекомендаций и экспортирует метки в формате, готовом для обучения. Ultralytics Platform предоставляет встроенный редактор аннотаций для обнаружения, сегментации экземпляров, семантической сегментации, классификации, оценки позы и OBB, а интеллектуальное аннотирование на базе SAM превращает один щелчок в маску для задач обнаружения, сегментации экземпляров, семантической сегментации и OBB. Поскольку аннотации сохраняются в формате, ожидаемом каждой задачей, — строки YOLO .txt для пространственных задач и папки классов для классификации, — размеченный датасет сразу готов к обучению без этапа конвертации.

Качество аннотаций: точность, прецизионность и выбросы#

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

Понимание точности и прецизионности#

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

Accuracy vs precision comparison for data annotation

Выявление выбросов#

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

Для обнаружения и исправления выбросов можно использовать различные методы:

  • Статистические методы: для обнаружения выбросов в числовых признаках, таких как значения пикселей, координаты ограничивающих рамок или размеры объектов, можно использовать диаграммы размаха, гистограммы и z-оценки.
  • Визуальные методы: для поиска аномалий в категориальных признаках, таких как классы объектов, цвета или формы, используй визуальные методы — построение изображений, меток или тепловых карт.
  • Алгоритмические методы: используй такие инструменты, как кластеризация (например, кластеризация K-means, DBSCAN) и алгоритмы обнаружения аномалий, чтобы выявлять выбросы на основе закономерностей распределения данных.

Контроль качества аннотированных данных#

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

  • Проверять выборки аннотированных данных
  • Использовать автоматизированные инструменты для поиска распространённых ошибок
  • Просить другого человека перепроверять аннотации

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

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

Стратегии эффективной разметки данных#

Чтобы сделать процесс разметки данных более плавным и эффективным, рассмотри следующие стратегии:

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

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

Заключение#

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

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

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

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

  • Для начала экспериментов с переносом обучения достаточно нескольких сотен аннотированных объектов на класс, но для надёжной работы в реальных условиях Ultralytics рекомендует не менее 1 500 изображений и 10 000 размеченных экземпляров на класс. Сочетай достаточно большой датасет с разумным графиком обучения — около 300 эпох является распространённой отправной точкой, которую следует сократить, если модель рано переобучается, — и тщательно размечай данные в соответствии с конкретными целями проекта. Подробные стратегии обучения смотри в руководстве по обучению YOLO26.

  • Да. Ultralytics Platform включает встроенный редактор аннотаций, который поддерживает ограничивающие рамки, полигоны, ключевые точки, ориентированные рамки и метки классификации в едином рабочем пространстве. Интеллектуальное аннотирование на базе SAM ускоряет разметку для задач обнаружения, сегментации экземпляров, семантической сегментации и OBB, создавая маски одним щелчком, тогда как оценка позы и классификация выполняются вручную. Аннотации сохраняются в формате, ожидаемом каждой задачей: строки YOLO .txt для пространственных задач и папки классов для классификации — и сразу готовы к обучению.

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

Комментарии