scieee AI-readable full text Open interactive document viewer

Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales

Perozo Torrents, Miguel

Abstract

Este trabajo tiene como pilares fundamentales la creación de una base de datos de imágenes de señales de tráfico y la clasificación de estas señales a través del análisis de diferentes arquitecturas de redes neuronales convolucionales. Se han probado cuatro arquitecturas: una CNN Simple, una CNN Estándar, ResNet-50 y VGG19. Por último, se ha creado una pequeña interfaz gráfica de usuario que simula el comportamiento de un HUD (Head-Up Display) de un coche. Las redes neuronales convolucionales son un tipo de red que se especializa en la detección y reconocimiento de objetos dentro de imágenes, procesamiento de audio y voz. La principal diferencia respecto a las redes neuronales normales es que estas utilizan una serie de operaciones de convolución en sus capas ocultas. La base de datos ha sido elaborada desde cero, tomando recortes de frames de videos grabados en carreteras españolas en los que aparecían señales de tráfico. La base de datos posee varios niveles de preprocesamiento que permiten establecer una estandarización de los datos para luego alimentar a las diferentes arquitecturas. Dentro de la preparación se destacan técnicas y métodos como las transformaciones geométricas, cambios de perspectivas, eliminación de ruido y etiquetado normalizado de los datos. El resultado final es un conjunto de 15 clases diferentes de señales de tráfico españolas. Una vez creada la base de datos, se procede a dividirla en tres conjuntos diferentes: conjunto de entrenamiento, conjunto de validación y conjunto de prueba. Se realiza un reprocesado de los datos, normalizando el tamaño de las imágenes y estandarizando la entrada para el entrenamiento de las arquitecturas. Luego se procede al entrenamiento de las cuatro arquitecturas antes mencionadas para la clasificación de las señales de tráfico y su posterior análisis. Para ello, se ha hecho uso de diferentes métricas, como la matriz de confusión, la exactitud y el sesgo, que permiten establecer un criterio objetivo entre los resultados obtenidos para discernir cuál de las arquitecturas tiene una mejor respuesta ante la tarea de clasificación. Tras el análisis, se concluye que la mejor arquitectura es la ResNet-50, por lo tanto, esta es la que se utiliza para la implementación dentro de la interfaz gráfica de usuario. Esta aplicación posee una ventana principal que se divide en dos partes. La parte superior utiliza un video en la carretera nunca antes visto que simula lo que vería el coche en todo momento. La parte inferior es la recreación del HUD, en el que se van incorporando las señales de tráfico detectadas durante el procesamiento del video. Este trabajo demuestra la efectividad del uso de redes neuronales convolucionales en la clasificación de señales de tráfico, destacando especialmente la arquitectura ResNet-50 por su superior rendimiento. La creación de una base de datos personalizada y exhaustivamente preprocesada ha sido fundamental para entrenar y evaluar diferentes arquitecturas de redes neuronales. Además, la implementación de una interfaz gráfica de usuario que simula un HUD muestra una aplicación práctica y directa de estos avances en el campo de la inteligencia artificial. Esto no solo subraya el potencial de las redes neuronales convolucionales en la mejora de la seguridad vial, sino también su capacidad para integrarse en sistemas de asistencia al conductor, brindando una solución innovadora y eficiente.

Full text

Equation Chapter 1 Section 1 Trabajo Fin de Máster Máster de Ingeniería Industrial Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Autor: Miguel Perozo Torrents Tutor: Manuel Garrido Satué Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024 iii Proyecto Fin de Máster Máster Ingeniería Industrial Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Autor: Miguel Perozo Torrents Tutor: Manuel Garrido Satué Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024 v Trabajo Fin de Master: Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Autor: Miguel Perozo Torrents Tutor: Manuel Garrido Satué El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2024 El Secretario del Tribunal A mi familia A mis maestros vii ix Agradecimientos Parece que no llega, pero todo llega. Al escribir estas líneas, pongo punto y final a una etapa, pero abro otra. Es una carrera que deja huella en la personalidad de cada uno. Querer mejorar, no ser conformista, luchar, hacer equipo o aceptar la derrota son valores que, a pesar del conocimiento adquirido que se irá desvaneciendo con la edad, considero lo más valioso que me llevo de esta experiencia. Por este motivo, me siento muy afortunado de poder expresar mi gratitud a las personas que han formado parte de este viaje. A mi madre Rocío y a mi padre Juan Antonio, por darme siempre todo lo que han tenido a su alcance para hacerme feliz, aconsejarme y ayudarme con todo su conocimiento y amor a cumplir esta meta. Les debo todo lo que soy. A mi hermana María, por estar ahí, escucharme, quererme y hacerme los días más llevaderos. Gran parte de mi personalidad se la debo a ella, pudiendo ejercer de hermano mayor. A mis abuelos, por cuidarme desde pequeño. Todos estarían enormemente orgullosos de verme escribir estos párrafos y poder presumir de su nieto. Especialmente a mi abuelo Fernando, por enseñarme, por hacerme reír y por dedicarme una de las frases que he guardado y leído en bastantes ocasiones antes de lidiar con exámenes importantes, armándome de valor y seguridad. A Paula, por todos estos años, por escucharme, aconsejarme, darme las fuerzas que necesitaba en cada reto, mirar por mí, quererme y, sobre todo, acompañarme. A Ángel, por ser mi compañero de batalla, mi mejor amigo, por coger ese casco de minero y echar un sinfín de horas picando entre papeles juntos, pero sobre todo por ayudarme en el día a día, permitiéndome aprender de él y haciéndome sentir parte de su familia. A mí mismo, por lo que he construido, por creérmelo, por poner todo el esfuerzo y voluntad para que las cosas que dependan de mí salgan lo mejor posible. A todo el resto de mi familia y amigos, a mi tutor Manuel, por querer embarcarse por segunda vez en un trabajo conmigo, y a todas las personas que, aportando su granito de arena, han logrado que alcance este objetivo. Gracias. Miguel Perozo Torrents Estudiante Máster de Ingeniería Industrial Sevilla, 2024 ÍNDICE DE TABLAS Tabla 1. Métrica CNN Simple 74 Tabla 2. Métrica CNN Estándar 78 Tabla 3. Métrica ResNet-50 83 Tabla 4. Métricas VGG19 88 Tabla 5. Cambio Hiperparámetros sin regularización por abandono 89 Tabla 6. Cambio Hiperparámetros aplicando regularización por abandono 90 xvii ÍNDICE DE FIGURAS Figura 1. Arquitectura CNN 3 Figura 2. Aplicación de HUD real 4 Figura 3. Soporte Universal para Teléfono 6 Figura 4. Componentes Fundamentales de un algoritmo de Machine Learning 9 Figura 5. IA, Machine Learning y Deep Learning 10 Figura 6. Neurona McCulloch y Pitts 11 Figura 7. Arquitectura perceptrón simple 12 Figura 8. Neurona McCulloch-Pitts vs Neurona Perceptrón Simple 13 Figura 9. Arquitectura del Perceptrón Multicapa 13 Figura 10. Clasificación de redes neuronales por número de capas 14 Figura 11. Red Neuronal Recurrente 15 Figura 12. Feedforward Propagation 19 Figura 13. Gradient Descent 22 Figura 14. Entrenamiento supervisado 24 Figura 15. K-Means Clustering 25 Figura 16. Componentes del Aprendizaje por Refuerzo 26 Figura 17. Sobreajuste y subajuste 28 Figura 18. Batch Normalization 29 Figura 19. Dropout 30 Figura 20. Desarrollo Función de Activación 31 Figura 21. Función de activación Escalón 31 Figura 22. Función de activación Sigmoidal o Logística 32 Figura 23. Función de activación Hiperbólica 32 Figura 24. Función de activación Softsign 33 Figura 25. Función de activación ReLU 33 Figura 26. Función de activación LEAKY ReLU 34 Figura 27. Función de activación PReLU 34 Figura 28. Función de activación GELU 35 xix Figura 29. Función de activación Softplus 35 Figura 30. Función de activación Swish 36 Figura 31. Mish 36 Figura 32. Matriz de Confusión 39 Figura 33. Operación de convolución 41 Figura 34. Ejemplo de detección de características por etapas 42 Figura 35. Ejemplo de imagen RGB y 4 kernels 43 Figura 36. Ejemplo de Pooling 43 Figura 37. Estructura del Neocognitrón 44 Figura 38. Arquitectura CNN simple 45 Figura 39. Arquitectura CNN Multicapa 46 Figura 40. Ejemplo del rendimiento entre un algoritmo ResNet y otro convencional 47 Figura 41. Arquitectura ResNet-50 47 Figura 42. Arquitectura VGG19 48 Figura 43. Extracto del mapa oficial de carreteras españolas 51 Figura 44. Ejemplo de imagen de interés en un frame de uno de los videos 51 Figura 45. Algoritmo de NMS 53 Figura 46. Arquitectura YOLO V-8 54 Figura 47. Open Images Dataset V7 and Extensions 54 Figura 48. Formato del etiquetado en YOLO 55 Figura 49. Collage de detección de señales en varios videos 55 Figura 50. Detección de carteles publicitarios 56 Figura 51. Detección de cartelería errónea de carreteras 57 Figura 52. Detección de objetos erróneos 57 Figura 53. Dimensiones señales de tráfico verticales 58 Figura 54. Ejemplo de un extracto de señales obtenidas tras procesar un video 59 Figura 55. Extracto la carpeta de señales capturadas de 60 km/h 59 Figura 56. Imagen Real vs Imagen Rotada 61 Figura 57. Imagen Real vs Imagen Transformada 61 Figura 58. Extracto de clase 3 63 Figura 59. Extracto de clase 8 63 Figura 60. Extracto de clase 13 63 Figura 61. Espacio de colores RGB 66 Figura 62. Espacio de colores HSV 66 Figura 63. Espacio de colores CMYK 67 Figura 64. Extracto del código empleado, técnica de codificación en caliente 68 Figura 65. Diagrama de flujo del preprocesamiento 69 Figura 66. Extracto de configuración del modelo CNN 70 Figura 67. Arquitectura CNN simple 70 Figura 68. Entrenamiento CNN Simple 71 Figura 69. Pérdida CNN simple 71 Figura 70. Exactitud CNN Simple 72 Figura 71. Exactitud del conjunto de Prueba CNN Simple 73 Figura 72. Matriz de confusión CNN Simple 73 Figura 73. Resumen matriz confusión CNN Simple 73 Figura 74. Arquitectura CNN Estándar 75 Figura 75. Entrenamiento CNN Estándar 75 Figura 76. Pérdida CNN Estándar 76 Figura 77. Exactitud CNN Estándar 76 Figura 78. Exactitud del conjunto de Prueba CNN Estándar 77 Figura 79. Matriz de confusión CNN Estándar 77 Figura 80. Resumen matriz de confusión CNN Estándar 78 Figura 81. Extracto final de la arquitectura ResNet-50 80 Figura 82. Entrenamieto de ResNet-50 80 Figura 83. Pérdida ResNet-50 81 Figura 84. Exactitud ResNet-50 81 Figura 85. Exactitud del conjunto de Pruebas ResNet-50 82 Figura 86. Matriz de confusión ResNet-50 82 Figura 87. Extracto matriz confusión ResNet-50 83 Figura 88. Arquitectura CNN VGG19 84 Figura 89. Entrenamiento VGG19 85 Figura 90. Pérdida VGG19 85 Figura 91. Exactitud VGG19 86 Figura 92. Matriz de confusión VGG19 87 Figura 93. Extracto matriz de confusión VGG19 87 Figura 94. Distribución de la Interfaz 93 Figura 95. Funcionamiento HUD 94 Figura 96. Distribución por celdas 94 Figura 97. Ejemplo de condición 2 95 Figura 98. Ejemplo etiqueta peligro glorieta 95 xxi Notación A* Conjugado c.t.p. En casi todos los puntos c.q.d. Como queríamos demostrar ∎ Como queríamos demostrar e.o.c. En cualquier otro caso e número e IRe Parte real IIm Parte imaginaria sen Función seno tg Función tangente arctg Función arco tangente sen Función seno sinxy Función seno de x elevado a y cosxy Función coseno de x elevado a y Sa Función sampling sgn Función signo rect Función rectángulo Sinc Función sinc ∂y ∂x x◦ Derivada parcial de y respecto Notación de grado, x grados. Pr(A) Probabilidad del suceso A SNR Signal-to-noise ratio MSE Minimum square error : Tal que < Menor o igual > Mayor o igual \ Backslash ⇔ Si y sólo si 1 1 INTRODUCCIÓN ste capítulo inicial constará de una breve visión que recopile el contexto general del proyecto realizado. Se desgranará el latemotiv del estudio sobre el reconocimiento de señales de tráfico, acuñando el concepto de las redes neuronales, desglosando sus consecuencias tanto sociales como tecnológicas y desgranando el motor principal que ha propulsado la realización este trabajo. Hoy en día en cualquier sector laboral dispone de competencias que incluyen o bien técnicas de optimización, o manejo de datos, repetición de procesos, clasificación, etc…, cuyos esfuerzos se ven complementados por el uso de la inteligencia artificial (IA). La IA no solo proporciona herramientas avanzadas para mejorar la eficiencia y precisión de las tareas, sino que también abre nuevas oportunidades para innovar y transformar los procesos tradicionales. Con este enfoque, el proyecto se encuentra orientado dentro del marco del sector automovilístico, ampliamente conocido por su vertiginoso desarrollo tecnológico constante y su continua exigencia de mejora tanto para el usuario como para la seguridad de los mismos. En la actualidad, los coches están completamente dotados de decenas de sensores, actuadores y componentes, que ayudan al coche de disponer de un mayor control del entorno. El control de crucero adaptativo (ACC), que utiliza sensores como radares y cámaras para mantener una velocidad del coche constante, los Sistemas de Frenando de Emergencia Automáticos (AEB), que utiliza la información proporcionada por los sensores para detectar obstáculos en el camino y aplicar los frenos de manera automática en caso de una colisión inminente, o la Asistencia de Mantenimiento de Carril (LKA, Lane Keeping Assist), son una serie de algoritmos de control que se apoyan en el uso de la tecnología incorporada dentro del automóvil para asegurar el confort, prevención de accidentes y la eficiencia del mismo. Dentro de estas aspiraciones, se sitúa la detección de las señales de tráfico. Una eficaz implementación facilita el correcto uso de las normas de circulación de la vía y la prevención de accidentes. Estudios de la Dirección General de Tráfico (DGT), indican que más del 80% de las muertes producidas en carretera, se deben a un uso excesivo de la velocidad de circulación en la vía. A una velocidad de 80 km/h, se produce una pérdida del 35% de la eficacia visual, dificultando la capacidad de frenado y sumergiendo al conductor al efecto túnel. Por lo que, dotar al vehículo con un método en el que se pueda apoyarse para reconocer y adaptar la velocidad a la vía, resulta imprescindible para seguir aumentando la seguridad del usuario, la del entorno y cumplimentar con las aspiraciones y retos futuros, donde el alcance de un modelo de automóvil con complementa autonomía vial parece demorarse más de lo que se pensaba. 1.1. Motivación La motivación principal de este proyecto se ve fomentada por el uso de las diferentes técnicas de programación utilizando redes neuronales artificiales, el análisis de sus diferentes arquitecturas y la generación de una base de datos de señales de tráfico novedosa. La mayoría de las investigaciones encontradas en este marco de trabajo, utilizan una serie de base de datos bastante testeadas y recogidas en diversas investigaciones, denominados como German Traffic Sign Recognition Benchmark (GTSRB) y German Traffic Sign Detection Benchmark (GTSDB), ambas gratuitas. Sendos datatsets de señales de tráfico, proporcionan imágenes muy similares, con una iluminación y una resolución bastante parecidas entre sus muestras. Por tanto, uno de los retos de este proyecto fue proponer una base de datos de señales de tráfico novedosa, creada desde cero con las herramientas que se tenía al alcance. El disponer de una mayor variedad de características del entorno enriquece el estudio y en concreto, aporta un enfoque distintito al partir de un origen diferente para este tipo de estudio. E Introducción 2 Por otro lado, el adquirir nuevos conocimientos acerca de programación de redes neuronales y comprobarlos con ejemplos físicos, en este caso señales de tráfico españolas, también ha supuesto una motivación adicional, ya que ha acelerado mi formación dentro de este sector tan reconocido a día de hoy. Aprovechar esta oportunidad brindada para explayar una metodología a la hora de recopilar una base de datos novedosa también ha sido una de las motivaciones principales, ya que inicialmente, carecía de documentación para realizarlo de una manera sistemática, por lo que también se presentarán las herramientas escogidas para ello en la que se podrán apoyar futuros trabajos. 1.2. Objetivos El objetivo inicial de este proyecto es la creación de una base de datos de señales de tráfico novedosa y el análisis de diferentes arquitecturas de redes neuronales artificiales sobre ella. Asimismo, asegurar una base de datos robusta y completa que mantenga el equilibrio en las señales viales permitiendo crear modelos de reconocimiento consistentes. Además de recopilar imágenes de señales de tráfico mediante diversas condiciones de iluminación horaria, clima y ángulos para asegurar la generalización de los modelos. Implementar técnicas de preprocesamiento de los datos para mejorar la calidad de las imágenes y estandarizar la manera en la que se preparan para su futuro entrenamiento. Entender y garantizar el uso de las métricas de análisis para cerciorarse de un estudio objetivo de los resultados obtenidos. Evaluar y entrenar diversas arquitecturas de redes neuronales en la tarea de reconocimiento de señales de tráfico, permitiendo identificar cuál es la más recomendable para este proyecto. Optimizar y ajustar dichos modelos a través del uso de sus hiperparámetros, con el objetivo de mejorar su rendimiento. Desarrollar un mayor conocimiento en aspectos de programación en Python, con sus librerías más comunes, y recopilar una documentación lo suficientemente extensa para poder ser usada para futuros trabajos, suponen en otros, unos de los objetivos principales del desarrollo de este proyecto. Por último, desarrollar una pequeña interfaz de usuario que ponga en marcha dentro de un ejemplo físicopráctico el funcionamiento de la red junto a lo que sería el funcionamiento real de un HUD (Head-Up Display). 1.3. Tendencias Este apartado abordará la evolución histórica de las redes neuronales hasta nuestros días. El poder contextualizar las arquitecturas escogidas y el origen del que partimos resulta de vital importancia a la hora de comprender el contexto en el que se encuentra este marco de trabajo. La primera neurona artificial que se conoce data de finales de los años 50s, desarrollado por Frank J. Ronsenblatt, inspirada en las redes neuronales biológicas del cerebro, similares a las neuronas del modelo McCulloch-Pitts (Neurona M-P). Este simple algoritmo se caracteriza porque recibe uno o varios valores en binario (1 o 0), retornando a su vez un valor binario (1 o 0). Se le conoce como una neurona todo o nada. Este número de valores de entrada que activan o desactivan la neurona se denomina threshold. Este planteamiento de la neurona de McCulloch y Pitts evolucionó a lo que se conoce como perceptrón. Este algoritmo no recibía únicamente valores de entrada binarios, sino que permite valores de entradas reales. Se basa en un tipo de neurona artificial conocida como Threshold Logic Unit (TLU). Añade el novedoso concepto del “peso” numérico a las entradas y planteando un algoritmo para ajustarlos. La TLU computa una suma parametrizada de las entradas. 3 3 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales El perceptrón se corresponde con una arquitectura compuesta por una única capa de TLUs, que permiten clasificar las instancias en diferentes clases binarias de manera simultánea. Además, trata de eliminar el concepto de threshold, asignándolo de manera automática como si se tratase de una característica más a tener en cuenta, denominándolo como término independiente o término bias (b). A mediados de la década de los 60s, se desarrolla la evolución natural del perceptrón simple, el perceptrón multicapa. Este algoritmo al que se le añade más capas en su arquitectura interna, se compone de varios perceptrones simples interconectados entre sí, dividiendo su arquitectura en una capa de entrada, varias capas ocultas y una capa de salida, al que se le aplica el mismo método antes descrito. El siguiente avance dentro de las redes neuronales de significante calado fue la implementación de las redes de tipo Feedforward dentro del perceptrón multicapa, acuñando el término de Deep Feedforward Network. Este mecanismo permitía que toda la información fluyera desde las entradas hasta la salida sin conexiones de feedback, permitiendo mejorar los algoritmos de entrenamiento automático. Todas las capas de este modelo se encuentran totalmente conectadas (Fully connected) con las siguientes capas. No fue hasta la década de los 80s cuando se introduce un nuevo tipo de red denominada como redes convolucionales (CNN), desarrolladas por Yann LeCun, inspiradas en la estructura y el funcionamiento del córtex visual de los animales. Esta arquitectura es especialmente útil en aplicaciones de procesamiento de imágenes o audios, donde hay que manejar una gran gama de características de entrada. Por este motivo, este tipo de redes neuronales artificiales son las que se tratan de analizar en este proyecto. Las CNNs constan de varias capas que se encargan de la extracción de características y posteriormente de la clasificación. La imagen de entrada se divide en pequeños segmentos denominados campos receptivos, que son alimentados a través de una capa convolucional. Esta capa aplica filtros o Kernels que permiten detectar patrones específicos en la imagen, como líneas verticales, horizontales, bordes y vértices. Los filtros se desplazan por toda la imagen, generando mapas de características que resaltan la presencia de los patrones detectados. Después de dicha convolución, se aplica una operación de pooling (agrupamiento) para reducir la dimensionalidad de los mapas de características. El pooling más común es el max pooling, que selecciona el valor máximo de un conjunto de valores en la vecindad de un campo receptivo, manteniendo la información más relevante. Finalmente, las características extraídas y reducidas en dimensionalidad son aplanadas y alimentadas a una red feedforward multicapa o fully connected, como la que se ha explicado anteriormente. Figura 1. Arquitectura CNN Estado del arte 10 Una solución al problema de la extracción manual de características es utilizar un enfoque conocido como Representation Learning. El Representation Learning, o aprendizaje de representaciones, es una subdisciplina del Machine Learning que se centra en la capacidad de un algoritmo para aprender automáticamente las representaciones de los datos (características, atributos) necesarias para la tarea de aprendizaje, en lugar de depender de características diseñadas manualmente por expertos humanos. A pesar de estas técnicas, en determinadas situaciones, sigue siendo difícil extraer características de alto nivel que sean apropiadas para el problema que estamos abordando. A raíz de esta situación, se comienzan a emplear las técnicas de End-to-End Learning, conocidas como Deep Learning. La técnica de Deep Learning es una rama avanzada del Machine Learning que se basa en redes neuronales artificiales. A diferencia de los algoritmos de Machine Learning tradicionales, que a menudo requieren la extracción manual de características, el Deep Learning permite a los modelos aprender directamente a partir de los datos brutos, optimizando todas las etapas del procesamiento de datos en un único modelo de extremo a extremo. El Deep Learning es extremadamente eficaz para trabajar con datos no estructurados, como imágenes, texto y audio, debido a su capacidad para aprender representaciones jerárquicas complejas. Al aprender directamente de los datos brutos, se reduce la necesidad de diseñar manualmente características específicas para cada tarea, ahorrando tiempo y esfuerzo. La parte negativa de estos modelos es que requieren mucha capacidad computacional de cálculo y tiempo de procesamiento. Además, e entrenamiento también requiere de una cantidad significativa de recursos computacionales, incluyendo potentes GPU y significantes cantidades de memoria. Esta técnica es una subdisciplina avanzada dentro del campo del Machine Learning, que a su vez es una rama de la Inteligencia Artificial (IA). Mientras que el Machine Learning se centra en el desarrollo de algoritmos que permiten a las computadoras aprender y hacer predicciones basadas en datos, el Deep Learning lleva este concepto un paso más allá al utilizar redes neuronales profundas para automatizar la extracción y el aprendizaje de características complejas directamente de los datos brutos. A pesar de los desafíos asociados con los altos requerimientos computacionales y la necesidad de grandes conjuntos de datos, las técnicas de Deep Learning se continúan perfeccionando diariamente, mostrando un gran potencial para futuras aplicaciones e innovaciones. Figura 5. IA, Machine Learning y Deep Learning 11 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales 2.2. Redes Neuronales Artificiales 2.2.1 Neurona de McCulloch y Pitts El modelo neuronal de McCulloch y Pitts de 1943, Threshold Logic Unit (TLU), o Linear Threshold Unit, fue el primer modelo neuronal moderno, y ha servido de inspiración para el desarrollo de otros modelos neuronales. Se corresponde con la primera neurona artificial de la historia y se caracteriza porque recibe uno o más valores binarios {1,0}, retorna otro valor binario {1,0}, y activa su salida cuando más de un numero determinados de valores de entrada se encuentran activos. El número de entrada que deben estar activos para activarse se realiza de manera manual y se le conoce como threshold. Esta neurona artificial está constituida por dos funciones, una de función de agregación (z) y una función de activación (a), que toma una decisión en base a la agregación anterior. • La función de agregación combina las entradas de la neurona de una manera específica. En este caso la neurona de McCulloch y Pitts utiliza las sumas de las entradas. Matemáticamente, si las entradas son 𝑥1,𝑥2,...,𝑥𝑛x1,x2,...,xn, la función de agregación puede expresarse como: • La función de activación toma la salida de la función de agregación y decide si la neurona se activa (retorna un valor de 1) o no (retorna un valor de 0). En el caso de la TLU, la función de activación es un paso o función umbral. Si z supera el umbral predefinido θ, la neurona se activa: El modelo de McCulloch y Pitts fue revolucionario porque introdujo la idea de que las neuronas artificiales podrían imitar el comportamiento de las neuronas biológicas al procesar información de manera simple pero efectiva. Aunque las TLU tienen limitaciones debido a su naturaleza lineal y su capacidad binaria de decisión, sentaron las bases para el desarrollo de modelos neuronales más complejos y potentes, como las redes neuronales profundas. Figura 6. Neurona McCulloch y Pitts Estado del arte 12 2.2.2 El Perceptrón Simple El perceptrón simple fue introducido por Rosenblatt en 1962, es un modelo unidireccional constituido por dos capas de neuronas, una de entrada y otra de salida. Es la evolución de la neurona de McCulloch-Pitts. Añade el concepto de peso numérico a las entradas, planteando un algoritmo para ajustarlo. El perceptrón simple permite valores de entradas reales. Su arquitectura está compuesta por n neuronas de entrada y m neuronas de salida. Figura 7. Arquitectura perceptrón simple • La función de agregación (z) combina las entradas de la neurona de una manera específica. En el caso de la TLU, esto se realiza sumando las entradas ponderadas. Matemáticamente, si las entradas son 𝑥1,𝑥2,...,𝑥𝑛x1,x2,...,xn, y los pesos son son, w1,w2,...,w𝑛. La función de agregación puede expresarse como: • La función de activación transforma el resultado de la combinación lineal entre las variables independientes y sus pesos asociados y, determina el nivel de activación de la neurona. La función de activación suele ser la misma que la utilizada en la neurona de McCulloch-Pitts, denominada función escalón o Heaviside function. Por otro lado, el perceptrón simple trata incorporar el threshold de manera automática, como si se tratase de una característica más, dentro del vector características de entrada, denominando a este parámetro como término independiente o término bias (b). El perceptrón simple no proporciona como resultado una probabilidad, sino que realiza las predicciones en base a un threshold estático, construyendo límites de decisiones lineales y dividiendo los datos en diferentes regiones. La diferencia fundamental con la neurona de M-P es que el perceptrón simple sí dispone de la capacidad de manejar valores continuos en su función de agregación. Actualmente, se utiliza en gran medida para clasificar datos, o como algoritmo que permite simplificar o supervisar las capacidades de aprendizaje de los clasificadores binarios. 13 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Figura 8. Neurona McCulloch-Pitts vs Neurona Perceptrón Simple 2.2.3 El Perceptrón Multicapa El perceptrón multicapa es la evolución natural del perceptrón simple. Es una red neuronal artificial formada por varias TLUs, de tal manera que ofrece la capacidad de resolver problemas que no son linealmente separables, solventando la principal desventaja del perceptrón simple. Su arquitectura está compuesta por una capa de entrada, constituida por aquellas neuronas que introducen los vectores de características de entrada en la red, por una o varias capas ocultas, formadas por aquellas neuronas cuyas entradas provienen de las capas anteriores y cuyas salidas pasan a las capas posteriores, y una capa de salida, cuyos valores generados se corresponden con las salidas de toda la red. Todas las capas se encuentran totalmente conectadas (fully connected) con las siguientes capas. Figura 9. Arquitectura del Perceptrón Multicapa Estado del arte 14 El funcionamiento principal del perceptrón multicapa se puede dividir en diferentes etapas: • Propagación hacia Adelante (Forward Propagation): La propagación hacia adelante es un proceso que se detallará en los próximos subcapítulos, en el que básicamente, las entradas se pasan a través de la red y se transforman en una salida. En primer lugar, cada entrada se multiplica por un peso inicial y se le suma el término bias. Luego, esta suma ponderada se pasa a través de una función de activación, introduciendo no linealidades al modelo, permitiendo que la red se adapte a representaciones de datos más complejos. Los valores transformados pasan a la siguiente capa, repitiéndose el proceso hasta llegar a la capa de salida. • Función de Pérdida: La función de pérdida se encarga de medir el costo o el error entre la salida predicha por la red neuronal y el valor deseado. • Retropropagación (Backpropagation): Este proceso es el que se realiza para ajustar los pesos y minimizar la función pérdida. Primero, se calcula el error en la salida de la red. Tras esto, el error se propaga hacia atrás a través de la red, desde la capa de salida hacia las capas anteriores. Finalmente, los pesos se ajustan en función del gradiente del error con respecto a cada peso. Este ajuste se realiza utilizando un algoritmo de optimización como el descenso de gradiente. La ventaja principal de este algoritmo es la capacidad de moldearse a funciones más complejas y no lineales, sin embargo, requiere de una gran cantidad de datos etiquetados para entrenarse adecuadamente, lo cual no siempre resulta una tarea sencilla. El entrenamiento puede ser muy costoso en términos de tiempo y recursos computacionales. Además, se debe cerciorarse de una amplia generalización de datos para evitar problemas con proceso de entrenamiento. 2.2.4 Tipos Redes Neuronales Artificiales La clasificación de las redes neuronales artificiales se divide principalmente en base a su número de capas, conexiones, grado de conexión y arquitectura para las que son destinadas. Existen diferentes maneras de clasificar según estos criterios, entre los más comunes: • Según su número de capas: Generalmente se pueden dividir en dos tipos, redes neuronales monocapas y redes neuronales multicapas. o Redes Neuronales Monocapas. Son las más sencillas de manipular, en ellas la capa de entrada se conecta a las neuronas de la capa de salida directamente. En la capa de entrada no se realizan cálculos, por este motivo se considera como capa únicamente la final. No se tiene en cuenta a la hora de clasificar la TLU. o Redes Neuronales Multicapa. Existen conexiones entre la entrada, capas ocultas y salida. Pueden contar con una o más capas ocultas. Estas capas de las neuronas pueden conectarse entre ellas o no. Figura 10. Clasificación de redes neuronales por número de capas 15 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales • Según los tipos de conexiones: La manera en la que las TLUs se conectan entre ellas puede englobar diferentes maneras. Este tipo de conexiones entre las neuronas facilitan la elección del tipo de red neuronal que se quiere desarrollar para la tarea en cuestión. Entre los tipos que existen: o Redes neuronales no recurrentes. Datan del año 1980, esta disposición de conexión entre neuronas trabaja con la información en un único sentido. No existe una realimentación y carece de memoria. Este tipo de red neuronal se utiliza principalmente en algoritmos dentro de la fase de entrenamiento. o Redes neuronales recurrentes. Las neuronas disponen de conexiones de realimentación, entre neuronas de la misma o diferentes capas. Esta realimentación dota a la red neuronal de memoria. La recurrencia en redes neuronales dota de mayores ventajas a la red siendo más potentes. Figura 11. Red Neuronal Recurrente • Según el grado de conexión: Dependiendo del grado de conexiones entre neuronas que disponga la red se pueden distinguir dos situaciones: o Redes neuronales totalmente conectadas (fully connected): Las capas anteriores y las capas posteriores, se encuentran completamente conectadas, las neuronas están en su totalidad conectadas entre ellas. o Redes neuronales parcialmente conectadas: No todas las neuronas de la capa anterior están totalmente conectadas a cada neurona de la capa posterior. • Según el tipo de arquitectura: La clasificación de las redes neuronales según su arquitectura permite discernir entre las funciones para la que queremos emplear dicha tecnología. Las diferentes arquitecturas están diseñadas para abordar distintos tipos de problemas y tareas, optimizando su rendimiento en función de las características específicas de los datos y los objetivos del aprendizaje. A continuación, se describen las principales arquitecturas de redes neuronales: o Redes Neuronales Transformers: Las redes neuronales Transformers son una arquitectura innovadora diseñada inicialmente para tareas de procesamiento del lenguaje natural (NLP). Utilizan mecanismos de atención para procesar y generar texto de manera más efectiva, superando a las redes recurrentes en muchas tareas. La arquitectura Transformer permite la paralelización durante el entrenamiento, mejorando significativamente la eficiencia. Son la base de modelos avanzados como GPT (Generative Pre-trained Transformer) y BERT (Bidirectional Encoder Representations from Transformers). Este tipo de arquitectura, consume muchos recursos y energía. o Redes Neuronales Recurrentes: Las redes neuronales recurrentes están diseñadas para procesar secuencias de datos, lo que las hace ideales para tareas como el procesamiento del lenguaje natural, la traducción automática y la predicción de series temporales. Las RNN tienen conexiones dirigidas que crean bucles, permitiendo que la información persista y que los nodos dependan de sus estados anteriores. Sin embargo, pueden sufrir problemas como el desvanecimiento y el crecimiento explosivo del gradiente. Las Transformers las están Estado del arte 16 sustituyendo en muchos procesos. o Redes Neuronales Convolucionales: Son la arquitectura escogida para la elaboración de este proyecto debido a su gran capacidad para ser efectivas en el procesamiento de datos que tienen una estructura de rejilla, como las imágenes. Utilizan diferentes capas para extraer características y reducir dimensionalidad, respetando las relaciones espaciales entre los píxeles. o Redes Generativas Adversarias: Las redes generativas adversarias constan de dos redes: un generador y un discriminador, que compiten entre sí. El generador intenta crear datos que sean indistinguibles de los datos reales, mientras que el discriminador intenta diferenciar entre los datos reales y los generados. Esta arquitectura ha demostrado ser muy efectiva para la generación de datos sintéticos, como imágenes y voces. o Redes Neuronales Siamesas: Las redes neuronales siamesas se utilizan principalmente para tareas de comparación, como la verificación de firmas y el reconocimiento facial. Consisten en dos o más subredes idénticas que comparten los mismos pesos y parámetros. Al comparar dos entradas diferentes, la red siamesa produce representaciones que luego se evalúan utilizando una función de distancia. Esto permite determinar si las entradas son similares o diferentes. o Redes Neuronales de memoria Diferenciable: Las redes neuronales de memoria diferenciable combinan la capacidad de las redes neuronales con una memoria de acceso aleatorio que puede ser leída y escrita por la red. Esto permite a la red almacenar y recuperar información de manera más efectiva, imitando la capacidad de memoria de un ordenador. Las DNC son útiles para tareas que requieren el manejo de grandes cantidades de datos y la manipulación de estructuras complejas. o Variantes de Redes Neuronales Recurrentes: Existen varias variantes de redes neuronales recurrentes diseñadas para superar las limitaciones de las RNN tradicionales. Entre ellas, destacan las LSTM (Long Short-Term Memory) y las GRU (Gated Recurrent Unit). Las LSTM introducen puertas para controlar el flujo de información, permitiendo la captura de dependencias a largo plazo y mitigando problemas de gradientes. Las GRU son una versión simplificada y más eficiente en términos de computación que también aborda estos problemas. 2.2.5 Aplicaciones Las redes neuronales han revolucionado una amplia gama de sectores, permitiendo avances significativos a través del aprendizaje automático y la inteligencia artificial. Algunos de los más destacados son los siguientes: • Sector Financiero: El sector financiero ha adoptado ampliamente las redes neuronales para mejorar la precisión de sus modelos de predicción, gestionar riesgos y ofrecer servicios personalizados a sus clientes. o Predicción del Mercado: Las redes neuronales se utilizan para analizar series temporales y predecir precios de acciones, tipos de cambio y otros indicadores financieros. o Detección de Fraude: Esta tecnología se emplea para identificar patrones inusuales en las transacciones financieras que podrían indicar actividades fraudulentas. o Análisis de Crédito: Los modelos de redes neuronales ayudan a evaluar el riesgo de crédito de los solicitantes, considerando una gran cantidad de variables y mejorando la precisión en la toma de decisiones. o Asesoramiento Financiero Personalizado: Los asistentes virtuales y chatbots basados en redes neuronales proporcionan asesoramiento financiero personalizado adaptado a las necesidades individuales de los clientes. 17 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales • Sector Sanitario: En el sector sanitario, las redes neuronales han transformado la forma en que se diagnostican y tratan las enfermedades, mejorando la precisión y eficiencia de los procedimientos médicos. o Diagnóstico por Imagen: Las redes neuronales convolucionales (CNN) se utilizan para analizar imágenes médicas como radiografías, resonancias magnéticas y tomografías computarizadas, ayudando a detectar enfermedades como el cáncer, la neumonía y las lesiones cerebrales con gran precisión. o Predicción de Enfermedades: Las redes neuronales recurrentes (RNN) y las LSTM se emplean para predecir la evolución de enfermedades crónicas basándose en historiales médicos y datos de pacientes, permitiendo intervenciones tempranas. o Asistentes Virtuales de Salud: Los modelos de procesamiento del lenguaje natural (NLP) basados en redes neuronales, como los Transformers, ayudan en la creación de asistentes virtuales que proporcionan consultas médicas iniciales y asesoramiento a los pacientes. o Desarrollo de Medicamentos: Las redes neuronales generativas adversarias (GAN) se utilizan para simular y optimizar nuevas moléculas, acelerando el proceso de descubrimiento de fármacos y reduciendo los costos de investigación. • Sector Deportivo: En el sector deportivo, las redes neuronales están cambiando la manera en que se analiza el rendimiento y se planifican las estrategias, tanto a nivel individual como de equipo. o Análisis del Rendimiento: Las redes neuronales se emplean para analizar datos de rendimiento de los atletas, incluyendo patrones de movimiento, frecuencia cardíaca y datos de GPS, proporcionando información detallada para mejorar su entrenamiento y prevenir los riesgos de lesiones. o Estrategias de Juego: Las redes neuronales se utilizan para analizar videos de partidos y extraer patrones tácticos, ayudando a los entrenadores a diseñar estrategias más efectivas. o Predicción de Resultados: Modelos de aprendizaje automático, incluidas redes neuronales, se utilizan para predecir resultados de partidos y competiciones basándose en una amplia gama de datos históricos y en tiempo real. o Personalización de Entrenamiento: Las redes neuronales permiten la creación de programas de entrenamiento personalizados adaptados a las necesidades y capacidades específicas de cada atleta, optimizando su rendimiento. • Sector Tecnológico: El sector tecnológico ha sido uno de los principales impulsores y beneficiarios del desarrollo de redes neuronales, aplicándolas en una amplia gama de áreas para mejorar productos y servicios. o Reconocimiento de Voz: Los sistemas de reconocimiento de voz, como asistentes virtuales (Siri, Alexa, Google Assistant), utilizan redes neuronales profundas para comprender y responder a comandos de voz con alta precisión. o Visión por Computadora: Las redes neuronales convolucionales son fundamentales en aplicaciones de visión por computadora, como el reconocimiento facial, la detección de objetos y la conducción autónoma. o Procesamiento del Lenguaje Natural (NLP): Los modelos basados en Transformers han revolucionado el NLP, permitiendo traducción automática, resumen de textos, generación de lenguaje natural y análisis de sentimientos con una precisión sin precedentes. o Sistemas de Recomendación: Plataformas como Netflix, Amazon y YouTube utilizan redes neuronales para analizar patrones de comportamiento de los usuarios y ofrecer recomendaciones personalizadas de contenido, productos y servicios. o Automatización y Robótica: Las redes neuronales se utilizan en la automatización industrial y la robótica para mejorar la precisión y eficiencia de los procesos, desde la fabricación hasta la Estado del arte 18 logística y el mantenimiento predictivo. • Sector Culinario: En el sector culinario, las redes neuronales están innovando desde la creación de recetas hasta la optimización de operaciones en la cocina. o Creación de Recetas: Las redes neuronales generativas se utilizan para crear nuevas recetas basándose en combinaciones de ingredientes y técnicas de cocina, explorando sabores y texturas. o Optimización de Operaciones: Las redes neuronales ayudan a optimizar las operaciones en cocinas comerciales, desde la gestión de inventarios hasta la predicción de la demanda de platos, mejorando la eficiencia y reduciendo desperdicios. o Análisis Sensorial: Las redes neuronales analizan datos sensoriales para evaluar la calidad de los alimentos, desde la frescura de los ingredientes hasta la perfección de la cocción, asegurando estándares altos en la producción culinaria. 2.3. Redes según el algoritmo de entrenamiento En esta sección, se destacará el tipo de algoritmo que cada red puede emplear para aprender. Esencialmente, existen tres categorías: algoritmos de aprendizaje supervisado, algoritmos de aprendizaje no supervisado y algoritmos de aprendizaje por refuerzo. Estas categorías ya fueron mencionadas previamente en el contexto de Machine Learning. A continuación, se ofrecerá una explicación detallada de cada una de ellas. 2.3.1 Redes de aprendizaje supervisado Las redes neuronales profundas que utilizan el aprendizaje supervisado, como el perceptrón multicapa, se entrenan mediante algoritmos que implementan la propagación hacia adelante (feedforward propagation) y la retropropagación (backward propagation) en sus neuronas. El aprendizaje supervisado es un enfoque en el que una red neuronal se entrena utilizando un conjunto de datos etiquetados, donde cada entrada está asociada con una salida deseada. Durante el entrenamiento, la red ajusta sus parámetros internos (pesos y biases) para minimizar la diferencia entre sus predicciones y las salidas reales. 2.3.1.1 Propagación hacia adelante (feedforward propagation) En este proceso los datos se propagan a través de la red únicamente hacia adelante, sin que las neuronas dentro de una misma capa compartan información ni se formen ciclos entre las diferentes capas. Este tipo de redes suelen ser también "fully connected" o completamente conectadas, lo que significa que todas las neuronas de una capa están conectadas con todas las neuronas de la capa anterior. Para calcular el número de pesos entre dos capas, simplemente se multiplica el número de neuronas de la capa m por el número de neuronas de la capa m+1. Este proceso involucra varias operaciones matemáticas clave. A continuación, se describe en detalle la matemática detrás del feedforward propagation: • Supongamos que se tiene una red con una capa de entrada, una capa oculta y una capa de salida. Se denota el vector x, como el vector de características de entrada a la neurona: 𝑥= [𝑥1,𝑥2,…,𝑥𝑛] 19 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Cada neurona en la capa oculta recibe entradas ponderadas de todas las neuronas de la capa anterior (capa de entrada). Los pesos que conectan la entrada i con la neurona j de la capa oculta se denotan como 𝑤𝑖𝑗 • Para la neurona j en la capa oculta, la entrada ponderada es la suma de los productos de las entradas y sus pesos correspondientes más el término bias en cada neurona 𝑏𝑗: 𝑧𝑗=∑𝑥𝑖𝑤𝑖𝑗+𝑏𝑗 𝑛𝑖=1 • La salida de la neurona j se obtiene multiplicando una función de activación f a la suma ponderada 𝑧𝑗: 𝑎𝑗=𝑓(𝑧𝑗) Algunas funciones de activaciones comunes incluyen la sigmoide, relu, linear o tanh, las cuales se harán mayor hincapié en los próximos subcapítulos. • Las salidas a la capa oculta se propagan a la capa de salida de la misma manera. Suponiendo que la capa de salida tiene m neuronas, la neurona k en la capa de salida, la entrada ponderada se calcula como: 𝑧𝑘′=∑𝑎𝑗𝑤𝑗𝑘 ′ ℎ 𝑗=1 +𝑏𝑘′ Donde h es el número de neuronas en la capa oculta, 𝑤𝑗𝑘 ′ son los pesos entre la capa oculta y la capa de salida, y 𝑏𝑘′ es el término bias para la neurona k en la capa de salida. • La salida final de la neurona k en la capa de salida se obtiene aplicando la función de activación 𝑓′: 𝑦𝑘=𝑓′(𝑧𝑘′) • La salida y es el resultado final de la red para la entrada x. Dependiendo de la tarea, esta salida podría representar probabilidades de clases en un problema de clasificación o valores continuos en un problema de regresión. Esta misma explicación matemática del funcionamiento de propagación hacia adelante se puede extrapolar a redes con un mayor número de capas ocultas, utilizando la notación matricial. Figura 12. Feedforward Propagation Estado del arte 26 • Reducción de dimensionalidad Un apunte importante de este tipo de entrenamiento consiste también en evitar el sobreajuste. Aunque lo normal es trabajar con una gran cantidad de datos para obtener una buena generalización del problema, identificar datos precisos y variados, de una manera más reducida, también puede incidir en el rendimiento de la red. Esta reducción de la dimensionalidad se lleva a cabo cuando el número de características del vector de entrada es demasiado grande para ser gestionable. Normalmente este tipo de redes se utilizan en una fase de preprocesamiento de los datos para conformar una mayor garantía de ellos. 2.3.3 Redes de aprendizaje por refuerzo El aprendizaje por refuerzo (Reinforcement Learning, RL) es un área del aprendizaje automático enfocada en cómo los agentes deben tomar decisiones en un entorno para maximizar alguna noción de recompensa acumulada. En lugar de ser entrenado con ejemplos etiquetados como en el aprendizaje supervisado, un agente de RL aprende a través de la interacción con el entorno, utilizando prueba y error para descubrir qué acciones producen la mayor recompensa a largo plazo. Los componentes clave del aprendizaje por refuerzo lo conforman: • Agente: La entidad que toma decisiones para interactuar con el entorno del problema. • Entorno: Todo el mundo que rodea al agente e interactúa • Estado (s): Una representación del entorno en un momento dado. Este estado puede influir en las decisiones tomadas por el agente. • Acciones: Son los movimientos o decisiones que toma el agente para llevar a cambio un cambio de estado. • Premio: Es la retroalimentación positiva recibida después de realizar una acción. • Penalización: Es la retroalimentación negativa recibida después de realizar una acción. • Política: Una estrategia que define la acción que tomará el agente dado un estado. La política puede ser determinista (una acción específica para cada estado) o estocástica (una distribución de probabilidades sobre las acciones para cada estado). • Función de Valor: Una función que estima cuán bueno es un estado (o estado-acción) en términos de la recompensa futura esperada. Hay dos tipos principales: o Valor del Estado (V(e)): Valor esperado de estar en un estado particular y seguir una política o Valor de Estado-Acción (Q(e,a)): Valor esperado de estar en un estado particular, realizar una acción específica, y luego seguir la política. Figura 16. Componentes del Aprendizaje por Refuerzo 27 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Los algoritmos comunes de aprendizaje por refuerzo más comunes son: Q-Learning y SARSA (State-Action- Reward-State-Action). • Q-Learning: Es un algoritmo fuera de política que busca aprender la función de valor de estado-acción Q(e, a). La actualización de la función Q se realiza utilizando la ecuación de Bellman: 𝑄(𝑒,𝑎)←𝑄(𝑒,𝑎)+𝛼(𝑟+𝛾𝑚𝑎𝑥𝑎′𝑄(𝑒′,𝑎′)−𝑄(𝑒,𝑎)) Donde 𝛼 es la tasa de aprendizaje, r es la recompensa inmediata, 𝛾 es el factor de descuento y 𝛾𝑚𝑎𝑥𝑎′𝑄(𝑒′,𝑎′) es el valor máximo de la acción en el próximo estado. • SARSA: Similar al Q-Learning, pero es un algoritmo en política (on-policy). Actualiza la función Q basándose en la acción que realmente se tomó en el siguiente estado. 𝑄(𝑒,𝑎)←𝑄(𝑒,𝑎)+𝛼(𝑟+𝛾𝑄(𝑒′,𝑎′)−𝑄(𝑒,𝑎)) En general, el aprendizaje por refuerzo es un enfoque poderoso para entrenar agentes que toman decisiones óptimas a través de la interacción con su entorno. Su capacidad para manejar problemas complejos y dinámicos lo hace fundamental en varias aplicaciones avanzadas como la robótica (en tareas complicadas como andar, caminar o volar), juegos, sistemas de recomendación o vehículos autónomos. 2.3.4 Sobreajuste y subajuste El concepto de sobreajuste (overfitting) y subajuste (underfitting) es una idea clave dentro del campo de entrenamiento en una red neuronal profunda. Por un lado, el problema del sobreajuste ocurre cuando el modelo no es capaz de generalizar de manera correcta un nuevo dato. Esto sucede si el modelo se entrena demasiado tiempo con los datos de entrada. Cuando el modelo memoriza todos los datos de entrada también incluye el ruido o a la información irrelevante, de modo que se vuelve sobreajustado al problema. Si un modelo no es capaz de generalizar bien los nuevos datos de entradas, las predicciones serán erróneas. Las bajas tasas de precisión y una alta varianza son buenas métricas para identificar el sobreajuste. Para evitar este tipo de comportamiento, durante el proceso de creación de la red neuronal, se reserva un conjunto de prueba para comprobar si existe sobreajuste en la red. Una forma de evitar este sobreajuste es utilizar lo que se conoce como paradas tempranas o detección temprana durante el entrenamiento. Este tipo de técnica evita que los parámetros del modelo se amolden a linealidades demasiado complejas que puedan traducirse a posteriori en predicciones anómalas. Sin embargo, si se hace una pausa o parada temprana con demasiada antelación puede ocurrir el suceso contrario, el subajuste. Este comportamiento sucede cuando el modelo no se ha entrenado durante el suficiente tiempo necesario, obteniéndose uno parámetros de la red que no se ajustan a la realidad del problema. Los parámetros se ajustan de una forma demasiado lineal al problema. En ambos escenarios no se puede establecer una coherencia en las predicciones del resultado fallando en la clasificación dentro de las clases previstas. El indicador principal de un problema de subajuste viene dado por un alto sesgo y una varianza pequeña, que se produce cuando el modelo subajustado pasa a un modelo sobreajustado. Un alto sesgo se traduce en un modelo que es demasiado simple y que no captura las tendencias subyacentes en los datos. Mientras que, la varianza hace alusión a la forma en el que las predicciones del modelo cambian cuando se entrena con diferentes subconjuntos de datos de entrenamiento. Un modelo con alta varianza se ajusta demasiado a los datos de entrenamiento y es muy sensible a las fluctuaciones o el ruido en esos datos. Esto lleva a un buen desempeño en los datos de entrenamiento, pero a un mal desempeño en datos nuevos. Estado del arte 28 Figura 17. Sobreajuste y subajuste Los métodos para evitar el subajuste consisten principalmente en introducir mayores no linealidades. Sin embargo, hay que tener precaución para no recaer en el problema del sobreajuste, siendo este conflicto más común. Además de la técnica de parada temprana, existen otras formas de manipular los datos para evitar este problema, como la técnica de regularización que se explicará más adelante. Por un lado, se encuentra la opción de aumentar los datos del vector de características. Esto incluye una mayor variedad de datos relevantes de entrenamiento, lo que permite al modelo discernir entre el ruido y la información esencial. Por ejemplo, en el caso de la clasificación de imágenes, esto se consigue con cambios de perspectiva, formas, tamaños, etc. Por otro lado, la elección de las características correctas también desempeña un papel fundamental para evitar este tipo de problemas. Se necesitan características fácilmente manipulables y, en muchas ocasiones, estas pueden ser redundantes. Incluir más datos puede aumentar la precisión del entrenamiento al brindar más oportunidades a los modelos para que encuentren la forma más sencilla de ajustarse a las clases. Sin embargo, también puede inducir a un sobreajuste de la red. Resumiendo, lograr un equilibrio adecuado entre el sobreajuste y el subajuste es fundamental para el éxito de una red neuronal profunda. Un modelo sobreajustado pierde capacidad de generalización debido a que se adapta en exceso a los datos de entrenamiento, mientras que un modelo subajustado no aprende lo suficiente de los datos para hacer predicciones precisas. Por ello, es crucial monitorear y ajustar continuamente el proceso de entrenamiento mediante técnicas como la validación cruzada y el uso de conjuntos de prueba, asegurando así que el modelo sea lo suficientemente robusto y generalizable para manejar datos nuevos y no vistos. 2.3.5 Técnicas de regularización El objetivo de las técnicas de regularización es minimizar y evitar el problema del sobreajuste durante la fase del entrenamiento. Los métodos más populares son los siguientes. 2.3.5.1 Normalización por Lotes La normalización por lotes en el entrenamiento de redes neuronales profundas es una técnica esencial para mejorar la eficiencia y la efectividad del entrenamiento. El método más conocido es el de Normalización de datos por Lotes (Batch Normalization). La normalización de datos implica ajustar los valores de los datos para que caigan en un rango común, típicamente de 0 a 1 o -1 a 1. Esto simplifica el entrenamiento y ayuda a tener una red neuronal más robusta por varios motivos. En el contexto más común, este proceso se incluye inicialmente en la capa de entrada. Por un lado, esta técnica crea un escalamiento uniforme, se asegura que las características tienen un peso similar durante el entrenamiento. Además, se produce una mayor eficiencia del entrenamiento debido a la estabilidad general de los valores. Y, ayuda a reducir el riesgo de desbordamientos y subdesbordamientos numéricos. Para abordar este problema, y alcanzar estas soluciones propuestas, se introduce una normalización que se realiza en cada minilote de datos (batch) durante el entrenamiento de toda la red. 29 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Para cada mini-lote, se calculan la media y la varianza de los datos. Los datos son normalizados usando estas estadísticas, ajustándolos para tener una media cercana a 0 y una varianza cercana a 1. 𝑥= 𝑥−𝜇 √𝜎2+𝜖 Donde x es el valor de entrada, 𝜇 es la media del mini-lote, 𝜎2es la varianza del mini-lote y 𝜖 es un pequeño valor para evitar divisiones por cero. Una vez calculada la normalización, cada neurona aplica parámetros que se modifican a través de las iteraciones de aprendizaje donde se calcula el parámetro de escala (𝛾) y de desplazamiento (𝛽). Estos parámetros permiten que la red aprenda la distribución óptima para cada característica de entrada. 𝑦= 𝛾𝑥+ 𝛽 Esta potente técnica no solamente se encarga de normalizar los datos de la capa de entrada, sino las de todas las capas de la red neuronal. Esto es debido al ajuste de las activaciones de cada mini-lote antes de que se apliquen las funciones de activación, manteniendo así una distribución estable a lo largo de todas las capas de la red. Figura 18. Batch Normalization 2.3.5.2 Regularización L1 La regulación L1, también conocida como regularización Lasso, agrega un termino de penalización basado en la suma de los valores absolutos de los coeficientes del modelo a la función de costo. La fórmula de regularización L1 es la siguiente: 𝐶𝑜𝑠𝑡𝑜𝐿1=𝐶𝑜𝑠𝑡𝑜 𝑂𝑟𝑖𝑔𝑖𝑛𝑎𝑙+ 𝜆∑|𝑤𝑖| 𝑛 𝑖=1 Siendo 𝜆 el hiperparámetro que controla la cantidad de regularización y 𝑤𝑖 los pesos del modelo. La regularización L1 tiende a empujar los coeficientes hacia cero. Para algunos coeficientes, esto puede alcanzar un valor casi nulo. Sin embargo, la elección del valor de 𝜆 es crucial. Un 𝜆 demasiado grande puede llevar a un modelo demasiado simplificado, mientras que un 𝜆 demasiado pequeño puede no reducir suficientemente el sobreajuste. Al eliminar los coeficientes no esenciales, la regularización L1 puede ayudar a mejorar la generalización del modelo. Este método viene dado por la regresión Lasso, donde no solo se encarga de minimizar el error de la predicción, sino que también puede reducir el número de variables utilizadas en el modelo, seleccionando únicamente las más importantes. 2.3.5.3 Regularización L2 La regularización L2, también conocida como regresión Ridge, es otra técnica utilizada en el entrenamiento de redes neuronales para evitar el problema del sobreajuste. Es parecida a la regularización L1, pero en este caso, se agrega un término de penalización que es proporcional a la suma de los cuadrados de los coeficientes del modelo. La fórmula es la siguiente: Estado del arte 30 𝐶𝑜𝑠𝑡𝑜𝐿2=𝐶𝑜𝑠𝑡𝑜 𝑂𝑟𝑖𝑔𝑖𝑛𝑎𝑙+ 𝜆∑𝑤𝑖2 𝑛 𝑖=1 Siendo 𝜆 el hiperparámetro que controla la cantidad de regularización y 𝑤𝑖 los pesos del modelo. A diferencia de la regularización L1, que usa valores absolutos, la regularización L2 penaliza los coeficientes elevándolos al cuadrado, traduciéndose en que los coeficientes más grandes reciben una penalización más fuerte. La regularización L2, tiende a reducir todos los coeficientes, pero raramente los lleva a cero. Ayuda a la estabilidad numérica del modelo haciendo que el proceso sea más robusto, pero al no eliminar los coeficientes irrelevantes puede derivar en penalizaciones más grandes para futuras predicciones debido al ruido. Esta técnica en general se basa en la regresión Ridge en el que el término de penalización basado en la suma de los cuadrados de los coeficientes se agrega a la función de costo de la regresión lineal. 2.3.5.4 Dropout La regularización (dropout), es una técnica diferente que se utiliza para también evitar el sobreajuste (overfitting). Este método consiste en desactivar un número de neuronas durante el proceso de entrenamiento de una forma aleatoria durante el proceso iterativo. Las neuronas desactivadas no se toman en cuenta para la propagación hacia adelante (forward propagation) ni hacia atrás (backward propagation), lo que obliga a las neuronas a no depender tanto de las neuronas desactivadas. Esta técnica posee un parámetro que indica la probabilidad de que las neuronas se queden activadas durante una iteración, este parámetro toma valores entre 0 y 1. Un valor de 0.5 indica que la mitad de las neuronas quedaran desactivadas durante cada iteración del entrenamiento. Este tipo de técnica es exclusiva de la etapa de entrenamiento, en la fase de prueba no se desactivan las neuronas. Lo que se consigue con esta técnica es que las neuronas no memoricen parte de la entrada, facilitando la generalización del modelo. Figura 19. Dropout 2.3.5.5 Aumento de los datos Otra popular técnica para evitar el problema del sobreajuste es el de aplicar transformaciones sobre la entrada original, obteniéndose un vector de características más generalizado. Esta técnica es especialmente útil en tareas de procesamiento y clasificación de imágenes como las que propone este proyecto. Algunas de las técnicas más comunes dentro del aumento de datos: • Transformaciones geométricas: Rotaciones, traslaciones, escalado, recortes, etc. • Transformaciones de color: Ajuste de brillo, saturación, contraste, etc. • Adiciones de ruido: Añadir ruido gaussiano, sal y pimienta, etc. 31 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales 2.4. Funciones de activación Este subcapítulo tratará de abordar el concepto de función de activación en las redes neuronales profundas. La función de activación (a) trata de resolver el problema de linealidad clásico introducido por el perceptrón simple añadiendo nuevas no linealidades a la red, moldeándola a través de relaciones más complejas con los datos. La función de activación entra en juego en cada neurona una vez que se realizar la función de agregación (z), de manera que controla la salida de dicha neurona ajustándose a unos valores no lineales que permiten extrapolar el modelo en su conjunto a una mejor solución. Esta tarea resulta de vital importancia para que la salida de la red se encuentre dentro de un rango deseado dentro de un problema de clasificación, donde las salidas esperadas se representan mediante probabilidades. Figura 20. Desarrollo Función de Activación 2.4.1 Escalón La función escalón es una de las más simples y antiguas que existen. Este tipo de función de activación se encarga de convertir la entrada en una salida binaria {1,0}, dependiendo de si la entrada es mayor o menor que cierto umbral o threshold. Esta función de activación no es apta para el ajuste de los pesos mediante la técnica de la propagación hacia atrás (backward propagation). Figura 21. Función de activación Escalón Estado del arte 32 2.4.2 Sigmoidal o Logística Esta función de activación es derivable y tiene la salida en un rango entre 0 y 1. Este tipo de función de activación si permite la actualización de los pesos a través del método de la propagación hacia atrás (backward propagation). Normalmente, la salida varía mucho para valores cercanos a 0 y oscila poco para valores lejanos. Al hacer la retropropagación del error los gradientes son muy pequeños, por lo que la red aprende muy despacio y las primeras capas casi no sufren reajustes en los pesos. No es una red que se encuentre centrada en el cero, por lo que limita la velocidad de aprendizaje de la red. Requiere un alto coste computacional, por lo que normalmente este tipo de funciones de activación se encuentran en la ultima capa de la red, especialmente a problemas dedicados a clasificación binaria o modelos de redes neuronales recurrentes. Figura 22. Función de activación Sigmoidal o Logística 2.4.3 Tangente Hiperbólica La función de activación Tanh es similar a la sigmoidal, pero transforma los valores de entrada a un rango entre -1 y 1. Está centrada en el cero, su derivada es mayor a la de la función de activación sigmoidal, por lo esos reajustes suponen un aprendizaje más rápido para los pesos de la red. Requiere un mayor coste computacional. Figura 23. Función de activación Hiperbólica 33 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales 2.4.4 Softsign La función de activación softsign es otra alternativa a la función sigmoidal y tanh, suaviza las salidas de forma similar, posee una mayor derivada, aunque más compleja. Las salidas también se limitan entre -1 y 1. Figura 24. Función de activación Softsign 2.4.5 ReLU La función ReLU (Rectified Linear Unit) se demuestra en 2012 que es la mejor función de activación de las tradicionales, es hasta 6 veces más rápida que la tangente hiperbólica en la propagación hacia adelante y hacia atrás. Hoy en día es la más usada. Su funcionamiento se basa en convertir las entradas negativas a cero y dejar las positivas sin cambios. Su derivada es muy simple, cero para números negativos (problema de las neuronas muertas) y uno para números positivos. No tiene derivada en cero, pero se sustituye por uno o cero, en cualquier caso. Además, no se encuentra acotada para los números positivos. Figura 25. Función de activación ReLU Estado del arte 34 2.4.6 LEAKY ReLU La función LEAKY ReLU es una variación de la ReLU que permite un pequeño gradiente cuando la entrada es negativa, mitigando el problema de las neuronas muertas. Evita que las neuronas se queden permanentemente inactivas. Acepta entradas negativas con un pequeño valor de pendiente. Figura 26. Función de activación LEAKY ReLU ´ 2.4.7 PreLU La función parametric ReLU introduce un parámetro ajustable para las entradas negativas, proporcionando más flexibilidad y capacidad de ajuste en el entrenamiento. Figura 27. Función de activación PReLU 35 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales 2.4.8 GELU: Gaussian Error Linear Units La función GELU aplica un enfoque probabilístico a la activación, donde las unidades son activadas con una probabilidad basada en la entrada. Proporciona una activación suave y diferenciable. Figura 28. Función de activación GELU 2.4.9 Softplus La función Softplus es una versión suavizada de la ReLU, proporcionando una activación suave y continua. Su derivada es la función sigmoide y computacionalmente es más costosa que la ReLU. Figura 29. Función de activación Softplus Creación de la base de datos 42 3.2 Descripción de la arquitectura A continuación, se explorará detalladamente la arquitectura de las redes neuronales convolucionales (CNN), compuestas por tres tipos principales de capas: la capa convolucional, la capa de agrupación (pooling) y la capa completamente conectada (fully connected). Cada una de estas capas desempeña un papel crucial en el funcionamiento y la eficacia de las CNN, permitiendo el procesamiento y la clasificación precisa de imágenes. Principalmente, la arquitectura de una CNN funciona como un embudo, comenzando con un vector de características que representa la imagen completa, y reduciendo gradualmente su resolución para identificar patrones cada vez más complejos. En las primeras etapas, se detectan características básicas como texturas, colores y gradientes. A medida que la información fluye a través de la CNN, los filtros especializados pueden discernir características más específicas y complejas. Figura 34. Ejemplo de detección de características por etapas Este enfoque jerárquico de procesamiento permite a las CNN capturar tanto características locales como globales de las imágenes, optimizando así la capacidad del modelo para realizar tareas sofisticadas de reconocimiento y clasificación visual. 3.2.1 Etapa convolucional Las capas convolucionales son las que conforman este tipo de redes y es en las que se desarrollan la gran cantidad de datos numéricos. Este tipo de redes toma una imagen como entrada y le aplica un filtro o kernel, como el que se ha visto anteriormente, para resaltar sus características más importantes, generando como salida una matriz numérica de menor tamaño. Originalmente una imagen es una matriz de números que indica la intensidad del color, oscilando con valores entre 0 y 255. Si la imagen es en escala de grises, se representa con una única matriz; si es en color RGB, se representan con tres matrices, una para cada color (rojo, verde y azul). Para ser procesadas por la red, las imágenes se transforman en tensores. Si la imagen es en color, el tensor tendrá tres dimensiones: ancho, alto y profundidad (esta última con un valor de 3). En el caso de una imagen en escala de grises, la profundidad sería 1. Los filtros aplicados en las capas convolucionales deben coincidir con el número de canales de la imagen. En imágenes a color, se aplican a las tres matrices, por lo que el filtro también tiene una profundidad de 3, habrá 3 kernels. El resultado es una matriz más pequeña que la original, la cual reconoce algunas características de la imagen, una línea, un punto, un borde, etc. Estas matrices resultantes se llaman mapas de características. Cada capa convolucional identifica características de la imagen en diferentes niveles. 43 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales En esencia, la capa convolucional es el bloque de una CNN en el que se aplica el concepto de convolución a través del proceso antes descrito, utilizando un filtro que recorra la imagen, calculando productos escalares entre los píxeles de entrada y el filtro, y generando a la vez un mapa de características. Tras cada convolución, se aplica una función de activación, las más usada es la ReLU, introduciendo no linealidad en el modelo y permitiendo una representación jerárquica de las características de la imagen. Figura 35. Ejemplo de imagen RGB y 4 kernels 3.2.2 Etapa de Agrupación (Pooling) Las CNNs utilizan capas de agrupación, también conocidas como submuestreo o pooling. Estas capas reducen las dimensiones de la entrada y el número de parámetros, lo que disminuye la complejidad del modelo y el tiempo de entrenamiento, a la vez que ayuda a prevenir el sobreajuste. La diferencia radical con las capas convolucionales está en que las capas de agrupación no tienen pesos entrenables, es decir, no se les aplica ningún proceso de optimización. La operación que se realiza en este bloque es similar a la de la capa de convolución, pero en lugar de calcular productos escalares, el filtro aplica una función de agrupación a los valores dentro del campo receptivo y llena así la matriz de salida. Existen dos métodos principales de agrupación: • Agrupación máxima (Max-pooling): El filtro selecciona el valor máximo dentro del campo receptivo y lo envía a la matriz de salida. Este enfoque es el más utilizado. • Agrupación media (Average pooling): El filtro calcula el valor promedio dentro del campo receptivo y lo envía a la matriz de salida. Aunque las capas de agrupación pueden parecer menos cruciales ya que no aprenden características de la misma manera que las capas convolucionales, su función es crucial a la hora de condensar las características reconocidas y reducir las dimensiones de la matriz de salida generada en la capa de convolución. Esto permite que las siguientes capas convolucionales trabajen con una representación más compacta y relevante de la imagen, mejorando la eficiencia del modelo. Por lo que, en la práctica, una capa de convolución siempre suele estar acompañada de un capa de agrupación que le permita condensar esos resultados obtenidos y reducir las dimensiones de la matriz original, de manera que se aumente el tiempo procesamiento y se rebaje el costo computacional de cálculo irrelevante. Este tándem permite a las CNNs aprender y reconocer patrones complejos dentro de las imágenes de manera eficiente y efectiva. Figura 36. Ejemplo de Pooling Creación de la base de datos 44 3.2.2 Etapa Densamente Conectada (Fully Connected) El bloque de la etapa densamente conectada juega un papel importante en la clasificación final de las características extraídas de las capas anteriores. Este bloque posee una capa de entrada, una o varias intermedias y una de salida. Además, cada neurona de la capa está conectada con todas las neuronas de la capa anterior y con todas las neuronas de la capa siguiente. No hay conexiones con las neuronas anteriores. El número de neuronas en las capas iniciales e intermedias puede variar. Una mayor cantidad de neuronas puede mejorar la capacidad de clasificación tal y como se ha visto en el capítulo anterior, pero también puede aumentar significativamente el tiempo de entrenamiento y el riesgo de sobreajuste (overfitting). Es crucial llegar a un equilibrio entre los datos procesados por las capas anteriores y el resultado final que se pretende obtener. Para convertir las salidas de las neuronas en probabilidades, se usa la función Softmax en la capa de salida. Como se ha visto, Softmax toma un vector de valores y los normaliza en un rango de 0 a 1, de manera que la suma de todas las probabilidades sea igual a 1. Facilitando una interpretación de las salidas de la red y proporcionando una distribución de probabilidad sobre las posibles clases. 3.3 Neocognitrón El neocognitrón es un tipo de red neuronal convolucional (CNN) pionera en su momento que sirve de ejemplo para ilustrar a la perfección un algoritmo de estas características. Fue diseñado para el reconocimiento de patrones visuales y se considera uno de los precursores de las CNN modernas. Fue propuesto por Kunihiko Fukushima en 1980, destacó por su capacidad de reconocer caracteres escritos a mano y otros patrones visuales, incluso incluyendo distorsiones en la imagen o elementos desplazados o con ruido. El neocognitrón se inspira en la arquitectura del sistema visual humano y consta de múltiples capas dispuestas jerárquicamente. La estructura básica incluye dos tipos principales de capas: • Capas S (S-cells): Estas capas realizan una operación de convolución similar a las capas convolucionales antes mencionadas. Además, cada célula S responde a un conjunto particular de características en su campo receptivo. • Capas C (C-cells): Estas capas llevan a cabo una operación de agrupación (pooling), similar a las capas de pooling actuales. La agrupación reduce la resolución espacial, lo que permite que la red sea más robusta a las variaciones y desplazamientos en las características de entrada. Originalmente, el neocognitrón se utilizó para tareas de reconocimiento de caracteres, como la lectura de texto manuscrito. Sin embargo, sus principios han sido fundamentales para el desarrollo de las modernas redes neuronales convolucionales. Este algoritmo precursor del desarrollo de las siguientes arquitecturas de redes neuronales convolucionales que se verán a continuación, posee la siguiente forma: Figura 37. Estructura del Neocognitrón 45 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales 3.4 Arquitecturas Propuestas Uno de los pilares fundamentales de este proyecto es realizar un análisis exhaustivo y objetivo de diversas arquitecturas de redes neuronales convolucionales (CNN) para la clasificación de señales de tráfico. El objetivo es identificar la opción más adecuada considerando múltiples parámetros, como el rendimiento, el tiempo de procesamiento y el coste computacional, entre otros. Para lograr esto, se examinarán y compararán los resultados obtenidos mediante diversas métricas, las cuales se detallaron en el capítulo anterior de este proyecto. El análisis incluirá una gama de algoritmos, comenzando por las opciones más sencillas, como una red neuronal convolucional simple, y avanzando hacia redes neuronales convolucionales multicapa. Además, se evaluarán soluciones más complejas y avanzadas, como las arquitecturas ResNet-50 y VGG19. A lo largo del proyecto, se desglosarán los resultados y se discutirán en detalle, proporcionando una visión clara y comprensible sobre cuál de estas arquitecturas ofrece el mejor equilibrio entre rendimiento y eficiencia computacional para la tarea específica de clasificar señales de tráfico. Este análisis permitirá no solo una mejor comprensión de las capacidades de cada arquitectura, sino también ofrecerá recomendaciones basadas en datos para futuras implementaciones en sistemas de reconocimiento de señales de tráfico reales. 3.4.1 CNN Simple Esta primera arquitectura consta únicamente de los elementos más básicos antes descritos sobre una CNN. Esta arquitectura supone una primera aproximación al concepto desarrollado de redes neuronales convolucionales, permite verificar los conceptos teóricos de manera práctica, aunque se aspire a obtener rendimientos más altos. Dentro de esta arquitectura se ha incorporado: Una capa de entrada para alimentar a la red de los pixeles de la imagen en cuestión, una capa convolucional donde se extraen las características espaciales de la imagen, una capa de agrupamiento Max-Pooling, y una capa densamente conectada con una función de activación Softmax para que se obtengan las distintas gamas de probabilidades de que pertenezca a algunas de las clases de señales de tráfico. Además, también posee una capa intermedia de aplanamiento para convertir la salida de la imagen 3D a 1D. Todas las neuronas excepto la de las ultimas capas poseen una función de activación ReLU para introducir no linealidades y fomentar la plasticidad de la red. Esta arquitectura es un punto de partida ideal para entender cómo funcionan las CNNs y será mejorada y expandida para abordar esta tarea con mayor complejidad. Figura 38. Arquitectura CNN simple Creación de la base de datos 46 3.4.2 CNN Multicapa La CNN Multicapa es una arquitectura más avanzada de redes neuronales convolucionales que utiliza varias capas de convolución y agrupamiento simultáneamente, culminando en una capa densamente conectada final. Este diseño permite que la red extraiga características cada vez más abstractas y complejas de los datos de entrada, mejorando significativamente su capacidad de reconocimiento y clasificación. Al incorporar múltiples capas de convolución, la CNN Multicapa optimiza la capacidad para capturar características detalladas dentro de las imágenes. Cada capa convolucional aplica filtros especializados (kernels) que se concentran en identificar patrones específicos y cada vez más sofisticados en las imágenes. Las primeras capas son capaces de detectar características simples como bordes y texturas, mientras que las capas subsiguientes pueden identificar patrones complejos y objetos completos. Una de las ventajas clave de esta arquitectura es la introducción de una representación jerárquica de las características de la imagen. A medida que los datos fluyen a través de las capas, se van extrayendo características desde niveles más básicos hasta niveles más abstractos y descriptivos. Esta jerarquía permite una mejor generalización del modelo, lo que se traduce en una mayor precisión en la clasificación de nuevas muestras de datos. Además, las capas de agrupamiento (pooling) intercaladas con las capas convolucionales desempeñan un papel crucial al reducir progresivamente la dimensionalidad de los mapas de características. Esto ayuda a conservar la información más relevante mientras se disminuye la carga computacional para las capas densamente conectadas finales, mejorando así la eficiencia y el rendimiento general del modelo. La estructura típica de una CNN Multicapa puede incluir varias capas convolucionales seguidas de capas de agrupamiento, con la dimensionalidad de las características reduciéndose a medida que se profundiza en la red. Finalmente, una capa densamente conectada utiliza la función de activación ReLU para todas las neuronas, excepto la última capa que utiliza Softmax para la clasificación multiclase. En resumen, esta nueva arquitectura de CNN no solo busca mejorar las capacidades del modelo simple, sino también proporcionar una mayor capacidad de aprendizaje y representación de características complejas de los datos de entrada. Esto conlleva a una mejora significativa en la precisión del modelo, su capacidad de generalización y su eficacia en la manipulación de los datos de esta tarea de clasificación de señales de tráfico. Figura 39. Arquitectura CNN Multicapa 3.4.3 Resnet-50 La primera CNN compleja que mejora las arquitecturas antes vistas pertenece a la familia de las ResNet (Residual Network) que fue introducida por primera vez en el artículo "Deep Residual Learning for Image Recognition" por Kaiming He, et al., en 2015. En concreto, ResNet-50 es una variante específica de esta familia de redes, será una de las arquitecturas que se empleen para el análisis, consta de 50 capas de profundidad, diseñada para abordar las diferentes problemáticas que se originaban en las redes neuronales convencionales. Uno de los motivos principales por los que desconectar o saltar capas como propone esta arquitectura radica en el objetivo de evitar el desvanecimiento de los gradientes, como este parámetro se retropropaga a las capas anteriores se puede llegar a manejar datos extremadamente pequeños. El salto que se propone elimina las complicaciones de la red, haciéndola más simple, y usando menos capas durante la etapa del entrenamiento inicial. Evitar la problemática del desvanecimiento del gradiente acelera 10 veces más rápido el entrenamiento de los pesos. En lugar de intentar aprender funciones directamente, los bloques residuales introducen 47 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales conexiones llamadas "skip connections" o "shortcut connections" que saltan una o más capas. Con la introducción de bloques residuales en ResNet, se mejoró significativamente la eficiencia del entrenamiento de redes profundas. Las conexiones residuales permiten que los gradientes fluyan directamente a través de las capas sin degradarse significativamente, lo que facilita el entrenamiento de redes más profundas sin sufrir pérdida de rendimiento. Esto también conlleva una mejor utilización de los recursos computacionales, ya que se puede alcanzar una mayor precisión con menos capas, reduciendo así la complejidad computacional. Figura 40. Ejemplo del rendimiento entre un algoritmo ResNet y otro convencional Reducir el número de nodos o neuronas dentro del proceso de entrenamiento no resuelve únicamente el problema del desvanecimiento del gradiente, sino que también facilita el uso de menos parámetros durante dicho proceso, en problemas donde se manejan grandes cantidades de neuronas este factor resulta ser determinante para culminar un buen proceso de entrenamiento. Además, la arquitectura ResNet no solo se centra en los problemas técnicos de entrenar redes profundas, sino que también mejora la capacidad del modelo para aprender representaciones más robustas y generalizables de los datos. Las conexiones residuales permiten que la red aprenda tanto la representación original como la diferencia entre las capas, lo que facilita la captura de características más complejas y discriminativas en los datos. Al superar las limitaciones mencionadas anteriormente, este modelo logra una mejora significativa en la precisión de las predicciones y en la capacidad de generalización del modelo. Dentro de esta familia, la arquitectura escogida antes mencionada para el análisis y la clasificación de las señales de tráfico se trata de la de Resnet-50. Su arquitectura es la siguiente: Figura 41. Arquitectura ResNet-50 Es la arquitectura ResNet-50, los componentes clave son el bloque de identidad y el bloque convolucional. Ambos bloques están diseñados para facilitar el entrenamiento de redes profundas mediante la introducción de conexiones residuales, que permiten que la entrada inicial se agregue a la salida de las capas convolucionales. • Bloque convolucional: El bloque convolucional, incluye una serie de capas convolucionales, pero también introduce una convolución 1x1. Esta capa adicional se utiliza para ajustar la cantidad de filtros antes de aplicar la convolución 3x3. La función de esta capa es cambiar la dimensión de la entrada, permitiendo que las características aprendidas sean más manejables y efectivas. Creación de la base de datos 48 • Bloque Identidad: Es similar al bloque de convolución, pasa la entrada a través de una serie de capas convolucionales, agregando posteriormente la entrada original a la salida. Este proceso permite que la red aprenda funciones residuales que ajustan la entrada hacia la salida deseada, mejorando la capacidad de la red para capturar características sin perder información importante. • Bloque completamente conectado: La parte final de ResNet-50 consiste en capas completamente conectadas, que se encargan de la clasificación final. La salida de las capas convolucionales pasa a través de una capa average pool que se encarga de reducir la dimensionalidad de la entrada que recibe, de otra capa de aplanamiento (flatten) y una capa densamente conectada. La salida de esta última capa se introduce en una función de activación softmax, que produce las probabilidades de clase finales. Esta estructura permite que la red realice predicciones precisas al final del proceso de aprendizaje. • Bloque inicial: La primera capa de esta arquitectura, previamente a la parte de las convoluciones, es una capa de que se utiliza para añadir filas y columnas de ceros alrededor de la entrada denominada zero padding. Esto se hace con el fin de controlar el tamaño espacial de las características después de aplicar una convolución. En resumen, la ResNet-50, es una CNN que consta en su totalidad de 50 capas, diseñada con bloques de identidad y bloques convolucionales que trabajan juntos para aprender características residuales, lo que facilita el entrenamiento de redes profundas y mejora la precisión de las predicciones finales a través de capas completamente conectadas y la función de activación Softmax. 3.4.4 VGG19 La VGG19 es una red neuronal convolucional (CNN) desarrollada por el Visual Geometry Group de la Universidad de Oxford, y es conocida por su simplicidad y profundidad. Es una de las arquitecturas más populares para la tarea de clasificación de imágenes como la que se plantea en este proyecto. Esta estructura se compone de 19 capas de aprendizaje, incluyendo 16 capas convolucionales y 3 capas completamente conectadas, con capas de agrupamiento intercaladas. La arquitectura es notable por su uso de filtros de tamaño pequeño o kernels (3x3) en todas las capas convolucionales, lo que permite una mejor captura de características finas en las imágenes. La red está organizada en bloques, donde cada bloque contiene 2 o 4 capas convolucionales, donde cada capa cada vez tiene un mayor número de filtros o kernels, seguidas por una capa de Max-Pooling. Después de los bloques convolucionales, la red tiene una serie de capas completamente conectada dedicada a la clasificación. Este bloque está compuesto de dos capas conectadas de 4096 neuronas con una función de activación ReLU, y una capa de 1000 neuronas con función de activación softmax. En nuestro proyecto, como el número de clases que se utilizará es menor a 1000, únicamente se utilizaran las neuronas necesarias para indicar las probabilidades entre el número de las clases creadas. Figura 42. Arquitectura VGG19 49 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales El punto fuerte de esta arquitectura radica en la utilización de filtros pequeños (3x3), que permiten capturar detalles finos en las imágenes y aumentan la capacidad de discriminación de la red. Con 19 capas de profundidad, VGG19 es capaz de aprender características complejas y abstractas, mejorando su rendimiento en tareas de clasificación. La consistencia en el uso de los tamaños de los filtros y las capas de agrupamiento facilita la implementación y el análisis del modelo. Al igual que en las estructuras antes presentadas, las capas de Max-Pooling se utilizan para reducir la dimensionalidad y el número de parámetros, manteniendo las características más importantes de la imagen. Por lo que la arquitectura VGG19 es una de las CNN más efectivas y simples, con su uso de filtros pequeños y profundidad considerable para capturar características detalladas de las imágenes, a pesar de su simplicidad en el diseño. Creación de la base de datos 50 4 CREACIÓN DE LA BASE DE DATOS n este capítulo, vamos a desgranar uno de los pilares fundamentales en los que se sustenta la ejecución de este trabajo. La creación de una base de datos consistente y generalizada es el primer paso crucial en cualquier proyecto de estas características. Es de vital importancia contar con un conjunto de datos robusto y bien estructurado para poder realizar un entrenamiento adecuado y obtener resultados coherentes y generalizados. Por lo tanto, este capítulo se enfocará en la recopilación y preparación de los datos, y, además, añadirá una explicación detallada de cómo se han seleccionado y por qué se consideran adecuados para resolver el problema planteado. Se complementará con el análisis del proceso de recopilación de datos y las diferentes técnicas de preprocesamiento y preparación necesarias para llevar a cabo el mejor entrenamiento posible de las diferentes redes neuronales convolucionales (CNNs). También se explorará el uso de herramientas externas diseñadas para facilitar este objetivo. 4.1 Introducción Al comienzo de este proyecto, la elección de una base de datos que permitiera realizar las detecciones de diferentes señales de tráfico en España no resultó ser una tarea trivial. Una de las opciones más comunes utilizadas en proyectos similares es el uso de bases de datos disponibles en la web https://benchmark.ini.rub.de/gtsrb_dataset.html, donde se encuentra una amplia gama de señales de tráfico de Alemania. Concretamente, consta de dos bases de datos: la primera, denominada German Traffic Sign Detection Benchmark (GTSDB), que recopila miles de fotografías de carreteras alemanas en bruto, tomadas directamente desde un coche. La segunda, denominada German Traffic Sign Recognition Benchmark (GTSRB), incluye todas esas fotografías, pero con el preprocesado de haber recortado la señal de tráfico de las imágenes anteriores, de manera que facilite el análisis de esta región de interés para su posterior clasificación. Sin embargo, durante el estudio realizado para este proyecto se consideró que estas bases propuestas no eran lo suficientemente consistentes para el enfoque final en el que se quería utilizar. Las imágenes pertenecientes a estas bases de datos alemanas tienen una disposición espacial muy parecida, están muy bien centradas y presentan cambios de brillo, saturación o iluminación similares dentro de su gama de imágenes, por lo que no se conseguía una buena generalización de los modelos entrenados. Además, las imágenes tomadas para la creación de esa base de datos diferían de las imágenes que mi propio móvil había capturado para otras señales de tráfico, lo que complicaba aún más que esta posibilidad fuera fructífera para su uso. En un principio, se consideró hacer un híbrido entre la base de datos y algunas de las fotos recopiladas por mí hasta el momento, pero la solución no era consistente, por lo que se pensó tomar otra iniciativa: crear una nueva base de datos desde cero hecha por mí. Esto permitía realizar un análisis completamente independiente a los elaborado hasta ahora y añadía otro pilar de trabajo en el que desarrollar mis conocimientos con el que se complementara este proyecto. E 51 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales 4.2 Recopilación de los datos La nueva base de datos propuesta se basa en la recopilación de miles de imágenes tomadas en diferentes puntos en los alrededores de Sevilla. Principalmente las señales tomadas tanto para el entrenamiento, prueba y validación de los resultados fueron obtenidas en la carretera N-339 dirección Aeropuerto de Sevilla-San Pablo, SE-30 dirección Camas, E-01 dirección Gines y el interior de la ciudad. Figura 43. Extracto del mapa oficial de carreteras españolas Para la recopilación de datos, se utilizó un soporte de plástico fijado en el interior del vehículo, en el cual el móvil quedaba sujeto para grabar el panorama de su entorno. Este método permitió la captura de imágenes de manera continua mientras se conducía. Gracias a este dispositivo se recopilaron cerca de 50 videos, los cuales contenían imágenes de señales de tráfico de diversas calidades. Las imágenes obtenidas de los videos incluían todo el paisaje, por lo que el primer desafío fue cómo extraer todas las imágenes de las señales de tráfico de esos videos. En principio, para su posterior clasificación, la red solo recibiría la imagen de la señal dentro de una región de interés, asumiendo que la detección de dicha señal se había realizado correctamente. Aunque extraer las señales de los videos era una tarea comprensible, no resultaba ser trivial debido a la gran cantidad de etiquetas necesarias que se pretendían crear. Figura 44. Ejemplo de imagen de interés en un frame de uno de los videos Creación de la base de datos 58 4.4 Base de datos La base de datos elaborada engloba señales de tráfico de carreteras españolas. Este catálogo constituye un componente esencial en la regulación y seguridad vial del país. Recopila y clasifica de manera exhaustiva todas las señales de tráfico utilizadas en la red de carreteras de España, proporcionando un marco normativo uniforme que facilita la comprensión y el cumplimiento de las normas de circulación por parte de conductores y peatones. 4.4.1 Señales de tráfico españolas En general, las señales de tráfico son instrumentos clave para la comunicación de información vital sobre la vía y su entorno, advirtiendo sobre peligros, estableciendo prioridades, dictando prohibiciones y ofreciendo indicaciones necesarias para una conducción segura y eficiente. Su correcta interpretación es fundamental para prevenir accidentes, regular el flujo vehicular y garantizar el respeto a las normas viales. Cada señal de tráfico en el catálogo sigue un diseño estandarizado en términos de forma, color, y símbolos, lo cual garantiza su fácil reconocimiento e interpretación. Figura 53. Dimensiones señales de tráfico verticales La Dirección General de Tráfico (DGT) y otras autoridades viales son responsables de la implementación y el mantenimiento de las señales de tráfico en todo el territorio español. Estas entidades se aseguran de que las señales estén correctamente ubicadas y en buen estado, actualizándolas conforme a las modificaciones del reglamento de circulación y las necesidades cambiantes de la infraestructura vial. Las señales de tráfico pueden contener caracteres, iconos o una combinación de ambos, los cuales determinan su significado junto con la forma y el color. Los caracteres utilizados en las señales de tráfico tienen una tipografía y dimensiones específicas para garantizar su legibilidad y comprensión a diferentes distancias y velocidades. Dependiendo del tipo de vía donde se encuentren, las señales tienen dimensiones específicas. Este hecho está directamente relacionado con las velocidades máximas permitidas en cada tipo de vía: se utilizan señales de mayor tamaño en las vías donde se circula más rápido para mejorar la visibilidad. La forma y el color de las señales son elementos cruciales que ayudan a los conductores a identificar rápidamente su tipo y significado. La forma, como los triángulos para advertencias y los círculos para reglamentaciones, y el color, como el rojo para prohibiciones y el azul para indicaciones, se emplean de manera estandarizada para comunicar de forma efectiva el mensaje de la señal. 4.4.2 Introducción a la base de datos Una vez resuelto los problemas de cómo recopilar una cantidad suficiente de datos de señales de tráfico para la creación de la base de datos, el siguiente conflicto era lidiar con las imágenes generadas. Como se ha comentado anteriormente, no todas eran útiles, por lo que era necesario discernir entre las que sí lo 59 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales eran y las que no. Se realizó una selección de las imágenes que interesaban y se descartaron las demás. A continuación, se muestra el ruido (imágenes irrelevantes) se podían producir durante la extracción de señales de un video Figura 54. Ejemplo de un extracto de señales obtenidas tras procesar un video Además, se debían tener en cuenta varias especificaciones para garantizar un buen entrenamiento, como, por ejemplo: • Establecer un mínimo de 400 señales de cada clase: Se impuso que la base de datos debía disponer de una cantidad suficiente de imágenes para asegurar una buena generalización y entrenamiento de la red. Este parámetro se determinó a través de ensayo y error durante el proyecto. Se evidenció que, a partir de este umbral de datos, las redes empezaban a funcionar mejor para reconocer dicha clase. • Discernir entre señales con ruido admisible: Se toleraba almacenar en la base de datos señales con baja luminosidad, brillo o contraste, pero aquellas imágenes en las que la señal de tráfico estaba cortada por la mitad o tenían objetos superpuestos, como arbustos, semáforos u otros elementos, se eliminaron para evitar confusiones en la red. Se consideraba aceptable añadir ruido siempre y cuando la imagen real no perdiera un fragmento de la señal. • Elaborar una agrupación sistemática de los datos: Existen muchas formas de preparar una base de datos y agrupar la información, sin una manera metódica única de hacerlo. Se decidió agrupar las señales del mismo tipo obtenidas en diferentes carpetas antes de su etiquetado. Figura 55. Extracto la carpeta de señales capturadas de 60 km/h • Eliminar imágenes repetidas: Es interesante tener un gran número de imágenes de cada clase, pero una de las acciones que se ha realizado para la elaboración de los datos es la de evitar en la medida de Creación de la base de datos 60 lo posible tener imágenes repetidas de una misma señal, de manera que la red al ser entrenada no aprendiese patrones idénticos y tuviera un mayor repertorio de imágenes. Todo este proceso se realizó de manera minuciosa, implementando las especificaciones anteriores. El resultado final derivó en la creación de un total de 14 clases diferentes de señales de tráfico con un total de 8572 imágenes listas para dividir en los procesos de entrenamiento, validación y test. Las clases que cumplen con las especificaciones anteriores después del procesamiento de los 50 videos son las siguientes: • Señal de velocidad máxima de (30 km/h) • Señal de velocidad máxima de (40 km/h) • Señal de velocidad máxima de (50 km/h) • Señal de velocidad máxima de (60 km/h) • Señal de velocidad máxima de (80 km/h) • Señal de velocidad máxima de (100 km/h) • Señal de velocidad máxima de (120 km/h) • Seña de ceda al paso • Señal de cambio de sentido • Señal de paso para peatones • Señal de adelante • Señal de stop • Señal de fin de autovía • Señal de glorieta • Señal de peligro de glorieta 4.4.2 Transformaciones y cambios de perspectivas Una de las herramientas clave utilizadas para potenciar la generalización de las redes neuronales es el uso de transformaciones y cambios de perspectiva en las imágenes. Esta técnica, conocida como "data augmentation" o aumento de datos, comentada en el capítulo 3, implica aplicar diversas modificaciones a las imágenes originales para crear un conjunto de datos más diverso y robusto sin necesidad de recolectar más imágenes. El objetivo principal del uso de transformaciones y cambios de perspectiva es mejorar la capacidad de la red neuronal para reconocer patrones y características de las señales de tráfico en condiciones variadas. Al exponer la red a un amplio rango de variaciones en las imágenes durante el entrenamiento, se logra que el modelo sea más flexible y capaz de manejar situaciones que no están presentes en el conjunto de datos original. Principalmente se han aplicado dos tipos de transformaciones: rotación y transformaciones de perspectivas. • Rotación: La rotación de imágenes es una técnica de aumento de datos que consiste en girar una imagen alrededor de su centro en un ángulo determinado. Esta transformación ayuda a la red neuronal a aprender a reconocer objetos (en este caso, señales de tráfico) desde diferentes orientaciones. Generalmente, el centro de rotación es el centro de la imagen. Al rotar la imagen, los píxeles no caerán exactamente sobre la malla de píxeles de la imagen original. Se utilizan técnicas de interpolación, como la bilineal o la bicúbica, para estimar los valores de los nuevos píxeles. Por último, las esquinas de la imagen pueden quedar vacías tras la rotación. Estas áreas vacías se pueden rellenar con un color específico (generalmente negro) o mediante técnicas de extrapolación de borde. 61 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Figura 56. Imagen Real vs Imagen Rotada Cabe añadir que estas rotaciones se han implementado en un rango entre [-5, 5] grados. Tampoco se querían obtener señales de tráfico demasiado giradas, ya que las señales de tráfico se encuentran siempre en la misma posición. Una vez obtenidas recortaron los bordes para obtener fondos iguales a la de las imágenes originales y descartar el fondo negro. • Transformaciones de perspectivas: La transformación de perspectiva modifica una imagen para cambiar el punto de vista desde el cual se observa. Esto es útil para simular cómo se vería en este caso, una señal de tráfico, desde diferentes ángulos y posiciones, como si el observador se moviera respecto al objeto. Se necesitan definir dos grupos de puntos de referencia, los puntos fuentes, son las coordenadas de los vértices del área que se desea transformar en la imagen original, y los puntos destinos, son las coordenadas en la nueva imagen donde se mapearán los puntos fuente. Se utiliza una matriz de transformación que define cómo transformar los puntos de la imagen original a la nueva perspectiva. Una vez hecho esto, se utiliza la matriz de transformación para mapear todos los píxeles de la imagen original a la nueva imagen, cambiando la perspectiva según los puntos definidos. Figura 57. Imagen Real vs Imagen Transformada Al igual que antes, al aplicar la transformación de perspectiva, era común que la nueva imagen contenga áreas negras debido a la reasignación de píxeles. Para obtener una representación más realista, se eliminó el fondo negro de la imagen transformada. Esto se hizo para conservar únicamente el área de interés con el fondo real, pero observado desde una perspectiva diferente. Creación de la base de datos 62 4.4.3 Preparación de los datos Una vez obtenidos todas las carpetas con la suficiente cantidad de datos y preprocesados pertinentes, se llevó a cabo la preparación final de los datos que supondría la entrada a las redes neuronales convolucionales (CNNs). Para ello se elaboró un etiquetado numérico, donde cada tipo señal dispondría de un identificador (ID) único. La clasificación de identificadores propuesta es la siguiente: IDENTIFICADOR CLASE 0 Señal de velocidad máxima de (30 km/h) 1 Señal de velocidad máxima de (40 km/h) 2 Señal de velocidad máxima de (50 km/h) 3 Señal de velocidad máxima de (60 km/h) 4 Señal de velocidad máxima de (80 km/h) 5 Señal de velocidad máxima de (100 km/h) 6 Señal de velocidad máxima de (120 km/h) 7 Seña de ceda al paso 8 Señal de cambio de sentido 9 Señal de paso para peatones 10 Señal de adelante 11 Señal de stop 12 Señal de fin de autovía 13 Señal de glorieta 14 Señal de peligro de glorieta Una vez asociado cada identificador a su clase, se reestructuraron los datos cambiando sus nombres por el identificador al que pertenecían y su posición numérica dentro de la carpeta de la clase correspondiente. Por ejemplo, la imagen 34 de la clase "Señal de velocidad máxima de (60 km/h)" con ID=3, se nombró como 0003_0034.jpg. De esta manera, se obtuvo una clasificación ordenada y sistemática de todas las imágenes dentro de las carpetas de cada clase. Finalmente, se generó un fichero .csv que recopilaba toda la información de ambos campos: en la primera columna los nombres de las imágenes y en la segunda columna el identificador que tenían asociado. 63 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Figura 58. Extracto de clase 3 Figura 59. Extracto de clase 8 Figura 60. Extracto de clase 13 Creación de la base de datos 64 4.5 Conclusión La creación de una base de datos estas dimensiones es uno de los pilares fundamentales del trabajo, a priori parece una tarea sencilla y fácil de abordar, pero requiere de un preprocesado y una preparación de los elementos que resulta vital a la hora de garantizar un buen entrenamiento de las redes para su uso futuro. El uso complementario de herramientas como YOLO ha agilizado la tarea de extracción de los datos, su manejo ha facilitado una amplia cantidad de imágenes de los diferentes fragmentos de cada video grabado. Sin embargo, tal y cómo se ha comentado, se ha necesitado una serie de modificaciones de limpieza y transformaciones para garantizar la generalización. Esta base de datos no contiene todas las señales de tráfico españolas, pero incluye suficientes ejemplos para comprobar el funcionamiento de diferentes arquitecturas de redes neuronales convolucionales en la tarea de reconocimiento de señales de tráfico. La variedad y la cantidad de datos disponibles permiten evaluar el rendimiento y la capacidad de generalización de las CNNs, identificando áreas de mejora y ajustando los modelos para lograr una mayor precisión. 65 5 CLASIFICACIÓN DE LAS SEÑALES DE TRÁFICO n este capítulo se encuentra el núcleo principal del trabajo. Tras haber explicado el uso de redes neuronales convolucionales (CNNs) y cómo se creó la base de datos de señales de tráfico para entrenarlas, esta sección abordará un análisis de los resultados obtenidos a partir de las imágenes procesadas. Primero, se revisará el proceso de preprocesamiento de los datos (segmentación, normalización por lotes, etiquetado…). Luego, se analizarán los resultados utilizando las diversas métricas presentadas en el capítulo 3, empleando todas las arquitecturas de CNNs propuestas. Finalmente, se intentará mejorar estos resultados mediante la modificación de sus hiperparámetros. Este capítulo es de vital importancia, ya que sintetiza todos los conceptos abordados hasta ahora y permite realizar un análisis objetivo de los resultados, facilitando la implementación de la mejor arquitectura en un modelo real para la clasificación de señales de tráfico. 5.1 Introducción Hasta ahora se ha mencionado que las imágenes de la base de datos de señales de tráfico actúan como entradas para las redes neuronales. Estas entradas se conocen como vectores de características. Para cada imagen, el vector de características está compuesto por los píxeles de la imagen. En el caso de una imagen en blanco y negro, este vector de características se representa mediante una única matriz de píxeles con valores que varían entre [0,255]. Sin embargo, dado que las imágenes utilizadas en este estudio son a color, el procesamiento de las mismas se realiza en un espacio de color tridimensional. Esto implica que, en lugar de una única matriz de píxeles, se trabaja con tres matrices, una por cada canal de color: rojo (R), verde (G) y azul (B). Cada una de estas matrices contiene los valores de intensidad de los píxeles para su respectivo canal de color, también en el rango [0,255]. Estas tres matrices combinadas forman una representación completa de la imagen en color. Cada píxel de la imagen tiene una coordenada en este espacio tridimensional, definida por sus valores de R, G y B. Esta representación en tres canales es fundamental para las redes neuronales convolucionales, ya que permite capturar la información cromática necesaria para diferenciar y clasificar correctamente las señales de tráfico. Al alimentar una red neuronal convolucional (CNN) con estas imágenes en color, se proporciona una rica fuente de información que la red puede utilizar para aprender y reconocer patrones complejos. Las CNNs están diseñadas para procesar estos datos tridimensionales a través de sus capas convolucionales, extrayendo características de alto nivel que son cruciales para tareas como la clasificación de señales de tráfico. Por lo tanto, trabajar con imágenes en color en lugar de en blanco y negro permite que el modelo aproveche al máximo la información disponible, mejorando así su precisión y eficacia en la clasificación. E Clasificación de las señales de tráfico 66 5.2 Espacio de colores En lo que respecta a la clasificación de las señales de tráfico, se estudiaron diferentes alternativas, ya que el color es un poderoso descriptor que permite extraer las características de las señales de forma sencilla. Este trabajo ha utilizado el espacio de colores RGB para la clasificación de las señales de tráfico, no obstante, se va a recopilar algunos de los espacios de colores más comúnmente utilizados para proyectos que engloban algoritmos de percepción. • Espacio de color RGB: El espacio de color RGB (Rojo, Verde, Azul) es el más común y se utiliza ampliamente en imágenes digitales y pantallas. En este modelo, cualquier color se puede representar como una combinación de los tres colores primarios. R, índica la intensidad del color rojo, G indica la intensidad del color verde, B indica la intensidad del color azul. Cada canal en el espacio RGB tiene un valor que varía de 0 a 255. Las imágenes en color se representan mediante tres matrices (una para cada canal), donde cada píxel tiene una coordenada (R, G, B). Este espacio de color es intuitivo para el procesamiento digital de imágenes y es el más utilizado en redes neuronales convolucionales debido a su simplicidad y directa relación con las pantallas y cámaras digitales. Figura 61. Espacio de colores RGB • Espacio de color HSV: El espacio de color HSV (Tono, Saturación, Valor) se utiliza para representar los colores de una manera que es más alineada con la percepción humana de los colores. El canal H, representa el tipo de color o matiz y va de 0 a 360 grados. El canal S, representa la intensidad del color de 0% a 100%. El canal V, indica el brillo del color, de 0% a 100%. Este espacio de color es útil en aplicaciones donde la distinción de colores basada en el tono y la saturación es importante. Además, HSV puede ser beneficioso para destacar ciertos colores bajo diferentes condiciones de iluminación. Figura 62. Espacio de colores HSV 67 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales • Espacio de color CMYK: El espacio de color CMYK (Cian, Magenta, Amarillo y Negro) es un modelo de color que se utiliza principalmente en la impresión. A diferencia del espacio de color RGB, que se basa en la luz emitida, CMYK se basa en la absorción de luz. El canal Cian (C), absorbe la luz roja y refleja el verde y el azul. Cuando se añade a la impresión, reduce la cantidad de rojo percibido en el color final. El canal Magenta (M), absorbe la luz verde y refleja el rojo y el azul. Cuando se añade a la impresión, reduce la cantidad de verde percibido en el color final. El canal amarillo (Y), absorbe la luz azul y refleja el rojo y el verde. Cuando se añade a la impresión, reduce la cantidad de azul percibido en el color final. Por último, el canal Negro (K), absorbe todas las longitudes de onda de luz, y se utiliza para agregar profundidad y sombra a la imagen. El componente negro se utiliza para mejorar el contraste y la definición, y para ahorrar tinta de los otros colores. Figura 63. Espacio de colores CMYK 5.3 Procesado del dataset La preparación del conjunto de datos o dataset para llevar a cabo un buen entrenamiento resulta ser de las tareas más sensibles a la hora de realizar un proyecto de estas características, ya que el resultado de los pesos obtenidos en la red puede obtener grandes fluctuaciones dependiendo de cómo se alimentan a estas durante el entrenamiento. Inicialmente, se parte de las imágenes en bruto, ya recopiladas en la base de datos previamente creada. Se almacenan tanto las imágenes como sus etiquetas en dos listas separadas, y se realiza una mezcla inicial de todos los datos de manera aleatoria, siempre respetando la correspondencia entre cada imagen y su etiqueta que marca la clase a la que pertenece. Esta primera operación permite: • Reducir el sesgo: Si los datos no se mezclan aleatoriamente, es posible que la red neuronal se entrene en patrones específicos o secuencias dentro del conjunto de datos, lo que puede llevar a un sesgo en el modelo. • Mejorar la generalización: Al mezclar los datos, se asegura que la red vea una variedad de ejemplos durante cada iteración de entrenamiento, lo que ayuda a que el modelo generalice mejor a datos nuevos y no vistos. • Obtener una distribución uniforme del error: La aleatorización ayuda a distribuir uniformemente los errores y las correcciones durante el proceso de entrenamiento. Tras esto, se lleva a cabo un redimensionamiento general de todas las imágenes de la base de datos a una matriz de 64x64 píxeles. Es necesario alimentar a la red neuronal convolucional con un vector de características estandarizado. Este redimensionamiento ofrece varias ventajas: • Uniformidad en la entrada: Tener todas las imágenes de un tamaño uniforme asegura que la entrada a la red neuronal convolucional sea consistente. Las redes neuronales esperan entradas de tamaño fijo, y este redimensionamiento facilita la arquitectura del modelo al trabajar con dimensiones uniformes. Clasificación de las señales de tráfico 74 A partir de la matriz de confusión se pueden calcular las métricas vistas en el capítulo 3, como la exactitud, la precisión, la sensibilidad, la especificidad y F1-Score: CNN Simple Exactitud 0.991 Precisión 0.934 Sensibilidad 0.934 Especificidad 0.995 F1-SCORE 0.994 Tabla 1. Métrica CNN Simple El modelo simple implementado inicialmente muestra resultados notables en términos de métricas de rendimiento como exactitud, precisión y sensibilidad. Esto sugiere que el modelo está capturando patrones en los datos de entrenamiento de manera efectiva y realizando predicciones con una buena precisión. Sin embargo, es importante destacar que este modelo simple puede mostrar signos de sobreajuste. Esto se refleja en discrepancias entre el rendimiento en el conjunto de entrenamiento y en el conjunto de validación. Para mejorar la capacidad de generalización y reducir el sobreajuste, se explorarán arquitecturas más robustas y se incluirán técnicas con la regularización (dropout) o el cambio del tamaño de los minilotes. 5.4.2 CNN Estándar Esta arquitectura de red convolucional estándar presenta una composición más robusta en comparación con una CNN simple anterior. El objetivo principal es investigar si un modelo más profundo puede generar mejores resultados que una estructura básica de CNN. Este modelo específico utiliza 3 capas convolucionales para capturar características más complejas, cada una seguida por una capa de agrupamiento, y concluye con dos capas completamente conectadas para procesar y clasificar la información extraída. La arquitectura presenta la siguiente forma: • Capa de entrada: Espera que la entrada sea una imagen de tamaño 64x64 píxeles con 3 canales de color. • 3 capas convolucionales: 32, 64 y 128 filtros para cada vez capturar características más complejas • 3 capas de activación: una por cada capa de convolución utilizando la función de activación ReLU. • 3 capas de agrupamiento: Conectada a la salida de cada capa de activación, utiliza la capa de agrupamiento máxima para reducir el tamaño de la representación espacial. • Capa de aplanamiento: Aplana la salida de las capas convolucionales para alimentarlas a las capas densas. • 2 capas completamente conectadas: Capas completamente conectadas con 256 y 128 unidades respectivamente, usando ReLU como función de activación. La capa final con activación softmax para clasificar las salidas en las clases correspondientes. 75 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Figura 74. Arquitectura CNN Estándar El entrenamiento del modelo se realizó de acuerdo a los mismo hiperparámetros antes mecionados. Figura 75. Entrenamiento CNN Estándar Clasificación de las señales de tráfico 76 Los resultados obtenidos durante el proceso de entrenamiento y validación son los siguientes: Figura 76. Pérdida CNN Estándar Figura 77. Exactitud CNN Estándar 77 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Para la gráfica de pérdida, observamos un patrón similar al de la arquitectura CNN Simple. Inicialmente, la alta pérdida en el conjunto de entrenamiento indica un sesgo elevado. Este sesgo sugiere que el modelo tiene dificultades para ajustarse adecuadamente a la complejidad de los datos y comete errores significativos al principio del entrenamiento. Conforme avanza el entrenamiento, la pérdida en el conjunto de entrenamiento disminuye gradualmente y se estabiliza en un valor bajo. Esto sugiere que el modelo está mejorando en la captura de los patrones de los datos de entrenamiento y reduciendo su sesgo inicial al ajustar sus parámetros, tal y como pasaba también con el modelo anterior. En contraste, la pérdida en el conjunto de validación comienza relativamente baja y también alcanza mínimos hacia el final del entrenamiento. Este comportamiento inicial de baja pérdida de validación indica una varianza inicialmente baja, es decir, el modelo generaliza bien con los datos de validación desde el principio. Sin embargo, si la pérdida de validación disminuye demasiado hacia el final del entrenamiento, lo que podría ser un indicativo de sobreajuste. En cuanto a la exactitud, esta arquitectura muestra una mejora con respecto a la CNN Simple, especialmente en el conjunto de validación. Este es el punto fuerte en comparación a la arquitectura anterior. El modelo es capaz de hacer predicciones más precisas en datos nuevos o no vistos durante el entrenamiento, lo cual es un indicio de una menor varianza en comparación con la CNN Simple. Aunque ambas arquitecturas muestran un buen comportamiento en la pérdida y la exactitud a lo largo del entrenamiento, la arquitectura más compleja parece tener una mejor capacidad de generalización y rendimiento en el conjunto de validación. Para corroborar el funcionamiento de esta arquitectura en nuevas imágenes, se ha hecho uso del conjunto de prueba con el que se ha alcanzado una exactitud de 0.987. Figura 78. Exactitud del conjunto de Prueba CNN Estándar Utilizando las predicciones obtenidas con esta arquitectura y sabiendo las etiquetas reales de cada imagen de prueba se puede construir la matriz de confusión. Figura 79. Matriz de confusión CNN Estándar Clasificación de las señales de tráfico 78 Figura 80. Resumen matriz de confusión CNN Estándar A partir de la matriz de confusión se pueden calcular las métricas vistas en el capítulo 3, como la exactitud, la precisión, la sensibilidad, la especificidad y F1-Score: CNN Estándar Exactitud 0.998 Precisión 0.987 Sensibilidad 0.987 Especificidad 0.999 F1-SCORE 0.987 Tabla 2. Métrica CNN Estándar Tras la obtención de estos resultados, se puede evidenciar que la arquitectura denominada como CNN Estándar muestra un desempeño superior en comparación con el modelo Simple. Esta superioridad no solo se refleja en métricas más altas, sino también en su capacidad para generalizar correctamente en casos donde la arquitectura anterior fallaba. La CNN Estándar ha demostrado ser más efectiva en la tarea de reconocimiento, ya que logra capturar y aprender características más complejas de los datos. Esto se refleja en una mejora significativa en sus métricas, las cuales son cruciales para evaluar el rendimiento del modelo en diferentes aspectos. En contraste con la arquitectura Simple, que mostraba algunos signos de sobreajuste y limitaciones en la generalización, la CNN Estándar ha superado estos desafíos al mantener un buen equilibrio entre el ajuste a los datos de entrenamiento y la capacidad de aplicar ese conocimiento a datos nuevos. Mientras que las arquitecturas más simples pueden ofrecer una introducción básica al problema, modelos más complejos y profundos como la CNN Estándar pueden ofrecer mejoras significativas en términos de rendimiento y capacidad de generalización. Asegurar la mayor precisión posible es de vital importancia, ya que un fallo dentro de la clasificación de alguna de las señales tendría una gran penalización en la vida real. 79 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales 5.4.3 ResNet-50 Esta arquitectura es una de la más conocidas dentro de las arquitecturas de redes neuronales convolucionales (CNNs), su objetivo principal es entrenar redes mucho más profundas sin que las neuronas se degraden, es decir, el rendimiento disminuya a medida que se añadan más capas. Gracias a esta arquitectura, los gradientes fluyen más fácilmente a través de la red durante el entrenamiento. Cuando se habla de aplicar neuronas residuales en el contexto de redes neuronales convolucionales (CNNs) se refiere a una arquitectura de red que introduce conexiones o atajos para facilitar el entrenamiento de la red. Este modelo de ResNet-50 es una implementación estándar de una red residual profunda, que como su propio nombre indica posee 50 capas profundas. La arquitectura está formada por 4 bloques principales. Bloque de entrada • Capa entrada: define la entrada al modelo para imágenes de 64x64 pixeles • Capa de relleno: Aplica un padding, donde se añade relleno de ceros alrededor de la entrada antes de aplicar la operación de convolución Bloque de convolución • Capa convolución: Aplica una convolución de 64 filtros • Capa normalización: Normaliza las activaciones de la capa anterior • Capa de activación: Aplica la función de activación ReLU • Capa de agrupamiento: Aplica un agrupamiento máximo para reducir la dimensionalidad Bloques residuales • Bloque convolucional: Introduce un bloque residual que incluye una operación de convolución con cambio de dimensión. En concreto se han utilizado 4 capas de convolución dentro de este bloque. • Bloque Identidad: Introduce un bloque residual donde las dimensiones de entrada y salida son iguales. Para evitar el problema de los gradientes, algunas capas deben aprender la transformación de identidad, es decir, devolver la entrada sin cambios para no perjudicar al rendimiento. El bloque identidad facilita que la red aprendas estas transformaciones de identidad cuando sea necesario, asegurando que las capas adicionales no empeoren el rendimiento. Bloque capas finales • Capa de agrupamiento: Aplica un pooling promedio • Capa dropout: Se aplica una capa con un 10%, es un porcentaje mínimo para que funcione. Posteriormente se harán pruebas con una tasa de dropout mayor. • Capa de aplanamiento: Aplana el tensor de salida para que pueda ser procesado por la capa completamente conectada. • Capa completamente conectada: Capa totalmente conectada con un número de unidades igual al número de clases y activación softmax para la clasificación. Clasificación de las señales de tráfico 80 Figura 81. Extracto final de la arquitectura ResNet-50 El entrenamiento se ha realizado de acuerdo a los hiperparámetros empleados tanto en la CNN Estándar como en la Simple. Figura 82. Entrenamieto de ResNet-50 81 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Los resultados obtenidos durante el proceso de entrenamiento y validación son los siguientes: Figura 83. Pérdida ResNet-50 Figura 84. Exactitud ResNet-50 Clasificación de las señales de tráfico 82 La principal novedad de la arquitectura ResNet-50 respecto a las anteriores es que posee una mayor profundidad y densidad de neuronas, lo que conlleva un tiempo de entrenamiento considerablemente mayor en comparación con arquitecturas más simples. Este aumento en la complejidad se ha traducido en la necesidad de una potencia de cálculo significativa para manejar eficazmente la cantidad masiva de parámetros y operaciones involucradas en cada paso de entrenamiento. Durante el proceso de entrenamiento, se observa que tanto la pérdida en el conjunto de entrenamiento como en el de validación experimenta una disminución progresiva desde valores iniciales relativamente altos hacia valores finales pequeños y estables. Este patrón refleja que el modelo está aprendiendo de manera efectiva a partir de los datos y ajustándose para minimizar el error tanto en los datos utilizados para el entrenamiento como en aquellos reservados para la validación. La gráfica de exactitud muestra un rendimiento notablemente alto para ambos conjuntos de datos, alcanzando valores cercanos al 100% en el conjunto de validación. Esto indica que la ResNet-50 no solo ha aprendido a clasificar correctamente los ejemplos de entrenamiento, sino que también generaliza bien a datos no vistos, mostrando una capacidad robusta para realizar predicciones precisas en un entorno de aplicación real. En términos de sesgo y varianza, la ResNet-50 muestra signos de un modelo bien equilibrado. El bajo sesgo se refleja en la capacidad del modelo para capturar adecuadamente las relaciones complejas en los datos de entrenamiento, como se evidencia por la reducción consistente de la pérdida. Al mismo tiempo, la baja varianza indica que el modelo generaliza efectivamente a datos no vistos, evitando el sobreajuste y manteniendo un rendimiento estable en el conjunto de validación. A pesar del tiempo de entrenamiento prolongado y la complejidad computacional asociada, la arquitectura ResNet-50 demuestra ser una elección muy efectiva para tareas de clasificación de imágenes. Su capacidad para gestionar la complejidad inherente de conjuntos de datos extensos y su habilidad para equilibrar sesgo y varianza son atributos clave que respaldan su eficacia. Para corroborar el funcionamiento de esta arquitectura en nuevas imágenes, se ha hecho uso del conjunto de prueba con el que se ha alcanzado una exactitud de 0.993, la mejor obtenida hasta ahora. Figura 85. Exactitud del conjunto de Pruebas ResNet-50 Utilizando las predicciones obtenidas con esta arquitectura y sabiendo las etiquetas reales de cada imagen de prueba se puede construir la matriz de confusión. Figura 86. Matriz de confusión ResNet-50 83 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Figura 87. Extracto matriz confusión ResNet-50 A partir de la matriz de confusión se pueden calcular las métricas vistas en el capítulo 3, como la exactitud, la precisión, la sensibilidad, la especificidad y F1-Score: ResNet-50 Exactitud 0.999 Precisión 0.993 Sensibilidad 0.993 Especificidad 0.996 F1-SCORE 0.993 Tabla 3. Métrica ResNet-50 Los resultados de las métricas revelan un desempeño excepcional en la clasificación de las señales de tráfico disponibles. En comparación con modelos anteriores que empleaban arquitecturas más simples, se observa una mejora significativa en todos los parámetros evaluados. La arquitectura desarrollada demuestra una capacidad sobresaliente para generalizar eficazmente cualquier señal perteneciente a la base de datos utilizada. A través de sus 50 capas, la red neural descompone y analiza un amplio conjunto de características presentes en las imágenes de las señales. Esta capacidad de extraer características complejas permite que el modelo aprenda representaciones profundas y precisas de las señales de tráfico. Inicialmente, podría plantearse la preocupación de un posible sobreentrenamiento debido a los altos rendimientos alcanzados en el conjunto de entrenamiento. Sin embargo, la evaluación exhaustiva en los conjuntos de validación y prueba certifica que este no es el caso. Los resultados consistentes y altamente precisos en el conjunto de validación reflejan la capacidad del modelo para generalizar a datos no vistos, indicando que ha aprendido patrones fundamentales sin caer en la memorización de los datos de entrenamiento. La arquitectura ResNet-50 implementada no solo ha superado los modelos anteriores en términos de rendimiento, sino que también ha demostrado una capacidad excepcional para clasificar con precisión las señales de tráfico estableciendo un nuevo estándar en esta aplicación. Clasificación de las señales de tráfico 90 Por otro lado, si se emplea la técnica de regularización por abandono aplicando un 30%, se obtiene los resultados que se verán a continuación: Regularización por abandono 0.3 Minilotes (64) Minilotes (128) CE CV CP CE CV CP CNN Simple 0.973 0.953 0.949 0.972 0.957 0.946 CNN Estándar 0.952 0.998 0.994 0.74 0.87 0.86 Resnet50 0.994 0.993 0.991 0.999 0.994 0.989 VGG19 0.809 0.712 0.752 0.857 0.859 0.834 Tabla 6. Cambio Hiperparámetros aplicando regularización por abandono La tabla presenta un análisis detallado de diferentes arquitecturas según las configuraciones de hiperparámetros utilizadas. Se evaluaron dos configuraciones principales basadas en el tamaño de los minilotes: 64 imágenes y 128 imágenes, cada una considerando la regularización por abandono. Inicialmente, al emplear minilotes de 64 imágenes, se observó un ligero deterioro en los resultados en comparación con configuraciones previas. No obstante, los resultados siguen siendo globalmente aceptables. En términos de generalización hacia nuevos datos, las arquitecturas demostraron un desempeño robusto en comparación con versiones anteriores. Sin embargo, se observa que la arquitectura VGG19 experimenta un notable empeoramiento en sus resultados. Esto se atribuye principalmente al número limitado de épocas empleadas en el entrenamiento, lo cual resultó insuficiente para que la VGG19 alcanzara resultados satisfactorios. Dada su complejidad y profundidad, esta arquitectura requiere un mayor número de épocas para optimizar adecuadamente sus parámetros y lograr un rendimiento óptimo. Por otro lado, al aumentar el tamaño de los minilotes a 128 imágenes y aplicar la regularización por abandono, se observa una mejora significativa en los resultados en comparación con la configuración anterior de 64 imágenes. Esta mejora se debe a que el modelo puede analizar un mayor volumen de datos en cada iteración de entrenamiento, lo cual facilita un aprendizaje más profundo y eficaz de las características relevantes. En general, todas las arquitecturas experimentan una mejora en sus capacidades predictivas y de generalización con esta configuración de hiperparámetros. En resumen, tras analizar las diferentes configuraciones de hiperparámetros, se concluye que la arquitectura ResNet-50 utilizando la regularización por abandono y un minilote de entrenamiento de 128 imágenes sobresale entre las demás arquitecturas en términos de capacidad de generalización, evitando el sobreentrenamiento y alcanzando una mayor precisión en el conjunto de datos utilizado. Estos resultados subrayan la importancia crítica de ajustar los hiperparámetros de manera óptima para cada arquitectura de red neuronal convolucional, asegurando así un rendimiento óptimo en diversas aplicaciones prácticas y escenarios de datos. 92 6 CAPÍTULO FINAL n este capítulo, se llevará a cabo una simulación junto a la implementación de las arquitecturas de redes neuronales desarrolladas previamente, las cuales fueron explicadas en detalle en el capítulo anterior. El objetivo principal es crear una interfaz gráfica de usuario (GUI) que demuestre el funcionamiento y la utilidad práctica de estas arquitecturas en un sistema real. Esta GUI servirá como una herramienta visual para interactuar con las redes neuronales, proporcionando una manera intuitiva de ingresar datos de entrada y observar las predicciones o resultados generados por cada modelo. Además, se presentarán los resultados obtenidos durante la implementación de las arquitecturas en la GUI. Se analizarán las observaciones significativas y se discutirán las consideraciones finales para posibles mejoras en el trabajo desarrollado. Además de exponer y discutir los errores encontrados. Este análisis permitirá identificar áreas de oportunidad y sugerir ajustes que podrían optimizar el rendimiento de los modelos en aplicaciones futuras. 6.1 Introducción La implementación llevada a cabo pretende simular el funcionamiento de un HUD (Head Up Display), incorporando el trabajo de clasificación de señales de tráfico explicado. Actualmente, no existe ningún protocolo que estandarice el funcionamiento de un HUD, por lo que, dependiendo del fabricante, puede presentar diferentes prestaciones. En general, un HUD puede contener información diversa, adaptada a las necesidades del conductor y las capacidades tecnológicas del vehículo. Entre las funcionalidades más comunes se encuentran la velocidad del vehículo, que muestra la velocidad actual en tiempo real, permitiendo al conductor monitorearla sin desviar la vista de la carretera y mejorando así la seguridad y la comodidad de la conducción. Además, proporciona indicaciones de navegación, ofreciendo instrucciones paso a paso, como direcciones, distancias hasta el próximo giro y la ruta general. El HUD también puede incluir el reconocimiento de señales de tráfico, proporcionando información sobre las señales detectadas, como límites de velocidad, señales de advertencia y prohibiciones. Las advertencias de colisión son otra funcionalidad importante, alertando al conductor sobre posibles colisiones con otros vehículos u obstáculos en la carretera. Además, muestra el estado del vehículo, incluyendo el nivel de combustible, autonomía restante, temperatura del motor y estado del aceite. Las indicaciones de control de crucero también pueden estar presentes, detallando la velocidad programada y la distancia mantenida respecto al vehículo que precede. El sistema de entretenimiento se integra en el HUD, mostrando datos como la canción que se está reproduciendo o la emisora de radio sintonizada. Los indicadores de seguridad alertan sobre la activación del sistema de frenado automático, control de tracción o el sistema de mantenimiento de carril. Asimismo, el HUD puede proporcionar información en tiempo real sobre las condiciones del tráfico y el clima, ayudando al conductor a tomar decisiones informadas. La conectividad del teléfono es otra funcionalidad útil, mostrando notificaciones de llamadas entrantes, mensajes de texto y otras alertas del smartphone conectado. Cada fabricante puede optar por incluir un subconjunto de estas funcionalidades o añadir otras específicas según sus criterios y tecnologías disponibles. La variabilidad en las prestaciones se debe a la falta de un protocolo estandarizado, lo que permite a los fabricantes diferenciar sus productos y adaptarse a las preferencias de los consumidores. Esta breve recreación se ha limitado a incorporar únicamente lo que sería el reconocimiento de señales de tráfico de la carretera a través del entrenamiento de las redes neuronales convolucionales mencionadas anteriormente, por lo que la aplicación en cuestión se centrará en mostrar estas señales con tiempo suficiente para que el conductor las visualice y sepa en todo momento la señal que acaba de observar. E 93 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales 6.2 Interfaz Gráfica de Usuario (GUI) La interfaz básica de usuario se compone de una ventana principal que muestra el vídeo representativo de lo que el vehículo percibe durante su conducción, junto con una sección inferior que simula el HUD (Head Up Display) del automóvil. El vídeo utilizado en la simulación no forma parte del conjunto de datos de entrenamiento, ya que el objetivo es reconocer señales de tráfico que no hayan sido previamente vistas. La disposición de la interfaz asigna las tres cuartas partes superiores para el vídeo, mientras que la parte inferior está reservada para la visualización de las señales de tráfico identificadas. Esto permite una representación clara del entorno circundante del vehículo junto con las señales detectadas en el video. Figura 94. Distribución de la Interfaz El problema del reconocimiento de señales de tráfico se abordó utilizando la misma herramienta utilizada en el capítulo 4 para la creación de la base de datos: YOLO-V8. Esta herramienta está diseñada específicamente para identificar posibles señales de tráfico en una imagen mediante la detección de regiones de interés. Para asegurar la precisión, se estableció un umbral de confianza elevado, aproximadamente del 0.85, con el fin de filtrar el ruido y garantizar que solo se detecten las señales relevantes. Una vez que se identifica una región potencial de señal de tráfico por YOLO-V8, se procede a evaluar esta región utilizando la mejor red neuronal convolucional determinada en el capítulo 5: la ResNet-50. Esta red neuronal está optimizada con una regularización de dropout del 30% y fue entrenada con mini lotes de 128 imágenes. La ResNet-50 se encarga de analizar las características específicas de la región detectada por YOLO-V8 y clasificarla entre las 15 posibles señales para las cuales fue entrenado el modelo. Este enfoque garantiza que las señales de tráfico sean identificadas con precisión y eficacia, aprovechando tanto la capacidad de detección robusta de YOLO-V8 como la capacidad de clasificación detallada de la ResNet-50. Clasificación de las señales de tráfico 94 Figura 95. Funcionamiento HUD 6.2.1. Parámetros Principales Para la creación de la interfaz gráfica, se ha creado una ventana principal (800x600 pixeles) que se ha dividido en ventanas secundarias para diferentes funciones. Por un lado, se encuentra la ventana secundaria número 1, que muestra lo que el coche ve en todo momento y sirve como emulación del proceso real de conducción. A partir de esta secuencia de fotogramas, se extraen las características que alimentan a la red neuronal convolucional. Por otro lado, está lo que sería el HUD (Head-Up Display) propiamente dicho, donde se muestra toda la información relevante sobre las detecciones de señales de tráfico. Para la visualización, se ha dividido esta segunda ventana secundaria en tres celdas iguales, de manera que haya espacio para mostrar hasta tres señales de tráfico al mismo tiempo. La distribución escogida para la visualización de las señales de tráfico ha sido diseñada para que siempre se muestren las señales de detección de máxima velocidad permitida en los laterales, y en la celda central se muestre otro tipo de señal, ya sea de advertencia, stop, ceda el paso u otra que no sea de máxima velocidad. Esta distribución implementa una lógica sencilla que permite al conductor mantener siempre visible la velocidad máxima permitida en la vía, mientras que en el centro se muestra cualquier otro tipo de señal detectada, evitando así un solapamiento entre las señales de velocidad y las restantes. Figura 96. Distribución por celdas 95 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales Otro factor importante es el tiempo de visualización de las señales que aparecen en la pantalla. Se ha establecido una lógica sencilla en la que las señales de máxima velocidad detectadas se mantienen siempre vigentes hasta que se detecte otra que indique un cambio. Por otro lado, las señales de advertencia, ceda el paso, stop, etc., aparecen en el centro siempre que se detecten y dejan de aparecer en función de dos condiciones: • Condición 1: En el caso de detectar otra señal del mismo tipo, la inicial es reemplazada por la nueva. • Condición 2: Si han pasado 4 segundos desde la última detección que corroboraba la existencia de esa señal y ha dejado de detectarse, entonces desaparece del display. Figura 97. Ejemplo de condición 2 Por último, para ayudar a la corrección de errores y dar dinamismo a la primera ventana secundaria, donde se muestra el video, se ha añadido al bounding box que se genera cada vez que se identifica una señal de tráfico, la predicción realizada por la red neuronal convolucional. Este parámetro o etiqueta (label) permite identificar si lo que se detecta con el algoritmo concuerda con lo que se muestra en el HUD. Al mostrar la clase de señal detectada junto al bounding box, se facilita la verificación de la precisión del sistema y se proporciona una herramienta visual para identificar posibles errores en tiempo real. Figura 98. Ejemplo etiqueta peligro glorieta Esta funcionalidad adicional no solo mejora la capacidad de diagnóstico del sistema, sino que también enriquece la experiencia de simulación, proporcionando una representación más fiel y dinámica de cómo se comportaría el sistema en un entorno real. La integración de la predicción en el bounding box asegura que cualquier discrepancia entre la detección del algoritmo y la visualización en el HUD sea rápidamente identificable, permitiendo ajustes y correcciones más eficientes. Toda esta lógica permite realizar una simulación completa y precisa de lo que sería el uso real de las redes neuronales estudiadas hasta el momento en un sistema de conducción autónoma. La combinación de detección, visualización y verificación en tiempo real asegura que el sistema sea no solo funcional, sino también robusto y confiable para su implementación en situaciones reales. Clasificación de las señales de tráfico 96 6.3 Observaciones de la Interfaz Gráfica de Usuario Una vez probada la interfaz gráfica de usuario, se pueden recopilar diferentes puntos en base a su funcionamiento y las predicciones del algoritmo ResNet-50. En primer lugar, el tiempo de ejecución o procesamiento es alto. Cada frame requiere un tiempo de procesamiento considerable, lo cual impide un comportamiento fluido en tiempo real. Sin embargo, dado que el objetivo de este trabajo no es lograr una ejecución en tiempo real, se considera aceptable un tiempo de procesamiento más lento para poder desarrollar la lógica del HUD (Head-Up Display) en un sistema real. Además, los videos utilizados para la comprobación del algoritmo están grabados en diferentes días y horas, lo que introduce variaciones significativas en la luminosidad y el entorno. Estos cambios son cruciales al analizar el comportamiento general del sistema. No se obtiene la misma claridad en un día soleado que en uno nublado, y las señales pueden no ser detectadas de la misma manera si están a la sombra o completamente iluminadas. Por este motivo, ajustar los umbrales de confianza para la detección y clasificación de las señales de manera general puede parecer una tarea sencilla a priori, pero en realidad, es bastante compleja. Estos umbrales se han ajustado mediante un proceso de ensayo y error, con el objetivo de optimizar las predicciones de la red y su visualización en la interfaz gráfica. Asimismo, como se ha explicado anteriormente, se ha implementado una lógica sencilla para visualizar de manera realista las señales detectadas en lo que sería el display del coche. Este algoritmo se ha construido principalmente utilizando operaciones lógicas de AND y OR, de manera que se respeten las condiciones establecidas inicialmente. En general, las predicciones de la red son bastante precisas. La confianza y exactitud que presenta en su conjunto de entrenamiento y validación son muy altas, y este comportamiento se verifica con los resultados obtenidos en los ejemplos utilizados en la interfaz gráfica de usuario. La robustez del sistema, a pesar de las variaciones en las condiciones de los videos, demuestra la eficacia del algoritmo y la lógica implementada para la visualización de las señales detectadas. 6.4 Detección de errores El sistema implementado no es perfecto, pero se han ido puliendo la mayoría de los errores para obtener un comportamiento robusto de lo que sería una interfaz de usuario en una primera instancia. • Umbral de Confianza y Ruido: El umbral de confianza válido para un uso general falla en algunas ocasiones. El algoritmo de detección de señales de tráfico proporcionado por YOLO-V8 a veces identifica elementos de la carretera como señales de tráfico cuando no lo son. Esto subraya la importancia de establecer un umbral lo suficientemente robusto para eliminar el ruido y clasificar únicamente las verdaderas señales de tráfico. Elementos como anuncios, cartelería de dirección de carreteras u objetos similares pueden generar conflictos en la detección. • Limitación en la Clasificación de Señales: Existe una limitación en las señales que se pueden clasificar. La selección de señales se basó en aquellas para las cuales se disponía de un conjunto de datos suficientemente grande para entrenar la red. Sin embargo, las carreteras españolas albergan muchas otras señales de tráfico para las que el algoritmo no ha sido entrenado. Ejemplos de estas señales son advertencias de giro, advertencias de animales y señales de desvíos y zonas auxiliares. • Lógica de Detección Continua: Para corroborar que una señal ha sido detectada y clasificada correctamente, se ha implementado una lógica que requiere detectar la señal durante al menos 2 segundos consecutivos. Esto ayuda a eliminar el ruido de predicciones erróneas que pueden ocurrir en instantes puntuales. 97 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales • Verificación y Depuración: Se han utilizado etiquetas y mensajes por consola en muchas partes del código para corroborar constantemente tanto el procesamiento del video como las acciones de la red con las características proporcionadas. A pesar de las limitaciones y desafíos, el sistema ha demostrado ser eficaz en la simulación de una interfaz de usuario para la detección de señales de tráfico. La implementación de YOLO-V8 junto con la red neuronal ResNet-50 ha permitido obtener predicciones precisas y una visualización coherente en el HUD. La robustez del sistema se ha mejorado significativamente mediante la lógica de detección continua y el ajuste iterativo de los umbrales de confianza. Sin embargo, para alcanzar un comportamiento completamente fluido en tiempo real, sería necesario optimizar el tiempo de procesamiento de los frames y expandir el conjunto de datos para incluir una mayor variedad de señales de tráfico. La capacidad del sistema para manejar diferentes condiciones de luminosidad y entorno también debe ser mejorada para garantizar una detección precisa en todas las circunstancias. En resumen, el sistema implementado sirve como una base sólida para futuras mejoras y desarrollos. Con ajustes adicionales y la expansión de sus capacidades, tiene el potencial de convertirse en una herramienta valiosa para sistemas de conducción autónoma y asistida, ofreciendo una interfaz de usuario intuitiva y fiable para la detección y visualización de señales de tráfico. 6.5 Futuros proyectos El trabajo realizado presenta una gran cantidad de potenciales mejoras y elementos auxiliares que se pueden incorporar en futuros desarrollos. Estas mejoras podrían fortalecer la eficacia y la funcionalidad del sistema implementado. Una mejora sólida sería desarrollar un protocolo más robusto de comunicación entre el sistema de reconocimiento y clasificación de señales de tráfico y el HUD (Head-Up Display). Actualmente, la transmisión de datos entre estos componentes no sigue un estándar universal, ya que cada fabricante de vehículos utiliza su propio protocolo. Establecer un protocolo de comunicación estandarizado y eficiente mejoraría la integración y la coherencia del sistema. Investigar y desarrollar este aspecto sería un avance significativo, permitiendo una transmisión de datos más fluida y confiable. Otro aspecto importante sería aumentar la tipología de señales de tráfico disponibles en la base de datos. Actualmente, para el análisis de las diferentes arquitecturas se han utilizado 15 clases diferentes de señales. Ampliar esta base de datos para incluir una mayor variedad de señales haría que el conjunto de datos sea más completo y representativo de las condiciones reales de las carreteras. Esto no solo mejoraría la capacidad del sistema para reconocer una gama más amplia de señales, sino que también aumentaría su utilidad y aplicación práctica. Además, sería interesante realizar este mismo análisis bajo diferentes condiciones meteorológicas para obtener resultados comparativos. Hasta ahora, no se han obtenido señales de tráfico en situaciones de baja visibilidad, como de noche o bajo fuertes lluvias. Realizar estudios que evalúen el funcionamiento del sistema en estas condiciones adversas proporcionaría una comprensión más completa de su robustez y fiabilidad. Esta implementación es crucial para asegurar que el sistema pueda operar eficazmente en cualquier circunstancia climática. Por último, una propuesta valiosa sería integrar este algoritmo en un sistema de tiempo real y realizar las modificaciones necesarias para que funcione con las señales de la base de datos en condiciones reales de tráfico. Adaptar el sistema para operar en tiempo real implicaría optimizaciones en el procesamiento de datos y la eficiencia del algoritmo. Esta integración permitiría una evaluación más realista de su desempeño y proporcionaría datos valiosos para futuras mejoras. En conclusión, las mejoras propuestas no solo fortalecerían la funcionalidad del sistema actual, sino que también expandirían su aplicabilidad y eficiencia en diversos entornos y condiciones. Clasificación de las señales de tráfico 98 6.6 Conclusiones Finales El objetivo inicial de este trabajo consistía en la creación de una base de datos novedosa elaborada desde cero y en el análisis de diferentes arquitecturas de redes neuronales convolucionales (CNN). Trabajar con estas redes ha permitido profundizar en su funcionamiento y comprender qué ocurre dentro de ellas, evitando verlas únicamente como una caja negra en el futuro. Conceptos como backpropagation, algoritmos de optimización y técnicas de regularización son algunos de los temas en los que se ha profundizado, ampliando el conocimiento de redes neuronales artificiales adquirido durante la carrera. La creación de una base de datos nueva y suficientemente sólida para entrenar las diferentes arquitecturas también ha supuesto un reto significativo. Reprocesar los videos e imágenes, aplicando técnicas de transformación y cambios de perspectiva, ha proporcionado un mayor entendimiento en el campo de la preparación de datos. Este proceso ha sido crucial para asegurar que los datos utilizados en el entrenamiento sean de alta calidad y representativos de las condiciones reales. El entrenamiento de las diferentes arquitecturas ha permitido aprender a realizar un análisis objetivo de los parámetros e hiperparámetros que rodean a una red neuronal convolucional, a través de las métricas y resultados obtenidos. Comparar diferentes arquitecturas no es una tarea sencilla, ya que cada una posee elementos y estructuras distintas. Aprender a normalizar estos resultados a través de parámetros como la exactitud o el sesgo obtenido por la red ha sido fundamental para realizar análisis más precisos y útiles. Además, se debe destacar la interfaz gráfica de usuario desarrollada. Aunque el mayor peso de este trabajo recae en la creación de la base de datos y el análisis de las diferentes arquitecturas de las redes, disponer de un algoritmo que materialice de manera visual los resultados obtenidos siempre ayuda a entender y poner en práctica el trabajo realizado. Esta interfaz permite visualizar los resultados de las detecciones y clasificaciones de señales de tráfico, proporcionando una herramienta útil para la validación y demostración del sistema. En conclusión, este trabajo ha sido completamente enriquecedor en varios aspectos. La creación de una base de datos robusta, el análisis y comparación de diferentes arquitecturas de redes neuronales convolucionales, y el desarrollo de una interfaz gráfica de usuario han contribuido a una comprensión más profunda del campo de las redes neuronales artificiales y de los sistemas de percepción. Estos aprendizajes no solo amplían el conocimiento técnico, sino que también preparan mejor para enfrentar futuros desafíos en el campo de la inteligencia artificial y visión. 99 Creación de un dataset de señales de tráfico y clasificación mediante redes neuronales artificiales