Автори: 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, enerative model, що безпосередньо генерує xplicit extured meshes зі складною топологією, багатими геометричними деталями та високоточними текстурами. Ми спираємося на останні успіхи в диференційованому моделюванні поверхонь, диференційованому рендерингу, а також 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-форми. Хоча сітку потенційно можна отримати з базового представлення нейронного поля за допомогою алгоритму маршируючих кубів [ ], вилучення відповідної текстури є нетривіальним завданням. 45 34 35 33 29 52 7 57 8 49 51 25 39 У цій роботі ми представляємо новий підхід, спрямований на вирішення всіх вимог до практично корисної 3D-генеративної моделі. Зокрема, ми представляємо GET3D, enerative model для 3D-форм, яка безпосередньо виводить xplicit extured meshes з високою геометричною деталізацією та текстурою, а також довільною топологією сітки. В основі нашого підходу лежить генеративний процес, який використовує диференційований метод вилучення поверхонь [ ] та техніку диференційованого рендерингу [ , ]. Перший дозволяє нам безпосередньо оптимізувати та виводити текстуровані 3D-сітки з довільною топологією, а другий дозволяє нам тренувати нашу модель за допомогою 2D-зображень, таким чином використовуючи потужні та зрілі дискримінатори, розроблені для синтезу 2D-зображень. Оскільки наша модель безпосередньо генерує сітки та використовує високоефективний (диференційований) графічний рендерер, ми можемо легко масштабувати нашу модель для тренування із зображеннями G E T 3D явного 60 47 37 роздільною здатністю до 1024 × 1024, що дозволяє нам вивчати високоякісні геометричні деталі та деталі текстури. Ми демонструємо передову продуктивність для безумовного 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 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-точки на поверхні сітки. Ці координати далі використовуються для запиту текстового поля для отримання значень 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 Щоб видалити внутрішні плаваючі грані, які невидимі в жодному з видів, ми додатково регулюємо генератор геометрії за допомогою втрати перехресної ентропії, визначеної між значеннями SDF сусідніх вершин [ ]: Регуляризація 47