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 Efterhånds som 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 performante 3D generative modeller, der syntetiserer teksturerede masker, som direkte kan forbruges af 3D-gengivelsesmotorer, og dermed umiddelbart anvendelige i downstream-applikationer. Tidligere arbejder om 3D generativ modellering mangler enten geometriske detaljer, er begrænsede i den masketopologi, de kan producere, understøtter typisk ikke teksturer, eller anvender neurale gengivere 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 eksturerede masker med kompleks topologi, rige geometriske detaljer og høj-fidelity teksturer. Vi bygger på nylige succeser inden for differentiabel overfladermodellering, differentiabel gengivelse samt 2D Generative Adversarial Networks for at træne vores model fra 2D-billedsamlinger. GET3D er i stand til at generere 3D-teksturerede masker af høj kvalitet, lige fra biler, stole, dyr, motorcykler og menneskelige figurer til bygninger, hvilket opnår markante forbedringer i forhold til tidligere metoder. Vores projektside: G E T 3D https://nv-tlabs.github.io/GET3D 1 Introduktion Mangfoldigt 3D-indhold af høj kvalitet bliver stadig vigtigere for flere industrier, herunder spil, robotteknologi, arkitektur og sociale platforme. Manuel oprettelse af 3D-aktiver er dog meget tidskrævende og kræver specifik teknisk viden samt kunstneriske modelleringsfærdigheder. En af de største udfordringer er derfor skala – mens man kan finde 3D-modeller på 3D-markedspladser som Turbosquid [ ] eller Sketchfab [ ], tager det stadig en betydelig mængde kunstnertid at skabe mange 3D-modeller til at f.eks. befolkke et spil eller en film med en gruppe figurer, der alle ser forskellige ud. 4 3 For at lette indholdsskabelse og gøre den tilgængelig for en række (novice) brugere er generative 3D-netværk, der kan producere 3D-aktiver af høj kvalitet og mangfoldighed, for nylig blevet et aktivt forskningsområde [ , , , , , , , , , , ]. For at være praktisk anvendelige til nuværende virkelige applikationer bør 3D generative modeller dog 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, som 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 mere bredt 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 hidtil opfylder dem alle (Tab. ). For eksempel producerer metoder, der genererer 3D punkt-skyer [ , 68, 75] typisk ikke teksturer og skal konverteres til en maske i efterbehandling. 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 varierende genus. 66 20 27 40 43 14 54 53 For nylig har hurtige fremskridt inden for neural volumenrendering [ ] og 2D Generative Adversarial Networks (GANs) [ , , , , ] ført til fremkomsten af 3D-bevidst billedsyntese [ , , , , , ]. Dette arbejde sigter dog mod at syntetisere fler-visningskonsistente billeder ved hjælp af neural gengivelse i synteseprocessen og garanterer ikke, at meningsfulde 3D-former kan genereres. Mens en maske potentielt kan opnås fra den underliggende neurale feltrepræsentation ved hjælp af marching cube-algoritmen [ ], er udtrækning af den tilsvarende tekstur ikke triviel. 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 til 3D-former, der direkte producerer ksplicit eksturerede masker med høj geometrisk og teksturdetalje og vilkårlig masketopologi. Kernen i vores tilgang er en generativ proces, der anvender en differentiabel *eksplicit* metode til overfladeudtrækning [ ] og en differentiabel gengivelsesteknik [ , ]. Den første gør det muligt for os direkte at optimere og producere teksturerede 3D masker med vilkårlig topologi, mens den sidstnævnte giver os mulighed for 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 yderst effektiv (differentiabel) grafisk gengiver, kan vi nemt skalere vores model op til træning med billedopløsning så høj som 1024 × 1024, hvilket giver os mulighed for at lære geometriske og teksturdetaljer af høj kvalitet. G E T 3D 60 47 37 Vi demonstrerer state-of-the-art ydeevne til ubetinget 3D-formgenerering på flere kategorier med kompleks geometri fra ShapeNet [ ], Turbosquid [ ] og Renderpeople [ ], såsom biler, stole, motorcykler, menneskelige figurer og bygninger. Med eksplicit maske som outputrepræsentation er GET3D også meget fleksibel og kan nemt tilpasses andre opgaver, herunder: læring til at generere dekomponeret materiale og synsafhængige lyseffekter ved hjælp af avanceret differentiabel gengivelse [ ], uden supervision, tekst-styret 3D-formgenerering ved hjælp af CLIP [ ] embedding. 9 4 2 (a) 12 (b) 56 2 Relateret arbejde Vi gennemgår nylige 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 billedsyntese med høj opløsning [ , , , , , , ]. Disse fremskridt har også inspireret forskning i 3D indholdsskabelse. Tidlige tilgange sigtede mod direkte at udvide 2D CNN-generatorer til 3D voxel-gitre [ , , , , ], men den høje hukommelsesbelastning og beregningsmæssige kompleksitet af 3D konvolutioner hindrer 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 outputrepræ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 succeserne med neural volumenrendering [ ] og implicitte repræsentationer [ , ] er nylige arbejder begyndt at tackle problemet med 3D-bevidst billedsyntese [ , , , , , , , , , ]. Neurale volumenrenderingsnetvæ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 gengivelseseffektiviteten ved at udføre neural gengivelse i en lavere opløsning og derefter opskalere resultaterne med et 2D CNN. Ydeevnegevinsten kommer dog med en reduceret fler-visningskonsistens. Ved at anvende en dobbelt diskriminator kan EG3D [ ] delvist afhjælpe dette problem. Ikke desto mindre er udtrækning af en tekstureret overflade fra metoder baseret på neural gengivelse en ikke-triviel opgave. 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-framework til syntese af teksturerede 3D-former. Vores genereringsproces er opdelt i to dele: en geometri-gren, der differentiabelt producerer en overfladestruktur af vilkårlig topologi, og en teksturgren, der producerer et teksturfelt, som kan forespørges ved overfladepunkterne for at producere farver. Sidstnævnte kan udvides til andre overfladeegenskaber, som f.eks. materialer (Afsnit ). Under træning anvendes en effektiv differentiabel rasterisator til at gengive den resulterende teksturerede maske til 2D billeder med høj opløsning. Hele processen er differentiabel, hvilket muliggør adversarisk 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 går videre til den differentiable gengivelse og tabfunktioner 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 afbilde 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. I tråd med StyleGAN [ , , ] bruger vi derefter ikke-lineære mapping-netværk geo og tex til at afbilde 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 for geometri i afsnit og teksturgeneratoren 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 for nylig foreslået differentiabel overfladerepræsentation. DMTet repræsenterer geometri som et signeret afstands felt (SDF) defineret på et deformerbart tetraedergitter [ , ], hvorfra overfladen differentiabelt kan genvindes gennem marching tetrahedra [ ]. Deformation af gitteret ved at flytte dets knudepunkter resulterer i en bedre udnyttelse af dets opløsning. Ved at anvende DMTet til overfladeudtrækning kan vi producere eksplicitte masker med vilkårlig topologi og genus. Vi giver herefter en kort opsummering af DMTet og henviser læseren til den originale artikel for yderligere detaljer. 60 22 24 17 Lad ( ) betegne hele 3D-rummet, som objektet ligger i, hvor er knudepunkterne i tetraedergitteret . Hvert tetraeder ∈ er defineret ved hjælp af fire knudepunkter { }, med ∈ {1*, . . . , K*}, hvor er det samlede antal tetraedre, og ∈ ∈ R3. Ud over sine 3D-koordinater indeholder hvert knudepunkt SDF-værdien ∈ R og deformationen ∆ ∈ R3 af knudepunktet fra dets oprindelige kanoniske koordinat. Denne repræsentation giver mulighed for at genvinde den eksplicitte maske gennem differentiabel marching tetrahedra [ ], hvor SDF-værdier i kontinuerligt rum beregnes ved barycentrisk interpolation af deres værdi på de deformerede knudepunkter ′ = + ∆ . 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 afbilder 1 ∈ R512 til SDF-værdier og deformationer ved hvert knudepunkt gennem en række betingede 3D konvolutionelle og fuldt forbundne lag. Specifikt bruger vi først 3D konvolutionelle lag til at generere et feature-volumen betinget af 1. Vi forespørger derefter featuren ved hvert knudepunkt ∈ ved hjælp af trilineær interpolation og føder det ind i MLPs, der producerer SDF-værdien og deformationen ∆ . I tilfælde, hvor modellering i høj opløsning er påkrævet (f.eks. motorcykel med tynde strukturer i hjulene), bruger vi yderligere volumenunderopdeling i overensstemmelse med [ ]. Netværksarkitektur w v i w v i VT si v i 60 Efter at have opnået og ∆ for alle knudepunkterne bruger vi den differentiable marching tetrahedra algoritme til at udtrække den eksplicitte maske. Marching tetrahedra bestemmer overfladetopologien inden for hvert tetraeder baseret på tegnene på . Specifikt ekstraheres en maskeflade, når sign( ) /= sign( ), hvor betegner indekserne for knudepunkterne i tetraederets kant, og knudepunkterne for 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 differentiabel, og gradienten fra mi,j kan backpropagere til SDF-værdierne si og deformationerne ∆vi . Med denne repræsentation kan former med vilkårlig topologi nemt genereres ved at forudsige forskellige tegn på si . Differentiabel Maskeudtrækning si v i si si sj i, j m i,j 3.1.2 Tekstur Generator Direkte generering af et tekstur-kort, der er konsistent med outputmasken, er ikke trivielt, da den genererede form kan have et vilkårligt genus og topologi. Vi parametriserer derfor teksturen som et teksturfelt [ ]. 50 Specifikt modellerer vi teksturfeltet med en funktion , der afbilder 3D-placeringen af et overfladepunkt ∈ R3, betinget af 2, til RGB-farven ∈ R3 på den placering. Da teksturfeltet afhænger af geometrien, betinger vi desuden denne afbildning på den geometriske latente kode 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-plan 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 afbilde den latente kode 1 ⊕ 2 til tre akse-alignerede ortogonale funktionsplaner af størrelse × × ( × 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 bilineær interpolation af funktionerne. Et yderligere fuldt forbundet lag bruges derefter til at afbilde 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 neural feltrepræsentation, behøver vi kun at sample teksturfeltet på overfladepunkternes placeringer (i modsætning til tætte sampling langs en stråle). Dette reducerer beregningskompleksiteten for gengivelse af billeder med høj opløsning markant og garanterer generering af fler-visningskonsistente billeder ved konstruktion. 3.2 Differentiabel Gengivelse og Træning For at kunne supervisere vores model under træning, trækker vi inspiration fra Nvdiffrec [ ], der udfører fler-visnings 3D objekt rekonstruktion ved hjælp af en differentiabel gengiver. Specifikt gengiver vi den udtrukne 3D maske og teksturfeltet til 2D billeder ved hjælp af en differentiabel gengiver [ ], og superviserer vores netværk med en 2D diskriminator, der forsøger at skelne billedet fra et ægte objekt eller gengivet 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 gengive de genererede former sampler vi tilfældigt et kamera fra C og bruger en højt optimeret differentiabel rasterisator Nvdiffrast [ ] til at gengive 3D masken til en 2D silhuet samt et billede, hvor hver pixel indeholder koordinaterne for det tilsvarende 3D punkt på maskeoverfladen. Disse koordinater bruges yderligere til at forespørge teksturfeltet for at opnå RGB-værdierne. Da vi opererer direkte på den udtrukne maske, kan vi gengive billeder med høj opløsning med høj effektivitet, hvilket giver vores model mulighed for at blive trænet med billedopløsning så høj som 1024×1024. Differentiabel Gengivelse c 37 Vi træner vores model ved hjælp af et adversarisk mål. Vi anvender diskriminatorarkitekturen fra StyleGAN [ ] og bruger det samme ikke-saturerende GAN-mål med R1-regularisering [ ]. Vi finder empirisk ud af, at brug af to separate diskriminatorer, en til RGB-billeder og en anden til 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 adversariske 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 gengivelse, og er en hyperparameter. Da er differentiabel, kan gradienter backpropagere 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 en cross-entropy tab defineret mellem SDF-værdierne af naboknudepunkterne [ ]: Regularisering 47 hvor betegner binær cross-entropy tab og betegner sigmoid-funktionen. Summen i ligning er defineret over sættet af unikke kanter S i tetraedergitteret, for hvilke sign( ) /= sign( ). H σ 2 e si sj Den samlede tabfunktion defineres derefter som: hvor er en hyperparameter, der styrer niveauet af regularisering. µ