Нейросеть научили создавать реалистичные кадры с новых ракурсов

25 июля 2019
41

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

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

Исследователи из московского Центра искусственного интеллекта Samsung под руководством Виктора Лемпицкого (Victor Lempitsky) создали алгоритм, который синтезирует кадры сцен с новых ракурсов, минуя множество перечисленных этапов. Процесс начинается со съемки видео с помощью камеры глубины, которая помимо трех цветов (красный, зеленый и синий) присваивает каждому пикселю относительное расстояние от объекта до камеры. Затем с помощью методов воссоздания структуры из движения (SfM) и мультиракурсного стерео (MVS) набор кадров с данными о глубине превращается в облако точек. После этого начинается главный этап, во время которого нейросетевой алгоритм сопоставляет каждой точке облака восемь визуальных дескрипторов — параметров, описывающих цветовые и геометрические свойства этой точки, и позволяющих восстановить вид сцены с любого ракурса. Рендеринг происходит следующим образом. Для каждого кадра формируется набор из облака точек, дескрипторов и параметров ракурса. Затем этот набор объемных данных проходит растеризацию и превращается в двумерный кадр, в котором каждому пикселю присвоен набор рассчитанных ранее дескрипторов. После этого кадр отдается сверточной нейросети, которая «перекрашивает» его из пространства визуальных дескрипторов в трехмерное цветовое пространство. Разработчики обучили и проверяли алгоритм на RGBD-роликах (в которых помимо трех цветов каждому пикселю присвоена глубина) из датасета ScanNet. Во время обучения функция потерь позволяла улучшить «раскрашивание» и создание визуальных дескрипторов, сравнивая полученное в результате нейросетевого рендеринга изображение с настоящим кадром. Авторы показали, что алгоритм способен достаточно хорошо воссоздавать световые свойства, зависящие от ракурса, к примеру, отражения, а также работать с тонкими объектами, такими как спицы велосипедных колес или текстуру ткани. Кроме того, они показали преимущества их метода, сравнив его с другими. На посвященной работе странице опубликовано интерактивное сравнение результатов работы алгоритма с другими методами и исходными данными. В прошлом году мы рассказывали о нейросети, созданной специалистами из Google, способной создавать кадры с новых ракурсов. В ней используется другой подход: получая два кадра с близких ракурсов алгоритм создает многоплоскостное представление сцены, в котором каждый слой несет информацию о цвете и прозрачности расположенных на нем областей сцены. А разработчики из NVIDIA использовали нейросетевой рендеринг для создания автосимулятора. В нем игровой движок рассчитывает параметры 3D-моделей и выдает семантически сегментированные кадры с разделением областей по типам объектов на них, а нейросеть «раскрашивает» эти кадры, превращая их в относительно реалистичные снимки. Кроме того, создавать кадры с новых ракурсов умеет алгоритм, созданный специалистами из DeepMind, однако он работает лишь с искусственно созданными изображениями крайне с низким разрешением.