Författare: 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) Sammanfattning Då flera branscher rör sig mot att modellera massiva 3D virtuella världar, blir behovet av verktyg för innehållsskapande som kan skalas i termer av kvantitet, kvalitet och mångfald av 3D-innehåll uppenbart. I vårt arbete syftar vi till att träna högpresterande 3D-generativa modeller som syntetiserar texturerade nät, vilka kan konsumeras direkt av 3D-renderingsmotorer, och därmed omedelbart användbara i nedströmsapplikationer. Tidigare arbeten om 3D-generativ modellering saknar antingen geometriska detaljer, är begränsade i nätets topologi de kan producera, stöder vanligtvis inte texturer, eller använder neurala renderare i syntesprocessen, vilket gör deras användning i vanliga 3D-program trivial. I detta arbete introducerar vi GET3D, en enerativ modell som direkt genererar xplicit exturerade -nät med komplex topologi, rika geometriska detaljer och högupplösta texturer. Vi kopplar samman framgångar inom differentierbar ytmodellering, differentierbar rendering samt 2D Generative Adversarial Networks för att träna vår modell från 2D-bildsamlingar. GET3D kan generera högupplösta texturerade 3D-nät, allt från bilar, stolar, djur, motorcyklar och mänskliga karaktärer till byggnader, vilket uppnår betydande förbättringar jämfört med tidigare metoder. Vår projektsida: G E T 3D https://nv-tlabs.github.io/GET3D 1 Introduktion Mångfaldigt, högupplöst 3D-innehåll blir allt viktigare för flera branscher, inklusive spel, robotik, arkitektur och sociala plattformar. Dock är manuellt skapande av 3D-tillgångar mycket tidskrävande och kräver specifik teknisk kunskap samt konstnärliga modelleringfärdigheter. En av de största utmaningarna är därmed skala – medan man kan hitta 3D-modeller på 3D-marknadsplatser som Turbosquid [ ] eller Sketchfab [ ], tar det fortfarande betydande mängder av konstnärtid att skapa många 3D-modeller för att, säg, befolka ett spel eller en film med en mängd karaktärer som alla ser olika ut. 4 3 För att underlätta skapandeprocessen och göra den tillgänglig för en mängd (nybörjar)användare, har generativa 3D-nätverk som kan producera högupplösta och mångfaldiga 3D-tillgångar nyligen blivit ett aktivt forskningsområde [ , , , , , , , , , , ]. För att dock vara praktiskt användbara för nuvarande verkliga applikationer bör 3D-generativa modeller idealiskt uppfylla följande krav: De bör ha kapacitet att generera former med detaljerad geometri och godtycklig topologi, Utgången bör vara ett texturerat nät, vilket är en primär representation som används av standard grafiska mjukvarupaket såsom Blender [ ] och Maya [ ], och Vi bör kunna utnyttja 2D-bilder för övervakning, eftersom de är mer tillgängliga än explicita 3D-former. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Tidigare arbete med 3D-generativ modellering har fokuserat på delmängder av ovanstående krav, men ingen metod hittills uppfyller alla dem (Tab. ). Till exempel producerar metoder som genererar 3D-punktmoln [ , 68, 75] vanligtvis inte texturer och måste konverteras till ett nät i efterbehandling. 1 5 Metoder som genererar voxlar saknar ofta geometriska detaljer och producerar inte texturer [ , , , ]. Generativa modeller baserade på neurala fält [ , ] fokuserar på att extrahera geometri men ignorerar textur. De flesta av dessa kräver också explicit 3D-övervakning. Slutligen kräver metoder som direkt producerar texturerade 3D-nät [ , ] vanligtvis fördefinierade formmallar och kan inte generera former med komplex topologi och varierande genus. 66 20 27 40 43 14 54 53 Nyligen har snabba framsteg inom neural volymrendering [ ] och 2D Generative Adversarial Networks (GANs) [ , , , , ] lett till en ökning av 3D-medveten bildsyntes [ , , , , , ]. Dock syftar detta arbete till att syntetisera multivy-konsekventa bilder med hjälp av neural rendering i syntesprocessen och garanterar inte att meningsfulla 3D-former kan genereras. Även om ett nät potentiellt kan erhållas från den underliggande neurala fältrepresentationen med hjälp av marchings cube-algoritmen [ ], är extraheringen av motsvarande textur inte trivial. 45 34 35 33 29 52 7 57 8 49 51 25 39 I detta arbete introducerar vi en ny metod som syftar till att uppfylla alla krav på en praktiskt användbar 3D-generativ modell. Specifikt föreslår vi GET3D, en enerativ modell för 3D-former som direkt producerar xplicit exturerade -nät med hög geometrisk och texturdetalj och godtycklig nät-topologi. I hjärtat av vår metod finns en generativ process som använder en differentierbar *explicit* ytuttagningsmetod [ ] och en differentierbar renderingsteknik [ , ]. Den förstnämnda möjliggör för oss att direkt optimera och producera texturerade 3D-nät med godtycklig topologi, medan den senare tillåter oss att träna vår modell med 2D-bilder, och därmed utnyttja kraftfulla och mogna diskriminatorer som utvecklats för 2D-bildsyntes. Eftersom vår modell direkt genererar nät och använder en mycket effektiv (differentierbar) grafikrendering, kan vi enkelt skala upp vår modell för att träna med bildupplösningar så höga som 1024 × 1024, vilket gör det möjligt för oss att lära oss högupplösta geometriska och texturdetaljer. G E T 3D 60 47 37 Vi demonstrerar toppmodern prestanda för ovillkorlig 3D-formsgenerering på flera kategorier med komplex geometri från ShapeNet [ ], Turbosquid [ ] och Renderpeople [ ], såsom stolar, motorcyklar, bilar, mänskliga karaktärer och byggnader. Med explicit nät som utgångsrepresentation är GET3D också mycket flexibel och kan enkelt anpassas till andra uppgifter, inklusive: inlärning att generera sönderdelad material och vy-beroende ljuseffekter med hjälp av avancerad differentierbar rendering [ ], utan övervakning, text-styrd 3D-formsgenerering med CLIP [ ] inbäddning. 9 4 2 (a) 12 (b) 56 2 Relaterat arbete Vi granskar senaste framstegen inom 3D-generativa modeller för geometri och utseende, samt 3D-medveten generativ bildsyntes. Under de senaste åren har 2D-generativa modeller uppnått fotorealistisk kvalitet i högupplöst bildsyntes [ , , , , , , ]. Dessa framsteg har också inspirerat forskning inom 3D-innehållsgenerering. Tidiga metoder syftade till att direkt utöka 2D CNN-generatorer till 3D voxelrutnät [ , , , , ], men det höga minnesavtrycket och den beräkningsmässiga komplexiteten hos 3D-konvolutioner hämmar genereringsprocessen vid hög upplösning. Som ett alternativ har andra arbeten utforskat punktmoln [ , , , ], implicita [ , ], eller oktree [ ] representationer. Dessa arbeten fokuserar dock främst på att generera geometri och ignorerar utseende. Deras utgångsrepresentationer behöver också efterbearbetas för att göra dem kompatibla med standard grafikmotorer. 3D Generativa Modeller 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Mer likt vårt arbete genererar Textured3DGAN [ , ] och DIBR [ ] texturerade 3D-nät, men de formulerar genereringen som en deformation av ett mallnät, vilket hindrar dem från att generera komplex topologi eller former med varierande genus, vilket vår metod kan göra. PolyGen [ ] och SurfGen [ ] kan producera nät med godtycklig topologi, men syntetiserar inte texturer. 54 53 11 48 41 Inspirerad av framgångarna med neural volymrendering [ ] och implicita representationer [ , ], har nyligen arbete börjat ta itu med problemet med 3D-medveten bildsyntes [ , , , , , , , , , ]. Neurala volymrenderingsnätverk är dock typiskt långsamma att anropa, vilket leder till långa träningstider [ , ], och genererar bilder med begränsad upplösning. GIRAFFE [ ] och StyleNerf [ ] förbättrar tränings- och renderingseffektiviteten genom att utföra neural rendering vid en lägre upplösning och sedan uppskala resultaten med en 2D CNN. Prestandavinsten kommer dock till priset av reducerad multivy-konsekvens. Genom att använda en dubbel diskriminator kan EG3D [ ] delvis mildra detta problem. Ändå är det en icke-trivial uppgift att extrahera en texturerad yta från metoder som bygger på neural rendering. Däremot producerar GET3D direkt texturerade 3D-nät som omedelbart kan användas i standardgrafikmotorer. 3D-medveten Generativ Bildsyntes 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metod Vi presenterar nu vårt GET3D-ramverk för syntes av texturerade 3D-former. Vår genereringsprocess är uppdelad i två delar: en geometrigren, som differentierbart producerar ett yt-nät av godtycklig topologi, och en texturgren som producerar ett texturfält som kan anropas vid ytpunkterna för att producera färger. Den senare kan utökas till andra yt-egenskaper såsom t.ex. material (Avsn. ). Under träning används en effektiv differentierbar rasterizer för att rendera det resulterande texturerade nätet till 2D högupplösta bilder. Hela processen är differentierbar, vilket möjliggör adversarial träning från bilder (med masker som indikerar ett intressant objekt) genom att propagera gradienterna från 2D-diskriminatorn till båda generatorgrenarna. Vår modell illustreras i Fig. . Nedan introducerar vi först vår 3D-generator i avsn. , innan vi fortsätter med differentierbar rendering och förlustfunktioner i avsn. . 4.3.1 2 3.1 3.2 3.1 Generativ modell av 3D texturerade nät Vi syftar till att lära oss en 3D-generator = ( ) för att mappa ett urval från en Gaussisk distribution M, E G z ∈ N (0*,* ) till ett nät med textur . z I M E Eftersom samma geometri kan ha olika texturer, och samma textur kan appliceras på olika geometrier, samplar vi två slumpmässiga ingångsvektorer 1 ∈ R512 och 2 ∈ R512. I enlighet med StyleGAN [ , , ], använder vi sedan icke-linjära mappningsnätverk geo och tex för att mappa 1 och 2 till mellanliggande latenta vektorer 1 = geo( 1) och 2 = tex( 2) som vidare används för att producera *stilar* som styr genereringen av 3D-former respektive textur. Vi introducerar formellt generatorn för geometri i avsn. och texturgeneratorn i avsn. . 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 designar vår geometrigenerator för att inkorporera DMTet [ ], en nyligen föreslagen differentierbar ytrepresentation. DMTet representerar geometri som ett signerat avstånds-fält (SDF) definierat på ett deformerbart tetraedriskt rutnät [ , ], från vilket ytan differentierbart kan återvinnas genom marchande tetraedrar [ ]. Deformation av rutnätet genom att flytta dess hörn resulterar i en bättre utnyttjande av dess upplösning. Genom att använda DMTet för ytextraktion kan vi producera explicita nät med godtycklig topologi och genus. Vi ger härn Anda en kort sammanfattning av DMTet och hänvisar läsaren till originalartikeln för ytterligare detaljer. 60 22 24 17 Låt ( ) beteckna hela 3D-rymden som objektet ligger i, där är hörnen i det tetraedriska rutnätet . Varje tetraeder ∈ definieras med fyra hörn { }, med ∈ {1*, . . . , K*}, där är det totala antalet tetraedrar, och ∈ ∈ R3. Utöver sina 3D-koordinater, innehåller varje hörn SDF-värdet ∈ R och deformationen ∆ ∈ R3 av hörnet från dess initiala kanoniska koordinat. Denna representation möjliggör återvinning av det explicita nätet genom differentierbar marchande tetraedrar [ ], där SDF-värden i kontinuerlig rymd beräknas genom barycentrisk interpolation av deras värde på de deformerade hörnen ′ = + ∆ . 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 mappar 1 ∈ R512 till SDF-värden och deformationer vid varje hörn genom en serie av betingade 3D-konvolutionella och fullt anslutna lager. Specifikt använder vi först 3D-konvolutionella lager för att generera en funktionsvolym betingad på 1. Vi anropar sedan funktionen vid varje hörn ∈ med hjälp av trilineär interpolation och matar in det i MLPs som producerar SDF-värdet och deformationen ∆ . I fall där modellering vid hög upplösning krävs (t.ex. motorcykel med tunna strukturer i hjulen), använder vi ytterligare volymunderindelning enligt [ ]. Nätverksarkitektur w v i w v i VT si v i 60 Efter att ha erhållit och ∆ för alla hörn, använder vi den differentierbara marchande tetraeder-algoritmen för att extrahera det explicita nätet. Marchande tetraedrar bestämmer ytans topologi inom varje tetraeder baserat på tecknen på . Specifikt extraheras en nät-yta när sign( ) /= sign( ), där betecknar indexen för hörn i tetraederns kant, och hörnen av den ytan bestäms av en linjär interpolation som mi,j = v 0 i sj−v 0 j si sj−si . Notera att ovanstående ekvation endast utvärderas när si 6= sj , vilket därmed är differentierbart, och gradienten från mi,j kan back-propagera till SDF-värdena si och deformationerna ∆vi . Med denna representation kan former med godtycklig topologi enkelt genereras genom att förutsäga olika tecken på si . Differentierbar Nätutvinning si v i si si sj i, j m i,j 3.1.2 Textur Generator Direkt generering av en texturkarta som är konsekvent med utgångsnätet är inte trivialt, eftersom den genererade formen kan ha ett godtyckligt genus och topologi. Vi parametriserar därmed texturen som ett texturfält [ ]. 50 Specifikt modellerar vi texturfältet med en funktion som mappar 3D-positionen för en ytpunkt ∈ R3, betingad på 2, till RGB-färgen ∈ R3 vid den positionen. Eftersom texturfältet beror på geometrin, betingar vi dessutom denna mappning på geometrins latenta kod 1, så att = ( *,* 1 ⊕ 2), där ⊕ betecknar konkatenering. ft p w c w c ft p w w Vi representerar vårt texturfält med en tri-plan-representation, som är effektiv och uttrycksfull för att rekonstruera 3D-objekt [ ] och generera 3D-medvetna bilder [ ] . Specifikt följer vi [ , ] och använder ett betingat 2D-konvolutionellt neuralt nätverk för att mappa den latenta koden 1 ⊕ 2 till tre axel-alignerade ortogonala funktionsplan av storlek × × ( × 3), där = 256 betecknar den spatiala upplösningen och = 32 antalet kanaler. Nätverksarkitektur 55 8 8 35 w w N N C N C Givet funktionsplanen, kan funktionsvektorn f t ∈ R 32 för en ytpunkt p återvinnas som f t = P e ρ(πe(p)), där πe(p) är projektionen av punkten p till funktionsplanet e och ρ(·) betecknar bilinjär interpolation av funktionerna. Ett ytterligare fullt anslutet lager används sedan för att mappa den aggregerade funktionsvektorn f t till RGB-färgen c. Notera att, till skillnad från andra arbeten om 3D-medveten bildsyntes som också använder en neural fältrepresentation, behöver vi bara sampla texturfältet vid positionerna för ytpunkterna (i motsats till täta samplingar längs en stråle). Detta minskar beräkningskomplexiteten för rendering av högupplösta bilder avsevärt och garanterar att generera multivy-konsekventa bilder per konstruktion. 3.2 Differentierbar Rendering och Träning För att övervaka vår modell under träning, hämtar vi inspiration från Nvdiffrec [ ] som utför multivy 3D-objektrekonstruktion genom att använda en differentierbar rendering. Specifikt renderar vi det extraherade 3D-nätet och texturfältet till 2D-bilder med hjälp av en differentierbar rendering [ ], och övervakar vårt nätverk med en 2D-diskriminator, som försöker skilja bilden från ett verkligt objekt eller renderat från det genererade objektet. 47 37 Vi antar att kamerapositionfördelningen C som användes för att förvärva bilderna i datamängden är känd. För att rendera de genererade formerna, samplar vi slumpmässigt en kamera från C, och använder en högt optimerad differentierbar rasteriserare Nvdiffrast [ ] för att rendera 3D-nätet till en 2D-silhuett samt en bild där varje pixel innehåller koordinaterna för den motsvarande 3D-punkten på nätets yta. Dessa koordinater används vidare för att anropa texturfältet för att erhålla RGB-värdena. Eftersom vi opererar direkt på det extraherade nätet, kan vi rendera högupplösta bilder med hög effektivitet, vilket möjliggör att vår modell kan tränas med bildupplösningar så höga som 1024×1024. Differentierbar Rendering c 37 Vi tränar vår modell med ett adversarialt mål. Vi antar diskriminatorarkitekturen från StyleGAN [ ], och använder samma icke-mättande GAN-mål med R1-regularisering [ ]. Vi finner empiriskt att användningen av två separata diskriminatorer, en för RGB-bilder och en annan för silhuetter, ger bättre resultat än en enda diskriminator som opererar på båda. Låt beteckna diskriminatorn, där antingen är en RGB-bild eller en silhuett. Det adversariala målet definieras då som följer: Diskriminator & Mål 34 42 Dx x där ( ) definieras som ( ) = − log(1 +exp(− )), är distributionen av verkliga bilder, betecknar rendering, och är en hyperparameter. Eftersom är differentierbar, kan gradienterna back-propagera från 2D-bilder till våra 3D-generatorer. g u g u u px R λ R För att ta bort interna flytande ytor som inte är synliga i någon av vyerna, regulariserar vi ytterligare geometrigeneratorn med en korsentropi-förlust definierad mellan SDF-värdena för närliggande hörn [ ]: Regularisering 47 där betecknar binär korsentropi-förlust och betecknar sigmoidfunktionen. Summan i Eq. definieras över mängden av unika kanter S i det tetraedriska rutnätet, för vilka sign( ) /= sign( ). H σ 2 e si sj Den övergripande förlustfunktionen definieras sedan som: där är en hyperparameter som styr nivån av regularisering. µ 4 Experiment Vi genomför omfattande experiment för att utvärdera vår modell. Vi jämför först kvaliteten på de texturerade 3D-nät som genereras av GET3D med befintliga metoder med hjälp av ShapeNet [ ] och Turbosquid [ ] datamäng 9 4