Full text
Detecci´ on de Objetos con Asociaci´ on de Datos Embebida Jaime Mallo Antelo Tutores: Manuel Mucientes Molina y V´ ıctor Brea S´ anchez Trabajo de Fin de M´ aster, Universidad de Santiago de Compostela Master Universitario en Tecnolog´ ıas de An´ alisis de Datos Masivos: Big Data Resumen—El tracking visual de objetos est´ a en pleno auge debido a sus numerosas aplicaciones, entre las que se encuentran los veh´ ıculos aut´ onomos o la videovigilancia. En esta tarea se busca precisi´ on a la par que velocidad siendo un requisito indispensable el funcionamiento en tiempo real. En este campo, una tendencia rompedora ha sido la introducci´ on de detectores basados en aprendizaje profundo capaces de plantear hip´ otesis sobre la posici´ on de los objetos de inter´ es a la par que proposiciones de vectores de caracter´ ısticas, conocidos como embeddings, para los diferentes objetos identificados, orientados a la asociaci´ on de detecciones a lo largo del tiempo, soluciones que detectan y siguen objetos con una ´ unica red neuronal convolucional. Como respuesta a la necesidad de mejorar la capacidad discriminativa de estos vectores de caracter´ ısticas, entre objetos con identidades diferentes, en este TFM se plantea la integraci´ on de un autoencoder en una red de detecci´ on con embeddings. Con esta arquitectura es posible reducir la dimensionalidad y eliminar el ruido de los embeddings, potenciando la capacidad discriminativa de estos mediante la reformulaci´ on de las caracter´ ısticas de inter´ es. El sistema propuesto ha sido evaluado en los conjuntos de datos de referencia para tracking mostrando mejora en rendimiento sin descuidar la velocidad de ejecuci´ on, permitiendo su funcionamiento en tiempo real. 1. Introducci´ on El campo de visi´ on por computador es una disciplina o´ area de la inteligencia artificial que busca dotar a un sistema de las capacidades necesarias para analizar y procesar im´ agenes y v´ ıdeo con el objetivo de extraer informaci´ on de valor [25]. Este ´ area dentro del campo de la inteligencia artificial, aunque bastante amplia, presenta cuatro l´ ıneas que, con la introducci´ on del Deep Learning o aprendizaje profundo, han experimentado un avance significativo en los ´ ultimos a˜ nos: la clasificaci´ on de im´ agenes, la detecci´ on de objetos, la segmentaci´ on y el tracking. Aunque en sus or´ ıgenes estas l´ ıneas se han desarrollado de forma independiente, actualmente comienza a presentarse un panorama donde la integraci´ on conjunta de algunas de ellas muestra determinadas ventajas. Aquella en la que se centrar´ a la atenci´ on es la detecci´ on de objetos en v´ ıdeos, buscando una extensi´ on o aproximaci´ on a tracking de objetos. La detecci´ on de objetos consiste en determinar la posici´ on de un determinado objeto en una imagen. Dado que estos suelen tener formas notablemente irregulares, el objeto es delimitado mediante un rect´ angulo, bounding box, de modo que se disponga de la posici´ on y aspecto de este. Por su parte, el tracking consiste en asociar medidas a lo largo del tiempo a un objeto y estimar a partir de dicha asociaci´ on el estado del mismo, otorg´ andole una identidad ´ unica a lo largo del tiempo. El encaje de detecci´ on y tracking resulta bastante natural dada la gran cantidad de aplicaciones que requieren de estas dos tareas de forma conjunta, t´ omese por caso los veh´ ıculos aut´ onomos, dispositivos de vigilancia autom´ atica y muchos otros sistemas de an´ alisis de v´ ıdeo. As´ ı, uno de los componentes proporciona las caracter´ ısticas y posici´ on de un determinado objeto, para un fotograma dado, y el otro componente asocia dichas caracter´ ısticas a lo largo del tiempo en sucesivos fotogramas. Un requisito importante para estos sistemas suele ser la necesidad de funcionamiento en tiempo real. Este requisito se convierte en un reto puesto que los detectores de objetos con mayor precisi´ on necesitan tiempos de c´ omputo superiores a los 100 ms para resoluciones de imagen HD720. En t´ erminos de visi´ on por computador se entiende como tiempo real la capacidad de procesar 25-30 im´ agenes por segundo, tasa de reproducci´ on m´ as com´ un en v´ ıdeos [7]. Hasta hace poco tiempo las arquitecturas del estado del arte abordaban la detecci´ on y el tracking de forma independiente con la finalidad de cumplir con el requisito del tiempo real, ejecutando para ello el detector un n´ umero limitado de veces. Sin embargo, en estos momentos existen determinadas arquitecturas estado del arte que permiten ejecutar ambas tareas de forma simult´ anea mediante la utilizaci´ on de redes neuronales convolucionales (Convolutional Neural Networks, CNNs) profundas, aprovechando la extracci´ on de caracter´ ısticas propia de la detecci´ on de objetos para establecer asociaciones entre identidades para fotogramas consecutivos. La principal innovaci´ on en este tipo de arquitectura, conocida como JDE (Jointly Detection and Embeddings) [28], es la posibilidad de obtener, a partir de la red neuronal convolucional profunda, que constituye el detector, un vector de caracter´ ısticas conocido como embedding, que define la identidad de un objeto en base a sus caracter´ ısticas en t´ erminos de color, forma y contorno en un determinado momento de tiempo y que puede ser utilizado para reidentificar dicho objeto en 1
otro momento temporal. Adicionalmente, dado que el aspecto de un objeto var´ ıa a lo largo del tiempo, en los sucesivos fotogramas que componen el v´ ıdeo, este planteamiento requiere de la actualizaci´ on de dichos embeddings o vectores de caracter´ ısticas de modo que se enriquezca la identidad asociada a un determinado objeto en base a los diferentes embeddings emparejados en los sucesivos fotogramas. Este trabajo parte de un detector de tipo JDE [28] y estudia la integraci´ on de un autoencoder para modificar los embeddings, de forma que mejore la capacidad discriminativa y asociativa de estos vectores de caracter´ ısticas. La nueva arquitectura busca poner de manifiesto la mejora que puede alcanzar el sistema utilizando vectores de caracter´ ısticas de menor tama˜ no, donde cobren mayor importancia y protagonismo las caracter´ ısticas m´ as representativas de cada objeto, evitando los problemas asociados al trabajo con espacio de alta dimensionalidad. De forma m´ as precisa, se propone como hip´ otesis de partida que la utilizaci´ on de 512 caracter´ ısticas para representar cada uno de los objetos de inter´ es, propuesta en la arquitectura JDE de partida, resulta una dimensionalidad demasiado elevada, dificultando la asociaci´ on de datos, existiendo ciertas caracter´ ısticas poco discriminativas. A modo de resumen, las contribuciones de este trabajo son las siguientes: Creaci´ on de un conjunto de datos de embeddings para el entrenamiento de arquitecturas que requieran vectores de caracter´ ısticas representativos de personas. Implementaci´ on e integraci´ on de t´ ecnicas de reducci´ on de la dimensionalidad, eliminando el ruido existente, y enriquecimiento de caracter´ ısticas mediante la aplicaci´ on de diferentes tipos de autoencoders. Presentaci´ on de resultados significativos que muestren los beneficios de utilizar vectores de caracter´ ısticas de menor tama˜ no a los propuestos en la arquitectura original JDE, conservando su capacidad de funcionamiento en tiempo real. 2. Trabajo Relacionado Previo a la llegada de las redes neuronales convolucionales, gracias al aumento de las capacidades de c´ omputo, dos estrategias dominaban el estado del arte de detecci´ on: detectores de objetos espec´ ıficos de una clase y detectores de objetos en movimiento. Los detectores para objetos de clases espec´ ıficas estaban basados en la identificaci´ on de estos mediante el registro de elementos, formas, colores o texturas permitiendo a posteriori buscar objetos con estas caracter´ ısticas en una imagen. Algunas representaciones de estos algoritmos son Viola Jones [26], [27] y detectores HOG [5], entre otros. Por su parte, los detectores de objetos m´ oviles, como por ejemplo, los sustractores de fondo [1], [13], [24], se centran en buscar cambios en secuencias de im´ agenes. B´ asicamente, estas t´ ecnicas separan el fondo del frente buscando identificar los cambios que se producen en el frente de la escena. Estas t´ ecnicas, aunque innovadoras en su momento, presentan algunos problemas como la imposibilidad de trabajar con c´ amaras m´ oviles o incluso abordar escenas diferentes proporcionadas por varias c´ amaras, la precisi´ on estaba sujeta a la presencia de un entorno sin distracciones, como podr´ ıan ser los cambios de iluminaci´ on o la aparici´ on de sombras, existiendo problemas tambi´ en a la hora de delimitar objetos dispuestos muy juntos ente ellos como agrupaciones de personas muy cercanas. Las redes neuronales convolucionales han permitido un gran avance en los problemas de detecci´ on, solventando en su mayor´ ıa los problemas asociados a las soluciones anteriores. As´ ı, los detectores basados en aprendizaje profundo pueden dividirse en dos grupos o categor´ ıas, two-stage detection o detecci´ on en dos pasos y one-stage detection o detecci´ on en un ´ unico paso. Los detectores en dos pasos se conocen con este nombre porque la detecci´ on sucede en dos etapas. En la primera de ellas el modelo propone una serie de regiones de inter´ es, las cuales son candidatas a presentar un objeto del tipo buscado. En la segunda etapa, un clasificador se encarga de determinar, en estas regiones, la existencia o no de un objeto asociado a ciertas clases. Estos cobraron especial relevancia a partir de 2014 con la introducci´ on de R-CNN [11], que utiliza b´ usqueda selectiva para la proposici´ on de regiones de inter´ es y CNN (Convolutional Neural Network) para la extracci´ on de caracter´ ısticas de cada una de las regiones de inter´ es, siendo posteriormente utilizadas para predecir las categor´ ıas y bounding boxes. Tomando esta arquitectura como punto de partida surgen un n´ umero importante de mejoras, como por ejemplo, Fast RCNN [10] capaz de incorporar un detector y un regresor para el ajuste de las bounding boxes bajo la misma red o Faster RCNN [23] que incorpora lo que se conoce como RPN (Region Proposal Network). En 2017, aparece una t´ ecnica denominada FPN (Feature Pyramid Network) [18], que se centra en la obtenci´ on de caracter´ ısticas con alto contenido sem´ antico independientemente de la escala seleccionada. Si bien hoy en d´ ıa existen multitud de t´ ecnicas de detecci´ on de dos etapas, muchas de ellas se inspiran en la red FPN, utilizando pir´ amides de caracter´ ısticas. Aunque este tipo de arquitecturas supuso una gran mejora en cuanto a la precisi´ on de este tipo de sistemas, continuaba existiendo un problema y ese es la imposibilidad de funcionar en tiempo real debido al coste computacional de su ejecuci´ on. La otra tendencia en cuanto a detectores son los one-stage detectors o detectores en un ´ unico paso. La diferencia con los anteriores es que omiten la fase de propuesta de regiones y aplican directamente detecci´ on sobre un denso muestreo de posibles ubicaciones. Lo buscado con esta tendencia es reducir los tiempos de c´ omputo sacrificando en ciertos casos algo de precisi´ on. El primer detector de este tipo fue YOLO (You Only Look Once) [21], que divide la imagen en regiones o celdas y predice las bounding boxes y la probabilidad de cada clase en cada una de las regiones. Especial menci´ on 2
merece la versi´ on 3 [22] de este detector, en el cual se a˜ nade la arquitectura FPN, lo que permite la detecci´ on de objetos en varias escalas, incluso objetos peque˜ nos, un problema recurrente en las primeras versiones. En relaci´ on con el tracking visual, una de las aproximaciones de mayor ´ exito son los trackers basados en filtros de correlaci´ on discriminativos [4]. Estos filtros modelan la apariencia del objeto de modo que una vez detectado e identificadas sus caracter´ ısticas en el primer fotograma, en los siguientes se utiliza la t´ ecnica de ventana deslizante para recorrer la imagen en busca de dicho objeto a partir del filtro con sus caracter´ ısticas, determinando la posici´ on del objeto como aquella donde se obtiene la mayor correlaci´ on con el filtro definido para el objeto. Asimismo, en tracking tambi´ en han tenido un ´ exito notable los filtros basados en modelos de movimiento, como los filtros de Kalman [14], los cuales buscan determinar la posici´ on de un objeto en base a su trayectoria, considerando la caracter´ ıstica de continuidad del movimiento. Sin embargo, el auge de las redes neuronales convolucionales no s´ olo tuvo impacto a nivel de detecci´ on sino tambi´ en a nivel de tracking apareciendo dos tendencias dominadoras del estado del arte. Las primeras de ellas, explotaban los beneficios del aprendizaje profundo mediante la utilizaci´ on de CNN para la correlaci´ on discriminativa [6], [3], [30]. La otra de las tendencias son las redes Siamesas [2], que proponen la utilizaci´ on de una CNN precalculando las caracter´ ısticas del objeto de inter´ es con anterioridad para posteriormente localizar dichas caracter´ ısticas en los siguientes fotogramas. El problema de todos estos trackers es su escalabilidad con el n´ umero de objetos y la necesidad de operar de forma conjunta con un detector. Todo sistema completo de detecci´ on y tracking requiere de la asociaci´ on de datos. Este componente es el encargado de integrar la informaci´ on aportada por el detector y el tracker. Los avances en este campo est´ an representados por los trackers conocidos como MOT (Multiple Object Trackers), centrados en el paradigma tracking-by-detection [17], [19]. Este tipo de soluciones requieren de dos componentes de computo intensivo como son el detector y un modelo de embeddings encargado de extraer las caracter´ ısticas de los objetos para proceder a la asociaci´ on de detecciones y trackers, lo que se conoce como m´ etodos SDE (Detecci´ on y Embeddings Separados). Estos sistemas tienen como principal limitaci´ on su tiempo de inferencia, al estar desacoplada la detecci´ on de la asociaci´ on de datos. Esto no sucede con los detectores de tipo JDE (Detecci´ on y Embeddings Conjuntos) en los que las caracter´ ısticas extra´ ıdas de bajo nivel son utilizadas tanto para detecci´ on como para la asociaci´ on de datos, con el ahorro en tiempo de c´ omputo que ello supone. 3. Arquitectura del Sistema El sistema dispone de varios componentes, cada uno de los cuales juega un rol diferente en la identificaci´ on de objetos en tiempo real. Este se compone de una red neuronal convolucional profunda encargada de determinar la posici´ on de cada uno de los objetos, as´ ı como la extracci´ on de un vector de caracter´ ısticas que representa a cada uno de los objetos de inter´ es. Como el objetivo es asociar detecciones a lo largo del tiempo, el sistema dispone de un framework encargado de esta tarea. Adicionalmente, con la finalidad de mejorar la asociaci´ on de datos, se incluye un autoencoder, donde radica la aportaci´ on principal de este trabajo, que permite eliminar el ruido y resumir las caracter´ ısticas de cada objeto, facilitando y mejorando la calidad de la asociaci´ on de datos. La arquitectura del sistema se ilustra en la figura 1. A continuaci´ on, se describen sus componentes y funcionalidades. 3.1. Modelo de Detecci´ onyEmbeddings (JDE) La arquitectura JDE se compone de una red neuronal convolucional que introduce un concepto novedoso en las ´ areas de tracking y detecci´ on como es la integraci´ on en una misma red de un detector y un modelo de embeddings. Esto permite no s´ olo determinar la posici´ on de los objetos existentes en una determinada imagen, sino tambi´ en la obtenci´ on de un resumen de caracter´ ısticas para cada objeto identificado. Esto resulta clave para garantizar el funcionamiento en tiempo real, puesto que se reutiliza la propia red de detecci´ on para la obtenci´ on de estos vectores de caracter´ ısticas sin a˜ nadir un coste computacional importante, como s´ ı suceder´ ıa si se utilizasen dos arquitecturas independientes, cada una de ellas destinada a una tarea. 3.1.1. Extractor de Caracter´ ısticas (Backbone). La red utilizada emplea como extractor de caracter´ ısticas generales de la imagen la arquitectura DarkNet-53 [20]. Una de las caracter´ ısticas que hace popular a esta arquitectura, en comparaci´ on con otras, es su velocidad, sin perder precisi´ on. La arquitectura de esta red que se puede ver en la figura 2se compone de una serie de capas de convoluci´ on entre las que se intercalan capas de tipo shortcut, las cuales permiten fusionar caracter´ ısticas de la capa inmediatamente anterior con caracter´ ısticas extra´ ıdas en capas anteriores, enriqueciendo la representaci´ on. 3.1.2. FPN (Feature Pyramid Network). Debe tenerse en cuenta que los objetos de inter´ es se pueden situar a una mayor o menor distancia del objetivo encargado de captar la escena con lo que su escala puede variar notablemente, incluso dentro de la misma escena. Esto pone de manifiesto la necesidad de trabajar con diferentes escalas. Este problema debe ser abordado de forma cuidadosa para evitar un incremento notable en el tiempo de computaci´ on. Por ello, se utiliza una arquitectura FPN (Feature Pyramid Network o pir´ amide de caracter´ ısticas), que se integra en la red, permitiendo, ahora s´ ı, realizar predicciones a diferentes escalas. La principal ventaja es que utiliza el valor sem´ antico generado por el mapa de caracter´ ısticas de menor resoluci´ on, el obtenido en las ´ ultimas capas de la red, para aportar mayor valor a las caracter´ ısticas 3
Figura 1: Arquitectura del sistema presentado en este trabajo. Figura 2: Disposici´ on de las capas que conforman la arquitectura Darknet-53 (Imagen extra´ ıda de Joseph Redmon et al. [22]). propias de una escala de mayor tama˜ no o con una mayor resoluci´ on. As´ ı, a partir de las caracter´ ısticas con mayor valor sem´ antico, obtenidas mediante un proceso de downsampling, se reconstruyen mapas de caracter´ ısticas de mayor resoluci´ on donde encontrar objetos de mayor escala, utilizando, para evitar distorsionar la posici´ on de los objetos, las caracter´ ısticas aportadas por el backbone para la resoluci´ on correspondiente mediante un proceso de upsampling. De este modo, se realizar´ ıa una pasada hacia delante en la red y una reconstrucci´ on hacia atr´ as, combinando las caracter´ ısticas con mayor valor sem´ antico del nivel o escala inmediatamente anterior con las propias de cada escala proporcionadas por al red. Para el problema abordado se utilizan tres escalas de 1/32, 1/16 y 1/8 respectivamente, en relaci´ on al tama˜ no de entrada definido por la red. La figura 3ilustra el funcionamiento de esta arquitectura. 3.1.3. Cabecera de Predicci´ on (Prediction Head). Estos tres mapas de caracter´ ısticas obtenidos mediante la t´ ecnica anteriormente expuesta permiten detectar objetos Figura 3: FPN (Feature Pyramid Network o Pir´ amide de Extracci´ on de Caracter´ ısticas). en diferentes escalas. Tras una parte com´ un en la red encargada de extraer caracter´ ısticas, esta contar´ a con tres componentes diferentes en cuanto a dimensiones pero id´ enticos en cuanto a configuraci´ on para detectar objetos en cada una de las escalas. Este nuevo componente se conoce como cabecera de predicci´ on o prediction head y permite extraer la posici´ on del objeto de inter´ es, el vector de caracter´ ısticas, la clase y la confianza en la detecci´ on, medida que se puede traducir en la probabilidad de que realmente aquello que se ha identificado sea un objeto de inter´ es y no el fondo de la imagen. Estas cabeceras de predicci´ onoprediction heads se componen de una serie de capas de convoluci´ on adaptadas a las tres escalas de caracter´ ısticas empleadas por la red. Para que la red aprenda a delimitar los objetos mediante un rect´ angulo, habitualmente conocidos como bounding boxes, se utiliza una t´ ecnica basada en anchors. Los anchors son bounding boxes o rect´ angulos predefinidos de un cierto ancho y alto. El procedimiento se describe en la figura 4. B´ asicamente, lo que se busca con estas estructuras es que la red no tenga que aprender de cero a delimitar los objetos, en cuyo caso el entrenamiento ser´ ıa mucho m´ as lento y menos efectivo, sino que estos anchors est´ an adaptados a las dimensiones y al aspecto o ratio de los objetos de inter´ es. 3.1.4. Funci´ on de Coste. Un aspecto fundamental en el entrenamiento de cualquier red neuronal, m´ as si cabe en este caso dada la complejidad de la arquitectura, es la funci´ on de coste utilizada. Como la red busca ajustar la probabilidad de existencia de un objeto en una posici´ on dada, la bounding box o rect´ angulo que delimita el objeto y el vector de caracter´ ısticas que lo representa, tambi´ en conocido como embedding, requiere 4
Figura 4: Utilizaci´ on de anchors para permitir a la red aprender de forma sencilla a delimitar los objetos de inter´ es en las diferentes celdas en que se divide la imagen. de la combinaci´ on de tres funciones de coste, una por cada uno de estos aspectos a aprender. En relaci´ on a la detecci´ on de objetos se utilizan dos funciones de coste. Por una parte, una funci´ on de clasificaci´ on para lo cual se utiliza la entrop´ ıa cruzada, presentada en la ecuaci´ on 1, Lα=− C X c yoc ·log(poc)(1) donde Crepresenta el n´ umero de clases existentes, yoc un valor binario que vale 1 para la clase correcta de la observaci´ on oy 0 en otro caso y poc la probabilidad predicha para la observaci´ on ode pertenecer a la clase c. Por otra, la funci´ on encargada de lo que se conoce como bounding box regression es la funci´ on de coste smooth-L1, presentada en la siguiente ecuaci´ on, Lβ=0,5·x2if |x|<1 |x| − 0,5otherwise (2) donde xes la distancia L1 entre dos vectores compuestos por los valores que definen la bounding box que delimita el objeto (posici´ on de la esquina superior izquierda y esquina inferior derecha). Esta funci´ on permite medir la distancia entre la bounding box predicha y la proporcionada por el groundtruth tomada como referencia [9]. La funci´ on de coste para los embeddings busca que la red sea capaz de aprender un espacio de 512 dimensiones donde instancias de la misma identidad se encuentren cercanas entre s´ ı e instancias de diferentes identidades se encuentren bastante distanciadas. Lγ=−log exp fTg+ exp (fTg+) + Piexp fTg− i(3) La funci´ on de coste utilizada, presentada en la ecuaci´ on 3, es una adaptaci´ on de la entrop´ ıa cruzada, donde se considera para cada instancia, fT, de un mini-batch, ciertos ejemplos como positivos y otros como negativos en funci´ on de si dos objetos tienen o no la misma identidad y con ello deben estar cerca o no en el espacio. Adicionalmente, al tratarse de la entrop´ ıa cruzada, se incorpora la probabilidad de la clase positiva, g+, a la que pertenece el anchor y la probabilidad de las clases negativas, g− i. Naturalmente, al utilizar la retropropagaci´ on del error, para el ajuste de los pesos de la red neuronal convolucional profunda, se necesita combinar las tres funciones de coste existentes en una, permitiendo as´ ı el aprendizaje de la red. Ltotal = M X iX j=α,β,γ 1 21 esi j Li j+si j(4) La formulaci´ on de dicha funci´ on de coste global se muestra en la ecuaci´ on 4.´ Esta se presenta como la suma lineal ponderada del coste para los diferentes componentes y diferentes escalas, donde Lαse corresponde con la funci´ on de coste que permite a la red aprender a clasificar el objeto, Lβla funci´ on de coste asociada al aprendizaje de las bounding boxes yLγla funci´ on de coste encargada del ajuste de los embeddings durante el entrenamiento. De la ecuaci´ on anterior cabe puntualizar que Mes el n´ umero de cabeceras de predicci´ on o prediction heads, tres para esta arquitectura. Adicionalmente, se puede ver como existen una serie de coeficientes, si j, que es necesario determinar para cada una de las funciones de coste. Estos podr´ ıan ser id´ enticos para las tres funciones de coste utilizadas o bien definidos diferentes pero de forma aleatoria mediante prueba y error. Sin embargo, aunque el funcionamiento de estas t´ ecnicas no tendr´ ıa por que ser malo, alcanzando resultados aceptables tras varios intentos, en ning´ un caso ser´ ıa ´ optimo. Este motivo lleva a utilizar una t´ ecnica que permite aprender de forma autom´ atica dichos pesos utilizando el concepto de task independent uncertainty [15], que consiste en aprender la incertidumbre homoced´ astica, dependiente de la tarea y no de los datos, para ponderar la funci´ on de coste de cada tarea en una funci´ on de coste global. 3.2. Asociaci´ on de Datos Aunque la red de detecci´ on y generaci´ on de vectores de caracter´ ısticas representativos de los diferentes objetos utilizados es la parte donde radica, principalmente, lo novedoso de esta arquitectura, es necesario utilizar alguna estrategia para asociar detecciones a lo largo del tiempo para los sucesivos fotogramas. Dicho de otro modo, una vez se conoce la posici´ on y dimensiones de un objeto se busca determinar si aparece en varias ocasiones en diferentes momentos de tiempo. Para ello, se utilizar´ an diversas t´ ecnicas ampliamente extendidas en tracking que de forma conjunta ofrecen un gran rendimiento proporcionando robustez al sistema. 3.2.1. Filtrado de Detecciones. Junto con la posici´ on del objeto y el vector de caracter´ ısticas devuelto por la red se obtiene una m´ etrica que resume la confianza de la detecci´ on, esto es, la probabilidad de que el objeto identificado sea de la clase predicha. Para reducir el n´ umero de falsos positivos obtenidos, siendo esto la aceptaci´ on de una hip´ otesis en una posici´ on donde no hay ning´ un 5
Figura 5: IOU (Intersection Over Union) o solape entre dos bounding boxes. objeto de inter´ es, debe establecerse un valor de corte o umbral a partir del cual se considera una detecci´ on. As´ ı pues, la confianza es uno de los par´ ametros del modelo, y su valor depende de la aplicaci´ on. 3.2.2. IOU (Intersection Over Union o Intersecci´ on Sobre la Uni´ on). El IOU (Intersection Over Union) mide el solape o superficie com´ un entre dos bounding boxes o rect´ angulos que delimitan los objetos de inter´ es, tal y como ilustra la figura 5. El principio en que se sustenta esta t´ ecnica, tan sencilla como efectiva, es que los objetos en v´ ıdeos describen trayectorias continuas, de modo que entre un fotograma y el siguiente, suponiendo v´ ıdeos con una tasa de reproducci´ on com´ un (entre 24 y 30 FPS), la posici´ on de los objetos variar´ a pero no lo har´ a de forma abrupta. T´ engase en cuenta que una tasa de 30 FPS, supone que entre un fotograma y el siguiente hay una salto temporal de 0,03 segundos, habitualmente imposibilitando un cambio de posici´ on muy notable. Un problema que se puede presentar, en este sentido, es la dificultad de asociar mediante esta t´ ecnica detecciones que se encuentren en posiciones muy cercanas o incluso parcialmente ocluidas, puesto que dicha cercan´ ıa puede conllevar cambios de identidad en el proceso de asociaci´ on indeseados. Es por ello, que esta t´ ecnica suele ser complementada por alguna otra que aporte robustez al sistema en este tipo de situaciones, utilizando no s´ olo la posici´ on del objeto sino tambi´ en sus caracter´ ısticas. 3.2.3. Embeddings o Vectores de Caracter´ ısticas. La red empleada para la detecci´ on de objetos es utilizada tambi´ en para la generaci´ on de vectores de caracter´ ısticas representativos de cada objeto detectado. Estos describen de forma compacta la forma, el color y el aspecto de los objetos de inter´ es. Para poder asociar embeddings de dos fotogramas diferentes que representen la misma identidad debe utilizarse alguna medida de distancia. Para ello se utiliza la distancia del coseno, presentada en la ecuaci´ on siguiente, similaridad(A, B) = A·B ||A|| × ||B|| (5) definida como la similitud entre dos vectores, AyB, en el espacio que determina el valor del coseno del ´ angulo comprendido entre los dos vectores. Esta m´ etrica es interesante para este fin ya que toma valores en el intervalo [−1,1], intervalo acotado. Un factor a tener en cuenta es que los vectores de caracter´ ısticas para un mismo objeto en diferentes fotogramas ser´ an diferentes, aunque similares. Esto se debe a que la apariencia de los objetos cambia en el tiempo debido a m´ ultiples factores como el movimiento, la orientaci´ on, la iluminaci´ on, etc. Por ello, es interesante utilizar toda la informaci´ on existente para una identidad en relaci´ on con los embeddings. Esto puede aumentar el coste computacional de forma importante, al requerir del calculo de distancias con todos los vectores de caracter´ ısticas obtenidos en los sucesivos fotogramas para cada identidad. Para evitarlo se combinan las caracter´ ısticas de una identidad para los sucesivos fotogramas en los que aparece. De forma precisa, lo que se hace es fusionar cada nuevo vector de caracter´ ısticas con los anteriores, ponderando el nuevo vector de caracter´ ısticas en un 10 % y los anteriores, previamente fusionados, en un 90 %, minimizando el impacto de una asociaci´ on incorrecta. En cualquier caso, estos umbrales son tambi´ en hiperpar´ ametros del algoritmo y como tales dependientes de la aplicaci´ on bajo estudio. 3.2.4. Algoritmo de Optimizaci´ on de las Asociaciones. Hasta el momento se han presentado t´ ecnicas para determinar la distancia o similitud entre dos objetos, una basada en la posici´ on del objeto, IOU, y otra basada en las caracter´ ısticas de este, distancia del coseno entre embeddings. Para un fotograma dado, las distancias deben calcularse entre todos los objetos detectados para dicho fotograma y los anteriores, considerando como m´ ınimo la informaci´ on del fotograma anterior. El resultado son dos matrices de distancias entre las hip´ otesis planteadas para el fotograma actual y las aceptadas para los fotogramas anteriores donde cada celda define la distancia entre dos detecciones en base a IOU o distancia del coseno entre embeddings en sendas matrices. Para un buen funcionamiento del sistema, esta asociaci´ on de informaci´ on debe realizarse de forma que se optimice el global de los emparejamientos, no s´ olo buscando asociaciones factibles de forma individual sino de forma global. Con tal fin se utiliza lo que se conoce como m´ etodo H´ ungaro, un algoritmo que dada una matriz de coste, con los elementos representados mediante las filas y las columnas, busca la combinaci´ on de filas y columnas que minimice o maximice, seg´ un el caso, el coste global de las m´ ultiples asignaciones. 3.2.5. Filtros de Kalman. Aunque la asociaci´ on de objetos mediante embeddings proporciona m´ ultiples ventajas presenta un problema importante y es que estos no consideran informaci´ on espacial sobre la posici´ on del objeto. Esto puede provocar que se asocien objetos muy distantes en dos fotogramas consecutivos, siendo altamente improbable un cambio de posici´ on tan abrupto. Precisamente a modo de revisi´ on de las asociaciones, en base a los embeddings o vectores de caracter´ ısticas, se utilizan filtros de Kalman [14]. Lo que se busca utilizando esta t´ ecnica es determinar si la posici´ on en la que se encontrar´ ıa el objeto en el siguiente fotograma 6
Figura 6: Utilizaci´ on del filtro de Kalman para estimar la posici´ on de una persona para el eje X. de acuerdo a la asociaci´ on es factible o no. Los filtros de Kalman son algoritmos que se encargan de estimar o predecir los par´ ametros de inter´ es en base a la localizaci´ on, velocidad y direcci´ on ante la presencia de medidas con ruido. Busca estimar variables de inter´ es cuando no pueden ser medidas de forma directa. Esto permite que se combinen medidas con diferentes grados de ruido. Para este problema, lo que se busca es conocer la posici´ on de un objeto en el momento t+ 1 conocida la posici´ on en el momento tyt−1o incluso momentos anteriores a estos, considerando la continuidad caracter´ ıstica del movimiento. De este modo se puede determinar si la posici´ on en la que se encuentra el objeto, de acuerdo a la asociaci´ on de informaci´ on realizada, es factible en base a su trayectoria. Esta t´ ecnica, ilustrada en la figura 6, describe un proceso compuesto por una etapa de predicci´ on y otra de actualizaci´ on, presentado en las ecuaciones 6y7 respectivamente. Ecuaci´on de predicci´on :X(t) = F∗X(t−1)+Vq(t−1) (6) Ecuaci´on de actualizaci´on :Y(t) = H∗X(t) + Vp(t) (7) En las ecuaciones anteriores X(t)yY(t)son la variable de estado a estimar y la variable medida respectivamente, correspondi´ endose con la posici´ on del objeto en el momento t. Por su parte, Fes la matriz de transici´ on de estados y Hla matriz de medidas. Vq(t)y Vp(t)representan el ruido del sistema y las medidas, en ese orden. De este modo, en las sucesivas iteraciones, coincidiendo con los fotogramas que componen el v´ ıdeo, para cada identidad se realiza la predicci´ on de la posici´ on en base a informaci´ on de fotogramas anteriores, y tras la asociaci´ on se lleva a cabo la etapa de actualizaci´ on del estado con la nueva informaci´ on sobre dicha identidad. 3.2.6. Framework o Marco de Asociaci´ on de Datos. Hasta el momento se han presentado los diferentes componentes utilizados por el framework o marco Algoritmo 1: Asociaci´ on de detecciones en v´ ıdeo. Input: V´ ıdeo o fotogramas. Resultado: Posici´ on identidades identificadas en el v´ ıdeo. 1Inicializaci´ on; 2tracks activos = [ ] 3tracks no confirmados = [ ] 4tracks perdidos = [ ] 5tracks eliminados = [ ] 6mientras No final v´ ıdeo o hay fotograma hacer 7detecciones = Detector(fotograma); 8detecciones = EvaluarConfianzaDetecciones (detecciones, umbral confianza); 9grupo tracks = tracks activos + tracks perdidos; 10 distancias = DistanciaCoseno (grupo tracks, detecciones); 11 distancias = Kalman (distancias, grupo tracks, detecciones); 12 emparejamientos, u grupo tracks, u detecciones = M´ etodoH´ ungaro (distancias); 13 distancias = IOU (u grupo tracks, u detecciones); 14 emparejamientos, u grupo tracks, u detecciones = M´ etodoH´ ungaro (distancias); 15 distancias = IOU (tracks no confirmados, u detecciones); 16 emparejamientos, u no confirmados, u detecciones = M´ etodoH´ ungaro (distancias); 17 ActualizarTracksActivos (emparejamientos, tracks activos); 18 EvaluarTracksPerdidos (u grupo tracks, tracks eliminados, tracks perdidos, max tiempo vida); 19 DefinirNuevasIdentidades (u detecciones, tracks no confirmado); 20 EliminarFalsosPositivos (u no confirmados); 21 fin de asociaci´ on de datos en sucesivos fotogramas. Para un correcto funcionamiento, es necesario poner en conjunto todos ellos, de modo que se utilicen las hip´ otesis planteadas por el detector para determinar las identidades de los objetos presentes en el v´ ıdeo. El flujo del sistema en el procesado de un v´ ıdeo de entrada se presenta en el algoritmo 1. En la asociaci´ on de datos tiene un papel importante el estado de los tracks, entendiendo por estos un conjunto de detecciones de diferentes fotogramas pertenecientes a la misma identidad. As´ ı, existen 4 clases, los activos, aquellos a los que se ha asociado una nueva detecci´ on en el ´ ultimo fotograma, los no confirmados, entendiendo por estos detecciones que no han sido asociadas a ning´ un track en el ´ ultimo fotograma y para los que se desconoce si describen un nuevo objeto que ha entrado en la escena 7
o bien si se trata de un fallo del detector, los perdidos, aquellos tracks a los que no se ha asociado ninguna detecci´ on en el ´ ultimo fotograma, y los eliminados, considerados aquellos que han abandonado la escena. El sistema procesa los fotogramas del v´ ıdeo de entrada uno a uno. Cada vez que se recibe un nuevo fotograma este pasa por el detector (l´ ınea 7 del algoritmo) dando como resultado una serie de hip´ otesis que deben ser evaluadas. Estas hip´ otesis plantean la existencia de un objeto de inter´ es en una determinada posici´ on y proporcionan una descripci´ on de las caracter´ ısticas de este mediante un embedding. Adicionalmente, cada hip´ otesis viene acompa˜ nada de una confianza, que explica la probabilidad de que la hip´ otesis represente un objeto de inter´ es. Este valor es utilizado para eliminar aquellas hip´ otesis por debajo de un umbral de confianza (l´ ınea 8 del algoritmo), consideradas como poco fiables y que por ello contribuyen a la aparici´ on de falsos positivos. Tanto la posici´ on como los embeddings ser´ an utilizados para asociar las nuevas hip´ otesis a hip´ otesis de los fotogramas anteriores para definir las identidades presentes a lo largo del v´ ıdeo. Al comienzo se intentar´ an asociar las nuevas hip´ otesis a los tracks activos y aquellos que se encuentran perdidos temporalmente. As´ ı, la primera de las t´ ecnicas utilizadas para asociar las detecciones del nuevo fotograma con las de anteriores es la distancia del coseno entre embeddings (l´ ınea 10 a 12 del algoritmo). Como se comentaba con anterioridad, se utiliza el filtro de Kalman para determinar si una asociaci´ on dada es factible. Tras este proceso no todas las detecciones tienen por qu´ e haber sido asociadas a un track. Por ello, las hip´ otesis restantes se intentan asociar en base a su posici´ on utilizando como tecnica para determinar la distancia entre las nuevas hip´ otesis y los tracks existentes IOU (l´ ıneas 13 y 14 del algoritmo). En ambos casos, tanto utilizando los embeddings como la posici´ on, se optimizan los emparejamientos mediante el m´ etodo H´ ungaro, buscando el menor coste global en t´ erminos de distancia del coseno e IOU respectivamente. Una vez se han emparejado las nuevas hip´ otesis con los tracks activos y perdidos temporalmente, se procede a la asociaci´ on de las hip´ otesis restantes con los tracks no confirmados, asociados a objetos aparecidos ´ unicamente en el fotograma inmediatamente anterior (l´ ıneas 15 y 16 del algoritmo). Para este emparejamiento se utiliza la posici´ on mediante IOU como se hizo anteriormente. La utilizaci´ on de la posici´ on en lugar de los embeddings responde a la incertidumbre existente en torno a una hip´ otesis para el que se desconoce si se trata de un falso positivo, de modo que la posici´ on resulta un mejor indicador. Una vez se da por finalizado el proceso de emparejamiento, se actualizan los tracks activos (l´ ınea 17 del algoritmo), incluyendo en este grupo los ya activos en el fotograma anterior, los confirmados, aquellos tracks presentes en m´ as de un fotograma, y aquellos que se encontraban perdidos y a los que se les ha asociado una hip´ otesis en el presente fotograma. Adem´ as, se eliminan aquellos tracks perdidos que han superado el tiempo m´ aximo de vida (l´ ınea 18 del algoritmo), n´ umero de fotogramas durante el cual se considera que pueden volver a aparecer. Por ´ ultimo, se define un track no confirmado para las detecciones no emparejadas (l´ ınea 19 del algoritmo) y se eliminan los no confirmados del fotograma anterior que no han sido actualizados para el nuevo fotograma (l´ ınea 20 del algoritmo). 3.3. Optimizaci´ on de los Embeddings o Vectores de Caracter´ ısticas El planteamiento inicial propone utilizar embeddings con 512 caracter´ ısticas. La hip´ otesis de partida es que trabajar con vectores de caracter´ ısticas de alta dimensionalidad, como es el caso, es contraproducente, a˜ nadiendo complejidad que directamente afecta de forma negativa al resultado. Cuando se utilizan representaciones muy complejas, aunque bien es cierto que se suelen capturar todas las caracter´ ısticas de los objetos, se puede capturar una cantidad de ruido importante que haga que los resultados no sean ´ optimos o puedan ser mejorados. De forma m´ as t´ ecnica, cuando se aumenta la dimensionalidad el volumen del espacio aumenta exponencialmente haciendo que los datos disponibles se vuelvan m´ as dispersos. Al ser utilizadas distancias en dicho espacio para asociar detecciones, aunque es interesante distanciar instancias con identidades diferentes, puede darse el caso de que todos los objetos parezcan distantes y diferentes en multitud de aspectos, lo que impide que las estrategias de asociaci´ on de caracter´ ısticas sean eficaces. En este contexto, se plantea la utilizaci´ on de autoencoders [12]. Aunque existen multitud de variantes de este modelo, todos ellos presentan una serie de rasgos comunes, buscan en primer lugar proyectar el espacio actual en un espacio latente, de menor dimensionalidad, y posteriormente, a partir del espacio latente, intentan reconstruir la entrada, proporcionando como salida la entrada reconstruida. Est´ an conformados por un encoder o codificador, que se encarga de transformar el espacio inicial en el espacio latente, y por un decoder o decodificador que busca reconstruir el espacio original a partir del nuevo espacio generado. Esta t´ ecnica resulta muy interesante porque permite, por una parte, reducir la dimensionalidad de los vectores de caracter´ ısticas, que es lo buscado en ´ ultima instancia, y, por otra, minimizar el ruido propio de estas representaciones, eliminando aquellas caracter´ ısticas comunes a la clase o tipo de objeto que no son de inter´ es en la asociaci´ on de datos, siendo estas asumidas por el modelo. Al intentar reconstruir la entrada a partir de un espacio de menor dimensionalidad, espacio latente, deben encontrarse las caracter´ ısticas diferenciadoras, ya que las comunes pueden ser aportadas por la red a trav´ es de los par´ ametros sin necesidad de incluirlas en este espacio. De forma general, los autoencoder son muy utilizados en visi´ on por computador y otras ´ areas para reconstruir im´ agenes con baja resoluci´ on, como PCA (An´ alisis de Componentes Principales) o como t´ ecnica 8
Figura 7: Autoencoder est´ andar. para la detecci´ on de anomal´ ıas, entre otras. Una de las peculiaridades de este modelo es que mientras para el entrenamiento se utiliza la totalidad de los componentes, en producci´ on no es as´ ı, utiliz´ andose ´ unicamente el codificador o el decodificador en funci´ on de la tarea que se busca resolver con esta t´ ecnica. En este problema resulta bastante claro que la parte de inter´ es es el codificador puesto que es el componente que permite reducir la dimensionalidad de los vectores de caracter´ ısticas enriqueciendo la representaci´ on. Aunque existen m´ ultiples variantes de esta t´ ecnica, el foco se pondr´ a sobre los autoencoders est´ andar y los autoencoders variacionales. 3.3.1. Autoencoder Est´ andar. Este tipo de autoencoder es el m´ as conocido, representando el concepto puro de autoencoder. Este se presenta de forma esquem´ atica en la figura 7. Para la construcci´ on de este modelo se crear´ an dos m´ odulos sim´ etricos, el codificador, que permite transformar cada una de las entradas de 512 elementos a un espacio de menor dimensi´ on, y el decodificador, id´ entico al anterior pero con las capas en orden inverso. De este modo, la salida del primero constituye la entrada del segundo. Al partir de un vector de 512 caracter´ ısticas, un tama˜ no de entrada relativamente peque˜ no, se utilizar´ an capas de tipo totalmente conectadas o fully connected. El n´ umero de capas y neuronas de estas depende de la reducci´ on que se desee realizar, consider´ andose una buena aproximaci´ on reducciones m´ ultiplo de 2, empleando una capa por cada una de estas reducciones. El aprendizaje del modelo se realiza buscando que la entrada original sea lo m´ as similar posible a la salida, es decir, se desea que a partir de las caracter´ ısticas del espacio latente el decodificador sea capaz de reconstruir la entrada. Para ello, la funci´ on de coste empleada es el error cuadr´ atico medio, utilizando la suma como reducci´ on. MSE =1 K K X j=1 N X i=1 (Salidaji −Entradaji)2(8) Esta se expresa en la ecuaci´ on 8donde N representa el n´ umero de elementos de cada vector de caracter´ ısticas, 512, y K el n´ umero total de ejemplos utilizados. Evidentemente, como durante la etapa de predicci´ on se desea reducir la dimensionalidad de los embeddings se utilizar´ a´ unicamente el codificador, aunque para el entrenamiento se requiere de ambas partes. 3.3.2. Autoencoder Variacional. Los autoencoder variacionales [16] son una alternativa a los est´ andar, disponiendo de algunas caracter´ ısticas que hacen a este modelo interesante para el problema. Este es un modelo generativo, modelos con gran auge reciente gracias a las posibilidades que ofrecen. Es por ello que en la literatura hay quien entiende que no deben considerarse autoencoders como tal ya que, aunque la estructura es similar, el funcionamiento es diferente. Uno de los problemas que puede aparecer con los autoencoders est´ andar es que en ocasiones el espacio latente puede no ser continuo, de modo que ciertos ejemplos no utilizados en entrenamiento podr´ ıan ser distribuidos en el espacio sin necesidad de estar cercanos a otros que s´ ı lo estaban en el espacio original. Este aspecto se soluciona con los variacionales los cuales buscan no s´ olo reconstruir la entrada a partir del espacio latente, sino tambi´ en que el espacio latente siga una determinada distribuci´ on. Al forzar al espacio latente a seguir una determinada distribuci´ on este ser´ a continuo y acotado, incluso para ejemplos no aprendidos por el modelo. Para conseguir que el espacio latente siga la distribuci´ on deseada, el codificador se formula como un modelo probabil´ ıstico encargado de mapear la entrada a los componentes de una distribuci´ on, la media y la desviaci´ on t´ ıpica, tal y como se ilustra en la figura 8. As´ ı, el codificador se define como q(z|x), donde x representa la observaci´ on o entrada y zun ejemplo del espacio latente, que toma como entrada una observaci´ on y genera como salida un conjunto de par´ ametros que especifican la distribuci´ on del espacio latente. Aunque la distribuci´ on se describe a trav´ es de la media y la varianza, normalmente, se suele utilizar la log-varianza ya que proporciona una mayor estabilidad num´ erica. El decodificador se define como p(x|z)que toma un ejemplo del espacio latente, z, como entrada y busca regenerar la entrada original x. Uno de los problemas que presenta este modelo, basado tambi´ en en redes neuronales, es que el espacio latente se proporciona en t´ erminos de una distribuci´ on a trav´ es de la media y la varianza, pero no en forma de vectores en el nuevo espacio construido. Esto resulta en un cuello de botella porque la retropropagaci´ on del error, t´ ecnica utilizada para el entrenamiento y aprendizaje del modelo, no puede fluir a trav´ es de la red. Para 9