REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente DESARROLLO DE UN AGENTE INTELIGENTE PARA EL CONTROL DEL TRÁFICO VEHICULAR Development of an Intelligent Agent for traffic control Jesús Alayo1, Raúl Mera1, Claudia Rodriguez1 1 Universidad Privada del Norte Recibido ene. 2014; aceptado mar. 2014; versión final abril 2014. Autor de correspondencia: Jesús Alayo, e-mail: [email protected] _______________________________________________________________ Resumen Esta investigación se basa en la tecnología de la visión computarizada de imágenes y videos para detectar, clasificar y dar seguimiento a objetos o eventos con la finalidad de entender una escena o contexto del mundo real. El objetivo es realizar el reconocimiento de vehículos automovilísticos que se encuentran en espera del cambio de color del semáforo en las vías de tránsito de la ciudad de Trujillo, para analizar e interpretar el congestionamiento vehicular y entregar una solución alternativa basada en la decisión que tome el conjunto de agentes inteligentes que examinarán dicha situación. Se aplicará el método de Horn-Schunck de estimación de flujo óptico, el cual es un método global que establece una restricción general de suavidad para resolver el problema de apertura y así determinar la dirección en la que se mueve un objeto específico en la secuencia de imágenes. Palabras clave: Horn-Schunck, filtros de mediana, BoundingBox, RegionProps, flujo óptico. Abstract The project presented below is based on computer vision of images and video technology to detect, classify, and track objects or events in order to understand a scene or real-world context. This project will have as target the recognition of motor vehicles which are awaiting on traffic lights in different roads of the city of Trujillo, in order to analyze and interpret traffic congestion and provide an alternative solution based on the decision that a set of intelligent agents take based on the assessment of the situation. This research was performed the Horn-Schunck optical flow estimation method, which is a comprehensive approach that provides an overall smoothness constraint to solve the problem of opening and determine the direction where a specific object is moving in the image sequence. Keywords: Horn-Schunck, median filters, BoundingBox, RegionProps, optical flow. 1 REFI UPN.2014; 2(1): 01-14 I. Desarrollo de un agente inteligente INTRODUCCIÓN El tráfico vehicular es un problema que se presenta en muchas ciudades del Perú, como en la ciudad de Trujillo. Este se refiere a la condición de un flujo vehicular que se ve saturado debido al exceso de demanda de las vías, que produce incrementos en los tiempos de viaje y atochamientos. Para evitar este inconveniente los automovilistas usan la tecnología para encontrar rutas que le permitan llegar a su destino, pero esto se dificulta por la congestión de las vías. El uso de los semáforos en las rutas vehiculares permite tener un control de todas las vías disponibles en cualquier momento del día, sin embargo estas no cuentan con la capacidad de mejorar la congestión que frecuentemente se presenta. Observando esta problemática nace la necesidad de buscar una solución que ayude a disminuir la aglomeración vehicular que se presenta en las principales vías de la ciudad de Trujillo, para ofrecerles a los automovilistas, además de una ciudad con sendas libres, llegar a sus destinos en menor tiempo. Todo esto gracias a vías alternas que se les ofrecerán y que evitará efectos negativos como: Pérdida de tiempo de los automovilistas y pasajeros, retrasos para llegar a su destino final, desperdicio de combustible, etc. La posibilidad de ofrecerle vías alternativas se da con la creación de un agente inteligente que adaptado a los semáforos de la ciudad permitirán controlar los carriles vehiculares, y de esta manera visualizar la congestión de la misma. Este control frecuente de imágenes será procesado a través del método de Horn-Schunck de estimación de flujo óptico (Montero, 2010) y posteriormente serán llevados a un análisis comparativo que permitirán contabilizar el número de automóviles que se encuentren en cada una de éstas, y finalmente llevadas a través del algoritmo de Dijkstra a mostrar rutas alternativas disponibles. II. MATERIALES Y MÉTODO El desarrollo de este agente inteligente para el control de tráfico vehicular se implementó bajo el lenguaje Matlab, en el cual se llevó a cabo el procesamiento y análisis de las imágenes bajo un entorno de diagramas de bloques para la simulación de los algoritmos como Simulink (Arce y Vianna, 2009). 2 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente Para futuros trabajos e implementación real de este agente, se puede utilizar una videocámara VA Series Cameras porque cuentan con una alta resolución en la captura de imágenes de 1080 x 1064 (Banco Central de Reserva de Perú, 2011), lo cual resulta ideal para monitorear el tráfico vehicular, a través de imágenes con bajo ruido y alta resolución (figura 1). Estas imágenes pueden ser almacenadas en un servidor para posteriormente ser analizadas y tener un historial de éstas. Fuente: Elaboración propia. Figura 1. Video Cámara VA Series Cameras Población La población que se ha considerado para el desarrollo y pruebas del agente es indeterminado debido a que la cantidad de imágenes que pueden ser capturadas no es un valor finito debido a que el monitoreo del tráfico es constante en todo momento. Muestra Cada estudio tiene un tamaño muestral idóneo, que permite comprobar lo que se pretende con la seguridad y precisión fijadas por el grupo investigador, en estudio, debido a la que la población es infinita o desconocida (Bolaños, 2012), el cálculo de la muestra se fijó bajo la siguiente fórmula matemática: 3 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente Dónde: n = Tamaño muestral. z = Valor para la seguridad o nivel de confianza. p = Prevalencia esperada del parámetro a evaluar o Prueba Piloto. q = 1-p i = Error que se prevé cometer. Los valores serían los siguientes: z = 1.96 (Considerando un nivel de confianza de 95%). p = 0.5 (Maximizando, debido a que es un valor desconocido). i = 0.08 (Con un error del 8%). Llevando estos valores a la fórmula matemática del estudio y se obtuvo el siguiente tamaño muestral: Técnicas de Procesamiento y Análisis Después de conocer el tamaño muestral, se procedió a aplicar las técnicas que ayudaron a llevar a cabo del procesamiento de las imágenes: 1. Captura La adquisición de las imágenes se realizó desde un video previamente capturado para las pruebas necesarias, el cual contaba con una resolución de 155x155 píxeles en RGB, dicho video está conformado por un conjunto de imágenes. 4 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente 2. Pre-Procesamiento Cuando se captura las imágenes a través de una videocámara, es casi imposible que las imágenes tengan la calidad ideal para poder llevar a cabo una evaluación sin errores. Este ruido que se genera en las imágenes puede ser causado por diferentes factores, como puede ser la calidad de la videocámara utilizada para la toma de la información. Para evitar posibles errores en el reconocimiento posterior, ese ruido será eliminado, para poder asegurar que las imágenes procesadas tengan la mejor calidad posible y los resultados finales tengan un mayor nivel de confianza. Para ello se aplicó inicialmente una conversión de RBG a Intensity para mejorar la calidad de la imagen para su posterior análisis, luego utilizamos el filtro de la mediana. Median Filter (Filtro Mediana) Como se mencionó anteriormente, la captura de una imagen está siempre expuesta al ruido, es por ello que se aplicó el filtro de la mediana, que es utilizado para reducir ruido y mejorar los resultados del procesamiento posterior. El filtro de la mediana consideró cada pixel de la imagen y miró a sus vecinos más cercanos para decidir si es o no representativo de su entorno. La mediana se calculó ordenando primero todos los valores de los pixeles en orden numérico, para posteriormente reemplazar el pixel con el valor más alto, como se muestra en la figura 2. Fuente: Elaboración propia. 5 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente Figura 2: Cálculo de la mediana Cuando el pixel en consideración es par, se utiliza el promedio de los dos valores de pixeles intermedios. En este caso, el valor medio sería: 124 (figura 3) Fuente: Elaboración propia. Figura 3: Valor medio de los valores de pixeles 3. Segmentación Después de haber aplicado todos los filtros necesarios para tener una imagen de calidad, para el análisis se segmentó con el siguiente método: Método de Horn-Schunck Como la captura está dada por un video, se aplicó el algoritmo de HornSchunck para determinar en qué dirección se mueve un objeto en el video. Este algoritmo permitió obtener dos imágenes, las cuales fueron almacenadas en una matriz, para detectar cuáles eran los objetos que se encuentran en movimiento y de esta manera, determinar el objeto de estudio, es decir los automóviles que van a ser contabilizados para medir el tráfico (MeinhardtLlopis, Sánchez y Kondermann, 2013). Ecuación 1. Fórmula de Horn-Schunck 6 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente Aplicando dichas formulas a cada imagen, se obtuvo dos imágenes u y v por cada captura, donde e son los bordes horizontales y los bordes verticales obtenidos aplicando el filtro de Sobel, el cuál detectó los bordes horizontales y verticales de la imagen, que dio como resultado una imagen transparente con líneas negras y algunos restos de color (Meinhardt-Llopis, Sánchez y Kondermann, 2013). En la figura 4 se muestra como el método logra a través de las dos imágenes capturadas en el video, identificar el movimiento de los objetos, señalizándolos con flechas de dirección. Fuente: Elaboración propia. Figura 4. El método identifica el movimiento de los objetos 4. Descripción Teniendo capturada, procesada y segmentada la imagen, se procedió a controlar los objetos (automóviles) que fueron contabilizados para medir el tráfico vehicular, por lo que se estableció las medidas del área de la imagen que fueron consideradas. Donde se segmentó la región en 2 matrices, puesto que el video capturado muestra un escenario de 2 vías (izquierda y derecha) y a partir de las matrices generadas se capturaron las coordenadas para la creación del bounding box. 7 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente RegionProps Mide un conjunto de propiedades de cada componente conectado (objeto) en la imagen (RegionProps, 2013). STATS = regionprops (BW, propiedades) Dónde: BW: Imagen que será procesada. Propiedades: Para la realización del agente, se consideró la propiedad “BoundingBox”. El rectángulo más pequeño que contiene la región BoundingBox es [ancho ul_corner], donde: ul_corner: Especifica la esquina superior izquierda del rectángulo de la selección. Ancho: Especifica el ancho del rectángulo de la selección a lo largo de cada dimensión. Una vez ubicado los objetos en un rectángulo de selección gracias al RegionProps, se procedió a delimitar los puntos dentro de la imagen, los cuales sirvieron para contabilizar los objetos que fueron considerados para medir el tráfico vehicular. Para ello, se dividió la región en dos matrices para hacer el filtro de segmentación de la imagen en escala de grises y posteriormente se creó una imagen binaria. L1 Matriz vía izquierda Matriz vía derecha 8 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente Dónde: L1 representa el margen bajo el cual se empezará a contabilizar los objetos (automóviles) que van transitando por la vía (figura 5). Fuente: Elaboración propia. Figura 5: Margen para contabilizar los objetos 5. Reconocimiento Para poder afirmar que una vía se encuentra con atochamiento, se consideraron los siguientes aspectos: Tiempo: 2 minutos Si en ambos carriles han pasado 15 automóviles como mínimo, es considerado que es una vía con tráfico vehicular. 6. Interpretación Una vez explicado todos los procesos previos a la realización del agente inteligente, se presenta el diagrama de bloque implementado para su correcto funcionamiento (figura 6 y 7). 9 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente Fuente: Elaboración propia. Figura 6: Bloque Region Filtering Fuente: Elaboración propia. Figura 7: Display Bounding boxes and number of cars 10 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente III. RESULTADO Las pruebas realizadas estaban basadas en la muestra de 150, que fueron obtenidas a partir de la fórmula para el muestreo. Los resultados obtenidos se presentan en la tabla 1. Tabla 1: Resultados de las pruebas N° 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 N° Automóviles 16 17 15 18 17 20 21 16 6 3 21 23 19 20 21 32 17 17 18 19 16 17 13 12 19 29 28 25 27 12 28 25 24 21 21 25 21 24 17 16 18 32 22 16 18 19 Resultado Esperado T T T T T T T T NT NT T T T T T T T T T T T T NT NT T T T T T NT T T T T T T T T T T NT T T T T T Resultado Obtenido T T T T T T T T T NT T T T T T T T T T NT T T NT T T T T T T NT T T T T T T T T T T T T T T T T N° 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 N° Automóviles 19 10 16 17 18 18 34 23 32 22 21 25 16 16 17 17 22 27 32 17 18 21 26 23 25 27 28 29 21 17 18 9 22 10 32 33 31 30 21 24 20 10 12 30 21 16 Resultado Esperado T NT T T T T T T T T T T T T T T T T T T T T T T T T T T T T T NT T NT T T T T T T T NT NT T T T Resultado Obtenido T NT T T T T T T T T T T NT T T T T T T T T T T T T T T T T T T NT T NT NT T T T T T T NT NT T T T 11 REFI UPN.2014; 2(1): 01-14 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 32 21 22 43 32 17 21 21 22 18 16 19 32 21 19 22 18 16 18 22 27 25 29 30 5 21 17 18 21 T T T T T T T T T T T T T T T T T T T T T T T T NT T T T T Desarrollo de un agente inteligente T T T T T T T T T T T T T T T T T T T T T T T T NT NT T T T 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 12 14 28 21 31 20 15 12 15 12 14 20 23 35 10 14 32 32 26 12 11 19 22 33 14 13 30 21 22 NT NT T T T T T NT T NT NT T T T NT NT T T T NT NT T T T NT NT T T T NT NT NT T T T T NT T NT NT T T T NT NT T T T NT NT NT T T T NT T T T Fuente: Elaboración propia. Nota: T = Tráfico vehicular, NT = No tráfico vehicular Total de Errores en los resultados obtenidos = 10. Total de Pruebas = 150. Luego de hacer las pruebas correspondientes se calculó con la fórmula de 3 simple. Teniendo así un porcentaje de error 6.66%. De las 150 pruebas que se implementaron, se generaron algunos errores ya que el agente no tenía un reconocimiento acertado al momento de pasar los carros debido a 3 tipos de escenarios que se presentaron como: La mala posición de la cámara. La mala calidad del video. El agente implementado solo es apto para un entorno específico. 12 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente IV. DISCUSIÓN Luego de observar el conjunto de resultados que fueron recogidos por intermedio de nuestro agente inteligente, se logró determinar que el porcentaje de error al cual el agente está respondiendo, es a un nivel no superior del 6.66%, y el porcentaje máximo de error que se podría obtener es del 8% en general. Esto nos lleva a deducir que las distintas etapas para el procesamiento de imágenes que fue planificado ha sido el más adecuado ya que se pudo contrastar los resultados mostrados en esa sección. Dentro del procesamiento y segmentación de las imágenes, existen dos métodos, los cuales han sido piezas fundamentales para el análisis de dichos elementos. Tanto el filtro Horn-Schunck, como el filtro de la Mediana han sido métodos esenciales que han hecho posible la localización de los objetos; sin embargo, cada agente es muy sensible al entorno que le rodea y a la infraestructura misma de su construcción, esto ha sido verificado en el origen de captura de los datos (la cámara), donde muchas veces ésta se encontraba mal posicionada, en un ángulo muy difícil de procesar, con una mala resolución y calidad de video, entre otros factores que jugaban un rol en contra y terminaban ocasionando desajustes en los métodos de pre procesamiento. V. CONCLUSIONES El uso del método de estimación de flujo óptico denominado Horn-Schunck sirvió para suavizar el contenido de la imagen y determinar la dirección de movimiento de aquellos elementos que fueron objeto de interés de esta investigación; es tal vez uno de los mejores algoritmos para la etapa de pre procesamiento de la imagen capturada por la cámara, para poder de este modo localizar al elemento en movimiento. Sin embargo, para llevar a cabo todo el proceso, la aplicación de este método no fue suficiente y se tuvo que aplicar el filtro de la mediana para eliminar el ruido del fotograma y así finalmente aplicarle el umbral a la imagen para poder seleccionar el espacio que ocupa el vehículo móvil en la imagen. En lo sucesivo se contabilizó cada uno de los vehículos que iban transitando en determinados intervalos de tiempo y en los diferentes carriles de la pista vehicular; así bajo ciertos criterios 13 REFI UPN.2014; 2(1): 01-14 Desarrollo de un agente inteligente que se han establecido para determinar cuando existe o no congestión, se llegó a determinar el contexto de la congestión vehicular en una determinada vía. Para posteriores trabajos, esta investigación podría ser de utilidad ya que después de este procesamiento, se podrían optar por mostrar al usuario una lista de rutas alternativas o enlazar los distintos agentes inteligentes ubicados en los semáforos, para tomar una decisión y optar tal vez por cambiar el estado de los semáforos de forma coordinada para dar preferencia a alguna vía de tránsito. Agradecimiento A la Universidad Privada del Norte por brindarnos los medios e instalaciones necesarias para la demostración del proyecto, y de una forma muy en especial al Ingeniero Juan Salazar Campo, docente a cargo del curso. BIBLIOGRAFÍA Bolaños R., E. (2012). Muestra y Muestreo. Universidad Autónoma del Estado de Hidalgo. Recuperado 22 de abril de 2014, a partir de http://www.uaeh.edu.mx/docencia/P_Presentaciones/tizayuca/gestion_tecnologica/mue straMuestreo.pdf Banco Central de Reserva del Perú (2011). El tiempo es dinero: Cálculo del valor social del tiempo en Lima Metropolitana para usuarios transporte urbano. Revista Estudios Económicos, 20, 73 -86. Recuperado 25 de abril de 2014, a partir de http://www.bcrp.gob.pe/docs/Publicaciones/Revista-Estudios- Economicos/20/ree-20calmet-capurro.pdf Meinhardt-Llopis, E., Sánchez P., J. y Kondermann, D. (2013). Horn-Schunck Optical Flow with a Multi-Scaly Strategy. Image Processing On Line. Recuperado 22 de abril de 2014, a partir de http://www.ipol.im/pub/art/2013/20/ RegionProps. (2013).The Mathworks, Inc. Recuperado 25 de abril de 2014, a partir de http://www.mathworks.com/help/images/ref/regionprosp.html Arce, A. y Vianna, G. (2009). Manual Avanzado de Simulink para la Asignatura Fundamentos de Automática. Universidad de Sevilla. Recuperado 25 de abril de 2014, a partir de https://www5.uva.es/guia_docente/uploads/2011/493/46447/1/Documento1.pdf 14