CORRESPONDENCIA DE IMÁGENES 3D ASISTIDA POR CONTORNOS ACTIVOS Sandra Robla Gómez Carlos Torre Ferrero, J.R. Llata, Esther González Sarabia. Departamento de Tecnología Electrónica e Ingeniería de Sistemas y Automática E. T. S. de Ingenieros Industriales y de Telecomunicación, Universidad de Cantabria Avda. Los Castros s/n, 39005, Santander, Cantabria, ESPAÑA. E-mail: [srobla, carlos, llata, esther]@teisa.unican.es Resumen En este trabajo se presenta una línea de estudio para realizar la correspondencia de imágenes en 3D en la que nos ayudamos de la obtención de los puntos de control que forman un contorno activo para detectar puntos en la imagen pertenecientes a un objeto, buscar su correspondencia y realizar el cálculo de sus coordenadas en 3D Palabras clave: Visión artificial, Calibración de cámaras, Segmentación de Imágenes, Visión estéreo, Contornos Activos, Snakes. 1. INTRODUCCIÓN En este trabajo se presentan los primeros pasos hacia la estimación de la forma y posición de un objeto en el espacio tridimensional partiendo de varias vistas, capturadas por diversas cámaras. Esta tarea se engloba dentro de una tarea principal que es la de poder realizar el seguimiento de objetos en una secuencia de imágenes y posterior aplicación en el campo de la seguridad activa. En un sistema de visión la información que se obtiene es únicamente sobre la forma superficial de un objeto. Según [2] la representación de la forma de un objeto para que pueda ser empleada en sistemas de visión por computador ha sido objeto de numerosos estudios existiendo dentro del modelado geométrico dos representaciones de sólidos: CGS (Constructive Solid Geometry) y BRep (Boundary Representation). Con el objetivo de poder realizar una representación tridimensional de un objeto, dentro de las diversas técnicas de representación de sólidos que describe, en este trabajo optó por la representación de la frontera o superficie, pero con las limitaciones que existen al disponer de un bajo número de vistas del objeto y por lo tanto de oclusiones, esta técnica no ha podido realizarse tal y como se presenta en la literatura, si no que se ha tenido que emplear información a priori del objeto. En primer lugar se ha llevado a cabo la calibración de las cámaras con las que realizamos el estudio. En segundo lugar se ha establecido una segmentación bidimensional del objeto a localizar dentro de la imagen. Dicha segmentación se ha realizado empleando segmentación por color en el espacio HSV y un clasificador estadístico. Una vez obtenida la segmentación del objeto, para localizar puntos característicos del mismo, se han tenido en cuenta dos opciones, la primera, la extracción de esquinas de dicho objeto. Viendo los problemas que se presentaban en la etapa de correspondencia entre puntos y las restricciones geométricas que plantea este método, se optó por una segunda opción, hacer un estudio de la generación de snakes que definen el contorno del objeto. Para la detección de esquinas se ha utilizado un algoritmo ideado por [6]. Para la generación de un contorno activo cerrado, definido por un número finito e invariante de puntos de control se ha modificado el algoritmo que se había desarrollado en [5]. A continuación con los puntos de control hallados en las imágenes de cada una de las cámaras se ha establecido la correspondencia entre ellos. Con las correspondencias establecidas, se ha estimado la posición de dichos puntos en el plano tridimensional, y se ha estimado la forma de dicho objeto en tres dimensiones. Para el desarrollo del presente trabajo, se ha empleado un robot FANUC ARC MATE 100iBe con el que hemos establecido el sistema de coordenadas de referencia y tres cámaras Axis 205 Network, situadas de forma que sus campos visuales cubrieran el máximo campo de trabajo del robot. Cámara1 Cámara2 Cámara3 2. CALIBRACIÓN DE CÁMARAS Una vez situadas las cámaras y para poder recuperar información tridimensional, se realizó una calibración completa del sistema según el método de Tsai. Para ello, se creó un software de calibración y una plantilla como la que aparece en la figura cuyas esquinas se emplean como puntos de calibración. La calibración de cada una de las cámaras consiste en determinar su matriz de proyección asociada M(3x4), tal que: [ ] 3. SEGMENTACIÓN IMAGEN DE LA El ojo humano percibe los colores en función de la longitud de onda que reflejan los objetos. Por lo que si las condiciones de iluminación varían también se modifica la forma en la que se percibe un mismo color. Sin embargo, el color se puede considerar como una de las características más importantes que definen a los objetos, lo que hace buscar soluciones a los problemas que plantean dichas variaciones de iluminación. Figura 1 Disposición cámaras y robot M = K ⋅ R − K ⋅ R⋅t robot con las definidas sobre la plantilla con el programa de calibración. Como ya es conocido existen diversos espacios de color para la representación de imágenes. Según estudios previamente realizados [11], se ha optado por trabajar con el espacio de color HSV, ya que presenta ventajas sobre el resto de espacios de color ya que diferencia el color en si de la luminosidad. Para realizar la identificación de los píxeles que pueden pertenecer a un objeto frente a cualquier tipo de fondo, se ha optado por aplicar un clasificador estadístico de tipo bayesiano que emplea las distribuciones de probabilidad que caracterizan cada clase definida. (1) donde K es la matriz de parámetros intrínsecos, R es la matriz de rotación y t es el vector de traslación entre el sistema de cámara y el sistema de referencia. El software desarrollado permite realizar esta calibración de manera casi automática, además de considerar las distorsiones que pueda introducir la óptica. Una vez se obtienen los parámetros extrínsecos e intrínsecos de la cámara hay que hacer corresponder los píxeles de 2D con coordenadas 3D de un punto real para lo que se necesita conocer las coordenadas en 3D de dicho punto. Nos ayudamos del robot FANUC que proporciona las coordenadas de un punto determinado: 1. Se define una herramienta del robot. 2. Se define un sistema de usuario. Al definirlo se hará coincidir el eje de las X y el eje de las Y del sistema usuario de Figura 2 Ejemplos de imágenes segmentadas Para trabajar solamente con la parte superior del objeto, y analizando la imagen, se comprueba mediante la transformación del espacio RGB al espacio L*u*v que esta zona del objeto tiene una iluminación diferente al resto. Este espacio de color se caracteriza porque en L proporciona información de la luminosidad y en uv la información del color [3]. Por lo tanto se implementa un algoritmo que partiendo de una región de muestra de la superficie, busca qué píxeles del objeto tienen una característica similar de luminosidad. Se calcula la media de luminosidad de la región seleccionada mediante un umbral se establece un rango de valores con el que encontrar la superficie del objeto. Aquellos píxeles que estén dentro de ese rango serán considerados como parte de la superficie del objeto, tal y como se muestra en la figura 3. y Kanade que consiste en determinar qué zonas de la imagen tienen una respuesta elevada al gradiente horizontal y vertical al mismo tiempo, el propuesto por kitchen y Rosenfield que también se basa en la variación de la dirección de los gradientes, o detectores que miden la curvatura Gaussiana de una determinada superficie [10], entre otros. El algoritmo empleado [6] está basado en la técnica CCS (Curvatura Scale Space), pero con la variante que emplea un umbral de curvatura adaptativo en vez de un umbral global. Este algoritmo está detallado en [5] 4.2. GENERACIÓN DE SNAKES Figura 3.Superficie superior del objeto segmentada. 4. EXTRACCIÓN DE CARACTERÍSTICOS PUNTOS Una vez realizada la segmentación por color, hay que obtener puntos característicos de la imagen para realizar la correspondencia y posterior estimación de sus coordenadas en 3D. Las técnicas empleadas han sido por un lado la detección de esquinas del objeto, y por otro lado la generación de snakes o contornos activos. Los contornos activos ofrecen algunas ventajas frente a la obtención de esquinas, mientras que esta técnica sólo es aplicable a objetos con vértices, un contorno activo es ajustable a cualquier tipo de forma, con lo cual la morfología del objeto puede quedar definida de una forma más simple, incluso si el objeto fuera deformable. Además permiten realizar un seguimiento del desplazamiento que sufra dicho objeto ya que se van ajustando a los cambios que éste experimente. 4.1. DETECCIÓN DE ESQUINAS Un contorno activo se puede representar como una curva paramétrica v(s,t), [2], [11], dada por la ecuación (2) v( s, t ) = ( x( s, t ), y ( s, t ))∀sΩt ∈ T (2) donde s es el índice espacial definido para el intervalo Ω, y t es el tiempo definido en el intervalo T. Esta curva, en la imagen, va modificando su forma hasta encontrar el mínimo de la función de energía [6], Esnake, definida en la ecuación (3) E snake (v) = 1 2∫ [E Int (v) + E Ext (v)] ds (3) Ω En la que EInt, son las energías internas, que aportan restricciones de suavidad y están formadas por la suma de las energías elásticas, ecuación (4), y las energías de flexión, ecuaciones (5), (6) respectivamente EInt= EElastic+ ERigidez (4) 2 dv( s) ⎡ dv( s ) ⎤ , ' (5) v (s) = E Elastic (v) = α ( s ) ⎢ ⎥ ds ⎣ ds ⎦ Para realizar esta tarea se somete a la imagen a un proceso de extracción de bordes empleando el operador de canny. dv 2 ( s ) ⎡ dv 2 ( s ) ⎤ , '' = v ( s ) E Rigidez (v) = β ( s ) ⎢ ⎥ ds ⎣ ds ⎦ Según [3], las esquinas que se presentan en una imagen pueden ser debidas a dos causas, la primera, debido a que se produce una intersección en dos bordes de un objeto, y la segunda, representan una discontinuidad en los niveles de gris. En la que α es la constante de elasticidad, esta fuerza actúa contrayendo al contorno, y disminuyendo la distancia entre los puntos de control, y β es la constante de rigidez, que determina el grado en que la snake presenta cambios de curvatura pronunciados. Existen varias métodos de detección de esquinas, como por ejemplo el método propuesto por Tomasi EExt, son las denominadas energías externas, y hacen que la snake vaya hacia los límites buscados 2 (6) en la imagen ya que se ponderan los cambios de intensidad en la imagen al ajuste de los contornos. Vienen definidas por la ecuación (7) [ E Est (v ) = k ∇ ⎡⎢G ( x, y ) * I ( x, y ) ⎤⎥ ⎣ σ ⎦ ] 2 (7) donde ∇ es operador gradiente, k constante, Gσ(x,y) es una función gaussiana con una desviación estándar σ, e I(x,y) es una imagen en escala de grises. Si la imagen I(x,y) está filtrada de forma que contenga bordes, como va a ser el caso de este trabajo, la energía externa puede simplificarse y venir dada por E Est (v ) = kGσ ( x, y ) * I ( x, y ) (8) El contorno activo que minimice la Esnake deberá cumplir la siguiente ecuación de Euler αv '' ( s ) − β v ''' ( s ) − ∇E Ext . = 0 (9) es decir, tienen que igualarse las fuerzas internas y las externas. Para encontrar una solución a la ecuación (9), se realiza una discretización. Finalmente se tendrá un contorno v(s) representado por una serie de puntos de control v0, v1,…, vn-1, y una matriz k en la que estarán incluidas todas las constantes de peso de las energías, [2], [7]. La inicialización del contorno activo es una elipse cuyo centro se sitúa en el centro del objeto y con radio mayor y menor obtenidos de las dimensiones de dicho objeto, con lo que se generará un contorno activo. Después de una primera curva de inicialización el contorno activo sufre sucesivas transformaciones que hacen que el valor de la curva tienda al mínimo de energía buscado, es decir, la curva tiende a ajustarse a la forma del objeto. 5. VISION ESTEREO La visión estéreo permite la obtención de información tridimensional cuando existe más de una vista de una escena. Si se trata de dos vistas se hablará de análisis bifocal, y si se trata de tres vistas de hablará de análisis trifocal. 5.1. ANALISIS BÁSICOS BIFOCAL. Las imágenes están definidas como la proyección del espacio 3D en un plano de imagen 2D por medio de un centro óptico CL y CR, respectivamente. Se establece que un punto 3D P es visto en las dos imágenes como pR y pL (llamando pR el conjugado de pL). Para conocer la situación de pR se calcula la línea epipolar asociada a pL Esta línea epipolar es la proyección en la imagen derecha del conjunto de puntos del espacio que son proyectados a través del centro óptico CL en el punto pL de la imagen izquierda (recta CLpL). Por simetría la línea epipolar asociada a pR se construye de forma análoga. Si se traza un plano formado por la línea base (unión de ambos centros ópticos) y por el punto proyectado pL se crea el plano epipolar π. Su corte con los planos imagen va a cortar en cada uno de los planos imágenes a lo largo de las líneas epipolares. En cada una de las imágenes todas las líneas epipolares se cortan en un punto llamado epipolo (EL,ER). La figura *** muestra esta geometría epipolar. CONCEPTOS Este análisis se realiza con las imágenes capturadas desde dos cámaras, estableciéndose la geometría epipolar entre dos imágenes. CL EL pL PL P PR Tc π PLANO IMAGEN IZDO. CR ER pR Línea epipolar asociada a pL PLANO IMAGEN DCHO. Figura 4. Geometría epipolar La restricción epipolar establece que el punto correspondiente pR en la imagen derecha para un punto pL de la imagen izquierda, deberá estar situado sobre la línea epipolar asociada a éste. Esta restricción es simétrica y permite restringir a una recta la búsqueda del punto en la otra imagen. El desarrollo del cálculo de líneas epipolares puede estudiarse en [4], [9], [10], [12] Para encontrar el conjugado de un punto en la otra imagen es necesario establecer correspondencias entre dichos puntos. Existen varias técnicas como son entre otras, métodos de correspondencia basados en la búsqueda de intensidad similar entre puntos, por similitud en su entorno de vecindad, o basados en la búsqueda de alguna estructura significativa como puedan ser puntos o segmentos del contorno. En este caso debido a la elevada separación que existe entre las cámaras, las imágenes que se capturan son muy diferentes entre si y la aplicación con éxito de estas técnicas no es posible. En la siguiente figura se aprecian las diferencias que existen de una misma zona del objeto, desde cada una de las cámaras. El procedimiento funciona de forma satisfactoria, salvo en el caso que existan dos puntos diferentes sobre la misma recta epipolar. En este caso como se muestra en la figura, se produce una correspondencia errónea del punto. Figura 7. Correspondencia errónea de dos puntos Figura 5. Diferentes imágenes de una misma zona Por una parte la iluminación que tiene el objeto no es uniforme, por lo que cual la información de la iluminación como factor común en las imágenes se deshecha. Tampoco existe en el objeto alguna marca distintiva, por lo que la búsqueda de similitud por entorno de vecindad tampoco es válida. Por otro lado la geometría encontrada para un vértice/arista en una de las imágenes va a ser muy diferente a la encontrada para el mismo vértice /arista en el resto de imágenes. Por lo tanto la correspondencia que se realizará será basada en líneas epipolares, es decir, se define que dos puntos pR y pL pueden ser puntos correspondientes si la distancia mínima de pR a la recta epipolar de P sobre el plano imagen de la cámara derecha es menor que una distancia umbral. 5.2. CORRESPONDENCIAS PARA PUNTOS ESQUINA Una vez realizada la segmentación por color y segmentada la parte superior del objeto, se procede a la búsqueda de las esquinas de la superficie. En la figura 6 se muestra la extracción de esquinas de algunas imágenes Figura 6. Esquinas halladas en imagen segmentada Con los algoritmos implementados se procede a establecer la correspondencia entre las imágenes empleando análisis bifocal Esto es debido a si en uno de los planos imagen los puntos (pL1,pL2) son coincidentes, quiere decir que además de ser coplanares (π1 = π2), pertenecen a una misma recta (PL1 = PL2). Por lo que la correspondencia entre dichos puntos va a ser errónea, ya que habrá sólo un punto en la recta epipolar del epipolo EL que corte con la recta que une el centro óptico CL con los puntos P1,P2 P3 CL EL pL3 pL2 PL3 PL2 P1 PL1 π1 π2 pL1 P2 PR3CR PR1 PR2 pR1 pR2 pR3 ER π3 Figura 8. Análisis bifocal de tres puntos Para evitar estas correspondencias erróneas entre puntos diferentes, se han implementado algoritmos que realizan un análisis trifocal obteniendo resultados satisfactorios. El análisis trifocal quiere decir que se está trabajando con tres imágenes de la misma escena. Bastándose en la geometría epipolar, si se calcula la línea epipolar de pL y la línea epipolar de pR, en el plano de imagen de la cámara central se producirá la intersección de ambas líneas. En el plano de imagen derecho como en el caso bifocal se traza la línea epipolar correspondiente a PL y se buscan los píxeles que cumplan una cierta restricción de proximidad a dicha recta. Aquellos que la cumplan son píxeles candidatos PR1,PR2. Se llevan las líneas epipolares que corresponden dichos píxeles al plano imagen de la cámara central. La correspondencia se establecerá con el píxel más cercano al punto de corte de estas líneas epipolares con la línea epipolar correspondiente a PL en dicho plano de imagen P CL pL PLANO IMAGEN CÁMARA IZDA. CC RC1 CR PR PC PR2 PR1 RC2 5.3. CORRESPONDENCIA PARA PUNTOS DE CONTROL DE LA SNAKE Al igual que en el caso de detección de esquinas una vez realizada la segmentación por color, y quedándonos únicamente con la parte superior del objeto, se generó una snake que se ajustara a la forma de la superficie. Tras varias iteraciones el contorno activo se adapta a la imagen proporcionando la posición bidimensional de sus puntos de control. PLANO IMAGEN CÁMARA DCHA. PLANO IMAGEN CÁMARA CENTRAL. Figura 9. Análisis trifocal En la figura 10 Se pueden ver los resultados obtenidos de la aplicación de esta técnica sobre los puntos esquinas del objeto, y como en este caso los puntos son correctamente correspondidos. Figura 10. Resultados obtenidos del análisis trifocal Un inconveniente que surge de buscar puntos esquina es que el algoritmo de detección de esquinas no detecte todas las esquinas del objeto, y por lo tanto quede la superficie del objeto definida de forma incompleta. Por este motivo, y debido a ser un objeto que por su morfología genera escasa información superficial y esto dificulta la obtención de características del mismo, se decidió realizar el estudio generando contornos activos sobre la superficie, y empleando sus puntos de control como puntos con los que realizar la visión estéreo. Figura 11. Snake sobre objeto y puntos de control Los puntos de control calculados están prácticamente sobre el contorno del objeto, por lo que se consideró que puede ser una aproximación válida determinar que dichos puntos son puntos pertenecientes al contorno del objeto. Como en el caso de los puntos esquinas, se procede a realizar el estudio bifocal, e igualmente surge el problema de la existencia de varios puntos candidatos sobre una línea epipolar. En este caso se optó por resolver el problema estableciendo un primer punto, (plano imagen de la cámara derecha) como punto de inicio de la búsqueda de correspondencia, llamado Punto anterior, a partir de este punto se seleccionan los puntos candidatos (plano imagen de la cámara izquierda) a ser el punto conjugado. De los puntos mas cercanos a la línea epipolar el punto que esté más cerca de dicho Punto anterior será el punto conjugado tal y como se muestra en la figura 12 Punto Anterior Línea Epipolar Puntos candidatos Figura 12. Selección de puntos de control Una vez establecida la correspondencia con dicho punto, el punto candidato elegido (plano imagen de la cámara izquierda) es eliminado del vector de puntos de control y el punto con el que se realizó correctamente la correspondencia (plano imagen de la cámara derecha) pasa a ser el Punto anterior, de esta forma se van recorriendo todos los puntos de control de la imagen y buscando sus puntos conjugados en el otro plano imagen En la figura 13 se aprecian los puntos de control por un aspa roja, las líneas epipolares para cada punto, los puntos candidatos representados por un aspa amarilla y los puntos correspondidos representados por un circulo. 500 400 300 200 100 0 800 600 Figura 13. Correspondencia de puntos de control 400 200 0 -200 6. ESTIMACIÓN DE COORDENADAS 3D Basándose en el modelo pin hole [3], [10], [12] se implementó el algoritmo que permite realizar el cálculo de las coordenadas 3D de los puntos correspondidos empleando las matrices de proyección (apartado 1) de dichos puntos. Como en este estudio solamente se ha tenido en cuenta la superficie superior del objeto, el resto de puntos se han estimado, conociendo el valor de Z del objeto, como proyecciones de los puntos 3D ya calculados y generando una malla que aproxima su forma y localización en el espacio. -400 -400 -200 0 200 400 600 Figura 14. Estimación de la forma y posición de un objeto en el espacio tridimensional 7. CONCLUSIONES Se ha realizado la calibración de cámaras y el estudio de la visión estero para estimar la forma y la posición en coordenadas 3D de un objeto que se encuentra dentro de la escena. Se ha segmentado dicho objeto a partir de algoritmos que ya habían sido desarrollados, y dentro de esa segmentación se ha tenido en cuenta únicamente la superficie superior de dicho objeto con el fin de poder extraer puntos característicos que lo definieran en el espacio. A continuación se extrajeron las esquinas de la superficie y se aplicó geometría epipolar, para el caso de dos vistas. Debido a ciertas condiciones anteriormente explicadas, los resultados no fueron del todo satisfactorios, por lo que se optó por realizar un análisis trifocal de las imágenes. En este caso se consiguió obtener puntos correctamente correspondidos. Aún así se consideró que la técnica de extracción de esquinas no era la más idónea para nuestro estudio ya que presenta ciertas limitaciones en nuestro sistema como el obligar a que el objeto de 800 estudio presente unas determinadas características en su forma. Por este motivo se generaron contornos activos sobre la superficie segmentada que se ajustan a la misma a través de unos puntos (puntos de control). Estos puntos quedan sobre el contorno de la imagen por lo que se consideran que pertenecen a dicha imagen. Para poder realizar la correspondencia de forma adecuada el numero de puntos de control se mantiene siempre constante, aunque esto en principio presenta una limitación a la hora de ajustar la snake a la superficie se soluciona definiendo un numero adecuado de puntos. Posteriormente se procedió al cálculo de las coordenadas 3D de los puntos correspondidos y su representación en un espacio tridimensional. Para generar los puntos de la superficie inferior del objeto se empleó el dato de la altura del objeto. La representación obtenida da una idea de la forma y localización del objeto en el espacio. Debido a los resultados aceptables obtenidos mediante esta técnica se continuará dicho estudio para su aplicación sobre todo el objeto de forma que no sea necesario el conocimiento previo de ninguna de sus dimensiones. Además se aumentarán el número de cámaras y se dispondrán de una forma óptima para obtener más vistas de una misma escena y así poder tener una estimación más fiel del objeto que interese. Referencias [1] Bachiller Guía didáctica de la Uned de Robótica perceptual. Modelado de Objetos. [2] Blake, A., (1998). Active Contours. SpringerVerlag. [3] De la Escalera (2001). Visión por Computador. Pearson Educación. [4] Fevery B. (2007) Active Security System for an Industrial Robot based on Artificial Vision and Artificial Intelligence Techniques. UC. Santander [5] He X.., N.H.C Yung. (2004) Curvature Scale Space Corner Detector with Adaptive Threshold and Dynamic Region of Support. Proceedings of the 17th Internacional Conference on Pattern Recognition. 791-794. [6] He X. (2005) A Corner Detector based on Global and Local Curvature Properties. http://www.mathworks.com/matlabcentral/fileexch ange [7] Lefèvre S., “An Extended Snake Model for Real-Time Multiple Object Tracking”, (2002), International Workshop on Advanced Concepts for Intelligent Vision Systems. pp. 268-275 [8] Leymarie, F.F. (1990), Tracking and describing deformable objects using active contour models. McGill University. [9]Mery D. (2004) Visión por Computador. Santiago de Chile [10] Pajares G. (2001) Visión por Computador. RaMa [11] Robla S. (2006) Segmentación por color para el seguimiento de objetos mediante snakes. Jornadas de automática. [12 ] Torre Ferrero, C.Reconstrucción de piezas 3D mediante técnicas basadas en Visión Esteroscópica.ópica. [13] Sturm P.(2006) Modeling and Analysing Images of Generis Cameras. Bonn, [14] Xu,C. (1998). “Snakes, Shapes, and Gradient Vector Flow”. IEEE Transactions on Image Processing, vol. /, no 3, pp.359-359.