U NIVERSIDAD C ARLOS III DE M ADRID
E SCUELA P OLIT´ ECNICA S UPERIOR
I NGENIER´ IA I NDUSTRIAL
PROYECTO FIN DE CARRERA
DETECCI ´ ON DE
PERSONAS A PARTIR DE VISI ´ ON ARTIFICIAL
Autor : U BALDO G ONZ ´ ALEZ B EN´ ITEZ
Tutor : D R. L UIS M ORENO L ORENTE
S EPTIEMBRE DE 2010
A mis padres, los mejores del mundo.
Agradecimientos
A mi tutor D. Luis Moreno Lorente, tanto por darme la oportunidad de realizar un proyecto tan gratificante, como por su inestimable ayuda a lo largo de estos meses.
A mi familia, de la cual me siento cada d´ıa m´as orgulloso. En especial, de mi hermana Cristina, un ejemplo para crecer a su lado.
A mi compa˜ nero de mil batallas Javier Ya˜ n´ez Garc´ıa, gracias a su ayuda la ingenier´ıa no ha sido para tanto.
A mi novia Kris, por ser la mejor compa˜ nera de viaje posible.
A mis amigos de la infancia, por ense˜ narme el significado de la amistad.
A mis nuevos amigos de la universidad, por lo que hemos vivido, y por lo que queda por vivir.
A los compa˜ neros de laboratorio, en especial a Jorge, Piotr, Alejandro y Fran, por hacer que el tiempo all´ı fuera mucho m´as llevadero y por prestarme su ayuda siempre que la necesit´e.
Al Departamento de Ingenier´ıa de Sistemas y Autom´atica de la Univer- sidad Carlos III, por brindarme las instalaciones para poder desarrollar este proyecto.
Y por ´ ultimo, a todos aquellos profesores que han contribuido en mi formaci´on y han hecho que admire mi nueva profesi´on, Ingeniero Industrial.
Gracias a todos, de coraz´on.
Ubaldo Gonz´alez Ben´ıtez.
´INDICE GENERAL
1. Introducci´ on 17
2. Estado del arte 23
3. Arquitectura Hardware y Software 29
3.1. Sistema operativo . . . 29
3.2. Biblioteca OpenCV 2.1.0 . . . 31
3.3. Librer´ıa cvblobslib . . . 33
3.4. C´amara: Logitech QuickCam Pro 9000 . . . 33
4. Arquitectura funcional 35 4.1. Obtenci´on del v´ıdeo. Separaci´on frame a frame . . . 36
4.2. Segmentaci´on de fondo . . . 37
´ INDICE GENERAL 4.2.1. An´alisis te´orico de los algoritmos para extracci´on de
fondo . . . 39
4.2.2. Par´ametros de operaci´on de los algoritmos . . . 63
4.2.3. Elecci´on del algoritmo para la detecci´on de fondo . . . 65
4.2.4. Filtro Morfol´ogico . . . 70
4.3. Detecci´on de blobs . . . 71
4.4. Detecci´on de personas . . . 73
4.5. Generaci´on de v´ıdeo de salida . . . 76
5. Experimentaci´ on 79 5.1. Estudio de situaciones concretas de inter´es . . . 80
5.2. Estudio de secuencias de v´ıdeo . . . 87
5.2.1. V´ıdeo 1: Estaci´on de metro de San Nicasio I . . . 88
5.2.2. V´ıdeo 2: Estaci´on de metro de San Nicasio II . . . 91
5.2.3. V´ıdeo 3: Segunda planta del Edificio Bethancourt . . . 94
5.2.4. V´ıdeo 4: Tercera planta del Edificio Bethancourt . . . . 97
5.2.5. V´ıdeo 5: Laboratorio del departamento de Rob´otica y Automatizaci´on . . . 100
5.2.6. V´ıdeo 6: Exteriores del metro de San Nicasio . . . 103
5.2.7. V´ıdeo 7: Paseo Paquita Gallego. . . 106
6. Conlusiones 111
´ INDICE GENERAL
7. Trabajo futuro 119
´ INDICE GENERAL
´INDICE DE FIGURAS
1.1. Ejemplo de detecci´on de personas. . . 19
1.2. Segmentaci´on de imagen en background y foreground. . . 20
2.1. Clasificaci´on de m´etodos de extracci´on del background. . . 25
2.2. Ejemplo de problemas a solventar por el algoritmo de seg- mentaci´on. . . 27
2.3. Detecci´on ´ unicamente de personas. . . 28
3.1. Paso 3 de la instalaci´on de OpenCV 2.1.0 . . . 32
3.2. Paso 4 de la instalaci´on de OpenCV 2.1.0 . . . 32
3.3. Paso 5 de la instalaci´on de OpenCV 2.1.0 . . . 32
3.4. Paso 6 de la instalaci´on de OpenCV 2.1.0 . . . 32
3.5. Paso 7 de la instalaci´on de OpenCV 2.1.0 . . . 32
´ INDICE DE FIGURAS
3.6. Webcam Logitech QuickCam Pro 9000. . . 34
4.1. Diagrama de flujo de la aplicaci´on. . . 36
4.2. Divisi´on del v´ıdeo de entrada en frames. . . 37
4.3. Diagrama de flujo de la segmentaci´on de fondo. . . 38
4.4. Ejemplo de aprendizaje de las principales caracter´ısticas para un p´ıxel de backgrpund est´atico en una escena concurrida. La imagen de la izquierda muestra la posici´on del p´ıxel selecciona- do. Las dos im´agenes de la derecha son los histogramas de los estad´ısticos de color y gradiente m´as importantes, donde la altura de una barra es p
tvi, la parte de luz de gris es p
tvi|ty el m´aximo de la parte de oscuridad de gris es p
vi
t-p
tvi|t. Los iconos que se muestran debajo de los histogramas corresponden a las caracter´ısticas de color y gradiente. . . 45
4.5. Ejemplo de aprendizaje de las principales caracter´ısticas para un p´ıxel de background din´amico. La imagen de la izquierda muestra la posici´on del p´ıxel seleccionado. La imagen de la derecha es el histograma de los estad´ısticos para las m´as im- portantes co-ocurrencias de color en T
cc(s), donde la altura de una de sus barras es el valor de p
tvi, la parte de luz de gris es p
tvi|ty el m´aximo de la parte de oscuridad de gris is p
vi
t-p
tvi|t. Los iconos que se muestran debajo del histograma correspon- den a las caracter´ısticas de co-ocurrencia de color y gradiente. En la imagen el color cambia en blanco, azul oscuro y azul claro peri´odicamente. . . 46
4.6. Diagrama del algoritmo FGD. . . 52
4.7. Esta figura contiene im´agenes y diagramas de dispersi´on de los valores de rojo y verde de un p´ıxel de la imagen. . . 58
4.8. Respuesta de los algoritmos ante foreground est´atico con peque˜ nos
movimientos. . . 67
´ INDICE DE FIGURAS
4.9. Respuesta de los algoritmos ante foreground a largas distan- cias. Se comprueba como la respuesta del algoritmo MOG es
mejor que la respuesta del algoritmo FGD. . . 67
4.10. Respuesta de los algoritmos ante movimiento a medias distan- cias. Se puede observar como en el algoritmo MOG hay m´as ruido debido a las sombras, esto va a provocar que se detecte, o bien dos personas una encima de otra, o una sola persona del doble de altura, esto evidentemente va a enga˜ nar al robot. 68 4.11. Aplicaci´on del filtro morfol´ogico. . . 71
4.12. Detecci´on de una persona. . . 72
4.13. Algoritmo de etiquetado. . . 73
4.14. Objetos en movimiento que son filtrados por la aplicaci´on. . . 74
4.15. Seguimiento de una persona. . . 75
4.16. Pantalla de salida de la aplicaci´on. . . 77
5.1. Detecci´on y seguimiento de una persona. . . 81
5.2. Foreground en la detecci´on de una persona. . . 82
5.3. Detecci´on de dos personas o m´as por separado. . . 83
5.4. Problemas en la detecci´on de dos personas o m´as. . . 84
5.5. Ejemplo de filtrado de objetos. . . 85
5.6. Evoluci´on de una persona est´atica. . . 86
5.7. Escena donde tiene lugar la grabaci´on del v´ıdeo 1. . . 89
5.8. Situaciones con par´ametros de filtrado restrictivos. . . 90
5.9. Detecci´on de la sombra. . . 93
´ INDICE DE FIGURAS
5.10. Detecci´on de un n´ umero elevado de personas a la vez. . . 93
5.11. Escena donde tiene lugar la grabaci´on del v´ıdeo 3. . . 95
5.12. Detecciones correctas en el v´ıdeo 3. . . 96
5.13. Detecci´on de una sola persona debido a superposici´on. . . . . 96
5.14. Escena donde tiene lugar la grabaci´on del v´ıdeo 4. . . 98
5.15. Primera imagen de la secuencia de v´ıdeo, se observa como las 3 personas que aparecen en la imagen forman parte del background. . . 99
5.16. No detecci´on de la persona por m´otivo de restricci´on de ´area. . 99
5.17. Escena donde tiene lugar la grabaci´on del v´ıdeo 5. . . 101
5.18. Situaciones a destacar en el v´ıdeo 5. . . 102
5.19. Escena donde tiene lugar la grabaci´on del v´ıdeo 6. . . 104
5.20. Ejemplo de detecciones correctas en el v´ıdeo 6. . . 105
5.21. Detecci´on de una rama. . . 105
5.22. Escena donde tiene lugar la grabaci´on del v´ıdeo 7. . . 107
5.23. Personas detectadas correctamente en el v´ıdeo 7. . . 108
5.24. Persona no detectada por estar tapada por otra. . . 109
5.25. Falsa detecci´on, sombra. . . 109
5.26. Falsa detecci´on, ventana. . . 109
6.1. Resultados en v´ıdeo interior con par´ametros restrictivos. . . . 114
6.2. Resultados en v´ıdeos interiores con par´ametros para optimizar
detecci´on y seguimiento. . . 115
´ INDICE DE FIGURAS
6.3. Resultados en v´ıdeos exteriores. . . 117
´ INDICE DE FIGURAS
´INDICE DE CUADROS
5.1. Caracter´ısticas del v´ıdeo 1. . . 88
5.2. Resultados obtenidos con el v´ıdeo 1. . . 89
5.3. Caracter´ısticas del v´ıdeo 2. . . 91
5.4. Resultados obtenidos con el v´ıdeo 2. . . 92
5.5. Caracter´ısticas del v´ıdeo 3. . . 94
5.6. Resultados obtenidos con el v´ıdeo 3. . . 95
5.7. Caracter´ısticas del v´ıdeo 4. . . 97
5.8. Resultados obtenidos con el v´ıdeo 4. . . 98
5.9. Caracter´ısticas del v´ıdeo 5. . . 100
5.10. Caracter´ısticas del v´ıdeo 6. . . 103
5.11. Resultados obtenidos con el v´ıdeo 6. . . 104
5.12. Caracter´ısticas del v´ıdeo 7. . . 106
´ INDICE DE CUADROS
5.13. Resultados obtenidos con el v´ıdeo 7. . . 108
6.1. Comparaci´on de resultados obtenidos en interior. . . 116
6.2. Comparaci´on entre resultados obtenidos en interior y exterior. 118
CAP´ ITULO 1 INTRODUCCI ´ ON
La visi´on artificial es una rama de la ingenier´ıa electr´onica que tiene por objetivo modelar matem´aticamente los procesos de percepci´on visual de los seres vivos y generar programas que permitan simular estas capacidades visuales por ordenador. Es una gran herramienta para establecer la relaci´on entre el mundo tridimensional y las vistas bidimensionales tomadas de ´el.
Por medio de esta teor´ıa se puede hacer, por una parte, una reconstrucci´on del espacio tridimensional a partir de sus vistas y, por otra parte, llevar a cabo una simulaci´on de una proyecci´on de una escena tridimensional en la posici´on deseada a un plano bidimensional.
Sus antecedentes se remontan a los a˜ nos veinte, cuando se mejora la calidad de las im´agenes digitalizadas de los peri´odicos, enviadas por ca- ble submarino entre Londres y Nueva York. Actualmente existen veh´ıculos aut´onomos que viajan de costa a costa en Estados Unidos y s´olo son asistidos por un operador humano el 3 % del tiempo.
El proceso de visi´on por ordenador puede subdividirse en seis ´areas prin-
cipales:
CAP´ ITULO 1. INTRODUCCI ´ ON
1. Sensado. Es el proceso que nos lleva a la obtenci´on de una imagen visual
2. Preprocesamiento. Trata de las t´ecnicas de reducci´on de ruido y enriquecimiento de detalles en la imagen
3. Segmentaci´on. Es el proceso que particiona una imagen en objetos de inter´es.
4. Descripci´on. Trata con el c´omputo de caracter´ısticas ´ utiles para difer- enciar un tipo de objeto de otro.
5. Reconocimiento. Es el proceso que identifica esos objetos.
6. Interpretaci´on. Asigna un significado a un conjunto de objetos re- conocidos.
Las aplicaciones de la visi´on artificial en la actualidad son muy variadas e interesantes, a continuaci´on se muestran algunas de ellas:
Industria automotriz: medici´on de las dimensiones de cojinetes de frenos, calibraci´on de ensamblado rob´otico de sensores de frenos ’anti-lock’.
Industria de dispositivos m´edicos: inspecci´on de cat´eteres en el coraz´on, lectura de c´odigos en marcapasos.
Industrias financieras: inspecci´on detallada de tarjetas financieras.
Retroalimentaci´on visual para robots.
Comunicaci´on visual hombre-m´aquina.
Empresas de seguridad: v´ıdeo-vigilancia.
Control de tr´afico.
En respuesta a la necesidad de los campos mencionados el an´alisis autom´atico
de secuencias de v´ıdeo se ha convertido en un ´area de investigaci´on muy
activa. En este proyecto se estudia en concreto la detecci´on y seguimiento
global de personas a trav´es de la visi´on artificial con el fin de utilizarlo para la
retroalimentaci´on visual de robots, mejorando la comunicaci´on e interacci´on
m´aquina-hombre, o como aplicaci´on de video-vigilancia para empresas de
CAP´ ITULO 1. INTRODUCCI ´ ON
seguridad. Destacar que con seguimiento global se quiere decir que en caso de haber m´as de una persona en la escena esta aplicaci´on determina donde se encuentran las personas en cada momento pero sin diferenciar entre ellas, es decir, sin determinar que persona es cada una. Por tanto esta aplicaci´on realiza la detecci´on frame a frame de las personas existentes en el campo de visi´on pero sin realizar un seguimiento en los frames sucesivos en caso de haber m´as de una persona, es por ello que a partir de ahora se habla solo de detecci´on si bien con esto se consigue un seguimiento global como se ha comentado.
La detecci´on es una tarea que parece relativamente trivial para los hu- manos y que es compleja de llevar a cabo por ordenadores.
Figura 1.1: Ejemplo de detecci´on de personas.
Las aplicaciones de visi´on artificial para detecci´on se basan en distinguir entre primer plano en movimiento (del ingl´es, foreground) y el fondo (del ingl´es, background). De esta manera se consigue aislar los p´ıxeles en los que hay movimiento del fondo, consiguiendo detectar los objetos que se mueven.
Una vez realizado esto se debe agrupar los p´ıxeles en el foreground que con- forman un objeto en movimiento para saber su posici´on, tama˜ no, etc. Para a continuaci´on distinguir de alguna manera entre personas y el resto de objetos (veh´ıculos por ejemplo).
Una manera efectiva y sencilla de realizar la segmentaci´on FG-BG es
extrayendo el background, para lo cual se necesita un modelo preciso y adap-
tativo de fondo. El background normalmente contiene objetos inertes que
permanecen pasivos en la escena (paredes, puertas, muebles...), pero tam-
bi´en puede contener objetos no estacionarios. La apariencia de los objetos
de background experimenta cambios a lo largo del tiempo como puede ser
CAP´ ITULO 1. INTRODUCCI ´ ON
debido al cambio de iluminaci´on. Por lo tanto, se puede apreciar que la ima- gen de background est´a formada por pixeles est´aticos y din´amicos, seg´ un se trate de un objeto estacionario o no. Un p´ıxel de background est´atico puede llegar a convertirse en din´amico con el paso del tiempo y viceversa tambi´en, es decir, un p´ıxel de background din´amico puede llegar a transformarse en est´atico. En definitiva para describir una escena de background general, un modelo de background debe ser capaz de representar la apariencia de un p´ıxel de background est´atico, un p´ıxel de background din´amico y evolucionar a los cambios tanto repentinos como graduales del background.
Figura 1.2: Segmentaci´on de imagen en background y foreground.
Por lo tanto, el objetivo principal que persigue el Proyecto Final de Ca- rrera descrito en este documento es el desarrollo de un algoritmo para la detecci´on de personas que se encuentren en el campo de visi´on a trav´es de la segmentaci´on entre el foreground y el background. Los subobjetivos vincula- dos al principal son los siguientes:
1. Estudio te´orico de la bibliograf´ıa existente sobre t´ecnicas de detecci´on
con el objetivo de optimizar el algoritmo.
CAP´ ITULO 1. INTRODUCCI ´ ON
2. Experimentaci´on con la aplicaci´on desarrollada para determinar su efi- ciencia en los distintos entornos posibles.
3. An´alisis de posibles deficiencias del algoritmo para buscarle soluci´on siempre y cuando sea posible.
4. Obtenci´on de conclusiones y posibles trabajos futuros.
En cuanto a la estructura de este documento, este est´a compuesto por 7
cap´ıtulos. En el siguiente cap´ıtulo se realiza un resumen de como se encuentra
actualmente el estado del arte de la visi´on por computador, particularizando
en la detecci´on de personas. En el se analizar´an las distintas tendencias, fa-
cilitando al lector la informaci´on necesaria para poder situar el proyecto de
manera m´as precisa. En el tercer cap´ıtulo se desarrolla un manual sobre las
diferentes herramientas y dispositivos necesarios para poder llevar a cabo el
proyecto, as´ı como una gu´ıa para su instalaci´on. Seguidamente, en el cap´ıtulo
4 (Arquitectura funcional de la aplicaci´on), se describe de manera precisa y
detallada todos los m´odulos que conforman la aplicaci´on as´ı como las rela-
ciones entre ellos. Para ello se desarrollan todas las t´ecnicas utilizadas en la
aplicaci´on, analiz´andolas de forma te´orica y explicando su aplicaci´on pr´acti-
ca. Una vez mostrados y analizados los m´odulos del algoritmo, en el cap´ıtulo
5 se realizar´a una serie de experimentaciones, en distintos entornos y ante
distintas situaciones, para as´ı determinar el rango de acci´on y eficacia del
mismo. En los dos ´ ultimos cap´ıtulos, conclusiones y trabajos futuros, respec-
tivamente, se analizan todas las conclusiones obtenidas durante el desarrollo
de esta aplicaci´on y se exponen tanto, los puntos donde se debe de seguir
mejorando en este campo, como los puntos concretos en los que se puede
mejorar este algoritmo.
CAP´ ITULO 2 ESTADO DEL ARTE
Como otras tecnolog´ıas, la detecci´on mediante visi´on por ordenador surge de manera gradual, aparece despu´es de un per´ıodo de investigaci´on y de- sarrollo en el campo industrial, militar y acad´emico. La aparici´on de esta tecnolog´ıa llega acompa˜ nada por la madurez en otras tecnolog´ıas como los ordenadores, las c´amaras digitales y la fibra ´optica.
Analizando trabajos anteriores, se observa que uno de los principales re- querimientos a la hora de la detecci´on de personas es la localizaci´on de las zonas donde se produce el movimiento. Para la detecci´on de dichas regiones, como se comenta en el cap´ıtulo 1, se suele utilizar lo que se conoce como t´ecnicas de extracci´on del background. Destacar que las distintas t´ecnicas existentes se diferencian entre s´ı solamente en el tipo de modelo de fondo que utilizan y en las t´ecnicas basadas en dicho modelo de fondo para encontrar las regiones est´aticas.
A continuaci´on se clasifican los diferentes m´etodos de segmentaci´on entre
regiones est´aticas y zonas con movimiento basados en las t´ecnicas de extrac-
ci´on del background. Para que la clasificaci´on sea los m´as clara posible se ha
dividido las t´ecnicas posibles en dos categor´ıas, por un lado las aproxima-
CAP´ ITULO 2. ESTADO DEL ARTE
ciones que usan un modelo de fondo y por otro lado las aproximaciones que usan varios modelos de fondo.
El primero de estos grupos se puede dividir, a su vez, en 2 subcategor´ıas dependiendo del uso que dichas aproximaciones hagan con las m´ascaras de foreground obtenidas:
An´alisis imagen a imagen. Esta categor´ıa describe los m´etodos que em- plean modelos de segmentaci´on frente-fondo bastante comunes, segui- dos de otro tipo de an´alisis. Dependiendo del tipo an´alisis pueden apare- cer varias categor´ıas:
• Aproximaciones cl´asicas: basadas en el uso de t´ecnicas sencillas de segmentaci´on frente-fondo y un postprocesado de la m´ascara de foreground seguido a su vez de alguna otra etapa de an´alisis.
• Basados en la acumulaci´on de m´ascaras de foreground. Dicha acu- mulaci´on se realiza frame a frame y con ella se puede moldear una m´ascara final de foreground, de donde se obtienen las regiones est´aticas.
• Basados en algunas propiedades del modelo de fondo utilizado, como por ejemplo considerando las transiciones entre los diferentes estados de un modelo de mezcla de Gaussianas o observando el valor de algunos par´ametros como, por ejemplo, el peso de las Gaussianas.
An´alisis de m´ascaras de foreground muestreadas. Estas aproximaciones intentan detectar regiones est´aticas analizando la secuencia de v´ıdeo a diferentes velocidades, aprovech´andose de las ventajas espacio-temporales que ello conlleva.
En cuanto al segundo grupo, es decir, aquellas aproximaciones que combi- nan m´as de un modelo de fondo para cada p´ıxel, cabe resaltar que son menos utilizadas por los investigadores para tratar de detectar regiones est´aticas.
Sin embargo, en funci´on de la tasa binaria de procesamiento del v´ıdeo, o del n´ umero de modelos de fondo utilizadas para detectar regiones est´aticas, se puede hacer la siguiente clasificaci´on:
Aproximaciones basadas en el an´alisis imagen a imagen. Se combina
las propiedades de los diferentes modelos de fondo que se utilizan.
CAP´ ITULO 2. ESTADO DEL ARTE
Aproximaciones basadas en el sub-muestreo. Estas aproximaciones de- tectan regiones estacionarias analizando la secuencia de v´ıdeo a trav´es de los diferentes modelos de fondo debido a que cada modelo de fondo se muestrea con una tasa binaria diferente.
En la siguiente figura se muestra un esquema donde se ve de forma clara y concisa toda la clasificaci´on relatada anteriormente.
Figura 2.1: Clasificaci´on de m´etodos de extracci´on del background.
Una vez se realiza la clasificaci´on general anterior, cabe destacar que los
algoritmos m´as importantes y utilizados para la detecci´on de personas en
la actualidad son el modelo de mezcla de Gaussianas (del ingl´es Mixture of
Gaussians: MOG) y el modelo de Bayes (del ingl´es Foreground Detection
based on background modeling and Bayes classification: FGD). El MOG es
un modelo de caracterizaci´on de los p´ıxeles del fondo basados en el m´etodo
de mezcla de Gaussianas. Se caracteriza porque tiene en cuenta a la hora de
CAP´ ITULO 2. ESTADO DEL ARTE
modelar el fondo los posibles cambios de iluminaci´on en la imagen, secuen- cias multimodales, objetos movi´endose lentamente, y el ruido introducido por la c´amara. Este modelo se utiliza en [4][5][7]. En cuanto al FGD propone un marco bayesiano para incorporar caracter´ısticas espectrales, espaciales y temporales en el modelado de background. Deriva una nueva f´ormula de la regla de decisi´on de Bayes para la clasificaci´on de background y foreground.
El background es representado usando estad´ısticas de las principales carac- ter´ısticas asociadas con objetos de background estacionarios y no estacionar- ios. Se propone un m´etodo nuevo para aprender y actualizar las caracter´ısti- cas de background a cambios graduales y repentinos de background. Este modelo se utiliza en [3][15]. Hay que indicar que en el cap´ıtulo 3 se realiza un an´alisis m´as minucioso y detallado de estos dos ´ ultimos algoritmos.
Todas las t´ecnicas anteriormente mencionadas tienen el requisito de que deben ser capaces de detectar objetos en movimiento mediante el uso de un bajo coste computacional y en tiempo real. Adem´as todos los algoritmos deben solventar problemas como:
Ruido: Es importante que el algoritmo sea capaz de eliminar el ruido procedente de la c´amara de v´ıdeo pues puede provocar la detecci´on de zonas de foreground incorrectas. Este ruido es debido al sensor de la c´amara o al medio de transmisi´on de la se˜ nal, que se manifiesta en p´ıxeles aislados que toman un valor diferente al de sus vecinos.
Sombras y reflejos: Es uno de los principales problemas ya que no pertenecen ni al background ni al foreground y en la mayor´ıa de los casos generan interferencias que hacen que el algoritmo no act´ ue de forma adecuada, por ello hay que eliminarlos. Esto se realiza mediante t´ecnicas de filtrado y operaciones morfol´ogicas.
Cambios de iluminaci´on: Son variaciones de la iluminaci´on, estas varia-
ciones pueden tener lugar tanto si la escena ha sido capturada en el
exterior (cambio de luminosidad a lo lardo del d´ıa) como si ha sido
tomada en el interior (distintas fuente de iluminaci´on). La iluminaci´on
juega un papel importante en la visi´on artificial pues simplifica de ma-
nera considerable el an´alisis y el procesado de la escena captada. Es
un factor que influye en gran medida en la complejidad del algorit-
mo, y como es m´as sencillo modificar la iluminaci´on que un complejo
algoritmo, hay que dedicar el tiempo necesario para conseguir una bue-
na iluminaci´on de forma que el algoritmo no se complique m´as de lo
debidamente necesario.
CAP´ ITULO 2. ESTADO DEL ARTE
Actualizaci´on del fondo de escena: Su importancia radica principal- mente en dos puntos. El primero de ellos es que la inicializaci´on del fondo de la secuencia, generalmente no coincide con el background ya que puede haber alg´ un objeto o persona en movimiento, por lo que el algoritmo debe ser capaz de no clasificarlo como fondo, el segundo punto por lo que la actualizaci´on de fondo es importante es debido a que pueden haber cambios importantes en la secuencia.
Determinar los par´ametros de funcionamiento de los algoritmos: Es una de las tareas m´as complejas ya que dependiendo de los par´ametros utilizados los algoritmos mostrar´an unos resultados u otros, que en la mayor´ıa de los casos difieren en gran medida.
Figura 2.2: Ejemplo de problemas a solventar por el algoritmo de seg- mentaci´on.
A parte del requerimiento ya analizado de localizar las zonas donde se
produce movimiento, el otro gran punto en el que se trata de mejorar los
algoritmos de detecci´on de personas en la actualidad es la clasificaci´on au-
tom´atica entre que objetos en movimiento son personas y cuales no. Este es
un proceso complejo, debido a que no hay ning´ un modo f´acil de definir la
manera en que una persona entra en la escena, ya que las personas pueden
adoptar un n´ umero indefinido de posturas y adem´as ir modific´andola a medi-
da que avanza en la escena. Otro punto que hace que la complejidad de este
CAP´ ITULO 2. ESTADO DEL ARTE
proceso aumente, es que las secuencias de v´ıdeo deber ser analizadas en tiem- po real, lo que supone que el coste computacional no puede ser demasiado alto.
El algoritmo de clasificaci´on destinado a determinar si un objeto es per- sona o no se denomina detector de personas. Estos detectores pueden ser de distintos tipos. Pueden ser basados en el an´alisis de contornos, los cuales son muy convenientes cuando la posturas de las personas a detectar siempre es la misma (siempre andando por ejemplo) y el rango de tipos de personas a detectar es bajo. Otro tipo son los basados en el an´alisis de regiones, cal- culando de modo iterativo la elipse m´as grande contenida en cada regi´on obtenida despu´es de la etapa de segmentaci´on. Por ´ ultimo otro tipo son los basados en las caracter´ısticas intr´ınsecas de la persona( basados en el ´area o en las relaciones entre las medidas medias de un humano).
Figura 2.3: Detecci´on ´ unicamente de personas.
Finalmente, en cuanto a la direcci´on que deben tomar las investigaciones
futuras en esta ´area, ´estas deber´ıan estar enfocadas a lograr una mayor es-
tabilidad, una menor sensibilidad al ruido y a perfeccionar la detecci´on de
personas en ciertos casos puntuales. Todo esto deber´ıa permitir desarrollar al-
goritmos m´as r´apidos, precisos y sencillos, es decir, con un mejor rendimiento
que los actuales.
CAP´ ITULO 3
ARQUITECTURA HARDWARE Y SOFTWARE
Este cap´ıtulo nace con la finalidad de proporcionar al lector toda la infor- maci´on que necesita sobre las distintas herramientas y dispositivos necesarios para ejecutar la aplicaci´on sobre detecci´on que aqu´ı se trata. A continuaci´on se muestran los diferentes puntos a tener en cuenta:
3.1. Sistema operativo
La aplicaci´on se desarrolla sobre el sistema operativo Ubuntu. Este es una distribuci´on Linux basada en Debian GNU/Linux que proporciona un sistema operativo actualizado y estable para el usuario, con un fuerte enfoque en la facilidad de uso y de instalaci´on del sistema. Al igual que otras distribuciones se compone de m´ ultiples paquetes de software normalmente distribuidos bajo una licencia libre o de c´odigo abierto.
Una de las grandes ventajas que proporciona este sistema operativo es
CAP´ ITULO 3. ARQUITECTURA HARDWARE Y SOFTWARE
que se puede utilizar como sistema de programaci´on permitiendo compilar C, C++, Java, Ada, entre otros muchos lenguajes. Este proyecto es programado bajo el lenguaje de programaci´on C++.
1) Requisitos
Los requisitos m´ınimos recomendados para ejecutar Ubuntu son los si- guientes:
Procesador: 1 GHz x86.
Memoria RAM: 512 MB.
Disco Duro: 5 GB (para una instalaci´on completa con swap incluida).
Tarjeta gr´afica VGA y monitor capaz de soportar una resoluci´on de 1024x768.
Lector de CD-ROM o tarjeta de red.
Tarjeta de sonido.
Conexi´on a Internet.
Cabe destecar que por lo general se puede ejecutar Ubuntu en hardware m´as antiguos de lo especificado, aunque el rendimiento necesariamente va a ser menor.
2) Instalaci´on
En caso de no tener instalado el Ubuntu es necesario seguir una serie de sencillos pasos:
1. Descargar el CD de instalaci´on de Ubuntu, el Desktop Cd.
2. El archivo descargado es una imagen ISO que se debe grabar en un disco para proceder con la instalaci´on.
3. Arrancar ordenador desde el CD, para ello reiniciar equipo con el disco
grabado en el lector.
CAP´ ITULO 3. ARQUITECTURA HARDWARE Y SOFTWARE
4. Por ´ ultimo se deben ir siguiendo los pasos de la instalaci´on. Como ayuda se recomienda visitar la siguiente p´agina web:
http://www.guia-
ubuntu.org/index.php?title=Instalaci %C3 %B3n est %C3 %A1ndar En ella, a parte de ver los pasos a seguir durante la instalaci´on, tambi´en se puede encontrar el Desktop Cd y tutoriales.
3.2. Biblioteca OpenCV 2.1.0
Para la realizaci´on del proyecto es necesario descargar e instalar una li- brer´ıa espec´ıfica, a parte de las bibliotecas generales que vienen incorporadas ya en Ubuntu. El nombre de esta librer´ıa es OpenCV 2.1.0.
OpenCV es una biblioteca libre de visi´on artificial originalmente desarro- llada por Intel. Desde que aparece su primera versi´on alfa en el mes de enero de 1999, esta se utiliza en infinidad de aplicaciones. Esto se debe a que su publicaci´on se da bajo licencia BSD, que permite que sea usada libremente para prop´ositos comerciales y de investigaci´on con las condiciones en ella expresadas.
Como meta el proyecto pretende proveer un marco de desarrollo f´acil de utilizar y altamente eficiente. Esto se logra realizando su programaci´on en c´odigo c y c++ optimizados, aprovechando adem´as las capacidades que proveen los procesadores multi n´ ucleo. Open CV puede adem´as utilizar el sis- tema de las primitivas de rendimiento integradas de Intel, que es un conjunto de rutinas de bajo nivel espec´ıficas para procesadores Intel.
La web oficial del proyecto es la siguiente:
http://sourceforge.net/projects/opencv/
1) Instalaci´on
Para la instalaci´on de OpenCV 2.1.0 en Ubuntu se deben seguir los si-
guientes pasos:
CAP´ ITULO 3. ARQUITECTURA HARDWARE Y SOFTWARE
1. Se descarga la biblioteca comprimida de la web oficial.
2. Se extrae.
3. Se accede a la carpeta en el terminal.
Figura 3.1: Paso 3 de la instalaci´on de OpenCV 2.1.0
4. Al no tener makefile se descarga el cmake:
Figura 3.2: Paso 4 de la instalaci´on de OpenCV 2.1.0 5. Se ejecuta el cmake para crear el makefile:
Figura 3.3: Paso 5 de la instalaci´on de OpenCV 2.1.0
6. Se ejecuta el makefile:
Figura 3.4: Paso 6 de la instalaci´on de OpenCV 2.1.0
7. Por ´ ultimo se instala:
Figura 3.5: Paso 7 de la instalaci´on de OpenCV 2.1.0
Una vez que se ha concluido la instalaci´on se debe tener cuidado con la ruta
donde se ha instalado las librer´ıas de OpenCV para cuando se llamen en el
programa se referencie la ruta correctamente. En caso de que la posici´on no
sea la que se quiere solo hace falta copiarlas en la ruta elegida mediante la
instrucci´on cp.
CAP´ ITULO 3. ARQUITECTURA HARDWARE Y SOFTWARE
3.3. Librer´ıa cvblobslib
A parte de las librer´ıas que ya vienen incorporadas al descargar la biblio- teca OpenCV 2.1.0, esta aplicaci´on requiere la descarga e instalaci´on de una librer´ıa adicional para OpenCV llamada Cvblobslib. Es un componente algo similar a la librer´ıa regionprops de Matlab.
1) Instalaci´on
Para la instalaci´on de esta librer´ıa se debe, al igual que con la biblioteca OpenCV 2.1.0, descargar la librer´ıa de la web oficial. Para encontrar la li- brer´ıa es tan f´acil como escribir cvblobslib en el buscador de la web o entrar directamente a la siguiente direcci´on:
http://opencv.willowgarage.com/wiki/cvBlobsLib
Una vez descargada la librer´ıa se deben seguir los mismos pasos que para la instalaci´on de la biblioteca, teniendo en cuenta que lo m´as recomendable es situar la librer´ıa dentro de los include de OpenCV 2.1.0.
3.4. C´ amara: Logitech QuickCam Pro 9000
El ´exito o no de un algoritmo de visi´on por ordenador depende en gran medida de la calidad de la imagen sobre la que se trabaja, llegando incluso a ser m´as importante para el ´exito de la aplicaci´on que el propio algoritmo.
Es por ello que en este proyecto se ha trabajado con una c´amara de v´ıdeo de contrastada v´alidez suministrada por el departamento de Autom´atica y Rob´otica de de la Universidad Carlos III, la Logitech QuickCam Pro 9000.
Esta c´amara es capaz de producir un v´ıdeo fluido y natural e instant´aneas de hasta 8 megap´ıxeles. Y gracias a su enfoque autom´atico de gama alta las im´agenes son siempre n´ıtidas, incluso en primeros planos ( a 10 cm de la lente).
1) Especificaciones
Optica Zeiss ´ con enfoque autom´atico.
RCAP´ ITULO 3. ARQUITECTURA HARDWARE Y SOFTWARE
Sensor nativo de alta resoluci´on de 2 megap´ıxeles.
V´ıdeo en alta definici´on (hasta 1600 x 1200*).
Modo de pantalla panor´amica de 720p (con sistema recomendado).
Fotos de hasta 8 megap´ıxeles (mejoradas desde el sensor de 2 megap´ıxe- les).
Micr´ofono con tecnolog´ıa Logitech RightSound.
V´ıdeo de hasta 30 cuadros por segundo.
Certificaci´on USB 2.0 de alta velocidad.
Clip universal para monitores LCD, CRT o port´atiles
A continuaci´on se muestra una imagen de la c´amara utilizada para la obtenci´on de im´agenes en tiempo real.
Figura 3.6: Webcam Logitech QuickCam Pro 9000.
2. Instalaci´on
Al trabajar en el sistema operativo Ubuntu no es necesario realizar ning´ un
tipo de instalaci´on, ´ unicamente conectando la c´amara al puerto USB se ins-
talar´a de forma autom´atica. Por el contrario cabe destacar que para grabar
v´ıdeos con la misma es necesario descargar el programa Cheese a trav´es de
la aplicaci´on Synaptic de Ubuntu.
CAP´ ITULO 4
ARQUITECTURA FUNCIONAL
A continuaci´on se realiza la descripci´on de la aplicaci´on que aqu´ı se trata,
estudiando todos los m´odulos que la componen, as´ı como los tipos de datos
que intercambian entre ellos. Para facilitar la comprensi´on de la misma al
lector en primer lugar se muestra un diagrama de flujo en el que se repre-
sentan todas las etapas del algoritmo as´ı como la relaci´on entre ellas. Para
a continuaci´on de esto analizar en detalle cada m´odulo, estudiando tanto la
teor´ıa de las t´ecnicas utilizadas como su aplicaci´on concreta en la aplicaci´on.
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
Figura 4.1: Diagrama de flujo de la aplicaci´on.
Antes de comenzar a desglosar cada bloque por separado es necesario definir claramente el concepto de blob, pues es de vital importancia para el entendimiento del proyecto. Un blob es una estructura compuesta por un conjunto de pixeles adyacentes y sus atributos. Este conjunto de p´ıxeles es agrupado tomando en cuenta que cumple con ciertos criterios o par´ametros de clasificaci´on y por tanto es tomado como un objeto y no como simples p´ıxeles separados y sin ning´ un nexo de uni´on.
4.1. Obtenci´ on del v´ıdeo. Separaci´ on frame a frame
La obtenci´on del v´ıdeo es el primer m´odulo de la aplicaci´on y tiene como
principal objetivo la adquisici´on o generaci´on de los datos de im´agenes que
son usados para su posterior procesamiento en los distintos bloques. Esto se
debe a que la aplicaci´on se basa en el procesamiento de im´agenes consecutivas,
es decir, se divide el v´ıdeo en frames y se trabaja sobre ellos. Para que
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
sea posible esta divisi´on en frames hace falta un proceso el cual se relata a continuaci´on:
Primeramente para generar las im´agenes a procesar se utiliza una interfaz gr´afica que permite cargar un archivo de v´ıdeo ya existente o capturar una se˜ nal de v´ıdeo en vivo, dependiendo si se quiere trabajar en tiempo real o sobre una secuencia ya grabada. Una vez el archivo de v´ıdeo ha sido cargado al m´odulo, el siguiente paso es capturar cada una de las im´agenes que lo componen. Para ello se convierte el formato del v´ıdeo original en un formato que soporte la aplicaci´on, preparado para ser procesado frame a frame. Por
´
ultimo se implementa la divisi´on del mismo en im´agenes para ir movi´endose por todas y cada una de ellas.
Figura 4.2: Divisi´on del v´ıdeo de entrada en frames.
4.2. Segmentaci´ on de fondo
Como se menciona en el cap´ıtulo 1 y 2, uno de los m´odulos principales en
un algoritmo de detecci´on es el de extracci´on del primer plano en movimiento
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
del fondo para detectar las zonas en las que hay movimiento. Este debe ser el primer m´odulo que se debe aplicar a la imagen de entrada del v´ıdeo en tiempo real, tal y como se ve en el diagrama de la aplicaci´on (figura 4.1).
Es evidente que el ´exito que se consiga en este bloque es de vital impor- tancia para el v´alido funcionamiento del resto del algoritmo, pero tambi´en es evidente que dado que se trata de un programa con el objetivo de trabajar en tiempo real hay que tener muy en cuenta el coste computacional.
Indicar que a priori la extracci´on de las zonas en las que hay movimiento en la imagen es m´as sencilla en entornos de interior que en exteriores de- bido a que estos ´ ultimos se ven m´as afectados por cambios de iluminaci´on, movimientos de ramas de un ´arbol o movimientos en las superficies de agua por ejemplo.
A continuaci´on se muestra un diagrama en el que se puede observar como trabaja este bloque independientemente del tipo de modelo concreto que se use en esta aplicaci´on (para ver tendencias actuales en este ´ambito ver cap´ıtulo 2):
Figura 4.3: Diagrama de flujo de la segmentaci´on de fondo.
Como se puede observar en la figura, despu´es del m´odulo de segmentaci´on
background/foreground (con la realimentaci´on necesaria para ir actualizando
el background) se sit´ ua un filtro morfol´ogico para eliminar el ruido. Cabe
indicar que en alg´ un algoritmo de segmentaci´on ya se utiliza un peque˜ no
filtro morfol´ogico, pero aun as´ı se comprueba que los resultados obtenidos
son mejores realizando un filtro morfol´ogico a la salida del sub-bloque para
obtener as´ı menos ruido.
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
Seguidamente se analizan por separado estos dos bloques. En un primer punto se estudia los dos algoritmos m´as utilizados en la actualidad para extraer el foreground que cumplen con una ´optima relaci´on eficiencia-coste computacional, para a continuaci´on elegir uno de ellos para su aplicaci´on en el proyecto. Por ´ ultimo se explica el filtro morfol´ogico utilizado para extraer el ruido.
4.2.1. An´ alisis te´ orico de los algoritmos para extrac- ci´ on de fondo
Como se indica en el cap´ıtulo 2, los dos algoritmos principales a analizar son:
FGD (Foreground Detection based on background modeling and Bayes classification).
MOG (Mixture of Gaussians).
A continuaci´on se realiza una explicaci´on te´orica de los mismos, intentando que sea lo m´as clara y amena posible e incluyendo las f´ormulas matem´aticas necesarias para su f´acil comprensi´on, las cuales son desarrolladas en [3] y [4].
Algoritmo FGD
El background es normalmente representado por caracter´ısticas o rasgos de imagen en cada p´ıxel. Las caracter´ısticas extra´ıdas de una secuencia de im´agenes pueden ser clasificadas en tres tipos: caracter´ısticas espectrales, es- paciales y temporales. Las caracter´ısticas espectrales est´an asociadas a escala de grises o informaci´on de color, las caracter´ısticas espaciales est´an asociadas al gradiente o estructura local, y las caracter´ısticas temporales est´an aso- ciadas a cambios entre frames en el p´ıxel. Las dos primeras son adecuadas para describir la apariencia de los p´ıxeles de background est´aticos, mientras que las terceras se usan para describir los p´ıxeles de background din´amicos asociados con los objetos no estacionarios.
Este m´etodo o algoritmo propone un marco bayesiano que incorpora
m´ ultiples tipos de caracter´ısticas para modelar backgrounds complejos. Los
puntos importantes del m´etodo propuesto son los que siguen:
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
1) Se propone un marco bayesiano para incorporar caracter´ısticas es- pectrales, espaciales y temporales en el modelado de background.
2) Se deriva una nueva f´ormula de la regla de decisi´on de Bayes para la clasificaci´on de background y foreground.
3) El background es representado usando estad´ısticas de las principales caracter´ısticas asociadas con objetos de background estacionarios y no estacionarios.
4) Se propone un novedoso m´etodo para el aprendizaje y la actualiza- ci´on de las caracter´ısticas de fondo a cambios graduales y repentinos de background
5)Se analiza la convergencia del proceso de aprendizaje y se deriva una form´ ula para seleccionar un ratio de aprendizaje adecuado.
6)Se desarrolla un nuevo algoritmo en tiempo real para la detecci´on de objetos de foreground en entornos complejos.
A continuaci´on se desarrolla el algoritmo.
I. MODELADO ESTAD´ISTICO DEL FONDO (BACKGROUND) A. Clasificaci´on de Bayes del background y foreground
Para objetos o regiones de background y foreground arbitrarios, la clasi- ficaci´on del background o foreground puede ser formulada bajo la teor´ıa de decisi´on de Bayes.
Sea s=(x,y) la posici´on de un p´ıxel de una imagen, I(s,t) la imagen de entrada en el instante t, y v un vector caracter´ıstico n-dimensional extra´ıdo de la posici´on s en el instante t de la secuencia de la imagen. Entonces, la probabilidad posterior de que el vector caracter´ıstico del background en s puede ser calculada mediante el uso de la regla de Bayes es:
P
s(b | v) = P
s(v | b)P
s(b)
P
s(v) (4.1)
donde:
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
b: background.
P
s(v|b) :probabilidad del vector caracter´ıstico v, siendo observado como un background en s.
P
s(b): probabilidad anterior del p´ıxel s perteneciendo al background.
P
s(v): probabilidad anterior del vector caracter´ıstico v siendo observado en la posici´on s.
Igualmente, la probabilidad posterior de que el vector caracter´ıstico v venga de un objeto de foreground en s es:
P
s(f | v) = P
s(v | f )P
s(f )
P
s(v) (4.2)
donde:
f: foreground
Usando la regla de decisi´on de Bayes, un p´ıxel s es clasificado como perteneciente al background acorde a su vector caracter´ıstico v observado en el instante t si:
P
s(b | v) > P
s(f | v) (4.3)
De otra forma, es clasificado como perteneciente al foreground. Hay que tener en cuenta que un vector caracter´ıstico observado en un p´ıxel de imagen viene de objetos de background o de objetos de foreground, esto supone:
P
s(v) = P
s(v | b)P
s(b) + P
s(v | f )P
s(f ) (4.4)
Sustituyendo (4.1) y (4.4) en (4.3) se concluye que la regla de decisi´on de Bayes se convierte en:
2P
s(v | b)P
s(b) > P
s(v) (4.5)
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
B. Representaci´on de la caracter´ıstica principal del background
Para aplicar (4.5) para la clasificaci´on del background y foreground, las funciones de probabilidad Ps(b), Ps(v) y P s(v | b) deben ser conocidas en adelante, o deben poder ser estimadas adecuadamente. Para backgrounds complejos, las formas de estas funciones de probabilidad son desconocidas.
Una manera de estimar estas funciones de probabilidad es usando el his- tograma de caracter´ısticas. El problema que se encuentra es el alto coste de almacenamiento y c´alculo computacional. Asumiendo que v es un vector n-dimensinal y cada uno de sus elementos es cuantizado a L valores, el his- tograma contendr´ıa L
nceldas. Por ejemplo, asumiendo que la resoluci´on de color tiene 256 niveles, el histograma contendr´ıa 256
3celdas. El m´etodo ser´ıa irreal en t´erminos de requerimientos computacionales y de memoria.
Es razonable asumir que si las caracter´ısticas seleccionadas representan el background efectivamente, el incremento de las caracter´ısticas de back- ground deber´ıa ser peque˜ no, lo que implica que la distribuci´on de carac- ter´ısticas de background estar´a altamente concentrada en una peque˜ na re- gi´on del histograma. Adem´as, las caracter´ısticas de varios objetos de fore- ground se propagar´ıan ampliamente en el espacio caracter´ıstico. Esto implica que, con una adecuada selecci´on y cuantizaci´on de caracter´ısticas, ser´ıa posi- ble describir aproximadamente el background usando solamente un n´ umero peque˜ no de vectores caracter´ısticos. Una estructura de informaci´on concisa para implementar tal representaci´on de background es creada como sigue.
Sean v
ilos vectores caracter´ısticos cuantizados clasificados en orden des- cendente con respecto a P
s(v
i| b) por cada p´ıxel s. Entonces, para una selecci´on adecuada de caracter´ısticas, habr´ıa un peque˜ no entero N(v), un alto porcentaje de M
1, y un valor de porcentaje bajo de M
2(por ejemplo M
1=80 %-90 % y M
2=10 %-20 %) tales que el background estar´ıa aproximado por:
N(v)
X
i=1
P
s(v
i| b) > M
1y
N(v)
X
i=1
P
s(v
i| f ) < M
2(4.6)
El valor de N(v) y la existencia de M
1y M
2dependen de la selecci´on y
cuantizaci´on de los vectores caracter´ısticos. Los N(v) vectores caracter´ısticos
son definidos como las principales caracter´ısticas del background en el p´ıxel
s.
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
Para aprender y actualizar las probabilidades anterior y condicional para los vectores caracter´ısticos principales, se establece una tabla de estad´ısticas para las caracter´ısticas principales posibles para cada tipo de caracter´ıstica en s. La tabla se denota como:
T
v(s) =
(
p
tv(b)
{S
vt(i)}, i = 1, ..., M (v) (4.7)
donde:
p
tv(b): es el P
s(b) aprendido, basado en la observaci´on de las caracter´ısticas v.
S
vt(i) registra las estad´ısticas de los M(v) vectores caracter´ısticos m´as frecuentes (M(v)>N(v)) en el p´ıxel s.
Cada S
vt(i) contiene tres componentes:
S
vt(i) =
p
tvi= P
s(v
i) p
tvi|b= P
s(v
i| b) v
i= (v
i1...v
iD(v))
T(4.8)
donde:
D(v): dimensi´on del vector caracter´ıstico v.
Los S
vt(i) en la tabla T
v(s) son clasificados en orden descendente con respecto al valor p
tvi. Los primeros elementos N(v) de la tabla T
v(s), junto con p
tv(b), son usados en (4.5) para la clasificaci´on de background y foreground.
C. Selecci´on de caracter´ıstica
La siguiente cuesti´on esencial para la representaci´on de la caracter´ıstica
principal es la selecci´on de caracter´ıstica. Las caracter´ısticas significantes de
distintos objetos de background son diferentes. Para lograr la representaci´on
eficaz y precisa de los p´ıxeles de background con caracter´ısticas principales,
el empleo de tipos adecuados de caracter´ısticas es importante. Tres tipos
de caracter´ısticas, espectrales, espaciales y temporales, son usadas para el
modelado de background
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
a) Caracter´ısticas para p´ıxeles de background est´aticos: Para un p´ıxel perteneciente a un objeto de background estacionario, las caracter´ısticas m´as importantes y estables son su color y estructura local(gradiente). Por lo tanto, se usan dos tablas para aprender las caracter´ısticas principales. Estas son T c(s) y T e(s) con c = [R, G, B]
Ty e = [gx, gv]
Trepresentando los vectores de color y gradiente, respectivamente. Debido a que el gradiente es menos sensitivo a cambios de iluminaci´on, los dos tipos de vectores caracter´ısticos pueden ser integrados bajo el marco de Bayes como se muestra a continuaci´on.
Sea v = [c
T, e
T]
Ty se asume que c y e son independientes, la regla de decisi´on de Bayes (4.5) se convierte en :
2P
s(c | b)P
s(e | b)P
s(b) > P
s(c)P
s(e) (4.9)
Para las caracter´ısticas de los p´ıxeles de background est´aticos, la medida de cuantizaci´on deber´ıa ser menos sensitiva a cambios de iluminaci´on. Aqu´ı, una medida de distancia normalizada basada en el producto interno de dos vectores es empleada por ambos vectores de color y gradiente. La medida de distancia es:
d(v
1, v
2) = 1 − 2(v
1, v
2)
||v
1||
2+ ||v
2||
2(4.10)
donde v puede ser c o e, respectivamente.
Si d(v
1, v
2) es menor que un peque˜ no valor σ, v
1y v
2est´an emparejados entre si. La robustez de la medida de distancia (4.10) a los cambios de ilu- minaci´on y las im´agenes de ruido se muestra en [19]. El vector de color C es obtenido directamente de las im´agenes de entrada con 256 niveles de resolu- ci´on para cada componente, mientras que el vector de gradiente e es obtenido mediante la aplicaci´on de operador Sobel para las correspondientes im´agenes de entrada de escala de grises con 256 niveles de resoluci´on. Con σ=0.005, N(v)=15 se encuentra la suficiente precisi´on para aprender las caracter´ısticas principales para los p´ıxeles de background est´aticos.
Un ejemplo de la principales caracter´ısticas representadas para un p´ıxel
de background est´atico se muestra en la figura (4.4), donde se muestran los
histogramas para las caracter´ısticas de color y gradiente principales en T
c(s)
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
y T
e(s). El histograma de las caracter´ısticas de color muestra que s´olo los 2 primeros son colores principales para el background, y el histograma de gra- dientes muestra que los 6 primeros, excluyendo el cuarto, son los principales gradientes para el background.
Figura 4.4: Ejemplo de aprendizaje de las principales caracter´ısticas para un p´ıxel de backgrpund est´atico en una escena concurrida. La imagen de la izquierda muestra la posici´on del p´ıxel seleccionado. Las dos im´agenes de la derecha son los histogramas de los estad´ısticos de color y gradiente m´as importantes, donde la altura de una barra es p
tvi, la parte de luz de gris es p
tvi|ty el m´aximo de la parte de oscuridad de gris es p
vi
t-p
tvi|t. Los iconos que se muestran debajo de los histogramas corresponden a las caracter´ısticas de color y gradiente.
b) Caracter´ısticas para p´ıxeles de background din´amicos: Para p´ıxeles de background din´amicos asociados con objeto no estacionarios, las co-ocurrencias de color son usadas como sus caracter´ısticas din´amicas. Esto es porque la co-ocurrencia de color entre frames consecutivos es considerada adecuada para describir las caracter´ısticas din´amicas asociadas con objetos de back- ground no estacionarios. Dando un cambio entre frames del color c
(t−1)= [R
t−1, G
t−1, B
t−1]
Ta c
t= [R
t, G
t, B
t]
Ten el instante de tiempo t y el p´ıxel s(c
t6= c
(t−1)), el vector caracter´ıstico de co-ocurrencia de color es definido co- mo v = cc = [R
t−1, G
t−1, B
t−1, R
t, G
t, B
t]
T. De manera similar, una tabla de estad´ısticas para co-ocurrencia de color T
cc(s) es mantenida en cada p´ıxel. Sea I(s, t) = [I
R(s, t), I
G(s, t), I
B(s, t)]
Tla imagen de color entrante; el vector de co-ocurrencia de color cc es generado por medio de la cuantizaci´on de los com- ponentes de color a baja resoluci´on. Por ejemplo, mediante la cuantizaci´on de la resoluci´on de color a 32 niveles para cada componente y seleccionado N(cc)
=50, se obtendr´ıa una representaci´on caracter´ıstica principal buena para un
p´ıxel de background din´amico. Un ejemplo de la caracter´ıstica principal de
representaci´on con co-concurrencia de color para una imagen parpadeante
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
se muestra en la figura (4.5).Comparado con el espacio caracter´ıstico de co- ocurrencia de color de 32
6celdas, N (cc) = 50 implica que con un n´ umero muy peque˜ no de vectores caracter´ısticos, las caracter´ısticas principales son capaces de modelar los p´ıxeles de background din´amicos.
Figura 4.5: Ejemplo de aprendizaje de las principales caracter´ısticas para un p´ıxel de background din´amico. La imagen de la izquierda muestra la posici´on del p´ıxel seleccionado. La imagen de la derecha es el histograma de los estad´ısticos para las m´as importantes co-ocurrencias de color en T
cc(s), donde la altura de una de sus barras es el valor de p
tvi, la parte de luz de gris es p
tvi|ty el m´aximo de la parte de oscuridad de gris is p
vi
t-p
tvi|t. Los iconos que se muestran debajo del histograma corresponden a las caracter´ısticas de co-ocurrencia de color y gradiente. En la imagen el color cambia en blanco, azul oscuro y azul claro peri´odicamente.
II. Aprendizaje y actualizaci´on de las estad´ısticas para las caracter´ısticas principales
Dado que el marco background puede sufrir tanto cambios graduales co- mo repentinos, se proponen dos estrategias para aprender y actualizar las estad´ısticas para las caracter´ısticas principales.
A. Para cambios de background graduales
En cada instante de tiempo, si el p´ıxel s es identificado como un punto
est´atico, las caracter´ısticas de color c y gradiente e son usadas para su clasifi-
caci´on como foreground o background. De otra manera, se usa la caracter´ısti-
ca de co-ocurrencia de color cc. Asumamos que el vector caracter´ıstico v es
usado para clasificar el p´ıxel s en el tiempo t bas´andose en caracter´ısticas
principales aprendidas previamente. Entonces las estad´ısticas de los vectores
caracter´ısticos correspondientes en la tabla T
v(s) (v=c y e, o cc) son gradual-
mente actualizadas en cada instante de tiempo por:
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
p
t+1v(b) = (1 − α)p
tv(b) + αL
tbp
t+1vi= (1 − α)p
tvi+ αL
tvip
t+1vi|b= (1 − α)p
tvi|b+ α(L
tbL
tvi)
(4.11)
donde:
El ratio de aprendizaje α es un n´ umero positivo peque˜ no.
Y i=1,...,M(v).
En (4.11) L
tb= 1 significa que s es clasificado como un punto de back- ground en el tiempo t en la segmentaci´on final, de otra manera, L
tb= 0. De manera similar L
tvi= 1 significa que el vector ith de la tabla T
v(s) concuerda con el vector caracter´ıstico v, y de otra manera L
tvi= 0.
De la operaci´on de actualizaci´on anterior se deduce lo siguiente. Si el p´ıxel s es etiquetado como un punto de background en el tiempo t, p
t+1v(b) es incrementado ligeramente respecto a p
tv(b) debido a L
tb= 1. Adem´as, las probabilidades para el vector caracter´ıstico casado son tambi´en incremen- tadas debido a L
tvi= 1. Sin embargo, si L
tvi= 0, entonces las estad´ısticas para los vectores caracter´ısticos que no casan son decrementadas ligeramente.
Si no hay concordancia entre el vector caracter´ıstico v y los vectores en la tabla T
v(s), el vector M(v)th en la tabla es remplazado por un vector carac- ter´ıstico nuevo.
p
t+1vM(v)= α, p
t+1vM(v)|b= α, V
M(v)= v (4.12)
Si el p´ıxel s es etiquetado como un punto de foreground en el tiempo t, p
t+1v(b) y p
t+1vi|bson decrementados ligeramente con L
tb= 0. Sin embargo, el vector casado en la tabla p
t+1vies incrementado ligeramente.
Los elementos actualizados en la tabla T
v(s) son reclasificados en orden descendente con respecto a p
t+1vi, tal que la tabla mantendr´ıa los vectores caracter´ısticos M(v) m´as frecuentes y significantes observados en el p´ıxel s.
B. Para cambios de background repentinos
Acorde a (4.4), los estad´ısticos de las caracter´ısticas principales satisfacen:
CAP´ ITULO 4. ARQUITECTURA FUNCIONAL
N(v)
X
i=1
P
s(v
i) = P
s(b)
N(v)
X
i=1
P
s(v
i| b) + P
s(f )
N(v)
X
i=1
P
s(v
i| f ) (4.13)
Estas probabilidades son aprendidas gradualmente con operaciones des- critas por (4.11) y (4.12) en cada p´ıxel s. Cuando se produce un cambio de background repentino, la nueva apariencia del background pronto llega a ser dominante despu´es del cambio. Con la operaci´on respuesta (4.12),con la operaci´on de acumulaci´on gradual (4.11) y reordenando en cada paso de tiempo, las caracter´ısticas nuevas aprendidas ser´an gradualmente movidas a las primeras posiciones peque˜ nas en T
v(s). Despu´es de un tiempo de duraci´on, el t´ermino en la parte izquierda de (13) llega a ser grande (≈ 1) y el primer t´ermino en la parte derecha llega a ser muy peque˜ no debido a que las nuevas caracter´ısticas de background son clasificadas como foreground. Una nueva apariencia de background en s puede ser encontrada a partir de (4.6) y (4.13) si:
P
s(f )
N(v)
X
i=1
P
s(v
i| f ) =
N(v)
X
i=1
P
s(v
i) − P
s(b)
N(v)
X
i=1
P
s(v
i| b) > M 1 (4.14)
donde:
b: background anterior al cambio repentino.
f: nueva apariencia del background despu´es del cambio repentino.
El factor P
s(f ) previene errores causados por un peque˜ no n´ umero de caracter´ısticas de foreground. Usando la notaci´on en (4.7) y (4.8), la condici´on (4.14) llega a ser:
N(v)
X
i=1
p
tvi− p
tv(b)
N(v)
X
i=1