СОСТОЯНИЕ AI

Глубокое обучение для 3D-синтеза

Трансформеры против сверточных глубинных сетей для синтеза 3D-данных

Введение в 3D-данные

Все согласны с тем, что синтез 3D-данных с единой точки зрения является фундаментальной функцией человеческого зрения, которая является чрезвычайно сложной задачей для алгоритмов компьютерного зрения. Но недавние достижения в технологии 3D-съемки сделали большой скачок после увеличения доступности и доступности 3D-датчиков, таких как LiDAR, камеры RGB-D (RealSense, Kinect) и 3D-сканеры. В отличие от широко доступных 2D-данных, 3D-данные содержат обширную информацию о масштабе и геометрии, что позволяет машинам лучше понять окружающую среду. Однако доступность 3D-данных относительно ниже вместе с более высокой стоимостью приобретения по сравнению с 2D-данными. Поэтому в последнее время было предложено множество подходов к глубокому обучению для синтеза 3D-данных из доступных 2D-данных без использования каких-либо 3D-датчиков. Но прежде чем мы углубимся в эти подходы, мы должны понять формат, в котором обрабатываются 3D-данные.

Синтезированные трехмерные данные могут быть представлены в различных форматах в зависимости от конечной полезности данных. Некоторые часто используемые форматы:

  1. Глубина изображения
  2. Облака точек
  3. Воксели
  4. Сетки

Изображения глубины содержат значения глубины сцены в виде расстояния от камеры в метрах для каждого пикселя в кадре изображения. Эта информация о глубине сцены имеет огромное значение для многих задач, таких как беспилотные автомобили, дополненная реальность, робототехника и т. Д. Такая информация очень полезна для таких задач, как включение параллакса движения, когда камера сканирует неподвижную сцену и анимацию в виртуальных камерах, но при выделении определенного объекта в сцене для 3D-моделирования эта информация становится недостаточной и неточной при текущем уровне техники.

Облако точек - это набор трехмерных точек, распределенных в трехмерном пространстве. Каждая из этих трехмерных точек имеет детерминированное положение, обозначенное определенной координатой (x, y, z) вместе с другими атрибутами, такими как значения цвета RGB. В отличие от изображений глубины, представление облака точек сохраняет более качественную геометрическую информацию трехмерного пространства без какой-либо дискретизации. Однако представление облака точек не имеет локальных связей между точками, что приводит к очень большой степени свободы и высокой размерности, что затрудняет точный синтез.

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

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

В этом блоге мы обсудим три типа подходов, которые можно использовать для синтеза 3D-данных из 2D-данных. Из этих трех подходов один основан на архитектуре на основе трансформатора, а два других основаны на автокодировщике и сверточной нейронной сети на основе графов соответственно. Ключевое различие между этими двумя методологиями заключается в том, что, в отличие от более поздних, глубокие сети на основе трансформаторов полностью полагаются на механизм внимания для выявления глобальных зависимостей между вводом и выводом.

Сверточные нейронные сети

В этом разделе мы обсудим два типа недавно предложенных подходов, которые используют автокодировщик и сверточные нейронные сети на основе графов для синтеза трехмерных данных.

Сверточные нейронные сети на основе автоэнкодера

Чтобы понять этот подход, мы возьмем случай трехмерной реконструкции лица и выравнивания лица с использованием сети автоэнкодера.

Автоэнкодеры используют сверточную сеть для уменьшения размерности входного 2D-изображения в скрытое пространство, а затем используют это представление скрытого пространства для восстановления исходного формата 3D-данных. Во многих исследованиях использовались автоэнкодеры (архитектура на основе кодировщика-декодера) для оценки коэффициентов трехмерной морфируемой модели лица и функций деформации модели. Целью этих исследований в основном является использование этих функций деформации трехмерной модели для восстановления соответствующей трехмерной формы из одного изображения RGB, обеспечивая тем самым плотное выравнивание трехмерного лица и вывод реконструкции одновременно. Однако производительность таких методов ограничена ограничением пространства трехмерного представления, определяемого шаблонами модели лица. Точно так же подходы, подобные сети объемной регрессии (VRN) [1], используют архитектуры полного сверточного слоя для оценки трехмерного двоичного объема как дискретизированной версии облаков точек. Однако большинство выходных точек соответствуют бесполезным неповерхностным точкам, а также эта дискретизация ограничивает разрешение выходного представления. Поэтому лучшим исследованием для обсуждения была бы сеть, такая как сеть регрессии карты положения (PRN) [2], которая совместно прогнозирует плотное выравнивание и восстанавливает трехмерную форму лица с использованием UV-положения и карты текстуры.

PRN создает двухмерное представление трехмерной структуры лица в виде UV-карты положения. Позиция UV - это двухмерное изображение, которое записывает трехмерные координаты лица облака точек лица. Карта также присоединяет семантический признак трехмерных координат в каждой позиции в представлении. Проще говоря, UV-карта - это 2D-представление 3D-данных, в котором записаны 3D-координаты всех точек в UV-пространстве. Карты УФ-пространства и УФ-положения часто используются исследователями в области компьютерной графики для параметризации трехмерного пространства в плоскости двухмерного изображения. Переходя к сетевой архитектуре PRN, сеть берет входное изображение RGB и передает информацию 2D изображения в карту положения UV, используя простую структуру кодера-декодера (автоэнкодер). Автоэнкодер соответствует этим передаточным функциям за счет использования десяти остаточных блоков понижающей дискретизации и семнадцати транспонированных сверточных блоков повышающей дискретизации для окончательного предсказания UV-карты положения 256 × 256 × 3. Полученная карта положения UV помогает напрямую регрессировать окончательную трехмерную структуру и семантическую функцию для синтезируемого трехмерного лица. Для обучающих сетей, таких как PRN, нам просто нужны наборы данных, такие как отображение двухмерного изображения в трехмерное облако точек, что делает этот подход более применимым, поскольку выходной формат сети не ограничен конкретным трехмерным шаблоном или линейным пространством трехмерной трансформируемой модели.

Поэтому, учитывая простоту и эффективность подхода, PRN кажется одним из лучших вариантов для синтеза 3D-данных из 2D-изображения для их сетевого выходного формата.

Сверточные нейронные сети на основе графов

Как было показано в предыдущем разделе, большинство традиционных подходов к глубокому обучению, основанных на автокодировщиках, используют облако точек и форматы данных вокселей для синтеза трехмерных данных. Основной причиной особого внимания к этим двум форматам данных является ограничение, налагаемое распространенными сетевыми архитектурами на основе grid. Однако облако точек и воксельное представление имеют свои недостатки, как обсуждалось в первом разделе. Поэтому, чтобы избежать недостатков представления вокселя или облака точек, многие исследования перешли к синтезу данных трехмерной многоугольной сетки, что является более желательным форматом с точки зрения приложения. Некоторые из лучших подходов к проектированию архитектуры, которые очень хорошо работают при синтезе данных сетки, включают сверточные нейронные сети на основе графов. В этом разделе мы рассмотрим пример подхода, предложенного Wang et. al [3] (Pixel2Mesh).

Pixel2Mesh - это основанная на графах структура сквозного глубокого обучения, которая принимает одно цветное изображение RGB в качестве входных данных и передает 2D-изображение в 3D-модель сетки в более желательном формате координат камеры. Сверточная нейронная сеть на основе графов извлекает и использует особенности восприятия в 2D-изображении для создания 3D-сетки, постепенно деформируя эллипсоид, пока он не достигнет семантически правильной и оптимизированной геометрии. Принятая стратегия представляет собой грубую методологию, которая делает процедуру деформации эллипсоида геометрически гладкой и стабильной. Авторы также определяют различные функции потерь, связанные с сеткой, которые помогают сети захватывать больше свойств, которые гарантируют физически и визуально привлекательный трехмерный геометрический результат.

Архитектура Pixel2Mesh в основном состоит из каскадной сети деформации сетки и сети функций изображения. Сеть характеристик изображения отвечает за извлечение перцептивных характеристик из входного 2D-изображения и постепенно передает эти характеристики в основанную на графах сеть каскадных деформаций сетки, чтобы постепенно деформировать геометрию сетки эллипсоида в трехмерную сетку целевого объекта. Сеть свертки графа сети деформации сетки содержит три блока деформации вместе с двумя промежуточными слоями разматывания графа. Блоки деформации постепенно обрабатывают входной граф модели сетки, тогда как промежуточные слои разматывания графа постепенно увеличивают вершины графа, чтобы увеличить способность графа удерживать информацию, сохраняя при этом треугольную структуру данных. Помимо архитектурных деталей, одним из ключевых преимуществ графической архитектуры Pixel2Mesh является возможность выполнять одновременный анализ формы, аналогичный традиционным подходам на основе диаграмм, которые непосредственно нацелены на поверхностные коллекторы для операции свертки. Этот подход действует как мост между методами построения диаграмм и методами трехмерной реконструкции путем слияния двух естественных представлений (графа и многообразия поверхностей) сетчатых объектов.

Трансформаторная глубокая архитектура

Сверточные нейронные сети широко используются для задач компьютерного зрения из-за их сквозной способности научиться выполнять задачу непосредственно из данных без необходимости использования каких-либо визуальных функций, созданных вручную. Однако, хотя архитектура CNN требует больших вычислительных ресурсов, задача трехмерной синтетики делает эти вычисления более интенсивными и открывает широкий спектр вычислительной оптимизации и повышения эффективности. В ожидании следующего поколения нейронных архитектур трансформеры - лучшее семейство масштабируемых моделей зрения, которые не только независимы от предметной области, но также эффективны и оптимизированы с точки зрения вычислений. Более того, недавние исследования показали, что преобразования достигли самых современных результатов при решении многих задач, связанных с компьютерным зрением. Чтобы понять, как работают преобразователи в 3D-синтезе данных, мы возьмем на примере Polygen от Deepmind [4].

Polygen - это подход, который моделирует трехмерную n-угольную сетку напрямую путем последовательного прогнозирования граней и вершин сетки с использованием архитектуры на основе преобразователя. Дизайн модели таков, что он может обусловливать диапазон входных данных (классы объектов, воксели и 2D-изображения) и вероятностно производить выходные данные, которые отражают неопределенность в неоднозначных сценариях. Сеть состоит из вершинной модели и модели лица. Вершинная модель - это декодер-преобразователь с маской, который безусловно выражает распределение по последовательностям вершин для моделирования вершин сетки. В то время как модель лица представляет собой преобразователь на основе сети указателей, который условно выражает распределение по входным последовательностям вершин переменной длины для моделирования граней сетки. Таким образом, простыми словами, цель двух моделей преобразователей состоит в том, чтобы оценить распределение по трехмерным сеткам, сначала сгенерировав вершины сетки, а затем используя эти вершины для создания граней сетки.

Архитектура трансформатора, используемая в Polygen, основана на последовательных моделях, таких как WaveNet, PixelRNN и указательные сети. Работа также черпает вдохновение в Polygon-RNN (сегментация с использованием многоугольников), тогда как модель вершин похожа на сделанную на заказ архитектуру самовнимания PointGrow [8], которая моделирует трехмерные облака точек с использованием авторегрессионной декомпозиции. По сравнению с моделями порядковой авторегрессии PointGrow имеет более мелкую архитектуру самовнимания, которая предсказывает дискретное распределение координат с помощью механизма самовнимания, оперируя входным облаком точек фиксированной длины. Таким образом, Polygen можно рассматривать как хорошо сбалансированный ансамбль некоторых из лучших идей, объединенных посредством новой конструкции сети на основе трансформаторов.

Одной из ключевых особенностей Polygen является возможность кондиционирования вывода на основе входного контекста (пример контекста: 2D-изображение, класс объекта). Для достижения этой условной природы входной поток модели вершины и лица изменяется с учетом контекста. Для форматов ввода, таких как 2D-изображения и воксели, ввод сначала кодируется с использованием подходящего для домена кодировщика, чтобы получить контекстное встраивание для декодера-преобразователя, чтобы выполнить перекрестное внимание в последовательность внедрения. В то время как для входных форматов, таких как классы объектов, встраивание предварительно изученного класса проецируется на вектор, который добавляется к предсказанному представлению промежуточного преобразователя после уровня самовнимания, расположенного в каждом сетевом блоке. Это просто возможно из-за общей природы модели вершин, которая использует простую, выразительную и высокопроизводительную архитектуру преобразователя-декодера, которая позволяет сети моделировать данные из различных областей. Преобразователь использует свою способность эффективного агрегирования информации для захвата сильных нелокальных зависимостей, присутствующих в вершинах сетки и геометрии объекта.

Заключение

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

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

использованная литература

[1] Джексон, А.С., Булат, А., Аргириу, В., Цимиропулос, Г., Джексон, А.С., Булат, А., Аргириу, В., Цимиропулос, Г.: 3D-реконструкция лица с большой позой с одного изображение с помощью прямой объемной регрессии CNN. В: Международная конференция по компьютерному зрению. (2017)

[2] Совместная трехмерная реконструкция лица и плотное выравнивание с сетью регрессии карты положения

[3] Pixel2Mesh: создание моделей трехмерной сетки из отдельных изображений RGB (ECCV2018)

[4] PolyGen: авторегрессионная генерирующая модель трехмерных сеток

[5] Сунь, Ю., Ван, Ю., Лю, З., Сигел, Дж. Э., и Сарма, С. Е. Пойнтгроу: Авторегрессивно усвоенное создание облака точек с самовниманием. В Зимней конференции по приложениям компьютерного зрения, 2020 г.