Автори: 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 генеративните състезателни мрежи, за да обучим нашия модел от 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 представлява геометрия като поле със знаковa дистанция (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 След получаване на и ∆ за всички върхове, използваме диференцируемия алгоритъм за марширане на тетраедри, за да извлечем експлицитната мрежа. Марширането на тетраедри определя топологията на повърхността във всеки тетраедър въз основа на знаците на . По-конкретно, мрежова повърхнина се извлича, когато 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 където ( ) се дефинира като g u