aplicaciÓn del filtro de partÍculas al seguimiento...

65
INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico 2002 / 2003 Proyecto de Fin de Carrera APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO DE OBJETOS EN SECUENCIAS DE IMÁGENES. Autor: Eva Burgueño Raigal. Tutores: Juan José Pantrigo Fernández. Antonio Sanz Montemayor.

Upload: others

Post on 21-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS

Curso Académico 2002 / 2003

Proyecto de Fin de Carrera

APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO DE OBJETOS EN SECUENCIAS

DE IMÁGENES.

Autor: Eva Burgueño Raigal.

Tutores: Juan José Pantrigo Fernández.

Antonio Sanz Montemayor.

Page 2: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

A mi familia, en especial a mi abuelo.

Page 3: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

Agradecimientos.

Quiero dar las gracias de manera especial a Antonio Sanz Montemayor y a Juanjo

Pantrigo Fernández por haberme facilitado sus conocimientos sobre Visión Artificial y

por su gran ayuda y colaboración durante todo el proyecto.

A José María Cavero del grupo Kybele por prestarnos su equipo.

A Patricia y Alberto por todas esas tardes juntos.

A José Luis por dejarnos a “Mirinda”, la cámara web, que nos ha permitido

implementar el tiempo real.

A Juan por toda su ayuda y apoyo.

Y por último a mi familia por su cariño en todo momento.

Page 4: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

Índice General Resumen......................................................................................................................................... 1 Capítulo 1. Introducción.............................................................................................................. 2

1.1 Conceptos de Estadística y Probabilidad ....................................................................... 4 1.2 Métodos Monte Carlo ....................................................................................................... 6 1.3 El Filtro de Partículas........................................................................................................ 7 1.4 Diferencias entre el Filtro de Kalman y el Filtro de Partículas ................................. 12 1.5 Herramientas .................................................................................................................... 13 1.5.1 Lenguaje de programación Matlab ........................................................................ 13 1.5.2 Visual C++................................................................................................................ 14 1.5.3 TRIPOD.................................................................................................................... 14 1.5.4 Logitech QuickCam SDK....................................................................................... 15

Capítulo 2. Objetivos ................................................................................................................. 16 Capítulo 3. Descripción Informática........................................................................................ 18

3.1 Especificación de Requisitos.......................................................................................... 18 3.1.1 Requisitos Funcionales ........................................................................................... 18 3.1.2 Requisitos no Funcionales ..................................................................................... 20 3.1.3 Requisitos de Desarrollo ........................................................................................ 21 3.1.4 Diagrama de Gantt.................................................................................................. 22

3.2 Diseño e Implementación............................................................................................... 23 3.2.1 Filtro de Partículas Básico en entorno Matlab.................................................... 23

3.2.2.1 Diagrama de Bloques del Filtro de Partículas Básico ............................. 25 3.2.2 Filtro de Partículas en entorno Matlab para análisis de imágenes reales......... 26 3.2.2.1 Segmentación basada en umbralizado ...................................................... 26 3.2.2.2 Sustracción de Fondo.................................................................................. 27 3.2.2.3 Descripción Funcional ................................................................................ 28 3.2.3 Diagrama de Bloques del Filtro de Partículas para imágenes reales ................ 30 3.2.4 Filtro de Partículas en Tiempo Real ..................................................................... 31

Capítulo 4. Pruebas..................................................................................................................... 32

4.1 Pruebas realizadas con el Filtro de Partículas Básico ................................................. 32 4.2 Pruebas realizadas con la técnica de Segmentación basada en Umbralizado.......... 38 4.3 Pruebas realizadas con la técnica de Sustracción de Fondo ...................................... 45 4.4 Pruebas realizadas en Tiempo Real ............................................................................... 51

Capítulo 5. Conclusiones ........................................................................................................... 54

5.1 Conclusiones finales ........................................................................................................ 54 Glosario........................................................................................................................................ 56 Bibliografía................................................................................................................................... 60

Page 5: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

Índice de Figuras

Figura 1. Diagrama de bloques de las etapas de un sistema de Visión Artificial ................. 3 Figura 2. Representación del muestreo y los pesos al aplicar el Filtro................................. 8 Figura 3. Funcionamiento del Filtro de Partículas ................................................................... 9 Figura 4. Evolución de la densidad de probabilidad y de su modelado.............................. 11 Figura 5. Interfaz que proporciona TRIPOD ........................................................................ 15 Figura 6. Modelo del ciclo de vida en espiral.......................................................................... 21 Figura 7. Diagrama de Gantt..................................................................................................... 22 Figura 8. Ejemplo de una ruleta creada mediante el Filtro de Partículas............................ 24 Figura 9. Diagrama del núcleo del Filtro de Partículas.......................................................... 31

Índice de Imágenes

Imagen 1. Resultado de la prueba con 1 pelota ..................................................................... 38Imagen 2. Resultado de la prueba con 1 pelota ..................................................................... 39 Imagen 3. Resultado de la prueba con 2 pelotas ................................................................... 40 Imagen 4. Resultado de la prueba con 2 pelotas .................................................................... 41 Imagen 5. Resultado de la prueba con 3 pelotas ................................................................... 42 Imagen 6. Resultado de la prueba con 1 persona ................................................................. 43 Imagen 7. Resultado de la prueba con 1 pelota ..................................................................... 44 Imagen 8. Resultado de la prueba con 1 persona................................................................... 45 Imagen 9. Resultado de la prueba con 1 persona................................................................... 46 Imagen 10. Resultado de la prueba con 2 personas............................................................... 47 Imagen 11. Resultado de la prueba con 2 personas............................................................... 48 Imagen 12. Resultado de la prueba con 1 ratón de ordenador ............................................ 49 Imagen 13. Resultado de la prueba con 1 pelota.................................................................... 50 Imagen 14. Resultado de la prueba con 1 persona ................................................................ 51 Imagen 15. Resultado de la prueba con 2 personas............................................................... 52 Imagen 16. Resultado de la prueba con 1 ratón de ordenador ............................................ 53

Page 6: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

1

RESUMEN

La Visión Artificial es una disciplina que tiene como finalidad, la extracción

automática de información del mundo físico a partir de imágenes.

Una aplicación de la Visión Artificial es el seguimiento de objetos en secuencias de

imágenes. Y se puede estudiar mediante varios métodos como pueden ser: el Filtro de

Kalman o el Filtro de Partículas entre otros.

El Filtro de Kalman define un conjunto de ecuaciones matemáticas que proveen una

solución recursiva computacionalmente eficiente del método de mínimos cuadrados.

El Filtro de Partículas es un método secuencial de Monte Carlo aplicable a cualquier

transición de estados o modelo de medida.

El objetivo fundamental de este proyecto consiste en implementar el Filtro de

Partículas aplicado al seguimiento de objetos en secuencias de imágenes 2D.

Tras los resultados obtenidos con uno y varios móviles, oclusión, movimientos no

plano paralelos, etc, se comprueba que el rendimiento del filtro es excelente.

Además de estudiar bajo diferentes condiciones experimentales el Filtro de Partículas

aplicado al seguimiento de objetos, y a pesar de que no era un objetivo fundamental del

proyecto, se ha conseguido implementar una aplicación del Filtro de Partículas mediante

técnicas de Visión Artificial que es capaz de seguir uno o varios móviles en secuencias de

imágenes en tiempo real.

Los resultados en tiempo real tienen un especial interés, ya que se producen en

aplicaciones reales y tienen una mayor funcionalidad.

Page 7: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

2

Capítulo 1

Introducción

La Visión Artificial es una disciplina que tiene como finalidad, la extracción de

información del mundo físico a partir de imágenes, utilizando para ello un computador.

Se trata de un objetivo ambicioso y complejo que actualmente se encuentra en una etapa

primitiva [12].

Un sistema de Visión Artificial actúa sobre una representación de una realidad que le

proporciona información sobre brillo, colores, formas, etcétera. Estas representaciones

suelen estar en forma de imágenes estáticas, escenas tridimensionales o imágenes en

movimiento [12].

La Visión Artificial también llamada Visión Computacional, en un intento de

reproducir el comportamiento del ser humano, define tradicionalmente cuatro fases

principales:

- La primera fase, que es puramente sensorial, consiste en la Captura o

Adquisición de las imágenes digitales mediante algún tipo de sensor.

- La segunda etapa consiste en el tratamiento digital de las imágenes, con

objeto de facilitar las etapas posteriores. En esta etapa de Preprocesamiento es

donde, mediante filtros y transformaciones geométricas, se eliminan partes

indeseables de la imagen o se realzan partes interesantes de la misma.

- La siguiente fase se conoce como Segmentación, y consiste en aislar los

elementos que interesan de una escena para comprenderla.

- Por último se llega a la etapa de Reconocimiento o Clasificación. En ella se

pretende distinguir los objetos segmentados, gracias al análisis de ciertas

características que se establecen previamente para diferenciarlos.

Page 8: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

3

Estas cuatro fases no se siguen siempre de manera secuencial, sino que en ocasiones

deben realimentarse hacía atrás. Así, es normal volver a la etapa de segmentación si falla

la etapa de reconocimiento, o la de preproceso, o incluso a la de captura, cuando falla

alguna de las siguientes [12].

Figura 1. Diagrama de bloques de las etapas típicas en un sistema de Visión Artificial adaptado

de [12].

El Filtro de Partículas fue introducido originalmente en el área de la Visión

Computacional como el algoritmo Condensation (“CONditional DENSity

propagATION”) [1], lo presentaron Michael Isard y Andrew Blake para seguir

contornos y lo llamaron ICONDENSATION [2]. J.MacCormick y A. Blake lo han

ampliado desde entonces [3].

El Algoritmo del Filtro de partículas proporciona una forma simple y efectiva de

modelar procesos estocásticos con funciones de densidad de probabilidad arbitrarias (no

necesariamente normales o gausianas) por aproximación numérica de éstas. Las

partículas son estados posibles del proceso que se pueden representar como puntos en el

espacio de estados de dicho proceso.

Captura Preprocesamiento Segmentación Reconocimiento

Page 9: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

4

1.1 Conceptos de Estadística y Probabilidad.

La Estadística se ocupa de los métodos y procedimientos para recoger, clasificar,

resumir, hallar regularidades y analizar los datos, siempre y cuando la variabilidad e

incertidumbre sea una causa intrínseca de los mismos; así como de realizar inferencias a

partir de ellos, con la finalidad de ayudar a la toma de decisiones y en su caso formular

predicciones. La Estadística puede ser descriptiva si describe, analiza y representa un

grupo de datos utilizando métodos numéricos y gráficos que resuman y presenten la

información contenida en ellos o inferencial cuando se apoya en el cálculo de

probabilidades y a partir de datos muestrales, efectúa estimaciones, decisiones,

predicciones u otras generalizaciones sobre un conjunto mayor de datos.

La Teoría de la Probabilidad constituye la base o fundamento de la Estadística. Así

pues, es corriente hablar de la probabilidad de un suceso, entendiendo como tal un

número real normalizado a 1, de forma que si éste es cercano a 0 (a l), el suceso tiene

poca (mucha) probabilidad de ocurrir o haber ocurrido.

Probabilidad condicionada

En el cálculo de las probabilidades de algunos sucesos, el valor de dicha probabilidad

variará en función del conocimiento de determinadas informaciones relativas a estos

sucesos. Mediante un espacio probabilístico damos una formulación matemática a un

fenómeno aleatorio que observamos. Parece razonable que si observamos algo que

aporta información a nuestro fenómeno aleatorio, éste deba alterar el espacio

probabilístico de partida. Supóngase que los sucesos 1Α , …, ΚΑ constituyen una

partición del espacio S tal que ( ) 1=ΑΡ∑j

i para Κ= ,...,1j y sea B cualquier suceso

tal que ( ) 0>BP . Entonces, para Κ= ,...,1i ,

( ) ( ) )(( ) )(∑Κ

=

=1

||

|i ii

iii

ABPAPABPAPBAP ( ) ( )

( )BPBAPBAP i

i =|

Teorema de Bayes. Probabilidad condicionada.

Page 10: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

5

El teorema de Bayes proporciona una regla sencilla para calcular la probabilidad

condicional de cada suceso Ai dado B a partir de las probabilidades condicionales de B

dado cada uno de los sucesos Ai y la probabilidad incondicional de cada Ai [13].

Unas funciones muy útiles para el cálculo de probabilidades de una variable aleatoria

son la función de densidad de probabilidad para variables aleatorias continuas y la

función distribución de probabilidad para variables aleatorias continuas y discretas. A

la función distribución de probabilidad también se le llama función de probabilidad

acumulada y la forma de cálculo es equivalente para las variables discretas y continuas.

♦ Caso discreto: ( ) ( ) ( )∑ ≤==≤=

xyyXPxXPxFx

♦ Caso Continuo: ( ) ( ) ( )dxxfxXPxFxx

∫∞−

=≤=

De hecho, cualquier colección de números positivos cuya suma sea finita puede dar

lugar a una función de probabilidad y por tanto a una variable discreta. Por su parte

cualquier función positiva cuyo área bajo la curva que representa sea, también finita,

puede dar lugar a una función de densidad de probabilidad y por tanto a una variable

continua.

Page 11: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

6

1.2 Métodos Monte Carlo

El método fue llamado así en referencia al Principado de Mónaco por ser “la capital

del juego de azar”, al tomar una ruleta como un generador simple de números aleatorios.

El nombre y el desarrollo sistemático de los métodos de Monte Carlo datan

aproximadamente de 1944 y fueron favorecidos por el desarrollo de la computadora

electrónica.

El uso real de los métodos de Monte Carlo como una herramienta de investigación,

viene del trabajo de la bomba atómica durante la Segunda Guerra Mundial. Este trabajo

involucraba la simulación directa de problemas probabilísticos de hidrodinámica

concernientes a la difusión aleatoria de neutrones en material de fusión.

Aún en la primera etapa de estas investigaciones, John von Neumann y Stanislao

Ulam refinaron esta curiosa “Ruleta rusa” y los métodos “de división”. Sin embargo, el

desarrollo sistemático de estas ideas tuvo que esperar el trabajo de Harris y Herman

Kahn en 1948. Aproximadamente en el mismo año, Fermi, Metropolis y Ulam

obtuvieron estimadores para los valores característicos de la ecuación de Schrödinger

para la captura de neutrones a nivel nuclear.

El Método de Monte Carlo da solución a una gran variedad de problemas

matemáticos posibilitando la realización de experimentos con muestreos estadísticos en

una computadora. El método es aplicable a cualquier tipo de problema, ya sea

estocástico o determinístico. A diferencia de los métodos numéricos que se basan en

evaluaciones en N puntos en un espacio M-dimensional para producir una solución

aproximada, el método de Monte Carlo tiene un error absoluto en la estimación que

decrece en N1 en virtud del Teorema Central de Límite.

En la práctica, las pruebas aleatorias se sustituyen por resultados de ciertos cálculos

realizados con números aleatorios.

Page 12: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

7

1.3 El Filtro de Partículas.

El Filtro de Partículas es un método secuencial de Monte Carlo aplicable a cualquier

transición de estados o modelo de medida, y en la Visión Artificial se utiliza para el

seguimiento de objetos en secuencias de imágenes.

Lo propusieron N. Gordon, D. Salmond y A. Smith en 1993 [5], como Filtro Bootstrap

para implementar Filtros Bayesianos recursivos. La densidad requerida del vector de estados

era representada como un conjunto de muestras aleatorias, las cuales se actualizan y

propagan por el algoritmo. El filtro de partículas supone una nueva manera de representar y

generar recursivamente una aproximación del estado de la Función de Densidad de

Probabilidad (FDP). La idea central es representar la FDP requerida como un conjunto

de muestras aleatorias, más que como una función sobre el espacio de estados. La

aproximación Bayesiana se utiliza para construir la FDP, que define el estado del objeto

en el instante actual.

El Filtro de Partículas representa la densidad a posteriori mediante una distribución de

partículas (muestras) en el espacio de estados. Las partículas son estados posibles del

proceso, que se pueden representar como puntos en el espacio de estados de dicho

proceso. Este enfoque se ha desarrollado de forma independiente en los últimos años en

campos como la estadística, la economía o la visión artificial (Kitagawa 1987 [6]; West

1992 [7]; Gordon, Salmond, y Smith 1993 [5]; Isard y Blake 1996 [8]; Kitagawa 1996 [9];

Carpenter, Clifford, y Fernhead 1997 [10]; Pitt y Shephard 1999 [11]). Los nombres con

los que se le ha denominado son: Método Secuencial de Monte Carlo (Sequential Monte-

Carlo Methods), Algoritmo Condensation (CONDENSATION Algorithm), Filtro

Bootstrap (Bootstrap Filter), Filtro de la Supervivencia del Más Apto, aunque últimamente

se está utilizando el término Filtro de Partículas (Particle Filtres) para todos ellos. Todos

estos algoritmos son propuestas similares que propagan las partículas (muestras de la

función de densidad a posteriori), utilizando el modelo de movimiento ( )ttt axxp ,| 1− y el

modelo de verosimilitud ( )tt xzp | , de forma que el peso combinado de las partículas de una

región aproxima la integral de la función de densidad a posteriori en esa región.

En concreto, el Filtro de Partículas representa la densidad a posteriori mediante un

conjunto discreto de N partículas )( Nmm ,...,1 y sus probabilidades asociadas

)( Nππ ,...,1 .

Page 13: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

8

Inicialmente, el conjunto de partículas se escoge a partir de la distribución a priori

( )0xp . Si no existe información a priori, entonces las partículas se distribuyen

uniformemente por el espacio de estados. Posteriormente, en cada instante de tiempo t,

se actualizan las N partículas en función de la acción anterior at-1 y la observación actual

zt. Para ello, se aplica el modelo de movimiento ( )11 ,| −− ttt axxp a cada una de las N

partículas, generando un nuevo conjunto de partículas. Las partículas nuevas representan

la predicción de la variable de estado, sin considerar la observación, se obtiene el peso iπ asociado a cada partícula.

El conjunto de pesos de cada partícula es proporcional a la probabilidad de su estado

y a la suma normalizada de sus pesos. La densidad de los pesos es igual al producto de la

densidad previa (del muestreo) y la probabilidad (de los pesos).

En la Figura 2 se representa un muestreo discreto de una función de densidad de

probabilidad continua mediante partículas, cuyo tamaño hace referencia al peso asignado

a las mismas.

Figura 2. Representa el muestreo y los pesos obtenidos al aplicar el Filtro.

En un último paso, se remuestrea el conjunto de partículas, extrayendo (con

reemplazo) N partículas del conjunto actual, proporcional al peso de cada una. En este

nuevo conjunto tendrán más probabilidad de desaparecer aquellas partículas para las que

no hay evidencia de verosimilitud o, lo que es lo mismo, que tenga menor peso. Una vez

construido el nuevo conjunto de partículas, según la probabilidad de éstas se asocia un

peso a cada una. Este nuevo conjunto de partículas constituye una representación

muestral de la probabilidad a posteriori.

Probabilidad

xEstado

Densidad a posteriori

Pesos asociados a la densidad

Page 14: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

9

En la Figura 3, se representa gráficamente la evolución de las partículas en cada fase,

suponiendo que las partículas están estimando un único parámetro, distribuido en el eje

horizontal. El área de los círculos representa el peso de cada partícula.

Figura 3. Funcionamiento del Filtro de Partículas.

Los elementos que se consideran en el método del Filtro de Partículas son:

- Los vectores de medidas Ζ , en este caso, serán provenientes de las imágenes. Las

medidas dependen del estado del objeto, y el estado del objeto se deriva

estadísticamente de las medidas.

- El Modelo de Movimiento F , se utiliza para predecir la posición del objeto en el

instante actual, a partir de la densidad de probabilidad del instante anterior

( )( )tt xFx =+1 .

- El Modelo de Verosimilitud ( )tt xP |Ζ , la estimación de la función de

probabilidad condicional a posteriori ( )tt xP |Ζ define la verosimilitud de la

medida observada dado un punto del espacio de estados (es decir, dado un

estado del sistema).

Partículas

Difusión

Modelo de Movimiento

Sorteo de Partículas.

m1

Page 15: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

10

Para poder implementar el algoritmo de actualización es necesario un conjunto bien

ponderado de partículas en el instante t con pesos iguales N1 , y así actualizar este

conjunto para reflejar las nuevas medidas obtenidas en el instante tt δ+ . El algoritmo de

actualización queda como sigue:

1. Propagar cada partícula im en el tiempo utilizando el modelo de movimiento F del

objeto para obtener un conjunto actualizado de partículas { }∗im .

2. Obtener un nuevo vector de medidas Ζ y evaluar la densidad de probabilidad

posterior ∗iπ para cada ∗

im , ∗iπ = ( )Zmp i |∗ que cuantifica la verosimilitud de (un

estado) ∗im dado un vector de medidas Ζ . Esto puede ser escrito usando la regla de

Bayes anteriormente descrita:

( ) ( ) ( )( )Ζ

Ζ=

∗∗∗

pmpmp

Zm iii

||Pr

Donde:

( )Ζp es la probabilidad a priori de la medida que se asume constante y conocida.

( )N

mp i1

=∗ , por lo que: ( ) ( )∗∗ Κ= ii mZpZmp || donde ( )∗Ζ imp | puede ser

calculado sin inversión de las ecuaciones de medida.

3. Volver a muestrear a partir del conjunto { }∗im con probabilidades ∗

iπ y generar

un nuevo conjunto bien ponderado { }'im con pesos iguales ( )N1 para cada

partícula. El muestreo de cada partícula consiste en un estado, un peso y otra

información posible (una covarianza por instante).

4. Repetir los pasos 1 y 3 para instantes sucesivos.

Page 16: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

11

En la Figura 4, se puede ver cómo evolucionan las partículas en el tiempo durante

una ejecución del Filtro de Partículas.

Figura 4. Evolución de la densidad de probabilidad y de su modelado a través de partículas.

x

t

π(x) x ≡ variable del espacio de estados (estado). t ≡ tiempo. π(x) ≡ peso o verosimilitud de x.

Page 17: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

12

1.4 Diferencias entre el Filtro de Kalman y el Filtro de

Partículas.

El Filtro de Kalman define un conjunto de ecuaciones matemáticas que proveen una

solución recursiva computacionalmente eficiente del método de mínimos cuadrados. La

potencia del filtro se debe en varios aspectos: soporta estimaciones del pasado, presente

e incluso estados futuros, y puede utilizarse cuando la naturaleza precisa del sistema a

modelar es desconocida. Dados unos estimadores iniciales, el filtro va prediciendo y

autoajustándose con cada nueva medida. El Filtro Discreto de Kalman se utiliza en

situaciones donde un proceso continuo es muestreado en intervalos de tiempo discretos.

El Filtro de Kalman fue el primer algoritmo de aprendizaje para el Modelo de Espacio

de Estados Lineales o Gausianos. Posteriormente, como resultado de una tendencia

moderna de evitar cualquier tipo de restricciones o suposiciones impuestas como modelo

de proceso, fue propuesto el Filtro de Kalman Extendido, que flexibiliza la condición de

linearizado. Tanto el Filtro de Kalman como el Filtro de Kalman Extendido representan

casos particulares del Filtro Bayesiano, diseñado para ser utilizado en ambientes no

lineales, no gausianos y no estacionarios con un solo objeto.

El Filtro de Partículas representa una poderosa herramienta para el tratamiento de

procesos del mundo real, evitando hacer cualquier tipo de suposiciones sobre las

características intrínsecas del proceso como hacen los filtros clásicos, como es el Filtro

de Kalman. La diferencia fundamental entre ambos algoritmos estriba en el hecho de que

los filtros de Kalman pueden representar solamente la estimación del estado por una

gausiana uni-modal, los Filtros de Partículas pueden representar densidades multi-modales

complejas empleando una gran cantidad de partículas aleatoriamente muestreadas.

Page 18: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

13

1.5 Herramientas.

Las herramientas software utilizadas para la realización de este proyecto son:

- Matlab 6.1 y su Toolbox de procesamiento de imágenes..

- Visual C++.

- Plantilla TRIPOD para el desarrollo de la aplicación en tiempo real.

- Logitech QuickCam SDK.

1.5.1 Lenguaje de programación Matlab.

MATLAB es el nombre abreviado de “MATrix LABoratory”. Se tarta de un

programa para realizar cálculos numéricos con vectores y matrices. Como caso

particular puede también trabajar con números escalares, tanto reales como complejos.

Una de las capacidades más atractivas es la posibilidad de realizar una amplia variedad de

gráficos en dos y tres dimensiones. Posee también un lenguaje de programación propio.

Para ciertas operaciones es muy rápido, cuando puede ejecutar sus funciones en código

nativo, mientras que en otras aplicaciones resulta apreciablemente más lento que el

código equivalente desarrollado en C/C++ o Fortran. Sin embargo, siempre es una

magnífica herramienta de alto nivel para desarrollar aplicaciones técnicas, fácil de utilizar

y que aumenta la productividad de los programadores respecto a otros entornos de

desarrollo, al permitir prototipado rápido.

MATLAB dispone de un código básico y de varias librerías especializadas

denominadas Toolboxes. Estas Toolboxes cubren las áreas principales en el mundo de

la ingeniería y la simulación, destacando entre ellas la de proceso de imágenes, que han

sido imprescindibles para este proyecto.

Page 19: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

14

1.5.2 Visual C++.

Visual C++ es un entorno de desarrollo de software, destinado específicamente para

escribir programas para el sistema operativo Windows en C++. Con Visual C++ se

puede escribir cualquier tipo de programa tanto en lenguaje C++, como en C. C++ es

un superconjunto de C orientado a objetos. Visual C++ pone a disposición del

desarrollador múltiples heramientas: lenguaje C++, programación orientada a objetos

(POO), biblioteca de clases, tecnología de componentes, etc.

Uno de los propósitos de Visual C++ es programar para Windows en C++

utilizando Microsoft Foundation Class Library (MFC). MFC es un conjunto de clases de

C++ que comprenden una aplicación genérica de funcionamiento de Windows lista para

personalizar.

1.5.3 TRIPOD (Template for Real-Time Image

PrOcessing Development).

Plantilla para el Desarrollo del Procesamiento de Imágenes en Tiempo Real, que su

creador Paul Y. Oh. denomina TRIPOD. Se trata de un software de libre distribución.

Fue desarrollado para permitir a los programadores procesar rápidamente imágenes en

tiempo real capturadas con una webcam Logitech bajo entorno Windows, ya que ésta

proporciona el software QuickCam SDK. TRIPOD está formado por archivos fuente

del MFC de Visual C++ por encima de los cuales se integra el programa de

procesamiento de imágenes para obtener resultados.

El interfaz que muestra el sistema está constituido por una ventana superior que

exhibe las imágenes en color tomadas con una webcam Logitech, mientras que la

ventana inferior muestra el resultado del procesamiento realizado sobre cada imagen

capturada. En la figura 5 se muestra un ejemplo del interfaz realizando la binarización de

la imagen capturada en tiempo real.

Page 20: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

15

Figura 5. Interfaz que proporciona TRIPOD.

1.5.4 Logitech QuickCam SDK.

El motivo del uso de una cámara web Logitech es debido a las ventajas que

proporciona el kit de desarrollo sotfware QuickCam (QCSDK) a la aplicación.

SDK también denominado API es un interfaz para programas de aplicación que

proporciona una serie de reglamentos y acuerdos que definen la manera de llamar

determinado servicio desde cierto programa.

Con QCSDK se puede desarrollar fácil y rápidamente aplicaciones como la

realización de fotos y archivos de vídeo con extensión AVI. Además permite cualquier

número de conexiones simultáneas de la cámara fotográfica a través del interfaz. Las

imágenes que proporciona QCSDK son RGB de color verdadero (24 bits) .

Page 21: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

16

Capítulo 2

Objetivos

Un problema clásico en visión artificial es el seguimiento de un objeto en una

secuencia de imágenes. En muchas ocasiones ese seguimiento debe funcionar en tiempo

real, para ello es necesario acotar el espacio de búsqueda en las imágenes mediante

métodos probabilísticos como pueden ser el Filtro de Kalman y el Filtro de Partículas.

El objetivo fundamental de este proyecto consiste en implementar el Filtro de Partículas

aplicado al seguimiento de objetos en secuencias de imágenes 2D, evaluando los resultados que se

obtienen en la aplicación bajo diferentes condiciones experimentales Este objetivo se

articula en los siguientes objetivos operativos:

1. Aprender a utilizar el entorno de programación Matlab.

2. Coleccionar los datos necesarios para evaluar el funcionamiento del filtro en

diferentes condiciones.

3. Aprender técnicas de tratamiento de imágenes.

4. Crear el núcleo del Filtro de Partículas Básico y las funciones complementarias en

Matlab

5. Probar el funcionamiento del Filtro de Partículas en secuencias de imágenes 1D

para uno y varios objetos.

6. Probar el funcionamiento del Filtro de Partículas en secuencias de imágenes 2D

para uno y varios objetos.

7. Probar el funcionamiento del Filtro de Partículas en secuencias de imágenes reales.

8. A la vista de las pruebas anteriores y si procede proponer alternativas para

mejorar el rendimiento del filtro.

Page 22: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

17

Un Filtro de Partículas en condiciones reales debe funcionar en Tiempo Real, a pesar de

no haber sido objetivo inicial del proyecto, parecía razonable probarlo en condiciones

reales, para ello era necesario un entorno de captura de imágenes en tiempo real y una

optimización del código. Matlab no es óptimo en este sentido, con lo cual se debe migrar

la aplicación a C++. Ha sido necesario:

1. Aprender a utilizar el entorno de programación Visual C++.

2. Crear la aplicación del Filtro de Partículas (núcleo y funciones complementarias) en

Visual C++ para incorporarla a una plantilla llamada TRIPOD y así conseguir

construir el Filtro de Partículas en tiempo real.

Page 23: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

18

Capítulo 3

Descripción Informática

Una vez descritos los objetivos que se desean conseguir con la realización del

proyecto, en este capítulo se van a tratar los distintos aspectos que componen la

especificación del mismo. Aquí se incluyen los requisitos con los que debe cumplir el

proyecto. Además se describen los problemas encontrados en la fase de análisis.

3.1 Especificación de Requisitos.

Todo proyecto informático debe cumplir ciertas condiciones. No solo basta con que

el desarrollo funcione, sino que además debe hacerlo en un tiempo razonable, ser

adaptable a distintas situaciones, etc. Todos estos aspectos se detallan a continuación.

3.1.1 Requisitos Funcionales.

Los requisitos funcionales son aquellos que proponen qué debe realizar la aplicación,

como los servicios que ofrece, cómo debe reaccionar, estados que no se deben dar, etc.

Los requisitos funcionales de nuestra aplicación son:

• El Filtro de Partículas debe ser capaz de seguir a uno o varios objetos en una

secuencia de imágenes.

• Hay que tener en cuenta que dependiendo del número de partículas que se utilicen

pueden variar los resultados del filtro, destacando que cuanto más partículas se

generen más tiempo requerirá la ejecución de la aplicación.

Page 24: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

19

• Debe ser capaz de seguir objetos pequeños con tal de que el número de partículas

sea suficiente, teniendo en cuenta que cuanto más pequeño sea el objeto a seguir,

más partículas son necesarias para realizar un seguimiento con precisión. Es decir, si

el número de partículas es bajo (alrededor de 25 ó 50) y el objeto pequeño, el

seguimiento de dicho objeto es menos preciso que si se utilizarán más partículas o el

objeto fuera mayor.

• Debe ser capaz de recuperarse en caso de perder el objeto durante un tiempo

determinado, ya que si la velocidad con la que se mueve el objeto a seguir es muy

alta, en algunos instantes el filtro no logra seguir al objeto con precisión. Esto es

debido a la limitación de la velocidad de la captura de imágenes y la capacidad de

procesado de la aplicación.

Page 25: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

20

3.1.2 Requisitos No Funcionales.

En este apartado se detallan los requisitos que proponen cómo debe reaccionar la

aplicación, por ejemplo restricciones de tiempo, de desarrollo, estándares, etc.

• Es necesario capturar imágenes con una webcam para analizarlas, reconocer los

objetos y poder realizar el seguimiento de éstos. Las imágenes necesarias para probar

la aplicación debían ser primeramente de fondo negro y el objeto a seguir debía ser

de cualquier otro color, posteriormente ya no era necesario que tuvieran fondo

negro, para finalmente poder capturarlas en tiempo real, eso sí la cámara web debe

proporcionar las suficientes imágenes por segundo para poder seguir al objeto en

tiempo real.

Si la posición de la webcam varía durante la ejecución del filtro, es necesario parar

dicha ejecución y volver a empezar de nuevo, ya que la calibración de la cámara es

errónea y los resultados no serán correctos.

• Para identificar el objeto u objetos en la imagen son necesarias técnicas de

tratamiento de imágenes, para las cuales hay que reunir una serie de requisitos, como

pueden ser:

- Para la técnica de Segmentación basada en umbralizado se requiere fondo

negro.

- Para la técnica Sustracción del fondo, se requiere disponer de una imagen del

fondo almacenada.

• El objeto o los objetos a seguir no tienen que cumplir ninguna característica

especial, es decir no tienen que tener ni unas medidas, ni un color determinado, ni

estar a distancias especificas, ya que son analizados al comenzar la aplicación

calculando un valor proporcional a su radio. Las pruebas se han realizado con

móviles de distintos tamaños y formas, como por ejemplo: pelotas de golf, ratón del

ordenador, personas, etcétera.

• Para la aplicación en tiempo real el rendimiento es fundamental, por lo que es

necesario implementar algoritmos rápidos y eficientes.

Page 26: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

21

3.1.3 Requisitos de Desarrollo.

Para el desarrollo del proyecto se ha seguido un modelo en espiral, ya que es

incremental e iterativo y se pueden realizar tantas iteraciones como sea necesario para

llegar a la finalización del mismo. El proyecto se divide en distintos ciclos:

• Análisis de la fase del proyecto a abordar (A).

• Estudio de la documentación relacionada si fuera necesario (B).

• Discusión de las posibles alternativas para esa fase (C).

• Codificación (D).

• Pruebas y depuración (E).

• Pequeña documentación del trabajo realizado (F).

Figura 6. Modelo del ciclo de vida en espiral.

A C

D

E

F C1

C2

B

Page 27: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

22

3.1.4 Diagrama de Gantt.

Para la consecución principal del proyecto ha sido necesario abordar por separado

cada uno de los objetivos operativos divididos a su vez en tareas. La distribución de

tareas que se ha seguido, se puede ver en forma de diagrama en la siguiente figura:

Diagrama de Gantt:

Figura 7. Diagrama de Gantt.

A = Aprender el entorno Matlab (7 días),

B = Aprender técnicas de tratamiento de imágenes sintéticas y reales (7 días),

C = Capturar imágenes con una webcam (3 días),

D = Comprender el Filtro de Partículas (25 días),

E = Implementar el Filtro de Partículas Básico (20 días),

F = Desarrollar las pruebas correspondientes (7 días),

G = Implementar el Filtro de Partículas empleando Segmentación basada en Umbralizado

(10 días),

H = Implementar el Filtro de Partículas empleando Sustracción de fondo (10 días),

I = Aprender el entorno Visual C++ (3 días),

J = Comprender la plantilla TRIPOD (3 días),

K = Implementar el Filtro de Partículas en Tiempo Real (10 días).

A

B C

D

E

F

G

H

I

J

K

5 días de trabajo

Page 28: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

23

3.2 Diseño e Implementación

Una vez expuesto el problema, se describe con más detalle la estrategia usada para

resolverlo. Ya es el momento de acercar el modelo de análisis al modelo de la

implementación, es decir lo que se corresponde con el diseño de la aplicación y explicar

cómo se han implementado cada una de las funciones que componen el Filtro de

Partículas, para los distintos casos estudiados

3.2.1 Filtro de Partículas Básico en entorno Matlab.

El Filtro de Partículas Básico realiza un modelado de funciones gausianas

unidimensionales creadas mediante distintas medias y desviaciones típicas que indica el

usuario. Son necesarias las siguientes funciones, divididas en dos grupos:

► Generación de datos:

1. Pedir Datos. Para generar los datos que requiere el filtro, se debe indicar:

1. El intervalo de la variable de estado,

2. Las medias y las desviaciones típicas para la creación de las gausianas,

3. El número de partículas que se desean crear para modelar dichas

gausianas,

4. El intervalo de tiempo entre una gausiana y la siguiente.

2. Crear Gausiana. Se crean tantas gausianas como medias y desviaciones típicas

haya, mediante la función de la Distribución Normal:

2

21

21

= σ

πσ

mediax

eGaussiana

► Funcionamiento del Filtro:

1. Inicializar. Se generan las partículas aleatorias para el intervalo de la variable de

estado y se inicializa la velocidad de dichas partículas a cero, construyendo así

un registro con ambos campos (x y Vx).

2. Calcular Pesos. Cada partícula tiene su peso correspondiente, dicho peso se calcula

comprobando si el valor de la partícula se corresponde con algún valor

perteneciente a la gausiana, teniendo mayor peso la partícula más cercana al

máximo de la gausiana.

x ≡ variable de estado. media ≡ media de la distribución. σ ≡ desviación típica de la distribución.

Page 29: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

24

3. Calcular Estimadores. El último paso y más importante ya que es el objetivo del

Filtro de Partículas, consiste en calcular los estimadores de las variables de

interés, que en este caso es el valor medio de la gausiana.

( ) ( )( )( )

∑∑Η

=ΗΕ

Ni

Nii

sp

ss

π

π

4. Crear Ruleta. Mediante la suma de todos los pesos normalizados de las partículas

se crea un vector llamado ruleta normalizado a 1, consiguiendo el efecto de un

gráfico circular, reservando mayor espacio a aquella que mayor peso tenga.

Figura 8. Ejemplo de una ruleta creada mediante el Filtro de Partículas.

5. Tirar Ruleta. Para generar las nuevas partículas necesarias para el instante

siguiente, se realiza un sorteo tirando la ruleta tantas veces como partículas

haya, con mayor probabilidad de que se elijan las partículas que tienen mayor

peso. Para conseguir esto, se escoge aleatoriamente un número entre 0 y 1 que se

compara con los valores del vector ruleta para conseguir el índice del valor al que

se corresponde, el cual va a indicar dicha posición al vector de partículas,

eligiendo así una de ellas.

6. Difusión. Tras la elección de las nuevas partículas, se realiza una difusión que

consiste en sumar a la coordenada x de cada partícula un número aleatorio

siguiendo una distribución normal multiplicado por una desviación constante,

función de la separación entre partículas (cuanto mayor es mayor será la

separación).

7. Modelo de Movimiento. A parte de la desviación aleatoria (difusión) que sufre cada

partícula también se realiza un modelo de movimiento que predice la posición

de la gausiana en el instante siguiente, a partir de la posición actual:

( ) ( ) txtxttx δδ ′+=+

( ) ( ) tFtxttVx δδ +′=+ .

H ≡ cualquier función integrable. si ≡ variable del espacio de estados. πi ≡ Peso asociado a cada partícula.

δt ≡ incremento de tiempo. Fδt ≡ valor aleatorio normalizado a 1.

Page 30: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

25

3.2.1.1 Diagrama de bloques del Filtro de Partículas

Básico.

PEDIR DATOS Entrada del intervalo de la x, medias, desviaciones típicas,

número de partículas, y tiempo.

CREAR GAUSSIANACrea una gaussiana.

CALCULAR PESOS Calcula el peso de cada una de las

partículas.

MODELO DE MOVIMIENTO

Describe la evolución temporal del estado del objeto (x, Vx,).

DIBUJAR Dibuja la gaussiana con las partículas correspondientes.

DIFUSIÓN Aplica un desplazamiento aleatorio

y gausiano a cada partícula (x) elegida para que no coincidan en el instante siguiente, ya que el número

de éstas debe ser constante.

CREAR RULETA Crea la ruleta con las partículas

actuales.

TIRAR RULETA Tira de la ruleta anteriormente creada para generar las nuevas

partículas para la siguiente iteración.

INICIALIZAR Inicializa las partículas (x, Vx).

CÁLCULO DE ESTIMADORES

Calcula los estimadores de las variables de interés (EstX).

Page 31: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

26

3.2.2 Filtro de Partículas en entorno Matlab para análisis

de imágenes reales.

El Filtro de Partículas es un método aplicable al seguimiento de objetos en imágenes

reales. Para la obtención de los pesos de las partículas es necesario extraer características

de la imagen que indiquen dónde se encuentra el objeto. Se han probado dos técnicas de

seguimiento:

- Segmentación basada en umbralizado.

- Sustracción de Fondo.

3.2.2.1 Segmentación basada en umbralizado.

La segmentación es un proceso que consiste en dividir una imagen digital en regiones

homogéneas con respecto a una o más características (como por ejemplo el brillo o el

color) con el fin de facilitar su posterior análisis y reconocimiento.

La segmentación no tiene reglas estrictas a seguir, y dependiendo del problema en

cuestión, puede ser necesario idear técnicas a medida. Además suele resultar complejo,

debido, por un lado, a que no se tiene una información adecuada de los objetos a extraer

y, por otro, a que en la escena a segmentar aparece normalmente ruido, por lo que el uso

de conocimiento sobre el tipo de imagen a segmentar o alguna otra información de alto

nivel puede resultar muy útil [12].

La umbralización es un proceso que permite convertir una imagen de niveles de

grises o en color en una imagen binaria, de tal forma que los objetos de interés se

etiqueten con un valor distinto de los píxeles del fondo. La umbralización es una técnica

de segmentación rápida, que tiene un coste computacional bajo y que incluso puede ser

realizado en tiempo real durante la captura de la imagen [12].

La umbralización fija es la técnica de umbralización utilizada en este proyecto, que

consiste en el establecimiento de un umbral de separación entre los niveles de intensidad

de los objetos que se desean separar en aquellas imágenes en las que existe suficiente

contraste. Para obtener dicho umbral se debe disponer de información sobre los niveles

de intensidad de los objetos a segmentar y el fondo de la imagen. La elección de un valor

Page 32: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

27

de umbral correcto resulta decisiva para llevar a cabo la segmentación de una imagen de

manera satisfactoria [12].

Se han utilizado técnicas de segmentación basadas en umbralizado sobre imágenes

con fondo negro en las que se seguía un objeto de cualquier otro color. Las regiones de

la imagen correspondientes al objeto poseen un nivel de intensidad superior al umbral, y

son etiquetadas con el valor 1. Aquellas regiones que no superan el umbral son

consideradas fondo y se etiquetan con el valor 0.

3.2.2.2 Sustracción de Fondo.

Las técnicas básicas consisten en el estudio de la imagen resultante de la diferencia de

una imagen con su fondo. Los objetos que se diferencian entre ambas imágenes

producen en la imagen diferencia un conjunto de píxeles con valores distintos a cero.

Así, partiendo de dos imágenes tΙ e fΙ los objetos tras esta segmentación serían los

píxeles a uno de la imagen dΙ . Siendo U un valor umbral que depende de la variación de

la iluminación entre ambas imágenes.

( ) =yxd ft ,, 0, en otro caso

( ) ( ) 0,,,1 >Ι−Ι yxyxsi ft

Page 33: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

28

3.2.2.3 Descripción Funcional.

Para el análisis de imágenes reales utilizando las técnicas basadas en Umbralizado y la

Sustracción de fondo son necesarias las mismas funciones que para el Filtro de Partículas

Básico con algunas diferencias que se detallan a continuación:

► Generación de datos:

1. Pedir Datos. Para obtener los datos, se debe indicar:

1. La secuencia de imágenes,

2. La primera y última imagen de dicha secuencia,

3. El número de partículas,

4. El periodo de muestreo entre una imagen y la siguiente.

5. Para la técnica de Sustracción de fondo además es necesario tener

almacenada una imagen del fondo.

2. Calcular Radio. A diferencia del Filtro de Partículas Básico en 1D es necesario

calcular el radio del primer objeto que aparece en la imagen, utilizándolo como

una medida orientativa para crear una a región de interés cuadrada cuyo centro

viene dado por las coordenadas x e y de la partícula, y su dimensiones son

función del tamaño del objeto.

► Funcionamiento del Filtro:

1. Inicializar. El primer paso es la generación aleatoria de las coordenadas x e y de

las partículas y la inicialización de la velocidad de dichas partículas a cero (Vx,

Vy).

2. Calcular Pesos. Cada partícula tiene su peso correspondiente. Dicho peso se calcula

contando el número de píxeles con el valor de intensidad 1 que pertenecen a la

región de interés. En la técnica de Sustracción de fondo se calcula la diferencia de

la región de interés de cada partícula de la imagen con la misma región de la

imagen fondo. El resultado de la resta se convierte en una imagen binaria (blanco

y negro), donde el valor de los píxeles del objeto es 1. Finalmente para localizar al

objeto a seguir en una imagen, se comprueba el valor del píxel, igual que la técnica

de Segmentación basada en umbralizado.

Page 34: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

29

3. Calcular Estimadores. A continuación se calcula el estimador, para las coordenadas

(x, y).

( ) ( )( )( )

∑∑Η

=ΗΕ

Ni

Nii

sp

sxsx

π

π ( ) ( )( )

( )

∑∑Η

=ΗΕ

Ni

Nii

sp

sysy

π

π

donde, H ≡ cualquier función integrable.

si ≡ variable del espacio de estados

πi ≡ Peso asociado a cada partícula

4. Crear Ruleta. Al igual que en el Filtro de Partículas Básico la suma de todos los pesos

normalizados de las partículas crean una ruleta normalizada a 1.

5. Tirar Ruleta. Para generar las nuevas partículas necesarias para el instante siguiente,

también se realiza un sorteo tirando la ruleta tantas veces como partículas haya,

con mayor probabilidad de que se elijan las partículas que mayor peso tienen. En

este caso existe otra forma de realizar el sorteo de las nuevas partículas y es

generando siempre un tanto por ciento aleatorio de partículas además de las

creadas tirando la ruleta, para conseguir mayor precisión a la hora de localizar

objetos en la imagen tanto como si hay más de uno como si aparecen nuevamente

en la imagen.

6. Difusión y Modelo de Movimiento. Igualmente tras la elección de las nuevas partículas,

se realiza la difusión y el modelo de movimiento de las mismas, teniendo en

cuenta que en este caso deben calcularse las coordenadas (x, y) y sus

correspondientes velocidades (Vx, Vy).

( ) ( ) txtxttx δδ ′+=+ ( ) ( ) tFtxttVx δδ +′=+

( ) ( ) tytytty δδ ′+=+ ( ) ( ) tFtyttVy δδ +′=+

A pesar del parecido de las dos técnicas, se puede considerar más general la técnica

Sustracción de fondo, ya que no es necesario que la secuencia de imágenes que se desea

procesar tenga el fondo negro.

δt ≡ incremento de tiempo. Fδt ≡ valor aleatorio . normalizado a 1.

Page 35: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

30

3.2.3 Diagrama de bloques del Filtro de Partículas para

una secuencia de imágenes reales.

PEDIR DATOS Entrada de la película, frame inicial y último, número de

partículas, ancho y alto de la imagen y el incremento de tiempo.

CALCULAR RADIOCalcula el radio del objeto.

CALCULAR PESOS Calcula el peso de cada una de las

partículas.

MODELO DE MOVIMIENTO

Describe la evolución temporal del estado del objeto (x, y, Vx, Vy).

DIBUJAR Dibuja la imagen con las partículas

correspondientes.

DIFUSIÓN Aplica un desplazamiento aleatorio a cada partícula (x e y) elegida para

que no coincidan en el instante siguiente, ya que el número de éstas

debe ser constante.

CREAR RULETA Crea la ruleta con las partículas

actuales.

TIRAR RULETA Tira de la ruleta anteriormente creada para generar las nuevas

partículas para la siguiente iteración.

INICIALIZAR Inicializa las variables de estado de

partículas (x, y, Vx y Vy).

CÁLCULO DE ESTIMADORES

Calcula los estimadores de las variables de interés (EstX y EstY).

Page 36: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

31

3.2.4 Filtro de Partículas en Tiempo Real.

Un sistema de tiempo real es aquel en el que para que las operaciones

computacionales estén correctas no depende solo de que la lógica e implementación de

los programas computacionales sea correcto, sino también en el tiempo en el que dicha

operación entregó su resultado [14]. Si las restricciones de tiempo no son respetadas el

sistema se dice que ha fallado, por lo tanto, es esencial que las restricciones de tiempo en

los sistemas sean cumplidas. Garantizar el comportamiento en el tiempo requerido

necesita que el sistema sea predecible. Es también deseable que el sistema obtenga un

alto grado de utilización a la vez que cumple con los requerimientos de tiempo.

La implementación del Filtro de Partículas para procesar secuencias de imágenes en

tiempo real capturadas con una webcam, se consigue con la plantilla TRIPOD y la

migración del código del Filtro de Partículas basado en la Sustracción de fondo en Matlab

al lenguaje C++ para Visual C++.

Como se indicaba en los requisitos es imprescindible capturar en primer lugar la

imagen del fondo, para posteriormente realizar la sustracción de fondo en cada imagen.

Si la cámara web cambia de posición es necesario volver a ejecutar la aplicación, ya que el

fondo no es el mismo y la resta de ambas imágenes no es correcta.

Al exponer todos los casos posibles para la implementación del Filtro de Partículas se

puede afirmar que tanto para secuencias de imágenes de una dimensión, dos dimensiones

e incluso tres dimensiones el núcleo del funcionamiento del Filtro de Partículas es el

mismo:

Figura 9. Diagrama del núcleo del Filtro de Partículas.

Predicción. Aplicar Modelo de

Movimiento.

Partículas iniciales

Cálculo de Pesos.Se calcula el peso de cada

partícula.

Remuestreo. Elegir partículas para el

instante siguiente.

Page 37: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

32

Capítulo 4

Pruebas

Las pruebas se realizan para verificar y validar la aplicación creada, más

concretamente para comprobar que la aplicación funciona correctamente bajo las

condiciones prescritas. El enfoque seguido para la realización de las pruebas es el

método de Caja Blanca, ya que se desarrollan dichas pruebas para comprobar que las

funciones implementadas se ajustan a las especificaciones. En definitiva, se analiza el

funcionamiento interno del sistema.

4.1 Pruebas realizadas con el Filtro de Partículas Básico.

• Prueba 1: Movimiento no constante, con medias variables y desviaciones típicas

estrechas y constantes.

La experiencia evalúa el comportamiento del filtro en el modelado de una

distribución gausiana cuya media se mueve de izquierda a derecha y que en un instante

determinado cambia bruscamente el sentido de movimiento.

a) Implementado con 100 partículas.

Media = 16, Media = 19, Media = 20, Desviación típica = 1. Desviación típica = 1. Desviación típica = 1. Estimador = 16.8436. Estimador = 19.0018. Estimador = 20.2780.

Page 38: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

33

Media = 23, Media = 26, Media = 20, Desviación típica = 1, Desviación típica = 1. Desviación típica = 1. Estimador = 24.6646. Estimador = 27.5504. Estimador = 17.6188.

Media = 18, Media = 15, Media = 10, Desviación típica = 1. Desviación típica = 1. Desviación típica = 1. Estimador = 16.9740. Estimador = 14.5530. Estimador = 7.0595.

Se puede observar como las partículas no modelan la gausiana de manera tan

óptima durante el cambio de sentido como en el resto de la escena. Se puede

comprobar que el filtro se recupera en la siguiente imagen. También se puede apreciar

que en presencia de movimientos rápidos, las partículas localizan la gausiana con

menor precisión.

b) Implementado con 1000 partículas.

Media = 16, Media = 19, Media = 20, Desviación típica = 1. Desviación típica = 1. Desviación típica = 1. Estimador = 17.0690. Estimador = 18.8746. Estimador = 19.9605.

Page 39: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

34

Media = 23, Media = 26, Media = 20, Desviación típica = 1, Desviación típica = 1. Desviación típica = 1. Estimador = 23.5891. Estimador = 26.7066. Estimador = 18.6349.

Media = 18, Media = 15, Media = 10, Desviación típica = 1. Desviación típica = 1. Desviación típica = 1. Estimador = 16.6001. Estimador = 14.3893. Estimador = 7.7202.

Se puede apreciar que los resultados son similares con 100 y 1000 partículas,

cuando mayor es el número de partículas el modelado es más preciso.

• Prueba 2: Movimiento no constante, con medias y desviaciones típicas

variables.

La experiencia evalúa el comportamiento del filtro en el modelado de una

distribución gausiana cuya media se mueve de izquierda a derecha y que en un instante

determinado se para sin cambiar bruscamente el sentido de movimiento.

a) Implementado con 100 partículas.

Media = 16, Media = 19, Media = 22, Desviación típica = 2. Desviación típica = 2,2. Desviación típica = 2,4. Estimador = 14.7234. Estimador = 18.8103. Estimador = 21.3951.

Media = 25, Media = 25, Media = 23, Desviación típica = 2,6, Desviación típica = 2,8. Desviación típica = 3. Estimador = 24.3110. Estimador = 25.3089. Estimador = 23.9260.

Page 40: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

35

Media = 20, Media = 17, Media = 12, Desviación típica = 2,8. Desviación típica = 2,6. Desviación típica = 2,4. Estimador = 20.6347. Estimador = 17.3399. Estimador = 11.8001.

Las partículas localizan a la gausiana mejor que con las pruebas anteriores, ya que al

ser mayor la desviación típica, y tener más espacio para recorrerla se localiza más

fácilmente, con la excepción que si el movimiento es hacía la derecha hay más

partículas en el lado derecho y viceversa.

b) Implementado con 500 partículas.

Media = 16, Media = 19, Media = 22, Desviación típica = 2. Desviación típica = 2,2. Desviación típica = 2,4. Estimador = 16.3085. Estimador = 17.7464. Estimador = 19.5424.

Media = 25, Media = 25, Media = 23, Desviación típica = 2,6, Desviación típica = 2,8. Desviación típica = 3. Estimador = 23.2576. Estimador = 23.6950. Estimador = 22.2418.

Page 41: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

36

Media = 20, Media = 17, Media = 12, Desviación típica = 2,8. Desviación típica = 2,6. Desviación típica = 2,4.

Estimador = 19.5156. Estimador = 16.2525. Estimador = 11.7204.

Se puede apreciar que los resultados son similares con 100 y 500 partículas, cuanto

mayor es el número de partículas el modelado es más preciso.

• Prueba 3: Movimiento no constante, con medias y desviaciones típicas

variables.

La experiencia evalúa el comportamiento del filtro en el modelado de una

distribución gausiana cuya media se mueve de izquierda a derecha y que en un instante

determinado cambia bruscamente el sentido de movimiento.

a) Implementado con 100 partículas.

Media = 16, Media = 19, Media = 20, Desviación típica = 2. Desviación típica = 2,2. Desviación típica = 2,4. Estimador = 16.1784. Estimador = 18.5779. Estimador = 19.5580.

Media = 23, Media = 26, Media = 20, Desviación típica = 2,6, Desviación típica = 3. Desviación típica = 2,8. Estimador = 20.8313. Estimador = 24.0850. Estimador = 21.5513.

Media = 18, Media = 15, Media = 10, Desviación típica = 2,6. Desviación típica = 2,4. Desviación típica = 2. Estimador = 19.2999. Estimador = 14.4828. Estimador = 9.1990.

Page 42: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

37

Las partículas localizan a la gausiana mejor que con los primeros experimentos,

donde la desviación típica era estrecha y constante, ya que la gausiana es mayor y se

localiza con menor dificultad.

b) Implementado con 1000 partículas.

Media = 16, Media = 19, Media = 20, Desviación típica = 2. Desviación típica = 2,2. Desviación típica = 2,4. Estimador = 16.0409. Estimador = 18.2608. Estimador = 19.1867.

Media = 23, Media = 26, Media = 20, Desviación típica = 2,6, Desviación típica = 3. Desviación típica = 2,8. Estimador = 20.9689. Estimador = 24.1778. Estimador = 20.2812.

Media = 18, Media = 15, Media = 10, Desviación típica = 2,6. Desviación típica = 2,4. Desviación típica = 2. Estimador = 17.3521. Estimador = 15.5422. Estimador = 9.1731.

Se puede apreciar que los resultados son similares con 100 y 1000 partículas, cuanto

mayor es el número de partículas el modelado es más preciso.

Page 43: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

38

4.2 Pruebas realizadas con la técnica de Segmentación

basada en umbralizado.

En todas las pruebas en las que se utiliza la técnica de Segmentación basada en

Umbralizado se han generado 100 partículas. Éstas se representan como puntos con tres

colores distintos en función de su peso: azul claro (menor peso), azul oscuro y rojo

(mayor peso). Además se pueden contemplar un cuadrado con un punto rojo y un

cuadrado con un punto amarillo que representan a la partícula de mayor peso y al

estimador del filtro en la imagen respectivamente.

• Prueba 1.

Pelota sobre un fondo negro siguiendo un movimiento rectilíneo y uniforme. El

valor de la desviación en el proceso de Difusión es de 0,03.

Imagen 1. Resultado de la prueba realizada con 1 pelota.

Como se puede observar en la secuencia de imágenes, el filtro localiza a la pelota de

forma óptima. Todas las partículas se concentran alrededor de la pelota a partir de la

segunda imagen. Al igual que en las pruebas realizadas con las gausianas, las partículas

tienden a retrasarse respecto a la pelota.

Page 44: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

39

• Prueba 2.

Pelota sobre un fondo negro siguiendo un movimiento rectilíneo y uniforme. El

valor de la desviación en el proceso de Difusión es de 0,03.

Imagen 2. Resultado de la prueba realizada con 1 pelota.

Como en el experimento anterior, las partículas se concentran alrededor de la pelota

a partir de la segunda imagen y también tienden a retrasarse respecto a la misma.

Page 45: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

40

• Prueba 3.

Dos pelotas sobre fondo negro siguiendo ambas un movimiento rectilíneo y

uniforme. El valor de la desviación en el proceso de Difusión es de 0,03.

Imagen 3. Resultado de la prueba realizada con 2 pelotas.

En la secuencia de imágenes se puede ver como las partículas se reparten

aleatoriamente para concentrarse alrededor de cada una de las dos pelotas. Cuando

desaparece una pelota todas las partículas se concentran alrededor de la pelota que ha

quedado.

Page 46: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

41

• Prueba 4.

Dos pelotas sobre fondo negro con un movimiento rectilíneo y uniforme en sentidos

opuestos. El valor de la desviación en el proceso de Difusión es de 0,03.

Imagen 4. Resultado de la prueba realizada con 2 pelotas.

En este experimento se produce un periodo de inestabilidad del filtro, caracterizado

por la fusión de las nubes de las partículas que siguen a cada pelota En poco tiempo se

recupera la situación estable.

Page 47: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

42

• Prueba 5.

Tres pelotas de disrinto tamaño y color, el movimiento es rectilíneo y uniforme. Se

genera el 20% de las partículas aleatoriamente y el 80% restante del modo habitual

(ruleta). El valor de la desviación en el proceso de Difusión es de 0,03.

Imagen 5. Resultado de la prueba realizada con 3 pelotas.

Se puede apreciar que al generarse partículas aleatorias constantemente, se localizan

mejor todos los móviles que haya en la imagen o los que pudieran aparecer.

Page 48: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

43

• Prueba 6.

Una persona sobre fondo negro con movimiento rectilíneo y uniforme. El valor de la

desviación en el proceso de Difusión es de 0,03.

Imagen 6. Resultado de la prueba realizada con 1 persona.

Como se puede observar en la secuencia de imágenes, el filtro localiza a la persona de

forma óptima, gracias a que el contraste de la ropa con el fondo es alto, sino este método

no se puede aplicar esperando resultados óptimos ya que utiliza la Segmentación basada

en umbralizado.

Page 49: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

44

• Prueba 7.

Pelota sobre fondo negro con movimiento rectilíneo y uniforme con oclusión. El

valor de la desviación en el proceso de Difusión es de 0,03.

Imagen 7. Resultado de la prueba realizada con 1 pelota.

En este experimento se puede apreciar que el seguimiento de la pelota es óptimo

hasta que se produce la oclusión. El filtro genera partículas aleatorias en busca de la

pelota, y cuando aparece de nuevo continua con su seguimiento.

Page 50: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

45

4.3 Pruebas realizadas con la técnica de Sustracción de

Fondo.

En todas las pruebas en las que se utiliza la técnica de Sustracción de fondo se han

generado 100 partículas. Éstas se representan como puntos con tres colores distintos en

función de su peso: azul claro (menor peso), azul oscuro y rojo (mayor peso). Además se

pueden contemplar un cuadrado con un punto rojo y un cuadrado con un punto amarillo

que representan a la partícula de mayor peso y al estimador del filtro en la imagen

respectivamente.

• Prueba 1.

Una persona que se mueve de izquierda a derecha. El valor de la desviación en el

proceso de Difusión es de 0,02.

Imagen 8. Resultado de la prueba realizada con 1 persona.

Como se puede observar las partículas se concentran alrededor de la persona durante

toda la escena. Debido al desviación típica empleada durante el proceso de difusión es

pequeña las partículas aparecen considerablemente agrupadas.

Page 51: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

46

• Prueba 2.

Esta experimento es exactamente igual a la anterior, pero el valor de la desviación en

el proceso de Difusión es de 0,06.

Imagen 9. Resultado de las pruebas realizadas con 1 persona.

Como se puede observar el resultado es igual que en la prueba 1, con la diferencia

que las partículas están mucho más distribuidas ya que la desviación típica empleada

durante el proceso de difusión es mayor y por ello la diferencia entre las posiciones de las

partículas también.

Page 52: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

47

• Prueba 3.

Dos personas que se cruzan. El valor de la desviación en el proceso de Difusión es

de 0,04.

Imagen 10. Resultado de la prueba realizada con 2 personas.

En este experimento el filtro localiza mejor al hombre, debido a que el contraste de la

ropa de la mujer con el fondo es bajo. Los pesos de sus partículas dependen del número

de píxeles que se diferencian del fondo, con lo cual las partículas de la mujer pesan

menos que las del hombre.

Page 53: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

48

• Prueba 4.

Esta prueba se realiza sobre la misma secuencia de imágenes anterior, pero se genera

el 20% de las partículas aleatoriamente y el 80% restante del modo habitual (ruleta). El

valor de la desviación en el proceso de Difusión es de 0,04.

Figura 11. Resultado de la prueba realizada con 2 personas.

A diferencia del experimento anterior, se puede apreciar que en esta prueba se

localiza mejor a las dos personas, ya que se generan partículas aleatorias constantemente.

Page 54: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

49

• Prueba 5.

Ratón de ordenador que sigue un movimiento de arriba abajo. El valor de la

desviación en el proceso de Difusión es de 0,04.

Imagen 12. Resultado de la prueba realizada con 1 ratón de ordenador.

Como se puede observar las partículas se concentran alrededor del ratón de

ordenador durante toda la secuencia. Se puede apreciar que según el peso de las

partículas, éstas se representan de un color u otro.

Page 55: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

50

• Prueba 6.

Pelota siguiendo un movimiento rectilíneo y uniforme, pero con la característica de

que se oculta durante un intervalo de tiempo. El valor de la desviación en el proceso de

Difusión es de 0,02.

Imagen 13. Resultado de la prueba realizada con 1 pelota.

En este experimento se puede apreciar que el filtro localiza a la pelota de forma

óptima, hasta que se produce la oclusión. El filtro genera partículas aleatorias en busca

de la pelota, y cuando aparece de nuevo continua con su seguimiento.

Page 56: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

51

4.4 Pruebas realizadas en Tiempo Real.

En todas las pruebas realizadas a continuación se han generado 100 partículas.

Además se pueden contemplar un punto azul que corresponde al estimador del filtro en

la imagen.

• Prueba 1.

Una persona que sigue un movimiento rectilíneo y uniforme. El valor de la

desviación en el proceso de Difusión es de 0,04.

Imagen 14. Resultado de la prueba realizada con 1 persona.

Como se puede observar las partículas se concentran alrededor de la persona durante

toda la escena.

Page 57: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

52

• Prueba 2.

Dos personas que se cruzan. Se genera el 20% de las partículas aleatoriamente y el

80% restante del modo habitual (ruleta). El valor de la desviación en el proceso de

Difusión es de 0,04.

Imagen 15. Resultado de la prueba realizada con 2 personas.

Se puede apreciar que al generarse partículas aleatorias constantemente, se localizan

todos los móviles que haya en la imagen o los que pudieran aparecer.

Page 58: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

53

• Prueba 3.

Un ratón de ordenador que se mueve de izquierda a derecha. El valor de la

desviación en el proceso de Difusión es de 0,04.

Imagen 16. Resultado de la prueba realizada con 1 ratón de ordenador.

Como se puede observar las partículas se concentran alrededor del ratón de

ordenador durante la secuencia, sufriendo retrasos debidos a la captura de imágenes.

Page 59: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

54

Capítulo 5

Conclusiones

5.1 Conclusiones finales.

Se ha presentado una implementación del Filtro de Partículas aplicado al seguimiento

de objetos en secuencias de imágenes 2D. Para ello se ha aprendido a usar el entorno de

programación Matlab, así como su lenguaje. Se han coleccionado los datos necesarios

para evaluar el funcionamiento del filtro en diferentes condiciones. Se han aprendido

técnicas de tratamiento de imágenes. Se ha creado el núcleo del Filtro de Partículas Básico y

las funciones complementarias en Matlab. Se ha probado el funcionamiento del Filtro de

Partículas en secuencias de imágenes 1D para uno y varios objetos y se ha probado el

funcionamiento del Filtro de Partículas en secuencias de imágenes reales. Por último y para

mejorar el rendimiento del filtro, se ha propuesto una técnica de generación de partículas

que distribuye de manera aleatoria un porcentaje de ellas, dejando al resto evolucionar

del modo habitual.

Aunque no era objetivo fundamental de este proyecto, se ha conseguido implementar

una aplicación del Filtro de Partículas mediante técnicas de Visión Artificial que es capaz

de seguir uno o varios móviles en secuencias de imágenes en tiempo real.

Para esto se ha aprendido a usar el entorno de programación Visual C++. Se ha

programado la aplicación del Filtro de Partículas en C++ y posteriormente se ha

incorporado a la plantilla TRIPOD.

Se ha probado que la implementación del Filtro de Partículas se comporta

óptimamente en las condiciones experimentales, como son: uno o varios móviles en

escena, condiciones de oclusión, movimientos no plano paralelos, etc.

Page 60: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

55

Los resultados obtenidos así como los vídeos generados son potencialmente útiles

para la enseñanza del Filtro de Partículas y serán aplicables a la docencia en Visión

Artificial.

Además del trabajo visible , fue necesario un periodo de aprendizaje para la captura y

procesamiento de imágenes. En esta etapa se aprendieron las funciones básicas para el

tratamiento de imágenes, teniendo que estudiar la documentación previa e implementar

programas de prueba.

Se ha empleado una metodología de programación estructurada y modular, tratando

en todo momento de facilitar las posibles extensiones de la aplicación.

Como posibles extensiones o futuras líneas de trabajo se propone:

♦ El uso de algoritmos de agrupamiento, como el Algoritmo de las K-medias o

el Algoritmo de Agrupamiento secuencial para el cálculo de estimadores del filtro

en secuencias en las que aparecen más de un objeto. Estos algoritmos de

agrupamiento (clustering) se basan en la búsqueda iterativa del centro de los

agrupamientos existentes.

♦ Averiguar porque las partículas sufren un retraso respecto al móvil que siguen.

Se cree que es un defecto del modelo de movimiento, pero no se ha detectado.

♦ Se pueden introducir mejoras para conseguir que la aplicación en Tiempo Real

no se tenga que ejecutar sólo bajo el sistema operativo Windows 98.

♦ En un futuro a corto plazo, las empresas de seguridad privada proporcionarán

a sus clientes imágenes en tiempo real de sus viviendas como rutina añadida de

vigilancia. Puede resultar muy interesante realizar experimentos aplicados a estos

sistemas de seguridad incorporando el núcleo del Filtro de Partículas

implementado.

♦ Puede ser interesante para el alumnado conocer de manera intuitiva este tipo

de técnicas de seguimiento, que por su rigor teórico dificultan su asimilación. Por

tanto, se propone como línea de futuro trabajo la creación de una interfaz gráfica

interactiva que facilite el uso y aprendizaje del Filtro de Partículas en asignaturas de

Visión Artificial.

Page 61: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

56

GLOSARIO. Al Azar o Aleatorio: Son todos aquellos eventos fortuitos o productos de la suerte. Aleatoriamente: Actividades o métodos producidos o llevados a cabo simulando un comportamiento al azar. Desviación típica: La raíz cuadrada de la varianza. Distribución de probabilidad: Una función de x que permite asociar los valores de x con sus respectivas probabilidades, en alguna forma. Distribución Normal: Se la conoce, más comúnmente, como la "campana de Gauss". Una distribución de variable continua cuya función de densidad es:

2

21

21

= σµ

πσ

x

eGaussiana

Siendo x el valor de la variable, m la media y s la desviación típica. Distribución Normal estandar (tipificada): Distribución normal expresada en desvíos tipificados. Su función de densidad es:

2

21

21 Ζ−

= eGaussianaπ

Espacio muestral: Conjunto de todos los resultados posibles de un experimento aleatorio. Experimento aleatorio: Cualquier acto que implique la observación de los valores de una variable aleatoria. Frame: Marco, cuadro. Contenido de una pantalla de datos o su espacio de almacenamiento equivalente. Filtro: Procedimiento que estudia o examina un conjunto o flujo de información recibida desde un sistema o proceso dinámico.

Page 62: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

57

Filtro Condensation: CONditional DENSity propagATION. Mantenimiento de una distribución de probabilidad multimodal asociada a los objetos en movimiento. Función bimodal: La moda aparece en la distribución dos veces en zonas distintas. Función de distribución: En general, la función de distribución de una variable aleatoria continua X es el modelo teórico de la curva de frecuencias acumuladas que se espera obtener para X , y debe cumplir, evidentemente, estas propiedades: ser creciente y tomar valores de 0 a 1. Si X es una variable aleatoria continua con valores en un intervalo [ ]ba, , entonces ( )xF será la probabilidad de que la variable X tome valores entre a y x . ( ) ( )xXaxF ≤≤Ρ= .

Es decir, la función de distribución F(x) es una primitiva de la función de densidad f(x), o dicho de otra forma, la función de densidad es la derivada de la función de distribución. Indica la probabilidad de que la variable aleatoria continua X sea menor o igual que un valor dado, es decir, proporciona la probabilidad acumulada hasta un determinado valor de la variable. Función de Densidad de Probabilidad: Dada una Función Distribución ( )xF ligada a la variable aleatoria X , se define la Función de Densidad de Probabilidad como:

( ) ( )dxxdFxf =

Una función ( )xfy = es una función de densidad de una variable aleatoria continua si cumple las siguientes condiciones:

- Es positiva en todo su dominio: ( ) .10 ≤≤ xf

- Permite obtener ( )bXap ≤≤ como área bajo la gráfica entre ax = y

bx = . Verifica la fórmula ( )bXap ≤≤ = ( )∫b

adttf .

- El área total entre la gráfica de f y el eje X vale ( ) 11 =∫ dttf .

- Permite obtener ( )xF como área bajo la gráfica hasta el valor x

La Función de Densidad de Probabilidad, al igual que la Función de Distribución, contiene toda la información probabilística de una variable aleatoria, y, por consiguiente, del experimento asociado a ella.

( ) =xF

1 si ax <

( )dttfx

a∫ si bxa ≤≤

1 si bx <

( ) ( ) ( )dttfxXpxFx

∫∞−

=≤=

( ) ( ) ( )xFdxxdFxf ′==

Page 63: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

58

Función multimodal: La moda aparece en la distribución varias veces. Función de probabilidad: Una forma de expresar una distribución de probabilidad de una variable discreta. Para cada valor de x provee directamente el de p(x). Función unimodal: La distribución tiene una única moda. Media aritmética: Es el centro de gravedad de la distribución. Moda: Es el valor de la variable donde la función de probabilidad (en el caso discreto) o de la función de densidad (en el caso continuo) alcanza su máximo. La denotaremos con Mo. Muestra: Subconjunto de la población (o espacio muestral)a partir del cual se pretende realizar inferencias respecto a ella. Muestreo: Es el proceso de seleccionar las unidades de una población del interés de modo que estudiando la muestra poder generalizar bastante nuestros resultados de nuevo a la población de quien fueron elegidas. Muestreo aleatorio simple: Muestreo en el que todas las muestras tienen la misma probabilidad de ser seleccionadas y en el que las unidades obtenidas a lo largo del muestreo se devuelven a la población. Muestreo en el que la muestra aleatoria está formada por n variables aleatorias independientes e idénticamente distribuidas a la variable aleatoria poblacional. Sinónimo de Muestreo aleatorio con reemplazamiento. Muestreo de probabilidad: Es cualquier método de muestreo que utilice una cierta forma de selección al azar. Para tener un método al azar de la selección, usted debe instalar cierto proceso o procedimiento que asegure que las diversas unidades en su población tienen probabilidades iguales de ser elegido. Números aleatorios o pseudoaleatorios: Se trata de números que se obtienen a partir de un número denominado semilla, y la aplicación reiterada de una fórmula, obteniéndose una secuencia {x0, x1, x2, ... xn} de números que imitan los valores de una variable uniformemente distribuida en el intervalo [0, 1). Pixel: (Picture Element). Puntos. Unidad de medida que expresa la capacidad de la pantalla de un monitor. El número de píxeles o puntos de una pantalla informa sobre su resolución. Cada imagen es el resultado de la luminiscencia de una determinada configuración y cantidad de estos puntos. Un punto que representa la menor unidad gráfica de medida de

Page 64: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

59

una pantalla. Un píxel depende de la pantalla; es decir, las dimensiones de los elementos de la pantalla varían con la pantalla y la resolución. Probabilidad: Grado con que un acontecimiento puede producirse. Proporción entre el número de casos favorables a que ocurra un proceso en una población respecto al número total de casos posibles. Simulación: Es el proceso de diseñar un modelo de un sistema real y llevar a cabo experiencias con el mismo con la finalidad de comprender el comportamiento del sistema o de evaluar nuevas estrategias, dentro de los límites impuestos por un criterio o conjunto de ellos, para el funcionamiento del sistema. Simulación de Monte Carlo: La simulación de Monte Carlo fue creada para resolver integrales que no se pueden resolver por métodos analíticos, para resolver estas integrales se usaron números aleatorios. Posteriormente se utilizó para cualquier esquema que emplee números aleatorios, usando variables aleatorias con distribuciones de probabilidad conocidas, el cual es usado para resolver ciertos problemas estocásticos y determinísticos, donde el tiempo no juega un papel importante. Por lo tanto es un proceso computacional que utiliza números aleatorios para derivar una salida, por lo que en vez de tener entradas con puntos dados, se asignan distribuciones de probabilidad a alguna o todas las variables de entrada. Esto generará una distribución de probabilidad para una salida después de una corrida de la simulación. Sistemas continuos: Las variables (atributos de los elementos del sistema) sufren cambios suaves. Sistemas discretos: Cambios en variables de forma instantánea, en pasos discretos. Variable: Una magnitud cuya medida puede cambiar de valor. Variable aleatoria (estocástica o probabilística): Es aquella cuyo valor sólo puede saberse con exactitud una vez observado. Variable discreta: Es aquella que en un intervalo cualquiera de su dominio puede asumir solamente una cantidad finita o infinita numerable de valores distintos. Varianza: Medida de dispersión definida por la expresión:

( )nxx

s ∑ −=

22

Page 65: APLICACIÓN DEL FILTRO DE PARTÍCULAS AL SEGUIMIENTO …caporesearch.es/jjpantrigo/PFCs/MemoriaParticulasJun03.pdfINGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Curso Académico

60

Bibliografía.

[1] M. Isard and A.Blake, “CONDENSATION: Conditional density propagation for visual tracking”, International Journal of Computer Vision, vol. 29, no.1, pp.5–28, 1998. [2] M. Isard and A.Blake, “ICONDENSATION: Unifying low-level and high-level tracking in a stochastic framework”, in Proc. 5th European Conference on Computer Vision, vol.1, pp.893-908, Freiburg, Germany, June 1998. [3] J.MacCormick and A.Blake, “Probabilistic exclusion and partitioned sampling for multiple object tracking”, International Journal of Computer Vision, vol. 39, no. 1, pp.57-71, 2000. [4] Dmitry N. Zotkin, Remani Duraiswami, Larry S. Davis, “Joint Audio-Visual Tracking Using Particle Filters”, Eurasip Journal on Applied Signal Processing 2002. [5] N. J. Gordon, D. J. Samond, A. F. M. Smith, “Novel Approach to Nonlinear/NonGaussian Bayesian State Estimation”, IEE Proc.-F, vol. 140, no. 2, 1993. [6] G. Kitagawa, “Non-Gaussian state space modeling of nonstationary time series”, Journal of the American Statistical Association, Vol.82, No.400, 1032-63, 1987. [7] M. West, “Modeling wih mixtures. Bayesian Statistics”, 4, 503-524, 1992. [8] M. Isard, A. Blake, “Contour tracking by Stochastic Propagation of Conditional density”, in Proc. 4th European Conf. Computer Vision, 1996, pp. 343-356. [9] G.Kitagawa, “Monte Carlo Filter and Smoother for Non-Gaussian Nonlinear State Space Modes”, J. Comput. Graph. Statistics, vol. 5, pp. 1-25, 1996. [10] J. Carpenter, P. Clifford, P.Fernhead, “An improved particle filter for non-linear problems”. Technical report, Dept. of Statistics, University of Oxford, 1997. [11] M. K. Pitt, N. Shephard, “Filtering Via Simulation: Auxiliary Particle Filters”, Journal of the American Statistical Association, vol. 94, no. 446, pp. 590-599, 1999. [12] J.F Vélez, A.B Moreno, Á. Sánchez y J.L Esteban, “Visión por Computador”, Universidad Rey Juan Carlos, 2003. [13] Morris H. Degroot, “Probabilidad y Estadística”, Segunda Ed. Addison Wesley Iberoamericana. [14] www.geocities.com/txmetsb/sistemas-de-tiempo-real.htm.