Escolar Documentos
Profissional Documentos
Cultura Documentos
Relatrio Interno
Outubro de 2003
Resumo
O presente relatrio tem como principal objectivo descrever, resumidamente, as vrias potencialidades da Toolbox de Calibrao de Cmaras para Matlab, facilitando a sua utilizao. Assim, descreve-se o mtodo de calibrao utilizado, os parmetros de calibrao a estimar e as vrias funes implementadas na Toolbox, bem como os seus parmetros de entrada e de sada. O relatrio est dividido em trs seces: na primeira, feita uma pequena introduo Toolbox de calibrao e ao mtodo por esta utilizado; na segunda, so apresentados os parmetros de calibrao a estimar e a classe na qual o mtodo se insere; e na terceira e ltima seco, so descritas as vrias funes implementadas na Toolbox que permitem a calibrao de uma ou mais cmaras.
Abstract
The main goal of the present report is to briefly describe the several potentialities of the Camera Calibration Toolbox for Matlab, helping its use. Thus, the report describes the calibration method used; the calibration parameters to be estimated and the several functions implemented in the Toolbox, as well as its input and output parameters. The report is divided in three sections: in the first one, is presented a small introduction to the Toolbox and to the calibration method used; in the second, are presented the calibration parameters to be estimated and the class in which the method fits; and in the third and last section, are described the several functions implemented in the Toolbox that allow the calibration of one or more cameras.
ndice
1 - Introduo ................................................................................... 1 2 - Classificao do Mtodo.............................................................. 1 3 - Software de Calibrao de Cmaras para Matlab ...................... 3
3.1 - Sistema com uma nica cmara ................................................................................. 3
3.1.1 - Leitura de Imagens de Calibrao ............................................................................................. 3 3.1.2 - Extraco dos Vrtices dos Quadrados da Grelha de Calibrao ..................................... 5 3.1.3 - Calibrao de uma cmara........................................................................................................... 7 3.1.4 Correco de imagens distorcidas ............................................................................................ 9
1 - Introduo
A Toolbox de Calibrao de Cmaras para Matlab, disponibilizada na pgina da Web em http://www.vision.caltech.edu/bouguetj/calib_doc/, permite ler imagens de calibrao, extrair os pontos de calibrao (vrtices dos quadrados presentes na imagem), calibrar a cmara, apresentar os resultados, controlar precises, adicionar e suprimir imagens, corrigir imagens distorcidas, alterar o modelo intrnseco da cmara escolhendo quais os parmetros a optimizar, calibrar um sistema stereo, rectificar imagens stereo e determinar os pontos 3D utilizando o principio da Triangulao stereo. Para alm disso, permite adaptar os dados utilizados pelos mtodos de calibrao propostos por Zhang [Zhang, 2000], Heikkil [Heikkil, 1997] e Bakstein [Bakstein, 1999] de forma a serem utilizados pelo mtodo de calibrao implementado nesta Toolbox. O mtodo de calibrao implementado na Toolbox de Calibrao de Cmaras para Matlab baseiase no proposto por Heikkil [Heikkil, 1997]. O mtodo indicado como extremamente preciso [Herbst, 2003] e utiliza um procedimento de quatro-passos para calibrar uma dada cmara. O mtodo proposto consiste: primeiro, na determinao de uma soluo analtica (closed-form solution) que permita obter uma aproximao inicial dos parmetros intrnsecos/extrnsecos da cmara, utilizando um modelo Pin Hole e pontos de calibrao no coplanares; segundo, na estimao no-linear dos parmetros atravs do mtodo dos Mnimos Quadrados para minimizao dos resduos entre o modelo e as N observaes (erro de re-projeco), que inclui distoro radial e tangencial da lente; terceiro, na correco e posterior extraco de pontos de calibrao na imagem devido distoro do padro de calibrao (que contm os pontos de calibrao, por exemplo: vrtices de quadrados, centros de circunferncias, etc.) causada pela projeco perspectiva; e quarto, na correco das coordenadas imagem distorcidas a partir de um modelo inverso emprico que compensa as distores radial e tangencial da lente.
2 - Classificao do Mtodo
Este mtodo de calibrao est inserido nas tcnicas de mltiplos-passos, neste caso quatro, e utiliza: no primeiro passo, aproximao linear para determinao de uma soluo analtica dos parmetros da cmara (sem distoro da lente); no segundo passo, estimao da distoro radial e tangencial da lente e dos restantes parmetros a partir de uma optimizao no-linear utilizando o mtodo dos Mnimos Quadrados; no terceiro passo, correco e posterior extraco dos pontos de calibrao na imagem; e finalmente no quarto e ltimo passo, correco das coordenadas imagem distorcidas (Fig. 1).
Laboratrio de ptica e Mecnica Experimental
Incio
Aproximao linear (modelo Pin Hole) - Determinao dos parmetros: intrnsecos - centro da imagem na memria frame, (Cx, Cy), desfasamento entre os eixos da imagem, , factores de escala segundo os eixo i e j da imagem, e ; extrnsecos - matriz de rotao 3D, R, e vector de translao 3D, T.
Aproximao no-linear (Mtodo dos Mnimos Quadrados) - Determinao dos parmetros intrnsecos e extrnsecos da cmara, incluindo a distoro radial e tangencial da lente.
Fim
Figura 1 - Esquema do mtodo de calibrao implementado na Toolbox de Calibrao de Cmaras para Matlab.
O modelo da cmara, utilizado pelo mtodo de calibrao implementado na Toolbox de Calibrao de Cmaras para Matlab, tem os seguintes parmetros a estimar: Parmetros extrnsecos: utilizados para transformar as coordenadas 3D no sistema mundo em coordenadas 3D no sistema cmara, para cada posio e/ou orientao da cmara/plano de calibrao. Assim, existem seis parmetros extrnsecos: a matriz de rotao 3D Rc (3 3) e as trs componentes do vector de translao Tc (3 1) . A matriz de rotao 3D pode ser representada pelo vector de rotao 3D omc (3 1) , ambos relacionados pela frmula de Rodrigues (ver Anexo). Parmetros intrnsecos: utilizados para a transformao das coordenadas 3D no sistema cmara em coordenadas 2D no sistema da memria frame. Existem cinco parmetros intrnsecos no modelo: - Distncia Focal: representa a distncia, em pixels, entre o centro de projeco e o plano imagem (segundo os seus dois eixos, i e j) e guardada no vector fc (2 1) (fc(1) = fcx e fc(2) = fcy). A distncia focal efectiva (f) pode ser obtida a partir de: fc x f s x d x ou
segundo as direces X e Y, e s x um factor de incerteza horizontal devido a erros de sincronizao; - Centro ptico da Imagem: representa as coordenadas, em pixels, do centro ptico da imagem na memria frame e so guardadas no vector cc (2 1) (cc(1) = ccx e cc(2) = ccy); - Coeficiente de Desfasamento: representa o ngulo entre os eixos x e y da imagem na memria frame e guardado na varivel alpha_c; - Distores: representa os coeficientes de distoro da imagem (radial e tangencial) e so guardadas no vector (5 1) kc (kc(1), kc(3) e kc(5) so os coeficientes da distoro radial de 2, 4 e 6 ordem, respectivamente, e kc(2) e kc(4) so os coeficientes da distoro tangencial de 1 e 2 ordem, respectivamente).
Matlab 6.5) e foi desenvolvida para os sistemas operativos Microsoft Windows, Unix e Linux. No
entanto, a Toolbox dever correr em todas as plataformas que suportem Matlab 5.x e 6.x. A implementao em C desta Toolbox est tambm disponvel no OPENCV distribudo pela Intel [Intel, 2001]. Nas seces seguintes so apresentados os parmetros de entrada e de sada de cada uma das funcionalidades desta Toolbox.
Matlab que permitem uma calibrao completa de uma cmara utilizando, como plano de
calibrao, um padro constitudo por quadrados. Assim, nesta fase so apresentadas as funes que permitem: ler imagens de calibrao, extrair os vrtices dos quadrados da imagem os quais vo ser os pontos de calibrao, calibrar a cmara, alterar o modelo intrnseco da cmara escolhendo quais os parmetros a optimizar, apresentar os resultados, controlar precises e corrigir imagens distorcidas.
ImageName1, Extension; ImageName2, Extension < ... > - nome das imagens de calibrao e respectivo formato (podem ter os seguintes formatos: ras, bmp, tif, pmg, jpg e ppm) (Fig. 2).
Figura 2 - Exemplo de imagens de calibrao lidas pela Toolbox de Calibrao de Cmaras para Matlab.
Complete Set of Images - exibido um conjunto completo das imagens lidas pela Toolbox em formato de mosaico (thumbnail) (Fig. 3).
Figura 3 - Exemplo de um conjunto de imagens de calibrao lidas pela Toolbox de Calibrao de Cmaras para Matlab e exibidas em forma de mosaico.
janela de busca dos vrtices dos quadrados e o nmero de quadrados nas imagens de calibrao.
Number of Images to Process - nmero de imagens a processar para extraco dos pontos de calibrao. Se o parmetro de entrada for nulo [] todas as imagens lidas so processadas, caso contrrio, necessrio uma listas do subconjunto de ndices das imagens s quais se pretende extrair os vrtices (ex.: [2 5 8 10 12]);
Wintx e Winty - tamanho por defeito da janela de busca dos vrtices nas direces X e Y, respectivamente. Se os parmetros de entrada forem nulos [] para Wintx e Winty, o valor considerado para ambos 5, que corresponde a um tamanho efectivo da janela de 1111
pixels;
Number of Squares - permite utilizar o mecanismo automtico de contagem dos quadrados presentes nas imagens de calibrao (parmetro de entrada nulo, []) ou inserir manualmente esse nmero.
Figura 4 - Parmetros de entrada para extraco dos vrtices dos quadrados presentes numa imagem de calibrao.
Etapa II. Escolha dos limites da grelha de calibrao na qual se vo extrair os vrtices dos quadrados do padro rectangular.
Aps fornecer os parmetros de entrada referidos na Etapa I, mostrada a primeira imagem de calibrao, na qual se escolhem quatro vrtices extremos do padro rectangular seguindo o seguinte procedimento: primeiro, pressiona-se, sobre a imagem, o local do primeiro vrtice que corresponde ao ponto de origem da janela de referncia associada grelha; e em seguida,
Laboratrio de ptica e Mecnica Experimental
escolhem-se os outros trs pontos da grelha rectangular, seguindo uma ordem circular independente do sentido. Um exemplo deste procedimento apresentado na Fig. 5 (Ateno: seleccionar/pressionar quatro vrtices que tenham pelo menos 5 pixels de distncia dos extremos da grelha de calibrao. Caso contrrio, alguns dos vrtices podero no ser detectados). Etapa III. Fornecer ao programa o tamanho de cada quadrado presente na grelha de calibrao.
dX e dY - tamanho de cada quadrado da grelha de calibrao nas direces X e Y, respectivamente. Se estes parmetros de entrada forem nulos [], o valor por defeito para ambos 30 milmetros.
Figura 5 - Procedimento para determinar os cantos da grelha na qual se vo extrair os vrtices do padro rectangular.
Image with Predicted Grid Corners - o programa mostra os vrtices estimados dos quadrados da grelha de calibrao, na ausncia da distoro (Fig. 6). No caso em que a imagem tem elevada distoro, a estimao destes vrtices poder ser fraca, ou seja, estarem afastados dos vrtices reais dos quadrados na imagem. Assim, possvel introduzir um valor inicial para o coeficiente de distoro radial da lente, de forma a ajudar o software a encontrar os vrtices dos quadrados na imagem.
Figura 6 - Exemplo de um conjunto de vrtices estimados pela Toolbox (vrtices assinalados a vermelho).
Image with Predicted Grid Corners - imagem na qual esto assinalados os vrtices estimados dos quadrados da grelha de calibrao (parmetro de sada da implementao para extraco desses vrtices, subseco 3.1.2);
Aspect Ratio Optimized (parmetro de entrada utilizado na fase de optimizao) - opo de optimizar o parmetro do modelo de calibrao que indica se o pixel, numa linha discretizada pelo CCD, quadrado ou no. Por defeito esta opo est activa (est_aspect_ratio = 1);
Principal Point Optimized (parmetro de entrada utilizado na fase de optimizao) - opo de optimizar o centro da imagem na memria frame. Por defeito esta opo est activa (center_optim = 1);
Skew not Optimized (parmetro de entrada utilizado na fase de optimizao) - opo de optimizar o parmetro do modelo de calibrao que descreve o desfasamento entre os dois eixos da imagem. Por defeito esta opo no est activa (est_alpha = 0).
Calibration Parameters after Initialization - parmetros intrnsecos da cmara estimados, considerando um modelo Pin Hole para a cmara (aproximao inicial);
Calibration Parameters after Optimization - parmetros intrnsecos da cmara estimados, considerando um modelo no-linear para a cmara (mtodo dos Mnimos Quadrados). So tambm apresentados os desvios padro de cada um dos parmetros estimados.
Figura 7 - Exemplo dos parmetros de entrada e sada da implementao desenvolvida para calibrao de uma cmara, integrada na Toolbox de Calibrao de Cmaras para Matlab.
Aps uma primeira calibrao da cmara, possvel realizar uma srie de procedimentos que permitem analisar e estimar com maior preciso os parmetros da cmara, por exemplo: a utilizao da ferramenta de anlise dos erros que permite observar o grfico da correlao cruzada do erro de re-projeco; a visualizao 3D grfica dos parmetros extrnsecos da cmara (vrias posies e/ou orientaes do plano de calibrao relativamente cmara ou vice-versa); a utilizao, como parmetros iniciais, da distoro da lente estimada na fase de calibrao e da re-projeco dos pontos de calibrao para uma nova e mais precisa extraco desses pontos; adicionar e suprimir imagem de calibrao; realizar novas calibraes escolhendo os parmetros a optimizar ou optando por no os estimar; visualizao grfica do efeito da distoro ao longo da rea da imagem, mostrada por iso-nveis de distoro, permitindo comparar a importncia da componente radial versus a componente tangencial da distoro, de forma a escolher o modelo de distoro apropriado.
Undistort All the Calibration Images or a New Image? - permite escolher as imagens distorcidas que se pretendem corrigir. Se o parmetro de entrada for nulo [], todas as imagens utilizadas na fase de calibrao so corrigidas. Caso contrrio, realizada a correco de uma nova imagem, escolhida pelo utilizador, e so requeridos dois novos parmetros de entrada:
ImageName - nome da imagem distorcida que se pretende corrigir; Extension - respectivo formato da imagem a corrigir.
a)
b)
Figura 8 - Exemplo de uma imagem: a) com distoro; b) sem distoro. Esta ltima, corrigida a partir da funo de correco da distoro da lente implementada na Toolbox de Calibrao de Cmaras para Matlab.
3.2.1 - Leitura dos ficheiros (individuais) de calibrao das duas cmaras e calibrao stereo (inicial) dos parmetros extrnsecos
A funo descrita nesta subseco permite ler os pares de imagens obtidos pelas duas cmaras (cada par corresponde ao mesmo plano de calibrao observado pelas cmaras em posies/orientaes diferentes), ler os dois ficheiros de calibrao individuais obtidos aps calibrar separadamente as cmaras, apresentar os parmetros intrnsecos resultantes dessas calibraes e os parmetros extrnsecos resultantes de uma calibrao stereo (inicial), que descrevem a posio da cmara direita relativamente cmara esquerda. Por conveno, as duas cmaras s quais se realiza a calibrao stereo so designadas por cmara: esquerda e direita.
Name of the Left Calibration File - nome do ficheiro que contem os parmetros de calibrao da cmara esquerda;
Name of the Right Calibration File - nome do ficheiro que contem os parmetros de calibrao da cmara direita.
Stereo Calibration Parameters - so apresentados os parmetros intrnsecos, estimados a partir das calibraes individuais de cada cmara, e os parmetros extrnsecos, estimados a partir da calibrao stereo (inicial) e que descrevem a posio da cmara direita relativamente cmara esquerda. Nota: Os parmetros extrnsecos om e T, resultantes da calibrao stereo, so determinados a partir da correspondncia entre os pontos de calibrao de cada par de imagens do mesmo plano de calibrao observado pelas duas cmaras em posio/orientao diferentes. Assim, esses parmetros so definidos tal que considerando um ponto P no espao 3D, os seus dois vectores de coordenadas
(3 3)
10
Figura 9 - Exemplo dos parmetros de entrada e sada da implementao para calibrao (inicial) de um sistema stereo, integrada na Toolbox de Calibrao de Cmaras para Matlab.
Recomputation of the Intrinsic Parameters of the Left Camera - opo de optimizar os parmetros intrnsecos da cmara esquerda. Por defeito esta opo est activa (recompute_intrinsic_left = 1);
Recomputation of the Intrinsic Parameters of the Right Camera - opo de optimizar os parmetros intrnsecos da cmara esquerda. Por defeito esta opo est activa (recompute_intrinsic_right = 1).
Stereo Calibration Parameters - calibrao stereo (optimizada): parmetros intrnsecos e extrnsecos das cmaras.
11
Figura 10 - Exemplo dos parmetros de entrada e sada da implementao para calibrao (optimizada) de um sistema stereo, integrada na Toolbox de Calibrao de Cmaras para Matlab.
stereo, ou seja, conhecendo os parmetros de transformao perspectiva de cada uma das cmaras
possvel alinhar as duas imagens de modo a que as linhas epipolares homlogas associadas sejam linhas horizontais alinhadas [Silva, 1994].
I_left01, I_Right01; I_left02, I_Right01; < ... > - par de imagens utilizadas para a calibrao
I_Rectified_left01, I_Rectified_Right01; I_Rectified_left02, I_Rectified_Right01; < ... > par de imagens de calibrao stereo rectificadas.
12
fc_left, cc_left, kc_left, alpha_c_left, fc_right, cc_right, kc_right, alpha_c_right - parmetros intrnsecos da cmara esquerda e direita, estimados pela calibrao stereo. Estes parmetros so equivalentes ao parmetros fc, cc, alpha_c e kc definidos na seco 2.
Xc_1_left e Xc_1_right - so as coordenadas 3D dos pontos no referencial da cmara esquerda e direita, respectivamente. Observe-se que os parmetros Xc_1_left e Xc_1_right esto relacionados pela equao de corpo rgido: Xc_1_right = R Xc_1_left + T, onde R a matriz de rotao 3D (que resulta do vector de rotao 3D, om) e T vector de translao 3D, estimados a partir da calibrao stereo.
4 - Referncias
[Bakstein, 1999] - H. Bakstein, Diploma Thesis: A Complete DLT-based Camera Calibration with
a Virtual 3D Calibration Object. Faculty of Mathematics and Physics, Charles University, Prague,
1999. [Belongie, 2001] - Serge Belongie, Rodrigues Rotation Formula, 2001. http://mathworld.wolfram.com/RodriguesRotationFormula.html. [Heikkil, 1997] - J. Heikkil, O. Silvn, A Four-step Camera Calibration Procedure with Implicit
Image Correction. IEEE Computer Society Conference on Computer Vision and Pattern
Recognition (CVPR97), San Juan, Puerto Rico, pp. 1106-1112, 1997 [Heikkil, 2000] - J. Heikkil, Camera Calibration Toolbox for Matlab, 2000. http://www.ee.oulu.fi/~jth/calibr/. [Herbst, 2003] - E. Herbst, Camera Calibration by Corners Detection, 2003. http://www.tjhsst.edu/~eherbst/techlab/. [Intel, 2001] - OPENCV: Intel Open Computer Vision Library, 2001. http://sourceforge.net/projects/opencvlibrary.
13
14
0 J (omc ) = z y
z 0
y x .
0
A frmula de Rodrigues permite calcular a matriz de rotao R da seguinte forma [Belongie, 2001]: R = eJ (omc ) = I + J (omc )sin + J (omc ) (1 cos )
2 2 cos + x (1 cos ) x y (1 cos ) z sin y sin + x z (1 cos ) 2 (1 cos ) x sin + y z (1 cos ) = z sin + x y (1 cos ) cos + y 2 y sin + x z (1 cos ) x sin + y z (1 cos ) cos + z (1 cos )
com = omc .
15