Computação Gráfica: Aula4:
Câmeras
http://www.fei.edu.br/~psergio
[email protected]
Transformação em Perspectiva
x
X
X



Z   Z
y
Y
Y



Z   Z
Transformação em Perspectiva
x
X

 Z
e
y
Y

 Z
X
Y
x
e y
Z
Z
Transformação em Perspectiva:
Coordenadas Homogêneas
X 


w  Y 
 Z 
e
kX 
 kY 


wh 
 kZ 
 
k 
Transformação em Perspectiva:
Coordenadas Homogêneas
 x


c   y
 z 
e
kx
ky


ch 
 kz 
 
k 
Transformação em Perspectiva:
Coordenadas Homogêneas
 k X 
  Z 




 k Y 
   Z 




 k Z 
  Z 


k

 x


c   y
 z 
e
kx
ky
ch   
 kz 
 
k 
Transformação em Perspectiva:
Coordenadas Homogêneas
 kX 
  Z 


kX




 kY   kY 




   Z   kZ 
h



   kZ  k 

 kZ   

  Z 


k

kx
ky
c  
 kz 
 
k 
Transformação em Perspectiva:
Coordenadas Homogêneas
kX 
 kY 


wh 
 kZ 
 
k 
 kX 
 kY 


ch   kZ 
  kZ


k
 



Transformação em Perspectiva:
Coordenadas Homogêneas
(4 x 1)
(4 x 4)
P
(4 x 1)
kX


kX
 


 kY 
kY


 


kZ
 kZ 



kZ
 

k

 k   

Transformação em Perspectiva:
Coordenadas Homogêneas
(4 x 4)
(4 x 1)
(4 x 1)
kX


1
0
0
0
kX

 



  kY 
kY



  


kZ

  kZ 



kZ

 

k


  k   

Transformação em Perspectiva:
Coordenadas Homogêneas
(4 x 4)
(4 x 1)
(4 x 1)
kX


1
0
0
0
kX

 


0 1 0 0  kY 
kY



  


kZ

  kZ 



kZ

 

k


  k   

Transformação em Perspectiva:
Coordenadas Homogêneas
(4 x 4)
(4 x 1)
(4 x 1)
kX


1
0
0
0
kX

 


0 1 0 0  kY 
kY



  


kZ
0 0 1 0  kZ 



kZ

 

k


  k   

Transformação em Perspectiva:
Coordenadas Homogêneas
(4 x 4)
1
0

0

0


0
1
0
0
(4 x 1)
(4 x 1)
kX


0 0 kX 
 kY 

0 0  kY  

  
kZ 
1 0  kZ 

     kZ
1
 k

1  k  
 

 
Transformação em Perspectiva:
Matriz de Transformação em Perspectiva
1
0

P  0

0

0
1
0
0
0
1
1
0 

0

0
0

1

Transformação em Perspectiva:
Matriz de Transformação em Perspectiva
ch  Pwh
1
0

ch  0

0

0
1
0
0
0
1
1
0 

0 kX   kX 





0 kY
kY

 
0  kZ   kZ 
     kZ

1  k  
 k

 

Transformação em Perspectiva:
Matriz de Transformação em Perspectiva
ch  Pwh
1
0

P  0

0

1
0
1
0
0
0
1
1
0 

0

0
0

1

wh  P ch
1
0

1
P  0

0

0
0
1
0
0
0
1
1

0

0
0

1

Transformação em Perspectiva:
Matriz de Transformação em Perspectiva: Resumo
kX 
X 
 kY 
w   Y  wh   
 kZ 
 Z 
 
k 
ch  Pwh
1
0

P  0

0

 X 
 kX 


 kY 
 x   Z 
Y


 ch   kZ 
c   y   
  Z 
  kZ

 z   Z 
   k


   Z 
wh  P 1ch
0
1
0
0
0
1
1
0 

0
0
0

1

1
0

1
P  0

0

0
0
1
0
0
1
1
0

0
0
0

1

Transformação em Perspectiva: ambigüidade colinear
x0 , y0 ,0
 kx0 
ky 
ch   0 
 0 
 
 k 
de acorcocom wh  P1ch
kx0 
ky 
0

wh 
 0 
 
 k 
 X   x0 




w   Y    y0 
 Z   0 
Transformação em Perspectiva: ambigüidade colinear
Resultado Inesperado!!!
x0 , y0 ,0
kx0 
kx0 
 X   x0 
ky 
ky 
ch   0  wh   0  w   Y    y0 
 0 
 0 
 Z   0 
 
 
k 
k 
Transformação em Perspectiva: ambigüidade colinear
x0 , y0 , z 
de acorcocom wh  P1ch
 kx0 
 ky 
0 

wh   kz 
 kz

   k


kx0 
ky 
0

ch 
 kz 
 
k 
 x0 


X    z 
y0



w  Y   
  z 
 Z   z 
   z 
Transformação em Perspectiva: ambigüidade colinear
 kx0 
 ky 
0 

wh   kz 
 kz

   k


 x0 
  z 
X
  


y
w   Y    0 
  z 
 Z   z 
   z 
X
x0
  Z 
Y
y0
  Z 


 x0
X
z
y0
Y
z
z 0
Z
z
Transformação em Perspectiva: Modelo de Câmera
Transformação em Perspectiva: Modelo de Câmera
•
Para alinhar o plano da imagem (x,y) com o
plano em coordenadas do mundo (X,Y), pode-se
fazer a seguinte seqüência de passos:
1.
2.
3.
4.
Translação do suporte para origem, G
Rotação no eixo x,
Rotação no eixo z,
Translação do plano da imagem com relação
ao suporte, C
Transformação em Perspectiva: Modelo de Câmera
Translação para origem:
1
0
G
0

0
0
1
0
0
0  X0

0  Y0 
1  Z0 

0
1 
Gwh
Transformação em Perspectiva: Modelo de Câmera
Rotação no eixo x
Rotação no eixo z
0
0
1
0 cos   sin   
R1  
0  sin    cos  

0
0
0
0
0
0

1
 cos   sin   
 sin    cos  
R1  

0
0

0
0

0

0
0

1
0
0
1
0
Transformação em Perspectiva: Modelo de Câmera
Rotação nos eixos x e z
 cos
 sin  cos
R  R R  
 sin  sin 

0

sin 
cos cos
 cos sin 
0
0
sin 
cos
0
0

0
0

1
Transformação em Perspectiva: Modelo de Câmera
Translação do plano da imagem com relação ao suporte
1
0
C
0

0
0
1
0
0
0  r1 

0  r2 
1  r3 

0 1 
Transformação em Perspectiva: Modelo de Câmera
Translação para origem:
Rotação:
 cos
 sin  cos
R
 sin  sin 

0

Translação:
1
0
G
0

0
sin 
cos cos
 cos sin 
0
0
1
0
0
0
sin 
cos
0
1
0
C
0

0
0
1
0
0
0  X0
0  Y0 
1  Z0 

0
1 
0
0
0

1
0  r1 
0  r2 
1  r3 

0 1 
Transformação em Perspectiva: Modelo de Câmera
Combinando as duas translações e as duas rotações:
ch  PC( R R )Gwh
ch  PCRGwh
Transformação em Perspectiva: Modelo de Câmera
Dado um pontow  X , Y , Z  em coordenadas do mundo,o seu
correspondenteem coordenadas Cartezianas no planoda imagem,
considerando a equeção ch  PCRGwh , e dividindo o primeiroe segundo
componente
s pelo quarto,será :

X  X 0  cos  (Y  Y0 ) sin   r1
x
  X  X 0 sin  sin   Y  Y0  cos sin   Z  Z 0  cos  r3  
  X  X 0 sin  cos  Y  Y0  cos cos  Z  Z 0 sin   r2
y
  X  X 0 sin  sin   Y  Y0  cos sin   Z  Z 0  cos  r3  
Transformação em Perspectiva: Modelo de Câmera
Como fica a expressão anterior se tivermos:
X 0  Y0  Z0  r1  r2  r3  0 e     0
o
?
Transformação em Perspectiva: Modelo de Câmera
Como fica a expressão anterior se tivermos:
X 0  Y0  Z0  r1  r2  r3  0 e     0
o
X
Y
x
e y
Z
Z
Transformação em Perspectiva: Visão Stereo
Transformação em Perspectiva: Visão Stereo
Transformação em Perspectiva: Visão Stereo
X1 
x1
  Z1 
X2 
x2
  Z 2 


X 2  X1  B
Z 2  Z1  Z
Transformação em Perspectiva: Visão Stereo
X1 
x1
X2 
x2


  Z1 
  Z 2 
X 2  X1  B
Z 2  Z1  Z
X1 
x1
  Z 
X2 
x2
  Z 


X1  B 
Z 
x2

  Z 
B
x2  x1
Transformação em Perspectiva: Visão Stereo
X1 
x1
  Z 
Y1 
y1
  Z 


Z 
B
x2  x1
Transformação em Perspectiva: Calibração de Câmera
• Calibração de câmera é o processo de determinar quais os parâmetros da
câmera, intrínsecos e extrínsecos, para um conjunto de coordenadas do mundo e
da imagem.
Transformação em Perspectiva: Calibração de Câmera
• Um problema que ocorre com imagens 2D, vistas projetadas no
plano de imagem da câmera, é a ambigüidade colinear.
Transformação em Perspectiva: Calibração de Câmera
ch  PCRGwh
A  PCRG
ch  Awh
Transformação em Perspectiva: Calibração de Câmera
ch  Awh
Se K = 1 na representação homogênea:
 ch1   a11
c   a
 h 2    21
ch 3   a31
  
ch 4  a41
a12
a13
a22
a23
a32
a33
a42
a43
a14   X 



a24  Y
 
a34   Z 
 
a44   1 
Transformação em Perspectiva: Calibração de Câmera
As coordenadas da projeção perspectiva do ponto
(X,Y,Z) na forma Cartesiana são:
 ch1   a11
c   a
 h 2    21
ch 3   a31
  
ch 4  a41
a12
a13
a22
a32
a23
a33
a42
a43
x  ch1 / ch 4
y  ch 2 / ch 4
a14   X 



a24   Y 
a34   Z 
 
a44   1 
Transformação em Perspectiva: Calibração de Câmera
Substituindo ch1 = xch4 e ch2 = ych4 no sistema linear e
expandindo, temos:
xch 4
ych 4
ch 3
ch 4




a11 X
a21 X
a31 X
a41 X




a12Y
a22Y
a32Y
a42Y




a13 Z
a23 Z
a32 Z
a43 Z




a14
a24
a34
a44
Assumindo ch3 = 0 uma vez que z = 0, temos:
Transformação em Perspectiva: Calibração de Câmera
xch 4
ych 4
ch 4
 a11 X
 a21 X
 a41 X
 a12Y
 a22Y
 a42Y
 a13 Z
 a23 Z
 a43 Z
 a14
 a24
 a44
Substituindo ch4 na primeira e segunda equações, obtemos duas equações
com 12 variáveis!
a11 X
a21 X
 a12Y
 a22Y
 a13 Z
 a23 Z
 a41 xX
 a41 yX
 a42 xY
 a42 yY
 a43 xZ  a44 x  a14
 a43 yZ  a44 y  a24
 0
 0
Transformação em Perspectiva: Calibração de Câmera
•
O procedimento de calibração consiste então em:
(a) Obter pelo menos 6 pontos de coordenadas do mundo m ≥ 6 com
valores conhecidos (Xi, Yi, Zi ) i = 1,2,..,m. Isso gera um Sistema
Linear de 12 equações e 12 incógnitas!
a11 X 1
a21 X 1
a11 X 2
a21 X 2

a12Y1
 a22Y2
 a12Y2
 a22Y2

a11 X 6
a21 X 6


a12Y6
 a22Y6
 
 
 
 


a14
 a24
 a14
 a24
0
0
0
0

   a14
   a24
0
0
Transformação em Perspectiva: Calibração de Câmera
•
O procedimento de calibração consiste então em:
(b) Resolver o Sistema Linear para obter os pontos correspondentes na
imagem (xi, yi), i = 1, 2, ..., m.
X 1 , Y1 , Z1

x1 , y1
X 2 , Y2 , Z 2

x2 , y 2
X 3 , Y3 , Z 3

x3 , y3
X 4 , Y4 , Z 4

x4 , y 4
X 5 , Y5 , Z 5

x5 , y5
X 6 , Y6 , Z 6

x6 , y6
Transformação em Perspectiva: Calibração de Câmera
•
O procedimento de calibração consiste então em:
(c) Tendo então a matriz de transformação A da câmera, pode-se mapear
qualquer ponto w do mundo no plano da imagem:
p = (xi, yi)
w = (X,Y,Z)
P = Aw
A
Download

Matriz de Transformação em Perspectiva