Recunoașterea emoțiilor folosind rețele neuronale convoluționale LUCRARE DE DIPLOMĂ [627335]
UNIVERSITATEA TEHNICĂ „Gheorghe Asachi” din IAȘI FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE DOMENIUL: Calculatoare și Tehnologia Informației SPECIALIZAREA: Tehnologia Informației
Recunoașterea emoțiilor folosind rețele neuronale convoluționale LUCRARE DE DIPLOMĂ
Coordonator științific Marius Gavrilescu Absolvent: [anonimizat], 2019
DECLARAȚIE DE ASUMARE A AUTENTICITĂȚII LUCRĂRII DE DIPLOMĂ
Subsemnatul(a) , legitimat(ă) cu autorul lucrării elaborată în vederea susținerii examenului de finalizare a studiilor de licență organizat de către Facultatea de Automatică și Calculatoare din cadrul Universității Tehnice „Gheorghe Asachi” din Iași, sesiunea a anului universitar , luând în considerare conținutul Art. 34 din Codul de etică universitară al Universității Tehnice „Gheorghe Asachi” din Iași (Manualul Procedurilor, UTI.POM.02 – Funcționarea Comisiei de etică universitară), declar pe proprie răspundere, că această lucrare este rezultatul propriei activități intelectuale, nu conține porțiuni plagiate, iar sursele bibliografice au fost folosite cu respectarea legislației române (legea 8/1996) și a convențiilor internaționale privind drepturile de autor. Data Semnătura ,
Cuprins Introducere 1 ………………………………………………………………………………………………………….Capitolul 1. Fundamentarea teoretică și documentarea bibliografică pentru tema propusă 2 ……..1.1. Domeniul și contextul abordării temei 2 ………………………………………………………………….1.2. Referințe la teme/subiecte similare 8 ……………………………………………………………………….1.3. Rezultate așteptate 10……………………………………………………………………………………………
Recunoașterea emoțiilor folosind rețele neuronale convoluționale Andreea Bodnariu Rezumat Recunoașterea emoțiilor este o tehnică ce permite unui program să "citească" emoțiile pe o față umană folosind procesarea avansată a imaginilor. Companiile au experimentat combinarea unor algoritmi sofisticați cu tehnici de procesare a imaginilor care au apărut în ultimii zece ani pentru a înțelege mai multe despre ce ne poate spune o imagine sau un videoclip despre chipul unei persoane, sau despre probabilitățile emoțiilor mixte pe care le-ar putea avea o față. Procesul de recunoaștere a emoțiilor poate fi împărțit în trei etape: preprocesarea imaginii, antrenarea rețelei și testarea. Pentru a îmbunătăți rezultatul clasificării imaginilor, preprocesarea imaginilor este o etapă foarte importantă. Prelucrarea imaginilor țintă include conversia formatului de imagine, tăierea imaginilor. Astfel, îmbunătățim acuratețea clasificării imaginilor și reducem interferența altor informații non-țintă cu privire la clasificarea imaginilor. Antrenarea rețelei ar trebui făcută cu un set de date compus dintr-un număr cât mai mare de imagini (câteva mii), preprocesate, de dimensiune mica (aproximativ 48×48 pixeli), alb-negru. Imaginile sunt împărțite, în funcție de emoția din imaginea respectivă (de exemplu: Happy, Sad, Angry etc.). Antrenarea rețelei se va face folosind Tensorflow și rețele neuronale convoluționale. Rețelele neuronale convoluționale (CNN) au fost inspirate din procese biologice, structura lor având o asemănare cu cortexul vizual prezent într-un animal. O rețea neuronala convoluțională este ca o colecție formată din 2 tipuri de straturi: •Straturile “ascunse” care se ocupă cu extragerea trăsăturilor •Partea de clasificare
Pentru antrenarea rețelei lucrăm cu setul de date Kaggle FER2013. Pentru antrenarea rețelei folosim imagini 48×48. Apoi, avem 7 emoții pe care le prezicem (0=Angry, 1=Disgust, 2=Fear, 3=Happy, 4=Sad, 5=Surprise, 6=Neutral), deci avem 7
Figura 1. Arhitectura unei rețele neuronale convoluționale
“etichete” (labels). Cel mai important pas este proiectarea rețelei prin care vom trece caracteristicile noastre pentru a instrui modelul și eventual pentru a-l testa folosind caracteristicile de testare. Pentru asta am folosit diferiți parametrii și diferite funcții, pe care le-am modificat în funcție de rezultatele obținute, pentru a crește acuratețea. Apoi, potrivim modelul cu dimensiunea fixă a lotului (64 aici), epocile (100 aici) și datele de validare pe care le-am obținut prin divizarea datelor de antrenament. La final, salvăm modelul pentru a-l testa. După ultima epocă din partea de antrenare a rețelei, observăm că am obținut o precizie de aproximativ 67%.
Pentru testare am folosit atât imagini cu diferite persoane și diferite emoții, precum și un video în timp real, preluat de la camera web. Putem observa cum mânia și dezgustul au fost confundate una cu cealaltă, deoarece sunt emoții negative foarte asemănătoare. La fel se întâmplă și cu Frica și Tristețea.
Figura 2. Rezultate obținute după antrenarea rețelei
Andreea BodnariuIntroducere Recunoașterea expresiei facială a fost un subiect activ de cercetare în ultimii ani, cu zone de aplicație tot mai mari, printre care animația avatar, robotul de neuromarketing și roboții sociabili. Recunoașterea expresiilor faciale nu este o problemă ușoară pentru metodele de învățare automată, deoarece oamenii pot varia semnificativ în modul în care își manifestă expresiile. Chiar și imaginile cu o singură persoana cu aceeași expresie facială pot varia în funcție de luminozitate, fundal, calitatea imaginii și mulți alți factori, aceste variații fiind subliniate dacă luăm în considerare detalii precum variații ale formei feței, fizionomie, etc. Deși recunoașterea expresiei facială este foarte studiată în literatura de specialitate, puține lucrări realizează o evaluare corectă evitând amestecarea subiecților în timp ce antrenează și testează algoritmii propuși. Prin urmare, recunoașterea expresiei faciale este încă o problemă dificilă în viziunea calculatorului. În această lucrare, propunem o soluție simplă pentru recunoașterea expresiei feței care utilizează rețele neuronale convoluționale. Conceptele rețelelor neuronale convinse au o precizie mai bună cu seturi de date mari. Pentru antrenarea rețelei folosim setul de date Kaggle FER2013. Arhitectura folosită pentru rețea a adus o acuratețe de aproximativ 67%.
( 1
Capitolul 1. Fundamentarea teoretică și documentarea bibliografică pentru tema propusăCapitolul 1. Fundamentarea teoretică și documentarea bibliografică pentru tema propusă Sistemele de învățare a mașinilor pot fi instruite pentru a recunoaște expresiile emoționale din imaginile fețelor umane, cu un grad ridicat de precizie în multe cazuri. Cu toate acestea, implementarea poate fi o sarcină complexă și dificilă. Tehnologia se află într-un stadiu relativ timpuriu, seturile de date de înaltă calitate pot fi greu de găsit și există diferite capcane ce pot apărea atunci când se proiectează noi sisteme. 1.1. Domeniul și contextul abordării temei Recunoașterea expresiilor faciale este o problemă de clasificare a imaginilor. Problemele de clasificare a imaginilor sunt cele în care imaginile trebuie să fie atribuite algoritmic unei etichete dintr-un set discret de categorii. În sistemele FER, în imagini apar chipuri umane, iar categoriile sunt un set de emoții. Abordările de învățare automată pentru FER necesită un set de exemple de imagini de antrenament, fiecare etichetat cu o singură categorie de emoție. Un set standard de șapte clasificări emoționale este, de exemplu, nervos(Angry), dezgustat(Disgust), speiat(Fear), fericit(Happy), trist(Sad), surprins(Surprise), neutru(Neutral). Aceste clasificări ale emoțiilor sunt ilustrate în imaginile de mai jos, prezentând exemple clasice, dar totuși reprezentative:
Clasificarea unei imagini pe baza descrierei sale poate fi o sarcină complicată pentru un calculator. Este simplu ca oamenii să se uite la o imagine a unei biciclete și să știe că este o bicicletă, sau să privească fața unei persoane și să știe că ei zâmbesc și sunt fericiți. Când calculatoarele “privesc” o imagine, ceea ce “vad” este pur și simplu o matrice de valori ale pixelilor. Pentru a clasifica o imagine, computerul trebuie să descopere și să clasifice modele numerice în cadrul matricei de imagini. Aceste modele pot fi variabile și greu de identificat din mai multe motive. Mai multe emoții umane se pot distinge numai prin diferențe subtile ale modelelor faciale, cu emoții (2
Figura 1.1. O selecție de imagini etichetate pentru analiza expresiei
Andreea Bodnariuprecum furia și dezgustul exprimate adesea în moduri foarte asemănătoare. Expresiile emoțiilor fiecărei persoane pot fi ceva diferit și propriu individului, cu diverse particularități ce nu se regăsesc în modul de exprimare al altor persoane. Pot exista o mare varietate de orientări și poziții divergente ale capului oamenilor în fotografiile care urmează să fie clasificate. Figura 1.2 prezintă trei persoane cu o expresie fericită. Așa cum se poate observa în figură, imaginile variază foarte mult una de cealaltă, nu numai în ceea ce privește persoanele și expresiile lor, ci și în lumină, strălucire, încadrare, calitatea imaginii și fundal. Această figură exemplifică, de asemenea, o altă provocare legată de recunoașterea expresiei faciale, care este formarea necontrolată a testelor de pregătire (imaginile de formare pot fi foarte diferite în ceea ce privește condițiile de mediu și etnicitatea subiectului din imaginile de testare).
Din aceste motive, FER este mult mai dificil decât majoritatea sarcinilor de clasificare a imaginilor. Cu toate acestea, sistemele bine concepute pot obține rezultate precise atunci când constrângerile sunt luate în considerare în timpul dezvoltării. De exemplu, o precizie mai mare poate fi obținută atunci când se clasifică un subset mai mic de expresii extrem de distincte, cum ar fi furia, fericirea și teama. Precizia redusă este obținută atunci când se clasifică subseturi mai mari sau cu expresii mai puțin distincte, cum ar fi furie și dezgust. De asemenea, precizia redusă apare și în cazul seturilor de date cu imagini în care mediul nu este controlat (de exemplu, luminozitatea nu este bună). La fel ca majoritatea sistemelor de clasificare a imaginilor, sistemele FER utilizează în mod obișnuit preprocesarea imaginilor și extragerea caracteristicilor, urmată de instruirea pe arhitecturi de formare selectate. Rezultatul final al antrenamentului este generarea unui model capabil să atribuie categorii de emoții imaginilor nou furnizate. Sistemele de recunoaștere a expresiei faciale pot fi împărțite în două categorii principale: cele care lucrează cu imagini statice și acelea care lucrează cu secvențe de imagine dinamice. Metodele statice nu utilizează informații temporale, adică vectorul caracteristic conține informații doar despre imaginea curentă de intrare. Metodele bazate pe secvențe, pe de altă parte, utilizează informații temporale ale imaginilor pentru a recunoaște expresia capturată din unul sau mai multe cadre. Sistemele automatizate de recunoaștere a expresiei faciale primesc intrarea așteptată (imagine statică sau secvență de imagini) și de obicei oferă ca ieșire una ( 3
Figura 1.2. Trei persoane diferite, exprimând “fericire”
Capitolul 1. Fundamentarea teoretică și documentarea bibliografică pentru tema propusădintre expresiile pentru care a fost antrenată (furie, tristețe, surpriză, fericire, dezgust și teamă, de exemplu); unele sisteme recunosc și expresia neutră. Analiza automată a expresiei faciale are trei etape: detecția feței, extragerea și reprezentarea datelor facială și recunoașterea expresiei feței. După detecția feței, trebuie extrase modificările faciale cauzate de expresiile faciale. Aceste modificări sunt de obicei extrase folosind metode geometrice sau metode bazate pe aspect. Caracteristicile extrase sunt adesea reprezentate în vectori, denumiți vectori de caracteristici. Metodele bazate pe metode geometrice lucrează cu forma și locația componentelor faciale, cum ar fi gura, ochii, nasul și sprâncenele. Vectorul caracteristic care reprezintă geometria feței este compus din componente faciale sau puncte caracteristice faciale. Metodele bazate pe aspect se bazează pe vectori extrași din întreaga față sau din anumite regiuni, aceștia fiind achiziționați prin intermediul unor filtre de imagine aplicate imaginii întregi. Odată ce sunt disponibili vectori de expresie faciali, se poate face recunoașterea expresiei. Sistemele de recunoaștere a expresiei utilizează practic o procedură de pregătire în trei etape: învățarea caracteristicilor, selectarea caracteristicilor și construcția clasificatorului, în această ordine. Stadiul de învățare a feței este responsabil pentru extragerea tuturor caracteristicilor legate de expresia feței. Selecția caracteristicilor selectează cele mai bune caracteristici pentru a repeta expresia feței. Acestea ar trebui să minimizeze variația expresiilor dintr-o clasă, maximizând variația între clase diferite. Minimizarea variației de expresie a clasei este o problemă, deoarece imaginile unor indivizi diferiți cu aceeași expresie sunt departe unul de celălalt în spațiul pixelilor. Maximizarea variației intre clase, de asemenea, dificilă, deoarece imaginile aceleiași persoane în expresii diferite pot fi foarte apropiate una de alta în spațiul pixelilor. La sfârșitul întregului proces, un clasificator (sau un set de clasificatori, cu unul pentru fiecare expresie) este folosit pentru a deduce expresia feței, având în vedere caracteristicile selectate. Una dintre tehnicile aplicate cu succes în problema recunoașterii expresiei faciale a fost rețeaua neuronală profundă multi-strat. Această tehnică cuprinde cele trei etape ale recunoașterii expresiei faciale (învățarea și selectarea caracteristicilor și clasificarea) într-un singur pas. În ultimul deceniu, cercetările privind rețelele neuronale au fost motivate să găsească o modalitate de a instrui rețelele neuronale multistrat (adică rețele cu mai mult de unul sau două straturi ascunse) pentru a crește acuratețea acestora. Rețelele neuronale convoluționale (CNN) propuse în 1998 de către LeCun s-au dovedit a fi foarte eficient în învățarea unor caracteristici cu un nivel ridicat de abstractizare atunci când se utilizează arhitecturi mai profunde (adică cu multe straturi) și noi tehnici de instruire. În general, acest tip de rețea ierarhică are tipuri diferite de straturi, inclusiv straturi convoluționale, straturi de subeșantionare și straturi complet conectate. Convoluțiile sunt caracterizate de mărimea kernelului și de numărul de hărți generate. Kernel-ul este deplasat peste regiunea validă a imaginii de intrare care generează o hartă. Straturile de subeșantionare sunt utilizate pentru a mări invarianța poziției miezurilor prin reducerea mărimii hărții. Principalele tipuri de straturi de subeșantionare sunt gruparea maximă și ponderea medie. Straturile conectate pe CNN-uri sunt similare celor din rețelele neuronale în general, neuronii ei fiind pe deplin conectați cu stratul anterior (în general: stratul de convoluție, stratul de subeșantionare sau chiar un strat complet conectat). Procedura de învățare a CNN constă în găsirea celor mai bune “weights” ale sinapselor. Învățarea supravegheată poate fi efectuată utilizând o metodă de coborâre în (4
Andreea Bodnariugradient. Unul dintre principalele avantaje ale CNN este că intrarea modelelor este o imagine bruta, mai degrabă decât un set de caracteristici codate manual. Operația de convoluție este blocul constructiv al unei rețele neuronale convoluționale așa cum sugerează și numele.
Și filtrul va fi următoarea matrice:
( 5
Figura 1.3. Matrice 6×6
Figura 1.4. Filtru 3×3
Capitolul 1. Fundamentarea teoretică și documentarea bibliografică pentru tema propusă
Apoi, convoluția implică suprapunerea filtrului pe matricea imaginii, adăugând produsul valorilor din filtru și valorile din matricea imaginii, care va genera un strat convoluționat 4×4. Realizând acest lucru pe matricea imaginii din Figura 1.3. de mai sus și utilizând filtrul definit in Figura 1.4. mai sus, ar trebui să obțineți următoarea matrice rezultată:
Cum interpretăm stratul de ieșire din Figura 1.6.? Considerând că fiecare valoare indică culoarea sau cât de întunecat este un pixel (valoarea pozitivă înseamnă lumină, valoarea negativă înseamnă întuneric), atunci puteți interpreta stratul de ieșire ca: Prin urmare, se pare că acest filtru special este responsabil pentru detectarea marginilor verticale în imagini. (6
Figura 1.5. Operația de convoluție
Figura 1.6. Output – stratul de ieșire
Andreea Bodnariu
Cum alegem filtrul potrivit? Aceasta este o întrebare firească, deoarece există un număr infinit de filtre posibile pe care le putem aplica unei imagini. Se pare că valorile exacte din matricea de filtrare pot fi parametri instruiți în funcție de obiectivul modelului. Prin urmare, putem alege fie un filtru care a funcționat pentru o aplicație specifică, fie putem să folosim backpropagation pentru a determina cele mai bune valori pentru filtrul de care avem nevoie, care vor oferi cel mai bun rezultat. Straturile de “pooling” sunt o altă modalitate de a reduce dimensiunea interpretării imaginii pentru a accelera calculul și pentru a ajuta caracteristicile detectate să fie mai robuste. Mai jos în Figura 1.8. este un exemplu de “pooling” maxim:
După cum putem vedea, am ales un filtru 2×2 cu un pas de 2. Acesta este echivalent cu împărțirea intrării în 4 pătrate identice, luând apoi valoarea maximă a fiecărui pătrat și folosind rezultatul pentru ieșire (output). “Average pooling” poate fi de asemenea realizat, dar este o metodă mai puțin populară decât “max pooling”. ( 7
Figura 1.7. Output interpretat
Figura 1.8. Max “pooling” folosind un filtru 2×2
Capitolul 1. Fundamentarea teoretică și documentarea bibliografică pentru tema propusă Ne putem gândi la “pooling” ca la o cale de a preveni suprapunerea, deoarece eliminăm unele caracteristici din imaginea de intrare. Spre deosebire de straturile conectate complet, straturile convoluționale au un set mult mai mic de parametri de învățat. Acest lucru se datorează: •partajarea parametrilor •sparsitatea conexiunii Partajarea parametrilor se referă la faptul că un detector de caracteristici, cum ar fi un detector de margini verticale, va fi util în multe părți ale imaginii. Apoi, sparsitatea conexiunilor se referă la faptul că doar câteva caracteristici sunt legate de o anumită valoare de ieșire. Prin urmare, putem instrui pe seturi de date mai mici și reduce foarte mult numărul de parametri de învățat, făcând rețelele neuronale convoluționale un instrument excelent pentru sarcinile de vedere al computerului. Pe lângă metodele care utilizează arhitectura profundă, există multe altele în literatură. De exemplu, metodele de validare ar putea fi îmbunătățite pentru a lua în considerare situațiile în care subiectul din setul de testare nu se află în setul de antrenament (adică testul fără suprapunere de subiect), timpul de recunoaștere ar putea fi îmbunătățit pentru a efectua evaluări în timp real. Încercând să ținem cont de aceste limitări, în această lucrare, prezentăm o abordare profundă de învățare, folosind rețele neuronale convoluționale, capabile să atingă o rată de precizie de 67% în baza de date fer2013 pentru 7 expresii. Timpul de antrenament nu este foarte mic (aproximativ 140 de secunde pentru fiecare epocă), dar întregul sistem de recunoaștere a expresiei faciale poate funcționa în timp real în computerele standard, folosind imagini preluate cu camera web. În concluzie, asceastă lucrare reprezintă o metodă eficace pentru recunoașterea expresiilor faciale care funcționează atât în timp real, cât și atunci când folosim poze pentru testare. Datorită operațiilor de pre-procesare am reușit să reducem puțin timpul de antrenare al rețelei. De asemenea, am studiat acuratețea finală și timpul de antrenare pentru diferite rețele, folosind același set de date de antrenare. 1.2. Referințe la teme/subiecte similare Mai multe abordări de recunoaștere a expresiei facială au fost dezvoltate în decursul ultimelor decade, cu un progres tot mai mare în ceea ce privește performanța recunoașterii. O parte importantă a acestor progrese recente a fost realizată datorită apariției metodelor Deep Learning și mai specific cu rețelele neuronale convoluționale, care este una dintre abordările profunde de învățare automată. Aceste abordări au devenit fezabile datorită cantității mai mari de date disponibile în zilele noastre pentru a instrui metodele de învățare și progresele tehnologiei GPU. Seturile de date de antrenare cuprinzătoare sunt vitale pentru rețelele de instruire cu arhitecturi profunde, în timp ce tehnologiile GPU mai dezvoltate sunt esențiale pentru calculele numerice de înaltă performanță folosite pentru antrenare, precum și pentru reducerea timpului de antrenare a rețelei. Unele abordări recente pentru recunoașterea expresiei faciale s-au concentrat asupra mediilor necontrolate (de exemplu, atunci când persoana din imagine nu este orientată frontal, a imaginilor parțial suprapuse, a expresiilor spontane etc.). Această lucrare se va concentra pe (8
Andreea Bodnariumedii mai bine controlate și evaluări în cadrul diferitelor grupuri etnice, acesta din urmă fiind un scenariu mai dificil de recunoaștere a expresiei faciale. O altă abordare propusă folosește o unitate de acțiune (AU) inspirată Deep Networks (AUDN) pentru a explora o teorie psihologică conform căreia expresiile pot fi incluse în mai multe unități de acțiune a expresiei faciale. Autorii susțin că metoda este capabilă să învețe: •variația aspectului informativ local •o modalitate optimă de combinare a variațiilor locale •o reprezentare la nivel înalt pentru recunoașterea finală a expresiei Experimentele au fost efectuate în seturile de date CK + , MMI și SFEW. Ultimul set de date menționat conține imagini capturate din diverse filme sub scenarii necontrolate, reprezentând mediul înconjurător real. Experimentele au fost realizate folosind abordarea de validare între ele fără suprapunerea persoanelor în grupurile de antrenare și grupurile de testare, evaluând cele șase expresii de bază. Metoda realizează o corectitudine de 93,70% în baza de date CK +, 75,85% în baza de date MMI și 30,14% în baza de date SFEW.1.3. Un alt proiect în acest domeniu a propus o colecție de ansambluri de rețele neuronale amplificate pentru recunoașterea expresiilor faciale pentru diferite etnii. Modelul propus este compus din trei etape principale: în primul rând sunt pregătite un set de rețele neuronale binare, în al doilea rând predicțiile acestor rețele neuronale sunt combinate pentru a compune colecția ansamblului și, în final, aceste colecții sunt folosite pentru a detecta prezența unei expresii. Baza de date a expresiilor multiculturale a fost creată de autori cu imagini din trei baze de date diferite, care conține imagini de la subiecți japonezi (JAFFE), taiwanezi (TFEID), caucazieni (RaFD) și marocani. Autorii au raportat rezultatul recunoașterii a 5 expresii de bază (mânie, fericit, trist, surpriză și frică), folosind două abordări experimentale diferite. În primul rând, ei au pregătit și evaluat sistemul în baza de date multiculturală cu o acuratețe de 93,75%. Al doilea experiment a fost efectuat pentru a evalua metoda propusă într-un mediu mai puțin controlat. Metoda a fost instruită cu două baze de date (TFEID și RaFD) și evaluată în baza de date JAFFE, obținând o precizie de 48,67%. O altă abordare a fost un studiu folosind modelele binare locale (LBP) pentru a extrage caracteristicile. Acestea au combinat și au comparat tehnici de învățare automată a mașinilor, cum ar fi potrivirea șabloanelor, Vector Machine Support (SVM), Analiza liniară de discriminare și programarea liniară pentru recunoașterea expresiilor faciale. Autorii au realizat, de asemenea, un studiu pentru a analiza impactul soluției imaginilor în rezultatul acurateței și au concluzionat că metodele bazate pe caracteristici geometrice nu tratează foarte bine imaginile cu rezoluție redusă, în timp ce cele bazate pe aspect, cum ar fi Gabor Wavelets și LBP, sunt nu atât de sensibile la rezoluția imaginii. Cel mai bun rezultat obținut în activitatea lor a fost o precizie de 95,1% folosind SVM și LBP în baza de date CK +. Folosind o validare a bazelor de date încrucișate (formare cu CK + și testarea cu JAFFE) pentru a evalua sistemul propus într-un scenariu mai puțin controlat, autorii au obținut o precizie de 41,3%. Imaginile au fost mai întâi tăiate folosind pozițiile ochilor. Setarea experimentală utilizată a fost o schemă de validare încrucișată de 10 ori fără suprapunerea subiectului. Formarea și timpul de recunoaștere nu au fost menționate de către autori. Un sistem de recunoaștere a expresiei feței video a fost de asemenea propus. Autorii au dezvoltat o rețea neuronală convoluțională 3D, având o secvență de imagini (de la expresia neutră până la cea finală) folosind 5 cadre succesive ca intrări 3D. Prin urmare, intrarea CNN este H * W * 5 (H, înălțimea imaginii și respectiv W, lățimea, iar 5 este numărul de cadre). ( 9
Capitolul 1. Fundamentarea teoretică și documentarea bibliografică pentru tema propusăAutorii susțin că metoda 3D CNN se poate ocupa de anumite grade de schimbare și de deformare în varianță. Cu această abordare, ei au obținut o precizie de 95%, dar metoda se bazează pe o secvență care conține mișcarea completă de la neutru la expresie. Experimentele au fost efectuate cu 10 persoane numai pe un set de date neobișnuit. Perioadele de pregătire și de recunoaștere nu au fost menționate de către autori. O altă abordare bazată pe video, a folosit un cadru spațial-temporal bazat pe histograma gradienților și a fluxului optic. Metoda cuprinde trei faze: pre-procesare, extracție și clasificare. În faza de pre-procesare, a fost efectuată detectarea reperelor facială și a fost efectuată o aliniere a feței (pentru a reduce variațiile în poziția capului). În faza de extracție a caracteristicilor a fost folosit un cadru care integrează informațiile dinamice extrase din variația formei feței cauzate de expresii. În ultima fază, a fost utilizată clasificarea, un clasificator SVM cu un nucleu RBF. Experimentele au fost efectuate folosind bazele de date CK + și MMI. Precizia realizată de autori în baza de date CK + pentru șapte expresii (nervos, dezgustat, speriat, fericit, trist, surprins, neutru) a fost de 83,7%, iar în baza de date MMI a fost de 74,3%. Timpul de antrenament nu a fost menționat, în timp ce timpul de recunoaștere a fost de aproximativ 350ms pentru fiecare imagine în baza de date CK + și 520ms în baza de date MMI. 1.3. Rezultate așteptate În final, dorim să obținem o aplicație funcțională care să poată prezice emoțiile din imagini cu o acuratețe cât mai mare. Acest fapt este determinat de setul de date de antrenare pe care îl folosim. Cu cât avem mai multe imagini pentru fiecare emoție, cu atât rețeaua noastră va prezice mai bine rezultatul. De asemenea sunt foarte importanți și parametrii rețelei, numărul de straturi ascunse etc. Pentru această lucrare folosim setul de date fer2013, care a fost publicat în cadrul Conferinței Internaționale de Învățare Automată (ICML) acum 5 ani, pentru a recunoaște expresia feței. Acest set de date constă în 35.887 de imagini în nuanțe de gri, de dimensiuni 48×48 pixeli, cu emoții diferite – 7 emoții, toate etichetate. Emoțiile etichetate în setul de date sunt: •0: 4593 images- Angry (nervos) •1: 547 images- Disgust (dezgustat) •2: 5121 images- Fear (speriat) •3: 8989 images- Happy (fericit) •4: 6077 images- Sad (trist) •5: 4002 images- Surprise (surprins) •6: 6198 images- Neutral (neutru) În final, am obținut o acuratețe de aproximativ 67%. Observăm că rezultatele obținute depind foarte mult de imagine și de calitatea acesteia. Alți factori precum luminozitatea sau felul în care este orientată fața persoanei din imagine sunt de asemea importanți. În continuare, putem vedea o parte din rezultatele obținute: (10
Andreea Bodnariu
( 11
Figura 1.3.1. Emoția “angry” detectată
Figura 1.3.2. Emoția “angry” nedetectată
Figura 1.3.3. Emoția “happy” detectată
Capitolul 1. Fundamentarea teoretică și documentarea bibliografică pentru tema propusă În Figura 1.3.1. observăm că emoția “angry” (nervos) a fost detectată, întrucât imaginea este clară, persoana din imagine are fața orientată frontal și nu exista alte elemente din exterior care să afecteze negativ testarea imaginii. În Figura 1.3.2. programul nu a reușit să detecteze fața persoanei din imagine, datorită faptului ca imaginea nu este foarte clara din cauza aburilor care “ies” din urechile acelei persoane. De asemenea, barba aduce dificultăți în detectarea gurii. În Figura 1.3.3. atât fața persoanei din imagine, cât și emoția ei (“happy” – fericit) au fost detectate cu succes, datorită faptului că imaginea este foarte clară. În momentul în care dorim să testăm rețeaua live, pe un video cu imagini preluate de la camera web, trebuie să ne asigurăm că atât lumina cât și alți factori din mediu nu afectează detecția feței. De asemenea, trebuie să așteptăm câteva secunde într-o anumită poziție pentru ca programul să poată detecta corect atât fața, cât și emoția pe care o afișăm.
(12
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Recunoașterea emoțiilor folosind rețele neuronale convoluționale LUCRARE DE DIPLOMĂ [627335] (ID: 627335)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
