Computer
Vision
Calibração de Câmeras
Paulo Sérgio Rodrigues
PEL205
Computer
Vision
Revisão de Transformações
• Modelo de Translação
X
*

X

X0
*
 Y
 Z


Y0
Z0
Y
*
Z
Computer
Vision
Revisão de Transformações
• Modelo de Translação
 X  1 0 0
 * 
 Y   0 1 0
 Z *  0 0 1
 
*
v* 
A
X 
X 0  
Y

Y0   
Z 
Z 0   
1
v
Computer
Vision
Revisão de Transformações
• Modelo de Translação
 X *  1
 * 
 Y   0
 Z *  0
  
 1  0
v* 
0 0
1 0
0 1
0 0
T
X 0  X 



Y0   Y 
Z0  Z 
 
1  1 
v
Computer
Vision
Revisão de Transformações
• Modelo de Escalonamento
 X *  S x
 * 
Y    0
Z*   0
  
 1   0
v* 
0
0
Sy
0
0
0
Sz
0
S
0  X 
0  Y 
0  Z 
 
1  1 
v
Computer
Vision
Revisão de Transformações
• Modelo de Rotação
Computer
Vision
Revisão de Transformações
• Modelo de Rotação
Rotação no Eixo Z
 cos
 sin 
R  
 0

 0
sin 
cos
0
0
0
0
1
0
0

0
0

1
Computer
Vision
Revisão de Transformações
• Modelo de Rotação
Rotação no Eixo X
0
1
0 cos
R  
0  sin 

0
0
0
sin 
cos
0
0

0
0

1
Computer
Vision
Revisão de Transformações
• Modelo de Rotação
Rotação no Eixo Y
cos 
 0
R  
 sin 

 0
0  sin 
1
0
0 cos 
0
0
0

0
0

1
Computer
Vision
Revisão de Transformações
• Concatenação e Transformação Inversa
v  R S Tv 
*
 Av
Onde A é uma matriz 4 x 4
A  R ST
Computer
Vision
Revisão de Transformações
• Concatenação e Transformação Inversa
1
0
T 1  
0

0
0
1
0
0
0  X0

0  Y0 
1  Z0 

0
1 
Computer
Vision
Revisão de Transformações
• Concatenação e Transformação Inversa
 cos   sin   
 sin    cos  
R1  

0
0

0
0

0
0
1
0
0
0
0

1
Computer
Vision
Transformação Perspectiva
x
X
X



Z   Z
y
Y
Y



Z   Z
Computer
Vision
Transformação Perspectiva
x
X

 Z
e
y
Y

 Z
X
Y
x
e y
Z
Z
Computer
Vision
Transformação Perspectiva
Coordenadas cartesiana e Coordenadas homogêneas
X 


w  Y 
 Z 
e
kX 
 kY 
wh   
 kZ 
 
k 
Computer
Vision
Transformação Perspectiva
Matriz de Transformação em Perspectiva
1
0

P  0

0

0
1
0
0
0
1
1
0 

0

0
0

1

Computer
Vision
Transformação 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

 

Computer
Vision
Transformação Perspectiva
Matriz de Transformação em Perspectiva
 X 


 x   Z 
Y



c   y  
  Z 
 z   Z 
   Z 
Computer
Vision
Transformação Perspectiva
Matriz de Transformação em Perspectiva Inversa
1
wh  P ch
1
0

1
P  0

0

0
0
1
0
0
1
1
0

0
0
0

1

Computer
Vision
Transformação Perspectiva
Transformação em Perspectiva: resumo
 X 
 kX 
kX
 


 kY 
X 
 x   Z 
 kY 
Y


 ch   kZ 
w   Y  wh    c   y   
 kZ 
  Z 
  kZ

 Z 


z   Z 
 


k
 

k 


   Z 
ch  Pwh
1
0

P  0

0

0
1
0
0
0
1
1
0 

0
0
0

1

wh  P 1ch 1 0 0 0
0 1 0

P 1  0 0 1

1
0
0



0
0

1

Computer
Vision
Transformação Perspectiva
ambigüidade colinear
x0 , y0 ,0
 kx0 
ky 
ch   0 
 0 
 
 k 
de acorcocom wh  P1ch
kx0 
ky 
wh   0 
 0 
 
 k 
 X   x0 
w   Y    y0 
 Z   0 
Computer
Vision
Transformação 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 
Computer
Vision
Transformação Perspectiva
ambigüidade colinear
X
Y
x
e y
Z
Z
X
x0

  Z 
e Y
y0

  Z 
Computer
Vision
Transformação Perspectiva
ambigüidade colinear
x0 , y0 , z 
kx0 
ky 
ch   0 
 kz 
 
k 
de acorcocom wh  P1ch
 kx0 
 ky 
0 

wh   kz 
 kz

   k


 x0 


X    z 
y
w   Y    0 
  z 
 Z   z 
   z 
Computer
Vision
Transformação Perspectiva
ambigüidade colinear
 kx0 
 ky 
0 

wh   kz 
 kz

   k


 x0 
  z 
X
  
y0 



w  Y   
  z 
 Z   z 
   z 
X
x0
  Z 
Y
y0
  Z 


 x0
X
z
y0
Y
z
z 0
Z
z
Computer
Vision
Modelo de Câmersa
Computer
Vision
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, R
Rotação no eixo z, R
Translação do plano da imagem com relação ao suporte, C
Computer
Vision
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
Computer
Vision
Modelo de Câmera
Rotação no eixo x
0
0
1
0 cos   sin   
R1  
0  sin    cos  

0
0
0
0
0
0

1
Rotação no eixo z
 cos   sin   
 sin    cos  
R1  

0
0

0
0

0
0
0

1
0
0
1
0
Computer
Vision
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
Computer
Vision
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 
Computer
Vision
Modelo de Câmera
1
0
G
0

0
Translação para origem:
Rotação:
 cos
 sin  cos
R
 sin  sin 

0

Translação:
1
0
C
0

0
0
1
0
0
0
1
0
0
0  X0
0  Y0 
1  Z0 

0
1 
sin 
cos cos
 cos sin 
0
0  r1 
0  r2 
1  r3 

0 1 
0
sin 
cos
0
0
0
0

1
Computer
Vision
Modelo de Câmera
Combinando as duas translações e as duas rotações:
ch  PC( R R )Gwh
ch  PCRGwh
Computer
Vision
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  X 0  cos  (Y  Y0 ) sin   r1
  X  X 0 sin  sin   Y  Y0  cos sin   Z  Z 0  cos  r3  
y
  X  X 0 sin  cos  Y  Y0  cos cos  Z  Z 0 sin   r2
  X  X 0 sin  sin   Y  Y0  cos sin   Z  Z 0  cos  r3  
Computer
Vision
Modelo de Câmera

X  X 0  cos  (Y  Y0 ) sin   r1
x
  X  X 0 sin  sin   Y  Y0  cos sin   Z  Z 0  cos  r3  
y
  X  X 0 sin  cos  Y  Y0  cos cos  Z  Z 0 sin   r2
  X  X 0 sin  sin   Y  Y0  cos sin   Z  Z 0  cos  r3  
X
Y
Essas equações se reduzem a x 
e y
quando
Z
Z
X 0  Y0  Z 0  r1  r2  r3  0 e     0o
Computer
Vision
Modelo de Câmera
Exemplo
Suponha que queiramos encontrar as coordenadas de
um dos cantos do bloco da figura abaixo:
Nessa posição, a câmera foi
Transladada apenas no eixo
Z de Z0= 1 m; rotacionado no
no mesmo eixo de α = 135o;
rotacionado no eixo X de
β = 135o; e deslocado no
Suporte segundo o vetor
r = (0.03, 0.02, 0.035) m.
Assuma uma distância focal de
λ = 0.035 m.
Computer
Vision
Modelo de Câmera
Exemplo
Computer
Vision
Modelo de Câmera
Exemplo
Se o canto em questão possui coordenadas do mundo (X,Y,Z) = (1,1,0.2),
as coordenadas no plano da imagem são dadas por:
x
 0.03
 0.03
 0.035
 1.53  
 1.53  0.035
y
 0.42
0.42
 0.035
 1.53  
 1.53  0.035
x = 0.0007m
y = -0.009m
Computer
Vision
O problema de calibração de câmera
 x   f x
 y   0
  
 z   0
 p
0
 fy
0
ox   r11
o y  r21
1   r31
r12
r13
r22
r32
r23
r33
 K  R T 
X w
Tx   w 
Y
Ty   w 
Z 
Tz   
 1 
P
– Ache [K] e [R T]
– Dados pares de pontos [P] e [p]
Padrões com pontos em posições conhecidas
Computer
Vision
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.
Computer
Vision
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.
Computer
Vision
Calibração de Câmera
ch  PCRGwh
A = PCRG
ch  Awh
Computer
Vision
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
a32
a23
a33
a42
a43
a14   X 



a24   Y 
a34   Z 
 
a44   1 
Computer
Vision
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 
Computer
Vision
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




Assumindo ch3 = 0 uma vez que z = 0, temos:
a14
a24
a34
a44
Computer
Vision
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
Computer
Vision
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





a14
a24
a14
a24

0
0
0
0
a11 X 6
a21 X 6
 a12Y6
 a22Y6
   a14
   a24
0
0









Computer
Vision
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
Computer
Vision
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