modelos probabilísticos para el seguimiento de objetos en
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
y Matematicas Industriales
por el
Centro de Investigacion en Matematicas
25 de noviembre de 2010
“Statistics is the art of never having to say you are wrong. Variance is what any
two staticians are at.”
C. J. Bradfield
Centro de Investigacion en Matematicas
ResumenComputacion
Centro de Investigacion en Matematicas
Maestria en Ciencias
por Omar Gutierrez Navarro
Motivados por el problema de seguimiento de objetos en video, el principal objetivo
de este trabajo de tesis es conocer las bases teoricas de los algoritmos en el estado
del arte. Dado que estos sistemas de vision computacional deben ser robustos a
diferentes variaciones en la apariencia del objeto, el problema suele ser atacado de
diversas maneras con diferentes definiciones del objeto a buscar ası como metodos
para buscarlo.
En esta tesis se hace un analisis de siete algoritmos de seguimiento de objetos por
video, y a traves de exhaustivas pruebas se busca comparar su rendimiento en
diferentes escenarios. En total se utilizaron 20 secuencias de video con estandar
de oro (ground-truth), en algunos casos este archivo de referencia fue construido.
La informacion de la posicion verdadera del objeto fue contrastada con la predi-
cha por los algoritmos, permitiendonos evaluar el seguimiento. Los resultados de
los experimentos fueron analizados buscando en que situaciones los algoritmos se
desempenan mejor ası como las razones del porque falla el seguimiento.
Se propone un nuevo algoritmo de seguimiento que combina el filtro de partıculas,
como metodo para inferir la posicion del objeto, con el promedio bayesiano que
nos permite aprovechar la inferencia sobre la forma que tendra el descriptor del
objeto.
Agradecimientos
Este trabajo ha sido resultado de dos anos de mucho trabajo. Aun sigo abrumado
por la cantidad de cosas que conozco gracias a los maestros del CIMAT pero sobre
todo porque me ensenaron que no existe un limite, falta demasiado por aprender.
En especial quiero agradecer a mi asesor el Dr. Salvador Ruiz Correa primero por
toda la paciencia que tuvo para conmigo, ademas del apoyo y guıa sin el cual
difıcilmente estarıa terminada esta obra. Le aprendı lo poco que se de modelos
graficos, pero su influencia me la ha dejado muy en claro al grado de que se ha
convertido en la base del trabajo que voy a continuar.
No puedo dejar de agradecer a mi familia que me ha permitido seguir estudiando
libremente para alcanzar mis metas personales. Este trabajo ha sido fruto de su
incondicional apoyo. Finalmente quiero agradecer a Conacyt por la beca recibida
para realizar mis estudios de posgrado durante estos 2 anos.
iii
Indice
Abstract II
Agradecimientos III
Lista de Figuras VI
Lista de Tablas IX
1. Introduccion 1
2. Modelos Graficos 7
2.1. Independencia Condicional en Grafos . . . . . . . . . . . . . . . . . 9
2.2. Inferencia en Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3. Sistemas Dinamicos Lineales 17
3.1. Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2. Recursiones α . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3. Recursiones del filtro de Kalman . . . . . . . . . . . . . . . . . . . . 21
4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 26
4.1. Metodos de Muestreo Basicos . . . . . . . . . . . . . . . . . . . . . 26
4.2. Filtro de Partıculas . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5. Algoritmos de Seguimiento 37
5.1. Filtro de partıculas basado en Color . . . . . . . . . . . . . . . . . . 38
5.2. Filtro de Partıculas de Textura . . . . . . . . . . . . . . . . . . . . 42
5.3. Filtro de Partıculas de Movimiento . . . . . . . . . . . . . . . . . . 42
5.4. Algoritmo de Seguimiento Hıbrido . . . . . . . . . . . . . . . . . . 44
5.5. Camshift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.6. Seguimiento de Objetos Basado en Aprendizaje Bayesiano . . . . . 47
5.7. Filtro de Partıculas con Aprendizaje Bayesiano . . . . . . . . . . . 51
iv
Contenido v
6. Experimentos y Resultados 54
6.1. Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.1.1. Secuencia de video “Ajedrez” . . . . . . . . . . . . . . . . . 56
6.1.2. Secuencia de video “Disco” . . . . . . . . . . . . . . . . . . 58
6.1.3. Secuencia de video “Girl 1” . . . . . . . . . . . . . . . . . . 59
6.1.4. Secuencia de video “Girl2” . . . . . . . . . . . . . . . . . . 61
6.1.5. Secuencia de video “Girl3” . . . . . . . . . . . . . . . . . . 62
6.1.6. Secuencia de video “Motinas Emilio” . . . . . . . . . . . . . 63
6.1.7. Secuencia de video “Motinas Multi-Face” . . . . . . . . . . 65
6.1.8. Secuencia de video “Motinas Toni” . . . . . . . . . . . . . . 66
6.1.9. Secuencia de video “Pelea” . . . . . . . . . . . . . . . . . . 68
6.1.10. Secuencia de video “Floor” . . . . . . . . . . . . . . . . . . 69
6.1.11. Secuencia de video “Shop” . . . . . . . . . . . . . . . . . . 71
6.1.12. Secuencia de video “Chair” . . . . . . . . . . . . . . . . . . 73
6.1.13. Secuencia de video “Camaleon” . . . . . . . . . . . . . . . . 74
6.1.14. Secuencia de video “Carrera” . . . . . . . . . . . . . . . . . 76
6.1.15. Secuencia de video “Ladron” . . . . . . . . . . . . . . . . . 78
6.1.16. Secuencia de video “Hide” . . . . . . . . . . . . . . . . . . . 79
6.1.17. Secuencia de video “Box” . . . . . . . . . . . . . . . . . . . 81
6.1.18. Secuencia de video “Smoke” . . . . . . . . . . . . . . . . . . 82
6.1.19. Secuencia de video “Smoke Car” . . . . . . . . . . . . . . . 84
6.1.20. Secuencia de video “Street” . . . . . . . . . . . . . . . . . . 85
6.1.21. Experimentos FPBL . . . . . . . . . . . . . . . . . . . . . . 88
6.2. Discusion de los Resultados . . . . . . . . . . . . . . . . . . . . . . 92
6.3. Desempeno de los Algoritmos . . . . . . . . . . . . . . . . . . . . . 99
7. Conclusiones 102
A. Modelos Graficos 105
A.1. Propiedades Basicas de los Modelos Graficos . . . . . . . . . . . . . 105
A.2. Campos Aleatorios de Markov . . . . . . . . . . . . . . . . . . . . . 106
A.3. Modelos de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
A.3.1. Hidden Markov Models . . . . . . . . . . . . . . . . . . . . . 109
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.1. Modelo Grafico del Filtro de Kalman y que tambien corresponde alHMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
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
Indice de cuadros
4.1. Filtro de partıculas SIR generico . . . . . . . . . . . . . . . . . . . . 35
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.
p(x) =1
Zψ1,2(x1, x2)ψ2,3(x2, x3) · · ·ψN−1,N(xN−1, xN ) (2.8)
Nuestro problema consistira en encontrar la distribucion marginal p(xn) para un
valor de n situado en alguna lugar alejado de los extremos de la cadena.
Los N nodos representan variables discretas, cada una teniendo K estados, de
Capitulo 2. Modelos Graficos 13
manera que la funcion de potencial ψn−1,n(xn−1, xn) es una tabla de KxK ele-
mentos y la distribucion conjunta tiene (N − 1)K2 parametros. Pretender obtener
la distribucion marginal p(xn) de manera directa implicarıa sumar la distribucion
conjunta sobre todas las variables excepto xn
p(xn) =∑
x1
· · ·∑
xn−1
∑
xn+1
· · ·∑
xN
p(x) (2.9)
Para realizar esta operacion, primero tendrıamos que evaluar la distribucion con-
junta completa y ademas realizar las sumatorias explıcitamente. Dado que hay N
variables con K estados, habrıa KN valores para x. Dependiendo de la cantidad de
variables y estados, que de hecho es muy comun encontrar problemas donde estos
son grandes, se convierte en todo un problema almacenar tanta informacion de la
distribucion conjunta ası como el costo computacional de evaluarlo pues estos se
elevan exponencialmente dependiendo del valor de N .
Es aquı donde aparecen las ventajas de los modelos graficos, pues podemos obtener
un algoritmo mucho mas eficiente para calcular la marginal si aprovechamos las
propiedades de independencia condicional del modelo grafico.
Veamos la expresion completa para un grafo de cadena dirigido, ver Figura 2.5.
p(xn) =1
Z
∑
x1
· · ·∑
xn−1
∑
xn+1
· · ·∑
xN
ψ1,2(x1, x2) · · ·ψN−1,N(xN−1, xN) (2.10)
Veamos como es posible re-ordenar las sumatorias y productos en la expresion
2.10 para evaluarla mas eficientemente. Por ejemplo tomemos el caso de la su-
matoria sobre xN . Unicamente la funcion potencial ψN−1,N (xN−1, xN) depende de
xN , lo cual nos permite evaluar∑
xNψN−1,N(xN−1, xN). Esto nos permitirıa hacer
lo mismo ahora con xN−1 pues solo estarıa presente en el resultado de la suma
anterior ası como en ψN−2,N−1(xN−2, xN−1). Este procedimiento tambien aplica en
el extremo contrario de la cadena, la sumatoria sobre x1 solo involucra al potencial
ψx1,2(x1, x2).
Si agrupamos los potenciales y sumatorias de esta manera, podrıamos expresar la
Capitulo 2. Modelos Graficos 14
marginal como
p(xn) =1
Z
[∑
xn−1
ψn−1,n(xn−1, xn) · · ·[∑
x2
ψ2,3(x2, x3)
[∑
x1
ψ1,2(x1, x2)
]]· · ·
]
[∑
xn+1
ψn,n+1(xn, xn+1) · · ·[∑
xN
ψN−1,N (xN−1, xN)
]· · ·
](2.11)
Este re-ordenamiento de la ecuacion es la base de los algoritmos de pase de men-
sajes. La implementacion de este implica realizar N − 1 sumas sobre K estados
donde cada uno involucra a dos variables. Su costo computacional es del orden
O(NK2), lo cual es lineal en la longitud de la cadena y mucho mejor que el costo
exponencial de la aproximacion inicial.
Todo se consiguio aprovechando las propiedades de independencia condicional pa-
ra obtener un calculo eficiente. La ecuacion 2.11 se puede definir en funcion de
mensajes a partir del nodo xn, tan solo notamos las siguientes definiciones
µα(xn) =
[∑
xn−1
ψn−1,n(xn−1, xn) · · ·[∑
x2
ψ2,3(x2, x3)
[∑
x1
ψ1,2(x1, x2)
]]· · ·
](2.12)
µβ(xn) =
[∑
xn+1
ψn,n+1(xn, xn+1) · · ·[∑
xN
ψN−1,N(xN−1, xN )
]· · ·
](2.13)
ahora podemos expresar la marginal p(xn) como el producto de dos factores por
la constante de normalizacion
p(xn) =1
Zµα(xn)µβ(xn). (2.14)
Interpretaremos a µα(xn) como un mensaje que se envıa desde xn hacia el principio
de la cadena, recıprocamente µβ(xn) es un mensaje desde xn hacia el final de la
cadena. Los mensajes pueden ser evaluados recursivamente, veamoslo en el caso
de los mensajes µα
µα(xn) =∑
xn−1
ψn−1,n(xn−1, xn)
[∑
xn−2
· · ·]
=∑
xn−1
ψn−1,n(xn−1, xn)µα(xn−1) (2.15)
Capitulo 2. Modelos Graficos 15
De igual manera los mensajes µβ(xn) pueden ser evaluados recursivamente
µβ(xn) =∑
xn+1
ψn+1,n(xn+1, xn)
[∑
xn+2
· · ·]
=∑
xn+1
ψn+1,n(xn+1, xn)µβ(xn+1) (2.16)
Cada mensaje implica un conjunto de K valores, uno para cada xn, de manera
que el producto de dos mensajes debe ser visto como una multiplicacion elemento
a elemento de los mensaje, que nos generaran K nuevos valores. Esto nos ha
conducido a un sencillo algoritmo de paso de mensajes, que se puede apreciar en
la Figura, pues la distribucion marginal p(xn) para un nodo xn a lo largo de la
cadena es obtenida multiplicando los mensaje µα(xn) y µβ(xn) y la constante de
normalizacion. Ademas como acabamos de ver, cada uno de estos mensajes puede
ser evaluado recursivamente haciendo un paso de mensajes desde los extremos de
la cadena hacia el nodo xn.
Figura 2.6: Ilustracion del paso de mensajes en una cadena
Capitulo 2. Modelos Graficos 16
Resumen
Este capitulo trata muy brevemente las bases de la teorıa de modelos graficos,
se dan mas detalles en el Apendice A, pero el tema es tema es tan abundante
que excede los objetivos de este trabajo de tesis. Por esa razon ser recomienda
ampliamente consultar [12] y [13] .
• Se ilustra de manera sencilla los conceptos basicos de la teorıa de modelos
graficos
• La separacion-D nos permite conocer relaciones de independencia condicional
en un grafo sin necesidad de calculos complejos, tan solo inspeccionandolo
visualmente.
• Algoritmos basados en el paso de mensajes nos permiten hacer inferencia
sobre un grafo con un costo computacional menor si aprovechamos las rela-
ciones de independencia condicional
Capıtulo 3
Sistemas Dinamicos Lineales
Los sistemas dinamicos lineales nos permiten plantear matematicamente el pro-
blema de seguimiento de objetos. Un sistema dinamico describe la evolucion de un
sistema fısico en el tiempo, por ejemplo el movimiento de un conjunto de planetas
bajo la influencia de sus respectivas fuerzas gravitacionales. Usualmente se quiere
conocer el estado del sistema despues de cierto tiempo, si los planetas llegaran a
colisionar o el sistema se mantendra en equilibrio.
Para algunos sistemas es sencillo conocer su destino, como en el caso de un sistema
solar pues sus movimientos pueden ser conocidos determinısticamente. Otros no
son tan regulares, como es el caso del seguimiento de objetos pues generalmente
estos presentan un comportamiento aleatorio en su dinamica.
Los sistemas dinamicos lineales estan compuestos por dos partes, un vector de
estado x ∈ Rn que describe exactamente el estado del sistema real o hipotetico.
Es a traves de este vector donde podemos especificar la posicion y velocidad de
un objeto.
Tambien cuentan con una funcion o regla f : Rn → Rn la cual nos dice, dado el
estado actual del sistema, cual sera la situacion del sistema en el siguiente instante
de tiempo. En el caso del sistema solar, esta funcion describirıa su movimiento.
Para el problema de seguimiento este movimiento tambien tiene que ser especifica-
do proponiendo alguna ecuacion que represente una aproximacion al movimiento.
Existen dos tipos de sistemas dinamicos, discretos y continuos. Para un sistema
dinamico de tiempo discreto, denotamos el tiempo por k, y el sistema esta especi-
ficado por las ecuaciones.
17
Capitulo 3. Sistemas Dinamicos Lineales 18
x(0) = x0 (3.1)
x(k + 1) = f(x(k)) (3.2)
de lo cual se deduce que x(k) = fk(x0), donde fk una aplicacion recursiva de f
k-veces sobre x0.
Para un sistema dinamico continuo, denotamos el tiempo por t, se especifica por
medio de las siguientes ecuaciones
x(0) = x0 (3.3)
x′ = f(x) (3.4)
donde la funcion donde f especifica que tan rapido cambian los componente del
vector de estado x, i. e. la derivada x′.
Recordemos el modelo HMM, consultar A y figura A.4. Si tanto las variables ob-
servadas como latentes son Gaussianas, es decir existe una dependencia Gaussiana
lineal de las distribuciones condicionales sobre sus padres, entonces el modelo co-
rresponde a un sistema lineal dinamico. Este modelo es mejor conocido como el
filtro de Kalman y resulta ser una gran aplicacion de un algoritmo de paso de
mensajes en un grafo como lo analizaremos en la siguiente seccion. Una breve
introduccion a la teorıa de modelos graficos puede ser vista en el Apendice A.
3.1. Filtro de Kalman
El seguimiento de un objeto implica que de alguna manera tratemos de conocer su
posicion verdadera conforme avance el tiempo, sin embargo el saberla de manera
exacta resulta una tarea casi imposible y tan solo podemos obtener aproximacio-
nes erroneas.
Una buena estrategia para atacar el problema consiste en formularlo como un sis-
tema lineal dinamico, con un modelo grafico correspondiente a un HMM [13]. Esta
da origen a uno de los algoritmos mas usados para problemas secuenciales, el filtro
de Kalman [14].
Existen varias maneras de derivar el filtro de Kalman [15], como un filtro de Wiener
o en un marco Bayesiano entre muchos otros sin embargo veremos su deduccion a
partir de un algoritmo de paso de mensajes.
Capitulo 3. Sistemas Dinamicos Lineales 19
El algoritmo calcula recursivamente estimaciones de los valores verdaderos, en
nuestro caso la posicion del objeto, utilizando las mediciones hechas en el tiempo,
ademas de un modelo matematico basado en dos sistemas dinamicos, llamados de
prediccion y actualizacion. La fase de prediccion utiliza el ultimo estado estimado
para producir una estimacion del estado actual. En la fase de actualizacion se
combina la estimacion de la fase de prediccion con la observacion actual de los
datos.
Planteemos el filtro de Kalman adecuandolo al problema de seguimiento. Defini-
mos a zi como la variable que representa la posicion exacta del objeto las cuales
son las variables escondidas, mientras que xi es nuestra medicion de esta posicion
en el tiempo i. Nuestro problema consistirıa en estimar zn | x1, · · ·xn, la posicion
del objeto en el tiempo actual, en funcion de las posiciones medidas anteriormente.
Lo cual es representado por el grafo de la Figura 3.1. Para ser un modelo lineal, se
Figura 3.1: Modelo Grafico del Filtro de Kalman y que tambien correspondeal HMM
definen las distribuciones de probabilidad de transicion ası como las distribuciones
de probabilidad de emision como distribuciones de probabilidad Gaussianas. Las
distribuciones de probabilidad de transicion son aquellas que van de una variable
escondida a otra, mientras que las de emision son aquellas que van de una variable
observada hacia su variable escondida correspondiente.
Debido a que el modelo esta representado por un grafo dirigido en forma de arbol,
podemos resolver problemas de inferencia eficientemente utilizando un algoritmo
de paso de mensajes, concretamente son las recursiones α las que nos permiten
llegar a las ecuaciones del filtro de Kalman [13]
3.2. Recursiones α
Existe un algoritmo para hacer inferencia sobre el modelo escondido de Markov,
consultar Apendice A, llamado ”forward-backward”[13]. Este se basa en el paso de
Capitulo 3. Sistemas Dinamicos Lineales 20
mensajes, observaciones y emisiones, para calcular el estado de todas las variables
escondidas en el modelo. En un primer paso se envıan mensajes hacia adelante en
el tiempo para el caso de los modelos secuenciales, de xi a zi para luego de zi a
zi+1. Despues se realiza el mismo pase de mensaje pero en sentido contrario, con
lo cual se obtienen las distribuciones marginales posteriores en solo dos pasos.
Para hacer el seguimiento de un objeto, utilizando el modelo de Markov de la
Figura 3.1, solo necesitamos conocer la ultima variable z. Una vez que ha recibido
los mensajes del resto de los nodos es posible calcular su distribucion marginal, por
lo cual no es necesario hacer el paso de los mensajes restantes. Estas recursiones
hacia adelante en el tiempo son tambien conocidas como recursiones α y veremos
como se pueden deducir las ecuaciones del filtro de Kalman a partir de ellas.
Primero definimos α(zn) como la probabilidad de que haya ocurrido lo observado
hasta el tiempo n, es decir
α(zn) = p (x1, · · · , xn, zn) (3.5)
Esta probabilidad puede ser expresada de manera recursiva, es decir en funcion
de α(zn−1), haciendo uso de las propiedades de independencia condicional para los
HMM, ver Apendice .
α(zn) = p (x1, · · · , xn|zn) p (zn) = p (xn|zn) p (x1, · · · , xn−1|zn) p(zn)= p (xn|zn) p (x1, · · · , xn−1, zn)
= p (xn|zn)∑
zn−1
p (x1, · · · , xn−1, zn−1, zn)
= p (xn|zn)∑
zn−1
p (x1, · · · , xn−1, zn|zn−1) p(zn−1)
= p (xn|zn)∑
zn−1
p (x1, · · · , xn−1|zn−1) p(zn|zn−1)p(zn−1)
= p (xn|zn)∑
zn−1
p (x1, · · · , xn−1, zn−1) p(zn|zn−1)
(3.6)
Usando esto obtenemos
α(zn) = p (xn|zn)∑
zn−1
α(zn−1)p(zn|zn−1) (3.7)
Capitulo 3. Sistemas Dinamicos Lineales 21
El calculo de α(zn) utilizando 3.7 produce errores numericos pues las probabilida-
des p (xn|zn) y p(zn|zn−1), que multiplican al valor anterior α(zn−1) son frecuente-
mente muy pequenos. Despues de varias recursiones provocarıa que α(zn) tienda
a cero de manera exponencial excediendo el rango dinamico de la computadora y
por ende se produzcan errores numericos en calculos posteriores de α(zn).
Para evitar estas complicaciones se define una version normalizada de las recur-
siones α(zn) dada por
α(zn) = p(zn|x1, · · · , xn) =p(zn, x1, · · · , xn)p(x1, · · · , xn)
=α(zn)
p(x1, · · · , xn)(3.8)
Definiendo los factores de escalamiento cn
cn = p(xn|x1, · · · , xn−1)
A partir de la regla del producto obtenemos
p(x1, · · · , xn) =n∏
m=1
cm
de esta manera ya podemos obtener una equivalencia
α(zn) = p(zn|x1, · · · , xn)p(x1, · · · , xn) = α(zn)
[n∏
m=1
cm
]
y redefinimos 3.7 como:
cnα(zn) = p (xn|zn)∑
zn−1
α(zn−1)p(zn|zn−1) (3.9)
3.3. Recursiones del filtro de Kalman
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
estimada en dos pasos:
Paso de prediccion p(zn | x1:n) =∫p(zn | zn−1)p(zn−1 | x1:n−1)dxn−1(4.8)
Paso de filtrado p(zn | x1:n) ∝ p(xn | zn)p(zn | x1:n−1)dxn−1 (4.9)
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
q(z1:n | x1:n) = q(zn | z1:n−1, x1:n)q(z1:n−1 | x1:n)
= q(z1)n∏
t=1
q(zt | z1:t−1, x1:t) (4.17)
Ademas la posterior p(x1:n | y1:n) puede ser factorizada [17] como:
p(z1:n | x1:n) = p(z1:n−1 | x1:n−1)p(xn | zn)p(zn | zn−1)
p(xn | x1:n−1)(4.18)
Usando estos resultados podemos expresar los pesos W(i)n recursivamente
W (i)n =
p(z(i)1:n | x1:n)
q(z(i)1:n | x1:n))
=p(z
(i)1:n−1 | x1:n−1)p(xn | z(i)n )p(z
(i)n | z(i)n−1)
q(z(i)n | z(i)1:n−1, x1:n)q(z
(i)1:n−1 | x1:n)p(xn | x1:n−1)
∝ p(xn | z(i)n )p(z(i)n | z(i)n−1)p(z
(i)1:n−1 | x1:n−1)
q(z(i)n | z(i)1:n−1, x1:n)q(z
(i)1:n−1 | x1:n)
= W(i)n−1
p(xn | z(i)n )p(z(i)n | z(i)n−1)
q(z(i)n | z(i)1:n−1, x1:n)
(4.19)
El filtro de partıculas de Gordon et al. [15] esta muy relacionado al metodo de
muestreo Sampling Importance Resampling (SIR)visto anteriormente, y tambien
fue desarrollado independientemente por otros investigadores algunos de los cuales
pueden ser consultados en [17].
Para fines practicos, como en nuestro problema de seguimiento, es mas importante
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 35
estimar p(zn | x1:n) en lugar de la posterior p(z1:n | x1:n). Asumiendo que q(z(i)n |
z(i)1:n−1, x1:n) es equivalente a q(z
(i)n | z(i)1:n−1, xn), la formula recursiva de los pesos
puede ser simplificada como
W (i)n = W
(i)n−1
p(xn | z(i)n )p(z(i)n | z(i)n−1)
q(z(i)n | z(i)1:n−1, xn)
(4.20)
Este filtro comparte las desventajas del metodo de muestreo Importance Sampling,
la distribucion de los pesos tiende a ser asimetrica. Por lo cual, despues de algunas
iteraciones, muy pocas partıculas tienen pesos diferentes de cero lo que se conoce
como degeneracion de los pesos [15].
La idea central del filtro SIR es introducir el paso de remuestreo. Si bien en reali-
dad no previene el problema de degeneracion nos sirve para ahorrar tiempo de
calculo al descartar aquellas partıculas con pesos insignificantes. Lo que realmente
hace es atenuar el empobrecimiento de las partıculas, eliminando las insignifican-
tes y sustituyendo las partıculas de gran peso por varias replicas, con lo cual se
introduce una alta correlacion entre las partıculas. Un algoritmo generico del filtro
de partıculas SIR/Bayesian Bootstrap se observa en la tabla 4.1.
Cuadro 4.1: Filtro de partıculas SIR generico
Para n = 1, 2, 3, · · ·1) Inicializacion.- Para i = 1, · · · , Np z
(i)1 ∼ p(z1),W
(i)1 = 1
Np
2) Importance Sampling.- Para i = 1, · · · , Np muestrear z(i)n
de acuerdo a nuestra distribucion propuesta.
3) Actualizar los pesos.- Calcular los pesos W(i)n
4) Normalizacion.- wn(z(i)n ) = Wn(z
(i)n )
∑Npj=1 Wn(z
(i)n )
5) Resampling.- Generar Np nuevas partıculas z(i)n a partir del
conjunto z(i)n pero de acuerdo a la importancia dada por los pesos W
(i)n
6)repetir los pasos 2 al 5.
Resumen
El filtro de Kalman solo funciona bajo ciertas restricciones, asumiendo modelos
de evolucion lineales y gaussianos. El hacer seguimiento de objetos bajo estas
suposiciones es impractico, dado que su comportamiento es muy diferente. Para
ajustarnos a modelos mas realistas necesitamos recurrir a metodos de muestreo
Capitulo 4. Metodos de Muestreo y Filtro de Partıculas para Seguimiento deObjectos 36
que permitan aproximar las distribuciones verdaderas.
En este capitulo se habla sobre los metodos basicos de muestreo y sobre todo de
su aplicacion en el metodo de estimacion Bayesiana llamada Filtro de Partıculas,
el cual es muy utilizado en el seguimiento de objetos por video ası como en toda
clase de problemas secuenciales.
• Para estimar la posicion de un objeto, en base a las muestras anteriores
de su posicion, debemos estimar Ep(z|x)[f(zn)] utilizando algun metodo de
aproximacion.
• Para muestrear a partir una distribucion p(z) de la cual no es facil obtener
muestras se recurre a una distribucion propuesta q(z) la cual sea facil de
evaluar.
• Rejection Sampling utiliza un distribucion propuesta q(z) que envuelva a
p(z), su dificultad consiste en encontrar una distribucion que sea similar a
la original para poder muestrear eficientemente.
• Importance sampling hace la estimacion de la distribucion buscada utilizando
una coleccion de muestras pesadas. El calculo de estos pesos involucra de
nuevo una distribucion propuesta cuya eleccion afectara el desempeno.
• Los pesos calculados tienden a degenerarse, estar mal distribuidos con la
mayor cantidad de muestras con un valor insignificante.
• Para evitar este problema se hace un re-muestreo, lo que da origen al metodo
de Importance Sampling.
• Este re-muestreo se hace muestreando uniformente a partir de la distribucion
discreta formada por los pesos calculados.
• El filtro de partıculas a diferencia del filtro de Kalman no asume modelos
Gaussianos lineales. Consta de un paso de prediccion y otro de filtrado o co-
rreccion. Ademas se agrega el paso de remuestreo para evitar la degeneracion
de las muestras.
Capıtulo 5
Algoritmos de Seguimiento
La teorıa revisada en los capıtulos anteriores ha tenido como finalidad conocer las
bases de los algoritmos de seguimiento de objetos en el estado del arte. Muchos
algoritmos actuales como [18], [19], [20], [21] y [22] estan basados en el filtro de
Kalman, el filtro de Partıculas ası como en algoritmos de paso de mensajes sobre
modelos graficos.
Con el objetivo de conocer mejor dichas bases teoricas, se implementaron diferentes
algoritmos de seguimiento. Cuatro de ellos estan basados en el filtro de partıculas.
Se diferencian en el rasgo que utilizan para seguir al objetivo y para hacer una
comparacion justa con el fin de conocer sus virtudes y debilidades, se utilizara el
mismo modelo dinamico en las diferentes implementaciones.
Ademas se probaran algoritmos de seguimiento diferentes al filtro de partıculas
como el popular algoritmo CamShift [6] y el algoritmo de Aprendizaje Bayesiano
de [7]. Este ultimo esta basado en una medida de similaridad y busca al objetivo
utilizando un metodo de optimizacion.
Los detalles teoricos de cada uno de estos algoritmos son expuestos en este capitulo
y su desempeno se probo a traves de una serie de experimentos descritos en el
siguiente.
Cabe mencionar que a partir de los resultados obtenidos en las pruebas, surgio la
idea de un algoritmo basado en el filtro de partıculas pero que aprovechara la
principal caracterıstica del algoritmo de Aprendizaje Bayesiano la cual consiste
en utilizar un promedio Bayesiano para aprender la evolucion del objetivo. La
principal desventaja del algoritmo de Aprendizaje Bayesiano es que utiliza un
metodo de optimizacion para buscar al objetivo. En su lugar se busca utilizar el
filtro de partıculas el cual hace inferencia para predecir la ubicacion del objeto,
37
Capitulo 5. Algoritmos de Seguimiento 38
ası como el promedio bayesiano incorporado en la metrica nos permitira aprender
los cambios en la apariencia del objeto. Si el objeto cambia de color o sufre otra
deformacion gradual es informacion que se acumulara en el promedio bayesiano.
Si el objeto es diferente al descriptor inicial que se dio de el, podremos distinguirlo
mas facilmente.
5.1. Filtro de partıculas basado en Color
Este algoritmo propuesto por Nummiaro [23] utiliza distribuciones de color como
objetivos pues son bastante robustos ante cambios afines como rotacion, no-rigidez
ademas de oclusiones parciales. Para describir al objeto hace uso de histogramas
de color en el espacio RGB utilizando 8x8x8 bins. Las distribuciones de color se
calculan dentro de una region elıptica con semiejes Hx y Hy. Ademas se penali-
zan los pıxeles cerca de los bordes asignandoles pesos mas pequenos utilizando la
funcion
k(r) =
1− r2 : r < 1
0 : otro caso(5.1)
donde r es la distancia desde el centro. La distribucion de color py = (p(u)y )u=1,··· ,m
en la posicion y se calcula como
p(u)y = f
I∑
i=1
k
(‖y − xi‖a
)δ [h(xi)− u] (5.2)
donde I es el numero de pıxeles xi en la region, δ es la funcion delta de Kronecker,
a =√H2
x +H2y es un parametro utilizado para adaptar el tamano de la region, y
el factor de normalizacion f = 1∑I
i=1 k
(
‖y−xi‖a
) nos permite cumplir∑m
u=1 p(u)y = 1.
Utiliza como medida de similaridad la distancia de Hellinger
d =√1− ρ [p, q] (5.3)
donde ρ [p, q] =∑m
u=1
√p(u)q(u) es el coeficiente de Bhattacharyya.
El modelo dinamico de este filtro de partıcula contempla un vector de estado
s = x, y, x, y, Hx, Hy, a (5.4)
Capitulo 5. Algoritmos de Seguimiento 39
donde x, y especifican la posicion del centro de la elipse, x, y el movimiento, Hx, Hy
la longitud de los semiejes y a el cambio correspondiente de escala.
Las muestras son propagadas aplicando el modelo dinamico
st = Ast−1 + wt−1 (5.5)
donde A define el componente determinista de modelo y wt−1 es una variable
Gaussiana Multivariada. Generalmente se utiliza un modelo de primer orden para
A de manera que describa una region con velocidades constantes x, y y cambio de
escala a. En el caso de nuestro vector de estado s, A seria una matriz diagonal.
Cada muestra es pesada, de acuerdo al procedimiento de Importance-Sampling
Resampling.
Para favorecer aquellas muestras cuyas distribuciones de color son muy similares
a la del objetivo, pequenas distancias de Bhattacharyya corresponden a grandes
pesos de acuerdo a:
π(n) =1√2πσ
e−d2
2σ2 =1√2πσ
e−(1−ρ[p,q])
2σ2 (5.6)
los cuales son especificados por una Gaussiana con varianza σ, que tambien puede
verse como la aplicacion de un kernel Gaussiano utilizando la distancia de Hellinger
[24], [25].
Este algoritmo de seguimiento incorpora un esquema para actualizar el modelo
del objetivo y ası tratar de adaptarse a los cambios de apariencia que sufra el
objeto a seguir. Primero se descartan imagenes atıpicas, regiones donde el objeto
esta ocluido o existe mucho ruido, de manera que nos aseguremos que el modelo no
se actualiza cuando el algoritmo de seguimiento ha perdido al objetivo. De manera
que se utiliza la condicion de actualizacion
πE[S] > πT (5.7)
donde πE[S] es la probabilidad de observar el estado medio E[S], que se calcula
pesando partıculas generadas a partir del mismo estado medio. πtes un umbral
fijado arbitrariamente. Cuando esta condicion se cumple, la actualizacion se realiza
de la siguiente manera
q(u)t = (1− α) q
(u)t−1 + αp
(u)E[Si]
(5.8)
Capitulo 5. Algoritmos de Seguimiento 40
para cada bin u donde α pesa la contribucion del histograma del estado medio
pE[St]. Esto simula un procedimiento de olvido en el sentido que la contribucion de
un cuadro de video especifico decrece exponencialmente dependiendo de que tan
alejado este del cuadro actual.
El funcionamiento de este filtro de partıculas se resume en el algoritmo 5.1.
Capitulo 5. Algoritmos de Seguimiento 41
Algorithm 5.1: Algoritmo del Filtro de Partıculas de Color (FPC)
Dado el conjunto de muestras St−1y el modelo objetivo
q = f∑l
i=1 k(
‖xi‖a
)δ [h (xi)− u]
Se realizan los siguientes pasos:
1. Seleccionar N muestras del conjunto St−1 con probabilidadπ(n)t−1
a) Calcular las probabilidades acumulativas c′t−1
c(0)t−1 = 0
c(n)t−1 = c
(n−1)t−1 + π
(n)t−1
c′(n)t−1 =
c(n)t−1
c(N)t−1
b) Generar un numero aleatorio, uniformemente distribuido r ∈ [0, 1]
c) Encontrar por busqueda binaria, el numero j mas pequeno para el
cual c′(j)t−1 ≥ r
d) fijar s′(n)t−1 = s
(j)t−1
2. Propagar cada muestra del conjunto S′
t−1 a traves del modelo de
movimiento
s(n)t = As
′(n) + w(n)t−1
donde w(n)t−1 es ruido aleatorio Gaussiano multivariado.
3. Observar las distribuciones de color
a) Calcular las distribuciones de color para cada muestra del conjunto St
utilizando la informacion de los peles x en su vecindad.
p(u)
s(n)t
= f
I∑
i=1
k
∥∥∥s(n)t − xi
∥∥∥a
δ [h(xi)− u]
b) calcular el coeficiente de Bhattacharyya para cada muestra del
conjunta St comparandolo con la distribucion q propuesta como
objetivo.
ρ[ps(n)t
, q]=
m∑
u=1
√p(u)
s(n)t
q(u)
c) pesar cada muestra del conjunto St
π(n)t =
1√2πσ
e−
1−ρ
ps(n)t
,q
2σ2
4. Estimar el estado medio del conjunto St
E [St] =
N∑
n=1
π(n)t s
(n)t (5.9)
Capitulo 5. Algoritmos de Seguimiento 42
5.2. Filtro de Partıculas de Textura
Al igual que la anterior propuesta, esta se basa en el filtro de particular SIR, y
utiliza un kernel Gaussiano para pesar las contribuciones de las partıculas. La di-
ferencia consiste precisamente en el descriptor del objeto a seguir, pues ahora se
utilizara un descriptor de textura llamado histograma de orientacion de bordes [3].
Estos son utilizados para diferenciar objetos cuando en una escena se presentan
objetos similares a nuestro objetivo. Los bordes son detectados utilizando operado-
res de Sobel verticales y horizontales, ademas de las magnitudes de los gradientes
y sus orientaciones.
Para detectar los bordes, primero convertimos las imagenes de color a imagenes
en escala de grises.
Gx(x, y) = Kx ∗ I(x, y) Gy(x, y) = Ky ∗ I(x, y)
donde Kxy Ky son operadores de Sobel verticales y horizontales.
La fuerza y orientacion de los bordes se determina con:
S(x, y) =√G2
x(x, y) +G2y(x, y)
θ = arctan (Gy(x, y)/Gx(x, y))
El histograma esta dividido en 4 bins de acuerdo a las direcciones de los vectores
de borde. La contribucion a cada bin es proporcional a la magnitud S(x, y) la
cual es repartida entre los sectores en los cuales se encuentra el vector utilizando
interpolacion bilineal, ver figura 5.1.
5.3. Filtro de Partıculas de Movimiento
Ademas del color y la textura, la actividad de movimiento instantaneo captura
aspectos importantes en las secuencias de video. Las camaras de video estaticas
nos permiten utilizar la diferencia absoluta entre cuadros de video consecutivos,
este es el rasgo considerado en este algoritmo.
Como se propone en [4], se incorpora la diferencia de cuadros de video en un
modelo de verosimilitud similar al propuesto por [23]. En el articulo original se
utilizan un algoritmo de seguimiento que utiliza multiples rasgos incluido este, sin
Capitulo 5. Algoritmos de Seguimiento 43
Figura 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 caso a Θ2 y Θ3 secalcula por medio de interpolacion bilineal.
embargo el objetivo de este trabajo es experimentar con algoritmos que utilicen
un solo rasgo.
Sea yMn la diferencia absoluta entre dos cuadros consecutivos de video en los tiem-
pos n y n − 1. Un histograma hMx =(hM1,x, · · · , hMB,x
)es asociado con la region
especificada por el estado x.
Para el caso de los descriptores de color, la mayorıa de la informacion util se ubi-
cara al centro de la region elıptica Bx, en contraste, la mayorıa de la actividad de
movimiento generada por un objeto se concentrara alrededor de este. Para asegu-
rarse que la silueta de los objetos sea incluida se considera una region mas grande
para las mediciones de movimiento.
La construccion o aprendizaje de un histograma de referencia para las mediciones
de movimiento no es una tarea sencilla. La amplitud de estas mediciones depen-
dera tanto de la apariencia del objeto ( sus bordes) como de su movimiento actual.
Si se examina una region sin movimiento, toda la informacion caera sobre el bin
menor del histograma. Cuando se presente movimiento, lo mas probables es que
las mediciones se repartiran entre todos los bins sin un patron definido. Por esta
razon se utilizan un histograma uniforme hMref como modelo objetivo
hMi,ref =1
B, i = 1, · · · , B (5.10)
Una gran desventaja de esta propuesta es que facilmente pierde al objetivo cuando
este se mantienen estatico, es ocluido parcial o totalmente, por lo que es necesario
Capitulo 5. Algoritmos de Seguimiento 44
reiniciar el seguimiento. Para esto se utiliza un esquema que permite a las medicio-
nes de movimiento saltar en el espacio hacia regiones con actividad de movimiento
significante. Los autores [4] proponen evaluar la similaridad en un conjunto de
posiciones fijas dentro de la imagen, de preferencia como nodos de una malla re-
gular mientras el numero de puntos a evaluar impliquen un costo computacional
aceptable.
Unicamente se toma en cuenta aquellos nodos cuya evaluacion de similitud sobre-
pasen un umbral D2(hM(x,y,1), hMref) > τ
donde D =(1−∑B
i=1
√hi,1hi,2
)1/2
esta basado tambien en el coeficiente de
Bhattacharyya. Utilizando estas posiciones de gran actividad, denotadas por pi =
(xi, yi), se define una mezcla como propuesta de la localizacion del objeto como
qM(xn, yn|xn−1, yn−1,y
Mn
)= βRWN
((xn, yn) | (xn−1, yn−1) ,
(σ2x, σ
2y
))
+(1− βRW )
NM
NM∑
i=1
N((xn, yn) |pi,
(σ2x, σ
2y
))(5.11)
donde el primer componente es una caminata aleatoria Gaussiana alrededor de la
ultima posicion conocida (xn−1, yn−1) y el segundo componente es una mezcla alre-
dedor de las posiciones donde se detecto actividad de movimiento. Para controlar
la contribucion de cada termino se utiliza 0 < βRW < 1, para la implementacion
realizada se utilizo βRW = 0,75. Este esquema nos permite despertar al algoritmo,
en caso de detectarse nuevamente movimiento o detectarlo en otra zona.
Si se detecta movimiento, hecho por otro objeto en movimiento, la propuesta de
[4] no sugiere estrategia alguna para diferenciarlo de nuestro objetivo. Por esta
razon nuevas partıculas seran creadas en esta nueva zona con movimiento y su
presencia afectara el calculo la prediccion de la posicion del objetivo.
5.4. Algoritmo de Seguimiento Hıbrido
Es una propuesta de los autores de [8]. Su algoritmo [5] es un filtro de partıculas
basado en color que en adicion al procedimiento SIR, incluye un paso donde acerca
las partıculas hacia el objetivo utilizando Mean Shift [16].
Hace uso del mismo histograma de color empleado en [23]. De igual utiliza la dis-
tancia de Hellinger, basada en el coeficiente de Bhattacharyya, para calcular la
similitud de los candidatos.
Capitulo 5. Algoritmos de Seguimiento 45
Algorithm 5.2: Algoritmo de Seguimiento Hıbrido (HT)
1. Seleccionara N partıculas de acuerdo a sus pesos.
2. Propagar las partıculas de acuerdo al modelo dinamico.
3. Observar su distribucion de color.
4. Se aplica MeanShift a cada partıcula.
5. Recalcular sus pesos de acuerdo a (5.6).
6. Estimar el estado medio del sistema dinamico.
5.5. Camshift
El algoritmo Continously Adpative Mean Shift [6], como su nombre lo indica esta
basado en el algoritmo Mean Shift [16],[26]. A diferencia de este ultimo, que esta
disenado para objetivos que no cambian su apariencia, Camshift esta disenado
para seguir objetos cuya distribuciones de color cambie constantemente.
Utiliza un descriptor del espacio de color Hue Saturation Value, el cual separa la
tinta (hue) de la saturacion y el brillo. Se crea un histograma unidimensional con
la informacion del canal H de este espacio.
El descriptor de color es utilizado como un modelo de referencia para asignar un va-
lor a los pixeles de las imagenes de entrada, utilizando el metodo de ”backprojection”[27].
Estas intensidades tienen un rango de [0, 255] siendo 0 el valor correspondiente a
la menor probabilidad. En lugar de una ventana de busqueda cuyos parametros
como radio o ancho/altura son fijos, estos se determinan como una funcion del
area de la distribucion de color(zeroth moment) . Se fija una ventana de busqueda
inicial, la cual se posiciona sobre la imagen de ”backprojection”. Se calcula el cen-
tro de masa del distribucion de probabilidad de color ubicada dentro de la region
de busqueda. Se posiciona el centro de la region de busqueda en el centro de masa
y se encuentra el area debajo de esta. al final de la iteracion los parametros de la
region de busqueda se adaptan a la nueva zona encontrada. El algoritmo CamShift
se muestra en 5.3.
Capitulo 5. Algoritmos de Seguimiento 46
Algorithm 5.3: Algoritmo CAMSHIFT (CS)
1. Escoger la posicion inicial de la ventana de busqueda
2. Mean Shift
a) Calcular la posicion media en la ventana de busqueda
b) Centrar la ventana de busqueda en la posicion encontrada en a)
3. Almacenar la probabilidad de la region (zeroth moment)
4. Se utiliza una heurıstica para adaptar las dimensiones de la ventana debusqueda basadas en los valores del zeroth moment.
5. Repetir los pasos 1 al 4 hasta el criterio de convergencia o si eldesplazamiento ha sido muy pequeno.
El mismo autor reconoce en ?? algunos puntos debiles del algoritmo. Camshift
escala su ventana de busqueda al tamano del objetivo, pero esto lo hace prome-
diando la posicion del centro de masa, cuyo calculo es muy susceptible al ruido.
Se ignoran objetos fuera del area de busqueda, si el movimiento es muy rapido
y el objeto escapa de esta, CamShift lo perdera sin tener manera de recuperalo.
Mientras no se pierda de todo al objeto, seguira las regiones mas parecidas de
acuerdo a al distribucion de probabilidad del objeto. De manera general todo el
proceso de seguimiento se basa en la distribucion de probabilidad del color del
objeto, si esta no es calculada adecuadamente los errores se propagaran al resto
del procedimiento.
Para evaluar su desempeno se utilizo la implementacion CAMSHIFT de OpenCV
[28].
Capitulo 5. Algoritmos de Seguimiento 47
5.6. Seguimiento de Objetos Basado en Apren-
dizaje Bayesiano
En este algoritmo [7] se hace inferencia sobre la distribucion que tendra el descrip-
tor del objeto despues de un tiempo. Trata de localizar a un objeto en movimiento
que puede ser no rıgido, con diferentes colores o texturas. Para identificar al objeto
hace uso de un descriptor basado en un histograma definido por la distribucion de
probabilidad de color en el espacio RGB. El espacio de color es divido en n bins,
donde la funcion b asigna el bin correspondiente segun los valores RGB de cada
pıxel de la siguiente manera: b : y → 1, · · · , n donde y denota las coordenada
(x, y) de un pıxel dentro de la imagen. De esta manera, un objeto puede ser re-
presentado por su distribucion de color utilizando un histograma de color.
Para caracterizar un objeto de interes dentro de la escena, definimos A(x) como
el area centrada alrededor de la posicion x. El area A(x) representa el objetivo a
seguir en el cuadro de video actual.
Es ası como la distribucion de probabilidad de color del objeto a seguir se define
como:
px(u) =∑
y∈A(x)
δ (b(y)− u) (5.12)
donde δ es la funcion delta de Kronecker y u = 1, · · · , n.Este algoritmo se basa en el hecho de que el descriptor del objeto a seguir, ira
cambiando con el paso del tiempo por lo que se asume un conjunto de histogramas
independientes
X(t) =q(1)x , q(2)x , · · · , q(t−1)
x
(5.13)
esta dado en el tiempo t, donde cada vector q(i)x representa el objetivo localizado en
la posicion x en el i-esimo cuadro. Cada elemento de ese conjunto es una muestra
de cierta distribucion desconocida p(q(i)x ) que representa al objetivo buscado en
cada cuadro. Dado el vector q(t)x , el objetivo encontrado en el cuadro anterior,
buscamos estimar la posicion del vector objetivo q(t+1)x en el cuadro actual (t+1).
A pesar de que la distribucion de p(q(t+1)x ) es desconocida, asumimos que tiene
una forma parametrica p(q(t+1)x , θ|X(t)) la cual si es conocida aunque asumiendo el
vector de parametros θ como desconocido. La funcion de distribucion condicional
puede ser escrita como:
p(q(t+1)x |q(t)x , X(t)
)∝ p
(q(t)x |q(t+1)
x
)p(q(t+1)x |X(t)
)(5.14)
Capitulo 5. Algoritmos de Seguimiento 48
donde p(q(t)x |q(t+1)
x
)es una funcion de verosimilitud. Buscamos encontrar la posi-
cion actual en base a las muestras observadas, es decir p(q(t+1)x |q(t)x , X(t)), la cual
seria nuestra mejor aproximacion a la distribucion desconocida q(t+1)x . Para esto
integramos la distribucion conjunta p(q(t+1)x |q(t)x , X(t)) sobre θ:
p(q(t+1)x |X(t)
)=
∫
Ω0
p(q(t+1)x , θ|X(t)
)dθ (5.15)
El termino dentro de la integral puede ser reescrito como:
p(q(t+1)x , θ | X(t)
)=p(q(t+1)x , θ, X(t)
)
p (X(t))
=p(q(t+1)x | θ,X(t)
)p(θ,X(t)
)
p (X(t))
= p(q(t+1)x | θ,X(t)
)p(θ | X(t)
)(5.16)
Gracias a que la seleccion de q(t+1)x y las muestras en el conjunto X(t) son in-
dependientes, cumpliendose p(q(t+1)x | θ,X(t)) = p(q
(t+1)x | θ) podemos reescribir
como:
p(q(t+1)x |X(t)
)=
∫
Ω0
p(q(t+1)x , θ
)p(θ|X(t)
)dθ (5.17)
Para calcular la densidad posterior p(θ|X(t)) y la densidad de probabilidad p(q(t+1)x |X(t))
se hace uso de una tecnica de estimacion de parametros Bayesiana [29]. Se asume
que la distribucion p(θ|X(t)) es normal con un vector de parametros θ = µ de
modo que
p(q(t+1)x | µ) ∼ N (µ, σ2) (5.18)
donde µ es el unico parametro desconocido. Se asume que cualquier conocimiento
a priori que se pudiera tener acerca de µ puede ser expresado por una densidad a
priori p(µ) de la cual tambien se asume
p(µ) ∼ N (µ0, σ20) (5.19)
Capitulo 5. Algoritmos de Seguimiento 49
donde µ0 y σ20 son conocidos. Utilizando la regla de Bayes, el termino p
(θ|X(t)
)
puede ser reescrito como
p(µ|X(t)
)=
p(X(t)|µ
)p (µ)∫
Ωµp (X(t)|µ) p (µ) dµ ∝
t−1∏
i=1
p(q(i)x |µ)p(µ) (5.20)
Utilizando las ecuaciones 5.18 y 5.19 se puede demostrar [29] que
p(µ|X(t)
)∼ N
(µt, σ
2t
)(5.21)
µt =(t− 1)σ2
(t− 1)σ20
mt +σ2
(t− 1)σ20 + σ2
µ0 (5.22)
σ20 =
σ20σ
2
(t− 1)σ0 + σ2(5.23)
mt =1
t− 1
t−1∑
i=1
q(i)x (5.24)
por lo tanto
p(q(t+1)x |X(t)) ∼ N(µt, σ
2 + σ2t ) (5.25)
Ademas, si
p(q(t)x |q(t+1)x ) =
1
σ0√2π
exp
−1
2
∥∥∥q(t)x − q(t+1)x
∥∥∥2
σ2v
(5.26)
donde σv es la varianza del ruido en el termino de verosimilitud, entonces la funcion
de distribucion condicional puede expresarse como
p(q(t+1)x |q(t)x , X(t)
)∝ exp
−1
2
∥∥∥q(t)x − q(t+1)x
∥∥∥2
σ2v
exp
−1
2
∥∥∥q(t+1)x − µt
∥∥∥2
σ2 + σ2t
(5.27)
Dada esta ecuacion, el problema se reduce a buscar q(t+1)x que maximiza la distri-
bucion condicional a posteriori, el estimador MAP, o equivalentemente
arg mınq(t+1)x
[−log
(p(q(t+1)x |q(t)x , X(t)
))](5.28)
El primer termino de 5.27 es proporcional a la norma Euclidiana entre dos vectores
pero tiene el problema de penalizar gravemente los componentes cero en el vector,
que en el caso de los histogramas de color son muy comunes. En su lugar se utiliza
Capitulo 5. Algoritmos de Seguimiento 50
una medida de similitud basada en una proyeccion normalizada
p(px|q(t+1)x ) =
1
γexp
1−
⟨px, q
(t+1)x
⟩
‖px‖∥∥∥q(t+1)
x
∥∥∥
(5.29)
donde γ es una constante de normalizacion y 〈x, y〉 = xTy. El argumento de
esta ultima funcion esta acotado entre [0,1], no depende de la magnitud de los
vectores y los componentes que son cero no son penalizados gravemente debido al
producto interno entre los vectores. En [7] se demuestra que esta metrica produce
superficies con una pendiente pronunciada hacia regiones con valores mınimos,
haciendo posible aplicar algoritmos de optimizacion rapidos y sencillos.
Con base en las ecuaciones (5.27) y (5.28) se define a la distancia estimadora MAP
como
D(px, q
(t+1)x ;mt, σ
2, σ2t
)=
1−
⟨px, q
(t+1)x
⟩
‖px‖∥∥∥q(t+1)
x
∥∥∥
+
∥∥∥q(t+1)x −mt
∥∥∥2
σ2 + σ2t
(5.30)
Dado que µT tiende a mT y σ2T tiende a 0 conforme el numero de cuadros aumenta,
se aproxima la metrica como
D(px, q
(t+1)x ;mt, σ
2, σ2T
)=
1−
⟨px, q
(t+1)x
⟩
‖px‖∥∥∥q(t+1)
x
∥∥∥
+
∥∥∥q(t+1)x −mt
∥∥∥2
σ2(5.31)
Resolver el problema de seguimiento con esta propuesta implicarıa encontrar el
mınimo global en la superficie generada por la metrica sobre la imagen. Esto sig-
nificarıa un alto costo computacional y el hacer optimizacion analıtica tambien
resulta demasiado complejo. Por esta razon se recurre a un metodo de optimiza-
cion, el de Nelder-Mead [30]. Este metodo no garantiza alcanzar el mınimo, pero
puede generar una solucion muy cercana a la optima rapidamente, lo cual sirve
para una aplicacion rapida y simple. El metodo NM trata de minimizar una fun-
cion escalar no lineal utilizando unicamente evaluaciones de la funcion. Para ello
hace uso de un simplejo , una figura geometrica de n dimensiones. Cada vertice
del simplejo son puntos de evaluacion de la funcion y estos se reorientan tratando
de alcanzar cada vez un valor menor. Para mas detalles consultar [30].
Los pasos del algoritmo BL se describen en el cuadro 5.4.
Capitulo 5. Algoritmos de Seguimiento 51
Algorithm 5.4: Algoritmo de Seguimiento basado en Aprendizaje Bayesiano (BL)
Dado el histograma del objetivo px, y fijando q(0)x = px
Para t = 1, 2, 3, · · ·
1. Usar las coordenadas del vector q(t−1)x para definir los vertices del simplejo
en las posiciones x0 = x, x0 − (0, d)T , x0 + (d, 0)T donde d es un
desplazamiento fijado a 10 pixeles.
2. Calcular el promedio mt ec. (5.24) . Iterar el algoritmo NM iniciando con
los vertices del simplejo en las posiciones definidas en el paso 1, y utilizar la
funcion de distancia 5.31. Cuando termine el proceso iterativo, fijar q(t+1)x
en la posicion del vertice del simplejo con menor evaluacion de la funcion
de distancia.
3. Agregar q(t)x a X(t). Obtener el siguiente cuadro de video y t = t + 1.
5.7. Filtro de Partıculas con Aprendizaje Baye-
siano
El algoritmo Aprendizaje Bayesiano tiene un buen desempeno y quiza su principal
virtud sea el que no solo busca algo parecido al objetivo inicial, si no que tam-
bien busca candidatos parecidos al vector promedio, que es calculado con todas
las muestras del objeto encontradas anteriormente. Esto le permite buscar a su
objetivo a pesar de que sufra considerables cambios en su apariencia.
Su principal desventaja es el uso del metodo de optimizacion Nelder-Mead, que
esta basado en puntos de prueba cuyas posiciones son calculadas determinıstica-
mente. Como lo veremos en el siguiente capitulo donde se analizan experimentos y
sus resultados, bajo ciertas condiciones algunos movimientos junto con escenarios
distractores pueden lograr que el objeto se escape.
Un metodo para buscar al objetivo mas eficientemente es el propio mecanismo del
filtro de partıculas, donde incluso se puede incluir informacion a priori sobre el
tipo de movimiento del objeto especificando un modelo de movimiento adecuado.
Aprendizaje Bayesiano hace inferencia para conocer la forma que tendra el des-
criptor del objetivo despues de cierto tiempo, mientras el filtro de partıculas infiere
Capitulo 5. Algoritmos de Seguimiento 52
la posicion que este tendra. Tal vez combinar estas estrategias resulte en un buen
algoritmo.
Basados en esta idea se propone un filtro de partıculas SIR donde los pesos de las
partıculas esten dados por
w(t+1)n =
1√2πσ
[e−
(1−ρ[px,q(t+1)x ])
2σ2 e−(1−ρ[mt,q
(t+1)x ])
2σ2
](5.32)
donde basicamente se utiliza un kernel Gaussiano [24], [25] generado a partir de
otros dos. El primero seria el mismo utilizado por Nummiaro en [23] que nos per-
mitirıa evaluar la similitud entre nuestro objetivo px y algun candidato q(t)x . El
segundo kernel de este componente mide la similitud del promedio bayesiano mt
(5.24) contra el candidato.
Resumen
En este trabajo de tesis se pretende aprender mas sobre las tecnicas en el estado
del arte, para seguimiento de objetos por video. Con esa finalidad se trabajo con
los algoritmos fundamentales, como el filtro de partıculas.
Se implementaron seis algoritmos diferentes, con diferentes descriptores del objeto
y diferentes tecnicas para predecir la ubicacion del objeto. Evaluarlos exhaustiva-
mente nos permitira conocer las ventajas y debilidades de las diferentes aproxima-
ciones.
Las caracterısticas principales de los algoritmos de seguimiento implementados
son:
• El filtro de Partıculas basado en Color (FPC) [23] utiliza un descriptor de
color en el espacio RGB. La busqueda del objetivo la realiza con el esquema
del filtro de partıculas SIR visto en el capitulo anterior.
• El filtro de partıculas de Textura (FPT)[3] tambien se basa en el filtro de
partıculas SIR pero su descriptor trata identificar al objeto por medio de sus
bordes, los cuales se calculan utilizando el operador de Sobel.
• La aproximacion de [4] (FPM) se basa en la diferencias absolutas entre cua-
dros de video consecutivos. Crea un descriptor con el histograma de dichas
Capitulo 5. Algoritmos de Seguimiento 53
diferencias, argumentando que el movimiento de un objeto producira un
histograma uniforme, es decir cambios de intensidad en casi todos los bins.
Debido a que pierde el objeto si este se queda estatico, o relativamente estati-
co si la camara esta en movimiento, utiliza partıculas fijas en la escena para
detectar cualquier movimiento que pase por ellas, aunque eso nos arriesga a
detectar movimiento de otros objetos distintos al buscado.
• El algoritmo de seguimiento hıbrido [5] (HT) propone mejorar el filtro de
partıculas SIR incluyendo una etapa de aproximacion, anterior al remuestreo,
en la cual las partıculas son desplazadas hacia el objetivo utilizando Mean
Shift [16]. Utiliza un descriptor de color RGB y su mejora promete mejores
resultandos utilizando un menor numero de partıculas que las utilizadas
normalmente.
• Camshift (CS) [6] es un popular algoritmo de seguimiento. Utiliza un des-
criptor de color en el espacio de color HSV de acuerdo a la propuesta original
sin embargo esto no fue muy bueno. Con base en el histograma del objetivo,
crea una imagen de la escena, donde la intensidad de los pixeles esta dada
por la distribucion de la similitud con el objeto. Esta basado en Meanshift
y propone mejorarlo cambiando las dimensiones del area de busqueda en
funcion de la distribucion en el cuadro anterior.
• Aprendizaje Bayesiano (BL) [7] propone utilizar una medida de similitud,
que incluye un promedio bayesiano el cual va registrando como cambia la
apariencia del objetivo con el paso del tiempo. Esta medida de similitud fue
calculada haciendo inferencia precisamente sobre la forma que tendra el des-
criptor del objetivo despues de cierto tiempo, en lugar de inferir su posicion.
El objetivo es localizado utilizando el metodo de optimizacion del simplejo
de Nelder-Mead [30].
• Se propone un algoritmo de seguimiento nuevo (FPBL), un filtro de partıcu-
las que utilice el promedio bayesiano empleado por [7] en la metrica utilizada
para pesar las contribuciones de las partıculas. Esto fue inspirado en los bue-
nos resultados obtenidos con los algoritmos FPC y BL, como se vera en el
siguiente capitulo.
Capıtulo 6
Experimentos y Resultados
En el capitulo anterior se describieron los diferentes algoritmos utilizados en este
trabajo de tesis, ahora se detallara el marco experimental empleado para evaluar su
desempeno. Con el fin de garantizar una evaluacion justa se probara la efectividad
de cada uno de los algoritmos de seguimiento en diversas situaciones. Para ello se
emplea un conjunto de videos, algunos provenientes de bases de datos reconocidas
como [9],[8], [10] ya que cuentan con archivos que detallan la posicion del objeto,
la cual debe ser estimada por los algoritmos de seguimiento, en cada cuadro de las
secuencias de video. Estos registros de la posicion y dimensiones verdaderas de los
objetivos reciben el nombre de estandar de oro o ”ground-truth”por su nombre en
ingles.
Para diversificar aun mas los diferentes escenarios en la evaluacion se tomaron
otras secuencias de videos, algunas tomadas de Internet, los archivos de estandar
de oro correspondientes a estos videos fueron elaborados detalladamente cuadro
por cuadro.
La importancia de estos registros es que nos permiten utilizar los datos verdaderos
para comparar las predicciones hechas por los algoritmos.
En total se emplearon 20 secuencias de video que ejemplifican diversos escena-
rios, algunas muestran un solo objeto en movimiento con la intencion de presentar
una prueba sencilla para los algoritmos, otras presentan movimientos rapidos y
complejos ası como oclusiones y/o deformaciones. Algunos videos presentan varios
objetos en movimiento ası como el seguimiento de rostros. Esto genera compli-
caciones cuando el objetivo es oculto totalmente de la vista de la camara, por
ejemplo cuando alguna persona se coloque entre el objetivo y la camara o el rostro
54
Capitulo 6. Experimentos y Resultados 55
de una persona se pierda cuando el sujeto de la espalda.
Para efectuar un analisis cualitativo de un algoritmo de seguimiento se debe tomar
en cuenta tanto la precision de la localizacion, el que tan cerca se aproximo el algo-
ritmo a la verdadera posicion, ası como el area de predicion la cual es importante
si se busca que los algoritmos sean robustos a cambios de escala del objeto. Las
siguiente metricas, propuestas en [11], se utilizaron para evaluar los experimentos.
Error de seguimiento (OTE).-, el cual esta dado por la distancia euclidiana
del centro del objeto, segun el estandar de oro, hacia el centro del objeto predicho
por el algoritmo de seguimiento
OTE =1
Nrg
∑
i
√(xgi − xri)
2 + (ygi − yri)2
donde (xgi, ygi) son las coordenada del objeto segun el archivo de estandar de oro
en el i-esimo cuadro de video y (xri, yri) es la posicion predicha por el algoritmo
de seguimiento en ese mismo instante.
Tasa de deteccion de seguimiento (TDR).- Es un indice en funcion de la
cantidad de positivos verdaderos logrados por el algoritmo, que nos caracteriza el
desempeno de algoritmo de seguimiento. Un positivo verdadero se logra cuando
un punto del estandar de oro esta localizado dentro de la zona predicha por el
algoritmo de seguimiento.
TDR =Numero de positivos verdaderos obtenidos del objeto
Numero total de puntos de estandar de oro para el objeto
Error de traslape (OE).- Los objetos a seguir pueden cambiar de escala, alejando-
se o acercandose a la camara, incluso por deformaciones. Esta metrica nos permite
saber que tan robusto es el algoritmo de seguimiento a estos cambios afines. Esta
definido como
OE = 1− T ∩GT ∪G
donde G es el area descrita en el estandar de oro y T es la region predicha por el
algoritmo de seguimiento. Ademas esta medida nos permite saber si el algoritmo
de seguimiento ha perdido al objeto, lo cual sucede cuando el error de traslape es
igual a 1.
Capitulo 6. Experimentos y Resultados 56
Todos los algoritmos se ejecutaron sobre las veinte secuencias de video disponibles.
En el caso de los filtros de partıculas que cuentan con elementos aleatorios razon
por la cual una sola muestra no es suficiente para conocer su desempeno , se
realizaron 100 iteraciones por video y algoritmo. El promedio de estas iteraciones
para cada una de las metrica fueron los datos a evaluar.
Los algoritmos basados en el filtro de partıculas utilizaron 30 partıculas en el caso
de FPC y FPT, mientras FPM utilizo 20 partıculas mas las 16 estaticas. HT utilizo
8 partıculas. A continuacion se hace una descripcion del escenario presentado por
cada video y una discusion de los resultados obtenidos por cada algoritmo de
seguimiento.
6.1. Experimentos
6.1.1. Secuencia de video “Ajedrez”
En esta secuencia de video, un tablero de ajedrez es desplazado sobre un fondo
blanco. Los resultados obtenidos se resumen en la Tabla 6.1
Figura 6.1: Algunos cuadros de la secuencia “Ajedrez”
BL FPC FPT FPM CS HTError de seguimiento 77.8628 72.5904 54.6662 33.5920 144.6258 72.7821Tasa de deteccion 0.8517 0.3470 0.2650 1.0000 0.7287 0.3754Error de traslape 0.5639 0.7420 0.8646 0.3538 0.9003 0.7125
Cuadro 6.1: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Ajedrez”
Revisando las resultados, ver Figura 6.3, los algoritmos pudieron seguir el tablero
durante casi toda la secuencia, salvo por un instante donde BL se perdio y el filtro
Capitulo 6. Experimentos y Resultados 57
0 50 100 150 200 250 3000
50
100
150
200
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Ajedrez
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.2: Errores de seguimiento en la secuencia “Ajedrez”
0 50 100 150 200 250 3000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Ajedrez
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.3: Errores de traslape en la secuencia “Ajedrez”
de partıculas de textura hizo lo mismo hacia el final del video. FPM tiene el menor
error de traslape.
El error de seguimiento, Figura 6.2, y la tasa de deteccion de movimiento en la
Tabla 6.1, nos confirman que en este caso el mejor desempeno es logrado por el filtro
de partıculas de movimiento, esto gracias a que el objeto nunca estuvo estatico
durante la secuencia y es de tamano considerable. Si ponemos atencion a la tabla
de promedio, los algoritmos FPC, FPT y HT obtuvieron un bajo desempeno en
la tasa de deteccion, lo cual nos indica que estos algoritmos siguieron regiones
cercanas mas no al objetivo.
Capitulo 6. Experimentos y Resultados 58
6.1.2. Secuencia de video “Disco”
El objeto a seguir es una caja de cd de tonos oscuros aunque su superficie es
reflejante. Incluso durante un instante del video el objeto refleja luz con lo cual
afecta el comportamiento de los algoritmos al alterar enormemente su apariencia.
Los resultados obtenidos se aprecian a continuacion:
Figura 6.4: Algunos cuadros de la secuencia “Disco”
BL FPC FPT FPM CS HTError de seguimiento 78.9028 87.1633 191.4013 106.1021 145.2309 148.0145Tasa de deteccion 0.1471 0.1206 0.0971 0.2118 0.2118 0.1059Error de traslape 0.8455 0.9165 0.9576 0.8673 0.8673 0.9342
Cuadro 6.2: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Disco”
0 50 100 150 200 250 3000
50
100
150
200
250
300
350
400
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Disco
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.5: Errores de seguimiento en la secuencia “Disco”
En esta ocasion se busco seguir un objeto relativamente pequeno, sobretodo si lo
comparamos con el caso del tablero de ajedrez en el video anterior. De acuerdo a
Capitulo 6. Experimentos y Resultados 59
0 50 100 150 200 250 3000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Disco
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.6: Errores de traslape en la secuencia “Disco”
los resultados en la Tabla 6.2, el FPM no es tan efectivo en este caso. Cuando se
ejecuta el algoritmo se puede observar como el brazo que mueve al objeto desvıa
la atencion del algoritmo.
Los algoritmos basados en color aparentan hacer un mejor trabajo obteniendo
un menor error de seguimiento, ver Figura 6.5 , sin embargo todos presentan un
alto error de traslape. Cuando este alcanza el valor 1 significa que se ha perdido
al objeto, esto sucedio frecuentemente como podemos apreciar en la Figura 6.6.
Analizando la salida se aprecia que otros objetos de similar color distrajeron a los
algoritmos.
6.1.3. Secuencia de video “Girl 1”
Esta secuencia se pretende seguir el rostro de una persona y salvo algunos pequenos
movimientos bruscos y obstruccion casi no hay cambio. Este escenario deberıa ser
sencillo para los algoritmos de seguimiento.
BL FPC FPT FPM CS HTError de seguimiento 23.5797 45.3349 195.5700 122.0507 43.7143 65.5071Tasa de deteccion 0.9330 0.7821 0.0084 0.5279 0.9553 0.2346Error de traslape 0.2488 0.6937 0.9921 0.8974 0.8177 0.7231
Cuadro 6.3: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Girl 1”
Capitulo 6. Experimentos y Resultados 60
Figura 6.7: Algunos cuadros de la secuencia “Girl1”
0 50 100 150 200 250 300 3500
50
100
150
200
250
300
350
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Girl1
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.8: Errores de seguimiento en la secuencia “Girl1”
0 50 100 150 200 250 300 3500
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Girl1
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.9: Errores de traslape en la secuencia “Girl1”
Capitulo 6. Experimentos y Resultados 61
Los algoritmos CS y FPT se equivocan y terminan siguiendo otras regiones dife-
rentes al rostro como lo indica la informacion de la Figura 6.9. Los algoritmos con
descriptores de color se muestran mas robustos, ver Figura 6.8, aunque tomando
en cuenta la tasa de deteccion ası como el error de traslape como se muestran
en la Tabla 6.3, el algoritmo de BL fue mas efectivo aunque FPC y HT tambien
muestran un buen funcionamiento.
6.1.4. Secuencia de video “Girl2”
De nueva cuenta se intenta seguir un rostro, en esta ocasion la persona realiza
mayor cantidad de movimientos e incluso durante un instale el rostro es ocluido
casi totalmente.
Figura 6.10: Algunos cuadros de la secuencia “Girl2”
BL FPC FPT FPM CS HTError de seguimiento 23.4009 56.9699 157.5216 132.0969 48.3643 108.6927Tasa de deteccion 0.9775 0.1557 0.0273 0.1734 0.8828 0.0851Error de traslape 0.3024 0.8618 0.9941 0.9109 0.8260 0.8852
Cuadro 6.4: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Girl 2”
BL funciona mejor que el resto de los algoritmos en las tres metricas evaluadas,
ver 6.4. FPC y HT igual logran buenos resultados aunque se pierden hacia el final
del video, ver Figuras 6.11 y 6.12. CS presento un comportamiento bueno aunque
tambien termino por perderse.
Capitulo 6. Experimentos y Resultados 62
0 100 200 300 400 500 6000
50
100
150
200
250
300
350
400
450
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Girl2
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.11: Errores de seguimiento en la secuencia “Girl2”
0 100 200 300 400 500 6000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Girl2
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.12: Errores de traslape en la secuencia “Girl2”
6.1.5. Secuencia de video “Girl3”
Este es un video del proyecto [9] utilizado tambien en PETS. Se muestran escenas
de una camara de vigilancia en el pasillo de un centro comercial. El objetivo en
este experimento es seguir a una persona que se aleja de la camara y estos fueron
los resultados obtenidos:
En este video FPT logra un bajo error de seguimiento en la segunda mitad de la
secuencia de video, ver Figura 6.14 , pero resulta enganoso pues como se aprecia
en la Figura 6.15, el algoritmo no estaba siguiendo al objeto. CS tienen una alta
tasa de deteccion, Tabla 6.5, pero es porque tiende a predecir que el objeto se
encuentra en una gran area de la imagen con lo cual cubre la region verdadera.
Capitulo 6. Experimentos y Resultados 63
Figura 6.13: Algunos cuadros de la secuencia “Girl3”
BL FPC FPT FPM CS HTError de seguimiento 136.3421 99.3028 79.1431 113.1228 72.3945 108.3529Tasa de deteccion 0.1954 0.2089 0.0503 0.2012 1.0000 0.0135Error de traslape 0.8884 0.8812 0.9922 0.9891 0.9721 0.9684
Cuadro 6.5: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Girl 3”
0 50 100 150 200 250 300 350 400 450 5000
50
100
150
200
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Girl3
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.14: Errores de seguimiento en la secuencia “Girl3”
FPC y BL siguen al objetivo durante un corto tiempo, pero una vez que se ale-
ja bastante de la camara lo pierden, lo cual es entendible pues los pixeles que
representan al objeto no son muchos y son necesarios para el descriptor de color.
6.1.6. Secuencia de video “Motinas Emilio”
Es un video sencillo tomado desde una webcam, forma parte de la base de [8].
La resolucion de la camara resulta un gran problema sumado a las oclusiones y
Capitulo 6. Experimentos y Resultados 64
0 50 100 150 200 250 300 350 400 450 5000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Girl3
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.15: Errores de traslape en la secuencia “Girl3”
movimientos rapidos presentados durante la secuencia. Se persigue el rostro de
una persona, movimientos rapidos y oclusiones estan presentes.
Este resulta un escenario difıcil pues se pierden todos los algoritmos, recuperando
Figura 6.16: Algunos cuadros de la secuencia “Motinas Emilio”
BL FPC FPT FPM CS HTError de seguimiento 97.1275 95.7133 87.6851 99.9893 97.8464 133.0949Tasa de deteccion 0.0697 0.0697 0.0090 0.0270 0.3730 0.0449Error de traslape 0.9438 0.9563 0.9875 0.9827 0.9708 0.9676
Cuadro 6.6: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Motinas Emilio”
el objetivo a momentos y esto se refleja tanto en las Figuras 6.23 y 6.24 ası como
en la Tabla 6.6 donde se aprecian grandes errores de seguimiento, bajo traslape y
una baja tasa de deteccion. El desempeno de los algoritmos BL, FPC y HT es muy
similar entre ellos y mejor al resto, sin embargo el error de seguimiento y traslape
Capitulo 6. Experimentos y Resultados 65
0 50 100 150 200 250 300 350 4000
50
100
150
200
250
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Motinas Emilio
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.17: Errores de seguimiento en la secuencia “Motinas Emilio”
0 50 100 150 200 250 300 350 4000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Motinas Emilio
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.18: Errores de traslape en la secuencia “Motinas Emilio”
son en general grandes pero aceptables pues siguieron muy de cerca al objeto a
pesar de sus movimientos rapidos y demas condiciones adversas.
6.1.7. Secuencia de video “Motinas Multi-Face”
En esta secuencia se persigue el rostro de una persona entre un grupo de cuatro.
El objetivo esta en constante movimiento provocando severas oclusiones lo cual
supone un escenario bastante difıcil para hacer el seguimiento. Es parte de la base
de videos [8].
De acuerdo a los que observa en la Figura 6.21 los algoritmos no obtienen buenos
resultados, los mejores segun la informacion en la Tabla 6.7 son FPC y BL aunque
es natural que lo pierdan durante las oclusiones totales. El error de seguimiento,
Capitulo 6. Experimentos y Resultados 66
Figura 6.19: Algunos cuadros de la secuencia “Motinas Multi-Face”
BL FPC FPT FPM CS HTError de seguimiento 144.6546 115.1192 83.6874 245.3144 205.1241 149.1141Tasa de deteccion 0.1852 0.0471 0.0101 0.0067 0.8384 0.0269Error de traslape 0.8870 0.9032 0.9920 0.9977 0.9759 0.9687
Cuadro 6.7: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Motinas Multi-Face”
0 50 100 150 200 2500
50
100
150
200
250
300
350
400
450
500
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Motinas Multi−Face
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.20: Errores de seguimiento en la secuencia “Motinas Multi-face”
Figura 6.20, es de nueva cuenta enganoso pues nos dice que el mejor desempeno
fue logrado por el FPT, sin embargo al observar el Error de Traslape en el cual
podemos notar que este tracker perdio al objetivo desde los primeros cuadros.
6.1.8. Secuencia de video “Motinas Toni”
La secuencia de video muestra a una persona de la cual se pretende seguir su rostro.
Esto no es sencillo pues la persona esta en constante movimiento, incluso voltea
Capitulo 6. Experimentos y Resultados 67
0 50 100 150 200 2500
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Motinas Multi−Face
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.21: Errores de traslape en la secuencia “Motinas Multi-Face”
dando la espalda a la camara, evidentemente durante estos instantes el objetivo se
encuentra totalmente ocluido y se espera que los algoritmos fallen. Tambien forma
parte de la base de video [8].
Figura 6.22: Algunos cuadros de la secuencia “Motinas Toni”
BL FPC FPT FPM CS HTError de seguimiento 68.9185 38.0659 129.6360 117.1712 314.8701 88.5345Tasa de deteccion 0.7150 0.5234 0.0164 0.0584 0.1425 0.3014Error de traslape 0.6954 0.6815 0.9910 0.9662 0.9862 0.8086
Cuadro 6.8: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Motinas Toni”
Los algoritmos FPC y BL logran un mejor desempeno, ver Tabla 6.8, incluyendo
un bajo error de seguimiento, seguidos por HT. Sin embargo cuando se presenta
la mayor oclusion, poco despues del cuadro 200 en el video como se aprecia en la
Capitulo 6. Experimentos y Resultados 68
0 50 100 150 200 250 300 350 4000
50
100
150
200
250
300
350
400
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Motinas Toni
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.23: Errores de seguimiento en la secuencia “Motinas Toni”
0 50 100 150 200 250 300 350 4000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Motinas Toni
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.24: Errores de traslape en la secuencia “Motinas Toni”
Figura 6.24, el objetivo da la espalda a la camara durante un instante, es HT el
que mejor logra reconocer el objetivo a pesar de su cambio.
En general FPC consiguio el mejor resultado tanto en error de seguimiento como
de traslape, sin embargo BL presenta una tasa de deteccion mayor.
6.1.9. Secuencia de video “Pelea”
Este video proviene de la base de videos [9] y corresponde a una camara de segu-
ridad que registra una pelea entre dos individuos. Se busca hacer el seguimiento
del agresor. Este ultimo llega a alejarse demasiado de la camara.
Con la excepcion del FPC, todos los algoritmos de seguimiento se pierden en
los primeros cuadros de video, Figura 6.27. Solo FPC mantiene el seguimiento del
Capitulo 6. Experimentos y Resultados 69
Figura 6.25: Algunos cuadros de la secuencia “Pelea”
BL FPC FPT FPM CS HTError de seguimiento 101.1120 17.1193 135.1525 69.1761 96.3901 140.6793Tasa de deteccion 0.0048 0.6202 0.0048 0.0144 0.9952 0.0096Error de traslape 0.9915 0.7724 0.9998 0.9939 0.9996 0.9831
Cuadro 6.9: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Pelea”
0 20 40 60 80 100 120 140 160 180 2000
20
40
60
80
100
120
140
160
180
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Pelea
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.26: Errores de seguimiento en la secuencia “Pelea”
objetivo durante casi toda la secuencia. HT y BL perdieron el objetivo alrededor
del cuadro de video numero 20. En la parte final del video FPC tambien pierde al
objetivo aunque en este momento se encuentra muy alejado de la camara por lo
que muy pocos pixeles lo representan.
6.1.10. Secuencia de video “Floor”
Se observa a una persona que camina y de repente cae al suelo, manteniendose
estatico durante un tiempo. Forma parte de la base de videos [9] . Salvo los pocos
Capitulo 6. Experimentos y Resultados 70
0 20 40 60 80 100 120 140 160 180 2000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Pelea
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.27: Errores de traslape en la secuencia “Pelea”
pixeles que representan al objetivo debido a su tamano y posicion con respecto a
la camara, no deberıa ser gran problema para los algoritmos de seguimiento.
Figura 6.28: Algunos cuadros de la secuencia “Floor”
BL FPC FPT FPM CS HTError de seguimiento 26.3826 15.6084 144.2248 131.2490 66.6640 143.0745Tasa de deteccion 0.4784 0.4529 0.0025 0.0076 0.0992 0.0051Error de traslape 0.7433 0.7059 0.9999 0.9995 0.9912 0.9900
Cuadro 6.10: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Floor”
De nueva cuenta los algoritmos basados en color, salvo HT, funcionan mejor si-
guiendo al objetivo muy de cerca, Figura 6.30, mientras el resto lo pierden como
podemos apreciar de acuerdo al error de traslape, ver Figura 6.30. BL pierde al
objetivo cuando este es muy pequeno por estar alejado de la camara. En general
BL y FPC tuvieron un desempeno similar como consta en los datos de la Tabla
6.10.
Capitulo 6. Experimentos y Resultados 71
0 50 100 150 200 250 300 3500
50
100
150
200
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Floor
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.29: Errores de seguimiento en la secuencia “Floor”
0 50 100 150 200 250 300 3500
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Floor
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.30: Errores de traslape en la secuencia “Floor”
6.1.11. Secuencia de video “Shop”
Esta es otra toma de una camara de seguridad perteneciente a [9]. Se graba la
entrada de una tienda y se observa a una persona entrar y salir. Al no haber otros
objetos en movimiento FPM deberıa ser favorecido.
BL FPC FPT FPM CS HTError de seguimiento 25.5351 31.2350 167.1295 107.7132 147.2371 161.6361Tasa de deteccion 0.8800 0.3160 0.0440 0.2800 0.0320 0.0200Error de traslape 0.4626 0.8073 0.9991 0.9758 0.9951 0.9674
Cuadro 6.11: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Shop”
Capitulo 6. Experimentos y Resultados 72
Figura 6.31: Algunos cuadros de la secuencia “Shop”
0 50 100 150 200 2500
50
100
150
200
250
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Shop
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.32: Errores de seguimiento en la secuencia “Shop”
0 50 100 150 200 2500
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Shop
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.33: Errores de traslape en la secuencia “Shop”
Capitulo 6. Experimentos y Resultados 73
FPT, FPM, CS y HT pierden al objetivo despues de unos cuadros. El objetivo
continuamente se mantiene estatico perdiendo al filtro de partıculas basado en
movimiento. BL y FPC logran seguir a la persona eficientemente, ver Figuras 6.32
y 6.33. El algoritmo BL se comporta mejor, sobre todo poniendo atencion al error
de traslape y la tasa de deteccion, ver la Tabla 6.11. Aunque hay que mencionar
que BL hace una busqueda explicita por las dimensiones de la region elıptica
que mejor se adapten al objetivo despues de localizarlos, en cambio el filtro de
partıculas las determina como parte del estado medio de las partıculas.
6.1.12. Secuencia de video “Chair”
Esta es otra de las secuencias de video difıciles, pertenecientes a [9] . Una persona
recorre un pasillo hasta sentarse en una silla durante un tiempo, despues regresa.
La persona se aleja demasiado de la camara siendo representado por pocos pixeles,
ademas la presencia de colores similares a la ropa del objetivo agrega oclusion.
Figura 6.34: Algunos cuadros de la secuencia “Chair”
BL FPC FPT FPM CS HTError de seguimiento 197.3017 123.4095 85.8771 100.9951 212.8287 136.1810Tasa de deteccion 0.0072 0.0895 0 0.0058 1.0000 0.0043Error de traslape 0.9966 0.9655 0.9992 0.9856 0.9995 0.9880
Cuadro 6.12: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Chair”
Todos los algoritmos de seguimiento se perdieron antes de llegar al cuadro numero
100 del video, siendo FPC el cual siguio al objetivo durante un poco mas, ver Fi-
gura 6.36. Las condiciones de este video aparentan ser difıciles para los algoritmos,
principalmente por que el objeto es muy pequeno.
Capitulo 6. Experimentos y Resultados 74
0 100 200 300 400 500 6000
50
100
150
200
250
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Chair
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.35: Errores de seguimiento en la secuencia “Chair”
0 100 200 300 400 500 6000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Chair
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.36: Errores de traslape en la secuencia “Chair”
6.1.13. Secuencia de video “Camaleon”
El objetivo a seguir es un camaleon que en principio se muestra con texturas color
verde y cafe, pero lentamente va cambiando su color a tonalidades rojas y ama-
rillas. Servira para probar la adaptabilidad de los algoritmos basados en color a
cambios en la apariencia del objetivo.
BL FPC FPT FPM CS HTError de seguimiento 102.1867 53.3410 155.8361 85.6656 168.2283 123.4569Tasa de deteccion 0.6016 0.0951 0.0344 0.2918 0.7393 0.0754Error de traslape 0.7177 0.9242 0.9863 0.7919 0.9697 0.9245
Cuadro 6.13: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “‘Camaleon”
Capitulo 6. Experimentos y Resultados 75
Figura 6.37: Algunos cuadros de la secuencia “Camaleon”
0 100 200 300 400 500 6000
50
100
150
200
250
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Camaleon
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.38: Errores de seguimiento en la secuencia “Camaleon”
0 100 200 300 400 500 6000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Camaleon
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.39: Errores de traslape en la secuencia “Camaleon”
Capitulo 6. Experimentos y Resultados 76
A pesar de contar con mecanismos para la actualizacion del histograma, los algo-
ritmos basados en descriptores de color no pudieron adaptarse tan bien al cambio.
Analicemos los datos de la Tabla 6.13 y las Figuras 6.38 y 6.38. En cuanto a error
de seguimiento FPC tiene el mejor desempeno seguido por FPM y BL. Como en
los experimentos anteriores sabemos que este dato no es definitivo pues si ponemos
atencion a la tasa de deteccion, el porcentaje de veces que la prediccion incluye
al centro del objeto, vemos que para FPC es muy baja, siendo mejor el algoritmo
BL, CS tiene una mejor tasa, pero es porque presenta una tendencia abarcar una
gran area con su prediccion. El error de traslape vuelve a favorecer a BL, con FPM
muy cercano. FPM pareciera ser la mejor opcion en este caso, pero en el escena-
rio no habıa otros objetos en movimiento a parte del objetivo que distrajeran al
algoritmo.
6.1.14. Secuencia de video “Carrera”
Se muestran escenas de una carrera de autos, con la camara ubicada en el para-
brisas de un carro. El objeto a seguir es otro vehıculo posicionado enfrente y que
trata de bloquear el paso.
Figura 6.40: Algunos cuadros de la secuencia “Carrera”
BL FPC FPT FPM CS HTError de seguimiento 19.5769 19.5943 43.0907 60.9414 10.3791 79.4638Tasa de deteccion 0.9503 0.7330 0.0157 0.1911 1.0000 0.2382Error de traslape 0.4130 0.6597 0.9365 0.8369 0.7653 0.8034
Cuadro 6.14: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Carrera”
Capitulo 6. Experimentos y Resultados 77
0 50 100 150 200 250 300 3500
20
40
60
80
100
120
140
160
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Carrera
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.41: Errores de seguimiento en la secuencia “Carrera”
0 50 100 150 200 250 300 3500
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 Carrera
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.42: Errores de traslape en la secuencia “Carrera”
BL y FPC tuvieron un excelente funcionamiento como se aprecia en las Figuras
6.41 y 6.42, aunque hay que tomar en cuenta que el escenario no es muy compli-
cado, incluso BL logro un error de traslape bajo, ver Tabla 6.14. Los algoritmos
FPT, FPM y CS no tuvieron un desempeno tan malo como en los anteriores ex-
perimentos, cabe resaltar que FPM se comporto mejor de lo esperado pues en este
escenario la camara esta en movimiento y sin embargo el objetivo presento un
movimiento relativo mayor al resto de los objetos observados lo cual ayudo a su
identificacion.
Capitulo 6. Experimentos y Resultados 78
6.1.15. Secuencia de video “Ladron”
Este video presenta el obstaculo de tener poca resolucion. Hay varios objetos en
movimiento ademas del objetivo y por si fuera poco hacia el final de la secuencia
el objetivo, un ladron, se aleja demasiado siendo casi imperceptible.
Figura 6.43: Algunos cuadros de la secuencia “Ladron”
BL FPC FPT FPM CS HTError de seguimiento 124.0535 46.0770 86.7658 58.1911 40.2049 106.3954Tasa de deteccion 0.1383 0.3344 0.0225 0.5756 1.0000 0.0161Error de traslape 0.9198 0.8301 0.9906 0.8799 0.8672 0.9509
Cuadro 6.15: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Ladron”
0 50 100 150 200 250 3000
50
100
150
200
250
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Ladron
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.44: Errores de seguimiento en la secuencia “Ladron”
Observando el error de traslape en la Figura 6.45 vemos que difıcilmente los algo-
ritmos fueron capaces de seguir al objetivo. BL y HT no funcionaron bien en este
escenario, al igual que la mayorıa de los algoritmos se perdieron despues de pocos
Capitulo 6. Experimentos y Resultados 79
0 50 100 150 200 250 3000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Ladron
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.45: Errores de traslape en la secuencia “Ladron”
cuadros, ver Tabla 6.15. FPC presenta el mejor resultado sin embargo su error de
traslape es grande, FPM pudo seguir al objetivo solo intermitentemente.
6.1.16. Secuencia de video “Hide”
Se sigue a una persona que camina alrededor de una caja, la cual llega a ocultarlo
totalmente en varias ocasiones aunque el objetivo vuelve a aparecer en escena. Fue
tomado de la base de videos [10].
Figura 6.46: Algunos cuadros de la secuencia “Hide”
El algoritmo BL logro un mejor seguimiento que el resto, obteniendo una mayor
tasa de deteccion ası como un menor error de traslape y seguimiento segun consta
en las Figuras 6.48 y 6.47. La metrica utilizada por FPC y HT falla, pierde al
objetivo en una situacion aparentemente sencilla cuando la persona se coloca sobre
un fondo diferente. Con excepcion de Bl, todos los algoritmos pierden al objetivo
Capitulo 6. Experimentos y Resultados 80
BL FPC FPT FPM CS HTError de seguimiento 26.9580 52.0740 52.7746 67.8350 52.7623 95.3669Tasa de deteccion 0.8506 0.5086 0.1897 0.9856 0.7557 0.2902Error de traslape 0.4631 0.7213 0.9591 0.8564 0.8404 0.8391
Cuadro 6.16: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Hide”
0 50 100 150 200 250 3000
20
40
60
80
100
120
140
160
180
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Hide
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.47: Errores de seguimiento en la secuencia “Hide”
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
Figura 6.48: Errores de traslape en la secuencia “Hide”
Capitulo 6. Experimentos y Resultados 81
al pasar por enfrente de la caja, pero aun contrastando con este. De nueva cuenta
son los algoritmos con descriptor de color los mas robustos, ver Tabla 6.16.
6.1.17. Secuencia de video “Box”
Se hace el seguimiento de una persona que en un principio lleva cargando una caja,
para despues abandonarla sobre el pasillo. Tomado de [9] . Es de esperar que los
algoritmos fallen pues el descriptor a seguir tomado al principio del video, cuando
una persona carga una caja, difiere mucho de la persona una vez que ha dejado la
carga.
Figura 6.49: Algunos cuadros de la secuencia “Box”
BL FPC FPT FPM CS HTError de seguimiento 71.9429 79.0932 72.2985 102.9829 64.0538 116.4507Tasa de deteccion 0.1333 0.0812 0.0058 0.0377 0.4870 0.0058Error de traslape 0.9555 0.9630 0.9999 0.9981 0.9914 0.9930
Cuadro 6.17: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Box”
Todos los algoritmos fallaron al seguir al objetivo en esta escena, ver Figura 6.51.
La mayorıa lo pierde desde el inicio por la poca informacion, pues el objetivo es
muy pequeno. FPC y BL logran seguir a la persona durante algunos cuadros pero
fallan cuando esta deja la caja. Aparentemente el cambio fue mucho y muy rapido
lo cual impidio a los algoritmos adaptarse.
Capitulo 6. Experimentos y Resultados 82
0 50 100 150 200 250 3000
20
40
60
80
100
120
140
160
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Box
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.50: Errores de seguimiento en la secuencia “Box”
0 50 100 150 200 250 3000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Box
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.51: Errores de traslape en la secuencia “Box”
6.1.18. Secuencia de video “Smoke”
Se trata de seguir a una persona en una secuencia donde es cubierta por humo,
pertenece a la base de videos [10]. Hay otra persona en movimiento y el humo
llega a cubrir totalmente al objetivo durante un instante ademas de que sale par-
cialmente de la toma.
BL FPC FPT FPM CS HTError de seguimiento 82.4071 27.7702 124.5047 71.8863 92.8492 78.5076Tasa de deteccion 0.2864 0.7060 0.0854 0.4372 1.0000 0.2563Error de traslape 0.8975 0.6839 0.9885 0.8990 0.9638 0.8555
Cuadro 6.18: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Smoke”
Capitulo 6. Experimentos y Resultados 83
Figura 6.52: Algunos cuadros de la secuencia “Smoke”
0 50 100 150 200 250 300 3500
50
100
150
200
250
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Smoke
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.53: Errores de seguimiento en la secuencia “Smoke”
0 50 100 150 200 250 300 3500
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Smoke
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.54: Errores de traslape en la secuencia “Smoke”
Capitulo 6. Experimentos y Resultados 84
En este experimento FPC se desempeno mejor que el resto de los algoritmos, con
una diferencia bastante notable en las tres metricas utilizadas, ver Tabla 6.18. BL
y HT funcionan bien solo por algunos instantes, lo cual se aprecia muy bien en
la Figura 6.54. Durante un instante del video, parte del objetivo sale del cuadro,
con lo cual BL se pierde. Cuando la persona es totalmente cubierta por humo,
alrededor del cuadro 240, todos los algoritmos fallan como era de esperarse.
6.1.19. Secuencia de video “Smoke Car”
Se pretende seguir a un vehıculo mientras se acerca a la camara, tambien parte de
[10]. Durante la secuencia de video el vehıculo pasa por detras de un arbol y una
nube densa de humo.
Figura 6.55: Algunos cuadros de la secuencia “Smoke Car”
BL FPC FPT FPM CS HTError de seguimiento 92.0452 37.5235 125.5765 86.1127 95.2721 117.0375Tasa de deteccion 0.3241 0.3492 0 0 0.6834 0.0126Error de traslape 0.7397 0.7856 0.9997 0.9956 0.9885 0.9484
Cuadro 6.19: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Smoke Car”
Todos los algoritmos presentaron una tasa de deteccion baja, Tabla 6.19, ignoran-
do a CS pues como ya se ha dicho tiende a predecir la posicion del objeto en una
zona muy grande cubriendo al objetivo ademas de otras cosas. FPC supera a los
demas con error de seguimiento promedio mayor a 37 pixeles durante la secuencia.
Bl perdio al objetivo cuando este quedo oculto por un arbol y no pudo recuperarlo.
Capitulo 6. Experimentos y Resultados 85
0 50 100 150 200 250 300 3500
50
100
150
200
250
300
350
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Smoke Car
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.56: Errores de seguimiento en la secuencia “Smoke Car”
0 50 100 150 200 250 300 3500
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Smoke Car
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.57: Errores de traslape en la secuencia “Smoke Car”
6.1.20. Secuencia de video “Street”
Otro ejemplo de seguimiento de vehıculos con una camara montada sobre el para-
brisas. Esta vez se trata de un video en las calles de una ciudad ademas de trafico
real.
BL FPC FPT FPM CS HTError de seguimiento 23.1957 25.1670 87.8051 189.9281 102.3463 73.1506Tasa de deteccion 0.9967 0.9148 0.0098 0.0049 1.0000 0.3918Error de traslape 0.6988 0.6740 0.9808 0.9944 0.9981 0.8130
Cuadro 6.20: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Street”
Capitulo 6. Experimentos y Resultados 86
Figura 6.58: Algunos cuadros de la secuencia “Street”
0 100 200 300 400 500 6000
50
100
150
200
250
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Street
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid Tracker
Figura 6.59: Errores de seguimiento en la secuencia “street”
0 100 200 300 400 500 6000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Street
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
Figura 6.60: Errores de traslape en la secuencia “Street”
Capitulo 6. Experimentos y Resultados 87
Demasiados objetos en movimiento vuelven muy inestable al FPM, ver Figuras
6.59 y 6.60. De igual manera la gran cantidad de textura hace perderse al FPT.
Camshift obtuvo buenos resultados aunque su area de prediccion cubrio gran parte
de la imagen, lo que le ayudo a obtener una gran tasa de deteccion por abarcar el
area alrededor del centro del objetivo, mas no toda su superficie lo que implico un
alto error de solapamiento como se observa en la Tabla 6.20.
Los algoritmos con descriptor de color siguen muy bien al vehıculo objetivo, in-
cluyendo a HT, pero son BL y FPC los que dan mejor resultado.
Capitulo 6. Experimentos y Resultados 88
6.1.21. Experimentos FPBL
A partir de los resultados obtenidos es claro que los mejores algoritmos, entre los
evaluados, son Aprendizaje Bayesiano y el Filtro de Partıculas de color. Como se
explico en el capitulo anterior, la propuesta de un filtro de partıculas que incluyera
la influencia del promedio bayesiano surgio a partir de estos resultados.
Se realizaron las mismas pruebas pero los resultados no indicaron una mejora sig-
nificativa con respecto a los otros dos, el comportamiento de este nuevo algoritmo
no se diferencia mucho en su desempeno al del filtro de partıculas basado en color.
A continuacion se muestran los resultados obtenidos con esta propuesta para tres
secuencias de video particulares.
Secuencia de video Girl 1
BL FPC FPT FPM CS HT FPBLOTE 23.5797 45.3349 195.5700 122.0507 43.7143 65.5071 49.4664TDR 0.9330 0.7821 0.0084 0.5279 0.9553 0.2346 0.3575OE 0.2488 0.6937 0.9921 0.8974 0.8177 0.7231 0.7684
Cuadro 6.21: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Girl1”
0 50 100 150 200 250 300 3500
50
100
150
200
250
300
350
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Girl 1
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
FP−BL
Figura 6.61: Errores de seguimiento en la secuencia “Girl1”
Capitulo 6. Experimentos y Resultados 89
0 50 100 150 200 250 300 3500
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Girl 1
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
FP−BL
Figura 6.62: Errores de traslape en la secuencia “Girl1”
Capitulo 6. Experimentos y Resultados 90
Secuencia de video Motinas Toni
BL FPC FPT FPM CS HT FPBLOTE 68.9185 38.0659 129.6360 117.1712 314.8701 88.5345 33.0399TDR 0.7150 0.5234 0.0164 0.0584 0.1425 0.3014 0.8925OE 0.6954 0.6815 0.9910 0.9662 0.9862 0.8086 0.5628
Cuadro 6.22: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Motinas Toni”
0 50 100 150 200 250 300 350 4000
50
100
150
200
250
300
350
400
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Motinas Toni
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
FP−BL
Figura 6.63: Errores de seguimiento en la secuencia “Motinas Toni”
0 50 100 150 200 250 300 350 4000
0.2
0.4
0.6
0.8
1
Cuadros de la secuencia de video
OE
(E
rror
de
Tra
slap
e)
Video Motinas Toni
Bayesian Learning
FP Color
FP Textura
FP Movimiento
CamShift
Hybrid Tracker
FP−BL
Figura 6.64: Errores de traslape en la secuencia “Motinas Toni”
Capitulo 6. Experimentos y Resultados 91
Secuencia de video Hide
BL FPC FPT FPM CS HT FPBLOTE 26.9580 52.0740 52.7746 67.8350 52.7623 95.3669 54.1549TDR 0.8506 0.5086 0.1897 0.9856 0.7557 0.2902 0.4713OE 0.4631 0.7213 0.9591 0.8564 0.8404 0.8391 0.7354
Cuadro 6.23: Promedio del desempeno de los algoritmos de seguimiento en lasecuencia “Hide”
0 50 100 150 200 250 3000
20
40
60
80
100
120
140
160
180
Cuadros de la secuencia de video
OT
E (
Err
or d
e S
egui
mie
nto
del O
bjet
o)
Video Hide
Bayesian LearningFP ColorFP TexturaFP MovimientoCamShiftHybrid TrackerFP−BL
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
obtenidos fueron:
Evaluacion de Desempeno
BL FPC FPT FPM CS HT FPBLCps 9.4253 25.3039 28.0050 14.6665 36.6152 18.2886 23.5959
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.
p(X|zn) = p(x1, ..., xn−1|zn)p(xn+1, ..., xN |zn)p(x1, ..., xn−1|xn, zn) = p(x1, ..., xn−1|zn) (13,25)
p(x1, ..., xn−1|zn−1, zn) = p(x1, ..., xn−1|zn−1)
p(xn+1, ..., xN |zn, zn+1) = p(xn+1, ..., xN |zn+1)
p(xn+2, ..., xN |zn+1, xn+1) = p(xn+2, ..., xN |zn+1)
p(X|zn−1, zn) = p(x1, ..., xn−1|zn−1)p(xn|zn)p(xn+1, ..., xN |zn)p(xN+1|X, zN+1) = p(xN+1|zN+1)
p(zN+1|zn,X) = p(zN+1|zN)(B.1)
donde X = x1, x2, ..., xN
112
Apendice B. Propiedades de Independencia Condicional para HMM 113
Gaussianas Marginales y Condicionales
Dada una distribucion Gaussiana marginal para x y una Gaussiana condicional
para y dado x de la forma
p(x) = N (x|µ,Λ−1)p(y|x) = N (y|Ax+ b, L−1) (B.2)
la distribucion marginal de y y la distribucion condicional de x dado y estan dadas
por
p(y) = N(y|Aµ+ b, L−1 + AΛ−1AT
)(B.3)
p(x|y) = N(x|Σ
ATL(y − b) + Λµ
,Σ
)(B.4)
Bibliografıa
[1] Michael Isard and A. Blake. Condensation - conditional density propagation
for visual tracking. International Journal of Computer Vision, 29:5–28, 1998.
[2] Katja Nummiaro, Esther Koller-Meier, and Luc Van Gool. Object tracking
with an adaptive color-based particle filter. In Symposium for Pattern Recog-
nition of the DAGM, 2002.
[3] Changjiang Yang, Ramani Duraiswami, and Larry Davis. Fast multiple object
tracking via a hierarchical particle filter. In International Conference on
Computer Vision, pages 212–219, 2005.
[4] Patrick Perez, Jaco Vermaak, and A. Blake. Data fusion for visual tracking
with particles. In Proceedings of the IEEE. VOL XX NO XX. IEEE, 2004.
[5] E. Maggio and A. Cavallaro. Hybrid particle filter and mean shift tracker with
adaptive transition model. In in Proc. of IEEE Int. Conference on Acoustics,
Speech and Signal Processing (ICASSP 2005), pages 221–224, 2005.
[6] Gary R. Bradski. Computer vision face tracking for use in a perceptual user
interface, 1998.
[7] Edgar Arce-Santana, Jose Luna-Rivera, Daniel Campos-Delgado, and Omar
Gutierrez-Navarro. An object tracking algorithm based on bayesian learning.
In IEEE International Symposium on Industrial Electronics, ISIE 2007. IEEE
Industrial electronics Society, 2007.
[8] Surveillance performance evaluation initiative. URL
http://www.elec.qmul.ac.uk/staffinfo/andrea/spevi.html. Base
de Videos de un solo objetivo y multiobjetivo, varios cuentan con “Ground-
truth”.
114
Bibliografia 115
[9] Context aware vision using image-based active recognition. URL
http://homepages.inf.ed.ac.uk/rbf/CAVIAR/. EU funded project, IST
2001 37540.
[10] Video surveillance online repository (visor). URL
http://imagelab.ing.unimore.it/visor/video_categories.asp.
[11] James Black, Tim Ellis, and Paul Rosin. A novel method for video tracking
performance evaluation. In In Joint IEEE Int. Workshop on Visual Survei-
llance and Performance Evaluation of Tracking and Surveillance (VS-PETS,
pages 125–132, 2003.
[12] Pearl J. Probabilistic Reasoning in Intelligent Systems: Networks of Plausible
Inference. Morgan Kauffman, San Mateo, CA, 1988.
[13] Christopher M. Bishop. Pattern Recognition and Machine Learning. Springer
Science+Business Media, LLC, 2006.
[14] Rudolph Emil Kalman. A new approach to linear filtering and prediction
problems. Transactions of the ASME–Journal of Basic Engineering, 82(Series
D):35–45, 1960.
[15] Novel approach to nonlinear/non-Gaussian Bayesian state estimation, volume
Vol. 140, No. 2, 1993. IEE Proceedings F .
[16] Yizong Cheng. Mean shift, mode seeking, and clustering. IEEE Trans.
Pattern Anal. Mach. Intell., 17(8):790–799, 1995. ISSN 0162-8828. doi:
http://dx.doi.org/10.1109/34.400568.
[17] Z. Chen. Bayesian filtering: From kalman filters to particle filters, and beyond.
Technical report, Adaptive Systems Lab, McMaster University, 2003.
[18] Jeremy Schiff, Erik B. Sudderth, and Ken Goldberg. Nonparametric be-
lief propagation for distributed tracking of robot networks with noisy inter-
distance measurements.
[19] Vitaly Ablavsky, Ashwin Thangali, and Stan Sclaroff. Layered graphical mo-
dels for tracking partially-occluded objects.
[20] Wei Du and Justus Piater. A probabilistic approach to integrating multi-
ple cues in visual tracking. In ECCV ’08: Proceedings of the 10th European
Conference on Computer Vision, pages 225–238, Berlin, Heidelberg, 2008.
Bibliografia 116
Springer-Verlag. ISBN 978-3-540-88685-3. doi: http://dx.doi.org/10.1007/
978-3-540-88688-4 17.
[21] Proc. of the British Machine Vision Conference (BMVC), editor. Multi-person
tracking with overlapping cameras in complex, dynamic environments, 2009.
[22] Kyungnam Kim and Larry Davis. Multi-camera tracking and segmentation
of occluded people on ground plane using search-guided particle filtering.
In Springer-Verlag Berlin Heidelberg, editor, ECCV 2006, pages pp. 98–109,
2006.
[23] Katja Nummiaro, Esther Koller-Meier, and Luc Van Gool. An adaptive color-
based particle filter. IVS, 2002.
[24] Bernhard Scholkopf and Alexander J. Smola. Learning with Kernels: Sup-
port Vector Machines, Regularization, Optimization, and Beyond. MIT Press,
Cambridge, MA, USA, 2001. ISBN 0262194759.
[25] John Shawe-Taylor and Nello Cristianini. Kernel Methods for Pattern
Analysis. Cambridge University Press, New York, NY, USA, 2004. ISBN
0521813972.
[26] Dorin Comaniciu, Peter Meer, and Senior Member. Mean shift: A robust ap-
proach toward feature space analysis. IEEE Transactions on Pattern Analysis
and Machine Intelligence, 24:603–619, 2002.
[27] Michael J. Swain and Dana H. Ballard. Color indexing. International Journal
of Computer Vision, 7:11–32, 1991.
[28] Open source computer vision. URL http://opencv.willowgarage.com/wiki/.
[29] Richard O. Duda and Peter E. Hart. Pattern Classification and Scene Analy-
sis. A Wiley-Interscience Publication, New York, 1973., 1973.
[30] Nelder J. A. and Mead R. A simplex method for function minimization.
Computer Journal, Volume 7, Issue 4:308–313, 1965.
[31] Svetlana Lazebnik, Cordelia Schmid, and Jean Ponce. A sparse texture repre-
sentation using affine-invariant regions. In In Proc. CVPR, pages 319–324,
2003.
Bibliografia 117
[32] Luigi Bagnato, Matteo Sorci, Gianluca Antonini, Giuseppe Baruffa, Andrea
Maier, Peter Leathwood, and Jean-Philippe Thiran. Robust infants face trac-
king using active appearance models: a mixed-state CONDENSATION ap-
proach, 2007. URL http://www.isvc.net/.
[33] Liyuan Li, Weimin Huang, Irene Y. H. Gu, and Qi Tian. Foreground object
detection from videos containing complex background. In In MULTIMEDIA
’03: Proceedings of the eleventh ACM international conference on Multimedia,
pages 2–10. ACM Press, 2003.
[34] Arch W. Naylor and George R. Sell. Linear Operator Theory in Engineering
and Science. Springer-Verlag New York Inc., 1982.
[35] Erik B. Sudderth. Graphical Models for Visual Object Recognition and Trac-
king. PhD thesis, Massachusetts Institute of Technology, May 2006.
[36] David Lowe. Object recognition from local scale-invariant features. pages
1150–1157, 1999.
[37] Herbert Bay, Tinne Tuytelaars, and Luc Van Gool. Surf: Speeded up robust
features. In In ECCV, pages 404–417, 2006.
[38] Krystian Mikolajczyk and Cordelia Schmid. A performance eva-
luation of local descriptors. IEEE Transactions on Pattern
Analysis & Machine Intelligence, 27(10):1615–1630, 2005. URL
http://lear.inrialpes.fr/pubs/2005/MS05.
[39] K. Mikolajczyk, M. Barnard, J. Matas, and T. Tuytelaars. Feature detectors
and descriptors: The state of the art and beyond. Technical report, 2009.
[40] Shaohua Zhou, Rama Chellappa, Shaohua Kevin Zhou, Baback Moghaddam,
and Baback Moghaddam. Appearance tracking using adaptive models in
a particle filter. In in Proc. of 6th Asian Conference on Computer Vision
(ACCV, 2004.
[41] P. Clifford. Markov Random fields in statistics, pages 19–32. Oxford Univer-
sity Press, 1981.
[42] P. Bremand. Markov Chains: Gibbs Fields, Monte Carlo Simulation and
Queues. Springer-Verlag, 1999.
[43] S. L. Lauritzen. Graphical Models. Oxford University Press, Oxford, 1996.