vid2vid
October 31, 2021

World-Consistent Video-to-Video Synthesis

🔗 Ссылки

https://arxiv.org/abs/2007.08509

https://nvlabs.github.io/wc-vid2vid/

https://github.com/NVlabs/imaginaire/tree/master/projects/wc_vid2vid

💎 Контрибьюшн

Главное достижение этой работы — консистентный vid2vid. Теперь если объекты попадают на видео второй раз, они имеют те же цвета, что и в первый — то есть сеть теперь "помнит" состояние всего ранее сгенерированного мира. Это достигается за счёт того, что по всем сгенерированным кадрам строится общий 3D point-cloud, где каждому пикселю соответствует его цвет. На основе этого point-cloud'а происходит синтез (рендеринг) новых кадров видео, соответствующих семантическим кадрам driving-video.

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

Сравнение результатов генерации для зацикленных видео 1->N->1. Видно, что vid2vid разваливается как по структуре (см. полосы на дороге), так и по корректности цветов (диван стал оранжевым).

🛠 Задача

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

В этой работе авторы вводят понятие world consistency, называя его частным случаем и более сильным условием, чем просто temporal consistency. Видео удовлетворяет world consistency, если оно консистентно относительно всего 3D-мира, который видит зритель при просмотре сгенерированного видео (в отличие от temporal consistency, для которой требуется консистентность на каждом небольшом промежутке вижео).

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

🔎 Детали

Вводится понятие guidance image — это дополнительная картинка, которая помогает генератору правильно раскрашивать и текстурировать новый кадр в соответствии с ранее сгенерированными. Они должны содержать информацию о 3D-пространстве и о всех предыдущих кадрах. Авторы предлагают использовать для этого point-cloud сцены, который строится кадр за кадром по всему видео. С каждым новым сгенерированным кадром на point-cloud добавляются новые точки с соответствующими цветами.

Причём для обучения и инференса метод построения этого point-cloud'а может отличаться: если для обучающих видео сложно получить point-cloud'ы и имеет смысл использовать Structure-from-Motion (SfM) сети, то при инференсе для создания driving-видео может использоваться игровой движок, который знает GT-point-cloud для сцены.

Пример построения и использования guidance image для генерации нового view

В архитектуре 2 нововведения:

  1. Нет прямого варпинга на основе OF (не используется формула маттинга), поскольку преобразование сцены в пространстве задаётся векторами перемещения 3D-точек — motion field. Тем не менее, поскольку нет нормального способа оценки motion field, происходит оценка OF, результат эмбеддится сетью, и выходы слоёв используются для параметров демодуляции в Multi-SPADE модулях генератора (причём так, чтобы соответствовал уровень фичей).
  2. Multi-SPADE модуль — несколько последовательных демодуляций с разными параметрами. Он нужен для того, чтобы принимать во внимание информацию от разных источников: семантических карт, OF и guidance images.
Схема архитектуры

Использование разных эмбеддеров и Multi-SPADE модуля имеет несколько преимуществ по сравнению с конкатенацией всех источников и общим эмбеддером:

  • Лучшая репрезентативность. Например, карты сегментации определяют форму и классы объектов, а guidance images — их цвета
  • Легко учесть особенности разных видов данных. Например, в guidance images есть пропуски из-за ограничений SfM, поэтому в целесообразно использовать частичные свёртки
  • Можно предобучить генератор на single-image generation благодаря тому, что при использовании Multi-SPADE кардинально меняются только нормализационные слои.
    При переходе к видео нужно обучить только их, после чего дотюнить всю сеть. Это большой плюс, т. к. сбор картиночных датасетов гораздо проще, чем аннотация видео
Multi-SPADE

Обучение

Обучение проводилось в 2 этапа:

  1. Single-image generation — обучается только первый SPADE-блок из 3-х. На этом этапе сеть учится генерировать реалистичные картинки по семантическим картам. Обучение длилось 20 эпох для разрешения 1024x512
  2. Video generation — обучаются все 3 SPADE-блока. Кол-во генерируемых кадров удваивалось каждую эпоху: 8->16->32, дальше не менялось. Тоже 20 эпох

Такой 2-этапный подход ускорил и стабилизировал обучение. Для GAN-лоссов вместо LSGAN выбрана другая модификация — hinge GAN loss. Помимо всех стандартных vid2vid-лоссов был добавлен world-consistency loss, чтобы форсить похожесть текущей генерации на предыдущие кадры.

Для аннотирования использовались:

  • DensePose — UV-координаты и сегментации поз
  • OpenPose — кейпоинты поз
  • MegaDepth — карты глубины
  • DeepLabv3-Plus c бэкбоном WideResNet38 — карты сегментации для Cityscapes
  • NYUDv2 — карты сегментации для ScanNet
  • OpenSfM — point-cloud'ы для guidance images
  • HED — edge maps для MannequinChallenge и ScanNet

🔬 Эксперименты

Сравнение методов по объективным метрикам. P. A. — pixel accuracy

Для сравнения использовались датасеты с практически статичными сценами, в которых SfM работает достаточно хорошо:

  • Cityscapes
  • MannequinChallenge
  • ScanNet — видео румтуров

Компетиторы:

  • vid2vid
  • Inpainting — sota-inpainting метод, который использовался для заполнения дырок в guidance images
  • Ours w/o W. C. — предложенная архитектура без использования guidance images

Forward-backward consistency

Помимо стандартных для этой задачи метрик и Human Preference Score зармерялась консистентность сгенерированных кадров зацикленных роликах 1->N->1. А именно замерялась попиксельная разница первого и последнего кадра в таких роликах в пространстве RGB и LAB

Заключение

В результате помимо заявленной проблемы удалось также улучшить short-term temporal stability (авторы говорят об этом на основе своих визуальных наблюдений) и сделать возможной генерацию консистентных стерео-ракурсов:

Основным ограничением модели являются текущие методы SfM, которые плохо справляются с динамичными сценами, что ведёт к проблемам с консистентностью