Um Novo Algoritmo de Calibração de um Conjunto Binocular com um Gabarito 1D que Realiza Deslocamentos Irrestritos José Alexandre de França Universidade Estadual de Londrina Caixa Postal 6025, Londrina-PR, 86051-980 jaf@jaf.eng.br Marcelo Ricardo Stemmer Universidade Federal de Santa Catarina DAS/CTC/UFSC, Florianopolis-SC, 88040-900 marcelo@das.ufsc.br Maria Bernadete de M. França Universidade Estadual de Londrina Caixa Postal 6025, Londrina-PR, 86051-980 bernadete@eeol.org Rodrigo Henrique C. Palácios Universidade Tecnológica Federal do Paraná Av. Alberto Carazzai, 1640, Cornélio Procópio-PR rodrigopalacios@utfpr.edu.br Resumo Na visão computacional, a calibração de câmeras é um processo necessário quando deseja-se recuperar informações como, por exemplo, ângulos e distâncias. O presente trabalho trata do problema de calibração de câmeras com gabaritos de uma única dimensão. Atualmente, tal problema só tem solução se forem impostas restrições ao movimento do gabarito ou se alguns parâmetros das câmeras já sejam previamente conhecidos. Contudo, demonstra-se que uma abordagem diferente pode ser aplicada se, ao invés de uma única câmera, um conjunto binocular for considerado. Nesse caso, a calibração é possível com um gabarito 1D que realiza um deslocamento desconhecido e sem restrições, mesmo sem nenhuma informação prévia a respeito das câmeras. Tal método baseia-se na estimação de uma transformação que, após a estimação da matriz fundamental do sistema, permite atualizar uma calibração projetiva para uma calibração euclidiana. Experimentos em imagens reais e sintéticas validam o novo método e mostram que a sua exatidão é comparável a de outros métodos clássicos de calibração, já bem conhecidos na literatura. 1. Introdução Na visão computacional, a calibração de câmeras é um processo necessário quando se deseja recuperar informações como, por exemplo, ângulos e distâncias. Tal processo consiste em estimar os parâmetros que melhor ajustam-se ao modelo matemático escolhido para a câmera. Normalmente, durante a calibração, a câmera captura imagens de um objeto de dimensões e forma bem conhecidos (chamado de gabarito de calibração). Em seguida, utiliza-se a relação entre pontos do gabarito e suas respectivas projeções no plano de imagem para determinar os parâmetros intrínsecos e extrínsecos da câmera [1]. Recentemente, Zhang [2] propôs um método de calibração utilizando gabaritos de uma única dimensão (pontos em uma reta), que foi investigada e estendida por diversos outros autores [3 6]. Por exemplo, Wu et al. [6] equacionou o problema de forma diferente, mostrando que calibrar uma câmera com um gabarito 1D movendose, mas com uma de suas extremidades fixas, é equivalente a usar um gabarito de calibração 2D com lados desconhecidos. Mesmo assim, tal mudança não traz nenhum ganho de exatidão. De fato, os resultados de Wu [6] são comparáveis aos obtidos por Zhang [2]. Mais recentemente, Qi et al. [4] estendeu o trabalho de Wu, retirando a necessidade de um dos pontos do gabarito ser fixo. Ao invés disso, é necessário que a trajetória do centro de massa do gabarito seja uma parábola. Também, Qi [4] demonstrou que grande parte da instabilidade do método de Wu [6] é devido a movimentos que causam singularidades, mas que podem ser detectados e evitados. Com esse cuidado, a exatidão do método é melhorada significativamente. Contudo, o movimento que o gabarito deve fazer durante o método de Wu é muito difícil de ser realizado na prática. A principal vantagem de utilizar gabaritos 1D para efetuar a calibração é a possibilidade de calibrar mais de uma câmera ao mesmo tempo. Isso acontece porque os pontos do gabarito 1D podem ser capturados, simultaneamente, por câmeras até mesmo em pontos de vista bem distintos. Contudo, apenas com os trabalhos de Yuuya et al. [7] e Zhao e Liu [8] é que esse aspecto passou a ser explorado de fato. Contudo, no trabalho de Yuuya [7], apesar do gabarito 1D poder realizar um movimento livre e desconhecido, faz-se necessário conhecer os parâmetros intrínsecos de pelo menos uma das câmeras a serem calibradas. Já no trabalho de Zhao [8], os parâmetros de todas as câmeras podem ser estimados, mas o gabarito deve mover-se tendo uma de suas extremidades fixas.
Felizmente, uma abordagem diferente pode ser aplicada se, ao invés de uma única câmera, um conjunto binocular for considerado. Um conjunto binocular é composto por duas câmeras com posições relativas fixas, ou seja, o conjunto pode mover-se, mas a posição de uma câmera em relação à outra deve permanecer sempre constante. Tal arranjo é utilizado, por exemplo, quando se deseja recuperar informações 3D das imagens [9]. No presente trabalho, é demonstrado que um conjunto binocular insere restrições extras ao problema de calibração com um gabarito 1D. Tais restrições tornam possível calibrar o conjunto binocular com o gabarito 1D mesmo que este realize um deslocamento desconhecido, sem que nenhum de seus pontos esteja fixo e sem nenhuma informação prévia a respeito das câmeras. Resultados experimentais realizados em imagens sintéticas e reais mostram que o método proposto produz bons resultados mesmo na presença de ruído e, dessa forma, constitui um método prático e bastante flexível de calibração de um ou mais conjuntos binoculares. 2. Notação As coordenadas homogêneas de um ponto m = [x, y] T são representadas por m, isto é, m = [x, y, 1] T. Índices, se houverem, indicam a posição do ponto em um conjunto de pontos. Assim, com a notação adotada, a relação entre um ponto 3D, M, e sua projeção, m, considerando o modelo de uma câmera pinhole [9], é dada por m A I3 03 M, (1) onde representa que os dois lados da equação podem diferir por uma constante (trata-se de uma equação homogênea) e α s k u 0 A = 0 β v 0, (2) 0 0 1 onde α e β são fatores de escala para, respectivamente, os eixos x e y, m 0 = [u 0, v 0 ] T é o ponto central da câmera e s k está relacionado ao ângulo que corrige a ortogonalidade da matriz de sensores. Contudo, atualmente é possível fabricar câmeras com s k muito próximo de zero. Por isto, neste trabalho, considera-se s k = 0. Dessa forma, há apenas quatro parâmetros intrínsecos a serem estimados. As câmeras que pertencem a um conjunto binocular são chamadas de câmera 1 e câmera 2. A câmera 1 é tomada como referência. No caso de matrizes, um apóstrofo (ou a ausência dele) é utilizado para indicar a qual câmera esta se refere. Por exemplo, A está relacionada à câmera 1 e A é sempre associada à câmera 2. Além disso, sem perda de generalidade, freqüentemente assume-se que a câmera da esquerda está na origem do sistema de coordenadas do ambiente. Então, considerando a equação (1), tem-se m 1 A I 0 M e m 2 A R t M, onde R é uma matriz 3 x 3 que representa a rotação da câmera 1 em relação a 2, t é um vetor que equivale a translação do centro da câmera 1 com relação a 2 e, geralmente, são referenciados como os parâmetros extrínsecos da câmera. A equação anterior muitas vezes é expressa em função das matrizes de projeção das câmeras. Neste caso, P A I 0 e P A R t (3) e o processo de calibração do conjunto binocular consiste em estimar as matrizes P e P. 3. Calibração binocular com um gabarito 1D Em um deslocamento (indexado por i) de um bastão de calibração com n pontos marcados, como esboçados na figura 1, têm-se uma correspondência (m 1ji m 2ji ) para cada ponto M ji pertencente ao gabarito, onde j = 1, 2 n. Além disso, como as coordenadas de tais correspondências podem ser obtidas com precisão, após N deslocamentos, a matriz fundamental do sistema pode ser estimada com excelente exatidão, usando n N correspondências de pontos. Para isto, basta usar um dos diversos métodos já bem conhecidos na literatura [9]. Do trabalho de Hartley et al. [10] e Faugeras [11], sabe-se que, uma vez que a matriz fundamental do conjunto binocular tenha sido estimada, ela pode ser utilizada para obter-se P e P, as matrizes de projeção canônicas do sistema. Além disso, tais matrizes estão relacionadas com as matrizes de projeção euclidianas, P e P, por uma transformação projetiva, T PE, ou seja, P = PT PE e P = P T PE (4) onde, T PE = A 1 0 w T ω, (5) com W = [w T, ω] T, um vetor 4 x 1. Dessa forma, para que a calibração do conjunto binocular esteja completa, basta estimar a transformação T PE. Isto pode ser feito como segue. Com P e P conhecidas, uma reconstrução projetiva, M ji, de cada ponto M ji pode ser obtida, ou seja, m 1ji PM ji e m 2ji P M ji. Além disso, da equação (4), sabe-se que M ji e M ji estão relacionadas por T PE, ou seja, M ji T PE M ji. (6) Assim, considerando que T PE é dada por (5), a equação (6) pode ser transformada em uma igualdade, ou seja, 1 M ji = T A 1 M W ji. (7) M ji Além disso, como a distância entre os pontos do bastão são conhecidas, as coordenadas dos pontos M ji podem ser expressas como função dos pontos extremos por meio da equação M ji = 1j M 1i + 2j M 2i, (8)
onde 1j e 2j são constantes conhecidas que dependem Figura 1. Esquema de calibração binocular utilizando um gabarito com três pontos, cujas posições relativas são conhecidas. das distâncias M 1i M ji e M 2i M ji. Portanto, substituindo (7) em (8) e multiplicando ambos os lados da equação por A, tem-se 1 M T ji W M 1 ji = 1j M T 1i W M 1 1i + 2j M T 2i W M 2i. Agora, após alguma manipulação algébrica, a equação anterior torna-se u T ji W = 0, (9) onde u T ji = M T 1i + 1j (M 1i M ji ). (M 2i M ji ) 2j (M 2i M ji ). (M 2i M ji ) M 2i T. (10) Considerando um bastão com n > 2 pontos e N deslocamentos do bastão, a equação (9) leva a U 1 U 2 W = 0, (11). U N onde U i = [u 3i, u 4i u ni ] T. A equação anterior permite estimar o vetor W. Além disso, uma vez que W seja conhecido, pode-se estimar A levando em consideração que o comprimento do bastão é conhecido, ou seja, M 2i M 1i = L, (12) onde L é o comprimento do gabarito. A equação anterior pode ser re-escrita levando em consideração a equação (7), ou seja, M 2i M 1i = 1 M T 2i W A 1 M 2i 1 M T 1i W A 1 M 1i = A 1 h i (13) onde h i = 1 T W M 2i 1 T W M 1i. M 2i M 1i Agora, da equação (13), tem-se que equação (12) é equivalente a h T i Bh i = L 2, (14) onde B A T A 1 é a matriz do cone absoluto [9]. Também, levando em consideração que h T i Bh i = [h 2 1i, 2h 1i h 2i, h 2 2i, 2h 1i h 3i, 2h 2i h 3i, h 2 3i ] T b = V i b, onde considerou-se b = [b 11, b 12, b 22, b 13, b 23, b 33 ] T e h i = [h 1i, h 2i, h 3i ] T, com b ij igual ao elemento da i-ésima linha e j-ésima coluna de B, o sistema de equações (14) pode ser representado por V i b = L 2, (15) onde L 2 = [L 2, L 2,, L 2 ] T. Como B tem seis graus de liberdade, são necessários N 6 deslocamentos para estimar B unicamente. Assim, com N deslocamentos, pode-se resolver V 1 V 2 b =. L2 (16) V N para que B seja completamente determinada. Uma vez que B for conhecida, a matriz A 1 pode ser obtida de B por meio da decomposição de Cholesky [9]. Dessa forma, T PE está unicamente determinada e o conjunto binocular está completamente calibrado. Em seguida, se necessário, os pontos M 1i e M 2i podem ser obtidos de (7). 3.1. Solução não-linear No método descrito na seção anterior, a matriz T PE é estimada por meio da minimização de um critério sem nenhum significado geométrico. Este é um dos motivos que contribuem para que o mesmo não forneça bons resultados na presença de ruído. Contudo, como o conceito de distância não é válido no espaço projetivo, os pontos M ji não podem ser utilizados para definição de um critério de otimização. Assim, um critério com alguma significância geométrica deve envolver as projeções dos pontos do bastão, m 1ji e m 2ji. Este trabalho propõe a solução deste problema por meio da minimização do critério N n 2 F(A, W, M ji ) = ( m kji m kji (A, W, M ji ) ) 2 i=1 j =1 k=1 (17) onde m 1ji (A, W, M ji ) = PT 1 PE M ji e m 2ji (A, W, M ji ) = P T 1 PE M ji, com M ji dado por (8), considerando M 2i = M 1i + L[sen θ i cos φ i, sen θ i sen φ i, cos θ i ] T, (18) onde θ i e φ i são ângulos que definem a orientação do gabarito. A minimização da equação (17) envolve a solução de um problema de otimização não-linear. Na visão computacional, o algoritmo de Levenberg-Marquardt [12, 13] é muito utilizado para solucionar tais problemas, devido isso, foi utilizado no presente trabalho.
4. Resultados Experimentais O algoritmo proposto foi desenvolvido no ambiente de programação do MATLAB. Em particular, em todos os experimentos, utilizou-se a implementação do algoritmo Levenberg-Marguardt Dividido apresentada por de França et al. [14]. Também, quando necessário, a matriz fundamental do conjunto binocular foi estimada pelo método de Bartoli e Sturm [15] e a reconstrução projetiva foi realizada por meio do método ótimo proposto por Hartley e Sturm [16]. Na avaliação do método proposto, foram utilizados dados sintéticos e dados adquiridos de imagens reais. Os resultados obtidos com cada tipo de dado são discutidos a seguir. Além disso, em todos os experimentos, os parâmetros intrínsecos estimados foram comparados aos parâmetros intrínsecos simulados e as diferenças são apresentadas de forma relativa, normalizadas em relação ao parâmetro α, como proposto por Triggs [17]. Os dados sintéticos foram obtidos supondo um conjunto binocular com os parâmetros intrínsecos da tabela 1. A resolução da imagem é feita igual a 512 512 pixels e o gabarito de calibração é suposto ter 100 cm de comprimento, com três pontos eqüidistantes. Além disso, na geração dos dados sintéticos, o ponto M 1i = [X i, Y i, Z i ], com {X i, Y i } [ 50, 50] e Z i [120, 200], e os ângulos da equação (18), θ i π 6, 5π 6 e φ i π, 2π, variaram aleatoriamente, mas de acordo com uma distribuição uniforme. Tais dados foram utilizados para avaliar o desempenho do método com respeito ao nível de ruído presente nos dados. Por isso, nesse experimento, ruído gaussiano de média zero e desvio padrão σ foram acrescentados às projeções nas imagens dos pontos do gabarito, com σ variando de 0,1 a 2,0 pixels. Por sua vez, em cada simulação, as projeções com ruído serviram de dados de entrada para o algoritmo proposto. Tabela 1. Parâmetros intrínsecos do conjunto binocular utilizado para gerar os dados sintéticos. Câmera 1 Câmera 2 α x α y u 0 v 0 α x α y u 0 v 0 715 712 325 232 700 730 335 222 Para cada nível de ruído, foram realizadas 200 simulações e a mediana de cada parâmetro intrínseco foi retida. Essas medianas foram comparadas com os parâmetros da tabela 1. Os resultados da comparação são apresentados na figura 2. As figuras 2(a) e 2(b) apresentam, respectivamente, os erros relativos dos parâmetros intrínsecos das câmeras 1 e 2, estimados com o algoritmo linear proposto. Analisando os resultados, observa-se que o erro aumenta linearmente com σ. Além disso, observando as figuras 2(c) e 2(d), que apresentam o refinamento dos resultados das figuras 2(a) e 2(b) obtido pelo método não-linear proposto, nota-se que tal método refina satisfatoriamente os parâmetros de ambas as câmeras. Em especial, para σ = 1,5 pixel (valor maior do que os encontrados na prática), tem-se um erro da ordem de 0,4 %. Para adquirir os dados reais, foi utilizado um gabarito com cinco esferas de plástico negro, com 2 cm de diâmetro cada uma. Tais esferas foram fixadas em um bastão de metal. A distância entre os centróides de esferas vizinhas foi medida com auxílio de um paquímetro. Manualmente, o gabarito foi movido em diferentes posições, a uma distância de aproximadamente 100 cm do conjunto binocular. Durante o movimento, 126 pares de imagens foram adquiridos (uma das imagens é apresentada na figura 3). Com auxílio de uma ferramenta de blob gaussiano [18, Cap. 7], em cada uma das imagens, as coordenadas dos centróides das esferas negras foram estimadas de forma automática e foram utilizadas como dados de entrada para o algoritmo proposto. O resultado deste experimento é apresentado na tabela 2 e é referenciado como Proposto. Tabela 2. Parâmetros intrínsecos do conjunto binocular estimados por meio do algoritmo proposto e de um método clássico. Método Câmera 1 α β u 0 v 0 Proposto 714,90 710,07 480,25 344,44 Clássico 703,16 696,15 445,54 328,04 Diferença 1,67 1,98 4,94 2,33 Câmera 2 α β u 0 v 0 Proposto 720,17 713,45 450,50 344,44 Clássico 710,93 701,32 421,22 328,04 Diferença 1,30 1,71 4,12 2,33 Os parâmetros intrínsecos da câmera utilizada nos testes também foram estimados pelo método proposto por Zhang [19]. O gabarito utilizado neste método é um plano com um padrão quadriculado. Neste trabalho, utilizou-se um gabarito com 156 pontos (figura 4). Durante a calibração, foram realizados 22 deslocamentos do conjunto binocular e, com cada câmera, uma seqüência com 22 imagens foi capturada. Em seguida, a implementação de Bouguet [20] do algoritmo de Zhang [19] foi utilizada para estimar os parâmetros intrínsecos. Tais parâmetros foram adotados como os parâmetros reais da câmera, são apresentados na tabela 2 e referenciados como Clássico. A última linha da tabela 2 mostra a diferença entre o método Proposto e o Clássico normalizada por α, com proposto por Triggs [17]. Observa-se que tal diferença é da ordem de 2% para os parâmetros α e β e da ordem de 4% para as coordenadas do ponto principal. Como os métodos analisados são diferentes, é natural que
c (a) exista uma diferença entre os dois resultados. Além disso, o método de Zhang [19], como a maioria dos métodos clássicos, tem dificuldade em estimar os parâmetros u 0 e v 0. Contudo, a principal razão dessa diferença entre os resultados é a forma rudimentar de construção do gabarito. Isto faz com que os pontos do gabarito não sejam exatamente lineares, invalidando o modelo utilizado. Outra fonte de erros foi a ferramenta utilizada para extração das coordenadas das projeções dos pontos do gabarito, pois, devido a diferenças de iluminação, a ferramenta não conseguiu segmentar as esferas como um círculo perfeito. Dessa forma, o centróide das esferas não foram conhecidos com exatidão. (b) Figura 3. Gabarito 1D utilizado na avaliação do método proposto. (c) Figura 4. Gabarito plano utilizado na comparação do método proposto. 5. Conclusão (d) Figura 2. Exatidão com relação ao nível de ruído (parâmetros): a) câmera 1 (método linear); b) câmera 2 (método linear); c) câmera 1 (método não-linear), e; d) câmera 2 (método não-linear). O presente trabalho demonstra que uma abordagem diferente pode ser aplicada à técnica de calibração com gabaritos 1D se, ao invés de uma única câmera, um conjunto binocular for considerado. Isto porque um conjunto binocular insere restrições extras ao problema de calibração com um gabarito 1D. Tais restrições tornam possível calibrar o conjunto binocular com o gabarito 1D mesmo que este realize um deslocamento desconhecido, sem que nenhum de seus pontos esteja fixo e se nenhuma informação prévia a respeito das câmeras. Tal método baseia-se na estimação de uma transformação que, uma vez que a matriz fundamental do sistema é conhecida, permite atualizar uma calibração projetiva para uma calibração euclidiana.
Foi proposto um método linear que dá uma estimação inicial dos parâmetros das câmeras e um método nãolinear, baseado no critério da máxima verossimilhança, que refina os parâmetros iniciais de forma que estes possam ser utilizados em problemas práticos. Resultados experimentais realizados em imagens sintéticas e reais mostram que o método proposto produz bons resultados mesmo na presença de ruído e, dessa forma, constitui um método prático e bastante flexível de calibrar um ou mais conjuntos binoculares. No presente trabalho, a distorção radial da câmera foi desprezada. Contudo, esta pode ser facilmente considerada modificado o modelo da câmera. Para isto, a função a ser minimizada pelo algoritmo não-linear deve ser ligeiramente alterada. 6. Agradecimentos Os autores agradecem a CAPES e a PROPPG/UEL pelo financiamento das pesquisas. 7. Referências [1] J. Salvi, X. Armangué, and J. Batlle. A comparative review of camera calibrating methods with accuracy evaluation. Pattern Recognition, 35:1617 1635, 2002. [2] Z. Zhang. Camera calibration with one-dimensional objects. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26:892 899, 2004. [3] P. Hammarstedt, P. Sturm, and A. Heyden. Closedformsolutions and degenerate cases for camera calibration with one-dimensional objects. In Proceedings of ICCV, Beijing, China, 2005. [4] Fei Qi, Qihe Li, Yupin Luo, and Dongcheng Hu. Camera calibration with onedimensional objects moving under gravity. Pattern Recognition, 40:343 345, 2007. [5] Fei Qi, Qihe Li, Yupin Luo, and Dongcheng Hu. Constraints on general motions for camera calibration with onedimensional objects. Pattern Recognition, 40:1785 1792, 2007. [9] R.I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, 2000. [10] R.I. Hartley, R. Gupta, and T. Chang. Stereo from uncalibrated cameras. In II European Conference on Computer Vision, pages 579 587, 1992. [11] O. D. Faugeras. What can be seen in three dimensions with an uncalibrated stereo rig? In II European Conf. on Computer Vision, pages 563 578, 1992. [12] K. Levenberg. A method for the solution of certain nonlinear problems in least squares. Quarterly of Applied Math., pages 164 168, 1944. [13] D. W. Marquardt. An algorithm for least-squares estimation of nonlinear parameters. J. Soc. Indust. Appl. Math., 11(2):431 441, 1963. [14] José A. de França, Maria B. de M. França, Marcela H. Koyama, and Tiago P. da Silva. Uma implementação do algoritmo levemberg-marquardt dividido para aplicações em visão computacional. Semina: Ciências Exatas/Tecnológicas, 29(2), 2008. [15] A. Bartoli and P. Sturm. Nonlinear estimation of the fundamental matrix with minimal parameters. IEEE Trans. on pattern analysis and machine intelligence, 26(3):426 432, 2004. [16] R. I. Hartley and P. Sturm. Triangulation. Computer Vision and Image Understanding, 68(2):146 157, 1997. [17] B. Triggs. Autocalibration from planar scenes. In Proc. V European Conf. Computer Vision, pages 89 105, 1998. [18] T. Lindeberg. Scale-Space Theory in Computer Vision. Kluwer Academic Publishers, 1994. [19] Z. Zhang. A flexible new technique for camera calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1330 1334, 2000. [20] J. T. Bouguet. Camera Calibration Toolbox for Matlab. MRL - Intel Corp., 2004. [online] http://www.vision.caltech.edu/bouguetj/calib doc/index.html. [6] F. Wu, Z. Hu, and H. Zhu. Camera calibration with moving one-dimensional objects. Pattern Recognition, 40:755 765, 2005. [7] KOJIMA Yuuya, FUJII Toshiaki, and TANIMOTO Masayuki. New multiple camera calibration method for a large number of cameras. In Proceedings of VIII Videometrics Conference, San Jose, CA, EUA, 2005. [8] Zi-jian Zhao and Yun-cai Liu. New multi-camera calibration algorithm based on 1D objects. Journal of Zhejiang University SCIENCE A, 9(6):799 806, 2008.