DETECCIÓN DE DISCONTINUIDADES Y MEJORA DE CONTRASTES MEDIANTE EL CÁLCULO DE GRADIENTES USANDO REDES NEURONALES CELULARES (CNN) M. A. Jaramillo Morán*, J. A. Fernández Muñoz*. E. Martínez de Salazar Martínez** *Dpto. Electrónica e Ingeniería Electromecánica. ** Dpto. de Expresión Gráfica. Escuela de Ingenierías Industriales. Avda. de Elvas s/n. Universidad de Extremadura. Badajoz. Spain. Tlf.: 34-924-289628. E-mail: miguel@unex.es, jalvaro@unex.es, dsalazar@unex.es. Resumen La detección de bordes mediante la localización de discontinuidades en el nivel de gris de una imagen digital es una de las aproximaciones más utilizadas en el área del Procesamiento Digital de Imágenes (PDI). El presente trabajo revisa los conceptos básicos de los métodos de detección de bordes mediante filtrado espacial para proporcionar una técnica basada en una estructura de procesamiento paralelo: la Red Neuronal Celular (CNN). Las ventajas de utilizar esta estructura sobre el procesamiento secuencial clásico consisten en la posibilidad de incluir información de polarización y realimentación local en cada una de las capas de procesamiento, reduciendo tanto el tiempo de cálculo como el número de etapas del proceso de detección mediante una adecuada definición de los parámetros de la red. Así mismo, se presenta un método de aplicación de información de borde para conseguir una mejora de contrastes localizada en los pixeles de borde de una imagen. Palabras Clave: Procesamiento Digital de Imágenes, Filtros Espaciales, Redes Neuronales Celulares, Detección de Bordes. 1 INTRODUCCIÓN El problema de la detección de bordes en imágenes digitales se ha abordado en la literatura desde dos puntos de vista diferentes: técnicas orientadas al pixel, y técnicas orientadas a la región. Las técnicas de detección de bordes orientadas al pixel se basan en la detección de discontinuidades (transiciones fuertes) en la información de los pixeles de una imagen, mientras que las técnicas orientadas a la región determinan el proceso de detección mediante una medida cuantitativa de ciertas propiedades de un grupo conexo de pixeles (p. e. continuidad, energía, similitud estructural, etc.) [6]. Las aproximaciones orientadas al pixel se clasifican en función del dominio donde se realiza la detección de discontinuidades: espacio (máscaras espaciales), frecuencia (filtros de Fourier) y espacio/frecuencia (filtros de subbanda). La transformada discreta de Fourier (DFT) determina de manera biunívoca la correspondencia entre cualquier señal digital 2D definida en el dominio del espacio (p. e. una imagen) y su espectro frecuencial [1]. Las transformadas de subbanda (p. e. Gabor, DCT, o Wavelet) tienen la propiedad de poseer una localización en ambos dominios: espacio y frecuencia [11]. Las técnicas orientadas a la región se dividen, a su vez, en dos grupos principales: técnicas de umbralización y técnicas de segmentación de texturas. Las técnicas de umbralización realizan un estudio del histograma de la imagen, para detectar modos o componentes principales que determinan la ocurrencia de ciertas propiedades (p. e. nivel de gris), de los pixeles que forman objetos visualmente discernibles en una imagen digital. Los umbrales se determinan como los valores intermedios entre distintos modos del histograma. Una vez determinados los umbrales, la detección de bordes se completa mediante la aplicación de un proceso de verificación de pertenencia a los distintos grupos definidos por los umbrales [7]. Por otro lado, las técnicas de segmentación de texturas realizan una medida cuantitativa de propiedades inherentes a un conjunto de pixeles que conforman una textura. Esta medida se lleva a cabo mediante la definición de descriptores de textura. Entre las aproximaciones más importantes se hallan las definidas por descriptores estadísticos de Markov y Gibbs [12], y las definidas por medidas de energía de transformadas de subbanda [8]. El presente trabajo se engloba dentro de las técnicas orientadas al pixel, y más concretamente en las técnicas de filtrado espacial. El documento se organiza como sigue: en la sección 2 se revisa el concepto de filtrado espacial y se definen las máscaras o filtros más importantes para la detección de discontinuidades. En la sección 3 se define el modelo de red neuronal que llevará a cabo la detección de bordes, mientras que la sección 4 analiza el comportamiento del modelo en varios ejemplos de aplicación. La sección 5 presenta un método de mejora de contrastes local mediante información de borde, y, finalmente, la sección 6 se dedica al análisis final de las técnicas estudiadas en las secciones anteriores. 2 FILTROS ESPACIALES PARA DETECCIÓN DE BORDES De aquí en adelante, utilizamos una representación vectorial para definir las máscaras espaciales. En concreto, si definimos w1, w2, ... , w9 como los coeficientes de una máscara 3 x 3, siendo x1, x2, ... , x9 los pixeles de la imagen sobre los cuales actúa la máscara en cualquier posición de la misma, podemos definir los vectores w y x como los vectores columna de los coeficientes y de los niveles de gris, respectivamente. La ecuación de filtrado espacial queda como w T x = w1 x1 + w2 x 2 + + w x 9 9 (1) donde wT indica la transposición del vector columna w. Esta notación permite trabajar con máscaras de cualquier tamaño, n x n, mediante la definición de vectores columna de dimensión n2. El filtrado espacial se realiza tomando entornos n x n alrededor de cada pixel de la imagen, y calculando el nuevo valor del pixel a partir de la ecuación (1). La idea básica de la mayoría de técnicas de detección de borde es la definición de un operador de derivada. Para una transición abrupta de nivel de gris de una región a otra en una imagen, la derivada primera en esa transición dará el valor de rampa, es decir, una medida de la discontinuidad. A veces la primera derivada no resulta suficiente para determinar con exactitud un borde, debido a una pérdida de nitidez en el proceso de digitalización [6]. En estos casos, la primera derivada da un valor de rampa, que la segunda derivada se encarga de anular. La segunda derivada da valores abruptos, que definen la transición en sí. La magnitud de la primera derivada puede usarse para detectar la existencia de un borde, y el signo de la derivada segunda puede utilizarse para determinar si el pixel de borde se halla en una zona de fondo oscuro o claro. Las técnicas de filtrado espacial para la detección de discontinuidades se basan en la aproximación de un operador de derivada. La primera derivada se realiza mediante el uso del operador gradiente, que se define como un vector bidimensional de la forma: ∂f ∂f (2) G[ f ( x, y )] = G x G y = ∂x ∂y El vector G apunta en la dirección de máxima variación de f en la posición (x,y). Para detección de bordes, normalmente se atenderá más a su [ ] magnitud, denotada G[f(x,y)] y a la que se denomina simplemente gradiente, donde [ G[ f ( x, y )] = Gx2 + G y2 ] 1 2 (3) Esta cantidad equivale a la máxima variación de f(x,y) por unidad de distancia en la dirección de G. En la práctica, es común aproximar el gradiente por la suma de los valores absolutos de las componentes de G: G[ f ( x , y ) ] ≈ G x + G y (4) Esta aproximación es considerablemente más fácil de implementar y, por tanto, menos costosa en tiempo de cálculo. De la ecuación (2), vemos que la obtención del vector gradiente conlleva el cálculo de derivadas parciales. Estas pueden calcularse de varias maneras. Una aproximación consiste en diferencias de primer orden en vecindarios 2 x 2 (máscaras de Roberts) [6], donde el filtro toma valores +1 y –1 en las dos diagonales principales. Otra manera ligeramente más complicada puede formularse a partir de máscaras 3 x 3. En este caso, la primera derivada en la dirección horizontal se calcula mediante: Gx = ( x7 + 2 x8 + x9 ) − ( x1 + 2 x2 + x3 ) (5) El uso de un área 3 x 3 tiene la ventaja de que el resultado es más suave que el obtenido mediante el operador 2 x 2, tendiendo a hacer las operaciones de derivada menos sensibles al ruido. El hecho de asignar los pesos centrales con valor mayor que los de los extremos aumenta así mismo este suavizado. Estas máscaras se denominan operadores de Sobel. Una ligera modificación de esta máscara es el filtro de Prewitt, donde los valores de wi iguales a 2 se sustituyen por 1, manteniendo el signo [6]. Para llevar a cabo el cálculo de la segunda derivada de una función 2D, se define el operador laplaciano de la forma L[ f ( x, y )] = ∂2 f ∂2 f + ∂x 2 ∂y 2 (6) El laplaciano discreto o digital para el punto (x,y) se define como L[ f ( x, y )] = x2 + x4 + x6 + x8 − 4 x5 (7) Esta operación puede realizarse mediante la definición de una máscara 3 x 3. Aunque el laplaciano responde a transiciones de intensidad, rara vez se utiliza por sí solo en detección de bordes. Ello es debido a que, al ser un operador de derivada segunda, es muy sensible al ruido. Por tanto, este operador se relega a un segundo plano, para decidir normalmente si un pixel de borde pertenece a la parte clara u oscura del mismo. Sin embargo, la convolución del operador laplaciano sobre un filtro gaussiano da resultados más aceptables en imágenes ruidosas. Este tipo de filtro se conoce como LOG (laplaciano del gaussiano) [6], y depende fundamentalmente del tamaño del filtro gaussiano que se haya elegido. En la Figura 1 se resumen todos los operadores definidos en esta sección. BSobel N − S − 1 − 2 − 1 1 0 = 0 0 0 BRoberts N −S = 0 − 1 2 1 1 0 1 − 1 − 1 − 1 1 0 0 BLaplaciano = 0 − 4 0 BPrewitt N − S = 0 1 1 0 1 1 1 BLOG5 x 5 0.052 0.082 = 0.050 0.082 0.052 0.082 0.008 - 0.198 0.050 - 0.198 - 0.587 0.082 0.008 - 0.198 0.008 - 0.198 0.008 0.082 0.050 0.082 0.052 0.082 0.050 0.082 0.052 Figura 1. Máscaras espaciales para la detección de discontinuidades: Sobel, Prewitt, Roberts, laplaciano y laplaciano del gaussiano (LOG) 5 x 5. 3 Entre los modelos de Redes Neuronales (RN) dedicados a PDI, el más importante es el modelo de Red Neuronal Celular (CNN) [4][5]. Esta estructura basada en los principios de la lógica celular y dedicada prioritariamente al PDI [3][10][9], se describe mediante las siguientes relaciones: dz ij (t ) dt =− + 1 z ij (t ) + ∑ A(i, j; k , l ) ⋅ y kl (t ) (8.1) Rx C ( k ,l )∈N r ( i , j ) ∑ B(i, j; k , l ) ⋅ u kl +I C ( k ,l )∈N r ( i , j ) yij = ( 1 zij (t ) + 1 − zij (t ) − 1 2 { ) N r (i , j ) = C ( k , l ) max{k − i , l − j }≤ r (8.2) } 4 CNN PARA DETECCIÓN DE DISCONTINUIDADES El modelo de CNN utilizado en este trabajo es idéntico al desarrollado en un trabajo anterior [9]. El modelo se caracteriza por poseer una salida del tipo sigmoide en cada neurona de la red de la forma: LAS REDES NEURONALES CELULARES (CNN) C actividad celular; yij(t) la salida de la red; u la entrada constante externa a la red; y B y A matrices de conexión que describen respectivamente la conectividad de entrada y de realimentación. La ecuación (8.1) describe la actividad de la celda, siendo A y B a menudo simétricas. En muchos casos Bij = 0, por lo que la matriz de condiciones iniciales de la ecuación diferencial (8.1) se toma como entrada a la red. La ecuación (8.2) representa la salida de la red, que es una función lineal a tramos, aunque se puede considerar también una función sigmoide [10] o de base radial [3]. Todas las celdas tienen el mismo esquema sináptico con valores fijos: la llamada plantilla de clonación, la cual tiene un campo de acción determinado por la ecuación (8.3), que define el entorno de cada elemento de la red, Nr, al cual se extiende la conectividad sináptica. La principal diferencia con otros modelos de RN estriba en que los pesos sinápticos no almacenan ningún modelo previamente aprendido, representando únicamente un esquema de conexiones adecuado para realizar una tarea específica. Esta forma del conexionado, simple y repetitivo, hace del modelo una estructura muy atractiva para realizar tareas de PDI. (8.3) para i = 1, ..., M y j = 1, ..., N, donde C es un condensador de entrada, que es el mismo para todas las celdas; Rx una resistencia de entrada; I es la corriente de polarización de entrada, también igual para todas las celdas, que actúa como un umbral para la actividad neuronal; zij(t) describe la y( x ) = 1 1 + e −S⋅x (9) donde S es la ganancia de la función. Esta función asegura una transformación de las variables de estado de la red al intervalo [0,1]. En [9] se demuestra la dualidad entre el filtrado espacial clásico y la CNN. Para ello se define una plantilla de control B de la ecuación (8.1) idéntica a la máscara espacial utilizada en la ecuación (1). El aprovechamiento de otros parámetros, como la polarización I y la realimentación A, permite la definición de filtros espaciales más complejos. En este apartado presentamos una estructura de CNN multicapa orientada a la detección binaria de bordes en una imagen en escala de grises. Esta información será la base para las técnicas de mejora de contrastes desarrolladas en la sección 5. Los operadores utilizados para la detección de bordes son los filtros de gradiente de Sobel, Prewitt y Roberts y los filtros laplaciano y LOG presentados en la sección 2. Los filtros de Sobel y Prewitt realizan una detección direccional del borde, en las direcciones N-S, E-O, S-N y O-E. Así mismo, las máscaras de Roberts están orientadas en las direcciones NO-SE, SO-NE, SE-NO y NE-SO. Para realizar una detección de bordes no direccional, se propone la siguiente red multicapa: suma pixel a pixel de las salidas de la Capa 1, es decir, uij = YijN-S +YijE-O +YijS-N +YijO-E. Esta subred obtiene una detección de bordes binaria no direccional de la imagen original. (a) (b) (a) (b) (c) (d) (c) (d) (e) (f) (e) (f) (g) (h) (i) (j) Figura 2. Salidas de la Capa 1. Detección orientada de bordes mediante máscaras de gradiente: (a) Imagen original: Lenna 300 x 300, (b)-(e) filtros de Sobel orientados S-N, E-O, N-S y O-E, (f) Salida de la Capa 2: Detección no orientada (Sobel). • • Capa 1: está formada por cuatro subredes de detección orientada de bordes para las máscaras de Sobel, Prewitt y Roberts. Para los filtros laplaciano y LOG, sólo es necesaria una subred, debido a la detección no orientada de estos operadores. Cada una de las subredes de detección orientada se definen con parámetros idénticos (A=0, R=C=1 y S=100), a excepción de la plantilla de control B, que se gira para obtener una orientación específica. El valor de la polarización es I=-0.5 para los filtros de Sobel y Prewitt, y de I=-0.25 para las máscaras de Roberts. La ganancia de la función sigmoide (9) se establece con un valor muy alto para obtener una salida binaria, donde los pixeles con valor 1 pertenecerán a elementos de borde. Capa 2: Las salidas de las subredes de la Capa 1 se suman mediante una subred definida con los mismos parámetros que las de la Capa 1, a excepción de la plantilla de control (B=1, filtro unitario), y la imagen de entrada, que ahora es la Figura 3. Salidas de la Capa 1. Detección de bordes mediante máscaras de gradiente: imagen Lenna (Fig. 2.a), (a)-(d) filtros de Prewitt S-N, E-O, N-S y O-E, (e) salida de la Capa 2: detección no orientada (Prewitt), (f-i) detección orientada: filtros de Roberts 2 x 2, (j) Capa 2, detección no orientada (Roberts). En las Figuras 2 y 3 se ofrecen los resultados de detección orientada de la imagen Lenna (Fig. 2.a) para los filtros de Sobel (Fig. 2.b-e), Prewitt (Fig. 3.a-b) y Roberts (Fig. 3.f-i). Los resultados de la salida de la Capa 2 se ofrecen en las Figuras 2.f (Sobel), 3.e (Prewitt) y 3.j (Roberts). Nótese la progresiva disminución de la información de borde en los resultados de estas figuras. El filtro de Sobel, al poseer coeficientes mayores que el de Prewitt, detecta el borde con mayor intensidad. Por otra parte, el filtro de Roberts proporciona una salida de información de gradiente mucho menor que las máscaras anteriores debido, sobre todo, al tamaño del filtro (2 x 2). Por ello, se ha elegido un valor de polarización para las cuatro subredes de la Capa 1 y la subred de la Capa 2 igual a la mitad de las definidas para el resto de máscaras. A pesar de ello, nótese la ausencia de información de la Fig. 3.j con respecto a las Figs. 2.f y 3.e. La detección de bordes de Sobel realiza la mejor aproximación a la detección no orientada, en vista de los resultados obtenidos. (a) (b) Figura 4. Salida de la Capa 1: Detección de bordes no orientada mediante máscaras de segundo orden, imagen Lenna (Fig. 2.a), (a) filtro laplaciano, (b) filtro LOG 5 x 5. En la Figura 4 se ilustran los resultados obtenidos por la Capa 1 para los filtros de detección de discontinuidades de segundo orden: laplaciano (Fig. 4.a) y LOG (Fig. 4.b) sobre la imagen de la Figura 2.1. Dadas las características de estos filtros, el operador laplaciano ha sido umbralizado por un valor de polarización I=-0.25, mientras que para el filtro LOG se ha definido I=0. Este valor de polarización depende fundamentalmente de los valores del filtro LOG de la Figura 1 (cuanto menores sean los coeficientes del filtro, menor será también la respuesta del mismo, por lo que habrá que adecuar la polarización para cada tipo de filtro utilizado). La respuesta de esta red es muy similar a la proporcionada por la red de Sobel (Fig. 2.f), pero mantiene una mayor suavidad en los contornos de los bordes más fuertes (p. e. la parte inferior izquierda del ala del sombrero). 5 MEJORA DE CONTRASTES EN ZONAS DE BORDE Los resultados de la red multicapa definida en la sección 4 pueden ser utilizados para llevar a cabo una mejora de contrastes localizada que aproveche la información de borde determinada por la estructura anterior. El objetivo de la red es mejorar los bordes globales de la imagen original, pero manteniendo el resto de la información intacta. La estructura propuesta es la siguiente: • • Capas 1 y 2: se definen como en la sección anterior para realizar una detección de bordes no orientados. Capa 3: se diseña para transformar la imagen de entrada en otra cuyos bordes queden muy resaltados, mientras que el resto de la imagen se deja sin modificar. Esto se consigue mediante la definición de una ganancia adaptativa para la función sigmoide de salida de la subred de esta capa, S=10·YCapa2 + 4, donde YCapa2 es la imagen de salida de la Capa 2. De esta manera, cuando la entrada a una neurona de la subred de esta capa sea un pixel previamente clasificado como borde por la Capa 2, se asigna una alta pendiente (Sborde=14) a su función de salida y se realiza una binarización de este pixel. La pendiente aplicada al resto de pixeles es la más próxima a la lineal [9] y viene dada por Simagen = 4. El resto de parámetros que definen esta capa son: A=0, R=C=1, B=1 e I=-0.5. La imagen de entrada es la imagen original, como en la Capa 1. El resultado final del proceso se muestra en las Figuras 5.b-f. En ellas se muestran las diferencias sobre la imagen original (Fig. 5.a) al procesar esta imagen mediante esta estructura multicapa definida para los filtros de Sobel (Fig. 5.b), Prewitt (Fig. 5.c), Roberts (Fig. 5.d), laplaciano (Fig. 5.e) y el laplaciano del gaussiano (Fig. 5.f). La imagen procesada es prácticamente idéntica a la original, excepto en los pixeles que cada grupo de filtros detecta como bordes. La mayoría de estos filtros localizan perfectamente la parte inferior izquierda del ala del sombrero, así como la parte superior izquierda. Nótese, por ejemplo, en la Fig. 5.b el borde artificial blanco generado por la red en estas zonas. Sin embargo, el borde generado por el operador LOG (Fig. 5.f) es de color oscuro, lo que hace resaltar también el borde real del sombrero respecto del fondo de la imagen en esa zona. De los resultados de la Figura 5 podemos ver también cómo los procesados de Sobel y Prewitt (Figs. 5.b-c) generan un borde artificial demasiado abrupto en algunas zonas, por ejemplo el ojo izquierdo de la chica. Este comportamiento puede reducirse aplicando un factor de realimentación a la subred de la Capa 2 para que realice un suavizado de los bordes orientados de la entrada. Otra opción es utilizar en la plantilla de control un filtro previamente suavizado. Esta técnica es la utilizada por el conocido método de detección de bordes de Canny [2], así como por el operador LOG. bordes detectados. Así mismo, la unión en un solo paso de los procesos de filtrado y umbralización presenta una mejora frente a los métodos clásicos. En la sección 5 se ha presentado una aplicación de estos detectores de borde para una mejora visual de contrastes localizada en los pixeles de borde. Mediante la definición adaptativa de la pendiente de la función de salida, se propone una técnica elegante para realizar este filtrado. Agradecimientos (a) (b) Este trabajo ha sido financiado con el Proyecto de Investigación de la Junta de Extremadura Número de Referencia IPR98A016. Referencias (c) (d) (e) (f) Figura 5. Salida de la Capa 3: Mejora del contraste localizada en los bordes de la imagen (a) Lenna, 300 x 300, con detección de bordes mediante: (b) máscaras de Sobel, (c) filtros de Prewitt, (d) filtros de Roberts, (e) filtro laplaciano y (f) filtro LOG. Aparte de la agudeza visual producida, queda claro que la mejora de contrastes realizada sobre los bordes de una imagen hace que los objetos presentes en la misma aparezcan más resaltados. Esto implica una mejora visual de la imagen en sentido global. 6 CONCLUSIONES En este trabajo se ha realizado una aportación a las técnicas espaciales de detección de discontinuidades para su aplicación en un sistema de mejora controlado por información de borde. En la sección 2 se han revisado los filtros espaciales más importantes utilizados para la detección de bordes. La estructura multicapa descrita en el apartado 4 presenta la ventaja de estar implementada en una estructura de procesamiento paralelo: la Red Neuronal Celular. Mediante el uso de filtros de suavizado en las plantillas de realimentación puede lograrse una mejora sustancial en la calidad de los [1] Brigham, E. O. (1974). The Fast Fourier Transform, Prentice-Hall. [2] Canny, J. F. (1986). “A Computational Approach to Edge Detection”, IEEE PAMI, 8(6), pp. 679-698. [3] Chua, L. O., Roska, T. (1993). “The CNN Paradigm”. IEEE Trans. Circ. Syst. I: Fund. Theory Appl., 40(3), pp. 147-156. [4] Chua, L. O., Yang, L. (1988). “Cellular Neural Networks: Theory”. IEEE Trans. Circ. Syst., 35(10), pp. 1257-1272. [5] Chua, L. O., Yang, L. (1988). “Cellular Neural Networks: Applications”. IEEE Trans. Circ. Syst., 35(10), pp. 1273-1290. [6] González, R. C., Woods, R. E. (1993). Digital Image Processing, Addison-Wesley, Reading,. [7] Jain, A. K. (1989). Fundamentals of Digital Image Processing, Prentice-Hall. [8] Jain, A. K., Farrokhnia, D. (1991). “Unsupervised Texture Segmentation Using Gabor Filters”, Pattern Recog., 24(12), pp. 1167-1186. [9] Jaramillo, M. A, Fernández, J. A. (1998). “Aplicación de las Redes Neuronales Celulares (CNN) al Filtrado de Imágenes en Escala de Grises”, Acta XIX J. Autom., Madrid, pp. 327-332. [10] Jaramillo, M. A., López, F. J., Macías, M., Acevedo, M. I. (1995). “A CNN Model for Grey Scale Image Processing”, Lect. Notes in Computer Science, nº 930, Springer-Verlag, Berlín, pp. 882-889. [11] Simoncelli, E. P., Adelson, E. H. (1990). “Subband Transforms”, MIT Media Lab Vis. Mod. Tech. Rep., nº 137, pp. 143-193, Cambridge. [12] Vilariño, D. L., Cabello, D., Mosquera, A. (1995). “Optimization Neural Networks for Image Segmentation”, Lect. Notes in Comp. Science, nº 930, Springer-Verlag, Berlín, pp. 860-867.