Стратегии сбора и аннотирования данных для компьютерного зрения#
Сбор и аннотирование данных — два основополагающих этапа любого проекта по компьютерному зрению: сначала ты собираешь репрезентативные изображения или видео, а затем размечаешь их, чтобы модель могла на них обучаться. Качество этих данных напрямую определяет качество модели, поэтому ещё до начала обучения важно определить классы, собирать данные без смещения и последовательно их аннотировать.
Смотри: Как разрабатывать эффективные стратегии сбора и аннотирования данных для компьютерного зрения 🚀
В этом руководстве рассматриваются настройка классов и сбор данных, понятие аннотирования данных, типы аннотаций и доступные форматы, а также эффективные стратегии разметки — каждое решение согласуется с целями твоего проекта.
Настройка классов и сбор данных#
Сбор изображений и видео для проекта по компьютерному зрению сводится к трём решениям: сколько классов определить, где брать данные и как не допустить смещения в наборе данных.
Как выбрать подходящие классы для проекта#
Один из первых вопросов при начале проекта по компьютерному зрению — сколько классов включить. Нужно определить состав классов, то есть категории или метки, которые модель должна распознавать и различать. Количество классов зависит от конкретных целей проекта.
Например, если ты хочешь отслеживать дорожное движение, в классы можно включить «автомобиль», «грузовик», «автобус», «мотоцикл» и «велосипед». А для отслеживания товаров в магазине можно использовать классы «фрукты», «овощи», «напитки» и «закуски». Определение классов с учётом целей проекта помогает сделать набор данных релевантным и сфокусированным.
Определяя классы, также важно решить, насколько подробно их нужно делить. Под «количеством» понимается число отдельных классов, которые тебе нужны. Это решение влияет на детализацию данных и сложность модели. Вот что следует учитывать в каждом случае:
- Небольшое количество классов: широкие категории, например «транспортное средство» и «не транспортное средство». Они упрощают аннотирование и требуют меньше вычислительных ресурсов, но дают менее подробную информацию, что может снизить эффективность модели в сложных сценариях.
- Большое количество классов: больше категорий с тонкими различиями, например «седан», «внедорожник», «пикап» и «мотоцикл». Такие классы позволяют собирать более подробные данные и повышать точность и производительность модели. Однако на их аннотирование уходит больше времени и труда, а также требуется больше вычислительных ресурсов.
Начать с более конкретных классов может быть очень полезно, особенно в сложных проектах, где важны детали. Более конкретные классы позволяют собирать более подробные данные, получать более глубокие выводы и чётче разграничивать категории. Это не только повышает точность модели, но и упрощает её последующую корректировку, экономя время и ресурсы.
Источники данных#
Можно использовать общедоступные наборы данных или собрать собственные. Общедоступные наборы, например на Kaggle и в поисковике наборов данных Google, содержат хорошо размеченные и стандартизированные данные, поэтому отлично подходят для начала обучения и валидации моделей.
Сбор собственных данных позволяет адаптировать набор данных к конкретным потребностям. Ты можешь снимать изображения и видео на камеры или дроны, собирать изображения из интернета или использовать имеющиеся внутренние данные организации. Собственные данные дают больше контроля над их качеством и релевантностью. Сочетание общедоступных и собственных источников помогает создать разнообразный и полный набор данных.
Как избежать смещения при сборе данных#
Смещение возникает, когда одни группы или сценарии представлены в наборе данных недостаточно, а другие — чрезмерно. В результате модель хорошо работает на одних данных и плохо — на других. Важно избегать смещения в ИИ, чтобы модель компьютерного зрения хорошо работала в самых разных сценариях.
Вот как избежать смещения при сборе данных:
- Разнообразие источников: собирай данные из множества источников, чтобы учесть разные точки зрения и сценарии.
- Сбалансированное представление: обеспечь сбалансированное представление всех релевантных групп. Например, учитывай разные возрастные группы, гендеры и этнические группы.
- Постоянный мониторинг: регулярно проверяй и обновляй набор данных, чтобы выявлять и устранять возникающее смещение.
- Методы снижения смещения: используй такие методы, как увеличение выборки недостаточно представленных классов, аугментация данных и алгоритмы, учитывающие справедливость.
Соблюдение этих рекомендаций помогает создать более надёжную и справедливую модель, способную хорошо обобщать данные в реальных приложениях.
Что такое аннотирование данных?#
Аннотирование данных — это процесс разметки данных, чтобы их можно было использовать для обучения моделей машинного обучения. В компьютерном зрении это означает разметку изображений или видео информацией, на которой модель должна обучаться. Без правильно размеченных данных модели не смогут точно усвоить взаимосвязи между входными и выходными данными.
Типы аннотирования данных#
В зависимости от требований конкретной задачи компьютерного зрения используются разные типы аннотирования данных. Вот несколько примеров:
- Ограничивающие рамки: прямоугольники, нарисованные вокруг объектов на изображении и используемые главным образом для задач детекции объектов. Рамки задаются координатами верхнего левого и нижнего правого углов.
- Полигоны: подробные контуры объектов, обеспечивающие более точную разметку, чем ограничивающие рамки. Полигоны используются в таких задачах, как сегментация экземпляров, где важна форма объекта.
- Маски: бинарные маски, в которых каждый пиксель относится либо к объекту, либо к фону. Маски используются в задачах семантической сегментации, чтобы задавать разметку на уровне пикселей.
- Ключевые точки: определённые точки на изображении, отмечающие интересующие области. Ключевые точки используются в таких задачах, как оценка позы и обнаружение ориентиров лица.
- Поворотные ограничивающие рамки: прямоугольники с углом поворота, используемые в задачах OBB, где объекты могут располагаться под произвольным углом, например на аэрофотоснимках.
Распространённые форматы аннотаций#
Выбрав тип аннотации, важно определить подходящий формат для хранения аннотаций и обмена ими. Самые распространённые форматы:
| Формат | Структура файла | Типичные задачи |
|---|---|---|
| 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 для пространственных задач и папках классов для классификации, — размеченный набор данных можно сразу использовать для обучения, не выполняя преобразование.
Качество аннотаций: точность, прецизионность и выбросы#
Прежде чем приступать к масштабному аннотированию, полезно разобраться в точности, прецизионности, выбросах и контроле качества, чтобы не размечать данные непродуктивным образом.
Разбираемся в точности и прецизионности#
Важно понимать разницу между точностью и прецизионностью и то, как эти понятия связаны с аннотированием. Точность показывает, насколько размеченные данные соответствуют истинным значениям. Она помогает оценить, насколько метки отражают реальные сценарии. Прецизионность характеризует единообразие аннотаций. Она показывает, присваиваешь ли ты одному и тому же объекту или признаку одинаковую метку во всём наборе данных. Высокие точность и прецизионность позволяют лучше обучать модели, снижая уровень шума и повышая способность модели обобщать обучающие данные.
Выявление выбросов#
Выбросы — это точки данных, заметно отклоняющиеся от остальных наблюдений в наборе данных. В контексте аннотаций выбросом может быть неправильно размеченное изображение или аннотация, не согласующаяся с остальной частью набора данных. Выбросы опасны, поскольку могут искажать процесс обучения модели, приводя к неточным предсказаниям и плохому обобщению.
Для выявления и исправления выбросов можно использовать разные методы:
- Статистические методы: для выявления выбросов в числовых признаках, таких как значения пикселей, координаты ограничивающих рамок или размеры объектов, можно использовать диаграммы размаха, гистограммы или z-оценки.
- Визуальные методы: чтобы выявить аномалии в категориальных признаках, таких как классы объектов, цвета или формы, используй визуализацию изображений, меток или тепловых карт.
- Алгоритмические методы: используй такие инструменты, как кластеризация (например, кластеризация K-средних и DBSCAN), а также алгоритмы обнаружения аномалий, чтобы выявлять выбросы на основе закономерностей распределения данных.
Контроль качества размеченных данных#
Как и в других технических проектах, контроль качества размеченных данных необходим. Рекомендуется регулярно проверять аннотации, чтобы убедиться в их точности и единообразии. Это можно делать несколькими способами:
- Проверка выборок размеченных данных
- Использование автоматизированных инструментов для выявления типичных ошибок
- Повторная проверка аннотаций другим человеком
Если над проектом работают несколько человек, важно обеспечить согласованность разметки между аннотаторами. Высокая согласованность между аннотаторами означает, что правила понятны и все применяют их одинаково. Это помогает всем работать согласованно и обеспечивает единообразие аннотаций.
Если во время проверки ты находишь ошибки, исправь их и обнови правила, чтобы предотвратить подобные проблемы в будущем. Давай аннотаторам обратную связь и регулярно проводи обучение, чтобы сократить количество ошибок. Надёжный процесс обработки ошибок помогает поддерживать точность и достоверность набора данных.
Эффективные стратегии разметки данных#
Чтобы упростить и повысить эффективность разметки данных, воспользуйся следующими стратегиями:
- Чёткие инструкции по разметке: Предоставь подробные инструкции с примерами, чтобы все аннотаторы одинаково понимали задачи. Например, при разметке птиц укажи, нужно ли размечать птицу целиком или только отдельные её части.
- Регулярная проверка качества: Установи контрольные показатели и используй конкретные метрики для проверки результатов, поддерживая высокие стандарты благодаря постоянной обратной связи.
- Используй инструменты предварительной разметки: Многие современные платформы для аннотирования предлагают функции предварительной разметки с помощью ИИ. Они могут значительно ускорить процесс, автоматически создавая начальные аннотации, которые затем дорабатывают люди.
- Используй активное обучение: Этот подход позволяет в первую очередь размечать наиболее информативные примеры, что может сократить общее количество необходимых аннотаций без ухудшения качества модели.
- Пакетная обработка: Группируй похожие изображения для разметки, чтобы обеспечить единообразие и повысить эффективность.
Эти стратегии помогают поддерживать высокое качество аннотаций и сокращать время и ресурсы, необходимые для разметки.
Заключение#
Сбор разнообразных и непредвзятых данных и их единообразная разметка с помощью подходящих инструментов — основа надёжной модели компьютерного зрения. Когда датасет собран и размечен, перейди к руководству по этапам проекта компьютерного зрения, чтобы приступить к обучению и оценке. Если по ходу работы возникнут вопросы, обратись к сообществу в репозитории Ultralytics на GitHub или на сервере Ultralytics в Discord.
Часто задаваемые вопросы#
Чтобы свести предвзятость к минимуму, собирай данные из разных источников, обеспечивай сбалансированное представительство всех значимых групп (например, людей разного возраста, пола и этнической принадлежности), регулярно проверяй и обновляй датасет, чтобы выявлять новые виды предвзятости, и применяй методы её уменьшения, такие как увеличение числа примеров недостаточно представленных классов, аугментация данных и алгоритмы с учётом справедливости. Такой подход помогает модели компьютерного зрения хорошо работать в различных реальных сценариях и повышает её способность к обобщению.
Составь чёткие и объективные инструкции по разметке с подробными указаниями, примерами и иллюстрациями, а затем применяй их единообразно ко всем типам данных, чтобы каждая аннотация соответствовала одним и тем же правилам. Научи аннотаторов сохранять нейтральность, чтобы уменьшить влияние личной предвзятости, регулярно пересматривай и обновляй инструкции, а также используй автоматические проверки согласованности и обратную связь между аннотаторами, чтобы поддерживать высокую точность и соответствие целям проекта.
Для начала экспериментов с переносом обучения хватит нескольких сотен размеченных объектов каждого класса, но для надёжной работы в реальных условиях Ultralytics рекомендует не менее 1 500 изображений и 10 000 размеченных экземпляров каждого класса. Используй достаточно большой датасет и разумный график обучения — около 300 эпох обычно подходят для начала; сократи их количество, если модель рано переобучается. Тщательно размечай данные с учётом конкретных целей проекта. Изучи подробные стратегии обучения в руководстве по обучению YOLO26.
Да. Платформа Ultralytics включает встроенный редактор разметки, который позволяет работать с ограничивающими рамками, полигонами, ключевыми точками, ориентированными рамками и метками классов в едином рабочем пространстве. Интеллектуальная разметка на базе SAM ускоряет разметку для задач детекции, сегментации экземпляров, семантической сегментации и OBB, создавая маски по одному щелчку мыши; для разметки датасетов поз можно использовать модели YOLO для поз, а классификацию размечают вручную. Аннотации сохраняются в формате, ожидаемом для каждой задачи: строках YOLO
.txtдля пространственных задач и папках классов для классификации. После этого они готовы к обучению.Выбирай тип аннотации в соответствии с задачей, для которой собираешься обучать модель. Ограничивающие рамки быстрее всего рисовать, и для детекции объектов их достаточно. Полигоны и маски требуют заметно больше времени на каждый объект, но необходимы для сегментации экземпляров, когда важна точная форма объекта. Ключевые точки подходят для оценки позы и детекции ориентиров, а ориентированные рамки — для задач OBB, например обработки аэрофотоснимков, где прямоугольник с горизонтальными и вертикальными сторонами захватил бы слишком много фона. Размечай данные для самой точной из действительно необходимых тебе задач — так объём работы будет соответствовать результату.