```html Autori: 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) Abstract Poiché diverse industrie si stanno muovendo verso la modellazione di mondi virtuali 3D su larga scala, la necessità di strumenti di creazione di contenuti che possano scalare in termini di quantità, qualità e diversità di contenuti 3D sta diventando evidente. Nel nostro lavoro, miriamo ad addestrare modelli generativi 3D performanti che sintetizzano mesh texturizzate che possono essere direttamente consumate dai motori di rendering 3D, quindi immediatamente utilizzabili in applicazioni downstream. Lavori precedenti sulla modellazione generativa 3D mancano di dettagli geometrici, sono limitati nella topologia della mesh che possono produrre, tipicamente non supportano texture, o utilizzano renderizzatori neurali nel processo di sintesi, il che rende il loro uso nel comune software 3D non banale. In questo lavoro, introduciamo GET3D, un modello enerativo che genera direttamente mesh splicite exturizzate con topologia complessa, ricchi dettagli geometrici e texture ad alta fedeltà. Colmiamo il divario con i recenti successi nella modellazione di superfici differenziabili, nel rendering differenziabile così come nelle Reti Generative Avversarie 2D per addestrare il nostro modello da collezioni di immagini 2D. GET3D è in grado di generare mesh texturizzate 3D di alta qualità, che vanno da automobili, sedie, animali, motociclette e personaggi umani a edifici, ottenendo miglioramenti significativi rispetto ai metodi precedenti. La nostra pagina del progetto: G E T 3D https://nv-tlabs.github.io/GET3D 1 Introduzione Contenuti 3D diversi e di alta qualità stanno diventando sempre più importanti per diverse industrie, tra cui giochi, robotica, architettura e piattaforme sociali. Tuttavia, la creazione manuale di asset 3D richiede molto tempo e competenze tecniche specifiche, oltre a capacità di modellazione artistica. Una delle principali sfide è quindi la scala: mentre si possono trovare modelli 3D su marketplace 3D come Turbosquid [ ] o Sketchfab [ ], creare molti modelli 3D per, ad esempio, popolare un gioco o un film con una folla di personaggi che sembrano tutti diversi richiede ancora una quantità significativa di tempo per gli artisti. 4 3 Per facilitare il processo di creazione di contenuti e renderlo accessibile a una varietà di utenti (principianti), le reti generative 3D in grado di produrre asset 3D diversi e di alta qualità sono diventate recentemente un'area di ricerca attiva [ , , , , , , , , , , ]. Tuttavia, per essere praticamente utili per le attuali applicazioni del mondo reale, i modelli generativi 3D dovrebbero idealmente soddisfare i seguenti requisiti: dovrebbero avere la capacità di generare forme con geometria dettagliata e topologia arbitraria, l'output dovrebbe essere una mesh texturizzata, che è una rappresentazione primaria utilizzata dai pacchetti software grafici standard come Blender [ ] e Maya [ ], e dovremmo essere in grado di sfruttare immagini 2D per la supervisione, poiché sono più ampiamente disponibili delle forme 3D esplicite. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Il lavoro precedente sulla modellazione generativa 3D si è concentrato su sottoinsiemi dei requisiti di cui sopra, ma nessun metodo fino ad oggi li soddisfa tutti (Tab. ). Ad esempio, i metodi che generano nuvole di punti 3D [ , 68, 75] tipicamente non producono texture e devono essere convertiti in una mesh in post-elaborazione. 1 5 Metodi che generano voxel spesso mancano di dettagli geometrici e non producono texture [ , , , ]. Modelli generativi basati su campi neurali [ , ] si concentrano sull'estrazione della geometria ma trascurano la texture. La maggior parte di questi richiede anche una supervisione 3D esplicita. Infine, i metodi che producono direttamente mesh 3D texturizzate [ , ] tipicamente richiedono modelli di forma predefiniti e non possono generare forme con topologia complessa e genere variabile. 66 20 27 40 43 14 54 53 Recentemente, i rapidi progressi nel rendering volumetrico neurale [ ] e nelle Reti Generative Avversarie 2D (GAN) [ , , , , ] hanno portato all'ascesa della sintesi di immagini 3D-aware [ , , , , , ]. Tuttavia, questa linea di lavoro mira a sintetizzare immagini coerenti su più viste utilizzando il rendering neurale nel processo di sintesi e non garantisce che possano essere generate forme 3D significative. Sebbene una mesh possa potenzialmente essere ottenuta dalla rappresentazione del campo neurale sottostante utilizzando l'algoritmo del marching cube [ ], estrarre la texture corrispondente è un'impresa non banale. 45 34 35 33 29 52 7 57 8 49 51 25 39 In questo lavoro, introduciamo un nuovo approccio che mira ad affrontare tutti i requisiti di un modello generativo 3D praticamente utile. Nello specifico, proponiamo GET3D, un modello enerativo per forme 3D che produce direttamente mesh splicite exturizzate con elevati dettagli geometrici e di texture e topologia di mesh arbitraria. Nel cuore del nostro approccio c'è un processo generativo che utilizza un metodo di estrazione di superficie differenziabile [ ] e una tecnica di rendering differenziabile [ , ]. Il primo ci consente di ottimizzare e produrre direttamente mesh 3D texturizzate con topologia arbitraria, mentre il secondo ci consente di addestrare il nostro modello con immagini 2D, sfruttando così discriminatori potenti e maturi sviluppati per la sintesi di immagini 2D. Poiché il nostro modello genera direttamente mesh e utilizza un renderer grafico (differenziabile) altamente efficiente, possiamo facilmente aumentare la scala del nostro modello per addestrarlo con risoluzione di immagine fino a 1024 × 1024, permettendoci di apprendere dettagli geometrici e di texture di alta qualità. G E T 3D esplicita 60 47 37 Dimostriamo prestazioni all'avanguardia per la generazione di forme 3D incondizionate su più categorie con geometria complessa da ShapeNet [ ], Turbosquid [ ] e Renderpeople [ ], come sedie, motociclette, automobili, personaggi umani ed edifici. Con la mesh esplicita come rappresentazione di output, GET3D è anche molto flessibile e può essere facilmente adattato ad altri compiti, tra cui: apprendere a generare materiali decomposti ed effetti di illuminazione dipendenti dalla vista utilizzando un rendering differenziabile avanzato [ ], senza supervisione, generazione di forme 3D guidata da testo utilizzando embedding CLIP [ ]. 9 4 2 (a) 12 (b) 56 2 Lavori Correlati Rivediamo i recenti progressi nei modelli generativi 3D per geometria e aspetto, nonché nella sintesi di immagini generative 3D-aware. Negli ultimi anni, i modelli generativi 2D hanno raggiunto qualità fotorealistica nella sintesi di immagini ad alta risoluzione [ , , , , , , ]. Questo progresso ha anche ispirato la ricerca nella generazione di contenuti 3D. I primi approcci miravano ad estendere direttamente i generatori CNN 2D a griglie di voxel 3D [ , , , , ], ma l'elevato requisito di memoria e la complessità computazionale delle convoluzioni 3D ostacolano il processo di generazione ad alta risoluzione. In alternativa, altri lavori hanno esplorato rappresentazioni di nuvole di punti [ , , , ], implicite [ , ] o octree [ ]. Tuttavia, questi lavori si concentrano principalmente sulla generazione della geometria e trascurano l'aspetto. Anche le loro rappresentazioni di output devono essere post-elaborate per renderle compatibili con i motori grafici standard. Modelli Generativi 3D 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Più simili al nostro lavoro, Textured3DGAN [ , ] e DIBR [ ] generano mesh 3D texturizzate, ma formulano la generazione come una deformazione di una mesh modello, il che impedisce loro di generare topologia complessa o forme con genere variabile, cosa che il nostro metodo può fare. PolyGen [ ] e SurfGen [ ] possono produrre mesh con topologia arbitraria, ma non sintetizzano texture. 54 53 11 48 41 Ispirati dal successo del rendering volumetrico neurale [ ] e delle rappresentazioni implicite [ , ], i lavori recenti hanno iniziato ad affrontare il problema della sintesi di immagini 3D-aware [ , , , , , , , , , ]. Tuttavia, le reti di rendering volumetrico neurale sono tipicamente lente da interrogare, portando a lunghi tempi di addestramento [ , ] e generano immagini di risoluzione limitata. GIRAFFE [ ] e StyleNerf [ ] migliorano l'efficienza di addestramento e rendering eseguendo il rendering neurale a una risoluzione inferiore e quindi aumentando la risoluzione dei risultati con una CNN 2D. Tuttavia, il guadagno di prestazioni avviene al costo di una ridotta coerenza multi-vista. Utilizzando un discriminatore duale, EG3D [ ] può mitigare parzialmente questo problema. Ciononostante, estrarre una superficie texturizzata da metodi basati sul rendering neurale è un'impresa non banale. Al contrario, GET3D produce direttamente mesh 3D texturizzate che possono essere prontamente utilizzate nei motori grafici standard. Sintesi di Immagini Generative 3D-Aware 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metodo Ora presentiamo il nostro framework GET3D per la sintesi di forme 3D texturizzate. Il nostro processo di generazione è diviso in due parti: un ramo di geometria, che produce differenziabilmente una mesh di superficie di topologia arbitraria, e un ramo di texture che produce un campo di texture che può essere interrogato nei punti della superficie per produrre colori. Quest'ultimo può essere esteso ad altre proprietà superficiali come, ad esempio, materiali (Sez. ). Durante l'addestramento, un efficiente rasterizzatore differenziabile viene utilizzato per renderizzare la mesh texturizzata risultante in immagini 2D ad alta risoluzione. L'intero processo è differenziabile, consentendo l'addestramento avversario da immagini (con maschere che indicano un oggetto di interesse) propagando i gradienti dal discriminatore 2D a entrambi i rami del generatore. Il nostro modello è illustrato in Fig. . Di seguito, introduciamo prima il nostro generatore 3D nella Sez. , prima di procedere al rendering differenziabile e alle funzioni di perdita nella Sez. . 4.3.1 2 3.1 3.2 3.1 Modello Generativo di Mesh 3D Texturizzate Miriamo ad apprendere un generatore 3D = ( ) per mappare un campione da una distribuzione Gaussiana M, E G z ∈ N (0*,* ) a una mesh con texture . z I M E Poiché la stessa geometria può avere texture diverse, e la stessa texture può essere applicata a geometrie diverse, campioniamo due vettori di input casuali 1 ∈ R512 e 2 ∈ R512. Seguendo StyleGAN [ , , ], utilizziamo quindi reti di mappatura non lineari geo e tex per mappare 1 e 2 a vettori latenti intermedi 1 = geo( 1) e 2 = tex( 2) che vengono ulteriormente utilizzati per produrre *stili* che controllano la generazione della forma 3D e della texture, rispettivamente. Introduciamo formalmente il generatore per la geometria nella Sez. e il generatore di texture nella Sez. . z z 34 35 33 f f z z w f z w f z 3.1.1 3.1.2 3.1.1 Generatore di Geometria Progettiamo il nostro generatore di geometria per incorporare DMTet [ ], una rappresentazione di superficie differenziabile proposta di recente. DMTet rappresenta la geometria come un campo di distanza con segno (SDF) definito su una griglia tetraedrica deformabile [ , ], dalla quale la superficie può essere recuperata differenziabilmente attraverso marching tetrahedra [ ]. Deformare la griglia spostandone i vertici consente un migliore utilizzo della sua risoluzione. Adottando DMTet per l'estrazione della superficie, possiamo produrre mesh esplicite con topologia e genere arbitrari. Forniamo quindi un breve riassunto di DMTet e rimandiamo il lettore al paper originale per ulteriori dettagli. 60 22 24 17 Sia ( ) la notazione per l'intero spazio 3D in cui si trova l'oggetto, dove sono i vertici nella griglia tetraedrica . Ogni tetraedro ∈ è definito utilizzando quattro vertici { }, con ∈ {1*, . . . , K*}, dove è il numero totale di tetraedri, e ∈ ∈ R3. Oltre alle sue coordinate 3D, ogni vertice contiene il valore SDF ∈ R e la deformazione ∆ ∈ R3 del vertice dalla sua coordinata canonica iniziale. Questa rappresentazione consente di recuperare la mesh esplicita attraverso marching tetrahedra differenziabili [ ], dove i valori SDF nello spazio continuo sono calcolati tramite un'interpolazione baricentrica del loro valore sui vertici deformati ′ = + ∆ . 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 Mappiamo 1 ∈ R512 a valori SDF e deformazioni in ogni vertice attraverso una serie di layer convoluzionali 3D condizionali e fully connected. Nello specifico, utilizziamo prima layer convoluzionali 3D per generare un volume di feature condizionato su 1. Quindi interroghiamo la feature in ogni vertice ∈ utilizzando interpolazione trilineare e la forniamo a MLP che producono il valore SDF e la deformazione ∆ . Nei casi in cui è richiesta la modellazione ad alta risoluzione (ad es. una moto con strutture sottili nelle ruote), utilizziamo ulteriormente la suddivisione volumetrica seguendo [ ]. Architettura di Rete w v i w v i VT si v i 60 Dopo aver ottenuto e ∆ per tutti i vertici, utilizziamo l'algoritmo differenziabile marching tetrahedra per estrarre la mesh esplicita. Marching tetrahedra determina la topologia della superficie all'interno di ogni tetraedro in base ai segni di . In particolare, una faccia della mesh viene estratta quando sign( ) /= sign( ), dove denotano gli indici dei vertici sul bordo del tetraedro, e i vertici di quella faccia sono determinati da un'interpolazione lineare come mi,j = v 0 i sj−v 0 j si sj−si . Notare che l'equazione sopra viene valutata solo quando si 6= sj , quindi è differenziabile, e il gradiente da mi,j può essere retropropagato nei valori SDF si e nelle deformazioni ∆vi . Con questa rappresentazione, forme con topologia arbitraria possono essere facilmente generate prevedendo segni diversi di si . Estrazione Mesh Differenziabile si v i si si sj i, j m i,j 3.1.2 Generatore di Texture Generare direttamente una mappa di texture coerente con la mesh di output non è banale, poiché la forma generata può avere genere e topologia arbitrari. Pertanto, parametrizziamo la texture come un campo di texture [ ]. 50 Nello specifico, modelliamo il campo di texture con una funzione che mappa la posizione 3D di un punto superficiale ∈ R3, condizionata su 2, al colore RGB ∈ R3 in quella posizione. Poiché il campo di texture dipende dalla geometria, condizioniamo inoltre questa mappatura sul codice latente della geometria 1, in modo tale che = ( *,* 1 ⊕ 2), dove ⊕ denota la concatenazione. ft p w c w c ft p w w Rappresentiamo il nostro campo di texture utilizzando una rappresentazione tri-plane, che è efficiente ed espressiva nel ricostruire oggetti 3D [ ] e generare immagini 3D-aware [ ]. Nello specifico, seguiamo [ , ] e utilizziamo una rete neurale convoluzionale 2D condizionale per mappare il codice latente 1 ⊕ 2 a tre piani di feature ortogonali allineati agli assi di dimensione × × ( × 3), dove = 256 denota la risoluzione spaziale e = 32 il numero di canali. Architettura di Rete 55 8 8 35 w w N N C N C Date le feature planes, il vettore di feature f t ∈ R 32 di un punto superficiale p può essere recuperato come f t = P e ρ(πe(p)), dove πe(p) è la proiezione del punto p sul piano di feature e e ρ(·) denota l'interpolazione bilineare delle feature. Un ulteriore layer fully connected viene quindi utilizzato per mappare il vettore di feature aggregato f t al colore RGB c. Notare che, a differenza di altri lavori sulla sintesi di immagini 3D-aware [8, 25, 7, 57] che utilizzano anche una rappresentazione di campo neurale, dobbiamo solo campionare il campo di texture nelle posizioni dei punti superficiali (al contrario di campioni densi lungo un raggio). Ciò riduce notevolmente la complessità computazionale per il rendering di immagini ad alta risoluzione e garantisce la generazione di immagini coerenti su più viste per costruzione. 3.2 Rendering Differenziabile e Addestramento Per supervisionare il nostro modello durante l'addestramento, ci ispiriamo a Nvdiffrec [ ] che esegue la ricostruzione di oggetti 3D multi-vista utilizzando un renderer differenziabile. Nello specifico, renderizziamo la mesh 3D estratta e il campo di texture in immagini 2D utilizzando un renderer differenziabile [ ], e supervisioniamo la nostra rete con un discriminatore 2D, che cerca di distinguere l'immagine da un oggetto reale o renderizzata dall'oggetto generato. 47 37 Supponiamo che la distribuzione della telecamera C utilizzata per acquisire le immagini nel dataset sia nota. Per renderizzare le forme generate, campioniamo casualmente una telecamera da C e utilizziamo un rasterizzatore differenziabile altamente ottimizzato Nvdiffrast [ ] per renderizzare la mesh 3D in una silhouette 2D e in un'immagine in cui ogni pixel contiene le coordinate del corrispondente punto 3D sulla superficie della mesh. Queste coordinate vengono ulteriormente utilizzate per interrogare il campo di texture per ottenere i valori RGB. Poiché operiamo direttamente sulla mesh estratta, possiamo renderizzare immagini ad alta risoluzione con alta efficienza, permettendo al nostro modello di essere addestrato con risoluzione di immagine fino a 1024×1024. Rendering Differenziabile c 37 Addestriamo il nostro modello utilizzando un obiettivo avversario. Adottiamo l'architettura del discriminatore da StyleGAN [ ], e utilizziamo lo stesso obiettivo GAN non saturo con regolarizzazione R1 [ ]. Troviamo empiricamente che l'uso di due discriminatori separati, uno per le immagini RGB e un altro per le silhouette, produce risultati migliori rispetto a un singolo discriminatore che opera su entrambi. Sia il discriminatore, dove può essere un'immagine RGB o una silhouette. L'obiettivo avversario sarà quindi definito come segue: Discriminatore & Obiettivo 34 42 Dx x dove ( ) è definito come ( ) = − log(1 +exp(− )), è la distribuzione delle immagini reali, denota il rendering, e è un iperparametro. Poiché è differenziabile, i gradienti possono essere retropropagati dalle immagini 2D ai nostri generatori 3D. g u g u u px R λ R Per rimuovere volti interni flottanti che non sono visibili in nessuna delle viste, regolarizziamo ulteriormente il generatore di geometria con una perdita di cross-entropia definita tra i valori SDF dei vertici adiacenti [ ]: Regolarizzazione 47 dove denota la perdita di cross-entropia binaria e denota la funzione sigmoide. La somma nell'Eq. è definita sull'insieme degli spigoli unici S nella griglia tetraedrica, per cui sign( ) /= sign( ). H σ 2 e si sj La funzione di perdita complessiva è quindi definita come: dove è un iperparametro che controlla il livello di regolarizzazione. µ 4 Esperimenti Conduciamo esperimenti approfonditi per valutare il nostro modello. Confrontiamo innanzitutto la qualità delle mesh 3D texturizzate generate da GET3D con i metodi esistenti utilizzando i dataset ShapeNet [ ] e Turbosquid [ ]. Successivamente, analizziamo le nostre scelte di progettazione nella Sez. . Infine, dimostriamo la flessibilità di GET3D adattandolo ad applicazioni downstream nella Sez. . Risultati sperimentali aggiuntivi e dettagli di implementazione sono forniti nell'Appendice. 9 4 4.2 4.3 4.1 Esperimenti su Dataset Sintetici Per la valutazione su ShapeNet [ ], utilizziamo tre categorie con geometria complessa: , e , che contengono rispettivamente 7497, 6778 e 337 forme. Suddividiamo casualmente ciascuna categoria in training (70%), validazione (10%) e test (20%), e rimuoviamo ulteriormente dal set di test le forme che hanno duplicati nel set di training. Per renderizzare i dati di training, campioniamo casualmente pose di telecamera dall'emisfero superiore di ogni forma. Per le categorie e , utilizziamo 24 viste casuali, mentre per utilizziamo 100 viste a causa del minor numero di forme. Poiché i modelli in ShapeNet hanno solo texture semplici, valutiamo anche GET3D su un dataset (442 forme) raccolto da TurboSquid [ ], dove le texture sono più dettagliate e lo suddividiamo in training, validazione e test come definito sopra. Infine, per dimostrare la versatilità di GET3D, forniamo anche risultati qualitativi sul dataset raccolto da Turbosquid (563 forme) e sul dataset da Renderpeople [ ] (500 forme). Addestriamo un modello separato per ogni categoria. Dataset 9 Auto Sedia Moto Auto Sedia Moto Animale 4 Casa Corpo Umano 2 Confrontiamo GET3D con due gruppi di lavori: modelli generativi 3D che si basano sulla supervisione 3D: PointFlow [ ] e OccNet [ ]. Notare che questi metodi generano solo geometria senza texture. metodi di generazione di immagini 3D-aware: GRAF [ ], PiGAN [ ] e EG3D [ ]. Baseline 1) 68 43 2) 57 7 8 Per valutare la qualità della nostra sintesi, consideriamo sia la geometria che la texture delle forme generate. Per la geometria, adottiamo metriche da [ ] e utilizziamo sia la Distanza di Chamfer (CD) che la Distanza del Campo Luce [ ] (LFD) per calcolare il punteggio di Copertura e la Distanza Minima di Corrispondenza. Per OccNet [ ], GRAF [ ], PiGAN [ ] e EG3D [ ], utilizziamo marching cubes per estrarre la geometria sottostante. Per PointFlow [ ], utilizziamo la ricostruzione di superfici di Poisson per convertire una nuvola di punti in una mesh quando si valuta la LFD. Per valutare la qualità della texture, adottiamo la metrica FID [ ] comunemente utilizzata per valutare la sintesi di immagini. In particolare, per ogni categoria, renderizziamo le forme di test in immagini 2D, e renderizziamo anche le forme 3D generate da ogni modello in 50k immagini utilizzando la stessa distribuzione della telecamera. Calcoliamo quindi FID sui due set di immagini. Poiché le baseline dalla sintesi di immagini 3D-aware [ , , ] non producono direttamente mesh texturizzate, calcoliamo il punteggio FID in due modi: ( ) utilizziamo il loro rendering volumetrico neurale per ottenere immagini 2D, che chiamiamo FID-Ori, e ( ) estraiamo la mesh dalla loro rappresentazione di campo neurale utilizzando marching cubes, la renderizziamo, e quindi utilizziamo la posizione 3D di ogni pixel per interrogare la rete per ottenere i valori RGB. Chiamiamo questo punteggio, che è più consapevole della forma 3D effettiva, FID-3D. Ulteriori dettagli sulle metriche di valutazione sono disponibili nell'Appendice . Metriche 5 10 43 57 7 8 68 28 57 7 8 i ii B.3 Forniamo risultati quantitativi nella Tabella. ed esempi qualitativi nelle Fig. e Fig. . Ulteriori risultati sono disponibili nel video supplementare. Rispetto a OccNet [ ] che utilizza la supervisione 3D durante l'addestramento, GET3D raggiunge prestazioni migliori sia in termini di diversità (COV) che di qualità (MMD), e le nostre forme generate hanno maggiori dettagli geometrici. Risultati Sperimentali 2 3 4 43 PointFlow [ ] supera GET3D in termini di MMD su CD, mentre GET3D è migliore in MMD su LFG. Ipotizziamo che ciò sia dovuto al fatto che PointFlow ottimizza direttamente sulle posizioni dei punti, il che favorisce la CD. GET3D si comporta anche favorevolmente rispetto ai metodi di sintesi di immagini 3D-aware; otteniamo miglioramenti significativi rispetto a PiGAN [ ] e GRAF [ ] in termini di tutte le metriche su tutti i dataset. Le nostre forme generate contengono anche maggiori dettagli geometrici e di texture. Rispetto al lavoro recente EG3D [ ]. Otteniamo prestazioni comparabili nella generazione di immagini 2D (FID-ori), mentre miglioriamo significativamente la sintesi di forme 3D in termini di FID-3D, il che dimostra l'efficacia del nostro modello nell'apprendere la geometria e la texture 3D effettive. 68 7 57 8 Poiché sintetizziamo mesh texturizzate, possiamo esportare le nostre forme in Blender . Mostriamo i risultati del rendering nelle Fig. e . GET3D è in grado di generare forme con geometria e topologia diverse e di alta qualità, strutture molto sottili (moto), nonché texture complesse su automobili, animali e case. 1 1 5 GET3D consente anche l'interpolazione di forme, che può essere utile per scopi di editing. Esploriamo lo spazio latente di GET3D nella Fig. , dove interpola i codici latenti per generare ogni forma da sinistra a destra. GET3D è in grado di generare in modo fedele una transizione fluida e significativa da una forma all'altra. Esploriamo ulteriormente lo spazio latente locale perturbando leggermente i codici latenti in una direzione casuale. GET3D produce forme nuove e diverse quando si applica l'editing locale nello spazio latente (Fig. ). Interpolazione di Forme 6 7 4.2 Ablazioni Analizziamo il nostro modello in due modi: con e senza suddivisione volumetrica, addestrando utilizzando diverse risoluzioni di immagine. Ulteriori ablazioni sono fornite nell'Appendice . 1) 2) C.3 Come mostrato nella Tab. , la suddivisione volumetrica migliora significativamente le prestazioni sulle classi con strutture sottili (ad es. moto), senza apportare miglioramenti ad altre classi. Ipotizziamo che la risoluzione tetraedrica iniziale sia già sufficiente per catturare la geometria dettagliata di Sedie e Auto, e quindi la suddivisione non possa fornire ulteriori miglioramenti. Ablazione della Suddivisione Volumetrica 2 Ablazione di Diverse Risoluzioni di Immagine Analizziamo l'effetto della risoluzione dell'immagine di addestramento nella Tab. . Come previsto, un aumento della risoluzione dell'immagine migliora le prestazioni in termini di FID e qualità della forma, poiché la rete può vedere più dettagli, che spesso non sono disponibili nelle immagini a bassa risoluzione. Ciò corrobora l'importanza dell'addestramento con risoluzione di immagine più elevata, che spesso è difficile da sfruttare per i metodi basati su campi impliciti. 3 4.3 Applicazioni 4.3.1 Generazione di Materiali per Effetti di Illuminazione Dipendenti dalla Vista GET3D può essere facilmente esteso per generare anche materiali superficiali direttamente utilizzabili nei moderni motori grafici. In particolare, seguiamo il diffusamente utilizzato BRDF Disney [ , ] e descriviamo i materiali in termini di colore di base (R3), metallicità (R) e rugosità (R). Di conseguenza, riutilizziamo il nostro generatore di texture per produrre ora un campo di riflettanza a 5 canali (invece di soli RGB). Per facilitare il rendering differenziabile dei materiali, adottiamo una pipeline di rendering differito efficiente basata su gaussiane sferiche (SG) [ ]. Nello specifico, renderizziamo il campo di riflettanza in un G-buffer e campioniamo casualmente un'immagine HDR da un set di panorami HDR outdoor del mondo reale Slight = { } , dove ∈ R32×7 è ottenuto adattando 32 lobi SG a ciascun panorama. Il renderer SG [ ] utilizza quindi la telecamera per renderizzare un'immagine RGB con effetti di illuminazione dipendenti dalla vista, che forniamo al discriminatore durante l'addestramento. Notare che GET3D non richiede supervisione sui materiali durante l'addestramento e apprende a generare materiali scomposti in modo non supervisionato. 6 32 12 LSG K LSG 12 c Forniamo risultati qualitativi dei materiali superficiali generati nella Fig. . Nonostante sia non supervisionato, GET3D scopre interessanti decomposizioni dei materiali, ad esempio, le finestre sono previste correttamente con un valore di rugosità inferiore per essere più lucide rispetto alla carrozzeria dell'auto, e la carrozzeria dell'auto viene scoperta come più dielettrica mentre il finestrino è più metallico. I materiali generati ci consentono di produrre risultati realistici di ri-illuminazione, che possono tenere conto di complessi effetti speculari in diverse condizioni di illuminazione. 8 4.3.2 Sintesi 3D Guidata da Testo Similmente alle GAN di immagini, GET3D supporta anche la sintesi di contenuti 3D guidata da testo attraverso il fine-tuning di un modello pre-addestrato sotto la guida di CLIP [ ]. Notare che il nostro risultato di sintesi finale è una mesh 3D texturizzata. A tal fine, seguiamo il design a doppio generatore di styleGAN-NADA [ ], in cui vengono adottati una copia addestrabile e una copia congelata del generatore pre-addestrato. Durante l'ottimizzazione, e renderizzano entrambe immagini da 16 viste di telecamera casuali. Dato un query di testo, campioniamo 500 coppie di vettori di rumore 1 e 2. Per ogni campione, ottimizziamo i parametri di per minimizzare la perdita CLIP direzionale [ ] (le etichette di testo sorgente sono "auto", "animale" e "casa" per le categorie corrispondenti), e selezioniamo i campioni con la perdita minima. Per accelerare questo processo, eseguiamo prima un piccolo numero di passaggi di ottimizzazione per i 500 campioni, quindi scegliamo i primi 50 campioni con le perdite più basse ed eseguiamo l'ottimizzazione per 300 passaggi. I risultati e il confronto con un metodo di stilizzazione di mesh guidato da testo SOTA, Text2Mesh [ ], sono forniti nella Fig. . Notare che [ ] richiede una mesh della forma come input per il metodo. Forniamo le nostre mesh generate dal generatore congelato come mesh di input ad esso. Poiché necessita di vertici di mesh densi per sintetizzare dettagli superficiali con spostamenti dei vertici, suddivide ulteriormente le mesh di input con suddivisione del punto medio per garantire che ogni mesh abbia in media 50k-150k vertici. 56 21 Gt Gf Gt Gf z z Gt 21 44 9 44 5 Conclusione Abbiamo introdotto GET3D, un nuovo modello generativo 3D in grado di sintetizzare mesh 3D texturizzate di alta qualità con topologia arbitraria. GET3D è addestrato utilizzando solo immagini 2D come supervisione. Abbiamo dimostrato sperimentalmente miglioramenti significativi nella generazione di forme 3D rispetto ai metodi all'avanguardia precedenti su più categorie. Speriamo che questo lavoro ci porti un passo più vicini alla democratizzazione della creazione di contenuti 3D tramite IA. Sebbene GET3D compia un passo significativo verso un modello generativo 3D praticamente utile di forme 3D texturizzate, ha ancora alcune limitazioni. In particolare, ci affidiamo ancora a silhouette 2D e alla conoscenza della distribuzione della telecamera durante l'addestramento. Di conseguenza, GET3D è stato finora valutato solo su dati sintetici. Un'estensione promettente potrebbe utilizzare i progressi nella segmentazione di istanze e nella stima della posa della telecamera per mitigare questo problema ed estendere GET3D ai dati del mondo reale. GET3D è anche addestrato per categoria; estenderlo a più categorie in futuro potrebbe aiutarci a rappresentare meglio la diversità inter-categoria. Limitazioni Abbiamo proposto un nuovo modello generativo 3D che genera mesh 3D texturizzate, che possono essere prontamente importate nei motori grafici attuali. Il nostro modello è in grado di generare forme con topologia arbitraria, texture di alta qualità e ricchi dettagli geometrici, spianando la strada alla democratizzazione degli strumenti di IA per la creazione di contenuti 3D. Come tutti i modelli di machine learning, GET3D è anche incline ai bias introdotti nei dati di addestramento. Pertanto, è necessario prestare molta attenzione quando si trattano applicazioni sensibili, come la generazione di corpi umani 3D, poiché GET3D non è progettato per queste applicazioni. Non raccomandiamo l'uso di GET3D se la privacy o il riconoscimento errato potrebbero portare a un potenziale uso improprio o ad altre applicazioni dannose. Invece, incoraggiamo i professionisti a ispezionare attentamente e a rimuovere i bias dai dataset prima di addestrare il nostro modello per rappresentare una distribuzione equa e ampia di possibili tonalità di pelle, razze o identità di genere. Impatto più Ampio 6 Dichiarazione di Finanziamento Questo lavoro è stato finanziato da NVIDIA. Jun Gao, Tianchang Shen, Zian Wang e Wenzheng Chen riconoscono ulteriori entrate sotto forma di borse di studio studentesche dall'Università di Toronto e dal Vector Institute, che non sono a supporto diretto di questo lavoro. Riferimenti [1] Autodesk Maya, . Accesso: 2022-05-19. https://www.autodesk.com/products/maya/overview [2] Renderpeople, . Accesso: 2022-05-19. http://https://renderpeople.com/ [3] Sketchfab, . Accesso: 2022-05-19. https://sketchfab.com/ [4] Turbosquid by Shutterstock, . Accesso: 2022-05-19. https://www.turbosquid.com/ [5] Panos Achlioptas, Olga Diamanti, Ioannis Mitliagkas e Leonidas Guibas. Learning representations and generative models for 3d point clouds. In , pagine 40–49. PMLR, 2018. International conference on machine learning [6] Brent Burley e Walt Disney Animation Studios. Physically-based shading at disney. In , volume 2012, pagine 1–7. vol. 2012, 2012. ACM SIGGRAPH [7] Eric Chan, Marco Monteiro, Petr Kellnhofer, Jiajun Wu e Gordon Wetzstein. pi-gan: Periodic implicit generative adversarial networks for 3d-aware image synthesis. In , 2021. Proc. CVPR [8] Eric R Chan, Connor Z Lin, Matthew A Chan, Koki Nagano, Boxiao Pan, Shalini De Mello, Orazio Gallo, Leonidas J Guibas, Jonathan Tremblay, Sameh Khamis, et al. Efficient geometry-aware 3d generative adversarial networks. In , pagine 16123–16133, 2022. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition [9] Angel X Chang, Thomas Funkhouser, Leonidas Guibas, Pat Hanrahan, Qixing Huang, Zimo Li, Silvio Savarese, Manolis Savva, Shuran Song, Hao Su, et al. Shapenet: An information-rich 3d model repository. , 2015. arXiv preprint arXiv:1512.03012 [10] Ding-Yun Chen, Xiao-Pei Tian, Yu-Te Shen e Ming Ouhyoung. On visual similarity based 3d model retrieval. In , volume 22, pagine 223–232. Wiley Online Library, 2003. Computer graphics forum [11] Wenzheng Chen, Jun Gao, Huan Ling, Edward Smith, Jaakko Lehtinen, Alec Jacobson e Sanja Fidler. Learning to predict 3d objects with an interpolation-based differentiable renderer. In , 2019. Advances In Neural Information Processing Systems [12] Wenzheng Chen, Joey Litalien, Jun Gao, Zian Wang, Clement Fuji Tsang, Sameh Khalis, Or Litany e Sanja Fidler. DIB-R++: Learning to predict lighting and material with a hybrid differentiable renderer. In , 2021. Advances in Neural Information Processing Systems (NeurIPS) [13] Yanqin Chen, Xin Jin e Qionghai Dai. Distance measurement based on light field geometry and ray tracing. , 25(1):59–76, 2017. Optics Express [14] Zhiqin Chen e Hao Zhang. Learning implicit fields for generative shape modeling. , 2019. Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR) [15] Blender Online Community. . Blender Foundation, Stichting Blender Foundation, Amsterdam, 2018. Blender - a 3D modelling and rendering package [16] Prafulla Dhariwal e Alexander Nichol. Diffusion models beat gans on image synthesis. , 34, 2021. Advances in Neural Information Processing Systems [17] Akio Doi e Akio Koide. An efficient method of triangulating equi-valued surfaces by using tetrahedral cells. , 74(1):214–224, 1991. IEICE TRANSACTIONS on Information and Systems [18] Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, et al. An image is worth 16x16 words: Transformers for image recognition at scale. , 2020. arXiv preprint arXiv:2010.11929 [19] Patrick Esser, Robin Rombach e Bjorn Ommer. Taming transformers for high-resolution image synthesis. In , pagine 12873–12883, 2021. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition [20] Matheus Gadelha, Subhransu Maji e Rui Wang. 3d shape induction from 2d views of multiple objects. In , pagine 402–411. IEEE, 2017. 2017 International Conference on 3D Vision (3DV) [21] Rinon Gal, Or Patashnik, Haggai Maron, Amit H Bermano, Gal Chechik e Daniel Cohen-Or. Stylegan-nada: Clip-guided domain adaptation of image generators. , 41(4):1–13, 2022. ACM Transactions on Graphics (TOG) [22] Jun Gao, Wenzheng Chen, Tommy Xiang, Clement Fuji Tsang, Alec Jacobson, Morgan McGuire e Sanja Fidler. Learning deformable tetrahedral meshes for 3d reconstruction. In , 2020. Advances In Neural Information Processing Systems [23] Jun Gao, Chengcheng Tang, Vignesh Ganapathi-Subramanian, Jiahui Huang, Hao Su e Leonidas J Guibas. Deepspline: Data-driven reconstruction of parametric curves and surfaces. , 2019. arXiv preprint arXiv:1901.03781 [24] Jun Gao, Zian Wang, Jinchen Xuan e Sanja Fidler. Beyond fixed grid: Learning geometric image representation with a deformable grid. In , pagine 108–125. Springer, 2020. European Conference on Computer Vision [25] Jiatao Gu, Lingjie Liu, Peng Wang e Christian Theobalt. Stylenerf: A style-based 3d aware generator for high-resolution image synthesis. In , 2022. International Conference on Learning Representations [26] Zekun Hao, Arun Mallya, Serge Belongie e Ming-Yu Liu. GANcraft: Unsupervised 3D Neural Rendering of Minecraft Worlds. In , 2021. ICCV [27] Philipp Henzler, Niloy J. Mitra e Tobias Ritschel. Escaping plato’s cave: 3d shape from adversarial rendering. In , Ottobre 2019. The IEEE International Conference on Computer Vision (ICCV) [28] Martin Heusel, Hubert Ramsauer, Thomas Unterthiner, Bernhard Nessler e Sepp Hochreiter. Gans trained by a two time-scale update rule converge to a local nash equilibrium. , 30, 2017. Advances in neural information processing systems [29] Xun Huang, Arun Mallya, Ting-Chun Wang e Ming-Yu Liu. Multimodal conditional image synthesis with product-of-experts GANs. In , 2022. ECCV [30] Moritz Ibing, Gregor Kobsik e Leif Kobbelt. Octree transformer: Autoregressive 3d shape generation on hierarchically structured sequences. , 2021. arXiv preprint arXiv:2111.12480 [31] James T. Kajiya. The rendering equation. SIGGRAPH ’86, pagine 143–150, 1986. [32] Brian Karis e Epic Games. Real shading in unreal engine 4. , 4(3), 2013. Proc. Physically Based Shading Theory Practice [33] Tero Karras, Miika Aittala, Samuli Laine, Erik Härkönen, Janne Hellsten, Jaakko Lehtinen e Timo Aila. Alias-free generative adversarial networks. In , 2021. Proc. NeurIPS [34] Tero Karras, Samuli Laine e Timo Aila. A style-based generator architecture for generative adversarial networks. In , pagine 4401–4410, 2019. Proceedings of the IEEE/CVF conference on computer vision and pattern recognition [35] Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen e Timo Aila. Analyzing and improving the image quality of StyleGAN. In , 2020. Proc. CVPR [36] Michael Kazhdan, Matthew Bolitho e Hugues Hoppe. Poisson surface reconstruction. In , volume 7, 2006. Proceedings of the fourth Eurographics symposium on Geometry processing [37] Samuli Laine, Janne Hellsten, Tero Karras, Yeongho Seol, Jaakko Lehtinen e Timo Aila. Modular primitives for high-performance differentiable rendering. , 39(6), 2020. ACM Transactions on Graphics [38] Daiqing Li, Junlin Yang, Karsten Kreis, Antonio Torralba e Sanja Fidler. Semantic segmentation with generative models: Semi-supervised learning and strong out-of-domain generalization. In , 2021. Conference on Computer Vision and Pattern Recognition (CVPR) [39] William E Lorensen e Harvey E Cline. Marching cubes: A high resolution 3d surface construction algorithm. , 21(4):163–169, 1987. ACM siggraph computer graphics [40] Sebastian Lunz, Yingzhen Li, Andrew Fitzgibbon e Nate Kushman. Inverse graphics gan: Learning to generate 3d shapes from unstructured 2d data. , 2020. arXiv preprint arXiv:2002.12674 [41] Andrew Luo, Tianqin Li, Wen-Hao Zhang e Tai Sing Lee. Surfgen: Adversarial 3d shape synthesis with explicit surface discriminators. In , pagine 16238–16248, 2021. Proceedings of the IEEE/CVF International Conference on Computer Vision [42] Lars Mescheder, Sebastian Nowozin e Andreas Geiger. Which training methods for gans do actually converge? In , 2018. International Conference on Machine Learning (ICML) [43] Lars Mescheder, Michael Oechsle, Michael Niemeyer, Sebastian Nowozin e Andreas Geiger. Occupancy networks: Learning 3d reconstruction in function space. In , pagine 4460–4470, 2019. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition [44] Oscar Michel, Roi Bar-On, Richard Liu, Sagie Benaim e Rana Hanocka. Text2mesh: Text-driven neural stylization for meshes. In , pagine 13492–13502, 2022. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition [45] Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik, Jonathan T. Barron, Ravi Ramamoorthi e Ren Ng. Nerf: Representing scenes as neural radiance fields for view synthesis. In , 2020. ECCV [46] Kaichun Mo, Paul Guerrero, Li Yi, Hao Su, Peter Wonka, Niloy Mitra e Leonidas Guibas. Structurenet: Hierarchical graph networks for 3d shape generation. , 38(6):Articolo 242, 2019. ACM Transactions on Graphics (TOG), Siggraph Asia 2019 [47] Jacob Munkberg, Jon Hasselgren, Tianchang Shen, Jun Gao, Wenzheng Chen, Alex Evans, Thomas Müller e Sanja Fidler. Extracting triangular 3d models, materials, and lighting from images. In , pagine 8280–8290, 2022. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition [48] Charlie Nash, Yaroslav Ganin, S. M. Ali Eslami e Peter W. Battaglia. Polygen: An autoregressive generative model of 3d meshes. , 2020. ICML [49] Michael Niemeyer e Andreas Geiger. Giraffe: Representing scenes as compositional generative neural feature fields. In , 2021. Proc. IEEE Conf. on Computer Vision and Pattern Recognition (CVPR) [50] Michael Oechsle, Lars Mescheder, Michael Niemeyer, Thilo Strauss e Andreas Geiger. Texture fields: Learning texture representations in function space. In , pagine 4531–4540, 2019. Proceedings of the IEEE/CVF International Conference on Computer Vision [51] Roy Or-El, Xuan Luo, Mengyi Shan, Eli Shechtman, Jeong Joon Park e Ira Kemelmacher-Shlizerman. Stylesdf: High-resolution 3d-consistent image and geometry generation. In , pagine 13503–13513, 2022. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition [52] Taesung Park, Ming-Yu Liu, Ting-Chun Wang e Jun-Yan Zhu. Semantic image synthesis with spatially-adaptive normalization. In , 2019. Proceedings of the IEEE Conference on Computer Vision and Pattern Recogni-tion [53] Dario Pavllo, Jonas Kohler, Thomas Hofmann e Aurelien Lucchi. Learning generative models of textured 3d meshes from real-world images. In , 2021. IEEE/CVF International Conference on Computer Vision (ICCV) [54] Dario Pavllo, Graham Spinks, Thomas Hofmann, Marie-Francine Moens e Aurelien Lucchi. Convolu-tional generation of textured 3d meshes. In Advances