Jugando con Redes Neuronales.

03 feb 2008

Las redes neuronales son una de las herramientas más potentes en el campo de la IA, y en particular suelen dar muy buenos resultados en la detección y reconocimiento de figuras. Recientemente hemos realizado pruebas para valorar si incluíamos esta posibilidad en la detección de figuras en uno de nuestros proyectos. Y aunque en este caso, se ha descartado esta opción, me hace pensar que es sólo cuestión de potencia que algún día las máquinas puedan ser capaces de “ver flores”.

Y para demostrarlo, vamos a detectar en la siguiente foto quiénes son “un poco Flower”:
Foto de navidad

El primer paso es aplicar a la imagen original un algoritmo de detección de bordes para simplificar la imagen:

Detección de Bordes

Ya que la potencia de calculo es finita y escasa, nuestra red neuronal contendrá sólo 10×10 neuronas, para poder distinguir y procesar una zona muy pequeña, pero suficientemente representativa de la flor.

El siguiente paso es entrenar a nuestra red neuronal, para ello, proporcionamos a la red neuronal ejemplos correctos e incorrectos de regiones de la imagen y lanzamos el proceso de entrenamiento sobre este conjunto reducido.

KernelIA ia = KernelIA.buildKernel(imagen, rectangulos);

Internamente este método itera sobre todas las zonas de ejemplo que tenemos, las transforma a una matriz entendible por la red neuronal e inicia el proceso de entrenamiento para cada patrón.

Una vez que el proceso de entrenamiento ha terminado, ya esta disponible la red neuronal para ser interrogada. Recorremos la imagen, e interrogamos a la red neuronal, en busca de zonas que cumplan con el patrón buscado.

Resultado tras 10 minutos de entrenamiento y 15 patrones sobre los que aprender:

Ejemplo1 deteccion de flores

Resultado tras 6 horas de entrenamiento y 40 patrones sobre los que aprender:

Resultado deteccion
Como vemos, en este último caso, el sistema prácticamente ha sabido detectar todos los “Flowers de la oficina”, aunque incluso con 6 horas de entrenamiento, ha cometido algunos extraños errores. Probablemente con algo más de tiempo, paciencia y potencia de cálculo podremos llegar al objetivo deseado en el futuro.

Comparte esta entrada:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Meneame
  • RSS
  • Twitter

2 Respuestas Para “Jugando con Redes Neuronales.”

  1. Tino 21 de febrero de 2008 at 14:51 hrs. #

    ¿Tienes alguna bibliografía divulgativa sobre el tema? Me parece muy interesante incluso para gente como yo :P

  2. Félix García Borrego 21 de febrero de 2008 at 20:52 hrs. #

    En la internet hay muchísima información sobre el tema, pero para no iniciados esta muy bien http://www.monografias.com/trabajos/redesneuro/redesneuro.shtml o incluso la wikipedia.

Deje una respuesta