Maaaring narinig mo na ang tungkol sa kung gaano kalakas ang naging mga modelo ng text-to-image AI sa nakalipas na ilang taon. Ngunit alam mo ba na ang parehong teknolohiya ay maaaring makatulong na gawin ang paglukso mula 2D hanggang 3D?
Ang mga modelong 3D na binuo ng AI ay may malawak na kaso ng paggamit sa digital landscape ngayon. Video laro at umaasa ang pelikula sa mga bihasang 3D artist at software sa pagmomodelo tulad ng Blender upang lumikha ng mga 3D na asset para punan ang mga eksenang binuo ng computer.
Gayunpaman, posible bang gumamit ang industriya ng machine learning upang lumikha ng mga 3D asset na may kaunting pagsisikap, katulad ng kung paano nagsisimula ang mga 2D artist ngayon na gumamit ng teknolohiya tulad ng DALL-E at kalagitnaan ng paglalakbay?
I-explore ng artikulong ito ang isang bagong algorithm na sumusubok na gumawa ng isang epektibong text-to-3D na modelo gamit ang umiiral na mga modelo ng pagsasabog.
Ano ang Dreamfusion?
Ang isang pangunahing isyu sa paggawa ng diffusion model na direktang bumubuo ng mga 3D na asset ay sadyang walang gaanong available na 3D data. Ang mga modelo ng 2D diffusion ay naging napakalakas dahil sa malawak na dataset ng mga larawan na matatagpuan sa internet. Ang parehong ay hindi masasabi sa mga 3D na asset.
Gumagana ang ilang 3D generative technique sa kakulangan ng data na ito sa pamamagitan ng pagsasamantala sa kasaganaan ng 2D na data na ito.
DreamFusion ay isang generative na modelo na maaaring lumikha ng mga 3D na modelo batay sa isang ibinigay na paglalarawan ng teksto. Gumagamit ang DreamFusion model ng isang pre-trained na text-to-image diffusion model para makabuo ng mga makatotohanang three-dimensional na modelo mula sa mga text prompt.
Sa kabila ng walang 3D na data ng pagsasanay, ang diskarte na ito ay nakabuo ng magkakaugnay na 3D asset na may mataas na katapatan sa hitsura at lalim.
Paano ito gumagana?
Ang DreamFusion algorithm ay binubuo ng dalawang pangunahing modelo: isang 2D diffusion model at a neural network na maaaring mag-convert ng mga 2D na larawan sa isang magkakaugnay na 3D na eksena.
Ang Imagen Text-to-Image na Modelo ng Google
Ang unang bahagi ng algorithm ay ang diffusion model. Ang modelong ito ay responsable para sa pag-convert ng teksto sa mga imahe.
Larawan ay isang diffusion model na maaaring makabuo ng malaking sample ng mga variation ng imahe ng isang partikular na bagay. Sa kasong ito, ang aming mga pagkakaiba-iba ng imahe ay dapat na sumasakop sa lahat ng posibleng mga anggulo ng ibinigay na bagay. Halimbawa, kung gusto naming bumuo ng 3D na modelo ng kabayo, gusto namin ang 2D na larawan ng kabayo mula sa lahat ng posibleng anggulo. Ang layunin ay gamitin ang Imagen upang magbigay ng mas maraming impormasyon hangga't maaari (mga kulay, reflection, density) para sa susunod na modelo sa aming algorithm.
Paglikha ng mga 3D na Modelo gamit ang NeRF
Susunod, ang Dreamfusion ay gumagamit ng isang modelo na kilala bilang a Patlang ng Neural Radiance o NeRF upang aktwal na lumikha ng 3D na modelo mula sa nabuong set ng imahe. Ang mga NeRF ay nakakagawa ng mga kumplikadong 3D na eksena na binibigyan ng isang dataset ng mga 2D na larawan.
Subukan nating maunawaan kung paano gumagana ang isang NeRF.
Nilalayon ng modelo na lumikha ng tuluy-tuloy na volumetric na function ng eksena na na-optimize mula sa ibinigay na dataset ng mga 2D na larawan.
Kung ang modelo ay lumilikha ng isang function, ano ang input at output?
Ang pag-andar ng eksena ay tumatagal sa isang 3D na lokasyon at isang 2D na direksyon sa pagtingin bilang input. Ang function ay naglalabas ng isang kulay (sa anyo ng RGB) at isang partikular na density ng volume.
Upang makabuo ng 2D na larawan mula sa isang partikular na viewpoint, bubuo ang modelo ng isang set ng mga 3D point at patakbuhin ang mga puntong iyon sa pamamagitan ng function ng eksena upang magbalik ng isang hanay ng mga value ng density ng kulay at volume. Iko-convert ng mga diskarte sa pag-render ng volume ang mga value na iyon sa isang 2D na output ng imahe.
Gamit ang NeRF at 2D Diffusion Models Magkasama
Ngayong alam na natin kung paano gumagana ang isang NeRF, tingnan natin kung paano makakabuo ang modelong ito ng mga tumpak na 3D na modelo mula sa aming mga nabuong larawan.
Para sa bawat ibinigay na prompt ng text, sinasanay ng DreamFusion ang isang random na inisyal na NeRF mula sa simula. Ang bawat pag-ulit ay pumipili ng isang random na posisyon ng camera sa isang hanay ng mga spherical coordinate. Isipin ang modelong nakabalot sa isang glass sphere. Sa bawat oras na makabuo kami ng bagong larawan ng aming 3D na modelo, pipili kami ng random na punto sa aming globo bilang vantage point ng aming output. Ang DreamFusion ay pipili din ng isang random na posisyon ng liwanag l gamitin para sa pag-render.
Kapag mayroon na kaming camera at light position, isang NeRF na modelo ang ire-render. Random ding pipili ang DreamFusion sa pagitan ng isang colored render, isang textureless render, at isang rendering ng albedo nang walang anumang shading.
Nabanggit na namin kanina na gusto namin ang aming text-to-image na modelo (Imagen) na makabuo ng sapat na mga larawan upang lumikha ng isang sample na kinatawan.
Paano ito nagagawa ng Dreamfusion?
Binabago lang ng Dreamfusion ang input prompt nang bahagya upang makamit ang mga nilalayong anggulo. Halimbawa, makakamit natin ang matataas na anggulo sa elevation sa pamamagitan ng pagdaragdag ng "overhead view" sa ating prompt. Maaari tayong bumuo ng iba pang mga anggulo sa pamamagitan ng pagdaragdag ng mga parirala gaya ng “front view”, “side view”, at “back view”.
Ang mga eksena ay paulit-ulit na nire-render mula sa mga random na posisyon ng camera. Ang mga pag-render na ito ay dumaan sa isang function ng pagkawala ng distillation ng marka. Ang isang simpleng gradient descent approach ay dahan-dahang magpapahusay sa 3D modelo hanggang sa tumugma ito sa eksenang inilarawan ng teksto.
Kapag nai-render na namin ang 3D na modelo gamit ang NeRF, magagamit na namin ang Marching Cubes algorithm upang mag-output ng 3D mesh ng aming modelo. Ang mesh na ito ay maaaring ma-import sa mga sikat na 3D renderer o software sa pagmomodelo.
Mga hangganan
Habang ang output ng DreamFusion ay sapat na kahanga-hanga dahil gumagamit ito ng umiiral na mga modelo ng pagsasabog ng text-to-image sa isang nobelang paraan, ang mga mananaliksik ay nakapansin ng ilang mga limitasyon.
Ang function ng pagkawala ng SDS ay naobserbahan upang makagawa ng mga oversaturated at over-smoothed na mga resulta. Maaari mong obserbahan ito sa hindi natural na pangkulay at kakulangan ng tumpak na detalye na makikita sa mga output.
Ang algorithm ng DreamFusion ay limitado rin sa pamamagitan ng resolution ng Imagen model output, na 64 x 64 pixels. Ito ay humahantong sa mga synthesize na modelo na kulang sa mas pinong mga detalye.
Panghuli, nabanggit ng mga mananaliksik na mayroong isang likas na hamon sa pag-synthesize ng mga modelong 3D mula sa 2D na data. Maraming posibleng mga modelong 3D na maaari naming buuin mula sa isang hanay ng mga 2D na larawan, na ginagawang medyo mahirap ang pag-optimize at kahit na hindi maliwanag.
Konklusyon
Ang mga 3D rendering ng DreamFusion ay gumagana nang maayos dahil sa kakayahan ng mga modelo ng text-to-image diffusion na lumikha ng anumang bagay o eksena. Kahanga-hanga kung paano naiintindihan ng isang neural network ang isang eksena sa 3D space nang walang anumang 3D na data ng pagsasanay. Inirerekomenda kong basahin ang buong papel para matuto pa tungkol sa mga teknikal na detalye ng DreamFusion algorithm.
Sana, pagbutihin ang teknolohiyang ito upang tuluyang makalikha ng mga photo-realistic na 3D na modelo. Isipin ang buong mga video game o simulation na gumagamit ng mga environment na binuo ng AI. Maaari nitong mapababa ang hadlang sa pagpasok para sa mga developer ng video game upang lumikha ng mga nakaka-engganyong 3D na mundo!
Ano sa tingin mo ang papel na gagampanan ng mga text-to-3D na modelo sa hinaharap?
Mag-iwan ng Sagot