Processamento de Imagens CPS755 aula 07 - modelos de câmera Antonio Oliveira Ricardo Marroquim 1 / 32
laboratório de processamento de imagens tópicos matriz de calibração câmera finita câmera projetiva geral câmera no infinito 2 / 32
intro até agora homografia entre dois planos todas coordenadas eram em 2D as transformações se referiam em como levar pontos de um plano a outro plano 3 / 32
câmeras finitas pinhole ponto no espaço é levado a um ponto na imagem: (X, Y, Z) T (f X Z, f Y Z )T Y C camera centre X x p y x image plane X Z principal axis C Y f p f Y / Z Z 4 / 32
câmeras finitas projeção central mapeamento linear entre coordenadas homogêneas X X Y fx f 0 Z fy = f 0 Y Z Z 1 0 1 1 notação curta para matriz: P = diag(f, f, 1)[I 0] P 3 4 é a matriz de projeção da câmera x = PX onde X é um ponto no espaço e x é um ponto na imagem 5 / 32
câmeras finitas principal point nem sempre a origem do sistema de coordenadas está no ponto principal (p x, p y ) T (X, Y, Z) T (f X Z + p x, f Y Z + p y) T em coordenadas homogêneas: X X Y fx + Zp x f p x 0 Z fy + Zp y = f p y 0 Y Z Z 1 0 1 1 6 / 32
câmeras finitas matriz de calibração matriz de calibração de câmera: f K = f p x p y 1 ou, em notação curta: x = K[I 0]X cam para uma câmera com centro na origem do sistema de coordenadas e eixo principal coincidente com o eixo z: sistema de coordenadas da câmera 7 / 32
câmeras finitas rotação e translação um ponto no espaço geralmente não é expresso em coordenadas de câmera, mas sim coordenadas de mundo os dois sistemas são relacionados via uma rotação e uma translação Ycam Z C Zcam X cam R, t O Y X 8 / 32
câmeras finitas transformação mundo para câmera se C representa o centro da câmera em coordenadas do mundo (coordenadas não-homogêneas): X cam = [ ] X [ ] R R C Y R R 0 1 Z = C X 0 1 1 9 / 32
câmeras finitas mapeamento geral de uma câmera pinhole juntando tudo: 9 graus de liberdade: 3 para K : f, p x, p y 3 para R 3 para C parâmetros x = KR[I C]X K : parâmetros internos, ou intrínsecos R e C : parâmetros externos, ou extrínsecos 10 / 32
câmeras finitas mapeamento geral muitas vezes o centro C não é colocado de forma expĺıcita P = K[R t]x analogia OpenGL note como o modelo OpenGL é análogo K ProjectionMatrix [R t] ModelViewMatrix 11 / 32
câmeras finitas câmeras com CCD geralmente coordenadas de imagem são medidas em pixels e coordenadas do mundo em algum sistema métrico (m, cm, mm...) se m x e m y correspondem ao número de pixels por unidade de distância precisamos multiplicar por mais um fator diag(m x, m y, 1) matrix de calibração para uma câmera com CCD α x x 0 K = α y y 0 1 12 / 32
câmeras finitas câmeras com CCD matrix de calibração para uma câmera com CCD α x x 0 K = α y y 0 1 α x = fm x e α y = fm y representam a distância focal da câmera em dimensões de pixels x = (x 0, y 0 ) é o ponto principal em pixels x 0 = m x p x e y 0 = m y p y temos 10 graus de liberdade para uma câmera CCD 6 para (R, t) + 4 para (α x, α y, x 0, y 0 ) 13 / 32
câmeras finitas câmera projetiva finita para completude, podemos adicionar o parâmetro de cisalhamento α x s x 0 K = α y y 0 1 porém, s = 0 na maioria dos casos este modelo tem 11 graus de liberdade ou seja, o mesmo da matriz 3 4 a menos de uma escala note que a submatriz 3 3 da esquerda é não-singular matriz KR (decomposição RQ) 14 / 32
câmera projetiva projetiva se retirarmos a restrição de que a submatriz seja não-singular, chegamos ao modelo mais geral possível: câmera projetiva geral p 11 p 12 p 13 p 14 P = p 21 p 22 p 23 p 24 = p 31 p 32 p 33 p 34 P 1T P 2T P 3T vamos ver como extrair informações dessa matriz 15 / 32
câmera projetiva centro o centro da câmera está no ponto (0, 0, 0) T em relação ao seu sistema de coordenadas o centro C em coordenadas do mundo multiplicado pela matriz de projeção P deve leva C (0, 0, 0) T logo PC = 0 p 3 Z C p 2 O Y p 1 X 16 / 32
câmera projetiva colunas projeções dos eixos das coordenadas do mundo correspondem aos pontos de fuga p i = PD i onde D x = (1, 0, 0, 0) T, D y = (0, 1, 0, 0) T e D z = (0, 0, 1, 0) T a última coluna corresponde a imagem da origem do mundo (0, 0, 0, 1) 17 / 32
câmera projetiva linhas representam planos (normais) y x 2 P P 3 y x principal plane 18 / 32
câmera projetiva linhas plano principal plano contendo centro da câmera paralelo ao plano de imagem plano contendo pontos no infinito PX = (x, y, 0) T ou seja P 3T X = 0 19 / 32
câmera projetiva linhas plano dos eixos plano P 1 contém os pontos PX = (0, y, w) T P 1T X = 0 plano P 2 contém os pontos PX = (x, 0, w) T P 2T X = 0 ponto C satisfaz as equações para todos os 3 planos P 1 e P 2 estão associados à escolha do sistema de coordenadas da imagem 20 / 32
câmera projetiva linhas repare também que a interseção dos planos P 1 e P 2 não passam necessariamente pelo ponto principal y x 2 P P 3 y x principal plane 21 / 32
câmera projetiva ponto principal interseção do eixo principal com o plano de imagem interseção no plano de imagem do raio passando pelo centro C perpendicular ao plano principal P 3 y x 2 P P 3 y x principal plane 22 / 32
câmera projetiva decomposição da matriz da câmera a partir desta matriz p 11 p 12 p 13 p 14 P = p 21 p 22 p 23 p 24 p 31 p 32 p 33 p 34 como extrair a rotação, translação e parâmetros intrínsecos? temos que: P = [M M C] = K[R R C] = K[R t] 23 / 32
câmera projetiva decomposição da matriz da câmera podemos separar K e R de M utilizando uma decomposição QR Q é uma matriz ortogonal: matriz de rotação R R é uma matriz triangular superior: matriz de calibração K atenção com as notações! f p x 0 r 11 r 12 r 13 M = KR = f p y 0 r 21 r 22 r 23 1 0 r 31 r 32 r 33 24 / 32
câmera projetiva decomposição da matriz da câmera centro C lembrando que PC = 0 basta encontrar a solução do sistema (ex. SVD) 25 / 32