Авторлар: 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 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 (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 форми. Нашият генеративен процес е разделен на две части: геометричен клон, който диференциално извежда мрежа на повърхността с произволна топология, и текстурен клон, който произвежда текстурно поле, което може да бъде заявявано при точките на повърхността, за да се получат цветове. Вторият може да бъде разширен до други повърхностни свойства, като например материали (Раздел ). По време на обучението се използва ефективен диференциален растерaтор за рендиране на получената текстурирана мрежа в 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 i 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 в три оси-ориентирани ортогонални полета с резолюция N × N × (C × 3), където N = 256 означава пространствената резолюция и C = 32 броя канали. Архитектура на мрежата 55 8 8 35 w w Дадени полетата, векторът на полето 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 и използваме високооптимизиран диференциален растерaтор 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