red neuronal ocr
DESCRIPTION
Trabajo realizado por alumnos de la UPC, para el curso de Inteligencia ArtificialTRANSCRIPT
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)
Curso: Inteligencia Artificial
Ciclo: 2015-0
Preparado por:
U201200278 – Moscaiza Moncada, Omar I.
U201000119 – Neyra Rangel, Raúl
Revisado por:
Bruno Vargas Tamani
Lima, 17 de febrero de 2015
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Índice
I. INTRODUCCIÓN.....................................................................................5
II. ANTECEDENTES..................................................................................6
III. OBJETIVOS.........................................................................................7
IV. ALCANCE............................................................................................8
V. RED NEURONAL ARTIFICIAL.................................................................9
VI. SISTEMA DE RECONOCIMIENTO DE CARACTERES.................................14
VII. DESARROLLO..............................................................................19
VIII. CONCLUSIONES...........................................................................21
IX. BIBLIOGRAFIA...................................................................................22
2
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
INDICE DE FIGURAS
Figura 1 Aprendizaje por Corrección de Error.................................................................................12
Figura 2. Neurona Artificial..............................................................................................................14
Figura 3. Umbral neuronal...............................................................................................................14
Figura 4. Cambio estado por sumatoria..........................................................................................15
Figura 5. Capa de nodos de entradas, capa de neuronas ocultas y capa de neuronas de salida...15
Figura 6. Definición de neuronas por pixels.....................................................................................16
Figura 7. Vectores........................................................................................................................... 16
Figura 8. Patrón de entrada letra A.................................................................................................17
Figura 9. Letra A con ruido..............................................................................................................18
Figura 10. Red neuronal de dos capas............................................................................................19
Figura 11. Programa iniciado con red cargada................................................................................20
Figura 12. Digitalización de trazos...................................................................................................21
Figura 13. Reconocimiento de caracteres.......................................................................................22
Figura 14.Simulando una imagen con ruido....................................................................................22
Figura 15. Adición del valor requerido por el aprendizaje supervisado...........................................23
Figura 16. Aplicando el aprendizaje no supervisado.......................................................................24
Figura 17. Reconocimiento de aprendizaje.....................................................................................24
Figura 18. Método de aprendizaje no supervisado..........................................................................25
Figura 19. Reconocimiento de carácter...........................................................................................26
Figura 20. Renombrando el carácter...............................................................................................26
Figura 21. Aplicando la red aprendida con otros caracteres............................................................27
3
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
I. Introducción
Un programa de OCR consiste en un software que trata de convertir la imagen
digitalizada de un documento manuscrito, fotocopiado, etc., en un archivo de texto
plausible de ser utilizado por algún procesador de texto.
Los programas de OCR diseñados sobre bases algorítmicas son los más
populares hasta el momento, pero poseen un grado apreciable de inexactitud
cuando el texto presenta "ruido", es decir cuando el original contiene manchas
(como las producidas al fotocopiar una página) o símbolos mezclados con el texto
(un dibujo).
Los programas de OCR basados en el reconocimiento de patrones (como las
redes neuronales) son capaces de leer y reconocer textos manuscritos o escritos
a máquina, de imprenta o de impresora, convirtiéndolos en texto ASCII, editable
por el usuario con cualquier programa de tratamiento de textos convencional.
Resulta muy útil para documentos en otros idiomas que pueden ser digitalizados
usando el OCR para traducirlos después con un software apropiado, o para
digitalizar formularios escritos, especialmente cuando hay que hacerlo en grandes
volúmenes.
4
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
II. Antecedentes
Los primeros modelos de redes neuronales datan de 1943 por los neurólogos
McCulloch y Pitts. Años más tarde, en 1949, Donald Hebb desarrolló sus ideas
sobre el aprendizaje neuronal, quedando reflejado en la "regla de Hebb". En 1958,
Rosemblatt desarrolló el perceptrón simple, y en 1960, Widrow y Hoff
desarrollaron el ADALINE, que fue la primera aplicación industrial real.
En los años siguientes, se redujo la investigación, debido a la falta de modelos de
aprendizaje y el estudio de Minsky y Papert sobre las limitaciones del perceptrón.
Sin embargo, en los años 80, volvieron a resurgir las RNA gracias al desarrollo de
la red de Hopfield, y en especial, al algoritmo de aprendizaje de retropropagación
(BackPropagation) ideado por Rumelhart y McLellan en 1986 que fue aplicado en
el desarrollo de los perceptrones multicapa.
Un ejemplo típico de red neuronal aplicada al reconocimiento de patrones son los
OCR o programas de reconocimiento óptico de caracteres escritos. De acuerdo
con Werbos (1998) el 50% de los sistemas de OCR se basan en redes
neuronales.
5
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
III. Objetivos
1.1.General
Demostrar es uso práctico que tiene las redes neuronales aplicadas en los
sistemas de reconocimiento óptico de caracteres (OCR)
1.2. Específicos
Describir las redes neuronales
Describir el reconocimiento de caracteres mediante usando redes
neuronales
Demostración de caso practico
6
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
IV. Alcance
El presente trabajo tendrá como finalidad dar a conocer los conceptos sobre redes
neuronales, y su importancia en el proceso de reconocimiento óptico de
caracteres (OCR).
Como funciona esta metodología utilizando los principios y fundamentos de
inteligencia artificial, es lo que el equipo de trabajo pretende resolver con la
elaboración del presente trabajo.
También, se demostrara un caso práctico sobre el tema es cual es un software,
donde se podrá entender cómo funcionan las redes neuronales y como mediante
el aprendizaje va mejorando el OCR.
7
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
V. RED NEURONAL ARTIFICIAL
Las redes neuronales artificiales (RNAs) o Neuronal Networks Artificial (NNS) son
una rama destacada de la inteligencia artificial, son algoritmos matemáticos que
utilizan una estructura jerárquica, los cuales intentan imitar el comportamiento de
cerebro humano, destacando el aprendizaje atreves de la experiencia y la
extracción de conocimiento a partir de un conjunto de datos.
Los elementos básicos del algoritmo de redes neuronales artificiales:
El conjunto de neuronas o nodos.
Los pesos número, que se modifica durante el entrenamiento de la red
neuronal, y es aquí por tanto donde se almacena la información que hará
que la red sirva para un propósito u otro.
Una regla de propagación. Con las entradas y los pesos se suele hacer
algún tipo de operación para obtener el valor del potencial.
Una función de activación. El valor obtenido con la regla de propagación,
se filtra a través de una función conocida como función de activación y es
la que nos da la salida de la neurona. (Diez, 2003)
Las neuronas o nodos son unidades o elementos de procesamiento las cuales se
pueden dividir en tres grupos diferentes:
a) Las que reciben la información del exterior, también denominadas como
neuronas de entradas.
b) Las que transmiten información al exterior, denominadas neuronas de
salida.
c) Por último las que no tienen ningún contacto con el exterior y solamente
intercambian información con otras neuronas de la red, a estas se las llama
neuronas ocultas.
Los nodos de entrada reciben señales del entorno por medio de sensores, nodos
de salida envían señales fuera del sistema una vez finalizado el tratamiento de la
información y los nodos ocultos son los que reciben estímulos de los nodos de
8
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
entrada y emiten salidas hacia los nodos de salida, en ellos se lleva e acabo el
procesamiento de la información.
Los pesos se pueden modificar durante el entrenamiento de la red neuronal, el
aprendizaje es el proceso en el cual la red neuronal crea, modifica o destruye sus
pesos en respuesta a una información de entrada. Una red neuronal es entrenada
con compartimiento normal o anormal, estos valores dependen de la forma en que
se desee detectar una intrusión. En un sistema de detección de intrusos la red es
entrenada para predicción de una acción o comando de usuario.
A medida que la red neuronal artificial aprende el conjunto de datos, los pesos de
conexión se cambian las conexiones con importancia permanecen y las
conexiones sin relevancia son castigadas. Los datos se escriben en los nodos de
entrada, procesados a través de los nodos ocultos, y los pesos de conexión a los
nodos de salida son ajustados.
Mediante su empleo es posible detectar variaciones de ataques o de carácter
desconocidos, que difieren de los patrones iniciales con que fue entrenada la red.
Las redes neuronales artificiales (RNAs) están inspiradas en el sistema lógico
natural, como es conocido en este sistema la neurona es la unidad de
procesamiento y aunque las (RNAs) sean mucho menos complejas en un sistema
informático también realizan cálculos complejos para procesar información. (Díaz,
2012)
Las redes neuronales artificiales se clasifican en base a su paradigma de
aprendizaje, cada una de ellas ha sido diseñada para fines más o menos
específicos, algunos tipos son:
Back propagation.- conocida también como perceptron multicapa o retro
propagación, este algoritmo ofrece un solución a las redes neuronales mas
complejas por eso es una de las técnicas más utilizadas, también tiene un
gran facilidad aprendizaje, en esta técnica los errores son propagados
hacia atrás desde la capa de salida, los pesos se van modificando desde el
9
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
nodo de salida hasta el nodo de entrada. Las limitaciones de black
propagation o propagación hacia atrás es que necesita mucho tiempo para
el aprendizaje y muchos ejemplos. Algunas de sus aplicaciones de este
algoritmo son Síntesis de voz desde texto, control de robots, predicción-
reconocimiento de patrones.
Redes auto organizadas (SOFM). - Es una red de tipo unidireccional, y se
organiza en dos capas: la primera capa está formada por las neuronas de
entrada, y la segunda consiste en un array de neuronas de dos
dimensiones. En este caso se necesitan dos índices para etiquetar cada
neurona, los pesos asociados a cada neurona tendrán tres índices donde
dos de ellos indican la posición de la neurona en la capa y el tercero la
conexión con cierta neurona de entrada. (Diez, 2003).
Este algoritmo de aprendizaje es una de las técnicas más útiles, se entrena
con aprendizaje no supervisado para generar dos capas de neuronas la
primera de ellas le recogen señales exteriores y los transmiten a la
siguiente capa, el procesamiento de información se lleva en la segunda
capa que además actúa como salida del sistema. La desventaja es que
requiere mucho entrenamiento. Las aplicaciones de este algoritmo de
aprendizaje son reconocimiento de patrones, codificación de datos,
optimización.
Redes de función de base radial (RBF). - Este tipo de redes se caracteriza
por tener un aprendizaje o entrenamiento híbrido. La arquitectura de estas
redes se caracteriza por la presencia de tres capas: una de entrada, una
única capa oculta y una capa de salida. (Diez, 2003)
Una red de funciones de base radial es una red neuronal que utiliza
funciones de base radial como funciones de activación. Este es un
algoritmo hibrido ya que su método de aprendizaje consta de dos fases, la
fase no supervisada en la cual trabaja con la capa oculta y la fase
supervisada donde los pesos y los valores de la capa de salida.
10
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Redes learning vector quantization (LVQ). - Es un algoritmo de
clasificación de patrones de tipo supervisado, también es un algoritmo
hibrido ya que cuenta con una esta capa supervisada y la otra no
supervisada, tiene como principal objetivo la clasificación de patrones, se
divide en dos capas donde cada neurona de la primera capa es asignada a
una sub-clase corresponde a su vez a una neurona de la segunda capa.
Este algoritmo se diferencia las redes auto organizados es que trabaja con
salidas en una sola dimensión, la salida en el SOFM es bidimensional.
Las redes neuronales se pueden clasificar según sus métodos de entrenamiento
como:
Redes de pesos fijos.- Para las redes de pesos fijos no hay ningún tipo de
entrenamiento.
Redes no supervisadas.- Durante el aprendizaje el tutor indica a la red que
debe de producir en la salida. Estas son utilizadas para el análisis de
clústeres en aplicaciones.
Redes de entrenamiento supervisado.- La red es independiente, localiza
sobre los datos de entrada propiedades que le sirvan para la separación de
patrones. Este tipo de red son mayormente utilizadas para problemas de
clasificación.
Aprendizaje por corrección de Error
El entrenamiento consiste en presentar al sistema un conjunto de pares de
datos, representando la entrada y la salida deseada para dicha entrada.
Este conjunto recibe el nombre de conjunto de entrenamiento. El objetivo
es tratar de minimizar el error entre la Salida Deseada y la salida actual
11
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Figura 1 Aprendizaje por Corrección de Error
Algoritmos de Aprendizaje por Corrección del error
Los pesos se ajustan en función de la diferencia entre los valores deseados
y los obtenidos en la salida.
∆wij = α xi (dj - xj )
donde:
∆wij Variación en el peso de la conexión entre el i-ésimo nodo y el j-ésimo.
α Umbral en el aprendizaje que regula velocidad
y precisión (0 < α ≤ 1)
xi Salida del i-ésimo nodo
xj Salida del j-ésimo nodo
dj Valor de salida deseado del j-ésima unidad de procesamiento
Regla de mínimo Error cuadrado
Widrow y Hoff definieron una función que permitía cuantificar el error global
cometido en cualquier momento durante el proceso de entrenamiento,
agilizando este proceso
12
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
La fórmula calcula
n = número de nodos de salida
p = número de tramas de entrenamiento
Error cometido en el aprendizaje de la k-ésima trama.
Se trata de modificar los pesos para que las conexiones de la red
minimicen esta función de error, se puede hacer de manera proporcionada
a la variación relativa del error.
VI. SISTEMA DE RECONOCIMIENTO DE CARACTERES
El Reconocimiento Óptico de caracteres es una de las aplicaciones más usada
con Redes Neuronales. Esto es posible por la naturaleza de las Redes
Neuronales.
Al hablar de naturaleza de las redes neuronales hacemos referencia a que es
unos de las ramas de la Inteligencia Artificial capaz de aprender patrones y de
acuerdo a una entrada de datos puede predecir los resultados. Esto es, la red
aprende un conjunto de patrones/caracteres y luego de acuerdo a las entradas
posteriores la red puede deducir la salida gracias al aprendizaje que hizo de esos
patrones.
Estas redes simulan en cierto modo el funcionamiento de las neuronas que
naturalmente poseemos los humanos, y son un campo que está dando grandes
resultados en los últimos años; son especialmente buenas cuando se trata de
reconocer patrones con un cierto "ruido" de fondo, dado que por ejemplo, una
palabra nunca es pronunciada exactamente igual dos veces, siempre hay
pequeñas variaciones.
Otro gran ejemplo son las letras escaneadas de un papel (incluso letras de
imprenta), que debido a suciedad, moho, borrones en el papel, errores en su
impresión, e incluso un pobre proceso de escaneado, nunca es exactamente
13
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
igual. Sin embargo una persona generalmente no encuentra dificultades a la hora
de entender una palabra que le digan o una letra impresa, salvo que sean muy
confusas; pues esta ventaja es la que aportan las redes neuronales, posibilitando
programas como los OCR.
Figura 2. Neurona Artificial
Donde:
• “X1…Xn” indican un bit que corresponden al carácter que estoy tratando de
reconocer y son las entradas de la red.
• “W1…Wn” son los pesos de las entradas de la red. Cada X tiene su peso. El
valor para W varía entre 0 y 1.
• “Y” es la salida de la red y está en función de las entradas y sus respectivos
pesos.
En el contexto de las redes neuronales lo que está dentro de la elipse es el
proceso interno de la red y es donde se encuentra lo que se conoce como el
“Umbral”. Este es un escalón unitario y determina si se dispara o no una celular
neuronal.
Figura 3. Umbral neuronal
14
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
0 >= Wi <= 1
∑ Xi * Wi > a
Cuando la sumatoria es mayor que “a” cambia de estado; es decir, atraviesa o no
el umbral.
Figura 4. Cambio estado por sumatoria
Ahora que ya hablamos de las neuronas, pasemos a las redes neuronales
propiamente dicha, la cual está constituida por un conjunto de neuronas
interconectadas.
Figura 5. Capa de nodos de entradas, capa de neuronas ocultas y capa de neuronas de salida.
Como se puede apreciar en el gráfico la capa de entrada corresponde a lo que
viene del ambiente (como por ejemplo el nervio óptico). En esta capa se
encuentran los patrones de enseñanza.
Las neuronas de la capa intermedia propagan su efecto a través de las diferentes
capas sucesivas y como consecuencia produce un vector de salida. Durante este
proceso, los pesos de las entradas de la red son fijos y no se modifican.
15
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
En el reconocimiento de patrones hay un número fijo de categorías en las cuales
las muestras de entrada deben clasificarse. Para ello primero se requiere una fase
de entrenamiento en la que se presenta a la red los patrones que debe aprender y
la categoría en cual clasificarlo. Entonces se le presenta a la red un patrón nuevo
y desconocido pero que pertenece a alguna de las categorías aprendidas y esta
debe decidir a qué categoría se parece más.
Para el desarrollo de la aplicación OCR usamos la Red Neuronal de Kohonen.
Esta es un tipo de red No Supervisada. Lo más importante en este tipo de redes
es que el resultado no lo conozco.
Funcionamiento de la red:
Si ocupamos un vector para definir las neuronas, por ejemplo de 30 elementos,
tendremos:
Figura 6. Definición de neuronas por pixels
A esta matriz la ocuparemos para determinar un carácter. Cada cuadro de la
matriz puede tener un valor 0 ó 1. Si es igual a 0 no tiene nada, caso contrario el
cuadro está lleno.
Vamos a ocupar además un círculo unitario donde estarán representados todos
los vectores, uno por cada neurona
16
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Figura 7. Vectores
En este círculo habrá 30 vectores
Los vectores pueden tener cualquier dirección. Al hacer que todos los vectores
tengan módulo 1, sólo nos preocupamos por calcular el ángulo con la abcisa.
El uso del círculo y los ángulos de los vectores sirve para normalizarlos (que
tengan módulo 1) y para determinar el ángulo. Este ángulo determinará cuán
cerca está una neurona (vector) u otra del patrón de entrada que se quiere
reconocer.
Figura 8. Patrón de entrada letra A
Supongamos que el patrón de entrada a la red es la letra “A”.
Se puede apreciar que hay cuadros llenos (1) y cuadros vacíos (0). Este patrón
ingresa a la red neuronal para que esta lo aprenda. Este proceso se conoce como
el entrenamiento de la red.
Luego de aprender viene un segundo paso que consiste en el reconocimiento del
carácter. Se supone que con el entrenamiento la red es capaz de reconocer un
17
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
carácter igual o similar que ingrese nuevamente a ella. Siempre habrá un margen
de error.
Supongamos que ingresamos un documento escaneado y le pedimos al sistema
que reconozca los caracteres impresos en él y asumamos que hay cierto ruido o
suciedad en la hoja y la letra ”A” aparece en el documento como muestra la
siguiente figura:
Figura 9. Letra A con ruido
En ella vemos que falta parte de la letra.
Lo que hará la red en este caso es buscar el vector más próximo (gracias al
ángulo) para obtener el resultado deseado. En otras palabras la red buscará entre
los vectores lo que más se aproximen para completar el carácter que queremos.
De aquí surge que hay neuronas ganadoras y neuronas perdedoras. Las
ganadoras son las que se activan y se disparan para obtener el resultado
deseado. Si entre las neuronas no hay proximidad con el carácter que se
pretende reconocer no hay un resultado posible por lo que no hay neuronas
ganadoras, es decir no hay vectores próximos.
Respecto de la aplicación, se desarrolló en Builder C++ Versión 6.0.
VII. DESARROLLO
Este software permite aprender y reconocer caracteres y símbolos. Usa redes
neuronales para identificar los caracteres trazados con el mouse en ese espacio.
Fácilmente se le puede enseñar a reconocer nuevos caracteres. La precisión del
18
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
programa de mejora, ya que aprende de su (escritura con el mouse) escritura a
mano.
Se trata principalmente de un programa educativo. Recog demuestra la diferencia
entre un aprendizaje supervisado y no supervisado.
Figura 10. Red neuronal de dos capas
Recog utiliza una red neural de dos capas grande (pero simple) para aprender y
reconocer patrones. La imagen de la escritura a mano se digitaliza en una rejilla
de neuronas de entrada. Cada respuesta posible está representada por una sola
neurona de salida. Cada neurona de entrada está vinculado directamente a cada
neurona de salida (no hay capas ocultas). Como en la mayoría de las redes
neuronales, la data (o programación) se codifica en los vínculos entre las
neuronas. Si un enlace entre una neurona de entrada y una neurona de salida es
positiva, ello significara que si la entrada está en la puntuación total para esa
neurona de salida se incrementa en una pequeña cantidad. Si el enlace es
negativo, entonces se sigue que si la entrada está activada, la salida
correspondiente tendrá su resultado disminuido en una cantidad. La neurona de
salida con la puntuación más alta (y por lo tanto la mejor coincidencia) se
considerad el ganador. Esto se conoce como una red competitiva. Para ver los
puntos fuertes o el peso de los vínculos entre la rejilla de entrada y una de salida
19
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
determinada, se deberá hacer doble clic en uno de los caracteres de la lista de
reconocimiento.
El procedimiento de aprendizaje Recog es extremadamente simple. No hay Back
Propagation, Delta-rule, u otras complejidades; es simple aritmética. Todos los
enlaces entre las neuronas de entrada activas y las neuronas de salida
seleccionadas han aumentado sus pesos por uno. Todos los enlaces entre
entradas de neuronas inactivas y la neurona de salida seleccionada tendrán sus
pesos reducidos a uno. Se deberá hacer doble clic en uno de los caracteres de la
lista de reconocimiento y ver cómo sus pesos cambian a medida que Recog
aprende el carácter.
Recog reconoce individualmente los caracteres impresos y poco a poco se adapta
al estilo de escritura que el usuario tiene. Esto puede sonar sospechosamente
similar a la antigua PDA de Apple (asistente personal de datos), Newton.
Newton no utiliza redes neuronales, lo que hace que sea menos flexible (y menos
volátil) que este software. Una diferencia clave es que Newton engaña al ver el
orden en el que se hacen los trazos de las letras. Este se mantiene en
observación constante mientras se escribe mas no después.
El Palm Pilot era otra PDA que reconoce la escritura a mano. Sin embargo, su
reconocimiento no es modificable e inalterable. No hay ninguna adaptación o
aprendizaje en la parte de la computadora; es el humano que debe adaptarse a la
PalmPilot.
20
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Figura 11. Programa iniciado con red cargada.
Al abrir la aplicación nos encontramos con dos botones, la de la izquierda harán la
función de digitalizar los trazos hechos por nosotros y el de la derecha cumple la
función de reconocer el dibujo digitalizado y mostrarnos el patrón que
corresponde a esa imagen.
En la parte superior observamos 4 pestañas:
File: encontraremos las opciones para poder abrir y/o grabar una red neuronal,
establecer nuevos trazos, abrir trazos o grabarlos.
Edit: Deshace la digitalización, copia/pega caracteres, copia/pega trazos y
opciones para cambiar el tamaño del panel.
Learning: Aquí podremos definir qué tipo de Aprendizaje deseamos, ninguno,
Supervisado o No Supervisado.
Ayuda: Tutorial para mejor entendimiento del software.
Ahora probaremos el programa buscando que reconozca un carácter ingresado
desde el sector de dibujo/escritura. Una vez realizados los trazos que deseamos
reconocer se procede a presionar el botón de digitalizar, a fin de que se obtenga
21
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
la imagen digitalizado del trazo y luego de ello con una red previamente cargada,
en este caso (A, E, I, O, U, Y) procederemos a presionar el botón de reconocer.
Figura 12. Digitalización de trazos.
De acuerdo al entrenamiento de la red cargada previamente, el resultado sera
ordenado porcentualmente, siendo el primero el patrón reconocido por el
aplicativo.
Figura 13. Reconocimiento de caracteres.
22
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Además a través de la figura siguiente podemos observar que a pesar de borrar
algunas partes y obtener una imagen no tan legible, la solución siegue mostrando
un perfil de reconocimiento para la letra A.
Figura 14.Simulando una imagen con ruido.
El aplicativo tiene la opción de poder enseñarle a una red de modo Supervisado,
por lo que luego de haber hecho nuestros trazos en el sector de dibujo y haber
hecho click en reconocer, el boton add(añadir) sera el encargado de hacer que se
genere una nueva entrada en nuestra red, mostrandose así la opcion de añadir
carácter, solicitandonos el nombre del carácter reconocido.
23
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Figura 15. Adición del valor requerido por el aprendizaje supervisado.
Luego procedemos a presionar de aprender, con el se le asignará al dibujo el
Aprendizaje de un 100% para el trazo realizado.
24
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Figura 16. Aplicando el aprendizaje no supervisado.
Figura 17. Reconocimiento de aprendizaje
El otro metodo de enseñanza es el no supervisado, para ello se tendrá que
seleccionar previamente la opción tal cual como se detalla en la figura debajo
adjunta.
25
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Figura 18. Método de aprendizaje no supervisado.
Luego de digitalizar la imagen y presionar reconocer, el aplicativo nos mostrará el
valor del 100%. Además observamos dos opciones debajo:
Create Limit: Si el mejor reconocimiento es inferior a este porcentaje, entonces se
creará un nuevo caracter.
Learn Limit: Si el mejor reconocimiento se encuentra por encima de este
porcentaje, entonces el aprendizaje se llevará a cabo en ese carácter.
26
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
Figura 19. Reconocimiento de carácter
Luego de haber reconocido se deberá hacer doble click en el nombre del carácter
a fin de poder renombrarlo.
Figura 20. Renombrando el carácter.
27
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
En esta imagen podemos observar como luego de haber entrenado una red no
supervisada, el reconocimiento de caracteres funciona correctamente,
reconociendo las letras en este ejemplo.
Figura 21. Aplicando la red aprendida con otros caracteres
El aplicativo no se limita solamente a caracteres, sino también a símbolos y a
diferentes patrones de trazo que uno desee vincular para satisfacer una
necesidad.
28
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
VIII. CONCLUSIONES
1. Es evidente que el término redes neuronales artificiales abarcan una gran
variedad de diferentes paquetes de software con muchos tipos diferentes
de neuronas artificiales, arquitecturas de red y reglas de aprendizaje. Estas
diferentes redes pueden, a su vez, pueden aplicarse a una amplia gama de
funciones desde la fabricación de cerveza hasta a una mejor comprensión
de las propiedades de los cerebros biológicos en los que se basa.
2. Como resultado del desarrollo de este trabajo, concluimos que el uso de las
Redes Neuronales es una gran alternativa para la solución de muchas
necesidades, no limitándose en el reconocimiento de caracteres sino que
usando esto como base para otras aplicaciones.
3. Con la ayuda del aplicativo es posible dar solución a problemas más
complejos como por ejemplo, reconocimiento y traducción de texto,
resolución de sudoku, identificación de placas vehiculares, facturas, etc.
4. Una debilidad de la aplicación es que es básica, pero nos permite
comprender como se origina el proceso de reconocimiento de texto, los
pasos que se siguen y que método se usa.
5. El más notable es el hecho de que no puede manejar grandes variaciones
en la traslación, rotación o escala. Son necesarios unos pocos pasos de
pre procesamiento para poder implementarlo con el fin de dar cuenta de
estas variaciones, pero en general son difíciles de resolver completamente
29
Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres
(OCR)
Moscaiza M.,
Omar Neyra R.
Raúl
IX. BIBLIOGRAFIA
1. McCulloch, Warren; Walter Pitts (1943). "A Logical Calculus of Ideas Immanent in Nervous Activity". Bulletin of Mathematical Biophysics 5 (4): 115–133. doi:10.1007/BF02478259.
2. Hebb, Donald (1949). The Organization of Behavior. New York: Wiley.3. Farley, B.G.; W.A. Clark (1954). "Simulation of Self-Organizing Systems by
Digital Computer".IRE Transactions on Information Theory 4 (4): 76–84. doi:10.1109/TIT.1954.1057468.
4. Rochester, N.; J.H. Holland, L.H. Habit, and W.L. Duda (1956). "Tests on a cell assembly theory of the action of the brain, using a large digital computer". IRE Transactions on Information Theory 2(3): 80–93. doi:10.1109/TIT.1956.1056810.
5. Hilera J, Martínez V. 1995. Redes neuronales artificiales: fundamentos, modelos y aplicaciones. Madrid: Addison-Wesley Iberoamericana. RA-MA. 390 p.
6. Sánchez E, Alanis A. 2006. Redes neuronales: conceptos fundamentales y aplicaciones a control automático. Madrid. Prentice-Hall. 210.
7. Dowla F, Rogers L. 1996. Solving problems in environmental engineering and geosciences with artificial neural networks. Cambridge. MIT Press. 310 p.
8. Bishop C, 2006. Neural Networks for Pattern Recognition. New York. Oxford University Press. 504 p.
30