Top

život v innovatrics

späť na články

Nudný výskum? V silikónovej maske a parochni sa snažíme oklamať algoritmus

Nudný výskum? V silikónovej maske a parochni sa snažíme oklamať algoritmus

Pohybujeme sa na vedomostnej hrane, vieme sa dostať k prelomovému výskumu skôr ako je oficiálne publikovaný a môžeme ho aplikovať do našich produktov. Neustále posúvame naše hranice, hovorí šéf R&D tímu Marián Beszédeš.

Šéfujete R&D tímu. Čo skúmate či vyvíjate?

„To čo môžu vnímať ľudia ako výsledok našej práce je, že napríklad internet-bankingová mobilná aplikácia rozpozná, že ste živý človek a nie iba fotka, ktorou by chceli banku oklamať nejakí podvodníci. Tento problém sa nazýva face liveness detection – detekcia živosti tváre. Teda rozpoznávanie či ide o fotografiu, alebo človeka snímaného cez kameru. Prípadne či nejde o sochu, alebo gumenú masku. Jednoducho to, o čo sa snažíme je, že z jednej fotografie vie algoritmus povedať či sa nasnímava živý človek, alebo nie. Samozrejme toto je len časť našej práce. Pracujeme v troch tímoch. Face recognition tím, ktorý pracuje aj na tejto úlohe, sa zameriava na celkový výskum a vývoj metód v oblasti rozpoznávania tvárí a ich integráciu do výslednej softvérovej knižnice IFace SDK. Druhým je Computer Vision tím, ktorý sa zameriava na problémy detekcie defektov v priemyselnej výrobe, segmentáciu odtlačkov prstov ľudskej ruky a detekciu markantných bodov v odtlačkoch prstov. A nakoniec Algo tím sa zameriava na vývoj algoritmov rýchleho vyhľadávania, OCR – rozpoznávania znakov a malých odtlačkov prstov, ktoré sa používajú napríklad pri odomykaní mobilných telefónov. Vo všetkých troch tímoch využívame najnovšie poznatky z oblastí Machine Learning, Computer Vision a Deep Neural Networks.

Vráťme sa ešte na chvíľu k detekcii živosti tváre. Ako naučíte algoritmus, aby z jednej fotky vedel, že som živý človek?

„To samozrejme nevie spraviť jeden človek. Musí sa spojiť práca mnohých ľudí v tíme. Najprv vyberieme vhodnú metódu z už publikovaných vedeckých prác v časopisoch, konferenčných zborníkoch, alebo v benchmarkoch, prípadne priamou účasťou na vedeckej konferencii. Vybranú metódu potom dôkladne preštudujeme a pochopíme a následne sa ju snažíme reimplementovať do prototypu. Prototyp dôkladne otestujeme a zistíme jeho slabé a silné stránky. Následne sa snažíme metódu vylepšovať a zaintegrovať do našich riešení. Je to v podstate práca, ktorú robí väčšina študentov pri tvorbe kvalitnej bakalárskej a diplomovej práce technického zamerania. Len samozrejme vo väčšom rozsahu.“

Ak to odľahčíme, môžeme povedať, že predpoklady na túto prácu majú mnohí, ktorí poctivo pracovali na svojej diplomovke a nedali sa zlákať jednoduchšou cestou plagiátorov?

„Jednoznačne. Každý, kto chce robiť diplomovku poctivo, si musí naštudovať nejakú metódu, pochopiť ju a aplikovať. Väčšinou sa však v rámci vysokoškolských prác, rovnako ako v našom prípade nerobí základný, ale aplikovaný výskum. My však ideme ešte trochu ďalej, snažíme sa byť na vedomostnej hrane. Môžeme integrovať metódy, ktoré ešte nie sú oficiálne publikované a sú iba v podobe pre-printu, čo sa aj často stáva.

Čo sa deje po ukončení výskumu a vývoja?

“Softvérové knižnice vyvíjané v R&D tímoch si preberajú ďalšie tímy v Innovatricse, prípadne naši technologicky zdatní zákazníci a integrujú ich do svojich produktov.”

Spomenuli ste pojmy ako hlboké neurónové siete a strojové učenie. Ako konkrétne ich využívate?

“Úlohy, ktoré riešime, ako nájdenie tvarí v obraze, rozpoznanie či ide o muža alebo ženu, odhad veku, rozpoznanie textu na fotografii dokladu, alebo rozpoznanie odtlačku prsta, sú zložité na to, aby sa dali vyriešiť konvenčnými metódami spracovania obrazu. Algoritmy strojového učenia hlbokých neurónových sietí nám pomáhajú vytvoriť nový špecializovaný algoritmus, ktorý si poradí s takto zložitými úlohami. My pripravujeme vstupné dáta a k nim prislúchajúce žiadané výstupy, ktoré potom predávame precízne vybraným a nastaveným metódam strojového učenia. My sme učitelia a hlboká neurónová sieť je študent, ktorého správnosť odpovedí hodnotíme a známkujeme a ona sa snaží mať čo najlepšie vysvedčenie. Avšak na natrénovanie hlbokej siete potrebujete mnoho dát.

Aké dáta potrebujete napríklad v prípade detekcie živosti tváre ?

Jednak sú to fotografie skutočných, živých tvárí a jednak fotografie umelých – podvodných tvárí. Získať živé tváre je jednoduché – sú to ľubovoľné selfie fotografie ľudí. My však potrebujeme neurónovú sieť zásobiť aj umelými tvárami, ktoré musíme nejakým sposobom vyrobiť. Kvôli tomu sme si vytlačili niekoľko tisíc fotografií tvárí na papier. Máme zakúpené aj silikónové masky, ktoré si dáme na tvár a snažíme sa tak algoritmus oklamať. Máme tiež skombinované papierové masky s parochňami alebo okuliarmi. Podvodné tváre vyrábame aj digitálne – na skutočnú tvár digitálne prilepíme tvár vystrihnutú z inej živej fotografie. A to stále nie je dosť. Každú takúto fotografiu či už živú, alebo podvodnú, ešte rozmnožíme drobnými zmenami – dodaním šumu, rozmazaním, malým zrotovaním, alebo posunom – hovorí sa tomu augmentácia dát. Takto nám vzniká obrovské množstvo dát.

Čo sa s týmito dátami deje ďalej?

Obrazové dáta použijeme v procese učenia, kde sa transformujú na náš softvér v podobe natrénovaných neurónových sietí. Toto je úplný obrat vo vývoji softvéru, ktorý už nie je písaný programátorom, ale učiacim algoritmom neurónovej siete. Niektorí odborníci to nazývajú aj Softvér 2.0. Kvôli tomu je potrebné zmeniť nielen rozmýšľanie pri vývoji softvéru, ale aj vnútornú infraštruktúru. Dáta potrebujete označovať verziami, filtrovať, spájať a čistiť. A samozrejme nemusia to byť iba tváre, robili sme napríklad aj detekciu poškodenia asfaltu na cestách, či biometriu dúhovky. Jednoducho dát je veľké množstvo a my si z nich potrebujeme vytvárať zmysluplné datasety pre trénovanie špecializovaných neurónových sietí. Dnes už preto potrebujeme okrem výskumníka a vývojára aj dátového špecialistu, ktorý sa bude o všetky tieto dáta starať.

Ako je to s vylepšovaním biometrie odtlačkov prstov?

Computer vision tím sa aktuálne snaží, aby sme technológiu hlbokých neurónových sietí dokázali využiť aj v prípade odtlačkov prstov. Tu nám pomáhajú hľadať presnejšie segmentácie prstov a následne pozície a typy jednotlivých markantov, takzvaných minutiae bodov. Chceme vytesniť historickú technológiu, aby sme získali rýchlejšie a presnejšie riešenie.“

Čo keď budete mať toto všetko hotové?

„Pokračujeme ďalej. Vývoj technológií je veľmi rýchly. Riešenie v tvárovej biometrii, ktoré sme predložili vlani v auguste celosvetovému benchmarku Face Recognition Vendor Test, ktorý zostavuje NIST(Národný inštitút pre štandardy a technológie USA), skončilo na 12. mieste. Po roku sme spadli na 30. priečku. Dostávame však neustále priestor na zlepšovanie sa. Máme šancu zlepšovať naše riešenia a opravovať chyby, čo je skvelé. Pracujeme totiž so zameraním na produkt a nie na projekt. Takže vďaka tomu sa naše riešenie z augusta tohto roku umiestnilo opäť veľmi dobre, na 13. mieste. Neustále sa musíme zlepšovať.“

Čo znamená neustále sa zlepšovanie? Napríklad bežný človek vnímal problémy s tvárovou biometriou, keď sa začali nosiť rúška a jeho telefón ho pri platbe v obchode nevedel identifikovať.

„Posledného pol roka sme robili aj na zlepšovaní presnosti na tvárach s rúškom. Výrazne sme zvýšili presnosť rozpoznávania. Avšak ak by sme aj dotiahli presnosť takmer do dokonalosti, budeme chcieť, aby bolo riešenie ešte rýchlejšie. A ak dosiahneme aj to, budeme chcieť, aby fungovalo aj na lacnejších zariadeniach ako je napríklad priemyselná kamera. Pridávame tiež nové vlastnosti softvéru, napríklad na detekciu dúhoviek, tvárí, tiel a podobne. Je to nikdy sa nekončiaci proces.“

Koľko ľudí robí na všetkých týchto úlohách?

Celkovo je nás 15. Najviac (osem) je nás vo Face recognition tíme. Viacerí z nás sú univerzálni – vedia si prečítať článok, urobiť prototyp a aj ho zaintegrovať a zoptimalizovať. Sú to ľudia, ktorí majú niekoľko ročnú skúsenosť v našom tíme. Teraz hľadáme ďalších aspoň troch ľudí, ktorých sme pripravení zaškoliť. Jedná sa o pozície Computer Vision/Machine Learning Engineer a Image Datasets Processing Owner/Developer. Vhodní kandidáti by mali mať analytické schopnosti, skúsenosti s programovaním v jazyku Python. Výhodou je skúsenosť s biometriou. Do algoritmového tímu hľadáme Vývojára Algoritmov, kde je preferencia znalosti jazyka C++ a výborná orientácia v algoritmizácií a matematických modeloch. Mimochodom, ľudia u nás sa neustále vzdelávajú a posúvajú dopredu. Každý z nás má počas roka možnosť ísť na medzinárodnú konferenciu. Už pri nástupe odporúčame ľuďom kurzy, ktoré im môžu pomôcť zlepšovať sa v práci. Firma tieto kurzy prepláca. No a samozrejme máme teambuildingy, kde vždy radi oslávime naše spoločné úspechy.“

Pozrite si Mariánovu prezentáciu na online podujatí Night of Chances, kde rozpráva bližšie o brnenskom R&D centre a naživo diskutuje so študentami na rôzne témy.

Chcem sa stať súčasťou tímu
Prezrieť ponuku