Algoritmo Genetico
Algoritmo Genetico
Algoritmo Genetico
de Ingeniería Industrial,
Informática y de Telecomunicación
Existen muchas técnicas para solucionar este problema. Una de ellas son los operadores
Fuzzy Inference Ruled by Else-action (FIRE), enfocados a la eliminación de ruido
impulsivo Sal y Pimienta.
En la propuesta original, los valores de estos parámetros son fijos por lo que puede
acarrear que los resultados no sean todo lo buenos que pudieran ser.
Palabras clave
Una imagen digital es una representación bidimensional de una imagen en forma de una
matriz numérica. En las imágenes representadas en escala de grises, los píxeles están
representados con un valor numérico entero que está entre 0 y 255.
Uno de los principales problemas que se encuentran hoy en día es la aparición de ruido
en imágenes digitales. Las principales fuentes de ruido aparecen durante las fases de
adquisición y transmisión de imágenes. Existen muchos tipos de ruido y entre los más
conocidos se encuentran algunos como el gaussiano o impulsivo.
Para la eliminación o minimización del ruido existen muchos métodos como el proceso
de filtrado. Son un conjunto de técnicas cuyo objetivo principal es obtener, a partir de
una imagen inicial con un determinado ruido, otra final cuyo resultado sea otra imagen
con mejor calidad.
Los principales objetivos que se buscan con la aplicación de filtros son suavizar la
imagen, eliminar el ruido, realce y detección de bordes.
Lógica difusa
El concepto de lógica difusa fue concebido por Lofti A. Zadeh en 1965. Zadeh estaba
inconforme con los conjuntos clásicos que solo permitían dos opciones (la pertenencia
o no de un elemento a dicho conjunto), y presentó la lógica difusa como una forma de
procesar la información permitiendo pertenencias parciales a unos conjuntos.
La intención original del Zadeh fue la de crear un formalismo para manipular de forma
más eficiente la imprecisión y la vaguedad del razonamiento humano expresado
lingüísticamente. Sin embargo, causó cierta sorpresa que el éxito de la lógica difusa
Algoritmos genéticos
En la década de los ochenta, el interés por la biología como fuente de inspiración para
las ciencias de la computación comienza a ser una realidad entre los científicos, que
vieron como este interés y su posterior desarrollo les ha llevado a logros nunca antes
pensados. Logros que se han conseguido con desarrollos como las redes neuronales, el
aprendizaje o la computación evolutiva y sus algoritmos genéticos.
Objetivos
Los objetivos de este proyecto son varios. El objetivo inicial es entender y conseguir
replicar el algoritmo FIRE, desarrollado por Fabrizio Russo en 1998.
Otros de los objetivos de este proyecto, consisten en realizar una serie de propuestas o
modificaciones sobre la propuesta original. Estas propuestas radican en la optimización
de los parámetros utilizados por los conjuntos difusos. En la propuesta original estos
parámetros son fijos durante todo el proceso pero que en las propuestas que se
realizarán, se modificarán para que sean variables con el fin de otorgar mayor libertad
al algoritmo genético y tratar de conseguir mejores resultados.
Por último se pretende idear un sistema que sea capaz de entrenar con varias
imágenes con ruido Sal y Pimienta para obtener un sistema final que pueda ser capaz
de utilizarse sobre cualquier otra imagen con este ruido y conseguir unos resultados
satisfactorios. Este sistema viene ideado porque creemos que no tiene sentido el idear
un algoritmo para tratar de forma individual a una imagen. Pensamos que lo
importante es idear un sistema que pueda ser aplicado a cualquier imagen.
Cuanto más bajo sea el valor, más oscuro será el píxel y viceversa. De esta forma, un
píxel con valor 0 corresponde a negro y un píxel con valor 255 a blanco.
0 4 103
47 200 60
En las imágenes digitales en color, cada píxel está representado por 3 valores numéricos
denominados RGB (Red, Green, Blue) que son el nivel de intensidad en cada uno de esos
3 colores.
2.1.2 Ruido
El ruido digital es la variación de manera aleatoria de la intensidad o color en una imagen
digital. Las principales fuentes de ruido surgen durante la adquisición y/o transmisión
de las imágenes.
Algunos de los ruidos comúnmente encontrados son el gaussiano y sal y pimienta que
se describen en las siguientes secciones.
El efecto de este ruido es que en general se generan valores aleatorios que variarán
poco respecto del valor original del píxel. La mayor parte de los valores establecidos
quedaran similares al original pero con alguna pequeña modificación tal y como puede
verse en la figura 2-5, donde la imagen de la izquierda muestra la imagen original y a su
derecha la imagen con ruido gaussiano.
El efecto final de este ruido es que ciertos píxeles de forma aleatoria cambian a el valor
máximo (sal=blanco) o el mínimo (pimienta=negro), tal y como puede verse en la figura
2-7, donde la imagen de la izquierda muestra la imagen original y a su derecha la imagen
con ruido impulsivo Sal y Pimienta.
Los filtros se pueden clasificar en dos grandes grupos: filtros que trabajan en el dominio
del espacio y filtros en el dominio de la frecuencia.
donde f(x,y) es el valor del píxel en la imagen original y f’(x,y) es el valor del píxel en la
imagen filtrada.
Cuanto menor sea el valor de MSE, más parecida es la imagen filtrada a la imagen
original. En la situación ideal en la que el filtrado es perfecto, el MSE obtenido será 0.
(𝐿𝐿 − 1)2
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 = 10 log10
𝑀𝑀𝑀𝑀𝑀𝑀
Cuanto mayor sea el valor de PSNR, más parecida es la imagen filtrada a la imagen
original. En la situación ideal en la que el filtrado es perfecto, el PSNR obtenido será +∞.
A: {(ui, μA(ui))| ui є U}
donde μA: U→ [0,1] es tal que μA(ui) є [0,1] denota el grado de pertenencia del elemento
ui al conjunto A.
Por lo tanto, cuanto más cerca esté el valor de μA(ui) a 1, mayor será el grado de
pertenencia de ui en A. Cuando A es un conjunto en el sentido clásico, su función de
pertenencia puede tomar sólo dos valores 0 y 1, es decir μA(ui) = {1 o 0} cuando ui
pertenece o no pertenecen a A, respectivamente.
Asimismo, no hay un valor cuantitativo que defina el término joven. Para algunas
personas, 25 años es joven, mientras que para otras, 35 es joven. Incluso el concepto
puede ser relativo al contexto. Un presidente de gobierno de 35 años es joven, mientras
que un futbolista no lo es. Sin embargo hay cosas que están claras: una persona de 1
año es joven, mientras que una de 100 años no lo es. Pero una persona de 35 años tiene
posibilidades de ser joven (normalmente dependen del contexto). Para representar este
hecho, definiremos el conjunto joven de modo que cada uno de sus elementos (edades)
pertenezca a él con cierto grado (posibilidad).
Por ejemplo podemos modelar el conjunto difuso joven para la edad utilizando una
función de pertenencia como la mostrada en la figura 2-8. En este caso, una persona
será completamente joven cuando tenga menos de 25 años y no será para nada joven
cuando tenga más de 50. En las edades intermedias, los grados de pertenencia irán
siendo menores progresivamente.
Algunos de los términos más utilizados en el ámbito de los conjuntos difusos son:
Estas tres operaciones definidas para conjuntos difusos cumplen, al igual que en la teoría
clásica de conjuntos, asociatividad, conmutatividad y distributividad, así como las leyes
de Morgan. Sin embargo, existen dos leyes fundamentales de la teoría clásica de
conjuntos como son el Principio de contradicción 𝐴𝐴 ∪ ¬𝐴𝐴 = U, y el Principio de exclusión:
𝐴𝐴 ∩ ¬𝐴𝐴 = ø que no se cumplen en la teoría de conjuntos difusos.
Ejemplos de t-norma:
Ejemplos de t-conorma:
Algunas de las ventajas de estos algoritmos son que hacen un uso inteligente de las
búsquedas llevadas a cabo en problemas de optimización y aunque son aleatorios, se
ayudan de información pasada para orientar la búsqueda en el futuro. Además son más
robustos que otros métodos de la inteligencia artificial. Es decir, son menos sensibles a
pequeñas variaciones en los parámetros iniciales o a perturbaciones debidas a ruido,
información incompleta, etc. Igualmente la búsqueda en espacios de soluciones muy
grandes es más efectiva que con otros métodos de Inteligencia Artificial. En particular,
son muy apropiados para llevar a cabo búsquedas en espacios de soluciones muy
grandes o para lograr combinaciones óptimas de elementos que, de otra forma,
resultaría temporalmente muy costoso, si no imposibles de obtener.
Los algoritmos genéticos parten de una serie de individuos o soluciones que constituyen
la población. Éstos se utilizan para generar los individuos de la siguiente población. Las
soluciones para crear una nueva población se eligen teniendo en cuenta su adaptación
al problema a resolver. Este proceso se repite hasta que se cumpla una condición dada
(número de iteraciones máximas alcanzadas, solución perfecta encontrada, etc.)
COMIENZO
1-SELECCIONAR padres
FIN
Cromosoma 1: 001001100110
Cromosoma 2: 101111000010
En el ejemplo de una codificación binaria, Cada gen puede cambiar su valor (de
0 a 1 o de 1 a 0) con probabilidad p, como se puede ver en la figura 2-10.
K=1 K=2
El algoritmo FIRE está enfocado en la eliminación del ruido impulsivo Sal y Pimienta y
preservación del detalle. También es utilizado como método de detección de bordes
pero no está contemplado en este proyecto.
El algoritmo FIRE se basa en operaciones mediante las cuales se va tratando cada píxel
de la imagen teniendo en cuenta su ventana de vecindad (3x3).
En el proceso del tratamiento de la imagen con ruido, se obtienen las llamadas variables
de entrada Δ para cada píxel en función de su vecindad de la siguiente manera:
Es decir, cada variable de entrada Δx𝑗𝑗 se calculará restando el valor de cada vecino
menos el píxel central con lo que tenemos 8 variables de entrada para cada regla. De
0 1 0 1 0 1 0 0
Figura 2-13: Ejemplo de representación de una regla
𝐼𝐼𝐼𝐼 (Δx2 , 𝐿𝐿𝑃𝑃) 𝐴𝐴𝐴𝐴𝐴𝐴 (Δx4 , 𝐿𝐿𝐿𝐿) 𝐴𝐴𝐴𝐴𝐴𝐴 (Δx6 , 𝐿𝐿𝐿𝐿) 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 (Δy, PO)
𝐼𝐼𝐼𝐼 (Δx2 , 𝐿𝐿𝐿𝐿) 𝐴𝐴𝐴𝐴𝐴𝐴 (Δx4 , 𝐿𝐿𝐿𝐿) 𝐴𝐴𝐴𝐴𝐴𝐴 (Δx6 , 𝐿𝐿𝐿𝐿) 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 (Δy, NE)
Ilustración 2-1: Representación de una regla LP y LN
Al aplicar cada regla como PO y NE, hace que estén diseñadas para hacer frente a los
impulsos de ruido positivo y negativo (Sal y Pimienta).
Una vez calculadas estas variables de entrada, se fuzzifican mediante dos conjuntos
difusos etiquetados LP (large positive) y LN (large negative). La función de pertenencia
del conjunto difuso LP es la siguiente:
Para poder realizar este proceso (fuzzificar las variables de entrada mediante LP y LN) es
necesario un cálculo previo del parámetro ‘a’.
El cálculo del parámetro ‘a’ viene formulado a partir de una nueva función de
pertenencia:
Tanto los parámetros 𝑎𝑎0 , 𝑎𝑎1 , 𝑎𝑎2 de esta función de pertenencia, como los parámetros b
y c de la anterior, vienen fijados por el autor y sus valores son 128, 120, 40, 127 y 0.5
respectivamente. Estos valores no cambian en ningún momento durante el proceso del
algoritmo FIRE. L es el máximo del rango de los valores que puede tomar un píxel, es
decir, 255.
Después de realizar el proceso de fuzzificacion (LP y LN), estos valores fuzzificados serán
los que realmente les lleguen a las variables de las reglas como se muestra en la
Ilustración 2-1.
En general se debe considerar más de un patrón a la hora de aplicar una regla con el fin
de tener en cuenta las posibles combinaciones de ruido en píxeles adyacentes. Como se
ha comentado anteriormente, está generación de reglas automáticas se realizara en el
proceso del algoritmo genético.
Δy = (L − 1)(λ1 − λ2 )
donde
Una vez calculado el valor de salida Δy, nuestro nuevo valor para el píxel central será
igual a la suma de su valor y Δy. Si no se satisface ninguna regla (todos los bits son iguales
a 0), el valor del píxel central no se modifica (se quedará con el mismo valor).
Por último, el algoritmo FIRE se apoya en el uso de un algoritmo genético para generar
la base de reglas de forma automática.
Cada cromosoma es una cadena binaria de M x 8 bits que representa una base de reglas
completa. Cada una de estas cadenas contiene M substrings. Cada substring representa
un total de 8 reglas debido al siguiente motivo:
Por cada substring realizaremos tres giros (90, 180 y 270 grados). Para el ejemplo
anterior, mostrado en la Figura 2-16, las cadenas resultantes son las siguientes:
0 1 0 1 0 1 0 0 Inicial
0 0 0 1 0 1 0 1 90 grados
0 1 0 0 0 1 0 1 180 grados
0 1 0 1 0 0 0 1 270 grados
Con este procedimiento generaremos 3 reglas más. Si las añadimos a la regla inicial son
4 reglas. Estas cuatro reglas se aplicaran tanto a LP y a LN por lo que se pueden
considerar 8 reglas. Para el resto de substrings se realiza el mismo proceso por lo que al
final tenemos un total de M * 4 reglas * 2(LP y LN) para aplicar.
Una vez recorrida la imagen y con el fin de poder medir el error que hemos generado
con la base de reglas que representa el cromosoma tratado en cada momento, la función
de Fitness (será nuestra medida para evaluar a cada individuo de la población) viene
definida como:
1 (𝑁𝑁1 − 2)(𝑁𝑁2 − 2)
𝐹𝐹 = =
𝑀𝑀𝑀𝑀𝑀𝑀 ∑𝑁𝑁1 −2 ∑𝑁𝑁2 −2(𝑦𝑦(𝑛𝑛 , 𝑛𝑛 ) − 𝑠𝑠(𝑛𝑛 , 𝑛𝑛 ))2
𝑛𝑛1 =1 𝑛𝑛2=1 1 2 1 2
Este cromosoma ha sido fijado como el inicial. Tiene 24 elementos por lo que tiene 3
substrings de 8 bits y como se ha descrito en la generación de reglas, se generaran 24
reglas.
Los parámetros de los conjuntos difusos a fuzzificar son fijos durante todo el programa
son:
𝑎𝑎0 128
𝑎𝑎1 120
𝑎𝑎2 40
b 127
c 0,5
En el proceso del ajuste del algoritmo genético, el autor no detalla nada acerca de
ninguno de sus parámetros. No impone método de selección de progenitores, cruce,
mutación, etc. Por ello, se va a detallar los utilizados en ésta y en las demás propuestas.
Todos ellos están explicados detalladamente en los Conceptos preliminares.
Al iniciar el algoritmo genético, la población inicial está formada por 20 individuos (el
cromosoma inicial impuesto y 19 aleatorios).
Para cruzar los progenitores se usa el cruce por un punto. En nuestro caso, al estar
compuesto el cromosoma por M cadenas de 8 bits, se realiza un cruce por cada Substring
(en nuestro caso 3). Además, el cruce se realiza con una probabilidad de 0,9. En caso de
no producirse, los descendientes serán los propios progenitores.
La mutación se realiza sobre cada gen y tiene una probabilidad de realizarse de 0,05.
Una vez se evalúan los nuevos descendientes (20 individuos), la siguiente generación
estará formada por los 20 mejores individuos (de entre la generación actual y los
descendientes nuevos). Es decir, se aplica el mayor nivel de elitismo posible para guiar
la búsqueda completamente por las mejores soluciones.
El algoritmo original deja fijos los parámetros 𝑎𝑎0 , 𝑎𝑎1 , 𝑎𝑎2 , 𝑏𝑏 𝑦𝑦 𝑐𝑐, por lo que puede estar
limitando la calidad de las soluciones. Por este motivo se propone añadir estas variables
dentro del cromosoma.
Un detalle a tener en cuenta tanto a la hora de crear estos nuevos parámetros reales de
forma aleatoria como en el cruce es que siempre tiene que cumplirse 𝑎𝑎1 ≥ 𝑎𝑎2 por la
propia definición del conjunto difuso para obtener el valor “a”.
Otra puntualización que merece ser destacada es que los parámetros 𝑎𝑎0 , 𝑎𝑎1 , 𝑎𝑎2 𝑦𝑦 𝑏𝑏 se
tienen que encontrar siempre en el rango [0,255] y c en [0,1].
128 120 40 127 0,5 128 120 40 127 0,5 128 120 40 127 0,5 128 120 40 127 0,5 128 120 40 127
0,5 128 120 40 127 0,5 128 120 40 127 0,5 128 120 40 127 0,5
En esta propuesta al igual que en la propuesta Ajuste de los parámetros del conjunto
difuso LP, no se hará distinción de parámetros para los conjuntos difusos LP y LN. La
única diferencia es que el proceso de fuzzificar los conjuntos difusos LP y LN habrá uno
por cada componente Δx𝑗𝑗 (𝐿𝐿𝐿𝐿1 , … , 𝐿𝐿𝐿𝐿8 ).
Al igual que en todas las propuestas, el procedimiento (aplicación del algoritmo FIRE y
proceso de recuperación y limpia) como la configuración del algoritmo genético son
exactamente igual al explicado en la propuesta Implementación del algoritmo FIRE.
Con este último planteamiento se pretender ir un paso más allá y sacar más partido a
las ventajas de un algoritmo genético. Para ello se ha modificado la estructura de todo
el algoritmo para que en vez de limpiar una imagen con ruido, lo haga con varias. El
objetivo de este nuevo algoritmo es que se pueda realizar una primera fase de
aprendizaje con varias imágenes con ruido sal y pimienta para obtener un cromosoma
(el mejor) sobre esas imágenes de entrenamiento. Toda la propuesta sigue el mismo
procedimiento que el algoritmo original pero adaptado a más de una imagen.
Una vez tenemos el cromosoma ganador (el que mejor se ajusta a esas imágenes de
entrenamiento) se aplica la segunda fase que se corresponde con la recuperación de la
imagen y limpieza pero adaptada a cualquier imagen (las de entrenamiento y/o nuevas).
De esta forma, se ha construido un sistema capaz de poder entrenar con “X” imágenes
de entrenamiento y en base al cromosoma obtenido, tratar cualquier otra imagen con
ruido que se presente.
Imagen 2 (de
train) con
Imagen 2 (de
ruido Imagen 2
test) con Imagen 2 Final
tratada
FIRE + Alg ruido
Cromosoma Ganador
genético
. .
. .
. .
. .
. .
. .
Imagen N (de Imagen M (de
Imagen M Imagen M
train) con test) con
tratada Final
ruido ruidot
Este algoritmo general se puede aplicar con cualquiera de las propuestas anteriores. De
hecho este algoritmo general se emplea con cada una de las 4 versiones anteriormente
para la siguiente sección de resultados.
Imágenes de entrenamiento
venice.png
nat7.png portofino.png
Se han realizado las pruebas con las mismas imágenes pero con diferentes densidades
de ruido (0.1, 0.18 y 0.3). Para el desarrollo de las pruebas se han utilizado los algoritmos
propuestos en el capítulo anterior:
128 120 40 127 0,5 128 120 40 127 0,5 128 120 40 127 0,5 128 120 40 127 0,5 128 120 40 127
0,5 128 120 40 127 0,5 128 120 40 127 0,5 128 120 40 127 0,5
Cada fila de la tabla 4-1 corresponde a los resultados de una imagen de test.
Las columnas de la tabla 4-1 son: la imagen original sin ruido, la imagen con nivel de
ruido 0.1, las imágenes resultantes de cada uno de las propuestas (algoritmos 1-4) y las
imágenes resultantes de los filtros de la Mediana y Median_base impulsive detector.
Esta estructura será igual para los otros dos niveles de ruidos expuestos en los apartados
posteriores.
Cada celda se compone de dos elementos. El valor que aparece a la izquierda de cada
celda, corresponde con el valor del Error Cuadrático Medio de cada algoritmo para cada
imagen. Para cada fila, el elemento que mejor Error Cuadrático Medio tenga de todos
(el más bajo) aparecerá en negrita. Además, el mejor de los cuatro algoritmos
propuestos aparecerá subrayado.
En función de ese valor, en la parte derecha de cada celda, aparece un número entre
paréntesis. Este valor sirve para realizar un ranking entre todos los valores de la fila.
Estos valores van del 1 (el mejor) hasta número total de métodos, 6 (el peor de todos).
La última fila de la tabla contiene dos elementos. El valor superior realiza una media de
estos rankings con el fin de proporcionar una idea de la calidad de cada uno de los
métodos. El elemento inferior, corresponde con el número de veces que el método
obtiene el mejor ranking.
Para el nivel de ruido 0,1 se observa como el algoritmo 1 y 3 son claramente mejor al
resto con una media de ranking de 1,67 y 1,85 respectivamente. A pesar de tener un
ranking parecido el algoritmo 1 es mejor en 16 de las 27 imágenes utilizadas mientras
que el algoritmo 3 es mejor en 7. También es destacable que la diferencia entre ambos
algoritmos (error cuadrático medio) es muy pequeña para cada imagen.
También se puede ver como entre los dos filtros el de la mediana actúa mucho mejor
que el Median_base impulsive detector aunque ambos obtienen mucho peores
resultados que cualquiera de las propuestas y no consiguen ser el mejor en ninguna
ocasión.
Por último cabe comentar la curiosidad de que el algoritmo que mejor funcione sea el
1, a pesar de ser el que menos parámetros de aprendizaje tiene por lo que pasa este
nivel de ruido se puede concluir que el hecho de añadir más parámetros al cromosoma
para que se desarrolle con más libertad y se obtengan mejores resultados no se cumple.
Filtro
Algoritmo Algoritmo Algoritmo Algoritmo Filtro de la Median_base
1 2 3 4 Mediana impulsive
detector
Lena 37,57 (1) 69,94 (4) 50,02 (2) 63,42 (3) 108,34 (5) 215,01 (6)
5.2.10 132,97 (1) 159,69 (4) 134,46 (2) 154,66 (3) 402,32 (5) 615,29 (6)
Einstein 26,83 (1) 48,80 (3) 36,14 (2) 50,63 (4) 83,79 (5) 148,14 (6)
Indor1 3,58 (1) 23,85 (4) 10,91 (2) 24,75 (5) 20,71 (3) 30,82 (6)
Indor2 7,73 (1) 26,87 (4) 13,56 (2) 26,41 (3) 28,56 (5) 50,76 (6)
Test1 467,47 (4) 395,31 (1) 455,64 (3) 430,26 (2) 682,72 (5) 719,09 (6)
Venice 148,18 (3) 140,50 (2) 140,38 (1) 155,09 (4) 351,04 (5) 502,48 (6)
4.1.04 16,71 (1) 42,65 (3) 25,25 (2) 42,65 (3) 52,40 (5) 105,66 (6)
4.1.06 63,89 (1) 88,15 (4) 65,95 (2) 83,83 (3) 165,97 (5) 275,75 (6)
4.2.05 54,90 (1) 71,58 (3) 59,80 (2) 73,80 (4) 167,55 (5) 264,25 (6)
4.2.06 78,33 (1) 103,84 (4) 85,33 (2) 102,67 (3) 241,86 (5) 367,47 (6)
Aerial2 50,53 (1) 88,01 (3) 66,81 (2) 89,16 (4) 146,41 (5) 310,61 (6)
Barche 55,05 (1) 77,78 (3) 60,50 (2) 82,99 (4) 164,81 (5) 287,76 (6)
Car2 200,51 (2) 196,23 (1) 202,43 (3) 225,08 (4) 355,05 (5) 419,22 (6)
Casa 24,29 (1) 48,50 (4) 34,43 (2) 47,26 (3) 72,35 (5) 135,52 (6)
Donna 18,43 (1) 39,89 (4) 26,50 (2) 39,34 (3) 62,31 (5) 146,38 (6)
Ealine.512 31,45 (1) 54,06 (3) 41,08 (2) 56,82 (4) 92,46 (5) 182,62 (6)
Goldhill 44,66 (1) 66,02 (4) 47,41 (2) 65,14 (3) 150,64 (5) 277,70 (6)
Hedgebw 53,93 (1) 91,28 (4) 68,40 (2) 77,71 (3) 152,83 (5) 332,88 (6)
House 78,28 (1) 100,76 (3) 81,97 (2) 101,89 (4) 244,74 (5) 384,26 (6)
Indor3 9,03 (1) 32,31 (4) 18,49 (2) 28,02 (3) 41,44 (5) 58,64 (6)
Indor4 11,81 (1) 33,37 (3) 24,99 (2) 36,57 (4) 44,31 (5) 77,37 (6)
Indor5 28,99 (1) 51,32 (3) 41,83 (2) 58,08 (4) 72,10 (5) 118,56 (6)
Indor7 18,00 (1) 36,46 (3) 22,08 (2) 39,84 (4) 40,01 (5) 93,69 (6)
Nat6 11,74 (1) 37,96 (4) 19,92 (2) 31,06 (3) 38,86 (5) 72,98 (6)
Nat7 55,77 (1) 85,31 (3) 67,87 (2) 87,55 (4) 161,18 (5) 257,47 (6)
Portofino 49,17 (1) 74,85 (4) 56,23 (2) 72,87 (3) 188,95 (5) 307,71 (6)
MEDIA 1,22 3,30 2,04 3,48 4,85 6,00
(Ranking) (24) (2) (1) (0) (0) (0)
Tabla 4-4: Resultados para densidad de ruido 0,18
Se observa como el algoritmo 1 es sin ninguna duda el mejor. Con una media de 1,22 y
siendo el mejor en 24 de las 26 imágenes, es decir, en todas menos dos.
El algoritmo 3 queda asentado como segundo método. A pesar que solo consigue ser el
mejor en una imagen, sus diferencias de error cuadrático medio con el algoritmo 3 para
cada imagen son relativamente pequeñas.
Los algoritmos 2 y 4 tienen una media muy pareja de 3,30 y 3,48 respectivamente.
Aunque no tienen una media muy alta, el algoritmo 2 consigue ser el mejor método en
2 imágenes.
También se puede ver como entre los dos filtros, el de la mediana actúa mejor que el
Median_base impulsive detector, aunque ambos lo hacen mucho peor que cualquiera
de las propuestas, como se puede observar en el ranking.
Para el nivel de ruido 0,18 y a vista de los resultados se puede concluir que el incluir más
parámetros en el cromosoma con el fin de dejarle más autonomía en la búsqueda de
una mejor solución, no garantiza que acabe siendo así ya que el algoritmo 1 es
claramente el mejor.
Filtro
Algoritmo Algoritmo Algoritmo Algoritmo Filtro de la Median_ba
1 2 3 4 Mediana se impulsive
detector
Lena 101,25 (1) 115,38 (2) 184,74 (3) 201,76 (4) 364,05 (5) 460,12 (6)
5.2.10 271,21 (1) 282,20 (2) 375,00 (4) 373,56 (3) 696,59 (5) 874,94 (6)
Einstein 86,69 (2) 84,37 (1) 175,14 (3) 194,05 (4) 324,19 (5) 374,10 (6)
Indor1 20,65 (1) 34,09 (2) 92,98 (3) 138,53 (4) 183,83 (5) 191,09 (6)
Indor2 49,63 (1) 50,68 (2) 112,98 (3) 134,05 (4) 243,31 (5) 266,84 (6)
Test1 1029,66 (4) 860,33 (1) 903,23 (2) 978,29 (3) 1375,72 (5) 1409,72 (6)
Venice 282,89 (2) 259,03 (1) 341,45 (3) 358,47 (4) 634,54 (5) 786,13 (6)
4.1.04 52,31 (1) 79,93 (2) 149,04 (3) 163,69 (4) 261,86 (5) 308,29 (6)
4.1.06 143,47 (1) 174,55 (2) 236,93 (4) 233,52 (4) 459,10 (5) 551,94 (6)
4.2.05 161,31 (2) 154,88 (1) 228,66 (4) 213,16 (3) 427,26 (5) 520,28 (6)
4.2.06 176,98 (2) 167,11 (1) 245,26 (3) 253,87 (4) 491,70 (5) 603,55 (6)
Aerial2 104,32 (1) 114,33 (2) 196,31 (3) 217,72 (4) 373,90 (5) 505,24 (6)
Barche 111,05 (2) 110,03 (1) 182,42 (3) 218,77 (4) 391,43 (5) 492,51 (6)
Car2 293,39 (2) 268,61 (1) 339,29 (3) 398,89 (4) 567,20 (5) 623,85 (6)
Casa 80,04 (2) 77,34 (1) 163,69 (4) 161,92 (3) 304,10 (5) 357,57 (6)
Donna 45,95 (1) 63,77 (2) 112,71 (3) 130,62 (4) 267,12 (5) 354,33 (6)
Ealine.512 69,55 (1) 89,88 (2) 172,34 (3) 176,35 (4) 296,36 (5) 373,37 (6)
Goldhill 117,23 (1) 123,31 (2) 176,14 (3) 222,49 (4) 379,31 (5) 480,17 (6)
Hedgebw 131,63 (1) 162,65 (2) 239,05 (3) 227,66 (4) 432,70 (5) 593,21 (6)
House 202,58 (2) 196,98 (1) 275,79 (3) 275,96 (4) 501,87 (5) 616,66 (6)
Indor3 38,78 (1) 84,89 (2) 127,01 (3) 143,05 (4) 259,69 (5) 280,55 (6)
Indor4 42,89 (1) 60,28 (2) 131,34 (3) 145,50 (4) 240,95 (5) 271,07 (6)
Indor5 70,41 (1) 75,05 (2) 154,84 (4) 152,70 (3) 270,66 (5) 310,09 (6)
Indor7 49,24 (1) 52,01 (2) 133,19 (3) 137,26 (4) 229,11 (5) 271,90 (6)
Nat6 40,56 (1) 63,82 (2) 130,81 (3) 150,70 (4) 223,07 (5) 257,76 (6)
Nat7 144,56 (2) 125,71 (1) 217,20 (4) 210,86 (3) 401,51 (5) 477,00 (6)
Portofino 125,01 (1) 141,10 (2) 206,81 (3) 229,27 (4) 427,03 (5) 522,48 (6)
MEDIA 1,41 1,63 3,19 3,78 5,00 6,00
(Ranking) (17) (10) (0) (0) (0) (0)
Tabla 4-6: Resultados para densidad de ruido 0,3
Se observan unos resultados bastante parejos entre el algoritmo 1 y 2. Tienen una media
de ranking de 1,41 y 1,63 respectivamente. Entre los dos algoritmos ocupan la primera
posición del ranking para todas las imágenes, siendo el algoritmo 1 el mejor en 17
imágenes y el algoritmo 2 en 10.
Los filtros de la mediana y median-base impulsive detector funcionan mucho peor que
las propuestas. Entre ellos, el de la mediana obtiene mucho mejores resultados que el
median-base impulsive detector.
Tras la realización del estudio experimental y en base a los resultados obtenidos en las
pruebas para cada uno de los niveles de ruido, se pueden resaltar las siguientes
lecciones aprendidas:
Para un nivel de ruido bajo (0.1), la propuesta que mejor funciona es el algoritmo 1
(Algoritmo general de limpieza + algoritmo FIRE original). Aunque es el mejor método
en 16 de las 27 imágenes, el algoritmo 3 (Algoritmo general de limpieza + Ajuste de los
parámetros del conjunto difuso LP y LN) posee una media de ranking bastante similar.
Si el algoritmo 1 tiene un 1,67 de media, el algoritmo 3 posee 1,85. A pesar de ello, la
realidad es que es algoritmo 1 es el mejor método en líneas generales. Los algoritmos 2
y 4 obtienen unos resultados bastante similares entre ellos pero muy discretos en
comparación a los algoritmos 1 y 3. Aunque a priori se pudiera pensar que añadiendo
más parámetros al cromosoma con el fin de otorgar más libertad de aprendizaje al
algoritmo genético, no se obtiene un mejor patrón de eliminación del ruido.
Para un nivel de ruido intermedio de densidad 0.18, el algoritmo 1 sigue siendo el mejor
método. Si para el nivel anterior de ruido era el mejor en 16 imágenes, en este, es mejor
en 24 de las 26 imágenes. A pesar de ser el mejor con tanta contundencia al ver los
datos, se puede destacar que las diferencias de error con el segundo mejor método (el
algoritmo 3) para cada imagen son mínimas. Aunque el algoritmo 3 vuelve a ser el
segundo mejor método, su media de ranking es un poco peor que para el nivel de ruido
0,1 y pasa de ser el mejor en 7 imágenes a 1. Si el algoritmo 3 funcionaba casi tan bien
como el algoritmo 1 para un nivel de ruido 0.1, se puede apreciar como para un nivel de
ruido superior no lo hace tan bien ya que pasa a ser el segundo mejor método al tercero.
Por lo tanto, para un nivel de ruido intermedio tampoco se cumple que incluir más
Para un nivel de ruido alto (0,3), el algoritmo 1 vuelve a tener los mejores resultados.
Hay que decir que a pesar de ser el mejor, el algoritmo 2 (Algoritmo general de limpieza
+ Ajuste de los parámetros del conjunto difuso LP) obtiene unos resultados muy
similares. La media de ranking del algoritmo 1 es de 1,41 por 1,63 del algoritmo 2. En
este caso el algoritmo 1 es el mejor en 17 imágenes por 10 del algoritmo 2. Se puede
destacar que el hasta ahora siempre segundo mejor método (el algoritmo 3) pasa a la
tercera posición y no consigue ser el mejor en ninguna imagen. Con esto se puede
afirmar que a medida que aumenta la densidad de ruido, el algoritmo 3 obtiene peores
resultados mientras que con el algoritmo 2 ocurre justo lo contrario.
Durante el proyecto se han trabajado con imágenes de 256x256 píxeles tanto en train y
test. Una posible prueba es ver cómo se comporta el sistema si cambiamos los tamaños
de las imágenes. Es decir, entrenar con un determinado tamaño y luego utilizar
imágenes de test con un tamaño mayor o menor. Esto puede ser muy interesante, ya
que si se consiguen buenos resultados al eliminar el ruido, se pueden reducir mucho los
tiempos de entrenamiento y/o de test.
Además, otro posible estudio pudiera ser el ver cómo se comporta el algoritmo FIRE ante
imágenes con otros tipos de ruido distintos al ruido impulsivo Sal y Pimienta.
Por otra parte, el algoritmo FIRE utiliza siempre ventanas de vecindad 3x3. Una posible
modificación puede ser probar a aumentar este tamaño de vecindad a (5x5, 7x7, etc) y
comprobar si su funcionamiento es mejor. Habría que modificar también el número de
entradas en función de ese tamaño de vecindad.