Kézmozdulat felismerő rendszer

Slides:



Advertisements
Hasonló előadás
ÉRDEKES PONTOK KINYERÉSE DIGITÁLIS KÉPEKEN. BEVEZETÉS  ALAPPROBLÉMA  Jellemzőpontok detektálása mindkét képen  Kinyert pontok megfeleltetése  Megfeleltetések.
Advertisements

AZ EPICT TANÁRTOVÁBBKÉPZÉS HATÁSVIZSGÁLATA IKT-METRIA FELVÉTELEK ALAPJÁN Az IKT-metria mérőeszköz.
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Hotel Eger Park Konferenciaközpont október
Fejmozgás alapú gesztusok felismerése
Verő Balázs Dunaújvárosi Főiskola AGY Kecskemét, 2008 június 4.
PowerPoint program A PowerPoint programot nyissuk meg a Start menüből.
Sarangolt faválasztékok tömör köbtartalmának meghatározása
Digitális kompetenciák a pedagógusképzésben Jelli János Apor Vilmos Katolikus Főiskola (HU) Námesztovszki Zsolt Újvidéki Egyetem Magyar Tannyelvű Tanítóképző.
1/13 Péter Tamás, Bécsi Tamás, Aradi Szilárd INNOVÁCIÓ ÉS FENNTARTHATÓ FELSZÍNI KÖZLEKEDÉS KONFERENCIA Budapest, szeptember 3-5. Útmenti objektumok.
Match Move Juhász Endre Muhi Kornél Urbán Szabolcs Számítógépes látás projekt.
Informatikai alapismeretek Hardver
Az EDR szerepe a Rendőrség műveletirányításában
Balogh Tamás, Koós Krisztián, Laczi Balázs, Tari Tamás 2013 Tavasz.
1 AIBO Robotfoci Bodor László IAR Bevezetés AIBO RoboCup AIBO RoboCup Célok Célok Rendszer elemei Rendszer elemei Megvalósítás terve Megvalósítás.
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar VET Villamos Művek és Környezet Csoport Budapest Egry József.
Humánkineziológia szak
1 / / 13 Bevezető Forgalmi dugók okozta problémák: - Feszültség - Sietség - Szabálytalan közlekedés → baleseti források Megoldás: A jó megoldások.
Horváth Zsolt Schnádenberger Gábor Varjas Viktor
Táblázat kezelő programok
Mozgó Objektumok Detektálása és Követése Robotkamera Segítségével
Ipari képfeldolgozás projekt I. mérföldkő
Balogh Tamás, Koós Krisztián, Laczi Balázs, Tari Tamás 2013 Tavasz.
Intelligens ébresztő óra Számítógépes látás projekt 2011.
TÁMOP A-11/1/KONV projekt „Telemedicína fókuszú kutatások Orvosi, Matematikai és Informatikai tudományterületeken” Szívhang monitorozása.
Multimédiás technikák 1. kérdés Melyik diszkrét médium? a)hang b)videó c)animáció d)kép.
Multimédiás technikák 1. kérdés A homogén foltok kódolása milyen tömörítést valósít meg? a)veszteséges b)káros c)veszteségmentes d)redundáns.
Műszaki ábrázolás alapjai
MULTIMÉDIA ELEMEI.
Tudományos szoftverek tervezése
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
A virtuális technológia alapjai Dr. Horv á th L á szl ó Budapesti Műszaki Főiskola Neumann János Informatikai Kar, Intelligens Mérnöki Rendszerek.
Mérnöki objektumok leírása és elemzése virtuális terekben c. tantárgy Budapesti Műszaki Főiskola Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek.
A virtuális technológia alapjai Dr. Horv á th L á szl ó Budapesti Műszaki Főiskola Neumann János Informatikai Kar, Intelligens Mérnöki Rendszerek.
Vámossy Zoltán 2006 Gonzales-Woods, SzTE (Kató Zoltán) anyagok alapján
Reál diplomával a munkaerőpiacon Diplomás kutatás 2010.
Mérnöki objektumok leírása és elemzése virtuális terekben c. tantárgy Budapesti Műszaki Főiskola Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek.
Horváth Zsolt Schnádenberger Gábor Varjas Viktor
Implementált képfeldolgozó algoritmusok
Fejmozgás alapú gesztusok felismerése Bertók Kornél, Fazekas Attila Debreceni Egyetem, Informatikai Kar Debreceni Képfeldolgozó Csoport KÉPAF 2013, Bakonybél.
Ipari képfeldolgozás projekt II. mérföldkő
Készítette: Gergó Márton Konzulens: Engedy István 2009/2010 tavasz.
4. Feladat (1) Foci VB 2006 Különböző országok taktikái.
Kommunikációt segítő programok a hálózaton
Budapesti Műszaki Főiskola Neumann János Informatikai Kar Informatikai Automatizált Rendszerek Konzulens: Vámossy Zoltán Projekt tagok: Marton Attila Tandari.
Dplusz projekt 1 Dplusz projekt Készítők: Kerti Ágnes, Cseri Orsolya Eszter Konzulens: Vámossy.
TransMotion Emberi mozgás digitalizálása
Budapesti Műszaki Főiskola Neumann János Informatikai Kar
KINECT© szenzor intelligens terekben
Határozatlan integrál
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar VET Villamos Művek és Környezet Csoport Budapest Egry József.
VÁLLALKOZÓI TÁJÉKOZTATÓ Budapest, március 26.
Orvosbiológiai képkereső rendszer teljesítményének képek osztályozásán alapuló javítása Június 23, 2008 Budapest Altrichter Márta Konzulens: dr. Horváth.
Elektronikus tananyag
Alapfogalmak, módszerek, szoftverek
INDC - 1st International Diabetes Conference, MedicSphere Zárókonferencia.
Gimp – animációk (1. rész)
1.  Szerzői:  Panagiotis Bouros (University of Hong Kong),  Shen Ge (University of Hong Kong),  Nikos Mamoulis (University of Hong Kong)  Esemény:
Digitális audio tömörítése, hangfájlformátumok
Chapter 2 Human Information Processing
2. Házi feladat „Digitális kép szűrése”. A feladat I. Az előzően beszerzett digitális kép szűrése Szűrés –Átlagoló szűrés 5×5-ös kernellel –Medián-szűrés.
OpenCV CV = Computer Vision
Fejmozgás alapú gesztusok felismerése Bertók Kornél, Fazekas Attila Debreceni Egyetem, Informatikai Kar Debreceni Képfeldolgozó Csoport KÉPAF 2013, Bakonybél.
1. Témakör. A tanév feladatai A terem rendje Ülésrend kialakítása Érintés és-balesetmegelőzés Eszközök bemutatása.
Neumann János Informatikai Kar
Multimédia.
1Pongrácz Ferenc, 1Valálik István
ADESPRESSO – A KEDVENCED LESZ
Radványi Mihály - Doktorizom! -.
Nagy Attila1,2, Rovó László1, Kiss József Géza1
Előadás másolata:

Kézmozdulat felismerő rendszer „Hands Up!” Kézmozdulat felismerő rendszer

Bemutatkozás Jelenlegi iskola: Budapesti Műszaki Főiskola – Neumann János Informatika Kar - Szoftvertechnológia Intézet – Informatikai Automatizált Rendszerek Szakirány Érdeklődési kör: zene, képfeldolgozás

Célkitűzés Valós idejű gitár szimuláció Szórakoztató, interaktív formában A projekt célja, hogy szórakoztató formába öntve, valós idejű kézdetektálást hajtson végre egy egyszerű webkamera segítségével. A felhasználó kézmozdulataival vezérelhet egy virtuális léggitárt.

Rendszer áttekintés Előfeldolgozás Értelmezés Hang előállítás Kamera kép Előfeldolgozott kép Pengetés esemény Előállt hang Hang előállítás A rendszer megvalósításának az alappillére a webkamera, melytől a bemeneti adatokat, jelen esetben a képfolyamot kapjuk. A kamera képeinek feldolgozásánál elsődleges fontosságú a sebesség gyorsítása, hogy a felhasználóinak minél realisztikusabb élményben lehessen része. Ez okból kifolyólag a cél egy valós idejű rendszer tervezése. Ezen megfontolások alapján a rendszer vázát három fő modul képzi, amelyek a kamerából nyert kép alapján képesek a kezek felismerésére, azok pozícióinak meghatározására, majd ezen információk alapján kiválasztani az ahhoz legmegfelelőbb hangot. A legtöbb hasonló alkalmazás legnagyobb hátrány, hogy csak speciális körülmények között használható, például valamilyen kontrasztos háttér, vagy speciális eszköz, ezért nálunk elsődleges szerepe van a gyors és hatékony képfeldolgozásnak, hogy bármilyen háttér előtt működjön a rendszer.

Ablakok pozícionálása Előfeldolgozás Simítás HSV konverzió Szegmentálás Előfeldolgozás Ablakok pozícionálása Értelmezés Kamera kép Előfeldolgozott kép Pengetés esemény Előállt hang Hang előállítás Az előfeldolgozó modul első feladata, hogy a kezdeti paramétereket beállítja. A teljes folyamat során a kezeket egy-egy ablakban figyeli a rendszer, így kevesebb pixel kevesebb műveleti időt igényel. A rendszer indításakor meg kell keresni a kezeket, aminek következtében a teljes képmérettel megegyeznek a kereső ablakok méretei. A következő fázisok után az alkalmazás még vissza fog térni ehhez a ponthoz, hogy az ablakméretet átállítsa akkorára, mely a megtalált kéz méreténél nem sokkal nagyobb. Miután a színkonverziót elvégeztük megkapjuk a szegmentáláshoz szükséges küszöbértéket. A binarizálást a rendszer fix küszöbbel fogja elvégezni. A folyamat végrehajtása után a kezek jól elkülönülnek a háttértől.

Képinformáció értelmezése Simítás HSV konverzió Szegmentálás Előfeldolgozás Ablakok pozícionálása Értelmezés Lefogott hang kiszámítása Pengetés esemény felismerése Kamera kép Szegmentált, konvertált kép Kéztávolság és pengetés esemény Előállt hang Hang előállítás A következő modul fő feladata az előfeldolgozott képen követni a kezek mozgását, és mozgás esetén kiadni a megfelelő utasítást az azt követő modulnak. Legelső lépésben a bejövő képen meg kell találnia a kezeket, hogy aztán azoknak a mozgásukat kövesse. Az elő-feldolgozás eredményeként egy leszűkített ponttér áll rendelkezésünkre, amely, még mindig tartalmazhat zavaró tárgyakat. Ahhoz hogy a képen szereplő objektumok összehasonlíthatóvá váljanak, a rendelkezésre álló pixelek halmazokba való sorolása segítségével, struktúrákat kell létrehozni, amelyek már jellemző paraméterekkel rendelkeznek és így egymással összevethetők. Erre a célra optimális megoldás a kontúr-, vagy élvonalkeresés, amellyel az eredeti információt valamely tömör formába képezünk le. Az alkalmazott éldetektálóval szembeni elvárások, hogy szakadásmentes éleket biztosítson többek között képhibák esetén, és sebessége is megfelelő legyen. Ezek alapján a legmegfelelőbb választás a Laplace élkereső, amelyhez egyetlen maszk végigfuttatása elegendő. Egyetlen feltétele, hogy a képhibák eltüntetésére előzetes simítást kell végrehajtani, amely, a kamerakép hibáinak kiszűrése érdekében, már megvalósult. Az eljárás eredménye, a képen található objektumok, tömör leírását eredményezik. Ilyen formában a testekről eldönthető, hogy bírnak-e a kézre jellemző tulajdonságokkal. Legvégül pedig a fentebb kiválasztott objektumokról mozgásérzékeléssel eldönthető, hogy melyeket vegyünk ténylegesen figyelembe. Az előző lépésben meghatároztuk a kezeket, így az ablakok méreteit és pozícióit már megfelelően beállíthatjuk, és a továbbiakban áttérünk a kezek követésére. Az előző művelet eredményeként meghatároztuk a kezek pozícióját, így most már csak azok mozgását figyeljük, és a kézdetektálás funkciót elhagyjuk. A kezek pozícióinak függvényében meghatározható az ablakok helye. Ablakokon belül a kezeket figyeljük. Ezzel a módszerrel, csak egy kisebb területén a képnek végezzük a műveleteket, ami jelentős időmegtakarítással jár. Az objektumok elhelyezkedésének új koordinátáiból számolva, az esetleges változásokat figyeljük, ha volt elmozdulás, akkor az ablakpozíciókat változtatjuk és a kézpozíciókat is rögzítjük. Elmozdulások sorozatát tekintve egy pengetésnek megfelelő mozdulatsorozatból egy eseményt generál a rendszer, aminek paraméterül átadott értéke a kezek távolsága.

Hang előállítása Előfeldolgozás Értelmezés Hang előállítás Simítás HSV konverzió Szegmentálás Előfeldolgozás Ablakok pozícionálása Értelmezés Lefogott hang kiszámítása Pengetés felismerése Kamera kép Szegmentált, konvertált kép Kéz távolság és pengetés esemény ((())) Hang előállítás Gitárnyak szimulálás (érintőkre számolás) Kiválasztott gitárnyak, skála, elrendezés Hangmagasság, megfelelő fájl kiválasztása Hangbank A következő modulnak a feladata, az előző lépésben meghatározott kéz pozíciója alapján a megfelelő hangfájl kiválasztása és lejátszása, ezáltal megszólaltatva a számítógépet, és a gitár szimulációját végrehajtva. A két kéz pozíciójából képes a program meghatározni, hogy egy virtuális gitárnyakon a játékos játszó keze hol helyezkedne el. Minél közelebb van a két kéz egymáshoz, annál magasabb hangot tud megszólaltatni. Majd meghatározzuk, hogy a kéz hányadik érintőt is fogja le. Végül kiszámolja, hogy ez milyen hangnak is felel meg, ezután a dolgunk az, hogy az így meghatározott hangot, egy hangbankból előhívjuk és lejátsszuk. A hangbank tulajdonképpen tömörített formátumban felvett gitárhangokból álló adatbázis. Ezek közül egyszerűen a megfelelő fájlt betöltjük és megszólaltatjuk.

Irodalomkutatás Szűrés Színterek Szegmentálás Objektum keresés Átlag, Gauss, Medián Színterek Szegmentálás Objektum keresés A projekt során elsődleges célunk a kéz mozgásának futás idejű figyelése, és a minél gyorsabb reakció. A kézdetektáló rendszerekre jellemző, hogy egy kamera segítségével kommunikálni tudunk a számítógépünkkel. A legtöbb ilyen rendszer hasonló séma alapján épül fel. Az első fázis az előfeldolgozás, melynek során a célunk a bejövő információ szűrése, azaz a kép tisztítása, esetleg simítása, vagy egyes esetekben kezdetleges felismerés, rendszer előkalibrálása, melynél beállítjuk a kezdő értékeket. A következő fázis a keresés. Itt a feladatunk, hogy megkeressük a figyelni kívánt objektumot, és azt elkülönítsük a környezetében lévő egyéb dolgoktól, majd a már megtalált és elkülönített objektumunkat figyelni kell és annak mozgását esetlegesen rögzíteni. Szükséges az állapotok meghatározása és rögzítése, hogy tisztában legyünk az egyes pillanatokban végbemenő műveletekről, folyamatokról.

Színterek RGB színtér HSV színtér Konverzió: V = MAX(R, G, B); delta = MAX(R, G, B) - MIN(R, G, B); S = delta / V;   IF (R == MAX(R, G, B)) THEN H = (G - B) / S IF (G == MAX(R, G, B)) THEN H = 2 + (B – R) / S IF (B == MAX(R, G, B)) THEN H = 4 + (R – G) / S H = H / 6 A színterekre a bőrszín detektálása miatt van szükségünk. RBG színtérben végezzük az előszűrést, mivel a bejövő képünk ebben a színtérben van megadva. Önmagában ez az előszűrés nem ad megfelelő eredményt, mivel a bőrszínt nem lehet benne elég pontosan meghatározni, ezt kijavítandóan van szükség a HSV színtérre, melyet az RGB konverziójának eredményéből kapunk. A konverzió időigényes művelet, de szükséges, mivel a bemeneti képünk RBG kép, nekünk viszont szükségünk lesz a HSV színtérre a bőrszín detektálás megkönnyítése érdekében. Gyorsíthatjuk a feldolgozásunkat, ha nem az egész képet konvertálnunk a helyes eredmény érdekében.

Szegmentálás Hisztogram alapú szegmentálás Lokális szegmentálás Fix küszöb Szegmentálás során meg kell határoznunk, hogy mi az, ami szükséges lesz számunkra a továbbiakban. Ezzel csökkentjük a feldolgozandó adatok mennyiségét és elérjük, hogy gyorsítjuk az összfeldolgozást. Valamint meg kell találnunk a zavaró részeket, melyek hasonlíthatnak a keresendő objektumunkra, hogy el tudjuk őket távolítani. Természetesen ez a szerencsés eset, miszerint könnyedén elválaszthatók az objektumok a háttértől, valójában viszont ez igencsak ritka. Az objektumokat a képen közel azonos intenzivitású pixelekkel lehet azonosítani. Mivel esetünkben ezek az objektumok nem homogén háttér előtt szerepelnek a szegmentálás még nehezebb lesz.

Objektum keresés Éldetektálók Laplace Sobel Canny Az objektum kereséssel a célunk, hogy az előfeldolgozott képen megtaláljuk a kívánt objektumot, jelen esetben a két kezet. Ehhez éldetektálást és egy saját algoritmust fogunk használni. Éldetektálásra rengeteg módszer és sablon létezik. Az éldetektálásnak több hátránya is van, de legjelentősebb talán az, hogy sok paraméter igen pontos beállítása szükséges az elvárt eredményhez, ha ez nem elég jó, akkor sok olyan élt detektál, ami valójában nincs is. Talán legjobb eredményt a Canny éldetektáló eredményezi, viszont a rendszer sebességét jelentősen csökkenti.

Objektum keresés Bőrszín statisztikája Hisztogramban tároljuk a bőrszínről vett adatokat Összevetjük a kép pixeleit a hisztogrammal Statisztikai adatokszürkeárnyalatos kép Az objektum kereséssel a célunk, hogy az előfeldolgozott képen megtaláljuk a kívánt objektumot, jelen esetben a két kezet. Ehhez éldetektálást és egy saját algoritmust fogunk használni. BackProject = bőrszínstatisztika CamShift=Súlypont

Kéz meghatározása Súlypont számolása CamShift algoritmussal Így meg lesz egy pontunk, amiből tudunk következtetni a kéz helyzetére Gradiens hisztogramok használata kutatás alatt

Objektum követés Képkockánként szegmentálás Egymást követő képkockák különbsége Objektum követés konstans háttérrel Objektum követés megadott régióban Az objektumkövetés az a folyamat, amelynek során egy a háttértől jól elkülöníthető objektum mozgását követi a rendszer. Ennek az eljárásnak nagy szerepe van a projektben, mert ez alapján generálja rendszerünk a kibocsátandó hangokat. Több lehetőség is adott arra, hogy egy objektumot kövessünk a mozgóképen: Alapesetben megtehetnénk azt, hogy minden egyes képkockára külön-külön szegmentáló algoritmussal vizsgálatot indítunk, és ezáltal írjuk le egy megadott objektum mozgását. Ez viszont elég lassúvá válhat folyamatos kép esetén, úgyhogy más módszerhez folyamodunk. Megoldást jelenthetne, hogy kettő vagy több, egymást követő képkocka különbségét tekintenénk, és a változásokból következtetnénk egy adott objektum elmozdulására. Ezzel a legfőbb gond a zaj megjelenése lehet, mivel az sosem állandó, így képről-képre azt is objektumként érzékelnénk, ami helytelen következtetésekre adna alapot. Lehet továbbá egy konstans hátteret elkülönítve az azon bekövetkező változásokat figyelni, és ezáltal leírni a mozgásokat. A gond magának a konstans háttérnek az előállításánál jelentkezik, mivel nem tudjuk, hogy a kamera képén jelentkező első képkockát tekinthetjük-e háttérnek, vagy sem. Ha egy képkockán megtaláltuk a követendő objektumot, avagy jelen esetben a játékos kezét, onnantól fogva nagyban gyorsíthatja a program működését, ha nem az egész képet nézzük át a kéz megkereséséért, hanem csak azt a régiót, ahol az előző képkockán a kezeket megtaláltuk. Ezáltal a program futását optimalizálhatjuk, mivel csak két kisebb régiót figyelünk az eredeti képen belül. Természetesen, mivel ezekből a régiókból a kéz kimozdulhat, így ezt a figyelendő területet is képről-képre, a megfelelő új pozícióra kell vinni, ami pár lépésnyi plusz számítást jelent majd a programon belül, de biztosan elhanyagolható a teljes kép átvizsgálásához képest. Természetesen egy objektum konkrét detektálására több algoritmus is létezik, ám kritikus szempont mindegyiknél a zajszűrés. A fentiekben tehát felsoroltuk az összes technikát, algoritmust, amit a programunk megvalósítása közben felhasználunk, vagy felhasználhatónak vélünk a jelenlegi fázisban. Ezekből építkezve alkotjuk meg az alkalmazásunkat, aminek segítségével, egy hagyományos web kamera képéből gitárszimulálásig jutunk.

Kéz pozicionálás A bal kéz pozíciója alapján ki tudjuk számolni, hogy hanyadik érintőnek megfelelő helyen lenne egy gitár nyakán A jobb kéz mozgása alapján tudunk következtetni a pengetés eseményére

Hangstruktúra „Hangbank” alkalmazásával Tömörített wav fájlok, felvéve gitárról Könnyen bővíthető, kevésbé terheli a CPU-t 24-36 fájl kell a megfelelő terjedelemhez/hangzás Ebből beállítások után „keletkezik” az aktuális gitár hangbázisa Skálák, alaphang

DirectSound Maga a hang kezelése DirectSoundon keresztül történik Jobban kihasználja a számítógép erőforrásait Egyéb funkciókkal további testre szabási lehetőségek (pl. hangerő, panning, effektek...) Legtöbb gépen megtalálható, mivel a DirectX része

Hangformátum A hangok tiszta csatornás gitárhangok Tömörítési eljárások közül többet próbáltunk MS ADPCM lett a legoptimálisabb 44 Khz, mono, 180 kbps mintavételezéssel 200 kByte-os file-ok

Összegzés Irodalomkutatás Rendszerterv Alkalmazás Weblap Tervezett nyári munkálatok Irodalomkutatás jelenleg kész Rendszerterv alapjai és vázlata megvan Alkalmazás elkezdve DirectCV használatával Weblap folyamatos fejlesztés alatt

Tartalomjegyzék Célkitűzés Bemutatkozás Rendszerterv Irodalomkutatás Rendszer áttekintés Előfeldolgozás Képinformáció értelmezése Hang előállítás Irodalomkutatás Szűrés Színterek Szegmentálás Objektum keresés Objektum követés Kéz pozicionálás Hangstruktúra Direct Sound Összegzés Tartalomjegyzék Köszönetnyilvánítás Készítők

A team nevében köszönöm a figyelmet!

A projektet készítették: Bónis Balázs Gyöngyi Lajos Szabó Attila http://iar.bmfnik.hu/2008_2009/hands_up/