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

Для чего используется CVAT

CVAT широко используется в проектах машинного обучения и компьютерного зрения (Computer Vision). Его основная задача — это разметка или, как ее еще называют, аннотация данных.

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

Мы в Data Light уже много лет работаем со CVAT разметкой, поэтому в этой статье поделимся нашими советами по использованию инструмента с максимальной эффективностью.

Инструменты CVAT

CVAT предоставляет разнообразные инструменты для аннотации, каждый из которых ориентирован на различные задачи разметки изображений и видео:

Инструмент аннотацииОбласти применения
3D-аннотация объектовПодходит для проектов, требующих оценки глубины и объема, таких как обучение автономных транспортных средств.
Режим аннотации атрибутовИдеален для добавления детализированной информации к объектам, к примеру, цвета, размера или других характеристик.
Аннотация прямоугольникамиОптимальный выбор для простой детекции объектов, имеющих форму коробки, например, для распознавания окон в здании.
Аннотация многоугольникамиПрименяется для сложных форм на изображениях, например, для географических объектов на картах или детализированных форм.
Аннотация полилиниямиПодходит для разметки линейных объектов: дорог, тропинок или конечностей человека.
Аннотация эллипсамиИдеальна для объектов, где требуется круглая или овальная разметка: тарелки, мячи или глаза.
Аннотация кубоидамиПолезна для 3D-объектов на 2D-изображениях, таких как коробки или мебель в планировке помещений.
Аннотация скелетамиПрекрасно подходит для оценки поз человека, анимации и анализа движений в спорте или медицине.
Аннотация кистьюОтличный выбор для детализированной и точной разметки, например, в медицинской визуализации.
Аннотация с помощью теговПрименяется для классификации изображений и видео, таких как идентификация сцен или тем в наборе данных.

Преимущества и недостатки

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

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

  • Удобная веб-версия: Чтобы использовать CVAT, не придется устанавливать программу на свой компьютер, так как этот инструмент дает возможность использовать веб-версию онлайн.
  • Возможность кастомизации: Так как CVAT — это open-source решение, вы можете настраивать его под ваши потребности. Ниже вы найдете более подробную инструкцию о том, как это можно использовать.
  • Многофункциональность: Существует множество видов CVAT разметки: bounding boxes, полигоны, ключевые точки и другие. Это делает его универсальным решением для совершенно разных проектов, именно поэтому мы используем его почти для половины проектов.
  • Возможность командной работы: CVAT позволяет нескольким пользователям одновременно работать над одним проектом и распределять работу внутри команды. Также у CVAT есть особенность, которой он отличается от большинства конкурентов: менеджеру доступны все проекты, а исполнители видят только те, которые назначены им. 
  • Ценовая политика: Сотрудничать со CVAT выгоднее, чем с большинством конкурентов, при этом разница в показателях между ними чаще всего незначительна.
  • Сильное комьюнити: Как и в случае с другими open-source решениями, CVAT имеет очень активное комьюнити. Сообщество пользователей и разработчиков постоянно вносит вклад в развитие проекта, делясь своими идеями, решениями проблем и улучшениями кода.
  • Подробная документация: Документация CVAT максимально доступно и хорошо описана, включает все лайфхаки, возможные кейсы, изображения и примеры использования. Наличие регулярных обновлений гарантирует, что пользователи всегда будут в курсе последних изменений и улучшений платформы.

Недостатки

  • Высокие требования к ресурсам: Для стабильной работы CVAT требуется большое количество ресурсов сервера, это может стать проблемой для небольших команд или организаций. Это может создавать проблемы в случае с проектами, где нужно аннотировать данные с высоким разрешением. К примеру, недавно у нашей команды был проект, где нужно было размечать изображения с большим количеством маленьких объектов — пузырей руды. Из-за этого CVAT практически не работал, нам пришлось поделить каждое изображение на 4 части, разметить каждое по отдельности и снова соединить их в одну.
  • Сложная установка и настройка: Так как это open source решение, здесь не получится просто зарегистрироваться и начать работу. Процесс установки и настройки CVAT может быть довольно сложным для тех, у кого нет опыта работы с похожими инструментами. 

Работа с задачами и проектами

Чтобы начать работать в CVAT, вам нужно создать новый проект и новую задачу для аннотирования. 

Создание проекта

Чтобы создать новый проект перейдите в раздел Projects (в верхнем меню), кликните Create a new project

В проекте мы можете настроить метки (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, это дает возможность редактировать и копировать метки в виде текста.

Создание задачи

Внутри проекта создайте новую задачу через Create a new task.

Добавьте название вашего набора данных и загрузите свои исходные данные с компьютера или из облака. Вы можете перетащить файлы или использовать интерфейс командной строки (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) — включает инструменты для перемещения по изображению, масштабирования, создания форм и редактирования треков.

Интерфейс и навигация

Есть несколько форм, с помощью которых вы можете аннотировать данные:

  • Прямоугольник/ Ограничивающая рамка (Rectangle or Bounding box)
  • Многоугольник (Polygon)
  • Полилиния (Polyline)
  • Точки (Points)
  • Эллипс (Ellipse)
  • Кубоид (Cuboid)
  • Кубоид в 3D задаче (Cuboid in 3D task)
  • Скелет (Skeleton)
  • Тег (Tag)

Рабочее пространство для 3D задач (3D Task workspace)

Перспектива (Perspective) – основное окно для работы с объектами в 3D задаче. Проекции (Projections) привязаны к объекту таким образом, что кубоид находится в центре и выглядит как прямоугольник. Проекции отображают только выбранный объект.

  • Верхняя (Top) – проекция вида сверху.
  • Боковая (Side) – проекция левой стороны объекта.
  • Фронтальная (Front) – проекция лицевой стороны объекта.

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

Режим разметки форм

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

Для начала нужно выбрать “Прямоугольник (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. Разметка объектов, частично выходящих за кадр: Если объект частично выходит за пределы кадра, аннотируйте видимую часть. Это предоставляет ценную информацию о присутствии объекта, даже если он не полностью появляется на изображении или видео.

Применение в разных индустриях

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

Автомобильная индустрия

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

Безопасность

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

Сельское хозяйство

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

Розничная торговля

CVAT разметка используется в e‑commerce для создания систем видеонаблюдения и анализа поведения клиентов. Аннотация помогает моделям машинного обучения идентифицировать движения покупателей, анализировать их предпочтения или предотвращать кражи.

Альтернативы CVAT

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

LabelMe

LabelMe — это веб-инструмент для разметки изображений с открытым исходным кодом, написанный на Python. Он предоставляет гибкие возможности для разнообразных типов аннотаций и экспорта данных в различные форматы.

ПреимуществаНедостатки
Гибкость: LabelMe позволяет создавать разнообразные типы разметок и адаптировать их под потребности проектов.Ограниченные форматы: В этом инструменте метки можно сохранять только в виде файлов JSON непосредственно из приложения. Для других форматов можно использовать скрипт Python для преобразования аннотаций в PASCAL VOL. 
Удобные онлайн и оффлайн версии: LabelMe можно использовать как в веб-версии, так и установить их легкое приложение, доступное в системах Windows, Mac и Linux.Не подходит для работы в команде: LabelMe не очень удобен для работы в команде и не оснащен функциями, позволяющими упростить коллаборации с другими разметчиками.
Интуитивно понятный интерфейс: Простой в использовании веб-интерфейс делает этот инструмент более доступным для неопытных пользователей.Ограничения для датасетов: LabelMe не предоставляет инструментов для резервного копирования и управления датасетами, поэтому его нельзя использовать для аннотирования больших наборов данных.

LabelImg

LabelImg — это один из самых простых в использовании инструментов, который позволяет разметить изображения в короткие сроки с минимальными усилиями. Он имеет готовые файлы для Windows, которые уже собраны для использования, благодаря чему инструмент легко установить.

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

Supervisely

Платформа Supervisely охватывает весь жизненный цикл НИОКР в области компьютерного зрения.

ПреимуществаНедостатки
Удобный интерфейс: Пользователи часто отмечают удобный пользовательский интерфейс, при этом возможно его кастомизировать.Высокая цена: Из-за ценовой политики с Supervisely, работать со CVAT намного выгоднее.
Экосистема приложений: Сотни приложений в экосистеме решают различные задачи, связанные с компьютерным зрением, и расширяют возможности Supervisely.
Ценообразование: Цена зависит от модулей и количества одновременных пользователей, а не от количества аннотированных объектов, платформа также имеет бесплатный пробный период.
Удобство для работы с большими размерами: В CVAT при разметке изображений особенно больших размеров их приходится сжимать, из-за чего теряется качество, а Supervisely прекрасно справлялся с такими задачами.

Label Studio

Label Studio используется для работы с компьютерным зрением. Модульная структура инструмента дает возможность добавлять новые функции и адаптировать его под специфические потребности проектов.

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

Ваша заявка успешно отправлена!

Мы скоро свяжемся с вами для обсуждения деталей проекта