scieee AI-readable full text Open interactive document viewer

Aforador de vehículos en carretera mediante OpenCV sobre plataforma local

Sánchez-Barbudo Martín, Javier

Abstract

La visión artificial y los ámbitos asociados a la misma presentan un campo de trabajo e investigación inmenso en la actualidad. Actualmente, el tratamiento digital de la información visual es muy útil en diversos campos científicos y cuenta con multitud de aplicaciones, tales como la gestión del tráfico rodado, optimización de la agricultura y ganadería, control de aforos y seguridad o mejoras en los tratamientos médicos e intervenciones realizadas. Además de tratar digitalmente la información, la visión artificial permite extraer determinadas características interesantes para campos como la inteligencia artificial o el big data. Estas características pueden ser exportadas a tales campos con el objetivo de predecir determinados comportamientos u optimizar recursos. El proyecto desarrollado no es más que una introducción al campo de la visión artificial y a la extracción de características básicas. El objetivo es desarrollar un sistema capaz de realizar el aforamiento de vehículos en una carretera convencional de dos carriles y bajo condiciones climáticas acotadas. El aforamiento de vehículos es utilizado en la actualidad con el fin de controlar en tiempo real el tráfico rodado en determinado tipo de vías. Este control da lugar a realizar una mejor gestión de las vías en las que se aplica, y en definitiva ayuda a salvar vidas.

Full text

Universidad de Sevilla Escuela Politécnica Superior de Sevilla Trabajo Fin de Grado en Ingeniería Electrónica Industrial Aforador de vehículos en carretera mediante OpenCV sobre plataforma local. Autor: Javier Sánchez-Barbudo Martín Tutor: Antonio García Delgado Junio de 2022 Aforador de vehículos en carretera mediante OpenCV sobre plataforma local. ANEXO III: CUERPO DE LAS FUNCIONES EMPLEADAS EN EL ALGORITMO Departamento de Tecnología Electrónica Escuela Politécnica Superior de Sevilla Universidad de Sevilla Junio de 2022 1. Función de detección (detect): def detect(subtraction_left, subtraction_right): Esta función se encarga de analizar los contornos existentes en el fotograma tratado y obtener las bounding box adecuadas para asignarlas a los seguidores. También realiza las llamadas a la función de cálculo de distancias. Recibe: Dos objetos, estos son las regiones de interés de cada carril. A estas regiones de interés se les ha aplicado la sustracción de fondo y las operaciones morfológicas de apertura y cierre. Retorna: Ningún objeto. 2. Función de seguimiento (tracking): def tracking(roi_lane_left_end, roi_lane_right_end): Esta función se encarga de actualizar la detección, con lo cual crea, actualiza y finaliza los seguidores en uso. También realiza las llamadas a las funciones de representación y escritura en fichero. Recibe: Dos objetos, estos son las regiones de interés de cada carril. En este caso, a las regiones de interés no se les ha aplicado ningún tratamiento. Retorna: Ningún objeto. 3. Función de escritura en fichero (writefile): def writefile (IncrLeft ,IncrRight, contador_vehi_izq, contador_vehi_der): Esta función se encarga de la apertura y cierre del fichero, escritura en este y obtención de las marcas temporales asociadas a los vehículos aforados. Recibe: 4 objetos, los dos primeros son banderas o flags que indican a que carril se debe dirigir la escritura en fichero. Los restantes son los contadores asociados a los vehículos aforados en cada carril. Retorna: Ningún objeto. 4. Función de representación (draw): def draw (box_izq_1, box_izq_2, box_der_1, box_der_2, FlagRSI1, FlagRSI2, FlagRSD1, FlagRSD2): Esta función se encarga de la representación visual de las bounding box proporcionadas por los seguidores en uso, representación de los identificadores asociados a los seguidores empleados y la representación del número de vehículo en seguimiento. Recibe: 8 objetos, los 4 primeros son las bounding box proporcionadas por los seguidores en uso. Los 4 parámetros restantes son banderas o flags que indican a que carril y seguidor se dirige la representación. Retorna: Ningún objeto. 5. Función de cálculo de distancias (distance): def distance (deteccion_izq, deteccion_der, box_izq_1_anterior, box_izq_2_anterior, box_der_1_anterior, box_der_2_anterior): Esta función se encarga de obtener los centroides de las bounding box con las que trabaja, calcular la distancia euclídea entre las bounding box proporcionadas por la función de seguimiento y calcular la distancia euclídea entre las bounding box proporcionadas por la función de seguimiento y las últimas bounding box proporcionadas por los seguidores en uso. Recibe: 6 objetos, los dos primeros son las bounding box obtenidas en la función de detección. Los 4 objetos restantes son las últimas bounding box proporcionadas por los seguidores en uso. Retorna: Dos objetos, ambos son listas. Ambas listas están compuestas por las distancias calculadas durante la ejecución de la función (en caso de no calcularse, la distancia se mantiene en cero).