segmentación de secuencias de video en tiempo real utilizando una webcam
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 PresentationTRANSCRIPT
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
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.
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
Utilización
• Videoconferencia
• Video vigilancia
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.
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
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
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
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).
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
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.
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
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.
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
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.
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.
ExperimentosMétodo Creative
• Resolución 320x240, corre a 29 f/s
ExperimentosMétodo Propuesto
Método Creative
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.
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.
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
Preguntas …