Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O...

49
1 Sisteme de Vedere Artificială Optica Sorin M. Grigorescu Universitatea Transilvania din Braşov Laboratorul de Vedere Artificială Robustă şi Control

Transcript of Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O...

Page 1: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

1

Sisteme de Vedere Artificială

Optica

Sorin M. Grigorescu

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

Page 2: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

2

Cuprins

�Formarea imaginilor

�Modelul camerei ideale

�Parametrii intrinseci şi extrinseci ai unei camere

�Calibrarea camerelor

Page 3: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

3

Geometria lumii reale

Cât de înaltă este femeia?

La ce înălţime se află camera?

Care este rotaţia camerei?

Care este distanţa focală a camerei?

Care bilă este mai apropiată?

Page 4: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

4

Vederea artificială 3D

Înţelegereaimaginii

Sorin DanTibi

Minge Telefon

Carte Termos

ImprimantăRucsac

Cană

Mingi de tenis

Tablou electric

820 pagini 1L

decuplat

Model 3D(spațiu cartezian)

Grafică asistată de calculator

Page 5: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

5

Camera Ideala

Page 6: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Camere “biologice”

6

Ochiul uman Ochiul unui țânțar

Page 7: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Camere digitale

7

Camere foto

Basorelief din 1544 reprezentând“Camera Obscura”

Page 8: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Proiectarea unei camere

8

� Poziționarea unui film fotografic în fața unui obiect

� Se obține o copie a obiectului în imagine?

Obiect Film

Page 9: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Proiectarea unei camere

9

� Adăugarea unei bariere pentru blocarea majorității razelor luminoase

� Deschiderea din barieră poartă denumirea de apertură

Obiect FilmBarieră

Page 10: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Camera ideală

10

� Razele de lumină ce descriu obiectul trec printr-un singur punct

� Punctul poartă numele de centru de proiecție, sau punct focal

� Imaginea se formează în planul imaginii

Punct focal

Planul imaginii

Imagine virtuală

fff – distanţă focală

Page 11: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

11

Modelarea camerelor ideale

O cameră, sau un senzor vizual, poate fi descrisă ca un sistem ce

execută o transformare ireversibilă din coordonatele spaţiului 3D real

în coordonatele 2D ale planului imaginii.

P – punct 3D (real)p – punct 2D (în imagine)

f – distanță focală

Z

Xfx ⋅=

Z

Yfy ⋅=

[ ]TZYXP 1=

[ ]Tyxp 1=

Centru

optic

P

p Punct

principal

Planul

imaginii

x

y

x

y

zf

Page 12: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

12

Modelarea camerelor ideale

[ ]TZYXX 1=

[ ]Tyxx 1=

23 ℜ→ℜ

Z

Xfx ⋅=

Z

Yfy ⋅=

� Reprezentare în coordonate omogene a punctelor 3D și 2D:

� Proiecția punctelor 3D în planul imaginii este dată de distanța focală f :

� Transformare ireversibilă 3D -> 2D:

Page 13: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Reducerea dimensiunii 3D -> 2D

13

� Ce se pierd?

� unghiurile

� distanțele

Scena 3D Imaginea 2D

Page 14: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Camera ideală

14

� Importanţa dimensiunii aperturii

Obiect FilmBarieră

Page 15: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Micșorarea aperturii

15

� De ce să nu creăm o apertură cât mai mică?

� Apar erori de difracție

Page 16: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Micșorarea aperturii

16

Page 17: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

17

Lentile

Page 18: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Adăugarea unei lentile focale

Obiect FilmLentilă

� Lentila concentrează razele de lumină într-un singur punct

18

Page 19: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Punct focal

f

Adăugarea unei lentile focale

Obiect FilmLentilă

� Lentila concentrează razele de lumină într-un singur punct

� Toate razele converg într-un punct focal aflat la distanța focală f

19

Page 20: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

“zonă de confuzie”

Adăugarea unei lentile focale

Obiect FilmLentilă

� Lentila concentrează (focus) razele de lumină pe filmul fotografic

� Obiectele sunt în focus doar la o anumită distanță

� Celelalte puncte converg într-o zonă de confuzie

20

Page 21: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Ecuația lentilei

f

D D’

Obiect FilmLentilă21

Page 22: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Ecuația lentilei

1

D’ D

1 1

f+ = Orice punct ce satisface ecuația

lentilei este în focus

f

D D’

Obiect FilmLentilă22

Page 23: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Puncte ce nu se află în focus

23

Page 24: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Lentile

24

Page 25: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Aberaţii cromatice

�Lentilele ce au indici de refracţie diferiţi pentru diferite lungimi de

undă, produc aberaţii cromatice

25

Page 26: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Aberaţii cromatice

�Razele mai îndepărtate faţă de axa optică intră în focus la un punct

mai apropiat de lentilă

26

Page 27: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Aberaţii cromatice�Deviaţiile cele mai evidente sunt cele ale razelor ce trec prin

marginea lentilei

�Distorsiunile descresc odată cu micşorarea distanţei la axa optică

Fără distorsiune

Distorsiune tip pernă

Distorsiune tip butoi(lentile fisheye) 27

Page 28: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

28

Parametrii Camerei

Page 29: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

29

Modelarea camerelor ideale

O cameră, sau un senzor vizual, poate fi descrisă ca un sistem ce

execută o transformare ireversibilă din coordonatele spaţiului 3D real

în coordonatele 2D ale planului imaginii.

P – punct 3D (real)p – punct 2D (în imagine)

f – distanță focală

Z

Xfx ⋅=

Z

Yfy ⋅=

Centru

optic

P

p Punct

principal

Planul

imaginii

x

y

x

y

zf

Page 30: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

� � =

1

= � � � 1 � – coordonatele omogene ale scenei

� � =

1= 1 � – coordonatele omogene ale imaginii

� Conversia din coordonate omogene:

� � – factor de scalare 30

Coordonate omogene

�→

�,

�,

�,�

Page 31: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

=

=

10100

000

000

Z

Y

X

f

f

Z

fY

fX

p y

x

Transformarea unui punct 3D in planul 2D

31

X

Centruloptic Planul imaginii

Axa principală

Z

Xfx ⋅=

Z

Yfy ⋅=Ecuațiile de proiecție:

Matricea deproiecţie �

� = � · �

Page 32: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

=

=

10100

000

000

Z

Y

X

f

f

Z

fY

fX

p y

x

Parametrii camerei

32

�Parametrii matricei de proiecţie (parametrii camerei) ideali:

� Intrinseci:

�Centrul optic al imagini la

coordonatele 2D (0, 0)

�Lăţimea unui pixel este

egală cu înălţimea sa

�Fără oblicitate (skew)

�Extrinseci:

�Nu există rotaţie a camerei

�Poziţia camerei la

coordonatele reale (0,0, 0)

Page 33: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Parametrii intrinseci

33

�Parametrii matricei de proiecţie (parametrii camerei) ideali:

� Intrinseci:

�Centrul optic al imagini la

coordonatele 2D (0, 0)

�Lăţimea unui pixel egală

cu înălţimea sa

�Fără oblicitate (skew)

�Extrinseci:

�Nu există rotaţie a camerei

�Poziţia camerei la

coordonatele reale (0,0, 0)

Matricea parametrilor intrinseci

=

=

10100

000

000

Z

Y

X

f

f

Z

fY

fX

p y

x

� = � � 0 �→

Page 34: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Parametrii intrinseci

34

� Intrinseci:

�Centrul optic al imagini la

coordonatele 2D (0, 0)

�Centrul optic la (��, ��)

�Lăţimea unui pixel egală

cu înălţimea sa

�Fără oblicitate (skew)

�Extrinseci:

�Nu există rotaţie a camerei

�Poziţia camerei la

coordonatele reale (0,0, 0)

=

=

10100

00

00

0

0

Z

Y

X

vf

uf

Z

fY

fX

p y

x

Page 35: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Parametrii intrinseci

35

� Intrinseci:

�Centrul optic la (��, ��)

�Lăţimea unui pixel egală

cu înălţimea sa

�Pixeli dreptunghiulari

�Fără oblicitate (skew)

�Extrinseci:

�Nu există rotaţie a camerei

�Poziţia camerei la

coordonatele reale (0,0, 0)

=

=

10100

00

00

0

0

Z

Y

X

v

u

Z

fY

fX

p β

α

Page 36: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Parametrii intrinseci

36

� Intrinseci:

�Centrul optic la (��, ��)

�Pixeli dreptunghiulari

�Fără oblicitate (skew)

�Cu oblicitate (skew)

�Extrinseci:

�Nu există rotaţie a camerei

�Poziţia camerei la

coordonatele reale (0,0, 0)

=

=

10100

00

0

0

0

Z

Y

X

v

us

Z

fY

fX

p β

α

Page 37: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Translaţia şi rotaţia camerei

37

{C}

{W}

.X

T

Page 38: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Parametrii extrinseci

38

� Intrinseci:

�Centrul optic la (��, ��)

�Pixeli dreptunghiulari

�Cu oblicitate (skew)

�Extrinseci:

�Nu există rotaţie a camerei

�Poziţia camerei la coordonatele

reale 0,0, 0

�Poziţia la coordonatele ��, ��, ��

=

=

1100

010

001

100

0 0

0

Z

Y

X

t

t

t

v

us

Z

fY

fX

p

Z

Y

X

β

α

� = � � � �

Page 39: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Parametrii extrinseci

39

� Intrinseci:

�Centrul optic la (��, ��)

�Pixeli dreptunghiulari

�Cu oblicitate (skew)

�Extrinseci:

�Nu există rotaţie a camerei

�Există rotaţie

�Poziţia la coordonatele ��, ��, ��

�� � =1 0 0

0 cos � #sin�

0 sin� cos �

�� & =

cos& 0 sin&

0 1 0

#sin& 0 cos &

�� ' =cos ' #sin ' 0

sin ' cos ' 0

0 0 1

Page 40: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Parametrii extrinseci

40

� Intrinseci:

�Centrul optic la (��, ��)

�Pixeli dreptunghiulari

�Cu oblicitate (skew)

�Extrinseci:

�Nu există rotaţie a camerei

�Există rotaţie

�Poziţia la coordonatele ��, ��, ��

=

=

1100

0

333231

232221

131211

0

0

Z

Y

X

trrr

trrr

trrr

v

us

Z

fY

fX

p

Z

Y

X

β

α

� = � � � �

Page 41: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Matricea de proiecţie a camerei

41

� Intrinseci:

�Centrul optic la (��, ��)

�Pixeli dreptunghiulari

�Cu oblicitate (skew)

�Extrinseci:

�Există rotaţie

�Poziţia la coordonatele ��, ��, ��

=

=

1100

0

333231

232221

131211

0

0

Z

Y

X

trrr

trrr

trrr

v

us

Z

fY

fX

p

Z

Y

X

β

α

� = � � � �

Câte grade de libertate există?

Page 42: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Matricea de proiecţie a camerei

42

� Intrinseci:

�Centrul optic la (��, ��)

�Pixeli dreptunghiulari

�Cu oblicitate (skew)

�Extrinseci:

�Există rotaţie

�Poziţia la coordonatele ��, ��, ��

=

=

1100

0

333231

232221

131211

0

0

Z

Y

X

trrr

trrr

trrr

v

us

Z

fY

fX

p

Z

Y

X

β

α

� = � � � � 5 6

Page 43: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

43

Calibrarea Camerelor

Page 44: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

44

Calibrarea camerelor

�Reprezintă metoda de determinare a parametrilor intrinseci şi

extrinseci ai unei camere

�Acești parametrii sunt necesari atunci când reconstruim informații

din lumea reală într-un mediu virtual 3D

Page 45: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

WX

WY

WZ

Spațiul cartezian Spațiul imaginii

xc

ycP

p

p = [Matricea de proiecție] P

Param. Intrinseci = ?

Calibrarea camerelor

� � �

100

0 0

0

v

us

β

α

45

Page 46: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Model planarModel ne-planar

Calibrarea camerelor: abordări�Modelul de calibrare este a-priori cunoscut (dimensiunea căsuţelor din

tabla de şah)

� În procesul de calibrare, modelul este achiziționat sub diferite unghiuri

46

Page 47: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

p = [Matrice de proiecție] P

K [R | t]

Puncte observate

estimate: K [R | t] P

Funcție de cost:

Metoda Zhang (1999)

�P – puncte reale 3D (ale modelului de calibrare)

� p – puncte din imagine

∑∑= =

−=n

i

m

j

jiiij PtRKppq1 1

2

),,,(ˆ

47

Page 48: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

Metoda Zhang (1999)

�Pașii algoritmului:

�Se cunosc distribuția colțurilor modelului de calibrare

(colțurile tablei de șah)

�Se determină punctele cheie ale tablei de șah

�Se determină corespondențele dintre punctele cheie calculate

pij și cele estimate

�Se minimizează funcția criteriu q, în care parametrii intrinseci

din K variază

48

Page 49: Sisteme de Vedere Artificial ă - rovislab.comrovislab.com/courses/sva/Curs_06_SVA_2016.pdf · O camer ă, sau un senzor vizual, poate fi descris ă ca un sistem ce execut ă o transformare

49