Pull to refresh
0
twin3d
Делаем софт для создания 3D цифровых людей

3D-реконструкция и нейронные аватары: 3D компьютерное зрение на CVPR 2021

Reading time10 min
Views5.5K

В конце июня прошла CVPR 2021 – одна из самых значимых конференций в области компьютерного зрения. Наибольшее число докладов было посвящено теме 3D компьютерного зрения. Наша команда Twin3d посетила конференцию и в рамках нашего обзора мы покроем последние тренды в академии, связанные с 3D-реконструкцией и виртуальными нейронными аватарами, расскажем о преимуществах и недостатках различных подходов к нейронному рендерингу, а также постараемся покрыть потенциальные применения этих передовых технологий.

Тренды

Лучи

NeRFs/неявные (implicit) модели

С темой лучей неразрывно связаны implicit модели и NeRFВ предыдущей статье мы уже рассказали о том, как устроен NeRF и упомянули о феномене NeRF explosion. Взрыв породил огромное количество работ, расширяющих различные аспекты этой работы, включая оптимизацию производительности,  поддержку динамики, генеративные модели, оценку позиций камер (что по сути – обучаемая фотограмметрия!), обобщение (pixelNeRF) и обработку произвольных фотографий из интернета, отфильтрованных по геотегу (NeRF in the Wild).

NeRF in the Wild – работа от Google Research, в которой могут быть использованы произвольные* фотографии из интернета (примеры слева: фильтрованные по геотегу, снятые на разные устройства в разное время) для обучения NeRF сцены, облик которой потом можно менять. Это реализовано через кодирование варьирующихся условий освещенности и цветопередачи на снимках. В результате обученная модель позволяет интерполировать освещенность, сохраняя консистентную геометрию. 
Слева на gif – сцена с фиксированной освещенностью, справа – интерполяция представлений освещения.
NeRF in the Wild – работа от Google Research, в которой могут быть использованы произвольные* фотографии из интернета (примеры слева: фильтрованные по геотегу, снятые на разные устройства в разное время) для обучения NeRF сцены, облик которой потом можно менять. Это реализовано через кодирование варьирующихся условий освещенности и цветопередачи на снимках. В результате обученная модель позволяет интерполировать освещенность, сохраняя консистентную геометрию. Слева на gif – сцена с фиксированной освещенностью, справа – интерполяция представлений освещения.

Фотографии, может, и произвольные, а ресурсы только масштаба Google: каждую сцену учили с батчем 2048 на 8 GPU 2 дня. Что-то подсказывает, что и обработка огромного количества фотографий в COLMAP – дело тоже непростое.

pixelNeRF от UC Berkeley предлагает кодировать входное изображение (с помощью сверточной сети) наряду с параметрами камеры. Это позволяет адаптировать подход к минимальному количеству фотографий. На gif слева – pixelNeRF, справа – оригинальный NeRF (последний заточен на обучение по большому числу фотографий сцены).
pixelNeRF от UC Berkeley предлагает кодировать входное изображение (с помощью сверточной сети) наряду с параметрами камеры. Это позволяет адаптировать подход к минимальному количеству фотографий. На gif слева – pixelNeRF, справа – оригинальный NeRF (последний заточен на обучение по большому числу фотографий сцены).

Наряду с этим классом моделей на конференции было представлено огромное количество работ с концептуально схожими implicit моделями. Эти модели являются отображением пространства пикселей в контекст непрерывной 3D сцены (или попросту делают из картинки 3D-модель) и, как правило, представляют SDF (signed distance function – индикаторная функция, определяющая принадлежность точки к поверхности сцены) и цвет. Параметризованные полносвязными нейронными сетями, неявными (implicit) они названы в честь одноименного класса функций.

Пионерами в данном направлении явились две работы – DeepSDF и PiFU (Pixel-Aligned Implicit Function). Представленный в недалеком 2019 нейронный подход значительно вырос и позволяет моделировать реалистичные сцены с более высокой детализацией, в (около) реальном времени.

Иллюстрация из работы от Facebook DeepSDF: a,b – 2D-проекция среза функции SDF, c – поверхность (показанная на a и b голубым контуром), заданная уравнением (Deep)SDF=0
Иллюстрация из работы от Facebook DeepSDF: a,b – 2D-проекция среза функции SDF, c – поверхность (показанная на a и b голубым контуром), заданная уравнением (Deep)SDF=0
PIFu – это две нейронные сети – PIFu(SDF) и Tex-PIFu (Tex от Texture –  текстура), которые принимают на вход изображение, закодированное полносверточной сетью в код x, и позицию точки в 3D z и выдают значение SDF и цвета соответственно.
PIFu – это две нейронные сети – PIFu(SDF) и Tex-PIFu (Tex от Texture – текстура), которые принимают на вход изображение, закодированное полносверточной сетью в код x, и позицию точки в 3D z и выдают значение SDF и цвета соответственно.
StereoPIFu от научно-технического университета Китая разработана в частности для двух* изображений. Авторы предлагают расширить контекст признаков за счет 3D представления – новые фичи с картинок проецируются в воксели (3D аналоги пикселей).  Двух изображений оказывается достаточно для того, чтобы с помощью нового представления фичей и дополнительных предсказаний карт глубины существенно улучшить результаты предшествующих PIFuHD по геометрии и оригинального PIFu на двух снимках по детализации.
StereoPIFu от научно-технического университета Китая разработана в частности для двух* изображений. Авторы предлагают расширить контекст признаков за счет 3D представления – новые фичи с картинок проецируются в воксели (3D аналоги пикселей). Двух изображений оказывается достаточно для того, чтобы с помощью нового представления фичей и дополнительных предсказаний карт глубины существенно улучшить результаты предшествующих PIFuHD по геометрии и оригинального PIFu на двух снимках по детализации.

* Возникает вопрос, почему бы не обобщить метод для multi-view? Мы можем предположить, что воксели – не самое эффективное и масштабируемое 3D представление, а геометрический контекст со стерео пары позволяет в рамках определенного диапазона разрешить неоднозначность, возникающую при моделировании сцены по одному фото.

Neural Geometric Level of Detail – первая implicit модель с высочайшей (для нейронной сети) детализацией. В работе был применен классический принцип иерархической детализации (знакомый геймерам LOD). Дискретизированный в оригинальном алгоритме LOD в данной работе является непрерывным и позволяет интерполировать значения SDF в зависимости от удаленности сцены от камеры.
Neural Geometric Level of Detail – первая implicit модель с высочайшей (для нейронной сети) детализацией. В работе был применен классический принцип иерархической детализации (знакомый геймерам LOD). Дискретизированный в оригинальном алгоритме LOD в данной работе является непрерывным и позволяет интерполировать значения SDF в зависимости от удаленности сцены от камеры.
 Function4D. Тут происходит объединение информации с RGBD-датчиков низкого разрешения. Под капотом все те же implicit функции, только для ускорения используются новые уловки: фильтрация пустых вокселей на основе карт глубины с последующей реконструкцией через octrees с разрешения 64 до 256. Для большего ускорения вместо текстур используются исходные картинки RGB, репроецированные на реконструированную геометрию.   
Как бонус – авторы опубликовали классный датасет с 500 сканами людей в высоком разрешении (на фото – примеры моделей).
Function4D. Тут происходит объединение информации с RGBD-датчиков низкого разрешения. Под капотом все те же implicit функции, только для ускорения используются новые уловки: фильтрация пустых вокселей на основе карт глубины с последующей реконструкцией через octrees с разрешения 64 до 256. Для большего ускорения вместо текстур используются исходные картинки RGB, репроецированные на реконструированную геометрию. Как бонус – авторы опубликовали классный датасет с 500 сканами людей в высоком разрешении (на фото – примеры моделей).

В последних implicit моделях в качестве функции активации используется просто синус параметризованной частоты, и ноги растут из NeRF, где направление камеры было закодировано с использованием периодических активаций (fourier features). Позже подход был обобщен до многослойных сетей синусоидальных представлений – SIREN (sinusoidal representation networks). О них уже была статья на хабре. Они стали новым state-of-the-art не только в представлении картинок, видео и звука, но и сцены в 3D в качестве тех самых implicit моделей (PiCA, Neural Lumigraph Rendering и другие).

Однако, наряду с энтузиастами подходов NeRF и implicit, велико число и скептиков. Мы неоднократно присутствовали на сессиях, где авторы нелестно отзывались о практической применимости метода. По словам Майкла Дж. Блэка на одной многих сессиях, implicit поверхности пока не совместимы ни с одним индустриальным приложением. Выразим скромный нейтралитет к данной позиции и останемся открыты новым академическим достижениям в этом направлении.

Ray tracing

Существует два основных способа рендеринга – ray tracing (трассировка лучей) и растеризация. На хабре уже была статья, подробно рассказывающая, что к чему, да и поклонники 3D-игр и спецэффектов наверняка слышали об этих двух техниках. Подобно ситуации с 3D-играми ray tracing вытесняет растеризацию в области физически корректного дифференцируемого рендеринга с целью расчета более точных градиентов.

Эксперимент с туториала Physics-Based Differentiable Rendering, который показывает радикальную разницу во влиянии точности градиентов на результат задачи выравнивания меша. В дифференцируемом движке psdr-cuda реализованы быстрый ray tracing и подсчет корректных градиентов, в то время как Pytorch3D с классической растеризацией уступает ray tracing в точности градиентов.
Эксперимент с туториала Physics-Based Differentiable Rendering, который показывает радикальную разницу во влиянии точности градиентов на результат задачи выравнивания меша. В дифференцируемом движке psdr-cuda реализованы быстрый ray tracing и подсчет корректных градиентов, в то время как Pytorch3D с классической растеризацией уступает ray tracing в точности градиентов.

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

В отличие от растеризации трассировка лучей позволяет моделировать реалистичный перенос света (преломления и отражения), а вычислительная независимость каждого луча делает алгоритмы, основанные на трассировке лучей, доступными для распараллеливания. Более того, определенные серии графических карт NVIDIA и AMD были специально разработаны под операции для ray tracing.

Facebook Reality Labs представили серию потрясающих статей, посвященных нейронным аватарам: Deep Appearance Models (DAM), Deep Relightable Appearance Models for Animatable Faces (DRAM) и Pixel Codec Avatars (PiCA). Последняя и была представлена на CVPR 2021.
Facebook Reality Labs представили серию потрясающих статей, посвященных нейронным аватарам: Deep Appearance Models (DAM), Deep Relightable Appearance Models for Animatable Faces (DRAM) и Pixel Codec Avatars (PiCA). Последняя и была представлена на CVPR 2021.
В качестве baseline-модели была взята предшествующая работа DAM. Ключевое отличие PiCA состоит в отказе от сверточных представлений в пользу попиксельного декодирования. Видимые пиксели, отрендеренные через растеризацию/raycasting (грубо: упрощенная форма трассировки лучей) декодируются легкой полносвязной сетью SIREN. Данный подход поддерживает рендеринг для Oculus c FPS ~50*).
В качестве baseline-модели была взята предшествующая работа DAM. Ключевое отличие PiCA состоит в отказе от сверточных представлений в пользу попиксельного декодирования. Видимые пиксели, отрендеренные через растеризацию/raycasting (грубо: упрощенная форма трассировки лучей) декодируются легкой полносвязной сетью SIREN. Данный подход поддерживает рендеринг для Oculus c FPS ~50*).
Codec Avatars vs Real video
Codec Avatars vs Real video

* Вообще говоря, 50 FPS недостаточно для благополучного погружения мозга и вестибулярного аппарата человека в VR, но в последние модели Oculus/VIVE встроена автоматическая интерполяция кадров (motion compensation) для поддержания минимального FPS 90.

Меши vs облака точек

Меш (mesh – сетка – структурированная совокупность вершин, ребер и граней) – это признанное наиболее гибкое и компактное представление 3D-сцены (в том числе динамичной), повсеместно используемое в задачах компьютерной графики. Меши легко анимировать, фотореалистично рендерить (применять сложное освещение и визуализировать различные материалы) и именно они чаще всего используются в различных AR-приложениях: маски, фильтры, реконструкция среды и т.д. И все же несмотря на угасающую популярность LiDAR-ов не мешем единым моделируется мир. Предыдущие работы, посвященные этому представлению, предлагают стратегии для фотореалистичного рендеринга и моделирования геометрии, что и стало основой для одной из самых ярких статей на конференции (SCALE).

SMPLpix: Neural Avatars from 3D Human Models
Идея данной работы кристально проста (не очень нова) и представляет собой тривиальный image-to-image translation. Есть модель SMPL (читается как “simple”) – параметрическая модель человека, универсальный Sims академии 3D компьютерного зрения. Авторы предлагают (традиционно) рендерить не весь меш, а только его вершины (такое разреженное облако точек), в частности – их цвет (Input RGB) и глубину (Input depth). А фотореалистичное* изображение получать с помощью сверточной нейросети (Output).
SMPLpix: Neural Avatars from 3D Human Models Идея данной работы кристально проста (не очень нова) и представляет собой тривиальный image-to-image translation. Есть модель SMPL (читается как “simple”) – параметрическая модель человека, универсальный Sims академии 3D компьютерного зрения. Авторы предлагают (традиционно) рендерить не весь меш, а только его вершины (такое разреженное облако точек), в частности – их цвет (Input RGB) и глубину (Input depth). А фотореалистичное* изображение получать с помощью сверточной нейросети (Output).

* На деле авторы пожертвовали фотореализмом во имя feed-forward подхода, который не требует обучения нейронных дескрипторов, как в NPBG. Любое облако точек с известными цветами может быть сразу отредендерно с помощью обученной модели SMPLpix.

AtlasNet – генерация мешей в стиле папье-маше. Представляется, что сложная 3D-геометрия состоит из локальных прямоугольных элементов, деформация которых предсказана полносвязной сетью.
AtlasNet – генерация мешей в стиле папье-маше. Представляется, что сложная 3D-геометрия состоит из локальных прямоугольных элементов, деформация которых предсказана полносвязной сетью.
SCALE – работа из MPI, в которой умело объединены идеи представления модели локальными элементами, их деформации (с умной декомпозицией на глобальную форму и локальные деформации одежды) и реалистичного рендеринга. В отличие от подходов на основе image-based рендеринга, SCALE учится по облакам точек. Слева направо: визуализация локальных элементов, традиционный рендеринг облака, нейронный (SMPLpix) рендеринг облака.
SCALE – работа из MPI, в которой умело объединены идеи представления модели локальными элементами, их деформации (с умной декомпозицией на глобальную форму и локальные деформации одежды) и реалистичного рендеринга. В отличие от подходов на основе image-based рендеринга, SCALE учится по облакам точек. Слева направо: визуализация локальных элементов, традиционный рендеринг облака, нейронный (SMPLpix) рендеринг облака.
SCANimate – еще одна статья от MPI с потрясающими результатами анимации неявной геометрии. Здесь из набора сырых сканов произвольной топологии в разных позах восстанавливается цельная 3D-геометрия. Мы уже увидели, что нейросети могут параметризовать геометрию и текстуру сцены (и в этой работе все это есть). А как насчет скиннинга*? В SCANimate представлены неявные модели, которые учат его веса. Для самообучения (в обучающей выборке веса не фигурируют) использован следующий популярный трюк с циклической консистентностью: через веса скиннинга скан переводят в каноническую позу, а потом обратно в позу скана и убедиться в том, что эти два обратных преобразования дают непротиворечивый результат.  
Сверху примеры с чистой геометрией, внизу геметрия + цвет.
SCANimate – еще одна статья от MPI с потрясающими результатами анимации неявной геометрии. Здесь из набора сырых сканов произвольной топологии в разных позах восстанавливается цельная 3D-геометрия. Мы уже увидели, что нейросети могут параметризовать геометрию и текстуру сцены (и в этой работе все это есть). А как насчет скиннинга*? В SCANimate представлены неявные модели, которые учат его веса. Для самообучения (в обучающей выборке веса не фигурируют) использован следующий популярный трюк с циклической консистентностью: через веса скиннинга скан переводят в каноническую позу, а потом обратно в позу скана и убедиться в том, что эти два обратных преобразования дают непротиворечивый результат. Сверху примеры с чистой геометрией, внизу геметрия + цвет.

* 3D-меши анимированы, как правило, на основе скелета, который привязан к модели через линейные веса: для каждой кости (или сустава – joint) на модели определен набор вершин, на которые влияет ее движение. Влияние на каждую вершину задано с помощью нормированного веса (от 0 до 1): на одну вершину может влиять несколько элементов скелета, но их веса должны суммироваться в 1.

Ресурсно-эффективные модели

Скорость (real-time) и память

Эффективные структуры данных – octrees, умные воксели (3D-аналог пикселей) и другие представления приходят на помощь оптимизации нейронных подходов для обработки в реальном времени в том числе на мобильных устройствах.

Neural Geometric Level of Detail, иллюстрация алгоритма представления сцены: ее признаковое представление хранится в разреженной структуре воксельного octree, где различные масштабы (показаны цветами) соответствуют уровням детализации. Это позволяет использовать легковесную сетку для извлечения геометрии, что в разы ускоряет рендеринг.
Neural Geometric Level of Detail, иллюстрация алгоритма представления сцены: ее признаковое представление хранится в разреженной структуре воксельного octree, где различные масштабы (показаны цветами) соответствуют уровням детализации. Это позволяет использовать легковесную сетку для извлечения геометрии, что в разы ускоряет рендеринг.
DI-Fusion: Online Implicit 3D Reconstruction With Deep Priors, (BNRist, Университет Цинхуа)
И еще одно красивое демо с первым SLAM-ом с 3D-реконструкцией в реальном времени. Помимо эффективной реализации работа представляет улучшение качества трекинга и построения карты. Новизной DI-Fusion является в том числе новая структура данных для implicit моделей – вероятностные локальные implicit воксели (Probabilistic Local Implicit Voxel – PLIVox), которые содержат значения нейронной SDF и соответствующие значения уверенности, что позволяет эффективно решать проблемы реконструкции в реальном времени.
DI-Fusion: Online Implicit 3D Reconstruction With Deep Priors, (BNRist, Университет Цинхуа) И еще одно красивое демо с первым SLAM-ом с 3D-реконструкцией в реальном времени. Помимо эффективной реализации работа представляет улучшение качества трекинга и построения карты. Новизной DI-Fusion является в том числе новая структура данных для implicit моделей – вероятностные локальные implicit воксели (Probabilistic Local Implicit Voxel – PLIVox), которые содержат значения нейронной SDF и соответствующие значения уверенности, что позволяет эффективно решать проблемы реконструкции в реальном времени.

Наряду с большими вычислительными ресурсами нейронные подходы, как правило, требуют огромных объемов данных для обучения. Эта проблема породила целый ряд направлений, связанных с оптимизацией объема и качества (хорошая разметка – это чаще всего дорого и долго) данных, используемых при обучении. Одним из них является weakly supervised обучение или частичное самообучение. При подобном подходе в виде целевых данных выступает какое-то грубое приближение. В случае PiCA в качестве образца берется грубый низкодетализированный меш (5 тысяч вершин), для которого осуществляется трекинг мимики, и за счет сравнения результирующего рендера с реальными фотографиями с разных ракурсов модель учится воспроизводить высокодетализированную 3D-модель.

Декомпозиция

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

Архитектура SCALE. На входе – модель без одежды, на поверхности меша сэмплируются точки, которые группируются в локальные элементы. Первая модель – сверточная сетка (Unet) – обрабатывает карту позиций точек, спроецированную в UV-координаты, чтобы получить геометрические признаки z. Далее вторая сетка – полносвязная – предсказывает деформацию облака по признакам z, UV координатам и локальным (в пространстве элемента) смещениям.
Архитектура SCALE. На входе – модель без одежды, на поверхности меша сэмплируются точки, которые группируются в локальные элементы. Первая модель – сверточная сетка (Unet) – обрабатывает карту позиций точек, спроецированную в UV-координаты, чтобы получить геометрические признаки z. Далее вторая сетка – полносвязная – предсказывает деформацию облака по признакам z, UV координатам и локальным (в пространстве элемента) смещениям.
Архитектура PiCA. Две сверточные сетки кодируют карту позиций и локальные признаки z соответственно. Растеризации позиций (xyz), UV и признаков z подаются в SIREN для попиксельного декодирования в RGB. Обучающие данные включают в себя грубый меш, глубину и RGB изображение.
Архитектура PiCA. Две сверточные сетки кодируют карту позиций и локальные признаки z соответственно. Растеризации позиций (xyz), UV и признаков z подаются в SIREN для попиксельного декодирования в RGB. Обучающие данные включают в себя грубый меш, глубину и RGB изображение.

Внимание к деталям

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

Подобные идеи характерны для нейросетевых алгоритмов и использованы в работе Real-Time High-Resolution Background Matting (герой наших предыдущих статей про фотограмметрию и NeRF), где по двум картинкам – целевому изображению и отдельно фону предсказывается попиксельно точная (до волосков) маска объекта.

Архтектура Real-Time High-Resolution Background Matting
Архтектура Real-Time High-Resolution Background Matting

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

Выводы

И, пускай, Блэк ругает неявные модели, SMPLpix фликерит, у моделей SCALE пальцы топорщатся на ногах, pixelNeRF немного мылит, у аватаров Facebook артефакты на ушах, а для обучения NeRF in the Wild нужно арендовать небольшую рендер-ферму, очевидно, направление нейронного 3D развивается  с фантастической скоростью. Мы верим, что новые работы будут продолжать потрясать нас своими идеями, а реализации от раза к разу будут ближе к индустриальным приложениям.

Ключевая составляющая успеха нейронных подходов - это данные. Мы в Twin3D обладаем уникальным сетапом из двух сканеров для тела и головы по 130 и 50 DSLR камер, которые позволяют получать реалистичные 3D-модели людей для различных приложений, включая кино, игры и retail. Сейчас мы продаем фотосеты и готовые фотореалистичные 3D-модели людей, а в скором будущем сделаем сервис по автоматической генерации готовых датасетов с разметкой для глубокого обучения.

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

Tags:
Hubs:
Total votes 7: ↑7 and ↓0+7
Comments0

Articles

Information

Website
twin3d.ru
Registered
Founded
Employees
11–30 employees
Location
Россия
Representative
Efim Boeru