Full text
Detecci´on de Armas en V´ıdeos Digitales Trabajo Fin de Grado TRABAJO FIN DE GRADO GRADO EN INGENIER´ IA INFORM´ ATICA CURSO 2018–2019 PABLO ESTEVE CALZADO ALEJANDRO MENDOZA SILVA Directores Luis Javier Garc´ıa Villalba Ana Lucila Sandoval Orozco Departamento de Ingenier´ıa del Software e Inteligencia Artificial Facultad de Inform´atica Universidad Complutense de Madrid Madrid, Junio de 2019
Agradecimientos Pablo Esteve Calzado En primera instancia me gustar´ıa agradecer a mis tutores, Ana y Javier, la ayuda que me han dado durante todo el proceso de desarrollo del TFG. Agradezco a mi compa˜nero de TFG y gran amigo, ´ Alex, quien ha hecho que el TFG sea divertido. Me llevo una gran amistad contigo. Agradezco a mis amigos Pepe, Pelayo, Paimei, Nore˜na, Druet, Chemas, Neto, Mart´ın, y muchos m´as, que han estado en los momentos dif´ıciles y en los momentos felices. Han hecho en gran medida que sea la persona que soy y estar´e eternamente agradecido. Agradezco a mi familia el apoyo incondicional que me han demostrado a lo largo de toda mi vida. A mi otra ”madre”, por ser la mejor abuela del mundo. A Raya, por toda la felicidad que me diste. A mi hermano Alfonso, porque siempre me ha aportado persepectivas de la vida que nadie m´as me aporta. A mi hermano Jorge, porque consigui´o que cambiara mi vida por completo. A mi padre, porque me ense˜na que hay muchas formas de querer, y ayudar no es siempre decir lo que se quiere oir. A mi madre, a quien le debo todo lo que he conseguido y lo que voy a conseguir en la vida, porque me ha demostrado que la felicidad se consigue con esfuerzo. Quiero agradecer especialmente a Carolina todo lo que ha hecho por mi. Me haces ser feliz en todas sus vertientes. Todas las palabras son pocas para expresar los sentimientos que tengo hacia ti. Sin ti nada hubiera sido posible. Nada. Gracias por estar en los mejores y en los peores momentos. Te quiego. iii
iv Alejandro Mendoza Silva Quiero dar las gracias en primer lugar a mis padres. Me sirvi´o de ayuda la confianza que ambos depositaron hacia mi. Mencionar a mi madre, que me convenci´o de que yo era capaz de hacer cualquier cosa que me propusiera. Esto fue un factor determinante y lo ser´a a lo largo de mi vida tanto en mi desarrollo profesional como personal. A mi padre por su inagotable energ´ıa que me provey´o de todo lo necesario para llevar a cabo mis estudios, con su ejemplo de esfuerzo y dedicaci´on me motivo cada d´ıa a levantarme y poner empe˜no en el desarrollo de mi carrera. Tambi´en agradecer a m´ı hermana por su continua preocupaci´on por la progresi´on de mis estudios, sin ti tampoco hubiera sido posible esto. Mencionar a mi compa˜nero y amigo Pablo, sin ti esta aventura no habr´ıa sido la misma, espero que no sea la ´ultima y nuestros caminos vuelvan a juntarse. Agradecer a mis tutores Ana y Javier por aceptar el reto y unirse con Pablo y conmigo a esta rama tan compleja y novedosa de la inform´atica. Quiero concluir diciendo que tanto mi padre, mi madre y mi hermana han sido, y ser´an, mis pilares en esta vida y me esforzar´e para hacerles sentir orgullosos, para que cada momento que invirtieron en mi no sea en vano. Os quiero familia.
´ Indice General ´ Indice de Figuras XI ´ Indice de Tablas XIII Abstract XVII Resumen XIX 1. Introducci´ on 1 1.1. Motivaci´on .................................... 1 1.2. Contexto ..................................... 1 1.3. Objetivos y enfoque ............................... 2 1.4. Plan de trabajo .................................. 3 1.5. Estructura de la Memoria ............................ 5 2. Inteligencia Artificial 7 2.1. Historia de la Inteligencia Artificial ....................... 7 2.2. Modelo Neuronal ................................. 9 2.3. Redes Neuronales Artificiales .......................... 10 2.4. Entrenamiento de las Redes Neuronales Artificiales .............. 10 2.4.1. Entrenamiento Supervisado ....................... 11 2.4.1.1. Entrenamiento por Correcci´on de Error ........... 11 2.4.1.2. Entrenamiento por Refuerzo ................. 11 2.4.1.3. Entrenamiento Estoc´astico .................. 11 2.4.2. Entrenamiento no Supervisado ..................... 12 2.4.2.1. Entrenamiento Hebbiano ................... 12 2.4.2.2. Entrenamiento Competitivo y Comparativo ......... 12 2.5. T´ecnicas en la Inteligencia Artificial ...................... 12 2.5.1. Aprendizaje Autom´atico ......................... 12 2.5.2. Aprendizaje Profundo .......................... 13 2.6. Inteligencia Artificial vs Aprendizaje Autom´atico vs Aprendizaje Profundo . 14 2.7. Visi´on Artificial .................................. 15 2.8. Clasificaci´on de Objetos ............................. 15 2.9. Detecci´on de Objetos ............................... 16 2.10. T´ecnicas de Detecci´on de Objetos ........................ 17 vii
viii ´ INDICE GENERAL 2.11. Modelos ...................................... 25 2.11.1. Detectores de una Etapa ......................... 25 2.11.1.1. Detector de Un Solo Vistazo ................. 25 2.11.1.2. Solo Miras Una Vez ...................... 26 2.11.2. Detectores de Dos Etapas ........................ 28 2.11.2.1. Red Neuronal Convolucional Basada en Regiones ...... 28 2.11.2.2. Red Neuronal Convolucional R´apida Basada en Regiones . 29 2.11.2.3. Red Neuronal Convolucional M´as R´apida Basada en Regiones ............................ 30 2.11.2.4. LSTM .............................. 31 3. Modelo de Detecci´ on de Armas en V´ ıdeos Digitales 33 3.1. Colecci´on de Im´agenes .............................. 33 3.1.1. Caracter´ısticas .............................. 34 3.2. Configuraci´on del Modelo ............................ 34 3.2.1. Keep Aspect Ratio Resizer ....................... 35 3.2.2. Feature Extractor ............................ 35 3.2.3. First Stage Anchor Generator ...................... 35 3.2.4. Initializer ................................. 36 3.2.5. Etapas ................................... 36 3.2.5.1. Primera Etapa ......................... 36 3.2.5.2. Segunda Etapa ......................... 37 3.2.6. ROI Polling (Regiones de Inter´es) ................... 38 3.2.7. Optimizer ................................. 38 3.2.8. Otros Par´ametros ............................ 39 3.2.9. Entrada de Evaluaci´on del Entrenamiento ............... 40 3.2.10. Configuraci´on de la Evaluaci´on ..................... 40 4. Experimentaci´ on y Comparativa 41 4.1. Experimento 1 .................................. 42 4.2. Experimento 2 .................................. 44 4.2.1. Faster RCNN con Primera Colecci´on de Datos ............ 44 4.2.2. Faster RCNN con Segunda Colecci´on de Datos ............ 44 4.2.3. Faster RCNN con Tercera Colecci´on de Datos ............. 44 4.2.4. Faster RCNN con Cuarta Colecci´on de Datos ............. 45 4.2.5. Comparativa ............................... 45 4.3. Experimento 3 .................................. 46 4.3.1. Primeras Configuraciones ........................ 47 4.3.2. Segundas Configuraciones ........................ 48 4.3.3. ´ Ultima Colecci´on de Im´agenes ..................... 50 4.4. Resultados ..................................... 51 4.4.1. Im´agenes de Ejemplo ........................... 52
´ INDICE GENERAL ix 5. Conclusiones y Trabajo Futuro 55 5.1. Conclusiones ................................... 55 5.2. Trabajo Futuro .................................. 56 6. Introduction 57 6.1. Motivation .................................... 57 6.2. Context ...................................... 58 6.3. Objectives and approach ............................. 58 6.4. Work schedule .................................. 59 6.5. Structure ..................................... 61 7. Conclusions and Future Work 63 7.1. Conclusions .................................... 63 7.2. Future Work ................................... 64 8. Aportaciones Individuales 65 8.1. Pablo Esteve Calzado .............................. 65 8.2. Alejandro Mendoza Silva ............................. 67 Bibliograf´ ıa 69
Abstract This work has been done with the purpose of detecting handguns on videos using artificial intelligence algorithms, or more specific, deep learning. We have focused on handgun detection on videos, even though the techniques used are relevant to any other type of object like drugs, plates, faces, people... There was a previous wide research to observe the techniques and models that are part of the state-of-the-art, comparing their results to know which ones are the better for the needs of this work. For obtaining the best results, there are 5 experiments, where there were improvements on each part of the program. The first experiment was useful to choose the best model for the program, which was the Faster RCNN with the backbone Inception. The second experiment was an incremental improvement of the dataset, being four the number of improvements done in this experiment. The third experiment were changes on the model configuration, obtaining this way the parameters that better fitted to the handgun detection. In this experiment where was also an extension of the dataset. For achieving this result it has been mandatory the initial research that was done over the object detection on the state-of-the-art. There was an improvement in the configuration of the model adapting it to the handgun detection. This has been possible thanks to the understanding of the multiple parameters that are part of the model. One of the biggest accomplishments of this work, that might go unnoticed, is the dataset that was generated thanks to the manual labeling done within a program. This dataset consists of thousends of images of great relevance for handgun detection either on videos or images. It was achieved a program which detects handguns on videos with a precision of 90 %, a recall of 92 % and an accuracy of 91 %. Keywords: Artificial intelligence, machine learning, deep learning, computer vision, detection, videos, Faster RCNN, SSD, YOLO, Inception, Dataset. xvii
Resumen Este trabajo ha sido realizado con el prop´osito de detectar pistolas en v´ıdeos mediante el uso de algoritmos de inteligencia artificial, en concreto, aprendizaje profundo. Est´a centrado en la detecci´on de pistolas en v´ıdeos, aunque las t´ecnicas usadas se pueden aplicar a cualquier tipo de objetos como drogas, matr´ıculas, caras, personas. . . Se ha hecho una amplia investigaci´on previa para observar las t´ecnicas y modelos que forman parte del estado del arte, comparando los resultados de los mismos para saber cu´ales son los mejores para las necesidades del trabajo. Para la obtenci´on de los mejores resultados, se ha decidido hacer 3 experimentos, en los que se han ido mejorando partes del programa. El primer experimento se centra en elegir el modelo que se va a usar, que finalmente es Faster RCNN con la red neuronal base Inception. El segundo experimento es una mejora incremental en la colecci´on de datos, siendo 4 las mejoras. El tercer experimento son cambios en la configuraci´on del modelo, obteniendo as´ı los par´ametros que m´as se ajustan a la detecci´on de pistolas. En este ´ultimo experimento se hace tambi´en una ampliaci´on sobre la colecci´on de datos, as´ı como un balanceo en las im´agenes. Para conseguir este resultado ha sido imprescindible la investigaci´on previa realizada sobre la detecci´on de objetos en el estado del arte. Se ha conseguido mejorar la configuraci´on de un modelo para adaptarlo a la detecci´on de pistolas. Esto ha sido posible gracias al entendimiento de los m´ultiples par´ametros que conforman un modelo. Una de las grandes aportaciones de este trabajo, que puede pasar desapercibida, es la colecci´on de im´agenes que se ha generado gracias al etiquetado manual mediante un programa. Esta colecci´on consta de miles de im´agenes de gran relevancia para la detecci´on de pistolas ya sea en v´ıdeos o im´agenes. Se ha conseguido un programa que detecta pistolas en v´ıdeos con una precisi´on del 90 %, una efectividad del 92 % y una exactitud del 91 %. Palabras clave: Inteligencia artificial, aprendizaje autom´atico, aprendizaje profundo, visi´on computacional, detecci´on, v´ıdeos, Faster RCNN, SSD, YOLO, Inception, colecci´on de im´agenes. xix
Cap´ıtulo 1 Introducci´on Hoy en d´ıa existe mucha informaci´on sin explotar. En este caso, nos referimos a la informaci´on contenida en v´ıdeos. Se genera tal cantidad de contenido digital, que es imposible supervisarlo con medios humanos. Es por esto que surge la necesidad del uso de t´ecnicas de inteligencia artificial para procesar la informaci´on de forma masiva. En este trabajo se va a aplicar el AP para la detecci´on de pistolas en v´ıdeos. Se probar´an varios modelos, y se aplicar´an mejoras sobre el modelo elegido para aumentar la detecci´on. Para poder hacer esto se crear´a una colecci´on de im´agenes con etiquetas indicando d´onde se encuentran las pistolas dentro de la imagen. Se har´a esto de forma manual debido a la escasez de colecciones de im´agenes de pistolas en internet. 1.1. Motivaci´on La detecci´on de armas en v´ıdeos es una problem´atica que aumenta diariamente, ya que afecta a la seguridad de las personas. Si bien es un problema importante, no se encuentran muchos programas que se dediquen exclusivamente a ello. De las aplicaciones que se han encontrado las colecciones de im´agenes que usan son escasas y poco relevantes para el objetivo de este trabajo. Existen tambi´en trabajos relacionados con la detecci´on de cuchillos en v´ıdeos, pero no son aplicables a la detecci´on de pistolas. Desde luego queda mucho por avanzar en el campo de la detecci´on de armas en v´ıdeos, puesto que con los recientes modelos de detecci´on de objetos, se puede hacer un software de detecci´on de armas que sea m´as preciso que los anteriores. 1.2. Contexto El presente Trabajo Fin de Grado se enmarca dentro de un proyecto de investigaci´on titulado RAMSES aprobado por la Comisi´on Europea dentro del Programa Marco de Investigaci´on e Innovaci´on Horizonte 2020 (Convocatoria H2020-FCT-2015, Acci´on de Innovaci´on, N´umero de Propuesta: 700326) y en el que participa el Grupo GASS del Departamento de Ingenier´ıa del Software e Inteligencia Artificial de la Facultad de Inform´atica de la Universidad Complutense de Madrid (Grupo de An´alisis, Seguridad y Sistemas, http://gass.ucm.es, grupo 910623 del cat´alogo de grupos de investigaci´on reconocidos por la UCM). 1
2Cap ´ ıtulo 1. Introducci´ on Adem´as de la Universidad Complutense de Madrid participan las siguientes entidades: •Treelogic Telem´atica y L´ogica Racional para la Empresa Europea SL (Espa˜na) •Minist´erio da Justi¸ca (Portugal) •University of Kent (Reino Unido) •Centro Ricerche e Studi su Sicurezza e Criminalit`a (Italia) •Fachhochschule fur Offentliche Verwaltung und Rechtspflege in Bayern (Alemania) •Trilateral Research & Consulting LLP (Reino Unido) •Politecnico di Milano (Italia) •Service Public Federal Interieur (B´elgica) •Universit¨at des Saarlandes (Alemania) •Direcci´on General de Polic´ıa - Ministerio del Interior (Espa˜na) 1.3. Objetivos y enfoque El principal objetivo de este trabajo es la creaci´on de un programa que sea capaz de detectar armas dentro de un v´ıdeo, encuadrando el arma a lo largo del v´ıdeo. El trabajo se centra en la detecci´on de armas de fuego en v´ıdeos mediante el uso de t´ecnicas de inteligencia artificial (en nuestro caso usaremos el algoritmo Faster RCNN con la red neuronal base Inception), lo que implica su clasificaci´on y localizaci´on dentro de la imagen. Esto tiene muchas aplicaciones como la prevenci´on de actos delictivos cuando se aplica el algoritmo a v´ıdeos de videovigilancia. De esta forma se podr´ıa detectar un arma en una c´amara de un aeropuerto y alertar a las autoridades de d´onde se halla el sospechoso, qu´e tipo de arma porta, qui´en es, etc. Tambi´en puede tener otras aplicaciones, como la revisi´on de v´ıdeos para ver si contienen armas en el mismo, y en qu´e instante (al segundo) del v´ıdeo se localiza el arma. Se considera mas importante la precisi´on sobre la rapidez, ya que no puede permitirse que el software no detecte una arma, o que anuncie falsos positivos constantemente.
1.4. Plan de trabajo 3 1.4. Plan de trabajo El trabajo se divide en 4 fases: Investigaci´on, implementaci´on, experimentaci´on y documentaci´on. Se presentan las actividades contenidas en cada fase en la siguiente Tabla 1.1: Tabla 1.1: Plan de trabajo Tarea Duraci´ on FechaInicio FechaF in Investigaci´ on 87 01/10/2018 27/12/2018 Estudio de Python 20 01/10/2018 21/10/2018 Estudio de Aprendizaje autom´atico 15 21/10/2018 05/11/2018 Estudio de Aprendizaje profundo 15 05/11/2018 20/11/2018 Estudio de modelos para detecci´on de objetos 15 20/11/2018 05/12/2018 Lectura de trabajos de investigaci´on 32 25/11/2018 27/12/2018 Implementaci´ on 120 20/12/2018 19/04/2019 Clasificador inicial 7 20/12/2018 27/12/2018 Colecci´on de im´agenes 1 7 27/12/2018 03/01/2019 Colecci´on de im´agenes 2 7 03/01/2019 10/01/2019 Colecci´on de im´agenes 3 10 10/01/2019 20/01/2019 Colecci´on de im´agenes 4 14 20/01/2019 03/02/2019 Configuraciones 1 25 03/02/2019 28/02/2019 Configuraciones 2 25 28/02/2019 25/03/2019 Colecci´on de im´agenes 5 25 25/03/2019 19/04/2019 Experimentaci´ on 128 27/12/2018 04/05/2019 Experimento 1 10 27/12/2018 06/01/2019 Experimento 2 38 06/01/2019 13/02/2019 Experimento 3 15 28/02/2019 04/05/2019 Documentaci´ on 180 20/11/2018 19/05/2019 Res´umenes 30 20/11/2018 20/12/2018 Recopilaci´on informaci´on 120 20/12/2018 19/04/2019 An´alisis experimentos 124 06/01/2019 10/05/2019 Redacci´on memoria 30 19/04/2019 19/05/2019
4Cap ´ ıtulo 1. Introducci´ on Figura 1.1: Diagrama de Gantt
1.5. Estructura de la Memoria 5 1.5. Estructura de la Memoria La memoria del proyecto est´a dividida en cap´ıtulos seg´un la fase a la que corresponden, como a continuaci´on se aclara: En el Cap´ıtulo 1 se hace una breve introducci´on al proyecto, as´ı como la moticaci´on que lo impulsa. En el Cap´ıtulo 2 se redacta un marco te´orico de la inteligencia artificial para contextualizar el proyecto. En el Cap´ıtulo 3 se muestra el Modelo usado en nuestro programa. El Cap´ıtulo 4 se compone de varios experimentos en los que se ponen a prueba los desarrollos que se van haciendo, y se analizan los resultados para saber en qu´e l´ınea continuar el desarrollo. Tambi´en se muestran los resultados que se han obtenido en el trabajo. El Cap´ıtulo 5 es la conclusi´on del trabajo y tambi´en se comentan las posibles mejoras que podr´ıa tener. El Cap´ıtulo 6 es la introducci´on en ingl´es. El Cap´ıtulo 5 es la conclusi´on y trabajo futuro en ingl´es. El Cap´ıtulo 8 es el ´ultimo cap´ıtulo, y describe c´ual es el camino que ha llevado cada uno de los participantes en el proyecto. Se explican tambi´en las contribuciones que ha aportado cada uno.
12 Cap ´ ıtulo 2. Inteligencia Artificial 2.4.2. Entrenamiento no Supervisado El conjunto de vectores de entrenamiento consta ´unicamente de vectores de entrada. El algoritmo de entrenamiento cambia los pesos de la red neuronal, de tal manera que produzca vectores de salida consistentes. El proceso de entrenamiento saca las propiedades comunes del conjunto de vectores de entrenamiento y agrupa en sectores los vectores parecidos. 2.4.2.1. Entrenamiento Hebbiano Es un tipo de entrenamiento no supervisado. Pretende medir la correlaci´on o extraer caracter´ısticas de los datos introducidos en la entrada. El fundamento sobre el que se basa es: si dos neuronas NiyNjtienen el mismo estado simult´aneamente (activo o inactivo), el peso de la conexi´on entre ambas neuronas aumenta. 2.4.2.2. Entrenamiento Competitivo y Comparativo Otro tipo de entrenamiento no supervisado es el entrenamiento competitivo y comparativo, cuyo objetivo est´a orientado a la clasificaci´on de los datos que se introducen en la entrada. Su principal caracter´ıstica es que si un patr´on nuevo se determina que pertenece a una clase reconocida previamente, entonces este patr´on har´a que se modifique la forma de la clase. 2.5. T´ecnicas en la Inteligencia Artificial Dentro de la IA existen varias t´ecnicas que tienen distintos objetivos y metodolog´ıas. Estas t´ecnicas est´an englobadas en la IA, por lo que comparten muchas caracter´ısticas. 2.5.1. Aprendizaje Autom´atico El AA es la disciplina cient´ıfica que permite a un programa aprender a tomar decisiones a partir de unos datos dados para as´ı hacer predicciones. El AA hace uso de redes neuronales 2.3 para hacer las predicciones. Estas redes neuronales toman como entrada unos valores, pasan por un determinado n´umero de capas, y luego dan como salida la predicci´on. Se le dan ciertas reglas al programa, en forma de pesos en la red neuronal, para que interprete los datos de una manera determinada, pero el programa puede cambiar las reglas para aumentar la precisi´on en la predicci´on. Este m´etodo facilita las predicciones, ya que no es necesario saber la l´ogica que tiene que seguir el programa para que ´este vaya mejorando. Un claro ejemplo es el filtro de spam de los correos electr´onicos, ya que sin tener unas reglas completas sobre qu´e correos son spam y cu´ales no, el algoritmo de predicci´on va mejorando con el tiempo. Una de las caracter´ısticas principales del AA es la capacidad de interpretar unas caracter´ısticas dadas para sacar conclusiones. Estas caracter´ısticas, que se proporcionan como entrada a la red neuronal, han de ser extra´ıdas por un humano. Esta necesidad de proporcionar las caracter´ısticas, hacen del AA una t´ecnica con ciertas desventajas respecto al aprendiaje profundo.
2.5. T´ ecnicas en la Inteligencia Artificial 13 Las ventajas del uso del AA respecto de otra t´ecnica de IA es que, al usar redes neuronales, se le dota al programa de la capacidad de aprender con el tiempo. Una clara desventaja en cuanto al uso de esta t´ecnica es la capacidad computacional que requiere respecto a otras t´ecnicas m´as simples. Esta necesidad de capacidad computacional viene dada por el n´umero de conexiones que se generan entre las neuronas de la red, y los algoritmos que han de ser ejecutados para el entrenamiento de los pesos de las conexiones en el entrenamiento. 2.5.2. Aprendizaje Profundo El Aprendizaje Profundo est´a englobado dentro del AA, pero da un paso m´as. La extracci´on de caracter´ısticas deja de ser competencia de un ser humano, y se introduce dentro de la arquitectura de la red neuronal. Esto hace que la complejidad de la arquitectura aumente, ya que es necesario el uso de un mayor n´umero de capas. El AP es una forma de dar libertad a un ordenador para decidir lo que es y lo que no es importante, ya que la extracci´on de caracter´ısticas depende del mismo. En ocasiones esto es innecesario, pues las caracter´ısticas a veces son f´aciles de implementar. Aun as´ı, en la mayor´ıa de casos, el AP permite obtener resultados mejores que los humanos haciendo uso de su propia interpretaci´on de lo que es importante y lo que no. En relaci´on a este trabajo, la dificultad de extraer de forma manual las caracter´ısticas de una imagen es demasiado alta, por lo que el uso del AP es casi obligatorio. Gracias al AP no s´olo se va a poder detectar el objeto, sino que se va a detectar sin tener que decirle a la red neuronal cu´ales son las caracter´ısticas del objeto de forma expl´ıcita. La obtenci´on de las caracter´ısticas que hacen a una pistola ser una pistola las obtiene la red neuronal mediante el entrenamiento, que hace variar los pesos de las conexiones entre las neuronas de las capas que forman parte de la extracci´on de caracter´ısticas. La mayor ventaja del aprendizaje profundo respecto al AA es que no necesita supervisi´on humana para la extracci´on de las caracter´ısticas. La desventaja del aprendizaje profundo, con mucha diferencia, es la inmensa capacidad computacional que puede llegar a requerir, dependiendo tambi´en de cu´an sofisticada sea la red neuronal que se use.
14 Cap ´ ıtulo 2. Inteligencia Artificial 2.6. Inteligencia Artificial vs Aprendizaje Autom´atico vs Aprendizaje Profundo Es importante destacar que el AP es una forma de llevar a cabo el AA, y que el AA est´a englobado dentro de la IA, tal y como se muestra en la Figura 2.3. Figura 2.3: Inteligencia artificial vs aprendizaje autom´atico vs aprendizaje profundo Cuando se habla de diferencias entre AA eIA, se quiere hacer referencia a las caracter´ısticas que tiene que cumplir el AA para serlo, y que no tiene por qu´e cumplir la IA. Por ejemplo, el uso de redes neuronales es obligatorio para el AA, aunque no lo es en la IA. De esta forma se van a explicar las “diferencias” entre IA,AA yAP que se ven de forma resumida en la Tabla 2.1. Tanto la IA como el AA y el AP tienen como objetivo la toma de decisiones parecidas a un humano. En el AA yelAP es necesario el uso de redes neuronales, ya que son la base sobre la que se asientan estas t´ecnicas. Tambi´en en estas dos t´ecnicas se tiene la capacidad de cambiar, mientras que en la IA no es algo intr´ınseco. La extracci´on de caracter´ısticas autom´atica es algo ´unico del aprendizaje profundo, que aunque est´e englobado en la IA y en el AA, s´olo en el AP es necesario. Debido a esto, en el AP no se requiere supervisi´on humana, y esto lo “diferencia” de otras t´ecnicas. Debido a que la extracci´on de caracter´ısticas en el AP se hace con una red neuronal, y a que se requieren m´as capas ocultas, la complejidad arquitect´onica y la capacidad computacional requerida en el AP es necesariamente grande, mientras que en el AA no lo es necesariamente.
2.7. Visi´ on Artificial 15 Tabla 2.1: AI vs AA vs AP AI ML DL Toma decisiones como un humano S´ı S´ı S´ı Uso de redes neuronales No S´ı S´ı Capacidad de cambiar No S´ı S´ı Extracci´on de caracter´ısticas de forma autom´atica No No S´ı Supervisi´on humana S´ı S´ı No Complejidad de la arquitectura Simple Media Compleja Requiere alta capacidad computacional No No S´ı En la Figura 2.4 se ense˜na de forma visual la diferencia que existe entre el AA yelAP en cuanto a la extracci´on de caracter´ısticas. Figura 2.4: Aprendizaje autom´atico vs aprendizaje profundo 2.7. Visi´on Artificial Hay un concepto transversal al proyecto, que es la visi´on artificial. Este concepto se refiere a la capacidad de un ordenador de procesar una imagen dada, e interpretarla para sacar la caracter´ısticas fundamentales y tener un entendimiento de lo que ocurre en la imagen. Usando t´ecnicas de aprendizaje profundo, las caracter´ısticas se sacan “autom´aticamente” con las capas profundas, por lo que el uso del aprendizaje profundo es lo m´as adecuado para este proyecto. 2.8. Clasificaci´on de Objetos La clasificaci´on de objetos es un problema de visi´on artificial que consiste en interpretar una imagen y decidir a qu´e clase de las proporcionadas pertenece. Esta es una parte fundamental del proyecto, pues hay que decidir si en un frame de un v´ıdeo hay un objeto o no, y de haberlo, cu´al es. Como se puede apreciar en la Figura 2.5, la imagen es la entrada de una red neuronal, que decide si es un pera o una manzana.
16 Cap ´ ıtulo 2. Inteligencia Artificial Figura 2.5: Clasificaci´on de objetos Para hacer clasificaci´on en un conjunto de im´agenes, se requiere entrenar el modelo con muchas im´agenes etiquetadas con la clase a la que pertenecen. La clasificaci´on puede ser decidir si una imagen pertenece a una clase o no, pero tambi´en puede ser decidir a qu´e clae, respecto de un conjunto de clases predefinidas, pertenece. La clasificaci´on de im´agenes con m´ultiples clases se puede abordar de varias formas, por ejemplo, en un trabajo [GN09] se hace una combinaci´on de las caracter´ısticas de las clases para la clasificaci´on de las mismas. 2.9. Detecci´on de Objetos La detecci´on de objetos va un paso m´as all´a que la clasificaci´on de objetos, y consiste en 2 partes: Clasificaci´on yLocalizaci´on. La detecci´on de objetos tiene un coste mucho mayor que hacer s´olo la clasificaci´on, ya que no s´olo se calcula a qu´e clase pertenece una imagen (1 par´ametro) sino que tambi´en se calcula la posici´on en la que se encuentra el objeto dentro de la imagen (4 par´ametros). Es por esto que la capacidad necesaria de procesamiento es mucho mayor que otro tipo de aproximaciones. La detecci´on de objetos tiene como objetivo no s´olo detectar de forma correcta el objeto, sino evitar hacer falsas detecciones. Esto tiene mayor o menor importancia seg´un el objetivo del programa que haga uso de esta t´ecnica. En este trabajo se hace detecci´on de pistolas en entornos de videos de seguridad y videovigilancia, por lo que es importante hacer la detecci´on con el menor n´umero de fallos posible. Hay varios modelos que est´an dise˜nados para hacer la detecci´on de la forma m´as eficaz y eficiente posible, aunque cada uno tiene sus caracter´ısticas. Al ser la detecci´on una problem´atica que consume muchos recursos, muchos modelos se centran en la rapidez en la detecci´on, y no tanto en la precisi´on.
2.10. T´ ecnicas de Detecci´ on de Objetos 17 2.10. T´ecnicas de Detecci´on de Objetos La aplicaci´on de las t´ecnicas de detecci´on de objetos m´as conocida es la detecci´on de caras. En este contexto, se encuentra el detector de caras PyramidBox [TDHL18]. Este detector de caras tiene en cuenta el entorno para sacar conclusiones con mayor precisi´on, superando a otros detectores de cara del estado del arte en benchmarks reconocidos como FDDB [JLM10] y WIDER FACE [YLLT16]. Es mucho mejor que otros cuando la cara es peque˜na o cuando la cara est´a borrosa en la imagen, ya que el contexto de la imagen juega un papel adicional, y consigue mejorar la precisi´on. Como se observa en la Figura 2.6, la arquitectura del modelo es piramidal. Este tipo de implementaci´on tiene implicaciones en los resultados de la red al analizar la imagen. Figura 2.6: PyramidBox Otro detector, aunque esta vez no es de caras, es el RefineDet [ZWB+18]. Este es un detector de una sola etapa que consiste en 2 m´odulos interconectados: el M´odulo de refinamiento de anclas (ARM por sus siglas en ingl´es) y el M´odulo de detecci´on de objetos (ODM por sus siglas en ingl´es). Para conectar un m´odulo con otro, se usan Bloques de transferencia de conexi´on (TCB por sus siglas en ingl´es), que convierten y transfieren la informaci´on del ARM al ODM. Esto se hace para reducir el espacio en el que se hace la clasificaci´on y para afinar la localizaci´on y tama˜no de las anclas o cajas.
18 Cap ´ ıtulo 2. Inteligencia Artificial Como se observa en la Tabla 2.2, los resultados que se obtienen con RefineDet son muy buenos. Consigue un punto intermedio (o incluso mejor) entre la rapidez de modelos como SSD o YOLO y la eficacia de modelos como Faster-RCNN. Otro modelo propuesto es el YOLOv3 [RF18], que es la ´ultima versi´on de YOLO. Tiene varias mejoras sobre el modelo original, y ahora tiene m´as capas, aunque eso no afecta a la rapidez. Tabla 2.2: RefineDet Modelo Red Tama˜ no # Cajas FPS mAP VOC mAP VOC base entrada 2007 2012 Two stage detectors Fast R-CNN VGG-16 1000 x 600 2000 0,5 70 % 68,4 % Faster R-CNN VGG-16 1000 x 600 300 7 73,2 % 70,4 % OHEM VGG-16 1000 x 600 300 7 74,6 % 71,9 % HyperNet VGG-16 1000 x 600 100 0,88 76,3 % 71,4 % Faster R-CNN ResNet-101 1000 x 600 300 2,4 76,4 % 73,8 % One stage detectors YOLO GoogleNet 448 x 448 98 45 63,4 % 57,9 % SSD300 VGG-16 300 x 300 8732 46 77,2 % 75,8 % YOLOv2 Darknet-19 544 x 544 1445 40 78,6 % 73,5 % SSD512 VGG-16 512 x 512 24564 19 79,8 % 78,5 % RefineDet512 VGG-16 512 x 512 16320 24,1 81,8 % 80,1 % La arquitectura del modelo se puede ver en la Tabla 2.3. Ya no usa la funci´on Softmax para predecir la clase porque generaba problemas en la predicci´on en cajas en las que hay varias clases; ahora se usa una aproximaci´on multiclase (binary cross-entropy loss). Incluye extracci´on de caracter´ısticas usando 3 escalas distintas, que es parecido a las redes piramidales. Algunos de los resultados m´as destacables son: •Misma precisi´on media que modelos SSD, pero 3 veces m´as r´apido (usando COCO). •El tiempo de inferencia es una tercera parte del tiempo de inferencia de otras redes de detecci´on del estado del arte. Siguiendo con propuestas de modelo, una de las propuestas de modelo m´as innovadoras en el estado del arte es la de Spiking-YOLO [KPNY19]. Esta es una implementaci´on de una Red Neuronal de Impulsos. En vez de usar las tradicionales redes neuronales profundas, se propone el uso de redes neuronales de impulso. Este tipo de redes tienen un car´acter m´as realista, y su coste en tiempo es m´as elevado. Normalmente estas redes se usaban s´olo para la clasificaci´on, pero en este caso se ha usado para la detecci´on de objetos debido al aumento de la capacidad computacional que hay a medida que pasan los a˜nos. Es el primer detector de objetos que usa este tipo de red obteniendo resultados parecidos a otros detectores del estado del arte que usan redes profundas.
2.10. T´ ecnicas de Detecci´ on de Objetos 19 Tabla 2.3: YOLOv3 Tipo Filtros Tama˜ no Salida Convolucional 32 3 x 3 256 x 256 Convolucional 64 3 x 3 / 2 128 x 128 Convolucional 32 1 x 1 1x Convolucional 64 3 x 3 Residual 128 x 128 Convolucional 128 3 x 3 / 2 64 x 64 Convolucional 64 1 x 1 2x Convolucional 128 3 x 3 Residual 64 x 64 Convolucional 256 3 x 3 / 2 32 x 32 Convolucional 128 1 x 1 8x Convolucional 256 3 x 3 Residual 32 x 32 Convolucional 512 3 x 3 / 2 16 x 16 Convolucional 256 1 x 1 8x Convolucional 512 3 x 3 Residual 16 x 16 Convolucional 1024 3 x 3 / 2 8 x 8 Convolucional 512 1 x 1 4x Convolucional 1024 3 x 3 Residual 8 x 8 Avgpool Global Connected 1000 Softmax Figura 2.7: Spiking-YOLO En la Figura 2.7 se ve la normalizacion seg´un el canal que se propone; primero los pesos se normalizan con la m´axima activaci´on de cada canal para tener activaciones normalizadas, despu´es se multiplica por λl−1las activaciones normalizadas para obtener de nuevo las activaciones originales.
20 Cap ´ ıtulo 2. Inteligencia Artificial Adem´as de modelos, hay tambi´en propuestas de mejora de modelos, como es el caso de la Detecci´on con sem´antica enriquecida [ZQX+18]. Es una mejora sobre los modelos de detecci´on de objetos. Como se ve en la Figura 2.8, la arquitectura cambia y se le aplican mejoras que consisten en a˜nadir una rama de segmentaci´on sem´antica y un m´odulo de activaci´on global, lo que hace mejorar los resultados en la detecci´on. Figura 2.8: Detection with Enriched Semantics En este caso usan el modelo SSD como base, y aplican el m´odulo de segmentaci´on y el m´odulo de activaci´on global para hacer mejoras sem´anticas a bajo nivel y mejoras en las capas de detecci´on de alto nivel respectivamente. Otro tipo de mejora sobre el SSD es la que se propone en [XZYA18], que surge de la necesidad de mejorar la precisi´on del modelo SSD en los objetos peque˜nos, ya que los detectores de una sola etapa tienen m´as problemas para detectar los objetos de menor tama˜no. Este modelo demuestra que, usando la informaci´on que el contexto proporciona, se mejora sustancialmente la eficacia de la detecci´on. Figura 2.9: Context aware single shot detector
2.10. T´ ecnicas de Detecci´ on de Objetos 21 Como se ve en la Figura 2.9, esta mejora propone el uso de una red base VGGNet sobre la que se aplican capas convolucionales adicionales a las de SSD, que sirven como entrada para las capas de predicci´on. La salida de estas capas de predicci´on son la entrada de las capas de contexto, que son la mejora de la propuesta. Los resultados de aplicar este modelo dan un 3,2 % de mejora en la precisi´on media en los objetos peque˜nos comparado con el ´ultimo modelo SSD, manteniendo la velocidad de procesamiento. Otra de las posibles mejoras aplicadas a SSD es la que se propone en [KSL+19], que consiste en realizar una mejora consistente sobre el modelo SSD. Se enfoca en hacer coincidir las hip´otesis de entrenamiento y la calidad de inferencia utilizando los anclajes refinados durante el entrenamiento. Tabla 2.4: Consistent Optimization Modelo Red base AP AP50 AP75 APSAPMAPL Two stage Faster R-CNN ResNet-101 34.9 55.7 37.4 15.6 38.7 50.9 Mask R-CNN ResNet-101 88.2 60.3 41.7 20.1 41.1 50.2 One stage SSD513 ResNet-101 31.2 50.4 33.3 10.2 34.5 49.8 YOLOv2 Darknet-19 21.6 44.0 19.2 5.0 22.4 35.5 YOLOv3 Darknet-53 33.0 57.9 34.4 18.3 35.4 41.9 RefineDet512 ResNet-101 36.4 57.5 39.5 16.6 39.9 51.4 ConRetinaNet ResNet-101 40.1 59.6 43.5 23.4 44.2 53.3 Los resultados de aplicar la optimizaci´on en el modelo SSD con RetinaNet sobre COCO son visibles en la Tabla 2.4. Mejora la precisi´on media de 39.1 % a 40.1 %. Hay tambi´en propuestas de mejoras de otros modelos, como la que se propone en Complex-YOLO [SMAG18]. Es una red de detecci´on de objetos basada en YOLOv2 que se centra en la detecci´on de objetos en un entorno 3D (aplicable a veh´ıculos, realidad aumentada, robots. . . ). Consiste en una Red de Propuestas de Regi´on de Euler espec´ıfica (E-RPN) para estimar la postura del objeto agregando una fracci´on imaginaria y real a la red de regresi´on.
28 Cap ´ ıtulo 2. Inteligencia Artificial Como el modelo aprende a predecir cajas delimitadoras a partir de datos, le cuesta generalizar con objetos con un nuevo o inusual ratio de apariencia o configuraci´on. Finalmente, cuando se entrena con una funci´on de p´erdida que mejora el rendimiento de detecci´on, la funci´on de p´erdida trata errores por igual en cajas peque˜nas y cajas grandes. Un peque˜no error en una caja grande, no es significativo, pero un error peque˜no en una caja peque˜na, tiene un efecto mayor. La principal fuente de errores en YOLO son las localizaciones incorrectas. 2.11.2. Detectores de Dos Etapas Los detectores de dos etapas se saltan la fase de b´usqueda de RoI y alimenta la red directamente con la imagen. 2.11.2.1. Red Neuronal Convolucional Basada en Regiones El modelo Red neuronal convolucional basada en regiones, o RCNN por sus siglas en ingles (Region-based convolutional neural network) es un detector de dos etapas. Para solventar el problema de seleccionar un gran n´umero de regiones, Ross Girshik [GDDM14] propuso un m´etodo donde se usa una b´usqueda selectiva para extraer 2000 regiones de una imagen, y las llam´o propuestas de regi´on. Usando este m´etodo, en vez de extraer much´ısimas propuestas, trabajas con 2000 propuestas de regi´on exactamente. El algoritmo de b´usqueda selectiva es el siguiente: •Se generan sub-segmentaciones iniciales (regiones candidatas). •Usar el algoritmo greedy para combinar de forma recursiva regiones similares en regiones m´as grandes. •Usar las regiones generadas para producir las propuestas de regi´on finales. Estas 2000 propuestas de regi´on se juntan y se meten en una red neuronal convolucional que produce un vector de caracter´ısticas de 4096 dimensiones como salida. La red neuronal convolucional act´ua como un extractor de caracter´ısticas.
2.11. Modelos 29 Figura 2.16: RCNN Estas caracter´ısticas se introducen como entrada a una M´aquina vectorial de soporte, o SVM por sus siglas en ingl´es (support vector machine), para clasificar la presencia de objetos dentro de la propuesta de regi´on, como se ve en la Figura 2.16. Adem´as de predecir la presencia de un objeto en las propuestas de regi´on, el modelo predice tambi´en 4 valores que dicen la posici´on y tama˜no de la caja para aumentar la precisi´on de la caja delimitadora. Problemas con RCNN: •Consume mucho tiempo en entrenar la red porque clasifica 2000 propuestas de regi´on por cada imagen. •No puede ser implementado en tiempo real ya que tarda unos 47 segundos por cada imagen de test. •El algoritmo de b´usqueda selectiva es un algoritmo fijado. Por lo tanto, no hay aprendizaje en esa parte, y podr´ıa desencadenar malas propuestas de regi´on. 2.11.2.2. Red Neuronal Convolucional R´ apida Basada en Regiones El modelo Red neuronal convolucional r´apida basada en regiones, o Fast RCNN por sus siglas en ingl´es (Fast Region-based Convolutional Neural Network), usa como base el algoritmo RCNN mostrado en el apartado anterior, pero con diferencias y mejoras que se explican a continuaci´on. En vez de generar una pir´amide de capas, Fast RCNN deforma las regiones de inter´es en una sola capa usando RoI pooling. El RoI pooling usa Max pooling para convertir las caracter´ısticas contenidas en una regi´on de inter´es en un mapa de caracter´ısticas peque˜no de dimensiones HxW .
30 Cap ´ ıtulo 2. Inteligencia Artificial Figura 2.17: Fast RCNN Se puede decir que Fast RCNN es un caso especial de SPPNet, pero en vez de usar m´ultiples capas, Fast RCNN usa solo una. Esto se puede ver claramente en la Figura 2.17. Esta capa alimenta a un red completamente conectada para la clasificaci´on usando regresi´on lineal y softmax. La caja delimitadora es despu´es refinada con regresi´on lineal. En Fast RCNN, todos los par´ametros dentro de la red neuronal convolucional pueden ser entrenados juntos. Estos par´ametros se entrenan juntos con una funci´on logar´ıtmica de p´erdida de la clasificaci´on de clase y con una funci´on de p´erdida L1 de la predicci´on de la caja delimitadora. 2.11.2.3. Red Neuronal Convolucional M´ as R´ apida Basada en Regiones El modelo Red neuronal convolucional m´as r´apida basada en regiones, o Faster RCNN por sus siglas en ingl´es (Faster Region-based Convolutional Neural Network), est´a basado en el modelo Fast RCNN que se explica en el apartado anterior. A continuaci´on se explican diferencias y mejoras respecto al mismo. Tanto el modelo RCNN como el Fast RCNN usan la b´usqueda selectiva para obtener las propuestas de regi´on. Esta b´usqueda es muy lenta y consume mucho tiempo, afectando al rendimiento de la red. Por esto, Shaoqing Ren propuso usar una red convolucional que sirviera para hacer las propuestas de regi´on, ahorrando as´ı mucho tiempo y mejorando la eficiencia del modelo, que se puede observar en la Figura 2.18. La diferencia entre Fast RCNN y Faster RCNN es que no se usa un m´etodo de propuestas de regi´on para crear las propuestas de regi´on. En vez de eso, se entrena una red de proposici´on de regiones que coge los mapas de caracter´ısticas como entrada, y da como salida las propuestas de regi´on. Estas propuestas alimentan la capa RoI pooling en la Fast RCNN.
2.11. Modelos 31 Figura 2.18: Faster RCNN 2.11.2.4. LSTM Este modelo est´a englobado en las arquitecturas recurrentes, que se basan en poder acceder a informaci´on del pasado, y no solo a la del presente. Esto permite a este tipo de redes tomar mejores decisiones teniendo en cuenta las tomadas en el pasado. La principal idea de la arquitectura de este modelo, como se ve en la Figura 2.19, es el uso de una celda de memoria que mantiene su estado a lo largo del tiempo, y unidades de acceso no lineales que regulan el flujo de informaci´on hacia dentro y hacia fuera de la celda de memoria. Los ´ultimos estudios a˜naden nuevas mejoras a la arquitectura LSTM original [HS95] [HS97]. Figura 2.19: LSTM
32 Cap ´ ıtulo 2. Inteligencia Artificial La importancia del modelo LSTM es que es un modelo que usa una red neuronal recurrente, lo que implica que los hechos sucedidos en el pasado se tienen en cuenta en el futuro. Es por esto que son muy interesantes a la hora de tratar con v´ıdeos o con problem´aticas como la interpretaci´on de voz a texto. Sin embargo, al ser de reciente creaci´on, no est´a bien documentada, y todav´ıa no est´a bien aplicada en v´ıdeos. Adem´as, la capacidad de procesamiento que requiere es demasiado alta para poder ver resultados con la capacidad de computaci´on disponible para la realizaci´on de este trabajo.
Cap´ıtulo 3 Modelo de Detecci´on de Armas en V´ıdeos Digitales Este trabajo se compone de dos partes bien diferenciadas: La colecci´on de im´agenes y el modelo. A continuaci´on se muestra c´omo est´an formadas estas dos partes, explicando en profundidad las caracter´ısticas de cada una de ellas. 3.1. Colecci´on de Im´agenes Una colecci´on de im´agenes es un conjunto de im´agenes con sus etiquetas asociadas, en este trabajo, las etiquetas indican la posici´on y la clase del objeto dentro de la imagen. La colecci´on de im´agenes se usa para entrenar y para testear el modelo. En este trabajo la colecci´on de im´agenes se divide siempre en la proporci´on 80-20 para entrenamiento-pruebas. Se elige esta proporci´on ya que es la m´as recomendada para no malgastar muchas im´agenes en las pruebas, pero que permita al programa sacar conclusiones de los resultados de la misma. Las caracter´ısticas que hacen de una colecci´on de im´agenes ser buena son las siguientes: •Tener muchas im´agenes. •Tener muchos escenarios variados en los que se usan las armas. •Que haya muchas posiciones distintas de las armas. •Que haya m´as o menos la misma cantidad de im´agenes por escenario. •Que haya m´as o menos la misma cantidad de im´agenes por posici´on. •Que las im´agenes vengan de v´ıdeos parecidos a los que se van a usar para la detecci´on. •Que la cantidad de im´agenes con arma, y sin arma sea balanceada. 33
34 Cap ´ ıtulo 3. Modelo de Detecci´ on de Armas en V ´ ıdeos Digitales 3.1.1. Caracter´ısticas La colecci´on de im´agenes que se utiliza contiene im´agenes que se han adquirido y que se han creado a lo largo del segundo experimento, y de una parte del tercer experimento. La colecci´on de im´agenes consta de 1200 im´agenes de pistolas seleccionadas de una colecci´on de 3000 im´agenes. 120 im´agenes de pistolas siendo usadas en el contexto que se necesita. Fotogramas relevantes de 9 v´ıdeos de atracos. Fotogramas relevantes de v´ıdeos caseros hechos para mejorar la detecci´on. Forman tambi´en parte del dataset muchas im´agenes sin pistola hasta llegar a la proporci´on 50-50 de Pistola-No pistola. 3.2. Configuraci´on del Modelo El modelo se compone de 3 redes neuronales. La primera red se encarga de la extracci´on de caracter´ısticas. Esta red es la red neuronal base, que en este caso es la Inception. La segunda y tercera red pertenecen a Faster RCNN. Faster RCNN se divide en estas dos redes en las que la primera red tiene como objetivo crear regiones de propuesta, o lo que es lo mismo, localizar el objeto de inter´es, y la segunda red se encarga de la clasificaci´on de cada regi´on proporcionada por la red anterior. En la Figura 3.1 se ve un esquema del modelo completo. La red neuronal base Inception, est´a compuesta por 467 capas, cuya funci´on es extraer las caracter´ısticas de la imagen de entrada. La mayor´ıa de ellas sigue el esquema: 6 x conv2d -merge -max pooling2d -conv2d -merge -batch normalization -activation. Este esquema se repite 43 veces, tambi´en se a˜naden otras capas como lambda,average pooling2d,dropout, flatten ydense. La informaci´on completa acerca de esta red se encuentra en [Maj19]. Figura 3.1: Modelo completo Adem´as del modelo, que se explica en el apartado 2.11.2.3, es muy importante configurarlo para adaptarlo lo mejor posible a la detecci´on del objeto que se desee. La configuraci´on de los modelos puede variar, y es interesante hacerlo pues dependiendo del tipo de objetos a detectar, unos par´ametros son mejores que otros. En este caso, que se quiere detectar pistolas, se van a buscar los valores para los par´ametros de la configuraci´on que mejor se adapten al programa.
3.2. Configuraci´ on del Modelo 35 3.2.1. Keep Aspect Ratio Resizer Este par´ametro sirve para el cambio de tama˜no en las imagenes. Para que las imagenes resultantes siempre tengan la misma relaci´on de aspecto. Con min dimension se especifica el tama˜no del borde m´as peque˜no permitido y con max dimension el m´aximo permitido. El dataset UCM - Pistolas se compone generalmente por im´agenes de 848 x 480. Si se quiere ajustar estas im´agenes con altura 600, se tiene que calcular la dimension m´axima as´ı: 848∗600 480 = 1060. Por lo que max dimension tendr´a el valor 1060. 3.2.2. Feature Extractor Con este par´ametro de configuraci´on se especifica en primer lugar qu´e tipo de extractor o red neuronal base se escoger´a para el modelo mediante type. El par´ametro configurable se trata del first stage features stride, que significa cu´anto va a profundizar, hablando en t´erminos de convoluci´on, para extraer las caracter´ısticas. Por las comparativas realizadas 4.1, se decidi´o usar la red neuronal base Inception [SVI+16], que es un red formada por varias capas convolucionales consecutivas de 55, 33 y max-pool de forma continuada. Se necesita que la red profundice en t´erminos de convoluci´on para extraer las caracter´ısticas por lo que first stage features stride se estableci´o en 16. Se ha optado por el optimizador l2, ya que disminuye los coeficientes y esto minimiza el efecto de correlaci´on de entrada y hace que el modelo generalice mejor. Esto es muy importante en un detector de armas dada la diversidad de escenarios en el que va a ser expuesto. 3.2.3. First Stage Anchor Generator Los cuadros de anclaje se utilizan en modelos de detecci´on para ayudar a identificar objetos de diferentes formas. Para ello mediante grid anchor generator se puede modificar opciones como: Scales: se definen para usar un conjunto de escalas expl´ıcitamente definido. Aspect ratios: Relaci´on de aspectos para los cuadros de anclajes en cada punto de rejilla. Esto es un atributo de proyecci´on de imagen que describe la relaci´on proporcional entre el ancho de una imagen y su altura. Height stride: La altura de pixeles para cada cuadro de anclaje. Width stride: La anchura de p´ıxeles para cada cuadro de anclaje.
36 Cap ´ ıtulo 3. Modelo de Detecci´ on de Armas en V ´ ıdeos Digitales 3.2.4. Initializer Se utiliza el inicializador truncated normal initializer ya que genera n´umeros aleatorios cuya media es cercana al 0. El valor de first stage max proposals se ajusta, ya que no se quiere que haya demasiadas propuestas a evaluar en el modelo. Por tanto se asigna el valor 150. No se utiliza dropout ya que la red no esta en riesgo de sobrealimentaci´on. Se ajustan los valores max detections per class ymax total detections por tener s´olo una clase y no se quiere que haya un sobreprocesamiento. Se pone, por tanto, los valores 50 y 150 respectivamente. Se utiliza la funci´on Sigmoide ya que Softmax es utilizado para clasificaciones multiclase. 3.2.5. Etapas Faster RCNN se compone de dos redes, la primera propone regiones en las cuales se puede encontrar objetos (RPN). La segunda red intenta detectar objetos en las propuestas dadas por la primera. Por convenci´on a la primera red se le denomina first stage y a la segunda second stage. 3.2.5.1. Primera Etapa Par´ametros para la primera etapa: •first stage nms score threshold: El umbral de puntuci´on de no supresi´on m´axima. •first stage nms iou threshold: El umbral de IOU sin supresi´on m´axima. •first stage max proposals: El m´aximo de propuestas permitidas para la primera red. •first stage localization loss weight: Factor de Perdida de peso por localizaci´on. •first stage objectness loss weight: Factor de p´erdida de peso objetivo. El umbral de no supresi´on m´axima se utiliza para evitar que los cuadros de anclaje delimitadores se suporpongan se˜nalando el mismo objeto. Para que no existan varias detecciones sobre un mismo objetivo. El ´ındice de Jaccard mide el grado de similitud entre dos conjuntos. T=Nc Na +Nb +Nc Na =ElementosA Nb =ElementosB Nc =ElementosInterceptados Umbral IOU: durante el entrenamiento se procede a juntar el cuadro real con el predicho sobre intersecci´on sobre uni´on que es el ´ındice de Jaccard. Los mejores cuadros se etiquetaran como positivos si est´an por encima del umbral IOU.
3.2. Configuraci´ on del Modelo 37 3.2.5.2. Segunda Etapa mask rcnn box predictor Se encarga de predecir clases; opcionalmente permite la predicci´on de m´ascaras o puntos clave dentro de las cajas de detecci´on. Los par´ametros de configuraci´on del mismo son los siguientes: use dropout: Generalmente se utiliza cuando la red esta en riesgo de sobrealimentaci´on, es decir cuando la red es demasiado grande, entrenas durante mucho tiempo o si no tienes suficientes datos. Como se ve en la Figura 3.2, se desactivan neuronas de forma aleatoria. Figura 3.2: Dropout Se recomienda no utilizar el dropout, debido a las relaciones codificadas en los mapas de caracter´ısticas, las activaciones pueden ser altamente correlacionadas. Actualmente se utiliza batch normalization para estabilizar la red neuronal. dropout keep probability: Se utiliza para calcular si la neurona tendra deserci´on o no, es decir, se calcula la contribuci´on de cada neurona con la probabilidad que se indica en este par´ametro. Regulizer: Cuando se utilizan regularizadores, ´estos actuan de manera que evitan el sobreajuste (overfitting), suavizando los resultados. Evitando que la m´aquina intente adaptarse lo m´aximo posible a los datos de entranamiento, ya que no da abstracci´on a sus predicciones, se tienen que conseguir resultados lo m´as gen´ericos posibles. Est´an disponibles los siguientes: •L1 regularizer Agrega el valor absoluto del coeficiente de peso como t´ermino a la funci´on de perdida. •L2 regularizer Agrega el cuadrado del coeficiente de peso como t´ermino de penalizaci´on en la funci´on de p´erdida. La funci´on de p´erdida mide con los resultados de las predicciones y la respuesta correcta que tan buenas son las predicciones. Existen varias funciones de perdida como el error cuadr´atico medio o la entrop´ıa cruzada. El error cuadr´atico medio MSE, es la media de la diferencia entre los puntos reales y la salida predicha al cuadrado. Este m´etodo penaliza las diferencias mayores.
44 Cap ´ ıtulo 4. Experimentaci´ on y Comparativa 4.2. Experimento 2 El objetivo de este experimento es conseguir una colecci´on de im´agenes que proporcione los mejores resultados posibles. por ello, a lo largo del experimento se ir´an haciendo mejoras continuas sobre cada una de las colecciones de im´agenes, mostrando en cada mejora los resultados que se obtienen. Se usa el modelo Faster RCNN + Inception en todos los experimentos en adelante debido a que proporciona los mejores resultados, como se demuestra en el anterior experimento 4.1. 4.2.1. Faster RCNN con Primera Colecci´on de Datos En internet hay varias colecciones de im´agenes de armas. ´ Estas contienen im´agenes de varios tipos de armas en posiciones variadas, pero en la mayor´ıa de veces no est´an siendo usadas por nadie y simplemente est´an expuestas. La primera colecci´on de im´agenes que se decide hacer consiste en una colecci´on de im´agenes [dG19] de 3000 armas que se usa en muchos programas de detecci´on de armas y una colecci´on de im´agenes de cuchillos de 1000 im´agenes. 4.2.2. Faster RCNN con Segunda Colecci´on de Datos Los resultados de la colecci´on de datos 4.2.1 son muy malos, tal como se puede observar en la Tabla 4.2 debido a que las im´agenes de la colecci´on de im´agenes no se asemejan a las im´agenes de los v´ıdeos que se usan para hacer las detecciones (v´ıdeos de c´amaras de videovigilancia o parecido). Estos resultados demuestran que hab´ıa que incluir im´agenes en las que aparezcan las pistolas siendo usadas. Para ello se coge otra colecci´on de im´agenes de internet que contiene 120 im´agenes que tienen relaci´on con el tipo de v´ıdeos que van a ser usados por el programa. Se deja de usar la clase de cuchillos, y se usan exclusivamente im´agenes de una sola clase para optimizar el entrenamiento del modelo. 4.2.3. Faster RCNN con Tercera Colecci´on de Datos Tras comprobar los resultados se decide hacer una colecci´on de im´agenes casera de pistolas cogiendo los fotogramas de 3 v´ıdeos, y con un programa llamado “OpenLabeling” [Car19] se decide hacer una por una las etiquetas de todos los fotogramas de los 3 v´ıdeos. Se junta la nueva colecci´on de im´agenes con la colecci´on de im´agenes anterior, y se decide entrenar de nuevo el modelo.
4.2. Experimento 2 45 4.2.4. Faster RCNN con Cuarta Colecci´on de Datos Los resultados de la colecci´on de im´agenes 4.2.3 son mejores que los de la colecci´on 4.2.2, tal y como se observa en la Tabla 4.2, pero siguen sin ser buenos por las siguientes razones: •La cantidad de im´agenes que se cogen de los v´ıdeos es mucho mayor a la que se tiene en las otras colecciones de im´agenes, por lo que la colecci´on de im´agenes est´a desproporcionada. •Al usar s´olo 3 v´ıdeos no se consigue entrenar el modelo para una variedad amplia de situaciones, y s´olo se hacen detecciones en situaciones cuyo contexto es muy parecido al de los v´ıdeos. •Se cogen todos los fotogramas de los v´ıdeos, y al haber muchos fotogramas por segundo, la diferencia entre fotogramas es m´ınima, y no aporta informaci´on ´util tener 15 fotogramas casi iguales. Teniendo toda esta informaci´on se decide hacer una colecci´on de im´agenes, que consiste de: •La primera colecci´on de im´agenes (s´olo las pistolas) se somete a un filtrado de im´agenes una por una y se eliminan las im´agenes que se considera que no tienen relevancia y no aportan beneficios al entrenamiento. (1200 im´agenes). •La segunda colecci´on de im´agenes. •Las im´agenes de los 3 v´ıdeos se someten al mismo filtrado que el primero, para evitar im´agenes repetidas que afecten al entrenamiento. •Se seleccionan 30 nuevos videos de los cuales se cogen los 6 m´as relevantes y se toman las im´agenes m´as relevantes y se etiquetan. 4.2.5. Comparativa Como se observa en la Tabla 4.2 y en la Figura 4.2, cada colecci´on de im´agenes afecta a la eficacia del modelo. Sin duda, la mejor colecci´on de im´agenes es la ´ultima, que es la que se decide usar para hacer el siguiente experimento 4.3. Comparaci´on 4.2: Experimento 2 Colecci´ on 1 Colecci´ on 2 Colecci´ on 3 Colecci´ on 4 Precisi´on 24 % 54 % 59 % 61 % Efectividad 21 % 48 % 71 % 84 % Exactitud 27 % 53 % 61 % 66 % Verdadero Positivo 21 48 71 84 Verdadero Negativo 33 59 51 48 Falso Positivo 67 41 49 52 Falso Negativo 79 52 29 16 FPS 0,5 0,5 0,5 0,5
46 Cap ´ ıtulo 4. Experimentaci´ on y Comparativa (a) Colecci´on de datos 1 (b) Colecci´on de datos 2 (c) Colecci´on de datos 3 (d) Colecci´on de datos 4 Figura 4.2: Experimento 2 4.3. Experimento 3 En este experimento se llevan a cabo cambios en la configuraci´on del modelo. Se modifican los par´ametros que afectan al modelo, tal y como se explica en el apartado 3.2. Este experimento consta de tres parte. Primero se realizan 3 configuraciones distintas 4.3.1, partiendo de la predeterminada que ofrece el modelo. Despu´es se realizan 3 nuevas configuraciones 4.3.2 partiendo de la mejor configuraci´on de la primera parte. Por ´ultimo, se realiza una mejora 4.3.3 a la colecci´on de datos, y se usa la mejor configuraci´on.
4.3. Experimento 3 47 4.3.1. Primeras Configuraciones Se aplican ligeros cambios en la configuraci´on del modelo, para as´ı intentar mejorar los resultados que se obtienen en la detecci´on de pistolas. Es posible que una configuraci´on sea buena para la detecci´on de un tipo de objetos, pero no para la detecci´on de otros. Es por esto que se intentan peque˜nos cambios para ver de qu´e forma mejora la detecci´on aplicando los cambios. (a) Configuraci´on 1 (b) Configuraci´on 2 (c) Configuraci´on 3 Figura 4.3: Experimento 3a
48 Cap ´ ıtulo 4. Experimentaci´ on y Comparativa Comparaci´on 4.3: Experimento 3a Configuraci´ on 1 Configuraci´ on 2 Configuraci´ on 3 Precisi´on 66 % 71 % 76 % Efectividad 78 % 90 % 90 % Efectividad 69 % 77 % 81 % Verdadero Positivo 78 90 90 Verdadero Negativo 60 64 72 Falso Positivo 40 36 28 Falso Negativo 22 10 10 FPS 0,5 0,5 0,5 4.3.2. Segundas Configuraciones En esta segunda parte del experimento 3, se analizan los resultados de la primera parte del experimento, y se deciden reajustar los par´ametros de la configuraci´on 3, para as´ı obtener mejores resultados. Como se observa en la Tabla 4.4 y en la Figura 4.4, la configuraci´on 4 es la que mejores resultados proporciona se puede ver explicada en el apartado 3.2. Comparaci´on 4.4: Experimento 3b Configuraci´ on 4 Configuraci´ on 5 Configuraci´ on 6 Precisi´on 87 % 85 % 84 % Efectividad 91 % 89 % 92 % Exactitud 89 % 89 % 87 % Verdadero Positivo 91 89 92 Verdadero Negativo 87 84 82 Falso Positivo 13 16 18 Falso Negativo 9 11 8 FPS 0,5 0,5 0,5
4.3. Experimento 3 49 (a) Configuraci´on 4 (b) Configuraci´on 5 (c) Configuraci´on 6 Figura 4.4: Experimento 3b
50 Cap ´ ıtulo 4. Experimentaci´ on y Comparativa 4.3.3. ´ Ultima Colecci´on de Im´agenes El ´ultimo experimento es una peque˜na mejora en la colecci´on de datos, que consiste en igualar el n´umero de im´agenes en las que aparecen pistolas y en las que no. Esto se hace porque se est´a sobreentrenando a la red para que diga que hay una pistola m´as veces de las que deber´ıa. Esto provoca un gran n´umero de FP , que como bien se observa en la Tabla 4.5 y en la Figura 4.5, se ve reducido tras la implementaci´on de la quinta colecci´on de im´agenes. Tabla 4.5: Experimento 3c Par´ ametro Valor Precisi´on 90 % Efectividad 92 % Exactitud 91 % Verdadero Positivo 92 Verdadero Negativo 90 Falso Positivo 10 Falso Negativo 8 FPS 0,5 Figura 4.5: Experimento 3c
4.4. Resultados 51 4.4. Resultados Los resultados finales son prometedores. Tras haber hecho los experimentos finales con los modelos elegidos 4.1, y viendo que el modelo Faster RCNN + Inception es el que mejores resultados ha dado. Se presentan los resultados del modelo y el dataset finales, que son los que mejor hacen la detecci´on: Los resultados de los experimentos son muy buenos. A continuaci´on se muestran los resultados de las distintas mejoras que se han ido haciendo en los experimentos: (a) Precisi´on (b) Efectividad (c) Exactitud Figura 4.6: Resumen experimentos Como se puede observar en la Figura 4.6, con cada paso en los experimentos, se han ido mejorando la precisi´on, efectividad y exactitud del programa, llegando a una precisi´on del 90 %, efectividad del 92 % y exactitud del 91 %.
52 Cap ´ ıtulo 4. Experimentaci´ on y Comparativa 4.4.1. Im´agenes de Ejemplo A continuaci´on se muestran im´agenes que se han pasado por el programa: Figura 4.7: Antes y depu´es 1 Figura 4.8: Antes y depu´es 2 Figura 4.9: Antes y depu´es 3
4.4. Resultados 53 Figura 4.10: Antes y depu´es 4 Figura 4.11: Antes y depu´es 5 Figura 4.12: Antes y depu´es 6
60 Cap ´ ıtulo 6. Introduction Figura 6.1: Diagrama de Gantt
6.5. Structure 61 6.5. Structure The memory of the work is divided into chapters according to the phase to which they correspond as clarified below: Chapter 1 provides a brief introduction to the project, as well as the motive behind it. In Chapter 2 a theoretical framework of artificial intelligence is written to contextualize the project. Chapter 3 shows the Model used in our program. Chapter 4 is made up of several experiments in which the developments that are being made are tested and the results are analysed in order to know in which line to continue the development. It also shows the results obtained in the work. Chapter 5 is the conclusion of the work and also discusses possible improvements it could have. Chapter 6 is the introduction in English. Chapter 5 is the conclusion and future work in English. Chapter 8 is the last chapter, and describes the path taken by each of the participants in the project. It also explains the contributions that each one has made.
Cap´ıtulo 7 Conclusions and Future Work 7.1. Conclusions The final program undoubtedly manages to make an acceptable detection of weapons in videos. Much has been learned in the process of creating the programme, and greater steps have been taken as the development of the programme has progressed. Initially there was a good architecture in the model 4.1, but the results did not accompany it. This is because it is essential to have a good collection of images for the results to be good, as seen in the experiment 4.2. The relevance of the images contained in the image collection is very important. It took a long time to get a good collection, as it requires not only a lot of images, but quality in these. This was demonstrated in the experiment 4.3.3. It was thought that you could get good accuracy in the detector and make it fast as well, but with a normal processor you can’t get both, as demonstrated in the experiment 4.1. The model is not only the architecture of the layers that make it up, but also the configuration that it has. It has been shown that modifying the configuration of the model gives better results in the detector. The source code of the programm can be found in the following link: https://github.com/Alejandromndza/UCM-Tensorflow [EM19]. 63
64 Cap ´ ıtulo 7. Conclusions and Future Work 7.2. Future Work Due to the long time it takes to train a model, 1 day in our processor, we could not test all the improvements you would want. So it would be advisable to use a better processor with GPU. You could try using a different model, because if you use a good GPU you can get better results with another model. The configurations that have been tested are not all possible. We have tried to make small changes in the configuration file, and measure the results to know what had to change and what value had to be given to each parameter to optimize the results of the program, as well as to reduce the high training time, which has been undoubtedly one of the biggest problems that has been had. However, it could be improved by doing more training and experiments. We have not been able to dedicate enough time to dataset, and a future job would be to put more variety of videos and more quantity. It is also proposed to pre-process the images to reduce the rate of false positives, as it is one of the values that has cost us the most to improve and that is considered the most important. Another improvement related to dataset would be to apply textData augmentation. Hardly any data augmentation has been done in the image collection (random twists have been applied in the training images). One way to improve the dataset would be to change the resolution, brightness, scale, rotation, zoom, increase saturation, etc. It is proposed to create a graphical interface, to facilitate the user’s use of the tool. This should consist of an entry for the video, and the possibility of using the classes you want with as many entries for collections of images as number of classes are selected. A final proposed improvement would be to implement new classes. The model proposed in this work already has the implementation in the model to do so, so it would only be necessary to make a collection of images of another class to train the model.
Cap´ıtulo 8 Aportaciones Individuales 8.1. Pablo Esteve Calzado Mi primera tarea fue aprender Python, ya que no ten´ıa conocimientos previos en este lenguaje, e iba a necesitar aprenderlo para poder desarrollar e implementar programas basados en IA. Para aprender este lenguaje hice uso de una plataforma web llamada Udemy. Esta plataforma me permiti´o iniciarme en el lenguaje con ejemplos pr´acticos. Tras esta primera aproximaci´on con el lenguaje me vi obligado a aprender los principios b´asicos del AA 2.5.1 y del AP 2.5.2, ya que en nuestro proyecto ´ıbamos a usar estos m´etodos para la detecci´on 2.9. Hice uso de la misma plataforma que utilic´e para el estudio de Python. Continu´e con el estudio de visi´on artificial 2.7, para lo cual nuestros tutores nos facilitaron un libro [PyI19] que me permiti´o entender c´omo funcionaba el AP con visi´on artificial. Cabe destacar que mi compa˜nero y yo nos reun´ıamos una vez a la semana para comparar nuestros avances y discutir lo que hab´ıamos aprendido. Hice, junto a mi compa˜nero, un programa que clasificaba im´agenes. Consideramos que la detecci´on era un problema de mayor envergadura, y el clasificador nos permitir´ıa aprender conceptos m´as b´asicos. Para el correcto funcionamiento de este programa me encargu´e de las conexiones de la colecci´on de im´agenes con el modelo. El clasificador constaba de una colecci´on de im´agenes Cifar, la cual contiene 10 clases y un total de 60.000 im´agenes, distribuidas en 10.000 para test y 50.000 para entrenamiento. Tras la implementaci´on de este clasificador, mi compa˜nero y yo pusimos en com´un c´omo hab´ıamos hecho nuestra parte, para que ambos entendi´eramos c´omo funcionaba el clasificador. Para adentrarme en la detecci´on de objetos en v´ıdeos, me dispuse a leer muchos papers cient´ıficos, algunos proporcionados por nuestros tutores y otros que encontraba en google. De manera transversal, fui haciendo res´umenes de estos papers para entenderlos y tener una idea general sobre los modelos que se usan en el estado del arte de la detecci´on. Cabe destacar que la gran mayor´ıa de la informaci´on que se encuentra es en ingl´es. Esto me dificult´o, al principio, comprender la terminolog´ıa que se usaba en este campo. 65
66 Cap ´ ıtulo 8. Aportaciones Individuales En este momento est´abamos teniendo problemas con la velocidad de c´omputo, por lo que decid´ı cambiar el ordenador para hacer los entrenamientos de los modelos en otro ordenador con tarjeta gr´afica dedicada. Finalmente, mi compa˜nero tuvo la idea de ejecutar el c´odigo en la nube, pero no pudimos seguir haci´endolo mucho tiempo porque era de pago. Mi compa˜nero y yo nos dividimos para buscar implementaciones de modelos para entrenarlos con colecciones de im´agenes personalizadas. Estuve buscando durante varios d´ıas, probando varios modelos e implementaciones. Uno de los modelos que implement´e fue un detector de caras hecho con YOLO a trav´es de la webcam. Al final decidimos usar una API de Tensorflow que hab´ıa encontrado mi compa˜nero. Ten´ıamos que elegir qu´e modelos ´ıbamos a probar en la API, por lo que hice acopio de la investigaci´on realizada anteriormente y la ampli´e un poco m´as con modelos que eran del estado del arte. Decid´ı que deb´ıamos usar el modelo Faster RCNN 2.11.2.3 y el SSD 2.11.1.1 ya que son los m´as probados, y los que mejores resultados han dado en otros experimentos. Seguidamente, hice un estudio sobre c´omo tiene que ser una colecci´on de im´agenes para que sea efectiva. Despu´es empec´e a buscar colecciones de im´agenes en internet, pero no hab´ıa casi ninguna colecci´on aceptable. Me puse en contacto con el Departamento de Inteligencia Artificial de la Universidad de Granada, ya que hab´ıan realizado un software de detecci´on de armas tambi´en, pero la colecci´on de im´agenes que usaban ya la ten´ıamos. Empec´e a recopilar im´agenes y v´ıdeos de internet en los que aparecieran pistolas, y se los pasaba a mi compa˜nero para que hiciera el etiquetado de los mismos. Tras hacer varios experimentos 4.2 con las distintas colecciones de pistolas pas´e a estudiar c´omo modificar la configuraci´on del modelo. Hay muchos par´ametros a configurar, por lo que los dividimos entre ambos para estudiarlos y, m´as tarde, ponerlos en com´un. Despu´es de estudiarlos, hice 2 ejemplos de modificaci´on de la configuraci´on para el siguiente experimento 4.3.1. Cuando finaliz´o el experimento, decid´ı realizar uno nuevo 4.3.2, donde hice una nueva configuraci´on de los par´ametros del modelo respecto al anterior experimento 4.3.1. En este experimento ya conseguimos una configuraci´on aceptable, por lo que decidimos hacer una nueva mejora sobre la colecci´on de datos que ten´ıamos. Para hacer dicha mejora me grab´e en varios v´ıdeos usando una pistola de pl´astico en varios escenarios. Estos v´ıdeos se los pas´e a mi compa˜nero para que hiciera el etiquetado. Los resultados con esta ´ultima colecci´on de im´agenes fueron muy buenos 4.3.3, por lo que empezamos a redactar la memoria usando toda la documentaci´on que hab´ıamos ido acumulando en todos los experimentos. Gracias a una plataforma en l´ınea de LaTex que nuestros tutores nos proporcionaron, pude hacer la memoria a la vez que mi compa˜nero, poniendo siempre en com´un los avances sobre la misma.
8.2. Alejandro Mendoza Silva 67 8.2. Alejandro Mendoza Silva Al principio tuve que dedicar mucho tiempo al entendimiento de Python, ya que aunque ten´ıa conocimientos previos al cursar Bid Data en la universidad como asignatura optativa (donde aprend´ı la funcionalidad b´asica del lenguaje), desconoc´ıa su aplicaci´on en los campos de IA 2.5. Librerias como pandas para la manipulaci´on de datos estructurados, numPy por su facilidad al trabajar con matrices Matplotlib para la representaci´on de histogramas, gr´aficos de l´ıneas, etc. Entre otras muchas librer´ıas utilizadas actualmente para el desarrollo en el ´ambito de IA. Tras este estudio por encima de las caracter´ısticas de python, realic´e un estudio m´as intensivo para tener conocimientos m´as amplios. Utilice una plataforma denominada DataCamp, en la que realic´e un curso de AP 2.5.2, donde explicaban conceptos como qu´e es una neurona, capas ocultas, funci´on de activaci´on, optimizadores, y as´ı ir comprendiendo la importancia de la limpieza de datos para modelos predictivos de regresi´on lineal y otras problem´aticas. Esta plataforma me result´o muy interesante, y mereci´o la pena la aportaci´on econ´omica para ingresar en ella. Ya que al permitirte ejecutar el c´odigo online en el propio navegador, facilitaba el entendimiento sin tener que pelear con las librer´ıas, entornos virtuales o versiones. Tuve reuniones semanales con mi compa˜nero, lo que me permiti´o poner a prueba mis conocimientos y discutir c´omo funcionaban los m´etodos que hab´ıamos aprendido. Tras varias reuniones con nuestros tutores encamin´e el aprendizaje hacia nuestro objetivo, la detecci´on en videos de pistolas 2.9. Mi compa˜nero y yo decidimos desarrollar un clasificador, ya que el entrenamiento de un detector era m´as complejo porque entran en juego m´as factores como los archivos xml donde sit´uan al objeto a detectar en la imagen. Para el desarrollo de este clasificador me encargu´e de configurar el modelo de la red neuronal que ´ıbamos a usar. Despu´es de una larga investigaci´on por art´ıculos de google y leyendo papers cient´ıficos de desarrollo en AP tuve una idea de c´omo funcionaban las redes neuronales convolucionales. Hay que remarcar aqu´ı el hecho de que al ser algo complejo, hay mucha informaci´on confusa que dificult´o el estudio sobre estos temas. Fue interesante contar con una investigadora de AP la cual, nos ayud´o a comprender y esclarecer todas las dudas que nos hab´ıan surgido hasta el momento. Tras las reuniones me dispuse a aprender de una manera m´as profunda el funcionamiento de las redes neuronales convolucionales. Keras tom´o un papel fundamental desde el primer momento, ya que al ser una librer´ıa de alto nivel de tensorflow su nivel de abstracci´on hizo m´as f´acil la comprensi´on de los modelos como el clasificador de im´agenes que se desarroll´o anteriormente. Adem´as con las aclaraciones descritas anteriormente se pudo continuar su desarrollo y no se volvi´o algo tan tedioso. Para el dise˜no del modelo se tuvo como referencia arquitecturas como la VGG-16, que se basan en hacer creciente el n´umero de neuronas de las capas convolucionales. Se obtuvieron buenos resultados modificando los par´ametros del modelo hasta llegar al definitivo que es el que se encuentra en nuestro Jupyter notebook.
68 Cap ´ ıtulo 8. Aportaciones Individuales Como la velocidad de c´omputo era un problema, mi compa˜nero y yo buscamos alternativas a este problema, en primera instancia mi compa˜nero cambi´o el port´atil por uno mejor, con la ventaja de tener una tarjeta gr´afica dedicada, lo que permiti´o el c´omputo en gpu. Se obtuvieron buenos resultados, pero no lo esperado. Por lo tanto decidid´ı hacer la ejecuci´on en cloud, para ello Google dispone de un Jupyter notebook, que me permiti´o ejecutar c´odigo con una GPU Tesla de gran potencia. Ya que nuestro objetivo era un detector y no un clasificador, se busc´o la manera de entrenar modelos predefinidos como el Faster RCNN 2.11.2.3 o el modelo SSD 2.11.1.1. Tuve que realizar varios experimentos, buscar informaci´on relevante y tras varios intentos fallidos, di con la API oficial de TensorFlow donde te explican c´omo entrenar objetos custom. Tras la lectura y comprensi´on sobre c´omo funciona este API. Llev´e a cabo, junto con mi compa˜nero, un estudio para determinar qu´e modelos y redes neuronales base de los disponibles nos interesaban para la experimentaci´on. Al cabo de varios d´ıas de estudio decid´ı usar Inception y Resnet como redes neuronales base. Para el entrenamiento tuve que entender el funcionamiento del API y gracias a un c´odigo de github, pude entender c´omo se generan los tf records necesarios para el entrenamiento. Hicimos el primer experimento con los modelos elegidos por mi compa˜nero y las redes neuronales base elegidas por mi. Tras los resultados del experimento decidimos hacer una colecci´on de im´agenes. En un principio me encargu´e yo de etiquetar im´agenes mientras mi compa˜nero buscaba las im´agenes. El proceso m´as laborioso ha sido hacer el etiquetado de todas las im´agenes con un programa llamado OpenLabeling [Car19]. Sumando todas las colecciones de im´agenes 3.1 he invertido mucho tiempo en hacer el etiquetado de casi 25k im´agenes. De las cuales muchas se desecharon por similitud con las otras im´agenes y no aportaban informaci´on relevante para la red. Despu´es de la mejora de las colecciones de im´agenes tuve un proceso de estudio de la configuraci´on del modelo entero de Faster RCNN diviediendo con mi compa˜nero los par´ametros que hab´ıa que cambiar. Tras poner en com´un la informaci´on sobre los par´ametro, hice una mejora de la configuraci´on para el primer experimento 4.3 con las configuraciones. Tras este experimento hice dos nuevas configuraciones para hacer el segundo experimento 4.3.2 con las configuraciones. De este experimento sacamos la configuraci´on final que ´ıbamos a usar. Hice un ´ultimo etiquetado de im´agenes con v´ıdeos de mi compa˜nero para a˜nadirlo a la colecci´on de im´agenes 4.3.3, y a˜nad´ı tambi´en im´agenes en las que no aparec´ıan armas, para equilibrar la proporci´on de im´agenes con pistolas y sin pistolas. La documentaci´on de la memoria la fui haciendo a medida que avanz´abamos, y la redacci´on final de la misma fue simplemente escribirla de forma m´as ordenada usando el programa LaTex. Gracias a una plataforma de LaTex en la nube proporcionada por nuestros tutores pude hacer, junto a mi compa˜nero, la redacci´on de la memoria en l´ınea.
Bibliograf´ıa [AmAaP+18] M. Al-masni, M. A. Al-antari, J. Park, G. Gi, T. Kim, P. Rivera, E. Valarezo, M. Choi, S. Han, and T. Kim. Simultaneous Detection and Classification of Breast Masses in Digital Mammograms via a Deep Learning YOLO-based CAD System. Computer Methods and Programs in Biomedicine, 157, April 2018. [Bre01] C. Breazeal. MIT team building social robot. http://news.mit.edu/2001/kismet, February 2001. [Car19] Cartucho. OpenLabeling. https://github.com/Cartucho/OpenLabeling, May 2019. [Com19] History Computer. Logic Theorist: History. https://history-computer.com/ ModernComputer/Software/LogicTheorist.html, May 2019. [CTP+19] A. Castillo, S. Tabik, F. P´erez, R. Olmos, and F. Herrera. Brightness guided preprocessing for automatic cold steel weapon detection in surveillance videos with deep learning. Neurocomputing, 330:151 – 161, 2019. [dG19] Universidad de Granada. Weapons detection. https://sci2s.ugr.es/ weapons-detection, May 2019. [EM19] P. Esteve and A. Mendoza. Detector armas. https://github.com/ Alejandromndza/UCM-Tensorflow, May 2019. [FH99] H. Feng-Hsiung. IBM’s Deep Blue Chess grandmaster chips. IEEE Micro, 19(2):70–81, March 1999. [GDDM14] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Ohio, USA, June 2014. [GN09] P. Gehler and S. Nowozin. On feature combination for multiclass object classification. In 2009 IEEE 12th International Conference on Computer Vision, pages 221–228, Kyoto, Japan, Sep. 2009. [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. [HS95] S. Hochreiter and J. Schmidhuber. Long Short-term Memory. http://citeseerx. ist.psu.edu/viewdoc/summary?doi=10.1.1.51.3117, August 1995. [HS97] S. Hochreiter and J. Schmidhuber. Long Short-Term Memory. Neural Computation, 9(8):1735–1780, November 1997. [JLM10] V. Jain and E. Learned-Miller. FDDB: A Benchmark for Face Detection in Unconstrained Settings. Technical Report, University of Massachusetts, Amherst, June 2010. [KPNY19] S. Kim, S. Park, Byunggook Na, and S. Yoon. Spiking-YOLO: Spiking Neural Network for Real-time Object Detection. arXiv e-prints, March 2019. [KSL+19] T. Kong, F. Sun, H. Liu, Y. Jiang, and J. Shi. Consistent Optimization for Single-Shot Object Detection. Technical Report, Tsinghua University, January 2019. 69