Está en la página 1de 129

INSTITUTO POLITCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA.


SECCIN DE ESTUDIOS DE POSGRADO E INVESTIGACIN.
UNIDAD CULHUACAN.

RECONOCIMIENTO DE PLACAS
VEHICULARES
T

QUE PARA OBTENER EL GRADO ACADMICO DE


MAESTRO EN CIENCIAS DE INGENIERA EN
MICROELECTRNICA PRESENTA:

ING. JOSE LUIS DELGADO MONTIEL


DIRECTOR DE TESIS: DR. HECTOR MANUEL PEREZ MEANA
DR. GABRIEL SANCHEZ PEREZ

MXICO, D.F. DICIEMBRE 2010

AGRADECIMIENTOS

Al Instituto Politcnico Nacional (IPN) por mi formacin acadmica en mis estudios de licenciatura y
posgrado.

Al Consejo Nacional de Ciencia y Tecnologa (CONACYT) por el apoyo econmico brindado durante la
elaboracin del presente trabajo.

Al Programa Institucional de Formacin de Investigadores (PIFI) por el apoyo econmico proporcionado


en la elaboracin del presente trabajo.

Al Dr. Hctor Manuel Prez Meana y al Dr. Gabriel Snchez Prez, por su asesora, conocimiento y
dedicacin brindada durante la elaboracin del presente trabajo.

A mi esposa y mi hijo por su apoyo, su tolerancia, su paciencia y comprensin durante todo el desarrollo
del trabajo presente.

A mis padres, a mis hermanos y hermanas, por su apoyo durante el desarrollo del trabajo presente.

A mis amigos y amigas por su apoyo y consejos brindados durante el desarrollo del trabajo presente.

A dios que me permiti cumplir con este sueo de mi vida, que me brindo salud y bien estar,
conocimiento y entendimiento para culminar el desarrollo del presente trabajo.

RESUMEN
En los ltimos aos el flujo de vehculos en la ciudad de Mxico ha crecido de manera impresionante de
tal forma que ha representado la necesidad de tener un control estadstico, de tener mucha ms
seguridad pblica, ms control de velocidad, ha representado tambin un mayor ndice en la
entrada/salida de estacionamientos y de casetas de cobro.

La rama de la computacin ha seguido

desarrollndose, habindose incorporado en casi todas las reas. El procesamiento digital de imgenes
ha permitido evolucionar varias ramas debido a su manejo y tratamiento de imgenes, permitiendo
tener una mejor apreciacin sobre una imagen determinada, y de esta forma tener un mejor anlisis y
diagnostico sobre un objetivo en particular. Una de las tcnicas implementadas en el presente proyecto
es el procesamiento digital de imgenes.

La adquisicin de la imagen del vehculo es el inicio para

realizar una serie de tratamientos de la imagen y de esta forma definir un proceso parametrizable a la
resolucin de las imgenes y obtener vectores caractersticos que puedan ser clave para utilizar un
algoritmo de entrenamiento y reconocimiento de patrones.

El procesamiento digital de imgenes es el conjunto de tcnicas que se aplican a las imgenes digitales
con el objetivo de mejorar la calidad o facilitar la bsqueda de informacin. Para cuando una imagen
digital presenta ruido en su integridad se realiza un proceso de filtrado, el cual es un conjunto de
tcnicas englobadas dentro del pre-procesamiento de imgenes cuyo objetivo fundamental es obtener, a
partir de una imagen origen, otra final cuyo resultado sea ms adecuado para una aplicacin especifica
mejorando ciertas caractersticas de la misma que posibilite efectuar operaciones del procesado sobre
ella.

En la presente Tesis se propone un sistema que parte desde la adquisicin de una imagen digital en
formato RGB (del ingls Red Green Blue) para despus realizar la conversin a escala de grises y el
anlisis de frecuencia en la imagen para determinar la localizacin de la placa vehicular, y
posteriormente iniciar con la conversin a blancos y negros (binarizacin) que es cuando ya se tiene una
imagen digital en un solo plano. Cuando la imagen se encuentra binarizada se realiza el procesos de
segmentacin, despus se procede a realizar el filtrado y reconstruccin de caracteres (previniendo que
pudiera existir ruido y/o desgaste en los caracteres), una vez que se cuenta el carcter ha mejorado en
su calidad se procede a realizar la segmentacin, esto se logra obteniendo el promedio del numero de
pixeles negros que pueda contener alguna de las diecisis ventanas en las que se divide el carcter.
Aunque el sistema propuesto est enfocado a las placas de los vehculos de la ciudad de Mxico, este
puede ser empleado con placas de otro estado o pas. Las placas estn constituidas por seis caracteres y
monumento o columna de la independencia como fondo de la placa, los primeros tres caracteres son
nmeros, los ltimos tres caracteres son letras, los nmeros que se emplean son del cero a nueve, las
letras que se usan son de la A-H, de la J-N, la P y de la R-Z.

Los resultados experimentales obtenidos en condiciones reales de operacin muestran que el sistema
propuesto presenta un acierto del 99.84% con caracteres que se usaron en el proceso de entrenamiento
y un 98.78% con caracteres que no fueron utilizados en el proceso de entrenamiento.

ABSTRACT
During the last years the vehicle flow in the Mexico city has grown dramatically in such way that it
requires an statistical control to have a much more public security and vehicle speed control. It has also
represented a higher entrance / exit index of the parking lots and toll gates. The computer industry has
also experience a continuous to growing, that has allowed its incorporation into almost all areas. The
digital image processing has contributed to the evolution of several branches due to their management
and treatment images, allowing a better assessment of an image determined, and thus a better analysis
and diagnosis on a particular purpose. One of the techniques implemented in this thesis is the digital
image processing. The image acquisition of the vehicle is starting to make a series of image processing
and thus to define a process customizable to the images resolution and obtaining vectors characteristic
that may be key for using a training algorithm and pattern recognition techniques.

The digital image processing is a set of techniques applied to digital images in order to improve quality
or facilitate the information search. When a digital image is noisy a filtering process is performed, which
is a set of techniques encompassed within the pre-processing of images whose primary objective is to
obtain a less distorted image from an image source, which results in a more appropriate image for a
specific application improving certain image characteristics.

This allows them to carry out the some

feature extraction operations on it useful for plate number recognition.

In this thesis proposes a system that starts from the acquisition of a digital image in RGB (Red Green
Blue English) and then convert to grayscale and frequency analysis image to determine the location
of license plate. Then to start with black and white conversion (binarization) that is when the system
already have a digital image on a single plane. When the image is binarized is performed segmentation
processes, then proceeds to perform the filtering and reconstruction of characters (which might be
preventing noise and / or wear on the characters), once the character quality has been improved
appropriate to the segmentation, this is achieved by averaging the number of black pixels that can
contain any of the sixteen windows in which the character is divided. Although the proposed system is
aimed at the license plates of vehicles in Mexico City, this can be used with plates from another state or
country. The plates consist of six characters long column or independence monument as the bottom of
the plate, the first three characters are numbers, the last three characters are letters, numbers used are
from zero to nine, the letters are used are of the A-H, of J-N, the P and R-Z.

The experimental results obtained in real operating conditions show that the proposed system a success
of 99.84% with characters that are used in the process of training and 98.78% with characters that were
not used in the training process.

PREFACIO

Actualmente el procesamiento digital permite realizar anlisis sobre cualquier tipo de informacin
incluyendo el de las imgenes digitales. Los avances tecnolgicos y las tcnicas de procesamiento de
imgenes que se han desarrollado en los ltimos aos permiten tener flexibilidad para brindar soluciones
viables a diversos problemas prcticos.

Realizando un anlisis de los flujos vehiculares que cada vez ms van en aumento en casi todas las
zonas de la ciudad de Mxico, estas han incrementado aumentando los accesos de vehculos a puntos de
cobro, como estacionamientos, centros comerciales, cobro de casetas, entre otros;

as como el robo

vehicular, el exceso de velocidad, etc. En una ciudad muy transitada es indispensable el monitoreo de
los flujos vehiculares para tener un control estadstico sobre las zonas ms transitadas. Por ello surge la
idea de implementar un sistema de reconocimiento de placas vehiculares que permita solventar las
problemticas antes mencionadas y que sirva para trabajos futuros que puedan proponer soluciones a
problemas muy especficos de algn otro estado de la republica mexicana.

Un sistema computacional para su funcionamiento debe tener disponibilidad, minimizar los tiempos de
respuesta, ser preciso, permitir fcil manejo al usuario as como el control operacional.

Los algoritmos desarrollados en el presente proyecto fueron evaluados con imgenes que se adquirieron
desde una cmara IP colocada en una pluma de estacionamiento, por lo que existe una gran posibilidad
de que este pueda aplicarse para cualquier acceso vehicular donde pueda instalarse una cmara
conectada a un equipo de computo.

Una de las grandes ventajas que presenta el sistema propuesto es que las imgenes se adquieren a
color (en formato JPG) considerndose adems la eliminacin del fondo de la placa vehicular; por lo que
el sistema puede aplicarse en todos los estados de la republica mexicana y otros diversos pases del
mundo, ya que presentan caractersticas similares. En la actualidad la mayora de las cmaras digitales
permiten la captura de imgenes en formato JPG, por lo que cada una de las imgenes de placas
vehiculares puede procesarse con los algoritmos propuestos ya que el funcionamiento parte de imgenes
en formato JPG.
Inicialmente se propone implementar el sistema para los vehculos de la ciudad de Mxico, y tambin
sirve como referencia para trabajos futuros ya que los algoritmos propuestos son flexibles de adaptar
para la nomenclatura de placas diferentes a la ciudad de Mxico. La ventaja que existe en las placas de

los vehculos de la republica mexicana es que las dimensiones de los caracteres son iguales, lo nico que
cambia es el fondo que estas puedan tener.

Las principales dificultades del reconocimiento de placas vehiculares son la variacin de condiciones de
luminancia provocadas por clima, inclinacin de la placa, variacin de posicin de placa, por el horario,
deterioro natural o suciedad de la placa entre otras. En el sistema propuesto se han considerado muchas
de estas variaciones para observarlas y obtener un mejor funcionamiento. Para la mayora de las
aplicaciones que el sistema propuesto pueda tener existe la ventaja que el vehculo estar totalmente
detenido al capturar la imagen.

CONTENIDO

CAP TULO

2.8.3.1 TIPOS DE RUIDO

26

2.8.4 METODOS DE ELIMINACION DE RUIDO 30

Estado del conocimiento

2.8.5 PROCESAMIENTO ESPACIAL


Introduccin

32

2.8.5.1 OPERACIONES ARITMTICAS, LGICAS


Y TRANSFORMACIONES GEOMTRICAS
32

1.1 FUNDAMENTOS DE PROCESAMIENTO DE


IMGENES
3

2.9 REDES NEURONALES

32

1.1.2 DEFINICIONES

2.9.1 CONCEPTO

33

1.2 VISIN POR COMPUTADORA

2.9.2 ALGORITMO RETROPROPAGACIN

34

CONCLUSIONES

35

REFERENCIAS

35

1.3 ESTADO DEL CONOCIMIENTO EN EL


RECONOCIMIENTO DE PLACAS VEHICULARES
7
1.4 TIPO DE PLACA

1.5 MTODO DE LOCALIZACIN DE LA PLACA


8
1.6 MTODO DE SEGMENTACIN DE LOS
SIMBOLOS

1.7 MTODO DE RECONOCIMIENTO

10

CONCLUSIONES

12

REFERENCIAS

12

CAP TULO

CAP TULO 3
Sistema Base

Introduccin

37

3.1 SISTEMA BASE

39

3.1.1 ADQUISICIN DE LA IMAGEN

39

3.1.2 CONVERSIN A ESCALA DE GRISES

46

3.1.3 LOCALIZACIN DE LA PLACA

48

3.1.3.1 CARACTERSTICA DE LA REGIN DE LA


PLACA
51

Marco Terico

Introduccin

16

3.1.3.2 ALGORITMO DE LOCALIZACIN DE


PLACA

52

2.1 ADQUISICIN DE LA IMAGEN

17

3.1.4 BINARIZACIN

57

2.2 REPRESENTACION DE LA IMAGEN

17

3.1.5 SEGMENTACIN DE SIMBOLOS

59

2.3 PROCESAMIENTO DE IMAGEN

18

2.4 ANLISIS Y MEJORAMIENTO DE LA


IMAGEN

3.1.5.1 ALGORITMO PARA LA SEGMENTACIN


DE SIMBOLOS
60

18

3.1.6 ELIMINACIN DE RUIDO

61

2.5 CLASIFICACIN DE LA IMAGEN

19

3.1.7 RESTAURACIN DE CARACTERES

63

2.6 ANTECEDENTES SOBRE EL


PROCESAMIENTO DE IMGENES

3.2 CODIFICACIN DE CARACTERES

65

19

3.3 ENTRENAMIENTO

69

2.7 FILTRADO DE UNA IMAGEN

21

3.4 EVALUACIN

70

2.7.1 FILTRO LINEAL

21

CONCLUSIONES

70

2.7.2 FILTRO PASA BAJAS

21

REFERENCIAS

71

2.7.3 FILTRO MEDIANO

22

2.8 TCNICAS DE PROCESAMIENTO DIGITAL


DE IMGENES
22

CAP TULO

2.8.1 BINARIZACIN DE IMGENES Y


UMBRALIZACION

22

2.8.2 ETIQUETADO

24

2.8.2.1 VECINDAD DE UN PIXEL

25

Introduccin

72

2.8.2.2 CONECTIVIDAD

25

4.1 LOCALIZACIN DE PLACA

73

2.8.3 ELIMACION DE RUIDO

26

Resultados

4.1.1 RESULTADOS DE LOCALIZACIN DE


PLACA CON IMGENES GIRADAS

74

4.1.2 RESULTADOS DE LOCALIZACIN DE


PLACA CON IMGENES DE FRENTE

77

4.1.3 RESULTADOS DE LOCALIZACIN DE


PLACA CON IMGENES CON DESGASTE
FISICO

80

4.1.4 RESULTADOS DE LOCALIZACIN DE


PLACA CON IMGENES DE DIFERENTE
RESOLUCIN

82

4.1.5 RESULTADOS DE LOCALIZACIN DE


PLACA CON IMGENES DE PLACAS ACTUALES
86
4.1.6 RESULTADOS DE LOCALIZACIN DE
PLACA CON IMGENES FUERA DE LAS
CONDICIONES ACOTADAS

90

4.1.7 RESULTADOS DE LOCALIZACIN DE


PLACA CON IMGENES EN MALAS
CONDICIONES

92

4.2 RESULTADOS DE BINARIZACIN Y


SEGMENTACIN DE CARACTERES

94

4.3 RESULTADOS DE ELIMINACIN DE RUIDO


Y RESTAURACIN DE CARACTERES
96
4.4 RESULTADOS DE CODIFICACIN Y
RECONOCIMIENTO DE CARACTERES

100

4.5 TRABAJO A FUTURO

109

CONCLUSIONES

112

REFERENCIAS

112

CAP TULO

Conclusiones generales

ANEXO

Imgenes de placas

ANEXO

114

116

Cdigo fuente

127

JUSTIFICACIN

En los ltimos aos la ciudad de Mxico ah tenido un crecimiento ampliamente en la circulacin de


vehculos, anteriormente solo eran en zonas muy marcadas como el centro de la ciudad y las grandes
avenidas, ahora es en casi todas las zonas de la ciudad, por lo que ha aumentado el robo de vehculos,
el acceso a estacionamientos, a puntos de cobro as como el aumento del descontrol vehicular. Ante un
exceso de poblacin vehicular han surgido desarrollos y mecanismos para tratar de solventar algunos
problemas como el control de velocidad de vehculos mediante la captura de la placa vehicular, as como
el desarrollo de sistemas de consulta en lnea para obtener informacin acerca de multas por no cumplir
el reglamento de trnsito vehicular. Por ello surge la necesidad de realizar un sistema de reconocimiento
de placas vehiculares, que mediante el procesamiento de imgenes permita identificar los caracteres que
conforman la placa de un vehculo y a partir de ah puedan realizarse registros de cobros, bsquedas de
informacin u obtener datos estadsticos sobre el transito en la ciudad de Mxico.

OBJETIVO

Desarrollar un algoritmo para la localizacin y reconocimiento automtico de placas vehiculares;


mediante el uso de diferentes tcnicas de procesamiento de imgenes y el uso de la red neuronal
artificial Backpropagation.

METAS

Las metas que se llevaran a cabo en esta tesis:

(1) Revisin bibliogrfica sobre los algoritmos propuestos hasta el momento en materia de
localizacin y reconocimiento de placas vehiculares.
(2) Desarrollo de un algoritmo para la localizacin de la placa vehicular
(3) Desarrollo de un algoritmo para la binzarizacin de imgenes digitales
(4) Desarrollo de un algoritmo para la eliminacin de ruido
(5) Desarrollo de un algoritmo para la restauracin de caracteres
(6) Desarrollo de un algoritmo para la segmentacin de caracteres
(7) Desarrollo de un algoritmo para la codificaciones de caracteres
(8) Desarrollo de un algoritmo para el reconocimiento de caracteres

ESTRUCTURA DE LA TESIS

A travs de los siguientes captulos se ir desarrollando la base del presente trabajo. El primer captulo
es una revisin del estado del conocimiento sobre reconocimiento automtico de placas vehiculares. En
estado del conocimiento se realiza una mencin amplia de varias investigaciones realizadas hasta las
fecha sobre reconocimiento automtico de placas.

El capitulo dos est compuesto por el marco terico, se realiza una revisin sobre los aspectos tericos
necesarios para comprender cada uno de los aspectos de la tesis. El marco terico sustenta la definicin
de las diferentes tcnicas de procesamiento digital de imgenes que se utilizaron en varias etapas de
procesos en el sistema propuesto y las redes neuronales artificiales que se utilizaron para el
reconocimiento.

El tercer captulo contiene el detalle de cada uno de los elementos que conforman el sistema propuesto.
Se definen los diferentes procesos y subprocesos de los que est conformado el sistema propuesto.
Desde la adquisicin de la imagen, la localizacin de la placa, binarizacin, segmentacin, eliminacin de
ruido, restauracin de caracteres, codificacin y el reconocimiento de caracteres. En cada proceso se
proporcionan las imgenes que se obtienen con los algoritmos empleados en cada subproceso que
conforman los procesos principales del sistema propuesto.

El capitulo cuatro contiene un anlisis de los resultados obtenidos usando el sistema propuesto,
mostrando varias imgenes resultantes de los procesos.

En el capitulo cinco se presentan las conclusiones del sistema propuesto, observaciones de resultados
obtenidos, de factores que pueden intervenir para hacer robusto el sistema como breve introduccin
para posibles trabajos futuros.

Al final se listan las referencias que fueron utilizadas como parte de la investigacin del trabajo presente.

En la seccin de anexos se incluirn las principales caractersticas de Matlab con una breve explicacin
de las funciones bsicas, cdigos fuente de los algoritmos desarrollados.

Captulo 1
Estado del conocimiento

CAPITULO 1

ESTADO DEL CONOCIMIENTO

Introduccin

Uno de los grandes eventos tecnolgicos de las ltimas dcadas fue la invasin de los medios digitales
dentro de todos los aspectos de la vida cotidiana. La computadora (tambin denominada ordenador o
computador) ha tomado una gran importancia en el procesamiento de datos, entre ellos las imgenes.
En muchos casos para los proyectos de investigacin la computadora se ha tomado como base para el
procesamiento dado que es capaz de recibir una seria de datos y convertirlos en informacin til,
adems que puede realizar procesamientos con exactitud, rapidez y de acuerdo a lo programado puede
ser manipulada por un usuario o bien puede manipularse en forma automtica por otro programa o
simplemente por una gran variedad de secuencias, rutinas de instrucciones que son: ordenadas,
organizadas, y sistematizadas en una funcin.

Los documentos digitales como audio, imgenes, y video han alcanzado una expansin muy rpidamente
dentro de los consumidores, dominado campos como el entretenimiento, las artes, la educacin, entre
otros. Los datos digitales pueden ser almacenados a muy alta calidad y manipulados fcilmente con la
ayuda de las computadoras. A dems pueden ser transmitidos a altas velocidades y bajo costo a travs
de las redes de comunicaciones.

La representacin de los grficos en una computadora estn formados por redes de clulas pequeas
rectangulares denominados pixeles. Entre ms pequeo y ms cerca se encuentren los pixeles mejor
ser la calidad de la imagen, con la salvedad de que el ms grande es el archivo necesario para
almacenar los datos. Si el nmero de pixeles se mantiene constante el tamao de cada pixel crecer y
se convierte en la imagen granulada esto cuando la imagen sufre un aumento en su tamao; ya que el
ojo permite seleccionar los pixeles individuales.

La edicin digital de imgenes se ocupa de la edicin apoyada en computadoras de imgenes digitales,


comnmente un grfico rasterizado, en la mayora de los casos fotos o documentos escaneados. Estas

Captulo 1
Estado del conocimiento

imgenes son modificadas para optimizarlas, manipularlas, retocarlas, entre otras con el fin de alcanzar
la meta deseada.

Uno de las metas puede ser eliminar las fallas que pueden haberse producido durante el escaneo o al
fotografiar, por ejemplo sobreexposicin, baja exposicin, falta de contraste, ruido en la imagen, efecto
de los ojos rojos, paradoja de las lneas paralelas en perspectiva, etc. Estas fallas se producen por
defectos tcnicos en los aparatos fotogrficos, scanner, condiciones de trabajo precarias, fallas en la
operacin u originales defectuosos.

Las diferentes tcnicas de procesamiento de imgenes han venido a contribuir a los grandes avances
tecnolgicos como la identificacin de rostros, de iris, de texturas entre otros, en esta ocasin las
tcnicas sern utilizadas para realizar el tratamiento de imgenes capturadas de vehculos con placas de
la ciudad de Mxico.

Los mtodos de reconocimiento son utilizados para ser entrenados con diferentes patrones, estos
pueden estar conformados por datos de audio, imagen o video. Las redes neuronales artificiales han
resultado un mtodo eficiente, seguro y fcil de implementar en trabajos anteriores, por ello en el
sistema propuesto se har uso de la red neuronal Backpropagation para el reconocimiento de los
caracteres que conforman a las placas vehiculares.

Durante el desarrollo del sistema propuesto se hicieron pruebas con diferentes condiciones para la
adquisicin de la imagen, como la distancia, el horario, el deterioro o la suciedad de la placa y la
inclinacin, cada una de estas variaciones se fueron acotando para su mejor funcionamiento del sistema
propuesto.

Captulo 1
Estado del conocimiento
1.1

FUNDAMENTOS DE PROCESAMIENTO DE IMGENES

En el apartado siguiente se describen los fundamentos bsicos del procesamiento de imgenes. En el


presente proyecto se utilizan distintas tcnicas de procesamiento, por ello es necesario conocer una serie
de definiciones bsicas para la comprensin de los temas posteriores.

1.1.2

DEFINICIONES

Visin por computadora. Consiste en la adquisicin, procesamiento, clasificacin y reconocimiento de


imgenes digitales.

Pixel. Elemento bsico de una imagen.

Imagen. Arreglo bidimensional de pixeles con diferente intensidad luminosa.

Matemticamente, una imagen se representa por r = f (x, y), donde r es la intensidad luminosa del pixel
cuyas coordenadas son (x, y). Matemticamente un sistema para procesar imgenes se representa como
g(x, y) = T[f (x, y)].

Color. El color se forma mediante la combinacin de los tres colores bsicos rojo, azul y verde.

Brillo. Indica si un rea est ms o menos iluminada.

Tono. Indica si un rea parece similar al rojo, amarillo, verde o azul o a una proporcin de ellos.

Luminosidad. Brillo de una zona respecto a otra zona blanca de la imagen.

Croma. Indica la coloracin de un rea respecto al brillo de un blanco de referencia.

Para obtener una imagen a color debe transformarse primero los parmetros cromticos en elctricos y
representar los colores, lo cual puede realizarse de diferentes maneras, dando lugar a diferentes
espacios de colores o mapas de color.

Espacio RGB. Se basa en la combinacin de tres seales de luminancia cromtica distinta: rojo, verde,
azul. La forma ms sencilla de obtener un color especfico es determinar la cantidad de color rojo, verde
y azul que se requiere combinar para obtener el color deseado. En la figura 1.1 se muestra la suma
aritmtica de las componentes X = R + G + B, grficamente representada por un cubo.

Captulo 1
Estado del conocimiento

Figura 1.1. Espacio de colores RGB.


En la recta que une el origen con el valor mximo se encuentran ubicados los grises (escala de grises)
debido a que sus tres componentes son iguales. Cuando una cmara adquiere una imagen a color, para
cada pixel en color de tienen en realidad 3 componentes, una para cada uno de los colores bsicos (rojo,
verde y azul); la ganancia mxima para cada componente corresponde a la longitud de onda de los tres
colores bsicos [1].

1.2

VISIN POR COMPUTADORA

El campo de visin por computadora tiene una gran gama muy amplia de aplicaciones debido a que
existe una estimacin donde el 75% de la informacin recibida por el hombre es visual. Cuando
recibimos y utilizamos dicha informacin, nos referimos al proceso como percepcin o entendimiento a
travs de imgenes que recibe el ojo. En un sistema informtico, se le llama procesamiento y
reconocimiento de imgenes por computadora [2], mismo que ha tenido su importancia en las ltimas
dcadas, en las que investigadores de renombre le han dedicado tiempo suficiente para alcanzar su
aplicacin en diferentes disciplinas, como lo es la medicina, procesos de produccin, administracin,
aeronutica, entre otros [3].

La visin por computadora es un conjunto de investigaciones cientficas, encaminadas a resolver


problemas relacionados con la visin humana como la clasificacin, el seguimiento, la identificacin y la
descripcin de objetos, conteos y pronsticos, entre otras, mltiples e ilimitadas necesidades que se
pueden presentar en el anlisis de las imgenes por computadora, tanto reales como sintticas o de
alguna otra naturaleza [4].

Captulo 1
Estado del conocimiento
Un ejemplo de este tipo de investigaciones, es el sistema desarrollado por Orbotech que utiliza
algoritmos de dos tipos: designacin de reglas y comparacin con una base de datos, para identificar los
defectos de un circuito en una imagen [5].

RADIUS (Research And Development for Image Understanding Systems Sistemas para la investigacin
y Desarrollo para el Entendimiento de Imgenes) es tambin una aplicacin usada para interpretar
fotografas areas y de satlite para crear mapas y modelos de terrenos en 3D [5].

Arcelli y Sanniti di Baja desarrollaron un sistema que hace la separacin de objetos traslapados y realiza
un conteo de ellos utilizando contracciones y expansiones uniformes de los cmulos [6].

S. H. Ong, Jayasoriah y H. H. Yeow R. Sinniah propusieron la descomposicin de una imagen binaria a


travs de una lnea de corte entre los puntos de traslape y erosionando los objetos conglomerados en
esta rea para poder contarlos. Ms tarde Jayasoriah y R. Sinniah en colaboracin con T. T. E. Yeo y X.
C. Jin mejoraron la metodologa anterior, basndose en el anlisis de concavidades, llamadas
deficiencias de concavidad de los conglomerados para determinar cundo se debe realizar dicho corte y
segmentarlos [7].

Rey-Sern Lin, Chyi-Hwa Chu y Yuang-Chen Hsueh propusieron un mtodo para detectar esquinas
localizando puntos de concavidad y convexidad significativos, para ello utilizaron extractos morfolgicos:
uno que sirve para picos y otro para valles, identificando los contornos de los objetos presentes en la
imagen [8].

Rafael Sotelo Rangel realizo una investigacin sobre el mejoramiento de las tcnicas de conteo de
objetos en una escena o imagen. Sus resultados indicaron que el conteo es ms eficiente y rpido,
considerando los siguientes factores:

Nmero de conglomerados, es el nmero de grupos de objetos no separados.

Nmero de hoyos, es el nmero de espacios que se localizan dentro del conjunto de


conglomerados.

Nmero de concavidades, es el nmero de vrtices que se forman debido a la interseccin de


objetos en un conglomerado [4].

Por tanto la visin por computadora se define como los procesos de obtencin, caracterizacin e
interpretacin de la informacin contenida en imgenes tomadas en un mundo tridimensional. Estos
procesos pueden a su vez ser subdivididos en seis subprocesos principales:

Captulo 1
Estado del conocimiento

Captacin. Es el proceso a travs del cual se obtiene una imagen visual.

Pre-procesamiento. Sirve para mejorar la imagen de tal forma que se incremente la


oportunidad de que otros procesos logren su objetivo.

Segmentacin. Divide una imagen en objetos que sean de inters para los procesos siguientes.

Descripcin. Trata con las caractersticas extradas que resultan ser informacin de inters o
caractersticas que son bsicas para diferenciar una clase de objetos de otra.

Reconocimiento. Identifica a estos objetos, asignndoles una etiqueta basada en la informacin


que proporciona su descripcin.

Interpretacin. Asocia un significado a un conjunto de objetos reconocidos.

Noem Vzquez Tecpanecatl, Mariko Nakano Miyatake, Hctor Manuel Prez Meana, propusieron un
sistema de reconocimiento de imgenes, el sistema parte de la adquisicin de una imagen en formato
JPG, usando tcnicas de procesamiento como: binarizacin, etiquetado (labeling), codificacin de
smbolos mediante cdigo de blancos y negros en caracteres, para el reconocimiento emplearon una red
neuronal artificial backpropagation [11].

B. Ron, J. Erez, desarrollaron un sistema de reconocimiento en tiempo real de placas vehiculares,


mediante el anlisis de una pelcula y la localizacin de la placa en un fotograma de video, mediante el
anlisis morfolgico de la imagen, binarizacin, la transformada de Hough y la deteccin de bordes en la
imagen [12].

Fatih Kahraman, Binnur Kurt, Muhittin Gkmen, desarrollaron un algoritmo para la deteccin de placas,
usando para la segmentacin el filtro de Gabor y la cubanizacin de vectores, uno de los primeros
algoritmos que implemento el uso de Gabor para la segmentacin de caracteres; despus de una gran
investigacin los autores concluyen los enfoques basados en la binarizacin (umbralizacin) son mas
prcticos para analizar en ciertas direcciones y escalas que utiliza el filtro de Gabor, esto en lugar de la
deteccin de bordes. El filtro de Gabor solo da una estimacin aproximada del lmite de la ubicacin de la
placa, despus la cuantizacin de vectores en conjunto con la binarizacin se extrae el limite exacto y el
segmento de la regin de la placa en caracteres separados para estos ser segmentados [13].

Vojtech Franc, Vaclav Hlavac, desarrollaron un algoritmo para la segmentacin de caracteres en placas
vehiculares mediante el uso del Modelo oculto de Markov, para ello se utilizaron tcnicas de
procesamiento de imgenes como: binarizacin, distancias entre los caracteres de la placa usando
modelos ocultos de Markov [14].

Hakan Caner, H. Selcuk Gecim, Ali Ziya Alkar, propusieron un sistema eficiente con una red neuronal
embebida para el reconocimiento de placas vehiculares, el sistema parte de una toma de video al

Captulo 1
Estado del conocimiento
vehculo, para posteriormente usar tcnicas de procesamiento como: binarizacin, filtro Gabor,
etiquetado (labeling), para el reconocimiento emplearon una red neuronal, misma que fue implementada
en un FPGA (Field-programmable gate arrays) con un consumo bajo de memoria [15].

Para obtener el reconocimiento de un objeto es necesario almacenar sus caractersticas, utilizar


diferentes tcnicas de procesamiento, reconocimiento, manipular los pixeles de la imagen, incluso se
pueden utilizar algoritmos evolutivos, como el numero de forma, esqueletos de una regin [9].

1.3

ESTADO

DEL

CONOCIMIENTO

EN

EL

RECONOCIMIENTO

DE

PLACAS VEHICULARES
En la mayora de los pases del mundo, la importancia del transporte vehicular a aumentado, y debido a
esto la necesidad de un sistema de transporte automtico y confiable ha crecido en forma considerable.
Esta necesidad ha ocasionado que la investigacin sobre el reconocimiento automtico de placas
vehiculares se est realizando mundialmente. El sistema de transporte automtico incluye control de
acceso en reas de estacionamiento o en reas restringidas, deteccin de vehculos involucrados en
algn acto ilcito, como robo, accidente, entre otros, en la medicin y control estadstico de trfico, o
bien en pagos de puntos de acceso, pago de peaje en carreteras y/o puentes. Para atender estas
necesidades se han propuesto varios sistemas de reconocimiento de placas, la mayora de los cuales se
han adaptado al tipo de placas usado en el pas o en alguna ciudad en especfico. Por lo tanto una
comparacin justa de los diversos sistemas propuestos en literatura es muy difcil. Adems dependiendo
del tipo de placas y de la aplicacin o el problema que se quiere resolver la estructura del sistema podra
cambiar totalmente. Considerando los anterior, en esta seccin se realiza una revisin detallada de
algunos sistemas ms exitosos propuestos en la literatura.

1.4

TIPO DE PLACA

La estructura de la placa vehicular vara dentro de la Republica Mexicana, as como en los diversos
pases de todo el mundo. Para el caso particular de las placas de la Ciudad de Mxico estn conformadas
por seis caracteres, tres nmeros y tres letras, la placa del estado de Mxico consiste en tres letras y
cuatro nmeros, entre otras. En la mayora de los pases occidentales se usan placas con letras y
nmeros, sin embargo en los pases de Asia como Japn, Corea, Tailandia, entre otros se usan cuatro o
cinco nmeros y una o dos letras de cada pas. La tabla 1 muestra el tipo de placa utilizado tanto en
diferentes estados de la Republica Mexicana, como del extranjero.

Captulo 1
Estado del conocimiento
PAIS

TIPO DE PLACA

frica del sur

3 letras y 5 nmeros

Alemania

3 letras y 3 nmeros

Australia

2 letras y 4 nmeros

Brasil

4 letras y 3 nmeros

Corea

1 letra coreana y 4 nmeros

Finlandia

4 letras y 3 nmeros

Grecia

3 nmeros y 4 letras

Holanda

4 letras y 2 nmeros

Italia

3 letras y 4 nmeros

Japn

1 letra japonesa y 4 nmeros

Nicaragua

2 letras y 4 nmeros

Mxico D.F.

3 letras y 3 nmeros

Singapur

2 letras y 6 nmeros

Tailandia

2 letras tailandesas y 4 nmeros

Tabla 1.1

1.5

Tipos de placas de diferentes pases.

MTODO DE LOCALIZACIN DE LA PLACA

Uno de los procesos ms importantes dentro del sistema propuesto es la localizacin de la placa, ya que
de ello depende de que exista un reconocimiento certero de la placa analizada. Para que el
reconocimiento automtico de placas vehiculares sea robusto y confiable, el sistema debe ser construido
por varias etapas.

El proceso de localizacin de la placa ocupa una parte muy importante del sistema completo. En realidad
existen varios artculos que proponen solamente el mtodo de localizacin de la placa dentro de la
imagen [10], [20].

(1) Anlisis de gradiente de la imagen capturada [17], [21].

La regin que contiene la placa tiene un valor promedio del gradiente que es relativamente alto,
debido a que la regin contiene una alta variacin de la intensidad. Usando esta caracterstica,
se localiza la placa dentro de la imagen. Normalmente es mtodo detecta varias regiones de
diferentes tamaos incluyendo la regin de la placa, por lo tanto necesita procesamiento para
elegir una regin entre varios candidatos.

Captulo 1
Estado del conocimiento
(2) Anlisis del valor de cuantizacin vectorial (VQ) [10], [20].

Como en el mtodo de anlisis de gradiente, usando la misma caracterstica de la placa que


contiene una alta variacin de intensidad, se calcula el valor de la cuantizacin vectorial (VQ).
Las regiones que tienen alto valor de VQ son candidatos a ser la regin de la placa. Como no
siempre la regin que tiene el mximo valor de VQ corresponde a la regin de la placa, hay que
realizar posprocesamiento para determinar la regin de la placa.

(3) Filtros usando redes neuronales [16], [22].


Usando dos redes neuronales de tiempo retardado (TDNN) como filtros para la imagen de color.
Aqu los valores de Hue, Saturacin e Intensidad (HSI) de las lneas horizontales y verticales
son las entradas de los TDNN. Los autores reportan un deseable funcionamiento aunque la
complejidad de los procesos es alta.
(4) Anlisis de imagen de borde [18].
Usando ciertas caractersticas peculiares de las placas, las cuales estn dentro de la regin de la
placa, existen en esta un mayor nmero de bordes que son otras regiones. Este mtodo
funciona bien cuando la imagen tiene muy poco ruido, sin embargo cuando aumenta el ruido o
el vehculo est adornado con muchas calcomanas o algn otro accesorio, este mtodo podra
no funcionar correctamente.

Existen adems otros mtodos propuestos, tales como el mtodo que usa la lgica difusa [19], el cual
genera las reglas de lgica difusa usando las caractersticas peculiares de la imagen de la placa. Sin
embargo las reglas construidas a partir las caractersticas no se adaptan a las variaciones de tamao e
inclinacin de la placa, y el funcionamiento reportado en el mismo artculo [19] no es suficiente para una
aplicacin prctica. Tambin se ha reportado un mtodo que usa la FFT unidimensional para localizar la
placa [23], sin embargo este mtodo no funcionaria cuando la placa tiene alguna inclinacin.

1.6

MTODO DE SEGMENTACIN DE LOS SIMBOLOS

Una vez localizada la posicin de la placa dentro de la imagen del vehculo capturada, se segmentan los
smbolos que constituyen esa placa. Despus de una rigurosa revisin bibliogrfica, se encontr que
todos los artculos de reconocimiento de placas realizan este proceso de segmentacin de smbolos, con
diferentes tcnicas.

Captulo 1
Estado del conocimiento

Los mtodos ms usados en la literatura son el mtodo basado en etiquetado, el mtodo basado en
caracterstica geomtrica de la placa y el mtodo basado en la proyeccin horizontal y vertical de la
placa.

(1) El mtodo basado en etiquetado [24]


La imagen de la placa localizada se binariza y se aplica una tcnica de etiquetado. En esta
tcnica, se pueden segmentar los smbolos correctamente aun que la placa esta inclinada. Sin
embargo si la imagen tiene una alta tasa de ruido aditivo, se generan gran cantidad de
etiquetas, por lo tanto antes de la aplicacin del etiquetado, hay que aplicar el proceso de
eliminacin de ruido.
(2) El mtodo basado en caracterstica geomtrica [25],[26]
Los smbolos de la placa tienen una caracterstica geomtrica determinada, tales como la
distancia entre dos smbolos y la posicin relativa de los smbolos. Usando esta caracterstica se
segmentan los smbolos. Este mtodo depende del tipo de placa y no se puede aplicar
directamente a otro tipo de placa. Para aplicarlo a otro tipo de placa se tiene que generar
nuevamente un sistema adecuado al tipo de la placa de inters.
(3) El mtodo basado en la proyeccin horizontal y vertical [23], [28]
En este mtodo se calcula la proyeccin vertical de la placa localizada, los espacios entre dos
smbolos se detectan usando el valor de la proyeccin. Una vez que se determinan los espacios
entre los smbolos, se segmentan con las lneas verticales. Este mtodo, comparando con otros,
tiene baja complejidad. Sin embargo cuando la placa esta inclinada o en el proceso de
localizacin de la regin de placa, aparece alguna otro parte del vehculo, los smbolos se
segmentaran errneamente.

1.7

MTODO DE RECONOCIMIENTO

Los smbolos segmentados se introducen al sistema de reconocimiento el cual est basado en el mtodo
de modelo acoplado, redes neuronales u otro mtodo de clasificacin tal como Support Vector
Machine, entre otros. En diversos artculos se reporta el porcentaje de reconocimiento obtenido con el
mtodo usado, sin embargo los porcentajes de acierto son muy dependientes de las condiciones del
experimento realizado, tales como el tipo de placa, el mtodo de captura de la imagen, la condicin de
captura de la imagen, entre otros. Por lo tanto es muy difcil realizar una comparacin justa entre
diversos mtodos.

10

Captulo 1
Estado del conocimiento
(1) Mtodo de modelo acoplado [21], [25]. [26]
Este mtodo primero genera los modelos de todos los smbolos posibles de las placas, y se
calcula

la

correlacin

cruzada

entre

el

smbolo

segmentado

todos

los

modelos.

Seleccionndose el smbolo con correlacin mayor. Este mtodo tiene relativamente baja
complejidad, sin embargo para usar este mtodo hay que realizar varios pre-procesamientos,
tales como la normalizacin de tamao y posicin de smbolo extrado. Adems de este preprocesamiento, cuando la placa esta inclinada, obviamente el smbolo extrado tambin est
inclinado, en esta situacin este mtodo no funcionaria correctamente. Los porcentajes de
acierto de los mtodos de modelo acoplado reportados son 92% [21], 95% [25] y 95% [26],
respectivamente, cuando opera en condiciones favorables.
(2) Redes Neuronales [23], [24], [27], [28]
Cuando se usan redes neuronales con buen funcionamiento para reconocimiento de patrones,
se aplica a estas; los smbolos de segmentados. Algunos artculos usan redes neuronales
multicapa con entrenamiento de retropropagacin [24], [28] u otro algoritmo de aprendizaje
mejorado [23].
Otro artculo propone un sistema de reconocimiento usando memoria asociativa bidimensional
(BAM) [27]. Diferente del mtodo de modelo acoplado, en el sistema de reconocimiento basado
en redes neuronales, el tamao y la inclinacin de los smbolos pueden variar dentro de cierto
rango, sin embargo generalmente el proceso de entrenamiento de las redes neuronales es un
proceso de muy alta complejidad computacional, cuando el numero de neuronas en la capa de
entrada, en la capa oculta y la de salida son considerables en nmero. Los porcentajes de
acierto reportados en los mtodos basados en redes neuronales son 90% [23], 83% [24], 90%
[27], 92% [28], respectivamente.
(3) Otros mtodos de reconocimiento [22], [29]
Se han propuesto otros mtodos para clasificacin y reconocimiento de patrones, tal como
Support Vector Machine (SVM) [30]. [31]. K Kim propuso un reconocedor de los smbolos
extrados basado en SVM. S. Abe propuso un mtodo basado en lgica difusa para aplicacin de
reconocimiento de patrones y se aplico a reconocimiento de placas vehiculares. Los porcentajes
de acierto reportado son 95% [22] y 97% [29].

Algunos esquemas para reconocimiento de placas que contemplan los procedimientos descritos
anteriormente han sido propuestos.

11

Captulo 1
Estado del conocimiento

CONCLUSIONES
En este primer captulo se reviso el contexto de las investigaciones propuestas para el procesamiento de
imgenes y reconocimiento de patrones, que propiamente es parte del objetivo general del presente
proyecto. Las tcnicas de procesamiento de imgenes han venido perfeccionndose ya que se han tenido
necesidades distintas; desde los medios de comunicacin hasta los procesos que se involucran en
nuestra vida cotidiana.

A pesar de la amplia diversidad dentro de los algoritmos propuestos para el reconocimiento de placas
vehiculares, se han realizado esfuerzos para estudiar el estado actual del conocimiento en el rea, que
han llevado al mejoramiento de las tcnicas de procesamiento de imgenes y de las de reconocimiento
de patrones, esto con el fin de revisar cuales han obtenido un mejor comportamiento e incluso poder
modificarlos y/o ajustarlos al sistema propuesto en el presente trabajo. Es an largo el camino por
recorrer dentro del campo de visin por computadora, sin embargo se continua trabajando al respecto
en investigaciones como la presentada en el trabajo presente, siempre teniendo como objetivo particular
el presentar nuevas propuestas que ayuden al desarrollo del mismo.

REFERENCIAS
[1] R. C. Gonzalez, Woods, R. E., Digital Image Processing, Addison Welsey, 1993

[2] 2.1 H Ernest, "Computer Image Processing", Academic Press, N. Y., c1979

[3] 2.2 G. Vazquez, "Realce de imgenes utilizando tcnicas de Mascaras", Capitulo 3, Tesis de Maestra,
pag. 31-36. CITEDI-IPN, 1995.

[4] 2.3 R. S. Rangel "Nueva metodologa para el conteo de objetos en imgenes", Tesis de maestra,
CIC-IPN, Mxico, junio 2000.

[5] 2.4

W. E. L. Grimson, J. L. Mundy, "Computer Vision Applications", Revista ACM, Vol. 37 No. 3,

Marzo 1994.

[6] 2.5 Arcelli, Sanniti di Baja, "Spliting a digital image binary clump consisting of touching or marginally
overlapping objects". Electrical Engineering Departament of Sidney University, 1984.

12

Captulo 1
Estado del conocimiento

[7] 2.6 S. H. Ong, Jayasoriah, "Descompition of digital clumps into convex parts by contour tracing and
labeling", Patterns Recognitions Letters, Vol. 13, pp. 789-795, 1992.

[8] 2.7 R. S. Lin, C. H. Chu y Y. C. Hsuch, "A modified morphological corner detector", Patterns
Recognition Ltters, Vol. 19, pag 279-286, 1998.

[9] 2.8 A. M. Rubio, "Sistema Evolutivo para tratamiento de Imgenes"

[10] 2.27 R. Zunio, S. Rovetta "Vector Quantization for License-Plate Location and Image Coding", IEEE
Trans. on Industrial Electronics, vol 47, no. 1, pp. 159-167, January 2000.

[11] Noem Vzquez Tecpanecatl, Mariko Nakano Miyatake, Hctor Manuel Prez Meana, Sistema
automtico de localizacin y reconocimiento de placas de automviles Mxico DF, Mayo 2002

[12] B. Ron and J. Erez, A Real-Time Vehicle License Plate Recognition (LPR) System,Vision and Image
Sciences Lab., IITWinter Project 2002. Disponible: http://visl.technion.ac.il/projects/2002w03

[13] Fatih Kahraman, Binnur Kurt, Muhittin Gkmen License Plate Character Segmentation Based on
the Gabor Transform and Vector Quantization, Istanbul Technical University Institute of Informatics
Maslak 80626

[14] Vojt ech Fran and Vaclav Hlavac License plate character segmentation using Hidden Markov
Chains,

Center

for

Machine

Perception,

Czech

Technical

University,

Prague,

Disponible:

http://cmp.felk.cvut.cz

[15] Hakan Caner, H. Selcuk Gecim, Ali Ziya Alkar Efficient Embedded Neural-Network-Based
License Plate Recognition System, Ankara Turquia, Septiembre 2008

[16] S. H. Park, K. L. Kim, K. Jung, H. J. Kim, "Locating Car License Plate using Neuronal Networks",
Electronic Letters, vol. 35, no. 17, pp. 1475-1477, August 1999.

[17] D. Gao, J. Zhou, "Car License Plates Detection from Complex Scene", Procedings of international
Conference of Signal Processing, pp. 1409-1414, 2000.

13

Captulo 1
Estado del conocimiento

[18] M. G. He, A. L. Harvey, P. Danelutti, "Car Number Plate Detection with Edge Image Improvement",
Procedings of International Symposium on Signal Processing and its Applications, pp. 597-600.

[19] N. Zimic, J. Ficzko, M. Mraz, J. Virant, "The Fuzzy Logic Approach to the Car Number Plate Locating
Problem", Proceeding of Intelligent Information systems, pp. 227-230, 1997.

[20] R. Zunino, S. Rovetta, "Visual Location of License Plate bye Vector Quantization", Proceeding of the
IEEE. International Symposium on Circuits and Systems, vol 4, pp. 135-138, 1999.

[21] P. Comelli, P. Ferragina, M. N. Graniere, F. Stabile, "Optical Recognition of Motor Vehicle License
Plates", IEEE Signal Processing Society Workshop, vol. 2, pp. 614-623, 2000.

[22] K. K.Kim, K. I. Ki,. J. B. Kim, H. J. Kim, "Learning-Based Approach for License Plate Recognotion",
Proceding of the IEEE Signal Processing Society Workshop, vol 2, pp. 614-623, 2000.

[23] R. Parisi, E. Di Claudio, G. Lucarelli, G. Orlandi, "Car Plate Recognotion by Neuronal Networks and
Image Processing", Proceeding of the IEEE, pp. 195-198.

[24] C. Coetzee, C. Botha, D. Weber, "PC Based Number Plate Recognotion System", Proceedings of
IEEE International Symposium on Industrial Electronics, vol 2, pp. 605-610, 1998.

[25] T. Natio, T. Tsukada, K. Yamada, K. Kozuka, S. Yamamoto, "Robust License-Plate Recognotion


Method for Passing Vehicles under Outside Environment", IEEE Trans. On Vehicular Technology vol. 49,
no. 6, pag. 2309-2319, November 2000.

[26] T. Natio, T. Tsukada, S. Yamamoto, "Robust Recognotion Methods for Inclined License Plates under
Various Illumination Conditions Outdoors", Proceeding of IEEE/IEEJ/JSAI International Conference on
Intellingent Transportation Systems, pp. 697-702, 1999.

[27] M. M. Fahmy, "Automatic Number-Plate Recognotion: Neural Network Approach", Proceedings of


Vehicle Navigation and Information System Conference, pp. 99-101, 1994.

14

Captulo 1
Estado del conocimiento

[28] T. Sirithinaphong,K. Chamnongthai, "The Recognotion of Car License Plate for Automatic Parking
System", Proceeding of Fifth International Symposium on Signal Processing and Its Applications, pp.
455-457, 1999.

[29] S. Abe, M. S. Lan, "A Method for Fuzzy Rules Extraction Directly from Numerical Data ands Its
Application to Pattern Classification", IEEE Trans. On Fuzzy Systems, vol 3, no 1, pp, 18-28, 1995.

[30] T. M. Mitchell, "Machine Learning", WCB McGraw-Hill, Boston, 1997.

[31] V. Cherkassky, F. Mulier, "Learning from Data", John Wiley & Sons, Inc. New York, 1998.

15

Captulo 2
Marco terico

CAPITULO 2

MARCO TERICO

Introduccin

El tema de investigacin de esta tesis podra clasificarse como una aplicacin en el campo de visin por
computadora, el cual abarca dos campos de investigacin: el procesamiento digital de imgenes y
reconocimiento de patrones. En el campo de procesamiento digital se cuenta con varias tcnicas, tales
como la conversin a escala de grises, binarizacin, eliminacin de ruido sal y pimienta, restauracin de
caracteres, segmentacin, entre otros, que se han utilizado para lograr el objetivo, y en el campo de
reconocimiento de patrones, existen varios mtodos, sin embargo en este trabajo se ha usado
bsicamente una estructura de redes neuronales artificiales.

La adquisicin de la imagen contiene un formato JPG, en el procesamiento de imgenes uno de los


objetivos que siempre est presente es minimizar los tiempos de respuesta, para ello debe realizarse un
pre-procesamiento en el formato de la imagen original, ya que el formato JPG contiene tres matrices,
cada una de ellas con los valores de los colores bsicos, el pre-procesamiento consiste en realizar una
conversin de la imagen original a escala de grises, esto con el fin de evitar un procesamiento mayor y
con el fin de disminuir tiempo en el nmero de operaciones que puedan realizarse durante los procesos.
Los algoritmos propuestos en el trabajo presente trabajan con la imagen procesada en su formato escala
de grises o bien la imagen binarizada, por lo que los tiempos de respuesta son cortos. El procesamiento
de imgenes es el conjunto de operaciones efectuadas sobre una coleccin de datos para propsitos
especficos como el mejoramiento, extraccin e interpretacin de informacin relevante sobre ella [3].
Este procesamiento se remonta hacia la segunda dcada del siglo XX cuando se trasmitan imgenes
fotografas periodistas por cable submarino entre Londres y Nueva York, reduciendo significativamente el
tiempo de emisin y recepcin de las imgenes a solo unas cuantas horas, emplendose nuevas tcnicas
de codificacin y reproduccin de las imgenes.

Utilizar tcnicas de procesamiento de imgenes permite solucionar problemas en especifico, en este caso
ser parte del presente trabajo para desarrollar e implementar un sistema de reconocimiento de placas
vehiculares de la ciudad de Mxico.

16

Captulo 2
Marco terico
En esta seccin se realizara la descripcin del marco terico sobre las tcnicas utilizadas en el trabajo de
tesis, cabe recalcar que existe una gamma mayor de tcnicas en el campo de procesamiento digital de
imgenes para diferentes objetivos.

2.1

ADQUISICION DE LA IMAGEN

Generalmente se realiza capturando una seal analgica de imagen, como una cmara fotogrfica
analgica, aun que en los ltimos aos las cmaras digitales son las que mas se utilizan. La imagen
tambin puede provenir de diferentes medios, por ejemplo fotogrficamente, o electrnicamente, por
medio de monitores de televisin. El procesamiento de las imgenes se puede en general hacer por
medio de mtodos pticos, o bien por medio de medios digitales, en una computadora. Los sistemas
adquieren los datos pixel a pixel. La imagen es guardada en una matriz de pixeles. El proceso de
digitalizacin trasforma datos anlogos continuos en datos digitales discretos, es decir, un numero de
valores enteros finito que es usado para representar todos los valores de los datos originales y continuos
[3].

2.2 REPRESENTACION DE LA IMAGEN


Tiene que ver con los medios de representar los datos de la imagen de manera que pueda ejecutarse el
procesamiento de imgenes y el proceso de anlisis para implementarlo eficientemente. Existe la escala
monocromtica, la escala de grises. Una imagen se representa como una funcin bidimensional f(x,y).
Una imagen puede ser definida como una funcin dos-dimensional f(x,y), siendo x e y coordenadas
espaciales, y f en cualquier par de coordenadas se define como la intensidad o nivel de gris de la imagen
en el punto. Si los valores x y y son finitos o cantidades discretas, se trata entonces de una imagen
digital. Cada imagen tiene un numero finito de elementos y tienen un valor y una localizacin. A estas
unidades se les llama pixeles [4] [5] [6] como se observa en la figura 2.1.

El color se adquiere combinando diferentes colores de la luz. La seal de una cmara de televisin a
color puede representarse usando tres componentes que son rojo, verde y azul: R = r(x,y); G = r(x,y);
B = r(x,y); El vector (r(x,y), g(x,y), b(x,y)) define la intensidad y el color en el punto (x,y) en la imagen
de color [4] [5] [6].

17

Captulo 2
Marco terico

Figura 2.1

Imagen de arreglo m x n pixeles. El pixel en la xn columna y la yn fila tiene una intensidad igual a f(x,y).

2.3 PROCESAMIENTO DE IMAGEN


El procesamiento digital de imgenes es el conjunto de tcnicas que se aplican a las imgenes digitales
con el objetivo de mejorar la calidad o facilitar la bsqueda de informacin. El proceso de digitalizar a los
datos permite transformarlos a un formato adecuado para que la computadora pueda manipularlos,
pudiendo ser transformado en cualquier funcin matemtica seleccionada. Los mtodos que se aplican a
una imagen pueden variar de acuerdo los resultados y metas planeadas [3]. Los dos tipos de
operaciones aplicadas en el procesamiento de imgenes son las operaciones punto a punto y
operaciones de vecindad.

El procesamiento digital se realiza al dividir la imagen en un arreglo rectangular de elementos.


Posteriormente se le asigna un valor numrico a la luminosidad de cada pixel. Entonces la imagen queda
completamente definida debido a la luminosidad de cada pixel y las coordenadas que indican su posicin.
Estos datos se almacenan en la memoria de la computadora [4] [5] [6].

2.4 ANLISIS Y MEJORAMIENTO DE LA IMAGEN


El mejoramiento de la imagen se puede lograr alterando los valores de la luminosidad de los pixeles con
las operaciones y transformaciones matemticas correspondientes con el objetivo de resaltar algunos
detalles de la imagen o poner de manifiesto algunas otras caractersticas. Una vez que tiene lo antes
mencionado, la representacin de esos pixeles va a dar hacia algn dispositivo de salida de imagen.

18

Captulo 2
Marco terico
En el anlisis de imagen se extraen de manera automtica informacin til. La informacin debe ser
tanto til como explicita para poder tomar decisiones posteriormente. Las tcnicas de anlisis ms
comunes que son utilizadas para el reconocimiento de patrones usando extraccin de caractersticas,
relacin de imgenes y procesos sintcticos descriptivos.

La relacin entre imgenes entre imgenes significa comparar una representacin ideal de un patrn o
un objeto con regiones segmentadas dentro de la imagen. Esto se puede hacer de manera global con la
imagen o localmente donde se pueden usar varias caractersticas locales como esquinas. Si se usa
extraccin de caractersticas basada en reconocimiento de patrones, las imgenes son descritas en
trminos de sus caractersticas representativas. Esta tcnica se ha empleado en los ltimos aos.
Significa segmentar la imagen en sus partes constituyentes. Una vez que eso se ha realizado, las
caractersticas claves son extradas despus clasificadas [4] [5] [6]. Procesos sintcticos descriptivos
tienen un enfoque lingstico hacia el anlisis de imgenes. Ellos modelan un objeto por medio de su
conjunto de elementos bsicos y de relaciones especiales.

2.5 CLASIFICACIN DE LA IMAGEN


Los objetos son clasificados de acuerdo a sus caractersticas extradas. El punto para la clasificacin de
las imgenes reside en la similitud entre los objetos los cuales contienen caractersticas similares y
adems que pueden formar sectores.

El procesamiento de imgenes trata temas como el reconocimiento y anlisis de imgenes en segunda y


tercera dimensin. El procesamiento digital de imgenes en trminos generales envuelve al
reconocimiento de imgenes 2D y 3D y secuencias de imgenes, anlisis y manipulacin, transmisin y
otras reas relacionadas. Partes cubiertas por esta rea son: transformaciones de intensidad y filtros
espaciales, procesamiento en el dominio de la frecuencia, restauracin de imgenes, procesamiento del
color, ondiculas, compresin de

imgenes digitales, procesamiento

morfolgico, segmentacin,

representacin y descripcin, reconocimiento de formas y objetos de interpretacin.

2.6 ANTECEDENTES SOBRE EL PROCESAMIENTO DE IMGENES


Hasta las dcadas de los 50s y 60s comenz el desarrollo de tcnicas de procesamiento de manera mas
formal debido a que fueron necesarias tcnicas para la transmisin y procesamiento de imgenes desde
satlite. El jet Propulsin Laboratory de Estados Unidos desarrollo las tcnicas de transmisin, realce y
restauracin de imgenes obtenidas por los satlites en el espacio [7].

19

Captulo 2
Marco terico
Durante la dcada de los setenta se financiaron proyectos de investigacin para el desarrollo de tcnicas
que pudieran estudiar los mecanismos de la visin y que pudieran analizar las imgenes digitales. El
Nacional Institute of Health de los Estados Unidos comenz a aplicar dichas tcnicas en la investigacin
de imgenes de rayos X, microscopia ptica y electrnica. De igual forma el MIT junto con la Universidad
de Stanford enfocaron sus trabajos en la visin aplicada a la robtica con el proyecto Hand-Eye. Otros
dos proyectos que se desarrollaron estas tcnicas fueron el proyecto japons PIPS (Patter-Information
Processing System) cuya aplicacin fue principalmente militar.

Por otro lado en esa misma dcada de realizaban investigaciones en Europa, particularmente en la cole
Nacional Supriore des Mines de Paris en Francia, los profesores G. Matheron y J. Sierra tomando como
base los resultados de la geometra integral y clculo de probabilidades para la caracterizacin y
medicin de formas. Las principales reas de aplicacin de esa metodologa llamada Morfologa
Matemtica van desde la Geologa hasta la Biologa y la Medicina.

A partir de ah, nuevos conceptos emergen conceptos como tcnicas de procesamiento de imgenes
digitales refirindose a las tcnicas asociadas con la captura, codificacin, y representacin de imgenes,
tcnicas para el anlisis de imgenes digitales y tcnicas de visin por computadora o visin mediante el
robot, teniendo como objetivo extraer informacin presente en la imagen para hacer una interpretacin
de la escena que esa imagen representa.

Pero no fue sino hasta los 80s que las tcnicas comenzaron a perfeccionarse y a emplearse en muchas
aplicaciones comerciales. Marr surgi en la lnea de marcado por el MIT, dndose las mayores
contribuciones en el desarrollo de algoritmos para la deteccin de caractersticas como bordes, lneas, y
texturas que ayudan a definir lo que le llamo el esbozo primitivo, as como el desarrollo de tcnicas
globales de segmentacin que permiten dividir una imagen en regiones [7].

Tambin las investigaciones se enfocaron en usar tcnicas de representacin del conocimiento para
resolver problemas de interpretacin de imgenes, aplicados a ambientes industriales con apoyo de la
Inteligencia Artificial para la representacin del conocimiento y la interpretacin de escenas a partir de
imgenes digitales.

En la segunda dcada de los 80 la pauta marcan las teoras y algoritmos para la interpretacin de la
imagen 2D como proyecciones de escenas 3D, concentrndose en problemas asociados a la
reconstruccin de escenas a partir de distintas proyecciones, la caracterizacin de superficies a partir del
estudio del movimiento, el estudio de las formas a partir de las sombras, tcnicas de representacin y
bsqueda de objetos, el estudio de la orientacin a partir de texturas y el estudio de flujo ptico y sus
mltiples aplicaciones a la caracterizacin de superficies 3D [7].
20

Captulo 2
Marco terico
2.7 FILTRADO DE UNA IMAGEN
El filtrado es una tcnica para modificar o mejorar a una imagen. El filtrado es una operacin de
vecindario, en la cual el valor de un pixel dado en la imagen procesada se calcula mediante algn
algoritmo que toma en cuenta los valores de los pixeles de la vecindad de la imagen original.

En el procesamiento de imgenes existen diferentes operaciones, filtros y algoritmos que nos permiten
resaltar elementos, detectar cambios y otras caractersticas, segn lo que se desee obtener. Para
detectar el humo, por ejemplo, la conversin de una imagen en color a una imagen en escala de grises
servir ampliamente para obtener un contraste entre los colores obscuros. Los tonos de grises estn
representados en la escala RGB y sus valores se encuentran en el intermedio de RGB (0,0,0) y RGB
(255,255,255), por ejemplo un gris medio lo podremos obtener con los valores RGB (150, 150, 150) [2].

2.7.1 FILTRO LINEAL


El ruido en una imagen es una caracterstica que se desea eliminar. Cuando el ruido tiene variaciones
sobre los niveles de gris corresponde a las frecuencias altas. Siguiendo en el entendido que el ruido es
una seal que se suma a la seal (imagen) original, el nivel de gris de un pixel puede definirse como la
suma del nivel de gris ideal. El ruido puede definirse como:
f(x, y) = fi(x, y) + r(x, y)

(2.1)

El ruido en una imagen siempre est presente, el que afecte a mas o menos un pixel es relativamente
aleatorio. Para el caso del que se trate de un ruido Gaussiano, este est definido por una distribucin
normal de media cero y varianza tpica de

[2].

2.7.2 FILTRO PASA BAJAS

Una forma de eliminar el ruido consiste en hacer pasar la imagen por un filtro pasa bajas que disminuya
la ganancia de los componentes de alta frecuencia. El filtro ms sencillo e intuitivo es aquel que tiene
coeficientes unitarios en todos los elementos, como se observa en la figura 2.2.

21

Captulo 2
Marco terico
Figura 2.2

Coeficientes unitarios.

2.7.3 FILTRO MEDIANO


El filtro mediano permite eliminar el ruido sal y pimienta, es decir elimina puntos blancos y negros
presentes en la imagen. En una secuencia de nmeros

x 1 , x 2 , ...x N ,

la mediana es aquel valor que

cumple que (N-1)/2 elementos tiene un valor menor o igual a ella y que (N-1)/2 tiene un valor mayor o
menor que la mediana. La mediana se obtiene ordenando las intensidades de los pixeles de menor a
mayor, y el pixel que se encuentra en (N-1)/2 es la mediana [2].

2.8

TCNICAS DE PROCESAMIENTO DIGITAL DE IMGENES

El objetivo de las tcnicas de procesamiento digital de imagen, proviene de dos reas de aplicacin
fundamentalmente: la primera es el mejoramiento de la informacin de una imagen para su
interpretacin y procesamiento; la segunda son los procesos aplicados a imgenes para su
reconocimiento por sistemas computarizados [8]. Este reconocimiento de imgenes, tambin es
conocido como visin por computadora. Actualmente el procesamiento digital de imgenes se ha
desarrollado en suficientes reas de aplicacin como: aeronutica, milicia, comunicaciones, medicina,
entre otras.

2.8.1 BINARIZACION DE IMGENES Y UMBRALIZACION


La binarizacin de imgenes consiste en convertir una imagen de nivel de gris (4 bits/pixel u 8
bits/pixel) a una imagen de blanco y negro. Tambin la binarizacin se entiende como el comparar los
niveles de grises presentes en la imagen con un valor (umbral) predeterminado. Si el nivel de gris de la
imagen es menor al umbral predeterminado, se le asigna al pixel de la imagen binarizada el valor 0
(negro) y si es mayor se le asigna un 1 (blanco).

Este proceso se realiza bsicamente para separar objetos de inters desde de fondo y simplificar
operaciones principales que siguen, tales como reconocimiento o clasificacin de objetos de inters.
Obviamente para algunas aplicaciones que requieren valores de nivel de gris, este proceso no se puede
utilizar. Para realizar la binarizacin, se necesita obtener un valor de pixel adecuado, el cual se llama
valor umbral, y la operacin de seleccin de este valor se llama umbralizacin (Tresholding) [1]. La
operacin bsica de binarizacin se puede escribir como:

22

Captulo 2
Marco terico

B(x,y) =

I(x,y) Th

I(x,y) > Th

(2.2)

Donde I(x,y) es un pixel de posicin (x,y) de la imagen de nivel de gris I, B(x,y) es la imagen binaria y Th es
el valor del umbral.

Podemos observar en la ecuacin (2.2), el valor del umbral Th juega un papel muy importante para
obtener una buena imagen binaria. Dentro de varios mtodos de umbralizacin propuestos [9], dos
mtodos de umbralizacin: umbralizacin global sencilla y umbralizacin ptima se han usado
ampliamente.

(1) Umbralizacin global sencilla


Umbralizacin global Th se obtiene usando la informacin de histograma de la imagen. Por
ejemplo con el histograma de una imagen se describen varias propiedades de la imagen, con
esto se puede decir que la imagen consiste de un fondo oscuro que corresponde a la
distribucin de valor de pixeles desde 0 hasta T y el objeto claro que corresponde a la
distribucin de valores desde T hasta 256, considerando que se tiene un rango de 0 a 255
valores. En este caso podemos usar el valor T como el valor del umbral Th y se puede obtener
una imagen binaria, donde el objeto de inters tiene solamente el valor 1.

Este mtodo es muy sencillo, sin embargo, en una aplicacin prctica, donde la iluminacin no
es constante, este mtodo no se puede aplicar.

(2) Umbralizacin optima


En este mtodo se usa una funcin de densidad de probabilidad de iluminacin p(z).
Suponiendo que la imagen a analizar consiste en dos grupos de iluminacin: la parte oscura
que corresponde al fondo y parte clara que corresponde al objeto. En este caso, p (z) se puede
escribir como:
p(z) = P1 p1(z) + P2p2(z)

(2.3)

Aun considerando p1(z) y p2(z) obedecen a la distribucin Gausiana, la operacin para obtener el valor
umbral optimo no es un proceso trivial. Por lo tanto, para obtener un valor de umbral optimo, la imagen

23

Captulo 2
Marco terico

se divide en subimagenes de tamao b x b, y en solo algunas subimagenes que tenga un histograma


bimodal, se calcula el valor umbral usando el mtodo de umbralizacin global sencilla. Finalmente el
proceso de binarizacin se realiza como:

1,
B(x,y) =

0,

Si

I(x,y) Txy
en otro caso

(2.4)

Donde I(x,y) es un pixel de posicin (x,y) de la imagen de nivel de gris I, B(x,y) es la imagen binaria y Txy es
el valor umbral de la localizacin (x,y) de la imagen [1].

2.8.2 ETIQUETADO
Etiquetado (labeling) es una tcnica para agrupar pixeles que pertenecen a un objeto dentro de una
imagen binaria. Para realizar el etiquetado, se tienen que establecer los conceptos de vecindad de un
pixel y conectividad de los pixeles [9].

La operacin de etiquetado se realiza mediante los siguientes procesos:

Proceso 1: Se asigna una etiqueta al primer pixel p 1 encontrado, examinando desde arriba-izquierdo
hacia abajo-derecha.

Proceso 2: Buscar pixeles vecinos de p 1 , V p1 usando el concepto de conectividad (4-conectivdad u 8conectividad), y asigna la misma etiqueta a ellos.

Proceso 3: Para todos los pixeles P k V p1 , se repite el proceso 2.

Aun que el mtodo de etiquetado es muy til para la segmentacin de objetos separados como
caracteres de la palca, en algunos otros casos no se puede utilizar (dependiendo de la imagen), ejemplo
en una imagen con semillas de caf es mejor emplear la segmentacin morfolgica que se refiere a la
extraccin de los componentes conectados representados en el objeto de inters, as como la separacin
de traslape de los objetos y tampoco puede aplicarse a la imagen con nivel de gris [1].

24

Captulo 2
Marco terico

2.8.2.1 VECINDAD DE UN PIXEL


Un pixel p de coordenadas (x,y) tiene cuatro vecinos horizontales y verticales cuyas coordenadas vienen
dadas por:

(x+1,y),(x-1,y),(x,y+1),(x,y-1)

(2.5)

Este conjunto de pixeles denominado los 4-vecinos de p, se representan por N 4 (p), cada pixel esta a una
unidad de distancia de (x,y), y algunos de los vecinos de p caen fuera de la imagen digital si (x,y) est en
el borde de la imagen.

(x+1,y),(x+1,y+1),(x+1,y-1),(x,y+1) (x,y-1),(x-1,y),(x-1,y+1),(x-1,y-1)

(2.6)

2.8.2.2 CONECTIVIDAD
La conectividad se emplea para establecer los lmites de los objetos y los componentes de reas en una
imagen. Para determinar si dos pixeles estn conectados, debe determinarse si son adyacentes en algn
sentido (como ser 4-vecinos o ser 8-vecinos) y sus niveles de gris cumplen un criterio especificado de
similitud (como ser iguales). Por ejemplo en una imagen binaria con valores 0 y 1, dos pixeles pueden
ser vecinos pero no estarn conectados a menos que tengan el mismo valor.

Sea V el conjunto de valores de nivel de gris empleados para definir la conectividad; por ejemplo, en
una imagen binaria, se tendr V={1} para la conectividad entre pixeles con valor 1. En una imagen con
escala de grises, para la conectividad entre pixeles con un rango de valores de intensidad de, por
ejemplo, 32 a 64, se tiene V={32, 33, ,63, 64}. Se consideran tres tipos de conectividad:

a)

4-conectividad. Dos pixeles p y q con valores dentro de V estn 4-conectados si q pertenece a


N4(p).

b)

8-conectividad. Dos pixeles p y q con valores dentro de V estn 8-conectados si q pertenecen a


N8(p).

c)

M-conectividad (conectividad mixta). Dos pixeles p y q con valores dentro de V estn Mconectados si

q pertenece a N4(p), o bien

q pertenece a ND(p) y adems el conjunto N4(p)nN4(q) es vacio (este es el conjunto de


pixeles que son 4-adyacentes de p y de q cuyos valores estn en V).

25

Captulo 2
Marco terico
La conectividad mixta es una modificacin de la 8-conectividad que se introdujo para eliminar los
mltiples caminos de conexin que aparecen a menudo cuando se emplea la 8-conectividad.

Un pixel p es adyacente de un pixel q si estn conectados. Se puede definir 4-adyacentes, 8-adyacencia


o m-adyacencia, dependiendo del tipo de conectividad especifica.

2.8.3 ELIMACION DE RUIDO


Casi todas las imgenes tienen cierta cantidad de ruido, la cual se puede deber a la cmara o al medio
de transmisin de la seal. Generalmente el ruido se manifiesta como pixeles aislados que toman un
nivel de gris diferente al de sus vecinos. Los algoritmos de filtrado permiten eliminar o disminuir este
ruido.

La mayora de las tcnicas de eliminacin de ruido estn enfocadas a la eliminacin de ruido introducido
durante la transmisin de seal o imagen. Sin embargo en este trabajo de tesis, la degradacin de la
imagen ocurre al momento de capturar la imagen con la cmara IP, el proceso de binarizacin y el
proceso de segmentacin, entre otros, y la degradacin de la imagen por diferentes causas (placa
deteriorada, o placa golpeada) se considera como ruido. En esta seccin, se enfoca la eliminacin de
ruido introducido al momento de la captura de la imagen.

2.8.3.1 TIPOS DE RUIDO


El ruido puede clasificarse en los siguientes tipos:

Gaussiano. Produce pequeas variaciones en la imagen; generalmente se debe a ganancias en la


cmara IP, ruido en los digitalizadores, perturbaciones en la transmisin, entre otros. Se considera que
el valor final del pixel seria el ideal mas una cantidad correspondiente al error puede describirse como
una variable aleatoria gaussiana.

Sal y pimienta. El valor que toma el pixel no tiene relacin con el valor ideal, sino con el valor del ruido
que toma valores muy altos y bajos (puntos blancos y/o negros) causados por una saturacin del sensor
o por un valor minimo captado, si se ha perdido la senal en ese punto. Se encuentra tambin al trabajar
con objetos a altas temperaturas, ya que las cmaras tienen una ganancia en el infrarrojo que no es
detectable por el ojo humano; por ello las partes mas calientes de un objeto pueden llegar a saturar un
pixel.

Multiplicativo. La imagen obtenida es el resultado de la multiplicacin de las seales.

26

Captulo 2
Marco terico

(a)

(c)

Figura 2.3

(b)

(d)

(a) Imagen original, (b) Ruido gaussiano, (c) Ruido sal y pimienta, (d) Ruido multiplicativo.

En la figura 2.3 las imgenes estn sujetas a diferentes tipos de ruido. Algunos son independientes de la
imagen, pero otros no, algunos estn sin correlacin punto a punto, mientras otros son coherentes. En
los siguientes prrafos se mencionan algunos ejemplos de tipos usualmente encontrados de ruido [10].

Cuando una imagen es transmitida, el ruido del canal de introduce su valor es generalmente
independiente de la potencia de la seal de la imagen. Esta situacin es similar cuando una imagen es
escaneada. En este caso, podemos escribir g = f + v, donde la imagen obtenida con ruido se construye
con el ruido v y la imagen de entrada f, los cuales no estn correlacionados.

Una ilustracin de los efectos independientes del ruido en la imagen se muestra en la figura 2.4. Aqu las
barras tienen niveles de gris contantes llamados s y el espacio tiene niveles de gris r. En la figura 2.4
cada punto tiene un nivel de gris incrementando o decrementando por un valor z elegido aleatoriamente

27

Captulo 2
Marco terico
para quedar en el rango |z|(s-r), para varios valores de . Note incluso cuando el rango de niveles de
ruido excede la diferencia entre las barras y el fondo, las barras todava son visibles.

Tales estimaciones requieren algunos grados de conocimiento sobre la estadstica de la imagen y el


ruido, sabemos que el ruido de la imagen contiene una gran regin de niveles contrastes de gris,
podemos obtener alguna idea en la estadstica del ruido por el anlisis de las variaciones de nivel de gris
en la regin correspondiente del ruido de la imagen. Por ejemplo si asumimos que el ruido tiene una
distribucin Gaussiana con una media cero, la desviacin estndar es solo la desviacin estndar de esas
variaciones. Tambin es posible estimar la correlacin del ruido y el espectro de potencia, midiendo la
autocorrelacin y la potencia del espectro del ruido de la imagen sobre la regin dada.

En muchos casos los niveles de ruido no dependen de la seal de la imagen; si el ruido es proporcional a
la seal, g = f + v1f, tenemos g = f (1+ v1) = fv podemos considerar esta situacin como ruido sin correlacin
que es multiplicativo en lugar de aditivo. Un ejemplo sencillo es el ruido coherente en una imagen de
televisin debido al rastro de las lneas; aqu v es un patrn de barras que tiene el mximo en el rastro
de las lneas y ceros entre ellas.

a)

c)

b)

d)

e)

28

Captulo 2
Marco terico

f)

i)

g)

h)

j)

Figura 2.4 Ruido independiente a)

k)

Patrn de barras espacio entre niveles de gris r, niveles de gris de barras s, b) k)

Resultados de incremento o decremento de los niveles de gris para cada punto de a) por un incremento z
aleatoriamente elegido de un intervalo |z|(s-r), para = 1,2, 10.

A menudo se quiere convertir una imagen con nivel de gris en una imagen binaria, la imagen resultante
puede ser considerara como compuesta de objetos negros y el fondo en blanco o viceversa. Si la imagen
original fuera muy ruidosa, la regin negra puede incluir puntos blancos dispersos, y la regin blanca
contiene puntos negros, este fenmeno es conocido como ruido sal y pimienta. Un ejemplo de este tipo
de ruido se muestra en la figura 2.5. En la figura 2.5 muestra un patrn con barras negras y blancas en
las cuales una fraccin p que indica porcentajes de puntos blancos dentro de una regin negra

viceversa. La figura 2.6 (a)-(f) muestra imagen con ruido de diferentes valores de p(p=0, 0.1, 0.2, 0.3,
0.4, 0.5) [1].

29

Captulo 2
Marco terico

a)

b)

d)

Figura 2.5

e)

c)

f)

Ruido impulsivo. a) Patrn de barras blancas y negras, b)-f) Resultado del cambio de la fraccin p de
puntos negros de a) a blancos, y viceversa para p = 0, 0.1, 0.2, 0.3, 0.4, 0.5.

2.8.4 METODOS DE ELIMINACIN DE RUIDO


Existen varios mtodos para la eliminacin de ruido, la mayora de estos mtodos consiste de filtrado de
imgenes, usando filtros lineales o filtros no lineales. Los filtros lineales como el filtro promedio son
menos complejos comparados con filtros no-lineales, sin embargo cuando se aplica un filtro lineal a la
eliminacin de ruido, el detalle de la imagen no se conserva la suficiente, o sea que la imagen filtrada se
hace borrosa. En cambio el filtro no lineal, tales como el filtro mediano, el filtro Stack, entre otros
pueden eliminar ruido del tipo impulsivo, como sal y pimienta preservando el detalle de la imagen como
se muestra en la figura 2.6. Sin embargo normalmente tienen mayor complejidad que los filtros lineales
[11], [12]. Para disear un filtro lineal optimo para eliminacin de algn tipo de ruido, se requieren
algunos grados de conocimiento sobre las estadsticas de la imagen y el ruido, en la mayora de los
casos prcticos esta informacin no est disponible [1].

30

Captulo 2
Marco terico

a)

c)

b)

d)

e)

f)

31

Captulo 2
Marco terico

g)

Figura 2.6

h)

Comparacin de los mtodos de eliminacin de ruido.

2.8.5 PROCESAMIENTO ESPACIAL


El procesamiento espacial est formado por aquellas tcnicas que operan directamente sobre los valores
de los pixeles de la imagen. Las transformaciones son de la siguiente forma:
S(x, y)= F(I (x, y))

(2.7)

Donde I(x,y) es la imagen original, S(x,y) la imagen resultante y F la transformacin.

2.8.5.1 OPERACIONES ARITMTICAS, LGICAS Y TRANSFORMACIONES


GEOMTRICAS
Las operaciones aritmticas ms usadas en el procesamiento de imgenes son: suma, resta,
multiplicacin y divisin. Para que se pueda llevar a cabo una operacin aritmtica, ambas imgenes
deben ser del mismo tamao.

2.9 REDES NEURONALES


Existen diferentes mtodos para el reconocimiento de patrones, cada uno con sus propias ventajas y
limitaciones. En el trabajo presente, para el reconocimiento de placas vehiculares se ha utilizado una red
neuronal multicapa con el algoritmo de retropropagacin. Para tener una visin ms amplia sobre la red
neuronal artificial en esta seccin se revisaran sus principales caractersticas, elementos y sus
aplicaciones.

32

Captulo 2
Marco terico
2.9.1 CONCEPTO
Con las diferentes lneas de investigacin sobre el desarrollo de maquinas que lleven a cabo ciertas
funciones que realiza el ser humano, no se trata de que estos mtodos compitan con los seres humanos
sino de que desarrollen ciertas tareas que les d cierto rango de intelectual para ayudarle a este ultimo.

La red neuronal artificial, clula o autmata, es un elemento que posee un estado interno, llamado nivel
de activacin y recibe seales que permiten, en su caso, cambiar de estado.

Si se denomina S al conjunto de estados posibles de la neurona, S podra ser por ejemplo S = {0,1}
siendo 0 el estado inactivo y 1 el activo. S tambin puede tomar un mayor nmero de valores S = {0, 1,
2, 3,., n} para representar, por ejemplo, una imagen con n+1 nivel de gris, o incluso un intervalo
continuo de valores, por ejemplo S = [0, 1].

Las redes neuronales artificiales son esencialmente redes simples, como un arreglo de de procesadores
neurales e interconectados en paralelo. Las redes neuronales se basan en el nivel actual del
conocimiento del cerebro humano. Las redes neuronales han causado inters en las lneas de
investigacin para resolver una amplia gama de problemas, as como para ayudar a mejorar nuestra
comprensin del cerebro humano.

Desde las primeras etapas de desarrollo en la dcada de 1970, el inters en las redes neuronales se ha
extendido a travs de muchos campos, debido a la velocidad de procesamiento y capacidad de resolver
problemas complejos. El xito de los resultados que esta pueda tener es demasiado dependiente del
proceso de entrenamiento utilizado. Estos efectos pueden ser minimizados a travs de un diseo
cuidadoso.

Las redes neuronales pueden utilizarse para construir sistemas que sean capaces de clasificar los datos
en un determinado conjunto o en una clase, en el caso de la deteccin de placas vehiculares, se tiene
que identificar una serie de caracteres pertenecientes a una determinada clase.

Las redes neuronales poseen una funcin que les permite cambiar de nivel de activacin a partir de las
seales que reciben; a dicha funcin se le denomina funcin de transicin de estado o funcin de
activacin. Las seales que reciben cada neurona puede prevenir del exterior o de las neuronas a las
cuales esta conectada. El nivel de activacin de una neurona depende de las entradas recibidas y de los
valores sinpticos, pero no de anteriores valores de estado de activacin.

33

Captulo 2
Marco terico

Las redes neuronales consisten en interconexiones en paralelo de procesadores neurales simples. Las
neuronas tienen muchas entradas ponderadas, es decir cada entrada (p1, p2, p3, , pn) tienen una
ponderacin relacionada (w1, w2, w3, ., wn). Cada una de las entradas es un escalar, en representacin de
los datos. En el caso de la deteccin de placas vehiculares, cada entrada representa el vector
caracterstico de un carcter.

2.9.2 ALGORITMO RETROPROPAGACIN


El mtodo retropropagacin (entrenamiento hacia atrs) es un sistema automtico de entrenamiento de
redes neuronales con capas ocultas, mismo que fue perfeccionado en la poca de los 80.

Una red neuronal de tipo retropropagacin permite aprender mediante un conjunto de ejemplo (entradasalida) comnmente conocido como training set. Al haber aprendido mediante este conjunto, se puede
obtener una salida coherente para una entrada dada.

El algoritmo de retropropagacin consiste en:

Iniciar con pesos sinpticos cualquiera (generalmente elegidos al azar)

Introducir datos de entrada que se utilizaran para la fase de entrenamiento

Permitir que la red genere un vector de datos de salida (propagacin hacia adelante)

Comparar la salida de la red con la salida deseada

La diferencia entre la salida generada y la deseada (denominada error) se usa para ajustar los
pesos sinpticos de las neuronas de la capa de salida

El error se propaga hacia atrs (retropropagacin) hacia la capa de neuronas anterior y se usa
para ajustar los pesos sinpticos en esta capa

Se continua propagando el error hacia atrs y ajustando los pesos hasta que se alcance la capa
de entrada

La informacin que almacena el aprendizaje de una red se encuentra en los pesos Wi,j. El objetivo del
proceso de entrenamiento es minimizar el error de la prediccin y para ello se modifican los pesos de la
red. El proceso de entrenamiento es iterativo.

34

Captulo 2
Marco terico
CONCLUSIONES
En el capitulo anterior se revisaron los conceptos bsicos de procesamiento de imgenes, las diferentes
tcnicas que existen, as como los mtodos de reconocimiento de caracteres; ya que estos tienen
presencia fundamental en el trabajo presente.

Es importante analizar las formulas matemticas de los algoritmos propuestos, ya que una parte
fundamental de un sistema propuesto es el tiempo de respuesta que va directamente relacionado con el
procesamiento que puedan implicar cada uno sus procesos. De las tcnicas de procesamiento de
imgenes mencionadas en el capitulo anterior se estn utilizando las que mejor tuvieron resultados en
las evaluaciones experimentales que se fueron realizando, de igual forma se fue ideando algoritmos
propuestos que resuelven problemas especficos que se presentaron en el trabajo presente, esto
partiendo de los conceptos bsicos y las operaciones bsicas que pueden realizarse en el procesamiento
de imgenes, para el mtodo de reconocimiento se utilizar una red neuronal que ha presentado altos
porcentajes de reconocimiento en los trabajos revisados.

REFERENCIAS
[1] Noem Vzquez Tecpanecatl, Mariko Nakano Miyatake, Hctor Manuel Prez Meana, Sistema
automtico de localizacin y reconocimiento de placas de automviles Mxico DF, Mayo 2002

[2] Juan Garca Lpez, Procesamiento digital de seales

[3] Yuras, G., Introduccin a la percepcin remota del ocano, Principios de procesamiento digital de
imgenes, Universidad de Chile 2002

[4] Anil K., Fundamentals of Digital Image Processing Prentice Hall, United States of America, 1989

[5] Lindley C. A. Practical Image Processing in C Jhon Wiley & Sons, Inc., United States of America

[6] Schalkoff R. Digital Image Processing and computer vision Wiley United States of America, 1989

[7] Crdoba C. Gnesis y desarrollo del procesamiento y Anlisis de Imgenes Digitales, 1995

[8] G. Vzquez, "Realce de imgenes utilizando tcnicas de Mascaras", Capitulo 3, Tesis de Maestra,
pg. 31-36. CITEDI-IPN, 1995.

35

Captulo 2
Marco terico
[9] R. C. Gonzlez, R. E. Woods, Digital Image Processing, Addison Wesley, pp. 40, 41, 444, 455,
1992.

[10] A. Rosenfel, A. C. Kak, Digital Picture Processing, Academic Press, 2 Edicin Vol. 1, pp 218, 219,
221.

[11] M. G. Lee, Mtodo para la aceleracin de la convergencia de los filtros stack, Capitulo 3, Tesis de
Maestra, pg. 64-65, ESIME Culhuacan, Agosto 2001.

[12] M. G. Lee Mtodo para la aceleracin de la convergencia de los filtros stack, Capitulo 3, Tesis de
Maestra, pg. 66-68, ESIME Culhuacan, Agosto 2001.

36

Captulo 4
Resultados

CAPITULO 4

RESULTADOS

Introduccin
El ultimo capitulo del trabajo presente se refiere a la presentacin de los resultados obtenidos.
Inicialmente se muestran los algoritmos propuestos para el procesamiento y mejoramiento de imgenes,
junto con su evaluacin y la descripcin de las pruebas a las que fueron sometidos, en diferentes
circunstancias.

Para el procesamiento de imgenes se considera la obtencin de la imagen, la binarizacin, la


segmentacin, filtro de eliminacin de ruido, la restauracin y codificacin de los caracteres.

Para el proceso de entrenamiento y evaluacin se muestran los vectores caractersticos obtenidos y la


similitud que estos presentan, a pesar de tener tamaos diferentes. Se muestran los resultados
obtenidos con la tcnica de codificacin propuesta, las condiciones de entrenamiento de la Red Neuronal
Artificial, as como el numero de patrones con las que se realizo el proceso de entrenamiento y
evaluacin de la Red Neuronal, neuronas de entrada, las capas ocultas, las capas de salida y los valores
que se utilizaron para el umbral (error cuadrtico medio) de oscilacin de entrenamiento.

La mayora de las evaluaciones aplicadas, resultan exitosas considerando los acotamientos que fueron
definidos al inicio de este trabajo; la mayora de los algoritmos fueron desarrollados y propuestos como
una forma de solucin al trabajo presente.

Por ltimo, se presentan las conclusiones generales respecto a todo el trabajo realizado as como las
pautas y sugerencias para trabajos futuros en cuanto a mejoras posibles.

72

Captulo 4
Resultados
4.1 LOCALIZACIN DE PLACA

El algoritmo de localizacin de la placa, representa una parte fundamental para el xito de


reconocimiento de los caracteres [1].

Como se menciono en captulos anteriores, el presente trabajo esta acotado a ciertas condiciones para la
adquisicin de las imgenes capturadas, que se usaron para la evaluacin del algoritmo de localizacin
de placa. En la tabla 4.1 se describen las condiciones de captura.

Mnimo
Mximo

Altura
0.7 m.
0.9 m.

Distancia
0.3 m.
0.96 m.

Angulo
0
35

Tabla 4.1. Condiciones de adquisicin de imagen.

La Base de Datos de las imgenes capturadas consta de 520 placas vehiculares, siendo estas expuestas
a los rengos de acotamiento en lo que corresponde a la altura, distancia y ngulo que existe entre la
cmara IP y el vehculo. Del total de las imgenes de la Base de Datos se obtuvo un xito de localizacin
de placa en 479 imgenes, es decir que del 100% de las placas un 92.1% fueron localizadas. En la
figura 4.1 se muestran los porcentajes de acierto correspondiente a la localizacin de placa.

Imgenes de vehculos
600
500
400
300
200
100
0

520

479

Capturadas
Localizadas
Imgenes

Capturadas

520

Localizadas

479

Figura 4.1. Resultados de localizacin de la placa vehicular.


73

Captulo 4
Resultados

En el siguiente apartado se muestran los resultados obtenidos del algoritmo de localizacin de la placa.
En algunos casos se muestra las condiciones de luminancia, distancia, ngulo, estado fsico de la placa,
entre otras.

4.1.1 RESULTADOS DE LOCALIZACIN DE PLACA CON IMGENES


GIRADAS

a)

b)

Figura 4.1.1.1. Imagen capturada con la luz del da, placa girada del lado derecho. a) Imagen Original b) Imagen de placa
localizada.

a)

74

Captulo 4
Resultados

b)

Figura 4.1.1.2. Imagen capturada con la luz del da, placa girada del lado izquierdo. a) Imagen Original b) Imagen de placa
localizada.

a)

b)

Figura 4.1.1.3. Imagen capturada con la luz del da, placa girada del lado derecho. a) Imagen Original b) Imagen de placa
localizada.

75

Captulo 4
Resultados

a)

b)

Figura 4.1.1.4. Imagen capturada con la luz del da, placa girada del lado derecho. a) Imagen Original b) Imagen de placa
localizada.

a)

76

Captulo 4
Resultados

b)

Figura 4.1.1.5. Imagen capturada tarde-noche, con faros encendidos, placa girada del lado derecho. a) Imagen Original b) Imagen
de placa localizada.

a)

b)

Figura 4.1.1.6. Imagen capturada tarde-noche, con faros encendidos, placa girada del lado derecho. a) Imagen Original b) Imagen
de placa localizada.

4.1.2 RESULTADOS DE LOCALIZACIN DE PLACA CON IMGENES DE


FRENTE

77

Captulo 4
Resultados

a)

b)

Figura 4.1.2.1. Imagen capturada luz de da. a) Imagen Original b) Imagen de placa localizada.

a)

78

Captulo 4
Resultados

b)

Figura 4.1.2.2. Imagen capturada luz de da. a) Imagen Original b) Imagen de placa localizada.

a)

b)

Figura 4.1.2.3. Imagen capturada luz de da. a) Imagen Original b) Imagen de placa localizada.

79

Captulo 4
Resultados
4.1.3 RESULTADOS DE LOCALIZACIN DE PLACA CON IMGENES CON
DESGASTE FISICO

a)

b)

Figura 4.1.3.1. Imagen con desgaste fsico. a) Imagen Original b) Imagen de placa localizada.

a)

80

Captulo 4
Resultados

b)

Figura 4.1.3.2. Imagen girada con desgaste fisico. a) Imagen Original b) Imagen de placa localizada.

a)

b)

Figura 4.1.3.3. Imagen faros encendidos, placa con desgaste fisico. a) Imagen Original b) Imagen de placa localizada.

81

Captulo 4
Resultados

a)

b)

Figura 4.1.3.4. Imagen con desgaste fisico. a) Imagen Original b) Imagen de placa localizada.
4.1.4 RESULTADOS DE LOCALIZACIN DE PLACA CON IMGENES DE
DIFERENTE RESOLUCIN

a)

82

Captulo 4
Resultados

b)

Figura 4.1.4.1. Imagen capturada con celular de 2 Mp. a) Imagen Original b) Imagen de placa localizada.

a)

b)

Figura 4.1.4.2. Imagen capturada con cmara digital de 3 Mp. a) Imagen Original b) Imagen de placa localizada.

83

Captulo 4
Resultados

a)

b)

Figura 4.1.4.3. Imagen capturada de noche con flash de cmara digital de 5 Mp. a) Imagen Original b) Imagen de placa
localizada.

84

Captulo 4
Resultados

a)

b)

Figura 4.1.4.4. Imagen capturada con cmara digital de 7 Mp. a) Imagen Original b) Imagen de placa localizada.
En la tabla siguiente se listan una serie de sistemas propuestos para localizacin de la placa, tambin se
menciona el porcentaje de acierto y se compara con el sistema propuesto.

85

Captulo 4
Resultados
Algoritmo
Sistema Basado TDNNs [3]
Algoritmo Basado en reglas [4]
Sistema basado SLGST [5]
Sistema Basado en Histogramas [6]
Sistema Basado en Variaciones de
intensidad [1]
Sistema de Reconocimiento de placas
basado en NN [7]
Sistema propuesto

Porcentaje
90.1%
84.2%
90.7%
84.6%
91.3%
91.7%
92.1%

4.1.5 RESULTADOS DE LOCALIZACIN DE PLACA CON IMGENES DE


PLACAS ACTUALES.
En esta seccin se muestran las fortalezas del algoritmo de localizacin de placa y el umbral
determinado para realizar la binarizacin no se afectan ya que en este ejercicio se usan placas actuales
de vehculos de la ciudad de Mxico.

a)

86

Captulo 4
Resultados

b)

c)

Figura 4.1.5.1. a) Imagen Original b) Imagen de placa localizada c) binarizacin de imagen.

87

Captulo 4
Resultados

a)

b)

88

Captulo 4
Resultados

c)

Figura 4.1.5.2. a) Imagen Original b) Imagen de placa localizada c) binarizacin de imagen.

a)

89

Captulo 4
Resultados

b)

c)

Figura 4.1.5.3. a) Imagen Original b) Imagen de placa localizada c) binarizacin de imagen.

4.1.6 RESULTADOS DE LOCALIZACIN DE PLACA CON IMGENES


FUERA DE LAS CONDICIONES ACOTADAS
A pesar de que al inicio del presente trabajo se acotaron las condiciones en las que el algoritmo de
localizacin de placa es funcional, en este apartado se mostraran un par de imgenes que rebasan la
distancia limite a la que reconoce el algoritmo.

90

Captulo 4
Resultados
a)

b)

Figura 4.1.6.1. Imagen capturada a una distancia de 1 m. a) Imagen Original b) Imagen de placa localizada.

a)

b)

Figura 4.1.6.2. Imagen capturada a una distancia de 1.38m. a) Imagen Original b) Imagen de placa localizada.

91

Captulo 4
Resultados

a)

b)

Figura 4.1.6.3. Imagen capturada a una distancia de 1.25m. a) Imagen Original b) Imagen de placa localizada.
4.1.7 RESULTADOS DE LOCALIZACIN DE PLACA CON IMGENES EN
MALAS CONDICIONES
En este apartado se muestran imgenes de placas con desgaste fsico en mayor condiciones el algoritmo
es incapaz de ubicar la localizacin de la placa.

92

Captulo 4
Resultados

a)

b)

Figura 4.1.7.1. Imagen con desgaste fsico. a) Imagen Original b) Resultado de placa localizada.

a)
93

Captulo 4
Resultados

b)

Figura 4.1.7.2. Imagen capturada de noche con desgaste fsico. a) Imagen Original b) Resultado de placa localizada.

a)

b)

Figura 4.1.7.3. Imagen capturada a una distancia de 1.42m. a) Imagen Original b) Resultado de placa localizada.

4.2 RESULTADOS DE BINARIZACIN Y SEGMENTACIN DE


CARACTERES

94

Captulo 4
Resultados

a)

b)

Figura 4.2.1. a) Imagen Binarizada b) Segmentacin de caracteres.

a)

b)

Figura 4.2.2. a) Imagen Binarizada b) Segmentacin de caracteres.

95

Captulo 4
Resultados
a)

b)

Figura 4.2.3. a) Imagen Binarizada b) Segmentacin de caracteres.

4.3 RESULTADOS DE ELIMINACIN DE RUIDO Y RESTAURACIN DE


CARACTERES

En esta seccin primeramente se muestran los caracteres de una placa vehicular, capturada de noche,
donde los caracteres tienen bastante ruido sal y pimienta.

a)

b)

Figura 4.3.1. a) Caracteres con ruido sal y pimienta b) Eliminacin de ruido y restauracin de caracteres.

96

Captulo 4
Resultados
A continuacin se muestra una tabla donde se muestran los caracteres con ruido sal y pimienta, y
posteriormente se muestra el resultado de la evaluacin del algoritmo que elimina el ruido y realiza la
restauracin de los caracteres.

Original

Reconstruido

Tamao
63 x 25

42 x 17

30 x 12

41 x 18

33 x 14

31 x 12

58 x 24

97

Captulo 4
Resultados
118 x 55

41 x 18

41 x 17

382 x 165

125 x 52

382 x 163

40 x 11

57 x 17

98

Captulo 4
Resultados
42 x 18

41 x 18

42 x 17

37 x 14

402 x 167

58 x 25

121 x 54

31 x 12

99

Captulo 4
Resultados
409 x 194

Tabla 4.3.1. Muestra de resultados de eliminacin de ruido y restauracin en los caracteres.

4.4 RESULTADOS DE CODIFICACIN Y RECONOCIMIENTO DE


CARACTERES

En esta seccin se muestran los resultados de la codificacin de caracteres; inicialmente el carcter se


divide en 4 ventanas, y posteriormente cada ventana se divide en 4 subventanas, teniendo un total de
16 ventanas, para despus obtener el promedio de pixeles negros y a su vez formar los vectores
caractersticos.

Figura 4.4.1. Numero 2 dividido en 4 ventanas.

100

Captulo 4
Resultados

Figura 4.4.2. Numero 2 dividido en 16 ventanas.

101

Captulo 4
Resultados

Figura 4.4.3. Grafica de vector caracterstico del numero 2.


A continuacin se muestra los resultados con la letra J.

Figura 4.4.4. Letra J dividida en 4 ventanas.

102

Captulo 4
Resultados

Figura 4.4.5. Letra J dividida en 16 ventanas.

103

Captulo 4
Resultados

Figura 4.4.6. Grafica de vector caracterstico de la Letra J.


A continuacin se muestran las graficas de 20 repeticiones del carcter con resoluciones diferentes.

Figura 4.4.7. Grafica de vector caracterstico de Nmero 5.

104

Captulo 4
Resultados

Figura 4.4.7. Grafica de vector caracterstico de Numero 1.

105

Captulo 4
Resultados
Figura 4.4.6. Grafica de vector caracterstico de la letra E.

Figura 4.4.6. Grafica de vector caracterstico de la letra X.


Despus de realizar la codificacin de los caracteres segmentados, los vectores caractersticos obtenidos
se utilizan para el entrenamiento de la Red Neuronal Artificial Backpropagation.

Para la etapa de entrenamiento se consideran 20 patrones por cada uno de los 33 caracteres, teniendo
un total de 660 patrones de entrada.

Para el proceso de entrenamiento se generaron varios escenarios en los que se tuvieron parmetros
distintos para la RNA, esto debido a los tiempos de ejecucin y el porcentaje de reconocimiento que se
fueron obteniendo. Se construyo una matriz de pesos constituida por letras y nmeros, para lo que se
considero en la capa de entrada 17 neuronas incluyendo el bias, 14 neuronas en la capa oculta y 33
neuronas en la capa de salida, as como un =0.005, el proceso de entrenamiento se detiene cuando el
error cuadrtico medio menor es menor a 0.1277, los parmetros antes mencionados fueron con los que
presento un menor tiempo de ejecucin y un mayor porcentaje de reconocimiento.

106

Captulo 4
Resultados
Para la etapa de evaluacin se consideran 10 patrones por cada uno de los caracteres, dichos patrones
no fueron utilizados en el proceso de entrenamiento de la RNA. En la tabla 4.3.2 se muestran las
condiciones con las que se realizo el proceso de entrenamiento y los resultados en el proceso de
evaluacin.

Neuronas
Descripcin

Entrada

Reconocimiento

Capa Oculta

Salida

Miu

Umbral

Entrenados

Desconocidos

Letras

16

10

23

0.005

0.2

100%

95.21%

Nmeros
Letras y
Nmeros

16

10

0.005

0.1

100%

100%

16

14

33

0.005

0.5

99.69%

97.27%

Letras

16

14

23

0.005

0.1

100%

99.13%

Nmeros
Letras y
Nmeros

16

14

10

0.005

0.1

100%

100%

16

14

33

0.005

0.1277

99.84%

98.78%

Tabla 4.3.2. Resultados de reconocimiento con la RNA Backpropagation.


En la fila ltima de la tabla anterior se muestran las condiciones con las que se obtuvo un mayor
porcentaje de reconocimiento. El carcter no reconocido fue la letra B teniendo falsos negativos.

ENTRENADOS
Patrn

10

11

12

13

14

15

16

17

18

19

20

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[fail]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

107

Captulo 4
Resultados
J

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

a)
DESCONOCIDOS
Patrn

21

22

23

24

25

26

27

28

29

30

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[fail]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

108

Captulo 4
Resultados
P

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

[ok]

b)

Tabla 4.3.3. a) Resultado de caracteres utilizados en el proceso entrenamiento b) Resultado de caracteres no utilizados
en el proceso de entrenamiento.

4.5 TRABAJO A FUTURO


Como trabajo a futuro del presente trabajo de tesis se proponen los siguientes puntos:

Adems de el anlisis de imgenes, utilizar video para la localizacin de la placa vehicular

Hacer pruebas del algoritmo de localizacin de placa con placas de otros estados

Utilizar la transformada de Hough para las placas que estn golpeadas

Continuar el estudio de los filtros para el mejoramiento de los caracteres

Cabe recalcar que en el transcurso del trabajo presente se realizaron pruebas experimentales de la
transformada de Hough [2], dicha transformada fue utilizada para mejorar el contraste de placas
golpeadas. La transformada de Hough se estimo como:

x cos + y sin = p
Donde X y Y son los valores de grises en la posicin i, j de la imagen.
Es ngulo que se utiliza en la formula.
P es el nuevo valor del pixel en la posicin i, j

Se muestran unos ejemplos a continuacin:

109

Captulo 4
Resultados

a)

b)

Figura 4.5.1. a) Placa doblada de la parte superior derecha b) Placa con aclaracin de contraste usando la
transformada de Hough.

110

Captulo 4
Resultados

a)

b)

c)

Figura 4.5.2. Resultado de imgenes utilizando la transformada de Hough con diferentes ngulos a) 40 b)
35 c) 30.

111

Captulo 4
Resultados

CONCLUSIONES

En el captulo anterior se mostraron los resultados de las evaluaciones a las que se sometieron los
algoritmos propuestos; as como las condiciones en las que se realizaron las pruebas experimentales del
presente trabajo.

A travs del desarrollo de las pruebas se visualizaron problemas no contemplados, como el ruido que se
muestra en las imgenes de captura, para cuando la adquisicin se realiza de noche. Sin embargo se
solventaron cada uno de los problemas presentados con la implementacin de filtros que permiten
eliminar de los caracteres informacin no deseada. Los porcentajes de acierto para la localizacin y el
reconocimiento de placas son bastante viables, por lo que se muestra que el sistema propuesto puede
ser aplicado a cualquier punto de acceso vehicular.

Es evidente que para los escenarios que estn fuera de los lmites de acotamiento del proyecto, los
resultados no son los esperados, por ello al inicio del proyecto se mencionan los acotamientos para el
correcto funcionamiento del presente trabajo.

REFERENCIAS

[1] Noem Vzquez Tecpanecatl, Mariko Nakano Miyatake, Hctor Manuel Prez Meana, Sistema
automtico de localizacin y reconocimiento de placas de automviles Mxico DF, Mayo 2002

[2] Richard O. Duda, Peter E. Hart (1971) Use of the Hough transformation to detect lines and curves in
pictures

[3] S. Park, K. Kim, K. Juang and H. Kim: Locating car License plate using neural networks, Electronics
Letters, Vol. 35, No. 17, pp. 1475-1477, 1999.

[4] D-S. Kim. I. Choi and S-I. Chien: Correction and extraction of perspectively distorted license plates
usen scan line based generalized symmetry transform, IEICE Trans. INF & SYST, Vol. E85-D, No. 11, pp.
1776-1783, 2002.

112

Captulo 4
Resultados

[5] S. Mori, C. Suen and K. Yamamoto: Historical review

of OCR research and development,

Proceedings of the IEEE, Vol. 80, No. 7, pp. 1029-1058, 1992.

[6] G. Garibotto, P. Castello, E. Del Ninno, P. Pedrazzi and G. Zan: Speed-vision: Speed measurement
by license plate Reading and tracking, Proc. Of IEEE Itelligent Transportation Systems Conference
Proceedings, pp. 585-590, 2001.

[7] Hakan Caner, H. Selcuk Gecim, Ali Ziya Alkar Efficient Embedded Neural-Network-Based
License Plate Recognition System, Ankara Turquia, Septiembre 2008

113

Captulo 5
Conclusiones generales

CAPITULO 5

CONCLUSIONES GENERALES

Al trmino del desarrollo e implementacin del sistema propuesto en el presente trabajo, se tienen
diversas conclusiones.

El sistema de reconocimiento de placas vehiculares para la ciudad de Mxico est basado en dos grandes
ramas de la ciencia, el procesamiento de imgenes y el entrenamiento y evaluacin de patrones.

Durante el desarrollo del proyecto, se encontraron una serie de obstculos, que van desde la distancia,
el ngulo con los que se capturaban las imgenes de los vehculos, por ello fue de vital importancia
acotar las condiciones de captura. Durante la adquisicin de las imgenes se observo que hay placas
maltratadas y/o con desgaste fsico lo cual al binarizar la imagen ocasiono tener informacin no deseada
en los caracteres. La mayora de las fotos que se obtuvieron de noche, al utilizar el flash de la cmara el
realce de las placas ocasionaban tener ruido sal y pimienta en los caracteres. Por las inconsistencias
mencionadas anteriormente fue necesario desarrollar e implementar un filtro de eliminacin de ruido, as
como el desarrollo de un algoritmo que permitiera la restauracin de los caracteres. Con el desarrollo de
estos algoritmos los caracteres al final presentaron mucha menos informacin no deseada, lo cual
contribuira a un mejor reconocimiento.

El algoritmo de localizacin de placa result funcional en las condiciones determinadas al inicio del
trabajo presente; las placas fueron localizadas con la captura de vehculos con distancias y ngulos
diferentes. El algoritmo se basa en las variaciones de intensidad de la imagen en su escala de grises, lo
cual se deduce que es una buena tcnica de anlisis en dicho formato de la imagen.

En el proceso de binarizacin se comprob el buen funcionamiento del umbral que se determino para
eliminar el fondo de la placa vehicular (figura de monumento de la independencia), la evaluacin se
realizo con todas las placas obtenidas. Para la segmentacin de los caracteres se propuso un mtodo
diferente a los existentes, donde se obtiene el alto y ancho del carcter para as determinar las
coordenadas de inicio y fin en sus ejes X y Y, de esta forma se contribuye una opcin ms de
segmentacin a la lnea de investigacin. Para el proceso de codificacin de caracteres de igual forma se

114

Captulo 5
Conclusiones generales
propone un algoritmo parametrizable e independiente de la resolucin de los caracteres, mismo que
presento un buen funcionamiento en las evaluaciones experimentales que se realizaron. Se comprob
que el utilizar 20 vectores caractersticos para el proceso de entrenamiento resulto exitoso. Durante el
proceso de evaluacin se emplearon 10 vectores caractersticos no utilizados en el proceso de
entrenamiento.

La adquisicin de las imgenes, en su mayora se realizaron con la cmara IP SMCWIPCAM-G sin


embargo como medida de ataque a los algoritmos propuestos para la localizacin, segmentacin y
codificaciones de los caracteres se utilizaron un par de cmaras digitales con caractersticas diferentes,
para determinar que los algoritmos pueden son independientes a la resolucin de los caracteres.

El algoritmo de la red neuronal artificial backpropagation resulto una vez ms exitoso para el
reconocimiento de los caracteres. Lo difcil para llegar a un buen reconocimiento fue el anlisis y la
determinacin del mtodo para la segmentacin de caracteres, ya que de ello depende en gran medida
que se tenga un porcentaje de reconocimiento considerable.

Los primeros intentos de entrenamiento con la RNA Backpropagation fueron empleando una matriz que
contena los vectores caractersticos de letras y nmeros, no teniendo xito alguno, ya que la RNA se
quedo oscilando alrededor de 12 hrs. Sin llegar al umbral para detener dicho algoritmo, ante esta
situacin se opto por realizar un entrenamiento por separado para letras y nmeros, posteriormente se
realizaron variaciones en las neuronas de la capa de entrada y el valor del umbral determinado para el
error cuadrtico medio, al realizar una serie de pruebas experimentales se pudo obtener una matriz de
pesos que contiene a las letras y nmeros, de esta forma teniendo se comprueba que pueden convivir
sin problemas los caracteres en una sola matriz de pesos; como se observo en la tabla de resultados que
se presento en el captulo 4.

Como parte final se puede concluir que los algoritmos propuestos en el sistema base de reconocimiento
de placas vehiculares son viables ya que se obtuvieron resultados exitosos con diferentes condiciones,
por lo que se recomienda su uso para solventar problemas a los que se describieron en el trabajo
presente.

115

ANEXO

En el captulo 4 se mostraron resultados de restauracin de caracteres sobre las letras que se consideran
en las placas de la ciudad de Mxico, a continuacin se muestran una tabla con los resultados en
nmeros:

Original

Reconstruido

Tamao
38 x 16

56 x 24

371 x 176

342 x 81

116

342 x 79

226 x 52

39 x 18

62 x 26

86 x 24

31 x 13

39 x 18

117

117 x 55

41 x 12

86 x 24

32 x 14

228 x 101

55 x 24

51 x 17

39 x 18

118

47 x 16

64 x 27

39 x 17

37 x 15

30 x 13

37 x 16

48 x 10

49 x 16

363 x 177

119

37 x 16

En el apartado siguiente, se muestran las condiciones en las que se instalo la cmara digital a una pluma
de estacionamiento:

120

121

Muestra de placas obtenidas:

122

123

124

125

126

ANEXO

En esta seccin se muestran los programas que se desarrollaron en el trabajo presente.


1.- loc_pl Localizacion de la placa

clear all;
close all;
clc
%%%% Leer imagen %%%
X=imread('C:\Users\joseluinux\Documents\MATLAB\proyecto\iplacas\img270
82009\DSC00009','jpg');
%%%%%% Convertir imagen de nivel de gris %%%%%%%
I=rgb2gray(double(X)/255);
figure();
imshow(X);
figure();
imshow(I);
title('Escala de grises');
%%%%%%Fin de la conversion de la imagen a escala de grises%%%%%%

[N,M]=size(I);
int_y=fix(N/30);
b_pl=0;
count_pl=0;
j=1;

for y=1:int_y:N
V=I(y,:);
ex=ex_main(V);
if ~isempty(ex)
if b_pl==1
count_pl=count_pl+1;
else
b_pl=1;
count_pl=1;
end
else
if b_pl==1
b_pl=0;
cont_num(j)=count_pl;
cont_val(j)=y;
j=j+1;
end
count_pl=0;
end
end
[v_max,p_max]=max(cont_num);
margen=int_y+10;
y_end=cont_val(p_max)+margen;

127

y_start=cont_val(p_max)-int_y*v_max-margen;

W=I(y_start:y_end,:);
[N1,M1]=size(W);
y_med=fix(N1/2);
V=W(y_med,:);
[x_start,x_end]=ex_main2(V);
W2=W(:,x_start:x_end);
figure();
imshow(W);%%%Recorte en Y
figure();
imshow(W2); %%%Recorte en X
title('Placa localizada');
1.1.- Ex_main Rutina que determina la posicin horizontal de la
placa
function ex=ex_main(V)
[val1,pm1]=max(V);
[val2,pm2]=min(V);
int=(val1-val2)/12;
val=val1-int:-int:val2;
count_c=0;
b_nl=0;
j=1;
continuo(j)=0;
for k=1:length(val)
BV=V>=val(k);
cc=ex_linea(BV);
if cc>=5
if b_nl==1
count_c=count_c+1;
else
b_nl=1;
count_c=1;
end
elseif(cc<19)
if b_nl==1
b_nl=0;
continuo(j)=count_c;
cont_v(j)=k;
j=j+1;
end
count_c=0;

end
end
ex=find(continuo>=1);

1.2.- Ex_linea Rutina para examinar que una lnea pase parte de
numero y letras

128

function C=ex_linea(VB)
C=count_01(VB);
N=length(VB);
v_th1=fix(N/100);
for k=1:N-1
if VB(k)==0 & VB(k+1)==1
L=find(VB(k+1:N)==0);
if ~isempty(L)
lb=L(1)-1;
if lb<v_th1
C=C-1;
end
k=k+L(1);
else
k=N-1;
end
end
end

1.3.- count_01 Rutina que cuenta numero de cruces por cero


function c=count_01(V)
N=length(V);
c=0;
for k=1:N-1
if V(k)==0 & V(k+1)==1
c=c+1;
end
end
2.- generaBinlocal Rutina que obtiene la binarizacion de la placa
localizada
function [IBT]=generaBinlocal(I)
[N,M]=size(I);
tb=50;
omega=0.005;
N_bloque=fix(N/tb);
M_bloque=fix(M/tb);
k=1;
for i=1:N_bloque
for j=1:M_bloque
st_y=(i-1)*tb+1;
st_x=(j-1)*tb+1;
en_y=i*tb;
en_x=j*tb;
W=I(st_y:en_y,st_x:en_x);
%%%%%%%% Calculo de promedio y varianza

%%%%%%%%

prom=sum(sum(W))/(tb*tb);
var=sum(sum((W-prom).^2))/(tb*tb);
th(k)=omega*var+(prom/1.6);
129

WB=W>th(k);
IB(st_y:en_y,st_x:en_x)=WB;
end
end
prom_t=sum(sum(I))/(N*M);
var_t=sum(sum((I-prom_t).^2))/(N*M);
th_t=omega*var_t+prom_t;
IBT=I>th_t;
figure;
subplot(1,3,1); imshow(I);
subplot(1,3,2); imshow(IB);
subplot(1,3,3); imshow(IBT);

3.- Rutina que Segmenta los caracteres


[IBT]=generaBinlocal(I);
[F,C]=size(IBT);%vecValibt=ones(F,2)*-1;countRibt=vecValibt;
[Xcp]=getAltura(IBT,0);%puede buscarse con 0
[Xcpt]=getAltura(Xcp',0);
Xc=Xcpt';%Imagen recortada

%Vamos a dejar dos columnas una para 0 y 1


countM=1;countMs=1;countMf=1;xS=0;xF=xS;xSs=xS;xFs=xS;
for i=1:F
c=count_01(IBT(i,:));
Veccprom(i)=c;
end
prom1=floor((ceil(sum(Veccprom)/F))*0.6);
prom2=floor(((ceil(sum(Veccprom)/F)/2)*0.6)+(sum(Veccprom)/F));
for i=1:F
[vecValibt,countRibt]=getValyRep(IBT(i,:));
% 1 0
[vecVar]=getVariacionesOne(IBT(i,:));
c=count_01(IBT(i,:));
%Al menos deben existir 1 y 0
%Debe haber ms 1 blancos que 0 negros
%Necesito ver el numero de combinaciones
if i== 83 || i==185
dfg=1;
end
if(length(vecValibt)>1)
if vecValibt(1)==1
vecValibtTmp=vecValibt;
countRibtTmp=countRibt;
else
vecValibtTmp(1)=1;
vecValibtTmp(2)=0;
countRibtTmp(1)=countRibt(2);
countRibtTmp(2)=countRibt(1);
end
if(countRibtTmp(1)>countRibtTmp(2))
prom=(countRibtTmp(1)*25)/100;
promC=(C*75)/100;
130

promCs=(C*25)/100;
%El blanco debe ser mayor que el negro y las variaciones deben ser
%6 al menos
%Necesito comparar el momento actual y uno anterior
vecMain(countM,:)=[i countRibtTmp prom promC promCs
vecVar c];
countM=countM+1;
if countRibtTmp(2)>=prom && countMs==1 && countMf==1
&& c>=prom1 && c<prom2 && countRibtTmp(1)>=promC
xS=i;countMs=0;
elseif countRibtTmp(2)<=prom && countMf==1 &&
countMs==0 && (c<prom1 || c>prom2)
xF=i;countMf=0;
end
end
end
end
%Me di cuenta que realizando otras pruebas tena que recorrer el
primer y
%segundo momento
[Fm,Cm]=size(vecMain);
countMs=1;countMf=1;
if xS==0 && xF==0 %No se hayo valor, en vecMain tenemos al menos las
posiciones que se estan buscando
xS=vecMain(1,1);xSs=xS;xF=vecMain(Fm,1);xFs=xF;
else
for j=1:Fm-1
if vecMain(j,3)>=vecMain(j,4) && countMs==1 && countMf==1 &&
vecMain(j,8)>=prom1 && vecMain(j,8)<prom2 && vecMain(j+1,8)>=prom1 &&
vecMain(j+1,8)<prom2 && vecMain(j,2)>=vecMain(j,5)
xSs=vecMain(j,1);countMs=0;
elseif vecMain(j,3)<=vecMain(j,4) && countMf==1 && countMs==0 &&
(vecMain(j,8)<prom1 || vecMain(j,8)>prom2)
xFs=vecMain(j,1);countMf=0;
end
end
end
IBTsX=IBT(xS:xF,:);
if xSs==0 && xFs==0 %No se hayo valor, en vecMain tenemos al menos las
posiciones que se estn buscando
xSs=vecMain(1,1);xFs=xSs;
end
IBTsF=IBT(xSs:xFs,:);
figure();
imshow(IBT(xS:xF,:))
title('Corte en Xs');
figure();
imshow(IBT(xSs:xFs,:))
title('Corte en XSs');
%Procedemos al corte en Y
IBTsFy=IBTsF';
figure();
imshow(IBTsFy)
title('Imagen Inversa');
[Ft,Ct]=size(IBTsFy);
countNc=1;
countM=1;countMs=1;countMf=1;xS=0;xF=xS;xSs=xS;xFs=xS;
131

for i=1:Ft
[vecValibtsFy,countRibtsFy]=getValyRep(IBTsFy(i,:));
[vecVarsFy]=getVariacionesOne(IBTsFy(i,:));
c=count_01(IBTsFy(i,:));
promN=ceil((5*Ct)/100);
if(length(vecValibtsFy)>1)
if vecValibtsFy(1)==1
vecValibtTmpsFy=vecValibtsFy;
countRibtTmpsFy=countRibtsFy;
else
vecValibtTmpsFy(1)=1;
vecValibtTmpsFy(2)=0;
countRibtTmpsFy(1)=countRibtsFy(2);
countRibtTmpsFy(2)=countRibtsFy(1);
end
if(countRibtTmpsFy(1)>countRibtTmpsFy(2))
if countMs==1 && c>=1
xS=i;countMs=0;countMf=1;
end
end
%Obtengo el 5% de la longitud de la lnea, para ver si ya
empieza
%el blanco o el negro
elseif countMs==0 && countMf==1 && c<=1
xFa=i;countMf=0;countMs=1;
figure();
imshow(IBTsFy(xS:xFa,:));
%title('charer');%tenemos los caracteres recortados
matNc(countNc,:)=[xS xFa];%Guardamos solo los ndices
para hacer referencia a los caracteres
countNc=countNc+1;
elseif countRibtsFy>=promN && countMf==1;
xF=i;
end
end
%Volvemos a quitar blancos de nmeros y caracteres
[FNc,CNc]=size(matNc);
countFig=1;
for i=1:FNc
% subplot(FNc*2,2,countFig);
% imshow(IBTsFy(matNc(i,1):matNc(i,2),:));
matC=IBTsFy(matNc(i,1):matNc(i,2),:);
matC=(matC)';
%imshow(matC);
[FNcr,CNcr]=size(matC);%La hacemos transpuesta de nuevo para
recortar los blancos
%figure();
% xx=cod_main(matC);
%imshow(matC);
bS=1;bF=1;
for j=1:FNcr-2
[vecValibtsFy,countRibtsFy]=getValyRep(matC(j,:));
[vecVarsFy]=getVariacionesOne(matC(j,:));

132

c=count_01(matC(j,:));c1=count_01(matC(j+1,:));c2=count_01(matC(j+2,:)
);
if (length(vecValibtsFy)>1) && (bS==1)
xS=j;bS=0;bF=1;
elseif bS==0 && c>=1 && c1==0 && c2==0
xF=j;
bF=0;
end
end
%countFig=1+countFig;
%
subplot(FNc,2,i);
%
imshow(matC(xS:xF,:));
%matC=(IBTsFy(matNc(i,1):matNc(i,2),:))';
end

3.1- getAltura Rutina que permite obtener la altura de un caracter


function [XcProc]=getAltura(Xc,rb)
[Fp,Cp]=size(Xc);
matPosL=zeros(Fp,Cp);
%[ap,bp]=find(matPos==1);
conth=1;
contvech=1;
for i=1:Fp
if(i>1)%Almenos ya tiene valores el vector b
%almenos ya hay una posicion
flagh=1;
contw=1;
if(length(b)>0)
while (contw<=length(b) && flagh==1)
if(Xc(i,b(contw))==rb)
conth=conth+1;
flagh=0;
end
contw=contw+1;
end
else
flagpos=0;
end
%si la bandera se quedo activada entonces reseteo el contador
de la
%altura
%Si no entra ninguna vez guardamos al menos una vez la altura
if(flagh==1)
vech(contvech)=conth;
contvech=contvech+1;
conth=1;
elseif(conth>1 && i==Fp)
vech(contvech)=conth;
end
else% solo hay una fila en todo el numero
vech(contvech)=conth;
end
[a,b]=find(Xc(i,:)==rb);
for j=1:length(a)

133

XcL(i,b(j))=b(j);%Obengo las posiciones validas para


determinar la altura de un numero
end
vecth(i)=conth;
end
[mh ph]=max(vecth);
%mh
%ph
inic=ph-mh;
inic=inic+1;
if inic<=0
inic=1;
end
XcProc=Xc(inic:ph,:);

3.2- getValyRep Rutina que permite obtener los valores repetidos


function [vecVal,countR]=getValyRep(Mat)
[F,C]=size(Mat);
for j=1:F
for i=1:C
flagS=1;%Activo bandera para guardar valor
if (j==1 && i==1)
vecVal(1)=Mat(j,i);
else
for l=1:length(vecVal)
if(vecVal(l)==Mat(j,i))
flagS=0;%Desactivo bandera para guardar
end
end
%Verifico si esta prendida la bandera para guardar nuevo
valor
if flagS==1
vecVal(length(vecVal)+1)=Mat(j,i);
end
end
end
end
%buscamos cuantas veces se repiti el valor
for i=1:length(vecVal)
countR(i)=length(find(Mat==vecVal(i)));
end

3.3- getVariacionesOne Rutina que permite obtener las veces que hay
variaciones en los pixeles negros
function [vecVar]=getVariacionesOne(X)
C=length(X);
cont=1;cont2=1;
conta=1;
matVal=zeros(1,C);%generamos la matriz para guardar los valores que se
repiten
contvm=1;contv=0;contvv=1;flag=0;
for j=1:C-1
if(X(j)~=X(j+1))
contv=contv+1;

134

matVar(contvv)=X(j+1);
contvv=contvv+1;flag=0;
elseif flag==0% Es igual
matVal(j)=X(j+1);
contvm=contvm+1;
flag=1;
end
end
vecVar=contv;
end

4.- tryVar Rutina que permite eliminar el ruido sal y pimienta en los
caracteres
load dos;
Xc=dos';
figure();
imshow(Xc);
[Xcp]=getAltura(Xc,0);%puede buscarse con 0
[Xcpt]=getAltura(Xcp',0);
Xc=Xcpt';%Imagen recortada
figure();
imshow(Xc);
[Fc,Cc]=size(Xc);

[Fval,Cval]=size(matVal);
verifyVal=matVal;
matOpt=zeros(Fval,Cval);
for k=1:Fv
sumv=0;
for i=1:Cv
flagval=1;
auxsum=1;
auxsum=auxsum+sumv;
if auxsum<=Cval
sumv=sumv+vecLongmay(k,i);
if verifyVal(k,auxsum)==0
flagval=0;
end
if flagval==0
for j=auxsum:sumv
matVal(k,j)=vecLongmay(k,i);
end
else
for j=auxsum:sumv
matVal(k,j)=1;
end
end
end
end
135

%Vamos a obtener el mayor


[val,pos]=max(matVal(k,:));
prom=sum(matVal(k,:));
prom=prom/Cval;
olg=prom*(1/8);
matOpt(k,:)=matVal(k,:)<=(prom);
end
figure();
imshow(matOpt);
4.1- barrido Rutina que permite obtener la longitud de los anchos de
pixeles negros
function [vecLong vecLongzer matVar]=barrido(Xc)
[Fc,Cc]=size(Xc);
matVal=ones(Fc,Cc);%generamos la matriz para guardar los valores que
se repiten
matVal=matVal*-13;
for i=1:Fc
contv=0;contvv=1;flag=0;contdif=0;flagvar=0;
for j=1:Cc-1
flagd=0;%buscamos solo los 0
%Xc
if(Xc(i,j)~=Xc(i,j+1))
contv=contv+1;
%Guardamos la primer posicin
if flagvar==0
matVar(i,contvv)=Xc(i,j);
flagvar=1;
else
matVar(i,contvv)=Xc(i,j);
end

contvv=contvv+1;
if flag==1
contvm=contvm+1;%volvemos a incrementarlo por la
ultima vez que le falto uno
else%reseteamos de nuevo el contador
contvm=1;
end
vecLong(i,contv)=contvm;
flag=0;
flagd=1;contdif=contdif+1;

elseif flag==0% Es igual % en primer iteracin se activa flag


matVal(i,j)=Xc(i,j+1);
contvm=1;
flag=1;
elseif flag==1%sigue teniendo el mismo valor incremento su
longitud
contvm=contvm+1;
end
%Vamos a validar que haya ceros y al menos se han dos para
guardar
%sus posiciones
136

if Xc(i,j)==0 && contvm>1


matPos(i,j-1)=1;
matPos(i,j)=1;
end
%Verificamos si son 0s para guardar las longitudes
if(flagd==1 && Xc(i,j)==0 && contvm>1)
vecLongzer(i,contdif+1)=contvm;
end
end
if flag==1% para la ultima posicin verificamos su
longitud
contvm=contvm+1;%volvemos a incrementarlo por la
ultima vez q le falto uno
else%reseteamos de nuevo el contador
contvm=1;
end
%Necesito verificar si en la ultima posicin de la matriz hay un 0
para
%cambiar dicha posicin a 1
if (Xc(i,j+1)==0 && contvm>0 && flag==1)%se pone mayor a 0 por que con
uno ms el ultimo ya son las dos posiciones
matPos(i,j+1)=1;
matPos(i,j)=1;
vecLongzer(i,j)=contvm;
else
vecLongzer(i,j)=0;
end
vecLong(i,contv+1)=contvm;
vecVar(i)=contv;
contvm=contvm+1;
vecTam(i)=contvm;
matVar(i,contvv)=Xc(i,j+1);
end
4.2- rellena Rutina que permite la restauracin de los caracteres
function [Xc]=rellena(Xc,matVar,vecLong,vecLongzer)
[Fb,Cb]=size(Xc);
prom=sum(sum(vecLongzer))/Fb;
prom=prom*0.25;
[Fz,Cz]=size(matVar);
promt=(Fz/2)*0.70;
for k=1:Fz
flag=0;flagu=0;
cont=0;contu=0;
promz=(max(vecLongzer(k,:)))*0.25;
for j=1:Cz
if(matVar(k,j)==0 && flag==0)%0 1 0 negro blanco negro
cont=cont+1;flag=1;
elseif(matVar(k,j)==1 && flag==1)
cont=cont+1;flag=0;
end

if(cont==3)%Se cumpli la combinacin


sumn=vecLong(k,j-2)+vecLong(k,j);
sumnt=sum(vecLongzer(k,:));
tmpsumnt=(sum(vecLong(k,:))-sumnt)*0.6;

137

sumnt=sumnt*0.4;
cont=1;
sump=0;
restva=abs(vecLong(k,j-2)-vecLong(k,j));
vechn=find(vecLongzer(k,:)~=0);%Verifico que haya ms de un
negro
Lvechn=length(vechn);
tmaxz=round((max(vecLongzer(k,:)))*0.22);
if((vecLong(k,j-1)<= vecLong(k,j-2) && vecLong(k,j-1)<=
vecLong(k,j)) && ((vecLong(k,j-2)>promz && vecLong(k,j)>promz &&
vecLong(k,j-1)<tmpsumnt) || (sumn>sumnt && vecLong(k,j-1)<tmpsumnt))
&& restva>tmaxz )
for i=1:j-2
sump=sump+vecLong(k,i);
end
for h=(sump+1):(sump+vecLong(k,j-1))
Xc(k,h)=0;
end
end
end
if(matVar(k,j)==1 && flagu==0) %1 0 1 blanco negro blanco
contu=contu+1;flagu=1;
elseif(matVar(k,j)==0 && flagu==1)
contu=contu+1;flagu=0;
end

if(contu==3)%Se cumplio la combinacin


Mvecz=max(vecLongzer(k,:));
factz=floor((Mvecz/100)*Mvecz);
promnm=(Mvecz)*0.56;
tmpsumnt=sum(vecLongzer(k,:));
tmpsumntn=(sum(vecLong(k,:))-tmpsumnt)*0.6;
toto=(sum(vecLongzer(k,:)));
totf=sum(vecLong(k,:));
tott=totf*0.75;
sumnt=tmpsumnt*0.60;%.60
sumntc=tmpsumnt*0.15;
vechn=find(vecLongzer(k,:)~=0);%Verifico que haya ms de un
negro
Lvechn=length(vechn);

if k>1
sumntmu=sum(vecLongzer(k-1,:));
else
sumntmu=0;
end
contu=1;
sumpu=0;

138

if(((vecLong(k,j-1)<= vecLong(k,j-2) && vecLong(k,j-1)<=


vecLong(k,j)) || (Lvechn > 1 && (vecLong(k,j-1)<sumnt) &&
tmpsumnt>sumntmu && vecLong(k,j-1)<sumntc && toto<=tott &&
vecLong(k,j)>2) ) && (vecLong(k,j-1)<prom && vecLong(k,j-1)<promnm) &&
vecLong(k,j-1)<factz)
for i=1:j-2
sumpu=sumpu+vecLong(k,i);
end
for h=(sumpu+1):(sumpu+vecLong(k,j-1))
Xc(k,h)=1;
end
end
end

end
end

5- fsegmenta Rutina que permite la segmentacin de los caracteres


function [mM]=fsegmenta(Xc)
figure
imshow(Xc)
N=2;%Numero de ventanas maestreas
[matPosw]=divide(N,Xc);%obtiene los ndices para las ventanas
n=2;%Numero de ventanas hijas
%figure();
%formamos la matriz maestra
sN=(N*n)*N*n;
mM=zeros(1,sN);
x=1;cont=1;contv=1;contb=0;
for k=1:N
y=1;
for j=1:N
%subplot(N,N,cont)
figure();
imshow(Xc((x:matPosw(1,k)),(y:matPosw(2,j))))
tmpXc=Xc((x:matPosw(1,k)),(y:matPosw(2,j)));%Nueva ventana
hija
[matPosws]=divide(n,tmpXc);%obtiene los ndices para las
ventanas
[matCarac]=getMatdiv(n,matPosws,tmpXc);%De acuerdo a los
ndices obtenidos asigna las nuevas ventanas; obtiene el vector (en
matriz) caracterstico
[F,C]=size(matCarac);
for h=1:F
for l=1:C
mM(((contv)+contb))=matCarac(h,l);
contv=contv+1;
end
contv=contv+2;
end
contv=1;
contb=contb+2;
if((contb*2)==(sN/2))
contb=contb*2;
139

end
vecCarac=mat2vec(matCarac);%guardamos en Vector los valores de
subventanas
matDefCarac(cont,:)=vecCarac;
y=matPosw(2,j);
cont=cont+1;
end
x=matPosw(1,k);
end
%orden normal
vecDefCarac=mat2vec(matDefCarac);
%Este vector es para el segundo orden
mM
5.1- divide Rutina que permite obtener el ndice de los caracteres
para la divisin de ventanas
function [matPosw]=divide(f,Xc)
[F,C]=size(Xc);
X=fix(F*(1/f));
Y=fix(C*(1/f));
for k=1:f
matPosw(1,k)=X*k;%Indices para Filas
matPosw(2,k)=Y*k;%Indices para Columnas
end
6.- backpropagation Rutina que permite el entrenamiento de la RNA
Backpropagation
%%%%%%%%%%%%%%%% RED BACKPROPAGATION %%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%
ENTRENAMIENTO
%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% SE INICIALIZAN LOS VALORES
clear all
close all
clc
opcion=0;
% VALORES DE ENTRADA
N=16; %neuronas de entrada sin contar bias
%L=10; %neuronas de la capa oculta sin contar bias
L=14;
M=33; %Neuronas de salida
%M=23;
%M=10;
% INICIALIZACION DE LA MATRIZ DE PESOS W Y V
W=0.2*rand(N+1,L)-.1;
V=0.2*rand(L+1,M)-.1;
% CARGA ARCHIVO CON DATOS DE ENTRADA
load Mdto;
A=Mdto;
%load Mdtoabc;
%A=Mdtoabc;

140

%load Mdtonum;
%A=Mdtonum;

% CARGA ARCHIVO CON DATOS DESEADOS


load salidasm.dat;
B=salidasm;
%load salidasabc.dat;
%B=salidasabc;
%load salidasnum.dat;
%B=salidasnum;

alfa=0.00500; %para este caso miu


min=0.1; %umbral definido
iter=100000; %maximo numero de iteraciones para que converga la red
[patrones,i]=size(A);
% SE FORMA MATRIZ DE ENTRADA
PA=[];
for g=1:patrones
PA(g,:)=[1,A(g,:)]; %se forma la matriz de entrada para formar el
epoch aumentado el bias
end
% INICIA ENTRENAMIENTO
cont=0;
Z=0;
for k=1:iter
cont=cont+1; %numero de epochs
error=0;
for i=1:patrones
X=PA(i,:);
%X es la capa entrada
U=(X*W);
%U es la capa oculta
U=tansig(U);
%se ocupa tansig como funcion no
lineal
U=[1.0,U];
%se agraga el bias
Y=tansig(U*V);
%Y es la capa de salida
E=B(i,:)-Y;
% se calcula el error
%adaptacion
delta1=E*0.5.*(1-(Y.*Y));
V=V+alfa*U'*delta1;
a=delta1*V';
delta2=a.*(0.5.*(1-(U.*U)));
delta2=delta2(2:length(delta2)); % se le quita el bias
de U para calcular W
W=W+alfa*X'*delta2;
error=error+E*E';
end
error=error/M;
%fprintf(1,'Err=%4.9f ==> %d\n',error,k);
J(k)=error;
if error<min
141

break;
end
%k
end
plot(J);
save bp_mem_pesos3 W V; %se tiene que cambiar el nombre de archivo
para otra aplicacion
%***************************************************
%PRUEBA DE LA RED PARA LOS PATRONES
%**********************************************+***
cont0=0;
for i=1:patrones
X=PA(i,:);
%se aumenta bias a la capa de entrada
U=tansig(X*W);
%se calcula la capa oculta
U=[1.0,U];
Y=tansig(U*V);
%se calcula la salida
%fprintf('%f %f %f %f %f %f %f %f %f %f %d %d %d %d %d %d %d %d %d
%d\n',Y(1),Y(2),Y(3),Y(4),Y(5),Y(6),Y(7),Y(8),Y(9),Y(10),hardlim(Y(1)0.5),hardlim(Y(2)-0.5),hardlim(Y(3)-0.5),hardlim(Y(4)0.5),hardlim(Y(5)-0.5),hardlim(Y(6)-0.5),hardlim(Y(7)0.5),hardlim(Y(8)-0.5),hardlim(Y(9)-0.5),hardlim(Y(10)-0.5));
fprintf('%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f
%f %f %f %f %f %f %f %f %f %f %f %f %f %d %d %d %d %d %d %d %d %d %d
%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d
%d\n',Y(1),Y(2),Y(3),Y(4),Y(5),Y(6),Y(7),Y(8),Y(9),Y(10),Y(11),Y(12),Y
(13),Y(14),Y(15),Y(16),Y(17),Y(18),Y(19),Y(20),Y(21),Y(22),Y(23),Y(24)
,Y(25),Y(26),Y(27),Y(28),Y(29),Y(30),Y(31),Y(32),Y(33),hardlim(Y(1)0.5),hardlim(Y(2)-0.5),hardlim(Y(3)-0.5),hardlim(Y(4)0.5),hardlim(Y(5)-0.5),hardlim(Y(6)-0.5),hardlim(Y(7)0.5),hardlim(Y(8)-0.5),hardlim(Y(9)-0.5),hardlim(Y(10)0.5),hardlim(Y(11)-0.5),hardlim(Y(12)-0.5),hardlim(Y(13)0.5),hardlim(Y(14)-0.5),hardlim(Y(15)-0.5),hardlim(Y(16)0.5),hardlim(Y(17)-0.5),hardlim(Y(18)-0.5),hardlim(Y(19)0.5),hardlim(Y(20)-0.5),hardlim(Y(21)-0.5),hardlim(Y(22)0.5),hardlim(Y(23)-0.5),hardlim(Y(24)-0.5),hardlim(Y(25)0.5),hardlim(Y(26)-0.5),hardlim(Y(27)-0.5),hardlim(Y(28)0.5),hardlim(Y(29)-0.5),hardlim(Y(30)-0.5),hardlim(Y(31)0.5),hardlim(Y(32)-0.5),hardlim(Y(33)-0.5));
%fprintf('%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f
%f %f %f %f %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d
%d %d %d
%d\n',Y(1),Y(2),Y(3),Y(4),Y(5),Y(6),Y(7),Y(8),Y(9),Y(10),Y(11),Y(12),Y
(13),Y(14),Y(15),Y(16),Y(17),Y(18),Y(19),Y(20),Y(21),Y(22),Y(23),hardl
im(Y(1)-0.5),hardlim(Y(2)-0.5),hardlim(Y(3)-0.5),hardlim(Y(4)0.5),hardlim(Y(5)-0.5),hardlim(Y(6)-0.5),hardlim(Y(7)0.5),hardlim(Y(8)-0.5),hardlim(Y(9)-0.5),hardlim(Y(10)0.5),hardlim(Y(11)-0.5),hardlim(Y(12)-0.5),hardlim(Y(13)0.5),hardlim(Y(14)-0.5),hardlim(Y(15)-0.5),hardlim(Y(16)0.5),hardlim(Y(17)-0.5),hardlim(Y(18)-0.5),hardlim(Y(19)0.5),hardlim(Y(20)-0.5),hardlim(Y(21)-0.5),hardlim(Y(22)0.5),hardlim(Y(23)-0.5));
if(B(i,:)~=hardlim(Y-0.5))
cont0=cont0+1;
end
end
fprintf('\n %d patrones no reconocidos',cont0);

6.1- eval_backpropagation Rutina que permite la evaluacin de los


caracteres
142

clear all
close all
clc
%patrones=6;
patrones=230;
%patrones=460;
%patrones=660;
%patrones=330;
%patrones=100;
%load bp_mem_pesosabc;
load bp_mem_pesos3; %No modificar
%load bp_mem_pesosnum;
load Mdtotry;
A=Mdtotry;
%%Modificar
%load Mdtoabctry; %Cargar matriz con vectores caracteristicos por
caracter
%A=Mdtoabctry;
%load Mdtonumtry;
%A=Mdtonumtry;
%%Modificar
%load salidasabctry.dat;%Cargar matriz de salidas (archivo de bloc de
notas)
%B=salidasabctry;
%load salidasnumtry.dat;
%B=salidasnumtry;

load salidasmtry.dat;
B=salidasmtry;

PA=[];
for g=1:patrones
PA(g,:)=[1,A(g,:)]; %se forma la matriz de entrada para formar el
epoch aumentado el bias
end
cont0=0;
array=['9' '8' '7' '6' '5' '4' '3' '2' '1' '0' 'A' 'B' 'C' 'D' 'E' 'F'
'G' 'H' 'J' 'K' 'L' 'M' 'N' 'P' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'];
%array=['A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'J' 'K' 'L' 'M' 'N' 'P' 'R'
'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'];
%array=['9' '8' '7' '6' '5' '4' '3' '2' '1' '0'];
for i=1:patrones
X=PA(i,:);
%se aumenta bias a la capa de entrada
U=tansig(X*W);
%se calcula la capa oculta
U=[1.0,U];
Y=tansig(U*V);
%se calcula la salida
%fprintf('%f %f %f %f %f %f %f %f %f %f %d %d %d %d %d %d %d %d %d
%%d\n',Y(1),Y(2),Y(3),Y(4),Y(5),Y(6),Y(7),Y(8),Y(9),Y(10),hardlim(Y(1)
143

-0.5),hardlim(Y(2)-0.5),hardlim(Y(3)-0.5),hardlim(Y(4)0.5),hardlim(Y(5)-0.5),hardlim(Y(6)-0.5),hardlim(Y(7)0.5),hardlim(Y(8)-0.5),hardlim(Y(9)-0.5),hardlim(Y(10)-0.5));
%fprintf('%f %f %f %f %f %f %f %f %f %f %d %d %d %d %d %d %d %d %d
%d\n',Y(1),Y(2),Y(3),Y(4),Y(5),Y(6),Y(7),Y(8),Y(9),Y(10),hardlim(Y(1)0.5),hardlim(Y(2)-0.5),hardlim(Y(3)-0.5),hardlim(Y(4)0.5),hardlim(Y(5)-0.5),hardlim(Y(6)-0.5),hardlim(Y(7)0.5),hardlim(Y(8)-0.5),hardlim(Y(9)-0.5),hardlim(Y(10)-0.5));
%fprintf('%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f
%f %f %f %f %f %f %f %f %f %f %f %f %f %f %d %d %d %d %d %d %d %d %d
%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d
%d\n',Y(1),Y(2),Y(3),Y(4),Y(5),Y(6),Y(7),Y(8),Y(9),Y(10),Y(11),Y(12),Y
(13),Y(14),Y(15),Y(16),Y(17),Y(18),Y(19),Y(20),Y(21),Y(22),Y(23),Y(24)
,Y(25),Y(26),Y(27),Y(28),Y(29),Y(30),Y(31),Y(32),Y(33),hardlim(Y(1)0.5),hardlim(Y(2)-0.5),hardlim(Y(3)-0.5),hardlim(Y(4)0.5),hardlim(Y(5)-0.5),hardlim(Y(6)-0.5),hardlim(Y(7)0.5),hardlim(Y(8)-0.5),hardlim(Y(9)-0.5),hardlim(Y(10)0.5),hardlim(Y(11)-0.5),hardlim(Y(12)-0.5),hardlim(Y(13)0.5),hardlim(Y(14)-0.5),hardlim(Y(15)-0.5),hardlim(Y(16)0.5),hardlim(Y(17)-0.5),hardlim(Y(18)-0.5),hardlim(Y(19)0.5),hardlim(Y(20)-0.5),hardlim(Y(21)-0.5),hardlim(Y(22)0.5),hardlim(Y(23)-0.5),hardlim(Y(24)-0.5),hardlim(Y(25)0.5),hardlim(Y(26)-0.5),hardlim(Y(27)-0.5),hardlim(Y(28)0.5),hardlim(Y(29)-0.5),hardlim(Y(30)-0.5),hardlim(Y(31)0.5),hardlim(Y(32)-0.5),hardlim(Y(33)-0.5));
%fprintf('%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f
%f %f %f %f %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d
%d %d %d
%d\n',Y(1),Y(2),Y(3),Y(4),Y(5),Y(6),Y(7),Y(8),Y(9),Y(10),Y(11),Y(12),Y
(13),Y(14),Y(15),Y(16),Y(17),Y(18),Y(19),Y(20),Y(21),Y(22),Y(23),hardl
im(Y(1)-0.5),hardlim(Y(2)-0.5),hardlim(Y(3)-0.5),hardlim(Y(4)0.5),hardlim(Y(5)-0.5),hardlim(Y(6)-0.5),hardlim(Y(7)0.5),hardlim(Y(8)-0.5),hardlim(Y(9)-0.5),hardlim(Y(10)0.5),hardlim(Y(11)-0.5),hardlim(Y(12)-0.5),hardlim(Y(13)0.5),hardlim(Y(14)-0.5),hardlim(Y(15)-0.5),hardlim(Y(16)0.5),hardlim(Y(17)-0.5),hardlim(Y(18)-0.5),hardlim(Y(19)0.5),hardlim(Y(20)-0.5),hardlim(Y(21)-0.5),hardlim(Y(22)0.5),hardlim(Y(23)-0.5));
if(B(i,:)~=hardlim(Y-0.5))
[valo,poso]=find(B(i,:)==1);
array(poso)
[valf,posf]=find(hardlim(Y-0.5)==1);
if (posf>0)
array(poso)
else
fprintf('Vacio');
end
cont0=cont0+1;
end
end
fprintf('\n %d patrones no reconocidos',cont0);

6.1- getVariaciones Rutina que permite obtener el numero de


variaciones que hay en los caracteres
function [vecVar]=getVariaciones(X)
%X es la matriz de placa recortada
[F,C]=size(X);
144

inc=fix(F/15);%Tamano de los bloques(Filas x bloque)


Nitem=fix(F/inc);%Numero de iteraciones
cont=1;cont2=1;
%figure();
for k=1:inc:(inc*Nitem)
fprintf('Bloque: %d',cont)
Xc=X(k:(inc*cont),:);%traemos subbloque
figure(); %Imprime bloque a bloque
%subplot(Nitem,1,cont);%Comentamos para visualizar subbloques
imshow(Xc);%Comentamos para visualizar subbloques
title('Subpartes de placa')

%%%Vamos a revisar las variaciones de las frecuencias


[Fc,Cc]=size(Xc);%En esta parte guardamos el numero de filas y
columnas de cada bloque
%figure;
conta=1;
matVal=zeros(Fc,Cc);%generamos la matriz para guardar los valores
que se repiten
%vector variaciones
vecVar=zeros(1,Fc);%Vectores para obtener la Varianza por fila de
cada bloque
vecProm=zeros(1,Fc);
vecVarianza=zeros(1,Fc);
vecMin=zeros(1,Fc);
vecMax=zeros(1,Fc);
%matVal=matVal*-13;
for i=1:Fc
contvm=1;contv=0;contvv=1;flag=0;
Xa=Xc(i,:);%Se toma fila a fila del bloque
%size(Xa)
Xa
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Colocamos el nombre de la funcion que obtiene el numero
de
%repeticiones count_01
c=count_01(Xa);
%c
[vecVar]=getVariacionesOne(Xa);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
subplot(Fc,1,conta) %Descomentamos para visualizar las
divisiones de un bloque
%
imshow(Xa)%Mostramos divisiones de bloque
for j=1:Cc-1
if(Xc(i,j)~=Xc(i,j+1))
contv=contv+1;
matVar(i,contvv)=Xc(i,j+1);
contvv=contvv+1;flag=0;
elseif flag==0% Es igual
matVal(i,j)=Xc(i,j+1);
%Xc(i,j+1)
contvm=contvm+1;
flag=1;
end
end
145

vecVar(i)=contv;
vecVarc(i)=c;
conta=conta+1;
vecProm(i)=sum(Xa)/(Cc*Cc);
vecVarianza(i)=sum(sum((Xa-vecProm(i)).^2))/(Cc*Cc);
vecMin(i)=min(Xa);
vecMax(i)=max(Xa);
%pause
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
vecVar
vecVarc
%vecProm
%vecMin
%vecMax
%vecVarianza
cont=cont+1;
%pause
end

146

También podría gustarte