Clasificarea afectivă a imaginilor Propusă de Mihai Simona-Nicoleta Sesiunea: februarie, 2017 Coordonator științific Lect. Dr. Anca Ignat… [309316]

UNIVERSITATEA ALEXANDRU IOAN CUZA IAȘI

FACULTATEA DE INFORMATICĂ

LUCRARE DE LICENȚĂ

Clasificarea afectivă a [anonimizat]: februarie, 2017

Coordonator științific

Lect. Dr. Anca Ignat

UNIVERSITATEA ALEXANDRU IOAN CUZA IAȘI

FACULTATEA DE INFORMATICĂ

Clasificarea afectivă a [anonimizat]: februarie, 2017

Coordonator științific

Lect. Dr. Anca Ignat

DECLARAȚIE PRIVIND ORIGINALITATEA ȘI RESPECTAREA DREPTURILOR DE AUTOR

Prin prezenta declar că Lucrarea de licență cu titlul „Clasificarea afectivă a imaginilor” este scrisă de mine și nu a mai fost prezentată niciodată la o altă facultate sau instituție de învățământ superior din țară sau străinătate. [anonimizat], [anonimizat], cu respectarea regulilor de evitare a plagiatului:

[anonimizat], sunt scrise între ghilimele și dețin referința precisă a sursei;

reformularea în cuvinte proprii a textelor scrise de către alți autori deține referința precisă;

[anonimizat]. [anonimizat];

rezumarea ideilor altor autori precizează referința precisă la textul original.

Iași,

Absolvent: [anonimizat]

____________________

DECLARAȚIE DE CONSIMȚĂMÂNT

Prin prezenta declar că sunt de acord ca Lucrarea de licență cu titlul „Clasificarea afectivă a imaginilor”, codul sursă al programelor și celelalte conținuturi (grafice, multimedia, date de test etc.) care însoțesc această lucrare să fie utilizate în cadrul Facultății de Informatică.

[anonimizat], modifice, [anonimizat], [anonimizat].

Iași,

Absolvent: [anonimizat] ____________________

[anonimizat], [anonimizat], [anonimizat].

Încheierea acestui acord este necesară din următoarele motive:

Iași,

Decan Adrian Iftene Absolvent: [anonimizat]

________________________ __________________

Cuprins

Declarații standard …………………………………………………………………………………………………1

Cuprins …………………………………………………………………………………………………………………….4

Capitolul 1. Introducere …………………………………………………………………………………………….5

Capitolul 2. Tratarea materiei în literatura de specialitate…………………………………………….7

2.1 Sistemul K-DIME ……………………………………………………………………………………….7

2.2 Sistemul lui Carlo Colombo și colaboratorii săi………………………………………………8

2.3 Sistemul lui Hayashi și Hagiwara………………………………………………………………….8

2.4 Sistemul lui Sung-Bae Cho……………………………………………………………………………9

2.5 Sistemul lui Wu și colaboratorii săi ………………………………………………………………9

Capitolul 3. IAPS – baza de imagini ………………………………………………………………………….10

Capitolul 4. Spații de culoare …………………………………………………………………………………..13

4.1 Spațiul de culoare RGB………………………………………………………………………………14

4.2 Spațiul de culoare HSV………………………………………………………………………………15

4.3 Transformarea codurilor din RGB în HSB și invers ………………………………………..16

Capitolul 5. Psihologia culorilor………………………………………………………………………………..18

Capitolul 6. Algoritmul de clasificare afectivă a imaginilor ………………………………………22

6.1 Extragerea de trăsături……………………………………………………………………………..22

6.2 Histograme …………………………………………………………………………………………….23

6.3 Algoritmul k-NN ………………………………………………………………………………………24

Capitolul 7. Aplicația ……………………………………………………………………………………………….28

Capitolul 8. Rezultate și concluzii ……………………………………………………………………………37

Bibliografie…………………………………………………………………………………………………………….41

Capitolul 1.

Introducere

Fiecare imagine pe care o vedem ne poate afecta pozitiv sau negativ la nivel emoțional și cognitiv. În ultimii ani, odată cu creșterea utilizării tehnologiei și a fotografiei digitale de către publicul larg, cantitatea de imagini a explodat. Colecții uriașe de imagini sunt disponibile prin intermediul internetului. Aceste arhive digitale cresc rapid și creează necesitatea unor modalități eficiente de accesare a informațiilor. În prezent, majoritatea sistemelor folosesc indexări textuale pentru a găsi imagini relevante. Cu alte cuvinte, se încearcă descrierea imaginilor cu puține cuvinte, dar suficiente pentru a o găsi, dacă este necesar (de exemplu, motorul de căutare Google). În acest context, scopul meu este de a procesa trăsăturile imaginilor pentru a extrage informații despre conținutul emoțional al fiecăreia și de a crea un program ce le clasifică automat. În special am exploatat concepte teoretice și empirice din psihologie pentru a putea extrage caracteristicile emoționale ale imaginilor, semnificațiile culorilor în psihologie și utilizarea acestora.

În realizarea acestor procese am considerat opt clase de emoții: ”amusement”, ”anger”, ”awe”, ”contentment”, ”disgust”, ”excitement”, ”fear” și ”sad”. Pentru a se putea face clasificarea automată am utilizat metode de ”machine learning”, în special algoritmul k-NN.

Testarea și antrenarea a avut la bază un set de fotografii din International Affective Picture System (IAPS) din care s-au extras trăsături de culoare, luminozitate, intensitate și saturație.

La realizarea aplicației am utilizat bibliotecile EmguCV (din OpenCV) pentru procesarea imaginilor și Accord Machine Learning pentru algoritmul de clasificare.

Lucrarea este împărțită în mai multe capitole care descriu atât munca de documentație, cât și aplicația finală.

Primul capitol reprezintă introducerea în domeniu, iar cel de-al doilea prezintă rezolvări ale problemei din literatura de specialitate. Capitolul al treilea conține descrierea bazei de imagini IAPS, dar și a altor baze de date ce conțin fotografii clasificate afectiv. Al patrulea capitol prezintă spațiile de culoare RGB și HSB, iar al cincilea legătura dintre psihologie și culori. A șasea parte din lucrare conține algoritmul de clasificare afectivă a imaginilor utilizat de mine, iar a șaptea aplicația în sine. Ultimul capitol prezintă rezultatele, concluziile și ce îmi propun pentru viitor.

Capitolul 2.

Tratarea materiei în literatura de specialitate

Multe lucrări care s-au ocupat cu detectarea obiectelor, clasificarea evenimentelor sau analiza conținutului la nivel cognitiv au fost publicate, încercând să se elimine decalajul semantic dintre ”cognitiv” și ”afectiv”. Totuși, în cazul clasificării afective a semnalelor vizuale, publicațiile sunt rare și puține. Expresia ”affective computing” a fost definită recent, în 1997, de către Rosalind Wright Picard[1], iar primul framework care realiza un fel de clasificare a imaginilor a fost terminat în 1998[2].

2.1 Sistemul K-DIME

Unul dintre sistemele care fac clasificarea imaginilor este K-DIME[3] (The Kansei (Japanese for sensitivity) Distributed Information Management Environment). Acest software permite utilizatorilor să eticheteze materialul multimedia de pe Internet folosind cuvinte bazice (”copac”, ”casă”) și le filtrează utilizând ”Kansei user model” (KUM). KUM ”învață” o mapare dintre trăsăturile de nivel redus și cuvinte care exprimă emoții, cum ar fi ”romantic”. Un prototip al sistemului K-DIME a fost implementat sub forma planificării unei vacanțe. Utilizatorii puteau căuta ”locuințe cu atmosferă informală”, ”peisaje romantice” etc. Una dintre problemele întâmpinate a fost ca, cu un număr foarte mare de cuvinte existente, utilizatorilor le-a fost greu să utilizeze sistemul, iar rezultatele au fost inconsistente. Cu toate acestea, atunci când a fost furnizată doar o listă de cuvinte, ei au fost capabili să îndeplinească sarcinile de testare. Alegerea vocabularului a avut în continuare un mare impact asupra coerenței rezultatelor.

2.2 Sistemul lui Carlo Colombo și colaboratorii săi

Un alt sistem a fost realizat de către Carlo Colombo împreună cu colaboratorii săi[4]. Aceștia au identificat două niveluri semantice diferite: nivelul expresiv și nivelul emoțional. Nivelul emoțional este construit formal la vârful ierarhiei de semnificații, de la nivelurile de jos, cum ar fi nivelurile de expresie și perceptuale. Regulile au fost făcute să realizeze legături între nivelul de jos și caracteristicile nivelelor superioare(caracteristici de percepție, adică de nivel scăzut, sunt în legătură cu cele expresive și mai departe cu emoțiile). Pentru realizarea acestor reguli s-a apelat la Teoria culorilor lui Itten și la Principiile semiotice de bază, fiind ”traduse” în formule de calcul.

2.3 Sistemul lui Hayashi și Hagiwara

Hayashi și Hagiwara au prezentat în lucrarea lor[2] un alt sistem de clasificare a imaginilor. Ei au utilizat distribuțiile proiecțiilor de culoare RGB pe axa verticală și orizontală drept caracteristici ale imaginilor. Pentru a calcula proiecția, imaginea a fost împărțită în L benzi orizontale și L benzi verticale, iar valoarea medie pe fiecare bandă s-a calculat pentru componentele R, G, B. Astfel, o imagine are caracteristici, unde H reprezintă înălțimea, iar W lățimea fotografiei. Caracteristicile utilizate s-au calculat folosind FFT pe direcțiile orizontale și verticale ale imaginii transformate în tonuri de gri. Ca și cuvinte ce exprimă impresii, autorii au ales 27 de adjective și 8 cuvinte care descriu starea vremii, timpul și anotimpuri. Cele 35 de cuvinte sunt următoarele: primăvara, vara, toamna, iarna, soare, tulbure, apus de soare, noapte, moale, tare, bogat, solemn, cald, călduț, rece, răcoros, uscat, proaspăt, plăcut, drăguț, puternic, rustic, romantic, singur, țară, misterios, urban, clar, pașnic, calm, tânăr, elegant, sever, activ, basm. O rețea neuronală multi-strat a fost antrenată să facă corelațiile dintre caracteristicile imaginilor și cuvintele date. Pentru antrenarea și evaluarea sistemului, 10 utilizatori au făcut legătura dintre 120 de imagini (dimensiunea: 200 X 140) și cele 35 de cuvinte. Astfel, alte imagini au putut fi clasificate automat de către rețeaua neuronală.

2.4 Sistemul lui Sung-Bae Cho

Sung-Bae Cho[5] a dezvoltat o interfață om-calculator pentru a ajuta oamenii în domenii creative, cum ar fi arhitectura, arta, muzica și proiectarea. Tehnica prezentată se numește algoritm genetic interactiv (IGA) și este un algoritm genetic care realizează optimizarea cu ajutorul evaluării umane. Acest sistem oferă o soluție pentru găsirea preferințelor unui utilizator în căutarea de imagini și de muzică. Fiecare imagine este descompusă utilizând ”Haar wavelet transform”, dar numai cele mai mari 50 de valori pentru RGB sunt stocate și utilizate în căutarea imaginilor. Utilizatorilor le sunt prezentate grupuri de câte 12 imagini selectate pe care aceștia le evaluează cu un scor de la 1 la 7. Sistemul ia câte două imagini cu cel mai mare scor, efectuează schimbări de culoare și formă, apoi căutând după aceste noi imagini le va afișa pe următoarele 12 și tot așa până când utilizatorul este mulțumit de rezultat.

2.5 Sistemul lui Wu și colaboratorii săi

Un alt sistem de clasificare a imaginilor a fost cel al lui Wu și colaboratorii săi[6]. Ei au definit nouă perechi de cuvinte afective astfel: frumos – urât, dinamic – static, vesel – trist, activ – pasiv, natural – artificial, tensionat – relaxat, simplu – complex, luminos – întunecat și cald – rece. S-au extras din imagini caracteristici vizuale de nivel scăzut, cum ar fi culoarea, textura și forma. Aceste trăsături au fost utilizate pentru a antrena un ”support vector machine”. Experimentele au fost realizate pe 150 de imagini de antrenare și de test. Doisprezece utilizatori au examinat imaginile și au pus un scor pentru fiecare din cele nouă perechi de cuvinte. Aceste scoruri au fost utilizate pentru antrenare, iar rezultatele de test au fost foarte bune atunci când cele trei trăsături au fost combinate.

Capitolul 3.

IAPS – baza de imagini

Fotografiile utilizate pentru antrenarea clasificatorului se regăsec în baza de date IAPS[7] (The International Affective Picture System). Acest set de poze este format din 716 imagini color realizate de fotografi profesioniști, împărțite în opt clase. În proiectul meu, am utilizat doar 560 de imagini, câte 70 din fiecare categorie.

Imaginile descriu scene complexe care conțin portrene, peisaje, copii, animale, mutilări, boli, poluare, accidente, insecte, șerpi și altele. Inițial, 396 din aceste fotografii au fost clasificate în categorii discrete într-un studiu realizat de Mike et al. Procesul de categorizare s-a efectuat în două etape. Prima etapă a constat într-un studiu pilot cu 20 de subiecți care au clasificat liber acele imagini. Astfel, s-au conturat opt clase: ”amusement”, ”anger”, ”awe”, ”contentment”, ”disgust”, ”excitement”, ”fear” și ”sad”. A doua etapă, cea mai importantă, a fost cea în care 60 de participanți au clasificat imaginile, dar punctând fiecare clasă deja conturată de la 1 la 7. Astfel, cele 396 de imagini au fost etichetate ca fiind specifice unei singure emoții sau fiind un cumul de emoții. Categoriile pozitive au fost considerate ”amusement”, ”awe”, ”contentment”, ”excitement”, iar categoriile negative – ”anger”, ”disgust”, ”fear” și ”sad”. Tabelul următor este un exemplu de clasificare pentru anumite poze din baza de date:

Din aceste imagini se poate observa că nuanțele culorilor au un mare impact asupra clasificărilor, dar acesteaa nu sunt de ajuns.

Distribuția inițială a fotografiilor din baza de date IAPS a fost următoarea, dar pentru a fi echilibrată antrenarea am hotărât limitarea numărului de imagini pentru fiecare categorie, la câte 70 de imagini:

În practică, pentru clasificarea afectivă a imaginilor mai sunt utilizate bazele de date GAPED (Geneva Affective Picture Database) și EmoPics (Emotional Picture System)[25].

Baza de date GAPED are imaginile împărțite în șase categorii, cele negative fiind grupate astfel: paianjeni, șerpi și scene de violență, în timp ce pozele pozitive conțin oameni, animale sau scene din natură. Totuși, un impediment al utilizării acestei baze de date a fost faptul că se găsesc mai multe imagini negative decât pozitive.

Baza de date EmoPics conține 378 de imagini care descriu animale, plate sau situații sociale. La această bază de date, autorii au utilizat și ei trăsături de culoare pe lângă cele fizice.

În concluzie, am utilizat la acest program baza de imagini IAPS, deoarece conținea un număr suficient de imagini pe care am putut să îl echilibrez astfel încât să se facă clasificarea cât mai corectă.

Capitolul 4.

Spații de culoare

Culoarea reprezintă calitatea percepției determinată de compoziția spectrală a luminii primite de ochi. Lumina vizibilă e compusă dintr-o bandă îngustă a spectrului magnetic (lungimile de undă vizibilă sunt cuprinse între 380nm și 780nm[8]).

Imaginea se formează în ochiul uman pe baza luminii focalizate pe retină de lentila oculară. ”Senzația” de culoare este dată de conuri (senzori din retină ce conțin pigmenți fotosensibili cu absorbții spectrale diferite). Conurile sunt clasificați în trei categorii, în funcție de sensibilitatea la lungimile de undă mici, medii sau lungi. Astfel, 65% din conuri sunt sensibile la lumina roșie, 33% la lumina verde, iar 2% la lumina albastră. Datorită conurilor din ochiul uman, culorile sunt văzute ca diferite combinații ale culorilor primare: roșu, verde și albastru. Comisia Internațională de Iluminat[9] (înființată în 1913) a specificat în anul 1931 lungimile de undă corespunzătoare culorilor primare: roșu – 700nm, verde – 546,1nm, albastru – 435,8nm.

Teoria tricromaticității a fost enunțată de către Young[10], Grassmann[11] și Maxwell[12] și face referire la faptul că o culoare este un triplet de numere, corespunzând proiecției spectrului radiației luminoase pe funcțiile caracteristice ale spectrelor ”primare”. Comisia Internațională de Iluminat a standardizat această teoremă și a stabilit în anul 1931 două sisteme primare de reprezentare: RGB și XYZ.

După dezvoltarea sistemelor primare de dezvoltare, au apărut și alte spații de culoare, cum ar fi spațiile perceptuale (familia HSV).

În paginile următoare sunt prezentate spațiile de culoare RGB și HSV.

4.1 Spațiul de culoare RGB

Sistemul RGB[13] (Red, Green, Blue), apărut în anul 1809, la propunerea britanicului Thomas Young[10], consideră ca și culori primare spectrele monocromatice de undă de 700nm, 546,1nm și 435,8nm. Pentru reprezentarea acestor triplete există patru modalități, astfel încât fiecare element este:

un numar real între 0 și 1. Această reprezentare se folosește în analizele teoretice;

scris ca un procent între 0% și 100%;

un număr între 0 și 255, reprezentând valorile pentru un octet;

un număr între 0 și 1023 sau 0 și 65535 sau altele, reprezentând valorile pentru 10-bit, 32-bit sau altele.

În program s-a utilizat reprezentarea cu ajutorul unui număr între 0 și 255, culorile principale având următoarele triplete: red – (255, 0, 0), green – (0, 255, 0) și blue – (0, 0, 255). Toate celelalte culori au fost reprezentate ca și combinații între cele trei valori. Tabelul următor oferă câteva exemple:

Din combinația celor trei culori principale se formează șase culori secundare și doisprezece culori terțiare astfel:

4.2 Spațiul de culoare HSV

Familia HSV[14] propune descrierea culorilor în limbaj natural, dar cu o terminologie specifică: nuanța (ce fel de culoare este – roșu, verde, albastru etc), saturația (cât de pură este culoarea, cu cât alb a fost amestecată culoarea pură pentru a obține culoarea dată) și valoarea.

Culorile sunt reprezentate ca puncte într-un cilindru, iar valorile vor fi luate în considerare astfel: nuanța (hue) va fi o valoare de pe felia conului, saturația (saturation) va fi distanța de la axe, iar distanța de-a lungul acestei axe este valoarea (value).

Din această familie face parte și structura HSB care propune ca ultima valoare din reprezentare să fie pentru luminozitatea culorii. În cilindru, luminozitatea (brightness) se va calcula tot ca distanța de-a lungul axei.

Hue va fi un număr între 0˚ și 360˚, iar saturation și brightness o valoare între 0% și 100%.

În tabelul următor sunt reprezentate câteva culori în sistemul HSB:

4.3 Transformarea codurilor din RGB în HSB și invers

Există un algoritm de transformare a culorilor din reprezentare RGB în reprezentare HSB[15]. Mai jos sunt prezentați pașii pentru transformare:

Pas 1: Schimbăm intervalul [0,255] al codului RGB în intervalul [0,1], prin împărțirea fiecărei componente la 255:

Pas 2: Calculăm variabilele ajutătoare:

Pas 3: Calculăm Hue:

Pas 4: Calculăm Saturation:

Pas 5: Calculăm Brightness:

Transformarea inversă[16] este mult mai ușoară, făcându-se următoarele calcule:

1.

2.

3.

4.

5.

În programul meu, aceste transformări sunt făcute automat de către algoritmii din biblioteca OpenCV[22] (Open Source Computer Vision Library). OpenCV este o bibliotecă ce oferă o infrastructură comună pentru aplicațiile ce necesită procesarea de imagini. Pentru program, s-a utilizat în special Emgu CV[22] care este o platformă .Net adăugată la biblioteca de procesare a imaginii, OpenCV, special pentru dezvoltarea aplicațiilor în C#.

În concluzie, spațiile de culoare utilizate în procesarea imaginilor au fost RGB (Red, Green, Blue) și HSB (Hue, Saturation, Brightness).

Capitolul 5.

Psihologia culorilor

Psihologia culorilor se bazează pe efectele mentale și emoționale a acestora asupra oamenilor, în toate aspectele vieții. Fiecare culoare determina un răspuns emoțional și unic pentru fiecare om. Predominanța unei culori într-o imagine induce o anumită stare. Figura 7 prezintă emoțiile transmise de fiecare culoare și nuanță.

Vibranța reprezintă luminozitatea și întunecimea unei culori. Astfel, fiecare nuanță are propriile sale proprietăți. În timp ce verde deschis și verde închis au mai multe în comun decât verde și violet, acestea au efecte mai subtil diferite asupra omului. În general, nuanțele mai deschide tind să fie mai energice decât cele închise. Nuanțele deschise ”atrag ochiul”, în timp ce nuanțele închise crează un efect captivant.

Combinațiile culorilor de bază (roșu, albastru, verde) formează culorile secundare. Culorile sunt împărțite în: culori calde – roșu, portocaliu, galben – culori reci – albastru, verde, violet – și culori neutre (de obicei sunt calde sau reci) – bej, crem, negru, alb, gri[17]. Culorile calde produc o stare de căldură, fericire, mulțumire, în timp ce culorile reci oferă sentimente de tristețe, melancolie, singurătate. Totuși, trezirea unor tipuri de sentimente țin foarte mult și de fiecare persoană în parte. De exemplu, dacă unei persoane îi place culoarea roșu, aceasta va avea o stare de bine atunci când o vede, dar unei persoane care preferă alte culori, este posibil să îi ofere o stare de anxietate.

Fiind cea mai lungă lungime de undă, roșu[18] este o culoare puternică. Această culoare are proprietatea de a face un lucru să pară mai aproape decât este și, prin urmare, captează foarte repede atenția. Efectul său este unul fizic, ne stimulează și crește rata pulsului, dând impresia că timpul trece mai repede. Pe deoparte are efecte pozitive asupra noastră, roșul reprezentând curajul, puterea, căldura, energia, supraviețuirea, stimularea, masculinitatea, dragostea. Pe de altă parte, roșul poate avea și efecte negative asupra noastră dacă îl considerăm reprezentant al agresivității, fricii.

Albastrul[18] este ”culoarea minții” și este, în general, liniștitor. Această culoare ne afectează mai mult mental, decât fizic cum e la roșu. Albastrul puternic stimulează gândirea clară, în timp ce albastrul închis va ajuta la concentrare. Obiectele albastre par a fi mai aproape de noi. Ca efecte pozitive asupra noastră, albastrul induce o stare de încredere, seninătate, eficiență, calm. Efectele negative pot fi stările de răceală, distanțare.

Culoarea verde[18] ”lovește ochiul” în așa fel încât pare odihnitor.Fiind în centrul spectrului, această culoare este una de echilibru. În mod pozitiv, verdele poate reprezenta armonie, echilibru, pace, încredere, admirație. În mod negativ, această culoare poate reprezenta frica, plictiseala, enervarea, stagnarea.

Cea mai scurtă lungime de undă este violet[18]. Această culoarea induce introvertirea și încurajează contemplarea profundă, meditația. Violetul induce o stare spirituală de conștientizare, viziune, lux, dar și introvertire, decadență, inferioritate.

Lungimea de undă a culorii galben[18] este relativ lungă și în mod esențial de stimulare. În psihologie, galbenul este culoarea cea mai puternică pentru stimularea emoțională. Galbenul reprezintă optimismul, încrederea, stima de sine crescută, extraversiunea, creativitatea, dar și iraționalitatea, frica, fragilitatea emoțională, anxietatea.

Din moment ce este o combinație între roșu și galben, portocaliul[18] stimulează atât fizic, cât și emoțional. Această culoare stimulează mintea noastră pe concentrarea asupra problemelor de confort fizic (mâncare, căldură, adăpost). Totuși, atunci când portocaliul este utilizat cu negru, poate crea efectul opus. În egală măsură, prea mult portocaliu poate sugera frivolitate și o lipsă de valori intelectuale.

Fiind o nuanță de roșu, roz[18] ne afectează tot din punct de vedere fizic, dar mai mult calmează decât stimulează. Psihologic, rozul este o culoare puternică. Această culoare reprezintă principiul feminin și supraviețuirea speciei. Rozul stimulează feminitatea, dragostea, sexualitatea, dar și inhibarea, slăbiciunea fizică.

Griul[18] este singura culoare care nu are proprietăți psihologice directe. Este, totuși, destul de supresiv. Acesta reprezintă neutralitatea, dar și depresia, starea de hibernare.

Negrul[18] este combinația tuturor culorilor. Implicațiile psihologice ale acestei culori sunt considerabile. Cu ajutorul negrului se creează bariere de protecție, deorece absoarbe toată energia. Negrul este, în esență, o absență a lumii, deoarece lungimile de undă nu sunt reflectate și poate, prin urmare să fie amenințător(mulți oameni se tem de întuneric). Negrul creează o percepție a sofisticării, siguranței, dar și a amenințării, răcelii, fricii.

Dacă negrul este de absorbția totală, albul[18] este de reflecție totală. Într-adevăr, această culoare reflectă forța deplină a spectrului în ochii noștri. Vizual, albul oferă o percepție sporită a spațiului. Pozitiv, culoarea alb reprezintă puritatea, claritatea, simplitatea. Negativ, poate fi înțeles ca o barieră.

Maroul[18], de obicei format din roșu, galben și mult negru, are o parte din proprietățile negrului, dar este mai cald. Această culoare are asocieri cu pământul și lumea naturală. Maroul reprezintă încrederea, liniștea, susținerea.

Astfel, fiecare culoare are un impact psihologic asupra oamenilor, dar contează starea de spirit dintr-un anume moment pentru a fi afectați pozitiv sau negativ de vederea sa. De aceea, culorile sunt utilizate chiar și în terapii alternative, cum ar fi cromoterapia[19]. De exemplu, roșul este indicat pentru anemie, răceală, depresie, în timp ce albastrul este recomandat pentru cei care au hipertensiune arterială, afecțiuni ale gâtului sau dureri de cap. În această terapie alternativă se consideră că celor care au grupa sangvină A(2) sau AB(4) le sunt favorabile culorile verde-închis și albastru deschis, în timp ce celor care au grupa B(3) le sunt benefice roșu, portocaliu, albastru și verde.

Totuși, așa cum a fost precizat încă din capitolul ”Introducere”, o imagine transmite mult mai multe decât o mie de cuvinte, indiferent de starea noastră, de preferințele noastre sau de ceea ce recomandă terapiile alternative: culorile ”vorbesc”.

Capitolul 6.

Algoritmul de clasificare afectivă a imaginilor

Algoritmul de clasificare afectivă a imaginilor a constat în trei pași:

primul pas a reprezentat extragerea de trăsături de culoare din imaginile din baza de date

pasul al doilea a presupus crearea de histograme pentru conținutul de culoare

al treilea pas a constat în clasificarea propriu-zisă utilizând algoritmul k-NN

6.1 Extragerea de trăsături

Clasificarea afectivă a imaginilor a fost realizată cu ajutorul corelațiilor dintre imaginile aflate în baza de date IAPS[7]. Din fiecare imagine s-au extras câte paisprezece caracteristici legate de culori, saturație, luminozitate și intensitate.

Trăsăturile necesare pentru clasificarea afectivă a imaginilor au fost extrase cu ajutorul unui algoritm foarte simplu. Pentru fiecare imagine au fost analizați toți pixelii. La un pixel se lua în considerare saturația, luminozitatea și intensitatea pentru a se putea calcula o medie totală pentru imaginea respectivă, dar și ce fel de culoare reprezenta pentru a se putea realiza histograma necesară. Un pixel putea fi considerat de una sau mai multe culori, în fucție de condițiile pe care le îndeplinea codul său RGB. Aceste condiții au fost alese prin încercări, până când culorile verificate erau clasificate corect. Pentru fiecare culoare s-au considerat niște intervale care au fost exprimate cu ajutorul distanței Manhattan în care coordonatele primului punct se schimbă în funcție de necesitate. Formula calculării distanței Manhattan pentru un caz general în care punctele sunt și este următoarea:

Tabelul de mai jos prezintă condițiile distanței Manhattan pentru considerarea unui pixel de o anumită culoare:

După clasificarea tuturor pixelilor, ca și trăsătură, se memora procentajul culorilor și astfel se realizau histogramele necesare.

6.2 Histograme

Histogramele[20] reprezintă grafice prin care se poate exprima participarea procentuală a unor entități. În clasificarea imaginilor am utilizat histogramele pentru a exprima participarea procentuală a culorilor în fiecare imagine.

Histogramele de mai jos reprezintă exemple pentru câteva imagini:

Se observă că unele procentaje sunt destul de asemănătoare (de exemplu pentru galben si portocaliu), deoarece fiecare pixel putea fi considerat ca aparținând mai multor culori. Totuși, acest lucru nu ne-a afectat algoritmul de clasificare afectivă a imaginilor.

6.3 Algoritmul de clasificare k-NN

Algoritmul utilizat la clasificarea afectivă a imaginilor este algoritmul k-Nearest Neighbor(k-NN). Pentru clasificarea unei noi date, metoda se bazează pe găsirea altor înregistrări similare în datele de antrenament. Acești ”vecini” sunt folosiți pentru a deriva clasificarea noului obiect prin ”votare”.

Algoritmul k-NN este o metodă de clasificare a obiectelor care utilizeaza cele mai apropiate k obiecte din baza de date de antrenament. "K-NN folosește învățarea bazată pe instanțe, unde funcția este aproximată local, iar calculele efective sunt amânate până la clasificare. Acest algoritm este cel mai simplu dintre cei de învățare automată: un obiect este clasificat în funcție de votul majoritar al vecinilor săi, de cele mai multe ori fiind clasat în categoria din care fac parte cei mai mulți dintre cei k vecini. K este un număr întreg, pozitiv.

Acest algoritm este o metodă de clasificare care nu ține cont de relațiile dintre membrii claselor și a atributelor, ci se folosește de informațiile extrase din similitudinile dintre valorile atributelor obiectelor memorate deja. Vecinii sunt aleși dintr-un set de obiecte pentru care se știe clasificarea corectă. Aceste obiecte pot fi considerate ca date de învățare, chiar dacă pentru acest algoritm nu există o etapă specifică de antrenare. Se poate considera, totuși, că etapa de antrenament algoritmului constă în memorarea proprietăților obiectelor și a etichetelor claselor pentru datele de antrenament.

Pentru găsirea vecinilor, toate obiectele sunt reprezentate ca vectori de poziție într-un spațiu multi-dimensional caracteristic. Datele de test (datele pentru imaginea pe care dorim să o clasificăm) sunt reprezentate tot ca un vector în spațiu multi-dimensional caracteristic. Selectarea primilor k vecini se realizează după calcularea distanței de la noul vector la cei existenți și aflarea celor mai mici k distanțe. Distanța este calculată cu distanța Euclidiană. Astfel, distanța Euclidiană dintre două obiecte, unul din setul de date de antrenament (x1, x2, …, xn) și unul nou care trebuie catalogat (y1, y2, …, yn) este:

.

După calcularea distanței dintre obiectul care trebuie clasificat și celelalte înregistrări, este necesară o regulă de asociere a acestuia la una din clasele primilor k vecini cu cea mai mică distanță. Un punct în spațiu este atribuit unei clase c, dacă această clasă c este cea mai frecventă etichetă a claselor celor mai apropiate k date de antrenament.

Alegerea valorii k se face în funcție de datele de intrare. Dacă k este mare, se reduce ”zgomotul” în procesul de clasificare, dar trasează bariere între clasele asemănătoare"[21]. În cazul nostru, k a fost ales 15, un număr impar, pentru a evita să avem un număr egal de vecini din clase diferite.

Utilizând acest algoritm de clasificare și baza de date de ”antrenament”, am făcut următorul ”experiment”: dorim să vedem clasificarea aceleiași imagini, dar care are diferite culori predominante. Imaginea inițială a fost transformată astfel încât să predomine pe rând culoarea verde, roșu și magenta. Aceste transformări s-au realizat utilizând Microsoft Office Picture Manager din suita Microsoft Office 2007, modificând saturația, intensitatea nuanțelor și cantitatea de culoare.

Rezultatele pentru două fotografii modificate au fost următoarele:

Din rezultate se observă că emoția transmisă este în strânsă legătură cu cea mai predominantă culoare. Astfel, în acest program, este foarte important în clasificarea afectivă a imaginilor ce culoare iese în evidență, conținutul nefiind considerat.

Bineînțeles, pentru clasificarea imaginilor putea fi utilizat orice alt algoritm de învățare automată, cum ar fi: algoritmul Bayes naiv, K-Means, arbori de decizie etc.

Algoritmul Bayes se utilizează pentru clasificarea unor date neetichetate cu ajutorul unor estimări realizate pe baza unor date de antrenare deja etichetate. Algoritmul constă în atribuirea noii instanțe a celei mai probabile valori țintă având valorile atributelor care o descriu.

Algoritmul K-means este unul de clusterizare. Acesta presupune alegerea a k centroizi de cluster și asignarea punctelor la acestea alegând centroidul cel mai apropiat de punctul respectiv. Centroidul poate migra pe măsură ce punctele sunt asignate la un cluster.

Arborii de decizie sunt utilizați pentru a estima apartenența unor obiecte la clase diferite, plecând de la măsurile lor în raport cu una sau mai multe variabile predictoare. La acești arbori, fiecare nod exprimă testarea după o anumită trăsătură (atribut), fiecare ramură reprezintă rezultatul testului (”Da” sau ”Nu”), iar fiecare frunză reprezintă clasele.

În concluzie, la acest program s-a utilizat algoritmul k-NN, având ca și ”date de antrenament” imaginile din baza de date IAPS, folosind distanța Euclidiană dintre caracteristici și având posibilitatea alegerii unui răspuns din opt prin aflarea celui mai apropiat vecin din cincisprezece. Totuși, trebuie amintit și ținut cont că la această clasificare s-au considerat doar trăsăturile de culoare, saturație, luminozitate și intensitate.

Capitolul 7.

Aplicația

Aplicația este un program realizat cu ajutorul Visual Studio 2015, iar codul este scris în limbajul C#. Acest limbaj este creat să fie simplu, de uz general, axat pe programarea orientată pe obiect.

Programul complet este format din patru subprograme, fiecare având un rol important, dar existând mereu legături între ele.

În prima parte se creează structura bazei de date. Proiectul ”DBPhoto” este de tip Class Library (.dll) pentru a putea fi folosit de următoarele trei subprograme. Baza de date a fost creată cu ajutorul Entity Framework din ADO.NET. Entity Framework este orientat pe obiect și permite programatorilor să lucreze cu date relaționale. O aplicație ce utilizează acest framework poate fi centrat pe baza de date sau pe model (Code First sau Model Design First). Aplicația aceasta este centrată pe model, fiind dezvoltată Model Design First. Prima dată s-a desenat o diagramă a modelului și apoi, cu ajutorul mediului de dezvoltare, s-a creat și generat baza de date, tabelul și informațiile adiționale necesare Entity Framework. Baza de date se numește ”Licență” și conține un tabel ”Photos” format din mai multe fotografii (”Photo”) din care se extrag mai multe proprietăți.

Acest program a fost creat doar pentru a dezvolta structura bazei de date. În această parte nu se populează baza de imagini cu trăsăturile acestora.

Imaginea de mai jos conține diagrama utilizată în program după care mediul de dezvoltare a realizat și generat baza de date, tabelul și celelalte informații necesare.

Partea a doua este programul ”AddPhotos” care face popularea propriu-zisă a bazei de date. Tipul programului este Console Application și conține două clase. Clasa ”Add.cs” este formată din mai multe metode care fac posibilă popularea bazei de date.

Metoda ”Features” primește ca parametru o imagine și returnează un vector de 14 caracteristici. Se parcurge imaginea pixel cu pixel, iar pentru fiecare în parte, se extrag cu ajutorul librăriei Emgu din OpenCV, trăsăturile necesare (structura RGB și HSB).

Așa cum am precizat în capitolul 4, ”Spații de culoare”, OpenCV[22] (Open Source Computer Vision Library) este o bibliotecă ce oferă o infrastructură comună pentru aplicațiile ce necesită procesarea de imagini, dar și o mașină de învățare. Biblioteca conține mai mult de 2500 de algoritmi optimizați, atât clasici, cât și de ”state-of-the-art computer vision”. Acești algoritmi pot fi utilizați pentru detectarea și recunoașterea fețelor, identificarea obiectelor, clasificarea acțiunilor umane în videoclipuri etc.

Emgu CV[23] este o platformă .Net adăugată la biblioteca de procesare a imaginii, OpenCV, special pentru dezvoltarea aplicațiilor în C#. Această platformă are două straturi:

stratul de bază (layer 1) ce conține funcții, structuri și enumerări mapate

stratul secundar (layer 2) ce conține diferite clase

Structura HSB extrasă a fost utilizată pentru însumarea fiecărei componente în parte. Apoi, așa cum am prezentat în capitolul 6, ”Algoritmul de clasificare afectivă a imaginilor”, având structura RGB, se verifică dacă fiecare pixel este de o anumită culoare și este contorizat. Astfel, pentru fiecare imagine s-a realizat o histogramă a culorilor. Reamintim că un pixel poate fi considerat în același timp ca fiind de mai multe culori (de exemplu, dacă se află la ”granița” dintre roșu și portocaliu, respectivul pixel va fi contorizat atât ca roșu, cât și ca portocaliu). Pentru alegerea culorilor s-au considerat condițiile reprezentate în Tabelul 4 de la pagina 23.

După parcurgerea tuturor pixelilor s-a calculat media pentru Hue, Brightness și Saturation, dar și procentajul pentru fiecare culoare. Toate aceste caracteristici sunt salvate într-un vector ce este returnat.

În program, variabilele red, green, blue rețin codul RGB al pixelului, iar variabilele r, b, g, y, v, o, p, gr, bl, w și br contorizează culorile din care face parte pixelul. În variabilele bri, sat și hu s-au extras proprietățile de luminozitate, saturație și intensitate ale pixelului, iar sh, ss și sb reprezintă sumele pe fiecare componentă în parte. Vectorul fts este cel returnat, pe primele trei poziții având mediile pentru Hue, Brightness și Saturation, iar pe următoarele 11 procentajele de culoare.

Imaginea de mai jos prezintă codul pentru metoda publică Features.

Următoarele metode (”AddAmusement”, ”AddAnger”, ”AddAwe”, ”AddContentment”, ”AddDisgust”, ”AddExcitement”, ”AddFear” și ”AddSad”) sunt utilizate în adăugarea fotografiilor în baza de date. Din fiecare categorie sunt adăugate câte 70 de imagini (din baza generală de date IAPS). Pentru fiecare fotografie este creat vectorul de caracteristici utilizând metoda ”Features”, apoi creată câte o entitate ”Photo” ce este adăugată în baza de date.

În clasa ”Program.cs” se apelează metodele din clasa ”Add.cs” pentru a se adăuga toate fotografiile în baza de date ce vor fi considerate ”date de antrenament” pentru clasificatorul k-NN.

Baza de date conține acum 560 de imagini, fiecare având caracteristicile sale. Aceste informații se pot afla foarte repede utilizând SQL Server 2014 Management Studio:

Partea a treia este programul ”Classification” care face clasificarea fotografiilor, utilizând algoritmul k-NN. Tipul programului este Console Application și conține două clase. Acest proiect a fost realizat pentru testarea mult mai rapidă a imaginilor și aflarea rezultatelor pentru concluzii.

Clasa ”Class.cs” conține doi vectori (inputs și outputs) și metoda ”Classif” prin care se realizează clasificarea imaginilor. În acest program am utilizat pachetul ”Accord”. Accord.NET[24] este un framework pentru calcul științific. Acesta este format din mai multe biblioteci care cuprind o gamă largă de aplicații de calcul științific (procesare de date, mașini de învățare, recunoaștere de modele, distribuții de probabilitate, testarede ipoteze etc.). Biblioteca utilizată este ”Accord.MachineLearning” pentru că are dezvoltați algoritmi de învățare automată, printre care k-NN, Bayes naiv, SVM, arbori de decizie etc.

Metoda ”Classif” primește ca parametru o imagine de tip ”Photo” (o imagine cu vectorul de caracteristici) și returnează un întreg de la 1 la 8 care reprezintă clasa din care face parte fotografia. Pentru a se putea face clasificarea, cei doi vectori sunt populați astfel: vectorul ”inputs” primește de la fiecare imagine din baza de date 13 trăsături , iar vectorul ”outputs” clasificarea fiecăreia.

După umplerea celor trei vectori, se creează o variabilă de tip ”KNearestneighbors” (din biblioteca ”Accord.MachineLearning”) unde se ia în considerare k egal cu 15, numărul de clase 8 și cei doi vectori creați (”inputs” și ”outputs”). Pentru a găsi cei mai apropiați 15 de vecini se utilizează metoda ”GetNearestNeighbors”, iar pentru aflarea vecinului cel mai apropiat s-a folosit o expresie lambda. Rezultatul expresiei va fi returnat de către metoda ”Classif”.

Clasa ”Program.cs” conține metoda ”Main”. În această metodă se preia imaginea din calculator, i se realizează vectorul de trăsături, apoi se apelează metoda ”Classif” pentru clasificarea acesteia, aflarea rezultatului și afișarea lui. În această metodă se calculează și procentajul clasificării (cât la sută este cu siguranță imaginea din acea categorie, ținând cont de vecinii găsiți de algoritm). Acest proiect a fost realizat pentru cercetarea mai ușoară a rezultatelor de test.

Partea a patra cuprinde proiectul ”MyApp” de tip Windows Forms și reprezintă legătura directă dintre utilizator și aplicație. Proiectul conține trei clase care dezvoltă interfața programului, fiecare având rolul său. Windws Forms este o platformă pentru dezvoltarea de aplicații Microsoft Windows, ce oferă posibilitatea programatorului de a crea figurile necesare astfel încât să interacționeze cu utilizatorul. Cu ajutorul acestei platforme se pot prezenta date utilizatorului, dar și primi înapoi răspunsuri, astfel încât să se realizeze programe interactive.

Prima clasă dezvoltă o fereastră, utilizând OpenDialogFile, în care utilizatorul are posibilitatea de a alege ce imagine dorește să fie clasificată. După ce este aleasă imaginea, programul creează o variabilă de tip ”Image<Bgr, Byte>” care este transmisă ca parametru pentru cea de-a doua formă, iar prima interfață este ascunsă pentru utilizator. Pentru a se putea crea acea variabilă, s-a utilizat din nou platforma OpenCV.

Cea de-a doua formă prezintă utilizatorului imaginea aleasă și două butoane care îi oferă posibilitatea de a alege, dacă dorește, clasificarea acesteia sau alegerea unei imagini noi. Forma a doua primește ca parametru o imagine de la prima formă pe care o trimite către cea de-a treia dacă utilizatorul dorește clasificarea acesteia. Dacă utilizatorul apasă pe cel de-al doilea buton, această formă dispare și apare din nou prima care oferă posibilitatea alegerii unei noi imagini.

Dacă utilizatorul dorește clasificarea imaginii alese, se va deschide cea de-a treia formă care conține fotografia, clasificarea, dar și un buton pentru alegerea uneia noi. Clasificarea se realizează cu ajutorul algoritmului dezvoltat în clasa ”Class.cs” din proiectul ”Classification”. Între cele trei forme există mereu făcută legatură cu ajutorul butonului de selectare a unei noi imagini.

Programul afișează în cea de-a treia formă clasificarea imaginii, fiind reprezentată atât prin unul din cuvintele specifice (”Amusement”, ”Anger”, ”Awe”, ”Contentment”, ”Disgust”, ”Excitement”, ”Fear”, ”sad”), dar și printr-un emoticon care sugerează mai bine clasa rezultată. Toate acestea au fost posibile datorită utilizării de forme din Windows Forms.

Reamintim, la acest program s-au utilizat bibliotecile OpenCV (EmguCV) pentru procesarea de imagini, dar și Accord Machine Learning pentru algoritmul de clasificare.

Clasificarea din acest program, s-a realizat, după cum am mai specificat, bazându-se doar pe caracteristicile de culoare, luminozitate, intensitate și saturație ale fiecărei imagini în parte, fără a se ține cont de alte trăsături, cum ar fi cele de conținut sau textură.

Capitolul 8.

Rezultate și concluzii

Întrucât sunt doar opt clase, am realizat mai multe teste pentru a vedea comportamentul programului. Aceste teste au constat în luarea câtorva imagini de pe internet și clasificarea lor cu ajutorul programului. Pentru aflarea acestor rezultate s-a utilizat programul ”Classification” din proiect, deoarece este mai rapid și oferă și un procentaj ce reprezintă cât de sigură este clasificarea. Mai jos, se va explica de ce acest procentaj nu este foarte mare.

Tabelul următor prezintă imaginile de test, clasificarea și procentajul clasificării:

Reamintim că pentru clasificarea noastră nu contează conținutul imaginilor, ci doar culorile predominante. De aceea, procentajul clasificării nu este foarte mare. Este posibil ca în datele de antrenament mai multe imagini care au conținut coloristic asemănător să fi aparținut unor clase diferite, iar când dorim clasificarea unei noi imagini asemănătoare cu celelalte să existe un număr egal de vecini cu etichete diferite și astfel, rezultatul nu este foarte mulțumitor. Prin urmare, pentru optimizarea rezultatelor, ar trebui pentru fiecare imagine adăugate trăsături de textură și conținut. Dacă s-ar adăuga aceste trăsături, atunci și procentajul de clasificare ar crește. Acest lucru este demonstrat chiar de către proiectul lui Wu[6] și al colaboratorilor săi, în care procentajul de clasificare este foarte crescut atunci când sunt combinate toate cele trei trăsături: de culoare, conținut și textură.

Trăsăturile de conținut ar fi cele mai importante pentru optimizarea programului. De exemplu, dacă am avea două imagini în care predomină aceeași culoare, dar cu diferite conținuturi, atunci ele ar trebui să fie clasificate distinct, dar ținând cont că programul nostru se bazează doar pe culori, saturație, luminozitate și intensitate, acele imagini sunt considerate ca fiind din aceeași clasă. Astfel, trăsăturile de conținut ar putea fi extrase cu ajutorul algoritmilor ce recunosc fețe umane, lucruri sau animale.

Așa cum se observă din tabelul 4, de la pagina 26, din capitolul 6 ”Algoritmul de clasificare afectivă a imaginilor”, trăsăturile de conținut ar fi foarte importante pentru clasificare. Dacă s-ar ști de exemplu ce conține imaginea, atunci clasificarea s-ar realiza combinând cele două trăsături și ar fi mult mai precisă.

Mai jos este prezentat un exemplu de două imagini similare coloristic, dar diferite din punct de vedere al conținutului și care primesc din partea aplicației clasificări neașteptate.

După conținut, prima imagine din Figura 29 ar putea fi clasificată ca fiind de tip ”Excitement” (pozitiv), iar cea de-a doua de tip ”Fear” (negativ), dar clasificarea lor a fost ”Disgust” și ”Anger”, ambele de tip negativ, chiar dacă prima fotografie are un impact pozitiv.

Pentru viitor, îmi propun introducerea în program a acestor trăsături de conținut, dar și crearea unei legături cu rețelele de socializare pentru a studia dacă prezența unei imagini de un anume tip, duce la publicarea de către alți utilizatori de imagini de același tip sau de tip contrar. De exemplu, dacă un utilizator ar posta o fotografie cu o pisică jucăușă, să se verifice dacă ceilalți utilizatori ce comentează includ imagini de același tip, pozitive (alte animale jucăușe), sau nu, negative (animale fioroase). Trăsăturile de conținut ar putea fi adăgate ca un vector ce conține cuvinte care descriu fiecare imagine în parte, dar și utilizând algoritmi de recunoaștere facială.

De exemplu, în figura 30, este prezentată situația în care postarea unei imagini amuzante duce la comentarii care conțin alte fotografii amuzante, dar și reacțiile care sunt de asemenea pozitive.

Importanța acestor tip de programe constă în posibilitatea creării legăturilor cu alte domenii astfel încât efectele negative ale imaginilor asupra omului să nu fie dezastruoase. De exemplu, aceste programe ar putea fi dezvoltate astfel încât postarea pe o rețea de socializare a unei imagini care este clasificată de tip negativ să ducă la afișarea unui avertisment de tipul ”Atenție! Imagini care vă pot afecta emoțional!”, blurarea sa ori chiar ștergerea automată.

În concluzie, domeniul clasificării afective a imaginilor și a impactului lor asupra oamenilor este destul de puțin exploatat, dar ar putea fi dezvoltat astfel încât să se evite afectarea emoțională negativă a oamenilor. Cu toate că este mult de muncă, tehnologiile evoluează foarte repede, iar îmbunătățirea acestor tip de programe ar trebui să țină pasul, mai ales dacă se ține cont de numărul în creștere de imagini care apar zilnic.

Bibliografie

[1]Picard R: "Affective Computing" The MIT Press, Cambridge, 1997.

[2]Itten J: "The art of color : the subjective experience and objective rationale of color" John Wiley, NewYork, 1973.

[3]Bianchi-Berthouze N: "K-dime: an affective image filtering system. Multi- media, IEEE", Volume 10(Issue 3):103–106, 2003.

[4]Colombo C, Del Bimbo A, Pala P: "Semantics in visual information retrieval. Multimedia, IEEE", 6(3):38–53, 1999

[5]Sung-Bae Cho: "Emotional image and musical information retrieval with inter- active genetic algorithm. Proceedings of the IEEE" ,92(4):702–711, 2004.

[6] Wu Chaonan Wang Qingfeng, Changle Zhou: "Content-based affective image classification and retrieval using support vector machines. Affective Computing and Intelligent Interaction", 2005

[7] http://csea.phhp.ufl.edu/Media.html#topmedia

[8]http://www.tex.tuiasi.ro/biblioteca/carti/CURSURI/Prof.%20Dr.%20Ing.%20Augustin%20Muresan/Curs%2014.%20Evaluarea%20culorii.pdf

[9]CIE 1931: "Proceedings of the Eighth Session", Cambridge, England 1931; Bureau Central de la CIE, Paris (1931); http://cnri.ro/cie/

[10] Young, T: "On the theory of light and colours", Philos Trans Lond 92 (1802)

[11] Grassmann, HG: "Zur Theorie der Farbenmischung", Annalen der Physik 89 (1853), tradus în engleză: MacAdam, DL, Ed: ”Selected Papers in Colorimetry – Fundamentals”, SPIE Milestone Seres MS 77 (1993)

[12] Maxwell, JC: ”On the theory of compound colours and the relations of the colours of the spectrum”, Philos Trans R Soc Lond 150 (1860)

[13]http://www.optique-ingenieur.org/en/courses/OPI_ang_M07_C02/co/Contenu_07.html

[14] http://infohost.nmt.edu/tcc/help/pubs/colortheory/web/hsv.html

[15] http://www.rapidtables.com/convert/color/rgb-to-hsv.htm

[16] http://www.rapidtables.com/convert/color/hsv-to-rgb.htm

[17] http://infobazar.ro/casa/Teoria-culorilor/Notiuni-de-baza-despre-culori

[18] http://www.creativebloq.com/web-design/12-colours-and-emotions-they-evoke-61515112/1

[19] http://www.terapii-naturiste.ro/terapii-alternative/cromoterapie/ghid-utilizare-culori.

[20] htm Atanasiu, N: Dicționar de termeni – Sedimentologie – Petrologie sedimentară – Sisteme depoziționale

[21]http://www.cs.ubbcluj.ro/~gabis/DocDiplome/InstanceBasedL/Morariu%20Alina%20Bianca-%20Lucrare%20de%20licenta.pdf

[22]http://opencv.org/about.html

[23]http://www.emgu.com/wiki/index.php/Main_Page

[24]http://accord-framework.net/intro.html

[25] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4030128/

Similar Posts