Algoritm DE Detectie A Directiei Privirii
ALGORITM DE DETECTIE A DIRECTIEI PRIVIRII
Anghel Claudia
Badea Mihai-Sorin
Zurini Corrado
TAID
State of the art
Gaze – Tracking este procesul prin care se identifica punctul spre care cineva priveste sau identificarea pozitiei irisului relativa la pozitia capului.
Aplicatii ale Gaze-Tracking:
Automotive
Jocuri video
Citirea notelor muzicale in timpul unui concert
Viola-Jones
Detectorul de obiecte Viola-Jones este prima metoda de detectie in timp real a obiectelor si a fost propusa in 2001 de catre Paul Viola si Michael Jones.Desi aceasta metoda poate fi antrenata sa gaseasca o gama larga de obiecte, scopul sau primar a fost de a detecta fete.
Problema care trebuie rezolvata este aceea de a detecta (nu recunoaste) fete.Practic scopul detectorului este de a imparti in 2 clase (fete si non-fete) obiectele dintr-o imagine.
Avantajele algoritmului Viola-Jones sunt:
Robustete – rata mare de detectie si rata de fals-pozitive foarte mica;
Lucreaza in timp real – Pentru o aplicatie practica trebuie ca cel putin 2 cadre sa fie procesate intr-o secunda;
Calcul si selectie eficienta de caracteristici(features);
Este invariant la scala si la locatie;
In loc sa scalam imaginea la o alta dimensiune, se scaleaza caracteristicile(features).
Dezavantajele algoritmului Viola-Jones sunt:
Detectorul e cel mai efficient doar pe poze in care apar fete frontale
Sensibil la conditiile de iluminare
Putem obtine mai multe detectii ale aceleiasi fete, din cauza suprapunerii de testare ale mai multor zone.
Algoritmul are 4 stagii:
Selectie de caracteristici Haar
Se creaza imaginea integrala
Antrenarea Adaboost
Clasificare in cascada
Retele neuronale supervizate
Învătarea supervizată este una dintre categoriile principale de probleme ale învătării automate, iar scopul ei este acela de a deduce o functie din datele de antrenament pe care le primeste. Aceste date de antrenament sunt o multime de perechi, fiecare pereche fiind compusă dintr-un obiect de intrare (de obicei un vector) si valoarea de iesire dorită. Un algoritm de învătare supervizată analizează asadar datele de antrenament pe care le primeste si construieste pe baza lor functia ce va fi folosită ulterior pentru a clasifica noi exemple.Scenariul optim al rezolvării unei probleme de acest tip va permite algoritmului dezvoltat să generalizeze de la datele de antrenament până la situatii cu care nu s-a mai confruntat cu rezultate satisfăcătoare.
Invățarea este supervizată în sensul că setul de exemple este dat împreună cu clasificarea lor corectă. Aceste instanțe rezolvate se numesc instanțe de antrenament. Formal, setul de instanțe de antrenament este o mulțime de perechi atribut-valoare (x,f(x)), unde x este instanța iar f(x) clasa căreia îi aparține instanța respectivă.
Scopul învățării este construirea unei funcții-șablon care să clasifice corect instanțele exemplu, iar pentru un x pentru care nu se cunoaște f(x) să propună o aproximare cât mai corectă a valorii f(x).
Abordari si algoritmi:
retele neuronale artificiale
statistica Bayesiana
arbori de decizie
support vector machines
Aplicatii:
bioinformatica
recunoasterea scrisului de mana
recunoasterea obiectului in computer vision
detectarea spamurilor
recunoasterea tiparelor ( Pattern Recognition) -recunoasterea vorbirii
Descriere algoritm
Scopul algoritmului de fata este de a detecta directia in care priveste un individ, cu aplicabilitate in mai multe domenii, asa cum s-a descris la subcapitolul anterior.
Algoritmul are ca inspiratie o varianta modificata a algoritmului mentionat in referinta bibliografica [1]. Spre deosebire de algoritmul propus in [1], noi am luat in considerare si sclera ochiului (relevanta acesteia este data de asemanarea cazurilor privire inainte/ privire in jos), nu am folosit transformate Hough si am decis sa folosim retele neuronale in loc de SVM.
Pentru implementarea algoritmului am folosit Computer Vision System Toolbox din cadrul mediului de dezvoltare Matlab. S-a utilizat algoritmul de detectie Viola-Jones, in urma caruia am obtinut o detectie de perechi de ochi, din care am pastrat-o pe cea cu chenarul cel mai mare (in cazul mai multor detectii pentru aceeasi imagine, ca in figura 1).
Fig.1 Detectie multipla
Urmatorul pas a fost detectia pozitiei pupilei din cadrul chenarului de ochi (ingustat cu 50%, asa cum se poate observa in imaginea din coltul din dreapta sus din figura 2). Pentru a segmenta pupila am determinat un prag pe canalul R, folosind histograma cumulativa. Conditia ca un pixel sa fie clasificat ca fiind parte a pupilei este ca valoarea acestuia sa fie in cele mai joase 5% din valori de pe canalul R.
De asemenea, am mai efectuat o segmentare a sclerei pentru a obtine pozitia relativa a pupilei in raport cu pozitia sclerei. Conditiile pentru segmentare aplicate au fost date tot de histograma cumulativa. Ca un pixel sa fie clasificat ca facand parte din sclera, acesta trebuie sa aiba valorile de pe toate cele trei canale in cele mai inalte 20% din valori.
In figura 2 pot fi vizualizate etapele ce au condus la obtinerea unui vector de trasaturi pentru a fi utilizat mai departe in antrenarea unei retele neuronale supervizate. Cu rosu sunt reprezentati pixelii corespunzatori pupilei, in timp ce pixelii care respecta conditiile de sclera sunt ilustrati cu verde.
In cazul in care sclera nu poate fi detectata (atunci cand subiectul priveste in jos), algoritmul este fortat sa indice un punct apropiat de pupila, anume la doua linii deasupra si doua coloane in stanga. Pozele care nu contin sclera (sau daca sclera este prea umbrita de pleoape) au ca valori cele mai ridicate zona de piele. Algoritmul considera ca are expus un astfel de caz atunci cand zona detectata se intinde pana in marginile imaginii.
Dupa obtinerea centroizilor pentru sclera si pupila se obtine vectorul de trasaturi astfel:
[linePupil/height, lineSclera/height, colPupil/width, colSclera/width]
LinePupil si colPupil reprezinta coordonatele pupilei, lineSclera si colSclera reprezinta coordonatele sclerei, iar height si width reprezinta inaltimea si latimea chenarului de ochi.
Fig.2 Pasii efectuati pentru obtinerea vectorului de trasaturi
In continuare, am apelat la toolboxul pentru crearea de retele neuronale, nprtool, oferindu-i ca intrare o matrice de 4 linii si 142 coloane, fiecare coloana reprezentand vectorul de trasaturi specific fiecarei poze. Am ales sa realizam recunoasterea intre cinci tipuri diferite ale directiei privirii: inainte, sus, jos, dreapta, stanga. In consecinta, vom avea cinci iesiri. Se va da retelei neuronale o matrice de etichete, in care pe fiecare coloana se va afla un vector de cinci elemente, patru egale cu zero, si unul singur element de valoare 1 pe pozitie corespunzatoare directiei alese. Numarul de straturi intermediare ales este egal cu 11, ca in schema de mai jos:
Fig.3 Schema retelei neuronale
De asemenea, mai este de mentionat faptul ca din totalul de 102 imagini, 70% au fost folosite pentru antrenare, 15% pentru validare si 15% pentru testare.
In figura 4 pot fi observate matricile de confuzie:
Observatii, rezultate si concluzii
In continuare am decis sa construim un nou set de poze pentru o testare in alte conditii. Pozele din lotul de antrenament au fost facute in aceleasi conditii favorabile. Setul nou contine poze cu 4 subiecti in alte conditii de iluminare fata de cele din perioada antrenarii retelei.
Rezultatele au fost mai mult decat satisfacatoare cu o rata de detectie corecta de 86%, cele mai multe erori fiind in cazul privirii in jos.
Este de mentionat faptul ca aceste rezultate se datoreaza si conditiilor restrictive impuse de la inceputul elaborarii algoritmului. In toate imaginile, subiectii aveau fata indreptata
catre camera si nu sunt luate in considerare decat 5 directii de privire.
Bibliografie
[1] – Moving the Mouse Pointer Using Eye Gazing – Ibraheem Frieslaar, disponibil la http://www.cs.uwc.ac.za/~ifrieslaar/Documentaion.pdf
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: Algoritm DE Detectie A Directiei Privirii (ID: 108980)
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.
