Transcript
Page 1: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Visão ComputacionalCalibração de Câmeras

http://www.dca.ufrn.br/~lmarcos/courses/visao

Page 2: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

xo

zoyo

yc

xc

zc

xwzw

ywyim

xim

Page 3: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

xo

zoyo

yc

xc

zc

xwzw

ywyim

xim

Page 4: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 5: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

xo

zoyo

yc

xc

zc

xwzw

ywyim

xim

Page 6: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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.

Page 7: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

De pixels para câmera

Z

Y

X

xim

yim

(m-1,n-1)

(0,0)

(0,0,f)

(0,0,0)

(m-1) / 2

(n-1) / 2x = -(xim-ox)sx

y = -(yim-oy)sy

(0,0) -> (((m-1)/2)sx , (n-1)/2)sy)

(m-1,n-1) -> (-((m-1)/2)sx, -((n-1) /2)sy)

((m-1)/2,(n-1)/2) -> ((0)sx,(0)sy)

Imagem Camera

Page 8: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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 = xd

2+yd2. Veja que a

distorção é um deslocamento radial dos pontos na imagem. Deslocamento é zero no centro da imagem, crescendo para as bordas

Page 9: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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).

Page 10: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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.

Page 11: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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.

xo

zoyo

yc

xc

zc

xwzw

ywyim

xim

Page 12: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 13: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Rotação + translação

xo

zo

yo

yc

xc

zc

xw

zw

yw

yimxim

T

xw

yw

zw

RxRz

Ry

Page 14: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

xo

zoyo

yc

xc

zc

xwzw

ywyim

xim

TP

Pc

Pw

Page 15: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 16: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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))/(R3

t(Pw-T))]

-(yim-oy)sy = f [(R2t(Pw-T))/(R3

t(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

Page 17: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 18: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 19: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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.

Page 20: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 21: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 22: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Modelo com perspectiva fraca

• Observe que imagem p de P é dada por:

Xw fR1t(T-P)

p = M Yw = fR2t (T-P)

Zw R3t (P-T)

1

• Mas | R3t (P-T) | é a distância de P ao centro

de projeção ao longo do eixo ótico.

Page 23: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Modelo com perspectiva fraca

• Então, a equação que aproxima a perspectiva fraca pode ser escrita como:

|[R3t(Pi-P´)]/[R3

t(P´-T) ]|<< 1

• onde Pi (i=1,2) são pontos no espaço e P´ é

o centróide deles

xo

zoyo

yc

xc

zc

xwzw

ywyim

xim

TP1

P2

P’

P’-T

Page 24: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

0 0 0 R3t (P´-T)

Page 25: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 26: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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):

(xi , yi , zi) R ~,~,~x y zi i i T ( , , ) x yzi i i P (Xi Yi)

Page 27: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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!

(xi , yi , zi) RT ( , , ) x y zi i i P (Xi ,Yi)

Page 28: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 29: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 30: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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 .( , , ) x y zi i i

(xi , yi , zi) RT ( , , ) x y zi i i P (Xi ,Yi)

Page 31: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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.

Page 32: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Derivando as equações

x y z

R R R D

R R R D

R R R D

x

y

zi i i

i

i

i, , ,1

0 0 0 1 1

11 12 13 1

21 22 23 2

31 32 33 3(1)

x y z

R R R

R R R

R R R

x

y

z

D

D

Di i i

i

i

i

, ,11 12 13

21 22 23

31 32 33

1

2

3

(2)

Page 33: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Derivando as equações

X fx

zf

y

zi ii

i

i

i,Y ,

X fR x R y R z D

R x R y R z Dii i i

i i i

11 12 13 1

31 32 33 3

Y fR x R y R z D

R x R y R z Dii i i

i i i

21 22 23 2

31 32 33 3

13 parâmetros

=

Page 34: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

R Rt 1

R R R

R R R

R R R

112

122

132

212

222

232

312

322

332

1

1

1

R R R R R R

R R R R R R

R R R R R R

11 21 12 22 13 23

11 31 12 32 13 33

21 31 22 32 23 33

0

0

0

Page 35: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de ortonormalidade

R R R

R R R

R R R

112

212

312

122

222

322

132

232

332

1

1

1

R R R R R R

R R R R R R

R R R R R R

11 12 21 22 31 32

11 13 21 23 31 33

12 13 22 23 32 33

0

0

0

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).

Page 36: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Métodos de Calibração

• Church and Ganapathy

• Dana Ballard (Computer Vision)

• Trucco (método direto)

• Roger Tsai

• Próxima aula

Page 37: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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)

Page 38: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Church and Ganapathy

• Assumindo f conhecido, ou seja, arbitrando f = 1, pode-se re-escrever as equações

X Yx

z

y

z

XR x R y R z T

R x R y R z T

YR x R y R z T

R x R y R z T

i ii

i

i

i

ii i i

i i i

ii i i

i i i

, ,

11 12 13 1

31 32 33 3

21 22 23 2

31 32 33 3

Page 39: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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:

XR x R y T

R x R y T

YR x R y T

R x R y T

ii i

i i

ii i

i i

11 12 1

31 32 3

21 22 2

31 32 3

X Yx

z

y

z

XR x R y R z T

R x R y R z T

YR x R y R z T

R x R y R z T

i ii

i

i

i

ii i i

i i i

ii i i

i i i

, ,

11 12 13 1

31 32 33 3

21 22 23 2

31 32 33 3

Page 40: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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.

R R R R R R

R R R R R R

R R R

112

212

312

122

222

322

11 12 21 22 31 32

112

212

312

0

1

Page 41: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Church and Ganapathy

• Os parâmetros restantes, ainda não determinados, são obtidos por:

R R R R R

R R R R R

R R R R R

13 21 32 22 31

23 12 31 11 32

33 11 22 12 21

Page 42: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Modelo do livro do Dana Ballard(Transpõe Matriz)

• Considere uma matriz C 4x3 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

Page 43: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 44: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 45: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 46: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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)!

Page 47: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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)

Page 48: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 49: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método direto• Sem confusão, seja x = xim e 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

Page 50: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

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

Page 51: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método direto• Substituindo equações (Xc,Yc,Zc)t nas de projeção:

x-ox=-fx[(r11Xw+r12Yw+r13Zw+Tx)/(r31Xw+r32Yw+r33Zw+Tz)]

y-oy=-fy[(r21Xw+r22Yw+r23Zw+Ty)/(r31Xw+r32Yw+r33Zw+Tz)]

• Método reverte-se em: dado um certo número de pontos conhecidos e suas imagens, tentar determinar os parâmetros acima

• Articulado em duas partes: – (1) assumir ox e oy conhecidos, determinar o restante

– (2) encontrar as coordenadas do centro da imagem

Xc = r11Xw+r12Yw+r13Zw+Tx

Yc = r21Xw+r22Yw+r23Zw+Ty

Zc = r31Xw+r32Yw+r33Zw+Tz

Obs:x = -(f/sx)(Xc/Zc) + oxy = -(f/sy)(Yc/Zc) + oy

Obs:

Page 52: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Assunções

• Assume-se que o centro da imagem é conhecido: (x,y) = (x-ox, y-oy)

• Centro da imagem é a origem do frame de referência

• Achar pontos correspondentes suficientes no mundo e na imagem

Page 53: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método direto (1)

• 1) Assuma ox e oy conhecidos, negligencia distorção, estima fx, , R e T a partir de coordenadas de pontos de mundo (Xiw,Yiw, Ziw) e de imagem (xi, yi). As equações anteriores tem mesmo denominador, então cada par de pontos dá uma equação da forma:xify(r21Xiw+r22Yiw+r23Ziw+Ty) = yifx(r11Xiw+r12Yiw+r13Ziw+Tx)

ou

xi(r21Xiw+r22Yiw+r23Ziw+Ty)=yi( fx/fy) (r11Xiw+r12Yiw+r13Ziw+Tx)

x-ox=-fx[(r11Xw+r12Yw+r13Zw+Tx)/(r31Xw+r32Yw+r33Zw+Tz)]y-oy=-fy[(r21Xw+r22Yw+r23Zw+Ty)/(r31Xw+r32Yw+r33Zw+Tz)]

Page 54: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método direto• Como = fx/fy é linear, pode-se escrever:

xiXwiv1+xiYwiv2+xiZwiv3+xiv4-yiXwiv5-yiYwiv6-yiZwiv7+yiv8=0

onde v1= r21; v2= r22 ; v3= r23 ; v4= Ty;

v5= r11; v6= r12 ; v7= r13 ; v8= Tx

• Pode-se escrever como Av=0, com A sendo:

x1Xw1 x1Yw1 x1Zw1 x1 -y1Xw1 -y1Yw1 -y1Zw1 -y1

A=

xnXwn xnYwn xnZwn xn -ynXwn -ynYwn -ynZwn -yn

xi(r21Xiw+r22Yiw+r23Ziw+Ty)=yi( fx/fy) (r11Xiw+r12Yiw+r13Ziw+Tx)

Page 55: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método direto

• Se N>=7 e os pontos não são complanares, então o sistema tem uma solução não trivial, única a menos de um fator de escala

• Pode ser determinada pela SVD de A como: A = UDV, como sendo a coluna de V

correspondente ao único valor singular nulo ao longo da diagonal de D (veja SVD).

• (pode ser obtida pelos mínimos quadrados)

Page 56: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método direto

• Determinar então o fator de escala e os parâmetros de câmera. Seja este fator.

• Então: v´= (r21,r22 ,r23,Ty,r11,r12, r13,Tx) é a solução procurada.

• Uma vez que r221 +r2

22 r223=1, obtém-se:

( v’21 +v’2

2 v’23)1/2= [2(r2

21 +r222 r2

23)]1/2 =||

• Sendo r211 +r2

12 + r213=1 e >0, obtém-se:

Page 57: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método direto

• ( v’25+v’2

6+v’27)1/2=( 22(r2

11+r212+r2

13))1/2 = ||

• Basta resolver ambas equações para encontrar || e

• Assim, as primeiras colunas de R e o vetor T podem ser determinados

• A terceira coluna de R pode ser obtida pelo produto cruzado das duas anteriores

Page 58: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Tsai

• Tsai's camera model is based on the pin hole model of perspective projection.

• Given the position of a point in 3D world coordinates the model predicts the position of the point's image in 2D pixel coordinates.

• Tsai's model has 11 parameters: five intrinsics and six extrinsics

Page 59: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Parâmetros internos

• f - Focal length of camera,• k - Radial lens distortion coefficient,• Cx, Cy - Co-ordinates of centre of radial

lens distortion,• Sx - Scale factor to account for any

uncertainty due to imperfections in hardware timing for scanning and digitisation,

Page 60: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Parâmetros externos

• Rx, Ry, Rz - Rotation angles for the transformation between the world and camera co-ordinates,

• Tx, Ty, Tz - Translation components for the transformation between the world and camera co-ordinates.

Page 61: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Tsai

Page 62: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Tsai

• The transformation from world (Xw,Yw,Zw) to image (Xi,Yi,Zi) co-ordinates considers the extrinsic parameters of the camera (Translation T and Rotation R) within the equation:

Page 63: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Tsai

• where R and T characterize the 3D transformation from the world to the camera co-ordinate system and are defined as follows:

Page 64: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Tsai

Page 65: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Tsai

• 1) Transformation from 3D world co-ordinates (Xi,Yi) to undistorted image plane (Xu,Yu) co-ordinates:

Page 66: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Tsai

• 2) Transformation from undistorted (Xu,Yu) to distorted (Xd,Yd) image co-ordinates:

• with and k is the lens distortion coefficient

Page 67: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Tsai

• 3) Transformation from distorted co-ordinates in image plane (Xd,Yd) to the final image co-ordinates (Xf,Yf) are:

• and

• with (dx,dy): distance between adjacent pixels the X and Y direction (fixed camera parameters). (Xf,Yf) are the final pixel position in the image.

Page 68: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Métodos de Calibração

• Médodo de Fischler-Bolles

• Grosky e Tamburino

• Kumar e Hanson

• Próxima aula

Page 69: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de FISCHLER-BOLLES

• Ao invés de procurarem R e T diretamente, procuram as distâncias entre os pontos transformados e a origem:

O’

z

x p’3

b y a

p’1

c p’2

p Rp Ti i

Page 70: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de FISCHLER-BOLLES

• As distâncias x, y e z são funções dos pontos transformados, nos quais estarão inseridos os parâmetros de transformação, podendo estes serem determinados a partir da determinação das distâncias.

Page 71: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de FISCHLER-BOLLES

• Baseando-se na figura 3 e aplicando a lei dos cosenos, pode-se estabelecer as seguintes equações:

02

02

02

222

222

222

adyzzy

bexzzx

cfxyyx

d e f cos , cos , cos

xy

z

cab

O

p’2

p’1

p’3

Page 72: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de FISCHLER-BOLLES• Usando as duas últimas equações, por substituição,

pode-se eliminar o termo z, chegando-se a uma equação quártica. Usando então esta equação mais a primeira, elimina o termo y, resultando numa equação de grau oito em x, do tipo

sendo e

onde g é um polinômio em a, b, c, d, e e f.

k x k x k x k x k48

36

24

12

0 0 k def d e f4

8 2 2 21 2 ( )

k def d e f g38 2 21 2 ( )

Page 73: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de FISCHLER-BOLLES

• A resolução da equação pode ser conseguida no termo x2 (é uma quártica em x2) e então encontrados os outros termos por substituição nas equações originais.

• Então, a partir da determinação das distâncias, podem ser determinados os parâmetros das transformações.

Page 74: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Grosky e Tamburino

• Base: transformações homogêneas (trata em conjunto rotação e translação)

yi

xi

zi

Page 75: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Grosky e Tamburino

• Considerando a translação com sinal negativo, um ponto de imagem em coordenadas homogêneas pode ser obtido a partir de um ponto objeto também em coordenadas homogêneas por:

(1)

x y z x y z

R R R

R R R

R R R

D D D

i i i i i i, , , , , ,1 1

0

0

0

1

11 12 13

21 22 23

31 32 33

1 2 3

Page 76: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Grosky e Tamburino

• Sendo , e direções de rotação na figura, os parâmetros de rotação são dados por: R

RRRRRRRR

11

12

13

21

22

23

31

32

11

cos cos sin sin sincos sin sin sin cos

sin coscos sincos cos

sinsin cos cos sin sin

sin sin cos sin coscos cos

xi

yi

zi

Page 77: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Grosky e Tamburino

• Sendo xF, yF e zF as coordenadas da origem do sistema de coordenadas de câmera em coordenadas de mundo, temos os parametros de translação dados por:

D x R y R z RD x R y R z RD x R y R z R

F F F

F F F

F F F

1 11 21 31

2 12 22 32

3 13 23 33

Page 78: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Grosky e Tamburino

• Seja a matriz homogênea , as coordenadas de câmera , as coordenadas de mundo , pode-se reescrever a equação (1):

(2)• Das equações de projeção, um ponto na imagem

pode ser escrito (centro da imagem como origem do sistema de imagem), como:

(3)

T Tij C x y zi i i , , ,1

W x y zi i i , , ,1

C WTj i ij

, ,x y fx

zf

y

zi ii

i

i

i

x y z x y z

R R R

R R R

R R R

D D D

i i i i i i, , , , , ,1 1

0

0

0

1

11 12 13

21 22 23

31 32 33

1 2 3

Page 79: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Grosky e Tamburino

• A equação que permite passar de coordenadas convencionais (xi,yi), no sistema intermediário 2D, a píxels (Xi,Yi), que são as coordenadas naturais de imagem (em forma matricial), sem levar em consideração outras correções mais acuradas, pode ser dada por: X Y x p x w y senw y p x senv y vi i x i i y i i, cos , cos 0 0

(y0 ,y0)

Y

X(xi, yi)

(Xi, Yi)

Page 80: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Grosky e Tamburino

• Sendo Px=pxf, Py=pyf fatores de escala, a11=cosw, a12=senw, a21=senv, a22=cosv, a equação anterior é reescrita da seguinte forma:

• Usando (3), a equação anterior fica:

X Y x Pa x a y

fy P

a x a y

fi i xi i

yi i,

,

0

11 120

21 22

X Y x Pa x a y

zy P

a x a y

zi i xi i

iy

i i

i

, ,

0

11 120

21 22

, ,x y fx

zf

y

zi ii

i

i

i

(3)

Page 81: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Método de Grosky e Tamburino

• Expandindo e usando as equações de (2), a equação anterior é expressa com 20 parâmetros, determinados por:

que pode ser abreviado:

W T X x P a T a T

W T Y Y P a T a T

i i i x i i

i i i y i i

3 0 11 1 12 2

3 0 21 1 22 2

0

0

X W T X W

YW T Y W

i i i i i

i i i i i

3

3

0

0

*

*

C WTj i ij (2)

Page 82: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Kumar e Hanson

• Dadas as correspondências entre linhas ou pontos em uma cena (3D) e linhas ou pontos numa imagem (2D), o objetivo é encontrar as matrizes de rotação e de translação que mapeiam coordenadas no sistema de mundo para o sistema de câmera.

• Parâmetros extrínsecos.

Page 83: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para pontos• Dado um ponto p numa cena (em coordenadas de

mundo) e seu correspondente pc numa imagem (em coordenadas de câmera), pode-se representar uma transformação entre os sistemas de coordenadas por uma translação e uma rotação, dada por:

(1)

o vetor de translação representa a localização da origem do sistema de coordenadas de mundo representada no sistema de coordenadas de câmera.

p Rp Tc

Page 84: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para pontos• A inversa desta transformação pode ser

reescrita para mapear pontos do sistema de coordenadas de câmera para o sistema de mundo como:

(2)

sendo Rt a transposta do operador de rotação (R-

1 = R t) e Tw representa a localização da origem do sistema de coordenadas de câmera em coordenadas de mundo.

p R p R T R p Ttc

t tc w

Page 85: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para pontos

xw

yc N

zw

b B

yw zc

xc a

A

Page 86: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para pontos

• Na figura anterior, a linha AB na cena 3D é projetada na linha ab na imagem, representada pelos píxels a e b. As equações que relacionam um píxel P na imagem e suas coordenadas em um sistema de câmera são dadas por:

(3)

sendo sx e sy fatores de escala ao longo das direções X e Y, respectivamente

X sx

ze Y s

y

zxc

cy

c

c

Page 87: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para pontos

• Com base nas equações (1) e (3), as equações de restrição para pontos podem ser formuladas, sendo as mesma equações anteriores, mas escritas de uma forma diferente da encontrada na literatura:

(4)

p Rp Tc

X s

Rp T

Rp Te Y s

Rp T

Rp Txx

z

y

y

z

X sx

ze Y s

y

zxc

cy

c

c

Page 88: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para pontos

• Juntando as restrições de ortonormalidade a estas restrições, pode-se usar o método dos mínimos quadrados para encontrar uma solução para R e T.

Page 89: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para linhas• Considerando que haja definida na imagem uma

linha reta (ab), sua equação pode ser estabelecida nos parâmetros (ângulo com um dos eixos) e (um deslocamento constante) como:

• Substituindo X e Y dados pela equação (3) a equação anterior fica:

(5)

X Ycos sin

s x s y z

zx c y c c

c

cos sin 0

Page 90: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para linhas• Esta é a equação de um plano de projeção

definido pela reta ab na imagem e pela origem (centro da câmera). A normal a este plano é dada por:

(6)• Usando as equações (1) e (6), pode-se

encontrar a equação de restrição básica para linhas, reescrevendo a equação (5) como:

N s sx y cos , sin ,

N Rp TRp T z

( ) 0

Page 91: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para linhas• A distância perpendicular de um ponto ao plano de

projeção dado pela equação (5) é dada por N´(Rp+t)=0, onde N´ é o vetor unitário de N. Considerando que um ponto esteja exatamente no plano de projeção dado pela equação (5), neste caso com a distância do ponto a este plano igual a zero, pode-se formular de uma forma mais simplificada a seguinte equação de restrição básica.

N Rp T 0

Page 92: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Restrições de posição para linhas

• Ambas equações relacionam os parâmetros de rotação e translação. Para separar rotação subtrai-se a equação anterior em dois pontos na reta, obtendo-se a equação com parâmetros de rotação apenas:

sendo d´ o vetor unitário definidor da direção p1p2. Juntando as outras restrições de ortonormalidade, pode-se usar o método dos mínimos quadrados para encontrar uma solução para R e T.

NR p p NRd1 2 0

Page 93: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Generalidades

• As diversas soluções para o problema utilizam-se de equações e formas adotadas em geometria (incluindo técnicas de Visão Computacional e Fotogrametria), obtendo-se medidas ou estabelecendo-se relações entre objetos na cena e sua imagem correspondente, desde que a obtenção das imagens tenha sido feita de modo controlado.

Page 94: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Generalidades

• O problema de calibração de câmera é típico de visão computacional, muito abordado nas duas últimas décadas.

• Em síntese, refere-se à determinação dos parâmetros intrínsecos e extrínsecos de câmeras, a partir pontos conhecidos e de suas imagens e é um pré-processamento para as diversas aplicações de visão computacional e visão robótica.

Page 95: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Generalidades

• Note que o método dos mínimos quadrados é sugerido como ferramenta para resolução do sistema sobre-determinado, dado pela formulação do problema de calibração, ou seja, têm-se mais equações (pontos conhecidos nas imagens) do que incógnitas.

Page 96: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Generalidades

• Uma vez resolvido o problema de calibração e determinados os parâmetros das equações, pode-se usar estes por exemplo para localização de um robô em um determinado ambiente ou para determinação da posição 3D de um dado objeto cujo modelo é conhecido, a partir de sua projeção (2D) nas imagens.

Page 97: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Dever de casa (para dia 06/10)• Determinar os parâmetros intrínsecos e

extrínsecos das câmeras (calibração). Para os parâmetros extrínsecos, considere um padrão colocado a uma distância fixa da câmera, cuja posição e orientação em relação à câmera deverá ser mantida em todo o experimento. Para isso, pontos fácil de localizar na imagem devem ter suas coordenadas determinadas tanto no frame de mundo quanto no de imagem. Arbitre a origem do frame de imagem e de mundo.

• Cada grupo, usar Tsai e métodos diferentes.

Page 98: Visão Computacional Calibração de Câmeras lmarcos/courses/visao

Projeto Final de Visão Computacional

• Construir o sistema de Visão Estéreo de Galatéia– Pesquisar na literatura ourtros sistemas similares e

especificar formalmente o problema, resultando num projeto com objetivos e metas, metodologias, atividades, UML em alto nível, justificativas, etc (tudo num relatório). Ao todo umas 20 páginas.

– Projetar o sistema, detalhando cada módulo (fazer UML detalhando os subsistemas)

– Implementar cada módulo do Sistema de Visão– Realizar experimentos (tarefas de atenção visual e

reconhecimento deverão ser realizadas pelo sistema)