Sunteți pe pagina 1din 43

COMPARACIN DE DOS ALGORITMOS DE ESTIMACIN DEL PRIMER PLANO:

CODEBOOK Y FGDSTATMODEL.

JHON KEPPLER NIO OLAYA


GERMAN EDUARDO VEJARANO FUENTES

PONTIFICIA UNIVERSIDAD JAVERIANA


FACULTAD DE INGENIERA
DEPARTAMENTO DE ELECTRNICA
BOGOT D.C.
2011

COMPARACIN DE DOS ALGORITMOS DE ESTIMACIN DEL PRIMER PLANO:


CODEBOOK Y FGDSTATMODEL.

JHON KEPPLER NIO OLAYA


GERMAN EDUARDO VEJARANO FUENTES

Trabajo de grado para optar por el ttulo de


Ingeniero Electrnico

Director
Julin Armando Quiroga Seplveda
Ingeniero Electrnico, M. Sc.

PONTIFICIA UNIVERSIDAD JAVERIANA


FACULTAD DE INGENIERA
DEPARTAMENTO DE ELECTRNICA
BOGOT D.C.
2011
II

PONTIFICIA UNIVERSIDAD JAVERIANA


FACULTAD DE INGENIERA
CARRERA DE INGENIERA ELECTRNICA

RECTOR MAGNFICO: R.P JOAQUIN EMILIO SANCHEZ GARCA


DECANO ACADMICO: Ing. FRANCISCO JAVIER REBOLLEDO MUOZ, M. Econ.
DECANO DEL MEDIO UNIVERSITERIO: R.P SERGIO BERNAL RESTREPO, S, J.
DIRECTOR DE CARRERA:
Ing. JUAN MANUEL CRUZ BOHRQUEZ, M. Ed.
DIRECTOR DEL PROYECTO:
Ing. JULIN ARMANDO QUIROGA SEPLVEDA, M. Sc.

III

NOTA DE ADVERTENCIA
La universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus
proyectos de grado. Slo velar porque no se publique nada contrario al dogma y la moral
catlica y porque los trabajos no contengan ataques o polmicas puramente personales. Antes
bien, que se vea en ellos el anhelo de buscar la verdad y la justicia.

Artculo 23 de la Resolucin N 13 del


6 de julio de 1946, por la cual se
reglamenta lo concerniente a Tesis y
Exmenes de Grado en la Pontificia
Universidad Javeriana.

IV

A Dios por la maravillosa


oportunidad de logar nuestros sueos
acompaados y apoyados por
nuestra familia, amigos y seres
queridos.
Germn E. Vejarano F.

A Dios y a mi familia, por la fuerza y


el apoyo incondicional en todos los
momentos de mi vida.
Jhon K. Nio O.
V

AGRADECIMIENTOS
Para lograr los objetivos de este trabajo de grado fue necesario que sus autores invirtieran gran
esfuerzo y dedicacin, sin embargo no hubiera sido posible sin el apoyo y colaboracin de
muchas personas. Queremos resaltar la maravillosa labor de apoyo y respaldo de nuestras
familias y seres queridos en el proceso.
A nuestro director de tesis Ing. Julin Quiroga, por su paciencia y apoyo incondicional. Y a Dios
por encima de todas las cosas por darnos la fortaleza y energa para culminar esta labor.

VI

TABLA DE CONTENIDO

TABLA DE CONTENIDO
INDICE DE FIGURAS ..

I
II

NDICE DE TABLAS ...

IV

LISTA DE ANEXOS .....

VI

1. INTRODUCCIN

2. MARCO TERICO

2.1 VIDEO Y PRIMER PLANO


2.2 ESTADISTICA INFERENCIAL E INFERENCI BAYESIANA
2.3 TEOREMA DE BAYES
2.4 ESPACIO Y.U.V..
2.5 ALGOTIRMOS DE ESTIMACIN DE PRIMER PLANO
2.5.1 FGDStatModel.
2.5.2 Codebook..

3. DESRIPCIN DEL SISTEMA.....


3.1 TIPO DE ERRORES.
3.1.1 Falsas Aceptaciones..
3.1.2 Falsos Rechazos...
3.2 SEGMENTACIN MANUAL......
3.3 VIDEOS SELECCIONADOS ..
3.4 FRAMES DE EVALUACIN
3.5 ALGORITMO1: FGDStatModel.
3.6 ALGORITMO 2: Codebook..
4. PRUEBAS..
4.1 COMPARACIN DE IMGENES EN PUNTO DE INTERES CON
SEGMENTACIN MANUAL
4.2 PROTOCOLO DE PRUEBAS
4.2.1 Variacin de parmetros en FGDStatModel
4.2.2 Variacin de parmetros en Codebook..
4.3 RECOLECCIN Y EXPORTACIN DE INFORMACIN DE INTERS.
4.4 SECUENCIA DE PRUEBAS AUTOMATICAS..
4.5 TABLAS DE RESULTADOS..
4.5.1 Resultados de FGDStatModel.
4.5.2 Resultados de Codebook
5. ANALISIS DE RESULTADOS..
5.1 ANALISIS DE RESULTADOS PARA FGDSTATMODEL
5.2 ANALISIS DE RESULTADOS PARA CODEBOOK .
5.3 SELECCIN DE ALGORITMOS.
5.4 COMPARACIN DE MEJORES CONFIGURACIONES ENCONTRADAS..
6. CONCLUSIONES.
7. BIBLIOGRAFA

2
3
3
6
6
6
9

11
11
11
11
12
13
14
14
16
17
17
17
18
19
20
20
20
20
24
27
27
28
29
29
31
32

INDICE DE FIGURAS

Figura 1 Ejemplo de secuencia de imgenes sin saltos... 2


Figura 2 Ejemplo de secuencia de imgenes con saltos.. 2
Figura 3 Ejemplo de imagen en video de inters (a) Ejemplo de primer plano de imagen a (b)
.
Ejemplo de fondo de imagen a (c)....
3
Figura 4 Diagrama de entradas y salidas de FGDStatModel ..
6
Figura 5 Diagrama de bloques - Primer paso de FGDStatModel ....
7
Figura 6 Diagrama de bloques algoritmo FGDStatModel..
9
Figura 7 Diagrama de bloques algoritmo Codebook.. 10
Figura 8 Ejemplo de error de Falsa Aceptacin (FA). a) Imagen de primer plano de .
.
referencia, b) imagen de primer plano encontrada, c) error de falsa aceptacin 11
Figura 9 Ejemplo de error de Falso Rechazo (FR). a) Imagen de primer plano de referencia, .
.
b) imagen de primer plano encontrada, c) error de falso rechazo 11
Figura 10 Ejemplo de imgenes con segmentacin manual e imagen resultado del algoritmo... 12
Figura 11. Ejemplo de frames de evaluacin con su respectiva segmentacin manual. 14
Figura 12 Grfica de error, prueba de variacin de frames de entrenamiento para Video 1.. 21
Figura 13 Grfica de error con prueba de variacin de Lc para video 1 con FGDStatModel 22
Figura 14 Grfica de error con prueba de variacin de Lcc para video 1 con FGDStatModel.. 23
Figura 15 Grfica de error variando modMin y modMax en Video 1 25
Figura 16 Grafica de comparacin de resultados de error entre Codebook y FGDStatModel.. 30
Figura 17 Grafica de comparacin de resultados de tiempos de ejecucin entre Codebook y
.
FGDStatModel.. 28

II

NDICES DE TABLAS

Tabla 1 Informacin de videos seleccionados. ..


Tabla 2 Parmetros de entrada de FGDStatModel y valores por defecto.
Tabla 3 Parmetros de prueba de funcionamiento para Codebook y valores por defecto...
Tabla 4 Resultados de evaluacin con Video1, 2 y 3 con parmetros por defecto de

13
15
16

FGDStatModel .
Tabla 5 Resultado de evaluacin variando frames de entrenamiento en FGDStatModel.

21
22
22
23
23
23

Tabla 6 Ejemplo de tabla de resultados de evaluacin variando Lc en FGDStatModel en video 1..


Tabla 7 Resultados de evaluacin variando Lc en FGDStatModel
Tabla 8 Resultados de evaluacin variando N1c y N2c en FGDStatModel.
Tabla 9 Resultados de evaluacin variando Lcc en FGDStatModel
Tabla 10 Resultados de evaluacin variando N1cc y N2cc en
FGDStatModel..
Tabla 11 Resultados de evaluacin variando delta en FGDStatModel ...
Tabla 12 Resultados de evaluacin con Video 1 variando minArea en FGDStatModel..
Tabla 13 Resultados de evaluacin con Video1, 2 y 3 con parmetros por defecto de

Codebook..
Tabla 14 Resultados de Variacin de frames para Codebook..
Tabla 15 Resultados de Variacin de cvBounds para Codebook
Tabla 16 Resultados de Variacin de modMin y modMax para Codebook....
Tabla 17 Resumen de parmetros para FGDStatModel para los 3 videos de prueba.
Tabla 18 Valores de error y tiempo con los parmetros de estudio para FGDStatModel......
Tabla 19 Resumen de parmetros para Codebook con los 3 videos de prueba..
Tabla 20 Valores de error y tiempo con los parmetros de estudio para Codebook...
Tabla 21 Valores de parmetros de comparacin para de los algoritmos ....
Tabla 22 Resumen de resultados de FGDStatModel y Codebook...

III

23
24
24
24
25
25
26
27
27
28
28
29
29

LISTA DE ANEXOS

ANEXO N 1 CODIGOS E INFORMACIN DE PRUEBAS FGDSTATMODEL.


ANEXO N 2 CODIGOS E INFORMACIN DE PRUEBAS CODEBOOK.
ANEXO N 3 VIDEOS SELECCIONADOS.
ANEXO N 4 FRAMES DE EVALUACIN A COLOR PARA CADA VIDEO
ANEXO N 5 SEGMENTACION MANUAL DE LOS FRAMES DE EVALUACIN PARA CADA
VIDEO

IV

1.

INTRODUCCIN.

El grupo de investigacin en Sistemas Inteligentes, Robtica y Percepcin (SIRP) [29] de la Facultad de


Ingeniera, Departamento de Electrnica de la Pontificia Universidad Javeriana ha venido desarrollando
diferentes algoritmos en aplicaciones de conteo de vehculos, estimacin de flujo vehicular, conteo y
seguimiento de peatones, etc. Entre estos trabajos se encuentran: Conteo automtico de vehculos [28]
y Deteccin y seguimiento de personas en un cruce peatonal [27]. En todos ellos los objetos de inters
corresponden a vehculos y peatones, los cuales son detectados utilizando algoritmos de estimacin de
primer plano como Codebook [23] y FGDStatModel [24].
La estimacin de primer plano es muy importante en los resultados obtenidos en los algoritmos de conteo
y seguimiento. Sin embargo, hasta el momento no se tiene documentada una comparacin entre
Codebook y FGDStatModel, por lo que stos son configurados ad hoc, es decir, a medida que se utilizan
se configuran de distinta forma.
Cada algoritmo cuenta con un conjunto de parmetros de funcionamiento, los cuales son configurados
por medio de prueba y error y que no necesariamente corresponde al punto de operacin ptimo de cada
algoritmo. Por ejemplo, en Codebook se puede variar el nmero de cuadros de video que se desean para
el entrenamiento del mismo. Esta seleccin afecta directamente el resultado, lo cual hace que para este
algoritmo puedan existir mltiples estimaciones de primer plano para un mismo video. En el caso de
FGDStatModel es posible variar la cantidad de valores ms significativos en los vectores de
caractersticas para los colores y la co-ocurrencia de stos en el video, definida como el nmero de veces
que los pxeles toman un mismo valor en una secuencia.
De acuerdo a lo anterior, en este trabajo tiene como finalidad comparar los dos algoritmos de estimacin
del primer plano, obteniendo informacin consistente del desempeo de cada uno, y las condiciones
bajo las cuales se comporta uno mejor que el otro. Para tal fin, los algoritmos se configuraron en
diferentes puntos de operacin, evaluando su resultado en puntos de inters, con el objetivo de tener el
mejor representante de cada algoritmo realizando pruebas en ms de un video, buscando con esto brindar
al grupo de investigacin y a todo aquel que quiera usar estos algoritmos, las herramientas suficientes
para seleccionar alguno de los dos.

2.

MARCO TEORICO.

2.1. VIDEO Y PRIMER PLANO.


Los videos en general, son secuencias de imgenes que se toman o muestran cada cierto nmero de
frames por segundo (FPS), donde cada frame es una imagen tomada; por ejemplo se puede tener 2 videos
donde cada segundo de video contiene 30 o 125 imgenes respectivamente. Para el ser humano, la
cantidad de frames de un video es imperceptible despus de 30 frames, si se tuviera el caso de un video
tomado a menos de 25 frames, entonces se empezara a ver el video con ciertos saltos entre imgenes
donde la informacin del video sera insuficiente para poder verlo sin saltos de imagen. En las figura 1 se
muestra un ejemplo de secuencias de imgenes con una velocidad de captura buena para ver en video, en
la figura 2 se muestra un ejemplo de una secuencia de imgenes con saltos y falta de informacin. De esta
forma lo que se quiere decir es que un video requiere cierta tasa mnima de informacin para poder
visualizarse de forma correcta.

Figura 1 Ejemplo de secuencia de imgenes sin saltos tomado de [1].

Figura 2 Ejemplo de secuencia de imgenes con saltos, tomado de [2]

El primer plano de una imagen se define como el conjunto de pxeles pertenecientes a objetos ajenos al
fondo de la escena, en el caso particular de este trabajo, donde se tienen video tomados con una cmara
esttica, es considerado como la regin de la imagen que cambia conforme pasa el tiempo en una escena

con el mismo fondo, es decir objetos (vehculos) que por lo general estn en movimiento. Por otro lado el
fondo de la imagen hace referencia a todos los pixeles de la imagen que no cambian conforme pasa el
tiempo o cuyos cambios no son tan notables conforme pasa el tiempo. El fondo de un video no siempre es
constante, puede presentar variaciones suaves y es por esto que debe actualizarse cada cierto intervalo de
tiempo.
En la Figura 3(a) se muestra una imagen de un video con 2 vehculos, en ese caso particular, los 2
vehculos en movimiento son el primer plano, ese primer plano se resalta en color blanco en una imagen
binarizada y se muestra en la Figura 3(b). De igual forma se muestra en la Figura 3(c) el fondo del video,
que sera la carretera o pavimento.

Figura 3 Ejemplo de imagen en video de inters (a) Ejemplo de primer plano de imagen a (b) Ejemplo de fondo de imagen a (c).

2.2.

ESTADISTICA INFERENCIAL E INFERENCIA BAYESIANA

La estadstica inferencial o inferencia estadstica es una rama de la estadstica que se encarga de predecir
y sacar conclusiones para una poblacin tomando como base una muestra de dicha poblacin [3]. En ese
mismo orden de ideas, la poblacin hara referencia a un conjunto de elementos o individuos de inters.
La inferencia bayesiana es un tipo de inferencia estadstica, en la cual para estimar la probabilidad de que
una hiptesis dada sea cierta, se utiliza un intervalo que tenga alta probabilidad de que dicha hiptesis sea
cierta, as como las observaciones previas se utilizan para estimar la probabilidad de que la hiptesis
pueda ser cierta. Se le denomina bayesiana porque en el proceso de inferencia se utiliza el teorema de
Bayes [4].
2.3

TEOREMA DE BAYES

El teorema de Bayes es uno de los ms importantes teoremas en la estadstica, porque permite aprender de
la experiencia. Esta regla, permite calcular cmo se modifican las probabilidades de determinados
sucesos, a partir de algn tipo de informacin adicional conocida. Este teorema es considerado la base
de la inferencia bayesiana y puede llegar a generalizarse a un mayor nmero de sucesos (ms de 2). El
teorema de Bayes permite calcular la probabilidad de cierto suceso a partir de la probabilidad conocida
de otro suceso que ya pas y que se relaciona con el que se busca [5].
Definicin: Sea el conjunto de eventos mutuamente excluyentes {A1,A3,...,Ai,...,An} de probabilidad no
nula, tales que la probabilidad de cada uno de ellos es distinta de cero. Sea cualquier suceso B del que se

conocen las probabilidades condicionales de B dado que ocurra cualquier evento A (P(B | Ai)). Entonces,
la probabilidad de Cualquier evento A dado que ocurri B (P(Ai | B)) viene dada por la expresin :

dnde:

P(Ai) son las probabilidades a priori.

Con la definicin de Probabilidad condicional: P( A B)

P A B
se obtiene la Frmula de
P( B)

Bayes: [6]

Para hacer ms claridad en este concepto, se enuncia el siguiente ejemplo sobre cmo aplicar el
teorema de Bayes:

El parte meteorolgico ha anunciado tres posibilidades para el fin de semana:


a) Que llueva: probabilidad del 50%.
b) Que nieve: probabilidad del 30%
c) Que haya niebla: probabilidad del 20%.

Segn estos posibles estados meteorolgicos, la posibilidad de que ocurra un accidente es la


siguiente:
a) Si llueve: probabilidad de accidente del 20%.
b) Si nieva: probabilidad de accidente del 10%
c) Si hay niebla: probabilidad de accidente del 5%.
Resulta que efectivamente ocurre un accidente y como no estbamos en la ciudad no sabemos
qu tiempo hizo (llovi, nev o hubo niebla). El teorema de Bayes nos permite calcular estas
probabilidades:
Las probabilidades que manejamos antes de conocer que ha ocurrido un accidente se denominan
"probabilidades a priori" (lluvia con el 50%, nieve con el 30% y niebla con el 20%).
Una vez que incorporamos la informacin de que ha ocurrido un accidente, las probabilidades del
suceso A cambian: son probabilidades condicionadas P (A/B), que se denominan "probabilidades
a posteriori".
4

Vamos a aplicar la frmula:

a) Probabilidad de que estuviera lloviendo es

P( Ai / B)

0,50*0, 20
(0,50*0, 20) (0,30*0,10) (0, 20*0, 05)

La probabilidad de que efectivamente estuviera lloviendo el da del accidente (probabilidad a


posteriori) es del 71,4%.

b) Probabilidad de que estuviera nevando es:

P( Ai / B)

0,30*0,10
(0,50*0, 20) (0,30*0,10) (0, 20*0, 05)

La probabilidad de que estuviera nevando es del 21,4%.


c) Probabilidad de que hubiera niebla es:

P( Ai / B)

0, 20*0, 05
(0,50*0, 20) (0,30*0,10) (0, 20*0, 05)

La probabilidad de que hubiera niebla es del 7,1%. [7]

2.4 ESPACIO YUV


YUV, es un espacio como lo es RGB, que concentra la mayor parte de la informacin de la imagen en el
canal Y, decir en su componente de luminancia, y en menor proporcin en los canales UV que son los de
crominancia [8]; el modelo que lo define a partir de las componentes RGB. Estas relaciones con RGB
aplican asumiendo que R, G y B estn dentro del rango de 0 a 1, donde 0 es la menor intensidad y 1 la ms
alta [9]. La conversin del espacio RGB al espacio YUV viene dada por la expresin:

0,114 R
Y 0, 299 0,587
U 1,147 0, 289 0, 436 G


V 0, 615 0,515 0,100 B
2.5 ALGORITMOS DE ESTIMACIN DE PRIMER PLANO
Un algoritmo de estimacin de primer plano es una secuencia de funciones que permiten procesar
una trama de imgenes obteniendo como resultado los objetos de primer plano en la imagen.
2.5.1

FGDStatModel.

FGDStatModel propuesto por Li, Liyuan et al [24], es un algoritmo usado para detectar y estimar el
primer plano de un video basado en la deteccin y clasificacin del cambio. Este algoritmo recibe una
secuencia de video y entrega una imagen binarizada resaltando los objetos de primer plano como se
muestra en la figura 4.

Secuencia
de video

FGDStatModel

Imagen
binzarizada
resaltando el
primer plano

Figura 4 Diagrama de entradas y salidas de FGDStatModel.

FGDStatModel Consta de 4 pasos fundamentales sobre cada cuadro de video:

Paso 1: Deteccin de cambio.


Paso 2: Clasificacin del cambio.
Paso 3: Segmentacin de los objetos del primer plano.
Paso 4: Aprendizaje y mantenimiento del fondo.

A continuacin se describen los 4 pasos del algoritmo:


Paso 1 - Deteccin de cambio.
En este paso se hace el filtrado de los pixeles con pequeos cambios, para lo cual se aplican mtodos de
diferencia temporal y de sustraccin de fondo simple para determinar si los pixeles presentan cambios
temporales significativos en sus componentes de color.

Las operaciones realizadas comparan el frame actual con el anterior y el frame actual con el fondo de
referencia, a estos procesos se les llama diferencia temporal y diferencia de fondo respectivamente. Si la
variacin del pixel respecto al de comparacin supera un umbral de cambio, el cual se determina a partir
de la varianza de las diferencias entre pixeles de cada par de frames, se clasifican los pixeles como pixeles
mviles o pixeles estacionarios.
Los pixeles mviles son aquellos que al compararse variaron su valor por encima del umbral de cambio,
es decir las componentes de color superaron el umbral de variacin del color. Un pixel es clasificado
como estacionario si el resultado de la comparacin entre par de pixeles no supera el umbral de cambio de
color.

Pixel movil
Frame
anterior

Resultado de
comparacin

Frame
actual

Video

Pixel
estacionario
Pixel Movil

Fondo de
referencia

Resultado
comparacin

Pixel
estacionario

Figura 5 Diagrama de bloques - Primer paso de FGDStatModel

Para el caso en que el pixel es clasificado como estacionario, se genera un vector con la informacin de

color caracterstico de ese pixel Ct rt , gt , bt , para el caso en que se tienen pixeles mviles, se genera
T

un vector con la informacin de co-ocurrencia de color, es decir con las componentes actuales de color del
pixel y con la informacin de color del pixel justo en el instante de tiempo
anterior
T

CCt rt 1 , gt 1 , bt 1 , rt , gt ,bt . De esta forma se definen Ct o CCt como las componentes de color y
co-ocurrencia de color.
Paso 2 Clasificacin de cambio.
Luego de la deteccin de movimiento y la clasificacin inicial de pixeles (estacionarios o mviles), estos
son clasificados nuevamente en dos grupos: pixeles de primer plano o pixeles de fondo. Esta clasificacin
se hace por separado, es decir, cada uno de los grupos en los que anteriormente se haban clasificado los
pixeles, se clasifica nuevamente de forma independiente.
Sea st

un pixel de la imagen en un tiempo t , dentro de FGDStatModel se tiene cierta informacin

asociada a cada pixel st en el instante de tiempo respectivo, la cual consta de: valores de las componentes
del pixel que tambin es llamado vector caracterstico del pixel vt , el valor de probabilidad de que las
componentes del pixel sean igual a vt P(v s) , y el valor de la probabilidad de que el pixel tenga el color
dado que el pixel ha sido clasificado como fondo P(v b, s) . Esta informacin del pixel st se encuentra
en una tabla llamada tabla de estadsticas de caractersticas.

Siendo Ct

o CCt

las componentes de color y co-ocurrencia de color de los pixeles estacionarios o

mviles respectivamente, y teniendo las tablas de estadsticas de las imgenes, se comparan Ct o CCt
con los primeros vectores de caractersticas del pixel en la tabla de estadsticas de fondo. A partir de esta
comparacin se obtienen las probabilidades que tienen las caractersticas del pixel de pertenecer a las
almacenadas en las tablas de color y co-ocurrencia de color, es decir, se encuentran las probabilidades de
qu tan cercana es la caracterstica del pixel respecto a la que se tiene almacenada en la tabla. Con este
proceso, al terminar de recorrer una imagen se recopila la informacin necesaria para determinar si los
pixeles pertenecen al fondo o primer plano.

Paso 3- Segmentacin de los objetos del primer plano:


Cuando se han clasificado los pixeles de la imagen como primer plano o fondo, se hallan las regiones para
las cuales el algoritmo ha encontrado que los pixeles son de primer plano. Para saber si efectivamente los
pixeles encontrados son pixeles de inters, se tiene un umbral de rea mnima que permite saber si
efectivamente se trata de un objeto de inters o simplemente el pixel puede ser descartado y no se toma
como primer plano, esto con el fin de ignorar informacin que pudo generarse como un error. Los errores
pueden encontrarse comnmente como puntos aislados y que realmente no pertenecen a un primer plano.
Las regiones que no son de inters, se quitan de la imagen.
La segmentacin se hace posible gracias al uso de contornos y operaciones morfolgicas que se aplican
sobre una imagen temporal de primer plano, posterior a las operaciones se almacena la imagen del
resultado del primer plano. Dicha imagen es similar a la mostrada en la Figura 4 b).

Paso 4- Aprendizaje y mantenimiento de fondo:


Una vez se obtiene el primer plano y se tiene la imagen de salida, se actualizan los valores del modelo de
fondo, es decir, se actualiza la imagen del fondo de referencia y los valores de las tablas de estadsticas.
Esto se repite para cada uno de los instantes de tiempo. La imagen actualizada como fondo de referencia,
es la que se usa un instante de tiempo despus para continuar los ciclos de operacin.
FGDStatModel es un algoritmo que gracias a la configuracin de ciertos parmetros de funcionamiento
encuentra un fondo y un primer plano para cada instante de tiempo, es decir se actualiza constantemente.

Pixel movil
Frame anterior

Diferencia Temporal

CLASIFICACION POR
COLOR

Pixel estacionario

Video

CLASIFICACION POR
CO-OCURRENCIA DE
COLOR

Frame actual

PRIMER PLANO

Pixel Movil

Fondo de referencia

Diferencia de Fondo
Pixel estacionario

FONDO

Operaciones
morfologicas

SALIDA

Figura 6 Diagrama de bloques algoritmo FGDStatModel

2.5.2

Codebook.

Codebook [23] es un algoritmo de sustraccin de fondo, que tiene el propsito de muestrear valores de los
pixeles a lo largo del tiempo, sin necesidad de hacer clculos matemticos avanzados.
El algoritmo Codebook realiza la deteccin y segmentacin de los objetos de primer plano en un video en
dos etapas. La primera consiste en el entrenamiento del algoritmo, donde al recorrer cada frame del video
se obtienen los valores de las componentes en el espacio YUV para todos los pxeles que componen dicho
frame. Estos valores se almacenan en vectores de caractersticas denominados codewords. El nmero de
codewords en un pxel vara segn los cambios en las caractersticas del pxel a lo largo del tiempo. Todos
los codewords para un pxel se almacenan en un codebook. De esta forma, en una imagen hay tantos
codebooks como pxeles posea. Cada pixel tiene un tamao de Codebook diferente y este depende del
muestreo de la variacin del pixel. Los datos previos a esta etapa no pueden ser clasificados por Codebook
como fondo o primer plano, ya que son usados como informacin de entrenamiento.
Durante el entrenamiento, cada muestra del pxel que se analiza se compara con su respectivo codebook,
para determinar si hay alguna coincidencia entre las caractersticas del pxel y los codewords
almacenados. Si hay coincidencia se actualiza el codeword previamente creado. En el caso en que no haya
coincidencia, se crea un nuevo codeword. El conjunto de todos los codebooks obtenidos mediante el
entrenamiento, uno por cada pxel, conforman el modelo de fondo para el video.
Una vez se concluye la etapa de entrenamiento, se utiliza el modelo de fondo para comparar pxel a pxel
los codewords almacenados con las caractersticas en cada frame. Si hay coincidencia entre ellos se
clasifica el pxel como fondo. En caso contrario se dice que el pixel pertenece al primer plano del video.
Codebook [23] posee cuatro principales caractersticas mencionadas a continuacin:
o
o

Capacidad de adaptarse a videos con cambios de iluminacin


El modelo de fondo de Codebook es comprimido y adaptativo, de tal modo que permite la
captura de fondos en movimiento en un perodo largo de tiempo utilizando recursos limitados de
memoria.

o
o

Entrenamiento sin restricciones, lo que permite que hayan objetos mviles de primer plano en la
escena durante el perodo de entrenamiento.
Rapidez en la ejecucin, debido a que no requiere de anlisis probabilsticos en la clasificacin de
fondo o primer plano.

Codebook [23] recibe un video y lo procesa, entrenando tantos frames como lo tenga definido. Una vez
han transcurrido los frames de dicho entrenamiento, se cuenta con la informacin suficiente para poder
iniciar el proceso de clasificacin de pixeles (uno a uno) de la imagen de entrada, que bsicamente es una
comparacin de la informacin que encontr como caractersticas fundamentales de pixeles de fondo para
el caso entrenado. Con dicha informacin se puede determinar si el pixel puede o no ser clasificado como
fondo o primer plano, teniendo en cuenta que si no pertenece a uno, automticamente cae en la otra
clasificacin.
Finalmente Codebook almacena para cada pixel de la imagen, las caractersticas de color que permiten
clasificar el pixel por medio de codebooks. Con el conjunto de estos codebooks se obtiene un modelo de
fondo del video.
En la figura 9 se muestra el diagrama de bloques de este algoritmo.

Caractersticas de
frames de fondo

Video

ENTRENAMIENTO

CLASIFICACIN

PRIMER PLANO

FONDO

Frames de
clasificacin

Figura 7 Diagrama de bloques algoritmo Codebook

10

SALIDA

DESCRIPCIN DE LOS SISTEMAS

3.1 TIPO DE ERRORES


Para el desarrollo del presente trabajo se clasifican los errores del resultado de los algoritmos en 2 tipos
diferentes, falsas aceptaciones (FA) y falsos rechazos (FR). Para tener un punto de referencia y poder
encontrar dichos errores fue necesario establecer un punto de referencia, en este caso una imagen que
pudiese catalogarse como el primer plano real.
3.1.1

Falsas Aceptaciones.

Las falsas aceptaciones (FA) son errores que se presentan cuando el resultado muestra pixeles que
realmente no hacen parte del primer plano de la imagen. Este tipo de error se ilustra en la figura 9.

Figura 8 Ejemplo de error de Falsa Aceptacin (FA). a) Imagen de primer plano de referencia, b) imagen de primer plano encontrada, c) error de
falsa aceptacin.

3.1.2

Falsos Rechazos.

Los falsos rechazos (FR) son errores que se presentan cuando el resultado no muestra pixeles que si
hacen parte del primer plano de la imagen. Este tipo de error se ilustra en la figura 10.

Figura 9. Ejemplo de error de Falso Rechazo (FR). a) Imagen de primer plano de referencia, b) imagen de primer plano encontrada, c) error de
falso rechazo.

11

3.2 SEGMENTACIN MANUAL.


La segmentacin manual [25] es un mtodo por medio del cual se realiza la seleccin y segmentacin de
los objetos de primer plano de inters en la imagen. Para el presente trabajo de grado se us el cdigo de
segmentacin manual desarrollado por el ingeniero Mario Jos David Manzano, estudiante de la
maestra en Ingeniera Electrnica de la Pontifica Universidad Javeriana. Este algoritmo de
segmentacin consiste en seleccionar los pixeles que rodean el (los) objeto(s) del primer plano de la
imagen, luego se unen estos puntos mediante funciones de polgonos convexos y finalmente guarda la
imagen binarizada resaltando los objetos segmentados.
La segmentacin manual se us para extraer los objetos de primer plano en los frames de inters o de
evaluacin para los algoritmos; y fue esta misma imagen segmentada manualmente la que se tom como
punto de referencia para encontrar los errores de FA y FR, como se ilustra en la figura 12.

Figura 10. Ejemplo de imgenes con segmentacin manual (abajo) e imagen resultado del algoritmo (arriba).

12

3.3 VIDEOS SELECCIONADOS.


Para poder llevar a cabo la seleccin de los videos, se establecieron las siguientes caractersticas
mnimas a cumplir por los videos:

Videos tomados a cierta altura de la calle que permite visualizar los carriles por donde
transitan los vehculos.

Videos tomados de da con buena iluminacin.

Videos sin autoenfoque.

Videos tomados a diferente velocidad de captura.

Videos de calles con circulacin vehicular donde los vehculos no se detienen.

Finalmente fueron seleccionados 3 videos que cumplan con las caractersticas mencionadas
anteriormente y con estos se llevaron a cabo los procesos y pruebas que se mencionan ms adelante.
Los videos hacen parte de la base de datos del grupo de investigacin SIRP [29] de la Pontificia
Universidad Javeriana. Los seleccionados para la aplicacin puntual de este trabajo, fueron tomados a
30 y 125 frames por segundo, a cierta altura del piso que permite visualizar los carriles de las calles por
donde circulan vehculos, en algunos casos estos videos incluyen parte del andn, registrando los
peatones que por all transitan, la informacin bsica de los videos est en la tabla 1.
Tabla 1
Informacin de videos seleccionados.

Nombre
Video1_30fps.avi
Video2_30fps.avi
Video3_125fps.avi

Ubicacin de Velocidad de Dimensiones Duracin


Tamao
capturas
captura (fps) (Ancho x Alto)
Calle 45 entre
03:15 minutos 431 MB
30 640 x 480
carrera 8 y 13
Carrera quinta
parque nacional
Carrera quinta
parque nacional

30 640 x 480

01:12 minutos 50,0 MB

125 320 x 240

03:00 minutos 79,2 MB

13

3.4 FRAMES DE EVALUACIN


Para poder comparar el resultado de los algoritmos y hacer la segmentacin manual de las imgenes,
fueron seleccionados algunos frames de cada uno de los 3 videos. En total se tomaron 45 frames de
evaluacin, 15 imgenes de cada uno de los videos.
A cada frame de evaluacin como el de la figura 3 a), se le hizo la segmentacin manual a los objetos
de primer plano y de esta forma se obtuvo el punto de referencia para evaluar los resultados de los
algoritmos. En la figura 13 se muestran dos ejemplos.

Figura 11. Ejemplo de frames de evaluacin (izquierda) con su respectiva segmentacin manual (derecha).

3.5 ALGORITMO 1: FGDStatModel.


La versin de FGDStatModel seleccionada para este trabajo, es la que se encuentra dentro de las
libreras de OpenCV 2.1[14]. Esta versin del algoritmo fue ajustada de tal forma que pudiera ser
empleada para realizar las pruebas suficientes y necesarias para evaluar su comportamiento.
Al algoritmo FGDStatModel ingresa un video y unos parmetros con los que trabaja, si se da el caso
en que no se le indican cuales van a ser dichos parmetros de trabajo, el algoritmo los toma de sus
valores predeterminado o valores por defecto, con estas caractersticas de funcionamiento bsico
iniciaron las pruebas FGD.

14

.
Los parmetros de entrada son los que se mencionan en la tabla 2.
Tabla 2
Parmetros de entrada de FGDStatModel y valores por defecto

Nombre
Niveles de cuantificacin para color
Nmero de vectores de color usados para el
modelo de la variacin de fondo.
Nmero de vectores de color recordados para un
pixel dado.
Nmero de cuantificacin para co-ocurrencia de
color
Nmero de vectores de co-ocurrencia de color
usados para el modelo de la variacin de fondo.
Nmero de vectores de co-ocurrencia de color
recordados para un pixel dado.
Alfa 1: qu tan rpido olvida valores de fondo
viejos
Alfa 2: Controla la velocidad de aprendizaje de
caractersticas.
Alfa 3: Se alterna con Alfa 2.
Delta: Afecta la cuantificacin de color y coocurrencia de color.
Valor en porcentaje que determina cuando
pueden ser reconocidas nuevas caractersticas
como un nuevo fondo.
Ignora los blobs cuando su bounding box es ms
pequeo que este umbral.

Valor
Smbolo por
defecto.
LC
128
N1C

15

N2C

25

LCC

64

N1CC

25

N2CC

40

alpha1

0.1

alpha2

0.005

alpha3

0.1

delta

0.9

minArea 15

A la versin que se us de FGDStatModel, se le adicionaron algunas funciones y lneas cuyo objetivo era
extraer la informacin relevante y calcular qu tan bien estaba trabajando el algoritmo. De esta manera, se
obtuvo la cantidad de frames encontrados como primer plano y los respectivos valores de los tipos de error
del algoritmo que era evaluado en cada uno de los 15 frames de evaluacin seleccionados y cuya
segmentacin manual de objetos de primer plano se tena almacenada.

15

3.6 ALGORITMO 2: Codebook.


Para el caso particular del presente trabajo, se seleccion la versin de Codebook que est dentro de las
libreras de OpenCV2.1, y se realizaron ciertas modificaciones con el objetivo de poder implementar el
algoritmo y extraer la informacin arrojada por las pruebas realizadas.
De forma semejante a lo realizado con el algoritmo FGDStatModel, Codebook fue evaluado en los
mismos 3 videos, y con los mismos 15 frames para cada una de las pruebas con sus respectivas
segmentaciones manuales, buscando con esto tener la mayor cantidad de aspectos semejantes para realizar
una buena comparacin de funcionamiento.
Codebook no emplea valores de parmetros de entrada, sin embargo dentro de su implementacin usa
ciertos valores para su funcionamiento, estos parmetros de pruebas de funcionamiento se mencionan en
la tabla 3.
Tabla 3
Parmetros de pruebas de funcionamiento para Codebook y valores por defecto

Descripcin

Nombre

Valor por
defecto.

Umbral de aprendizaje

cvBounds[3]

[10,10,10]

Umbral de clasificacin mnimo

modMin[3]

[3,3,3]

Umbral de clasificacin mximo

modMax[3]

[10,10,10]

Nmero de frames de entrenamiento

16

nframesToLearnBG

300

PRUEBAS

Para poder determinar si los algoritmos tenan un buen comportamiento durante su ejecucin y saber si
obtenan un buen resultado, se implementaron pruebas con cada uno. Para tener resultados bajo las
mismas condiciones de procesamiento, se efectuaron todas las pruebas en un mismo computador
porttil marca ASUS, modelo U30JC-QX240V con procesador Intel Core i5 460M de 2,53 Ghz con
turbo boost hasta 2,8Ghz, de doble nucleo, memoria RAM de 4 GB a 1333Mhz, con tarjeta de video
Nvidia GeForce 310M de 512Mb. La plataforma utilizada fue OpenCV 2.1, en el compilador DevC++
4.9.9.2 y en el sistema operativo Windows 7 Home Premium edicin de 64 bits.
4.1 CALCULO DE ERROR DEL PRIMER PLANO
Las imgenes de segmentacin manual, tomadas como referencia a la hora de validar los resultados de
los algoritmos, arrojan la informacin necesaria para calcular el valor de los errores al compararla con
el resultado de los algoritmos, dicha comparacin se hace de la siguiente forma:

Con la imagen de referencia y la imagen de primer plano, se hacen operaciones matemticas y


lgicas para encontrar el nmero de pixeles que hacen parte de cada error, falsas aceptaciones y
falsos rechazos para cada frame evaluado, de forma similar se encuentra el nmero de pixeles que
pertenecen al primer plano de la imagen de referencia encontrada con la segmentacin manual.

Con los valores de error FA, FR y la cantidad de pixeles de primer plano encontrados para cada
frame se hace una sumatoria de estos valores para 15 frames de evaluacin, obteniendo un valor
total para FA en el video, otro valor para FR y un valor total de pixeles de primer plano que se
usa como valor de normalizacin del error.

El error total es calculado sumando el total de FA ms el total de FR, y se divide en el valor de


normalizacin del video.

Estos valores son calculados para cada video de evaluacin seleccionado.

4.2 PROTOCOLO DE PRUEBAS


Para llevar a cabo las pruebas, se usaron los 3 videos seleccionados, as mismo se emplearon 15 frames
de evaluacin por video con sus respectivas imgenes de segmentacin manual de objetos de primer
plano.
Para las configuraciones de prueba en cada algoritmo se variaban los parmetros de entrada y se
determinaron los parmetros que afectaban en mayor grado el resultado del algoritmo.

17

4.2.1 Variacin de parmetros en FGDStatModel.


Para poder determinar el mejor punto de operacin del algoritmo en mencin, se llev a cabo la
siguiente secuencia:

Se calcularon los errores de FA y FR para cada una de las 15 imgenes de evaluacin, con cada
configuracin de prueba.

Para calcular el nmero de pixeles que corresponden a cada error y al primer plano de
referencia se us una funcin encargada del clculo de error, haciendo un conteo de pixeles de
falsa aceptacin y falso rechazo.

La informacin de los resultados de cada iteracin en las pruebas se almacen en la tabla de


resultados creada con cada secuencia de prueba del algoritmo.

La seleccin de los parmetros, se realiz teniendo como base encontrar el menor error en el
resultado del algoritmo.

El algoritmo entrena tantos frames como se le indique, desde el frame a evaluar hacia atrs, de
tal forma que si el frame a evaluar es el 100, y el algoritmo entrena 40 frames, iniciara su
entrenamiento desde el frame 59 hasta el 99 para evaluar el frame 100.

Se encontr el nmero de frames de entrenamiento para el cual el algoritmo presenta el menor


valor de error. Para tal fin se vari este parmetro en la prueba y se dej el resto de los
parmetros por defecto, restringiendo el entrenamiento desde 5 frames hasta 140 frames
previos al frame de evaluacin, y se evalu el error mencionado para cada caso.

Se verificaron los resultados en la tabla respectiva, y se tom el menor valor de los frames de
entrenamiento a partir del cual el error del resultado no variaba significativamente.

Con el menor valor seleccionado para los frames de entrenamiento, se realiz la variacin para
los niveles de cuantificacin por color, Lc. Esta variacin se hizo desde 2 hasta 128 niveles.
Nuevamente se observaron los resultados en las tablas y se escogi el valor ms bajo para Lc .

Definidos los valores de Lc y el mnimo de frames de entrenamiento, se hizo la variacin de


los vectores N1 y N2 para color. De acuerdo a la asignacin en las tablas para los vectores, se
estableci la relacin de N2c=2*N1c. As, las variaciones iban desde N1c=1, N2c=2. Hasta
N1c=15, N2c=30. Entonces se seleccion el mejor valor para N1C y N2C.

18

Con los parmetros anteriormente establecidos, se realizaron las variaciones para los valores de
co-ocurrencia de color, de forma semejante al procedimiento anterior, se varan los niveles de
cuantificacin para co-ocurrencia de color, Lcc. Para este parmetro se hizo el recorrido desde
2 hasta 64 niveles de cuantificacin, se almacenaron los resultados y se obtuvo as el valor para
Lcc.

Con el parmetro Lcc encontrado se hizo la bsqueda de los valores de N1cc y N2cc.
Aplicando la relacin encontrada para color en los vectores de co- ocurrencia, N2cc=2*N1cc,
por lo tanto el recorrido para estos parmetros se hizo desde N1cc=2, N2cc=4 hasta N1cc=30,
N2cc=60.

Los dems parmetros de FGDStatModel se dejaron con el valor predeterminado debido a que
al realizar variaciones de estos parmetros no se encontr una variacin notable respecto a sus
valores por defecto.

4.2.2 Variacin de parmetros en Codebook.

A partir de los mismos videos evaluados con FGDStatModel, se realiz un proceso similar,
esta vez utilizando el algoritmo Codebook.

Con el fin de establecer condiciones de equivalencia a la hora de la evaluacin de estos dos


algoritmos, los frames en los que se compara el primer plano obtenido con la segmentacin
manual son los mismos.

Partiendo de los parmetros de Codebook previamente descritos en su valor predeterminado, se


realiza una variacin para los frames de entrenamiento, desde 5 frames hasta 140 frames,
variando cada 5 frames. Observando los resultados para el error total, se selecciona el menor
valor del parmetro, al igual que en FGDStatModel, con el que se obtuvo un resultado donde
el error total se estabilizaba.

Una vez establecido el nmero de frames a entrenar, se encontr el mejor umbral de


aprendizaje de este algoritmo. Realizando una variacin desde 0 hasta 50 para este parmetro,
seleccionando aquel con un bajo porcentaje de error total. De acuerdo con el Ing. Mario David,
en su tesis de maestra [25], se encontr que el umbral de aprendizaje adecuado es 25 para uno
de los videos, sin embargo como era un caso muy puntual, se realizaron variaciones a este
parmetro para seleccionar el que mejor se comportara.

Por ltimo se realiz la variacin del valor de los umbrales de clasificacin modMin y
modMax desde 0 hasta 50, en sus tres componentes. Se seleccion el valor de umbral que
menor error arrojaba.

19

4.3 RECOLECCIN Y EXPORTACIN DE INFORMACIN DE INTERS.


Como era necesario recoger y almacenar toda la informacin obtenida al probar con cada
configuracin de los algoritmos, se exportaron los datos de cada iteracin dentro de las pruebas a una
tabla de Excel. Obteniendo la informacin para poder analizar los resultados posteriormente. Con la
exportacin de informacin a Excel se gener una tabla por parmetro evaluado con los resultados de
las pruebas con cada video. As se lograba validar el comportamiento del algoritmo con la variacin de
cada parmetro.
A medida que se seleccionaban algunos de los parmetros del algoritmo FGDStatModel, se vio la
necesidad de registrar el tiempo de ejecucin como una variable ms a tener en cuenta.
Se defini el tiempo de ejecucin del algoritmo como el tiempo que transcurre desde el momento en
que inicia el algoritmo en las configuraciones de prueba con los parmetros indicados, evaluando los
15 frames del video que recibi, calculando los errores del resultado y exportando los datos a Excel.
4.4 SECUENCIA DE PRUEBAS AUTOMATICAS
Automatizar el proceso de las pruebas variando los parmetros de entrada del algoritmo era
fundamental para poder hacer posible un anlisis de resultados gil, obteniendo rpidamente toda la
informacin necesaria para tal fin.
4.5 TABLAS DE RESULTADOS
4.5.1 Resultados de FGDStatModel.
El algoritmo configurado con sus los parmetros que vienen por defecto, entrena durante todo el
tiempo, por esta razn se registr el resultado de esta configuracin evalundolo en los 15 frames de
cada video. Para cada uno de los parmetros de entrada de FGDStatModel, fue necesario llevar a cabo
el protocolo de pruebas, obteniendo los resultados para cada una de las configuraciones de prueba,
variando cada parmetro mientras los dems se dejaban por defecto y finalmente determinar cul de
las configuraciones era la que menos errores arrojaba. A pesar que para el algoritmo no se tena la
cantidad de frames de entrenamiento como un parmetro importante, se determin por medio de
pruebas qu pasaba si se variaba la cantidad de frames con los cuales entrenaba el algoritmo y de esa
forma se dej el nmero de frames de entrenamiento como un parmetro a considerar a la hora de
evaluar el algoritmo.
En la tabla 4 se tienen los resultados de la prueba por defecto de FGDStatModel. Dnde FA: es el error
de falsa Aceptacin, FR: es el error de falsos rechazos, SEG: es el valor de normalizacin del error,
TIEMPO DE EJECUCIN: Es la cantidad de segundos que tard el programa en ejecutar toda la
prueba, ERROR: es el error total de la prueba.

20

Tabla 4.
Resultados de evaluacin con Video1, 2 y 3 con parmetros por defecto de FGDStatModel.

Defecto Video1
Defecto Video2
Defecto Video 3

TIEMPO DE EJECUCIN(s)
3257,956389
TIEMPO DE EJECUCIN(s)
2298,15491
TIEMPO DE EJECUCIN(s)
3268,81185

ERROR
FA
FR
SEG
36%
42883 19941 173738
ERROR
FA
FR
SEG
21%
53452 57434 530611
ERROR
FA
FR
SEG
36%
4092 71787 213551

Una vez evidenciado el comportamiento del algoritmo por defecto se aplic el protocolo de pruebas con
los 3 videos variando uno a uno los parmetros de entrada.
En las tablas de resultados de las pruebas se muestran los siguientes valores: FALSAS ACEPTACIONES:
es el valor normalizado del error FA, FALSOS RECHAZOS: es el valor normalizado de FR, FA+FR: es
la suma de los valores normalizados de error y en la columna de la derecha se tienen los valores del
parmetro de variacin en la prueba.
En las tablas 7 a 13 se relacionan los valores seleccionados de los resultados, las tablas con toda la
informacin se encuentran en el Anexo 1.
En la figura 14 se encuentra un ejemplo de la grfica de resultados obtenida con la variacin del parmetro
frames de entrenamiento con las configuraciones de prueba. En estas grficas de resultados, en el eje
horizontal siempre se encontrar el parmetro de variacin mientras que en el eje vertical est el valor de
los diferentes errores. Las grficas son el resumen de las tablas de resultados y a partir de estas grficas
con sus respectivas tablas de valores, se obtienen los valores seleccionados para las diferentes
configuraciones de prueba del algoritmo. Las grficas se pueden encontrar en el Anexo 1.
En la tabla 7, se encuentra el resultado de las variaciones de frames de entrenamiento, en la tabla 8 se
encuentran los resultados para variaciones de niveles de cuantificacin de color, en la tabla 9 se relacionan
los resultados de las variaciones de N1c y N2c. De forma semejante se encuentran los valores de los
resultados de las pruebas para Lcc, N1 y N2cc en las tablas 10, 11 y 12 respectivamente. Para el caso de
alpha1, alpha2, alpha3 y T se dejaron los valores por defecto. Para el caso de delta se encontraron los
valores relacionados en la tabla 12 y los resultados obtenidos al variar minArea se relacionan en la tabla
13.

Figura 12 Grfica de error con prueba de variacin de frames de entrenamiento para Video 1 con FGDStatModel.

21

Tabla 5
Resultado de evaluacin variando frames de entrenamiento en FGDStatModel.

Video de prueba FALSAS ACEPTACIONES FALSOS RECHAZOS FA+FR


FR ENT
1
0,247039
0,116451
0,36349
40
2
0,100188
0,114939 0,215127
40
3
0,024851
0,336589 0,361441
60

Tabla 6
Ejemplo de tabla de resultados de evaluacin obtenidos variando Lc en FGDStatModel en Video 1.

suma FA suma FR suma SEG


25018
97099
173738
25195
77900
173738
26927
55913
173738
30830
41652
173738
34331
32335
173738
37052
27507
173738
39053
24741
173738
40406
23630
173738
40994
23022
173738
41241
23049
173738
41354
22634
173738
41468
22232
173738
41581
22226
173738
41706
22056
173738

FA
0,143998
0,145017
0,154986
0,177451
0,197602
0,213264
0,224781
0,232569
0,235953
0,237375
0,238025
0,238681
0,239332
0,240051

FR
0,558882
0,448376
0,321824
0,23974
0,186114
0,158325
0,142404
0,136009
0,13251
0,132665
0,130277
0,127963
0,127928
0,12695

FA+FR
Lc
0,70288
0,593394
0,47681
0,417191
0,383716
0,371588
0,367185
0,368578
0,368463
0,37004
0,368302
0,366644
0,36726
0,367001

% de Error
Total
2
4
6
8
10
12
14
16
18
20
22
24
26
28

Figura 13 Grfica de error con prueba de variacin de Lc para Video 1 con FGDStatModel

22

59%
48%
42%
38%
37%
37%
37%
37%
37%
37%
37%
37%
37%

Tabla 7
Resultados de evaluacin variando Lc en FGDStatModel.

Video de prueba FALSAS ACEPTACIONES FALSOS RECHAZOS FA+FR


Lc
1
0,213264
0,158325
0,371588 12
2
0,093651
0,130357
0,224008 16
3
0,022585
0,348277
0,370862 30
Tabla 8
Resultados de evaluacin variando N1c y N2c en FGDStatModel.

Video de prueba FALSAS ACEPTACIONES FALSOS RECHAZOS FA+FR


N1c N2c
1
0,213569
0,165272 0,378841
2
4
2
0,093777
0,140208 0,233985
2
4
3
0,019681
0,351686 0,371368
2
4

Figura 14 Grfica de error con prueba de variacin de Lcc para Video 1 con FGDStatModel

Tabla 9
Resultados de evaluacin variando Lcc en FGDStatModel

Video de prueba

FALSAS ACEPTACIONES

FALSOS RECHAZOS

FA + FR

Lcc

0,20144125

0,18859432

0,39003557 18

0,09259137

0,14687973

0,2394711 20

0,01892288

0,36024182

0,3791647 18

Tabla 10
Resultados de evaluacin variando N1cc y N2cc en FGDStatModel

Video de
prueba
1
2
3

FALSAS ACEPTACIONES FALSOS RECHAZOS FA+FR


N1c N2c
0,21027639
0,16819579 0,37847218
2
4
0,09515634
0,14235099 0,23750733
2
4
0,01938647
0,35895407 0,37834054
2
4

23

Tabla 11
Resultados de evaluacin variando delta en FGDStatModel

Video de
prueba

FALSAS ACEPTACIONES

FALSOS RECHAZOS

FA + FR

Delta

0,20680842

0,17333912

0,38014755

0,10049735

0,13508389

0,23558125

1,5

0,01930218

0,34827278

0,36757496

1,5

Tabla 12
Resultados de evaluacin con Video 1 variando minArea en FGDStatModel

Video de
prueba

4.5.2

FALSAS ACEPTACIONES

FALSOS RECHAZOS

FA + FR

minArea

0,21142755

0,16765474

0,3790823

12

0,10084601

0,13304285

0,23388886

0,01933964

0,34565045

0,3649901

12

Resultados de Codebook.

El algoritmo configurado con los parmetros que vienen por defecto entrena durante 300 frames,
periodo durante el cual no puede procesar o evaluar las imgenes del el video ni clasificarlas como fondo
o primer plano. Se evalu el resultado del algoritmo en los 15 frames de cada video, sin embargo para
algunas de las pruebas con los parmetros por defecto fue necesario usar menos frames porque algunos
se encontraban entre los primeros 300 frames del video y no podan ser evaluados por encontrarse dentro
del periodo de entrenamiento del algoritmo. En la tabla 14 se encuentran los resultados de Codebook
con sus parmetros por defecto, probados en los 3 videos.
Para cada uno de los parmetros de funcionamiento que podan ser manipulados y que influan
notablemente en el resultado del algoritmo fue necesario llevar a cabo el protocolo de pruebas,
obteniendo los resultados respectivos para cada una de las configuraciones. Esta informacin completa
se encuentra en el Anexo 2.
Los frames de entrenamiento al igual que se hizo con FGDStatModel, se dejaron previos al frame de
evaluacin, de esta forma, se determin por medio de pruebas el nmero de frames de entrenamiento a
partir del cual el error del resultado del algoritmo era estable.
Tabla 13.
Resultados de evaluacin con Video1, 2 y 3 con parmetros por defecto de Codebook.

Defecto Video1
Defecto Video2
Defecto Video 3

TIEMPO DE EJECUCIN(s)

FA

199

FR
4708

TIEMPO DE EJECUCIN(s)

FA

162

FR
34446

TIEMPO DE EJECUCIN(s)
118

FA

261884
FR

7215

24

104984

164554

SEG
148619
SEG
453944
SEG
213551

ERROR
74%
ERROR
65%
ERROR
80%

En las configuraciones de prueba se incluyeron variaciones de cada parmetro mientras los dems se
dejaban por defecto, finalmente se determin la configuracin con los parmetros seleccionados basados
en los valores que menos errores arrojaron en las pruebas.
En las tablas 15, 16 y 17, se encuentran los valores seleccionados para el nmero de frames de
entrenamiento, umbral de aprendizaje y umbral de clasificacin para los 3 videos respectivamente.
En la figura 15 se encuentra un ejemplo de la grfica de resultados obtenida con la variacin de los
umbrales de clasificacin con las configuraciones de prueba. En el eje horizontal siempre se encontrar el
parmetro de variacin mientras que en el eje vertical est el valor de los diferentes errores. Estas grficas
se pueden encontrar en el Anexo 2.

Figura 15 Grafica de error variando modMin y modMax en Video 1

Tabla 14
Resultados de Variacin de frames para Codebook.

Video de
prueba
FALSAS ACEPTACIONES FALSOS RECHAZOS FA + FR
Frames_entrenamiento
1
0,047283841
0,671960078 0,719243919
40
2
0,104904
0,435453
0,540356
40
3
0,051018
0,760624
0,811642
30
Tabla 15
Resultados de Variacin de cvBounds para Codebook.

Video de
prueba

FALSAS ACEPTACIONES

FALSOS RECHAZOS

FA + FR

Umbral de
aprendizaje

0,06525343

0,52758176

0,59283519

0,114232

0,385214

0,499447

0,06555343

0,69079986

0,75635328

25

Tabla 16
Resultados de Variacin de modMin y modMax para Codebook.

Video de
prueba

FALSAS ACEPTACIONES

FALSOS RECHAZOS

FA + FR

Umbral de
Clasificacin

0,11968021

0,26809909

0,3877793

0,15580152

0,13139946

0,28720098

0,13942337

0,35995617

0,49937954

26

ANLISIS DE RESULTADOS

5.1 ANLISIS DE RESULTADOS Y EXPERIMENTACION PARA FGDSTATMODEL.


Con los resultados obtenidos para las pruebas de FGDStatModel y teniendo en cuenta que la seleccin de
valores fue con base en el menor valor de error encontrado, se realizaron promedios de los valores
encontrados para los 3 videos. El resumen de los valores de los parmetros de funcionamiento de
FGDStatModel encontrados por medio del protocolo de pruebas y el valor promedio de los mismos estn
relacionados en la tabla 18.
Los valores ms representativos en las variaciones del algoritmo, fueron los niveles de cuantificacin para
color y la cantidad de frames de entrenamiento, que afectan directamente los tiempos de ejecucin del
algoritmo. A partir de cierto valor mnimo frames y de Lc no se encontraron variaciones sustanciales en el
resultado de error. Con la asignacin de determinado nmero de frames de entrenamiento como parmetro
de entrada se modific notablemente el tiempo que tardaba el algoritmo ejecutando las pruebas. La
informacin de grficos de error y tablas de resultados se encuentran el al Anexo 1. Los parmetros que se
dejaron por defecto, no afectaban significativamente el resultado de las pruebas, siendo esta la razn
fundamental por la que se descartaron las variaciones con estos parmetros.
El valor promedio encontrado con las pruebas independientes de los 3 videos seleccionados est en color
verde en la tabla 18, a partir de estos parmetros promedio se realiz una nueva prueba de funcionamiento
del algoritmo para los tres videos obteniendo los resultados de la tabla 19. Los resultados de tiempo y
error con los parmetros seleccionados para FGDStatModel se encuentran tambin en la tabla 19.
Tabla 17
Resumen de parmetros para FGDStatModel para los 3 videos de prueba.

Video 1-seleccionados
Video 2-seleccionados
Video 3-seleccionados
Promedio _
Defecto

Frames de
entrenamiento Lc N1c N2c Lcc N1cc N2cc Delta minArea
40 12
2
4
18
2
4
2
12
40 16
2
4
20
2
4
1,5
8
60 30
2
4
18
2
4
1,5
12
47 19
2
4
19
2
4
2
11
Todos 128 15 25
64
25
40
2
15
Tabla 18
Valores de error y tiempo con los parmetros de estudio para FGDStatModel.

Parmetros de
prueba

Nombre del video


Video1_30fps.avi
Video2_30fps.avi
Video3_125fps.avi

Parmetros
promedio
Tiempo de
ejecucin
(s)
Error
125
37%
83
23%
62
46%

Parmetros
seleccionados
Tiempo de
ejecucin(s)
128
80
64

27

Error
23%
38%
36%

Parmetros por
defecto
Tiempo de
ejecucin (s)

Error

3258

36%

2298
3269

21%
36 %

Con estos valores obtenidos se evidencia en 2 de 3 casos el aumento de error con la configuracin de
valores promedio para los 3 videos. Con los valores de los parmetros seleccionados se logr disminuir
las iteraciones y operaciones matemticas dentro del algoritmo que se ven reflejadas en el tiempo de
ejecucin de la prueba.
5.2 ANLISIS DE RESULTADOS Y EXPERIMENTACION PARA CODEBOOK.
De forma semejante a lo sucedido con el algoritmo anterior, en las pruebas con parmetros seleccionados
y con parmetros promedio, se mejor bastante el resultado respecto a la versin por defecto, sin embargo,
los resultados con los valores promedio arrojaron errores mayores en 2 de 3 casos. Los tiempos de
ejecucin tanto con los valores promedio como los seleccionados fueron muy cercanos. El resto de
parmetros que usa Codebook se van configurando y usando a medida que avanza la ejecucin del
algoritmo, pero no son parmetros para manipulacin de los usuarios.
Los resultados obtenidos para los parmetros por defecto de Codebook junto con los resultados por
defecto y resultados con parmetros promedio estn en la tabla 21. El resumen de los parmetros
seleccionados, los parmetros promedio y parmetros por defecto se encuentran en la tabla 20.
A diferencia de FGDStatModel, Codebook configurado por defecto entrena un nmero determinado de
frames, lo cual le permite un tiempo de ejecucin bastante pequeo respecto a la versin por defecto de
FGD.
Tabla 19
Resumen de parmetros para Codebook con los 3 videos de prueba.

Video 1 -seleccionados
Video 2-seleccionados
Video 3-seleccionados
Promedio _
Defecto

Frames de
entrenamiento cvBounds
modMin
modMax
40
6
2
2
40
2
2
2
30
2
0
0
37
3
1
1
300
10
3
10

Tabla 20
Valores de error y tiempo con los parmetros de estudio para Codebook.

Parmetros de
prueba

Nombre del video


Video1_30fps.avi
Video2_30fps.avi
Video3_125fps.avi

Parmetros
promedio
Tiempo de
ejecucin
(s)
Error
103
35%
53
36%
56
48%

Parmetros
seleccionados
Tiempo de
ejecucin(s)
100
61
57

28

Error
39%
31%
42%

Parmetros por
defecto
Tiempo de
ejecucin (s)
199

162
118

Error
74%
65%
80%

5.3 SELECCIN DE ALGORITMOS PARA COMPARACIN.


La seleccin de los algoritmos y las configuraciones respectivas se hicieron con base en los resultados y
anlisis de los mismos. Las configuraciones y valores seleccionados corresponden al mejor punto de
operacin de los algoritmos para cada video. No se tom una configuracin genrica porque el error
encontrado aumentaba en la mayora de los casos de estudio.
De esta forma se toma la mejor configuracin de FGDStatModel para cada uno de los tres videos y se
compara con la mejor configuracin de Codebook para el video respectivo. Las configuraciones del
algoritmo que se compararon estn relacionadas en la tabla 22.
Tabla 21
Valores de parmetros de comparacin para de los algoritmos.

Algoritmo
CODEBOOK

Parmetros
Frames cvBounds modMin modMax

FGDStatModel
Frames Lc N1c N2c Lcc N1cc N2cc Delta minArea

Video1

40

40 12

4 18

12

Video2

40

40 16

4 20

1,5

Video3

30

60 30

4 18

1,5

12

5.4 COMPARACIN DE MEJORES CONFIGURACIONES ENCONTRADAS.


Para poder determinar con los algoritmos de comparacin cul de los dos trabaja mejor, se realizaron
las pruebas con cada uno para su respectivo video y se obteniendo los resultados de la tabla 23. Estos
mismos resultados se estn ilustrados en la figura 16, 17 y 18.
Tabla 22
Resumen de resultados de FGDStatModel y Codebook.

Resultado Error
CODEBOOK

Resultado Error Resultado Tiempo Resultado Tiempo


FGDSTATMODEL
CODEBOOK (s)
FGDSTATMODEL (s)

VIDEO 1

39%

38%

100

128

VIDEO 2

31%

23%

61

80

VIDEO 3

42%

36%

57

64

29

Figura 16 Grafica de comparacin de resultados de error entre Codebook y FGDStatModel.

Figura 17 Grafica de comparacin de resultados de tiempos de ejecucin entre Codebook y FGDStatModel.

As se evidencia que el algoritmo con menor error en la evaluacin fue FGDStatModel, sin embargo en
tiempo de ejecucin Codebook obtuvo un comportamiento un poco ms favorable respecto a
FGDStatModel. Ambos algoritmos con los parmetros encontrados mejoran sus tiempos de ejecucin
y porcentaje de error respecto a sus versiones por defecto.

30

CONCLUSIONES

El algoritmo FGDStatModel, en su versin original, tiene tantos frames de entrenamiento como


frames tiene el video, lo cual lo hace tardar bastante en tiempos de ejecucin, sin embargo se pudo
comprobar que no es necesario manejar tantos frames de entrenamiento pues luego de 40 o 60
frames de entrenamiento en el peor de los casos, el resultado obtenido era estable.

Los tiempos de ejecucin de FGDStatModel mejoran (disminuyen) notablemente conforme


disminuyen los niveles de cuantificacin. Se pudo demostrar que despus de 12, 16 o 30 niveles
para color en el peor de los casos, y 18 0 20 niveles de cuantificacin para coocurrencia de
color, aumenta la velocidad de ejecucin del algoritmo.

Para el algoritmo FGDStatModel, no es necesario actualizar todos los frames del video para
obtener un buen resultado en la estimacin del primer plano, ya que este proceso hace al algoritmo
muy lento en su ejecucin.

Los parmetros N1c-N2c y N1cc-N2cc, segn los resultados obtenidos, quedaron en valores que
junto con los anteriores, ayudan en el proceso de optimizar tiempos de ejecucin sin perjudicar el
error obtenido con el resultado.

Al variar los parmetros de configuracin de cada algoritmo, se determin que, para el caso de
estudio, es posible reducir los tiempos de ejecucin significativamente, sin alterar el desempeo
del algoritmo en la deteccin de objetos de primer plano.

Codebook a pesar de ser muy bueno por defecto en tiempos de ejecucin respecto a
FGDStatModel, tiene un error mayor a FGDStatModel. Con los valores de configuracin
encontrados se logr disminuir notablemente ese porcentaje de error.

FGDStatModel a pesar de ser muy bueno por defecto en porcentaje se error arrojado respecto a
Codebook, tiene un tiempo de ejecucin muchsimo mayor a Codebook, sin embargo con los
valores de configuracin encontrados se logr disminuir notablemente ese tiempo y con esto su
comportamiento en tiempo se acerc bastante al de Codebook.

De acuerdo a la aplicacin y al tipo de video usado, cada uno de los algoritmos presentados se
puede configurar de tal forma que pueda realizar mejor la estimacin del primer plano.

Se recomienda usar valores diferentes a los que se tienen por defecto en los algoritmos para
aplicaciones de deteccin de vehculos en videos con vista superior, en este caso particular se
recomiendan los valores encontrados con el proceso de seleccin del presente trabajo.

31

BIBLIOGRAFIA

7.1 Imgenes:
[1] http://www.iloveskate.net/leo-sk8er/blog/entrada_6898/ Consultada el da 17 de mayo de 2011.
[2] http://www.laplazareal.net/migueladelgado.htm Consultada el da 17 de mayo de 2011.
7.2

Pginas Web

[3] Inferencia Estadstica. http://sauce.pntic.mec.es/~jpeo0002/Archivos/PDF/T04.pdf Consultada el


da 07 de enero de 2011
[4] Inferencia Bayesiana.
http://www.ulpgc.es/hege/almacen/download/7062/7062983/inf_bayesiana_binarios.pdf Consultada el da
11 de mayo de 2011
[5] Introduccin a la inferencia Bayesiana. http://www.ugr.es/~mcdiaz/bayes/index.htm consultada el
da 07 de enero de 2011.
[6] Teorema de Bayes. http://www.ma.uva.es/~antonio/Industriales/Apuntes_10-11/EstaE/10_Tema03.pdf Consultada el da 18 de mayo de 2011.
[7] Teorema de Bayes. http://www.aulafacil.com/CursoEstadistica/Lecc-25-est.htm Consultada el da
18 de mayo de 2011.
[8] About YUV Video. http://msdn.microsoft.com/en-us/library/bb530104%28v=vs.85%29.aspx
Consultada el da 20 de mayo de 2011
[9] YUV/RGB conversion formulas
http://www.pcmag.com/encyclopedia_term/0,2542,t=YUVRGB+conversion+formulas&i=55166,00.asp
Consultada el da 19 de mayo de 2011.
[10] Luminancia. http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=luminancia Consultada el da
20 de mayo de 2011.
[11] C++ Reference. http://www.cplusplus.com/ Consultada el da 15 de enero de 2011.
[12] WIKI en espaol de Desarrollos en OpenCV hechos en la Pontificia Universidad Javeriana - Bogot.
Colombia. http://opencvjaveriana.wikispaces.com/ consultada el da 15 de enero de 2011.
[13] Introduction to programming with OpenCV. http://www.cs.iit.edu/~agam/cs512/lect-notes/opencvintro/index.html Consultada el da 15 de enero de 2011.
[14] OpenCV 2.1 C++ Reference. http://opencv.willowgarage.com/documentation/cpp/index.html
Consultada el da 15 de enero de 2011.
[15] "OpenCV 1.0 API. Frequently Asked Questions / Troubleshootings / HowTOs
http://www.cs.indiana.edu/cgi-pub/oleykin/website/OpenCVHelp Consultada el 15 de enero de 2011.
[16] OpenCV: Basic Structures and Operations Reference. http://www710.univlyon1.fr/~bouakaz/OpenCV-0.9.5/docs/ref/OpenCVRef_BasicFuncs.htm Consultada el da 16 de enero de
2011.
[17] Free PHP and OpenCV Tutorials, Ebooks, Code Samples and Downloads. http://nashruddin.com/
Consultada el da 18 de enero de 2011.
[18] Ejemplos bsicos con OpenCV. http://www.sebest.com.ar/?q=node/79 Consultada el da 18 de
enero de 2011.
[19] CvFGDStatModel Struct Reference.
http://www.ros.org/doc/api/opencv_latest/html/structCvFGDStatModel.html consultada el da 04 de
marzo de 2011.
7.3

Libros y documentos

[20] Intel corporation Open Source Computer Vision Library: Reference manual. 2001
[21] Bradsky, G. y Kaehler, A. Learning OpenCV. OReily Media, Septiembre 2008.
[22] Kim, K., Chalidabhongse, T., Harwood, D. y Davis, L. Background modeling and substraction by
codebook construction. Computer Vision Lab, University of Maryland, USA.

32

[23] Kim, K., Chalidabhongse, T., Harwood, D. y Davis, L. Real-time foreground-background


segmentation using codebook model. Computer Vision Lab, University of Maryland, USA. 2004
[24] Li, Liyuan; Huang, Weimin; Gu, Irene; Tian,Qi. Foreground Object Detection From Videos
Containing Complex Background. 2003.
[25]David, Mario. Evaluacin del algoritmo de estimacin de primer plano Codebook. Pontificia
Universidad Javeriana. 2011
[26] Quiroga, J., Quintero, J., Quintero, P. y Weiss, X. Estimacin del fondo para la deteccin de
vehculos en video. XIII Simposio de tratamiento de seales, imgenes y visin artificial STSIVA.
2008.
[27] Garca, Carolina; Romero, Nstor y Quiroga, Julin. Deteccin y seguimiento de personas en un
cruce peatonal. XIV Simposio de tratamiento de seales, imgenes y visin artificial STSIVA. 2009.
[28] Caldern, Francisco y Urrego, Germn. Conteo automtico de vehculos. Pontificia Universidad
Javeriana.2008.
[29] Grupo SIRP PUJ. http://www.gruposirp.org/sirp/sirp-home.html

33

S-ar putea să vă placă și