itmo_conspects

Лекция 6. Сегментация изображений и обработка видеопотока

Сегментация изображений

Задача сегментации изображений заключается в разбиении изображения на области и в присвоении пикселям меток классов или конкретных объектов

Выделяют несколько постановок задачи:

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

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

Чаще всего используют полносверточные сети (Fully Convolutional Networks, FCN). Обычно такая архитектура состоит из двух частей:

При уменьшении разрешения из-за пулинга и страйдов часть точной пространственной информации теряется. Поэтому при восстановлении разрешения часто используют соединения с пропуском (skip-connections): признаки из ранних слоев кодировщика передаются в декодировщик и помогают точнее восстановить границы объектов

Именно по такому принципу устроена U-Net. В ней:

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

Для сегментации часто применяют следующие функции потерь:

Коэффициент Dice для бинарной сегментации можно записать так: $\mathrm{Dice} = \frac{2 \sum_{x, y} p_{x,y} t_{x,y}}{\sum_{x, y} p_{x,y} + \sum_{x, y} t_{x,y}}$, где $p_{x,y}$ - предсказание модели, а $t_{x,y}$ - истинная разметка

На основе U-Net появились различные модификации:

Также существуют и другие семейства моделей:

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


Сегментация активно применяется:

Обработка видеопотока

Видео - это упорядоченная последовательность кадров одинакового разрешения, отображаемая с определенной частотой. Частота обычно измеряется в кадрах в секунду (Frames Per Second, FPS)

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

Обработка видеопотока позволяет решать такие задачи:

Обычно обработка видео включает:

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

Для ускорения моделей могут использоваться:

Оптический поток

Одна из классических задач обработки видео - оценка оптического потока

Оптический поток - это поле векторов смещения пикселей между соседними кадрами. Для каждого пикселя или характерной точки оценивается, куда она переместилась на следующем кадре

Оптический поток применяют для:

Классический подход - метод Лукаса-Канаде. Его идея состоит в следующем:

У такого подхода есть ограничения:

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

В нейросетевых методах часто используют ошибку конечной точки (End-Point Error, EPE): $\mathcal{L} = \frac{1}{H W} \sum_{i = 1}^{H W} \vert \hat{u}_i - u_i \vert_2^2$, где $\hat{u}_i$ - предсказанный вектор смещения, а $u_i$ - истинный.

Примеры моделей для оценки оптического потока:

Отслеживание объектов

Отслеживание объектов (Object tracking) - задача обнаружения и сопровождения объекта или нескольких объектов в видеопоследовательности с сохранением их идентичности между кадрами

Обычно в многообъектном трекинге на входе есть:

Трекинг нужен потому, что:

Во многих системах используются два основных шага:

SORT (Simple Online Realtime Tracking) - простой и быстрый алгоритм многообъектного трекинга. Основные шаги SORT:

  1. Детекция объектов на текущем кадре любым детектором, например YOLO или Faster R-CNN
  2. Предсказание новых положений уже известных объектов с помощью фильтра Калмана
  3. Сопоставление старых треков и новых детекций по IoU с использованием венгерского алгоритма
  4. Создание новых треков и удаление пропавших

Преимущество SORT - высокая скорость. Недостаток - зависимость почти только от геометрии движения

Далее появилась модификация DeepSORT (Deep Simple Online Realtime Tracking), которая расширяет SORT и использует не только движение, но и внешний вид объекта. Дополнительно:

Это делает трекинг устойчивее при перекрытиях, пропаданиях детекций и сложных траекториях