```html 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) Abstrakt I takt med att flera branscher rör sig mot modellering av 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 allt tydligare. I vårt arbete syftar vi till att träna högpresterande 3D-generativa modeller som syntetiserar texturerade nät som direkt kan konsumeras av 3D-renderingsmotorer, och därmed omedelbart användbara i nedströmstillämpningar. Tidigare arbeten om 3D-generativ modellering saknar antingen geometriska detaljer, är begränsade i den nät-topologi de kan producera, stöder typiskt inte texturer, eller använder neurala renderare i syntesprocessen, vilket gör deras användning i vanlig 3D-mjukvara icke-trivial. I detta arbete introducerar vi GET3D, en enerative modell som direkt genererar xplicit extured meshes med komplex topologi, rika geometriska detaljer och höggradiga texturer. Vi kopplar samman de senaste framgångarna inom differentiell ytmodellering, differentiell rendering samt 2D Generative Adversarial Networks för att träna vår modell från 2D-bildsamlingar. GET3D kan generera högkvalitativa 3D texturerade nät, allt från bilar, stolar, djur, motorcyklar och mänskliga karaktärer till byggnader, och 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ångsidigt, högkvalitativt 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 färdigheter i konstnärlig modellering. En av de största utmaningarna är därmed skalan – medan man kan hitta 3D-modeller på 3D-marknadsplatser som Turbosquid [ ] eller Sketchfab [ ], tar det fortfarande betydande mängder konstnärstid att skapa många 3D-modeller för att till exempel befolka ett spel eller en film med en mängd olika karaktärer. 4 3 För att underlätta innehållsskapandeprocessen och göra den tillgänglig för en mängd olika (nybörjar)användare, har generativa 3D-nät som kan producera högkvalitativa och mångsidiga 3D-tillgångar nyligen blivit ett aktivt forskningsområde [ , , , , , , , , , , ]. För att vara praktiskt användbara för nuvarande verkliga tillämpningar bör 3D-generativa modeller dock idealt 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 standardgrafikmjukvarupaket som Blender [ ] och Maya [ ], och Vi bör kunna använda 2D-bilder för övervakning, eftersom de är mer allmänt 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 genererar metoder som genererar 3D-punktmoln [ , 68, 75] typiskt inte texturer och måste konverteras till ett nät i efterbearbetningen. 1 5 Metoder som genererar voxlar saknar ofta geometriska detaljer och producerar inte textur [ , , , ]. 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 matar ut texturerade 3D-nät [ , ] typiskt 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 uppkomsten av 3D-medveten bildsyntes [ , , , , , ]. Denna forskning syftar dock till att syntetisera multi-vy konsistenta bilder med 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 marching cube-algoritmen [ ], är det icke-trivialt att extrahera motsvarande textur. 45 34 35 33 29 52 7 57 8 49 51 25 39 I detta arbete introducerar vi ett nytt tillvägagångssätt som syftar till att uppfylla alla krav för en praktiskt användbar 3D-generativ modell. Specifikt föreslår vi GET3D, en enerativ modell för 3D-former som direkt matar ut xplicit extured meshes med hög geometrisk och texturdetalj samt godtycklig nät-topologi. Kärnan i vårt tillvägagångssätt är en generativ process som använder en differentiell *explicit* ytutvinningsmetod [ ] och en differentiell renderingsteknik [ , ]. Den förstnämnda gör det möjligt för oss att direkt optimera och mata ut 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 utvecklade för 2D-bildsyntes. Eftersom vår modell direkt genererar nät och använder en mycket effektiv (differentiell) grafikrenderare, kan vi enkelt skala upp vår modell för att träna med bildupplösning så hög som 1024 × 1024, vilket gör det möjligt för oss att lära oss högkvalitativa geometriska och texturdetaljer. G E T 3D 60 47 37 Vi demonstrerar toppmodern prestanda för ovillkorlig 3D-formgenerering 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 utdatarepresentation är GET3D också mycket flexibel och kan enkelt anpassas till andra uppgifter, inklusive: att lära sig att generera sönderdelat material och vyberoende ljuseffekter med hjälp av avancerad differentiell rendering [ ], utan övervakning, text-styrd 3D-formgenerering med CLIP [ ] inbäddning. 9 4 2 (a) 12 (b) 56 2 Relaterat arbete Vi granskar de 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ög-upplösning bildsyntes [ , , , , , , ]. Denna utveckling har också inspirerat forskning inom 3D-innehållsgenerering. Tidiga metoder syftade till att direkt utvidga 2D CNN-generatorerna till 3D-vokselrutnät [ , , , , ], men det höga minnesavtrycket och den beräkningsmässiga komplexiteten hos 3D-konvolutioner hindrar genereringsprocessen i hög upplösning. Som ett alternativ har andra arbeten utforskat punktmoln [ , , , ], implicita [ , ], eller oktalträ [ ] representationer. Dessa arbeten fokuserar dock främst på att generera geometri och ignorerar utseendet. Deras utdatarepresentationer måste också efterbearbetas för att göra dem kompatibla med standardgrafikmotorer. 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 Inspirerade av framgången med neural volymrendering [ ] och implicita representationer [ , ], har nyligen arbete börjat ta itu med problemet med 3D-medveten bildsyntes [ , , , , , , , , , ]. Dock är neurala volymrenderingsnätverk typiskt långsamma att fråga, 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 skala upp resultaten med en 2D CNN. Dock kommer prestandavinsten till priset av minskad multi-vy konsistens. 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 baseras på neural rendering. I motsats till detta matar GET3D direkt ut 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 geometri-gren, som differentiellt matar ut ett ytnät med godtycklig topologi, och en texturgren som producerar ett texturfält som kan frågas vid ytpunkterna för att producera färger. Det senare kan utökas till andra ytegenskaper, såsom till exempel material (avsnitt ). Under träningen används en effektiv differentiell rastrerare för att rendera det resulterande texturerade nätet till 2D-högupplösta bilder. Hela processen är differentiell, vilket möjliggör adversariell träning från bilder (med masker som indikerar ett objekt av intresse) genom att sprida gradienterna från 2D-diskriminatorn till båda generatorgrenarna. Vår modell illustreras i fig. . I det följande introducerar vi först vår 3D-generator i avsnitt , innan vi går vidare till differentiell rendering och förlustfunktioner i avsnitt . 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 linje med StyleGAN [ , , ] använder vi sedan icke-linjära mappningsnät 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 och textur, respektive. Vi introducerar formellt generatorn för geometri i avsnitt och texturgeneratorn i avsnitt . 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 utformar vår geometri-generator för att inkorporera DMTet [ ], en nyligen föreslagen differentiell yt-representation. DMTet representerar geometri som ett tecknat avståndsfält (SDF) definierat på ett deformerbart tetraedriskt rutnät [ , ], varifrån ytan differentierbart kan återvinnas genom marscherande tetraedrar [ ]. Att deformera rutnätet genom att flytta dess hörn resulterar i en bättre utnyttjande av dess upplösning. Genom att anta DMTet för ytutvinning kan vi producera explicita nät med godtycklig topologi och genus. Vi ger härneds en kort sammanfattning av DMTet och hänvisar läsaren till den ursprungliga artikeln för ytterligare detaljer. 60 22 24 17 Låt ( ) beteckna hela 3D-utrymmet 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 differentiell marscherande tetraedrar [ ], där SDF-värden i kontinuerligt utrymme 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 helt sammankopplade lager. Specifikt använder vi först 3D-konvolutionella lager för att generera ett funktionsvolym betingat på 1. Vi frågar sedan funktionen vid varje hörn ∈ med trilineär interpolation och matar in den i MLPs som ger SDF-värdet och deformationen ∆ . I fall där modellering i hög upplösning krävs (t.ex. motorcykel med tunna strukturer i hjulen) använder vi ytterligare volymsubdivision 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 differentiella marscherande tetraeder-algoritmen för att extrahera det explicita nätet. Marscherande tetraedrar bestämmer ytan 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örnen i tetraederns kant, och hörnen på 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 , därmed är den differentiell, och gradienten från mi,j kan bakpropagera 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 . Differentiell Nät-Utvinning si v i si si sj i, j m i,j 3.1.2 Textur-Generator Att direkt generera en textur-karta som är konsekvent med utdatanätet är inte trivialt, eftersom den genererade formen kan ha ett godtyckligt genus och topologi. Vi parametriserar därför texturen som ett texturfält [ ]. 50 Specifikt modellerar vi texturfältet med en funktion som mappar 3D-platsen för en ytpunkt ∈ R3, betingat på 2, till RGB-färgen ∈ R3 på den platsen. Eftersom texturfältet beror på geometrin, betingar vi dessutom denna mappning på geometri-latenta koden 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-plansrepresentation, 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-alignade ortogonala funktionsplan av storlek × × ( × 3), där = 256 betecknar den rumsliga 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 interpolering av funktionerna. Ett ytterligare helt sammankopplat 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 med 3D-medveten bildsyntes [8, 25, 7, 57] som också använder en neural fältrepresentation, behöver vi bara sampla texturfältet vid ytpunktens platser (i motsats till täta samplingar längs en stråle). Detta minskar drastiskt den beräkningsmässiga komplexiteten för rendering av högupplösta bilder och garanterar att generera multi-vy konsistenta bilder per konstruktion. 3.2 Differentiell Rendering och Träning För att övervaka vår modell under träning hämtar vi inspiration från Nvdiffrec [ ] som utför multi-vy 3D-objektrekonstruktion genom att använda en differentiell renderare. Specifikt renderar vi det extraherade 3D-nätet och texturfältet till 2D-bilder med hjälp av en differentiell renderare [ ], och övervakar vårt nätverk med en 2D-diskriminator, som försöker skilja bilden från ett verkligt objekt eller renderad från det genererade objektet. 47 37 Vi antar att kameraprovet C som användes för att förvärva bilderna i datasetet är känt. För att rendera de genererade formerna, samplar vi slumpmässigt en kamera från C, och använder en högeffektiv differentiell rastrerare Nvdiffrast [ ] för att rendera 3D-nätet till en 2D-silhuett samt en bild där varje pixel innehåller koordinaterna för motsvarande 3D-punkt på nätytan. Dessa koordinater används vidare för att fråga 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 gör att vår modell kan tränas med bildupplösning så hög som 1024×1024. Differentiell Rendering c 37 Vi tränar vår modell med ett adversariellt mål. Vi antar diskriminatorarkitekturen från StyleGAN [ ], och använder samma icke-saturerande 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 adversariella målet definieras då som följer: Diskriminator & Mål 34 42 Dx x där ( ) definieras som ( ) = − log(1 +exp(− )), är fördelningen av verkliga bilder, betecknar rendering, och är en hyperparameter. Eftersom är differentiell, kan gradienterna bakpropagera 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 geometri-generatorn 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 sigmoid-funktionen. Summan i ekv. 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 då som: där är en hyperparameter som kontrollerar 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 3D-texturerade nät som genereras av GET3D med befintliga metoder med hjälp av ShapeNet [ ] och Turbosquid [ ] datasets. Därefter avviker vi från våra designval i avsnitt . Slutligen demonstrerar vi flex 9 4 4.2