• No results found

Automatické odezírání ze rt· pomocí neuronových sítí

N/A
N/A
Protected

Academic year: 2022

Share "Automatické odezírání ze rt· pomocí neuronových sítí"

Copied!
48
0
0

Loading.... (view fulltext now)

Full text

(1)

Automatické odezírání ze rt· pomocí neuronových sítí

Bakalá°ská práce

Studijní program: B2612  Elektrotechnika a informatika

Studijní obor: 2612R011  Elektronické informa£ní a °ídicí systémy

Autor práce: Jakub Ková°

Vedoucí práce: Ing. Karel Pale£ek, Ph.D.

(2)

Zadání bakalářské práce

Automatické odezírání ze rtů pomocí neuronových sítí

Jméno a příjmení: Jakub Kovář Osobní číslo: M17000022

Studijní program: B2612 Elektrotechnika a informatika Studijní obor: Elektronické informační a řídicí systémy Zadávající katedra: Ústav informačních technologií a elektroniky Akademický rok: 2019/2020

Zásady pro vypracování:

1. Seznamte se s problematikou automatického odezírání ze rtů pomocí umělých neuronových sítí.

2. Sestavte dataset audiovizuálních nahrávek a vhodně upravte pro snadné zpracování neuronovými sítěmi.

3. Navrhněte vhodnou architekturu neuronové sítě pro automatické odezírání ze rtů z obrazu s příp. využitím zvukopé stopy.

4. Porovnejte navržený systém s volně dostupnými řešeními pomocí standardně užívaných metrik.

(3)

Rozsah grafických prací: dle potřeby dokumentace Rozsah pracovní zprávy: 30-40 stran

Forma zpracování práce: tištěná/elektronická

Jazyk práce: Čeština

Seznam odborné literatury:

[1] Goodfellow, I., Bengio, Y., Courville, A. Deep learning. MIT Press, 2016

[2] Bishop, C. Pattern Recognition and Machine Learning. 2006. ISBN 13: 978-038731073

[3] Karpathy, A., Johnson, J., Li, F. Convolutional neural neworks for visual recognition. dostupné online: http://cs231n.stanford.edu/

Vedoucí práce: Ing. Karel Paleček, Ph.D.

Ústav informačních technologií a elektroniky

Datum zadání práce: 9. října 2019 Předpokládaný termín odevzdání: 18. května 2020

prof. Ing. Zdeněk Plíva, Ph.D.

děkan

L.S.

prof. Ing. Ondřej Novák, CSc.

vedoucí ústavu

(4)

Prohlá²ení

Prohla²uji, ºe svou bakalá°skou práci jsem vypracoval samostatn¥

jako p·vodní dílo s pouºitím uvedené literatury a na základ¥ kon- zultací s vedoucím mé bakalá°ské práce a konzultantem.

Jsem si v¥dom toho, ºe na mou bakalá°skou práci se pln¥ vztahuje zákon £. 121/2000 Sb., o právu autorském, zejména Ÿ 60  ²kolní dílo.

Beru na v¥domí, ºe Technická univerzita v Liberci nezasahuje do mých autorských práv uºitím mé bakalá°ské práce pro vnit°ní po- t°ebu Technické univerzity v Liberci.

Uºiji-li bakalá°skou práci nebo poskytnu-li licenci k jejímu vyuºití, jsem si v¥dom povinnosti informovat o této skute£nosti Technickou univerzitu v Liberci; v tomto p°ípad¥ má Technická univerzita v Li- berci právo ode mne poºadovat úhradu náklad·, které vynaloºila na vytvo°ení díla, aº do jejich skute£né vý²e.

Sou£asn¥ £estn¥ prohla²uji, ºe text elektronické podoby práce vlo- ºený do IS STAG se shoduje s textem ti²t¥né podoby práce.

Beru na v¥domí, ºe má bakalá°ská práce bude zve°ejn¥na Technic- kou univerzitou v Liberci v souladu s Ÿ 47b zákona £. 111/1998 Sb., o vysokých ²kolách a o zm¥n¥ a dopln¥ní dal²ích zákon· (zákon o vysokých ²kolách), ve zn¥ní pozd¥j²ích p°edpis·.

Jsem si v¥dom následk·, které podle zákona o vysokých ²kolách mohou vyplývat z poru²ení tohoto prohlá²ení.

(5)

Pod¥kování

Rád bych pod¥koval v²em za podporu p°i zpracovávání této práce.

Zejména mému vedoucímu panu Ing. Karelu Pale£kovi, Ph.D. za odborné vedení, trp¥livost a ochotu.

(6)

Automatické odezírání ze rt· pomocí neuronových sítí

Abstrakt

V této práci je popsána problematika odezírání ze rt·, stru£n¥ uve- dené práce zabývající se touto problematikou a seznámení se s vhod- nými architekturami neuronových sítí. Je zde proveden pokus o ná- vrh modelu schopného odezírání ze rt·, zb¥ºný popis postupu ná- vrhu a optimalizace model· vyuºívající neuronové sít¥. Jsou zde pouºité námi upravené datasety OuluVS a OuluVS2 k natréno- vání na²ich model·. V poslední kapitole jsou komentovány dosaºené výsledky konvolu£ního a rekurentního modelu pro izolované fráze a sekvence získané k°íºovou validací.

Klí£ová slova: Odezírání ze rt·, extrakce vizuálních charakteris- tik, konvolu£ní neuronové sít¥, rekurentní neuronové sít¥, hluboké u£ení

(7)

Neural networks for automatic lip reading

Abstract

This work describes problems with lip reading, briey mentions re- lated works and introduces us to viable neural network architectu- res. It contains attempt to design model capable of lip reading, perfunctory process of desing and optimalization of models using neural networks. Datasets OuluVS and OuluVS2 are used for trai- ning of our models. Results of convolutional and reucurrent model are obtained using cross-validation and are discussed in the last chapter.

Keywords: lip reading, visual feature extracion, convolutional neural networks, recurrent neural networks, deep learning

(8)

Obsah

Seznam zkratek . . . 12

1 Úvod 13 2 Problematika odezírání ze rt· 14 2.1 P°ehled prací a metod zabývající se problematikou odezírání ze rt· . 14 2.2 Vrstvená neuronová sí´ . . . 16

2.3 Konvolu£ní sít¥ . . . 16

2.4 Rekurentní sít¥ . . . 20

2.4.1 Elman recurrent neural network . . . 21

2.4.2 Long short-term memory . . . 21

2.4.3 Gated Recurrent unit . . . 21

3 Trénování neuronových sítí v úloze odezíraní ze rt· 23 3.1 Dropout . . . 23

3.2 Overtting . . . 23

3.2.1 Early stopping . . . 24

3.2.2 Batch normalization . . . 24

3.3 U£ení s u£itelem. . . 25

3.3.1 Cross-entropy loss. . . 25

(9)

3.3.2 Connectionist temporal classication loss . . . 26

3.4 K°íºová validace . . . 26

4 Pouºitá sada dat 27 4.1 Práce s daty . . . 29

4.1.1 Roz²í°ení dat . . . 29

4.2 Rozd¥lení dat . . . 31

5 Experimenty 32 5.1 Konvolu£ní model . . . 32

5.2 Rekurentní model . . . 37

5.3 Rekurentní model pro rozpoznávání sekvencí . . . 38

5.4 Hardwarové limitace . . . 39

5.5 Výsledky. . . 40

5.6 Dosavadní nejlep²í výsledky . . . 42

6 Záv¥r 43

Pouºitá literatura 44

A Obsah p°iloºeného DVD 48

(10)

Seznam obrázk·

2.1 Vztah vstupních a výstupních kanál· konvolu£ní vrstvy [9] . . . 18

2.2 Vrstvy VGG-19 architektury [10]. . . 19

2.3 Základní blok ResNet-34 [11]. . . 19

2.4 Vnit°ní struktura LSTM [13] . . . 22

2.5 Vnit°ní struktura GRU [14] . . . 22

3.1 Ukázka Overtting [16] . . . 24

4.1 Ukázka snímk· z datasetu . . . 28

4.2 Ukázka roz²í°ení dat . . . 30

5.1 Architektura konvolu£ního modelu . . . 33

5.2 Architektura nálního konvolu£ního modelu . . . 35

5.3 Ukázka pr·b¥hu trénování sít¥ . . . 36

5.4 Architektura rekurentního modelu . . . 37

5.5 Ukázka trénování rekurentního modelu . . . 38

5.6 Architektura rekurentního modelu pro sekvence . . . 39

5.7 Ukázka trénování rekurentního modelu pro sekvence . . . 39

(11)

Seznam tabulek

4.1 P°ehled dat . . . 27

4.2 P°ehled dat . . . 28

5.1 Experimenty s vrstvami . . . 34

5.2 parametry konvolu£ních vrstev modelu . . . 34

5.3 Experimenty s roz²í°ením dat . . . 35

5.4 Výsledky na datasetu OuluVS . . . 40

5.5 Výsledky na datasetu OuluVS2 . . . 41

(12)

Seznam zkratek

LSTM Long Short Term Memory, architektura rekurentní neuronové sít¥

CNN Convolutional Neural Network, konvolu£ní neuronová sít

CTC Connectionist Temporal Classication, typ výstupu a bodování neuro- nové sít¥

GRU Gated Recurrent Unit, architektura rekurentní neuronové sít¥

MFCC Mel-Frequency Cepstrum Coecient, koecienty reprezentující hustotu spektra zvuku

MLP Multi-Layer Perceptron, t°ída neuronové sít¥

RGB Red Green Blue, aditivní zp·sob míchání barev pouºívaný pro obrázky ReLU Rectied Linear Unit, aktiva£ní funkce

PReLU Parametric ReLU, aktiva£ní funkce

SGD stochastic gradient descent, optimaliza£ní algoritmus

CUDA Compute Unied Device Architecture, architektura grackých karet GPU Graphics Processing Unit, gracká karta

WER Word Error Rate, míra chyb na úrovní slov

(13)

1 Úvod

Neuronové sít¥ se obecn¥ za posledních n¥kolik let za£aly vyuºívat pro spoustu ú£el·. Snad jeden z nejv¥t²ích ú£el· je zpracování obrazových informací jako je rozeznávání textu a klasikace objekt·, k tomu pat°í i odezírání ze rt·. V této práci se seznámíme s problematikou a uvedeme pouºívané metody pro její °e²ení. Navrhneme a zrealizujeme architektury neuronových sítí, které budou schopné se nau£it odezírat ze rt·. Budeme je realizovat v programovacím jazyce Python, s vyuºitím knihoven Pytorch, které obsahují v²echny nástroje na realizaci neuronových sítí. Popí²eme pouºitá data a jejich úpravu pro zpracování. A zhodnotíme dosaºené výsledky.

(14)

2 Problematika odezírání ze rt·

Problematika odezírání ze rt· je jeden z mnoha obor·, kde se za posledních pár let osv¥d£ilo pouºít neuronové sít¥. Sice nebylo napsáno tolik prací ohledn¥ hlubokého u£ení zam¥°ených na toto téma, ale i tak bylo dosaºeno obdivuhodných výsledk·.

A to také díky moºnosti vyuºití pokrok· a metod vyuºívaných v ostatních oblastech.

Motivací k vy°e²ení problému odezírání ze rt· je zejména vyuºití spole£n¥ s dal²ími systémy, nap°íklad k diktování textu v ru²ném prost°edí, p°i poslechu více °e£ník·.

A k obecnému zlep²ení t¥chto systém·.

Hlavní obtíº zp·sobuje fakt, ºe n¥které fonémy sdílejí stejné postavení rt· a jazyka.

Tudíº zde existuje nejasnost, které se nelze zbavit. Velká £ást komunikace závisí na zvuku a kv·li zmín¥ným nejasnostem je velmi t¥ºké dosáhnout dobrých výsledk·

bez p°idaného kontextu.

2.1 P°ehled prací a metod zabývající se problema- tikou odezírání ze rt·

Existuje n¥kolik prací zabývající se touto problematikou. Dají se zhruba rozd¥lit podle úrovn¥ rozeznávání a to od jednotlivých foném· aº po celé fráze.

V práci Lipreading using Convolutional Neural Network [1] auto°i porovnávají vy- uºití konvolu£ních sítí oproti ru£n¥ vytvo°eným metodám k získání vizuálních p°í- znak·. Konvolu£ní sí´ trénovali rozeznávat fonémy ze snímk· a pomocí skrytého Markova modelu skládali izolovaná slova. Na sad¥ dat 300 japonských slov s ²esti mluv£ími dosáhli lep²ích výsledk· neº ru£n¥ vytvo°ené metody.

(15)

Práce Lip reading using CNN and LSTM [2] se zabývá vyuºitím konvoluce a re- kurentních model· k rozpoznání slov a frází. Porovnává z°et¥zení snímk· do jed- noho pro r·zný po£et pouºitých snímk· a pouºití normalizace. Dále vyuºívají p°ed- trénovanou dvourozm¥rnou konvolu£ní sí´ VGGNet (architektura hluboké konvo- lu£ní sít¥ podle [3]) na extrakci charakteristik a LSTM (Long short-term memory) k extrakci £asové informace z posloupnosti snímk·. Auto°i se pokou²eli se vyuºít konvolu£ní sí´ trénovanou od nuly, ale nepoda°ilo se jim dosáhnout uspokojivých výsledk·. Nejlep²ích výsledk· dosáhli p°ed-trénovanou VGGNet sítí s pouºitím nej- v¥t²ího po£tu znormalizovaných snímk·. LSTM dosáhlo uspokojivé, ale niº²í p°es- nosti.

Práce Lip Reading Using Committee Networks With Two Dierent Types of Conca- tenated Frame Images [4] pouºívá k rozeznání frází a £íslic komisní sí´, která posuzuje výsledky dvou konvolu£ních sítí. Kaºdá konvolu£ní sí´, zaloºená na VGGNet, je tré- nována na odli²n¥ z°et¥zených snímcích. Jedna snímky pouze poskládá podle po°adí do jednoho. Druhá rozd¥lí snímky podle rys· rt·, coº zajistí, ºe jednotlivé rysy budou vºdy na stejném míst¥. Dosáhli výsledk· potvrzujících zlep²ení p°i vyuºití kombinace více sítí. Dále docílili lep²ích výsledk· neº p°ed-trénovaná sí´ na velké sad¥ dat.

V LipNet: End-to-End Sentence-level Lipreading [5] auto°i vytvá°eli sí´ schopnou mapovat r·zn¥ dlouhé sekvence video snímk· na text, a to na úrovni v¥t. V práci vyuºívali trojrozm¥rnou konvolu£ní sít, rekurentní sít a kriteriální funkci CTC (con- nectionist temporal classication) Loss. Jako rekurentní sí´ pouºívali dvojici obou- sm¥rných GRU (gated recurrent unit). LipNet byla první end-to-end sí´ schopná se zárove¬ u£it prostoro-temporální vizuální p°íznaky a sekven£ní model na úrovní v¥t. P°i testování na sad¥ dat GRID [6] dosáhli mimo°ádné p°esnosti a p°ekonali tím i dosavadn¥ nejlep²í práce. Dosáhli tém¥° t°ikrát men²í word error rate oproti dosavadním nejlep²ím výsledk·m.

Práce Lip Reading Sentences in the Wild [7] navrhuje WLAS (watch, listen, attend and spell) sí´, která vyuºívá k rozpoznání videa s p°ípadnou pomocí audia. Watch

£ást obsahuje konvolu£ní sí´ a LSTM.

(16)

Listen £ást pouºívá MFCC (Mel frequency cepstral coecients) na získání charak- teristik audia a LSTM. Ob¥ £ásti vytvá°ejí vektor pro attend £ást, která spolu se spell £ástí, obsahující LSTM a MLP (Multi-layer perceptron), vytvá°í výstup. Tento výstup je pouºit jako vstup pro dal²í krok v LSTM spell £ásti. Attend £ást umoºnila modelu soust°edit se na podstatné £ásti vstup· a v tomto modelu zajistila výrazn¥

lep²í korelaci vstup· a výstup·. Zárove¬ vyuºívá dva nezávislé attention mechanismy pro audio a pro video. A díky tomu nemusí být vstupy synchronizované nebo m·ºe jeden chyb¥t. V porovnání s p°edchozí prací LIPNET: END-TO-END SENTENCE- LEVEL LIPREADING na GRID sad¥ dat dosáhli niº²í chybovosti.

2.2 Vrstvená neuronová sí´

Samostatná vrstvená neuronová sí´ není vhodná ke zpracování obrazových informací, zejména z d·vodu velkého mnoºství pot°ebných parametr· na obrázky s v¥t²ími roz- m¥ry. Uvádíme ji zde hlavn¥ pro úplnost, a také z d·vodu, ºe se v¥t²inou pouºívá spole£n¥ nebo jako sou£ást ostatních sítí.

V modelech zpracovávajících obraz slouºí jako poslední vrstva redukující rozm¥r výstupu. Zárove¬ se u£í mapovat vstupní charakteristiky odpovídajícím výstup·m.

Málokdy mívají více n¥º dv¥ vrstvy, jelikoº v t¥chto modelech neslouºí k extraho- vání informací z vstupu, ale pouze k mapování vstupních charakteristik na výstupy.

Jednotlivé vrstvy jsou realizovány takto:

y = xAT + b (2.1)

Kde y je výstup, x jsou vstupy, A jsou u£itelné váhy a b je bias.

2.3 Konvolu£ní sít¥

Konvolu£ní sít¥ jsou vhodné zejména ke zpracování vizuálních informací, nap°íklad k extrakci charakteristik jako jsou hrany a rohy. Hlub²í sít¥ s více konvolu£ními

(17)

vrstvami jsou schopné rozpoznávat i komplexn¥j²í tvary, jako jsou t°eba £íslice. Kon- volu£ní sít¥ jsou vhodné pro zpracování obrazových informací, protoºe z principu fungování berou ohled na prostorovou souvislost jednotlivých vstupních bod·, nap°.

pixel· v obrázku, oproti vrstvené síti, která povaºuje v²echny vstupy za nezávislé.

Toto se nemusí týkat jen prostorové závislosti, ale i temporální (£asové) závislosti, proto lze pouºít £ist¥ konvolu£ní sí´ na extrakci charakteristik z videa. Sta£í nám trojrozm¥rná konvoluce k získání prostorových i £asových charakteristik.

Oproti vrstvené neuronové síti mají konvolu£ní vrstvy výhodu v tom, ºe mají po£et volných parametr· daný podle velikosti jádra vrstvy. Tudíº pro dvourozm¥rné jádro o velikosti 3×3 by tato vrstva m¥la dev¥t váhových parametr· a jeden bias parametr pro kaºdý výstupní kanál, coº odpovídá relativn¥ malému po£tu parametr· modelu, který je moºné pouºít na rozm¥rná vstupní data.

Konvolu£ní sí´ se skládá z konvolu£ních a sdruºovacích vrstev. Sdruºovací vrstvy slouºí k redukci rozm¥r· dat. Pouºívá se sdruºování pr·m¥rové nebo nejvy²²í hod- noty. Nejvíce se uºívá sdruºování podle nejvy²²í hodnoty, protoºe zárove¬ potla£uje

²um.[8] Konvolu£ní vrstvy mohou £áste£n¥ nahradit sdruºovací vrstvy tím, ºe také mohou zmen²ovat rozm¥ry. Krom¥ jádra mají tyto vrstvy je²t¥ dal²í parametry:

Stride ur£uje velikost posunu jádra.

Padding ur£uje p°ítomnost, velikost a hodnoty obalu dat. Pouºívá se k zachování rozm¥r·

Dilation ur£uje dilataci jádra.

Jádro a stride nemusí mít symetrický tvar, i kdyº se nesymetrický tvar z°ídka pou- ºívá. Výstupní tvar se pro kaºdý rozm¥r po£ítá následovn¥:

Lout = Lin+ 2 ×padding − dilation × (kernel_size − 1) − 1

stride + 1



(2.2) Konvolu£ní vrstvy mohou být vícekanálové, a´ uº t°eba pro pouºití t°í kanál· RGB obrázku nebo pro zvý²ení kapacity sít¥. V²echny kanály mají stejný rozm¥r, vlastní váhy a bias. Výstup kaºdého kanálu je roven sou£tu konvolucí ze v²ech vstupních vrstev a bias. Obrázek2.1 vyobrazuje vztah vstupních a výstupních kanál·.

(18)

Obrázek 2.1: Vztah vstupních a výstupních kanál· konvolu£ní vrstvy [9]

Rovnice popisující výstup konvolu£ní vrstvy:

out(Coutj) =bias(Coutj) +

Cin−1

X

k=0

weight(Coutj, k) ?input(k) (2.3) C ozna£uje kanál.

Samotné konvolu£ní vrstvy nevyºadují, aby vstupy byly znormalizované na jednotný rozm¥r, ale to, ºe p°i pr·chodu dat skrze n¥ se m¥ní jejich rozm¥ry. P°i následném vyuºití je pot°eba znát jejich rozm¥r dop°edu. U neznormalizovaných dat by to ne- bylo moºné, nebo by se rozm¥r m¥nil podle vstupních dat. Proto je pot°eba data p°ed pouºitím v konvolu£ních sítích znormalizovat.

V kontextu odezíraní ze rt· je pouºíváno n¥kolik architektur konvolu£ních sítí. Po- pulární je VGGNet, protoºe se osv¥d£ili na extrakci obrazových informací, a také je moºné pouºít p°ed-trénovanou sí´ na obli£ejích. Tato architektura ukázala, ºe je výhodn¥j²í pouºít v¥t²í mnoºství men²ích konvolucí oproti mén¥ v¥t²ích, protoºe se tím sníºí celkový po£et parametr·. Existuje n¥kolik variant, a to od VGG-11 do VGG-19, kde £íslo ur£uje po£et konvolu£ních vrstev. Na obrázku 2.2 je p°íklad modelu typu VGGNet. P°i p°idávání dal²ích vrstev dochází k nasycení, a poté se p°esnost modelu rychle zhor²uje. Po dosaºení pot°ebného po£tu vrstev dal²í p°idané fungují jako identita, proto pro zlep²ení nelze pouze p°idávat dal²í vrstvy. Dal²ím faktorem je, ºe p°i zvy²ování po£tu vrstev je obtíºn¥j²í sí´ trénovat.

(19)

Obrázek 2.2: Vrstvy VGG-19 architektury [10]

Dal²í uºívaná architektura je ResNet pouºívající vrstvy u£ící se residuální funkce.

Tím se zamezí problému, aby se n¥jaká vrstva nau£ila být jen identitou. Zárove¬

v práci [11] auto°i empiricky dokázali, ºe je snadn¥j²í ji optimalizovat, je moºné vy- tvo°it model s mnohem více vrstvami a dosáhnout zlep²ení. Pouºívají se verze od 34 aº po 152 vrstev. Na obrázku2.3 je základní blok sít¥ typu ResNet.

Obrázek 2.3: Základní blok ResNet-34 [11]

Pro porovnání, VGG-16 má 138 milion· parametr· a ResNet-34 má 21 milion·

parametr· a zárove¬ dosahuje lep²ích výsledk·.[12] Existují i dal²í architektury, ale ty nejsou zde uvedeny. N¥které práce nevyuºívají ºádnou z t¥chto architektur a na místo toho pouºívají vlastní jednoduchou sí´ tvo°enou kombinací konvolu£- ních a sdruºovacích vrstev, kterou pouºívají jako sou£ást modelu. Nap°íklad LipNet pouºívá t°i konvolu£ní vrstvy se sdruºovací vrstvou za kaºdou konvolu£ní.

(20)

2.4 Rekurentní sít¥

Rekurentní sít¥ jsou vhodné ke zpracování sekven£ních informací, kv·li jejich schop- nosti uchovat informaci o d°ív¥j²ích vstupech, a oproti ostatním sítím nepot°ebují, aby vstupní data m¥la danou stejnou délku, jako jsou v na²em p°ípad¥ r·zn¥ dlouhé záb¥ry obli£ej·.

Je moºné vyuºít vícevrstvé rekurentní sít¥, pokud je sí´ vícevrstvá, tak výstup z jedné vrstvy je p°iveden na vstup vrstvy následující. Vícevrstvé sít¥ mají v¥t²í kapacitu, tudíº schopnost se nau£it víc. Také je moºné pouºít obousm¥rnou sí´. Díky tomu je sí´ schopná reagovat jak na minulost, tak na budoucnost, ve smyslu kontextu.

Tedy pro kaºdý vstupní £asový okamºik bere v potaz v²echny p°edchozí a budoucí vstupy a £ím blíºe jsou na²emu £asovému okamºiku, tím v¥t²í mají vliv, protoºe sí´

postupn¥ zapomíná.

P°i aplikaci rekurentních sítí na úlohy strojového p°ekladu, rozpoznání a syntézy

°e£i, je moºné pouºít rekurentní sít¥ samostatn¥ nebo s vrstvenou neuronovou sítí.

Pro aplikaci jako je popis obrázku, se k získání charakteristik pouºívají konvolu£ní sít¥. Tyto charakteristiky se pouºijí jako vstupy do rekurentní sít¥, která ur£í, co se v obrázku vyskytuje. Existuje zde moºnost k tomuto p°idat dal²í rekurentní sí´, která vygeneruje souvislý text popisující obrázek namísto prostého výpisu vyskytu- jících se objekt·.

Zde jsou uvedeny p°íklady pouºitých kongurací rekurentních sítí ve vybraných pra- cích. V modelu LipNet [5] , po získání p°íznak· konvolu£ní sítí auto°i pouºívali dv¥

obousm¥rné GRU vrstvy za sebou. V práci Lip Reading Sentences in the Wild [7]

v £ásti watch a listen pouºili t°i jednosm¥rné LSTM za sebou. V £ásti spell pouºili t°i jednosm¥rné LSTM za sebou, kde jako po£áte£ní cell stav pouºili spojený stav po- sledních LSTM z watch a listen, také jako vstup do pouºívali výsledek z p°edchozího

£asového úseku.

(21)

2.4.1 Elman recurrent neural network

Jednoduchá rekurentní sít skládající se ze £ty° vrstev, vstupní, kontextové, skryté a výstupní. V knihovn¥ Pytorch je implementována následovn¥.

ht= tanh(Wihxt+ bih+ Whhh(t−1)+ bhh) (2.4) Symbol h je skrytá vrstva, x je vstup, W jsou váhy a b je bias. Výstup je roven skryté vrstv¥ po pr·chodu celé sekvence. P°i zp¥tné propagaci gradientu b¥hem trénování nastává problém mizejícího gradientu, £ím hloub¥ji se dostaneme v síti, tím více se zpomaluje trénování.

2.4.2 Long short-term memory

LSTM je architektura navrºená k eliminování problému s mizejícím gradientem.

Skládá se z p¥ti prvk·. Cell p°edstavuje aktuální stav, input gate, forget gate, cell gate a output gate slouºí k regulaci informací v a z cell.

it = σ(Wiixt+ bii+ Whih(t−1)+ bhi) ft= σ(Wifxt+ bif + Whfh(t−1)+ bhf) gt= tanh(Wigxt+ big + Whgh(t−1)+ bhg) ot= σ(Wioxt+ bio + Whoh(t−1)+ bho) ct= ft∗ c(t−1)+ it∗ gt

ht = ot∗ tanh(ct)

(2.5)

Kde x je vstup, W je daná váha, b je bias, i je input gate,f je forget gate, g je cell gate, o je output gate, c je cell, h je skrytá vrstva a zárove¬ výstup v daném okamºiku sekvence. Funkce je vyobrazena na obrázku2.4 pro lep²í názornost.

2.4.3 Gated Recurrent unit

GRU je zjednodu²ená verze LSTM, které chybí output gate. Má mén¥ parametr· n¥º LSTM, proto je obecn¥ hor²í. I kdyº v n¥kterých p°ípadech uºití dosahuje lep²ích

(22)

výsledk· neº LSTM. Pouºívá se i pro odezírání ze rt·, i kdyº LSTM je £ast¥ji uºívané. Sou£ástí GRU je hidden state, reset gate, update gate a new gate. Podle new gate a update gate se ur£uje nová informace v hidden state. [14]

rt= σ(Wirxt+ bir + Whrh(t−1)+ bhr) zt= σ(Wizxt+ biz+ Whzh(t−1)+ bhz)

nt = tanh(Winxt+ bin+ rt∗ (Whnh(t−1)+ bhn)) ht= (1 − zt) ∗ nt+ zt∗ h(t−1)

(2.6)

Ve vzorci je x vstup, W je daná váha, b je bias, r je reset gate,z je update gate, n je new gate, h je skrytá vrstva. Na obrázku2.5 je vyobrazena vnit°ní struktura.

Obrázek 2.4: Vnit°ní struktura LSTM [13]

Obrázek 2.5: Vnit°ní struktura GRU [14]

(23)

3 Trénování neuronových sítí v úloze ode- zíraní ze rt·

3.1 Dropout

Dropout je metoda, která napodobuje trénování velkého mnoºství neuronových sítí s odli²nými strukturami paraleln¥. B¥hem trénování jsou n¥které výstupy dané vrstvy náhodn¥ vynechány. V pr·b¥hu trénování se tyto vrstvy jeví jako vrstvy s r·zným po£tem uzl· a spojení s p°edchozí vrstvou. V kaºdé iteraci m·ºe být vstup náhodn¥ vynechán, tím je omezeno up°ednost¬ování jakéhokoli prvku ve vrstv¥. To má za d·sledek, ºe matice vah je rovnom¥rn¥ji rozloºena. Dropout je pouºíván pouze p°i trénování. P°i pouºití dropout jsou váhy sít¥ v¥t²í podle pouºité pravd¥podob- nosti, proto se p°ed pouºitím sít¥ musí váhy ²kálovat zp¥t do normální velikosti.

[15]

3.2 Overtting

Overtting modelu znamená, ºe se model p°íli² blízce p°izp·sobil dané sad¥ dat do takové míry, ºe ztrácí schopnost generalizovat. Model se namísto generalizování nau£í vystihnout ²um v datech nebo dokonce si zapamatovat konkrétní hodnoty z trénovací sady dat. K tomu m·ºe docházet v p°ípad¥, ºe je model zbyte£n¥ kom- plexní a je trénován p°íli² dlouho. Na obrázku 3.1 je znázorn¥n princip, £erná je dobrý model, zelená je model, kde do²lo k overttingu. [16]

(24)

Obrázek 3.1: Ukázka Overtting [16]

3.2.1 Early stopping

Jednodu²e ur£it, jak dlouho je pot°eba neuronovou sí´ trénovat, nelze. P°i nedosta- te£ném trénování nedosáhneme maximálního potenciálu, a pokud bychom trénovali p°íli² dlouho, tak dojde k overttingu. Early stopping je metoda slouºící k zastavení trénování v okamºiku, kdy se sí´ za£ne zhor²ovat. Abychom poznali, ºe se sí´ za£íná zhor²ovat, je t°eba m¥°it její pr·b¥ºnou p°esnost. K tomu lze pouºít testování sít¥

na valida£ní sad¥ dat na konci kaºdé epochy. Testování po kaºdé epo²e zvy²uje vý- po£etní náklady, proto je moºné provád¥t m¥°ení mén¥ £asto. Dále je pot°eba zvolit podmínku pro zastavení trénování. Není vhodné zastavit trénování p°i první známce zhor²ení, protoºe trénování je stochastické a m·ºe obsahovat ²um. Je vhodn¥j²í £ekat nap°íklad na stagnaci nebo dlouhodob¥j²í zhor²ení. Po ukon£ení trénování je t°eba vybrat, který model budeme povaºovat za výsledek trénování. Nejlep²ím °e²ením je si vºdy uchovávat model s nejlep²ími výsledky. [17]

3.2.2 Batch normalization

P°i trénování neuronových sítí se p°i zm¥n¥ vnit°ních parametr· m¥ní rozd¥lení vý- stup· do následující vrstvy. Coº znamená, ºe následující vrstva se musí pr·b¥ºn¥

optimalizovat vzhledem k novým rozd¥lením. Tento jev se nazývá internal covariate shift. Tento jev zp·sobuje zpomalení trénování, kv·li nutnosti pouºití men²ího kroku pro úpravu parametr·, a také je model citliv¥j²í na inicializaci parametr·.

(25)

K odstran¥ní tohoto problému slouºí batch normalization, který toho dosáhne zm¥- nou m¥°ítka výstupní vrstvy tak, aby výstup m¥l pr·m¥r nula a sm¥rodatnou od- chylku jedna, £ímº výrazn¥ urychlí trénování a zárove¬ zvý²í jeho stabilitu. M·ºe mít navíc regula£ní efekt, který zamezuje overtting. [18, 19]

3.3 U£ení s u£itelem

Pro samotné trénovaní úpravou parametr· sít¥ se vyuºívá zp¥tné propagace chyby.

Analyticky zjistíme gradient kriteriální funkce jednotlivých vrstev s ohledem na jednotlivé parametry. Následn¥ upravíme tyto parametry podle pouºitého optimali- za£ního algoritmu.

Uvedeme vybrané kriteriální funkce, které nám ur£ují chybu jednotlivých výstup·

modelu b¥hem trénování. Anglicky Loss function je funkce, kterou se b¥hem tréno- vání snaºíme minimalizovat pomocí zm¥ny parametr· modelu.

3.3.1 Cross-entropy loss

Pro úlohu výb¥ru jedné z n¥kolika moºností je vhodné pouºít logaritmickou ztráto- vou funkci jako je Cross-entropy loss. Tato funkce se pouºívá p°i trénování rozpo- znávat jednu z N t°íd. V knihovn¥ Pytorch je implementována následovn¥:

loss(x, class) = −log exp(x[class]) P

jexp(x[j])

!

(3.1)

Kde x je výstup modelu, class je skute£ná t°ída vstupních dat.

(26)

3.3.2 Connectionist temporal classication loss

Pro ur£ení chyby mezi sekvencemi lze pouºít connectionist temporal classication loss, zkrácen¥ CTC loss. Dokáºe ur£it chybu výstupní sekvence sít¥ oproti skute£né sekvenci. Vstup funkce o£ekává skute£nou sekvenci a vstupní sekvenci, která m·ºe obsahovat stejn¥ nebo více prvk· neº skute£ná. Vstupní sekvence m·ºe obsahovat navíc znak blank ozna£ující prázdno nebo mezeru, £ímº se ozna£ují mezery mezi slovy nebo pokud se ve slov¥ opakuje více znak· za sebou. Vstupem je pravd¥po- dobnostní rozd¥lení jednotlivých znak· pro kaºdý £asový okamºik. Funkce vypo£te pravd¥podobnost kaºdé moºné sekvence znak· z dodaného rozd¥lení. Duplikátní znaky za sebou se sjednotí, pokud nejsou odd¥leny znakem blank, a pravd¥podob- nosti totoºných sekvencí po zkrácení se se£tou. Výstupní chyba je záporný logarit- mus pravd¥podobnosti odpovídající skute£né sekvenci. Výhoda vyuºití této funkce je v tom, ºe nemusíme mít v datech zaznamenané odpovídající znaky pro kaºdý

£asový okamºik. [20]

3.4 K°íºová validace

K°íºová validace je metoda zji²´ující schopnost generalizace statistické analýzy na ne- závislých datech. Cílem je odhalit problémy jako je overtting a výb¥rové zkreslení.

B¥hem k°íºové validace se dostupná data rozd¥lí na trénovací sadu a na valida£ní sadu. Model se natrénuje pouze na trénovací sad¥ dat a otestuje se p°esnost na valida£ní sad¥. K ur£ení výsledku k°íºové validace se zpr·m¥ruje p°esnost n¥kolika r·zných rozd¥lení dat. Následují vybrané typy k°íºové validace. Leave-p-out k°íºová validace pouºije p vzork· k validaci a zbytek dat k trénování, to se opakuje na v²ech moºných kombinacích. K°íºová validace k-fold d¥lí data na k £ástí, kde jedna £ást je pouºita na validaci a zbytek na trénování, to se opakuje pro v²echny kombinace.

[21]

(27)

4 Pouºitá sada dat

V této kapitole popisuji data set, který jsem pouºil v experimentální £ásti této práce. Vyuºívám data set OuluVS a OuluVS2 z Finské univerzity University of Oulu.

OuluVS obsahuje audiovizuální záznam dvaceti osob vyslovující deset anglických frází. OuluVS2 obsahuje audiovizuální záznam 52 osob vyslovujících deset sekvencí

£íslic, deset anglických frází a deset náhodn¥ vybraných v¥t ze sady dat TIMIT z n¥kolika úhl· pohledu. [22, 23] Já jsem vyuºíval pouze video záznamy frází a sekvencí £ísel z p°ímého pohledu. Tabulka 4.1 ukazuje p°ehled ve²kerých pouºitých dat.

OuluVS OuluVS2

°e£níci 20 52

fráze 10 10

sekvence - 10

opakování 5 3

promluvy 1000 3120 Tabulka 4.1: P°ehled dat

V tabulce 4.2 jsou vypsány fráze a sekvence £ísel v sadách dat. A na obrázku4.1 je p°íklad snímk· z obou dataset·.

(28)

Fráze Sekvence

Excuse me 1 7 3 5 1 6 2 6 6 7 Goodbye 4 0 2 9 1 8 5 9 0 4 Hello 1 9 0 7 8 8 0 3 2 8 How are you 4 9 1 2 1 1 8 5 5 1 Nice to meet you 8 6 3 5 4 0 2 1 1 2 See you 2 3 9 0 0 1 6 7 6 4 I am sorry 5 2 7 1 6 1 3 6 7 0 Thank you 9 7 4 4 4 3 5 5 8 7 Have a good time 6 3 8 5 3 9 8 5 6 5 You are welcome 7 3 2 4 0 1 9 9 5 0

Tabulka 4.2: P°ehled dat

(a) OuluVS

(b) OuluVS2

Obrázek 4.1: Ukázka snímk· z datasetu

(29)

4.1 Práce s daty

K této práci jsem obdrºel jiº £áste£n¥ p°edzpracovaná data z data setu OuluVS.

Z p·vodního formátu 720 × 576 o°íznuté na rty a zm¥n¥né na velikost 64 × 64. Pro jednoduchost jsem snímky p°evedl do £ernobílého formátu a sjednotil po£et snímk·.

Nahrazoval jsem snímky nejbliº²ím snímkem co se tý£e pozice ve videu z pr·m¥r- ných zhruba 29 na 32. Takováto normalizace je nutná pro konvolu£ní sít¥ a zárove¬

nám zajistí £áste£nou nezávislost na rychlosti promluvy jednotlivých °e£ník·. Data set OuluVS2 obsahuje p¥t pohled· na kaºdou nahrávku, od £elního pohledu aº po prol. V této práci jsem vyuºíval pouze nahrávky z £elního pohledu. Video záznamy byly tv·rci o°íznuty na oblast rt· z p·vodního 1920 × 1080 formátu. Stejn¥ jako u OuluVS jsem sjednotil po£et snímk·, tentokrát na 20, coº zhruba odpovídá pr·- m¥ru. A navíc jsem sjednotil rozm¥r snímk· na velikost 128×64, to zhruba odpovídá pr·m¥rnému pom¥ru stran snímk·. Takovéto sjednocení je nutné kv·li konvolu£ním sítím, ale jelikoº jsou záb¥ry z originálního formátu o°íznuty na pot°ebné minimum, znamená to, ºe snímky s men²ím pohybem úst budou mít jiný pom¥r stran neº snímky s velkým pohybem úst. Tudíº tímto znormalizováním dojde ke zkreslení n¥kterých snímk· více a n¥kterých mén¥. Pro modely vyuºívající rekurentní sít¥

není t°eba sjednocovat délku, proto jsem pro n¥ data pouze p°evedl do £ernobílého formátu a v p°ípad¥ OuluVS2 sjednotil rozm¥ry.

4.1.1 Roz²í°ení dat

Konvolu£ní sít¥ nejsou z principu invariantní na ²kálu. V¥t²í po£et kanál· jim ale umoº¬uje nau£it se rozpoznávat obrazy s r·znými m¥°ítky. Stejn¥ tak nejsou invari- antní v·£i rotaci a dal²ím zm¥nám, ale dokáºí se je nau£it. A jelikoº je kaºdý °e£ník alespo¬ n¥jak odli²ný, je d·leºité sí´ nau£it dob°e generalizovat, na coº nemusí sady dat v °ádech tisíc· videí sta£it. Proto m·ºe být výhodné pouºít n¥jakou formu roz²í-

°ení dat ze stávajících dostupných dat. Anglicky data augmentation slouºí k roz²í°ení obrazových trénovacích dat, a tím k moºnému lep²ímu natrénování neuronových sítí.

(30)

Výhody jsou nejvíce znatelné, pokud nemáme k dispozici velké mnoºství dat. Po- kud známe moºné vstupy, dostupná data lze pomocí vybraných funkcí roz²í°it, tak aby se podobala v²em moºným vstup·m. Tím dosáhneme natrénování robustní sít¥.

Existují dv¥ základní metody aplikace roz²í°ení dat. Oine augmentation p°i které data upravíme a následn¥ uloºíme. To je vhodné u men²ího mnoºství dat, protoºe u²et°íme výpo£etní výkon p°i samotném trénování a nepot°ebujeme velké úloºi²t¥.

Online augmentation kde data upravujeme b¥hem trénování, v¥t²inou po dávkách t¥sn¥ p°ed jejich pouºitím p°i trénování. Mezi základní metody pat°í translace, p°e- vrácení, rotace, o°íznutí a p°idání ²umu.

V sad¥ OuluVS je p°ibliºn¥ tisíc videí, coº není p°íli² mnoho pro trénování sít¥. Proto jsem pouºil náhodné horizontální p°evrácení, náhodnou rotaci, náhodnou perspek- tivu a anní transformaci shear mapping, abych dosáhl co nejrobustn¥j²ího natréno- vání. Jelikoº pouºívám trojrozm¥rnou konvoluci v £ist¥ konvolu£ní síti, bylo pot°eba zajistit identickou úpravu pro v²echny snímky v jednom videu. Pouºil jsem proto k tomuto náhodnému generování vºdy stejný seed pro v²echny snímky v jednom videu. Pro takto relativn¥ malou sadu dat je vhodné pouºít oine augnentation.

Oproti tomu online augnentaion nám umoº¬uje snadn¥ji m¥nit pouºité funkce roz-

²í°ení, proto jsem ji pouºil pro na²e experimenty s roz²í°ením dat. Na Obrázku 4.2 je ukázka pouºitého roz²í°ení dat. [24]

(a) Originální snímek (b) Upravený snímek Obrázek 4.2: Ukázka roz²í°ení dat

(31)

4.2 Rozd¥lení dat

K ur£ení úsp¥²nosti trénování je t°eba data rozd¥lit. Obecn¥ se data rozd¥lují na t°i

£ásti.

Trénovací £ást se pouºívá na trénování sít¥.

Valida£ní £ást se uºívá v pr·b¥hu trénování k vyhodnocení p°esnost a podle úsp¥²- nosti na ní se volí výsledný model.

Testovací £ást slouºí k vyhodnocení úsp¥²nosti trénování.

Model se u£í pouze z trénovacích dat, proto valida£ní a testovací data povaºujeme za neznámá data.

Pro vyhodnocení úsp¥²nosti modelu, jsem pouºil následující rozd¥lení dat. U data setu OuluVS jsem rozd¥lil data na trénovací a valida£ní v pom¥ru 19:1. Z d·vodu malého celkového po£tu dat v datasetu OuluVs jsem se rozhodl pouºít valida£ní data zárove¬ i jako testovací data. Tím dochází ke zkreslení výsledk·, protoºe za výsledný model je povaºován ten, který dosahuje nejlep²ích výsledk· na valida£ních datech. Je moºné, ºe by výsledky byly hor²í, kdyby byla pouºita separátní £ást dat jako testovací. Pro data set OuluVS2 jsem rozd¥lil data na trénovací, valida£ní a testovací v pom¥ru 40:10:2.

(32)

5 Experimenty

Experimenty jsem provád¥l p°eváºn¥ na datasetu OuluVS. Za£al jsem s vývojem konvolu£ní sít¥, protoºe se to zdálo být nejsnadn¥j²ím zp·sobem, a zárove¬ je sou-

£ástí ostatních architektur. Takºe kdyº se poda°í vytvo°it vhodnou konvolu£ní sí´, budu ji moci pouºít i v ostatních. Proto jsem nejd°ív experimentoval s £ist¥ konvo- lu£ní sítí k rozpoznávání frází, poté rekurentní sítí a nakonec jsem zkoumal vyuºití této architektury na rozpoznávání sekvence £ísel z datasetu OuluVS2.

Pro úlohu rozpoznávání frází jsem pouºíval cross-entropy loss jako kriteriální funkci, pro sekvenci £ísel jsem pouºil CTC loss. Jako aktiva£ní funkce jednotlivých vrstev jsem pouºil PReLU. P·vodn¥ jsem cht¥l vyuºívat ReLu, ale s ní se mi neda°ilo úsp¥²n¥ natrénovat sí´.

5.1 Konvolu£ní model

První funk£ní verze konvolu£ního modelu je vyobrazena na obrázku5.1, vyobrazené velikosti jsou ve formátu ²í°ka×vý²ka×po£et snímk·×po£et kanál·. Sí´ obsahovala

£ty°i 3×3×3 konvolu£ní vrstvy a jednu lineární vrstvu. Navíc za kaºdou konvolu£ní vrstvou následovala batch normalization vrstva, PReLU aktiva£ní funkce a maxpool vrstva. Pro v²echny tyto a následující konvolu£ní vrstvy jsem pouºíval padding ta- kový, aby byl zachován rozm¥r.

V n¥kolika prvních verzích sít¥ jsem experimentoval s parametrem learn rate, který udává optimaliza£nímu algoritmu velikost kroku úpravy parametr·. Porovnával jsem vliv zm¥n learn ratu spole£n¥ s optimalizátorem SGD.

(33)

Obrázek 5.1: Architektura konvolu£ního modelu

Nejmen²í chyby kriteriální funkce jsem dosáhl postupným zmen²ováním learn ratu kaºdé dv¥ epochy. Následn¥ jsem v²ak za£al vyuºívat optimaliza£ní algoritmus Adam, který si z principu jeho fungování upravuje learn rate pro jednotlivé parametry sám, ale lze ho sniºováním omezit. Vyzkou²el jsem jeho omezování, nicmén¥ Adam dosáhl nejlep²ích výsledk· s pouºitím výchozích parametr·. Ve v²ech dal²ích experimen- tech a výsledcích uvaºujeme pouºití optimaliza£ního algoritmu Adam s výchozími parametry: learn rate = 0.001, β1 = 0.9, β2 = 0.999,  = 1E − 08.

Potom jsem experimentoval s velikostí, po£tem konvolu£ních vrstev a po£tem kanál·.

Snaºil jsem se zv¥t²it receptive eld, neboli oblast kterou zahrnují výstupní p°íznaky.

Roz²í°il jsem model o dal²í konvolu£ní vrstvu, bez p°idání maxpoolu, abych nesni- ºoval velikost výsledného po£tu extrahovaných charakteristik. Zkou²el jsem pouºít konvolu£ní jádra o velikosti 7×7×7 a 5×5×5 v n¥kolika místech, také jsem zkou²el vyuºít celkem osm konvolu£ních vrstev velikosti 3 × 3 × 3 s maxpoolem po kaºdých dvou vrstvách spole£n¥ s v¥t²ími konvolu£ními jádry, z £ehoº jsem dosahoval nej- lep²ích výsledk· p°i pouºití modelu s p¥ti konvolu£ními vrstvami a velikostí jádra 5 × 5 × 5v 3. a 4. vrstv¥. V tabulce 5.1 je zkrácený p°ehled experiment· s vrstvami.

Co se tý£e pouºití pro dataset OuluVS2, bylo pot°eba sí´ trochu upravit. Jelikoº data m¥la podstatn¥ men²í rozm¥r co se po£tu snímk· tý£e, tak jsem se rozhodl pouºít nesymetrický maxpool ve tvaru 2×2×1 za £tvrtou konvolu£ní vrstvou, to znamená nezmen²ovat po£et snímk·. Zárove¬ mají data dvakrát v¥t²í ²í°ku, tak je rozm¥r za poslední sdruºovací vrstvou v¥t²í, coº znamená, ºe sí´ pro OuluVS2 má více parametr· v lineární vrstv¥. Takºe konvolu£ní sí´ má celkem 529 tisíc parame- tr·, pro OuluVS2 má 550 tisíc parametr·.

(34)

model zm¥n¥né vrstvy jádro p°esnost [%]

s 5 konv. vrstvami - 76

3,4 5 80

2,3,4,5 5 74

3,4 7 76

3,4,5 7 64

s 8 konv. vrstvami - 78

3,5 5 72

4,6 5 78

4,6,8 5 76

Tabulka 5.1: Experimenty s vrstvami

Na obrázku5.2a je nální architektura konvolu£ní sít¥ s rozm¥ry dat uvnit° modelu pro dataset OuluVS a na obrázku5.2b pro OuluVS2 a v tabulce 5.2 jsou popsány jednotlivé vrstvy.

Vrsta velikost stride padding conv1 3x3x3 1x1x1 1

conv2 3x3x3 1x1x1 1 pool1 2x2x2 2x2x2 - conv3 5x5x5 1x1x1 2 pool2 2x2x2 2x2x2 - conv4 5x5x5 1x1x1 2 pool3 2x2x2 2x2x2 - conv5 3x3x3 1x1x1 1 pool4 2x2x2 2x2x2 -

(a) OuluVS

Vrsta velikost stride padding conv1 3x3x3 1x1x1 1

conv2 3x3x3 1x1x1 1 pool1 2x2x2 2x2x2 - conv3 5x5x5 1x1x1 2 pool2 2x2x2 2x2x2 - conv4 5x5x5 1x1x1 2 pool3 2x2x1 2x2x1 - conv5 3x3x3 1x1x1 1 pool4 2x2x2 2x2x2 -

(b) OuluVS2 Tabulka 5.2: parametry konvolu£ních vrstev modelu

(35)

(a) OuluVS

(b) OuluVS2

Obrázek 5.2: Architektura nálního konvolu£ního modelu

V dal²ím kroku jsem se zabýval vyuºitím roz²í°ení dat pro zlep²ení p°esnosti sít¥.

Ze v²ech moºných zp·sob· roz²í°ení dat jsem se rozhodl vyzkou²et pouºít zrcadlení, rotaci, shear mapping a zm¥nu perspektivy. Z toho se mi nejlépe osv¥d£ilo pouºití náhodného horizontálního odzrcadlení, náhodnou rotaci o ±10 a náhodný shear mapping s shear úhlem ±10. Toto mi pomohlo zlep²it p°esnost zhruba o n¥kolik jednotek procent. V tabulce5.3 je zkrácený p°ehled experiment· s roz²í°ením dat.

p°esnost [%]

základ 80

shear ±10°, rot. ±10° 84 shear ±20°, rot. ±20° 76 shear ±20°, rot. ±10° 70 shear ±15°, rot. ±15° 80

Tabulka 5.3: Experimenty s roz²í°ením dat

(36)

Doposud jsem nechal sí´ trénovat pevný po£et epoch, abych omezil zbyte£né tré- nování nebo overtting, implementoval jsem následujícím zp·sobem early stopping.

Pomocí programu se vºdy ukládala nejlep²í sí´. Pokud bylo dosaºeno 100 % p°es- nosti na trénovacích datech alespo¬ t°i epochy za sebou a sí´ se za posledních p¥t epoch nezlep²ila, bylo ukon£eno trénování. Trénování trvalo p°ibliºn¥ 60 sekund na epochu pro dataset OuluVS a 80 pro OuluVS2, takºe jsem tímto vylep²ením výrazn¥

urychlil trénování.

Obrázek 5.3: Ukázka pr·b¥hu trénování sít¥

Na obrázku5.3je vyobrazen pr·b¥h trénování této architektury. Z grafu je moºné vi- d¥t, ºe nejniº²í chyba nemusí nutn¥ odpovídat nejlep²í p°esnosti. Model m¥l nejniº²í chybu v 13. a nejlep²í p°esnost v 34. epo²e. Trénování je pom¥rn¥ rychlé, model do- sáhne podmínky zastavení výrazn¥ d°íve, neº dosáhne námi nastavený limit ²edesáti epoch.

(37)

5.2 Rekurentní model

V této £ásti popisuji svou implementaci rekurentního modelu k rozpoznávání frází.

Rozhodl jsem se pouºít architekturu s dvourozm¥rnou konvolu£ní sítí na extrakci charakteristik z jednotlivých snímk·, rekurentní LSTM vrstvou a lineární vrstvou.

Soust°edil jsem se p°edev²ím na nastavení parametr· LSTM vrstvy. Lineární vrstva dostává jako vstup výstup z LSTM pro poslední £asový okamºik. Jako konvolu£ní sí´ jsem pouºil dvourozm¥rnou variantu sít¥ pouºité v konvolu£ním modelu. Jen namísto trojrozm¥rných konvolucí, sdruºování a batch normalizace pouºívám jejich dvourozm¥rné varianty. Model se trénoval výrazn¥ pomaleji oproti konvolu£nímu modelu co se tý£e po£tu epoch, proto jsem se snaºil urychlit trénování zvý²ením learn ratu, £ehoº se mi nepoda°ilo dosáhnout. Musel jsem tedy zvý²it limit epoch pro trénování. Nejprve jsem testoval pouºití dropoutu p°ed LSTM vrstou nebo p°ed lineární vrstvu, jenºe Dropout zpomaluje trénování a v mých experimentech nedosáhl zlep²ení modelu, z tohoto d·vodu jsem jej p°estal pouºívat. Následn¥ jsem experi- mentoval s pouºitím jednosm¥rných nebo obousm¥rných vrstev, velikostí skrytých vrstev a po£tem vrstev. Nejlep²ích výsledk· jsem dosáhl s jednosm¥rnou LSTM se t°emi vrstvami a velikostí skrytých vrstev 64. Na obrázku5.4 je vyobrazena kone£ná architektura.

Obrázek 5.4: Architektura rekurentního modelu

Na grafu 5.5 je vyobrazen pr·b¥h trénování rekurentního modelu. Z grafu je vid¥t, ºe trénovací chyba je výrazn¥ vy²²í neº u konvolu£ního modelu, a také se pomaleji sniºuje. Valida£ní chyba je mnohem nestabiln¥j²í oproti konvolu£nímu modelu.

(38)

Obrázek 5.5: Ukázka trénování rekurentního modelu

5.3 Rekurentní model pro rozpoznávání sekvencí

Pro rozpoznávání jsem pouºil nální verzi rekurentní sít¥. Jako kriteriální funkci jsem pouºil CTC loss a jako vstup do poslední lineární vrstvy uvaºujeme výstupy za kaºdý £asový okamºik. Kone£ný výstup sít¥ je pravd¥podobnostní rozd¥lení £íslic v kaºdém £asovém okamºiku. Výsledná sekvence pro vyhodnocení p°esnosti byla zkracována vypu²t¥ním za sebou opakujících se £ísel a vypu²t¥ním znaku prázdna.

Na obrázku 5.6 je výsledná architektura modelu a na grafu 5.7 je vid¥t p°íklad trénování modelu.

(39)

Obrázek 5.6: Architektura rekurentního modelu pro sekvence

Obrázek 5.7: Ukázka trénování rekurentního modelu pro sekvence

5.4 Hardwarové limitace

Knihovna Pytorch dovoluje pouºití softwarové a hardwarové architektury CUDA pro paralelizaci trénování a uºívání neuronových sítí pomocí GPU, této skute£nosti jsem se snaºil co nejvíce vyuºít. Jelikoº jsem m¥l k dispozici po£íta£ s omezenou GPU pam¥tí, musel jsem v pr·b¥hu vývoje postupn¥ zmen²ovat po£et dat pro paralelní zpracování.

(40)

S komplexn¥j²ím modelem jsem sniºoval batch size z p·vodního 100 na 5 k pouºití s posledním konvolu£ním modelem pro sadu dat OuluVS2. Pro rekurentní sít¥ se mi nepoda°ilo implementovat paralelní zpracování, i kdyº knihovna nabízí metody pro to ur£ené, av²ak m¥ se s nimi nepoda°ilo sí´ úsp¥²n¥ natrénovat. Také jsem s cílem urychlení trénování na£ítal ve²kerá trénovací data do pam¥ti, namísto opakovaného na£ítání z disku, nicmén¥ nám pro sekvence £íslic z data setu OuluVS2 nesta£ila opera£ní pam¥´. Pro tuto úlohu jsem op¥t za£al na£ítat data t¥sn¥ p°ed jejich zpra- cováním. Také jsem musel výrazn¥ zjednodu²it rekurentní model pro sekvenci, kv·li nedostatku GPU pam¥ti. Zmen²il jsem tedy po£et kanál· konvolucí v modelu.

5.5 Výsledky

P°esnost výsledk· je pro modely k rozpoznávaní frází prostý pom¥r shody výstupu ze sít¥ s pravdou. Pro model rozpoznávání sekvence pouºívám WER (word error rate) výsledné sekvence v·£i skute£né. K ur£ení kone£ného výsledku jsem pouºil k°íºovou validaci. Pro data z datasetu OuluVS jsem pouºil leave-one-out metodu.

Trénink probíhal na 19 osobách a na jedné probíhalo testování. Pro OuluVS2 jsem pouºil 5-fold metodu podle rozd¥lení uvedené v kapitole 4.2, kde sou£ástí testovací

£ásti byli vºdy poslední dva °e£níci. V tabulce 5.4 jsou výsledky jednotlivých pod- mnoºin k°íºového rozd¥lení pro dataset OuluVS.

podmnoºina 1 2 3 4 5 6 7 8 9 10

p°esnost CNN [%] 80 96 94 64 74 98 73,47 92 100 80 p°esnost RNN [%] 84 86 56 66 92 70 87,76 100 100 64

podmnoºina 11 12 13 14 15 16 17 18 19 20

p°esnost CNN [%] 82 94 82 90 82 89,58 80 84 86 96 p°esnost RNN [%] 50 98 60 90 84 91,67 76 82 82 62

Tabulka 5.4: Výsledky na datasetu OuluVS

(41)

Na OuluVS jsem s CNN modelem dosáhl celkové p°esnosti 85,85 % a s RNN mo- delem 79,07 %. CNN model se také mnohem rychleji trénoval, pr·m¥rn¥ trvalo 30 epoch k dosaºení nejlep²ího výsledku a 36 epoch k dosaºení podmínky ukon£ení tré- nování. RNN model pot°eboval pr·m¥rn¥ 56 epoch k dosaºení nejlep²ího výsledku a 92 epoch k dosaºení podmínky ukon£ení trénování s tím, ºe u v¥t²iny do²lo k do- saºení limitu 100 epoch. V tabulce 5.5 jsou výsledky pro dataset OuluVS2.

p°esnost CNN [%] p°esnost RNN [%]

podmnoºina test. val. test. val.

1 90 88,18 75 76,36

2 85 87,88 86,67 75,76

3 88,33 87 65 66,67

4 85 90,91 60 72,73

5 81,67 82,12 78,33 70

pr·m¥r 86 87,22 73 72

Tabulka 5.5: Výsledky na datasetu OuluVS2

Na OuluVS2 jsme dosáhli celkové p°esnosti 86 % s CNN modelem a 73 % s RNN modelem. Oba modely m¥ly tém¥° stejnou valida£ní i testovací p°esnost. CNN model pr·m¥rn¥ dosáhl podmínky konce trénování rychleji na datasetu OuluVS2 neº na OuluVS datasetu, i kdyº pot°eboval správn¥ p°edpov¥d¥t výrazn¥ v¥t²í po£et dat.

K ukon£ení trénování pot°eboval pr·m¥rn¥ 33 epoch a nejlep²ích výsledk· dosáhl v pr·m¥ru za 27 epoch.

Na druhou stranu RNN model ani v jednom p°ípad¥ nedosáhl podmínky k ukon£ení trénování, tedy se trénoval vºdy 100 epoch, a k dosaºení nejlep²ích výsledk· pot°e- boval pr·m¥rn¥ 40 epoch.

Co se tý£e modelu pro rozpoznávání sekvencí, jak lze vid¥t z grafu 5.7, model se trénuje správn¥, ale postrádá dostate£nou kapacitu k nau£ení se problematiky. Z d·- vodu hardwarové limitace jsem nemohl navrhnout a natrénovat model s dostate£nou kapacitou.

(42)

V experimentech jsem nedosáhl uspokojivých výsledk· a trénování trvalo výrazn¥

del²í dobu oproti ostatním model·m, proto model nepovaºuji za dosta£ující. Rozhodl jsem se proto model natrénovat pouze na prvním rozd¥lení. Model dosáhl testovací WER 60,67 %, valida£ní WER 79,21 % a nejlep²í trénovací WER 53,24 %.

5.6 Dosavadní nejlep²í výsledky

V literatu°e jsou uvedeny dosavadní nejlep²í výsledky na mnou pouºitých datase- tech, která uvádím pro porovnání. Na datasetu OuluVS bylo v práci [25] dosaºeno p°esnosti 92,1 %. Na sad¥ dat OuluVS2 auto°i v [26] dosáhli p°esnosti 95,6 % na frázích. V práci [27] auto°i dosáhli WER 7,2 % na sekvenci £ísel.

(43)

6 Záv¥r

P°i porovnání výsledk· navrºených architektur jsem do²el k záv¥ru, ºe lep²ích vý- sledk· dosahuje konvolu£ní model neº rekurentní model na obou datasetech. Pro v¥t²inu podmnoºin konvolu£ní model dosáhl lep²ích a stabiln¥j²ích výsledk· neº re- kurentní. Model rozpoznávající sekvenci £ísel se mi nepoda°ilo úsp¥²n¥ zrealizovat z d·vodu hardwarového omezení. Domnívám se, ºe komplexn¥j²í model se stejnou architekturou by m¥l být schopný dosáhnout p°ijatelných výsledk·.

V porovnání s profesionály na odezírání ze rt· modely dosáhly mnohem lep²í p°es- nosti. Je d·leºité brát ohled na to, ºe tyto výsledky jsou trénované a testované na pom¥rn¥ malém mnoºství r·zných frází.

Je obtíºné natrénovat velmi p°esný model s malým po£tem dat, z d·vodu nejistot spojených s odezíráním ze rt·, a to i na datasetech jako jsou OuluVS a OuluVS2, které obsahují malý po£et r·zných frází. Ostatní modely vyuºívají dal²í mechanismy spole£n¥ s komplexn¥j²ími sít¥mi k zlep²ení p°esnosti, coº v mém p°ípad¥ nebylo z d·vodu nedostatku prost°edk· moºné. Proto povaºujeme dosaºené výsledky s na-

²imi relativn¥ jednoduchými modely za úsp¥ch.

Dostupná °e²ení vyuºívající neuronové sít¥ bývají trénována na výrazn¥ v¥t²ím mnoºství slov, coº je výhodné pro pot°eby dobré generalizace. Zárove¬ jsou vý- razn¥ komplexn¥j²í, a proto dosahují lep²ích výsledk·.

(44)

Pouºitá literatura

[1] NODA, Kuniaki, Yuki YAMAGUCHI, Kazuhiro NAKADAI, Hiroshi G. OKUNO a Tetsuya OGATA. Lipreading using Convolutional Neural Network. Proceedings of the Annual Conference of the International Speech Communication Association, INTER- SPEECH. 2014, 1149-1153.

[2] GARG, Amit, Jonathan NOYOLA a Sameep BAGADIA. Lip reading using CNN and LSTM. Stanford University 450 Jane Stanford Way Stanford, CA 943052004, 2016.

Dostupné také z: http://cs231n.stanford.edu/reports/2016/pdfs/217_Report.pdf [3] SIMONYAN, Karen a Andrew ZISSERMAN. Very Deep Convolutional Networks for

Large-Scale Image Recognition. ArXiv.org [online]. 2015 [cit. 2020-05-19]. Dostupné z: https://arxiv.org/abs/1409.1556

[4] JANG, Dong-Won, Hong-In KIM, Changsoo JE, Rae-Hong PARK a Hyung- Min PARK. Lip Reading Using Committee Networks With Two Die- rent Types of Concatenated Frame Images. IEEE Access. 2019, 7, 90125- 90131. DOI: 10.1109/ACCESS.2019.2927166. ISSN 2169-3536. Dostupné také z:

https://ieeexplore.ieee.org/document/8756156/

[5] M. ASSAEL, Yannis, Brendan SHILLINGFORD, Shimon WHITESON a Nando de FREITAS. LipNet: End-to-End Sentence-level Lipreading. ArXiv.org [online]. 2016 [cit. 2020-05-19]. Dostupné z: https://arxiv.org/abs/1611.01599v2

[6] BARKER, Jon, Martin COOKE, Stuart CUNNINGHAM a Xu SHAO. The GRID audiovisual sentence corpus. The University of Sheeld [online]. Sheeld [cit. 2020- 05-19]. Dostupné z: http://spandh.dcs.shef.ac.uk/gridcorpus/

(45)

[7] CHUNG, Joon Son, Andrew SENIOR, Oriol VINYALS a Andrew ZISSER- MAN. Lip Reading Sentences in the Wild. 2017 IEEE Conference on Com- puter Vision and Pattern Recognition (CVPR). IEEE, 2017, 2017, , 3444- 3453. DOI: 10.1109/CVPR.2017.367. ISBN 978-1-5386-0457-1. Dostupné také z:

http://ieeexplore.ieee.org/document/8099850/

[8] SAHA, Sumit. A Comprehensive Guide to Convolutional Neural Networks - the ELI5 way. Toward Data Science [online]. 15 Dec 2018 [cit. 2020-05-19]. Do- stupné z: https://towardsdatascience.com/a-comprehensive-guide-to-convolutional- neural-networks-the-eli5-way-3bd2b1164a53

[9] VÉSTIAS, Mário P. A Survey of Convolutional Neural Networks on Edge with Recon-

gurable Computing. Algorithms. 2019, 12(8). DOI: 10.3390/a12080154. ISSN 1999- 4893. Dostupné také z: https://www.mdpi.com/1999-4893/12/8/154

[10] BEZDAN, Timea a Neboj²a BAƒANIN DšAKULA. Convolutional Neural Ne- twork Layers and Architectures. Proceedings of the International Scientic Confe- rence - Sinteza 2019. Novi Sad, Serbia: Singidunum University, 2019, 2019, , 445- 451. DOI: 10.15308/Sinteza-2019-445-451. ISBN 978-86-7912-703-7. Dostupné také z:

http://portal.sinteza.singidunum.ac.rs/paper/700

[11] HE, Kaiming, Xiangyu ZHANG, Shaoqing REN a Jian SUN. Deep Residual Learning for Image Recognition. ArXiv [online]. 10 Dec 2015 [cit. 2020-05-19]. Dostupné z:

https://arxiv.org/abs/1512.03385

[12] RUIZ, Pablo. Understanding and visualizing ResNets. Toward Data Science [online]. 8 Oct 2018 [cit. 2020-05-19]. Dostupné z:

https://towardsdatascience.com/understanding-and-visualizing-resnets- 442284831be8

[13] Long short-term memory unit. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2020-05-21]. Dostupné z:

https://en.wikipedia.org/wiki/Long_short-term_memory

[14] Gated recurrent unit. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2020-05-21]. Dostupné z:

https://en.wikipedia.org/wiki/Gated_recurrent_unit

(46)

[15] BROWNLEE, Jason. A Gentle Introduction to Dropout for Regularizing Deep Neu- ral Networks. Machine Learning Mastery [online]. 3 Dec 2018 [cit. 2020-05-19]. Do- stupné z: https://machinelearningmastery.com/dropout-for-regularizing-deep-neural- networks

[16] Overtting. In: Wikipedia: the free encyclopedia [online]. San Fran- cisco (CA): Wikimedia Foundation, 2001- [cit. 2020-05-19]. Dostupné z:

https://en.wikipedia.org/wiki/Overtting

[17] BROWNLEE, James. A Gentle Introduction to Early Stopping to Avoid Overtraining Neural Networks. Machine Learning Mastery [online]. 7 Dec 2018 [cit. 2020-05-20]. Do- stupné z: https://machinelearningmastery.com/early-stopping-to-avoid-overtraining- neural-network-models/

[18] IOFFE, Sergey a Christian SZEGEDY. Batch Normalization: Accelerating Deep Ne- twork Training b y Reducing Internal Covariate Shift. ArXiv [online]. [cit. 2020-05-19].

Dostupné z: https://arxiv.org/abs/1502.03167

[19] BROWNLEE, Jason. A Gentle Introduction to Batch Normalization for Deep Neu- ral Networks. Machine Learning Mastery [online]. 16 Jan 2019 [cit. 2020-05-19].

Dostupné z: https://machinelearningmastery.com/batch-normalization-for-training- of-deep-neural-networks/

[20] SCHEIDL, Harald. An Intuitive Explanation of Connectionist Temporal Classi-

cation. Toward Data Science [online]. 10 Jun 2018 [cit. 2020-05-19]. Dostupné z: https://towardsdatascience.com/intuitively-understanding-connectionist-temporal- classication-3797e43a86c

[21] Cross-validation (statistics). In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2020-05-23]. Dostupné z:

https://en.wikipedia.org/wiki/Cross-validation_(statistics)

[22] OuluVS database. University of Oulu [online]. [cit. 2020-05-19]. Dostupné z:

https://www.oulu./cmvs/node/41315

[23] OULUVS2: A MULTI-VIEW AUDIOVISUAL DATABASE. University of Oulu [on- line]. [cit. 2020-05-19]. Dostupné z: http://www.ee.oulu./research/imag/OuluVS2/

(47)

[24] GANDHI, Arun. Data Augmentation: How to use Deep Learning when you have Limited Data. NanoNets [online]. 2018 [cit. 2020-05-19]. Do- stupné z: https://nanonets.com/blog/data-augmentation-how-to-use-deep-learning- when-you-have-limited-data-part-2/

[25] HANDA, Anand, Rashi AGARWAL a Narendra KOHLI. A multimodel keyword spo- tting system based on lip movement and speech features. Multimedia Tools and Appli- cations [online]. [cit. 2020-05-23]. DOI: 10.1007/s11042-020-08837-2. ISSN 1380-7501.

Dostupné z: http://link.springer.com/10.1007/s11042-020-08837-2

[26] PETRIDIS, Stavros, Yujiang WANG, Pingchuan MA, Zuwei LI a Maja PANTIC.

End-to-End Visual Speech Recognition for Small-Scale Datasets. ArXiv [online]. [cit.

2020-05-23]. Dostupné z: https://arxiv.org/abs/1904.01954

[27] CHUNG, Joon Son a Andrew ZISSERMAN. Out of Time: Automated Lip Sync in the Wild. Computer Vision  ACCV 2016 Workshops. Cham: Springer International Publishing, 2017, 2017-03-16, , 251-263. Lecture Notes in Computer Science. DOI:

10.1007/978-3-319-54427-4_19. ISBN 978-3-319-54426-7. ISSN 0302-9743. Dostupné také z: http://link.springer.com/10.1007/978-3-319-54427-4_19

(48)

A Obsah p°iloºeného DVD

ˆ Zdrojové kódy

References

Related documents

byly postupně vytvářeny polygony. Jako předloha pro tvorbu polygonu posloužila vrstva obsahující hranici zájmové lokality a vrstva tektoniky. Díky tomuto nastavení měly

Nad rámec zadání byla řešena fonetická transkripce pro do- sažení lepší kvality syntetizované řeči a dále byl Tacotron 2 model rozšířen o vektory mluvčího (tzv.

Doba zpracování signálu, tedy metoda paCallback byla měřena pomocí volání funkce std::chrono::steady_clock::now() na začátku a na konci této metody, po odečtení těchto

Jednotlivé metody jsem prozkoumal a nejlepší univerzální metodou je hluboká neuronová síť. V případě obrázků je však značně lepší konvoluční neuronová sít. Kon-

Pokud mají oba entitní typy povinné členství ve vztahu můžeme atributy obou entitních typů zařadit do jednoho schématu relace.. Pokud má jeden povinné členství a

Pokud by byla zvolena metoda číslo jedna, musely by být vytvořeny nejdříve jednotlivé body celé geometrie, poté hrany u kterých je nutné definovat body které mají

Při pozorování zhotovených vláken resp. nanovláken s elektricky vodivou vrstvou byl využit skenovací elektronový mikroskop na fakultě Textilní na Technické

Využití sociálních sítí má pro firmu mnoho přínosů. Za prvé sociální média jsou obrovská, například Facebook, jedna z největších mediálních platforem má více