1. Introducción
El ruido aditivo Gaussiano q es un modelo que permite simular la afectación aleatoria de los pixeles de una imagen con valores uniformemente distribuidos. Su función de densidad de probabilidad pq(x) viene dada en términos de la media 𝜇 y la varianza 𝜎2 de una variable aleatoria x. Se expresa en la siguiente ecuación [1]:
Este tipo de ruido es muy común en las imágenes digitales. Debido a sus características es difícil de eliminar por completo.
El filtro Wiener H(u, v) es un filtro frecuencial como se expresa en la ecuación 2 [2]:
Se basa en la reducción del error cuadrático medio; mejora sustancialmente la calidad de una imagen cuando ésta es afectada con ruido Gaussiano. Requiere, sin embargo del cálculo del espectro de energía de la imagen ideal Sw(u, v), del espectro de energía del ruido Sf(u, v), cuyo cociente se aproxima por un coeficiente Γ, y de la estimación de una función de degradación D(u, v) y su conjugado D∗(u, v) . Algunas modificaciones a este filtro han sido propuestas con el fin de mejorar su desempeño y generalizar su utilización [3,4]. El cálculo aún depende de las estimaciones de dichos coeficientes, lo cual dificulta su aplicación.
El filtro Sigma también es efectivo en la eliminación del ruido Gaussiano; es ampliamente utilizado por su simplicidad, no obstante, su capacidad de preservar bordes aún se sigue mejorando, por ejemplo, por medio del pre-procesamiento de la imagen dividiéndola en dos componentes a las que se aplica el filtro Sigma por separado [5], lo cual mejora la preservación de bordes pero aumenta el tiempo de procesamiento del algoritmo y depende de un estimador del ruido para cada imagen.
Se han propuesto técnicas que utilizan la información de los bordes de la imagen contaminada, donde se aplican los principios de similitud [6]. No obstante, su proceso computacional es largo; su implementación en tiempo real en sistemas embebidos es difícil.
Entre las técnicas más recientes de filtrado de ruido Gaussiano se encuentran los algoritmos basados en onditas (wavelets) multidireccionales [7], que pueden remover el ruido y preservar los detalles como bordes y texturas. Tal es el caso del método de filtrado basado en la Transformada Directionlet que permite la reducción multidireccional al construir una matriz con las principales direcciones encontradas en la imagen para evitar eliminar bordes. Este algoritmo es laborioso y no toma en cuenta la información de similitud espacial entre los pixeles por lo que puede llevar a falsas detecciones.
Otras técnicas típicas de filtrado son los métodos de representación sobre-completa basados en bloques, como son el algoritmo de promedio ponderado óptimo [8], el BM3D [9] y el K-SVD [10]. Recientemente se desarrolló el SM3D-DCTNS [11] que consiste en la agrupación de bloques coincidentes con filtrado por medio de la transformada discreta coseno, el umbralado, la segmentación y un procesamiento posterior de restauración de bordes.
La técnica de filtrado mediante la integral fraccional de Alexander [9] trabaja mediante la construcción de máscaras fraccionales a partir del llamado polinomio de Alexander. Por medio de esta técnica la imagen es descompuesta a través de wavelets de los cuales sólo se filtran los componentes diagonal, vertical y horizontal. Dos de las principales desventajas de este método son la descomposición de la imagen en sub-andas así como el cálculo de coeficientes de forma experimental.
Dentro de las técnicas de inteligencia artificial también se han hecho propuestas para mejorar el filtrado de ruido Gaussiano, las más prominentes son las que emplean el aprendizaje para máquinas como el Ridgelet Suppport Vector Filter (RSVM) [12] que se basan en la generación de Diccionarios Multiescala generados mediante aprendizaje a partir de ejemplos (MRSVF y NCSR) y que permiten extraer las características sobresalientes asociadas con singularidades lineales y así evitar su desaparición. Dicho método consiste en el cálculo de una serie de matrices, la extracción de vectores columna centrales y la comparación con los diccionarios de las características estadísticas de las imágenes con ruido para después minimizar el error en un laborioso e iterativo proceso.
Una forma distinta de enfrentar el problema de eliminación del ruido Gaussiano en imágenes digitales ha surgido de la exploración experimental, tal es el caso de las Redes Neuronales Artificiales de tercera generación llamadas Redes Neuronales Pulso-Acopladas o por sus siglas en inglés PCNN (Pulse Coupled Neural Networks), las cuales han sido empleadas de modo eficiente para el procesamiento de imágenes en diversas tareas como la segmentación, la clasificación, la identificación de imágenes, entre otras [13].
Las redes tipo PCNN son un modelo matemático, propuesto por Eckhorn. Se basa en la frecuencia de activación de las neuronas de la corteza visual de los mamíferos [14,15]. El tiempo y frecuencia de activación de las neuronas y han sido utilizados para procesar imágenes gracias al modelo computacional simplificado de PCNN propuesto por Ranganath y Kuntimad [16].
Las propiedades del modelo PCNN permiten a cada neurona procesar un pixel y relacionar su nivel de gris con el de sus vecinos. Al iterar la Red Neuronal el tiempo de activación de cada neurona se registra en una matriz. Esta información puede ser utilizada para la detección de los pixeles con ruido y la aplicación de una técnica selectiva de filtrado de ruido Gaussiano [17, 18], para la reducción del ruido Gaussiano y de sal y pimienta mezclados [19, 20].
Diversos modelos simplificados de PCNN han sido propuestos para trabajar computacionalmente con imágenes. Dos de las principales variaciones son el Intersection Cortical Model (ICM) y el Pulse-Coupled Neural Networks with the Null Interconnections (PCNNNI) [21]. Al combinarlos con el operador de mediana, promedio y morfológico o con el filtro Wiener y la matriz de tiempos (TM) se logra reducir el ruido de Sal y Pimienta y el ruido Gaussiano en imágenes digitales, no obstante la restauración de la imagen es deficiente.
Dentro de los métodos de filtrado basados en las propiedades de las PCNN que pretenden mejorar la calidad de la imagen restaurada se encuentra la propuesta de Zhang [22]. Este método utiliza un algoritmo genético adaptativo y un filtro de difusión anisotrópica para disminuir el ruido Gaussiano. No obstante sólo es útil para valores de varianza del ruido menores a 0.009 e implica gran cantidad de cálculos para completar el filtrado.
El método ICM-TM que se propone consiste en utilizar una red ICM para generar la matriz de tiempos y aplicar selectivamente los operadores mediana y promedio para suprimir el ruido Gaussiano en imágenes digitales en escala de grises, de forma que se logre una reducción significativa del ruido con un método computacional sencillo que puede ser implementado para aplicaciones con sistemas embebidos.
2. Los modelos PCNN e ICM
Las Redes Neuronales Pulso-Acopladas son un sistema que permite emular efectivamente a las neuronas biológicas de la corteza visual de los mamíferos. Han sido aplicadas en variedad de dominios, especialmente en el procesamiento de imágenes para la remoción de ruido, reconocimiento de objetos, optimización, adelgazamiento, segmentación, fusión, identificación y remoción de sombras [14, 23].
En el ámbito del procesamiento de imágenes las diferencias entre las Redes Neuronales Artificiales tradicionales y las Redes Neuronales de tercera generación son evidentes tanto en su configuración como en su operación. Las principales diferencias son que a cada neurona corresponde un pixel y la imagen de salida es binaria (Fig. 1).
Las redes tipo PCNN (Fig. 2) no requieren de un entrenamiento. Su función es clasificar los pixeles por sus niveles de intensidad. En este modelo, cada pixel de la imagen se corresponde con una neurona. Su valor Sij es introducido a la red por medio de una señal llamada “feeding” Fij. El umbral de activación de las neuronas Tij es dinámico. Además, cada neurona recibe información de sus vecinas a través de una sinapsis, lo cual se conoce como “linking” Lij.
La señal feeding y la de linking ponderada por un factor de unión 𝛽 se combinan para formar el potencial interno de la neurona Uij , que al ser comparado con el umbral produce salidas binarias Yij. Dichas señales se ven afectadas por factores de atenuación VF, VL, VT y de amplificación 𝛼F, 𝛼L, 𝛼T ; la imagen se va procesando de acuerdo al tamaño de las matrices M y W.
Estas características hacen que las neuronas correspondientes a pixeles vecinos con valores de intensidad similares se activen al mismo tiempo en ciertas regiones, a lo que se denomina activación de pulsos síncrona [23].
El modelo original de PCNN presenta algunas limitantes en la práctica debido al gran número de interconexiones entre neuronas y al establecimiento de parámetros de operación. Por este motivo se obtuvo un modelo iterativo simplificado de PCNN que permite extender el uso de estas redes en el procesamiento de imágenes. El modelo computacional iterativo ICM se describe como sigue (3)-(5) [21]:
donde n es la iteración actual, wijkl es la matriz de pesos sinápticos que liga una neurona con sus vecinas y puede tener alguna de las siguientes formas:
y finalmente f, g y ℎ son coeficientes de ajuste, donde típicamente g < 1.0 , f < g y ℎ es un valor grande, típicamente de entre 20 y 40.
ICM es un tipo de PCNN más simple (Fig. 3), donde no se considera linking en las neuronas y donde el feeding Fij mantiene su salida con un factor de decaimiento dado por f.
La señal Fij se compone por la última salida del vecindario de neuronas Yij ponderada por una matriz wijkl (generalmente Gaussiana) y por el estímulo externo de entrada Sij (nivel de gris de cada pixel normalizado entre 0 y 1).
El umbral dinámico para cada pixel Tij crece obedeciendo a ℎ cuando su salida se activa y mantiene su estado previo con una atenuación dada por g, lo cual da origen a la formación de pulsos.
3. La matriz de tiempos (TM)
Las redes tipo PCNN pueden ser utilizadas para determinar la posición de los pixeles ruidosos con base en las neuronas activadas a la salida de la red por iteración. Al aplicar un operador de mediana que elimine los valores más altos y más bajos, es posible eliminar el ruido de Sal y Pimienta.
Para el filtrado del ruido Gaussiano es necesario emplear otra técnica ya que todos los pixeles han sido afectados en algún grado, por lo que se introduce la matriz de tiempos de las mismas dimensiones que la imagen a tratar. Esta matriz contiene información relacionada con la estructura espacial de la imagen, es decir, realiza un mapeo de la información espacial en una secuencia temporal [16].
La matriz de tiempos obtenida a partir de una red neuronal con interconexión nula PCNNNI [21] ha sido utilizada para detectar los pixeles ruidosos y procesada para reducir el ruido Gaussiano combinándola con otros métodos [17]. El modelo PCNNNI no considera la señal de linking y elimina la influencia de la matriz de pesos sinápticos, el potencial interno, umbral y salida de una neurona dependen únicamente de la intensidad del pixel correspondiente.
El método propuesto ICM-TM consiste en obtener la matriz de tiempos conservando la información de la relación espacial entre pixeles, de modo que las diferencias en la intensidad de los pixeles de la imagen originen diferencias en la secuencia de activación de sus respectivas neuronas (Fig. 4). Para almacenar el tiempo de activación de cada neurona se define una matriz Mij que puede ser descrita como (6) [18].
El algoritmo ICM-TM mantiene el rango dinámico de la imagen y complementa el proceso de filtrado obteniendo la información de la matriz de tiempos para cualquier número de iteraciones, suavizando regiones de 5 × 5 pixeles con el filtro promedio para suavizar la imagen o bien conservando información de la imagen pero suprimiendo valores extremos mediante el operador de mediana.
4. Descripción del algoritmo ICM-TM propuesto
En nuestro método todas las neuronas están ligadas mutuamente del mismo modo y sus salidas Yij tienen dos estados posibles, activado (1) y no activado (0). Este modelo es más rápido que PCNN debido a que implica menos ecuaciones y es más adaptable ya que tiene menos parámetros que ajustar. El proceso principal del algoritmo ICM-TM se lleva a cabo de manera secuencial en bloques (Fig. 5) y el algoritmo desglosado se describe en la Tabla 1.
5. Experimentos y resultados
Las pruebas experimentales fueron realizadas con imágenes estándar en escala de grises de 255 valores de la base de datos SIPI [24], con tamaño de 512 × 512 pixeles.
Durante el proceso de experimentación, se introdujo a las imágenes ruido Gaussiano de media 0 y varianza entre 0.01 y 0.09.
Los otros parámetros fueron empíricamente seleccionados para la simulación.
La matriz interna de pesos formada con valores Gaussianos en función de la distancia seleccionada fue wijkl (3x3). Las constantes: f = 0.9, g = 0.8, ℎ = 20.
En el paso 4, el operador de mediana y el operador promedio están definidos de acuerdo a lo siguiente: si xij denota al pixel con coordenadas (i, j) en la imagen con ruido y Xij denota el conjunto de pixeles en la ventana W con el vecindario (2K + 1) × (2K + 1) centrada en xij, entonces:
La mediana de la ventana de la imagen se define como
El promedio de la ventana de la imagen se define como
El algoritmo ICM-TM se comparó contra filtros clásicos, el filtro de mediana de 3 × 3, el filtro Gaussiano , el filtro Sigma y el filtro Wiener de 3 × 3, y contra el PCNNNI basado en el algoritmo de Ma [21].
Se realizó la medición de los resultados obtenidos con tres métricas, las cuales están formuladas como sigue [19]:
a) PSNR (Peak Signal to Noise Ratio, dB), el cual es utilizado para medir la habilidad de supresión del ruido. Mientras más grande sea su valor mejor es el efecto del filtrado:
b) MAE (Mean Absolute Error), indica la calidad del filtrado como la preservación de detalles finos, para lo que cual de ser minimizado:
donde M y N denotan las filas y columnas de la imagen, f(m, n) denota la imagen sin ruido y f’(m, n) es la imagen resultante del proceso de filtrado.
c) NMSE (Normalized Mean Square Error), un mejor método de filtrado debe generar un menor valor resultante de NMSE:
De manera adicional también se midió el tiempo de cómputo, utilizando Matlab 2014 en Windows 7 Ultimate SP1, con un procesador Intel Core i7 a 3.40 GHz y 8GB de RAM.
6. Desempeño del método propuesto
Para la red ICM cada salida es distinta en cada iteración y la activación de las neuronas obedece a la relación entre los niveles de gris de la imagen con ruido Gaussiano.
En este caso de media 0 y varianza 0.01 (Fig. 6). La red puede iterarse cuantas veces se requiera. Para el caso de filtrado de ruido Gaussiano se requiere encontrar información sobre el grado de contaminación de cada pixel, por lo que se analizó la matriz de tiempos.
La información de esta matriz es numérica, por lo que se pueden distinguir los pixeles que se activan por primera vez en cada iteración y se extraen los pixeles que guardan mayor información de la imagen, discriminando a los otros para eliminar la mayor cantidad de ruido no deseado en la imagen.
Para dar un ejemplo numérico del procedimiento de filtrado considérese una matriz correspondiente a una imagen en escala de grises, contaminada con ruido Gaussiano de media 0 y varianza 0.08, de la que se tomó una ventana de 6x6 pixeles Oij y su correspondiente imagen normalizada Sij:
Se introduce la imagen normalizada en la red ICM y se itera 10 veces, obteniéndose el umbral dinámico de dicha iteración Tij, los valores en x son indistintos para este ejemplo, tal es el caso de los bordes de la imagen:
Luego se obtiene el potencial interno de la matriz Fij:
Si el potencial interno de la neurona (ij) supera al valor de umbral, entonces se produce una salida en 1 para esa neurona.
Al terminar de procesar la imagen se tiene una matriz binaria de salidas Yij.
El número de iteración en el que sucede la primera activación de cada neurona se guarda en la matriz de tiempos final Mij:
La etapa de filtrado selectivo consiste en recorrer las matrices calculando la mediana de los valores de la matriz de tiempos en una ventana de 5 × 5 denotado como mediana M2,2(5 × 5 ) y comparar el valor con el correspondiente al pixel central M2,2 de la ventana considerada, cuyos valores respectivos son:
Si estas cifras son iguales, el valor del pixel correspondiente en la imagen filtrada Sdn2,2 será el promedio de los valores en esta ventana en la imagen ruidosa promedio O2,2(5 × 5 ) , en caso contrario el pixel correspondiente tomará el valor de la mediana de la vecindad de 5 × 5 de la imagen con ruido. Se procede a calcular la mediana de la ventana en la imagen con ruido mediana O2,2(5 × 5 ) y asignarlo al pixel de la imagen filtrada Sdn2,2. El proceso termina cuando se ha procesado la imagen completa:
Se realizó la comparación del método propuesto con los filtros de mediana, Wiener, Gaussiano, Sigma y el basado en PCNNNI para la imagen de Lena (Fig. 7) a la que se agregó ruido Gaussiano con varianza 0.08; se observó que la capacidad de suavizado del filtro de mediana puede ser empleado para disminuir el ruido Gaussiano que genera valores extremos en los pixeles, no obstante, no se debe aplicar este filtro de manera uniforme pues la imagen se verá afectada en detalles y bordes. Para otras regiones se debe tomar en cuenta la información presente en los pixeles por medio de un suavizado más fino como es el generado por el operador promedio.
El análisis cualitativo de la imagen ampliada hace evidente que el filtro Wiener mantiene un alto grado de ruido aunque preserva los bordes.
El filtro Gaussiano preserva bordes, disminuye el ruido al suavizar la imagen pero la imagen no es nítida.
El filtro Sigma recupera la imagen en buen grado preservando los bordes de modo claro pero el ruido aún es notorio, mientras que el método PCNNNI no elimina la mayor parte del ruido presente en la imagen. Finalmente el método propuesto muestra un mayor efecto de suavizado, los bordes mejor delimitados y el ruido menos presente.
Se repitió la prueba con distintas imágenes obteniéndose resultados similares como puede observarse para la imagen de Man (Fig. 8) con ruido Gaussiano de varianza 0.08 y para la imagen Peppers (Fig. 9) con varianza de 0.09, donde se ve en la imagen completa y el detalle ampliado que el método propuesto ICM-TM genera una mejor recuperación de la imagen con ruido.
Otros experimentos con la imagen de cameraman (Fig. 10) con ruido Gaussiano de varianza 0.08 y con la imagen de boat (Fig. 11) con varianza de 0.09 muestran que el método propuesto ICM-TM genera imágenes recuperadas visualmente con mayor calidad que otras técnicas tradicionales de filtrado y técnicas basadas en redes neuronales pulsantes.
El análisis cuantitativo de la gráfica de PSNR de las distintas técnicas comparadas cuando la varianza va de 0.01 y 0.09 (Fig. 12) permite mostrar que la supresión del ruido del método propuesto ICM-TM recupera la imagen en promedio por 9.6dB y es superior en promedio por 1.2dB a los métodos tradicionales de filtrado Sigma y Gaussiano, por 2.4dB al filtro de medina y Wiener, y por 7.8dB a la técnica basada en PCNNNI, técnica que se distingue por su desempeño no lineal.
El método propuesto muestra un buen desempeño para varianza de ruido Gaussiano de 0.02 y hasta 0.09. Si la varianza es menor a 0.02 el método propuesto recupera la imagen por 7.6dB, aunque ya no logra superar a los otros filtros.
Se determinó el MAE de las distintas técnicas (Fig. 13), la imagen con menor error es la que se obtiene por medio del método propuesto, la disminución del error es de 28 puntos.
El NMSE (Fig. 14) permite observar que el método propuesto ICM-TM tiende a minimizar esta métrica por debajo de los otros métodos Conforme la varianza del ruido aumenta el error de la imagen contaminada y la capacidad de recuperación de los filtros disminuye.
Los experimentos con distintas imágenes a las que se agregó ruido Gaussiano de varianza 0.08, muestran la capacidad de los métodos para recuperar la imagen del ruido en valores de PSNR (Tabla 2).
Se repitió el experimento con ruido Gaussiano de varianza 0.09 (Tabla 3). Los resultados en PSNR permiten observar la recuperación para cada método donde destaca la técnica ICM-TM.
Se realizaron experimentos para varianzas de ruido Gaussiano de 0.003 a 0.04 que corresponden a una desviación estándar de entre 5 y 50 (Tabla 4). Se muestra que cuando la varianza es baja el filtro Wiener es el que obtiene un mejor resultado y cuando la varianza el método propuesto ICM-TM es el de mejor desempeño; no obstante la técnica BM3D muestra superioridad en PSNR para este rango de ruido filtrado.
7. Conclusiones y trabajo futuro
Los resultados obtenidos muestran que el método de filtrado ICM-TM propuesto supera en desempeño a los filtros tradicionales como filtro Gaussiano, Sigma y Wiener en promedio por 1.2 dB según PSNR a 0.02 y por 28 puntos en MAE y por 0.2 en NMSE para varianzas superiores. Permite relacionar vecindades de pixeles y no requiere cálculos estadísticos ni complejos, del mismo modo aprovecha las características de los filtros promedio y mediana al aplicarlos selectivamente; mientras que el método BM3D supera a los métodos comparados en PSNR, para el rango de varianza dado, y es de mayor complejidad.
Por otro lado ICM-TM supera a PCNNNI [18] en promedio por 7.8dB, y requiere 80% menos tiempo de procesamiento, además no se realiza un cambio del rango dinámico de la imagen, se considera la relación entre neuronas vecinas y se tienen que ajustar menos parámetros.
En cuanto al tiempo de procesamiento el promedio para PCNNNI fue de 160s, para el filtro de Mediana de 0.028s, para el filtro Wiener de 0.036s, para el método BM3D de 5.8s, para ICM-TM de 20s, por lo que la complejidad del método es acorde con el tiempo de procesamiento aunque éste puede ser mejorado mediante procesamiento en paralelo.
El trabajo futuro se centrará en la exploración de PCNN con variantes y la elección de los coeficientes de ajuste por medio de algoritmos evolutivos, así como en la búsqueda de un operador que permita un mejor ajuste de los valores de la imagen para preservarlos detalles, el estudio profundo de la matriz de tiempos y tomando en cuenta las frecuencias para la localización de los pixeles que guardan mayor información de la imagen discriminando aquellos que presentan mayor grado de ruido.
También se pretende estudiar el comportamiento del filtro como sistema dinámico y su desempeño sobre algunas imágenes artificiales que se enfoca a características específicas como bordes y líneas. Finalmente una vez que se haya mejorado el algoritmo se llevarán a cabo comparaciones con otras técnicas de filtrado y por medio de criterios como la similitud estructural (ssim).