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

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

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



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


В последних 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 вытесняет растеризацию в области физически корректного дифференцируемого рендеринга с целью расчета более точных градиентов.

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



* Вообще говоря, 50 FPS недостаточно для благополучного погружения мозга и вестибулярного аппарата человека в VR, но в последние модели Oculus/VIVE встроена автоматическая интерполяция кадров (motion compensation) для поддержания минимального FPS 90.
Меши vs облака точек
Меш (mesh – сетка – структурированная совокупность вершин, ребер и граней) – это признанное наиболее гибкое и компактное представление 3D-сцены (в том числе динамичной), повсеместно используемое в задачах компьютерной графики. Меши легко анимировать, фотореалистично рендерить (применять сложное освещение и визуализировать различные материалы) и именно они чаще всего используются в различных AR-приложениях: маски, фильтры, реконструкция среды и т.д. И все же несмотря на угасающую популярность LiDAR-ов не мешем единым моделируется мир. Предыдущие работы, посвященные этому представлению, предлагают стратегии для фотореалистичного рендеринга и моделирования геометрии, что и стало основой для одной из самых ярких статей на конференции (SCALE).

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




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


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


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

Там задействовано две сети: голубая обрабатывает картинки, для эффективности сжатые в 2 раза, а зеленая оперирует на исходном разрешении для уточнения тонких деталей. Наряду с маской объекта голубая сеть выдает карту погрешностей предсказаний, и регионы с недочетами вырезаются из кадра и обрабатываются уточняющей сетью в оригинальном разрешении. Реализация на высоком разрешении в реальном времени позволяет использовать метод в широком классе приложений, включая zoom-конференции.
Выводы
И, пускай, Блэк ругает неявные модели, SMPLpix фликерит, у моделей SCALE пальцы топорщатся на ногах, pixelNeRF немного мылит, у аватаров Facebook артефакты на ушах, а для обучения NeRF in the Wild нужно арендовать небольшую рендер-ферму, очевидно, направление нейронного 3D развивается с фантастической скоростью. Мы верим, что новые работы будут продолжать потрясать нас своими идеями, а реализации от раза к разу будут ближе к индустриальным приложениям.
Ключевая составляющая успеха нейронных подходов - это данные. Мы в Twin3D обладаем уникальным сетапом из двух сканеров для тела и головы по 130 и 50 DSLR камер, которые позволяют получать реалистичные 3D-модели людей для различных приложений, включая кино, игры и retail. Сейчас мы продаем фотосеты и готовые фотореалистичные 3D-модели людей, а в скором будущем сделаем сервис по автоматической генерации готовых датасетов с разметкой для глубокого обучения.
Мы будем продолжать следить за топовыми конференциями и делиться с вами полезными инсайтами.