```html Авторлар: Jun Gao, NVIDIA, University of Toronto, Vector Institute (jung@nvidia.com) Tianchang Shen, NVIDIA, University of Toronto, Vector Institute (frshen@nvidia.com) Zian Wang, NVIDIA, University of Toronto, Vector Institute (zianw@nvidia.com) Wenzheng Chen, NVIDIA, University of Toronto, Vector Institute (wenzchen@nvidia.com) Kangxue Yin, NVIDIA (kangxuey@nvidia.com) Daiqing Li, NVIDIA (daiqingl@nvidia.com) Or Litany, NVIDIA (olitany@nvidia.com) Zan Gojcic, NVIDIA (zgojcic@nvidia.com) Sanja Fidler, NVIDIA, University of Toronto, Vector Institute (sfidler@nvidia.com) Аннотация Тъй като няколко индустрии преминават към моделиране на масивни 3D виртуални светове, необходимостта от инструменти за създаване на съдържание, които могат да мащабират по отношение на количеството, качеството и разнообразието на 3D съдържание, става очевидна. В нашата работа ние се стремим да обучим производителни 3D генеративни модели, които синтезират текстурирани мрежи, които могат да бъдат директно използвани от 3D рендер енджини, като по този начин са незабавно използваеми в последващи приложения. Предишни работи върху 3D генеративно моделиране или нямат геометрични детайли, ограничени са в топологията на мрежата, която могат да произведат, обикновено не поддържат текстури, или използват невронни рендери в процеса на синтез, което прави употребата им в общ 3D софтуер нетривиална. В тази работа въвеждаме GET3D, енеративен модел, който директно генерира ксплицитни екстурирани мрежи със сложна топология, богати геометрични детайли и висококачествени текстури. Ние свързваме последните успехи в диференцируемото моделиране на повърхности, диференцируемото рендиране, както и 2D генеративните състезателни мрежи (GANs), за да обучим нашия модел от 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 (a) (b) 15 1 (c) Предишни работи върху 3D генеративно моделиране са се фокусирали върху подмножества от горните изисквания, но нито един метод досега не ги изпълнява всички (Табл. ). Например, методи, които генерират 3D облаци от точки [ , 68, 75], обикновено не произвеждат текстури и трябва да бъдат конвертирани в мрежа в последваща обработка. 1 5 Методи, които генерират воксели, често нямат геометрични детайли и не произвеждат текстура [ , , , ]. Генеративни модели, базирани на невронни полета [ , ], се фокусират върху извличането на геометрия, но пренебрегват текстурата. Повечето от тях също изискват експлицитен 3D надзор. И накрая, методи, които директно извеждат текстурирани 3D мрежи [ , ], обикновено изискват предварително дефинирани шаблони на форми и не могат да генерират форми със сложна топология и променлив род. 66 20 27 40 43 14 54 53 Наскоро, бърз напредък в невронното обемно рендиране [ ] и 2D генеративни състезателни мрежи (GANs) [ , , , , ] доведоха до възхода на 3D-осъзнат синтез на изображения [ , , , , , ]. Въпреки това, тази линия на работа цели синтез на съгласувани изображения от множество изгледи, използвайки невронно рендиране в процеса на синтез, и не гарантира, че могат да бъдат генерирани смислени 3D форми. Докато мрежа потенциално може да бъде получена от основното представяне на невронното поле, използвайки алгоритъма marching cube [ ], извличането на съответната текстура е нетривиално. 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 (a) 12 (b) 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), дефинирано върху деформируема тетраедрична мрежа [ , ], от която повърхността може да бъде диференцируемо възстановена чрез маршируващи тетраедри [ ]. Деформирането на мрежата чрез преместване на нейните върхове води до по-добро използване на нейната резолюция. Приемайки DMTet за екстракция на повърхността, можем да произведем експлицитни мрежи с произволна топология и род. След това предоставяме кратко резюме на DMTet и насочваме читателя към оригиналната статия за повече подробности. 60 22 24 17 Нека ( ) обозначава пълното 3D пространство, в което се намира обектът, където са върховете в тетраедричната мрежа . Всеки тетраедър ∈ е дефиниран чрез четири върха [ ], { }, с ∈ {1*, . . . , K*}, където е общият брой тетраедри, и ∈ ∈ R3. В допълнение към своите 3D координати, всеки връх съдържа стойността на SDF ∈ R и деформацията ∆ ∈ R3 на върха от неговата първоначална канонична координата. Това представяне позволява възстановяване на експлицитната мрежа чрез диференцируеми маршируващи тетраедри [ ], където стойностите на SDF в непрекъснато пространство се изчисляват чрез барицентрична интерполация на тяхната стойност върху деформираните върхове ′ = + ∆ . VT , T VT T Tk T 17 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 След получаване на и ∆ за всички върхове, използваме диференцируемия алгоритъм 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-осъзнат синтез на изображения [8, 25, 7, 57], които също използват представяне на невронно поле, ние трябва само да заявваме текстурното поле на локациите на точките от повърхността (за разлика от плътни заявки по лъч). Това значително намалява изчислителната сложност за рендиране на изображения с висока резолюция и гарантира генериране на изображения, съгласувани с множество изгледи по конструкция. 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 където ( ) се дефинира като ( g u g