Ultralytics YOLO27: Запишись в список ожидания.
Get Started

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

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



Смотри: Как разрабатывать эффективные стратегии сбора и аннотирования данных для компьютерного зрения 🚀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Annotation examples for classification, bounding boxes, instance and semantic segmentation masks, pose keypoints, oriented bounding boxes, and depth

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

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

ФорматСтруктура файлаТипичные задачи
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-средних и DBSCAN), а также алгоритмы обнаружения аномалий, чтобы выявлять выбросы на основе закономерностей распределения данных.

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

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

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

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

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

Эффективные стратегии разметки данных#

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

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

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

Заключение#

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

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

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

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

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

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

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

Комментарии