Как создать проект и задачу в CVAT?
Работа в CVAT начинается с проекта — в нём задают общий набор классов (меток) для будущих датасетов. Внутри проекта создают одну или несколько задач (task): именно к задаче потом загружают конкретные изображения или видео. Разделение на проект и задачу удобно, когда несколько партий данных размечают по одному и тому же гайдлайну.
На этапе создания задачи стоит сразу продумать структуру меток и их атрибуты — добавить класс или атрибут позже несложно, но уже размеченные кадры при этом переразмечать не придётся. Здесь же настраивают, кто из команды получит доступ к задаче и на сколько job она будет разбита.
Хорошей практикой считается заранее договориться внутри команды о единых названиях классов и порядке их перечисления — это упрощает работу, когда к проекту позже подключаются новые задачи или разметчики, а список меток уже согласован и зафиксирован.
Как загрузить изображения или видео в задачу CVAT?
Данные загружают прямо через веб-интерфейс: можно перетащить файлы, указать папку на сервере или подключить облачное хранилище как источник. CVAT принимает как отдельные изображения, так и видеофайлы целиком — во втором случае инструмент сам нарезает видео на кадры с заданным шагом, не требуя предварительной подготовки.
При загрузке большого объёма данных полезно сразу задать разумный шаг нарезки кадров видео и порядок сортировки файлов — от этого зависит, насколько удобно будет ориентироваться в задаче позже, особенно если её разобьют на несколько job для параллельной работы команды.
Если источник данных — облачное хранилище, а не локальные файлы, стоит заранее проверить права доступа и скорость соединения: загрузка большого архива видео при нестабильном канале может занять заметно больше времени, чем ожидается.
Как разметить bounding box в CVAT?
Чтобы поставить bounding box, выбирают инструмент прямоугольника, класс объекта из списка меток и рисуют рамку по двум противоположным углам объекта на кадре. Готовую рамку можно двигать, растягивать за угловые маркеры и копировать на соседние кадры, если объект почти не смещается между ними.
Для ускорения работы удобно заранее решить, насколько плотно рамка должна облегать объект — единый критерий точности рамки, зафиксированный в гайдлайне, сильно снижает разброс между разметчиками и упрощает последующую проверку качества.
Полезно периодически проверять точность рамок на случайной выборке кадров прямо в процессе разметки, а не только по завершении задачи — так расхождения с гайдлайном находят раньше и не приходится переразмечать большой объём кадров позже.
Как размечать полигоны и сегментацию в CVAT?
Полигон рисуют, расставляя точки по контуру объекта одну за другой, пока фигура не замкнётся, — CVAT позволяет двигать и добавлять точки уже после того, как контур готов. Для попиксельной сегментации в CVAT есть отдельный инструмент маски с кистью и ластиком, которым закрашивают область объекта напрямую, без расстановки отдельных точек.
Полигоны обычно быстрее сегментации и подходят для большинства задач, где нужен точный контур, а не абсолютная попиксельная граница; к маскам стоит переходить только там, где задача модели прямо требует такой точности — например, при разметке медицинских снимков.
Выбор между полигоном и маской стоит фиксировать в гайдлайне заранее, а не оставлять на усмотрение разметчика: разные разметчики иначе выбирают инструмент по-разному, и итоговый датасет получается неоднородным по типу разметки одних и тех же классов объектов.
Как работает интерполяция при разметке видео в CVAT?
Интерполяцию включают на треке объекта: разметчик расставляет рамку или контур на нескольких ключевых кадрах, а CVAT автоматически рассчитывает положение объекта на кадрах между ними. Если объект движется линейно и предсказуемо, достаточно двух-трёх опорных кадров на весь отрезок трека, а при сложной траектории их число стоит увеличить.
После автоматического расчёта стоит пройтись по нескольким промежуточным кадрам и проверить, насколько точно интерполяция угадала положение объекта — при резких поворотах или ускорении движения расчёт может ошибаться, и тогда лучше добавить ещё один опорный кадр в этом месте трека.
На видео с резкими сменами направления движения или частичными перекрытиями лучше сокращать шаг между опорными кадрами — так интерполяция реже ошибается, а количество ручных правок на этапе проверки заметно снижается.
Какие горячие клавиши ускоряют разметку в CVAT?
Больше всего времени экономят клавиши переключения между кадрами, быстрый выбор инструмента разметки без обращения к панели мышью и клавиша копирования объекта на следующий кадр. У CVAT есть встроенная подсказка со списком горячих клавиш прямо в интерфейсе — с неё удобно начать, не запоминая всё сразу.
Опытные разметчики почти не используют мышь для рутинных операций — переключения кадра, класса объекта и статуса трека делают клавиатурой, а мышь оставляют только для самого рисования рамки или контура. На больших объёмах данных эта привычка ощутимо сокращает время на партию.
Список используемых горячих клавиш имеет смысл распечатать или закрепить рядом с рабочим местом на первую неделю работы — большинство разметчиков переходят на них автоматически уже после нескольких дней практики на реальных задачах.
Как экспортировать готовую разметку из CVAT?
Экспорт запускают из меню задачи или проекта, выбрав целевой формат — COCO, YOLO, Pascal VOC, CVAT XML и другие поддерживаемые варианты. CVAT формирует архив с файлами разметки и, если нужно, с самими изображениями, который можно сразу подключать к пайплайну обучения модели.
Перед экспортом стоит убедиться, что все job задачи закрыты и прошли проверку, — экспортированный датасет фиксирует текущее состояние разметки, и повторный экспорт после доработки означает, что предыдущую версию файлов нужно будет заменить вручную в пайплайне обучения.
Если датасет экспортируют регулярно по мере поступления новых партий данных, удобно сразу выработать единую схему именования файлов экспорта с датой и номером партии — это заметно упрощает работу с версиями датасета в пайплайне обучения.
Какие ошибки чаще всего допускают новички в CVAT?
Самые частые ошибки — начинать разметку без зафиксированного гайдлайна, из-за чего разные разметчики по-разному трактуют спорные случаи; забывать про атрибут «вне кадра» при интерполяции; и экспортировать датасет раньше, чем задача прошла проверку. Каждая такая ошибка обычно всплывает уже на этапе обучения модели.
Ещё одна типичная проблема — слишком редкие опорные кадры при интерполяции на видео со сложным движением: результат выглядит правдоподобно на первый взгляд, но при детальной проверке рамка заметно «плывёт» относительно объекта. Регулярный выборочный аудит нескольких кадров прямо по ходу разметки помогает поймать такие расхождения раньше, чем датасет уйдёт в обучение.
Ещё одна распространённая ошибка — игнорировать разбиение задачи на job при командной работе: без этого несколько человек рискуют случайно разметить одни и те же кадры или, наоборот, пропустить часть данных без явного распределения ответственности.
