Cómo detectar matrículas en una WebCam en tiempo real o bien desde un fichero de vídeo previamente grabado con Python. Esta aplicación detectará y leerá posibles matrículas y validará las que cumplan un formato concreto. La aplicación guardará en fichero de imagen el frame en el que haya detectado la matrícula.

Requisitos para crear aplicación en Python que detecta matrículas en un vídeo o en la WebCam en tiempo real

Necesitaremos disponer de un IDE (o un editor de texto) y de Python instalado en el equipo. En el siguiente enlace explicamos cómo usar Visual Studio Code para desarrollar aplicaciones Python:

Para el desarrollo de este script Python que detecta matrículas en un vídeo o en imagen en tiempo real de una WebCam y, mediante OCR, obtiene su valor en texto, necesitaremos las siguientes librerías: opencv-python (cv2), matplotlibimutilsnumpy , easyocr y re. Podremos instalarlas con los siguientes comandos:

Hay que tener en cuenta que este script de ejemplo es una prueba de concepto, que no funciona en todos los casos. Por ejemplo, si la matrícula no está contenida en un recuadro y, en cambio, tiene formas ovaladas o circulares, puede que no la detecte. Tampoco detectará matrículas cuando las imágenes pasen demasiado rápidas en el vídeo o la webcam, dado que este proceso requiere de consumo de CPU y dependerá del equipo de que dispongamos y de la calidad de la imagen de vídeo.

Aplicación Python que detecta matrículas en un vídeo o en la WebCam en tiempo real

A continuación mostramos el código Python completo de la aplicación que, pasándole un fichero de vídeo o bien capturando el vídeo en tiempo real de una WebCam, obtiene el texto de las matrículas que va detectando y guarda en fichero de imagen el frame en el que las encuentra. El código está explicado en sus líneas más importantes:

Funcionamiento de la aplicación Python que detecta matrículas en un vídeo o en una webcam en tiempo real

El funcionamiento de la aplicación que detecta matrículas en un vídeo o en una webcam en tiempo real es el mismo que el empleado en este tutorial:

La única diferencia es que, en este caso, al tratarse de un vídeo o de una webcam en tiempo real, la detección de matrículas será indefinida, o bien hasta que acabe el vídeo o bien hasta que se cierre la webcam o bien cuando se pulse la tecla «s» para cerrar la aplicación. Por lo tanto la aplicación Python estará detectando matrículas continuamente hasta que ocurra alguno de los eventos anteriores.

Por otro lado, a este script, se le ha añadido la opción de validar las matrículas, de forma que sólo considerará matrículas correctas las que tengan un formato concreto, por ejemplo: 1234AAA. El resto de valores de texto que pueda encontrar los mostrará por consola para depurar pero no los considerará una matrícula.

Y otra diferencia es que este script guardará una imagen por cada matrícula validada detectada, incluyendo en el nombre del fichero de imagen la matrícula obtenida y el frame en el que se ha encontrado.

Además, esta aplicación Python mostrará los contornos detectados en tiempo real en el vídeo. Por ejemplo, si ejecutamos la aplicación pasándole un vídeo .mp4 con grabación de coches, tendrá este comportamiento:

Cada frame (según el ratio indicado), analizará los contornos, buscando una posible matrícula:

Si encuentra un contorno en el frame analizado que pueda ser una matrícula le aplicará el OCR:

Y si el texto obtenido tiene el formato de una matrícula validada, guardará el frame en imagen y mostrará por consola la matrícula detectada, la fecha y hora y el número de frame:


Descarga del código fuente en Python de la app que detecta matrículas en tiempo real en vídeo o en webcam

A continuación, mostramos el enlace para la descarga del código fuente completo en Python que detecta matrículas de coches leyendo un vídeo o bien leyendo la salida de vídeo de la webcam del equipo en tiempo real: