T E S I S 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
A GRA DECI MI ENT OS
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.
RES UMEN
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.
A B S T RA CT
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.
P REF A C I O
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.
C ONT ENI DO
C A P T U L O 1 Est ado del c onoc i mi ent o
I nt r oduc c i n 1 1.1 FUNDAMENTOS DE PROCESAMI ENTO DE I MGENES 3 1.1.2 DEFI NI CI ONES 3 1.2 VI SI N POR COMPUTADORA 4 1.3 ESTADO DEL CONOCI MI ENTO EN EL RECONOCI MI ENTO DE PLACAS VEHI CULARES 7 1.4 TI PO DE PLACA 7 1.5 MTODO DE LOCALI ZACI N DE LA PLACA 8 1.6 MTODO DE SEGMENTACI N DE LOS SI MBOLOS 9 1.7 MTODO DE RECONOCI MI ENTO 10 CONCLUSI ONES 12 REFERENCI AS 12
C A P T U L O 2 Mar c o Ter i c o
I nt r oduc c i n 16 2.1 ADQUI SI CI N DE LA I MAGEN 17 2.2 REPRESENTACI ON DE LA I MAGEN 17 2.3 PROCESAMI ENTO DE I MAGEN 18 2.4 ANLI SI S Y MEJ ORAMI ENTO DE LA I MAGEN 18 2.5 CLASI FI CACI N DE LA I MAGEN 19 2.6 ANTECEDENTES SOBRE EL PROCESAMI ENTO DE I MGENES 19 2.7 FI LTRADO DE UNA I MAGEN 21 2.7.1 FI LTRO LI NEAL 21 2.7.2 FI LTRO PASA BAJ AS 21 2.7.3 FI LTRO MEDI ANO 22 2.8 TCNI CAS DE PROCESAMI ENTO DI GI TAL DE I MGENES 22 2.8.1 BI NARI ZACI N DE I MGENES Y UMBRALI ZACI ON 22 2.8.2 ETI QUETADO 24 2.8.2.1 VECI NDAD DE UN PI XEL 25 2.8.2.2 CONECTI VI DAD 25 2.8.3 ELI MACI ON DE RUI DO 26 2.8.3.1 TI POS DE RUI DO 26 2.8.4 METODOS DE ELI MI NACI ON DE RUI DO 30 2.8.5 PROCESAMI ENTO ESPACI AL 32 2.8.5.1 OPERACI ONES ARI TMTI CAS, LGI CAS Y TRANSFORMACI ONES GEOMTRI CAS 32 2.9 REDES NEURONALES 32 2.9.1 CONCEPTO 33 2.9.2 ALGORI TMO RETROPROPAGACI N 34 CONCLUSI ONES 35 REFERENCI AS 35
C A P T U L O 3 Si st ema Base
I nt r oduc c i n 37 3.1 SI STEMA BASE 39 3.1.1 ADQUI SI CI N DE LA I MAGEN 39 3.1.2 CONVERSI N A ESCALA DE GRI SES 46 3.1.3 LOCALI ZACI N DE LA PLACA 48 3.1.3.1 CARACTER STI CA DE LA REGI N DE LA PLACA 51 3.1.3.2 ALGORI TMO DE LOCALI ZACI N DE PLACA 52 3.1.4 BI NARI ZACI N 57 3.1.5 SEGMENTACI N DE SI MBOLOS 59 3.1.5.1 ALGORI TMO PARA LA SEGMENTACI N DE SI MBOLOS 60 3.1.6 ELI MI NACI N DE RUI DO 61 3.1.7 RESTAURACI N DE CARACTERES 63 3.2 CODI FI CACI N DE CARACTERES 65 3.3 ENTRENAMI ENTO 69 3.4 EVALUACI N 70 CONCLUSI ONES 70 REFERENCI AS 71
C A P T U L O 4 Resul t ados
I nt r oduc c i n 72 4.1 LOCALI ZACI N DE PLACA 73
4.1.1 RESULTADOS DE LOCALI ZACI N DE PLACA CON I MGENES GI RADAS 74 4.1.2 RESULTADOS DE LOCALI ZACI N DE PLACA CON I MGENES DE FRENTE 77 4.1.3 RESULTADOS DE LOCALI ZACI N DE PLACA CON I MGENES CON DESGASTE FI SI CO 80 4.1.4 RESULTADOS DE LOCALI ZACI N DE PLACA CON I MGENES DE DI FERENTE RESOLUCI N 82 4.1.5 RESULTADOS DE LOCALI ZACI N DE PLACA CON I MGENES DE PLACAS ACTUALES 86 4.1.6 RESULTADOS DE LOCALI ZACI N DE PLACA CON I MGENES FUERA DE LAS CONDI CI ONES ACOTADAS 90 4.1.7 RESULTADOS DE LOCALI ZACI N DE PLACA CON I MGENES EN MALAS CONDI CI ONES 92 4.2 RESULTADOS DE BI NARI ZACI N Y SEGMENTACI N DE CARACTERES 94 4.3 RESULTADOS DE ELI MI NACI N DE RUI DO Y RESTAURACI N DE CARACTERES 96 4.4 RESULTADOS DE CODI FI CACI N Y RECONOCI MI ENTO DE CARACTERES 100 4.5 TRABAJ O A FUTURO 109 CONCLUSI ONES 112 REFERENCI AS 112
C A P T U L O 5 Conc l usi ones general es 114
A N E X O A I mgenes de pl ac as 116
A N E X O B Cdi go f uent e 127
J US T I F I C A CI N
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.
OB J ET I V O
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.
MET A S
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
ES T RUC TURA DE L A T ES I S
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 1 C A P I TUL O 1 ES T A DO DEL C ONOC I MI ENT O
I n t r o d u c c i n
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 2
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 3 1 . 1 F UNDA MENT OS DE P ROC ES A MI ENT O DE I MGENES 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 DEF I NI C I ONES 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 4
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 V I S I N P OR C OMP UT A DORA 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 5 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 6 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 7 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 ES T A DO DEL C ONOC I MI ENT O EN EL REC ONOC I MI ENTO DE P L A C A S V EHI CUL A RES 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 T I P O DE P L A C A 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 8 P A I S T I P O DE P L A C A 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 Tipos de placas de diferentes pases.
1 . 5 MT ODO DE L OC AL I Z A C I N DE L A P L AC A 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 9 (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 MT ODO DE S EGMENT A C I N DE L OS S I MB OL OS 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 10
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 MT ODO DE REC ONOC I MI ENT O 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. Captulo 1 Estado del conocimiento 11 (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 y 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 pre- procesamiento, 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.
Captulo 1 Estado del conocimiento 12
C ONC L US I ONES 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.
REF ERENC I A S [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. Captulo 1 Estado del conocimiento 13
[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.
Captulo 1 Estado del conocimiento 14
[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.
Captulo 1 Estado del conocimiento 15
[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.
Captulo 2 Marco terico
16
C A P I TUL O 2 MA RC O T ERI C O
I n t r o d u c c i n
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. Captulo 2 Marco terico
17
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 A DQUI S I C I ON DE L A I MAGEN 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 REP RES ENT AC I ON DE L A I MA GEN 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]. Captulo 2 Marco terico
18
Figura 2.1 Imagen de arreglo m x n pixeles. El pixel en la x n columna y la y n
fila tiene una intensidad igual a f(x,y). 2 . 3 P ROC ES A MI ENTO DE I MAGEN 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 A N L I S I S Y MEJ ORA MI ENT O DE L A I MA GEN 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. Captulo 2 Marco terico
19
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 CL A S I F I C A CI N DE L A I MA GEN 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 A NTEC EDENT ES S OB RE EL P ROC ES A MI ENT O DE I MGENES 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]. Captulo 2 Marco terico
20
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]. Captulo 2 Marco terico
21
2 . 7 F I L T RA DO DE UNA I MAGEN 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 F I L T RO L I NEAL 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 F I L T RO P A S A B A J A S 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.
Captulo 2 Marco terico
22
Figura 2.2 Coeficientes unitarios.
2 . 7 . 3 F I L T RO MEDI ANO 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 x1, x2, ...xN 2 . 8 T C NI C A S DE P ROC ES A MI ENT O DI GI T A L DE I MGENES , 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]. 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 B I NA RI Z AC I ON DE I MGENES Y UMB RA L I Z A CI ON 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: Captulo 2 Marco terico
23
B(x,y) = (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 0 I(x,y) Th 1 I(x,y) > Th Captulo 2 Marco terico
24
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:
B(x,y) = (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 ETI QUET ADO 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 p1 Proceso 2: Buscar pixeles vecinos de p encontrado, examinando desde arriba-izquierdo hacia abajo-derecha. 1, Vp1 Proceso 3: Para todos los pixeles P usando el concepto de conectividad (4-conectivdad u 8- conectividad), y asigna la misma etiqueta a ellos. k Vp1 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]. , se repite el proceso 2. 1, Si I(x,y) Txy 0, en otro caso Captulo 2 Marco terico
25
2 . 8 . 2 . 1 V ECI NDAD DE UN P I X EL 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 N4 (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) (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. 2 . 8 . 2 . 2 C ONEC TI V I DA D 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 M- conectados 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). Captulo 2 Marco terico
26
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 EL I MA CI ON DE RUI DO 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 TI P OS DE RUI DO 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. Captulo 2 Marco terico
27
(a) (b)
(c) (d)
Figura 2.3 (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 Captulo 2 Marco terico
28
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) b)
c) d) e) Captulo 2 Marco terico
29
f) g) h)
i) j) k) Figura 2.4 Ruido independiente a) 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 y 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]. Captulo 2 Marco terico
30
a) b) c)
d) e) f)
Figura 2.5 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 MET ODOS DE EL I MI NA CI N DE RUI DO 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]. Captulo 2 Marco terico
31
a) b)
c) d)
e) f) Captulo 2 Marco terico
32
g) h) Figura 2.6 Comparacin de los mtodos de eliminacin de ruido.
2 . 8 . 5 P ROC ES A MI ENT O ES P A CI A L 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 OP ERA C I ONES A RI TMTI C A S , L GI C A S Y T RA NS F ORMA C I ONES GEOMT RI C A S 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 NEURONA L ES 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.
Captulo 2 Marco terico
33
2 . 9 . 1 C ONC EP T O 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. Captulo 2 Marco terico
34
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 A L GORI TMO RET ROP ROP A GA C I N 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 (entrada- salida) 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.
Captulo 2 Marco terico
35
C ONC L US I ONES 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. REF ERENC I A S [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. Captulo 2 Marco terico
36
[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.
Captulo 4 Resultados
72
C A P I TUL O 4 RES UL T ADOS
I n t r o d u c c i n
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.
Captulo 4 Resultados
73
4 . 1 L OC AL I Z AC I N DE P L A C A
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.
Altura Distancia Angulo Mnimo 0.7 m. 0.3 m. 0 Mximo 0.9 m. 0.96 m. 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.
Figura 4.1. Resultados de localizacin de la placa vehicular. Imgenes Capturadas 520 Localizadas 479 520 479 0 100 200 300 400 500 600 Imgenes de vehculos Capturadas Localizadas Captulo 4 Resultados
74
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 RES UL T A DOS DE L OC AL I Z AC I N DE P L A C A C ON I M GENES GI RA DA S
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) Captulo 4 Resultados
75
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.
Captulo 4 Resultados
76
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)
Captulo 4 Resultados
77
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 RES UL T ADOS DE L OC A L I Z A CI N DE P L A C A C ON I MGENES DE F RENT E
Captulo 4 Resultados
78
a)
b)
Figura 4.1.2.1. Imagen capturada luz de da. a) Imagen Original b) Imagen de placa localizada.
a) Captulo 4 Resultados
79
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.
Captulo 4 Resultados
80
4 . 1 . 3 RES UL T ADOS DE L OC A L I Z A CI N DE P L A C A C ON I MGENES C ON DES GA S T E F I S I C O
a)
b) Figura 4.1.3.1. Imagen con desgaste fsico. a) Imagen Original b) Imagen de placa localizada.
a) Captulo 4 Resultados
81
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.
Captulo 4 Resultados
82
a)
b) Figura 4.1.3.4. Imagen con desgaste fisico. a) Imagen Original b) Imagen de placa localizada.
4 . 1 . 4 RES UL T ADOS DE L OC A L I Z A CI N DE P L A C A C ON I MGENES DE DI F ERENT E RES OL UC I N
a) Captulo 4 Resultados
83
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.
Captulo 4 Resultados
84
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.
Captulo 4 Resultados
85
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.
Captulo 4 Resultados
86
Algoritmo Porcentaje Sistema Basado TDNNs [3] 90.1% Algoritmo Basado en reglas [4] 84.2% Sistema basado SLGST [5] 90.7% Sistema Basado en Histogramas [6] 84.6% Sistema Basado en Variaciones de intensidad [1] 91.3% Sistema de Reconocimiento de placas basado en NN [7] 91.7% Sistema propuesto 92.1%
4 . 1 . 5 RES UL T ADOS DE L OC A L I Z A CI N DE P L A C A C ON I MGENES DE P L A C A S A CT UAL ES .
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)
Captulo 4 Resultados
87
b)
c)
Figura 4.1.5.1. a) Imagen Original b) Imagen de placa localizada c) binarizacin de imagen.
Captulo 4 Resultados
88
a)
b)
Captulo 4 Resultados
89
c)
Figura 4.1.5.2. a) Imagen Original b) Imagen de placa localizada c) binarizacin de imagen.
a)
Captulo 4 Resultados
90
b)
c)
Figura 4.1.5.3. a) Imagen Original b) Imagen de placa localizada c) binarizacin de imagen.
4 . 1 . 6 RES UL T ADOS DE L OC A L I Z A CI N DE P L A C A C ON I MGENES F UERA DE L A S C ONDI CI ONES A C OT A DAS
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.
Captulo 4 Resultados
91
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.
Captulo 4 Resultados
92
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 RES UL T ADOS DE L OC A L I Z A CI N DE P L A C A C ON I MGENES EN MA L A S C ONDI C I ONES
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.
Captulo 4 Resultados
93
a)
b) Figura 4.1.7.1. Imagen con desgaste fsico. a) Imagen Original b) Resultado de placa localizada.
a) Captulo 4 Resultados
94
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 RES UL T ADOS DE B I NA RI Z A C I N Y S EGMENT AC I N DE C A RA C T ERES
Captulo 4 Resultados
95
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.
Captulo 4 Resultados
96
a)
b) Figura 4.2.3. a) Imagen Binarizada b) Segmentacin de caracteres.
4 . 3 RES UL T ADOS DE EL I MI NAC I N DE RUI DO Y RES T A URAC I N DE C A RA C T ERES
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.
Captulo 4 Resultados
97
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 Captulo 4 Resultados
98
118 x 55
41 x 18
41 x 17
382 x 165
125 x 52
382 x 163
40 x 11
57 x 17 Captulo 4 Resultados
99
42 x 18
41 x 18
42 x 17
37 x 14
402 x 167
58 x 25
121 x 54
31 x 12 Captulo 4 Resultados
100
409 x 194
Tabla 4.3.1. Muestra de resultados de eliminacin de ruido y restauracin en los caracteres.
4 . 4 RES UL T ADOS DE C ODI F I C A C I N Y REC ONOC I MI ENT O DE C A RA C T ERES
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.
Captulo 4 Resultados
101
Figura 4.4.2. Numero 2 dividido en 16 ventanas.
Captulo 4 Resultados
102
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.
Captulo 4 Resultados
103
,
Figura 4.4.5. Letra J dividida en 16 ventanas.
Captulo 4 Resultados
104
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.
Captulo 4 Resultados
105
Figura 4.4.7. Grafica de vector caracterstico de Numero 1.
Captulo 4 Resultados
106
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.
Captulo 4 Resultados
107
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.
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.
P [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] R [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] S [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] T [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] U [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] V [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] W [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] X [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] Y [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] [ok] Z [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 T RA B A J O A F UTURO 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: Captulo 4 Resultados
110
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.
Captulo 4 Resultados
111
a)
b)
c)
Figura 4.5.2. Resultado de imgenes utilizando la transformada de Hough con diferentes ngulos a) 40 b) 35 c) 30.
Captulo 4 Resultados
112
C ONC L US I ONES
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.
REF ERENC I A S
[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.
Captulo 4 Resultados
113
[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
Captulo 5 Conclusiones generales
114
C A P I TUL O 5 C ONC L US I ONES GENERA L ES
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 Captulo 5 Conclusiones generales
115
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.
116
A NEX O A
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 117
342 x 79
226 x 52
39 x 18
62 x 26
86 x 24
31 x 13
39 x 18 118
117 x 55
41 x 12
86 x 24
32 x 14
228 x 101
55 x 24
51 x 17
39 x 18 119
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 120
37 x 16
En el apartado siguiente, se muestran las condiciones en las que se instalo la cmara digital a una pluma de estacionamiento:
121
122
Muestra de placas obtenidas:
123
124
125
126
127
A NEX O B
En esta seccin se muestran los programas que se desarrollaron en el trabajo presente. 1.- loc_pl Localizacion de la placa
cl ear al l ; cl ose al l ; cl c
%%%%Leer i magen %%% X=i mr ead( ' C: \ User s\ j osel ui nux\ Document s\ MATLAB\ pr oyect o\ i pl acas\ i mg270 82009\ DSC00009' , ' j pg' ) ;
%%%%%%Conver t i r i magen de ni vel de gr i s %%%%%%% I =r gb2gr ay( doubl e( X) / 255) ; f i gur e( ) ; i mshow( X) ; f i gur e( ) ; i mshow( I ) ; t i t l e( ' Escal a de gr i ses' ) ; %%%%%%Fi n de l a conver si on de l a i magen a escal a de gr i ses%%%%%%
[ N, M] =si ze( I ) ; i nt _y=f i x( N/ 30) ; b_pl =0; count _pl =0; j =1;
f or y=1: i nt _y: N
V=I ( y, : ) ; ex=ex_mai n( V) ;
i f ~i sempt y( ex) i f b_pl ==1 count _pl =count _pl +1; el se b_pl =1; count _pl =1; end el se i f 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) ; mar gen=i nt _y+10; y_end=cont _val ( p_max) +mar gen; 128
y_st ar t =cont _val ( p_max) - i nt _y*v_max- mar gen;
W=I ( y_st ar t : y_end, : ) ; [ N1, M1] =si ze( W) ; y_med=f i x( N1/ 2) ; V=W( y_med, : ) ; [ x_st ar t , x_end] =ex_mai n2( V) ; W2=W( : , x_st ar t : x_end) ; f i gur e( ) ; i mshow( W) ; %%%Recor t e en Y f i gur e( ) ; i mshow( W2) ; %%%Recor t e en X t i t l e( ' Pl aca l ocal i zada' ) ;
1. 1. - Ex_mai n Rut i na que det er mi na l a posi ci n hor i zont al de l a pl aca
f unct i on ex=ex_mai n( V) [ val 1, pm1] =max( V) ; [ val 2, pm2] =mi n( V) ; i nt =( val 1- val 2) / 12; val =val 1- i nt : - i nt : val 2; count _c=0; b_nl =0; j =1; cont i nuo( j ) =0; f or k=1: l engt h( val ) BV=V>=val ( k) ; cc=ex_l i nea( BV) ; i f cc>=5
i f b_nl ==1 count _c=count _c+1; el se b_nl =1; count _c=1; end
el sei f ( cc<19)
i f b_nl ==1 b_nl =0; cont i nuo( j ) =count _c; cont _v( j ) =k; j =j +1; end count _c=0;
end
end
ex=f i nd( cont i nuo>=1) ;
1. 2. - Ex_l i nea Rut i na par a exami nar que una l nea pase par t e de numer o y l et r as 129
f unct i on C=ex_l i nea( VB) C=count _01( VB) ; N=l engt h( VB) ; v_t h1=f i x( N/ 100) ; f or k=1: N- 1 i f VB( k) ==0 & VB( k+1) ==1 L=f i nd( VB( k+1: N) ==0) ; i f ~i sempt y( L) l b=L( 1) - 1; i f l b<v_t h1 C=C- 1; end k=k+L( 1) ; el se k=N- 1; end end end
1. 3. - count _01 Rut i na que cuent a numer o de cr uces por cer o
f unct i on c=count _01( V) N=l engt h( V) ; c=0; f or k=1: N- 1 i f V( k) ==0 & V( k+1) ==1 c=c+1; end end
2. - gener aBi nl ocal Rut i na que obt i ene l a bi nar i zaci on de l a pl aca l ocal i zada
f unct i on [ I BT] =gener aBi nl ocal ( I )
[ N, M] =si ze( I ) ;
t b=50; omega=0. 005;
N_bl oque=f i x( N/ t b) ; M_bl oque=f i x( M/ t b) ; k=1; f or i =1: N_bl oque f or j =1: M_bl oque st _y=( i - 1) *t b+1; st _x=( j - 1) *t b+1; en_y=i *t b; en_x=j *t b;
W=I ( st _y: en_y, st _x: en_x) ;
%%%%%%%%Cal cul o de pr omedi o y var i anza %%%%%%%%
pr om=sum( sum( W) ) / ( t b*t b) ; var =sum( sum( ( W- pr om) . ^2) ) / ( t b*t b) ;
t h( k) =omega*var +( pr om/ 1. 6) ; 130
WB=W>t h( k) ; I B( st _y: en_y, st _x: en_x) =WB; end end
pr om_t =sum( sum( I ) ) / ( N*M) ; var _t =sum( sum( ( I - pr om_t ) . ^2) ) / ( N*M) ;
t h_t =omega*var _t +pr om_t ; I BT=I >t h_t ;
f i gur e; subpl ot ( 1, 3, 1) ; i mshow( I ) ; subpl ot ( 1, 3, 2) ; i mshow( I B) ; subpl ot ( 1, 3, 3) ; i mshow( I BT) ;
3. - Rut i na que Segment a l os car act er es [ I BT] =gener aBi nl ocal ( I ) ;
[ F, C] =si ze( I BT) ; %vecVal i bt =ones( F, 2) *- 1; count Ri bt =vecVal i bt ;
[ Xcp] =get Al t ur a( I BT, 0) ; %puede buscar se con 0 [ Xcpt ] =get Al t ur a( Xcp' , 0) ; Xc=Xcpt ' ; %I magen r ecor t ada
%Vamos a dej ar dos col umnas una par a 0 y 1 count M=1; count Ms=1; count Mf =1; xS=0; xF=xS; xSs=xS; xFs=xS; f or i =1: F c=count _01( I BT( i , : ) ) ; Veccpr om( i ) =c; end pr om1=f l oor ( ( cei l ( sum( Veccpr om) / F) ) *0. 6) ; pr om2=f l oor ( ( ( cei l ( sum( Veccpr om) / F) / 2) *0. 6) +( sum( Veccpr om) / F) ) ; f or i =1: F [ vecVal i bt , count Ri bt ] =get Val yRep( I BT( i , : ) ) ;
%1 0 [ vecVar ] =get Var i aci onesOne( I BT( i , : ) ) ; c=count _01( I BT( i , : ) ) ; %Al menos deben exi st i r 1 y 0 %Debe haber ms 1 bl ancos que 0 negr os %Necesi t o ver el numer o de combi naci ones i f i == 83 | | i ==185 df g=1; end i f ( l engt h( vecVal i bt ) >1) i f vecVal i bt ( 1) ==1 vecVal i bt Tmp=vecVal i bt ; count Ri bt Tmp=count Ri bt ; el se vecVal i bt Tmp( 1) =1; vecVal i bt Tmp( 2) =0; count Ri bt Tmp( 1) =count Ri bt ( 2) ; count Ri bt Tmp( 2) =count Ri bt ( 1) ; end i f ( count Ri bt Tmp( 1) >count Ri bt Tmp( 2) ) pr om=( count Ri bt Tmp( 1) *25) / 100; pr omC=( C*75) / 100; 131
pr omCs=( C*25) / 100;
%El bl anco debe ser mayor que el negr o y l as var i aci ones deben ser %6 al menos %Necesi t o compar ar el moment o act ual y uno ant er i or vecMai n( count M, : ) =[ i count Ri bt Tmp pr ompr omC pr omCs vecVar c] ; count M=count M+1; i f count Ri bt Tmp( 2) >=pr om&& count Ms==1 && count Mf ==1 && c>=pr om1 && c<pr om2 && count Ri bt Tmp( 1) >=pr omC xS=i ; count Ms=0; el sei f count Ri bt Tmp( 2) <=pr om&& count Mf ==1 && count Ms==0 && ( c<pr om1 | | c>pr om2) xF=i ; count Mf =0; end end end end %Me di cuent a que r eal i zando ot r as pr uebas t en a que r ecor r er el pr i mer y %segundo moment o [ Fm, Cm] =si ze( vecMai n) ; count Ms=1; count Mf =1; i f xS==0 && xF==0 %No se hayo val or , en vecMai n t enemos al menos l as posi ci ones que se est an buscando xS=vecMai n( 1, 1) ; xSs=xS; xF=vecMai n( Fm, 1) ; xFs=xF; el se f or j =1: Fm- 1 i f vecMai n( j , 3) >=vecMai n( j , 4) && count Ms==1 && count Mf ==1 && vecMai n( j , 8) >=pr om1 && vecMai n( j , 8) <pr om2 && vecMai n( j +1, 8) >=pr om1 && vecMai n( j +1, 8) <pr om2 && vecMai n( j , 2) >=vecMai n( j , 5) xSs=vecMai n( j , 1) ; count Ms=0; el sei f vecMai n( j , 3) <=vecMai n( j , 4) && count Mf ==1 && count Ms==0 && ( vecMai n( j , 8) <pr om1 | | vecMai n( j , 8) >pr om2) xFs=vecMai n( j , 1) ; count Mf =0; end end end I BTsX=I BT( xS: xF, : ) ; i f xSs==0 && xFs==0 %No se hayo val or , en vecMai n t enemos al menos l as posi ci ones que se est n buscando xSs=vecMai n( 1, 1) ; xFs=xSs; end I BTsF=I BT( xSs: xFs, : ) ; f i gur e( ) ; i mshow( I BT( xS: xF, : ) ) t i t l e( ' Cor t e en Xs' ) ;
f i gur e( ) ; i mshow( I BT( xSs: xFs, : ) ) t i t l e( ' Cor t e en XSs' ) ;
%Pr ocedemos al cor t e en Y I BTsFy=I BTsF' ; f i gur e( ) ; i mshow( I BTsFy) t i t l e( ' I magen I nver sa' ) ;
f or i =1: Ft [ vecVal i bt sFy, count Ri bt sFy] =get Val yRep( I BTsFy( i , : ) ) ;
[ vecVar sFy] =get Var i aci onesOne( I BTsFy( i , : ) ) ; c=count _01( I BTsFy( i , : ) ) ;
pr omN=cei l ( ( 5*Ct ) / 100) ; i f ( l engt h( vecVal i bt sFy) >1) i f vecVal i bt sFy( 1) ==1 vecVal i bt TmpsFy=vecVal i bt sFy; count Ri bt TmpsFy=count Ri bt sFy; el se vecVal i bt TmpsFy( 1) =1; vecVal i bt TmpsFy( 2) =0; count Ri bt TmpsFy( 1) =count Ri bt sFy( 2) ; count Ri bt TmpsFy( 2) =count Ri bt sFy( 1) ; end i f ( count Ri bt TmpsFy( 1) >count Ri bt TmpsFy( 2) ) i f count Ms==1 && c>=1 xS=i ; count Ms=0; count Mf =1;
end end
%Obt engo el 5%de l a l ongi t ud de l a l nea, par a ver si ya empi eza %el bl anco o el negr o el sei f count Ms==0 && count Mf ==1 && c<=1 xFa=i ; count Mf =0; count Ms=1; f i gur e( ) ; i mshow( I BTsFy( xS: xFa, : ) ) ; %t i t l e( ' char er ' ) ; %t enemos l os car act er es r ecor t ados mat Nc( count Nc, : ) =[ xS xFa] ; %Guar damos sol o l os ndi ces par a hacer r ef er enci a a l os car act er es count Nc=count Nc+1; el sei f count Ri bt sFy>=pr omN && count Mf ==1; xF=i ; end end %Vol vemos a qui t ar bl ancos de nmer os y car act er es [ FNc, CNc] =si ze( mat Nc) ; count Fi g=1; f or i =1: FNc %subpl ot ( FNc*2, 2, count Fi g) ; %i mshow( I BTsFy( mat Nc( i , 1) : mat Nc( i , 2) , : ) ) ; mat C=I BTsFy( mat Nc( i , 1) : mat Nc( i , 2) , : ) ; mat C=( mat C) ' ; %i mshow( mat C) ; [ FNcr , CNcr ] =si ze( mat C) ; %La hacemos t r anspuest a de nuevo par a r ecor t ar l os bl ancos %f i gur e( ) ; %xx=cod_mai n( mat C) ; %i mshow( mat C) ; bS=1; bF=1; f or j =1: FNcr - 2 [ vecVal i bt sFy, count Ri bt sFy] =get Val yRep( mat C( j , : ) ) ;
[ vecVar sFy] =get Var i aci onesOne( mat C( j , : ) ) ; 133
c=count _01( mat C( j , : ) ) ; c1=count _01( mat C( j +1, : ) ) ; c2=count _01( mat C( j +2, : ) ) ; i f ( l engt h( vecVal i bt sFy) >1) && ( bS==1) xS=j ; bS=0; bF=1; el sei f bS==0 && c>=1 && c1==0 && c2==0 xF=j ; bF=0; end end %count Fi g=1+count Fi g; % subpl ot ( FNc, 2, i ) ; % i mshow( mat C( xS: xF, : ) ) ; %mat C=( I BTsFy( mat Nc( i , 1) : mat Nc( i , 2) , : ) ) ' ; end
3. 1- get Al t ur a Rut i na que per mi t e obt ener l a al t ur a de un car act er
f unct i on [ XcPr oc] =get Al t ur a( Xc, r b) [ Fp, Cp] =si ze( Xc) ; mat PosL=zer os( Fp, Cp) ; %[ ap, bp] =f i nd( mat Pos==1) ; cont h=1; cont vech=1; f or i =1: Fp i f ( i >1) %Al menos ya t i ene val or es el vect or b %al menos ya hay una posi ci on f l agh=1; cont w=1; i f ( l engt h( b) >0) whi l e ( cont w<=l engt h( b) && f l agh==1) i f ( Xc( i , b( cont w) ) ==r b) cont h=cont h+1; f l agh=0; end cont w=cont w+1; end el se f l agpos=0; end
%si l a bander a se quedo act i vada ent onces r eset eo el cont ador de l a %al t ur a %Si no ent r a ni nguna vez guar damos al menos una vez l a al t ur a
i f ( f l agh==1) vech( cont vech) =cont h; cont vech=cont vech+1; cont h=1; el sei f ( cont h>1 && i ==Fp) vech( cont vech) =cont h; end el se%sol o hay una f i l a en t odo el numer o vech( cont vech) =cont h; end
[ a, b] =f i nd( Xc( i , : ) ==r b) ; f or j =1: l engt h( a) 134
XcL( i , b( j ) ) =b( j ) ; %Obengo l as posi ci ones val i das par a det er mi nar l a al t ur a de un numer o end vect h( i ) =cont h; end [ mh ph] =max( vect h) ; %mh %ph i ni c=ph- mh; i ni c=i ni c+1; i f i ni c<=0 i ni c=1; end XcPr oc=Xc( i ni c: ph, : ) ;
3. 2- get Val yRep Rut i na que per mi t e obt ener l os val or es r epet i dos
f unct i on [ vecVal , count R] =get Val yRep( Mat ) [ F, C] =si ze( Mat ) ; f or j =1: F f or i =1: C f l agS=1; %Act i vo bander a par a guar dar val or i f ( j ==1 && i ==1) vecVal ( 1) =Mat ( j , i ) ; el se f or l =1: l engt h( vecVal ) i f ( vecVal ( l ) ==Mat ( j , i ) ) f l agS=0; %Desact i vo bander a par a guar dar end end %Ver i f i co si est a pr endi da l a bander a par a guar dar nuevo val or i f f l agS==1 vecVal ( l engt h( vecVal ) +1) =Mat ( j , i ) ; end end end end
%buscamos cuant as veces se r epi t i el val or f or i =1: l engt h( vecVal ) count R( i ) =l engt h( f i nd( Mat ==vecVal ( i ) ) ) ; end
3. 3- get Var i aci onesOne Rut i na que per mi t e obt ener l as veces que hay var i aci ones en l os pi xel es negr os
f unct i on [ vecVar ] =get Var i aci onesOne( X) C=l engt h( X) ; cont =1; cont 2=1; cont a=1; mat Val =zer os( 1, C) ; %gener amos l a mat r i z par a guar dar l os val or es que se r epi t en cont vm=1; cont v=0; cont vv=1; f l ag=0; f or j =1: C- 1 i f ( X( j ) ~=X( j +1) ) cont v=cont v+1; 135
mat Var ( cont vv) =X( j +1) ; cont vv=cont vv+1; f l ag=0; el sei f f l ag==0%Es i gual mat Val ( j ) =X( j +1) ; cont vm=cont vm+1; f l ag=1; end end vecVar =cont v; end
4. - t r yVar Rut i na que per mi t e el i mi nar el r ui do sal y pi mi ent a en l os car act er es
l oad dos; Xc=dos' ; f i gur e( ) ; i mshow( Xc) ;
[ Xcp] =get Al t ur a( Xc, 0) ; %puede buscar se con 0 [ Xcpt ] =get Al t ur a( Xcp' , 0) ; Xc=Xcpt ' ; %I magen r ecor t ada f i gur e( ) ; i mshow( Xc) ; [ Fc, Cc] =si ze( Xc) ;
[ Fval , Cval ] =si ze( mat Val ) ; ver i f yVal =mat Val ; mat Opt =zer os( Fval , Cval ) ; f or k=1: Fv sumv=0;
f or i =1: Cv f l agval =1; auxsum=1; auxsum=auxsum+sumv;
i f auxsum<=Cval sumv=sumv+vecLongmay( k, i ) ;
i f ver i f yVal ( k, auxsum) ==0 f l agval =0; end
i f f l agval ==0 f or j =auxsum: sumv mat Val ( k, j ) =vecLongmay( k, i ) ; end el se f or j =auxsum: sumv mat Val ( k, j ) =1; end
end end
end 136
%Vamos a obt ener el mayor [ val , pos] =max( mat Val ( k, : ) ) ; pr om=sum( mat Val ( k, : ) ) ; pr om=pr om/ Cval ; ol g=pr om*( 1/ 8) ; mat Opt ( k, : ) =mat Val ( k, : ) <=( pr om) ; end f i gur e( ) ; i mshow( mat Opt ) ;
4. 1- bar r i do Rut i na que per mi t e obt ener l a l ongi t ud de l os anchos de pi xel es negr os
f unct i on [ vecLong vecLongzer mat Var ] =bar r i do( Xc) [ Fc, Cc] =si ze( Xc) ; mat Val =ones( Fc, Cc) ; %gener amos l a mat r i z par a guar dar l os val or es que se r epi t en mat Val =mat Val *- 13; f or i =1: Fc cont v=0; cont vv=1; f l ag=0; cont di f =0; f l agvar =0; f or j =1: Cc- 1 f l agd=0; %buscamos sol o l os 0 %Xc i f ( Xc( i , j ) ~=Xc( i , j +1) ) cont v=cont v+1;
%Guar damos l a pr i mer posi ci n i f f l agvar ==0 mat Var ( i , cont vv) =Xc( i , j ) ; f l agvar =1; el se mat Var ( i , cont vv) =Xc( i , j ) ; end
cont vv=cont vv+1; i f f l ag==1 cont vm=cont vm+1; %vol vemos a i ncr ement ar l o por l a ul t i ma vez que l e f al t o uno el se%r eset eamos de nuevo el cont ador cont vm=1; end vecLong( i , cont v) =cont vm; f l ag=0; f l agd=1; cont di f =cont di f +1;
el sei f f l ag==0%Es i gual %en pr i mer i t er aci n se act i va f l ag mat Val ( i , j ) =Xc( i , j +1) ; cont vm=1; f l ag=1; el sei f f l ag==1%si gue t eni endo el mi smo val or i ncr ement o su l ongi t ud cont vm=cont vm+1; end
%Vamos a val i dar que haya cer os y al menos se han dos par a guar dar %sus posi ci ones 137
i f Xc( i , j ) ==0 && cont vm>1 mat Pos( i , j - 1) =1; mat Pos( i , j ) =1; end %Ver i f i camos si son 0s par a guar dar l as l ongi t udes i f ( f l agd==1 && Xc( i , j ) ==0 && cont vm>1) vecLongzer ( i , cont di f +1) =cont vm; end end i f f l ag==1%par a l a ul t i ma posi ci n ver i f i camos su l ongi t ud cont vm=cont vm+1; %vol vemos a i ncr ement ar l o por l a ul t i ma vez q l e f al t o uno el se%r eset eamos de nuevo el cont ador cont vm=1; end %Necesi t o ver i f i car si en l a ul t i ma posi ci n de l a mat r i z hay un 0 par a %cambi ar di cha posi ci n a 1 i f ( Xc( i , j +1) ==0 && cont vm>0 && f l ag==1) %se pone mayor a 0 por que con uno ms el ul t i mo ya son l as dos posi ci ones mat Pos( i , j +1) =1; mat Pos( i , j ) =1; vecLongzer ( i , j ) =cont vm; el se vecLongzer ( i , j ) =0; end vecLong( i , cont v+1) =cont vm; vecVar ( i ) =cont v; cont vm=cont vm+1; vecTam( i ) =cont vm; mat Var ( i , cont vv) =Xc( i , j +1) ; end
4. 2- r el l ena Rut i na que per mi t e l a r est aur aci n de l os car act er es
f unct i on [ Xc] =r el l ena( Xc, mat Var , vecLong, vecLongzer ) [ Fb, Cb] =si ze( Xc) ;
pr om=sum( sum( vecLongzer ) ) / Fb; pr om=pr om*0. 25; [ Fz, Cz] =si ze( mat Var ) ; pr omt =( Fz/ 2) *0. 70; f or k=1: Fz f l ag=0; f l agu=0; cont =0; cont u=0; pr omz=( max( vecLongzer ( k, : ) ) ) *0. 25;
f or j =1: Cz i f ( mat Var ( k, j ) ==0 && f l ag==0) %0 1 0 negr o bl anco negr o cont =cont +1; f l ag=1; el sei f ( mat Var ( k, j ) ==1 && f l ag==1) cont =cont +1; f l ag=0; end
i f ( cont ==3) %Se cumpl i l a combi naci n sumn=vecLong( k, j - 2) +vecLong( k, j ) ; sumnt =sum( vecLongzer ( k, : ) ) ; t mpsumnt =( sum( vecLong( k, : ) ) - sumnt ) *0. 6; 138
vechn=f i nd( vecLongzer ( k, : ) ~=0) ; %Ver i f i co que haya ms de un negr o Lvechn=l engt h( vechn) ; t maxz=r ound( ( max( vecLongzer ( k, : ) ) ) *0. 22) ;
f or i =1: j - 2 sump=sump+vecLong( k, i ) ; end f or h=( sump+1) : ( sump+vecLong( k, j - 1) ) Xc( k, h) =0; end
end
end
i f ( mat Var ( k, j ) ==1 && f l agu==0) %1 0 1 bl anco negr o bl anco cont u=cont u+1; f l agu=1; el sei f ( mat Var ( k, j ) ==0 && f l agu==1) cont u=cont u+1; f l agu=0; end
i f ( cont u==3) %Se cumpl i o l a combi naci n
Mvecz=max( vecLongzer ( k, : ) ) ; f act z=f l oor ( ( Mvecz/ 100) *Mvecz) ; pr omnm=( Mvecz) *0. 56; t mpsumnt =sum( vecLongzer ( k, : ) ) ; t mpsumnt n=( sum( vecLong( k, : ) ) - t mpsumnt ) *0. 6; t ot o=( sum( vecLongzer ( k, : ) ) ) ; t ot f =sum( vecLong( k, : ) ) ; t ot t =t ot f *0. 75; sumnt =t mpsumnt *0. 60; %. 60 sumnt c=t mpsumnt *0. 15; vechn=f i nd( vecLongzer ( k, : ) ~=0) ; %Ver i f i co que haya ms de un negr o Lvechn=l engt h( vechn) ;
i f k>1 sumnt mu=sum( vecLongzer ( k- 1, : ) ) ; el se sumnt mu=0; end
cont u=1; sumpu=0;
139
i f ( ( ( vecLong( k, j - 1) <= vecLong( k, j - 2) && vecLong( k, j - 1) <= vecLong( k, j ) ) | | ( Lvechn > 1 && ( vecLong( k, j - 1) <sumnt ) && t mpsumnt >sumnt mu && vecLong( k, j - 1) <sumnt c && t ot o<=t ot t && vecLong( k, j ) >2) ) && ( vecLong( k, j - 1) <pr om&& vecLong( k, j - 1) <pr omnm) && vecLong( k, j - 1) <f act z) f or i =1: j - 2 sumpu=sumpu+vecLong( k, i ) ; end f or h=( sumpu+1) : ( sumpu+vecLong( k, j - 1) ) Xc( k, h) =1; end end
end
end end
5- f segment a Rut i na que per mi t e l a segment aci n de l os car act er es
f unct i on [ mM] =f segment a( Xc)
f i gur e i mshow( Xc) N=2; %Numer o de vent anas maest r eas [ mat Posw] =di vi de( N, Xc) ; %obt i ene l os ndi ces par a l as vent anas n=2; %Numer o de vent anas hi j as %f i gur e( ) ; %f or mamos l a mat r i z maest r a sN=( N*n) *N*n; mM=zer os( 1, sN) ; x=1; cont =1; cont v=1; cont b=0; f or k=1: N y=1; f or j =1: N %subpl ot ( N, N, cont ) f i gur e( ) ; i mshow( Xc( ( x: mat Posw( 1, k) ) , ( y: mat Posw( 2, j ) ) ) ) t mpXc=Xc( ( x: mat Posw( 1, k) ) , ( y: mat Posw( 2, j ) ) ) ; %Nueva vent ana hi j a [ mat Posws] =di vi de( n, t mpXc) ; %obt i ene l os ndi ces par a l as vent anas [ mat Car ac] =get Mat di v( n, mat Posws, t mpXc) ; %De acuer do a l os ndi ces obt eni dos asi gna l as nuevas vent anas; obt i ene el vect or ( en mat r i z) car act er st i co [ F, C] =si ze( mat Car ac) ; f or h=1: F f or l =1: C mM( ( ( cont v) +cont b) ) =mat Car ac( h, l ) ; cont v=cont v+1; end cont v=cont v+2; end cont v=1; cont b=cont b+2; i f ( ( cont b*2) ==( sN/ 2) ) cont b=cont b*2; 140
end
vecCar ac=mat 2vec( mat Car ac) ; %guar damos en Vect or l os val or es de subvent anas mat Def Car ac( cont , : ) =vecCar ac; y=mat Posw( 2, j ) ; cont =cont +1; end x=mat Posw( 1, k) ; end %or den nor mal vecDef Car ac=mat 2vec( mat Def Car ac) ; %Est e vect or es par a el segundo or den mM
5. 1- di vi de Rut i na que per mi t e obt ener el ndi ce de l os car act er es par a l a di vi si n de vent anas
f unct i on [ mat Posw] =di vi de( f , Xc)
[ F, C] =si ze( Xc) ; X=f i x( F*( 1/ f ) ) ; Y=f i x( C*( 1/ f ) ) ;
f or k=1: f mat Posw( 1, k) =X*k; %I ndi ces par a Fi l as mat Posw( 2, k) =Y*k; %I ndi ces par a Col umnas end
6. - backpr opagat i on Rut i na que per mi t e el ent r enami ent o de l a RNA Backpr opagat i on
%%%%%%%%%%%%%%%% RED BACKPROPAGATI ON %%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% ENTRENAMI ENTO %%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %SE I NI CI ALI ZAN LOS VALORES cl ear al l cl ose al l cl c
opci on=0; %VALORES DE ENTRADA N=16; %neur onas de ent r ada si n cont ar bi as %L=10; %neur onas de l a capa ocul t a si n cont ar bi as L=14; M=33; %Neur onas de sal i da %M=23; %M=10; %I NI CI ALI ZACI ON DE LA MATRI Z DE PESOS WY V W=0. 2*r and( N+1, L) - . 1; V=0. 2*r and( L+1, M) - . 1;
%CARGA ARCHI VO CON DATOS DE ENTRADA l oad Mdt o; A=Mdt o;
%l oad Mdt oabc; %A=Mdt oabc; 141
%l oad Mdt onum; %A=Mdt onum;
%CARGA ARCHI VO CON DATOS DESEADOS l oad sal i dasm. dat ; B=sal i dasm;
%l oad sal i dasabc. dat ; %B=sal i dasabc;
%l oad sal i dasnum. dat ; %B=sal i dasnum;
al f a=0. 00500; %par a est e caso mi u mi n=0. 1; %umbr al def i ni do i t er =100000; %maxi mo numer o de i t er aci ones par a que conver ga l a r ed [ pat r ones, i ] =si ze( A) ;
%SE FORMA MATRI Z DE ENTRADA
PA=[ ] ; f or g=1: pat r ones PA( g, : ) =[ 1, A( g, : ) ] ; %se f or ma l a mat r i z de ent r ada par a f or mar el epoch aument ado el bi as end
%I NI CI A ENTRENAMI ENTO cont =0; Z=0; f or k=1: i t er cont =cont +1; %numer o de epochs er r or =0; f or i =1: pat r ones X=PA( i , : ) ; %X es l a capa ent r ada U=( X*W) ; %U es l a capa ocul t a U=t ansi g( U) ; %se ocupa t ansi g como f unci on no l i neal U=[ 1. 0, U] ; %se agr aga el bi as Y=t ansi g( U*V) ; %Y es l a capa de sal i da E=B( i , : ) - Y; %se cal cul a el er r or %adapt aci on del t a1=E*0. 5. *( 1- ( Y. *Y) ) ; V=V+al f a*U' *del t a1;
a=del t a1*V' ; del t a2=a. *( 0. 5. *( 1- ( U. *U) ) ) ; del t a2=del t a2( 2: l engt h( del t a2) ) ; %se l e qui t a el bi as de U par a cal cul ar W W=W+al f a*X' *del t a2;
er r or =er r or +E*E' ; end er r or =er r or / M; %f pr i nt f ( 1, ' Er r =%4. 9f ==> %d\ n' , er r or , k) ; J ( k) =er r or ; i f er r or <mi n 142
br eak; end %k
end pl ot ( J ) ; save bp_mem_pesos3 WV; %se t i ene que cambi ar el nombr e de ar chi vo par a ot r a apl i caci on %*************************************************** %PRUEBA DE LA RED PARA LOS PATRONES %**********************************************+*** cont 0=0; f or i =1: pat r ones X=PA( i , : ) ; %se aument a bi as a l a capa de ent r ada U=t ansi g( X*W) ; %se cal cul a l a capa ocul t a U=[ 1. 0, U] ; Y=t ansi g( U*V) ; %se cal cul a l a sal i da %f pr i nt f ( ' %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) , har dl i m( Y( 1) - 0. 5) , har dl i m( Y( 2) - 0. 5) , har dl i m( Y( 3) - 0. 5) , har dl i m( Y( 4) - 0. 5) , har dl i m( Y( 5) - 0. 5) , har dl i m( Y( 6) - 0. 5) , har dl i m( Y( 7) - 0. 5) , har dl i m( Y( 8) - 0. 5) , har dl i m( Y( 9) - 0. 5) , har dl i m( Y( 10) - 0. 5) ) ; f pr i nt 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 %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) , har dl i m( Y( 1) - 0. 5) , har dl i m( Y( 2) - 0. 5) , har dl i m( Y( 3) - 0. 5) , har dl i m( Y( 4) - 0. 5) , har dl i m( Y( 5) - 0. 5) , har dl i m( Y( 6) - 0. 5) , har dl i m( Y( 7) - 0. 5) , har dl i m( Y( 8) - 0. 5) , har dl i m( Y( 9) - 0. 5) , har dl i m( Y( 10) - 0. 5) , har dl i m( Y( 11) - 0. 5) , har dl i m( Y( 12) - 0. 5) , har dl i m( Y( 13) - 0. 5) , har dl i m( Y( 14) - 0. 5) , har dl i m( Y( 15) - 0. 5) , har dl i m( Y( 16) - 0. 5) , har dl i m( Y( 17) - 0. 5) , har dl i m( Y( 18) - 0. 5) , har dl i m( Y( 19) - 0. 5) , har dl i m( Y( 20) - 0. 5) , har dl i m( Y( 21) - 0. 5) , har dl i m( Y( 22) - 0. 5) , har dl i m( Y( 23) - 0. 5) , har dl i m( Y( 24) - 0. 5) , har dl i m( Y( 25) - 0. 5) , har dl i m( Y( 26) - 0. 5) , har dl i m( Y( 27) - 0. 5) , har dl i m( Y( 28) - 0. 5) , har dl i m( Y( 29) - 0. 5) , har dl i m( Y( 30) - 0. 5) , har dl i m( Y( 31) - 0. 5) , har dl i m( Y( 32) - 0. 5) , har dl i m( Y( 33) - 0. 5) ) ; %f pr i nt 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\ 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) , har dl i m( Y( 1) - 0. 5) , har dl i m( Y( 2) - 0. 5) , har dl i m( Y( 3) - 0. 5) , har dl i m( Y( 4) - 0. 5) , har dl i m( Y( 5) - 0. 5) , har dl i m( Y( 6) - 0. 5) , har dl i m( Y( 7) - 0. 5) , har dl i m( Y( 8) - 0. 5) , har dl i m( Y( 9) - 0. 5) , har dl i m( Y( 10) - 0. 5) , har dl i m( Y( 11) - 0. 5) , har dl i m( Y( 12) - 0. 5) , har dl i m( Y( 13) - 0. 5) , har dl i m( Y( 14) - 0. 5) , har dl i m( Y( 15) - 0. 5) , har dl i m( Y( 16) - 0. 5) , har dl i m( Y( 17) - 0. 5) , har dl i m( Y( 18) - 0. 5) , har dl i m( Y( 19) - 0. 5) , har dl i m( Y( 20) - 0. 5) , har dl i m( Y( 21) - 0. 5) , har dl i m( Y( 22) - 0. 5) , har dl i m( Y( 23) - 0. 5) ) ; i f ( B( i , : ) ~=har dl i m( Y- 0. 5) ) cont 0=cont 0+1; end end f pr i nt f ( ' \ n %d pat r ones no r econoci dos' , cont 0) ;
6. 1- eval _backpr opagat i on Rut i na que per mi t e l a eval uaci n de l os car act er es 143
cl ear al l cl ose al l cl c %pat r ones=6; pat r ones=230; %pat r ones=460; %pat r ones=660; %pat r ones=330; %pat r ones=100;
%l oad bp_mem_pesosabc; l oad bp_mem_pesos3; %No modi f i car %l oad bp_mem_pesosnum;
l oad Mdt ot r y; A=Mdt ot r y;
%%Modi f i car %l oad Mdt oabct r y; %Car gar mat r i z con vect or es car act er i st i cos por car act er %A=Mdt oabct r y;
%l oad Mdt onumt r y; %A=Mdt onumt r y;
%%Modi f i car %l oad sal i dasabct r y. dat ; %Car gar mat r i z de sal i das ( ar chi vo de bl oc de not as) %B=sal i dasabct r y;
%l oad sal i dasnumt r y. dat ; %B=sal i dasnumt r y;
l oad sal i dasmt r y. dat ; B=sal i dasmt r y;
PA=[ ] ; f or g=1: pat r ones PA( g, : ) =[ 1, A( g, : ) ] ; %se f or ma l a mat r i z de ent r ada par a f or mar el epoch aument ado el bi as end
cont 0=0; ar r ay=[ ' 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' ] ; %ar r ay=[ ' A' ' B' ' C' ' D' ' E' ' F' ' G' ' H' ' J ' ' K' ' L' ' M' ' N' ' P' ' R' ' S' ' T' ' U' ' V' ' W' ' X' ' Y' ' Z' ] ; %ar r ay=[ ' 9' ' 8' ' 7' ' 6' ' 5' ' 4' ' 3' ' 2' ' 1' ' 0' ] ; f or i =1: pat r ones X=PA( i , : ) ; %se aument a bi as a l a capa de ent r ada U=t ansi g( X*W) ; %se cal cul a l a capa ocul t a U=[ 1. 0, U] ; Y=t ansi g( U*V) ; %se cal cul a l a sal i da %f pr i nt f ( ' %f %f %f %f %f %f %f %f %f %f %d %d %d %d %d %d %d %d %d
- 0. 5) , har dl i m( Y( 2) - 0. 5) , har dl i m( Y( 3) - 0. 5) , har dl i m( Y( 4) - 0. 5) , har dl i m( Y( 5) - 0. 5) , har dl i m( Y( 6) - 0. 5) , har dl i m( Y( 7) - 0. 5) , har dl i m( Y( 8) - 0. 5) , har dl i m( Y( 9) - 0. 5) , har dl i m( Y( 10) - 0. 5) ) ; %f pr i nt f ( ' %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) , har dl i m( Y( 1) - 0. 5) , har dl i m( Y( 2) - 0. 5) , har dl i m( Y( 3) - 0. 5) , har dl i m( Y( 4) - 0. 5) , har dl i m( Y( 5) - 0. 5) , har dl i m( Y( 6) - 0. 5) , har dl i m( Y( 7) - 0. 5) , har dl i m( Y( 8) - 0. 5) , har dl i m( Y( 9) - 0. 5) , har dl i m( Y( 10) - 0. 5) ) ; %f pr i nt 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 %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) , har dl i m( Y( 1) - 0. 5) , har dl i m( Y( 2) - 0. 5) , har dl i m( Y( 3) - 0. 5) , har dl i m( Y( 4) - 0. 5) , har dl i m( Y( 5) - 0. 5) , har dl i m( Y( 6) - 0. 5) , har dl i m( Y( 7) - 0. 5) , har dl i m( Y( 8) - 0. 5) , har dl i m( Y( 9) - 0. 5) , har dl i m( Y( 10) - 0. 5) , har dl i m( Y( 11) - 0. 5) , har dl i m( Y( 12) - 0. 5) , har dl i m( Y( 13) - 0. 5) , har dl i m( Y( 14) - 0. 5) , har dl i m( Y( 15) - 0. 5) , har dl i m( Y( 16) - 0. 5) , har dl i m( Y( 17) - 0. 5) , har dl i m( Y( 18) - 0. 5) , har dl i m( Y( 19) - 0. 5) , har dl i m( Y( 20) - 0. 5) , har dl i m( Y( 21) - 0. 5) , har dl i m( Y( 22) - 0. 5) , har dl i m( Y( 23) - 0. 5) , har dl i m( Y( 24) - 0. 5) , har dl i m( Y( 25) - 0. 5) , har dl i m( Y( 26) - 0. 5) , har dl i m( Y( 27) - 0. 5) , har dl i m( Y( 28) - 0. 5) , har dl i m( Y( 29) - 0. 5) , har dl i m( Y( 30) - 0. 5) , har dl i m( Y( 31) - 0. 5) , har dl i m( Y( 32) - 0. 5) , har dl i m( Y( 33) - 0. 5) ) ; %f pr i nt 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\ 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) , har dl i m( Y( 1) - 0. 5) , har dl i m( Y( 2) - 0. 5) , har dl i m( Y( 3) - 0. 5) , har dl i m( Y( 4) - 0. 5) , har dl i m( Y( 5) - 0. 5) , har dl i m( Y( 6) - 0. 5) , har dl i m( Y( 7) - 0. 5) , har dl i m( Y( 8) - 0. 5) , har dl i m( Y( 9) - 0. 5) , har dl i m( Y( 10) - 0. 5) , har dl i m( Y( 11) - 0. 5) , har dl i m( Y( 12) - 0. 5) , har dl i m( Y( 13) - 0. 5) , har dl i m( Y( 14) - 0. 5) , har dl i m( Y( 15) - 0. 5) , har dl i m( Y( 16) - 0. 5) , har dl i m( Y( 17) - 0. 5) , har dl i m( Y( 18) - 0. 5) , har dl i m( Y( 19) - 0. 5) , har dl i m( Y( 20) - 0. 5) , har dl i m( Y( 21) - 0. 5) , har dl i m( Y( 22) - 0. 5) , har dl i m( Y( 23) - 0. 5) ) ;
i f ( B( i , : ) ~=har dl i m( Y- 0. 5) ) [ val o, poso] =f i nd( B( i , : ) ==1) ; ar r ay( poso) [ val f , posf ] =f i nd( har dl i m( Y- 0. 5) ==1) ; i f ( posf >0) ar r ay( poso) el se f pr i nt f ( ' Vaci o' ) ; end cont 0=cont 0+1; end end f pr i nt f ( ' \ n %d pat r ones no r econoci dos' , cont 0) ;
6. 1- get Var i aci ones Rut i na que per mi t e obt ener el numer o de var i aci ones que hay en l os car act er es
f unct i on [ vecVar ] =get Var i aci ones( X) %X es l a mat r i z de pl aca r ecor t ada
[ F, C] =si ze( X) ; 145
i nc=f i x( F/ 15) ; %Tamano de l os bl oques( Fi l as x bl oque) Ni t em=f i x( F/ i nc) ; %Numer o de i t er aci ones cont =1; cont 2=1;
%f i gur e( ) ; f or k=1: i nc: ( i nc*Ni t em)
f pr i nt f ( ' Bl oque: %d' , cont ) Xc=X( k: ( i nc*cont ) , : ) ; %t r aemos subbl oque
f i gur e( ) ; %I mpr i me bl oque a bl oque %subpl ot ( Ni t em, 1, cont ) ; %Coment amos par a vi sual i zar subbl oques i mshow( Xc) ; %Coment amos par a vi sual i zar subbl oques t i t l e( ' Subpar t es de pl aca' )
%%%Vamos a r evi sar l as var i aci ones de l as f r ecuenci as [ Fc, Cc] =si ze( Xc) ; %En est a par t e guar damos el numer o de f i l as y col umnas de cada bl oque %f i gur e; cont a=1; mat Val =zer os( Fc, Cc) ; %gener amos l a mat r i z par a guar dar l os val or es que se r epi t en %vect or var i aci ones vecVar =zer os( 1, Fc) ; %Vect or es par a obt ener l a Var i anza por f i l a de cada bl oque vecPr om=zer os( 1, Fc) ; vecVar i anza=zer os( 1, Fc) ; vecMi n=zer os( 1, Fc) ; vecMax=zer os( 1, Fc) ; %mat Val =mat Val *- 13; f or i =1: Fc cont vm=1; cont v=0; cont vv=1; f l ag=0; Xa=Xc( i , : ) ; %Se t oma f i l a a f i l a del bl oque %si ze( Xa) Xa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Col ocamos el nombr e de l a f unci on que obt i ene el numer o de %r epet i ci ones count _01 c=count _01( Xa) ; %c [ vecVar ] =get Var i aci onesOne( Xa) ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % subpl ot ( Fc, 1, cont a) %Descoment amos par a vi sual i zar l as di vi si ones de un bl oque % i mshow( Xa) %Most r amos di vi si ones de bl oque
f or j =1: Cc- 1 i f ( Xc( i , j ) ~=Xc( i , j +1) ) cont v=cont v+1; mat Var ( i , cont vv) =Xc( i , j +1) ; cont vv=cont vv+1; f l ag=0; el sei f f l ag==0%Es i gual mat Val ( i , j ) =Xc( i , j +1) ; %Xc( i , j +1) cont vm=cont vm+1; f l ag=1; end end 146
vecVar ( i ) =cont v; vecVar c( i ) =c; cont a=cont a+1; vecPr om( i ) =sum( Xa) / ( Cc*Cc) ; vecVar i anza( i ) =sum( sum( ( Xa- vecPr om( i ) ) . ^2) ) / ( Cc*Cc) ; vecMi n( i ) =mi n( Xa) ; vecMax( i ) =max( Xa) ; %pause end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% vecVar vecVar c %vecPr om %vecMi n %vecMax %vecVar i anza cont =cont +1; %pause end