Forfattere: 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) Abstrakt Da flere industrier bevæger sig mod modellering af massive 3D-virtuelle verdener, bliver behovet for værktøjer til indholdsskabelse, der kan skaleres med hensyn til mængde, kvalitet og mangfoldighed af 3D-indhold, tydeligt. I vores arbejde sigter vi mod at træne højtydende 3D-generative modeller, der syntetiserer teksturerede masker, som direkte kan forbruges af 3D-renderingmotorer, og dermed straks kan bruges i nedstrømsapplikationer. Tidligere arbejder om 3D-generativ modellering mangler enten geometriske detaljer, er begrænset i den masketopologi, de kan producere, understøtter typisk ikke teksturer, eller anvender neurale rendrere i synteseprocessen, hvilket gør deres brug i almindelig 3D-software ikke-triviel. I dette arbejde introducerer vi GET3D, en enerativ model, der direkte genererer ksplicit ekstureret -mesh med kompleks topologi, rige geometriske detaljer og teksturer med høj troværdighed. Vi bygger bro over den seneste succes inden for differentierbar overflademodellering, differentierbar rendering samt 2D Generative Adversarial Networks (GANs) til at træne vores model ud fra 2D-billedsamlinger. GET3D er i stand til at generere højkvalitets 3D-teksturerede masker, lige fra biler, stole, dyr, motorcykler og menneskelige karakterer til bygninger, hvilket opnår betydelige forbedringer i forhold til tidligere metoder. Vores projektside: G E T 3D https://nv-tlabs.github.io/GET3D 1 Introduktion Forskellige, højkvalitets 3D-indhold bliver stadig vigtigere for flere industrier, herunder spil, robotteknik, arkitektur og sociale platforme. Manuel oprettelse af 3D-aktiver er dog meget tidskrævende og kræver specifik teknisk viden samt kunstneriske modelleringsevner. En af de største udfordringer er således skala – mens man kan finde 3D-modeller på 3D-markedspladser som Turbosquid [ ] eller Sketchfab [ ], tager det stadig betydelig kunstnertid at oprette mange 3D-modeller for at f.eks. at befolke et spil eller en film med en skare af karakterer, der alle ser forskellige ud. 4 3 For at lette indholdsskabelse-processen og gøre den tilgængelig for en række (novice) brugere, er generative 3D-netværk, der kan producere højkvalitets og forskelligartede 3D-aktiver, for nylig blevet et aktivt forskningsområde [ , , , , , , , , , , ]. For at være praktisk anvendelige til nuværende anvendelser i den virkelige verden bør 3D-generative modeller ideelt set opfylde følgende krav: De bør have kapacitet til at generere former med detaljeret geometri og vilkårlig topologi, Outputtet bør være en tekstureret maske, hvilket er en primær repræsentation, der bruges af standard grafiske softwarepakker som Blender [ ] og Maya [ ], og Vi bør kunne udnytte 2D-billeder til supervision, da de er bredere tilgængelige end eksplicitte 3D-former. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Tidligere arbejde med 3D-generativ modellering har fokuseret på delmængder af ovenstående krav, men ingen metode til dato opfylder dem alle (Tabel ). Metoder, der genererer 3D-punkt-skyer [ , 68, 75], producerer typisk ikke teksturer og skal konverteres til en maske i efterbehandlingen. 1 5 Metoder, der genererer voxels, mangler ofte geometriske detaljer og producerer ikke tekstur [ , , , ]. Generative modeller baseret på neurale felter [ , ] fokuserer på at udtrække geometri, men ignorerer tekstur. De fleste af disse kræver også eksplicit 3D-supervision. Endelig kræver metoder, der direkte producerer teksturerede 3D-masker [ , ], typisk foruddefinerede formskabeloner og kan ikke generere former med kompleks topologi og variabel genus. 66 20 27 40 43 14 54 53 For nylig har hurtige fremskridt inden for neurale volumen-rendering [ ] og 2D Generative Adversarial Networks (GANs) [ , , , , ] ført til fremkomsten af 3D-bevidst billedsyntese [ , , , , , ]. Denne linje af arbejde sigter dog mod at syntetisere multi-view konsistente billeder ved hjælp af neurale rendering i synteseprocessen og garanterer ikke, at meningsfulde 3D-former kan genereres. Mens en maske potentielt kan opnås fra den underliggende neurale felt-repræsentation ved hjælp af marching cube-algoritmen [ ], er det ikke trivielt at udtrække den tilsvarende tekstur. 45 34 35 33 29 52 7 57 8 49 51 25 39 I dette arbejde introducerer vi en ny tilgang, der sigter mod at opfylde alle kravene til en praktisk anvendelig 3D-generativ model. Specifikt foreslår vi GET3D, en enerativ model for 3D-former, der direkte producerer ksplicit ekstureret -mesh med høj geometrisk og teksturmæssig detalje og vilkårlig masketopologi. Kernen i vores tilgang er en generativ proces, der anvender en differentierbar *eksplicit* overfladeudvindingsmetode [ ] og en differentierbar renderingsteknik [ , ]. Den førstnævnte gør det muligt for os direkte at optimere og producere teksturerede 3D-masker med vilkårlig topologi, mens den sidstnævnte tillader os at træne vores model med 2D-billeder og dermed udnytte kraftfulde og modne diskriminatorer udviklet til 2D-billedsyntese. Da vores model direkte genererer masker og bruger en højeffektiv (differentierbar) grafik-renderer, kan vi nemt skalere vores model til at træne med billedopløsning så høj som 1024 × 1024, hvilket giver os mulighed for at lære højkvalitets geometriske og teksturmæssige detaljer. G E T 3D 60 47 37 Vi demonstrerer state-of-the-art ydeevne for ubetinget 3D-formgenerering på flere kategorier med kompleks geometri fra ShapeNet [ ], Turbosquid [ ] og Renderpeople [ ], såsom stole, motorcykler, biler, menneskelige karakterer og bygninger. Med eksplicit maske som output-repræsentation er GET3D også meget fleksibel og kan nemt tilpasses andre opgaver, herunder: læring til at generere dekomponeret materiale og visningsafhængige lyseffekter ved hjælp af avanceret differentierbar rendering [ ], uden supervision, tekst-guidet 3D-formgenerering ved hjælp af CLIP [ ] embedding. 9 4 2 (a) 12 (b) 56 2 Relateret arbejde Vi gennemgår de seneste fremskridt inden for 3D-generative modeller for geometri og udseende, samt 3D-bevidst generativ billedsyntese. I de seneste år har 2D-generative modeller opnået fotorealistisk kvalitet i syntese af billeder i høj opløsning [ , , , , , , ]. Disse fremskridt har også inspireret forskning i 3D-indholdsgenerering. Tidlige tilgange sigtede mod direkte at udvide 2D CNN-generatorer til 3D voxel-gitre [ , , , , ], men den høje hukommelsesfodaftryk og beregningsmæssige kompleksitet af 3D-konvolutioner hæmmer genereringsprocessen i høj opløsning. Som et alternativ har andre arbejder udforsket punkt-skyer [ , , , ], implicitte [ , ] eller octree [ ] repræsentationer. Disse arbejder fokuserer dog primært på at generere geometri og ignorerer udseende. Deres output-repræsentationer skal også efterbehandles for at gøre dem kompatible med standard grafiske motorer. 3D Generative Modeller 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Mere lig vores arbejde, genererer Textured3DGAN [ , ] og DIBR [ ] teksturerede 3D-masker, men de formulerer genereringen som en deformation af en skabelonmaske, hvilket forhindrer dem i at generere kompleks topologi eller former med varierende genus, hvilket vores metode kan. PolyGen [ ] og SurfGen [ ] kan producere masker med vilkårlig topologi, men syntetiserer ikke teksturer. 54 53 11 48 41 Inspireret af succesen med neurale volumen-rendering [ ] og implicitte repræsentationer [ , ], er nyligt arbejde begyndt at tackle problemet med 3D-bevidst billedsyntese [ , , , , , , , , , ]. Neurale volumen-rendering-netværk er dog typisk langsomme at forespørge, hvilket fører til lange træningstider [ , ] og genererer billeder med begrænset opløsning. GIRAFFE [ ] og StyleNerf [ ] forbedrer trænings- og renderingseffektiviteten ved at udføre neurale rendering i en lavere opløsning og derefter opskalere resultaterne med en 2D CNN. Ydeevneforbedringen kommer dog på bekostning af reduceret multi-view konsistens. Ved at bruge en dobbelt-diskriminator kan EG3D [ ] delvist afhjælpe dette problem. Ikke desto mindre er det en ikke-triviel opgave at udtrække en tekstureret overflade fra metoder baseret på neurale rendering. I modsætning hertil producerer GET3D direkte teksturerede 3D-masker, der let kan bruges i standard grafiske motorer. 3D-bevidst Generativ Billedsyntese 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metode Vi præsenterer nu vores GET3D-rammeværk til syntese af teksturerede 3D-former. Vores genereringsproces er opdelt i to dele: en geometri-gren, der differentierbart producerer en overflademanek af vilkårlig topologi, og en tekstur-gren, der producerer et teksturfelt, som kan forespørges på overfladepunkter for at producere farver. Sidstnævnte kan udvides til andre overfladeegenskaber, f.eks. materialer (Afsnit ). Under træning bruges en effektiv differentierbar rasterizer til at rendere den resulterende teksturerede maske til 2D-billeder i høj opløsning. Hele processen er differentierbar, hvilket muliggør adversær træning fra billeder (med masker, der indikerer et objekt af interesse) ved at propagere gradienter fra 2D-diskriminatoren til begge generator-grene. Vores model er illustreret i Fig. . I det følgende introducerer vi først vores 3D-generator i afsnit , før vi fortsætter til den differentierbare rendering og tabsfunktoner i afsnit . 4.3.1 2 3.1 3.2 3.1 Generativ model for 3D-teksturerede masker Vi sigter mod at lære en 3D-generator = ( ) til at mappe en prøve fra en Gaussisk fordeling M, E G z ∈ N (0*,* ) til en maske med tekstur . z I M E Da den samme geometri kan have forskellige teksturer, og den samme tekstur kan anvendes på forskellige geometrier, sampler vi to tilfældige inputvektorer 1 ∈ R512 og 2 ∈ R512. Efter StyleGAN [ , , ] bruger vi ikke-lineære mappingnetværk geo og tex til at mappe 1 og 2 til mellemliggende latente vektorer 1 = geo( 1) og 2 = tex( 2), som yderligere bruges til at producere *styles*, der styrer genereringen af 3D-former og tekstur, henholdsvis. Vi introducerer formelt generatoren til geometri i afsnit. og tekstur-generatoren i afsnit. . z z 34 35 33 f f z z w f z w f z 3.1.1 3.1.2 3.1.1 Geometri-generator Vi designer vores geometri-generator til at inkorporere DMTet [ ], en nyligt foreslået differentierbar overfladerepræsentation. DMTet repræsenterer geometri som et signeret afstandsfelt (SDF) defineret på et deformerbart tetraedrisk gitter [ , ], hvorfra overfladen differentierbart kan genvindes gennem marching tetrahedra [ ]. Deformation af gitteret ved at flytte dets hjørner resulterer i en bedre udnyttelse af dets opløsning. Ved at adoptere DMTet til overfladeudvinding kan vi producere eksplicitte masker med vilkårlig topologi og genus. Vi giver herefter en kort oversigt over DMTet og henviser læseren til den oprindelige artikel for yderligere detaljer. 60 22 24 17 Lad ( ) betegne hele 3D-rummet, som objektet befinder sig i, hvor er hjørnerne i det tetraedriske gitter . Hvert tetraeder ∈ er defineret ved hjælp af fire hjørner { }, med ∈ {1*, . . . , K*}, hvor er det samlede antal tetraedre, og ∈ ∈ R3. Ud over sine 3D-koordinater indeholder hvert hjørne SDF-værdien ∈ R og deformationen ∆ ∈ R3 af hjørnet fra dets oprindelige kanoniske koordinat. Denne repræsentation tillader genvinding af den eksplicitte maske gennem differentierbar marching tetrahedra [ ], hvor SDF-værdier i kontinuerligt rum beregnes ved en barycentrisk interpolation af deres værdi på de deformerede hjørner ′ = + ∆ . 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 Vi mapper 1 ∈ R512 til SDF-værdier og deformationer ved hvert hjørne gennem en række betingede 3D konvolutionelle og fuldt forbundne lag. Specifikt bruger vi først 3D konvolutionelle lag til at generere et funktionsvolumen betinget af 1. Vi forespørger derefter funktionen ved hvert hjørne ∈ ved hjælp af trilineær interpolation og sender det ind i MLPs, der producerer SDF-værdien og deformationen ∆ . I tilfælde, hvor modellering i høj opløsning er nødvendig (f.eks. motorcykel med tynde strukturer i hjulene), bruger vi yderligere volumenopdeling efter [ ]. Netværksarkitektur w v i w v i VT si v i 60 Efter at have opnået og ∆ for alle hjørnerne, bruger vi den differentierbare marching tetrahedra-algoritme til at udtrække den eksplicitte maske. Marching tetrahedra bestemmer overfladetopologien inden for hvert tetraeder baseret på tegnene af . Specifikt udtrækkes en maskeflade, når sign( ) /= sign( ), hvor betegner indekserne af hjørnerne i tetraederets kant, og hjørnerne af den pågældende flade bestemmes ved en lineær interpolation som mi,j = v 0 i sj−v 0 j si sj−si . Bemærk, at ovenstående ligning kun evalueres, når si 6= sj , og er derfor differentierbar, og gradienten fra mi,j kan back-propagere ind i SDF-værdierne si og deformationerne ∆vi . Med denne repræsentation kan former med vilkårlig topologi nemt genereres ved at forudsige forskellige tegn af si . Differentierbar Maskeudtrækning si v i si si sj i, j m i,j 3.1.2 Tekstur-generator Direkte generering af et teksturkort, der er konsistent med output-masken, er ikke trivielt, da den genererede form kan have en vilkårlig genus og topologi. Vi parametriserer derfor teksturen som et teksturfelt [ ]. 50 Specifikt modellerer vi teksturfeltet med en funktion , der mapper 3D-placeringen af et overfladepunkt ∈ R3, betinget af 2, til RGB-farven ∈ R3 på den placering. Da teksturfeltet afhænger af geometri, betinger vi yderligere denne mapping på geometri-latent-koden 1, således at = ( *,* 1 ⊕ 2), hvor ⊕ betegner konkatenering. ft p w c w c ft p w w Vi repræsenterer vores teksturfelt ved hjælp af en tri-plane repræsentation, som er effektiv og udtryksfuld til at rekonstruere 3D-objekter [ ] og generere 3D-bevidste billeder [ ]. Specifikt følger vi [ , ] og bruger et betinget 2D konvolutionelt neuralt netværk til at mappe den latente kode 1 ⊕ 2 til tre akse-justerede ortogonale funktionsplaner med størrelsen × × ( × 3), hvor = 256 betegner den rumlige opløsning og = 32 antallet af kanaler. Netværksarkitektur 55 8 8 35 w w N N C N C Givet funktionsplanerne kan funktionsvektoren f t ∈ R 32 af et overfladepunkt p genvindes som f t = P e ρ(πe(p)), hvor πe(p) er projektionen af punktet p på funktionsplanet e og ρ(·) betegner bilinear interpolation af funktionerne. Et yderligere fuldt forbundet lag bruges derefter til at mappe den aggregerede funktionsvektor f t til RGB-farven c. Bemærk, at i modsætning til andre arbejder om 3D-bevidst billedsyntese, der også bruger en neurale felt-repræsentation, behøver vi kun at sample teksturfeltet på placeringerne af overfladepunkterne (i modsætning til tætte samples langs en stråle). Dette reducerer beregningskompleksiteten for rendering af billeder i høj opløsning markant og garanterer at generere multi-view konsistente billeder pr. konstruktion. 3.2 Differentierbar Rendering og Træning For at supervisere vores model under træning, henter vi inspiration fra Nvdiffrec [ ], der udfører multi-view 3D objekt-rekonstruktion ved at bruge en differentierbar renderer. Specifikt render vi den udvundne 3D-maske og teksturfeltet til 2D-billeder ved hjælp af en differentierbar renderer [ ] og superviserer vores netværk med en 2D-diskriminator, som forsøger at skelne billedet fra et ægte objekt eller renderet fra det genererede objekt. 47 37 Vi antager, at kameraprofilen C, der blev brugt til at erhverve billederne i datasættet, er kendt. For at rendere de genererede former sampler vi tilfældigt et kamera fra C og anvender en højeffektiviseret differentierbar rasterizer Nvdiffrast [ ] til at rendere 3D-masken til en 2D-silhuet samt et billede, hvor hver pixel indeholder koordinaterne for det tilsvarende 3D-punkt på maskens overflade. Disse koordinater bruges yderligere til at forespørge teksturfeltet for at opnå RGB-værdierne. Da vi opererer direkte på den udvundne maske, kan vi rendere billeder i høj opløsning med høj effektivitet, hvilket giver vores model mulighed for at blive trænet med billedopløsning op til 1024×1024. Differentierbar Rendering c 37 Vi træner vores model ved hjælp af et adversært mål. Vi adopterer diskriminatorarkitekturen fra StyleGAN [ ] og bruger det samme ikke-saturerende GAN-mål med R1-regularisering [ ]. Vi finder empirisk, at brug af to separate diskriminatorer, en for RGB-billeder og en anden for silhuetter, giver bedre resultater end en enkelt diskriminator, der opererer på begge. Lad betegne diskriminatoren, hvor enten er et RGB-billede eller en silhuet. Det adversære mål defineres derefter som følger: Diskriminator & Mål 34 42 Dx x hvor ( ) er defineret som ( ) = − log(1 +exp(− )), er fordelingen af ægte billeder, betegner rendering, og er en hyperparameter. Da er differentierbar, kan gradienterne back-propagere fra 2D-billeder til vores 3D-generatorer. g u g u u px R λ R For at fjerne interne flydende flader, der ikke er synlige i nogen af visningerne, regulariserer vi yderligere geometri-generatoren med et krydsentropi-tab defineret mellem SDF-værdierne af nabohjørnerne [ ]: Regularisering 47 hvor betegner binært krydsentropi-tab og betegner sigmoid-funktionen. Summen i ligning er defineret over sættet af unikke kanter S i det tetraedriske gitter, for hvilke sign( ) /= sign( ). H σ 2 e si sj Den samlede tabsfunkton er derefter defineret som: hvor er en hyperparameter, der styrer graden af regularisering. µ