Lectura automática de matrículas

Red de ojos humanos vs Redes Neuronales

En el post anterior contábamos las tribulaciones de D. Manuel Poveda con su nuevo puesto de trabajo, si no lo has leído pincha aquí.

Cuando hay que leer miles de matrículas tenemos dos opciones básicas: hacerlo con una red de ojos humanos o bien empleando redes neuronales. En AiRENOVE apostamos por lo segundo. Además nos hemos planteado el realizarlo ‘desde cero’ (from scratch en plan anglicismo) y utilizando código abierto. Comenzaremos con las herramientas de Machine Learning… preferiblemente de Google.

En una primera aproximación pensaremos en utilizar unas cámaras de vídeo y un sistema OCR para la lectura efectiva de las matrículas. Como primer acercamiento está bien, pero hay que tener en cuenta algunas cosas más.

No estamos en un estudio de grabación

El no estar en un estudio de grabación conlleva la necesidad de dar solución a un par de cuestiones. La primera de ellas es la cuestión que aunque intentemos enfocar una o varias cámaras a los vehículos que van en el sentido de circulación que es de nuestro interés siempre se van a captar imágenes, aunque sea de forma parcial las de algunos otros que van en el sentido contrario.

Imagen de la carretera captada por una cámaraCarretera con máscara en sentido contrario
Imagen sin máscaraMáscara sobre la dirección contraria

Un estudio de grabación de pro filmarán sus escenas con unos formatos muy bien definidos y en consonancia con los editores de vídeo que más tarde se utilizarán para hacer el tratamiento de imágenes y sonido y el posterior montaje final. 

En nuestro caso utilizamos unas cámaras que están diseñadas pensando en uns fines distintos a la realización de una película, serie de televisión, o anuncio publicitario. El tratamiento de imágenes lo queremos hacer con una herramienta de Google. Y estas herramientas están en versión de pruebas.

Nos decantaremos por hacer análisis de fotogramas sueltos. Determinar cuándo y cómo se toman estos es una cuestión a resolver.

¿Seguro que en la variedad está el gusto?

Los OCR’s son capaces de descifrar textos con miles de tipografías diferentes. Resulta que la DGT sólo utiliza un tipo. Bien es verdad que con variaciones en tamaños y colores. La diferentes dimensiones provienen entre otras cuestiones porque las motocicletas utilizan un formato distinto al de los coches. Respecto a los colores baste recordar las nuevas matrículas azules con tipografías en blanco que deben utilizar los taxis y vehículos VTC en su parte posterior.

En estos momentos algún lector también estará pensando que por los suelos patrios no sólo circulan vehículos matriculados en España sino que menudean lo provenientes de otros países de Europa y algunos del norte de Africa. Aún considerando todas estas tipografías tendremos muchas menos que las que usan los OCR’s.

La diversidad en la cuestión de las diferentes magnitudes de las placas es algo que tenemos que asumir. Diferente resulta la cuestión que nuestro OCR tenga que discernir entre muchas fuentes tipográficas. Lo que haremos será “activar” sólo las fuentes que nos interesen.

Multiplicar las tipografías a comparar no supone un problema de gestión de recursos informáticos sino que cuanto mayor es el conjunto de patrones a comparar mayor se hace la probabilidad que nuestros ojos informáticos comentan un error. De ahí la conveniencia de reducir el número de tipografías que debe tener en consideración nuestro OCR.

Esto es un vehículo, esto es una matrícula

Las redes neuronales pueden parecer muy inteligentes; podríamos discutir si lo son o no, pero dejando de lado esta cuestión lo que está claro es que no nacen aprendidas. Uno de los primeros pasos del proyecto es decirle a la red neuronal qué es un vehículo y qué parte de mismo es una matrícula.

Para transmitirles este “conocimiento” a la red el procedimiento consiste en coger de forma manual unas cuantas imágenes y recuadrar los vehículos que hay en la misma y qué parte de este recuadro del vehículo corresponde a la matrícula. 

Coches Recuadrados en una carreteraCoches y matrículas recuadradas
Vehículo recuadradoVehículo y matrícula recuadrados

Con esto se ‘entrena’ a la red neuronal, que terminará por ‘recortar’ en cada foto la matrícula. Estos trocitos serán los que más tarde tendrá que leer el OCR’s

Los OCR’s son maniáticos

Por ello no se les puede enviar la imagen tal y como la detecta la red neuronal. Las matrículas cuando son ‘recortadas’ de la imagen tienen el siguiente aspecto:

Matrícula oblicua

La primera operación a realizar es convertir ese cuadrilátero de formas caprichosas en un rectángulo de dimensiones similares a las de las matrículas reales.

Matrícula rectangular

Pero NO es suficiente, si se expone la imagen anterior a un analizador OCR al final lo que verá será algo del tipo.

Matricula vista por OCR

Por lo que hay que transformar la imagen rectificada de la matrícula en algo similar a lo siguiente.

Imagen preparada para un OCR

Listos para el aprendizaje

Hecho todo lo anterior ya estamos en disposición de entrenar a la red con un montón de casos reales y luego ponerle ‘ejercicios’ para que nos diga qué es lo que ve.

Hace un tiempo AiRENOVE logró tener un niño que leía periódicos. Ahora tendrá un hermanito que lee matrículas. La familia crece.