Nad tím nejde mávnout rukou – Vít Babka dosáhl ve své bakalářské práci při rozpoznávání sedmi různých bezdotykových gest přesnosti 99,7 %. Přestože téma původní ročníkové práce vybíral trochu později, našel takové, které ho nadchlo. A navazující bakalářkou nadchl komisi. Vítek se chystá pokračovat ve studiu AI a doufá, že se bude této oblasti věnovat i v budoucnu.
Mohl byste stručně představit svou práci? O čem konkrétně pojednává?
Má práce se zabývá rozpoznáváním bezdotykových gest ruky ze senzoru pomocí neuronových sítí. Jde o destičku, nad kterou uživatel různě mává rukou, tedy provádí různá gesta. Já jsem se zabýval tím, jak tyto gesta co nejpřesněji klasifikovat.
Při hledání nejlepšího klasifikátoru jsem vyzkoušel několik architektur neuronových sítí. Nakonec se mi podařilo dosáhnout přesnosti 99.7 % pro sedm různých gest.
Velkou částí mé práce byl také sběr trénovacích a testovacích dat a vyhodnocení výsledných klasifikátorů.
Senzor Microchip
MGC3130
Co vás inspirovalo k tomu, abyste se zaměřil právě na toto téma?
Zajímá mě umělá inteligence, to je i jeden z důvodů proč jsem se nakonec rozhodl pro studium informatiky, a proto jsem si také vybral studijní zaměření Umělá inteligence.
Při hledání tématu na ročníkový projekt, na který moje bakalářská práce navazuje, jsem se tedy snažil domluvit nějaké téma spojené s AI. Vzhledem k tomu, že jsem začal oslovovat učitele později, měli už téměř všichni plno.
Nakonec jsem našel na stránkách Katedry distribuovaných a spolehlivých systémů právě toto téma, které vedl prof. Tomáš Bureš.
Přestože jsem ani neměl jinou možnost, myslím si, že jsem dostal jedno z nejlepších možných témat.
Nejúspěšnější
architektura – konvolučně-rekurentní neuronová síť
Můžete vysvětlit, jaká konkrétní využití má vaše práce?
Výsledkem mé práce byl jednak systém pro klasifikaci gest z daného senzoru, který je možné použít v praxi jako Python modul.
Ale především jsem prozkoumal různé možnosti vývoje klasifikátoru bezdotykových gest. Poznatky z mé práce je možné využít pro návrh a vytrénování spolehlivého klasifikátoru dat s podobnou charakteristikou. Tedy přínos mé práce nemusí být omezen na konkrétní senzor, který jsem používal.
S jakými technologiemi jste pracoval, jaké metody jste využíval, a proč zrovna tyto?
Většinu kódu jsem psal v Pythonu, který je dnes ve strojovém učení jednoznačnou volbou.
Pro trénování neuronových sítí jsem použil PyTorch. Což je framework pro Python, který umožňuje efektivní trénování neuronových sítí. Pro snazší a přehlednější trénování jsem také použil Keras jako API s PyTorch backendem. Keras umožňuje přehledné definice modelů neuronových sítí a práci s nimi.
Součástí mé práce byla také desktopová aplikace pro sběr trénovacích dat ze senzoru. Pro implementaci této aplikace jsem zvolil jazyk C#, který díky integraci Windows Forms nabízí snadnou tvorbu grafického uživatelského rozhraní.
Co bylo během psaní vaší práce nejtěžší, bylo něco, na čem jste se zasekl, nějaká cesta, co nikam nevedla? Je něco, co byste zpětně udělal jinak?
Těžko říct, jaká část mé práce byla nejtěžší, každá měla své překážky. Při sbírání trénovacích a testovacích dat jsem musel získat data od co nejvíce lidí, aby byly datasety kvalitní. Při trénování různých neuronových sítí jsem strávil hodně času výběrem hyperparametrů, aby bylo trénování optimální.
Jedna z mých architektur měla oproti ostatním velmi špatné výsledky, nakonec to ale vedlo k navržení a vytrénování mého nejlepšího modelu.
Ve výsledku bych řekl, že nejtěžší bylo práci napsat, u psaní se mi nedaří udržet pozornost a hodně prokrastinuju.
Jakým způsobem jste ověřoval výsledky své práce?
Ve své práci jsem testoval různé architektury neuronových sítí a způsoby jejich trénování.
Podstatnou částí mé práce tedy bylo vyhodnocení, kde jsem testoval klasifikátory na testovacím datasetu. Následně jsem vyhodnocoval jejich přesnost a porovnával je mezi sebou i pomocí statistických metod.
Vyhodnocoval jsem také přesnosti klasifikace jednotlivých gest a sledoval jsem pokles přesnosti při rostoucím počtu kategorií gest.
Co považujete za nejdůležitější výsledek nebo závěr své práce?
Za důležité považuji to, že se mi podařilo navrhnout funkční systém, který dokáže klasifikovat gesta ruky s velmi dobrou přesností.
Také jsem navrhl a implementoval nástrojový řetězec, který zahrnuje sběr, anotaci a úpravy trénovacích dat, trénování neuronových sítí a živou klasifikaci gest ze senzoru.

Máte pocit, že vaše práce může být inspirací pro další studenty nebo odborníky v dané oblasti?
Myslím si, že velký přínos mohou mít moje návrhy a porovnání různých architektur neuronových sítí a způsobů jejich trénování, které mohou být inspirací pro návrh klasifikačních systémů pro podobná data.
Zároveň je mou práci možné rozšířit o složitější neuronové sítě, větší trénovací datasety nebo více kategorií gest.
Má práce by se také mohla hodit pro budoucí reálné nasazení klasifikačního systému v podobě rozhraní pro interaktivní ovládání zařízení.
Jaké máte plány do budoucna?
Mám v plánu pokračovat ve studiu Umělé inteligence na magisterském studiu na Matfyzu.
Nemám zatím naplánováno, jakým konkrétním tématem se budu zabývat v rámci diplomové práce. Nejspíše se ale opět zaměřím na neuronové sítě.
Vedoucí mé bakalářské práce mi nabídl další spolupráci, tak je možné, že to téma bude podobné.
Video ukazuje živou klasifikaci (rozpoznání) gest. Na grafu můžeme vidět data, která přichází ze senzoru. Jakmile je provedeno gesto, systém to detekuje a pošle data do neuronové sítě, která gesto klasifikuje (zařadí do jedné z kategorií). V pravém dolním rohu pak můžeme vidět jméno gesta a na grafu data ze senzoru, která reprezentují dané gesto.
Odkaz:
Bakalářská práce Víta Babky: Sběr a klasifikace dat z bezdotykového senzoru pomocí neuronové sítě
Původní materiál Informatické sekce