Hatékony eljárások mozgó objektumok valósidejű 3D-s rekonstrukciójához GPU segítségével
|
|
- Irma Ráczné
- 9 évvel ezelőtt
- Látták:
Átírás
1 Eötvös Loránd Tudományegyetem Informatikai Kar Hatékony eljárások mozgó objektumok valósidejű 3D-s rekonstrukciójához GPU segítségével Tudományos diákköri dolgozat Témavezető: Csetverikov Dmitrij egyetemi tanár Készítette: Hapák József Programtervező informatikus MSc nappali tagozat Szoftvertechnológia szakirány Budapest, 2012
2 A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával valósul meg (a támogatás száma TÁMOP /B-09/1/KMR ). 1
3 Tartalomjegyzék 1. Bevezetés 3 2. Dolgozat felépítése 3 3. Szoftver és hardver környezet 4 4. Feladat 6 5. Végrehajtási Futószalag (Pipeline) Alkalmazott technológiák Szegmentálás Vizuális burok Simítás Marching Cube Textúrázás Árnyéktérképek Tesztelés Eredmények, további tervek Köszönetnyilvánítás Irodalomjegyzék 23 2
4 1. Bevezetés Napjaink film és játékipara a technológia fejlődés hatására egyre magasabb minőségű számítógépes grafikai megoldásokat alkalmaz. Ennek a magas szintnek az eléréséhez megfelelő minőségű bemenő adatokra van szükség, amik még napjainkban is nagyrészt emberi munka által kerül előállításra. Ennek a módszernek természetes több szempont szerint is korlátai vannak. Nagy szükség lenne egy teljesen automatikus 4D rekonstrukciós eljárásra, mely a rekonstruálandó színteret magas minőségben tudja digitalizálni. A feladat bonyolultsága miatt speciális stúdiót igényel. Még napjainkban is kevés ilyen stúdió került felépítésre. Még kevesebb készült kifejezetten tudományos kísérletek és a különböző alkalmazások előkészítése céljából. Hazánkban a Magyar Tudományos Akadémia Számítástechnikai és Automatizálási Kutatóintézetének Geometriai Modellezés és Számítógépes Látás Kutatólaborjában található egy ilyen stúdió. Dolgozatom témája megvizsgálni, hogy lehetséges-e a rögzített időben változó színtér valósi idejű rekonstrukciója. Illetve amennyiben ez kivitelezhetőnek bizonyul, akkor az ezt végrehajtó szoftverkomponenst megvalósítani a stúdió meglévő vezérlőszoftveréhez 2. Dolgozat felépítése A dolgozat három részre tagolódik. Az első részben összefoglaljuk a stúdió felépítését, majd részletezzük a megoldandó problémát. A második részben megvizsgáljuk a megoldási lehetőségeket, és ezek közül egyet bemutatunk. Végül összefoglaljuk az eredményeket, és a további fejlesztési lehetőségeket. 3
5 3. Szoftver és hardver környezet A Stúdió egy 5m átmérőjű, 3 méter magas fémváz, mely zöld színű vászonnal van takarva. A rekonstruálandó tér rögzítését 13 darab a JAI cég által fejlesztett CB-200GE típusú ipari kamera végzi. Ezek közül 12 egyenletesen elosztva helyezkedik el a terem oldalfalán váltakozó magasságban - hat kamera fentről, hat pedig lentről rögzíti a stúdió belső terét. Az utolsó kamera középen fent került felfogatásra. A kamerák 1624x1236 felbontású képeket küldenek Bayer kódolásban. 1. ábra. A stúdió A kamerák által küldött nagy mennyiségű adat mentéséért összesen 7 számítógép felelős. Egy számítógépet kivéve mindegyikre két kamera csatlakozik. A nagy sávszélesség biztosítása érdekében az adatok különböző merevlemezeken kerülnek tárolásra. A számítógépeken Open SUSE operációs rendszer fut. A későbbi feldolgozás érdekében minden számítógép el van látva egy közepes teljesítményű videokártyával. A valósidejű rekonstrukciót végző PC egy nagyteljesítményű Fermi architektúrás GF110 típusú grafikus processzorral szerelt GeForce 580 GTX videokártyával rendelkezik. Az alkalmazott GPU 512 darab feldolgozó processzort tartalmaz, amelyek 32-esével 16 csoportokba szerveződnek. Az elérhető maximális számítási kapacitás 1500 Gflops. A kamerák és a számítógépek Gigabit Ethernet segítségével kerültek összekötésre. Erre a sávszélességre mind a rögzítés, mind a rekonstrukció folyamán szükség van. A megfelelő minőségű képek előállítása érdekében a stúdió fontos részét képezi a megvilágítás. Túl kevés fény esetén a képek sötétek lesznek. Ha ezt hosszú expozíciós idővel próbáljuk korrigálni, akkor elmosott, részletszegény képeket kaphatunk. Túl erős megvilágítás használata esetén pedig a fényforráshoz közel eső részek telítődhetnek, a távolabbiak pedig sötétek maradnak a fényintenzitás négyzetes csökkenése végett. A stúdió felülről néhány szórt fényforrással van megvilágítva. Ezen kívül minden kamera mellé fel van szerelve egy-egy LED-eket tartalmazó panel, a kamera által megvilágított tér bevilágítása céljából. Mivel a kamerák körben egyenletesen kerültek elosztásra, ezért adódik, hogy egymás fényforrásait is látják. A szemből világító erős fény elronthatja a felvételek minőségét. A probléma kiküszöbölése érdekében a kamerák két csoportra 4
6 2. ábra. A stúdió látványterve 3. ábra. A stúdióban található egy kamera, és a hozzá tartozó fényforrás vannak osztva. Míg az egyik csoport felvételt készít, addig a másik csoport fényforrásai sötétek maradnak. Ennek a váltakozásnak az irányításáért, egy speciális mikrokontrollert tartalmazó vezérlőegység felelős. Ez a vezérlőegység végzi a kamerák szinkronizálását, és lehetővé teszi az egyes fényforrások külön-külön történő vezérlését. Programja számítógép segítségével könnyen módosítható. A kamerák két csoportra bontása minimális időeltolódást eredményez a felvételek között, de ez érdemben nem befolyásolja a rekonstrukció minőségét. 5
7 4. Feladat A munka célja megvizsgálni, hogy megfelelően megválasztott hardver és szoftver technológiák alkalmazásával lehetséges-e a stúdióban rögzített alakzatok valósidejű rekonstrukciója és megjelenítése. A munka kiinduló pontja a már elkészített utófeldolgozáson alapuló offline működés volt. Egy tíz másodperces rögzített adatfolyam feldolgozása 30 percet vesz igénybe. Ennek az időnek a nagy részét a lemezműveletek teszik ki. Az valósidejű implementációban az offline működéssel ellentétben nincs szükség a felvételek rögzítésére, illetve a minőséggel szemben a sebesség az elsődleges szempont. A probléma megoldása jelentős számítási kapacitást igényel, az ezt biztosító grafikus processzorok napjainkra érték el a szükséges teljesítményt. Ezen oknál fogva a problémakör kis irodalommal rendelkezik, és az alkalmazott hardver és szoftvermegoldások is különbözőek. Az alkalmazott stúdióban szokványos kamerák állnak rendelkezésre, más hardverkörnyezet, például mélységkamerák esetén más szoftveres megoldások is számításba kerülhetnek. A megoldandó probléma lényegesen különbözik a film és játékiparban már rég alkalmazott Motion Capture 1 technológiáknál. Hiszen míg ez utóbbiak az alakzatokon elhelyezett markerek segítségével csak a mozgás követésére, úgynevezett ritka rekonstrukcióra alkalmasak, addig esetünkben komplett, sűrű geometria létrehozása a cél. A művelet elvégzéséhez nincs szükség markerek elhelyezésére, így lehetőség nyílik állatok, vagy akár füst rekonstrukciójára is. A munka eredményét egy a stúdiót működtető már elkészült vezérlőprogramhoz integrálható kiegészítésként kellett megvalósítani. A vezérlőprogram már biztosította számunkra a képek rögzítését, és a kamerák kalibrációs adatait, ezekkel a fejlesztés során már nem kellett foglalkozni. További igény volt az eredmények egyszerű megjeleníthetősége a Visualisation Toolkit 2 segítségével
8 5. Végrehajtási Futószalag (Pipeline) Mivel napkainkban a probléma megoldása által igényelt számítási teljesítményt csak a korszerű grafikus processzorok képesek biztosítani, ezért a megvalósítás során, olyan algoritmusokat kellett választanunk, amelyek hatékonyan implementálhatóak sok magos környezetben. Ezeket az algoritmusokat egymás után fűzve kialakításra került egy végrehajtási futószalag, mely lehetővé teszi a valósidejű rekonstrukciót. Az eljárás első lépése, amint a vezérlőszoftver megkapja minden kamerától az aktuális képkockát, a képek feltöltése a videokártya memóriájába a további feldolgozás végett. Ezeket a képeket már a kamerák felvételeit fogadó gépek előfeldolgozzák: a Bayer kódolásból RGB színtérbe alakítják, és elvégzik a megfelelő átméretezést is. Ezután a képeket szegmentáljuk elválasztva a stúdió hátterét az előtértől. A szebb eredmény elérése érdekében igény esetén egy simítást is elvégezhetünk. Az eredményül kapott sziluett képekből a Vizuális burok algoritmussal térfogat modellt állítunk elő. Ezután a Marching Cubes algoritmus alkalmazásával háromszöghálót generálunk, amelyet már a videókártya hatékonyan meg tud megjeleníteni. A pipeline utolsó opcionális lépése a kapott háromszögháló textúrával történő renderelése. Ez a lépés felbomlik úgynevezett shadowmapok (árnyéktérképek) előállítására, és magára a textúrázásra. A futószalag modulárisan került implementálásra. Annak tetszőleges része külön lefuttatható, a részeredmények kinyerhetők. Ezáltal lehetőség nyílik az egyes fázisok más módszerrel való megoldására, a megoldások teljesítményének, hatékonyságának összevetésére. Egyes fázisok opcionálissá tehetők, mint például a textúrázás vagy a sziluettképek simítása. Ezt az igényt szem előtt tartva az egyes fázisokat osztályokba szerveztük. Az egyes implementációknak meg kell valósítani az adott fázis interfészét. 4. ábra. A GPU munkamenet (a szaggatott vonallal jelölt fázisok opcionálisak) Mivel az egyes fázisok nagy mennyiségű adatot dolgoznak fel, ezért a fölösleges adatmozgatásokat minimalizálni kell. Ezért az egyes fázisok közvetlen használják egymás memóriaterületeit a végrehajtás során. 7
9 5.1. Alkalmazott technológiák Mind grafikus, mind általános számítások futása során a központi egység (CPU) és a grafikus processzor (GPU) egyfajta szerver kliens szerepkörben állnak egymással. A jóval alacsonyabb számítási kapacitással rendelkező CPU-n futó úgynevezett gazdaprogram, egyszerű, főleg adatpárhuzamosságra alapozó feladatokkal bízza meg a nagy teljesítményű GPU-t. A gazdaprogram szokványos programozási nyelvek segítségével készíthető el. Esetünkben ez C++ volt mivel a komponenst beágyazó keretprogram is ezen a nyelven készült. A videokártyák programozása azonban speciális nyelvek, technológiák segítségével valósítható meg, melyek új nyelvi elemeket vezetnek be a hardver hatékony kihasználása érdekében. Ilyen nyelvi elem például a grafikában használatos mátrix, és vektorműveletek, vagy az adatpárhuzamosságot támogató szinkronizációs műveletek. Az általunk a valósidejű rekonstrukcióra használt videokártya programozására a Cuda, DirectCompute, GLSL, HLSL, és az OpenCL technológiák segítségével lehetséges. A DirectCompute és a HLSL csak Windows operációs rendszeren elérhető technológiák, így esetünkben nem voltak alkalmazhatóak. A GLSL az OpenGL grafikus könyvtár saját C szerű programozási nyelve, mellyel a korszerű renderelési futószalagok egyes fázisait programozhatjuk. Ezt a technológiát a ma kapható hardverek széles köre magas szinten támogatja. Régebben általános számítási feladatok elvégzésére is alkalmazták, de az OpenGL-lel való szoros kapcsolata miatt ezt nehézkesen, a renderelési futószalaggal való trükközéssel, hekkelésszerűen lehetett megoldani. Az OpenCL az utóbbi években jelentősen feltörekvő nyílt technológia, mely lehetővé teszi a sok és többmagos processzorok - legyen az központi feldolgozó egység (CPU), vagy grafikus processzor (GPU) - egy egységes felületen való hatékony kihasználását. Széleskörű támogatottságát a felhasználói programok írásakor kamatoztathatjuk, hiszen az otthoni multimédiás eszközök jelentős hányada támogatja. Felépítése hasonlít az OpenGL grafikus könyvtáréra, amivel magas fokú együttműködésre képes. A hatékony működés érdekében lehetőség van erőforrások megosztására a két technológia között. A CUDA-val ellentétben viszont - a technológia frissességéből adódóan - számottevően kisebb szakirodalom bázissal, a fejlesztést megkönnyítő könyvtárral és eszközzel rendelkezik jelenleg. A CUDA az nvidia zárt platformja, mely lehetővé teszi a vállalat által tervezett grafikus processzorok általános számításokhoz való hatékony kihasználását. A cég a tudományos, és ipari felhasználáshoz külön termékvonalat tart fenn Tesla néven, melyek kifejezetten általános számítások elvégzésére készültek. A piacon való elsősége révén nagyobb felhasználói bázissal, kiforrottabb eszközkészlettel rendelkezik. Az OpenCL-hez hasonlóan képes együttműködni az OpenGL grafikus környezettel. Választásunk végül a CUDA platformra esett annak magasabb színtű támogatottsága miatt, A futószalag minden fázisa, a textúrázás kivételével ezen a nyelven került 8
10 implementálásra. A megvalósításban kihasználjuk a OpenGL-lel való erőforrás megosztás lehetőségét, és igény esetén a rekonstrukció eredményét, egy már az OpenGL segítségével hatékonyan megjeleníthető Vertex Buffer Objectben adjuk át. A textúrázást a többi fázissal ellentétben GLSL-ben valósítottuk meg. Gazdaprogram oldalán a matematikai számításokat az OpenCV könyvtár segítségével végeztük el. A továbbiakban a futószalag egyes fázisait mutatjuk be részletesebben Szegmentálás A szegmentálás feladata a beérkező képek szétválasztása háttérre és előtérre. Az eljárás végeredménye egy az eredetivel megegyező méretű bináris kép, melyben a fekete pixelek háttérhez, a fehér pixelek pedig az előtérhez tartoznak. Több különböző elvű algoritmus létezik a probléma megoldására, ezek közül az egyik leghatékonyabb, legjobban párhuzamosítható a háttér alapú szegmentálás. Első lépésként a kalibrált kamerák segítségével rögzítjük az üres stúdiót - ezek az úgynevezett háttérképek. A feldolgozás során meghatározzuk az aktuális képkocka pixelei, és a háttérképek közötti abszolút különbséget az RGB szintérben. Ha a különbség átlépi a paraméterként megadott küszöbértéket, akkor a pixel az előtérhez tartozik, egyébként pedig a háttérhez. Jelöljük i-vel az előtér, bg-vel a háttér, s-sel pedig a sziluett kép aktuálisan feldolgozás alatt álló pixelét. Ekkor a szegmentálás a következő formula alapján hajtódik végre. d = i r bg r + i g bg g + i b bg b 255 ha d > threshold s = 0 egyébként Látható, hogy az algoritmus nagyon jól párhuzamosítható sok feldolgozó egységgel rendelkező architektúrákon, mint például a grafikus processzorok, hiszen az egyes pixelek feldolgozása egymástól függetlenül zajlik. Az implementációban a bináris képeket bájtok segítségével ábrázoljuk, 0 értékkel jelöljük a háttér 255-el az előtér színeit. A feldolgozandó képeket egy három dimenziós tömbben tároljuk, az egyes kamerák képeit egymás mögött. A szegmentálás első lépéseként a központi memóriában lévő tömböt átmásoljuk a videó memóriába. Ez sajnos egy meglehetősen időigényes feladat a PCI- Express busz alacsony áteresztőképessége miatt. Egy-egy pixel szegmentálását a grafikus processzor egy-egy feldolgozó processzora végzi el. A feldolgozás gyorsítása érdekében az adatokat textúraként, csak olvasható módon érjük el. Ebben az esetben a futtató környezetnek lehetősége van a grafikus processzor textúra mintavételezőire támaszkodni, 9
11 5. ábra. A feldolgozásra beérkező képek melyek nagy sebességgel képesek egyszerre több adatot beolvasni és gyorsítótárazni. Mivel az algoritmus magja minden pixelre lefut, ezért műveletigénye a képpontok számában lineáris Vizuális burok A szegmentált képekből a Vizuális burok (visual hull) nevű eljárással állítunk elő térfogat modellt. A térfogat modell egy 3 dimenziós adatstruktúra, lényegében a 2 dimenziós képek kiterjesztése. Pixelek (picture elements) helyett úgynevezett voxeleket (volumetric pixel) tartalmaznak, mely a reprezentált térfogat egy-egy pontjáról tárolnak információkat. Például orvosi felhasználás terén az emberi szövetek sűrűségértékeit. Esetünkben egy valószínűségi érték kerül tárolásra, mely jellemzi, hogy a rekonstruálandó objektum, milyen valószínűséggel található az adott voxelben. Az eljárás bemenő adatként kalibrált kamerákból származó sziluett képeket vár, tehát ismernünk kell az egyes kamerák egymáshoz képesti orientációját és pozícióját. Az ismert transzformációk alapján az egyes sziluettképeket visszavetíthetjük a rekonstruálandó térbe. A visszavetítés a térből, egy sziluett alapú gúlát metsz ki. Minden kamerára elvégezve a műveletet, megkapjuk a rekonstruálandó tér durva modelljét. Az eljárást működési módszeréből adódóan térfaragásnak (space carving) is nevezik, hiszen iteratívan a sziluettképek mentén kifaragja a rekonstruálandó alakzatot a térből. Az eljárás korlátai közé tartozik a színtér azon konkáv mélyedései, amelyek nem jelennek meg egyetlen kamera felvételen sem. Ezeket az algoritmus nem képes helyesen 10
12 6. ábra. A szegmentálás eredménye rekonstruálni. Gyakorlatban az eljárás végrehajtása során bejárjuk a készítendő modell voxeleit (volumetric pixel). A voxel térbeli pozícióijának ismeretében, lehetőségünk van annak helyét meghatározni az egyes kamerák terében. Legyen K i R i és t i az i.-k kamera, forgatási mátrixai és poziciója megfelelően. T a térfogatmodell indexteréből a rekonstruálandó térbe átvivő transzformáció. Ekkor a képpont koordinátái a szegmentált képen c i = K i (R i T [x, y, z] T + t i ) ahol x, y, z az aktuálisan feldolgozás alatt álló voxel indexei. A kapott eredmény segítségével mintavételezzük a sziluettképet. A voxel végeredményben, a mintavételezett értékek minimumát kapja eredményül. v(x, y, z) = min 1..n (tex2d(s i, c i )), ahol n a kamerák száma Mivel a sziluettből kapott gúla a kamerától való távolság alapján szélesedik, ezért mintavételezési hibák jelentkezhetnek a szegmentált képek mintavételezése során. Mivel a mipmapping algoritmus alkalmazására teljesítménybeli korlátok miatt nincs lehetőség, ezért kompromisszumokat kell kötni. A szegmentált képekre a vizuális burok eljárás előtt opcionálisan alkalmazhatunk egy simítási fázist. Ezzel valamilyen szinten kiküszöbölhetjük a mintavételezési hibákat, a teljesítmény drasztikus csökkenése nélkül. 11
13 7. ábra. A vizuális burok algoritmus Az algoritmus futás során a paraméterként megadott méretű térfogatmodellt járja be. Minden voxelben mintavételezés történik az egyes sziluettképekből. Az műveletigény tehát a képek számában, és a térfogatmodell méretével lineáris Simítás A vizuális burok algoritmusban felmerülő mintavételezési problémák részleges kiküszöbölése végett a szegmentált képeken egy simítást hajtunk végre. A valósidejű implementációban ezt egy egyszerű szeparábilis dobozszűrő segítségével valósítjuk meg. Az egyes pixelek feldolgozását ebben az esetben is a grafikus processzor egy-egy végrehajtó processzora végzi. A szűrő mérete futásidőben nem módosítható, csak a teljes program újrafordításával. Ez lehetőséget ad a fordítónak, hogy optimalizációkat hajtson végre a generált kódon (ciklusok kibontása). A szegmentált képeket csak olvasható módon textúraként érjük el. Ez esetben a grafikus processzornak lehetősége van a textúra mintavételezők alkalmazására, mely egyszerre több adatot képes elérni, mindezt gyorsítótárazva. Ez különösen előnyös a simítás szempontjából, hiszen a szűrés folyamán sokszor van szükségünk ugyanazokra az értékekre. Műveletigény szempontjából az algoritmus a képpontok számában lineáris Marching Cube A Visual Hull algoritmus által előállított térfogatmodell a Marching Cube algoritmus segítségével háromszöghálót állítunk elő. Mivel az eljárás meglehetősen népszerű a térfogatmodellek vizualizációja terén, ezért már több hatékony implementációval rendelkezik. Mi az nvidia SDK-ban található megoldást választottuk. Ennek oka, hogy meglehetősen egyszerű, de hatékony implementáció, és könnyen testre szabható igényeinknek megfele- 12
14 8. ábra. Az elmosott sziluettképek lően. A végrehajtás során az algoritmus bejárja a térfogatmodellt. A voxeleket nyolcasával veti össze a megadott küszöbértékkel. Az összehasonlítás eredménye 8 logikai érték, mely a megfelelő voxeleket minősíti aszerint, hogy az objektumban van-e vagy sem. A 8 logikai érték, mint egy bájt segítségével két úgynevezett lookup táblát címzünk. 9. ábra. A Marching Cube algoritmus különböző esetei Az első tábla segítségével döntjük el, hogy a 8 voxel által alkotott egységkocka élei közül melyik metszi el az alakzat határvonalát, azaz melyiken helyezkednek el az végeredmény alkotó háromszögháló csúcspontjai. (Lásd 9. ábra). A második tábla pedig egy index lista, 13
15 mely a kapott vertexekből alkotja meg a poligonokat. 10. ábra. A voxelek, és a csúcspontok indexei A csúcspontok végső elhelyezését a voxelek pozicióinak lineáris kombinációjával számítjuk ki a küszöbértéknek megfelelően. Legyen v 0, v 1 a két voxel koordinátiái, f 0, f 1 a voxelekben mért érték, i pedig az aktuális küszöbérték. Ekkor a csúcspont koordinátái: e = (i f 0)v 1 + (f 1 i)v 0 (f 1 f 0 ) Az algoritmus végeredményképp vertexek listáját generálja, melyek hármasával egyegy poligont alkotnak. A végeredményt visszaolvashatjuk a videokártya memóriájából egy tömbbe, vagy az OpenGL közreműködést kihasználva egy Vertex Buffer Objectekben is eltárolhatjuk a további feldolgozás céljából Textúrázás A munka első fázisa a valósidejű geometriai rekonstrukció volt. Mivel ezt sikerült megvalósítani, a generált geometria valósidejű textúrázása következett. Ezzel a problémával kapcsolatban napjainkban még meglehetősen kevés eredmény született. A létező megoldások, is általában speciális feltételek mellett biztosítanak értékelhető eredményt. Ezért a stúdióban tapasztalható körülményekhez saját módszereket dolgoztunk ki. Az offline verzióban alkalmazott textúra atlaszt előállító megoldás nem alkalmazható, annak nagy erőforrás költsége miatt. A valósidejű eredmény elérése érdekében közvetlenül a bejövő 14
16 11. ábra. A generált háromszögháló VTK-ban képekből kellett megoldanunk a feladatot. A textúrázást a renderelés alatt, fragment shaderek segítségével oldottuk meg GLSL nyelv használatával. Egy pixel színének kiszámítása során első lépésben el kell döntenünk, hogy egy adott kamera egyáltalán látja az általa reprezentált térbeli pontot. Ezt a problémát az árnyéktérképek (shadow maps) segítségével oldja meg a program. A kamerákra, jelen esetben mint fényforrásokra tekintve, előállítjuk a megfelelő árnyéktérképeket minden geometria rekonstrukciós fázis végén. Ez esetben a takarási probléma az árnyékolási problémával analóg módon megoldható. Amely pixel árnyékban van, azt a kamera nem látja. A pixel meghatározására két módszer került kidolgozásra. Az egyik módszer robusztusabb, minden kamerák által látható pixelhez képes színinformációt rendelni, de az eredménye meglehetősen zajos. A másik megoldás jóval simább életszerűbb képminőséget biztosít, de működéséhez több kamera alkalmazása szükséges. Alapértelmezésben ez utóbbi módszert alkalmazzuk, de ha a textúrázás nem sikerülne visszaváltunk az elsőre. Mindkét esetben a láthatósági problémát az árnyéktérképek segítségével oldjuk meg. Az első módszer kiszámítja a textúrázandó felület normálvektora, és a kamera irányvektora által bezárt szöget. Egy maximumkereséssel eldöntjük, melyik kamera látja legnagyobb szögből az adott pontot, majd a pixel színének mintavételezést az ehhez tartozó bejövő képből végezzük. Az algoritmus előnye a robusztusság, azaz minden esetben működik, ha az adott pontot legalább egy kamera látja. Hátránya a meglehetősen zajos kép. 15
17 Ezt a kamerák közötti éles váltások okozzák (12. ábra). 12. ábra. Az első textúrázási módszer eredménye Sokkal egyenletesebb eredményt kapunk, ha a textúrázást annak a kamerának a képe alapján végezzük, amelynek irányvektora aktuális nézőpontunkhoz képest a lehető legkisebb szöget zár be. Ezt használja ki a második módszer. Első lépésként, még a renderelés megkezdése előtt CPU oldalon kiszámoljuk, a saját és a kamerák nézeti irányvektora által bezárt szöget. A takarási probléma miatt, sajnos csak pixel szinten tudjuk meghatározni, hogy mely három kamera a legmegfelelőbb a mintavételezés szempontjából. A művelet gyorsítása érdekében sorba rendezzük a kamerákat a bezárt szög alapján. Ezt a sorrendet küldjük el a fragment shadernek. A shader a takarási információkat is figyelembe véve megpróbálja kiválasztani a három legmegfelelőbb kamerát. Ha sikerül, akkor a kamerák nézeti irányvektorában, mint bázisban felírjuk a mi nézeti irányvektorunkat. Ez a művelet egy mátrix szorzással elvégezhető. A kapott együtthatókat, mint súlyokat használva súlyozzuk az egyes kamerák képéből mintavételezett színinformációkat. Az eredmény lesz a pixel végleges színe (13. ábra. A piros színnel jelöltük az eljárás alkalmazásával nem feltextúrázható pixeleket) Ha nem sikerülne három megfelelő kamerát találni, akkor visszaállunk az első módszerre. Ez csak nagyon kevés kamera alkalmazása esetén fordul elő, illetve ha a felület eleve nem látható (14. ábra). 16
18 13. ábra. Az második textúrázási módszer eredménye 5.7. Árnyéktérképek A shadowmapping (árnyéktérképek) algoritmus, egy gyakran használt gyors eljárás valósidejű árnyékok létrehozására. Az eredeti algoritmus irányított, illetve fényszórószerű fényforrásokkal dolgozik, de többszöri alkalmazással pontszerű fényforrások esetén is alkalmazható. Az eljárás a mélységbuffer (z-buffer) segítségével határozza meg az árnyékban lévő részeket. Az első fázisban a fényforrás szemszögéből lerendereli a jelenetet. Közben a mélységbuffert egy speciális textúrába, úgynevezett árnyéktérképbe (shadowmap) mentve. A textúra texelei fényforrás és a tér egyes pontjai közötti távolságot tartalmazzák. A második fázisban ezt a textúrát a fényforrásnak megfelelő vetítéssel alkalmazzuk a jelenetre. Minden fragmentre összevetjük a textúrából mintavételezett távolság értéket a vetítés által megadott távolság értékkel. Ha utóbbi érték nagyobb akkor az adott fragment árnyékban van, egyébként pedig nem. Az implementáció során a teljesítmény növelése érdekében speciális shader programokat alkalmaztunk, amelyek az árnyéktérképek számítása során csak a mélységértékek meghatározásához szükséges műveleteket végzik el. 17
19 6. Tesztelés 14. ábra. A textúrázási módszerek összevonása A rekonstrukciós futószalag moduláris felépítéséből köszönhetően, az egyes fázisok önállóan is futtathatóak, tesztelhetőek. Ezt elősegítette az offline verzió által lementett mérési adatok, mint például kameraképek, kalibrációs adatok, sziluett képek és térfogat modellek. Az egyes fázisok teszteléséhez önálló segédprogramok készültek. Mivel a teljes futószalag futtatása jelentős időt és teljesítményt emészt fel, ezért a hibakeresést elősegítendő az egyes fázisok feladatát szimuláló megvalósítások is készültek. Ezek az offline módszer által lementett adatokat töltötték be, és szolgáltatták eredményként. A teljes futószalag tesztelésének biztosítása érdekében egy a vezérlőszoftver által teremtett feltételeket szimuláló tesztprogram készült. Megadva a háttérképek, felvételképek, és kamera kalibrációs adatok elérési útját az algoritmus betölti azokat a memóriába, majd a vezérlőszoftverhez hasonló módon használja a valósidejű rekonstrukciós komponens szolgáltatásait. Indításkor lehetőség nyílik a használni kívánt kamerák kiválasztására, a szimuláció során pedig küszöbértékek állítására. 18
20 15. ábra. A textúrázott eredmény VTK-ban 1. táblázat. Futási idők fázisonként Felbontás Seg. Blur. VH MC SM Tex. Összesen Eredmények, további tervek A munka eredményeképp sikerült egy a rekonstrukciót elvégző munkafolyamatot grafikus processzoron megvalósítani, ezzel lehetővé téve annak valósidejű végrehajtását. A puszta geometria rekonstrukción túl, opcionális lehetőség annak eredményének textúrákkal való ellátása. Az offline működéshez képest, a textúrázáshoz teljesen eltérő módszerek kerültek kidolgozásra a valósidejű végrehajtás által támasztott szűk időhatárok betartása végett. A 1. táblázatban néhány mérési eredmény található a rekonstrukciós eljárás sebességéről (A táblázatban használ rövidítések: Seg. - szegmentálás, Blur. - simítás, VH - vizuális burok, MC - marching cubes, SM - árnyéktérképek számítása, Tex. - textúrázás). A mérések különböző felbontású bemeneti képekkel készültek, a rekonstruált térfogatmodell minden esetben as volt. Jól látható, hogy munkamenet legtöbb időt 19
21 16. ábra. Árnyékszámítás a generált modellből a szegmentálás és a simítás igényli. Ezek a fázisok kevés számítási műveletet végeznek, de intenzíven használják a memóriát. Megjegyezzük, hogy a szegmentálás tartalmazza a képek videokártyába való feltöltését is. A feldolgozás szűk keresztmetszete tehát a nagy mennyiségű adat mozgatása a PCI-Express buszon keresztül, és a memóriaműveletek. A stúdióban alkalmazott kamerák másodpercenként 25 képkockát küldenek, tehát 40ms-enként egyet. A rekonstrukció idejét is ez alá az érték alá kellett szorítani a valósidejű megjelenítés érdekében. Ezt a célt a két kisebb felbontás alkalmazása esetén sikerült is elérni. Magasabb felbontású bemenő adatok alkalmazása esetén a minőség már számottevően nem javul, illetve a nagy mennyiségű adat hálózaton való átküldése is hardveres korlátokba ütközik. Terveink szerint a közeljövőben a stúdió összeköttetésre kerül a VirCA 3 rendszerrel, hogy a valósidejű rekonstrukció eredményét, egy bejárható 3D-s környezetben megjeleníthetővé tegyük. További lehetőségként fennáll a végrehajtási pipeline rugalmasságából adódóan az egyes feladatok más módszerekkel való megoldása a teljesítmény, vagy a minőség további javítása céljából. Nem került még kihasználásra a stúdió fejlett, programozható világítása sem. Megfelelő alkalmazásával növelhetjük a rekonstrukció minőségét, esetleg finomabb részletek előállítása is lehetségessé válhat
22 8. Köszönetnyilvánítás Először is szeretnék köszönetet mondani témavezetőmnek Csetverikov Dmitrij tanár úrnak, aki lehetőséget adott a projektben való részvételre, és munkám során felmerülő problémák, kérdések megoldásában mindig azonnal segített. Továbbá köszönettel tartozom az MTA SZTAKI Geometriai Modellezés és Számítógépes Látás Kutatólabor tagjainak, akik szakmai tapasztalatukkal, tanácsaikkal hozzájárultak a dolgozat elkészültéhez. 21
23 Ábrák jegyzéke 1. A stúdió A stúdió látványterve A stúdióban található egy kamera, és a hozzá tartozó fényforrás A GPU munkamenet (a szaggatott vonallal jelölt fázisok opcionálisak) A feldolgozásra beérkező képek A szegmentálás eredménye A vizuális burok algoritmus Az elmosott sziluettképek A Marching Cube algoritmus különböző esetei A voxelek, és a csúcspontok indexei A generált háromszögháló VTK-ban Az első textúrázási módszer eredménye Az második textúrázási módszer eredménye A textúrázási módszerek összevonása A textúrázott eredmény VTK-ban Árnyékszámítás a generált modellből
24 9. Irodalomjegyzék [1] Bryce E. Bayer. Color imaging array. US Patent, Patent Number: US [2] FORTH ICS, From multiple views to textured 3D meshes: a GPU-powered approach. argyros/research/gpu3drec.htm. [3] JANKO, Z., AND PONS, J.-P Spatio-temporal image-based texture atlases for dynamic 3-D models. In Proc. ICCV Workshop 3DIM 09, [4] KUTULAKOS, K., AND SEITZ, S A theory of shape by space carving. In Proc. International Conference on Computer Vision, vol. 1, [5] LAURENTINI, A The visual hull concept for silhouettebased image understanding. IEEE Trans. Pattern Analysis and Machine Intelligence 16, [6] LORENSEN, W., AND CLINE, H Marching cubes: A high resolution 3D surface construction algorithm. In Proc. ACM SIGGRAPH, vol. 21, [7] SZTAKI GMCV, The 4D Reconstruction Studio. [8] LANCE WILLIAMS Casting curved shadows on curved surfaces Computer Graphics Lab New York Institute of Technology Old Westbury, New York [9] nvidia CUDA SDK Marching Cubes Isosurfaces 23
Mozgó alakzatok valósidejű 3D-s rekonstrukciója és megjelenítése
EÖTVÖS LORÁND TUDOMÁNYEGYETEM INFORMATIKAI KAR Mozgó alakzatok valósidejű 3D-s rekonstrukciója és megjelenítése DIPLOMAMUNKA Témavezető: Csetverikov Dmitrij egyetemi tanár Készítette: Hapák József Programtervező
Grafikus csővezeték 1 / 44
Grafikus csővezeték 1 / 44 Grafikus csővezeték Vertex feldolgozás A vertexek egyenként a képernyő térbe vannak transzformálva Primitív feldolgozás A vertexek primitívekbe vannak szervezve Raszterizálás
(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.
Testmodellezés Testmodellezés (Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja. A tervezés (modellezés) során megadjuk a objektum geometria
Láthatósági kérdések
Láthatósági kérdések Láthatósági algoritmusok Adott térbeli objektum és adott nézőpont esetén el kell döntenünk, hogy mi látható az adott alakzatból a nézőpontból, vagy irányából nézve. Az algoritmusok
3D számítógépes geometria és alakzatrekonstrukció
3D számítógépes geometria és alakzatrekonstrukció 14. Digitális Alakzatrekonstrukció - Bevezetés http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr.
Számítógép felépítése
Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége
Transzformációk. Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform
Transzformációk Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform Koordinátarendszerek: modelltér Koordinátarendszerek: világtér Koordinátarendszerek: kameratér up right z eye ahead
GPU-Accelerated Collocation Pattern Discovery
GPU-Accelerated Collocation Pattern Discovery Térbeli együttes előfordulási minták GPU-val gyorsított felismerése Gyenes Csilla Sallai Levente Szabó Andrea Eötvös Loránd Tudományegyetem Informatikai Kar
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
Pontfelhő létrehozás és használat Regard3D és CloudCompare nyílt forráskódú szoftverekkel. dr. Siki Zoltán
Pontfelhő létrehozás és használat Regard3D és CloudCompare nyílt forráskódú szoftverekkel dr. Siki Zoltán siki.zoltan@epito.bme.hu Regard3D Nyílt forráskódú SfM (Structure from Motion) Fényképekből 3D
Nagy pontosságú 3D szkenner
Tartalom T-model Komponensek Előzmények Know-how Fejlesztés Pilot projektek Felhasználási lehetőségek 1 T-model: nagy pontosságú aktív triangulációs 3D lézerszkenner A 3D szkennert valóságos tárgyak 3D
Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor
Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív
Számítógépes látás alapjai
Számítógépes látás alapjai Csetverikov Dmitrij, Hajder Levente Eötvös Lóránd Egyetem, Informatikai Kar Csetverikov, Hajder (ELTE Informatikai Kar) Számítógépes látás 1 / 23 Rekonstrukció speciális hardverekkel
Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter (adat szerkezet) float x,y,z,w; float r,g,b,a; } vertex; glcolor3f(0, 0.5, 0); glvertex2i(11, 31); glvertex2i(37, 71); glcolor3f(0.5, 0,
Informatika érettségi vizsga
Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés
SZE, Doktori Iskola. Számítógépes grafikai algoritmusok. Összeállította: Dr. Gáspár Csaba. Felületmegjelenítés
Felületmegjelenítés Megjelenítés paramétervonalakkal Drótvázas megjelenítés Megjelenítés takarással Triviális hátsólap eldobás A z-puffer algoritmus Megvilágítás és árnyalás Megjelenítés paramétervonalakkal
Bánhelyi Balázs, Csendes Tibor, Palatinus Endre és Lévai. Szeptember 28-30, 2011, Balatonöszöd, Hungary
optimalizáló eljárás, Csendes Tibor, Palatinus Endre és Lévai Balázs László Szegedi Tudományegyetem Szeptember 28-30, 2011, Balatonöszöd, Hungary Közmegvilágítási feladat Adott egy megvilágítandó terület,
3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció 14. Digitális Alakzatrekonstrukció - Bevezetés http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav08 Dr. Várady Tamás,
Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter Raszterizáció OpenGL Mely pixelek vannak a primitíven belül fragment generálása minden ilyen pixelre Attribútumok (pl., szín) hozzárendelése
SZENZORFÚZIÓS ELJÁRÁSOK KIDOLGOZÁSA AUTONÓM JÁRMŰVEK PÁLYAKÖVETÉSÉRE ÉS IRÁNYÍTÁSÁRA
infokommunikációs technológiák SZENZORFÚZIÓS ELJÁRÁSOK KIDOLGOZÁSA AUTONÓM JÁRMŰVEK PÁLYAKÖVETÉSÉRE ÉS IRÁNYÍTÁSÁRA BEVEZETŐ A KUTATÁS CÉLJA Autonóm járművek és robotok esetén elsődleges feladat a robotok
Vizuális adatelemzés - Gyakorlat. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Vizuális adatelemzés - Gyakorlat Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Adatelemzés szerepe a rendszermodellezésben Lényeges paraméterek meghatározása
Csoportos üzenetszórás optimalizálása klaszter rendszerekben
Csoportos üzenetszórás optimalizálása klaszter rendszerekben Készítette: Juhász Sándor Csikvári András Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Automatizálási
1. Bevezetés 1. Köszönetnyilvánítás 1. 2. A számítógépes játékfejlesztésről 3
1. Bevezetés 1 Köszönetnyilvánítás 1 2. A számítógépes játékfejlesztésről 3 2.1. Néhány tanács játékfejlesztőknek 3 2.2. Hogyan fogjunk saját játék írásához? 4 2.3. A számítógépes játék főbb elemei 9 3.
V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus
V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus 1 Az előadás tartalma A GI helye az informatikában Az előadás tartalmának magyarázata A
2. Generáció (1999-2000) 3. Generáció (2001) NVIDIA TNT2, ATI Rage, 3dfx Voodoo3. Klár Gergely tremere@elte.hu
1. Generáció Számítógépes Grafika Klár Gergely tremere@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2010/2011. őszi félév NVIDIA TNT2, ATI Rage, 3dfx Voodoo3 A standard 2d-s videokártyák kiegészítése
Máté: Számítógépes grafika alapjai
Történeti áttekintés Interaktív grafikai rendszerek A számítógépes grafika osztályozása Valós és képzeletbeli objektumok (pl. tárgyak képei, függvények) szintézise számítógépes modelljeikből (pl. pontok,
Féléves feladat. Miről lesz szó? Bemutatkozás és követelmények 2012.09.16.
Bemutatkozás és követelmények Dr. Mileff Péter Dr. Mileff Péter Helyileg: A/1-303. szoba. Fizika Tanszék Konzultációs idő: Szerda 10-12 mileff@iit.uni-miskolc.hu Követelmények: Az órák ¾-én kötelező a
Számítógépes Grafika SZIE YMÉK
Számítógépes Grafika SZIE YMÉK Analóg - digitális Analóg: a jel értelmezési tartománya (idő), és az értékkészletes is folytonos (pl. hang, fény) Diszkrét idejű: az értelmezési tartomány diszkrét (pl. a
Képfeldolgozás Szegmentálás Osztályozás Képfelismerés Térbeli rekonstrukció
Mesterséges látás Miről lesz szó? objektumok Bevezetés objektumok A mesterséges látás jelenlegi, technikai eszközökön alapuló világunkban gyakorlatilag azonos a számítógépes képfeldolgozással. Számítógépes
EEE Kutatólaboratórium MTA-SZTAKI Magyar Tudományos Akadémia
DElosztott I S T R I B U T EEsemények D EV E N T S A NElemzé A L Y S I S se R E SKutatólaboratór E A R C H L A B O R A T Oium R Y L I D A R B a s e d S u r v e i l l a n c e Városi LIDAR adathalmaz szegmentációja
Plakátok, részecskerendszerek. Szécsi László
Plakátok, részecskerendszerek Szécsi László Képalapú festés Montázs: képet képekből 2D grafika jellemző eszköze modell: kép [sprite] 3D 2D képével helyettesítsük a komplex geometriát Image-based rendering
Véletlen sorozatok ellenőrzésének módszerei. dolgozat
Eötvös Loránd Tudományegyetem Informatikai Kar Komputeralgebra Tanszék Véletlen sorozatok ellenőrzésének módszerei dolgozat Témavezető: Dr. Iványi Antal Miklós egyetemi tanár Készítette: Potempski Dániel
Jegyzetelési segédlet 7.
Jegyzetelési segédlet 7. Informatikai rendszerelemek tárgyhoz 2009 Szerkesztett változat Géczy László Projektor az igazi multimédiás (periféria) eszköz Projektor és kapcsolatai Monitor Számítógép HIFI
Útjelzések, akadályok felismerése valós időben
Útjelzések, akadályok felismerése valós időben Dr. Hidvégi Timót Széchenyi István Egyetem Győr, 9026, Egyetem tér 1. hidvegi@sze.hu 1. Bevezető Sajnos a közúton a balesetek egy része abból adódik, hogy
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás 1a. Bevezetés http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav54 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki
Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda.
Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. BEDTACI.ELTE Programozás 3ice@3ice.hu 11. csoport Feladat Madarak életének kutatásával foglalkozó szakemberek különböző településen különböző madárfaj
Miről lesz szó? Videó tartalom elemzés (VCA) leegyszerűsített működése Kültéri védelem Közúthálózat megfigyelés Emberszámlálás
Videóanalitikát mindenhova! Princz Adorján Miről lesz szó? Videó tartalom elemzés (VCA) leegyszerűsített működése Kültéri védelem Közúthálózat megfigyelés Emberszámlálás VCA alapú detektorok Videótartalom
Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD
M5-. A lineáris algebra párhuzamos algoritmusai. Ismertesse a párhuzamos gépi architektúrák Flynn-féle osztályozását. A párhuzamos lineáris algebrai algoritmusok között mi a BLAS csomag célja, melyek annak
Tananyagok adaptív kiszolgálása különböző platformok felé. Fazekas László Dr. Simonics István Wagner Balázs
elibrary ALMS Tananyagok adaptív kiszolgálása különböző platformok felé Fazekas László Dr. Simonics István Wagner Balázs Mire jó az mlearning Tanulás bárhol, bármikor A dolgozó ember már nehezen tud időt
LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL
LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL x 1-2x 2 6 -x 1-3x 3 = -7 x 1 - x 2-3x 3-2 3x 1-2x 2-2x 3 4 4x 1-2x 2 + x 3 max Alapfogalmak: feltételrendszer (narancs színnel jelölve), célfüggvény
Miért jó nekünk kutatóknak a felhő? Kacsuk Péter MTA SZTAKI
Miért jó nekünk kutatóknak a felhő? Kacsuk Péter MTA SZTAKI Szolgáltatások halmaza: o Erőforrások, alkalmazások, eszközök o Nagy méretű, heterogén, gazdaságos, mobil, zöld El van takarva, hogy o Hol van
Rubin SPIRIT TEST. Rubin firmware-ek és hardverek tesztelése esettanulmány V1.0. Készítette: Hajnali Krisztián Jóváhagyta: Varga József
Rubin firmware-ek és hardverek tesztelése esettanulmány V1.0 Készítette: Hajnali Krisztián Jóváhagyta: Varga József Rubin Informatikai Zrt. 1149 Budapest, Egressy út 17-21. telefon: +361 469 4020; fax:
GPGPU alapok. GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai
GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu
Számítógépes alapismeretek
Számítógépes alapismeretek 0. (meta) előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc 2008 /
Informatika A versenyzők a feladatlapot mindkét kategóriában a II. kategória első fordulójának kivételével csak elektronikus formában kapják meg
Informatika A tantárgy versenyében az alább leírtakon túl az 1. pontban foglaltakat is figyelembe kell venni. A verseny két kategóriában és három fordulóban zajlik. A versenyzők a feladatlapot mindkét
Multimédiás adatbázisok
Multimédiás adatbázisok Multimédiás adatbázis kezelő Olyan adatbázis kezelő, mely támogatja multimédiás adatok (dokumentum, kép, hang, videó) tárolását, módosítását és visszakeresését Minimális elvárás
Grafikus csővezeték és az OpenGL függvénykönyvtár
Grafikus csővezeték és az OpenGL függvénykönyvtár 1 / 32 A grafikus csővezeték 3D-s színtér objektumainak leírása primitívekkel: pontok, élek, poligonok. Primitívek szögpontjait vertexeknek nevezzük Adott
Transzformációk. Szécsi László
Transzformációk Szécsi László A feladat Adott a 3D modell háromszögek csúcspontjai [modellezési koordináták] Háromszögkitöltő algoritmus pixeleket színez be [viewport koordináták] A feladat: számítsuk
A CUDA előnyei: - Elszórt memória olvasás (az adatok a memória bármely területéről olvashatóak) PC-Vilag.hu CUDA, a jövő technológiája?!
A CUDA (Compute Unified Device Architecture) egy párhuzamos számításokat használó architektúra, amelyet az NVIDIA fejlesztett ki. A CUDA valójában egy számoló egység az NVIDIA GPU-n (Graphic Processing
Tartalom jegyzék 1 BEVEZETŐ 2 1.1 SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5
Tartalom jegyzék 1 BEVEZETŐ 2 1.1 SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5 3.1 ELSŐ FUTTATÁS 5 3.2 TULAJDONOSI ADATLAP 6 3.3 REGISZTRÁLÁS 6 3.4 AKTIVÁLÁS 6 3.5 MÉRÉS 7 3.5.1 ÜGYFÉL
Podoski Péter és Zabb László
Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő
Rendszámfelismerő rendszerek
Problémamegoldó szeminárium Témavezető: Pataki Péter ARH Zrt. ELTE-TTK 2013 Tartalomjegyzék 1 Bevezetés 2 Út a megoldás felé 3 Felmerült problémák 4 Alkalmazott matematika 5 További lehetőségek Motiváció
MONITOROK ÉS A SZÁMÍTÓGÉP KAPCSOLATA A A MONITOROKON MEGJELENÍTETT KÉP MINŐSÉGE FÜGG:
MONITOROK ÉS A SZÁMÍTÓGÉP KAPCSOLATA A mikroprocesszor a videókártyán (videó adapteren) keresztül küldi a jeleket a monitor felé. A videókártya a monitor kábelen keresztül csatlakozik a monitorhoz. Régebben
A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI)
Mgr. Námesztovszki Zsolt A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI) Eötvös Loránd Tudományegyetem, Pedagógiai és Pszichológiai Kar Oktatásinformatikai rendszerek - szöveggyűjtemény Budapest, 2013.
Készítette: Trosztel Mátyás Konzulens: Hajós Gergely
Készítette: Trosztel Mátyás Konzulens: Hajós Gergely Monte Carlo Markov Chain MCMC során egy megfelelően konstruált Markov-lánc segítségével mintákat generálunk. Ezek eloszlása követi a céleloszlást. A
Teszt: Az nvidia GeForce kártyák Crysis 2-ben mért teljesítménye
Teszt: Az nvidia GeForce kártyák Crysis 2-ben mért teljesítménye Mivel úgy gondoljuk, hogy az egyes nvidia GeForce kártyák teljesítményét legjobban egy játékteszt során lehet bemutatni, így a Dirt3 teszt
IT - Alapismeretek. Feladatgyűjtemény
IT - Alapismeretek Feladatgyűjtemény Feladatok PowerPoint 2000 1. FELADAT TÖRTÉNETI ÁTTEKINTÉS Pótolja a hiányzó neveket, kifejezéseket! Az első négyműveletes számológépet... készítette. A tárolt program
OpenGL és a mátrixok
OpenGL és a mátrixok Róth Gergő 2013. március 4. Róth Gergő 1/20 A rajzoláskor a videókártya minden csúcson végrehajt egy transzformációt. Mire jó? Kamera helyének beállítása Egy objektum több pozícióra
Bepillantás a gépházba
Bepillantás a gépházba Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív memória: A számítógép bekapcsolt
3D számítógépes geometria és alakzatrekonstrukció
3D számítógépes geometria és alakzatrekonstrukció 15. Digitális Alakzatrekonstrukció Méréstechnológia, Ponthalmazok regisztrációja http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01
"A tízezer mérföldes utazás is egyetlen lépéssel kezdődik."
"A tízezert mérföldes utazás is egyetlen lépéssel kezdődik dik." A BINB INSYS Előadók: Kornafeld Ádám SYS PROJEKT Ádám MTA SZTAKI kadam@sztaki.hu Kovács Attila ELTE IK attila@compalg.inf.elte.hu Társszerzők:
Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel. Az objektumok áthaladnak a többi objektumon
Bevezetés Ütközés detektálás Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel Az objektumok áthaladnak a többi objektumon A valósághű megjelenítés része Nem tisztán
Informatika Informatika
Informatika Informatika A tantárgy versenyében az alább leírtakon túl az 1. pontban foglaltakat is figyelembe kell venni. A verseny két kategóriában és három fordulóban zajlik. A versenyzők a feladatlapot
SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.
SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu Mesterséges intelligencia oktatás a DE Informatikai
Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)
Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus
Az informatika kulcsfogalmai
Az informatika kulcsfogalmai Kulcsfogalmak Melyek azok a fogalmak, amelyek nagyon sok más fogalommal kapcsolatba hozhatók? Melyek azok a fogalmak, amelyek más-más környezetben újra és újra megjelennek?
FMC felügyeleti és vezérlőegységek
Running head FMC felügyeleti és vezérlőegységek Fejlett szivattyúvezérlési alkalmazások 3 Miért kötne kompromisszumot? Számtalan különféle szivattyúvezérlő található a piacon. De a legtöbbjüket igen különböző
Iman 3.0 szoftverdokumentáció
Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3
A 3D mozgáselemző rendszer és alkalmazásának lehetőségei. Dr. Béres Sándor PhD főiskolai docens SZTE JGYPK TSTI
A 3D mozgáselemző rendszer és alkalmazásának lehetőségei Dr. Béres Sándor PhD főiskolai docens SZTE JGYPK TSTI A 3D mozgáselemzés A teljesítményfokozás talán leghatékonyabb legális, kutatók, edzők, oktatók
Teszt Az nvidia GeForce VGA kártyák gyakorlati teljesítménye a Dirt3-ban
Teszt Az nvidia GeForce VGA kártyák gyakorlati teljesítménye a Dirt3-ban Nemrég megjelent a Codemasters nevével fémjelzett Dirt3 videojáték. Kaptunk az alkalmon és megnéztük, hogy a különböző árszegmensű
Virtuális Valóság. Működése és használata
Virtuális Valóság Működése és használata Virtuális Valóság 2 Virtuális Valóság 3 Virtuális Valóság 4 Tracking Szobaméretű szabadság Tracking 5x5 méter Six Degrees of Freedom 6 Tracking 7 Constellation
GPU alkalmazása az ALICE eseménygenerátorában
GPU alkalmazása az ALICE eseménygenerátorában Nagy Máté Ferenc MTA KFKI RMKI ALICE csoport ELTE TTK Fizika MSc Témavezető: Dr. Barnaföldi Gergely Gábor MTA KFKI RMKI ALICE csoport Elméleti Fizikai Főosztály
Termék modell. Definíció:
Definíció: Termék modell Összetett, többfunkciós, integrált modell (számítógépes reprezentáció) amely leír egy műszaki objektumot annak különböző életfázis szakaszaiban: tervezés, gyártás, szerelés, szervízelés,
Szerepjáték Project Story of my life
Szerepjáték Project Story of my life Leírás A feladat egy konzol felületű játék elkészítése, amely betekintést kíván adni egy egyetemista életébe. A játék felépítését tekintve szerepjáték, de nem a szokásos
Programozás alapjai Bevezetés
Programozás alapjai Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Programozás alapjai Bevezetés SWF1 / 1 Tartalom A gépi kódú programozás és hátrányai A magas szintÿ programozási nyelv fogalma
A számítógép egységei
A számítógép egységei A számítógépes rendszer két alapvető részből áll: Hardver (a fizikai eszközök összessége) Szoftver (a fizikai eszközöket működtető programok összessége) 1.) Hardver a) Alaplap: Kommunikációt
Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata
Kutatási beszámoló a Pro Progressio Alapítvány számára Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Mérnök informatika szak Orvosi készülékekben használható modern
Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Digitális technika VIMIAA01 9. hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma
OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem
OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OpenCV Nyílt forráskódú szoftver (BSD licensz) Számítógépes látás,
elektronikus adattárolást memóriacím
MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása
A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)
65-67 A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem) Két fő része: a vezérlőegység, ami a memóriában tárolt program dekódolását és végrehajtását végzi, az
A szerzõrõl... xi Bevezetés... xiii
TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány
Feladatok. Tervek alapján látvány terv készítése. Irodai munka Test modellezés. Létező objektum számítógépes modelljének elkészítése
Virtuális valóság Feladatok Tervek alapján látvány terv készítése Irodai munka Test modellezés Létező objektum számítógépes modelljének elkészítése Geodéziai mérések Fotogrammetriai feldolgozás Egyszerű
Programozható optoelektronikus tömbprocesszorok (POAC) és alkalmazásaik
a számú OTKA szerződés keretében végzett munka eredményeiről A téma címe: Programozható optoelektronikus tömbprocesszorok (POAC) és alkalmazásaik A téma vezetője: Tőkés Szabolcs MTA SZTAKI A kutatás időtartama:
Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.
Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017. Vizuális feldolgozórendszerek feladatai Mesterséges intelligencia és idegtudomány Mesterséges intelligencia és idegtudomány Párhuzamos problémák
ÁRAMKÖRÖK SZIMULÁCIÓJA
ÁRAMKÖRÖK SZIMULÁCIÓJA Az áramkörök szimulációja révén betekintést nyerünk azok működésébe. Meg tudjuk határozni az áramkörök válaszát különböző gerjesztésekre, különböző üzemmódokra. Végezhetők analóg
TELE-OPERATOR UTS v.14 Field IPTV műszer. Adatlap
TELE-OPERATOR UTS v.14 Field IPTV műszer Adatlap COMPU-CONSULT Kft. 2009. augusztus 3. Dokumentáció Tárgy: TELE-OPERATOR UTS v.14 Field IPTV műszer Adatlap (6. kiadás) Kiadta: CONSULT-CONSULT Kft. Dátum:
Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor
Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2
SZERZŐ: Kiss Róbert. Oldal1
A LOGO MindStorms NXT/EV3 robot grafikus képernyőjét használva különböző ábrákat tudunk rajzolni. A képek létrehozásához koordináta rendszerben adott alakzatok (kör, téglalap, szakasz, pont) meghatározó
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás 15. Digitális Alakzatrekonstrukció Méréstechnológia, Ponthalmazok regisztrációja http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav54
OpenCL - The open standard for parallel programming of heterogeneous systems
OpenCL - The open standard for parallel programming of heterogeneous systems GPU-k általános számításokhoz GPU Graphics Processing Unit Képalkotás: sok, általában egyszerű és független művelet < 2006:
Koós Dorián 9.B INFORMATIKA
9.B INFORMATIKA Számítástechnika rövid története. Az elektronikus számítógép kifejlesztése. A Neumann-elv. Információ és adat. A jel. A jelek fajtái (analóg- és digitális jel). Jelhalmazok adatmennyisége.
Keskeny Nyomda. Effektlakk forma készítés
Keskeny Nyomda Effektlakk forma készítés Tisztelt Partnerünk! A Keskeny Nyomda új Hibrid effekt UV lakkozási technológiáinak alkalmazásával, olyan egyedi és elegáns megjelenésű nyomdatermékeket hozhatunk
3D Számítógépes Geometria II.
3D Számítógépes Geometria II. 1. Bevezetés http://cg.iit.bme.hu/portal/3dgeo2 https://www.vik.bme.hu/kepzes/targyak/viiiav16 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki és Informatikai Kar Irányítástechnika
Párhuzamos programozási platformok
Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási
Valasek Gábor
Valasek Gábor valasek@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2011/2012. őszi félév Tartalom 1 Textúrázás Bevezetés Textúra leképezés Paraméterezés Textúra szűrés Procedurális textúrák
Szegedi Tudományegyetem Informatikai Tanszékcsoport SZAKDOLGOZAT. Fertői Ferenc
Szegedi Tudományegyetem Informatikai Tanszékcsoport SZAKDOLGOZAT Fertői Ferenc 2010 Szegedi Tudományegyetem Informatikai Tanszékcsoport 3-dimenziós táj generálása útvonalgráf alapján Szakdolgozat Készítette:
Al-Mg-Si háromalkotós egyensúlyi fázisdiagram közelítő számítása
l--si háromalkotós egyensúlyi fázisdiagram közelítő számítása evezetés Farkas János 1, Dr. Roósz ndrás 1 doktorandusz, tanszékvezető egyetemi tanár Miskolci Egyetem nyag- és Kohómérnöki Kar Fémtani Tanszék