SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
SEMINARIO DE TITULACIÓN
“PROCESAMIENTO DIGITAL DE SEÑALES”
DISEÑO DE SISTEMA DE RECONOCIMIENTO DE
PLACAS UTILIZANDO MATLAB
T E S I N A
Que para obtener el grado de:
INGENIERO EN
COMUNICACIONES Y ELECTRÓNICA.
Presentan:
PAUL CARDENAS HIDALGO
JOSÉ ALFREDO FLORES VARGAS
JAIME LÓPEZ ZAVALETA
PABLO MARTÍNEZ MORENO
ASESORES:
M. en C. ORLANDO BELTRÁN NAVARRO.
M. en C. BRAULIO SANCHEZ ZAMORA
México, D. F. Junio de 2009.
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA
IPN
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
TESINA
QUE PARA OBTENER EL TITULO DE: INGENIERO EN COMUNICACIONES Y
ELECTRONICA
NOMBRE DEL SEMINARIO: PROCESAMIENTO DIGITAL DE SEÑALES
DEBERA DESARROLLAR: PAUL CARDENAS HIDALGO
JOSE ALFREDO FLORES VARGAS
JAIME LÓPEZ ZAVALETA
PABLO MARTÍNEZ MORENO
NOMBRE DEL TEMA
“DISEÑO DE SISTEMA DE RECONOCIMIENTO DE PLACAS UTILIZANDO MATLAB”
INTRODUCCION
La implementación de algoritmos en visión por computador resulta muy costosa en tiempo que
se requiere de la manipulación de punteros, gestión de memoria, etc. Hacerlo en lenguaje C++
supondría la inversión de tiempo y sin la seguridad de que lo queremos implementar
funcionará. Estos problemas pueden ser resueltos si la implementación de prueba es realizada
en Matlab utilizando su toolbox de procesamiento de imágenes con ello el tiempo de
implementación se convierte en el mínimo con la confianza de utilizar algoritmos
científicamente probados y robustos. El toolbox de procesamiento de imágenes contiene un
conjunto de funciones de los algoritmos más conocidos para trabajar con imágenes binarias,
trasformaciones geométricas, morfología y manipulación de color que junto con las funciones
ya integradas en Matlab permite realizar análisis y trasformaciones de imágenes en el dominio
de la frecuencia.
CAPITULADO
1. TIPOS DE IMÁGENES
2. PROCESAMIENTO DIGITAL DE IMÁGENES Y SISTEMAS DE RECONOCIMIENTO
DE PLACAS EXISTENTES
3. DISEÑO DE SISTEMA DE RECONOCIMIENTO DE PLACAS EN MATLAB
Fecha: México D.F. Junio de 2009
M. en C. Orlando Beltrán Navarro M. en C. Braulio Sánchez Zamora
Ing. Ignacio Monroy Ostria
INDICE
Planteamiento del problema
Justificación
Objetivo general
CAPITULO 1. Tipos de imágenes Pág.
1.1 Introducción 2
1.2 Biometría 2
1.3 Percepción de colores 3
1.4 Imágenes digitales 4
1.5 Representación de colores en imágenes digitales 5
1.6 Resolución de las imágenes digitales 6
1.7 Tipos de imágenes 6
CAPITULO 2. Procesamiento digital de imágenes y sistemas de reconocimiento de
placas existentes
2.1 Conceptos básicos de las imágenes en Matlab 8
2.2 Procesamiento de imágenes 8
2.3 Procesamiento óptico 9
2.4 Procesamiento digital de imágenes 10
2.5 Utilidad del procesamiento de imágenes 12
2.6 Reconocimiento de Imágenes 13
2.7 Reconocimiento de caracteres 13
2.9 Filtros para la detección de bordes 14
2.8 Filtros 13
2.10 Aplicaciones del reconocimiento de imágenes 14
2.11 Sistemas de reconocimiento de placas existentes 15
2.12 Algoritmos y pasos a seguir para realizar el ANPR 17
2.13 Dificultades para el buen funcionamiento 17
2.14 Técnicas de evasión del ANPR 19
2.15 Otros usos
2.16 Control de acceso a estacionamientos, casetas de cobro y
del ANPR 20
algunas variantes 21
2.17 Empresas existentes 23
CAPITULO 3 Diseño de sistema de reconocimiento de placas en MatLab
3.1 Desarrollo de proyecto 24
Conclusiones 51
Bibliografía 52
Planteamiento del problema
Los robos de automóviles y el mal uso de muchos de ellos para realizar ilícitos
además de una mala gestión y poca cultura vehicular hacen de este trabajo una necesidad y
actualmente una realidad capaz de simplificar muchas actividades además de brindar un
buen control y monitoreo del vehículo que se desee.
Objetivo general
Diseñar un sistema mediante MATLAB para el reconocimiento automático de matriculas
vehiculares capaz de procesar una imagen para posteriormente tomar información de la
misma y poder ser almacenada en una base de datos coherente.
Agilizar la gestión de la información vehicular en un sector determinado para poder brindar
seguridad a todos los usuarios.
Justificación
Este proyecto se lleva a cabo para desarrollar un sistema de reconocimiento de matriculas
vehiculares (implementado en MATLAB), actualmente en el mercado hay sistemas que
cumplen esta función, pero estos dispositivos tienen un costo muy elevado.
Se diseña para ayudar a reducir el alto índice de robos así como para poder gestionar el
flujo y trafico vehicular en un área determinada.
Con un dispositivo que tenga la capacidad de brindarnos una imagen adecuada (cámara
fotografica) y el software ya mencionado se diseñara este sistema el cual se plantea como
una herramienta de fácil manejo y ambiente de trabajo amigable.
CAPITULO 1
Tipos de imágenes
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes
2
1.1 INTRODUCCION
La implementación de algoritmos en visión por computador resulta muy costosa en tiempo
que se requiere de la manipulación de punteros, gestión de memoria, etc. Hacerlo en
lenguaje C++ (que por sus características compartidas de alto y bajo nivel lo hacen el mas
apropiado para la implementación de algoritmos de visión computacional) supondría la
inversión de tiempo y sin la seguridad de que lo queremos implementar funcionará.
Además utilizar C++ para el periodo de prueba exige un tiempo normal de corrección de
errores debidos al proceso de implementación del algoritmo, es decir errores programáticos
efectuados por ejemplo al momento de multiplicar dos matrices, etc. Todos estos problemas
pueden ser resueltos si la implementación de prueba es realizada en Matlab utilizando su
toolbox de procesamiento de imágenes con ello el tiempo de implementación se convierte
en el mínimo con la confianza de utilizar algoritmos científicamente probados y robustos.
El toolbox de procesamiento de imágenes contiene un conjunto de funciones de los
algoritmos mas conocidos para trabajar con imágenes binarias, trasformaciones
geométricas, morfología y manipulación de color que junto con las funciones ya integradas
en Matlab permite realizar análisis y trasformaciones de imágenes en el dominio de la
frecuencia (trasformada de Fourier).
1.2 Biometría
La biometría es el reconocimiento del cuerpo humano a través de ciertas
características físicas, como el tamaño de los dedos de la mano, las huellas dactilares o los
patrones en las retinas de los ojos.
Los sistemas de computadoras actuales permiten tener mejores niveles de seguridad
utilizando la biometría. Por ejemplo, una persona puede tener acceso a un área restringida,
por medio del reconocimiento de las características físicas de su mano en un dispositivo
especial. Si en el proceso de validación se verifica que la persona tiene permiso para entrar
al área, entonces le permitirá el acceso. Este tipo de sistemas se está volviendo cada vez
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes
3
más utilizado, desplazando los sistemas antiguos de identificación, de esta forma es como
tomamos este concepto para aplicarlo al sistema que se diseñara.
1.3 Percepción de colores
El ojo tiene dos tipos de receptores: bastones y conos. Los bastones transmiten
diferentes intensidades de gris y los conos le permiten al cerebro percibir la tonalidad de los
colores. Existen tres tipos de conos, el primero es sensible a la luz rojo/naranja, el segundo
a la luz verde y el tercero a la luz azul/violeta. Cuando un cono es estimulado, el cerebro
percibe el color correspondiente. Por ejemplo, cuando los conos verdes son estimulados, se
percibe el color verde; cuando los conos rojo/naranja son estimulados, se percibe el color
rojo. Si son estimulados simultáneamente ambos tipos de conos, los verdes y los
rojo/naranja, se percibe el color amarrillo.
El ojo no puede diferenciar entre un color amarillo espectral, y alguna combinación de rojo
y verde. Lo mismo sucede con nuestra percepción de los colores cian, agenta, y los otros
colores espectrales intermedios. Debido a esta respuesta fisiológica, el ojo puede percibir
una amplia gama de tonalidades por medio de la variación de solo tres colores: rojo, verde
y azul.
Cualquier color puede ser espectralmente analizado usando un prisma para determinar sus
intensidades primarias de rojo, verde y azul.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes
4
1.4 Imágenes digitales
La digitalización de imágenes es el proceso por medio del cual se convierte una imagen en
un formato interpretable por las computadoras. Una imagen digital se puede obtener
utilizando cámaras fotográficas digitales, escáneres, etcétera.
En la década de los ochenta solo era posible utilizar cuatro colores en las pantallas de las
computadoras. Esto evolucionó rápidamente y actualmente se utilizan millones de colores.
Una imagen digital es un arreglo de dos dimensiones de píxeles (picture element) y un píxel
es la unidad mínima que conforma una imagen digital.
Figura 1.1. Representación de una imagen digital.
1.5 Representación de colores en imágenes digitales.
Normalmente, los colores primarios son el rojo, el amarillo y el azul, y a partir de la
mezcla de estos se crean los otros colores. Sin embargo, en las imágenes digitales los
colores primarios son el rojo (Red), el verde (Green) y el azul (Blue) y se utilizan las
intensidades de luz para obtener nuevos colores. Esto dio lugar al sistema RGB.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes
5
Una imagen digital está compuesta por una matriz bidimensional de elementos RGB. En
imágenes digitales de color verdadero, se utilizan 8 bits (1 byte) para representar la
intensidad de cada componente o canal de color, y por ser 3 componentes por color, se
necesitan 24 bits (3 bytes) para formar un solo color, lo que es equivalente a un píxel.
Entonces, una imagen de 10 x 10 píxeles utiliza 2400 bits o sea 300 bytes.
Siguiendo el esquema de 1 byte por cada componente o canal, y sabiendo que el valor
máximo que puede ser representado por 1 byte es 255, la intensidad de una canal está en un
rango de 0 a 255, por lo que un píxel estará compuesto por tres diferentes intensidades de
R, G y B en un rango de 0 a 255.
El sistema RGB no es el único utilizado en las imágenes digitales. Se han creado diversos
sistemas para representar los colores según la aplicación. El sistema RGB es nativo de las
computadoras, pero no siempre es el más adecuado. Es un sistema aditivo porque el color
blanco se logra mezclando los tres colores rojo, verde y azul, y el negro es la ausencia de
color. Por el contrario, en el sistema CMY (Cyan, Magenta, Yellow) utilizado para los
medios impresos, expresa las intensidades de los colores cian, magenta y amarillo, es un
sistema sustractivo porque el color negro se logra mezclando los tres colores y el blanco es
la ausencia de color.
En el sistema RGB el blanco es RGB (255, 255, 255) y el negro es RGB (0, 0, 0), en donde
los valores entre paréntesis son las intensidades de cada uno de los canales RGB. RGB
(255,0,0), RGB(0,255,0) y RGB(0,0,255) representan el rojo, el verde y el azul
respectivamente. Al mezclar el color rojo con el azul se obtiene el color morado, RGB
(255, 0, 255). Se pueden crear todos los colores disponibles variando las intensidades de las
componentes RGB.
Otro sistema es el YUV, que fue adoptado por National Television System Commitee
(NTSC) para la transmisión de señales de televisión a color. Su propósito es hacer uso de
las características del ojo humano para maximizar la utilización de un ancho de banda
definido. El sistema visual humano es más sensible a los cambios de intensidad del color
que a los cambios de la tonalidad.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes
6
Existe una fórmula para convertir de un sistema de representación de colores a otro. En la
conversión no se pierde la información sino se representa de una forma distinta.
1.6 Resolución de las imágenes digitales
La resolución es un factor que se utiliza para convertir las dimensiones de una
imagen física a píxeles de una imagen digital y viceversa. Si una fotografía es digitalizada a
300 dpi (Dots Per Inch) o puntos por pulgada, significa que por cada pulgada de la
fotografía física original se van a obtener 300 píxeles en la imagen digitalizada. Si se
imprime una imagen a 75 dpi, quiere decir que por cada 75 píxeles se imprimirá una
pulgada sobre papel.
1.7 Tipos de imágenes
JPEG
Las imágenes en formato JPEG (con extensión JPG) son imágenes en color real (paleta de
colores RGB de 24 bits) comprimidas mediante un algoritmo matemático.
Figura 1.2. Imagen en formato JPEG.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes
7
GIF
En el formato GIF, las imágenes sólo se representan mediante una paleta de 256 colores,
por lo que no permiten la presentación de imágenes muy complejas. Son las más empleadas
por su pequeño tamaño
Figura 1.3. Imagen en formato GIF.
GIF animado
Consiste en una serie de imágenes en formato GIF, y por tanto en 256 colores) que se
alternan en la pantalla del ordenador, obteniéndose una película. El GIF animado puede
repetirse un número determinado de veces o indefinidamente, de forma que la película se
repita ininterrumpidamente, volviendo al principio cuando se ve la última imagen.
CAPITULO 2
Procesamiento digital de
imágenes y sistemas de
reconocimiento de placas
existentes
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
8
2.1 Conceptos básicos de las imágenes en Matlab
En Matlab una imagen a escala de grises es representada por medio de una matriz
bidimensional de m x n elementos en donde n representa el numero de píxeles de ancho y m
el numero de píxeles de largo. El elemento v11 corresponde al elemento de la esquina
superior izquierda, donde cada elemento de la matriz de la imagen tiene un valor de 0
(negro) a 255 (blanco).
Por otro lado una imagen de color RGB (la mas usada para la visión computacional,
además de ser para Matlab la opción default) es representada por una matriz tridimensional
m x n x p, donde m y n tienen la misma significación que para el caso de las imágenes de
escala de grises mientras p representa el plano, que para RGB que puede ser 1 para el rojo,
2 para el verde y 3 para el azul.
2.2 Procesamiento de imágenes
El procesamiento de imágenes tiene como objetivo mejorar el aspecto de las
imágenes y hacer más evidentes en ellas ciertos detalles que se desean hacer notar. La
imagen puede haber sido generada de muchas maneras, por ejemplo, fotográficamente, o
electrónicamente, por medio de monitores de televisión. El procesamiento de las imágenes
se puede en general hacer por medio de métodos ópticos, o bien por medio de métodos
digitales, en una computadora.
El matemático Jean-Baptiste-Joseph Fourier (1768-1830) nació en Auxerre, alrededor de
160 km al sureste de París. Perdió a sus padres a la temprana edad de ocho años, quedando
al cuidado del obispo de Auxerre, gracias a la recomendación de una vecina. Desde muy
pequeño mostró una inteligencia y vivacidad poco comunes. Siguió una carrera religiosa en
una abadía, al mismo tiempo que estudiaba matemáticas, para más tarde dedicarse a
impartir clases. Sus clases eran muy amenas, pues constantemente mostraba una gran
erudición y conocimientos sobre los temas más variados.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
9
Fourier estaba muy interesado en la teoría del calor, y además tenía una gran obsesión
práctica por él. Se dice que mantenía su habitación tan caliente que era muy incómoda para
quienes lo visitaban, y que aparte de eso, siempre llevaba puesto un grueso abrigo. Algunos
historiadores atribuyen esta excentricidad a los tres años que pasó en Egipto con el ejército
de Napoleón Bonaparte.
La teoría de Fourier se consideró tan importante desde de sus inicios, que lord Kelvin dijo
de ella: "El teorema de Fourier no solamente es uno de los resultados más hermosos del
análisis moderno, sino que además se puede decir que proporciona una herramienta
indispensable en el tratamiento de casi todos los enigmas de la física moderna."
El teorema de Fourier afirma que una gráfica o función, cualquiera que sea su forma, se
puede representar con alta precisión dentro de un intervalo dado, mediante la suma de una
gran cantidad de funciones senoidales, con diferentes frecuencias. Dicho de otro modo,
cualquier función, sea o no sea periódica, se puede representar por una superposición de
funciones periódicas con diferentes frecuencias. La variación de la irradiación o brillantez
de una imagen, medida a lo largo de una dirección cualquiera es entonces una función que
se puede representar mediante el teorema de Fourier, con una suma de distribuciones
senoidales de varias frecuencias. Sin entrar en detalles técnicos innecesarios, simplemente
afirmaremos aquí que atenuar o reforzar individualmente algunas de estas componentes
senoidales puede tener un efecto dramático en la calidad de una imagen, mejorándola o
empeorándola, según el caso. Este es el fundamento del procesamiento de imágenes, tanto
por medios ópticos como digitales.
2.3 Procesamiento óptico
Los principios del procesamiento óptico de imágenes están bien establecidos desde
el siglo pasado, cuando se desarrolló la teoría de la difracción de la luz. Sin embargo, su
aplicación práctica data apenas del principio de la década de los sesenta, cuando se
comenzó a disponer del rayo láser.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
10
El procesamiento óptico se basa en el hecho de que la imagen de difracción de Fraunhofer
de una transparencia colocada en el plano focal frontal de una lente es una distribución
luminosa que representa la distribución de las frecuencias de Fourier que componen la
imagen, a la que se le llama técnicamente transformada de Fourier.
Cada porción de la transformada de Fourier corresponde a una frecuencia espacial diferente
sobre el objeto. Por lo tanto, mediante los diafragmas adecuados se pueden eliminar las
frecuencias espaciales, llamadas también de Fourier, que se deseen quitar.
2.4 Procesamiento digital de imágenes
Figura 2.1. Procesamiento óptico de imágenes. (a) imagen original, con líneas de
barrido, tipo imagen de televisión; (b) transformada de Fourier del objeto; (c)
transformada de Fourier modificada, después de filtrar y (d) imagen procesada, sin
las líneas de barrido.
Al igual que en el caso del procesamiento óptico, los principios fundamentales del
procesamiento digital de imágenes están establecidos hace muchos años, pero no se
llevaban a cabo debido a la falta de computadoras. Con la aparición de las computadoras de
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
11
alta capacidad y memoria, era natural que se comenzara a desarrollar este campo. Uno de
los primeros lugares donde se empezó a realizar el procesamiento digital fue en el Jet
Propulsion Laboratory, en 1959, con el propósito de mejorar las imágenes enviadas por los
cohetes. Los resultados obtenidos en un tiempo relativamente corto fueron tan
impresionantes que muy pronto se extendieron las aplicaciones del método a otros campos.
Figura 2.2. División de una imagen en pixeles.
El procesamiento digital de imágenes se efectúa dividiendo la imagen en un arreglo
rectangular de elementos. Cada elemento de la imagen así dividida se conoce con el
nombre de pixel. El siguiente paso es asignar un valor numérico a la luminosidad promedio
de cada pixel. Así, los valores de la luminosidad de cada pixel, con sus coordenadas que
indican su posición, definen completamente la imagen.
Todos estos números se almacenan en la memoria de una computadora.
El tercer paso es alterar los valores de la luminosidad de los pixeles mediante las
operaciones o transformaciones matemáticas necesarias, a fin de hacer que resalten los
detalles de la imagen que sean convenientes. El paso final es pasar la representación de
estos pixeles a un monitor de televisión de alta definición, con el fin de mostrar la imagen
procesada.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
12
Figura 2.3. Procesamiento digital de imágenes. Cefalograma en el que se han reforzado las
componentes de Fourier de alta frecuencia. (Tomado de S. W. Oka y H. J. Trussell, The
Angle Ortodontist, 48, núm. 1, 80, 1978). (a) Imagen original y (b) imagen procesada.
2.5 Utilidad del procesamiento de imágenes
La utilidad del procesamiento de imágenes es muy amplia y abarca muchos campos.
Un ejemplo son las imágenes obtenidas con fines de diagnóstico médico. Otro ejemplo son
las imágenes aéreas obtenidas para realizar exámenes del terreno. Mediante este método se
pueden analizar los recursos naturales, las fallas geológicas del terreno, etcétera.
El procesamiento digital de imágenes es el conjunto de técnicas que se aplican a las
imágenes digitales con el objetivo de mejorar la calidad o facilitar la búsqueda de
información.
Las operaciones que se pueden realizar con imágenes se dividen en:
• Operaciones de punto
• Operaciones de entorno
• Operaciones con dos o más imágenes
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
13
2.6 Reconocimiento de Imágenes
Los sistemas de computadoras son cada vez más potentes y menos costosos, lo que
permite crear nuevas formas de arte que antes no eran posibles, y algunas otras formas de
arte antiguas pueden ahora verse beneficiadas con novedosas técnicas asistidas por
computadora.
El reconocimiento de imágenes ha evolucionado a medida que mejora la tecnología. Puede
encontrarse en numerosos campos.
2.7
El reconocimiento óptico de caracteres, conocido también como OCR (Optical
Character Recognition), es un proceso por el cual en una imagen digital se reconocen los
caracteres con la finalidad de poder editarla como texto. Este tipo de aplicaciones son
utilizadas como complemento en escáneres y otros dispositivos de captura de imágenes
digitales.
Reconocimiento de caracteres
Los filtros se utilizan para la modificación de imágenes ya sea para detectar los
bordes de una escena o para modificar el aspecto, otra función de los filtros es para la
eliminación de ruido de la imagen.
2.8 Filtros
Al hablar de un filtro nos estamos refiriendo a realizar una Convolución de una matriz con
respecto a un pixel y la vecindad de este, esto quiere decir, si la imagen es de 200x300
pixeles y el filtro con el cual se va a realizar la convolución es una matriz de 3x3 entonces
se irá desplazando el filtro pixel a pixel iniciando en la posición (1,1) hasta llegar a la
(199,299). La magnitud del gradiente es entonces calculada con la siguiente fórmula:
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
14
2.9 Filtros para la detección de bordes
Un filtro para la detección de bordes que es un clásico el de Sobel el cual utiliza dos
mascaras o filtros los cuales uno detecta los bordes verticales y el otro los horizontales, para
obtener los bordes completos se realiza la suma de las imágenes que nos resultaron con los
bordes verticales y horizontales.
Otro filtro para la detección de bordes es Prewitt, el cual consta de 8 matrices, que se
aplican pixel a pixel en la imagen y luego se suman las imágenes para obtener los bordes
bien marcados. El filtro de Prewitt, marca muy bien los bordes, ya que sus matrices atacan
estos de seis lados diferentes, en general cada matriz toma el nombre de un punto cardinal:
Norte, Sur, Este, Oeste, Noroeste, Noreste, Suroeste, Sureste.
2.10 Aplicaciones del reconocimiento de imágenes
A) Información inteligente de tráfico vehicular
Esta aplicación nos permite obtener información de flujos o volumen de transito en
calles para que al contar con información estadística, se pueda mejorar los parámetros de
circulación, por ejemplo, tiempos de espera de semáforos, determinación de tiempos y
lugares críticos para operativos de agilización de flujos, etc.
Al igual que otras aplicaciones, con el mismo equipo puede conjuntarse esta funcionalidad
y generar un dispositivo mucho más complejo.
B) Identificación de personas para investigaciones policíacas.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
15
Aunque las técnicas aun están en desarrollo en este campo, y aun no existe una
aplicación totalmente confiable, es evidente la importancia del reconocimiento de imágenes
para la identificación de personas en investigaciones policíacas.
Muchas veces en investigaciones de crímenes un testigo puede describir con mucho detalle
el rostro de un criminal. Un dibujante profesional convierte la descripción verbal del testigo
en un dibujo sobre papel. El trabajo de la computadora consiste en buscar el rostro del
criminal en una base de datos de imágenes. En las investigaciones policíacas también se
utiliza la búsqueda de huellas dactilares en una base de datos.
2.11 Sistemas de reconocimiento de placas existentes.
El reconocimiento automático de matrículas (Automatic number plate
recognition o ANPR en inglés) es un método de vigilancia en masa que utiliza
reconocimiento óptico de caracteres en imágenes para leer las matrículas de los vehículos.
En 2005, los sistemas ya podían escanear las matrículas con una frecuencia aproximada de
una por segundo en vehículos con velocidades de hasta 160 km/h. Y este sistema se
complementaba al utilizar el circuito cerrado de televisión existente o radares, o equipos
diseñados específicamente para dicha tarea. En principio comenzaron a ser utilizadas por
las diversas fuerzas de policía y como método de recaudación electrónica de peaje en las
autopistas de pago de algunos países , y para vigilar la actividad del tránsito.
El ANPR se puede utilizar para almacenar las imágenes capturadas por las cámaras
fotográficas, así como el texto de la matrícula, y algunas se pueden configurar para
almacenar una fotografía del conductor. Estos sistemas a menudo utilizan iluminación
infrarroja para hacer posible que la cámara pueda tomar fotografías en cualquier momento
del día. En al menos una versión de cámara fotográfica para la supervisión de
intersecciones se incluye un flash de gran alcance, que sirve para iluminar la escena y hacer
que el infractor se dé cuenta de su error. La tecnología ANPR tiende a ser específica para
una región, debido a la variación entre matrículas de un lugar a otro.
El software del sistema se ejecuta sobre un hardware de PC estándar y puede ser enlazado
con otras aplicaciones o bases de datos. Primero utiliza una serie de técnicas de
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
16
manipulación de la imagen para detectar, normalizar y realzar la imagen del número de la
matrícula, y finalmente reconocimiento óptico de caracteres para extraer los alfanuméricos
de la matrícula. Los sistemas ANPR/ALPR se pueden utilizar de dos modos; uno permite
que el proceso sea realizado en su totalidad en el lugar de la toma en tiempo real, mientras
que el otro transmite todas las imágenes de muchas cámaras a un ordenador remoto en que
se realiza el proceso de OCR más tarde. Cuando se realiza “in situ” es decir en el mismo
lugar donde ocurrió el incidente, la información capturada de la matrícula alfanumérica,
fecha y hora, identificación del lugar y cualquier otra información que se requiera es
completada en unos 250 milisegundos. Esta información, convertida ahora en pequeños
paquetes de datos, se puede transmitir fácilmente a algún ordenador remoto para un
posterior procesamiento en caso de que sea necesario, o ser almacenado en el lugar para ser
recuperada posteriormente. En la otra disposición, típicamente hay una gran cantidad de
PC’s usados en un sitio de servidores para manejar altas cargas de trabajo, como por
ejemplo los que se encuentran en el proyecto de carga de congestión de Londres. A menudo
en dichos sistemas existe la necesidad de emitir imágenes al servidor remoto y éste puede
requerir medios de transmisión con un gran ancho de banda. Los inconvenientes de estos
sistemas están centrados en el temor en cuanto a la privacidad de los movimientos de los
ciudadanos y los informes de los medios sobre la identificación errónea y altas tasas de
error. Sin embargo, según se han ido desarrollando, estos sistemas han logrado ser mucho
más exactos y fiables.

Al ANPR se le conoce a veces con otros términos:
Diversidad de nombres para este sistema
• Identificación automática de vehículos (Automatic vehicle identification, AVI)
• Reconocimiento de matrículas de vehículos (Car plate recognition, CPR)
• Reconocimiento de matrículas (Licence plate recognition, LPR)
ANPR utiliza reconocimiento óptico de caracteres (OCR) en las imágenes tomadas por las
cámaras fotográficas. Algunas matrículas utilizan cambios en los tamaños de las fuentes y
en la posición - los sistemas ANPR deben poder hacer frente a estas diferencias para ser
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
17
verdaderamente eficaces. Algunos sistemas más complicados pueden distinguir variantes
internacionales, aunque muchos programas se adaptan a cada país individualmente.
Hay ciertos algoritmos principales que el software necesita para identificar una
matrícula:
2.12 Algoritmos y pasos a seguir para realizar el ANPR
1. Localización de la matrícula - responsable de encontrar y aislar la matrícula en la
imagen.
2. Orientación y tamaño de la matrícula - compensa los ángulos que hacen que la
matrícula parezca "torcida" y ajusta las dimensiones al tamaño requerido.
3. Normalización - ajusta el brillo y el contraste de la imagen.
4. Segmentación de los caracteres - encuentra los distintos caracteres presentes en la
matrícula.
5. Reconocimiento óptico de caracteres.
6. Análisis sintáctico y geométrico - comprueba los caracteres encontrados y sus
posiciones con las reglas específicas del país al que pertenece la matrícula.
La complejidad de cada una de estas subdivisiones del programa determina la exactitud del
sistema. Durante la tercera fase (normalización) algunos sistemas utilizan técnicas de
detección de borde para aumentar la diferencia en la imagen entre las letras y el fondo de la
placa. También se puede utilizar un filtro digital de punto medio para reducir el "ruido"
visual de la imagen.
El software debe ser capaz de afrontar diferentes dificultades posibles, que incluyen:
2.13 Dificultades para el buen funcionamiento.
• Resolución de imagen pobre, a menudo porque la matrícula está demasiado lejos,
aunque a menudo es resultado del uso de una cámara de baja calidad.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
18
• Imágenes desenfocadas, en particular desenfoque de movimiento y muy a menudo
en unidades móviles
• Iluminación pobre y bajo contraste debido a sobreexposición, reflexión o sombras
• Un objeto que oscurece (parte de) la matrícula, a menudo una barra del remolque, o
suciedad en la matrícula
• Técnicas de evasión
Los primeros sistemas ANPR eran incapaces de leer letras blancas o plateadas sobre un
fondo negro, como se permitía en los vehículos de algunos países como Reino Unido
fabricados antes de 1973.
Aunque algunos de estos problemas se pueden corregir en el software, se dejan sobre todo
en el lado del hardware del sistema para ofrecer soluciones a estos problemas. El aumento
de la altura de la cámara puede evitar problemas con los objetos (tales como otros
vehículos) que oscurecen la placa, pero introduce y aumenta otros problemas como el ajuste
según la oblicuidad creciente de la placa.
Muchos países utilizan matrículas retroreflectivas. Esto devuelve la luz hacia la fuente y
mejora así el contraste de la imagen. En algunos países los caracteres de la matrícula no son
reflectantes, dando un alto nivel del contraste con el fondo reflectante bajo cualquier
condición de iluminación. Una cámara que utiliza imagen infrarroja (con un filtro normal
de color sobre la lente y una fuente luminosa infrarroja al lado de ella) beneficia en gran
medida, reflejándose las ondas infrarrojas desde la matrícula. Sin embargo, esto sólo es
posible en cámaras ANPR dedicadas, por lo que las cámaras usadas para otros propósitos
deben confiar en mayor medida en las capacidades del software. Además, cuando se
necesita una imagen a todo color y la captación de detalles es necesario tener una cámara
con infrarrojos y una cámara normal (en color) funcionando conjuntamente.
Imágenes borrosas dificultan el OCR – los sistemas ANPR deberían tener altas velocidades
de disparo para evitar el desenfoque de movimiento
Para evitar el desenfoque es ideal tener la velocidad del obturador de la cámara fijada a
1/1000 segundos. Debido a que el coche está en movimiento, el uso de velocidades más
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
19
reducidas podría dar lugar a una imagen demasiado borrosa para ser leída con el software
OCR, especialmente si la cámara está en una posición mucho más alta que el vehículo.
Cuando el tránsito es lento o cuando la cámara fotográfica está a una altura inferior y el
vehículo está en un ángulo de aproximación a la cámara, no es necesario que la velocidad
del obturador sea tan alta. Velocidades del obturador de 1/500 pueden funcionar
correctamente con vehículos con una velocidad de hasta 64 kilómetros por hora y 1/250
hasta 8 kilómetros por hora.
En algunos coches, las barras de remolque pueden oscurecer uno o dos caracteres de la
matrícula. Las bicicletas en las defensas también oscurecer la placa, aunque en algunos
países y jurisdicciones, estos casos no generan ningún tipo de infracción y dificultan la
acción del ANPR
Algunos sistemas a escala reducida permiten algunos errores en la matrícula. Cuando se
utiliza para ofrecer acceso específico de los vehículos a una zona con barrera, la decisión
puede ser tomada con un índice de error aceptable de un carácter. Esto es así porque la
probabilidad de que un coche desautorizado con una matrícula tan similar se considera que
es absolutamente pequeña. Sin embargo, este nivel de imprecisión no sería aceptable en la
mayoría de las aplicaciones de un sistema ANPR.
Los propietarios de vehículos han utilizado una variedad de técnicas para intentar
evadir los sistemas ANPR. Un método consiste en incrementar las propiedades de reflexión
de las letras y aumentar así la probabilidad de que el sistema no sea capaz de localizar la
matrícula o de producir suficiente nivel de contraste para lograr leerla. Esto normalmente se
realiza usando una tapadera de matrículas o recubriendo la placa con aerosol, aunque hay
dudas sobre la efectividad de este último. En la mayoría de las jurisdicciones, tanto de
nuestro país como alrededor del mundo, las tapaderas son ilegales y está contemplado bajo
leyes existentes, mientras que en la mayoría de los países no hay ninguna ley que rechace el
uso de los aerosoles.
2.14 Técnicas de evasión del ANPR
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
20
En Argentina la matrícula tiene la misma consideración que un documento público, por lo
que se considera delito su modificación.
En una ruta de transporte publico de Toronto (Canadá), la policía ha registrado varias
técnicas avanzadas que algunos conductores han tratado de llevar a cabo. Un empleado de
esta ruta tenía un mecanismo que le permitía levantar un cable del asiento del conductor
que hacía que se mostrara una matrícula diferente en el momento en que pasaba por las
zonas vigiladas con cámara. Otros han tratado de manchar su matrícula con suciedad o
utilizar cubiertas para enmascararla.
Los novedosos marcos alrededor de las matrículas han sido declarados ilegales en diversos
lugares siendo los pineros de esta restricción los Estados Unidos porque causaban
problemas en los sistemas ANPR. Esta ley convierte el uso de dichos marcos en un delito
menor.
Hay algunos paneles traseros para coche con una inserción en ángulo para la matrícula, lo
que cambia la alineación de caracteres de la rejilla de lectura, quizás la manera más fácil de
invalidar el reconocimiento es simplemente permitir que la pintura reflectante de las placas
se degrade por la edad y se haga por tanto ilegible.
Si un sistema ANPR no puede leer la placa de matrícula avisará, por medio de una señal
acústica, para llamar la atención de los operadores humanos, que pueden entonces tratar de
identificar los caracteres visualmente. Es entonces posible hacer operaciones de búsqueda
usando caracteres comodín que sustituyan cualquier parte oculta de la matrícula y utilizar
los detalles del coche (fabricante y modelo, por ejemplo) para refinar la búsqueda.
2.15 Otros usos
Los sistemas ANPR también pueden ser usados para:
del ANPR
• Cruce de fronteras
• Estaciones de servicios para llevar un registro de los conductores que abandonan la
estación sin realizar algún pago.
• Control de acceso a estacionamientos públicos o de algún particular.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
21
• Una herramienta de mercadotecnia para llevar un registro de patrones de uso en
alguna bodega o empresas dedicadas a la logística.
• Sistemas de gestión de tráfico, para determinar el flujo de tráfico usando el tiempo
que tardan los vehículos en pasar por dos sitios dotados de ANPR
2.16 Control de acceso a estacionamientos, casetas de cobro y algunas variantes
Con esta aplicación podemos controlar el acceso a estacionamientos de
dependencias y estacionamientos públicos o corporativos, controlando no solo quien entra y
quien sale, sino también el horario en que estas transacciones deben de ocurrir, pudiendo
restringir el acceso después de un tiempo de tolerancia o salida a personal que todavía debe
estar laborando.
Figura 2.4. Aplicación de control para la identificación de placas.
Incluso se puede reconocer colores y patrones del vehículo para evitar suplantación de
placas, por ejemplo que entren con un carro compacto y salgan con un carro de lujo
cambiándole la placa al vehículo.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
22
 Reconocimiento y detección en tiempo real de placas usando tecnología de
análisis de video
Esta tecnología permite el reconocimiento de placas usando video en tiempo real, lo
cual permite tener un sin número de aplicaciones tanto para control estadístico, seguridad
pública, control de velocidades, etc.
Figura 2.5. Reconocimiento y detección en tiempo real de placas.
 Velocidad Promedio
Esta aplicación nos permite controlar la velocidad promedio de los vehículos
pasando a través de dos puntos de control. Al saber la distancia y el tiempo podemos
determinar la velocidad promedio, que es una ventaja con respecto a los radares
convencionales dado que esos solo miden la velocidad instantánea.
De la misma forma se puede interactuar con otros sistemas para poder enviar la placa y la
foto del vehículo, para procesar la infracción correspondiente sin necesidad de intervención
humana, agilizando el proceso y evitando errores.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
23
2.17 Empresas existentes
Adaptive Recognition es una compañía dedicada a producir equipos inteligentes los
cuales procesan imágenes en el contexto de seguridad y control de tráfico. Las solucione de
Adaptive Recognition son utilizadas hoy en día mundialmente para asegurar todo tipo de
documentos y control de tráfico por medio del reconocimiento de placas.
 CARMEN ANPR
Este producto el cual se basa en reconocimiento de caracteres por medio de redes
neuronales, nos permite identificar las placas de los automóviles convirtiéndolas a texto
para posteriormente ser utilizadas como mejor sea conveniente. A esta tecnología se le
conoce como ANPR (Automated Number Plate Recognition) por sus siglas en inglés y
está altamente probada en más de 60 países con miles de sistemas instalados a la fecha.
Existen dos versiones, la primera (Carmen FreeFlow) para ser utilizada en vías rápidas
la cual permite reconocer placas con velocidades hasta de 250 km/h y la segunda
(Carmen Parking) para ser utilizada en controles de acceso a estacionamientos, garajes,
etc.
CAPITULO 3
Diseño del sistema de
reconocimiento de
placas en MatLab
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
24
3.1 Desarrollo del proyecto
Restricciones: Las imágenes tomadas pueden ser de cualquier tamaño, pero la placa debe
cumplir con las siguientes condiciones de 150 a 210 pixeles y de 50 a 110 pixeles. Además,
las fotos tomadas de la placa no pueden estar inclinadas.
Procedimiento: Inicialmente se necesita diferenciar si la imagen está en escala de grises o
en RGB para poder hacer la conversión correspondiente. Se utiliza el siguiente código:
I=imread('C:foto104.jpg');
info=imfinfo('C:foto104.jpg');
if info.ColorType=='truecolor' %Ciclo para determinar si es a color o en
I=rgb2gray(I); %escala de grises para poder hacer o no la
else %conversion necesaria
I=I;
End
Una vez realizado esto se recorta la imagen para poder eliminar zonas en las que no existe
información relevante a la placa como los bordes superiores y externos, se muestra en la
figura 3.1. Se observaron las fotos para determinar cual es el rango aproximado que se
puede cortar.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
25
Figura 3.1. Imagen Recortada
Después del recorte se determina el umbral óptimo de la imagen. Esto se hace calculando
el gradiente de la imagen utilizando la técnica de Sobel para hallar posibles picos en la
imagen, y luego las siguientes ecuaciones:
Se implementó el siguiente código para definir una función para calcular el umbral óptimo
de cada foto en particular:
% umbral=UmbralOptimo(imagen, filasImagen, columnasImagen, gradiente);
% Algoritmo para calcular el umbral optimo para la binarizacion.
function umbral=UmbralOptimo(imagen, filasImagen, columnasImagen, gradiente)
% Creo una variable que me dice de que color era el último grupo que guarde
% de esta forma se que la cola del final de la fila pertenece al otro color
% la variable se llama ultimoColor, si vale cero fue oscuro y si vale uno
% fue claro.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
26
numOscuros=0;
numClaros=0;
oscuros=0;
claros=0;
cont=0;
acum=0;
% Este if es para solucionar el problema que ocurre si no hay bordes en la
% primer fila entonces no se sabe si es clara o oscura.
% Supongo continuidad en los colores, si en la segunda fila tampoco hay bordes
% estos los supongo del mismo color que la primera.
if imagen(1,1)<(max(max(imagen))/2)
% Como es oscuro pongo que el ultimo color fue claro.
ultimoColor=1;
else
% Como es claro pongo que el ultimo color fue oscuro.
ultimoColor=0;
end
for i=1:filasImagen
if ultimoColor==0
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
27
numClaros=numClaros+cont;
cont=0;
claros=claros+acum;
acum=0;
else
numOscuros=numOscuros+cont;
cont=0;
oscuros=oscuros+acum;
acum=0;
end
for j=1:columnasImagen
if gradiente(i,j)==0
cont=cont+1;
acum=acum+imagen(i,j);
else
if gradiente(i,j)==-1
numOscuros=numOscuros+cont;
cont=1;
oscuros=oscuros+acum;
acum=imagen(i,j);
ultimoColor=0;
else
numClaros=numClaros+cont;
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
28
cont=1;
claros=claros+acum;
acum=imagen(i,j);
ultimoColor=1;
end
end
end
end
if ultimoColor==0
numClaros=numClaros+cont;
claros=claros+acum;
else
numOscuros=numOscuros+cont;
oscuros=oscuros+acum;
end
% Media de los claros.
mediaClaros=claros/numClaros;
% Media de los oscuros.
mediaOscuros=oscuros/numOscuros;
% Umbral optimo para la binarizacion.
umbral=(mediaOscuros*numClaros+mediaClaros*numOscuros)/(numClaros+numOscuros);
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
29
Se definió la siguiente función para calcular el gradiente de Sobel:
% gradienteSobel=Sobel(imagen, filasImagen, columnasImagen, X_Porciento);
function gradienteSobel=Sobel(imagen, filasImagen, columnasImagen, X_Porciento)
% Kernel Sobel para calcular el gradiente en la direccion horizontal.
kernel=(1/8)*[-1 0 1; -2 0 2; -1 0 1];
gradiente=Filtro(imagen, filasImagen, columnasImagen, kernel);
% Calculo del umbral para clasificar la respuesta del Sobel, este es tal que
% solo un X% de los gradientes van a superar el umbral.
moduloGradiente=abs(gradiente(:));
maximoModuloGradiente=round(max(moduloGradiente));
minimoModuloGradiente=round(min(moduloGradiente));
nivelesGradiente=maximoModuloGradiente-minimoModuloGradiente;
histogramaGradiente=hist(moduloGradiente, nivelesGradiente);
histogramaGradienteAcumulado=cumsum(histogramaGradiente);
umbralSobel=nivelesGradiente;
while (umbralSobel > 0)&(histogramaGradienteAcumulado(umbralSobel) >
(filasImagen*columnasImagen*(1-(X_Porciento/100))))
umbralSobel=umbralSobel-1;
end
umbralSobel=minimoModuloGradiente+umbralSobel;
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
30
% Clasificacion de la respuesta del Sobel en 1, 0 o -1.
gradienteSobel=[];
for i=1:filasImagen
for j=1:columnasImagen
if gradiente(i,j) > umbralSobel
gradienteSobel(i,j)=1;
else
if gradiente(i,j) < -umbralSobel
gradienteSobel(i,j)=-1;
else
gradienteSobel(i,j)=0;
end
end
end
end
Finalmente se implementó el siguiente código para el recorte y la determinación del
umbral:
[R C]=size(I); %Halla el tamaño de la imagen
cropsize=[(R*0.25) (C*0.15) (C*0.625) (R*0.6)]; %Determina seccion a cortar
Ic=imcrop(I,cropsize); %Recorta la imagen para eliminar fondo innecesario
figure; imshow(Ic) %Grafica Zona recortada
Id=double(Ic); [R C]=size(Ic) %Convierte imagen a doble para operaciones
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
31
I2=sobel(Id,R,C,2.5); %Halla gradiente de sobel
umbral=umbraloptimo(Id,R,C,I2); %Halla umbral optimo
Posteriormente se realizan operaciones morfológicas. Inicialmente se utilizará un elemento
estructurante circular de radio 10 píxeles para realizar una transformación “bottom-hat”,
que primero hace una operación de “closing” (dilatación y luego erosión) y luego resta la
imagen obtenida de la imagen original para resaltar la placa y ciertos bordes como se puede
ver en la figura 3.2. Luego se aplica el umbral hallado anteriormente como se muestra en
la figura 3.3. Para eliminar el ruido se hace primero una operación de “closing” (dilatación
y luego erosión) utilizando un elemento estructurante horizontal hallado basándose en la
separación que existe entre los caracteres de la placa como se muestra en la figura 3.4.
Después se realiza “opening” (erosión y luego dilatación) con un elemento estructurante
vertical hallado basándose en la altura de los caracteres de la placa como se ve en la figura
3.5. Finalmente se realizan dilataciones verticales y horizontales para expandir la zona de
la placa como se ve en la figura 3.6. Se implementó el siguiente código:
st=strel('disk',10); %Elemento estructurante de 10 pixeles de radio
IM2=imbothat(Ic,st); %Hace Bottom-Hat
I3=IM2>umbral; %Aplica Umbral
LH=strel('line',60,0); %Elemento estructurante lineal horizontal
IM3=imclose(I3,LH); %Closing con elemento estructurante
LV=strel('line',20,90); %Elemento estructurante lineal vertical
IM4=imopen(IM3,LV); %Hace opening con elemento estructurante
figure;imshow(IM4) %Muestra Imagen
DIV=strel('line',35,90); %Elemento estructurante lineal vertical
DIH=strel('line',20,0); %Elemento estrucutrante lineal horizontal
IM5=imdilate(IM4,DIV); %Dilata con E.E. vertical
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
32
IM6=imdilate(IM5,DIH); %Dilata con E.E. horizontal
figure; imshow(IM6) %Muestra imagen
Figura 3.1. Top-Hat Figura 3.2. Umbral
Figura 3.3. Closing Horizontal Figura 3.4. Opening Vertical
Figura 3.5. Dilatación
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
33
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
34
Finalmente a partir de la imagen binarizada de la zona de la placa, se pueden hallar la
ubicación de la placa y sus dimensiones para hacer un recorte de la imagen original de la
zona de la placa como se muestra en la figura 3.7. Se implementó el siguiente código:
L=bwlabel(IM6); %Crea regiones
stats=regionprops(L,'all'); %Estadisticas de las regiones
Idx=find([stats.Area]>(7000)); %Diferencia las regiones con Area > 7000
IM6=ismember(L,Idx); %Crea una imagen con dichas regiones
L=bwlabel(IM6); %Crea regiones
stats = regionprops(L,'all'); %Estadisticas de las regiones
E=stats(1).BoundingBox; %Toma tamaño de la region
X=E.*[[1] [0] [0] [0]]; X=max(X); %Determina eje X esquina superior Izq. Placa
Y=E.*[[0] [1] [0] [0]]; Y=max(Y); %Determina eje Y esquina superior Der. Placa
W=E.*[[0] [0] [1] [0]]; W=max(W) %Determina Ancho Placa
H=E.*[[0] [0] [0] [1]]; H=max(H); %Determina Altura placa
Corte=[X Y W H]; %Determina coordenadas de corte
IMF=imcrop(Ic,Corte); %Realiza el corte
figure; imshow(IMF) %Muestra imagen de la zona de la placa
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
35
Figura 3.6. Recorte Placa.
A continuación procedemos a binarizar la imagen de la placa recortada con un umbral de
120, para poder recortar aun más la placa y así borrar las líneas y elementos que nos
producen ruido (Figura 3.8). Esto lo podemos realizar mediante una estadística de la región
tomada, y aplicando un porcentaje de recorte posible por las características estándar que
tienen las placas. Se realiza un filtro para ayudar a depurar un poco mas la imagen (Figura
3.9). Se binariza la imagen obtenida (Figura 3.10). Y por ultimo se aplica una propiedad de
región para que solo las áreas mayores a 1.5% del total queden presentes. El siguiente es el
código implementado:
umbral=120; %Aplico un Umbral de 120
placa=IMF>umbral; %Aplica umbral a placa
L=bwlabel(placa); %Crea regiones
stats=regionprops(L,'all'); %Estadisticas de las regiones
placadx=find([stats.Area]>(4500)); %Diferencia las regiones con Area > 4500
placa=ismember(L,placadx); %Crea una imagen con dichas regiones
L=bwlabel(placa); %Crea regiones
stats=regionprops(L,'all'); %Estadisticas de las regiones
E2=stats(1).BoundingBox; %Toma tamaño de la region
X2=E2.*[[1] [0] [0] [0]]; X2=max(X2); %Determina eje X esquina superior Izq. Placa
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
36
Y2=E2.*[[0] [1] [0] [0]]; Y2=max(Y2); %Determina eje Y esquina superior Der. Placa
W2=E2.*[[0] [0] [1] [0]]; W2=max(W2); %Determina Anchura placa
H2=E2.*[[0] [0] [0] [1]]; H2=max(H2); %Determina Altura placa
Corte2=[X2 Y2 W2 H2]; %Determina coordenadas de corte
C2=imcrop(IMF,Corte2); %Realiza el corte
Wx=round(W2*0.94); Hx=round(H2*0.756);
Cortex=[4 12 Wx Hx];
C2=imcrop(C2,Cortex);
figure; imshow(C2) %Muestra Imagen
C3=imbothat(C2,st);
figure; imshow(C3)
umbral2=90;
C5=C3>umbral2;
figure; imshow(C5)
L=bwlabel(C5);
stats=regionprops(L,'all');
placadx=find([stats.Area]>((W2*H2)*0.015)); %Diferencia las regiones con Area > 1.5% del
%area total
placa=ismember(L,placadx); %Crea una imagen con dichas regiones
figure; imshow(placa)
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
37
FIGURA 3.8. Recorte de la placa para
eliminar ruido.
FIGURA 3.9. Filtro para ayudar a depurar
la imagen.
FIGURA 3.10. Propiedad de región.
El siguiente paso es recortar cada carácter por separado, para esto utilizamos el comando
bwlabel para que nos divida la imagen en regiones y poder determinar el área que posee
cada región (que en este caso nos demarcará el área ocupada por el carácter) y poder
recortarlo con el comando imcrop, obteniendo cada carácter en una variable por separado.
Luego, a cada carácter se le realiza un nuevo dimensionamiento (24*42) para estandarizar
los caracteres y poder realizar el reconocimiento de la letra y del número. La figura 3.11
muestra los 6 caracteres recortados. El código utilizado es el siguiente:
L=bwlabel(placa);
stats=regionprops(L,'all');
E3=stats(1).BoundingBox; %Toma tamaño de la region 1, primer
caracter
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
38
X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior
Izq. Placa
Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior
Der. Placa
W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa
H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa
Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte
L1=imcrop(C2,Corte3); %Realiza el corte
L1b=imresize(L1,[42 24]);
L1b=L1b>150;
figure; imshow(L1b) %Muestra el primer caracter
E3=stats(2).BoundingBox; %Toma tamaño de la region 2, segundo
caracter
X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior
Izq. Placa
Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior
Der. Placa
W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa
H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa
Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte
L2=imcrop(C2,Corte3); %Realiza el corte
L2b=imresize(L2,[42 24]);
L2b=L2b>150;
figure; imshow(L2b) %Muestra el segundo caracter
E3=stats(3).BoundingBox; %Toma tamaño de la region 3, tercer
caracter
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
39
X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior
Izq. Placa
Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior
Der. Placa
W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa
H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa
Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte
L3=imcrop(C2,Corte3); %Realiza el corte
L3b=imresize(L3,[42 24]);
L3b=L3b>150;
figure; imshow(L3b) %Muestra el tercer caracter
E3=stats(4).BoundingBox; %Toma tamaño de la region 4, cuarto
caracter
X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior
Izq. Placa
Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior
Der. Placa
W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa
H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa
Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte
L4=imcrop(C2,Corte3); %Realiza el corte
L4b=imresize(L4,[42 24]);
L4b=L4b>150;
figure; imshow(L4b) %Muestra el cuarto caracter
E3=stats(5).BoundingBox; %Toma tamaño de la region 5, quinto
caracter
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
40
X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior
Izq. Placa
Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior
Der. Placa
W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa
H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa
Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte
L5=imcrop(C2,Corte3); %Realiza el corte
L5b=imresize(L5,[42 24]);
L5b=L5b>150;
figure; imshow(L5b) %Muestra el quinto caracter
E3=stats(6).BoundingBox; %Toma tamaño de la region 6, sexto
caracter
X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior
Izq. Placa
Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior
Der. Placa
W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa
H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa
Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte
L6=imcrop(C2,Corte3); %Realiza el corte
L6b=imresize(L6,[42 24]);
L6b=L6b>150;
figure; imshow(L6b) %Muestra el sexto carácter
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
41
Figura 3.11. Caracteres de la placa.
Desarrollo del OCR: En este momento ya poseemos los caracteres individuales que
componen el numero de la placa, por lo que se procederá a realizar una base de datos de las
24 letras del alfabeto en mayúscula (no se tiene en cuanta la letra CH ni la Ñ), y los dígitos
del 0 al 9. Para ello se realizaran archivos de imagen con los caracteres de 21*42 pixeles,
binarizados, que serán cargados a Matlab mediante variables, y luego se creara una matriz
denominada alfabeto que contenga todas la letras del alfabeto, Figura 3.12, y una matriz
denominada numeral que contiene todos los dígitos del 0 al 9, Figura 3.13. El siguiente es
el código implementado.
a=imread('C:MATLAB6p5workA.bmp'); b=imread('C:MATLAB6p5workB.bmp');
c=imread('C:MATLAB6p5workC.bmp'); d=imread('C:MATLAB6p5workD.bmp');
e=imread('C:MATLAB6p5workE.bmp'); f=imread('C:MATLAB6p5workF.bmp');
g=imread('C:MATLAB6p5workG.bmp'); h=imread('C:MATLAB6p5workH.bmp');
i=imread('C:MATLAB6p5workI.bmp'); j=imread('C:MATLAB6p5workJ.bmp');
k=imread('C:MATLAB6p5workK.bmp'); l=imread('C:MATLAB6p5workL.bmp');
m=imread('C:MATLAB6p5workM.bmp'); n=imread('C:MATLAB6p5workN.bmp');
o=imread('C:MATLAB6p5workO.bmp'); p=imread('C:MATLAB6p5workP.bmp');
q=imread('C:MATLAB6p5workQ.bmp'); r=imread('C:MATLAB6p5workR.bmp');
s=imread('C:MATLAB6p5workS.bmp'); t=imread('C:MATLAB6p5workT.bmp');
u=imread('C:MATLAB6p5workU.bmp'); v=imread('C:MATLAB6p5workV.bmp');
w=imread('C:MATLAB6p5workW.bmp'); x=imread('C:MATLAB6p5workX.bmp');
y=imread('C:MATLAB6p5workY.bmp'); z=imread('C:MATLAB6p5workZ.bmp');
uno=imread('C:MATLAB6p5work1.bmp'); dos=imread('C:MATLAB6p5work2.bmp');
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
42
tres=imread('C:MATLAB6p5work3.bmp'); cuatro=imread('C:MATLAB6p5work4.bmp');
cinco=imread('C:MATLAB6p5work5.bmp'); seis=imread('C:MATLAB6p5work6.bmp');
siete=imread('C:MATLAB6p5work7.bmp'); ocho=imread('C:MATLAB6p5work8.bmp');
nueve=imread('C:MATLAB6p5work9.bmp'); cero=imread('C:MATLAB6p5work0.bmp');
alfabeto=[[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t]
[u] [v] [w] [x] [y] [z]];
numeral=[[uno] [dos] [tres] [cuatro] [cinco] [seis] [siete] [ocho] [nueve] [cero]];
Figura 3.12. Matriz alfabeto.
Figura 3.13 Matriz numeral.
Procedemos a realizar una conversión de matrices a un arreglo de celdas de las variables
numeral, alfabeto y matricula, para poder trabajar con elementos separados y definidos por
una posición para poder realizar operaciones individuales sobre cada uno de los elementos.
El siguiente es el código utilizado:
matricula=[[L1b] [L2b] [L3b] [L4b] [L5b] [L6b]];
ab=mat2cell(alfabeto,[42],[24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24
24 24 24 24]);
numero=mat2cell(numeral,[42],[24 24 24 24 24 24 24 24 24 24]);
plac=mat2cell(matricula,[42],[24 24 24 24 24 24]);
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
43
Por ultimo, debemos encontrar un método adecuado para realizar el reconocimiento del
carácter hallado en la placa con uno presenta en la base de datos. En este caso se utilizo la
técnica de correlación. Matlab permite calcular el coeficiente de correlación entre dos
matrices bidimensionales, dando como resultado un valor que representa la igualdad entre
dos matrices. corr2 realiza el coeficiente de correlación usando la expresión:
donde A = mean2(A), and B = mean2(B)
Se desarrolló un ciclo, el cual toma los valores de la correlación del carácter que está siendo
analizado y lo introduce en una matriz de 3 filas por 26 o 10 columnas, según sean letras o
números respectivamente. Posteriormente se hallan los máximos de las tres columnas y son
almacenados en otra matriz. Finalmente se encuentran las posiciones en las que estaban los
máximos para así determinar la letra o el número al que corresponden y mediante otro ciclo
se muestra esto en pantalla. El código implementado fue el siguiente:
%Ciclo que reconoce las letras y les asigna la posicion en la matriz de abecedario
fila=1;
ind=1;
while fila < 4
posp=1;
for posp=1:3
plc=plac{1,posp};
pos=1;
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
44
temp=0;
while pos<27
temp=ab{1,pos};
co=corr2(temp,plc);
letra(fila,pos)=co;
pos=pos+1;
end
fila=fila+1;
posp=posp+1;
end
end
for ind = 1:3
maxs=max(letra,[],2);
[posx posy]=find(letra==maxs(ind,1));
letras(ind)=posy
ind=ind+1;
end
%Ciclo que reconoce los numeros y les asigna la posicion en la matriz de
%numeros
fila=1;
ind=1;
while fila < 4
posp=4;
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
45
for posp=4:6
plc=plac{1,posp};
pos=1;
temp=0;
while pos<11
temp=numero{1,pos};
co=corr2(temp,plc);
num(fila,pos)=co;
pos=pos+1;
end
fila=fila+1;
posp=posp+1;
end
end
for ind = 1:3
maxs=max(num,[],2);
[posx posy]=find(num==maxs(ind,1));
nums(ind)=posy
ind=ind+1;
end
close all
mal='a';
ltr=1;
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
46
lt=1;
while ltr < 4
while lt < 4
if letras(ltr)== 1
mal(lt)='A'
elseif letras(ltr) == 2
mal(lt)='B'
elseif letras(ltr) == 3
mal(lt)='C'
elseif letras(ltr) == 4
mal(lt)='D'
elseif letras(ltr) == 5
mal(lt)='E'
elseif letras(ltr) == 6
mal(lt)='F'
elseif letras(ltr) == 7
mal(lt)='G'
elseif letras(ltr) == 8
mal(lt)='H'
elseif letras(ltr) == 9
mal(lt)='I'
elseif letras(ltr) == 10
mal(lt)='J'
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
47
elseif letras(ltr) == 11
mal(lt)='K'
elseif letras(ltr) == 12
mal(lt)='L'
elseif letras(ltr) == 13
mal(lt)='M'
elseif letras(ltr) == 14
mal(lt)='N'
elseif letras(ltr) == 15
mal(lt)='O'
elseif letras(ltr) == 16
mal(lt)='P'
elseif letras(ltr) == 17
mal(lt)='Q'
elseif letras(ltr) == 18
mal(lt)='R'
elseif letras(ltr) == 19
mal(lt)='S'
elseif letras(ltr) == 20
mal(lt)='T'
elseif letras(ltr) == 21
mal(lt)='U'
elseif letras(ltr) == 22
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
48
mal(lt)='V'
elseif letras(ltr) == 23
mal(lt)='W'
elseif letras(ltr) == 24
mal(lt)='X'
elseif letras(ltr) == 25
mal(lt)='Y'
elseif letras(ltr) == 26
mal(lt)='Z'
else
mal(lt)='Paila'
end
lt=lt+1;
ltr=ltr+1;
end
end
nmr=1;
man='1';
nm=1;
while nmr < 4
while nm < 4
if nums(nmr)== 1
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
49
man(nm)='1'
elseif nums(nmr) == 2
man(nm)='2'
elseif nums(nmr) == 3
man(nm)='3'
elseif nums(nmr) == 4
man(nm)='4'
elseif nums(nmr) == 5
man(nm)='5'
elseif nums(nmr) == 6
man(nm)='6'
elseif nums(nmr) == 7
man(nm)='7'
elseif nums(nmr) == 8
man(nm)='8'
elseif nums(nmr) == 9
man(nm)='9'
elseif nums(nmr) == 10
man(nm)='0'
else
disp('Paila')
end
nm=nm+1;
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
50
nmr=nmr+1;
end
end
plate=horzcat(mal,man);
disp(plate)
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
51
CONCLUSIONES
• La utilización de los elementos estructurantes, definidos en Matlab, es una
herramienta poderosa para simplificar los procedimientos a realizar cuando
trabajamos con imágenes y debemos eliminar estructuras y objetos irrelevantes al
objetivo propuesto.
• No es aconsejable utilizar elementos estructurantes y propiedades morfológicas si el
objetivo es implementar el código en otro compilador y programa diferente al de
Matlab, pero por facilidad y economía de tiempo se podrían utilizar para tener un
conocimiento inicial de los pasos que se deben realizar para cumplir el objetivo
propuesto a la imagen.
Al utilizar métodos tradicionales de filtrado, erosionado y dilatado de imágenes,
aseguramos la portabilidad del código hacia otros programas y dispositivos, como DSP´s,
aunque su implementación es mas larga, dificultosa y de mayor cuidado.
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB
52
BIBLIOGRAFIA
1) Digital filters and signal processing with MATLAB, exercises /Leland B. Jackson.
Boston: Kluwer Academic Publishers, c1996.
2) Introducción a los filtros digitales /Jesus Barrios Romano.
México: Universidad Autónoma Metropolitana, Unidad Iztapalapa , 1992.
3) Digital Image Processing, Third Edition/William K. Pratt
Los Altos, California, 2001.

Más contenido relacionado

La actualidad más candente

Conversion analogico digital: muestreo, cuantizacion y codificacion
Conversion analogico digital: muestreo, cuantizacion y codificacionConversion analogico digital: muestreo, cuantizacion y codificacion
Conversion analogico digital: muestreo, cuantizacion y codificacion
Lucre Castillo Lorenzo
 
Modelos de Simulacion
Modelos de SimulacionModelos de Simulacion
Modelos de Simulacion
Jammil Ramos
 
Dielectricos, Tangente de Perdidas
Dielectricos, Tangente de Perdidas Dielectricos, Tangente de Perdidas
Dielectricos, Tangente de Perdidas
Byron Quelex
 
ConversióN AnalóGica Digital Y ConversióN Digital AnalóGica
ConversióN AnalóGica Digital  Y ConversióN Digital AnalóGicaConversióN AnalóGica Digital  Y ConversióN Digital AnalóGica
ConversióN AnalóGica Digital Y ConversióN Digital AnalóGica
Edgar Martinez
 
MUESTREO Y RECONSTRUCCION DE SEÑALES
MUESTREO Y RECONSTRUCCION DE SEÑALESMUESTREO Y RECONSTRUCCION DE SEÑALES
MUESTREO Y RECONSTRUCCION DE SEÑALES
Linda Yesenia
 
Utp sirn_s4_red perceptron
 Utp sirn_s4_red perceptron Utp sirn_s4_red perceptron
Utp sirn_s4_red perceptron
jcbp_peru
 
FINGERPRINT BASED ATM SYSTEM
FINGERPRINT BASED ATM SYSTEMFINGERPRINT BASED ATM SYSTEM
FINGERPRINT BASED ATM SYSTEM
Journal For Research
 

La actualidad más candente (20)

Practica #15 modulacion - demodulacion FSK
Practica #15 modulacion - demodulacion FSKPractica #15 modulacion - demodulacion FSK
Practica #15 modulacion - demodulacion FSK
 
redes kohonen
redes kohonenredes kohonen
redes kohonen
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Analizador de Espectro
Analizador de Espectro Analizador de Espectro
Analizador de Espectro
 
Conversion analogico digital: muestreo, cuantizacion y codificacion
Conversion analogico digital: muestreo, cuantizacion y codificacionConversion analogico digital: muestreo, cuantizacion y codificacion
Conversion analogico digital: muestreo, cuantizacion y codificacion
 
Modelos de Simulacion
Modelos de SimulacionModelos de Simulacion
Modelos de Simulacion
 
análisis de componentes principales
análisis de componentes principales análisis de componentes principales
análisis de componentes principales
 
5.1 ejemplos uml
5.1 ejemplos uml5.1 ejemplos uml
5.1 ejemplos uml
 
Procesadores de Lenguajes II
Procesadores de Lenguajes IIProcesadores de Lenguajes II
Procesadores de Lenguajes II
 
Dielectricos, Tangente de Perdidas
Dielectricos, Tangente de Perdidas Dielectricos, Tangente de Perdidas
Dielectricos, Tangente de Perdidas
 
Control de errores
Control de erroresControl de errores
Control de errores
 
Recursividad
RecursividadRecursividad
Recursividad
 
Lecture 8 revisión de ejercicios unidad ii
Lecture 8 revisión de ejercicios   unidad iiLecture 8 revisión de ejercicios   unidad ii
Lecture 8 revisión de ejercicios unidad ii
 
ConversióN AnalóGica Digital Y ConversióN Digital AnalóGica
ConversióN AnalóGica Digital  Y ConversióN Digital AnalóGicaConversióN AnalóGica Digital  Y ConversióN Digital AnalóGica
ConversióN AnalóGica Digital Y ConversióN Digital AnalóGica
 
MUESTREO Y RECONSTRUCCION DE SEÑALES
MUESTREO Y RECONSTRUCCION DE SEÑALESMUESTREO Y RECONSTRUCCION DE SEÑALES
MUESTREO Y RECONSTRUCCION DE SEÑALES
 
ATM with an EYE
ATM with an EYEATM with an EYE
ATM with an EYE
 
Utp sirn_s4_red perceptron
 Utp sirn_s4_red perceptron Utp sirn_s4_red perceptron
Utp sirn_s4_red perceptron
 
FINGERPRINT BASED ATM SYSTEM
FINGERPRINT BASED ATM SYSTEMFINGERPRINT BASED ATM SYSTEM
FINGERPRINT BASED ATM SYSTEM
 
Lenguajes de simulación
Lenguajes de simulaciónLenguajes de simulación
Lenguajes de simulación
 
Simulacion de pi - monte carlo - buffon java
Simulacion de pi - monte carlo - buffon  javaSimulacion de pi - monte carlo - buffon  java
Simulacion de pi - monte carlo - buffon java
 

Similar a Reconocimiento de placas matlab

Ambrosi jonnathan compresion_imagenes_rna_presentacion
Ambrosi jonnathan compresion_imagenes_rna_presentacionAmbrosi jonnathan compresion_imagenes_rna_presentacion
Ambrosi jonnathan compresion_imagenes_rna_presentacion
Jhonatan Ambrosi
 
(2001) modelado y simulacion de sistemas
(2001) modelado y simulacion de sistemas(2001) modelado y simulacion de sistemas
(2001) modelado y simulacion de sistemas
mavelix
 
Colegio manuel informatica
Colegio manuel informaticaColegio manuel informatica
Colegio manuel informatica
Jonnathan Xavi
 
Periodo 3 desarrollo de habilidades de pensamiento - trabajo grupal
Periodo 3  desarrollo de habilidades de pensamiento - trabajo grupalPeriodo 3  desarrollo de habilidades de pensamiento - trabajo grupal
Periodo 3 desarrollo de habilidades de pensamiento - trabajo grupal
AndrsSinisterra1
 
45583-Text de l'article-55348-1-10-20061109.pdf
45583-Text de l'article-55348-1-10-20061109.pdf45583-Text de l'article-55348-1-10-20061109.pdf
45583-Text de l'article-55348-1-10-20061109.pdf
AlveiroPortilla
 
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Instituto Tecnologico de Tepic
 
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
MaryMamaniQuispe1
 

Similar a Reconocimiento de placas matlab (20)

Proyecto. vision artificial
Proyecto. vision artificialProyecto. vision artificial
Proyecto. vision artificial
 
Ambrosi jonnathan compresion_imagenes_rna_presentacion
Ambrosi jonnathan compresion_imagenes_rna_presentacionAmbrosi jonnathan compresion_imagenes_rna_presentacion
Ambrosi jonnathan compresion_imagenes_rna_presentacion
 
(2001) modelado y simulacion de sistemas
(2001) modelado y simulacion de sistemas(2001) modelado y simulacion de sistemas
(2001) modelado y simulacion de sistemas
 
Machine learning
Machine learningMachine learning
Machine learning
 
Graficacion investigacion2
Graficacion investigacion2Graficacion investigacion2
Graficacion investigacion2
 
Comp graf(1) marzo11
Comp graf(1) marzo11Comp graf(1) marzo11
Comp graf(1) marzo11
 
Isummitloxa
IsummitloxaIsummitloxa
Isummitloxa
 
Isummitloxa
IsummitloxaIsummitloxa
Isummitloxa
 
Graficos por Computadora (1)
Graficos por Computadora (1)Graficos por Computadora (1)
Graficos por Computadora (1)
 
Colegio manuel informatica
Colegio manuel informaticaColegio manuel informatica
Colegio manuel informatica
 
Introducción a los gráficos por computadora
Introducción a los gráficos por computadora Introducción a los gráficos por computadora
Introducción a los gráficos por computadora
 
Deteccion de trayectorias y caracteres con algoritmos geneticos y redes de ho...
Deteccion de trayectorias y caracteres con algoritmos geneticos y redes de ho...Deteccion de trayectorias y caracteres con algoritmos geneticos y redes de ho...
Deteccion de trayectorias y caracteres con algoritmos geneticos y redes de ho...
 
Periodo 3 desarrollo de habilidades de pensamiento - trabajo grupal
Periodo 3  desarrollo de habilidades de pensamiento - trabajo grupalPeriodo 3  desarrollo de habilidades de pensamiento - trabajo grupal
Periodo 3 desarrollo de habilidades de pensamiento - trabajo grupal
 
Periodo 3 desarrollo de habilidades de pensamiento - trabajo grupal
Periodo 3  desarrollo de habilidades de pensamiento - trabajo grupalPeriodo 3  desarrollo de habilidades de pensamiento - trabajo grupal
Periodo 3 desarrollo de habilidades de pensamiento - trabajo grupal
 
45583-Text de l'article-55348-1-10-20061109.pdf
45583-Text de l'article-55348-1-10-20061109.pdf45583-Text de l'article-55348-1-10-20061109.pdf
45583-Text de l'article-55348-1-10-20061109.pdf
 
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓN
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓNLA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓN
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓN
 
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
 
Ficha 1- Primeros pasos.pdf
Ficha 1- Primeros pasos.pdfFicha 1- Primeros pasos.pdf
Ficha 1- Primeros pasos.pdf
 
INTRODUCCIÓN A LAS CIENCIAS DE LA COMPUTACIÓN.
INTRODUCCIÓN A LAS CIENCIAS DE LA COMPUTACIÓN.INTRODUCCIÓN A LAS CIENCIAS DE LA COMPUTACIÓN.
INTRODUCCIÓN A LAS CIENCIAS DE LA COMPUTACIÓN.
 
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
 

Último

PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRYPLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
karendaza9506
 
tema ilustrado 9 el inicio del reinado de juan carlos I
tema ilustrado 9 el inicio del reinado de juan carlos Itema ilustrado 9 el inicio del reinado de juan carlos I
tema ilustrado 9 el inicio del reinado de juan carlos I
irenecarmona12
 
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptxATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
EdisonCondesoDelgado1
 
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docxPLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
Leo Florez
 
secuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulossecuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulos
RosarioLloglla
 
GRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivosGRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivos
CristianGmez22034
 

Último (20)

Slaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfSlaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
 
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRYPLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
 
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfINICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
 
Anexo Nivel 3 Ficha Lectura pptjsbdkks
Anexo  Nivel 3 Ficha  Lectura pptjsbdkksAnexo  Nivel 3 Ficha  Lectura pptjsbdkks
Anexo Nivel 3 Ficha Lectura pptjsbdkks
 
Fundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principalesFundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principales
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola Perez
 
Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30
 
tema ilustrado 9 el inicio del reinado de juan carlos I
tema ilustrado 9 el inicio del reinado de juan carlos Itema ilustrado 9 el inicio del reinado de juan carlos I
tema ilustrado 9 el inicio del reinado de juan carlos I
 
DIAGNOSTICO URBANO DE DE LA ISLA DE COCHE
DIAGNOSTICO URBANO DE DE LA ISLA DE COCHEDIAGNOSTICO URBANO DE DE LA ISLA DE COCHE
DIAGNOSTICO URBANO DE DE LA ISLA DE COCHE
 
Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....
 
Triptico de los derechos humanos pe señorees jaja
Triptico de los derechos humanos pe señorees jajaTriptico de los derechos humanos pe señorees jaja
Triptico de los derechos humanos pe señorees jaja
 
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptxATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
 
414414508-Diseno-de-Coberturas-Metalicas.pptx
414414508-Diseno-de-Coberturas-Metalicas.pptx414414508-Diseno-de-Coberturas-Metalicas.pptx
414414508-Diseno-de-Coberturas-Metalicas.pptx
 
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docxPLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
 
CATALOGO 2024 DIA DE LA MADRE, presentación.pdf
CATALOGO 2024 DIA DE LA MADRE, presentación.pdfCATALOGO 2024 DIA DE LA MADRE, presentación.pdf
CATALOGO 2024 DIA DE LA MADRE, presentación.pdf
 
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNALPOESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
 
Tríptico-en-homenaje-por-el-día-de-la-madre.pdf
Tríptico-en-homenaje-por-el-día-de-la-madre.pdfTríptico-en-homenaje-por-el-día-de-la-madre.pdf
Tríptico-en-homenaje-por-el-día-de-la-madre.pdf
 
secuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulossecuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulos
 
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdfCLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
 
GRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivosGRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivos
 

Reconocimiento de placas matlab

  • 1. SEMINARIO DE TITULACIÓN “PROCESAMIENTO DIGITAL DE SEÑALES” DISEÑO DE SISTEMA DE RECONOCIMIENTO DE PLACAS UTILIZANDO MATLAB T E S I N A Que para obtener el grado de: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA. Presentan: PAUL CARDENAS HIDALGO JOSÉ ALFREDO FLORES VARGAS JAIME LÓPEZ ZAVALETA PABLO MARTÍNEZ MORENO ASESORES: M. en C. ORLANDO BELTRÁN NAVARRO. M. en C. BRAULIO SANCHEZ ZAMORA México, D. F. Junio de 2009. INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA
  • 2. IPN ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN TESINA QUE PARA OBTENER EL TITULO DE: INGENIERO EN COMUNICACIONES Y ELECTRONICA NOMBRE DEL SEMINARIO: PROCESAMIENTO DIGITAL DE SEÑALES DEBERA DESARROLLAR: PAUL CARDENAS HIDALGO JOSE ALFREDO FLORES VARGAS JAIME LÓPEZ ZAVALETA PABLO MARTÍNEZ MORENO NOMBRE DEL TEMA “DISEÑO DE SISTEMA DE RECONOCIMIENTO DE PLACAS UTILIZANDO MATLAB” INTRODUCCION La implementación de algoritmos en visión por computador resulta muy costosa en tiempo que se requiere de la manipulación de punteros, gestión de memoria, etc. Hacerlo en lenguaje C++ supondría la inversión de tiempo y sin la seguridad de que lo queremos implementar funcionará. Estos problemas pueden ser resueltos si la implementación de prueba es realizada en Matlab utilizando su toolbox de procesamiento de imágenes con ello el tiempo de implementación se convierte en el mínimo con la confianza de utilizar algoritmos científicamente probados y robustos. El toolbox de procesamiento de imágenes contiene un conjunto de funciones de los algoritmos más conocidos para trabajar con imágenes binarias, trasformaciones geométricas, morfología y manipulación de color que junto con las funciones ya integradas en Matlab permite realizar análisis y trasformaciones de imágenes en el dominio de la frecuencia. CAPITULADO 1. TIPOS DE IMÁGENES 2. PROCESAMIENTO DIGITAL DE IMÁGENES Y SISTEMAS DE RECONOCIMIENTO DE PLACAS EXISTENTES 3. DISEÑO DE SISTEMA DE RECONOCIMIENTO DE PLACAS EN MATLAB Fecha: México D.F. Junio de 2009 M. en C. Orlando Beltrán Navarro M. en C. Braulio Sánchez Zamora Ing. Ignacio Monroy Ostria
  • 3. INDICE Planteamiento del problema Justificación Objetivo general CAPITULO 1. Tipos de imágenes Pág. 1.1 Introducción 2 1.2 Biometría 2 1.3 Percepción de colores 3 1.4 Imágenes digitales 4 1.5 Representación de colores en imágenes digitales 5 1.6 Resolución de las imágenes digitales 6 1.7 Tipos de imágenes 6 CAPITULO 2. Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 2.1 Conceptos básicos de las imágenes en Matlab 8 2.2 Procesamiento de imágenes 8 2.3 Procesamiento óptico 9 2.4 Procesamiento digital de imágenes 10 2.5 Utilidad del procesamiento de imágenes 12 2.6 Reconocimiento de Imágenes 13 2.7 Reconocimiento de caracteres 13 2.9 Filtros para la detección de bordes 14 2.8 Filtros 13 2.10 Aplicaciones del reconocimiento de imágenes 14 2.11 Sistemas de reconocimiento de placas existentes 15 2.12 Algoritmos y pasos a seguir para realizar el ANPR 17 2.13 Dificultades para el buen funcionamiento 17 2.14 Técnicas de evasión del ANPR 19 2.15 Otros usos 2.16 Control de acceso a estacionamientos, casetas de cobro y del ANPR 20 algunas variantes 21 2.17 Empresas existentes 23 CAPITULO 3 Diseño de sistema de reconocimiento de placas en MatLab 3.1 Desarrollo de proyecto 24 Conclusiones 51 Bibliografía 52
  • 4. Planteamiento del problema Los robos de automóviles y el mal uso de muchos de ellos para realizar ilícitos además de una mala gestión y poca cultura vehicular hacen de este trabajo una necesidad y actualmente una realidad capaz de simplificar muchas actividades además de brindar un buen control y monitoreo del vehículo que se desee. Objetivo general Diseñar un sistema mediante MATLAB para el reconocimiento automático de matriculas vehiculares capaz de procesar una imagen para posteriormente tomar información de la misma y poder ser almacenada en una base de datos coherente. Agilizar la gestión de la información vehicular en un sector determinado para poder brindar seguridad a todos los usuarios. Justificación Este proyecto se lleva a cabo para desarrollar un sistema de reconocimiento de matriculas vehiculares (implementado en MATLAB), actualmente en el mercado hay sistemas que cumplen esta función, pero estos dispositivos tienen un costo muy elevado. Se diseña para ayudar a reducir el alto índice de robos así como para poder gestionar el flujo y trafico vehicular en un área determinada. Con un dispositivo que tenga la capacidad de brindarnos una imagen adecuada (cámara fotografica) y el software ya mencionado se diseñara este sistema el cual se plantea como una herramienta de fácil manejo y ambiente de trabajo amigable.
  • 6. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 1 Tipos de imágenes 2 1.1 INTRODUCCION La implementación de algoritmos en visión por computador resulta muy costosa en tiempo que se requiere de la manipulación de punteros, gestión de memoria, etc. Hacerlo en lenguaje C++ (que por sus características compartidas de alto y bajo nivel lo hacen el mas apropiado para la implementación de algoritmos de visión computacional) supondría la inversión de tiempo y sin la seguridad de que lo queremos implementar funcionará. Además utilizar C++ para el periodo de prueba exige un tiempo normal de corrección de errores debidos al proceso de implementación del algoritmo, es decir errores programáticos efectuados por ejemplo al momento de multiplicar dos matrices, etc. Todos estos problemas pueden ser resueltos si la implementación de prueba es realizada en Matlab utilizando su toolbox de procesamiento de imágenes con ello el tiempo de implementación se convierte en el mínimo con la confianza de utilizar algoritmos científicamente probados y robustos. El toolbox de procesamiento de imágenes contiene un conjunto de funciones de los algoritmos mas conocidos para trabajar con imágenes binarias, trasformaciones geométricas, morfología y manipulación de color que junto con las funciones ya integradas en Matlab permite realizar análisis y trasformaciones de imágenes en el dominio de la frecuencia (trasformada de Fourier). 1.2 Biometría La biometría es el reconocimiento del cuerpo humano a través de ciertas características físicas, como el tamaño de los dedos de la mano, las huellas dactilares o los patrones en las retinas de los ojos. Los sistemas de computadoras actuales permiten tener mejores niveles de seguridad utilizando la biometría. Por ejemplo, una persona puede tener acceso a un área restringida, por medio del reconocimiento de las características físicas de su mano en un dispositivo especial. Si en el proceso de validación se verifica que la persona tiene permiso para entrar al área, entonces le permitirá el acceso. Este tipo de sistemas se está volviendo cada vez
  • 7. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 1 Tipos de imágenes 3 más utilizado, desplazando los sistemas antiguos de identificación, de esta forma es como tomamos este concepto para aplicarlo al sistema que se diseñara. 1.3 Percepción de colores El ojo tiene dos tipos de receptores: bastones y conos. Los bastones transmiten diferentes intensidades de gris y los conos le permiten al cerebro percibir la tonalidad de los colores. Existen tres tipos de conos, el primero es sensible a la luz rojo/naranja, el segundo a la luz verde y el tercero a la luz azul/violeta. Cuando un cono es estimulado, el cerebro percibe el color correspondiente. Por ejemplo, cuando los conos verdes son estimulados, se percibe el color verde; cuando los conos rojo/naranja son estimulados, se percibe el color rojo. Si son estimulados simultáneamente ambos tipos de conos, los verdes y los rojo/naranja, se percibe el color amarrillo. El ojo no puede diferenciar entre un color amarillo espectral, y alguna combinación de rojo y verde. Lo mismo sucede con nuestra percepción de los colores cian, agenta, y los otros colores espectrales intermedios. Debido a esta respuesta fisiológica, el ojo puede percibir una amplia gama de tonalidades por medio de la variación de solo tres colores: rojo, verde y azul. Cualquier color puede ser espectralmente analizado usando un prisma para determinar sus intensidades primarias de rojo, verde y azul.
  • 8. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 1 Tipos de imágenes 4 1.4 Imágenes digitales La digitalización de imágenes es el proceso por medio del cual se convierte una imagen en un formato interpretable por las computadoras. Una imagen digital se puede obtener utilizando cámaras fotográficas digitales, escáneres, etcétera. En la década de los ochenta solo era posible utilizar cuatro colores en las pantallas de las computadoras. Esto evolucionó rápidamente y actualmente se utilizan millones de colores. Una imagen digital es un arreglo de dos dimensiones de píxeles (picture element) y un píxel es la unidad mínima que conforma una imagen digital. Figura 1.1. Representación de una imagen digital. 1.5 Representación de colores en imágenes digitales. Normalmente, los colores primarios son el rojo, el amarillo y el azul, y a partir de la mezcla de estos se crean los otros colores. Sin embargo, en las imágenes digitales los colores primarios son el rojo (Red), el verde (Green) y el azul (Blue) y se utilizan las intensidades de luz para obtener nuevos colores. Esto dio lugar al sistema RGB.
  • 9. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 1 Tipos de imágenes 5 Una imagen digital está compuesta por una matriz bidimensional de elementos RGB. En imágenes digitales de color verdadero, se utilizan 8 bits (1 byte) para representar la intensidad de cada componente o canal de color, y por ser 3 componentes por color, se necesitan 24 bits (3 bytes) para formar un solo color, lo que es equivalente a un píxel. Entonces, una imagen de 10 x 10 píxeles utiliza 2400 bits o sea 300 bytes. Siguiendo el esquema de 1 byte por cada componente o canal, y sabiendo que el valor máximo que puede ser representado por 1 byte es 255, la intensidad de una canal está en un rango de 0 a 255, por lo que un píxel estará compuesto por tres diferentes intensidades de R, G y B en un rango de 0 a 255. El sistema RGB no es el único utilizado en las imágenes digitales. Se han creado diversos sistemas para representar los colores según la aplicación. El sistema RGB es nativo de las computadoras, pero no siempre es el más adecuado. Es un sistema aditivo porque el color blanco se logra mezclando los tres colores rojo, verde y azul, y el negro es la ausencia de color. Por el contrario, en el sistema CMY (Cyan, Magenta, Yellow) utilizado para los medios impresos, expresa las intensidades de los colores cian, magenta y amarillo, es un sistema sustractivo porque el color negro se logra mezclando los tres colores y el blanco es la ausencia de color. En el sistema RGB el blanco es RGB (255, 255, 255) y el negro es RGB (0, 0, 0), en donde los valores entre paréntesis son las intensidades de cada uno de los canales RGB. RGB (255,0,0), RGB(0,255,0) y RGB(0,0,255) representan el rojo, el verde y el azul respectivamente. Al mezclar el color rojo con el azul se obtiene el color morado, RGB (255, 0, 255). Se pueden crear todos los colores disponibles variando las intensidades de las componentes RGB. Otro sistema es el YUV, que fue adoptado por National Television System Commitee (NTSC) para la transmisión de señales de televisión a color. Su propósito es hacer uso de las características del ojo humano para maximizar la utilización de un ancho de banda definido. El sistema visual humano es más sensible a los cambios de intensidad del color que a los cambios de la tonalidad.
  • 10. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 1 Tipos de imágenes 6 Existe una fórmula para convertir de un sistema de representación de colores a otro. En la conversión no se pierde la información sino se representa de una forma distinta. 1.6 Resolución de las imágenes digitales La resolución es un factor que se utiliza para convertir las dimensiones de una imagen física a píxeles de una imagen digital y viceversa. Si una fotografía es digitalizada a 300 dpi (Dots Per Inch) o puntos por pulgada, significa que por cada pulgada de la fotografía física original se van a obtener 300 píxeles en la imagen digitalizada. Si se imprime una imagen a 75 dpi, quiere decir que por cada 75 píxeles se imprimirá una pulgada sobre papel. 1.7 Tipos de imágenes JPEG Las imágenes en formato JPEG (con extensión JPG) son imágenes en color real (paleta de colores RGB de 24 bits) comprimidas mediante un algoritmo matemático. Figura 1.2. Imagen en formato JPEG.
  • 11. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 1 Tipos de imágenes 7 GIF En el formato GIF, las imágenes sólo se representan mediante una paleta de 256 colores, por lo que no permiten la presentación de imágenes muy complejas. Son las más empleadas por su pequeño tamaño Figura 1.3. Imagen en formato GIF. GIF animado Consiste en una serie de imágenes en formato GIF, y por tanto en 256 colores) que se alternan en la pantalla del ordenador, obteniéndose una película. El GIF animado puede repetirse un número determinado de veces o indefinidamente, de forma que la película se repita ininterrumpidamente, volviendo al principio cuando se ve la última imagen.
  • 12. CAPITULO 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes
  • 13. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 8 2.1 Conceptos básicos de las imágenes en Matlab En Matlab una imagen a escala de grises es representada por medio de una matriz bidimensional de m x n elementos en donde n representa el numero de píxeles de ancho y m el numero de píxeles de largo. El elemento v11 corresponde al elemento de la esquina superior izquierda, donde cada elemento de la matriz de la imagen tiene un valor de 0 (negro) a 255 (blanco). Por otro lado una imagen de color RGB (la mas usada para la visión computacional, además de ser para Matlab la opción default) es representada por una matriz tridimensional m x n x p, donde m y n tienen la misma significación que para el caso de las imágenes de escala de grises mientras p representa el plano, que para RGB que puede ser 1 para el rojo, 2 para el verde y 3 para el azul. 2.2 Procesamiento de imágenes El procesamiento de imágenes tiene como objetivo mejorar el aspecto de las imágenes y hacer más evidentes en ellas ciertos detalles que se desean hacer notar. La imagen puede haber sido generada de muchas maneras, por ejemplo, fotográficamente, o electrónicamente, por medio de monitores de televisión. El procesamiento de las imágenes se puede en general hacer por medio de métodos ópticos, o bien por medio de métodos digitales, en una computadora. El matemático Jean-Baptiste-Joseph Fourier (1768-1830) nació en Auxerre, alrededor de 160 km al sureste de París. Perdió a sus padres a la temprana edad de ocho años, quedando al cuidado del obispo de Auxerre, gracias a la recomendación de una vecina. Desde muy pequeño mostró una inteligencia y vivacidad poco comunes. Siguió una carrera religiosa en una abadía, al mismo tiempo que estudiaba matemáticas, para más tarde dedicarse a impartir clases. Sus clases eran muy amenas, pues constantemente mostraba una gran erudición y conocimientos sobre los temas más variados.
  • 14. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 9 Fourier estaba muy interesado en la teoría del calor, y además tenía una gran obsesión práctica por él. Se dice que mantenía su habitación tan caliente que era muy incómoda para quienes lo visitaban, y que aparte de eso, siempre llevaba puesto un grueso abrigo. Algunos historiadores atribuyen esta excentricidad a los tres años que pasó en Egipto con el ejército de Napoleón Bonaparte. La teoría de Fourier se consideró tan importante desde de sus inicios, que lord Kelvin dijo de ella: "El teorema de Fourier no solamente es uno de los resultados más hermosos del análisis moderno, sino que además se puede decir que proporciona una herramienta indispensable en el tratamiento de casi todos los enigmas de la física moderna." El teorema de Fourier afirma que una gráfica o función, cualquiera que sea su forma, se puede representar con alta precisión dentro de un intervalo dado, mediante la suma de una gran cantidad de funciones senoidales, con diferentes frecuencias. Dicho de otro modo, cualquier función, sea o no sea periódica, se puede representar por una superposición de funciones periódicas con diferentes frecuencias. La variación de la irradiación o brillantez de una imagen, medida a lo largo de una dirección cualquiera es entonces una función que se puede representar mediante el teorema de Fourier, con una suma de distribuciones senoidales de varias frecuencias. Sin entrar en detalles técnicos innecesarios, simplemente afirmaremos aquí que atenuar o reforzar individualmente algunas de estas componentes senoidales puede tener un efecto dramático en la calidad de una imagen, mejorándola o empeorándola, según el caso. Este es el fundamento del procesamiento de imágenes, tanto por medios ópticos como digitales. 2.3 Procesamiento óptico Los principios del procesamiento óptico de imágenes están bien establecidos desde el siglo pasado, cuando se desarrolló la teoría de la difracción de la luz. Sin embargo, su aplicación práctica data apenas del principio de la década de los sesenta, cuando se comenzó a disponer del rayo láser.
  • 15. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 10 El procesamiento óptico se basa en el hecho de que la imagen de difracción de Fraunhofer de una transparencia colocada en el plano focal frontal de una lente es una distribución luminosa que representa la distribución de las frecuencias de Fourier que componen la imagen, a la que se le llama técnicamente transformada de Fourier. Cada porción de la transformada de Fourier corresponde a una frecuencia espacial diferente sobre el objeto. Por lo tanto, mediante los diafragmas adecuados se pueden eliminar las frecuencias espaciales, llamadas también de Fourier, que se deseen quitar. 2.4 Procesamiento digital de imágenes Figura 2.1. Procesamiento óptico de imágenes. (a) imagen original, con líneas de barrido, tipo imagen de televisión; (b) transformada de Fourier del objeto; (c) transformada de Fourier modificada, después de filtrar y (d) imagen procesada, sin las líneas de barrido. Al igual que en el caso del procesamiento óptico, los principios fundamentales del procesamiento digital de imágenes están establecidos hace muchos años, pero no se llevaban a cabo debido a la falta de computadoras. Con la aparición de las computadoras de
  • 16. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 11 alta capacidad y memoria, era natural que se comenzara a desarrollar este campo. Uno de los primeros lugares donde se empezó a realizar el procesamiento digital fue en el Jet Propulsion Laboratory, en 1959, con el propósito de mejorar las imágenes enviadas por los cohetes. Los resultados obtenidos en un tiempo relativamente corto fueron tan impresionantes que muy pronto se extendieron las aplicaciones del método a otros campos. Figura 2.2. División de una imagen en pixeles. El procesamiento digital de imágenes se efectúa dividiendo la imagen en un arreglo rectangular de elementos. Cada elemento de la imagen así dividida se conoce con el nombre de pixel. El siguiente paso es asignar un valor numérico a la luminosidad promedio de cada pixel. Así, los valores de la luminosidad de cada pixel, con sus coordenadas que indican su posición, definen completamente la imagen. Todos estos números se almacenan en la memoria de una computadora. El tercer paso es alterar los valores de la luminosidad de los pixeles mediante las operaciones o transformaciones matemáticas necesarias, a fin de hacer que resalten los detalles de la imagen que sean convenientes. El paso final es pasar la representación de estos pixeles a un monitor de televisión de alta definición, con el fin de mostrar la imagen procesada.
  • 17. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 12 Figura 2.3. Procesamiento digital de imágenes. Cefalograma en el que se han reforzado las componentes de Fourier de alta frecuencia. (Tomado de S. W. Oka y H. J. Trussell, The Angle Ortodontist, 48, núm. 1, 80, 1978). (a) Imagen original y (b) imagen procesada. 2.5 Utilidad del procesamiento de imágenes La utilidad del procesamiento de imágenes es muy amplia y abarca muchos campos. Un ejemplo son las imágenes obtenidas con fines de diagnóstico médico. Otro ejemplo son las imágenes aéreas obtenidas para realizar exámenes del terreno. Mediante este método se pueden analizar los recursos naturales, las fallas geológicas del terreno, etcétera. El procesamiento digital de imágenes es el conjunto de técnicas que se aplican a las imágenes digitales con el objetivo de mejorar la calidad o facilitar la búsqueda de información. Las operaciones que se pueden realizar con imágenes se dividen en: • Operaciones de punto • Operaciones de entorno • Operaciones con dos o más imágenes
  • 18. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 13 2.6 Reconocimiento de Imágenes Los sistemas de computadoras son cada vez más potentes y menos costosos, lo que permite crear nuevas formas de arte que antes no eran posibles, y algunas otras formas de arte antiguas pueden ahora verse beneficiadas con novedosas técnicas asistidas por computadora. El reconocimiento de imágenes ha evolucionado a medida que mejora la tecnología. Puede encontrarse en numerosos campos. 2.7 El reconocimiento óptico de caracteres, conocido también como OCR (Optical Character Recognition), es un proceso por el cual en una imagen digital se reconocen los caracteres con la finalidad de poder editarla como texto. Este tipo de aplicaciones son utilizadas como complemento en escáneres y otros dispositivos de captura de imágenes digitales. Reconocimiento de caracteres Los filtros se utilizan para la modificación de imágenes ya sea para detectar los bordes de una escena o para modificar el aspecto, otra función de los filtros es para la eliminación de ruido de la imagen. 2.8 Filtros Al hablar de un filtro nos estamos refiriendo a realizar una Convolución de una matriz con respecto a un pixel y la vecindad de este, esto quiere decir, si la imagen es de 200x300 pixeles y el filtro con el cual se va a realizar la convolución es una matriz de 3x3 entonces se irá desplazando el filtro pixel a pixel iniciando en la posición (1,1) hasta llegar a la (199,299). La magnitud del gradiente es entonces calculada con la siguiente fórmula:
  • 19. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 14 2.9 Filtros para la detección de bordes Un filtro para la detección de bordes que es un clásico el de Sobel el cual utiliza dos mascaras o filtros los cuales uno detecta los bordes verticales y el otro los horizontales, para obtener los bordes completos se realiza la suma de las imágenes que nos resultaron con los bordes verticales y horizontales. Otro filtro para la detección de bordes es Prewitt, el cual consta de 8 matrices, que se aplican pixel a pixel en la imagen y luego se suman las imágenes para obtener los bordes bien marcados. El filtro de Prewitt, marca muy bien los bordes, ya que sus matrices atacan estos de seis lados diferentes, en general cada matriz toma el nombre de un punto cardinal: Norte, Sur, Este, Oeste, Noroeste, Noreste, Suroeste, Sureste. 2.10 Aplicaciones del reconocimiento de imágenes A) Información inteligente de tráfico vehicular Esta aplicación nos permite obtener información de flujos o volumen de transito en calles para que al contar con información estadística, se pueda mejorar los parámetros de circulación, por ejemplo, tiempos de espera de semáforos, determinación de tiempos y lugares críticos para operativos de agilización de flujos, etc. Al igual que otras aplicaciones, con el mismo equipo puede conjuntarse esta funcionalidad y generar un dispositivo mucho más complejo. B) Identificación de personas para investigaciones policíacas.
  • 20. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 15 Aunque las técnicas aun están en desarrollo en este campo, y aun no existe una aplicación totalmente confiable, es evidente la importancia del reconocimiento de imágenes para la identificación de personas en investigaciones policíacas. Muchas veces en investigaciones de crímenes un testigo puede describir con mucho detalle el rostro de un criminal. Un dibujante profesional convierte la descripción verbal del testigo en un dibujo sobre papel. El trabajo de la computadora consiste en buscar el rostro del criminal en una base de datos de imágenes. En las investigaciones policíacas también se utiliza la búsqueda de huellas dactilares en una base de datos. 2.11 Sistemas de reconocimiento de placas existentes. El reconocimiento automático de matrículas (Automatic number plate recognition o ANPR en inglés) es un método de vigilancia en masa que utiliza reconocimiento óptico de caracteres en imágenes para leer las matrículas de los vehículos. En 2005, los sistemas ya podían escanear las matrículas con una frecuencia aproximada de una por segundo en vehículos con velocidades de hasta 160 km/h. Y este sistema se complementaba al utilizar el circuito cerrado de televisión existente o radares, o equipos diseñados específicamente para dicha tarea. En principio comenzaron a ser utilizadas por las diversas fuerzas de policía y como método de recaudación electrónica de peaje en las autopistas de pago de algunos países , y para vigilar la actividad del tránsito. El ANPR se puede utilizar para almacenar las imágenes capturadas por las cámaras fotográficas, así como el texto de la matrícula, y algunas se pueden configurar para almacenar una fotografía del conductor. Estos sistemas a menudo utilizan iluminación infrarroja para hacer posible que la cámara pueda tomar fotografías en cualquier momento del día. En al menos una versión de cámara fotográfica para la supervisión de intersecciones se incluye un flash de gran alcance, que sirve para iluminar la escena y hacer que el infractor se dé cuenta de su error. La tecnología ANPR tiende a ser específica para una región, debido a la variación entre matrículas de un lugar a otro. El software del sistema se ejecuta sobre un hardware de PC estándar y puede ser enlazado con otras aplicaciones o bases de datos. Primero utiliza una serie de técnicas de
  • 21. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 16 manipulación de la imagen para detectar, normalizar y realzar la imagen del número de la matrícula, y finalmente reconocimiento óptico de caracteres para extraer los alfanuméricos de la matrícula. Los sistemas ANPR/ALPR se pueden utilizar de dos modos; uno permite que el proceso sea realizado en su totalidad en el lugar de la toma en tiempo real, mientras que el otro transmite todas las imágenes de muchas cámaras a un ordenador remoto en que se realiza el proceso de OCR más tarde. Cuando se realiza “in situ” es decir en el mismo lugar donde ocurrió el incidente, la información capturada de la matrícula alfanumérica, fecha y hora, identificación del lugar y cualquier otra información que se requiera es completada en unos 250 milisegundos. Esta información, convertida ahora en pequeños paquetes de datos, se puede transmitir fácilmente a algún ordenador remoto para un posterior procesamiento en caso de que sea necesario, o ser almacenado en el lugar para ser recuperada posteriormente. En la otra disposición, típicamente hay una gran cantidad de PC’s usados en un sitio de servidores para manejar altas cargas de trabajo, como por ejemplo los que se encuentran en el proyecto de carga de congestión de Londres. A menudo en dichos sistemas existe la necesidad de emitir imágenes al servidor remoto y éste puede requerir medios de transmisión con un gran ancho de banda. Los inconvenientes de estos sistemas están centrados en el temor en cuanto a la privacidad de los movimientos de los ciudadanos y los informes de los medios sobre la identificación errónea y altas tasas de error. Sin embargo, según se han ido desarrollando, estos sistemas han logrado ser mucho más exactos y fiables.  Al ANPR se le conoce a veces con otros términos: Diversidad de nombres para este sistema • Identificación automática de vehículos (Automatic vehicle identification, AVI) • Reconocimiento de matrículas de vehículos (Car plate recognition, CPR) • Reconocimiento de matrículas (Licence plate recognition, LPR) ANPR utiliza reconocimiento óptico de caracteres (OCR) en las imágenes tomadas por las cámaras fotográficas. Algunas matrículas utilizan cambios en los tamaños de las fuentes y en la posición - los sistemas ANPR deben poder hacer frente a estas diferencias para ser
  • 22. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 17 verdaderamente eficaces. Algunos sistemas más complicados pueden distinguir variantes internacionales, aunque muchos programas se adaptan a cada país individualmente. Hay ciertos algoritmos principales que el software necesita para identificar una matrícula: 2.12 Algoritmos y pasos a seguir para realizar el ANPR 1. Localización de la matrícula - responsable de encontrar y aislar la matrícula en la imagen. 2. Orientación y tamaño de la matrícula - compensa los ángulos que hacen que la matrícula parezca "torcida" y ajusta las dimensiones al tamaño requerido. 3. Normalización - ajusta el brillo y el contraste de la imagen. 4. Segmentación de los caracteres - encuentra los distintos caracteres presentes en la matrícula. 5. Reconocimiento óptico de caracteres. 6. Análisis sintáctico y geométrico - comprueba los caracteres encontrados y sus posiciones con las reglas específicas del país al que pertenece la matrícula. La complejidad de cada una de estas subdivisiones del programa determina la exactitud del sistema. Durante la tercera fase (normalización) algunos sistemas utilizan técnicas de detección de borde para aumentar la diferencia en la imagen entre las letras y el fondo de la placa. También se puede utilizar un filtro digital de punto medio para reducir el "ruido" visual de la imagen. El software debe ser capaz de afrontar diferentes dificultades posibles, que incluyen: 2.13 Dificultades para el buen funcionamiento. • Resolución de imagen pobre, a menudo porque la matrícula está demasiado lejos, aunque a menudo es resultado del uso de una cámara de baja calidad.
  • 23. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 18 • Imágenes desenfocadas, en particular desenfoque de movimiento y muy a menudo en unidades móviles • Iluminación pobre y bajo contraste debido a sobreexposición, reflexión o sombras • Un objeto que oscurece (parte de) la matrícula, a menudo una barra del remolque, o suciedad en la matrícula • Técnicas de evasión Los primeros sistemas ANPR eran incapaces de leer letras blancas o plateadas sobre un fondo negro, como se permitía en los vehículos de algunos países como Reino Unido fabricados antes de 1973. Aunque algunos de estos problemas se pueden corregir en el software, se dejan sobre todo en el lado del hardware del sistema para ofrecer soluciones a estos problemas. El aumento de la altura de la cámara puede evitar problemas con los objetos (tales como otros vehículos) que oscurecen la placa, pero introduce y aumenta otros problemas como el ajuste según la oblicuidad creciente de la placa. Muchos países utilizan matrículas retroreflectivas. Esto devuelve la luz hacia la fuente y mejora así el contraste de la imagen. En algunos países los caracteres de la matrícula no son reflectantes, dando un alto nivel del contraste con el fondo reflectante bajo cualquier condición de iluminación. Una cámara que utiliza imagen infrarroja (con un filtro normal de color sobre la lente y una fuente luminosa infrarroja al lado de ella) beneficia en gran medida, reflejándose las ondas infrarrojas desde la matrícula. Sin embargo, esto sólo es posible en cámaras ANPR dedicadas, por lo que las cámaras usadas para otros propósitos deben confiar en mayor medida en las capacidades del software. Además, cuando se necesita una imagen a todo color y la captación de detalles es necesario tener una cámara con infrarrojos y una cámara normal (en color) funcionando conjuntamente. Imágenes borrosas dificultan el OCR – los sistemas ANPR deberían tener altas velocidades de disparo para evitar el desenfoque de movimiento Para evitar el desenfoque es ideal tener la velocidad del obturador de la cámara fijada a 1/1000 segundos. Debido a que el coche está en movimiento, el uso de velocidades más
  • 24. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 19 reducidas podría dar lugar a una imagen demasiado borrosa para ser leída con el software OCR, especialmente si la cámara está en una posición mucho más alta que el vehículo. Cuando el tránsito es lento o cuando la cámara fotográfica está a una altura inferior y el vehículo está en un ángulo de aproximación a la cámara, no es necesario que la velocidad del obturador sea tan alta. Velocidades del obturador de 1/500 pueden funcionar correctamente con vehículos con una velocidad de hasta 64 kilómetros por hora y 1/250 hasta 8 kilómetros por hora. En algunos coches, las barras de remolque pueden oscurecer uno o dos caracteres de la matrícula. Las bicicletas en las defensas también oscurecer la placa, aunque en algunos países y jurisdicciones, estos casos no generan ningún tipo de infracción y dificultan la acción del ANPR Algunos sistemas a escala reducida permiten algunos errores en la matrícula. Cuando se utiliza para ofrecer acceso específico de los vehículos a una zona con barrera, la decisión puede ser tomada con un índice de error aceptable de un carácter. Esto es así porque la probabilidad de que un coche desautorizado con una matrícula tan similar se considera que es absolutamente pequeña. Sin embargo, este nivel de imprecisión no sería aceptable en la mayoría de las aplicaciones de un sistema ANPR. Los propietarios de vehículos han utilizado una variedad de técnicas para intentar evadir los sistemas ANPR. Un método consiste en incrementar las propiedades de reflexión de las letras y aumentar así la probabilidad de que el sistema no sea capaz de localizar la matrícula o de producir suficiente nivel de contraste para lograr leerla. Esto normalmente se realiza usando una tapadera de matrículas o recubriendo la placa con aerosol, aunque hay dudas sobre la efectividad de este último. En la mayoría de las jurisdicciones, tanto de nuestro país como alrededor del mundo, las tapaderas son ilegales y está contemplado bajo leyes existentes, mientras que en la mayoría de los países no hay ninguna ley que rechace el uso de los aerosoles. 2.14 Técnicas de evasión del ANPR
  • 25. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 20 En Argentina la matrícula tiene la misma consideración que un documento público, por lo que se considera delito su modificación. En una ruta de transporte publico de Toronto (Canadá), la policía ha registrado varias técnicas avanzadas que algunos conductores han tratado de llevar a cabo. Un empleado de esta ruta tenía un mecanismo que le permitía levantar un cable del asiento del conductor que hacía que se mostrara una matrícula diferente en el momento en que pasaba por las zonas vigiladas con cámara. Otros han tratado de manchar su matrícula con suciedad o utilizar cubiertas para enmascararla. Los novedosos marcos alrededor de las matrículas han sido declarados ilegales en diversos lugares siendo los pineros de esta restricción los Estados Unidos porque causaban problemas en los sistemas ANPR. Esta ley convierte el uso de dichos marcos en un delito menor. Hay algunos paneles traseros para coche con una inserción en ángulo para la matrícula, lo que cambia la alineación de caracteres de la rejilla de lectura, quizás la manera más fácil de invalidar el reconocimiento es simplemente permitir que la pintura reflectante de las placas se degrade por la edad y se haga por tanto ilegible. Si un sistema ANPR no puede leer la placa de matrícula avisará, por medio de una señal acústica, para llamar la atención de los operadores humanos, que pueden entonces tratar de identificar los caracteres visualmente. Es entonces posible hacer operaciones de búsqueda usando caracteres comodín que sustituyan cualquier parte oculta de la matrícula y utilizar los detalles del coche (fabricante y modelo, por ejemplo) para refinar la búsqueda. 2.15 Otros usos Los sistemas ANPR también pueden ser usados para: del ANPR • Cruce de fronteras • Estaciones de servicios para llevar un registro de los conductores que abandonan la estación sin realizar algún pago. • Control de acceso a estacionamientos públicos o de algún particular.
  • 26. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 21 • Una herramienta de mercadotecnia para llevar un registro de patrones de uso en alguna bodega o empresas dedicadas a la logística. • Sistemas de gestión de tráfico, para determinar el flujo de tráfico usando el tiempo que tardan los vehículos en pasar por dos sitios dotados de ANPR 2.16 Control de acceso a estacionamientos, casetas de cobro y algunas variantes Con esta aplicación podemos controlar el acceso a estacionamientos de dependencias y estacionamientos públicos o corporativos, controlando no solo quien entra y quien sale, sino también el horario en que estas transacciones deben de ocurrir, pudiendo restringir el acceso después de un tiempo de tolerancia o salida a personal que todavía debe estar laborando. Figura 2.4. Aplicación de control para la identificación de placas. Incluso se puede reconocer colores y patrones del vehículo para evitar suplantación de placas, por ejemplo que entren con un carro compacto y salgan con un carro de lujo cambiándole la placa al vehículo.
  • 27. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 22  Reconocimiento y detección en tiempo real de placas usando tecnología de análisis de video Esta tecnología permite el reconocimiento de placas usando video en tiempo real, lo cual permite tener un sin número de aplicaciones tanto para control estadístico, seguridad pública, control de velocidades, etc. Figura 2.5. Reconocimiento y detección en tiempo real de placas.  Velocidad Promedio Esta aplicación nos permite controlar la velocidad promedio de los vehículos pasando a través de dos puntos de control. Al saber la distancia y el tiempo podemos determinar la velocidad promedio, que es una ventaja con respecto a los radares convencionales dado que esos solo miden la velocidad instantánea. De la misma forma se puede interactuar con otros sistemas para poder enviar la placa y la foto del vehículo, para procesar la infracción correspondiente sin necesidad de intervención humana, agilizando el proceso y evitando errores.
  • 28. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes 23 2.17 Empresas existentes Adaptive Recognition es una compañía dedicada a producir equipos inteligentes los cuales procesan imágenes en el contexto de seguridad y control de tráfico. Las solucione de Adaptive Recognition son utilizadas hoy en día mundialmente para asegurar todo tipo de documentos y control de tráfico por medio del reconocimiento de placas.  CARMEN ANPR Este producto el cual se basa en reconocimiento de caracteres por medio de redes neuronales, nos permite identificar las placas de los automóviles convirtiéndolas a texto para posteriormente ser utilizadas como mejor sea conveniente. A esta tecnología se le conoce como ANPR (Automated Number Plate Recognition) por sus siglas en inglés y está altamente probada en más de 60 países con miles de sistemas instalados a la fecha. Existen dos versiones, la primera (Carmen FreeFlow) para ser utilizada en vías rápidas la cual permite reconocer placas con velocidades hasta de 250 km/h y la segunda (Carmen Parking) para ser utilizada en controles de acceso a estacionamientos, garajes, etc.
  • 29. CAPITULO 3 Diseño del sistema de reconocimiento de placas en MatLab
  • 30. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 24 3.1 Desarrollo del proyecto Restricciones: Las imágenes tomadas pueden ser de cualquier tamaño, pero la placa debe cumplir con las siguientes condiciones de 150 a 210 pixeles y de 50 a 110 pixeles. Además, las fotos tomadas de la placa no pueden estar inclinadas. Procedimiento: Inicialmente se necesita diferenciar si la imagen está en escala de grises o en RGB para poder hacer la conversión correspondiente. Se utiliza el siguiente código: I=imread('C:foto104.jpg'); info=imfinfo('C:foto104.jpg'); if info.ColorType=='truecolor' %Ciclo para determinar si es a color o en I=rgb2gray(I); %escala de grises para poder hacer o no la else %conversion necesaria I=I; End Una vez realizado esto se recorta la imagen para poder eliminar zonas en las que no existe información relevante a la placa como los bordes superiores y externos, se muestra en la figura 3.1. Se observaron las fotos para determinar cual es el rango aproximado que se puede cortar.
  • 31. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 25 Figura 3.1. Imagen Recortada Después del recorte se determina el umbral óptimo de la imagen. Esto se hace calculando el gradiente de la imagen utilizando la técnica de Sobel para hallar posibles picos en la imagen, y luego las siguientes ecuaciones: Se implementó el siguiente código para definir una función para calcular el umbral óptimo de cada foto en particular: % umbral=UmbralOptimo(imagen, filasImagen, columnasImagen, gradiente); % Algoritmo para calcular el umbral optimo para la binarizacion. function umbral=UmbralOptimo(imagen, filasImagen, columnasImagen, gradiente) % Creo una variable que me dice de que color era el último grupo que guarde % de esta forma se que la cola del final de la fila pertenece al otro color % la variable se llama ultimoColor, si vale cero fue oscuro y si vale uno % fue claro.
  • 32. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 26 numOscuros=0; numClaros=0; oscuros=0; claros=0; cont=0; acum=0; % Este if es para solucionar el problema que ocurre si no hay bordes en la % primer fila entonces no se sabe si es clara o oscura. % Supongo continuidad en los colores, si en la segunda fila tampoco hay bordes % estos los supongo del mismo color que la primera. if imagen(1,1)<(max(max(imagen))/2) % Como es oscuro pongo que el ultimo color fue claro. ultimoColor=1; else % Como es claro pongo que el ultimo color fue oscuro. ultimoColor=0; end for i=1:filasImagen if ultimoColor==0
  • 33. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 27 numClaros=numClaros+cont; cont=0; claros=claros+acum; acum=0; else numOscuros=numOscuros+cont; cont=0; oscuros=oscuros+acum; acum=0; end for j=1:columnasImagen if gradiente(i,j)==0 cont=cont+1; acum=acum+imagen(i,j); else if gradiente(i,j)==-1 numOscuros=numOscuros+cont; cont=1; oscuros=oscuros+acum; acum=imagen(i,j); ultimoColor=0; else numClaros=numClaros+cont;
  • 34. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 28 cont=1; claros=claros+acum; acum=imagen(i,j); ultimoColor=1; end end end end if ultimoColor==0 numClaros=numClaros+cont; claros=claros+acum; else numOscuros=numOscuros+cont; oscuros=oscuros+acum; end % Media de los claros. mediaClaros=claros/numClaros; % Media de los oscuros. mediaOscuros=oscuros/numOscuros; % Umbral optimo para la binarizacion. umbral=(mediaOscuros*numClaros+mediaClaros*numOscuros)/(numClaros+numOscuros);
  • 35. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 29 Se definió la siguiente función para calcular el gradiente de Sobel: % gradienteSobel=Sobel(imagen, filasImagen, columnasImagen, X_Porciento); function gradienteSobel=Sobel(imagen, filasImagen, columnasImagen, X_Porciento) % Kernel Sobel para calcular el gradiente en la direccion horizontal. kernel=(1/8)*[-1 0 1; -2 0 2; -1 0 1]; gradiente=Filtro(imagen, filasImagen, columnasImagen, kernel); % Calculo del umbral para clasificar la respuesta del Sobel, este es tal que % solo un X% de los gradientes van a superar el umbral. moduloGradiente=abs(gradiente(:)); maximoModuloGradiente=round(max(moduloGradiente)); minimoModuloGradiente=round(min(moduloGradiente)); nivelesGradiente=maximoModuloGradiente-minimoModuloGradiente; histogramaGradiente=hist(moduloGradiente, nivelesGradiente); histogramaGradienteAcumulado=cumsum(histogramaGradiente); umbralSobel=nivelesGradiente; while (umbralSobel > 0)&(histogramaGradienteAcumulado(umbralSobel) > (filasImagen*columnasImagen*(1-(X_Porciento/100)))) umbralSobel=umbralSobel-1; end umbralSobel=minimoModuloGradiente+umbralSobel;
  • 36. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 30 % Clasificacion de la respuesta del Sobel en 1, 0 o -1. gradienteSobel=[]; for i=1:filasImagen for j=1:columnasImagen if gradiente(i,j) > umbralSobel gradienteSobel(i,j)=1; else if gradiente(i,j) < -umbralSobel gradienteSobel(i,j)=-1; else gradienteSobel(i,j)=0; end end end end Finalmente se implementó el siguiente código para el recorte y la determinación del umbral: [R C]=size(I); %Halla el tamaño de la imagen cropsize=[(R*0.25) (C*0.15) (C*0.625) (R*0.6)]; %Determina seccion a cortar Ic=imcrop(I,cropsize); %Recorta la imagen para eliminar fondo innecesario figure; imshow(Ic) %Grafica Zona recortada Id=double(Ic); [R C]=size(Ic) %Convierte imagen a doble para operaciones
  • 37. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 31 I2=sobel(Id,R,C,2.5); %Halla gradiente de sobel umbral=umbraloptimo(Id,R,C,I2); %Halla umbral optimo Posteriormente se realizan operaciones morfológicas. Inicialmente se utilizará un elemento estructurante circular de radio 10 píxeles para realizar una transformación “bottom-hat”, que primero hace una operación de “closing” (dilatación y luego erosión) y luego resta la imagen obtenida de la imagen original para resaltar la placa y ciertos bordes como se puede ver en la figura 3.2. Luego se aplica el umbral hallado anteriormente como se muestra en la figura 3.3. Para eliminar el ruido se hace primero una operación de “closing” (dilatación y luego erosión) utilizando un elemento estructurante horizontal hallado basándose en la separación que existe entre los caracteres de la placa como se muestra en la figura 3.4. Después se realiza “opening” (erosión y luego dilatación) con un elemento estructurante vertical hallado basándose en la altura de los caracteres de la placa como se ve en la figura 3.5. Finalmente se realizan dilataciones verticales y horizontales para expandir la zona de la placa como se ve en la figura 3.6. Se implementó el siguiente código: st=strel('disk',10); %Elemento estructurante de 10 pixeles de radio IM2=imbothat(Ic,st); %Hace Bottom-Hat I3=IM2>umbral; %Aplica Umbral LH=strel('line',60,0); %Elemento estructurante lineal horizontal IM3=imclose(I3,LH); %Closing con elemento estructurante LV=strel('line',20,90); %Elemento estructurante lineal vertical IM4=imopen(IM3,LV); %Hace opening con elemento estructurante figure;imshow(IM4) %Muestra Imagen DIV=strel('line',35,90); %Elemento estructurante lineal vertical DIH=strel('line',20,0); %Elemento estrucutrante lineal horizontal IM5=imdilate(IM4,DIV); %Dilata con E.E. vertical
  • 38. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 32 IM6=imdilate(IM5,DIH); %Dilata con E.E. horizontal figure; imshow(IM6) %Muestra imagen Figura 3.1. Top-Hat Figura 3.2. Umbral Figura 3.3. Closing Horizontal Figura 3.4. Opening Vertical Figura 3.5. Dilatación
  • 39. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 33
  • 40. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 34 Finalmente a partir de la imagen binarizada de la zona de la placa, se pueden hallar la ubicación de la placa y sus dimensiones para hacer un recorte de la imagen original de la zona de la placa como se muestra en la figura 3.7. Se implementó el siguiente código: L=bwlabel(IM6); %Crea regiones stats=regionprops(L,'all'); %Estadisticas de las regiones Idx=find([stats.Area]>(7000)); %Diferencia las regiones con Area > 7000 IM6=ismember(L,Idx); %Crea una imagen con dichas regiones L=bwlabel(IM6); %Crea regiones stats = regionprops(L,'all'); %Estadisticas de las regiones E=stats(1).BoundingBox; %Toma tamaño de la region X=E.*[[1] [0] [0] [0]]; X=max(X); %Determina eje X esquina superior Izq. Placa Y=E.*[[0] [1] [0] [0]]; Y=max(Y); %Determina eje Y esquina superior Der. Placa W=E.*[[0] [0] [1] [0]]; W=max(W) %Determina Ancho Placa H=E.*[[0] [0] [0] [1]]; H=max(H); %Determina Altura placa Corte=[X Y W H]; %Determina coordenadas de corte IMF=imcrop(Ic,Corte); %Realiza el corte figure; imshow(IMF) %Muestra imagen de la zona de la placa
  • 41. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 35 Figura 3.6. Recorte Placa. A continuación procedemos a binarizar la imagen de la placa recortada con un umbral de 120, para poder recortar aun más la placa y así borrar las líneas y elementos que nos producen ruido (Figura 3.8). Esto lo podemos realizar mediante una estadística de la región tomada, y aplicando un porcentaje de recorte posible por las características estándar que tienen las placas. Se realiza un filtro para ayudar a depurar un poco mas la imagen (Figura 3.9). Se binariza la imagen obtenida (Figura 3.10). Y por ultimo se aplica una propiedad de región para que solo las áreas mayores a 1.5% del total queden presentes. El siguiente es el código implementado: umbral=120; %Aplico un Umbral de 120 placa=IMF>umbral; %Aplica umbral a placa L=bwlabel(placa); %Crea regiones stats=regionprops(L,'all'); %Estadisticas de las regiones placadx=find([stats.Area]>(4500)); %Diferencia las regiones con Area > 4500 placa=ismember(L,placadx); %Crea una imagen con dichas regiones L=bwlabel(placa); %Crea regiones stats=regionprops(L,'all'); %Estadisticas de las regiones E2=stats(1).BoundingBox; %Toma tamaño de la region X2=E2.*[[1] [0] [0] [0]]; X2=max(X2); %Determina eje X esquina superior Izq. Placa
  • 42. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 36 Y2=E2.*[[0] [1] [0] [0]]; Y2=max(Y2); %Determina eje Y esquina superior Der. Placa W2=E2.*[[0] [0] [1] [0]]; W2=max(W2); %Determina Anchura placa H2=E2.*[[0] [0] [0] [1]]; H2=max(H2); %Determina Altura placa Corte2=[X2 Y2 W2 H2]; %Determina coordenadas de corte C2=imcrop(IMF,Corte2); %Realiza el corte Wx=round(W2*0.94); Hx=round(H2*0.756); Cortex=[4 12 Wx Hx]; C2=imcrop(C2,Cortex); figure; imshow(C2) %Muestra Imagen C3=imbothat(C2,st); figure; imshow(C3) umbral2=90; C5=C3>umbral2; figure; imshow(C5) L=bwlabel(C5); stats=regionprops(L,'all'); placadx=find([stats.Area]>((W2*H2)*0.015)); %Diferencia las regiones con Area > 1.5% del %area total placa=ismember(L,placadx); %Crea una imagen con dichas regiones figure; imshow(placa)
  • 43. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 37 FIGURA 3.8. Recorte de la placa para eliminar ruido. FIGURA 3.9. Filtro para ayudar a depurar la imagen. FIGURA 3.10. Propiedad de región. El siguiente paso es recortar cada carácter por separado, para esto utilizamos el comando bwlabel para que nos divida la imagen en regiones y poder determinar el área que posee cada región (que en este caso nos demarcará el área ocupada por el carácter) y poder recortarlo con el comando imcrop, obteniendo cada carácter en una variable por separado. Luego, a cada carácter se le realiza un nuevo dimensionamiento (24*42) para estandarizar los caracteres y poder realizar el reconocimiento de la letra y del número. La figura 3.11 muestra los 6 caracteres recortados. El código utilizado es el siguiente: L=bwlabel(placa); stats=regionprops(L,'all'); E3=stats(1).BoundingBox; %Toma tamaño de la region 1, primer caracter
  • 44. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 38 X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior Izq. Placa Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior Der. Placa W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte L1=imcrop(C2,Corte3); %Realiza el corte L1b=imresize(L1,[42 24]); L1b=L1b>150; figure; imshow(L1b) %Muestra el primer caracter E3=stats(2).BoundingBox; %Toma tamaño de la region 2, segundo caracter X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior Izq. Placa Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior Der. Placa W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte L2=imcrop(C2,Corte3); %Realiza el corte L2b=imresize(L2,[42 24]); L2b=L2b>150; figure; imshow(L2b) %Muestra el segundo caracter E3=stats(3).BoundingBox; %Toma tamaño de la region 3, tercer caracter
  • 45. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 39 X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior Izq. Placa Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior Der. Placa W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte L3=imcrop(C2,Corte3); %Realiza el corte L3b=imresize(L3,[42 24]); L3b=L3b>150; figure; imshow(L3b) %Muestra el tercer caracter E3=stats(4).BoundingBox; %Toma tamaño de la region 4, cuarto caracter X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior Izq. Placa Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior Der. Placa W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte L4=imcrop(C2,Corte3); %Realiza el corte L4b=imresize(L4,[42 24]); L4b=L4b>150; figure; imshow(L4b) %Muestra el cuarto caracter E3=stats(5).BoundingBox; %Toma tamaño de la region 5, quinto caracter
  • 46. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 40 X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior Izq. Placa Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior Der. Placa W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte L5=imcrop(C2,Corte3); %Realiza el corte L5b=imresize(L5,[42 24]); L5b=L5b>150; figure; imshow(L5b) %Muestra el quinto caracter E3=stats(6).BoundingBox; %Toma tamaño de la region 6, sexto caracter X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior Izq. Placa Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior Der. Placa W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte L6=imcrop(C2,Corte3); %Realiza el corte L6b=imresize(L6,[42 24]); L6b=L6b>150; figure; imshow(L6b) %Muestra el sexto carácter
  • 47. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 41 Figura 3.11. Caracteres de la placa. Desarrollo del OCR: En este momento ya poseemos los caracteres individuales que componen el numero de la placa, por lo que se procederá a realizar una base de datos de las 24 letras del alfabeto en mayúscula (no se tiene en cuanta la letra CH ni la Ñ), y los dígitos del 0 al 9. Para ello se realizaran archivos de imagen con los caracteres de 21*42 pixeles, binarizados, que serán cargados a Matlab mediante variables, y luego se creara una matriz denominada alfabeto que contenga todas la letras del alfabeto, Figura 3.12, y una matriz denominada numeral que contiene todos los dígitos del 0 al 9, Figura 3.13. El siguiente es el código implementado. a=imread('C:MATLAB6p5workA.bmp'); b=imread('C:MATLAB6p5workB.bmp'); c=imread('C:MATLAB6p5workC.bmp'); d=imread('C:MATLAB6p5workD.bmp'); e=imread('C:MATLAB6p5workE.bmp'); f=imread('C:MATLAB6p5workF.bmp'); g=imread('C:MATLAB6p5workG.bmp'); h=imread('C:MATLAB6p5workH.bmp'); i=imread('C:MATLAB6p5workI.bmp'); j=imread('C:MATLAB6p5workJ.bmp'); k=imread('C:MATLAB6p5workK.bmp'); l=imread('C:MATLAB6p5workL.bmp'); m=imread('C:MATLAB6p5workM.bmp'); n=imread('C:MATLAB6p5workN.bmp'); o=imread('C:MATLAB6p5workO.bmp'); p=imread('C:MATLAB6p5workP.bmp'); q=imread('C:MATLAB6p5workQ.bmp'); r=imread('C:MATLAB6p5workR.bmp'); s=imread('C:MATLAB6p5workS.bmp'); t=imread('C:MATLAB6p5workT.bmp'); u=imread('C:MATLAB6p5workU.bmp'); v=imread('C:MATLAB6p5workV.bmp'); w=imread('C:MATLAB6p5workW.bmp'); x=imread('C:MATLAB6p5workX.bmp'); y=imread('C:MATLAB6p5workY.bmp'); z=imread('C:MATLAB6p5workZ.bmp'); uno=imread('C:MATLAB6p5work1.bmp'); dos=imread('C:MATLAB6p5work2.bmp');
  • 48. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 42 tres=imread('C:MATLAB6p5work3.bmp'); cuatro=imread('C:MATLAB6p5work4.bmp'); cinco=imread('C:MATLAB6p5work5.bmp'); seis=imread('C:MATLAB6p5work6.bmp'); siete=imread('C:MATLAB6p5work7.bmp'); ocho=imread('C:MATLAB6p5work8.bmp'); nueve=imread('C:MATLAB6p5work9.bmp'); cero=imread('C:MATLAB6p5work0.bmp'); alfabeto=[[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z]]; numeral=[[uno] [dos] [tres] [cuatro] [cinco] [seis] [siete] [ocho] [nueve] [cero]]; Figura 3.12. Matriz alfabeto. Figura 3.13 Matriz numeral. Procedemos a realizar una conversión de matrices a un arreglo de celdas de las variables numeral, alfabeto y matricula, para poder trabajar con elementos separados y definidos por una posición para poder realizar operaciones individuales sobre cada uno de los elementos. El siguiente es el código utilizado: matricula=[[L1b] [L2b] [L3b] [L4b] [L5b] [L6b]]; ab=mat2cell(alfabeto,[42],[24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24]); numero=mat2cell(numeral,[42],[24 24 24 24 24 24 24 24 24 24]); plac=mat2cell(matricula,[42],[24 24 24 24 24 24]);
  • 49. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 43 Por ultimo, debemos encontrar un método adecuado para realizar el reconocimiento del carácter hallado en la placa con uno presenta en la base de datos. En este caso se utilizo la técnica de correlación. Matlab permite calcular el coeficiente de correlación entre dos matrices bidimensionales, dando como resultado un valor que representa la igualdad entre dos matrices. corr2 realiza el coeficiente de correlación usando la expresión: donde A = mean2(A), and B = mean2(B) Se desarrolló un ciclo, el cual toma los valores de la correlación del carácter que está siendo analizado y lo introduce en una matriz de 3 filas por 26 o 10 columnas, según sean letras o números respectivamente. Posteriormente se hallan los máximos de las tres columnas y son almacenados en otra matriz. Finalmente se encuentran las posiciones en las que estaban los máximos para así determinar la letra o el número al que corresponden y mediante otro ciclo se muestra esto en pantalla. El código implementado fue el siguiente: %Ciclo que reconoce las letras y les asigna la posicion en la matriz de abecedario fila=1; ind=1; while fila < 4 posp=1; for posp=1:3 plc=plac{1,posp}; pos=1;
  • 50. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 44 temp=0; while pos<27 temp=ab{1,pos}; co=corr2(temp,plc); letra(fila,pos)=co; pos=pos+1; end fila=fila+1; posp=posp+1; end end for ind = 1:3 maxs=max(letra,[],2); [posx posy]=find(letra==maxs(ind,1)); letras(ind)=posy ind=ind+1; end %Ciclo que reconoce los numeros y les asigna la posicion en la matriz de %numeros fila=1; ind=1; while fila < 4 posp=4;
  • 51. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 45 for posp=4:6 plc=plac{1,posp}; pos=1; temp=0; while pos<11 temp=numero{1,pos}; co=corr2(temp,plc); num(fila,pos)=co; pos=pos+1; end fila=fila+1; posp=posp+1; end end for ind = 1:3 maxs=max(num,[],2); [posx posy]=find(num==maxs(ind,1)); nums(ind)=posy ind=ind+1; end close all mal='a'; ltr=1;
  • 52. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 46 lt=1; while ltr < 4 while lt < 4 if letras(ltr)== 1 mal(lt)='A' elseif letras(ltr) == 2 mal(lt)='B' elseif letras(ltr) == 3 mal(lt)='C' elseif letras(ltr) == 4 mal(lt)='D' elseif letras(ltr) == 5 mal(lt)='E' elseif letras(ltr) == 6 mal(lt)='F' elseif letras(ltr) == 7 mal(lt)='G' elseif letras(ltr) == 8 mal(lt)='H' elseif letras(ltr) == 9 mal(lt)='I' elseif letras(ltr) == 10 mal(lt)='J'
  • 53. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 47 elseif letras(ltr) == 11 mal(lt)='K' elseif letras(ltr) == 12 mal(lt)='L' elseif letras(ltr) == 13 mal(lt)='M' elseif letras(ltr) == 14 mal(lt)='N' elseif letras(ltr) == 15 mal(lt)='O' elseif letras(ltr) == 16 mal(lt)='P' elseif letras(ltr) == 17 mal(lt)='Q' elseif letras(ltr) == 18 mal(lt)='R' elseif letras(ltr) == 19 mal(lt)='S' elseif letras(ltr) == 20 mal(lt)='T' elseif letras(ltr) == 21 mal(lt)='U' elseif letras(ltr) == 22
  • 54. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 48 mal(lt)='V' elseif letras(ltr) == 23 mal(lt)='W' elseif letras(ltr) == 24 mal(lt)='X' elseif letras(ltr) == 25 mal(lt)='Y' elseif letras(ltr) == 26 mal(lt)='Z' else mal(lt)='Paila' end lt=lt+1; ltr=ltr+1; end end nmr=1; man='1'; nm=1; while nmr < 4 while nm < 4 if nums(nmr)== 1
  • 55. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 49 man(nm)='1' elseif nums(nmr) == 2 man(nm)='2' elseif nums(nmr) == 3 man(nm)='3' elseif nums(nmr) == 4 man(nm)='4' elseif nums(nmr) == 5 man(nm)='5' elseif nums(nmr) == 6 man(nm)='6' elseif nums(nmr) == 7 man(nm)='7' elseif nums(nmr) == 8 man(nm)='8' elseif nums(nmr) == 9 man(nm)='9' elseif nums(nmr) == 10 man(nm)='0' else disp('Paila') end nm=nm+1;
  • 56. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 50 nmr=nmr+1; end end plate=horzcat(mal,man); disp(plate)
  • 57. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 51 CONCLUSIONES • La utilización de los elementos estructurantes, definidos en Matlab, es una herramienta poderosa para simplificar los procedimientos a realizar cuando trabajamos con imágenes y debemos eliminar estructuras y objetos irrelevantes al objetivo propuesto. • No es aconsejable utilizar elementos estructurantes y propiedades morfológicas si el objetivo es implementar el código en otro compilador y programa diferente al de Matlab, pero por facilidad y economía de tiempo se podrían utilizar para tener un conocimiento inicial de los pasos que se deben realizar para cumplir el objetivo propuesto a la imagen. Al utilizar métodos tradicionales de filtrado, erosionado y dilatado de imágenes, aseguramos la portabilidad del código hacia otros programas y dispositivos, como DSP´s, aunque su implementación es mas larga, dificultosa y de mayor cuidado.
  • 58. Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB 52 BIBLIOGRAFIA 1) Digital filters and signal processing with MATLAB, exercises /Leland B. Jackson. Boston: Kluwer Academic Publishers, c1996. 2) Introducción a los filtros digitales /Jesus Barrios Romano. México: Universidad Autónoma Metropolitana, Unidad Iztapalapa , 1992. 3) Digital Image Processing, Third Edition/William K. Pratt Los Altos, California, 2001.