Link to this sectionСтратегии сбора и разметки данных для компьютерного зрения#
Сбор и разметка данных — это два фундаментальных этапа любого проекта по компьютерному зрению: ты собираешь репрезентативные изображения или видео, а затем размечаешь их, чтобы модель могла учиться на них. Качество этих данных напрямую определяет производительность модели, поэтому определение классов, непредвзятый подбор источников и последовательная разметка важны до начала любого обучения.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
Это руководство охватывает настройку классов и сбор данных, что такое разметка данных, включая типы разметки и форматы для выбора, а также эффективные стратегии разметки — каждое решение согласуется с целями твоего проекта.
Link to this sectionНастройка классов и сбор данных#
Сбор изображений и видео для проекта по компьютерному зрению сводится к трем решениям: сколько классов определить, где брать данные и как избежать предвзятости в наборе данных.
Link to this sectionВыбор правильных классов для твоего проекта#
Один из первых вопросов при запуске проекта по компьютерному зрению — сколько классов включить. Тебе нужно определить принадлежность к классам, что включает в себя различные категории или метки, которые твоя модель должна распознавать и различать. Количество классов должно определяться конкретными целями твоего проекта.
Например, если ты хочешь контролировать дорожное движение, твои классы могут включать "автомобиль", "грузовик", "автобус", "мотоцикл" и "велосипед". С другой стороны, для отслеживания товаров в магазине твоими классами могут быть "фрукты", "овощи", "напитки" и "закуски". Определение классов на основе целей проекта помогает сохранить актуальность и сфокусированность твоего набора данных.
При определении классов еще одним важным различием является выбор между грубым или точным количеством классов. 'Количество' относится к числу различных классов, которые тебя интересуют. Это решение влияет на гранулярность данных и сложность модели. Вот соображения для каждого подхода:
- Грубый подсчет классов: Это более широкие, более инклюзивные категории, такие как "транспортное средство" и "не транспортное средство". Они упрощают разметку и требуют меньше вычислительных ресурсов, но предоставляют менее подробную информацию, потенциально ограничивая эффективность модели в сложных сценариях.
- Точный подсчет классов: Больше категорий с более тонкими различиями, такие как "седан", "внедорожник", "пикап" и "мотоцикл". Они фиксируют более детальную информацию, улучшая точность и производительность модели. Однако они требуют больше времени и трудозатрат на разметку, а также больше вычислительных ресурсов.
Начало работы с более конкретными классами может быть очень полезным, особенно в сложных проектах, где детали важны. Более специфические классы позволяют тебе собирать более подробные данные, получать более глубокие инсайты и устанавливать более четкие различия между категориями. Это не только улучшает точность модели, но и облегчает ее настройку в дальнейшем при необходимости, экономя время и ресурсы.
Link to this sectionИсточники данных#
Ты можешь использовать общедоступные наборы данных или собрать собственные пользовательские данные. Публичные наборы данных, например, на Kaggle и в поисковой системе наборов данных Google, предлагают хорошо размеченные, стандартизированные данные, что делает их отличными отправными точками для обучения и проверки моделей.
С другой стороны, сбор пользовательских данных позволяет адаптировать набор данных под твои конкретные нужды. Ты можешь захватывать изображения и видео с помощью камер или дронов, собирать изображения из сети или использовать существующие внутренние данные твоей организации. Пользовательские данные дают тебе больше контроля над их качеством и актуальностью. Комбинирование как публичных, так и пользовательских источников данных помогает создать разнообразный и всеобъемлющий набор данных.
Link to this sectionИзбежание предвзятости при сборе данных#
Предвзятость возникает, когда определенные группы или сценарии недопредставлены или избыточно представлены в твоем наборе данных. Это приводит к созданию модели, которая хорошо работает на одних данных, но плохо на других. Крайне важно избегать предвзятости в ИИ, чтобы твоя модель компьютерного зрения могла эффективно работать в различных сценариях.
Вот как ты можешь избежать предвзятости при сборе данных:
- Разнообразные источники: Собирай данные из множества источников, чтобы охватить различные перспективы и сценарии.
- Сбалансированное представительство: Включай сбалансированное представительство всех соответствующих групп. Например, учитывай разный возраст, пол и этническую принадлежность.
- Постоянный мониторинг: Регулярно пересматривай и обновляй свой набор данных, чтобы выявлять и устранять любые возникающие предвзятости.
- Методы смягчения предвзятости: Используй такие методы, как перевыборка недопредставленных классов, аугментация данных и алгоритмы, учитывающие справедливость.
Следование этим практикам помогает создать более надежную и справедливую модель, которая хорошо обобщается в реальных приложениях.
Link to this sectionЧто такое разметка данных?#
Разметка данных — это процесс маркировки данных для того, чтобы сделать их пригодными для обучения моделей машинного обучения. В компьютерном зрении это означает маркировку изображений или видео информацией, необходимой модели для обучения. Без должным образом размеченных данных модели не смогут точно выучить связи между входными и выходными данными.
Link to this sectionТипы разметки данных#
В зависимости от конкретных требований задачи компьютерного зрения существуют разные типы разметки данных. Вот несколько примеров:
- Ограничивающие рамки (Bounding Boxes): Прямоугольные рамки, нарисованные вокруг объектов на изображении, используемые в основном для задач обнаружения объектов. Эти рамки определяются координатами левого верхнего и правого нижнего углов.
- Многоугольники (Polygons): Детальные контуры объектов, позволяющие выполнить более точную разметку, чем ограничивающие рамки. Многоугольники используются в задачах типа сегментация экземпляров, где важна форма объекта.
- Маски: Бинарные маски, где каждый пиксель либо является частью объекта, либо фоном. Маски используются в задачах семантической сегментации для обеспечения детализации на уровне пикселей.
- Ключевые точки (Keypoints): Конкретные точки, отмеченные внутри изображения для идентификации мест интереса. Ключевые точки используются в таких задачах, как оценка позы и обнаружение ключевых точек лица.
Link to this sectionОбщие форматы разметки#
После выбора типа разметки важно выбрать подходящий формат для хранения и обмена аннотациями. Наиболее распространенные форматы:
| Формат | Структура файла | Обычно используется для |
|---|---|---|
| COCO | Один файл JSON | Обнаружение объектов, сегментация экземпляров, обнаружение ключевых точек, сегментация объектов и паноптическая сегментация, создание описаний изображений |
| Pascal VOC | Один файл XML на каждое изображение | Обнаружение объектов |
| YOLO | Один .txt файл на изображение | Обнаружение объектов, сегментация и поза |
Формат YOLO хранит по одной строке на объект с индексами классов, начиная с 0. Для обнаружения объектов строка выглядит как class x_center y_center width height с нормализованными координатами от 0 до 1, тогда как для сегментации добавляются нормализованные точки полигона, а для позы — координаты ключевых точек и опциональные значения видимости после рамки.
Link to this sectionУстановка правил разметки#
После выбора типа разметки и формата следующим шагом является создание четких и объективных правил разметки. Эти правила служат дорожной картой для обеспечения согласованности и точности на протяжении всего процесса разметки. Ключевые аспекты этих правил включают:
- Четкость и детализация: Убедись, что твои инструкции понятны. Используй примеры и иллюстрации, чтобы показать, что ожидается.
- Согласованность: Держи свои аннотации единообразными. Установи стандартные критерии для разметки различных типов данных, чтобы все аннотации следовали одним и тем же правилам.
- Снижение предвзятости: Оставайся нейтральным. Приучай себя быть объективным и минимизировать личные предвзятости, чтобы обеспечить справедливые аннотации.
- Эффективность: Работай умнее, а не тяжелее. Используй инструменты и рабочие процессы, которые автоматизируют повторяющиеся задачи, делая процесс разметки быстрее и эффективнее.
Регулярный пересмотр и обновление правил маркировки помогут поддерживать точность, согласованность и соответствие целям твоего проекта.
Link to this sectionИнструменты для аннотирования#
Хороший инструмент для разметки позволяет размечать все типы, необходимые для твоей задачи, обеспечивает соблюдение последовательных руководств и экспортирует метки в формате, готовом к обучению. Ultralytics Platform предоставляет встроенный редактор разметки, охватывающий обнаружение, сегментацию экземпляров, позу, OBB и классификацию, с умной разметкой на базе SAM, которая превращает один клик в маску для задач обнаружения, сегментации и OBB. Поскольку каждая аннотация сохраняется в формате YOLO, твой размеченный набор данных сразу готов к обучению без этапа конвертации.
Link to this sectionКачество разметки: точность, прецизионность и выбросы#
Перед началом масштабной разметки полезно разобраться в точности, прецизионности, выбросах и контроле качества, чтобы не размечать данные контрпродуктивным способом.
Link to this sectionПонимание точности и прецизионности#
Важно понимать разницу между точностью (accuracy) и прецизионностью (precision) и то, как это относится к разметке. Точность (accuracy) относится к тому, насколько размеченные данные близки к истинным значениям. Она помогает нам измерить, насколько метки отражают реальные сценарии. Прецизионность (precision) указывает на согласованность аннотаций. Она проверяет, присваиваешь ли ты одинаковую метку одному и тому же объекту или функции во всем наборе данных. Высокая точность и прецизионность приводят к лучшему обучению моделей за счет уменьшения шума и улучшения способности модели к обобщению на основе обучающих данных.
Link to this sectionИдентификация выбросов#
Выбросы — это точки данных, которые сильно отклоняются от других наблюдений в наборе данных. В отношении аннотаций выбросом может быть неправильно размеченное изображение или аннотация, которая не соответствует остальной части набора данных. Выбросы беспокоят, потому что они могут исказить процесс обучения модели, приводя к неточным прогнозам и плохой обобщаемости.
Ты можешь использовать различные методы для обнаружения и исправления выбросов:
- Статистические методы: Для обнаружения выбросов в числовых признаках, таких как значения пикселей, координаты ограничивающей рамки или размеры объектов, ты можешь использовать такие методы, как диаграммы размаха (box plots), гистограммы или z-оценки.
- Визуальные методы: Чтобы заметить аномалии в категориальных признаках, таких как классы объектов, цвета или формы, используй визуальные методы, такие как построение изображений, меток или тепловых карт.
- Алгоритмические методы: Используй инструменты типа кластеризации (например, K-means, DBSCAN) и алгоритмы обнаружения аномалий для идентификации выбросов на основе паттернов распределения данных.
Link to this sectionКонтроль качества размеченных данных#
Как и в других технических проектах, контроль качества обязателен для размеченных данных. Хорошая практика — регулярно проверять аннотации, чтобы убедиться в их точности и согласованности. Это можно сделать несколькими способами:
- Просмотр выборок размеченных данных
- Использование автоматизированных инструментов для обнаружения распространенных ошибок
- Привлечение другого человека для перепроверки аннотаций
Если ты работаешь с несколькими людьми, важна согласованность между разными разметчиками. Хорошее согласие между разметчиками означает, что рекомендации понятны и все следуют им одинаково. Это держит всех на одной волне, а аннотации остаются согласованными.
При просмотре, если ты находишь ошибки, исправляй их и обновляй рекомендации, чтобы избежать будущих ошибок. Предоставляй обратную связь разметчикам и предлагай регулярное обучение, чтобы помочь уменьшить количество ошибок. Наличие сильного процесса обработки ошибок сохраняет твой набор данных точным и надежным.
Link to this sectionЭффективные стратегии маркировки данных#
Чтобы сделать процесс маркировки данных более плавным и эффективным, рассмотри возможность внедрения этих стратегий:
- Четкие руководства по разметке: Предоставляй подробные инструкции с примерами, чтобы гарантировать, что все разметчики интерпретируют задачи одинаково. Например, при маркировке птиц уточни, нужно ли включать всю птицу или только определенные части.
- Регулярные проверки качества: Устанавливай критерии и используй конкретные метрики для проверки работы, поддерживая высокие стандарты с помощью постоянной обратной связи.
- Использование инструментов предварительной разметки: Многие современные платформы для разметки предлагают функции предварительной разметки с поддержкой ИИ, которые могут значительно ускорить процесс за счет автоматической генерации начальных аннотаций, которые люди затем могут уточнить.
- Внедрение активного обучения (Active Learning): Этот подход отдает приоритет маркировке наиболее информативных выборок в первую очередь, что может уменьшить общее количество необходимых аннотаций при сохранении производительности модели.
- Пакетная обработка: Группируй похожие изображения вместе для разметки, чтобы поддерживать согласованность и повысить эффективность.
Эти стратегии могут помочь поддерживать высокое качество аннотаций, сокращая при этом время и ресурсы, необходимые для процесса маркировки.
Link to this sectionПоделись своими мыслями с сообществом#
Обмен своими идеями и вопросами с другими энтузиастами компьютерного зрения может помочь ускорить твои проекты. Вот несколько отличных способов учиться, устранять неполадки и общаться:
Link to this sectionГде найти помощь и поддержку#
- GitHub Issues: Посети репозиторий YOLO26 на GitHub и используй вкладку Issues, чтобы задавать вопросы, сообщать о багах и предлагать функции. Сообщество и сопровождающие готовы помочь с любыми проблемами, с которыми ты столкнешься.
- Сервер Ultralytics в Discord: Присоединяйся к серверу Ultralytics в Discord, чтобы связаться с другими пользователями и разработчиками, получить поддержку, обменяться знаниями и обсудить идеи.
Link to this sectionОфициальная документация#
- Документация Ultralytics YOLO26: Обратись к официальной документации YOLO26 за подробными руководствами и ценными сведениями по многочисленным задачам и проектам компьютерного зрения.
Link to this sectionЗаключение#
Сбор разнообразных, непредвзятых данных и их последовательная разметка с помощью правильных инструментов — это фундамент надежной модели компьютерного зрения. После того как набор данных собран и размечен, переходи к руководству этапы проекта по компьютерному зрению, чтобы перейти к обучению и оценке.
Link to this sectionFAQ#
Link to this sectionКакой самый лучший способ избежать предвзятости при сборе данных для проектов компьютерного зрения?#
Чтобы минимизировать предвзятость, собирай данные из разнообразных источников, обеспечивай сбалансированное представление всех соответствующих групп (например, разные возрасты, гендеры и этнические принадлежности), регулярно пересматривай и обновляй набор данных для выявления возникающих предвзятостей и применяй методы смягчения, такие как оверсэмплинг недостаточно представленных классов, аугментация данных и алгоритмы, учитывающие справедливость. Избегание предвзятости таким образом помогает твоей модели компьютерного зрения эффективно работать в разнообразных реальных сценариях и улучшает её способность к обобщению.
Link to this sectionКак я могу обеспечить высокую согласованность и точность при разметке данных?#
Установи четкие, объективные правила разметки с подробными инструкциями, примерами и иллюстрациями, а затем применяй их единообразно ко всем типам данных, чтобы каждая аннотация следовала одним и тем же правилам. Обучай разметчиков сохранять нейтральность для уменьшения личной предвзятости, регулярно пересматривай и обновляй руководства, а также используй автоматизированные проверки согласованности и обратную связь между разметчиками, чтобы поддерживать высокую точность и соответствие целям твоего проекта.
Link to this sectionСколько изображений мне нужно для обучения моделей Ultralytics YOLO?#
Нескольких сотен размеченных объектов на класс достаточно для начала экспериментов с трансферным обучением, но для надежной работы в реальных условиях Ultralytics рекомендует не менее 1500 изображений и 10 000 размеченных экземпляров на класс. Сочетай достаточно большой набор данных с разумным графиком обучения — около 300 эпох является распространенной отправной точкой, которую можно сократить, если модель переобучается слишком рано — и поддерживай строгость разметки, соответствующую конкретным целям твоего проекта. Исследуй подробные стратегии обучения в руководстве по обучению YOLO26.
Link to this sectionПредоставляет ли Ultralytics инструмент для разметки данных?#
Да. Ultralytics Platform включает встроенный редактор разметки, который поддерживает ограничивающие рамки, полигоны, ключевые точки, ориентированные рамки и метки классификации в едином рабочем пространстве. Умная разметка на базе SAM ускоряет разметку для задач обнаружения, сегментации и OBB за счет создания масок одним кликом, и каждая аннотация сохраняется в формате YOLO, готовая к обучению.
Link to this sectionКакие типы разметки данных обычно используются в компьютерном зрении?#
Наиболее распространенные типы разметки данных в компьютерном зрении — это ограничивающие рамки (bbox), полигоны, маски и ключевые точки, каждый из которых подходит для своей задачи:
- Ограничивающие рамки: Используются в основном для обнаружения объектов; это прямоугольные рамки вокруг объектов на изображении.
- Многоугольники: Обеспечивают более точные контуры объектов, подходящие для задач сегментации экземпляров.
- Маски: Обеспечивают детализацию на уровне пикселей, используются в семантической сегментации для отделения объектов от фона.
- Ключевые точки: Идентифицируют конкретные точки интереса внутри изображения, полезны для таких задач, как оценка позы и обнаружение ключевых точек лица.
Выбор подходящего типа разметки зависит от требований твоего проекта. Узнай больше о том, как реализовать эти аннотации и их форматы в нашем руководстве по разметке данных.