Meet YOLO26: next-gen vision AI.

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

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 Dataset Search Engine, предлагают хорошо размеченные, стандартизированные данные, что делает их отличными отправными точками для обучения и проверки моделей.

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

Link to this sectionИзбежание предвзятости при сборе данных#

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

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

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

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

Link to this sectionЧто такое разметка данных?#

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

Link to this sectionТипы разметки данных#

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

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

Data annotation types including bounding boxes, polygons, and masks

Link to this sectionОбщие форматы разметки#

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

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

Link to this sectionМетоды разметки#

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

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

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

Link to this sectionПопулярные инструменты для разметки#

Допустим, ты готов начать разметку. Существует несколько инструментов с открытым исходным кодом, помогающих оптимизировать процесс разметки данных. Вот несколько полезных инструментов:

  • Label Studio: Гибкий инструмент, поддерживающий широкий спектр задач разметки и включающий функции управления проектами и контроля качества.
  • CVAT: Мощный инструмент, поддерживающий различные форматы разметки и настраиваемые рабочие процессы, что делает его подходящим для сложных проектов.
  • Labelme: Простой и удобный в использовании инструмент, который позволяет быстро размечать изображения с помощью многоугольников, что делает его идеальным для простых задач.
  • LabelImg: Удобный графический инструмент для разметки изображений, особенно полезный для создания аннотаций в виде ограничивающих рамок в формате YOLO.

LabelMe annotation tool for instance segmentation

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

Link to this sectionЕще несколько вещей, которые стоит учесть перед разметкой данных#

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

Link to this sectionПонимание точности и прецизионности#

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

Accuracy vs precision comparison for data annotation

Link to this sectionВыявление выбросов#

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

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

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

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

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

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

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

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

Link to this sectionЭффективные стратегии маркировки данных#

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

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

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

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 YOLO начни с минимума в несколько сотен размеченных объектов на класс. Если ты обучаешь только для одного класса, начни как минимум со 100 размеченных изображений и тренируй в течение примерно 100 эпох. Более сложные задачи могут потребовать тысячи изображений на класс для достижения высокой надежности и производительности. Качественные аннотации имеют решающее значение, поэтому убедись, что твои процессы сбора и разметки данных являются строгими и соответствуют конкретным целям твоего проекта. Изучи подробные стратегии обучения в руководстве по обучению YOLO26.

Link to this sectionКакие есть популярные инструменты для разметки данных?#

Несколько популярных инструментов с открытым исходным кодом могут оптимизировать процесс разметки данных:

  • Label Studio: Гибкий инструмент, поддерживающий различные задачи разметки, функции управления проектами и контроля качества.
  • CVAT: Предлагает несколько форматов разметки и настраиваемые рабочие процессы, что делает его подходящим для сложных проектов.
  • Labelme: Идеально подходит для быстрой и простой разметки изображений с помощью многоугольников.
  • LabelImg: Идеально подходит для создания аннотаций в виде ограничивающих рамок в формате YOLO с простым интерфейсом.

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

Link to this sectionКакие типы разметки данных обычно используются в компьютерном зрении?#

Различные типы разметки данных предназначены для различных задач компьютерного зрения:

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

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

Комментарии