CVAT: Самый полный гайд по разметке

Для чего используется 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 используется для работы с компьютерным зрением. Модульная структура инструмента дает возможность добавлять новые функции и адаптировать его под специфические потребности проектов.

Преимущества:

  1. Легкость в использовании: Удобный интерфейс позволяет пользователям быстро подключить Label Studio. Переключение между разными типами разметки данных происходит в одном окне.
  2. Расширяемость: Благодаря модульной архитектуре в Label Studio легко интегрировать новые виды аннотаций и дополнительные функции.
  3. Гибкость: Программа позволяет самостоятельно создавать разметку с помощью кода, что недоступно в большинстве других инструментов.

Недостатки:

  1. Высокие требования к ресурсам: Некоторые пользователи могут испытывать трудности в использовании из-за значительных требований к ресурсам.
  2. Неудобен для разметки Bounding Boxes: При сравнении инструментов мы заметили, что в CVAT разметка Bounding Boxes занимает намного меньше времени и проще для работы. Поэтому Label Studio мы чаще использовали для разметки аудио.

Инструкция к CVAT

Чтобы начать работать в CVAT, вам нужно создать новую задачу аннотирования. Добавьте название вашего набора данных, атрибуты (если это необходимо) и метки (labels), которые вы хотите использовать.

 Тут возможно работать с конструктором меток или raw-режимом:

  1. Конструктор меток:
    • Нажмите на кнопку 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.

  1. 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):

  1. Создайте отдельный прямоугольник, нажав на “Shape”.
  2. Выберите противоположные точки

Можно настроить границы и расположение прямоугольника с помощью мыши. Размер отображается в правом верхнем углу, его можно проверить, нажав на любую точку формы. Действия можно отменить (Ctrl+Z) и повторить (Shift+Ctrl+Z или Ctrl+Y).

Вы можете увидеть карту объекта на боковой панели. В разделе “Детали” можно изменить атрибуты.

Режим треков

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

Для работы с треками, как и в режиме форм, выберите “Прямоугольник (Rectangle)” на боковой панели, в появившейся форме выберите нужную метку (Label) и метод рисования.

Как создать трек:

  1. Создайте прямоугольник в режиме треков, нажав на “Трек (Track)”, при этом он будет автоматически применен на последующих кадрах.
  2. Велосипед начинает движение на кадре №2270, его нужно пометить как ключевой кнопкой K или кнопкой со звездочкой.
  3. Когда объект меняет положение, изменяем прямоугольник в этом месте. При этом не обязательно менять прямоугольник на каждом кадре. Вы можете вручную обновить несколько ключевых кадров, а промежуточные кадры поправятся автоматически.
  4. Перемотаем 30 кадров и отрегулируем границы объекта. 
  5. После этого прямоугольник объекта начнет изменяться автоматически с кадров 2270 по 2300:

Когда аннотируемый объект исчезает или становится слишком маленьким, завершаем трек. Для этого выберите свойство “Вне (Outside, клавиша O)”

Если объект не виден на нескольких кадрах, а затем снова появляется, можно использовать функцию “Объединить (Merge)” для объединения нескольких отдельных треков в один.

  1. Создайте треки для моментов, когда объект видим:
  2. Нажмите кнопку “Объединить (Merge)” или клавишу M и кликните на любой прямоугольник первого трека и на любой прямоугольник второго трека и так далее:
  3. Нажмите кнопку “Объединить (Merge)” или клавишу M для применения изменений.

Настройки CVAT

Чтобы открыть настройки, откройте меню пользователя в заголовке и нажмите “Настройки (Settings)” или F2.

Настройки разделены на две вкладки:

Вкладка “Плеер (Player)”

  1. Настройка шага для ярлыков C и V.
  2. Управление скоростью воспроизведения кнопки “Пробел/Плей (Space/Play)”.
  3. Выбор или ввод цвета фона холста.
  4. Сброс масштаба: отображение каждого изображения в полном размере или уменьшенном виде, как было ранее (по умолчанию включено для режима интерполяции и отключено для режима аннотации).
  5. Флажок “Поворот всех изображений (Rotate all images)” — позволяет переключать поворот всех кадров или только одного.
  6. Флажок “Сглаживание изображения (Smooth image)” — активирует сглаживание изображения при увеличении.

Вкладка “Рабочее пространство (Workspace)”

  1. Флажок “Автосохранение (Enable auto save)” — по умолчанию отключен.
  2. Поле ввода интервала автосохранения (минуты) — по умолчанию установлено на 15 минут.
  3. Флажок “Показать все треки интерполяции (Show all interpolation tracks)” — отображает скрытые объекты на боковой панели для каждого интерполированного объекта. По умолчанию функция отключена.
  4. “Всегда показывать детали объекта (Always show object details)” — отображает текстовую информацию для объекта на холсте, даже если объект не активен:

Состав текста — настройка содержимого деталей объекта: ID, атрибуты, метка, описание и источник создания: ручной (MANUAL), автоматический (AUTO) или полуавтоматический (SEMI-AUTO).

Позиция текста — выбор режима размещения текста:

  • Авто (Auto) — детали объекта автоматически размещаются в свободном пространстве.
  • Центр (Center) — если возможно, детали объекта будут встроены в сам объект.
  1. Показать теги на кадре (Show tags on frame) — показывает или скрывает теги на текущем кадре.
  2. Поле ввода масштаба в режиме аннотирования атрибутов (AAM) (zoom margin input box) — определяет отступы (в пикселях) для формы.
  3. Размер контрольных точек (Control points size) — задает размер всех интерактивных точек в инструменте (вершины полигонов, точки перетаскивания прямоугольников и т.д.).
  4. Количество точек по умолчанию при аппроксимации полигонов (Default number of points in polygon approximation) — позволяет задать количество точек для полигона по умолчанию.

Советы по использованию CVAT

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

Адаптируйте интерфейс CVAT для лучшей эффективности

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

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

Кроме того, в CVAT вы можете изменять цвета, прозрачность и толщину линий, чтобы улучшить видимость и различать разные типы разметок. Так вы сможете оптимизировать рабочий процесс и повысить эффективность.

Опции настройки пользовательского интерфейса CVAT:

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

Ознакомьтесь с рекомендациями при аннотировании объектов

Чтобы работать с инструментом наиболее эффективно, учитывайте эти простые советы:

  1. Начинайте с наиболее представленной категории: Чтобы оптимизировать процесс аннотирования, начните с объектов наиболее представленного класса. Это позволит быстрее аннотировать часто встречающиеся объекты, сокращая общее время аннотирования.
  2. Полное охватывание объектов: При аннотировании объектов старайтесь охватывать всю область вокруг них. Избегайте пересекающиеся аннотации, чтобы избежать путаницы при распознавании и обнаружении объектов.
  3. Точная аннотация частично закрытых объектов: Если объект частично закрыт другим объектом, аннотируйте видимые части очень точно. Это поможет обучать модели распознавать объекты в более сложных условиях.
  4. Избегайте пересекающихся ограничивающих рамок: При аннотировании объектов избегайте создания пересекающихся рамок. Такие аннотации могут сбивать модель и мешать точному распознаванию и локализации объектов.
  5. Разметка объектов, частично выходящих за кадр: Если объект частично выходит за пределы кадра, аннотируйте видимую часть. Это предоставляет ценную информацию о присутствии объекта, даже если он не полностью появляется на изображении или видео.