RECONOCIMIENTO DE IMAGENES CON REDES NEURONALES HOW TO

 

Traducción del articulo

http://neuroph.sourceforge.net/image_recognition.html

Las redes neuronales son una técnica que puede ser usada para el reconocimiento de imagen. Este tutorial le mostrará como usar el perceptron multi-capa para el reconocimiento de imagen. El Neuroph tiene construido un soporte para el reconocimiento de imagen, y herramientas de interfaz de usuario especializadas para el entrenamiento de las redes neuronales en reconocimiento de imagen. Una sencilla librería para el reconocimiento de imagen puede ser encontrada en el paquete org.neuroph.contrib.imgrec, mientras que una herramienta GUI de reconocimiento de imagen esta en easyNeurons application [Main Menu > Tools > Image recongnition]

 

Este tutorial explicará lo siguiente:

 

  1. Principio básico de Como los perceptrones multi-capa son usados para el reconocimiento de imagen (un posible enfoque usado aquí)

  2. Como entrenar a las redes neuronales para el reconocimiento de imagen con easyNeurons.

  3. Como usar las redes neuronales entrenadas para el reconocimiento de imagen en sus aplicaciones.

 

  1. El reconocimiento de imagen y el Perceptron Multi-capa

 

Cada imagen puede ser representada como un array de dos dimensiones, donde cada elemento del array contiene información del color para un pixel. (Figura 1)

figura 1. Colores de la imagen.

 

Cada color puede ser representado como una combinación de tres componentes de color básico: rojo, verde y azul.

 

Figura 2. Sistema de color RGB

 

Así, para representar alguna imagen en un sistema RGB podemos usar tres arrays de dos dimensiones, cada uno para cada componente de colo, donde cada elemento corresponde a un pixel de la imagen.

 

int[][] redValues

int[][] greenValues

int[][] blueValues

 

Por ejemplo, si el pixel en la posición [20, 10] tiene el color RGB[33, 66, 181] tenemos

 

redValues[10][20] = 33;

greenValues[10][20] = 66;

blueValues[10][20] = 181;

 

Las dimensiones de cada uno de estos arrays son [altura de la imagen][ancho de la imagen]

 

Podemos unir estos tres arrays en un único array de una dimensión para que contenga todos los valores rojos, luego todos los verdes y al final los azules, Así es como creamos el

 

flattenedRgbValues[]

 

Las dimensiones de este array son [alturaImagen*anchoImagen*3]

 

Ahora podemos usar este array de una dimensión como la entrada para la red neuronal, y entrenar la red neuronal para reconocer o clasificar la imagen. Los perceptrones multi-capa son un tipo de red neuronal apropiado para esta tarea. (figura 3).

 

Figura 3. Alimentación del perceptron multicapa con información de color de la imagen. Cada entrada de la neurona corresponde a un componente de color (RGB) de un pixel de la imagen en una posición especifica.

 

Cada salida de la neurona corresponde a una imagen o clase de imagen. Así si la salida de la red es [1, 0, 0] significa que la entrada es reconocida como ‘imagen A’.

Podemos crear una colección de entrenamiento para el entrenamiento de la red neuronal como una colección de pares de entrenada (arreglos rgb planos), y vectores de salida (donde la correspondiente imagen de la neurona es 1).

Las redes pueden ser entrenadas usando el algoritmo de aprendizaje Backpropagation. En la siguiente sección proveeremos algunos detalles acerca de la red neuronal y el algoritmo de aprendizaje.

 

 

  1. Entrenamiento de la red neuronal para el reconocimiento de imagen con easyNeurons.

 

El easyNeurons provee el entorno para la creación y entrenamiento de redes neuronales, las cuales pueden ser guardadas como componentes java listos para usar. Ademas provee con herramientas especializadas para el reconocimiento de imagen y para el entrenamiento de la red neuronal para el reconocimiento de imagen. La creación y entrenamiento de la red neuronal para el reconocimiento de imagen consiste de los siguientes pasos:

 

  1. Escoger las imagenes a reconocer y crear la colección de entrenamiento.

  2. Crear la red neuronal.

  3. Entrenar la red neuronal.

  4. Probar la red neuronal.

  5. Guardar y desplegar la red neuronal.

 

 

 

Advertisements
This entry was posted in RNA. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s