TACAI - Tehnici de Analiză și Clasificare Automată a...

80
Dr.ing. Ionuț Mironică Conf.dr.ing. Bogdan Ionescu TACAI - Tehnici de Analiză și Clasificare Automată a Informației LAPI Laboratorul de Analiza şi Prelucrarea Imaginilor Universitatea POLITEHNICA din Bucureşti Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei Note de laborator

Transcript of TACAI - Tehnici de Analiză și Clasificare Automată a...

Page 1: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

Dr.ing. Ionuț MironicăConf.dr.ing. Bogdan Ionescu

TACAI - Tehnici de Analiză și Clasificare Automată a Informației

LAPI – Laboratorul de

Analiza şi Prelucrarea

Imaginilor

Universitatea

POLITEHNICA din

Bucureşti

Facultatea de Electronică,

Telecomunicaţii şi

Tehnologia Informaţiei

Note de laborator

Page 2: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 2

Cuprins:

Introducere în Matlab

Clasificare de baze de date de imagini

Prezentare baze de date utilizate

Exerciții

Laborator 2

Page 3: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 3

I. Introducere în Matlab

Cuprins

Laboratorul cuprinde o scurtă introducere și nu un tutorialcomplet Matlab:

- detalii de bază;

• - avantajele și dezavantajele utilizării Matlab în funcție dealte limbaje.

Page 4: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 4

I. Introducere în Matlab

Introducere Matlab

MATLAB (MATrix LABoratory);

Reprezintă un limbaj cu mare productivitate pentrudezvoltarea de algoritmi inginerești;

Cuprinde algoritmi deja implementați, opțiuni devizualizare a datelor și unelte pentru o ușoarădezvoltare și proiectare de algoritmi.

Page 5: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 5

I. Introducere în Matlab

Dezavantaje Matlab

Lent pentru anumite tipuri de probleme și procese;

Poate fi cu greu implementat în aplicații web;

Nu este gândit pentru dezvoltarea de sisteme dedimensiuni foarte mari care să ruleze sisteme dinproducție.

Page 6: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 6

I. Introducere în Matlab

Structură mediu de programare Matlab

Command Window

Workspace / Current Directory

Command History

Page 7: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 7

I. Introducere în Matlab

Structură mediu de programare MatlabCommand Window

– Generare de comenzi simple;

Current Directory

– Vizualizare foldere și fișiere

În format *.m (format Matlab)

Workspace

– vizualizare variabile

– Se pot vizualiza valoareavariabilelor prin Double click(se deschide fereastra ArrayEditor)

Command History

– Vizualizare istoric comenzi

– Salvarea unei sesiuni prinutilizarea unui jurnal decomenzi (diary)

Page 8: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 8

I. Introducere în Matlab

Variabile în Matlab În Matlab nu este nevoie să se inițializeze sau să se declare tipul

variabilelor:

Toate variabilele sunt create ca și matrici în format double

Conform exemplului anterior aceste variabile vor fi matrici de dimensiuni 1x1.

int a;double b;float c;

Examplu:>>x=5;>>x1=2;

Page 9: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 9

I. Introducere în Matlab

Structură Matlab

Pentru a se vizualiza conținutul variabilelor trebuiedoar sa se scrie numele variabilei în CommandWindow:

>> a

a =

12

>>

>> a*2

a =

24

>>

Page 10: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 10

I. Introducere în Matlab

Structură Matlab

Fereastra de Workspace reprezintă memoria curentă aMatlab-ului;

Poate manipula variabilele stocate în workspace.

>> b=10;

>> c=a+b

c =

22

>>

Page 11: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 11

I. Introducere în Matlab

Workspace Matlab

Comenzi de manipulare a Workspace-ului

• whos – prezintă variabilele și dimensiuna acestora

Name Size Bytes Class

a 1x1 8 double array

b 1x1 8 double array

c 1x1 8 double array

Grand total is 3 elements using 24 bytes

• clear – realizează ștergerea de variabile din workspace

>> clear a b; % delete a și b din workspace

>>

>> clear all; % șterge toate variabilele din workspace

>>

Page 12: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 12

I. Introducere în Matlab

Operații matrici

Nu este nevoie să se actualizeze / declare dimensiunile matricei:

>> A = [3 2 1; 5 1 0; 2 1 7]

A =

3 2 1

5 1 0

2 1 7

>>

Paranteze pătrate pentru a defini matricea

Punct și virgulă pentru a marca trecerea la o altă linie

Page 13: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 13

I. Introducere în Matlab

Accesarea valorilor unor matrici

Accesarea elementelor unei matrici:

>> A(1,2)

ans=

2

A =

3 2 1

5 1 0

2 1 7Indicii elementelor unei matrici

Page 14: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 14

I. Introducere în Matlab

Alocare valori matrici în Matlab

• un vector x = [1 2 5 1]

x =

1 2 5 1

• o matrice x = [1 2 3; 5 1 4; 3 2 -1]

x =

1 2 3

5 1 4

3 2 -1

Page 15: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 15

I. Introducere în Matlab

Operatorul „:”• Foarte utilizat în Matlab;

• În traducere ar însemna “de la X la Y”

t =1:10

t =

1 2 3 4 5 6 7 8 9 10

k =2:-0.5:-1

k =

2 1.5 1 0.5 0 -0.5 -1

B = [1:4; 5:8]

x =

1 2 3 4

5 6 7 8

Page 16: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 16

I. Introducere în Matlab

Funcții definire funcții în Matlab• zeros(M,N) - generează o matrice de valori

de 0 de dimensiune MxN.

• ones(M,N) - generează o matrice de valori de 1 de dimensiune MxN.

• rand(M,N) - generează o matrice de valori random distribuite uniform în intervalul (0,1) de dimensiune MxN.

x = zeros(1,3)

x =

0 0 0

x = ones(1,3)

x =

1 1 1

x = rand(1,3)

x =

0.9501 0.2311 0.6068

Page 17: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 17

I. Introducere în Matlab

Indecșii matricilor• Indecșii matricei încep de la 1 (nu de la 0 (ca în C))• Indecșii matricei trebuie să fie numere întregi pozitive

A(-2), A(0)

Error: ??? Subscript indices must either be real positive integers or logicals.

A(4,2)Error: ??? Index exceeds matrix dimensions.

Page 18: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 18

I. Introducere în Matlab

Concatenare matrici• x = [1 2], y = [4 5], z=[ 0 0]

A = [ x y]

1 2 4 5

B = [x ; y]

1 2

4 5

C = [x y ;z] Error:??? Error using ==> vertcat CAT arguments dimensions are not consistent.

Page 19: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 19

I. Introducere în Matlab

Operații matrici

+ sumă

- diferență

* multiplicare

/ împărțire

^ putere

‘ transpusă

Page 20: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 20

I. Introducere în Matlab

Operații matrici

Fie A și B:

Sumă Diferență Produs Transpusă

Page 21: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 21

I. Introducere în Matlab

.* multiplicare element cu element

./ împărțire element cu element

.^ ridicare la putere element cu element

Operatorul „.” (element cu element)

Page 22: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 22

I. Introducere în Matlab

K= x^2Erorr:??? Error using ==> mpower Matrix must be square.

B=x*yErorr:??? Error using ==> mtimes Inner matrix dimensions must agree.

A = [1 2 3; 5 1 4; 3 2 1]A =

1 2 35 1 43 2 -1

y = A(3 ,:)

y= 3 4 -1

b = x .* y

b=3 8 -3

c = x . / y

c= 0.33 0.5 -3

d = x .^2

d= 1 4 9

x = A(1,:)

x=1 2 3

Operatorul „.” (element cu element)

Page 23: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 23

I. Introducere în Matlab

Comenzi de informații

• help

>> help whos % afișează documentație pentru funcția whos

>> lookfor convert % caută funcțiile care conțin termenul convert în prima

linie a răspunsului comenzii help

• Deschidere documentație Matlab

>> helpdesk

Page 24: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 24

I. Introducere în Matlab

Realizare scripturi

• Mai multe comenzi matlab pot fi grupate în scripturi

Matlab Desktop

Realizare de script nou

Page 25: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 25

I. Introducere în Matlab

Realizare scripturi

• Scripturile vor manipulași stoca variabile înMatlab Workspace(memorie).

• Acestea pot fi chematedin linia de comandăMatlab prin scriereafișierului scriptului.

>> myscript

Page 26: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 26

I. Introducere în Matlab

Funcții în Matlab

• Programarea în Matlab.

• Userii pot scrie funcții care pot fi chemate din linia de comandă.

• Funcțiile pot accepta variabile de intrare și pot avea ca ieșire un set de variabile de ieșire.

• Funcțiile nu manipulează variabilele din cadrul Matlab Workspace.

• Numele fișierului care conține funcția trebuie să fie același cu cel al funcției

• Atenție la cazurile în care mai multe funcții au același nume.

• Funcțiile deschise pentru editare prin utilizare comenzii open.

Page 27: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 27

I. Introducere în Matlab

Funcții în Matlab>> I=iterate(5)

I =

1 4 9 16 25

Lista de variabile de ieșire

Variabile de intrare

Numele funcției

Bloc repetitiv for

function keyword

Comentarii referitoare la funcție

Accesează comentariiledin funcția Matlab cu funcția help>> help iterate

Page 28: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 28

I. Introducere în Matlab

Funcții în Matlab

>> [i j]=sort2(2,4)

i =

4

j =

2

>>

Funcțiile pot avea mai multe variabile de ieșire.

Bloc condițional if

Page 29: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 29

I. Introducere în Matlab

Instrucțiuni condiționale

• Sintaxă:

if (Condition_1)instrucțiuni

elseif (Condition_2)instrucțiuni

elseif (Condition_3)instrucțiuni

elseinstrucțiuni

end

Exemple

if ((a>3) & (b==5))instrucțiuni;

end

if (a<3)instrucțiuni;

elseif (b~=5) instrucțiuni;

end

if (a<3)instrucțiuni;

else instrucțiuni;

end

Page 30: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 30

I. Introducere în Matlab

Instrucțiuni repetitive

• Sintaxă intrucțiune for

for i=Index_Array

instrucțiuni

end

Exemple

for i=1:100instrucțiuni;

end

for j=1:3:200instrucțiuni;

end

for m=13:-0.2:-21Some Matlab Commands;

end

for k=[0.1 0.3 -13 12 7 -9.3]instrucțiuni;

end

Page 31: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 31

I. Introducere în Matlab

Instrucțiuni repetitive

• Sintaxă instrucțiune while

while (condition)

Matlab Commands

end

Exemplu

while ((a>3) & (b==5))instrucțiuni;

end

Page 32: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 32

I. Introducere în Matlab

Debugging

• Atașare de breakpoints>> [i j]=sort2(2,4)

K>>

K>> whos

Name Size Bytes Class

a 1x1 8 double array

b 1x1 8 double array

Grand total is 2 elements using 16 bytes

K>> a

a =

2

K>> return

i =

4

j =

2

Click mouse on the left of the line of code to create a breakpoint

local function workspace

exit debug mode

Debug menus

Page 33: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 33

I. Introducere în Matlab

Prelucrare imagini

În Matlab imaginile color pot fi tratate ca niște matrici tri-dimensionale!(MxNx3):

Încărcarea unei imagini:

a = imread(‘picture.jpg’);

% citire imagine

imshow(a); %afișare imagine

Page 34: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 34

I. Introducere în Matlab

Prelucrare imagini

Afișarea planului roșu:

a(:,:,2:3) = 0;

imshow(a);

Afișarea planului verde:

a(:,:,[1 3]) = 0;

imshow(a);

Page 35: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 35

I. Introducere în Matlab

Citire fișiere text

Funcția:

[A,B,C,...] = textread(filename,format)

Ex: pentru fișierul

1 2

3 4

utilizăm [A B] = textread(filename,’%d %d’)vom obține A = [1;3] și B=[2;4]

Page 36: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 36

I. Introducere în Matlab

Citire fișiere csv

Funcția:

[A] = csvread(filename)

Ex: pentru fișierul

1,2

3,4

utilizăm [A] = csvread(filename)vom obține A = [1 2;3 4]

Page 37: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 37

I. Introducere în Matlab

Scriere fișiere csv

Funcția:

csvwrite(filename, variabilă)

Ex: pentru fișierul

A = [1 2; 3 4]csvwrite(filename,A)

vom obține fișierul cu conținutul:

1,2

3,4

Page 38: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 38

II. Clasificare de baze de date de imagini

Schemă generală

Generare descriptori de

Imagini (vectori cu componente)

Baza de date imagini

Extragere trăsături

Algoritm declasificare

Imagine trimisă spre clasificare

Decizie

Page 39: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 39

II. Clasificare de baze de date de imagini

Descriptori de imagini

pixeli muchii

culoare textură

formă puncte de interes

Page 40: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 40

II. Clasificare de baze de date de imagini

Color moments (CM)

Stricker M., Dimai A. Spectral Covariance and Fuzzy Regions for Image Indexing. Machine Vision and

Applications, vol. 10., p. 66-73, 1997

Se împarte imaginea în 3x3 regiuni; Pentru fiecare celulă se calculează media, deviația standard șiskewness pe o regiune a imaginii

Se concatenează cei trei parametri pentru fiecare celulă(3x3x3 = 81 elemente).

Page 41: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 41

II. Clasificare de baze de date de imaginiColor moments (CM)

cm = extractCM(im);

unde cm reprezintă descriptorul rezultat iar im este o matrice de dimensiune (L x l x 3) asociată imaginii RGB.

Pentru prelucrarea descriptorului se va utiliza funcția Matlab:

Page 42: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 42

II. Clasificare de baze de date de imaginiLocally Binary Patterns (LBP) Pentru fiecare pixel din imagine se aplică un prag egal cu valoareapunctului central din nucleul de căutare; Pentru fiecare pixel (xc, yc) se va calcula următorul parametru:

Se creează o histogramă a valorilor generate (256 de combinațiiposibile); În cazul în care se repetă acest proces pe mai multe nuclee / scaleale imaginilor, descriptorul final va fi generat din concatenareahistogramelor generate

Page 43: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 43

II. Clasificare de baze de date de imaginiLocally Binary Patterns (LBP)

lbp = extractLBP(im);

unde lbp reprezintă descriptorul rezultat iar im este o matrice de dimensiune (L x l x 3) asociată imaginii.

Pentru prelucrarea descriptorului se va utiliza funcția Matlab:

Page 44: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 44

II. Clasificare de baze de date de imaginiHistograms of Oriented Gradients (HoG)

Pentru generarea descriptorului se va utiliza funcția:

hog = extractHoG(im);

Page 45: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 45

III. Modele de Machine LearningZeroR

Cel mai simplu clasificator din Weka:

Determină care este cea mai des întâlnită clasă

În caz de regresie, va utiliza valoarea mediană

Poate fi utilizată ca și limită inferioară a performanței pecare o poate primi un algoritm

Page 46: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 46

III. Modele de Machine LearningZeroR

Toate instanțelevor fi clasificateîn clasa „Yes”

Page 47: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 47

III. Modele de Machine LearningZeroR

În imagine se poatevizualiza opțiuneade aplicare aalgoritmului ZeroRîn Weka.

Page 48: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 48

III. Modele de Machine LearningOneR

OneR („One Rule”) reprezintă o metodă naivă de clasificare caregenerează o singură regulă utilizând o singură trăsătură.

Algoritmul găsește trăsătura care maximizează probabilitatea declasificare.

Page 49: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 49

III. Modele de Machine LearningOneR

În final vom avea următoarea regulă generată:

Page 50: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 50

III. Modele de Machine LearningOneR

În imagine se poatevizualiza opțiuneade aplicare aalgoritmului OneR înWeka.

Page 51: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică

K-Nearest Neighbor (Cei mai apropiaţi vecini)

51

f(x) = va lua clasa celui mai apropiat vecin a lui x

Exemplu

de testExemple de

învățare din

clasa 1

Exemple de

antrenare

din clasa a

doua

K=1

III. Modele de Machine Learning

Page 52: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică

K-Nearest Neighbor (Cei mai apropiaţi vecini)

52

III. Modele de Machine Learning

Exemplu

de testExemple de

învățare din

clasa 1

Exemple de

antrenare

din clasa a

doua

K=3

Page 53: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică

K-Nearest Neighbor (Cei mai apropiaţi vecini)

53

III. Modele de Machine Learning

Avantaje

• Simplu (ușor de implementat pentru o primă încercare);

• Nu are nevoie de multe date de învățare

Dezavantaje

• Ocupă foarte multă memorie (se reține în memorie toată baza deantrenare);

• Lent – este nevoie să se compare elementul de clasificat cu toatetrăsăturile din baza de date;

• Erori mari de clasificare (nu are rezultate bune pentru problemecomplexe);

• Dependent de tipul de metrică utilizat.

Page 54: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică

K-Nearest Neighbor (Cei mai apropiaţi vecini)

54

III. Modele de Machine Learning

Page 55: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 55

III. Modele de Machine Learning

În imagine se poatevizualiza opțiuneade aplicare aalgoritmului K-Nearest Neighbor înWeka.

K-Nearest Neighbor

Page 56: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică

Arbori de decizie

56

III. Modele de Machine Learning

Privire

Însorit Innorat Ploaie

Umiditate

Mare Normal

Vânt

Puternic Slab

Nu Da

Da

DaNu

Clasa 2

Clasa 1

Decizia de a juca tenis

Page 57: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică

Arbori de decizie

57

III. Modele de Machine Learning

Page 58: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 58

III. Modele de Machine Learning

În imagine se poatevizualiza opțiuneade aplicare aalgoritmului K-Nearest Neighbor înWeka.

Arbori de decizie

Page 59: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 59

V. Modele de Machine LearningVizualizare arbore de decizie

Page 60: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică

Naive Bayes

60

III. Modele de Machine Learning

Clasificatorul Naive Bayes reprezintă un algoritm probabilisticbazat pe teorema lui Bayes, care pleacă de la premisa deindependență între trăsături:

Page 61: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică

Naive Bayes

61

III. Modele de Machine Learning

Page 62: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 62

III. Modele de Machine Learning

În imagine se poatevizualiza opțiuneade aplicare aalgoritmului NaiveBayes în Weka.

Naive Bayes

Page 63: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 63

III. Modele de Machine LearningRețele neuronale

dendrite

celulă axon

terminații axon

Reţelele neuronale reprezintă o mulțime de elemente deprelucrare neliniară care operează în paralel și care suntlegate intre ele în structuri ce seamană cu rețeleleneuronale biologice.

Model inspirat din rețelele neuronale din creierul uman.

Page 64: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 64

III. Modele de Machine LearningRețele neuronale

Clasa

2

Clasa

1

• Modele foarte bine adaptate pentru a găsi cea maibună separație între două clase

• Structură complicată cu mulți parametri care nusunt ușor de optimizat.

• Apare destul de des fenomenul de overfitting.

Page 65: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 65

III. Modele de Machine LearningRețele neuronale

Page 66: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 66

III. Modele de Machine LearningParametrii rețelelor neuronale

Afișare arhitectură rețea

Numărul de elemente dintr-un batchde antrenare

Valoarea ratei de învățare scadeodată cu fiecare epocă

Numărul de straturi ascunse dintr-orețea

Rata de învățare

Page 67: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 67

V. Modele de Machine LearningSupport Vector Machines – model liniar

x x

xx

x

x

x

x

oo

o

o

o

x2

x1

• Caută o funcţie ce separă două clase în mod optim:

f(x) = sgn(w x + b)

Page 68: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 68

III. Modele de Machine LearningSupport Vector Machines – model liniar

Page 69: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 69

III. Modele de Machine LearningSupport Vector Machines – model neliniar

Φ: x→ φ(x)

• Idee de bază: spaţiul iniţial poate fi mapat către un spaţiumultidimensional în care trăsăturile de antrenare devin liniarseparabile.

Page 70: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 70

III. Modele de Machine LearningSupport Vector Machines – model neliniar

Page 71: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 71

III. Modele de Machine LearningOptimizare SVM

• C

• Gamma și tipul de nucleu utilizat

Modalitatea de calcul a hiperplanului de despărțire a claselor:- dacă modelul este prea adaptat pe date (C are o valoare

mare) – modelul va suferi un proces de overfiting- dacă modelul va fi foarte simplu acesta nu va putea generaliza

Page 72: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 72

III. Modele de Machine LearningOptimizare SVM

Page 73: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 73

III. Modele de Machine LearningOptimizareSVM

Parametrul C

Tipul de nucleu

Page 74: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 74

Baze de date experimente laborator

IV. Clasificare de baze de date de imagini

Experimentele se vor efectua pe două baze de date:

Bază de date de texturi (parte a bazei de texturi KTH – „Texturesunder varying Illumination, Pose and Scale”)

conține 4 clase (81 de imagini pe clasă)

Bază de date de imagini naturale (conține 3 clase preluate din bazaCaltech 101: prăjituri / iriși și monede) -> 3 clase (106 imagini peclasă).

http://www.nada.kth.se/cvap/databases/kth-tips/

http://www.vision.caltech.edu/Image_Datasets/Caltech101/

Page 75: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 75

Texturi

Sursă imagini http://www.nada.kth.se/cvap/databases/kth-tips/

Clasa aluminiu

Clasa pâine

Clasa țesătură

Clasa bumbac

IV. Clasificare de baze de date de imagini

Page 76: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 76

IV. Clasificare de baze de date de imaginiImagini naturale

Clasa cake

Clasa coins

Clasa iris

Sursă imagini http://www.vision.caltech.edu/Image_Datasets/Caltech101/

Page 77: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 77

V. Exerciții

Pentru cele două baze de date (texturi și imagini naturale):

Realizați un program în Matlab care calculează rând pe rândcei trei descriptori (Color Moments, LBP și HoG):

Salvați descriptorii în fișiere csv;

Transformați aceste fișiere în format arff.

Schemă algoritmCitește fișier de configurare (train.txt) (imagePaths, labels)

descriptors %inițializare spațiu pentru export în fișier arff

pentru fiecare imagine din bază (contor i)

- im = citeșteImagine(i)

- desc = CalculDescriptor(im);

- Adaugă variabilei descriptors -» concat (desc, labels(i))

Salvează variabila descriptors în fișier

Page 78: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 78

V. Exerciții

Importați rând pe rând aceste fișiere în Weka.

Utilizați ca și clasificatori: ZeroR, arbori de decizie (J48),Nearest Neighbor (IBK), Naive Bayes, Support VectorMachines și rețele neuronale.

Verificați care este cea mai bună pereche clasificator /descriptor.

Page 79: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 79

IV. Exerciții

Optimizați modelul SVM (încercați mai multe valori ale lui Cși mai multe tipuri de nuclee)

Optimizați modelul de rețea neuronală utilizat

Page 80: TACAI - Tehnici de Analiză și Clasificare Automată a ...ionut.mironica.ro/teaching/TACAI_lab2.pdf · I. Introducere în Matlab Structură Matlab Command Window –Generare de comenzi

28.03.2018 TACAI – dr.ing. Ionuț Mironică 80

Spor!