```html Autori: 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) Kopsavilkums Tā kā vairākas nozares virzās uz masīvu 3D virtuālo pasauļu modelēšanu, acīmredzama kļūst nepieciešamība pēc satura izveides rīkiem, kas varētu nodrošināt 3D satura daudzuma, kvalitātes un daudzveidības mērogojamību. Savā darbā mēs cenšamies apmācīt efektīvus 3D ģeneratīvos modeļus, kas sintezē teksturētas tīklveida struktūras, kuras var tieši izmantot 3D renderēšanas dzinēji, tādējādi uzreiz lietojamas turpmākajos lietojumos. Iepriekšējie darbi par 3D ģeneratīvo modelēšanu vai nu neatbilst ģeometrisko detaļu līmenim, ir ierobežoti ar tīklveida struktūras topoloģiju, ko tie var radīt, parasti neatbalsta tekstūras, vai arī sintezēšanas procesā izmanto neironu renderētājus, kas padara to lietošanu kopējās 3D programmatūrās netriviālu. Šajā darbā mēs iepazīstinām ar GET3D, eneratīvu modeli, kas tieši ģenerē ksplizītas eksturētas tīklveida struktūras ar sarežģītu topoloģiju, bagātīgām ģeometriskām detaļām un augstas precizitātes tekstūrām. Mēs izmantojam nesenos panākumus diferencējamā virsmu modelēšanā, diferencējamā renderēšanā, kā arī 2D ģeneratīvajos adversariālajos tīklos, lai apmācītu mūsu modeli no 2D attēlu kolekcijām. GET3D spēj radīt augstas kvalitātes 3D teksturētas tīklveida struktūras, sākot no automašīnām, krēsliem, dzīvniekiem, motocikliem un cilvēku tēliem līdz ēkām, demonstrējot ievērojamus uzlabojumus salīdzinājumā ar iepriekšējām metodēm. Mūsu projekta lapa: G E T 3D https://nv-tlabs.github.io/GET3D 1 Ievads Daudzveidīgs, augstas kvalitātes 3D saturs kļūst arvien svarīgāks vairākām nozarēm, tostarp spēļu, robotikas, arhitektūras un sociālajām platformām. Tomēr 3D līdzekļu manuāla izveide ir ļoti laikietilpīga un prasa specifiskas tehniskās zināšanas, kā arī mākslinieciskās modelēšanas prasmes. Viens no galvenajiem izaicinājumiem ir mērogs – lai gan 3D modeļus var atrast 3D tirgos, piemēram, Turbosquid [ ] vai Sketchfab [ ], daudzu 3D modeļu izveide, piemēram, lai spēli vai filmu piepildītu ar dažādiem varoņiem, joprojām prasa ievērojamu mākslinieku laiku. 4 3 Lai atvieglotu satura izveides procesu un padarītu to pieejamu dažādiem (iesācēju) lietotājiem, ģeneratīvi 3D tīkli, kas var radīt augstas kvalitātes un daudzveidīgus 3D līdzekļus, nesen ir kļuvuši par aktīvu pētniecības virzienu [ , , , , , , , , , , ]. Tomēr, lai praktiski izmantotu pašreizējos reālās pasaules lietojumos, 3D ģeneratīviem modeļiem ideālā gadījumā būtu jāatbilst šādām prasībām: tiem jāspēj ģenerēt formas ar detalizētu ģeometriju un patvaļīgu topoloģiju, izvadam jābūt teksturētai tīklveida struktūrai, kas ir primārais attēlojums, ko izmanto standarta grafikas programmatūras paketes, piemēram, Blender [ ] un Maya [ ], un mums jāspēj izmantot 2D attēlus uzraudzībai, jo tie ir plašāk pieejami nekā eksplizītas 3D formas. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Iepriekšējie darbi par 3D ģeneratīvo modelēšanu ir koncentrējušies uz iepriekš minēto prasību apakškopām, bet neviena metode līdz šim nav izpildījusi visas (Tab. ). Piemēram, metodes, kas ģenerē 3D punktu mākoņus [ , 68, 75], parasti nerada tekstūras un pēc apstrādes ir jākonvertē tīklveida struktūrā. 1 5 Metodes, kas ģenerē vokseļus, bieži vien trūkst ģeometrisko detaļu un nerada tekstūru [ , , , ]. Ģeneratīvi modeļi, kas balstīti uz neironu laukiem [ , ], koncentrējas uz ģeometrijas izgūšanu, bet ignorē tekstūru. Lielākā daļa no tām prasa arī eksplizītu 3D uzraudzību. Visbeidzot, metodes, kas tieši izvada teksturētas 3D tīklveida struktūras [ , ], parasti prasa iepriekš definētas formas veidnes un nevar ģenerēt formas ar sarežģītu topoloģiju un mainīgu dzimumu. 66 20 27 40 43 14 54 53 Nesenā straujā progresēšana neironu tilpuma renderēšanā [ ] un 2D ģeneratīvajos adversariālajos tīklos (GAN) [ , , , , ] ir novedusi pie 3D informētu attēlu sintēzes [ , , , , , ] pieauguma. Tomēr šis darba virziens mērķē uz daudzu skatu konsekventu attēlu sintēzi, izmantojot neironu renderēšanu sintezēšanas procesā, un negarantē, ka var ģenerēt jēgpilnas 3D formas. Lai gan tīklveida struktūru var potenciāli iegūt no pamatā esošā neironu lauka attēlojuma, izmantojot algoritmu "marching cube" [ ], atbilstošās tekstūras izgūšana ir netriviāla. 45 34 35 33 29 52 7 57 8 49 51 25 39 Šajā darbā mēs iepazīstinām ar jaunu pieeju, kas paredzēta, lai risinātu visas praktiski noderīga 3D ģeneratīvā modeļa prasības. Konkrēti, mēs piedāvājam GET3D, eneratīvu modeli 3D formām, kas tieši izvada ksplizītas eksturētas tīklveida struktūras ar augstu ģeometrisko un tekstūras detalizācijas līmeni un patvaļīgu tīklveida struktūras topoloģiju. Mūsu pieejas pamatā ir ģeneratīvs process, kas izmanto diferencējamu virsmu izguves metodi [ ] un diferencējamu renderēšanas tehniku [ , ]. Pirmais ļauj mums tieši optimizēt un izvadīt teksturētas 3D tīklveida struktūras ar patvaļīgu topoloģiju, savukārt otrais ļauj mums apmācīt mūsu modeli ar 2D attēliem, tādējādi izmantojot jaudīgus un nobriedušus diskriminatorus, kas izstrādāti 2D attēlu sintēzei. Tā kā mūsu modelis tieši ģenerē tīklveida struktūras un izmanto ļoti efektīvu (diferencējamu) grafikas renderētāju, mēs varam viegli palielināt mūsu modeli, lai apmācītu ar attēlu G E T 3D eksplizītu 60 47 37 rezolūciju līdz 1024 × 1024, ļaujot mums apgūt augstas kvalitātes ģeometriskās un tekstūras detaļas. Mēs demonstrējam visprogresīvāko veiktspēju nenosacītai 3D formas ģenerēšanai vairākās kategorijās ar sarežģītu ģeometriju no ShapeNet [ ], Turbosquid [ ] un Renderpeople [ ], piemēram, krēsliem, motocikliem, automašīnām, cilvēku tēliem un ēkām. Ar eksplizītu tīklveida struktūras attēlojumu kā izvadi, GET3D ir arī ļoti elastīgs un to var viegli pielāgot citiem uzdevumiem, tostarp: mācīties ģenerēt sadalītu materiālu un skata atkarīgus apgaismojuma efektus, izmantojot uzlabotu diferencējamu renderēšanu [ ], bez uzraudzības, ar tekstu vadītu 3D formas ģenerēšanu, izmantojot CLIP [ ] iegulšanu. 9 4 2 (a) 12 (b) 56 2 Saistītie darbi Mēs pārskatām jaunākos sasniegumus 3D ģeneratīvajos modeļos ģeometrijai un izskatam, kā arī 3D informētai ģeneratīvai attēlu sintēzei. Pēdējos gados 2D ģeneratīvie modeļi ir sasnieguši fotoreālistisku kvalitāti augstas izšķirtspējas attēlu sintēzē [ , , , , , , ]. Šis progress ir iedvesmojis arī pētījumus 3D satura ģenerēšanā. Agrīnās pieejas mērķēja uz 2D CNN ģeneratoru tiešu paplašināšanu uz 3D vokseļu tīkliem [ , , , , ], taču 3D konvolūciju augstās atmiņas patēriņš un aprēķinu sarežģītība kavē ģenerēšanas procesu augstā izšķirtspējā. Kā alternatīva citas darba vietas ir izpētījušas punktu mākoņu [ , , , ], implicit [ , ], vai oktree [ ] attēlojumus. Tomēr šie darbi galvenokārt koncentrējas uz ģeometrijas ģenerēšanu un ignorē izskatu. Viņu izvades attēlojumi arī ir jāapstrādā pēc tam, lai padarītu tos savietojamus ar standarta grafikas dzinējiem. 3D Ģeneratīvie Modeļi 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Vairāk līdzīgi mūsu darbam, Textured3DGAN [ , ] un DIBR [ ] ģenerē teksturētas 3D tīklveida struktūras, taču viņi formulē ģenerēšanu kā veidnes tīklveida struktūras deformāciju, kas neļauj viņiem ģenerēt sarežģītu topoloģiju vai formas ar mainīgu dzimumu, ko mūsu metode var darīt. PolyGen [ ] un SurfGen [ ] var radīt tīklveida struktūras ar patvaļīgu topoloģiju, bet nerada tekstūras. 54 53 11 48 41 Iedvesmojoties no neironu tilpuma renderēšanas [ ] un implicit attēlojumu [ , ] panākumiem, nesenākie darbi sāka risināt 3D informētas attēlu sintēzes problēmu [ , , , , , , , , , ]. Tomēr neironu tilpuma renderēšanas tīkli parasti ir lēni pieprasījuma izpildes laikā, kas noved pie ilga apmācības laika [ , ], un rada ierobežota izšķirtspējas attēlus. GIRAFFE [ ] un StyleNerf [ ] uzlabo apmācības un renderēšanas efektivitāti, veicot neironu renderēšanu zemākā izšķirtspējā un pēc tam palielinot rezultātus ar 2D CNN. Tomēr veiktspējas pieaugums nāk par cenu samazinātās daudzu skatu konsekvitātes. Izmantojot dubulto diskriminatoru, EG3D [ ] var daļēji novērst šo problēmu. Tomēr teksturētas virsmas izgūšana no metodēm, kas balstītas uz neironu renderēšanu, ir netriviāls uzdevums. Turpretim GET3D tieši izvada teksturētas 3D tīklveida struktūras, kuras var viegli izmantot standarta grafikas dzinējos. 3D Informēta Ģeneratīvā Attēlu Sintēze 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metodika Tagad mēs iepazīstinām ar mūsu GET3D sistēmu teksturētu 3D formu sintēzei. Mūsu ģenerēšanas process ir sadalīts divās daļās: ģeometrijas zars, kas diferencējami izvada virsmas tīklveida struktūru ar patvaļīgu topoloģiju, un tekstūras zars, kas rada tekstūras lauku, kuru var pieprasīt virsmas punktos, lai radītu krāsas. Pēdējo var paplašināt attiecībā uz citām virsmas īpašībām, piemēram, materiāliem (Sec. ). Apmācības laikā tiek izmantots efektīvs diferencējamais rasterizators, lai renderētu iegūto teksturēto tīklveida struktūru 2D augstas izšķirtspējas attēlos. Viss process ir diferencējams, ļaujot adversariālai apmācībai no attēliem (ar maskām, kas norāda interešu objektu), izplatot gradientus no 2D diskriminatora uz abiem ģeneratora zariem. Mūsu modelis ir ilustrēts Fig. . Turpmāk mēs vispirms iepazīstinām ar mūsu 3D ģeneratoru Sec , pirms turpinām ar diferencējamo renderēšanu un zuduma funkcijām Sec . 4.3.1 2 3.1 3.2 3.1 3D Teksturētu Tīklveida Struktūru Ģeneratīvais Modelis Mēs cenšamies apgūt 3D ģeneratoru = ( ), lai kartētu paraugu no Gausa sadalījuma M, E G z ∈ N (0*,* ) uz tīklveida struktūru ar tekstūru . z I M E Tā kā tai pašai ģeometrijai var būt dažādas tekstūras, un tāda paša tekstūra var tikt uzklāta uz dažādām ģeometrijām, mēs paraugojam divus nejaušus ievades vektorus 1 ∈ R512 un 2 ∈ R512. Sekojot StyleGAN [ , , ], mēs pēc tam izmantojam nelineārus kartēšanas tīklus geo un tex, lai kartētu 1 un 2 uz starpposma latentiem vektoriem 1 = geo( 1) un 2 = tex( 2), kas tālāk tiek izmantoti, lai radītu , kas attiecīgi kontrolē 3D formu un tekstūras ģenerēšanu. Mēs formāli iepazīstinām ar ģeometrijas ģeneratoru Sec. un tekstūras ģeneratoru Sec. . z z 34 35 33 f f z z w f z w f z stilus 3.1.1 3.1.2 3.1.1 Ģeometrijas Ģenerators Mēs izstrādājām mūsu ģeometrijas ģeneratoru, lai iekļautu DMTet [ ], nesen piedāvāto diferencējamo virsmu attēlojumu. DMTet attēlo ģeometriju kā zīmes attāluma lauku (SDF), kas definēts uz deformējamas tetraedru režģa [ , ], no kura virsmu var diferencējami atgūt, izmantojot "marching tetrahedra" [ ]. Deformējot režģi, pārvietojot tā virsotnes, tiek labāk izmantots tā izšķirtspēja. Pieņemot DMTet virsmas izguvei, mēs varam radīt eksplizītas tīklveida struktūras ar patvaļīgu topoloģiju un dzimumu. Tālāk mēs sniedzam īsu DMTet kopsavilkumu un atsaucamies uz oriģinālo rakstu detalizētākai informācijai. 60 22 24 17 Pieņemsim, ka ( ) apzīmē visu 3D telpu, kurā atrodas objekts, kur ir virsotnes tetraedru režģī . Katrs tetraedrs ∈ ir definēts, izmantojot četras virsotnes { }, ar ∈ {1*, . . . , K*}, kur ir kopējais tetraedru skaits, un ∈ ∈ R3. Papildus savām 3D koordinātām , katrai virsotnei ir SDF vērtība ∈ R un virsotnes deformācija ∆ ∈ R3 no tās sākotnējās kanoniskās koordinātas. Šis attēlojums ļauj atgūt eksplizīto tīklveida struktūru, izmantojot diferencējamu "marching tetrahedra" [ ], kur SDF vērtības nepārtrauktā telpā tiek aprēķinātas, izmantojot baricentrisko interpolāciju no to vērtības uz deformētajām virsotnēm ′ = + ∆ . VT , T VT T Tk T v ak , v bk , v ck , v dk k K v ik VT , v ik i v i si v i 60 si v v i v i Mēs kartējam 1 ∈ R512 uz SDF vērtībām un deformācijām katrai virsotnei , izmantojot virkni nosacītu 3D konvolūciju un pilnībā savienotu slāņu. Konkrēti, mēs vispirms izmantojam 3D konvolūciju slāņus, lai radītu ģeometrisko til pumu, kas ir nosacīta ar 1. Pēc tam mēs pieprasām ģeometrisko informāciju katrai virsotnei ∈ , izmantojot trilineāro interpolāciju, un nododam to MLPs, kas izvada SDF vērtību un deformāciju ∆ . Gadījumos, kad nepieciešama modelēšana augstā izšķirtspējā (piemēram, motocikls ar plānām detaļām riteņos), mēs tālāk izmantojam tilpuma sadalīšanu atbilstoši [ ]. Tīkla Arhitektūra w v i w v i VT si v i 60 Pēc un ∆ iegūšanas visām virsotnēm mēs izmantojam diferencējamu "marching tetrahedra" algoritmu, lai izgūtu eksplizīto tīklveida struktūru. "Marching tetrahedra" nosaka virsmas topoloģiju katrā tetraedrā, pamatojoties uz zīmēm. Konkrēti, tīklveida struktūras virsma tiek izgūta, ja sign( ) /= sign( ), kur apzīmē virsotņu indeksus tetraedra malā, un virsmas virsotnes tiek noteiktas ar lineāru interpolāciju kā mi,j = v 0 i sj−v 0 j si sj−si . Ņemiet vērā, ka iepriekš minētā vienādojums tiek novērtēts tikai tad, ja si 6= sj , tādējādi tas ir diferencējams, un gradients no mi,j var tikt atpakaļ izplatīts uz SDF vērtībām si un deformācijām ∆vi . Ar šo attēlojumu formas ar patvaļīgu topoloģiju var viegli ģenerēt, prognozējot dažādas si zīmes. Diferencējama Tīklveida Struktūras Izguve si v i si si sj i, j m i,j 3.1.2 Tekstūras Ģenerators Tekstūras mapes tieša ģenerēšana, kas ir saderīga ar izvades tīklveida struktūru, nav triviāla, jo ģenerētā forma var būt ar patvaļīgu dzimumu un topoloģiju. Tāpēc mēs parametrizējam tekstūru kā tekstūras lauku [ ]. 50 Konkrēti, mēs modelējam tekstūras lauku ar funkciju , kas kartē 3D virsmas punkta atrašanās vietu ∈ R3, nosacītu ar 2, uz RGB krāsu ∈ R3 šajā vietā. Tā kā tekstūras lauks ir atkarīgs no ģeometrijas, mēs papildus nosacām šo kartēšanu ar ģeometrijas latento kodu 1, lai = ( *,* 1 ⊕ 2), kur ⊕ apzīmē savienošanu. ft p w c w c ft p w w Mēs attēlojam mūsu tekstūras lauku, izmantojot tri-plane attēlojumu, kas ir efektīvs un izteiksmīgs 3D objektu rekonstruēšanā [ ] un 3D informētu attēlu ģenerēšanā [ ]. Konkrēti, mēs sekojam [ , ] un izmantojam nosacītu 2D konvolucionālu neironu tīklu, lai kartētu latentu kodu 1 ⊕ 2 uz trim asijām paralēliem ortogonāliem ģeometriskajiem plaknēm ar izmēru × × ( × 3), kur = 256 apzīmē telpisko izšķirtspēju un = 32 kanālu skaitu. Tīkla Arhitektūra 55 8 8 35 w w N N C N C Ievadot ģeometriskās plaknes, ģeometriskais vektors f t ∈ R 32 virsmas punkta p var tikt atgūts kā f t = P e ρ(πe(p)), kur πe(p) ir punkta p projekcija uz ģeometrisko plakni e un ρ(·) apzīmē bilineāru interpolāciju ģeometrijām. Papildu pilnībā savienots slānis pēc tam tiek izmantots, lai kartētu agregēto ģeometrisko vektoru f t uz RGB krāsu c. Ņemiet vērā, ka atšķirībā no citiem darbiem par 3D informētu attēlu sintēzi [8, 25, 7, 57], kas arī izmanto ne