Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5...

44
1 Sisteme de Vedere Artificială Recunoaşterea Obiectelor Sorin M. Grigorescu Universitatea Transilvania din Braşov Laboratorul de Vedere Artificială Robustă şi Control

Transcript of Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5...

Page 1: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

1

Sisteme de Vedere Artificială

Recunoaşterea Obiectelor

Sorin M. Grigorescu

Universitatea Transilvania din BraşovLaboratorul de Vedere Artificială Robustă şi Control

Page 2: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

2

Cuprins

�Reţele neurale convolutive

Page 3: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

3

Reţele Neurale Convolutive

Page 4: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

4

Reţea Neurală Convolutivă�Caracteristicile (features) sunt activate pe măsură ce datele de

intrare străbat straturile reţelei

� Într-un anumit strat, convoluţia are loc pe datele calculate în stratul

precedent

Page 5: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

5

Reţea Neurală Convolutivă�Există patru tipuri de straturi:

�Convolutiv

�Activare printr-o funcţie de activare (ex. Sigmoid sau ReLU –

Rectified Linear Unit)

�Pooling (statistică asupra unei regiuni de interest, reducerea

cantităţii de informaţie)

�Conectivitate completă (reţea neurală clasică)

Page 6: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

6

Strat convolutiv

înălţime

lăţime

adâncime

imagine 32x32x3

Page 7: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

7

Strat convolutiv

înălţime

lăţime

adâncime

imagine 32x32x3

filtru 5x5x3

Page 8: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

8

Strat convolutiv

înălţime

lăţime

adâncime

imagine 32x32x3

filtru 5x5x3

Filtrele extind întotdeauna întreaga adâncime a volumului

de intrare

Page 9: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

9

Strat convolutiv

imagine 32x32x3

filtru 5x5x3

1 număr:Rezultatul produsului scalar dintre filtru şi o regiune de interes 5x5x3 din imagine (ex: 5*5*3 = produs scalar de dimensiune 75 + bias)

� � �

Page 10: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

10

Strat convolutiv

imagine 32x32x3

filtru 5x5x3

Hartă de activare

Convoluţie de-a lungul tuturor

locaţiilor spaţiale

Page 11: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

11

Strat convolutiv

imagine 32x32x3

filtru 5x5x3

Hărţi de activare

Convoluţie de-a lungul tuturor

locaţiilor spaţiale

Al doilea filtru (verde)

Page 12: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

12

Strat convolutiv

Strat convolutiv

�Ex: în cazul a 6 filtre 5x5, vom obţine 6 hărţi de activare

�Suprapunând cele 6 hărţi de activare, vom obţine o noua imagine

28x28x6

Hărţi de activare

Page 13: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

13

Strat convolutiv�O reţea neurală convolutivă este o secvenţă de straturi convolutive,

intercalate cu funcţii de activare (ex: ReLU sau Sigmoid)

Conv, ReLUex: 6filtre

5x5x3

Page 14: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

14

Modelul unui neuron

∑ +

i

ibx

θh

axon de ieşire

+∑

i

ibxh

iθθ

funcţie de

activare

sinapsă

dendrită

axonul unui neuron

11θ x

22θ x

0x

�Neuron cu conectivitate locală

Page 15: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

15

Modelul unui neuron

∑ +

i

ibx

θh

axon de ieşire

+∑

i

ibxh

iθθ

funcţie de

activare

sinapsă

dendrită

axonul unui neuron

11θ x

22θ x

0x

�Toţi neuronii împart parametrii θ

�Filtru 5x5: Câmp receptiv de

dimensiune 5x5 pentru fiecare

neuron

�O hartă de activare este un strat de neuroni de ieşire, de dimensiune

28x28

�Fiecare neuron este conectat la o mică regiune de interes din

volumul de intrare

Page 16: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

16

Modelul unui neuron�Ex: având 5 filtre, stratul convolutiv este alcătuit din neuroni

ordonaţi într-un grid 3D de dimensiune 28x28x5

�Vor exista 5 neuroni diferiţi, toţi analizând aceeaşi regiune din

volumul de intrare

∑ +

i

ibx

θh

axon de ieşire

+∑

i

ibxh

iθθ

funcţie de

activare

sinapsă

dendrită

axonul unui neuron

11θ x

22θ x

0x

Page 17: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

17

Strat convolutiv�O reţea neurală convolutivă este o secvenţă de straturi convolutive,

intercalate cu funcţii de activare (ex: ReLU sau Sigmoid)

Conv, ReLUex: 6filtre

5x5x3

Conv, ReLUex: 10filtre

5x5x6

Conv, ReLU

....

Page 18: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

18

Strat convolutiv

Caracteristicilow-level (cante)

Caracteristicimid-level

(părţi)

Caracteristicihigh-level(objects)

Imagine intrare

Clasificator (liniar) antrenabil (ex. Reţea

Neurală)

Feature visualization of a convolutional net trained on ImageNet [Zeiler & Fergus 2013]

Page 19: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

19

Strat convolutiv

Page 20: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

20

Strat convolutiv

Page 21: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

21

Dimensiuni spaţiale

imagine 32x32x3

filtru 5x5x3

Hartă de activare

Convoluţie de-a lungul tuturor

locaţiilor spaţiale

Page 22: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

22

Dimensiuni spaţiale

7

7

Imagine de intrare 7x7Filtru 3x3

Page 23: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

23

Dimensiuni spaţiale

7

7

Imagine de intrare 7x7Filtru 3x3

Page 24: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

24

Dimensiuni spaţiale

7

7

Imagine de intrare 7x7Filtru 3x3

Page 25: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

25

Dimensiuni spaţiale

7

7

Imagine de intrare 7x7Filtru 3x3

Page 26: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

26

Dimensiuni spaţiale

7

7

Imagine de intrare 7x7Filtru 3x3

Ieşire 5x5

Page 27: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

27

Dimensiuni spaţiale: stride

7

7

Imagine de intrare 7x7Filtru 3x3Stride 2

Page 28: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

28

Dimensiuni spaţiale: stride

7

7

Imagine de intrare 7x7Filtru 3x3Stride 2

Page 29: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

29

Dimensiuni spaţiale: stride

7

7

Imagine de intrare 7x7Filtru 3x3Stride 2

Ieşire 3x3

Page 30: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

30

Dimensiuni spaţiale: stride

7

7

Imagine de intrare 7x7Filtru 3x3Stride 3

Page 31: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

31

Dimensiuni spaţiale: stride

7

7

Imagine de intrare 7x7Filtru 3x3Stride 2

Dimensiunile nu se potrivesc

Un filtru 3x3 nu poate fi aplicat pe imagine 7x7, utilizând stride 3

Page 32: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

32

Dimensiuni spaţiale: stride

Dimensiunea de ieşire:� − �

stride− 1

Ex: � = 7, � = 3Stride 1: (7-3)/1 + 1 = 5Stride 2: (7-3)/2 + 1 = 3Stride 3: (7-3)/3 + 1 = 2.33 (erroare)

Page 33: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

33

Margine zero-pad

0 0 0 0 0

0

0

0

0

�Ex: imagine 7x7, filtru 3x3, stride 1. Se poate adauga o margine zero-

pad de 1 pixel

�Se foloseşte des zero-padding de dimensiune ��� �⁄

Ex: � = 3 → zero-pad 1� = 5 → zero-pad 2� = 7 → zero-pad 3

Page 34: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

34

Strat convolutiv�Aplicarea repetată de filtre 5x5 va micşora spaţial volumele de

intrare (32 → 28 → 24)

�Micşorarea spaţială rapidă dăunează performanţei reţelei

Conv, ReLUex: 6filtre

5x5x3

Conv, ReLUex: 10filtre

5x5x6

Conv, ReLU

....

Page 35: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

35

Strat convolutiv: rezumat�Prelucrează volume de dimensiune �� ×�� × ��Necesită patru hiperparametrii:

�Numărul de filtre !

�Dimensiunea spaţială � a filtrelor

�Stride "

�Dimensiunea zero-padding #

�Produce un volum de dimensiune �� × �� × �, unde:

�� =�� − � � 2#

"� 1

�� =�� − � � 2#

"� 1

� = !

(lăţimea şi înălţimea sunt calculate identic prin simetrie)

Page 36: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

36

Strat convolutiv: rezumat� Împărţind parametrii θ ai reţelei, vom obţine � · � · � parametrii

(ponderi) pe filtru, pentru un număr total de � · � · � · ! ponderi şi

!neuroni de bias

� În volumul de ieşire, harta de activare & (de dimensiune �� × ��)

este rezultatul unei convoluţii valide al filtrului & de-a lungul

volumului de intrare cu un stride " şi un offset al bias-ului &

Page 37: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

37

Strat convolutiv�Este perfect normal să efectuăm convoluţii cu filtre de dimensiune

1x1

(fiecare filtru are dimensiunea 1x1x64 şi

efectuează un produs scalar de dimensiune 64)

Convoluţie 1x1 cu 32 de filtre

Page 38: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

38

Modelul unui neuron

imagine 32x32x3

filtru 5x5x3

1 număr:Rezultatul produsului scalar dintre filtru şi o regiune de interes 5x5x3 din imagine (ex: 5*5*3 = produs scalar de dimensiune 75 + bias)

Page 39: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

39

Stratul de pooling

Page 40: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

40

Stratul de pooling�Modifică volumul într-o reprezentare mai mică şi mai flexibilă

�Operează independent de-a lungul fiecărei hărţi de activare

Page 41: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

41

Max pooling

Max Pooling cu un filtru 2x2 şi stride 2

�Filtrul de Max Pooling va extrage valoarea maximă din regiunea de

interes (ex: 2x2)

Page 42: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

42

Max Pooling: rezumat�Prelucrează volume de dimensiune �� ×�� × ��Necesită doi hiperparametrii:

�Dimensiunea spaţială � a filtrelor

�Stride "

�Produce un volum de dimensiune �� × �� × �, unde:

�Nu există parametrii (ponderi) θ, din moment ce calculează o funcţie

fixă a intrării

�Nu este obişnuit să se folosească zero-padding pentru straturi de

Max Pooling

�� =�� − �

"� 1

�� =�� − �

"� 1

� = �

Parametrii comuni:� = 2, " = 2� = 3, " = 2

Page 43: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

43

Stratul conectat complet (FC)�FC: Fully Connected

�Conţine neuroni ce sunt conectaţi la întregul volum de intrare, ca şi

o reţea neurală clasică

Page 44: Sisteme de Vedere Artificial ărovislab.com/courses/sva/Curs_05_SVA_2016.pdf · 2018-11-19 · 5 Reţea Neural ă Convolutivă Exist ă patru tipuri de straturi: Convolutiv Activare

44