```html Авторы: Цзюнь Гао, NVIDIA, Университет Торонто, Институт Вектора (jung@nvidia.com) Тяньчан Шэнь, NVIDIA, Университет Торонто, Институт Вектора (frshen@nvidia.com) Цзыань Ван, NVIDIA, Университет Торонто, Институт Вектора (zianw@nvidia.com) Вэньчжэн Чэнь, NVIDIA, Университет Торонто, Институт Вектора (wenzchen@nvidia.com) Кансюэ Инь, NVIDIA (kangxuey@nvidia.com) Дайцин Ли, NVIDIA (daiqingl@nvidia.com) Ор Литани, NVIDIA (olitany@nvidia.com) Зан Гойчич, NVIDIA (zgojcic@nvidia.com) Санджа Фидлер, NVIDIA, Университет Торонто, Институт Вектора (sfidler@nvidia.com) Реферат Поскольку несколько отраслей промышленности движутся к моделированию массивных 3D-виртуальных миров, потребность в инструментах создания контента, которые могут масштабироваться по количеству, качеству и разнообразию 3D-контента, становится очевидной. В нашей работе мы стремимся обучать высокопроизводительные 3D-генеративные модели, которые синтезируют текстурированные сетки, которые могут напрямую использоваться программами 3D-рендеринга, тем самым мгновенно применяясь в последующих приложениях. Предыдущие работы по 3D-генеративному моделированию либо не имеют геометрических деталей, ограничены топологией сетки, которую они могут производить, обычно не поддерживают текстуры, либо используют нейронные рендереры в процессе синтеза, что делает их использование в обычном 3D-программном обеспечении нетривиальным. В этой работе мы представляем GET3D, enerative model, которая напрямую генерирует xplicit extured mesh (явные текстурированные 3D-сетки) со сложной топологией, богатыми геометрическими деталями и высокоточными текстурами. Мы объединяем последние успехи в дифференцируемом моделировании поверхностей, дифференцируемом рендеринге, а также в 2D-генеративных состязательных сетях для обучения нашей модели на коллекциях 2D-изображений. GET3D способен генерировать высококачественные 3D-текстурированные сетки, начиная от автомобилей, стульев, животных, мотоциклов и персонажей до зданий, демонстрируя значительные улучшения по сравнению с предыдущими методами. Наша страница проекта: G E T 3D https://nv-tlabs.github.io/GET3D 1 Введение Разнообразный, высококачественный 3D-контент становится все более важным для различных отраслей, включая игры, робототехнику, архитектуру и социальные платформы. Однако ручное создание 3D-активов требует много времени и специальных технических знаний, а также навыков 3D-моделирования. Одной из основных проблем является масштабирование — в то время как 3D-модели можно найти на 3D-маркетплейсах, таких как Turbosquid [ ] или Sketchfab [ ], создание множества 3D-моделей, чтобы, скажем, населить игру или фильм толпой персонажей, которые все выглядят по-разному, по-прежнему требует значительного времени художника. 4 3 Для упрощения процесса создания контента и обеспечения его доступности для различных (начинающих) пользователей, генеративные 3D-сети, способные создавать высококачественные и разнообразные 3D-активы, в последнее время стали активной областью исследований [ , , , , , , , , , , ]. Однако, чтобы быть практически полезными для современных реальных приложений, 3D-генеративные модели в идеале должны соответствовать следующим требованиям: они должны иметь возможность создавать формы с детальной геометрией и произвольной топологией, выходные данные должны представлять собой текстурированную сетку, которая является основным представлением, используемым стандартными пакетами графического программного обеспечения, такими как Blender [ ] и Maya [ ], и мы должны иметь возможность использовать 2D-изображения для обучения, поскольку они более доступны, чем явные 3D-формы. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Предыдущие работы по 3D-генеративному моделированию были сосредоточены на подмножествах вышеупомянутых требований, но ни один метод на сегодняшний день не удовлетворяет всем из них (Табл. ). Например, методы, которые генерируют 3D-облака точек [ , 68, 75], обычно не производят текстур и должны быть преобразованы в сетку в постобработке. 1 5 Методы, генерирующие воксели, часто не имеют геометрических деталей и не производят текстур [ , , , ]. Генеративные модели на основе нейронных полей [ , ] сосредоточены на извлечении геометрии, но игнорируют текстуру. Большинство из них также требуют явного 3D-обучения. Наконец, методы, которые напрямую выводят текстурированные 3D-сетки [ , ], обычно требуют предварительно заданных шаблонов форм и не могут генерировать формы со сложной топологией и переменным родом. 66 20 27 40 43 14 54 53 В последнее время быстрый прогресс в области нейронного объемного рендеринга [ ] и 2D-генеративно-состязательных сетей (GAN) [ , , , , ] привел к появлению 3D-ориентированного синтеза изображений [ , , , , , ]. Однако эта линия работы направлена на синтез изображений с согласованными видами с использованием нейронного рендеринга в процессе синтеза и не гарантирует, что могут быть сгенерированы осмысленные 3D-формы. Хотя сетку потенциально можно получить из базового представления нейронного поля с использованием алгоритма марширующих кубов [ ], извлечение соответствующей текстуры является нетривиальной задачей. 45 34 35 33 29 52 7 57 8 49 51 25 39 В этой работе мы представляем новый подход, который направлен на удовлетворение всех требований практически полезной 3D-генеративной модели. В частности, мы предлагаем GET3D, enerative model for 3D shapes, которая напрямую выводит xplicit extured meshes (явные текстурированные 3D-сетки) с высокой геометрической детализацией и детализацией текстур, а также произвольной топологией сетки. В основе нашего подхода лежит генеративный процесс, который использует дифференцируемый метод извлечения поверхностей [ ] и метод дифференцируемого рендеринга [ , ]. Первый позволяет нам напрямую оптимизировать и выводить текстурированные 3D-сетки с произвольной топологией, а второй позволяет нам обучать нашу модель на 2D-изображениях, тем самым используя мощные и зрелые дискриминаторы, разработанные для синтеза 2D-изображений. Поскольку наша модель напрямую генерирует сетки и использует высокоэффективный (дифференцируемый) графический рендерер, мы можем легко масштабировать нашу модель для обучения с разрешением изображений до 1024 × 1024, что позволяет нам изучать высококачественные геометрические детали и детализацию текстур. G E T 3D явного 60 47 37 Мы демонстрируем передовую производительность в области безусловной генерации 3D-форм в нескольких категориях со сложной геометрией из ShapeNet [ ], Turbosquid [ ] и Renderpeople [ ], таких как автомобили, стулья, мотоциклы, персонажи и здания. Благодаря явному представлению сетки в качестве выходных данных, GET3D также очень гибок и может быть легко адаптирован для других задач, включая: обучение генерации разложенных эффектов материалов и зависимого от вида освещения с использованием продвинутого дифференцируемого рендеринга [ ] без обучения, генерация 3D-форм на основе текста с использованием эмбеддингов CLIP [ ]. 9 4 2 (a) 12 (b) 56 2 Связанные работы Мы рассматриваем последние достижения в области 3D-генеративных моделей для геометрии и внешнего вида, а также 3D-ориентированного генеративного синтеза изображений. В последние годы 2D-генеративные модели достигли фотореалистичного качества в синтезе изображений высокого разрешения [ , , , , , , ]. Этот прогресс также вдохновил исследования в области генерации 3D-контента. Ранние подходы были направлены на прямое расширение 2D-сверточных генераторов до 3D-воксельных сеток [ , , , , ], но большой объем памяти и вычислительная сложность 3D-сверток затрудняют процесс генерации при высоком разрешении. В качестве альтернативы другие работы исследовали представления облаков точек [ , , , ], неявные [ , ] или октарные [ ]. Однако эти работы в основном сосредоточены на генерации геометрии и игнорируют внешний вид. Их выходные представления также нуждаются в постобработке, чтобы сделать их совместимыми со стандартными графическими движками. 3D-генеративные модели 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Более схожими с нашей работой являются Textured3DGAN [ , ] и DIBR [ ], которые генерируют текстурированные 3D-сетки, но они формулируют генерацию как деформацию шаблонной сетки, что мешает им генерировать сложную топологию или формы с переменным родом, что наша модель может делать. PolyGen [ ] и SurfGen [ ] могут генерировать сетки с произвольной топологией, но не синтезируют текстуры. 54 53 11 48 41 Вдохновленные успехом нейронного объемного рендеринга [ ] и неявных представлений [ , ], недавние работы начали решать проблему 3D-ориентированного синтеза изображений [ , , , , , , , , , ]. Однако нейронные объемные рендеринговые сети обычно медленно запрашиваются, что приводит к длительному времени обучения [ , ] и генерации изображений ограниченного разрешения. GIRAFFE [ ] и StyleNerf [ ] улучшают эффективность обучения и рендеринга, выполняя нейронный рендеринг при более низком разрешении, а затем повышая его с помощью 2D CNN. Однако прирост производительности достигается за счет снижения согласованности видов. Используя двойной дискриминатор, EG3D [ ] может частично смягчить эту проблему. Тем не менее, извлечение текстурированной поверхности из методов, основанных на нейронном рендеринге, является нетривиальной задачей. В отличие от этого, GET3D напрямую выводит текстурированные 3D-сетки, которые могут быть легко использованы в стандартных графических движках. 3D-ориентированный генеративный синтез изображений 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Метод Теперь мы представляем нашу структуру GET3D для синтеза текстурированных 3D-форм. Наш процесс генерации разделен на две части: ветвь геометрии, которая дифференцируемо выводит сетку поверхности произвольной топологии, и ветвь текстуры, которая производит текстурное поле, которое можно запрашивать в точках поверхности для получения цветов. Последнее может быть расширено до других свойств поверхности, таких как, например, материалы (Раздел ). Во время обучения используется эффективный дифференцируемый растеризатор для рендеринга полученной текстурированной сетки в 2D-изображения высокого разрешения. Весь процесс является дифференцируемым, что позволяет осуществлять состязательное обучение на основе изображений (с масками, указывающими интересующий объект) путем распространения градиентов от 2D-дискриминатора к обеим ветвям генератора. Наша модель проиллюстрирована на рис. . Далее мы сначала представим наш 3D-генератор в разд. , прежде чем перейти к дифференцируемому рендерингу и функциям потерь в разд. . 4.3.1 2 3.1 3.2 3.1 Генеративная модель 3D-текстурированных сеток Мы стремимся обучить 3D-генератор = ( ) для отображения выборки из нормального распределения M, E G z ∈ N (0*,* ) в сетку с текстурой . z I M E Поскольку одна и та же геометрия может иметь разные текстуры, и одна и та же текстура может применяться к разной геометрии, мы выбираем две случайные входные векторы 1 ∈ R512 и 2 ∈ R512. Следуя StyleGAN [ , , ], мы затем используем нелинейные отображающие сети geo и tex для отображения 1 и 2 в промежуточные скрытые векторы 1 = geo( 1) и 2 = tex( 2), которые далее используются для получения , контролирующих генерацию 3D-форм и текстур соответственно. Мы формально представляем генератор для геометрии в разд. , а генератор текстур в разд. . z z 34 35 33 f f z z w f z w f z стилей 3.1.1 3.1.2 3.1.1 Генератор геометрии Мы разрабатываем наш генератор геометрии для включения DMTet [ ], недавно предложенного представления дифференцируемой поверхности. DMTet представляет геометрию как поле знаковых расстояний (SDF), определенное на деформируемой тетраэдрической сетке [ , ], из которой поверхность может быть дифференцируемо восстановлена с помощью марширующих тетраэдров [ ]. Деформация сетки путем перемещения ее вершин приводит к лучшему использованию ее разрешения. Принимая DMTet для извлечения поверхности, мы можем создавать явные сетки с произвольной топологией и родом. Далее мы кратко суммируем DMTet и отсылаем читателя к оригинальной статье для получения более подробной информации. 60 22 24 17 Пусть ( ) обозначает все 3D-пространство, в котором находится объект, где — вершины в тетраэдрической сетке . Каждый тетраэдр ∈ определяется четырьмя вершинами { }, с ∈ {1*, . . . , K*}, где — общее количество тетраэдров, а ∈ ∈ R3. Помимо своих 3D-координат, каждая вершина содержит значение SDF ∈ R и деформацию ∆ ∈ R3 вершины от ее исходных канонических координат. Это представление позволяет восстановить явную сетку с помощью дифференцируемого алгоритма марширующих тетраэдров [ ], где значения SDF в непрерывном пространстве вычисляются путем барицентрической интерполяции их значения на деформированных вершинах ′ = + ∆ . VT , T VT T Tk T v ak , v bk , v ck , v dk k K v ik VT , v ik v i si v i 60 si v v i v i Мы отображаем 1 ∈ R512 в значения SDF и деформации каждой вершины через серию условных 3D-сверточных и полносвязных слоев. В частности, мы сначала используем 3D-сверточные слои для генерации объемного признака, обусловленного 1. Затем мы запрашиваем признак в каждой вершине ∈ с использованием трилинейной интерполяции и передаем его в MLP, которые выводят значение SDF и деформацию ∆ . В случаях, когда требуется моделирование при высоком разрешении (например, мотоцикл с тонкими элементами в колесах), мы дополнительно используем объемное подразделение в соответствии с [ ]. Архитектура сети w v i w v i VT si v i 60 После получения и ∆ для всех вершин мы используем дифференцируемый алгоритм марширующих тетраэдров для извлечения явной сетки. Алгоритм марширующих тетраэдров определяет топологию поверхности внутри каждого тетраэдра на основе знаков . В частности, грань сетки извлекается, когда sign( ) /= sign( ), где обозначают индексы вершин на ребре тетраэдра, а вершины этой грани определяются линейной интерполяцией как mi,j = v 0 i sj−v 0 j si sj−si . Обратите внимание, что приведенное выше уравнение вычисляется только тогда, когда si 6= sj , поэтому оно является дифференцируемым, и градиент от mi,j может быть обратно распространен в значения SDF si и деформации ∆vi . С этим представлением формы с произвольной топологией могут быть легко сгенерированы путем прогнозирования различных знаков si . Дифференцируемое извлечение сетки si v i si si sj i, j m i,j 3.1.2 Генератор текстур Прямая генерация текстурной карты, согласованной с выходной сеткой, не является тривиальной задачей, поскольку сгенерированная форма может иметь произвольный род и топологию. Поэтому мы параметризуем текстуру как текстурное поле [ ]. 50 В частности, мы моделируем текстурное поле с помощью функции , которая отображает 3D-положение точки поверхности ∈ R3, обусловленное 2, в RGB-цвет ∈ R3 в этом положении. Поскольку текстурное поле зависит от геометрии, мы дополнительно обусловливаем это отображение кодом геометрии 1, так что = ( *,* 1 ⊕ 2), где ⊕ обозначает конкатенацию. ft p w c w c ft p w w Мы представляем наше текстурное поле с использованием триплоскостной репрезентации, которая является эффективной и выразительной при реконструкции 3D-объектов [ ] и генерации 3D-ориентированных изображений [ ]. В частности, мы следуем [ , ] и используем условную 2D-сверточную нейронную сеть для отображения скрытого кода 1 ⊕ 2 в три ортогональные плоскости признаков, выровненные по осям, размером × × ( × 3), где = 256 обозначает пространственное разрешение, а = 32 — количество каналов. Архитектура сети 55 8 8 35 w w N N C N C Учитывая плоскости признаков, вектор признаков f t ∈ R 32 точки поверхности p может быть получен как f t = P e ρ(πe(p)), где πe(p) — проекция точки p на плоскость признаков e, а ρ(·) обозначает билинейную интерполяцию признаков. Дополнительный полносвязный слой затем используется для отображения агрегированного вектора признаков f t в RGB-цвет c. Обратите внимание, что, в отличие от других работ по 3D-ориентированному синтезу изображений [8, 25, 7, 57], которые также используют представление нейронного поля, нам нужно только выбирать выборку текстурного поля в положениях точек поверхности (в отличие от плотных выборок вдоль луча). Это значительно снижает вычислительную сложность рендеринга изображений высокого разрешения и гарантирует генерацию согласованных видов по построению. 3.2 Дифференцируемый рендеринг и обучение Чтобы обучать нашу модель во время обучения, мы черпаем вдохновение из Nvdiffrec [ ], который выполняет многовидовую реконструкцию 3D-объектов с использованием дифференцируемого рендерера. В частности, мы рендерим извлеченную 3D-сетку и текстурное поле в 2D-изображения с помощью дифференцируемого рендерера [ ], и обучаем нашу сеть с помощью 2D-дискриминатора, который пытается отличить изображение от реального объекта или отрисованное из сгенерированного объекта. 47 37 Мы предполагаем, что распределение камер C, которое использовалось для получения изображений в наборе данных, известно. Чтобы отрисовать сгенерированные формы, мы случайным образом выбираем камеру из C и используем высокооптимизированный дифференцируемый растеризатор Nvdiffrast [ ] для рендеринга 3D-сетки в 2D-силуэт, а также в изображение, где каждый пиксель содержит координаты соответствующей 3D-точки на поверхности сетки. Эти координаты далее используются для запроса текстурного поля для получения RGB-значений. Поскольку мы работаем напрямую с извлеченной сеткой, мы можем рендерить изображения высокого разрешения с высокой эффективностью, что позволяет нашей модели обучаться с разрешением изображений до 1024×1024. Дифференцируемый рендеринг c 37 Мы обучаем нашу модель с использованием состязательной цели. Мы адаптируем архитектуру дискриминатора из StyleGAN [ ] и используем ту же не-сатурационную GAN-цель с R1-регуляризацией [ ]. Мы эмпирически обнаружили, что использование двух отдельных дискриминаторов, одного для RGB-изображений и другого для силуэтов, дает лучшие результаты, чем один дискриминатор, работающий с обоими. Пусть обозначает дискриминатор, где может быть либо RGB-изображением, либо силуэтом. Тогда состязательная цель будет определяться следующим образом: Дискриминатор и Цель 34 42 Dx x где ( ) определяется как ( ) = − log(1 +exp(− )), — распределение реальных изображений, — рендеринг, а — гиперпараметр. Поскольку является дифференцируемым, градиенты могут быть обратно распространены от 2D-изображений к нашим 3D-генераторам. g u g u u px R λ R Чтобы удалить внутренние плавающие грани, которые не видны ни в одном из видов, мы дополнительно регулируем генератор геометрии с помощью функции кросс-энтропии, определенной между значениями SDF соседних вершин [ ]: Регуляризация 47 где обозначает функцию бинарной кросс-энтропии, а обозначает сигмоидную функцию. Сумма в Eq. определяется по множеству уникальных ребер S в тетраэдрической сетке, для которых sign( ) /= sign( ). H σ 2 e si sj Общая функция потерь затем определяется как: где — гиперпараметр, контролирующий уровень регуляризации. µ 4 Эксперименты Мы проводим обширные эксперименты для оценки нашей модели. Сначала мы сравниваем качество 3D-текстурированных сеток, генерируемых GET3D, с существующими методами, используя наборы данных ShapeNet [ ] и Turbosquid [ ]. Затем мы проводим анализ наших проектных решений в разд. . Наконец, мы демонстрируем гибкость GET3D, адаптируя его к последующим приложениям в разд. . Дополнительные экспериментальные результаты и детали реализации приведены в Приложении. 9 4 4.2 4.3 </