Documente Academic
Documente Profesional
Documente Cultură
Multumedia
1
Contents
CURSUL 1 – Imagini digitale. Tipuri si formate ............................................................................................ 6
1.1 Formarea culorii .................................................................................................................................. 6
1.1.1 Lumina.......................................................................................................................................... 6
1.1.2 Formarea imaginii in ochiul uman ............................................................................................... 6
1.1.3 Achizitia si afisarea imaginii ......................................................................................................... 6
Perceptia culorii in sistemul LHS ........................................................................................................... 6
1.2 Modelul de Culoare....................................................................................................................... 6
CMY model substractiv (ce ....................................................................................................................... 6
1.3 Reprezentarea Imaginilor.................................................................................................................... 7
1.3.1 Reprezentarea digitală a imaginilor ............................................................................................. 7
1.3.2 Imagini de intensitate şi monocromatice .................................................................................... 7
1.3.3 Imagini color în reprezentare RGB ............................................................................................... 7
1.3.4 Imagini de intensitate .................................................................................................................. 8
1.3.5 Tehnici de marcare LSB-I (ascunderea unei imagini in alta imagine-imaginea marca) ............... 8
1.4 Tehnici de Binarizare ..................................................................................................................... 8
Binarizarea imaginilor digitale .................................................................................................................. 8
CURSUL 2 lipsa .............................................................................................................................................. 8
CURSUL 3 ...................................................................................................................................................... 8
3.1 Imagini indexate.................................................................................................................................. 8
3.2 Reducera numarului de culori............................................................................................................. 9
3.2.1 Cuantizarea uniforma .................................................................................................................. 9
3.2.2 Look-up Table............................................................................................................................... 9
3.2.3 Median Cut................................................................................................................................... 9
3.2.4 Masuri de eroare.......................................................................................................................... 9
3.2.5 Algoritm k-means ....................................................................................................................... 10
CURSUL 4 - Compresii fara pierderi ......................................................................................................... 10
4.1 Tipuri de compresie .......................................................................................................................... 11
4.2 Entropia unui sistem ......................................................................................................................... 11
4.3 RLE – Run Length Encoding ............................................................................................................... 11
4.4 Codarea ariilor constante.................................................................................................................. 12
4.5 Codul WBS : White Block Skipping .................................................................................................... 12
4.6 Codul Gray......................................................................................................................................... 12
2
4.7 Coduri VLC(Codificare de lungime variabila) .................................................................................... 12
4.8 Coduri Instantanee............................................................................................................................ 12
4.9 Lungimea media a unui cuvant ......................................................................................................... 12
4.10 Codarea Shannon-Fano:.................................................................................................................. 12
4.11 Codarea Huffman: ........................................................................................................................... 12
4.12 Decodificarea Huffman ................................................................................................................... 13
4.13 Codul Huffman Extins...................................................................................................................... 13
4.14 Compresia LZW(Coduri Bazate pe Dicţionare)................................................................................ 13
4.15 Codarea Diferenţială ....................................................................................................................... 13
4.16 Modulatie Delta .............................................................................................................................. 13
4.17 Compresie JPEG fără pierderi ......................................................................................................... 13
4.18 Compresii cu arbori cuaternari ....................................................................................................... 14
4.19 Compresie cu sau fără pierderi ....................................................................................................... 14
4.20 Codarea imaginii ............................................................................................................................. 14
4.21 Îmbunătăţirea timpului de codare .................................................................................................. 14
4.22 Codarea Aritmetică ......................................................................................................................... 14
4.22.1 Variante moderne de codare aritmetică: ................................................................................ 14
CURSUL 5 - ZGOMOTE si FILTRE ................................................................................................................. 15
5.1 Tipuri de procesări ale imaginilor ..................................................................................................... 15
5.2 Filtre Spaţiale Liniare......................................................................................................................... 16
5.3 Proprietăţi ale convoluţiei ................................................................................................................ 17
5.4 FILTRE DE NETEZIRE(TRECE JOS) ....................................................................................................... 17
5.5 FILTRE DE CONTRASTARE (TRECE SUS) ............................................................................................. 18
5.6 Conceptul de filtrare adaptivă .......................................................................................................... 18
5.7 Filtrare Adaptivă Direcţională ........................................................................................................... 18
5.8 Filtrarea Adaptivă cu Prag ................................................................................................................. 18
5.9 Filtre de Ordine ................................................................................................................................. 19
5.10 Filtrul de Ordine de Rang k ............................................................................................................. 19
5.11 Filtre de Ordine de Domeniu .......................................................................................................... 19
5.12 Filtre de Ordine de Reliefare ........................................................................................................... 20
CURSUL 6 - Tipuri de procesare a imaginilor .......................................................................................... 20
6.1 Caracterizarea zgomotelor................................................................................................................ 20
6.1.1 Zgomotul de tip “Sare si piper” ...................................................................................................... 21
3
6.2 Filtre spatiale liniare.......................................................................................................................... 22
6.3 Filre de netezire (trece jos) ............................................................................................................... 22
6.4 Filtre trece-sus .................................................................................................................................. 22
6.5 Filtrare liniara adaptive ..................................................................................................................... 23
6.6 Filtre de ordine.................................................................................................................................. 23
CURS 7......................................................................................................................................................... 25
7.1 Algoritmii de regresie logistica si SV ................................................................................................. 25
7.2 SVM ................................................................................................................................................... 26
CURS 8 – Transformata KLT. Recunoastere faciala. .................................................................................. 26
CURSUL 9 – Segmentarea imaginilor ......................................................................................................... 32
9.1 Aplicatii ale segmentarii: ....................................................................................................................... 32
9.2 Tehnici simple de segmentare: ............................................................................................................. 32
9.3 Algoritmul de extindere a regiunii ........................................................................................................ 33
9.3.1 Exemple de criterii de omogenitate :............................................................................................. 33
9.4 Proprietăți Matematice..................................................................................................................... 34
9.5 Caz simplu de segmentare prin binarizare........................................................................................ 35
9.6 Caz complex de segmentare prin binarizare..................................................................................... 35
9.7 Reprezentarea culorii in HSV(Hue, Saturation, Value)...................................................................... 35
9.8 Proprietati K-Means .......................................................................................................................... 36
9.9 Gaussian Mixture Models ........................................................................................................... 36
9.10 EM (Expectation-Maximization) ..................................................................................................... 36
9.11 Tehnica Split and Merge ................................................................................................................. 37
9.12 Algoritmul Mean Shift ..................................................................................................................... 37
LABORATOARE ........................................................................................................................................... 38
Laboratorul3 - Studierea algoritmilior de reducere a numarului de culori .............................................. 38
3.1 Cuantificarea uniforma (cea mai simpla strategie) ........................................................................... 38
3.2 ColorMap .......................................................................................................................................... 40
3.3 Reducerea numarului de culori folosind ColorMap-uri .................................................................... 41
Laboratorul 4 .............................................................................................................................................. 42
4.1 K-Means ............................................................................................................................................ 42
4.2 Reducerea numarului de culori folosind algoritmul k-means........................................................... 44
4.3 Clasificarea cifrelor scrise de mana folosind K-Means...................................................................... 44
Laboratorul 5 - DBSCAN ............................................................................................................................. 45
4
5.1 Clusterizare blob-urilor ..................................................................................................................... 46
Laboratorul 6 – Compresii Lossless ............................................................................................................ 47
6.1 Codarea Huffman .............................................................................................................................. 47
6.2 Compresia Aritmetica ....................................................................................................................... 48
Laboratorul 7 – DCT si JPEG ....................................................................................................................... 49
Laboratorul 8 .............................................................................................................................................. 50
Laboratorul 9 – Introducere in retele neuronale ...................................................................................... 52
9.1 O retea neuronala simpla ................................................................................................................. 53
9.2 Retele neuronale de convolutie ........................................................................................................ 55
5
CURSUL 1 – Imagini digitale. Tipuri si formate
1.1 Formarea culorii
1.1.1 Lumina
In spectrul de semnale electromagnetice exista o zona mai ingusta care se numeste
spectrul vizibil. Se intinde cam de la 400 nm pana la 700 nm. Exista diverse surse de lumina cu
lungimi diferite de unda. Culoarea luminii este data de lungimea de unda. Lumina de tip laser
are mai multe lungimi de unda.
6
1.3 Reprezentarea Imaginilor
1.3.1 Reprezentarea digitală a imaginilor
O imagine este construita ca o functie continua de 2 variabile reale 0<f(x,y)<L. Pentru
trecerea ei in format digital trebuie realizate:
7
1.3.4 Imagini de intensitate
Putem descompune fiecare pixel pe 8 plane de biti 10001101 - bitul cel mai
reprezentativ (MSB) şi bitul cel mai puţin reprezentativ (LSB).
pixel = nivel de intensitate în [0-255].
Planele de biti sunt doar alb-negru si au contribuţii diferite la formarea imaginii. Cele mai
importante sunt primele plane de biti, ultimele sunt in general zgomote. Acest aspect ne
poate ajuta la compresia cu pierderi prin codarea diferită a planelor, metode de
watermarking (încapsularea unei informaţii secrete care realizeaza o suma de control folosind
ultimele plane) sau autentificarea imaginilor bazate pe tehnica LSB .
1.3.5 Tehnici de marcare LSB-I (ascunderea unei imagini in alta imagine-imaginea marca)
Cei mai putini biti ai imaginii gazda sunt inlocuiti cu cei mai semnificativi biti ai imaginii
marca. Trebuie facut un compromise intre robustete (claritatea imaginii gazda) si fidelitate
(imaginea marcata sa fie cat mai apropiata decat originala)
CURSUL 2 lipsa
CURSUL 3
3.1 Imagini indexate
Un triplet rbg de culoare este format din 3 octeti care au valori de la 0 la 255. O imagine de n x
m are nevoie de n x m x 3 octeti pentru a fi reprezentata.
Daca am avea un table cu 3 coloane pentru r,g,b si 256 de linii pentru fiecare culoare care ar
putea fi perceputa de ochiul uman, o imagine in loc sa fie compusa din n x m x 3 ar fi compusa din n x m
8
unde fiecare valoare reprezinta un index pentru o culoare din tabel. Astfel o sa pentru memorarea
imaginii este nevoi de n x m + 768 octeti in loc de n x m x 3 octeti.
Formatul BMP are in header o tabela de culori care este folosita pentru indexarea imaginilor.
Dupa mai multe iteratii o sa fie cubul rgn impartit in mai multe paralelipipede, ca sa reduc numarul
de culori se inlocuiesc culorile dintr-un paralelipiped cu o culoare reprezentativa pentru acel
paralelipiped. Dupa n pasi o sa am 2 la n culori.
MSE(Mean square Error): eroare medie patratica intre pixelii dintre imaginea originala si ce
afinala
PSNR(Peak Signal to noise Ratio): refecta raportul dintre valoarea maxima din imaginea originala
si MSE. Pentru un PSNR< 30 este degradare severa, pentru PSNR > 38 imaginile sunt foarte
asemanatoare.
9
3.2.5 Algoritm k-means
Atribuie cate un label pentru fiecare cluster si calculeaza un centroid (un representant) pentru
fiecare cluster
2. calculeaza distanta dintre fiecare punct si fiecare centroid si punctelor le sunt atribuite label-uri
pentru in functie de cel mai apropiat centroid
3. recalculeaza pozitia centroidului in functie de mediana punctelor din label-ul centroidului, sar la 2
Se repeta pana cand nici un punct nu-si mai schimba label-ul sau dupa un numar stabilit de iteratii,
algoritmul converge
K-means este aplicat pentru reducerea numarului de culori, daca se doreste reducerea la 16 culori se
aplica k-means cu 16 clustere peste culorile din imagine mapate 3D.
Compresiile cu pierderi au redundanta si toleranta umana pe cand cele fara pierderi exploateaza
redundanta.
10
Din punct de vedere al performantelor exista o serie de indicatori:
-rata de compresie->raportul dintre cantitatea datelor la intrare si la iesire
-factorul de compresie-> raportul dintre cantitatea de informatie necesara reprezentarii imaginii
initiale si cantitatea de informatie necesara reprezentarii imaginii codate
-calitatea imaginii
-viteza de compresie si decompresie
1
𝐻(𝑠) = ∑ 𝑝𝑖 log 2 ( )
𝑝𝑖
11
4.4 Codarea ariilor constante
Pentru imagini binare : cuvinte de cod pentru identificarea ariilor largi constante (albe sau
negre). Imaginea este divizată în blocuri de MxN pixeli : complet albe, complet negre, mixte
(alb+negru).
Cea mai frecventă arie constantă ⇨ codul 0.
Cealaltă arie constantă ⇨ codul 10.
Ariile mixte sunt codate : 11 + şirul de MxN biţi.
12
3. Din sirul p se elimina cele 2 probailitati cele mai mici si in sirul p se introduce valoarea
continua de radacina a arborelui binar format.
4.Daca in sirul p exista mai mult de un element se reiau toti pasii de la inceput.
5.Codarea binara a fiecarui element se obtine prin parcurgerea arborelui ce s-a format de la
radacina spre fiecare frunza.
13
-codare fara pierderi:imaginea e codata astfel incat sa garanteze reproducerea exacta la
decodare
Ideea de baza: Reprezentarea unui mesaj prin intermediul unui interval [a, b) cu a şi b numere
reale între 0 şi 1.
➢ Initial, intervalul este [0, 1).
14
⇨ mai multi biţi pentru a putea fi reprezentat …
15
• multiplicativ: g(x)=f(x,y)*n(x,y)
g=imaginea afectată de zgomot
f=imaginea inițială
n=zgomotul aplicat
Zgomotul multiplicativ poate fi redus la unul aditiv daca se logaritmează prima relație.
Raportul semnal zgomot(SNR) reprezintă raportul dintre energia imaginii originale și
energia zgomotului suprapus.
Raportul PSNR este o dependență subiectivă a imaginii în funție de nivelul de zgomot.
Zgomotul cu distribuție uniformă este modelat ca o variabilă uniform distribuită între A
și -A.
g(x)=f(x,y)+n(x,y)=f(x,y)+ A * N
N reprezintă o variabilă aleatoare între -1 și 1.
Zgomotul cu distribuție normală ( gaussiană) este o variabilă cu distribuție normală N.
g(x)= f(x,y)+ A * N
N reprezintă o variabilă normală N(0,1).
Zgomotul multiplicativ este provenit prin fenomenul de suprapunere al imaginii cu
zgomotul.
g(x)=f(x,y)+ A * N* f(x,y)= f(x,y)*(1+ AN)
Zgomotul de tip ,, Sare și Piper” afecteaz[ pixelii în 2 moduri:
• sare: înlocuirea valorii cu valoarea maximă
• piper: înlocuirea valorii cu valoarea minimă
Efectul de zgomot este mai pregnant ca la cel gaussian datorită discrepanței între valoarea
curentă a pixelului și valoarea de înlocuire.
16
Se suprapune masca de intrare peste fiecare pixel ai imaginii originale astfel încât oricare
masca să coincidă cu pixel ul considerat, apoi se calculează toate produsele între coeficienții
mastii și valorile pixelilor peste care se suprapun acești coeficienți. Suma acestora reprezinta nou
valoare a pixelului considerat.(TEHNICA FERESTREI GLISANTE).
17
Dacă variaţia 𝜎 este mică, filtrul gaussian se apropie de filtrul identitate ⇨ reducere foarte mică
a zgomotului.
(𝛼 + 1) ∗ 1 − 𝛼 ∑ 𝐿𝑖 = 𝛼 + 1 − 𝛼 = 1
18
5.9 Filtre de Ordine
Un filtru de accentuare a contrastului ⇒ valorile aberante vor ieşi şi mai mult în evidenţă.
O clasă a filtrelor neliniare bazată pe ideea de ordonare a valorilor pixelilor din cadrul ferestrei.
𝑥_1≤𝑥_2≤…≤𝑥_(𝑛−1)≤𝑥_𝑛
Proprietăţi :
19
Ieşirea filtrului LUM (Lower Upper Middle) de netezire:
𝑥𝑘 , 𝑑𝑎𝑐𝑎 𝑥 ∗ < 𝑥𝑘
𝑦 = {𝑥𝑛−𝑘+1 , 𝑑𝑎𝑐𝑎 𝑥 ∗ > 𝑥𝑛−𝑘+1
𝑥 ∗ , 𝑖𝑛 𝑟𝑒𝑠𝑡
𝑥 ∗ - pixelul din centrul ferestrei; 𝑘 – parametru reglabil
𝑛+1
𝑘 = 1 ⇒ filtru trece tot; 𝑘 = [ ] ⇒ filtru median.
2
➢ Dacă sunt puţine valori extreme ⇒ k mic (identitate)
➢ Dacă sunt multe valori extreme ⇒ k mare (izolare)
➢ Alegerea adaptivă a lui k reduce efectele de netezire!
20
Moduri de alterare a imaginii cu zgomote:
• -zgomotul aditiv: g(x,y)=f(x,y)+n(x,y)
• -zgomotul multiplicativ: g(x,y)=f(x,y)*n(x,y)
• Zgomotul multiplicativ poate fi redus la unl aditiv daca se logaritmeaza relatia
matematica.
• Zgomotul (𝑥,𝑦) este modelat ca o variabilă aleatoare, având o anumită distribuţie de
probabilitate.
• Zgomotul de distribuţie uniformă : 𝑛(𝑥,𝑦) este o variabilă uniform distribuită între A şi
–A.
• Zgomotul gaussian produce mai puţine distorsiuni! (mai multe valori sunt aglomerate în
jurul lui 0)
• Zgomote multiplicative:
21
6.2 Filtre spatiale liniare
• Operaţia de filtrare spaţială este o funcţie liniară ai cărei parametri sunt pixelii din
vecinătatea pixelului curent (adesea reprezentată sub forma de pătrat/cerc). Exemple: filtru
de netezire (blur) filtru de contrastare, filtru de mediere (aici e vorba de filtrele de la tema
1 de la STD)
Parametrii unui filtru gaussian : variația 𝜎 și mărimea 𝑛 Pentru o variație 𝜎 fixată, dacă 𝑛 este
prea mic diminuarea zgomotului este redusă (prea puține instanțe ale variabilei aleatoare care să
se anuleze)
Pentru o variație 𝜎 fixată, dincolo de o anumită valoare a lui 𝑛, coeficienții filtrului devin nuli
la extremități. În general, se alege alege 𝑛=2∗[3𝜎]+1 Cu cât 𝜎 este mai mare, cu atât suprafaţa
gaussiană este mai plată ⇨ filtrul se apropie de cel de mediere. Problema filtrului de
mediere=efectul de blur …
Dacă variaţia 𝜎 este mică, filtrul gaussian se apropie defiltrul identitate ⇨ reducere foarte mică
a zgomotului. : în funcţie de imagine şi de amplitudinea zgomotului.
22
• Imaginea contrastată = combinaţie liniară între imaginea originală şi detaliile acesteia
(factorul α).
➢ Folosirea unui nucleu mai mare (ex. 9x9) limitează contaminarea dar afecteaza mult
detaliile imaginii.
➢ Un filtru de accentuare a contrastului ⇒ valorile aberante vor ieşi şi mai mult în evidenţă.
➢ O clasă a filtrelor neliniare bazată pe ideea de ordonare a valorilor pixelilor din cadrul
ferestrei.
➢ Se trece fereastra glisantă având 𝑛 elemente peste toţi pixelii din imaginea nefiltrată ⇒
statistica de ordin 𝑘.
Proprietăţi :
1) Filtrele de ordine furnizează la ieşire valori ale pixelilor din imaginea nefiltrată (valori
vecine)
2) Zonele continue ale imaginii sunt nemodificate.
3) Filtrele de ordine nu afectează contururile (pixelul/pixelii care diferă mult sunt izolaţi la
începutul sau la sfârşitul ferestrei, după ordonare) .
• Valorile punctelor de zgomot 0/255, după ordonare se vor afla la “capetele” şirului de
valori. Ieşirea filtrului este departe de valorile extreme.
23
• Filtrul poate fi “străpuns”(aici e vorba de zgomotele de tip sare si piper) : câteva valori
extreme reuşesc să rămână; aglomerare în cadrul ferestrei …(adica punctele nu au fost
afectate de filtru, au ajuns la iesirea filtrului)
• La filtrele mediane, probabilitatea de strapungere este dependenta de procentul de puncta
de zgomote din imagine si de dimensiunea ferestrei de filtrare pe care o alegem sa o
utilizam
• Mărirea ferestrei glisante rezolvă problema extremelor persistente, dar are efect de netezire
…
• Posibilitate de adaptare şi reglare a filtrelor de ordine.
• Ieşirea filtrului LUM (Lower Upper Middle) de netezire:
𝑥𝑘 , 𝑑𝑎𝑐𝑎 𝑥 ∗ < 𝑥𝑘
𝑦 = {𝑥𝑛−𝑘+1 , 𝑑𝑎𝑐𝑎 𝑥 ∗ > 𝑥𝑛−𝑘+1
𝑥 ∗ , 𝑖𝑛 𝑟𝑒𝑠𝑡
𝑥 ∗ - pixelul din centrul ferestrei; 𝑘 – parametru reglabil
𝑛+1
𝑘 = 1 ⇒ filtru trece tot; 𝑘 = [ ] ⇒ filtru median.
2
24
SNR (signal noise ratio)=raportul dintre energia imaginii originale si energia
zgomotului suprapus acesteia, sau cat de mult a afectat zgomotul imaginea
PSNR (peak signal noise ratio)=dependeta subiectiva a calitati imaginii in functie de
nivelul de zgomot; in functie de aceasta imagine ne putem da seama de calitatea imaginii;
daca rezultataul este sub 30 de decibeli, calitatea imaginii este scazuta, 30-40 calitate buna,
peste 40 calitatea foarte buna; este mult mai specifica calitatii imaginii decat SNR-ul
CURS 7
25
Ideea la regresie logistica este aceea de a nu merge direct pe trash hold pentru ca ma incurca
functia, ci mergem pe ideea de a gasi o functie derivabila care sa aproximeze datele.
7.2 SVM
Algoritmul dorestre sa gaseasca o granita de separare, un trash-hold.
Pleaca direct pe trash hold si nu pleaca pe ideea de a gasi o functie sa potriveasca datele si se
cauta trash-holdul respectiv.
Incerc sa gasesc o granita de separare care sa imi determine marginea maxima. Merg in ambele
grupari si identific punctele care sunt pe extrema, un punct este denumit un vector suport, un
punct din dataset care exista la limita exteriara a gruparii respective.
Trasez o granita de separare prin vectorul suport al unei grupari, apoi trasez si prin vectorul
suport al celeilalte grupari, iar granita finala a celor 2 grupari este granita egal departata de
granitele trasate prin cei 2 vectori suporti ai fiecarei grupari considerate.
26
Corelaţie pozitivă: valorile lui Y cresc, valorile X corespunzătoare cresc.
Corelaţie negativă: valorile lui Y cresc, valorile X corespunzătoare scad.
Inexistenta unei corelaţii: X şi Y sunt independente.
Corelaţie scăzută: posibilitatea unei legături între X şi Y, dar corelaţia nu e de natură liniară.
Corelaţia Pixelilor Vecini: pixelii adiacenti – puncte cu (x, y), au o probabilitate mare ca valorile
lor sa fie egale ⇒ alinierea punctelor pe prima bisectoare prin urmatoarea transformare:
(𝑥 ∗, 𝑦 ∗) = ((𝑥 + 𝑦)/2, (𝑦 − 𝑥)/2)
echivalentă cu rotaţia sistemului de coordonate cu 45º. Noile coordonate sunt mai puţin
corelate!
Compresie: valorile y* pot fi cuantificate şi/sau codate prin metode RLE sau VLC (ex. Huffman).
27
Direcţiile de Variaţie – exemplu
28
Codarea prin Transformare: codarea vectorilor mai eficientă decât codarea scalară.
Dacă Y este rezultatul unei tranformări liniare T iar intrările din Y sunt mai puţin corelate, atunci
Y poate fi codat mult mai eficient decât X.
Compresia nu vine din transformată (ex. DFT, DCT, KLT) ci din cuantificarea componentelor lui Y.
Codare hibridă = transformare + cuantificare + VLC.
29
Caracteristici Faciale Discriminante
În aplicaţii de compresie, ne dorim un 𝑚 astfel încât reconstrucţia să fie într-un PSNR rezonabil
(ex. 38 dB).
În aplicaţiile de recunoaştere, 𝑚 trebuie doar să permită distincţia feţelor folosind 𝒎
coeficienţi. În general se alege 𝑚 astfel încât să se păstreze 95%.
30
Scenarii posibile:
Alte Aplicaţii ale PCA: Analiza Scrisului Olograf, Interpretarea Buzelor, Recunoaşterea Vocii,
Recunoaşterea Semnelor, Recunoaşterea Gesturilor, Analiza Imaginilor Medicale
31
CURSUL 9 – Segmentarea imaginilor
32
4. Metode bazate pe clustering(K-Means, Mean-Shift, cu numar cunoscut sau nu de
clustere)
5. Bazate pe forme(level set, active contours)
6. Metode bazate pe grafuri(graph-cut, random walk)
7. Metode de minimizare a energiei (ex. MRF)
8. Metode bazate pe tehnici de inteligență artificială(Rețele Neuronale Clasice sau
Convoluționale)
POZA CU
ALGORITMUL
33
Scopul transformărilor morfologice este extragerea de forme mai simple din
formele inițiale (mai complexe)care rezultă din procesul de segmentare al imaginii.
Ajută la conturarea unor forme incomplete sau la înlăturarea unor zgomote în urma
segmentării.
Exista doua tipuri de transformari morfologice: dilatare si eroziune. Practic
mergem prin imagine cu o fereastra si vedem pentru fiecare pixel din centrul
ferestrei daca vecinii sai sunt activi(au culoare alba) sau nu. Daca vecinii nu sunt
activi, dezactivam si vecinul in cauza(acesta este procesul de EROZIUNE).
DILATAREA = inlocuim valoarea pixelului cu valoarea maxima din fereastra,
contrar cu eroziunea, cand inlocuim cu valoarea minima.
Tipuri de dilatare:
a. Circulara: un pixel este contaminat dacă se află la o distanță 𝑅 față de un
pixel din mască
b. Dilatare pătratică / rectangulară : un pixel este contaminat dacă are un vecin
pe direcție verticală, orizontală sau diagonală la o distanță de maxim 𝑅
34
Efectul închiderii : înlăturarea găurilor mici din cadrul regiunii, extinderea uşoară a
regiunii. Reuneşte obiecte care sunt foarte apropiate spaţial.
Varianta automată : se pleacă cu pixelul din stânga sus, se realizează segmentarea primei
regiuni
Se continuă procesul de segmentare cu primul pixel care nu a fost clasificat în niciuna dintre
regiuni …
Dezavantaje majore :
35
9.8 Proprietati K-Means
𝒑(𝒙) = ∑ 𝝎𝒊 𝑮(𝒙, 𝝁𝒊 , 𝝈𝒊 )
𝒊=𝟏
𝒌
∑ 𝝎𝒊 = 𝟏
𝒊=𝟏
1 (𝑥−𝜇)2
𝐺(𝑥, 𝜇, 𝜎) = 𝜎√2𝜋 𝑒𝑥𝑝 (− ) - Gaussiana
2𝜎2
9.10 EM (Expectation-Maximization)
Expectation : fiind cunoscute datele modelului (𝜔𝑗 , 𝜇𝑗 , 𝜎𝑗 ), se calculează probabilitatea fiecărui
punct (pas similar cu asignarea punctelor în clustere) cu formula:
𝝎𝒋 𝑮(𝒙, 𝝁𝒋 , 𝝈𝒋 )
𝒑𝒓𝒐𝒃(𝒙 ∈ 𝑮𝒋 ) = 𝒌
∑𝒊=𝟏 𝝎𝒊 𝑮(𝒙, 𝝁𝒊 , 𝝈𝒊 )
36
Algoritm EM
Se aleg aleatoriu datele modelului (𝜔𝑗 , 𝜇𝑗 , 𝜎𝑗 ); 𝑗 = ̅̅̅̅̅
1; 𝑘
Daca regiunile sunt vecine spatial si suficient de similare, se face reuniunea acestora.
Se pleaca de la regiuni mici: 2x2 4x4
Se cauta recursiv regiuni care pot fi reunite pana nu mai exista posibilitate de reuniune.
37
LABORATOARE
Laboratorul3 - Studierea algoritmilior de reducere a numarului de culori
Motiv: Numarul de culori dintr-o imagine are un impact semnificativ asupra memoriei necesare pentru
reprezentarea imaginii respective.
Scop: Reducerea memoriei necesare stocarii unei poze prin reducerea numarului de culori, pastrand o
fidelitate cat mai mare.
Ideea cunatificarii uniforme consta in impartirea acestui cub in cubulete egale si restrangerea numarului
total de culori de la 2563 la numarul de cubulete. Toate culorile care apartin unui cubulet vor fi inlocuite
cu o culoare reprezentativa (valoare aproximata) a cubuletului respectiv.
Ex:
38
Vom avea 0, 1, 2, 3 | 4, 5, 6, 7 | 8, 9, 10, 11. Daca folosim regula cu cea mai mica valoare
vom avea:
Formula matematica:
𝑁 𝑇
𝑥 = [𝑇 ]∗ 𝑁
, unde N este numarul de nivele, iar T este numarul total de valori. ATENTIE! [y]
inseamna partea intreaga a lui y!
In cuantificarea uniforma fiecare dintre cele 3 canale (R, G si B) sunt reduse la N nivele prin urmare
numarul total de culori este redus la 𝑁 3 , unde N este egal cu lungimea laturii cubuletului.
Ex:
Pentru N = 2 :
In cazul de fata, avem doar 6 culori, deoarce in imagine nu au existat culori care sa se
aproximeze la celelalte 2 (sa faca parte din celelalte 2 grupuri). Numarul culorilor a fost
demonstrat de proful cu un script in python).
Se face o comparare intre cele 2 imagini (imaginea originala si imaginea cu numar de culori
redus) si se calculeaza cat de mult s-a deteriorat imaginea in urma reducerii numarului de culori. Acest
lucru se numeste „metrica PSNR”.
39
Graficul de mai jos reprezinta relatia dintre valoarea PSNR pe axa Y si numarul de culori (𝑁 3 ) pe
axa X:
„Spike”-urile (varfurile din imagine) depind de continutul imaginii (difera de la imagine la imagine) si
apar deoarce sunt anumite valori ale lui N, care se potrivesc mult mai bine pentru imaginea respectiva.
3.2 ColorMap
O imagine in tonuri de gri se reprezinta ca o matrice de numere intregi cu valori intre 0 si 255. Pentru a
ajunge de la aceasta reprezentare logica la ceea ce se vede efectiv in poze se foloseste un colormap. Se
considera ca valorile din imagine reprezinta indecsi catre triplete RGB din colormap.
Colormap-urile sunt functii care asociaza fiecarui numar real cuprins intre 0 si 1 un grup de 4 numere
reale cuprinse intre 0 si 1. Prime 3 numere reale reprezinta intensitatiile RGB, iar al patrulea reprezinta
factorul de transparenta al imaginii.
Deoarce colormap-urile lucreaza cu numere intre 0 si 1, inainte de ale folosi imaginea se normalizeaza
prin impartirea la 255.
Ex:
40
In imagine putem observa cum initalizam variabila „viridis” prin apelul functiei
cm.get_cmap specificand numele colormap-ului dorit si numarul de culori pe care dorim sa-l
extragem. Matricea intoarsa are dimensiunea de 12 * 4 (12 culori, fiecare culoare reprezentata
de 4 numere reale intre 0 si 1 -> r,g,b, respectiv transparenta).
Pentru a reveni in intervalul discret 0-255 se inmulteste respectivul numar din intervalul
continuu 0-1 cu valoarea 255 si se aproximeaza.
- Se imparte cubul RGB in cubulete de latura / dupa cum a fost aratat la cuantificarea
uniforma
- Se parcurge imaginea si pentru fiecare culoare (triplet rgb) este incrementat un
counter specific cubuletului din care face parte acea culoare
41
- Se sorteaza crescator cubuletele in functie de numarul de culori din imagine gasite in
fiecare dintre acestea
- Se aleg cele mai importante culori ca fiind cele date de centrele primelor N cubulete,
unde N este numarul de culori la care se doreste sa se reduca imaginea
Laboratorul 4
4.1 K-Means
Este un algoritm de clusterizare (grupare).
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
# Centroizi
centers = [[2, 1], [-4, -2], [1, -4], [0, 3]]
# Numarul de clustere (trebuie sa fie mai mic sau egal cu len(centers))
n_clusters = 4
# Initalizare plot
42
fig = plt.figure(figsize=(8, 5))
# Produce o serie de culori (color map) pe baza numărului de etichete care există
.
colors = plt.get_cmap('Spectral')(np.linspace(0, 1, len(set(k_means_labels))))
ax.set_title('Inital-Distribution')
# Sterge semnele de pe axa X
ax.set_xticks(())
# Sterge semnele de pe axa Y
ax.set_yticks(())
bx.set_title('KMeans-Clustering')
# Sterge semnele de pe axa X
bx.set_xticks(())
# Sterge semnele de pe axa Y
43
bx.set_yticks(())
# Afisare plot
plt.show()
- Citirea imaginii si crearea unei matrici cu toate culorile care apar in aceasta.
Matricea o sa aiba forma de N * 3, unde N reprezinta numarul de pixeli
- Aplicarea algoritmului k-means pentru setul (matricea) construita anterior
- Inlocuirea fiecarei culori din imagine cu centroidul de care apartine.
Este una dintre cele mai eficiente metode de reducere a numarului de culori.
Ex:
Pastrand doar cele mai importante 4 culori (4 clustere), am obtinut urmatorul rezultat:
(imaginea din stanga este originala, imaginea din dreapta este redusa)
K-Means este un algoritm de invatare nesupervizata, prin urmare trebuie sa adaptam problema pentru
acest tip de invatare.
Mod de lucru:
1. Daca am avea 70000 de imagini cu cifre scrise de mana, am folosi 60000 pentru
antrenarea algoritmului si 10000 pentru verificare.
44
2. Luam fiecare imagine si o liniarizam. Daca imaginea ar avea dimensiunea de 28 pe
28 prin liniarizare am avea un punct de 784
3. Luam toate punctele si le clusterizam in 10 clustere (pentru ca avem 10 cifre de la 0
la 9). Obtinem centroizii in urma clusterizarii.
4. Pentru verificare luam imaginea pentru care vrem sa aflam ce cifra se afla in ea.
Aplicam transformarea de la punctul 2. Calculam distantele dintre punctul nostru si
fiecare centroid. Luam distanta minima si consideram ca punctul apartine clusterului
centroidului respectiv.
Atentie! In practica nu functioneaza cu 10 clustere. Este necesar un numar mai mare de clustere.
Laboratorul 5 - DBSCAN
DBSCAN (Density-based spatial clustering of applications with noise) este un algoritm de
clusterizare bazat pe densitatea regiunilor de puncte. Vecinatatea unui punct p se defineste ca
multimea punctelor aflate la o distanta cel mult ϵ de acest punct. Densitatea in jurul unui punct p
se defineste ca numarul de puncte din vecinatatea acestuia. Algoritmul functioneaza astfel:
In cazul in care se gaseste o multime de puncte mai mica de minPoints, atunci acele puncta vor fi
setate ca Noise
45
5.1 Clusterizare blob-urilor
K means vs dbscan
K means vs dbscan
46
Laboratorul 6 – Compresii Lossless
47
F=imhist(I);
symbols = [0:255]; % Setul de simboluri distincte ale sursei
p = F./sum(F); % distributia de probabilitate specifica sursei
[dict,avglen] = huffmandict(symbols,p); % crearea dictionarului Huffman
Compresia Huffman:
comp = huffmanenco(I(:),dict); % Encode the data.
Decompresia Huffman:
J = huffmandeco(comp,dict); % Decodarea codului Huffman
J=reshape(J,512,512); J=uint8(J);
imshow(J); % verificarea compresiei fara pierderi
48
Laboratorul 7 – DCT si JPEG
Compresia JPEG este o compresie cu pierderi, deoarece scoatem din imagini frecventele inalte,
pe care le zeroizam. Se castiga pe partea de compresie. Calitatea imaginii e inv prop cu eficienta
compresiei.
Compresie jpeg: imagini in tonuri de gri, de dimensiune 8x8, dar functioneaza pe mai multe
imagini.
Ex: Am o imagini de 16x16, pot sa aplic compresie jpeg? Da, fiindca o sparg in blocuri de 8x8.
Transformata DCT (transformata cosiuns discreta): Aplicarea unei transformate liniare (KLT,
DCT, DFT, etc.) poate fi interpretată şi în sensul descompunerii unei imagini digitale într-o anumită
bază. În cazul DCT, această bază ia forma unor cosinusoide 2D, iar un mod intuitiv de a înţelege
acest lucru îl constituie vizualizarea imaginii ca o suprafaţă 3D discretă z=f(x,y) :
49
Laboratorul 8
Dataset:
– test
– training
Functia sigmoid =
50
Functia sigmoid returneaza probabilitatea ca punctual sa fie rosu/albastru.
Daca functia este construita sa returneze probabilitatile raportat la sansa ca punctual sa fie rosu,
cand calculez pentru un punct rosu, este de dorit ca rezultatul sa fie cat mai aproape de 100%, iar
in cazul punctelor albastre sa fie cat mai aproape de 0%.
Se tine cont de functia de cost, daca de exemplu pentru un punct albastru obtin probabilitate de 70%
sa fie rosu, modific Θ0, Θ1, Θ2.
Ideea e sa pornesc de la un dataset, pentru fiecare punct cunosc label-urile si gasesc vectorul Θ.
Cand apare un punct despre care nu cunosc nimic(unul nou), il bag in functia sigmoid si aflu ceva
despre el(folosesc Θ anterior de la etapa de training).
Prima faza:Verific cat de bine functioneaza caracteristicile: medie si varianță si in baza lor clasificam
folosind regresia logistica si SVM.
Faza 2: Clasificam in baza histogramei, din nou, folosim regresia logistica si SVM.
51
Laboratorul 9 – Introducere in retele neuronale
Retelele neuronale sunt sisteme adaptive de tip cutie neagra (black-box) care permit
extragerea unui model pornind de la date printr-un proces de invatare.
În esență, arhitectura unei rețele neuronale este caracterizată de numărul de straturi, un număr
de neuroni pe fiecare strat, un algoritm de antrenare și un algoritm de operare. Algoritmul de
operare are rolul de a transforma datele de intrare în date cu o anumită semnificație în funcție de
scopul rețelei, iar algoritmul de antrenare indică rețelei neuronale cum anume poate să
dobândească noi cunoștințe pe baza datelor de intrare. Rețeaua este instruită pornind de la un set
de date care pot fi direct clasificate sau pentru care este necesară calcularea anumitor
caracteristici înainte de a începe procesul de clasificare. Procesul prin care o rețea neuronală
„învață” cum să recunoască un model poate avea două abordări:
• rețeaua învață să producă un anumit model pe baza setului de date de intrare de fiecare
dată când se aplică un model particular de intrare
• rețeaua detectează periodicitatea în care neuronii învață să răspundă la anumite
proprietăți ale modelelor de intrare. Această paradigmă de învățare este esențială pentru
descoperirea trăsăturilor și pentru reprezentarea cunoștințelor.
Din punct de vedere structural, o retea neuronala este compusa dintr-o serie de unitati functionale
(neuroni) interconectate. Indiferent de numarul de neuroni, o retea neuronala are urmatoarele
elemente:
52
Din punct de vedere al metodei de antrenare/invatare, distingem:
• supervizate (se cunosc exemplele de antrenare de forma: date de intrare, raspuns corect
iar scopul invatarii este acela de a estima parametrii care minimizeaza eroarea - diferente
intre raspunsurile corecte si cele produse de catre retea)
• nesupervizate (se cunosc doar datele de antrenare iar scopul invatarii este acela de a
estima parametrii modelului pe baza proprietatilor statistice ale datelor de intrare).
După etapa de antrenare, o rețea neuronală acționează ca un "expert" în analiza unor seturi de
date. De aceea, utilizarea unei rețele neuronale prezintă o serie de avantaje:
53
1. Primul strat preia imaginea de input de dimensiune 28x28. Acest strat are rolul de a
"aplatiza" inputul.
2. Al doilea strat (stratul ascuns) este alcatuit din 128 de neuroni. Functia de activare este
functia relu.
3. Al treilea strat este stratul de iesire. Are 10 neuroni. Outputul acestor neuroni reflecta
probabilitatea ca inputul sa reprezinte o anumita cifra. De exemplu, iesirea primului
neuron reflecta probabilitatea ca inputul sa reprezinte cifra 0.
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28, 1)),
tf.keras.layers.Dense(128, activation=tf.nn.relu),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
Dupa definirea retelei (modelului), acesta este "compilat". Operatia nu trebuie sa fie
interpretata in sensul clasic al cuvantului. In aceasta etapa, se specifica algoritmul de optimizare
folosit de retea (adam), functia de calcul a erorii (SparseCategoricalCrossentrop) si metrica de
evaluare (accuracy).
Dupa cum a fost precizat, ultimul strat reprezinta iesirea retelei. Fiecare neuron reflecta
probabilitatea ca outputul sa reprezinte o anumita cifra. Acest output trebuie evaluat pentru a
determina cat de "departat" este de outputul dorit. Pentru a evalua outputul este nevoie de un
algoritm care sa faca acest lucru. Acest algoritm este in cazul de
fata SparseCategoricalCrossentropy. De asemenea avem nevoie si de o metrica cu ajutorul
careia sa evaluam reteaua pentru setul de date de testare. O astfel de metrica este acuratetea
(raportul dintre numarul imaginilor clasificate corect si numarul total de imagini clasificate
(corect sau incorect)).
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
Problema cu algoritmul Gradient descent o reprezinta updateul ponderilor care se
efectueaza dupa fiecare imagine considerata. Acest mod de lucru conduce la un timp de
antrenare foarte lung. Din acest motiv, in practica se foloseste varianta de BATCH. In exemplu
de mai jos, BATCH_SIZE este 32. Aceasta inseamna ca datasetul va fi interpretat in chunk-uri
de 32 in ceea ce priveste update-ul ponderilor.
Intuitiv, dupa fiecare imagine parcursa, se calculeaza eroarea dintre outputul retelei si
outputul corect. In urma acestei erori, sunt actualizate ponderile retelei. Daca aceste ponderi sunt
updatate dupa fiecare imagine, procesul de antrenare va dura foarte mult. Solutia este ca updateul
ponderilor sa fie efectuat dupa 32 de imagini considerate. Mai exact, se mediaza erorile provenite
din 32 de imagini si in urma acestei medii se updateaza ponderile.
54
9.2 Retele neuronale de convolutie
Progresele înregistrate în domeniul ANN au condus la dezvoltarea unor arhitecturi complexe,
denumite rețele neuronale convoluționale -CNN, capabile să recunoască și să clasifice modele cu
un cost computațional scăzut și un număr mic de operații efectuate pentru determinarea
numărului de parametri. În general, CNN au două componente:
Obs. Straturile de convoluție și agregare sunt supuse unei funcții de activare cu rolul de a
asigura comportamentul neliniar al rețelei. Ca funcție de activare, de cele mai multe ori se
folosește ReLU (Rectified Linear Unit).
• Convoluția produce o imagine rezultat unde fiecare pixel este o combinație liniară a unei
vecinătăți din imaginea sursă.
• În funcție de coeficienții nucleului de convoluție, putem obține filtre care au efect de
netezire, sau pot pune în evidență anumite trăsături.
55
modelCNN = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3,3), padding='same', activation=tf.nn.relu,
input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D((2, 2), strides=2),
tf.keras.layers.Conv2D(64, (3,3), padding='same', activation=tf.nn.relu),
tf.keras.layers.MaxPooling2D((2, 2), strides=2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation=tf.nn.relu),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
56