+ All Categories
Home > Documents > Introduccion - Instituto de Ingeniería...

Introduccion - Instituto de Ingeniería...

Date post: 05-Mar-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
13
Introduccion En este trabajo se estudia el reconocimiento de objetos sobre texturas dinamicas utilizando el filtro de Kalman Robusto. Se implementó el algoritmo propuesto por Jing Zhong y Stan Sclaroff en epl paper “Segmenting Foreground Objects from a Dynamic Textured Background via Robust Kalman Filter”. Como base teorica para poder implementar el paper se estudio también el paper “Dynamix Textures” de Steffano Soatto, Gianfranco Doretto, Ying Nian Wu y Alessandro Chiuso en el que se presentan las texturas dinamicas. Representacion de texturas dinamicas Las texturas dinamicas se pueden describir como una secuencia de imágenes en la cual se pueden encontrar patrones que se repiten en el dominio espacio tiempo. Ejemplos de texturas dinámicas son el agua, el fuego, el humo o el follaje de los arboles . Definicion formal de textura dinámica. Sea =1con ∈ ℝ una secuencia de imágenes. Se supone que en cada instante t se obtiene una medición = + donde es una secuencia IID con distribución conocida. Se dice que es una textura dinámica si existen n filtros : ℝ→ℝ
Transcript

Introduccion

En este trabajo se estudia el reconocimiento de objetos sobre texturas dinamicas utilizando el

filtro de Kalman Robusto. Se implementó el algoritmo propuesto por Jing Zhong y Stan Sclaroff

en epl paper “Segmenting Foreground Objects from a Dynamic Textured Background via

Robust Kalman Filter”. Como base teorica para poder implementar el paper se estudio también

el paper “Dynamix Textures” de Steffano Soatto, Gianfranco Doretto, Ying Nian Wu y

Alessandro Chiuso en el que se presentan las texturas dinamicas.

Representacion de texturas dinamicas

Las texturas dinamicas se pueden describir como una secuencia de imágenes en la cual se

pueden encontrar patrones que se repiten en el dominio espacio tiempo. Ejemplos de texturas

dinámicas son el agua, el fuego, el humo o el follaje de los arboles .

Definicion formal de textura dinámica.

Sea 𝐼 𝑡 𝑡=1…𝜏 con 𝐼 𝑡 ∈ ℝ𝑚 una secuencia de 𝜏 imágenes. Se supone que en cada instante t

se obtiene una medición 𝑦 𝑡 = 𝐼 𝑡 + 𝑤 𝑡 donde 𝑤 𝑡 es una secuencia IID con

distribución 𝑝𝑤 conocida. Se dice que es una textura dinámica si existen n filtros 𝜙𝛼 :ℝ → ℝ𝑚

con α=1…n y una distribución estacionaria q ∙ tal que, definiendo 𝑥(𝑡) ∈ ℝ𝑛 que cumple

𝐼 𝑡 = 𝜙 𝑥 𝑡 , se cumple que 𝑥 𝑡 = 𝐴𝑖𝑥(𝑡 − 𝑖)𝑘𝑖=1 + 𝐵𝑣(𝑡) donde 𝑣(𝑡) ∈ ℝ𝑛𝑣 es una

realización IID de la distribución 𝑞(∙), con 𝐴𝑖 ∈ ℝ𝑛×𝑛 , 𝑖 = 1…𝑘,𝐵 ∈ ℝ𝑛×𝑛𝑣 y condición inicial

𝑥(0) = 𝑥0. Si asumimos k=1 podemos redefinir las variables de estado 𝑥(𝑡) como

[𝑥(𝑡)𝑇 𝑥(𝑡 − 1)𝑇 … 𝑥(𝑡 − 𝑘)𝑇]𝑇 . De esta manera nos queda que una textura dinámica esta

asociada a un proceso ARMA con una distribución de entrada desconocida.

𝑥(𝑡 + 1) = 𝐴𝑥(𝑡) + 𝐵𝑣(𝑡)

𝑦(𝑡) = 𝜙(𝑥(𝑡)) + 𝑤(𝑡)

La definición de anterior exige que se estimen los filtros 𝜙𝛼 . Para simplificar el problema de

estimación los filtros se toman como una base ortonormal

𝐼(𝑡) = 𝑥𝑖(𝑡)

𝑛

𝑖=1

𝜃𝑖 = 𝐶𝑥(𝑡)

donde 𝐶 = [𝜃1,…𝜃𝑛] ∈ ℝ𝑚×𝑛 .

Por lo tanto la textura dinámica se representa como:

𝑥(𝑡 + 1) = 𝐴𝑥(𝑡) + 𝐵𝑣(𝑡)

𝑦(𝑡) = 𝐶𝑥(𝑡) + 𝑤(𝑡)

Solucion propuesta en el paper “Dynamic Textures”

Para aprender los parámetros de la textura se plantea el problema como un problema de

estimación de máxima verosimiltud. Dado un conjunto de muestras [𝑦(1),… ,𝑦 𝜏 ] hay que

encontrar 𝐴 ,𝐵 ,𝐶 , 𝑞 = 𝑎𝑟𝑔𝑚𝑎𝑥𝐴,𝐵,𝐶,𝑞 𝑙𝑜𝑔𝑝(𝑦(1),… ,𝑦(𝜏)). Ademas se asume que la

distribución q es del tipo exponencial.

Si bien es posible encontrar soluciones asintóticamente optimas, por motivos de eficiencia

computacional, se propone una solución suboptima.

El sistema se representa como 𝑥 𝑡 + 1 = 𝐴𝑥 𝑡 + 𝐵𝑣 𝑡 𝑣(𝑡)~N(0, Q)

𝑦 𝑡 = 𝐶𝑥 𝑡 + 𝑤 𝑡 𝑤(𝑡)~N(0, R)

donde 𝑄 ∈ ℝ𝑛×𝑛 y 𝑅 ∈ ℝ𝑚×𝑚 son las matrices de ruido. 𝐵 y 𝑣(𝑡) del modelo descrito en la

parte anterior son tales que 𝐵𝐵 𝑇 = 𝑄 y 𝑣(𝑡)~𝑁(0, 𝐼).

Estimacion de los parámetros del proceso

Sea 𝑌𝜏 = [𝑦(1),… ,𝑦(𝜏)] ∈ ℝ𝑚×𝜏 una matriz compuesta por las τ imágenes medidas,

𝑋𝜏 = [𝑥(1),… , 𝑥(𝜏)] ∈ ℝ𝑛×𝜏 donde n es la cantidad de variables de estado y τ≫n, y 𝑊𝜏 =[𝑤(1),… ,𝑤(𝜏)] ∈ ℝ𝑚×𝜏 . Por lo tanto podemos escribir:

𝑌𝜏 = 𝐶𝑋𝜏 + 𝑊𝜏

donde se asume que 𝐶 ∈ ℝ𝑚×𝑛 con 𝑚 ≫ 𝑛, 𝑟𝑎𝑛𝑔𝑜(𝐶) = 𝑛 . Se toma que 𝑚 ≫ 𝑛 y que

𝑟𝑎𝑛𝑔𝑜(𝐶) = 𝑛 ya que lo que se busca ganar representando el proceso mediante variables de

estado es trabajar con dimensiones mas chicas. También se asume que 𝐶𝑇𝐶 = 𝐼.

Para estimar los parámetros del sistema lo que se hace es tomar la descomposición SVD de la

matriz 𝑌𝜏. 𝑌𝜏 = 𝑈𝛴𝑉𝑇, donde del teorema de SVD se sabe que U y V son matrices tales que

𝑈 ∈ ℝ𝑚×𝑚 y 𝑈𝑇𝑈 = 𝐼 y 𝑉 ∈ ℝ𝜏×𝜏 y 𝑉𝑇𝑉 = 𝐼. 𝛴 = [𝜍1 ,… ,𝜍𝜏] donde 𝜍𝑖 son los valores

singulares.

Para este caso en particular 𝑈 ∈ ℝ𝑚×𝑛 y 𝑉 ∈ ℝ𝜏×𝑛 . 𝛴 = [𝜍1 ,… ,𝜍𝑛] donde 𝜍𝑖 son los valores

singulares. Debe notarse que se está calculando una versión truncada de la descomposición SVD

donde se toman los n valores singulares más grandes que corresponden a las n direcciones con

mas energia .

Una vez que tenemos la descomposición se quiere encontrar el mejor estimador de C y de X en

el sentido Frobenius: 𝐶𝜏 ,𝑋𝜏 = 𝑎𝑟𝑔𝑚𝑖𝑛𝐶,𝑋𝜏𝑊𝜏. Se puede demostrar que la matriz que minimiza

este error es 𝑈𝛴𝑉𝑇 por lo tanto se toma 𝐶𝜏 = 𝑈 y 𝑋𝜏 = 𝛴𝑉𝑇.

𝐴𝜏 se determina a partir de la estimación de ,𝑋𝜏 . Se definen dos matrices 𝐷1 = 0 0𝐼𝜏−1 0

y

𝐷2 = 𝐼𝜏−1 0

0 0 . Estas matrices lo que hacen es seleccionar la parte de 𝑋𝜏 que se quiere

utilizar, 𝑋𝑡+1 = 𝛴𝑉𝑇𝐷1 y , 𝑋𝑡 = 𝛴𝑉𝑇𝐷2. Por la ecuación que describe la dinámica del sistema

tenemos que 𝑋𝑡+1 = 𝐴𝜏𝑋𝑡 , para despejar 𝐴𝜏 hay que calcular la matriz pseudoinversa de 𝑋𝑡 . Haciendo las cuentas se llega a que 𝐴𝜏 = 𝛴𝑉𝑇𝐷1𝑉(𝑉𝑇𝐷2𝑉)−1𝛴−1.

Por definición 𝑄(𝑡) = 𝐸{𝑣 𝑡 𝑣𝑇 𝑡 }, por lo tanto 𝑄(𝑡)se estima como

𝑄(𝜏) =1

𝜏 − 1 𝑣 𝑖 𝑣 𝑇 𝑖

𝜏−1

𝑖=1

donde 𝑣 𝑖 = 𝑥 (𝑖 + 1) − 𝐴 𝜏𝑥 (𝑖). Si definimos 𝑉𝜏 = [𝑣 1 ,… , 𝑣 𝜏 ] ∈ ℝ𝑛×𝜏queda que

𝑄 (𝜏) =1

𝜏−1𝑉𝜏𝑉𝜏

𝑇. Si además se toma la descomposición SVD 𝑉𝜏 = 𝑈𝑉𝛴𝑉𝑉𝑉𝑇,

𝑄 𝜏 =1

𝜏 − 1𝑈𝑉𝛴𝑉𝑉𝑉

𝑇𝑉𝑉𝛴𝑉𝑇𝑈𝑉

𝑇 =1

𝜏 − 1𝑈𝑉𝛴𝑉

2𝑈𝑉𝑇

Una vez obtenido 𝑄 𝜏 se busca encontrar 𝐵 tal que 𝐵 𝐵 𝑇 = 𝑄 . De la expresión anterior de 𝑄 𝜏 facil ver que

𝐵 =1

𝜏 − 1𝑈𝑉𝛴𝑉

En el caso en que el 𝑟𝑎𝑛𝑔𝑜( 𝑄 𝜏 ) < 𝑛 o se quiera hacer una aproximación low-rank se puede

computar la SVD truncada en un rango 𝑛𝑣.

Una vez obtenidos los parámetros estimados se puede sintetizar la secuencia de imágenes que se

utilizo para estimar los parámetros.

En esta figura las cinco primeras imágenes son de la secuencia medida y las otras cinco son extrapoladas.

Se utilizo una secuencia de τ = 50 imágenes para aprender los parámetros. Se calculo la SVD de la

secuencia Yτ para n=49, n=20, n=2. Al utilizar menos valores singulares se descartan las direcciones de

menor energía, por lo tanto se pierde detalle en las imágenes sintetizadas.

Aquí se ve una secuencia de un árbol al viento con τ = 251, n1=250, n2=100, n3=20. En este caso es

mas notorio que la estimación no es buena cuando se toman pocas direcciones.

Reconocimiento de objetos en el frente.

Para el reconocimiento de objetos en el frente se utiliza un filtro de Kalman robusto. Si no

hubiera objetos en el frente el siguiente estado de la textura se podría estimar tomando una

nueva medida y todos los estados anteriores. Para poder resolver el problema de estimación

mediante Kalman se hace la suposición de que el estado a estimar depende solamente de la

medición y del estado anterior. Por lo tanto se busca maximizar la probabilidad de estimar bien

el estado 𝑋𝑡 conociendo 𝑋𝑡−1 y 𝑌𝑡 , donde 𝑌𝑡 es la medición en el tiempo t,

𝑋 𝑡 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑋 𝑝(𝑋𝑡 |𝑌𝑡 ,𝑋𝑡−1)

Utilizando la formula de Bayes 𝑃(𝐻|𝐴,𝐵,𝐶) =𝑃(𝐴|𝐻)𝑃(𝐵|𝐻)𝑃(𝐶|𝐻)

𝑃 𝐴 𝑃 𝐵 𝑃(𝐶)𝑃(𝐻) se llega a que

𝑃(𝑋𝑡 |𝑌𝑡 ,𝑋𝑡−1) =𝑃(𝑌𝑡 |𝑋𝑡)𝑃(𝑋𝑡−1|𝑋𝑡)

𝑃(𝑋𝑡−1)𝑃(𝑌𝑡)𝑃(𝑋𝑡)

Aplicando la formula de Bayes nuevamente

𝑃(𝑋𝑡−1|𝑋𝑡)𝑃(𝑋𝑡)

𝑃(𝑋𝑡−1)= 𝑃(𝑋𝑡 |𝑋𝑡−1)

Por lo tanto queda que

𝑃(𝑋𝑡 |𝑌𝑡 ,𝑋𝑡−1) =𝑃(𝑌𝑡 |𝑋𝑡)𝑃(𝑋𝑡 |𝑋𝑡−1)

𝑃(𝑌𝑡)

El problema se reduce a

𝑋 𝑡 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑋 𝑃(𝑌𝑡 |𝑋𝑡)𝑃(𝑋𝑡 |𝑋𝑡−1)

Para que el filtro de Kalman se optimo se supone que las distribuciones de probabilidades de las

observaciones y de los estados son gaussianas. Recordando el modelo de estados

𝑋𝑡+1 = 𝐴𝑋𝑡 + 𝑣 𝑡 𝑣(𝑡)~N(0, Q)

𝑌𝑡 = 𝐶𝑋𝑡 + 𝑤 𝑡 𝑤(𝑡)~N(0, R)

Se asume que

𝑃(𝑋𝑡 |𝑋𝑡−1) =1

(2𝜋)𝑛 |𝑄|𝑒−

12

(𝑋𝑡−𝐴𝑋𝑡−1)𝑇𝑄−1(𝑋𝑡−𝐴𝑋𝑡−1)

𝑃(𝑌𝑡 |𝑋𝑡) =1

(2𝜋)𝑚 |𝑅|𝑒−

12

(𝑌𝑡−𝐶𝑋𝑡)𝑇𝑅−1(𝑌𝑡−𝐶𝑋𝑡)

Tomando 𝑙𝑛(𝑋 𝑡) se llega a la función de costo

𝐽 = 𝑌𝑡 − 𝐶𝑋𝑡 𝑇𝑅−1(𝑌𝑡 − 𝐶𝑋𝑡) + 𝑋𝑡 − 𝐴𝑋𝑡−1

𝑇𝑄−1(𝑋𝑡 − 𝐴𝑋𝑡−1)

Para reconocer objetos en el frente se propone modificar el filtro de Kalman, se propone un

filtro de Kalman robusto. Los objetos en el frente hacen que la estimación de los parámetros no

sea buena si se utilza el filtro de Kalman tradicional, al hacer el filtro robusto se logra darle

menos peso a las mediciones corruptas y se confía mas en la estimación del vector de estados.

En para implementar la robustosidad nos interesa ver el primer termino de la función de costo

porque es el depende de la medición 𝑌𝑡 .

𝐽1 = 𝑌𝑡 − 𝐶𝑋𝑡 𝑇𝑅−1 𝑌𝑡 − 𝐶𝑋𝑡

Como se asumió que R es diagonal queda

𝐽1 = (𝑌𝑡 ,𝑖 − 𝐶𝑋 𝑡 ,𝑖)

𝜍𝑖

2𝑚

𝑖=1

Si se formula J1 como un M-estimador

𝐽1 = 𝜌

𝑚

𝑖=1

(𝑌𝑡 ,𝑖 − 𝐶𝑋 𝑡,𝑖)

𝜍𝑖

La minimización se puede conseguir resolviendo

𝜓(𝑧𝑖)

𝑚

𝑖=1

𝜕𝑧𝑖𝜕𝑥𝑗

= 0,

para 𝑗 = 1…𝑛 y donde 𝑧𝑖 =(𝑌𝑡 ,𝑖 − 𝐶𝑋 𝑡 ,𝑖)

𝜍𝑖

Definiendo 𝑤(𝑧𝑖) = 𝜓 (𝑧𝑖)/𝑧𝑖 la ecuación anterior queda

𝑤 𝑧𝑖 𝑧𝑖

𝑚

𝑖=1

𝜕𝑧𝑖𝜕𝑥𝑗

= 0

Si ahora se integra la expresión se tiene que

𝑋 𝑡 = 𝑎𝑟𝑔𝑚𝑖𝑛𝑋 𝑤 𝑧𝑡−1,𝑖 𝑧𝑖2

𝑚

𝑖=1

𝑤 se evalua en cada tiempo 𝑡 a partir de la medición 𝑌𝑡 y la estimación 𝑋𝑡 . La forma de 𝑤

depende de la función ρ que se elija, en este caso la función w que se utiliza es:

𝑤 𝑧𝑖 =1

1 + 𝑧𝑖𝑐

2

Una vez que se llega a la expresión de 𝑋 𝑡 se puede ver que 𝑤 𝑧𝑡−1,𝑖 𝑧𝑖𝜕𝑧𝑖𝜕𝑥𝑗

𝑚𝑖=1 = 0 se puede

escribir en notación matricial. Entonces J queda:

𝐽𝑡 = 𝑌𝑡 − 𝐶𝑋 𝑡 𝑇𝑀𝑡−1𝑅

−1 𝑌𝑡 − 𝐶𝑋 𝑡 + 𝑋 𝑡 − 𝐴𝑋 𝑡−1 𝑇𝑄−1 𝑋 𝑡 − 𝐴𝑋 𝑡−1

y entonces

𝑀𝑡−1 = 𝑑𝑖𝑎𝑔(𝑤 𝑧𝑡−1,1 ,𝑤 𝑧𝑡−1,2 …𝑤 𝑧𝑡−1,𝑚 )

La matriz 𝑀𝑡−1 se computa en cada tiempo k a partir del nuevo estado 𝑋 𝑡

Deduccion de parámetros del filtro de Kalman robusto.

Deduccion de 𝑿 𝒕

𝐽𝑡 = 𝑌𝑡 − 𝐶𝑋 𝑡 𝑇𝑀𝑡−1𝑅

−1 𝑌𝑡 − 𝐶𝑋 𝑡 + 𝑋 𝑡 − 𝑋 𝑝𝑡 𝑇𝑄−1 𝑋 𝑡 − 𝑋 𝑝𝑡

𝜕𝐽𝑡𝜕𝑋 𝑡

= −2 𝑌𝑡 − 𝐶𝑋 𝑡 𝑇𝑀𝑡−1𝑅

−1𝐶 + 2 𝑋 𝑡 − 𝑋 𝑝𝑡 𝑇𝑄−1

= 0

𝑌𝑡 − 𝐶𝑋 𝑡 𝑇

(𝑀𝑡−1𝑅−1𝐶) = 𝑋 𝑡 − 𝑋 𝑝𝑡

𝑇𝑄−1

(𝑌𝑇 − 𝑋 𝑇𝑝𝑡𝐶𝑇)(𝑀𝑡−1𝑅

−1𝐶) + 𝑋 𝑇𝑝𝑡 (𝑄−1 + 𝐶𝑇𝑀𝑡−1𝑅−1𝐶) = 𝑋 𝑇𝑡(𝑄−1 + 𝐶𝑇𝑀𝑡−1𝑅

−1𝐶)

Si llamamos 𝑁 = 𝑄−1 + 𝐶𝑇𝑀𝑡−1𝑅−1𝐶 y 𝐾 = 𝑁−1𝐶𝑇𝑅−1

𝑋 𝑇𝑡 = (𝑌𝑇 − 𝑋 𝑇𝑝𝑡𝐶𝑇)𝑀𝑡−1𝑅

−1𝐶𝑁−1 + 𝑋 𝑇𝑝𝑡

𝑋 𝑡 = 𝐾𝑀𝑡−1(𝑌 − 𝐶𝑋 𝑝𝑡 ) + 𝑋 𝑝𝑡

Deduccion de K

Se busca minimizar 𝑋 𝑡 = 𝐾𝑀𝑡−1(𝑌 − 𝐶𝑋 𝑝𝑡 ) + 𝑋 𝑝𝑡

El error de predicción es: 𝑒− = 𝑋𝑡 − 𝑋 𝑝𝑡

El error de estimación es: 𝑒 = 𝑋𝑡 − 𝑋 𝑡 entonces:

Entonces 𝑒 = 𝑒− − 𝐾𝑀(𝑌 − 𝐶𝑋 𝑝𝑡 )

𝑒2 = 𝐸[𝑒𝑇𝑒] = 𝐸[ 𝑒− − 𝐾𝑀 𝑌 − 𝐶𝑋 𝑝𝑡 𝑇 𝑒− − 𝐾𝑀(𝑌 − 𝐶𝑋 𝑝𝑡 ) ]

Para despejar K se deriva e2 respecto de K y se iguala a cero.

𝜕𝑒2/𝜕𝐾 = −2𝐸[ 𝑒− − 𝐾𝑀(𝑌 − 𝐶𝑋 𝑝𝑡) ((𝑌 − 𝐶𝑋 𝑝𝑡)𝑇𝑀𝑇]

Notar que 𝑀(𝑌 − 𝐶𝑋 𝑝𝑡 ) = 𝑀(𝐶𝑒− + 𝑣)

𝐸[ 𝑒− − 𝐾𝑀𝐶𝑒− − 𝐾𝑀𝑣 ((𝑒−𝑇𝐶𝑇 + 𝑣𝑇)𝑀𝑇)] = 𝑃−𝐶𝑇𝑀𝑇 −𝐾𝑀𝐶𝑃−𝐶𝑇𝑀𝑇 − 𝐾𝑀𝑅𝑀𝑇 = 0

𝐾𝑀 𝐶𝑃−𝐶𝑇 + 𝑅 𝑀𝑇 = 𝑃−𝐶𝑇𝑀𝑇 (∗)

Como el termino que multiplica a K es singular hay que calcular la pseudoinversa

𝐾 = (𝐶′𝑇𝑀𝐶′)−1𝐶′𝑇 donde 𝐶′ = (𝐶𝑃−𝐶𝑇 + 𝑅)𝑀𝑇𝐶(𝑃−𝐶𝑇𝑀𝑇𝐶)−1

Deduccion de P

𝑒 = 𝑒− − 𝐾𝑀 𝑌 − 𝐶𝑋 𝑝𝑡 = 𝑒− − 𝐾𝑀 𝐶𝑒− + 𝑣 = 𝐼 − 𝐾𝑀𝐶 𝑒−−𝐾𝑀𝑣

𝑃 = 𝐸 𝑒𝑒𝑇 = 𝐼 − 𝐾𝑀𝐶 𝑃− 𝐼 − 𝐾𝑀𝐶 𝑇 + 𝐾𝑀𝑅𝑀𝑇𝐾𝑇

= 𝐼 − 𝐾𝑀𝐶 𝑃−+[(𝐾𝑀𝐶 − 𝐼) 𝑃−𝐶𝑇𝑀𝑇+ 𝐾𝑀𝑅𝑀𝑇]𝐾𝑇

El termino entre paréntesis recto es cero por (∗)

𝑃 = 𝐼 − 𝐾𝑀𝐶 𝑃−

Algoritmo del filtro de Kalman robusto

1. Se calcula la función de peso 𝑤 𝑧𝑖 con 𝑋 𝑝𝑡 y 𝑌𝑡

2. Se arma la matriz M 3. Se calcula 𝐶′ 4. Se calcula 𝐾 5. Se actualiza el valor estimado 𝑋 𝑡

6. Se actualiza 𝑃 7. Repito

Resultados

Para la detección de objetos el procedimiento realizado fue el siguiente. Se introdujo por

separado los datos para aprender los parámetros de la textura dinámica. Una vez estimados

los parámetros del sistema se introducen los datos con objetos en el frente. A la salida de la

función lo que se tiene es una matriz que contiene los valores de la función de peso 𝑤 𝑧𝑖 , con esta funcion se genera una secuencia de imágenes en la que se ve claramente el objeto en

el frente. Utilizando estas imágenes y computando el histograma de las imágenes se puede

determinar un umbral para poder obtener una imagen binaria en la que se ve el objeto que se

quiere detectar.

Para este ejemplo se utilizaron 60 muestras para aprendizaje de los parámetros y 10 muestras con

objetos al frente. Se puede notar que a pesar de que el color del outlier es similar al del fondo se puede

detectar.

Video de una botella flotando en el agua. En este ejemplo se utilizaron 17 muestras para el aprendizaje

de los parámetros, y otras 17 para detectar el frente. Es el mismo que se da como ejemplo en el paper

que se esta tratando.

En este video se ve un pato nadando, para este ejemplo se tomaron 40 muestras para estimar los

parámetros y 150 para detectar.

Anexo:

ARMA como variables de estado

Un proceso ARMA(p,q) donde 𝑣 𝑡 es la entrada y 𝑦 𝑡 es la salida se representa como

𝑦 𝑡 + 𝑐𝑙𝑦 𝑡 − 𝑙 = 𝑏𝑙𝑣(𝑡 − 𝑞)𝑞𝑙=0

𝑝𝑙=1

Esto se puede ver también como la aplicación de dos filtros consecutivos. Primero se pasa la

entrada 𝑣 𝑡 por un filtro FIR H1 que nos da una variable intermedia 𝑥 𝑡

𝐻1 𝑧 =𝑋(𝑧)

𝑉(𝑧)= 𝑏𝑙𝑧

−𝑙

𝑞

𝑙=0

Luego esta entrada intermedia se la pasa por un filtro IIR H2 que nos da la salida 𝑦 𝑡

𝐻2 𝑧 =𝑌(𝑧)

𝑋(𝑧)=

1

1 + 𝑐𝑙𝑧−𝑙𝑝

𝑙=1

Teniendo en cuenta esto se puede ver que el proceso ARMA(p,q) se puede representar mediante

un modelo de variables de estado donde 𝑋 𝑡 = [𝑥(𝑡) 𝑥(𝑡 − 1)… . 𝑥(𝑡 − 𝑝)] 𝑇es el vector de

estados.

Tomando 𝐴 =

−𝑐1 −𝑐2 ⋯ −𝑐𝑝−1 −𝑐𝑝1 0 ⋯ 0 00⋮0

1

0

0 ⋮ 1

0⋮0

= −𝐶′

𝐼𝑝−1 0𝑝−1

Donde 𝐶 ′ = (𝑐1 𝑐2 … 𝑐𝑝)

𝑉 𝑡 = (𝑣(𝑡) 0… 0 )𝑇 y 𝐷 = (𝑏0 … 𝑏𝑞)

La representación del sistema en variables de estado queda:

𝑋(𝑡 + 1) = 𝐴𝑋(𝑡) + 𝑉(𝑡 + 1)

𝑦 𝑡 = 𝐷𝑋(𝑡)

Se puede verificar tomando el primer elemento del vector 𝑋 𝑡 . Se tiene que

𝑥 𝑡 + 𝑐𝑙𝑥 𝑡 − 𝑙 = 𝑣(𝑡)𝑝𝑙=1 , además 𝑦 𝑡 = 𝑏𝑙𝑥(𝑡 − 𝑞)

𝑞𝑙=0 . De estas ecuaciones se deduce

que:

𝑌 𝑧 = 𝑏𝑙𝑧

−𝑙𝑞𝑙=0

1 + 𝑐𝑙𝑧−𝑙𝑝

𝑙=1

𝑉 𝑧 = 𝐻1 𝑧 𝐻2 𝑧 𝑉(𝑧)

La representación de un proceso ARMA en variables de estados no es única, otra representación

puede ser como sigue:

Tomando 𝐴 =

−𝑐1 1 0−𝑐2 0 1−𝑐3 0 0

0 ⋯ ⋯0 ⋯ ⋯1 ⋯ ⋯

⋯ ⋯ 0⋯ ⋯ 0⋯ ⋯ 0

⋮ ⋮ ⋮ ⋮ ⋮ ⋮

−𝑐𝑝−𝑞−1 ⋯ ⋯ 0 ⋱ 00 0 ⋱0 0 0

⋯ ⋯ ⋮⋯ ⋯ ⋮⋯ 1 0

−𝑐𝑝−𝑞 0 0

⋮ 0 0−𝑐𝑝 0 0

⋯ ⋯ ⋯⋯ ⋯ ⋯⋯ ⋯ ⋯

0 0 10 0 00 0 0

= −𝐶′𝑇𝐼𝑞−1

0𝑝−𝑞×𝑞−1

𝐵 = 𝑏0 𝑏1 ⋯ ⋯ 𝑏𝑞 𝑇 y 𝐶 = 1 0 0 ⋯ 0

Donde p es el orden del filtro H2 y q es el orden del filtro H1.

Utilizando estas matrices vemos que el proceso ARMA(p,q) se puede representar como:

𝑥(𝑡 + 1) = 𝐴𝑥(𝑡) + 𝐵𝑣(𝑡 + 1)

𝑦 𝑡 = 𝐶𝑥(𝑡)

Para verificar esta representación lo que se debe hacer es hacer las cuentas desde el ultimo

elemento del vector de estado y sustituir hacia arriba(calculo 𝑥𝑝 y a partir de este calculo 𝑥𝑝−1 y

sigo asi hasta llegar a 𝑥1).

Teorema SVD

Dada una matriz 𝐴 ∈ ℝ𝑘×𝑚 y existen dos matrices unitarias 𝑈 ∈ ℝ𝑘×𝑘 y 𝑉 ∈ ℝ𝑚×𝑚 que

cumplen la siguiente igualdad:

𝐴 = 𝑈Σ𝑉𝐻

Σ ∈ ℝ𝑘×𝑚 es una matriz que contiene en la diagonal a [𝜍1 ,… ,𝜍𝑤 ] donde 𝜍1 ≥ 𝜍2 ≥ ⋯ ≥

𝜍𝑤 ≥ 0 son los valores singulares de la matriz 𝐴 y rango(𝐴)= 𝑤. En el caso en que no interese

tomar los 𝑤 valores singulares sino los 𝑛 primeros, las dimensiones de las matrices 𝑈,𝑉, Σ

cambian. Si suponemos que 𝑚 < 𝑘 y 𝑤 = 𝑚 queda que 𝑈 ∈ ℝ𝑘×𝑛 , 𝑉 ∈ ℝ𝑚×𝑛 y Σ ∈ ℝ𝑛×𝑛

Norma de Frobenius

La norma de Frobenius de una matriz A se define como:

‖𝐴‖𝐹 = 𝑎𝑖𝑗 2

𝑛

𝑗=1

= 𝜍𝑖2

min {𝑚 .𝑛}

𝑖=1

𝑚

𝑖=1

Fixed Rank approximation

Si tenemos una matriz 𝐴 de rango 𝑤 y queremos hallar la matriz 𝐶 de rango 𝑛 que mejor la

aproxima, hay que minimizar ‖𝐴 − 𝐶‖𝐹. Para resolver este problema se toma la descomposición

SVD de 𝐴.

𝐴 = 𝑈Σ𝑉𝐻

A partir de Σ se igualan a cero los 𝑤 − 𝑛 valores singulares mas chicos y se obtiene 𝛴𝑛 . Luego

se toma

𝐴𝑛 = 𝑈Σn𝑉𝐻

Por la definición de la norma de Frobenius se puede deducir que la matriz que minimiza la

expresión tiene que ser de la forma de 𝐴𝑛 . Si nos tomamos 𝐶 = 𝐴𝑛 la expresión a minimizar

queda:

‖Σ − Σn‖𝐹 = 𝜍𝑖2

𝑤

𝑖=𝑛+1

Como las dos matrices son diagonales el error que se genera al aproximar con rango 𝑛 es

minimo.

Calculo de la pseudo inversa de 𝑿 𝒕

La pseudoinversa de 𝐴 se define como 𝐴+ = (𝐴∗𝐴)−1𝐴∗. En este caso se quiere calcular la

pseudoinversa de 𝑋 𝑡 = Σ𝑉𝑇𝐷2.

𝐴∗ = 𝐷2𝑇𝑉ΣT

𝐴∗𝐴 = 𝐷2𝑇𝑉ΣTΣ𝑉𝑇𝐷2

(𝐴∗𝐴)−1 = 𝐷2−1𝑉−𝑇Σ−1Σ−T𝑉−1𝐷2

−𝑇

𝐴∗𝐴 −1𝐴∗ = 𝐷2−1𝑉−𝑇Σ−1Σ−T𝑉−1𝐷2

−𝑇𝐷2𝑇𝑉ΣT

𝐴∗𝐴 −1𝐴∗ = 𝐷2−1𝑉−𝑇Σ−1 = 𝑉(𝑉𝑇𝐷2𝑉)−1Σ−1

M – estimador

Son una generalización de los estimadores de máxima verosimilitud(MLE). En los MLE lo que

interesa es maximizar la función producto de las densidades de porbabilidad

𝑋 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑋 𝑝(𝑥𝑖)

𝑛

𝑖=1

En los M-estimadores se busca minimizar 𝜌(𝑥𝑖)𝑛𝑖=1 , donde 𝜌 es una función con ciertas

características. Se puede ver que MLE es un caso particular del M-estimador si se toma

− ln 𝑋 = −ln(𝑝 𝑥𝑖 )𝑛𝑖=1 , minimizar esta función es equivalente a maximizar el producto.

La minimización de 𝜌(𝑥𝑖)𝑛𝑖=1 se puede lograr derivando 𝜌 y resolviendo 𝜓(𝑥𝑖)

𝑛𝑖=1 = 0

donde 𝜓 es la derivada de 𝜌 respecto de 𝑥.

Algunos ejemplos de 𝜌 y 𝜓 son:


Recommended