Serviços Personalizados
Journal
Artigo
Indicadores
-
Citado por SciELO
-
Acessos
Links relacionados
-
Citado por Google
-
Similares em SciELO
-
Similares em Google
Compartilhar
Iteckne
versão impressa ISSN 1692-1798
Iteckne vol.10 no.1 Bucaramanga jan./jun. 2013
Método para la extracción de puntos de control en la calibración de una cámara basado en la estimación de la fase de un patrón de puntos codificado
Method to the extraction of control points based to the phase estimate of a coded dot pattern for camera calibration
Andrés Leonardo González Gómez1, Jaime Enrique Meneses Fonseca2, Alexánder Ballesteros Díaz3, Jaury León Téllez4
1 Especialista en Telecomunicaciones. Universidad Pontificia Bolivariana. Estudiante de Maestría en Telemática, Investigador Grupo GINCAP, Universidad Autónoma de Bucaramanga UNAB. Bucaramanga, Colombia. agonzalez3@unab.edu.co.
2 PhD. Sciences Pour L'ingenieur. Université de Franche Comté. Profesor Titular, Director Grupo GOTS, Universidad Industrial de Santander UIS Bucaramanga, Colombia. jaimen@uis.edu.co.
3 Estudiante de Física. Universidad Industrial de Santander, Investigador Grupo GOTS, Universidad Industrial de Santander UIS. Bucaramanga, Colombia. alexander.ballesteros@correo.uis.edu.co.
4 MSc. en Física. Universidad Industrial de Santander, Director Grupo GINCAP, Universidad Autónoma de Bucaramanga UNAB. Bucaramanga, Colombia. jleon544@unab.edu.co.
RESUMEN
Con el método de Zhang para la calibración de una cámara, se propone un método con el cual sea posible realizar la estimación de parámetros intrínsecos de la cámara, basado en el cálculo de la fase de un patrón de puntos codificado. El método propuesto requiere un patrón pseudo periódico de puntos negros equiespaciados que matemáticamente se pueden representar como dos sistemas ortogonales de franjas. Debido a la distribución espacial regular de los puntos en todo el plano, es posible obtener la posición de un punto con base en la distribución de fase, con precisión subpixel. La relación entre la posición 3D de los puntos y su correspondiente posición en la imagen resultante se realiza sin intervención alguna del usuario. Es posible debido a que el patrón de puntos tiene cada una de sus posiciones codificadas en una secuencia binaria pseudo aleatoria. Evaluaciones experimentales demuestran que calcular la posición espacial de un punto con el método basado en la fase es más robusto al ruido que el método basado en cálculos de intensidad. De igual forma, el cálculo de las posiciones de los puntos a partir de la fase es menos sensible a variaciones de focalización e iluminación del patrón.
PALABRAS CLAVE: Calibración de cámaras, Extracción de fase, Transformada de Fourier.
ABSTRACT
Inspired by Zhang's method on camera calibration, a phase based approach to the estimation of features points is proposed. The proposed method requires a pseudo periodic pattern of equispaced black dots that mathematically can be represented by two orthogonal fringe systems. Due to regular distribution, control point positions are obtained with subpixel accuracy from their phase distributions. The correspondences between 3D control points and their resulting image positions are realized without user intervention. This is possible because the control points in the pattern have their positions encrypted with a pseudorandom binary sequence. Experiments have shown that phase based procedure for extracting control point positions is much more robust to noise than intensity based approach.
KEYWORDS: Camera calibration, phase extraction, Fourier Transform.
1. INTRODUCCIÓN
Una cámara realiza la transformación de coordenadas reales del mundo 3D en una imagen plana 2D. La calibración de la cámara consiste en calcular los parámetros asociados con esta transformación. Este proceso es esencial cuando se requiere extraer información métrica de las imágenes. Una correcta calibración hace posible medir con precisión distancias mediante la imagen de una cámara o formas 3D del mundo real con un dispositivo de medida topográfico que posee integrada una o más cámaras. En el proceso de calibración se identifican dos etapas claramente: El modelamiento y la optimización. El modelo matemático de la cámara consiste en una aproximación del comportamiento físico y óptico del sensor mediante un conjunto de parámetros. La segunda etapa del proceso de calibración de la cámara está relacionada con el uso de métodos de optimización para la estimación de esos parámetros.
Aunque existen varios modelos para la cámara, en este trabajo se usa el modelo de cámara proyectiva, conocido como "modelo pinhole". De la literatura consultada sobre el uso de tal modelo, se obtiene una idea sobre la eficiencia de la calibración de la cámara en diferentes situaciones. El método de Tsai [1] ampliamente utilizado en el pasado, ilustra un proceso clásico de calibración basado en la medida de coordenadas 3D de puntos, los cuales son llamados puntos de control, en un patrón no plano y tomado un sistema coordenado fijo de referencia. Salvi [2] compara diferentes modelos de cámaras propuestos desde 1982 a 1998, para demostrar que el método de Tsai es el de mejor desempeño, siempre que los datos de entrada sean determinados con alta precisión. El método de Zhang [3], el cual no es evaluado por Salvi, utiliza imágenes de un plano que tiene adherido un patrón en intensidad específico (cuadros blancos y negros), capturadas por la cámara en diferentes posiciones y orientaciones. Sun [4] compara los métodos de Tsai, Zhang and Heikkilä; y concluye que el modelo que emplea un sistema coordenado fijo, como el modelo de Tsai, puede obtener alta precisión siempre que los datos de entrada sean determinados con bajo error. Esto quiere decir que el método requiere de medidas 3D precisas. Por el contrario, el procedimiento de calibración con un plano, empleado en el método de Zhang no requiere un diseño espacial específico ni las coordenadas precisas de un punto. Sun logró calibrar la cámara desplazando el patrón plano con la mano en diferentes posiciones y orientaciones, como se propone en el método de Zhang, y obtuvo mejores resultados que con los otros métodos. Sin embargo, una desventaja significativa del método de Zhang es que requiere de la intervención del usuario para que defina el área de interés sobre cada una de las imágenes del plano. Este procedimiento representa un significativo consumo de tiempo y un inconveniente para los usuarios, especialmente para quiienes no están familiarizados con la visión por computador [5].
Los puntos de control en el método de Zhang hacen parte de la imagen de alto contraste de un patrón adherido a una superficie plana. Patrones como tableros de ajedrez (blanco y negro) [6] y círculos [5] son comúnmente usados junto con estrategias clásicas de detección de bordes, esquinas y centros geométricos. En todos los casos, los errores en las coordenadas de los puntos están determinados por el nivel de ruido y contraste de las imágenes. De igual forma, la distorsión introducida por las aberraciones geométricas de las lentes y la distorsión debida a la perspectiva de proyección introducen errores determinísticos en el cálculo de las coordenadas de los puntos de control. En este artículo se presenta una estrategia para la determinación de las coordenadas de los puntos de control basado en un procedimiento de extracción de fase espacial de un patrón de puntos impresos sobre un plano. El patrón de puntos 2D es un código pseudo periódico de puntos negros equiespaciados que matemáticamente se pueden representar como un patrón ortogonal de franjas con dos distribuciones de fase ortogonales. Debido a la ubicación regular, la posición de cada punto se obtiene con una precisión subpixel a partir de su distribución de fase. La relación entre las coordenadas reales 3D y sus coordenadas resultantes en la imagen 2D se realiza sin la intervención del usuario, incluso en casos donde no se alcanza a observar todo el código de puntos completo en la imagen. Esto es posible porque las coordenadas reales de cada punto están codificadas por una secuencia binaria pseudo aleatoria generada por un registro lineal con retroalimentación de longitud N=15.
II. PATRÓN PSEUDO PERIÓDICO
La Fig. 1 muestra el modelo del patrón de puntos empleado en el proceso de calibración. El patrón consiste en un código pseudo periódico de puntos (PPP) negros equiespaciados. En trabajos anteriores [7-9], se empleó un PPP para determinar las coordenadas 3D de un objeto en el espacio con precisión subpixel. Como se demostró en [10], la transformada de Fourier de un PPP posee un grupo de lóbulos ortogonales que corresponden a dos patrones periódicos ortogonales con sus respectivas distribuciones de fase. La posición central de cada punto se puede calcular con resolución subpixel, al interpolar la distribución de fase 2D. El PPP fue inicialmente usado en sistemas de visión estéreo? con el fin de determinar la posición global de un sensor láser 3D portátil, se logra cerca de 33 micrómetros de resolución para un campo transversal efectivo de 60cm x 60cm [9].
El patrón sobre el plano tiene una distribución espacial de puntos negros y puntos ausentes (vacíos) que cubren todo el plano. Esos puntos ausentes hacen que el patrón sea pseudo-periódico y su distribución espacial codifica la posición espacial 2D de cada uno de los puntos.
Este diseño de codificación se obtiene mediante una secuencia binaria pseudo aleatoria (SBPR) generada por un registro lineal con retroalimentación (RLR). Un RLR de N registros con un Or-Exclusivo (XOR) como función lineal produce una secuencia periódica máxima de 2N - 1 palabras de longitud N.
La Fig. 2 (a) muestra un RLR de N=3. La compuerta XOR provee la retroalimentación del registro que desplaza los bits de izquierda a derecha. La secuencia máxima consta de todas las palabras posibles excepto "000". La Fig. 2 (b) muestra la secuencia máxima formada por 7 palabras posibles, en binario y decimal, iniciando desde "111" y la SBPR final formada por 7 bits: "1110100". Debido al registro de desplazamiento lineal, las palabras sucesivas en la SBPR comparten necesariamente N-1 bits consecutivos con sus vecinos inmediatos. Cada palabra posee una posición única dentro de la secuencia completa.
De esta forma, es posible recuperar el valor de la palabra al agrupar los N bits consecutivos en la SBPR. Mediante esta técnica en el patrón plano representado en la Fig. 1, un punto negro representa un bit de valor "1" y un "0" es representado por un espacio blanco ó punto ausente. Un punto negro posee N vecinos horizontales hacia la derecha, que al agruparlos define una palabra. La posición de la palabra en la SBPR determina la coordenada horizontal absoluta del punto inicial en el plano que contiene el patrón. La coordenada vertical de un punto se obtiene al introducir desplazamientos horizontales conocidos a la secuencia de puntos de la línea horizontal anterior. De esta manera, al identificar el corrimiento introducido a una línea se determina su coordenada vertical. La influencia de puntos ausentes en la distribución de fase se puede reducir al ubicar M líneas horizontales sin puntos ausentes entre dos secuencias consecutivas. La Fig. 1. muestra un patrón de 135x91 puntos con M=1 y N=15. La secuencia máxima en la SBPR resultante tiene 32767 bits. Un algoritmo simple de optimización fue diseñado para recuperar la secuencia de 135 bits con el menor número de "0" ó puntos ausentes. El patrón fue construido de la siguiente manera: se determinan 135 bits de la SBPR que conforman la primera fila, la segunda es una secuencia de puntos negros sin código, la tercera se obtiene al desplazar horizontalmente hacia la derecha en un bit la secuencia de la fila 1, la cuarta es una secuencia de puntos sin código, la quinta se obtiene al desplazar horizontalmente hacia la derecha en dos posiciones la tercera fila. De esta manera las filas impares poseen corrimientos sucesivos de 1,2,3, etc.
III. RECUPERACIÓN DE LA POSICIÓN DE LOS PUNTOS
Como se menciona en la sección 2, el PPP se puede describir matemáticamente como una distribución regular ortogonal:
donde I0 hace referencia a la intensidad, ak a la amplitud del armónico de orden k y φ a la distribución de fase. Si el PPP es capturado por una cámara con un lente libre de distorsión y en condiciones telecéntricas entonces la distribución de fase es una función lineal de la posición. Sin embargo, debido a la distorsión geométrica y a la perspectiva de proyección, la cámara recupera una distribución de fase no lineal. La Fig. 3, muestra una imagen invertida en escala de gris del PPP de la Fig. 1, y su respectiva transformada de Fourier.
Las distribuciones de fase φ1 y φ2 pueden ser calculadas con el método de la transformada de Fourier [10]. Los subindexes 1 y 2 en (1) representan las dos direcciones ortogonales del PPP que puede ser observado en el contenido frecuencial, Fig.3. (b). Seleccionado el filtro adecuado para separar el primer armónico en la dirección 1 y 2, y procesada la transformada inversa de Fourier de cada imagen filtrada, se obtienen dos distribuciones complejas. La fase de dichas distribuciones complejas puede ser calculada con la función arcotangente y corresponde a las fases discontinuas φ1 y φ2, de acuerdo con el método de transformada de Fourier.
Debido al uso de la función arcotangente, las fases calculadas poseen discontinuidades de ±2π, que tradicionalmente son eliminadas y se adiciona de manera apropiada 2πn, n es una función entera en escalón. La Fig. 5, muestra un corte de la distribución de fase discontinua φ1 del PPP de la Fig. 3(a) a lo largo de una fila de puntos blancos y los valores de intensidad de la imagen en niveles de gris, en la misma fila. De acuerdo a esta figura, las discontinuidades ±π se ubican en mínimos de intensidad y los valores de fase discontinua de cero se localizan en los máximos de intensidad o centro de los puntos blancos. Los valores de cero de la fase discontinua corresponden a valores enteros de 2π en la fase continua. Así, los puntos de intersección de las curvas de nivel de las fases continuas para valores de φ1=2πN1 y φ2=2πN2 que se muestran en la Fig. 4 (a) y (b) respectivamente determinan las coordenadas X y Y de cada punto de control en el PPP, definido por los valores enteros N1 y N2. De este modo, un sistema de coordenadas con valores enteros N1 y N2 se usa para identificar cada punto de control en el PPP. El origen de este sistema coordenado se localiza en la esquina superior izquierda del PPP y los puntos se incrementan ordenadamente para valores de N1 y N2 en las direcciones 1 y 2 respectivamente.
IV. MODELO DE LA CÁMARA
El método de Zhang usa el modelo de cámara "pinhole" para relacionar las coordenadas 3D del mundo real con las de la imagen 2D en el plano de la cámara. La relación matemática entre los puntos reales y los de la imagen se realiza a través de cuatro transformaciones, mediante las coordenadas del mundo real (Xw,Yw,Zw), las coordenadas de la cámara (Xc,Yc,Zc), las coordenadas de la imagen sin distorsión (xu,yu), las coordenadas de la imagen distorsionada (xd,yd) y las coordenadas en pixeles (u,v) sobre la imagen. Estos sistemas coordenados son mostrados en la Fig. 6.
La primera transformación entre las coordenadas reales (Xw,Yw,Zw) y las coordenadas de la cámara (Xc,Yc,Zc), se realizacon la posición y orientación de la cámara, expresada por los parámetros extrínsecos R y t, así:
R es una matriz 3x3 de rotación y t es un vector de translación. Las otras tres transformaciones desde las coordenadas de la cámara (Xc,Yc,Zc) a coordenadas pixel (u,v) son controladas por la configuración interna de la cámara definida en (3) y (4).
La transformación entre las coordenadas de la imagen sin distorsiones (xu,yu) y las coordenadas de la imagen distorsionada (xd,yd) es controlada por la fórmula matemática que define las distorsiones geométricas de la lente empleada para formar la imagen. La fórmula más usada para distorsiones radiales y tangenciales es:
Así, los parámetros intrínsecos son: el centro de la imagen (xo,yo); las focales de la lente en pixeles a lo largo del eje X y Y, fx y fy; el parámetro de inclinación γ de los ejes de la cámara y cinco coeficientes de distorsión de la imagen, kc. En el método de Zhang, el plano de calibración es ubicado en varias orientaciones y se asume que para los puntos de control Zw=0. Por lo tanto, un punto de control y su imagen están relacionados por:
Donde ri denota la columna i de la matriz de rotación R. La transformación entre las coordenadas sin distorsión y distorsionadas se determina con (5). El objetivo de un procedimiento de calibración es determinar los parámetros intrínsecos y extrínsecos de la cámara, estimando la matriz homográfica H. Para cada imagen del patrón se determinan por tratamiento de imágenes las coordenadas en pixeles de los puntos de control, vector m. Como se conocen las dimensiones métricas del patrón empleado, se asume que para cada punto de control se conoce el vector M. Un procedimiento de optimización es empleado para estimar H. La función usada en el proceso de optimización es usualmente el error métrico entre las coordenadas de los puntos de control calculadas por tratamiento digital de imágenes (ui, vi) y las coordenadas estimadas (ûi, i):
V. PROCEDIMIENTO EXPERIMENTAL
Una serie de seis imágenes del PPP mostrado en la Fig. 1 fueron capturadas con una cámara CCD de resolución 640x480 pixeles y longitud focal 16mm. El PPP tiene 135x91 puntos y un periodo espacial de 2.824mm en ambas direcciones. En la Fig. 7 se puede observar una de las imágenes experimentales. Las imágenes son invertidas en niveles de gris con el fin de hacer coincidir el centro de los puntos con la intercepción de las curvas de nivel a valores 2πN de las fases en las direcciones 1 y 2.
A. Recuperación de las coordenadas de los puntos de control
En muchas aplicaciones de análisis de datos que involucran la trasformada rápida de Fourier (FFT), usualmente se emplea un filtro antes de aplicar la FFT para reducir las discontinuidades en los bordes de la imagen. Se aplicó la ventana Hanning para las imágenes adquiridas y un filtro Gaussiano se usó en el método de la FFT para extraer las distribuciones de fase. La Fig. 8 muestra las curvas de nivel realizadas a valores enteros de 2π en las fases φ1 y φ2. Las intersecciones entre las curvas de nivel determinan la posición de los puntos con una resolución subpixel. Las curvas de nivel se dibujaron sobre la imagen de entrada para verificar el posicionamiento de las intersecciones sobre los puntos de control. Una vez se han identificado las coordenadas de los puntos, se determina el nivel de gris del punto en la imagen de entrada y se le asocian valores de bit "1" o "0". Agrupando N=15 vecinos horizontales se determina la posición de la palabra en la SBPR y así se calcula las coordenadas horizontales N1 de cada punto. Las coordenadas verticales N2 se determinan al comparar dos filas consecutivas de código y determinar el corrimiento horizontal ente ellas. Conocidos N1 y N2 y multiplicándola por el periodo espacial del patrón de puntos se calcula Xw y Yw de cada punto de control.
Las coordenadas de cada punto de control (ui, vi) y sus posiciones espaciales en milímetro definen las coordenadas (Xwi,Ywi,Zwi=0) que son empleadas en el proceso de optimización. A partir de valores iniciales de los parámetros intrínsecos y extrínsecos y las coordenadas (Xwi,Ywi,Zwi=0) de los puntos se calculan las coordenadas en pixeles (ûi, i) de acuerdo a (2), (3) y (4).
B. Evaluación de parámetro intrínsecos y extrínsecos de la cámara
La función de error (6) es evaluada y minimizada para estimar los mejores parámetros de la cámara. "Camera Calibration Toolbox for Matlab" [11] es un software disponible en Internet que emplea el método de optimización Levenberg-Marquardt y usado para calibrar cámaras a partir de patrones ajedrezados blanco y negro. El software fue modificado para determinar los parámetros de la cámara a partir de las coordenadas calculadas del patrón de puntos. Los valores encontrados para los parámetros intrínsecos se muestran en la Tabla 1. Tradicionalmente para calcular el error introducido en el cálculo de los parámetros se determina el diagrama de error de reproyección. Una vez se han optimizado los parámetros finales se emplean estos valores y las coordenadas en milímetros de cada punto de control, (Xwi,Ywi,Zwi=0), para determinar las coordenadas en pixeles estimadas sobre la imagen, (ûi, i). La diferencia con los valores de las coordenadas calculadas de cada punto con la información de fase, (ui, vi) define el error de reproyección. La Fig. 9 muestra la nube de puntos de control donde el sistema coordenado corresponde a errores en X y Y en pixeles. El rango de valores se encuentra entre ±0.4 pixeles para cada eje, con una desviación estándar de 0.07837 en X y 0.07637 en Y. Las seis imágenes adquiridas del PPP proveen cerca de 27191 puntos de control.
C. Errores de reproyección
Con el fin de comparar la precisión del método propuesto, los mismos parámetros se calcularon usando el método tradicional que emplea como patrón un plano ajedrezado (blanco y negro). El patrón ajedrezado contiene 77x10=770 puntos de control. La Fig. 10 muestra los errores de reproyección calculados de 10 imágenes adquiridas del plano ajedrezado. De igual forma el rango de valores se encuentra entre ±0.4 para los dos ejes pero con una desviación estándar de 0.1151 pixeles en dirección X y 0.1063 pixeles en dirección Y, que indica más dispersión del error.
Por otra parte, con el propósito de evaluar el rendimiento ante ruido del PPP y el patrón ajedrezado, se agregó ruido gaussiano de media cero y desviación estándar variable entre 0.001 a 0.007 niveles de gris. La Fig. 11 muestra el error de reproyección para diferentes niveles de ruido. Por lo tanto, el procedimiento basado en la fase para extraer la posición de los puntos es mucho más robusto al ruido que el método basado en intensidades.
VI. CONCLUSIONES
En este artículo se propuso un método para la extracción de puntos de control en la calibración de cámaras basado en la extracción de la fase de un patrón de puntos impreso en un plano. El patrón 2D es un código pseudo periódico de puntos negros equiespaciados, que matemáticamente se pueden representar por dos sistemas de franjas ortogonales. Debido a la distribución regular de los puntos negros sobre el plano, la posición de cada punto se puede calcular con precisión subpixel. La relación entre la posición 3D de un punto sobre el plano y su correspondiente posición sobre la imagen se calcula sin intervención del usuario, aun cuando no todos los puntos del plano se puedan ver en la imagen final. Esto es posible porque el patrón de puntos tiene sus posiciones codificadas en una secuencia pseudo aleatoria generada por un registro lineal con retroalimentación. La verificación experimental permite concluir que el procedimiento para calcular la posición de los puntos basado en la extracción de la fase es más robusto al ruido que el método basado en los valores de intensidad. De igual forma, aunque la desfocalización de la imagen afecta los armónicos superiores del patrón de puntos; siempre que no se desfocalise lo suficiente para afectar el primer armónico, la fase se puede calcular sin inconvenientes en situaciones de deslocalización debido a la distribución periódica. En este método el cálculo de la fase se afecta menos por desfocalización que en el método basado en intensidades y provee una alternativa para calibrar cámaras de buen rendimiento.
AGRADECIMIENTOS
La investigación fue apoyada por la Vicerrectoría de Investigaciones y extensión de la Universidad Industrial de Santander, Colombia (Proyecto No. 5184: Posicionamiento global de alta resolución a campo extendido por visión estéreo: Aplicaciones en metrología óptica).
REFERENCIAS
[1] R. Tsai, "A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-self TV camera lenses," IEEE J. Robot. Autom. RA-3, 323-344 (1997). [ Links ]
[2] J. Salvi, X. Armangué, and J. Batlle, "A Comparative review of camera calibrating methods with accuracy evaluation," Pattern Recognit. 35(7), 1617-1635 (2002). [ Links ]
[3] Z. Zhang, "A flexible new technique for camera calibration," IEEE Trans. Pattern Anal. Mach. Intell. 22, 1330-1334 (2000). [ Links ]
[4] W. Sun and J. Cooperstock, "An empirical evaluation of factors influencing camera calibration accuracy using three publicly available techniques," Mach. Vis. Appl. 17, 51-67 (2006). [ Links ]
[5] X. Meng and Z. Hu, "A new easy camera calibration technique based on circular points," Patt. Recognition 36, 1155-1164 (2003). [ Links ]
[6] L. Krüger and C. Wöhler, "Accurate chequerboard corner localisation for camera calibration," Patt. Recognition Letters, 32, 1428-1435 (2011). [ Links ]
[7] J. A. Galeano, P. Sandoz, E. Gaiffe, S. Launay, L. Robert, M. Jacquot, F. Hirchaud, J.-L. Prétet, C. Mougin, "Position- referenced microscopy for live cell culture monitoring," Biomed. Opt. Express 12, 1307-1318 (2011). [ Links ]
[8] N. Arias, P. Sandoz, J. Meneses, M. Suárez, T. Gharbi, "3D localization of a labeled target by means of a stereo vision configuration with subvoxel resolution," Opt. Express 18, 24152-24162 (2010). [ Links ]
[9] N. Arias, N. Meneses, J. Meneses, T. Gharbi, "A handheld 3D laser scanning with global positioning system of subvoxel precision," J. Phys.: Conf. Ser. 274, 012068 (2011). [ Links ]
[10] M. Takeda and K. Mutoh, "Fourier transform profilometry for the automatic measurement of 3-D object shapes," Appl. Opt. 22, 3977-3982 (1983). [ Links ]
[11] J. Bouguet, "Camera Calibration ToolBox for Matlab," in http://www.vision.caltech.edu/bouguetj/calib_doc/index.html. [ Links ]