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
[email protected]
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