universitatea “alexandru ioan cuza” iaŞi …adiftene/licenta/licenta2012_pitumihai.pdfetc.)...
TRANSCRIPT
UNIVERSITATEA “ALEXANDRU IOAN CUZA” IAŞI
FACULTATEA DE INFORMATICĂ
LUCRARE DE LICENȚĂ
Tehnici de adnotare automată a imaginilor
propusă de
Mihai Pîțu
Sesiunea: Iulie, 2012
Coordonator științific
Dr. Adrian Iftene
1
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
UNIVERSITATEA “ALEXANDRU IOAN CUZA” IAŞI
FACULTATEA DE INFORMATICĂ
Tehnici de adnotare automată a imaginilor
Mihai Pîțu
Sesiunea: Iulie, 2012
Coordonator științific
Dr. Adrian Iftene
2
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Declaraţie privind originalitate şi respectarea drepturilor de autor
Prin prezenta declar că Lucrarea de licenţă cu titlul „Tehnici de adnotare automată a
imaginilor” este scrisă de mine și nu a mai fost prezentată niciodată la altă facultate sau instituție
de învățământ superior din țară sau străinătate. De asemenea, declar că toate sursele utilizate,
inclusiv cele preluate de pe Internet, sau indicate în lucrare, cu respectarea regulilor de evitare a
plagiatului:
toate fragmentele de text reproduse exact, chiar și în traducere proprie din altă limbă, 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ă;
codul sursă, imagini etc. preluate din proiecte open-source sau alte surse sunt utilizate cu
respectarea drepturilor de autor și dețin referințe precise;
rezumarea ideilor altor autori precizează referința precisă la textul original.
Iași,
Absolvent: Mihai Pîțu
_______________
3
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Declaraţie de consimţământ
Prin prezenta declar că Lucrarea de licenţă cu titlul „Tehnici de adnotare automată 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ă. De asemenea,
sunt de acord ca Facultatea de Informatică de la Universitatea Alexandru Ioan Cuza Iaşi să
utilizeze, modifice, reproducă şi să distribuie în scopuri necomerciale programele-calculator,
format executabil şi sursă, realizate de mine în cadrul prezentei lucrări de licenţă.
Iași,
Absolvent: Mihai Pîțu
_______________________
4
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Acord privind proprietatea dreptului de autor
Facultatea de Informatică este de acord ca drepturile de autor asupra programelor-
calculator, format executabil şi sursă, să aparţină autorului prezentei lucrări, Mihai Pîțu.
Încheierea acestui acord este necesară din următoarele motive:
Iași,
Decan: Dr. Adrian Iftene Absolvent: Mihai Pîțu
_______________________ _______________________
5
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Cuprins
1. Introducere ..................................................................................................................................... 6
1.1. Motivație ....................................................................................................................................... 6
1.2. Competiția ImageCLEF – Annotation Task ................................................................................... 7
1.3. Concluziile capitolului ................................................................................................................... 9
2. Definiții și exemple ........................................................................................................................10
2.1. Extragerea trăsăturilor imaginilor folosind PEF (Profile Entropy Features) ...................................10
2.2. Clasificarea datelor folosind SVM (Support vector machines) .......................................................11
2.3. Ontologii ......................................................................................................................................14
2.4. Codebooks - dicționare de cuvinte vizuale ....................................................................................14
2.5. Extragerea cuvintelor vizuale........................................................................................................16
2.6. Exploatarea tag-urilor definite de utilizatori ..................................................................................22
2.7. Exploatarea coloristicii imaginilor - Momentele culorilor .............................................................23
2.8. Detectarea fețelor .........................................................................................................................25
2.9. Concluziile capitolului ..................................................................................................................26
3. Abordări în sistemele existente .....................................................................................................27
3.1. Participări la ImageCLEF 2009 Annotation Task ..........................................................................27
3.2. Participări la ImageCLEF 2011 Annotation Task ..........................................................................28
3.3. Concluziile capitolului ..................................................................................................................29
4. Descrierea sistemului ....................................................................................................................30
4.1. Cerințe .........................................................................................................................................30
4.2. Detalii de implementare ................................................................................................................31
4.3. Extragerea trăsăturilor imaginilor .................................................................................................32
4.4. Clasificarea imaginilor de test .......................................................................................................34
4.5. Postprocesare ...............................................................................................................................38
4.6. Evaluare .......................................................................................................................................39
4.7. Concluziile capitolului ..................................................................................................................41
5. Contribuții personale, rezultate și direcții de viitor .....................................................................42
Bibliografie .............................................................................................................................................43
6
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
1. Introducere
1.1. Motivație
Procesarea automată a imaginilor cu ajutorul agenților constituie o ramură provocatoare a
inteligenței artificiale, cu impact important asupra unor arii largi de aplicații cum ar fi indexarea
și căutarea de imagini după categorii pe Web, recunoașterea de modele în domenii precum
medicina, rețele sociale, construcții și altele. Sistemele actuale de căutare de imagini, Google
Image sau Bing Images se bazează pe descrieri și adnotări textuale ale imaginilor, fără a analiza
conținutul acestora, așadar acestea nu pot fi folosite pentru căutare în colecții de imagin i
neadnotate.
Viziunea calculatoarelor (Computer Vision) este un domeniu de actualitate cu aplicații în
lumea aplicațiilor 3D, robotică sau aplicații Web. Tehnicile folosite pentru a proiecta un software
care să înțeleagă obiectele sau mediul dintr-o anumită imagine sunt strâns legate de algoritmii
folosiți în Machine Learning (învățarea automată a mașinilor), antrenând mai întâi programul prin
exemple. Pentru procesarea imaginilor algoritmii existenți fac parte din categoria metodelor de
învățare supervizată. Această metodă presupune un set de date de intrare prelucrat (imagini care
au conținutul cunoscut) suficient de semnificativ astfel încât să se poată deduce o funcție numită
clasificator (dacă output-ul este discret) sau funcție de regresie (dacă output-ul este continuu).
Tehnici precum: Support Vector Machines1 (SVM) [1], Generative Models
2, Boosting
3, multiple
instance learning, active learning și altele au fost folosite pentru a clasifica și indexa imagini până
în prezent.
1 http://www.support-vector-machines.org/ 2 http://en.wikipedia.org/wiki/Generative_model 3 http://www.cs.princeton.edu/~schapire/boost.html
7
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
1.2. Competiția ImageCLEF – Annotation Task
ImageCLEF reprezintă o competiție organizată de CLEF4
(Cross Language Evaluation
Forum) cu aplicații în domeniul CBIR5 - Regăsirea bazată pe conținutul imaginilor (Content-
Based Image Retrieval); acest lucru presupune „regăsirea” de imagini dintr-o colecție mare de
date folosind doar informațiile vizuale conținute de aceste imagini, pe baza unor interogări
textuale. Organizatorii au propus mai multe sarcini precum: CBIR cu interogări în diferite limbi
internaționale; Medical CBIR presupune regăsirea de imagini similare privind o anumită temă
medicală; Adnotarea automată de fotografii (Annotation task); Adnotarea automată de fotografii
cu temă medicală.
Nevoia adnotării automate de imagini a apărut datorită creșterii exponențiale de informații
vizuale pe Web și nu numai, așadar sunt necesare sisteme care să indexeze, să caute pe baza
conținutului sau să organizeze aceste informații vizuale. Aceste sisteme sunt încă imperfecte, iar
din acest motiv nu sunt încă acceptate pe scară largă. În competiția ImageCLEF - Annotation
Task organizată în 2011 (rezultate – Tabelul 1), participanții au trebuit să adnoteze un set de test
de 10,000 de imagini publice de pe site-ul de partajare a imaginilor, Flickr6, folosind 99 de
concepte vizuale predefinite. Această sarcină putea fi rezolvată folosind următoarele abordări:
1. Adnotarea automată folosind doar informații vizuale (V)
2. Adnotarea automată bazată pe meta-datele imaginii sau adnotările manuale ale
utilizatorilor (T)
3. Abordări multi-modale, ce implică o combinație între abordările de mai sus (M)
Câteva dintre cauzele dificultății adnotării imaginilor sunt:
Diversitatea conceptelor la nivelul unei singure imagini
Subiectivitatea adnotării conceptelor prezente (precum sentimentele) în datele de
antrenament
Volumul de date dezechilibrat (sunt mai multe exemple relevante pentru un anumit
concept decât pentru altul, în setul de antrenament)
4 http://clef-campaign.org/ 5 http://en.wikipedia.org/wiki/Content-based_image_retrieval
6 http://imageclef.org/2012/photo-flickr/
8
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Calitatea imaginii
Colecția de imagini de test au avut adnotări manuale pentru cele 99 de concepte. Aceste
concepte variază de la diferite scene în care a fost făcută fotografia (în aer liber, din interior,
panoramic, macro, etc.), obiecte prezente în imagine (animale, persoane, etc.), reprezentarea
imaginii (portret, pictură, etc.) până la calitatea imaginii (neclară, supraexpusă, subexpusă, etc.).
În anul 2011 au fost evaluate și sentimentele prezente în imagine – Figura 1 (clasificate după
modelul din [2]), față de competițiile din anii trecuți.
Figura 1: Sentimentele transmise de imagini au fost asignate manual folosindu-se aplicația MTurk7 [3]
Grupul Locul F-measure
ISIS 1 0.62
LIRIS 14 0.57
TUBFI 17 0.56
CEALIST 42 0.50
LAPI 70 0.39
Tabelul 1: Rezultate pentru o parte din echipele participante la ImageCLEF 2011
În competiția ImageCLEF - Annotation Task organizată în 2012, organizatorii au stabilit 94
de concepte8 grupate în 18 categorii:
Momentul zilei: zi, noapte
7 www.mturk.com 8 http://imageclef.org/2012/photo-flickr/concepts
9
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Corpuri cerești: soare, lună, stele
Vreme: cer senin, cer acoperit de nori, cer parțial acoperit de nori, curcubeu
Combustie: flăcări, fum, artificii
Iluminare: umbre, reflecție, siluetă, efect de lentile,
Panoramă: munte, deșert, pădure, ţărm de mare, oraș, rural, graffiti
Apă: subacvatic, ocean, lac, râu, alte contexte în care apare apa
Floră: copaci, plante, flori, iarbă
Faună: pisică, câine, cal, pește, pasăre, insectă, păianjen, reptilă, rozătoare
Număr de persoane: nicio persoană, o persoană, două persoane, trei persoane, grup
mic, grup mare
Sexul persoanei: masculin, feminin
Relațiile dintre persoane: familie sau prieteni, colegi de muncă, străini
Calitatea imaginii: fără estompare, estompare parțială, estompare completă, estompare
de mișcare, artefacte
Stilul imaginii: imagine în imagine, distorsiune circulară, text pe imagine, alb-negru
Vizualizarea: portret, macro, în interiorul unei clădiri, în exteriorul unei clădiri
Cadru: viața de oraș, petrecere, acasă, recreere, mâncare
Sentimente: bucuros, calm, inactiv, melancolic, neplăcut, înfricoșător, activ, euforic,
amuzant
Tipul de transport: bicicletă, mașină, camion, tren, transport pe apă, transport aerian
Problema subiectivității și a faptului că este posibil ca o imagine să nu fie adnotată cu toate
conceptele existente în imagine (de exemplu, în setul de imagini de training, doar 40% sunt
adnotate cu sentimente) rămâne și în competiția din acest an.
1.3. Concluziile capitolului
În acest capitol am făcut o scurtă introducere în domeniul Computer Vision și a problemei
adnotării automate de imagini, prin prisma participării la competiția ImageCLEF 2012
Annotation Task. Această competiție presupune detectarea unui număr de 94 de concepte
prestabilite într-un set de imagini de test, pe baza unui set de imagini de antrenare.
10
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
2. Definiții și exemple
2.1. Extragerea trăsăturilor imaginilor folosind PEF (Profile Entropy Features)
Pentru a clasifica conținutul unei imagini, se calculează un descriptor de imagine (capabil
să surprindă particularitățile fiecărei imagini) folosind anumite caracteristici extrase din imagine.
Majoritatea tehnicilor implementate până în prezent se bazează pe distribuția culorilor în imagine
(color histogram9). O nouă tehnică propusă în [4] numită Profile Entropy Features (PEF) are
avantajul combinării caracteristicilor texturii cu formele prezente în imagine, precum și o viteză
sporită în execuție.
Această tehnică presupune normalizarea10
imaginii RGB actualizând canalele Red, Green
și Blue astfel: r = R/l, g=G/l, b=1-r-g, unde l=(R+G+B)/3.
reprezintă proiecția ortogonală a
pixelilor pe axa orizontală X, respectiv
, proiecția ortogonală a pixelilor pe axa verticală Y,
unde op este operatorul de proiecție, care poate fi media aritmetică sau media armonică a
valorilor luminanţei (en. luminance11
) pentru fiecare pixel. Apoi pentru fiecare canal roșu, verde,
albastru și operator op se calculează
( ) (
) , unde I este imaginea dată, pdf
reprezintă funcția probabilităților distribuite12
pe N intervale (N = √ , S = lungimea unei linii de
pixeli sau a unei coloane de pixeli), definită în [5]. Se folosesc apoi componentele entropiei
normalizate:
( ) (
( ))
, ( )
(
( ))
, ( )
( ( ))
,
Unde H este funcția entropie pentru histograme:
( ) ∑ ( )
9 http://www.jatit.org/volumes/research-papers/Vol6No1/13Vol6No1.pdf
10 http://www.aishack.in/2010/01/normalized-rgb/ 11 http://www.drdrbill.com/downloads/optics/photometry/Luminance.pdf 12
http://mathworld.wolfram.com/ProbabilityDensityFunction.html
11
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Acest algoritm se repetă pentru fiecare din cele 3 regiuni (Figura 2) din imagine împărțite
în mod egal din imaginea originală.
Figura 2: Împărțirea imaginii originale în regiuni pentru a surprinde textura imaginilor panoramice (partea
de sus, de obicei cerul, partea de mijloc, obiectul din imagine, iar partea de jos, gazon, apă, etc.)
În final, caracteristicile PEF reprezintă concatenarea valorilor , și ,
rezultând un vector de 45 de elemente (3 canale RGB * 5 trăsături * 3 regiuni).
2.2. Clasificarea datelor folosind SVM (Support vector machines)
SVM13
(Mașini cu vectori suport) constitute o tehnică eficientă de clasificare a datelor.
Această tehnică presupune un set de date pentru antrenare (training) și un set de date de test14
.
Fiecare instanță din setul de antrenament este deja clasificată ca aparținând unei anumite clase, iar
acest set de date este folosit pentru a creea un model care este capabil să eticheteze instanțele din
setul de test ca aparținând unei anumite clase. Așadar pentru un set de date de învățare S, o
instanță este de forma (xi, yi), i {1, 2, …, l}, xi ϵ Rn and yi {-1, 1}, iar acest set este liniar
separabil dacă există astfel încât ( ) . SVM caută soluția problemei
de optimizare [6]:
minw,b,ξ
w
Tw + C ∑
yi (wT (w) + b) 1 - ,
13 http://www.support-vector-machines.org 14
Introducere Învățare automată: http://robotics.stanford.edu/~nilsson/MLBOOK.pdf
12
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Funcția mapează vectorii de training într-un spațiu dimensional mai mare, deoarece
acest lucru simplifică problema separării celor două clase. Valoarea C reprezintă penalitatea
pentru valorile de eroare (Figura 3 - distanța de la fiecare instanță din setul de training pană la
linia separatoare). O valoare mică pentru C conduce la un model SVM mai permisiv, iar o valoare
mare pentru C minimizează numărul de puncte incorect clasificate în datele de antrenament.
Figura 3: Linia separatoare dintre cele două mulțimi Figura 4: Funcția kernel15
Funcția kernel pentru mașini cu vector suport este caracterizată de următoarea teoremă:
Teorema lui Mercer:
Fie o funcție simetrică. Există o funcție astfel încât:
( ) ( ) ( ) dacă și numai dacă ∫ ( ) ( ) ( )
Pentru orice funcție f astfel încât ∫ ( ) este finit. Această teoremă spune că matricea
Gram16
( ( ( ) ( )), unde ( ) ( ), sunt instanța i, respectiv j din datele de antrenare)
asociată funcției kernel trebuie să fie simetrică și pozitiv semidefinită (condiție necesară și
suficientă), iar funcția nu mai trebuie calculată.
Dacă și sunt funcții kernel ce respectă teorema lui Mercer, atunci se pot construi și
alte funcții kernel , astfel:
15 Funcții SVM Kernel: http://crsouza.blogspot.com/2010/03/kernel-functions-for-machine-learning.html 16
http://mathworld.wolfram.com/GramMatrix.html
13
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
( ) ( ) ( )
( ) ( ), unde a ϵ
( ) ( ) ( )
Pentru o clasificare non-liniară, se folosesc și alte funcții pentru a separa mulțimile numite
kernel-uri (Figura 4). Dintre acestea cele mai folosite sunt:
Linear: ( )
Polinomial: ( ) ( ) , unde d este gradul polinomului
RBF: ( ) (
) (sau ( ) ( ) ) unde ||p|| = poziția
unui punct într-un spațiu Euclidian17
Sigmoid: r ( ) ( ), unde tanh este funcția tangentă hiperbolică18
Chi-square: χ2(x, y) = ∑
( )
( )
, acest kernel vine de la distribuția chi-square
19 și
a dat rezultate bune pentru clasificarea de imagini în sistemele actuale.
Parametrii γ, d și r sunt de obicei diferiți de la o problemă la alta.
Pentru a învăța un clasificator SVM folosind un set de date de training, se urmează următorii
pași20
:
1. Se transformă datele de intrare (trăsăturile imaginii) în formatul svmLight21
.
2. Se scalează datele de intrare: acest pas este important pentru a evita lucrul cu numere mari
și pentru a evita debalansarea problemei (de exemplu în cazul folosirii kernelului RBF).
Valorile atributelor trebuie să fie în intervalul [-1, 1] sau [0, 1]. Această scalare trebuie
făcută și pe datele de test.
3. Se alege un kernel pentru clasificator (pentru început ar trebui considerat RBF, apoi
pentru clasificarea de imagini se poate considera kernelul χ2).
17 http://xlinux.nist.gov/dads/HTML/euclidndstnc.html 18
http://en.wikipedia.org/wiki/Hyperbolic_function 19 http://mathworld.wolfram.com/Chi-SquaredDistribution.html 20 http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf 21
http://svmlight.joachims.org/
14
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
4. Se folosește cross-validation pentru a găsi cei mai buni parametrii C și γ deoarece acești
parametri sunt diferiți în funcție de problemă. Tehnica de cross-validation (secțiunea 4.5)
presupune selectarea unui set de test din datele de training pentru a verifica acuratețea
clasificării. Acest lucru previne problema supraestimării.
5. Se folosesc parametrii C și γ generați de cross-validation pentru a antrena întreg setul de
intrare.
În domeniul clasificării imaginilor, apare problema apartenenței unei imagini la mai multe
clase (o imagine poate conține mai multe concepte, de exemplu elemente de natură cât și oameni,
etc.). Acest lucru presupune un tip de clasificare diferit de cel tradițional, iar una din cele mai
folosite tehnici este clasificarea binară. Această clasificare este o extensie a metodei One-
Against-All [7] și presupune etichetarea imaginilor ce conțin exemple relevante pentru un
concept dat, ca fiind exemple pozitive, restul imaginilor din setul de date training fiind etichetate
ca fiind exemple negative. Se antrenează câte un Svm pentru fiecare concept prezent în datele de
training.
2.3. Ontologii
O ontologie (în informatică) definește o structură formală a lucrurilor și a relațiilor dintre
ele. Folosind o mulțime de concepte structurate într-o ontologie, se pot face presupuneri asupra
altor concepte similare cu unul asignat deja. De exemplu, dacă într-o imagine se află nori, se
poate infera că fotografia este făcută spre cer, sau că imaginea este de tip panoramă. Acest lucru
poate fi folosit pentru a genera și alte adnotări pentru o imagine în care s-a identificat cel puțin un
concept. În setul de date de antrenare oferit de Image CLEF, imaginile adnotate respectă în
relațiile semantice dintre concepte, de exemplu, dacă o imagine a fost adnotată cu
weather_lightning, aceasta va conține (cu probabilitate mare) și conceptul view_outdoor.
2.4. Codebooks - dicționare de cuvinte vizuale
Pentru a evita folosirea multor proprietăți vizuale ale imaginii (lucru care îngreunează
clasificarea), se folosesc așa numitele transformări codebook. Se definește întâi o mulțime de
cuvinte vizuale (en. codewords – un set de exemple sau parametrii ce poate fi comparat cu un
15
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
pattern similar – Figura 5), apoi se folosește o distribuție a frecvențelor codeword-urilor ca un set
compact de trăsături ce reprezintă imaginea. Astfel, un codeword este reprezentativ pentru mai
mulți descriptori vizuali similari. Această abordare a fost inspirată din metoda „sacului de
cuvinte” (bag of words22) din domeniul procesării limbajului natural23, în care se definește un set
de cuvinte cu ajutorul căruia se construiesc tabele de frecvențe pentru diferite documente text.
Figura 5: Modelul codebook: o imagine reprezentată sub forma unei mulțimi de regiuni (bag-of-regions),
fiecare regiune fiind reprezentată de cel mai bun codeword din vocabularul (codebook-ul) predefinit
Pentru a construi un codebook, se extrag trăsături dintr-un set de imagini de antrenament.
Una din cele mai folosite metode pentru a defini codewords este “rețeaua de pătrate” (Figura 5),
în care imaginea este segmentată, obținându-se astfel patch-uri locale ce descriu diferite texturi
prezente în imagine. O altă tehnică pentru a obține codewords este folosirea algoritmilor (ex.
SIFT, SURF, Harris-Laplace) ce identifică puncte de interes locale și definesc descriptori
(vectori) de lungime fixă în jurul acestor puncte de interes (Figura 6). Acești descriptori ar trebui
să fie invarianți24
la rotiri, scalări, schimbări în iluminare sau alte transformări, astfel încât în
momentul în care se dorește compararea acestora, proprietățile lor să rămână neschimbate.
Avantajul construirii unui codebook este în primul rând viteza procedeului de potrivire a
imaginilor și faptul că acest proces se face folosind cele mai importante cuvinte vizuale în raport
cu imaginea.
22 http://www.cs.huji.ac.il/~daphna/course/student%20lectures/noam%20aigerman.pdf 23 http://en.wikipedia.org/wiki/Natural_language_processing 24
http://books.google.ro/books?id=dp2xHfJz2d0C&printsec=frontcover&hl=ro#v=onepage&q&f=false
16
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Figura 6: Patch-uri extrase folosind SURF Figura 7: Patch-uri extrase folosind SURF din două clustere
(sursa [8])
Construcția unui codebook presupune folosirea algoritmului de clustering, k-means –
Tabelul 2. Algoritmul minimizează numărul inițial de trăsături la un număr de clustere k
predefinit. Se asignează apoi fiecărei trăsături un singur codeword (centru de cluster)
reprezentativ, tehnică denumită și hard-assignment25
- Figura 7.
Init: selectează k centre de clustere aleatoriu
Repeat:
-Asignează puncte din mulțimi către cei mai apropiați clusteri
-Actualizează centrul clusterului folosind media distanței
euclidiene a punctelor clusterului.
-Șterge centrele clusterilor: reactualizează aleator
Until: Nicio schimbare
Tabelul 2: Algoritmul k-means26
2.5. Extragerea cuvintelor vizuale
Cercetările din ultimii ani din domeniul Computer Vision și-au îndreptat atenția către
extragerea de trăsături locale ale imaginilor deoarece acestea tind să captureze mai bine semantica
imaginilor decât cele globale (histograme de culori, intensități, texturi, etc.) și să asigure
invarianța la transformări afine. Aceste trăsături locale sunt asociate cu diferite modele prezente
în anumite părți ale imaginii (puncte, margini sau mici patch-uri). După ce aceste puncte de
25 http://nlp.stanford.edu/IR-book/html/htmledition/flat-clustering-1.html 26
https://www.ai-class.com/course/video/videolecture/68
17
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
interes au fost identificate în imagine, se calculează diferite măsurători în vecinătate, construindu-
se astfel descriptori.
Top-Surf27
este o librărie capabilă să extragă puncte de interes folosind SURF (Speeded
Up Robust Features) [9] și să identifice cuvintele vizuale prezente în imagine pe baza unui
dicționar de cuvinte vizuale (codebook) preconstruit.
SURF (Speeded Up Robust Features) este un algoritm inspirat din descriptorul SIFT28
(Scale-invariant feature transform) care optimizează partea de construcție a descriptorului vizual.
SURF folosește o măsură bazată pe distribuția trăsăturilor de tip Haar29
și matricea Hessiană30
a
imaginii pentru a detecta punctele de interes31
. În cazul SURF, punctele de interes sunt extrase
din punctele de extrem peste întreg spațiul de scalări folosind determinatul matricei Hessiene [8]:
(( ) ) [ ( ) ( )
( ) ( )]
Unde ( ) , se referă la convoluția (derivarea) imaginii de ordinul 2 cu kernelul
Gaussian, la scalarea . În plus, imaginea este analizată la mai multe scalări pentru a obține
invarianță la modificări ale dimensiunii (Figura 8), iar descriptorul conține orientarea dominantă
pentru fiecare punct de interes pentru a obține invarianță la rotire (Figura 9).
Figura 8: Construcția spațiului de scalare folosind metoda reprezentării piramidale32
. Scalările sunt obținute
prin aplicări succesive ale unui filtru Gaussian [9]
27 http://press.liacs.nl/researchdownloads/topsurf/ 28 http://www.cs.berkeley.edu/~malik/cs294/lowe-ijcv04.pdf 29
http://grail.cs.washington.edu/pub/stoll/wavelet1.pdf 30 http://www.math.vt.edu/people/dlr/m2k_svb11_hesian.pdf 31 http://nichol.as/papers/Schmid/Evaluation%20of%20Interest%20Point%20Detectors.pdf 32
http://web.mit.edu/persci/people/adelson/pub_pdfs/pyramid83.pdf
18
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Figura 9: Selecția orientării descriptorului. Se calculează o sumă a intensităților pixelilor (roșu) cuprinși de
fereastra glisantă (gri) formându-se vectori orientați. Vectorul cu modul cel mai mare determină orientarea
descriptorului [9]
Numărul de puncte de interes găsite poate să varieze între 0 și câteva mii, în funcție de
dimensiunea sau detaliile imaginii (de exemplu dacă imaginea este monocoloră, niciun punct de
interes nu va fi returnat). Într-un experiment prezentat în [24], într-o imagine se găsesc în medie
176 de puncte de interes cu o deviație standard de 85.3 (experiment realizat pe 100,000 de
imagini redimensionate la o rezoluție de 256x256 pixeli). Deoarece fiecărui punct de interes îi
corespunde un descriptor (ce conține un vector de 64 de elemente în cazul SURF33
, 128 de
elemente în cazul SIFT) se pune problema potrivirii acestor descriptori (Figura 10) cu cei prezenți
într-o bază de date, acest lucru fiind posibil folosind, de exemplu, ca măsură distanța euclidiană
dintre doi vectori.
Pentru construcția codebook-ului, au fost extrase 33.5 milioane de puncte de interes dintr-
o bază de date cu imagini, fiecare punct de interes fiind considerat o locație în R64
. Apoi se aplică
o metodă de clusterizare34
astfel încât fiecare punct de interes să aparțină unui singur cluster,
această tehnică aplicându-se de mai multe ori. Centrele acestor clustere reprezintă cuvintele
dicționarului vizual nou creat.
33 http://www.vision.ee.ethz.ch/~surf/eccv06.pdf 34
http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/
19
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Figura 10: Descriptorul Top-Surf. Cele mai frecvente 100 de cuvinte vizuale
Asemenea abordărilor în ceea ce privește procesarea limbajului natural, acestor cuvinte
vizuale li se pot atribui greutăți în funcție de importanța lor în documente (de exemplu cuvintele
vizuale ce au o frecvență ridicată de apariție în toate documentele, pot fi considerate mai puțin
importante (stop-words35
) decât cele care apar cu frecvență mare în documente specifice). O
măsură ce s-a dovedit de succes [11] în acest sens este tehnica tf-idf weighting. Frecvența unui
termen (term frequency - tf) reprezintă numărul de apariții al unui cuvânt (vizual) într-un
document, care poate fi normalizat pentru a preveni discriminarea documentelor cu număr mai
mic de cuvinte. Frecvența inversă a unui termen într-un document (Inverse document frequency -
idf) este o măsură care determină dacă un cuvânt este rar într-un set de documente.
( )
Unde t este un cuvânt vizual, #D – cardinalitatea mulțimii de documente D, iar d un document din
D.
( ) ( ) ( ) (tf-idf weighting)
35
http://en.wikipedia.org/wiki/Stop_words
20
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Folosind această măsură, fiecare cuvânt vizual din descriptorul Top-Surf va primi un scor, iar
distanța dintre doi descriptori (vectori din RN) poate fi calculată folosind similaritatea cosinus
36
sau diferența absolută.
Formula de calcul a similarității cosinus dintre doi vectori poate fi derivată din definiția
produsului scalar:
( ) ( )
| | | |
∑
√∑ ( ) √∑ ( )
Unde d1 * d2 reprezintă produsul scalar (intersecția) dintre cei doi descriptori, iar ||d|| reprezintă
norma vectorului d. Deoarece descriptorii sunt formați din greutăți tf-idf (strict pozitive) pentru
fiecare cuvânt vizual, scorul de similaritate cosinus va aparține intervalului [0, 1] (unghiul dintre
cei doi vectori nu depășește 90 grade), 1 pentru descriptori identici, 0 pentru descriptori absolut
diferiți.
O altă tehnică folosită pentru a compara doi descriptori este diferența absolută37
, definită
astfel:
( ) ∑
Unde |r| reprezintă modulul numărului real r, care în acest caz este egal cu diferența absolută a
scorurilor tf-idf pentru cel de-al i-lea cuvânt vizual din cei doi descriptori. Această măsură tinde
să discrimineze descriptorii cu lungimi de cuvinte vizuale diferite. Scorul calculat de distanța
absolută aparține intervalului [0, ) (0 pentru descriptori absolut identici).
Mărimea descriptorului returnat de algoritmul SURF constituie o motivație pentru
proiectarea Top-Surf (pentru o colecție de 100,000 de imagini descriptorii SURF necesită
aproximativ 4.5Gb, iar descriptorii Top-Surf – Figura 10, aproximativ 80Mb). Pentru o imagine a
cărui descriptor Top-Surf trebuie calculat, se extrag mai întâi punctele de interes SURF, acestea
fiind agregate într-o histogramă de frecvențe, căutând cărui cuvânt vizual din codebook îi
36 http://www.ir-facility.org/scoring-and-ranking-techniques-tf-idf-term-weighting-and-cosine-similarity 37
http://users.cis.fiu.edu/~lli003/Music/cla/42.pdf
21
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
corespunde fiecare punct de interes (cu descriptorul său asociat) extras din imagine (Figura 11).
Se asignează mai apoi un scor fiecărui cuvânt vizual din histogramă folosind tf-idf weighting, iar
primele N (o constantă definită) cuvinte vizuale cu scorul cel mai mare vor fi returnate ca fiind
noul descriptor.
Figura 11: Histograma primelor 25 cuvintelor vizuale cu scorul tf-idf cel mai mare a imaginii din figura 7
Experimentele din [10] atestă faptul că pentru a extrage punctele de interes folosind
algoritmul SURF este nevoie în medie de 0.37s, la care se mai adaugă 0.07s pentru calculul
descriptorului Top-Surf. Dimensiunea constantei N nu afectează timpul de extragere a
descriptorului deoarece frecvențele cuvintelor vizuale trebuie sortate indiferent de N, însă la
momentul comparării descriptorilor, o valoare mai mare pentru N va determina un timp de
execuție mai mare. De asemenea, mărimea codebook-ului este direct proporțională cu timpul de
extragere al descriptorului. În schimb, pentru a compara descriptorul Top-Surf al unei imagini cu
cei prezenți într-o bază de date, este nevoie în medie de 0.2ms (experiment realizat cu o bază de
date de 100 000 imagini) deoarece sunt maxim N (de obicei 100) cuvinte vizuale de comparat în
fiecare imagine, în contrast cu timpul de execuție al descriptorilor SURF pentru care fiecare punct
de interes al imaginii trebuie comparat cu fiecare punct de interes al imaginilor din baza de date
(numărul de puncte de interes poate ajunge la câteva mii).
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
8429
10778
11501
12639
21443
22719
37796
38357
43659
46721
46847
52273
56601
58760
62191
64041
65139
65726
100009
103432
104877
106957
107138
108055
111752
tf-idf
22
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
2.6. Exploatarea tag-urilor definite de utilizatori
În unele situații, informația vizuală nu este de ajuns pentru a da o interpretare semantică a
conținutului imaginii. Atunci când sunt definite adnotări făcute de o persoană (tag-uri diferite de
conceptele prezentate în secțiunea 1.2) putem exploata semantica acestora pentru a îmbunătăți
“judecata” sistemului bazat pe informații vizuale. Problemele ce apar la aceste abordări sunt
legate de faptul că numărul de tag-uri (Figura 12) este relativ mic (sau 0) pentru o imagine
(comparativ cu un document text), pot fi dintr-o multitudine de limbi, unele sunt subiective sau
irelevante și pot fi alcătuite din mai multe cuvinte (de exemplu, rarebook, artgallery,
selectivecolor, etc.) sau abrevieri (exemplu: b.w.). Aceste probleme împiedică buna funcționare a
metodelor tradiționale folosite la procesarea limbajului natural.
Figura 12: Fotografie adnotată de un utilizator Flickr cu tag-urile: book, oldbook, rarebook, latin, greek,
library, bornin1550, deadlanguage, libro
Grupul CEALIST [12] propune în participarea la ImageCLEF 2011 o măsură de similaritate
dintre fiecare tag și conceptele vizuale pe baza ontologiei Wordnet38
și a teoriilor privind rețelele
sociale. Autorii din [13] au demonstrat faptul că o clasificare bazată pe teoria modelului spațial
vectorial39
ce folosește măsuri precum tf (frecvența unui termen) sau idf (frecvența inversă a unui
termen) este inadecvată pentru analiza tag-urilor propuse de utilizatori din cauza problemelor
prezentate în paragraful anterior. De exemplu, pentru conceptul însorit (en. sunny), cele mai
frecvente tag-uri (experiment realizat la competiția ImageCLEF 2011) au fost: albastru (en.
blue), Cannon, Nikon, nori (en. clouds), însă există și concepte pentru care frecvența tag-urilor
38 http://wordnet.princeton.edu/ 39
http://cogsys.imm.dtu.dk/thor/projects/multimedia/textmining/node5.html
23
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
corespunde cu semnificația conceptului. De asemenea, aceeași autori propun un kernel SVM
liniar bazat pe cele mai frecvente tag-uri prezente în setul de antrenare, idee întâlnită și în
abordările din [14] sau [15].
Această abordare presupune construcția unui vocabular de cuvinte ce conține tag-urile atașate
imaginilor de antrenare, ce apar de cel puțin k ori (în experimentele din [13] s-a folosit k=3,
respectiv k=16). Acest proces filtrează în mare parte tag-urile irelevante și rare, rezultând un
număr de n tag-uri, ce vor fi folosite pentru a asigna fiecărei imagini un vector binar n-
dimensional, a cărei i componentă va fi 1 dacă imaginea este adnotată cu tag-ul i din vocabular și
0, altfel. Kernelul liniar SVM ce clasifică astfel de vectori este următorul:
( )
Unde este produsul scalar dintre vectorul binar transpus și vectorul . Kernelul KG
numără câte tag-uri sunt partajate de cei doi vectori (corespondenți celor două imagini de
comparat). Acest kernel conduce la o reprezentare multi-dimensională rară (multe valori nule
între imagini), iar acest lucru poate afecta performanțelor clasificatorului, însă în combinație cu
alte kernel-uri s-a arătat o îmbunătățire semnificativă a rezultatelor.
2.7. Exploatarea coloristicii imaginilor - Momentele culorilor
Momentele culorilor [16] (en. Color moments) reprezintă o măsură bazată pe
caracteristicile culorilor (distribuțiile culorilor) din imagine, care a fost folosită cu succes în
domeniul CBIR (Content-Based Image Retrieval).
Această metodă a fost dovedită a fi mai performantă (de aceeași autori din [16] și de
experimentele din această lucrare) decât metodele convenționale bazate pe distribuția culorilor
(e.g. histograme de culori). Construcția unei histograme de culori H(I) presupune
redimensionarea imaginii astfel încât fiecare imagine din baza de date (în contextul CBIR) să
conțină același număr de pixeli, iar apoi culorile din imagine să fie discretizate astfel încât fiecare
interval din histogramă este numărul de apariții al culorii j in imaginea I. Cu toate acestea,
histograma de culori nu este invariantă la modificări sensibile precum transformări afine,
distorsiuni sau modificări ale iluminării (Figura 13).
24
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Figura 13: Histogramele de culori pentru aceeași imagine însă cu iluminări diferite
Această măsură se bazează pe presupunerea că distribuția culorilor într-o imagine poate fi
văzută ca o distribuție de probabilități peste o imagine. Acest lucru se face pe baza analizei
tendinței centrale (statistică descriptivă) a distribuției culorilor folosind media, a împrăștierii
valorilor culorilor folosind deviația standard și a asimetriei (skewness) distribuției culorilor în
imagine. Pentru a caracteriza o culoare prezentă în imagine se poate folosi modelul de culori40
RGB (roșu, verde, albastru) sau HSV (nuanță, saturație, luminozitate), fiecare model fiind
reprezentabil într-un sistem 3-dimensional (cartezian pentru modelul RGB, cilindric pentru
modelul HSV). Așadar fiecare dimensiune a modelului de culori ales, este caracterizată de 3
măsuri ale distribuției culorii (media, deviația standard și asimetria), rezultând un vector de 9
momente ce va caracteriza imaginea din punct de vedere coloristic.
∑
Unde este valoarea pixelului j din imagine în dimensiunea i a modelului de culori ales, iar N
este numărul de pixeli din imagine. este media valorilor culorilor din imagine pentru
dimensiunea i a modelului de culori.
40
http://software.intel.com/sites/products/documentation/hpc/ipp/ippi/ippi_ch6/ch6_color_models.html
25
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
√
∑( )
Unde este deviația standard a distribuției culorilor pentru dimensiunea i a modelului de culori.
√
∑( )
Unde este asimetria distribuția culorilor pentru dimensiunea i a modelului de culori.
Pentru a compara vectorii descriptivi ai imaginilor se poate folosi distanța euclidiană sau
funcția de similaritate dintre două imagini , respectiv :
( ) ∑( |
| |
| |
|)
Unde i reprezintă dimensiunea curentă a modelului de culori, sunt ponderi ce pot fi ajustate
pentru a obține diferite rezultate (de exemplu, dacă este folosit modelul HSV, nuanța culorii poate
avea o pondere și o importanță mai mare decât valoarea (intensitatea) culorii).
2.8. Detectarea fețelor
Unele concepte definite în secțiunea 1.2 au legătură cu prezența oamenilor în imagini
(Numărul de persoane: nicio persoană, o persoană, două persoane, trei persoane; portret, etc.).
Deși aceste concepte nu sunt strict legate de apariția fețelor în imagine, există o probabilitate
mare legată de faptul că dacă o persoană se află în imagine, aceasta să apară cu fața. Cu toate
acestea, aproximativ 30% din imaginile din setul de antrenare propus de organizatorii
ImageCLEF 2012 ce conțin fețe, nu sunt adnotate utilizând conceptul portret.
Algoritmul de detectare a fețelor propus de Voila și Jones41
presupune antrenarea unei
cascade de clasificatori (mai mulți clasificatori în care al (k+1)-lea clasificator este dependent de
41
http://research.microsoft.com/en-us/um/people/viola/Pubs/Detect/violaJones_CVPR2001.pdf
26
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
output-ul clasificatorului k) de tip AdaBoost pentru extragerea (alegerea) de trăsături de tip
Haar42
. În a doua imagine din figura 14, se observă faptul că suma intensităților pixelilor din jurul
ochilor este mai mare decât suma intensităților pixelilor de sub ochi (totodată, aceeași trăsătură
Haar ar putea fi detectată în zona gurii, acest lucru întărind presupunerea că este vorba de o față
umană), iar în a treia imagine se observă că suma intensităților pixelilor din jurul nasului este mai
mare decât suma intensităților pixelilor de pe nas. Aceste trăsături sunt considerate a fi unice
pentru fața umană.
Figura 14: Cele mai frecvente trăsături de tip Haar la fețele oamenilor [17]
În final, fiecare clasificator „slab” este agregat într-un clasificator „tare”43
, capabil să
detecteze fețele umane. Imaginea este scanată la mai multe scalări pentru a detecta fețe, iar
procesul poate fi optimizat folosind imagini integrale44
. Algoritmul este foarte rapid și precis, ce
poate avea o rată de detecție de peste 95% dacă sunt aleși parametrii optimi.
2.9. Concluziile capitolului
În acest capitol am prezentat formal algoritmii și definițiile pe care se bazează această
lucrare, atât din punct de vedere teoretic, cât și al implementării. Pentru etapa de învățare
automată am definit (sumar) mașinile cu vectori suport (secțiunea 2.2), iar pentru etapa de
extragere a trăsăturilor imaginii, algoritmii: Profile Entropy Features (pentru a surprinde textura și
formele imaginii), cuvinte vizuale folosind TopSurf (pentru trăsăturile locale), momentele
culorilor (coloristica imaginii) și abordarea textuală folosind tag-urilor definite de utilizatori.
42 http://dtpapers.googlecode.com/files/01544911.pdf 43 http://en.wikipedia.org/wiki/Boosting 44
http://www.cse.yorku.ca/~kosta/CompVis_Notes/integral_representations.pdf
27
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
3. Abordări în sistemele existente
3.1. Participări la ImageCLEF 2009 Annotation Task
În participarea UAIC la competiția ImageCLEF45
Annotation Task din 2009 [18] s-a
propus un sistem alcătuit din patru mari componente: prima componentă identifică fețele
oamenilor (în cazul în care există în imagine - componentă utilă pentru categoriile ce conțin
persoane), a doua componentă calculează similitudinea dintre imaginea de adnotat și fiecare
imagine din setul de antrenament, a treia componentă extrage informații din fișierul Exif46
asociat
imaginii, iar a patra componentă asignează o valoare implicită în funcție de gradul de apariție în
setul datelor de training.
În cadrul aceleiași competiție, în [19] H. Glotin et al. propune un sistem care explorează
proprietățile unei imagini folosind mai multe abordări, printre care cea mai performantă s-a
dovedit următoarea: imaginea se segmentează în 3 regiuni orizontale (câte o treime fiecare), iar
pentru fiecare regiune se calculează histograma culorilor în spațiul HSV. Această abordare are
rezultate bune pentru concepte panoramice precum: cerul, vegetația, oceanul, etc. Se antrenează
un clasificator SVM optimizat pentru performanțe multivariate47
, deoarece problema adnotării
este dezechilibrată (numărul de date pentru învățare diferă de la un concept la altul).
În participarea universității din Amsterdam [14] (clasată pe locul întâi la competiția din
2009), se descriu mai multe abordări cu privire la recunoașterea conceptelor, având în vedere că
un obiect este greu de recunoscut dacă se schimbă perspectiva din care este observat (fotografiat).
Pentru a acoperi acest aspect, se folosesc detectorii Harris-Laplace48
pentru punctele de interes,
pe mai multe scalări ale imaginii (pentru a obține invarianță la scalare). Pentru concepte
omogene, detectorii Harris-Laplace sunt ineficienți, se folosesc strategii de random și dense
sampling [25]. Al doilea pas în implementarea echipei ISIS a fost extragerea de puncte SIFT, din
diferite spații de culori. Pentru a reduce numărul de caracteristici ale imaginii, se folosesc
transformări codebook. Pentru partea de clasificare, se folosește librăria LIBSVM, utilizându-se
kernelul χ2 (Chi-square kernel).
45
http://www.imageclef.org/ 46 http://en.wikipedia.org/wiki/Exchangeable_image_file_format 47 http://svmlight.joachims.org/svm_perf.html 48
http://en.wikipedia.org/wiki/Harris_affine_region_detector
28
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Grupul XRCE [20] (clasat pe locul doi în competiția din 2009) propune o metodă bazată
pe utilizarea ontologiilor în momentul clasificării, lucru derivat din diversitatea conceptelor din
datele de test (din competiția organizată în 2009). Acest lucru a fost folosit în adnotarea imaginii
cu mai multe etichete și nu în etapa de training, în felul următor: după ce funcția clasificator
asignează probabilități fiecărei etichete, se face o post-procesare pentru a se asigura consistența
datelor clasificate cu cele din ontologie. Pentru a extrage trăsăturile locale ale imaginii, s-a folosit
algoritmul SIFT și statisticile locale RGB. Dimensiunea vectorului de trăsături a fost redusă la 50
de elemente, folosind PCA (Principal Component Analysis).
Aceste trăsături sunt clasificate folosind tehnica vocabularelor vizuale [10]. Constrângerile
ontologiei au fost implementate astfel: pentru concepte (detectate în imagine) care sunt disjuncte,
probabilitățile lor sunt normalizate astfel încât suma lor să fie 1; pentru un concept părinte
probabilitatea este mai mare sau egală cu probabilitatea maximă a copiilor; pentru un concept
care implică un alt concept, se normalizează doar dacă cele două intră în conflict. Pentru a
verifica adnotările făcute, se folosesc metodele Equal Error Rate (ERR) și Area under Curve
(AUC).
3.2. Participări la ImageCLEF 2011 Annotation Task
Grupul TUBFI [15] reprezintă departamentul de Machine Learning al institutului de
tehnologie FIRST din Berlin, ce a participat la competiția ImageCLEF Annotation Task din 2011
cu 4 rulări informații vizuale și o rulare multi-modală. Pentru abordarea folosind doar informații
vizuale, aceștia au folosit descriptorii Harris-Laplace, SIFT și RGB-SIFT (descriptorul dezvoltat
de grupul universității din Amsterdam [14]), agregate în modele „sacul de cuvinte vizuale” (Bag
of visual words). Abordarea multi-modală exploatează semantica adnotărilor date de utilizatorii
Flickr folosind o funcție kernel personalizată ce calculează distanța dintre două seturi de adnotări
peste un vocabular selectat de cuvinte (se folosesc doar cele mai frecvente cuvinte prezente în
setul de training).
Grupul LIRIS [21] a reprezentat universitatea din Lyon la competiția ImageCLEF
Annotation Task din 2011, cu două rulări folosind doar informații textuale și două rulări multi-
modale. În abordarea bazată pe informații vizuale, aceștia au construit o măsură care calculează
29
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
distanța semantică dintre o adnotare făcută de utilizator și un dicționar construit de aceștia, care
conține cuvinte specifice fiecărui concept, folosind librăria WordNet. O altă metodă s-a bazat pe
setul de cuvinte ANEW49
(ce conține scoruri privind emoțiile generate de cuvinte) care calculează
valența și nivelul de apropiere către un anumit sentiment pentru fiecare cuvânt asociat imaginii de
test. În abordarea bazată pe informațiile vizuale, grupul LIRIS a folosit diferite proprietăți ale
imaginii precum culoarea, textura, precum și caracteristici locale extrase folosind SIFT. Pentru
etapa de clasificare, aceștia au utilizat diferite strategii precum Adaboost și SVMs.
Grupul „Laboratorul de Analiză și Prelucrarea Imaginilor” [22] au reprezentat
Universitatea Politehnică din București, iar aceștia au participat la competiția din 2011 cu două
rulări folosind doar informații vizuale. Aceștia au dezvoltat un descriptor capabil să rețină
geometria contururilor din imagine și relațiile dintre ele, extrăgând apoi câteva proprietăți
statistice ce vor fi asociate imaginii împreună cu histogramele de culori. Imaginile au fost
redimensionate la o dimensiune de maxim 300 de pixeli (pe lungime sau lățime) pentru a scădea
timpul de execuție, iar apoi au fost extrase liniile din imagine folosind un detector de muchii
Canny50
la 4 scalări diferite, fiecare linie fiind caracterizată de un număr de trăsături. În final
imaginea este caracterizată de un vector de 916 elemente (extras în circa 40 de secunde utilizând
un procesor de 2.6 GHz), iar pentru etapa de clasificare autorii au folosit metoda LDA51
(Linear
Discriminant Analysis).
3.3. Concluziile capitolului
În sistemele prezentate în acest capitol, am analizat unele din cele mai bune abordări
propuse până acum în domeniul adnotării automate a imaginilor, pentru a reliefa calitățile sau
defectele acestora și pentru a descrie stadiul actual al cercetărilor din acest domeniu.
49 http://csea.phhp.ufl.edu/media/anewmessage.html 50 http://fourier.eng.hmc.edu/e161/lectures/canny/node1.html 51
http://research.cs.tamu.edu/prism/lectures/pr/pr_l10.pdf
30
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
4. Descrierea sistemului
4.1. Cerințe
Sistemul propus este capabil să adnoteze automat un set de imagini folosind conceptele
definite în secțiunea 1.2, principalul scop al acestuia fiind participarea la ImageCLEF 2012. Baza
de date ImageCLEF 2012 conține 15,000 de imagini de antrenare și 10,000 de imagini de test
(Figura 15) (imagini preluate de pe site-ul de partajare a fotografiilor Flickr52
; imaginile de test și
antrenare constituie un subset al colecției de imagini MIR FLICKR53
). Pentru competiția din
acest an se pot înainta un număr de 5 rulări ale sistemului propus pe setul de imagini de test.
Datele de antrenare au fost lansate de către organizatori cu două luni înaintea termenului-limită
(30.6.2012), iar datele de test cu 6 săptămâni înaintea termenului-limită.
Figura 15: Exemple de imagini de antrenare/test
O altă utilizare pentru acest sistem ar putea fi adnotarea automată a unui set mare de
imagini, utilizare pentru care am propus o arhitectură client-server.
52 http://www.flickr.com/ 53
http://press.liacs.nl/mirflickr/
31
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
4.2. Detalii de implementare
Sistemul propus a fost implementat în mare parte utilizând platforma Java, dar și C++, iar
interfața cu utilizatorul este implementată în C# folosind tehnologia WPF (Windows Presentation
Foundation – XAML54
– Figura 16). Interfața grafică reprezintă o aplicație de tip client pentru
aplicația principală (serverul), iar aceasta este capabilă să facă cereri de adnotare a unui set de
imagini dintr-un director sau dintr-un fișier sub formatul prezentat în secțiunea 4.5, sau să permită
editarea probabilităților returnate de server în vederea construirii unor teste.
Figura 16: Interfața grafică a sistemului
Aplicația este de tip server concurent, pentru care am conceput un protocol de comunicare
capabil să răspundă la cererile venite de la utilizatori. Principala comandă utilizată este adnotarea
automată a unei imagini folosind cele 94 de concepte de la ImageCLEF 2012 (comanda predict),
54
http://msdn.microsoft.com/en-us/library/ms754130.aspx
32
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
însă protocolul suportă și cereri pentru a vizualiza descriptorul Top-Surf (comanda visualize),
cereri pentru detecția fețelor folosind librăria OpenCV55
(comanda facedetection) sau
posibilitatea de a trimite serverului corectări privind adnotarea conceptelor (comanda post).
4.3. Extragerea trăsăturilor imaginilor
Pentru abordarea vizuală, am implementat descriptorul global prezentat formal în
secțiunea 2.1 (Profile Entropy Features), descriptorul local prezentat în secțiunea 2.5 folosind
librăria Top-Surf și descriptorul de culori prezentat în secțiunea 2.7. Extragerea acestor
descriptori se face în aprox. 2 secunde (pe un procesor i7 Turbo Boost: 1.73GHz – 2.88GHz)
Acești descriptori au fost datele de intrare pentru Mașinile cu vectori suport (Support Vector
Machine SVM – secțiunea 2.2). În figura 17 am descris diagrama de pachete a aplicației
principale (serverul), care are o structură modulară, astfel încât se pot adăuga și testa și alți
algoritmi pentru extragerea trăsăturilor imaginilor.
Figura 17: Diagrama de pachete a aplicației principale
55
http://opencv.willowgarage.com/wiki/
33
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Pentru algoritmul de extragere a cuvintelor vizuale (TopSurf) am creat o interfață JNI56
(Java Native Interface) care asigură comunicarea dintre librăria dinamică nativă TopSurf (scrisă
în C++ de B. Thomee57
în 2010) și aplicația Java scrisă de mine. Deoarece librăria necesită un
spațiu relativ mare de adrese de memorie (în testele pentru ImageCLEF 2012 am folosit un
dicționar preconstruit de 300,000 de cuvinte vizuale), am decis să folosesc compilez librăria
dinamică pentru platforma x64. De asemenea, parametrul de redimensionare al imaginilor folosit
în acest sistem este de 512 pixeli și folosesc primele 256 de cuvinte vizuale returnate de
descriptorul TopSurf.
Descriptorul PEF (Profile Entropy Features) a fost implementat de mine după
specificațiile din secțiunea 2.1, în care m-am folosit de librăria JAI58
(Java Advanced Imaging)
pentru acces rapid la pixelii imaginilor.
Pentru algoritmul din secțiunea 2.6 am construit un dicționar de tag-uri definite de
utilizatori cu k=16 (numărul minim de apariții al unui tag în adnotările imaginilor de antrenare)
deoarece acest prag elimină mai multe cuvinte irelevante asociate imaginilor. De asemenea, am
folosit serviciul online Bing Translator59
(serviciu de traduce și detectare a limbilor străine)
deoarece multe dintre tag-urile definite de utilizatori sunt în altă limbă decât engleza (spaniolă,
arabă, etc.). Acest lucru a fost posibil datorită serviciului de detectare a limbii (dacă tag-ul definit
de utilizator este diferit de limba engleză se încearcă traducerea) și existența unei librării60
Java
care implementează protocolul de comunicare cu acest serviciu. După această etapă, am aplicat
un algoritm61
de obținere a rădăcinii cuvântului (en. stemming; de exemplu, tag-urile: stemmer,
stemming, stemmed au ca rădăcină cuvântul stem.) pentru a nu trata diferit tag-urile provenite din
același cuvânt.
Pentru exploatarea coloristicii imaginilor am implementat algoritmul de extragere a
momentelor culorilor (secțiunea 2.7) și am folosit modelul de culori HSV (deoarece în urma
testelor, prin folosirea acestui model se obțin rezultate mai bune), iar pentru funcția de
56 http://java.sun.com/docs/books/jni/ 57 http://www.liacs.nl/~bthomee/ 58
http://java.sun.com/javase/technologies/desktop/media/jai/ 59 http://www.microsofttranslator.com/ 60 http://code.google.com/p/microsoft-translator-java-api/ 61
implementare: http://tartarus.org/~martin/PorterStemmer/java.txt
34
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
similaritate , am folosit (o pondere mai mare pentru
parametrul de nuanță din modelul HSV).
4.4. Clasificarea imaginilor de test
Deoarece cerințele acestui sistem (Figura 17) au fost legate de faptul că o imagine poate fi
adnotată cu mai multe concepte (multi-label classification 62
), am ales să antrenez câte un
clasificator SVM pentru fiecare dintre cele 94 de concepte, iar outputul mașinilor cu vector suport
(SVMs) va fi postprocesat asigurându-se astfel consistența relațiilor dintre adnotările făcute
automat. O altă abordare63
pe care am implementat-o (dar cu rezultate slabe) pentru a rezolva
problema clasificării multi-label a fost următoarea: fiecare combinație de clase găsită în imaginile
de antrenament a fost considerată o singură clasă pentru fiecare din instanțe (imagini care au
aceleași combinații de concepte). Această abordare generează un număr mare de clase
(combinații de concepte), cu un număr mic de instanțe reprezentative pentru fiecare din clasele
respective.
Pentru implementarea mașinilor cu vector suport am folosit librăria Libsvm64
(versiunea
3.11 cu mici modificări pentru a asigura compatibilitatea cu sistemul propus) utilizând kernelul
preconstruit (en. Precomputed) (distanțele dintre imagini se calculează separat) ce necesită
construcția unei matrice Gram65
cu formatul din Tabelul 3:
Pentru un set de date de antrenare de 3 instanțe și un set de date de
test de 1 instanță definite ca în exemplul următor:
15 1:1 2:1 3:1 4:1
45 2:3 4:3
25 3:1
15 1:1 3:1
Dacă se folosește kernelul linear, noile date de antrenare/test vor fi:
62
http://en.wikipedia.org/wiki/Multi-label_classification 63 Abordare inspirată din: http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/multilabel/ 64 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 65
http://www.encyclopediaofmath.org/index.php/Gram_matrix
35
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
15 0:1 1:4 2:6 3:1
45 0:2 1:6 2:18 3:0
25 0:3 1:1 2:0 3:1
15 0:? 1:2 2:0 3:1
? poate fi orice valoare.
Orice subset al acestor date este de asemenea valid. De exemplu:
25 0:3 1:1 2:0 3:1
45 0:2 1:6 2:18 3:0
Tabelul 3: Formatul libsvm pentru kernel-ul preconstruit, sursa: Libsvm Readme
O funcție kernel (folosită în cazul mașinilor cu vector suport) este o funcție continuă,
simetrică și pozitiv semi-definită (Teorema lui Mercer – Secțiunea 2.2), iar aceasta poate fi
gândită ca o funcție ce descrie apropierea (similaritatea) între două imagini. Pe baza descriptorilor
vizuali descriși mai sus, am propus o funcție kernel ce combină toți cei patru descriptori:
( ) ( ) ( ) ( ) ( )
Unde , (astfel încât ) sunt contribuții pentru
funcțiile kernel:
( ) ( ( ) ( )), sau ( ) ( ( ( ) ( )))
unde este funcția de similaritate cosinus (iar este distanța absolută)
definită în secțiunea 2.5, ( ) este descriptorul TopSurf definit în aceeași secțiune, iar
este parametrul de regularizare. În majoritatea testelor am folosit similaritatea cosinus.
( ) ( ) este kernel-ul RBF ce calculează distanța dintre
descriptorii PEF (secțiunea 2.1).
( ) ( ) ( )
este kernel-ul definit în secțiunea 2.6 ce numără câte tag-uri definite
de utilizatori (asociate imaginilor respectiv, ) sunt partajate, iar rezultatul este
normalizat cu numărul de tag-uri prezente în vocabularul preconstruit.
( ) ( ( )) este kernel-ul bazat pe momentele culorii (secțiunea
2.7), fiind funcția de similaritate din aceași secțiune, iar este parametrul de
regularizare.
36
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Funcțiile , , și (definite pe intervalul ) respectă teorema lui Mercer, deci
respectă de asemenea teorema lui Mercer (necesară pentru a asigura convergența
mașinilor cu vector suport).
O altă problemă întâlnită la setul de imagini de antrenare oferit de organizatorii
ImageCLEF este faptul că numărul de exemple de imagini pentru fiecare concept diferă mult de
la un concept la altul (datele de antrenare nu sunt balansate66
). De exemplu, pentru conceptul
weather_rainbow există 33 de exemple pozitive (din cele 15,000 de imagini), pentru conceptul
fauna_horse există 64 de exemple pozitive, iar în schimb pentru conceptul quantity_none există
10335 de exemple pozitive. Acest lucru îngreunează problema clasificării, din motive evidente.
Pentru a rezolva această problemă am ajustat parametrii de „greutate”67
(en. weights) pentru
conceptul deficient în exemple, însă de asemenea, am implementat o strategie de selectare a
imaginilor de antrenare (en. sampling68
) cu care am îmbunătățit performanțele sistemului –
Tabelul 4.
int mins = smallClass.size();
int maxs = bigClass.size();
int n = maxs / (mins * binFold);
if (n > maxBinFold)
n = maxBinFold;
if (n == 0)
n = 1;
int r = (maxs / n);
for (int j = 0; j < n - 1; j++)
i = sampleOnceBinary(...);
r = maxs - i;
sampleOnceBinary(...);
Tabelul 4: Strategia de sampling. Din întreg setul de imagini de antrenare se aleg ca fiind exemple pozitive cele
adnotate folosind conceptul concept1, restul de imagini fiind considerate exemple negative. Clasa cu numărul
mai mic de exemple este antrenată separat cu m subseturi de exemple din clasa cu numărul mai mare de
exemple. De exemplu, pentru binFold=3, maxBinFold=10, iar numărul total de imagini n=15000, pentru
conceptul quality_partialblur, care are 3549 de exemple, se vor antrena 3 SVM-uri separate, în care exemplele
pozitive sunt cele 3549 de imagini, iar exemplele negative sunt , pe rând, câte 3817 din imaginile rămase.
66 http://www.dice.ucl.ac.be/Proceedings/esann/esannpdf/es2011-29.pdf 67 http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f410 68
http://pages.stern.nyu.edu/~fprovost/Papers/skew.PDF
37
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Pentru a decide prezența unui concept c într-o imagine de test, după ce a fost aplicată
strategia de sampling, toate cele m SVM-uri trebuie să prezică clasa pozitivă (apartenența la clasa
pozitivă), altfel conceptul c nu este prezent în imaginea de test. Aplicarea acestei strategii a fost
posibilă deoarece după calculul matricei Gram, se pot antrena folosind Libsvm și subseturi ale
acestei matrice (Tabelul 2). Astfel, calculul matricei Gram (Tabelul 5) se face o singură dată
(operație costisitoare ca memorie și timp – necesită aprox. 10GB de memorie RAM pentru setul
de antrenament de 15,000 de imagini și aprox. 15 minute pe un procesor i7 Turbo Boost
(frecvența variază între 1.73GHz și 2.8 GHz)).
for (int i = 0; i < allImagesFeatures.size(); i++) {
gramMatrix.y[i] = (double) allImagesFeatures.get(i).getAnnotations();
gramMatrix.x[i][0] = new svm_node();
gramMatrix.x[i][0].index = 0;
gramMatrix.x[i][0].value = i + 1;
gramMatrix.x[i][i + 1] = new svm_node();
gramMatrix.x[i][i + 1].index = i + 1;
gramMatrix.x[i][i + 1].value = compute(allImagesFeatures.get(i),
allImagesFeatures.get(i)); //calculul funcției kernel ( )
for (int j = i + 1; j < gramMatrix.l; j++) {
gramMatrix.x[i][j + 1] = new svm_node();
gramMatrix.x[i][j + 1].index = j + 1;
gramMatrix.x[i][j + 1].value = compute(allImagesFeatures.get(i),
allImagesFeatures.get(j));
//deoarece matricea este simetrică, ( ) ( )
gramMatrix.x[j][i + 1] = new svm_node();
gramMatrix.x[j][i + 1].index = i + 1;
gramMatrix.x[j][i + 1].value = gramMatrix.x[i][j + 1].value;
}
}
Tabelul 5: Calculul matricei Gram.
Deoarece sistemul antrenează separat 94 de SVM-uri pentru fiecare concept, am propus o
implementare concurentă a algoritmului de antrenare, astfel etapa de antrenament se poate
desfășura eficient, folosind mai multe fire de execuție.
38
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
4.5. Postprocesare
Deoarece se antrenează câte un clasificator pentru fiecare concept, există posibilitatea
încălcării regulilor ontologiei de concepte (de exemplu, imaginea de test să fie adnotată simultan
cu quality_noblur, quality_partialblur, concepte care sunt prin definiție, opuse).
Pentru a elimina aceste ambiguități, am implementat un algoritm care construiește, pe
baza adnotărilor imaginilor de antrenament, perechi de concepte exclusive. S-au găsit astfel (în
setul de 15,000 de imagini de antrenament) 879 de combinații de concepte exclusive – concepte
(care apar de 0 ori simultan într-o imagine de antrenament) (de exemplu: quantity_one -
quantity_two, sentiment_melancholic - sentiment_funny, transport_car - transport_water, etc.).
Folosind aceste combinații de concepte exclusive, am eliminat conceptele din setul de predicții
pozitive (returnat de mașinile cu vector suport) astfel: dacă două concepte exclusive
aparțin simultan setului de predicții pozitive și setului de concepte exclusive , conceptul a
cărui încredere (probabilitate) este mai mică decăt a celuilalt concept, este eliminat (îi este setată
o probabilitate sub pragul de încredere (0.5)):
( ) ( ) ( )
Similar, se pot obține concepte ce implică alte concepte. Pentru aceasta, se caută folosind
setul de imagini de antrenament, conceptele a căror apariții implică și apariția altor concepte, în
p% din cazuri (de exemplu, în 90% din cazurile în care apare conceptul scale_mountainhill, va
aparea și conceptul view_outdoor, sau în cazurile în care apare conceptul relation_coworkers, va
aparea și conceptul age_adult). Etapa de postprocesare folosind acest raționament constă în a
adăuga la setul de predicții pozitive (returnat de mașinile cu vector suport) și conceptele
implicate de acestea, asociendu-le o probabilitate apropiată (pentru un concept p mulțimea Imp(p)
este mulțimea de concepte implicate de conceptul p):
( )
O altă etapă de postprocesare aplicată în acest sistem, a fost detecția fețelor de oameni în
imagini (pentru a corecta, eventual, predicția conceptelor ce implică detecția numărului de
persoane: nicio persoană, o persoană, două persoane, trei persoane, grup mic, grup mare, sau dacă
este vorba de o imagine de tip portret). Pentru detecția fețelor (secțiunea 2.8.) am folosit librăria
39
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
OpenCV (implementarea Java69
), deoarece aceasta conține o implementare eficientă a
algoritmului Voila – Jones (timpul de detecție a fețelor într-o imagine de test depinde de
dimensiunea imaginii, însă acest lucru se face în aprox. 300ms, în funcție și de parametrii aleși
pentru algoritm). Algoritmul presupune setarea unui număr de parametrii pe care i-am ales în
funcție de acuratețea cu care s-a detectat fețele oamenilor în urma unor teste pe imaginile de
antrenament. Astfel, pentru parametrul scaleFactor (parametru care scalează ferestrele de scanare
a fețelor) am ales 1.15, pentru parametrul minNeighbors (numărul minim de ferestre de scanare
detectate care alcătuiesc un obiect) am ales 7, iar pentru a respinge regiunile din imagine care
conțin zgomot, am folosit CV_HAAR_DO_CANNY_PRUNING care aplică algoritmul Canny de
detecție liniilor deoarece optimizează procesul de detecție a fețelor. În final, probabilitatea de
apariție a unuia din conceptele enumerate mai sus, este media dintre o probabilitate mare (0.9) de
apariție a conceptului dacă se detectează fețe în imagine și probabilitatea returnată de SVM (de
exemplu, dacă se detectează o singură față în imagine iar probabilitatea returnată de SVM este 0.4
pentru conceptul quantity_one, probabilitatea finală va fi
, iar probabilitatea
celelalte concepte – quantity_none, quantity_two, quantity_three, quantity_smallgroup,
quantity_biggroup, va fi setată sub pragul de încredere 0.5).
4.6. Evaluare
În implementarea mea am căutat parametrii optimali pentru (și
alții) folosind tehnica de grid search70
(căutare exhaustivă într-un subset de parametrii ai unui
algoritm de învățare automată) și cross-validation71
(se împarte setul de antrenament în n părți,
preferabil fiecare parte să conțină un număr proporțional de exemple pozitive și negative, după
care se antrenează clasificatorul folosind n-1 părți, iar cea de-a n parte se testează folosind noul
clasificator, calculându-se în același timp performanța sistemului (acuratețea, f-measure,72
etc.).
Se repetă procedeul astfel încât fiecare dintre cele n părți să fie testate o singură dată. S-a
demonstrat [23] că pentru n=5, n=10, n=20, etc. se calculează, folosind această metodă, o
69
http://code.google.com/p/javacv/ 70 http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf 71 http://www.cs.cmu.edu/~schneide/tut5/node42.html 72
http://trec.nist.gov/pubs/trec15/appendices/CE.MEASURES06.pdf
40
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
valoare a performanței sistemului apropiată de valoarea reală). Pentru evaluarea performanțelor
sistemului, am folosit F-measure (măsură folosită și în evaluarea ImageCLEF 2012):
, unde
Această măsură este folosită frecvent în cazul sistemelor Content-Based Image Retrieval,
variabilele tp (true positives – imaginile relevante returnate de sistem), tn (true negatives –
imaginile corect nereturnate de sistem), fp (false positives – imaginile incorect returnate de
sistem) și fn (false negatives – imaginile relevante nereturnate de sistem) asigură o evaluare
corectă a unui astfel de sistem. Cu toate acestea, deoarece timpul a fost limitat pentru teste, este
posibil ca algoritmul să nu fi găsit soluția optimă (am efectuat rulări cu diferiți parametrii în
decursul a câtorva săptămâni, deoarece pentru a antrena sistemul cu un set de parametrii este
nevoie de aprox. 3 ore (depinde însă de dificultățile numerice întâlnite de SVM), fără a adăuga
timpul de extragere a trăsăturilor imaginilor de antrenament și test (deoarece acest lucru s-a făcut
o singură dată), pe același procesor i7 Turbo Boost cu 12GB de memorie RAM).
Formatul de prezentare al rulărilor este același cu cel folosit la TREC73
, iar acesta este
compus dintr-un singur fișier sub formatul din Tabelul 6:
[identificator imagine] [scor de încredere pentru conceptul 0] [scor binar
pentru conceptul 0] ... [scor de încredere pentru conceptul n-1] [scor binar
pentru conceptul N-1]
Tabelul 6: formatul de prezentare al unei imagini74
Pentru competiția din acest an am alcătuit un număr de 5 rulări, cu următoarele
proprietăți:
submission1: Abordarea a fost în totalitate bazată pe informații vizuale (descriptorii
vizuali folosind contribuțiile: ), cu parametrul
SVM, C=20, același pentru fiecare din cei 94 de clasificatori
submission2: Abordare multi-modală (folosind contribuțiile:
), cu parametrul C diferențiat pentru fiecare concept, iar strategia de
73 http://trec.nist.gov/evals.html 74
http://www.imageclef.org/2012/photo-flickr/annotation
41
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
sampling a fost aplicată la acele concepte a căror performanță a fost mai bună folosind
această strategie, în urma testelor de grid search
submission3:Aceeași abordare ca la submission2, însă strategie de sampling și de
aplicarea a parametrilor de greutate SVM a fost folosită pentru toți clasificatorii
submission4:Abordare multi-modală (folosind contribuțiile:
), cu parametrul C diferențiat pentru fiecare concept și
aplicarea strategiei de sampling
submission5: Abordare multi-modală (folosind contribuțiile:
), cu parametrul C=20, același pentru fiecare clasificator și fără etapa de
postprocesare
În urma experimentelor de grid search efectuate, cele mai bune performanțele ale sistemului
propus au fost în jurul scorului F-measure de 0.53. Aceste performanțe sunt similare cu cele
obținute de sistemele actuale [3] (sistemele din jumătatea superioară a topului alcătuit la
competiția ImageCLEF 2011 Annotation Task). Există concepte pentru care sistemul are rezultate
foarte bune (momentele zilei, vreme, floră, faună, corpuri cerești, etc.) și concepte pentru care
sistemul are rezultate mai puțin bune (relații între persoane, calitatea imaginii, cadru, sentimente,
etc.), lucru explicabil datorită naturii descriptorilor vizuali descriși în această lucrare.
4.7. Concluziile capitolului
În acest capitol am prezentat implementarea și structura sistemului propus, cum s-a
realizat extragerea de trăsături ale imaginilor, combinarea trăsăturilor extrase cu un algoritm de
învățare automată (mașini cu vector suport), algoritmi de postprocesare folosiți pentru a asigura
consistența adnotărilor făcute, precum și evaluarea performanțele obținute.
42
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
5. Contribuții personale, rezultate și direcții de viitor
În sistemul prezentat în această lucrare, am combinat în mod original mai mulți algoritmi
performanți folosiți în sistemele actuale și am obținut rezultate comparabile cu cele din sistemele
existente, contribuția personală majoră fiind agregarea acestor algoritmi cu mașinile cu vector
suport pentru care am definit o funcție kernel capabilă să aprecieze distanța semantică dintre
imagini. Prin participarea la competiția din acest an am dorit să testez diferite abordări (bazate
doar pe informații vizuale sau multi-modale), pentru a constata îmbunătățirea performanțelor
folosind semantica tag-urilor definite de utilizatori, a trăsăturilor locale ale imaginilor (prin
utilizarea descriptorului TopSurf), a coloristicii imaginilor (momentele culorilor), sau a texturii
din imagine (descriptorul PEF).
Acest sistem poate fi extins (datorită structurii modulare a acestuia) cu alți algoritmi de
extragere a trăsăturilor imaginilor, în vederea continuării lucrului și a avansării stadiului
cercetărilor (state-of-the-art) în domeniul Computer Vision. O altă abordare care ar putea avea
succes, ar fi folosirea diferențiată a setărilor parametrilor de contribuție pentru kernelul SVM
, în funcție de conceptul pentru care se antrenează clasificatorul (de
exemplu, pentru conceptele ce exprimă sentimente se intuiește o pondere mai mare a coloristicii
imaginilor, pentru concepte panoramice, o pondere mai mare pentru descriptorul de textură, etc.).
În acest sistem am implementat această abordare, însă aceasta nu a putut fi testată riguros din
cauza limitărilor tehnice (memorie RAM). De asemenea, această aplicație ar putea fi folosită de
utilizatorii ce doresc să adnoteze colecții mari de imagini, ușurând problema regăsirii imaginilor
într-o bază de date.
43
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
Bibliografie
[1] S. Tong, E. Chang. “Support vector machine active learning for image retrieval”, 2001
[2] J. Russell. “A Circumplex Model of Affect”, 1980
[3] S. Nowak, K. Nagel, J. Liebetrau. “The CLEF 2011 Photo Annotation and Concept-based
Retrieval Tasks”, 2011
[4] H. Glotin, Z.Q. Zhao, S. Ayache. “Efficient Image Concept Indexing by Harmonic &
Arithmetic Profiles Entropy”, 2009
[5] R. Moddemeijer. “On estimation of entropy and mutual information of continuous
distributions”, 1989
[6] C. Nello, J. Shawe-Taylor. “An Introduction to Support Vector Machines and other kernel-
based learning methods”, 2000
[7] A. Gidudu, G. Hulley, T. Marwala. “Image Classification Using SVMs: One-against-One Vs.
One-against-All”, 2007
[8] C. Evans, “Notes on the OpenSURF Library”, 2009
[9] H. Bay, A. Ess, T. Tuytelaars, L. Van Gool. “Speeded-up robust features (SURF). Computer
Vision and Image Understanding”, 2008
[10] G. Csurka, C. Dance, L. Fan, J. Willamowski, C. Bray, “Visual Categorization with Bags of
Keypoints”, 2004
[11] G. Salton, M. McGill. “Introduction to modern information retrieval”, 1983
[12] A. Znaidia, H. Le Borgne. “CEA LISTs participation to Visual Concept Detection Task of
ImageCLEF”, 2011
[13] M. Guillaumin, J. Verbeek, C. Schmid. “Multimodal semi-supervised learning for image
classication.”, 2010
[14] K. van de Sande, T. Gevers, A. Smeulders. “The University of Amsterdam’s Concept
Detection System at ImageCLEF 2009”, 2009
[15] A. Binder, W. Samek, M. Kawanabe. “The joint submission of the TU Berlin and Fraunhofer
FIRST (TUBFI) to the ImageCLEF2011 Photo Annotation Task”, 2011
[16] M. Stricker, M. Orengo, “Similarity of color images“, 1995
[17] P. Viola, M. Jones. “Rapid object detection using boosted cascade of simple features”, 2001
44
Mihai Pîțu - Tehnici de adnotare automată a imaginilor
[18] A. Iftene, L. Vamanu, C. Croitor. “UAIC at ImageCLEF 2009 Photo Annotation Task”,
2009
[19] H. Glotin, A. Fakeri-Tabrizi, P. Mulhem, M. Ferecatu. “Comparison of Various AVEIR
Visual Concept Detectors with an Index of Carefulness”, 2009
[20] J. Ah-Pine1, S. Clinchant, G. Csurka, Y. Liu. “XRCE’s Participation in ImageCLEF”, 2009
[21] N. Liu, Y. Zhang, E. Dellandrea, S. Bres, L. Chen. “LIRIS-Imagine at ImageCLEF 2011
Photo Annotation task”, 2011
[22] C. Rasche, C. Vertan. „Testing a method for statistical image classification in image
retrieval”, 2011
[23] I. Witten, E. Frank, M. Hall. “Data Mining – Practical Machine Learning Tools and
Techniques, Third Edition”, 2011
[24] B. Thomee, E. Bakker, M. Lew. “Top-Surf: A visual words toolkit”, 2010
[25] T. Tuytelaars, K. Mikolajczyk. “Local Invariant Feature Detectors: A Survey”, 2008
[26] J. van Gemert, C. Snoek, C. Veenman, A. Smeulders, J.M. Geusebroek. “Comparing
Compact Codebooks for Visual Categorization”, 2008