Aforos de tráfico mediante el reconocimiento automático de matrículas
El conteo de vehículos es una forma común de obtener datos de tráfico con el que poder para poder determinar la demanda y realizar, por ejemplo, simulaciones micro y macroscópicas del flujo de tráfico en una red, estudios de mercadotecnia, control de accesos a aparcamientos, estudios de origen y destino, tiempos de recorrido, etc.
El objetivo es obtener datos brutos con los que, un vez depurados, poder realizar una modelización de la red de transporte o un control o caracterización en el uso de un servicio. Todo ello con el fin de evaluar el rendimiento de una infraestructura de cara a facilitar tareas de planificación y gestión desde el punto de vista de los operadores del sistema.
Si nos detenemos en los sistemas de gestión de tráfico, aunque existen diferentes métodos con los que asignar la demanda a una red -que en definitiva es introducir vehículos en el modelo con los que poder generar rutas- como pueden ser el uso de matrices origen-destino (O-D), el uso de datos estadísticos (de población, motorización…), la simple generación de viajes aleatorios, etc. por lo general la captura de datos mediante puntos de aforo es uno de los más precisos (y caros). Los recuentos en estos puntos, orígenes y sumideros de vehículos, nos permitiría, por ejemplo, computar rutas.
Estos datos se pueden capturar bien mediante dispositivos de conteo automatizados, como pueden ser tubos neumáticos, bucles de inducción, detectores de radar, equipos de visión artificial, etc. o bien pueden obtenerse mediante conteos manuales. El tipo de información variará dependiendo del método y la tecnología utilizada: desde los sistemas manuales que se llevan a cabo por personal especializado mediante la observación visual, hasta estaciones de aforo con sistemas electrónicos automáticos que permiten recoger información de intensidades, velocidad, tipos de vehículos, etc.
En este artículo nos centraremos en cómo hacer uso de sistemas de reconocimiento automático de matrículas (ANPR) como un método asequible y preciso para aforar vehículos basado en la lectura de placas de matrículas mediante técnica OCR (Optical Character Recognition).
En Alter Geosistemas lo hemos venido utilizando de manera satisfactoria para la realización, por ejemplo, de informes periciales en los que es necesario conocer el índice de rotación de plazas de aparcamiento y analizar su demanda. No obstante, esta tecnología también permite recopilar datos específicos sobre el recuento vehículos con los que poder generar matrices O-D con los que poder calibrar y validar modelos de tráfico.
En nuestro caso hemos venido usando OpenALPR, una biblioteca de reconocimiento automático de matrículas de código abierto programada en C ++, pero con bindings en C #, Java, Node.js, Go y Python. En este artículo nos centraremos en la herramienta CLI, que facilita la interacción con la biblioteca mediante línea de comandos. En este ejemplo utilizaré Linux para su instalación y ejecución, pero también hay disponibles ejecutables para usuarios de Windows. En ambos casos el uso de los comandos será el mismo.
Lo primero es instalar el programa, en mi caso desde Linux Ubuntu:
sudo apt install openalpr openalpr-daemon openalpr-utils libopenalpr-dev
La biblioteca analiza imágenes, secuencias de video o capturas directas de la cámara para identificar matrículas. La salida devuelve la representación de texto de los caracteres de las matrículas, el grado de precisión y la posibles coincidencia con el patrón definido. Debido a que el patrón de detección de matrículas que utiliza OpenALPR para el caso español es muy genérico, en Alter Geosistemas realizamos una mejora de dicho patrón que toma en consideración los números de matrícula del sistema nacional actual y el antiguo sistema provincial alfanumérico (vigente de 1971 a 2000), considerando además los máximos provinciales alcanzados en septiembre del año 2000 en las matrículas de este último sistema. Esto devuelve resultado más acertados.
El siguiente comando intentará reconocer las matrículas recogidas en la imagen vehiculo.jpg utilizando los datos de reconocimiento de matrículas de tipología europea (eu) y especificando que el patrón de reconocimiento OCR sea el de matrículas españolas (es).
emilio@gerty:~$ alpr --country eu --pattern es vehiculo.jpg
plate0: 10 results
- S5526AG confidence: 86.0918 pattern_match: 1
- S526AG confidence: 82.6901 pattern_match: 0
- SS526AG confidence: 81.6995 pattern_match: 0
- SB526AG confidence: 81.122 pattern_match: 0
- S556AG confidence: 81.0435 pattern_match: 0
- S56AG confidence: 77.6419 pattern_match: 0
- 55526AG confidence: 77.4892 pattern_match: 0
- S5526A0 confidence: 77.2945 pattern_match: 0
- SS56AG confidence: 76.6512 pattern_match: 0
- SB56AG confidence: 76.0738 pattern_match: 0
Como podemos apreciar el algoritmo de reconocimiento obtuvo una coincidencia acorde el patrón de matrículas españolas, siendo asimismo el resultado más preciso (86,0918 %).
Pero también es posible procesar un lote completo de imágenes de un directorio, un archivo de vídeo o directamente de un stream de una cámara:
alpr --country ue *.jpg alpr --country ue video.mp4 alpr --country ue /dev/video0
Por defecto OpenALPR devuelve 10 coincidencias máximas posibles de resultados para cada matrícula junto con su probabilidad. En el siguiente ejemplo se procesa un archivo de vídeo, reduciendo el número de posibles resultados por matrícula a 5:
alpr --country eu --pattern es --topn 5 --json video.mp4 > resultados.json
Además mediante elparámetro opcional –json es posible generar un archivo de resultados en JSON, el cual al ser un formato legible universal puede ser procesados por otras aplicaciones sin demasiada dificultad.
En este sentido utilizaré opcionalmente jq, un magnífico programa que permite interrogar y manipular archivos JSON (también disponible para Windows). Esto nos facilita convertir estos datos JSON a formato CSV para su importación y análisis posterior en cualquier base de datos:
sudo apt install jq moreutils
jq -r '.results[].candidates[] | map(values) | @csv' resultados.json > resultados.csv
Como vemos los resultados de aforos derivados de datos ANPR son potencialmente precisos y con OpenALPR es posible generar datos en bruto del número de vehículos con los que poder modelizar o caracterizar un infraestructura o servicio. No obstante, también existen factores limitantes inherentes al propio sistema, como pueden ser la resolución y calidad de la imagen, visibilidad, velocidad o ángulo de la toma que deben considerarse previamente en la fase de planificación de los aforos.
GIS Project Manager en Alter Geosistemas. Es geógrafo con amplia experiencia profesional en el ámbito de la geomática y las tecnologías afines. Ha dirigido y participado en numerosos proyectos de consultoría e ingeniería en las fases de planificación, ejecución y control relacionados con el medio ambiente, la ordenación del territorio, los sistemas de transporte y la accesibilidad, los servicios urbanos y la divulgación del patrimonio.