Download Análisis de comportamineto humano
Document related concepts
no text concepts found
Transcript
Análisis de comportamiento humano: Metodología para localización y seguimiento de personas en secuencias de video. Miguel A. Realpe1 Boris X. Vintimilla1,2 1 Centro de Visión y Robótica Fac. Ing. en Electricidad y Computación Escuela Superior Politécnica del Litoral Campus Gustavo Galindo Km. 30.5 vía Perimetral 09015863 Guayaquil, Ecuador {mrealpe; boris.vintimilla; dgromero}@espol.edu.ec Abstracto Este artículo presenta una técnica para la detección y seguimiento de personas en movimiento a partir de secuencias de video. La detección de objetos en movimiento es obtenida usando algoritmos de diferenciación temporal y sustracción de fondo. Un proceso de filtrado a través de operadores morfológicos y blobs es aplicado a los objetos detectados a modo de eliminar el ruido y generar únicamente siluetas de movimiento representando a personas. Para el proceso de seguimiento se extraen dos grupos de puntos de interés desde las siluetas obtenidas, el primero se define como los puntos extremos del cuerpo humano (cabeza y extremidades) junto con el centroide, y el segundo grupo son los puntos óptimos para realizar el seguimiento. Posteriormente un algoritmo de seguimiento basado en características es aplicado. Al final del procedimiento se obtiene un listado que representa el desplazamiento de ambos grupos de puntos a través del tiempo, el cual puede servir para realizar la interpretación de acciones o actividades humanas en un futuro trabajo. 1. Introducción El análisis visual del movimiento humano es un área muy investigada en la actualidad debido a la amplia variedad de aplicaciones en las que puede ser utilizado, tales como realidad virtual, vigilancia, seguridad, interacción hombre máquina, video conferencias, entretenimiento, etc. [1] [2] Comúnmente los sistemas de análisis de comportamiento humano se concentran en varias actividades claves que suelen ser: encontrar personas en la escena, realizar un seguimiento y entender las actividades desarrolladas por estas personas. Dennis G. Romero1 Paolo Remagnino2 2 Digital Imaging Research Centre Fac. of Comp., Inf. Systems and Mathematics Kingston University KT1 2EE, London, Surrey, UK B.Vintimilla@Kingston.ac.uk La detección, seguimiento y reconocimiento de actividades humanas en visión por computador pueden ser realizadas a partir de una cámara estática, una cámara móvil o un sistema de múltiples cámaras [3] [4]. Utilizar una cámara estática es la forma más sencilla de obtener información, aunque con posibles inconvenientes tales como la pérdida de datos por oclusión o pérdida del objeto a seguir. Una cámara móvil puede centrar el seguimiento sobre un objeto específico, pero requiere de algoritmos más complejos y costosos. Un sistema de múltiples cámaras podría resolver problemas de oclusión, además de ampliar el campo visual, aunque con un incremento considerable de complejidad en la instalación y coordinación de varias cámaras. La detección de personas en una escena de video generalmente se realiza por dos técnicas distintas, la primera realiza un pre-procesamiento de detección de movimiento y posterior clasificación para diferenciar a las personas de los demás objetos. La segunda técnica busca directamente a las personas a través de ciertas características como formas y color. Un ejemplo de las técnicas que buscan directamente a las personas es la utilizada en [5] y en [6] que hace uso de Support vector machines (SVM) para diferenciar entre movimientos humanos y no humanos, su desventaja radica en que requieren de una base de datos y una etapa de entrenamiento preclasificación, seguido de la etapa de reconocimiento de acciones. Por otro lado, las técnicas convencionales de localización de personas utilizando pre-procesamiento de detección de movimiento pueden ser agrupadas como técnicas de Diferencias temporales, Sustracción de fondo y Flujo Óptico. Diferencias Temporales se adapta con facilidad a cambios en el ambiente, pero tiene como inconveniente la tendencia a obtener solo una pequeña parte del objeto en movimiento. Por el contrario, al utilizar sustracción de fondo se puede representar de mejor manera el objeto en movimiento, pero es mucho más propenso a error ante cambios en el ambiente. Flujo óptico puede detectar movimiento de objetos a pesar de movimientos de la cámara, pero la mayoría de métodos de flujo óptico son computacionalmente muy costosos. El seguimiento determina donde se encuentra una persona a lo largo de la secuencia de imágenes de un video, esto es, determina la correspondencia de la persona en una imagen con respecto a la persona detectada en las siguientes imágenes del video. Para realizar el seguimiento existen varios métodos organizados en 4 grupos [2]: Seguimiento basado en regiones, basado en contornos activos, basado en características y basado en modelos. El seguimiento basado en regiones determina la variación de las regiones durante la escena, esta técnica es computacionalmente compleja dado que se realiza el registro de una ventana en una imagen y de todas las posibles ventanas en las siguientes imágenes. El seguimiento basado en contornos activos representa objetos de una forma más simple, aunque este método es sensible a la inicialización. El seguimiento basado en características extrae ciertos patrones del objeto, con el fin de localizarlos en las siguientes imágenes. La ventaja de este método es la minimización de datos a utilizar en la búsqueda por coincidencias en las imágenes. Por otro lado, el seguimiento basado en modelos requiere el desarrollo de un modelo del objeto a seguir, este método es bueno para seguir objetos, incluso bajo oclusión, aunque su costo computacional es elevado. El entendimiento de actividades se centra en analizar y reconocer ciertos patrones del movimiento humano con el fin de determinar las acciones que se están efectuando. Entre las principales técnicas de entendimiento se pueden nombrar a las descritas en [2] como son: DTW, FSM, HMM, etc. Dynamic time warping (DTW) es una técnica dinámica de emparejamiento basada en plantillas que tiene como ventaja ser simple y robusta, en [8] se utiliza DTW para emparejar una secuencia de prueba con un modelo determinístico para reconocer gestos humanos. Finite-state machine (FSM) consiste en una función de cambio de estados, donde los estados permiten decidir el emparejamiento entre las secuencias de prueba y las de referencia. Hidden Markov models (HMMs) consiste en una máquina de estados estocásticos que permite un análisis sofisticado de datos variables en el tiempo y se conforma de dos estados que son: entrenamiento y clasificación. En [9] se propone un método basado en HMM para representar y reconocer el andar humano. Primero se obtiene un conjunto de imágenes claves durante un ciclo de caminado, luego se toma un grupo de características y se produce un vector de medición que se utiliza para entrenar al HMM. En esta propuesta se emplean técnicas de detección y seguimiento de puntos característicos de personas que dan como resultado los datos necesarios para que en un futuro trabajo se puedan realizar la interpretación y análisis de actividades humanas. Tomado las ventajas de las técnicas de diferencias temporales y sustracción de fondo, se ha creado un algoritmo que provee un buen resultado en la obtención del objeto en movimiento y es adaptable a los cambios del ambiente. Se extraen además, dos grupos de puntos de interés, el primero se define como los puntos extremos del cuerpo humano (cabeza y extremidades), junto con el centroide. El segundo grupo son los puntos óptimos para realizar el seguimiento. Adicional a esto, se realiza el seguimiento de los puntos de interés, tanto de los puntos óptimos como de los puntos extremos aplicando el algoritmo de seguimiento basado en características. Al final del procedimiento se obtiene un listado que representa el desplazamiento de ambos grupos de puntos a través del tiempo, el cual podrá servir para realizar la interpretación de las acciones humanas en un futuro trabajo. 2. Detección de personas El objetivo de esta etapa es identificar cambios en las imágenes y representarlas por medio de siluetas. Los cambios detectados corresponden a objetos en movimiento. Cada nueva imagen del video es analizada para clasificar los píxeles que representan al fondo (background) o a un objeto en movimiento. El fondo contiene solamente objetos estáticos, puede ser actualizado cuando un nuevo objeto ingresa a la escena y permanece estático por un período de tiempo predefinido, en este caso, el objeto es añadido a la imagen de fondo. Para determinar los objetos en movimiento se realiza la diferencia absoluta entre la imagen de fondo y la nueva imagen del video. Las regiones resultantes son consideradas como objetos en movimiento y finalmente, representadas por medio de siluetas. 2.1. Generación del fondo En una secuencia de video, la primera imagen (frame) es tomada como imagen de fondo, ese fondo representa una escena que contiene objetos estáticos. Luego, una imagen resultado es obtenida aplicando un proceso de sustracción de fondo. El fondo y los siguientes frames consecutivos son considerados para generar dicha imagen. Los píxeles que produzcan un resultado mayor a un umbral establecido, se clasifican como píxeles en movimiento, tal como lo muestra la ecuación (1) Donde I Actt representa a la imagen actual, I Back es la imagen de fondo, (r, c) simboliza todos los píxeles de la imagen y Um representa el umbral de movimiento. (1) I Actt (r,c) – I Back (r,c) > Um 2.2. Actualización del fondo Con el paso del tiempo, la escena inicial de fondo puede variar, ya sea por cambios de iluminación o por objetos que han sido extraídos o introducidos en dicha escena. Por tal motivo, se debe considerar la actualización constante de la imagen de fondo. Para realizar dicha actualización se han implementado dos métodos. El primero actualiza cada pixel de la imagen de forma independientemente, mientras que el segundo actualiza toda la imagen de fondo. El método de actualización individual (Diagrama 1) utiliza diferencias temporales y consiste en identificar a los píxeles que representan a objetos que han dejado de moverse por un período de tiempo suficiente como para considerarlos objetos estáticos y luego añadirlos gradualmente a la imagen de fondo. Para esto se realiza constantemente una resta entre cada par de imágenes consecutivas (I Act t , I Act t + 1 ) y aquellos píxeles que no sufran cambios son almacenados en un acumulador, Acum (r,c). Cuando el acumulador de un determinado pixel alcanza el valor que representa el tiempo necesario para ser considerado parte de un objeto estático, se añade ese pixel a la imagen de fondo, I Back. Por otro lado, si esto no ocurre el acumulador es inicializado a cero. Figura 1, Fila superior: Secuencia de imágenes capturadas por la cámara, donde una persona ingresa a la escena. Fila intermedia: Imágenes de fondo correspondientes con las imágenes de la fila superior. Fila inferior: Imágenes de fondo después de que la persona permanece inmóvil en la escena. El método de actualización global (Diagrama 2) toma las ventajas del método de fondo y tiene como objeto la actualización de la imagen cuando ocurre algún cambio de luz o existen pequeños movimientos en píxeles aún no actualizados. Para esto, se determina el número de píxeles que cambian entre cada par de imágenes consecutivas (I Act t , I Act t + 1 ) y si esta cantidad no supera un número suficiente como para representar un cambio significativo dentro de la escena, se reemplaza la imagen de fondo por la última imagen adquirida (I Act t + 1). I Back I Act I Back I Act t I Act I Act t t+1 t+1 I Mov - t I Dif t, t+1 I Dif (r,c) > Um Acum > n acum++ IDif (r,c) Acum (r,c) > t IDif t, t+1 I Dif (r,c) > Um Acum (r,c) ++ Diagrama 2: Método de actualización global Diagrama 1: Método de actualización indivudual En la figura 1 se puede apreciar como el método individual actualizada la imagen de fondo al añadir objetos que permanecen estáticos o eliminar los que ya han salido de escena. 2.3. Filtro de personas Una vez que se identifica a los píxeles que representan movimiento en la escena, procedemos a realizar un proceso de erosión y dilatación con el objeto de eliminar píxeles aislados (representando ruido) y de corregir errores tales como huecos o separaciones en los objetos en movimiento. Luego, agrupamos los píxeles que representan el movimiento de objetos independientes mediante la búsqueda de blobs, utilizando la librería CvBlobs. Esta librería obtiene un grupo de blobs asociando píxeles vecinos que tengan un valor de intensidad similar. Debido a que se desea representar solo a personas en movimiento, aplicamos un filtro de tamaño para eliminar objetos que sean demasiado grandes o pequeños, como aquellos originados por ruidos o movimientos de la cámara. En la figura 2 se aprecia el resultado del filtro aplicado. Figura 2, Sup izq: Imagen de Fondo, Sup der: Imagen actual, Inf izq: Imagen de diferencia, Inf der: blob de objeto en movimiento. 3. Extracción de puntos de interés silueta obtenida y se estima el promedio en cada eje, tal como se muestra en la siguiente ecuación: (2) Donde (Xc, Yc ) es la coordenada del centroide, Nb es el número de píxeles en la silueta y ( Xi, Yi) es cada pixel de la silueta. Los siguientes puntos a obtener son los puntos que representan a los extremos de las personas, los cuales generalmente son: la cabeza, los pies y los brazos. Esta información es de gran importancia al momento de interpretar la acción que se ejecuta. Para hallar los puntos extremos se realiza una gráfica de la distancia existente entre el centroide y cada uno de los puntos que conforman la silueta, tal como se muestra en la Figura 3 (inf). Posteriormente, se suaviza la gráfica por medio del filtro de savgol[12] y se hallan los máximos locales, los cuales representan aquellos puntos de mayor distancia al centroide. En el caso particular de las personas, estos puntos suelen ser la cabeza, los pies y los brazos. El número de puntos a obtener dependerá de la suavización que se realice, mientras más se suavise la función de distancia, menos puntos se obtendrán, siendo por lo general los puntos de la cabeza y pies los que permanezcan. La extracción de puntos de interés tiene como meta la obtención de puntos representativos de una persona y de puntos que permitan realizar un seguimiento con facilidad. Para obtener los puntos representativos de una persona se utiliza la técnica de Esqueletonización [10] que busca puntos extremos del objeto en movimiento y los une con el centroide. El segundo grupo de puntos de interés viene dado por aquellos puntos que facilitan el proceso de seguimiento, para esto se utiliza el algoritmo descrito por TomasiKanade [11] que consiste en determinar los puntos que optimizan la ecuación de seguimiento a utilizar. 3.1. Esqueletonización La esqueletonización representa objetos por medio de líneas rectas unidas al centro de la figura, esta representación permite realizar un análisis simple de las acciones que se efectúan, ya que presenta un modelo sencillo de los objetos móviles. El primer punto que se determina en la esqueletonización es el centroide, para esto se necesita obtener la silueta de la persona en movimiento, que no es más que el borde del blob que representa al objeto de interés. Para calcular la coordenada del centroide se recorre la Figura 3, Sup izq: Blob que representa a la persona en movimiento, Sup der: Silueta de la persona en movimiento junto al esqueleto que lo representa, Inf: Función de distancia y máximos locales. 3.2. Puntos óptimos En algunas ocasiones los puntos extremos no son fáciles de seguir o no se encuentran en dos imágenes consecutivas, por lo que se debe, además, extraer otro grupo de puntos que ayuden a realizar un seguimiento con continuidad en todos los frames del video. Dado que el seguimiento se realiza por medio del algoritmo de Lucas-Kanade [7] se ha utilizado [11] para obtener los puntos óptimos para el seguimiento. En la figura 4 se pueden apreciar los puntos óptimos obtenidos mediante [11] a través de la librería KLT. Figura 5, Seguimiento de puntos óptimos 5. Resultados experimentales Se realizaron varias pruebas en exteriores con una sola persona en movimiento y con un grupo de varias personas. A continuación se muestra una secuencia de 9 imágenes con una sola persona en la escena, se muestra también el resultado del procedimiento aplicado para detectar y seguir el movimiento. Figura 4, Puntos óptimos para realizar seguimiento 4. Seguimiento El seguimiento permite describir el movimiento de los puntos de interés con el paso del tiempo. Para este módulo se utiliza la librería KLT que permite realizar seguimiento por medio de Lucas-Kanade [7]. LucasKanade realiza una aproximación del desplazamiento que tiene una pequeña ventana entre dos imágenes consecutivas. La estimación del desplazamiento se basa en la minimización del error obtenido con dicha estimación. Para estimar dicho valor se utiliza la siguiente ecuación: Figura 6, Imagen de fondo inicial de la secuencia (3) Donde I y J son las imágenes, d representa la ventana de desplazamiento y w la función de peso (weighting function) que normalmente es inicializada en 1. En la figura 5 se muestra el seguimiento realizado a los puntos óptimos a partir de la imagen anterior. Figura 7, Secuencia de una persona en movimiento objeto, lo cual impide llevar a cabo el seguimiento de distintas personas. Como se muestra en la figura 11, inicialmente se tiene una persona, la cual se encuentra representada con color amarillo. Cuando una segunda persona entra en escena y se solapa con la primera persona se las reconoce como un solo objeto en movimiento y finalmente cuando el problema de oclusión no extiste, es decir, las personas se distancian se vuelven a reconocer dos personas en movimiento, pero no se sabe cuál era la que estaba inicialmente en la escena y cuál es la que ingresó después, por tal razón, la persona que inicialmente estaba graficada en amarillo ahora aparece en rojo. Figura 8, Secuencia de imágenes que representan los objetos en movimientos Figura 9, Secuencia de imágenes que representan el esqueleto de la persona en movimiento Figura 11, Secuencia de Imágenes en la que se encuentran más de una persona en escena. Para reconocer y seguir acertadamente a grupos de personas en una misma escena, se plantea implementar a futuro un módulo de reconocimiento que permita identificar circunstancias en donde dos o más personas se encuentran y/o se mantienen como un grupo y no se los enmarque como un solo objeto en movimiento, sino como un grupo de objetos en movimiento a pesar de haber sido reconocidos dentro un solo blob. De esta forma se resolvería el problema de oclusión. 7. Agradecimientos Figura 10, Secuencia que representa el seguimiento de todos los puntos de interés. 6. Conclusiones El procedimiento aplicado permite obtener una serie de puntos y darles seguimiento a través del tiempo. No se determina la relación del seguimiento hacia los objetos, por lo que actualmente puede ser aplicado de manera efectiva solo cuando existe una persona en la escena. Para los casos en que dos o más personas se encuentren en la misma escena el algoritmo extrae y sigue puntos representativos de dichas personas, pero no realiza el seguimiento de los puntos como un conjunto que pertenece a un mismo Este trabajo ha sido financiado por el CICYT-ESPOL bajo el proyecto PRESO-VISION y parcialmente apoyado por el proyecto VLIR, bajo el componente 8. 8. Referencias [1] D.M. Gavrila, "The Visual Analysis of Human Movement: A Survey" Computer Vision and Image Understanding, vol. 73, no. 1, pp. 82-98, 1999 [2] W. Hu et al., "A Survey on Visual Surveillance of Object Motion and Behaviors" IEEE Trans. Systems, Man, and Cybernetics, Part C: Applications and Reviews, vol. 34, no. 3, 2004, pp. 334–352. [3] P. Remagnino, A.I. Shihab, G.A. Jones, "Distributed Intelligence for Multi-Camera Visual Surveillance" in 'Pattern Recognition', Special Issue on Agent-based Computer Vision 37(4) Elsevier, April, pp. 675-689. ISBN/ISSN 0031-3203, 2004 [8] A. F. Bobick and A. D.Wilson, “A state-based technique to the representation and recognition of gesture,” IEEE Trans. Pattern Anal. Machine Intell., vol. 19, pp. 1325– 1337, Dec. 1997. [4] P. Remagnino, G.A. Jones, N. Paragios, C.S. Regazzoni, "Video-Based Surveillance Systems - Computer Vision and Distributed Processing" Kluwer Academic Publishers, ISBN/ISSN 0-7923-7632-3, 2002 [9] A. Kale, A. Rajagopalan, N. Cuntoor, and V. Kruger, “Gait-based recognition of humans using continuous HMMs,” in Proc. Int. Conf. Automatic Face and Gesture Recognition, Washington, DC, pp. 336–34, 2002. [5] Navneet Dalal and Bill Triggs. “Histograms of oriented gradients for human detection”. IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pages 1063–6919, 2005 [10] H. Fujiyoshi, A. Lipton, T. Kanade, “Real-Time Human Motion Analysis by Image Skeletonization” IEICE Trans. Inf. & Syst., vol.E87-D, No.1, pp.113–120, 2004. [6] H. Sidenbladh. “Detecting human motion with support vector machines”. Proceedings of the 17th International Conference on Pattern Recognition, 2:188–191, 2004 [7] Bruce D. Lucas and Takeo Kanade, “An Iterative Image Registration Technique with an Application to Stereo Vision” International Joint Conference on Artificial Intelligence, pages 674-679, 1981. [11] Carlo Tomasi and Takeo Kanade. "Detection and tracking of point features". Technical Report. CMU-CS-91132, Carnegie Mellon University, April 1991. [12] W. Press, S. Teukolsky, B. Flannery and W. Vetterling "Numerical Recipes in C++ - The Art of Scientific Computing". Second Edition, Cambridge University Press, April 1991. pp 655-660. ISBN 0521750334, 2003