1 Calibrac¸ao de C˜ amerasˆ - webserver2.tecgraf.puc-rio.brmgattass/ra/trb06/Algemiro/... · de...
Transcript of 1 Calibrac¸ao de C˜ amerasˆ - webserver2.tecgraf.puc-rio.brmgattass/ra/trb06/Algemiro/... · de...
1
Calibracao de Cameras
ALGEMIRO A. S. NETO
Pontifıcia Universidade Catolica do Rio de Janeiro
Abstract
Este trabalho aborda o problema de calibracao de cameras apresentando uma breve descricao teorica e uma
implementacao para o mesmo com base na biblioteca desenvolvida por Flavio Szenberg, ”Juiz Virtual”. O metodo
para calibracao de cameras implementado foi o Tsai2D e para ilustrar o resultado da calibracao foi inserido um
objeto virtual sobre o modelo utilizado como referencia no mundo real. Para validar os resultados foram recuperados
parametros de cameras conhecidas. Sao apresentados alguns resultados praticos utilizando imagens sinteticas e reais
capturadas com uma camera Sonny P200 Cyber-shot 7.2 Mega pixels e uma Cannon Rebel.
2
I. INTRODUCAO
O interesse por metodos de processamento digital de imagens vem principalmente de duas impor-
tantes areas de aplicacao: aprimoramento da informacao percebida por um ser humano (melhoramento)
e interpretacao de cenas por maquinas autonomas (percepcao). Por outro lado, pesquisas em computacao
grafica tem como grande impulsionador principalmente aplicacoes na industria do entretenimento. Re-
centemente, o desenvolvimento de hardware permitiu a implementacao de ideias que permitem a fusao
de tecnicas das duas areas: computacao grafica e processamento de imagens, em uma nova area que
convencionou-se chamar de Realidade Aumentada.
Realidade Aumentada (RA) e a aplicacao de tecnicas de CG em ambientes reais, capturados com
cameras digitais com o objetivo de aumentar as informacoes das imagens reais. RA pode ser considerada
tambem como a tecnologia entre a Realidade Virtual (RV) e a telepresenca. Enquanto na RV o ambiente
e completamente sintetico e na telepresenca ele e completamente real, na RA o usuario ve o mundo real
“ aumentado” com objetos virtuais.
Sistemas RA podem tirar vantagens de displays HMD (Head-Mounted-Displays), sensores de posicao
3D (3D pointers), cameras digitais e os tradicionais displays bidimensionais para mostrar o resultado
mixado. A ideia de superpor imagens sinteticas geradas por computador em imagens reais visualizadas
pelo usuario tem sido explorada enormenmente nos dias de hoje.
Entre diversas aplicacoes, a deteccao de linhas com o objetivo de calibracao de cameras para projecao
de objetos virtuais sobre cenas reais esta entre os maiores e mais importantes desafios. Neste trabalho,
apresentamos uma tecnica desenvolvida por [2] para recuperar, em tempo real e sem utilizar qualquer
informacao adicional, a posicao e os parametros da camera em uma sequencia de imagens contendo a
visualizacao de modelos conhecidos. Para tal, e explorada a existencia, nessas imagens, de segmentos de
retas que compoem a visualizacao do modelo cujas posicoes sao conhecidas no mundo tridimensional.
Quando se trata de uma partida de futebol, por exemplo, o modelo em questao e composto pelo conjunto
das linhas do campo, segundo as regras que definem sua geometria e dimensoes.
3
O restante deste trabalho esta dividido da seguinte maneira: Na Secao 2 e apresentado o modelo de
camera considerado neste trabalho, na Secao 3 sao abordadas as transformacoes de camera envolvendo
mudance. referencial e projecao perspectiva. Na Secao 4 e definido o problema de calibracao de camera e
o Metodo utilizado neste trabalho para resolve-lo. A Secao 5 descreve as etapas no desenvolvimento de
um sistema para calibracao de cameras e na Secao 6 sao apresentados os resultados obtidos.
4
II. MODELO DE CAMERA
Neste trabalho a deformacao radial causada pelas lentes nao foi considerada. O Modelo de camera
considerado foi o modelo pinhole (Figura 1). Tal modelo e baseado nos raios que partem do objeto no
mundo real, atravessam um orifıcio e sao projetados em um anteparo formando uma imagem invertida.
Fig. 1. Modelo original de camera ”pinhole”. (Figura extraıda de [1]).
Em computacao grafica, este modelo e modificado, como mostra a Figura 2. Neste modelo, a imagem
Fig. 2. Modelo de camera ”pinhole” modificado. (Figura extraıda de [2])
5
projetada passa a se formar entre o objeto tridimensional e o centro de projecao O, tambem chamado
de Centro da Camera. O plano onde a imagem e formada, chamado aqui de Plano da imagem projetada,
fica a uma distancia da camera chamada de distancia focal, denotada por f . A linha que parte de O e
e perpendicular ao plano da imagem e o eixo optico. O centro da imagem C, e a interseccao entre o
eixo optico e o plano da imagem. O ponto p, imagem de P , e o ponto no qual a linha reta entre O e
P intercepta o plano da imagem. A Figura 2 define um sistema de coordenadas tridimensional OXY Z,
com a origem no centro optico da camera, o eixo Z perpendicular ao plano de projecao onde a imagem e
formada e os eixos X e Y paralelos aos lados da imagem. A projecao desse sistema no plano da imagem
induz um sistema de coordenadas Cuv nesse plano.
Com relacao a esses sistemas de coordenadas, a projecao perspectiva de um ponto P = (X, Y, Z) do
espaco no sistema de coordenadas OXY Z e dada por:
(u, v) = (fX
Z, f
Y
Z) (1)
onde
(u, v) = (u− u0, v − v0) (2)
e
C = (u0, v0) (3)
Essa equacao e facilmente formulada por semelhanca de triangulos sobre o modelo apresentado na
Figura 2 e sera usada mais adiante em projecoes nesse modelo.
6
III. TRANSFORMACAO DE CAMERA
Considerando o Modelo de Camera apresentado na Secao anterior, podem ser especificados quatro
sistemas de coordenadas:
• Sistema de Coordenadas do Mundo (SCM)
• Sistema de Coordenadas da Camera (SCC)
• Sistema de Coordenadas da Imagem (SCI)
• Sistema de Coordenadas em Pixels (SCP)
Geralmente um ponto P no espao nao e descrito no sistema de coordenadas OXY Z (SCC), e sim no
sistema oxyz (SCM). Sendo assim, para utilizar a equacao 1 para um ponto P no sistema oxyz, deve-se
efetuar uma transformacao que mapeie este ponto para o SCC. Tal transformacao e dada pela composicao
de uma rotacao que alinhe os eixos e uma translacao que iguale as origens. A Matriz 3×4 abaixo descreve
esta transformacao:
[R|T ] =
r1x r1y r1z tx
r2x r2y r2z ty
r3x r3y r3z tx
(4)
onde r1, r2 e r3 definem a direcao e inclinacao da camera formando uma base ortonormal e o ponto
T = (tx, ty, tz) representa a origem do sistema oxyz escrita em coordenadas do sistema da camera.
Combinando as equacoes 1 e 2 temos a projecao, no plano da imagem (SCI), de um ponto no sistema de
coordenadas do mundo.
7
us
vs
s
fr1x fr1y fr1z ftx
fr2x fr2y fr2z fty
r3x r3y r3z tx
x
y
z
1
(5)
8
IV. CALIBRACAO DE CAMERA
Consiste em escrever as equacoes de projecao (rotacao e translacao) de um referencial conhecido no
mundo real, em relacao a um referencial da camera (parametros extrınsecos), e com isto determinar
os parametros da camera (parametros intrınsecos). Isto e importante para que se possa desenvolver,
posteriormente, aplicacoes com esta camera que dependem do conhecimento preciso de seus parametros
intrınsecos. Nem todas as aplicacoes necessitam de calibracao da camera, casos onde a precisao nao e
fator primordial podem exemplificar esta questao, como, por exemplo, a navegacao robotica, onde se
deseja somente identificar a ocorrencia ou nao de um obstaculo, ou onde a distancia relativa entre o robo
e um obstaculo nao necessita precisao milimetrica.
A. Metodo de Tsai
Neste metodo o conjunto de pontos e subdividido para que novos pontos sejam criados. O metodo de
Tsai nos fornece uma matriz de projecao e outra de modelview usadas no OpenGL para visualizarmos
um modelo virtual em 3D.
Dividindo a primeira e a segunda linha da equacao (5) pela terceira linha, obtemos as seguintes
expressoes:
u = fr1xx + r1yy + r1zz + txr3xx + r3yy + r3zz + tz
(6)
v = fr2xx + r2yy + r2zz + tyr3xx + r3yy + r3zz + tz
(7)
Dividindo a equacao (6) pela (7) obtemos a seguinte expresso:
u
v=
r1xx + r1yy + r1zz + txr2xx + r2yy + r2zz + tx
(8)
Esta equacao apresenta uma nao-linearidade com relacao as variaveis rix e riy. Para contornar esse nao
9
linearidade, reescrevemos essa equacao da seguinte forma:
r1x
tyxivi +
r1y
tyyivi −
r2x
tyxiui −
r2x
tyyiui +
txty
vi = ui (9)
Assim, obtemos um sistema do tipo Au = b, onde A e uma matriz n × 5 e cada linha Ai e dada por
(xivi, yivi,−xiui,−yiui, vi), u e um vetor dado por:
(U1, U2, U3, U4, U5) =
(r1x
ty,r1y
ty,r2x
ty,r2y
ty,txty
)(10)
Uma vez que r1, r2 e r3 sao ortonormais e definindo α = r1x
tye β = r2x
ty, temos que
αβ = −U1U3 − U3U4
α2 + U21 + U2
2 = β2 + U23 + U2
4
(11)
onde cada elemento do vetor b e dado por ui.
Resolvendo o sistema acima, calcula-se ty a partir de
t2y =U −
√U2 − 4(U1U4 − U2U3)2
2(U1U4 − U2U3)2(12)
onde U = U21 + U2
2 + U23 + U2
4 .
Assim, com ty ja definido, podemos rescrever a equacao (9) em forma de um sistema linear:
xivi yivi xiui yiui vi
......
......
...
xnvn ynvn xnun ynun vn
r1x
ty
r1y
ty
− r2x
ty
− r2y
ty
txty
=
ui
...
un
(13)
cuja resolucao encontra as variaveis r1x, r1y, r2x, r2y e tx. Pelo fato dos vetores r1 e r2 terem normas
iguais a 1, encontram-se tambem os valores r1z e r2z, e consequentemente calcula-se r3, pois r1, r2 e r3
10
sao ortonormais. Finalmente, usando os valores ja encontrados e as equacoes (6) e (7), calculamos f e
tz.
11
V. IMPLEMENTACAO
Esta Secao descreve os passos envolvidos na implementacao do sistema de calibracao de camera.
Um objeto Virtual simples, foi inserido em uma cena real e parametros de cameras conhecidas foram
recuperados para validacao do metodo.
A. Captura do Marcador
A primeira etapa consiste em capturar o marcador. Neste programa isso pode ser feito em real com
uma camera ou carregando uma imagem do arquivo. E atraves do marcador que sao fornecidos os pontos
de referencia no mundo para que o aplicativo possa inserir o objeto virtual na cena. As Figuras 3 e 4
ilustram respectivamente um marcador capturado com uma Web Cam e um marcador sintetico.
Fig. 3. Marcador Real
Fig. 4. Marcador Sintetico
12
B. Detecao de Linhas
O primeiro passo do algoritmo implementado e a aplicacao de dois filtros: um filtro gaussiano seguido
de um filtro laplaciano. Esta tecnica e chamada de Laplaciano da Gaussiana, ou LoG. Essa filtragem e
aplicada sobre o negativo da luminancia da imagem a fim de realcar linhas e dar suporte a uma segmentacao
por limiar.
C. Extracao de Segmentos de Retas Longos
O resultado do primeiro passo do algoritmo e outra imagem, que apresenta pontos com intensidades
maiores como sendo candidatos a estarem sobre algum segmento de reta presente na imagem original
( mostrar um exemplo). Esta imagem resultante e passada para o segundo passo, onde sao extraıdos
segmentos de retas longos, candidatos a serem parte da imagem do modelo em questao. O resultado desse
segundo passo e um conjunto de segmentos de retas, definidos pelos seus pontos extremos (aqui pode ter
outro exemplo).
D. Reconhecimento de segmentos
Os segmentos de reta extraıdos no passo anterior sao finalmente passados ao terceiro passo onde cada
segmento de reta extraıdo e identificado como representante de um dado segmento de reta do modelo.
Para isso foi utilizada a funcao jvInterpret da biblioteca Juiz Virtual que se baseia em uma arvore de
interpretacao para estabelecer uma correspondencia entre as linhas do modelo. Com base nos segmentos
sao definidos os vertices do modelo e a partir desses vertices pode ser feita a reconstruc do modelo
conforme ilustra a Figura 5.
13
Fig. 5. A esquerda, Modelo reconstruıdo com base nos vertices definidos a partir das interseccoes entre os segmentos reconhecidos
14
VI. RESULTADOS
Esta secao mostra alguns resultados obtidos com a implementacao do metodo. Inicialmente, a Figura 6
mostra um objeto virtual inserido em uma cena capturada com uma web cam. No lado direito do canvas
a projecao do modelo capturado.
Fig. 6. Insercao de objeto virtual sobre um marcador na cena
15
REFERENCES
[1] M. Gattass. Visao computacional e realidade aumentada, http://www.tecgraf.puc-rio.br/∼mgattass/ra/ra.html, puc - rio de janeiro. 2006.2.
[2] F. Szemberg. Acompanhamento de cenas com calibracao automatica de cameras. In Tese de Doutorado, Pontifıcia Universidade Catolica
do Rio de Janeiro, 2001.