scieee AI-readable full text Open interactive document viewer

Detección facial en vídeos digitales

Barbero Pérez, Arturo; Cabezas Garríguez, Alejandro; Morcuende Sierra, José

Abstract

Hoy en día, las redes neuronales constituyen un pilar fundamental en el desarrollo de aplicaciones inteligentes. No obstante, dicho campo se encuentra aún en fase de expansión y son muchos los avances que se consiguen diariamente. La inteligencia artificial es la responsable de crear sistemas autónomos y de automatizar tareas que suponen una gran inversión de tiempo y esfuerzo de ser realizadas por seres humanos, como la identificación de objetos tanto en imágenes como en vídeos. Por otro lado, el análisis forense digital ha sufrido un avance considerable en los últimos años gracias a la evolución tecnológica continua que se está viviendo actualmente. Si se juntan la inteligencia artificial y el análisis forense, se puede mejorar considerablemente dicha labor, y permitir así abrir las puertas a futuros avances que den paso a funcionalidades que aún están por conocer. Este trabajo se centra en intentar crear sistemas óptimos especializados en encontrar rostros en vídeos con condiciones muy desfavorables, con el fin de encontrar comportamientos delictivos de manera rápida y eficiente, facilitando así la labor del análisis forense y desprenderse así de la necesidad de analizar los vídeos manualmente. Para ello, se ha realizado una extensa investigación tanto en los conceptos que engloban el campo de la detección facial, como en trabajos previos relacionados con este tema, para comprender en profundidad cuáles son las técnicas actuales en uso que podrían servir para este trabajo. Tras realizar una amplia experimentación probando con seis modelos distintos basados en aprendizaje profundo, se ha llegado a la conclusión de proponer dos modelos: uno especializado en la detección de vídeos en local capaz de inferir con una exactitud del 74,83 %, y otro adaptado para su funcionamiento en tiempo real con el que se alcanza una exactitud del 74,59%.

Full text

Detecci´on Facial en V´ıdeos Digitales Facial Detection On Digital Videos TRABAJO FIN DE GRADO GRADO EN INGENIER´ IA INFORM ´ ATICA GRADO EN INGENIER´ IA DEL SOFTWARE CURSO 2019–2020 Arturo Barbero P´erez Alejandro Cabezas Garr´ıguez Jos´e Morcuende Sierra Directores Luis Javier Garc´ıa Villalba Esteban Alejandro Armas Vega Departamento de Ingenier´ıa del Software e Inteligencia Artificial Facultad de Inform´atica Universidad Complutense de Madrid Madrid, Junio de 2020 Agradecimientos Arturo Barbero P´erez Antes de comenzar, me gustar´ıa parafrasear una expresi´on atribuida al fil´osofo Bernardo de Chartres, la cual dice as´ı: ((Somos como enanos sobre los hombros de gigantes, de modo que podemos ver las cosas a una mayor distancia. No en virtud de nuestra agudeza visual, o cualquier distinci´on f´ısica, sino porque nos elevan alto por su gran altura)). Para m´ı, aquellos gigantes a los que hace referencia, son todas las personas que, de una forma u otra, han influido en que hoy pueda ser como soy y, gracias a ello, me encuentre finalizando estos estudios. Por ello, me gustar´ıa dedicar y agradecer el presente trabajo a los que yo considero mis gigantes: A mis padres, por todo lo que me han dado durante toda la vida. Por haber estado al lado, tanto en los logros como, sobre todo, en los tropiezos. Por haberme transmitido desde siempre los valores del esfuerzo y la constancia y haber confiado en m´ı cuando yo no lo hac´ıa. A mi hermano, por todos los momentos que hemos pasado y por ser la persona que me dio a descubrir la inform´atica desde peque˜no, haciendo que me acabara interesando cada vez m´as por este mundo. Gracias a ello, ahora s´e qu´e es lo que quiero hacer con mi vida. A mis primos, en especial a Edu y Bea, por toda la ayuda y consejos que me han brindado a lo largo de los a˜nos. Porque, adem´as de familia, son ejemplos y modelos a seguir tanto personal como profesionalmente. No podr´ıa estar m´as agradecido. A David y Mariano, por estar pr´acticamente desde el principio de los tiempos y ser desde entonces un gran apoyo. Por todas las buenas experiencias que hemos pasado juntos y por haberme ense˜nado lo que es realmente el valor de la amistad y la lealtad. A todos mis mastodontes, fieras y leyendas —ellos saben qui´enes son—, por todas las risas, quedadas y el apoyo continuo en pr´acticas y ex´amenes. Gracias a ellos, ahora la frase ((¡Feliz a˜no!)) tiene un significado a´un m´as especial. Mi experiencia universitaria habr´ıa sido muy distinta sin vosotros. iii iv A los profesores que he ido teniendo a lo largo de la carrera porque, adem´as de haberme ense˜nado el campo de la Ingenier´ıa Inform´atica, me han hecho darme cuenta de que enfrentarse a problemas complejos por los que nunca antes has pasado es una de las mejores formas de crecer como persona. Y por ´ultimo, no podr´ıa olvidarme tanto de nuestros directores como de mis compa˜neros, as´ı como de Ana Lucila y Alexandra. Gracias por darme la oportunidad de realizar este trabajo con todos vosotros y haberme acompa˜nado en este reto. Estoy seguro de que, de no haber sido por vuestra ayuda, la realizaci´on de este proyecto se habr´ıa dificultado en gran medida. v Alejandro Cabezas Garr´ıguez En primer lugar, me gustar´ıa agradecer a nuestros directores, Luis Javier y Esteban por habernos dado la oportunidad de investigar sobre estos campos que, personalmente, me han hecho amar aun m´as esta carrera y el mundo del software y la inform´atica en general. Gracias por aceptar aquella reuni´on en mitad de verano y gracias por aceptarnos para realizar este proyecto. Adem´as, creo que el trabajo que hemos realizado conjuntamente con Ana ha sido muy satisfactorio y productivo, y le agradezco a esta persona la labor de organizaci´on que ha tenido con nosotros a lo largo del desarrollo de todo el trabajo. Tambi´en debo agradecer a Alexandra por la labor que realiz´o a principio de curso para ense˜narnos los conceptos b´asicos con los que poder comenzar a investigar y a aprender por nosotros mismos. Sin duda alguna no habr´ıamos podido comenzar con tanta soltura si ella no nos hubiese explicado conceptos tan b´asicos sobre Inteligencia Artificial y Redes Neuronales. Por supuesto, tambi´en debo agradecerle la labor y el empe˜no puesto en este trabajo a mis compa˜neros de proyecto, Jos´e y Arturo. Tengo muy claro que sin ellos, el desarrollo de la idea habr´ıa sido imposible y la labor de investigaci´on habr´ıa supuesto muchas m´as complicaciones y quebraderos de cabeza. Estoy seguro de que ha sido nuestro trabajo en equipo lo que nos he hecho poder avanzar de manera efectiva, siempre dando pasos firmes. En especial, quiero agradecer a Arturo el conocimiento que ha aportado a el proyecto, puesto que ´el conoc´ıa previamente conceptos del mundo de la Inteligencia Artificial. Gracias a ´el hemos podido aprender y aplicar conocimientos de una manera mucho m´as r´apida y efectiva. Tambi´en quiero agradecer a la Universidad y a los profesores que me han ense˜nado todos los conceptos necesarios durante todos estos a˜nos de carrera. Gracias a ellos he podido conocer el mundo del software y de la inform´atica en todo su esplendor y me han hecho darme cuenta de cual es mi lugar en la vida y qu´e es lo que quiero hacer con ella. Me han guiado con sus asignaturas a trav´es de un camino dif´ıcil, lleno de retos, y me han hecho superarme y ofrecer lo mejor de m´ı. Por ´ultimo, me gustar´ıa entrar en una parte de mi coraz´on que no suelo compartir con los dem´as porque creo que a´un no estoy preparado para ello. Hoy, mientras termino lo que puede parecer un p´arrafo insignificante en comparaci´on a todo lo que est´a por venir en esta memoria, cada palabra que escribo me trae a la mente todos los momentos que he pasado en mi vida. Me hacen darme cuenta de quienes han sido los apoyos, los cimientos, las bases... el todo de mi vida. Hola pap´a, hola mam´a, estoy seguro de que en alg´un momento leer´eis esto, estoy seguro de que os recordar´e que revis´eis esta parte, estoy seguro de que sentir´e nervios por saber vuestra reacci´on. Creo que he dejado bastante claro lo que signific´ais para mi y lo que supon´eis en mi vida, pero no pienso dejar pasar los d´ıas sin que os los recuerde: sois mi ´exitos, mis fracasos, mis virtudes, mis defectos, vi mi ser y estar, mi ayer, hoy y ma˜nana, mi todo y mi nada. No puedo dejar este apartado sin acordarme de vosotros, aunque nunca dejar´e de teneros en mi mente. A vosotros os debo en primer lugar mi vida, y en segundo lugar todo. Gracias a vosotros hoy puedo escribir esta memoria, hoy puedo cerrar este cap´ıtulo final para terminar esta carrera tan maravillosa. Gracias, soy mejor persona hoy en d´ıa por haber tomado como ejemplo a dos personas tan incre´ıbles como vosotros. Gracias Fran por ser mi enfermero, mi hermano mayor y mi amigo. Gracias a ti tengo claro que, no solo soy una persona sana de cuerpo, sino tambi´en de alma. Gracias por ser el escudo de mi mente, por salvarme de mi propio mar de ideas que a veces me ahoga y por liberarme de las cadenas que a veces me pongo a mi mismo y me impiden disfrutar. Finalmente, me gustar´ıa recordar unos versos de un poema escrito por Rudyard Kipling: ((Si puedes llenar cada implacable minuto, con sesenta segundos de combate brav´ıo, tuya es la Tierra y sus codiciados frutos, y —lo que es m´as—: ¡ser´as un Hombre, hijo m´ıo!)). A´un recuerdo cuando t´u, pap´a, me mostraste este poema entre l´agrimas y me hiciste prometer que estos versos fuesen el motor de mi vida, mientras enmarcabas el poema en mi habitaci´on. Pues bi´en, as´ı ha sido, y as´ı ser´a, puesto que no parar´e ni un segundo en conseguir aquello que me propongo, y esto es gracias a vosotros. Pap´a, mam´a, Fran, abuela, abuelo, tito, tita, prima, primo... familia, desde lo m´as profundo de mi alma, os lo agradezco todo y os debo lo que est´a por llegar en mi vida. Simplemente, gracias. vii Jos´e Morcuende Sierra Estar escribiendo esto me da que pensar, esto supone el fin de una etapa. Supone abandonar una de las mejores fases, de la que mejores recuerdos tengo y mas apoyo he recibido, donde considero que he ganado verdaderos amigos. En estos cuatro a˜nos ha habido tanto buenos momentos como malos, pero todos ellos forman parte de lo que llaman ”la vida universitaria”. Me gustar´ıa empezar agradeci´endoselo mi padre y a mi madre, si no fuera por ellos no hubiera podido vivir esta experiencia, apoy´andome a˜no tras a˜no, impuls´andome a continuar y sacar lo m´aximo de mi, a no ponerme limitaciones, en general me han ense˜nado a confiar en mi mismo. Gracias a ellos he aprendido que intentarlo siempre merece la pena, que estas experiencias son realmente importante en la vida. Asimismo agradec´erselo a mis t´ıos y a mi abuela por estar siempre pendientes, por llamarme cada vez que realizaba un examen o entregaba una tarea para preguntar que tal me hab´ıa ido y darme ´animos fuese cual fuese el resultado. Tambi´en agradezco el haber conocido a Alejandro desde los inicios de de la carrera, gracias por todo el apoyo que me has ofrecido, tengo claro que sin tu ayuda hoy d´ıa no estar´ıa donde estoy. No me olvido de Arturo, que a pesar de solo conocerle de vista por la facultad considero que me llevo una amistad m´as. Sin ellos todo esto no hubiera sido posible, ambos han sido primordiales para la realizaci´on y finalizaci´on de este trabajo, adem´as de lo llevadero que han conseguido que sea este duro camino. Otra parte importante es resto de las personas de la Universidad, el resto de amigos con los que he tenido la suerte de compartir clases y viajes. Asimismo, los profesores han tenido un papel muy relevante en estos cuatro a˜nos, han sido los encargados de ense˜narnos poco a poco en que consiste de verdad esta carrera. No me olvido de nuestros directores, Luis Javier y Esteban, que nos dieron la oportunidad de realizar este trabajo de investigaci´on, que a pesar de no estar nada acostumbrados, que junto con Ana Lucila nos han ayudado a completarlo, y m´as siendo en el campo de la Inteligencia Artificial, que personalmente no hab´ıa visto nada nunca. Por ultimo me gustar´ıa agradec´erselo a esa persona que conoc´ı a mediados de agosto del a˜no pasado, a la que en este tiempo he cogido mucho cari˜no, por todo lo que has hecho por mi, por todo el apoyo que me has ofrecido de manera continuada desde que te conozco, por preocuparte todos los d´ıas tanto de mi como de mis estudios, ni te imaginas lo mucho que te agradezco que me hayas acompa˜nado en el final de etapa, simplemente gracias Lidia. ´ Indice General ´ Indice de Figuras XIII ´ Indice de Tablas XV ´ Indice de Configuraciones XVII Lista de Acr´ onimos XXI Abstract XXIII Resumen XXV 1. Introducci´ on 1 1.1. Motivaci´on .................................... 1 1.2. Contexto ..................................... 2 1.3. Objeto de la Investigaci´on ............................ 2 1.4. Plan de Trabajo ................................. 3 1.5. Estructura del Trabajo .............................. 6 2. Marco Conceptual 7 2.1. Historia de la Inteligencia Artificial ....................... 7 2.2. T´ecnicas Utilizadas en Inteligencia Artificial .................. 9 2.2.1. Aprendizaje Autom´atico ......................... 10 2.2.2. Aprendizaje Profundo .......................... 13 2.2.3. Aprendizaje Por Transferencia ..................... 14 2.3. Visi´on Artificial .................................. 15 ix xvi ´ INDICE DE TABLAS 5.14. Resultados usando el modelo SSD con Inception en v´ıdeos y streaming . . . 63 5.15. Precisi´on media usando SSD con ResNet .................... 65 5.16. Precisi´on media a distintas distancias usando SSD con ResNet ....... 65 5.17. Exhaustividad media usando SSD con ResNet ................. 65 5.18. Exhaustividad media en distintas distancias usando SSD con ResNet . . . . 65 5.19. Resultados m´as espec´ıficos usando SSD con ResNet .............. 66 5.20. Resultados usando el modelo SSD con ResNet en v´ıdeos y streaming . . . . 66 5.21. Precisi´on media usando Faster R-CNN con Inception ............. 68 5.22. Precisi´on media en distintas distancias usando R-CNN con Inception . . . . 68 5.23. Exhaustividad media usando Faster R-CNN con Inception .......... 69 5.24. Exhaustividad media en distintas distancias usando Faster R-CNN con Inception ..................................... 69 5.25. Resultados m´as espec´ıficos usando Faster R-CNN con Inception ....... 69 5.26. Resultados usando el modelo Faster R-CNN con Inception en v´ıdeos y streaming ..................................... 70 5.27. Precisi´on media usando Faster R-CNN con ResNet .............. 71 5.28. Precisi´on media en distintas distancias usando Faster R-CNN con ResNet . 71 5.29. Exhaustividad media usando Faster R-CNN con ResNet ........... 72 5.30. Exhaustividad media en distintas distancias usando Faster R-CNN con ResNet ....................................... 72 5.31. Resultados m´as espec´ıficos usando Faster R-CNN con ResNet ........ 72 5.32. Resultados usando el modelo Faster-RCNN con ResNet en v´ıdeos y streaming 73 5.33. Precisi´on media usando Faster R-CNN con Inception-ResNet ........ 74 5.34. Precisi´on media en distintas distancias usando Faster R-CNN con Inception-ResNet ................................. 74 5.35. Exhaustividad media usando Faster R-CNN con Inception-ResNet ..... 75 5.36. Exhaustividad media en distintas distancias usando Faster R-CNN con Inception-ResNet ................................. 75 5.37. Resultados m´as espec´ıficos usando Faster R-CNN con Inception-ResNet . . 75 5.38. Resultados usando el modelo Faster R-CNN con Inception-ResNet en v´ıdeos ystreaming .................................... 76 ´ INDICE DE TABLAS xvii 8.1. Table of milestones followed by the team followed by their identifiers . . . . 96 ´ Indice de Configuraciones 4.1. Configuraci´on tenida en cuenta en Model ................... 44 4.2. Configuraci´on tenida en cuenta para el entrenamiento ............ 45 4.3. Configuraci´on tenida en cuenta para la validaci´on ............... 46 xix Lista de Acr´onimos AFEW AFEW 6.0 AI Artificial Intelligence ALSTM Association Long Short Term Memory ANN Artificial Neural Network C3D 3D Convolutional Neural Networks CB Celebrity-1000 CNN Convolutional Neural Networks CSV Comma-Separated Values CV Computer Vision DL Deep Learning FER FER-2013 FPS Frames Per Second IOU Intersection over Union LFW Labeled Faces in the Wild LSTM Long Short Term Memory xxi xxii Lista de Acr´ onimos mAP Mean Average Precision ML Machine Learning NAN Neural Aggregation Network RL Reinforcement Learning RNN Recurrent Neural Networks SL Supervised Learning SSD Single Shot Detector SSH Secure Shell SVM Support Vector Machine TL Transfer Learning UL Unsupervised Learning URL Uniform Resource Locator XML eXtensible Markup Language YF YouTube Faces YO YouTube-Object Abstract Today, neural networks are a fundamental pillar in the development of intelligent applications. However, this field is still in a phase of expansion and many advances are being made every day. Artificial intelligence is responsible for creating autonomous systems and for automating tasks that require a great investment of time and effort to be carried out by human beings, such as the identification of objects in both images and videos. On the other hand, digital forensic analysis has undergone a considerable advance in recent years thanks to the continuous technological evolution that is currently taking place. If artificial intelligence and forensic analysis are brought together, this work can be considerably improved, thus opening the door to future advances that will give way to functionalities that are still unknown. This work is focused on trying to create optimal systems specialized in finding faces in videos with very unfavorable conditions, in order to find criminal behavior quickly and efficiently, thus facilitating the work of forensic analysis and thus get rid of the need to analyze the videos manually. For this purpose, extensive research has been carried out both in the concepts that encompass the field of facial detection, as well as in previous work related to this topic, in order to understand in depth which are the current techniques in use that could serve for this work. After carrying out extensive experimentation by testing six different models based on deep learning, the conclusion has been reached that two models should be proposed: one specialized in the detection of videos in premises capable of inferring with an accuracy of 74.83 %, and another adapted for real time operation with which an accuracy of 74.59 % is achieved. Keywords: Forensics, Identification, Detection, Video, Neural Networks, Artificial Intelligence, Faces, Deep Learning xxiii Resumen Hoy en d´ıa, las redes neuronales constituyen un pilar fundamental en el desarrollo de aplicaciones inteligentes. No obstante, dicho campo se encuentra a´un en fase de expansi´on y son muchos los avances que se consiguen diariamente. La inteligencia artificial es la responsable de crear sistemas aut´onomos y de automatizar tareas que suponen una gran inversi´on de tiempo y esfuerzo de ser realizadas por seres humanos, como la identificaci´on de objetos tanto en im´agenes como en v´ıdeos. Por otro lado, el an´alisis forense digital ha sufrido un avance considerable en los ´ultimos a˜nos gracias a la evoluci´on tecnol´ogica continua que se est´a viviendo actualmente. Si se juntan la inteligencia artificial y el an´alisis forense, se puede mejorar considerablemente dicha labor, y permitir as´ı abrir las puertas a futuros avances que den paso a funcionalidades que a´un est´an por conocer. Este trabajo se centra en intentar crear sistemas ´optimos especializados en encontrar rostros en v´ıdeos con condiciones muy desfavorables, con el fin de encontrar comportamientos delictivos de manera r´apida y eficiente, facilitando as´ı la labor del an´alisis forense y desprenderse as´ı de la necesidad de analizar los v´ıdeos manualmente. Para ello, se ha realizado una extensa investigaci´on tanto en los conceptos que engloban el campo de la detecci´on facial, como en trabajos previos relacionados con este tema, para comprender en profundidad cu´ales son las t´ecnicas actuales en uso que podr´ıan servir para este trabajo. Tras realizar una amplia experimentaci´on probando con seis modelos distintos basados en aprendizaje profundo, se ha llegado a la conclusi´on de proponer dos modelos: uno especializado en la detecci´on de v´ıdeos en local capaz de inferir con una exactitud del 74,83 %, y otro adaptado para su funcionamiento en tiempo real con el que se alcanza una exactitud del 74,59 %. Palabras Clave: An´alisis Forense, Identificaci´on, Detecci´on, V´ıdeo, Redes Neuronales, Inteligencia Artificial, Rostros, Deep Learning. xxv 6Cap ´ ıtulo 1. Introducci´ on 1.5. Estructura del Trabajo El resto del trabajo est´a organizado en 9 cap´ıtulos con la estructura que se comenta a continuaci´on: El Cap´ıtulo 2explica conceptos b´asicos tanto las bases de la AI como la detecci´on de objetos. Concretamente, este cap´ıtulo centra ambos campos de estudio en el t´ermino que concierne a este trabajo, que es la detecci´on de rostros en im´agenes digitales y v´ıdeos. Por tanto, en este cap´ıtulo se habla tanto de la historia que envuelve a la AI como de las t´ecnicas utilizadas y los distintos modelos de Redes Neuronales. El Cap´ıtulo 3comienza mostrando un estado del arte en el que se presentan distintas t´ecnicas e investigaciones realizadas sobre el campo de la identificaci´on de rostros en im´agenes, as´ı como distintas arquitecturas y modelos presentados. Dichos trabajos representan la situaci´on en la que se encuentra actualmente el campo de la detecci´on de rostros en im´agenes y v´ıdeos. De cada art´ıculo, se extrae tanto la idea y las t´ecnicas utilizadas para el desarrollo de esta, como el conjunto de entrenamiento utilizado y las conclusiones a destacar en base a los resultados obtenidos. Dichos resultados se almacenan en distintas tablas para poder obtener comparativas entre los distintos trabajos. Finalmente se realiza una puesta en com´un de los distintos art´ıculos para poder extraer as´ı conclusiones acerca del estado actual del objeto de estudio en este trabajo, la identificaci´on de caras en im´agenes y v´ıdeos digitales. El Cap´ıtulo 4presenta las contribuciones de este trabajo. As´ı pues, en primer lugar se presenta una extensa descripci´on de las tecnolog´ıas aplicadas para la creaci´on de los modelos que posteriormente se pondr´an a prueba en cap´ıtulos posteriores. Tambi´en se explica detalladamente los distintos conjuntos de im´agenes utilizados en el entrenamiento de los modelos y las distintas m´etricas utilizadas en las evaluaciones de la fase de experimentaci´on. El Cap´ıtulo 5describe los experimentos realizados para evaluar la efectividad de los modelos propuestos a partir de las tecnolog´ıas explicadas en el Cap´ıtulo 4y presenta los resultados obtenidos, as´ı como la variaci´on de dichos resultados en funci´on de la optimizaci´on de la configuraci´on inicial. El Cap´ıtulo 6relata las aportaciones personales de cada uno de los integrantes del equipo al desarrollo de este trabajo. El Cap´ıtulo 7muestra las principales conclusiones de este trabajo, las l´ıneas futuras de investigaci´on. Por ´ultimo, los Cap´ıtulos 8y9son las traducciones al ingl´es de la Introducci´on y de las Conclusiones. Cap´ıtulo 2 Marco Conceptual En este cap´ıtulo se pretende explicar los conceptos, tendencias y las diferentes t´ecnicas referentes a la AI y la detecci´on de objetos, centr´andonos sobre todo en el objetivo de detecci´on de rostros en im´agenes digitales y v´ıdeos. Para ello, se explicar´a de d´onde surge la AI y los hitos que se han conseguido previos a este trabajo, las t´ecnicas m´as usadas a d´ıa de hoy en el campo de la AI, las bases sobre las que se cimienta el DL y las Redes Neuronales y, por ´ultimo, c´omo se ha aplicado todo este conocimiento para crear detectores capaces de encontrar un objeto, o rostro en este caso, de manera eficiente. 2.1. Historia de la Inteligencia Artificial ¿Se pueden crear m´aquinas inteligentes? Durante siglos, los grandes pensadores han utilizado esta pregunta como fuente de motivaci´on para permitir el avance de la AI. Con el tiempo, el desarrollo de la AI ha dado lugar a que esta cuesti´on se empiece a relacionar cada vez m´as con el funcionamiento del cerebro, hasta tal punto que, actualmente, la investigaci´on pasa por considerar el cerebro como un sistema computacional y la AI como un modelo que se encarga de emular el funcionamiento de este. Debido a esto, se podr´ıa decir que el fin ´ultimo de la AI es conseguir que la m´aquina tenga una inteligencia similar a la humana, trat´andose as´ı de uno de los objetivos m´as ambiciosos que se han podido plantear en la ciencia. Pese a que en los a˜nos 40 se publicaron algunos trabajos, la AI no goz´o de una gran repercusi´on hasta el a˜no 1950, con la difusi´on de un trabajo firmado por el matem´atico brit´anico Alan Turing. Alan Turing “considerado padre de la inform´atica y precursor de la AI” dio sus primeros pasos en esta rama del conocimiento dise˜nando un programa que permit´ıa a los usuarios jugar al ajedrez. A˜nos despu´es, escribi´o un art´ıculo para la revista Mind [Tur50], en el que defendi´o el comportamiento inteligente que podr´ıan llegar a tener las maquinas; y propuso un test, ahora conocido como el Test de Turing, que permit´ıa determinar si se pod´ıa considerar inteligente a un computador o no. A d´ıa de hoy, se piensa que este test no es muy fiable y se han propuesto otras versiones que lo complementan. 7 8Cap ´ ıtulo 2. Marco Conceptual A su vez, en los ´ Angeles, Belmont Farley y Wesley Clark realizaron en la Western Joint Computer Conference una presentaci´on de cuatro trabajos: tres de ellos trataban sobre reconocimiento de patrones y el restante sobre m´aquinas para jugar al ajedrez. En uno de ellos, se pod´ıa ver c´omo se estaba buscando la manera de relacionar el cerebro con una AI, y describieron la manera de reconocer patrones mediante el ajuste de los pesos de una red neuronal artificial. Entre los a˜nos 1955 y 1956, Allen Newell y Herbert Simon, difundieron un programa conocido por el nombre Logic Theorist, que permit´ıa demostrar teoremas de l´ogica proposicional que estaban contenidos en el libro Principia Mathematica [WR10]. A partir de aqu´ı, la investigaci´on en la AI comenz´o a aumentar y se consiguieron distintos avances. En los a˜nos 60, en el Stanford Research Institute, Duda y Hart crearon con el lenguaje Fortran el primer sistema basado en redes neuronales que era capaz de aprender. M´as tarde, se comenzaron a dar los primeros pasos en cuanto al procesamiento del lenguaje natural se refiere. [LdMM17] Es importante destacar que, hasta 1980, no se volvieron a ver grandes avances en este campo. Aunque los ordenadores eran cada vez m´as potentes y econ´omicamente menos costosos, a´un se estaba lejos de conseguir un comportamiento verdaderamente inteligente por parte de las m´aquinas. Esta situaci´on se agrav´o debido a una escasa financiaci´on por parte de los gobiernos y al desarrollo de unos algoritmos que no eran muy eficientes en el ´ambito de la AI. A partir de los a˜nos 90, empezaron a surgir diversas aportaciones de valor para posibilitar el progreso en este ´area. Concretamente, un hito muy sonado es el que se consigui´o en 1997, cuando una AI de IBM consigui´o ganar al campe´on del mundo de ajedrez [FH99]. A˜nos m´as tarde, se consigui´o crear un robot que interpretaba emociones y, a su vez, era capaz de expresarlas [Bre20]. Otro punto de inflexi´on se produjo en 2006 [HOT06], cuando G. E. Hinton, S. Osindero, y Yee-Whye Teh dieron a conocer mediante una publicaci´on lo que m´as tarde se conoci´o como Aprendizaje Profundo. En t´erminos generales, el trabajo explicaba arquitecturas de redes neuronales con m´ultiples capas, que permit´ıan que estas aprendieran de una forma m´as aguda. A estos diez ´ultimos a˜nos se los conoce como la ´epoca dorada de la AI, debido a los grandes avances que se est´an produciendo, impulsados tambi´en por una mejora de los algoritmos y una mayor capacidad de c´omputo. En 2012, Google se encarg´o de crear una red neuronal artificial que contaba con 16.000 procesadores a la que le suministraron 10 millones de miniaturas de v´ıdeos de YouTube al azar [Cla20]. Como resultado, el sistema aprendi´o a reconocer rostros con una precisi´on del 81,7 %, partes del cuerpo humano con una precisi´on de 76,7 %, e identificaba gatos el 74,8 % de las veces. Por otro lado, en 2014, un bot super´o por primera vez el famoso Test de Turing. Este sistema consigui´o enga˜nar a 30 de los 150 jueces a los que fue sometido el programa durante el test, haci´endose pasar por un ni˜no de 13 a˜nos y manteniendo una conversaci´on con ellos. En la actualidad, la AI se est´a viendo muy favorecida por el uso del Big Data, gracias al cual se recogen una cantidad inmensa de datos y se procesan para poder extraer conocimiento posteriormente de ellos. [Sch97]. El beneficio de esto es que se est´a empezando a aplicar a diversos campos, como pueden ser la medicina, rob´otica, seguridad, transporte, comunicaci´on, finanzas, sociedad, etc. Adem´as, es evidente que grandes empresas como Amazon, Google, Apple, IBM y Microsoft, est´an realizando una gran inversi´on y generando un valioso desarrollo en este ´area, que acabar´a dando lugar a un mayor progreso con el paso de los a˜nos. 2.2. T´ ecnicas Utilizadas en Inteligencia Artificial 9 2.2. T´ecnicas Utilizadas en Inteligencia Artificial A lo largo de los ´ultimos 20 a˜nos, los investigadores se han centrado mayormente en diferentes conceptos para poder definir el t´ermino de AI. Esto ha d´ıa de hoy ha cambiado. Ahora se quiere que las m´aquinas se comporten de manera racional mediante la capacidad de actuar, sentir, pensar y razonar, por lo que se tiene que enfocar la AI de distintas formas. El lado positivo de esto reside en que, todas estas formas de entender lo que es una AI, tienen algo en com´un: se basan en encontrar teor´ıas y metodolog´ıas que puedan ayudar a las m´aquinas a entender el mundo y reaccionar a las situaciones de la misma forma que lo har´ıa un humano. Estas teor´ıas se pueden clasificar en distintos marcos de trabajo seg´un el enfoque y el problema que resuelvan en el mundo real. Esta clasificaci´on se muestra en la Figura 2.1. Figura 2.1: Principales aplicaciones de la Inteligencia Artificial Aprendizaje Autom´ atico: Posiblemente esta sea la disciplina m´as usada actualmente para crear comportamientos inteligentes. El objetivo es dise˜nar y desarrollar modelos que aprendan de datos ya existentes y realizar predicciones con nuevos datos. La mayor restricci´on de estos algoritmos es que est´an profundamente 10 Cap ´ ıtulo 2. Marco Conceptual limitados por los datos que se le suministren. De esta forma, si tenemos un conjunto de datos peque˜no, el modelo resultante ser´a bastante impreciso tambi´en. Este campo tiene distintas vertientes a su vez, como los que se pueden ver en la Figura 2.1. Adem´as, cuenta con algunas t´ecnicas como el Aprendizaje por Transferencia (del ingl´es, Transfer Learning (TL)), que nos confiere la habilidad de modificar modelos que ya han aprendido para ajustarlo a nuestras necesidades. Sistemas Expertos: Son sistemas que toman decisiones o proporcionan consejos usando t´ecnicas de AI. En general, se utiliza en campos como las finanzas, marketing, medicina, etc. y extraen el conocimiento de una bases de datos para dar los consejos previamente dicho. Procesamiento del Lenguaje Natural: Este campo se encarga de procesar y entender textos. Generalmente, este tipo de t´ecnicas se utilizan en motores de b´usqueda, de manera que al usuario solo se le muestran los mejores resultados posibles en relaci´on con su b´usqueda realizada. Planificaci´ on: Este campo se ocupa de brindar el m´aximo rendimiento con unos costos m´ınimos en una planificaci´on. Comienzan con unos determinados hechos y una especificaci´on del objetivo a conseguir y generan el plan m´as ´optimo para lograr los resultados. Rob´ otica: En la rob´otica se combinan varios conceptos de la AI, ya que los robots tienen distintos sensores que, dependiendo de la situaci´on, les permiten actuar de una manera u otra. Son capaces de adaptarse a nuevas situaciones pudiendo ver objetos, medir temperaturas, movimientos, etc. Visi´ on Artificial: Como su propio nombre indica, hay sistemas que facilitan la tarea de otorgar la capacidad de visi´on a un computador, mediante el tratamiento de im´agenes y v´ıdeos. Estos algoritmos comprenden el contenido que se le suministra y extraen informaci´on de ello. Actualmente, la investigaci´on se centra en aplicarlo a conducci´on aut´onoma y la realidad aumentada entre otros. Reconocimiento del Habla: Estos sistemas se encargan de o´ır y reconocer el habla. D´ıa a d´ıa, se utilizan com´unmente en asistentes personales que son capaces de entender y realizar acciones espec´ıficas en base a lo que se les ha pedido. Una vez se ha entendido cu´ales son las distintas aplicaciones existentes en la AI, se va a profundizar a´un m´as en aquellas t´ecnicas que son necesarias para el objetivo de la detecci´on de rostros en v´ıdeos. 2.2.1. Aprendizaje Autom´atico Como se explica en [SF18], el ML es el campo de estudio que est´a caracterizado por ser un software que aprende de experiencias previas. En este tipo de programas lo que se intenta conseguir que estos algoritmos aprendan patrones que se hallan en los datos previos y produzcan unos resultados inteligentes para datos nuevos de entrada. Otro nombre por el que se conoce al ML es Aprendizaje Inductivo debido a que el c´odigo trata de inferir estructuras a trav´es de los datos. 2.2. T´ ecnicas Utilizadas en Inteligencia Artificial 11 En ocasiones, modelar el comportamiento que tiene seguir un determinado programa puede ser una tarea bastante compleja, debido a que no es posible hacerlo mediante una secuencia de pasos claramente definida y en el algoritmo est´a involucrado alg´un tipo de patr´on que denota o requiere cierta inteligencia. Para estos casos, el ML puede ser la herramienta correcta a utilizar. Lo que este tipo de algoritmos proporciona es un conjunto de herramientas para escribir c´odigo sin definir todos y cada uno de los detalles del algoritmo. El programador se encarga de ajustar algunos par´ametros y el resto se infieren mediante un proceso de aprendizaje llamado entrenamiento. Este proceso permite encontrar autom´aticamente los par´ametros que mejor definen nuestro modelo. Generalmente, el rendimiento del modelo se puede mejorar mediante la disponibilidad de una mayor cantidad de ejemplos o datos que deben suministrarse como entrada del sistema en la fase de entrenamiento. Se va a suponer el caso de que se est´a tratando de cocinar una receta. Si nunca antes se ha cocinado nada, puede llevar d´ıas descubrir cu´al es la mejor combinaci´on de ingredientes para hacer que el plato sea de buen gusto. Es esta creaci´on de recetas la que da la capacidad de recordar r´apidamente c´omo hacer nuestro plato. Del mismo modo, el ML comparte esta idea. Como muestra la Figura 2.2, se puede decir que un algoritmo de ML se puede describir en dos etapas: entrenamiento ypredicci´on. Figura 2.2: Fases de un algoritmo de Aprendizaje Autom´atico En la fase de entrenamiento, el objetivo que se persigue es describir los datos mediante el llamado vector de caracter´ısticas, capaz de representar objetos del mundo real en una lista de atributos. Estos vectores son los que el algoritmo de aprendizaje utiliza para realizar su entrenamiento y obtener nuestro modelo. Esta fase es la que consume la mayor parte del tiempo, pudiendo durar horas, d´ıas o incluso semanas en completarse. 12 Cap ´ ıtulo 2. Marco Conceptual Por otro lado, se tiene la fase de predicci´on en la que el modelo previamente creado recibe un vector de caracter´ısticas nuevo para ´el, es decir, un dato con el que no ha sido entrenado. Esta fase lleva mucho menos tiempo que la de aprendizaje —pudiendo ser incluso en tiempo real— y se encarga finalmente de hacer la predicci´on deseada. Como es de esperar, el ML cuenta con distintos tipos de algoritmos de aprendizaje que pueden clasificarse a menudo en varios grupos. Los m´as importantes son los siguientes: Aprendizaje Supervisado,Aprendizaje No Supervisado,Aprendizaje Por Refuerzo y Aprendizaje Profundo. Debido a la importancia de este ´ultimo en la consecuci´on de nuestro objetivo, se dedicar´a m´as adelante un apartado entero donde se explicar´a con m´as detalle. Aprendizaje Supervisado: El Aprendizaje Supervisado (del ingl´es Supervised Learning (SL)), se refiere a aquellos algoritmos que utilizan datos que deben ser etiquetados previamente por un humano antes de poder introducirse en el algoritmo. El objetivo que se persigue es poder etiquetar un nuevo dato bas´andose en las caracter´ısticas encontradas en los datos de entrenamiento. La Figura 2.2 precisamente muestra estos tipos de algoritmos. Suponiendo que se quiere predecir los ingresos de una persona en base a su edad, localizaci´on, educaci´on, etc. Para ello, se tendr´ıa que tener un conjunto de datos con esta informaci´on de las personas y etiquetar a cada una de ellas con los ingresos que recibe. De esta manera, se le dir´ıa al algoritmo qu´e par´ametros corresponden con qu´e ingresos y el algoritmo aprender´ıa a realizar ese mapeado. Las principales t´ecnicas que se utilizan en ML son las siguientes: Regresi´on Lineal,Regresi´on Log´ıstica,K-Vecinos M´as Cercanos,´ Arboles de Decisi´on,Redes Neuronales Artificiales yM´aquinas de Vectores de Soporte Aprendizaje No Supervisado: El Aprendizaje No Supervisado (del ingl´es Unsupervised Learning (UL)), se refiere a aquellos algoritmos que no necesitan datos etiquetados para poder crear un modelo de aprendizaje. En cierta manera, es justo lo contrario a lo que hemos comentado en el apartado previo. Debido a que no hay etiquetas, se deben extraer patrones directamente de los datos. En este caso, si suponemos que existe una aplicaci´on que se aprovecha de la variedad de usuarios que la utilicen y se quiere clasificar a estos para saber con qu´e tipo de personas se cuentan. Aqu´ı no se sabr´ıa exactamente qu´e criterio seguir para poder separarlas. Por lo tanto, en esta situaci´on entrar´ıa en juego el UL para clasificar de manera ´optima a estas personas en distintos grupos. Las principales t´ecnicas que se utilizan en UL son las siguientes: Agrupaci´on yReducci´on de la Dimensi´on Aprendizaje Por Refuerzo: El Aprendizaje Por Refuerzo (del ingl´es Reinforcement Learning (RL)), se refiere a aquellos algoritmos que, a diferencia del SL y del UL que est´an relacionados con el etiquetado, entrenan con la informaci´on que reciben del entorno cuando este reacciona a ciertas acciones. El objetivo es aprender qu´e combinaci´on de acciones produce los resultados m´as favorables. Este tipo de algoritmos se suelen principalmente para crear la AI de videojuegos o en el campo de la rob´otica. 2.2. T´ ecnicas Utilizadas en Inteligencia Artificial 13 2.2.2. Aprendizaje Profundo El DL es el subcampo del ML que pertenece a la familia de algoritmos de Redes Neuronales Artificiales y profundiza en ellos tanto funcional como estructuralmente. Estas se inspiran en el funcionamiento del cerebro humano y, como tal, tienen unos nodos conectados unos a otros y divididos en capas, los cuales se pasan informaci´on entre s´ı de manera que, cada capa de la red, se encarga de aprender unas determinadas caracter´ısticas de la entrada en cuesti´on. Debido a la relevancia del funcionamiento de estas redes en este trabajo, se explicar´an en secciones posteriores con m´as detalle. Como se puede ver en la Figura 2.3, a diferencia de los algoritmos de ML donde la extracci´on de caracter´ısticas de los datos la realiza expl´ıcitamente un humano, en DL pasa a ser responsabilidad de la arquitectura del propio algoritmo. Como consecuencia, la complejidad de la arquitectura aumenta considerablemente dado que es necesario poder tener m´as capas que procesen esa informaci´on. Figura 2.3: Diferencia entre algoritmo de Aprendizaje Autom´atico y Aprendizaje Profundo Pese a que los algoritmos de DL consiguen mejores resultados que un humano en la mayor´ıa de los casos, no siempre es necesaria su utilizaci´on; esto depender´a de la complejidad del problema que estemos tratando de resolver. Al tratarse de algoritmos mucho m´as complejos que los relativos al ML, la capacidad computacional que pueden llegar a requerir puede ser inmensa en comparaci´on con estos y, por tanto, es de extrema relevancia saber en qu´e momento tenemos que utilizar ML yDL. Dominando esto, se podr´ıan reducir costes tanto en tiempo de ejecuci´on como econ´omicos, en caso de ser necesario utilizar plataformas de computaci´on en la nube para ello. En el caso de este trabajo, si se quisieran extraer las caracter´ısticas que definan una imagen en concreto de forma manual, ser´ıa una tarea demasiado dificultosa, por lo que la utilizaci´on de DL se vuelve casi necesaria. Por tanto, mediante DL no solo se detectar´an los rostros en una imagen dada, sino que adem´as se har´a sin necesidad de decirle a la red neuronal qu´e caracter´ısticas definen un rostro. 14 Cap ´ ıtulo 2. Marco Conceptual 2.2.3. Aprendizaje Por Transferencia Como se expone en [Bro20b], el TL es una t´ecnica usada en ML en la que un modelo que ya ha sido desarrollado y entrenado se reutiliza como base para crear otro modelo que realice una tarea similar. Com´unmente, este m´etodo se utiliza en DL reutilizando modelos preentrenados para tareas de Visi´on Artificial y Procesamiento del Lenguaje Natural debido a la masiva cantidad de datos, recursos computacionales y tiempo que necesitan los modelos de DL para producir un algoritmo que funcione verdaderamente bien. Para poder reutilizar el modelo sin perder el grado de aprendizaje que han alcanzado las capas en su ´ultimo entrenamiento, se debe entrenar ´unicamente la capa de salida, la cu´al deberemos adaptarla a nuestras necesidades seg´un el tipo de tarea que queramos realizar. Durante el proceso para realizar el TL, puede que se utilice todo o parte del modelo preentrenado dependiendo de la t´ecnica que se utilice y el rendimiento que se quiera llegar a alcanzar. La t´ecnica llamada Afinamiento (del ingl´es, Fine-Tune) es m´as complicada de realizar y con ella, no solo se reemplaza la ´ultima capa, sino que tambi´en se reentrenan algunas de las capas anteriores de manera selectiva. [Sar20] El TL, por tanto, es una optimizaci´on que puede permitir ahorrar tiempo y obtener mejores resultados, aunque no tiene por qu´e ser as´ı. Hasta que no se desarrolle y eval´ue el modelo creado no se podr´a saber si se ha desarrollado un beneficio o no, en cuanto a usar TL se refiere. Como se puede ver en la Figura 2.4, hay tres formas por las que se puede averiguar si el modelo ha mejorado utilizando TL. Figura 2.4: Signos de mejora usando Aprendizaje Por Transferencia La primera es comprobando si el rendimiento inicial con el que se ha comenzado a entrenar el algoritmo es mayor de lo que ser´ıa de otra forma. La segunda opci´on que existe ser´ıa comprobar su pendiente. Cuanto m´as pronunciada sea la tasa de mejora durante el entrenamiento, mejor ser´a el modelo. Por ´ultimo, se podr´ıa comprobar que la convergencia final del modelo entrenado es superior en cuanto a rendimiento se refiere. 2.3. Visi´ on Artificial 15 2.3. Visi´on Artificial La Visi´on Artificial (del ingles Computer Vision (CV)) es el campo de la AI que otorga la propiedades de la visi´on humana a un computador, pudiendo tratarse de un dron, smartphone,scanner, etc. con varias c´amaras integradas. El computador en cuesti´on debe ser el responsable de procesar y extraer informaci´on de las im´agenes digitales que genere dicha c´amara. [Sha18] Existen diversas t´ecnicas de DL que permiten poder solucionar los problemas que surgen a menudo en el campo de la CV: Clasificaci´ on: Es el proceso mediante el cual se etiqueta una imagen teniendo en cuenta su contenido visual, es decir, se trata de averiguar cu´al es el concepto que aparece en ella. Por ejemplo, un algoritmo de clasificaci´on de im´agenes podr´ıa determinar si aparece una figura humana, un animal, una cara, etc. Detecci´ on y Segmentaci´ on: Se denomina Detecci´on a la tarea de encontrar un determinado objeto o figura en una imagen y enmarcarlo con una caja delimitadora con su correspondiente etiqueta. Sin embargo, la Segmentaci´on es diferente. Esta se encarga de hacer una clasificaci´on por p´ıxeles, bordeando la figura de aquello que queremos encontrar, en lugar de enmarcarlo con una caja delimitadora. Esta t´ecnica se suele utilizar sobre todo en el procesamiento de im´agenes m´edicas o im´agenes obtenidas de sat´elites. Aprendizaje Por Similitud: En esta t´ecnica se busca aprender de dos im´agenes que son similares d´andole importancia al significado sem´antico que reside entre ellas dos. Son algoritmos que se suelen utilizar a menudo en la identificaci´on facial. Subtitulado de Im´ agenes: Como su propio nombre indica, se trata del proceso de describir la tarea que est´a sucediendo en la imagen. Modelos Generativos: Son aquellos modelos encargados de generar otras im´agenes teniendo otras previamente como referencia. 2.4. Modelo Neuronal A lo largo de los a˜nos, el DL se ha visto muy influenciado por el funcionamiento de nuestro cerebro y se ha inspirado en este para crear modelos computacionales y matem´aticos que permitan simular su comportamiento. Para ello, es necesaria la creaci´on de un modelo que reproduzca las neuronas biol´ogicas y, de esta manera, se permita el paso de informaci´on de unas a otras. El modelo que se utiliza a d´ıa de hoy es el conocido como Perceptr´on o Neurona Artificial. Como se puede ver en la Figura 2.5, la neurona artificial funciona de tal manera que recibe un vector de entrada X, el cual se utiliza para realizar una suma ponderada con los pesos Wasignados entre las entradas y el cuerpo de la neurona. Estos pesos son una representaci´on de la importancia dada a cada entrada en concreto y su valor puede cambiar durante la fase de entrenamiento. 22 Cap ´ ıtulo 2. Marco Conceptual 2.6.1. Proceso de Entrenamiento Como deja claro el autor Jordi Torres [Tor18], el proceso de entrenamiento queda marcado por un constante “ir y venir” por las capas de la ANN. El hecho de ir hacia delante se conoce como forward propagation, mientras que su opuesto es com´unmente conocido por backpropagation. El primer paso se produce cuando los datos de entrenamiento se exponen a toda la red y estos la cruzan para acabar calculando las predicciones. Durante esta propagaci´on, cada neurona aplica su funci´on de activaci´on al dato que reciben y se lo pasan a la neurona siguiente. Una vez se ha recorrido, se usa la funci´on de loss o error, para estimar y medir c´omo de bueno o malo ha sido nuestro resultado en comparaci´on con el que deber´ıa dar, el cual queda establecido por la etiqueta que se ofrece con cada dato de entrenamiento. El segundo paso se realiza cuando ya tenemos calculado el error. Este se propaga hacia atr´as, partiendo desde la capa de salida y pasando por todas y cada una de las neuronas que tiene la red y que han contribuido a las predicciones realizadas. No obstante, cada neurona solo recibe un error proporcional a la contribuci´on que han realizado para producir la salida. Esta ´ultima propagaci´on es la que permite finalmente ajustar todos los pesos existentes en las conexiones que unen las neuronas. El objetivo que se pretende conseguir de esta forma, es que el error se aproxime cada vez m´as a cero para realizar mejores predicciones cada vez que se vuelva a utilizar la red. Para minimizar el loss hay diversas t´ecnicas, pero la m´as conocida es el descenso de gradiente. Esta se ocupa de utilizar la derivada de la funci´on de error para encontrar el m´ınimo global mediante la variaci´on de los pesos en peque˜nos incrementos. En general, esto se realiza en unos lotes de datos llamados batches durante una serie de iteraciones conocidas como epochs. 2.6.2. Sesgo y Varianza El sesgo y varianza (del ingl´es, underfitting yoverfitting respectivamente) son dos conceptos contrapuestos que constituyen uno de los problemas fundamentales del ML, ya que lidian con la optimizaci´on y la generalizaci´on del modelo [F.18]. La optimizaci´on se ocupa de ajustar el modelo a los datos de entrenamiento proporcionados, con el objetivo de conseguir el mejor rendimiento posible, mientras que la generalizaci´on hace referencia a c´omo de bien o mal se realiza la predicci´on sobre datos que nunca se han visto. Un modelo de ML puede encontrarse en distintos durante su entrenamiento. Puede hallarse en un estado de underfitting, es decir, no ha podido aprender de los datos correctamente y a´un es incapaz de generalizar de manera adecuada. Por tanto, esto indica que puede optimizarse a´un m´as. Por otro lado, tambi´en puede encontrarse en un estado de overfitting, o dicho de otro modo, ha aprendido a ajustar tan bien a los datos de entrenamiento que le resulta imposible generalizar bien sobre datos nuevos. Esto indica que est´a demasiado optimizado. El objetivo es encontrar el balance entre estos dos extremos y, para ello, se pueden usar la generaci´on curvas de aprendizaje para diagnosticar su rendimiento, las cuales muestran c´omo ha ido avanzando el error con los datos de entrenamiento y validaci´on. 2.6. Entrenamiento de las Redes Neuronales 23 Un modelo que sufra sesgo, puede ser identificado ´unicamente por su curva de entrenamiento. Se podr´a detectar si esta permanece plana, sigue disminuyendo hasta el final del entrenamiento o marca un error demasiado alto. En la Figura 2.10, se muestran algunos ejemplos [Bro20a]. Figura 2.10: Ejemplos de Curvas de Aprendizaje con Sesgo Por el contrario, un modelo que sufra varianza, se debe identificar con las dos curvas: tanto la de entrenamiento como la de validaci´on. Este estado se caracteriza por tener una curva de entrenamiento con bajo error y con tendencia a disminuir con cada experiencia, y por curva de validaci´on que decrece hasta un punto y m´as tarde comienza a crecer. La situaci´on ideal que se busca reside en tener una curva de entrenamiento optimizada en coste y una de validaci´on que se adapte a ella durante todas las iteraciones. En la Figura 2.11 se pueden ver unos ejemplos [Bro20a]. Figura 2.11: Ejemplo de Varianza y de un Aprendizaje Ideal Con el objetivo de obtener el mejor rendimiento y evitar las situaciones extremas que se acaban de explicar, se pueden realizar una serie de t´ecnicas que permiten abordarlo de una manera apropiada. Por ello, se citar´an algunas de las m´as utilizadas a d´ıa de hoy, seg´un art´ıculos cient´ıficos publicados recientemente [Sil20]. 24 Cap ´ ıtulo 2. Marco Conceptual Para solucionar el sesgo: Incrementar la complejidad del modelo. Aumentar el n´umero o tama˜no de par´ametros que este utiliza. Entrenar el modelo durante un mayor tiempo. Para corregir la varianza: Utilizar regularizaci´on, lo cual lleva al modelo a tener ecuaciones menos complejas. Probar con el m´etodo de validaci´on cruzada. Parar el entrenamiento antes de que la curva de validaci´on comience a ascender. Utilizar la t´ecnica de dropout, seg´un la cual se ignoran neuronas durante el entrenamiento. A˜nadir m´as datos de entrenamiento. 2.7. Detecci´on Facial Dos t´erminos que suelen confundirse muy a menudo son la detecci´on facial y el reconocimiento facial. La detecci´on facial es una tecnolog´ıa que forma parte de una m´as general: la detecci´on de objetos. Esta se encarga de encontrar objetos en v´ıdeos e im´agenes digitales y tiene un coste computacional mucho mayor que aquellas que permiten clasificar objetos ´unicamente, ya que no solo se predice la clase a la que pertenece una determinada imagen, sino que adem´as se encarga de se˜nalar en qu´e coordenadas se encuentra dicha predicci´on. Sin embargo, el reconocimiento facial es una tecnolog´ıa que, adem´as de realizar la tarea de detecci´on, identifica qui´en es la persona que ha detectado. Con el tiempo, algunas t´ecnicas de CV se han vuelto cada vez m´as rudimentarias y se han visto sustituidas por ML yANN que permiten realizar la misma funci´on de una manera m´as eficiente y eficaz. A d´ıa de hoy, existen diversos m´etodos para realizar esta tarea y se dividen en el n´umero de etapas en el que consiguen realizar la detecci´on. Por ello, se tienen detectores de dos etapas ydetectores de una etapa. 2.7.1. Detectores de Dos Etapas Como queda expuesto en [JZL+19], los detectores de dos etapas, tienen una alta precisi´on de localizaci´on y de reconocimiento de objetos. Utilizan una ANN llamada Region Proposal Network para realizar una b´usqueda de regiones de inter´es que m´as tarde deben pasarse a una etapa de clasificaci´on y delimitaci´on de las coordenadas que identifican el objeto. 2.7. Detecci´ on Facial 25 2.7.1.1. Red Neuronal Convolucional Basada en Regiones La Red Neuronal Convolucional Basada en Regiones (del ingl´es, Region-Based Convolutional Neural Network) conocida m´as com´unmente por R-CNN, fue propuesta por Ross Girshick [GDDM14] como uno de los primeros trabajos en demostrar que una CNN podr´ıa elevar el rendimiento en tareas de detecci´on de objetos. La R-CNN se compone de tres m´odulos que interact´uan de manera secuencial: El primero, se encarga de generar y extraer 2000 regiones llamadas propuestas de regi´on. Estas son unos cuadros que delimitan los potenciales candidatos a ser detectados. El segundo, recoge las regiones producidas en el m´odulo anterior y se encarga de extraer las caracter´ısticas de las im´agenes mediante una CNN, como se explic´o en apartados previos. La red, produce un vector de salida de 4096 elementos que describe el contenido de la imagen. El ´ultimo m´odulo, utiliza el vector del paso anterior para introducirlo en una Support Vector Machine que se ocupa de clasificar la presencia del objeto deseado en la regi´on propuesta. Adem´as de ello, se predicen tambi´en cuatro valores con las coordenadas en las que se sit´ua el objeto. Una de las principales desventajas que presenta esta aproximaci´on reside en que requiere que cada regi´on sea pasada por una CNN, haci´endolo de esta manera un algoritmo lento, puesto que tiene 2000 regiones para analizar. Se puede ver la arquitectura en la Figura 2.12 Figura 2.12: Arquitectura del Modelo R-CNN 26 Cap ´ ıtulo 2. Marco Conceptual 2.7.1.2. Red Neuronal Convolucional R´ apida Basada en Regiones Ross Girshick al ver que tuvo ´exito en su implementaci´on de la R-CNN, se decidi´o a implementar una mejora del modelo, centr´andose sobre todo en hacerla con un mayor rendimiento y m´as r´apida. Para ello, propuso una Fast R-CNN, es decir, una Red Neuronal Convolucional Basada en Regiones (del ingl´es, Fast Region-Based Convolutional Neural Network) [Gir15]. En su implementaci´on, tom´o como base el modelo anterior pero ahora, en lugar de pasar cada propuesta por una CNN, genera un mapa de caracter´ısticas convolucional pas´andole la imagen entera una sola CNN. A partir de este mapa, se trata de identificar las propuestas de regi´on, se agrupan en una capa y posteriormente se pasan a otra capa totalmente conectada. Finalmente, acaba us´andose Softmax para predecir la clase y, como en el modelo anterior, se vuelven a predecir las coordenadas en las que se sit´ua la regi´on. Como puede verse en la Figura 2.13, se puede intuir que esta aproximaci´on es mucho m´as r´apida que la anterior, ya que no tiene que utilizar una CNN por cada regi´on que se ha propuesto, es decir, no utiliza 2000 CNN. Figura 2.13: Arquitectura del Modelo Fast R-CNN 2.7.1.3. Red Neuronal Convolucional M´ as R´ apida Basada en Regiones Hace apenas cuatro a˜nos, Shaoqing Ren consigui´o mejorar a´un m´as la velocidad de entrenamiento del Fast R-CNN y propuso el Faster R-CNN o, dicho de otro modo, la Red Neuronal Convolucional M´as R´apida Basada en Regiones (del ingl´es, Faster Region-Based Convolutional Neural Network) [RHGS15]. En las dos propuestas anteriores, se tiene que realizar una b´usqueda para poder conocer cu´ales son las regiones propuestas. Esto hace que sea un proceso lento y provoca un gran impacto en el rendimiento. Por ello, en este modelo y, al igual que en Fast R-CNN, se alimenta una ´unica CNN con la imagen y se utiliza otra red que permite predecir las propuestas. Estas se vuelven a agrupar en una nueva capa y posteriormente se clasifican y predicen las coordenadas del objeto. Se puede ver su arquitectura en la Figura 2.14. Hasta el d´ıa de hoy, el Faster R-CNN es el modelo m´as r´apido y eficaz en cuanto a detecci´on de objetos se refiere. Por ello, es una opci´on a tener muy en cuenta en el desarrollo de este trabajo. 2.7. Detecci´ on Facial 27 Figura 2.14: Arquitectura del Modelo Faster R-CNN 2.7.2. Detectores de Una Etapa A diferencia de los detectores anteriores, los de una etapa son buenos cuando se quiere conseguir una alta velocidad de inferencia, por lo que ser´ıan convenientes en tareas que se deban realizar en tiempo real ya que son bastante m´as r´apidos que los comentados previamente. Funcionan de tal manera que se les proporciona una imagen a la red y proponen cuadros para realizar las predicciones, evit´andose as´ı la etapa de b´usqueda de regiones de inter´es. 2.7.2.1. Solo Miras Una Vez El modelo Solo Miras Una Vez o YOLO (del ingl´es, You Only Look Once), fue propuesto por Josheph Redmon y Ross Girshick en 2015 [RDGF16]. Esta aproximaci´on de modelo de detecci´on funciona de manera muy distinta a todos los propuestos anteriormente. En YOLO, se coge una imagen y se utiliza una sola CNN. Concretamente, lo que se hace es dividir la imagen en una cuadr´ıcula de tama˜no NxN y cada cuadro resultante se vuelve a dividir en M cuadros delimitadores. Para cada uno de estos, la CNN predice la clase a la que pertenece devolviendo una probabilidad y unos valores de desviaci´on asignados a cada cuadro delimitador. Si esta probabilidad supera un cierto umbral, se tendr´a en cuenta el cuadro y formar´a parte del cuadro delimitador total que se˜nalar´a la detecci´on. Su arquitectura se puede ver en la Figura 2.15. Figura 2.15: Arquitectura del Modelo YOLO 28 Cap ´ ıtulo 2. Marco Conceptual La desventaja que ofrece YOLO se basa principalmente en que no es capaz de detectar objetos de manera precisa cuando estos son demasiado peque˜nos, por lo que no ser´ıa una buena opci´on para detectar rostros si estos se encuentran alejados de la c´amara que los captura. 2.7.2.2. Detector de Un Solo Vistazo El Detector de Un Solo Vistazo (del ingl´es, Single Shot Detector (SSD)), fue una propuesta de C. Szegedy que lanz´o en 2016 [LAE+16a] y con la que alcanz´o grandes resultados en cuanto a precisi´on y rendimiento en tareas de detecci´on se refiere, alcanzando una precisi´on media del 74 % en conjuntos de im´agenes como COCO o PascalVOC. Se puede ver en la Figura 2.16 que la arquitectura de la SSD se componen principalmente de la CNN conocida por VGG-16. Esto se debe a su gran rendimiento en cuanto a clasificaci´on de im´agenes de alta calidad se refiere. A esta CNN le siguen diversas capas m´as que se encargan de extraer una mayor cantidad de caracter´ısticas en m´ultiples escalas. Figura 2.16: Arquitectura del Modelo SSD Debido a esta ´ultima peculiaridad de la red, se considera que el SSD podr´ıa ser capaz de detectar rostros con una mayor eficacia en objetos peque˜nos, a diferencia de YOLO que no era capaz. Cap´ıtulo 3 Estado del Arte En este cap´ıtulo se pretende ilustrar como est´a la situaci´on actual referente a la detecci´on de rostros en im´agenes digitales y v´ıdeos en funci´on de los trabajos le´ıdos. De cada uno de ellos se desarrollar´a qu´e es lo que quieren conseguir, la t´ecnica utilizada para llevarlo a cabo y los conjuntos de datos que utilizan, para posteriormente ver los resultados que han obtenido. En la actualidad hay mucha informaci´on referente a la detecci´on de objetos tanto en im´agenes [LWZ11,PVZ15,DAHG+15] como en v´ıdeos [DAHG+15,MMdRM16,KOLW16, FLLL16,YRZ+17,LLT17]. Adem´as [LWZ11,PVZ15,YRZ+17] se centran en la detecci´on de rostros. En todos ellos se aprecia el gran potencial que tienen las redes CNN para este cometido que adem´as se pueden concatenar con otras como las LSTM [DAHG+15] o las Redes Neuronales Convolucionales 3D (del ingl´es, 3D Convolutional Neural Networks (C3D)) [FLLL16] para obtener mejoras notorias en la detecci´on. Se ha decidido explicar estos art´ıculos [PVZ15,FLLL16,YRZ+17,LLT17] ya que cada uno se centra en una arquitectura diferente en la red para completar la detecci´on. 3.1. Red de Agregaci´on Neuronal para el Reconocimiento Facial en V´ıdeos En [YRZ+17] se propone una Red de Agregaci´on Neuronal (del ingl´es, Neural Aggregation Network (NAN)), que puede ser entrenada mediante SL para reconocer caras en v´ıdeos o en conjuntos de im´agenes. Los autores explican que el problema de los v´ıdeos es que es dif´ıcil conseguir una representaci´on acertada del rostro debido al constante movimiento de los objetos y el ruido que genera estos, una aproximaci´on para resolverlo es dividir el v´ıdeo en fotogramas y pasar cada uno a redes que ya saben reconocer rostros pero esto es demasiado costoso. Esta red est´a compuesta por dos m´odulos que pueden ser entrenados por separado. El primero es un extractor de caracter´ısticas a nivel de fotograma que usa un modelo de CNN profundo. El otro es un m´odulo de agregaci´on que fusiona los vectores de caracter´ısticas de los fotogramas del v´ıdeo. En general la red toma de entrada un conjunto de im´agenes con caras y devuelve un vector con las caracter´ısticas para la tarea de reconocimiento facial. 29 30 Cap ´ ıtulo 3. Estado del Arte Uno de sus objetivos es dise˜nar un mejor esquema para las ponderaciones para conseguirlo proponen que el m´odulo de agregaci´on debe ser capaz de procesar un n´umero diferente de im´agenes, que la agregaci´on se debe realizar de forma independiente al orden de entrada y que el m´odulo debe adaptarse a la entrada y tener par´ametros que se puedan entrenar a trav´es del SL. Para ello emplean bloques de atenci´on inspirados en el mecanismo de atenci´on de la memoria descritos en [GWD14,SWF15,VBK15]. Un bloque de atenci´on se encarga de leer los vectores de las caracter´ısticas del primer m´odulo y generar pesos lineales para cada uno. Solo usando un bloque de atenci´on, se observa como los pesos son elevados en las im´agenes con rostros de m´as calidad, como las de alta resoluci´on y fondos simples, y es m´as reducido en las im´agenes con la cara desenfocada, parcialmente oculta o con una exposici´on inadecuada. Para mejorar todav´ıa m´as el rendimiento deciden usar dos bloques de atenci´on en cascada, de esta forma se establecen los pesos de las im´agenes por cada identidad para que los pesos no queden influenciados por las im´agenes de las dem´as identidades. El entrenamiento se decide realizar por separado para exprimir al m´aximo las capacidades de cada uno de los m´odulos. Para la CNN del extractor usan tres millones de im´agenes con rostros de cincuenta mil identidades diferentes. Las caras son detectadas usando el m´etodo de JDA [CRW+14], y alineadas con el m´etodo LBF [RCWS14]. El modulo de agregaci´on se entrena sobre las caracter´ısticas extra´ıdas con la CNN. Una vez esta entrenadas ambas, se obtiene como resultado un 95.72 ±0.64 % de exactitud para el conjunto de im´agenes de YouTube Faces (YF) [WHM11] donde comparado con otros modelos como DeepFace-single [TYRW14], DeepID2+ [SWT15] y Wen et al [WZLQ16] obtiene mejores resultados, aunque no supera el 97.3 % de FaceNet [SKP15]. En la Tabla 3.1 y en la Tabla 3.2 se pueden ver los resultados con el conjunto de im´agenes Celebrity-1000 (CB) [LZLY14], donde comparado con los m´etodos de MTJSR [LZLY14] y Eigen-PEP [LHS+14] obtiene unos valores notablemente m´as elevados tanto en el conjunto cerrado como abierto. Tabla 3.1: Resultados de NAN sobre el conjunto de datos de CB con conjunto cerrado N´ umero de Sujetos M´ etodo 100 200 500 1000 NAN - VideoAggr 88.04 82.95 82.27 76.24 NAN - SubjectAggr 90.44 83.33 82.27 77.17 Tabla 3.2: Resultados de NAN sobre el conjunto de datos de CB con conjunto abierto N´ umero de Sujetos M´ etodo 100 200 400 800 NAN - SubjectAggr 88.76 85.21 82.74 79.87 El conjunto de im´agenes de YF [WHM11] est´a dise˜nado para la verificaci´on de rostros en v´ıdeos. Contiene 3425 v´ıdeos con 1595 personas diferentes. La longitud de los v´ıdeos varia entre 48 y 6,070 fotogramas con una duraci´on de promedio de 181,3 fotogramas. 3.2. Reconocimiento Profundo de Rostros 31 El conjunto de im´agenes de CB [LZLY14] est´a dise˜nado para la identificaci´on de rostros en v´ıdeos, contiene 159.726 secuencias de v´ıdeo de 1.000 personas diferentes. La longitud de los v´ıdeos es de 2.4M de fotogramas en total, con 15 fotogramas por secuencia. Tiene dos tipos de protocolos, uno de conjunto abierto y otro de conjunto cerrado. Se pueden encontrar los detalles de estos protocolos en [LZLY14]. 3.2. Reconocimiento Profundo de Rostros En [PVZ15], los autores tiene dos metas: investigar cual es la mejor arquitectura y CNN para reconocer y verificar caras; y establecer un procedimiento para crear conjuntos de datos a gran escala. En cuanto a las arquitecturas se centran en DeepFace [TYRW14]. Este m´etodo usa una CNN profunda entrenada con 4 millones de im´agenes, Tambi´en utiliza una arquitectura de red siamesa, donde se aplica la misma CNN a pares de caras para obtener descriptores que luego se comparan usando la distancia euclidiana. Adem´as, las im´agenes son pre-procesadas. Ese proceso consiste en “recolocar” las im´agenes, situando las caras en una pose can´onica usando un modelo 3D. La estrategia que proponen consta de varias etapas para recopilar de manera efectiva un gran conjunto de datos faciales que contenga cientos de im´agenes. Lo primero es obtener una gran lista de nombres de los que potencialmente se pudieran obtener informaci´on, para ello se eligen celebridades, pol´ıticos, etc, en general personajes p´ublicos. La lista inicial la obtienen de IMDB con un gran n´umero de nombres de celebridades. Esos nombres los cruzaron con Freebase knowledge graph [BEP+08], que es una base de datos con informaci´on de much´ısimas celebridades. Tras todo esto obtuvieron un total de 5000 nombres de personas para los que se consiguieron 200 im´agenes por persona simplemente usando el buscador de im´agenes de Google. Posteriormente realizaron un filtrado, eliminando las personalidades cuyo conjunto de 200 fotos no superaba el 90 % de pureza (llamando pureza a la heterogeneidad de las im´agenes del conjunto). Esto redujo la lista de candidatos a 3250. Por ´ultimo, eliminaron las celebridades que aparec´ıan en otros conjuntos de datos para tener datos nuevos con los que entrenar a la red. Tras este filtrado, terminaron con 2622 nombres de celebridades. El segundo paso es obtener m´as im´agenes de esas personas. Para ello buscaron los nombres en el buscador de im´agenes de Google y en el de Bing, que les proporcionaron como resultado 2000 im´agenes por cada persona. El tercer paso es mejorar la pureza del nuevo conjunto de im´agenes. Para ello por cada celebridad se entrena una red SVM lineal usando en descriptor Fisher Vector Faces [SPVZ13,PSVZ14] que es capaz de filtrar autom´aticamente las mejores im´agenes, en las que las 1000 mejores permanecen y el resto de desechan. El cuarto paso es eliminar duplicados ya que al usar dos motores de b´usqueda puede haber im´agenes iguales. Tambi´en en esta fase se eliminan las im´agenes que solo se diferencian por el balance de color o con texto superpuesto. Esto lo realizaron calculando el descriptor VLAD [JPD+11,AZ13] para cada imagen. 38 Cap ´ ıtulo 4. T´ ecnica de Detecci´ on de Rostros en V ´ ıdeos Conjunto de im´ agenes I: Labeled Faces in the Wild [HMBLM08]. Conjunto de im´ agenes II: Wider Face Dataset [YLLT16]. 4.1.1. Conjunto de im´agenes I LFW [HMBLM08] es un conjunto de im´agenes publico dise˜nado para verificar si una pareja de im´agenes pertenecen a la misma identidad. Est´a compuesto por 13233 im´agenes de 250x250 de caras almacenadas en 5749 carpetas con sus identidades. A pesar de que el prop´osito de este trabajo no era el de la identificaci´on sino el de la detecci´on, y aunque el propio servicio web que ofrece acceso al repositorio de im´agenes no recomendaba el uso de este para tareas de detecci´on por la escasez de variedad en lo que a edad de los sujetos presentes en las im´agenes se refiere, el se decidi´o usarlo debido a, no solo los buenos resultados que se pueden observar en [PVZ15], sino tambi´en al tama˜no del conjunto, dado que este hecho daba la oportunidad de transformar las im´agenes al formato requerido por TensorFlow sin invertir mucho tiempo en ello. El proceso de adaptaci´on del conjunto de im´agenes sigue los siguientes pasos: 1. El primer paso consisti´o en una investigaci´on acerca de c´omo crear los TFRecords que necesitaba TensorFlow a partir de un conjunto de im´agenes sin etiquetar. Tras la investigaci´on, se encontr´o un repositorio con un conjunto de im´agenes etiquetadas que estaba compuesto por dos scripts en Python. El primero se encargaba de convertir las etiquetas de formato XML aCSV y el segundo transformaba de formato CSV aTFRecord. Modificando estos dos scripts y cambiando algunas configuraciones para adaptarlo a lo que se requer´ıa, el equip´o encontr´o el m´etodo para realizar la transformaci´on con im´agenes etiquetadas. 2. El siguiente paso que se realiz´o fue el de etiquetado de las im´agenes. La herramienta que permiti´o realizar esta tarea y generar im´agenes etiquetadas en formato XML fue labelimg [lab17]. Se decidi´o usar esta herramienta ya que, adem´as de contar con interfaz gr´afica, su configuraci´on permit´ıa establecer una etiqueta por defecto, de tal forma que al seleccionar la regi´on deseada, esta se auto-etiquetara, acelerando el proceso. Se realiz´o un script de Batch que centralizaba las im´agenes en un mismo directorio para posteriormente importarlo a labelimg y permitir as´ı la navegaci´on entre las im´agenes. Una vez dentro de la aplicaci´on, se seleccionaban la o las caras que estaban contenidas en cada imagen, se etiquetaban con la etiqueta por defecto mencionada anteriormente y, por ´ultimo, se guardaban, de tal forma que la aplicaci´on generaba el archivo XML con la informaci´on del etiquetado, necesaria para su posterior conversi´on. 3. Por ´ultimo, se aplicaron distintos procedimientos para transformar las im´agenes etiquetadas en el anterior paso al formato de TFRecord y para separar todas im´agenes en los subconjuntos de pruebas y validaci´on. Para realizar dicha labor, primero se agruparon todos los archivos XML generados en el anterior paso en los directorios mencionados anteriormente y se us´o el procedimiento comentado en el primer paso para generar los TFRecords correspondientes. 4.2. Creaci´ on de los Modelos de Detecci´ on 39 4.1.2. Conjunto de im´agenes II Wider Face [YLLT16] es un conjunto de im´agenes dise˜nado para la detecci´on de rostros. Utiliza las im´agenes publicas del conjunto de WIDER [XZLT15] que contienen rostros en distintas distancias, poses, con partes tapadas o pintadas, con distintas expresiones y con distintos niveles de luminosidad. En total se tienen 32203 im´agenes con 393703 rostros etiquetados, de los cuales un 40 % son para entrenamiento (∼12876 im´agenes), un 50 % para pruebas (∼16101 im´agenes) y un 10 % para validaci´on (∼3226 im´agenes). A la hora de buscar como pasar este conjunto de im´agenes al requerido por Tensorflow, se encontr´o en un repositorio un script para realizar esta tarea sobre este conjunto en espec´ıfico [wid20] de manera autom´atica. Gracias a esto, solo fue necesario instalar dicho repositorio y ejecutar, para obtener as´ı los TFRecord necesarios. 4.2. Creaci´on de los Modelos de Detecci´on Se han creado dos modelos para realizar la detecci´on de los rostros, una para cada finalidad de uso, explicadas anteriormente. El primer modelo ha sido optimizado para la detecci´on de rostros en v´ıdeos de manera local, es decir, con v´ıdeos con duraci´on limitada. Se trata, por tanto, de una red m´as enfocada en la precisi´on que en la velocidad de detecci´on. Se decidi´o dise˜nar esta red puesto que para realizar la detecci´on en un v´ıdeo, es necesario un procesamiento previo completo de este antes de obtener los resultados finales, por lo que no es demasiado relevante, en este caso, la velocidad de detecci´on del modelo por fotograma. Por otro lado, en este trabajo se ha desarrollado una segunda opci´on optimizada para su uso en v´ıdeos en tiempo real, conocidos como v´ıdeos en streaming. Dado que para el procesamiento de un v´ıdeo en tiempo real es crucial el tiempo en el que se realiza dicha detecci´on, se ha dise˜nado este modelo con un enfoque mucho m´as directo en la velocidad de procesamiento de fotogramas que la anterior, manteniendo tambi´en un buen rendimiento en cuanto a precisi´on se refiere. Ambos modelos han demostrado durante la fase de experimentaci´on ser capaces de detectar varios rostros simult´aneamente y en distintas condiciones, tales como rostros a distintas distancias, poses poco comunes, expresiones variopintas, condiciones de luz desfavorables, e incluso rostros maquillados y/o tapados con distintos atuendos, como mascarillas. Para cada una de los modelos, se explicar´a de qu´e est´an formados, cu´al es el proceso que siguen para realizar la detecci´on y la configuraci´on que se ha utilizado para poder conseguir el objetivo. 4.2.1. Modelo para la Detecci´on en V´ıdeos Reproducidos Localmente Dado que el objetivo con este modelo es asegurar la efectividad frente a la velocidad de detecci´on, se ha utilizado la combinaci´on formada por un detector Faster R-CNN y el extractor de caracter´ısticas Inception-ResNet. 40 Cap ´ ıtulo 4. T´ ecnica de Detecci´ on de Rostros en V ´ ıdeos La arquitectura interna del primer modelo desarrollado consta de tres partes bien diferenciadas, como se puede ver en la Figura 2.14: La extracci´on de caracter´ısticas, la propuesta de rostros y por ´ultimo una capa donde se agrupan esas propuestas y se realiza la predicci´on. La primera hace referencia a la CNN que se encarga de la extracci´on de caracter´ısticas. En este caso se ha usado la red neuronal llamada Inception-ResNet, desarrollada por Google, cuya estructura interna puede verse en la Figura 4.1. Figura 4.1: Arquitectura Interna de Inception-ResNet Como se observa en la Figura 4.1, se ha procedido a mostrar su versi´on completa y otra m´as comprimida de la arquitectura de la red para entender con m´as facilidad c´omo esta hecha. Como se puede observar, la red est´a creada por una gran cantidad de capas simbolizadas con distintas formas de colores, en las que se incluyen capas de convoluci´on (explicadas con m´as detalle en la Secci´on 2.5.1.1), capas de pooling (Secci´on 2.5.1.2), capas de agrupaci´on o concatenaci´on, capas de dropout encargadas de apagar una serie de neuronas para evitar el sobre ajuste, capas totalmente conectadas, capas residuales propias de la red ResNet y, por ´ultimo, las funciones de activaci´on softmax, similares a las vistas en la Secci´on 2.4. Todas ellas forman estructuras que pueden ser susceptibles a repetirse en tandas de 10 y 20, como se puede apreciar en la imagen. El segundo paso es realizar la propuesta de regiones que puedan ser los rostros. En esta segunda fase, se recibe las caracter´ısticas en forma de mapa extra´ıdas con la red anterior y se procesan usando una red neuronal especial capaz de generar regiones, como se puede ver en la Figura 4.2. Esta red, adem´as, clasifica cada regi´on para saber si lo que ha propuesto pertenece al fondo de la imagen o es una cara en cuesti´on. 4.2. Creaci´ on de los Modelos de Detecci´ on 41 Figura 4.2: Ejemplo m´as visual de las regiones propuestas Las propuestas resultantes que no pertenecen al fondo de la imagen, finalmente se propagan a trav´es de una capa de agrupaci´on como las que contiene Inception-ResNet para que posteriormente se clasifiquen cada una de ellas y se obtenga una probabilidad que indique cu´an semejante es la propuesta a un rostro. Por ´ultimo, aquellas propuestas que superen un cierto umbral, el cual se explica en la Secci´on 4.3, ser´an consideradas detecciones y se acabar´an dibujando los l´ımites que recuadren la cara en la imagen o fotograma del v´ıdeo en cuesti´on. Una vez conseguido el correcto funcionamiento del detector, para poder ser usado con v´ıdeos, era necesario tener el modelo exportado de forma que pudiera admitir im´agenes y devolver como resultado las coordenadas del rostro dentro de estas. Para procesar el v´ıdeo, ´unicamente habr´ıa que realizar un bucle donde se leyera fotograma a fotograma y, para cada uno, se utilizase este modelo para inferir el lugar donde se encuentran las caras. Como ya se ha dicho, una vez hecho esto, ´unicamente ser´ıa necesario dibujar los limites de esta en la cara e ir creando un v´ıdeo nuevo con ello. 4.2.2. Modelo para la Detecci´on en V´ıdeos en Tiempo Real El objetivo que debe cumplirse con este modelo debe ser reforzar la velocidad de inferencia y pasar a un segundo plano la efectividad, sin descuidar esta en exceso. Es por ello, que se ha usado una combinaci´on del detector Faster R-CNN con el extractor Inception Este segundo modelo creado est´a basado en la CNN Inception, desarrollada por Google. Debido a que su estructura y proceso es similar al explicado en la Secci´on anterior, ´unicamente se detallar´a la arquitectura interna que esta CNN sigue para poder extraer las caracter´ısticas. Su estructura interna es similar a la que se muestra en la Figura 4.3. Al igual que se pod´ıa observar en el modelo propuesto para la detecci´on en v´ıdeos, Inception tambi´en dispone de una amplia variedad de capas, las mismas que se pod´ıan encontrar en la Secci´on anterior. La diferencia entre estas dos redes reside en que la primera contiene una serie de capas residuales pertenecientes a ResNet y la profundidad de la red es considerablemente mayor, mientras que Inception no cuenta con estas caracter´ısticas. 42 Cap ´ ıtulo 4. T´ ecnica de Detecci´ on de Rostros en V ´ ıdeos Figura 4.3: Arquitectura Interna de Inception Esta ´ultima caracter´ıstica es la que hace que sea la apropiada para usarse en entornos donde la velocidad del procesamiento es clave. Al no haber tantas capas, la cantidad de neuronas por capa disminuye y, en consecuencia, el n´umero de c´alculos matem´aticos se ve reducido considerablemente. El proceso de la detecci´on en tiempo real se realiza de la misma forma que en v´ıdeos. Para ello, es necesario utilizar las librer´ıas Pafy yStreamlink para poder obtener los fotogramas de la fuente en tiempo real. La diferencia respecto a la detecci´on en v´ıdeo local reside en mostrar la salida por pantalla o redirigir la salida a un canal donde se requiera visualizar los resultados a medida que estos se generan, en lugar de crear un v´ıdeo para ser observado con posterioridad. 4.2.3. Configuraci´on de los Modelos Para poder ejecutar los modelos en cuesti´on, TensorFlow ofrece una serie de ficheros que deben ser configurados de forma que en este se incluya el tipo de detector deseado, el extractor de caracter´ısticas, la configuraci´on del entrenamiento y validaci´on, y toda una serie de par´ametros asociados a cada cada uno de estos campos para optimizar la detecci´on. Todas estas opciones de configuraci´on hacen referencia en realidad a funciones, clases y par´ametros pertenecientes a TensorFlow que, en ultima instancia, son los que finalmente ser´an ejecutados. En general, la estructura que debe seguir este fichero, tiene que seguir unas pautas rigurosas diferenciando de esta forma entre cinco partes que van a permitir realizar la configuraci´on. Estas partes son las siguientes: Model: Define el tipo de modelo que va a ser utilizado, es decir: el detector, la CNN y los par´ametros que definen a la arquitectura en general. Train Config: En ´el se indican los par´ametros que deben usarse para realizar el entrenamiento, como puede ser un preprocesamiento en la entrada a la red o los valores de inicializaci´on de la CNN. Train Input Reader: Utilizado para indicar los datos de entrenamiento en formato TFRecord. 4.2. Creaci´ on de los Modelos de Detecci´ on 43 Eval Config: Permite ajustar las m´etricas que van a ser monitorizadas durante el entrenamiento. Eval Input Reader: Se definen el conjunto de datos de validaci´on a usar. Debe ser distinto al de entrenamiento. Los aspectos m´as relevantes para la creaci´on del modelo son: Configuraci´on del detector, Configuraci´on del entrenamiento y Configuraci´on de la evaluaci´on. Dado que los modelos propuestos en este cap´ıtulo se basan ambos en el detector Faster R-CNN y tienen parte de la configuraci´on en com´un, se explicar´an los aspectos m´as relevantes que se han tenido en cuenta durante la configuraci´on de estos, y se detallar´an las particularidades que tienen cada uno de ellos. 4.2.3.1. Configuraci´ on del Detector El primer paso para la configuraci´on del modelo es la declaraci´on del detector a usar, en este caso se trata de Faster R-CNN. A continuaci´on se define el n´umero de objetos que se van a detectar en el campo num classes, que en este caso el valor debe ser 1 ya que solo se van a detectar rostros. A continuaci´on, se configuran los tres componentes del detector. (ver Secciones 2.7.1.3 y4.2.1). 1. feature extractor: Hace referencia a la CNN que se utilizar´a. Entre otros campos que aparecen en esta estructura, se encuentra el campo type que identifica el tipo de red (Inception-ResNet, para el caso de v´ıdeos en local, o Inception en el caso de streaming). El valor depende del modelo que se quiera crear. 2. first stage: Es la etapa en la que se realizan propuestas sobre las caracter´ısticas que ten´ıa como salida la CNN. Esta etapa queda referenciada por los par´ametros que comienzan por first stage. En esta etapa se configuran los 3 par´ametros: first stage nms score threshold,first stage nms iou threshold y first stage max proposals. Los dos primeros utilizan supresi´on no m´axima (del ingl´es, Non-maximum Suppression) para evitar muchas propuestas sobre un mismo rostro. first stage nms score threshold: Se utiliza para filtrar las propuestas que se hacen en esta etapa. Al establecerse en 0.0 se indica que todas las propuestas que se hagan van a ser v´alidas, ya que no van a tener que superar ning´un umbral de confianza. De la misma forma se tiene el par´ametro first stage nms iou threshold, que al ajustarse en 0.69, se considerar´a dos propuestas similares cuando est´en sobre este umbral de Intersecci´on sobre Uni´on (del ingl´es, Intersection over Union (IOU)), qued´andose con la que tenga una puntuaci´on mayor y eliminando la otra. En la Secci´on 4.3 se explican m´as ampliamente los umbrales que est´an involucrados en estos par´ametros. first stage max proposals: Por convenci´on tiene los valores que aparecen en el c´odigo: 300 y 100, para Inception-ResNet eInception respectivamente. Este es uno de los motivos que hace que Inception-ResNet sea m´as precisa y lenta a la hora de inferir y ser entrenada. Al realizar un mayor n´umero de propuestas sobre una imagen, su rendimiento puede aumentar pero el tiempo para realizar la detecci´on tambi´en aumentar´a. 44 Cap ´ ıtulo 4. T´ ecnica de Detecci´ on de Rostros en V ´ ıdeos 3. second stage: Se encarga de recibir las propuestas que genera la primera etapa y clasificarlas para generar un resultado finalmente. Al igual que en la primera etapa, se establece una puntuaci´on (score threshold) y un valor de IOU (iou threshold) por los cuales las propuestas ser´an consideradas detecciones. Tambi´en se establece el n´umero m´aximo de detecciones por clase que se van a realizar (max detections per class), el cual coincide con el n´umero total de detecciones (max total detections) al haber una sola clase. Para finalizar, se modific´o score converter poniendo la funci´on de activaci´on Sigmoide (Secci´on 2.4), ya que funciona mejor que Softmax para problemas donde solo hay que clasificar un elemento. El C´odigo 4.1 muestra la configuraci´on realizada. Configuraci´ on 4.1: Configuraci´on tenida en cuenta en Model 1 model { 2 f a s t e r r c n n { 3 num classes :1 4 5 f e a t u r e e x t r a c t o r { 6 type :”faster rcnn inception resnet v2” |”faster rcnn inception v2” 7} 8 9 first stage nms score threshold :0.0 10 first stage nms iou threshold :0.69 11 first stage max proposals :300 |100 12 13 s e c o n d s t a g e p o s t p r o c e s s i n g { 14 batch non max suppression { 15 score threshold :0.30 16 iou threshold :0.60 17 m a x d e t e c t i o n s p e r c l a s s :100 18 max total detections :100 19 } 20 score converter :SIGMOID 21 } 22 } 23 } 4.2.3.2. Configuraci´ on del Entrenamiento Como se ha explicado previamente, el entrenamiento necesita ser configurado tambi´en y, concretamente, consta de dos partes: train config ytrain input reader, como se puede ver en el C´odigo 4.2. Dentro de train config, se encuentran los siguientes par´ametros: 1. batch size: Indica el tama˜no de los paquetes de datos que ir´a utilizando el algoritmo para entrenar al detector. En este caso, se ha establecido en 1, lo cual significa que ir´a propagando las im´agenes sobre las redes de una en una. 2. data augmentation options: Hace referencia a la t´ecnica aplicada en DL que permite aumentar sustancialmente el conjunto de entrenamiento mediante la modificaci´on de las im´agenes que ya est´an contenidas en ´el. En concreto, se ha utilizado random horizontal flip que realiza un giro horizontal y aleatorio sobre las im´agenes, pero se podr´ıa haber realizado cualquier otra modificaci´on. 4.2. Creaci´ on de los Modelos de Detecci´ on 45 Configuraci´ on 4.2: Configuraci´on tenida en cuenta para el entrenamiento 25 train config { 26 batch size :1 27 28 data augmentation options { 29 random horizontal flip { 30 } 31 } 32 33 num steps :200000 34 35 from detection checkpoint :true 36 fine tune checkpoint :” ruta al modelo ya e ntrenado ” 37 } 38 39 40 train input reader { 41 label map path :”ruta a las etiquetas del dataset” 42 43 t f r e c o r d i n p u t r e a d e r { 44 input path :”ruta al tfrecord de entrenamiento” 45 } 46 } 3. num steps: Permite ajustar el n´umero de pasos de ejecuci´on para el entrenamiento. TensorFlow asegura que con 200000 se puede encontrar un buen ajuste del modelo y se estableci´o de esa forma. 4. from detection checkpoint yfine tune checkpoint: Quiz´as sean de los m´as importantes que hay en el fichero, ya que son los que ofrecen la opci´on de poder realizar la t´ecnica de TL. Para abordar esta t´ecnica, los extractores de caracter´ısticas que se han utilizado en el presente proyecto han sido entrenados previamente con una serie de im´agenes que abarcan casi cualquier tipo de objeto. Esto quiere decir que las redes est´an preparadas para clasificar correctamente entre los distintos objetos con los que ha sido entrenado y, sin embargo, no son capaces de clasificar un rostro cuando se quiera utilizar la CNN para este cometido. Es por ello que es estrictamente necesario capacitar a la red para poder realizar esta tarea. Mediante estos par´ametros, TensorFlow ofrece la posibilidad de indicar la ruta donde se encuentra el modelo que ya ha sido entrenado y cuyo aprendizaje se requiere reutilizar para proporcionar un mejor rendimiento al nuevo modelo que se est´e creando. Internamente, TensorFlow realiza la t´ecnica de Fine-Tune, explicada en la Secci´on 2.2.3. Por ´ultimo, dentro del campo train input reader, se encuentran los siguientes par´ametros: 1. label map path: Hace referencia a la ruta de un fichero que contiene todas las etiquetas que se utilizar´an en la detecci´on. Para poder realizar TL, se ha modificado este archivo a˜nadiendo una etiqueta (Face) para los rostros, y eliminando cualquier otra etiqueta que pudiera encontrarse en el modelo preentrenado. 2. input path: En ´el se debe indicar la ruta a los TFRecord del conjunto de datos que requeridos para entrenar el modelo. 46 Cap ´ ıtulo 4. T´ ecnica de Detecci´ on de Rostros en V ´ ıdeos Con estos ´ultimos cuatro par´ametros se estar´ıa implementando la t´ecnica de TL. Al establecer: una sola etiqueta posible (Face), un conjunto de datos de un solo tipo, el par´ametro num classes del modelo a 1, y permitir a la CNN adquirir el aprendizaje de otro entrenamiento previo; lo que ocurre es que el detector vuelve a realizar el entrenamiento con la mayor´ıa de las capas de la red ya ajustadas, pero esta vez se fuerza a TensorFlow a que modifique internamente la red de tal forma que, ahora, solo va a ser capaz de detectar rostros. Por esa raz´on, aunque se utilice el ajuste de las capas que se consigui´o durante el aprendizaje de otros objetos, el nuevo detector solo detecta caras. Esta t´ecnica permite poder entrenar de una forma m´as r´apida y eficiente, puesto que en las capas iniciales de la red siempre se aprenden una serie de caracter´ısticas que son comunes a todos los objetos. 4.2.3.3. Configuraci´ on de la Evaluaci´ on La configuraci´on m´as relevante en el proceso de evaluaci´on. En el fragmento de C´odigo 4.3, se observa que en el campo eval config se ha establecido el n´umero de datos de validaci´on a 3226 en el par´ametro num examples, que en este caso es el n´umero de im´agenes destinadas a la validaci´on del conjunto de im´agenes Wider Face. Adem´as, al igual que ocurr´ıa en el caso del entrenamiento, hay que indicar la ruta de las etiquetas que se van a usar para la detecci´on (label map path) y la ruta al conjunto de datos que utilizar´a para realizar la evaluaci´on (input path) Configuraci´ on 4.3: Configuraci´on tenida en cuenta para la validaci´on 48 eval config { 49 num examples :3226 50 } 51 52 53 eval input reader { 54 label map path :”ruta a las etiquetas del dataset” 55 56 t f r e c o r d i n p u t r e a d e r { 57 input path :”ruta al tfrecord de validacion” 58 } 59 } 4.3. M´etricas de Evaluaci´on en la Detecci´on Facial En el campo del ML se vuelve necesario el hecho de poder medir cu´al es el rendimiento de los modelos entrenados, para poder compararlos entre s´ı de una manera objetiva y conocer cu´al de ellos es el que mejor se puede ajustar. M´as concretamente, en la rama de la detecci´on facial, el conjunto de m´etricas que se suelen utilizar se basan en las conocidas competiciones de PASCAL VOC [pas20], COCO [LMB+20] y Open Images [ope20b], que definen una serie de pautas para evaluar el algoritmo propuesto con los respectivos conjuntos de datos de validaci´on. 4.3. M´ etricas de Evaluaci´ on en la Detecci´ on Facial 47 Estas competiciones tienen algo en com´un, y es que todas tienen la precisi´on media como medida principal. Sin embargo, para la evaluaci´on del rendimiento de los modelos creados en este proyecto, se ha escogido el conjunto de m´etricas definidos por COCO, debido a que es el que mayor n´umero de m´etricas ofrece, dando incluso la oportunidad de poder obtener el rendimiento basado en la lejan´ıa del rostro en una imagen. A continuaci´on, se describen dichas m´etricas y se adicionan otras que no pertenecen a COCO y que se han utilizado debido a su gran importancia en problemas de ML. 4.3.1. Conjunto de M´etricas Usadas Antes de explicar las m´etricas se utilizan en COCO, es necesario conocer el marco en el que se basan y de qu´e se encargan cada una. Intersecci´ on sobre Uni´ on: Como se ha comentado previamente, en la detecci´on facial, no solo hay que preocuparse de evaluar la probabilidad de que un rostro en concreto aparezca en la imagen, sino que tambi´en se debe ser capaz de localizarla. Esto supone un problema, ya que las m´etricas comunes utilizadas sobre modelos de clasificaci´on deben ser extendidos. Aqu´ı es donde entra en acci´on la IOU. La IOU es una manera de cuantificar la similitud que existe entre el cuadro delimitador predicho por el modelo y el original que va asociado con los datos de entrada. Su umbral puede variar de 0 a 1, siendo m´as alto cuanto m´as superpuestos est´en entre los dos. Se puede ver un ejemplo en la Figura 4.4. Figura 4.4: Ejemplo de la Intersecci´on sobre Uni´on Puntuaci´ on de Confianza: Se refiere a la probabilidad con la que se clasifica una cierta imagen y representa el porcentaje de seguridad por el que una clase determinada ha sido detectada. Umbral de Confianza: Es el porcentaje que indica a partir de qu´e valor de Puntuaci´on de Confianza se va a considerar una predicci´on como una detecci´on. Si se establece, por ejemplo, un umbral del 30 %, todas las predicciones que no superen esa puntuaci´on, no ser´an consideradas una detecci´on. Tipos de Predicciones: Las predicciones se pueden clasificar en los siguientes puntos: Cap´ıtulo 5 Experimentos y Resultados En este cap´ıtulo se describen los experimentos que se han realizado y se evaluar´a el rendimiento y eficacia de cada uno de ellos, obteniendo finalmente unos resultados de los que se podr´an obtener posteriormente conclusiones. Para ello, se explicar´a primero el contexto sobre cual se ha realizado la experimentaci´on y, posteriormente, se har´a una peque˜na introducci´on a los experimentos realizados para pasar luego a explicarlos detalladamente cada uno de ellos. Se terminar´a con una secci´on donde se comparen los mejores experimentos realizados y se determine cu´ales son los m´as apropiados para el trabajo. 5.1. Contexto de la Experimentaci´on Para llevar a cabo la experimentaci´on, se han escogido los dos mejores detectores que existen actualmente y que m´as garant´ıas han dado en trabajos previos: SSD yFaster R-CNN. Para cada uno de ellos, se han utilizado diferentes extractores de caracter´ısticas preentrenados con el conjunto de datos de COCO para comprobar cu´ales de ellos consegu´ıa extraer mejor la informaci´on de nuestro conjunto de datos escogido. A su vez, se ha aplicado la t´ecnica de TL de manera que el modelo sea capaz de detectar rostros tambi´en. El conjunto de datos elegido para esta experimentaci´on ha sido Wider Face, puesto que ten´ıa fotos de mayor variedad, en distintas situaciones y en mayor cantidad. Para cada modelo que se ha creado, se ha ejecutado las veces necesarias hasta que se ha obtenido la informaci´on apropiada y se han podido generar todos los checkpoints necesarios para crear el modelo posteriormente en un punto que se encontrara en un ajuste perfecto, es decir, que no hubiera Overfitting ni Underfitting. Adem´as, para poder evaluarlos en igualdad de condiciones, se ha dejado por defecto la configuraci´on m´as importante de las redes, teniendo por delante cada uno de ellos 200000 pasos de ejecuci´on: la cantidad recomendada por TensorFlow para los modelos seleccionados. En cuanto a la fase de evaluaci´on hay que destacar que, por defecto, estaba establecido que se realizar´an peri´odicamente evaluaciones sobre los ´ultimos 10 checkpoints generados, de manera que durante el entrenamiento se han ido obteniendo unos resultados basados no solo en el punto actual, sino en los anteriores tambi´en. La ventaja de esto reside en que se puede obtener una visi´on m´as globalizada del rendimiento del modelo. No obstante, se ha realizado una evaluaci´on completa final sobre el punto de inflexi´on del modelo, es decir, donde este act´ua con mayor rendimiento. 55 56 Cap ´ ıtulo 5. Experimentos y Resultados Esta ´ultima evaluaci´on se ha realizado de la misma manera en la que est´a especificado en las m´etricas de COCO. Se ha establecido un umbral de confianza de 0.3 y se ha hecho la media aritm´etica sobre 10 umbrales de IOU, penalizando as´ı al modelo cuando realice una mala localizaci´on de la cara en cuesti´on. Se han analizado los resultados no solo en v´ıdeos, sino tambi´en con webcam y en plataformas de streaming. Las plataformas escogidas han sido las que mayor uso tienen actualmente, es decir, YouTube yTwitch. Para cada una de estas opciones se mostrar´a el tiempo de inferencia y los fotogramas por segundo (del ingles FPS) resultantes. En el caso de la webcam y las plataformas de streaming, el tiempo de lectura del fotograma puede variar seg´un diferentes factores, como podr´ıa ser la conexi´on a internet y/o el procesamiento que realicen las librer´ıas utilizadas para la obtenci´on de este. Debido a esto, los FPS en estos casos puede verse afectado. Por ´ultimo, todas las pruebas se han hecho en dos equipos distintos. Los primeros entrenamientos se realizaron en un equipo propio, el cual realizaba estos de una manera muy lenta y no iba a permitir poder hacer una gran cantidad de experimentos con ´el. Debido a ello, se buscaron otras alternativas. Finalmente se decidi´o usar Google Cloud para poder crear una instancia mejor y realizar todos los entrenamientos en ella. El primer entorno de experimentaci´on utilizado se podr´ıa resumir con las caracter´ısticas descritas en la Tabla 5.1. Tabla 5.1: Primer entorno de experimentaci´on CPU Memoria RAM Tarjeta Gr´ afica Intel Core i5-7600K CPU 3.8GHz 8 GB MSI GeForce GTX 1060 x 6 GB El segundo equipo utilizado basado en computaci´on en la nube posee las caracter´ısticas que se muestran en la Tabla 5.2. Tabla 5.2: Segundo entorno de experimentaci´on CPU Memoria RAM Tarjeta Gr´ afica Procesador de Intel de 16 n´ucleos 60 GB NVIDIA Tesla P100 x 16 GB 5.2. Experimentos Los extractores de caracter´ısticas seleccionados son los siguientes: MobileNetV1, InceptionV2,ResNet50 yInception-ResNetV2. Cada uno de ellos cuenta con unas caracter´ısticas y complejidad diferente. Se ha decidido descartar otras CNN, puesto que su complejidad era demasiado grande y podr´ıa afectar tanto al tiempo de entrenamiento, como a su rendimiento, ya que se podr´ıan Overfittear muy f´acilmente. MobileNet se caracteriza por ser la CNN m´as simple con 4 millones de par´ametros configurables y una profundidad de 88, lo cual simboliza el n´umero de filtros o caracter´ısticas que se van a extraer de cada imagen. Inception cuenta con 23 millones de par´ametros y una profundidad mucho mayor que MobileNet, siendo esta de 159 filtros. De la misma forma, ResNet tiene una complejidad similar teniendo la cantidad de 25 millones de par´ametros configurables. 5.2. Experimentos 57 Por ´ultimo, Inception-ResNet es la red m´as elaborada. Tiene 55 millones de par´ametros y la cantidad de 572 filtros para extraer diferentes caracter´ısticas de las im´agenes. La experimentaci´on comienza con dos fases diferenciadas donde se prueba con los dos detectores mencionados previamente. Para cada uno de ellos, se han aplicado de manera com´un las CNN Inception yResNet. Adem´as, en particular, se ha aplicado MobileNet al detector SSD, ya que al ser la red m´as simple podr´ıa potenciar a´un m´as la velocidad de inferencia que ostentan los detectores de una etapa y, por otro lado, se ha aplicado Inception-ResNet aFaster R-CNN para potenciar el rendimiento de los detectores de dos etapas con un extractor m´as complejo. 5.2.1. Fase 1: Experimentos Realizados con el Detector SSD Se realiz´o una primera fase donde se prob´o con el Detector SSD. En ´el se utilizaron principalmente 3 extractores de caracter´ısticas diferentes, entre los que se encuentran: MobileNet,Inception yResNet. 5.2.1.1. MobileNet El primer modelo que se ha probado, se bas´o en MobileNet. Con esta se hicieron todas las pruebas necesarias para entender como funcionaba la detecci´on con TensorFlow y se entren´o el modelo tantas veces hasta que se consigui´o entender como conseguir toda la informaci´on necesaria para un an´alisis posterior. Este modelo fue el detonante para pensar otras alternativas m´as potentes para poder realizar las pruebas, debido a que se entren´o en el ordenador en local y tard´o 5 d´ıas en efectuar 200000 pasos de ejecuci´on. Esa prueba que se hizo, no gener´o todos los checkpoints necesarios para poder crear luego un modelo del cual se pueda inferir sobre nuevas im´agenes, por lo que qued´o desechada. Mientras se buscaba la soluci´on al problema de los checkpoints y se estaba comenzando a hacer la instalaci´on necesaria en una m´aquina disponible en la nube, se sigui´o haciendo pruebas con este modelo intentando parar el entrenamiento cuando se comenzara a ver Overfitting en ´el. Finalmente, se pudo completar el entrenamiento en 40 horas en la m´aquina local y se gener´o el modelo que se ve en la Figura 5.1. Figura 5.1: Curvas de aprendizaje de SSD con MobileNet 58 Cap ´ ıtulo 5. Experimentos y Resultados Como se puede ver en la gr´afica, se efectuaron 70000 pasos de ejecuci´on y se aprecia que no se consigue un buen ajuste entre las dos curvas generadas. Si se sigue la trayectoria de estas dos curvas, se ve que ambas tienen un coste bastante alto pero contin´uan disminuyendo hasta los 43200 pasos de ejecuci´on aproximadamente. En ese punto, el coste de validaci´on comienza a ascender, mientras que el de entrenamiento sigue bajando, por lo que se podr´ıa determinar que a partir de ese punto comienza a haber un sobreajuste. En ese instante del entrenamiento, se ha generado el modelo y se han obtenido los siguientes resultados: En la Tabla 5.3, se observa la precisi´on media obtenida durante el entrenamiento, junto con la precisi´on media sobre los umbrales IOU de 0.5 y 0.75. Como se puede ver, no es una media muy buena y, como es obvio, empeora bastante cuanto mayor es el umbral de la localizaci´on. Tabla 5.3: Precisi´on media usando SSD con MobileNet mAP ( %) [email protected] IOU ( %) [email protected] IOU ( %) 30.35 63.92 23.22 La Tabla 5.4, representa los resultados que se obtienen en cuanto a precisi´on se refiere dependiendo de la distancia a la que se encuentre la cara en la imagen. Para caras que se encuentra muy alejadas, la precisi´on es bastante mala, con solo un 5.94 %. Sin embargo, seg´un van haci´endose m´as grande, la precisi´on aumenta hasta un 53.11 % en su mayor tama˜no. Tabla 5.4: Precisi´on media en distintas distancias usando SSD con MobileNet mAP Small ( %) mAP Medium ( %) mAP Large ( %) 5.94 26.32 53.11 En cuanto a la exhaustividad, se aprecia que realizando una sola detecci´on, se obtiene un resultado bastante malo tambi´en con un 13.36 %. Este porcentaje aumenta seg´un se incrementa el n´umero de detecciones realizadas. Esto se puede ver en la Tabla 5.5. Tabla 5.5: Exhaustividad media usando SSD con MobileNet AR@1 ( %) AR@10 ( %) AR@100 ( %) 13.36 32.82 35.76 Estos resultados mejoran cuando las caras que se est´an detectando est´an bastante cerca en la imagen, trat´andose as´ı un 58.47 % en este caso. Al igual que con la precisi´on, en rostros lejanos, es bastante malo el resultado y, con caras a distancia media, se mantiene de forma parecida que en AR@100. Se muestra esto en la Tabla 5.6. Tabla 5.6: Exhaustividad media en distintas distancias usando SSD con MobileNet AR Small ( %) AR Medium ( %) AR Large ( %) 8.67 32.54 58.47 5.2. Experimentos 59 Es de debida importancia destacar y recalcar que los resultados que se acaban de mencionar con las distintas tablas, est´an basados no solo en el punto de los 43.200 pasos de ejecuci´on, sino tambi´en en los 10 checkpoints anteriores a ´el. En este caso, estar´ıan incluidos todos los checkpoints desde el paso de ejecuci´on 0. Al haber tanta diferencia de rendimiento, los resultados se ven empeorados. Debido a ello, se va a calcular tanto la precisi´on, como la exhaustividad y a realizar un recuento de los tipos de predicciones que se han realizado ´unicamente en el punto de mayor rendimiento. Como se muestra en la Tabla 5.7, se han puesto los resultados seg´un el umbral de IOU, como estipulan las m´etricas de COCO. Tabla 5.7: Resultados m´as espec´ıficos usando SSD con MobileNet Medida mAP ( %) AR ( %) VP FN FP VN Exactitud ( %) @.50 IOU 94.52 64.44 7573 4178 439 0 62.12 @.55 IOU 94.48 64.40 7568 4183 442 0 62.06 @.60 IOU 94.41 64.31 7558 4193 447 0 61.96 @.65 IOU 94.41 64.28 7554 4197 447 0 61.92 @.70 IOU 94.26 64.16 7540 4211 459 0 61.75 @.75 IOU 94.24 64.13 7536 4215 460 0 61.71 @.80 IOU 94.04 63.95 7515 4236 476 0 61.46 @.85 IOU 93.72 63.65 7480 4271 501 0 61.05 @.90 IOU 93.33 63.18 7425 4326 530 0 60.45 @.95 IOU 89.55 58.64 6891 4860 804 0 54.88 Media 93.69 63.51 7464 4287 500 0 60.92 Se puede ver que la precisi´on mejora bastante en comparaci´on con el rendimiento anterior, siendo este de un 93.69 %. Esto significa que casi el 94 % de las veces, los objetos detectados coinciden con los originales. Sin embargo, la exhaustividad es bastante peor siendo de un 63.51 %. Esto refleja que el modelo no es capaz de detectar muchas caras y, en consecuencia, el n´umero de falsos negativos es bastante grande. Todo esto da una exactitud de casi un 61 %, significando que el 61 % de las veces, una cara va a ser correctamente detectada. Se van a considerar ahora a explicar los resultados que se han obtenido utilizando este modelo para inferir no solo en v´ıdeos, sino tambi´en en streaming en Twitch yYouTube y con una Webcam. Como se puede ver en la Tabla 5.8, resulta ser un modelo bastante r´apido en cuanto a tiempo de inferencia se refiere, siendo el tiempo de detecci´on casi instant´aneo: 0.013 segundos. Para el n´umero de 3398 fotogramas, es capaz de procesarlos con un ratio de 33 FPS en v´ıdeos y 18 en webcam. Es una cantidad bastante alta para ambos y le hace un buen candidato para usar en formato streaming. En definitiva, usando MobileNet como extractor de caracter´ısticas proporcionar´ıa un modelo r´apido a la hora de detectar sobre los fotogramas de un v´ıdeo, no obstante, pecar´ıa de no tener una gran exactitud. Principalmente esto se debe a que contiene muchos falsos negativos, que hace que muchos rostros no sean detectados. En la Figura 5.2 se pueden mostrar algunos ejemplos de detecciones realizados con este modelo. 60 Cap ´ ıtulo 5. Experimentos y Resultados Tabla 5.8: Resultados usando el modelo SSD con MobileNet en v´ıdeos y streaming Plataforma Fotogramas T. Inferencia FPS V´ıdeo 3398 0.013 segundos 33 Webcam 3398 0.013 segundos 18 YouTube 3398 0.013 segundos 5 Twitch 3398 0.013 segundos 8 Figura 5.2: Ejemplos de detecci´on usando SSD con MobileNet En las im´agenes se pueden apreciar como act´ua con un grupo de personas a corta, media y larga distancia, as´ı como con personas de origen asi´atico. 5.2.1.2. Inception El segundo modelo que se ha creado, se bas´o en la CNN Inception. Esta finalmente se ejecut´o en la instancia que creada en la nube y se pudo percibir los primeros atisbos de la gran decisi´on que se hab´ıa tomado al buscar otra alternativa para realizar los entrenamientos. El tiempo de ejecuci´on fue ´unicamente de 22 horas, en comparaci´on con las 111 horas que hubiese tardado aproximadamente en ejecutarse en nuestro ordenador en local. En este punto tambi´en se hab´ıa entendido por completo como generar todos los archivos ycheckpoints necesarios para poder crear un modelo m´as tarde para ser analizado. Debido a esto, se pas´o a entrenar el modelo y se consigui´o la curva de aprendizaje que se aprecia en la Figura 5.3. Como se puede ver en ella, esta vez se dej´o m´as tiempo entrenando, llegando a los 200000 pasos de ejecuci´on. Para poder analizar de manera adecuada esta curva, se har´a por partes. 5.2. Experimentos 61 Figura 5.3: Curvas de aprendizaje de SSD con Inception En primer lugar, se ve que tanto el coste de entrenamiento como de validaci´on comienzan desde un punto m´as bajo que MobileNet, lo que podr´ıa ser una se˜nal de que es un mejor modelo. Al comienzo y hasta los 10000 pasos de ejecuci´on aproximadamente, el coste de validaci´on es menor que el de entrenamiento, lo cual significa que en ese instante el conjunto de validaci´on era mucho m´as f´acil de predecir que el de entrenamiento. Sin embargo, cuando se pasa esta barrera, el coste de entrenamiento comienza a descender m´as r´apidamente que el de validaci´on, llegando hasta los 42000 pasos de ejecuci´on, donde los dos est´an en el punto m´as bajo en com´un. A partir de aqu´ı, el coste de validaci´on comienza de nuevo a ascender y el de entrenamiento continua bajando, por lo que se puede considerar el punto de sobreajuste del modelo. Este es el paso de ejecuci´on elegido para generar el modelo. Al igual que pas´o con MobileNet, los resultados que se van a mostrar a continuaci´on est´an basados no solo en el instante escogido, sino tambi´en en los 10 checkpoints anteriores. En este caso, se estar´ıan teniendo en cuenta los resultados obtenidos desde el principio tambi´en, por lo que el rendimiento en el punto 42000 debe ser mejor. Como se ve en la Tabla 5.9, se obtiene una precisi´on media de 35.31 % que es similar a la obtenida con un umbral de 0.75 IOU y casi la mitad teniendo un 0.5 de IOU. Pese a no ser precisiones muy buenas tampoco, se observa que son mejores que las obtenidas con el modelo anterior. Tabla 5.9: Precisi´on media usando SSD con Inception mAP ( %) [email protected] IOU ( %) [email protected] IOU ( %) 35.31 67.12 33.03 Si se presta atenci´on con m´as detalle en la precisi´on obtenida seg´un la distancia a la que est´e el rostro 5.10, se ver´a que la detecci´on sigue siendo bastante mala para las caras que se encuentran alejadas. Lo mismo ocurre para rostros a media y larga distancia, siendo este ´ultimo donde mejor precisi´on se obtiene. No obstante, los tres resultados vuelven a ser mejor que usando MobileNet. 62 Cap ´ ıtulo 5. Experimentos y Resultados Tabla 5.10: Precisi´on media a distintas distancias usando SSD con Inception mAP Small ( %) mAP Medium ( %) mAP Large ( %) 7.73 31.78 58.27 Se pasa ahora a analizar la exhaustividad. Como se puede ver en la Tabla 5.11, esta vuelve a ser mejor en todos los aspectos, respecto al modelo anterior teniendo como m´aximo resultado un 41 % en 100 detecciones. De igual manera pasa con la exhaustividad si se mide con respecto a la distancia (Tabla 5.12): pese a ser bastante mala, mejora en comparaci´on con MobileNet, teniendo como m´aximo resultado un 64 % cuando la cara se encuentra en una posici´on cercana. Tabla 5.11: Exhaustividad media usando SSD con Inception AR@1 ( %) AR@10 ( %) AR@100 ( %) 14.51 37.09 40.95 Tabla 5.12: Exhaustividad media en distintas distancias usando SSD con Inception AR Small ( %) AR Medium ( %) AR Large ( %) 11.44 37.89 64.21 Una vez se han mostrado los resultados obtenidos mientras el entrenamiento se estaba realizando, se procede a ver cu´ales son realmente los que se obtienen justo en el punto en el que se ha creado el modelo, utilizando para ello diversos umbrales de IOU. Como se ve en la Tabla 5.13, la precisi´on mejora bastante tambi´en con respecto a los resultados mostrados en las tablas anteriores. Lo mismo ocurre con la exhaustividad, mejora aunque en menor medida que la precisi´on. Tabla 5.13: Resultados m´as espec´ıficos usando SSD con Inception Medida mAP ( %) AR ( %) VP FN FP VN Exactitud ( %) @.50 IOU 92.44 75.04 8818 2933 721 0 70.70 @.55 IOU 92.34 74.93 8806 2945 730 0 70.55 @.60 IOU 92.31 74.90 8802 2949 733 0 70.50 @.65 IOU 92.24 74.83 8794 2957 739 0 70.40 @.70 IOU 92.14 74.75 8784 2967 749 0 70.27 @.75 IOU 92.06 74.66 8774 2977 756 0 70.15 @.80 IOU 91.87 74.48 8753 2998 774 0 69.88 @.85 IOU 91.47 74.11 8709 3042 812 0 69.32 @.90 IOU 90.91 73.49 8636 3115 863 0 68.46 @.95 IOU 87.88 69.82 8205 3546 1131 0 63.69 Media 91.56 74.10 8708 3043 801 0 69.37 El 91.56 % de las veces los objetos detectados coinciden con los originales, sin embargo, hay todav´ıa una cantidad considerable de falsos negativos que hace bajar su exhaustividad. 5.2. Experimentos 63 No obstante, si se compara con los resultados obtenidos en MobileNet, se est´a ante un modelo m´as equilibrado en cuanto a precisi´on y exhaustividad se refiere y, por tanto, la exactitud resultante es considerablemente mayor: un 69 %, haciendo de este el mejor modelo probado hasta el momento. Una vez se ha hallado la exactitud, se procede a ver qu´e rendimiento ofrece el modelo al inferir en streaming y en v´ıdeos, con la Tabla 5.14. Tabla 5.14: Resultados usando el modelo SSD con Inception en v´ıdeos y streaming Plataforma Fotogramas T. Inferencia FPS V´ıdeo 3398 0.019 segundos 28 Webcam 3398 0.021 segundos 15 YouTube 3398 0.021 segundos 4 Twitch 3398 0.020 segundos 7 En ella se observa que el tiempo de inferencia, y en consecuencia los FPS, es bastante similar al obtenido con el modelo que usa MobileNet. Tanto para v´ıdeo como para c´amara web, sigue siendo una cantidad bastante alta para poder considerarlo un gran modelo que permita su uso en streaming y dado que el rendimiento en t´erminos generales es considerablemente mayor, se podr´ıa pensar que este modelo es bastante mejor que el anterior probado. Finalmente, en la Figura 5.4, se puede ver algunos ejemplos de su rendimiento en el momento de detecci´on. Figura 5.4: Ejemplos de detecci´on usando SSD con Inception En los ejemplos se ve un grupo de personas asi´aticas, una reuni´on que contiene algunos rostros girados y tres beb´es cubri´endose la cara con unas gafas de sol. 70 Cap ´ ıtulo 5. Experimentos y Resultados Tabla 5.26: Resultados usando el modelo Faster R-CNN con Inception en v´ıdeos y streaming Plataforma Fotogramas T. Inferencia FPS V´ıdeo 3398 0.058 segundos 13 Webcam 3398 0.055 segundos 13 YouTube 3398 0.058 segundos 3 Twitch 3398 0.061 segundos 4 Adem´as de eso, proporciona una mejor exactitud por lo que podr´ıa considerarse otro buen candidato para usar en tiempo real. En la Figura 5.8 se muestran algunos ejemplos de detecciones realizados con este modelo. En ella se aprecia como se detecta a la perfecci´on rostros ya sea con la cara pintada o portando un casco. Adem´as, a diferencia de los modelos que usan SSD como detector, se ve que los resultados a largas distancias son m´as favorables. Figura 5.8: Ejemplos de detecci´on usando Faster R-CNN con Inception 5.2.3.2. ResNet El modelo ResNet es el segundo que se ha probado con este detector. Las pruebas se hicieron de nuevo en Cloud y el entrenamiento dur´o unas 18 horas. De no haber sido por esta plataforma, hubiera demorado 51 horas, es decir, un poco m´as de dos d´ıas completos en poder obtener unos resultados. En la Figura 5.9, se puede ver las curvas de aprendizaje generadas al realizar el entrenamiento. 5.2. Experimentos 71 Figura 5.9: Curvas de Aprendizaje de Faster R-CNN con ResNet En ella se aprecia que el coste tanto de entrenamiento como de validaci´on es ligeramente superior al que usa Inception, al igual que la diferencia existente entre el punto m´as alto y el m´as bajo. Adem´as, el coste tambi´en es bastante inferior al que se puede hallar en Inception con SSD. Pese a ser m´as bajo el coste de validaci´on al comienzo de la curva, r´apidamente se adapta y consigue un ajuste bastante bueno hasta el paso de ejecuci´on 95000 aproximadamente: el punto donde se ha generado el modelo. A partir de ah´ı comienza a suceder un ligero overfitting el cual debe evitarse. En la Tabla 5.27 se pueden ver los resultados que se obtienen en cuanto a precisi´on media. Tabla 5.27: Precisi´on media usando Faster R-CNN con ResNet mAP ( %) [email protected] IOU ( %) [email protected] IOU ( %) 47.01 82.75 48.63 Los tres valores superan los producidos usando Inception como CNN. El valor en el que m´as aumento se ha producido ha sido especialmente cuando se establece la restricci´on de 0.75 en el IOU, por lo que se producir´ıa una localizaci´on m´as efectiva. Si se comparan teniendo en cuenta la lejan´ıa del rostro en la Tabla 5.28, se vuelve a ver que los resultados son de nuevo favorables tanto para largas como para medias distancias. Sin embargo, en cortas distancias se mantiene el mismo resultado. Tabla 5.28: Precisi´on media en distintas distancias usando Faster R-CNN con ResNet mAP Small ( %) mAP Medium ( %) mAP Large ( %) 13.97 44.53 63.84 Se procede por ´ultimo a analizar qu´e ha ocurrido con la exhaustividad. Si se presta atenci´on en la exhaustividad media (Tabla 5.29), no ha aumentado demasiado con respecto aInception. El valor m´as destacable es 52.46 % cuando se realizan 100 detecciones, superando en un 4 % al obtenido con el modelo anterior. Lo mismo ocurre con 5.30, produci´endose un ligero aumento en las tres m´etricas. 72 Cap ´ ıtulo 5. Experimentos y Resultados Tabla 5.29: Exhaustividad media usando Faster R-CNN con ResNet AR@1 ( %) AR@10 ( %) AR@100 ( %) 16.37 45.91 52.46 Tabla 5.30: Exhaustividad media en distintas distancias usando Faster R-CNN con ResNet AR Small ( %) AR Medium ( %) AR Large ( %) 32.31 50.42 68.14 En este caso, vuelve a pasar lo mismo que ocurri´o usando SSD con ResNet. La gr´afica presenta una tendencia bastante recta desde el paso de ejecuci´on 40000 hasta el 100000 aproximadamente. En este rango se ve involucrado los 10 checkpoints anteriores al que se ha elegido para generar el modelo. Por lo tanto, los resultados durante el entrenamiento en esta parte, estuvieron menos influenciados por la alta variabilidad de la curva y se acercan m´as a la realidad que en el caso de Faster R-CNN con Inception, el cual deber´ıan ser unos resultados mayores si no se hubiese visto afectado por este motivo. Los resultados que se han generado al centrarse ´unicamente en los 95000 pasos de ejecuci´on son los que se pueden ver en la Tabla 5.31. En primera instancia, se ve que la relaci´on precisi´on-exhaustividad es m´as desequilibrada que la obtenida en Faster R-CNN con Inception. Se caracteriza por tener una exhaustividad mayor que la precisi´on, por lo que el modelo ser´a capaz de detectar m´as rostros, pero tambi´en suceder´a un mayor n´umero de falsos positivos. Tabla 5.31: Resultados m´as espec´ıficos usando Faster R-CNN con ResNet Medida mAP ( %) AR ( %) VP FN FP VN Exactitud ( %) @.50 IOU 79.52 89.60 10529 1222 2711 0 72.80 @.55 IOU 79.50 89.56 10525 1226 2713 0 72.76 @.60 IOU 79.49 89.53 10521 1230 2714 0 72.73 @.65 IOU 79.44 89.48 10515 1236 2720 0 72.66 @.70 IOU 79.38 89.41 10507 1244 2728 0 72.56 @.75 IOU 79.16 89.27 10491 1260 2743 0 72.38 @.80 IOU 79.16 89.09 10470 1281 2756 0 72.17 @.85 IOU 78.93 88.79 10434 1317 2785 0 71.78 @.90 IOU 78.61 88.17 10362 1389 2819 0 71.11 @.95 IOU 77.01 85.09 9999 1752 2984 0 67.85 Media 79.02 88.79 10435 1315 2767 0 71.88 Esto se ve claramente reflejado en su exactitud, siendo un poco menor que en Inception, pero ligeramente mayor que en el mejor modelo de SSD, donde los resultados fueron justo al rev´es teniendo una precisi´on mayor que la exhaustividad. El resultado que se observa en v´ıdeos y streaming (Tabla 5.32) es parecido a su hom´onimo usando el detector SSD. Es de los peores modelos analizados hasta el momento en este sentido, teniendo la capacidad de procesar 8 FPS en el caso de los v´ıdeos y la webcam. Por lo que, hasta el momento, no le har´ıa merecedor de ser mejor que el modelo compuesto por Faster R-CNN eInception, debido a su exactitud y el rendimiento que se acaba de ver en v´ıdeos y streaming. 5.2. Experimentos 73 Tabla 5.32: Resultados usando el modelo Faster-RCNN con ResNet en v´ıdeos y streaming Plataforma Fotogramas T. Inferencia FPS V´ıdeo 3398 0.112 segundos 8 Webcam 3398 0.103 segundos 8 YouTube 3398 0.110 segundos 1 Twitch 3398 0.109 segundos 3 En la Figura 5.10 se pueden ver algunos de ejemplos de c´omo se comporta este modelo en diversas im´agenes. En ellas se aprecia como, a pesar de haber una serie de personas con la cara tapada con mascarillas o indumentaria militar, es capaz de detectarles perfectamente. Figura 5.10: Ejemplos de detecci´on usando Faster R-CNN con ResNet 5.2.3.3. Inception-ResNet Inception-ResNet fue el ´ultimo extractor que se ha usado para concluir con esta fase de experimentaci´on. La arquitectura de esta CNN se basa en hacer una red h´ıbrida entre Inception yResNet. Durante su entrenamiento, llam´o la atenci´on que fue una de las que m´as tard´o en ejecutarse, llegando a la cantidad de 44 horas en la instancia albergada en la nube, lo que se hubiera traducido en 109 horas aproximadamente en nuestro ordenador en local. 74 Cap ´ ıtulo 5. Experimentos y Resultados Finalmente se consigui´o ejecutar el modelo y generar las gr´aficas correspondientes, las cuales se pueden ver en la Figura 5.11. Figura 5.11: Curvas de Aprendizaje de Faster R-CNN con Inception-ResNet Como se puede ver en ella, se volvieron a ejecutar 200000 pasos de ejecuci´on en los que el coste volvi´o a ser similar a los modelos probados con Faster R-CNN. Pese a que el coste de validaci´on se mantuvo bastante lineal durante todo el entrenamiento, el de entrenamiento fue cada vez siendo menor, llegando a cruzarse alrededor de los 100000 pasos de ejecuci´on y teniendo como punto com´un m´as bajo el instante de los 123000 pasos de ejecuci´on. Los resultados obtenidos en cuanto a precisi´on media en la Tabla 5.33 son prometedores. Si se comparan con todos los que se han obtenido hasta el momento se podr´a ver que son los mejores. En comparaci´on con SSD eInception, se puede ver que la precisi´on media aumenta un 19 % y casi un 28 % para el caso en el que se impone la restricci´on de IOU en 0.75. Tabla 5.33: Precisi´on media usando Faster R-CNN con Inception-ResNet mAP ( %) [email protected] IOU ( %) [email protected] IOU ( %) 54.37 87.79 61.36 Con respecto a Faster R-CNN eInception, se obtienen muy buenos resultados tambi´en, produci´endose un incremento del 20 % teniendo un 0.75 de IOU y casi un 12 % en la precisi´on media. Atendiendo a la precisi´on con respecto a la distancia (Tabla 5.34, se ve que donde se produce un mayor rendimiento en comparaci´on con SSD eInception yFaster R-CNN e Inception es a media distancia, donde aumenta un 22 % y un 15 % respectivamente. Tabla 5.34: Precisi´on media en distintas distancias usando Faster R-CNN con Inception-ResNet mAP Small ( %) mAP Medium ( %) mAP Large ( %) 20.40 53.12 67.07 5.2. Experimentos 75 Se procede ahora a mostrar los resultados que se han obtenido de exhaustividad. Como se puede apreciar en las Tablas 5.35 y5.36, los resultados vuelven a aumentar considerablemente. Se refleja un claro incremento sobre todo en la m´etrica AR@100 y AR Small, con respecto a las Tablas 5.23 y5.24. Tabla 5.35: Exhaustividad media usando Faster R-CNN con Inception-ResNet AR@1 ( %) AR@10 ( %) AR@100 ( %) 17.61 51.98 60.62 Tabla 5.36: Exhaustividad media en distintas distancias usando Faster R-CNN con Inception-ResNet AR Small ( %) AR Medium ( %) AR Large ( %) 43.26 59.34 72.30 No solo ah´ı consiguen mejorarse los resultados, sino que en comparaci´on con las Tablas 5.11 y5.12, pertenecientes al detector SSD, el incremento es a´un m´as acusado. Para asegurarse de que estos resultados pueden ser fiables, se va a ver qu´e rendimiento tiene el modelo sin tener en cuenta los ´ultimos checkpoints: En la Tabla 5.37 se puede ver que la precisi´on obtenida no es de las mejores, por lo que se pueden producir una cantidad considerable de falsos positivos. No obstante, tiene una exhaustividad muy alta haciendo que este modelo no deje sin detectar una gran cantidad de rostros. Estas medidas quedan reflejadas claramente en la columna de los falsos positivos y falsos negativos, donde se ve que, en cuanto a falsos positivos, se producen casi 1100 m´as que en el caso de Faster R-CNN con Inception. A su vez, se produce la mitad de falsos negativos que en dicho modelo. Estos resultados quedan reflejados en su exactitud, haciendo que sea el mejor con casi un 75 %. Tabla 5.37: Resultados m´as espec´ıficos usando Faster R-CNN con Inception-ResNet Medida mAP ( %) AR ( %) VP FN FP VN Exactitud ( %) @.50 IOU 79.65 93.72 11014 737 2814 0 75.61 @.55 IOU 79.62 93.69 11010 741 2817 0 75.57 @.60 IOU 79.62 93.66 11006 745 2817 0 75.54 @.65 IOU 79.61 93.63 11003 748 2817 0 75.52 @.70 IOU 79.54 93.54 10992 759 2827 0 75.40 @.75 IOU 79.47 93.45 10982 769 2837 0 75.28 @.80 IOU 79.39 93.36 10971 780 2848 0 75.14 @.85 IOU 79.22 93.11 10942 809 2869 0 74.84 @.90 IOU 78.95 92.56 10877 874 2899 0 74.24 @.95 IOU 77.41 89.98 10574 1177 3085 0 71.27 Media 79.24 93.07 10937 814 2863 0 74.83 76 Cap ´ ıtulo 5. Experimentos y Resultados Se observa ahora c´omo se comporta con v´ıdeos y en plataformas de streaming. En la Tabla 5.38 se observa que su rendimiento en v´ıdeos es bastante malo, procesando un fotograma por segundo y, por tanto, obteniendo 1 FPS como resultado. En cuanto a streaming, se puede ver que se obtienen unos resultados bastantes malos tambi´en, por lo que se podr´ıa concluir que este modelo no puede ser usado en streaming. No obstante, pese a los resultados obtenidos en v´ıdeos, es un modelo que tiene una exactitud bastante buena y debe tenerse en cuenta. Tabla 5.38: Resultados usando el modelo Faster R-CNN con Inception-ResNet en v´ıdeos ystreaming Plataforma Fotogramas T. Inferencia FPS V´ıdeo 3398 0.938 segundos 1 Webcam 3398 0.892 segundos 1 YouTube 3398 0.948 segundos 0.3 Twitch 3398 0.943 segundos 0.5 En la Figura 5.12 se reflejan algunos ejemplos de como act´ua este detector. En las im´agenes se aprecia c´omo es capaz de detectar a personas bajo unas condiciones de luz escasas y algunas letras tap´andoles la cara. Adem´as, es capaz de encontrar al conductor del coche y la cara de otra persona pese a tenerla tapada y pintada de colores. Figura 5.12: Ejemplos de detecci´on usando Faster R-CNN con Inception-ResNet 5.2.4. Resultados de la Fase 2 Como se ha podido ver en el an´alisis de esta segunda fase, los modelos basadas en Faster R-CNN act´uan de una forma m´as lenta en cuanto a tiempo de inferencia se refiere, llegando en algunos casos a procesar un fotograma por segundo. 5.2. Experimentos 77 Sin embargo, queda demostrado que son las m´as efectivas a la hora de realizar la detecci´on y su rendimiento en este sentido es mucho mejor, teniendo como m´axima exactitud un 75 % aproximadamente en el caso de Inception-ResNet. En primer lugar, el modelo basado en ResNet volver´ıa a quedar descartado puesto que el rendimiento que ofrece tanto en tiempo como en exactitud no es lo suficientemente bueno como para utilizarlo en este caso. Por otro lado, se tendr´ıa a los modelos basados en Inception eInception-ResNet. Inception ha demostrado ser bastante bueno en exactitud con un 74.59 %, una cantidad de falsos positivos y falsos negativos equilibrada y un tiempo de inferencia en streaming semejante al mejor modelo obtenido en la primera fase. En cambio, se ha visto que Inception-ResNet es el mejor modelo que se ha podido crear con un 74.83 % de exactitud y un escaso n´umero de falsos negativos que permitir´ıan realizar un mayor n´umero de detecciones. Adem´as, pese a ser bastante lento en la inferencia, se podr´ıa aprovechar esta virtud para la detecci´on en v´ıdeos, puesto que en esa situaci´on no es crucial el tiempo que se tarda en procesar un fotograma. Por tanto, se podr´ıa concluir que estos dos ´ultimos modelos comentados son los mejores de esta segunda fase. 5.2.5. Elecci´on del Mejor Modelo Dado que la experimentaci´on se ha centrado en diferenciar los modelos no solo por su exactitud, sino tambi´en por su rendimiento en v´ıdeos y streaming, lo correcto ser´ıa presentar un modelo por cada uno de estos dos usos. Se elegir´a un modelo que est´e mejor adaptado para v´ıdeos y otro cuyo rendimiento en streaming sobresalga respecto al resto. Para ello, se comparar´an aquellos que se han propuesto como vencedores de cada una de las dos fases, mostrando su exactitud y los FPS de aquella plataforma en la que mejor hayan rendido. En este caso, los modelos se han comportado mejor con la webcam En la Figura 5.13 se puede ver de manera muy resumida el comportamiento de los tres modelos elegidos. En ella se observa que la diferencia de FPS entre los modelos que usan s´olo Inception no es muy grande, permitiendo que puedan usarse ambos en tiempo real. Esto no sucede as´ı con el caso del ´ultimo modelo, donde los resultados en este sentido dejan bastante que desear. Sin embargo, en el caso de la exactitud, se observa que Faster R-CNN con Inception ha obtenido mejores resultados que su versi´on con SSD. Adem´as, se observa tambi´en que son un poco inferiores a los que Inception-ResNet podr´ıa proporcionar. Por tanto, por todo lo analizado en este cap´ıtulo, podr´ıa concluirse que el modelo m´as apropiado para usar en v´ıdeos es Faster R-CNN con Inception-ResNet, mientras que se propone usar Faster R-CNN con Inception en el caso de streaming. 78 Cap ´ ıtulo 5. Experimentos y Resultados Figura 5.13: Comparativa final de los mejores modelos creados Cap´ıtulo 6 Aportaciones Individuales 6.1. Arturo Barbero P´erez Pese a haber cursado la asignatura de Aprendizaje Autom´atico en la universidad, este proyecto supuso para m´ı un reto puesto que dicha asignatura no fue suficiente para entender la problem´atica que ten´ıamos delante y a la que nos est´abamos enfrentando. Las tareas en las que me he visto involucrado y aportaciones que he realizado al proyecto son las siguientes: Lo primero que hice cuando conoc´ı a mis compa˜neros fue proporcionarles un repositorio con los apuntes y pr´acticas que hab´ıa realizado durante la asignatura comentada previamente. Dado que era la ´unica persona del grupo con nociones en ML, decid´ı llevar a cabo esto con el objetivo de que pudieran entender este campo con la mayor brevedad posible y tuvi´eramos todos el mismo nivel a la hora de trabajar juntos. Poco despu´es me di cuenta de que, para aligerar el avance del proyecto, necesit´abamos un m´etodo para que todos supi´eramos qu´e cosas se han intentado y qu´e conocimiento ha adquirido el grupo en general. Por ello, abr´ı una unidad compartida en Google Drive donde a˜nad´ı unos documentos para que todos apunt´aramos los descubrimientos que´ıbamos haciendo y conceptos dif´ıciles que hubi´eramos entendido hasta el momento. Adem´as, hice una peque˜na investigaci´on sobre la bibliograf´ıa recomendada y la a˜nad´ı al Drive. Con el tiempo, el equipo fuimos subiendo art´ıculos cient´ıficos y res´umenes que nos serv´ıan a todos. Para entender m´as la problem´atica que ten´ıamos ante nosotros, realic´e una serie de tutoriales que estaban en la l´ınea de este proyecto. Entre ellos se encontraban un software que permit´ıa clasificar im´agenes de perros y gatos, y otro que permit´ıa realizar una detecci´on mediante webcam diferenciando cuando un rostro que sal´ıa en escena era real o no. Los tutoriales me sirvieron para afianzar los conocimientos de ML que ya ten´ıa y empezar a introducirme en el campo de CV. En paralelo a estos tutoriales, fui haciendo una lectura y subrayado de los conceptos m´as importantes que encontraba en unos trabajos cient´ıficos que nos proporcionaron nuestros tutores, intentando relacionar estos conceptos con los tutoriales que realizaba, para poder explic´arselos a mis compa˜neros y tutores en reuniones posteriores. Dado que hab´ıa realizado un tutorial muy relacionado con nuestra problem´atica, nuestro tutor propuso dividir el grupo para que yo fuera investigando m´as en la parte 79 Cap´ıtulo 7 Conclusiones y Trabajo Futuro 7.1. Conclusiones Una vez que el desarrollo del Trabajo ha concluido, el equipo ha conseguido llegar a las siguientes conclusiones: Tras la fase de investigaci´on y los resultados obtenidos en los diferentes modelos, los mejores sistemas elegidos han dado un porcentaje de acierto del 74,59 % y 74,83 %, respectivamente. El equipo considera estos resultados bastante aceptables aunque mejorables, teniendo en cuenta, en primera instancia, que es la primera vez que se enfrentaban a un problema como el expuesto en este trabajo. El equipo ha conseguido varios modelos tanto para realizar detecciones en v´ıdeos como en streaming. No han tenido en cuenta el preprocesamiento de las im´agenes, al igual que han tenido muchos desaf´ıos te´oricos a lo largo del proceso y, sin embargo, han conseguido sistemas eficientes en condiciones de imagen pobres, detecci´on de m´ultiples rostros por fotograma y una velocidad de procesamiento aceptable para poder realizar detecciones en tiempo real. Adem´as, el equipo ha contado con el tiempo suficiente para asegurarse de que los modelos elegidos son los m´as eficientes, puesto que en la fase de experimentaci´on ha podido realizar m´ultiples pruebas con diferentes combinaciones, las cuales no han dado los mismos resultados en comparaci´on con los elegidos. Por otro lado, el haber experimentado con una amplia variedad de arquitecturas, ha permitido que se vea de una manera m´as clara cu´ales son los modelos que se deber´ıan usar dependiendo de los objetivos que se est´an persiguiendo. Adem´as de esto, los integrantes del grupo creen que puede ser un gran aporte para la comunidad cient´ıfica el tener una referencia donde se comparen distintas t´ecnicas para que cada persona utilice la que m´as le convenga. El equipo de trabajo cree firmemente en que los resultados, son bastante positivos teniendo en cuenta la dificultad del problema propuesto y tambi´en considerando que se part´ıa de ninguna base, m´as all´a de los conocimientos b´asicos sobre el tema. Adem´as, tras una exhaustiva investigaci´on en la que se exploraron una parte de los conceptos que abarcan este ´area de estudio, muchos fueron los problemas para continuar y hacerle frente a los desaf´ıos que se planteaban a diario, aunque el equipo ha sido capaz de hacerles frente de manera satisfactoria. El equipo de trabajo piensa, por consiguiente, que la complejidad que implica este ´area de investigaci´on es mucho m´as de la que se puede imaginar a simple vista. Son muchos los factores a tener en cuenta a la hora de crear modelos precisos y es mucho el tiempo que es necesario invertir para conseguir 87 88 Cap ´ ıtulo 7. Conclusiones y Trabajo Futuro resultados fruct´ıferos. Adem´as, y m´as concretamente en el ´area de la detecci´on facial, es necesario un conocimiento y experiencia previa para poder entender la problem´atica en su totalidad. Crear un modelo preciso no consiste ´unicamente en elegir capas y nodos de manera aleatoria, es necesaria una experimentaci´on muy precisa para conseguir resultados dignos y acordes a los esperados. En lo que se refiere a este trabajo, aunque los resultados son sorprendentemente buenos, el equipo tiene la certeza de que podr´ıa ser mucho mejores si se conociese el ´area y contexto de trabajo y estudio, lo que implicar´ıa una reducci´on de la complejidad y una mayor facilidad para construir un sistema altamente puntero. Por ´ultimo, tras la fase de experimentaci´on, se descubri´o la complejidad que supone encontrar el equilibrio entre la efectividad y la eficiencia de un modelo de detecci´on. Lo que quiere decir esto es que cuando un sistema es altamente preciso y efectivo, su eficiencia disminuye exponencialmente, como se ha podido llegar a ver en los resultados obtenidos en el proceso de experimentaci´on. En algunos casos, la eficiencia era tan baja que se procesaba solo una imagen por segundo, y este no es para nada el resultado esperado para conseguir an´alisis de v´ıdeos de manera r´apida. Por otro lado, si se consigue un modelo que procese las im´agenes a una gran velocidad, este contar´a con una tasa de inexactitud m´as alta y con una precisi´on final m´as baja, consigui´endose as´ı un sistema poco efectivo aunque eficiente. Es por ello que nuestra elecci´on final ha sido aquella que consegu´ıa el equilibrio entre estas dos m´etricas, aparentemente contrarias e imposibles de explotar en su totalidad de manera simult´anea. A´un as´ı, como se explicar´a en el siguiente apartado, este equilibrio entre efectividad y eficiencia puede llegar a ser mejor de lo que se ha conseguido si se investiga suficientemente en la configuraci´on de los modelos elegidos. 7.2. Trabajo Futuro Como posibles trabajos futuros pueden se˜nalarse los siguientes: •LSTM para la extracci´ on de caracter´ ısticas: Aunque durante toda la fase de experimentaci´on el equipo estuvo probando con numerosas configuraciones de modelos, es cierto que no se probaron las t´ecnicas usadas en el art´ıculo acad´emico [LLT17], relacionadas con el uso de LSTM, debido a la inexperiencia en implementar este tipo de sistemas por la complejidad que esto conllevaba, tanto a nivel te´orico como a nivel t´ecnico. Como se puede observar en el estado del arte de esta memoria situado en el cap´ıtulo 3, este art´ıculo muestra una posible arquitectura aplicando este tipo de Red Neuronal, con la que se consiguen unas extracciones de caracter´ısticas de mejor calidad. Es por ello que el equipo cree que podr´ıan mejorar las tasas de aciertos de los modelos si se aplicaran dichas soluciones, y, por tanto, se considera que podr´ıa ser un buen punto de partida de cara a mejorar la precisi´on final de los modelos elegidos. •Mejora de los par´ ametros de configuraci´ on: Aunque, como se ha explicado anteriormente, el equipo piensa que los resultados que se han obtenido son satisfactorios, y ha conseguido sistemas eficiente a la par que efectivos, el equipo cree que la configuraci´on de estos modelos podr´ıa mejorarse de cara a conseguir un mejor equilibrio entre la rapidez de detecci´on y la efectividad a la hora de realizarla. Por ello, se cree que un proceso de investigaci´on sobre los par´ametros de configuraci´on de los modelos puede ser muy positivo de cara a mejorar la tasa de aciertos sin que esto afecte a la velocidad de procesamiento. 7.2. Trabajo Futuro 89 •Preprocesado de las im´ agenes: Tras realizar la experimentaci´on, el equipo cree que es posible que, aunque se mitigue en cierta medida, el problema con la calidad de la imagen puede seguir siendo un factor que disminuya la efectividad de la detecci´on. Si una imagen posee ciertos aspectos como baja iluminaci´on, pixelaci´on, difuminaci´on o, simplemente, resoluci´on pobre, la tarea de la detecci´on del rostro puede suponer un gran reto incluso para una red muy puntera y bien entrenada. Es por ello que se piensa que la idea de un preprocesamiento de la imagen puede suponer un aumento significativo en la precisi´on y efectividad del modelo en cuesti´on. Dicho sistema de preprocesamiento se encargar´ıa de calibrar ciertas propiedades de la imagen, como el brillo, el contraste o el color. Tambi´en podr´ıa encargarse de a˜nadir p´ıxeles extras a la imagen final, para a˜nadirle calidad a esta y poder as´ı a˜nadir m´as informaci´on para el modelo. Esto podr´ıa realizarse de manera program´atica, es decir, con alg´un tipo de algoritmo que realice la calibraci´on en funci´on de los par´ametros iniciales de la imagen, o, por otro lado, se puede crear un modelo m´as que est´e entrenado para aumentar la calidad final de la composici´on. •Incorporaci´ on de la estimaci´ on de la edad: Tras realizar este trabajo, el equipo siente que el proyecto final realizado podr´ıa servir como un gran sistema de detecci´on facial para el an´alisis forense. Se cree que los modelos finales pueden llegar a ser, si bien no perfectos, bastante certeros a la hora de realizar detecciones faciales en v´ıdeo e, incluso, en streaming. Sin embargo, no se ha podido tiempo a crear un sistema que realice predicciones de la edad de manera certera y eficiente. Es posible que dicho sistema, en combinaci´on con el trabajo final, pueda ser de mucha mayor utilidad para el an´alisis forense, puesto que, en numerables ocasiones, la edad de los sujetos implicados es determinante para poder aclarar la gravedad o la legalidad de los hechos ocurridos en el metraje. Es por ello que el equipo cree que una estimaci´on de la edad puede ser un gran paso a realizar para poder conseguir un sistema plenamente capaz de ser usado para el an´alisis forense. •Etiquetado de las detecciones: A la hora de realizar el an´alisis forense sobre v´ıdeo es posible que sea necesario saber, no solo el o los rostros que aparecen en ella, sino tambi´en ciertas caracter´ısticas sobre ellos que puedan ser cruciales para el proceso de investigaci´on, como puede ser el nombre, el color de piel, la raza o, incluso, el color del pelo. Por ello, el equipo afirma que podr´ıa ser interesante a˜nadir etiquetado en las detecciones de los rostros, dotando a los modelos de la capacidad de identificaci´on. Actualmente, cuando los modelos finales consiguen detectar una cara en una imagen, esta aparece con la etiqueta de Face. Aunque dicha etiqueta deja bastante claro lo que est´a detectando, es cierto que podr´ıan aparecer ciertas propiedades del rostro en cuesti´on, como un conjunto de etiquetas tales como Face, blue eyes, caucasian o algo relacionado. A˜nadir m´as informaci´on a la detecci´on podr´ıa llegar a ser muy ´util para, por ejemplo, saber en cuesti´on de muy poco tiempo si un individuo en concreto aparece en los metrajes observados por el modelo. •Software de soporte: Tras la fase de experimentaci´on, se contaba con los modelos m´as precisos para realizar las detecciones. Para crear las salidas del modelo, se codificaron diferentes scripts que permit´ıan que el modelo consiguiese detectar los rostros en una imagen o un v´ıdeo, el cual era la entrada de dichos scripts. Para la ejecuci´on de estos, era necesario que el proceso se realizase en una terminal, puesto que no exist´ıa ning´un soporte software para la ejecuci´on de dichos scripts. Es por ello que el equipo cree oportuno el desarrollo de un componente software que permita 90 Cap ´ ıtulo 7. Conclusiones y Trabajo Futuro utilizar los modelos finales de este trabajo para realizar la detecci´on podr´ıa ser muy interesante para poder as´ı simplificar la complejidad que ahora supone poder realizar detecci´on en un v´ıdeo. •M´ as aplicaciones: El objetivo que se ha mantenido desde el comienzo de este trabajo ha sido el de crear un sistema ´optimo para la detecci´on de rostros a la hora de realizar an´alisis forense sobre v´ıdeos. Aunque este es un campo muy amplio que abarca multitud de utilidades concretas, el equipo cree que este sistema puede tener m´as aplicaciones en el mundo actual. Con la reciente situaci´on que se est´a sufriendo a causa del COVID-19, una utilidad nueva podr´ıa ser el del control de las medidas de seguridad aplicadas para evitar el contagio. Concretamente, el sistema podr´ıa detectar rostros para as´ı poder identificar, de manera manual con intervenci´on humana o incluso tambi´en autom´atica si se aplica el etiquetado en las detecciones, si el individuo est´a respetando las medidas de seguridad establecidas, espec´ıficamente si el rostro lleva consigo una mascarilla o no. Esto concienciar´ıa a la sociedad de cara a respetar las medidas propuestas y as´ı asegurar que se cumplen, consiguiendo as´ı un impacto positivo en la evoluci´on de la situaci´on. Resumen del Trabajo en Ingl´es 91 Cap´ıtulo 8 Introduction 8.1. Motivation Over the past 70 years, numerous scientific advances have led to exponential growth in the world of technology. Specifically, in the audiovisual field, these developments have led to numerous advances that have had a positive impact on the quality, processing speed and storage capacity of images and audio. Until recently, a specialized camera was required to record a video and an innumerable amount of extra components for its correct reproduction. In addition, the quality obtained was much lower than today, resulting in a loss of important information when performing forensic analysis on video. With the arrival of the digital era, digital cameras emerged and this managed to fix the problems discussed above. With them, no special equipment was needed and the quality obtained was notably superior. In addition, over time, new forms of storage emerged that allowed for longer-lasting video, making video forensics a more efficient and productive task. Even so, the quality of the video was not as high as desired, and the task of identification was difficult when the quality of the environment in which the video was made was under very unfavorable conditions, such as dark places. With the advancement of software and the emergence of early image and video editing programs, footage could be modified to improve certain aspects of composition, such as brightness, saturation, contrast, and so on. Forensic analysis thus became an even more productive task, but there was still a problem that hindered its evolution: it required too much manual work and human intervention for the identification work, and this slowed down the process. On the other hand, the field of AI was still under investigation. It was not until 1958 that the first neural network architecture appeared, [Sim20] Perceptron. Since then, neural networks and AI began to grow at great speed, largely thanks to the evolution of hardware that allowed the creation of more powerful machines capable of supporting the construction of more complex and efficient architectures. Software development changed completely with the incorporation and development of Neural Networks. As their utility covers any task, many companies developed neural networks for the identification of objects in images to implement autonomous systems that react and make decisions in real time taking into account the environment in which they were located. 93 94 Cap ´ ıtulo 8. Introduction It might seem that the use of AI in forensic analysis would solve all the problems. This task would be completely automated, and extensive analysis would be performed in a matter of minutes and in a massive way. Image quality becomes a lesser priority issue, because systems analyze images differently than the human eye does, finding patterns and anomalies that are imperceptible to anyone. But, even so, a new type of problem arises: the need for a cutting-edge and extremely efficient network, to avoid erroneous identifications which, for the identification of objects and more specifically faces, is a very complex job. Therefore, a good face identification system, which is able to make very reliable and accurate detections, as well as to make identifications in low quality videos, is crucial to be able to incorporate artificial intelligence in the forensic analysis in a full way and thus be able to dispense with human intervention, which is an incredible slowing down of the process. The search for such systems is the driving force behind this work. 8.2. Context This Final Degree Project has been carried out within the Analysis, Security and Systems Group (GASS Group, https://gass.ucm.es/, Group 910623 of the catalogue of groups recognized by the UCM) as part of the activities of the research project THEIA (Techniques for Integrity and Authentication of Multimedia Files of MobileDevices) with reference FEI-EU-19-04 8.3. Object of the Investigation A picture contains many simple features which can be seen by human eye, such as the silhouettes of objects or the color they have. These patterns together make it possible to identify objects in an image and therefore to draw conclusions about it, such as the number of people in it or the time of day it was made. However, it has been found that a sufficiently trained AI can identify certain patterns in images that are beyond human understanding, and these are critical in identifying objects or any other task involving the analysis of a photograph. In addition, there are many already created and tested identifiers dedicated to identifying whole bodies, and not faces specifically, and this can be a disadvantage when a body is not fully displayed in an image. This paper proposes different techniques, algorithms and DL models that try to make an efficient face identification in streaming images and videos. 8.4. Workplan The development of this work has been carried out in four phases: 1. Investigation: During the first three months, a period of adaptation to the work context and acquisition of the necessary knowledge was carried out in order to start with the subsequent development. At the beginning, a general meeting was held in which the starting point of the work was explained, what the objectives were to be achieved and what the necessary knowledge was to be. After this, numerous meetings 8.4. Workplan 95 were agreed upon with the directors to follow up on the progress of the research and to resolve any doubts that might arise. Another reason why these meetings were arranged was to receive talks on the basic concepts of the different fields involved in this work. These will be discussed in the following chapters. Some members of the team already had such knowledge thanks to the subjects of Artificial Intelligence and Machine Learning, taught in this Faculty. During the meetings, many tools that would facilitate the research work were also explained. One of these tools was ’Google Scholar’, which the team would use to search for scientific articles on previous research in the same field of study. Finally, once several conclusions had been reached about what was wanted and how it was to be achieved, the team began to prioritise development. 2. Developing: Once the necessary knowledge was acquired to be able to start creating a solid version of the project, it was decided to spend less time on research and to start with the codification of the project. Although the research phase did not cease, it was rather put in the background, with research being carried out on specific concepts that emerged during development. Therefore, during this phase, advanced concepts of the Python programming language and libraries such as Keras and TensorFlow were investigated. During this phase the training sets for the model were also built, obtained from the sources provided by the articles read during the previous phase. 3. Experimenting: In this phase, the evaluation of the developed prototype was carried out and the results obtained were analysed. Different tools provided by the same libraries explained above were used, the results were compared with those obtained in the different works reviewed and the configuration of the parameters for the model refinement was carried out. For example, it was decided to adjust the training data sets to analyze their influence on the improvement of the results. It should be noted that the development phase did not cease during the experimental phase, since the model was constantly compared with others and modified for optimization. 4. Documentation: Halfway through the development, the team began the phase that would consist of writing and constantly reviewing the final project report. This phase ran in parallel between the development and experimentation stages. For the writing of the report, the team made constant updates of the content, as the development included some new technology, the experimentation concluded in different conclusions, or even new articles were investigated. After an update, the team reviewed the changes made for errors or possible sections to improve. Finally, this phase ended after completing the last milestone of the experimental stage, compiling all the results obtained from that phase and adding them to the Work. In the Figure 8.1 you can see in more detail the organization that the team has followed during the course of this project, as well as the duration of each phase and the sub-tasks that compose them. Also, below is a table showing the milestones followed by the team followed by an identifier, used in the Figure 8.1 for better understanding. 102 Cap ´ ıtulo 9. Conclusions and Future Work the detections, whether the individual is respecting the established safety measures, specifically whether the face is wearing a mask or not. This would make society aware of the need to respect the proposed measures and thus ensure that they are complied with, thus achieving a positive impact on the evolution of the situation. Bibliograf´ıa [AZ13] R. Arandjelovic and A. Zisserman. All About VLAD. In Proceedings of the IEEE conference on Computer Vision and Pattern Recognition, pages 1578–1585, 2013. [BEP+08] K. Bollacker, C. Evans, P. Paritosh, T. Sturge, and J. Taylor. Freebase: A Collaboratively Created Graph Database for Structuring Human Knowledge. In Proceedings of the 2008 ACM SIGMOD international conference on Management of data, pages 1247–1250, 2008. [Bre20] C. Breazeal. MIT Team Building Social Robot. http://news.mit.edu/2001/ kismet, January 2020. [Bro20a] J Browniee. How to use Learning Curves to Diagnose Machine Learning Model Performance. https://machinelearningmastery.com/ learning-curves-for-diagnosing-machine-learning-model-performance/, January 2020. [Bro20b] J. Brownlee. A Gentle Introduction to Transfer Learning for Deep Learning. https: //machinelearningmastery.com/transfer-learning-for-deep-learning/, January 2020. [CBL+16] T. Cooijmans, N. Ballas, C. Laurent, C¸. G¨ul¸cehre, and A. Courville. Recurrent Batch Normalization. arXiv preprint arXiv:1603.09025, 2016. [CCG+13] PL. Carrier, A. Courville, IJ. Goodfellow, M. Mirza, and Y. Bengio. FER-2013 Face Database. Universit de Montral, 2013. [Cla20] L. Clark. Google’s Artificial Brain Learns to Find Cat Videos. https://www.wired. com/2012/06/google-x-neural-network/, January 2020. [CRW+14] D. Chen, S. Ren, Y. Wei, X. Cao, and J. Sun. Joint Cascade Face Detection and Alignment. In European conference on computer vision, pages 109–122. Springer, 2014. [DAHG+15] J. Donahue, L. Anne Hendricks, S. Guadarrama, M. Rohrbach, S. Venugopalan, K. Saenko, and T. Darrell. Long-Term Recurrent Convolutional Networks for Visual Recognition and Description. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 2625–2634, 2015. [DGG15] A. Dhall, R. Goecke, and T. Gedeon. Automatic Group Happiness Intensity Analysis. IEEE Transactions on Affective Computing, 6(1):13–26, 2015. [DGJ+16] A. Dhall, R. Goecke, J. Joshi, J. Hoey, and T. Gedeon. Emotiw 2016: Video and Group-Level Emotion Recognition Challenges. In Proceedings of the 18th ACM international conference on multimodal interaction, pages 427–432, 2016. [DGLG12] A. Dhall, R. Goecke, S. Lucey, and T. Gedeon. Collecting Large, Richly Annotated Facial-Expression Databases from Movies. IEEE multimedia, (3):34–41, 2012. [F.18] Chollet F. Deep Learning with Python. Manning, 2018. [FH99] H. Feng-Hsiung. IBM’s Deep Blue Chess Grandmaster Chips. IEEE Micro, 19(2):70–81, March 1999. 103 104 BIBLIOGRAF´ IA [FLLL16] Y. Fan, X. Lu, D. Li, and Y. Liu. Video-Based Emotion Recognition Using CNN-RNN and C3D Hybrid Networks. In Proceedings of the 18th ACM International Conference on Multimodal Interaction, pages 445–450, 2016. [GDDM14] R Girshick, J Donahue, T Darrell, and J Malik. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 580–587, 2014. [Gir15] R Girshick. Fast R-CNN. In Proceedings of the IEEE international conference on computer vision, pages 1440–1448, 2015. [GLF+08] A. Graves, M. Liwicki, S. Fern´andez, R. Bertolami, H. Bunke, and J. Schmidhuber. A Novel Connectionist System for Unconstrained Handwriting Recognition. IEEE transactions on pattern analysis and machine intelligence, 31(5):855–868, 2008. [GWD14] A. Graves, G. Wayne, and I. Danihelka. Neural Turing Machines. arXiv preprint arXiv:1410.5401, 2014. [HGDG17] K. He, G. Gkioxari, P Doll´ar, and R Girshick. Mask R-CNN. In Proceedings of the IEEE international conference on computer vision, pages 2961–2969, 2017. [HMBLM08] GB. Huang, M. Mattar, T. Berg, and E. Learned-Miller. Labeled Faces in the Wild: A Database For Studying Face Recognition in Unconstrained Environments. 2008. [HOT06] G. E. Hinton, S. Osindero, and Y. Teh. A Fast Learning Algorithm for Deep Belief Nets. Neural Computation, 18(7):1527––1554, May 2006. [HS97] S. Hochreiter and J. Schmidhuber. Long Short-Term Memory. Neural computation, 9(8):1735–1780, 1997. [Hui18] J. Hui. mAP (mean Average Precision) for Object Detection. 2018. [HZRS16] K. He, X. Zhang, S. Ren, and J. Sun. Deep Residual Learning for Image Recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 770–778, 2016. [JPD+11] H. Jegou, F. Perronnin, M. Douze, J. S´anchez, P. Perez, and C. Schmid. Aggregating Local Image Descriptors Into Compact Codes. IEEE transactions on pattern analysis and machine intelligence, 34(9):1704–1716, 2011. [JSD+14] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional Architecture for Fast Feature Embedding. In Proceedings of the 22nd ACM international conference on Multimedia, pages 675–678, 2014. [JZL+19] Licheng J., Fan Z., Fang L., Shuyuan Y., Lingling L., Zhixi F., and Rong Q. A Survey of Deep Learning-Based Object Detection. IEEE Access, 7:1––22, October 2019. [KCL+15] S. Kwak, M. Cho, I. Laptev, J. Ponce, and C. Schmid. Unsupervised Object Discovery and Tracking in Video Collections. In Proceedings of the IEEE international conference on computer vision, pages 3173–3181, 2015. [KOLW16] K. Kang, W. Ouyang, H. Li, and X. Wang. Object Detection from Video Tubelets with Convolutional Neural Networks. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 817–825, 2016. [KSH12] A. Krizhevsky, I. Sutskever, and GE. Hinton. Imagenet Classification with Deep Convolutional Neural Networks. In Advances in neural information processing systems, pages 1097–1105, 2012. [lab17] LabelImg. https://github.com/tzutalin/labelImg, October 2017. [LAE+16a] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C. Fu, and A. Berg. SSD: Single Shot MultiBox Detector. Lecture Notes in Computer Science, pages 21—-37, November 2016. BIBLIOGRAF´ IA 105 [LAE+16b] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C. Fu, and A.C. Berg. SSD: Single Shot Multibox Detector. In European conference on computer vision, pages 21–37. Springer, 2016. [LdMM17] R. L´opez de M´antaras and P. Meseguer. Inteligencia Artificial, chapter 1, pages 7–29. CSIC Consejo Superior de Investigaciones Cient´ıficas, 2017. [LGRYTN11] H. Lee, R. Grosse, R. Ranganath, and A. Yan-Tak Ng. Unsupervised Learning of Hierarchical Representations with Convolutional Deep Belief Networks. Communications of the ACM, 54(10):95–103, October 2011. [LHS+14] H. Li, G. Hua, X. Shen, Z. Lin, and J. Brandt. Eigen-Pep for Video Face Recognition. In Asian conference on computer vision, pages 17–33. Springer, 2014. [LLT17] Y. Lu, C. Lu, and C. Tang. Online Video Object Detection Using Association LSTM. In Proceedings of the IEEE International Conference on Computer Vision, pages 2344–2352, 2017. [LMB+20] TY Lin, M Maire, S Belongie, J Hays, P Perona, D Ramanan, P Doll´ar, L Zitnick, G Patterson, MR Ronchi, Y Cui, L Bourdev, and R Girshick. COCO - Common Objects in Context. http://cocodataset.org/#detection-eval, March 2020. [LWZ11] J. Li, T. Wang, and Y. Zhang. Face Detection Using Surf Cascade. In 2011 IEEE international conference on computer vision workshops (ICCV workshops), pages 2183–2190. IEEE, 2011. [LZLY14] L. Liu, L. Zhang, H. Liu, and S. Yan. Toward Large-Population Face Identification in Unconstrained Videos. IEEE Transactions on Circuits and Systems for Video Technology, 24(11):1874–1884, 2014. [MMdRM16] N. McLaughlin, J. Martinez del Rincon, and P. Miller. Recurrent Convolutional Network for Video-Based Person Re-identification. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1325–1334, 2016. [num20] NumPy, The Fundamental Package for Scientific Computing with Python. https: //numpy.org/, March 2020. [NZH+17] G. Ning, Z. Zhang, C. Huang, X. Ren, H. Wang, C. Cai, and Z. He. Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking. In 2017 IEEE International Symposium on Circuits and Systems (ISCAS), pages 1–4. IEEE, 2017. [Ola20] C Olah. Understanding LSTM Networks. https://colah.github.io/posts/ 2015-08-Understanding-LSTMs/, August 2020. [ope20a] Open Computer Vision Library (OpenCV). https://opencv.org/, March 2020. [ope20b] Open Images Dataset V6. https://storage.googleapis.com/openimages/web/ challenge_overview.htmle, March 2020. [paf20] Pafy - A Python library to download YouTube content and retrieve metadata. https://pythonhosted.org/pafy/, March 2020. [pas20] The PASCAL Visual Object Classes Homepage. http://host.robots.ox.ac.uk/ pascal/VOC/, March 2020. [PLC+12] A. Prest, C. Leistner, J. Civera, C. Schmid, and V. Ferrari. Learning Object Class Detectors from Weakly Annotated Video. In 2012 IEEE Conference on Computer Vision and Pattern Recognition, pages 3282–3289. IEEE, 2012. [PSVZ14] OM. Parkhi, K. Simonyan, A. Vedaldi, and A. Zisserman. A Compact and Discriminative Face Track Descriptor. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1693–1700, 2014. [PVZ15] OM. Parkhi, A. Vedaldi, and A. Zisserman. Deep Face Recognition. 2015. 106 BIBLIOGRAF´ IA [RCWS14] S. Ren, X. Cao, Y. Wei, and J. Sun. Face Alignment at 3000 FPS Via Regressing Local Binary Features. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1685–1692, 2014. [RDGF16] J Redmon, S Divvala, R Girshick, and A Farhadi. You Only Look Once: Unified, Real-Time Object Detection. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 779–788, 2016. [RHGS15] S Ren, K He, R Girshick, and J Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. In Advances in neural information processing systems, pages 91–99, 2015. [Sar20] D. Sarkar. A Comprehensive Hands-on Guide to Transfer Learning with Real-World Applications in Deep Learning. https://tinyurl.com/y7ehja7h, January 2020. [Sch97] RR. Schaller. Moore’s Law: Past, Present and Future. IEEE Spectrum, 34(6):52––59, June 1997. [SF18] N. Shukla and K. Fricklas. Machine Learning With TensorFlow, chapter 1, pages 5–20. Manning, 2018. [Sha18] R. Shanmugamani. Deep Learning for Computer Vision, chapter 1, pages 8–25. Packt, 2018. [Sil20] V Silaparasetty. How to Handle Overfitting and Underfitting in Machine Learning. https://medium.com/datadriveninvestor/ how-to-handle-overfitting-and-underfitting-470a1f7389fe, January 2020. [Sim20] Simplilearn. What is Perceptron. https://www.simplilearn.com/ what-is-perceptron-tutorial, January 2020. [SKP15] F. Schroff, D. Kalenichenko, and J. Philbin. Facenet: A Unified Embedding for Face Recognition and Clustering. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 815–823, 2015. [SLJ+15] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going Deeper with Convolutions. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1–9, 2015. [SPVZ13] K. Simonyan, OM Parkhi, A. Vedaldi, and A. Zisserman. Fisher Vector Faces in the Wild. In BMVC, volume 2, page 4, 2013. [SSB14] H. Sak, AW. Senior, and F. Beaufays. Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling. 2014. [str20] Streamlink - A CLI utility which pipes video streams from various services into a video player. https://streamlink.github.io/, March 2020. [SVI+15] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna. Rethinking the Inception Architecture for Computer Vision. December 2015. [SVZ14] K. Simonyan, A. Vedaldi, and A. Zisserman. Learning Local Feature Descriptors Using Convex Optimisation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 36(8):1573–1585, 2014. [SWF15] S. Sukhbaatar, J. Weston, and R. Fergus. End-To-End Memory Networks. In Advances in neural information processing systems, pages 2440–2448, 2015. [SWT15] Y. Sun, X. Wang, and X. Tang. Deeply Learned Face Representations are Sparse, Selective, and Robust. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 2892–2900, 2015. [SZ14] K. Simonyan and A. Zisserman. Very Deep Convolutional Networks for Large-Scale Image Recognition. arXiv preprint arXiv:1409.1556, 2014. BIBLIOGRAF´ IA 107 [TBF+15] D. Tran, L. Bourdev, R. Fergus, L. Torresani, and M. Paluri. Learning Spatiotemporal Features with 3D Convolutional Networks. In Proceedings of the IEEE international conference on computer vision, pages 4489–4497, 2015. [TBHN16] S. Tripathi, S. Belongie, Y. Hwang, and T. Nguyen. Detecting Temporally Consistent Objects in Videos Through Object Class Label Propagation. In 2016 IEEE Winter Conference on Applications of Computer Vision (WACV), pages 1–9. IEEE, 2016. [ten20] Tensorflow Object Detection API. https://github.com/tensorflow/models/ blob/master/research/object_detection/README.md, January 2020. [TLBN16] S. Tripathi, ZC. Lipton, S. Belongie, and T. Nguyen. Context Matters: Refining Object Detection in Video with Recurrent Neural Networks. arXiv preprint arXiv:1607.04648, 2016. [Tor18] J. Torres. Deep Learning. Introducci´on Pr´actica con Keras. Watch This Space, 2018. [Tur50] AM. Turing. Computing Machinery and Intelligence. Mind, 49:433–460, 1950. [TYRW14] Y. Taigman, M. Yang, MA. Ranzato, and L. Wolf. Deepface: Closing the Gap to Human-Level Performance in Face Verification. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1701–1708, 2014. [TYRW15] Y. Taigman, M. Yang, MA. Ranzato, and L. Wolf. Web-Scale Training for Face Identification. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 2746–2754, 2015. [Val20] S. Valdarrama. Confusion Matrix in Object Detection with TensorFlow. Technical Report, GitHub, March 2020. [VBK15] O. Vinyals, S. Bengio, and M. Kudlur. Order Matters: Sequence to Sequence for Sets. arXiv preprint arXiv:1511.06391, 2015. [WHM11] L. Wolf, T. Hassner, and I. Maoz. Face Recognition in Unconstrained Videos with Matched Background Similarity. In CVPR 2011, pages 529–534. IEEE, 2011. [wid20] Wider Face Dataset to TF Record. https://github.com/iitzco/ widerface-to-tfrecord, March 2020. [WR10] AN. Whitehead and B. Russell. Principia Mathematica. Cambridge University Press, 1910. [WZLQ16] Y. Wen, K. Zhang, Z. Li, and Y. Qiao. A Discriminative Feature Learning Approach for Deep Face Recognition. In European conference on computer vision, pages 499–515. Springer, 2016. [XZLT15] Y. Xiong, K. Zhu, D. Lin, and X. Tang. Recognize Complex Events from Static Images by Fusing Deep Channels. In Computer Vision and Pattern Recognition (CVPR), 2015 IEEE Conference on. IEEE, 2015. [YLLT16] S. Yang, P. Luo, C. Change Loy, and X. Tang. WIDER FACE: A Face Detection Benchmark. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016. [YRZ+17] J. Yang, P. Ren, D. Zhang, D. Chen, F. Wen, H. Li, and G. Hua. Neural Aggregation Network for Video Face Recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 4362–4371, 2017. [YSMC15] A. Yao, J. Shao, N. Ma, and Y. Chen. Capturing AU-Aware Facial Features and Their Latent Relations for Emotion Recognition in the Wild. In Proceedings of the 2015 ACM on International Conference on Multimodal Interaction, pages 451–458, 2015.