Ügyes megoldás készít hatékonyan 2D-s képből 3D-s objektumot

2017.08.26. 17:47

Az emberi agy kifejezetten jó abban, hogy egy kétdimenziós képet látva el tudjuk képzelni, hogy az adobb objektum hogyan is nézhet ki 3D-ben, és hogy nagyjából mekkora teret foglalhat el a térben. Ezt azonban számítógépes módszerekkel reprodukálni nem egyszerű, mert még ha sikerül is a programnak pontosan reprodukálnia a tárgyat 3D-ben, ez kifejezetten nagy számítási teljesítményt igényel.

Vegyünk egy nagyon egyszerű példát. Ha van egy 2D-s képünk, ami 100x100 pixelből áll, az összesen 10 ezer pixelt jelent. Ha ezt át akarjuk ültetni a harmadik dimenzióba, akkor egy újabb tengely jelenik meg, mondjuk mégegyszer 100 pixellel, így összesen már 1 millió pixellel kell kalkulálnia a számítógépne (azaz voxellel, mert már 3D-ről beszélünk).

A szükéges számítási teljesítmény tehát exponenciálisan növekszik, minél több voxelt használunk. Márpedig alapesetben a több voxel logikus módon sokkal pontosabb végeredményt jelent. Pedig nagy szükség lenne arra, hogy ilyen jellegű számításokat minél kevesebb erőforrásból és minél gyorsabban elvégezhessük, például a manapság egyre divatosabbá váló virtuális valóságban, vagy kevert valóságban az objektumok követéséhez, de hasznos lehet akkor is, ha egy fotó alapján szeretnénk kinyomtatható 3D-s modellt készíteni.

A voxelek számának emelkedésével egyre részletesebbé válik a modell, de hatalmas mértékben növekszik a szükséges számítási teljesítmény is.Forrás: Berkeley Egyetem

Erre a problémára igyekezett választ adni Christian Häne, a Berkeley Egyetem mesterséges intelligenciával foglalkozó laborjának kutatója egy új algoritmussal. A megoldásának lényege, hogy valójában (az előbbi példánál maradva) nem feltétlenül szükséges kiszámolni egy 100x100x100-as objektumot a maga teljességében, hiszen kizárólag a külső felületét akarjuk reprodukálni, így például a belsejében található üres tér egyáltalán nem fontos.

Az algoritmust úgy készítette el, hogy az a 2D-s képből először egy alacsony felbontású 3D-set készít, amin már el tud végezni olyan kalkulációkat, melyek eredményei alapján rögtön ki tud hajítani a program egy csomó nem fontos területet. Ezután a megmaradt rész alapján készít egy újabb, nagyobb felbontású modellt, amin újra elvégzi az előbbi műveletet, újabb felesleges részeket dob ki, majd ezt az egészet megismétli újra és újra, amíg el nem készül a kívánt részletességű 3D-s modell.

A végeredmény az, hogy a korábban használt megoldásoknál sokkal kevesebb számítással készült el egy legalább annyira, vagy még részletesebb 3D-s modell. Ehhez pedig Häne-nek "mindössze" arra kellett rájönnie, hogy a program lehetőleg minél inkább azzal foglalkozzon, amit ténylegesen látni fogunk a végeredménnyel, és a lehető legkevesebb időt töltse el azzal, hogy felesleges dolgokat számolgat.

Érdekes módon ehhez egyébként nem kellett mást tenni, mint ötletet meríteni belőlünk. Az emberi agy kifejezetten hatékonyan tudja ugyanis kiszűrni azokat az adatokat, amik nem szükségesek a sikeres érzékeléshez. Ezt persze a hétköznapokban egyáltalán nem vesszük észre, viszont lehet találkozni olyan optikai csalódásokkal, amik kifejezetten erre a jelenségre épülnek.

Ha szeretne még több érdekes techhírt olvasni, akkor kövesse az Origo Techbázis Facebook-oldalát, kattintson ide!