Segmentación de secuencias de video en tiempo real utilizando una WebCam
description
Transcript of Segmentación de secuencias de video en tiempo real utilizando una WebCam
![Page 1: Segmentación de secuencias de video en tiempo real utilizando una WebCam](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/1.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/4.jpg)
Utilización
• Videoconferencia
• Video vigilancia
![Page 5: Segmentación de secuencias de video en tiempo real utilizando una WebCam](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/18.jpg)
ExperimentosMétodo Propuesto
Método Creative
![Page 19: Segmentación de secuencias de video en tiempo real utilizando una WebCam](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.in/reader033/viewer/2022051401/56813d62550346895da7354b/html5/thumbnails/22.jpg)
Preguntas …