Implementación de un modelo de detección y seguimiento de jugadores de waterpolo para el análisis de modelos de juego
Texto completo
(2)
(3) GRADO EN INGENIERÍA DE TECNOLOGÍAS Y SERVICIOS DE TELECOMUNICACIÓN. TRABAJO DE FIN DE GRADO Tı́tulo: Implementación de un modelo de detección y seguimiento de jugadores de waterpolo para el análisis de modelos de juego Autora: Rocı́o Álvarez-Cedrón Garcı́a-Zarandieta Tutor: David Jiménez Bermejo Departamento: Departamento de Electrónica Fı́sica, Ingenierı́a Eléctrica y Fı́sica Aplicada. MIEMBROS DEL TRIBUNAL Presidente: Vocal: Secretario:. Fecha de lectura:. Calificación:.
(4)
(5) Universidad Politécnica de Madrid Escuela Técnica Superior de Ingenieros de Telecomunicación. Grado en Ingenierı́a de Tecnologı́as y Servicios de Telecomunicación TRABAJO FIN DE GRADO. IMPLEMENTACIÓN DE UN MODELO DE DETECCIÓN Y SEGUIMIENTO DE JUGADORES DE WATERPOLO PARA EL ANÁLISIS DE LOS MODELOS DE JUEGO. Rocı́o Álvarez-Cedrón Garcı́a-Zarandieta. 2020.
(6)
(7) Resumen El proyecto consiste en el desarrollo de un algoritmo para la detección y seguimiento de jugadores de waterpolo con el propósito de crear una herramienta para el análisis de los modelos de juego de este deporte, a partir de imágenes de una cámara 360º. El estudio recoge una comparativa de distintos algoritmos de detección de objetos que utilizan técnicas de Deep Learning que han sido aplicadas al ámbito del deporte acuático, en el que el cuerpo humano se encuentra parcialmente ocluido. Se han implementado redes neuronales convolucionales conocidas como YOLOv3 y Faster R-CNN que permiten obtener el Bounding Box de las personas detectadas. Además, para obtener unos mejores resultados, se re-entrenan las redes con el fin de ajustar los resultados de manera más fiable al problema de detección de personas en el agua. En cuanto a los datos empleados para la implementación y entrenamiento del algoritmo se ha creado y anotado un Dataset completo de creación propia. Este Dataset cuenta con vı́deos de los entrenamientos del Club Deportivo Natación Boadilla en los que se realizan distintos modelos de juego para evaluar si el algoritmo diseñado es capaz de representar correctamente los distintos movimientos efectuados. El Dataset ha sido grabado con una cámara 360º por lo que se ha realizado un procesado previo de la imagen para eliminar las distorsiones que se generan al representar las imágenes en 2D. El seguimiento de los jugadores se implementa gracias a algoritmos de Visión Artificial para realizar un seguimiento simultáneo de múltiples objetos. Los algoritmos utilizados son el Kernel Correlation Filter (KCF) y el Correlation Filter with Channel and Spatial Reliability (CSRT) que, a partir del análisis de la imagen, predicen la ubicación del Bounding Box en la próxima imagen, proporcionando una estimación incluso cuando el algoritmo de detección no es capaz de volver a detectar a una persona siendo ya seguida. Para mejorar el seguimiento de cada jugador se utilizan técnicas de re-identificación ayudando al algoritmo a tomar una decisión final. Finalmente se implementan diferentes visualizaciones mediante mapas de calor para representar el movimiento de los jugadores detectados y ası́ poder analizar las jugadas durante un partido.. Palabras clave Waterpolo, detección de personas, seguimiento de personas, re-identificación, Aprendizaje Profundo, Visión Artificial, cámara 360º, YOLO, Faster R-CNN, KCF, CSRT, OpenCV.
(8)
(9) Summary The aim of this project is to develop an algorithm for the detection and tracking of waterpolo players to analyze the different game setups of this sport by means of processing images from a 360º camera. The study includes a comparison of different object detection algorithms, based on Deep Learning techniques, that have been applied to the field of water sports, where the human body is partially occluded. Different convolutional neuronal networks, such as YOLOv3 and Faster R-CNN have been implemented to obtain the Bounding Box of the detected people. Furthermore, to obtain better results, the CNN have been re-trained to acquire more reliable results in the detection of the players in the water. Regarding the data used for the implementation and re-training of the algorithm, a specially designed dataset has been created and annotated. This dataset has been generated by recording the practice sessions of the Club Deportivo Natación Boadilla, where the team has performed different game setups to evaluate whether the designed algorithm is capable of reproducing the different movements performed. It has been recorded with a 360º camera, therefore, there will be an image processing to eliminate the distortions that are generated when representing the images in 2D has been carried out. As a means to simultaneously track multiple objects, Computer Vision algorithms have been used. The algorithms used for tracking are the Kernel Correlation Filter (KCF) and the Correlation Filter with Channel and Spatial Reliability (CSRT). Both, based on the image analysis, predict the location of the Bounding Box in the next image, and provide an estimate location even when the detection algorithm is not able to re-detect a person already being tracked. As to improve the tracking of each player, re-identification techniques are used in order to help the tracking algorithm to make a final decision. Finally, to represent the movements of the detected players, heat maps have been built to represent the positions of players and to analyze the game setups during a game.. Keywords Waterpolo, detection of people, tracking of people, reidentification, Deep Learning, Computer Vision, camera 360º, YOLO, Faster R-CNN, KCF, CSRT, OpenCV.
(10)
(11) A mi familia y amigos, por su apoyo incondicional y por haber sacado lo mejor de mı́ incluso en los momentos más estresantes. A todos los integrantes del CDN Boadilla, por inculcarme valores tan importantes como la dedicación, el trabajo en equipo y la superación. A las personas que me han ayudado en el desarrollo de este trabajo en todas sus fases, aportando sus conocimientos y sugerencias..
(12)
(13) Índice. 1 INTRODUCCIÓN Y OBJETIVOS 1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2. 2 ESTADO DEL ARTE. 3. 1. 4. 2.1. Deporte e Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 2.2. Adquisición de datos con cámara 360º . . . . . . . . . . . . . . . . . . . . . . .. 6. 2.3. Detección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8. 2.4. Seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10. 2.5. Re-identificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11. 2.6. Combinación de detección y seguimiento . . . . . . . . . . . . . . . . . . . . . . 12. DESARROLLO 3.1. 13. Herramientas de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.1. Cámara 360º . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. 3.1.2. Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14. 3.2. Estructura de un proyecto de Machine Learning o Deep Learning . . . . . . . . 15. 3.3. Arquitectura propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16. 3.4. 3.3.1. Waterpolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17. 3.3.2. Adquisición de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17. 3.3.3. Algoritmos de detección . . . . . . . . . . . . . . . . . . . . . . . . . . . 20. 3.3.4. Algoritmos de seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . . 22. Combinación de detección, seguimiento y re-identificación . . . . . . . . . . . . 26.
(14) 4. Deep Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26. 3.4.2. Algoritmo propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27. 3.4.3. Representación de los resultados . . . . . . . . . . . . . . . . . . . . . . 30. RESULTADOS. 32. 4.1. Cámara 360º . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32. 4.2. Detección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33. 4.3. 5. 3.4.1. 4.2.1. YOLOv3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33. 4.2.2. Faster R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35. Seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.3.1. Deep-Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36. 4.3.2. KCF y CSRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38. 4.4. Detección y seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39. 4.5. Entrenamiento Faster R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43. 4.6. Re-identificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45. 4.7. Análisis de modelos de juegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46. CONCLUSIONES Y LÍNEAS FUTURAS. 49. 5.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49. 5.2. Lı́neas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50. Referencias. 53. Anexos. 57. A ASPECTOS ÉTICOS, ECONÓMICOS, SOCIALES Y AMBIENTALES. 57. A.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57.
(15) A.2 Descripción de impactos relevantes relacionados con el proyecto . . . . . . . . . 57 A.2.1 Impacto ético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 A.2.2 Impacto económico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 A.2.3 Impacto social . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 A.3 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 B PRESUPUESTO ECONÓMICO. 59.
(16) Listado de figuras 1. Audiencia deportiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 2. Proceso para obtener el algoritmo propuesto . . . . . . . . . . . . . . . . . . . .. 3. 3. Estimación de poses, detección de objetos y generación de caras [1][2][3] . . . .. 4. 4. Detección saltador de trampolı́n por segmentación [4]. . . . . . . . . . . . . . .. 5. 5. Detección y estimación de pose de un jugador de baloncesto [5] . . . . . . . . .. 6. 6. Proyecciones más comunes de una imagen 360º [6] . . . . . . . . . . . . . . . .. 7. 7. Representación de las coordenadas 3D en una representación Equirectangular en 2D [7] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7. Representación de las coordenadas 3D en una representación Cube-Map en 2D [7] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7. 9. Resultados del algoritmo POM [8] . . . . . . . . . . . . . . . . . . . . . . . . .. 8. 10. R-CNN [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 9. 11. Fast R-CNN [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 9. 12. Algoritmo de detección YOLO [11] . . . . . . . . . . . . . . . . . . . . . . . . . 10. 13. Dataset VIPeR [12] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12. 14. Imagen ojo de pez Ricoh Theta V . . . . . . . . . . . . . . . . . . . . . . . . . 14. 15. Estructura de un proyecto de Deep Learning. 16. Visión general del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16. 17. Ataque genérico en waterpolo [13]. 18. Proyección equirectangualar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19. 19. Proyección azimutal gnomónica [14] . . . . . . . . . . . . . . . . . . . . . . . . 19. 20. Proyección Equirectangular a NFoV . . . . . . . . . . . . . . . . . . . . . . . . 20. 21. Arquitectura de la red YOLOv3 [15] . . . . . . . . . . . . . . . . . . . . . . . . 21. 8. . . . . . . . . . . . . . . . . . . . 15. . . . . . . . . . . . . . . . . . . . . . . . . . 17.
(17) 22. Arquitectura de la red Faster R-CNN [10] . . . . . . . . . . . . . . . . . . . . . 21. 23. Anotación semisupervisada del Dataset. 24. Filtro de Kalman [16] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. 25. Transformación de una distribución de puntos a una dimensión superior . . . . 24. 26. Algoritmo CSRT [17] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25. 27. Arquitectura Deep Sort [18] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26. 28. A la izquierda nuevas detecciones a la derecha tracking antiguo . . . . . . . . . 28. 29. Nuevo seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28. 30. Algoritmo Húngaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29. 31. Primera propuesta de re-identificación . . . . . . . . . . . . . . . . . . . . . . . 29. 32. Cambio de perspectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31. 33. a) Selección de punto para proyección de NFoV b) Proyección NFoV de la zona de juego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33. 34. Detecciones usando el algoritmo YOLOv3 . . . . . . . . . . . . . . . . . . . . . 34. 35. Detecciones usando el algoritmo MASK R-CNN . . . . . . . . . . . . . . . . . . 35. 36. Detección, seguimiento y re-identificación usando el algoritmo Deep-Sort . . . . 37. 37. Seguimiento algoritmo KCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38. 38. Seguimiento algoritmo CSRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39. 39. Detección Mask R-CNN y seguimiento CSRT . . . . . . . . . . . . . . . . . . . 40. 40. Detección cada 10 frames con Mask R-CNN y seguimiento CSRT. 41. Algoritmo propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41. 42. Cadena de detección y seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . 42. 43. Entrenamiento Faster R-CNN con distintas iteraciones . . . . . . . . . . . . . . 43. 44. Resultados del entrenamiento con 10000 iteraciones . . . . . . . . . . . . . . . . 44. . . . . . . . . . . . . . . . . . . . . . . 22. . . . . . . . 40.
(18) 45. Mejora del seguimiento a) sin re-identificación b) con re-identificación . . . . . 46. 46. Representación de las trayectorias para la determinación del mapa de calor . . 47. 47. a) Entrada de posición 3 a posición 5 b) Contra-ataque c) Zona por posición 1 d) Contra-ataque e) Zona por todas las posiciones . . . . . . . . . . . . . . . . 48.
(19) Índice de Tablas 1. Emparejamiento tras el algoritmo Hungarian . . . . . . . . . . . . . . . . . . . 28. 2. Métricas de los distintos algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 45. 3. Resultados de re-identificación en base a la detección . . . . . . . . . . . . . . . 46.
(20)
(21) Glosario 2D - 2 dimensiones 3D - 3 dimensiones Array - Vector (informática) Bounding Box - Cuadro delimitador CNN - Redes Neuronales Convolucionales (Convolutional Neural Network) CPU - Unidad central de procesamiento (Central Processing Unit) CSD - Consejo Superior de Deportes CSRT - Channel and Spatial Reliability Tracker Cube-Map - Reperesentación plana de un cubo abierto D&T - Detección y seguimiento (Detect and Track) Dataset - Colección de datos para ser manipulada por un ordenador Deep Learning - Aprendizaje Profundo Equirectangular - Proyección cilı́ndrica equidistante Features - Caracterı́sticas FINA - Federación Internacional de Natación Frameworks - Estructura conceptual y tecnológica de asistencia definida en el desarrollo de Software GB - GigaBytes GPU - Dispositivos de procesamiento gráficos (Graphic Processor Units) Grayscale - Escala de grises Hardware - Partes fı́sicos y tangibles de un sistema informático HOG - Histogram Oriented Gradients ID - Identificador.
(22) IoU - Intersection over Union JPDAF - Joint Probabilistic Data Association Filters KCF - Kernelized Correlation Filters Kernel - Núcleo Keypoints - Puntos geométricos en una zona visualmente relevante LBP - Local Binary Patterns MDNet - Multi-Domain Network MHT - Multiple Hypothesis Tracking MLFN - Multi-Level Factorisation Net MOSSE - Minimum Output Sum of Squared Error MOT - Multiple Object Tracking MSE - Minumum Squared Error NFoV - Campo de visión normal (Near Field of View) PDAF - Probabilistic Data Association Filter POM - Probabilistic Occupancy Map RAM - Memoria de acceso aleatorio (Random Access Memory) R-CNN - Region Convolutional Neural Network RGB - Red, Green, Blue RNN - Redes Neuronales Recurrentes (Recurrent Neural Network) RoI - Regiones de interés (Region of Interest) ROLO - YOLO recurrente (Recurrent YOLO) RPN - Region Proposal Network SiamFC - Siamese Fully Connected Networks Software - Soporte lógico de un sistema informático.
(23) SVM - Support Vector Machine TIC - Tecnologı́a Información y Comunicación Tracker - Seguidor TTL - Tiempo de vida (Time To Live) Vector - Vector VIPeR - VIsual Person detection made Reliable YOLO - You Only Look Once.
(24)
(25) 1. 1. INTRODUCCIÓN Y OBJETIVOS 1.1. Introducción. La tecnologı́a ha contribuido al desarrollo de todos los ámbitos de la sociedad, siendo uno de ellos el deporte profesional, un área que en los últimos tiempos se ha visto revolucionada con la aplicación de la tecnologı́a, tanto para la mejora de los métodos de entrenamiento, como para determinar las estrategias y las decisiones en el juego. La cada vez más alta profesionalidad en el deporte requiere herramientas que aporten ventajas competitivas o faciliten la extracción de información que permita un análisis y un conocimiento más profundo del juego, siempre con vistas a la mejora del rendimiento individual y colectivo, mejorar la tecnificación y evitar lesiones. Para ello, los sistemas que capturan imágenes son de gran relevancia y la mayorı́a de ellos precisa el uso de técnicas de análisis de imágenes. Los deportes minoritarios, como es el waterpolo, no tienen tanta trascendencia mediática y por ello no se emplean tantos recursos a la hora de realizar el análisis de juego. No obstante, dedicar tiempo a analizar este deporte no deja de ser interesante puesto que, debido a las nuevas normas establecidas por la FINA [19], ha disminuido el juego estático ya que los árbitros han comenzado a favorecer el movimiento. Es por ello que, pudiendo adelantarse al movimiento de los jugadores, tanto a nivel ofensivo como defensivo, se podrı́a actuar al respecto. Además, permitirı́a determinar estadı́sticas más concretas de cada jugador como la distancia nadada o los minutos jugados como se realiza en otros deportes como el fútbol.. (a). (b). Figura 1: Audiencia deportiva a) Deportes masculinos b) Deportes femeninos [20]. El Consejo Audiovisual de Andalucı́a [20] recoge una comparativa de la audiencia televisiva entre los deportes masculinos y femeninos. Además, analiza cuales son los eventos deportivos con más audiencia (Figura 1), en el que se observa que el waterpolo entra dentro de la categorı́a de otros, correspondiendo a este deporte menos de un 1 % de audiencia, convirtiéndolo en un.
(26) 2. deporte minoritario, y no por ello deja de ser un deporte interesante a estudiar ya que este, como otros deportes minoritarios, necesitan de soluciones novedosas con una fuerte base TIC para seguir progresando, y más en deportes de equipo en que las combinaciones y las acciones individuales posibles son más ricas. Gracias a los avances en los sistemas de captación de imagen, cada vez con mayor resolución y condiciones de funcionamiento óptimo más amplias, las mejoras en los sistemas de computación apoyados en procesadores más potentes y la integración de tarjetas gráficas con cada vez mayores capacidades, se ha posibilitado que las técnicas en el análisis de imágenes hayan experimentado un cambio muy importante. El análisis de las imágenes es un campo que relaciona la fı́sica, la óptica, las matemáticas y muchos otros y, gracias a su estudio, es más fácil interpretar la realidad que nos rodea. Una de las herramientas del mundo tecnológico que más ha facilitado el crecimiento e importancia del análisis de imágenes es el Deep learning, desarrollando nuevas técnicas para mejorar aplicaciones como la detección de objetos y su seguimiento que, sin necesidad de ser programado explı́citamente, pueda tomar ciertas decisiones facilitando su análisis. En este trabajo se pretende realizar un sistema de detección, seguimiento e identificación de jugadores de waterpolo, basado en aprendizaje profundo, utilizando una cámara 360º grados para poder determinar el mapa de calor de la zona de juego. Además, recoge una comparativa de distintos algoritmos de detección y seguimiento que se han ido empleando hasta llegar a los óptimos.. 1.2. Objetivos. Ser capaces de mejorar el rendimiento de los jugadores en los partidos y en los entrenamientos es un factor muy importante que permite el desarrollo y evolución de muchos deportes. Esta motivación lleva al proyecto a la búsqueda de la manera óptima de analizar los diferentes métodos de juego que propone el waterpolo. El objetivo principal del proyecto, como se ha mencionado previamente, es crear un sistema que, a través de técnicas de análisis de imágenes, sea capaz de detectar a los jugadores, pudiendo de esta manera realizar un seguimiento lo más preciso posible para poder crear una base de datos con la información que se quiera obtener, mejorando de esta manera el juego. Para ello es necesario ir siguiendo una cadena en la cual el proceso siguiente depende del anterior, por lo que deben ser lo más precisos para tener el menor error a la hora de sacar conclusiones. Esta cadena de procesos se puede dividir en las siguientes partes: primero, una detección robusta y, segundo, un seguimiento sin equivocaciones para poder identificar correctamente a los jugadores, consiguiendo de esta manera obtener unos datos que servirán para un análisis posterior. Los resultados obtenidos tras las detecciones y seguimientos serán almacenados en una base de datos con el objetivo de facilitar el acceso a ellos permitiendo, a través de representaciones analı́ticas como son los gráficos, proceder a su análisis. Para lograr unos buenos resultados es necesario conseguir que todas las partes sean lo más fiables posibles, es decir, que exista el mı́nimo error cuando se realice una detección a la cual se.
(27) 3. Grabación entrenamientos. Detección. Seguimiento. Análisis datos. Figura 2: Proceso para obtener el algoritmo propuesto le aplicará un seguimiento. Por ello, el trabajo se va a dividir en varias secciones, obteniendo los mejores resultados individualmente para que, al combinarlos y realizar las correcciones necesarias funcionen, al unı́sono y sean lo más eficaces posible. El primer paso que se va a realizar es la grabación de los vı́deos que se utilizarán para probar el sistema de detección y seguimiento evaluado. Para obtener unos resultados lo más real posibles se ha decidido grabar los entrenamientos del Club Deportivo Natación Boadilla realizados en la piscina del Consejo Superior de Deportes, pudiendo capturar distintos modelos de juego para, posteriormente, verificar el funcionamiento del algoritmo creado. Conseguir una buena detección (Sección 3.3.3) es primordial para el avance del proyecto, por lo que analizar distintos algoritmos de detección es el siguiente paso a realizar. Esta fase se puede considerar el pilar del sistema pues, sin una previa detección, no existirá seguimiento y, por lo tanto, no se podrán sacar conclusiones de los métodos de juego. De esta manera, el objetivo principal de esta fase es probar distintos algoritmos de detección para conseguir unos resultados fiables y precisos. El segundo objetivo es el seguimiento de jugadores (Sección 3.3.4). Después de la detección se realiza el seguimiento para obtener los movimientos que realizan los jugadores en ataque y defensa. Los algoritmos de seguimiento utilizados se basan en las detecciones previas para actualizar el movimiento del jugador en base a análisis de imagen. De nuevo, para esta fase se utilizarán diferentes algoritmos de seguimiento con el fin de encontrar el que mejor se adapte a la situación bajo estudio. El proyecto concluirá con una herramienta de almacenamiento y visualización (Sección 3.4.3) que recopilará toda la información obtenida en los pasos anteriores y la guardará en una base de datos. El objetivo de este paso es poder acceder a la información sin necesidad de volver a realizar la detección y el seguimiento para evitar el tiempo de procesado asociado..
(28) 4. 2. ESTADO DEL ARTE El concepto de Deep Learning arranca en la década de los 80 pero su explosión y aplicación real no sucede hasta mucho más tarde, a causa, principalmente, del insuficiente número de Datasets y la falta de capacidad de computación para manipular estos conjuntos de datos eficientemente. No obstante, con el avance de la tecnologı́a todos los problemas anteriores han ido reduciéndose, permitiendo evolucionar las aplicaciones de Visión Artificial mediante la reducción de los tiempos necesarios para procesar imágenes y vı́deos sin un coste excesivo en el Hardware necesario. A partir de 2010, el auge del Deep Learning es evidente gracias, no solo al avance tecnológico de GPUs sino, además, al desarrollo de los primeros Frameworks abiertos de programación de redes neuronales (Caffe, Tensorflow, Torch). La Visión Artificial es un campo en el que se adquiere, se procesa y se analiza imágenes o secuencias de imágenes que llevan a un mejor entendimiento de lo que se está mostrando. Gracias a su avance las aplicaciones han progresado, pudiendo obtener mucha información, tanto de alto como de bajo nivel, de estas secuencias de imágenes. La información que se obtiene de estas imágenes puede ser tan variada como los siguientes ejemplos: detección y reconocimiento de objetos, análisis de caras y sentimientos (computación afectiva), interpretación de comportamientos, detección de Keypoints, estimación de poses, colorimetrı́a, segmentación, entre muchos otros.. Figura 3: Estimación de poses, detección de objetos y generación de caras [1][2][3]. Una de las áreas de la Visión Artificial que más está avanzando es la detección de objetos, puesto que cada año aparecen algoritmos nuevos que mejoran considerablemente los que ya existı́an, en términos de precisión, velocidad o ambas. Además, una ventaja que tienen muchos de estos algoritmos es que se pueden utilizar pre-entrenados en Datasets ya conocidos, gracias a la gran comunidad cientı́fica que hace disponibles estos modelos, por lo que no es necesario entrenarlos para empezar a usarlos en la detección de ciertos objetos. Para otro tipo de tareas es posible partir de estos modelos para adaptarlos a la solución que se pretenda realizar y, ası́ no comenzar el entrenamiento desde cero, pudiendo reducir los tiempos notablemente..
(29) 5. En cuanto a la detección y seguimiento de personas, Malik Souded [21] distingue dos tipos de categorı́as para clasificar los distintos métodos que se utilizan. El primer método es trained classifier ; se entrena extrayendo las caracterı́sticas significativas de las personas y creando una clase con estas; una vez aprendidas, con la clase creada, se puede detectar a las personas. En el segundo método, template matching, se utiliza unas plantillas con caracterı́sticas de las personas, que se buscan en las imágenes o cuadros y, a partir de esta localización, se realiza la detección. En este apartado se describirá el estado del arte de la detección, seguimiento y re-identificación de personas en imágenes y, más concretamente, una serie de algoritmos y soluciones que han sido desarrollados hasta el momento. Además, se describirá cómo se pueden procesar las imágenes obtenidas con una cámara 360º, también conocida como cámara omnidireccional, para adquirir representaciones en dos dimensiones de estas en diferentes proyecciones.. 2.1. Deporte e Inteligencia Artificial. La aplicación de la inteligencia artificial en el mundo del deporte se ha convertido en un tema en continuo crecimiento puesto que los resultados ofrecidos en diferentes áreas permiten, por ejemplo, poder mejorar tanto en los entrenamientos de los deportistas, en las ejecuciones durante los partidos y son capaces de realizar análisis complejos de las formas de juego. En los últimos años se ha investigado mucho en las técnicas sobre detección y segmentación de un objeto móvil y sobre las poses del movimiento humano. Los principales objetivos de la investigación en el mundo deportivo incluyen, principalmente, la detección tanto de los atletas como de los elementos significativos en el juego como, por ejemplo en muchos de ellos, la pelota. Guangjing Li [4] tiene como principal objetivo detectar la rutina de saltos que realiza un saltador de trampolı́n (área oficial de natación) y para ello utiliza la segmentación, para conseguir una buena detección del atleta. Si el objetivo se puede detectar y segmentar en cada imagen, se puede garantizar una buena detección y reconocimiento de la pose.. Figura 4: Detección saltador de trampolı́n por segmentación [4].
(30) 6. Tratando deportes mayoritarios como son el fútbol y el baloncesto, existen sistemas para la detección y seguimiento de jugadores durante un partido, permitiendo además, estimar la pose del jugador para prevenir lesiones. Estos sistemas se basan en el uso de algoritmos de Deep Learning puesto que existen numerosos Datasets para la detección de personas. Adrià Arbués-Sanguesa [5] utiliza el Dataset ImageNet como referencia para realizar las detecciones y realiza una estimación de las poses para el seguimiento de los jugadores.. (a). (b). Figura 5: Detección y estimación de pose de un jugador de baloncesto [5]. Fuera del agua son numerosos los sistemas de detección que se pueden encontrar, además influye el factor de que cuanto mayor implantación tiene un deporte y, generalmente de más recursos dispone, más investigación acerca de él se puede encontrar. En cuanto a los deportes acuáticos es escasa la investigación que se ha realizado, existen proyectos que se basan en el uso de acelerómetros, sensores para determinar la respiración o contar el número de brazadas [22] durante una carrera de natación. Sin embargo, realizar detecciones en imágenes en el que el cuerpo está sumergido es un reto complejo para abordar mediante análisis de imagen.. 2.2. Adquisición de datos con cámara 360º. Tanto las imágenes como los vı́deos 360º se están convirtiendo en una manera popular y cada vez más común a la hora de adquirir datos en imágenes y vı́deos. El contenido de las imágenes procedentes de una cámara 360º se encuentra en una esfera que cubre todo el rango de visualización de un observador (360º x 180º). Estas imágenes son muy diferentes a las imágenes tradicionales de 2D, en las que solo es posible cubrir un plano limitado. Los últimos años han presenciado un avance en las tecnologı́as de realidad virtual. Un tipo esencial del contenido de realidad virtual va ligado a las imágenes 360º y es por ello por lo que están creciendo de forma exponencial, atrayendo una gran atención. Una de las grandes ventajas que tiene este tipo de cámaras es que el usuario puede escoger que la vista se centre libremente en el contenido deseado. No obstante, la detección y seguimiento de los objetos tradicionalmente se realiza en imágenes de 2D, por lo que es necesario adaptar la imagen en 360º a un único plano. Las imágenes de 360º se pueden proyectar en diferentes formatos como la proyección Equirectangular [23], la.
(31) 7. más utilizada en el ámbito de la industria para ver la imagen 360º de forma panorámica. Otra proyección conocida es Cube-Map, usada en la industria de los videojuegos ya que no causa distorsión en las caras del cubo, puesto que los pı́xeles se redistribuyen en cada una de ellas por igual.. Figura 6: Proyecciones más comunes de una imagen 360º [6]. Ikram Hussain evalúa las tres formas de proyección más representativas a la hora de representar una imagen de 360º [7]. La proyección Equirectangular, también conocida como la proyección geométrica, transforma las latitudes y las longitudes en los ejes verticales y horizontales respectivamente, separándolos por igual en el plano bidimensional.. Figura 7: Representación de las coordenadas 3D en una representación Equirectangular en 2D [7]. La proyección Cube-Map está formada por las seis caras de un cubo en las que la esfera es proyectada. La ventaja que tiene está proyección respecto a la Equirectangular es que no causa distorsión geométrica puesto que cada pı́xel se distribuye equitativamente por cada cara.. Figura 8: Representación de las coordenadas 3D en una representación Cube-Map en 2D [7].
(32) 8. 2.3. Detección. La detección de personas es una de las modalidades de detección más común hoy en dı́a. Esto se debe a los usos variados que se pueden obtener con estos resultados, desde cámaras de seguridad para controlar el número de personas en un lugar o detectar actividades especı́ficas de ciertas personas que puedan generar una situación de peligro, hasta para analizar deportes, tanto detección e identificación de jugadores como de elementos claves de los mismos como la pelota. En cuanto a la detección de personas, hay una extensa bibliografı́a acerca de los diferentes métodos de detección [24][25][26]. Tradicionalmente se utilizaban métodos como HOG [27], utilizado para extraer el tamaño y la forma de los objetos o LBP, útil para detectar las distintas texturas. No obstante, las imágenes no tienen profundidad y no son capaces de dar una detección correcta de una persona, puesto que cada persona viste de una manera u otra e incluso tienen posturas distintas. Por esta razón, se ha comenzado a trabajar con el reconocimiento de personas en vı́deos, puesto que el movimiento del sujeto, proporcionado por los cuadros del vı́deo, facilita su detección y seguimiento [28]. Otro problema importante encontrado a la hora de detectar y realizar el seguimiento de los objetos son las oclusiones, donde el objetivo desaparece temporalmente por estar oculto por otro(s) objeto(s), para luego reaparecer en la cámara. Corregir la problemática de las oclusiones es importante sobre todo si se quiere realizar el seguimiento de una determinada detección. Antes del surgimiento del Deep Learning se utilizaban métodos como la substracción del fondo, sin embargo, cuantos más individuos habı́a en la imagen más complicado era realizar esta substracción. No obstante, para resolver este problema se ha llegado a soluciones interesantes, como propone [8] Computer Vision Laboratory en Suiza. Su propuesta ha sido utilizar varias cámaras que graban la misma escena desde distintos puntos de vista y, tras la creación de su algoritmo POM, han sido capaces de cruzar las imágenes, obteniendo mejores resultados que otros algoritmos.. Figura 9: Resultados del algoritmo POM [8].
(33) 9. Actualmente, la detección de personas se basa, entre otras posibilidades, en el uso de CNNs, un sistema computacional que se inspira en el funcionamiento del sistema nervioso humano. Se trata de un número de interconexiones entre nodos (neuronas) que trabajan juntas, aprendiendo de la entrada, para optimizar la salida. Este tipo de redes se utiliza especialmente para el reconocimiento de imágenes [29] y queda demostrada su utilidad mediante diferentes Datasets de código abierto como MNIST, CIFAR-10/100 o Image-Net que permiten verificar la eficacia de las redes. Sin embargo, utilizar una CNN no siempre es lo óptimo, ya que, a la hora de detectar y clasificar un objeto no todos tienen el mismo aspecto y, sobre todo, el mismo tamaño, pudiendo aparecer además en diferentes regiones de la imagen, ası́ como múltiples objetos en una misma imagen. De esta manera, surgen otro tipo de algoritmos como las R-CNN y YOLO [11]. Las R-CNN se caracterizan por que, como su nombre indica, son capaces de dividir la imagen en regiones de interés y cada una de ellas se inserta en una red neuronal para obtener ciertas caracterı́sticas. Estas caracterı́sticas comunes, que se encuentran en las regiones de decisión, son pasadas por un SVM que decide si éstas corresponden a un objeto y, en caso de hacerlo, a qué objeto corresponden. Este tipo de redes ha ido mejorando, puesto que tenı́a un coste computacional muy elevado y, tras la optimización de las R-CNN, aparecieron las Fast R-CNN[9], mejorando tanto la clasificación como la localización de la Bounding Box predicha en la detección. Estos algoritmos se caracterizan por utilizar una única etapa de entrenamiento, no obstante, seguı́an teniendo desventajas, la creación de tantas regiones de interés suponı́a un coste computacional elevado, sobre todo a la hora del entrenamiento de la red. Para acelerar este proceso de entrenamiento, se propuso la Faster R-CNN [10], capaz de generar más de una región de interés simultáneamente. Mask R-CNN es una extensión de las Faster R-CNN, la cual extrae una máscara del objeto que se detecta, además de las clases y las Bounding Boxes que ya determinaba la Faster R-CNN.. Figura 10: R-CNN [9]. Figura 11: Fast R-CNN [10]. Kaiming He [30] presenta el concepto de funcionamiento de estas redes; en vez de detectar un objeto por sus Bounding Boxes se realiza un análisis más profundo de la imagen, localizando los pı́xeles; a esto se le conoce como image segmentation. Sin embargo, cuando se creaba la máscara aparecı́a un desajuste con las regiones originales, por lo que tuvo que aplicarse una corrección denominada RoI Aligned para poder dibujarlas correctamente..
(34) 10. Los algoritmos de detección de objetos mencionados previamente se basan en la proposición de RoIs para determinar un objeto en una imagen; la red no trabaja con la imagen completa. Otro método basado en CNN es YOLO [11], con la gran diferencia de que no utiliza regiones sino que predice las Bounding Boxes y la clase de estas probabilidades. Este método crea unas Bounding Boxes suficientemente pequeñas que permiten la cobertura de la imagen para poder aplicar, de esta manera, el algoritmo de clasificación de objetos que actúa sobre cada una de las Bounding Boxes.. Figura 12: Algoritmo de detección YOLO [11]. 2.4. Seguimiento. Detectar objetos en las imágenes ayuda a caracterizar qué objetos se pueden encontrar en ellas; sin embargo, no dan más información que esta. En la Visión Artificial es importante conocer el comportamiento de las detecciones, puesto que pueden ser importantes a la hora de tomar ciertas decisiones. MOT [31] tiene como objetivo predecir las trayectorias de los objetivos en las secuencias de vı́deo. Esto se realiza siguiendo dos pasos: el primero, en el que se detecta dónde se encuentra el objeto en los cuadros; el segundo, se encarga de conectar la trayectoria descrita por las trayectorias conocidas de los Datasets. Sin embargo, cuando los objetos presentes están cerca, es difı́cil asociar y asignar los identificadores de cada objeto, puesto que por las oclusiones y la proximidad de otros puede tender a confundir si se trata del mismo objeto. Uno de los métodos más tradicionales utilizados para el seguimiento de los objetos tras su detección es el uso del filtro Bayesiano, también conocido como MHT [32], capaz de calcular las probabilidades de cada trayectoria que el objeto podrı́a tomar. No obstante, dada la complejidad y necesidad de una gran memoria no son muy utilizados. Otros filtros que se utilizan son PDAF [33], JPDAF [34] y el filtro de Kalman que presentan una computación de manera matricial muy rápida. Todos estos algoritmos se basan en el Bounding Box detectado para realizar el seguimiento y predecir la siguiente posición del mismo..
(35) 11. Un objeto puede representarse por los pı́xeles, por lo cual, identificando el valor de estos, es posible realizar un seguimiento del objeto. Existen múltiples algoritmos en el campo de la Visión Artificial para seguimiento. Entre los algoritmos que utilizan filtros correladores destaca el MOSSE [35], un algoritmo robusto que permite discriminar entre el fondo y el objeto con facilidad, además de tratarse de un algoritmo rápido. Es robusto frente a la iluminación, el tamaño y la posición del objeto, además puede seguir realizando el seguimiento tras una oclusión. Sin embargo, no es del todo preciso, por lo que se propusieron otros algoritmos como el KCF [16] que presenta resultados más precisos que el anterior, no obstante, no realiza correctamente el seguimiento de un objeto tras una oclusión. Para cada nuevo cuadro de la imagen se realiza el seguimiento sobre el cuadro anterior; la posición se guarda, extrayendo una serie de canales (RGB, Grayscale, HoG), y realizando el mismo proceso con el nuevo cuadro, tras la aplicación de una correlación entre los datos se puede estimar la nueva posición. Otro algoritmo más preciso, pero menos rápido, es el CSRT [17], que utiliza mapas de confiabilidad para ajustar el filtro al Bounding Box del objeto del que se va a realizar el seguimiento, pudiéndose focalizar mejor en el objeto a seguir. Los algoritmos más recientes se centran en el seguimiento utilizando algoritmos de Deep Learning. Entre los más destacados se pueden encontrar SiamFC [36] y GOTURN [37]. Estas redes aprenden durante el entrenamiento el desplazamiento que sufre el Bounding Box del cuadro previo con el actual. Existen otros algoritmos que proporcionan resultados en tiempo real como MDNet [38]. Esto se consigue dividiendo la red en dos partes, una primera en la que la red se encarga de extraer las caracterı́sticas de la imagen y una segunda que se encarga de realizar el seguimiento. No obstante, estas técnicas basadas en Deep Learning generalmente se utilizan para realizar el seguimiento de un único objeto, lo que hace imposible su implementación para el seguimiento de numerosos objetos en tiempo real.. 2.5. Re-identificación. Debido a la creciente demanda de información requerida por aplicaciones de seguridad y forenses, la re-identificación de personas se ha convertido en un área prioritaria de investigación de la Visión Artificial. Esta tiene como objetivo volver a identificar a una persona en distintas vistas de cámara o, entre otras, tras oclusiones. En las últimas décadas se ha añadido un número muy elevado de Datasets para la re-identificación. Los Datasets han ido evolucionando desde los más pequeños como VIPeR 1 [12], hasta los más grandes como MSMT17 2 [39], pero no son lo suficientemente grandes, por lo que a la hora de entrenar se suele usar más de un Dataset. Puesto que cada Dataset es distinto, se requiere, de manera automática, ajustar la identidad, al igual que la imagen de la cámara, para evitar un conflicto. 1 2. Descargar Dataset http://vision.soe.ucsc.edu/?q=node/178 Descargar Dataset http://www.pkuvmc.com..
(36) 12. Figura 13: Dataset VIPeR [12]. La re-identificación se basa en dos pasos, la extracción de caracterı́sticas de la imagen que se usa como entrada y la comparación de estas caracterı́sticas a lo largo de la secuencia de imágenes. Entre las caracterı́sticas que se pueden obtener de las imágenes para re-identificar a los objetos se encuentran, entre otras, las variaciones de color en los histogramas [40], LBP [41] y las caracterı́sticas de Gabor [42]. Al contrario que en la detección, ahora sı́ es necesario que cada una de las detecciones sea distinta, ya sea por su postura o ropa, por lo que la extracción de las caracterı́sticas es necesaria. A la hora de emparejar las caracterı́sticas obtenidas en la imagen anterior con las caracterı́sticas de la nueva imagen, se han ido utilizando distintas métricas. Entre ellas, cabe destacar la distancia de Mahalanobis, Locally Adaptive Decsion Functions [42] y Saliency weighted maps [43]. A dı́a de hoy se está investigando para encontrar una red neuronal que sea capaz, de manera eficaz, de obtener las caracterı́sticas automáticamente mediante el aprendizaje y relacionarlas entre las secuencias de imágenes de manera óptima [44]. Los métodos de Deep Learning están mejorando la re-identificación respecto de los métodos más antiguos, ya que intentan aprender directamente durante el proceso de entrenamiento el vector de caracterı́sticas utilizado para estimar la coincidencia entre dos objetos. Los resultados que se están obteniendo de las investigaciones son prometedores, lo que demuestra que es posible extraer un vector de caracterı́sticas robusto cuando hay muchos datos disponibles sin definir previamente unas métricas, posiciones de las cámaras, iluminación, etc. Por último, entre los algoritmos de re-identificación de personas se puede destacar MLFN [45].. 2.6. Combinación de detección y seguimiento. El Deep Learning está avanzando y, con ello, los esfuerzos para crear nuevas arquitecturas que sean capaces de realizar conjuntamente la detección y el seguimiento de múltiples objetos simultáneamente. Para ello, algunas soluciones proponen combinar las Redes Neuronales Convolucionales (CNN) encargadas de la detección y las RNN para predecir los estados futuros de las detecciones. Algunos enfoques sobre este nuevo método son ROLO [46], Mf-SSD [47], Deep-Sort [18] y D&T [48], este, en su última versión, estima los puntos clave del esqueleto humano..
(37) 13. 3. 3.1 3.1.1. DESARROLLO. Herramientas de trabajo Cámara 360º. El elemento primordial en cualquier sistema de análisis de imágenes es el conjunto de contenidos a procesar. Obtener vı́deos adecuados en los que probar el sistema desarrollado es crı́tico, por lo que se han planteado varias maneras de cómo realizar las grabaciones y en qué posición colocar la cámara para optimizar y obtener la mejor calidad de imagen con la mayor cantidad de información posible, optando ası́ por la utilización de una cámara 360º. La razón por la que se ha utilizado este tipo de cámara para desarrollar el sistema, que posteriormente realizará un análisis del tipo de juego, es que esta consigue una visión completa del campo, siendo posible implementar el sistema haciendo uso de solamente una de ellas. Además, hay que recalcar que la cámara utilizada, de la marca Ricoh, tiene una resolución de imagen 4K por lo que, a la hora de grabar los entrenamientos, se puede escoger cuál es la zona de interés que se quiere procesar, pudiendo hacer zoom en esta zona, sacrificando calidad, pero dado que la resolución de imagen es elevada, es posible recortar la zona de interés sin perder gran información que imposibilite el funcionamiento adecuado de los diferentes módulos del sistema. La cámara utilizada es la cámara Ricoh Theta V [49] que tiene una resolución de imagen fija máxima de 5376×2688 pı́xeles, además permite la emisión en vivo tanto en 4K (H264: 3840×1920 pı́xeles/29.97fps/120Mbps) como en 2K (H264: 1920x960 pı́xeles/29.97fps/42Mbps). En cuanto al coste, esta cámara tiene actualmente un precio de alrededor de 420€ [50] y, como se ha mencionado anteriormente, puede cubrir toda la piscina, que tiene una longitud de 25m en caso de un partido femenino y de 30m para los partidos masculinos. Serı́a posible utilizar otras cámaras de NFoV como por ejemplo, Victure AC900 Cámara Deportiva 4K [51] pero en este caso para poder grabar los partidos o entrenamientos serı́a necesario que esta se desplazara a lo largo de la piscina, puesto que no tendrı́a un campo de visión completo de esta. Para este trabajo, la cámara se colocará en la mitad de la piscina, haciendo posteriormente un procesado de la imagen para centrarse solamente en la parte de interés, es decir, la zona de la imagen en la que está la piscina y dónde se focaliza la jugada principal. Como se puede observar en la Figura 14, al tener un campo de visión completo se graba también la parte exterior de la piscina, que no es de interés para el análisis de este trabajo. Puesto que la cámara utilizada tiene una resolución 4K, como se ha mencionado previamente, la imagen generada tiene unas dimensiones de 4096x2048 pı́xeles, pudiéndose recortar diferentes zonas y centrarse en la parte de la piscina que se desee consiguiendo aún resoluciones altas..
(38) 14. Figura 14: Imagen ojo de pez Ricoh Theta V. 3.1.2. Python. El lenguaje de programación que se ha utilizado en este trabajo es Python. Python ofrece estabilidad, flexibilidad y tiene herramientas suficientes para crear un proyecto basado en Inteligencia Artificial, por lo que existen muchos proyectos en este lenguaje, convirtiéndose en uno de los más populares. Python ofrece código conciso y fácil de leer y por lo tanto entender, es decir, muchos programadores coinciden en que se trata de un lenguaje intuitivo. La implementación de los algoritmos de Deep Learning puede llegar a ser muy compleja, además de requerir mucho tiempo para ello. Para reducir el tiempo de desarrollo, los programadores hacen uso de entornos de trabajo (Frameworks) y librerı́as que se utilizan para resolver problemas comunes a la hora de programar. Entre las librerı́as más utilizadas en relación a procesado de imagen y visualización de datos se pueden destacar: • NumPy, una librerı́a básica pero importante para la manipulación de datos que permite trabajar con matrices y matrices multidimensionales. • Open CV, una librerı́a, desarrollada por Intel, de visión artificial. Contiene gran cantidad de algoritmos que permiten realizar procesado de imagen en tiempo real de manera optimizada. En las últimas versiones la librerı́a ha comenzado a incluir diferentes soluciones Deep Learning para detección de objetos entre otras. • Seaborn, una librerı́a que permite generar fácilmente gráficos y basada en otra librerı́a como es matplotlib. El Framework de programación Deep Learning utilizado en este proyecto es Pytorch, esto se debe principalmente a la forma de manipulación de las redes neuronales que permite acceder a todas las partes de la misma de manera sencilla e intuitiva comparado con otros Frameworks, como pueden ser Keras y TensorFlow. Además, la documentación que ofrece está organizada y es de fácil acceso [52] para comenzar a realizar los ejemplos más sencillos..
(39) 15. 3.2. Estructura de un proyecto de Machine Learning o Deep Learning. A la hora de entrenar un algoritmo de Deep Learning se puede hacer, bien un aprendizaje supervisado, en el que se tiene una entrada y una salida y el algoritmo aprende a hacer una correspondencia entre ellos, o bien un aprendizaje sin supervisar, en el que solo existen los datos de entrada y a partir de ellos se realiza una reestructuración de estos para encontrar patrones que los relacionen.. Figura 15: Estructura de un proyecto de Deep Learning. El primer paso para implementar un proyecto de Deep Learning es la adquisición de datos creando tres grupos. El primer grupo se denomina training set y es el que se utiliza para entrenar, el segundo es el validation set para comprobar la validez del sistema y el tercero, el test set, se utiliza para chequear los resultados. A veces es necesario pre-procesar los datos antes de introducirlos en la red para que el entrenamiento sea más eficaz. Entre este preprocesado se encuentra la extracción de caracterı́sticas o la aplicación de la normalización de la imagen. Una vez adquiridos los datos y tras pre-procesarlos, en caso necesario, se pasa a entrenar el modelo, introduciendo el grupo de training set por batches, el número de muestras con los que trabajar para poder ajustar los parámetros del modelo, minimizando la función de coste. Esta función mide el rendimiento del modelo al predecir cuál es la categorı́a a la que pertenecen los datos o realiza otro tipo de tareas como una regresión con el fin de aprender valores continuos. El ajuste de estos parámetros se basa en forward propagation, en el que las etiquetas de entrada se comparan con las de salida y la diferencia es el error, y en backward propagation aplicando la técnica de gradient descent [53] que calcula la pendiente en cada punto hasta encontrar el mı́nimo de la función. Del validation set se obtienen las métricas más caracterı́sticas de un proyecto de Deep Learning o Machine Learning. Entre estas métricas se pueden destacar la matriz de confusión que permite la visualización del desempeño del algoritmo, la precisión que mide el acierto, la métrica de recall que mide la minuciosidad, la cantidad de muestras de una clase que se han identificado del total de muestras que habı́a de esa clase. El accuracy (precisión) es otra métrica utilizada en estos proyectos, el porcentaje de las muestras que ha clasificado correcta-.
(40) 16. mente como pertenecientes a esa clase. A través de las métricas se pueden detectar fenómenos frecuentes como es el overfitting, que se origina cuando el modelo ha conseguido extraer caracterı́sticas tan concretas del training set que al introducir el validation set no consigue generalizar bien el modelo en estos nuevos datos, es decir, se produce un sobreaprendizaje. Finalmente es necesario comprobar la validez del modelo y para ello se utiliza el test set, el cual está compuesto por nuevos datos nunca vistos en el entrenamiento, que representan el caso real bajo estudio.. 3.3. Arquitectura propuesta. Este proyecto, basado en un estructura de Deep Learning, tiene tres partes principales: la arquitectura de detección, la arquitectura de seguimiento y la representación de los resultados.. Figura 16: Visión general del proyecto. La Figura 16 muestra la relación que existe entre las tres principales partes, comenzando con la arquitectura de detección. Como se ha mencionado previamente, un proyecto de Deep learning consta de varios pasos para obtener los pesos (la salida de la red), como el entrenamiento de una red neuronal es un proceso largo, muchas de ellas se proveen pre-entrenadas para ciertos modelos de datos. El primer paso del proyecto es probar diferentes algoritmos ya preentrenados, para ello se van a adquirir los datos a través de una cámara 360º. Al recoger esta cámara las imágenes en formato doble ojo de pez, es necesario realizar una serie de proyecciones para focalizar el punto de interés bajo estudio. Además de probar los algoritmos con los pesos pre-entrenados, se va a proceder a entrenar la red nuevamente para que los resultados mejoren; para ello hay que seguir la estructura mencionada previamente: realizar un etiquetado de las personas que aparecen en el cuadro, entrenar la red, testear y, en caso necesario, volver a entrenar; de no serlo, esos pesos son los que se utilizarán en los algoritmos..
(41) 17. La siguiente arquitectura propuesta es la arquitectura de seguimiento. Con los resultados obtenidos de la parte de detección se procede a utilizar su salida, los Bounding Boxes para realizar el seguimiento de múltiples objetos. La salida de esta arquitectura se recopilará en una base de datos para poder acceder a ella fácilmente y representar los resultados en el momento más oportuno, ya sea después de un partido o en una reunión técnica. Finalmente, se representarán los datos en diferentes gráficos que permitan adecuadamente obtener un conocimiento de que está sucediendo durante el juego.. 3.3.1. Waterpolo. El waterpolo es un deporte en el que las transiciones en las jugadas son muy importantes, permite crear nuevos espacios de juego, alejándose del defensor para crear un área en el que el jugador esté cómodo para poder realizar un lanzamiento a porterı́a lo más solo posible. A pesar de que para ir de un lado a otro de la piscina también hay que nadar, las transiciones más importantes ocurren en el área de la porterı́a, un área que va desde la lı́nea de gol hasta unos 9 metros, en la que los jugadores se colocan en un arco para mover el balón y buscar la mejor opción de gol. Por otro lado se encuentra la defensa, que también se coloca en un arco; la forma de defender es ’uno para uno’ (defensa individual), cada jugador defensivo tiene asignado a un jugador ofensivo y los movimientos de unos suelen ir ligados a los de los otros. Por esta razón, los movimientos se van a analizar conjuntamente en la arquitectura propuesta.. Figura 17: Ataque genérico en waterpolo [13]. 3.3.2. Adquisición de datos. Los vı́deos para el proyecto han sido grabados con una cámara 360º, Ricoh Theta V [54], situada en la mitad de la piscina. Esta piscina se encuentra en el Consejo Superior de Deportes (CSD), sito en Madrid, y tiene unas dimensiones de 25x12 metros. Se han grabado los entrenamientos de un equipo de División de Honor Femenino, el CDN Boadilla. Esta cámara graba, como se puede observar en la Figura 14, con dos lentes ojo de pez..
(42) 18. Las cámaras ojo de pez tienen un ángulo de visión algo mayor a 180º, esto se debe a que su distancia focal es muy corta entre 4.5 y 17mm. Las imágenes sufren una distorsión muy caracterı́stica que les otorga una apariencia convexa no rectilı́nea. No obstante, esto no es un problema, ya que gracias a las dos imágenes ojo de pez obtenidas, se va a crear una esfera con el campo de visión de las dos lentes.. 3.3.2.1. Proyección imagen. Antes de aplicar los algoritmos de detección y seguimiento directamente sobre las imágenes, hay que analizar las distorsiones que se generan, debido a las lentes, al representar las imágenes en un plano de 2D. Por esta razón, es necesario guardar los vı́deos con la proyección Equirectangular, una imagen que cubre 360º en horizontal y 180º en vertical, con una resolución de 4096x2048 pı́xeles. Para poder proyectar una imagen formada por dos imágenes de ojo de pez a Equirectangular es necesario que la apertura sea unos 10º más grande que 180º para que haya suficiente zona de solape entre las dos imágenes y se puedan combinar correctamente. Se va a detallar paso por paso los cambios de coordenadas que hay que realizar para obtener esta proyección. El primer paso es convertir las coordenadas de los puntos de las imágenes ojo de pez que están en 2D a un vector 3D, para ello se va a utilizar las ecuaciones (1).. φ=. r · apertura 2. θ = atan2(yf isheye , xf isheye ). (1). El vector 3D se convierte posteriormente en latitud y longitud a través de las ecuaciones (2).. latitud = atan2(yf isheye , xf isheye ). longitud = atan2(Pz ,. q Px2 + Py2 ). (2). Finalmente, las coordenadas de la proyección Equirectangular se obtienen normalizando la longitud y la latitud a través de las siguientes ecuaciones (3), obteniendo la Figura 18 a partir de la Figura 14.. xequirec =. longitud π. yequirec =. 2 · latitud π. (3).
(43) 19. Figura 18: Proyección equirectangualar. La proyección Equirectangular es una representación directa de la esfera, su longitud y latitud se proyectan en el plano horizontal y vertical respectivamente, a esta proyección no se le aplica ninguna escala. Como se observa en la Figura 18 la proyección está distorsionada, los objetos en el centro están comprimidos y las zonas que están en la parte superior e inferior de la imagen se estiran. La proyección Rectilinear muestra la imagen como los seres humanos la percibirı́an en el mundo real, es decir, sin distorsión, las lı́neas rectas se mantienen rectas. Esta proyección se obtiene proyectando un rayo de luz desde el centro de la esfera al punto que se desea proyectar, llegando hasta el plano de proyección, tangente a la esfera en un punto concreto.. Figura 19: Proyección azimutal gnomónica [14]. El punto S en la Figura 19 se encuentra a la vez en el ecuador y en el centro del plano y tiene como latitud y longitud normalizadas λ0 , φ1 = (0, 0). La transformación para obtener las coordenadas del plano se realiza a partir de las ecuaciones (4,5).. cosφsin(λ − λ0 ) cos c cosφ1 sinφ − sinφ1 cosφcos(λ − λ0 ) = cos c xN F oV =. yN F oV. (4).
(44) 20. Donde c es la distancia angular del punto (x,y) desde el centro de la proyección dado por la siguiente expresión:. cos(c) = sinφ1 sinφ + cosφ1 cosφcos(λ − λ0 ). (5). A través de la ecuación (5), un punto se puede representar en el plano seleccionando los ángulos horizontales y verticales y el centro de la zona que se quiere extraer. En la Figura 20 se representa la proyección Equirectangular a NFoV.. Figura 20: Proyección Equirectangular a NFoV. 3.3.3. Algoritmos de detección. Uno de los principales objetivos del procesamiento de imágenes y la Visión Artificial son la detección y el reconocimiento de objetos. Normalmente, el punto de partida de los sistemas es la necesidad de detectar la ubicación de algunos objetos en concreto o reconocer qué objetos se encuentran en la imagen actual. En este proyecto se han utilizado algunos de los algoritmos más avanzados hasta la actualidad para la detección de personas. El primer algoritmo utilizado ha sido YOLO [11], un algoritmo que presenta 3 versiones y ha ido mejorando a lo largo del tiempo con cada una de ellas en diferentes aspectos. La versión que ha sido utilizada es YOLOv3[15], una versión que, comparada con la anterior, no es más rápida, pero sı́ más eficiente. La razón de esto es la adición de nuevas capas a la arquitectura. Para una misma imagen de 416x416 pı́xeles, YOLOv3 es capaz de predecir 10.647 Bounding Boxes mientras que YOLOv2 [55] solamente predice 845. Las principales ventajas de esta arquitectura es que realiza el reconocimiento de objetos en 3 escalas diferentes en una sola pasada de la red que, junto con la función de loss propuesta por sus autores, dota a la red de gran velocidad en el procesamiento con una precisión en la detección elevada..
(45) 21. Figura 21: Arquitectura de la red YOLOv3 [15]. La razón por la que se ha escogido este algoritmo es porque es capaz de observar toda la imagen a la vez, por lo que todas las predicciones están basadas en el contexto de la totalidad de la imagen. Además, realiza una única evaluación para cada predicción, convirtiéndola en una red mucho más rápida que otras, como pueden ser las R-CNN. El siguiente algoritmo probado ha sido Faster R-CNN, un algoritmo más lento que el YOLO pero más preciso. Esta red cambió el concepto de las redes convolucionales (R-CNN), los recortes de los objetos detectados se hacen directamente sobre los mapas de Features que se extraen de la imagen. Una pequeña red neuronal denominada RPN aprende a proporcionar aquellas regiones más susceptibles de contener objetos y, mediante la aplicación de la técnica de RoI Alignment, los mapas de Features son recortados en base a las regiones propuestas. Finalmente, los recortes se convierten a un vector que atraviesa dos capas de neuronas para desembocar en dos ramas con tareas diferentes. La primera de ellas se encarga de predecir la categorı́a o clase a la que pertenece la región y la segunda es la encargada de predecir el Bounding Box en la imagen general, ası́ como la probabilidad de acierto.. Figura 22: Arquitectura de la red Faster R-CNN [10].
(46) 22. Una vez estudiado qué algoritmo es el mejor a utilizar para este trabajo, se va a proceder a re-entrenar la red para intentar obtener mejores resultados. Se probará a re-entrenar la red con distintas iteraciones para evaluar los resultados y poder comparar entre ellos. Para ello es necesario crear un Dataset, obtener las imágenes de los vı́deos e ir etiquetando de manera manual cada una de las detecciones. Para entrenar una red, cuantos más datos se clasifiquen mejor, sin llegar al overfitting, es decir, querer que la red sea tan perfecta que si encuentra una pequeña diferencia con los objetos detectados no sea capaz de identificarlo. Para crear este Dataset se han utlizado vı́deos grabados de diferentes sesiones de entrenamiento reales, etiquetando un total de unas 3.000 personas. El número de etiquetas utilizadas para entrenar una CNN varı́a mucho respecto al modelo que se quiera entrenar. Puesto que solo se etiquetan objetos pertenecientes a una clase, en este trabajo la clase persona, para entrenar la red se han seleccionado tres vı́deos diferentes con perspectivas distintas para que la red pueda, posteriormente, detectar los jugadores independientemente de la zona de interés de juego. El etiquetado se ha realizado de manera semisupervisada, Figura 23, para agilizar el proceso de anotación. Los cuadros pasan por la red Faster R-CNN y esta predice los Bounding Boxes (Figura 23a), posteriormente estos Bounding Boxes se van dibujando de uno en uno sobre el cuadro que se ha introducido en la red y, manualmente, se debe seleccionar si ese Bounding Box es válido (el Bounding Box se marca de color verde Figura 23a) o no (el Bounding Box se marca de color rojo Figura 23a), si este no fuera válido, se descarta; en caso contrario se almacenarı́a como válido. Finalmente, es necesario etiquetar manualmente (Bounding Boxes marcados en azul Figura 23b) aquellas personas que no han sido previamente detectadas por el algoritmo Faster R-CNN (se pasan los Bounding Boxes válidos del Faster R-CNN, marcados en blanco Figura 23b, para saber cuáles ya están etiquetados) y serán almacenadas conjuntamente con las válidas.. (a). (b). Figura 23: Anotación semisupervisada del Dataset. 3.3.4. Algoritmos de seguimiento. El seguimiento de un objeto se realiza para conectar la detección en un cuadro con el siguiente, pudiendo de esta manera vincular las detecciones en el tiempo. No obstante, puede ser que en un cuadro exista una detección y en el siguiente, debido a una oclusión, desaparezca pero unos cuadros más tarde vuelva a aparecer. Este problema puede afectar al rendimiento del.
(47) 23. seguimiento del objeto puesto que pueden aparecer falsas estimaciones. Otro problema que aparece a la hora de realizar el seguimiento, como se ha mencionado anteriormente, es que el objeto puede desaparecer de un cuadro a otro cuadro, siendo posible que vuelva a aparecer más adelante o simplemente desaparezca por completo. Aquı́ es donde entra en juego el tiempo de vida del Tracker, cuando se pierde, el algoritmo comienza a hacer estimaciones sobre la imagen de dónde puede encontrarse el objeto, en caso de que vuelva a aparecer; no obstante, pasado un determinado tiempo, el TTL expira y el Tracker es eliminado. Finalmente, el último problema está relacionada con el seguimiento de múltiples objetos; cuando dos objetos se encuentran relativamente cerca se puede confundir el Tracker, cambiando uno por otro, o incluso perder uno de ellos, cambiando el resultado. El primer algoritmo de seguimiento utilizado se basa en el filtro de Kalman, un algoritmo recursivo, ideal para sistemas en continuo cambio. Este filtro realiza un seguimiento del estado estimado del sistema y la incertidumbre de la estimación. Esta última se actualiza utilizando un modelo de transición de estado y mediciones. Este algoritmo tiene dos pasos. En el paso de predicción, el filtro de Kalman produce estimaciones de las variables de los estados actuales, junto con sus incertidumbres. En el paso de actualización, después de observar el resultado de la siguiente medición, esta estimación se actualiza utilizando un promedio ponderado, dando un mayor peso a las estimaciones correctas.. Figura 24: Filtro de Kalman [16]. El segundo algoritmo que se ha utilizado es el KCF que utiliza un filtro de correlación basado en la estimación de una salida a partir de una entrada. La salida deseada tı́picamente es de una forma gaussiana centrada en la ubicación del objeto, por lo cual el valor de esta disminuye con la distancia. El KCF tiene como entrada la detección del cuadro anterior y del actual y, su salida es la distancia entre ambas, que se utiliza para ir desplazando esta detección a lo largo del vı́deo para realizar el seguimiento. En el cual, para minimizar la ecuación se propone la solución de los mı́nimos cuadrados con regularización, puesto que se trata de un problema de optimización de tipo comparación. mı́n ||Xw − y||2 + λ||w||2 w. (6).
(48) 24. Donde X es una matriz circulante (matriz en la que cada fila rota un elemento respecto a la anterior). No obstante, la distribución probabilı́stica de la imagen puede tomar formas complejas complicadas de modelar, para simplificarlo, es posible transformar funciones no lineales en funciones lineales pasándolas a una dimensión mayor x → ϕ(x). La Figura 25 representa una distribución de puntos (rojos y azules) de dos dimensiones que pueden ser separados por una circunferencia, pasando esta distribución a una dimensión mayor (3D), esta separación pasa a ser un plano.. Figura 25: Transformación de una distribución de puntos a una dimensión superior. Para poder modelar la distribución probabilı́stica de la imagen, a través del paso a una dimensión superior, se utiliza el Teorema de Mercer, pudiendo expresar la solución como si fuera una combinación lineal. mı́n ||Kα − y||2 + λαT Kα. (7). α. Donde K es la matriz de kernel formado por los productos escalares ki,j = ϕ(xi )T ϕ(xj ). La ecuación (7) tiene como solución 0. k xz = F −1 (x̂∗. α̂ =. ẑ). ŷ k̂ xx. +λ. α = (K + λI)−1 y. r̂ = k̂ xz. α̂.. (8). (9). Donde r es la salida del filtro dependiente de los parámetros que pueden ser extraı́dos de la solución del problema de optimización. A través de esta transformación matemática, la distribución probabilı́stica de los datos se transformará en una gaussiana multidimensional, si por ejemplo, usáramos el kernel conocido.
(49) 25. como RBF. Esta función es derivable y es capaz de describir gran cantidad de distribuciones de datos, además, computacionalmente se trata de un proceso sencillo, lo que permite acelerar el procesado dotando a los algoritmos de una gran velocidad. El tercer algoritmo utilizado es el CSRT, más preciso que el KCF pero más lento. Este algoritmo se basa, al igual que el KCF, en un filtro correlado pero, además, utiliza una máscara espacial que permite filtrar y centrar el foco de análisis en los pı́xeles más probables en el entorno del Bounding Box.. Figura 26: Algoritmo CSRT [17]. La Figura 38 representa una visión general del funcionamiento del algoritmo para estimar la zona con mayor probabilidad en la que se encontrará un objeto en el siguiente cuadro. La imagen de superior derecha muestra la máscara espacial en 2D, a partir de ella se sacan los canales filtrados (imagen superior izquierda). Cada canal representa un color, una escala de grises o un valor de HoG (canales utilizados en la implementación original), a partir de estos canales se resuelven las ecuaciones (8)(9). La imagen inferior representa la salida de cada canal una vez ya se conocen los parámetros y, resolviendo el problema de optimización, se obtiene la distribución final donde se puede encontrar la zona con mayor probabilidad en la que el objeto puede situarse en la siguiente posición. Una ventaja que tiene el CSRT es que, si comienza a hacer un seguimiento erróneo, es capaz de corregirlo si el objeto no se ha movido mucho. Sin embargo, cuando se trata de una pérdida del seguimiento por oclusiones, este algoritmo comete varios fallos a la hora de recuperar el seguimiento del objeto si reaparece desde otro punto de vista..
(50) 26. 3.4. Combinación de detección, seguimiento y re-identificación. En este proyecto se plantea el diseño de un algoritmo capaz de detectar y realizar un seguimiento, además, a partir de estos resultados, poder realizar una re-identificación de para obtener un algoritmo lo más completo posible. En las secciones anteriores se ha escrito por separado de la detección, el seguimiento y la re-identificación; no obstante, existen algoritmos que los combinan en uno único. Es importante destacar que estos algoritmos son más complejos que trabajar con los individuales y hacer una combinación de ellos (pipelining), en los que las salidas de estos son la entrada de los siguientes. En este proyecto se van a probar dos algoritmos. El conocido como Deep Sort, un algoritmo que combina la detección de objetos usando YOLOv3 con el algoritmo SORT que realiza el seguimiento. El otro algoritmo que se va a utilizar es la combinación de tres de ellos individualmente. Puesto que es complicado realizar el seguimiento de múltiples objetos, en vez de utilizar algoritmos de Deep Learning para realizar el seguimiento, se propone utilizar algoritmos más clásicos encuadrados en el campo de la Visión Artificial los cuales se corresponden a los presentados en la sección anterior.. 3.4.1. Deep Sort. Realmente Deep Sort [18] no es un algoritmo que trabaja en un único Framework, es decir, el algoritmo no realiza la detección y el seguimiento en el mismo paso. Este algoritmo utiliza los pesos pre-entrenados del YOLOv3 para extraer las Bounding Boxes de las detecciones que realiza; estas son utilizadas como entrada del algoritmo SORT, basado en el Filtro de Kalman, para realizar el seguimiento. Posteriormente, utilizando una Deep Neural Network entrenada para la re-identificación, el algoritmo es capaz de asociar los Trackers activos y los que se han ido perdiendo, con los nuevos que se estiman tras las nuevas detecciones con un algoritmo de asociación de medidas.. Figura 27: Arquitectura Deep Sort [18].
Documento similar
Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan
Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción
Luis Miguel Utrera Navarrete ha presentado la relación de Bienes y Actividades siguientes para la legislatura de 2015-2019, según constan inscritos en el
En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2010 representan en todos los aspectos significativos la imagen fiel
En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2012 representan en todos los aspectos
La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo 168
La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo
La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de