DCC884 – Visão ComputacionalCalibração de Câmeras Prof.: Mario Fernando Montenegro Campos Monitor: Vilar Fiuza da Camara Neto Universidade Federal de Minas Gerais — UFMG Departamento de Ciência da Computação Programa de Pós-Graduação em Ciência da Computação Maio de 2007 DCC884 — Visão Computacional Calibração de câmeras 1 / 39 Estrutura da apresentação 1. Introdução 2. Formação de imagens 3. Apresentação do 1o método do Trucco & Verri 4. Coordenadas homogêneas 5. Apresentação do 2o método do Trucco & Verri DCC884 — Visão Computacional Calibração de câmeras 2 / 39 Estrutura da apresentação 1. Introdução 2. Formação de imagens 3. Apresentação do 1o método do Trucco & Verri 4. Coordenadas homogêneas 5. Apresentação do 2o método do Trucco & Verri DCC884 — Visão Computacional Calibração de câmeras 3 / 39 Calibração de câmeras Descrever a correspondência entre pontos da cena (3D) e pontos da imagem (2D) Essa correspondência pode ser modelada por uma função de projeção proj Com coordenadas cartesianas: proj : R3 → R2 . onde Pi = proj( Pc ) Cuidado com as unidades! Coordenadas cartesianas não são a única maneira! DCC884 — Visão Computacional Calibração de câmeras 4 / 39 . Calibração de câmeras Independentemente da representação adotada. a função de projeção depende de um conjunto de parâmetros Parâmetros intrínsecos modelam: características e configuração das lentes (ex: zoom) características do elemento sensor geometria de montagem da câmera Parâmetros extrínsecos modelam: pose (posição e orientação) da câmera Apenas parâmetros geométricos importam! DCC884 — Visão Computacional Calibração de câmeras 5 / 39 . os parâmetros extrínsecos ou ambos.Calibração de câmeras Problema da Calibração de Câmeras Dadas uma ou mais imagens geradas por uma câmera. estimar: os parâmetros intrínsecos. DCC884 — Visão Computacional Calibração de câmeras 6 / 39 . Câmeras pinhole Todos os raios de luz passam por um pequeno orifício em um anteparo Imagem é formada em um plano dentro de uma câmera obscura Raios ópticos Orifício (pinhole) Anteparo Cena Imagem formada DCC884 — Visão Computacional Calibração de câmeras 7 / 39 . Câmeras pinhole: modelo geométrico Considera-se que a imagem é formada antes do centro de projeção Facilita o entendimento e os cálculos Centro de projeção Plano de imagem DCC884 — Visão Computacional Calibração de câmeras 8 / 39 . oy ) f DCC884 — Visão Computacional Calibração de câmeras 9 / 39 .Parâmetros intrínsecos sx sy ( o x . etc. a gosto do freguês Deve-se decidir quais parâmetros são relevantes para cada problema DCC884 — Visão Computacional Calibração de câmeras 10 / 39 . sy ) [mm/px] Coeficientes de distorção (radial. o = (o x .) Cisalhamento ou skew (relacionado com o ângulo entre os eixos da imagem) Outros. f [mm] Coordenadas do centro da imagem.Parâmetros intrínsecos Distância focal. tangencial. s = (s x . oy ) [px] Tamanho do pixel. T [mm. km.] Orientação (rotação) da câmera. etc. R (matriz ortonormal) DCC884 — Visão Computacional Calibração de câmeras 11 / 39 .Parâmetros extrínsecos Posição da câmera. m. Estrutura da apresentação 1. Formação de imagens 3. Introdução 2. Apresentação do 2o método do Trucco & Verri DCC884 — Visão Computacional Calibração de câmeras 12 / 39 . Coordenadas homogêneas 5. Apresentação do 1o método do Trucco & Verri 4. projeções perspectivas. rotações. escalas. etc. Mais fácil de compreender o processo de formação de imagens Mais fácil de modelar os parâmetros de interesse DCC884 — Visão Computacional Calibração de câmeras 13 / 39 .Formação de imagens Pontos da cena são mapeados para pontos da imagem segundo a função de projeção Função pode ser complexa e não-linear → difícil de recuperar os parâmetros A função de projeção pode ser modelada como a aplicação sucessiva de transformações sobre as coordenadas dos pontos Translações. ) para mapear pontos 3D em pontos 2D DCC884 — Visão Computacional Calibração de câmeras 14 / 39 .Formação de imagens Dois grandes passos: Transformação extrínseca → Transformação intrínseca Transformação extrínseca: translação + rotação para o sistema local de coordenadas da câmera Eixo z apontando para a cena (pontos visíveis têm z > 0) Eixos x e y alinhados com os sensores da câmera Transformação intrínseca: várias transformações (translação + rotação + escala + projeção + cisalhamento + etc. Transformações em coordenadas cartesianas Translação T = (t x . tz ) (3D → 3D): p0x tx px 0 py = ty + py tz pz p0z Rotação de α graus em torno do eixo x (3D → 3D): p0x 1 0 0 px 0 py = 0 cos α − sin α py p0z 0 sin α cos α pz DCC884 — Visão Computacional Calibração de câmeras 15 / 39 . ty . Transformações em coordenadas cartesianas Rotação de β graus em torno do eixo y (3D → 3D): p0x cos β 0 sin β px 0 1 0 py py = 0 p0z − sin β 0 cos β pz Rotação de γ graus em torno do eixo z (3D → 3D): p0x cos γ − sin γ 0 0 py = sin γ p0z 0 DCC884 — Visão Computacional cos γ 0 px 0 p y 1 Calibração de câmeras pz 16 / 39 . 2 r1.1 r1.3 pz R é uma matriz ortonormal.2 r2.3 px 0 py = r2.2 r3.3 py p0z r3.Transformações em coordenadas cartesianas Rotação arbitrária R (3D → 3D): p0x r1.1 r2. DCC884 — Visão Computacional Calibração de câmeras 17 / 39 .1 r3. sy . sz ) (3D → 3D): p0x sx px 0 py = sy py p0z sz pz Projeção: sk = 0 Espelhamento: sk < 0 DCC884 — Visão Computacional Calibração de câmeras 18 / 39 .Transformações em coordenadas cartesianas Escala não-uniforme S = (s x . descartando-se as operações sobre o eixo z DCC884 — Visão Computacional Calibração de câmeras 19 / 39 .Transformações em coordenadas cartesianas Transformações em sistemas bidimensionais (2D → 2D): Seguem a idéia das transformações anteriores. Transformações em coordenadas cartesianas Projeção perspectiva com distância focal f (3D → 2D): " p0x p0y # = f f p x pz p y pz Projeção paralela (3D → 2D): " p0x p0y DCC884 — Visão Computacional # " = px # py Calibração de câmeras 20 / 39 . . .Demonstração prática da função de projeção [Demonstração em Matlab. ] DCC884 — Visão Computacional Calibração de câmeras 21 / 39 . Coordenadas homogêneas 5.Estrutura da apresentação 1. Apresentação do 2o método do Trucco & Verri DCC884 — Visão Computacional Calibração de câmeras 22 / 39 . Formação de imagens 3. Introdução 2. Apresentação do 1o método do Trucco & Verri 4. Apresentação do 1o método do Trucco & Verri [Demonstração em Matlab. . . ] DCC884 — Visão Computacional Calibração de câmeras 23 / 39 . Apresentação do 1o método do Trucco & Verri 4. Introdução 2. Apresentação do 2o método do Trucco & Verri DCC884 — Visão Computacional Calibração de câmeras 24 / 39 .Estrutura da apresentação 1. Formação de imagens 3. Coordenadas homogêneas 5. w H ) Relação com o ponto PC = ( xC . 24) representam o mesmo ponto bidimensional DCC884 — Visão Computacional Calibração de câmeras 25 / 39 . −3. −1) e (48. no sistema homogêneo as coordenadas (2. (−2. (4. yC ) em coordenadas cartesianas: " xC yC # " = x H /w H # y H /w H Coordenadas insensíveis a um fator de escala diferente de zero Portanto. 2).Coordenadas homogêneas Um ponto no espaço bidimensional é representado por três coordenadas: PH = ( x H . 6. y H . 72. 1). 3. 0) é um ponto no infinito a 30◦ do eixo x Convenção: sinais definem o quadrante em questão (1. sin 30◦ . 0) ≡ (−100. 0. 0. (−1.Coordenadas homogêneas Pontos no infinito podem ser representados com w H = 0: (1. 0) é no lado negativo coordenadas insensíveis a um fator de escala positivo Ponto (0. 0) não existe DCC884 — Visão Computacional Calibração de câmeras 26 / 39 . 0) é no lado positivo do eixo x. 0) ≡ (20 cos 30◦ . 0) ≡ (2. 0. 0. 0. 0. 0) é um ponto no infinito no eixo x (cos 30◦ . 20 sin 30◦ . Coordenadas homogêneas Um ponto no espaço tridimensional segue a mesma filosofia e é representado por quatro coordenadas: PH = ( x H . zC ) em coordenadas cartesianas: xC x H /w H yC = y H /w H zC z H /w H DCC884 — Visão Computacional Calibração de câmeras 27 / 39 . w H ) Relação com o ponto PC = ( xC . y H . z H . yC . projeções. perspectivas. rotações. Funciona com pontos no infinito! DCC884 — Visão Computacional Calibração de câmeras 28 / 39 . espelhamentos.Transformações em coordenadas homogêneas Qualquer transformação projetiva pode ser representada pela multiplicação das coordenadas por uma matriz de transformação PH0 = M PH Inclui: translações. escalas. cisalhamento. etc. . M3 M2 M1 DCC884 — Visão Computacional Calibração de câmeras 29 / 39 .Transformações em coordenadas homogêneas Pode ser aplicada a vários pontos com uma única operação h 0 PH1 | 0 PH2 i h i = M | ··· PH1 | PH2 | · · · Várias transformações podem ser combinadas pela simples multiplicação das matrizes correspondentes (em ordem inversa) M = . . Matrizes de transformações homogêneas Translação T = (t x . tz ) (3D → 3D): 1 0 0 tx 0 1 0 t y MT = 0 0 1 t z 0 0 0 1 Rotação de α graus em torno do eixo x (3D → 3D): MRx DCC884 — Visão Computacional 1 0 0 0 0 cos α − sin α 0 = 0 sin α cos α 0 0 0 0 1 Calibração de câmeras 30 / 39 . ty . Matrizes de transformações homogêneas Rotação de β graus em torno do eixo y (3D → 3D): MRy cos β 0 sin β 0 0 1 0 0 = − sin β 0 cos β 0 0 0 0 1 Rotação de γ graus em torno do eixo z (3D → 3D): MRz DCC884 — Visão Computacional cos γ − sin γ 0 0 sin γ = 0 0 cos γ 0 0 0 0 1 0 0 1 Calibração de câmeras 31 / 39 . 3 0 r2.1 r1.3 0 0 0 0 1 DCC884 — Visão Computacional Calibração de câmeras 32 / 39 .1 r3.3 0 MR = r 3.Matrizes de transformações homogêneas Rotação arbitrária R (3D → 3D): r1.2 r3.2 r1.1 r2.2 r2. sz ) (3D → 3D): sx 0 0 0 0 MS = 0 0 sy 0 0 sz 0 0 0 0 1 Projeção: sk = 0 Espelhamento: sk < 0 DCC884 — Visão Computacional Calibração de câmeras 33 / 39 .Matrizes de transformações homogêneas Escala não-uniforme S = (s x . sy . Matrizes de transformações homogêneas Transformações em sistemas bidimensionais (2D → 2D): Seguem a idéia das transformações anteriores. descartando-se as operações sobre o eixo z (3a linha e 3a coluna de cada matriz) DCC884 — Visão Computacional Calibração de câmeras 34 / 39 . Matrizes de transformações homogêneas Projeção perspectiva com distância focal f (3D → 2D): 1 0 0 M P = 0 1 0 0 0 1/ f 0 0 0 Projeção paralela (3D → 2D): 1 0 0 0 MPar = 0 1 0 0 0 0 0 1 DCC884 — Visão Computacional Calibração de câmeras 35 / 39 . Demonstração prática de transformações homogêneas [Demonstração em Matlab. . . ] DCC884 — Visão Computacional Calibração de câmeras 36 / 39 . Introdução 2. Apresentação do 2o método do Trucco & Verri DCC884 — Visão Computacional Calibração de câmeras 37 / 39 . Apresentação do 1o método do Trucco & Verri 4. Coordenadas homogêneas 5.Estrutura da apresentação 1. Formação de imagens 3. ] DCC884 — Visão Computacional Calibração de câmeras 38 / 39 . .Apresentação do 2o método do Trucco & Verri [Demonstração em Matlab. . Perguntas? DCC884 — Visão Computacional Calibração de câmeras 39 / 39 .