Valós idejű gesztusfelismerő szoftver tervezése és fejlesztése GPU-n Microsoft Kinect szenzor segítségével. Mérnök Informatikus BSc Szakdolgozat

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Valós idejű gesztusfelismerő szoftver tervezése és fejlesztése GPU-n Microsoft Kinect szenzor segítségével. Mérnök Informatikus BSc Szakdolgozat"

Átírás

1 Valós idejű gesztusfelismerő szoftver tervezése és fejlesztése GPU-n Microsoft Kinect szenzor segítségével Mérnök Informatikus BSc Szakdolgozat Készítette: Cserháti Sebestyén Konzulens neve: Cserey György, Rák Ádám Pázmány Péter Katolikus Egyetem Információs Technológiai Kar 2013

2 Nyilatkozat Alulírott Cserháti Sebestyén, a Pázmány Péter Katolikus Egyetem Információs Technológiai Karának hallgatója kijelentem, hogy ezt a szakdolgozatot meg nem engedett segítség nélkül, saját magam készítettem, és a szakdolgozatban csak a megadott forrásokat használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen a forrás megadásával megjelöltem. Ezt a Szakdolgozatot más szakon még nem nyújtottam be. Cserháti Sebestyén 2

3 Absztrakt Az utóbbi pár évben bekövetkezett számítástechnikai fejlődésnek köszönhetően új, természetes viselkedésből eredő felhasználói felület alakult ki. A felhasználó a számítógéppel fizikai érintkezés nélkül testmozgásával és hangjával képes kommunikálni a közelében elhelyezkedő szenzorok segítségével. A szenzorok a számítógéphez csatlakoznak, ami a kapott adatok feldogozásával állapítja meg az elvégzendő feladatot. A gesztusfelismerés az informatika egy ágazata, mely az emberi mozdulatsorokból nyert adatok felismerésével, feldolgozásával foglalkozik. A videokártyák evolúciójának révén napjainkra általános célú feladatok elvégzésére is használhatók, így alkalmazásuk immár nem csak grafikai számításokra korlátozódik, ezzel új lehetőségeket teremtve a fejlesztőknek. Ilyen általános feladat lehet egy klasszifikációs eljárás futtatása, mely gesztusfelismerésre is használható. Ennek a projektnek a célja egy olyan szoftver megvalósítása, amely a Microsoft Kinect szenzor adatait felhasználva előre megadott kézgesztusok felismerésére képes GPU-n, illetve CPU-n futtatott algoritmusokkal. Az elkészítendő szoftvernek legalább tíz előredefiniált gesztust fel kell ismernie valós időben, és be kell tudnia mutatni azt, hogy a felismerő algoritmus futtatása GPU-n adott inputok esetén milyen előnyöket nyújt a CPU-n való futtatással szemben. 3

4 Abstract Recent developments in information technology led to the emergence of a new type of humancomputer interface, the Natural User Interface. This enables the user to communicate with the computer using gestures, motions and voice, through nearby sensors, without a need for physical contact. Sensors are connected to the computer, which processes the received data to infer the task to perform. Gesture recognition is a branch of computer engineering, which is concerned with recognizing and processing human gesture and motion data. In the last few years, advanced graphics hardware has been able to perform general-purpose tasks. Thus, their usage is not limited to graphics-related computations, opening up new possibilities for developers. A suitable general-purpose task is the execution of a classification algorithm for gesture recognition. The objective of this thesis project is implementing an application for recognizing predefined gestures throguh algorithms ran on the CPU and the GPU, based on the data of a Microsoft Kinect sensor. The final software should be able to distinguish at least ten different gestures in real time, and demonstrate, that the GPU-based implementation has advantages over the CPUbased one in the case of certain inputs. 4

5 Tartalomjegyzék 1. Bevezetés és motiváció Gesztusfelismerés A gesztusok bevitelére szolgáló eszközök Microsoft Kinect szenzor Kinect for Windows SDK Openkinect Libfreenect Az OpenNI (Open Natural Interaction) keretrendszer Az OpenNI keretrendszer csontvázkövetéssel kapcsolatos szolgáltatásai NITE Middleware TipTep Skeletonizer Middleware D Hand Tracking Middleware GST API Middleware Általános célú GPU programozás Összehasonlítása CPU-val CUDA OpenCL Működés Szoftverterv A felhasznált adatok Momentumok Perceptron alapú gesztusfelismerés Neurális hálózat használata Az alkalmazás megvalósítása Komponensek Grafikus program Funkciók Felhasznált programkönyvtárak A felhasznált programok és CASE eszközök Az algoritmusok értékelése Mérések különböző GPU architektúrákon Tesztelt hardverek Eredmények Összefoglalás Példa gyakorlati alkalmazásra

6 1. Bevezetés és motiváció Az utóbbi évek számítógépes technológiai fejlődésének köszönhetően egyre nagyobb teret kap az gesztus alapú vezérlés. Növekszik elterjedése az érintőképes telefonok, és a különböző szenzorokat használó játék konzolok térhódításával párhuzamosan. Ezek mellett számos ma kapható személyi számítógép rendelkezik ezzel a megoldással touchpad-ja révén. A legújabb játékkonzolok között megtalálható olyan, melynek szenzorai az utasításokat mindenféle fizikális érintkezés nélkül, csak a felhasználó mozgásából, illetve hangjából nyeri. Ezek a megoldások a játékkedvelőknek újdonságot, szórakozást, a fejlesztőknek pedig újabb kihívásokat jelentenek, hiszen USB port segítségével nem csak a konzolokhoz, hanem bármely személyi számítógéphez csatlakoztathatók. A szenzor által szolgáltatott adatok algoritmikusan feldolgozhatók a számítógép, és a benne található videokártya processzorával is. A grafikus processzorok fejlődésének eredményeképp felhasználásuk ma már nem csak három dimenziós számításokra és megjelenítésre korlátozódik, általános számítási feladatok is végezhetők velük. Ezek a számítások sokszor jóval rövidebb futási időt tesznek lehetővé, mintha a központi processzoron lettek volna elvégezve. A dolgozat ezen területek lehetőségeinek feltárásával foglalkozik. Az előzetes irodalom kutatást követően a tervezésen, és megvalósításon keresztül mutat be egy olyan gesztus detektáló GPU-n működő megoldást, mely adatait a Microsoft Kinect szenzorától nyeri. Az elkészült programot felhasználva vizsgálja a feldolgozási sebességeket különböző videokártyákon. A fő motiváció megállapítani, hogy a gesztusfelismerő feladat GPU-n való megvalósítás esetén milyen hatékonyan végezhető. A dolgozat felépítése: Bevezetés A 2. fejezet a gesztusfelismerés feladatát és beviteli eszközeit ismerteti a létező megvalósítási módokkal együtt. A 3. fejezetben bemutatásra kerül a Microsoft által gyártott Kinect szenzor, annak működése és felépítése, ezen kívül felsorolásra kerülnek lehetséges szoftveres interfészei. A 4. fejezet az egyik legnépszerűbb szoftveres interfész, az OpenNI csontvázkövetéssel kapcsolatos szolgáltatásait mutatja be. A 5. fejezet az általános célú GPU programozás alkalmazásában rejlő lehetőségeket írja le. 6

7 Feltárásra kerülnek az alapfogalmak, kitérve a CPU-tól való architekturális, és fejlesztésbeli különbségekre, illetve bemutatásra kerülnek a legelterjedtebb keretrendszerek. Tervezés Az 6. fejezet a felhasznált matematikai megoldásokkal foglalkozik. Megállapítja az adott feladathoz leginkább illeszkedő modellt, és az ennek megfelelő adatreprezentálást. Tárgyalásra kerül néhány, a szakmában használt detekciós megoldás, először általánosan elmagyarázva működésüket, végül rámutat az egyes megoldások alkalmazhatóságára a készülő programban. A 7. fejezet témája az elkészített alkalmazás tervezésének, illetve működésének bemutatása. Bemutatja a szoftver felépítését és a szoftver fejlesztése során használt CASE eszközöket. Mérések A 8. fejezet az elkészített szoftver segítségével készített detekciós algoritmus futási eredményeit hasonlítja össze a néhány, jelenleg is kapható, különböző szegmensből érkező videokártya segítségével. A 9. fejezet egy példát mutat be lehetséges gyakorlati alkalmazásra, és összefoglalja a dolgozatban elért eredményeket. 7

8 2. Gesztusfelismerés A Natural User Interface (továbbiakban NUI) egy olyan rendszer, amely az ember és a számítógép közötti kommunikációra szolgál oly módon, hogy bemenete a természetes hétköznapi emberi viselkedésből, a gesztusokból ered. A számítástechnikában régebben a konzolos, mára grafikus interfésszel rendelkező alkalmazások terjedtek el, a NUI a legújabb megoldás, amely máig fejlődés alatt áll. Legnagyobb felhasználási területe jelenleg a konzolos játékipar, de az elkövetkező években olyan területeken is elterjedhet, mint a híradástechnikai vagy számítástechnikai eszközök távirányítása, vagy éppen a gyógyászati és rehabilitációs, illetve sportolással kapcsolatos megfigyelések analizálása. Ezen gesztusok felismerése egy számítógépes tudomány, melynek célja az egyes, a felhasználó által előre definiált mozdulatsorokat matematikai algoritmusokkal felismerni. A gesztusok bármely mozdulatsor állapotváltozásából számíthatók, bármely testrészből megállapíthatók, de általános felhasználásban a fej, illetve kéz mozdulatokat használják. Célja a számítógéppel megismertetni az emberi test mozgását, ezzel egyfajta új felhasználói input felületet teremtve a számítástechnika számára, melyben nincs szükség semmilyen mechanikus berendezésre. A hagyományos parancssoros, illetve grafikus interfészek kényelmes használhatóságát az egér, és a billentyűzetek korlátozzák. Ez az új módszer teret nyit egyéb beviteli eszközök előtt, illetve lehetőséget ad az eddigi eszközök új megvilágításba helyezésére. Típusai: Offline: Azok a gesztusok, melyek az interakció után lesznek feldolgozva. Például egy vezérlési feladatnál a karlendítés, melynek teljes mozdulatsora dinamikája - ismert kell, hogy legyen a feldolgozáshoz. Online: Azok a gesztusok, melyek azonnali manipulációt végeznek. Ilyen például egy touchpad-on, vagy okostelefon kijelzőjén végzett nagyító gesztus A gesztusok bevitelére szolgáló eszközök Adatkesztyű: Egy kesztyű, ami a kéz bizonyos csuklópontjain valamilyen szenzorral van ellátva. Ez a 8

9 szenzor lehet például giroszkóp, gyorsulásmérő, vagy magnetométer. Ennek segítségével pozíciós, és elfordulási információk nyerhetők ki a csuklópontokról. Egyes készülékek képesek haptikus visszajelzést adni, így keltve az érintés érzetét. Ez a megoldás költséges, és az esetleges adatkábelek miatt kényelmetlen is lehet, ugyanakkor igen precíz adatokkal szolgálhat. Mélység kamera: Olyan speciális kamera, amely a látott térről képes mélységképet előállítani. A kép az egyes pixel pozíciókban levő szín értékek helyett egy mélység értéket tárol, melyet általában szürke skálás szín értékre normálnak. A mélység képből az emberi forma kinyerhető, illetve csuklópontjai meghatározhatók. A mélység adatot strukturált megvilágítással, vagy Time of Flight (továbbiakban ToF) módszerrel nyeri. A ToF módszer lényege, hogy az ismert fénysebesség segítségével a távolság meghatározható egy objektum megvilágításával, és az arról visszaverődött fény visszatérésének időkülönbségével. A két technológia között a legfőbb eltérés a látótávolságban, és a fényérzékenységben mutatkozik meg. Az egyszerűbb infra fényt használó kamerák mára olcsón hozzáférhetők, kültéren a napfény miatt nem, de beltéren kényelmesen használhatók főleg beviteli eszközként. A legismertebb ezek közül a Microsoft által gyártott Kinect szenzor. A ToF kamerák drágábbak, kültéren is használhatók, főleg az iparban alkalmazzák őket különböző feladatok megoldására. Sztereó kamera: Két egyforma kamera használatával - melyeknek az egymáshoz képesti elhelyezkedése ismert - generálható egy mélység kép, ennek arányai nem feltétlenül helyesek, de ahhoz elegendők, hogy az emberi alakzat könnyen kiszűrhető legyen ezáltal előkészítve az adatot a további feldolgozásra. A két kamera közötti reláció kiszámítására ma már több megoldás is fellelhető, legtöbbjük egy egyszerű sakktáblával elvégezhető. (pl. OpenCV keretrendszer StereoCalibrate szolgáltatása). Általános kamera: Bármely két dimenziós kamera használható gesztusfelismerésre oly módon, hogy a felismerő algoritmusok képfeldolgozási feladatokat végeznek. Ennek előnye, hogy nem szükséges speciális berendezés hozzá, ugyanakkor bonyolultabb szoftver alapú felismerési eljárás készítése szükséges. A nagyobb cégek által készített megoldások pontosságban nem maradnak el a mélység kamerás megoldásoktól. 9

10 Vezérlő alapú gesztusok: Olyan eszközök, melyekkel az interakció során a felhasználónak érintkeznie szükséges. Jó példa egy érintőképernyő, vagy touchpad, ahol a felhasználó a gesztust a felületekhez súrlódva teszi. Ilyen eszköz a Nintendo Wii, vagy a Playstation Move elnevezésű távirányítója, ezeket a felhasználó a kéz meghosszabbításaként használja. Algoritmusok: A beérkező adatoktól függően a felismerés különféle módokon történhet. Megkülönböztetünk három dimenziós modell alapú, és megjelenés alapú algoritmusokat. A három dimenziós modell lehet volumetrikus, illetve csontváz alapú. A volumetrikus megvalósítást főleg a számítógépes animáció iparágban használják. A modellek bonyolult, három dimenziós felületekből épülnek fel, melyek állapot-változásainak felismerése komoly számítási képességet igényel. A csontváz alapú modell csak a csukló pontokat veszi figyelembe, a későbbi számítások csak ezen paraméterek felhasználásával történnek. Ezzel drasztikusan csökken a számítási igény, így gyorsabb algoritmusokat eredményez, illetve a feldolgozás a test bármely csuklópontjára felhasználható. Az egyes csuklópontok három dimenziós pozíciós és orientációs adatai rendelkezésre állnak. A megjelenés alapú modellnél a paramétereket magáról a két dimenziós a képről, illetve a videó esetén kép szekvenciáról számolja egy template-elt adatbázis segítségével. Ennél a módszernél sok képfeldolgozási feladat elvégzése szükséges, ugyanakkor a szegényesebb rendelkezésre álló adatok ellenére igen hatékony megvalósításai léteznek. 1. A gesztuskövetés különböző követési és analizálási módjainak hierarchikus ábrája (forrás: 10

11 3. Microsoft Kinect szenzor A Microsoft Kinect egy mozgást észlelő eszköz, amit a Microsoft az általa gyártott XBox 360 játékkonzolhoz készített. A cél egy NUI-t megvalósító eszköz elkészítése volt, amely konkurenciaként szolgál a Nintendo Wii, és a Playstation Move kontrollereinek. Ez az előzőekben említettekkel szemben semmiféle fizikai kontaktust nem igényel, mindössze a felhasználó testi viselkedésének és hangjának megfigyeléséből nyeri bemeneti adatait. Több szenzorból épül fel, elől találhatók a színes, és a mélység kép rögzítésére alkalmas kamerák. Ezek felbontása 640x480, és 30 Hz-es frekvencián működnek. A mélység kamera részei egy megvilágító, amely egy infra hálót vetít maga elé, illetve egy infra tartományt látó lencse, amely képes az előzőleg említett hálót látni. A mélység képet az észlelt infra háló eltorzulásából kreálja. Az eszköz ezen kívül rendelkezik tömb mikrofonokkal, egy baloldalt, három pedig jobboldalt helyezkedik el. Ezek segítségével a kapott hangbemenet térbeli irányát is képes feltérképezni. Az eszköz a sajátos hosszúkás formáját ezen mikrofonok elhelyezkedése miatt kapta. A talp felfüggesztésénél elektromos motorral rendelkezik, ezzel a kamerák dőlésszögét automatikusan is képes állítani, amennyiben látóteréből valamely fontos adat (például az emberi fej) hiányát érzékeli. 2. A Microsoft Kinect szenzor felépítése (az eredeti kép forrása: gamesforkinect.org) 11

12 3.1. Kinect for Windows SDK 2011 nyarán a Microsoft kiadta a Windows 7 operációs rendszerre szánt hivatalos fejlesztői környezetét, a Kinect for Windows SDK-t, amely magában foglalta a driver-eket, és lehetőséget biztosított számos programozási nyelven való hozzáférésre (C++, C#, Visual Basic) Visual Studio fejlesztői környezetben. Ingyenesen letölthető, hozzáférhető, ugyanakkor kereskedelmi célokra nem használható. Szolgáltatásain keresztül elérhető a mélység, és a színes kép folyam. Bizonyos hangfeldolgozási feladatok megoldására és szövegfelismerésre is alkalmas. Nem utolsó sorban képes volt csontvázkövetésre maximum két fő esetén tavaszán újabb verziót adtak ki, amelyben továbbfejlesztették a csontvázkövetést, kibővítették a szövegfelismerési funkció nyelveit, és újabb országokban tették elérhetővé. Ezen kívül újabb funkciókkal is bővült, mint például felvételi, vagy visszajátszási lehetőség. A csontvázkövetés immáron nem csak álló, de ülő helyzetben is képes az emberi felsőtest követésére. 3. A Microsoft Kinect for Windows SDK adatai által megjelenített csontváz modellek (forrás: blogs.msdn.com) 3.2. Openkinect Libfreenect Nyílt forrású keretrendszer Microsoft Kinect szenzor adatainak eléréséhez, amit az OpenKinect Community fejleszt. Több platformon is elérhető, jelenleg elérhető szolgáltatásai közé tartozik a színes, és a mélység kép lekérése, illetve a mozgató motor vezérlése. A hang szolgáltatások éléréséhez szükséges interfészének fejlesztése jelenleg folyamatban van. Szolgáltatásai számos programozási nyelven elérhetők (C/C++, C#, Java, Matlab, Python, Ruby). 12

13 3.3. Az OpenNI (Open Natural Interaction) keretrendszer Az OpenNI egy ingyenesen használható, a PrimeSense által fejlesztett keretrendszer mely különböző NUI-k, így például mélység kamerák jeleinek eléréséhez és feldolgozásához biztosít szolgáltatásokat. Kezdetben a Microsoft Kinect szenzort támogatta, később kiegészült a hasonló elven működő Asus Xtion és a PrimeSense szenzor támogatásával is. Felépítése réteges, a legmélyebb réteg feladata elfedni a hardvert, és egységes kimenetet biztosítani a következő rétegek számára. A következő rétegben helyezkednek el az úgynevezett Middleware alkalmazások, melyek az alap OpenNI szolgáltatásokat használva állítanak elő különböző kimeneteket, amiket az eggyel feljebb levő rétegbeli célalkalmazás használ. A réteges felépítés előnye, hogy az elkészített szoftver, szenzor cseréje, vagy új szenzor támogatása esetén nem igényel nagy változtatásokat, csupán a legalsó réteg módosítása szükséges. Szolgáltatásai elérhetők, ugyanakkor megvalósításai zártak, ennek ellenére használható kereskedelmi célokra is. 4. Az OpenNI rétegelt architektúrája (forrás: 13

14 4. Az OpenNI keretrendszer csontvázkövetéssel kapcsolatos szolgáltatásai A feladat megvalósításához a Microsoft Kinect szenzora lett felhasználva. Ennek oka, hogy népszerűségének, illetve alacsony árának köszönhetően elterjedt és könnyen hozzáférhető. A rendelkezésre álló szenzor működéséből adódóan a detekció a fentebb említett összes módon történhetne, hiszen rendelkezik mélység képpel, amiből volumetrikus modell és csontváz is építhető, illetve rendelkezik színes kamerával, amivel megjelenés alapú megoldás is elvégezhető. Az előzőekben felsorolt szoftveres interfészek és azok lehetőségeinek ismeretében jelen feladathoz a csontvázkövetéses megvalósítás a leghatékonyabb módszer. A szoftverrel kapcsolatban alapvető elvárás a több platformon való futtathatóság, így a Microsoft saját megoldása ebben az esetben nem a legmegfelelőbb választás. A Libfreenect önmagában nem rendelkezik csontvázkövetés szolgáltatással, de léteznek erre épülő, mások által készített megoldások, mint például az Igalia Skeltrack nevű program könyvtára, mely a felsőtest és a fej követésére képes. A legtöbb lehetőség az OpenNI keretrendszerhez készült, mint Middleware szoftver és programkönyvtár, a felhasznált modul tehát a következőkben felsorolásra kerülők közül lett kiválasztva, mivel egyes esetekben megjelenhet egyszerre a platformfüggetlenség, és a több szenzoros felhasználási lehetőség is, így az alábbiakban ezek kerülnek bemutatásra NITE Middleware Az első, és egyben a legnépszerűbb, az OpenNI szolgáltatásait igénybe vevő middleware, melyet maga a PrimeSense fejleszt. Fő szolgáltatása a mélység képből az ember kiszűrése, illetve az arra való virtuális csontváz illesztés, és ezen való gesztusfelismerési feladatok elvégzése. 5. A szenzor által generált mélység kép, és a NITE csontváz csuklópontjai 14

15 Algoritmusai optimalizáltak, minimális processzor használat jellemzi. Több platformon (Windows, Linux, Mac OS, Android), illetve architektúrán (x86, ARM) elérhető. Egy időben több felhasználó csontvázának követésére is képes. A virtuális csontváz tizenöt csuklópontból áll, melyek pozíciós koordinátái és orientációi elérhetők TipTep Skeletonizer Middleware Egy nyílt forráskódú middleware, amely a kézfej köré képes virtuális csontvázat építeni, és a továbbiakban azt követni. Szolgáltatásai Windows alatt,.net keretrendszeren keresztül érhetők el D Hand Tracking Middleware Egy GPU gyorsítással rendelkező három dimenziós kézfejkövetést, és megjelenítést végző middleware. Nem csak a csontvázat, hanem a teljes kéz három dimenziós rekonstruálását is képes elvégezni. Lehetőséget nyújt külső, színes digitális tükörreflexes kamera képének felhasználására, így felhasználhatósága nem csak a mélység szenzor színes kamera képére korlátozódik. Azonban a GPU-s gyorsítás Nvidia CUDA programkönyvtárral működik, így szolgáltatásai csak Nvidia GPU-val rendelkező videokártyával felszerelt számítógépről elérhetők. Modern GPU-val szerelt videokártya mellett húsz képkockát képes egy másodperc alatt megjeleníteni. Ez az érték egyelőre nem éri el a széles körben használt 25 képkocka/másodperces szabványt, ugyanakkor a GPU-k architekturális fejlődésével a jövőben nőni fog GST API Middleware Egy csontvázkövetést, és testpózt felismerő keretrendszer, melyet a Global Sensing Technologies fejleszt. Csontvázkövetéshez a NITE middleware szolgáltatásait használja, azonban tudása kiegészül a testhelyzetek detektálásával, így képes megállapítani, hogy a felhasználó ülő, vagy álló helyzetben tartózkodik-e, keze felemelve, vagy leengedve helyezkedik-e el. Ezen kívül képes az adatok rögzítésére is. Felhasználása Windows operációs rendszeren lehetséges, Visual Studio IDE-ben C++ nyelven. 15

16 5. Általános célú GPU programozás Az elmúlt években bekövetkezett grafikus processzor (Graphical Processing Unit, továbbiakban GPU) architektúra fejlődésének köszönhetően kialakult az úgynevezett általános célú GPU programozás (General Purpose GPU Programming, továbbiakban GPGPU). Lényege, hogy az új architektúrát kihasználva a GPU-t nem csak grafikai számolásokra használjuk, hanem bármely más általános számítási feladatra. Így egyrészt tehermentesíteni lehet a CPU-t, hogy erőforrásait ezzel párhuzamosan más feladatokra használhassa fel, vagy teljesen kiváltani, mivel egyes feladatok sokkal gyorsabban elvégezhetők GPU-n Összehasonlítása CPU-val A lényeges különbség a CPU-val szemben, hogy a GPU-k sokkal több számítási egységgel rendelkeznek. Ezek az egységek jóval egyszerűbb felépítésűek, viszont egy adott feladatot párhuzamosan képesek végrehajtani. A jelenleg kapható CPU-k általában 2, vagy 4, illetve 8 magosak (például Intel Xeon E5 széria), ezek az egységek különböző adatokon különböző feladatokat tudnak végezni. Egy modern GPU, mint például jelenleg az Nvidia zászlóshajójának számító GeForce GTX Titan 2688 számoló egységgel rendelkezik, míg az AMD Radeon HD al, ennek dupla GPU-val szerelt változata a Radeon HD 7990 pedig 4096 maggal. Ezek az egységek különböző adatokon azonos feladatokat tudnak elvégezni. A GPU-s megvalósítások lényege, hogy a számolásokat lassabban, de nagyon sok szálon végezze, így a teljesítmény növekedés lehetősége mindig egy feladat minél hatékonyabban végezhető párhuzamosíthatóságán múlik. 6. A CPU és a GPU Architektúra (forrás: selkie.macalester.edu) 16

17 5.2. CUDA A Compute Unified Device Architecture (továbbiakban CUDA) egy paralel számítási platform és programozási modell, melyet az Nvidia az általa gyártott videokártyákhoz fejlesztett kifejezetten GPGPU programozás megvalósítására. Hozzáférést biztosít a fejlesztőknek az NVidia kártyán található CUDA GPU-k virtuális utasításkészletéhez, és memóriájához. C,C+ +, és Fortran nyelven programozható, az első kettő az Nvidia LLVM alapú nvcc-vel fordítható, míg a Fortran fordítót a The Portland Group vállalat fejlesztette. Geforce 8-as szériától felfelé programozhatók segítségével Nvidia videokártyák, mivel ebben a szériában jelentek meg először az univerzális shader egységek. Egyszerre biztosít alacsony és magas szintű programozható interfészt a fejlesztők számára, melyek elérhetők Windows, Linux, és Mac OS operációs rendszeren. Nagy limitáció, hogy támogatása csak Nvidia kártyákra vonatkozik, így egy fejlesztési feladatnál komoly megfontolást kíván a felhasználása, mivel az OpenCL platform mind a két nagy gyártó termékeit támogatja, így elkerülhető a felesleges fejlesztés. 7. A CUDA platform programozási nyelvei és támogatott videokártyái (forrás: developer.nvidia.com) 17

18 5.3. OpenCL Az Open Computing Language (továbbiakban OpenCL) egy keretrendszer, amely arra lett létrehozva, hogy segítségével olyan programkódot lehessen előállítani, mely egyszerre tud futni különböző platformokon (pl. CPU, GPU, vagy jelfeldolgozó (DSP) processzorokon), ezekhez az eszközökhöz paralel megvalósítási lehetőségeket ad. Az OpenCL eszközökön futtatható kernel C99 nyelven írható, a host kód C, illetve C++ nyelven, a két legnagyobb videokártya gyártó termékei programozhatóak vele. Érdekesség, hogy az AMD a saját fejlesztésű GPGPU keretrendszerének, a CTM-nek (Close To Metal) támogatását megszüntette, és az OpenCL platform támogatására állt át Működés Mindkét megvalósítás azonos elven működik, szintaktikájuk is nagyon hasonló. A programok készítése során mindig van egy CPU-n futó rész, ami speciálisan a GPU-n futtatott függvények, a kernelek felparaméterezését és futtatását végzi [1]. A kernelek be-, és kimenő paraméterei általában nagy méretű tömbök. A kernel lefutásakor a GPU számoló egységei nagyon sok szálat elindítanak, amik az átadott tömb egy-egy adott indexén elvégzik a kernelben leírt feladatot. A kernelek futtatása előtt az adatokat fel kell tölteni a videokártya memóriájára, lefuttatás után pedig visszaolvasni a központi memóriába. A szálak munkacsoportokba szerveződnek, egymással csak azonos munkacsoportban levő szálak kommunikálhatnak, így a feladatok kiosztásánál ügyelni kell a megfelelő struktúrára és ütemezésre. A GPU-n három memória terület különböztethető meg: globális, lokális, vagy privát. A globális memória a kártyán helyezkedik el, ezt minden szál képes írni-olvasni, ugyanakkor a többi memóriához képest lassabb, így használata csak igen indokolt estben javasolt. A lokális memória a GPU chip-ben helyezkedik el, ezt az egy munkacsoporton belüli szálak képesek együtt elérni. A privát memória egy adott szálhoz tartozó memória. Ez a leggyorsabb, ugyanakkor mérete a legkisebb. Az optimális működés eléréséhez a megvalósítás előtt meg kell tervezni a munkacsoportok struktúráját, a közöttük levő kommunikációt, illetve azt, hogy mely memória területek kerüljenek felhasználásra. 18

19 6. Szoftverterv A szoftver implementációja előtt a detekciós algoritmusok, és azok bemeneteinek előfeldolgozása került megtervezésre A felhasznált adatok Jelen esetben a felismerendő gesztus mintákat egymást követő pontok halmazaként értelmezzük, amely a kéz mozgásának útvonalát követi. A gesztusfelismerő algoritmusok ezen ponthalmazt, illetve az ebből számolt néhány specifikus kép momentum értékeket kapják. Az útvonalak tíz pontot fognak tartalmazni, melyeknek a két dimenziós koordinátái lesznek felhasználva. A csontvázkövetés nagy sebessége miatt ez a tíz pont nagyon rövid útvonalat eredményez. Így a rendszer csak egy bizonyos távolság elmozdulása után vesz fel új pontot. Ezzel az eljárással egyben csökken a csontvázkövetés zajból eredő pontatlansága, illetve időfüggetlenné is teszi az egyes formák kreálását. A későbbi felhasználás céljából érdemes a kapott ponthalmazt normalizálni. Az egyes minták összehasonlítása nehézkes, mivel csak az azonos méretarányú, azonos pozícióban levő, azonos elforgású objektumok felismerhetők. Ezen korlátok kiküszöbölésére célszerű az úgynevezett kép momentum értékeket kiszámolni és a halmazhoz adni Momentumok Képfeldolgozás és számítógépes grafika területein használt eljárás a kép momentumok meghatározása. A momentumok adott súlyú átlagai a kép pixelinek. Segítségükkel pozíció, méret, és elforgatás invariáns detektálás végezhető. Jelen feladatnál ezek az értékek nem a teljes képre, hanem az összes detektálásra átadott ponthalmazra lesznek kiszámolva, ezzel próbálva mindegyikhez specifikus adatokat hozzáadni, melyeknek segítségével még inkább megkülönböztethetők lesznek egymástól [2]. Az egyes momentum értékek az előzőekből számolhatók, így kinyerésük kötött sorrendben történik. Legelőször az úgynevezett nyers momentumokat szükséges kiszámolni. M ij = x i y j I (x, y ) x y A képletben az I(x,y)-nal elem a denzitás, ami képfeldolgozás esetén a színt jelölné, jelen 19

20 feladatnál ez az érték mindig 1-gyel van megadva, mivel az útvonal halmaznál a színek nem számítanak. Ezek a nyers momentumok még nem invariánsak sem az eltolásra, a skálázásra, sem pedig a forgatásra, de segítségükkel megkaphatók az ezekhez megfelelő értékek. Ezután kiszámíthatók a transzláció invariáns momentumok, az úgynevezett centrális momentumok. Az alakzat, vagy kép súlypontja ezután könnyen megkapható. ( Xc,Yc)=( M 10 M 00, M 01 M 00 ) A további centrális momentumok ezen értékek segítségével digitális adatok alapján az alábbi formula alapján számíthatók: i j U ij = (x x c ) ( y y c ) I ( x, y) x y Annak érdekében, hogy az alakzat felismerést méretfüggetlenné tegyük, a skála invariáns momentum értékek kiszámítása szükséges. N ij = U ij 1+ i+ j U 00 2 Végül ezek felhasználásával a rotáció invariáns momentumok adhatók meg, melyek száma Hu halmaz esetén hét, illetve a Flusser-féle megadásban hat. 8. A rotáció invariáns momentumok számítási képletei (forrás: opencv.willowgarage.com) Jelen feladat megvalósításához az egyes útvonalakat vesszük mint képeket, és azok momentumait számoljuk, ehhez a Hu-féle hét momentumot használjuk. A szoftver a pontosabb detektálás érdekében így nem csak a normalizált trajektóriát, de a hozzá tartozó ugyancsak normalizált nyomatékokat is figyelembe fogja venni. 20

21 6.3. Perceptron alapú gesztusfelismerés A feladat első megközelítésben, perceptronok segítségével próbál meg detektálni. A perceptron egy mesterséges neuron, melynek a kimenetén szignum a nemlineáris függvénye. A mesterséges neuron egy matematikai modell, melyet biológiai modell ihletett. A neurális hálózatok egyik alapvető építő eleme, de bizonyos feladatok elvégzésére önmagában is képes. Bemenetén több elem lehet, melyeket egy darab kimenetre képez le, ennek értékei -1, illetve 1 lehetnek. Ezzel gyakorlatilag egy klasszifikációt végez, a térben egy hipersíkot képez, és eldönti, hogy az egyes bemenetek a hipersík mely oldalára esnek. Minden bemenethez tartozik egy súlyozó tényező. A perceptron összes bemenetét megszorozza a hozzátartozó súlyokkal, ezeket az értékeket összegzi, ezt az összeget egy meghatározott bias értékkel eltolja, végül ennek az értéknek visszaadja a szignumát, amely pozitív eredmény esetén +1-et, negatív eredmény esetén pedig -1 et ad eredményül. 9. A perceptron felépítése Látható, hogy N bemenetű perceptronhoz N+1 szabad paraméter tartozik, melyek a súlyok és a bias érték. Ezek megfelelő megadása határozza meg, hogy a perceptron milyen típusú bemeneteket fog tudni elválasztani. Egy perceptron egy mintáról döntheti el, hogy az általa beállított paraméterek alapján igaz, vagy hamis az értéke. A paraméterek beállítása a túl sok szabad paraméter miatt algoritmikusan történik, a célnak megfelelő választás lehet genetikus algoritmus implementálása, ám ennek futási ideje a mai számítógépes technikával napokig is eltarthat. A gyakorlatban az úgynevezett Rosenblatt tanuló algoritmus alkalmazása az elfogadott, ami egy felügyelt tanuló algoritmus, a tanítást tanulóhalmaz alkalmazásával végzi. A tanulóhalmaz egyes elemei bemenet, és a hozzá kívánt kimenet párosok. Ilyen módon megadható, hogy az egyes bemenetek a képzett hipersík mely oldalára essenek. Ez egy rekurzív algoritmus, mely bemenetét a tanuló halmazból, illetve az előző iterációk kimenetéből kapja. A rekurzió a súlyok halmazára vonatkozik, melyeknek az algoritmus 21

22 lefuttatása előtt kezdeti értéket kell adni. Az algoritmus ezeket a súlyokat lépésről lépésre finomítja, végül megragad egy optimális állapotban, ezután a súlyok értéke többet nem változik. 10. Perceptron tanító algoritmus folyamatábrája A készülő program lehetőségei között szerepel egy egyszerű perceptron hatékonyságának a kipróbálása. Minden detektálni kívánt, és előre rögzített trajektóriához egy perceptront szükséges alkalmazni, melynek bemenetén a trajektória koordinátái, illetve momentumai szerepelnek. A legfrissebb detektálni kívánt mintát minden változás után az összes perceptronnak átadjuk, és a szerint dől el, hogy melyik mintát választja, hogy melyik adott +1es kimenetet. A súlyok, és a bias beállítása Rosenblatt algoritmussal történik. A tanulóhalmazt úgy választjuk meg, hogy a detektálni kívánt trajektóriához a kívánt kimenetet +1-re állítjuk be, illetve felvesszük a halmazba az összes többi mentett mintát -1-es kimenettel. Ezzel a módszerrel csökkenthető az esetleges átfedés a döntések között. Ez a módszer akkor lehet igazán hatékony, ha relatíve kevés mintát szeretnénk egymástól megkülönböztetni, és a döntési tartományok között nem nagy az átfedés, mert ellenkező esetben többszörös detekció történik Neurális hálózat használata A feladat második második megközelítésben egy bonyolultabb struktúrát, neurális hálózatot használ, melynek erőforrás igénye nagyobb, ugyanakkor komplexitásából kifolyólag pontosabb detektálás végezhető vele. Mesterséges neuronokból hálózat építhető, oly módon, hogy az egyes neuronok kimeneteit következő neuronok bemeneteire kötjük, ezáltal sokkal komplexebb problémákat lehet megoldani. A szakmában a legjellemzőbb a teljesen visszacsatolt és előrecsatolt hálózatok használata [3]. 22

23 Hopfield hálózatok A teljesen visszacsatolt, vagy más néven Hopfield hálózatok bináris mintákkal betaníthatók és képesek asszociatív memóriaként működni a minták bináris reprezentálása mellett. Hebbi tanítással egy W súlymátrix képezhető. A megfelelő átmeneti szabállyal a hálózat egy bemenet hatására a betanított bemenetek állapotain iterál, majd egy idő után valamelyikben megragad. Ezzel a módszerrel csak optimális, de nem tökéletes megoldást kapunk, hiszen a rendszer a legtöbb esetben a lokális és nem pedig a globális minimumot találja meg. Az optimális megoldás megtalálása sok feladatnál kielégítő megoldás, főleg amellett, hogy O( N 2 ) idő alatt hajtja végre, így valós idejű futást eredményez. Előrecsatolt hálózatok Az előrecsatolt hálózatok olyan többrétegű hálózatok, melyekben az egyes neuronok kimeneteit a következő rétegben levő neuronok bemeneteire kötjük. 11. Előrecsatolt neurális hálózat felépítése A hálózat első rétege a bemeneti réteg, itt nem találhatók neuronok, csak az inputok, melyek a következő rétegben levő összes neuronnak az adott sorszámú bemenetei. Ezután következnek a rejtett rétegek amikből feladattól függően több is lehet. Végül a kimeneti rétegben található neuronok kimenetein jelenek meg az eredmények. 23

24 A neuronok kimenetein a perceptrontól eltérően nem a szignumot, hanem általában valamelyik gyengén nem lineáris függvényt alkalmazzák, így a végeredmények a kimeneteken tört számok is lehetnek. A szabad paraméterek az éleken levő súlyok, illetve az egyes neuronok eltolási értékei. A perceptronhoz hasonlóan itt is ezek behangolása határozza meg a hálózat működését. Meghatározhatók genetikus, vagy hegymászó algoritmussal, illetve taníthatók Error Back Propagation algoritmussal. Több területen is felhasználható, az egyik fő alkalmazási területe a klasszifikáció, melynél megadott inputokhoz adhatunk meg kívánt kimenetet, és ezek alapján a hálózat betanítható. Egy másik felhasználási terület valamely rendszer működésének a közelítése úgy, hogy csak a bemeneteket és a kimeneteket ismerjük. Ezen kívül elterjedt felhasználása az úgynevezett előrejelzés, melynél egy adott sorozat jövőbeli elemeit próbálják megbecsülni, ez leginkább a tőzsdén, és egyéb pénzügyi területeken játszik szerepet. A készülő program előrecsatolt hálózat felhasználásával detektál [4], a bemeneti rétege 25 elemből áll, ezek a trajektória koordinátái a kezdő, origóban levő pontot elhagyva, illetve a momentumok. A kimeneti rétegben annyi neuron található, ahány különféle gesztusra próbálunk detektálni. Az itt megjelenő kimenetek közül arra dönt, amelyik értéke +1, vagy ahhoz a legközelebb eső. A gesztusfelismerés felfogható úgy, mint egy klasszifikációs feladat, amelynél az egyes gesztusokhoz csoportokat rendelünk, így egy klasszifikációs neurális hálózat tervezése szükséges. A hálózat megtervezése Matlab Neural Networks toolbox-szal készült. A toolbox lehetőséget biztosít minta felismerő hálózat tervezésére és betanítására, így a szoftverben nem szükséges a tanító algoritmust implementálni. Ebben az esetben a tanítás helyett a szoftver, illetve a Matlab közötti adatcserét kellet megoldani. A Matlab-ban a mintafelismerő, és a hálózat tervezése, betanítása varázsló segítségével oldható meg. A varázsló automatikusan egy rejtett rétegű hálózatot tervez a neuronok kimenetein tangens hiperbolikus függvénnyel. A rejtett réteg méretét érdemes a bemeneti rétegnél háromszor nagyobbra választani, így a megvalósítás során ez az érték 80-ra lett beállítva. 12. A Matlab szoftverben tervezett hálózat 24

25 A betanított hálózat súlymátrixainak és eltolási vektorainak kimentése után az értékeket a szoftver induláskor betölti, és létrehozza a megfelelő hálózatot. Mind a két réteghez egy-egy súlymátrix és eltolási vektor tartozik. A kimeneti rétegben megjelenő értékek kiszámítása mátrix vektoros reprezentáció esetén a következő a következő képletekkel történik: L1=φ (W1 X1+B1) Out=φ(W2 L1+ B2) A képletekből látható, hogy a műveletek nagy része mátrixok vektorral való szorzása. Az eredményvektor egyes pozícióiban található részeredmények képzése párhuzamosan is elvégezhető feladat, ezt használja ki a detekció videokártyán történő megvalósítása. 25

26 7. Az alkalmazás megvalósítása A megvalósításnál a cél egy csontvázkövető és gesztusdetektáló middleware szoftver megírása volt, melynek szolgáltatásai egy jól definiált interfészen keresztül érhetők el. Megadható, hogy perceptronos, vagy előrecsatolt neurális hálózattal végezzen detektálást, illetve az algoritmust CPU-n, vagy GPU-n futtassa. Legyen képes percepron betanításra és neurális hálózat esetén Matlab szoftverből kapott paraméterek beállítására. Ez a modul egyrészt a NITE midleware-re épül, ennek következtében a rétegelt architektúrában felette helyezkedik el - mivel annak csontváz adataiból képzett mintákon végez detekciót - másrészt mellé is helyezhető, mivel csontváz adatokat képes tovább közvetíteni. A megírt middleware szolgáltatásainak demonstrálására, és a kitűzött mérések elvégzésére egy grafikus alkalmazás készült, mely az OpenNI rétegelt architektúrájának legfelső rétegében helyezkedik el. A grafikus programtól elvárás volt, hogy a képernyő baloldalán megjelenítse a követett csontvázat, legalább annak a csuklópontnak a frissítésével, melyre a detekciót végzi. Ezen kívül elvárás volt az utolsó tíz felvett pont megjelenítése, hogy a detektálásra átadott minta látható legyen. Jobb oldalon kell megjelennie a vezérlő gomboknak, illetve a kiíratásra szánt szövegmezőknek. 13. Az elkészített modulok elhelyezkedése az OpenNI rétegelt architektúrájában 7.1. Komponensek - Virtuális csontváz A implementálás első részében egy olyan modul megírása volt cél, amely a virtuális csontváz adatok feldolgozását, és más modulok számára való szolgáltatását végzi. Ennek a modulnak a 26

27 feladata a kamera jelének feldolgozása, és az ebből való csontváz modell készítésének a többi komponens elől való elfedése. Ennek következtében tartalmaznia kell az egyik lehetséges Kinect szenzorhoz készített szoftveres interfészt. A program a bemutatottak közül az OpenNI-t és annak a szenzorhoz kiadott driver-ét használja. Az adatok hozzáféréséhez a NITE midleware nyújt segítséget, amelyre a bemutatottak közül azért esett a választás, mert ugyancsak platform független, kis erőforrás igényű, és magát az OpenNI-t is fejlesztő PrimeSense készítette. Az adatok szolgáltatása előtt az egyik fontos feladata a felhasználó csontvázának megtalálása és elvesztésének kezelése. A csontvázkövető algoritmus is limitációkkal rendelkezik, így egyes testpozíciókban a csontváz megépítésére képtelen lehet, emiatt biztosítani kell, hogy ez esetben a program futása ne álljon meg, csak várakozzon amíg a felhasználó nem kerül olyan pozícióba, hogy a csontváz építés újra lehetségessé váljon. Ezzel egy időben az is lehetővé válik, hogy a felhasználó bármikor elhagyhassa a kamera látóterét, visszatérése után folytathassa a felhasználást. Ezek az osztály init() függvényébe kerültek bele. A másik fő feladata az adatok folyamatos szolgáltatása. Ez a szolgáltatás külön szálba került, mivel az őt felhasználó szoftver komponensek sebességét nem befolyásolhatja. A csontváz követett csuklópontjának utolsó állapotait egy körkörös buffer-ben tárolja, melynek az utolsó elemét egy külső hívás hatására tudja visszaadni. A külön szálba történő, buffer adatokkal való feltöltését a dograb() függvény végzi. Az utolsó állapotot a grab() tudja visszaadni. Ez az állapot egy XnVector3D típusú elem, amely a csuklópont háromdimenziós eltolási koordinátáit tartalmazza lebegőpontos ábrázolásban. 14. A SkeletonGrabber objektum UML osztálydiagramja 27

28 - Perceptron A perceptronnal való detekció megvalósítására egy külön osztály készült. A súly értékek és az eltolási bias érték a setbias(), illetve az addwheights() függvények segítségével állítható be. Ezen kívül implementálva lett a Rosenblatt tanító algoritmus mely a learn() meghívásával futtatható le. Ennek bemenete a tanításhoz használt minták halmaza illetve annak a mintának a sorszáma, amelyre a pozitív döntés az elvárt. A kimeneti értékét az output() adja vissza. 15. A Perceptron objektum UML osztálydiagramja - Neurális hálózat objektum A detekció második megközelítésében használt megoldása az előrecsatolt neurális hálózattal való detektálás. Ennek megvalósítására is külön osztály készült, ez az osztály egy két rétegű hálózatot képes tárolni és a kimeneti rétegben levő neuronok eredményét kiszámolni. A CPU-n történő feldolgozáshoz a processcpu(), a GPU-n történőhöz pedig a processgpu() függvények meghívása szükséges. A Matlab szoftverből kinyert, adott rétegekhez tartozó súlymátrixokat és eltolási vektorokat a loadparameters() szolgáltatás a Matlab által kimentett fájlokból tölti be. 16. A Neural Network objektum UML osztálydiagramja 28

29 - GPU A számítások GPU-n való futtatásához a rendszer az OpenCL keretrendszert használja, melynek felhasznált szolgáltatásai egy külön osztályba kerültek. Az objektum első feladata a kernel lefuttatásához szükséges környezet inicializálása ami az init() függvény meghívásával történik meg. Itt töltődik be a fájl, ami a mátrix vektor szorzását végző kernelt tartalmazza, és itt kapnak értéket a főbb osztályváltozók, illetve a későbbi számoláshoz szükséges súly és eltolási értékek. A detekciót a run() metódus végzi melynek bemeneti paramétere egy vektor, amely a hálózat bemenetén lévő értékeket tartalmazza, a kimeneti paramétere pedig a hálózat kimeneti rétegén lévő eredményeit tárolja. A számításokhoz egy mátrix vektorral való szorzását megvalósító kernel készült melyet az ffnn.cl fájl tartalmaz. A run() metódus ezt a kernelt hívja meg kétszer egymás után annyiszor, ahány réteget a hálózat tartalmaz, úgy, hogy az egyes rétegek kimenetei a következő rétegek bemenetei legyenek. A futtató lezárásához a close() meghívása szükséges, ez végzi az egyes lefoglalt objektumok felszabadítását. 17. A GpuRunner objektum UML osztálydiagramja - Pattern objektum A Pattern objektum végzi a detektálni kívánt adatok előfeldolgozását. A kapott pontokat normalizálja, majd kiszámítja a hozzájuk tartozó momentumokat és a mintához adja őket. Az objektum a számításokhoz tartozó segédváltozókat, és a momentum kiszámító függvényeket tartalmazza. 29

30 18. A Pattern objektum UML osztálydiagramja - Grecogn objektum A elkészült modulok összefogására, elfedésére, egységes interfészt megvalósító osztály lett létrehozva. A middleware-t felhasználó programok ennek az objektumnak egy példányán keresztül fogják az egyes modulok szolgáltatásait elérni. Az inicializálás az init() függvény meghívásával történik, amely paramétereiben megkapja, hogy a szoftver milyen módban indult, és elvégzi a szükséges előfeldolgozási feladatokat, mint például a szükséges adatok betöltését fájlból. A detect() meghívása esetén a megfelelő modullal elvégezteti az adatok előfeldolgozását, utána pedig a kiválasztott módon a detektálást, majd visszaadja, hogy a betanított minták közül melyik sorszámú volt az, amire a felismerés megtörtént. Ezen kívül továbbítja az olyan kéréseket a megfelelő modulokhoz, mint például a perceptronok betanítása. 19. A Grecogn objektum UML osztálydiagramja 7.2. Grafikus program Az elkészült middleware szolgáltatásainak kipróbálására egy grafikus program készült. A megjelenítés és az esemény kezelés Qt keretrendszer felhasználásával készült [5]. A csontváz adatokat a mainthreadloop() függvény folyamatosan kérdezi le a SkeletonGrabber 30

31 objektumtól, és amikor új adatot kap meghívja az paintevent() függvényt. Ez utóbbi a QWidget ősosztály egyik felüldefiniált függvénye ami a csontváz és a felvett pontok tényleges kirajzolását végzi. A felületre kirakott gombok eseménykezelésére a Qt Signal-Slot megoldást alkalmaz. Minden esemény képes kiváltani egy jelet, melyhez megfelelő függvény lefutása rendelhető, ezek az úgynevezett slot-ok. Az egyes nyomógombok által kiváltott clicked() jelre lettek bekötve az olyan on_saveperceptrons_clicked(). slot-okat Ezek megvalósító tartalmazzák függvények, az mint eseményhez várt például az tényleges megvalósítást, és mindig lefutnak, amikor a hozzájuk kapcsolt esemény kiváltódik. A Qt keretrendszer a kiváltott eseményeket kisorosítva hajtja vége úgy, hogy azokat egy sorba helyezi. Jelen programnál az eseménysor általában a rajzolással van tele, és ebbe a sorba jönnek a gombok által kiváltott események is. A kisorosítás ellenére a gyors lefutás miatt a felhasználó a programot mégis folyamatosnak, párhuzamosnak látja. 20. A MainWindow objektum UML osztálydiagramja Az implementált grafikus alkalmazás Model-View-Controller architektúrával készült, melynek lényege, hogy külön válik az alkalmazás logikája és adatkezelése a szoftver vezérlésétől, illetve a megjelenítéstől. 21 A grafikus alkalmazás objektumainak kapcsolatai, és elhelyezkedésük a Modell-ViewController architektúrában 31

32 A megjelenítés és a modell közötti kommunikációt a vezérlő objektum végzi, mely a modellben kialakult változás hatására a megjelenítésben is változást vált ki, illetve a megjelenítéstől is szállít információt a modellnek. Az architektúra nagy előnye, hogy a grafikus felület a vezérlő és a modell módosítása nélkül cserélhető, illetve továbbfejleszthető Funkciók A szoftver funkciói két különféle futási módban, offline és online érhetők el. Amikor kamera csatlakoztatása nélkül indul, a szoftver offline módba kerül, ekkor lehet az előzőlegesen kimentett mintákat visszatölteni, a perceptronokat betanítani, és kimenteni. Kamera csatlakoztatása esetén a szoftver online módban indul, ekkor a felhasználó megtalálását követően elkezdődik a kéz követése, illetve a detektálás. A követés és a detektálás megszakad, ha a felhasználó kilép a kamera látóteréből, ilyenkor a szoftver vár ameddig nem tud új emberi alakot azonosítani és a detektálást folytatni. 22. Képernyőkép az elkészült szoftverről minta rajzolása közben 7.4. Felhasznált programkönyvtárak A csontváz követéshez a szoftver az OpenNI keretrendszert és egy ahhoz tartozó middleware alkalmazást, a NITE-t használja. A GPU-n történő számolásokhoz az OpenCL keretrendszer nyújtotta a segítséget. A Grafikus megoldás, és a szálkezelés Qt programkönyvtárral készült. Boost programkönyvtár lett felhasználva körkörös buffer megvalósításra és annak szálbiztossá tételére. 32

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 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

Részletesebben

Neurális hálózatok bemutató

Neurális hálózatok bemutató Neurális hálózatok bemutató Füvesi Viktor Miskolci Egyetem Alkalmazott Földtudományi Kutatóintézet Miért? Vannak feladatok amelyeket az agy gyorsabban hajt végre mint a konvencionális számítógépek. Pl.:

Részletesebben

OpenCL - The open standard for parallel programming of heterogeneous systems

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:

Részletesebben

Iman 3.0 szoftverdokumentáció

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

Részletesebben

Intelligens Rendszerek Gyakorlata. Neurális hálózatok I.

Intelligens Rendszerek Gyakorlata. Neurális hálózatok I. : Intelligens Rendszerek Gyakorlata Neurális hálózatok I. dr. Kutor László http://mobil.nik.bmf.hu/tantargyak/ir2.html IRG 3/1 Trend osztályozás Pnndemo.exe IRG 3/2 Hangulat azonosítás Happy.exe IRG 3/3

Részletesebben

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 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

Részletesebben

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Keresés képi jellemzők alapján Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Lusta gépi tanulási algoritmusok Osztályozás: k=1: piros k=5: kék k-legközelebbi szomszéd (k=1,3,5,7)

Részletesebben

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 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

Részletesebben

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Autóipari beágyazott rendszerek. Komponens és rendszer integráció Autóipari beágyazott rendszerek és rendszer integráció 1 Magas szintű fejlesztési folyamat SW architektúra modellezés Modell (VFB) Magas szintű modellezés komponensek portok interfészek adattípusok meghatározása

Részletesebben

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek MSP430 programozás Energia környezetben Kitekintés, további lehetőségek 1 Még nem merítettünk ki minden lehetőséget Kapacitív érzékelés (nyomógombok vagy csúszka) Az Energia egyelőre nem támogatja, csak

Részletesebben

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Számítógépes képelemzés 7. előadás Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Momentumok Momentum-alapú jellemzők Tömegközéppont Irányultáság 1 2 tan 2 1 2,0 1,1 0, 2 Befoglaló

Részletesebben

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 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ű

Részletesebben

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 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,

Részletesebben

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31. Regresszió Csorba János Nagyméretű adathalmazok kezelése 2010. március 31. A feladat X magyarázó attribútumok halmaza Y magyarázandó attribútumok) Kérdés: f : X -> Y a kapcsolat pár tanítópontban ismert

Részletesebben

Hibadetektáló rendszer légtechnikai berendezések számára

Hibadetektáló rendszer légtechnikai berendezések számára Hibadetektáló rendszer légtechnikai berendezések számára Tudományos Diákköri Konferencia A feladatunk Légtechnikai berendezések Monitorozás Hibadetektálás Újrataníthatóság A megvalósítás Mozgásérzékelő

Részletesebben

GPU-Accelerated Collocation Pattern Discovery

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

Részletesebben

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 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:

Részletesebben

ASUS X455LD-WX045D (X455LD-WX045D)

ASUS X455LD-WX045D (X455LD-WX045D) ASUS X455LD-WX045D (X455LD-WX045D) Bruttó ár: 0 Ft Termékvonal: Asus Notebook / Asus Laptop Termékvonal2: Notebook / Laptop Processzor: Intel Core i5 Processzor jellemző: i5-4210u / 1.70GHz - 2.70GHz /

Részletesebben

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

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

Részletesebben

Számítógép felépítése

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

Részletesebben

Szoftver újrafelhasználás

Szoftver újrafelhasználás Szoftver újrafelhasználás Szoftver újrafelhasználás Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott kód felhasználása architektúra felhasználása tudás felhasználása Nem azonos a portolással

Részletesebben

Videókártya - CUDA kompatibilitás: CUDA weboldal: Példaterületek:

Videókártya - CUDA kompatibilitás:   CUDA weboldal:   Példaterületek: Hasznos weboldalak Videókártya - CUDA kompatibilitás: https://developer.nvidia.com/cuda-gpus CUDA weboldal: https://developer.nvidia.com/cuda-zone Példaterületek: http://www.nvidia.com/object/imaging_comp

Részletesebben

Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.

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

Részletesebben

3D számítógépes geometria és alakzatrekonstrukció

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

Részletesebben

I. LABOR -Mesterséges neuron

I. LABOR -Mesterséges neuron I. LABOR -Mesterséges neuron A GYAKORLAT CÉLJA: A mesterséges neuron struktúrájának az ismertetése, neuronhálókkal kapcsolatos elemek, alapfogalmak bemutatása, aktivációs függvénytípusok szemléltetése,

Részletesebben

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom Szoftver újrafelhasználás (Software reuse) Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 18. Roger S. Pressman: Software Engineering, 5th e. chapter 27. 2 Szoftver újrafelhasználás Szoftver

Részletesebben

Bruttó ár: 0 Ft. Háttértár mérete: Háttértár típusa: Lemez meghajtó: Kijelző méret: LED háttérvilágítás, 16:9 képarány

Bruttó ár: 0 Ft. Háttértár mérete: Háttértár típusa: Lemez meghajtó: Kijelző méret: LED háttérvilágítás, 16:9 képarány ASUS X302UJ-FN021D (X302UJ-FN021D) Bruttó ár: 0 Ft Termékvonal: Asus Notebook / Asus Laptop Termékvonal2: Notebook / Laptop Processzor: Intel Core i5 Processzor jellemző: i5-6200u / 2,30GHz - 2,80GHz /

Részletesebben

Kiterjesztett valóság (Augmented Reality) alkalmazási lehetősége a villamosenergia iparban

Kiterjesztett valóság (Augmented Reality) alkalmazási lehetősége a villamosenergia iparban Kiterjesztett valóság (Augmented Reality) alkalmazási lehetősége a villamosenergia iparban 2019.03.07. Hideg Attila Hideg.Attila@aut.bme.hu Mixed Reality Spectrum 2 Virtuális valóság Mixed Reality Spectrum

Részletesebben

RIEL Elektronikai Kft v1.0

RIEL Elektronikai Kft v1.0 DeskCamera v1.6.1 1. DESKCAMERA A DeskCamera segítségével lehetőség nyílik a számítógép monitorán megjelenő képet rögzítő (NVR, DVR) segítségével rögzíteni. 1.1. TECHNIKAI ADATOK Maximális monitor szám:

Részletesebben

Szakdolgozati, TDK témajavaslatok

Szakdolgozati, TDK témajavaslatok Kiadta: IB Controll Kft. Összeállította: Nagy Imre Dokumentum verzió: v1.0 Utolsó frissítés dátuma: 2015. 03. 30. Tartalomjegyzék 1. Bevezetés...3 2. Témajavaslatok...4 2.1.1. OpenWrt / Linux szerver admin

Részletesebben

A számítógépek felépítése. A számítógép felépítése

A számítógépek felépítése. A számítógép felépítése A számítógépek felépítése A számítógépek felépítése A számítógépek felépítése a mai napig is megfelel a Neumann elvnek, vagyis rendelkezik számoló egységgel, tárolóval, perifériákkal. Tápegység 1. Tápegység:

Részletesebben

Grafikus csővezeték 1 / 44

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

Részletesebben

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet 2. ZH A csoport 1. Hogyan adható meg egy digitális műszer pontossága? (3p) Digitális műszereknél a pontosságot két adattal lehet megadni: Az osztályjel ±%-os értékével, és a ± digit értékkel (jellemző

Részletesebben

Toshiba Satellite L50-C-15E (PSKWTE-00N008HU)

Toshiba Satellite L50-C-15E (PSKWTE-00N008HU) Toshiba Satellite L50-C-15E (PSKWTE-00N008HU) Bruttó ár: 0 Ft Termékvonal: Termékvonal2: Processzor: Processzor jellemző: Memória mérete: Memória bővíthetőség: Memória típusa: Háttértár mérete: Háttértár

Részletesebben

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. 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

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás:2011. 09. 29. 1 2 4 5 MMU!= fizikai memóriaillesztő áramkör. Az utóbbinak a feladata a memória modulok elektromos alacsonyszintű vezérlése, ez sokáig a CPU-n kívül a chipset északi hídban

Részletesebben

Bodó / Csató / Gaskó / Sulyok / Simon október 9. Matematika és Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár

Bodó / Csató / Gaskó / Sulyok / Simon október 9. Matematika és Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár Bodó / Csató / Gaskó / Sulyok / Simon Matematika és Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2016. október 9. Tudnivalók Tudnivalók: 1 Csapatok kiválasztása: a második hét végéig; 2

Részletesebben

ARM Cortex magú mikrovezérlők. mbed

ARM Cortex magú mikrovezérlők. mbed ARM Cortex magú mikrovezérlők mbed Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2016 MBED webes fejlesztőkörnyezet 2009-ben megjelent

Részletesebben

Informatika Rendszerek Alapjai

Informatika Rendszerek Alapjai Informatika Rendszerek Alapjai Dr. Kutor László Alapfogalmak Információ-feldolgozó paradigmák Analóg és digitális rendszerek jellemzői Jelek típusai Átalakítás rendszerek között http://uni-obuda.hu/users/kutor/

Részletesebben

Máté: Számítógépes grafika alapjai

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,

Részletesebben

Hogyan kell 3D tartalmat megtekinteni egy BenQ kivetítőn? Minimális rendszerkövetelmények 3D tartalom lejátszásához BenQ kivetítőn:

Hogyan kell 3D tartalmat megtekinteni egy BenQ kivetítőn? Minimális rendszerkövetelmények 3D tartalom lejátszásához BenQ kivetítőn: Hogyan kell 3D tartalmat megtekinteni egy BenQ kivetítőn? Az Ön BenQ kivetítője támogatja a háromdimenziós (3D) tartalom lejátszását a D-Sub, Komponens, HDMI, Videó és S-Video bemeneteken keresztül. Kompatibilis

Részletesebben

Új kompakt X20 vezérlő integrált I/O pontokkal

Új kompakt X20 vezérlő integrált I/O pontokkal Új kompakt X20 vezérlő integrált I/O pontokkal Integrált flash 4GB belső 16 kb nem felejtő RAM B&R tovább bővíti a nagy sikerű X20 vezérlő családot, egy kompakt vezérlővel, mely integrált be és kimeneti

Részletesebben

Dell Inspiron 3567 i3 notebook

Dell Inspiron 3567 i3 notebook AUDI VBK notebook A kategória Dell Inspiron 3567 i3 notebook Kitűnő választás otthoni vagy irodai használatra. Média lejátszáshoz, internetezéshez, munkához ajánljuk. Intel Core i3 2,0 GHz 15,6 FullHD

Részletesebben

VIRTUALIZÁCIÓ KÉSZÍTETTE: NAGY ZOLTÁN MÁRK EHA: NAZKABF.SZE I. ÉVES PROGRAMTERVEZŐ-INFORMATIKUS, BSC

VIRTUALIZÁCIÓ KÉSZÍTETTE: NAGY ZOLTÁN MÁRK EHA: NAZKABF.SZE I. ÉVES PROGRAMTERVEZŐ-INFORMATIKUS, BSC VIRTUALIZÁCIÓ KÉSZÍTETTE: NAGY ZOLTÁN MÁRK EHA: NAZKABF.SZE I. ÉVES PROGRAMTERVEZŐ-INFORMATIKUS, BSC A man should look for what is, and not for what he thinks should be. Albert Einstein A számítógépek

Részletesebben

Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában

Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában Budapesti Műszaki és Gazdaságtudományi Egyetem Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában Cselkó Richárd 2009. október. 15. Az előadás fő témái Soft Computing technikák alakalmazásának

Részletesebben

Magas szintű optimalizálás

Magas szintű optimalizálás Magas szintű optimalizálás Soros kód párhuzamosítása Mennyi a várható teljesítmény növekedés? Erős skálázódás (Amdahl törvény) Mennyire lineáris a skálázódás a párhuzamosítás növelésével? S 1 P 1 P N GPGPU

Részletesebben

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.

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

Részletesebben

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

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

Részletesebben

AliROOT szimulációk GPU alapokon

AliROOT szimulációk GPU alapokon AliROOT szimulációk GPU alapokon Nagy Máté Ferenc & Barnaföldi Gergely Gábor Wigner FK ALICE Bp csoport OTKA: PD73596 és NK77816 TARTALOM 1. Az ALICE csoport és a GRID hálózat 2. Szimulációk és az AliROOT

Részletesebben

Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function

Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function Tanulás az idegrendszerben Structure Dynamics Implementation Algorithm Computation - Function Tanulás pszichológiai szinten Classical conditioning Hebb ötlete: "Ha az A sejt axonja elég közel van a B sejthez,

Részletesebben

Bepillantás a gépházba

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

Részletesebben

Android Commander Felhasználói kézikönyv

Android Commander Felhasználói kézikönyv Android Commander Felhasználói kézikönyv A kézikönyv használata Mielőtt elindítaná és használná a szoftvert kérjük olvassa el figyelmesen a felhasználói kézikönyvet! A dokumentum nem sokszorosítható illetve

Részletesebben

PolyVision illesztőprogram Kibocsátási megjegyzések 2.2. változat

PolyVision illesztőprogram Kibocsátási megjegyzések 2.2. változat PolyVision illesztőprogram Kibocsátási megjegyzések 2.2. változat C. átdolgozás 2011. február 3. Áttekintés Ez a dokumentum a PolyVision illesztőprogram 2.2. változatára vonatkozó kibocsátási megjegyzéseket

Részletesebben

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program A GeoEasy telepítése GeoEasy V2.05+ Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2010 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása

Részletesebben

Mérés, Vezérlés. mérésadat rögzítés CMC - 99 CMC kis és nagytestvér

Mérés, Vezérlés. mérésadat rögzítés CMC - 99 CMC kis és nagytestvér Mérés, Vezérlés mérésadat rögzítés CMC - 99 CMC - 141 kis és nagytestvér Bevezetés A MultiCon eszközök nagyhatékonyságú kijelzőt, mérés adatgyűjtőt és szabályzókat foglalnak magukban. Mindez a tudás és

Részletesebben

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program A GeoEasy telepítése GeoEasy V2.05 Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2008 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása

Részletesebben

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

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

Részletesebben

Lenovo Ideapad YOGA M1001BHV (80M1001BHV)

Lenovo Ideapad YOGA M1001BHV (80M1001BHV) Lenovo Ideapad YOGA 300 80M1001BHV (80M1001BHV) Bruttó ár: 0 Ft Termékcsalád: YOGA Termékvonal: Lenovo 2 az 1-ben Hibrid Notebook Termékvonal2: 2 az 1-ben Hibrid Notebook Processzor: Intel Celeron Processzor

Részletesebben

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

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

Részletesebben

Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom.

Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom. Lépések 1. tanító és teszt halmaz összeállítása / megszerzése 2. jellemzők kinyerése 3. tanító eljárás választása Sok vagy kevés adat áll-e rendelkezésünkre? Mennyi tanítási idő/memória áll rendelkezésre?

Részletesebben

DELL Vostro MONET14SKL1605_011_UBU-11

DELL Vostro MONET14SKL1605_011_UBU-11 DELL Vostro 5459 - MONET14SKL1605_011_UBU-11 (MONET14SKL1605_011_UBU-11) Bruttó ár: 204.990 Ft Termékcsalád: Vostro Termékvonal: Dell Notebook / Dell Laptop Termékvonal2: Notebook / Laptop Processzor:

Részletesebben

elektronikus adattárolást memóriacím

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

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás: 2012. 09. 06. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 Forrás: Gartner Hype Cycle for Virtualization, 2010, http://premierit.intel.com/docs/doc-5768

Részletesebben

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával SAT probléma kielégíthetőségének vizsgálata masszív parallel mesterséges neurális hálózat alkalmazásával Tajti Tibor, Bíró Csaba, Kusper Gábor {gkusper, birocs, tajti}@aries.ektf.hu Eszterházy Károly Főiskola

Részletesebben

Még gazdagabb játékélményt ígér a SIE új csúcskonzolja, a PlayStation 4 PRO

Még gazdagabb játékélményt ígér a SIE új csúcskonzolja, a PlayStation 4 PRO A Sony Interactive Entertainment(SIE) a mai napon jelentette be az új PlayStation 4 Pro (PS4 Pro) (CUH-7000 sorozatszámú) játékkonzolt, mely továbbfejlesztett képfeldolgozó képességének köszönhetően 4K

Részletesebben

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 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

Részletesebben

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft. Norway Grants AKKUMULÁTOR REGENERÁCIÓS ÉS Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai Kakuk Zoltán, Vision 95 Kft. 2017.04.25. Rendszer szintű megoldás

Részletesebben

Új módszerek és eszközök infokommunikációs hálózatok forgalmának vizsgálatához

Új módszerek és eszközök infokommunikációs hálózatok forgalmának vizsgálatához I. előadás, 2014. április 30. Új módszerek és eszközök infokommunikációs hálózatok forgalmának vizsgálatához Dr. Orosz Péter ATMA kutatócsoport A kutatócsoport ATMA (Advanced Traffic Monitoring and Analysis)

Részletesebben

GPU alkalmazása az ALICE eseménygenerátorában

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

Részletesebben

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással .. A tervfeladat sorszáma: 1 A ALU egység 8 regiszterrel és 8 utasítással Minimálisan az alábbi képességekkel rendelkezzen az ALU 8-bites operandusok Aritmetikai funkciók: összeadás, kivonás, shift, komparálás

Részletesebben

Párhuzamos és Grid rendszerek

Párhuzamos és Grid rendszerek Párhuzamos és Grid rendszerek (10. ea) GPGPU Szeberényi Imre BME IIT Az ábrák egy része az NVIDIA oktató anyagaiból és dokumentációiból származik. Párhuzamos és Grid rendszerek BME-IIT

Részletesebben

Bánhelyi Balázs, Csendes Tibor, Palatinus Endre és Lévai. Szeptember 28-30, 2011, Balatonöszöd, Hungary

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,

Részletesebben

Mobil operációs rendszerek. Készítette: Kisantal Tibor

Mobil operációs rendszerek. Készítette: Kisantal Tibor Mobil operációs rendszerek Készítette: Kisantal Tibor Mobil operációs rendszerek Az operációs rendszerek azon csoportjához tartoznak, melyek hordozható, kézi eszközt működtetnek. okostelefont, táblagépet,

Részletesebben

WAGO PLC-vel vezérelt hő- és füstelvezetés

WAGO PLC-vel vezérelt hő- és füstelvezetés WAGO PLC-vel vezérelt hő- és füstelvezetés Wago Hungária Kft. Cím: 2040. Budaörs, Gyár u. 2. Tel: 23 / 502 170 Fax: 23 / 502 166 E-mail: info.hu@wago.com Web: www.wago.com Készítette: Töreky Gábor Tel:

Részletesebben

HAWK-3. Az OMSZ saját fejlesztésű időjárási megjelenítő rendszere

HAWK-3. Az OMSZ saját fejlesztésű időjárási megjelenítő rendszere HAWK-3 Az OMSZ saját fejlesztésű időjárási megjelenítő rendszere Időjárás előrejelzés, kutatási, fejlesztési munkához a légkör fizikai állapotát kell ismerni Nagy térségre vonatkozó mért, megfigyelt és

Részletesebben

DebitTray program Leírás

DebitTray program Leírás DebitTray program Leírás Budapest 2015 Bevezetés Egy-egy kintlévőséghez tartozó határidő elmulasztásának komoly következménye lehet. Éppen ezért a Kintlévőség kezelő program főmenü ablakában a program

Részletesebben

Kameleon Light Bootloader használati útmutató

Kameleon Light Bootloader használati útmutató Kameleon Light Bootloader használati útmutató 2017. Verzió 1.0 1 Tartalom jegyzék 2 1. Bootloader bevezető: A Kameleon System-hez egy összetett bootloader tartozik, amely lehetővé teszi, hogy a termékcsalád

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

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

Részletesebben

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI Az MTA Cloud a tudományos alkalmazások támogatására Kacsuk Péter MTA SZTAKI Kacsuk.Peter@sztaki.mta.hu Tudományos alkalmazások és skálázhatóság Kétféle skálázhatóság: o Vertikális: dinamikusan változik

Részletesebben

TERC V.I.P. hardverkulcs regisztráció

TERC V.I.P. hardverkulcs regisztráció TERC V.I.P. hardverkulcs regisztráció 2014. második félévétől kezdődően a TERC V.I.P. költségvetés-készítő program hardverkulcsát regisztrálniuk kell a felhasználóknak azon a számítógépen, melyeken futtatni

Részletesebben

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék. Neurális hálók. Pataki Béla

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék. Neurális hálók. Pataki Béla Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék Neurális hálók Előadó: Előadás anyaga: Hullám Gábor Pataki Béla Dobrowiecki Tadeusz BME I.E. 414, 463-26-79

Részletesebben

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai Objektum: A való világ egy elemének ábrázolása, amely minden esetben rendelkezik: Állapottal,Viselkedéssel,Identitással

Részletesebben

6.2. TMS320C64x és TMS320C67xx DSP használata

6.2. TMS320C64x és TMS320C67xx DSP használata 6.2. TMS320C64x és TMS320C67xx DSP használata 6.2.1. bemutatása TI Davinci DM6446 EVM rövid A Davinci DM6446 EVM az alábbi fő hardver paraméterekkel rendelkezik: 1db ARM 9 CPU (ARM926EJ) 1db C64x DSP 4MB

Részletesebben

AUGMENTED REALITY KITERJESZTETT VALÓSÁG TARTALOMJEGYZÉK. Czéhner Tamás

AUGMENTED REALITY KITERJESZTETT VALÓSÁG TARTALOMJEGYZÉK. Czéhner Tamás AUGMENTED REALITY KITERJESZTETT VALÓSÁG Czéhner Tamás A Kiterjesztett valóság (Augmented Reality röviden AR) napjaink egyik legdinamikusabban fejlődő kutatási területe. Az AR a valódi fizikai környezetet,

Részletesebben

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20 Teljesítmény Mérés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 1 / 20 Tartalomjegyzék 1 Bevezetés 2 Visual Studio Kód metrikák Performance Explorer Tóth Zsolt

Részletesebben

ROBOT IRÁNYÍTÁS INFRAVÖRÖS LED TÖMBBEL

ROBOT IRÁNYÍTÁS INFRAVÖRÖS LED TÖMBBEL TÁMOP-4.2.2.C-11/1/KONV-212-4 infokommunikációs technológiák ROBOT IRÁNYÍTÁS INFRAVÖRÖS LED TÖMBBEL A KUTATÁSI TERÜLET RÖVID MEGFOGALMAZÁSA TÁMOP-4.2.2.C-11/1/KONV-212-4 Célok: Növekvő érdeklődés a non-boolean

Részletesebben

Operációs rendszerek. Az X Window rendszer

Operációs rendszerek. Az X Window rendszer Operációs rendszerek X Windows rendszer Az X Window rendszer Grafikus felhasználói felületet biztosító alkalmazás és a kapcsolódó protokoll 1983-84: a Massachusetts Institute of Technology-n (MIT, USA).

Részletesebben

Szimulációs technikák

Szimulációs technikák SZÉCHENYI ISTVÁN EGYETEM Műszaki Tudományi Kar Informatikai tanszék Szimulációs technikák ( NGB_IN040_1) 2. csapat Comparator - Dokumentáció Mérnök informatikus BSc szak, nappali tagozat 2012/2013 II.

Részletesebben

Játékfejlesztés a Windows Phone 7 erejével

Játékfejlesztés a Windows Phone 7 erejével IT-DEV-CON 2011. 04. 06. Játékfejlesztés a Windows Phone 7 erejével Pellek Krisztián krisztian.pellek@student-partners.ms ELTE Miről lesz szó? Windows Phone 7 XNA Game Studio 4.0 Erőteljes, Produktív,

Részletesebben

Beltéri autonóm négyrotoros helikopter szabályozó rendszerének kifejlesztése és hardware-in-the-loop tesztelése

Beltéri autonóm négyrotoros helikopter szabályozó rendszerének kifejlesztése és hardware-in-the-loop tesztelése Beltéri autonóm négyrotoros helikopter szabályozó rendszerének kifejlesztése és hardware-in-the-loop tesztelése Regula Gergely, Lantos Béla BME Villamosmérnöki és Informatikai Kar Irányítástechnika és

Részletesebben

2000 Szentendre, Bükköspart 74 WWW.MEVISOR.HU. MeviMR 3XC magnetorezisztív járműérzékelő szenzor

2000 Szentendre, Bükköspart 74 WWW.MEVISOR.HU. MeviMR 3XC magnetorezisztív járműérzékelő szenzor MeviMR 3XC Magnetorezisztív járműérzékelő szenzor MeviMR3XC járműérzékelő szenzor - 3 dimenzióban érzékeli a közelében megjelenő vastömeget. - Könnyű telepíthetőség. Nincs szükség az aszfalt felvágására,

Részletesebben

Számítógépes Grafika SZIE YMÉK

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

Részletesebben

Win 8 változatok. 2. sz. melléklet 2014.02.18. 2013.felnottkepzes@gmail.com. Töltse ki az előzetes tudásszint felmérő dolgozatot!

Win 8 változatok. 2. sz. melléklet 2014.02.18. 2013.felnottkepzes@gmail.com. Töltse ki az előzetes tudásszint felmérő dolgozatot! 2 sz melléklet 20140218 Bemutatkozás Horváth Zoltán informatika tanár vagyok Az Inczédy György középiskolában tanítok Tudásszint felmérés Töltse ki az előzetes tudásszint felmérő dolgozatot! Tananyag elérhető:

Részletesebben

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan Telepítés internetről A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan Új szolgáltatásunk keretén belül, olyan lehetőséget kínálunk a TERC VIP költségvetéskészítő program

Részletesebben

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat Megoldás Feladat 1. Statikus teszt Specifikáció felülvizsgálat A feladatban szereplő specifikáció eredeti, angol nyelvű változata egy létező eszköz leírása. Nem állítjuk, hogy az eredeti dokumentum jól

Részletesebben

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor. Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb

Részletesebben

Rendszámfelismerő rendszerek

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ó

Részletesebben

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 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

Részletesebben

Lenovo Ideapad G Q5000VHV

Lenovo Ideapad G Q5000VHV Lenovo Ideapad G70-35 - 80Q5000VHV (80Q5000VHV) Bruttó ár: 0 Ft Termékvonal: Lenovo Notebook / Lenovo Laptop Termékvonal2: Notebook / Laptop Processzor: AMD Quad-Core Processzor jellemző: A4-6210 1,80GHz

Részletesebben