Сегментация видео в компьютерном зрении

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

Что такое сегментация в машинном обучении?

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

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

На практике это означает:

  • Группировку пикселей на основе общих признаков — цвета, текстуры, положения.
  • Формирование маски — визуального слоя, где каждый сегмент выделен цветом.
  • Присвоение меток объектам — например, «человек», «машина», «дорога» или «здание», а также уникальный идентификаторов, если это необходимо — «человек 1», «человек 2» и др. 
Паноптическая сегментация изображения
Паноптическая сегментация изображения

Зачем это нужно?

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

Например: 

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

Что такое сегментация видео?

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

Сегментация видео — это сложная задача компьютерного зрения, которая объединяет в себе:

  • Сегментацию изображений — выделение объектов на каждом кадре.
  • Трекинг — отслеживание этих объектов от кадра к кадру.

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

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

Отличия сегментации видео от сегментации изображений

Временная согласованность

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

Идентификация экземпляров

Система должна четко различать не только классы, но и конкретные объекты. Например, в кадре могут появиться два автомобиля. Оба относятся к одному классу, но система должна понимать, что это два разных объекта: «автомобиль 1» и «автомобиль 2». При этом каждый из них должен сохранять свой уникальный ID от начала до конца сцены, чтобы алгоритм не перепутал их при пересечении траекторий или смене ракурса.

Работа с нестабильным визуальным рядом

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

Вычислительная нагрузка

Видео содержит сотни или тысячи кадров. Обработка такого объема данных требует значительных вычислительных ресурсов, особенно если система должна работать в реальном времени. Это ставит перед ML-специалистами задачу создания баланса между точностью и скоростью модели.

Сложность разметки

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

Типы сегментации видео

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

1. Сегментация заданного объекта — Video Object Segmentation (VOS)  

VOS — сегментация конкретного объекта на протяжении всего видео. Цель модели — не распознавать или классифицировать все, что есть в кадре, а выделить заданный объект и отслеживать его с пиксельной точностью на каждом кадре.

Например, представьте, что вы анализируете видео, на котором движутся несколько объектов. Ваша задача — выделить только один из них и проследить его движение, игнорируя остальные. Именно такую задачу решает VOS.

Video Object Segmentation (VOS)
VOS

2. Семантическая сегментация видео — Video Semantic Segmentation (VSS)

VSS — это сегментация всех объектов на видео, но без разделения на отдельные экземпляры.

Модель распознает, где на кадре находятся разные классы объектов — например, «дорога», «машина», «здание», «небо» — и закрашивает каждый пиксель в соответствии с этим классом. Но если на сцене пять машин, они все будут определены просто как «машина» — модель не различает, где первая, а где пятая.

Video Semantic Segmentation (VSS)

3. Инстанс-сегментация видео — Video Instance Segmentation (VIS)

VIS —  сегментация всех объектов на видео с разделением на отдельные экземпляры. 

Модель определяет не только, что перед ней, например, «машина» или «человек», но и понимает, что это машина 1, машина 2 и машина 3 — и следит за каждой из них от кадра к кадру. Фоновые объекты при этом не учитываются. 

4. Паноптическая сегментация видео — Video Panoptic Segmentation (VPS)

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

  1. Назначить каждому пикселю класс (семантическая сегментация).
  2. Разделить объекты одного класса на отдельные экземпляры (инстанс-сегментация).
  3. Сохранить идентификаторы и отслеживать объекты во времени (tracking).

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

Алгоритмы и модели для сегментации видео

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

1. Классические подходы

Оптический поток (Optical Flow) — метод основан на вычислении перемещения пикселей от одного кадра к другому. Он не выполняет сегментацию напрямую, но помогает отслеживать объекты и сохранять их маски согласованными во времени. Часто используется как вспомогательный модуль в более сложных нейросетях.

Графовые методы (Graph-based methods) — Представляют изображение в виде графа, где узлы — это пиксели или суперпиксели, а ребра — связи по цвету, текстуре или положению. Такие алгоритмы раньше применялись для выделения объектов на основе схожести, но сегодня уступили место обучаемым нейросетям.

2. Современные модели глубокого обучения

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

  • STM (Space-Time Memory Network) — Одна из самых популярных моделей для VOS. Сохраняет признаки объекта из прошлых кадров и сравнивает их с текущим, чтобы точно восстановить маску. Работает даже при частичном исчезновении объекта, перекрытиях или сложной динамике.
  • XMem — Развивает идею STM, но делает память «умной»: модель сама выбирает, какие кадры запоминать, а какие — нет. Это снижает нагрузку и повышает точность. Подходит для задач с длинными видео и множеством движущихся объектов.
  • AOT (Associating Objects with Transformers) — модель на основе трансформеров. Связывает объекты между кадрами с помощью механизма внимания. Применяется для трекинга и сегментации в задачах с несколькими объектами.
  • MaskTrack R‑CNN — Расширение классической Mask R‑CNN. Добавляет модуль трекинга, который связывает маски объектов между кадрами. Подходит для инстанс-сегментации видео.
  • VisTR — Одна из первых end-to-end моделей для инстанс-сегментации без явного трекера. Обрабатывает всю последовательность кадром за кадром, используя механизм внимания. Показывает хороший результат без постобработки.
  • VPSNet — Модель для паноптической сегментации видео. Объединяет семантическую и инстанс-сегментацию и обеспечивает целостное понимание сцены.

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

Чтобы обучить модели сегментации, нужны качественно размеченные данные. Это один из самых трудоемких и ресурсоемких этапов подготовки датасета. Разметка видео сложнее, чем разметка изображений: нужно не просто создать маску на одном кадре, а обеспечить согласованность объектов во времени — от кадра к кадру.

Популярные инструменты для разметки видео

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

  • CVAT (Computer Vision Annotation Tool) — Один из самых известных open-source инструментов для разметки, в том числе для разметки видео. Поддерживает polygon-аннотацию, трекинг объектов, интерполяцию, удобный плеер с навигацией по кадрам, различные форматы экспорта.
  • Supervisely — мощная коммерческая платформа для разметки изображений и видео, с акцентом на удобство и автоматизацию. Интерфейс интуитивно понятен, подходит как для небольших команд, так и для крупных проектов с тысячами видео.
  • V7 Darwin — облачная платформа с поддержкой видеоразметки, активно используется в медицине, робототехнике и промышленных задачах. Особенность Darwin — продвинутые возможности автотрекинга и «умная разметка» с помощью встроенных моделей ИИ.

Как размечается видео в CVAT? 

  1. Создание и настройка проекта

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

  1. Разбиение видео на кадры

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

  1. Выбор ключевых кадров

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

Выбор ключевых кадров

Также можно использовать регулярный шаг, например, размечать каждый 10‑й кадр. 

Использование регулярного шага

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

  1. Разметка объектов

На ключевых кадрах разметчики вручную создают точные контуры объектов с помощью инструмента polygon и включенного режима track (нужен для интерполяции). Каждому объекту может быть присвоена уникальная метка и ID, в зависимости от задачи.

Разметка объектов

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

  1. Проверка и исправление ошибок

После разметки видео проигрывается внутри интерфейса CVAT. 

Проверка и исправление ошибок

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

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

Основные сложности разметки видеоданных

Большие объемы данных

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

Временная согласованность

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

Особенно важно следить за метками и уникальными ID — они должны оставаться неизменными на всем протяжении сцены. Любая путаница (например, если «человек 1» внезапно становится «человеком 2») нарушает логику разметки и мешает модели правильно обучаться. 

Точность масок и границ

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

Ошибки интерполяции и трекинга

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

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

Практическое применение сегментации видео

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

Автономный транспорт

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

Примеры задач:

  • Трекинг пешеходов, автомобилей, велосипедистов и других участников дорожного движения.
  • Сегментация дорожной разметки, обочин, знаков.

Видеонаблюдение и безопасность

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

Примеры задач:

  • Обнаружение и отслеживание людей в режиме реального времени.
  • Мониторинг подозрительных действий: оставленные предметы, агрессивное поведение.
  • Контроль доступа в охраняемые зоны.

Аграрная промышленность 

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

Примеры задач:

  • Сегментация посевов и выявление проблемных участков (сухость, сорняки, вредители).
  • Отслеживание движений сельхозтехники.

Медицина

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

Примеры задач:

  • Сегментация органов на эндоскопии и УЗИ.
  • Анализ движений хирурга и инструментов во время операций.
  • Отслеживание изменений тканей или опухолей в динамике.

Робототехника 

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

Примеры задач:

  • Навигация роботов в помещениях и на производственных линиях.
  • Захват и манипулирование объектами на конвейерах.
  • Отслеживание сотрудников и состояния оборудования на производстве.

Ключевые выводы 

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

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

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

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