Обработка видео
Рассмотрим основные задачи, решаемые нейросетями при обработке видео-данных.
Определение действий на видео
В задаче определения действия (activity recognition [1]) по входному видео необходимо понять, какое событие на нём происходит. У алгоритма могут быть быть следующие выходы:
-
Класс одного из заданных действий.
- Например, при игре на игровой приставке по жесту игрока нужно осуществить то или иное действие, при этом жесты заранее определены и заданы. Эта задача также известна как распознавание жестов (gesture recognition [2]).
-
Текстовое описание происходящего в виде свободного текста (video captioning [3], [4]).
- Например, в системе поиска релевантных видео по текстовому запросу.
3D-реконструкция
В задаче 3D-реконструкции по видеосъёмке объекта из разных позиций и ракурсов необходимо восстановить 3D-модель объекта (3D reconstruction from multi-view video).
Модели, решающие эту задачу, используются в автономных транспортных средствах для улучшения восприятия окружающей среды: обнаружение объектов, расчёт расстояний. Также модели используются для воссоздания 3D-моделей зданий и памятников на основе видео/фото с разных ракурсов.
Трекинг объектов
Задача трекинга объектов на видео (object tracking [5]) представляет собой задачу детекции объектов динамически по серии видеокадров. При этом детекция производится точнее за счёт использования информации с более ранних и более поздних детекций и интерполяции движения объекта. Обычно для интерполяции используется фильтр Калмана [6]. Интерполяция движения позволяет обнаруживать движущийся объект более устойчиво, даже если на некоторых кадрах он загораживается другими объектами. Трекинг объектов используется для следующих задач:
-
контроль пассажиропотока, подсчёт числа вошедших и вышедших пассажиров;
-
наблюдение за машинами, автоматическое определение превышения допустимой скорости и аварий на дорогах.
-
отслеживание игроков во время футбольного матча для авт оматического расчёта, сколько каждый игрок пробежал за матч;
-
слежение за быстро движущимися объектами, например, теннисным мячом во время соревнований, автоматическое определение аута (когда мяч коснулся земли за пределами поля);
Трекинг может быть совмещён с другой задачей, например, можно не только следить за собеседниками на совещании, но и определять, когда говорит каждый из собеседников, чтобы камера могла автоматически на нём сфокусироваться.
Генерация видео
В задачах генерации видео (video generation) необходимо сгенерировать видео с заданными свойствами:
-
Генерация видео по текстовому описанию (text-to-video generation [7])
- Пример: создание видеоролика по текстовому сценарию
-
Предсказание будущих кадров по уже известному видео (video prediction, frame prediction).
- Примеры: по карте движения атмосферных циклонов предсказывать погоду в будущем; предсказание поведения объектов для систем автопилотирования.
-
Генерация видео по изображению (image-to-video generation [8]).
- Пример: анимация фотографии (оживление портрета).
-
Заполнение испорченных фрагментов видео (video inpainting / completion [9]).
- Примеры: удаление нежелательного объекта (логотипа, человека, птицы), восстановление повреждённых фрагментов старых фильмов.
-
Стилизация видео (video style transfer [10]), в которой видео необходимо перерисовать в стиле, задаваемом некоторым изображением (обычно картиной известного художника).
- Примеры: создание ярких клипов или промо-роликов, фильтры в социальных сетях.
Также генерация видео используется для повышения качества исходного видео:
-
Повышение разрешения (video super-resolution, VSR [11]).
-
Повышение частоты кадров (frame interpolation, FPS enhancement [12]).
Поскольку видео - это последовательность изображений (фреймов), они часто обрабатываются свёрточными операциями, описанными в отдельном разделе, но которые задействуют не только пространственную, но и временную окрестность обрабатываемого фрейма.