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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Szerelőműhely nyilvántartás Rendszerterv

Szerelőműhely nyilvántartás Rendszerterv Szerelőműhely nyilvántartás Rendszerterv Készítette: Ballagi Pordány Dániel Árpád EHA: BAQSAAI.ELTE E-mail: dballagi@yahoo.com 1. oldal Tartalomjegyzék A szoftver...3 Funkciók:...3 Projekt költségei, időbeosztása...4

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

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

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

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

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

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

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

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

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

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

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

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

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

Mozgáselemzés MEMS alapúgyorsulás mérőadatai alapján

Mozgáselemzés MEMS alapúgyorsulás mérőadatai alapján Mozgáselemzés MEMS alapúgyorsulás mérőadatai alapján Nyers Szabina Konzulens: Tihanyi Attila Pázmány Péter Katolikus Egyetem Információs Technológia Kar Feladatok: Végezzen irodalom kutatást, mely tartalmazza

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

Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás

Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás A Mobil multimédiás kliens fejlesztői eszközkészlet létrehozása című kutatás-fejlesztési projekthez A dokumentum célja A dokumentum

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

Témakiírások 2014/15. őszi félévben

Témakiírások 2014/15. őszi félévben Témakiírások 2014/15. őszi félévben Témavezető: Dr. Vörösházi Zsolt voroshazi@vision.vein.hu voroshazi.zsolt@virt.uni-pannon.hu Veszprém, 2014. szeptember 9. Témaismertetés #1 National Instruments - LabView

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

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

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

egy szisztolikus példa

egy szisztolikus példa Automatikus párhuzamosítás egy szisztolikus példa Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Könyvtári címkéző munkahely

Könyvtári címkéző munkahely Könyvtári címkéző munkahely Tartalomjegyzék A RENDSZER HARDVER ELEMEI...3 1 RFID CÍMKÉK... 3 2 RFID ASZTALI OLVASÓ... 3 A RENDSZER SZOFTVER ELEMEI... 4 1 KÖNYV CÍMKÉZŐ MUNKAÁLLOMÁS... 4 2 A PC- S SZOFTVEREK

Részletesebben

SAMSUNG SSM-8000 szoftvercsomag

SAMSUNG SSM-8000 szoftvercsomag SAMSUNG SSM-8000 szoftvercsomag A Samsung SSM-8000 szoftvercsomag a Samsung által forgalmazott IP kamerák, digitális rögzítők, hálózati rögzítők, encoderek közös grafikai felületen történő megjelenítését

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

Mértékegységek a számítástechnikában

Mértékegységek a számítástechnikában Mértékegységek a számítástechnikában BIT legkisebb adattárolási egység Értékei lehetnek: 0,1. Bájt= 8 BIT a számítógép számára egységesen kezelhető legkisebb egység. (Bit,) Bájt, KiloBájt, MegaBájt, GigaBájt,

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

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

Kommunikáció az EuroProt-IED multifunkcionális készülékekkel

Kommunikáció az EuroProt-IED multifunkcionális készülékekkel Kommunikáció az EuroProt-IED multifunkcionális készülékekkel A Protecta intelligens EuroProt készülékei a védelem-technika és a mikroprocesszoros technológia fejlődésével párhuzamosan követik a kommunikációs

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

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

Nokia N9 - MeeGo Harmattan bemutatkozik

Nokia N9 - MeeGo Harmattan bemutatkozik Nokia N9 - MeeGo Harmattan bemutatkozik Bányász Gábor 1 Az előd: Fremantle Nokia N900 2 Fremantle (aka Maemo 5) Okostelefonokra, internet tabletekre (csak ARM proc.) Debian alap

Részletesebben

Kovács Ernő 1, Füvesi Viktor 2

Kovács Ernő 1, Füvesi Viktor 2 Kovács Ernő 1, Füvesi Viktor 2 1 Miskolci Egyetem, Elektrotechnikai - Elektronikai Tanszék 2 Miskolci Egyetem, Alkalmazott Földtudományi Kutatóintézet 1 HU-3515 Miskolc-Egyetemváros 2 HU-3515 Miskolc-Egyetemváros,

Részletesebben

Rendszám felismerő rendszer általános működési leírás

Rendszám felismerő rendszer általános működési leírás Rendszám felismerő rendszer általános működési leírás Creativ Bartex Solution Kft. 2009. A rendszer funkciója A rendszer fő funkciója elsősorban parkolóházak gépkocsiforgalmának, ki és beléptetésének kényelmesebbé

Részletesebben

1. Fejezet Hardver Installálás

1. Fejezet Hardver Installálás 1. Fejezet Hardver Installálás Az egyes kártyák és az opcionálisan használható kiegészítők különbözősége miatti egyes hardverkiépítések eltérhetnek egymástól. Ez a fejezet segít minden egyes Geovision

Részletesebben

Gépi tanulás a Rapidminer programmal. Stubendek Attila

Gépi tanulás a Rapidminer programmal. Stubendek Attila Gépi tanulás a Rapidminer programmal Stubendek Attila Rapidminer letöltése Google: download rapidminer Rendszer kiválasztása (iskolai gépeken Other Systems java) Kicsomagolás lib/rapidminer.jar elindítása

Részletesebben

Koós Dorián 9.B INFORMATIKA

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.

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

Hardver és szoftver követelmények

Hardver és szoftver követelmények Java-s Nyomtatványkitöltő Program Súgó Telepítési útmutató Hardver és szoftver követelmények A java-s nyomtatványkitöltő program az alábbi hardverigényt támasztja a számítógéppel szemben: 400 MHz órajelű

Részletesebben

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési

Részletesebben

Készítette: Enisz Krisztián, Lugossy Balázs, Speiser Ferenc, Ughy Gergely 2010.11.29. 1

Készítette: Enisz Krisztián, Lugossy Balázs, Speiser Ferenc, Ughy Gergely 2010.11.29. 1 Készítette: Enisz Krisztián, Lugossy Balázs, Speiser Ferenc, Ughy Gergely 2010.11.29. 1 /17 Tartalomjegyzék A térinformatikáról általánosságban Célok Felhasznált eszközök Fejlesztés lépései Adatbázis Grafikus

Részletesebben

NOLLEX Nemzetközi Kft. Magyarországi kizárólagos disztribútor. www.nollex.hu www.webroot.hu

NOLLEX Nemzetközi Kft. Magyarországi kizárólagos disztribútor. www.nollex.hu www.webroot.hu NOLLEX Nemzetközi Kft. Magyarországi kizárólagos disztribútor www.nollex.hu www.webroot.hu A kártevő-probléma Mennyi új kártevő jelenik meg naponta? A Webroot Intelligence Network 100,000+ egyedi kártevőt

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

Netis vezeték nélküli, N típusú USB adapter

Netis vezeték nélküli, N típusú USB adapter Netis vezeték nélküli, N típusú USB adapter Gyors üzembe helyezési útmutató WF-2109, WF-2111, WF-2116, WF-2119, WF-2119S, WF-2120, WF-2123, WF-2150, WF-2151, WF-2190, WF-2503 1 A csomag tartalma A csomag,

Részletesebben

Az ErdaGIS térinformatikai keretrendszer

Az ErdaGIS térinformatikai keretrendszer Az ErdaGIS térinformatikai keretrendszer Két évtized tapasztalatát sűrítettük ErdaGIS térinformatikai keretrendszerünkbe, mely moduláris felépítésével széleskörű felhasználói réteget céloz, és felépítését

Részletesebben

Apple számítógépek összehasonlító táblázata

Apple számítógépek összehasonlító táblázata Remac Computer MacBook White 13" MacBook Pro 13" MacBook Pro 13" MacBook Pro 15" MacBook Pro 15" MacBookPro 15" (MC516ZH/A ) (MC374LL/A) (MC375LL/A) (MC371LL/A) (MB372LL/A) (MB373LL/A) Burkolat Polikarbonát

Részletesebben

*#Discount~ Kaspersky Internet Security - multidevice 2015 best software to buy for mac ]

*#Discount~ Kaspersky Internet Security - multidevice 2015 best software to buy for mac ] *#Discount~ Kaspersky Internet Security - multidevice 2015 best software to buy for mac ] Description: Elonyök Az összes csatlakoztatott eszköz védelme egy licenccel használható, könnyen kezelheto megoldás

Részletesebben

A Microsoft terminálszolgáltatás ügyfél oldali hardverigényének meghatározása

A Microsoft terminálszolgáltatás ügyfél oldali hardverigényének meghatározása S SDA Stúdió kft. A Microsoft terminálszolgáltatás ügyfél oldali hardverigényének meghatározása Kiadva: 2002.02.12. Oldalak száma: 7 A dokumentum története Verzió Dátum Módosítás rövid leírása Módosító

Részletesebben

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Követelmény A beadandó dokumentációját a Keszthelyi Zsolt honlapján található pdf alapján kell elkészíteni http://people.inf.elte.hu/keszthelyi/alkalmazasok_fejlesztese

Részletesebben

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES Számítógép = Univerzális gép! Csupán egy gép a sok közül, amelyik pontosan azt csinálja, amit mondunk neki. Hardver A számítógép

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

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2. Témakörök 1. Digitális írástudás: a kőtáblától a számítógépig ( a kommunikáció fejlődése napjainkig) 2. Szedjük szét a számítógépet 1. ( a hardver architektúra elemei) 3. Szedjük szét a számítógépet 2.

Részletesebben

Személyügyi nyilvántartás szoftver

Személyügyi nyilvántartás szoftver Személyügyi nyilvántartás szoftver A nexonhr személyügyi nyilvántartás szoftver a személyügyi, továbbképzési és munkaköri adatok kezelését teszi lehetővé. A szoftver támogatja a HR adminisztrációs feladatokat,

Részletesebben

Gépi tanulás a gyakorlatban. Bevezetés

Gépi tanulás a gyakorlatban. Bevezetés Gépi tanulás a gyakorlatban Bevezetés Motiváció Nagyon gyakran találkozunk gépi tanuló alkalmazásokkal Spam detekció Karakter felismerés Fotó címkézés Szociális háló elemzés Piaci szegmentáció analízis

Részletesebben

Terepi adatfelvétel és geovizualizáció Androidos platformon

Terepi adatfelvétel és geovizualizáció Androidos platformon Terepi adatfelvétel és geovizualizáció Androidos platformon Balla Dániel 1 Kovács Zoltán 2 Varga Orsolya Gyöngyi 3 Zichar Marianna 4 5 1 PhD hallgató, Debreceni Egyetem Tájvédelmi és Környezetföldrajzi

Részletesebben

USB adatgyűjtő eszközök és programozásuk Mérő- és adatgyűjtő rendszerek

USB adatgyűjtő eszközök és programozásuk Mérő- és adatgyűjtő rendszerek USB adatgyűjtő eszközök és programozásuk Mérő- és s adatgyűjt jtő rendszerek Az USB kialakulása Az USB felépítése Az USB tulajdonságai USB eszközök Áttekintés USB eszközök programozása 2 Az USB kialakulása

Részletesebben

Felhasználói kézikönyv

Felhasználói kézikönyv Felhasználói kézikönyv 3060 Lézeres távolságmérő TARTALOMJEGYZÉK ELEM CSERÉJE... 3 A KÉSZÜLÉK FELÉPÍTÉSE... 3 A KIJELZŐ FELÉPÍTÉSE... 3 MŰSZAKI JELLEMZŐK... 4 LÉZERES CÉLZÓ BEKAPCSOLÁSA... 4 MÉRÉSI TÁVOLSÁG...

Részletesebben

Követelmények és feladatleírás

Követelmények és feladatleírás Követelmények és feladatleírás Feladat: Árkalkulációs program készítése, amely egy cég elavult vállalatirányítási rendszeréből kinyert adatok alapján kiszámolja a gyártott termékek eladási árát Felhasználói

Részletesebben

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon Mi az IMDG? Nem memóriában futó relációs adatbázis NoSQL hagyományos relációs adatbázis Más fajta adat tárolás Az összes adat RAM-ban van, osztott

Részletesebben

IT - Alapismeretek. Feladatgyűjtemény

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

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

KnowledgeTree dokumentumkezelő rendszer

KnowledgeTree dokumentumkezelő rendszer KnowledgeTree dokumentumkezelő rendszer Budapest, 2011. január 11. Tartalomjegyzék Tartalomjegyzék... 2 Dokumentum információ... 3 Változások... 3 Bevezetés... 4 Funkciók... 5 Felhasználói felület... 5

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

IBM felhő menedzsment

IBM felhő menedzsment IBM Váltsunk stratégiát! Budapest, 2012 november 14. IBM felhő menedzsment SmartCloud Provisioning és Service Delivery Manager Felhő alapú szolgáltatások Felhasználás alapú számlázás és dinamikus kapacitás

Részletesebben

TxBlock-USB Érzékelőfejbe építhető hőmérséklet távadó

TxBlock-USB Érzékelőfejbe építhető hőmérséklet távadó TxBlock-USB Érzékelőfejbe építhető hőmérséklet távadó Bevezetés A TxBlock-USB érzékelőfejbe építhető, kétvezetékes hőmérséklet távadó, 4-20mA kimenettel. Konfigurálása egyszerűen végezhető el, speciális

Részletesebben

Space Invaders Dokumenta cio

Space Invaders Dokumenta cio Space Invaders Dokumenta cio 0. Tartalomjegyzék 0. Tartalomjegyzék... 1 1. Követelmény feltárás... 2 1.1. Célkitűzés, projektindító dokumentum... 2 1.2. Szakterületi tartalomjegyzék... 2 1.3. Használatieset-modell,

Részletesebben

Tudásszint mérés feladatlap

Tudásszint mérés feladatlap Tudásszint mérés feladatlap 9. évfolyam Útmutató: Semmilyen segédeszköz nem használható! A feladatlap kitöltésére 40 perc áll rendelkezésedre! Gondold át válaszaidat! Név:... Dátum:... Iskola:... Osztály:...

Részletesebben

Programzás I. - 1. gyakorlat

Programzás I. - 1. gyakorlat Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)

Részletesebben

Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting

Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting 1 MattaKis Consulting Bemutatkozás Szoftverfejlesztés, informatikai tanácsadás Mobil: Android, BlackBerry (J2ME), iphone Web: JavaEE,

Részletesebben

ClicXoft programtálca Leírás

ClicXoft programtálca Leírás ClicXoft programtálca Leírás Budapest 2015 Bevezetés A ClicXoft programok bár önálló programok közös technológia alapon lettek kifejlesztve. Emellett közös tulajdonságuk, hogy a hasonló funkciókhoz ugyanaz

Részletesebben

Médiatár. Rövid felhasználói kézikönyv

Médiatár. Rövid felhasználói kézikönyv Médiatár Rövid felhasználói kézikönyv Tartalomjegyzék Bevezetés Tartalomjegyzék Bevezetés Bevezetés... 3 Kezdô gondolatok... 4 Hálózati követelmények... 4 Támogatott operációs rendszerek a számítógépeken...

Részletesebben

Amortizációs költségelemzés

Amortizációs költségelemzés Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük

Részletesebben

GráfRajz fejlesztői dokumentáció

GráfRajz fejlesztői dokumentáció GráfRajz Követelmények: A GráfRajz gráfokat jelenít meg grafikus eszközökkel. A gráfot többféleképpen lehet a programba betölteni. A program a gráfokat egyedi fájl szerkezetben tárolja. A fájlokból betölthetőek

Részletesebben

Oktatási cloud használata

Oktatási cloud használata Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnikai és Információs Rendszerek Tanszék Oktatási cloud használata Készítette: Tóth Áron (BME MIT), 2013. A segédlet célja a tanszéki oktatási cloud

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

Alter Róbert Báró Csaba Sensor Technologies Kft

Alter Róbert Báró Csaba Sensor Technologies Kft Közúti forgalomelemzés kamerával e_traffic Alter Róbert Báró Csaba Sensor Technologies Kft Előadás témái Cégbemutató Videó analitikai eljárások Forgalomszámláló eszközök összehasonlítása e_traffic forgalomelemző

Részletesebben

Számítógépes grafika

Számítógépes grafika Számítógépes grafika HEFOP 3.5.1 Korszerű felnőttképzési módszerek kifejlesztése és alkalmazása EMIR azonosító: HEFOP-3.5.1-K-2004-10-0001/2.0 Tananyagfejlesztő: Máté István Lektorálta: Brückler Tamás

Részletesebben

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés . Számítógépek működési elve Bevezetés az informatikába. előadás Dudásné Nagy Marianna Az általánosan használt számítógépek a belső programvezérlés elvén működnek Külső programvezérlés... Vezérlés elve

Részletesebben