190 likes | 316 Views
„ Hands Up !”. Kézmozdulat felismerő rendszer. Bemutatkozás. Jelenlegi iskola: B udapesti M űszaki F őiskola – N eumann János I nformatika K ar - Sz oftver t echnológia I ntézet – I nformatikai A utomatizált R endszerek Szakirány Érdeklődési kör: zene, képfeldolgozás. Célkitűzés.
E N D
„HandsUp!” 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
Kamera kép Előfeldolgozás Előfeldolgozott kép Pengetés esemény Értelmezés Előállt hang Hangelőállítás Rendszer áttekintés
Kamera kép Előfeldolgozás Ablakok pozícionálása Simítás HSV konverzió Előfeldolgozottkép Szegmentálás Pengetés esemény Értelmezés Hang előállítás Előállt hang Előfeldolgozás
Kamera kép Előfeldolgozás Ablakok pozícionálása Simítás HSV konverzió Szegmentált, konvertált kép Szegmentálás Értelmezés Lefogott hang kiszámítása Kéztávolság és pengetés esemény Pengetés esemény felismerése Előállt hang Hang előállítás Képinformáció értelmezése
Kamera kép Előfeldolgozás Ablakok pozícionálása Simítás HSV konverzió Szegmentált, konvertált kép Szegmentálás Értelmezés Lefogott hang kiszámítása Kéz távolság és pengetés esemény Pengetés felismerése 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 Hang előállítása
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
Szegmentálás • Hisztogram alapú szegmentálás • Lokális szegmentálás • Fix küszöb
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 adatokszürkeárnyalatos kép
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
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
Tartalomjegyzék • Célkitűzés • Bemutatkozás • Rendszerterv • 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 • DirectSound • Összegzés • Tartalomjegyzék • Köszönetnyilvánítás • Készítők
A projektet készítették: Bónis Balázs Gyöngyi Lajos Szabó Attila http://iar.bmfnik.hu/2008_2009/hands_up/