Ir al contenido principal

Computación evolutiva: Ejemplo VI

Abstract

Para el ejemplo VI de la serie práctica de algoritmos evolutivos, he implementado un OCR básico, a partir del ejemplo anterior donde realizamos un algoritmo capaz de reconocer los patrones de las vocales mediante aprendizaje evolutivo.

El OCR es bastante básico, pero permite comprobar la potencia de la computación evolutiva en relación al mundo del reconocimiento de patrones.

Ejemplo práctico VI: OCR básico

El programa que os presento a continuación; programado en un applet de Java para que podáis probarlo de primera mano, consigue precisamente eso: aprender a reconocer los patrones de las vocales, en formato Times New Roma, y un tamaño de 8 (8 x 5 = 40 píxeles). Se utiliza una red neuronal cuyos pesos se ajustan mediante una estrategia evolutiva.

El programa actua como un OCR, consiguiendo capturar la información textual dentro de una imagen (en formato GIF), y transcribiendo dicha información en una caja de texto.

Para agilizar la programación necesaria, el OCR sólo reconoce vocales en formato Times New Roman, y un tamaño de letra de 8.

En cualquier momento del entrenamiento, podemos pulsar en el botón Cancelar, y comprobar cómo va mejorando el reconocimiento del patrón.

Una vez entrenada la red neuronal, debemos introducir la ruta url de la imagen a procesar (en formato GIF), y pulsar sobre el botón Pasar OCR.

Las instrucción de uso se pueden esquematizar así:

1) Pulsa sobre el botón Entrenar para que la red neuronal aprenda a reconocer las vocales (espera hasta obtener una media de 120 en la función de evaluación).
2) Abre el Paint de Windows.
3) Crea un nuevo documento, y escribe con la herramienta de texto (con formato Times New Roman, y tamaño 8) todas las vocales que quieras, en cualquier lugar del documento (que pueden no ser consecutivos ni estar alineadas).
4) Guarda la imagen en formato GIF.
5) Sube la imagen a un hosting gratuito de imágenes. Por ejemplo: www.imgur.com.
6) Copia la ruta de la imagen subida (comprueba que la url termina en extensión ".gif").
7) Pega la url en el applet, donde dice URL de la imagen a procesar.
8) Pulsar sobre el botón Pasar OCR.

¡Y listo! Si todo va bien, el applet reconocerá todas las vocales del texto, y las introducirá en orden (y manteniedo los espacios en blanco entre ellas).


Debajo del siguiente applet encontrarás un enlace con el código fuente del ejemplo:

No puede ejecutar applets de Java. Instale la JVM, y vuelva a recargar la página, por favor.

Podéis descargar el código fuente del ejemplo VI desde este enlace.

Entradas populares de este blog

¡Más potencia!

«¡Es la guerra! ¡Traed madera! ¡Más madera!»  (Los hermanos Marx) Introducción. El mundo de las ciencias de la computación están estos días de enhorabuena, un nievo hito histórico acaba de acontecer: hablamos por supuesto del casi milagroso desarrollo de Google DeepMind denominado AlphaZero , un modelo neuronal capaz de aprender de manera autónoma no supervisada (sin apoyo de datos etiquetados ofrecidos por el hombre) a jugar con capacidades sobrehumanas a varios juegos milenarios como el Go y el ajedrez ( aquí podéis descargar el paper de este proyecto). DeepMind acaba de demostrar así que la metodología que utilizaron para que un modelo neuronal aprendiera (con capacidades sobrehumanas) por sí misma sin apoyo de datos humanos el juego de Go, es generalizable a cualquier otro tipo de juego o situación. En el arriba comentado paper nos explican por ejemplo como en 4 horas (sí, sólo 4 horas), la red neuronal fue capaz de aprender a jugar al ajedrez (entre otros juegos) con una ca...

Replicando el desarrollo de Google DeepMind: AlphaGo Zero

Previous versions of AlphaGo initially trained on thousands of human amateur and professional games to learn how to play Go. AlphaGo Zero skips this step and learns to play simply by playing games against itself, starting from completely random play. In doing so, it quickly surpassed human level of play and defeated the previously published champion-defeating version of AlphaGo by 100 games to 0. If similar techniques can be applied to other structured problems, such as protein folding, reducing energy consumption or searching for revolutionary new materials, the resulting breakthroughs have the potential to positively impact society.  (Profesor David Silver) Hace unos meses   Google DeepMind   hizo público uno de sus resultados más asombrosos: una versión del modelo neuronal que fue capaz de derrotar al campeón del mundo de   Go , solo que esta vez no necesitaron hacer uso de ningún aprendizaje supervisado de juegos entre humanos (hablé en este mismo blog en   ...

Sobre el mito de la caja negra en el campo de la inteligencia artificial

En relación a esta  buena entrada de Santiago  donde trata el hito que  DeepMind  ha logrado con el sistema de inteligencia artificial  Alpha Zero , me gustaría comentar algo sobre la cuestión que más se malinterpreta actualmente de la moderna IA: ¿es cierto que no sabemos cómo hace lo que hace? ¿Se trata realmente de una misteriosa caja negra inexpugnable? Pues bien, la respuesta es no y no. Sabemos perfectamente (los que se dedican e investigan en este campo) por qué la moderna IA hace lo que hace y cómo lo hace. Y lo de "la caja negra" pues...sencillamente es un mito sensacionalista. Todo el machine learning actual ( Alpha Zero  incluido) es el resultado de procesos matemáticos algebraicos trabajando sobre números reales. Más en concreto, millones de operaciones de sumas y multiplicaciones tensoriales sobre un conjunto de (millones) de números reales almacenados en un fichero para tal fin. Como veis no hay misterio ni "magia" por ninguna parte. Y...