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 Eftersom flera industrier rör sig mot modellering av massiva 3D virtuella världar, blir behovet av verktyg för innehållsskapande som kan skalas vad gäller 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 med komplex topologi, rika geometriska detaljer och högkvalitativa texturer, som direkt kan konsumeras 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 den nät-topologi de kan producera, stöder vanligtvis inte texturer, eller använder neurala renderare i syntesprocessen, vilket gör deras användning i vanlig 3D-programvara icke-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ögkvalitativa texturer. Vi drar nytta av 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ögkvalitativa 3D-texturerade nät, allt från bilar, stolar, djur, motorcyklar och mänskliga karaktärer till byggnader, vilket ger 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 3D-innehåll av hög kvalitet blir allt viktigare för flera industrier, inklusive spel, robotik, arkitektur och sociala plattformar. Manuell skapande av 3D-tillgångar är dock mycket tidskrävande och kräver specifik teknisk kunskap samt konstnärliga modellfä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 en betydande mängd konstnärstid att skapa många 3D-modeller för att till exempel befolka ett spel eller en film med en folkmassa av karaktärer som alla ser olika ut. 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ätverk 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 applikationer bör 3D-generativa modeller dock helst uppfylla följande krav: De bör ha kapacitet att generera former med detaljerad geometri och godtycklig topologi, Utmatningen bör vara ett texturerat nät, vilket är en primär representation som används av standardgrafikprogrampaket 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 om 3D-generativ modellering har fokuserat på delmängder av ovanstående krav, men ingen metod hittills uppfyller alla (Tabell ). 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 textur [ , , , ]. Generativa modeller baserade på neurala fält [ , ] fokuserar på att extrahera geometri men bortser från textur. De flesta av dessa kräver också explicit 3D-övervakning. Slutligen kräver metoder som direkt matar ut texturerade 3D-nät [ , ] vanligtvis fördefinierade formmallar och kan inte generera former med komplex topologi och varierande släkte. 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 forskningslinje syftar dock till att syntetisera multi-view-konsistenta 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 marching cube-algoritmen [ ], är extrahering av motsvarande textur inte en trivial uppgift. 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 exturerade -nät med hög geometrisk och texturdetaljrikedom och godtycklig nät-topologi. I hjärtat av vårt tillvägagångssätt ligger en generativ process som utnyttjar en differentierbar *explicit* ytutvinningsmetod [ ] och en differentierbar 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 högeffektiv (differentierbar) grafikrenderare, 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ögkvalitativa geometriska och texturdetaljer. G E T 3D 60 47 37 Vi demonstrerar state-of-the-art-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 utmatningsrepresentation är GET3D också mycket flexibel och kan enkelt anpassas till andra uppgifter, inklusive: inlärning för att generera dekomponerat material och visningsberoende ljuseffekter med hjälp av avancerad differentierbar rendering [ ], utan övervakning, text-styrd 3D-formgenerering med hjälp av 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ögupplöst bildsyntes [ , , , , , , ]. Denna utveckling har också inspirerat forskning inom 3D-innehållsgenerering. Tidiga tillvägagångssätt syftade till att direkt utöka 2D CNN-generatorerna till 3D-voxel-gitter [ , , , , ], men det höga minnesavtrycket och den beräkningsmässiga komplexiteten hos 3D-faltningar hindrar 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 bortser från utseendet. Deras utmatningsrepresentationer behöver 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 släkte, 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 arbeten börjat tackla problemet med 3D-medveten bildsyntes [ , , , , , , , , , ]. Neurala volymrendering-nätverk är dock 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 lägre upplösning och sedan uppskala resultaten med ett 2D CNN. Prestandavinsten sker dock till priset av reducerad multi-view-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 kontrast matar GET3D direkt ut texturerade 3D-nät som lätt 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 differentierbart matar ut ett yt-nät av godtycklig topologi, och en texturgren som producerar ett texturfält som kan efterfrågas vid ytpunkterna för att producera färger. Den senare kan utökas till andra ytegenskaper som till exempel material (avsnitt ). Under träningen används en effektiv differentierbar rasteriserare för att rendera det resulterande texturerade nätet till 2D högupplösta bilder. Hela processen är differentierbar, vilket möjliggör adversariell träning från bilder (med masker som indikerar ett objekt av intresse) genom att propagera 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 fortsätter till den differentierbara renderingen och förlustfunktionerna i avsnitt . 4.3.1 2 3.1 3.2 3.1 Generativ modell för 3D-texturerade nät Vi syftar till att lära oss en 3D-generator = ( ) för att mappa ett prov från en Gaussisk fördelning 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 indatavektorer 1 ∈ R512 och 2 ∈ R512. Enligt 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 ytterligare 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 differentierbar ytpresentation. DMTet representerar geometri som ett signerat avståndsfält (SDF) definierat på ett deformerbart tetraedriskt rutnät [ , ], från vilket ytan differentierbart kan återvinnas genom marchering av tetraedrar [ ]. Deformation av 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 släkte. Vi ger därefter 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-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. Förutom 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 tillåter återvinning av det explicita nätet genom differentierbar marchering av 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 villkorliga 3D-faltnings- och fullt anslutna lager. Specifikt använder vi först 3D-faltningslager för att generera en funktionsvolym villkorad på 1. Vi frågar sedan funktionen vid varje hörn ∈ med hjälp av trilineär interpolation och matar in den i MLPs som matar ut 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 vidare volymindelning 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 marchering av tetraedrar-algoritmen för att extrahera det explicita nätet. Marchering av tetraedrar bestämmer yt-topologin 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 genom 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 differentierbar, och gradienten från mi,j kan bakåtpropagera 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 Att direkt generera en texturkarta som är konsekvent med utmatningsnätet är inte trivialt, eftersom den genererade formen kan ha ett godtyckligt släkte och topologi. Vi parametriserar därför texturen som ett texturfält [ ]. 50 Specifikt modellerar vi texturfältet med en funktion som mappar 3D-positionen för en ytpunkten ∈ R3, villkorad på 2, till RGB-färgen ∈ R3 vid den positionen. Eftersom texturfältet beror på geometrin, villkorar vi ytterligare denna mappning på geometri-latent 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-plan-representation, som är effektiv och uttrycksfull i att rekonstruera 3D-objekt [ ] och generera 3D-medvetna bilder [ ]. Specifikt följer vi [ , ] och använder ett villkorligt 2D-faltnings-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 ytpunkten 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 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 ytpunkternas positioner (i motsats till täta samplingar längs en stråle). Detta minskar kraftigt den beräkningsmässiga komplexiteten för rendering av högupplösta bilder och garanterar att generera multi-view-konsistenta bilder genom konstruktion. 3.2 Differentierbar rendering och träning För att övervaka vår modell under träning inspireras vi av Nvdiffrec [ ] som utför multi-view 3D-objektrekonstruktion genom att använda en differentierbar renderare. Specifikt renderar vi det extraherade 3D-nätet och texturfältet till 2D-bilder med en differentierbar renderare [ ], och övervakar vårt nätverk med en 2D-diskriminator, som försöker skilja bilden från ett verkligt objekt eller en renderad från det genererade objektet. 47 37 Vi antar att kamerafördelningen C som användes för att förvärva bilderna i datasetet ä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 efterfråga texturfältet för att erhålla RGB-värdena. Eftersom vi arbetar direkt på det extraherade nätet, kan vi rendera högupplösta bilder med hög effektivitet, vilket tillåter vår modell att tränas med bildupplösningar så höga som 1024×1024. Differentierbar 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-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 arbetar på båda. Låt beteckna diskriminatorn, där antingen är en RGB-bild eller en silhuett. Det adversariella målet definieras då enligt följande: 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 differentierbar, kan gradienterna bakåtpropagera 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 vidare geometri-generatorn med en korsentropiförlust definierad mellan SDF-värdena för angränsande hörn [ ]: Regularisering 47 där betecknar binär korsentropiförlust och betecknar sigmoid-funktionen. Summan i ekv. är definierad ö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 kontrollerar regulariseringsnivån. µ 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