Download RED NEURONAL ALTERNATIVA BASADA EN DETECCIÓN DE

Document related concepts

Perceptrón multicapa wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Redes neuronales probabilísticas wikipedia , lookup

Redes neuronales convolucionales wikipedia , lookup

Red neuronal prealimentada wikipedia , lookup

Transcript
RED NEURONAL ALTERNATIVA BASADA EN DETECCIÓN DE BORDES
JORGE RAMÍREZ
Resumen­­­­­El objetivo de este trabajo consiste en la realización de detectar contornos (bordes) de una imagen mediante una red neuronal multicapa (mlp). que permite la conexión entre la neurociencia y la ingeniería.
1.Introducción La técnica de detección de bordes es utilizada en distintas aplicaciones en el tratamiento de imágenes. Esta técnica actualmente es crucial porque los bordes pueden ser reconocidos en un tiempo menor a las técnicas utilizadas hoy en día.
Los bordes se definen como cambios bruscos en el perfil de la imagen. La extracción de contornos, consiste en la separación de elementos significativos de la superficie de los objetos. Los contornos resumen la mayor parte de la información de una imagen.
2. Detección de contornos utilizando redes neuronales
2.1 Arquitectura de la red MLP
La red neuronal tiene en total 40 celdas, que se encuentran organizadas de la siguiente forma:
•
Capa de entrada: 9 neuronas.
•
Capa oculta: 30 neuronas.
•
Capa de salida: 1 neurona
La red neuronal con su estructura de tipo MLP: •
Usa propagación hacia delante, forward propagation.
•
Tiene una capa de entrada, una capa oculta y una capa de salida
•
La información ingresa a la capa de entrada y es manipulada en todas las celdas, entonces se envían a la capa de salida.
Y el método back propagation (BP) es utilizado en el proceso de actualización de los parámetros.
•
El método BP es el método más utilizado dentro de la literatura
•
El método BP se basa en la reducción de parámetros con una función costo
En este trabajo se utiliza la función de activación donde cada nodo usa la función sigmoidal:
f(x)=1/(1+e^(­x))
2.2 Etapas de entrenamiento
Esta red neuronal tiene dos etapas de entrenamiento:
•
Entrenamiento de la capa de entrada
•
Entrenamiento de la capa oculta y Entrenamiento de la capa de salida
2.2.1 Entrenamiento de la capa de Entrada
Se obtiene una máscara de imagen de 3x3 que es multiplicada con la imagen original que son usadas como entrada a la red en el entrenamiento. Cada una de las 9 celdas de entrada se conectan a cada una de las 30 celdas de la capa oculta. Los valores que son ingresados a las 9 celdas de la capa de entrada son calculados con el método del gradiente decreciente que corresponde a un vector igual a la derivada parcial de la función de error respecto de cada uno de los pesos, lo que lleva consigo un decremento del error para que luego los resultados son utilizados en la capa oculta.
2.2.2 Entrenamiento de la capa oculta y de la capa de salida
Se utiliza el método backpropagation (BP) .
En este método, el error de salida de la red es distribuido para conectar los pesos y estos parámetros son actualizados iterativamente para minimizar el error. Se entrena la red y se repite esta operación.
El proceso de detección de borde usa una máscara, esto se hace con una matriz de 3x3. Los valores de la matriz son multiplicados con los pixeles de la máscara y los resultados obtenidos son agregados a los otros valores obtenidos, luego, los nuevos valores se escriben en el conjunto de datos calculados y se obtiene un punto medio para ir variando el valor de ellas a lo largo de su rango registrando el valor de salida de la red. Después de esta operación, los contornos son definidos en la imagen.
Inicialmente se consideraron 12 neuronas en la capa oculta como lo señalaba el Paper, sin embargo el error no se acercaba a la salida deseada. Por lo cual se aumentó la cantidad de neuronas de la capa oculta a 30, con el objetivo de disminuir el error, así al obtener varios puntos vemos reflejada una curva que aproxima mas parámetros, luego existe una mayor posibilidad de disminuir el error.
•
Se lee la imagen
•
Se calcula el valor de la posición (i,j) de la imagen, del cual entrega un valor
•
El valor obtenido se multiplica por la máscara Laplaciana
•
El valor obtenido de mask(i,j)=gi el cual es ingresado a la neurona i
•
Se definen 9 neuronas de entrada, 30 neurona en la oculta y 1 neurona de salida, en esta neurona luego de entrenar la red se obtiene un punto el cual se unirá al conjunto de resultados hasta completar la totalidad de puntos de la imagen.
2.2.3 Parámetros de entrada
Durante el proceso de entrenamiento se utilizan los siguientes valores de los parámetros:
Valores iniciales de los pesos: tomados aleatoriamente entre [­1 1]
El error promedio se encuentra entre 0.50 y 0.55
Épocas de entrenamiento: 50
2.3 Tiempos y Errores Obtenidos
Se debe señalar que la cantidad de épocas recomendadas en el paper es de 3500, sin embargo tras realizar diversas pruebas de entrenamiento con distintas cantidades de épocas, alguno de los resultados fueron los siguientes :
2.3.1 Entrenar_Red
Aquí veremos el tiempo que demora en mostrar el borde obtenido de solo un trozo de la imagen original, donde se le dedico un 20 % al entrenamiento de la Red.
Épocas
3500
1000
500
100
50
2.3.2 Probar_Red_Entrenada
Tiempo 50 Minutos
14 Minutos
7 Minutos
2 Minutos
1 Minutos
Error
0,57356
0,51597
0,5274
0,51744
0,56122
Para probar el correcto funcionamiento del entrenamiento ya realizado, nos situamos en Probar_Red_Entrenada, donde se encuentra el 80 % restante que corresponde a Prueba, aquí vemos el tiempo que tarda en mostrar el borde de toda la imagen original .
Épocas
3500
1000
500
100
Tiempo
90 Minutos
42 Minutos
35 Minutos
21 Minutos
50
15 Minutos
Por tanto al realizar una gran cantidad de entrenamiento con diferentes cantidades de épocas se puede llegar a establecer que uno de los entrenamientos más óptimos es con una cantidad de 50 épocas debido a que el tiempo de entrenamiento es bastante menor y la diferencia de error es mínima con respecto a las 3500 épocas de entrenamiento.
2.3.3 Visualización del Borde
Nuestra imagen escogida, para realizar la detección de borde es Cameraman.tif con la posibilidad de escoger una imagen que sea un archivo de tipo jpg, cabe también señalar que debemos detectar si es o no una imagen a color, si no lo es entonces debemos pasarla a escala de grises a través de I=rgb2gray(I).
Como se señalo anteriormente el entrenamiento de la red es realizado en Entrenar_Red donde se tomo solo una parte de la imagen para entrenar aquí se puede ver el trozo de la figura original de Cameraman Fig(1), y donde posterior al entrenamiento realizado nos muestra el borde obtenido de ella Fig(2).
Fig(1) Fig(2) Imagen Original Cameraman.tif Detección de Borde
Con 20% de entrenamiento tras la realización del entrenamiento
Luego para probar el correcto funcionamiento del entrenamiento ya realizado entonces nos vamos a Probar_Red_Entrenada donde se encuentra el 80% restante que corresponde a prueba. Aquí se mostrará la imagen original completa de Cameraman.tif o de una imagen JPG, ver Fig(3) donde posteriormente se desplegará una nueva imagen, que corresponderá al borde detectado de toda la figura, ver Fig(4).
Fig(3) Fig(4)
Imagen Original Completa de Cameraman.tif Imagen con Borde detectado
3.Conclusiones
La detección de borde es muy importante en el procesamiento de imágenes. En este trabajo se presentó un método de detección de borde donde se utilizó la red neuronal. La imagen Cameraman.tif específicamente fue utilizada para la detección de borde que usa Laplacian, el método de producir los bordes de la imagen. La red neuronal utiliza estos bordes que fueron detectados con un porcentaje definido en el entrenamiento para aprender a definir los bordes de la imagen completa. De esta forma podemos señalar que las redes neuronales son una alternativa bastante buena para la detección de borde.