Для чего используется CVAT
CVAT широко используется в проектах машинного обучения и компьютерного зрения (Computer Vision). Его основная задача — это разметка или, как ее еще называют, аннотация данных.
Разметка — это процесс добавления метаданных к изображениям, аудио или тексту, чтобы облегчить их понимание для алгоритмов машинного обучения. CVAT разметка упрощает процесс создания качественных аннотированных данных, необходимых для обучения и тестирования моделей искусственного интеллекта.
Мы в Data Light уже много лет работаем со CVAT разметкой, поэтому в этой статье поделимся нашими советами по использованию инструмента с максимальной эффективностью.
Как CVAT применяется в разных индустриях
Благодаря своей универсальности CVAT разметка часто применяется в совершенно различных отраслях, от автономного вождения и розничной торговли до сельского хозяйства. Вот всего несколько примеров:
Автомобильная индустрия
В автомобильной индустрии CVAT разметка широко используется для разработки систем автономного вождения. Благодаря разметке видео модели могут распознавать пешеходов, транспортные средства и дорожные знаки. Это улучшает безопасность и эффективность автоматизированных систем управления транспортом.
Безопасность
Также CVAT часто используется для обеспечения безопасности. Самое популярное применение в этой сфере — это разработка систем видеонаблюдения и распознавания лиц. Асессоры размечают объекты и движения на изображениях и видео, что помогает моделям машинного обучения точно идентифицировать людей и обнаруживать подозрительное поведение: к примеру, драки или оружие в общественных местах.
Сельское хозяйство
В последние годы CVAT разметка постоянно применяется в сельском хозяйстве. Аннотация изображений помогает идентифицировать различные типы растений, выявлять их заболевания или находить сорняки. Обычно при этом анализируют данные, полученные с дронов.
Розничная торговля
CVAT разметка используется в e‑commerce для создания систем видеонаблюдения и анализа поведения клиентов. Аннотация помогает моделям машинного обучения идентифицировать движения покупателей, анализировать их предпочтения или предотвращать кражи.
Преимущества и недостатки
Этот инструмент стал востребованным благодаря широкому спектру возможностей и удобству использования, но у него есть и свои минусы. Рассмотрим, чем CVAT заслужил популярность и какие особенности у него есть.
Преимущества:
- Удобная веб-версия: Чтобы использовать CVAT, не придется устанавливать программу на свой компьютер, так как этот инструмент дает возможность использовать веб-версию онлайн.
- Возможность кастомизации: Так как CVAT — это open-source решение, вы можете настраивать его под ваши потребности. Ниже вы найдете более подробную инструкцию о том, как это можно использовать.
- Многофункциональность: Существует множество видов CVAT разметки: bounding boxes, полигоны, ключевые точки и другие. Это делает его универсальным решением для совершенно разных проектов, именно поэтому мы используем его почти для половины проектов.
- Возможность командной работы: CVAT позволяет нескольким пользователям одновременно работать над одним проектом и распределять работу внутри команды. Также у CVAT есть особенность, которой он отличается от большинства конкурентов: менеджеру доступны все проекты, а исполнители видят только те, которые назначены им.
- Ценовая политика: Сотрудничать со CVAT выгоднее, чем с большинством конкурентов, при этом разница в показателях между ними чаще всего незначительна.
- Сильное комьюнити: Как и в случае с другими open-source решениями, CVAT имеет очень активное комьюнити. Сообщество пользователей и разработчиков постоянно вносит вклад в развитие проекта, делясь своими идеями, решениями проблем и улучшениями кода.
- Подробная документация: Документация CVAT максимально доступно и хорошо описана, включает все лайфхаки, возможные кейсы, изображения и примеры использования. Наличие регулярных обновлений гарантирует, что пользователи всегда будут в курсе последних изменений и улучшений платформы.
Недостатки:
- Высокие требования к ресурсам: Для стабильной работы CVAT требуется большое количество ресурсов сервера, это может стать проблемой для небольших команд или организаций.
Это может создавать проблемы в случае с проектами, где нужно аннотировать данные с высоким разрешением. К примеру, недавно у нашей команды был проект, где нужно было размечать изображения с большим количеством маленьких объектов — пузырей руды. Из-за этого CVAT практически не работал, нам пришлось поделить каждое изображение на 4 части, разметить каждое по отдельности и снова соединить их в одну.
- Сложная установка и настройка: Так как это open source решение, здесь не получится просто зарегистрироваться и начать работу. Процесс установки и настройки CVAT может быть довольно сложным для тех, у кого нет опыта работы с похожими инструментами.
Альтернативы CVAT
Помимо CVAT для разметки изображений сейчас существует множество инструментов, каждый из которых имеет свои плюсы и минусы. Вот несколько самых популярных альтернатив CVAT разметке:
LabelMe
LabelMe — это веб-инструмент для разметки изображений с открытым исходным кодом, написанный на Python. Он предоставляет гибкие возможности для разнообразных типов аннотаций и экспорта данных в различные форматы.
Преимущества:
- Гибкость: LabelMe позволяет создавать разнообразные типы разметок и адаптировать их под потребности проектов.
- Удобные онлайн и оффлайн версии: LabelMe можно использовать как в веб-версии, так и установить их легкое приложение, доступное в системах Windows, Mac и Linux.
- Интуитивно понятный интерфейс: Простой в использовании веб-интерфейс делает этот инструмент более доступным для неопытных пользователей.
Недостатки:
- Ограниченные форматы: В этом инструменте метки можно сохранять только в виде файлов JSON непосредственно из приложения. Для других форматов можно использовать скрипт Python для преобразования аннотаций в PASCAL VOL.
- Не подходит для работы в команде: LabelMe не очень удобен для работы в команде и не оснащен функциями, позволяющими упростить коллаборации с другими разметчиками.
- Ограничения для датасетов: LabelMe не предоставляет инструментов для резервного копирования и управления датасетами, поэтому его нельзя использовать для аннотирования больших наборов данных.
LabelImg
LabelImg — это один из самых простых в использовании инструментов, который позволяет разметить изображения в короткие сроки с минимальными усилиями. Он имеет готовые файлы для Windows, которые уже собраны для использования, благодаря чему инструмент легко установить.
Преимущества:
- Простота: LabelImg идеален для быстрой аннотации небольших наборов данных благодаря простоте в использовании.
- Поддержка различных форматов: Инструмент поддерживает различные форматы маркировки данных, что делает его совместимым с разными моделями машинного обучения.
Недостатки:
- Ограниченный функционал: Отсутствие многих продвинутых функций делает LabelImg неподходящим для крупных проектов.
Supervisely
Платформа Supervisely охватывает весь жизненный цикл НИОКР в области компьютерного зрения.
Преимущества:
- Удобный интерфейс: Пользователи часто отмечают удобный пользовательский интерфейс, при этом возможно его кастомизировать.
- Экосистема приложений: Сотни приложений в экосистеме решают различные задачи, связанные с компьютерным зрением, и расширяют возможности Supervisely.
- Ценообразование: Цена зависит от модулей и количества одновременных пользователей, а не от количества аннотированных объектов, платформа также имеет бесплатный пробный период.
- Удобство для работы с большими размерами: В CVAT при разметке изображений особенно больших размеров их приходится сжимать, из-за чего теряется качество, а Supervisely прекрасно справлялся с такими задачами.
Недостатки:
- Высокая цена: Из-за ценовой политики с Supervisely, работать со CVAT намного выгоднее.
Label Studio
Label Studio используется для работы с компьютерным зрением. Модульная структура инструмента дает возможность добавлять новые функции и адаптировать его под специфические потребности проектов.
Преимущества:
- Легкость в использовании: Удобный интерфейс позволяет пользователям быстро подключить Label Studio. Переключение между разными типами разметки данных происходит в одном окне.
- Расширяемость: Благодаря модульной архитектуре в Label Studio легко интегрировать новые виды аннотаций и дополнительные функции.
- Гибкость: Программа позволяет самостоятельно создавать разметку с помощью кода, что недоступно в большинстве других инструментов.
Недостатки:
- Высокие требования к ресурсам: Некоторые пользователи могут испытывать трудности в использовании из-за значительных требований к ресурсам.
- Неудобен для разметки Bounding Boxes: При сравнении инструментов мы заметили, что в CVAT разметка Bounding Boxes занимает намного меньше времени и проще для работы. Поэтому Label Studio мы чаще использовали для разметки аудио.
Инструкция к CVAT
Чтобы начать работать в CVAT, вам нужно создать новую задачу аннотирования. Добавьте название вашего набора данных, атрибуты (если это необходимо) и метки (labels), которые вы хотите использовать.
Тут возможно работать с конструктором меток или raw-режимом:
- Конструктор меток:
- Нажмите на кнопку Add label для добавления новой метки.
- Укажите название в поле Label name и выберите цвета для меток.
- Добавьте атрибуты и задайте их свойства через Add an attribute.
Вам будут доступны несколько действий:
- Имя атрибута: Укажите имя атрибута.
- Способ отображения атрибута: Выберите один из вариантов — Select, Radio, Checkbox, Text или Number.
- Значения для атрибутов: Разделяйте значения клавишей Enter. Значение отображается как элемент, который вы можете удалить, нажав Backspace или кнопку закрытия (x). Для атрибутов Text и Number значение по умолчанию будет представляться как текст.
- Флажок Mutable: Определяет, изменяется ли атрибут от кадра к кадру.
Чтобы удалить атрибут, можно нажав на кнопку закрытия (x).
Continue добавляет новые метки, а Cancel отменяет добавление. После добавления всех меток нажмите кнопку Done. Вы можете редактировать и удалять метки с помощью кнопок Update attributes или Delete label.
- Raw режим:
Этот режим предназначен для опытных пользователей. Он отображает данные каждой метки в JSON, это дает возможность редактировать и копировать метки в виде текста.
Загрузка данных
Далее загрузите свои исходные данные с компьютера или из облака. Вы можете перетащить файлы или использовать интерфейс командной строки (CLI) CVAT.
Если вы загружаете видео или большой массив данных с изображениями и используете опцию Use cache, то можно подключить файл manifest.jsonl.
Страница Jobs
На странице работ (jobs) асессоры могут увидеть распределенные задачи, отслеживать прогресс и сортировать список jobs.
Каждая из работ содержит следующую информацию:
- Идентификация работы (job ID)
- Размерность (2D или 3D)
- Превью
- Этап (Stage) и состояние (state)
В углах страницы вы можете найти панель поиска и сортировку, быстрые фильтры и основной фильтр. Применение основного фильтра отключает быстрый фильтр.
Filter
Основной фильтр позволяет создавать правила с учетом свойств, операторов и значений, а также группировать правила в группы. Кнопка Clear filters позволяет сбросить все примененные фильтры.
Поддерживаемые свойства для списка работ включают различные параметры и атрибуты, которые можно настроить в фильтре.
Поддерживаемые свойства для списка задач:
Свойство | Поддерживаемые значения | Описание |
---|---|---|
Измерение | 2D или 3D | Зависит от формата данных. |
Статус | аннотация, валидация или завершено | |
Данные | видео, изображения | Зависит от формата данных |
Подмножество | тест, обучение, валидация или пользовательское подмножество | |
Исполнитель | имя пользователя | Исполнитель — это пользователь, который работает над проектом, задачей или заданием (указывается на странице задачи) |
Владелец | имя пользователя | Пользователь, который владеет проектом, задачей или заданием |
Последнее обновление | дата и время последнего изменения | Дата может быть введена в формате дд.ММ.гггг ЧЧ:мм или выбрана в окне, которое появляется при нажатии на поле ввода |
ID | номер или диапазон ID задания | |
ID проекта | номер или диапазон ID проекта | |
Имя | имя | На странице задач — имя задачи, на странице проекта — имя проекта |
Имя проекта | название проекта | Указывается при создании проекта, может быть изменено в разделе проекта |
Страница Tasks
Страница задач в CVAT — это интерфейс, где все элементы соответствуют отдельной задаче и содержат данные о ее названии, превью, а также полосу прогресса. На странице задач вы можете найти кнопку Open и меню Actions. Все задачи упорядочены по времени создания.
Основные функции меню Actions:
- Export task dataset: Позволяет скачать разметку или разметку с изображениями. Загрузка доступна в различных форматах.
- Upload annotation: Функция для загрузки аннотаций в определённом формате.
- Automatic Annotation: Позволяет автоматически аннотировать с использованием тулкита OpenVINO.
- Backup task: Эта функция создает резервную копию задачи в виде zip-архива.
- Move to project: Функция, чтобы перенести задачи в другой проект. При этом атрибуты могут сбрасываться, и могут потребоваться изменения меток для соответствия с новым проектом.
- Delete: Удаление задачи.
Навигация и фильтры:
- Сортировка и фильтры (верхний правый угол): Включают возможности быстрой сортировки, применения быстрых фильтров и основной фильтр для более детализированного поиска и управления задачами.
- Панель поиска (верхний левый угол): Позволяет производить поиск задач по ответственным исполнителям, названиям и другим параметрам.
Страница задач обеспечивает удобный доступ ко всем функциям и инструментам, необходимым для эффективного управления и выполнения аннотаций.
Интерфейс инструмента аннотирования
Инструмент включает следующие элементы:
- Заголовок (Header) — закреплённая верхняя часть интерфейса, используемая для навигации по CVAT, а также для управления параметрами аккаунтов.
- Верхняя панель (Top panel) — содержит кнопки навигации, основные функции и доступ к меню.
- Рабочее пространство (Workspace) — область отображения изображений.
- Боковая панель объектов (Objects) — включает фильтр меток, список объектов в кадре и меток, а также настройки внешнего вида.
- Боковая панель управления (Controls) — включает инструменты для перемещения по изображению, масштабирования, создания форм и редактирования треков.
Рабочее пространство для 3D задач (3D Task workspace)
Перспектива (Perspective) – основное окно для работы с объектами в 3D задаче. Проекции (Projections) привязаны к объекту таким образом, что кубоид находится в центре и выглядит как прямоугольник. Проекции отображают только выбранный объект.
- Верхняя (Top) – проекция вида сверху.
- Боковая (Side) – проекция левой стороны объекта.
- Фронтальная (Front) – проекция лицевой стороны объекта.
Инструменты CVAT
CVAT предоставляет разнообразные инструменты для аннотации, каждый из которых ориентирован на различные задачи разметки изображений и видео:
Инструмент аннотации | Области применения |
---|---|
3D-аннотация объектов | Подходит для проектов, требующих оценки глубины и объема, таких как обучение автономных транспортных средств. |
Режим аннотации атрибутов | Идеален для добавления детализированной информации к объектам, к примеру, цвета, размера или других характеристик. |
Аннотация прямоугольниками | Оптимальный выбор для простой детекции объектов, имеющих форму коробки, например, для распознавания окон в здании. |
Аннотация многоугольниками | Применяется для сложных форм на изображениях, например, для географических объектов на картах или детализированных форм. |
Аннотация полилиниями | Подходит для разметки линейных объектов: дорог, тропинок или конечностей человека. |
Аннотация эллипсами | Идеальна для объектов, где требуется круглая или овальная разметка: тарелки, мячи или глаза. |
Аннотация кубоидами | Полезна для 3D-объектов на 2D-изображениях, таких как коробки или мебель в планировке помещений. |
Аннотация скелетами | Прекрасно подходит для оценки поз человека, анимации и анализа движений в спорте или медицине. |
Аннотация кистью | Отличный выбор для детализированной и точной разметки, например, в медицинской визуализации. |
Аннотация с помощью тегов | Применяется для классификации изображений и видео, таких как идентификация сцен или тем в наборе данных. |
Эти инструменты делают CVAT разметку применимой для различных задач: от базовой аннотации до сложных многомерных проектов в области компьютерного зрения.
Инструмент аннотирования: интерфейс и навигация
Есть несколько форм, с помощью которых вы можете аннотировать данные:
- Прямоугольник/ Ограничивающая рамка (Rectangle or Bounding box)
- Многоугольник (Polygon)
- Полилиния (Polyline)
- Точки (Points)
- Эллипс (Ellipse)
- Кубоид (Cuboid)
- Кубоид в 3D задаче (Cuboid in 3D task)
- Скелет (Skeleton)
- Тег (Tag)
Режим аннотирования форм
Режим аннотирования форм используется для создания новых аннотаций для набора изображений, а также для добавления, изменения и удаления объектов для существующих меток.
Для начала нужно выбрать “Прямоугольник (Rectangle)” на боковой панели управления.
Перед началом работы выберите правильную метку и метод рисования по 2 или 4 точкам:
Как создать разметку в режиме формы (Shape mode):
- Создайте отдельный прямоугольник, нажав на “Shape”.
- Выберите противоположные точки
Можно настроить границы и расположение прямоугольника с помощью мыши. Размер отображается в правом верхнем углу, его можно проверить, нажав на любую точку формы. Действия можно отменить (Ctrl+Z) и повторить (Shift+Ctrl+Z или Ctrl+Y).
Вы можете увидеть карту объекта на боковой панели. В разделе “Детали” можно изменить атрибуты.
Режим треков
Режим треков позволяет пользователям размечать последовательность кадров, а также добавлять и удалять метки аннотаций. Вы также можете редактировать треки или объединять несколько прямоугольников в один трек.
Для работы с треками, как и в режиме форм, выберите “Прямоугольник (Rectangle)” на боковой панели, в появившейся форме выберите нужную метку (Label) и метод рисования.
Как создать трек:
- Создайте прямоугольник в режиме треков, нажав на “Трек (Track)”, при этом он будет автоматически применен на последующих кадрах.
- Велосипед начинает движение на кадре №2270, его нужно пометить как ключевой кнопкой K или кнопкой со звездочкой.
- Когда объект меняет положение, изменяем прямоугольник в этом месте. При этом не обязательно менять прямоугольник на каждом кадре. Вы можете вручную обновить несколько ключевых кадров, а промежуточные кадры поправятся автоматически.
- Перемотаем 30 кадров и отрегулируем границы объекта.
- После этого прямоугольник объекта начнет изменяться автоматически с кадров 2270 по 2300:
Когда аннотируемый объект исчезает или становится слишком маленьким, завершаем трек. Для этого выберите свойство “Вне (Outside, клавиша O)”
Если объект не виден на нескольких кадрах, а затем снова появляется, можно использовать функцию “Объединить (Merge)” для объединения нескольких отдельных треков в один.
- Создайте треки для моментов, когда объект видим:
- Нажмите кнопку “Объединить (Merge)” или клавишу M и кликните на любой прямоугольник первого трека и на любой прямоугольник второго трека и так далее:
- Нажмите кнопку “Объединить (Merge)” или клавишу M для применения изменений.
Настройки CVAT
Чтобы открыть настройки, откройте меню пользователя в заголовке и нажмите “Настройки (Settings)” или F2.
Настройки разделены на две вкладки:
Вкладка “Плеер (Player)”
- Настройка шага для ярлыков C и V.
- Управление скоростью воспроизведения кнопки “Пробел/Плей (Space/Play)”.
- Выбор или ввод цвета фона холста.
- Сброс масштаба: отображение каждого изображения в полном размере или уменьшенном виде, как было ранее (по умолчанию включено для режима интерполяции и отключено для режима аннотации).
- Флажок “Поворот всех изображений (Rotate all images)” — позволяет переключать поворот всех кадров или только одного.
- Флажок “Сглаживание изображения (Smooth image)” — активирует сглаживание изображения при увеличении.
Вкладка “Рабочее пространство (Workspace)”
- Флажок “Автосохранение (Enable auto save)” — по умолчанию отключен.
- Поле ввода интервала автосохранения (минуты) — по умолчанию установлено на 15 минут.
- Флажок “Показать все треки интерполяции (Show all interpolation tracks)” — отображает скрытые объекты на боковой панели для каждого интерполированного объекта. По умолчанию функция отключена.
- “Всегда показывать детали объекта (Always show object details)” — отображает текстовую информацию для объекта на холсте, даже если объект не активен:
Состав текста — настройка содержимого деталей объекта: ID, атрибуты, метка, описание и источник создания: ручной (MANUAL), автоматический (AUTO) или полуавтоматический (SEMI-AUTO).
Позиция текста — выбор режима размещения текста:
- Авто (Auto) — детали объекта автоматически размещаются в свободном пространстве.
- Центр (Center) — если возможно, детали объекта будут встроены в сам объект.
- Показать теги на кадре (Show tags on frame) — показывает или скрывает теги на текущем кадре.
- Поле ввода масштаба в режиме аннотирования атрибутов (AAM) (zoom margin input box) — определяет отступы (в пикселях) для формы.
- Размер контрольных точек (Control points size) — задает размер всех интерактивных точек в инструменте (вершины полигонов, точки перетаскивания прямоугольников и т.д.).
- Количество точек по умолчанию при аппроксимации полигонов (Default number of points in polygon approximation) — позволяет задать количество точек для полигона по умолчанию.
Советы по использованию CVAT
Хотя базовые функции инструмента довольно легко изучить в инструкции выше, есть приемы, которые могут значительно улучшить эффективность работы и качество CVAT разметки. В этом разделе мы поделимся практическими рекомендациями, которые помогут вам максимально использовать возможности инструмента, ускорить процесс аннотирования и избежать распространенных ошибок.
Адаптируйте интерфейс CVAT для лучшей эффективности
Одно из преимуществ инструмента — это персонализация и создание рабочих пространств. Вы можете адаптировать макет, панели инструментов и горячие клавиши под свои потребности.
Вы также сможете организовать панели инструментов, изменить их размеры и расположить их так, как вам удобно, чтобы сосредоточиться на конкретных задачах аннотирования.
Кроме того, в CVAT вы можете изменять цвета, прозрачность и толщину линий, чтобы улучшить видимость и различать разные типы разметок. Так вы сможете оптимизировать рабочий процесс и повысить эффективность.
Опции настройки пользовательского интерфейса CVAT:
- Создание пользовательских макетов рабочего пространства
- Изменение панелей инструментов и их размеров
- Настройка вариантов визуализации
- Персонализация цветовых схем
- Установка горячих клавиш
Ознакомьтесь с рекомендациями при аннотировании объектов
Чтобы работать с инструментом наиболее эффективно, учитывайте эти простые советы:
- Начинайте с наиболее представленной категории: Чтобы оптимизировать процесс аннотирования, начните с объектов наиболее представленного класса. Это позволит быстрее аннотировать часто встречающиеся объекты, сокращая общее время аннотирования.
- Полное охватывание объектов: При аннотировании объектов старайтесь охватывать всю область вокруг них. Избегайте пересекающиеся аннотации, чтобы избежать путаницы при распознавании и обнаружении объектов.
- Точная аннотация частично закрытых объектов: Если объект частично закрыт другим объектом, аннотируйте видимые части очень точно. Это поможет обучать модели распознавать объекты в более сложных условиях.
- Избегайте пересекающихся ограничивающих рамок: При аннотировании объектов избегайте создания пересекающихся рамок. Такие аннотации могут сбивать модель и мешать точному распознаванию и локализации объектов.
- Разметка объектов, частично выходящих за кадр: Если объект частично выходит за пределы кадра, аннотируйте видимую часть. Это предоставляет ценную информацию о присутствии объекта, даже если он не полностью появляется на изображении или видео.