Sunteți pe pagina 1din 73

Universitatea “Politehnica” din Bucureşti

Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei

Detecția pietonilor în imagini termale

prezentat ca cerinţă parţială pentru obţinerea titlului de

Inginer în domeniul domeniul Electronică și Telecomunicații

programul de studii de licenţă Calculatoare și Tehnologia Informației

Conducător ştiinţific Absolvent

Prof. dr. Victor-Emil Neagoe Cosmin-Andrei Dumitru

2017
Copyright © 2017 , Cosmin-Andrei Dumitru

Toate drepturile rezervate

Autorul acordă UPB dreptul de a reproduce şi de a distribui public copii pe hîrtie


sau electronice ale acestei lucrări, în formă integrală sau parţială.
Cuprins
Lista figurilor ......................................................................................................................................... 11
Lista acronimelor: .................................................................................................................................. 13
Introducere ........................................................................................................................................... 15
1.Imagini în spectrul înfroșu .................................................................................................................. 17
1.1 Spectrul electromagnetic ............................................................................................................. 17
1.1.1 Zona vizibilului ...................................................................................................................... 18
1.1.2 Zona infraroșului ................................................................................................................... 19
1.1.3 Zona ultravioletului ............................................................................................................... 19
1.2.1 Radiația infraroșie si termală ..................................................................................................... 20
1.2.2 Imagini termale ..................................................................................................................... 20
1.2.3 Avantaje si limitări................................................................................................................. 22
1.3.1 Aplicații ale camerei termale. .................................................................................................... 23
2.Analiza imaginilor ............................................................................................................................... 25
2.1.1 Zgomotul în imagini .................................................................................................................. 25
2.2 Filtru liniară a imaginilor .............................................................................................................. 25
2.2.1 Filtre de netezire ................................................................................................................... 26
2.2.2 Filtrul de mediere.................................................................................................................. 27
2.3 Filtrarea neliniară a imaginilor...................................................................................................... 29
2.3.1 Filtrarea de ordine................................................................................................................. 29
2.3.2 Filtrul median ........................................................................................................................ 31
2.4 Morfologie Matematica ............................................................................................................... 34
2.4.1 Erodarea morfologică ............................................................................................................ 34
2.4.3 Închiderea si deschiderea morfologică .................................................................................. 37
3. Clasificarea ........................................................................................................................................ 40
3.1 Clasificatorul ................................................................................................................................ 40
3.2 SVM ............................................................................................................................................. 40
3.2.1 Ce este SVM ? ....................................................................................................................... 40
3.2.2 Cum funcționează ? ............................................................................................................... 40
3.2.3 Nucleele SVM........................................................................................................................ 42
3.2.4 Antrenarea SVM.................................................................................................................... 44
3.2.5 Testare SVM ............................................................................................................................. 49
4.Algoritmul metodei ............................................................................................................................ 50
5.Implementarea software .................................................................................................................... 57
6. Rezultatele experimentale ................................................................................................................. 64
6.1 Baza de date ................................................................................................................................ 64
6.2 Indici de performanta .................................................................................................................. 64
6.3 Rezultatele algoritmului ............................................................................................................... 65
Concluzii ................................................................................................................................................ 68
Anexa 1. ................................................................................................................................................ 68
Bibliografie: ........................................................................................................................................... 71
Lista figurilor

Figură 1-0-1 Spectrul Electromagnetic [18] ............................................................................................ 17


Figură 1-0-2 Imagine termală cu hartă gri............................................................................................... 20
Figură 1-0-3 Imagine termală cu hartă roșie ........................................................................................... 21
Figură 1-0-4 Imagine termală cu hartă curcubeu .................................................................................... 21
Figură 1-0-5 Exemplu camera termală cu lentilă din germaniu ............................................................... 22
Figură 1-0-6 Agricultură - detecție mastită ............................................................................................. 23
Figură 1-0-7 Siguranța automobilelor. Cameră amplasată în locomotiva unui tren ................................. 23
Figură 1-0-8 Inspecția clădirilor. Detecția căldurii din podea ................................................................... 24
Figură 1-0-9 Medical. Detecția temperaturii persoanelor pentru detecția febrei .................................... 24
Figură 1-0-10 Militar. Detecția minelor .................................................................................................. 24
Figură 1-0-11 Uz personal. Detecția infecțiilor. ....................................................................................... 24
Figură 1-0-12 Militar. Detecția oamenilor care traversează ilegal granițe................................................ 24
Figură 1-0-13 Uz personal. Camera de supraveghere ............................................................................. 24
Figură 2-0-1 Imagine inițială ................................................................................................................... 27
Figură 2-0-2 Imagine după aplicarea filtrului de mediere ....................................................................... 27
Figură 2-0-3 Histogramă imagine inițială ................................................................................................ 28
Figură 2-0-4 Histogramă imagine după aplicarea filtrului de mediere ..................................................... 28
Figură 2-0-5 Histogramă imagine inițială ................................................................................................ 32
Figură 2-0-6Histogramă imagine după aplicarea filtrului median ........................................................... 32
Figură 2-0-7 Imagine inițială ................................................................................................................... 33
Figură 2-0-8 Imagine după aplicarea filtrului median.............................................................................. 33
Figură 2-0-9 Exemplu erodare morfologică ............................................................................................ 35
Figură 2-0-10 Exemplu dilatare morfologică ........................................................................................... 36
Figură 2-0-11 Imagine initială ................................................................................................................. 36
Figură 2-0-12 Imagine după dilatare morfologică ................................................................................... 37
Figură 2-0-13 Exemplu deschidere morfologică ...................................................................................... 38
Figură 2-0-14 Exemplu inchidere morfologică ........................................................................................ 38
Figură 2-0-15 Imagine inițială ................................................................................................................. 39
Figură 2-0-16 Imagine după aplicarea închiderii morfologice ................................................................. 39
Figură 3-0-1 SVM. Distanța de separare ................................................................................................. 41
Figură 3-0-2 Diferite hiperplanuri in 2D .................................................................................................. 42
Figură 3-0-3 Exemplu de spațiu neseparabil liniar .................................................................................. 43
Figură 3-0-4 Efectul parametrului de cost. ............................................................................................. 45
Figură 3-0-5 Curba gaussiană pentru σ=1 ............................................................................................... 46
Figură 3-0-6 Curba gaussiană pentru σ=2 .............................................................................................. 46
Figură 3-0-7 Efectul γ asupra limitelor de separare. γ=10 ....................................................................... 47
Figură 3-0-8 Efectul γ asupra limitelor de separare. γ=100 ..................................................................... 47
Figură 3-0-9 Efectul γ asupra limitelor de separare. γ=1000 ................................................................... 48
Figură 4-0-1 diagramă logica mp.m ........................................................................................................ 50
Figură 4-0-2 diagrama logică pentru EXTRACTFEATURES.m .................................................................... 51
Figură 4-0-3 diagrama logică pentru main.m .......................................................................................... 52
Figură 4-0-4 Exemplu imagine ground truth ........................................................................................... 53
Figură 4-0-5 Exemplu de imagine după clasificare .................................................................................. 54
Figură 4-0-6 Imagine după filtrare cu prag stabilit .................................................................................. 54
Figură 4-0-7 Exemplu imagine în care sunt detectați pietonii ................................................................. 55
Figură 4-0-8 Imagine după aplicarea filtrului de mediere ....................................................................... 55
Figură 4-0-9 Imagine după aplicarea filtrului median.............................................................................. 56
Figură 5-0-1 deschidere căsuță dialog .................................................................................................... 59
Figură 6-0-1 imagine în care pietonii au fost detectați corect ................................................................. 65
Figură 6-0-2 Exemplu imagine pieton nedetectat ................................................................................... 66
Figură 6-0-3 imagine în care pietonul este detectat divizat .................................................................... 66
Figură 6-0-4 imagine în care se clasifică obiecte eronat ca fiind pietoni .................................................. 67
Figură 6-0-5 Imagine în care sunt îmbinați doi pietoni ........................................................................... 67
Figură 5-0-1 Detecția eronată a felinarului .................................................. Error! Bookmark not defined.
Lista acronimelor:

SVM – Mașină cu vectori de suport


UV- Ultraviolet
IR - Infraroșu
ROGVAIV – roșu,oranj,galben,verde,albastru,indigo șiviolet
NIR – infraroșu apropiat
MIR – infraroșu de undă medie
FIR - infraroșu îndepărtat
HD – inaltă definiție
3D - tridimensional
Introducere

În ultimii ani, societatea și-a indreptat mai mult atenția și a incercat din ce in ce mai mult să crească
siguranța oamenilor, atât in trafic cât și in viața de zi cu zi.
Siguranța în trafic este un aspect foarte important, în special în țările dezvoltate sau în curs de
dezvoltare. Creșterea constantă a numărului de mașini de pe străzi, atrage cu sine și creșterea
riscului de accidente de pe șosele.
Conform unei statistici a Uniunii Europene, in anul 2016 accidentele fatale in care sunt implicați
pietoni constituie 21% din totalul accidentelor, procentul scăzând cu 35% in ultimii 10 ani. Aceasta
scădere poate proveni și din echiparea mașinilor cu sisteme de frânare automată, introduse de
companii precum: Lexus, Volvo, Mercedes-Bez, BMW.
Din acest punct de vedere, posibilitatea de detecție a pietonilor duce la scăderea procentului de
pietoni implicați in accidentele rutiere.
Detecția pietonilor cu o cameră termală are avantajul de a se putea face indiferent de condițiile
meteo sau dacă este zi sau noapte.
Pe lângă posibilitatea de aplicare a detecției pietonilor în industria auto, aceasta poate fi folosită și
pentru siguranța personală, camere de supraveghere, dar și pentru aplicații militare, cum ar fi
aplicațiile pentru detecția oamenilor ce vor să traverseze ilegal granițele.
Obiectivul acestei lucrări este acela de a realiza o metodă pentru detecția pietonilor în imagini din
spectrul infraroșu. O să enumăr câteva proprietăți pe care ar trebui sa le aibă sistemul:
• Ar trebui să fie foarte fiabil în ceea ce privește detecția falsă; ar trebui să aibă o
rată mare de detecție corectă și o rată mică de erori;
• Ar trebui să fie fiabil in ceea ce privește mediul înconjurător. Sistemul trebuie să
funcționeze atât în oraș cât și în afara lui;
• Ar trebui să fie fiabil indiferent de condițiile meteo. Ar trebui sa poată sa opereze
sub diferite condiții meteo, de exemplu pe timp de ploaie sau ninsoare.
Sistemul dezvoltat, care satisface proprietățile de mai sus, este împărțit în două mari componente:
• O componentă în care se face prelucrarea imaginii de antrenare
• O componentă ce conține clasificatorul SVM.
În primul capitol al acestei lucrări sunt prezentate în ordine următoarele subiecte: spectrul
electromagnetic, radiația infraroșie și imaginile termale. Am început cu acest capitol pentru a avea
cunoștințele de bază pentru care am ales folosirea imaginilor termale și nu a celor clasice, vizuale.
În cel de-al doilea capitol am prezentat metode de analiză si prelucrare a imaginilor. Aceste metode
au fost aplicate imaginii de antrenare pentru a scoate caracteristicile acesteia, caracteristici ce vor
fi folosite de clasificator.
În cel de-al treilea capitol am prezentat metoda de clasificare și anume SVM ( mașină cu vectori
suport) .
În capitolul patru voi prezenta algoritmul după care funcționează aplicația software. Vor fi expuse
diagramele logice ale principalelor funcții.
În capitolul cinci voi prezenta implementarea software a metodei. Va fi prezentat si explicat codul
sursă al aplicației.
Capitolul șase este capitolul în care se prezintă rezultatele algoritmului. Inițial se va prezenta baza
de date cu care am lucrat, după aceea indicii de performanță, iar in final rezultatele algoritmului.
1.Imagini în spectrul înfroșu

1.1 Spectrul electromagnetic

Spectrul electromagnetic cuprinde radiațiile electromagnetice, de la cele mai scurte


(radiațiile cosmice) până la cele mai lungi (undele radio), caracterizate prin lungimea de undă și
frecvență.

Figură 1-0-1 Spectrul Electromagnetic [18]

În ordinea crescândă a lungimii de undă și descrescândă a frecvenței, zonele de radiații


electromagnetice principale sunt: radiațiile gama γ, razele X (Roentgen), radiațiile ultraviolete,
spectrul vizibil, radiațiile infraroșii, microundele și ultima zonă – undele radio.
Zonele cele mai utilizate în teledetecție sunt: ultravioletele, spectrul vizibil, infraroșu și
radar. Pentru înregistrările fotografice, spațiul de înregistrare se compune din ultravioletul
apropiat, zona vizibilului și infraroșu apropiat.
În figura 1-1 este prezentat spectrul electromagnetic, cu delimitările aproximative ale
domeniilor în funcție de lungimea de undă X (în Å, μm, cm, m și km) sau frecvența vibrației ν (în
Hz), cu detalierea celor patru zone utilizate mai des de către senzorii de teledetecție: UV, vizibil,
IR si radar. Atât zona radiațiilor ultraviolete a spectrului, cât și cea a radiațiilor infraroșii este
împărțită în trei sectoare: apropiat, mediu și îndepărtat, valorile aproximative ale limitelor fiind
indicate în figură.
De asemenea, zona vizibilă a spectrului electromagnetic, cea mai redusă ca întindere, dar
cea mai utilizată până nu de mult pentru înregistrări de teledetecție, este împărțită în cele șapte
sectoare de culoare bine cunoscute: violet, indigo, albastru, verde, galben, portocaliu și roșu,
limitele lor aproximative fiind, de asemenea, menționate în figură. Zona undelor radar a fost
împărțită în șapte benzi de frecvență: V, Q, K, X, S, L și P, suprapunându-se peste microunde și
undele radio în domeniul celor scurte. O altă bandă C neacceptată oficial, se suprapune parțial
peste benzile X și S.
Între zonele în care se fragmentează spectrul electromagnetic nu se poate face o delimitare
riguroasă, porțiunea extremă superioară a unei zone suprapunându-se peste cea inferioară a zonei
vecine.
În continuare sunt prezentate câteva caracteristici ale zonelor vizibilului, infraroșului și
ultravioletului din spectrul radiațiilor electromagnetice.

1.1.1 Zona vizibilului


Așa cum se observă din figura 4.5, spațiul ocupat de zona vizibilă în cadrul spectrului
electromagnetic este foarte restrâns (aproximativ între 0,400 μm şi 0,750 μm). Radiațiile vizibile
cu ochiul liber se numesc în mod frecvent lumină. Cele șapte culori ce caracterizează spectrul
vizibil (ROGVAIV) asigură, prin combinarea lor în anumite proporții, obținerea culorii albe.
După, cum se poate observa în figura 4.5, limitele aproximative ale sectoarelor de culoare
conturează niște domenii inegale ca întindere pentru fiecare. Domeniile culorilor albastru-violet
(0,400 – 0,505 μm), verde (0,505 – 0,570 μm) şi roșu (0,620 – 0,750 μm) sunt cele mai întinse.
Dintre toate culorile spectrului vizibil doar trei sunt culori de bază: indigo cu λ = 0,4358
μm, verde cu λ = 0,5461 μm și roşu cu λ = 0,7000 μm, din combinația cărora se obțin toate celelalte
culori.
Caracterul dual, de undă a radiațiilor (când pot fi privite ca fenomen ondulatoriu) şi
particulă (când pot fi privite ca un fascicul de cuante discrete de energie numite fotoni), care
caracterizează radiațiile electromagnetice este specific şi radiațiilor din spectrul vizibil.
Formarea imaginilor cu ajutorul unor senzori este posibilă datorită faptului că obiectele
devin ,,vizibile” atunci când ele sunt luminate, mai exact atunci când energia reflectată sau difuzată
de acestea este înregistrată pe un material sensibil la energia din domeniul spectral al radiației
reflectate.
Spre deosebire de spectrul vizibil, limitele așa-numitului spectru fotografic sunt mai largi
datorită posibilităților de sensibilizare a materialelor fotosensibile, întinzându-se în infraroșul
apropiat către 1,3 μm și în cealaltă direcție mult peste 0,4 μm, în domeniul radiațiilor ultraviolete,
X și γ.
Atmosfera terestră absoarbe o parte însemnată din radiațiile solare și această absorbție
diferă mult în funcție de numeroși factori.
Compoziția spectrală a luminii de zi, folosită de obicei pentru înregistrările cu senzori
fotografici, variază în funcție de o serie de factori, dintre care se pot menționa cei mai importanți:
distanta Pământ – Soare, anotimp, latitudine și altitudine, ora din zi, compoziția atmosfere și
existenta formațiunilor noroase.

1.1.2 Zona infraroșului


Radiațiile infraroșii sunt mult mai extinse ca limite în cadrul spectrului electromagnetic
decât zona vizibilului. Astfel, radiațiile infraroșii se situează de la limita roșie a spectrului vizibil
până către undele ultrascurte, cu frecvența cuprinsă între aproximativ 1011 și ceva mai puțin de
1015 Hz, iar lungimea de unda între 0,750 și 1000 μm (1 mm).
Zona se împarte în 3 sectoare: infraroșul apropiat (0,750 – 3 μm), infraroșul mediu (3 –
30 μm) şi infraroșul îndepărtat (30 – 1000 μm), limitele de separație fiind încă, în discuția
specialiștilor. Unii acceptă și un al patrulea sector, infraroșul extrem, localizat în partea finală a
infraroșului îndepărtat, acceptându-se prescurtările din limba engleză: NIR, MIR, FIR.
Orice obiect care posedă o temperatură mai mare de O K emite radiații infraroșii, aceste
radiații comportându-se conform legilor de emisie a unui corp absolut negru. Trebuie reținut faptul
că cea mai mare parte a radiațiilor sunt reținute de atmosfera terestră, datorită componenților săi,
dar există așa-numita fereastră optică prin care atmosfera permite trecerea radiațiilor cu lungimi
de undă cuprinse între aproximativ 0,1 şi l,4 μm, cea mai mare porțiune suprapunându-se peste
infraroșul apropiat și mediu.
Înregistrările în infraroșu folosesc porțiuni limitate ale acestei zone pentru înregistrări în
sistem fotografic, pe straturi fotosensibile cu ajutorul filtrelor (0,750 – 0,900 μm), sau folosind
senzori speciali (3 – 5 μm sau 8 – 14 μm). Infraroșul termic este cuprins între 3 μm şi 15 μm, adică
de la limita infraroșului apropiat până către începutul infraroșului îndepărtat.
Înregistrările termice utilizează domeniul de radiații infraroșii pentru a cerceta un obiect
sau fenomen (însușirile și modificările acestuia) prin evidențierea temperaturii superficiale sau din
profunzime.

1.1.3 Zona ultravioletului


Zona ultravioletului se întinde de la limita inferioară a radiațiilor vizibile 0,400 μm (4000
Å) și până la 100 Å lungime de undă, cu frecvența cuprinsă între aproximativ 1015 și ceva mai mult
de 1016 Hz.
Zona ultravioletului se împarte în 3 sectoare: ultravioletul apropiat (4000–3200 Å),
ultravioletul mediu (3200–2000 Å) și ultravioletul îndepărtat (2000–100 Å), limitele de separație
acceptate fiind încă în discuția specialiștilor.

1.2.1 Radiația infraroșie si termală

Radiația infraroșie a fost inițial descoperită in anul 1800 de Sir Frederick William Herschel (1738-
1822), care este de asemenea faimos pentru descoperirea planetei Uranus. Radiația infraroșie este
o parte a spectrului electromagnetic și își are numele din cuvântul latin infra care înseamnă sub.
Banda de radiație infraroșie se afla sub banda de radiație vizibilă pentru roșu, având lungimea de
undă mai mare.

Banda de lungime de undă în infraroșu este largă și este de obicei împărțită în diferite benzi bazate
pe proprietățile lor: infraroșu apropiat cu abreviația NIR (Near-Infrared) si lungimea de unda
0.78–3 µm. infraroșu de unda medie cu abreviația MIR (Mid-infrared) si lungimea de unda 3–50
µm, infraroșu îndepărtat cu abreviația FIR (Far-infrared) si lungimea de unda 50–1000 µm;

Când interacționează cu materia, radiația electromagnetica este absorbita (α) , transmisă (τ) si/sau
reflectată (ρ). Legea radiației toate este: 1=α+ ρ+ τ, unde α,ρ, τ ϵ[0,1]. În plus, energia termala a
unui obiect poate fi convertită in energie electromagnetică, numită radiație termală. Toate obiectele
cu temperaturi mai mari de 0 Kelvin emit radiație termală într-o măsură diferită, depinzând de
temperatură si material.

1.2.2 Imagini termale

Imaginile termale sunt afișări vizuale ale radiației termale emise, reflectate si transmise in mediu.
Când sunt prezentate unui operator, hărțile de culoare sunt des folosite ca hărți a intensității valorii
pixelilor, pentru a vizualiza detaliile mai clar. Exemple de imagini termale cu diferite hărți de
culoare se vad in imaginile următoare.

Figură 1-0-2 Imagine termală cu hartă gri


Figură 1-0-3 Imagine termală cu hartă roșie

Figură 1-0-4 Imagine termală cu hartă curcubeu

Datorită surselor multiple de radiație termală, imagistica termică poate fi destul de dificilă, in
funcție de proprietățile obiectului si de mediul înconjurător. Cantitatea de radiații emise de obiect
depinde de emisivitatea sa, așa cum este explicat în secțiunea anterioară. În plus, radiații termice
de la alte obiecte sunt reflectate pe suprafața obiectului. Prin urmare, este important să știți reflexia
obiectului. Cantitatea de radiație care ajunge la detector este afectată de atmosferă. Unele radiații
sunt transmise, unele sunt absorbite, iar altele sunt chiar emise din atmosferă. În plus, camera însăși
emite termic radiații în timpul funcționării. Pentru a măsura radiațiile termice și astfel
temperaturile cât mai exacte, toate aceste efecte trebuie luate în considerare. La distanțele scurte,
efectele atmosferice pot fi ignorate. Dar pentru distanțe mai mari este esențial să se țină cont de
efectele atmosferice.
Materialele au proprietăți diferite în spectrul termal față de cel vizibil. Unele materiale care reflectă
lumina sau sunt transparente în spectrul vizual, nu sunt în spectrul termal, un exemplu ar fi sticla.
Sticla este transparentă în spectrul vizibil în timp ce în spectrul termal este opacă. Din această
cauza, lentilele camerei termale nu sunt făcute din sticlă ci din germaniu, un material opac în
spectrul vizibil, dar transparent în spectrul termal.
Figură 1-0-5 Exemplu camera termală cu lentilă din germaniu

Camerele termale sunt răcite sau nu. Camerele care sunt răcite pot livra sute de imagini pe secundă
la rezoluție HD și au o sensivitate la temperatură de 20mK. Imaginile sunt stocate ca imagini cu
16 biți pe pixel, pentru a permite o plajă mare de temperaturi, de exemplu 0-382.2 K cu precizie
de 10mK. Camerele nerăcite au de obicei mai mult zgomot, dar sunt mai mici, mai silențioase și
mai ieftine.
1.2.3 Avantaje si limitări

Din punct de vedere al măsurării temperaturilor, imagistica termică este avantajoasă comparativ
cu metodele bazate pe puncte, deoarece temperaturile pot fi comparate pe o suprafață mare. Cu
toate acestea, nu este considerată ca fiind la fel de exactă ca metodele de contact.
În comparație cu camerele vizuale, camerele termale sunt favorabile atât timp ce există o diferență
de temperatură legată de obiectul sau fenomenul pe care doriți să îl detectați. De exemplu,
incendii, oameni, animale, temperaturile corporale crescute, sau diferențe în capacitatea de transfer
de căldură în materiale. Când vine vorba de aplicații, camerele termale sunt deosebit de avantajoase
față de camerele vizuale în aplicații în aer liber. Camerele termale pot produce o imagine fără
distorsiuni sau cu puține distorsiuni în întuneric și / sau în condiții meteorologice dificile (de
exemplu ceață / ploaie / zăpadă). Acest lucru se datorează din nou faptului că o cameră termală
este sensibilă pentru radiațiile emise, chiar și de la obiecte relativ reci, spre deosebire de o cameră
vizuală care măsoară radiația reflectată care depinde de iluminare.
Din imagistică termică nu este considerat posibil sa se facă detecție de persoane, un lucru care
poate fi atât un avantaj cât și o limitare. Înseamnă că imagistica termică poate fi folosită in aplicații
în care se păstrează intimitatea persoanelor. În cazul în care se dorește identificarea persoanelor,
camera termală ar trebui combinată cu o camera vizuală.

1.3.1 Aplicații ale camerei termale.

Există multe aplicații bazate pe analiza de imagini termale. Cum rezoluțiile imaginilor termale
cresc, iar prețul camerelor scade, in viitor vor exista si mai multe. Voi prezenta mai jos câteva
exemple de utilizare a imagisticii termale:
Agricultura: Monitorizarea animalelor domestice si sălbatice, detectarea focului în câmp deschis.
Siguranța automobilelor: Detecția si urmărirea pietonilor, a autovehiculelor, utilizând o camera
termala montată in partea din față a mașinii.
Inspecția clădirilor: Pierderile de căldură din clădiri pot fi urmărite folosind camera termală. Există
aplicații care creează o hartă 3D termală automat pentru vizualizarea pierderilor de căldură.
Industrie: Detecția diferitelor materiale, poziționarea lor și pentru testarea materialelor.
Medicină: Detecția tumorilor, inflamațiilor.
Aplicații militare: urmărirea țintelor, detecția focurilor de armă, atenționarea în cazul apropierii
rachetelor, detecția minelor antipersonal, detecția lunetiștilor.
Securitate: Căutarea persoanelor fără a ține cont de luminozitate, detecția, urmărirea si analizarea
comportamentului persoanelor suspecte.

Figură 1-0-6 Agricultură - detecție mastită Figură 1-0-7 Siguranța automobilelor. Cameră amplasată
în locomotiva unui tren
Figură 1-0-8 Inspecția clădirilor. Detecția căldurii din podea
Figură 1-0-9 Medical. Detecția temperaturii persoanelor
pentru detecția febrei

Figură 1-0-10 Militar. Detecția minelor Figură 1-0-12 Militar. Detecția oamenilor care traversează
ilegal granițe

Figură 1-0-11 Uz personal. Detecția infecțiilor.


Figură 1-0-13 Uz personal. Camera de supraveghere
2.Analiza imaginilor

În acest capitol voi prezenta metodele prin care se face prelucrarea imaginilor din spectrul termal.

2.1.1 Zgomotul în imagini


Zgomotul este o informație nedorită care deteriorează calitatea unei imagini.
Procesul de apariție a zgomotului poate fi scris :
f(i,j) = s(i,j) + n(i,j) (2.1)
unde f este imaginea din memorie, n este un proces care afectează imaginea iar s este semnalul
inițial al imaginii.
Sursa principală de apariție a zgomotului în imagini digitale provine din conversia semnalului
optic in semnal electric si invers.
Pentru îmbunătățirea imaginilor și reducerea zgomotului, voi aplica un filtru de mediere, un filtru
median și operații morfologice. Acestea vor fi prezentate in continuare.

2.2 Filtru liniară a imaginilor

Așa cum îi spune si numele, această metodă de filtrare respectă principiul superpoziției: Fie date
doua imagini f1(x,y) și f2(x,y), și două numere reale α și β, operatorul liniar O are următoarea
proprietate:
O [α · f1(x, y) + β · f2(x, y)] = α · O[f1(x, y)] + β · O[f2(x, y)] (2.2)
Operația de filtrare liniară calculează o valoare noua a unui pixel al imaginii in poziția (m,n) ca o
combinație liniară a unor valori din imaginea originală după formula:
𝑔(𝑚, 𝑛) = ∑𝑘,𝑙 ∑∈𝑊 𝑤𝑘𝑙 ∗ 𝑓(𝑚 − 𝑘, 𝑛 − 𝑙) (2.3)
Unde f(x,y) e imaginea originală, iar g(x,y) este imaginea filtrată, W este structura de puncte ce
definește vecinătatea pixelului (m,n), 𝑤𝑘𝑙 sunt valori constant ce reprezintă coeficienții filtrului.
Filtrul este definit de vecinătatea W ¸si de coeficienții 𝑤𝑘𝑙 . Un filtru poate fi specificat de o matrice
V , care poartă numele de mască de convoluție sau mască de filtrare, care este caracterizată de
formă, valorile coeficienților și de origine.
Operația de filtrare liniară poate fi descrisă astfel: se suprapune masca de filtrare peste fiecare pixel
al imaginii originale, astfel încât originea măștii să coincidă cu pixelul considerat, apoi se
calculează toate produsele între coeficienții măștii și valorile pixelilor peste care se suprapun acești
coeficienți, iar suma acestor produse reprezintă noua valoare a pixelului considerat. Această
tehnică poartă numele de tehnica ferestrei glisante. Operația descrisă reprezintă de fapt o
convoluție bidimensională.
2.2.1 Filtre de netezire

Filtrele de netezire sunt echivalentele bidimensionale ale filtrelor trece-jos (FTJ), ¸si la fel ca
acestea, sunt folosite în general pentru eliminarea zgomotului, care se presupune că este de bandă
largă. Informația conținută într-o imagine, în general, se regăsește în componentele de joasă
frecvență, și deci este justificată o filtrare trece-jos pentru reducerea puterii zgomotului. Zgomotul
din imagine se presupune că este aditiv și pur aleator, adică se consideră următoarele ipoteze
simplificatoare:
• g(i, j) = f(i, j) + n(i, j) (zgomotul n este aditiv), (2.4)
• n este un semnal staționar (comportamentul său statistic nu depinde de coordonatele i și j ale
pixelului),
• n = 0 (media zgomotului este zero),
• daca zgomotul are dispersia σn, atunci:
σ2 , 𝑝𝑒𝑛𝑡𝑟𝑢 𝑖1 = 𝑖2 ș𝑖 𝑗1 = 𝑗2
𝑛(𝑖1 , 𝑗1 ) ∗ 𝑛(𝑖2 , 𝑗2 ) = { 𝑛 (2.5)
0, î𝑛 𝑟𝑒𝑠𝑡

Condiția de normare a coeficienților filtrelor de netezire


Pentru un filtru trece-jos se impune următoarea condiție: componenta continuă a imaginii să nu
fie alterată de filtru. Cu alte cuvinte, filtrul să conserve luminozitatea medie a imaginii. Pentru
aceasta, considerăm o imagine având un singur nivel de gri, constant, notat cu µ, adică: f(i, j) = µ
pentru oricare i și j. Pentru ca filtrul să conserve luminozitatea medie, adică valoarea medie µ,
impunem g(i, j) = µ pentru ∨i, j. Rezultă:

𝜇 = ∑(𝑘,𝑙) ∑𝜖𝑊 𝑤𝑘𝑙 ∗ 𝜇 (2.6)

∑(𝑘,𝑙) ∑𝜖𝑊 𝑤𝑘𝑙 = 1 (2.7)

Unde 𝑤𝑘𝑙 ≥ 0
2.2.2 Filtrul de mediere

Filtrul de mediere este cel mai simplu filtru de netezire. Caracteristica acestui tip de filtru este
faptul că toți coeficienții măștii de filtrare sunt egali.
În algoritm am folosit o masca de filtrare cu valoarea 1/25

Figură 2-0-1 Imagine inițială

Figură 2-0-2 Imagine după aplicarea filtrului de mediere


Figură 2-0-3 Histogramă imagine inițială

Figură 2-0-4 Histogramă imagine după aplicarea filtrului de mediere


2.3 Filtrarea neliniară a imaginilor

Atunci când zgomotul ce apare pe o imagine nu are distribuție normală și nu este aditiv, apare
limitarea filtrelor liniare. Dacă o a imagine afectată de un zgomot impulsiv ar fi filtrată liniar,
rezultatul ar fi o accentuare a punctelor de zgomot și coruperea punctelor cu valori corecte din
jurul acestora. Pentru a filtra o astfel de imagine, s-au introdus metode de filtrare neliniare, ce nu
respectă principul superpoziției. Una din clasele importante este cea a filtrelor bazate pe ordonare.
la capetele șirului de valori (deci într-o zonă bine definită), permițând astfel identificarea și
eliminarea acestora.

2.3.1 Filtrarea de ordine

Filtrele de ordine sunt operatori locali: filtrul este definit de o fereastră (mască), care
selectează din imaginea de prelucrat un număr de vecini ai pixelului curent (se respectă
deci același model de prelucrare al ferestrei glisante, întâlnit ¸si la filtrările liniare în
domeniul spațial). Valorile selectate de fereastra de filtrare sunt apoi ordonate crescător;
dacă valorile selectate de o fereastră cu n poziții sunt {x1, x2, ..., xn}, atunci același set
de valori, ordonate crescător este {x(1), x(2), ..., x(n)}. Valorile x(i) se numesc statistici de
ordine de ordinul i și au proprietatea
x(1) ≤x(2) ≤ ... ≤ x(n) (2.8)
În mod evident statistica de ordinul 1, x(1), este valoarea minimă, iar statistica de ordinul
n, x(n), este valoarea maximă.
Ieșirea filtrului de ordine de ordin k este statistica de ordinul k, cu k ∈ [1; n]:
rankk{x1, x2, ..., xn} = x(k) (2.9)

În acest fel, ieșirea unui filtru de ordine este una dintre valorile selectate de fereastra de
filtrare, ¸si deci nu se creează la ieșire valori noi (așa cum se întâmplă la filtrarea liniară);
acesta este un avantaj atât în ceea ce prive¸ste p˘astrarea valorilor originale din imagine,
cât ¸si din punctul de vedere al simplificării calculelor (nu mai sunt necesare operații cu
numere reale, ce trebuie apoi rotunjite sau trunchiate la numere naturale).
Filtrele de ordine nu sunt liniare din cauza operației de ordonare (ce nu respectă principiul
superpoziției); în general putem scrie:

rankk{x1 + y1, x2 + y2, ..., xn + yn} ≠ rankk{x1, x2, ..., xn} + rankk{y1, y2, ..., yn} (2.10)

Filtrele de ordine comută însă cu operațiile de modificare liniară a valorilor:

rankk{αx1 + β, αx2 + β, ..., αxn + β} = α rankk{x1, x2, ..., xn} + β (2.11)

Din punct de vedere statistic, interesează funcțiile de distribuție ale ieșirii filtrului (funcție
de densitate de probabilitate, funcție de repartiție) atunci când funcțiile de distribuție
ale valorilor de intrare sunt presupuse cunoscute. Modelul folosit în general se bazează pe
ipoteza de independentă ¸si distribuție identica a valorilor selectate de fereastra filtrului
(ceea ce conduce, implicit, la ipoteza că valorile pixelilor imaginii sunt variabile aleatoare
independente, identic distribuite1). Dacă notăm cu f(x) ¸si F(x) funcțiile de densitate
de probabilitate ¸si respectiv repartiție a valorilor pixelilor din imaginea ce se filtrează cu
un filtru de ordine de ordin k cu fereastră de n elemente, atunci ceea ce interesează este
funcția de densitate de probabilitate a ieșirii filtrului de ordine, fk(x).

Fie t o valoare oarecare din domeniul de variație al variabilelor aleatoare: atunci probabilitatea
evenimentului ca ieșirea filtrului de ordine să se găsească în intervalul [t; t + dt]
este fk(t)dt. Evenimentul de interes este deci

t ≤ rankk{x1, x2, ..., xn} ≤t + dt (2.12)

adică

t ≤x(k) ≤t + dt (2.13)

Statisticile de ordine sunt obținute prin ordonarea crescătoare a valorilor xi, ordonare
crescătoare care poate fi interpretata ca o permutare oarecare a indicilor valorilor ({1, 2, ..., n}
−→ {i1, i2, ..., in}). În acest caz, evenimentul de interes exprimat de (5.6) este realizat
prin mai multe evenimente elementare de tipul:
xi1, xi2, ..., xik−1 ≤t ≤xik ≤t + dt ≤xik+1, ..., xin (2.14)
Probabilitatea evenimentului elementar din (5.7) este dată de probabilitatea ca k − 1
valori să fie mai mici decât t (deci Fk-1(t)), probabilitatea ca n − k valori să fie mai mari
ca t + dt (deci (1 − F(t))n-k ) și probabilitatea ca o valoare să fie cuprinsă în intervalul
[t; t + dt] (deci f(t)dt), adică:

P = Fk-1 (t)(1 − F(t))n-k f(t)dt (2.15)

𝑘−1
Numărul total de evenimente de tipul (5.7) este 𝑛𝐶𝑛−1 (n moduri de alege o valoare din
𝑘−1
cele n, la fiecare dintre aceste alegeri corespunzând 𝑛𝐶𝑛−1 moduri de a alege din cele n −1
valori rămase k − 1 valori care să fie mai mici ca t). Atunci:

𝑘−1 𝑘−1 ( )(
Pr(t x(k) ≤t + dt) = 𝑛𝐶𝑛−1 𝐹 𝑡 1 − 𝐹(𝑡))𝑛−𝑘 𝑓 (𝑡)𝑑𝑡 (2.16)

și deci funcția de densitate de probabilitate a ieșirii filtrului de ordine de ordin k este:

𝑘−1 𝑘−1
𝑓𝑘 (𝑥 ) = 𝑛𝐶𝑛−1 𝐹 (𝑥)(1 − 𝐹(𝑥 ))𝑛−𝑘 𝑓(𝑥) (2.17)
În [12] sunt prezentate diferite utilizări ale funcției de densitate de probabilitate a ieșirii
filtrelor de ordine, mai ales pentru determinarea comportării asimptotice (n −→ ∞) a
filtrelor.
Proprietățile deterministe ale filtrelor de ordine se referă la comportamentul acestora
în zonele tipice ale unei imagini: porțiuni netede ¸si contururi. Filtrele de ordine nu
afectează contururile (zonele de pantă abruptă) ¸si păstrează valoarea zonelor uniforme.
Aceste comportări au fost extinse la investigarea clasei mai generale de semnale rădăcină
- semnale ce nu sunt modificate prin filtrare.
Orice secvență {xi} monotonă (crescătoare sau descrescătoare) este un semnal rădăcină
pentru filtrele de ordine. În plus, filtrele de ordine comută cu orice funcție monotonă
g: rankk (g(xi)) = g(rankk(xi))
Pe lângă metodele analitice de construire a semnalelor rădăcină, în practică, semnalele
rădăcină se obțin prin filtrarea repetată a unui semnal oarecare, până la obținerea invarianței. Să
considerăm spre exemplu secvența unidimensională x = {0, 1, 1, 3, 1, 3, 2, 3, 3, 2,
1, 1} pe care o vom filtra cu o fereastră de filtrare de dimensiune 3, centrată, cu un filtru de
ordine de ordin 2. După prima filtrare se obține secvența x1 = {0, 1, 1, 1, 3, 2, 3, 3, 3, 2, 1, 1, 0},
iar după a doua filtrare se obține secvența x2 = {0, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 0}. Această
secvență este invariantă la filtrările următoare și deci este un semnal rădăcină

2.3.2 Filtrul median

Filtrul median este un filtru de ordine a cărui ieșire este statistica de ordine de ordin
central a setului de valori selectate de fereastra de filtrare.

𝑥𝑛+1 , 𝑑𝑎𝑐ă 𝑛 𝑒𝑠𝑡𝑒 𝑖𝑚𝑝𝑎𝑟


2
𝑚𝑒𝑑𝑖𝑎𝑛{𝑥1 , 𝑥2 , … 𝑥𝑛 } = {1 1 (2.18)
𝑥𝑛 + 2 𝑥(𝑛+1) , 𝑑𝑎𝑐ă 𝑛 𝑒𝑠𝑡𝑒 𝑝𝑎𝑟
2 2 2

Ieșirea filtrului median este valoarea din centrul secvenței ordonate. În cazul in care ferestrele de
filtrare sunt de dimensiune pară, valoarea din centrul secvenței ordonate nu există și va fi definită
ca media aritmetică a valorilor din vecinătate.
Efectele sunt evidente pentru filtrarea zgomotului de tip impulsiv (sare și piper). Datorită faptului
ca punctele de zgomot sunt 0 respectiv 255, acestea se vor afla la începutul si sfârșitul șirului de
valori, iar acestea nu vor afecta ieșirea filtrului median.
Figură 2-0-5 Histogramă imagine inițială

Figură 2-0-6Histogramă imagine după aplicarea filtrului median


Figură 2-0-7 Imagine inițială

Figură 2-0-8 Imagine după aplicarea filtrului median


2.4 Morfologie Matematica

Morfologia matematică realizează o abordare axată pe formă a prelucrării imaginilor. Folosirea


acestei metode duce la prelucrări ce simplifică structura imaginii, păstrând totuși caracteristicile
legate de formă.
În orice prelucrare morfologică se dorește ca imaginea sa fie considerată un ansamblu asupra căruia
se aplică transformări pentru a putea fi comparată cu mulțimi mai simple numite elemente
structurate. Această transformare are ca scop extragerea formelor mai simple din forma inițială.
Morfologia matematică este utilizată ca o abordare naturală a proceselor de vedere artificială,
deoarece trăsăturile și respectiv identificarea obiectelor sunt corelate cu forma.
Principalele aplicații sunt în domeniile roboticii, microscopiei electronice, imagisticii biomedicale,
telemetriei, inspecției automate a produselor, analizei de scenă. Aplicațiile
industriale sunt impulsionate și de continua dezvoltare și îmbunătățire a arhitecturilor
de calcul ce implementează transformări morfologice.

2.4.1 Erodarea morfologică

Erodarea morfologică a unei mulțimi A prin elementul structurat B este definită ca mulțimea
punctelor cu care se poate translata elementul structurant astfel încât acesta să fie inclus în
mulțimea de prelucrat A:
𝐴 ⊖ 𝐵 = {x|𝐵𝑥 ⊆ 𝐴} (2.19)
Erodarea morfologica a mulțimii A este transformata Hit or Miss a mulțimii cu un element
structurant B=B1 (B2= ∅):
𝐴 ⊖ 𝐵 = {x|(𝐵1 )𝑥 ⊆ 𝐴} ∩ {x|(∅)𝑥 ⊆ 𝐴𝐶 } = {x|𝐵𝑥 ⊆ 𝐴} (2.20)
Elementul structurat poate avea orice formă. Cele mai comune forme sunt:
-element structurant disc discret V4

-element structurant ce nu își conține originea

-element structurant pătrat V8


Operația de erodare morfologică poate fi descrisă in 2 pași:
1. Dacă originea elementului structurant coincide cu un pixel alb în imagine, nu se modifică
nimic, se trece la următorul pixel.
2. Dacă originea elementului structurant coincide cu un pixel negru în imagine și cel puțin un
pixel negru din elementul structurat cade peste un pixel alb din imagine, atunci se schimbă
pixelul negru din imagine ( corespunzând poziției în care este centrul elementului
structurat) din negru in alb.

Figură 2-0-9 Exemplu erodare morfologică

2.4.2 Dilatarea morfologică

Dilatarea morfologică a mulțimii A cu elementul structurant B se definește ca mulțimea


punctelor (elementelor) cu care se poate translata elementul structurant astfel încât acesta
să aibă puncte comune cu mulțimea de prelucrat A:

𝐴 ⊕ 𝐵 = {𝐵𝑥 ∩ 𝐴 ≠ ∅} (2.21)

Dilatarea morfologică a mulțimii A este complementara transformatei Hit or Miss a mulțimii cu


un element structurant B=B2(B1= ∅):
(A ⊕ 𝐵)𝐶 = { x|(𝐵1 )𝑥 ⊆ 𝐴} ∩ {x|(𝐵2 )𝑥 ⊆ 𝐴𝐶 } = {x|(∅)𝑥 ⊆ 𝐴} ∩ {x|(𝐵2 )𝑥 ⊆ 𝐴𝐶 } =
{x|(𝐵)𝑥 ⊆ 𝐴𝐶 } (2.22)
𝐴 ⊕ 𝐵 = {x|(B)𝑥 ⊆ 𝐴𝐶 }𝐶 = {x|(B)𝑥 ⊈ 𝐴𝐶 } = {x|𝐵𝑥 ∩ 𝐴 ≠ ∅ (2.23)
Dilatarea morfologică poate fi descrisă în doi pași:
1. Dacă originea elementului structurant coincide cu un pixel alb în imagine, nu se modifică
nimic, se trece la următorul pixel.
2. Dacă originea elementului structurant coincide cu un pixel alb în imagine, se vor face negrii
toți pixelii din imagine acoperiți de elementul structurant.

Figură 2-0-10 Exemplu dilatare morfologică

Figură 2-0-11 Imagine initială


Figură 2-0-12 Imagine după dilatare morfologică

2.4.3 Închiderea si deschiderea morfologică

Deschiderea morfologică a mulțimii A prin elementul structurant B este definită ca erodarea


mulțimii cu elementul structurant B, urmată de dilatarea cu elementul structurant simetrizat:
𝐴0𝐵 = (𝐴 ⊖ 𝐵) ⊕ 𝐵 𝑆 (2.24)
Închiderea morfologică a mulțimii A prin elementul structurant B este definită ca dilatarea
mulțimii cu elementul structurant B, urmată de erodarea cu elementul structurant simetrizat:
𝐴⦁𝐵 = (𝐴 ⊕ 𝐵) ⊖ 𝐵 𝑆 (2.25)
Principala proprietate a deschiderii și închiderii este ca sunt transformări duale.
Figură 2-0-13 Exemplu deschidere morfologică

Figură 2-0-14 Exemplu inchidere morfologică


Figură 2-0-15 Imagine inițială

Figură 2-0-16 Imagine după aplicarea închiderii morfologice


3. Clasificarea

Scopul clasificării este acela de a determina care dintre regiunile de interes oferite ca exemplu de
rutina inițială de detecție conține pietoni si care nu. Clasificarea constă in următorii pași:
1. Generarea de exemple de antrenare reprezentative si validarea exemplelor
pozitive ( ce conțin pietoni)
2. Extragerea caracteristicilor din exemplu
3. Antrenarea clasificatorului cu caracteristicile de antrenare
4. Evaluarea performanței de generalizare a clasificatorului pe exemplele de
validare

3.1 Clasificatorul
Clasificatorul este algoritmul de învățare care este învățat cum sa separe între două clase de intrări:
caracteristici din exemple pozitive si caracteristici din exemple negative. Clasificatorul efectuează
de asemenea propagări: atribuirea unei etichete de clasă ( pozitiv sau negativ) într-un exemplu
nevăzut.
În această lucrare, clasificarea este întotdeauna o problemă de două clase. Clasificatorul învață să
separe între două clase de obiecte, pietoni sau nu. Deci, rezultatul clasificării este întotdeauna
interpretat ca o valoarea binară. Pieton sau nu.

3.2 SVM
3.2.1 Ce este SVM ?
Într-o varietate de situații am dori să atribui un obiect concret in una sau mai multe categorii sau
clase în funcție de caracteristici. De exemplu, se dau caracteristicile unei pagini dintr-un document
și dorim să putem sa determinăm dintr-un set de tipuri de pagini, care tip de pagină este dintr-un
anumit tip. Această problemă se numește problemă de clasificare. SVM sau Mașină cu Vectori
Suport este o metodă supervizată de învățare si clasificare, capabilă sa analizeze date și să
recunoască forme până formarea automată a unui set de reguli pentru a clasifica date similare cu
datele întâlnite precedent.
Prin învățare supervizată ne referim la sarcina de a deduce setul de reguli mai sus menționat din
date deja etichetate. Alte tipuri de algoritmi sunt capabile sa grupeze sau sa clasifice diferite obiecte
in clase in funcție de similaritate fără a ști dinainte clasele cărora aparțin. În cazul SVM trebuie să
furnizăm date deja etichetate pentru toate clasele în care am dori sa clasificăm datele.

3.2.2 Cum funcționează ?


Voi prezenta cel mai simplu caz, cazul în care avem doar doua clase. Acest caz este numit
clasificare binară.
Se dau un set de L puncte etichetate, {xi, yi } cu xi ϵℛd fiind un vector de caracteristici obiectului
al i-lea și yi ϵ {-1, +1 } etichetele claselor. Vrem să determinăm o regulă pentru a determina una
din cele două clase posibile pentru un nou x dat. Vom presupune ca cele două clase sunt liniar
separabile, adică se poate trage o linie care să separe toate punctele ce aparțin unei clase față de
punctele ce aparțin celeilalte clase când d=2, si un hiperplan când d>2. Mai mult, se dorește ca
acest hiperplan de separație sa maximizeze marginile sau distanțele dintre cele mai apropiate
puncte din fiecare clasă.
Hiperplanul menționat mai sus poate fi descris de: w⦁x+b=0, unde w este normala la hiperplan si
𝑏
fiind distanța perpendiculară din hiperplan către origine.
||𝑤||

Rezolvarea clasificării poate fi scrisă:


𝑥𝑖 ∙ 𝑤 + 𝑏 ≥ +1 𝑝𝑒𝑛𝑡𝑟𝑢 𝑦𝑖 = +1 (3.1)
𝑥𝑖 ∙ 𝑤 + 𝑏 ≤ −1 𝑝𝑒𝑛𝑡𝑟𝑢 𝑦𝑖 = −1 (3.2)
Aceste doua ecuații pot fi descrise de o singură ecuație de forma:
𝑦𝑖 (𝑥𝑖 ∙ 𝑤 + 𝑏) − 1 ≥ 0 ∀ 𝑖 (3.3)

Dacă se presupune ca setul de puncte sunt liniar separabile, atunci putem trasa o linie sau un
hiperplan trecând prin punctele care se află cel mai aproape de hiperplanul separator, aceștia fiind
vectorii suport. Principala țintă a SVM-ului este sa maximizeze distanța dintre cele doua
hiperplane.

Figură 3-0-1 SVM. Distanța de separare

Fie cele două hiperplane H1 și H2. Geometric putem vedea distanța de la H1 la hiperplan este
1 2
egală cu ||𝑤|| și similar la H2, deci distanța dintre H1 și H2 este egală cu ||𝑤|| . Cum am spus mai
sus, principalul obiectiv este sa maximizeze distanța, așa că va trebui sa fie minimizată ||w||.
1
Minimizând ||w|| este echivalent cu minimizarea 2 ∙ ||𝑤||2 dar putem folosi optimizarea
programării quadratice (Quadratic Programming optimization QP).
De acolo avem:
1
min ∙ ||𝑤||2 (3.3)
(𝑤,𝑏) 2
𝑦𝑖 (𝑥𝑖 ∙ 𝑤 + 𝑏) − 1 ≥ 0 ∀ 𝑖 (3.4)

O metodă intuitivă din spatele SVM poate fi ușor explicata in figura de mai jos, unde avem trei
planuri diferite. H3 nu separă complet două seturi de puncte. H1 separa punctele, dar nu satisface
restricția de margine maximă, iar H2 separa ambele seturi de date și maximizează distanța de la
hiperplan la vectorii suport.

Figură 3-0-2 Diferite hiperplanuri in 2D

3.2.3 Nucleele SVM


Până acum, limitele de separare posibile pentru SVM se dovedesc a fi linii in cazul ℛ2 sau
hiperplane in cazul ℛn. Câteodată sunt necesare limite de separare mai complexe pentru a clasifica
date care nu sunt liniar separabile, așa cum este prezentat în imaginea de mai jos.
Figură 3-0-3 Exemplu de spațiu neseparabil liniar

Când avem acest tip de date, sunt necesare linii de separare mai complexe. Metoda prin care SVM
rezolva asta este prin ajutorul nucleelor. Deseori caracteristicile neseparabile liniar devin liniar
separabile atunci când sunt mapate într-un spațiu mai mare dimensional.
Este o proprietate interesantă care ne permite sa folosim metoda de clasificare explicată mai sus
fără mare efort, singurul lucru cerut fiind sa transformăm datele într-un mod anume.
Exemplu:
Φ: ℜ2 → ℜ3
(𝑥1 , 𝑥2 ) → (𝑧1 , 𝑧2 , 𝑧3 ) = (𝑥12 , √2𝑥1 𝑥2 , 𝑥22 (3.5)
Este clar că prin maparea 3D a datelor, acestea devin separabile prin hiperplane.

Deși există mai multe tipuri de nuclee, voi exemplifica nucleul gaussian sau Radial Basis kerner
(RBF).
Expresia care definește RBF este:
||𝑥−𝑥 , ||22
𝐾 (𝑥, 𝑥 , ) = Φ(𝑥)𝑇 Φ(𝑥 , ) = exp(− ) (3.6)
2𝜎 2

Unde σ este un parametru liber, x si x’ sunt vectori caracteristici, iar ||x- x’||22 este distanta
euclidiană la pătrat.
Putem găsi formula scrisă:
𝐾 (𝑥, 𝑥 , ) = exp(−𝛾||𝑥 − 𝑥 , ||22 ) (3.7)
1
Unde 𝛾 = 2𝜎

Să presupunem ca avem m instanțe de antrenare. Atunci, pentru fiecare instanță de antrenare,


definim un set de repere astfel încât fiecare poziție a unui reper sa corespundă exact punctelor din
setul de antrenare.
Fie instanțele de antrenare (x1,y1),(x2,y2) ... (xm,ym), alegem reperele menționate ca fiind l1=x1,
l2=x2 .. lm=xm.
Se dă ca exemplu x, in loc sa avem x ca un vector caracteristic, mapăm vectorul astfel:
𝑘(𝑥, 𝑙1)
𝑘(𝑥, 𝑙2)
.
𝑥 → 𝑥𝑚𝑎𝑝𝑎𝑡 = (3.8)
.
.
[ 𝑘(𝑥, 𝑙𝑚]
Același tip de optimizare poate fi formulat înlocuind vectorul x cu noul vector 𝑥𝑚𝑎𝑝𝑎𝑡 . În concluzie
clasificarea unui punct se reduce la o predicție:
𝑥𝑚𝑎𝑝𝑎𝑡 ∙ 𝑤 + 𝑏 − 1 ≥ 0 (3.9)

3.2.4 Antrenarea SVM


În timp ce secțiunea de mai sus explică principala teorie din spatele SVM nu am explicat totuși
efectul unor detalii și parametri care implică autoînvățarea.
Eficacitatea SVM, presupunând ca avem date bune, depinde de alegerea nucleelor, de parametrii
nucleelor și de parametrul de margine C.
Între parametrii nucleului, in cazul RBF, găsim valoarea γ, pe care va fi explicată in continuare.
Întreaga idee din spatele parametrului C este ca acesta permite o anumită cantitate de instanțe
clasificate greșit, atunci când nu este posibilă o separare clară realizata de niciun hiperplan, dar
încă se realizează cea mai bună separare posibilă. O metodă de înțelegere a parametrului C este sa
fie văzut ca un parametru ce măsoară efortul pe care SVM-ul îl face până găsește limitele de
separare. În mod normal, este un parametru de ponderare ce permite controlul asupra penalizării
fiecărei instanțe clasificare greșit.
Putem scrie obiectivul SVM ca fiind:
1
min ∙ ||𝑤||2 + 𝐶 ∑𝑚
𝑖=1 𝜉𝑖 (3.10)
(𝑤,𝑏,𝜉) 2

𝑦𝑖 (𝑥𝑖 ∙ 𝑤 + 𝑏) − 1 ≥ −𝜉𝑖 ∀ 𝑖 𝜉𝑖 ≥ 0 (3.11)

Figură 3-0-4 Efectul parametrului de cost. În figura de mai jos, se arată efectul
parametrului C, dacă s-ar penaliza foarte
mult o instanță cu clasificare greșită, SVM o sa încerce să încadreze perfect fiecare instanță, dând
ca plan de separare hiperplanul H1 ce va avea o limită de clasificare mai slabă. Dacă, în schimb,
s-ar micșora costul pentru clasificarea greșită, am obține hiperplanul H2, care este mai rezonabil.
1
Relația dintre γ si σ este: 𝛾 = 2𝜎. Așadar, când σ e mare ( γ mic) avem că funcția de similitudine
variază ușor, invers σ mic ( γ mare) implică o variație mai pronunțată in funcția de similitudine.
Aceste lucruri pot fi văzute reprezentând forma pe care o ia funcția gaussiană când variază σ.

Figură 3-0-5 Curba gaussiană pentru σ=1

Figură 3-0-6 Curba gaussiană pentru σ=2


Figură 3-0-7 Efectul γ asupra limitelor de separare. γ=10

Figură 3-0-8 Efectul γ asupra limitelor de separare. γ=100


Figură 3-0-9 Efectul γ asupra limitelor de separare. γ=1000
3.2.5 Testare SVM
Cel mai important lucru in testarea unui model de clasificare este selectarea ca date de test a unor
date care nu au fost folosite in procesul de învățare. Dacă dorim să vedem performanțele reale ale
unui model, trebuie să știm cum funcționează când întâlnește date nevăzute. Acest lucru ar trebui
să ne dea un indiciu despre cum a fost generalizat modelul in timpul antrenării.
4.Algoritmul metodei

În acest capitol voi prezenta algoritmul pe baza căruia am făcut implementarea. Algoritmul este
împărțit în trei părți. Prima parte este partea de antrenare a clasificatorului SVM, a doua partea
este cea de clasificare a datelor, iar cea dea treia parte este partea de post procesare, parte ce
implică procesarea imaginilor pentru reducerea zgomotului.
În continuare, voi prezenta diagramele logice ale algoritmului pentru funcțiile
EXTRACTFEATURES.m, mp.m si pentru scriptul main.m.

Figură 4-0-1 diagramă logica mp.m


Figură 4-0-2 diagrama logică pentru EXTRACTFEATURES.m
Figură 4-0-3 diagrama logică pentru main.m
Scriptul main este funcția de bază, in interiorul acestuia făcându-se apelul către celelalte funcții
folosite, de aceea voi începe prezentarea algoritmului cu el.
Astfel pentru realizarea primei părți a algoritmului, și anume antrenarea SVM, va trebui să fie
încărcată o imagine de test și o imagine ground truth. Imaginea ground truth este o imagine
binară, alb negru, unde cu alb au fost păstrate doar zonele de interes, în cazul acesta pietonii, iar
restul este negru. O astfel de imagine poate fi văzută în imaginea 4-0-4.

Figură 4-0-4 Exemplu imagine ground truth

Din imaginea de test se vor extrage caracteristicile, apelând la funcția EXTRACTFEATURES cu


ajutorul metodelor de prelucrare a imaginilor prezentate în capitolul 2 și anume: filtru de
mediere, filtru median, dilatare morfologică și închidere morfologică. Această funcție va fi
prezentată in detaliu mai jos.
Extragerea de caracteristici din imagine este un pas in pregătirea datelor pentru învățarea
clasificatorului SVM. Astfel, pentru învățare se apelează funcția svmtrain cu parametrii:
caracteristicile extrase din imaginea de test și imaginea ground truth. Svmtrain este o funcție
care antrenează clasificatorul SVM cu date luate din doua grupuri, unul este reprezentat de o
matrice a cărei linii corespund caracteristicilor, iar rândurile corespund observațiilor. Cel de-al
doilea grup este format dintr-un vector coloană ce conține etichetele știute pentru antrenare.
Răspunsul apelării acestei funcții va fi o structură ce conține informații despre clasificatorul
SVM antrenat, una dintre cele mai importante informații se leagă de vectorii suport. Acesta va fi
folosită de funcția de clasificare. Nucleul folosit pentru această lucrare este unul de tip liniar.
Pentru partea de testare a SVM se pornește cu o bucla for, cu numărul de iterații egal cu numărul
de imagini în care se dorește să se facă detecție de pietoni. Se citește câte o imagine la fiecare
iterație. După citirea imaginii, se extrag caracteristicile acesteia, folosind tot funcția
EXTRACTFEATURES. După extragerea caracteristicilor, se vor clasifica datele prin apelarea
funcției svmclassify. Această funcție clasifică datele folosind SVM. Funcția are ca parametrii de
intrare structura returnată de svmtrain și matricea ce se dorește a fi clasificată. Variabila în care
se încarcă datele clasificate este reformată ca imagine, adică va fi o matrice de 240 x 360 uint8.
Figură 4-0-5 Exemplu de imagine după clasificare

După reformarea imaginii, se intră în partea de post procesare, acolo unde se caută petele sau
componentele conectate din noua imagine creată după clasificare, se aplică un filtru care are ca
scop reducerea zgomotului și păstrarea în imagine doar a componentelor conectate între ele cu
dimensiunea mai mare decât un prag dat.

Figură 4-0-6 Imagine după filtrare cu prag stabilit

După cum se poate vedea în imaginea de mai sus, după clasificare avem zgomot în imagine, iar
pentru a elimina zgomotul, algoritmul are o parte de post procesare.
Se afișează imaginea inițială, cea încărcată după intrarea in bucla for, iar pe aceasta se afișează
dreptunghiuri roșii în pozițiile unde sunt componentele conectate care au trecut de prag.
Figură 4-0-7 Exemplu imagine în care sunt detectați pietonii

În continuare voi prezenta algoritmul pentru cele două funcții EXTRACTFEATURES.m și


mp.m.
Așadar, în EXTRACTFEATURES se încarcă imaginea, căreia i se aplică un filtru de mediere, se
calculează închiderea morfologică și se aplică un filtru median. Pentru aplicarea închiderii
morfologice se apelează funcția mp.m, funcție al cărui algoritm va fi prezentat mai jos.
Funcția EXTRACTFEATURES va avea ca parametru de ieșire o variabilă in care vor fi încărcate
caracteristicile legate de intensitate și rezultatul asupra imaginii după aplicarea închiderii
morfologice și filtrului median.

Figură 4-0-8 Imagine după aplicarea filtrului de mediere


Figură 4-0-9 Imagine după aplicarea filtrului median

Funcția mp.m este funcția ce aplică închiderea morfologică. În această funcție se inițiază
caracteristicile elementului structurant, adică forma și dimensiunea. După aceea se va construi
elementul structurant. Elementul structurant este folosit pentru aplicarea funcției de dilatare.
După aplicarea operației de dilatare, se face reconstrucția morfologică. Funcția va returna un
obiect ce va conține imaginea asupra căreia s-a aplicat închiderea morfologică și numărul de
iterații.
5.Implementarea software

În acest capitol voi prezenta modul în care algoritmul a fost implementat.


Implementarea software a algoritmului prezentat in capitolul 4 s-a realizat in Matlab.
Matlab este un mediu de dezvoltare ce conține un limbaj de programare cu același nume, creat de
MathWorks. Matlab este creat pentru calculul numeric si dezvoltarea rapidă de aplicații.
Principalele motive pentru care am ales Matlab sunt:
1. Dezvoltarea mai rapidă in comparație cu C++ sau Java
2. Un număr mare de librării si funcții pentru computer vision
3. Eficiența în lucrul cu matrice si vectori
Matlab își structurează tot codul in fișiere cu extensia .m, fișiere ce pot fi funcții sau scripturi.
Principala diferență între cele două fiind aceea că in funcții se așteaptă parametrii de intrare și
poate returna mai mulți parametrii de ieșire, în timp ce scripturile nu utilizează nici parametrii de
intrare nici parametrii de ieșire, ci lucrează cu variabilele din spațiul de lucru.
În continuare voi prezenta funcțiile și scripturile folosite în această lucrare.
• uigetdir.m – este o funcție ce deschide o căsuță de dialog în care utilizatorul sa
navigheze către un director anume și să îl selecteze; funcția returnează adresa
directorului ca un string.

• imread.m – este o funcție care citește o imagine dintr-un fișier specificat; tipul de
date fiind uint8.

• im2double.m – este o funcție care convertește imaginea din tipul de date uint 8 în
double.

• EXTRACTFEATURES.m – este o funcție în care sunt calculate caracteristicile pe


care va fi bazat clasificatorul. Funcția are ca parametrul de intrare o imagine. În
această funcție se aplică imaginii un filtru de mediere, se calculează închiderea
morfologică și se aplică un filtru median. Funcția returnează o matrice cu două
coloane și un număr de linii egal cu numărul total de pixeli al imaginii ce contine
caracteristicile imaginii.

• imfilter.m – este o funcție cu doi parametrii de intrare, care face filtrarea primului
element cu cel de-al doilea. În această lucrare este folosit ca un filtru de mediere,
imaginea fiind filtrata cu o masca 3x3 de 1/25

• mp.m – funcție care are doi parametrii de intrare, imaginea și un parametru n ce


dictează mărimea buclei. Această funcție calculează închiderea morfologică.
• strel.m - funcție care creează elementul structurant pentru închiderea
morfologică. Are ca parametrii de intrare forma si mărimea elementului structurat.

• imdilate.m – această funcție este folosită pentru operația de dilatare morfologică.


Are ca parametrii de intrare imaginea asupra căreia se dorește a fi făcută operația
si elementul structurant. Funcția returnează o imagine asupra căreia s-a făcut
operația de dilatare.

• imcomplement.m – este o funcție care are ca parametru de intrare o imagine, iar


ca parametru de ieșire complementul imaginii, deci această funcție calculează
complementul unei imagini.

• imreconstruct.m – funcție ce realizează reconstrucția morfologică a imaginii.

• medfilt2.m – funcție care aplică filtru median. Are ca parametrii de intrare


imaginea asupra căreia se dorește să se aplice filtrul și un parametru de forma
[M N] ce reprezintă mărimea vecinătății pe care se calculează media.

• svmtrain.m – funcție care antrenează clasificatorul SVM cu date luate din doua
grupuri, unul este reprezentat de o matrice a cărei linii corespund caracteristicilor,
iar rândurile corespund observațiilor. Cel de-al doilea grup este format dintr-un
vector coloană ce conține etichetele știute pentru antrenare.

• svmclassify.m – funcție ce clasifică datele folosind SVM. Funcția are ca


parametrii de intrare structura returnată de svmtrain și matricea ce se dorește a fi
clasificată.

• Bwconncomp.m – funcție ce găsește si returnează componentele care sunt


conectate in imaginile binare.

• regionprops.m – funcție ce măsoară un set de proprietăți din fiecare componentă


conectată în imagini binare. Are ca parametru de intrare răspunsul functiei
bwconncomp.m

• classperf.m – funcție ce evaluează performanțele clasificărilor.

• Reclangle.m – funcție ce creează un dreptunghi la o anumită locație primită ca


parametru de intrare.

• Waitforbuttonpress.m – este o funcție ce oprește execuția programului până la


apăsarea unui buton al mouse-ului.

• Main.m – este un script ce conține apelurile pentru celelalte funcții. La rularea


scriptului se vor afișa imaginile, una câte una, imagini în care pietonii sunt
încadrați într-un dreptunghi roșu.
În continuare, după ce am prezentat funcțiile si scriptul ce compun această lucrare, voi prezenta
și descrie codul sursă al aplicației.
Voi începe cu prezentarea scriptului MAIN.m, cel care apelează funcțiile componente ale
aplicației software. Astfel, in scripul MAIN încarc o imagine de test, imagine ce a fost
redenumită ”testimage.bmp”. Acest lucru este făcut cu pe baza următoarei secvențe de cod:
folder = uigetdir;
I1 = imread(strcat(folder,'\testimage.bmp'));I=im2double(I1)

Prin apelarea funcției uigerdit, se va deschide o căsuță de dialog în care utilizatorul poate naviga
pentru a găsi directorul unde se află imaginea de test. Adresa directorului se va salva ca string în
variabila ”folder”.

Figură 5-0-1 deschidere căsuță dialog

În următoarea secvență de cod se încarcă imaginea in variabila ”I1”, folosind imread și se va converti din
tipul de date uint8 în tipul de date double.
TRUTH = imread(strcat(folder,'\groundtruth.bmp'));
TRUTH(find(TRUTH>0))=1;image(mat2gray(TRUTH)),
TRUTH = TRUTH(:);

În această secvență de cod se încarcă imaginea ground truth in variabila ”TRUTH”. Funcția
strcat concatenează string-ul ce este salvat in variabila ”folder”. Imaginea ground truth a fost
redenumită in prealabil ca ”roundtruth.bmp”.
După încărcare, se verifică dacă încărcarea s-a făcut corect, iar după matricea inițială în care a
fost încărcată imaginea este transformată într-un vector coloană, ce conține toate punctele din
matrice.
FEATURE = EXTRACTFEATURES(I);
Se apelează funcția EXTRACTFEATURES, funcție ce returnează sub formă de matrice cu 2
coloane si un număr de rânduri egal cu numărul total de pixeli din imaginea ”I”.

perf=classperf(TRUTH);

Se calculează performanța pentru imaginea ground truth. Apelarea funcției classperf creează si
inițiază un obiect gol pentru performanța clasificării, ce va fi actualizat la apelarea funcției după
clasificarea datelor.
svmStruct = svmtrain(FEATURE,TRUTH,'ShowPlot',true);

În structura de mai sus, se apelează funcția svmtrain, funcție ce antrenează clasificatorul SVM.
Funcția este apelată cu parametrii FEATURE,TRUTH,'ShowPlot',true unde FEATURE este
matricea în care au fost încărcate caracteristicile imaginii de test, TRUTH este vectorul coloană
transformat din imaginea groud truth. 'ShowPlot',true este o valoare logică ce specifică dacă
trebuie afișată sau nu reprezentarea grafică a datelor grupate. În mod implicit acest ultim
parametru este fals, deci dacă nu este apelat, nu va fi afișată reprezentarea grafică.
svmStruct va conține informații despre clasificatorul antrenat, cum ar fi vectorii suport, ce vor fi
folosiți mai departe în funcția svmclassify pentru clasificarea datelor.
list = dir(strcat(folder,'\*.bmp'));
for L = 2:length(list)

Se creează o buclă de mărimea numarului de imagini cu extensia .bmp. Această buclă este
folosită pentru afișarea finală a fiecărei imagini, una după cealaltă.
I = imread(strcat(folder,'\',list(L).name)); I = im2double(I);

Se citește prima imagine din lista creată mai sus și se convertește din tipul de dată uint8 în tipul
de date double.
FEATURE1 = EXTRACTFEATURES(I);

Se extrag caracteristicile imaginii încărcate în secvența de cod precedentă. Se apelează funcția


EXTRACTFEATURES.

newmap = svmclassify1(svmStruct,FEATURE1)

În secvența de mai sus, se apelează funcția svmclassify, funcție ce realizează clasificarea datelor
folosind vectorii suport ce sunt returnați de funcția svmtrain. Funcția se apelează cu parametrul
svmStruct, parametru ce este returnat de funcția svmtrain si care conține informații despre
vectorii suport. Funcția returnează nivelele de clasa prevăzut sub forma unui vector coloană.

newmap1 = reshape(newmap,size(I));
În secvența de mai sus, se remodelează variabila newmap, adică răspunsul funcției svmclassify,
variabila nouă newmap1 va avea aceeași dimensiune ca imaginea încărcată inițial.

cc = bwconncomp(newmap1);
stats = regionprops(cc, 'BoundingBox','Area')
idx = find([stats.Area] > 30);

În blocul de mai sus, în prima secvență se apelează funcția bwconncomp, funcție ce găsește
petele și componentele conectate din imagine, această funcție returnează numărul de obiecte din
imagine.
Funcția regionprops este apelată cu parametrii cc, 'BoundingBox','Area', cc este parametrul
returnat de bwconncomp. Funcția returnează fereastra de încadrare și aria petelor sau
componentelor conectate.
Ultima componentă a blocului prezentat mai sus, idx = find([stats.Area] > 30); încarcă
in variabila ”idx” rezultatul unei filtrări cu pragul 30, filtrare ce are ca efect înlăturarea
zgomotului și păstrarea in imagini doar a pietonilor.

BW = ismember(labelmatrix(cc), idx);
figure, imshow(I);
for lp = 1:length(idx)
hold on

rectangle('Position',[stats(idx(lp)).BoundingBox(1),stats(idx(lp)).BoundingBo
x(2),stats(idx(lp)).BoundingBox(3),stats(idx(lp)).BoundingBox(4)],
'EdgeColor','r','LineWidth',2 )
end
waitforbuttonpress;

În prima secvență de cod, este aplicat filtrul calculat în secvența prezentată mai sus, astfel
imaginea încărcată in BW ar trebui să fie o imagine fără zgomot proieminent.
Secvența figure, imshow(I); se afișează imaginea inițială. Urmează o buclă for de lungimea
numărului de componente conectate din imagine, iar secvența
rectangle('Position',[stats(idx(lp)).BoundingBox(1),stats(idx(lp)).BoundingBo
x(2),stats(idx(lp)).BoundingBox(3),stats(idx(lp)).BoundingBox(4)],
'EdgeColor','r','LineWidth',2 ) aplică asupra imaginii originale dreptunghiuri roșii acolo
unde sunt găsite componentele conectate care au trecut de filtrare, deci acolo unde sunt pietoni.
Se închide bucla for si se apelează funcția waitforbuttonpress, funcție ce oprește rularea
programului până la apăsarea unui buton al mouse-ului sau a unui buton de pe tastatură. Am
folosit această funcție pentru a putea analiza imaginile fără a fi constrâns de timpul de afișare a
imaginii.
În continuare, voi prezenta codul din funcțiile nou create, si anume EXTRACTFEATURES.m și
mp.m. Voi începe cu funcția EXTRACTFEATURES.m, funcție folosită pentru extragerea
caracteristicilor din imagini.
h = ones(3,3) / 25;
I = imfilter(I,h);
În această secvență, se inițializează o matrice h de dimensiune 3x3 cu valoarea 1/25 pentru toate
valorile. Variabila h va fi folosită ca mască pentru filtrarea de mediere.
În I = imfilter(I,h); se aplică un filtru de mediere asupra imaginii I, cu masca h inițializată
mai sus

F1 = I(:);
MPC = mp(I,10);
F2 = MPC(:,:,10);F2 = F2(:);
F3 = MPC(:,:,7) ;F3 = F3(:);
F4 = MPC(:,:,6) ;F4 = F4(:);

În F1 se extrag caracteristicile de intensitate a imaginii. F1 are forma unui vector coloană cu


dimensiunea egala cu numărul total de pixeli din imagine.
MPC este un controler de obiect, este încărcat cu răspunsul apelării funcției mp, funcție ce
calculează închiderea morfologică. F2, F3, F4 sunt încărcate cu rezultatul închiderii
morfologice, când acesta este aplicat de 10, 7 respectiv 6 ori. F2, F3, F4 sunt transformate in
vectori coloană cu dimensiunea egală cu numărul total de pixeli din imagine.

MF = medfilt2(MPC(:,:,10),[5 5]);
F2 = MF(:);

În secvența de mai sus se aplică filtrul median cu masca [5 5], ceea ce înseamnă că valoarea
unui pixel va fi calculată ca media celorlalte 5 puncte din vecinătate. F5 va fi încărcată cu
valoarea returnată de funcția medfilt2 dar concatenată într-un vector coloană de dimensiunea
numărului total de pixeli din imagine.

FEATURE = [F1 F2];

Se încarcă variabila FEATURE cu valorile celor doi vectori coloană, primul vector fiind cel în
care s-a calculat intensitatea, iar cel de-al doilea vectorul ce reiese după aplicarea închiderii
morfologice și filtrului median.

În cele din urmă voi prezenta scriptul mp.m, script ce realizează închiderea morfologică.

shape = 'disk';
se_size = 5;
Se atribuie variabilei ”shape” forma ”disk”, ceea ce reprezintă forma pe care o va avea elementul
structurant ce va fi folosit în calcularea închiderii morfologice. Variabila ”se_size” este încărcată
cu valoarea 5, valoare ce reprezintă dimensiunea elementului structurant.
se_ctr = 0;
for lp = 1:n
se_ctr = se_ctr + 1;
se = strel(shape,se_ctr * se_size);
Id = imdilate(I, se);
Icbr = imreconstruct(imcomplement(Id), imcomplement(I));
Icbr = imcomplement(Icbr);
MPC(:,:,lp) = Icbr; % Record lp'th Closing Profile
end

În secvența de cod prezentată mai sus, se inițializează variabila ”se_ctr” cu valoarea 0. Această
variabilă va fi folosită ca un element de control asupra dimensiunii elementului structurant.
În bucla for, care va avea un număr de iterații specificat de utilizator, în cazul acestei lucrări am
folosit 10, deci va avea 10 iterații, la fiecare trecere prin buclă se mărește dimensiunea
elementului structurant. Inițial aceasta are dimensiunea 5, se_ctr = 1, iterația a doua va avea
dimensiunea 10, se_ctr= 2 și așa mai departe.
Variabila ”se” va fi variabila în care se va stoca elementul structurant care este rezultatul apelării
funcției ”strel”.
Funcția imdilate este cea care calculează dilatarea asupra imaginii inițiale ”I” cu elementul
structurant ”se” rezultat din comanda de mai sus.
În variabila ”Icbr” inițial se va stoca reconstrucția imaginii. Această reconstrucție se calculează
folosind complementul imaginii dilatate ”Id” și complementul imaginii inițiale ”I”. Pentru ca
”Icbr” să aibă forma imaginii inițiale, acesta se încarcă cu complementul său, deoarece operația
de complementare a fost folosită pentru a îl afla.
În cele din urmă, MPC va fi încărcat cu valoarea Icbr (care este o imagine asupra căreia s-a
aplicat închiderea morfologică) și cu numărul iterațiilor făcute in bucla for.
6. Rezultatele experimentale

6.1 Baza de date

Baza de date de imagini este formată din imagini termale, capturate într-o intersecție din
campusul Universității Statului Ohio, în condiții meteo diferite.
”Detaliile senzorului cu care au fost capturate imaginile:
- senzorul termal Raytheon 300D
- lentile de 75mm
-cameră montată pe acoperișul unei clădiri de 9 etaje
Detaliile datelor:
-formatul imaginilor= tonuri de gri în 8 biți
-mărimea imaginii = 360 x 240 pixeli
-rata de eșantionare = neuniformă, mai mică de 30 Hz” [7]

6.2 Indici de performanta

Pentru a putea compara rezultatele, am rulat aplicația pentru diferite tipuri de nuclee: liniar, rbf.
Principalii indici de performanță sunt:
• Numărul de pietoni clasificați ca pietoni/numărul total de pietoni- rata de succes
(RS)
• Numărul de pietoni clasificați greșit/ numărul total de pietoni – rata de eroare
(RE)
• Timpul de rulare (TR)
• Scorul F - 2 (RS) (RE) /RS+ recall
• Numărul de pietoni clasificați corect/ numărul de pietoni clasificați corect +
numărul de obiecte clasificate greșit ca pietoni – recall
6.3 Rezultatele algoritmului

Tabel cu indici de performanță pentru cele două tipuri de nuclee pentru primul set de
33 de imagini
Tipul de sigma RS RE recall TR F
nucleu
Liniar - 0,967 0,33 0,988 57s 0,978
RFB 0.1 0,84 0,15 1 92s 0,91
RFB 0.25 0,87 0,12 0,48 91s 0,61

Așa cum reiese din tabelul de mai sus, cea mai bună metodă rezultată pentru acest algoritm este
metoda în care se folosește nucleul de tip liniar. Folosind acest tip de nucleu, am ajuns la cea mai
mare rată de succes, cel mai mic timp de rulare al algoritmului și cel mai mare scor F.
Tipul de sigma Numărul
nucleu vectorilor
de suport
Liniar - 1663
RFB 0.1 1187
RFB 0.25 1008

În tabelul de mai sus a fost prezentat numărul de vectori de suport folosiți pentru clasificarea
unei imagini cu cele doua tipuri de nuclee. Și în acest caz, cea mai bună metodă este cea în care
se folosește metoda liniară, aceasta având cel mai mare număr de vectori suport.

Figură 6-0-1 imagine în care pietonii au fost detectați corect


Figură 6-0-2 Exemplu imagine pieton nedetectat

În figura de mai sus este prezentat un exemplu în care un pieton nu este detectat. Se poate vedea
ca pietonul poartă o umbrelă, iar haina are o temperatura scăzută. Aria în care este prelevată
temperatura corpului este foarte mică – față și mâini.

Figură 6-0-3 imagine în care pietonul este detectat divizat


Figură 6-0-4 imagine în care se clasifică obiecte eronat ca fiind pietoni

Figură 6-0-5 Imagine în care sunt îmbinați doi pietoni

În imaginile de mai sus au fost prezentate erorile de clasificare si de detecție pe care le-am
întâlnit pe parcursul testelor făcute.
Concluzii

Această lucrare prezintă o metodă de detecție a pietonilor în imagini din spectrul infraroșu și
performantele clasificatorului SVM folosit pentru această detecție.7
În această metodă am folosit extragerea de caracteristici din imagini pentru învățare și
clasificare. Pentru extragerea caracteristicilor am folosit filtre si operații pentru prelucrarea
imaginilor.
După clasificare, are loc un proces de post procesare, proces ce are ca efect eliminarea
zgomotului din imagini.
În urma testelor făcute, procentajul de clasificare corecta a pietonilor este in jur de 96%, pentru
nucleul liniar, 84% respectiv 87% pentru rfb. Imaginile folosite prin care am ajuns la acest
rezultat sunt imagini complexe, cu un fundal complex, ce conține elemente cu temperatură
asemănătoare cu cea a persoanelor. În aceste condiții, rezultatul obținut este un rezultat bun, în
special pentru clasificarea cu nucleu liniar.
În concluzie, metoda de detecție prezentată în această lucrare este o metodă de detecție fiabilă
pentru setul de imagini din baza de date, dar și pentru alte imagini.
Anexa 1.

Main.m
clc
clear all
close all

%% Antrenare SVM
% Incarcare date de antrenare;
folder = uigetdir;
I = imread(strcat(folder,'\testimage.bmp'));I=im2double(I);
TRUTH = imread(strcat(folder,'\groundtruth.bmp'));
TRUTH(find(TRUTH>0))=1;imshow(mat2gray(TRUTH));
TRUTH = TRUTH(:);

% Extragere caracteristici
FEATURE = EXTRACTFEATURES(I);
% Antrenare SVM
%

figure;
svmStruct = svmtrain(FEATURE,TRUTH,'ShowPlot',1);

%% Testare SVM
list = dir(strcat(folder,'\*.bmp'));
for L = 2:length(list) % buclă pentru încărcare imagini

I = imread(strcat(folder,'\',list(L).name)); I =
im2double(I);

% Extragere caracteristici
FEATURE = EXTRACTFEATURES(I);

% Clasificare SVM

newmap = svmclassify1(svmStruct,FEATURE) ;
%clasificare date noi
% reformare imagine

newmap1 = reshape(newmap,size(I));

% Post procesare
% gasire doar compomente conectate/pete
cc = bwconncomp(newmap1);
stats = regionprops(cc, 'BoundingBox','Area');
idx = find([stats.Area] > 30); % filtrare cu prag, pentru eliminare zgomot
BW = ismember(labelmatrix(cc), idx); % aplicare filtru
figure, imshow(I); % afisare imagine initiala
for lp = 1:length(idx) % afisare dreptunghiuri peste pietoni
hold on
rectangle('Position',[stats(idx(lp)).BoundingBox(1),stats(idx(lp)).BoundingBo
x(2),stats(idx(lp)).BoundingBox(3),stats(idx(lp)).BoundingBox(4)],
'EdgeColor','r','LineWidth',2 )
end
waitforbuttonpress;
end

EXTRACTFEATURES.m
function FEATURE = EXTRACTFEATURES(I)

% filtru de mediere
h = ones(3,3) / 25;
I = imfilter(I,h);
% Calculare caracteristici;
F1 = I(:);
% Calculare inchidere morfologică
MPC = mp(I,10);

% aplicarea filtrului median


MF = medfilt2(MPC(:,:,10),[5 5]);
F5 = MF(:);

FEATURE = [F1 F5];

mp.m
function MPC = mp(I,n)

shape = 'disk'; % definire forma element structurant


se_size = 5; % marimea elementului structurant

% inchidere morfologica - reduce aria neagra si mareste aria alba


close all
se_ctr = 0;
for lp = 1:n
se_ctr = se_ctr + 1;
se = strel(shape,se_ctr * se_size);
Id = imdilate(I, se);
Icbr = imreconstruct(imcomplement(Id), imcomplement(I));
Icbr = imcomplement(Icbr);
MPC(:,:,lp) = Icbr;
end
Bibliografie:

[0]. V. E. Neagoe, A. D. Ciotec, A. P. Bărar, ”A Concurrent Neural Network Approach to Pedestrian


Detection in Thermal Imagery”, Proceedings of the 9th International Conference on Communications
(COMM), June 21-23, 2012, Bucharest, Romania, pp. 133 - 136,

[1.] M. Bishop Pattern Recognition and Machine Learning Springer New York 2006.

[2]. C. Dai Y. Zheng and X. Li "Layered Representation for Pedestrian Detection and Tracking in
Infrared Imagery" Proc. IEEE Conf. Comp.Vision Patt. Rec. - Workshops 25-25 June 2005 San Diego
USA ISBN 0-7695- 2372-2

[3]. N. Dalal and B. Triggs "Histograms of Oriented Gradients for Human Detection" Proc.
Conf. Comp.Vision and Patt. Rec. (CPVR'05) June 20-26 2005 San Diego USA vol. 1 pp. 886-893.

[4]. J. Davis and M. Keck. "A two-stage approach to person detection in thermal imagery"
Proc. 7-th IEEE Workshops on Application of Computer Vision 2005 Volume 1 5-7 Jan. 2005 Breckenridge
CO pp. 364-369.

[5]. D.M. Gavrila "A Bayesian Exemplar-Based Approach to Hierarchical Shape Matching"
IEEE Trans. Patt. Anal. Mach. Intell. vol.29 nr. 8 Aug. 2007 pp. 1408-1421.

[6]. R. C. González and R. E. Woods Digital Image Processing (3rd Edition) Prentice Hall 2008.

[7]. Z. Li Q. Wu J. Zhang and G. Geers "SKRWM based descriptor for pedestrian detection in
thermal images" Proc. 13th IEEE Int. Workshop on Multimedia Sign. Proc. (MMSP) 17-19 Oct. 2011
pp. 1-6.

[8]. V. E. Neagoe and A. Ropot "Concurrent Self-Organizing Maps – A Powerful Artificial Neural
Tool for Biometric Technology" in Harbour Protection Through Data Fusion Technologies NATO
Science for Peace and Security Series-C: Environm. Security pp. 291- 298 Springer 2009.
[9]. V. E. Neagoe C.T. Tudoran and M. Neghinǎ "A Neural Network Approach to Pedestrian
Detection" Proc. 13th WSEAS International Conference on Computers July 23-25 2009 Rhodes
Island Greece pp. 374-379 ISBN: 978-960- 474-099- 4.

[10]. V. E. Neagoe A. Ropot and A. Mugioiu "Real Time Face Recognition Using Decision Fusion of
Neural Classifiers in the Visible and Thermal Infrared Spectrum" Proc. 2007 IEEE Int. Conf.Adv.
Video & Sign. Surveill. (AVSS 2007) 5-7 Sept. 2007 London ISBN:978-1- 4244-1696- 7.

[11]. F. Xu X. Liu and K. Fujimura "Pedestrian detection and tracking with night vision" IEEE
Trans Intell. Transp. Systems vol. 6 March 2005 pp. 63-71.

[12]. M. Yasuno S. Ryousuke N. Yasuda and M. Aoki "Pedestrian Detection and Tracking in Far
Infrared Images" Proc. IEEE Conf.Intell. Transp. Systems 13-15 Sept. 2005 Vienna pp. 182-187.

[13] A. Baumberg and D. Hogg. Learning _exible models from image sequences. In ECCV (1),

[14] H. Bay, A. Ess, T. Tuytelaars, and L. Van Gool. Speeded-up robust features (SURF).
Computer Vision and Image Understanding

[15] Serban-Vasile Carata, Victor-Emil Neagoe, "A Pulse-Coupled Neural Network approach for
image segmentation and its pattern recognition application", Communications (COMM) 2016
International Conference

[16] Note de curs PRELUCRAREA ¸SI ANALIZA IMAGINILOR, Constantin VERTAN

[17] IEEE OTCBVS WS Series Bench; J. Davis and M. Keck, "A two-stage approach to person detection in
thermal imagery," In Proc. Workshop on Applications of Computer Vision, January 2005

[18] http://old.protectiamuncii.ro/ro/good_practice/campul-elecromagnetic.html

[19] Detection and Tracking in Thermal Infrared Imagery Amanda Berg

[20] https://en.wikipedia.org/wiki/Electromagnetic_spectrum

[21] V. E. Neagoe, A. D. Ciotec, A. P. Bărar, ”A Concurrent Neural Network Approach to


Pedestrian Detection in Thermal Imagery”, Proceedings of the 9th International Conference on
Communications (COMM), June 21-23, 2012, Bucharest, Romania, pp. 133 - 136.

[22] A. D. Ciotec, V. E. Neagoe, A. P. Bărar, “Concurrent Self-Organizing Maps for


Pedestrian Detection in Thermal Imagery”, Scientific Bulletin of the Polytechnic University of
Bucharest, Series C, Vol. 75, Iss. 4, 2013,
[23]
https://ec.europa.eu/transport/road_safety/sites/roadsafety/files/pdf/statistics/dacota/bfs2016_
pedestrians.pdf

S-ar putea să vă placă și