Académique Documents
Professionnel Documents
Culture Documents
de Automóviles
Fernando Martín Rodríguez y Xulio Fernández Hermida
Abstract. In this work we present a system that reads automatically a car license
plate using machine vision. In the paper first sections, we describe methods that are
used to locate and segment the characters. Afterwards we describe all the pattern
recognition methods that we tested and we see their different results. The final
sections of the paper give the global system results and also our conclusions and
future lines of work. Some of the techniques that we will describe come from the
“state of the art”, but others were developed for this particular problem. This system
has many practical applications such as parking check in/out, stolen car detection,
security applications...
1. Introducción
Nuestro punto de partida fue una imagen del coche con placa de matrícula legible. En
principio, queríamos que nuestro sistema reconociese por igual la matrícula trasera o
la delantera. Tampoco queríamos “atar” el sistema a un tipo de placas determinado,
esto es: que en la medida de lo posible, fuésemos capaces de reconocer matrículas de
diferentes nacionalidades.
Empezamos trabajando con imágenes en escala de grises confiando en que las
matrículas están diseñadas para ser reconocidas con facilidad, esto es: entre los
caracteres y el fondo siempre hay una diferencia de brillo importante. En este punto
debemos distinguir dos tipos de matrículas: las que tienen caracteres oscuros sobre un
fondo claro (como las matrículas españolas antiguas o las nuevas matrículas de la
comunidad europea) y las que tienen caracteres claros sobre un fondo oscuro (como
las antiguas matrículas portuguesas y francesas). Como veremos, nuestro sistema es
capaz de tratar placas de los dos tipos distinguiéndolas de forma automática.
Otra clasificación preliminar la establecimos entre las matrículas que tienen un
renglón de caracteres (las rectangulares, que son las más habituales) y las que tienen
dos renglones (las cuadradas, que aparecen en algunas motocicletas y también en
algunos furgones). Nuestro sistema es capaz de distinguir automáticamente de qué
tipo de placa se trata y tratarla adecuadamente.
Una primera versión del sistema se publicó en [1] en el año 1997. En ese momento
el sistema ya tenía todos los elementos funcionales. A lo largo de los siguientes años
se han ido implementando nuevos métodos de reconocimiento, segmentación y
localización de la placa.
Para esta parte se han desarrollado dos métodos que expondremos brevemente: el
primero basado en gradientes y el segundo basado en morfología matemática.
La idea básica es muy simple: los caracteres provocan picos en el gradiente. Además,
esos picos siguen un patrón muy definido: si los caracteres son oscuros y el fondo es
claro, a un valor de gradiente fuerte y negativo seguirá (en la misma línea y muy
pegado) otro valor fuerte y positivo, la distancia entre ambos valores es una
aproximación del grosor del trazo (en el caso de caracteres claros sobre fondo oscuro,
ocurrirá exactamente lo contrario).
Figura 2. Método del Gradiente aplicado en una línea de imagen que contiene una
placa de matrícula.
Nuestra idea fue aprovechar el patrón anterior, esto es: calcular el gradiente horizontal
y buscar las líneas (o, mejor dicho, los trozos de línea o segmentos) que cumplan el
patrón anterior. Cuando tenemos el patrón dado en varios segmentos de líneas
consecutivas, podemos intentar unirlos para formar un rectángulo (siempre que los
segmentos estén aproximadamente alineados en vertical). Estos rectángulos ya son las
posibles placas que se entregarán a la etapa siguiente. Podemos postprocesar esos
rectángulos uniendo los que están muy pegados. Este proceso va a unir en una sola
placa los dos renglones de las placas cuadradas, pero la información de que una placa
viene de la unión de otras se debe conservar (porque en el caso de las placas
cuadradas ayuda a la segmentación de renglones).
Nótese que este método (y también el siguiente) encuentra una serie de posibles
placas. Esas placas van a ser procesadas todas por separado y no se tomará la decisión
sobre cuál es la correcta hasta la etapa de segmentación de caracteres. Debido a esta
forma de trabajar, encontraremos como posibles placas zonas tales como pegatinas,
las letras de la marca del coche y otras zonas que produzcan un patrón de gradiente
similar al de la placa. Ya veremos cuál es el método que se usa para discernir la
verdadera placa. De momento, sólo mencionaremos una decisión de diseño: si en la
imagen de entrada hay más de una placa, el sistema siempre se queda con la de mayor
tamaño.
Para la implementación concreta utilizamos el conocido operador de Sobel [2] para
calcular el gradiente. Sobre el resultado impusimos un umbral que se calcula fijando
un porcentaje (por ejemplo un 5%) sobre el histograma, esto es: van a superar el
umbral el 5% de los valores de gradiente. Se trata de umbral e histograma en valor
absoluto; el gradiente se convierte a tres posibles valores: 1, 0 y –1.
Hemos visto que el método morfológico tiene más limitaciones que el primero (y en
las pruebas produjo mayor número de placas falsas). Los porcentajes obtenidos (por
número de placas acertadas) son muy similares (ambos por encima del 95%). Sin
embargo, el método morfológico mostró un mejor comportamiento en cierto tipo de
placas. Podemos ver un ejemplo en la siguiente figura:
Para la binarización también diseñamos dos métodos que luego decidimos combinar.
El primero es el método de Otsu [4], el segundo es un método desarrollado por
nosotros y que, para este caso, ha resultado superior.
Figura 6. Izquierda: imagen que ha salido del localizador. Derecha: Binarización con
el método de Otsu, umbral único.
El método del gradiente se basa en la siguiente idea: los valores grandes de gradiente
separan a los pixels en dos clases claramente diferenciadas. Se trata de aprovechar el
gradiente que ya teníamos calculado de la etapa de localización. Podemos recorrer la
matrícula y clasificar cada pixel. Eso nos permite obtener sumas y medias para cada
clase. El umbral se calcula como:
Umbral=(µNNB+µBNN)/(NN+NB) (1)
Como dijimos, el método del gradiente se comporta mejor que el Otsu normal y
además es muy rápido. El Otsu interpolado es el mejor de todos pero también es lento
y sólo se requiere en casos de iluminación incorrecta como el de la Figura 7.
Con todo esto en mente diseñamos un método para combinar eficazmente el
método del gradiente y el Otsu interpolado. Se trata de empezar aplicando el método
del gradiente, medir la calidad del umbral obtenido y, si es pobre, aplicar Otsu
interpolado.
Para medir la calidad del umbral, medimos cuantos píxeles de la imagen están en
un entorno de ese umbral. Si el porcentaje es demasiado alto el umbral no es bueno ya
que no se está encontrando el valle central del histograma bipolar.
Con color activo nos referimos al color de los caracteres (foreground color). Aunque
tengamos la imagen binarizada, todavía no sabemos si este color es blanco o negro.
Esta decisión hay que tomarla para cada placa (ya que se puede llegar a tener en la
misma imagen inicial una matrícula de cada tipo). Nótese, que los dos métodos de
localización que presentamos son capaces de deducir esta información como dato
adicional: el primer método sabe el color de los caracteres por el orden en que
encuentra los valores de gradiente; mientras que el segundo método también lo sabe
por el tipo de “top-hat” que le llevó a cada placa. Esa decisión puede ser reforzada
contando el número de píxeles blancos y negros: los de fondo deberían ser mayoría.
Eso es mejor hacerlo en el centro de la placa para evitar errores debidos a objetos
extraños que se hayan unido a la placa.
Una vez determinado el color activo, si es el blanco, realizamos un negativo de esa
placa. A partir de este punto, el color activo será siempre el negro.
Figura 10. Imagen de la Figura 9 corregida por este método. En el giro se ha tenido en
cuenta que los límites de la imagen han crecido. Hay cierto ruido granular debido al
redondeo de coordenadas.
2.4 Segmentación
Estos resultados proceden de la prueba con 217 caracteres extraídos de 30 placas. Los
reconocedores fueron entrenados con 1054 caracteres extraídos de 155 placas. Los
conjuntos de prueba y entrenamiento son disjuntos. Los resultados fueron:
Extracción Características Clasificador PNN: MLP:
Componentes de Kirsch: 97.68% 99.07%
KLT: 96.29% 98.61%
Método de la Proyección: 91.74%
Método Híbrido: 97.92%
Tabla 1. Porcentajes de acierto.
El método híbrido llega a mejorar la exactitud de la PNN (debido a la conjunción de dos
métodos, con ventajas y desventajas complementarias). El método de la proyección es el
más simple y el menos preciso. Ahora veremos los tiempos medios de ejecución (medidos
en un Intel Pentium MMX a 133 MHz):
Extracción Características Clasificador PNN: MLP:
Componentes de Kirsch: 98.44 31.03
KLT: 51.38 2.03
Método de la Proyección: 15.26
Método Combinado (apartado 2.2.5.6): 52.14
Tabla 2. Tiempos medios de ejecución (en milisegundos).
La extracción de características KLT es más rápida que la de Kirsch. Además, el
reconocedor MLP es mucho más rápido que la PNN. Nótese además que el método
combinado presenta un valor intermedio entre los dos métodos componentes.
A la vista de estos resultados pensamos en elegir como OCR definitivo la
extracción KLT seguida de MLP. Este método es, con mucho, el más rápido y su
porcentaje de acierto es plenamente aceptable. Sin embargo, debemos tener en cuenta
que el número de muestras de entrenamiento es, teóricamente, insuficiente para un
MLP (debería ser, al menos, 5 veces el número de pesos del MLP) con lo que ésta
podría ser una elección arriesgada. ¿Por qué, aun estando infraentrenado, ha dado
buenos resultados con conjuntos de entrenamiento y prueba disjuntos? Tal vez, la se
trata de que este es un problema donde la generalización es fácil por ser caracteres
impresos, siempre en mayúscula y con fuente constante (recuérdese la gran medida de
separabilidad obtenida). Si aún así decidimos descartar el MLP, el método híbrido
ofrece unas características muy interesantes tanto en tiempo como en acierto. Los
resultados globales de la sección 4 se han obtenido con este último OCR.
7. Líneas Futuras
Actualmente, ya estamos probando un nuevo reconocedor basado en la distancia de
Haussdorf. En el futuro, nos gustaría probar con sistemas que son capaces de realizar
el reconocimiento sin segmentación [13].
Referencias
[1] X. Fernández et al. "An O.C.R. for V.L.P.'s (Vehicle License Plates)". Proceedings
of ICSPAT-97. San Diego. Septiembre.
[2] A. K. Jain. "Fundamentals of Digital Image Processing". Ed: Prentice-Hall. 1989.
[3] J. Serra. "Image Analysis Using Mathematical Morphology". Ed: Academic Press.
1984.
[4] N. Otsu. "A Threshold Selection Method for Gray Level Histograms". IEEE
Transactions on System, Man and Cybernetics. Enero, 1979.
[5] J. Ohya, A. Shio, S. Akamatsu. "Recognizing Characters in Scene Images". IEEE
Transactions on Pattern Analysis and Machine Intelligence. Febrero, 1994.
[6] G. S. D. Farrow, M. A. Ireton, C. S. Xydeas. "Detecting the Skew Angle in
Document Images". Signal Processing: Image Communication. 1994.
[7] D. Cruces Álvarez, F. Martín Rodríguez, X. Fernández Hermida. "Printed and
Handwritten Digits Recognition Using Neural Networks". ICSPAT-98. Toronto.
[8] M. M. Tatsuoka. "Multivariate Analysis". John Wiley & Sons. 1971.
[9] P.J. Grother. "Karhunen-Loéve Extraction for Neural Handwritten Character
Recognition". Applications of Artificial Neural Networks III. Orlando. 1992.
[10] J. L. Blue et al. "Evaluation of Pattern Classifiers for Fingerprint and OCR
Applications". Pattern Recognition. Vol 27. 1994.
[11] S. Haykin. "Neural Networks, A Comprehensive Foundation". Ed. McMillan.
[12] J. Barroso et al. "Number Plate Reading Using Computer Vision". ISIE-97.
Guimarães.
[13] M. A. Özdil, F.T. Yarman-Vural, N. Arica. "Optical Character Recognition
Without Segmentation". Lecture Notes on Computer Science. Nº 1311, Vol 2. 1997.