Detecția stării de ebrietate utilizând tehnici avansate de analiză a [617766]

2019 Universitatea “Politehnica” din București
Facultatea de Electronică, Telecomunicații și Tehnologia Informației

Detecția stării de ebrietate utilizând tehnici avansate de analiză a
imaginilor faciale în spectrul infraroșu termal

Proiect de dipl omă
prezentat ca cerință parțială pentru obținerea titlului de Inginer în domeniul
Electronic ă și telecomunicații ,
programul de studii Electronică Aplicată ( ETC – ELA)

Profesor coordonator: Absolvent: [anonimizat]. Victor NEAGOE Ana-Maria ILIESCU

2

3

4

5

Declarație de onestitate academică

Prin prezenta declar că lucrarea cu titlul “ Detecția stării de ebrietate utilizând tehnici
avansate de analiză a imaginilor faciale în spectrul infraroșu termal ”, prezentată în cadrul
Facultății de Electronică, Telecomunicații și Tehnologia Informației a Universității
“Polit ehnica” din București ca cerință parțială pentru obținerea titlului de Inginer în
domeniul Electronică și Telecomunicații , programul de studii Electronică Aplicată (ETC
– ELA) este scrisă de mine și nu a mai fost prezentată niciodată la o facultate sau in stituție
de învățămînt superior din țară sau străinătate.

Declar că toate sursele utilizate, inclusiv cele de pe Internet, sunt indicate în lucrare,
ca referințe bibliografice. Fragmentele de text din alte surse, reproduse exact, chiar și în
traducere pr oprie din altă limbă, sunt scrise între ghilimele și fac referință la sursă.
Reformularea în cuvinte proprii a textelor scrise de către alți autori face referință la sursă.
Înțeleg că plagiatul constituie infracțiune și se sancționează conform legilor în v igoare.

Declar că toate rezultatele simulărilor, experimentelor și măsurătorilor pe care le
prezint ca fiind făcute de mine, precum și metodele prin care au fost obținute, sunt reale
și provin din respectivele simulări, experimente și măsurători. Înțeleg că falsificarea
datelor și rezultatelor constituie fraudă și se sancționează conform regulamentelor în
vigoare.

București, 24.06.2019
Absolvent: [anonimizat]-Maria ILIESCU

_________________________
(semnătura în original)

6

7
Cuprins

Listă de figuri ………………………….. ………………………….. ………………………….. ………………………….. …………… 9
Listă de tabele ………………………….. ………………………….. ………………………….. ………………………….. …………. 11
Listă acronime ………………………….. ………………………….. ………………………….. ………………………….. ………… 13
Introducere ………………………….. ………………………….. ………………………….. ………………………….. ……………… 15
Motivația lucrării ………………………….. ………………………….. ………………………….. ………………………….. …………… 15
Aplicații al e termografiei în infraroșu ………………………….. ………………………….. ………………………….. …………… 16
Obiectivele lucrării ………………………….. ………………………….. ………………………….. ………………………….. ………… 16
Capitolul 1 – Imagini în spectrul infraroșu ………………………….. ………………………….. ………………………….. . 17
1.1 Biometria ………………………….. ………………………….. ………………………….. ………………………….. ………………… 17
1.2 Spectrul electromagnetic ………………………….. ………………………….. ………………………….. ……………………….. 17
1.2.1 Spectrul vizibil ………………………….. ………………………….. ………………………….. ………………………….. …… 18
1.2.2 Infraroșu ………………………….. ………………………….. ………………………….. ………………………….. …………… 18
1.3 Imaginile termale ………………………….. ………………………….. ………………………….. ………………………….. ……… 19
1.3.1 Aparate de termoviziune ………………………….. ………………………….. ………………………….. ………………….. 20
1.3.2 Avantaje și dezavantaje pentru imagistica termică ………………………….. ………………………….. …………… 21
1.3.3 Aplicații bazate pe imagini termale ………………………….. ………………………….. ………………………….. …… 22
Capitolul 2 – Metode de identificare a stării de ebrietate ………………………….. ………………………….. ……….. 25
2.1 Selecția caractersiticilor ………………………….. ………………………….. ………………………….. …………………………. 25
2.1.1 Analiza Componentelor Principale ………………………….. ………………………….. ………………………….. ……. 25
2.2 Clasificatorul ………………………….. ………………………….. ………………………….. ………………………….. …………… 26
2.2.1 Introducere ………………………….. ………………………….. ………………………….. ………………………….. ………… 26
2.2.2 Mașina cu vectori suport ………………………….. ………………………….. ………………………….. ………………….. 27
2.2.3 SVM liniar ………………………….. ………………………….. ………………………….. ………………………….. ………… 27
2.2.4 SVM neliniar ………………………….. ………………………….. ………………………….. ………………………….. …….. 29
2.2.4 SVM neliniar implementat cu m etoda nucleului ………………………….. ………………………….. ……………… 30
Capitolul 3 – Descrierea algoritmului implementat pentru detecția stării de ebrietate …………………………. 33
3.1 Descrierea mediului de dezvolare ………………………….. ………………………….. ………………………….. ……………. 33
3.2 Descrierea bazei de date ………………………….. ………………………….. ………………………….. ………………………… 34
3.3 Procesarea de imagini ………………………….. ………………………….. ………………………….. ………………………….. .. 35
3.4 Clasificarea ………………………….. ………………………….. ………………………….. ………………………….. ……………… 36
Capitolul 4 – Descrierea programului ………………………….. ………………………….. ………………………….. …….. 39

8
Capitolul 5 – Rezultate expermientale ………………………….. ………………………….. ………………………….. …….. 41
5.1 Analiza dependentă de subiect ………………………….. ………………………….. ………………………….. ……………….. 42
5.2 Analiza independentă de subiect ………………………….. ………………………….. ………………………….. …………….. 48
Capitolul 6 – Evaluarea performanțelor experimentale ………………………….. ………………………….. ………….. 51
6.1 Evaluarea performanțelor pentru analiza dependentă de subiect ………………………….. ………………………….. . 52
6.2 Evaluarea performanțelor pentru analiza independentă de sub iect ………………………….. ……………………….. 58
Concluzii ………………………….. ………………………….. ………………………….. ………………………….. ………………… 59
Referințe ………………………….. ………………………….. ………………………….. ………………………….. ………………… 61
Anexe ………………………….. ………………………….. ………………………….. ………………………….. …………………….. 63
Anexa 1 – Extragerea imaginilor ………………………….. ………………………….. ………………………….. ………………….. 63
Anexa 2 – Extragerea componentelor principale (PCA) ………………………….. ………………………….. ………………. 65
Anexa 3 – Generarea imaginilor ………………………….. ………………………….. ………………………….. ………………….. 67
Anexa 4 – Obținerea rezultatelor și aplicarea clasificatorului SVM ………………………….. ………………………….. . 71

9
Listă de figuri

Figura 1.5 – Imaginea termală cu hartă curcubeu
Figura 1.6 – Imaginea termală cu hartă albastră
Figura 1.7 – Camer ă termală fără răcire AXIS Q1921
Figura 1.8 – Cameră termală cu răcire SWIR
Figura 1.9 – Medică – detecția temperaturii
Figura 1.10 – Contact imperfect
Figura 1.11 – Construcții
Figura 1.12 – Anvelopă
Figura 1.13 – Testare plăci
Figura 1.14 – Pisică
Figura 2.1 – Diagrama algoritmului PCA
Figura 2.2 – SVM pentru date liniar separabile
Figura 2.3 – SVM pentru date neseparabile liniar
Figura 2.4 – Exemplu de SVM aplicat unui set de date cu două dimensiuni. Vectorii suport sunt indicați
prin cerculețe v erzi
Figura 2.5 – Exemplu de spațiu neseparabil liniar
Figura 2.6 – Limita de decizie este dată de linia care separă cele doua clase
Figura 3.1 – Emblema mediului de dezvoltare
Figura 3.2 – Organizarea fișierelor
Figura 3.3 – Exemple de imagini din baza d e date la momentul inițial
Figura 3.4 – Dimensiunea vectorului după redimensionare
Figura 3.5 – Imaginile din setul de antrenare după normalizare
Figura 3.6 – Funcție kernel de tip liniar
Figura 3.7 – Funcție kernel de tip polinomial grad =1
Figura 3.8 – Funcție kernel de tip polinomial grad =2

10
Figura 3.9 – Funcție kernel de tip RBF
Figura 4.1 – Etapele pentru clasificare
Figura 5.1 – Scorurile genereale pentru kernel liniar
Figura 5.2 – Scorurile genereale pentru kernel polinomial
Figura 5.3 – Scoruril e genereale pentru kernel RBF
Figura 5.4 – Timpul de execuție și scorul de recunoaștere pentru cele 3 nuclee la minutul 20
Figura 5.5 – Timpul de execuție și scorul de recunoaștere pentru cele 2 tipuri de analiză la minutul 20
Figura 6.1 – Precizia genera lă pentru achiziția după 20 de minute (independent)

11
Listă de tabele

Tabel 5.1 – Precizia clasificării pentru kernel liniar după 20 de minute
Tabel 5.2 – Precizia clasificării pentru kernel liniar după 50 de minute
Tabel 5.3 – Preciz ia clasificării pentru kernel liniar după 80 de minute
Tabel 5.4 – Precizia clasificării pentru kernel polinomial după 20 de minute
Tabel 5.5 – Precizia clasificării pentru kernel polinomial după 50 de minute
Tabel 5.6 – Precizia clasificării pentru kernel polinomial după 80 de minute
Tabel 5.7 – Precizia clasificării pentru kernel RBF după 20 de minute
Tabel 5.8 – Precizia clasificării pentru kernel RBF după 50 de minute
Tabel 5.9 – Precizia clasificării pentru kernel RBF după 80 de minute
Tabel 5.10 – Precizia clasificării pentru kernel polinomial cu grad 3 după 20 de minute
Tabel 6.1 – Indicatorii de performanță pentru achiziția după 20 de minute (nucelu liniar)
Tabel 6.2 – Indicatorii de performanță pentru achiziția după 50 de minute (nucelu liniar)
Tabe l 6.3 – Indicatorii de performanță pentru achiziția după 80 de minute (nucelu liniar)
Tabel 6.4 – Indicatorii de performanță pentru achiziția după 20 de minute (nucelu polinomail)
Tabel 6.5 – Indicatorii de performanță pentru achiziția după 50 de minute (n ucelu polinomail)
Tabel 6.6 – Indicatorii de performanță pentru achiziția după 80 de minute (nucelu polinomail)
Tabel 6.7 – Indicatorii de performanță pentru achiziția după 20 de minute (nucelu RBF)
Tabel 6.8 – Indicatorii de performanță pentru achiziția d upă 50 de minute (nucelu RBF)
Tabel 6.9 – Indicatorii de performanță pentru achiziția după 80 de minute (nucelu RBF)
Tabel 6.10 – Indicatorii de performanță pentru achiziția după 20 de minute
Tabel 6.11 – Indicatorii de performanță pentru achiziția după 50 de minute
Tabel 6.12 – Indicatorii de performanță pentru achiziția după 80 de minute
Tabel 6.13 Indicatorii de performanță pentru achiziția după 20 de minute (independent)

12

13
Listă acronime

F
FAR – False Alarm Rate (Rata de alarme false)
FIR – Lungime de undă foarte lungă
FN – False Negatives
FP – False Positives

I
IR – Infraroșu

L
LWIR – Lungime de undă lungă

M
MAR – Rata de alarme ratate
MLP – Perceptronul Multistrat
MWIR – Lungime de undă medie

N
NIR – Infraroșu Apropiat

O
OA – Precizia Generală
ONU – Organizația Națiunilor Unite

14

P
PCA – Analiza Componentelor Principale

R
RAM – Random Access Memory
RAW – Raw Image Format
RBF – Radial Basis Function (Funcții cu bază radial ă)
ROGVAIV – Roșu, Oranj, Galben, Verde, Albastru, Indigo, Violet

S
SVM – Support Vector Machine (Mașină cu vectori suport )
SWIR – Lungime de undă scurtă

T
TIF – Tagged Image File Format
TIR – Termografia în Infraroșu
TN – True Negatives
TP – True Positives

U
UE – Uniunea Europeană

15

Introducere

Motivația lucrării

Accidentele rutiere sunt din ce în ce mai frecvente, iar mortalitatea este cel mai des asociată cu
acestea . Având în vedere că, rata mortalității se extinde într -un ritm alarmant, devine necesară gasirea
unei soluții. De fapt, accidentele rutiere reprezintă o adevărată problemă în prezent. Totodată, numărul
celor produse pe fondul consumului de alcool este în continuă creștere [1].
În Europa, accidentele rutiere reprezintă una din p rincipalele cauze ale mortalității pentru
persoanele cu vârste cuprinse între 15 și 29 de ani, iar conducerea sub influența alcoolului este un factor
de risc major [2].
Raportul privind siguranța rutieră în 2017 întocmit de ONU (Organizația Națiunilor Unit e) oferă
procentaje relevante din 182 de țări, adică pentru majoritatea populției lumii. Astfel, numărul deceselor
rămâne ridicat. În UE, există țări care au un scor bun în ceea ce privește siguranța precum: Olanda, Suedia
și Marea Britanie. Acest lucru se datorează si faptului că, țările respective au legi pentru a spori siguranța
rutieră, în ceea ce privește anumiți factori, printre care unul dintre cei mai importanți: conducerea sub
influența alcoolului. Cu toate acestea, accidentele pe fondul consumului de alcool rămân o cauză majoră
de îngrijorare. În UE, aproximativ 1 din 4 accidente se petrect pe fondul consumului de alcool. Astfel, se
aproximează numărul persoanelor care își pierd viața la cel puțin 10.000, iar numărul lor tinde să crească
alarmant.
România se află printre țările care au cele mai slabe înregistrări pentru siguranța rutieră, iar
performanțele în acest domeniu nu tind să se îmbnătățească [3]. Din UE, României i se atribuie un
procentaj de 27,4% pentru bărbații care sunt implicați într -un accident rutier și 7,8% pentru femei [4].
Semnalul de alramă se datoreză tendinței de creștere a procentajelor. Ritmul în care acestea cresc
este alarmant nu doar pentru UE, ci la nivel global. Astfel, cercetătorii preconizează cifre ridicate pentru
rata de mortalitate, în cazul în care nu se vor aplica măsuri. Din nefericire, până în 2030, numărul
deceselor poate crește până la 2.4 milioane [5].
Acestea fiind spuse, conform cercetării descrise, lucrarea de licență prezintă motivația de a
dezvolta aceast ă problemă și de a găsi soluții cât mai concludente, utilizând procesarea imaginilor faciale
în domeniul infraroșu termal și pe care le voi prezenta în continuare în detaliu.

16
Aplicații ale termografiei în infraroșu

În general, termografia se utilizea ză cu scopul de a monitoriza regimurile tehnice și procesele
tehnologice. Însă, în ultimii ani, termografia câștigă o importanță deosebită pentru diverse aplicații care
tind să revoluționeze acest concept.
Termografia în infraroșu (TIR) permite obținerea imaginii termice. Mai mult decât atât, permite
evidențiere temeraturii și a diferențelor de temperatură de la distanță și fără contact direct. Avantajul
utilizării provine din faptul că, metoda de investigație este nedistructivă, nu se intervine și nu se p oate
influența starea procesului care se investighează [6].
Exemple de posibile aplicații ale termografiei în infraroșu:
• Domeniul medical
• Cercetare
• Securitate și supraveghere
• Scanarea termică a proceselor tehnologice
Este cunoscut faptul că, alcoolul provo acă o schimbare a temperamentului, personalității
consumatorilor, dar care dispare concomitent cu reabsorbirea acestuia din sânge. Însă, este mai puțin știut
că, în cazul consumului de alcool frecvent, presiunea în venele din zona feței crește [6]. Pe de a ltă parte,
în momentul când o personă consumă alcool, este posibil să capte o altă culoare în obraji, ceea ce poate
sugera că tensiunea arteriară este ridicată. Mai mult decât atât, înroșirea feței după consuml băuturilor
alcoolice poate inidca o hipertens iune arterială. Este adevărat și că, nu toate persoanele au această reacție
și nu se îmbujorează.

Obiectivele lucrării

Scopul proiectului este de a realiza un model original pentru diagnosticarea subiecților care se
află în stare de ebrietate. Abordare a problemei se realizează prin analiza imaginilor faciale în spectrul
termal pentru difeiți subiecți. Scorurile obținute pentru clasificare, în clasa subiecților sub influența
alcoolului sau în cea a celor care nu se află într -o stare de ebrietate, vor fi utilizate pentru a putea compara
datele, gradul de adevăr și situațiile obținute prin procesarea imaginilor în software -ul Matlab.
Aplicația realizată ar trebui să:
• identifice starea de ebrietate dependentă de subiect
• identifice starea de ebrietate indep endentă de subiect
• evalueze indicatorii de performanță: OA( Overall Accuracy), MAR(Miss Alarm Rate),
FAR(False Alarm Rate)

17
Capitolul 1 – Imagini în spectrul infraroșu

1.1 Biometria

Datorită faptului că trăim într -o eră a vitezei, iar tehnologia ne întrece orice așteptare, biometria
s-a dezvoltat într -un ritm alarmant. Biometria este o ramură a bilogiei ce cuprinde metode de identificare
unică a unei persoane pe baza uneia sau mai multor caracteristici fizice și comportamnetale.
În toată lumea, s -au dezvolt at proiecte ambițioase ce au în centrul lor tehnologii biometrice și
vizează: accesul controlat în anumite clădiri, acte de identitate biometrice (pașaport, carte de identitate,
permis de conducere). Însă, una dintre cele mai importante aplicații este teno logia de recunoștere facială
folosind imagini din domeniul termal și / sau vizibil [7].

1.2 Spectrul electromagnetic

Spectrul electromagnetic reprezintă gama tuturor radiațiilor electromagnetice, de la radiații cu
lungime de undă scurtă (radiații cosmice) și până la cele cu lunime mare (undele radio).

Figura 1. 1 Spectrul Electromagnetic [8]

În general, undele electromagnetice pot fi clasificate în funcție de lungimea de undă și de
frecvență. În ordine crescătoare după lungimea de undă și descrescătoare du pă frecvență, radiațiile sunt:
radiații gama γ, raze X, ultraviolete, spectrul vizibil, infraroșu (IR), microunde, unde radio.

18
1.2.1 Spectrul vizibil

Zona vizibilă din spectrul electromagnetic are o întindere restrânsă și este domeniul ce poate fi
vizibil pentru ochiul uman fără a fi nevoie de alte mijloace. În aceast interval, radiațiile vizibile se numesc
lumină, iar lungimile de undă sunt în intervalul 380 -750 nm.
Spectrul vizibil este împărțit în șapte sectoare de culoare (ROGVAIV) : roșu, oranj, galbe n, verde,
albastru, indigo, violet. Culorile sunt cele ale curcubeului și sunt aranjate descrescător în funcție de
lungimea de undă. Însă, trebuie menționat că între culori nu există o graniță stabilă, dar intervalul de
lungimi de undă în care se află fiec are culoare poate fi menționat aproximativ: 380 -424 nm (violet), 452 –
470 nm (albastru), 510 -560 nm (verde), 575 -590 nm (galben), 590 -650 nm (oranj), 610 -780 nm (roșu).
În schimb, dintre toate cele 7 culori, doar trei dintre ele (roșu, verde, indigo) sunt c ulori de bază și din
combinația lor se pot obține celelalte.

Figura 1.2 Spectrul vizibil [9]

1.2.2 Infraroșu

Radiațiile infraroșii este o radiație electromagentică, cu lungimi de undă situate între 0,74 – 1000
um și cu frecvențe cuprinse aproximati v în intervalul 1011 – 1015 Hz.
Regiunile din infraroșu sunt: infraroșu apropiat, lungime de undă scurtă, lungime de undă medie,
lungime de undă lungă, lungime de undă foarte lungă. Pentru fiecare dintre aceastea se acceptă abrevierea
în engleză: NIR , SWIR, MWIR, LWIR, FIR. Limitele ce despart regiunile nu sunt clare și diferă pentru
fiecare sistem divizat de o anumită autoritate.
În general, radiațiile infraroșii sunt utilizate în domeniul termografiei pentru a determina
temperatura corpurilor de la distanță. Camerele de termoviziune existente pe piață înregistrează radiația
cuprinsă aproximativ în intervalul: 900 -14000 nm.
În sistemul fotografic, înregistrările în infraroșu care se realizează cu senzori speciali sunt în
domeniul 3 -5 µm sau 8 -14 µm.

19
Datorită numeroaselor studii realizate pe acest subiect, s -a demonstrat că imaginile din spectrul
IR termal pot contribui la îmbunătățirea performaței de recunoaștere facială [10][11] . Spectrul ce conține
domeniul cu lungimi de unde medii și cu lungimi de unde mari este recomandat pentru detecți fețelor,
dar și pentru recunoașterea acestora [12].
Avantajul de care se bucură imaginile term ice este că senzorii măsoară energia pe care obiectele
o emit, ci nu energia reflectată. În schimb, există și dezavanta je, precum: condițiile de iluminare care pot
varia.

1.3 Imagini le termale

Imagi nile termale permit afișarea radiației termale. Acestea sunt des utilizate cu hartă de culoare
prin care se detectează modificările de temperatură. Operatorul este cel care anali zează harta de culoare
a imaginilor rezultate . Acestea se folosesc pentru a evidenția intensitatea pixelilor si pentru a putea avea
acces la o imagine mai clară și detaliată. Mai jos sunt prezentate exemple de imagini asupra cărora s -au
aplicat hărți de cu loare.

Figura 1.3 Imagine a termală originală [9]

Figura 1. 4 Imagine a termală cu hartă roșie [9]

20

Figura 1. 5 Imagine a termală cu hartă curcubeu [9]

Figura 1. 6 Imagine a termală cu hartă albastră [ 9]

1.3.1 Aparate de termoviziune

Pentru a putea măsu ra temperatura , termomentrele în infraroșu și camerele de termoviziune
lucrează în domeniul 8 -14 µm [8].
Un termomentru poate capta radiație IR care este emisă de un corp, prin intermediul unui senzor.
Aceasta este convertită într -o valoare de temperatură și se afisează pe ecran.
O cameră de termoviziune dispune de un senzor cu mai mulți pixeli și poate indica temperatura
de la suprafața corpului prin intemediul unei imagini termice, în nuanțele prezentate mai sus sau în altele.
Camerele termale pot fi cu răcire sau fără. Camerele cu răcire sunt special dedicate aplicațiilor
care necesită ca rezoluția imaginii termice să fie mare, au o frecvență de scalare mare și permit
utilizatorului să modifice numeroși parametrii. Camerele fără răcire sunt portabile în majotitatea
cazurilor, deci mai mici și mai ieftine. Au dezavantajul ca prezintă mai mult zgomot.

21

Figura 1. 7 Cameră termală fără răcire AXIS Q192 1 [13]

Figura 1. 8 Cameră termală cu răcire SWIR [14]

1.3.2 Avantaje și dezavantaje pentru imagis tica termică

Imagistica sau termografia termică este o metodă utilizată pentru obținerea unei imagini în raze
infraroșii și care pune în evidență distribuția c âmpurilor de temperatură. Realizarea acestor termograme
sunt foarte utile, de exemplu pentru: fi ințele cu sânge rece sunt mai vizibile, astfel pompierii le pot folosi
pentru detectarea vitimelor prin fum, detectarea unor supraîncălziri ale anumitor piese, cabluri, motoare
ce necesită eliminarea de urgență a acestora, verificarea izolației pentru clăd iri.

22
Imagistica termală nu se poate utiliza pentru detecția facială sau a identității unor persoane. Acest
lucru este un avantaj, pentru securitatea și siguranța subiecților. În schimb, poate reprezenta și un
dezavantaj major pentru că nu poate să identif ice o persoană.

1.3.3 Aplicații bazate pe imagini termale

Imagistica termală poate fi utilizată în mai multe domenii, iar beneficiile ei sunt exploatate din ce
în ce mai mult de cercetători și nu numai.
• Medicină: se pot detecta numereoase afecțiuni din zona articulațiilor și până la depistarea
cancerului.
• Instalții electrice: ajută la prevenirea incendiilor, evidențiază contactele imperfecte, nesimetriile
sau suprasarcina.
• Construcții: utilă pentru verificarea izolării, localizarea scurgerilor de aer, detec atrea
mucegaiului.
• Securitate: urmăriea unor persoane suspecte și analiza comportamentală.
• Autovehicule: permite o analiză comportamentală și ajută la realizarea unui control chiar în
timpul funcționării
• Industrie: testarea plăcilor și a componentelor
• Supravegherea animalelor

Figura 1. 9 Medică – detecția temperaturii [8] Figura 1. 10 Contact imperfect [8]

23

Figura 1. 11 Construcții [8]

Figura 1. 12 Anvelopă [8] Figura 1. 13 Testare plăci [8]

Figura 1. 14 Pisică [8]

24

25

Capitolul 2 – Metode de identificare a stării de ebrietate

2.1 Selecția caractersiticil or

2.1.1 Analiza Componentelor Principale

Analiza componentelor principale (Principal Component Analysis – PCA) este prima etapă
aplicată pentru selecția caracteristicilor, fiind o metodă des utilizată pentru extragerea trăsăturilor, dar și
pentru realiz area compresiei de date. PCA este considerată ca fiind o tehnică statistică ce reduce optim
dimensionalitatea pentru a minimiza eroarea pătratică și care permite reprezentarea datelor într -un spațiu
cu diemnsiuni mai puține. Așa cum am menționat, imaginea termală aparținea spațiului dimensional de
128×160 și dorim transformarea ei într -un vector aparținând unui spațiu << 20480 (128×160).
Un prim argument pentru care se dorește acest lucru este că, dacă s -ar folosi toate cele 20480 de
dimensiuni pentru a rec unoaște dacă subiectul se află sau nu într -o stare de ebrietate, ar îngreuna procesul
de antrenare al modelului. Mai degrabă, ar fi un dezavantaj pentru că, erorile ar crește considerabil, ținând
cont de faptul că trăsăturile de interes sunt asemănătoare ș i ne așteptăm ca vectorii să fie apropiați sau
chiar foarte apropiați.
Astfel că, după normalizarea imaginilor și aducerea acestora la o dimensiune considerată
standard, se pot aprecia ca fiind vectori unidimensionali ce conțin valorile pixelilor.

Algor itmul PCA, aplicat pentru a determina componentele princiaple, are următorii pași:
• Datele inițiale de forma 128×160 (în cazul de față) sunt încărcate
• Se calculează media pentru fiecare set de date:
𝑋𝑖 sunt vectori de intare n -dimensionali (i=1,2,…..L)
𝜇𝑥=1
𝐿∑ 𝑋𝑖𝐿
𝑖=1 (1)
• Media calculată anterior se scade din matricea datelor inițiale
• Se calculează matricea de covariație
∑𝑥=1
𝐿 ∑ (𝑋𝑖−𝜇𝑥))𝐿
𝑖=1 (𝑋𝑖+𝜇𝑥))𝑡 (2)

26
• Se determină valorile proprii (ale matricei ∑𝑥 ca soluții ale ecuației:

|∑𝑥−𝜆𝐼𝑛|=0 (3)
• Pentru fiecare valoare proprie 𝜆𝑖 se va determina vectorul propriu atașat
∑𝑥𝛼𝑗=𝜆𝑖𝛼𝑗 unde ‖𝛼𝑗‖=1 (4)
• Se va determina forma noilor vectori 𝑤𝑗
𝑤𝑗=(𝛼𝑗)𝑇𝑋𝑖 (5)
j=1,…. ..n
• Dintre vectorii obținuți mai sus se vor reține k componente principale

Figura 2. 1 Diagrama algoritmului PCA

Unul din avantajele PCA este concetrarea a unui număr cât mai mai mare de date în primele
componente princiapale. Componetele principale de ordin superior pot conține zgomot și astfel, se pot
elimina fără să se piardă informație.

2.2 Clasificatorul

2.2.1 Introducere

Clasificatorul are rolul de a identifica, dintr -un set de două sau ma multe clase diferite, clasa de
care va aparține un e lement necunoscut primit la intrare. Altfel spus, clasificatorul este un algortim care
învața metoda optimă de separare a datelor de la intrare, în clase.

27
În literatură întâlni mai multe tipuri de clasificatori, după cum se pot menționa:
• Clasificatorul ce lui mai apropiat vecin (Nearest Neighbour) – este un clasificator neparametric și
alocă, vectorul de intrare, clasei care oferă cel mai apropiat vecin de acesta.
• Rețele neuronale – sunt algoritmi de învățare supervizată, de exemplu Perceptronul Multistrat
(Multilayer Perceptron – MLP).
• Clasificatorul Euclidian sau Clasificatorul cu parametri – este un clasificator care calculează
media cea mai apropiată utilizând distanța euclidiană.
• SVM ( Support Vector Machine) – este un clasificator care are la bază se pararea planelor.

2.2.2 Mașina cu vectori suport

SVM este o tehnică performantă de clasificare introdusă în anii ’90 și este des utilizată datorită
flexibilității sale chiar și când se lucrează cu informații de dimensiuni mai mari , demonstrându -și astfel
eficiența.
Avantajele pe care le oferă:
• Obținerea unor rezultate bune utilizând seturi de date mari
• Raportul dintre timpul de execuție și datele rezultate este favorabil din punctul de vedere al unei
bune acuratețe
SVM este o metodă supervizată de clasi ficare, dar și de învățare. Aceasta este capabilă să
conceapă niște regului după care să clasifice date de intare noi cu cele învățare precedent.
Prin supervizată se înțelege că, metoda este capabilă să își formeze setul de regului din date ce au
fost eti chetate inițial. Astfel, este necesară furnizarea datelor etichetate pentru toate clasele în care am
dori sa se clasifice alte date de intrare necunoscute. Există și algoritmi care sunt capabili să grupeze
vectorid e intrare fără a se cunoaște din ce clasă face parte.
Datele de intare sunt împărțite în două seturi, unul pentru antrenare și unul pentru testare. Practic,
obiectivul pe care trebuie să îl îndeplinească SVM este de a concepe modelul ce are la bază datele din
setul de antrenare și a preciza clas ele de apartenență pentru datele din setul de testare.

2.2.3 SVM liniar

Modelul SVM liniar a fost primul apărut și s -a dezvoltat de la ideea că setul de date inițiale po ate
fi împărțit în două clase liniar separabile. Astfel, se poate spune că există c el puțin o soluție care satisface,
pentru tot lotul de antrenare, următoarele condiții:

28
{𝑦(𝑥𝑖)<0 ,𝑑𝑎𝑐ă 𝑡𝑖= −1
𝑦(𝑥𝑖)>0 ,𝑑𝑎𝑐ă 𝑡𝑖= 1 (6)

Problema de care se ocupă SVM este găsirea unui hiperplan optimal de se parare (𝐻0) a setului
de date. Obiectivul pe care și -l propune SVM este de a maximiza marginea, adică distanța celui mai
apropiat punct din prima clasă și distanța celui mai apropiat punct din a doua clasă să se maximizeze la
hiperplanul 𝐻0.

Figura 2. 2 SVM pentru date liniar separabile [ 15]

Unde hiperplanul 𝐻0 este caracterizat de ecuația y(x)=0 => w*x+b=0, unde w= norma la
hiperplan și 𝑏
‖𝑤‖ = distanța perpendiculară de la hiperplan la origine.
În figura 2.3.3, se ăpate observa că, pu nctele care aparțin celor două clase pot fi separate prin
definirea mai multor hiperplane, dar s -a ales și reprezentat doar 𝐻0. Acesta este cel care oferă distanța
maximă.
Notăm 𝐻1 și 𝐻2: hiperplane – limită cu proprietatea ca, nici un punct d in cele două clase de
antrenare nu se află între ele . În schimb, datele care se află pe aceste două hiperplane se numesc vectori
suport și sunt necesari pentru a putea defini hiperplanul 𝐻0, prin stabilirea mediei ecuațiilor pentru 𝐻1 și
𝐻2 și prin plasarea, la mijlocul distanței dinre ele, lui 𝐻0.
Distanța de la 𝐻1 la 𝐻0 este 1
‖𝑤‖ , iar distanța de la 𝐻2 la 𝐻0 este aceeași. Astfel, putem sesiza că
distanța de la 𝐻1 la 𝐻2 este 2
‖𝑤‖ . Pentru ca distanța să fie maximizată, atunci ‖𝑤‖ trebuie să fie minimă,

29
ceea ce este echivalent cu: arg 𝑚𝑖𝑛 𝑤,𝑏 1
2‖𝑤‖2 . Pentru a găsi o rezolvare, se poate folosi multiplicatorul
Lagrange [ 16].

2.2.4 SVM neliniar

Modelul SVM neliniar a fost dezvoltat în anul 19 92 și în acest caz, se poate admite posibilitatea
ca anumiți vectori din lotul de antrenare să fie clasificați greșit. Altfel spus, dacă vectorii pentru antrenare
nu sunt separabili printr -un hiperplan, fără eroare.

Figura 2.3 SVM pentru date neseparabi le liniar [ 15]

Figura 2. 4 Exemplu de SVM aplicat unui set de date cu două dimensiuni. Vectorii suport sunt indicați
prin cerculețe verzi [17]

30
Având în vedere că, se admite o clasificare greșită a unor elemente din lotul de antrenare, se poate
admite si existența unor erori în clasificare: 𝜉𝑖. Altfel spus, pentru fiecare vector se introduce o variabilă
𝜉𝑖, numită și variabilă de decalaj (engl. slack variables). În cazul în care, vectorul are variabila nulă,
atunci vectorul este clasificat corec t. Dacă vectorii au 𝜉𝑖>1, aceștia sunt clasificați greșit. Totodată,
vectorii cu 0 < 𝜉𝑖 <1 sunt clasificați corect, chiar dacă se află pe partea frontierei de margine, considerată
a fi greșită. În literarură. Această abordare se numește margine f lexibilă (engl. soft margin).
Acum, problema de optimizare devine un compromis între maximizarea distanței și penalizarea
punctelor care se află pe partea greșită a frontierei. Acest compromis este reglat de un parametru, C.
arg 𝑚𝑖𝑛 𝑤,𝑏,𝜉(1
2‖𝑤‖2+𝐶∑ 𝜉𝑖)𝑁
𝑖=0 (7)
Și de data aceasta, se poate aplica metoda multiplicatorilor Lagrange [ 16]. În plus, față de SVM –
ul liniar, mai apare și vectorul Lagrange µ, corespunzător unei constrângeri ca variabilele de decalaj să
fie pozitive. În cazul în care, C → ∞, SVM „soft margin” tinde spre SVM „hard margin”. Astfel, dacă C
este de valoare mare, atunci marginea va fi mică. Dacă, C este de valoare mică, atunci marginea va fi
mare.

2.2.4 SVM neliniar implementat cu metoda nucleului

În cazu rile de mai sus, pentru separarea datelor utilizând SVM, au fost necesare linii sau
hiperplane. Însă p entru a separa datele, din figura de mai jos, este nevoie de linii complexe pentru
separarea lor.

Figura 2. 5 Exemplu de spațiu neseparabil liniar [ 18]

31
În această situație, funcția discriminant nu este liniară. Astfel, se consideră o transformare
neliniară: Φ: ℛ2→ℛ3. Se dorește ca prin maparea 3D, datele să devină separabile prin intermediul unor
hiperplane.
O posibilă rezolvare este dată de util izarea unui nucleu care trebuie să satisfacă următ σoarea
condiție:
Ker(𝑥𝑖,𝑥)=ɸ(𝑥𝑖)ɸ(𝑥) (8)
Ker=nucleu pozitiv, simetric, continuu
Funcția discriminant rezultată va avea următoarea expresie :
f(x)= ∑ 𝛼𝑖𝑦𝑖 Ker(𝑥𝑖,𝑥) + b (9)

Forma funcției d iscriminant este descisă de funcția nucleu care se utilizează. Sunt mai multe tipuri
de funcții nucleu, printre care :
• Funcția gaussiană
• Funcția liniară Ker( 𝑥,𝑥𝑖)=𝑥∗𝑥𝑖𝑡 (10)
• Funcția polinomială : Ker( 𝑥,𝑥𝑖)=[(𝑥∗𝑥𝑖𝑡)+ 1]𝑑 (11)
Clasificatorul polinomial de rodin d care se poate obține:
k(x,y) =exp[ -‖𝑥−𝑦‖2
𝜎2 ] (12)

• Funcția RBF (Funcții cu bază radială): Ker( 𝑥𝑖,𝑥𝑗)=exp (−𝑦‖𝑥𝑖−𝑥𝑗‖2) (13)

Figura 2. 6 Limita de decizie este dată de linia care separă cele doua clase [17]

32

33
Capitolul 3 – Descrierea algoritmului implementat pentru
detecția stării de ebrietate

3.1 Descrierea mediului de dezvolare

Pentru implementarea algori tmului de detecție a stării de ebrietate s -a utilizat mediul de
dezvoltare MATLAB (MATrix LABoratory) și a fost dezvoltat inițial de către matematicianul Cleve
Moler[ 19]. În anul 1984, limbajul de programare M ATLAB a fost rescris și s -a înființat compania
MathWorks.
MATLAB este un limbaj de programare compatibil cu sisteme de operare ca: Linux, Windows,
MacOS. Un script dezvoltat în MATLAB va avea întotdeauna estensia “.m”.
Mediul de dezvoltare este creat pent ru efectuarea calculelor numerice specifice domeniilor
inginerești, dar și pentru simularea și modelarea sistemelor dinamice. Cea mai importantă caractersitică
este faptul că orice variabilă folosită este un vector.
Limbajul de programare s -a bucurat de o evoluție în timp, numerose versiuni alea acestuia fiind
dezvltate de -a lungul anilor:
• În anul 1984 a apărut prima versiune MATLAB 1.0
• În 1990 s -a lansat MATLAB 3.5, versiunea pentru sistemul de operare MS -DOS
• În 1994 versiunea MATLAB 4.2c pentru sistemul de operare Microsoft Windows a fost lansată
• În 2018 a apărut versiunea 9.5 MATLAB R2018b care s -a folosit și în această lucrare

Figura 3.1 Emblema mediului de dezvoltare

34
3.2 Descrierea bazei de date

Baza de date SOBER -DRUNK [ http://www.physics.upatras.gr/sober/ ] conține imaginile termale ce
vor fi utilizate în această lucrare și care au fost realizate în cadrul Universității din Patras, Grecia –
Departamnetul de Fizică de către Georgia Koukiou și V assilis Anastassopoulos.
Imaginile aparțin domeniului infraroșu și au fost achiziționate prin intermediul camerei cu
infraroșu Thermo Vision Micron/A10 dezvoltată de compania FLIR. Lungimile de undă variază între 7,5
și 13 µm .
De fapt, corpul uman emite ra diații electromagnetice precum un corp negru, cu emisivitatea între
0.98 și 0.99[ 20]. Un corp negru este un obiect ideal care absoarbe radiația electromagnetică incidentă ,
indiferent de tremperatura sa, iar cantitatea de energia radiată este descrisă cu aj utorul legii lui Stefan –
Boltzmann.
În baza de date sunt prezente poze ale 41 de subiecți (31 bărbați și 10 femei). În evidență sunt
puse părți ale feței precum: zona ochilor, mâinile, zona feței și profil. Toate imaginile care vor fi
prelucrate au fost rea lizate la rezoluția de 1 28×160. Fiecare persoană a consumat 4 pahare de vin de 120
ml (fiecare având 13% vol, adică 13% alcool pur), într -o perioadă de o oră. Adică un total de 480 ml de
vin (4×120), deci un total de 62,4 ml alcool (480*13=6240; 6240*100=6 2,4).
În total, s -au realizat 4 achiziții. Prima dintre ele a fost înainte ca fiecare să consume alcool, în
timp ce a doua s -a efectuat la 20 de minute după ce a băut al patrulea pahar de vin. A treia achiziție a fost
după 50 de minute, iar ultima după o o ră.
Pentru fiecare achiziție s -a obținut un număr de 50 de cadre.Un cadru este realizat la fiecare 100
de msec. Întregul fișier pentru o singură persoana conține 50 de cadre. Ceea ce rezultă că, pentru a obține
numărul standard pentru fiecare subiect, pers oanele din departament au petrecut 5 secunde pentru fiecare.
În baza de date, imaginile sunt salvate sub format TIF(Tagged Image File Format), pentru a utiliza
avantajele acestui tip de fișier. Astfel un folder în care se vor păstra pozele unei persoane ca re a consumat
băuturi sau nu , va conține un fișier .tif, iar după conve rsia la .png va conține 50 de cadre ale aceleiași
persoane.
În aceasă lucrare se vor folosi doar 33 de subiecți (24 bărbați și 9 femei). Se vor lua în considerare
doar achizițiile pent ru zona feței în 4 situații: la momentul inițial, după 20 de minute, după 50 de minute
și după o or ă și se va crea un folder pentru fiecare din cele 33 de persoane.

Figura 3.2 Organizarea fi șierelor

35
Pentru fiecare persoană, din cele 50 de cadre s -au păs trat doar 5. Celelalte păstrau aceiași
informație redundantă, iar procesul de antrenare ar fi devenit mai lent și mai lung. Astfel, reducem
numărul total de poze la 660, față de cazul în care am fi folosit toate cele 50 de cadre pentru fiecare
subiect și u nde imaginile ar fi fost în număr de 6600.

Figura 3. 3 Exemple de imagini din baza de date la momentul inițial

Sistemul gândit se va baza pe învățarea supervizată, iar scopul final este să ofere o clasificare
corectă a datelor de intrare în funcție de l otul de antrenare pe care l -a primit. Din lotul de antrenare vor
face parte vectorul de intrare, dar și eticheta pentru ficare dintre aceștia pentru ca sistemul automat să
știe în ce clasă se află fiecare și să le învețe caracteristicile. După obținerea si procesarea datelor de
antrenare, sistemul construiește funcția pe care o va folosi pentru setul de date cu exemple noi ce îl va
primi la intrare.

3.3 Procesarea de imagini

Inițial, imaginile se împart în două categorii: imagini de antrenare și imagini de test. Pentru
antrenare s -au folosit 23 de persoane, iar pentru test s -au folosit doar 10. Analiza s -a bazat atât dependent
de subiect cât și independenr. Pentru situația în care s -a depins de subiect, din baza de 23 s -au ales 10 și
s-au testat pe rând p entru a putea obține un scor individual, iar la final prin mediere fiind generat un scor

36
total. În cazul independet de subiect, s -a păstrat aceeași bază de 23 de subiecți, dar pentru testare s -au
folosit alți 10 subiecți din cei care nu au facut parte din lotul de antrenare, la final obținându -se scorul
general.
Având în vedere că, imaginile utilizate sunt în fomrat .tif și au dimensiunea 128×160 este necesar
ca acestea să fie citite, procesate și transformate în tablouri bidimensionale.
Metodele folosite pentru detecția și clasificarea subiecților care au consumat sau nu alcool sunt:
PCA (Principal Component Analysis) și SVM (Support Vector Machine).
Algoritmul PCA este des folosit pentru analiza fețelor umane și pentru determinarea contribuția
pe care o variabilă o are la variația dintr -o imagine. În acest domeniu, unde fețele sunt subiectul principal,
aceste variabile sunt numite eigenfaces. Acest fapt se datorează faptului că, atunci când variabilele de
acest fel sunt reprezentate, ele pot fi asemănate cu un chip uman.
Datele de intrare sunt chiar iamginile din baza de date SOBER – DRUNK, sub forma unor matrici
de dimensiune (M x N). Prin concatenarea coloanelor, acestea sunt transformate în vectori și care au
aceeași lungime. Următorii pași au fost de ja descriși în capitolul 2 și constau în calcularea valorii medii
a imaginii, matricii de covariație a imaginilor și va rezulta o matrice simetrică de dimensiune (M x N) x
(M x N). După aflarea matricei, se vor determina vectorii proprii și valorile propri i. Cele din urmă vor fi
ordonate descrescător și astfel se poate determina numărul optim de vectori proprii reprezentativi și care
din imaginile originale păstrează mare parte din energie.

Figura 3.4 Dimensiunea vectorului după redimensionare

3.4 Clasificarea

Pentru clasificare s -a ales clasificatorul SVM și implicit un toolbox denumit LIBSVM. Acest
toolbos a fost dezvoltat de Chih -Chung Chang și Chih -Jen Lin, în cadrul universității „National Taiwan”
[https://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html ]. El este valabil pentru mai multe limbaje de
programare, precum : Java, MATLAB/OCTAVE, Python, Node.js și multe altele. Pentru această lucrare
s-a descărcat arhiva pentru MATLAB.

37
Pașii următori pentru a putea utiliza acest clasificator trebuie să includă: normalizare eșantioane,
scalarea datelor în intervalul [ -1,1], prin intermediul funcției resclae (eșantioane, -1, 1). Funcția svmtrain
se folosește pentru antrenare, iar cu func ția svmpredict pentru clasificare.

Figura 3.5 Imaginile din setul de antrenare după normalizare

• model = svmtrain (training_label_vector, train_data, ['libsvm_options'])

training_label_vector: etichetele pentru lotul de antrenare
train_data: lotul de antrenare
['libsvm_options']:
-t se alege tipul pentru funcția kernel
-d se pot alege gradele pentru funcția kernel
-g valoarea pentru parametrul gama pentru funcț ia kernel
-c setarea parametrului C
-p valoarea lui epsilon
-r oferă coeficientul pentru funcția kernel: coef0
Funția de tip kernel a fost testată pentru următoarele tipuri:
-liniar: u'*v (14)
-polinomial : (gama*u'*v + coef0)^grade (15)
-RBF ( Radial Basis Function ): exp(-gama*|u -v|^2) (16)

38
De exemplu: svm-train -s 3 -p 0.1 -t 0 -c 10 data_file
SVM cu funcție kernel: liniară; C=10; epsilon=0.1

• [predicted_label] = svmpredict (testing_label_vector, test_data, model [,'libsvm_options'])

testing_label_vector: etichtele rezultate pentru lotul de testare
test_data: lotul de imagini pe care dormi să îl clasificăm
['libsvm_options']: -b estimează probabilitatea

Astfel, se demonstrează că după cum se alege funcția kernel se modifică și forma limitei de
decizie. Astfel, cele două clase se pot delimita diferit, în fucție de va lorile specifice atribuite fiecărui tip
de funcție în parte. În imaginile de mai jos se observă cum pot fi delimitate clasele utilizând această
librărie.

Figura 3.6 Funcție kernel de tip liniar Figura 3.7 Funcție kernel de tip polinomial
grad =1

Figura 3.8 Funcție kerne l de tip polinomial Figura 3.9 Funcție kernel de tip RBF
grad =2

39

Capitolul 4 – Descrierea programului

Scopul principal al acestei lucrări este să detecteze dacă subiecții se află sau nu sub influența
alcoolului și să îi clasifice după caz într -una dintre cele două clase. Performanța cu care programul
realizează ce am propus se stabilește cu ajutorul metodelor de c lasificare supe vizată (PCA și SVM).
Sistemul învață automat, da r supervizat. Adică, pentru un anumit număr de imagini se cunosc și
se și oferă programului clasele din care fac parte, sub forma unor etichete. După procesare, se stabilește
o funcție cu ajutorul căreia putem extinde algoritmul să clasifice si imagini nec unoscute. Altfel spus,
caracteristicile imaginilor din lotul de intrare se cunosc și se utilizează mai departe pentru determinaea
porțiunilor din alte imagini și în final pentru clasificare.
Alegerea celui mai optim algoritm pentru realizarea temei propus e s-a redus în a determina:
• Selecția caracteristicilor (engl. feature selection ) este prima etapă și este anterioară celei de
clasificare. Cea mai importantă caracteristică în această fază este reducerea dimensionalității
datelor și păstrarea informației u tile și/sau maximizarea sebarabilității dintre clase. Această etapă
poate afecta destul de evident performanțele de clasificare. Una dintre metodele existente de
reducere a dimensionalității este PCA.
• Alegerea tipului de clasificator este esențială pentru a putea avea un model de referință pentru
evealuarea performațelor unui sistem. În această lucrare, s -a ales clasificatorul supervizat SVM,
ca tehnică modernă.

Pentru a putea să clasifice corect imaginile din lotul de test este nevoie de a defini anumit e etichete
pentru fiecare imagine din lotul de antrenare. Rolul clasificatorului este de a determina de care etichetă
din lotul de test este mai apropiată eticheta din lotul de antrenare. Bază întregii clasificări este de a găsi
această corelație între eti chete.
Tot acest algoritm este posibil deoarece s -a ales un clasificator supervizat . Mai exact, algoritmul
învață din exemplele pe care le primește și mai apoi este capabil să extrapoleze. Clasele sunt astfel
definite de utilizator, deoarece se știe stare a în care se află subiecții. Astfel, a fost ales numărul 1 ca
etichetă pentru persoanele ce nu au consumat încă alcool și numărul 2 ca etichetă pentru persoanele ce
au consumat alcool indiferent de minutul în care s -au achiziționat imaginile.

40

Figura 4.1 Etapele pentru clasificare

41
Capitolul 5 – Rezultate expermientale

În acest capitol se vor prezenta rezultatele experimentale care s -au obținut după aplicarea PCA –
ului si a SVM -ului asupra bazei de date SOBER – DRUNK. Rezultatele vizează a tât scorul total de
recunoaștere a stării în care se află subiectul, cât și timpii de execuție care au fost obținuți.
Pentru obținerea scorurilor s -au ales diferite tipuri de nucle e pentru funcția kernel a
clasificatorului și astfel, stabili nduu -se metoda de referință. Altfel spus, pentru c e tip de funcție scorul
este cel mai bun .
În final, scopul principal al programului [Anexa 1] este să construiască modelul propriu după
informațiile pe care le primește la intrare. După cum se observă, SVM se bazează pe rezultatele concrete
pe care le a obținut din antrenare.
Pentru a se calcula si prelucra informația de la intrare în spațiul de trăsături, algoritmul utilizează
funcția kernel. Astfel, rolul clasificatorului este să separe datele de la intrare printr -un hiperplan definit
de funcție. Pentru a avea o comparație între rezultate, s -au ales trei tipuri de nucleu: liniar , polinomial și
RBF. În funcție de scorul total de recunoaștere s -a ales metoda de bază, ca fiind cea cu nucleu polinomial.
În cazul nucleului polinomial, parametrul ce trebuie modificat este gradul care ne ajută să transpunem
datele de intrare într -un spațiu cu dimenisunea mai mare. Valoarea parametrului se alege intuitiv .
Totodată, s -au folosit și alți indic atori de performanță precum: rata de alarme false (false alarm
rate – FAR) sau rata de alarme ratate (miss alarm rate – MAR) .
În analiza următoare vor fi prezentate rezultatele obținute în urma clasificării utilizând librăria
LibSVM. Aceasta din urmă este o aplicație de tipul “linie de comma ndă” și oferă posibilitatea
utilizatorului să specifice tipul de algoritm pentru SVM și de nucleu utilizat și parametrii pentru fiecare
nucleu în parte, în funcție de necesitățile programului. Librăria oferă posibilitatea utilizării a 4 tipuri
diferite de SVM, dar pentru acest studiu se va utliza ce l implicit, C -SVM, pentru clasificarea supervizată.
Nucleele alese sunt nucleul polinomial , RBF și cel liniar. Nucleul polinomial este cel care permite
modelarea combinației între caracteristici până se atinge o rdinul polinomului. Valoarea implicită a
acestor parametrii sunt: gama=1/k, unde k este numărul de trăsături, gradul este 3, iar coef0 este 0. Cele
3 funcții sunt de forma:
o liniar: u'*v
o polinomial: (gama*u'*v + coef0)^grade
o RBF: exp(-gamma*|u -v|^2)

42
5.1 Analiza dependentă de subiect

Pentru această analiza s -au folosit 33 de subiecți. Lotul de antrenare a fost format din toți. Pentru
testare s -au ales aleator 10 subiecți tot din lotul de antrenare . Pentru fiecare dintre aceștia s -a calculat
scorul de apar tenență la clasa celor care se află sub influența alcoolului sau celor care nu se află. Testul
a fost realizat pentru toate cele 3 intervale de timp: după 20 de minute, după 50 de minute și după 120 de
minute de la consumul celor 4 pahare de vin.
➢ Cazul cu nucleu liniar

Tabel 5.1 Precizia clasificării pentru kernel liniar după 20 de minute

Nr. Rezultat
1 80%
2 70%
3 70%
4 80%
5 80%
6 70%
7 80%
8 80%
9 90%
10 80%
Medie 78%

Tabel 5.2 Precizia clasificării pentru kernel liniar după 50 de minute Nr. Rezultat
1 70%
2 60%
3 60%
4 70%
5 90%
6 80%
7 80%
8 90%
9 80%
10 90%
Medie 77%

43

Nr. Rezultat
1 80%
2 70%
3 70%
4 70%
5 80%
6 70%
7 80%
8 90%
9 80%
10 80%
Medie 77%

Tabel 5.3 Precizia clasificării pentru kernel lini ar după 80 de minute

În momentul rulării programului, medierea este realizată automat, iar rezultatele apar în command
Window.

Figura 5.1 Scorurile genereale pentru kernel liniar

Se observă că pentru nucleul liniar, scorul de recunoaștere total nu es te foarte mare, medie nu
depășește 78%. Însă, scorul cel mai mare se obține pentru momentul de timp: 50 de minute de la
consumul de alcool. Totuși, nu putem considera această metodă ca fiind cea de referință, deoarece
scorurile nu sunt pe măsura așteptăril or. Se mai poate observa că programul, nu sesizează atât de mult
trecerea timpului în rezultate. Din punct de vedere al scorului, diferența dintre cele trei achiziții este de
doar 1 procent, în timp de din punct de vedere al timpului, diferența este de min ute bune și chiar o oră și
douăzeci de minute de la ultimul pahar de vin consumat.

44
➢ Cazul cu nucleu polinomial

Nr. Rezultat
grad=1 Rezultat
grad=2 Rezultat
grad=3
1 70% 90% 90%
2 60% 90% 90%
3 60% 100% 100%
4 70% 90% 90%
5 90% 90% 90%
6 80% 90% 100%
7 80% 90% 90%
8 90% 80% 90%
9 80% 90% 90%
10 90% 90% 90%
Medie 77% 90% 92%

Tabel 5.4 Precizia clasificării pentru kernel polinomial după 20 de minute

Nr. Rezultat
grad=1 Rezultat
grad=2 Rezultat
grad=3
1 80% 90% 90%
2 70% 90% 90%
3 70% 70% 80%
4 70% 100% 100%
5 70% 80% 80%
6 70% 90% 90%
7 70% 100% 80%
8 70% 100% 100%
9 70% 80% 70%
10 70% 80% 90%
Medie 78% 88% 87%

Tabel 5.5 Precizia clasificării pentru kernel polinomial după 50 de minute

45
Nr. Rezultat
grad=1 Rezultat
grad=2 Rezultat
grad=3
1 80% 90% 90%
2 70% 80% 80%
3 70% 90% 90%
4 70% 90% 90%
5 80% 90% 80%
6 70% 80% 80%
7 80% 80% 80%
8 90% 80% 80%
9 80% 70% 70%
10 80% 80% 80%
Medie 77% 83% 82%

Tabel 5.6 Precizia clasificării pentru ker nel polinomial după 80 de minute

Se poate observa că dacă se folosește un nucleu polinomial, scorul total de recunoaștere este cel
mai bun. Rezultatul obținut cu un kernel liniar fiind mult mai mic.

Mai jos sunt prezentate scorurile așa cum apar la rula rea programului în MATLAB.

Figura 5.2 Scorurile genereale pentru kernel polinomial

46
În urma obținerii acestor rezultate, s -a ales ca metodă de referință cea care utilizează un kernel
polinomial de grad 3, deoarece rez ultatele în urma testului sunt cele mai mari.
Se observă că, concomitent cu creșterea gradului se mărește și scorul final, dar cel mai important
devine sesizabilă diferența atât din punct de vedere al scorului, cât și cea din punct de vedere a timpului.
Se poate sesiza că, de la gradul 2 al polinomului, cu cât a trecut mai mult timp de la consumul ultimului
pahar de vin, cu atât rezultatele scad, respectiv cu 2 și cu 7 procente. La gradul 3 al polinomului,
rezultatele scad cu 5 procente, ceea ce ne sugere ază că, există schimbări majore la trecerea timpului și
subiecții care la prima achiziție figurau ca a fi sub influența alcoolului, după aproximativ o oră și 20 de
minute aceștia mai pierd din efectul alcoolului și încep să li se atribuie eticheta de oamen i care nu au
consumat alcool.

➢ Cazul cu nucleu RBF
Nr. Rezultat
1 70%
2 60%
3 60%
4 70%
5 90%
6 80%
7 80%
8 90%
9 80%
10 90%
Medie 77%
Tabel 5.7 Precizia clasificării pentru kernel RBF după 20 de minute

Nr. Rezultat
1 80%
2 70%
3 70%
4 80%
5 80%
6 70%
7 80%
8 80%
9 90%
10 80%
Medie 78%
Tabel 5.8 Precizia clasificării pentru kernel RBF după 50 de minute

47

Nr. Rezultat
1 80%
2 70%
3 70%
4 70%
5 80%
6 70%
7 80%
8 90%
9 80%
10 80%
Medie 77%
Tabel 5.9 Precizia clasifică rii pentru kernel RBF după 80 de minute

Mai jos sunt prezentate scorurile așa cum apar la rularea programului în MATLAB, pentru cazul
nucleului RBF .

Figura 5.3 Scorurile genereale pentru kernel RBF

Surprinzător sau nu, r ezultatele în acest caz sunt la fel ca cele obținute pentru cazul liniar. Din
punct de vedere al scorurilor finale nu avem nici o diferență față de primul caz prezentat în lucrarea. În
schmb, în matricea cu scorurile obținute pentru fiecare subiect în parte, acestea nu sunt identice pen tru
fiecare subiect cu cele de la liniar, dar cumulat acestea dau în majoritatea cazurilor același rezultat. Acest
lucru nu poate decât să ne confire metoda de referință alasă și anume, cel mai bun nucleu ce oferă cele
mai bune rezultate este cel polinomia l, dar de grad 3.
Analizând din punct de vedere a scorului final, polinomul de gradul 3 este cea mai potrivită
decizie. Însă, este necesar obținerea unui program optim atât pentru scor, cât și pentru timpul de execuție.
Astfel, fiecare metodă testată rule ază în simulator un anumit timp măsurat în secunde. Ceea ce se dorește
mai departe, este o comparație între toate cele 3 metode propuse, din punct de vedere al eficienței totale.

48

Mai jos, se vor reprezenta grafic rezultatele obținute atât pentru cel mai mare scor obținut, dar și
pentru timpul de execuție total.

Figura 5. 4 Timpul de execuție și scorul de recunoaștere pentru cele 3 nuclee la minutul 20

Din grafic se confirmă concluzia deja formată, și anume: socrul final în cazul clasificatorului ce
utilizează nucleu polinomial de grad 3 este mult mai mare în comparație cu rezultatele obținute pentru
celelalte nuclee.
În schimb, timpul de execuție este cel mai mare tot pentru nucleul pol inomial. Cu toate acestea,
se observă că, nucleul RBF oferă rez ultate la fel de slabe precum nucleul liniar, dar are un timp de
execuție total aproape la fel cu cel polinomial. În cazul nucleului liniar, timpul de execuție este cel mai
mic, dar și rezultatele sunt pe măsur ă, adică la fel de slabe.

5.2 Analiza indepe ndentă de subiect

Pentru această analiza s -au folosit 33 de subiecți. Lotul de antrenare a fost format din toți. Pentru
testare s -au ales aleator 10 subiecți diferiți de cei din lotul de antrenare. Astfe l, se formează un lot de test
ce conține 10 persoane diferite. În total imaginile procesate vor conține informații de la 43 de persoane.
Pentru fiecare dintre aceștia s -a calculat scorul de apartenență pentru clasa celor care se află sub influența
alcoolului sau celor care nu se află. Testul a fost realizat pentru un singur interval de timp: după 20 de
minute și cu un singur tip de nucleu: polinimial de grad 3, deoarece pentru acestea s -au obținut rezultatele
cele mai bune în alaiza dependentă de subiect și pe aceasta am considerat -o ca fiind metoda de refer ință.

49

Nr. Rezultat
1 80%
2 80%
3 90%
4 80%
5 90%
6 80%
7 90%
8 80%
9 80%
10 70%
Medie 82%

Tabel 5.10 Precizia clasificării pentru kernel polinomial cu grad 3 după 20 de minute

Din aceste rezultate de observă că, pentru același număr de pe rsoane, același moment de timp și
acelasi tip de nucleu, scorul final pentru analiza independentă de subiect este cu aproximativ 10 procente
mai mică decât cea dependentă de subiect. Totodată, timpul de execuție este optim tot pentru analiza
dependentă de subiect.

Figura 5. 5 Timpul de execuție și scorul de recunoaștere pentru cele 2 tipuri de analiză la minutul 20

După cum era de preconizat, timpul de execuție pentru analiza dependentă de subiect este mai
mic și scorul mai m are ca în cazul analizei independente de subiect. Se observă că timpul este dublat
cocomitent cu trecerea la analiza independentă.

50
Explicația logică este că rețelei îi este mai ușor să identifice stările în care se află subiecții de la
intrare, deoarece ac eștia s -au aflat în baza de antrenare și pentru ei a primit anterior etichete. Astfel, îi
este mai ușor atât să prezică starea unui subiect, atât din punct de vedere al rezultatului, cât și din punct
de vedere al timpului pe care îl pierde la execuția prog ramului, prezentat în Anexa 1.
Pentru analiza independentă de subiect, scorul este mai mic cu 10 procente și timpul total de
execuție al programului este dublu. Astfel, rețelei îi este mai greu să ia o decizie pentru subiecții cu care
nu s-a antrenat , dar și în aceste condiții scorul total este de 82%, un rezultat deloc slab.

51
Capitolul 6 – Evaluarea performanțelor experimentale

Pentru a putea evelua performanțele experimentale s -au luat în considerare 7 indici de evaluare
[7]:
➢ TPi (engl. true positives) = stările de ebrietate care au fost detectate în mod corect pentru subiectul
i sau mai exact, numărul de imagini ale subiectului vizat în stare de ebrietate și care sunt
clasificate corect [21] [7];

➢ TNi (engl. true negatives) = stă rile în care subiectul nu se află sub influența alcoolului detectate
corect pentru persoana i [21][7];

➢ FPi (engl. false positives) = numărul imaginilor pentru subiectul care nu se află în stare de
ebrietate diagnosticate într -un mod eronat [7];

➢ FNi (engl. false negatives) = numărul imaginilor pentru subiectul care se află în stare de ebrietate
diagnosticate într -un mod erona t [7];

➢ OAi (engl. overall accuracy) = precizia generală care se calculează cu formula:

Oai = 100 x (TPi + TNi) / (TPi + TNi + FPi + FNi) (17)

➢ FARi (engl. false alarm rate) = rata de alarme false

FARi = 100 x (FPi) / (TNi + FNi) (18)

➢ MARi (engl. miss alarm rate) = rata de alarme ratate
MARi= 100 x (FNi) / (TPi + FNi) (19)

Acești indicatori se calculează pentru fiecare persoană în parte. Apoi, s -au calculat prin mediere
indicatorii globali pentru performanță, mai exact: OA,MAR,FAR [22].

52
6.1 Evaluarea performanțelor pentru analiza dependentă de subiect

6.1.1 Indic atorii de performanță pentru nucleul liniar

În tabele ce urmează vor fi prezentate valorile indicatorilor descriși mai sus, care au rezultat în
urma executării programului.

Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 3 4 2 1 70 40 25
2 3 3 2 2 60 40 40
3 2 4 3 1 60 60 33.33333
4 3 4 2 1 70 40 25
5 5 4 0 1 90 0 16.66667
6 4 4 1 1 80 20 20
7 4 4 1 1 80 20 20
8 4 5 1 0 90 20 0
9 4 4 1 1 80 20 20
10 5 4 0 1 90 0 16.66667
Medie 3.7 4 1.3 1 77 26 21.66667
Tabel 6.1 Indicatorii de performanță p entru achiziția după 20 de minute (nucelu liniar)

Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 4 4 1 1 80 20 20
2 4 3 1 2 70 20 33.33333
3 3 4 2 1 70 40 25
4 4 4 1 1 80 20 20
5 4 4 1 1 80 20 20
6 3 4 2 1 70 40 25
7 4 4 1 1 80 20 20
8 3 5 2 0 80 40 0
9 5 4 0 1 90 0 16.66667
10 4 4 1 1 80 20 20
Medie 3.8 4 1.2 1 78 24 20
Tabel 6.2 Indicatorii de performanță pentru achiziția după 50 de minute (nucelu liniar)

53
Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 4 4 1 1 80 20 20
2 4 3 1 2 70 20 33.33333
3 3 4 2 1 70 40 25
4 3 4 2 1 70 40 25
5 4 4 1 1 80 20 20
6 3 4 2 1 70 40 25
7 4 4 1 1 80 20 20
8 4 5 1 0 90 20 0
9 4 4 1 1 80 20 20
10 4 4 1 1 80 20 20
Medie 3.7 4 1.3 1 77 26 20.83333
Tabel 6.3 Indicatorii de performanță pentru achiziția după 80 de minute (nucelu liniar)

6.1.2 Indicatorii de performanță pentru nucleul polinomial

Indicatorii de performanță au fost calculați pentru nucleul polinomial cu grad 3, doarece pentru
acesta s -a obținut cel mai optim scor, iar informațiile sunt cele mai relevante . Totodată, această metodă
a fost considerată metodă de referință, iar rezultatele obținute în urma execuției ei prezintă cel mai mare
interes.

Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 5 4 0 1 90 0 16.66667
2 4 5 1 0 90 20 0
3 5 5 0 0 100 0 0
4 4 5 1 0 90 20 0
5 5 4 0 1 90 0 16.66667
6 5 5 0 0 100 0 0
7 4 5 1 0 90 20 0
8 4 5 1 0 90 20 0
9 5 4 0 1 90 0 16.66667
10 5 4 0 1 90 0 16.66667
Medie 4.6 4.6 0.4 0.4 92 8 6.666667
Tabel 6.4 Indicatorii de performanță pentru achiz iția după 20 de minute (nucelu polinomail)

54

Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 5 4 0 1 90 0 16.66667
2 4 5 1 0 90 20 0
3 3 5 2 0 80 40 0
4 5 5 0 0 100 0 0
5 4 4 1 1 80 20 20
6 4 5 1 0 90 20 0
7 3 5 2 0 80 40 0
8 5 5 0 0 100 0 0
9 3 4 2 1 70 40 25
10 5 4 0 1 90 0 16.66667
Medie 4.1 4.6 0.9 0.4 87 18 7.833333
Tabel 6.5 Indicatorii de performanță pentru achiziția după 50 de minute (nucelu polinomail)

Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 5 4 0 1 90 0 16.66667
2 3 5 2 0 80 40 0
3 4 5 1 0 90 20 0
4 4 5 1 0 90 20 0
5 4 4 1 1 80 20 20
6 3 5 2 0 80 40 0
7 3 5 2 0 80 40 0
8 3 5 2 0 80 40 0
9 3 4 2 1 70 40 25
10 4 4 1 1 80 20 20
Medie 3.6 4.6 1.4 0.4 82 28 8.166667
Tabel 6.6 Indicatorii de performanță pentru achiziția după 80 de minute (nucelu polinomail)

Astfe, se observă că și din analiza amănunțită, scorurile generale și mediate sunt mult mai bune.
Indicatorii FPi, FNi oferă rezultate mici, aceștia fiind cei care oferă scorul de performanță pentru o
identificare er onată și deci faptul că sunt mici conduc la un scor final de recunoaștere cât mai mare. În
timp ce, Tpi și TNi, indicatorii de performanță pentru identificarea corectă sunt foarte buni, având un
scor mediu de aproape 3, 4 ori mai mare față de cazul scoruri lor eronate.
Concluzia este că, această metodă poate fi considerată metodă de referință și după analiza
amănunțită a rezultatelor finale.

55
6.1.3 Indicatorii de performanță pentru nucleul RBF

Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 3 4 2 1 70 40 25
2 3 3 2 2 60 40 40
3 2 4 3 1 60 60 33.33333
4 3 4 2 1 70 40 25
5 5 4 0 1 90 0 16.66667
6 4 4 1 1 80 20 20
7 4 4 1 1 80 20 20
8 4 5 1 0 90 20 0
9 4 4 1 1 80 20 20
10 5 4 0 1 90 0 16.66667
Medie 3.7 4 1.3 1 77 26 21.66667
Tabel 6. 7 Indicatori i de performanță pentru achiziția după 20 de minute (nucelu RBF)

Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 4 4 1 1 80 20 20
2 4 3 1 2 70 20 33.33333
3 3 4 2 1 70 40 25
4 4 4 1 1 80 20 20
5 4 4 1 1 80 20 20
6 3 4 2 1 70 40 25
7 4 4 1 1 80 20 20
8 3 5 2 0 80 40 0
9 5 4 0 1 90 0 16.66667
10 4 4 1 1 80 20 20
Medie 3.8 4 1.2 1 78 24 20
Tabel 6. 8 Indicatorii de performanță pentru achiziția după 50 de minute (nucelu RBF)

56
Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 4 4 1 1 80 20 20
2 4 3 1 2 70 20 33.33333
3 3 4 2 1 70 40 25
4 3 4 2 1 70 40 25
5 4 4 1 1 80 20 20
6 3 4 2 1 70 40 25
7 4 4 1 1 80 20 20
8 4 5 1 0 90 20 0
9 4 4 1 1 80 20 20
10 4 4 1 1 80 20 20
Medie 3.7 4 1.3 1 77 26 20.83333
Tabel 6. 9 Indicatorii de performanță pentru achiziția după 80 de minute (nucelu RBF)

Această metodă prezintă rezultate similar cu cea liniară și deci nu prezintă interes, nefiind cea
care poate să ne ofere un scor mai bun pentru nici una din cele 7 categorii pentru fiecare indice.

6.1.3 Me dierea valorilor pentru indicatorii de performanță
Având în vedere rezultatele obținute la pașii anteriori, vom analiza toate rezultatele cumulate,
pentru cei mai importanți trei indicatori. Acest lucru are ca scop identificarea încă o dată a metodei de
referință și rezultatele superioare pe care aceasta le oferă în comparație cu celelalte încercări.

Tabel 6. 10 Indicatorii de performanță pentru achiziția după 20 de minute
Nucleu OA
% FAR
% MAR
%
Liniar 77 26 21.6
Polinomial
grad=1 77 26 21.6
Polinomial
grad=2 90 13.3 5.5
Polinomial
grad=3 92 8 6.6
RBF 77 26 21.66

57

Tabel 6. 11 Indicatorii de performanță pentru achiziția după 50 de minute

Nucleu OA
% FAR
% MAR
%
Liniar 77 26 20.83
Polinomial
grad=1 77 26 20.83
Polinomial
grad=2 83 26 7.83
Polinomial
grad=3 82 28 8.16
RBF 77 26 20.83
Tabel 6. 12 Indicatorii de performanță pentru achiziția după 80 de minute

Analizând încă o dată, dar în asamblu de data aceasta, rezultatele totale obținute justifică ale gerea
metodei aleasă în final, SVM cu nucelu polinomial de grad 3. Aceasta oferind cele mai relevante și mai
ridicate scoruri de recunoaștere, având rezultatele cele mai bune. Cel puțin, în cazul de față, adică pentru
analiza independentă de subiect, urmâ nd ca în continuare să se analizeze, cumularea rezultatelor și pentru
metoda independetă de subiect.

Nucleu OA
% FAR
% MAR
%
Liniar 78 24 20
Polinomial
grad=1 78 24 20
Polinomial
grad= 2 88 16 7.66
Polinomial
grad=3 87 18 7.83
RBF 78 24 20

58
6.2 Evaluarea performanțelor pentru analiza independentă de subiect

Se dorește, încă o dată, demonstarea alegerii metodei de referință prin rezultatel e clare, obținute
în urma execuției programului.
Nr. TPi TNi FPi FNi OAi
[%] FARi
[%] MARi
[%]
1 4 4 1 1 80 20 20
2 4 4 1 1 80 20 20
3 5 4 0 1 90 0 16.66667
4 5 3 0 2 80 0 28.57143
5 4 5 1 0 90 20 0
6 3 5 2 0 80 40 0
7 5 4 0 1 90 0 16.66667
8 3 5 2 0 80 40 0
9 5 3 0 2 80 0 28.57143
10 4 3 1 2 70 20 33.33333
Medie 4.2 4 0.8 1 82 16 16.38095
Tabel 6. 13 Indicatorii de performanță pentru achiziția după 20 de minute (independent)

Figura 6.1 Precizia generală pentru achiziția după 20 de minute (independent)

0102030405060708090100
1 2 3 4 5 6 7 8 9 10OAi
Subiecul iPrecizia totala

59
Concluzii

Aceast ă lucrare are ca scop implementarea, proiectarea și testarea unei metode software originală
pentru analiza imginilor faciale în spectrul infraroșu termal, cu scopul de a identifica starea de ebrietate
a subiecților vizați din baza de date SOBER -DRUNK, realizat ă în cadrul Universității din Patras, Grecia
– Departamnetul de Fizică de către Georgia Koukiou și Vassilis Anastassopoulos.
Metoda propusă în lucrare îndeplinește toate cerințele specificate inițial, iar tehnicile de
prelucrare a imaginilor, PCA și clasificatorul SV M s-au dovedit a fi favorabile, deoarece a rezultat un
comportament foarte bun pentru antrenarea și clasificarea imaginilor din baza de date utilizată. În final,
rezultatele obținute confirmă metoda pe care am propus -o în cadrul lucrării.
Utilizând clasificatorul SVM, s -au obținut rezultate diferite. Astfel, am concluzionat că nu toate
nucleele se mapează la fel pentru toate datele și că performanțele cercetării au depins de nucleul și
parametrii clasificator ului. În cazul acestor date, cel mai bun nucleu a fost nucleul de tip polinomial cu
gradul trei. Acesta din urmă a fost cel care a furnizat cele mai bune rezultate și astfel, a fost considerat
ca fiind o metodă de referință pentru alte cercetări viitoare.
De asemenea, pentru a putea specifica performanțele și a le putea diferenția între ele, utilizarea
scorului de recunoaștere și analiza acestuia s -a dovedit a fi propice. Timpul de execuție și de clasificare
a fost un factor suplimnetar ce a ajutat la tras area anumitor diferențe. Acesta nu a fost un factor major în
luarea unei decizii, deoarece el este util doar în cazul în care dorim optimizarea maximă a programului
și când se dorește cunoașterea unui timp orientativ de execuție pentru a putea evidenția di ferența dintre
cele 3 nuclee utilizate. Timpul nu poate să fie un indice de decizie, deoarece acesta depinde de la un
sistem la altul, de performanțele software, dar și hardware ale sistemului.
Contribuțiile personale aduse acestui proiect sunt implementa rea unui algoritm pentru PCA,
experimentarea și proiectarea unor metode pentru clasificarea subiecților, adaptarea unei librării deja
existente pentru clasificare subiecților din baza de date, organizarea bazei de date, generarea fișierelor și
schimbarea a rhitecturii pentru fiecare analiză realizată, cu scopul de a se obține performanțele de mai
sus.
Direcțiile viitoare ale proiectului
Cu toate că tehnologia se dezvoltă pe zi ce trece mai mult și întrece toate așteptările, recunoașterea
facială prin interm ediul imaginilor întâmpină dificultăți reale, mai ales în medii de funcționare
necontrolate.
Astfel, dezvoltările următoare pentru această lucrare constau în implementarea unei metode
bazate pe Deep Learning și obținerea unor parametrii optimi. Se va înce rca dezvoltarea unei aplicații
Android care să fie capabilă să analizeze imagini din spectrul vizual și să clasifice subiectul într -o
anumită clasă: sub influența alcoolului sau nu.

60

61
Referințe

[1] https://www.tandfonline.com/d oi/abs/10.1080/15389588.2019.1576035 – accest la data de
24.06.2019
[2] Fell JC. Repeat DWI, offenders involvement in fatal crashes in 2010. Traffic Inj Prev.
2014;15(5):431 –433. doi: 10.1080/15389588.2013.838230.
[3] http://www.europarl.europa.eu/news/ro/ headlines/society/20190410STO36615/decese -rutiere –
statistici -ue – accesat la data de 24.06.2019
[4] http://www.dspb.ro/comunicatemedia/2016070601 -ANALIZA -DE-SITUATIE -ALCOOL -2016.pdf
– accesat la data de 24.06.2019
[5] V.E Neagoe,S.V. Carata, Subject indepe ndent drunkness detection using pulse -coupled neural
network segmentation of thermal infrared facial imagery, International Journal of Mathematical and
Computational Methods, Vol. 1, 2016, pp. 305 -312
[6] O. Benavent Casanova1, N. Benavente Gómez1, J.I. Pr iego Quesada2,3, C. M. Galindo
Gonzalez2,R.M. Cibrián Ortiz de Anda2, R. Salvador Palmero2, F. Núñez Gómez1 Application of
infrared thermography in diagnosing peripherally inserted central venous catheter infections in children
with cancer
[7] Victor Neago e "Retele neurale pentru explorarea datelor"
[8] Lucian Perisoara, Curs TAEP – Termoviziune
[9] R. Vardasca, J. Gabriel "A proposal of a standard rainbow false color scale for thermal medical
images"
[10] J. Heo, S.G. Kong, B.R. Abidi and M.A. Abidi, "Fusi on of visual and thermal signatures with
eyeglass removal for robust face recognition", IEEE Workshop on ObjectTracking and Classification
Beyond the Visible Spectrum in conjunction with CVPR 2004, July 2004, Washington DC, pp. 94 -99
[11] V.E. Neagoe, A. R opot, and A. Mugioiu, "Real time face recognition using decision fusion of neural
classifiers in the visible and thermal infrared spectrum", Proc. of the 2007 IEEE International Conference
on Advanced Video and Signal based Surveillance (AVSS 2007), London (United Kingdom), 5 -7
September 2007, pp.1 -6
[12] V.E. Neagoe, A. Mugioiu and C. Tudoran, "Concurrent self -organizing maps for multispectral
facial image recognition, Proc. of the 2007 IEEE Symposium on Computational Intelligence in Image
and Signal Proc essing" (CIISP 2007), April 1 -5, 2007, Honolulu, Hawaii, USA, pp. 330 -335, ISBN: 1 –
4244 -0707 -9.
[13] Rikke Gade, Thomas B. Moeslund "Thermal cameras and applications"

62
[14] K. A. Khamidullina, D. L. Balieva, P. S. Lazareva, K. O. Boltara, b, *, A. V. Poless kiya, I. D.
Burlakova, c , E. L. Chepurnova , N. I. Gusarovad, **, and S. V. Popovd "Short -Wave Infrared Camera
with a Focal Plane Array Based on InGaAs/InP Heterostructures"
[15] Victor Neagoe, Curs Data Mining
[16] C.M. Bishop, Pattern Recognition and Ma chine Learning, Springer, New York, 2006
[17] Bishop,C.M,Pattern Recognition and Machine Learning (2006) Springer. pp 338 -350. Web
[18] Andrew Ng Curs "Machine Learning Andrew Ng"
[19] MathWorks, Definite and Indefinite Integrals, http://www.mathworks.com /help/symbolic/int.html,
accesat la 1.06.2019.
[20] A.N. Diakides, D.J. Bronzino, Medical Infrared Imaging, 1st edn, Chap. 6, 1.Physiology of Thermal
Signals, 1 -20; 2008, New York, CRC Press.
[21] Alan D. Olstein, OrcID and Joellen M. Feirtag, Improved Pos itive Predictive Performance of
Listeria Indicator Broth: A Sensitive Environmental Screening Test to Identify Presumptively Positive
Swab Samples
[22] Jianwei Xu, Jiandong Wang, Iman Izadi, Tongwen Chen "Performance Assessment and Design for
Univariate Al arm Systems Based on FAR, MAR, and AAD"

63
Anexe

Anexa 1 – Extragerea imaginilor

function ExtractImages(ImagePath,OutputPath)
% Extragere imaginilor pentru antrenament
%returneaza o lista de fisiere din folder
filesNumber = dir([OutputPath '* .*']);
% Pozitia de start pentru lista de imagini
FileNumber = length(filesNumber) -1;
% Extractie 50 poze om treaz
for i=1:5
%citirea TIF
[img,map] = imread(ImagePath,i);
%stergerea elementelor 0
img = img(1:end -6,:);
%scrierea imaginii in format PNG
imwrite(uint8(img),[OutputPath, num2str(FileNumber) '.png'],'png');
FileNumber = FileNumber+1;
end
end

64

65
Anexa 2 – Extragerea componentelor principale (PCA)

% Functia returneaza un numar de vectori proprii semnificativi a i matricii de
covarianta
function [Vectors, Values] = pca(A, numvecs);
% A – matricea datelor de intrare (fiecare coloana reprezinta un vector distinct)
% numvecs – numarul vectorilor proprii selectati
% eig_vectors – matricea vectorilor proprii (organizat i pe coloane)
% eig_values – valorile proprii
nexamp = size(A,2);
% valoarea medie
mean_A = mean(A')';
% Se centreaza vectorii care formeaza matricea A
for i = 1:nexamp
A(:,i) = A(:,i) – mean_A;
End
% matricea de covarianta asociata lui A
CovMat=A*A';
% matricea folosita de catre Turk & Pentland
L = A'*A;
[Vectors,Values] = eig(L);
% Sortarea vectorilor proprii in functie de valorile proprii
[Vectors,Values] = sortem(Vectors,Values);
% vectorii proprii ai lui L se transforma in cei ai lui CovMat
Vectors = A*Vectors;
% Extragerea valorilor proprii
Values = diag(Values);
Values = Values / (nexamp -1);
% Normalizarea vectorilor proprii, eliminarea valorilor proprii nesemnificative
num_good = 0;
for i = 1:nexamp

66
Vectors(:,i) = Vectors(:,i)/norm(Vectors(:,i));
if Values(i) < 0.00001
Values(i) = 0;
Vectors(:,i) = zeros(size(Vectors,1),1);
else
num_good = num_good + 1;
end
end
if (numvecs > num_good)
sprintf(1,'atentie: numvecs este %d; doar %d exista. \n',numvecs,num_good);

67
Anexa 3 – Generarea imaginilor

% Scanarea folderului de data souc -Generarea tuturor imaginilor
Files = dir('DataSource \**\*.tif');
disp(['Fisiere pentru extragere: ' num2str(length(Files))]);
for i=1:4:(length(Files))
% Captare imagini treaz
disp('Generare faza fara consu m');
ExtractImages([Files(i).folder ' \' Files(i).name] ,'GeneratedData \AllTrain \');
end
for i=2:4:length(Files)
% Captare imagini + 20 minute
disp('Generare +20 min');
ExtractImages([Files(i).folder ' \' Files(i).name] ,'GeneratedData \AllTrain \');
End
for i=3:4:length(Files)
% Captare imagini + 50 minute
disp('Generare +50');
ExtractImages([Files(i).folder ' \' Files(i).name] ,'GeneratedData \AllTrain \');
end
for i=4:4:length(Files)
% Captare Imagini + 1 ora
disp('Generare +1 ora');
ExtractImag es([Files(i).folder ' \' Files(i).name] ,'GeneratedData \testing\');
end
end
disp('imaginile au fost generate cu succes');

68
% Generarea imaginilor din lotul de antrenare
% citirea si afisarea imaginilor ;
%img matrix
S=[];
for i=1:M
str=strcat(images Path,int2str(i+RSE),'.png'); %unirea a 3 siruri de caractere
eval('img=imread(str);');
[irow icol]=size(img); % numarul de randuri (N1) si coloane (N2)
temp=reshape(img',irow*icol,1); % crearea matricii (N1*N2)x1
S=[S temp]; %X matricea N1*N2xM
end
%Normalizarea tuturor imaginilor din baza de date.
%Reducerea conditiilor de iluminarea.
for i=1:size(S,2)
temp=double(S(:,i));
m=mean(temp);
st=std(temp);
S(:,i)=(temp -m)*122/st+160;
end
% Afisarea imaginilor
%media imaginilor;
m=mean(S,2);
% obtinerea m ediei dintre randuri
tmimg=uint8(m);
img=reshape(tmimg,icol,irow);
%luam vectorul N1*N2x1 si creem matricea N2xN1
img=img';
% cream matricea N1xN2 prin transpunerea ei.
% Transformarea imaginilor
dbx=[]; % A matrix
for i=1:M

69
temp=double(S(:,i));
dbx=[dbx temp];
end
% Matricea de covarianta C=A'A, L=AA'
A=dbx';
L=A*A';
% vv sunt vectorii proprii pentru L
% dd sunt valorile proprii pentru L si C;
[vv dd]=eig(L);
% Sortarea si eliminarea valorilor egale cu 0
v=[];
d=[];
for i=1:size(vv,2)
if(dd(i,i)>1e -4)
v=[v vv(:,i)];
d=[d dd(i,i)];
end
end
%sortarea
[B index]=sort(d);
ind=zeros(size(index));
dtemp=zeros(size(index));
vtemp=zeros(size(v));
len=length(index);
for i=1:len
dtemp(i)=B(len+1 -i);
ind(i)=len+1 -index(i);
vtemp(:,ind(i))=v(:,i);
end
d=dtemp;
v=vtemp;

70
%Normalizarea vectorilor proprii
for i=1:size(v,2) %accesarea fiecarei coloane
kk=v(:,i);
temp=sqrt(sum(kk.^2));
v(:,i)=v(:,i)./temp;
end
%Valori proprii ale matricei C
u=[];
for i=1:size(v,2)
temp=sqrt(d(i));
u=[u (dbx*v(:,i))./temp];
end
%Normalizarea vectorilor proprii
for i=1:size(u,2)
kk=u(:,i);
temp=sqrt(sum(kk.^2));
u(:,i)=u(:,i)./temp;
end
% afisare vectorilor ;
% Gasirea vectorilor pentru fiecare imagine.
u = sortrows(u, -2);
%Calcul indicatori de performanță
function [TPi TNi FPi FNi OAi FRAi MARi] = GetErrors (Treaz, Beat, All)
TPi = Beat;
TNi = Treaz;
FPi = All – Beat;
FNi = All – Treaz;
OAi = 100 * (TPi + TNi) / (TPi + TNi + FPi + FNi);
FRAi = 100 * (FPi / (TNi + FNi));
MARi = 100 * (FNi / (TPi + FNi));
End

71
Anexa 4 – Obținerea r ezultatelor și aplicarea clasificatorului SVM

%Test analiză dependentă de subiect
clear all
clc;
tic
addpath('libsvm');
%Alegerea numarului de componente
SF=9850;
%Numarul de imagini de antrenare
M=230;
imagesPath = 'GeneratedData \AllTrain \'; %Locatia i maginilor de antrenare
GenerateTrain %Procesarea si aplicarea PCA asupra imaginilor de antrenare
disp('Train database complete');
% Crearea matriciei de tip "label" care noteaza imaginile in functie de starea
in care se afla
Notare = [];
for i=1:230
if i < 166
Notare = [Notare; 1]; %Treaz
else
Notare = [Notare; 2]; %Beat
end
end
NotareTestare = [];
for i=1:5
NotareTestare = [NotareTestare; 1]; %Treaz
end
%Atrenarea si testarea retelei
K = 1e9;
%%%Parametri de antrenare%%%%%% %%%%%%%%%%%%%%

72
inputParams = [' -t ' int2str( 0) ' -c ' int2str(K) ' -b ' int2str(0) ' -d '
int2str(5)… ' -g ' int2str(0)];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Vectors_Train = normalize(Vectors_Train); % norlizare a vectorului de componente
principale
Vectors_Train = rescale(Vectors_Train, -1,1);% Rescalrea vectorului cu valori
intre -1 si 1
model = svmtrain(Notare, Vectors_Train', inputParams); %Antrenare

TreazPredict = [];
BeatPredict20 = [];
BeatPredict50 = [];
BeatPredict1h20 = [];
for Ra = 0:5:160
imagesPath = 'GeneratedData \StartZero \'; %Locatia imaginilor de test (puntul
zero)
M=5; % Numarul de imagini de test
RSE = Ra; % Nu
GenerateTest %Procesarea si aplicarea PCA asupra imaginilor de test

Vectors_Test = normalize(Vectors_Test );% norlizarea vectorului de componente
principale
Vectors_Test = rescale(Vectors_Test, -1,1);% Rescalrea vectorului cu valori intre
-1 si 1
[predicted_label, accuracy, decision_values] = svmpredict(NotareTestare,
Vectors_Test', mode l, '-b 0');
TreazPredict = [TreazPredict sum(predicted_label == 1)];
imagesPath = 'GeneratedData \Dupa20min \';
GenerateTest
Vectors_Test = normalize(Vectors_Test);
Vectors_Test = rescale(Vectors_Test, -1,1);%
[predicted_label, accuracy, decision_values] = svmpredict(NotareTestare,
Vectors_Test', model, ' -b 0');
BeatPredict20 = [BeatPredict20 sum(predicted_label == 1)];

73

imagesPath = 'GeneratedData \Dupa50min \';
GenerateTest
Vectors_Test = normalize(Vectors_Test);
Vectors_Test = rescale(Vectors_Test, -1,1);%
[predicted_label, accuracy, decision_values] = svmpredict(NotareTestare,
Vectors_Test', model, ' -b 0');
BeatPredict50 = [BeatPredict50 sum(predicted_label == 1)];
imagesPath = 'GeneratedData \DupaOora \';
GenerateTest
Vectors_Test = normalize(Vectors_Test) ;
Vectors_Test = rescale(Vectors_Test, -1,1);%
[predicted_label, accuracy, decision_values] = svmpredict(NotareTestare,
Vectors_Test', model, ' -b 0');
BeatPredict1h20 = [ BeatPredict1h20 sum(predicted_label == 1)];
end
DateBanch20min = [];
DateBanch50min = [];
DateBanch80min = [];
for i=1:33
%Calcul pentru 20 min
[TPi TNi FPi FNi OAi FRAi MARi] = GetErrors (TreazPredict(i), BeatPredict20(i),
M);
DateBanch20min = [DateBanch20min; TPi TNi FPi FNi OAi FRAi MARi];
% Calcul p entru 50 min
[TPi TNi FPi FNi OAi FRA i MARi] = GetErrors (TreazPredict(i), BeatPredict50(i),
M);
DateBanch50min = [DateBanch50min; TPi TNi FPi FNi OAi FRAi MARi];
% Calcul pentru 80 min
[TPi TNi FPi FNi OAi FRAi MARi] = GetErrors (TreazPredict(i), BeatPredict1h20(i),
M);

74
DateBanch80min = [Dat eBanch80min; TPi TNi FPi FNi OAi FRAi MARi];
end
disp(['Timp de executie dependet: ' num2str(toc)]);
disp(['Medie pentru 20 min: ' num2str(mean(DateBanch20min(1:10,5)))]);
disp(['Medie pentru 50 min: ' num2str(mean(DateBanch50min(1:10,5)))]);
disp(['Medie pentru 1.2 H: ' num2str(mean(DateBanch80min(1:10,5)))]);

%Test analiză independentă de subiect
clear all
clc;
tic
%Adaugare libsvm path
addpath('libsvm')
SF=9850; %numarul de componente
M=230; %Numarul de imagini pentru antrenare
imagesPath = 'GeneratedD ata\NeDeterminat \Train\';
GenerateTrain %generare set de Antrenare
disp('Train database complete');
Notare = []; %Notarea imaginior de train
for i=1:230
if i > 116
Notare = [Notare; 1]; %Treaz
else
Notare = [Notare; 2]; %Beat
end
end
NotareTestare = []; %Notarea imaginior de test
for i=1:5
NotareTestare = [NotareTestare; 1]; %Treaz
end
K = 1e9;

75
inputParams = [' -t ' int2str(1) ' -c ' int2str(K) ' -b ' int2str(0) ' -d '
int2str(3) …
' -g ' int2str(1) ];
Vectors_Train = no rmalize(Vectors_Train);
Vectors_Train = rescale(Vectors_Train, -1,1);
model = svmtrain(Notare, Vectors_Train', inputParams); %antrenare

TreazPredict = [];
BeatPredict =[];
imagesPath = 'GeneratedData \NeDeterminat \Test\';
M=5;
RSE = 0; % numar de start al imaginilor de testare (in functie de starea de
ebrietate)
disp('Test treaz database complete');
for RSE = 0:5:45
GenerateTest %generare set de test
Vectors_Test = normalize(Vectors_Test);
Vectors_Test = rescale(Vectors_Test, -1,1);
[predicted_label, accurac y, decision_values] = svmpredict(NotareTestare,
Vectors_Test', model, ' -b 0');
TreazPredict = [TreazPredict sum(predicted_label == 1)];
end
for RSE = 50:5:95
GenerateTest
disp('Test Beat database complete');
%Testare
Vectors_Test = normalize(Vectors_Test);
Vectors_Test = rescale(Vectors_Test, -1,1);%
[predicted_label, accuracy, decision_values] = svmpredict(NotareTestare,
Vectors_Test', model, ' -b 0');
BeatPredict =[BeatPredict sum(predicted_label == 1)];

76
end
Date =[];
for i=1:10
%calcul pentru 20 min
[TPi TNi FPi FNi OAi FRAi MARi] = GetErrors (TreazPredict(i), BeatPredict(i),
M);
Date = [Date; TPi TNi FPi FNi OAi FRAi MARi];
end

disp(['Timp de executie independet: ' num2str(toc)]);
disp(['Medie: ' num2str(mean(Date(1:10,5)))]);

Similar Posts