ИИ в 3D: Где мы сейчас и какое будущее нас ждёт? (Часть 1)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В последнее время мы оцениваем на удивление много проектов, так или иначе связанных с 3D-пространством и нейросетями. По всей видимости по прошествии 2023 года люди воодушевились и начали видеть возможность реализации тех идей, которые ранее просто-напросто казались научной фантастикой - и они не ошибаются! Исследователи и разработчики последних технологий достигли сногсшибательных результатов. В связи с этим хотел бы накидать цикл обзорных статей, которых как мне лично, так и нашей рабочей группе очень сильно недоставало в процессе ресёрча. 

Введение

Почему 3D? В отличие от тех же LLM или диффузионных 2D-моделей тема на первый взгляд совершенно не хайповая и, наверное, для восприятия более сложная, ну вот как-то не на слуху она совсем. Однако, понимая очевидную тенденцию развития технологий в этом направлении (VR/AR/Цифровые аватары и пр.), а также учитывая обыденное устремление человеческого познания в отношении нашего 4D мира, будет глупо отрицать, что в ближайшее время нас не захлестнёт волна открытий в данной области. В связи с этим хотел бы поучаствовать в создании плацдарма, который позволит большему числу людей ознакомиться с существующими подходами и также даст мотивацию как на углубление своих знаний, так и на создание новых.

Тема обширная, обозреть нужно много чего, поэтому повествование организую следующим образом: сначала я буду обозначать значимую для всей области модель машинного обучения, объясню принципы её работы своими словами, в процессе также предоставлю источники, которые стоит почитать/посмотреть для дальнейшего погружения в тему. 

В первой части цикла рассмотрим следующие модели:

  1. NeRF

  2. GIRAFFE

  3. SMPL

  4. SMPLify

  5. SMPL-X

В следующих частях будем иметь дело с более продвинутыми моделями для реконструкции 3D из 2D:

  1. Mesh R-CNN

  2. HSP

  3. NeuralRecon

  4. LegoFormer

  5. Neural Fields as Learnable Kernels for 3D Reconstruction

  6. Zero123

  7. One-2-3-45

А также поразмышляем на тему, что нас ждёт в недалёком будущем.

Приступим!

NeRF

Моё знакомство с классом подобных нейронок началось с замечательного видео Two Minute Papers, где автор рассказывает о NeRF (Neural Radiance Fields), по сути модели для восстановления цвета и плотности распределения объёма объектов на заданном луче. Это в свою очередь позволяет по нескольким фото одной и той же сцены, снятых с разных ракурсов, получить возможность "рендерить" ту же самую сцену, но уже используя произвольное положение камеры в пространстве. Выглядит очень эффектно! 

Удивительно то, что данная модель весит каких-то 5 МБ, что зачастую на несколько порядков меньше, чем суммарный размер обучающего датасета. То есть мы как бы упаковываем данные, находящиеся в фотографиях в одно непрерывное 3D-представление сцены.

Незамысловатая архитектура обычной MLP в сочетании с элегантной идеей производят довольно-таки мощный эффект:

Рассмотрим подробнее представленную схему. Здесь:

ɣ(x) - позиционное кодирование для пространственной координаты x=(x,y,z) внутри нашей сцены

ɣ(d) - позиционное кодирование для луча d=(θ,φ), в направлении которого мы наблюдаем точку x

σ - значение плотности объёма в заданной точке x (по сути прозрачность объекта в этой точке)

RGB - значение цвета точки x

Позиционное кодирование в данном случае является эвристикой, позволившей авторам оригинальной статьи улучшить восприятие моделью высокочастотных изменений цвета и геометрии внутри сцены. Задаётся оно следующей формулой:

\gamma(p)=(sin(2^0\pi p), cos(2^0\pi p), ...,sin(2^{L-1}\pi p), cos(2^{L-1}\pi p))

Есть у NeRF и несколько недостатков: во-первых, в силу самой концепции NeRF мы намеренно переобучаем нейросеть на возможность представления исключительно одной сцены, т.е. для разных сцен понадобится обучить разные нейросети. Во-вторых, само по себе это обучение ну уж очень долгое (как следует из оригинальной статьи 1-2 дня на NVIDIA V100).

Советую также прочитать соответствующую статью на Хабре и посмотреть видео, где доходчиво с примерами объясняются ключевые идеи и детали реализации данного метода.

GIRAFFE

Продолжим рассмотрение 3D-нейросетей с GIRAFFE - как идеологически, так хронологически следующей после NeRF знаковой модели, предназначенной для настраиваемой генерации объёмных сцен. До её появления большая часть подходов концентрировалась на создании наиболее реалистичных изображений с ядром в виде GAN, не беря в расчёт композициональную природу сцены, которая, очевидно, состоит из фона и, возможно, нескольких объектов как-то расположенных в пространстве относительно друг друга.

В следствии этого генеративные модели оставались не способными к устойчивой генерации вариаций одной и той же сцены с теми же самыми объектами. Условно, сдвиг предмета вправо мог привести к его полной деформации, изменению текстуры, цвета или всей сцены в общем. То есть красный деревянный куб на фоне травы превратился бы в зелёный стеклянный шар на фоне забора (так себе эффект от перемещения, не правда ли?). Связано это с тем, что перемещение объекта в данном случае равносильно одновременному изменению многих скрытых параметров генерации модели - они все перепутаны между собой, один влияет на другой и у нас нет возможности проинтерпретировать их должным образом. Схема, которая обучалась генерировать 2D-изображения без понимания 3D-природы сцены не способна на такие финты. Авторы статьи дают нам наглядную визуализацию озвученной проблемы:

А вот какой результат получается у GIRAFFE в противовес на аналогичной задаче перемещения объектов внутри сцены:

Уже гораздо лучше! Но не идеально ¯\_(ツ)_/¯

Так как всё-таки у GIRAFFE получается осуществлять контролируемую генерацию объёмных сцен? 

Дело в том, что у нас уже есть NeRF, которая по сути переобучается на одной единственной сцене, использую кучу картинок с разных ракурсов. На выходе у NeRF мы имеем поле признаков, которое сразу же принимаем за трёхканальное RGB изображение исходной размерности. Создатели GIRAFFE пошли чуть дальше и обобщили NeRF на генерацию скрытого поля признаков конкретного класса объектов произвольной размерности. Дальше, имея на руках несколько NeRF'ов для каждого из N необходимых объектов, задаём для них все настраиваемые параметры и получаем N полей соответствующих признаков. Далее объединяем их в одно поле при помощи композиционального оператора, применяем объёмный рендеринг для объединённого поля, расширяем размерность до исходного изображения и применяем GAN для обучения модели. Всё это описание можно уместить на следующей схеме:

Важная ремарка: RGB-изображения помимо последнего на выходе модели не нужно воспринимать буквально, это всё поля признаков. Сделано это для наглядной визуализации и упрощения понимания процесса генерации.

А что  по источникам?

Во-первых, советую замечательную книжку, которая вобрала в себя описание многих интересных моделей, хоть и имеет небольшие проблемы с переводом.
Во-вторых, конечно же идёт оригинальная статья по GIRAFFE
Далее стоит обратить внимание на предшествующую статью о GRAF и краткое объясняющее видео по GRAF.
Ну и напоследок, если кто-то захочет попробовать всё это запустить своими руками, то вот статья с Хабра, в которой описана плотная работа с исходным кодом.

SMPL

А сейчас начнём разбор целого класса моделей по получению трёхмерной реконструкции человеческого тела. SMPL, которая впервые была представлена аж в 2015 году, является параметрическим представлением трехмерной модели человеческого тела, которое точно отображает самые разнообразные формы тела в естественных человеческих позах. 

Хоть название SMPL и является акронимом слова simple, сама по себе она как нам показалось, к сожалению, таковой не является

Источник: https://habr.com/ru/articles/790560/


Интересные статьи

Интересные статьи

Продолжаем обстоятельный разговор про «мапперы» — устройства управления расширенной памятью на игровых консолях Famicom, NES и Денди. Во второй части статьи рассмотрим особенности нескольких основны...
Многочисленные издания активно делятся прогнозами по развитию технологий, целью которых является привлечение внимания инвесторов и аудитории. В то время как некоторые технологии не оправдывают ожидани...
Что ждет 3D-печать в будущем? В 2022 году индустрия 3D-печати отметит свое первое десятилетие, как инструмент аддитивного производства. Мы с нетерпением ждем второе и попросили экспертов по 3D-печати ...
Изначально я хотел купить планшет с большим экраном, чтобы смотреть сериалы и кино во время занятий на велотренажере. В итоге «экран» оказался в три раза дороже тренажера. Вы знаете, как это бывает: т...
Когда соревновательные компьютерные игры становились все более популярными, большинство отвергало их как нечто «исключительно для ботанов» и горячо обсуждали, достойно ли это называться...