Sei sulla pagina 1di 9

Escuela profesional de Ingeniera Electrnica

REDES NEURONALES Y LOGICA DIFUSA

Diseo de un OCR (Optical Character Recognition)


utilizando un Perceptrn para clasificacin de un patrn de
entrada en 7 categoras
Matlab + Simulink.

PROYECTO DE LABORATORIO No1

En este Proyecto Ud. modelar y disear un sistema para el reconocimiento ptico


de caracteres utilizando un Perceptrn el cual ser usado para el reconocimiento de
placas de vehculos que infringen la ley*

El Reconocimiento ptico de Caracteres generalmente conocido como


reconocimiento de caracteres, es un proceso dirigido a la digitalizacin de textos, los
cuales identifican automticamente a partir de una imagen smbolos o caracteres
que pertenecen a un determinado alfabeto, para luego almacenarlos en forma de
datos, as podremos interactuar con estos mediante un programa de edicin de texto
o similar. Con frecuencia es abreviado en textos escritos en el idioma espaol,
utilizando el acrnimo a partir del ingls OCR o ROC.

El desarrollo de un prototipo de ingeniera y una patente en el tema del


Reconocimiento Optico de Caracteres OCR es una tarea complicada y requiere un
gran esfuerzo. Estos sistemas suelen ser muy complicados y puede implicar la
escritura de cdigo de programacin complejo y extenso detrs. El uso de una Red
Neural Artificial en aplicaciones de OCR puede simplificar el cdigo y mejorar la
calidad de reconocimiento, mientras se logra un buen rendimiento. Otro de los
beneficios de la utilizacin de redes neuronales en OCR es la extensibilidad del
sistema, la capacidad de reconocer juegos de caracteres extras que los definidos
inicialmente as como las propiedas de robustez y tolerancia a fallas que exhibe la
red neuronal.

La mayora de los sistemas tradicionales de OCR no son suficientemente


extensibles. Por qu? Por ejemplo el trabajo con decenas de miles de caracteres
chinos no es tan fcil como trabajar con 68 sets de caracteres escritos en Ingls
escrito.

Una Red Neuronal artificial (ANN) es una maravillosa herramienta que puede
ayudar a resolver este tipo de problemas. El RNA o ANN es un paradigma de
procesamiento de informacin inspirada en la forma en que el cerebro humano
procesa la informacin.

Las redes neuronales artificiales son un conjunto de modelos matemticos que


representan algunas de las propiedades observadas en los sistemas nerviosos
biolgicos y recurren a las analogas biolgicas de aprendizaje adaptativo. El
elemento clave de ANN es la topologa. La RNA se compone de un gran nmero de
elementos de procesamiento altamente interconectadas (nodos) que estn unidos
con conexiones ponderadas (links). El aprendizaje en los sistemas biolgicos
implica ajustes en las conexiones sinpticas que existen entre las neuronas. Esto es
cierto para la RNA tambin. El aprendizaje se produce normalmente por ejemplo
mediante la formacin, o la exposicin a un conjunto de entrada / salida de datos
(patrn) cuando el algoritmo de entrenamiento ajusta los pesos de enlace. Los
pesos en los links almacenan los conocimientos necesarios para resolver problemas
especficos.

I DISEO DE UN SISTEMA DE RECONOCIMIENTO DE CARACTERES


(CHARACTER RECOGNITION WITH NEURAL NETWORKS OCR)
INFILTRADOS POR RUIDO. (CODIGO ABIERTO MATLAB)

OBJETIVO : El objetivo de este Proyecto es modelar y disear el reconocimiento


ptico de caracteres (OCR), utilizando un Perceptrn. En vez de descomponer las
imgenes en cdigo extensos de lneas de programacin, esta se definir a partir de
una grilla de pixeles, normalizando el tamao de los caracteres a travs de un
nmero especfico de pixeles como una entrada al MLP. El nmero de nodos de
entrada puede variar a travs del nmero de dimensiones de la grilla.

El Perceptron que se muestra en la figura puede ser extendido y utilizado para


casos donde los vectores de entrada pertenecen a una o ms categoras. En este
tipo de aplicaciones se considera una unidad de salida (Output Unit) la cual
representa cada una de las categoras en la cual los vectores de entrada (Input
Vectors) pueden pertenecer.
ARQUITECTURA DE UN PERCEPTRON PARA CLASIFICAR PATRONES DE
ENTRADA EN 7 CATEGORIAS

Para este Proyecto de Laboratorio considere que cada vector de entrada (Input
vector) es un tupla* de 63 elementos representando un carcter o letra expresado
como un patrn en una grilla de dimensiones 7 x 9.

Los patrones de entrenamiento a considerar en el proyecto se muestran a


continuacin :

INPUT from FONT 1

INPUT from FONT 2

INPUT from FONT 3


Existen 7 categoras para las cuales cada patrn de entrada puede pertenecer y por
ese motivo el Perceptron tiene 7 componentes en el vector de salida (Output
vector) cada uno representando los caracteres A, B, C, D, E, J, K.

El patrn de entrada de entrenamiento (training input pattern) y las respuestas


deseadas (target responses) deben ser convertidas a una forma apropiada que
la Red Neuronal pueda procesar. Una representacin bipolar tiene mejor
caracterstica computacional que una representacin binaria. Los patrones de
entrada deben ser convertidos a vectores bipolares.

Por ejemplo el vector de salida deseado (target output pattern) para la letra A es
el vector bipolar :

(1, -1, -1, -1, -1, -1, -1, -1)

El entrenamiento de la red neuronal para este proyecto deber tener en cuenta el


siguiente algoritmo:

ALGORITMO DE ENTRENAMIENTO (TRAINING ALGORITHM)


Anlisis de la Robustez de la Red Neuronal

1. Una vez entrenada la Red Neuronal (PERCEPTRON) intercambie caracteres


con aquellos definidos por sus otros compaeros.
2. Observe y comente sobre la capacidad de robustez de la red neuronal.

Anlisis de la capacidad de Tolerancia a fallas (FAULT TOLERANT)

1. Repita el ejercicio pero considerando patrones de entrada corrompidos por


ruido (noisy input patterns).

II DISEO DE UN SISTEMA DE RECONOCIMIENTO DE CARACTERES


(CHARACTER RECOGNITION WITH NEURAL NETWORKS OCR)
INFILTRADOS POR RUIDO. (CODIGO PROPIETARIO TOOLBOX
MATLAB)

Para su diseo Ud. utilice tambin, algoritmos de los Toolboxes de


Matlab/Simulink para disear un Sistema de Reconocimiento de Caracteres
OCR y que posteriormente sern infiltradas por ruido. Compare la eficiencia de
los comandos del Toolbox de Redes Neuronales vs la eficiencia computacional
de sus propios algorimos.

El comando prprob define una matriz X de 26 columnas correspondientes a


cada una de las letras del alfabeto. Cada columna tiene 35 valores los cuales
pueden ser codificados en forma binaria como 1 o 0. Cada columna de 35
valores define un bitmap de dimensiones 5 x 7 para cada letra o caracter. La
matriz T es una matriz identidad de dimensiones 26 x 26 la cual mapea los 26
input vectors a las 26 clases correspondientes.

[X,T] = prprob;

Por ejemplo el siguiente comando grafica o plotea el caracter A como un bit


map:

plotchar(X(:,1))

Creacin de una Red Neuronal para el reconocimiento y clasificacin de caracteres


(Pattern Classification/Pattern Recognition)

Para resolver este problema, vamos a utilizar una red neuronal de tipo feedforward
para el reconocimiento de patrones con 25 neuronas ocultas.

Dado que la red neuronal se inicializa con los pesos iniciales aleatorios, los
resultados despus de la formacin varan ligeramente cada vez que se ejecuta el
ejemplo.

net1 = feedforwardnet (25);


vista (net1)

Observe el objeto de Red Neuronal ensamblado por Matlab


Entrenamiento de la primera red neuronal

La funcin train divide los datos en conjuntos de entrenamiento, validacin y


prueba. El conjunto de entrenamiento se utiliza para actualizar la red. El conjunto de
validacin se utiliza para detener la red antes de que sobre ajuste/sobre encaje
(overfits) los datos de entrenamiento, preservando as la buena generalizacin.

net1.divideFcn = '';

net1 = train(net1,X,T)

El entrenamiento se detiene cuando ya no es probable que la red mejore en el


entrenamiento o validacin de los caracteres..

Entrenando la segunda Red Neuronal

Queremos que la red reconozca no slo las letras o caracteres perfectamente


formadas, sino tambin versiones ruidosas de estas. As que vamos a formar una
segunda red de datos ruidosos y comparar su capacidad de generalizacin con la
primera red neuronal.

A continuacin, se crean 30 copias de cada carcter ruidoso Xn. Los valores estn
limitados por min y max para caer entre 0 y 1. Las metas correspondientes Tn
tambin se definen.

numNoise = 30;

Xn=min(max(repmat(X,1,numNoise)
+randn(35,26*numNoise)*0.2,0),1);

Tn = repmat(T,1,numNoise);

plotchar(Xn(:,1))
Su reporte deber considerar la siguiente estructura :

1. Modelamiento
2. Anlisis
3. Diseo
4. Simulacin
5. Optimizacin
6. Rapid Prototyping

WHAT IF ?

Suponga que su prototipo ser utilizado para lectura de placas de vehculos que
infringen la ley, que consideraciones deber tener su diseo ?

NOTA:

Tiene la libertad de utilizar Matlab + Simulink y/o cualquier lenguaje de programacin que desee
(Java, C, C++.). Explore el uso del GUI (Graphic User Interfase) de Matlab.

Se prohbe inicialmente el uso del Toolbox de Redes Neuronales. Habiendo implementado su


propio algoritmo puede incluir en este reporte la comparacin de la eficiencia computacional de su
algoritmo y la del perceptrn propietario de Matlab.

Fecha de Entrega:
Fernando Jimenez Motte Ph.D.EE (c), M.S.E.E

Potrebbero piacerti anche