segmentación de secuencias de video en tiempo real utilizando una webcam

22
Segmentación de secuencias de video en tiempo real utilizando una WebCam V Taller de Procesamiento de Imágenes (PI 2008) Presenta: Francisco Javier Hernández López Asesor: Dr. Mariano José Juan Rivera Meraz CIMAT, Agosto/2008

Upload: senwe

Post on 07-Jan-2016

84 views

Category:

Documents


0 download

DESCRIPTION

Segmentación de secuencias de video en tiempo real utilizando una WebCam. V Taller de Procesamiento de Imágenes (PI 2008). Presenta: Francisco Javier Hernández López Asesor: Dr. Mariano José Juan Rivera Meraz CIMAT, Agosto/2008. Nuevo Fondo. Secuencia de Video. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Segmentación de secuencias de video en tiempo real utilizando

una WebCam

V Taller de Procesamiento de Imágenes (PI 2008)

Presenta: Francisco Javier Hernández López

Asesor: Dr. Mariano José Juan Rivera Meraz

CIMAT, Agosto/2008

Page 2: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Problema

• Dado una secuencia de imágenes de video, segmentar el Primer Plano (Foreground) del Fondo (Background) en tiempo real.

Secuencia de Video Nuevo Fondo

Ilustramos nuestros resultados mediante la sustitución del fondo.

Page 3: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Problema

Espacio Caso I Caso II Caso III Caso IV

Primer

Plano

Móvil Móvil Estático Estático

Fondo Estático Móvil Móvil Estático

• Podemos observar que existen diferentes casos que se pueden presentar durante la secuencia de video:

Tabla 1. Casos del Problema

Page 4: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Utilización

• Videoconferencia

• Video vigilancia

Page 5: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Propuesta

WebCam

Tomamos N imágenes y calculamos μ(x)

Leemos la siguiente imagen IS(x)

Calculamos Verosimilitudde ser Fondo VB

Segmentamos con QMPFy sustituimos el Fondo.

Page 6: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Propuesta• Verosimilitud de ser Fondo xVB

2

2 )(2

1exp

)(2

1xxI

xxxV SB

Inicialmente probamos con una distribución gaussiana:

(1) 2exp xxIxV SB

Dado que el video es adquirido a través de un formato MPG4 (comprimido), la estimación de la varianza no es robusta, por lo que usamos simplemente:

Distribución Gaussiana Distribución Exponencial

Page 7: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Propuesta• Segmentación con el método QMPF.

,),()()()()(1)()(2

1)(

,

222

x yx

BF yxWyPxPxdxPxdxPxPU

. )()(

,

, )(log

, )(1log

2yIxI

yxW

xVxd

xVxd

SS

BB

BF

Siguiendo el método QMPF tenemos el siguiente funcional:

(2)

donde:

Resolviendo (2) para P(x) tenemos:

yxBF

yxB

yxWxdxd

yxWyPxd

xP

,

,

),()()(

),()()(

)(

Utilizando Gauss - SeidelCon )(1)(0 xVxP B

Page 8: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Propuesta• Sustitución del Fondo

• Si P(x)>Umbral entonces

• de lo contrario xIxI SSEG 2

xFNxI SEG

Donde: Umbral=0.5

• Al realizar los experimentos observamos los siguientes problemas:

Cambio de Intensidad en la escena.

Semejanza del color

Modificación de la Intensidad

Corrección de semejanzadel color

Page 9: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Propuesta

• Modificación de la Intensidad

• restringida al área donde estamos seguros que es fondo, donde

xIxxDiv s/ UmbralxantP _

• Calculamos μRGB de los elementos de Div(x).

RGBSS xIxI •

• Finalmente calculamos la verosimilitud de ser fondo con la ecuación (1).

Page 10: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Propuesta

• Corrección de Semejanza del Color

• Calculamos el Flujo Óptico (Lucas & Kanade), obtenemos d(x).

• Si UmbralxVUmbralxdxantP B AND )(_

)(_12 xdxantPxVB

• de lo contrario

xVxV BB 2

• Finalmente

xVxV BB 2

Page 11: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Implementación

• El método fue implementado en Visual C++ 2005 Express Edition, utilizando:

GPU: Tarjeta de Video NVIDIA GeForce 8800 GT, Lenguaje CUDA (Compute Unified Device Architecture).

OpenCV.

Una WebCam Creative.

Computadora Pentium 4 con CPU a 3.40 GHz y 512 MB de RAM.

Page 12: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Implementación

Diagrama de Flujo Principal del Método

N imágenes I(x),FN(x),

IS2 (x) IS (x)

Ban ≤ C Ban Ban+1

Calculamos VB (x)

Segmentación con QMPF,Obtenemos P(x)

P_ant(x) P(x)

Cambiamos FondoISEG (x)

SiCon P_ant(x)

Calculamos Div(x)Calculamos µR GB IS (x) IS (x) µR GB

Calculamos VB (x)

Calculamos F.O.Calculamos VB2 (x)VB (x) VB2 (x)

Ban 0Calculamos µ(x)

Siguiente imagen IS (x)

No

Segmentación del Primer Plano

Modificación de la Intensidad

Corrección de Semejanza del Color

OpenCV GPU

OpenCV

GPU

GPU

CPU

GPU

OpenCV

CPU

Page 13: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Implementación

• Segmentación con QMPF

yxBF

yxB

yxWxdxd

yxWyPxd

xP

,

,

),()()(

),()()(

)(

Por GS resolvemos (3) para encontrar P(x) (3)

Calculamos las Distancias y Pesos

. )()(

,

, )(log

, )(1log

2yIxI

yxW

xVxd

xVxd

SS

BB

BF

VB(x) 2exp xxIxV SB

Este proceso se implemento en GPU, utilizando MGrid (Estructura Piramidal), sin necesidad de crear memoria

para toda la pirámide.

Page 14: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Implementación

• Modificación de la Intensidad

P_ant(x)

Calculamos Div(x), restringida al área

del Fondo xIxxDiv s/ GPU

RGBSS xIxI Modificamos la

Intensidad de la imagen IS (x)

GPU

RGBCalculamos la media

Fx

RGB xDivPF

)(#

1

#PF Numero de Píxeles del FondoF Fondo

CPU

Page 15: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Implementación

• Corrección de Semejanza del Color

VB(x), P_ant(x)

Calculamos el FO. Lucas & Kanade

d(x)

cvCalcOpticalFlowHS(prev,curr,use_previous,velx,vely,lambda,CvTermCriteria );

cvCalcOpticalFlowLK(prev,curr, win_size, dx, dy );

OpenCV

Modificar el valor de VB(x)

Si un píxel era primer plano en la solución anterior P_ant(x), y ahora es clasificado como fondo, entonces damos oportunidad a que siga teniendo la misma probabilidad de ser fondo que tenía en la P_ant(x). CPU

Nota: Esta pendiente la implementación de este proceso en GPU.

Page 16: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Experimentos

• Los experimentos fueron realizados con secuencias de video de resolución 320x240.

Método Propuesto

• M_1: Método sin ajuste de iluminación y sin corrección de semejanza del color, corre a 50 f/s.

• M_2: Método Completo, corre a 27 f/s.

Page 17: Segmentación de secuencias de video en tiempo real utilizando una WebCam

ExperimentosMétodo Creative

• Resolución 320x240, corre a 29 f/s

Page 18: Segmentación de secuencias de video en tiempo real utilizando una WebCam

ExperimentosMétodo Propuesto

Método Creative

Page 19: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Conclusión

Hemos presentado un método que sustituye automáticamente el fondo de una secuencia de video en tiempo real, y que además como vimos en los experimentos, es robusto a cambios de iluminación y semejanza entre el color del fondo y lo que se está moviendo.

Page 20: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Trabajo a Futuro

Como trabajo a futuro queremos resolver también los casos II y III (Tabla 1) del problema general, aquí necesitamos que el método tenga conocimiento de profundidad en la escena, para esto hemos pensado en colocar otra WebCam para formar un par stereo.

Page 21: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Referencias

[1] Mariano Rivera and Pedro P. Mayorga, “Quadratic Markovian Probability Fields for Image Binary Segmentation”

[2] Stefano Messelodi, Carla Maria Modena, Nicola Segata, Michele Zanin, “A Kalman Filter Based Background Updating Algorithm Robust to Sharp Illumination Changes”, pages 163-170, (2005).

[3] CUDA ZONE: http://www.nvidia.com/object/cuda_get.html

[4] GPGPU: http://www.gpgpu.org/

[5] OpenCV Manual Referente: http://www.comp.leeds.ac.uk/vision/opencv/opencvref_cv.html

Page 22: Segmentación de secuencias de video en tiempo real utilizando una WebCam

Preguntas …