• No results found

Facial expression recognition using deep neural networks

N/A
N/A
Protected

Academic year: 2021

Share "Facial expression recognition using deep neural networks"

Copied!
42
0
0

Loading.... (view fulltext now)

Full text

(1)UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO. Gregor Štefanič. RAZPOZNAVANJE ČUSTVENIH IZRAZOV S POMOČJO GLOBOKIH NEVRONSKIH MREŽ Diplomsko delo. Maribor, september 2019.

(2) UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO. Gregor Štefanič. RAZPOZNAVANJE ČUSTVENIH IZRAZOV S POMOČJO GLOBOKIH NEVRONSKIH MREŽ Diplomsko delo. Maribor, september 2019.

(3) RAZPOZNAVANJE ČUSTVENIH IZRAZOV S POMOČJO GLOBOKIH NEVRONSKIH MREŽ Diplomsko delo. Študent:. Gregor Štefanič. Študijski program:. Univerzitetni študijski program Računalništvo in informacijske tehnologije. Mentor:. izr. prof. dr. Božidar Potočnik. Somentor:. asist. dr. Uroš Mlakar. Lektorica:. Breda Munda Bulatović, prof. slovenščine. i.

(4) ZAHVALA Zahvaljujem se mentorju izr. prof. dr. Božidarju Potočniku in somentorju asist. Urošu Mlakarju za vodenje, pomoč in predloge pri izdelovanju diplomskega dela. Prav tako se zahvaljujem staršema, ki sta mi omogočila študij in mi vedno stala ob strani.. ii.

(5) Razpoznavanje čustvenih izrazov s pomočjo globokih nevronskih mrež. Ključne besede: razpoznavanje čustvenih izrazov, globoka nevronska mreža, računalniški vid, residualna nevronska mreža. UDK:. 004.8:004.93(043.2). Povzetek V diplomskem delu smo se ukvarjali z razpoznavanjem čustvenih izrazov z digitalnih slik obrazov. Razpoznavali smo med sedmimi čustvenimi izrazi, vključno z nevtralnim. Pregledali smo obstoječa dela na področju razpoznavanja čustvenih izrazov, preučili globoke nevronske mreže in pripravili arhitekturo, ki je primerna za razpoznavanje čustvenih izrazov s slik. Uporabili smo arhitekturo z residualno nevronsko mrežo. Našo rešitev smo razvili s pomočjo ogrodja TensorFlow in programskega vmesnika Keras. Implementirali in preizkusili smo jo na mešanih slikah iz podatkovnih baz JAFFE, CK in MMI. Natančnost razpoznavanja čustvenih izrazov na 1017 testnih slikah z našo nevronsko mrežo je bila v povprečju 99,3-odstotna, kar je primerljivo oziroma boljše od sorodnih del.. iii.

(6) Facial Expression Recognition Using Deep Neural Networks. Keywords: facial expression recognition, deep neural network, computer vision, residual neural network. UDC:. 004.8:004.93(043.2). Abstract In this thesis we dealt with facial expression recognition in digital facial images. We distinguished between seven different facial expressions, including neutral. We reviewed existing works dealing with facial expression recognition, examined deep neural networks, and prepared an architecture suitable for facial expression recognition. Our architecture uses a residual neural network. Our solution was developed using TensorFlow and Keras. We implemented and tested the network on mixed images from databases JAFFE, CK, and MMI. Accuracy of facial expression recognition in 1017 test images with our neural network was 99.3% on average, which is comparable or better than related works.. iv.

(7) KAZALO VSEBINE 1. UVOD ........................................................................................................................ 1. 2. SORODNA DELA ........................................................................................................ 3. 3. GLOBOKE NEVRONSKE MREŽE ................................................................................. 5. 4. 5. 6. 3.1. Nevron .............................................................................................................. 5. 3.2. Arhitekture nevronskih mrež ............................................................................ 6. 3.3. Aktivacijska funkcija .......................................................................................... 9. 3.4. Konvolucijske nevronske mreže ..................................................................... 10. 3.5. Klasifikacijske funkcije..................................................................................... 11. UPORABLJENE TEHNOLOGIJE ................................................................................. 12 4.1. Python ............................................................................................................. 12. 4.2. TensorFlow...................................................................................................... 12. 4.3. Keras ............................................................................................................... 13. 4.4. CUDA ............................................................................................................... 13. PREDLAGANA METODA ZA RAZPOZNAVANJE ČUSTVENIH IZRAZOV ..................... 14 5.1. Globoka nevronska mreža .............................................................................. 14. 5.2. Arhitektura ...................................................................................................... 15. 5.3. Implementacija ............................................................................................... 17. EKSPERIMENTALNO OKOLJE ................................................................................... 19 6.1. Uporabljene podatkovne baze........................................................................ 19. 6.1.1 Cohn-Kanade ............................................................................................... 20 6.1.2 JAFFE ........................................................................................................... 22 6.1.3 MMI............................................................................................................. 22 7. REZULTATI IN DISKUSIJA ......................................................................................... 25. 8. SKLEP ....................................................................................................................... 30. v.

(8) LITERATURA .................................................................................................................... 31. vi.

(9) Kazalo slik Slika 3.1: Model nevrona .................................................................................................. 6 Slika 3.2: Enoplastna mreža s povezavami naprej ............................................................ 7 Slika 3.3: Večplastna mreža s povezavami naprej ............................................................ 8 Slika 3.4: Aktivacijska funkcija ReLU ................................................................................. 9 Slika 5.1: ResNet blok...................................................................................................... 14 Slika 5.2: Predlagana arhitektura ResNet za razpoznavanje čustvenih izrazov .............. 16 Slika 6.1: Primeri slik štirih oseb iz zbirke CK [3], [4] ...................................................... 21 Slika 6.2: Primeri slik štirih oseb iz zbirke JAFFE [5] ........................................................ 23 Slika 6.3: Primeri slik štirih oseb iz zbirke MMI [6] ......................................................... 24 Slika 7.1: Matrika zmede nad testno množico podatkov ............................................... 26 Slika 7.2: Graf spreminjanja natančnosti razpoznavanja v učni in testni množici v odvisnosti od epohe........................................................................................................ 27 Slika 7.3: Graf spreminjanja stroška v učni in testni množici v odvisnosti od epohe ..... 28 Slika 7.4: Napačno napovedani nevtralni izrazi: presenečenje (a), jeza (b), veselje (c), žalost (d) in strah (e) iz baze MMI .................................................................................. 29. KAZALO TABEL Tabela 5.1: Spreminjanje stopnje učenja glede na epoho ............................................. 17 Tabela 6.1: Število slik iz podatkovnih baz ..................................................................... 20 Tabela 7.1: Število slik iz podatkovnih baz v testni množici ........................................... 25 Tabela 7.2: Število uspešno in neuspešno napovedanih oznak za posamezno podatkovno bazo ................................................................................................................................. 26 Tabela 7.3: Uspešnost razpoznavanja posameznega čustvenega izraza ........................ 27. vii.

(10) SEZNAM KRATIC CK. Podatkovna baza Cohn-Kanade. JAFFE. Japonska podatkovna baza za razpoznavanje obraznih čustvenih izrazov žensk (angl. Japanese Female Facial Expression dataset). MMI. Podatkovna baza MMI. HOG. Histogram usmerjenih gradientov (angl. Histograms of Oriented Gradients). BU-3DFE Podatkovna baza binghamtonske univerze za razpoznavo 3D-čustvenih izrazov (angl. Binghamton University 3D Facial Expression dataset) DCT. Diskretna kosinusna transformacija (angl. Discrete Cosine Transform). CNN. Konvolucijska nevronska mreža (angl. Convolutional Neural Network). FERA. Podatkovna baza za razpoznavanje in analizo obraznih čustvenih izrazov (angl. Facial Expression Recognition and Analysis dataset). ReLU. Odpravljena linearna enota (angl. Rectified Linear Unit). ResNet. Residualna nevronska mreža (angl. Residual Neural Network). GPE. Grafična procesna enota. CPE. Centralna procesna enota. CNTK. Kognitiven sklop orodij podjetja Microsoft (angl. Microsoft Cognitive Toolkit). viii.

(11) 1 UVOD Področje računalniškega vida se ukvarja z avtomatskim razpoznavanjem, analizo in razumevanjem koristnih informacij s slik ali videoposnetkov. Eni od pomembnejših aktivnosti sta iskanje in obdelava človeških obrazov ter njihove obrazne mimike, s pomočjo katerih lahko določimo čustvo, ki ga človek izraža. Razpoznavanje čustvenih izrazov je eden najpomembnejših elementov nebesedne komunikacije med ljudmi. Ljudje vedno izražajo in si razlagajo čustva drugih, tudi če se tega sami ne zavedajo. Zato je za boljšo komunikacijo človek-stroj pomembno, da lahko računalnik razpoznava čustva na človekovem obrazu.. V diplomskem delu bomo obravnavali problem razpoznavanja čustvenih izrazov s pomočjo globokih nevronskih mrež. Želimo izdelati arhitekturo globoke nevronske mreže, ki bo čim bolj natančno razpoznavala med nevtralnim in šestimi čustvenimi izrazi: − veselje, − žalost, − presenečenje, − gnus, − jeza in − strah. Glavni cilj diplomskega dela je izdelava arhitekture globoke nevronske mreže, ki bo primerna za razpoznavanje čustvenih izrazov. Arhitekturo nevronske mreže bomo izdelali z uporabo ResNet [1] blokov, za implementacijo bomo uporabili knjižnico Keras [2]. Arhitekturo bomo testirali na slikah iz podatkovnih baz Cohn-Kanade [3], [4], JAFFE [5] in MMI [6]. Ne bomo se ukvarjali s problemov razpoznavanja in poravnave obrazov.. 1.

(12) Diplomsko delo je sestavljeno iz osmih poglavij. V drugem poglavju predstavimo obstoječe rešitve, ki rešujejo problem razpoznavanja čustvenih izrazov. Tretje poglavje vsebuje splošen opis in zgradbo nevronskih mrež, opis aktivacijskih in klasifikacijskih funkcij ter opis konvolucijske nevronske mreže. V četrtem poglavju sledi opis uporabljenih tehnologij. V petem poglavju predstavimo predlagano arhitekturo in implementacijo naše nevronske mreže. Šesto poglavje opiše uporabljeno strojno in programsko opremo ter uporabljene podatkovne baze slik. Sledijo rezultati in komentarji naše implementirane nevronske mreže v sedmem poglavju. V osmem poglavju na kratko povzamemo diplomsko delo in poročamo o težavah ter ugotovitvah. Na koncu je navedena literatura.. 2.

(13) 2 SORODNA DELA Na področju razpoznavanja čustvenih izrazov je bilo objavljenih že veliko člankov in opravljenih mnogo raziskav. Nekatere metode najprej izberejo obrazne značilnice, nato pa na podlagi značilnic določajo, kateri čustven izraz je prikazan na sliki [7], druge pa uporabljajo različne vrste nevronskih mrež [8].. Način z izbiro značilnic so uporabili v [7], kjer so z uporabo prilagojenega algoritma diferencialne evolucije za večkriterijsko optimizacijo pridobili značilnice, nato pa so s histogrami usmerjenih gradientov (HOG) in vektorji razlik določali prikazan čustveni izraz. Metodo so preizkušali na podatkovnih bazah Cohn-Kanade (98,37-% uspešnost), JAFFE (92,75-% uspešnost) in MMI (84,07-% uspešnost). V [8] so za razpoznavanje čustvenih izrazov uporabili konvolucijsko nevronsko mrežo s petimi sloji. Nevronska mreža je sestavljena iz dveh konvolucijskih slojev, dveh slojev podvzorčenja in enega polno povezanega sloja. Prvi sloj nevronske mreže je konvolucijski z velikostjo jedra 5 x 5, sledi pa mu sloj podvzorčenja z velikostjo jedra 2 x 2. Nato sledi sloj konvolucije z velikostjo jedra 7 x 7, za njim pa je še en sloj podvzorčenja z velikostjo jedra 2 x 2. Zadnji sloj nevronske mreže je polno povezan sloj, ki je povezan na izhod. Vhod v nevronsko mrežo je predobdelana sivinska slika ločljivosti 32 x 32 pikslov. Nevronsko mrežo so preizkušali na podatkovnih bazah Cohn-Kanade (CK+) s 98,8-%, JAFFE s 82,1-% in BU-3DFE s 91,89-% uspešnostjo. Članek [9] predlaga uporabo nevronske mreže s povezavami naprej za klasifikacijo čustvenih izrazov, vhod v nevronsko mrežo pa se pripravi z diskretno kosinusno transformacijo (DCT). Nevronska mreža je sestavljena iz enega skritega sloja in enega izhodnega. Preizkušali so jo na slikah 60 moških, vsak s petimi slikami z različnimi čustvenimi izrazi. Poročajo o 93,75-% uspešnosti.. 3.

(14) V raziskavi [10] predlagajo uporabo tridimenzionalne konvolucijske nevronske mreže (3D CNN), ki so jo uporabili za razpoznavanje čustvenih izrazov v videoposnetkih. Nevronsko mrežo so preizkušali na podatkovnih bazah CK+ s 92,4-%, MMI s 63,4-% in FERA s 56,1-% uspešnostjo.. 4.

(15) 3 GLOBOKE NEVRONSKE MREŽE Navdih za delo na umetnih nevronskih mrežah, ki jih običajno imenujemo kar nevronske mreže, je že od nekdaj spoznanje, da človeški možgani delujejo povsem drugače kot običajen digitalni računalnik. Človeški možgani so zapleten, nelinearen in vzporeden sistem za obdelavo informacij (računalnik). Nevronska mreža ima zmožnost organizacije svoje strukture, znane kot nevroni, da lahko izvaja določene izračune (npr. prepoznavanje vzorcev) velikokrat hitreje kot najhitrejši digitalni računalnik. V najbolj splošni obliki je nevronska mreža stroj, zasnovan za posnemanje, kako možgani opravljajo določeno nalogo ali funkcijo. Mreža je običajno implementirana z uporabo elektronskih komponent ali pa je simulirana s programom na digitalnem računalniku. Nevronska mreža je sestavljena iz veliko med seboj povezanih procesnih enot, imenovanih nevroni [11].. 3.1 Nevron Nevron je enota za obdelavo informacij, ki je ključnega pomena za delovanje nevronske mreže. Sestavljen je iz n vhodov, vsak s svojo utežjo, seštevalnika, ki sešteje vhode na podlagi uteži, praga (angl. bias), ki spreminja vhod v aktivacijsko funkcijo, in izhoda. Nevron lahko opišemo s funkcijo: 𝑦 = 𝑓 (∑ 𝑤𝑖 𝑥𝑖 + 𝑏). (3.1). 𝑖. kjer je: w – množica uteži, x – množica vhodov, f – aktivacijska funkcija,. 5.

(16) b – prag in y – izhod. Model nevrona je prikazan na sliki 3.1.. Slika 3.1: Model nevrona. 3.2 Arhitekture nevronskih mrež V splošnem poznamo tri različne razrede arhitektur nevronskih mrež: (i) Enoplastne mreže s povezavami naprej (angl. single-layer feedforward networks) V teh mrežah je vhodni sloj, ki samo preslika vhod naprej na vse nevrone izhodnega sloja, ki je tudi edini sloj v nevronski mreži. Primer take nevronske mreže je prikazan na sliki 3.2.. 6.

(17) Slika 3.2: Enoplastna mreža s povezavami naprej. (ii) Večplastne mreže s povezavami naprej (angl. multilayer feedforward networks) Večplastne nevronske mreže imajo med vhodnim in izhodnim slojem vsaj en skrit sloj nevronov. Take nevronske mreže imajo samo povezave naprej (na primer izhodi nevronov drugega sloja so vhodi nevronov tretjega sloja). Kadar ima taka nevronska mreža več skritih plasti, ji pravimo globoka nevronska mreža. Primer večplastne mreže s povezavami naprej je na sliki 3.3.. (iii) Rekurzivne mreže (angl. recurrent networks) Rekurzivne nevronske mreže se razlikujejo od mreže s povezavami naprej v tem, da vsebujejo vsaj eno povratno zanko, zato pa potrebujejo zakasnilne elemente.. 7.

(18) Slika 3.3: Večplastna mreža s povezavami naprej. 8.

(19) 3.3 Aktivacijska funkcija Aktivacijska ali prenosna funkcija deluje na izhodni vrednosti nevrona in se uporablja za omejevanje vrednosti na želen interval. Poznamo več različnih vrst aktivacijskih funkcij, kot so na primer ReLU, pragovna, sigmoidna itd. Aktivacijska funkcija ReLU (angl. Rectified Linear Unit) je matematično definirana kot: 𝑦 = max(0, 𝑥),. (3.2). kjer je y izhod iz nevrona. Vizualizirana je na sliki 3.4. Vrednost funkcije je 0 za vse negativne vrednosti in linearna za vse pozitivne vrednosti. Zaradi preprostosti funkcije se pogosto uporablja v nevronskih mrežah, ker je njena računska zahtevnost manjša [12].. Slika 3.4: Aktivacijska funkcija ReLU. 9.

(20) 3.4 Konvolucijske nevronske mreže Konvolucijske nevronske mreže (CNN) so večplastne mreže, ki lahko imajo večdimenzionalen vhod (na primer sliko, videoposnetek) in se med drugim uporabljajo za klasifikacijo objektov na slikah. Arhitektura konvolucijske nevronske mreže je podobna vzorcu povezav nevronov v človeških možganih in jo je navdihnil vizualni korteks. Posamezni nevroni se na dražljaje odzovejo le v omejenem območju vidnega polja, ki mu pravimo sprejemno polje. Več takih polj se med sabo prekriva, da pokrije celotno vidno območje. Število nevronov v plasti in velikost sprejemnega polja, ki ji pravimo tudi velikost jedra (angl. kernel size), prilagodimo vhodnim podatkom. Konvolucijska nevronska mreža je sestavljena iz vhodnega, več skritih in izhodnega sloja. Skriti sloji so običajno vrsta konvolucijskih slojev drug za drugim z aktivacijsko funkcijo ReLU. CNN pogosto vsebujejo še združevalne (angl. pooling), polno povezane sloje in sloje za normalizacijo. Vsak konvolucijski sloj ima tri parametre: − vhod: tenzor z obliko (število slik) × (širina slik) × (višina slik) × (globina slik), − velikost jedra in − število filtrov (nevronov) v sloju. Združevalni sloji zmanjšajo dimenzije vhodnih podatkov tako, da združijo izhode skupine nevronov na prejšnjem sloju v vhod enega nevrona na naslednjem. Poznamo več vrst združevanja. − Lokalno združevanje (angl. local pooling) združi vrednosti manjše skupine nevronov, običajno 2 x 2. − Globalno združevanje (angl. global pooling) združi vrednosti vseh nevronov na prejšnjem sloju. − Maksimalno združevanje (angl. max pooling) poda največjo vrednost v skupini nevronov na prejšnjem sloju v vhod naslednjega.. 10.

(21) − Povprečno združevanje (angl. average pooling) izračuna povprečno vrednost v skupini nevronov na prejšnjem in jo poda v naslednji sloj. Polno povezani sloji povežejo izhod vsakega nevrona na prejšnjem sloju na vhod vsakega nevrona v naslednjem sloju. Ta sloj je zelo podoben večplastni mreži s povezavami naprej, ki je opisana v podpoglavju 3.2.. 3.5 Klasifikacijske funkcije Nevronske mreže za klasifikacijo za zadnjim slojem nevronov pogosto uporabljajo klasifikacijske funkcije, kot sta logistična regresija in softmax. Logistična regresija omogoči nevronski mreži, ki je učena za razpoznavanje med dvema različnima razredoma, podati verjetnost za vsak razred med 0 in 1, seštevek obeh verjetnosti pa je 1. Pomanjkljivost te klasifikacijske funkcije je, da ni primerna za klasifikacijo v več kot dva razreda, saj ima samo dva izhoda. Klasifikacijska funkcija softmax razširi idejo logistične regresije na več kot dva razreda. Ta funkcija izračuna verjetnost za vsak razred, med katerimi razpoznavamo. Torej bo funkcija izračunala verjetnost za vsak razred, med katerimi razpoznavamo verjetnost med 0 in 1. Seštevek verjetnosti vseh razredov je 1.. 11.

(22) 4 UPORABLJENE TEHNOLOGIJE V tem poglavju bomo predstavili uporabljene tehnologije, ki smo jih potrebovali za implementacijo naše nevronske mreže v praktičnem delu te diplome. V podpoglavju 4.1 bomo opisali programski jezik Python, v podpoglavjih 4.2 in 4.3 pa predstavili platformo TensorFlow ter knjižnico Keras, podpoglavje 4.4 pa opisuje platformo CUDA.. 4.1 Python Pri praktičnem delu diplomske naloge smo uporabljali programski jezik Python [13]. Python je interpretiran, splošno namenski višji programski jezik. Zaradi vgrajenih podatkovnih struktur, dinamičnega določanja tipov in dinamičnega povezovanja je zelo priljubljen za hiter razvoj aplikacij, pisanje skript in za povezovanje obstoječih rešitev. Omogoča uporabo paketov in modulov, kar spodbuja modularnost programov in ponovno uporabo kode. Python tolmač in njegova obsežna standardna knjižnica sta odprtokodna.. 4.2 TensorFlow Za delo z nevronskimi mrežami smo uporabili odprtokodno platformo za strojno učenje TensorFlow in knjižnico Keras. TensorFlow [14] je odprtokodna knjižnica za računanje in strojno učenje. Razvila ga je ekipa raziskovalcev in inženirjev Google Brain pri podjetju Google za namen raziskovanja na področjih strojnega učenja in globokih nevronskih mrež. TensorFlow uradno ponuja vmesnike za jezike Python, JavaScript, C++, Java, Go in Swift, omogoča pa tudi izvajanje na grafičnih procesnih enotah (GPE), ki podpirajo tehnologijo CUDA.. 12.

(23) 4.3 Keras Keras [2] je visokonivojski vmesnik za delo z nevronskimi mrežami, ki omogoča uporabo ogrodij TensorFlow, CNTK in Theano. Podpira konvolucijske in rekurzivne nevronske mreže, kombinacijo teh in je namenjen za hitro izdelavo in preizkušanje arhitektur nevronskih mrež. Omogoča tudi shranjevanje in nalaganje arhitektur, uteži in celotnih naučenih nevronskih mrež. Vmesnik vsebuje orodja za uporabo številnih podatkovnih baz in nevronskih mrež iz različnih raziskav in člankov. Keras privzeto uporablja ogrodje TensorFlow, v katerem je vključen v modulu tf.keras. V TensorFlow 2.0 bo Keras glavni vmesnik za uporabo ogrodja.. 4.4 CUDA CUDA [15] je platforma za vzporedno računanje za izvajanje splošnih izračunov na grafičnih procesnih enotah, ki ga je razvilo podjetje Nvidia. Za učenje in preizkušanje nevronske mreže smo uporabljali platformo CUDA in knjižnico cuDNN za globoke nevronske mreže. Platforma se uporablja predvsem pri strojnem učenju, saj to zahteva veliko količino procesorske moči in časa na centralnih procesnih enotah. Pri nekaterih opravilih se je z uporabo platforme CUDA zmogljivost povečala do 50-krat.. 13.

(24) 5 PREDLAGANA METODA ZA RAZPOZNAVANJE ČUSTVENIH IZRAZOV V tem poglavju bomo predstavili našo arhitekturo nevronske mreže. Podpoglavje 5.1 opisuje splošno zgradbo residualne nevronske mreže (ResNet), v podpoglavju 5.2 pa predstavimo našo arhitekturo residualne nevronske mreže. Podpoglavje 5.3 opisuje implementacijo naše arhitekture nevronske mreže.. 5.1 Globoka nevronska mreža Za razpoznavanje čustvenih izrazov smo uporabili residualno nevronsko mrežo (ResNet) [1]. Taka nevronska mreža je sestavljena iz blokov, ki vsebujejo dva konvolucijska sloja nevronov in eno bližnjico, ki prenese izhod prejšnjega bloka na vhod naslednjega bloka, torej preskoči dva sloja. Vhod prejšnjega bloka se prišteje izhodu drugega konvolucijskega sloja še pred aktivacijsko funkcijo. Vizualizacija ResNet bloka je na sliki 5.1.. Slika 5.1: ResNet blok 14.

(25) 5.2 Arhitektura Pri izdelavi arhitekture nevronske mreže s konvolucijskimi sloji izbiramo med številnimi parametri, kot so: število slojev, aktivacijska funkcija za vsakim slojem, izbira klasifikacijske funkcije, število in velikost filtrov pri konvolucijskih slojih ipd. Namesto da sami preizkušamo različne kombinacije parametrov, smo se odločili, da začnemo z že uveljavljeno arhitekturo za klasifikacijo slik ResNet in jo prilagodimo za razpoznavanje čustvenih izrazov. Naša arhitektura nevronske mreže je sestavljena iz 20 slojev. Prvi sloj je konvolucijski z ločljivostjo jedra 3 x 3 in s 16 filtri. Nato sledijo tri skupine po tri ResNet bloke, ki skupaj vsebujejo 18 konvolucijskih slojev. Na koncu sledi še sloj povprečnega združevanja (angl. average pooling). Vsi konvolucijski sloji uporabljajo aktivacijsko funkcijo ReLU, ki nastopi takoj za slojem, če pa se za slojem prištejejo vrednosti bližnjice (preskoka), pa se aktivacijska funkcija izvede po prištevanju. Nevronska mreža uporablja klasifikacijsko funkcijo softmax. Ločljivost konvolucije je pri vseh konvolucijskih slojih 3 x 3 in se ne spreminja. Število filtrov v konvolucijskih slojih se v vsaki naslednji skupini podvoji, tako ima prva skupina ResNet blokov 16, druga 32 in tretja 64 filtrov. Prvi konvolucijski sloj v drugi in tretji skupini še razpolovi ločljivost vhoda s podvzorčenjem s faktorjem 2. Prav tako se s podvzorčenjem s faktorjem 2 razpolovi ločljivost vhoda na bližnjici pri prvem ResNet bloku druge in tretje skupine. Arhitektura je prikazana na sliki 5.2.. 15.

(26) Slika 5.2: Predlagana arhitektura ResNet za razpoznavanje čustvenih izrazov. 16.

(27) 5.3 Implementacija Arhitekturo smo implementirali s knjižnico Keras v programskem jeziku Python. Učili smo jo v 200 epohah nad mešanimi slikami treh baz testnih slik, ki so opisane v podpoglavju 6.1. Med učenjem smo uporabili dve funkciji, ki se kličeta po vsaki epohi. − Funkcija, ki spremeni stopnjo učenja, če se je mreža nehala izboljševati. Stopnja učenja se spremeni takoj, ko zazna, da se uspešnost več ne izboljšuje. Sprememba stopnje učenja je opisana s enačbo: (5.1). 𝑙𝑟𝑛 = 𝑙𝑟 ∗ √0,1, kjer je: 𝑙𝑟𝑛 – nova stopnja učenja in 𝑙𝑟 – stopnja učenja.. − Funkcija, ki zmanjša stopnjo učenja po določenem številu epoh. Spreminjanje stopnje učenja glede na število epoh je prikazano v tabeli 5.1. Tabela 5.1: Spreminjanje stopnje učenja glede na epoho Epoh. Stopnja učenja. ≥0. 0,001. > 80. 0,0001. > 120. 0,00001. > 160. 0,000001. > 180. 0,0000005. Oznake so za vhod v nevronsko mrežo kodirane z nizom bitov (angl. one hot encoding), ki kodirajo vsako oznako v tekstovni obliki v niz 7 bitov, v katerem je 1 na mestu, ki ustreza čustvenemu izrazu v tekstovni obliki. Nevtralni čustveni izraz je tako kodiran kot 1000000.. 17.

(28) Vse uteži v nevronski mreži smo inicializirali s pomočjo funkcije he_normal, ki črpa vzorce iz okrnjene normalne porazdelitve centrirane okrog ničle s standardnim odklonom: 2. 𝑠𝑡𝑑𝑑𝑒𝑣 = √𝑤𝑛,. (5.2). kjer je 𝑤𝑛 število uteži v sloju.. 18.

(29) 6 EKSPERIMENTALNO OKOLJE V tem poglavju je predstavljeno eksperimentalno okolje. Najprej predstavimo strojno in programsko opremo, ki smo jo uporabili za preizkušanje nevronske mreže, nato pa še opišemo vhodne slike. V podpoglavju 6.1 predstavimo uporabljene podatkovne baze slik.. Nevronsko mrežo smo preizkušali na prenosnem računalniku s strojno opremo: − Centralna procesna enota (CPE) Intel i5 6300HQ, − 8 GB pomnilnika DDR4, − GPE Nvidia GeForce GTX 960M s 4 GB pomnilnika GDDR5. Za preizkušanje nevronske mreže smo uporabljali tehnologijo CUDA na grafični procesni enoti. Na prenosniku je bil nameščen operacijski sistem Arch Linux. Vse slike za vhod v nevronsko mrežo so sivinske in imajo ločljivost 130 x 150 pikslov. Slike so predobdelane z detektorjem obrazov, zato se nismo ukvarjali s problemom razpoznavanja in poravnave obrazov.. 6.1 Uporabljene podatkovne baze Za preizkušanje natančnosti nevronske mreže smo uporabili tri javno dostopne baze testnih slik: Cohn-Kanade (CK), JAFFE in MMI. V tabeli 6.1 je prikazano število slik iz podatkovnih baz, ki smo jih uporabili za učenje in preverjanje nevronske mreže.. 19.

(30) Tabela 6.1: Število slik iz podatkovnih baz Podatkovna baza Nevtralno Gnus Jeza Presenečenje Strah Veselje Žalost Skupaj CK. 309. 177 135 249. 75. 207. 84. 1236. JAFFE. 30. 29. 32. 31. 31. 202. MMI. 230. 204 217 264. 210. 264. 216. 1604. 30. 29. 6.1.1 Cohn-Kanade Podatkovna baza Cohn-Kanade (CK) [3], [4] je ena najpogosteje uporabljenih zbirk na področju razpoznavanja čustvenih izrazov, uporablja pa se tudi na sorodnih področjih analize obraza. Zbirka slik je na voljo v dveh različicah: CK in CK+. V prvi različici zbirke CK je 486 videoposnetkov 97 različnih oseb. Vsak se začne z nevtralnim čustvenih izrazom, ki se nadaljuje v izraz v vrhuncu izražanja. Ti so označeni z oznakami, ki čustveni izraz predstavljajo. V zbirki so zbrani samo igrani čustveni izrazi, zato se oznake nanašajo na to, kateri izraz je bilo treba prikazati, in ne na dejanski izraz, ki ga je oseba opravila. Zato v zbirki slik prihaja do neujemanja med prikazanimi čustvenimi izrazi in oznakami pri nekaterih vzorcih. Drugi različici zbirke, poimenovani CK+, so avtorji dodali posnetke spontanih čustvenih izrazov in izhodiščne rezultate razpoznavanja čustvenih izrazov [7]. Na sliki 6.1 je prikazan del slik štirih oseb iz zbirke CK, ki so predobdelane z detektorjem obrazov. Slike za določene čustvene izraze manjkajo zaradi nepopolnih oznak ali pa slika ne obstaja.. 20.

(31) Nevtralno. Gnus. Jeza. Presenečenje. Strah. Veselje. Žalost. Slika 6.1: Primeri slik štirih oseb iz zbirke CK [3], [4]. 21.

(32) 6.1.2 JAFFE Podatkovna baza JAFFE (angl. Japanese Female Facial Expression database) [5] vsebuje 213 slik šestih različnih čustvenih izrazov in nevtralnih izrazov. V podatkovni bazi so slike 10 japonskih ženskih modelov, kjer za vsak model najdemo vsaj eno sliko posameznega čustvenega izraza. Slike v bazi je označilo 60 prostovoljcev [7]. Na sliki 6.2 je prikazan del slik štirih oseb iz zbirke JAFFE, ki so predobdelane z detektorjem obrazov.. 6.1.3 MMI V podatkovni bazi MMI (angl. Facial Expression Database) [6] je zbranih 2900 videoposnetkov in slik 75 različnih oseb. Baza večinoma vsebuje spontane čustvene izraze [7]. Na sliki 6.3 je prikazan del slik štirih oseb iz zbirke MMI, ki so predobdelane z detektorjem obrazov.. 22.

(33) Nevtralno. Gnus. Jeza. Presenečenje. Strah. Veselje. Žalost. Slika 6.2: Primeri slik štirih oseb iz zbirke JAFFE [5]. 23.

(34) Nevtralno. Gnus. Jeza. Presenečenje. Strah. Veselje. Žalost. Slika 6.3: Primeri slik štirih oseb iz zbirke MMI [6]. 24.

(35) 7 REZULTATI IN DISKUSIJA Našo nevronsko mrežo smo preizkušali na mešani množici slik iz vseh treh podatkovnih baz, opisanih v podpoglavju 6.1. Slike smo razdelili na učno in testno množico s 30 % slik v testni in preostalih 70 % slik v učni množici. Delitev na učno in testno množico smo opravili s pomočjo funkcije train_test_split iz knjižnice sklearn, ki samodejno razdeli podatke glede na parametre. Funkcija je v našem primeru premešala vrstni red slik in oznak, nato pa ločila podatke na učno in testno množico. Za delitev neodvisno od osebe (angl. person-independent) nismo posebej poskrbeli. Navzkrižne validacije nismo uporabili zaradi omejitev zmogljivosti strojne opreme. Tabela 7.1 prikazuje število slik v testni množici iz posamezne podatkovne baze.. Tabela 7.1: Število slik iz podatkovnih baz v testni množici Podatkovna baza Nevtralno Gnus Jeza Presenečenje Strah Veselje Žalost Skupaj CK. 132. 91. 48. 123. 24. 110. 34. 562. JAFFE. 8. 9. 7. 10. 12. 8. 10. 64. MMI. 58. 50. 57. 60. 51. 71. 44. 391. Nevronsko mrežo smo učili skozi 200 epoh z velikostjo serije (angl. batch size) 64, adaptivnim optimizatorjem učenja Adam in stroškovno funkcijo kategorična entropija (angl. categorical entropy). En korak (epoha) učenja je trajal od 60 do 70 sekund, odvisno od zasedenosti sistemskih virov, celotno učenje pa je trajalo 3 ure in 30 minut. Nato smo generirali matriko zmede (angl. confusion matrix), ki smo jo prikazali na sliki 7.1. Iz te matrike je razvidno, koliko slik iz testne množice je nevronska mreža klasificirala kot določen čustven izraz in kateri je pravilen izraz. Vrstice predstavljajo pravilne čustvene izraze, stolpci pa izhod iz nevronske mreže. Iz matrike se opazi, da je nevronska mreža. 25.

(36) klasificirala večino testne množice pravilno, sedem nevtralnih izrazov pa je napačno klasificirala kot različna čustvena stanja. Tabela 7.2 prikazuje, koliko slik iz določene podatkovne baze je bilo uspešno in koliko neuspešno napovedanih. V tabeli 7.3 je prikazana uspešnost razpoznavanja posameznega čustva.. Slika 7.1: Matrika zmede nad testno množico podatkov. Tabela 7.2: Število uspešno in neuspešno napovedanih oznak za posamezno podatkovno bazo Uspešno napovedana oznaka. Neuspešno napovedana oznaka. CK. 560. 2. JAFFE. 64. 0. MMI. 386. 5. 26.

(37) Tabela 7.3: Uspešnost razpoznavanja posameznega čustvenega izraza Čustven izraz. Nevtralno. Gnus. Jeza. Presenečenje. Uspešnost. 96,46 %. 100 % 100 % 100 %. Strah. Veselje Žalost. 100 % 100 %. 100 %. Z grafa na sliki 7.2 je razvidno spreminjanje natančnosti razpoznavanja učne in testne množice v odvisnosti z epohami. Opazimo, da je natančnost po 50. epohi že nad 90 %, nato pa strmo pade zaradi strmega povečanja stroška, vidnega na sliki 7.3. Natančnost se po 100 epohah stabilizira na 99,2 % pri testni in na 100 % pri učni množici. Zato sklepamo, da natančnost strmo pade zaradi izbranega načina podajanja oznak v nevronsko mrežo in izbire optimizacijske ter stroškovne funkcije.. Slika 7.2: Graf spreminjanja natančnosti razpoznavanja v učni in testni množici v odvisnosti od epohe. 27.

(38) Graf na sliki 7.3 prikazuje spreminjanje stroška (angl. loss) učne in testne množice v odvisnosti od epohe. Podobno kot pri grafu natančnosti opazimo, da se med 50. in 75. epoho strošek strmo poveča. Po 100 epohah se, tako kot natančnost, strošek stabilizira. Zato sklepamo, da se je strošek strmo povečal zaradi izbranega načina podajanja oznak v vhod nevronske mreže in posledično tudi zaradi izbire stroškovne ter optimizacijske funkcije. Slika 7.4 prikazuje napačno napovedane čustvene izraze. Opazimo, da je do napak prihajalo pri slikah, kjer imajo ljudje deloma zakrit obraz (na primer očala, burka) ali pa imajo gube.. Slika 7.3: Graf spreminjanja stroška v učni in testni množici v odvisnosti od epohe. 28.

(39) (a). (b). (c). (d). (e). Slika 7.4: Napačno napovedani nevtralni izrazi: presenečenje (a), jeza (b), veselje (c), žalost (d) in strah (e) iz baze MMI. Mrežo smo inicializirali tako, kot je opisano v podpoglavju 5.3, in je nismo poskusili učiti z drugačnimi inicializacijami. Menimo, da ni prišlo do nadprileganja, saj se strošek in natančnost do zadnje epohe izboljšujeta. Tudi ko je strošek testne množice med 50. in 75. epoho strmo narasel, je z grafa na sliki 7.3 razvidno, da ob istem času narasel tudi strošek učne množice. Iz tega lahko sklepamo, da sta razloga za strmo povišanje stroška izbran način podajanja oznak v nevronsko mrežo ter izbira stroškovne in optimizacijske funkcije. Na podatkovni bazi MMI smo z našo nevronsko mrežo dosegli zelo visoko natančnost. S to bazo imajo težave tudi zelo uspešne metode iz sorodnih del, saj vsebuje spontano izražene čustvene izraze, ki so bolj zahtevni za razpoznavanje.. 29.

(40) 8 SKLEP V diplomskem delu smo uspešno predstavili arhitekturo nevronske mreže za razpoznavanje čustvenih izrazov s slik. Izbrali smo residualno nevronsko mrežo in jo prilagodili našim potrebam. S predstavljeno arhitekturo nevronske mreže smo uspešno razpoznavali sedem različnih čustvenih izrazov, vključno s nevtralnim. Ugotovili smo, da je arhitektura ResNet dobra za razpoznavanje čustvenih izrazov, saj smo z njo dosegli natančnost 99,3 % na mešani testni množici. Največ težav smo imeli pri vzpostavljanju knjižnice TensorFlow, saj sta za uporabo s platformo CUDA potrebna posebna različica in poseben gonilnik za GPE. Uporaba platforme CUDA je bila nujna, saj na centralni procesni enoti en epoh učenja traja več kot 60 minut proti 40 sekundam na GPE. Z uporabo naše nevronske mreže smo na slikah iz baze MMI dosegli 98,72-%, iz baze CK 99,64-% in 100-% uspešnost pri slikah iz baze JAFFE. Skupna uspešnost je bila 99,3-%, kar je najboljše med sorodnimi deli, opisanimi v poglavju 2. Med sorodnimi deli smo uspešnost na bazi CK iz raziskave [8] izboljšali za 0,84 %, uspešnost na bazi MMI iz [7] pa smo izboljšali za 14,65 %.. 30.

(41) LITERATURA [1]. K. He, X. Zhang, S. Ren in J. Sun, „Deep residual learning for image recognition“, Proc. IEEE Comput. Soc. Conf. Comput. Vis. Pattern Recognit., let. 2016-Decem, str. 770–778, 2016.. [2]. F. Chollet, „Keras“, 2015. [Na spletu]. Dostopno: https://keras.io.. [3]. P. Lucey, J. F. Cohn, T. Kanade, J. Saragih, Z. Ambadar in I. Matthews, „The extended Cohn-Kanade dataset (CK+): A complete dataset for action unit and emotion-specified expression“, v 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition - Workshops, CVPRW 2010, 2010, str. 94–101.. [4]. T. Kanade, J. F. Cohn in Y. Tian, „Comprehensive database for facial expression analysis“, v Proceedings - 4th IEEE International Conference on Automatic Face and Gesture Recognition, FG 2000, 2000, str. 46–53.. [5]. M. Lyons, S. Akamatsu, M. Kamachi in J. Gyoba, „Coding facial expressions with Gabor wavelets“, v Proceedings - 3rd IEEE International Conference on Automatic Face and Gesture Recognition, FG 1998, 1998, str. 200–205.. [6]. M. Pantic, M. Valstar, R. Rademaker in L. Maat, „Web-based database for facial expression analysis“, v IEEE International Conference on Multimedia and Expo, ICME 2005, 2005, let. 2005, str. 317–321.. [7]. U. Mlakar, „Razpoznavanje čustvenih izrazov osebe iz slikovnega materiala z algoritmom diferencialne evolucije za izbiro značilnic“, Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko, 2019.. [8]. A. T. Lopes, E. de Aguiar, A. F. De Souza in T. Oliveira-Santos, „Facial expression recognition with Convolutional Neural Networks: Coping with few data and the. 31.

(42) training sample order“, Pattern Recognit., let. 61, str. 610–628, 2017. [9]. L. Ma in K. Khorasani, „Facial expression recognition using constructive feedforward neural networks“, IEEE Trans. Syst. Man, Cybern. Part B, let. 34, št. 3, str. 1588–1595, 2004.. [10]. M. Liu, S. Li, S. Shan, R. Wang in X. Chen, „Deeply learning deformable facial action parts model for dynamic expression analysis“, v Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2015, let. 9006, str. 143–157.. [11]. S. Haykin, Neural Networks and Learning Machines, let. 3. 2008.. [12]. Danqing Liu, „A Practical Guide to ReLU“, 2017. [Na spletu]. Dostopno: https://medium.com/@danqing/a-practical-guide-to-relu-b83ca804f1f7. [Dostopano: 20-avg-2019].. [13]. Python. Software. Foundation,. „Python“.. [Na. spletu].. Dostopno:. https://www.python.org/. [Dostopano: 04-sep-2019]. [14]. M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen, C. Citro, G. S. Corrado, A. Davis, J. Dean, M. Devin, S. Ghemawat, I. Goodfellow, A. Harp, G. Irving, M. Isard, Y. Jia, R. Jozefowicz, L. Kaiser, M. Kudlur, J. Levenberg, D. Mane, R. Monga, S. Moore, D. Murray, C. Olah, M. Schuster, J. Shlens, B. Steiner, I. Sutskever, K. Talwar, P. Tucker, V. Vanhoucke, V. Vasudevan, F. Viegas, O. Vinyals, P. Warden, M. Wattenberg, M. Wicke, Y. Yu in X. Zheng, „TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems“, 2016.. [15]. J. Nickolls, I. a N. Buck in M. Garland, „Scalable Parallel with CUDA“, Queue, let. 6, št. April, str. 40–53, 2008.. 32.

(43)

References

Related documents

The major budget categories under each of the PEESP’s objectives include the cost of reaching and vaccinating more than 450 million children multiple times every year;

In our study, various methods are compared for the classification of chord-scale types based on Harmonic Pitch Class Profiles (HPCP) ex- tracted from audio signals.. Due to the lack

Focusing on Honduras and Nicaragua, Wells and colleagues (2007) conducted a comparative case study in 2002, focusing on illegal logging and timber trade. They use secondary

Psychology student at the School of Education, University of Missouri Kansas City. The results from the study will contribute to Joanna Maung’s research project, which aims to

Third, outside of research that looks at first generational status as it relates to issues of a particular minority [African American experiences, for example: (Johnson-Bailey &

Veltkamp, editors, Proceedings of the 11th International Society for Music Information Retrieval Conference (ISMIR) , pages 315–320, 2010. Feature subset selection in

Dry, coarse sand (block paving sand is excellent) brushed into the pile of the Verdeturf is sufficient to hold the grass in place (approx 20 kg per square metre). SuperVerdeturf