scieee AI-readable full text Open interactive document viewer

Inteligencia artificial aplicada a la monitorización y control de fauna

Álvarez Urueña, Jaime

Abstract

Departamento de Informática (Arquitectura y Tecnología de Computadores, Ciencias de la Computación e Inteligencia Artificial, Lenguajes y Sistemas Informáticos)

Full text

Universidad de Valladolid ESCUELA DE INGENIER´ IA INFORM ´ ATICA GRADO EN INGENIER´ IA INFORM ´ ATICA MENCI ´ ON EN COMPUTACI ´ ON Inteligencia Artificial aplicada a la Monitorizaci´on y Control de fauna Alumno: Jaime ´ Alvarez Urue˜na Tutora de universidad: MªAr´anzazu Sim´on Hurtado Tutor de empresa: Javier Curto Hern´andez ”No hay nada m´as gratificante que ver el fruto de tu esfuerzo y dedicaci´on.” Fernando Alonso. I II AGRADECIMIENTOS Agradecimientos A mis tutores, MªAr´anzazu Sim´on Hurtado y Javier Curto Hern´andez, por vuestra ayuda y atenci´on. Al Air Institute por brindarme la oportunidad de aprender y trabajar en este proyecto. A mis padres, mi hermano y mi abuelo por su cari˜no. III AGRADECIMIENTOS IV RESUMEN Resumen La energ´ıa e´olica es una de las fuentes de energ´ıa renovables y limpias que m´as se est´an usando en la actualidad para luchar contra el cambio clim´atico, la reducci´on de gases de efecto invernadero y conseguir la autonom´ıa energ´etica de los distintos pa´ıses. No obstante, los parques e´olicos constituyen un gran peligro para las aves aut´octonas, pues corren el riesgo de chocar contra los molinos, as´ı como la p´erdida de su h´abitat y el desplazamiento del mismo. Es por ello que es necesario poder identificar y clasificar las aves existentes en un espacio geogr´afico para cuantificar el riesgo que corren en caso de crear un parque e´olico en esa localizaci´on. Para ello, se han creado una serie de modelos de inteligencia artificial para poder identificar y clasificar las aves mediante sus im´agenes y los sonidos que emiten. En este Trabajo de Fin de Grado se han desarrallodo 3 algoritmos: uno mediante visi´on artificial con un modelo de aprendizaje autom´atico supervisado para poder segmentar las aves en una imagen. El segundo algoritmo usa modelos (supervisados) para clasificar las im´agenes de las aves detectadas, y el ´ultimo, tambi´en supervisado, se encarga de clasificar las aves seg´un el sonido que emiten. V RESUMEN VI ABSTRACT Abstract Nowadays, wind energy is one of the most widely used source of renewable and clean energy to combat climate change, helping to reduce greenhouse gases, and achieve energy autonomy for various countries. However, wind farms may pose a significant threat to native birds, as they risk collision with windfarm turbines, losing their habitats, and being displaced. Therefore, it is necessary to identify and classify the birds present in a geographic area to assess the risk they may face if a wind farm is installed in that location. For this purpose, a solution of artificial intelligence models has been developed to identify and classify birds through the recognition of images and sounds they emit. In this Bachelor’s Thesis, three algorithms have been developed: one using computer vision techniques through a supervised machine learning model to identify and segment the birds within an image. The second algorithm uses models to classify the images of the detected birds’ species; and the last one, also supervised, is responsible for classifying the birds according to the sounds they emit. VII ´ INDICE DE FIGURAS 6.1. Convoluci´on en profundidad. [34] . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.2. Estructura de un Visual Transformer. [37] . . . . . . . . . . . . . . . . . . . . 59 6.3. Rotaci´on de im´agenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.4. Zoomdeim´agenes.................................. 61 6.5. Modificaci´on de brillo en im´agenes. . . . . . . . . . . . . . . . . . . . . . . . . 61 6.6. Modificaci´on de contraste en im´agenes. . . . . . . . . . . . . . . . . . . . . . . 61 6.7. Modificaci´on de saturaci´on en im´agenes. . . . . . . . . . . . . . . . . . . . . . 62 6.8. Volteodeim´agenes. ................................ 62 6.9. Matriz de confusi´on del modelo EfficientNet. Elaboraci´on propia. . . . . . . . 64 6.10. Salida del modelo EfficientNetB0. . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.11. Separaci´on de los conjuntos de datos para entrenar/test de cada modelo. Elaboraci´onpropia. .................................. 65 6.12. Matriz de confusi´on del modelo binario EfficientNet. Elaboraci´on propia. . . . 66 6.13. Salida del modelo EfficientNetB0 binario. . . . . . . . . . . . . . . . . . . . . 66 6.14. Matriz de confusi´on del modelo no binario EfficientNetB0. Elaboraci´on propia. 67 6.15. Resultados del modelo EfficientNetB0 no binario. . . . . . . . . . . . . . . . . 67 6.16. Ejemplos de im´agenes del dataset. . . . . . . . . . . . . . . . . . . . . . . . . 68 6.17. Matriz de confusi´on del modelo ViT. Elaboraci´on propia. . . . . . . . . . . . 69 6.18. Resultados del modelo ViT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 7.1. Representaci´on de un sonido en la dimensi´on del tiempo. [45] . . . . . . . . . 72 7.2. Espectrograma de un sonido. [46] . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.3. Dominio del tiempo vs dominio de la frecuencia en una onda. [51] . . . . . . . 74 7.4. Escala de Mel. Elaboraci´on propia. . . . . . . . . . . . . . . . . . . . . . . . . 75 7.5. Filtros de la escala de Mel. [54] . . . . . . . . . . . . . . . . . . . . . . . . . . 75 XIV ´ INDICE DE TABLAS ´ Indice de Tablas 2.1. Resumen tareas del primer prototipo. . . . . . . . . . . . . . . . . . . . . . . 6 2.2. Resumen tareas del segundo prototipo. . . . . . . . . . . . . . . . . . . . . . . 6 2.3. Resumen tareas del tercer prototipo. . . . . . . . . . . . . . . . . . . . . . . . 6 2.4. Resumen tareas del cuarto prototipo. . . . . . . . . . . . . . . . . . . . . . . . 7 2.5. Resumen tareas del quinto prototipo. . . . . . . . . . . . . . . . . . . . . . . . 7 2.6. Resumen tareas del sexto prototipo. . . . . . . . . . . . . . . . . . . . . . . . 7 2.7. Resumen tareas de la redacci´on del TFG. . . . . . . . . . . . . . . . . . . . . 8 2.8. Nivel de riesgo en funci´on de la tupla probabilidad-impacto. . . . . . . . . . . 11 2.9. Riesgo HW.1. Rotura de GPU. . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.10. Riesgo HW.2. Rotura de C´amara. . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.11. Riesgo D.1. Datos err´oneos/insuficientes. . . . . . . . . . . . . . . . . . . . . . 12 2.12. Riesgo D.2. Sesgo en los datos. . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.13. Riesgo SE.1. Seguridad de los sistemas. . . . . . . . . . . . . . . . . . . . . . 12 2.14. Riesgo SO.1. Uso incorrecto de herramientas Software. . . . . . . . . . . . . . 13 2.15. Riesgo P.1. Enfermedad del personal. . . . . . . . . . . . . . . . . . . . . . . . 13 2.16. Riesgo D.3. Datos no relevantes. . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.1. Distintos modelos YOLOv8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.1. Tama˜no de entrada de las im´agenes en los modelos EfficientNet. . . . . . . . 53 XV ´ INDICE DE TABLAS 6.2. Estructura del modelo EfficientNetB0. . . . . . . . . . . . . . . . . . . . . . . 53 6.3. Anchura de los modelos EfficientNet. . . . . . . . . . . . . . . . . . . . . . . . 53 6.4. Estructura del modelo MobileNet. . . . . . . . . . . . . . . . . . . . . . . . . 54 6.5. Estructura del bloque bottleneck de las MobileNets. . . . . . . . . . . . . . . 55 XVI ´ Indice de Ecuaciones ´ Indice de Ecuaciones 5.1. Actualizaci´on de pesos en redes neuronales . . . . . . . . . . . . . . . . . . . . 26 5.2. Operaci´on convolucional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.3. Actualizaci´on de offset horizontal . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4. Actualizaci´on de offset vertical . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.5. Generalizaci´on de la operaci´on convolucional . . . . . . . . . . . . . . . . . . 27 5.6. Pooling ....................................... 28 5.7. Relu ......................................... 29 5.8. LeakyRelu ..................................... 29 5.9. Tanh......................................... 30 5.10.Softplus ....................................... 30 5.11.Funci´ondegrado2................................. 30 5.12.Funci´ondegrado3................................. 31 5.13. Salida de una red residual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.14.F´ormuladelresiduo ................................ 32 5.15.Salidaderedesdensas ............................... 32 5.16. Separaci´on caracter´ısticas en redes CSP . . . . . . . . . . . . . . . . . . . . . 33 5.17.SalidaredesCSP.................................. 33 5.18.Mish......................................... 33 5.19.Mish2........................................ 33 XVII ´ Indice de Ecuaciones 5.20. Numero de salidas YOLOv8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.21.IOU ......................................... 40 6.1. Balanceo de par´ametros EfficientNet . . . . . . . . . . . . . . . . . . . . . . . 52 6.2. Valores de los par´ametros EfficientNet . . . . . . . . . . . . . . . . . . . . . . 52 6.3. Escalado de valores de los par´ametros EfficientNet . . . . . . . . . . . . . . . 52 6.4. F´ormularelu6.................................... 55 6.5. Operaci´on de Similitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.6. Operaci´on de Auto-Atenci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 7.1. Transformada Discreta de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.2. HerciosaMel.................................... 74 7.3. MelaHercios.................................... 75 7.4. Separaci´on filtros de Mel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 XVIII CAP´ ITULO 1. INTRODUCCI ´ ON Cap´ıtulo 1 Introducci´on 1.1. Contexto y motivaci´on Los avances tecnol´ogicos realizados en los ´ultimos a˜nos requieren de una gran cantidad de energ´ıa el´ectrica para llevar a cabo sus distintas funciones. Esta gran demanda de energ´ıa el´ectrica, sumada a las limitaciones de las centrales el´ectricas convencionales por su impacto medioambiental, su emisi´on de gases de efecto invernadero, y el uso de fuentes de energ´ıa finitas no renovables, hacen que sea necesario el uso de otras fuentes de energ´ıa renovables y respetuosas con el medioambiente. La energ´ıa e´olica es una de esas fuentes renovables y sostenibles. No obstante, los parques e´olicos constituyen un gran peligro para las aves aut´octonas de las inmediaciones, pues pueden verse afectadas por los molinos. Con el objetivo de proteger tanto la vida como el h´abitat de las aves, es necesario hacer un estudio previo a la instalaci´on de un parque e´olico en una localizaci´on, identificando y clasificando las aves de las inmediaciones para evaluar el potencial riesgo que constituye el parque e´olico para las aves. Estas tareas ser´ıan muy complicadas llevarlas a cabo con las aproximaciones algor´ıtmicas tradicionales. No obstante, con la revoluci´on que est´an produciendo las distintas t´ecnicas de aprendizaje autom´atico (especialmente el aprendizaje profundo) que se est´an desarrollando en los ´ultimos a˜nos, junto con las altas capacidades de c´omputo, es posible entrenar una serie de modelos de inteligencia artificial para llevar a cabo estas tareas con una mayor tasa de acierto y con mayor eficiencia. Este proyecto es la continuaci´on de las pr´acticas curriculares realizadas anteriormente. En dichas pr´acticas, se entren´o un modelo YOLOv5 y otro YOLOv8 y se hicieron pruebas de distintos modelos de visi´on artificial aplicados a la clasificaci´on de aves. Los modelos y algoritmos desarrollados en este proyecto son distintos a los desarrollados en las pr´acticas. En este Trabajo de fin de Grado (TFG) se van a dise˜nar e implementar 3 algoritmos distintos para poder identificar y clasificar las aves, dos de ellos trabajar´an con las im´agenes 1 1.2. OBJETIVOS y v´ıdeos de las aves, y el otro ser´a el encargado de clasificar las aves por su sonido. Se explicar´a el preprocesamiento realizado a los datos, as´ı como la justificaci´on de los modelos usados y entrenados. Tambi´en se incluir´an los resultados y las conclusiones obtenidas. Con el fin de adquirir datos para entrenar el modelo de identificaci´on de aves, el proyecto ha adquirido una c´amara de alta calidad (AXIS Q6225-LE PTZ Camera [1]). Esta c´amara permite la adquisici´on de v´ıdeos a una resoluci´on de 1920x1080, con zoom ´optico x31. De la misma manera, esta c´amara tambi´en permite la obtenci´on y grabaci´on del sonido de las aves para su posterior clasificaci´on. 1.2. Objetivos 1.2.1. Objetivo General Este TFG tiene como objetivo general la implementaci´on de 3 algoritmos, todos basados en aprendizaje autom´atico supervisado, uno para la segmentaci´on de aves en im´agenes, otro para la clasificaci´on de las aves mediante su imagen y otro para la clasificaci´on de aves mediante el sonido que producen. Este proyecto y los modelos desarrollados en el mismo tienen como fin ser utilizados en la evaluaci´on del riesgo que constituye para las aves la instalaci´on de un parque e´olico. 1.2.2. Objetivos Espec´ıficos Para alcanzar el objetivo general, se abordan los siguientes objetivos espec´ıficos: 1. Obtenci´on y preprocesamiento de datos: Para entrenar todos los modelos ser´a necesario obtener datos de buena calidad que sean ´utiles y aporten informaci´on relevante para describir el concepto objetivo. 2. Aprendizaje de tecnolog´ıas y frameworks de aprendizaje autom´atico: Se utilizar´an distintas librer´ıas de Python especializadas en el aprendizaje autom´atico, entre las que se encuentran Tensorflow, Keras, Opencv y Pytorch. 3. Investigaci´on, implementaci´on y elecci´on de modelos para la segmentaci´on de im´agenes: La segmentaci´on de objetos en im´agenes es una funcionalidad b´asica del algoritmo de visi´on artificial a implementar. Se har´a una b´usqueda de los modelos m´as usados y se elegir´a e implementar´a el que mejor satisfaga las necesidades del proyecto. 4. Investigaci´on, implementaci´on y elecci´on de modelos para la clasificaci´on de im´agenes: Al igual que con la segmentaci´on de objetos, existen muchos modelos que pueden resultar ´utiles para la clasificaci´on de im´agenes. Se estudiar´an e implementar´an los que mejores resultados ofrezcan. 2 CAP´ ITULO 1. INTRODUCCI ´ ON 5. Investigaci´on de preprocesamiento de ondas de sonido y algoritmos de aprendizaje autom´atico para sonidos: Ser´a necesario hacer un preprocesamiento muy espec´ıfico a las ondas de los sonidos de las aves para poder entrenar algoritmos de inteligencia artificial. 6. Uso conjunto de los modelos desarrollados: Ser´a necesario hacer un uso conjunto de los modelos y algoritmos desarrollados para obtener resultados ´optimos. 1.3. Organizaci´on y estructura de la memoria La memoria de este TFG presenta la siguiente estructura: Cap´ıtulo 1. Introducci´on: Definici´on del problema a resolver, su contexto y los objetivos del proyecto. Cap´ıtulo 2. Planificaci´on: Explicaci´on de la planificaci´on realizada en este proyecto, as´ı como la descomposici´on, duraci´on y definici´on de las tareas realizadas. Tambi´en se define la metodolog´ıa de planificaci´on, y se realiza un an´alisis de riesgos del proyecto. Cap´ıtulo 3. Estado del arte: Breve estado del arte de la identificaci´on y clasificaci´on de aves. Cap´ıtulo 4. Obtenci´on de datos: Explicaci´on del origen de los datos utilizados en este TFG para el entrenamiento de los distintos modelos entrenados, junto con un resumen ejecutivo de todos los conjuntos de datos. Cap´ıtulo 5. Identificaci´on de aves por imagen: Base te´orica de la segmentaci´on de objetos con el modelo YOLOv8, seguido de la explicaci´on de la implementaci´on realizada en este proyecto. Cap´ıtulo 6. Clasificaci´on de aves por imagen: Explicaci´on de los 2 modelos utilizados para la clasificaci´on de im´agenes (EfficientNet y Visual Transformers), as´ı como su aplicaci´on en este proyecto. Cap´ıtulo 7. Clasificaci´on de aves por sonido: Explicaci´on te´orica de la extracci´on de caracter´ısticas de los sonidos, junto con la implementaci´on desarrollada en este TFG. Cap´ıtulo 8. Conclusiones: Conclusiones obtenidas en el proyecto. Cap´ıtulo 9. Trabajo futuro: Futuro trabajo a realizar para mejorar los resultados del proyecto. 3 1.3. ORGANIZACI ´ ON Y ESTRUCTURA DE LA MEMORIA 4 CAP´ ITULO 2. PLANIFICACI ´ ON Cap´ıtulo 2 Planificaci´on 2.1. M´etodo de planificaci´on Debido a las caracter´ısticas del proyecto, as´ı como los objetivos generales y espec´ıficos del mismo, se ha elegido como m´etodo de planificaci´on una aproximaci´on basada en prototipos incrementales. Esta aproximaci´on se basa en la implementaci´on de sucesivos prototipos de modo que la implementaci´on de un prototipo est´e basado en todos los anteriores. El intervalo de tiempo escogido para desarrollar un nuevo prototipo mejorando e implementando nuevas caracter´ısticas ser´a aproximadamente de 2-3 semanas. El tiempo aproximado que se dedicar´a al proyecto ser´a de 40 horas semanales empezando la semana del 25/03/2024. Debido a que el proyecto es extenso con 3 dominios distintos de trabajo bien diferenciados (segmentaci´on de objetos en im´agenes, clasificaci´on de im´agenes y clasificaci´on de sonido) en cada uno de esos per´ıodos de aproximadamente 2-3 semanas se implementar´a un prototipo perteneciente a uno de esos dominios. Como el desarrollo del proyecto empieza el 25/03/2024, inicialmente se estima que se podr´an desarrollar 5-6 prototipos incrementales. Los primeros estar´an relacionados con la segmentaci´on de las aves en las im´agenes, a continuaci´on se desarrollar´an los relacionados con la clasificaci´on de im´agenes, y por ´ultimo los de clasificaci´on de sonido. 2.2. Descripci´on y duraci´on de las tareas Para garantizar que se consiguen todos los objetivos del proyecto, dentro de cada per´ıodo de desarrollo de cada prototipo se ha descompuesto y definido cada una de las tareas y actividades. Las actividades desarrolladas son tareas relacionadas con el estudio y documentaci´on (funcionamiento de modelos, entornos y bibliotecas de programaci´on, etc.), desarrollo de tareas espec´ıficas de implementaci´on del prototipo, y redacci´on de TFG. 5 2.4. RIESGOS Tabla 2.10: Riesgo HW.2. Rotura de C´amara. C´odigo de Riesgo HW.2 Nombre del Riesgo Rotura de C´amara. Categor´ıa Hardware Probabilidad Baja Impacto Alto Mitigaci´on Colocar la c´amara en lugares seguros y seguir todas las indicaciones del fabricante. Grado de riesgo Medio Tabla 2.11: Riesgo D.1. Datos err´oneos/insuficientes. C´odigo de Riesgo D.1 Nombre del Riesgo Datos err´oneos/insuficientes. Categor´ıa Datos Probabilidad Baja Impacto Alto Mitigaci´on Utilizar t´ecnicas de miner´ıa de datos para limpiar los datos y hacer el preprocesamiento ´optimo. Grado de riesgo Medio Tabla 2.12: Riesgo D.2. Sesgo en los datos. C´odigo de Riesgo D.2 Nombre del Riesgo Bias y sesgo en los datos. Categor´ıa Datos Probabilidad Baja Impacto Alto Mitigaci´on Utilizar todas las herramientas disponibles para evitar el sesgo, y hacer disjuntos los conjuntos de datos para test/entrenar/validar. Grado de riesgo Medio Tabla 2.13: Riesgo SE.1. Seguridad de los sistemas. C´odigo de Riesgo SE.1 Nombre del Riesgo Seguridad de los sistemas. Categor´ıa Seguridad Probabilidad Baja Impacto Alto Mitigaci´on Hacer uso de cortafuegos, tener actualizados todos los sistemas y evitar direcciones web sospechosas. Grado de riesgo Medio 12 CAP´ ITULO 2. PLANIFICACI ´ ON Tabla 2.14: Riesgo SO.1. Uso incorrecto de herramientas Software. C´odigo de Riesgo SO.1 Nombre del Riesgo Utilizaci´on incorrecta de las herramientas Software. Categor´ıa Software Probabilidad Baja Impacto Medio Mitigaci´on Usar la documentaci´on oficial de los productos usados y estudio previo de los mismos para su uso ´optimo. Grado de riesgo Bajo Tabla 2.15: Riesgo P.1. Enfermedad del personal. C´odigo de Riesgo P.1 Nombre del Riesgo Enfermedad del personal. Categor´ıa Personal Probabilidad Baja Impacto Medio Mitigaci´on Evitar situaciones peligrosas para el personal que desarrolla el proyecto para evitar retrasos. Grado de riesgo Bajo Tabla 2.16: Riesgo D.3. Datos no relevantes. C´odigo de Riesgo D.3 Nombre del Riesgo Datos no relevantes. Categor´ıa Datos Probabilidad Media Impacto Alto Mitigaci´on Utilizar los mejores modelos para la extracci´on de informaci´on de los datos. Grado de riesgo Alto El riesgo que se ha materializado en este proyecto ha sido el D.3, en el dominio de clasificaci´on de im´agenes, debido a la baja resoluci´on de estas. Se ha mitigado al m´aximo posible usando t´ecnicas de aumentaci´on de datos, as´ı como uso de distintos modelos y algoritmos. La materializaci´on de este riesgo no ha supuesto ning´un retraso, ´unicamente ha afectado a los resultados de los modelos. 13 2.4. RIESGOS 14 CAP´ ITULO 3. ESTADO DEL ARTE Cap´ıtulo 3 Estado del arte En este cap´ıtulo se procede a presentar las principales t´ecnicas y m´etodos existentes hasta Junio de 2024 para identificar y clasificar aves. Principalmente hay 3 aproximaciones: radares, im´agenes y sonidos. Las dos ´ultimas han experimentado cambios importantes debido a las t´ecnicas de aprendizaje autom´atico desarrolladas en los ´ultimos a˜nos. 3.1. Clasificaci´on de aves 3.1.1. Sistemas de radares El funcionamiento base de este m´etodo consiste en la instalaci´on de radares metereol´ogicos y radares de vigilancia en aviones que vuelen a bajas altitudes (no m´as de 2 km) para detectar las aves. En el art´ıculo [5] se explica que la raz´on de volar a baja altitud se debe a que la probabilidad de avistar aves por encima de los 2 km de altitud es realmente baja. Aqu´ı se encuentra la principal desventaja de este m´etodo, y es que se necesitar´ıa una gran cantidad de aviones volando a bajas altitudes para poder detectar aves, siendo un gasto econ´omico enorme. Adem´as, los aviones comerciales no vuelan a esas altitudes (´unicamente al despegar y aterrizar), as´ı que habr´ıa que usar aviones de car´acter militar. Un art´ıculo que explica m´as expl´ıcitamente el uso del radar para la clasificaci´on de aves es [6]. 3.1.2. Funcionamiento del radar Otro art´ıculo en el que tambi´en se definen los radares para la clasificaci´on de aves haciendo una explicaci´on del funcionamiento del radar es [7]. El radar es una tecnolog´ıa que se desarroll´o en los a˜nos 30 del siglo pasado, y desde entonces se ha ido optimizando y actualizando. Su funcionamiento base consiste en emitir pulsos de ondas electromagn´eticas en una direcci´on. Las ondas al llegar al objeto (aves en este caso) rebotan y se detectan con 15 3.1. CLASIFICACI ´ ON DE AVES una antena. Dependiendo de distintas condiciones f´ısicas del objeto en el que la onda ha rebotado (forma, tama˜no, velocidad, etc.) la onda rebotada tendr´a unas caracter´ısticas u otras. Aunque con esta tecnolog´ıa te´oricamente pueda ser posible reconocer y clasificar aves, las restricciones para llevar a cabo los experimentos son demasiado exigentes. 3.1.3. Redes convolucionales Las redes convolucionales (CNN) son un subconjunto de las redes neuronales artificiales (ANN). Este tipo de redes realizan una serie de operaciones (convoluciones) que resultan de gran utilidad para el procesamiento de im´agenes, pues son capaces de procesar la informaci´on espacial que tiene cada uno de los p´ıxeles. El art´ıculo [8] hace una explicaci´on detallada del funcionamiento de estas redes a nivel te´orico, sin aplicarlo a las aves. Otros autores tambi´en han escrito art´ıculos con conclusiones y m´etodos similares [9]. Otras operaciones que realizan estas redes son operaciones de pooling, explicadas en el art´ıculo [10], y funciones de activaci´on, definidas en el art´ıculo [11]. La idea principal subyacente tras estas redes consiste en crear una tuber´ıa de procesamiento de capas convolucionales en serie, de forma que las salidas (llamadas caracter´ısticas) de la capa nsean la entrada de la capa n+1. Esta tuber´ıa de procesamiento se encarga de hacer el proceso llamado extracci´on de caracter´ısticas, que es el proceso en el cual se extraen caracter´ısticas espec´ıficas de la imagen. Posteriormente esas caracter´ısticas se hacen pasar por una red fully connected para clasificar la imagen. En la Figura 3.1 se describe un ejemplo de una red convolucional con arquitectura VGG16, la arquitectura CNN m´as sencilla. Figura 3.1: Ejemplo de funcionamiento de una CNN. [12] No obstante, a pesar de que las CNN son capaces de extraer la informaci´on espacial de cada p´ıxel, presentan algunas destacables desventajas, como la alta capacidad de c´omputo necesaria para entrenarlas y la gran cantidad de im´agenes necesarias para poder generalizar el concepto objetivo. Con fin de paliar estos problemas se desarrollaron otros tipos de redes como las redes residuales (eliminan el problema de la degradaci´on del gradiente y facilita el aprendizaje) [13] o redes densas (combinan caracter´ısticas de distintas capas facilitando el aprendizaje [14]). T´ecnicas de aumentaci´on de datos para obtener un mayor n´umero de im´agenes significativas que aporten informaci´on para generalizar el concepto tambi´en son t´ecnicas muy com´unmente utilizadas en este ´ambito [15]. En el art´ıculo [16] se hace un resumen de las desventajas de las CNN, as´ı como de posibles soluciones. La CNN que a fecha de Junio de 2024 mejores resultados est´a ofreciendo en dominios de distinta ´ındole, 16 CAP´ ITULO 3. ESTADO DEL ARTE incluyendo la clasificaci´on de aves, son las EfficientNet [17]. Es un tipo de redes en las que se ha conseguido disminuir dr´asticamente el n´umero de par´ametros necesarios a aprender, siendo muy eficientes. Tambi´en resuelve problemas muy recurrentes en todo el campo del aprendizaje profundo, como el problema de la degradaci´on, presente en todos los modelos definidos hasta la fecha. El art´ıculo en el que se present´o por primera vez las EfficientNet es [17], definiendo los problemas que resuelve y las ventajas que presenta. Este tipo de redes, sus ventajas y situaciones bajo las que se usan se definir´an en el Cap´ıtulo 6. 3.1.4. Visual Transformers Los Visual Transformers son una modificaci´on de los transformers desarrollados en 2017 [18]. Los transformers inicialmente fueron desarrollados para ser utilizados en el ´ambito de las series temporales. Las series temporales son un tipo de datos en el que el orden de los datos de la secuencia es relevante, y cada dato en esa secuencia se procesa uno tras otro (secuencialmente). Este tipo de redes fueron una gran revoluci´on y son las m´as usadas en campos como el procesamiento de lenguaje natural o IA generativa. La definici´on de los transformers, la revoluci´on de los mecanismos de Auto-Atenci´on, su estructura e implementaci´on se encuentran en el art´ıculo [18]. La caracter´ıstica principal de las redes recurrentes es que la salida del dato nde una secuencia es la entrada de la red junto con el dato n+1. En la Figura 3.2 se ve una retropropagaci´on de una neurona recurrente en el tiempo, es decir, la neurona es la misma en distintos instantes de tiempo. Las entradas son Xt−3, Xt−2, Xt−1 yXt, mientras que las salidas son yt−3, yt−2, yt−1,yt. Se puede apreciar que la salida de un instante cualquiera es la entrada del instante siguiente. Figura 3.2: Ejemplo de una red neuronal recurrente procesando una secuencia. [19] Los transformers se caracterizan por el uso de mecanimos de Auto-atenci´on. Este mecanismo se basa en codificar el dato teniendo en cuenta 3 caracter´ısticas del dato. En el ´ambito del lenguaje natural, estas 3 caracter´ısticas son: la palabra, el orden de palabras y el contexto. Esto se puede extrapolar a otros dominios donde los datos no sean palabras, como 17 3.1. CLASIFICACI ´ ON DE AVES el dominio de las im´agenes. Toda esta informaci´on est´a definida en el art´ıculo [20]. La trasformaci´on que hay que realizar para que los transformers puedan clasificar im´agenes es significativa, teniendo que dividir las im´agenes en una serie de parches y hacer esas operaciones de Auto-atenci´on en los p´ıxeles de cada parche. El art´ıculo en el que se mencionaron por primera vez los ViT y su implementaci´on es [21]. En el cap´ıtulo 6 se tratar´a m´as a fondo tanto la base te´orica de este modelo como su implementaci´on. 3.1.5. Clasificaci´on de sonidos El sonido que las aves emiten, junto con su forma, tama˜no y colores, es una de las caracter´ısticas m´as distintivas de estos seres vivos. No obstante, primero es necesario hacer un preprocesamiento muy exhaustivo y espec´ıfico de dichos sonidos para obtener caracter´ısticas que puedan servir para entrenar un modelo de aprendizaje autom´atico que pueda clasificar los sonidos. El sonido es una onda f´ısica producida por las diferencias de presi´on en el aire. Hay muchas maneras distintas de procesar los sonidos para entrenar modelos de aprendizaje autom´atico. No obstante, dependiendo del dominio del problema, unas caracter´ısticas aportar´an m´as informaci´on que otras, mejorando el aprendizaje del modelo. De nuevo, este proceso de extracci´on de caracter´ısticas de sonidos es un proceso de prueba y error. Las caracter´ısticas que m´as com´unmente se utilizan son los espectrogramas y los cepstrums, como por ejemplo los Coeficientes Cepstrales de la frecuencia de Mel (MFCC), Coeficientes Cepstrales de la Frecuencia Gammatone (GTCC) o los Coeficientes Cepstrales de Predicci´on Lineal (LPCC). En los art´ıculos [22], [23] se hace un resumen de los cepstrum m´as usados hasta la fecha para la clasificaci´on de aves. Dependiendo de las caracter´ısticas que se extraigan, as´ı como del procesamiento posterior que se les realicen, se entrenar´an unos modelos u otros. Las caracter´ısticas extra´ıdas son matrices de 2 dimensiones, es decir que se pueden interpretar como im´agenes con un solo canal de color. En el caso de que tras obtener las caracter´ısticas, se haga un aplanado de estas (se transforma la matriz de 2 dimensiones en un vector de 1 dimensi´on apilando horizontalmente las filas de la matriz), se pueden entrenar modelos como m´aquinas de vector soporte, ´arboles de decisi´on como random forest o redes fully connected para generalizar el concepto. En el art´ıculo [22] se hace uso de este m´etodo, usando una m´aquina de vector soporte para hacer la clasificaci´on. Si por el contrario no se hace el aplanado, se utilizan t´ecnicas de visi´on artificial, normalmente basadas en CNN como las EfficientNet o basadas en transformers como los Visual Transformers. Para seleccionar un m´etodo u otro, es crucial tener en cuenta primero el n´umero de caracter´ısticas extra´ıdas de los sonidos, y segundo el n´umero de datos disponibles para entrenar los algoritmos. En caso de tener pocos datos con pocas caracter´ısticas se recomienda el uso del primer m´etodo, ya que se usan modelos m´as simples con menos par´ametros a aprender, mientras que, si se disponen de muchos datos con muchas caracter´ısticas, los modelos de visi´on artificial suelen presentar mejores resultados. 18 CAP´ ITULO 3. ESTADO DEL ARTE 3.2. Segmentaci´on de objetos en im´agenes 3.2.1. Segmentaci´on de im´agenes con CNN En el apartado anterior, se han definido las redes convolucionales para resolver problemas de clasificaci´on, es decir, dar una imagen como entrada a la red para que esta la clasifique entre 1 de las nclases para las que fue entrenada. Sin embargo, estas redes ofrecen m´as funcionalidades en otros dominios, como la segmentaci´on de objetos en im´agenes. La segmentaci´on de objetos en im´agenes consiste en, dada una imagen con 1 o m´as objetos, identificar los nobjetos existentes en dicha imagen. Los objetos en la imagen pueden pertenecer a distintas clases, aunque en este caso ser´an solo aves. En la Figura 3.3 se puede ver un ejemplo de una imagen habiendo segmentado todas las aves. Los modelos de segmentaci´on de im´agenes son capaces tanto de segmentar los objetos en una imagen, como de clasificarlos. Otra opci´on es en un primer paso segmentar todos los objetos, y luego otro modelo es entrenado para clasificarlos. En este proyecto se seguir´a la segunda aproximaci´on. Figura 3.3: Ejemplo de segmentaci´on de aves en una imagen usando CNN. Elaboraci´on propia. Para hacer segmentaci´on de objetos en im´agenes, el modelo m´as utilizado y el que mejores resultados presenta es el modelo YOLO, que est´a basado en CNN. En el Cap´ıtulo 5 se detallar´a el funcionamiento de este modelo, as´ı como su entrenamiento para la segmentaci´on de aves como en la Figura 3.3. En el art´ıculo [24] se hace uso del modelo YOLO para la segmentaci´on de aves en im´agenes. 19 3.3. SEGMENTACI ´ ON POR COLORES 3.3. Segmentaci´on por colores Con fin de segmentar los objetos contenidos en una imagen, otro m´etodo extensamente utilizado antes de la llegada de las redes neuronales fue la segmentaci´on por colores. El procedimiento de esta t´ecnica empieza por eliminar el fondo de la imagen (se puede interpretar como ruido). Los colores de los bordes de la imagen se escanean y se hace un ranking seg´un la frecuencia de aparaci´on de cada color en un histograma. Se establece un umbral y una serie de heur´ısticas para definir qu´e colores son fondo de la imagen y cu´ales no. A continuaci´on se recorren todos los p´ıxeles de la imagen comparando su color con la informaci´on ofrecida por el histograma, siendo considerado fondo u objeto en cada caso. En caso de que la imagen est´e en blanco y negro, habr´a un solo histograma. Si la imagen tiene 3 canales de color (RGB), tendr´a un histograma por cada canal. El paso de seleccionar el umbral a partir del cual unos colores se consideran fondo y otros no, es un proceso iterativo de prueba y error, que depende del dominio y caracter´ısticas de las im´agenes. En el art´ıculo [25] se detalla el proceso seguido para hacer la segmentaci´on por colores explicada anteriormente. Aunque la segmentaci´on por colores es un m´etodo que requiere poca capacidad de c´ompu- to, es una t´ecnica que presenta numerosas desventajas. Entre ellas cabe destacar que dependiendo de las caracter´ısiticas de la imagen, puede que el fondo no sea muy diferenciable de los objetos. En el caso espec´ıfico de las aves, en caso de que el fondo de la imagen no presente un color uniforme (si hay nubes, distinta luminosidad u otros factores que afecten a la diferencia de colores entre las aves y el fondo) la tasa de acierto de este modelo para segmentar aves se reduce dr´asticamente. Como las redes neuronales resuelven este problema aprendiendo este tipo de peculiaridades (las CNN aprenden a reconocer los objetos sin importar los colores del fondo), las redes neuronales han sustituido a esta t´ecnica en los ´ultimos a˜nos. 20 CAP´ ITULO 4. OBTENCI ´ ON DE DATOS Cap´ıtulo 4 Obtenci´on de datos Los datos son la base de todos los algoritmos de aprendizaje autom´atico supervisado. Si no se dispone de unos datos de calidad, sin sesgo y relevantes para el concepto, no importa los modelos que se usen ni las caracter´ısticas del hardware con el que se entrenen los algoritmos. Los datos y el tratamiento de ellos es una fase clave en cualquier proyecto donde se use aprendizaje autom´atico. En este cap´ıtulo se procede a indicar la fuente de los datos, sus caracter´ısticas y forma de extracci´on. Se har´a tambi´en un resumen ejecutivo de cada dataset, y se dejar´a para posteriores cap´ıtulos el preprocesamiento realizado, as´ı como su uso. 4.1. Dataset para segmentaci´on de im´agenes El primero de los dataset necesarios para entrenar los modelos que conforman este proyec- to es el dataset con im´agenes donde se han segmentado todas las aves. Dado que el objetivo final del proyecto es poder utilizar todos estos modelos con los v´ıdeos, im´agenes y audios extra´ıdos con la c´amara AXIS Q6225-LE PTZ Camera [1], se han obtenido im´agenes con dicha c´amara, y a continuaci´on se han segmentado las aves en esos fotogramas. El control, puesta a punto y funcionamiento de la c´amara no concierne a este proyecto, as´ı que simplemente se va a hacer uso de la informaci´on que ofrece. En la Figura 4.1 se puede ver un ejemplo de una imagen extra´ıda por la c´amara. 21 5.1. BASE TE ´ ORICA iterando por la imagen cambiando de posici´on. Ese cambio de posici´on viene definido por su stride (distinto al de la operaci´on de convoluci´on). La idea que hay detr´as de esta operaci´on es reducir la dimensionalidad de las caracter´ısticas, eligiendo el valor de un p´ıxel de los 9 (3x3) de una regi´on de la caracter´ıstica, pero perdiendo la menor cantidad de informaci´on posible. Hay distintas maneras de hacer esta elecci´on, aunque la m´as com´un es Max-pooling, que consiste en elegir el valor m´aximo. La operaci´on de Max-pooling viene definida por la Ecuaci´on 5.6, donde Sij es el conjunto de valores de la imagen centrados en los ´ındices ij. MaxPooling(I)(i, j) = m´ax (p,q)∈Si,j I(p, q) (5.6) Padding Si se estudia el n´umero de veces que cada p´ıxel de la imagen es procesado por un filtro, el resultado es que los p´ıxeles del centro de la imagen son procesados m´as veces que los de los bordes. De esta manera, los p´ıxeles del centro de la imagen tienen m´as peso a la hora de clasificar im´agenes. Para paliar este problema, se cre´o el padding, que consiste en aumentar de tama˜no la imagen a˜nadiendo m´as p´ıxeles en el borde de la imagen. Hay distintas maneras de hacer esta operaci´on. Por ejemplo, se puede hacer una interpolaci´on en base a los p´ıxeles cercanos del borde, pero lo m´as com´un es a˜nadir esos p´ıxeles con valor 0. Esta operaci´on tambi´en se usa cuando es necesario ampliar el tama˜no de la imagen, ya que siempre que se aplica una operaci´on de convoluci´on o de pooling se disminuye el tama˜no de la caracter´ıstica. Capa de clasificaci´on Al proceso de aplicar a una imagen todas las capas convolucionales de una red convolucional se le llama extracci´on de caracter´ısticas. Estas caracter´ısticas son las caracter´ısticas en las cuales se basar´a el modelo para hacer la clasificaci´on. Para realizar la clasificaci´on hay 2 formas de realizar la inferencia. La primera de ellas consiste en acoplar una red fully connected (funcionan con entradas de 1 dimensi´on) tras hacer un aplanado de las caracter´ısticas. Aplanar las caracter´ısticas consiste en convertirlas de 2 dimensiones a 1. La red fully connected en su capa de entrada tendr´a tantas neuronas como valores aplanados tengan las caracter´ısticas, y en la capa de salida tendr´a tantas neuronas como n´umero de clases. Se suele usar una funci´on softmax como funci´on de activaci´on de la ´ultima capa, ya que el recorrido de dicha funci´on es [0,1] y se pueden interpretar sus salidas como una distribuci´on de probabilidad. La segunda forma es incluir una ´ultima capa convolucional con tantos filtros como clases. Cada uno de esos filtros tendr´a el tama˜no de las caracter´ısticas de entrada a esa capa. De 28 CAP´ ITULO 5. IDENTIFICACI ´ ON DE AVES POR IMAGEN esta manera se obtendr´an tantas caracter´ısticas de salida como clases, y cada caracter´ıstica tendr´a un solo valor (al aplicar a una imagen de tama˜no NxN un filtro de tama˜no NxN se obtiene un solo valor), que tras aplicarles de nuevo la funci´on softmax, se interpretan como probabilidades de pertenencia a las clases. Funciones de activaci´on Los conceptos objetivos o funciones que las redes neuronales tratan de aproximar en la mayor´ıa de casos son funciones no lineales. Dado que las redes neuronales aplican operaciones lineales, te´oricamente ser´ıan incapaces de aproximar a la perfecci´on esas funciones no lineales. Por eso se aplican una serie de funciones no lineales a las funciones lineales de las redes neuronales para poder aproximar mejor el concepto. Esas funciones no lineales se llaman funciones de activaci´on, y se aplican siempre a la salida de cualquier capa de una red neuronal. Existen muchas funciones de activaci´on (softmax, tangente hiperb´olica, sigmoide, etc.) aunque las funciones de activaci´on m´as usadas en la actualidad son las de la familia relu. La f´ormula de la funci´on de activaci´on relu es la de la Ecuacion 5.7. La funci´on de activaci´on relu presenta una serie de desventajas, y es que cuando el valor es negativo, lo cambia por valor 0. El problema es que al realizar la propagaci´on del gradiente hacia las primeras capas, al ser valor 0, el gradiente se va haciendo cada vez m´as peque˜no hasta que es 0 y por tanto las primeras capas de la red no aprenden. A este problema se le conoce como evanescencia del gradiente. Relu(x) = m´ax(0, x) (5.7) Para resolver ese problema, se usa la funci´on de activaci´on leaky relu, cuya f´ormula es la representada en la Ecuaci´on 5.8, donde el valor αes un valor cercano a 0 como 0,01 para evitar el problema de la evanescencia del gradiente. LeakyReLU(x) = (xsi x > 0 αx si x≤0(5.8) Entre otras funciones de activaci´on tambi´en muy utilizadas est´an la tanh y la softplus, o tambi´en llamada softmax, cuyas ecuaciones se representan en la Ecuaci´on 5.9 y 5.10 respectivamente. La salida de la funci´on tanh est´a contenida en el intervalo [-1,1], mientras que la salida de la funci´on softmax est´a en el intervalo [0,1]. Debido a que la funci´on softmax tiene su salida en ese intervalo, esta se interpreta como una distribuci´on de probabilidad. Esto es muy com´un en las salidas de las redes fully connected, donde se ponen tantas neuronas en la capa de salida como clases. Las salidas se consideran probabilidades de pertenencia a las clases, aunque no sean formalmente una distribuci´on de probabilidad, pues la suma de todas ellas no siempre es 1. 29 5.1. BASE TE ´ ORICA tanh(x) = ex−e−x ex+e−x(5.9) Softplus(x) = log(1 + ex) (5.10) 5.1.3. Capas de transici´on Despu´es de la aplicaci´on de una operaci´on de convoluci´on, se hace siempre un pooling (en cualquiera de sus variantes aunque el m´as com´un es Max-pooling) para reducir la dimensionalidad (menor capacidad de c´omputo requerida) perdiendo la m´ınima cantidad de informaci´on posible. A continuaci´on se aplica una funci´on de activaci´on, que suele ser alguna de la familia relu (relu, leaky relu, mish, etc). A ese conjunto de 3 operaciones (convoluci´on + pooling + funci´on de activaci´on) se les agrupa como una sola capa y se llama capa de transici´on. Es posible que existan otras operaciones en estas capas, como el padding, la normalizaci´on (escalar los valores de los p´ıxeles) o el downsampling/upsampling. El downsampling/upsampling consiste en disminuir/aumentar la resoluci´on de las caracter´ısticas. Esto se debe a que todas las operaciones de convoluci´on, padding y pooling modifican la dimensionalidad de todas las caracter´ısticas. Debido a que existen ocasiones en las que es necesario concatenar o sumar caracter´ısticas, como en las capas CSP (Secci´on 5.1.6) o redes densas (Secci´on 5.1.5), es necesario que todos los elementos que se concatenen o sumen tengan las mismas dimensiones. 5.1.4. Redes residuales Problema de la degradaci´on Existe un problema en las redes neuronales conocido como problema de la degradaci´on, el cual consiste en que se ha comprobado experimentalmente que modelos m´as sencillos con menos capas y menos neuronas por capa pueden generalizar mejor que modelos m´as complejos. Para explicar este problema se expone el siguiente ejemplo. Se define la funci´on f(x) como el concepto, la funci´on que la red va a intentar aproximar. Como ejemplo, definimos esta funci´on de la siguiente forma (cabe destacar que en ning´un caso esta funci´on es conocida, solo se conocen pares (xn,yn) / f(xn) = yn): f(x) = ax2+bx +c(5.11) La funci´on en la Ecuaci´on 5.11 tiene grado 2, por tanto puede ser aproximada por funciones que tengan grado mayor o igual que dos. Por ejemplo la funci´on de la Ecuaci´on 5.12 que tiene grado 3 puede aproximar la funci´on de la Ecuaci´on 5.11 haciendo que: a=e,b=k, h=c yd=0. 30 CAP´ ITULO 5. IDENTIFICACI ´ ON DE AVES POR IMAGEN De esta manera en realidad lo que se est´a haciendo es anular el t´ermino que hace que la ecuaci´on 5.12 tenga grado 3 (el coeficiente del t´ermino c´ubico es 0) e igualar el resto de coeficientes. Esto significa que una funci´on g(x) de grado m puede aproximar otra funci´on f(x) de grado n, siendo m >=n, es decir que una funci´on de mayor grado puede aproximar una funci´on de menor grado. g(x) = dx3+ex2+kx +h(5.12) El tama˜no de una red es equivalente al grado de las funciones anteriores, no obstante el resultado anterior no es extrapolable a las redes. Se podr´ıa pensar que una red m´as grande (m´as capas y m´as neuronas) va a funcionar al menos igual de bien que otra red m´as peque˜na, pues se podr´ıan poner a 0 las primeras capas y transformarse en una red m´as simple (igual que se hizo con la funci´on del ejemplo anterior). No obstante, esto no es posible, ya que existen m´ultiples operaciones no lineales que se producen en la red que no se pueden anular. Aunque los pesos de las primeras capas se pongan a 0, las funciones no lineales convertir´an esos valores iguales a 0 en otros valores distintos, dando un significado y un sentido a cada capa y a cada neurona. Tras comprobaciones experimentales, se ha comprobado que redes excesivamente complejas y grandes en relaci´on al concepto y a los datos de entrada se comportan peor que redes m´as peque˜nas y sencillas. Adem´as, si una red tiene m´as par´ametros que optimizar, ser´an necesarios muchos m´as ejemplos para entrenar la red, y en caso de que esos datos no existan, habr´a un infraentrenamiento que se traducir´a en un comportamiento peor. Redes residuales Para solucionar el problema de la degradaci´on se crearon las redes residuales. Estas redes crean nuevas conexiones entre capas de neuronas pero no introducen nuevos par´ametros ni mayor coste computacional. La idea principal de la red residual es conectar la entrada de una capa a la salida de esa misma capa. La funci´on de una red residual se muestra en la Ecuaci´on 5.13. H(x) = F(x) + x(5.13) Donde H(x) es la salida de la capa residual, F(x) es el llamado residuo (’identity’ en ingl´es) yxes la entrada a la capa. Esto se puede extrapolar a la creaci´on de bloques residuales, formados por distintas capas donde la entrada del bloque est´a conectado a la salida del bloque, y entre medias hay capas de transici´on (Secci´on5.1.3). El t´ermino F(x) se le denomina residual porque las capas que son ’saltadas’ tratan de aprender el residuo, que despejado de la f´ormula 5.13 se obtiene: F(x) = H(x)−x(5.14) 31 5.1. BASE TE ´ ORICA En la Figura 5.1 se observa un bloque residual de dos capas con sus conexiones. Figura 5.1: Ejemplo de un bloque residual. [29] El uso de estas redes no solo soluciona el problema de la degradaci´on, sino que tambi´en ayuda a paliar el problema de la evanescencia del gradiente ya que crea mayores conexiones que pueden propagar m´as f´acilmente el gradiente hacia las primeras capas de la red. 5.1.5. Redes densas Las redes densas son otras redes muy utilizadas en las CNN. De nuevo, ayudan a paliar el problema de la evanescencia del gradiente, pues crean m´as conexiones entre capas secuenciales, haciendo m´as directa la propagaci´on del gradiente hacia las primeras capas. No obstante, su objetivo principal es ser capaz de disminuir el n´umero de par´ametros a aprender, pues hasta entonces, todas las redes convolucionales requer´ıan de una gran cantidad de par´ametros para aprender, adem´as de mucha capacidad de c´omputo. La idea es que todas las capas est´en conectadas con las capas posteriores. Para ello, la entrada de la capa nser´a la concatenaci´on de todas las caracter´ısticas provenientes de las n-1 capas anteriores, es decir: yn= F[y0, y1, . . . , yn−1] (5.15) Donde ynes la salida de la capa n, F es la aplicaci´on de las operaciones de la capa ny [a,b] representa la concatenaci´on de la tupla (a,b). Las salidas de las capas 0, 1, yn-1 son y0,y1yyn−1respectivamente. 32 CAP´ ITULO 5. IDENTIFICACI ´ ON DE AVES POR IMAGEN 5.1.6. Cross Space Partial Network Las Cross Space Partial Network (CSP) van en la misma l´ınea que las redes residuales y las redes densas, su objetivo final es hacer una combinaci´on m´as rica del gradiente facilitando el aprendizaje, a la vez que reducir el coste computacional reduciendo el n´umero de par´ametros a aprender. El funcionamiento de este tipo de redes se basa en dividir en 2 todas las caracter´ısticas de entrada a un bloque, es decir: xn= [x′ n, x′′ n] (5.16) Donde xnes la entrada de la capa n,x′ nes la primera partici´on que va a ser procesada por capas de transici´on contenidas en el bloque CSP, y x′′ nes la segunda partici´on que se concatenar´a a la salida de las capas de transici´on del bloque CSP. Posteriormente se volver´a a pasar ese resultado de la concatenaci´on por una capa de transici´on, obteniendo la salida del bloque CSP. La salida de un bloque CSP se define en la Ecuaci´on 5.17, donde ynes la salida de la capa n, T(x) es el resultado de aplicar una capa de transici´on a las caracter´ısticas contenidas en x, y [a,b] representa la concatenaci´on de la tupla (a,b). Las capas de transici´on aplicadas antes y despu´es de la concatenaci´on son distintas. yn= T([x′′ n,T′(x′ n)]) (5.17) En cuanto a las funciones de activaci´on que usan este tipo de redes, la m´as com´unmente utilizada es la funci´on mish. La f´ormula de esta funci´on se define en la Ecuaci´on 5.18, donde tanh y softplus son funciones de activaci´on explicadas en la Secci´on 5.1.2. mish(x) = x∗tanh(softplus(x)) (5.18) La ecuaci´on en 5.18 es equivalente a: mish(x) = x∗tanh(ln(1 + ex)) (5.19) La principal ventaja que tiene esta funci´on de activaci´on es que es una funci´on no mon´otona que es m´as suave que las otras de su familia (relu o leaky relu), propiciando un mejor aprendizaje. 33 5.1. BASE TE ´ ORICA 5.1.7. YOLOv8 El modelo YOLOv8 fue uno de los primeros modelos de segmentaci´on de objetos que present´o unos buenos resultados. El modelo YOLOv8 es un modelo complejo, donde se pueden diferenciar 3 grandes m´odulos: 1. Backbone: Se encarga de hacer la extracci´on de caracter´ısticas de las im´agenes de entrada. 2. Neck: Se encarga de hacer una combinaci´on de las caracter´ısticas extra´ıdas en el backbone para mejorar los resultados de la segmentaci´on. 3. Head: Hace las predicciones tanto de las clases como de los cuadros delimitadores de cada objeto. Backbone Figura 5.2: Backbone de YOLOv8. Elaboraci´on propia. El backbone que utiliza YOLOv8 es conocido como CSP-Darknet53. Este m´odulo est´a basado en la conjunci´on de capas densas (Secci´on 5.1.5), capas CSP (Secci´on 5.1.6) y redes residuales (Secci´on 5.1.4). En la Figura 5.2 se define el backbone del modelo YOLOv8. Cabe destacar que en las Figuras 5.3, 5.4a y 5.4b, la khace referencia al tama˜no del kernel, pal padding, sal stride, 34 CAP´ ITULO 5. IDENTIFICACI ´ ON DE AVES POR IMAGEN w,h a la anchura y altura de las caracter´ısticas y cal n´umero de canales. Los m´odulos que usa YOLOv8 en el backbone son: Conv: Consiste en la aplicaci´on de una capa convolucional y una operaci´on de Maxpooling. Despu´es hay una normalizaci´on de todos los valores y por ´ultimo se aplica la funci´on de activaci´on silu (de la familia relu). Cuello de botella: Consiste en 2 capas convolucionales, de forma que la primera capa convolucional usa pocos filtros, produciendo pocas caracter´ısticas. De esa forma la computaci´on es menos costosa en la siguiente capa, pues tiene menos par´ametros que aprender. La siguiente capa del m´odulo usa muchos m´as filtros, volviendo a usar muchas caracter´ısticas. Se puede usar este cuello de botella con una capa residual (Figura 5.3a) o sin ella (Figura 5.3b). C2f: Es una actualizaci´on del m´odulo C3 de versiones anteriores de YOLO. Presenta mejores resultados que su hom´ologo C3, y su arquitectura se presenta en la figura 5.4b. Cabe destacar que utiliza un m´oludo Conv, a continuaci´on se a˜nade un m´odulo denso (Secci´on 5.1.5) con capas de cuello de botella (Secci´on 5.3), y esa salida se pasa de nuevo por otro m´odulo Conv. SPPF: Es el ´ultimo m´odulo del backbone, y es una actualizaci´on del SPP aplicado en otros modelos YOLO. Aplica una serie de capas de Max-pooling con intenci´on de crear una salida con tama˜nos fijos. Usa la t´ecnica de CSP, es decir que antes de entrar en una capa de pooling hace una divisi´on de caracter´ısticas, de forma que algunas no entran en la capa de pooling. Tras hacer todas las operaciones de pooling, se concatenan los resultados del pooling y las caracter´ısticas reservadas anteriormente, y se pasan todas por una capa Conv. En la Figura 5.4a se ve la estructura de este m´odulo. 35 5.1. BASE TE ´ ORICA (a) Con conexi´on residual. Elaboraci´on propia (b) Sin conexi´on residual. Figura 5.3: Cuellos de botella en YOLOv8. En la Figura 5.2 se aprecia que en 3 de las capas del backbone, sus salidas se pasan al siguiente m´odulo de YOLOv8, el neck. Esto se debe a que dependiendo del n´umero de convoluciones hechas en las caracter´ısticas, estas tendr´an un tipo de informaci´on u otro. Hay 2 tipos de informaci´on en las im´agenes. Una es la informaci´on sem´antica, que es el objeto o el significado de la imagen, y el otro tipo es la informaci´on espacial, que es donde est´a situado dicho objeto. En las primeras capas, las caracter´ısticas contienen mucha informaci´on espacial y poca informaci´on sem´antica, pues todav´ıa no se ha perdido mucha informaci´on en las capas de pooling y se han llevado a cabo pocas operaciones convolucionales como para haber detectado formas y patrones (informaci´on sem´antica). De la misma manera, en capas profundas con baja resoluci´on, muchos de los patrones presentes se han podido detectar, pero a costa de haber perdido informaci´on espacial al haberse reducido en gran medida las dimensiones de las caracter´ısticas. Como YOLOv8 quiere detectar ambos tipos de informaci´on, espacial y sem´antica, va a hacer una serie de combinaciones de las caracter´ısticas de salida de distintas capas para captar la informaci´on sem´antica de las capas profundas y la informaci´on espacial de las primeras capas. De esto se encargar´a el neck. 36 CAP´ ITULO 5. IDENTIFICACI ´ ON DE AVES POR IMAGEN (a) M´odulo SPPF de YOLOv8. Elaboraci´on propia. (b) M´odulo C2f de YOLOv8. Elaboraci´on propia. Figura 5.4: M´odulos de YOLOv8. 37 5.2. IMPLEMENTACI ´ ON a una mejor generalizaci´on ya que en muchas ocasiones estos mosaicos introducen ruido, evitando el sobreajuste. No obstante, en las ´ultimas ´epocas no se debe usar esta t´ecnica, y es por eso que este par´ametro se asegura que las n´ultimas ´epocas no se use esta t´ecnica. Ultralytics recomienda que este par´ametro tenga valor 10, as´ı que no se modifica. El proceso de entrenamiento fue un proceso que gracias al uso de una GPU NVIDIA Ge- FORCE GTX 1660 TI tard´o poco tiempo, alrededor de 2,5 horas. Se completaron un total de 464 ´epocas, donde cada ´epoca tard´o alrededor de 19 segundos. Se hizo una prueba que consisti´o en entrenar el mismo modelo con los mismos hiperpar´ametros en una CPU Intel i7-1165G7. Los resultados fueron que la CPU tardar´ıa 54,1 horas (7 minutos por ´epoca), casi 22 veces m´as que usando la GPU. Este es un claro ejemplo de la gran utilidad del uso de GPUs en el dominio del aprendizaje autom´atico. Estas fueron todas las funcionalidades y tareas realizadas en el primer prototipo. A partir de aqu´ı se usa en posteriores prototipos el modelo YOLOv8 entrenado para la identificaci´on de aves. 5.2.5. Detecci´on de trayectorias Como la tuber´ıa de procesamiento de un v´ıdeo es procesarlo fotograma a fotograma, es necesario poder identificar la misma ave en fotogramas consecutivos, y saber que se trata de la misma ave. Esto es importante porque a la hora de obtener el recorte de cada ave, como es posible que se visualicen muchas aves, se obtengan muchos recortes de aves y haya una sobrecarga de im´agenes. Adem´as, no se quieren capturar todos los recortes de un ave en todos los fotogramas que aparece, sino solo unos pocos para evitar la sobrecarga. El primer algoritmo que se ide´o para implementar esta funcionalidad es uno basado en la medida IOU. La idea fundamental es comparar la medida IOU del cuadro delimitador obtenido en el procesamiento del fotograma ncon los cuadros delimitadores obtenidos en el procesamiento del fotograma n-1. Se considera que el cuadro delimitador del fotograma n pertenece a la trayectoria del cuadro delimitador del fotograma n-1 que mayor medida IOU tenga. En la Figura 5.8 se presenta la salida del anterior algoritmo con los v´ıdeos capturados por la c´amara. A cada trayectoria se le asigna un color distinto para facilitar la visualizaci´on. Tal y como se muestra en la Figura 5.8, ahora es posible distinguir unas aves de otras bajo circunstancias normales. No obstante, hay circunstancias para las que este algoritmo no funciona bien: Dos aves se cruzan en el mismo instante de tiempo. No se detecta un ave en un fotograma. 44 CAP´ ITULO 5. IDENTIFICACI ´ ON DE AVES POR IMAGEN Figura 5.8: Salida del algoritmo inicial de detecci´on de trayectorias. Elaboraci´on propia. Para solucionar los problemas anteriores se hacen una serie de modificaciones en el algoritmo. 5.2.6. Primera mejora del algoritmo de detecci´on de trayectorias. La primera mejora que se implementa es la modificaci´on de par´ametros en el uso del modelo explicado en la Secci´on 5.2.4. El primer par´ametro a modificar es la confianza. Este par´ametro se refiere a la confianza que tiene el modelo en que la predicci´on sea correcta. Como ya se ha explicado en secciones anteriores, a la hora de clasificar la especie de ave, habr´a un modelo que discernir´a entre aves y no-aves. Por eso no importa que haya muchos falsos positivos (predicciones como aves que en realidad no lo son). Debido a esto, la confianza se puede poner a un valor muy bajo. En este caso se puso a 0.01. La consecuencia de esto es que se van a producir muchas predicciones (es lo que se est´a buscando). No obstante se van a producir muchas predicciones sobre las mismas aves, de forma que va a dificultar la identificaci´on de trayectorias y puede empeorar el funcionamiento del algoritmo dr´asticamente. Por ello se modifica el siguiente par´ametro. El segundo par´ametro que se modifica es iou. Este par´ametro es el umbral que se va a utilizar en el algoritmo non max-supression (Secci´on 5.1.7) del modelo YOLOv8. Se pone su valor cercano a 0, y se asegura que no se hagan muchas predicciones sobre el mismo objeto. 45 5.2. IMPLEMENTACI ´ ON Con la modificaci´on de los par´ametros anteriores se consigue que el modelo haga muchas predicciones, pero de aves distintas. Esto soluciona parcialmente ambos problemas, pero los problemas persisten, ya que el modelo no es capaz de identificar en todos los fotogramas todas las aves. 5.2.7. Segunda modificaci´on del algoritmo de detecci´on de trayectorias. Para solucionar el problema de que un ave no sea detectado en un fotograma, se crea una heur´ıstica. Inicialmente, en caso de detectar un ave en el fotograma ny su IOU con los cuadros delimitadores del fotograma n-1 sea con todos 0 (significa que no se ha detectado el ave en el fotograma n-1), se asigna esa ave a la trayectoria m´as cercana. Aunque esto a veces solucionaba el problema, es una heur´ıstica muy gen´erica que falla mucho. Por eso, partiendo de esta idea, se implementaron una serie de modificaciones. Hasta aqu´ı llega la implementaci´on del segundo prototipo. Las siguientes modificaciones se realizan sobre este prototipo, dando lugar al tercer prototipo. Se calcul´o la direcci´on (vectorialmente) que segu´ıa la trayectoria del ave en el fotograma n-1, y se asignaba al cuadro delimitador obtenido en el fotograma nque mejor siguiera esa trayectoria. No obstante, esta modificaci´on no mejor´o los resultados anteriores, principalmente porque las trayectorias seguidas por las aves no son perfectas y pueden hacer cambios de direcciones, de forma que la direcci´on en el instante n-1 no sea la misma que en el instante n. Dado que la anterior modificaci´on no funcion´o, se implement´o otra. Esta consiste en obtener todas las medidas IOU con todas las predicciones de todos los fotogramas (empezando por el fotograma n-1 y acabando en el fotograma 0), de forma que si se obtiene un IOU mayor que 0, se considera que ese cuadro delimitador pertenece a esa trayectoria. En la Figura 5.9a se ve un ejemplo de una imagen donde las aves no son detectadas en todos los fotogramas, y en los siguientes fotogramas que se detectan esas mismas ave, se consideran que pertenecen a nuevas trayectorias y, por lo tanto, son aves distintas (a cada trayectoria se le asigna un color distinto). En la Figura 5.9b se muestra esa misma imagen, pero usando la modificaci´on explicada. Se puede pensar que este algoritmo puede presentar el problema de que cuando dos aves se cruzan en distinto instante de tiempo no funcione bien y los colores de las trayectorias no se mantengan. No obstante esto no ocurre, ya que se realiza una b´usqueda primero en anchura empezando por los fotogramas del final. En la Figura 5.10 se ve un ejemplo de este caso, con resultados positivos. El ave con trayectoria rosa cruza las trayectorias de color amarillo y azul. De la misma manera, la trayectoria azul se cruza con la trayectoria verde sin presentar el problema comentado. 46 CAP´ ITULO 5. IDENTIFICACI ´ ON DE AVES POR IMAGEN (a) Salida del algoritmo cuando hay aves no detectadas en un fotograma sin la modificaci´on. Elaboraci´on propia. (b) Salida del algoritmo cuando hay aves no detectadas en un fotograma con la modificaci´on. Elaboraci´on propia. Figura 5.9: Aves no detectadas en un fotograma. Figura 5.10: Cruce de aves en distinto instante de tiempo. Elaboraci´on propia. No obstante, esto solo ocurre si las aves se cruzan en instantes de tiempo distintos. Las fases que ocurren cuando 2 o m´as aves se cruzan en el mismo instante de tiempo son las siguientes: 1. Antes de que se crucen, hay tantas trayectorias como aves, es decir, si hay naves hay ntrayectorias. 2. Las aves se cruzan en el mismo instante. En este punto el algoritmo solo detecta 1 ave ya que estas se solapan, por tanto solo hay 1 trayectoria. 3. Las aves se vuelven a separar. Como en el punto anterior solo hab´ıa una trayectoria, el algoritmo anterior asigna estas n-1 nuevas trayectorias a la ´unica trayectoria cercana, la del fotograma anterior. 47 5.2. IMPLEMENTACI ´ ON Como conclusi´on, cuando 2 o m´as aves se cruzan en el mismo instante de tiempo, asigna todas ellas a la misma trayectoria. No obstante, esto no es problema del algoritmo desarrollado, sino del modelo que no es capaz de identificar a todas las aves solapadas como aves distintas. Por ahora no se ha encontrado soluci´on a este problema, y permanece como trabajo futuro el poder resolverlo. Una posible soluci´on puede ser utilizar las trayectorias de las aves como series temporales e intentar predecir su siguiente posici´on. En la Figura 5.11a se visualiza el momento en el que dos aves se solapan (trayectoria verde y trayectoria azul), y en la Figura 5.11b se visualiza el momento en el que ambas aves se dejan de solapar y ambas tienen el mismo color de trayectoria (verde). (a) Aves en el instante donde se solapan. Elaboraci´on propia. (b) Aves tras cruzarse en el mismo instante. Elaboraci´on propia. Figura 5.11: Aves cruz´andose en el mismo instante de tiempo. 5.2.8. Longitud de trayectorias La ´ultima de las mejoras realizadas con respecto al algoritmo de detecci´on de trayectorias fue establecer un m´ınimo de longitud de una trayectoria para considerarla correcta. Se ha hecho un experimento donde incialmente se eligieron 3 posibles valores: 5, 8 y 16. Tras procesar los v´ıdeos y observar los resultados, se ha determinado que el umbral que mejor funciona es 16. Como los par´ametros iou yconf (Secci´on 5.2.6) del modelo se han configurado para realizar muchas predicciones sobre objetos distintos, es muy probable que se obtengan muchas trayectorias de poca longitud que sean falsos positivos. Al establecer el umbral en 16, se consigue eliminar gran cantidad de esas trayectorias que son falsos positivos. Aunque es cierto que puede que se pierdan trayectorias de aves reales, esas trayectorias que se pierden son de escasa longitud que se encuentran en los bordes de la imagen y, por tanto, la que menos informaci´on ofrece. Por tanto, la informaci´on que se descarta es la menos relevante. 5.2.9. Obtenci´on de im´agenes con trayectorias Uno de los objetivos iniciales del proyecto era obtener im´agenes con las trayectorias de las aves obtenidas. Se implement´o dicha funcionalidad, y en la Figura 5.12 se muestra un 48 CAP´ ITULO 5. IDENTIFICACI ´ ON DE AVES POR IMAGEN ejemplo. De la misma manera, se ha implementado la funcionalidad de realizar los recortes de las aves detectadas. Figura 5.12: Imagen con todas las trayectorias de las aves. Elaboraci´on propia. Estas son todas las funcionalidades desarrolladas en el dominio de segmentaci´on de im´agenes. Se ha requerido de 3 prototipos incrementales para implementar el m´odulo final, y alrededor de 222 horas de desarrollo. 49 5.2. IMPLEMENTACI ´ ON 50 CAP´ ITULO 6. CLASIFICACI ´ ON DE AVES POR IMAGEN Cap´ıtulo 6 Clasificaci´on de aves por imagen En este cap´ıtulo se van a definir los dos modelos usados para clasificar a las aves. Primero se desarrollar´a una base te´orica y a continuaci´on se definir´an las implementaciones. Los datos usados para implementar los modelos se explican en la Secci´on 4.2. 6.1. Base te´orica 6.1.1. EfficientNet Se ha demostrado que las EfficientNet son hasta 7 veces m´as peque˜nas y 6 veces m´as r´apidas que otros modelos CNN, teniendo m´etricas mejores que redes m´as grandes y complejas. Este es un ejemplo claro del problema de la degradaci´on (explicado en la Secci´on 5.1.4). Aparte de ser m´as eficientes y r´apidas, solucionan el problema del escalado de redes (aumentar el tam˜no de una red), traduci´endose en mejores resultados. Para entender c´omo estas redes solucionan dicho problema, es importante entender cu´ales son las dimensiones de una CNN: Resoluci´on: Resoluci´on de entrada de las im´agenes (n´umero de p´ıxeles de alto y de ancho). Profundidad: El n´umero de capas que presenta la red. Anchura: El n´umero de caracter´ısticas de salida que tienen las capas de la red. Tradicionalmente, cuando se quer´ıa aumentar el tama˜no de una red, solo se modificaba 1 de esas dimensiones (resoluci´on, profundidad o anchura). El desbalance de las dimensiones presentan una serie de problemas: 51 6.1. BASE TE ´ ORICA Aumentar solo la profundidad da lugar a la aparici´on del problema de la degradaci´on, como se ha explicado en la Secci´on 5.1.4. Si se aumenta la anchura, solo se obtienen mejores resultados para modelos peque˜nos, pero estos buenos resultados no escalan a modelos de mayor tama˜no y complejidad. Si solo se aumenta la resoluci´on de las im´agenes de entrada, el concepto puede ser demasiado complejo como para que la red lo aprenda [17]. Por eso se tienen que escalar las 3 dimensiones y, adem´as, tienen que estar balanceadas entre s´ı. Tal y como se explica en el art´ıculo donde se presentan las EfficientNet [17], se definen unos par´ametros α,β,γ(profundidad, anchura y resoluci´on respectivamente) que se usan para balancear las 3 dimensiones. Para ello, dichos par´ametros tienen que cumplir la condici´on de la Ecuaci´on 6.1, y adem´as todos ellos tienen que ser mayores o iguales que 1. Estos par´ametros se obtienen haciendo una b´usqueda en un modelo inicialmente peque˜no. α∗β2∗γ2≈2 (6.1) En el art´ıculo [17] se define que los tama˜nos ideales son: α= 1,2 β= 1,1 γ= 1,15 (6.2) φes un coeficiente definido por el usuario que controla el escalado de la red. Si se quieren usar 2Nrecursos computacionales m´as, entonces φ=N, y el escalado quedar´ıa: d = αφ w = βφ r = γφ (6.3) donde d, w yrson las proporciones reales de reescalado de la profundidad, anchura y resoluci´on respectivamente. En la biblioteca Keras, se pueden usar los modelos EfficientNetB0 - EfficientNetB7, donde se han seguido las f´ormulas definidas en 6.2 y 6.3. En la Tabla 6.1 se muestra la resoluci´on de entrada de los distintos modelos, resultado de las ecuaciones 6.3 y 6.2. Todos los modelos EfficientNet tienen la misma estructura, lo que les diferencia es el n´umero de filtros, los tama˜nos de las caracter´ısticas y el n´umero de capas. En la Tabla 6.2 se muestra la estructura del modelo EfficientNetB0. Cabe destacar que en la Tabla 6.2, la columna ’Operador’ no var´ıa para los distintos modelos EfficientNet, lo que cambia son las columnas ’Resoluci´on’, ’Canales’ y ’N´umero de capas’, seg´un los par´ametros d, wyr. 52 CAP´ ITULO 6. CLASIFICACI ´ ON DE AVES POR IMAGEN Tabla 6.1: Tama˜no de entrada de las im´agenes en los modelos EfficientNet. Modelo EfficientNet Tama˜no de entrada (p´ıxeles) EfficientNetB0 224 EfficientNetB1 240 EfficientNetB2 260 EfficientNetB3 300 EfficientNetB4 380 EfficientNetB5 456 EfficientNetB6 528 EfficientNetB7 600 Tabla 6.2: Estructura del modelo EfficientNetB0. Orden Operador Resoluci´on Canales N´umero de capas 1 Conv3x3 224x224 32 1 2 MBConv1, k3x3 112x112 16 1 3 MBConv1, k3x3 112x112 24 2 4 MBConv1, k5x5 56x56 40 2 5 MBConv1, k3x3 28x28 80 3 6 MBConv1, k5x5 14x14 112 3 7 MBConv1, k5x5 14x14 192 4 8 MBConv1, k3x3 7x7 320 1 9 Conv1x1 & Pooling & FC 7x7 1280 1 En la Tabla 6.3 se muestra el n´umero de canales de entrada de cada capa de cada versi´on Tabla 6.3: Anchura de los modelos EfficientNet. Orden B1 B2 B3 B4 B5 B6 B7 1 32 32 40 48 48 56 64 2 16 16 24 24 24 32 32 3 24 24 32 32 40 40 48 4 40 48 48 56 64 72 80 5 80 88 96 112 128 144 160 6 112 120 136 160 176 200 224 7 192 208 232 272 304 344 384 8 320 352 384 448 512 576 640 9 1280 1408 1536 1792 2048 2304 2560 El n´umero de FLOPs requeridos por la red es proporcional a d, w2yr2. Esto significa que multiplicar por 2 la profundidad de la red dobla el n´umero de FLOPs requeridos, pero multiplicar por 2 la resoluci´on o la anchura requiere 4 veces m´as FLOPs. Otra ventaja que tiene hacer el escalado proporcional de todas las dimensiones de la red es que la red se puede enfocar en las regiones m´as relevantes donde m´as objetos hay (y por tanto m´as informaci´on) y realizar una mejor clasificaci´on. 53 6.1. BASE TE ´ ORICA 6.1.4. Aumentaci´on de datos Aumentaci´on de datos es un proceso de preprocesamiento de im´agenes que sirve para obtener nuevas im´agenes a partir de las ya existentes. No obstante es necesario que est´en modificadas de forma que sean ´utiles para el aprendizaje del modelo. Lo que hacen estas im´agenes es introducir ruido en los datos, de forma que ayudan a paliar el problema del sobreajuste. Adem´as ofrecen nueva informaci´on ´util para generalizar el concepto [39]. Entre las modificaciones que se pueden hacer a las im´agenes se encuentran [15]: Transformaciones geom´etricas: Consisten en modificar las im´agenes modificando las caracter´ısticas espaciales de las im´agenes. Cabe destacar: •Rotaci´on: Se rota la imagen unos grados definidos. •Voltear: Se trata de voltear la imagen (eje vertical u horizontal). •Zoom: Consiste en eliminar las zonas exteriores de la imagen ampliando las del centro. •Traslaci´on: Consiste en trasladar la imagen para ense˜nar al modelo que no importa la posici´on del objeto, sino el objeto en s´ı (aprender patrones y no memorizar posiciones). Transformaciones de color: Consiste en modificar caracter´ısticas de los colores de la imagen. •Brillo: Modifica el brillo para simular distintas condiciones lum´ınicas. •Contraste: Modificar el contraste ayuda a aprender el concepto bajo distintas condiciones de claridad. •Saturaci´on: Permite al modelo clasificar las im´agenes bajo distintas intensidades de color. (a) Imagen original. [40] (b) Imagen rotada. Elaboraci´on propia. Figura 6.3: Rotaci´on de im´agenes. 60 CAP´ ITULO 6. CLASIFICACI ´ ON DE AVES POR IMAGEN (a) Imagen original. [40] (b) Imagen con zoom. Elaboraci´on propia. Figura 6.4: Zoom de im´agenes. (a) Imagen con brillo disminuido. Elaboraci´on propia. (b) Imagen con brillo aumentado. Elaboraci´on propia. Figura 6.5: Modificaci´on de brillo en im´agenes. (a) Imagen con contraste disminuido. Elaboraci´on propia. (b) Imagen con contraste aumentado. Elaboraci´on propia. Figura 6.6: Modificaci´on de contraste en im´agenes. 61 6.2. IMPLEMENTACI ´ ON (a) Imagen con saturaci´on disminuida. Elaboraci´on propia. (b) Imagen con saturaci´on aumentada. Elaboraci´on propia. Figura 6.7: Modificaci´on de saturaci´on en im´agenes. (a) Imagen original. [40] (b) Imagen volteada en eje y. Elaboraci´on propia. Figura 6.8: Volteo de im´agenes. Existe la posibilidad de hacer este tipo de modificaciones solapadas, es decir en una misma imagen se puede modificar m´as de una caracter´ıstica. De esta manera se obtienen im´agenes (a partir de las ya existentes) significativamente distintas que aportan nueva informaci´on respecto al concepto. 6.2. Implementaci´on 6.2.1. Preprocesamiento El preprocesamiento realizado en los datos fue hacer aumentaci´on de datos sobre las clases minoritarias y posteriormente normalizarlos. De esta manera el desbalance entre las clases es menor, evitando que siempre se prediga la clase mayoritaria. Hay varias formas de hacer 62 CAP´ ITULO 6. CLASIFICACI ´ ON DE AVES POR IMAGEN aumentaci´on de datos. Una manera es hacerlo en tiempo de ejecuci´on, de forma que a un lote antes de ser dado como entrada a la red se le hace transformaciones como las explicadas en la Secci´on 6.1.4. La desventaja de este m´etodo es que el experimento no es reproducible, ya que las modificaciones que se le hacen a cada lote son pseudoaleatorias. La otra t´ecnica es hacer esas modificaciones a las im´agenes, y guardarlas en almacenamiento persistente. La ventaja que tiene este m´etodo es que el experimento es reproducible, y adem´as se pueden normalizar las im´agenes. Como en este proyecto se tiene intenci´on de probar dos modelos distintos, se implement´o el segundo m´etodo. Para hacer la carga de im´agenes de almacenamiento persistente a memoria RAM, se implementaron Data Loaders que cargan las im´agenes en tiempo de ejecuci´on. Es decir se tiene un array con todas las direcciones de memoria donde est´an guardadas esas im´agenes, y solo se cargan los datos de las im´agenes que van a procesarse en ese lote. Esto se hace ya que cuando se tiene un dataset demasiado grande, no hay memoria suficiente para cargar en memoria RAM todas las im´agenes. En este caso, a pesar de que el dataset tuviera 28.987 + las im´agenes obtenidas por la aplicaci´on de aumentaci´on de datos, como estas ten´ıan poco tama˜no (4 KB cada im´agen) se pod´ıan cargar todas en memoria, pues se tiene 32 GB de memoria RAM. No obstante, hacer la carga de im´agenes en tiempo de ejecuci´on es una buena pr´actica que puede acelerar el proceso de entrenamiento y, adem´as, es c´odigo que se puede reutilizar en caso de modificar el dataset. Por otro lado el Data Loader tiene otra funci´on, y es que antes de empezar el procesamiento de una nueva ´epoca, cambia el orden de las im´agenes en los lotes. Esto se hace para que el orden de las im´agenes no sea el mismo y, por tanto, se evita el aprendizaje memor´ıstico, en el que el modelo no aprende el concepto, sino el orden de los datos. Adem´as, tal y como se detalla en la Tabla 6.1, dependiendo del modelo EfficientNet usado, las dimensiones de las entradas deben ser unas u otras. En este caso, como se usa el modelo m´as peque˜no, EfficientNetB0, se escalan las im´agenes a tama˜no 224x224. 6.2.2. Clasificador de 4 clases Inicialmente, se implement´o un modelo bas´andose en las EfficientNet de Keras para que clasificara las im´agenes del dataset explicado en la Secci´on 4.2. Se hicieron modificaciones en las ´ultimas capas del modelo para adapatarlo a los datos de entrada. La matriz de confusi´on obtenida por este modelo es la presentada en la Figura 6.9, en la cual la clase 0 corresponde a otros tipos de aves, 1 a cuervo, 2 a halc´on y 3 a no ave. En dicha figura, se observa que la red es capaz de diferenciar muy bien las im´agenes que son aves de las que no. No obstante, no es capaz de discernir perfectamente entre las im´agenes que muestran alg´un tipo de ave. En la Figura 6.10 se ve tanto la tasa de acierto como la funci´on de p´erdida del modelo. En dichas figuras se puede ver el gran sobreajuste que se produce, a pesar de obtener una tasa de acierto de 0.9051 sobre el conjunto de test. 63 6.2. IMPLEMENTACI ´ ON Figura 6.9: Matriz de confusi´on del modelo EfficientNet. Elaboraci´on propia. (a) Tasa de acierto de EfficientNetB0. Elaboraci´on propia. (b) Funci´on de p´erdida de EfficientNetB0. Elaboraci´on propia. Figura 6.10: Salida del modelo EfficientNetB0. 6.2.3. Clasificador ensemble A la vista de los resultados anteriores, se sacan las siguientes conclusiones. Las clases siguen estando muy descompensadas (a pesar de la aumentaci´on de datos) y puede ser una de las razones de que en muchas ocasiones se prediga la clase mayoritaria (no-ave). 64 CAP´ ITULO 6. CLASIFICACI ´ ON DE AVES POR IMAGEN Las im´agenes pueden tener una resoluci´on demasiado pobre como para diferenciar unas aves de otras. Por ello, se propuso hacer dos modelos: el primero de ellos se encargar´a ´unicamente de realizar clasificaci´on binaria (discernir si en la imagen hay un ave o no). Las im´agenes que ese clasificador identifique como aves, se procesaran en otro clasificador que tratar´a de discernir el tipo de ave contenido en la imagen. Ambos clasificadores son modelos EfficientNetB0. Dado que se van a hacer 2 clasificadores, hay que definir cuidadosamente los conjuntos de entrenamiento y test de cada uno de ellos para que no se solapen (sean disjuntos) y sea un m´etodo honesto. Inicialmente, las im´agenes se separan en 2 conjuntos donde el 80 % se utilizar´a para entrenar y el 20 % para test. Esa divisi´on se hace estratificada por clases, es decir que la distribuci´on de clases es aproximadamente la misma en ambos conjuntos. A continuaci´on, de esos conjuntos, se reserva un 35 % para el clasificador binario y el restante 65 % para el clasificador no binario. Figura 6.11: Separaci´on de los conjuntos de datos para entrenar/test de cada modelo. Elaboraci´on propia. Con respecto al clasificador binario (se utiliza finalmente un 28 % de todas las instancias para entrenar y un 7 % para test), los resultados son muy buenos. A pesar de las pocas instancias tanto para entrenar como para test, es capaz de obtener muy buenos resultados. En la Figura 6.12 se muestra la matriz de confusi´on del modelo, donde la clase 0 hace referencia a no-aves y la clase 1 a aves. El modelo es capaz de discernir muy bien entre las im´agenes que muestran aves y las que no. En la Figura 6.13 se muestra la tasa de acierto y la funci´on de p´erdida del clasificador. 65 6.2. IMPLEMENTACI ´ ON Figura 6.12: Matriz de confusi´on del modelo binario EfficientNet. Elaboraci´on propia. (a) Tasa de acierto de EfficientNetB0 binario. Elaboraci´on propia. (b) P´erdida de EfficientNetB0 binario. Elaboraci´on propia. Figura 6.13: Salida del modelo EfficientNetB0 binario. El resto de datos disponibles son para entrenar (52 %) y probar (13 %) el segundo clasificador. Lo primero, ser´a dar al clasificador binario todos estos datos como entrada. Las im´agenes que se predigan como aves se dar´an como entrada al segundo clasificador. Cabe destacar que, aunque el primer clasificador filtre casi al completo todas las im´agenes sin aves, tiene una peque˜na tasa de error, y es por eso que al segundo clasificador le llega alguna imagen que no tiene aves. En la Figura 6.14 se ve la matriz de confusi´on de este clasificador. De nuevo, la clase 0 corresponde a otros tipos de aves, 1 a cuervo, 2 a halc´on y 3 a no-ave. 66 CAP´ ITULO 6. CLASIFICACI ´ ON DE AVES POR IMAGEN Figura 6.14: Matriz de confusi´on del modelo no binario EfficientNetB0. Elaboraci´on propia. (a) Acierto de EfficientNetB0 no binario. Elaboraci´on propia. (b) P´erdida de EfficientNetB0 binario. Elaboraci´on propia. Figura 6.15: Resultados del modelo EfficientNetB0 no binario. Se puede destacar que muy pocas im´agenes que no tienen aves pasan el filtro del primer clasificador, aunque luego esas no las clasifica bien el segundo. No obstante, ocurre el mismo problema que antes, el segundo clasificador no es capaz de diferenciar entre un halc´on, un cuervo u otro tipo de ave. La tasa de acierto del clasificador respecto a los tipos de aves es de alrededor de 0.6. La principal conclusi´on a la que se ha llegado es que la calidad de las im´agenes es demasiado pobre como para poder clasificarlas. En la Figura 6.16 se muestra un ejemplo de una imagen de un halc´on y otra de un cuervo, donde se aprecia la poca resoluci´on y calidad de 67 6.2. IMPLEMENTACI ´ ON las im´agenes. (a) Imagen de ejemplo de un halc´on. [26] (b) Imagen de ejemplo de un cuervo. [26] Figura 6.16: Ejemplos de im´agenes del dataset. 6.2.4. Implementaci´on del Visual Transformer Con respecto a la implementaci´on del Visual Transformer, no hay un modelo ya desarrollado en la librer´ıa keras ni Tensorflow, as´ı que hubo que desarrollarlo de cero. En las pr´acticas curriculares se hizo una primera aproximaci´on. No obstante, en este TFG, se ha modificado esa primera implementaci´on a˜nadiendo el token CLS y modificando la entrada del perceptr´on (es la salida del encoder) que se encarga de hacer la clasificaci´on. La parte m´as compleja fue seleccionar ´unicamente la salida del token CLS del encoder para realizar la predicci´on final. En cuanto al preprocesamiento, se seleccion´o el dataset en el cual se hab´ıan aplicado t´ecnicas de aumentaci´on de datos en las clases minoritarias, con fin de evitar que siempre se seleccione la clase mayoritaria y, por tanto, no generalizando correctamente. Se normalizaron las instancias y se realiz´o la separaci´on en conjuntos de entrenamiento-test. Esta se realiza de tal manera que estos sean disjuntos, estratificados por clases y con distribuci´on entrenamiento-test del 80 %-20 %. En la Figura 6.17 se muestra la matriz de confusi´on del modelo ViT entrenado. Cabe destacar los malos resultados que obtiene con las im´agenes de cuervos y de halcones. No hay ning´un ejemplo que prediga como halc´on o cuervo. Es muy posible que se deba a que las im´agenes tengan demasiada poca resoluci´on como para poder extraer informaci´on. En la Figura 6.18 se muestran las funciones de p´erdida y la tasa de acierto de los conjuntos de entrenamiento y de test. 68 CAP´ ITULO 6. CLASIFICACI ´ ON DE AVES POR IMAGEN Figura 6.17: Matriz de confusi´on del modelo ViT. Elaboraci´on propia. (a) Funci´on de p´erdida modelo ViT. Elaboraci´on propia. (b) Tasa de acierto del modelo ViT. Elaboraci´on propia. Figura 6.18: Resultados del modelo ViT. Cabe destacar que este modelo no solo ha tenido una tasa de acierto peor que los modelos de las EfficientNet (0.9051 EfficientNet frente a 0.84 ViT) sino que adem´as hay clases que nunca predice. No obstante, todo esto no es suficiente para afirmar que las EfficientNet funcionan mejor para este conjunto de datos que los ViT, ser´ıa necesario hacer tests estad´ısticos para verificarlo. Entre los test que se pueden usar son el test de McNemar [41] o los test de Student [42] (todos se usan para comparar dos modelos sobre el mismo conjunto de datos). Como este conjunto de datos no es el conjunto de datos final, no se realizar´an los test. Cuando se obtenga el dataset real con el que se entrenen los modelos finales, s´ı se realizar´an dichos test para seleccionar el mejor modelo para ese conjunto de datos. 69 7.2. IMPLEMENTACI ´ ON M(f) = 1125 ∗ln(1 + f 700) (7.4) 7.1.3. Coeficientes cepstrales en frecuencia Mel Para obtener los coeficientes cepstrales en frecuencia Mel (MFCC) se parte de un espectrograma de Mel. La primera operaci´on que se hace es aplicar el logaritmo al espectrograma de Mel, y a continuaci´on se calcula la IDFT [55]. La salida ser´an los MFCC, que es una caracter´ıstica muy com´unmente extra´ıda para el procesamiento y extracci´on de conocimiento de se˜nales. Su principal ventaja es la eliminaci´on de informaci´on no relevante y la focalizaci´on en informaci´on relevante para el concepto. Es una caracter´ıstica muy ampliamente utilizada junto a los espectrogramas de Mel en el reconocimiento de sentimientos en el habla [56]. En este caso, en el eje xse tiene el tiempo y en el eje ylos coeficientes de cada uno de los instantes de tiempo. Normalmente se calculan 13 coeficientes, aunque es posible que ese n´umero var´ıe dependiendo de la naturaleza de los datos y del dominio. Otras caracter´ısticas que se pueden obtener son los deltas de los MFCC [57], que aportan informaci´on de c´omo var´ıan en el tiempo los MFCC (se obtienen haciendo operaciones sobre MFCCs contiguos). 7.1.4. Procesamiento de caracter´ısticas Tal y como se ha explicado en la Secci´on 3.1.5, hay principalmente 2 t´ecnicas de procesamiento de las caracter´ısticas extra´ıdas de los sonidos. Una es apilar todas las caracter´ısticas y procesarlas como si fueran im´agenes (se puede interpretar que hay por cada sonido una sola imagen con tantos canales como caracter´ısticas extra´ıdas), y la otra es hacer un aplanado de esas caracter´ısticas (convertirlas de 2 dimensiones a 1) y procesarlas con algoritmos de aprendizaje autom´atico como ´arboles de decisi´on o m´aquinas de vector soporte [58]. 7.2. Implementaci´on 7.2.1. Segmentaci´on de los sonidos El objetivo de este m´odulo ser´a, dado un audio con el canto de un ave, saber a qu´e ave corresponde. Por ello, la primera tarea que se realiz´o en este m´odulo fue el preprocesamiento de los datos. Tal y como se ha explicado en la Secci´on 4.3, se han obtenido los datos a partir de la API de la p´agina web Xeno-canto [27]. Como por ahora solo hay intenci´on de trabajar con las aves de la Comunidad Aut´onoma de Castilla y Le´on, se seleccionaron ´unicamente aves procedentes de esa regi´on. Esos audios con sonidos de aves est´an sin procesar, es decir 76 CAP´ ITULO 7. CLASIFICACI ´ ON DE AVES POR SONIDO tienen ruido de fondo que pueden dificultar el aprendizaje. Por eso, lo primero que se hizo, fue usar la librer´ıa de Python noisereduce para eliminar el ruido de todos los audios [59]. Como cada uno de los audios ten´ıa una cantidad arbitraria de cantos del ave, por cada uno de esos audios se obtuvieron los decibelios medios y se recortaron aquellas porciones del audio donde los decibelios fueran mayores o iguales que la media m´as un umbral. Se hizo una b´usqueda para determinar el valor ´optimo de este umbral y se determin´o que era 80 dB. De esta manera se pudo segmentar el audio para que en cada porci´on hubiera un solo sonido del ave, adem´as de eliminar el ruido entre sucesivos cantos del ave. 7.2.2. Extracci´on de caracter´ısticas y preprocesamiento A continuaci´on se cre´o un m´odulo para realizar la extracci´on de caracter´ısticas de todos los sonidos. Las caracter´ısticas que se extrayeron son: ZCR: Significa ’Zero Crossing Rate’ en ingl´es y es una medida de que hace referencia al n´umero de veces que la energ´ıa de una se˜nal cruza el eje x[60]. Digitalmente, la energ´ıa de las se˜nales se escalan en el intervalo [-1,1]. Esta caracter´ıstica aporta informaci´on sobre el nivel de actividad de la onda. Chroma: Es similar a un espectrograma, con la diferencia de que no analiza todas las frecuencias presentes en el sonido como har´ıa un espectrograma, sino que ´unicamente se centra en las frecuencias de las 12 notas musicales [61]. Esta caracter´ıstica ayuda a clasificar las tonalidades, necesario para discernir entre cada una de las especies de aves. Espectrograma de Mel: Explicado en la Secci´on 7.1.2. Valor cuadr´atico medio: Esta caracter´ıstica hace referencia a la amplitud o potencia de la se˜nal. Ayuda a obtener informaci´on sobre la intensidad del sonido [62]. MFCC: Definido y explicado en la Secci´on 7.1.3. Existen 2 aproximaciones para realizar el aplanado de estas caracter´ısticas. Se puede concatenar la fila n+1 con la fila nrecursivamente de todas las caracter´ısticas extra´ıdas, o se puede hacer una media de los valores por columnas. En este caso, se decidi´o usar la segunda opci´on, ya que la concatenaci´on de filas da lugar a muchos valores por cada dato, haciendo el gasto computacional mucho mayor. La desventaja del m´etodo usado es que al hacer la media se pierde informaci´on. El ´ultimo, paso de la extracci´on de caracter´ısticas es concatenarlas todas, de forma que finalmente por cada sonido se obtiene un vector de 1 dimensi´on, donde se ha aplanado y concatenado cada caracter´ıstica. Por ´ultimo se normalizan las caracter´ısticas, en este caso se estandariz´o. Se prefiere en este caso estandarizar a escalar ya que no se ha hecho un an´alisis de outliers. En caso de existir outliers, no es recomendable escalar los datos. 77 7.2. IMPLEMENTACI ´ ON 7.2.3. Modelos y resultados Con respecto a los modelos usados, dada la gran cantidad de instancias que hay, se ha buscado modelos que sean baratos computacionalmente. Se utiliz´o tanto el modelo Random Forest como redes fully connected. Se utiliz´o la herramienta Optuna [63] para realizar una optimizaci´on de hiperpar´ametros. Optuna es una herramienta que entrena muchos modelos del mismo tipo (RandomForest y redes fully connected) con distintas condiciones iniciales, dando como resultado el mejor modelo. En este caso, el modelo que mejor resultados obtuvo fue el Random Forest con una tasa de acierto de 0.9923, con los siguientes hiperpar´ametros: N´umero de estimadores: 106. Profundidad m´axima: 16. N´umero m´ınimo de instancias por partici´on: 4. N´umero m´ınimo de instancias por hoja: 9. Por otra parte, las redes fully connected obtuvieron resultados peores aunque siguen siendo muy buenos (tasa de acierto de 0.9058). De nuevo, se us´o la herramienta Optuna para seleccionar la estructura ´optima de la red. Esta consta de un total de 5 capas ocultas con 1000,600,300,150,75 neuronas respectivamente. Ante resultados similares, se prefiere el m´etodo que menos gasto computacional requiere, en este caso, los ´arboles. Los expcepcionalmente buenos resultados con distintos algoritmos hace pensar que no se debe a ning´un tipo de aleatoriedad. Adem´as, estas tasas de error para distintos algoritmos demuestra que las caracter´ısticas obtenidas de los sonidos explican casi por completo a los sonidos de las aves. Por otra parte, tambi´en demuestra que el preprocesamiento realizado (segmentaci´on de los audios) ha sido el correcto, favoreciendo la generalizaci´on. 78 CAP´ ITULO 8. CONCLUSIONES Cap´ıtulo 8 Conclusiones Con respecto a las conclusiones del proyecto, se va a desarrollar una secci´on por cada dominio en el que se ha trabajado. 8.1. Segmentaci´on de im´agenes El modelo de segmentaci´on de im´agenes (YOLOv8) obtiene unos resultados buenos con respecto a la detecci´on de aves. Se ha trabajado mucho en el algoritmo de detecci´on de trayectorias y es muy notable la evoluci´on de los resultados. Tal y como se encuentra ahora el algoritmo, es capaz de detectar todas las aves, sin importar su tama˜no, siempre y cuando las condiciones lum´ınicas y ambientales no sean muy extremas. Adem´as, en caso de que en alg´un fotograma no se detecte alg´un ave, el algoritmo de trayectorias es capaz de paliar ese problema. El ´unico problema notable con respecto a este algoritmo es si dos aves se cruzan en el mismo instante de tiempo, que el modelo YOLOV8 no es capaz de detectar dos aves distintas. Como trabajo futuro, se puede intentar entrenar al modelo con im´agenes donde haya solapamiento de aves. 8.2. Clasificaci´on de im´agenes En la clasificaci´on de im´agenes de aves se han hecho varios modelos y varias ejecuciones. Se puede destacar que el uso de t´ecnicas de aumentaci´on de datos pueden mejorar mucho los resultados, especialmente cuando se realizan sobre clases minoritarias para evitar que los modelos predigan siempre las clases mayoritarias. Dado que el dataset usado no tiene todas las clases relativamente bien balanceadas, se obtienen mejores resultados al hacer aumentaci´on de datos sobre aquellas clases que son minoritarias. Se hicieron pruebas ´unicamente para 79 8.3. CLASIFICACI ´ ON DE AUDIO comprobar si el uso de esas t´ecnicas aportan nueva informaci´on, y los resultados fueron que se obten´ıa una tasa de acierto de entre un 0.1 y un 0.15 mayor. Por otra parte, tanto el modelo EfficientNet como los ViT son capaces de diferenciar muy bien si en una imagen hay un ave o no (clasificaci´on booleana), incluso a pesar de la poca resoluci´on de las im´agenes (tasa de acierto de 0.9887 y 0.9629). No obstante, no son capaces de distinguir suficientemente bien unas aves de otras (tasa de acierto de 0.6 y 0.5417 respectivamente), seguramente por la baja resoluci´on de las im´agenes. No se ha hecho ning´un test estad´ıstico para comprobar cu´al de los dos funciona mejor para el dataset usado, ya que este no es el dataset final. No obstante, cuando se disponga de los datos finales, s´ı se har´an y se podr´a tomar la decisi´on sobre cu´al de los dos modelos funcionan mejor para ese dataset. 8.3. Clasificaci´on de audio Los buenos resultados que se obtienen no solo con un modelo (tasa de acierto de 0.9923 con Random Forest), sino con modelos distintos (redes fully connected con tasa de acierto de 0.9058) hace pensar que el algoritmo encargado de realizar la segmentaci´on inicial de los audios ha sido capaz de diferenciar bien cu´ando empieza y acaba un canto del ave. Por otra parte, cada una de las caracter´ısticas extra´ıdas (ZCR, chroma, espectrograma de Mel, valor cuadr´atico medio y MFCC) representan informaci´on relevante y espec´ıfica de cada dato. Queda por investigar si la inclusi´on de m´as caracter´ısticas distintas pueden mejorar los resultados en unos datos m´as amplios (solo se han seleccionado espec´ımenes grabados en Castilla y Le´on). 80 CAP´ ITULO 9. TRABAJO FUTURO Cap´ıtulo 9 Trabajo futuro Con respecto al trabajo futuro a realizar, hay unas l´ıneas claras. La primera es la obtenci´on del dataset final para la clasificaci´on de aves a trav´es de su imagen. Ser´a necesario seguir los pasos explicados en el Cap´ıtulo 6. La calidad de las im´agenes debe ser la mayor posible, ya que como se ha visto en el Cap´ıtulo 6, con im´agenes con baja resoluci´on no se podr´a extraer la suficiente informaci´on como para clasificar las im´agenes de las aves. Realizar test estad´ısticos para comprobar si hay alguna diferencia significativa entre las EfficientNet y los ViT. Como se comparan 2 algoritmos respecto al mismo conjunto de datos, se debe usar el test de McNemar y los test de Student. En caso de tener capacidad de c´omputo como para realizar varios entrenamientos distintos por cada algoritmo, se pueden usar los test de Student en sus distintas variantes. Si por el contrario no se tiene recursos computacionales suficientes, se utilizar´a el test de McNemar, que requiere de un solo entrenamiento por cada modelo. Obtener m´as im´agenes y v´ıdeos con condiciones lum´ınicas pobres con la c´amara del proyecto (AXIS Q6225-LE PTZ Camera), segmentarlos y entrenar el algoritmo YOLOv8. De esta manera, se podr´an detectar aves nocturnas. Integraci´on de los modelos de clasificaci´on (imagen y sonido) para que trabajen conjuntamente y se puedan usar a la vez. Optimizaci´on de los par´ametros y heur´ısticas usadas en la detecci´on de trayectorias, para evitar que si 2 aves se cruzan en el mismo instante, el algoritmo no detecte solo 1 ave sino a las 2. 81 ANEXO DOCUMENTO PARA LA COMPARTICIÓN DE TITULARIDAD DE DERECHOS DE PROPIEDAD INTELECTUAL DE TFG/TFM EN CONVENIO D. Jaime Álvarez Urueña alumno de la Universidad de Valladolid y autor del TFG/TFM en convenio con la Fundación instituto internacional de investigación en inteligencia artificial y ciencias de la computación titulado “Inteligencia Artificial aplicada a la Monitorización y Control de fauna”, expresa su decisión de compartir la titularidad de los derechos de propiedad intelectual de su TFG/TFM con la Fundación instituto internacional de investigación en inteligencia artificial y ciencias de la computación para realizar las siguientes acciones:  Realizar publicaciones de los resultados del TFG/TFM siempre y cuando el alumno esté informado y, además, figure su nombre en dichas publicaciones.  Realizar nuevos proyectos que impliquen modificaciones o ampliaciones del TFG/TFM.  Reutilizar partes del TFG/TFM en otros proyectos que puedan tener fines comerciales, siempre y cuando lo permitan las licencias bajo las que se ha desarrollado el TFG/TFM. En Valladolid, a 03 de Julio de 2024 Fdo.: Jaime Álvarez Urueña Página 8 de 8 BIBLIOGRAF´ IA Bibliograf´ıa [1] ((AXIS Q6225-LE PTZ Camera — Axis Communications.)) (), direcci´on: https://www. axis.com/es-es/products/axis-q6225-le (visitado 15-05-2024). [2] ((Make Sense.)) (), direcci´on: https://www.makesense.ai/ (visitado 16-05-2024). [3] Ultralytics. ((Inicio.)) (), direcci´on: https://docs.ultralytics.com/es/ (visitado 17-05-2024). [4] Project Management Institute, A Guide to the Project Management Body of Knowledge (PMBOK Guide), 7th. Newtown Square, PA: Project Management Institute, 2021, isbn: 978-1-62825-664-2. [5] J. Alves, J. Shamoun-Baranes, P. Desmet y col., Monitoring continent-wide aerial patterns of bird movements using weather radars. 31 de mar. de 2015. [6] F. Liechti y H. van Gasteren, ((CURRENT STAGE OF BIRD RADAR SYSTEMS,)) 1 de jun. de 2010. [7] P. Gemmar, ((Detection of bird activity in radar images,)) 1 de ene. de 2012. direcci´on: https://www.academia.edu/71442826/Detection_of_Bird_Activity_in_Radar_ Images (visitado 17-05-2024). [8] S. Albawi, T. A. Mohammed y S. Al-Zawi, ((Understanding of a convolutional neural network,)) en 2017 International Conference on Engineering and Technology (ICET), ago. de 2017, p´ags. 1-6. doi:10.1109/ICEngTechnol.2017.8308186. direcci´on: https: //ieeexplore.ieee.org/document/8308186 (visitado 17-05-2024). [9] S. Indolia, A. K. Goswami, S. P. Mishra y P. Asopa, ((Conceptual Understanding of Convolutional Neural Network- A Deep Learning Approach,)) Procedia Computer Science, International Conference on Computational Intelligence and Data Science, vol. 132, p´ags. 679-688, 1 de ene. de 2018, issn: 1877-0509. doi:10.1016/j.procs .2018. 05 . 069. direcci´on: https : / / www . sciencedirect . com / science / article / pii / S1877050918308019 (visitado 17-05-2024). [10] J. Nagi, F. Ducatelle, G. A. Di Caro y col., ((Max-pooling convolutional neural networks for vision-based hand gesture recognition,)) en 2011 IEEE International Conference on Signal and Image Processing Applications (ICSIPA), nov. de 2011, p´ags. 342-347. doi:10.1109/ICSIPA.2011.6144164. direcci´on: https://ieeexplore.ieee.org/ document/6144164 (visitado 17-05-2024). 83 BIBLIOGRAF´ IA [11] S. R. Dubey, S. K. Singh y B. Chaudhuri, ((Activation Functions in Deep Learning: A comprehensive Survey and Benchmark,)) Neurocomputing, vol. 503, 1 de jul. de 2022. doi:10.1016/j.neucom.2022.06.111. [12] J. M. B. Genes. ((Breve historia de las redes neuronales,)) Medium. (22 de oct. de 2021), direcci´on: https://medium.com/@joselobenitezg/breve-historia-de-las- redes-neuronales-357e60ea443c (visitado 17-05-2024). [13] K. He, X. Zhang, S. Ren y J. Sun, Deep Residual Learning for Image Recognition, 10 de dic. de 2015. doi:10.48550/arXiv.1512.03385. arXiv: 1512.03385[cs]. direcci´on: http://arxiv.org/abs/1512.03385 (visitado 20-05-2024). [14] G. Huang, Z. Liu, L. van der Maaten y K. Weinberger, Densely Connected Convolutional Networks. 24 de jul. de 2017. doi:10.1109/CVPR.2017.243. [15] C. Shorten y T. M. Khoshgoftaar, ((A survey on Image Data Augmentation for Deep Learning,)) Journal of Big Data, vol. 6, n.o1, p´ag. 60, 6 de jul. de 2019, issn: 2196-1115. doi:10.1186/s40537-019-0197-0. direcci´on: https://doi.org/10.1186/s40537- 019-0197-0 (visitado 20-05-2024). [16] A. Yang y D. Silver, ((The Disadvantage of CNN versus DBN Image Classification Under Adversarial Conditions,)) 18 de mayo de 2021. doi:10.21428/594757db.b65acd40. [17] M. Tan y Q. V. Le, EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks, 11 de sep. de 2020. doi:10.48550/arXiv.1905.11946. arXiv: 1905. 11946[cs,stat]. direcci´on: http://arxiv.org/abs/1905.11946 (visitado 17-05-2024). [18] A. Vaswani, N. Shazeer, N. Parmar y col., Attention is all you need, 1 de ago. de 2023. arXiv: 1706.03762[cs]. direcci´on: http://arxiv.org/abs/1706.03762 (visitado 15-05-2024). [19] ((Archivo:Redes-neuronales-recurrentes-deep-learning-jordi-torres-1024x535.png - Wikipedia, la enciclopedia libre.)) (23 de abr. de 2023), direcci´on: https : / / commons . wikimedia.org/wiki/File:Redes - neuronalesrecurrentes- deeplearning- jordi-torres-1024x535.png (visitado 17-05-2024). [20] A. Gillioz, J. Casas, E. Mugellini y O. Abou Khaled, Overview of the Transformerbased Models for NLP Tasks. 26 de sep. de 2020, 179 p´ags., Pages: 183. doi:10 . 15439/2020F20. [21] A. Dosovitskiy, L. Beyer, A. Kolesnikov y col., An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale, 3 de jun. de 2021. doi:10.48550/arXiv. 2010.11929. arXiv: 2010.11929[cs]. direcci´on: http://arxiv.org/abs/2010.11929 (visitado 17-05-2024). [22] M. Ramashini, P. E. Abas, K. Mohanchandra y L. C. D. Silva, ((Robust cepstral feature for bird sound classification,)) International Journal of Electrical and Computer Engineering (IJECE), vol. 12, n.o2, p´ags. 1477-1487, 1 de abr. de 2022, Number: 2, issn: 2722-2578. doi:10.11591/ijece.v12i2.pp1477-1487. direcci´on: https://ijece. iaescore.com/index.php/IJECE/article/view/25893 (visitado 17-05-2024). [23] S. Carvalho, ((Automatic classification of bird sounds: Using MFCC and mel spectrogram features with deep learning,)) Vietnam Journal of Computer Science, direcci´on: https://www.academia.edu/114461733/Automatic_Classification_of_Bird_ Sounds_Using_MFCC_and_Mel_Spectrogram_Features_with_Deep_Learning (visitado 17-05-2024). 84 BIBLIOGRAF´ IA [24] M. Ning, Y. Lu, W. Hou y M. Matskin, ((YOLOv4-object: an Efficient Model and Method for Object Discovery,)) en 2021 IEEE 45th Annual Computers, Software, and Applications Conference (COMPSAC), Madrid, Spain: IEEE, jul. de 2021, p´ags. 31-36, isbn: 978-1-66542-463-9. doi:10.1109/COMPSAC51774.2021.00016. direcci´on: https: //ieeexplore.ieee.org/document/9529473/ (visitado 17-05-2024). [25] L. Lucchese y S. Mitra, ((Color Image Segmentation: A State-of-the-Art Survey,)) Proceedings of Indian National Science Academy, vol. 2, 1 de ene. de 2001. [26] nae-lab. ((Naemura Lab,)) The University of Tokyo, JAPAN. (), direcci´on: https:// nae-lab.tumblr.com/ (visitado 17-05-2024). [27] ((xeno-canto :: Sharing wildlife sounds from around the world.)) (), direcci´on: https: //xeno-canto.org/ (visitado 16-05-2024). [28] ((API :: xeno-canto.)) (), direcci´on: https://xeno-canto.org/explore/api (visitado 17-05-2024). [29] ((Archivo:ResBlock.png - Wikipedia, la enciclopedia libre.)) (1 de nov. de 2015), direcci´on: https :/ /commons .wikimedia .org /wiki /File:ResBlock. png (visitado 20-05-2024). [30] T.-Y. Lin, M. Maire, S. Belongie y col., Microsoft COCO: Common Objects in Context, 20 de feb. de 2015. doi:10.48550/arXiv.1405.0312. arXiv: 1405.0312[cs]. direcci´on: http://arxiv.org/abs/1405.0312 (visitado 21-05-2024). [31] A. Howard, M. Zhu, B. Chen y col., ((MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications,)) 16 de abr. de 2017. [32] B. Khasoggi, E. Ermatita y S. Samsuryadi, ((Efficient mobilenet architecture as image recognition on mobile and embedded devices,)) Indonesian Journal of Electrical Engineering and Computer Science, vol. 16, p´ag. 389, 1 de oct. de 2019. doi:10.11591/ ijeecs.v16.i1.pp389-394. [33] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov y L.-C. Chen, MobileNetV2: Inverted Residuals and Linear Bottlenecks, 21 de mar. de 2019. doi:10.48550/arXiv.1801. 04381. arXiv: 1801 . 04381[cs]. direcci´on: http : / / arxiv . org / abs / 1801 . 04381 (visitado 20-05-2024). [34] Y. Yuldashev, M. Mukhiddinov, A. Abdusalomov, R. Nasimov y J. Cho, ((Parking Lot Occupancy Detection with Improved MobileNetV3,)) Sensors, vol. 23, p´ag. 7642, 3 de sep. de 2023. doi:10.3390/s23177642. [35] F. Chollet, Xception: Deep Learning with Depthwise Separable Convolutions, 4 de abr. de 2017. doi:10.48550/arXiv.1610.02357. arXiv: 1610.02357[cs]. direcci´on: http://arxiv.org/abs/1610.02357 (visitado 20-05-2024). [36] X. Miao, Y. Wang, Y. Jiang y col., ((Galvatron: Efficient Transformer Training over Multiple GPUs Using Automatic Parallelism,)) Proceedings of the VLDB Endowment, vol. 16, n.o3, p´ags. 470-479, nov. de 2022, issn: 2150-8097. doi:10.14778/3570690. 3570697. arXiv: 2211.13878[cs]. direcci´on: http://arxiv.org/abs/2211.13878 (visitado 20-05-2024). [37] A. Dosovitskiy, L. Beyer, A. Kolesnikov y col., An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale, 3 de jun. de 2021. doi:10.48550/arXiv. 2010.11929. arXiv: 2010.11929[cs]. direcci´on: http://arxiv.org/abs/2010.11929 (visitado 20-05-2024). 85