Автори: Джун Гао, 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, енеративен модел, който директно генерира ксплицитни екстурирани мрежи със сложна топология, богати геометрични детайли и висококачествени текстури. Ние свързваме последния успех в диференциалното моделиране на повърхности, диференциалното рендиране, както и 2D генеративни състезателни мрежи, за да обучим нашия модел от 2D колекции от изображения. GET3D е способен да генерира висококачествени 3D текстурирани мрежи, вариращи от автомобили, столове, животни, мотоциклети и човешки персонажи до сгради, постигайки значителни подобрения спрямо предишните методи. Страницата на нашия проект: G E T 3D https://nv-tlabs.github.io/GET3D 1 Въведение Разнообразното, висококачествено 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 (а) (б) 15 1 (в) Предишни работи по 3D генеративно моделиране са се фокусирали върху подмножества от горните изисквания, но нито един метод досега не ги изпълнява всички (Табл. ). Например, методи, които генерират 3D точкови облаци [ , 68, 75], обикновено не произвеждат текстури и трябва да бъдат преобразувани в мрежа в последваща обработка. 1 5 Методи, генериращи воксели, често им липсват геометрични детайли и не произвеждат текстура [ , , , ]. Генеративни модели, базирани на невронни полета [ , ], се фокусират върху извличането на геометрия, но пренебрегват текстурата. Повечето от тях също изискват експлицитен 3D надзор. Накрая, методи, които директно генерират текстурирани 3D мрежи [ , ], обикновено изискват предварително дефинирани шаблони на форми и не могат да генерират форми със сложна топология и променлив род. 66 20 27 40 43 14 54 53 Наскоро бързият напредък в невронното обемно рендиране [ ] и 2D генеративните състезателни мрежи (GANs) [ , , , , ] доведе до появата на 3D-осъзнат синтез на изображения [ , , , , , ]. Въпреки това, тази линия на работа цели синтезиране на съгласувани в множество изгледи изображения с помощта на невронно рендиране в процеса на синтез и не гарантира, че могат да бъдат генерирани смислени 3D форми. Докато мрежа може потенциално да бъде получена от основното невронно полево представяне с помощта на алгоритъма marching cubes [ ], извличането на съответната текстура е нетривиално. 45 34 35 33 29 52 7 57 8 49 51 25 39 В тази работа представяме нов подход, който цели да адресира всички изисквания за практически полезен 3D генеративен модел. По-специално, ние предлагаме GET3D, енеративен модел за 3D форми, който директно генерира ксплицитни екстурирани мрежи с висока геометрична и текстурна детайлност и произволна топология на мрежата. В сърцето на нашия подход е генеративен процес, който използва диференциален метод за извличане на повърхност [ ] и техника за диференциално рендиране [ , ]. Първата ни позволява директно да оптимизираме и генерираме текстурирани 3D мрежи с произволна топология, докато втората ни позволява да обучим модела си с 2D изображения, като по този начин се възползваме от мощни и зрели дискриминатори, разработени за 2D синтез на изображения. Тъй като нашият модел директно генерира мрежи и използва високоефективен (диференциален) графичен рендериращ механизъм, можем лесно да мащабираме модела си, за да го обучим с резолюция на изображението до 1024 × 1024, което ни позволява да научим висококачествени геометрични и текстурни детайли. G E T 3D експлицитна 60 47 37 Демонстрираме най-съвременна производителност за безусловно 3D генериране на форми в множество категории със сложна геометрия от ShapeNet [ ], Turbosquid [ ] и Renderpeople [ ], като автомобили, столове, животни, човешки персонажи и сгради. С експлицитна мрежа като изходно представяне, GET3D също е много гъвкав и лесно може да бъде адаптиран към други задачи, включително: обучение за генериране на разложени ефекти на материалите и зависими от изгледа осветление с помощта на усъвършенствано диференциално рендиране [ ], без надзор, генериране на 3D форми, водено от текст, с помощта на CLIP [ ] вграждане. 9 4 2 (а) 12 (б) 56 2 Свързана работа Преглеждаме последните постижения в 3D генеративните модели за геометрия и външен вид, както и 3D-осъзнат генеративен синтез на изображения. В последните години 2D генеративните модели постигнаха фотореалистично качество при синтез на изображения с висока резолюция [ , , , , , , ]. Този напредък вдъхнови и изследванията в генерирането на 3D съдържание. Ранните подходи целяха директно разширяване на 2D CNN генераторите до 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), дефинирано върху деформируема тетраедрична мрежа [ , ], от която повърхността може да бъде диференциално възстановена чрез marching tetrahedra [ ]. Деформирането на мрежата чрез преместване на нейните върхове води до по-добро използване на нейната резолюция. Приемайки DMTet за извличане на повърхността, можем да произвеждаме експлицитни мрежи с произволна топология и род. След това предоставяме кратко резюме на DMTet и насочваме читателя към оригиналната статия за повече подробности. 60 22 24 17 Нека ( ) обозначава цялото 3D пространство, в което обектът се намира, където са върховете в тетраедричната мрежа . Всеки тетраедър ∈ е дефиниран с помощта на четири върха { }, с ∈ {1*, . . . , K*}, където е общият брой тетраедри, а ∈ ∈ R3. В допълнение към 3D координатите си, всеки връх съдържа стойността на SDF ∈ R и деформацията ∆ ∈ R3 на върха от първоначалната му канонична координата. Това представяне позволява възстановяване на експлицитната мрежа чрез диференциален marching tetrahedra [ ], където SDF стойностите в непрекъснато пространство се изчисляват чрез барицентрична интерполация на техните стойности върху деформираните върхове ′ = + ∆ . VT , T VT T Tk T v ak , v bk , v ck , v dk k K v ik VT , v ik i v i si v i 60 si v v i v i Преобразуваме 1 ∈ R512 в SDF стойности и деформации на всеки връх чрез серия от условни 3D конволюционни и напълно свързани слоеве. По-специално, първо използваме 3D конволюционни слоеве за генериране на обем от признаци, обусловен от 1. След това заявваме признаците във всеки връх ∈ с помощта на трилинейна интерполация и го подаваме към MLPs, които генерират SDF стойността и деформацията ∆ . В случаи, когато се изисква моделиране при висока резолюция (напр. мотоциклет с тънки структури в колелата), ние допълнително използваме обемно разделяне, следвайки [ ]. Архитектура на мрежата w v i w v i VT si v i 60 След получаване на и ∆ за всички върхове, използваме алгоритъма за диференциален marching tetrahedra за извличане на експлицитната мрежа. Marching tetrahedra определя топологията на повърхността във всеки тетраедър въз основа на знаците на . По-специално, лице на мрежата се извлича, когато 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-осъзнат синтез на изображения, които също използват представяне на невронно поле, ние трябва само да заявваме текстурното поле на местоположенията на точките от повърхността (за разлика от плътните заявки по лъч). Това значително намалява изчислителната сложност за рендиране на изображения с висока резолюция и гарантира генерирането на съгласувани в множество изгледи изображения по конструкция. 3.2 Диференциално рендиране и обучение За да надзираваме нашия модел по време на обучение, черпим вдъхновение от Nvdiffrec [ ], който извършва многоизгледно 3D реконструкция на обекти, използвайки диференциален рендериращ механизъм. По-специално, рендираме извлечената 3D мрежа и текстурното поле в 2D изображения, използвайки диференциален рендериращ механизъм [ ], и надзираваме нашата мрежа с 2D дискриминатор, който се опитва да различи изображението от реалния обект или рендираното от генерирания обект. 47 37 Предполагаме, че разпределението на камерите C, което е използвано за придобиване на изображенията в набора от данни, е известно. За да рендираме генерираните форми, случайно вземаме камера от C и използваме високооптимизиран диференциален растеризатор Nvdiffrast [ ] за рендиране на 3D мрежата в 2D силует, както и изображение, където всеки пиксел съдържа координатите на съответната 3D Диференциално рендиране c 37 точка върху повърхността на мрежата. Тези координати се използват допълнително за заявка към текстурното поле, за да се получат RGB стойностите. Тъй като работим директно върху извлечената мрежа, можем да рендираме изображения с висока резолюция с висока ефективност, което позволява на модела ни да бъде обучен с резолюция на изображението до 1024 × 1024. Обучаваме модела си с конкурентна цел. Приемаме архитектурата на дискриминатора от StyleGAN [ ] и използваме същата не-насищаща GAN цел с R1 регуляризация [ ]. Емпирично установихме, че използването на два отделни дискриминатора, един за RGB изображения и друг за силуети, дава по-добри резултати от един дискриминатор, работещ върху двете. Нека обозначава дискриминатора, където може да бъде RGB изображение или силует. Конкурентната цел тогава се дефинира както следва: Дискриминатор & Цел 34 42 Dx x където ( ) се дефинира като ( ) = − log(1 +exp(− )), g u g u u