Szoftverfejelsztés emberi kéz gesztusának felismerésére
A mindennapokban egyre nagyobb szerepet kapnak az okostelefonok. Ott lapulnak mindenki zsebében és egyre gyakrabban használjuk őket. Az eszközünk fő beviteli perifériája az érintőképernyő, de emellett egyéb módszerek is léteznek: gomb, mikrofon és kamera. Az utóbbiakat kevésbé használjuk, de kutatók kivételes fejlődést értek el emberi hang és gesztusok érzékelésében. Napjainkban főként a gesztusokra fókuszálnak a fejlesztések: a fő cél minél pontosabban és megbízhatóbban értelmezni az emberi mozdulatokat, hogy ezzel egy felhasználóbarát módszert kapjunk az eszközünkkel való kommunikációhoz. Lehetséges, hogy a jövőben a gesztus alapú kommunikáció fogja felváltani az érintőképernyőt, ezért én is csatlakoztam a kutatásokhoz, és munkám során egy saját utat próbáltam ki.
A projekt célja egy olyan telefonos program írása, amely képes stabilan érzékelni a főbb kézi gesztusokat, nappal és éjszaka is. Követelmény volt, hogy alacsony erőforrás igényű legyen, hogy átlagos kamerás telefonon is fusson. Többféle megoldást is készítettek erre a problémára és rengeteg példa videó található meg az Interneten. Ezek közül, ami szabadon felhasználható, egyik sem felelt meg: nem volt elég megbízható, vagy túl sok erőforrást igényelt, ezért egy saját felismerő írása mellett döntöttem. Ki kellett szűrnöm a környezet zavaró hatásait és lehetőséget biztosítani a működésre mozgás közben is. Az algoritmus a következő főbb lépésekből áll: emberi bőrszín szűrése, kézfelület megkeresése, zajszűrés, skeleton keresés, ujjak keresése és gesztus érzékelése.
A munkámat Android környezetre írtam meg és az OpenCV osztálykönyvtárat használtam fel. A felismerő motorhoz a C++ nyelvet választottam a nagyobb hatékonyság és sebesség érdekében. Külső függvények helyett saját képfeldolgozó algoritmusokat készítettem, szakítva a hagyományos OpenCV kézi gesztus érzékelővel, amellyel jelentősen fel tudtam gyorsítani a képfeldolgozást, valamint maximalizáltam a kinyert információkat. A függvények összehangolásával sikerült minimalizálni a felesleges műveletek számát. Az általam írt kódrészletek integrálásával egy újszerű és hatékony megoldást készítettem.
szerző
-
Szekeres Kornél
gépészmérnöki
nappali alapszak
konzulensek
-
Korondi Péter
, Mechatronika, Optika és Gépészeti Informatika Tanszék -
Tóth András
Project Manager, NNG kft. (külső) -
Dr. Csorba Kristóf
egyetemi docens, Automatizálási és Alkalmazott Informatikai Tanszék