Modelos Probabil´ ısticos para el Seguimiento de Objetos en V´ ıdeo: AlgoritmosyEvaluaci´on por Omar Guti´ errez Navarro Asesor: Dr. Salvador Ruiz Correa Trabajo de tesis presentado en cumplimiento parcial para obtener el grado de Maestr´ ıa en Ciencias de la Computaci´ on y Matem´ aticas Industriales por el Centro de Investigaci´ on en Matem´ aticas 25 de noviembre de 2010
129
Embed
Modelos Probabilísticos para el Seguimiento de Objetos en ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Modelos Probabilısticos para el
Seguimiento de Objetos en Vıdeo:
Algoritmos y Evaluacion
por
Omar Gutierrez Navarro
Asesor: Dr. Salvador Ruiz Correa
Trabajo de tesis presentado en cumplimiento parcial para
obtener el grado de Maestrıa en Ciencias de la Computacion
B. Propiedades de Independencia Condicional para HMM 112
Bibliografıa 114
Indice de figuras
1.1. Ejemplo del seguimiento de objetos. Se muestran algunos cuadrosde una secuencia donde se hace el seguimiento de una mano. Laposicion predicha por el algoritmo de seguimiento esta acotada poruna elipse verde. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Imagen representativa de un escenario para el seguimiento de objetos. 2
1.3. Resumen conceptual del procedimiento hecho en este trabajo de tesis. 5
2.1. Un modelo grafico que representa la descomposicion 2.1 . . . . . . . 8
2.2. Ejemplos de las configuraciones posibles del camino entre 2 conjun-tos de nodos a traves de un nodo C. a) head-to-tail, b) tail-to-taily c) head-to-head . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3. Ejemplo del concepto de separacion-D. Los nodos sombreados perte-necen al conjunto observado. a) El camino del nodo a hacia el nodob no esta bloqueado. b) En este caso el camino sı esta bloqueado ypor lo tanto se cumple a ⊥⊥ b | f . . . . . . . . . . . . . . . . . . . . 11
2.4. El teorema de Bayes ejemplificado con Grafos . . . . . . . . . . . . 12
2.5. Un grafo no-dirigido para ejemplificar la inferencia sobre una cadena 12
2.6. Ilustracion del paso de mensajes en una cadena . . . . . . . . . . . 15
3.2. Ejemplo de Filtro de Kalman utilizado para mejorar el desempenodel algoritmo de seguimiento MeanShift . . . . . . . . . . . . . . . . 24
4.1. Si una variable aleatoria uniformemente distribuida z es transfor-mada usando y = h−1(z), donde h esta definida de acuerdo a laecuacion (4.3(, entonces y tendra la distribucion p(y). En la imagense muestran las ecuaciones necesarias para este muestreo en el casode ser p(y) una distribucion exponencial . . . . . . . . . . . . . . . 29
5.1. El vector A corresponde al borde de magnitud S y orientacion θcalculado en cierto pıxel. Su contribucion a cada bin, en este casoa Θ2 y Θ3 se calcula por medio de interpolacion bilineal. . . . . . . 43
6.1. Algunos cuadros de la secuencia “Ajedrez” . . . . . . . . . . . . . . 56
6.2. Errores de seguimiento en la secuencia “Ajedrez” . . . . . . . . . . 57
6.3. Errores de traslape en la secuencia “Ajedrez” . . . . . . . . . . . . . 57
6.4. Algunos cuadros de la secuencia “Disco” . . . . . . . . . . . . . . . 58
vi
Indice de Figuras vii
6.5. Errores de seguimiento en la secuencia “Disco” . . . . . . . . . . . . 58
6.6. Errores de traslape en la secuencia “Disco” . . . . . . . . . . . . . . 59
6.7. Algunos cuadros de la secuencia “Girl1” . . . . . . . . . . . . . . . 60
6.8. Errores de seguimiento en la secuencia “Girl1” . . . . . . . . . . . . 60
6.9. Errores de traslape en la secuencia “Girl1” . . . . . . . . . . . . . . 60
6.10. Algunos cuadros de la secuencia “Girl2” . . . . . . . . . . . . . . . 61
6.11. Errores de seguimiento en la secuencia “Girl2” . . . . . . . . . . . . 62
6.12. Errores de traslape en la secuencia “Girl2” . . . . . . . . . . . . . . 62
6.13. Algunos cuadros de la secuencia “Girl3” . . . . . . . . . . . . . . . 63
6.14. Errores de seguimiento en la secuencia “Girl3” . . . . . . . . . . . . 63
6.15. Errores de traslape en la secuencia “Girl3” . . . . . . . . . . . . . . 64
6.16. Algunos cuadros de la secuencia “Motinas Emilio” . . . . . . . . . . 64
6.17. Errores de seguimiento en la secuencia “Motinas Emilio” . . . . . . 65
6.18. Errores de traslape en la secuencia “Motinas Emilio” . . . . . . . . 65
6.19. Algunos cuadros de la secuencia “Motinas Multi-Face” . . . . . . . 66
6.20. Errores de seguimiento en la secuencia “Motinas Multi-face” . . . . 66
6.21. Errores de traslape en la secuencia “Motinas Multi-Face” . . . . . . 67
6.22. Algunos cuadros de la secuencia “Motinas Toni” . . . . . . . . . . . 67
6.23. Errores de seguimiento en la secuencia “Motinas Toni” . . . . . . . 68
6.24. Errores de traslape en la secuencia “Motinas Toni” . . . . . . . . . 68
6.25. Algunos cuadros de la secuencia “Pelea” . . . . . . . . . . . . . . . 69
6.26. Errores de seguimiento en la secuencia “Pelea” . . . . . . . . . . . . 69
6.27. Errores de traslape en la secuencia “Pelea” . . . . . . . . . . . . . . 70
6.28. Algunos cuadros de la secuencia “Floor” . . . . . . . . . . . . . . . 70
6.29. Errores de seguimiento en la secuencia “Floor” . . . . . . . . . . . . 71
6.30. Errores de traslape en la secuencia “Floor” . . . . . . . . . . . . . . 71
6.31. Algunos cuadros de la secuencia “Shop” . . . . . . . . . . . . . . . 72
6.32. Errores de seguimiento en la secuencia “Shop” . . . . . . . . . . . . 72
6.33. Errores de traslape en la secuencia “Shop” . . . . . . . . . . . . . . 72
6.34. Algunos cuadros de la secuencia “Chair” . . . . . . . . . . . . . . . 73
6.35. Errores de seguimiento en la secuencia “Chair” . . . . . . . . . . . . 74
6.36. Errores de traslape en la secuencia “Chair” . . . . . . . . . . . . . . 74
6.37. Algunos cuadros de la secuencia “Camaleon” . . . . . . . . . . . . . 75
6.38. Errores de seguimiento en la secuencia “Camaleon” . . . . . . . . . 75
6.39. Errores de traslape en la secuencia “Camaleon” . . . . . . . . . . . 75
6.40. Algunos cuadros de la secuencia “Carrera” . . . . . . . . . . . . . . 76
6.41. Errores de seguimiento en la secuencia “Carrera” . . . . . . . . . . 77
6.42. Errores de traslape en la secuencia “Carrera” . . . . . . . . . . . . . 77
6.43. Algunos cuadros de la secuencia “Ladron” . . . . . . . . . . . . . . 78
6.44. Errores de seguimiento en la secuencia “Ladron” . . . . . . . . . . . 78
6.45. Errores de traslape en la secuencia “Ladron” . . . . . . . . . . . . . 79
6.46. Algunos cuadros de la secuencia “Hide” . . . . . . . . . . . . . . . . 79
6.47. Errores de seguimiento en la secuencia “Hide” . . . . . . . . . . . . 80
6.48. Errores de traslape en la secuencia “Hide” . . . . . . . . . . . . . . 80
Indice de Figuras viii
6.49. Algunos cuadros de la secuencia “Box” . . . . . . . . . . . . . . . . 81
6.50. Errores de seguimiento en la secuencia “Box” . . . . . . . . . . . . 82
6.51. Errores de traslape en la secuencia “Box” . . . . . . . . . . . . . . . 82
6.52. Algunos cuadros de la secuencia “Smoke” . . . . . . . . . . . . . . . 83
6.53. Errores de seguimiento en la secuencia “Smoke” . . . . . . . . . . . 83
6.54. Errores de traslape en la secuencia “Smoke” . . . . . . . . . . . . . 83
6.55. Algunos cuadros de la secuencia “Smoke Car” . . . . . . . . . . . . 84
6.56. Errores de seguimiento en la secuencia “Smoke Car” . . . . . . . . . 85
6.57. Errores de traslape en la secuencia “Smoke Car” . . . . . . . . . . . 85
6.58. Algunos cuadros de la secuencia “Street” . . . . . . . . . . . . . . . 86
6.59. Errores de seguimiento en la secuencia “street” . . . . . . . . . . . . 86
6.60. Errores de traslape en la secuencia “Street” . . . . . . . . . . . . . 86
6.61. Errores de seguimiento en la secuencia “Girl1” . . . . . . . . . . . . 88
6.62. Errores de traslape en la secuencia “Girl1” . . . . . . . . . . . . . . 89
6.63. Errores de seguimiento en la secuencia “Motinas Toni” . . . . . . . 90
6.64. Errores de traslape en la secuencia “Motinas Toni” . . . . . . . . . 90
6.65. Errores de seguimiento en la secuencia “Hide” . . . . . . . . . . . . 91
6.66. Errores de traslape en la secuencia “Hide” . . . . . . . . . . . . . . 91
6.67. Algunos cuadros de la secuencia “Hide” mientras se evalua el desem-peno del algoritmo FPC. El ovalo azul indica la prediccion del al-goritmo y el circulo rojo su centro. Los cırculos verdes representanel centro de la posicion de las partıculas. . . . . . . . . . . . . . . . 93
6.68. Desempeno del algoritmo Camshift en la secuencia de video “Girl1”.A) Imagen en escala de grises del objetivo a seguir, El valor de cadapixel depende de la intensidad Hue correspondiente. B) De la mismamanera se aprecian algunos cuadros de la secuencia, su valor huey sus colores reales indicando con una elipse amarilla la predicciondel algoritmo, en verde la verdadera posicion del objetivo segun elarchivo estandar de oro correspondiente. . . . . . . . . . . . . . . . 96
6.69. Experimento con la diferencia entre Vector Promedio y Objetivo . . 98
6.70. Experimento con la diferencia entre Vector Promedio y Objetivo . . 99
A.1. a) Ejemplo sencillo de un grafo dirigido. b) ejemplo de un grafo nodirigido. Los Nodos V se muestran en verde y sus vertices E en azul. 106
A.2. Ejemplo de independencia condicional en un grafo no dirigido. Cual-quier camino de un nodo en F hacia G pasa a traves de un nodo enH , por lo tanto se cumple la propiedad de independencia condicio-nal F ⊥⊥ G | H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
A.3. Cadena de Markov de primer orden. . . . . . . . . . . . . . . . . . . 109
A.4. Modelo grafico dirigido de un Modelo escondido de Markov. . . . . 110
6.1. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Ajedrez” . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Disco” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.3. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Girl 1” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.4. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Girl 2” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.5. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Girl 3” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.6. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Motinas Emilio” . . . . . . . . . . . . . . . . . . . . . . 64
6.7. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Motinas Multi-Face” . . . . . . . . . . . . . . . . . . . . 66
6.8. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Motinas Toni” . . . . . . . . . . . . . . . . . . . . . . . 67
6.9. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Pelea” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.10. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Floor” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.11. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Shop” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.12. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Chair” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.13. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “‘Camaleon” . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.14. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Carrera” . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.15. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Ladron” . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.16. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Hide” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.17. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Box” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
ix
Indice de Tablas x
6.18. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Smoke” . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.19. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Smoke Car” . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.20. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Street” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.21. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Girl1” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.22. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Motinas Toni” . . . . . . . . . . . . . . . . . . . . . . . 90
6.23. Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Hide” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.24. Promedio de los cuadros por segundo obtenido por los algoritmosde seguimiento en la secuencia “Carrera” . . . . . . . . . . . . . . . 100
Dedicado a Ana Lucia, Mariana Aylin y Victor Manuel.
xi
Capıtulo 1
Introduccion
El seguimiento de objetos es el proceso de localizar un objeto en movimiento a
traves del tiempo utilizando una camara de vıdeo. En cada cuadro de la secuencia
de video el objetivo es predecir la posicion del objeto (Figura 1.1).
Figura 1.1: Ejemplo del seguimiento de objetos. Se muestran algunos cuadrosde una secuencia donde se hace el seguimiento de una mano. La posicion predicha
por el algoritmo de seguimiento esta acotada por una elipse verde.
El objetivo es ubicar al objecto de la manera mas exacta posible a pesar de varios
factores en contra como pueden ser la mala iluminacion y que el objeto este parcial
o totalmente ocluido durante varios cuadros de la secuencia de video. Otras situa-
ciones que pueden afectar el seguimiento de un objeto pueden ser que este presente
movimientos rapidos y repentinos en cuadros consecutivos del video ası como el
poder identificarlo y localizarlo entre varios objetos similares. Un ejemplo comun
en aplicaciones de vision computacional es el de encontrar y localizar el rostro de
una persona en particular dentro de una multitud.
1
Capitulo 1. Introduccion 2
Algoritmos de seguimiento de vıdeo han sido desarrollados en las ultimas dos deca-
das. Sin embargo, la complejidad del problema es tal, que los algoritmos propuestos
distan de ser robustos en condiciones normales.
Las camaras de vıdeo proporcionan informacion sobre el entorno a traves de un
arreglo de pıxeles, numeros que pueden representar intensidades de colores como
en el caso de la paleta RGB, que representan la cantidad, color de luz y demas fac-
tores presentes en determinado tiempo. Esta informacion puede ser util siempre y
cuando sea posible definir a un objeto en una escena. Sin una descripcion adecuada
y precisa del objeto a seguir no es posible buscarlo utilizando una computadora.
Este es precisamente uno de los problemas fundamentales en el seguimiento de
video, el de definir cuantitativamente como es el objeto a seguir. No existe una
definicion unica para cada objeto lo cual nos puede conducir al error y general-
mente los objetivos son descritos en base a alguna caracterıstica particular como
podran ser el color, textura, contorno entre otras. Por ejemplo veamos la figura 1.2.
Figura 1.2: Imagen representativa de un escenario para el seguimiento deobjetos.
Si nuestra meta fuera hacer el seguimiento de la pelota, una caracterıstica que nos
permite identificarla puede ser el color, tan solo haciendo una busqueda por pıxeles
de color naranja y promediando sus posiciones podrıamos ubicarla en la imagen.
Otras aproximaciones podrıan ser buscarla por su forma, su contorno circular es
distinguible en este escenario y puede localizarse buscando en que posicion de su
imagen de bordes se adapta mejor un elipsoide.
Nuestra definicion del objeto parece ser exitosa en este caso pero ahora suponga-
mos que buscamos localizar al gato en la imagen. La busqueda por color podrıa no
ser tan exacta si notamos que el suelo presenta un tono parecido, nuestro descriptor
debe tener una buena resolucion para poder distinguir entre las dos tonalidades lo
Capitulo 1. Introduccion 3
cual implicarıa un costo extra en memoria. Otra opcion seria el definir su contorno
en base a un elipsoide pero este tambien podrıa ajustarse a otros objetos indu-
ciendo al error. Nuestro problema se agravarıa aun mas si entran objetos nuevos
a la escena que oculten a nuestro objetivo, o incluso otro gato con caracterısticas
similares.
El problema ya no es tan sencillo de resolver pues ahora nuestra definicion de obje-
to no excluye al objeto de manera univoca del resto del escenario. Esto representa
nuestra primer problematica en el seguimiento de objetos, buscar una definicion
del objeto que nos permita distinguirlo del resto de la escena.
Las imagenes nos pueden presentar escenarios muy complejos, llenos de detalles e
incluso con movimientos erraticos en el caso de una secuencia de video.
Es necesario recurrir a metodos mas eficientes para hacer la busqueda y uno de
los objetivos en este trabajo de tesis es analizar las bases de los algoritmos de
seguimiento en el estado del arte. Existen muchos algoritmos con diferentes pro-
puestas y acercamientos al problema, los hay que hacen la busqueda utilizando un
solo rasgo para caracterizar al objeto ası como aquellos que lo hacen con varias
caracterısticas simultaneamente.
Para este trabajo nos enfocamos en algoritmos en el estado del arte basados en
metodos probabilısticos, que buscan a un solo objetivo y utilizan un solo rasgo
para describirlo, especialmente en variaciones del filtro de partıculas [1] como son
los basados en rasgos de color [2], textura [3], movimiento [4] y el filtro hıbrido de
[5]. Tambien se trabajaron con otras alternativas bien conocidas como CamShift
[6] el cual esta basado en un metodo de optimizacion y otro algoritmo con un muy
buen desempeno basado en aprendizaje Bayesiano [7].
Para conocer los detalles de estos algoritmos, ası como las bases de aquellos en el
estado del arte, se hace una breve revision de la teorıa que los sustenta.
Los Modelos Graficos, ver Apendice A, han probado ser una herramienta poderosa
para el desarrollo de modelos estadısticos en problemas de vision computacional.
Estos modelos nos permiten evidenciar y aprovechar relaciones de independencia
condicional entre variables aleatorias. Si modelamos el problema de seguimiento
como un Sistema Dinamico Lineal, asumiendo que el error sobre el movimiento
sigue una distribucion Gaussiana, podemos resolverlo eficientemente con un al-
goritmo de paso de mensajes, mejor conocido en la literatura como el filtro de
Kalman. Un metodo mas general, no sujeto a restricciones Gaussianas y eficiente
computacionalmente puede ser logrado utilizando metodos de muestreo que nos
permitiran hacer inferencia aproximada cuando la exacta sea intratable. Es el filtro
Capitulo 1. Introduccion 4
de partıculas una aplicacion directa de estos metodos y veremos su efectividad en
el problema de seguimiento.
La aportacion de este trabajo de tesis consiste en una evaluacion detallada de los
algoritmos de seguimiento mencionados previamente, el filtro de partıculas con los
rasgos de color, textura y movimiento, ası como el filtro hıbrido, camshift y el al-
goritmo basado en aprendizaje bayesiano. Pretende conocer no solo su desempeno
sino tambien las causas que influyen en sus errores particularmente el descriptor
que utilizan para modelar al objetivo ası como su metodo de busqueda. El desem-
peno de los algoritmos de seguimiento puede ser difıcil de comparar principalmente
por dos razones, complejidad de los datos y complejidad del sistema.
Primero se necesita una base de videos de referencia que cuenten con un estandar
de oro o ”ground-truth”. El estandar de oro se refiere a un archivo con la posi-
cion verdadera de los objetos a seguir en cada imagen del video. Esta solucion
sera utilizada para evaluar la calidad de los algoritmos de seguimiento. Existen
varias bases de video con estandar de oro disponibles, en este trabajo se utilizaron
algunos videos obtenidos de [8],[9] y [10]. Tambien se trabajo con varios videos
disponibles en linea, que ejemplifican situaciones no provistas en los demas videos
pero cuentan con la desventaja de no tener estandar de oro disponible, por lo cual
estos fueron construidos localizando los objetos de interes cuadro por cuadro.
Los algoritmos de seguimiento son sistemas complejos que pueden estar compues-
tos por modelos de apariencia, algoritmos de optimizacion, restricciones espacio-
temporales, etc. Generalmente se ignora la composicion interna de los algoritmos
de seguimiento, considerandolos cajas negras, y se evalua su resultado al dar como
entrada solo un video y datos del objeto a seguir.
Los algoritmos fueron ejecutados en 20 secuencias de video, en el caso de los al-
goritmos con elementos aleatorios se realizaron 100 simulaciones y sus resultados
promediados.
En cada simulacion se evaluaron diversas metricas, recopiladas en [11], que utili-
zan la informacion del estandar de oro para evaluar los algoritmos. Ninguna de
las metricas es concluyente por si sola, pues unas nos indican que tan cerca estuvo
la prediccion de la posicion verdadera, otra su efectividad a lo largo del video o
que tan invariantes resultan a los cambios de dimension presentes en los videos
ası como la ventaja de conocer el instante en que se pierde al objetivo.
Los resultados de los experimentos son presentados con detalle y a partir de ellos
se analizan las ventajas y debilidades de las diferentes propuestas.
Este trabajo nos permite comprender el surgimiento de metodos de seguimiento en
Capitulo 1. Introduccion 5
el estado del arte, a partir del analisis de los algoritmos evaluados, especialmente
de aquellos basados en el seguimiento de multiples caracterısticas y en metodos de
inferencia no-parametricos basados en paso recursivos de mensajes sobre modelos
graficos, los cuales seran motivo de trabajo futuro. Las ideas principales por las
cuales se guio este trabajo de tesis se muestran en el siguiente diagrama.
La tesis esta organizada como sigue: comenzaremos con el estudio de la teorıa
Figura 1.3: Resumen conceptual del procedimiento hecho en este trabajo detesis.
en el Capitulo 2 viendo como modelar problemas que evolucionan con el tiempo
en el Capitulo 2 hablando sobre Sistemas Dinamicos Lineales y su aplicacion al
problema de seguimiento en el filtro de Kalman. Continuaremos con los Metodos
de muestreo en el Capitulo 3 donde tambien se muestra su aplicacion para la de-
duccion del Filtro de Partıculas. En el Capitulo 4 se examinan los algoritmos a
Capitulo 1. Introduccion 6
evaluar. La metodologıa de la experimentacion, los resultados obtenidos y la dis-
cusion de estos son el objeto del capitulo 5. Finalmente se daran las conclusiones
y se planteara el trabajo futuro en el Capitulo 6.
Capıtulo 2
Modelos Graficos
Una forma de plantear el problema de movimiento es en funcion de variables
aleatorias que representen tanto las estimaciones ruidosas ası como las posiciones
verdaderas del objeto a seguir. Los modelos graficos probabilısticos proveen un
marco flexible para atacar problemas utilizando variables aleatorias, lo cual nos
es util en el problema de seguimiento. Para esto utilizan la que es quiza su ca-
racterıstica mas notable, el descomponer familias de distribuciones conjuntas en
una serie de interacciones locales entre un pequeno grupo de variables aleatorias,
llamados pasos de mensajes. Como veremos mas adelante, por medio del ejemplo
del filtro de Kalman 3 , esto nos permite desarrollar algoritmos de inferencia que
implican un gran ahorro en costo computacional.
Los modelos graficos tienen aplicacion en diferentes campos del conocimiento como
son procesamiento de imagenes, inteligencia artificial, procesamiento de voz, fısica
estadıstica y por supuesto vision computacional. Entre sus principales propiedades
se encuentran:
Simplifican visualmente la estructura de un modelo probabilıstico, ademas
pueden ser usados para disenar y motivar nuevos modelos.
Permiten observar relaciones de independencia condicional entre familias de
distribuciones con tan solo inspeccionar el grafo visualmente.
Los calculos complejos que se necesitan para realizar inferencia y aprendizaje
a partir de modelos probabilısticos pueden ser expresados en terminos de ma-
nipulaciones graficas, en las cuales las relaciones matematicas son cumplidas
implıcitamente y reducen la dimension del sistema.
7
Capitulo 2. Modelos Graficos 8
La teorıa sobre modelos graficos es bastante extensa [12], [13] algunas nociones
basicas pueden ser consultadas en el Apendice A.
Veamos un sencillo ejemplo de como usar un modelo grafico dirigido para repre-
sentar distribuciones de probabilidad.
Considere una distribucion conjunta arbitraria p (A,B,C) sobre tres variables A,
B y C. Estas variables representan familias de distribuciones, lo cual es otra gran
ventaja de los modelos graficos pues nos permiten distinguir relaciones de inde-
pendencia para una gran cantidad de distribuciones.
Aplicando la regla del producto de la probabilidad tenemos
p (A,B,C) = p (C | A,B) p (A,B)
p (A,B,C) = p (C | A,B) p (B | A) p (A) (2.1)
Para representar graficamente esta relacion utilizamos primeramente un nodo por
cada variable A, B, C, y asociamos cada nodo con la distribucion condicional
correspondiente de acuerdo a 2.1. Los vertices deben salir de las variables condi-
cionales hacia las cuales la distribucion esta condicionada, es decir, las variables
condicionales seran los padres.
En el caso del primer termino de 2.1 p (C | A,B) esto corresponderıa a un grafo
donde los nodos A y B son padres de C, ver figura 2.1. De acuerdo al termino
p (B | A) un vertice se dirigira de A hacia B, mientras que el termino p (A) nos
dice que el nodo A no recibe ningun vertice, es decir no tiene padres. De mane-
Figura 2.1: Un modelo grafico que representa la descomposicion 2.1
ra formal, la distribucion conjunta definida por un grafo dirigido esta dada por el
producto, sobre todos los nodos del grafo, de todas las distribuciones condicionales
para cada nodo condicionado sobre las variables padre de dicho nodo. De manera
Capitulo 2. Modelos Graficos 9
que para un grafo con N nodos, la distribucion conjunta esta dada por
p(x) =
N∏
n=1
p(xn | pan) (2.2)
donde pan se refiere a los padres del nodo xn.
En el caso de los grafos no-dirigidos, las dependencias cuantitativas entre variables
conectadas por medio de vertices son representadas por funciones no negativas
conocidas como funciones potenciales ψ. La distribucion conjunta se escribe como
un producto de estas funciones potenciales sobre los cliques maximales [13] del
grafo1
Z
∏
C
ψC(xC) (2.3)
donde Z es una constante de normalizacion dada por Z =∑
x
∏c ψC(xC) tal que
satisfacen ψC(xC) ≥ 0.
Las funciones potenciales pueden ser interpretadas como dependencias locales o
restricciones. Sin embargo, generalmente ψf(xf ) no corresponde a la distribucion
marginal pf (xf ) debido a las interacciones con otros potenciales del grafo.
2.1. Independencia Condicional en Grafos
Una de las ventajas de los modelos graficos es que nos permiten conocer propieda-
des de independencia condicional tan solo inspeccionando visualmente un grafo.
Esto se puede hacer a traves de la separacion-d ( d-separation donde la letra d
esta en representacion de directed).
Separacion-D
Estas son algunas propiedades generales de la separacion-d para el caso de grafos
dirigidos [12] [13]. Considere un grafo dirigido en el cual A, B y C son conjuntos de
nodos arbitrarios que no tienen interseccion y la union de estos conjuntos no tiene
que ser necesariamente igual al universo. Ademas a, b y c representan a cualquier
nodo que se parte de los conjuntos A, B y C respectivamente Pretendemos saber si
existe una independencia condicional especifica, por ejemplo a ⊥⊥ b | c, es decir lavariable representada por el nodo a es independiente de b dado c, que sea evidente
Capitulo 2. Modelos Graficos 10
a)
b)
c)
Figura 2.2: Ejemplos de las configuraciones posibles del camino entre 2 con-juntos de nodos a traves de un nodo C. a) head-to-tail, b) tail-to-tail y c)
head-to-head
en el grafo.
Para ello, primero buscamos todos los caminos posibles desde cualquier nodo en
el conjunto A hacia cualquier nodo en B.
Se dice que un camino esta bloqueado si incluye un nodo tal que
Las flechas del camino se conectan en algun nodo perteneciente a C de
manera head-to-tail o tail-to-tail.
Las flechas se conectan de manera head-to-head en algun nodo, y ni dicho
nodo ni alguno de sus descendientes se encuentra en el conjunto C.
Las configuraciones head-to-tail, tail-to-tail y head-to-head se pueden apreciar en
la figura 2.2. Si todos los caminos posibles entre A y B estan bloqueados, se dice
que A esta d-separado de B por C, y la distribucion conjunta sobre todas las va-
riables en el grafo satisface a ⊥⊥ b | c.Para entender mejor el concepto, veamos los ejemplos de la figura 2.3 donde se
muestra un grafo con 5 nodos a, b, c, d y f .
En los dos ejemplos de la imagen 2.3 se trata de determinar si es cierta la relacion
a ⊥⊥ b dado el conjunto condicionante c. En el caso del grafo a), el camino de a a
b implica pasar por c y este nodo tiene una conexion head-to-head sin embargo su
descendiente d se encuentra en el conjunto condicionante, por lo cual c no bloquea
el camino hacia F . Este ultimo tampoco bloquea la ruta hacia B por ser atrave-
sado por un camino head-to-tail sin ser parte del conjunto condicionante. De tal
forma que a ⊥⊥ b|d no se puede afirmar a partir de este grafo.
Capitulo 2. Modelos Graficos 11
a)
b)
Figura 2.3: Ejemplo del concepto de separacion-D. Los nodos sombreadospertenecen al conjunto observado. a) El camino del nodo a hacia el nodo b noesta bloqueado. b) En este caso el camino sı esta bloqueado y por lo tanto se
cumple a ⊥⊥ b | f
Veamos ahora el ejemplo b) de la figura 2.3. los dos nodos intermedios c y f blo-
quean nuestro camino hacia b. c bloquea el camino pues ni el ni su nodo descen-
diente d pertenecen al conjunto condicionante. f bloquea el camino pues cumple la
primera condicion de bloqueo vista anteriormente. Es en este grafo donde podemos
asegurar que a ⊥⊥ b|f se cumple.
2.2. Inferencia en Grafos
Se puede hacer hacer uso de algoritmos que aprovechan la estructura topologica
del grafo para realizar inferencia, mas especıficamente las propiedades de indepen-
dencia condicional deducidas a partir de la separacion-D. Ademas esta inferencia
puede ser tanto exacta como aproximada y se basan en la propagacion de mensajes
locales entre los nodos del grafo [13]. A continuacion ilustraremos el ejemplo mas
sencillo, consiste en la interpretacion grafica del teorema de Bayes utilizando tan
solo dos variables.
Suponga que descomponemos la distribucion conjunta en el producto de factores
p(x, y) = p(x)p(y | x) ver Figura 2.4 a). Si en algun momento observamos el
valor de y , Figura 2.4 b), podrıamos ver la distribucion marginal p(x) como
la distribucion a priori sobre la variable latente x, nuestro objetivo es inferir la
distribucion posterior p(x | y) . Utilizando las reglas de suma y producto de la
Capitulo 2. Modelos Graficos 12
a)
b)
c)
Figura 2.4: El teorema de Bayes ejemplificado con Grafos
probabilidad podemos evaluar
p(y) =∑
x′
p(y | x′)p(x′) (2.4)
con lo cual podemos usar en el Teorema de Bayes
p(x | y) = p(y | x)p(x)p(y)
(2.5)
p(x | y)p(y) = p(y | x)p(x) (2.6)
p(x | y)p(y) = p(x, y) (2.7)
Se ha expresado la distribucion conjunta en terminos de p(x | y) y p(y). Desde una
perspectiva grafica, ahora la distribucion conjunta esta representada por la Figura
2.4 c).
Figura 2.5: Un grafo no-dirigido para ejemplificar la inferencia sobre una ca-dena
Consideremos ahora un problema mas difıcil basandonos en el grafo de la Figura
2.5. La distribucion de probabilidad conjunta para este grafo tiene la forma.
En el filtro de Kalman se asume un movimiento lineal y las variables aleatorias,
que representan las posiciones reales y estimadas, como distribuidas normales de
la forma:
p(zn|zn−1) = N (zn|Azn−1,Γ)
p(xn|zn) = N (xn|Czn,Σ)
Capitulo 3. Sistemas Dinamicos Lineales 22
Recordemos que la primera variable latente no tiene variable padre, por lo cual
p(z1) = N (z1 | µ0,V0)
De manera general el sistema esta descrito por los valores medios de estas proba-
bilidades
zn = Azn−1 + wn (Prediccion) (3.10)
xn = Czn + vn (3.11)
z1 = µ0 + u (3.12)
donde
w ∼ N (w|o,Γ)v ∼ N (v|0,Σ)u ∼ N (u|0, V0)
Buscamos inferir los siguientes estados zn, es decir necesitamos calcular p(zn|X)
que denotamos por convencion como
α(zn) = N (zn|µn, Vn)
Esta probabilidad es analoga a la dada por 2.15 para el caso discreto del HMM,
para el caso del filtro de Kalman las recursiones α son
cnα(zn) = p (xn|zn)∫α(zn−1)p(zn|zn−1)
cnα(zn) = N (xn|Czn,Σ)
∫N (zn−1|µn−1, Vn−1)N (zn|Azn−1,Γ) (3.13)
Podemos utilizar B.3, ver apendice B para evaluar esta integral
∫N (zn−1|µn−1, Vn−1)N (zn|Azn−1,Γ) = N (zn|Aµn−1, Pn−1)
donde:
Pn−1 = AVn−1AT + Γ
Capitulo 3. Sistemas Dinamicos Lineales 23
sustituyendo en 3.13
cnα(zn) = N (xn|Czn,Σ)N (zn|Aµn−1, Pn−1)
cnN (zn|µn, Vn) = N (xn|Czn,Σ)N (zn|Aµn−1, Pn−1)
De esta manera podemos obtener
(Actualizacion)
µn = Aµn−1 +Kn(xn − CAµn−1)
Vn = (I −KnC)Pn−1
cn = N (xn|CAµn−1, CPn−1CT + Σ)
donde hacemos uso de
Kn = Pn−1CT (CPn−1C
T + Σ)
ası como de las formulas para inversion de matrices C.5 y C.6 de [13].
Como asumimos que conocemos las variables en las iteraciones anteriores µn−1 y
Vn−1 ası como las diferentes covarianzas y las matrices A y C, ya podemos evaluar
la marginal para zn.
El filtro de Kalman tiene aplicacion practicamente en cualquier problema secuen-
cial de estimacion de datos, siendo el seguimiento de objetos uno de ellos. En la
Figura 3.2 se puede apreciar algunos cuadros de una secuencia de video donde se
utiliza el filtro de Kalman para mejorar el funcionamiento del algoritmo de se-
guimiento MeanShift [16]. Los cırculos verdes en la imagen representa la posicion
predicha por MeanShift, mientras que los cırculos rojos muestran la correccion he-
cha por el filtro de Kalman y las elipses del mismo color representan la covarianza
de estas predicciones. En azul se muestra el centro de la posicion verdadera del
objeto. En este ejemplo se muestran tan solo unos cuantos cuadros consecutivos
de la secuencia y en esta el seguimiento parece ser bueno, sin embargo se pierde al
objeto en la mayor parte del video. Recordemos que nuestro modelo de movimien-
to es lineal mientras que el objeto en realidad presenta movimientos erraticos.
El asumir distribuciones de emision y transicion Gaussianas nos dan la ventaja de
poder llegar a expresiones cerradas para la inferencia, sin embargo estas suposi-
ciones generalmente no representan al problema real.
Capitulo 3. Sistemas Dinamicos Lineales 24
Figura 3.2: Ejemplo de Filtro de Kalman utilizado para mejorar el desempenodel algoritmo de seguimiento MeanShift
Capitulo 3. Sistemas Dinamicos Lineales 25
Resumen
Se estudio como representar sistemas fısicos que evolucionan en el tiempo ademas
de analizar el filtro de Kalman, de gran importancia para el problema de segui-
miento ası como muchos otros, desde el punto de vista de los modelos graficos.
Entre los puntos a destacar de este capitulo se encuentran:
• Los sistema dinamicos son una representacion matematica de las reglas que
describen la dependencia del tiempo de la posicion de un punto en el espacio.
• Los sistemas dinamicos lineales tienen solucion exacta.
• Estan compuesto por un vector de estado, que contiene las variables, y una
funcion que determina el comportamiento del sistema.
• El filtro de Kalman utiliza mediciones ruidosas, acumuladas con el tiempo,
para producir valores cercanos a los valores verdaderos de las mediciones.
• Existen diversas maneras de deducir el filtro de Kalman, una de ellas es con
las recursiones α en un HMM.
• Hay extensiones del filtro de Kalman que nos permiten trabajar con modelos
no lineales como Extended Kalman Filter y Unscented Kalman Filter.
Capıtulo 4
Metodos de Muestreo y Filtro de
Partıculas para Seguimiento de
Objectos
Para hacer el seguimiento de un objeto nos interesa la distribucion posterior
p(zn | x1, · · · , xn). Recordemos que planteamos el problema de movimiento defi-
niendo a zi como las variables que representa la posicion exacta del objeto, siendo
las variables escondidas, y xi las mediciones de esta posicion en el tiempo i. Esto
se represento por el grafo de la Figura 3.1.
Metodos como el filtro de Kalman y otras tecnicas Monte Carlo secuenciales, nos
permiten inferir la distribucion posterior utilizando recursiones de forma cerrada
para modelos de movimiento/observacion Gaussianos y lineales.
En la practica, los modelos de evolucion utilizados frecuentemente son no-lineales,
no-Gaussianos, multimodales o una combinacion de estos, lo cual hace las recursio-
nes de seguimiento analıticamente intratable. Esto nos obliga a recurrir a tecnicas
de aproximacion.
4.1. Metodos de Muestreo Basicos
En el problema del seguimiento de objetos la distribucion posterior nos es util
para poder evaluar la esperanza de la posicion del objeto. Es por eso que vamos
a repasar algunas tecnicas utiles para encontrar la esperanza de una funcion f(z)
26
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 27
con respecto a una distribucion de probabilidad p(z). Para el caso de variables
continuas, buscamos evaluar
E[f ] =
∫f(z)p(z) dz (4.1)
donde f(x) es una funcion integrable en un espacio conmensurable. Asumamos que
es muy difıcil o costoso computacionalmente el evaluar esa esperanza de manera
exacta usando tecnicas analıticas, de manera que tenemos que recurrir a metodos
de inferencia aproximada basada en muestreo numerico, conocidos como metodos
Monte Carlo.
La idea general detras de los metodos de muestreo es obtener un conjunto de
muestras z(l) (donde l = 1, · · · , L) obtenidas de manera independiente desde la
distribucion p(z). Esto nos permite aproximar (4.1) por medio de una suma finita
f =1
L
L∑
l=1
f(z(l))
Si las muestras z(l) se obtienen de la distribucion p(z), entonces E[f ] = E[f ], de
manera que el estimador f nos proporciona la media correcta. La varianza del
estimador esta dada por
var[f ] =1
LE[(f − E[f ])2]
la cual es la varianza de f(z) bajo la distribucion p(z). La presciencia del estima-
dor no depende de la dimensionalidad de z y en principio se podrıa alcanzar gran
precision con un pequeno numero de muestras. En la practica 10 o 20 muestras
independientes pueden ser suficiente para estimar una esperanza con suficiente
precision. El problema de este tipo de estimadores es que las muestras podrıan
no ser independientes y por ende el numero efectivo de muestras podrıa ser mas
pequeno de lo que aparentan la cantidad de muestras.
Algunos algoritmos simples para generar muestras aleatorias a partir de una dis-
tribucion dada seran analizados a continuacion. Debido que las muestras seran
generadas por un algoritmo computacional realmente son pseudo-aleatorias, pues
son calculadas determinısticamente, pero deberan satisfacer ciertos criterios de
aleatoriedad [13].
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 28
Distribuciones Estandar
Primero consideramos como generar numeros aleatorios a partir de distribuciones
no uniformes y simples, asumiendo que se cuenta con una fuente disponible de
numeros aleatorios distribuidos uniformemente. Supongamos que z esta unifor-
memente distribuida sobre el intervalo (0,1) y que transformamos los valores de
z utilizando alguna funcion f(·) de manera que y = f(z) . La distribucion de y
estara dada por
p(y) = p(z)|dzdy
| (4.2)
Por tratarse de una distribucion uniforme p(z) = 1. El metodo consiste en escoger
la funcion f(z) de manera que los valores resultantes de y tengan una distribucion
deseada p(y). Si integramos (4.2)
z = h(y) =
∫ y
− ınf
p(y)dy (4.3)
la cual es la integral indefinida de p(y). De modo que y = h−1(z), y solo tenemos
que transformar los numeros aleatorios distribuidos uniformemente con una fun-
cion que sea la inversa de la integral indefinida de la funcion deseada.
Este algoritmo puede ser utilizado para muestrear a partir de otras distribuciones
como la exponencial, ver figura 4.1. Su gran desventaja es que depende de la preci-
sion para calcular e invertir la integral indefinida de la distribucion que deseemos
muestrear. Esto nos limita a poder utilizarlo con distribuciones simples y es ne-
cesario recurrir a otras alternativas para una estrategia mas general. Ejemplos de
estas tecnicas son rejection sampling e importance sampling.
Rejection Sampling
Cuando deseamos muestrear de una distribucion p(z) pero no es sencillo, y en
cambio podemos evaluar p(z) para un valor dado z de manera que
p(z) =1
Zpp(z) (4.4)
donde p(z) puede ser evaluado, pero Zp es desconocido. Rejection sampling hace
uso de una distribucion propuesta q(z) de la cual se puedan obtener muestras.
Ademas de una constante k cuyo valor se elige de manera que kq(z) ≥ p(z) para
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 29
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.5
1
1.5
2
2.5
3
y
p(y) =5exp(-3y)
h(y)=1-exp(-3y)
z
Figura 4.1: Si una variable aleatoria uniformemente distribuida z es transfor-mada usando y = h−1(z), donde h esta definida de acuerdo a la ecuacion (4.3(,entonces y tendra la distribucion p(y). En la imagen se muestran las ecuacionesnecesarias para este muestreo en el caso de ser p(y) una distribucion exponencial
cualquier valor de z. Esta funcion kq(z) es llamada la funcion de comparacion.
En un primer paso se generan dos numeros aleatorios, primero z0 desde la dis-
tribucion q(z). Despues se selecciona un numero u0 a partir de la funcion kq(z).
Si u0 > p(z0) se rechaza la muestra. Las muestras que sobreviven tienen una dis-
tribucion uniforme sobre p(z) y por ende sus valores correspondiente de z estan
distribuidos de acuerdo a la distribucion deseada p(z).
Los valores originales de z son generados a partir de la distribucion q(z), estas
muestras son aceptadas con probabilidad p(z)/kq(z) de manera que en el segundo
paso la probabilidad de que las muestras sean aceptadas esta dada por
p(ser aceptada) =
∫p(z)/kq(z)q(z)dz
=1
k
∫p(z)dz. (4.5)
El porcentaje de muestras rechazadas dependen de el area de kq(z) no cubierta
por p(z). Por esta razon la constante k debe ser tan pequena como sea posible pero
siempre restringido a que kq(z) no puede ser menor que p(z) en ningun punto.
Existen diferentes adaptaciones y variantes de este metodo por ejemplo adaptive
rejection sampling que nos sirve cuando es difıcil escoger una distribucion en-
volvente q(z), ademas de extensiones para poder muestrear en espacios de altas
dimensiones, una buena referencia es [13].
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 30
Importance Sampling
Este metodo es una alternativa a las aproximaciones Monte Carlo directas, es util
cuando difıcilmente podemos muestrear de la funcion p(z). Supongamos que sin
embargo es posible evaluar p(z) = p(z)/Z hasta cierta constante de normaliza-
cion Z. Sea q(z) una distribucion propuesta la cual debe ser continua con respecto
a p(z) de manera que p(z) = 0 cuando q(z) = 0. La esperanza de la ecuacion (4.1)
puede ser reescrita en funcion de la distribucion propuesta de la siguiente manera
E [f(z)] =
∫f(z)w(z)q(z)dz∫w(z)q(z)dz
(4.6)
donde se ha definido w(z) = p(z)/q(z) conocidos como los pesos de importancia.
Ademas es necesario notar que el denominador de (4.6) define a la constante de
normalizacion desconocida en funcion de los pesos w(z). Dadas L muestras inde-
pendientes[z(l)
]Ll=1
de la densidad propuesta q(z) podemos aproximar la esperanza
como
E [f(z)] ≈L∑
l=1
w(l)f(z(l)) (4.7)
Donde : w(l) ,w(z(l))
∑Lm=1 w(z
(l))
Basicamente lo que hace importance sampling es estimar la esperanza deseada
coleccionando muestras pesadas[(z(l), w(l))
]Ll=1
Al igual que en rejection sampling, la efectividad de este metodo depende crıtica-
mente de la densidad escogida. Cuando q(z) asigne baja probabilidad a regiones
donde p(z) sea significante, predominaran pocos pesos de gran magnitud mientras
el resto sean de valor casi insignificante, lo cual es un desperdicio de poder de
computo, aunque puede ser peor si ningun peso cae sobre las regiones de alta pro-
babilidad. Esta es precisamente la mayor desventaja del metodo, puede producir
resultados que nos conduzcan al error sin ninguna forma de diagnosticarlo.
Importance Sampling y Resampling
Este metodo tambien utiliza una distribucion de muestreo propuesta q(z) y como
indica su nombre es una mejora al metodo de importance sampling ademas de
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 31
estar motivado por la tecnica de Bootstrap [17]. La intuicion detras de Bootstrap
es evaluar las propiedades de un estimador a traves de la distribucion acumulativa
de las muestras en lugar de hacerlo a partir de la verdadera funcion de distribucion
acumulativa.
Su funcionamiento se resume en los siguientes pasos:
Tomar L muestras z(1), · · · , z(L) de q(z)
Calcular L pesos w(1), · · · , w(L) utilizando la ecuacion (4.7)
(Re-muestreo) Se toma un segundo conjunto de L muestras a partir de la
distribucion discreta (z(1), · · · , z(L)) pero con las probabilidades de obtener
cada una, dadas por los pesos (w(1), · · · , w(L)).
Las L muestras resultantes son solo una aproximacion a p(z) pero la distribucion
se aproxima en el limite cuando L = ∞ [13].
La intencion del paso de re-muestreo es eliminar aquellas muestras con menor peso
y aumentar aquellas mas significativas. Si recordamos el problema de Importance
sampling, el agregar el paso de re-muestreo cuando los pesos estan mal distribui-
dos nos da la oportunidad de seleccionar muestras importantes y de esa manera
rejuvenecer el conjunto de muestras,
4.2. Filtro de Partıculas
Planteamos el problema de seguimiento definiendo a zn como la variable aleatoria
representativa de la posicion verdadera del objeto a seguir y xn la posicion que
medimos en el tiempo discreto n, ver figura 3.1. El problema de seguimiento con-
siste en conocer la distribucion posterior p(zn | x1:n) , la distribucion que deseamos
filtrar, donde x1:n = (x1, x2, · · · , xn) denota a todas las observaciones de la posi-
cion del objeto hasta el tiempo n.
De acuerdo a la teorıa de estimacion Bayesiana la distribucion posterior puede ser
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 32
donde el paso de prediccion viene de la marginalizacion de zn−1, y el paso de filtra-
do procede de la aplicacion directa de la regla de Bayes. Como se vio en el capitulo
anterior, esta solucion recursiva implica la especificacion de un modelo dinamico
para describir la evolucion del sistema, representando a p(zn | zn−1), ası como un
modelo que nos de la verosimilitud de cualquier estado candidato a partir de las
observaciones p(xn | zn), y asumiendo la relacion de independencia condicional
zn ⊥⊥ x1:n−1 | zn−1.
La recursion toma la forma del filtro de Kalman ( Capitulo 3) cuando se consideran
modelos Gaussianos lineales. Esto nos permitio resolver las ecuaciones del paso de
mensajes, pero si un modelo considera distribuciones no Gaussianas en la mayorıa
de los casos las ecuaciones de las recursiones se vuelven intratables analıticamente
por lo cual se recurre a metodos de muestreo para hacer la inferencia posible.
Los filtros de partıculas son un filtro recursivo Bayesiano basado en simulaciones
Monte Carlo. Tambien se le conoce como filtro Bootstrap [15] ademas de que com-
parte muchas caracterısticas con otras tecnicas como CONDENSATION [1] .
Su funcionamiento se basa en utilizar partıculas, muestras pesadas repartidas en
el espacio de estado, que se distribuyen aproximadamente como p(zn−1 | x1:n−1).
Mas adelante se generaran nuevas muestras a partir de una distribucion propuesta,
generalmente en funcion de la ultima posicion conocida ası como de las mediciones.
Para deducir el filtro de partıculas volvamos a enfocarnos en las familias de dis-
tribuciones que representa el modelo grafico de la figura 3.1. Las variables zi re-
presentan la posicion verdadera del objeto a seguir en el tiempo i, mientras xi es
nuestra medicion ruidosa de dicha posicion. Nos interesa conocer p(zi | x1:n). Seasume que los estados del objeto siguen un proceso de Markov de primer orden,
es decir p(zn | z1:n−1) = p(zn | zn−1) y las observaciones son independientes de las
variables verdaderas.
Para evitar el problema de resolver integrales intratables, la distribucion posterior
es representada por una suma pesada de Np muestras extraıdas de la distribucion
posterior
p(zn | xn) ≈1
Np
Np∑
n=1
δ(zn − z(i)n ) ≡ p(zn | xn) (4.10)
donde z(i)n se asumen como muestras independiente identicamente distribuidas
(i.i.d.) de p(zn | xn). Cuando Np es suficientemente grande, p(zn | xn) aproxi-
ma la verdadera distribucion posterior p(zn | xn). Utilizando esta aproximacion
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 33
podemos estimar la media de la funcion no-linear
E[f(zn)] ≈
∫f(z)p(zn | xn)dzn
=1
Np
Np∑
i=1
∫f(zn)δ(zn − z(i)n dzn)
=1
Np
Np∑
i=1
f(z(i)n ) ≡ fNp(z). (4.11)
Normalmente es imposible muestrear a partir de la verdadera distribucion posterior
y en su lugar se suele muestrear de una distribucion facil de implementar, la
llamada distribucion propuesta, denotada por q(zn | xn) con lo cual
E[f(zn)] =
∫f(zn)
p(zn | x1:n)q(zn | x1:n)
q(zn | x1:n)dzn
=
∫f(zn)
p(zn | x1:n)p(x1:n)q(zn | x1:n)p(x1:n)
q(zn | x1:n)dzn
=
∫f(zn)
p(zn, x1:n)
q(zn | x1:n)p(x1:n)q(zn | x1:n)dzn
=
∫f(zn)
p(x1:n | zn)p(zn)q(zn | x1:n)p(x1:n)
q(zn | x1:n)dzn
=1
p(x1:n)
∫f(zn)Wn(zn)q(zn | x1:n)dzn (4.12)
donde
Wn(zn) =p(x1:n | zn)p(zn)q(zn | x1:n)
(4.13)
Podemos reescribir la ecuacion (4.12) como
E[f(zn)] =
∫f(zn)Wn(zn)q(zn | x1:n)dzn∫
p(x1:n | zn)p(zn)dzn
=
∫f(zn)Wn(zn)q(zn | x1:n)dzn∫Wn(zn)q(zn | x1:n)dzn
=Eq(zn|x1:n) [f(zn)Wn(zn)]
Eq(zn|x1:n) [Wn(zn)](4.14)
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 34
De nueva cuenta podemos aproximar (4.14) tomando muestras i.i.d. z(i)n de la
distribucion q(zn | xn)
E[f(zn)] ≈1Np
∑Np
i=1Wn(z(i)n )f(z
(i)n )
1Np
∑Np
i=1Wn(z(i)n )
=
Np∑
i=1
wn(z(i)n )f(z(i)n ) ≡ f(z) (4.15)
donde
wn(z(i)n ) =
Wn(z(i)n )
∑Np
j=1Wn(z(i)n )
. (4.16)
Supongamos que la distribucion propuesta tiene la siguiente factorizacion
Figura 6.65: Errores de seguimiento en la secuencia “Hide”
Si analizamos las graficas anteriores es claro que tiene un comportamiento muy
similar al filtro de partıculas basado en color, y si existen diferencias pero no
significativas. Se esperaba por ejemplo, poder evitar el problema que se encontro en
la secuencia de video Hide. En esta se sigue a una persona pero al pasar frente a
una caja, cambiando el fondo que lo rodea, FPC perdıa al objetivo mientras BL
0 50 100 150 200 250 3000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Hide
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
FP−BL
Figura 6.66: Errores de traslape en la secuencia “Hide”
Capitulo 6. Experimentos y Resultados 92
no lo hacia. FPBL presento el mismo problema como consta en la figura 6.66.
En el siguiente analisis, se discuten a detalle los problemas que presento cada
algoritmo y en especial se revisa la propuesta hecha.
6.2. Discusion de los Resultados
La teorıa detras de cada algoritmo ası como los resultados obtenidos en los expe-
rimentos de este capitulo, fueron analizados cuidadosamente con la intencion de
entender mejor el funcionamiento los algoritmos y bajo que circunstancias pueden
trabajar optimamente ası como saber la razon de sus fallas.
Filtro de Partıculas de Color
Este algoritmo fue de los mejores durante las pruebas. Generalmente fallo en si-
tuaciones donde se tenia poca informacion sobre el objetivo, pues este era pequeno
dentro la imagen lo cual implica ser representado por muy pocos pixeles. Ejemplo
de esto se puede apreciar el en el video “Chair”. El objetivo tambien fallo cuando
el objeto cambiaba drasticamente en apariencia como en el caso de las secuencias
de video “Camaleon” y “Box”.
Un caso curioso se presento en los experimentos con la secuencia de video “Hide”,
en el cual se trato de hacer seguimiento de una persona que pasa alrededor de
una caja. El algoritmo falla cuando el objetivo pasa frente a la caja, ver Figura
6.67. En todas las iteraciones del experimentos, 100 repeticiones, FPC presento el
mismo comportamiento como puede verificarse en las Figuras 6.47 y 6.48.
La influencia de cada pıxel sobre los histogramas esta pesada de acuerdo a su cer-
canıa con el centro del area de la partıcula [2], de manera que el cambio de fondo
no deberıa afectar mucho los histogramas. Ejemplo de esto es el hecho de que el
mismo esquema, utilizar una Gaussiana para pesar pixeles lejanos del centro, es
utilizado en el algoritmo BL y sin embargo este no se pierde.
La causa del error parece ser una falla en la distancia utilizada por FPC, se
esta asignando pesos grandes a partıculas en posiciones que no corresponden al ob-
jeto. Incluso en la figura 6.67 podemos ver algunas partıculas que sı estan siguiendo
al objetivo pero son minorıa. En este error tambien podrıa influir el esquema que
utilizan Nummiaro et al en [2] para actualizar el histograma de referencia.
Capitulo 6. Experimentos y Resultados 93
Figura 6.67: Algunos cuadros de la secuencia “Hide” mientras se evalua eldesempeno del algoritmo FPC. El ovalo azul indica la prediccion del algoritmoy el circulo rojo su centro. Los cırculos verdes representan el centro de la posicion
de las partıculas.
Filtro de Partıculas de Textura
Este algoritmo no presento buenos resultados en las pruebas. Solo obtuvo un com-
portamiento aceptable en el experimento de la secuencia “Ajedrez”. Es necesario
decir que el descriptor utilizado no es muy bueno, es un histograma de orientacio-
nes de gradientes de tan solo 4 bins. Es facil de calcular pero no es un descriptor
de textura robusto. Existen descriptores de textura mas confiables aunque involu-
cran un mayor costo computacional por ejemplo [31]. En general este algoritmo es
usado en modelos que implican su combinacion con otros rasgos, por ejemplo [3]
y [32].
Filtro de Partıculas de Movimiento
Para hacer seguimiento de un solo objeto, este tracker es una buena opcion. Siem-
pre y cuando el objeto a seguir sea el unico en movimiento dentro de la escena.
Esta propuesta de [4] es computacionalmente barata y da buenos resultados solo
bajo las condiciones ya mencionadas, pues no incluye mecanismo alguno para dife-
renciar entre varios objetos en movimiento. Facilmente puede perder a los objetos
si estos se quedan inmoviles durante un tiempo.
Algunos algoritmos incorporan detectores de movimiento basados en la diferencia
de cuadros consecutivos o utilizando un cuadro de referencia, por ejemplo [33], en el
cual se hace una clasificacion de los diferentes objetos como objetos en movimiento
o parte de un fondo.
Capitulo 6. Experimentos y Resultados 94
Hybrid tracker
En [5] los autores de este algoritmo hacen una pequena comparacion, utilizando
tan solo 3 videos relativamente sencillos, del desempeno de su algoritmo contra
el filtro del partıculas basado en color de Nummiario [23] ası como Mean shift de
Comaniciu [26]. Sus resultados reportan que HT es mas eficiente que los otros dos,
lo cual contrasta con los resultados obtenidos en este trabajo. Hay que senalar
que en [5] se utiliza un modelo de movimiento adaptivo. Este va aprendiendo la
razon de cambio de la velocidad del objeto a seguir. No especifican que modelo de
movimiento utilizo la version del filtro de partıculas de color que emplearon.
Para las pruebas realizadas en esta tesis, con los 4 diferentes filtros de partıculas
se considero el uso de un modelo de movimiento lineal, esto para efecto de una
comparacion mas justa. Bajo estas condiciones HT fue menos efectivo que el filtro
de partıculas basado en color.
Es cierto lo que senalan los autores de HT al decir que se necesita una menor
cantidad de partıculas pues mean shift las acerca a casi todas hacia la misma zona.
En los experimentos se utilizaron 30 partıculas en todos los filtros de partıculas,
salvo en HT donde se usaron tan solo 8. Sin embargo el calculo requerido en el
paso de Mean Shift es muy costoso, depende en gran medida del tamano de la
ventana de muestreo. En escenarios complejos y con objetos de fondo diferentes
al objetivo, MeanShift lleva las partıculas hacia un mınimo optimo, el problema
es que frecuentemente se presentan mınimos locales lo cual produce la perdida de
HT.
CamShift
De acuerdo a la propuesta original de Bradski [6], se utilizo un descriptor de color
basado en el canal Hue del espacio de color Hue Saturation Value (HSV). Este es-
pacio tiene la caracterıstica de ser mas robusto a cambios en la iluminacion. Para
los experimentos se utilizaron histogramas de 32 bins del canal Hue. Sin embargo
el mismo Bradski senala [6] que en la practica el espacio HSV genera problemas
cuando en el canal V (el brillo) se tienen valores cercanos a cero, porque la sa-
turacion tambien tiende a cero y provoca que el dominio del canal Hue (el color)
sea muy pequeno. Muy pocos bins discretos son insuficientes para representar los
cambios de color fielmente.
Para evitar esta problematica simplemente se filtran aquellos pixeles con muy poco
Capitulo 6. Experimentos y Resultados 95
brillo. Esto implica tener que ajustar un limite para los valores de saturacion y
brillo no solo para diferentes cameras, si no tambien diferentes condiciones del luz.
Camshift es muy sensible a estos parametros, y debido a que las pruebas se hicie-
ron con video tomados de diferentes camaras y muy diferentes escenarios es difıcil
definir valores que produzcan el mejor resultado siempre. Esta es la principal cau-
sa del mal desempeno del algoritmo y serıa muy aconsejable usar un descriptor
diferente.
Otro problema de Camshift se produce al hacer la busqueda de pixeles muy pare-
cidos al histograma Hue de referencia y centrar su zona de prediccion. Para esto
se calcula el valor Hue de cada pixel de la imagen, y cuando se presentan varias
zonas con pixeles semejantes al objetivo, el algoritmo trata de incluirlas, ver Figu-
ra 6.68. Este efecto muchas veces produce la perdida del objeto al inclinar la zona
de prediccion hacia distractores, pero tambien puede generar tasas de deteccion
muy altas puesto que suele abarcar una gran parte de la imagen.
Aprendizaje Bayesiano
Este algoritmo utiliza una funcion para distinguir entre funciones de probabilida-
des de densidad, buscando aquellas que se parezcan a la distribucion de referencia
obtenida del objetivo inicial. Dicha funcion es en realidad una pseudo-metrica [7]
, pues no cumple con la desigualdad del triangulo [34]. Debido a esto, la metrica
podrıa fallar y clasificar como distribuciones parecidas al objetivo algunas que no
lo sean.
Por otra parte, el metodo de optimizacion Nelder-Mead no nos garantiza llegar al
mınimo global [30]. Su metodologıa para buscar el mınimo, por medio de puntos
de prueba en posiciones calculadas deterministicamente, evita que algunas posi-
ciones en la imagen sean evaluadas. En el caso de movimientos rapidos sobre un
escenario con objetos similares a nuestro objetivo (clutter), el algoritmo puede
perder facilmente al objetivo. Una ventaja de este metodo de optimizacion es que
generalmente realiza pocas evaluaciones de la funcion, dado que cada una implica
evaluar el histograma de un nuevo candidato q el metodo nos ayuda a mantener
un bajo costo computacional.
En los experimentos logro el menor error de traslape en casi todas las pruebas,
esto se debe a que hace una busqueda para adaptarse a las dimensiones del mejor
candidato, una vez que lo ha encontrado al finalizar el metodo Nelder-Mead. En
Capitulo 6. Experimentos y Resultados 96
A)
B)
Figura 6.68: Desempeno del algoritmo Camshift en la secuencia de video“Girl1”. A) Imagen en escala de grises del objetivo a seguir, El valor de ca-da pixel depende de la intensidad Hue correspondiente. B) De la misma manerase aprecian algunos cuadros de la secuencia, su valor hue y sus colores realesindicando con una elipse amarilla la prediccion del algoritmo, en verde la ver-dadera posicion del objetivo segun el archivo estandar de oro correspondiente.
Capitulo 6. Experimentos y Resultados 97
cambio, los filtros de partıculas obtienen las dimensiones en base a la estimacion
del estado medio del objeto, implica menor costo computacional pero es menos
eficiente.
A pesar de estas desventajas, el algoritmo BL se comporto bastante bien durante
las pruebas, y junto con FPC fueron los algoritmos mas acertados.
Filtro de Partıculas combinado con Aprendizaje Bayesiano
El comportamiento de este algoritmo resulto muy similar al del Filtro de Partıcu-
las de color. En algunas secuencias de video se obtuvo un menor error de traslape
sin embargo no se puede garantizar que esto siempre ocurra.
Una forma de mejorar el desempeno de este algoritmo es cambiar la forma en que
contribuye el vector promedio sobre el peso de las partıculas. Tal vez el uso de
otros kernels podrıan ayudar a poder filtrar mejor las partıculas de acuerdo a sus
pesos.
El vector promedio es un registro de como va cambiando el objetivo. Por ejem-
plo si este fuera el rostro de una persona, puede ser que nuestro descriptor solo
incluya informacion sobre su piel, pelo facial, lentes, etc. Al voltear el rostro u
ocultarlo parcialmente, el algoritmo puede ir almacenando en el vector promedio
informacion sobre nuevos detalles por ejemplo el cabello, ropa entre otros, que no
fueron registrados en un principio. De igual manera si la persona es totalmente
ocluida, el algoritmo seguira dando un candidato pero probablemente este tenga
un descriptor muy diferente al buscado.
Este razonamiento nos llevo a pensar que tal vez es posible utilizar la informacion
del vector promedio para poder predecir en que momento el algoritmo ha perdido
al objetivo.
Todos los algoritmos evaluados en este trabajo evaluan la diferencia entre una dis-
tribucion objetivo contra cierto candidato y gracias a esa diferencia discriminan
puntos de prueba. Esta diferencia no nos puede decir si hemos perdido al objetivo,
pues a pesar de que se incremente demasiado puede ser que se deba a un cambio
de iluminacion, deformacion, etc.
Si el cambio o deformacion del objetivo es gradual, esta informacion se estarıa
registrando en el vector promedio y la diferencia no cambiarıa tan rapidamente,
salvo en el caso de un cambio muy drastico.
Para probar si es posible utilizar el vector promedio para determinar la perdida
del objetivo se hizo experimento con la secuencia de video “Motinas Toni”, ver
Capitulo 6. Experimentos y Resultados 98
0 50 100 150 200 250 300 350 4000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1Distancias de Hellinger − Video Motinas Toni − Actualizacion de t cada 50 cuadros
0 50 100 150 200 250 300 350 4000
0.1
0.2
0.3
Razon de cambio de la diferencia entre las distribuciones del Vector promedio vs Objetivo
Vector Promedio vs ObjetivoError de Solapamiento
Figura 6.69: Experimento con la diferencia entre Vector Promedio y Objetivo
figura 6.69.
Gracias al archivo estandar de oro podemos saber en que momento se pierde al
objetivo.
Particularmente en el caso del video “Motinas Toni”, hay un cambio subito poco
despues del cuadro numero 200. Durante este instante la persona a seguir se voltea
totalmente y podemos ver en la figura 6.69 como esta perdida es registrada por el
error de traslape al llegar al valor maximo de 1.
En la parte inferior de la grafica se muestra la razon de cambio absoluta de la
diferencia, en base a la distancia de Hellinger, entre las distribuciones del vector
promedio y el descriptor del objetivo. Es notable la presencia de picos en la razon
de cambio particularmente despues del cuadro 250 cuando gracias al error de
traslape sabemos que se recupero el objetivo. De igual manera despues del cuadro
200 hay un pico importante justo en el momento donde perdemos al objeto.
Tambien es evidente la presencia de cierto saltos periodicos, esto se debe a la
forma en como se calcula el vector promedio. En la practica seria muy costoso el
almacenar todo el conjunto de muestras del objeto para poder construir el vector
promedio de acuerdo a la ecuacion (5.24). En lugar de eso se calcula utilizando:
mt =1
t− 1
[(t− 2)mt−1 + q(t−1)
x
]. (6.1)
con lo cual solo se va actualizando el vector despues de haber hecho la prediccion
del objetivo. Conforme avanza el tiempo la contribucion hecha por q(t−1)x es cada
Capitulo 6. Experimentos y Resultados 99
0 50 100 150 200 250 300 350 4000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1Distancias de Hellinger − Video Motinas Toni − Actualizacion de t cada 25 cuadros
0 50 100 150 200 250 300 350 4000
0.1
0.2
0.3
Razon de cambio de la diferencia entre las distribuciones del Vector promedio vs Objetivo
Vector Promedio vs ObjetivoError de Solapamiento
Figura 6.70: Experimento con la diferencia entre Vector Promedio y Objetivo
vez menor, por lo que es importante reiniciar el valor de t a cero despues de cierto
tiempo.
En los experimentos se reinicio este contador cada 50 cuadros de video. Justa-
mente cuando t = 0 es el momento donde q(t−1)x provoca un mayor cambio sobre
el promedio. Si analizamos la imagen 6.69 podemos ver que cada 50 cuadros, el
tiempo que toma a t reiniciar, se presenta un sobresalto en la diferencia de las
distribuciones.
Esto nos afecta para poder utilizar la diferencia para predecir la perdida del ob-
jetivo, incluso si hacemos la actualizacion de t mas frecuente, ver figura 6.70, este
efecto sigue siendo una fuente importante de ruido. No es una mala idea utilizar
la diferencia del vector promedio, el problema es el metodo con el cual se calcula.
Definitivamente es parte del trabajo futuro encontrar un mejor metodo para ello,
una propuesta consiste en utilizar un filtro de partıculas donde cada partıcula se
una muestra del objetivo encontrado en diferentes cuadros del video. Se estimarıa
el vector promedio filtrando las partıculas utiles de este conjunto, sin embargo aun
no se ha llegado a un criterio y metrica para poder pesar las partıculas adecuada-
mente.
6.3. Desempeno de los Algoritmos
Para probar que tan practicos son los algoritmos al utilizarlos en tiempo real se
hicieron pruebas sobre la secuencia de video “Carrera”. Se escogio este video pues
Capitulo 6. Experimentos y Resultados 100
fue en el los algoritmos presentaron un mejor comportamiento general. De esta
manera se probara su desempeno cuando funcionan correctamente. Las pruebas
consistieron en calcular el numero de cuadros por segundo que procesa cada algo-
ritmo sobre dicha secuencia de video. Para esto se midio el tiempo que le tardo
a cada algoritmo de seguimiento el procesar 30 cuadros de videos, acumulando
en total 1000 muestras por algoritmo para despues promediarlos. Los resultados
Cuadro 6.24: Promedio de los cuadros por segundo obtenido por los algoritmosde seguimiento en la secuencia “Carrera”
Es necesario mencionar las condiciones en que se realizaron las pruebas. Todos lo
algoritmos fueron implementados en C++, utilizando la librerıa OpenCV para la
adquisicion de las imagenes. No se utilizaron tecnicas como la programacion en
hilos o computo paralelo a traves de una PU para acelerar el procesamiento. Ahora
hagamos un pequeno analisis de los resultados.
El algoritmo de seguimiento basado en aprendizaje bayesiano utilizo un histograma
de 8x8x8 bins, haciendo uso de los 3 canales del espacio RGB. Otra caracterıstica
relevante para las pruebas fue que este se programo para ejecutar solo 5 ciclos del
metodo de optimizacion Nelder-Mead. Este algoritmo obtuvo el menor desempeno
pudiendo procesar alrededor de 9 cuadros por segundo. Sin embargo fue el algo-
ritmo con menor error de traslape, esto indica que generalmente proceso un area
mayor en cada punto de prueba pudiendo cubrir bien al objeto a seguir.
El filtro de partıculas basado en color tambien utiliza un histograma de 8x8x8 bins,
mientras aquellos filtros de partıculas que utilizan rasgos de textura y movimiento
utilizaron solo 8 bins pues trabajan con un solo canal de color. El procesar menos
pixeles igual influye en el desempeno de estos algoritmos, que como se aprecia en
la Tabla 6.24, la cantidad de cuadros por segundo que arrojan es muy buena. Las
partıculas utilizadas por estos algoritmos tienen area de muestreo pequena lo cual
implica un costo computacional bajo.
Tanto FPC como FPT utilizaron 30 partıculas en los experimentos. En el caso del
FPM se utilizaron 30 partıculas para hacer el rastreo ademas de 16 partıculas fijas
utilizadas por el algoritmo para recuperarse si se deja de detectar movimiento.
Capitulo 6. Experimentos y Resultados 101
Camshift hace la busqueda dentro de una region, cuyas dimensiones va ajustando,
y puede llegar a ser muy grande con lo cual su procesamiento llega a ser muy
pesado, ver Figura 6.68. Esto no sucedio en esta secuencia de video, para la cual
registro la mayor cantidad de cuadros por segundo.
El algoritmo de seguimiento hıbrido HT utilizo 8 partıculas, tambien calcula sus
descriptores con base en histogramas de 8x8x8 bins en el plano RGB. A diferen-
cia del resto de los filtros de partıculas empleados, aplica el metodo de Meanshift
sobre cada partıcula para acercarla al objetivo. Este metodo de optimizacion im-
plica calcular pesos sobre una ventana de manera iterativa, con lo cual su costo
computacional aumenta pero reduce la necesidad de tener tantas partıculas.
El algoritmo FPBL de igual manera se implemento con 30 partıculas con descrip-
tores de 8x8x8 bins. Como era de esperar, el numero de cuadros por segundo que
procesa es similar al del FPC.
Sin duda alguno los filtros de partıculas logran los mejores tiempos de procesa-
miento, tomando en cuenta que CS no es tan preciso.
Capıtulo 7
Conclusiones
En este trabajo de tesis se han analizado y trabajado con diferentes propuestas,
algoritmos con distintos rasgos a seguir, a traves de una serie de experimentos
exhaustivos con el fin de aprender las bases de los algoritmos de seguimiento en el
estado del arte.
Para esto fue necesario conocer diferentes aproximaciones al problema de segui-
miento. Entre ellos destacan aquellos basados en metodos de Optimizacion como
Meanshift y CamShift [6]. Se implemento un algoritmo [7] que utiliza una medida
de similitud para distinguir al objetivo y por medio del metodo de optimizacion
Nelder-Mead lo busca evaluando diferentes puntos de prueba en la imagen.
Otras propuestas actuales estan basadas en modelos graficos como [35], [20] y [18],
lo cual nos obliga a estudiar sus bases para una mejor comprension de los metodos
de inferencia basados en pase de mensajes.
Uno de los principales problemas del seguimiento de objetos ha sido como definir
al objetivo, como describirlo de manera que pueda ser identificado frecuentemente
conforme pase el tiempo y sufra algunas alteraciones.
El filtro de partıculas es un popular metodo de inferencia, basado en las tecnicas
de muestreo que fueron estudiadas, utilizado en todo tipo de problemas secuen-
ciales. En este trabajo se implementaron diferentes propuestas basadas en el filtro
de partıculas, como fueron color, textura y movimiento. Cada una describiendo
al objetivo a seguir utilizando diferentes rasgos. En el caso del filtro hıbrido se
utilizo un descriptor de color igual que en la propuesta de Nummiaro [23] pero
incorporando el metodo Meanshift para acelerar la convergencia de las partıculas.
102
Capitulo 7. Conclusiones 103
Cada propuesta hace una descripcion diferente del objetivo o bien ataca el pro-
blema de otra manera, ninguna es perfecta por lo cual se debe saber bajo que
condiciones nos permiten identificar al objeto sin problemas.
Existen diferentes propuestas para evaluar el desempeno de los algoritmos, para las
pruebas hechas en este trabajo se utilizaron las propuestas por [11]. Estas metri-
cas nos permiten conocer que tan frecuentemente la prediccion de los algoritmos
incluyo realmente al objeto, en que proporcion, ası como que tan de cerca. Estas
tres medidas complementan nuestra informacion sobre la calidad del seguimiento.
Se creo una base de videos con archivos de referencia, o estandares de oro, pues fue
necesario utilizar diferentes videos para tratar de representar diversos escenarios y
condiciones para probar el desempeno de los algoritmos en diferentes condiciones.
En total se utilizaron veinte videos, la mitad de ellos provenientes de [9], [8] y
[10]. De estos, diez de ellos se tomaron ıntegramente, incluyendo su archivo de
estandar de oro. El resto fueron tomados de Internet, seleccionandolos tratando
de ejemplificar escenarios especıficos, por ejemplo situaciones sencillas donde no
deberıan fallar o tratando de inducir el error. De estos diez videos, cuatro fueron
obtenidos de las bases de video [8] y [10] pero no tienen estandar de oro disponi-
ble. Los archivos de referencia correspondiente fueron hechos creando un pequeno
programa para poder etiquetar los objetos a seguir, cuadro por cuadro, detallando
su posicion y dimensiones.
Los algoritmos se probaron iterativamente en cada una de las secuencias dispo-
nibles y sus resultados fueron analizados. Esto nos sirvio para distinguir a los
algoritmos mas robustos y sobretodo conocer el porque fallan y bajo que ocasiones.
Con base en estos resultados se propuso un nuevo algoritmo de seguimiento, el filtro
de partıculas con promedio Bayesiano. Esta modesta contribucion no mejoro no-
tablemente el desempeno del filtro de partıculas basado en color, pero como se
vio en el capitulo anterior, aun puede ser mejorado ya que se ha identificado el
problema en el calculo del promedio.
Los resultados de los experimentos no arrojaron un ganador definitivo, todas las
propuestas fallan bajo ciertas condiciones. Ningun rasgo es predominante, aunque
es cierto que los descriptores de color resultaron bastante robusto aun falta por
probar muchos otros, como es el caso de SIFT [36], SURF [37] y GLOH [38] entre
otros, que si bien implican un mayor costo computacional pudieran compensar con
Capitulo 7. Conclusiones 104
precision.
En [39] se hace una comparacion de 33 diferentes descriptores invariantes a trans-
formaciones afines, se prueban en el reconocimiento de categorıas de imagenes
utilizando un algoritmo del tipo Bolsa de palabras, de una gran base de datos. Sus
resultados muestran que los descriptores basados en histogramas de orientacion-
posicion de gradientes y los de color, son los mejores.
Los diferentes filtros de partıculas utilizados en este trabajo emplearon un modelo
de estado de transicion lineal, lo cual podrıa ser una desventaja en muchas apli-
caciones. Muchas implementaciones practicas aprenden el modelo a partir de un
conjunto de entrenamiento o basados en los movimientos en cuadros anteriores.
Suelen ser implementadas utilizando modelos de primero o segundo orden [23] y
suelen dan buenos resultados cuando las partıculas se concentran en un area pe-
quena. Sin embargo, si la concentracion de las partıculas es alta en la misma zona,
puede perderse al objetivo si este presenta movimientos rapidos y espontaneos.
Algunas estrategias actuales para lidiar con este problema es hacer uso de un mo-
delo de movimiento adaptivo como en [40].
Algoritmos en el estado del arte hacen uso de esquemas mas elaborados, como
utilizar multiples rasgos para describir al objeto, o estan basados en algoritmos de
paso de mensajes sobre un grafo con ciclos.
Este trabajo de tesis ha proporcionado una base solida para comenzar a trabajar
con las propuestas mas recientes.
Apendice A
Modelos Graficos
A.1. Propiedades Basicas de los Modelos Grafi-
cos
Existen varios tipos de grafos, los dirigidos y no-dirigidos, y otros mas complejos
como son los grafos de cadena que son una mezcla de grafos dirigidos y no dirigidos,
o los hiper-grafos son grafos que se distinguen por contar con mas de un vertice
conectando a algunos grafos, propiamente llamados hiper-vertices. Incluso existen
otras representaciones como por ejemplo los grafos de factores [13].
En esta breve introduccion al tema nos concentraremos en los grafos dirigidos y
no-dirigidos.
Un grafo G = (V, E) esta compuesto por un conjunto de nodos V y vertices E , verfigura A.1 a). Cada vertice (i, j) ∈ E conecta a los nodos i, j ∈ V. Existen 2 tipos
basicos de grafos, dirigidos y no dirigidos. En el caso de los grafos dirigidos, figura
A.1 a), un vertice (i, j) conecta un nodo padre i con su hijo j y esta relacion se
representa graficamente con una flecha. El conjunto de todos los padres Γ(j) del
nodo j esta dado por Γ(j) , i ∈ V | (i, j) ∈ E. A los hijos de un nodo, y sus
hijos correspondientes, se les conoce como descendientes.
Para los grafos no dirigidos un vertice (i, j) ∈ E si y solo si (j, i) ∈ E , lo cual es
representado graficamente por una linea sin direccion, ver figura A.1 b).
Dentro de un grafo, se define a un clique como un grupo de nodos los cuales estan
105
Apendice A. Modelos Graficos 106
totalmente inter-conectados por un vertice, si todo el grafo es un clique entonces
se le llama grafo completo.
Un camino entre nodos i0 6= iN es una secuencia de nodos distintos (io, i1, · · · , iN)tal que (in−1, in) ∈ E para n = 0, 1, · · · , N . Un ciclo se define como un camino
que inicia y termina en el mismo nodo i0 = iN , con todos los nodos intermedios
diferentes. Si existe un camino entre todos los pares posibles de nodos, se dice que
el grafo esta conectado.
Un grafo conectado, pero con todos sus vertices no dirigidos, y que no presenta
ciclos se dice que tiene una estructura de arbol.
El diametro de un grafo esta definido como el numero de vertices que se atraviesan
recorriendo el camino mas largo entre dos nodos.
a) b)
Figura A.1: a) Ejemplo sencillo de un grafo dirigido. b) ejemplo de un grafono dirigido. Los Nodos V se muestran en verde y sus vertices E en azul.
Se pueden consultar casos mas complicados de inferencia en [13] o [35], y vere-
mos mas adelante la aplicacion de un algoritmo de pasos de mensaje para hacer
seguimientos de objetos.
A.2. Campos Aleatorios de Markov
Los Campos Aleatorios de Markov, MRF por sus siglas en ingles, se encuentran
dentro del grupo de los grafos no dirigidos. Caracterizan a una familia de distribu-
ciones p(x) por medio de un conjunto de independencias condicionales implıcitas.
La separacion-D no puede aplicarse en estos grafos para definir independencia
condicional, pues no hay direccion definida, sin embargo sı existe un criterio equi-
valente.
Dado un grafo no dirigido G = (V, E), sean F , G y H tres conjuntos disjuntos de
V. Se dice que el conjunto h bloquea, o separa, los conjuntos F y G si todos los
Apendice A. Modelos Graficos 107
Figura A.2: Ejemplo de independencia condicional en un grafo no dirigido.Cualquier camino de un nodo en F hacia G pasa a traves de un nodo en H, por
lo tanto se cumple la propiedad de independencia condicional F ⊥⊥ G | H
caminos posibles entre F y G para por algun nodo dentro de H , ver figura A.2.
Un proceso estocastico x es globalmente Markoviano con respecto a G si xF y xG
son condicionalmente independientes condicionados sobre las variables xH , si estas
ultimas se encuentran dentro de cualquier conjunto separador de F y G.
p(xF , xG | xH) = p(xF | xH)p(xG | xH) (A.1)
Los procesos Markovianos temporales se caracterizan por el hecho de que el pre-
sente y el futuro son independientes condicionados sobre el presente.
Theorem A.1. (Hammersley −Clifford). Sea C un conjunto de cliques de un
grafo dirigido G. Una distribucion de probabilidad definida como un producto nor-
malizado de funciones potenciales no negativas sobre dichos cliques siempre es
Markoviana con respecto a G si y solamente si:
p(x)α∏
c∈C
ψc(xc) (A.2)
De igual manera, cualquier densidad estrictamente positiva, p(x) > 0 para toda
x, que sea Markoviana con respecto a G puede ser representada en esta forma
factorizada.
La demostracion de este teorema se puede encontrar en [41], [42] y [43].
En la practica, las propiedades de los procesos Markovianos son usados de dos
maneras complementarias. Si se sabe de un proceso estocastico que satisface cier-
tas propiedades de independencia condicional, el teorema Hammersley-Clifford nos
permite proponer modelos parametrizados por variables locales. De igual forma,
Apendice A. Modelos Graficos 108
dado cualquier modelo grafico, las propiedades Markovianas implıcitas pueden ser
explotadas para disenar algoritmos mas eficientes de aprendizaje e inferencia.
A.3. Modelos de Markov
En el problema de seguimiento generalmente se cuenta con una medicion de la
posicion del objetivo a seguir, esta no es exacta y queremos desarrollar un modelo
que nos permita predecir las siguientes posiciones. Una forma de hacer eso es ig-
norar el hecho de que son datos secuenciales y tratar las observaciones como i.i.d.
(datos independientes e identicamente distribuidos, por sus siglas en ingles). Esto
nos impedirıa aprovechar la correlacion entre observaciones cercanas, por ejemplo
si nuestras mediciones arrojan datos que no varıan mucho o incluso estaticos du-
rante algun tiempo. En estos casos conocer la tendencia de las muestras podrıa
ser de gran ayuda para predecir los valores siguientes.
La manera mas sencilla de modelar un fenomeno de este tipo es usando un modelo
de Markov, en los cuales asumimos que las predicciones futuras son independien-
tes de todas salvo las mas recientes y ademas tienen como representacion grafos
dirigidos.
Podemos usar la regla del producto para expresar la distribucion conjunta para
una secuencia de observaciones xi como
p(x1, · · · , xN) =N∏
n=1
p(xn | x1, · · · , xn−1) (A.3)
De acuerdo al criterio de los procesos Markovianos, podemos asumir que las dis-
tribuciones condicionales son independientes de todas las observaciones anteriores
salvo las mas recientes. Si consideramos una cadena de Markov de primer or-
den, ver figura A.3 , la distribucion conjunta para una secuencia de observaciones
tendrıa ahora la siguiente forma
p(x1, · · · , xN ) = p(x1)N∏
n=2
p(xn | xn−1) (A.4)
Apendice A. Modelos Graficos 109
Figura A.3: Cadena de Markov de primer orden.
Podemos verificar en este grafo por simple inspeccion visual utilizando separacion-
d, que la distribucion condicional para la observacion xn dado todas las observa-
ciones anteriores, esta dada por
p(xn | x1, · · · , xn−1) = p(xn | xn−1) (A.5)
lo cual tambien se puede verificar utilizando la regla del producto a partir de (A.4).
En la mayorıa de las aplicaciones de este tipo de modelos, las distribuciones con-
dicionales p(xn | xn−1) que definen el modelo son definidas iguales, lo cual equivale
a asumir una serie estacionaria en el tiempo. Esto puede ser una gran desventaja,
por ejemplo si las distribuciones condicionales dependen de parametros ajustables,
ya que todas las distribuciones condicionales en la cadena compartiran exactamen-
te los mismos parametros limitando gravemente nuestra capacidad de prediccion.
Aun cuando este es un modelo mas general que el simplemente asumir indepen-
dencia entre las muestras sigue siendo muy restrictivo.
Para muchas observaciones secuenciales podrıamos anticipar tendencias en los da-
tos despues de varias muestras sucesivas y ası poder predecir mas acertadamente
el siguiente valor. Una manera de permitir que las observaciones anteriores tengan
influencia en nuestras predicciones el usar modelo un de Markov de mayor orden,
lo cual se consigue haciendo que las distribuciones condicionales de xn dependan
de las observaciones anteriores xn−l, · · · , xn−1.
A.3.1. Hidden Markov Models
Si deseamos construir modelos que no esten limitados por las asumpciones Marko-
vianas de ningun orden, pero que puedan ser utilizados con un numero limitado de
parametros libres, se puede lograr introduciendo variables escondidas adicionales
para permitir clases de modelos mas complejos, construidos a partir de componen-
tes simples.
Para cada observacion xn introducimos una variable correspondiente zn, la cual
puede ser de diferente tipo o dimension que la variable observada. Ahora asumimos
Apendice A. Modelos Graficos 110
que son estas variables latentes las que forman una cadena de Markov, su grafo
correspondiente esta en la Figura A.4. Se satisface la propiedad de independencia
condicional
zn−1 ⊥⊥ zn+1 | zn (A.6)
La distribucion conjunta de este modelo esta entonces dado por
p (x1, · · · ,xN, z1, · · · , zN) = p(z1)
[N∏
n=2
p(zn|zn−1)
]N∏
n=1
p(xn|zn) (A.7)
Por medio de la separacion-d podemos comprobar que siempre existe un camino
entre cuales quiera variables observadas xn y xm y que ademas dicho camino jamas
estara bloqueado. Esto implica que p(xn+1 | x1, · · · , xN) dado todas las observa-
ciones anteriores, y no exhibe ninguna independencia condicional de manera que
nuestras predicciones xn dependen de todas las observaciones anteriores. Los mode-
Figura A.4: Modelo grafico dirigido de un Modelo escondido de Markov.
los HMM tienen la forma de la figura A.4 . Representa una mezcla de distribuciones
donde zn son variables latentes y describen al componente de la mezcla responsable
de generar la observacion xn. Este modelo describe procesos donde la distribucion
de probabilidad zn depende unicamente del estado de la variable latente anterior
zn−1. La probabilidad condicional p(zn|zn−1, A) donde A es una matriz de tran-
sicion y cada uno de sus elementos esta dado por Aij = p(zn = 1|zn−1 = 1) son
llamadas probabilidades de transicion . La probabilidad condicional de las varia-
bles observadas p(xn|zn, φ) en funcion de los parametros φ, son conocidas como las
probabilidades de emision. Observemos que la variable z1 presenta una situacion
particular pues no cuenta con un nodo padre y su probabilidad esta dada por un
vector de probabilidades π con elementos πk = p(z1,k = 1).
Apendice A. Modelos Graficos 111
La distribucion de probabilidad conjunta descrita por el modelo HMM es
p (X,Z|θ) = p(z1|π)[
N∏
n=2
p(zn|zn−1, A)
]N∏
n=1
p(xn|zn, φ) (A.8)
Mas adelante se utilizara este modelo para explicar algunos algoritmos de segui-
miento de objetos.
Historicamente, modelos equivalentes a HMM fueron desarrollados independien-
temente en diferentes disciplinas como reconocimiento de voz o teorıa de control,
los modelos graficos unificaron los diferentes acercamientos y permitieron que los
avances en metodos aprendizaje e inferencia sean transferidos entre las distintas
disciplinas.
Apendice B
Propiedades de Independencia
Condicional para HMM
En un grafo correspondiente a HMM, y de acuerdo a las reglas de independencia
condicional para grafos, se cumplen las siguientes reglas.