```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 генеративно-змагальних мережах (GAN) для навчання нашої моделі з 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 генеративно-змагальних мережах (GAN) [ , , , , ] призвів до появи 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 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 Диференційована візуалізація c 37 точки на поверхні сітки. Ці координати далі використовуються для запиту текстурного поля для отримання значень RGB. Оскільки ми працюємо безпосередньо з виділеною сіткою, ми можемо ефективно візуалізувати зображення високої роздільної здатності, що дозволяє тренувати нашу модель із роздільною здатністю зображення до 1024×1024. Ми тренуємо нашу модель за допомогою змагальної мети. Ми використовуємо архітектуру дискримінатора зі StyleGAN [ ] і застосовуємо ту ж несатураційну GAN-цільову функцію з R1-регуляризацією [ ]. Емпірично ми виявили, що використання двох окремих дискримінаторів, одного для RGB-зображень та іншого для силуетів, дає кращі результати, ніж один дискримінатор, що працює з обома. Нехай позначає дискримінатор, де може бути як RGB-зображенням, так і силуетом. Тоді змагальна цільова функція визначається наступним чином: Дискримінатор і цільова функція 34 42 Dx x де ( ) визначається як ( ) = − log(1 +exp(− )), – розподіл реальних зображень, позначає візуалізацію, а – гіперпараметр. Оскільки є диференційованим, градієнти можуть бути назад поширені від 2D-зображень до наших 3D-генераторів. g u g u u px R λ R Щоб видалити внутрішні плаваючі грані, які не видимі на жодному з ракурсів, ми додатково регулюємо генератор геометрії за допомогою перехресної ентропійної втрати, визначеної між значеннями SDF сусідніх вершин [ ]: Регуляризація 47