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 R1 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 P1ch 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 P1ch 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 R1 0 sin cos 0 0 0 0 0 0 1 Rotação no eixo z cos sin sin cos R1 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