980 likes | 1.11k Views
Visão Computacional Calibração de Câmeras. http://www.dca.ufrn.br/~lmarcos/courses/visao. y c. x im. y im. y w. y o. z c. z o. x c. x w. x o. z w. Parâmetros de câmera .
E N D
Visão ComputacionalCalibração de Câmeras http://www.dca.ufrn.br/~lmarcos/courses/visao
yc xim yim yw yo zc zo xc xw xo zw Parâmetros de câmera • Reconstrução 3D ou cálculo da posição de objetos no espaço necessitam definir relações entre coordenadas de pontos 3D com as coordenadas 2D de imagens dos mesmos • Alguns pressupostos devem ser assumidos
yc xim yim yw yo zc zo xc xw xo zw Pressupostos • Frame é “Sistema de referência” • O frame da câmera pode ser localizado em relação a algum outro frame bem conhecido (frame de mundo) - referencial assumido • Coordenadas das imagens de pontos no frame de câmera podem ser obtidas das coordenadas de pixels (únicas disponíveis a partir da imagem), pelo menos x e y
Parâmetros intrínsecos e extrínsecos (internos e externos) • Parâmetros intrínsecos são os necessários para ligar as coordenadas de pixel de um ponto na imagem com as respectivas coordenadas no frame de câmera. • Parâmetros extrínsecos são os que definem a localização e orientação do frame de câmera com relação a um frame de mundo conhecido
yc xim yim yw yo zc zo xc xw xo zw Parâmetros intrínsecos • Caracterizam as propriedades óticas, geométricas e digitais da câmera visualizadora. Para pin-hole, 3 conjuntos: • projeção perspectiva (único parâmetro é f) • transformação entre frames de câmera e píxel • distorção geométrica introduzida pelo sistema ótico
De câmera para pixels • Devemos ligar (xim,yim), em pixels, com as coordenadas (x,y) do mesmo ponto no frame de câmera • Neglicenciando distorções e assumindo que o CCD é uma matriz retangular: x = -(xim-ox)sx y = -(yim-oy)sy sendo (ox,oy) as coordenadas em pixel do centro da imagem (ponto principal) e (sx,sy) o tamanho efetivo do pixel (em milímetros) horizontal e verticalmente.
De pixels para câmera x = -(xim-ox)sx y = -(yim-oy)sy (n-1) / 2 xim (0,0) Z yim (0,0,f) (m-1) / 2 Imagem Camera (0,0) -> (((m-1)/2)sx , (n-1)/2)sy) (m-1,n-1) Y ((m-1)/2,(n-1)/2) -> ((0)sx,(0)sy) X (0,0,0) (m-1,n-1) -> (-((m-1)/2)sx, -((n-1) /2)sy)
Com distorção • Com introdução de distorção: x = xd(1+k1r2+k2r4) y = yd(1+k1r2+k2r4) sendo (xd,yd) as coordenadas dos pontos distorcidos e r2 = xd2+yd2. Veja que a distorção é um deslocamento radial dos pontos na imagem. Deslocamento é zero no centro da imagem, crescendo para as bordas
Parâmetros intrínsecos - resumo • f = distância focal (COMO ACHAR?) • (ox,oy) = localização do centro da imagem, coordenadas de pixel (COMO ACHAR?) • (sx,sy) = tamanho efetivo horizontal e vertical do pixel (COMO ACHAR?) • (k1,k2) = coeficientes de distorção, se forem requeridos (COMO ACHAR?) • k2 é geralmente ignorado (k1>>k2).
Parâmetros extrínsecos • O frame de câmera permite escrever equações de projeção perspectiva de uma forma simples, mas o sistema de câmera é geralmente desconhecido • Determinar a localização e orientação do frame de câmera em relação a algum frame de referência, usando apenas informação da imagem.
yc xim yim yw yo zc zo xc xw xo zw Parâmetros extrínsecos • Qualquer conjunto de parâmetros que permitem identificar unicamente a transformação entre o frame desconhecido de câmera e um frame conhecido, normalmente denominado frame de mundo.
Descrevendo a transformação • Vetor 3D de translação, T, que descreve as posições relativas das origens dos dois frames • Uma matriz 3x3, de rotação, R, a princípio ortogonal (RtR=RRt), desejado ortonormal, que traz os eixos correspondentes dos dois frames um no outro • Ortogonalidade reduz o número de graus de liberdade para 3
Rotação + translação yw Ry yc xim yim yw xw Rz Rx yo zc zo T zw xc xw xo zw
yc xim yim yw yo zc zo xc xw xo zw Notação • A relação entre as coordenadas de um ponto P em frame de mundo (Pw) e câmera (Pc) é dada por: Pc=R(Pw-T) r11 r12 r13 t1 R = r21 r22 r23 T = t2 r31 r32 r33 t3 Pc T P Pw
Parâmetros extrínsecos - resumo • T = vetor de translação • R = matriz de rotação (ou seus parâmetros livres) • Especificam a transformação entre o frame de câmera e o frame de mundo
Melhorando o modelo de câmera Pc=R(Pw-T) x = f (X/Z) x = -(xim-ox)sx y = f (Y/Z) y = -(yim-oy)sy -(xim-ox)sx = f [(R1t(Pw-T))/(R3t(Pw-T))] -(yim-oy)sy = f [(R2t(Pw-T))/(R3t(Pw-T))] • Ri , i=1,2,3 é um vetor 3D formado pela i-ésima coluna da matriz R. • Relacionar coordenadas de mundo às de imagem, usando parâmetros intrínsecos e extrínsecos
Reescrevendo como multiplicação de matrizes • Sejam as matrizes: -f/sx 0 ox Mint = 0 -f/sy oy 0 0 1 r11 r12 r13 -R1tT Mext = r21 r22 r23 -R2tT r31 r32 r33 -R3tT
Equação matricial • Mint depende apenas dos parâmetros internos e Mext apenas dos externos. • Negligenciando distorção radial e expressando Pw em coordenadas homogêneas: x1 Xw x2 = Mint Mext Yw x3 Zw 1 • x1/x3 e x2/x3 são as coord. de imagem xim e yim
Observação • Formalmente, as relação entre um ponto 3D e sua projeção 2D na imagem pode ser entendida como uma transformação linear do espaço projetivo (vetores [Xw, Yw, Zw,1]t) no plano projetivo (vetores [xC, yC, zC]t ). • Esta transformação é definida a menos de um fator de escala, assim M tem apenas 11 entradas independentes.
Câmera Perspectiva e Fraca Perspectiva • Mint transforma de câmera para imagem (parâmetros internos) • Mext transforma de mundo para câmera (parâmetros externos) • Os modelos de câmera podem ser definidos a partir das equações anteriores, bastando ajustar os parâmetros de forma correta, isto é, basta alterar a matriz M=Mint Mext
Modelo de câmera perspectiva • Assumindo, por simplicidade, que ox=oy = 0 e que sx=sy= 1, M pode ser re-escrita como: -fr11 -fr12 -fr13 fR1tT M = -fr21 -fr22 -fr23 fR2tT r31 r32 r33 R3tT • Sem restrições, M descreve o modelo perspectivo completo, sendo chamada de matriz de projeção
Modelo com perspectiva fraca • Observe que imagem p de P é dada por: Xw fR1t(T-P) p = M Yw = fR2t (T-P) ZwR3t (P-T) 1 • Mas |R3t(P-T) | é a distância de P ao centro de projeção ao longo do eixo ótico.
Modelo com perspectiva fraca • Então, a equação que aproxima a perspectiva fraca pode ser escrita como: |[R3t(Pi-P´)]/[R3t(P´-T) ]|<< 1 • onde Pi (i=1,2) são pontos no espaço e P´ é o centróide deles yc xim yim yw P1 T zc yo P’ zo xc xw zw xo P2 P’-T
Modelo com perspectiva fraca • Pode-se re-escrever a equação anterior: fR1t(T-Pi) pi fR2t (T-Pi) R3t (P´-T) • A matriz de projeção se torna: -fr11 -fr12 -fr13 fR1tT Mwp = -fr21 -fr22 -fr23 fR2tT 000R3t (P´-T)
O problema de calibração • Estabelecer equações lineares no parâmetro posição de um objeto (coordenadas de mundo) que deve ser determinado numa dada cena • Coeficientes das equações são funções específicas da posição (conhecida) da projeção do objeto no plano imagem, da geometria da câmera (intrínsecos) e de sua ótica
Equacionando o problema de calibração • Encontrar os parâmetros anteriores significa encontrar os coeficientes de equações lineares, dadas certas posições de objetos na cena em coordenadas de mundo e suas respectivas posições na imagem. • Assumimos uma transformação de corpo rígido (translação mais rotação e projeção):
Equacionando o problema de calibração • Ou ainda, entendendo que a translação T e a rotação R podem ser juntadas numa única matriz: • A partir dos parâmetros das transformações, pode-se determinar todos os parâmetros intrínsecos e extrínsecos, bem como o inverso também vale. Ou apenas um deles!
Resolvendo o problema • Determinar um certo número de pontos na cena de coordenadas conhecidas • Determinar suas projeções nas imagens (coordenadas de imagens conhecidas) • Resolver as equações, encontrando os parâmetros procurados, geralmente usando mínimos quadrados ou outro método de otimização
Importância • Reconhecimento e reconstrução 3D com conhecimento da geometria real do objeto pode ser muito mais eficiente • Permite a localização absoluta de sistemas em relação a um frame de mundo, somente a partir de imagens de objetos na cena
Uma forma simples de entender • Seja (xi , yi , zi) a posição inicial de um ponto pi numa cena em coordenadas de mundo. • Após aplicar uma rotação R e uma translação T no ponto para referenciá-lo ao sistema de coordenadas da câmera temos a posição dada em coordenadas de câmera por .
Uma forma simples de entender • É feita então uma projeção do ponto no plano imagem, resultando nas coordenadas de imagem (Xi, Yi). • O conjunto de equações a seguir representa as transformações, sendo que em (1) considera-se a rotação e translação como uma transformação homogênea e em (2) elas são separadas.
Derivando as equações (1) (2)
Derivando as equações = 13 parâmetros
Impondo restrições • A matriz R representa uma transformação de rotação e isto permite estabelecer a restrição de que sua inversa seja igual a sua transposta ou (ortonormalidade). • e
Restrições de ortonormalidade e Ou ainda: Duas linhas são vetores unitários, ortogonais uma à outra, enquanto que a restante é o produto cruzado destas duas (válido também para as colunas).
Métodos de Calibração • Church and Ganapathy • Dana Ballard (Computer Vision) • Trucco (método direto) • Roger Tsai • Próxima aula
Church and Ganapathy • Assume pontos co-planares com coordenadas de mundo e de imagem conhecidas • Permite eliminar parâmetros em z • Considera distância focal em 1 (sem perda de generalidade)
Church and Ganapathy • Assumindo f conhecido, ou seja, arbitrando f = 1, pode-se re-escrever as equações
Church and Ganapathy • Se os pontos são co-planares, pode-se assumir que estão num plano genérico z=0 , eliminando então as coordenadas z e consequentemente os parâmetros R13, R23 e R33:
Church and Ganapathy • Novas restrições para a matriz de rotação: • Usa-se um modelo de minimização de erros, sendo derivado um sistema de equações e calculados os parâmetros reduzidos.
Church and Ganapathy • Os parâmetros restantes, ainda não determinados, são obtidos por:
Modelo do livro do Dana Ballard(Transpõe Matriz) • Considere uma matriz C4x3 mapeando pontos 3D de mundo em pontos 2D de imagem • Sejam U e V as coordenadas de imagem de um ponto; um ponto no plano imagem é dado em coordenadas homogêneas por (u,v,t). Então: U = u/t e V = v/t, ou seja: Ut - u = 0 e Vt - v = 0 ou u-Ut = 0 e v-Vt = 0
Ballard • Para transformar um ponto de mundo: (x,y,z,1)C = (u,v,t) • Em notação inversa, sendo Cj colunas de C: u = (x,y,z,1)C1 v = (x,y,z,1)C2 t = (x,y,z,1)C3 • Pode-se expandir esses produtos internos (Cij) e re-escrever u-Ut=0 e v-Vt=0 como: xC11+yC21+zC31+C41-UxC13 -UyC23 -UzC33 -UC43= 0 xC12+yC22+zC32+C42-VxC13 -VyC23 -VzC33 -VC43= 0
Ballard • Forma homogênea elimina fator de escala em C (C43=1). • Então: xC11+yC21+zC31+C41-UxC13 -UyC23 -UzC33 = U xC12+yC22+zC32+C42-VxC13 -VyC23 -VzC33 = V • Daqui é possível montar um sistema de equações
Ballard C11 Em forma matricial: C21 C31 x1 y1 z1 1 0 0 0 0 -U1x1 -U1y1 -U1z1 C41 U1 0 0 0 0 x1 y1 z1 1 -V1x1 -V1y1 -V1z1 C12 V1 C22 = x2 y2 z2 1 0 0 0 0 -U2x2 -U2y2 -U2z2 C32 Un 0 0 0 0 xn yn zn 1 -Vnxn -Vnyn -Vnzn C42 Vn C13 C23 C33
Número de pontos necessários • Cada ponto (x,y,z) associado ao seu ponto (U,V) resulta em duas equações • São 11 equações para achar uma solução • Se mais que 5,5 pontos são usados, então uma solução usando método dos mínimos quadrados ou outro modelo de regressão polinomial pode ser usado (pseudo-inversa)!
Método direto (livro do Trucco) • Considere um ponto P no mundo (3D) definido pelas suas coordenadas (Xw,Yw,Zw) • Supomos o frame de mundo conhecido • Sejam (Xc,Yc,Zc) as coordenadas de câmera do ponto P (com Zc>0, para ser visível); • Origem do frame de câmera é o centro de projeção e o seu eixo Z é o eixo ótico. • Posição e orientação do frame de câmera são desconhecidas, ou seja, procura-se parâmetros extrínsecos: T (3x1)e R (3x3)
Método direto (Xc,Yc,Zc)t= R(Xw,Yw,Zw)t + T • Em forma de componentes: Xc = r11Xw+r12Yw+r13Zw+Tx Yc = r21Xw+r22Yw+r23Zw+Ty Zc = r31Xw+r32Yw+r33Zw+Tz • Negligenciando distorções radiais: xim = -(f/sx)(Xc/Zc) + ox yim = -(f/sy)(Yc/Zc) + oy
Método direto • Sem confusão, seja x = xime y = yim • As equações anteriores dependem dos 5 parâmetros internos, não independentes entre si: f, sx, sy, ox e oy. • Seja fx= f /sx e = sy/sx, novos parâmetros independentes entre si: fx, , ox e oy • fxé a distância focal em pixels horizontal • é a razão de aspecto, ou a deformação introduzida pelo sistema de aquisição
Método direto • Estamos procurando • Parâmetros intrínsecos: • ox(origem em x); • oy(origem em y); • fx= f /sx (comprimento em unidades do tamanho de pixel horizontal) • = sy/sx(razão de aspecto) • K1 = coeficiente de distorção radial • Parâmetros extrínsecos: R e T