Post on 06-Sep-2018
transcript
Revista de Investigaciones No. 17 - Universidad del Quindío
189
Revista de Investigaciones No. 17 - Universidad del Quindío p p 189- 203 Armenia, Año 2007 ISSN 1794-631 X
Sistema para el Reconocimiento
Fuera de Línea de
Caracteres Manuscritos1
Ing. Muñoz Gutiérrez, Pablo Andrés2 M.Sc. pabloansdrem@yahoo.com Ing. Ibargüen Ocampo, Francisco Javier3 M.Sc.Ing. Cardona Aristizabal, Jaiber Evelio4 M.Sc.Grupo GAMA5— gama@uniquindio.edu.co
CEIFI, Universidad del Quindío, Agosto de 2.006
RESUMEN
En este artículo se describe, a través de un diagrama de bloques, un sistema diseñado para el reconocimiento fuera de línea de caracteres manuscritos, con el cual se realizó una comparación entre la capacidad de generalización de las máquinas de vectores de soporte y el perceptrón multicapa. El sistema fue probado en el reconocimiento de dígitos manuscritos (0-9) y en el reconocimiento de 25 letras manuscritas del alfabeto Inglés (excepto la w), los cuales demostraron que las máquinas de vectores de soporte generalizan mejor que el perceptrón multicapa en esta aplicación en particular. El sistema implementado para el reconocimiento de caracteres manuscritos está en capacidad de reconocer los diez dígitos manuscritos (0-9) con un porcentaje de acierto del 97.03% con las máquinas de vectores de soporte y un porcentaje de acierto del 94.96% con el perceptrón multicapa, mientras que para el reconocimiento de veinticinco letras manuscritas presenta un porcentaje de acierto del 93.78% con las máquinas de vectores de soporte y un 89.32% de acierto con el perceptrón multicapa.
Palabras clave: Máquinas de Vectores de Soporte, Redes Neuronales Artificiales, perceptrón multicapa, Reconocimiento de Caracteres Manuscritos, Generalización.
ABSTRACT
Within this paper we describe a system designed for the off-line handwriting character recognition through a block diagram, which was used to make a comparison between the capacity of generalization of the support vector machines, and that of the multilayer perceptron. The system was applied in the recognition of the ten handwriting digits (0-9), and in the recognition of twenty-five handwriting letters of the English alphabet (excluding the /w/). The results showed that the support vector machines have a better capacity of generalization that the multilayer perceptron in this particular application. Then, the implemented system for the handwriting character recognition has the capacity to recognize the ten different handwriting digits (0-9), with a asserting percentage of 97.03% with the support vector machines, and an asserting percentage of 94.96% with multilayer perceptron. On the other side, for the recognition of the twenty-five handwriting letters we obtained an asserting percentage of 93,78% wit a support vector machines, and 89.32% with the multilayer perceptron.
Key Words: Support Vector Machines, Artificial Neural Networks, Handwriting Character Recognition, ,
Generalization.
1 Reconocimiento de Patrones Usando Máquinas de Vectores de Soporte. Proyecto de Investigación #2402 Ingeniero Electrónico Universidad Nacional de Colombia y Magíster en Ingeniería Eléctrica UTP. Investigador Principal.3 Ingeniero Electricista y Magíster en Automática Universidad del Valle. Coinvestigador .4 Ingeniero Electrónico y Magíster en Automática Universidad del Valle. Asesor.5 Grupo de Automatización y Máquinas de Aprendizaje (GAMA).
Revista de Investigaciones No. 17 - Universidad del Quindío
190
SISTEMA IMPLEMENTADO
El sistema implementado está en capacidad de reconocer, fuera de línea, caracteres manuscritos (dígitos y letras por separado), para este fin se tuvo como base el sistema
general para el reconocimiento de patrones utilizado por Laaksonen en 1.995 (Laaksonen, 1995) y el descrito por Eikvil en 1.993 (Eikvil, 1993). En la figura 1 se puede observar el
diagrama de bloques general del sistema para el reconocimiento de caracteres manuscritos, este sistema fue utilizado tanto para la fase de entrenamiento y pruebas como para la fase de validación del sistema.
INTRODUCCIÓN
n problema estándar en el cual se han apoyado muchos autores con el fin de
probar el rendimiento de diferentes sistemas para el reconocimiento de
patrones utilizando máquinas de aprendizaje, ha sido el reconocimiento de caracteres manuscritos, dentro de las máquinas de aprendizaje frecuentemente utilizadas se pueden mencionar las redes neuronales artificiales (Le Cun et all,
1990; Choi, 1994; Alvarez et all, 1997; Seijas, 1998 ; Silva et all, 2002 ) y las máquinas de vectores de soporte (Boser et all, 1992; Cortes et all, 1995; Vapnik, 2000). Igualmente se han utilizado clasificadores estadísticos dentro del
sistema para el reconocimiento de caracteres manuscritos (Bunke et all, 1995; Bunke et all, 1997; Laaksonen, 1997), aunque algunos son para aplicaciones en el reconocimiento de letra cursiva, pero son alternativas que se encuentran en la literatura y que deben ser tenidas en cuenta a la hora de diseñar un sistema para reconocimiento de caracteres manuscritos.El sistema para reconocimiento de caracteres manuscritos implementado es el resultado final del trabajo de investigación alrededor
de las máquinas de vectores de soporte, las cuales son máquinas de aprendizaje basadas en el principio inductivo de minimización del riesgo estructural (Vapnik, 1998; Cortes et all, 1995; Vapnik, 2000; Kecman, 2004, Muñoz et all, 2006), principio el cual garantiza un control sobre la habilidad de la máquina de aprendizaje (generalmente la más alta) evitando el sobreentrenamiento de la red mientras se mantiene el mínimo error sobre el conjunto de entrenamiento; a diferencia de las redes neuronales artificiales, las cuales se han basado
en el principio inductivo de minimización del riesgo empírico (Vapnik, 1998; Vapnik, 2000, Muñoz et all, 2006) y el cual sufre frecuentemente de sobreajustes. Después de
Urealizar diferentes pruebas en el reconocimiento de dígitos manuscritos y caracteres manuscritos comparando el rendimiento de las máquinas de vectores de soporte y las redes neuronales artificiales (Muñoz et all, 2005), se seleccionaron
las máquinas que arrojaron los mejores resultados en estas pruebas para la implementación de este sistema.En la segunda parte de este artículo se presenta y describe, bloque por bloque, el sistema para el reconocimiento de caracteres manuscritos, en la tercera parte se describirán las características generales de las máquinas de aprendizaje utilizadas como clasificadores y se mostrarán los
resultados obtenidos después de su entrenamiento y prueba, tanto en el reconocimiento de dígitos manuscritos (números del 0-9) como para el reconocimiento de caracteres manuscritos (25 letras del alfabeto Inglés, excepto la w), en el cuarta parte se mostrará una herramienta básica desarrollada en Matlab del sistema para el reconocimiento de caracteres manuscritos y se mostrarán los resultados de validación obtenidos al clasificar patrones nuevos y poder observa la
efectividad del sistema, finalmente se concluirá
sobre las características generales del sistema implementado y sus futuras aplicaciones.
Revista de Investigaciones No. 17 - Universidad del Quindío
191
Figura 1. Diagrama General del SRCM.
A continuación se describirá el funcionamiento de cada uno de los bloques que conforman al sistema implementado para el RCM.
Imágenes EscaneadasPor tratarse de un sistema “off-line” o fuera de línea, las imágenes deben ser escaneadas primero y almacenadas en formato digital con alguna extensión para imágenes. En una primera fase fueron tomadas a 337 personas diferentes, hombres y mujeres, tres ejemplos de las 25 letras en minúscula como de los diez dígitos, utilizando un formato especial que restringía el tamaño y la ubicación de los patrones; estos ejemplos fueron utilizados en la fase de entrenamiento y pruebas del sistema para el reconocimiento de caracteres manuscritos (Muñoz et all, 2005). En una segundo fase se tomaron muestras de 30 personas diferentes, cada uno de estos formatos contenía diferentes patrones como se muestra en la figura 2, por un lado llenaban información
numérica (recuadros de cédula) y por otro lado información que contenía sólo letras (recuadros de nombre). Todas las imágenes, para la fase uno y la fase dos, fueron escaneadas con una resolución de 300 ppp en una escala de grises y resolución de 8 bits.
Figura 2. Formatos para realizar pruebas para el RCM.
(Izq. Con números Der. Con letras)
Preprocesamiento y Segmentación.
Con esta etapa se busca eliminar el ruido adicionado a los formatos después de ser escaneados y eliminar los recuadros dentro de los cuales se ubicaron las diferentes letras y números manuscritos, lo cual más adelante facilitará la segmentación de los patrones. En cualquier tarea donde sea necesario el procesamiento de imágenes, será necesario tener una etapa de preprocesamiento, está etapa, como ya se mencionó con anterioridad, es básicamente un etapa de filtrado que se le
aplica a la imagen para lograr eliminar el ruido presente en el formato. En la figura 3 se observa
una imagen escaneada con la letra manuscrita de una persona, como se puede ver es necesario filtrar la imagen para eliminar el recuadro que
limita el tamaño de las letras.
Figura 3. Ejemplo de formato escaneado.
Un forma típica para separar el fondo de los objetos en un imagen es aplicar un umbral T que separe dichos modos, por lo tanto cualquier píxel para el cual su nivel de gris es mayor que T pertenece al objeto, de lo contrario pertenece al fondo de la imagen (González et all, 1.996). La umbralización global de una imagen consiste en aplicar una función T de la forma:
Revista de Investigaciones No. 17 - Universidad del Quindío
192
(1)
De la ecuación 1 se tiene que f(x,y) es el nivel de gris del pixel, x y y representa las coordenadas donde está ubicado el pixel. La imagen umbralizada g(x,y) se obtiene de la siguiente manera:
(2)
Al aplicarle la anterior umbralización a cada formato, como el de la figura 3, con el parámetro
T=150 se logra eliminar parte del recuadro dentro del cual se ubican los caracteres manuscritos y además se obtiene una imagen binaria, es decir que el formato ya no presenta valores en niveles de gris, si no que se tiene dos únicos valores, 0 para el negro y 255 para el blanco, como se observa en la figura 4.
Figura 4. Resultado de la umbralización aplicada a la
imagen escaneada del formato con los patrones.
En la figura 4 se observa que los recuadros
dentro de los cuales se ubicó la letra manuscrita no desaparecieron completamente y aparecen como un ruido adicional a la imagen. Para la eliminación de esta información dentro del formato, fue necesario aplicar otro filtro
adicional, el cual esencialmente consistía en
contar la cantidad de píxeles negros alrededor de un píxel específico, sobre una máscara de
tamaño 5x5 pixeles.Para este caso se ubica la máscara sobre un píxel determinado y se cuenta la cantidad de píxeles negros alrededor de él, si el número de píxeles negros es superior o igual a 12, el píxel se considera que pertenece a uno de los caracteres manuscritos, de lo contrario significa que el píxel
pertenece a una región pequeña de los recuadros que no fue eliminada en la umbralización. Esta técnica se aplicó de forma heurística, por lo tanto no se referencia ningún tipo de aplicación similar en la literatura revisadas. Aplicando este filtro se obtiene entonces una figura con
el formato listo para aplicarle la segmentación y con las letras un poco más delgadas por la erosión causada por el filtro aplicado, esto se
observa en la figura 5.
Figura 5. Filtrado adicional
Con la segmentación se busca separar cada patrón de forma individual con el fin de poder
extraer las características de cada uno de ellos, esto es necesario para poder entregarle al clasificador la información necesaria para
que realice la identificación del patrón. Para
este caso específico se trabajan patrones o
letras manuscritas con restricciones de tamaño y ubicación, esto se logró con el recuadro dibujado dentro del cual la persona ubicaba la letra número deseado, ver figura 2.
El sistema realiza la segmentación de los número o letras presentes en la imagen almacenada, al tener un único renglón, ya fuera con números o con letras, lo único que interesa es saber la
Revista de Investigaciones No. 17 - Universidad del Quindío
193
cantidad de patrones que hay en la imagen y se inicia una búsqueda de objetos sobre la imagen, esta búsqueda se realiza trasladando una ventana y segmentando el patrón que quede dentro de ésta, el tamaño de la ventana es fijo e
igual al tamaño del recuadro dibujado para la ubicación de cada caracter manuscrito. En la figura 6 se tiene la ventana que se traslada por
todo el renglón en busca de las letras o número dentro de él.
Figura 6. Segmentación
La figura 7 muestra el resultado final de la
segmentación, allí se puede observar que a pesar de las restricciones de tamaño de los patrones, cada uno de ellos tiene un tamaño diferente, por lo cual se requerirá de una etapa de normalización de los patrones.
Figura 7. Resultado final de la segmentación de cada
caracter.
Con la normalización se busca inicialmente reducir la dimesionalidad del espacio de entrada,
para que el costo computacional del clasificador
no sea muy alto y por último se desea que todos los patrones tenga el mismo tamaño, ya que se pudo observar en la figura 7, cada patrón
después de la segmentación tiene un tamaño diferente. La normalización realizada para los patrones fue únicamente en tamaño o escala, no se introdujo normalización de posición ni de inclinación.
La normalización fue realizada mediante el escalado de la imagen de cada patrón, este método consiste en aumentar o disminuir el tamaño de ésta por un factor determinado. El método puede ser tan simple como doblar el tamaño de la imagen, donde finalmente lo que
se hace es ubicar, en un bloque de 2x2 pixeles, el valor de un sólo píxel de la imagen original, por lo cual este bloque lo que tendrá asignado es un nivel del píxel original, esto generalmente origina irregularidades en la apariencia de la imagen original, las cuales son eliminadas por algún filtro que suavice la imagen nueva.
El inconveniente se presenta si el factor de aumento o reducción es arbitrario, esto debido a que el píxel de la imagen fuente no es mapeado dentro de la imagen nueva en un número entero de pixeles. Un ejemplo es el problema de escalar, en este caso reducir de tamaño, una imagen de 256x256 a una de 100x100, lo que significa
que por cada 2.56 pixeles de la imagen original se tendrá un píxel en la imagen nueva. Por lo tanto le corresponde, a un píxel en la imagen nueva, un área de 6.5536 pixeles cuadrados de la imagen original. La figura 8(a) ilustra este
ejemplo, la figura original se presenta con una
rejilla de líneas sólidas y la imagen reescalada es dibujada como una rejilla de líneas a trozos, allí se observa que cada píxel debe ser reconstruido de la combinación de pixeles enteros y parte de pixeles de la imagen original.
Revista de Investigaciones No. 17 - Universidad del Quindío
194
Figura 9. Escalando una imagen en niveles de gris.
Partiendo de los nombres presentado en la figura 8(b), el valor del píxel en la posición (0,0), de la
imagen nueva se obtiene por: (3)
De (3) se tiene que las letras A, B, C y las demás, corresponden a los niveles de gris de la imagen original etiquetados con esta letra. En vista que las letras A, B, D y E representan pixeles enteros de la imagen original, los pesos (wA, wB, wD, wE) correspondientes a cada una de estas letras son iguales a 1.0/6.5536. Para las letras C, F, G y H se tiene que les corresponde un área de 1 pixel de alto o ancho por 0.56 pixeles de ancho o alto de la imagen original, por lo cual los pesos correspondientes (w
C, w
F,
wG, w
H) a ellos son iguales a 0.56/6.5536. Por
último, la región I de la imagen original, la cual tiene 0.56x0.56 pixeles, tiene un peso (w
I) de
0.3136/6.5539. Todo lo anterior se realiza para obtener un píxel nuevo, para el siguiente píxel comienza en la posición (2.56,0) de la imagen original, pero a este píxel ya no le corresponden 3 pixeles horizontales como en el caso anterior sino 4, teniendo como pesos 0.44, 1.0, 1.0 y
0.12 (Parker, 2.000).
Para lograr la normalización deseada en este trabajo con el método descrito anteriormente, fue necesario aumentar el número de pixeles de la imagen segmentada a un número que fuera divisible por 16, con el fin de tener una división
exacta y evitar los decimales de los pixeles de la imagen nueva. Cada patrón, después de ser segmentado, se almacena en una ventana cuyo tamaño cambia dependiendo del patrón mismo y del tamaño del caracter que la persona escribió. La normalización en tamaño se aplicó para tener los patrones en una ventana estándar de 16x16 pixeles como lo mencionan en diferentes artículos (Alvarez et all, 1.997; Boser et all, 1992; Cortes et all, 1.995; Le Cun et all, 1.990; Seijas, 1.998;Silva 2.002; Vapnik, 2.000), la figura 9 muestra los caracteres de la figura 6
Revista de Investigaciones No. 17 - Universidad del Quindío
195
normalizados a 16x16 pixeles. Figura 9. Caracteres normalizados a 16x16 pixeles.
Extracción de características.En esta fase se espera tener información más precisa sobre cada patrón, con el fin de poder
diferenciar con mayor eficiencia los patrones.
Para el sistema desarrollado se utilizó por un lado la información global de cada caracter normalizado a 16x16 pixeles, por lo cual se crea un vector columna con 256 filas, en cada fila
se almacena el valor particular de cada píxel ya sea negro(0) o blanco(255). Por otro lado se construyó un vector columna con 96 filas, este
vector fue el resultado de utilizar dos métodos para extracción de características, inicialmente se utilizó un método llamado proyecciones poligonales, el cual consiste en obtener vectores de características compuestos por los valores de distancia calculados a partir de un polígono de referencia en el contorno de la imagen. Este polígono de referencia se ubica alrededor de la imagen y puede tener la cantidad de lados que se desee, este polígono debe ser regular. La figura 10 muestra la forma de extracción de
estos vectores, utilizando un cuadrado como polígono de referencia (Silva et all, 2.002) (Koerich, 2.002):
Figura 10. Extracción de características por proyecciones
poligonales
Con este método y utilizando como polígono de referencia un cuadrado, se obtuvieron los 64 primeros elementos del vector de características, estos 64 elementos corresponden al conteo del número de pixeles entre las fronteras de una caja (cuadrado) y los bordes del caracter en la imagen. Estos perfiles son tomados desde cuatro
posiciones, arriba, abajo, izquierda y derecha. Para complementar y poder dar mayor precisión a la hora de clasificar los diferentes patrones, se
utilizó el método denominado histogramas de proyección, el cual consiste en contar los pixeles negros en cada fila y columna del caracter de
la imagen (Koerich, 2.002). En la figura 11 se
observan la proyección de histograma para la letra a:
Figura 11. Extracción de características por proyección
de histogramas.
Con el conteo del número de pixeles negros en cada fila y columna se obtuvieron los
32 elementos restantes para el vector de características, de esta manera se completan entonces las 96 filas del vector columna con
las características particulares de un patrón específico.
Clasificación y Postprocesamiento
Para la clasificación se entrenaron y probaron
dos máquinas de aprendizaje diferentes, por un lado el Perceptrón Multicapa que es una
Revista de Investigaciones No. 17 - Universidad del Quindío
196
máquina de aprendizaje muy utilizada y que ha dado muy buenos resultados en diversas tareas y por otro lado una máquina de vectores de soporte, la cual es una máquinas de aprendizaje novedosa por sus características de aprendizaje y por su alta habilidad de generalización. En la siguiente parte de este artículo se describirán las características generales de las MA entrenadas y evaluadas para el sistema de reconocimiento.La etapa de postprocesamiento se observa en la herramienta desarrollada en Matlab©, donde el usuario puede observar el resultado final del
reconocimiento mostrando la letra o número identificado por el sistema.
CARACTERÍSTICAS DE LOS CLASIFICADORES
Entre las diferentes arquitecturas de las redes neuronales artificiales, la de mayor divulgación
y de gran aplicación en muchas tareas y con muy buenos resultados en clasificación, ha
sido el perceptrón multicapa; por tal razón fue seleccionado para este proyecto con el fin de
comparar sus capacidades de generalización, ampliamente conocidas, con las capacidades de generalización de las máquinas de vectores de soporte, las cuales resultan ser novedosas y muy interesantes como alternativa para el desarrollo de sistemas de clasificación.
Como se mencionó la red neuronal artificial
utilizada fue un perceptrón multicapa con una y dos capas ocultas, para cada uno de estos casos se utilizaron diferente número de neuronas ocultas, obteniendo los mejores resultados para una capa oculta con 50 y 100 neuronas y para dos capas ocultas cada una de ellas con 50 y 100 neuronas. Para el entrenamiento se mantuvo el parámetro de la rata de aprendizaje, las funciones transferencia y el error mínimo global, en valores constantes y se variaron el número de
capas y de neuronas, entrenando siempre con el algoritmo del gradiente conjugado escalado.Para la máquina de vectores de soporte se probaron polinomios de orden 1 al orden 7 y para la función kernel de base radial se probaron diferentes valores para el ancho de la función Gausiana (σ), todas estas pruebas siempre
se hicieron con una cota de aprendizaje fija y
utilizando como método de optimización el SMO (sequential minimization optimization).Las dos máquinas de aprendizaje se entrenaron y probaron con una base de datos obtenida de 337 personas diferentes escaneadas y procesadas con el mismo sistema descrito anteriormente. Para el caso del reconocimiento de dígitos manuscritos (0-9) se utilizaron 6000 patrones para el entrenamiento y 4110 patrones para las pruebas, es decir que se tenía 600 ejemplos por patrón para el entrenamiento y 410 ejemplos por patrón para las pruebas. La tabla 1 muestra los porcentajes de acierto, sobre el conjunto de prueba, obtenidos para cada una de las diferentes máquinas de aprendizaje entrenadas:
Tabla 1. Porcentaje de acierto sobre el conjunto de
prueba para el reconocimiento de dígitos manuscritos
Dimensión entrada
RNA MVS
Arquitectura red
% Reconoci.
OrdenPolinomio
% Reconoci.
σ % Reconoci.
256 [100 – 10] 89.82 2 97.34 100 96.66
256 [50-50– 10] 90.6 3 97.49 67 95.49
256 [100-100– 10] 91.72 4 97.03 40 86.49
96 [100 – 10] 93.77 2 96.54 40 96.93
96 [50-50– 10] 94.84 3 96.54 29 97.03
96 [100-100– 10] 94.96 4 96.52 100 96.61
Para el caso del reconocimiento de caracteres manuscritos se utilizaron 15000 patrones para el entrenamiento y 10250 patrones para las pruebas, los resultados obtenidos sobre el conjunto de prueba se muestran en la tabla 2:
Revista de Investigaciones No. 17 - Universidad del Quindío
197
Tabla 2. Porcentaje de acierto sobre el conjunto de prueba
para el reconocimiento de caracteres manuscritos
Dimensión entrada
RNA MVS
Arquitectura red
% Reconoci.
OrdenPolinomio
% Reconoci.
σ % Reconoci.
256 [100 – 25] 78.54 2 93.41 105 93.19
256 [50-50– 25] 80.75 3 93.78 100 93.17
256 [100-100– 25] 84.28 4 93.57 400 92.46
96 [100 – 25] 86.98 2 93.26 22 93.77
96 [50– 25] 85.45 3 93.27 20 93.56
96 [100-100– 25] 89.32 4 93.04 13 93.49
En ambas tablas se resaltan los porcentajes de acierto más altos para cada máquina de aprendizaje,donde se puede observar que el porcentaje de acierto obtenido con las máquinas de vectores de soporte fue superior que los obtenidos para el perceptrón multicapa, con una marcada diferencia en el reconocimiento de caracteres manuscritos, para este caso la diferencia entre el mejor clasificador del
perceptrón multicapa y el mejor clasificador
con la máquina de vectores de soporte fue del 4.42%, mientras que para el reconocimiento de los diez dígitos manuscritos la diferencia fue sólo del 2.53%. Lo anterior indica que la capacidad de generalización de las máquinas de vectores de soporte es mayor que la capacidad de generalización del perceptrón multicapa en esa aplicación específica, aunque no se debe
desconocer que la generalización del perceptrón multicapa puede ser mejorada utilizando técnicas de validación cruzada o utilizando un método de extracción de características, el cual contenga información más precisa sobre cada patrón y permita discriminar mejor entre las diferentes clases; no se debe descartar que se puede mejorar la capacidad de generalización de las máquinas de vectores de soporte utilizando técnicas que permitan determinar de forma óptima los parámetros de estas máquinas de aprendizaje.
Herramienta para el Reconocimiento de Caracteres Manuscritos
Después de la fase de entrenamiento y prueba de las máquinas de aprendizaje se seleccionaron los mejores clasificadores para implementar la
herramienta para el reconocimiento de caracteres manuscritos. Esta herramienta implementada en Matlab 7.0, se basa en el sistema mostrado en la figura 1 y fue probado con números y
letras obtenidas de 30 personas diferentes, aplicando el formato de la figura 2. La interfaz
gráfica del sistema se puede ver en la figura
12. La herramienta consta de tres botones y de tres cajas de diálogo sobre las cuales se puede escribir algunos números o seleccionar alguna opción.
Figura 12. Herramienta para el reconocimiento de
caracteres manuscritos
El primer botón que se debe presionar para poder realizar la identificación de número o letras es
el de cargar imagen, al presionar este botón la herramienta abrirá un ventana direccionada a una carpeta donde se tendrán dos carpetas más, una con formatos donde se tienen sólo número o una con formatos donde sólo se tiene letras. Se selecciona y carga una imagen, con extensión
Revista de Investigaciones No. 17 - Universidad del Quindío
198
bmp, que contiene números o letras sin procesar, enseguida la herramienta colocará una imagen con los números o letras como se puede ver en la figura 13:
Figura 13. Imágenes para validación sin procesar.
El siguiente paso consiste en determinar la cantidad de letras o números que hay en la imagen, este número debe ser ingresado a través del teclado en la caja de diálogo la cual tiene en la parte de arriba el siguiente mensaje: “Ingrese el número de caracteres a reconocer”. Después de esto se oprime el botón de procesamiento y se obtendrá la imagen procesada como se observa en la siguiente figura:
Figura 14. Imágenes procesadas
Durante este proceso la herramienta adicionalmente segmenta y normaliza cada uno de los caracteres, y a su vez realiza la extracción de características de cada uno de ellos y crea dos vectores columna de cada caracter, en uno de ellos almacena las características globales, es decir crea un vector columna con 256 filas, en
otro almacena las características particulares, es decir que crea un vector columna con 96 filas;
este proceso se realiza con el fin de ingresar a la
MA la información necesaria y adecuada para la identificación de cada caracter.
Se debe recordar que las máquinas de aprendizaje fueron entrenadas y probadas tanto
Revista de Investigaciones No. 17 - Universidad del Quindío
199
con características globales como particulares y que para cada caso se eligieron los mejores clasificadores, es decir algunos identifican los
caracteres con características globales y otros con las particulares.Después de realizar el procesamiento la herramienta muestra un mensaje sobre la caja de diálogo para que se seleccione la dimensión del vector de entrada, es decir que se selecciona
si se desea identificar las letras o números con
características globales (dim. 256) o particulares (dim. 96), para luego seleccionar la máquina de aprendizaje deseada para la identificación
de los caracteres, ya sea con un perceptrón multicapa (MLP – multilayer perceptron) o con una máquina de vectores de soporte (SVM – support vector machine). La figura 15 ilustra
este proceso:
Figura 15. Selección de la dimensión de entrada y de la máquina de aprendizaje
En el momento que se selecciona la máquina de aprendizaje según el tipo y con la dimensión del vector de entrada deseada, la interfaz despliega
debajo de la imagen con los caracteres procesados los caracteres reconocidos por el sistema, esto se observa de la siguiente manera:
Figura 16. Resultado del reconocimiento de caracteres.
Revista de Investigaciones No. 17 - Universidad del Quindío
200
La figura 16 muestra los resultados de la
identificación de los caracteres manuscritos,
en esta figura se observa que no hubo errores
en el proceso de reconocimiento tanto de los números como de las letras. Este procedimiento se aplicó a los formatos llenados por las distintas personas, obteniendo los siguientes resultados:
Tabla 3. Porcentaje de acierto en la validación
Dimen.entrada
% errorReconoc. Dígitos
% errorReconoc.
Letras
SVM 256 96.04 86.35
MLP 256 91.67 75.27%
SVM 96 98.02 85.86
MLP 96 93.66 79.5
De la tabla 3 se puede observar que nuevamente las máquinas de vectores de soporte presentan un mayor porcentaje de acierto en el reconocimiento de los caracteres manuscritos que el perceptrón multicapa. En el reconocimiento de dígitos manuscritos las máquinas de vectores de soporte superan en más del 4% de acierto al perceptrón
multicapa, tanto con características globales (Dim 256) como con características particulares (Dim. 96). Para el caso del reconocimiento de letras manuscritas se puede observar que las MVS superan en más de un 6% al porcentaje de acierto del perceptrón multicapa en ambos casos.Para el reconocimiento de los dígitos manuscritos se tiene que los porcentajes obtenidos son similares a los mostrados en la tabal 1, mientras que los obtenidos para el reconocimiento de las letras manuscritas fueron inferiores a los mostrados en la tabla 2, esto se debe a algunos problemas en los caracteres escritos por algunas personas; en algunos casos colocaron la letras en mayúscula y en otros casos se presentaron verdaderas confusiones en el reconocimiento del caracter. En las siguientes figuras se puede
observar que los formatos fueron llenados con letras mayúsculas, lo cual generó un alto error en el reconocimiento de las letras manuscritas debido a que las máquinas de aprendizaje fueron entrenadas con letras minúsculas.
Figura 17. Errores presentados por letras mayúsculas.
Revista de Investigaciones No. 17 - Universidad del Quindío
201
Figura 18. Errores presentados por letras mayúsculas.
CONCLUSIONES
Se implementó un sistema para el reconocimiento
fuera de línea (off-line) de caracteres
manuscritos, restringidos en tamaño, con la
capacidad de reconocer dígitos manuscritos
con un porcentaje de acierto del 97.49% y letras
manuscritas con un porcentaje de acierto del
93.78%. Estos resultados fueron obtenidos en
para una máquina de vectores de soporte con
una función núcleo (kernel) de tipo polinomial
de orden tres y utilizando 96 características
obtenidas de cada patrón. Las tablas 1 y 2
muestran otros resultados obtenidos para el
reconocimiento de caracteres manuscritos
utilizando otros clasificadores como el
perceptrón multicapa y como una máquina de
vectores de soporte con una función de base
radial como función núcleo (kernel).
Los resultados obtenidos en la fase de pruebas
de las máquinas de aprendizaje y los cuales se
muestran en las tablas 1 y 2, permiten concluir
sobre la alta habilidad de generalización
que presentan las máquinas de vectores de
soporte comparadas con la capacidad de
generalización mostrada por el perceptrón
multicapa. El porcentaje de acierto obtenido con
el perceptrón multicapa fue superado, por las
máquinas de vectores de soporte, en un 2.53%
en el reconocimiento de dígitos manuscritos
y en un 4.42% en el reconocimiento de letras
manuscritas, estos resultados fueron reafirmados
en el proceso de validación, donde nuevamente
las máquinas de vectores de soporte superan
en los porcentajes de acierto al perceptrón
multicapa. Lo anterior permite recomendar a
las máquinas de vectores de soporte como una
buena alternativa para la implementación de
sistemas de clasificación.
Analizando con detenimiento las tablas 1 y 2
se deben destacar algunas cosas en ambas
máquinas de aprendizaje. Primero que todo,
el porcentaje de acierto de ambas máquinas
de aprendizaje pueden ser mejorado, para el
perceptrón multicapa se pueden implementar
técnicas de validación cruzada o técnicas e
optimización en la fase den entrenamiento y
para las máquinas de vectores de soporte se
pueden implementar técnica que permitan
elegir sus parámetros de manera óptima. Por
otro lado el se debe resaltar la sensibilidad del
perceptrón multicapa al tipo de características
utilizadas para representar los patrones, como
se observa en ambas tablas, el rendimiento del
Revista de Investigaciones No. 17 - Universidad del Quindío
202
perceptrón multicapa mejora bastante cuando
se le presentan los patrones que características
muy particulares de los mismos, lo cual indica
que su rendimiento podría ser mejorado
añadiendo más características al vector de
entrada o utilizando otros métodos para la
extracción de características; la sensibilidad a
las características utilizadas para representar
a los patrones, afecta a las máquina de vectores
de soporte según el tipo de función núcleo
utilizada, por ejemplo, las funciones base radial
presentan un porcentaje de acierto mayor ante
característica particulares, mientras que las
funciones de tipo polinomial respondía con un
mayor acierto ante las características globales
de los patrones, fenómeno que puede ser de
gran utilidad a la hora elegir la función núcleo
adecuada para la máquina de vectores de
soporte.
REFERENCIAS
ÁLVAREZ, D. C., RODRÍGUEZ, F. M. Reconocimiento de Dígitos Manuscritos Mediante 1. una Red Neuronal Multicapa. Departamento de Tecnologías de las Comunicaciones. E.T.S.I.T. Universidad de Vigo. 1.997
BOSER, B. E., GUYON, I., and VAPNIK, V. N.: A training algorithm for optimal Margin 2. classifiers. In Proceedings of the Fifyh Annual Workshop of Computacional Learning Theory,
volume, 5, pages 144-152, Pittsburg, 1992, ACM.
BUNKE H., ROTH M., SCHKAT-TALAMAZZINI E. G. Off-Line Cursive Handwriting 3. Recognition using Hidden Markov Models.1.995
BUNKE H., HA T. Off-Line Handwriting Numeral String Recognition. University of Berne. 4. November, 1.997.
CHOI, Y. Recognition of Unconstrained Handwritten Numerls Based on Dual Cooperative 5. Neural Network. Degree of Doctor of Philosophy(Computer Engineering). University of Southern California. 1.994
CORTES, C., VAPNIK, V. Support Vector Networks. Machines Learning, 20:273-297, 1.995. 6.
EIKVIL, L. OCR- Optical Character Recognition. 1.993 7.
GONZÁLES, R., WOODS, R. “Tratamiento Digital de Imágenes”. Addison-Wesley 8. Iberoamericana S.A. Wilmington, Delaware, E.U.A. 1.996
HAYKIN S. (1.999). Neural Network: A Comprehensive Fundation. Prentice Hall, Upper 9. Saddle River, New Jersey.
LAAKSONEN, J. Subspaces classifiers in Recognition of Handwritting Digits. Thesis for the 10. Degree of Doctor of Technology. Helsinky University of Technology. 1.997.
Revista de Investigaciones No. 17 - Universidad del Quindío
203
LE CUN Y, BOSER B, DENKER, J S, HEMDERSON D, HOWARD R E, HUBBARD W 11. and JACKEL L D: Handwritten Digit Recognition With a Back-Propagation Network. In Touretzky, D., editor, Advances in Neural Information Processing Systems 2 (NIPS*89), Denver, CO. Morgan Kaufmann, (1990).
KECMAN V. Support Vector Machines Basics. Report 616. School of Engineering. University 12. of Auckland. (2004):1-58
MUÑOZ P, IBARGÜEN F, CARDONA J: Máquinas de Vectores de Soporte: Un Enfoque 13. Teórico. Revista de Investigaciones de la Universidad del Quindío. (Artículo en revisión).
MUÑOZ P, IBARGÜEN F, LÓPEZ J: Reconocimiento de Caracteres Manuscritos Usando 14. Máquinas de Vectores de Soporte. X Simposio de Tratamiento de Señales, Imágenes y Visión Artificial. Universidad del Valle, Santiago de Calí 16 de Septiembre de 2.005.
OSUNA, E., FREUD, R., and GIROSI, F.: Support Vector Machines: Training and Applications. 15. MIT A.I. Lab. Technical Report AIM-1602. (1997).
PARKER, J. R. Practical Computer Vision Using C. New York : John Wiley. 2.00016.
SEIJAS, L. M. Reconocimiento de Dígitos Manuscritos Mediante Redes Neuronales: Una 17. Técnica Híbrida. Departamento de Computación, Facultad de Ciencias exactas y Naturales. Universidad de Buenos Aires. Buenos Aires, (1.998)
SILVA, E., THOMÉ, A. C. Reconhecimento de Caracteres Manuscritos Utilizando Time Redes 18. Neurais. Instituto de Matemática (IM), Núcleo de Computação Eletrônica(NCE) Universidade Federal do Rio de Janeiro(UFRJ), Rio de Janeiro, (2002).
TRIER, Ø. D., JAIN, A. K., TAXT, T. Feature Extraction Methods for Character Recognition 19. –A Survey. Pattern Recognition, 29(4), 641-662. July, 1.995.
VAPNIK V. (2000). The Nature of Statisctical Learning Theory. Springer Verlag, New York , 20. NY. 2a edición.
VAPNIK V. (1998). Statistical Learning Theory. J. Wiley & Sons. New York NY21.