Стратегии сбора и аннотирования данных для компьютерного зрения#
Сбор и аннотирование данных — два основополагающих этапа любого проекта компьютерного зрения: ты собираешь репрезентативные изображения или видео, а затем размечаешь их, чтобы модель могла на них обучаться. Качество этих данных напрямую определяет производительность модели, поэтому до начала обучения важны определение классов, непредвзятый сбор данных и единообразная разметка.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
В этом руководстве рассматриваются настройка классов и сбор данных, что такое аннотирование данных, а также типы и форматы аннотаций, и эффективные стратегии разметки — каждое решение согласовано с целями твоего проекта.
Настройка классов и сбор данных#
Сбор изображений и видео для проекта компьютерного зрения сводится к трём решениям: сколько классов определить, откуда получать данные и как сохранить датасет свободным от смещения.
Выбор подходящих классов для проекта#
Один из первых вопросов при запуске проекта компьютерного зрения — сколько классов включить. Тебе нужно определить состав классов, то есть категории или метки, которые модель должна распознавать и различать. Количество классов следует определять исходя из конкретных целей проекта.
Например, если ты хочешь отслеживать дорожное движение, в классы могут входить «автомобиль», «грузовик», «автобус», «мотоцикл» и «велосипед». Для отслеживания товаров в магазине классы могут быть такими: «фрукты», «овощи», «напитки» и «снеки». Определение классов на основе целей проекта помогает сохранить датасет релевантным и сфокусированным.
При определении классов важно также решить, использовать ли укрупнённое или детализированное количество классов. «Количество» означает число отдельных классов, которые тебя интересуют. Это решение влияет на детализацию данных и сложность модели. Ниже приведены соображения для каждого подхода:
- Укрупнённое количество классов: более широкие и всеобъемлющие категории, например «транспортное средство» и «не транспортное средство». Они упрощают аннотирование и требуют меньше вычислительных ресурсов, но дают менее подробную информацию, что может ограничить эффективность модели в сложных сценариях.
- Детализированное количество классов: больше категорий с более тонкими различиями, например «седан», «внедорожник», «пикап» и «мотоцикл». Они позволяют учитывать больше деталей, повышая точность и производительность модели. Однако их аннотирование занимает больше времени и требует больше труда и вычислительных ресурсов.
Начинать с более специфичных классов может быть очень полезно, особенно в сложных проектах, где важны детали. Более специфичные классы позволяют собирать более подробные данные, получать более глубокие выводы и чётче различать категории. Это не только повышает точность модели, но и упрощает её последующую корректировку при необходимости, экономя время и ресурсы.
Источники данных#
Ты можешь использовать общедоступные датасеты или собрать собственные данные. Общедоступные датасеты, например на Kaggle и в поисковой системе Google Dataset Search, содержат хорошо аннотированные стандартизированные данные, поэтому отлично подходят для начала обучения и валидации моделей.
Сбор собственных данных позволяет адаптировать датасет под конкретные потребности. Ты можешь снимать изображения и видео камерами или дронами, собирать изображения из интернета либо использовать имеющиеся внутренние данные организации. Собственные данные дают больше контроля над их качеством и релевантностью. Сочетание общедоступных и собственных источников помогает создать разнообразный и полноценный датасет.
Как избежать смещения при сборе данных#
Смещение возникает, когда определённые группы или сценарии представлены в датасете недостаточно или чрезмерно. В результате модель хорошо работает на одних данных, но плохо — на других. Крайне важно избегать смещения в ИИ, чтобы модель компьютерного зрения хорошо работала в различных сценариях.
Вот как можно избежать смещения при сборе данных:
- Разнообразные источники: собирай данные из множества источников, чтобы охватить разные точки зрения и сценарии.
- Сбалансированное представление: обеспечь сбалансированное представление всех релевантных групп. Например, учитывай разные возрастные группы, гендеры и этнические группы.
- Постоянный мониторинг: регулярно проверяй и обновляй датасет, чтобы выявлять и устранять возникающие виды смещения.
- Методы устранения смещения: используй такие методы, как передискретизация недопредставленных классов, аугментация данных и алгоритмы, учитывающие справедливость.
Следование этим рекомендациям помогает создать более надёжную и справедливую модель, которая хорошо обобщается в реальных приложениях.
Что такое аннотирование данных?#
Аннотирование данных — это процесс разметки данных, делающий их пригодными для обучения моделей машинного обучения. В компьютерном зрении это означает разметку изображений или видео информацией, на основе которой модель должна обучаться. Без правильно аннотированных данных модели не могут точно изучать взаимосвязи между входами и выходами.
Типы аннотирования данных#
В зависимости от конкретных требований задачи компьютерного зрения существуют разные типы аннотирования данных. Вот несколько примеров:
- Ограничивающие рамки: прямоугольные рамки, нарисованные вокруг объектов на изображении и используемые главным образом в задачах обнаружения объектов. Эти рамки задаются координатами верхнего левого и нижнего правого углов.
- Полигоны: подробные контуры объектов, обеспечивающие более точную аннотацию по сравнению с ограничивающими рамками. Полигоны используются в таких задачах, как сегментация экземпляров, где важна форма объекта.
- Маски: бинарные маски, в которых каждый пиксель является частью объекта или фона. Маски используются в задачах семантической сегментации, чтобы предоставить детализацию на уровне пикселей.
- Ключевые точки: отдельные точки, отмеченные на изображении для обозначения интересующих местоположений. Ключевые точки используются в таких задачах, как оценка позы и обнаружение лицевых ориентиров.
- Ориентированные ограничивающие рамки: прямоугольники, содержащие угол поворота и используемые в задачах 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-means, DBSCAN) и алгоритмы обнаружения аномалий, чтобы выявлять выбросы на основе закономерностей распределения данных.
Контроль качества аннотированных данных#
Как и в других технических проектах, контроль качества необходим и для аннотированных данных. Рекомендуется регулярно проверять аннотации, чтобы убедиться в их точности и единообразии. Это можно делать несколькими способами:
- Проверять выборки аннотированных данных
- Использовать автоматизированные инструменты для поиска распространённых ошибок
- Просить другого человека перепроверять аннотации
Если ты работаешь с несколькими людьми, важно обеспечить согласованность между разными аннотаторами. Хорошее межаннотаторское согласие означает, что рекомендации понятны и все соблюдают их одинаково. Это помогает всем работать согласованно и поддерживать единообразие аннотаций.
Если во время проверки ты обнаружишь ошибки, исправь их и обнови рекомендации, чтобы избежать подобных ошибок в будущем. Давай аннотаторам обратную связь и регулярно проводи обучение, чтобы сократить количество ошибок. Надёжный процесс обработки ошибок помогает сохранить точность и надёжность датасета.
Стратегии эффективной разметки данных#
Чтобы сделать процесс разметки данных более плавным и эффективным, рассмотри следующие стратегии:
- Чёткие рекомендации по аннотированию: предоставляй подробные инструкции с примерами, чтобы все аннотаторы одинаково интерпретировали задачи. Например, при разметке птиц укажи, нужно ли включать всю птицу или только отдельные её части.
- Регулярные проверки качества: устанавливай контрольные показатели и используй конкретные метрики для проверки работы, поддерживая высокие стандарты благодаря постоянной обратной связи.
- Используй инструменты предварительного аннотирования: многие современные платформы аннотирования предлагают функции предварительной разметки с помощью ИИ, которые значительно ускоряют процесс, автоматически создавая исходные аннотации для последующего уточнения человеком.
- Внедряй активное обучение: этот подход отдаёт приоритет разметке наиболее информативных образцов, что позволяет сократить общее число необходимых аннотаций без снижения производительности модели.
- Пакетная обработка: группируй похожие изображения для аннотирования, чтобы поддерживать единообразие и повышать эффективность.
Эти стратегии помогают поддерживать высокое качество аннотаций и сокращать время и ресурсы, необходимые для процесса разметки.
Заключение#
Сбор разнообразных непредвзятых данных и их единообразное аннотирование с помощью подходящих инструментов — основа надёжной модели компьютерного зрения. После сбора и разметки датасета перейди к руководству по этапам проекта компьютерного зрения, чтобы перейти к обучению и оценке. Если по ходу работы возникнут вопросы, обратись к сообществу в репозитории Ultralytics на GitHub или на сервере Ultralytics в Discord.
Часто задаваемые вопросы#
Чтобы минимизировать смещение, собирай данные из разнообразных источников, обеспечивай сбалансированное представление всех релевантных групп (например, разных возрастов, гендеров и этнических групп), регулярно проверяй и обновляй датасет для выявления возникающих видов смещения и применяй методы устранения смещения, такие как передискретизация недопредставленных классов, аугментация данных и алгоритмы, учитывающие справедливость. Такой подход помогает модели компьютерного зрения хорошо работать в различных реальных сценариях и улучшает её способность к обобщению.
Сформулируй чёткие объективные рекомендации по разметке с подробными инструкциями, примерами и иллюстрациями, а затем единообразно применяй их ко всем типам данных, чтобы каждая аннотация соответствовала одним и тем же правилам. Обучи аннотаторов сохранять нейтральность для снижения личного смещения, регулярно проверяй и обновляй рекомендации, а также используй автоматизированные проверки согласованности и обратную связь между аннотаторами, чтобы поддерживать высокую точность и соответствие целям проекта.
Для начала экспериментов с переносом обучения достаточно нескольких сотен аннотированных объектов на класс, но для надёжной работы в реальных условиях Ultralytics рекомендует не менее 1 500 изображений и 10 000 размеченных экземпляров на класс. Сочетай достаточно большой датасет с разумным графиком обучения — около 300 эпох является распространённой отправной точкой, которую следует сократить, если модель рано переобучается, — и тщательно размечай данные в соответствии с конкретными целями проекта. Подробные стратегии обучения смотри в руководстве по обучению YOLO26.
Да. Ultralytics Platform включает встроенный редактор аннотаций, который поддерживает ограничивающие рамки, полигоны, ключевые точки, ориентированные рамки и метки классификации в едином рабочем пространстве. Интеллектуальное аннотирование на базе SAM ускоряет разметку для задач обнаружения, сегментации экземпляров, семантической сегментации и OBB, создавая маски одним щелчком, тогда как оценка позы и классификация выполняются вручную. Аннотации сохраняются в формате, ожидаемом каждой задачей: строки YOLO
.txtдля пространственных задач и папки классов для классификации — и сразу готовы к обучению.Выбирай тип аннотаций в соответствии с задачей, для которой планируешь обучать модель. Ограничивающие рамки быстрее всего размечать, и их достаточно для обнаружения объектов. Полигоны и маски требуют заметно больше времени на каждый объект, но необходимы для сегментации экземпляров, когда важна точная форма объекта. Ключевые точки подходят для оценки позы и обнаружения ориентиров, а ориентированные рамки — для задач OBB, например анализа аэрофотоснимков, где осевая прямоугольная рамка охватывала бы слишком много фона. Разметка с необходимой точностью помогает соразмерить трудозатраты на аннотирование с результатом.