Вы находитесь на странице: 1из 8

2013

Reconocimiento de Letras

Autores: T.S.U. Kesia Isabel Holgun T.S.U. Osvaldo Garca T.S.U. Rafael Hernndez Asesor Acadmico:

M.C. Francisco Salas Prez


Universidad Tecnolgica de Torren 26/07/2013

Contenido
Objetivo de la prctica...................................................................................................................................... 3 Diseo de Graphic User Interface .................................................................................................................. 3 Elaboracin de Patrones de Reconocimiento .............................................................................................. 5 Creacin de la Red Neuronal y entrenamiento. ........................................................................................... 6 Ejecucin de Red Neuronal y uso e patrones .............................................................................................. 8 Ejecutando desde GUI ..................................................................................................................................... 8

Objetivo de la prctica
Aplicacin de las herramientas de redes neuronales, funciones y operaciones lgicas para hacer el reconocimiento de letras mediante patrones definidos en matrices de 7 filas por 5 columnas para cada uno, crear la red neuronal y entrenarla hasta tener un error mnimo para comenzar a trabajar.

Diseo de Graphic User Interface


Para hacer una interaccin del usuario con la red y las funciones que intervienen se crea un GUI. En la cual se integra de un popup men, un cuadro par imgenes, un static text para mostrar el numero de vector que es verdadero.

Es importante al seleccionar cada elemento verificar el nombre que se le crea por default para as poderlo configurar en el script que se crear ms adelante. Al guardar GUI se abre el editor y desde esta ventana se edita el comportamiento de los grficos en funcin al algoritmo y la red neuronal. En la parte donde se edita el Popupmenu el callback, lo que se ocupa es obtener el valor decimal de la seleccin del men y se agrega la funcin switch que cambia la imagen que se muestra en funcin a la seleccin del popup segn alguno de los 26 casos, segn las 26 letras del alfabeto que se toman en cuenta.

function popupmenu1_Callback(hObject, eventdata, handles) val = get(handles.popupmenu1,'Value'); val=val-1; switch val case 0 axes(handles.axes1) imagen = imread('P_A.jpg'); axis off; imshow(imagen); case 1 axes(handles.axes1) imagen = imread('P_B.jpg'); axis off; imshow(imagen); case 2 axes(handles.axes1) imagen = imread('P_C.jpg'); axis off; imshow(imagen); case 3 axes(handles.axes1) imagen = imread('P_D.jpg'); axis off; imshow(imagen); case 4 axes(handles.axes1) imagen = imread('P_E.jpg'); axis off; imshow(imagen); case 5 axes(handles.axes1) imagen = imread('P_F.jpg'); axis off; imshow(imagen); case 6 axes(handles.axes1) imagen = imread('P_G.jpg'); axis off; imshow(imagen); case 7 axes(handles.axes1) imagen = imread('P_H.jpg'); axis off; imshow(imagen); case 8 axes(handles.axes1) imagen = imread('P_I.jpg'); axis off; imshow(imagen); case 9 axes(handles.axes1) imagen = imread('P_J.jpg'); axis off; imshow(imagen); case 10 axes(handles.axes1) imagen = imread('P_K.jpg'); axis off; imshow(imagen); case 11 axes(handles.axes1) imagen = imread('P_L.jpg'); axis off; imshow(imagen); case 12 axes(handles.axes1) imagen = imread('P_M.jpg'); axis off; imshow(imagen); case 13 axes(handles.axes1) imagen = imread('P_N.jpg'); axis off; imshow(imagen); case 14 axes(handles.axes1) imagen = imread('P_O.jpg'); axis off; imshow(imagen); case 15 axes(handles.axes1) imagen = imread('P_P.jpg'); axis off; imshow(imagen); case 16 axes(handles.axes1) imagen = imread('P_Q.jpg'); axis off; imshow(imagen); case 17 axes(handles.axes1) imagen = imread('P_R.jpg'); axis off; imshow(imagen); case 18 axes(handles.axes1) imagen = imread('P_S.jpg'); axis off; imshow(imagen); case 19 axes(handles.axes1) imagen = imread('P_T.jpg'); axis off; imshow(imagen); case 20 axes(handles.axes1) imagen = imread('P_U.jpg'); axis off; imshow(imagen); case 21 axes(handles.axes1) imagen = imread('P_V.jpg'); axis off; imshow(imagen); case 22 axes(handles.axes1) imagen = imread('P_W.jpg'); axis off; imshow(imagen); case 23 axes(handles.axes1) imagen = imread('P_X.jpg'); axis off; imshow(imagen); case 24 axes(handles.axes1) imagen = imread('P_Y.jpg'); axis off; imshow(imagen); case 25 axes(handles.axes1) imagen = imread('P_Z.jpg');

axis off; imshow(imagen); otherwise axes(handles.axes1)

imagen = imread('P_0.jpg'); axis off; imshow(imagen); end

Elaboracin de Patrones de Reconocimiento


Ahora tomando en cuenta que el tamao de los vectores para cada letra es de 7 filas por 5 columnas, se obtuvieron las siguientes imgenes para poder entrenar la red y los tome, como patrones.

Enseguida se sacan los vectores en binario de cada imagen quedando de la siguiente manera:

Al final se crea un nico vector P en el que cada uno de los valores son los vectores que definen cada letra, despus se crea el Target con una matriz de identidad, y por ltimo se crean las matrices de entrada y target que se usaran en la creacin y entrenamiento de la red con los nombres PP y TT respectivamente.

Ahora para poder crear los vectores de cada patrn y usar en la red que se crear es necesario ejecutar el script para que aparezcan en la workspace.

Creacin de la Red Neuronal y entrenamiento.


Ahora desde el Command Window se manda a llamar la herramienta neuronal network pattern recognition tool (nprtool) para crear la red neuronal.

En seguida se seleccionan Inputs y Targets.

En la siguiente ventana se colocan el nmero de neuronas ocultas con las que ser estructurada la red, y en la figura de abajo se muestra en nmero de entradas de la red en este caso 35 por los vectores con los que se defini cada letra as como las neuronas ocultas, las neuronas de salida y el nmero de salidas que tendr la red. Se hicieron pruebas con 10 y 20 neuronas ocultas con de 3 a 5 entrenamientos dependiendo del resultado que se estaba obteniendo.

Con 20 Neuronas ocultas en el cuarto entrenamiento en el primer entrenamiento se obtuvo un error de 0.0068 en 142 pocas, se muestra adems el entrenamiento, la validacin, y la prueba de la red, cuando se tiene un la validacin mejor, es debido que el error que se obtuvo es pequeo.

A continuacin se muestra la ventana donde se permite guardar los resultados en el workspace, y desde ah guardarlo con una nueva extensin desde el workspace.

La red deber ser guardada con el nombre red20h y la extensin .mat

Ejecucin de Red Neuronal y uso e patrones


Despus se crea un script con el mismo nombre, esta nueva aplicacin es una funcin que carga la red ya creada.

Se cargan los valores de cada letra y se utiliza un switch para dependiendo del patrn que se identifique, al final se simula la red y se obtiene el patrn.

Ejecutando desde GUI


Y para verificar el funcionamiento de la red y el reconocimiento de caracteres, ejecutar el GUI, al seleccionar cada letra del men se cambia automticamente en el cuadro azul el dato en 1 o verdadero segn el vector correspondiente.

Вам также может понравиться