Preskočiť na obsah Preskočiť na pätu (NCP VaT)
VEDA NA DOSAH – váš zdroj informácií o slovenskej vede

Roboty, ktorým nie ste ľahostajní

VEDA NA DOSAH

robot

V posledných rokoch sa významne zlepšila schopnosť robotov vnímať svoje okolie. Predovšetkým sa stali dostupnými metódy, vďaka ktorým vie robot nielen vidieť, ale aj chápať, čo vidí. Tieto metódy patria do tzv. strojového učenia a vychádzajú vždy zo sady dát, na ktorých prácne označíme rozpoznávané objekty, z ktorých v procese učenia vytvárajú model, pomocou ktorého potom spracúvame neznáme dáta, s ktorými sa robot stretne, uvádza RNDr. Andrej Lúčny, PhD., Fakulta matematiky, fyziky a informatiky Univerzity Komenského v Bratislave.

„Na robotovi, ktorý je (ako-tak) schopný spoznať, že sa k nemu nakloníte, zapamätať si vaše meno a osloviť vás, keď vás opäť uvidí, sa podieľa hneď niekoľko takých metód, hoci proces vnímania robota je v porovnaní s človekom značne zjednodušený. Človek vníma obraz komplexne, vyberá si z neho jednotlivé objekty, identifikuje medzi nimi mnoho rôznych druhov a každý z nich podrobuje špecifickej analýze, ktorej výsledkom sú hodnoty rôznych parametrov videných objektov. Robotovi na predvedenie jednoduchej interakcie s človekom zatiaľ musí stačiť, keď sa sústredí na najvýznamnejší objekt, ktorý človeka dostatočne reprezentuje, a to ľudskú tvár. A to tvár nezakrytú, nezohavenú, najlepšie od dospelého belocha (keďže súčasné dátové korpusy tvárí, z ktorých sa modely na ich rozpoznávanie učia, obsahujú väčšinou práve takéto tváre),“ uvádza odborník.

robot pri snímaní tváre (na obrázku RNDr. Andrej Lúčny, PhD.)

Pokračuje, že robot v prvom rade musí na obraze nájsť miesta, kde by sa tvár človeka mohla nachádzať. „Pokiaľ nejaké konkrétne miesto na obraze z kamery robota vyšetrujeme, či je na ňom tvár alebo nie, hľadáme takú transformáciu obrazu, ktorá nám umožní odlíšiť tváre od iných objektov. Obraz v pôvodnej podobe môžeme síce tiež prispôsobiť nejakej štandardnej veľkosti, napríklad 64 x 64 pixelov, avšak pokiaľ si v zodpovedajúcom 4096 dimenzionálnom priestore zobrazíme všetky objekty ako body, body zodpovedajúce tváram budú príliš premiešané so stenami, závesmi psími tvárami, atď. (Tu zároveň vidíme, že aby sme k učeniu nejakého systému umelej inteligencie vôbec mohli pristúpiť, potrebujeme nielen príklady rozpoznávaného objektu, ale aj príklady objektov, ktoré sa môžu vyskytovať a sú iné.) Jednou z možných takých reprezentácii je HOG, histogram gradientov.“

Pri tejto reprezentácii sa pokrýva obraz štvorčekmi (napríklad veľkosti 8 x 8 pixelov na obraze 64 x 64, takže napríklad desiaty štvorček – keď ich počítame zľava doprava a zhora dolu – zodpovedá ľavej strane čela, zatiaľ čo v devätnástom leží ľavé oko), v rámci ktorých sa v každom pixeli zaoberajú tzv. gradientom – smerom, v ktorom sa obraz mení (napríklad na hrane bude tento smer kolmý na dotyčnicu k nej). „Tieto smery rozdelíme do kategórii (kruh rozdelíme napríklad na 16 zobrazenie tváre (na obrázku RNDr. Andrej Lúčny, PhD.) výsekov) a v každej kategórii spočítame, koľko je v danom štvorčeku gradientov danej kategórie – dostaneme tzv. histogram. Tieto histogramy (po normalizácii) spojíme za sebou do vektora bytov a hľa, pri takejto reprezentácii vieme tváre oveľa lepšie odlíšiť od iných objektov. Pritom chyba tejto reprezentácie je jasná na prvý pohľad: Akákoľvek transformácia obrazu, ktorá ako-tak zachová gradienty, napr. cyklické rolovanie daného štvorčeka, dostane rovnaký reprezentačný vektor a tým pádom môže byť ako tvár rozpoznané aj to, čo tvárou vôbec nie je. V reálnej situácii je však dosť nepravdepodobné, že by sa to stalo. Fantomickú tvár možno zdetekovať len materiálom, ako je pokrivený záves alebo naviaty piesok, kde môže s trochou fantázie zahliadnuť tvár aj človek. Problémom takejto detekcie tváre je aj to, že si treba vybrať pohľad, z ktorého tvár detekujeme, spravidla uvažujeme pohľad spredu a robot potom nevidí tváre, na ktoré sa díva z boku. Ďalším problémom je, že takto vieme len o určitom mieste na obraze povedať, či to je tvár alebo nie. Aby sme také miesta na obraze identifikovali, musíme sa túto otázku opýtať pre každé miesto na obraze, čo je výpočtovo náročné, žiaľ nič lepšie nevieme,“ vysvetľuje RNDr. Andrej Lúčny, PhD.

Identifikácia miesta, kde sa tvár nachádza, už umožňuje robotovi napríklad otáčať sa za človekom, avšak robot nevie presne povedať, kde má tento človek oči, nos či bradu, čo sú dôležité informácie pre spoznanie, koho je to tvár. Preto na miesto, kde bola nájdená tvár, robot aplikuje detektor čŕt tváre, ktorý mu vráti pozície charakteristických bodov tváre (typicky 68 bodov, medzi ktorými je špička nosa, koreň nosa, ľavý kútik pery, atď.). „Tento detektor je učený z obrázkov vyznačené body na tvári pre detekciu (na obrázku RNDr. Andrej Lúčny, PhD.) tvárí, na ktorých boli tieto body ručne (a teda aj prácne) vyznačené. Naučíme z nich tzv. kaskádny regresor, sériu regresorov, z ktorých prvý posúva priemerné pozície bodov, ktoré predstavujú len veľmi hrubý odhad hľadaných čŕt, na lepšie miesto a ďalšie tento posun zjemňujú až na správne miesta. Pritom pri jednotlivom posune sa regresor rozhoduje na základe kaskády rozhodovacích stromov, v ktorej prvý strom počíta posun, druhý opravu tohto posunu, tretí opravu tejto opravy, atď., je ich takto zapojených rovných 500. Každý strom sa rozhoduje porovnaním intenzity dvojice pixelov relatívne položených voči aktuálnemu odhadu čŕt, pričom vhodné pixely sa nájdu len náhodným výberov a testovaním. Je to úžasné, že z tak slabých súčiastok možno poskladať tak dobre fungujúci detektor. Výhodou detektora čŕt tváre je, že je veľmi rýchly, jeho volanie netrvá na súčasných počítačoch viac, než jednu milisekundu. Výsledok detektora nám umožňuje z tváre vyberať rozhodujúcu časť, ktorá určuje identitu danej osoby a normalizovať ju vzhľadom na otočenie, zväčšenie či zmenšenie. Dostaneme tak obrázok vhodný na reprezentáciu osoby, ktorej videná tvár patrí.“

Identitu osoby podľa jej tváre odborníci určujú na základe podobnosti k niekoľkým obrázkom tváre danej osoby, ktoré uchovávajú v databáze osôb, ktoré robot pozná. „Opäť by sme mohli použiť niektorú z metód strojového učenia, ktorá obraz transformuje do vhodnej reprezentácie. Lepšie výsledky však dosiahneme s prístupom, ktorý v posledných rokoch revolučne zmenil prístup k riešeniam úloh umelej inteligencie a významne zvýšil kvalitu týchto riešení – tzv. hlboké učenie (deep learning). Podstatou hlbokého učenia je, že si vhodnú reprezentáciu obrazu nájde sám. Je to možné vďaka tomu, že pri ňom učíme mnoho vrstevnú umelú neurónovú sieť, ktorú si môžeme predstaviť ako mašinku s desiatimi miliónmi parametrov, ktoré máme nastaviť tak, aby vstupné dáta premieňala na požadované výstupné. Na jednej strane nás tento prístup nesmierne obmedzuje v tom, aké stavebné súčiastky riešenia môžeme používať. Avšak jeho výhoda je, že z rozdielu medzi skutočným a želaným výstupom vieme v procese učenia siete presne povedať, ktorým smerom máme zmeniť každý jeden z tých desiatich miliónov parametrov, aby sa tento rozdiel zmenšil. Keby sme vedeli aj o koľko ich zmeniť, dostali by sme hneď aj dokonalé riešenie. To žiaľ nevieme a preto musíme skúšať, čo spôsobí, že ako – tak dobré nastavenie dostaneme po mnohých hodinách ba aj dňoch. (V budúcnosti pravdepodobne budeme vedieť povedať správne nastavenie za niekoľko mikrosekúnd).“ 

Pokrok v tomto smere môžu podľa odborníka totiž priniesť kvantovo-mechanické počítače. Tie už dnes vedia povedať správne nastavenie hneď, ale len pre problémy s niekoľko tisíc parametrami. Veľkosť ich pamäte sa bude teda musieť ešte desaťtisíckrát zväčšiť, aby boli pre úlohy umelej inteligencie reálne použiteľné. „Nie vždy však musíme proces učenia podstúpiť pri tvorbe našej aplikácie a toto je aj náš prípad. Pokiaľ sa totiž robot určí spoznávať jednotlivé osoby postupne v interakcii s nimi, je nemysliteľné, aby s každou novou osobou absolvoval niekoľko hodinový proces učenia sa nového modelu. Využívame preto existujúci model ResNet v1, ktorý bol naučený zo všetkých obrázkov, ktoré možno nájsť pod nejakým menom v internetovom vyhľadávači, dať pre obrázok reprezentáciu v podobe 128 dimenzionálneho vektora tak, aby vzdialenosť medzi dvomi takými vektormi bola malá, pokiaľ ide o podobné obrázky a veľká, pokiaľ ide o rôzne. Mechanizmus tejto siete funguje neuveriteľne dobre, pozoruhodné je taktiež to, že nie celkom chápeme, ako vlastne funguje. Môžeme sa však napojiť na jej výstup a porovnávať reprezentáciu videného a reprezentáciu toho, čo sme videli vtedy, keď nám pomenovali osobu, ktorú vidíme. Pokiaľ je zhoda dostatočne malá (tu je problém, že presný limit musíme len odhadnúť), predpokladáme, že vidíme rovnakú osobu a robot ju tak môže napríklad pozdraviť jej menom,“ priblížil RNDr. Andrej Lúčny, PhD.

porovnanie obrazov (na obrázku RNDr. Andrej Lúčny, PhD.)

Schopnosti robotov vnímať svoje prostredie sa v posledných rokoch významne zlepšili, dodáva ešte odborník. „Funguje stále len odtiaľ – potiaľ, avšak medzi to odtiaľ – potiaľ sa už zmestí takpovediac celý svet, takže toto riešenie je reálne uplatniteľné. Avšak stále sú veľmi vzdialené schopnostiam človeka. Človek napríklad nevníma len pasívne, ale senzomotoricky, t. j. konštituuje akcie za účelom zlepšenia procesu vnímania. Je však zrejme len otázkou času, kedy sa vnímanie robotov ľudskému vnímaniu plne vyrovná, prípadne ho z hľadiska kvality aj predstihne.“

Aj táto téma je súčasťou podujatia Extrapolácie 2018, ktoré sa každoročne organizuje v slovenských mestách tak, že jedno z nich sa stane hlavným mestom. Tým tohoročným je Žilina. Hlavné mesto informatiky na Slovensku je dominantné v prezentácii svojej vlastnej úrovne, svojich možností a schopností, ale aj svojich problémov. Organizuje prezentácie čo najširšieho počtu IT organizácií vo svojom meste a regióne. Podujatia sa zúčastňujú aj ostatné slovenské mestá. Ich zapojenie dokazuje celoslovenskú úroveň Extrapolácií, pričom cieľom je podpora rozvoja IT vo vzdelávaní, výskume a podnikaní na Slovensku.

Extrapolácie 2018

V termíne od 15. 9. až do 31. 10. 2018 sa tak koná množstvo výstav, motivačných prednášok, prezentácií a exkurzií organizácií pôsobiacich v oblasti vzdelávania a výskumu v IT s cieľom motivovať mladých ľudí k štúdiu a práci v tejto oblasti.

Hlavnými cieľmi podujatia Extrapolácie 2018 je prezentovať históriu slovenskej výpočtovej techniky, predstaviť súčasný stav výskumu, štúdia a produkcie v informatike a IT a hovoriť o víziách v blízkej budúcnosti, motivovať mladých ľudí k štúdiu a práci v oblasti IT, pokračovať vo vytvorenej tradícii odborných a vedecko-popularizačných podujatí na tému „Informatika – naša minulosť aj budúcnosť“ (Košice 2015, Bratislava 2016, Banská Bystrica 2017) a rozvíjať diskusie o informatike vo všetkých jej dimenziách a vplyvoch na spoločnosť.

Záštitu nad podujatím prevzali ministerka školstva, vedy, výskumu a školstva SR JUDr. Mgr. Martina Lubyová, PhD., predsedníčka Žilinského samosprávneho kraja Ing. Erika Jurinová, primátor mesta Žilina Ing. Igor Choma a rektor Žilinskej univerzity v Žiline prof. Ing. Jozef Jandačka, PhD.

Garantmi a partnermi sú okrem Žilinskej univerzity v Žiline aj Ústav informatiky SAV, združenie Z@ICT, Technická univerzita v Košiciach a Slovenská spoločnosť aplikovanej kybernetiky a informatiky, Univerzita Mateja Bela v Banskej Bystrici.

Podujatia sa zúčastňujú aj ostatné slovenské mestá ako Košice, Bratislava a Banská Bystrica, v ktorých sa uskutočnia mnohé motivačné prednášky, prezentácie, exkurzie a workshopy organizácií pôsobiacich v oblasti vzdelávania a výskumu v IT. Ich zapojenie dokazuje celoslovenskú úroveň Extrapolácií.

Viac informácii o podujatí

 

Odborný garant textu a foto poskytol: RNDr. Andrej Lúčny, PhD., Fakulta matematiky, fyziky a informatiky UK v Bratislave

Spracovala: Slávka Cigáňová (Habrmanová), NPC VaT pri CVTI SR

Uverejnila: VČ

CENTRUM VEDECKO-TECHNICKÝCH INFORMÁCIÍ SR Ministerstvo školstva, výskumu, vývoja a mládeže Slovenskej republiky