ERK'2022, Portorož, 406-409 406 Zaznavanje gest na vgrajeni napravi s prvoosebnim pogledom Blaž Rolih and Luka ˇ Cehovin Zajc Univerza v Ljubljani, Fakulteta za raˇ cunalništvo in informatiko E-pošta: br9136@student.uni-lj.si, luka.cehovin@fri.uni-lj.si Abstract We are presenting a prototype of a wearable computing visual gesture recognition system that works on an em- bedded device. It uses a series of neural networks to de- tect a hand in first-person view, track its position and classify gestures into a number of categories. All this is done almost entirely on a dedicated embedded device, leaving resources of the main computer free for the actual application. As a part of our work we have implemented gesture control for a music player. Experimental evalua- tion shows that our system is able to detect a number of gestures reliably. It is able to learn to recognize a number of gestures using a fairly limited training dataset. 1 Uvod Z razvojem raˇ cunalniških sistemov ter njihovim prodo- rom v vse pore našega življenja so se razvijali tudi naˇ cini interakcije z njimi. Rokovanje z digitalnimi napravami, s katerimi se sreˇ cujemo tekom dneva, postaja vedno bolj heterogeno in prilagojeno namenu. Kljub temu, da se za zahtevno raˇ cunalniško delo še vedno v glavnem uporabl- jata miška in tipkovnica, se s telefoni že desetletja up- ravlja z zasloni na dotik, popularni pa postajajo tudi gov- orni vmesniki ter roˇ cne geste. Zanimiva platforma za nove naˇ cine interakcije je nos- ljivo raˇ cunalništvo (ang. wearable computing), ki obsega naprave, ki jih nosimo na telesu. Razni gumbi in stikala so lahko zasnovani intuitivno, vendar pa niso uporabni v vsakem kontekstu, marsikdaj bi lahko doloˇ cene akcije sprožili s telesnimi gestami. Tak naˇ cin rokovanja postaja zanimiv v kontekstu obogatene resniˇ cnosti (ang. aug- mented reality, AR), pri ˇ cemer bi lahko za zaznavanje uporabili tudi kamero, ki jo sistem uporablja za zajeman- je okolja. V primeru nosljivih naprav pa mora biti za- znava gest prilagojena zaznavanju s senzorji na telesu, v primeru kamere to pomeni zaznavanje s prvoosebnim pogledom, kot je prikazano na Sliki 1. V ˇ clanku je predstavljen prototip za brezstiˇ cno up- ravljanje z gestami roke na podlagi raˇ cunalniškega vida v kontekstu prvoosebnega pogleda. Predstavljena študija problem obravnava v dveh medsebojno povezanih sme- reh. Zanima nas kakšen algoritem za razpoznavo lahko uporabimo, da bo razpoznava hitra in robustna tudi v pr- voosebnem pogledu, obenem pa primerna za uporabo na vgrajenih senzorjih. Slika 1: Ilustracija prototipa za zaznavanje gest z napravo OAK- D v prvoosebnem pogledu. 2 Sorodna dela Prepoznavanje gest je kljub dolgi zgodovini [1] še vedno aktualno raziskovalno podroˇ cje, razvoj algoritmov je po- vezan z razvojem strojne opreme, ki omogoˇ ca vedno bolj ambiciozne scenarije razpoznave. Najbolj znan sistem za razpoznavanje gest v zadnjem desetletju je verjetno še vedno Microsoft Kinect, z uporabo katerega je bilo vse od njegove prve verzije implementiranih veˇ c siste- mov za prepoznavanje gest [2, 3] ter tudi bolj fine geste znakovnega jezika [4]. Kinect s pomoˇ cjo infrardeˇ ce svet- lobe doloˇ ca globinsko sliko, ki se lahko uporabi za dolo- ˇ citev telesne poze uporabnika [5] ali njegove roke, zato pa potrebuje ustrezno nadzorovano okolje ter moˇ can gos- titeljski sistem za obdelavo podatkov od globinske slike naprej. Zaradi omejitev globinskih kamer novejši pristopi preizkušajo tudi druge senzorje, raziskovalci so dosegli dobre rezultate z uporabo radarskih valov [6, 7]. Inter- akcija s pomoˇ cjo radarja je primerna tudi za upravljanje v avtomobilu [8]. Poleg tega se je razširila uporaba glo- bokega uˇ cenja in nevronskih mrež, ki dobro obravnavajo razlike v izvajanju gest med ljudmi [9] z ustrezno zas- tavljeno uˇ cno množico. Z uporabo te metodologije so bili doseženi novi preboji pri razpoznavanju gest [10] pa tudi v kontekstu znakovnega jezika [11]. Glavni fokus obstojeˇ cih raziskav na temo razpozna- vanja gest gredo torej v smer izboljšave natanˇ cnosti z 407 Slika 2: Zaznane kljuˇ cne toˇ cke na roki v kontrolnem prikazu prototipa. Zaznavanje dlani Regresija ključnih točk Vhod Dlan izgubljena med sledenjem Sledenje dlani upešno Ni detekcije dlani Detekcija Slika 3: Delovanje algoritma za spremljanje položaja roke. metodološkimi spremembami in izboljšavo in veˇ canjem koliˇ cine uˇ cnih podatkov. V primerjavi z njimi je naš cilj bolj sistemski, preveriti hoˇ cemo možnosti za uˇ cinkovito implementacijo lahkega in hitrega, obenem pa dostop- nega senzorskega sistema za razpoznavo gest z novo gen- eracijo vgrajenih naprav, v našem primeru gre za plat- formo DepthAI, ki jo razvija podjetje Luxonis 1 . Kljub kompaktnosti in nizki porabi izbrana naprava omogoˇ ca izvajanje kompleksnih globokih modelov v realnem ˇ casu. Drugi sistemi, ki temeljijo na cenovno dostopnih napra- vah [12] so še vedno odvisni od moˇ cnega gostiteljskega raˇ cunalnika, zato bi lahka in prenosna platforma lahko podprla študije na podroˇ cju uporabniških vmesnikov z uporabniki izven laboratorijskega okolja. 3 Metodologija Kot smo že omenili, je naš sistem zasnovan pragmatiˇ cno, združuje pred-nauˇ cen globoki model za doloˇ citev poze roke ter preprosto mrežo za razpoznavanje gest. Taka kombinacija se je že izkazala za robustno in uˇ cinkovito v drugih raziskavah [7]. Na ta naˇ cin pridobimo fleksibilen in robusten sistem, saj lahko oba modula zamenjamo ali douˇ cimo neodvisno enega od drugega. Prvi del algoritma temelji na dveh konvolucijskih nevronskih mrežah ter vmesnih operacijah, kot je to o- pisano v [13] in prikazano v diagramu na Sliki 3. Za za- znavanje dlani se uporablja hitri detektor rok, ki temelji na arhitekturi SSD [14]. To omogoˇ ca dovolj hitro zazna- vanje rok pri razliˇ cnih velikostih. Druga mreža pa opravi regresijo 21 kljuˇ cnih toˇ ck roke, kot je to prikazano na Sliki 2. Za pohitritev se detekcija ne izvaja v vsakem koraku, po zaˇ cetni zaznavi roke se za doloˇ citev pozicije opravi sledenje na podlagi regresije kljuˇ cnih toˇ ck [13]. Drugi del algoritma temelji na procesiranju zaznane- ga stanja roke v veˇ cih zaporednih ˇ casovnih korakih ˇ cemur 1 https://docs.luxonis.com/en/latest/ Input (30 x 42) LSTM128 LSTM 64 Polna 64 Polna 32 Polna 6 30 zajemov (30 FPS) z 21 koordinatami (x, y) na roki 5 gest + "idle" (brez geste) Slika 4: Veˇ cnivojska LSTM arhitektura, ki jo uporabljamo za zaznavo gest. algoritem pripiše ustrezno gesto. Za to nalogo smo defini- rali preprosto veˇ cnivojsko arhitekturo s kombinacijo pla- sti LSTM [15] in polno povezanih plasti, prikazana na Sliki 4. Mreža prejme zaporedje pozicij posameznih toˇ ck roke zajetih v ˇ casovnem oknu 30 zajemov (kar pri nor- malnem delovanju ustreza eni sekundi). 4 Sistem Sistem za zaznavanje gest je bil implementiran na vgra- jeni napravi OAK-D 2 . Platforma je namenjena realnoˇ cas- ni uporabi metod raˇ cunalniškega vida in strojnega uˇ cenja na zmogljivih in uˇ cinkovitih vgrajenih sistemih. Jedro naprave je namenski ˇ cip za procesiranje slikovnih po- datkov Movidius MyriadX podjetja Intel. Sama naprava je v veliki meri tudi odprtokodna in je dostopna velikemu krogu uporabnikov. V naših scenarijih uporabe predpostavljamo, da bi bil sistem, podoben platformi DepthAI vgrajen v oˇ cala za obogateno resniˇ cnost. To smo simulirali tako, da je imel uporabnik kamero namešˇ ceno na glavo s pomoˇ cjo nagla- vnega traku, kot je prikazano na Sliki 1. OAK-D pod- pira soˇ casno izvajanje veˇ c nevronskih mrež ter ostalih op- eracij, postopek obdelave se opiše s cevovodom, ki se iz- vaja neposredno na napravi, brez vmesnega nadzora gos- titeljskega sistema. 5 Evalvacija Prototip za zaznavanje gest smo preizkusili na scenar- iju upravljanja predvajalnika glasbe. Za upravljanje smo doloˇ cili pet gest, ki so ilustrirane na Sliki 5. Zaradi zas- nove sistema, predvsem zaradi robustne predstavitve rok, sistem že z manjšo uˇ cno množico doseže visoko toˇ cnost. Uporabljamo pred-nauˇ cena modela za detekcijo dlani in regresijo kljuˇ cnih toˇ ck roke [13]. Modela sta nauˇ cena na veliki koliˇ cini razliˇ cnih podatkov, kar zagotavlja robustno zaznavanje rok. Model za razpoznavanje gest v ˇ casu smo nauˇ cili na podatkih, ki smo jih zajeli sami. Za eksperiment v ob- segu tega ˇ clanka smo zajeli množico posnetkov gest, ki so jih izvajale tri osebe. Vsaka oseba je za vsako od 2 https://store.opencv.ai/products/oak-d 408 Nazaj (Back) Naprej (Forward) Predvajaj (Play) Pavza (Pause) Glasnost (Volume) Slika 5: Prikaz petih gest v sistemu, geste so ilustrirane z za- ˇ cetno in konˇ cno pozicijo roke. Slika 6: Primerjava obsega uˇ cne množice, uporaba gest ene os- ebe napram uporabi gest dveh oseb v enakem in dvojnem ob- segu. petih gest izvedla 20 ponovitev. Poleg tega smo za us- trezno obravnavo zaznave gest v obliki klasifikacije za- jeli tudi 40 primerov gibanja brez namenske geste, kar oznaˇ cimo z razredom idle. Skupno je bilo zajetih 400 kratkih posnetkov, kar je sicer malo za globoko metodo, a ker uˇ cimo samo zadnji del algoritma z manj parametri, že to zadostuje za dobre rezultate. Model za razpoznavo gest smo uˇ cili na posnetkih ene ali dveh oseb, testiranje pa izvedli na posnetkih tretje. Same uˇ cne podatke smo v nadaljevanju razdelili v razmerju 70/ 30 še na del za validacijo. Pri uˇ cenju smo uporabili algoritem Adam s stopnjo uˇ cenja 0. 001 in velikost paketa 32. Kot funkcijo izgube smo uporabili križno entropijo. Zaradi prepros- tosti modela je uˇ cenje že na CPE trajalo le nekaj minut, kar je uporabno za hitro inkrementalno izboljšavo in u- ˇ cenje novih gest. Na diagramu 6 vidimo toˇ cnost na testni množici, ki v primeru modela, nauˇ cenega na gestah dveh oseb dosega 90%. Model torej dokaj dobro posplošuje tudi na še ne vi- denih podatkih. Ob pregledu matrike zamenjav na Sliki 7 pa opazimo, da model dobro zaznava posamezne geste, ter jih uspešno loˇ ci, težave pa ima pri razlikovanju de- janske geste in odsotnosti le-te, (razred idle). V primeru uporabe primerov zgolj ene osebe pa natanˇ cnost pade, iz matrike zamenjav, prikazane na Sliki 8 pa vidimo, da do tega pride tudi na raˇ cun zamenjav med gestami. Po priˇ cakovanjih model torej bolje posplošuje, ˇ ce geste v uˇ cni množici izvaja veˇ c kot ena oseba, tudi, ˇ ce gre za enako število uˇ cnih primerov. Predpostavljamo, da bi lahko z dodatnimi primeri veˇ cih izvajalcev gest robust- nost še izboljšali, prav tako pa ocenjujemo, da bi se lahko sistem z gestami enega izvajalca v uporabi prilagodil na specifike njegovih gest. Slika 7: Matrika zamenjav modela nauˇ cenega na gestah dveh izvajalcev. Slika 8: Matrika zamenjav modela nauˇ cenega na gestah enega izvajalca. V praksi je pri zaznavi gest pomembna toˇ cnost klasi- fikacije, obenem pa želimo zmanjšati verjetnost lažne za- znave. V toku slik je obravnavanih veliko ˇ casovnih oken, pri tem pa se hitro zgodi, da pride do šumnega primera, ki povzroˇ ci napako. V praksi lahko take zaznave pre- preˇ cimo z robustnim pristopom. V vsaki sekundi nam- reˇ c dobimo 30 zaznav, gesta pa je potrjena le, ˇ ce je N zadnjih zaznav napovedalo isto kategorijo. Za testiranje zanesljivosti daljše uporabe sistema je zajeta sekvenca osmih gest, med katerimi nastopa tudi nakljuˇ cno premi- kanje rok, ki ne predstavlja dejanskih gest s pomenom. Na diagramu na Sliki 9 vidimo vpliv števila potrebnih zaporednih zaznav geste. Vidimo, da s poveˇ cevanjem velikosti okna pada število lažnih zaznav, vendar pa od meje 20 pada tudi število pravilnih zaznav, verjetno tudi 409 Slika 9: Primerjava rezultatov za mejo, ki doloˇ ca koliko istih zaznav pomeni dejansko zaznavo geste. zaradi sorazmerne kratkosti obravnavanih gest. Potrebnih 20 zaznav tudi ne vpliva opazno na zamik zaznav. Za do- datno izboljšanje bi lahko model inkrementalno douˇ cili z množico primerov premika roke, kjer prihaja do lažnih zaznav (ang. hard positive/negative mining). Prototip smo ovrednotili tudi s testnimi uporabniki. Uporabnikom so bile predstavljene geste, sledila je prosta interakcija ter kratek intervju. Sistem se je uporabnikom zdel uporaben ter veˇ cina odzivov je bila pozitivnih. Same geste so bile vsem uporabnikom smiselne, saj so bile za- snovane tako, da so semantiˇ cno povezane s samo akcijo. Uporabniki gest ne bi spremenili, bi pa nekateri združili gesti za predvajanje in ustavljanje glasbe, ki sta dejansko negacija ena druge. Tudi v sklopu teh testov so glavno težavo povzroˇ cile lažne zaznave, ki so se pojavile pri po- tezah, ki spominjajo na dejanske geste. 6 Zakljuˇ cek V ˇ clanku smo predstavili prototip sistema za zaznavanje gest na podlagi kamere z globokimi nevronskimi mre- žami. Posebnost sistema je, da deluje v kontekstu nos- ljivega raˇ cunalništva in torej obdeluje slike, zajete v pr- voosebnem pogledu, hkrati pa deluje skoraj v celoti na dostopni vgrajeni napravi in je kot tak lahko razširljiv in nadgradljiv. V okviru študije smo preverili tudi nekatere lastnosti sistema na scenariju brezstiˇ cnega upravljanja z glasbenim predvajalnikom in ugotovili, da se kljub ma- jhnemu številu uˇ cnih primerov model dobro nauˇ ci pos- ploševanja gest, z dodajanjem primerov veˇ cih uporab- nikov pa se robustnost še poveˇ ca. V nadaljnjem delu imamo namen izvesti širšo študijo z veˇ c udeleženci, ob- enem pa sistem razširiti na veˇ c aplikacij in na ta naˇ cin preveriti meje sistema glede razlikovanja gest ter robust- nost na variacije izvedbe le-teh. Zahvala: Raziskava je bila delno financirana v okviru ARRS programa P2-0214. References [1] J. Yamato, J. Ohya, and K. Ishii. Recognizing human action in time-sequential images using hidden markov model. In CVPR, pages 379–385, 1992. [2] Yi Li. Hand gesture recognition using kinect. In 2012 IEEE International Conference on Computer Science and Automation Engineering, pages 196–199, 2012. [3] Yanmei Chen, Bing Luo, Yen-Lun Chen, Guoyuan Liang, and Xinyu Wu. A real-time dynamic hand gesture recog- nition system using kinect sensor. In 2015 IEEE Interna- tional Conference on Robotics and Biomimetics (ROBIO), pages 2026–2030, 2015. [4] Zahoor Zafrulla, Helene Brashear, Thad Starner, Harley Hamilton, and Peter Presti. American sign language recognition with the kinect. In Proceedings of the 13th International Conference on Multimodal Interfaces, ICMI ’11, page 279–286, New York, NY , USA, 2011. Associa- tion for Computing Machinery. [5] Jungong Han, Ling Shao, Dong Xu, and Jamie Shotton. Enhanced computer vision with microsoft kinect sensor: A review. IEEE Transactions on Cybernetics, 43(5):1318– 1334, 2013. [6] Saiwen Wang, Jie Song, Jaime Lien, Ivan Poupyrev, and Otmar Hilliges. Interacting with soli: Exploring fine-grained dynamic gesture recognition in the radio- frequency spectrum. page 851–860. Association for Com- puting Machinery, 2016. [7] Nanziba Basnin, Lutfun Nahar, and Mohammad Hos- sain. An integrated cnn-lstm model for micro hand gesture recognition. pages 379–392, 02 2021. [8] Karly A. Smith, Clément Csech, David Murdoch, and George Shaker. Gesture recognition using mm-wave sen- sor for human-car interface. IEEE Sensors Letters, 2(2):1– 4, 2018. [9] Sushmita Mitra and Tinku Acharya. Gesture recognition: A survey. IEEE Transactions on Systems, Man, and Cy- bernetics, Part C (Applications and Reviews), 37(3):311– 324, 2007. [10] Liang Zhang, Guangming Zhu, Peiyi Shen, Juan Song, Syed Afaq Shah, and Mohammed Bennamoun. Learn- ing spatiotemporal features using 3dcnn and convolutional lstm for gesture recognition. In ICCV Workshops, pages 3120–3128, 2017. [11] Songyao Jiang, Bin Sun, Lichen Wang, Yue Bai, Kun- peng Li, and Yun Fu. Skeleton aware multi-modal sign language recognition. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops, pages 3413–3423, June 2021. [12] Cloe Huesser, Simon Schubiger, and Arzu Coltekin. Ges- ture Interaction in Virtual Reality: A Low-Cost Machine Learning System and a Qualitative Assessment of Effec- tiveness of Selected Gestures vs. Gaze and Controller In- teraction, pages 151–160. 08 2021. [13] Fan Zhang, Valentin Bazarevsky, Andrey Vakunov, An- drei Tkachenka, George Sung, Chuo-Ling Chang, and Matthias Grundmann. Mediapipe hands: On-device real- time hand tracking. CoRR, abs/2006.10214, 2020. [14] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott E. Reed, Cheng-Yang Fu, and Alexan- der C. Berg. SSD: single shot multibox detector. CoRR, abs/1512.02325, 2015. [15] Sepp Hochreiter and Jürgen Schmidhuber. Long short- term memory. Neural Computation, 9(8):1735–1780, 1997.