125
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA DEPARTAMENTO DE ELECTRÓNICA VALPARAÍSO-CHILE SISTEMA DE ANÁLISIS INTELIGENTE DE VIDEO PARA EL CONTROL NO INVASIVO DE ACCESO DE VEHÍCULOS EN UN RECINTO CERRADOÁLVARO JOSÉ COFRÉ PÉREZ MEMORIA DE TITULACIÓN PARA OPTAR AL TÍTULO DE INGENIERO CIVIL TELEMÁTICO PROFESORES GUÍA: MARCOS ZÚÑIGA PROFESOR CORREFERENTE: AGUSTÍN GONZÁLEZ ABRIL DE 2011

SISTEMA DE ANÁLISIS INTELIGENTE DE VIDEO … · Algoritmo de detección de color de un vehículo por análisis de histogramas en el espacio de color YCrCb. 82 5.4. Búsqueda de vehículos

Embed Size (px)

Citation preview

UNIVERSIDAD TÉCNICA FEDERICO SANTA

MARÍA

DEPARTAMENTO DE ELECTRÓNICA

VALPARAÍSO-CHILE

―SISTEMA DE ANÁLISIS INTELIGENTE DE

VIDEO PARA EL CONTROL NO INVASIVO

DE ACCESO DE VEHÍCULOS EN UN

RECINTO CERRADO‖

ÁLVARO JOSÉ COFRÉ PÉREZ

MEMORIA DE TITULACIÓN PARA OPTAR AL TÍTULO DE

INGENIERO CIVIL TELEMÁTICO

PROFESORES GUÍA: MARCOS ZÚÑIGA

PROFESOR CORREFERENTE: AGUSTÍN GONZÁLEZ

ABRIL DE 2011

1

“SISTEMA DE ANÁLISIS INTELIGENTE DE VIDEO PARA EL

CONTROL NO INVASIVO DE ACCESO DE VEHÍCULOS EN UN

RECINTO CERRADO”

MEMORIA DE TITULACIÓN PARA OPTAR AL TÍTULO DE INGENIERO

CIVIL TELEMÁTICO

ÁLVARO JOSÉ COFRÉ PÉREZ

PROFESOR GUÍA: MARCOS ZÚÑIGA

Abril de 2011

Resumen

La detección de vehículos es motivación para distintos campos de aplicación, por ejemplo:

control de tráfico, control de acceso y planeación de caminos. El siguiente trabajo trata sobre

el estado del arte, el análisis, diseño e implementación de un sistema de análisis inteligente de

video para el control no invasivo de acceso de vehículos en un recinto cerrado. Las

principales ventajas de este trabajo son: es automático en la detección de vehículos, entrega

distintos algoritmos para resolver el problema del conteo y el reconocimiento automático del

color de un vehículo, entrega medidas de fiabilidad para clasificar los algoritmos y

contribuye con ofrecer una interfaz que resume la búsqueda de los vehículos detectados.

Los cuatro algoritmos creados fueron testeados bajo distintas condiciones de iluminación y

sus resultados prueban la eficacia y sensibilidad de éstos. El mejor algoritmo de conteo

demuestra que existe una precisión superior al 98% y una sensibilidad superior al 91%,

mientras que, el mejor algoritmo para la detección de color muestra una precisión de un

93,8%. De este trabajo se puede concluir que se cumplió el objetivo de crear un sistema

confiable para el conteo y extracción de características de vehículos pero es posible, mediante

perfeccionamientos a los algoritmos, lograr resultados mejores.

Palabras claves:

Análisis inteligente de video, seguimiento de vehículos, medidas de fiabilidad, CCTV,

conteo de vehículos, detección de color.

2

“SISTEMA DE ANÁLISIS INTELIGENTE DE VIDEO PARA EL

CONTROL NO INVASIVO DE ACCESO DE VEHÍCULOS EN UN

RECINTO CERRADO”

MEMORIA DE TITULACIÓN PARA OPTAR AL TÍTULO DE INGENIERO

CIVIL TELEMÁTICO

ÁLVARO JOSÉ COFRÉ PÉREZ

PROFESOR GUÍA: MARCOS ZÚÑIGA

Abril 2011

Abstract

The detection of vehicles is motivated for different application fields, for example, traffic

control, access control and planning of roads. The following work is about the state of the art,

analysis, design and implementation of an intelligent video analysis for noninvasive control

vehicle access in an enclosed area. The main advantages of this work are that it is automatic

detection of vehicles, provides various algorithms for solving the problem of counting and

automatic recognition of a vehicle color, delivery reliability measures for classifying

algorithms and contributes to provide an interface resume the search of vehicles detected.

The four algorithms created were tested under different lighting conditions and the results

prove the precision and sensitivity of these. The best algorithm of counting shows that there

is a precision above 98% and a sensitivity above 91%, whereas the best algorithm for the

detection of color shows an accuracy of 93.8%. In this work we can conclude that the

objective of creating a reliable system for counting and feature extraction of vehicles has

been achieved, but it is still possible to improve the algorithms for achieving better results.

KeyWords:

Video Analysis, vehicule tracking, reliability measures, CCTV, vehicle counting, color

detection.

3

Índice

1. Introducción 12

1.1. Hipótesis y objetivos 13

1.1.1. Hipótesis de trabajo. 13

1.1.2. Preguntas, objetivos generales y contribuciones. 14

1.2. Acercamiento a una solución. 14

1.3. Estructura del documento. 15

2. Estado del Arte. 17

2.1. Representación de Objetos. 18

2.1.1. Representación de objetos genéricos. 18

2.1.2. Representación de objetos específicos 20

2.2. Representación de vehículos. 22

2.3. Seguimiento a múltiples objetos (MTT). 25

2.3.1. Seguimiento Multi-Hipótesis (MHT) 25

2.3.2. Método de Monte Carlo y derivados. 27

2.3.3. Seguimiento por apariencia. 28

2.4. Modelado automático de escenas. 29

2.4.1. Definiciones para el modelado automático de escenas. 30

2.5. Análisis automático de actividades. 31

2.6. Análisis del color en imágenes digitales. 34

2.7. Productos disponibles. 35

2.7.1. MVI – Vehicle detection. 35

2.7.2. Autoscope solo terra. 35

2.7.3. VisioWay OpenCounter. 36

2.8. Discusión y contribuciones. 37

3. Requerimientos 39

3.1. Requerimientos del usuario. 39

3.2. Requerimientos funcionales. 39

4

3.3. Requerimientos no funcionales. 40

3.4. De diseño. 41

4. Análisis y diseño. 43

4.1. Planificación y elaboración. 43

4.1.1. Funciones del Sistema extendido 44

4.1.2. Atributos del sistema 44

4.2. Casos de uso. 44

4.2.1. Caso de uso de alto nivel 44

4.2.2. Diagrama de casos de uso. 45

4.2.3. Curso normal de eventos. 46

4.3. Arquitectura del sistema. 47

4.4. Modelo conceptual. 48

5. Implementación 49

5.1. Interfaz de usuario 49

5.1.1. Ventana principal. 49

5.1.2. Configuración. 51

5.1.3. Búsqueda de vehículos 53

5.2. Algoritmos de conteo automático. 54

5.2.1. Algoritmo de conteo en zonas de actividad. 54

5.2.2. Algoritmo de conteo por seguimiento. 60

5.3. Algoritmos de análisis del color. 74

5.3.1. Algoritmo de detección de color por bandas en espacio HSV. 74

5.3.2. Algoritmo de detección de color de un vehículo por análisis de histogramas en

el espacio de color YCrCb. 82

5.4. Búsqueda de vehículos. 88

5.4.1. Búsqueda por fecha y hora. 88

5.4.2. Búsqueda por acceso. 89

5.4.3. Búsqueda por color. 89

6. Conclusiones 90

6.1. Acerca de los algoritmos desarrollados. 90

5

6.2. Acerca de las contribuciones que realiza este trabajo. 91

6.3. Acerca de las limitaciones y futuros trabajos. 92

7. Glosario 93

8. Bibliografía 95

Anexo A: Fiabilidad de los algoritmos de conteo. 101

GroundTruth 101

Resultados del algoritmo de conteo por zonas de actividad. 106

Parámetros de testeo. 106

Resultados de la evaluación 107

Resultados del algoritmo de conteo por segmentación. 108

Resultados de la evaluación 108

Anexo B: Fiabilidad de los algoritmos de detección de color. 113

GroundTruth. 113

Resultados del algoritmo de detección de color por bandas. 114

Resultados de la evaluación. 114

Resultados del algoritmo de detección de color por medio de histogramas. 115

Resultados de la evaluación. 115

Anexo C: Estudios posteriores 117

Aprender caminos de forma automática. 117

Anexo D: Teoría del color. 121

El color en la visión humana 121

El color en las imágenes digitales. 121

Espacios de color 122

6

Índice de imágenes.

Figura 1: Ejemplo representación basada en puntos para una aplicación de radar, Fuente:

(Arambel, Silver, Krant, Antone, & Start, 2004) ................................................................. 19

Figura 2: Representación por forma geométrica. (a) Objetos representados por rectángulos,

(b) objetos representados por elipses. Fuente: (Cucchiara, Prat, & R.Vezzani, 2005b) y

(Comaniciu, Ramesh, & Andmeer, 2003) ........................................................................... 19

Figura 3: Representaciones en 3 dimensiones. Fuente: (Yoneyama, Yeh, & Kuo, 2005) ..... 20

Figura 4: Active Shape Models (Cootes & Taylor, 2004). (a) Inicial, (b) Después de 5

iteraciones, (c) Convergencia. ............................................................................................ 21

Figura 5: Esqueleto de una imagen binaria.......................................................................... 22

Figura 6: Detección de vehículos en 2D. Imagen satelital donde se aprecian los vehículos

detectados. Fuente: (Leitloff, Hinz, & Stilla, 2006) ............................................................. 23

Figura 7: Detección de vehículos en 3D. (a) De los bordes del vehículo se construye un

modelo tridimensional. (b)Modelos de vehículos posibles para ser comparados. Fuente:

(Koller, Daniilidis, & Nagel, 1993) .................................................................................... 24

Figura 8: Diagrama de bloques para el algoritmo de seguimiento por apariencia. ................ 29

Figura 9: (a) las zonas de interés están señaladas por elipses de color, (b) Los caminos de

actividad están señalados por líneas entre las zonas de interés. ............................................ 30

Figura 10: Análisis del perfil de velocidad. ......................................................................... 32

Figura 11: Análisis de detecciones anormales. .................................................................... 33

Figura 12: Límites de los planos YUV. Fuente: (Jinxue, Yang, Wang, & Hua, 2009). ......... 34

Figura 13: MVI vehicle detection. ...................................................................................... 35

Figura 14: Autoscope solo terra .......................................................................................... 36

Figura 15: VisioWay OpenCounter .................................................................................... 36

Figura 16: Diagrama de casos de usos del SW. ................................................................... 45

Figura 17: Arquitectura del sistema a implementar. ............................................................ 47

Figura 18: Modelo conceptual del SW ................................................................................ 48

Figura 19: Ventana inicial del SW. ..................................................................................... 50

Figura 20: Ventana principal del SW en funcionamiento .................................................... 51

Figura 21: Configuración de datos de las Cámaras. ............................................................. 52

Figura 22: Configuración de las áreas máscaras y zonas activas para cada cámara. ............. 52

Figura 23: Configuración de la base de datos. ..................................................................... 53

7

Figura 24: Interfaz de búsqueda de vehículos...................................................................... 54

Figura 25: Diagrama de bloques de la etapa de configuración y ejecución del algoritmo de

conteo en zonas de actividad. ............................................................................................. 55

Figura 26: Interfaz de usuario para la configuración de las zonas de actividad .................... 56

Figura 27: Imágenes de los pasos 1,2 y 3 hechos a la imagen original. ................................ 57

Figura 28: Diagrama de flujo para los pasos 4 y 5. .............................................................. 58

Figura 29: Falsos positivos ................................................................................................. 59

Figura 30: Diagrama de bloques para la etapa de configuración del algoritmo de conteo por

segmentación ..................................................................................................................... 61

Figura 31: Diagrama de bloques para la etapa de ejecución del algoritmo de conteo por

segmentación ..................................................................................................................... 63

Figura 32: Diagrama de bloques del filtro morfológico correspondiente al método 1 ........... 64

Figura 33: Imágenes del método 1. (a) Imágenes de entrada, (b) Imágenes resultantes luego

del paso 3, (c) Imágenes luego de aplicar filtros morfológicos, (d) Imágenes resultantes

después del tracking. .......................................................................................................... 64

Figura 34: Diagrama de bloques del filtro morfológico correspondiente al método 2 ........... 65

Figura 35: Imágenes del método 2. (a) Imágenes de entrada, (b) Imágenes resultantes luego

del paso 3 (c) Imágenes luego de aplicar filtros morfológicos, (d) Imágenes resultantes

después del tracking. .......................................................................................................... 65

Figura 36: Diagrama de bloques del filtro morfológico correspondiente al método 3 ........... 66

Figura 37: Imágenes del método 3. (a) Imágenes de entrada, (b) Imágenes dilatadas de FG del

método 1, (c) Imágenes luego del AND entre la imagen dilatada y el FG resultante del

método 2, (d) Imágenes después del tracking. ..................................................................... 67

Figura 38: Análisis de la trayectoria de un vehículo. (a) Imágenes originales, (b) Imágenes

luego del tracking, (c) Imágenes con llenado de bandas. ..................................................... 69

Figura 39: Dificultades con la iluminación. (a) Imagen orginal, (b) Imagen resultante de la

segmentación, (c) Detalle de la separación del vehículo ...................................................... 70

Figura 40: Histogramas H.S y V para la entrada de un vehículo de color rojo. .................... 74

Figura 41: Diagrama de bloques de la etapa de análisis y configuración del algoritmo de

detección de color por bandas. ............................................................................................ 75

Figura 42: Histogramas de vehículos con distintas condiciones lumínicas. (a) luz día-

discontinua, (b) luz día-continua, (c) luz atardecer, (d) luz incandescente............................ 75

Figura 43: (a) Cono HSV (b) Bandas de color para el cono HSV ........................................ 76

8

Figura 44: Etapa de ejecución correspondiente a los pasos 1,2 y 3 del algoritmo de detección

de color por bandas. ........................................................................................................... 76

Figura 45: Etapa de ejecución correspondiente a los pasos 4 y 5 del algoritmo de detección de

color por bandas. ................................................................................................................ 77

Figura 46: Rellenado de áras. (a) Imagen original, (b) Detección de contornos, (c) Contorno

rellenado ............................................................................................................................ 77

Figura 47: Imágenes de un vehículo luego de pasar los pasos 1, 2 y 3. ................................ 78

Figura 48: Porcentajes de color para cada vehículo. (a) Casos correctos en posición 1, (b)

Casos correctos en posición 2, (c) Casos correctos en posición 3. ....................................... 79

Figura 49: (a) frame de entrada del algoritmo, (b) máscara FG_FILL, (c) Histograma 2D de la

imagen en YCrCb .............................................................................................................. 82

Figura 50: Etapa de configuración del algoritmo de detección de color por histogramas ...... 83

Figura 51: Etapa de ejecución correspondiente a los pasos 1,2, y 3 del algoritmo de detección

de color por histogramas. ................................................................................................... 84

Figura 52: Imágenes del frame, las máscaras y los histogramas de un vehículo ingresando. 86

Figura 53: Etapa de ejecución correspondiente a los pasos 4 y 5 del algoritmo de detección

de color por bandas. ........................................................................................................... 86

Figura 54: Interfaz para la búsqueda de vehículos. .............................................................. 89

Figura 55: Capturas del video 1. ........................................................................................102

Figura 56: Capturas del video 2 .........................................................................................102

Figura 57: Capturas del video 3 .........................................................................................103

Figura 58: Capturas del video 4 .........................................................................................103

Figura 59: Capturas del video 5 .........................................................................................104

Figura 60: Capturas del video 6 .........................................................................................104

Figura 61: Capturas del video 7 .........................................................................................105

Figura 62: Capturas del video 8 .........................................................................................105

Figura 63: Capturas del video 9 .........................................................................................106

Figura 64: Detección automática de caminos. (a) Resultado de seguimiento. (b) Trayectorias

en una escena real. (c) Resultado de aprender caminos de forma automática. Fuente: (Hu W. ,

Xiao, Fu, Xie, Tan, & S, 2006) ..........................................................................................118

Figura 65: Modelados de caminos. (a) Ruta en su totalidad (b) Ruta de sub-trazados .........120

Figura 66: (a) Cubo RGB, (b) Representación aditiva de los colores primarios y secundarios.

Fuente: (a) wikpedia.org (b) Propia ...................................................................................122

9

Figura 67: (a) Cono HSL, (b) Doble Cono HSL. ................................................................123

Figura 68: (a) Ejemplo plano UV, con valor Y=0,5. (b) Ejemplo plano CrCb, con valor

Y=0,5. Fuente: Wikipedia.org ...........................................................................................124

10

Índice de tablas

Tabla 1: Términos y definiciones del seguimiento de objetos. ............................................. 17

Tabla 2: Definiciones para la actualización de fondo por Gaussianas .................................. 61

Tabla 3: Resultados de los TP, FN, FP y TN para todos los métodos del algoritmo de conteo

por seguimiento.................................................................................................................. 69

Tabla 4: Resultados de la Precisión, Sensibilidad y F-Score para todos los métodos del

algoritmo de conteo por seguimiento .................................................................................. 70

Tabla 5: Probabilidad de acierto de color en la posición buscada. ....................................... 79

Tabla 6: GroundTruth para los videos de testing ................................................................101

Tabla 7: GroundTruth total de los videos de testing ...........................................................101

Tabla 8: Parámetros de testeo para el algoritmo de conteo por zonas de actividad ..............106

Tabla 9: TP, FN, FP y TN para el algoritmo de conteo por zonas de actividad. ..................107

Tabla 10: TP, FN, FP y TN totales para el algoritmo de conteo por zonas de actividad. ......107

Tabla 11: Medidas de fiabilidad para el algoritmo de conteo por zonas de actividad...........107

Tabla 12: Medidas de fiabilidad totales para el algoritmo por zonas de actividad ...............108

Tabla 13: TP, FN, FP y TN para el método 1 del algoritmo de conteo por seguimiento. .....108

Tabla 14: TP, FN, FP y TN totales para el método 1 del algoritmo de conteo por

seguimiento. ......................................................................................................................109

Tabla 15: TP, FN, FP y TN para el método 2 del algoritmo de conteo por seguimiento. .....109

Tabla 16: TP, FN, FP y TN totales para el método 2 del algoritmo de conteo por

seguimiento. ......................................................................................................................109

Tabla 17: TP, FN, FP y TN para el método 3 del algoritmo de conteo por seguimiento. .....110

Tabla 18: TP, FN, FP y TN totales para el método 3 del algoritmo de conteo por

seguimiento. ......................................................................................................................110

Tabla 19: Resultados de la Precisión, Sensibilidad y F-Score para el método 1 del algoritmo

de conteo por segmentación ..............................................................................................110

Tabla 20: Resultados Totales de la Precisión, Sensibilidad y F-Score para el método 1 del

algoritmo de conteo por segmentación ...............................................................................111

Tabla 21: Resultados de la Precisión, Sensibilidad y F-Score para el método 2 del algoritmo

de conteo por segmentación ..............................................................................................111

Tabla 22: Resultados totales de la Precisión, Sensibilidad y F-Score para el método 2 del

algoritmo de conteo por segmentación ...............................................................................111

11

Tabla 23: Resultados de la Precisión, Sensibilidad y F-Score para el método 3 del algoritmo

de conteo por segmentación ..............................................................................................112

Tabla 24: Resultados totales de la Precisión, Sensibilidad y F-Score para el método 3 del

algoritmo de conteo por segmentación ...............................................................................112

Tabla 25: Videos y tipo de iluminación .............................................................................113

Tabla 26: Colores de los vehículos para los videos de testing. ............................................113

Tabla 27: Posición del color real luego del algoritmo. ........................................................114

Tabla 28: Porcentaje del color real en la imagen. ...............................................................114

Tabla 29: TP y FP para el algoritmo de detección de color por bandas. ..............................115

Tabla 30: Precisión del algoritmo de detección de color por bandas. ..................................115

Tabla 31: TP y FP para el algoritmo de detección de color por medio de histogramas. .......116

Tabla 32: Precisión para el algoritmo de detección de color por medio de histogramas.......116

Tabla 33: Técnicas utilizadas en Normalización ................................................................117

Tabla 34: Técnicas, descripción y trabajos en Reducción de dimensión .............................118

12

1. Introducción

Uno de los problemas más desafiantes de la seguridad en recintos privados es la

interpretación y almacenamiento correcto de eventos capturados en un Circuito Cerrado de

TV (CCTV). Actualmente, el uso de tecnologías para el control de seguridad se masifica a

niveles sorprendentes, gracias a la baja de costos y el vertiginoso desarrollo de los

dispositivos utilizados, sumado al sentimiento de inseguridad provocado por las altas tasas

de delincuencia y terrorismo. Los sistemas de seguridad utilizados actualmente requieren de

intervención humana y al incrementar dramáticamente el número de cámaras (que

monitorean accesos vehiculares) la supervisión simultánea resulta imposible para la

comprensión humana.

El objetivo de esta tesis consiste en desarrollar un software (SW) de análisis de video que

integre múltiples cámaras de video vigilancia para extraer características que permitan

registrar e identificar la entrada y salida de vehículos en un recinto cerrado, en forma

no invasiva.

Actualmente el número de investigaciones y de SW que tratan el reconocimiento de

características de vehículos en cámaras de video vigilancia es variado, tanto en su contenido

como en los resultados obtenidos. Por ejemplo, el SW MVI Vehicle Detection (Wu & Gu,

2009) es capaz de obtener la velocidad de un vehículo y contar la cantidad de vehículos que

transitan una vía con una alta precisión pero no es posible conectar más de una cámara en

dicho SW y tampoco analiza características como el color o la forma del vehículo. En el

ámbito comercial VISIOWAY OPENCOUNTER es un SW que sólo es capaz de contar

vehículos que se encuentran en una zona de interés, posee un una interfaz de usuario para su

configuración pero es deficiente (VisioWay OpenCounter).

El trabajo actual centra su atención en desarrollar un SW que contenga algoritmos capaces de

contar vehículos y almacenar información como su hora, fecha y color. El SW debe cumplir

con la posibilidad de conectar múltiples cámaras y realizar búsquedas de eventos de interés.

Además, el SW debe servir como una plataforma para nuevos algoritmos que se desarrollen.

Entonces, como objetivos específicos de esta memoria se pueden nombrar:

13

1. Desarrollar algoritmos capaces de detectar vehículos y extraer características que

permitan su identificación en distintos ambientes con parámetros fáciles de

configurar.

2. Desarrollar una forma fácil para buscar un vehículo con ciertas características en

eventos de ingresos y salida pasados. Actualmente un funcionario revisa un video

continuo buscando un vehículo de ciertas características.

3. Emitir alertas cuando exista un evento de interés en el campo visual de las cámaras.

1.1. Hipótesis y objetivos

1.1.1. Hipótesis de trabajo.

El trabajo considera las siguientes suposiciones:

Cámaras fijas: El SW considera que las cámaras están empotradas y su movimiento

es nulo. Movimientos mínimos (como una oscilación debido al viento) podrían

afectar el funcionamiento de los algoritmos de detección de vehículos, arrojando

resultados imprecisos.

Cámaras con acceso IP y captura por medio de mjpg (motion jpg): El SW fue

testeado utilizando cámaras de vigilancia AXIS 211. Estas cámaras poseen una

dirección IP dentro de la red privada y su acceso está dado por la siguiente estructura:

http://user:pass@ipcamera/dir.mjpg.

Configuración correcta de la red y BW suficiente: En caso que la red se encuentre

limitada por un firewall o un router mal configurado, no se podría lograr la captura de

imágenes. También, un ancho de banda insuficiente podría ver denigrada la

capacidad del SW o perder intervalos de tiempo importantes en la captura de las

imágenes.

Poder de procesamiento de hardware suficiente: La ejecución del SW en

computadores con hardware insuficiente o sobrecargado impediría una buena

experiencia de uso.

Condiciones lumínicas suficientes: Las imágenes de las cámaras deben ser nítidas y

visibles al ojo humano. Una falta luminiscencia obviamente implicará que el análisis

arroje resultados poco satisfactorios.

14

1.1.2. Preguntas, objetivos generales y contribuciones.

Este trabajo intenta responder varias preguntas como:

1) ¿Se puede disminuir el tiempo de búsqueda de un vehículo por medio del SW en

comparación con la búsqueda manual?

2) ¿Se pueden obtener datos de los vehículos que faciliten su búsqueda e identificación en un

recinto privado?

3) ¿Los resultados obtenidos por el SW son acordes a los reales?

Para responder estas preguntas, el trabajo actual propone dos objetivos generales:

Se propone desarrollar métodos computacionales para la obtención de datos de

imágenes en tiempo real desde múltiples cámaras de video vigilancia.

Se propone desarrollar una interfaz de usuario capaz de realizar búsquedas de

situaciones de interés y alertar en tiempo la ocurrencia de algún evento.

De esta forma este trabajo contribuye con:

1. Desarrollar una nueva herramienta para la búsqueda de acontecimientos acaecidos en

un CCTV.

2. Desarrollar un sistema de alerta para casos de interés en un CCTV.

3. Desarrollar un conjunto de librerías que puedan ser utilizadas para otras funciones de

la video-vigilancia en un CCTV.

1.2. Acercamiento a una solución. Para lograr el objetivo de esta tesis se deben solucionar una serie de tareas:

Primero, obtener capturas de las diversas cámaras que posea el CCTV en formato de

video.

Segundo, desarrollar una interfaz de usuario que permita la configuración de todas

las cámaras presentes en el CCTV, además, que facilite la consulta de vehículos en la

base de datos y que emita alertas cuando existan eventos de interés.

Tercero, crear algoritmos que puedan contar vehículos y describir su movimiento (de

entrada o salida).

15

Cuarto, crear algoritmos que puedan detectar características de los vehículos como el

color.

Quinto, realizar pruebas que clasifiquen el grado de confiabilidad de este sistema.

1.3. Estructura del documento. Primero, el capítulo 2 describe el estado del arte relacionado a esta tesis. Este capítulo tiene

por objetivo comunicar las principales tecnologías que se utilizan en el análisis inteligente de

video y que son útiles para desarrollar el sistema propuesto. Además, se entregan discusiones

y las contribuciones que entrega este trabajo respecto a lo estudiado en el capítulo.

Segundo, el capítulo 3 trata sobre los requerimientos que debe contar el sistema a desarrollar.

El objetivo de definir los requerimientos es de poner límites y condiciones a lo que contendrá

el sistema. Los requerimientos a tratar son: los de usuario, los funcionales, los no funcionales

y los de diseño.

Tercero, el capítulo 4 trata sobre el análisis y diseño del sistema a desarrollar. La fase de

análisis y diseño da prioridad al conocimiento de los requerimientos, los conceptos y las

operaciones relacionadas con el sistema. Los tópicos a tratar en este capítulo son: las

funciones del sistema y sus atributos, los casos de uso como diagramas y ampliados, el curso

normal de eventos, la arquitectura del sistema y el modelo conceptual.

Cuarto, el capítulo 5 trata sobre la implementación del sistema. La implementación tiene por

objetivo describir la confección y funcionamiento de los principales componentes

desarrollados para cumplir el sistema propuesto. Los componentes a analizar son: la interfaz

de usuario, los algoritmos de conteo automático y de análisis de color y la búsqueda de

vehículos. Para el caso de de cada algoritmo se analiza rigurosamente sus etapas de

configuración y ejecución, se exponen los resultados obtenidos en la fase de testing y se

nombran las dificultades y limitantes que se tuvieron que enfrentar.

Quinto, el capítulo 6 trata sobre las conclusiones obtenidas en esta tesis. Se separa en 3

secciones que concluyen sobre: los algoritmos desarrollados, las contribuciones y sobre las

limitaciones y futuros trabajos que posee esta tesis.

Sexto, en el capítulo 7 se presenta un glosario con los términos y definiciones más

importantes utilizados durante esta tesis.

16

Finalmente, en el capítulo 8 se entrega una bibliografía de todas las referencias utilizadas a lo

largo de esta memoria de tesis.

17

2. Estado del Arte.

La sociedad rápidamente se está acostumbrando al uso de cámaras en diversas aplicaciones,

tales como: el monitoreo de tráfico, vigilancia de vehículos, detección de eventos

sospechosos, etc. Los datos que son recopilados por las cámaras requieren una forma

eficiente de analizar los datos sin depender de la intervención humana. Entender

automáticamente un video es un problema desafiante, porque involucra la extracción de

información visual relevante, la representación de ésta y como mostrar lo entendido por un

algoritmo.

Seguir un objeto específico y diferenciarlo del resto supone una barrera tecnológica relevante.

Actualmente, estas barreras se están rompiendo gracias al interés que existen por generar

aplicaciones que sean controladas con el análisis inteligente de video. Aplicaciones como la

realidad aumentada, que por ejemplo se emplea en videojuegos, ganan terreno día a día.

Aunque todas estas aplicaciones poseen diferencias, convergen en ciertas tecnologías de

interés que se están gestando o continuamente optimizando. Para desarrollar el propósito de

esta tesis, es importante conocer algunas técnicas, mencionar sus aplicaciones y trabajos

relacionados.

Para comprender mejor los tópicos tratados en esta tesis, es importante tener en consideración

los términos explicados en la Tabla 1, puesto que son utilizados en la mayoría de las

aplicaciones que conciernen al análisis inteligente de video. En el capítulo 7 se encuentra un

glosario que tiene por objetivo contener la mayoría de los significados de las expresiones

utilizadas en esta memoria.

Tabla 1: Términos y definiciones del seguimiento de objetos.

Término Definición

Comportamiento Descripción de un conjunto de actividades y eventos en un contexto

específico.

Actividad Una acción específica realizada por un objeto.

Evento La ocurrencia de una actividad durante un intervalo de tiempo dado.

Camino/Trayectoria Una secuencia de atributos espacio temporales obtenidos luego de realizar seguimiento a un solo objeto.

Ruta Es un conjunto de caminos o trayectorias que realizan objetos por iguales

zonas de interés.

18

La estructura de este capítulo se compone de las siguientes secciones. Primero, en 2.1 se

estudia la representación de objetos (genéricos y específicos) en imágenes y/o videos.

Tercero, en 2.2 trata sobre la forma de representar vehículos. Cuarto, en 2.3 se explora el

seguimiento de múltiples objetos con técnicas como: multi-hipótesis, el método de Monte

Carlo y sus derivados y el seguimiento por apariencia. Quinto, en 2.4 se estudia el modelado

automático de escenas que permite configurar actividades de forma automática. Sexto, en 2.5

se dan a conocer diferentes tipos de comportamiento y actividades que pueden ser de interés

luego de realizar el modelado automático. Séptimo, en 0 se estudian algunos métodos para el

reconocimiento del color de objetos en imágenes digitales. Octavo, se presentan productos

disponibles que realizan tareas similares a la propuesta de esta tesis. Finalmente, en 2.8 se

exponen discusiones y contribuciones de esta tesis.

2.1. Representación de Objetos. Esta sección explora diferentes representaciones de objetos utilizadas en el procesamiento

digital de video e imágenes. Se analizan modelos de objeto genéricos y específicos. Respecto

a los objetos genéricos se estudia la representación basada en puntos y con formas

geométricas. En los objetos específicos se analiza la representación basada en contornos y

por esqueletos.

2.1.1. Representación de objetos genéricos.

Las representaciones de objetos genéricos dan una descripción general de un objeto en una

imagen para ser entendido por un sistema digital. Las ventajas de estas representaciones son:

su capacidad de describir varias clases de objetos con el mismo modelo o algoritmo y así

también su rendimiento en el tiempo de procesamiento, mientras que, su principal desventaja

es la falta de precisión.

Estas representaciones se pueden clasificar como:

1) Representación basada en puntos: El objeto es representado como un simple punto. Esta

representación es idónea para seguir objetos que ocupan pequeñas regiones en una imagen.

Tal es el caso de aplicaciones de radar, en (Arambel, Silver, Krant, Antone, & Start, 2004),

se utiliza el punto como representación para el seguimiento de múltiples objetos en un

sistema de radar, como se ilustra en la Figura 1.

19

Figura 1: Ejemplo representación basada en puntos para una aplicación de radar, Fuente: (Arambel,

Silver, Krant, Antone, & Start, 2004)

2) Forma geométrica en 2D: Consiste en encerrar el objeto por medio de una representación

en dos dimensiones, como cuadrados o circunferencias. Existen diferentes tipos de formas

geométricas, por ejemplo: en (Cucchiara, Prat, & R.Vezzani, 2005b) los objetos son

representados como un rectángulo (Figura 2a), mientras que en (Comaniciu, Ramesh, &

Andmeer, 2003) son representados como una elipse (Figura 2b).

Figura 2: Representación por forma geométrica. (a) Objetos representados por rectángulos, (b) objetos

representados por elipses. Fuente: (Cucchiara, Prat, & R.Vezzani, 2005b) y (Comaniciu, Ramesh, &

Andmeer, 2003)

3) Forma geométrica en 3D: Consiste en encerrar al objeto en una figura tridimensional.

Existen diferentes tipos de representaciones de formas geométricas en 3D, por ejemplo, en

20

(Isard & Marccormick, 2000), (Kelly, O'Connor, & Smeaton, 2006) el seguimiento de

peatones se representa con forma de cilindros. En (Lai, Fung, & Yung, 2001) y

(Yoneyama, Yeh, & Kuo, 2005) los vehículos son representados como paralelepípedos

(Figura 3). La ventaja de esta representación respecto a la anterior es que tiene un mayor

grado de precisión, pero su principal desventaja es que implica un mayor procesamiento

respecto a las formas geométricas en dos dimensiones.

Figura 3: Representaciones en 3 dimensiones. Fuente: (Yoneyama, Yeh, & Kuo, 2005)

2.1.2. Representación de objetos específicos

La representación de objetos específicos, genera una descripción aproximada de la forma de

un objeto conocido. La mayor ventaja de utilizar esta representación es la precisión en la

descripción del objeto, mientras que, su mayor desventaja es la incapacidad de describir otros

tipos de objetos en la escena. Otra desventaja es el alto tiempo de procesamiento que implica

realizar este tipo de análisis porque se necesita encontrar los bordes o el esqueleto del objeto.

Estas representaciones se pueden clasificar como:

1) Representación basada en contorno: Este tipo de representación define el límite o borde

de un objeto. La región dentro del contorno es llamada silueta del objeto (Yilmaz, Li, &

Shah, 2204). La velocidad depende del método de cálculo y el detalle en el contorno.

Posee la ventaja de tener alta calidad y precisión. La representación puede ser por medio

de los píxeles de borde, por puntos representativos o por puntos parametrizados. En cuanto

al aprendizaje de un contorno se pueden nombrar los siguientes métodos:

a) Método de modelo de forma estadística: Este método funciona en caso de tener un

conjunto de contornos de un objeto, se construyen distintos modelos para luego poder

21

encontrar nuevos ejemplos en la imagen. El entrenamiento de estos modelos se lleva a

cabo mediante un análisis de Procrustes que homogenizan el contorno mediante un

vector de 2n elementos. La forma para encontrar nuevos ejemplos es por medio de los

modelos de forma activa (Active Shape Models), estos son modelos se deforman

iterativamente para ajustarse a un ejemplo del objeto en una nueva imagen (Cootes &

Taylor, 2004) (Figura 4).

Figura 4: Active Shape Models (Cootes & Taylor, 2004). (a) Inicial, (b) Después de 5 iteraciones, (c)

Convergencia.

b) Método de modelos de contorno activo (Snakes): Estos modelos sirven para

encontrar el contorno desde una imagen ruidosa. Busca minimizar la energía asociada

al contorno actual. La energía es modelada como , donde:

i) La energía externa ( es mínima cuando la snake está en el borde del objeto. El

método más directo es dar valores bajos cuando alrededor del contorno alcanza su

valor peak.

ii) La energía interna es mínima cuando la snake tiene una forma relevante

considerando la forma del objeto observado. El método más directo es asignar alta

energía a contornos muy estirados y de muy alta curvatura.

El modelo de forma activa es una versión discreta de éste método, tomando ventaja del

modelo de distribución de puntos para restringir el rango de la forma a un dominio

explícito aprendido del conjunto de aprendizaje.

2) Representación por esqueletos: Un esqueleto intenta representar la forma de un objeto

con un número relativamente pequeño de píxeles y además es una operación morfológica.

22

De esta forma, todos los píxeles del esqueleto son estructuralmente parecidos a la imagen

original, pero presentan información crucial sobre la forma de la cual se está analizando.

La posición, orientación y longitud de las líneas del esqueleto se corresponden con

aquellas equivalentes de la imagen original. Entonces, la tarea de sacar características de

una imagen queda simplificada al obtener su esqueleto. El esqueleto puede ser obtenido

aplicando una transformación a la silueta de éste (Ballard & Brown, 1982), pero requiere

mucho tiempo de procesamiento. Otra forma es calcular un esqueleto morfológico

estadístico para clasificar los objetos desconocidos y estimar su orientación en 3

dimensiones. Luego se comprara el esqueleto calculado con otros guardados en una base

de datos. Como ejemplo, la Figura 5 muestra un objeto binarizado (Figura 5-a) y su

esqueleto (Figura 5-b), el esqueleto obtenido es similar una espada y es característico para

objetos de forma similar.

Figura 5: Esqueleto de una imagen binaria

2.2. Representación de vehículos. En esta sección se aborda el paradigma de la representación de vehículos, que es una

representación de un objeto específico. Como trabajos que abordan estos tipos de

representación se pueden nombrar:

1) Representación de vehículos en 2D: En el trabajo de (Leitloff, Hinz, & Stilla, 2006) se

desarrolla un algoritmo que automáticamente detecta vehículos desde imágenes satelitales

para el conteo de vehículos. Esta detección se logra por medio de tres pasos. Primero, a

partir de una imagen satelital se detectan automáticamente las calles utilizando un sistema

de información de localización de carreteras (GIS). Segundo, se aplican filtros y se

obtienen colas de vehículos. Tercero, se determina el ancho de la cola para distinguir y

23

separar las dos vías de la calle y el contraste de la cola porque las diferencias de contraste

señalan las regiones donde se encuentra cada vehículo. Finalmente, se intenta encontrar la

posición de cada uno de los vehículos para que la hipótesis de la posición de cada vehículo

no se superponga. Debido al pequeño tamaño de los vehículos en la foto satelital la

detección de vehículos en la imagen conlleva a que los resultados sean ambiguos.

Figura 6: Detección de vehículos en 2D. Imagen satelital donde se aprecian los vehículos detectados. Fuente:

(Leitloff, Hinz, & Stilla, 2006)

2) Representación de vehículos en 3D: En el trabajo de (Koller, Daniilidis, & Nagel, 1993),

se realiza el seguimiento y auto detección de vehículos con cámaras estacionarias. Se

utiliza una detección de los bordes del vehículo para realizar un boceto de líneas en 2

dimensiones que se proyecta a un modelo de poliedro en tres dimensiones usando

algoritmos especializados (Figura 7a). De esta forma se puede realizar un mejor

seguimiento del vehículo porque se sigue a un vehículo modelado en todos sus ángulos. La

correlación entre el modelo de líneas en 2D y el modelo en 3D se basa en la distancia de

Mahalonobis (Deriche & Faugeras, 1990).

El modelo 3D del vehículo detectado está parametrizado por 12 variables. Esto permite la

creación de instancias respecto al mismo modelo del vehículo genérico dependiendo de

distintos tipos de vehículos, por ejemplo: sedán, hatchback, pickup, station wagon o

minivan. (Figura 7b).

24

Figura 7: Detección de vehículos en 3D. (a) De los bordes del vehículo se construye un modelo

tridimensional. (b)Modelos de vehículos posibles para ser comparados. Fuente: (Koller, Daniilidis, & Nagel,

1993)

3) Detección de vehículos con cambios de condiciones lumínicas: En el trabajo de

(Cucchiara & Piccardi, 1999), se estudia el reconocimiento de vehículos con condiciones

lumínicas diferentes (día y noche), se describen dos diferentes tipos de algoritmos usados

en VTTS (Vehicular Traffic Tracking System) para extraer los vehículos de día y de

noche. La identificación de vehículos de día y de noche apunta a un análisis de bajo nivel y

de alto nivel. El análisis de bajo nivel es diferente para los dos casos, mientras que el

análisis de alto nivel es indistinto para ambos.

Primero, el procedimiento de bajo nivel supone que la región de interés donde se

encontrarán los vehículos corresponde a la carretera, pero además considera que esto no

elimina la existencia de objetos distractores. Se propone para condiciones de alta

luminosidad (día) que el mejor discriminante entre objetos distractores y vehículos es el

movimiento y la variación de luminiscencia. Finalmente, el objeto en movimiento se

clasifica como un posible vehículo dependiendo simplemente de su tamaño en pixeles.

Para el caso de la detección de vehículos en bajas condiciones de luminosidad (noche) los

objetos distractores no son considerados (salvo las motocicletas que según el

planteamiento no pueden ser detectados). Para realizar la detección se emplean análisis

morfológicos al video, de esta forma, se encuentran un par de focos delanteros del

vehículo, así se etiqueta como un posible vehículo.

25

Segundo, el análisis de alto nivel es el encargado del seguimiento de los vehículos. Se

propone un razonamiento distinto al habitual que considera las reglas del tránsito y la

relación entre los datos extraídos y los vehículos detectados anteriormente, como: la

extensión, dirección, posición de detención, etc.

Los resultados obtenidos en este trabajo son cercanos al 90% de vehículos correctamente

detectados.

2.3. Seguimiento a múltiples objetos (MTT). Esta sección explora el seguimiento de múltiples objetos (MTT: Multi-target Tracking) en

una secuencia de frames. En la sección 2.3.1 se habla sobre el seguimiento multi-hipótesis

(MHT) y se estudian dos métodos de hipótesis: screening y pruning. Posteriormente en 2.3.2

se abordan métodos alternativos a MHT, como: los métodos de Monte Carlo y seguimiento

de regiones.

2.3.1. Seguimiento Multi-Hipótesis (MHT)

El seguimiento Multi-Hipótesis, responde a uno de los principales problemas del seguimiento

a múltiples objetos (MTT). El problema es mantener la correspondencia para cada objeto en

distintos frames. La forma de resolver esto es generar una hipótesis sobre la predicción del

estado del objeto en el siguiente frame. La efectividad de la predicción es comparada con la

medida del frame actual versus el siguiente frame.

MHT hace asociaciones determinísticas a las hipótesis y exhaustivamente enumera todas

estas posibles asociaciones. Además, el algoritmo es exponencial tanto en el uso de memoria,

como así también, en el tiempo utilizado. Para reducir el tiempo de procesamiento, se

proponen métodos de eliminación de hipótesis según la probabilidad de éstas.

Para reducir la carga computacional, en (Streit & Luginbuhl, 1994) se propone una MHT,

donde las asociaciones se consideran variables aleatorias independientes y por tanto no

existe el requisito de una lista exhaustiva de las asociaciones. En este trabajo, los estados de

objetivos son modelados como variables aleatorias continuas y sus medidas son asociadas

como variables aleatorias discretas

26

Para superar el procesamiento exponencial en el tiempo de MHT,(Cox & Hingorani, 1996)

utilizan un algoritmo para determinar las mejores k-hipótesis1 en tiempo polinomial para

encontrar las zonas de interés. Estos enfoques de MHT son conocidos en la literatura como

Hypothesis-Oriented MHT (HOMHT), como el algoritmo MHT mantiene y amplía hipótesis

desde un frame para el próximo, sin retroalimentación de las mediciones de los objetos.

Para controlar la explosión de combinatorias en MHT, se proponen dos métodos de hipótesis:

1) Screening: Generación de hipótesis selectiva. Este método es aplicado como un generador

de hipótesis y permite disminuir el crecimiento desmedido de hipótesis. En (Kurien, Issues

in the design of practical multitarget tracking algorithms. In Y. BarShalom, editor,

Multitarget Multisensor Tracking: Advanced Applications, chapter 3,volume 1, pages 43–

83, Norwood, MA, 1990), tres métodos son descritos:

a) Gating: Consiste en construir para cada objetivo una región o puerta en el espacio, la

cual define una zona de validación para la asociación del objetivo.

b) Clustering: Consiste en separar los objetivos en diferentes grupos (clusters). Si el área

de la intersección no está vacía esta puede ser asociada con un set de objetivos,

entonces estos objetivos se pueden agrupar (clustering method).

c) Classification: Consiste en agrupar los objetivos de acuerdo a su nivel de confidencia

(información). Estos niveles de confianza pueden ser definidos de varias formas, por

ejemplo, pueden ser definidos proporcionalmente a la edad de los objetivos (número de

frames desde que el objeto fue detectado por primera vez). Se pueden aplicar dos tipos

de criterios para aplicar screening y pruning con diferentes niveles de confianza.

i) Cumplir requisitos estrictos de pruning para los objetivos con bajos niveles de

confianza. Por ejemplo, para un objetivo nacido (edad = 1) está permitido menos

detecciones de errores frente a otro que posee mayor nivel de confianza.

ii) Impone una restricción sobre el número de asociaciones de las mediciones para los

objetivos con bajos niveles de confianza.

1 Proveniente de la distribución polinomial

27

2) Pruning: Consiste en la eliminación de hipótesis después de su generación. Existen dos

métodos que son descritos.

a) Baja Probabilidad: Consiste en eliminar las hipótesis con baja probabilidad

dependiendo de un umbral previamente establecido.

b) n-Scan Approximation: Consiste en examinar un número finito pero variable de n

frames previos para asignar los objetivos a un frame en particular, a diferencia de

examinar las mediciones para todos los resultados desde el nacimiento de los objetivos.

Este método se divide en dos pasos:

i) Realizar todas las asociaciones desde el frame previo con los resultados del frame

actual.

ii) Identificar el conjunto de hipótesis más probables en los n frames anteriores y

eliminar el resto.

Otro enfoque para MHT es presentado en (Kurien, Reliable classifications with machine

learning, 2002) y se llama Track-Oriented MHT (TOMHT). Este enfoque vuelve a calcular

las hipótesis usando los tracks recientemente actualizados con las medidas extraídas de cada

nuevo frame. En lugar de mantener y ampliar las hipótesis frame a frame, TOMHT descarta

la hipótesis formada en el frame anterior. Los tracks que sobreviven al pruning son intuidos

en el siguiente frame, donde los nuevos tracks son formados usando las nuevas observaciones

y reformulando la hipótesis.

En (Blackman, Dampster, & Reed, 2001) se comprueba que el resultado del tiempo de

procesamiento para un escenario difícil con 100 objetos estrechamente espaciados es viable

para realizar operaciones en tiempo real para TOHMT. Este estudio fue realizado utilizando

un simple computador Pentium de 866Mhz.

2.3.2. Método de Monte Carlo y derivados.

Un método alternativo para el seguimiento múlti-hipótesis, es el método de Monte Carlo y

sus derivados. Estos métodos pueden representar el estado de distribución con un set de

hipótesis cargadas o partículas.

En la literatura se pueden encontrar ejemplos como:

Bootstrap filter (N.Gordon, Salmond, & Smith, 1993).

28

CONDENSATION (CONditional DENSity PropagATION) (Isard & Blake, 1998),

Sequential Monte Carlo method (SMC) (Doucet, Freitas, & Gordon, 2001)

Particle filter (Hue, Cadre, & Perez, 2002)

Los métodos de Monte Carlo tienen la desventaja que requieren un número de muestras con

crecimiento exponencial según el tamaño del state space2. Como consecuencia, en la práctica

un modelo dinámico requiere disminuir el número de muestras necesarias. Para las

aplicaciones on line, el sistema debe proporcionar una estimación del estado en cada frame,

por lo que generalmente se toma la media o la mediana de las partículas. Esta estimación no

es particularmente precisa. Esta falta de uniformidad en el seguimiento es un gran

inconveniente para estos métodos. Estos factores hacen que las técnicas no paramétricas sean

menos atractivas para los objetos que tienen un gran state space (espacio de estados) y

dinámica compleja. A menudo, en estas técnicas no se dispone de información suficiente para

seleccionar la hipótesis correcta, especialmente en caso de videos con ruido y características

de seguimientos simples (por ejemplo: posición, velocidad, altura y anchura).

2.3.3. Seguimiento por apariencia.

En el trabajo de (Senior, Hampapur, Tian, Brown, & Pankanti, 2001) se exhibe un método de

seguimiento usando modelos de apariencia. Estos modelos son utilizados para localizar

objetos durante una oclusión parcial y/o completa, además, resuelven en profundidad el orden

de los objetos mientras suceden estas oclusiones.

La Figura 8 muestra la estructura de este algoritmo. El algoritmo comienza con una entrada

de video donde se obtiene la región ForeGround (FG), por medio de algún método de

sustracción de fondo. Luego, la primera parte del proceso de seguimiento consiste en asociar

las regiones del FG en frames consecutivos construyendo tracks hipotéticos. Estos tracks son

construidos realizando una comparación entre la distancia de los objetos para frames

consecutivos. El segundo paso es utilizar modelos de apariencia para resolver ambigüedades

2 Un espacio de estados es una descripción de una configuración de estados discretos utilizado como

un modelo simple de las máquinas.

29

en dichos tracks. Estos modelos de apariencia resuelven el seguimiento cuando existe la

interacción u oclusión entre objetos y la asocia al track correspondiente. Por ejemplo, en caso

de interacción entre un vehículo y un humano, tomaría la apariencia del humano (piernas,

brazos y tronco) y la de un vehículo (ciertas dimensiones) para asociarlos a cada track

correspondiente. Finalmente, se filtran los tracks que sirven y se remueven los que no se

usen.

Figura 8: Diagrama de bloques para el algoritmo de seguimiento por apariencia.

2.4. Modelado automático de escenas. El modelado automático de escenas consiste en un conjunto de técnicas que permiten definir

una actividad de forma automática, posterior a la detección de objetos y el seguimiento. Para

el modelado automático de escenas se estudia el descrito en el trabajo de (Makris & Ellis,

Learning semantic scene models from observing activity in visual surveillance, 2005). En

este capítulo sólo se hablará de ciertas definiciones para el modelado automático, como las

zonas de interés y los caminos de actividad. Mayor información se encuentra en el Anexo C,

donde se explican tareas para aprender caminos de forma automática, tales como: el pre

procesamiento, el clustering o agrupamiento, el modelado de caminos y la retroalimentación

para sistemas de bajo nivel.

30

2.4.1. Definiciones para el modelado automático de escenas.

Zonas de interés (ZOIs): la primera tarea es descubrir regiones de interés dentro de la

imagen. Estos son nodos en el mapa topológico que indican el destino de los objetos.

Existen dos tipos de nodos, los de entrada y salida de objetos (ej. Puertas, ventanas, etc.) y

los puntos de detención. El primer tipo consiste básicamente en el lugar donde aparece y

desaparece un objeto. Estas zonas pueden ser modeladas utilizando un modelo en 2-D con

una gaussiana. En el trabajo de (Makris & Ellis, Learning semantic scene models from

observing activity in visual surveillance, 2005), propone que los puntos de interés sean

detectados a partir de objetos que aparecen y desaparecen de la escena tales como puertas o

bordes de la cámara. El segundo tipo de puntos de interés son locaciones donde los objetos

tienden a desocupar o quedarse estacionarios por un tiempo, por ejemplo: un escritorio.

Mientras que en el trabajo de (Brandle, Bauer, & Seer, 2006), los puntos de interés son

lugares de objetos quietos o con movimiento reducido.

Caminos de actividad (APs): para entender el comportamiento, es necesario mirar la

variación en el tiempo de los puntos de interés (POI). Los eventos sucesivos extraídos a

partir del seguimiento de un objeto por ZOIs construyen los caminos de actividad.

Figura 9: (a) las zonas de interés están señaladas por elipses de color, (b) Los caminos de actividad están

señalados por líneas entre las zonas de interés.

31

Existen aplicaciones que utilizan POIs/AP tales como:

1) En (Morris & Trivedi) donde la aplicación se preocupa de ver las trayectorias de gente

confinada a espacios cerrados como: una oficina, laboratorio, manicomio, etc. Estas

trayectorias están fuertemente influenciadas por ZOI como puertas y pasillos.

2) En (Roberson & Reid, 2005) y en (Makris & Ellis, Path detection in video surveillance,

2005) preocupados por el movimiento de personas en lugares no confinados como aceras

y calzadas.

3) Trabajos como (Jung & Ho, 1999), (Schoepflin & Dailey, 2003), (Kamijo, Matsushita,

Ikeuchi, & Sakauchi, 2000) y (Hu W. , Xiao, Xie, Tan, & Maybank, 2004) están

dedicados a entregar investigación significativa en cuanto a transporte inteligente al

estudiar el tráfico y la congestión de los caminos.

Nuevos trabajos relacionados con el tema se dedican a estudiar la interacción entre humanos,

vehículos e infraestructura permitiendo monitorear encuentros sospechosos y lugares

caracterizados como caminos peligrosos.

2.5. Análisis automático de actividades. Posterior a obtener una trayectoria por medio de un MHT o de obtener una ruta luego del

modelado automático de escenas (ver Anexo C), el comportamiento de los objetos y las

actividades pueden ser analizados. Una de las funciones básicas de la vídeo-vigilancia es la

identificación de eventos interesantes. En general, es difícil identificar las situaciones de

interés en un contexto específico. Al observar una escena en el tiempo, el sistema puede

aprender automáticamente a que actividad es interesante realizar una serie de análisis. Los

principales análisis que se pueden realizar son: cerca virtual, perfil de velocidad, detección

anormal, actividad online e interacción entre objetos.

1) Cerca virtual o zona de actividad: Es un evento que sucede dentro de un perímetro

monitorizado (configurado previamente) y al ser accionado emite una alerta. Estas zonas

se configuran en el plano virtual de la imagen para emitir alertas inteligentes de cualquier

infracción. Estas alarmas se podrían utilizar para gatillar acciones, por ejemplo: al ingresar

un vehículo autorizado a una zona de vigilancia se podría activar automáticamente una

barrera de paso vehicular. El trabajo de (Trivedi, Gandhi, & Huang, 2005) es un ejemplo

32

de monitoreo de zonas de interés y el conteo de vehículos puede ser acumulado para el

análisis de flujo de tráfico.

2) Perfil de velocidad: Las zonas de vigilancia sólo aprovechan la información espacial.

Pero además, el seguimiento también puede ser utilizado como una alarma de velocidad.

Una velocidad promedio puede ser utilizada para caracterizar el comportamiento de exceso

de velocidad en vehículos (Jung & Ho, 1999) o la congestión y accidentes de vehículos en

la carretera (Kamijo, Matsushita, Ikeuchi, & Sakauchi, 2000). En el trabajo de (Morris &

Trivedi) se encierran con cajas de diferentes colores el estado de velocidad. Tal como

muestra en la Figura 10, donde el color rojo indica detención, amarillo un movimiento

lento, verde para una velocidad normal y azul para marcar un vehículo con exceso de

velocidad.

Figura 10: Análisis del perfil de velocidad.

3) Detecciones anormales: Tal vez la tarea más importante en un sistema de vigilancia es la

detección de eventos inusuales. Comportamientos anormales pueden ser drásticos, como se

muestra en la Figura 11 (a) y (b) que pueden ser fácilmente alertados utilizando vigilancia

humana, pero puede ser difícil detectarlos de forma automática. Estos patrones anormales

pueden ser detectados por un umbral donde el mejor caso corresponde a una ruta modelada

y se compara con una trayectoria anormal como en la Figura 11 (a) y (b) (Owens &

Hunter, 2000).

33

Figura 11: Análisis de detecciones anormales.

4) Actividad online: Si bien es importante tomar una trayectoria completa y describir el

movimiento, es aún más importante conocer y evaluar el comportamiento que se produce

de forma online. Un sistema de tiempo real debe ser capaz de hacer inferencias de

comportamiento rápidamente con datos incompletos. Con el análisis de la trayectoria

online, la intención de los objetos se puede predecir y las detecciones anormales pueden

ser detectadas antes que sucedan. Analizamos dos tipos de predicciones:

a) Predicción de caminos: Los datos de seguimiento se pueden aprovechar para inferir un

comportamiento futuro, a medida que más información se recoge la predicción es

refinada y más exacta. La intención es que un conjunto de comportamientos aceptables

permita una mejor predicción a largo plazo.(Hu W. , Xiao, Fu, Xie, Tan, & S, 2006).

b) Predicción de anomalías: Además de la clasificación de una trayectoria completa

como anormal, todos los acontecimientos fuera de los ordinarios deben ser detectados a

medida que ocurren. Este tipo de predicción es utilizado en el caso de (Hu W. , Xiao,

Xie, Tan, & Maybank, 2004).

5) Interacción entre objetos: El último nivel de análisis automático trata de describir las

interacciones entre objetos. Al igual que los acontecimientos anormales, es difícil definir

estrictamente las interacciones entre objetos debido a la gran variedad de tipos posibles.

Diferentes escenas pueden tener muy diferentes tipos de interacciones por el medio

ambiente o incluso por tipo de objetos presentes. Por ejemplo, las interacciones

encontradas en una carretera son muy diferentes a las de un salón de clases debido a que el

primero controla vehículos, mientras que el segundo la interacción entre personas. (Hu W.

, Xiao, Xie, Tan, & Maybank, 2004).3

34

2.6. Análisis del color en imágenes digitales.

En la literatura el problema de la clasificación del color de un objeto no es un tema

ampliamente desarrollado, pero existen trabajos en áreas similares que se estudiarán en esta

sección.

En el trabajo de (Wu & Xiao, 2010) se intenta reconocer objetos por medio de la forma y las

características del color. Este trabajo arroja resultados del reconocimiento que son insensibles

a la iluminación, sombras, traslación, rotación y distancia del objeto. El método comienza

con extraer la región del objeto por medio de dos algoritmos: mask matching y feature

matching. Posteriormente, se realiza una extracción de las características del color del objeto

donde se utilizan histogramas en el espacio YCbCr para representar la característica de color

del objeto. Finalmente, el reconocimiento del objeto se realiza por medio de una medida de

similitud entre los histogramas de Y,Cb y Cr.

En el trabajo de (Jinxue, Yang, Wang, & Hua, 2009) se considera el reconocimiento del color

de un objeto para la visión de un robot. Se propone un tipo de identificación basado en las

características del espacio YUV del objeto. En concreto, el proceso es dividido en dos etapas:

aprendizaje de la característica de color y un escenario de expansión (application expansion

stage). En la primera etapa se realiza una calibración artificial usando el espacio de color

YUV definiendo 6 umbrales: Un máximo y mínimo para la luminancia, un máximo y mínimo

para la crominancia U y de la crominancia V (Figura 12). Luego de extraer las características

de color en la segunda etapa se analiza la probabilidad que el color de un objeto se encuentre

cercano a la media definida por la diferencia entre los umbrales máximos y mínimos.

Figura 12: Límites de los planos YUV. Fuente: (Jinxue, Yang, Wang, & Hua, 2009).

35

2.7. Productos disponibles.

2.7.1. MVI – Vehicle detection.

En el trabajo de (Wu & Gu, 2009), se implementa un programa realizado en visual C++

capaz de procesar video en tiempo real entregando automáticamente la velocidad de un

vehículo y de contar el número de vehículos al pasar. Basado en la óptica geométrica, en

primer lugar se presenta un método simplificado para mapear las coordenadas y llevarlas al

dominio del mundo real. Segundo, se concentra en la detección de vehículos en cada imagen

o en el flujo del vídeo. Luego se realizan análisis del perfil de velocidad y el conteo de

vehículos se realiza al desaparecer un objeto de la imagen. La velocidad detectada del

vehículo contiene un error cercano a 2.3 km/hora y el sistema de conteo un 2.2% (de 2340

vehículos testeados).

Figura 13: MVI vehicle detection.

2.7.2. Autoscope solo terra.

Este producto (AutoScope Solo Terra) cuenta con una cámara con procesador de visión

artificial integrado, el sistema sirve para aplicaciones de carreteras, intersecciones, puentes y

túneles. Esta solución de detección proporciona un óptimo rendimiento en la obtención de

datos de tráfico y detección de incidentes. Cuenta con: un alto nivel de procesamiento,

cámara a color, zoom, MPEG-4, comunicaciones por un navegador Web (por medio de una

conexión red), streaming de vídeo digital y fácil instalación y uso.

Las aplicaciones son variadas tales como: Gestión de incidentes de tráfico en túneles,

carreteras y puentes, Control de intersecciones, Recolección y análisis de datos de tráfico,

36

Seguridad en zonas de trabajo y control de tráfico, medición de velocidad de vehículos,

clasificación de vehículos en detención y vigilancia mediante video.

Figura 14: Autoscope solo terra

2.7.3. VisioWay OpenCounter.

Equipo "todo en uno" para la obtención de datos de tráfico mediante vídeo detección.

VisioWay puede usarse para obtener datos de tráfico, detección automática de incidencias y

como detector de presencia. Integra una cámara con zoom junto a un sistema embebido para

el procesamiento en tiempo real de la imagen. Puede ser usado en una amplia variedad de

aplicaciones de control de tráfico (VisioWay OpenCounter).

Sobre el campo de visión pueden definirse zonas de vigilancia que funcionarán como vídeo

detectores, detectando embotellamientos o infracciones, como circulación en sentido

contrario o giros prohibidos. Además permite configurar zonas de vigilancia sobre el campo

de visión, que funcionan como vídeo detectores al paso de los vehículos. Estos detectores

pueden ser de los siguientes tipos: de presencia, seguimiento y de embotellamientos.

Figura 15: VisioWay OpenCounter

37

2.8. Discusión y contribuciones.

Luego de estudiar el estado del arte de temas relacionados con esta memoria, surgen las

siguientes discusiones:

1) La representación tridimensional de un vehículo (2.2) puede entregar información crucial

de su modelo (eg: sedan, mini van). Esta información puede ayudar a categorizar

vehículos similares en una base de datos junto con su hora de ingreso, de esta forma se

podría disminuir su tiempo de búsqueda. Lamentablemente desarrollar esta

representación conlleva un enorme trabajo en su realización y quedará excluida en el

trabajo de esta tesis, pero perfectamente puede ser añadida en trabajos futuros. En su

lugar, sólo se utilizará la representación en dos dimensiones del vehículo.

2) La dificultad de encontrar el color de un vehículo es alta. Para abordar este problema se

deben plantear alternativas no sólo en su detección, sino en el tipo de búsqueda que se

realice al vehículo.

3) Aunque el modelado automático de una ruta en un acceso vehicular tiene la ventaja de no

tener intervención humana, el análisis por medio de una cerca virtual es una solución más

fácil de implementar y posee resultados satisfactorios para el conteo de vehículos.

4) Campos como el modelado automático de escenas (2.4) y el análisis automático de

actividades (2.5) aunque son temas muy interesantes para el desarrollo de esta tesis, no

serán abarcados del todo en ella. En la práctica, existen métodos más simples o sólo se

aplicarán algunos temas de estos (eg: zonas de actividad).

5) De los productos disponibles expuestos en 2.7 ninguno entrega información si almacena

características de los vehículos contados. Además, no entregan información sobre la

eficiencia de sus algoritmos y la facilidad de uso del software. Estos puntos generan una

ventaja competitiva, es decir, una posible contribución al paradigma de la búsqueda de

eventos

Las contribuciones que esta tesis otorga son:

1) Desarrollar y comparar algoritmos para el conteo de vehículos de vehículos.

2) Desarrollar y comparar algoritmos para la detección de color de objetos.

38

3) Desarrollar un sistema con interfaz gráfico para la búsqueda de eventos de interés,

específicamente, vehículos ingresando a un control de acceso. Considerando: la fecha y

hora, lugar y color del vehículo.

4) Desarrollar un sistema con interfaz gráfico para el manejo y configuración de distintas

cámaras de vigilancia.

39

3. Requerimientos

3.1. Requerimientos del usuario. En una reunión sostenida con un encargado de la supervisión por video vigilancia de la

Universidad Técnica Federico Santa María, se preguntaron las principales dificultades que

existen en el sistema de vigilancia de la Universidad respecto al ingreso de vehículos y el

sistema de estacionamientos, como resultado de esta conversación se obtuvieron los

siguientes requerimientos:

1. Dado que en el recinto privado ocurren situaciones de riesgo que involucran

vehículos, es indispensable poder identificar vehículos por características simples

como el color y/o el tamaño.

2. El recinto consta de estacionamientos limitados. Se podría contar la cantidad de

vehículos que han ingresado y abandonado el recinto, con el objetivo de tener la

cantidad de estacionamientos libres en la institución.

3. Lo ideal es dar acceso sólo a los vehículos autorizados en el recinto, es decir, todos

los que posean una distinción de la institución (ej: un código de barra, un logotipo,

etc.) o ser reconocidos por la placa patente del vehículo y comparados con una base

de datos de las placas patentes permitidas.

4. Dar aviso inmediato en la presencia de un hecho sospechoso o inhabitual (ej. Ingreso

de vehículos en horas atípicas).

3.2. Requerimientos funcionales. El sistema debe realizar:

Reconocer vehículos de interés en forma automática: Por medio de análisis

inteligente de video el SW debe ser capaz de diferenciar los vehículos de interés

(automóviles y vehículos pesados) del resto de los posibles objetos que aparezcan en

la escena (peatones, bicicletas y motocicletas).

Reconocer características de los vehículos de interés en forma automática: Se

debe generar un conjunto de librerías capaces de diferenciar el color del vehículo.

40

Almacenar y recopilar las características de los vehículos de interés detectados

junto con una copia visual: El SW debe ser capaz de almacenar en una base de

datos la información recopilada, es decir: la hora, la fecha, la cámara de vigilancia, el

color y una imagen o video de su detección.

Contar el número de vehículos de interés que han ingresado y abandonado el

recinto: Se debe generar un contador visible y configurable que indique el número

de vehículos que han ingresado y abandonado el recinto.

Facilitar la experiencia de uso del personal: El SW debe poseer una interfaz capaz

de concentrar la información de todas las cámaras de vigilancia en una ventana, de

forma fácil e intuitiva.

Indicar la existencia de hechos sospechosos: El SW debe indicar al usuario cuando

sucedan situaciones sospechosas o inhabituales por medio de un aviso visual y/o

auditivo de alerta.

3.3. Requerimientos no funcionales. Los requerimientos no funcionales para el diseño del SW se clasifican en:

1) Restricciones para el SW:

a) Calidad de la imagen: Dependiendo de la ubicación de las cámaras de vigilancia su

resolución generalmente no permite ver detalles, por ejemplo: la placa patente del

vehículo en algunos casos es imposible de descifrar. Además, se debe alcanzar un

equilibrio entre el tamaño de imagen capturada (puesto que una imagen muy pequeña

no permitiría ver detalles importantes) y una de gran tamaño (consumiría muchos

recursos). Por esto, el SW debe estar configurado a una resolución de 320x240

pixeles.

b) Nivel de procesamiento del HW: Las características del HW del equipo son una

limitante porque el consumo de los algoritmos para analizar las imágenes en general

son demandantes en procesador y memoria RAM, además se debe considerar que se

actuará sobre el total de cámaras configuradas lo que incrementa proporcionalmente

la demanda de recursos en el HW. Por lo tanto, el equipo utilizado no puede ser de

baja gama.

41

c) Configuración de la red: Las cámaras de vigilancia poseen una dirección IP dentro

de la red privada de la institución. Se puede acceder a la cámara con un nombre de

usuario y contraseña correctos. El SW utilizará un puerto para la captura de imágenes

que no debe estar bloqueado por firewalls o antivirus dentro de la red de la

institución.

d) Capacitación de los usuarios: Aunque el SW debe ser lo más intuitivo posible, se

debe capacitar al personal sobre su configuración y uso de los sistemas.

2) Propiedades que debe tener el SW:

a) Confiable: El SW debe otorgar resultados confiables en comparación a los hechos

reales porque un error puede llevar a consecuencias negativas para la seguridad del

recinto.

b) Tolerante a fallas: Debe ser tolerante a fallas porque una paralización de sus

servicios implicaría consecuencias que entorpezcan la labor de seguridad de la

institución.

c) Rendimiento: Debe poseer un rendimiento adecuado para el diseño del problema

propuesto, es decir, debe ser capaz de entregar la información para todas las cámaras

conectadas al recinto y no tener retardos que entorpezcan el actuar en caso de existir

eventos sospechosos.

3.4. De diseño. Se utilizarán las siguientes consideraciones de diseño:

C++: Es un lenguaje de programación extendido del lenguaje C que permite la

manipulación de objetos. En este sentido, C++ es un lenguaje híbrido que permite el

uso de objetos y que puede utilizar programación estructurada.3

Qt 4.6: Es una biblioteca multiplataforma para desarrollar interfaces gráficas de

usuario y también para el desarrollo de programas sin interfaz gráfica como

herramientas de la consola y servidores. Qt utiliza el lenguaje de programación C++

de forma nativa, adicionalmente puede ser utilizado en varios otros lenguajes de

3 www.wiikipedia.org/c++

42

programación a través de bindings4. Qt es distribuido bajo los términos GPL y LGPL

y es un software libre y de código abierto.

OpenCV 2.1: Es una librería de visión artificial originalmente desarrollada por Intel.

OpenCV es distribuido bajo la licencia BSD, que permite que sea usada libremente

para propósitos comerciales y de investigación con las condiciones en ella

expresadas. Esta librería es multiplataforma y se enfoca principalmente en el

procesamiento de imágenes en tiempo real.

MySql 5.1.41: es un sistema de gestión de base de datos relacional, multihilo y

multiusuario. Posee un esquema de licencia dual, por un lado se ofrece bajo la

licencia GNU GPL para cualquier uso compatible con ésta, pero para aquellas

empresas que quieran incorporarlo en productos comerciales (código cerrado) deben

comprar una licencia específica que les permita este uso.

HardWare: El SW fue testeado utilizando un computador con un procesador Intel®

Celeron® de @ 2.13 GHz de 32 bits, con 3 GB de RAM y con un adaptador de

pantalla Mobile Intel® 965 Express Chipset Family.

Sistema Operativo: El SW se testeó en Ubuntu 10.0.2 con kernel v 2.6.32-28-

generic.

4 Un binding es una adaptación de una biblioteca para ser usada en un lenguaje de programación

distinto de aquél en el que ha sido escrita.

43

4. Análisis y diseño.

4.1. Planificación y elaboración.

Declaración general: el propósito de este proyecto es desarrollar un SW de análisis

de video que integre múltiples cámaras de video vigilancia para extraer

características que permitan registrar e identificar la entrada y salida de vehículos en

un recinto cerrado, en forma no invasiva.

Clientes: Todas las instituciones interesadas en mejorar el rendimiento en las tareas

de video vigilancia de sus recintos en tiempo real o que necesiten realizar estudios

sobre el control de tráfico.

Objetivo: En general, la meta es facilitar el trabajo de video vigilancia. Esto implica

una disminución en errores humanos que se suelen cometer, una disminución en el

tiempo de reacción y un aumento en la seguridad del recinto.

44

4.1.1. Funciones del Sistema extendido

Ref# Función Categoría

R.1.1. Reconocer vehículos de interés en forma automática. Evidente

R.1.2. Reconocer características de los vehículos de interés en forma automática. Evidente

R.1.3. Grabar en la base de datos las características del vehículo de interés. Oculta

R.1.4. Contar el número de vehículos de interés que han ingresado y abandonado

el recinto

Evidente

R.1.5. Facilitar la experiencia de uso del personal con una interfaz de usuario

(UI) que permita la visualización de las múltiples cámaras.

Evidente

R.1.6. Indicar la existencia de hechos sospechosos por medio de alertas. Evidente

R.1.7. Añadir, modificar y borrar cámaras de vigilancia por medio de la UI. Evidente

R.1.8. Añadir, modificar y borrar áreas de entrada y/o salida de vehículos de

interés por cada cámara de vigilancia en la UI.

Evidente

R.1.9. Configurar la conexión a la Base de Datos en la UI. Evidente

R.1.10. Grabar y leer archivos XML de la configuración de las cámaras y áreas de

entrada y/o salida.

Oculto

R.1.11. Mostrar una lista en la pantalla principal de las cámaras activas y no

activas en el SW.

Evidente

R.1.12. Modificar áreas de entrada y salida con elementos drag and drop por

medio de la UI.

Superflua

4.1.2. Atributos del sistema

Ref# Cat Atributo Detalles y Limitaciones Cat.

R.1.1 y

R.1.2

Evidente Calidad de la Imagen Las cámaras de vigilancia deben poseer por

lo menos una resolución de 320x240 pixeles.

Requerido

R.1.1 y

R.1.2

Evidente Condiciones

lumínicas

Las condiciones lumínicas del ambiente

deben ser suficientes para detectar objetos y

no excesivas como para saturar la imagen.

Requerido

4.2. Casos de uso.

4.2.1. Caso de uso de alto nivel

Caso de uso Detectar vehículo

Actores Vehículo, Funcionario

Tipo Primario

Resumen Este caso de uso comienza cuando un vehículo aparece en el campo visual de una

cámara de vigilancia. El SW analiza si el vehículo es de interés o no. Si el vehículo

resulta de interés se almacena en la base de datos la fecha, la hora, la cámara de

procedencia y una imagen de la captura. Luego se analiza su color para ser

almacenado en la base de datos. Finalmente, el SW da una alerta visual o auditiva

al funcionario.

45

4.2.2. Diagrama de casos de uso.

Figura 16: Diagrama de casos de usos del SW.

Caso de uso Configuración general del SW

Actores Funcionario

Tipo Secundario

Resumen Este caso de uso comienza cuando el funcionario ingresa al SW. Ingresa a las

opciones de configuración. El funcionario agrega todas las cámaras de seguridad

del recinto en el sistema. El SW debe corroborar que la información ingresada sea

correcta. Luego, el funcionario agrega las áreas de ingreso y/o salida de vehículos

por cada cámara previamente añadida. Finalmente, el funcionario configura la base

de datos donde serán almacenados la información extraída de los vehículos de

interés.

Caso de uso Consultar base de datos de vehículos.

Actores Funcionario

Tipo Primario

Resumen Este caso de uso comienza cuando e funcionario ingresa al SW. Selecciona la

opción ―buscar vehículos‖. Luego ingresa los datos de la consulta y espera

resultados.

Caso de uso Alerta de hecho inhabitual

Actores Funcionario

Tipo Primario

Resumen Este caso de uso comienza cuando el funcionario ingresa al SW. Ingresa a

―opciones de alerta‖. Selecciona que tipo de alerta desea. Finalmente, el SW

devuelve una alerta según lo configurado por el funcionario.

46

4.2.3. Curso normal de eventos.

4.2.3.1. Configuración de cámaras.

4.2.3.2. Detectar vehículo

Acción de actores Respuesta del sistema

1. Este caso de uso comienza cuando un vehículo

está dentro del rango visible de una cámara de

vigilancia.

2. El SW determina si el vehículo es de interés.

3. Si el vehículo es de interés el SW analiza las

características de este vehículo y almacena sus

características junto con su hora, fecha, cámara de

procedencia, tipo (entrada y/o salida) e imagen en

la base de datos.

4. El SW envía una señal a la ventana principal

Acción de actores Respuesta del sistema

1. El funcionario ingresa en el SW. 2. El SW carga toda la configuración previa. Esto

incluye cámaras existentes y las áreas

configuradas.

3. El funcionario desea configurar una nueva

cámara, por lo tanto, se dirige a la opción

―configurar cámaras‖.

4. El SW muestra la ventana de configuración de

cámaras.

5. El funcionario selecciona la opción agregar

nueva cámara.

6. El SW muestra una nueva ventana con la

configuración de una nueva cámara (nombre

cámara, ip, user y password)

7. El funcionario llena todas las opciones y selecciona la opción aceptar

8. El SW corrobora que los datos sean correctos y se conecta a la dirección ip de la cámara.

9. El SW muestra una captura de la cámara y

consulta al usuario si la imagen capturada

corresponde a la cámara deseada.

10. El funcionario acepta la configuración. 11. El SW escribe los datos de configuración de

la cámara nueva en el archivo de configuración y

guarda una imagen de la captura de la cámara en

el directorio de configuración.

12. El funcionario se dispone a configurar las

áreas de salida y/o entrada, por lo tanto,

selecciona la opción ―configurar áreas‖

13. El SW muestra una ventana de ―configuración

de áreas‖. Esta ventana contiene la imagen

capturada en el paso 11 con las opciones para

añadir una nueva área, modificar una existente o

borrar un área existente.

14. El funcionario añade una nueva área haciendo

click en la imagen, selecciona su tipo (entrada y/o salida) y guarda la configuración

15. El SW guarda la configuración actual en el

archivo de configuración.

16. El funcionario termina la fase de

configuración.

Cursos Alternativos

Paso 2: Autenticación inválida. El SW indica

error y reinicia fase de autenticación.

Paso 9: Si los datos son incorrectos el SW vuelve

al estado 6.

Paso 11: El funcionario no acepta la

configuración y el sistema vuelve a estado 6.

47

del sistema e indica que ha pasado un vehículo de

interés. Luego, aumenta o disminuye el contador

de vehículos en el recinto.

5. El funcionario al ver la señal de emergencia se

percata que existe un vehículo de interés en la

cámara especificada.

4.2.3.3. Consultar base de datos de vehículos de interés.

4.3. Arquitectura del sistema.

El sistema implementado está constituido por tres módulos. En la Figura 17 se aprecia el

sistema en su totalidad.

Figura 17: Arquitectura del sistema a implementar.

1) Módulo de adquisición: Este módulo está compuesto por las cámaras de vigilancias del

CCTV de la institución, éstas están ubicadas generalmente en los accesos de control de la

institución (eg: porterías y estacionamientos). En la práctica se utilizan cámaras AXIS 211

que poseen la característica de ser conectadas en red para ser controladas remotamente.

Acción de actores Respuesta del sistema

1. Este caso de uso comienza cuando un

funcionario desea realizar una consulta a la base

de datos con respecto a un vehículo de interés con

ciertas características. Entonces, selecciona la

opción ―buscar vehículo‖.

2. El SW despliega por pantalla la ventana de

búsqueda de vehículos.

3. El funcionario ingresa las opciones de

búsqueda

4. El sistema devuelve todas las opciones de la

búsqueda realizada.

5. El funcionario ve los resultados de la búsqueda

y encuentra la opción más adecuada.

48

2) Módulo de red: Este módulo está compuesto por todos los dispositivos de red que

interconectan las cámaras con el servidor que ejecutará el SW (eg: router, switch y

firewalls).

3) Software: Este módulo es el SW en sí. Está compuesto por todos los algoritmos para el

conteo de vehículos y análisis de color, además por la interfaz de usuario.

4.4. Modelo conceptual. El modelo conceptual explica los conceptos significativos en un dominio del problema, es

decir, muestra la esencia de los objetos que compondrán el SW. Éste es una aproximación al

modelado UML (que contiene todas las clases, atributos y métodos de SW). La Figura 18

muestra el modelo conceptual creado para el SW.

Figura 18: Modelo conceptual del SW

49

5. Implementación

5.1. Interfaz de usuario Uno de los objetivos de esta memoria es desarrollar una interfaz de usuario que facilite la

búsqueda de situaciones de interés, que alerte en tiempo real la ocurrencia de algún evento y

permita configurar las cámaras del CCTV. En esta sección se mostrará el funcionamiento y

desarrollo de la interfaz de usuario para este SW.

5.1.1. Ventana principal.

Al comenzar la utilización del SW se despliega la ventana principal que sirve para configurar

y ejecutar el SW. La Figura 19 muestra una captura de la ventana principal del SW separada

en 5 zonas que serán estudiadas. La primera corresponde al menú principal y tiene por

función desplegar las opciones de configuración y la ayuda del SW. La segunda zona

corresponde a la barra de herramientas que contiene los botones: conexión (para ejecutar el

SW), buscar vehículo y recargar. La tercera zona corresponde a la barra de cámaras que

muestra las cámaras configuradas y conectadas al SW. La cuarta zona corresponde a la

ventana que muestra los vehículos que están entrando y saliendo por el recinto, esta ventana

posee contadores y botones para reiniciar la cuenta de los vehículos en los accesos del

recinto, además en esta zona se produce la alerta visual al ingresar un vehículo. La quinta

zona, corresponde a la barra de visualización de las cámaras activas, aquí es donde se muestra

la captura de la cámara en tiempo real.

50

Figura 19: Ventana inicial del SW.

La ejecución del SW procede luego de escoger la opción de conectar, ubicada en la barra de

herramientas. Luego, comienza la capturar las imágenes desde las cámaras configuradas y se

aplican los algoritmos que estén configurados. La Figura 20 muestra esta situación para sólo

una cámara activa. Se observa que en la ventana de entrada y salida de vehículos se muestran

cuadros con la información de cada uno. Esta información es: nombre de la cámara de

acceso, tipo de acceso, la fecha, la hora y los colores reconocidos del vehículo.

51

Figura 20: Ventana principal del SW en funcionamiento

5.1.2. Configuración.

La configuración del SW se lleva a cabo luego de seleccionar una de las opciones del menú

principal. Por ahora, existen sólo dos configuraciones: configuración de las cámaras y

configuración de la Base de datos. Posteriormente, se pueden añadir más opciones de

configuración (por ejemplo: configurar los algoritmos) ya que esta interfaz presenta la

ventaja de ser incremental.

5.1.2.1. Configuración de cámaras

La configuración de cámaras tiene por objetivo: agregar, modificar y eliminar cámaras del

CCTV. La Figura 21 muestra la configuración de los datos de las cámaras. Para agregar una

cámara nueva sólo basta con llenar los datos de la cámara y clickear en ―Add New Camera‖.

Los datos a crear o modificar en una cámara son: el nombre de la cámara, la dirección IP, el

usuario de conexión y la contraseña de acceso. Además, se debe capturar una imagen de la

cámara cuando ésta es agregada por primera vez, esta imagen servirá para la configuración de

las áreas de máscara y zonas de actividad.

52

La configuración de las áreas de máscaras (toda área exterior a éstas no será analiza por los

algoritmos) y de las zonas de actividad (zona exclusiva del algoritmo de conteo por zonas de

actividad 5.2.1) se realiza en la pestaña ―Configurar Áreas‖. La Figura 22 muestra la

configuración de un área de máscara para una cámara. La configuración de ambas (zonas y

áreas) poseen forma similar pero son guardadas en archivos distintos.

Figura 21: Configuración de datos de las Cámaras.

Figura 22: Configuración de las áreas máscaras y zonas activas para cada cámara.

53

5.1.2.2. Configuración de la Base de datos

La configuración de la base de datos tiene por objetivo agregar y/o modificar los parámetros

de conexión a la base de datos. Se lleva a cabo seleccionando la opción desde el menú

principal ConfiguraciónConfigurar Base de datos. Los parámetros a configurar son: la

dirección donde reside la BD, el nombre de la base de datos, el usuario y contraseña.

Figura 23: Configuración de la base de datos.

5.1.3. Búsqueda de vehículos

La búsqueda de vehículos tiene por objetivo encontrar los vehículos que han sido detectados

por el SW. Esta interfaz posee la capacidad de realizar búsquedas con los campos de la fecha

y hora de inicio y fin, junto con la característica del color y su tipo de control (entrada o

salida). Al realizar la búsqueda se despliegan las imágenes de los vehículos junto con su

información. Mayor información sobre la búsqueda de vehículos se encuentra en la sección

5.4.

54

Figura 24: Interfaz de búsqueda de vehículos.

5.2. Algoritmos de conteo automático.

Contar los vehículos de forma no invasiva y que los resultados sean fiables, son algunas de

las motivaciones de esta memoria. En esta sección se analizan dos algoritmos de conteo de

vehículos: Conteo por zona de actividad y Conteo por seguimiento del vehículo. Para cada

algoritmo se explica su funcionamiento, se analizan los resultados obtenidos en la fase de

testing y se mencionan sus limitaciones y dificultades.

5.2.1. Algoritmo de conteo en zonas de actividad.

El algoritmo de conteo en zonas de actividad intenta contar vehículos dependiendo de la

cantidad de pixeles que estén en una zona de actividad previamente configurada. Esta zona es

configurada mediante la interfaz de usuario (Sección 5.1.2.1). Este algoritmo se separa en dos

etapas: la etapa de configuración y la etapa de ejecución (Figura 25). Aunque este algoritmo

no es sofisticado tiene la característica de adaptarse a cambios de iluminación con resultados

satisfactorios.

55

Figura 25: Diagrama de bloques de la etapa de configuración y ejecución del algoritmo de conteo en zonas

de actividad.

5.2.1.1. Etapa de configuración.

La etapa de configuración es una etapa previa, donde se configura todo lo necesario para el

correcto funcionamiento de este algoritmo. Se compone de dos pasos:

4) Configuración Inicial: En este paso se provee toda la configuración necesaria para el

correcto funcionamiento del algoritmo de conteo por zonas de actividad. Se divide en tres

etapas:

a) Configuración de zonas de actividad: En esta etapa se configuran las zonas de

actividad en la interfaz de usuario (Figura 26). Las zonas de actividad son las áreas

donde posiblemente circulen los vehículos. Existen tres tipos de zonas actividad: de

entrada, salida y entrada/salida. Toda esta configuración se almacena en un archivo

xml por cada cámara contenida en la ruta ./conf/{id_camera}/ActiveZone.xml.

56

b) Configuración de parámetros para la detección de bordes: Para la detección de

bordes se utiliza el filtrado Canny (Canny, 1986). Los parámetros a configurar son: el

umbral menor, umbral mayor y el ángulo de apertura. Los parámetros son

establecidos en el archivo de configuración de la cámara.

c) Establecer el umbral de pixeles: Este umbral sirve para discriminar si existe un

vehículo en la zona de actividad. Este valor se configura en el archivo de

configuración de cada cámara.

Figura 26: Interfaz de usuario para la configuración de las zonas de actividad

5) Inicialización: En esta paso se crean los objetos de las zonas de actividad desde el

archivo de configuración y se crean las imágenes temporales para su uso en los siguientes

procesos.

5.2.1.2. Etapa de ejecución.

Esta etapa tiene como entrada una imagen capturada de la entrada de video, es decir, lo que

se procesa es un frame del video de entrada (Figura 27-a). Los pasos de este proceso son:

1) Convertir imagen a escala de grises: Se realiza esta conversión a la imagen original

porque es necesaria para poder detectar sus bordes. Esto se logra por medio de la función

cvCvtColor(frame, GRAY_image,CV_RGB2GRAY) de OpenCV (Figura 27-b).

2) Detección de bordes: La detección de bordes consiste en encontrar los contornos de una

imagen previamente tratada. Para este algoritmo se utilizó la detección de bordes de

57

Canny (Canny, 1986) que utiliza un filtro basado en la primera derivada gaussiana. La

imagen resultante se muestra en la Figura 27-c.

3) Aplicar máscara de la zona de actividad: El propósito de aplicar esta máscara es

descartar todo lo ajeno a la zona de actividad (Figura 27-d).

Figura 27: Imágenes de los pasos 1,2 y 3 hechos a la imagen original.

4) Análisis de pixeles: Este análisis se divide en tres partes. Primero, se cuenta la cantidad

de pixeles blancos en la imagen filtrada con la máscara. Segundo, se genera un stack con

la cantidad de pixeles blancos de los frames anteriores. Finalmente, se calcula el

promedio de los valores del stack.

5) Discriminar vehículo por umbral: Para discriminar si existe un vehículo en la imagen

se realiza el diagrama de flujo que se muestra en la Figura 28. Se considera que existe un

vehículo en la zona de actividad cuando (WhitePixels>Average+umbral) y se considera

que no hay un vehículo en caso contrario. La variable booleana ―freno‖ se utiliza para

que sólo se escriba una vez en la base de datos cuando esté el vehículo en la zona de

actividad.

58

Figura 28: Diagrama de flujo para los pasos 4 y 5.

6) Insertar en la Base de datos: Si la discriminación por umbral resulta positiva se inserta

en la base de datos configurada previamente.

7) Generar alerta: Finalmente, se genera algún tipo de alerta visual o auditiva para que el

usuario se pueda percatar de un vehículo nuevo.

5.2.1.3. Análisis de los resultados

Aunque el presente algoritmo es simple, sus resultados son altamente satisfactoria. El

algoritmo fue testeado con 9 videos con diferentes rangos de dificultad y condiciones

lumínicas, tal como se señala en el Anexo A.

Precisión

La precisión (que indica cuantos vehículos fueron correctamente contados) de este algoritmo

fue altamente satisfactorio. Se obtuvo un 98,1% y un 99,4% de éxito para los vehículos

contados respectivamente en la entrada y en la salida. Existieron falsos positivos detectados

como: objetos pequeños (personas) y vehículos livianos (bicicletas y motocicletas) (Figura

29).

59

Figura 29: Falsos positivos

Sensibilidad

Para la sensibilidad se obtuvo un 96,7% para los vehículos de entrada y un 85,9% para los

vehículos de salida. Acá los falsos negativos (vehículos que existen pero no fueron contados)

son mayores cuando se presentan condiciones de iluminación discontinuas, esto sucede

porque el algoritmo no es capaz de actualizarse correctamente a las nuevas condiciones de

iluminación que se presentan en la captura de la cámara de vigilancia.

F-Score

Para los valores de F-Score se obtuvo un positivo resultado para la entrada de los vehículos

con un 97,4%, mientras que, para los vehículos de salida se obtuvo sólo un 92,1%. Estos dos

resultados promedian un 94,75%, el cual no es un mal resultado. El bajo rendimiento para el

resultado en los vehículos de salida se debe a que los cambios de iluminación producen ruido

en las zonas de actividad, dificultando la adaptación del algoritmo.

5.2.1.4. Dificultades y limitaciones del algoritmo.

Limitaciones

1) Zonas de actividad estáticas: Como las zonas de actividad son fijas para cada cámara,

movimientos bruscos de la cámara o cambios en el flujo peatonal y vehicular, llevarían a

obtener malos resultados para este algoritmo. Una propuesta de solución para esta

limitante es permitir que el software luego de un tiempo prolongado pregunte al usuario

si la zona de actividad está bien configurada.

2) Parámetros no adaptables: Aunque este algoritmo posee una adaptabilidad para

cambios de condiciones en el ambiente, existen parámetros que no son flexibles. Estos

parámetros no se pueden adaptar automáticamente porque necesitan la intervención de un

agente humano que distinga la mejor opción. Por ejemplo, los parámetros que marcan

mejor los bordes de los objetos se deben escoger mirando una serie de imágenes que se

60

contrasten entre la imagen original y la imagen luego de la detección de bordes. Una

propuesta de solución, es ofrecer al usuario luego de algún tiempo de ejecución la

posibilidad de evaluar si los parámetros configurados siguen siendo satisfactorios.

3) Poca distinción de objetos: El algoritmo no considera la forma del objeto que está en la

zona de actividad, sólo considera su tamaño, por lo tanto bajo una mayor afluencia de

objetos distractores en la zona de seguridad sus resultados pueden variar

desfavorablemente. Una solución radica en generar algoritmos que representen el

contorno o su esqueleto.

Dificultades

1) Crear un algoritmo adaptable a las condiciones lumínicas: Pensar en cómo adaptar el

algoritmo a nuevas condiciones fue la mayor dificultad que se enfrentó para este

algoritmo. De no contar con una adaptación el éxito en la sensibilidad y precisión del

algoritmo serían bajos. Esta dificultad fue resuelta pensando que en una cantidad de

tiempo el comportamiento de las zonas pueden ser descritas por su promedio de la

cantidad de pixeles, entonces cuando hay sombras los pixeles en la zona suben

proporcionalmente. Luego, cuando la cantidad total de pixeles es superior a este

promedio más la cantidad de pixeles aproximados para un vehículo, se afirma que en la

zona de actividad se encuentra un vehículo.

2) Encontrar los mejores valores para los parámetros de configuración: Como los

parámetros deben ser configurados analizando las imágenes que se están formando, el

número de iteraciones para llegar a un resultado satisfactorio puede ser altísimo, esto

genera un gasto de tiempo proporcional al número de cámaras que se deban configurar.

Una solución a esta dificultad es generar un algoritmo genético que a partir del

entrenamiento humano mute para encontrar los mejores valores de configuración.

5.2.2. Algoritmo de conteo por seguimiento.

El conteo por seguimiento consiste en contar vehículos dependiendo de su tiempo de vida y

su camino en la escena. El seguimiento del vehículo se realiza por medio de una

segmentación de movimiento. Este algoritmo se separa en dos etapas: la etapa de

configuración y la etapa de ejecución.

61

5.2.2.1. Definiciones

Actualización de fondo por mezcla de gaussianas: Para la segmentación de movimiento se

utiliza la actualización de fondo por mezcla de gaussianas (MoG: Mixture of Gaussians)

basado en el trabajo de (KadewTraKuPong & Bowden, 2001). Este trabajo considera los

términos definidos en la Tabla 2.

Tabla 2: Definiciones para la actualización de fondo por Gaussianas

Nombre Acrónimo Descripción

BackGround BG Corresponde a una imagen del fondo de la escena ForeGround FG Corresponde a una imagen binaria que denota con pixeles

blancos el movimiento.

Window Size - Es la tasa de aprendizaje para actualizar el BackGround.

5.2.2.2. Etapa de configuración.

La etapa de configuración es una etapa previa, donde se configura todo lo necesario para el

correcto funcionamiento de este algoritmo (Figura 30). Se compone por dos pasos:

Figura 30: Diagrama de bloques para la etapa de configuración del algoritmo de conteo por segmentación

Configuración inicial de parámetros:

o Configuración de la segmentación por mezcla de gaussianas (MoG): Este

algoritmo requiere configurar los parámetros de entrada para la segmentación

MoG (KadewTraKuPong & Bowden, 2001). Los parámetros a configurar

son: la tasa de aprendizaje (Window Size), el número de gaussianas que se

utilizarán (generalmente 3), el umbral de los pesos para el BG, el

umbralizado de la salida, el área mínima a considerar para el FG, el peso

inicial y la varianza inicial. Para la implementación del conteo por

seguimiento se utilizó la clase estándar provista por OpenCV.

62

o Configuración de la detección de bordes: Al igual que en la sección 5.2.1.1

se configuran los parámetros para el filtro Canny en el archivo de

configuración de la cámara.

o Configuración de Blobs: Para etiquetar los objetos en las imágenes filtradas

se utiliza un algoritmo de etiquetado basado en el trabajo de (Chang, Chen,

& Lu). Los Blobs pasan a ser contenedores de los objetos detectados por la

segmentación. El parámetro a configurar es el área mínima de este

contenedor. Para la implementación de Blobs se utiliza una librería GNU de

OpenCV creada por (Carnero Liñán) llamada cvBlobs. Este proyecto se aloja

en el sitio web http://code.google.com/p/cvblob/.

o Configuración de Tracking: Para seguir los objetos se utiliza el

seguimiento básico que provee la librería cvBlobs. Este seguimiento está

basado en el trabajo de (Senior, Hampapur, Tian, Brown, & Pankanti, 2001)

que propone un seguimiento por apariencia de objetos. Los parámetros de

configuración son: la distancia entre blobs, el tiempo de actividad mínimo y

el tiempo de inactividad máximo.

Inicialización: En este paso se crean todos los objetos necesarios para la ejecución

del algoritmo.

5.2.2.3. Etapa de ejecución.

Para el conteo por seguimiento de vehículos se estudiaron 3 métodos de seguimiento y se

evaluaron sus respectivos resultados (Figura 31). A continuación se analizan los pasos para

cada uno de los métodos.

63

Figura 31: Diagrama de bloques para la etapa de ejecución del algoritmo de conteo por segmentación

El paso número 1 es común para todos los métodos.

1) Detección de bordes (Canny): Este paso convierte la imagen de entrada en escala de

grises y se realiza una detección de bordes con el filtrado Canny. Este paso es igual al

descrito en la sección 5.2.1.2, pasos 1 y 2.

Método 1

Este método supone una combinación de filtros morfológicos entre el FG del frame de

entrada y la imagen luego de la detección de bordes. De este modo se obtiene un nuevo FG

para su etiquetado. Este método se compone por los siguientes pasos:

2) Aplicar máscara de la cámara: A la imagen de entrada se aplica la máscara de la

cámara, que corresponde a la suma de las áreas de máscaras.

3) Actualizar el modelo estadístico de gaussianas del frame: Luego de aplicar la máscara

de la cámara se actualiza el MoG con la imagen resultante en el paso anterior. Como

resultado se obtiene el FG actualizado (FG_frame). En la Figura 33-b se puede apreciar el

resultado de este paso.

4) Aplicar filtros morfológicos: En este paso se aplica una serie de dilataciones y

operaciones lógicas entre FG del frame y la imagen resultante luego de la detección de

bordes (Figura 32). Como resultado se entrega la imagen binarizada FG_M1,

64

correspondiente al ForeGround del método 1 (FG_M1). En la Figura 33-c se puede

apreciar el resultado de este paso.

Figura 32: Diagrama de bloques del filtro morfológico correspondiente al método 1

Figura 33: Imágenes del método 1. (a) Imágenes de entrada, (b) Imágenes resultantes luego del paso 3, (c)

Imágenes luego de aplicar filtros morfológicos, (d) Imágenes resultantes después del tracking.

Método 2

Este método tiene la filosofía utilizar un cierre morfológico (dilatación y erodación) para el

FG de la imagen con sus bordes detectados.

1) Aplicar máscara de la cámara: A la imagen resultante de la detección de bordes se

aplica la máscara de la cámara. Esto sirve para disminuir un costo computacional.

2) Actualizar el MoG de la imagen con su detección de bordes: Se realiza este paso

porque la información proveniente de los bordes del objeto puede ser aprovechada como

65

una aproximación a su movimiento. Esta actualización tiene el mismo costo que la

actualización descrita en el método 1. En la Figura 35-b se puede apreciar el resultado de

este paso.

3) Aplicar cierre morfológico: A la imagen resultante del paso anterior se aplica una

dilatación junto con una erosión, para realizar un cierre morfológico entre los bordes que

están próximos entre sí (Figura 34). El resultado de este paso es mostrado en la Figura

35-c.

Figura 34: Diagrama de bloques del filtro morfológico correspondiente al método 2

Figura 35: Imágenes del método 2. (a) Imágenes de entrada, (b) Imágenes resultantes luego del paso 3 (c)

Imágenes luego de aplicar filtros morfológicos, (d) Imágenes resultantes después del tracking.

66

Método 3

Este método tiene la hipótesis que se puede llegar a un mejor resultado por medio de utilizar

el FG del método 1 como una máscara sobre el FG del método 2. Cabe destacar que este

método es más costoso en tiempo de ejecución que los dos métodos anteriores.

2) Aplicar filtro morfológico a ambos FG: En este paso se dilata exageradamente la

imagen FG resultante del método 1 (Figura 37-b) para que actúe como una máscara para

el FG obtenido del método 2 (Figura 37-c). De esta forma se intenta sólo obtener los

bordes de un objeto en movimiento (Figura 36). Teóricamente esto sirve para disminuir

el número de falsos negativos que se pueden presentar en una escena, como son las

sombras de otros objetos y cambios en la iluminación de la escena.

Figura 36: Diagrama de bloques del filtro morfológico correspondiente al método 3

67

Figura 37: Imágenes del método 3. (a) Imágenes de entrada, (b) Imágenes dilatadas de FG del método 1, (c)

Imágenes luego del AND entre la imagen dilatada y el FG resultante del método 2, (d) Imágenes después del

tracking.

Las etapas siguientes se aplican por cada área que posea la cámara. Esto es para evitar errores

de consistencia entre áreas.

3) Aplicar la máscara de área: Se aplica la máscara de un área definida al FG resultante de

alguno de los tres métodos mencionados anteriormente.

4) Crear blobs: En este paso se etiquetan los segmentos de la imagen FG resultante de uno

de los métodos. Para su implementación se utiliza la función cvLabel(IplImage const

*img, IplImage *imgOut, CvBlobs &blobs) basada en el trabajo de (Chang, Chen, & Lu).

Esta función requiere como entrada la imagen FG (que debe ser una imagen binaria), una

imagen binaria con profundidad (depth) especial IPL_DEPTH_LABEL y el objeto

contenedor blobs (que es un mapeo de cada blob).

5) Filtrar blobs por área: Los blobs resultantes del paso anterior son filtrados dependiendo

de su área. Para esto se utiliza la función cvFilterByArea (CvBlobs &blobs, unsigned int

minArea, unsigned int maxArea). El tamaño en pixeles de un vehículo irá cambiando

dependiendo de cada cámara. Cabe destacar que el algoritmo no considera geometría

proyectiva por lo tanto no es capaz de identificar la consistencia del tamaño de un objeto

68

en una secuencia de imágenes, sin embargo, aplicar este filtro tiene como objetivo

eliminar, en lo posible, el ruido que se puede producir por sombras y reflejos.

6) Tracking de objetos: El seguimiento de un objeto (tracking) se ejecuta luego de detectar

y etiquetar la imagen del FG. La idea consiste en asociar los múltiples objetos en

consecutivos frames a un solo blob correpondiente. Para la implementación de este paso

se utilizó la clase cvTrack de la librería cvBlobs, basado en el trabajo de (Senior,

Hampapur, Tian, Brown, & Pankanti, 2001). La función utilizada es

cvUpdateTracks(CvBlobs const &blobs, CvTracks &tracks, const double thDistance,

const unsigned int thInactive, const unsigned int thActive, Camera *cam), donde son

necesarios los parámetros configurados en la sección 5.2.2.2. Para cada objeto detectado

por este algoritmo de seguimiento se crea un candidato el cuál será analizado para su

conteo.

7) Discriminación de candidato: Cada candidato creado en el paso anterior se debe

someter a una discriminación de tamaño y trayectoria (de entrada o salida).

a) Tamaño en el tiempo: Bajo un estudio empírico se determina el promedio mínimo

para que un objeto sea considerado como un vehículo. Cabe destacar que el algoritmo

no contempla geometría proyectiva por lo tanto su tamaño no se considera como una

constante a medida que el vehículo se mueve en el escena. Por lo tanto, describir el

promedio de su tamaño promete tener una estimación fiable respecto a su tamaño

real.

b) Análisis de trayectoria: El análisis de su trayectoria se realiza por medio de un

estudio sobre llenado de bandas de posición, como se muestra en la Figura 38-c. Este

estudio consiste en observar la trayectoria del candidato en el tiempo y describir su

trayectoria como un movimiento de ―entrada‖ o ―salida‖, dependiendo del orden de

llenado de las bandas.

69

Figura 38: Análisis de la trayectoria de un vehículo. (a) Imágenes originales, (b) Imágenes luego del

tracking, (c) Imágenes con llenado de bandas.

8) Insertar en la Base de Datos: Si la discriminación por umbral resulta positiva se inserta

en la base de datos configurada previamente.

9) Emitir señal: Finalmente, se genera algún tipo de alerta visual o auditiva para que el

usuario se pueda percatar de un vehículo nuevo.

5.2.2.4. Análisis de los resultados

El presente algoritmo fue testeado utilizando los mismos videos que para el algoritmo de

conteo por zonas de actividad. Los resultados obtenidos por este algoritmo están detallados

en el Anexo A. Como resumen se crean las tablas Tabla 3 y Tabla 4, provenientes de los

resultados de todos los métodos en la sección 0 y 0.

Tabla 3: Resultados de los TP, FN, FP y TN para todos los métodos del algoritmo de conteo por

seguimiento.

Método Verdaderos Positivos

Falsos negativos

Falsos Positivos

Verdaderos Negativos

Entrada Salida Entrada Salida Entrada Salida Entrada Salida

Método 1 129 171 86 11 11 1 0 2

Método 2 150 162 61 13 9 0 0 0

Método 3 150 179 39 4 9 2 7 0

70

Tabla 4: Resultados de la Precisión, Sensibilidad y F-Score para todos los métodos del algoritmo de conteo

por seguimiento

Método Precisión Sensibilidad F-score

Entrada Salida Entrada Salida Entrada Salida

Método 1 92,1% 99,4% 60,0% 94,0% 72,7% 96,6%

Método 2 94,3% 100,0% 71,1% 92,6% 81,1% 96,1%

Método 3 94,3% 98,9% 79,4% 97,8% 86,2% 98,4%

Precisión

Los resultados para la precisión de este algoritmo no fueron los esperados en un comienzo.

Se esperaba que, al utilizar la técnica de seguimiento de múltiples objetos con segmentación

y actualización de fondo por medio de Gaussianas, todos los objetos en la escena fueran

detectados (desde personas y hasta vehículos pequeños). En parte, este postulado fue

correcto, porque para condiciones lumínicas estables el algoritmo funciona a la perfección

detectando objetos en las zonas de acceso, sin embargo, cuando estas condiciones varían el

resultado cambia notoriamente. Esto se debe porque como los vehículos poseen partes

refractantes y transparentes, la iluminación hace que se saturen y no puedan ser encontradas

con los parámetros previamente configurados (Figura 39-b y Figura 39-c).

Figura 39: Dificultades con la iluminación. (a) Imagen orginal, (b) Imagen resultante de la segmentación,

(c) Detalle de la separación del vehículo

Entre los tres métodos el segundo es y tercero presentan una pequeña diferencia respecto al

primero para los resultados de la precisión. Ahora bien, como el tercer método tiene un costo

computacional mayor que el segundo y el primero, si se necesita rapidez eventualmente el

segundo método funcionaría mejor que el tercero.

71

Sensibilidad

Como se dijo antes, la sensibilidad marca que tan real es la detección de los objetos según la

GroundTruth. El resultado para todos los métodos es notoriamente bajo. Esto es porque la

cantidad de falsos negativos son mayores con malas condiciones de luminosidad, al igual que

en la precisión por las características reflectantes de los vehículos (Figura 39-b).

Como se esperaba la combinación de ambos métodos (método 3) traería una disminución de

los falsos positivos puesto que el FG del método 1 actúa como una máscara para el FG del

método 2. Entonces, como existe una disminución de los falsos positivos esto implica un

incremento en la sensibilidad del algoritmo.

F-Score

Como se esperaba el F-Score se incrementó al combinar el primer y segundo método, pero

aún así los resultados no fueron totalmente satisfactorios, obteniendo un 92,3% promediado

entre los resultados de entrada y salida. Para este método se esperaba un resultado superior al

entregado por el algoritmo de conteo por zonas de actividad (94,75%). Este resultado no se

pudo incrementar por la poca adaptabilidad de todos los métodos a nuevas condiciones de

iluminación.

5.2.2.5. Dificultades y limitaciones del algoritmo

Limitaciones

1) No adaptable en ejecución: Una limitación importante es que la librería de OpenCV

para la segmentación de movimiento no puede ser actualizada en la ejecución del

algoritmo. Esto implica que para cambios bruscos de iluminación los parámetros

configurados no actúen de forma adecuada.

2) Baja capacidad de MTT: La librería cvBlobs que es utilizada para el tracking de objetos

no cuenta con la capacidad avanzada de MTT. Pierde el seguimiento de los objetos

cuando se produce una ocultación dinámica, pero sí mantiene el seguimiento para el

objeto más grande. Para el caso de una intersección entre un vehículo y una persona, el

blob vehículo (que posee un tamaño mayor) absorbe a la persona, posteriormente para su

separación, se mantiene el tracking para el vehículo puesto que posee mayor tamaño que

la persona.

72

3) Sin distinción de objetos: Este algoritmo no describe una forma para clasificar los

objetos. Esto implica que no existe un control de falsos negativos lo que afecta

inversamente el porcentaje de la sensibilidad. Para solucionar este problema habría que

crear un algoritmo que clasificara por forma de vehículos como en el trabajo de (Koller,

Daniilidis, & Nagel, 1993).

Dificultades

1) Unir el vehículo: La principal dificultad se debió a que como las condiciones lumínicas

cambian y el vehículo posee partes transparentes y refractantes, el algoritmo de tracking

tiende a tomar un vehículo como dos objetos separados. Este problema no se podía

abordar modificando el algoritmo de tracking, puesto que, el error se encontraba en la

imagen binarizada de entrada para el algoritmo de tracking (Figura 39-c). Entonces, se

afrontó el problema realizando filtros morfológicos que unieran la estructura del vehículo

en un solo objeto. Por este motivo nace la necesidad de evaluar los tres métodos descritos

para el algoritmo de conteo por seguimiento. El tercer método fue el más exitoso en unir

dichas partes separadas del vehículo, obteniendo resultados satisfactorios que se reflejan

en un incremento de la sensibilidad.

2) Discriminar vehículos: Discriminar vehículos de otros objetos es una dificultad

relevante para el éxito de este algoritmo. Como se mencionó en el tercer punto de las

limitaciones es necesario crear algún tipo de distinción que no sólo considere el tamaño

del objeto, sino características más refinadas. Sin embargo, se realizó un estudio respecto

entre que tamaños de objetos correspondían mejor a un vehículo. Además, como el

algoritmo no cuenta con geometría proyectiva5 el tamaño del vehículo no se toma como

una constante a medida que avanza en la escena, sino como valores crecientes o

decrecientes. Esto dificulta aún más la tarea del algoritmo de seguimiento y la tarea de

encontrar un valor correcto para discriminar el tamaño los vehículos en la escena.

3) Describir la trayectoria del objeto: Se describió la trayectoria de un objeto dependiendo

de la posición de su centro de masa y se clasificó como de entrada o salida dependiendo

de cómo llenara bandas definidas Figura 38-c. Como el objeto tiene las dificultades y

5 Rama de la geometría que describe las propiedades e invariantes de las figuras geométricas bajo una

proyección

73

limitaciones descritas anteriormente, el centro de masa cambia dificultando su análisis.

Para evitar esto se crearon simples reglas que no permitiera errores para la trayectoria.

74

5.3. Algoritmos de análisis del color.

Esta sección propone dos algoritmos para el reconocimiento del color que trabajan en

espacios de color distintos al RGB. La sección 5.3.1 trata sobre encontrar el color de un

vehículo definiendo bandas de color en el espacio HSV y la sección 5.3.2 describe el

algoritmo de detección de color utilizando histogramas. Cabe destacar, que estos dos

algoritmos pueden ser utilizados no sólo para encontrar una aproximación del color de

vehículos, sino que pueden ser expandidos para cualquier tipo de objeto.

5.3.1. Algoritmo de detección de color por bandas en espacio HSV.

El algoritmo para la detección de color por bandas intenta detectar el color de un objeto

dependiendo de la cantidad de pixeles acumulados en el tiempo entre bandas definidas en el

espacio de color HSV (Figura 40). Este algoritmo se separa en dos etapas: análisis y

configuración de las bandas de color y la etapa de ejecución del algoritmo.

Figura 40: Histogramas H.S y V para la entrada de un vehículo de color rojo.

75

5.3.1.1. Etapa de análisis y configuración.

Figura 41: Diagrama de bloques de la etapa de análisis y configuración del algoritmo de detección de color

por bandas.

1) Análisis de bandas de color: El análisis de las bandas de color consiste en analizar los

histogramas de H, S y V para un conjunto de vehículos con distintas condiciones

lumínicas. En la Figura 42 se muestran los histogramas para cuatro condiciones de

iluminación diferentes. El objetivo de este análisis es obtener los mejores resultados para

el correcto funcionamiento de las bandas de color del algoritmo. Esta etapa se divide en

los siguientes pasos:

a) Construir histogramas: Se construyen los histogramas H, S y V del seguimiento de

un vehículo. Estos histogramas pueden ser almacenados en el disco o sólo ser

visualizados en el SW.

b) Analizar histogramas: Se analizan los histogramas cuantitativamente para saber que

bandas ocuparán los colores en el espacio HSV (Figura 43-a y Figura 43-b).

Figura 42: Histogramas de vehículos con distintas condiciones lumínicas. (a) luz día-discontinua, (b) luz

día-continua, (c) luz atardecer, (d) luz incandescente.

76

c) Concluir resultados: Se concluyen y establecen las bandas que ocupará cada color.

Por ejemplo, en la Figura 43 se define como color negro a todos los pixeles que

posean un V menor a 25. Cabe destacar que este paso se puede realizar sólo una vez

para todas las cámaras, puesto que el espacio de color se mantiene siempre constante.

Figura 43: (a) Cono HSV (b) Bandas de color para el cono HSV

2) Configuración de bandas de color: Los resultados concluidos son configurados dentro

del algoritmo para establecer el color de cada pixel del vehículo en movimiento. Se

pueden definir tantas bandas de color como sean necesarias, para casos prácticos de

vehículos se definen las bandas como: rojo, verde, azul, blanco, gris y negro.

5.3.1.2. Etapa de ejecución

La etapa de ejecución consiste en determinar el color dominante del vehículo. Esta etapa se

divide en dos partes. La primera se realiza para cada frame que posea un candidato y

corresponden a los pasos 1,2 y 3 (Figura 44). La segunda parte se realiza cuando se confirma

que el candidato es un vehículo y corresponde a los pasos 4 y 5 (Figura 45). En la Figura 47,

se muestra un resultado del seguimiento de un vehículo luego de realizar este algoritmo.

Figura 44: Etapa de ejecución correspondiente a los pasos 1,2 y 3 del algoritmo de detección de color por

bandas.

77

Figura 45: Etapa de ejecución correspondiente a los pasos 4 y 5 del algoritmo de detección de color por

bandas.

1) Encontrar contornos: En un comienzo la imagen FG (que es la imagen resultante de

alguno de los métodos descritos en 5.2.2.3) posee áreas cerradas que no son considerados

como parte de la FG (Figura 46-a), estas áreas corresponden generalmente a partes no

opacas de los vehículos (vidrios y reflejos del vehículo). Para encontrar estas áreas es

necesario realizar una detección de los contornos en la imagen y luego etiquetar a cada

contorno. Para efectuar este procedimiento se utiliza la función de OpenCv

cvFindContours, donde los contornos son almacenados en una arreglo.

2) Realizar llenado de áreas: Con los contornos ya detectados, sólo basta rellenar las áreas

que se encuentran dentro de otros contornos. Como se muestra en la Figura 46-b el

contorno marcado con rojo contiene un contorno interior azul. Este contorno azul es el que

debe ser rellenado con pixeles blancos para que la imagen FG sirva como máscara para el

paso siguiente. Para realizar este procedimiento se utiliza la función de OpenCV

cvDrawContours(image,contour, external_color, hole_color, max_level, thickness,

line_type, offset), donde el parámetro thickness debe ser CV_FILLED. Otros método para

realizar el llenado de un área es por medio de la función cvFloodFill, pero esta posee la

desventaja que se debe entregar un punto dentro del contorno a llenar.

Figura 46: Rellenado de áras. (a) Imagen original, (b) Detección de contornos, (c) Contorno rellenado

3) Contar pixeles de color definido por bandas: Finalizado el paso anterior, se obtiene una

imagen FG_FILL que será utilizada como máscara sobre la imagen original en el presente

78

paso. La idea de utilizar esta máscara es sólo analizar los pixeles de interés contenidos

dentro del vehículo. Los procedimientos de este paso consisten en:

a) Capturar pixel: Se capturan todos los pixeles que estén dentro de la máscara

FG_FILL.

b) Clasificar pixel: Por medio de las bandas definidas anteriormente se clasifica el pixel

como un color ―puro‖ (rojo, verde, azul, blanco, gris, negro, etc).

c) Almacenar el número total de pixeles en un vector: Por cada imagen se almacena el

total de pixeles de cada tipo de color. Este vector entonces servirá para describir el

porcentaje de color del vehículo en el tiempo.

Figura 47: Imágenes de un vehículo luego de pasar los pasos 1, 2 y 3.

4) Analizar el color dominante del vehículo: Este paso se realiza cuando el candidato se

trata de un vehículo y consiste en encontrar el color dominante del vehículo en todos los

frames mientras se realiza el seguimiento de éste. Entonces, para llevar a cabo este paso se

realiza una suma total de cada color mientras se realiza el seguimiento del vehículo. La

suma obtenida de cada color se transforma a un porcentaje del número total de pixeles.

Luego, estos porcentajes son ordenados decrecientemente. En la Figura 48 se muestran los

resultados obtenidos del porcentaje de color para cada vehículo.

79

Figura 48: Porcentajes de color para cada vehículo. (a) Casos correctos en posición 1, (b) Casos correctos

en posición 2, (c) Casos correctos en posición 3.

5) Insertar en BD: Del paso anterior se obtienen los 3 mayores porcentajes de color para ser

almacenados en la Base de Datos.

5.3.1.3. Análisis y resultados.

El presente algoritmo fue testeado utilizando 4 videos con diferentes condiciones lumínicas.

Los resultados obtenidos por este algoritmo están detallados en el Anexo B.

De los resultados obtenidos de la Tabla 27 que concluye que el algoritmo posee una

eficiencia de detección del color como se muestra en la Tabla 5. Esta tabla refleja la

probabilidad de encontrar un vehículo de color según la posición que ocupe. Por ejemplo, la

probabilidad de encontrar un vehículo en la posición de ―color 1‖ es de un 43,1%. Ahora

bien, si se busca en las dos primeras posiciones habría un 81,6% de probabilidad de encontrar

el vehículo.

Tabla 5: Probabilidad de acierto de color en la posición buscada.

Video Color 1 Color 2 Color 3 Ninguno

1 37,5% 50,0% 6,3% 6,3%

5 49,1% 27,4% 14,5% 7,3%

6 46,8% 27,4% 14,5% 8,1%

9 32,3% 54,8% 9,7% 3,2%

Total 43,1% 38,3% 12,2% 6,6%

80

El bajo resultado obtenido para la primera preferencia de color se debe a que las condiciones

de iluminación son poco favorables y van cambiando a medida que transcurre el tiempo,

hacen que sea muy difícil obtener el color puro del vehículo. Incluso, la identificación del

color para el ojo humano es difícil dadas las condiciones de iluminación descritas. Además,

como muestra la Tabla 28 el porcentaje de color real en la imagen está en su mayoría entre un

20% y 40%. El problema realmente radica en que los otros colores también poseen un alto

porcentaje en la imagen, lo cual dificulta aún más la detección del color de este algoritmo.

Por ejemplo en la Figura 48-a se muestran distintos casos éxito para la primera posición del

vehículo, donde el porcentaje de color original supera el 30%, mientras que los otros dos

colores están cercanos a un 20%. En la Figura 48-b el color real del vehículo se encuentra en

segunda posición, precedida por el color rojo, esto se debe a que las condiciones de

iluminación (luz incandescente) marcan más los tonos rojizos en la imagen, imposibilitando

un perfecto análisis de ésta. En la Figura 48-c el color original se confunde por las

condiciones de iluminación y no es favorecido para obtener su color puro, de todas formas el

color en la posición 3 tiene la peor ponderación con un 12,2%.

Precisión

Según las métricas definidas en 0 el resultado de la precisión para encontrar un vehículo en

cualquiera de las tres posiciones promedia un 93,8%. Este resultado posee la ventaja de

entregar todos los vehículos que poseen una porción considerable del color buscado pero

también posee la desventaja que el número de resultados son muchos más que si se buscara

en una posición específica.

5.3.1.4. Dificultades y limitaciones del algoritmo.

Limitaciones

1) Inadaptable a cambios lumínicos: Posiblemente la limitación más grande para este

algoritmo es su incapacidad de adaptarse a condiciones lumínicas adversas. Si bien el

algoritmo no ha demostrado fiabilidad para una condición lumínica, los cambios en la

iluminación lo afectan gravemente porque las sombras perturban los valores del pixel en el

espacio HSV. Una propuesta de solución es ajustar las bandas de color dependiendo de una

variable que considere la mediana de color en la imagen completa o establecer horas donde

las bandas de color se comporten de distinto modo.

81

2) Limitaciones por el algoritmo de conteo: Para que este algoritmo sea posible es

necesario que ingrese una máscara FG que actúe como filtro y cuente sólo los pixeles en

el área solicitada. En caso de existir una máscara FG deficiente, este algoritmo podría

entregar resultados aún peores. Una propuesta de solución radica en realizar un modelado

del vehículo en una proyección tridimensional, para conservar una forma establecida y

eliminar áreas que no sean de interés como sombras y partes reflectoras del vehículo.

Dificultades:

1) Encontrar las bandas de color: Encontrar bandas de color que mejor se ajusten para este

algoritmo puede ser un gran problema. Esta dificultad radica que el análisis es subjetivo

(consideración de la interpretación de un humano). Incluso los límites entre colores en la

vida cotidiana están restringidos para el entendimiento de cada individuo.

2) Colores de los vehículos: Generalmente los vehículos que transitan por las calles no

presentan diferencias sustanciales en su color. Por ejemplo, encontrar la diferencia entre un

vehículo de color plomo y otro de color arena es prácticamente imposible para este

algoritmo (dada la cercanía entre los dos colores mencionados). Si bien, el algoritmo

podría estar configurado para reconocer un gran número de colores, en la práctica no

habría una mejora en los resultados, porque generalmente los vehículos en su mayoría son

grises, blancos u oscuros. Esto constituye una ventaja, puesto que el algoritmo puede ser

configurado sólo para detectar tipos especiales de color.

3) Dificultad por iluminación: La iluminación juega un papel fundamental para la obtención

del color de un vehículo. Por ejemplo, para bajas condiciones de iluminación un vehículo

azul puede ser fácilmente confundido como un vehículo negro. La falta o exceso de

iluminación pueden tanto beneficiar la detección de color como entorpecerla. Esta poca

certeza hace que su detección sea muy difícil de reflejar por medio de un algoritmo que

describa bandas de colores (incluso para el ojo humano es un proceso complicado). Como

solución a esta dificultad se plantea como trabajo futuro cambiar el espacio de color y

verificar si en otro espacio de color se comporta mejor.

82

5.3.2. Algoritmo de detección de color de un vehículo por análisis de

histogramas en el espacio de color YCrCb.

Este algoritmo intenta detectar el color de un vehículo realizando una correlación entre su

histograma6 de color (en el espacio YCrCb) y los histogramas de una población de vehículos

configurados previamente.

La filosofía de este algoritmo se basa en que un vehículo posee distintos colores en diferentes

proporciones (eg: carrocería roja, parabrisas ―blanco‖ y parachoques negro) y no se puede

describir un vehículo con un único color dominante. En cambio, la idea es comparar estas

proporciones entre vehículos conocidos versus vehículos nuevos. Los histogramas describen

bien estas proporciones de color siempre que se mantenga un número adecuado de

contenedores (bins) del histograma.

Figura 49: (a) frame de entrada del algoritmo, (b) máscara FG_FILL, (c) Histograma 2D de la imagen en

YCrCb

Se escogió el espació de color YCrCb puesto que este espacio representa el color de la

imagen (Cr y Cb) separando su luminancia (Y). Esto debería facilitar la comparación del

color entre los histogramas identificados y los nuevos.

6 Un histograma es una representación gráfica de una suma de datos. En otras palabras los histogramas

son una simple colección de ―cuentas‖ (counts) de datos organizados en contenedores (bins). Los

contenedores son poblados por el número total de datos iguales, por este motivo, los histogramas generalmente poseen una menor dimensión que los datos de entrada. Los histogramas son ampliamente

utilizados en las aplicaciones de video (eg: representar el color de una imagen, representar el contorno

de un objeto, detectar movimiento, encontrar las transiciones entre escenas, entre otros).

83

Este algoritmo se separa en dos etapas: la etapa de configuración de histogramas (Figura 50)

y la etapa de ejecución del algoritmo (Figura 51).

5.3.2.1. Etapa de configuración de histogramas.

1) Configuración de histogramas: Este paso consiste en crear un conjunto de histogramas

de vehículos con distintas situaciones de iluminación y color. Luego, seleccionar una

población de histogramas característicos de cada vehículo con el propósito de compararlos

con el histograma del vehículo en seguimiento. Esta etapa se divide en los siguientes

pasos:

Figura 50: Etapa de configuración del algoritmo de detección de color por histogramas

a) Crear conjunto de histogramas: Este paso consiste en construir los histogramas de

vehículos detectados por el algoritmo de conteo por seguimiento (sección 5.2.2.3) con

distintas condiciones lumínicas. Estos histogramas se construyen con el frame de

entrada y con la máscara del seguimiento del vehículo. La idea es obtener una

población variada tanto en los colores posibles de un vehículo y su iluminación al que

puede estar sometido.

b) Seleccionar histogramas: Luego de crear una población variada, se seleccionan los

mejores candidatos que reflejen el color de un vehículo para condiciones lumínicas

diferentes. Para seleccionar estos candidatos se recomienda observar su máscara, puesto

que si ésta no es acertada, los resultados no necesariamente reflejarán el color real del

vehículo. Los histogramas seleccionados se guardan en un archivo de configuración

xml en el directorio de configuración de la respectiva cámara.

c) Establecer configuración: La configuración se establece para cada cámara existente y

se configura en un archivo ConfHistograms.xml. En este archivo se configura el tipo de

color y la ruta donde se encuentra el archivo xml del histograma.

84

2) Inicialización: Cuando se inicia el SW y se fijan los parámetros de cada cámara, se crea

una lista de histogramas (qListHistograms) provenientes del archivo de configuración. Esta

lista creada es de dos dimensiones y almacena el tipo de color junto con el objeto

CvHistogram que contiene su histograma.

5.3.2.2. Etapa de ejecución.

La etapa de ejecución consiste en determinar cuál de los histogramas cargados en la lista de

histogramas (qListHistograms) se asemeja más al obtenido para el candidato a vehículo. Esta

etapa se realiza en dos partes. La primera parte se realiza para cada frame del vehículo y

corresponde a los pasos 1, 2, 3 y 4. La segunda parte de la etapa consiste en analizar los

histogramas del vehículo mientras se realizó su seguimiento e insertar los colores máximos

obtenidos en la base de datos.

Figura 51: Etapa de ejecución correspondiente a los pasos 1,2, y 3 del algoritmo de detección de color por

histogramas.

1) Detectar contornos: Este paso es igual al realizado en el algoritmo de detección de color

por bandas, descrito en la sección 5.3.1.2. Tiene como objetivo detectar los contornos

externos e internos del vehículo.

2) Llenado de áreas internas: Este paso es igual al realizado en el algoritmo de detección de

color por bandas, de la sección 5.3.1.2. Tiene por objetivo llenar las áreas interiores del

vehículo.

3) Crear histograma YCrCb: En este paso se calcula el histograma del vehículo, con la

máscara obtenida de los pasos 1 y 2 (FG_FILL). Este histograma se calcula realizando las

siguientes fases:

a) Convertir la imagen BGR a YCrCb: La imagen de entrada de este algoritmo viene en

formato BGR (Blue-Green-Red). Como se señaló al comienzo de este algoritmo,

conviene transformar la imagen a otro espacio de color que beneficie su análisis. Por lo

85

tanto, se realiza la conversión utilizando la función cvCvtColor de OpenCv. Esta

función tiene por entrada la imagen original, como salida la imagen transformada y el

tipo de transformación (BGR2YCrCb).

b) Dividir los canales de la imagen YCrCb: Para calcular el histograma es necesario

dividir los canales de la imagen transformada al espacio YCrCb, ya que la información

de la crominancia de la imagen se encuentra en los canales Cr y Cb. Para realizar esta

fase se utiliza la función cvCvtPixToPlane que divide la imagen en tres canales

separados (Y, Cr y Cb).

c) Crear histograma 2D: El histograma que se intenta analizar debe ser de dos

dimensiones, puesto que contendrá la información de los dos canales del color (Cr y

Cb). El valor de cada contenedor del histograma debe poseer rangos entre 0 y 255 (que

es el valor que puede tomar cada píxel). El número de contenedores (bins) se establece

por omisión en 22.

d) Calcular histograma: Luego de crear el histograma se calcula por medio de la función

cvCalcHist. Esta función recibe a los planos Cr y Cb (separados en el paso b) y la

máscara FG_FILL. Como resultado arroja el histograma para los parámetros

establecidos.

e) Comparación de histograma: En este paso se compara el histograma obtenido del

frame actual con cada histograma proveniente de la lista (qListHistograms) de

histogramas de la cámara. La comparación se realiza por medio de la función

cvCompareHist. La comparación se realiza por medio de la correlación entre

histogramas. El método utilizado para la correlación es el mostrado en la siguiente

fórmula:

Donde y N es igual al número de bins en el

histograma. El resultado de la función toma valores desde [-1,1], donde una igualdad

completa de los histogramas tiene como resultado 1 y una desigualdad total -1. El

resultado se inserta en un vector del vehículo que describe el color del vehículo en el

tiempo (colorInTime).

86

Figura 52: Imágenes del frame, las máscaras y los histogramas de un vehículo ingresando.

4) Seleccionar colores dominantes: Este paso es similar al descrito en la sección 5.3.1.2-4.

Se realiza cuando el vehículo ha salido de la escena y consiste en analizar el vector que

almacena el color mientras se realiza su seguimiento (colorInTime). El criterio para

discriminar los colores dominantes es tomar sólo los máximos valores del vector sin

considerar repeticiones.

Figura 53: Etapa de ejecución correspondiente a los pasos 4 y 5 del algoritmo de detección de color por

bandas.

87

5) Insertar en la BD: De los máximos obtenidos en el paso anterior sólo se insertan en la

base de datos los tres mayores valores, en caso de existir menos de tres se inserta el

número detectado. Concretamente, los colores son insertados en la base de datos como una

cadena de caracteres que señala su color (Negro, blanco, verde, etc.) y un entero que señala

el valor porcentual de la correlación realizada en el paso 3-e.

5.3.2.3. Análisis y resultados.

El presente algoritmo fue testeado utilizando 4 videos con diferentes condiciones lumínicas.

Los resultados obtenidos por este algoritmo están detallados en el Anexo B.

Precisión

Según los datos de la Tabla 32 la precisión promedio del algoritmo para los vehículos de

entrada es de un 47,6% y para los vehículos de salida un 64,3%. Notoriamente este resultado

es muy bajo comparándolo con el resultado del algoritmo anterior. El motivo del bajo

resultado es que el entrenamiento al cual fue sometido (número de histogramas cargados) es

insuficiente para soportar la dificultad de las condiciones adversas que suceden en la escena.

Este resultado podría ser mejorado aplicando mapas autoorganizados (SOM: Self-Organizing

Map) que son un tipo de red neuronal no supervisada.

5.3.2.4. Dificultades y limitaciones.

Limitaciones

1) Calidad y cantidad de histogramas de comparación: Para el éxito de este algoritmo es

necesario contar con una población de histogramas rica en variedad y calidad. No obtener

histogramas de calidad resulta una limitante en la comparación que se realiza dando

resultados insatisfactorios.

2) ForeGround de calidad: Tener un FG de baja calidad tanto para la configuración como

para la ejecución consiste en una alta limitante del algoritmo. El FG limita el algoritmo

porque éste refleja el área donde se encuentra el vehículo y como los histogramas sólo

consideran el área interior de la silueta del vehículo la comparación se realizará con un

área que no sea conveniente, arrojando resultados poco satisfactorios.

Dificultades.

1) Crear y seleccionar los histogramas: La fase de configuración de este algoritmo presenta

un nivel de dificultad puesto que su configuración es manual. Seleccionar los histogramas

88

más adecuados sugiere un trabajo manual que debe ser retroalimentado luego de un

conjunto de pruebas.

2) Parámetros del histograma: El número de contenedores que tendrá el histograma es

importante puesto que este número refleja la calidad con que será comparado el

histograma. Escoger un buen número es una tarea importante ya que la rapidez y calidad

de la comparación son inversamente proporcionales entre sí. Es decir, mientras mayor sea

el número de contenedores más lenta será la comparación. Un número equilibrado de

contendores otorgará resultados satisfactorios.

5.4. Búsqueda de vehículos. La búsqueda de vehículos es de suma importancia para el SW puesto que refleja el éxito de

los algoritmos explicados anteriormente y además responde a la primera pregunta planteada

en la sección 1.1.2 (¿Se puede disminuir el tiempo de búsqueda de un vehículo por medio del

SW en comparación con la búsqueda manual?). Esta búsqueda se realiza en la Base de Datos

con los siguientes campos a elección: fecha de inicio y término, hora de inicio y término,

color del vehículo, cámara y control de acceso (entrada o salida) que son declarados en la

interfaz de usuario. A continuación, se abordan tres tipos de búsquedas: búsqueda por fecha y

hora, búsqueda por acceso y búsqueda por color. Claramente, para refinar la búsqueda se

puede utilizar una combinación de estas tres.

5.4.1. Búsqueda por fecha y hora.

Detectado un vehículo, con algún algoritmo de conteo, éste es insertado a la base de datos

con su fecha y hora. Supongamos que se desea buscar un vehículo entre días y horas

conocidas, independiente de los otros campos. La Figura 54 en el cuadrante 1 muestra los

campos a llenar para este tipo de búsqueda. Para realizar esto sólo es necesario buscar el

vehículo llenando los campos de fecha y hora de inicio y fin en la interfaz. Obviamente, si

hay un vehículo que no fue detectado por ninguno de los dos métodos de conteo, el vehículo

no es registrado, por lo tanto no se encontrará luego de realizar su búsqueda.

Respondiendo la pregunta planteada al comienzo de la sección, se puede afirmar que se

disminuye notoriamente el tiempo de búsqueda de un vehículo. Anteriormente se tenía que

revisar un video continuo buscando un vehículo, ahora sólo es necesario encontrarlo

observando imágenes.

89

5.4.2. Búsqueda por acceso.

La búsqueda por acceso consiste en encontrar los vehículos que han transitado por el acceso

registrado en una cámara o por su tipo de acceso (de entrada o salida). Sólo basta con llenar

los campos en la interfaz gráfica ―cámara‖ e ―I/O‖. La Figura 54, cuadrante 2, muestra este

tipo de búsqueda.

5.4.3. Búsqueda por color.

La búsqueda por color del vehículo es un poco más compleja que las dos búsquedas

nombradas anteriormente. Los algoritmos de detección de color vistos en la sección 5.3

guardan como máximo tres valores de los colores detectados en el vehículo considerando el

porcentaje de color o correlación del vehículo. La búsqueda que se realiza en esta etapa

considera que el color buscado es independiente del porcentaje o correlación que fueron

escritos en la Base de Datos. La ventaja de este tipo de búsqueda radica en que es menos

grave encontrar un vehículo erróneo (falso positivo) que no encontrarlo (falso negativo). Es

decir, si se realizara una búsqueda selectiva de un vehículo con valores de correlación o

porcentaje de color el resultado no necesariamente podría arrojar el vehículo buscado, en

cambio, lo omitiría de la búsqueda y a la hora de realizar una selección manual el usuario no

lo encontraría. La desventaja de este tipo de búsqueda es que muestra información irrelevante

ya que los colores que no pertenecen al objeto también son buscados.

La Figura 54 (cuadrante 3) muestra en la interfaz de usuario como se realiza la búsqueda por

color.

Figura 54: Interfaz para la búsqueda de vehículos.

90

6. Conclusiones

El objetivo de esta tesis de desarrollar un SW de análisis de video que integre múltiples

cámaras y extraiga características que permitan registrar e identificar la entrada y/o salida de

vehículos en un recinto cerrado de forma no invasiva ha sido alcanzado. Con esto, además se

cumplen los objetivos generales de esta tesis:

Se desarrollaron algoritmos capaces de detectar vehículos y extraer características

(específicamente el color del vehículo).

Se desarrolló una forma fácil de buscar un vehículo por medio de una interfaz de

usuario.

Además de ofrecer un sistema que cumple con los objetivos ya señalados, se ha demostrado

la eficacia cuantitativa de los algoritmos empleados. De esta forma, se tiene certeza de las

fortalezas y debilidades de cada algoritmo.

En las secciones siguientes se darán conclusiones respecto a los tópicos más importantes

trabajados en esta tesis. En la sección 6.1 se darán las conclusiones para los algoritmos tanto

de conteo de vehículos como para los de detección de color. En la sección 6.2 se concluirá

sobre las contribuciones que otorga esta tesis. Finalmente, en 6.3 se concluye sobre las

limitaciones que posee la tesis y los futuros trabajos que son de interés.

6.1. Acerca de los algoritmos desarrollados. A continuación, se abordan las conclusiones de los algoritmos de conteo por zonas de

actividad y de conteo por seguimiento.

El algoritmo de conteo por zonas de actividad, aunque es simple, posee la ventaja de

obtener resultados bastante satisfactorios para contar vehículos; sin embargo, para

ejecutar los algoritmos de detección de color es necesario utilizar el algoritmo de

conteo por seguimiento. Por lo tanto, no se puede reconocer color si sólo se utiliza el

algoritmo de conteo por zonas de actividad.

De los tres métodos propuestos en el algoritmo de conteo por seguimiento, el método

que posee mejor comportamientos el tercero; sin embargo es el que posee mayor

91

costo computacional, porque utiliza dos gaussianas (Canny y FG). Se debe trabajar

con cuidado en caso de tener muchas cámaras conectadas al sistema.

La inadaptabilidad de los parámetros configurados, para las gaussianas utilizadas en

el algoritmo de seguimiento, genera complicaciones cuando se trata de objetos en

condiciones adversas (baja o alta luminiscencia). Para mejorar los resultados de este

algoritmo se debe encontrar una forma de flexibilizar en ejecución estos parámetros.

A continuación, se darán a conocer las conclusiones para los algoritmos de detección de

color:

Basar el color como un método de diferenciación entre objetos no es apropiado. El

color sirve como limitante de contraste, pero lograr una diferenciación entre grupos

de colores resulta sumamente complicado. Aunque los algoritmos se encuentran en

un estado primitivo sus evoluciones podrían llevar a resultados mejores para cierto

grupo de objetos, pero para el caso particular de vehículos no resulta útil considerar

el color como la característica principal de un vehículo. Se propone realizar esta

diferenciación con la forma del vehículo.

Obtener el color de un objeto es una tarea complicada. El éxito de encontrar un

objeto por sus colores no radica en la exactitud de la detección del color, sino en el

tipo de búsqueda que se realiza.

Aunque los resultados de obtener el color de un objeto por medio de histogramas

fueron poco satisfactorios, se trata de una práctica acertada, puesto que describe el

objeto con proporciones de colores; sin embargo, posee la desventaja que el sistema

que implemente esta solución debe ser entrenado arduamente para obtener resultados

gratos.

6.2. Acerca de las contribuciones que realiza este

trabajo.

Tal vez la mayor contribución que entrega esta tesis, es ofrecer un sistema con una

interfaz gráfica que resuma la búsqueda de hechos de interés en el campo de la video

vigilancia y que actúe de forma automática y no invasiva. Actualmente no se han

encontrado alternativas similares a la planteada en esta tesis.

92

Este trabajo entrega una plataforma para ser escalado fácilmente con distintas

aplicaciones relacionadas a la video vigilancia, por ejemplo, se puede añadir la

funcionalidad de reconocer rostros y contar personas en el mismo recinto cerrado.

Se desarrollaron y compararon algoritmos que pueden servir para próximos trabajos,

tanto mejorando los algoritmos como aplicándolos en nuevos campos.

6.3. Acerca de las limitaciones y futuros trabajos. Como limitantes principales de este trabajo están:

Como limitantes principales de este trabajo están: la inaptabilidad de los parámetros

para el algoritmo de seguimiento y la inhabilidad de poseer métodos basados en

geometría proyectiva para describir los objetos que están en la escena. Resolviendo

estas limitantes se podrían obtener mejores resultados para los algoritmos

desarrollados.

Respecto a trabajos futuros se concluye:

Primero, resolver las limitaciones anteriormente nombradas en esta tesis.

Segundo, desarrollar aún más el algoritmo de detección de color por histogramas,

pero añadiendo técnicas como redes neuronales o algoritmos genéticos.

Tercero, desarrollar algoritmos que describan la forma de los vehículos con la

intención de poder diferenciarlos entre sí.

Cuarto, mejorar la interfaz de usuario para que sirva de plataforma para cualquier

tipo de algoritmo de una forma rápida de desarrollo.

Quinto, añadir algoritmos como: detección automática de placas patentes (ANPR), y

detección de rostros (algoritmo de Haar).

Sexto, añadir funcionalidades en el campo de la domótica y control automático

como: control de accesos, relojes de asistencia y eficiencia energética.

93

7. Glosario

Actividad: Una acción específica realizada por un objeto. 17

BackGround: Corresponde a la imagen de fondo de la escena 61

Blobs: Regiones 2D de la imagen que han sido segmentadas por algún método. Estas

regiones pueden ser definidas como un set de pixeles (no necesariamente conectados) o

como la delimitación de un contorno. 62

Camino/Trayectoria: Una secuencia de atributos espacio temporales obtenidos luego de

realizar seguimiento a un solo objeto. 17

Classification: Consiste en agrupar los objetivos de acuerdo a su nivel de confidencia para

evitar la explosión de combinatorias en MHT. 26

Clustering: Consiste en separar los objetivos en diferentes grupos para evitar la explosión de

combinatorias en MHT. 26

Comportamiento: Descripción de un conjunto de actividades y eventos en un contexto

específico. 17

Evento: La ocurrencia de una actividad durante un intervalo de tiempo dado 17

Filtro Canny: Este filtro es utilizado sobre una imagen en escala de grises para obtener sus

bordes por medio de un filtro basado en la primera derivada gaussiana. 56

ForeGround: Corresponde a una imagen binaria que denota con pixeles blancos el

movimiento. 61

F-Score: Es la media armónica entre la precisión y la sensibilidad.

2*Precision*Sensibilidad/(Presicion + Sensibilidad) 59

Gating: Consiste en construir para cada objetivo una región o puerta en el espacio. La cual

define una zona de validación para la asociación del objetivo. 26

GroundTruth: Información pre-definida que representa el resultado esperado para la

resolución de cierto problema. 101

MTT (Seguimiento de múltiples objetos): Consiste en seguir mútlples objetos en una misma

escena. 25

objetos específicos: genera una descripción exacta de un objeto ya configurado. 20

objetos genéricos: Estos dan una descripción general de un objeto en una imagen para ser

entendido por un sistema digital. 18

Precisión: Medida de fiabilidad para un algorimo, entrega la proporción de la tasa de aciertos

contra aciertos y errores. TP/(TP+FP) 58

Pruning: Consiste en eliminar las hipótesis con baja probabilidad dependiendo de un umbral

para controlar la explosión de combinatorias en MHT. 27

Representación: Figura, imagen o idea que sustituye a la realidad. 18

Ruta: Es un conjunto de caminos o trayectorias que realizan objetos por iguales zonas de

interés. 17

Screening: Generación de hipótesis selectiva para controlar la explosión de combinatorias en

MHT. 26

Sensibilidad: Indica la tasa de aciertos en contra todo lo que se debía detectar. TP/(TP+FN) 59

94

Window Size: Es la tasa de aprendizaje para actualizar el BackGround en la actualización de

fondo gaussiano. 61

95

8. Bibliografía

Arambel, P., Silver, J., Krant, J., Antone, M., & Start, T. (2004). Signal processing, sensor

fusion, and target recognition XIII., (págs. 23-32).

AutoScope Solo Terra. (s.f.). Recuperado el 10 de Noviembre de 2009, de

http://autoscope.com/products/solo_terra.htm

Ballard, C., & Brown. (1982). Computer Vision. Prentice-Hall.

Biliotti, D., Anotonini, G., & Thiran, J. P. (Jan de 2005). ―Multi-layer hierarchical clustering

of pedestrian trajectories for automatic counting of people in video sequences,‖ in Proc. IEEE

Workshop Appl. Comput. Vision, Brekenridge, CO, pp. 50–57.

Blackman, S., Dampster, R., & Reed, R. (2001). Demonstration of multiple hypothesis

tracking (mht) practical real-time implementation feasibility., (págs. 470-475).

Brandle, N., Bauer, D., & Seer, S. (2006). Track-based finding of stopping pedestrians—A

practical approach for analyzing a public infrastructure. Proc IEEE Conf Intell Transport.

Syst., (págs. 115-120). Toronto, Canada.

Brémond, F., & Thonnat, M. (1998). ssues of representing context illustrated by video-

surveillance applications. International Journal of Human-Computer Studies Special Issue on

Context, 48:375–391.

Canny, J. (1986). A computational approach to edge detection. IEEE Transaction Pattern

Analysis and Machine Intelligence 8 , 679-714.

Carnero Liñán, C. (s.f.). [email protected]. Obtenido de

http://code.google.com/p/cvblob/

Chang, F., Chen, C.-J., & Lu, C.-J. A linear-time component-labeling algorithm using

contour tracing technique.

Comaniciu, D., Ramesh, V., & Andmeer, P. (2003). IEEE Transactions on Pattern Analysis

and Machine Intelligence.

96

Cootes, T. F., & Taylor, C. (Enero de 2004). Statistical models of appearance for computer

vision.

Cox, I., & Hingorani, S. (1996). An efficient implementation of reid’s multiple hypothesis

tracking algorithm and its evaluation for the purpose of visual tracking. IEEE Transactions on

Pattern Analysis and Machine Intelligence, 18(2):138–150.

Cucchiara, R., & Piccardi, M. (1999). Vehicle Detection under day and night illumination.

Cucchiara, R., Prat, A., & R.Vezzani. (2005b). Posture classification in a multi-camera

indoor environment. Proccedings of the European Workshop on Advanced Video Based

Surveillance Systems, (págs. 725-728). Kingston, United Kingdom.

D. Kong, D. G. (2005). Counting pedestrians in crowds using viewpoint invariant training.

Proceeding of the british machine vision conference, (págs. 1-10). Oxford, U.K.

Deriche, R., & Faugeras, O. (1990). Trancking line segments. Image and Vision Computing ,

261-270.

Doucet, A., Freitas, N. d., & Gordon, N. (2001). Sequential Monte Carlo Methods in Practice.

Springer-Verlag.

Hsieh, J.-W., Yu, S.-H., Chen, Y.-S., & Hu, W. (Jun. de 2006). Automatic traffic surveillance

system for vehicles tracking and classification. IEEE Trans. Intell. Transport. Syst., vol. 7,

no. 2, pp. 175–187, .

Hu, W., Xiao, X., Fu, Z., Xie, D., Tan, T., & S, M. (2006). A system for learning statistical

motion patterns. IEEE Trans. Pattern Anal. Mach. Intell., vol. 28, no. 9 , 1450–1464.

Hu, W., Xiao, X., Fu, Z., Xie, D., Tan, T., & S.Maybank. (Septiembre de 2006). A coarse-to-

fine strategy for vehicle motion trajectory clustering. IEEE Trans. Pattern Anal. Mach.

Intell., vol. 28, no. 9, pp. 1450–1464 .

Hu, W., Xiao, X., Xie, D., Tan, T., & Maybank, S. (Junio de 2004). Traffic accident

prediction using 3-D model-based vehicle tracking. IEEE Trans. Syst., Man, Cybern. B, vol.

34, no. 3 , 1618-1626.

97

Huang, B., Du, C., Zhang, Y., & Kechadi, M. (Oct de 2006). ―A hybrid HMM-SVM method

for online handwriting symbol recognition,‖ in Proc. Int. Conf. Intell. Syst. Design Appl., pp.

887–891.

Hue, C., Cadre, J.-P. L., & Perez, P. (Julio de 2002). Tracking multiple objects with particle

filtering. IEEE Transactions on Aerospace and Electronic Systems, 38(3):791–812,.

Isard, M., & Blake, A. (1998). Condensation - conditional density propagation for visual

tracking. International Journal of Computer Vision, 29(1):5–28.

Isard, M., & Marccormick, J. (2000). Bayesion Multiple-blob tracker. Proceedings of the

eighth IEEE International Conference on Computer Vision, volume 2, (págs. 34-41).

Vancouver, Canada.

Jebara, T., Kondor, R., & Howard, A. (Dec de 2004). ―Probability product kernels,‖ J.Mach.

Learning Res., vol. 5, pp. 819–844.

Jiao, L., Wu, Y., Wu, G., Chang, E., & Wang, Y. (2004). ―Anatomy of a multicamera video

surveillance system,‖ ACM Multimedia Syst., vol. 210, no. 2, pp. 144–163.

Jinxue, S., Yang, L., Wang, Y., & Hua, Z. (2009). An Object Color Recognition Algorithm

Based on Study-expansion Method. The Ninth International Conference on Electronic

Measurement & Instruments, (págs. 4-202 to 4-205).

Johnson, N., & Hogg, D. (Sept de 1995). ―Learning the distribution of object trajectories for

event recognition,‖ in Proc. British Conf. Mach. Vision, vol. 2, pp. 583–592. .

Jung, Y. K., & Ho, Y. S. (1999). Traffic parameter extraction using video-based vehicle

tracking. Proc. IEEE int. Conf. Intell. Transport Sys., (págs. 764-769).

KadewTraKuPong, P., & Bowden, R. (2001). "An improved adaptive background mixture

model for real-time tracking with shadow detection". Proc. 2nd European Workshp on

Advanced Video-Based Surveillance Systems.

Kamijo, S., Matsushita, Y., Ikeuchi, K., & Sakauchi, M. (2000). Traffic monitoring and

accident detection at intersections.

98

Kelly, P., O'Connor, N., & Smeaton, A. (2006). Pedestrian detection in uncontrolled

environments using stereo and biometric information. Proccedings of the 4th ACM

international workshop on Video surveillance and sersor networks, (págs. 161-170). New

York, USA.

Koller, D., Daniilidis, K., & Nagel, H. (1993). Model-Based Object Tracking in Monocular

Image Sequences of Road Traffic Scenes. Similar Version Published in International Journal

of Computer Vision , 257-281.

Kurien, T. (1990). Issues in the design of practical multitarget tracking algorithms. In Y.

BarShalom, editor, Multitarget Multisensor Tracking: Advanced Applications, chapter

3,volume 1, pages 43–83, Norwood, MA.

Kurien, T. (2002). Reliable classifications with machine learning. In Proceedings of the 13th

European Conference on Machine Learning (ECML’02) (págs. 219-231). London UK:

Springer-Verlag.

Lai, A., Fung, G., & Yung, N. (2001). Vehicle type classification from visual-based

dimension estimation. Procceding of the IEEE Conference on intelligent Transportation

System, (págs. 201-206,25-29).

Leitloff, J., Hinz, S., & Stilla, U. (2006). Automatic Vehicle detection in satellite images.

Li, X., & Hu, W. (2006). "A coarse-to-fine strategy for vehicle motion trajectory clustering",

in Proc. IEEE Conf. Pattern Recognit., pp. 591–594.

Lipton, A., Fujijoshi, H., & Patil, R. ( 1998). Moving target classification and tracking from

real-time video. Proceedings IEEE Workshop on Application of Computer Vision , (págs. 8-

14).

Makris, D., & Ellis, T. (Jun de 2005). Learning semantic scene models from observing

activity in visual surveillance. IEEE Trans. Sys. Man .

Makris, D., & Ellis, T. (2005). Path detection in video surveillance. Image Vis. Comput, vol

20, no 12 , 895-903.

99

Messelodi, S., C.M.Modena, & Zanin, M. (Sep de 2005). Acomputer vision system for the

detection and classification of vehicles at urban road intersections, Pattern Anal. Appl., vol. 8,

no. 1–2, pp. 17–31.

Morris, B., & Trivedi, M. (s.f.). Learning, modeling, and classification of vehicle track

patterns from live video. IEEE Trans. Intell. Transport. Syst .

Morris, T., & Trivedi, M. (s.f.). Learning and Classificacion of trajectories in dynamic

Scenes. A general framework for live video analisys. IEEE trans. Intell. Transport. Syst .

N.Gordon, Salmond, D., & Smith, A. (1993). Novel approach to nonlinear/non-gaussian

bayesian state estimation. Radar and Signal Processing, IEE Proceedings F, 140(2):107–113.

Owens, J., & Hunter, A. (Jul de 2000). ―Application of the self-organising map to trajectory

classification,‖ in Proc. IEEE Visual Surveillance, pp. 77–83.

Porikli, F. (Jun de 2004). ―Learning object trajectory patterns by spectral clustering,‖ in Proc.

IEEE Int. Conf. Multimedia Expo., vol. 2, pp. 1171–1174.

Roberson, N., & Reid, I. (2005). Behaviour understanding in video: A combined method.

IEEE Int. Conf. Comput. Vision, (págs. 808-815). Beijing, China.

Schoepflin, N. T., & Dailey, J. D. (2003). Dynamic camera calibration of roadside traffic

management cameras for vehicle speed estimation. IEEE trans. Intell. TRansport, Vol 8, no

1-2 , 90-98.

Senior, Hampapur, Tian, Brown, & Pankanti. (2001). Appearance Models for Occlusion

Handling. Second International workshop on Performance Evaluation of Tracking and

Surveillance Systems & CVPR'01.

Stauffer, C., & Grimson, W. E. (Agosto de 2000). ―Learning patterns of activity using real-

time tracking,‖ IEEE Trans. Pattern Anal. Mach. Intell., vol. 22, no. 8, pp. 747–757,.

Streit, R. L., & Luginbuhl, T. E. (1994). Maximum likelihood method for probabilistic multi-

hypothesis tracking. In Proceedings of the International Society for Optical Engineering

(SPIE), volume 2235, pages 394–405.

100

Torresani, L., Yang, D. B., Alexander, E. J., & Bregler, C. (December de 2001). Tracking

and modeling non-rigid objects with rank constraints. In Proceedings of the IEEE Conference

on Computer Vision and Pattern Recognition (CVPR 2001), pages 493–500, Kauai, HI, USA,

IEEE Computer Society.

Trivedi, M., Gandhi, T., & Huang, K. (Septiembre de 2005). Multi camera based traffic flow

caracterization and classification. IEEE Trans. Intell. Transport. Syst., vol. 20, no. 5, pp. 58–

66 .

VisioWay OpenCounter. (s.f.). Recuperado el 10 de Diciembre de 2009, de

http://www.visioway.com/

Vlachos, M., Kollios, G., & D, G. (Feb. de 2002). Discovering similar multidimensional

trajectories. Proc. IEEE Conf Data Eng.

Wu, J., & Gu, C. (2009). The desing and implementation of Real-time automatic vehicle

detection and counting system. Information Engineering and Computer Science, 2009.

ICIECS 2009. International Conference on .

Wu, J., & Xiao, Z. (2010). Video Surveillance Object Recognition Based on Shape and Color

Features. 3rd International Congress on Image and Signal Processing, (págs. 451-454).

Yilmaz, A., Li, X., & Shah, M. (2204). Contour based object tracking with occlusion hanling

in video acquired using mobile cameras. IEEE Transactions on Pattern Analysis and

Machine Intelligence .

Yoneyama, A., Yeh, C., & Kuo, C. (2005). Robust vehicle and traffic information extraction

for highway surveillance. Journal on Applied Signal Processing , 2305-2321.

Zhao, T., & Nevatia, R. (2004). Tracking multiple humans in crowded environment. In

Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern

Recognition (CVPR04), volume 2, pages 406–413, Washington, DC, USA, IEEE Computer

Society.

101

Anexo A: Fiabilidad de los algoritmos de conteo.

GroundTruth Para 9 videos de una cámara de vigilancia se contaron manualmente los vehículos de entrada

y salida. Además, se anotaron características sobre la iluminación y la dificultad estimada que

tiene el video en contar los vehículos. La dificultad fue asignada dependiendo de factores

como: falsos positivos presentes en el video, pérdida de imágenes en el video y variaciones

de iluminación en la imagen. La iluminación se asignó dependiendo de si hay luz

incandescente o solar.

Tabla 6: GroundTruth para los videos de testing

Video Duración Duración

Real Vehículos Entrada

Vehículos salida

Iluminación Dificultad Observaciones

1 0:03:02 0:24:16 5 27 Incandescente Media Presencia de

vehículos ligeros

2 0:02:58 0:23:44 4 19 Incandescente Baja -

3 0:03:04 0:24:32 6 20 Incandescente Media -

4 0:03:18 0:26:24 7 23 Incandescente Media -

5 0:04:36 0:36:48 99 23 Solar-día Alta

Alta variación

lumínica (presencia de sombras)

6 0:03:18 0:26:24 41 21 Solar-día Media

7 0:03:22 0:26:56 31 23 Solar-día Media Pérdida de datos

8 0:03:04 0:24:32 9 10 Solar-tarde Alta Gran pérdida de

datos

9 0:03:04 0:24:32 13 18 Solar-tarde Alta Alta variación

lumínica (presencia de sombras)

Para el total de los videos se obtuvieron los datos presentados en la tabla:

Tabla 7: GroundTruth total de los videos de testing

Videos totales Duración real Vehículos Entrada Vehículos Salida

9 3:58:08 215 184

Las figuras comprendidas desde la Figura 56 hasta la Figura 63 muestran las capturas para los

nueve videos de pruebas que son utilizados como GroundTruth.

102

Figura 55: Capturas del video 1.

Figura 56: Capturas del video 2

103

Figura 57: Capturas del video 3

Figura 58: Capturas del video 4

104

Figura 59: Capturas del video 5

Figura 60: Capturas del video 6

105

Figura 61: Capturas del video 7

Figura 62: Capturas del video 8

106

Figura 63: Capturas del video 9

Resultados del algoritmo de conteo por zonas de

actividad.

Parámetros de testeo.

El presente algoritmo fue testeado con parámetros que fueron escogidos empíricamente como

los mejores para esta vista de la cámara. Los parámetros de entrada son los mostrados en la

tabla.

Tabla 8: Parámetros de testeo para el algoritmo de conteo por zonas de actividad

Parámetro Valor

Umbral menor filtro Canny 100 Umbral mayor filtro Canny 400 Ángulo de apertura 7

Umbral de pixeles blancos para un vehículo 550

107

Resultados de la evaluación

Verdaderos Positivos (TP), Falsos Negativos (FN), Falsos Positivos (TP),

Verdaderos Negativos (TN).

Para los videos testeados se obtuvieron resultados de los verdaderos positivos, falsos

negativos, falsos positivos y verdaderos negativos como se muestran en la tabla.

Tabla 9: TP, FN, FP y TN para el algoritmo de conteo por zonas de actividad.

Verdaderos

Positivos

Falsos

negativos

Falsos

Positivos

Verdaderos

Negativos

Video Entrada Salida Entrada Salida Entrada Salida Entrada Salida

1 5 25 0 2 2 0 0 0

2 4 19 0 0 0 0 0 1

3 6 19 0 1 1 0 0 0

4 7 22 0 1 0 0 0 0

5 94 16 4 7 1 0 1 0

6 39 21 2 0 0 1 0 0

7 30 20 1 3 0 0 0 0

8 9 7 0 3 0 0 0 0

9 13 9 0 9 0 0 1 0

Para el total de videos se obtuvo los resultados mostrados en la tabla

Tabla 10: TP, FN, FP y TN totales para el algoritmo de conteo por zonas de actividad.

Nº Total de videos

Verdaderos Positivos

Falsos negativos

Falsos Positivos

Verdaderos Negativos

Entrada Salida Entrada Salida Entrada Salida Entrada Salida

9 215 184 207 158 7 26 4 1

Precisión, Sensibilidad y F-Score.

Los resultados para la precisión la sensibilidad y el F-score para cada uno de los videos

testeados son mostrados en la tabla.

Tabla 11: Medidas de fiabilidad para el algoritmo de conteo por zonas de actividad

Precisión Sensibilidad F-score

Video Entrada Salida Entrada Salida Entrada Salida

1 71,4% 100,0% 100,0% 92,6% 83,3% 96,2%

2 100,0% 100,0% 100,0% 100,0% 100,0% 100,0%

3 85,7% 100,0% 100,0% 95,0% 92,3% 97,4%

4 100,0% 100,0% 100,0% 95,7% 100,0% 97,8%

5 98,9% 100,0% 95,9% 69,6% 97,4% 82,1%

6 100,0% 95,5% 95,1% 100,0% 97,5% 97,7%

108

7 100,0% 100,0% 96,8% 87,0% 98,4% 93,0%

8 100,0% 100,0% 100,0% 70,0% 100,0% 82,4%

9 100,0% 100,0% 100,0% 50,0% 100,0% 66,7%

Para el total de videos se obtuvieron los siguientes resultados

Tabla 12: Medidas de fiabilidad totales para el algoritmo por zonas de actividad

Nº Total de Videos Precisión Sensibilidad F-score

Entrada Salida Entrada Salida Entrada Salida

9 98,1% 99,4% 96,7% 85,9% 97,4% 92,1%

Resultados del algoritmo de conteo por segmentación.

Resultados de la evaluación

Verdaderos Positivos, Falsos Negativos, Falsos Positivos, Verdaderos

Negativos.

Método 1

Para el método 1 del algoritmo de conteo por segmentación, en los videos testeados se

obtuvieron resultados de los verdaderos positivos, falsos negativos, falsos positivos y

verdaderos negativos como se muestran en la Tabla 13.

Tabla 13: TP, FN, FP y TN para el método 1 del algoritmo de conteo por seguimiento.

Verdaderos Positivos

Falsos negativos

Falsos Positivos

Verdaderos Negativos

Video Entrada Salida Entrada Salida Entrada Salida Entrada Salida

1 5 27 0 0 2 0 0 0

2 4 19 0 0 0 0 0 0

3 6 20 0 0 1 0 0 0

4 7 23 0 0 0 1 0 0

5 17 14 82 9 0 0 0 0

6 39 21 2 0 0 0 0 1

7 29 21 2 0 0 0 0 1

8 9 9 0 1 0 0 0 0

9 13 17 0 1 8 0 0 0

109

Para el total de videos se obtuvo los resultados del método 1 mostrados en la Tabla 14.

Tabla 14: TP, FN, FP y TN totales para el método 1 del algoritmo de conteo por seguimiento.

Nº Total de videos

Verdaderos Positivos

Falsos negativos

Falsos Positivos

Verdaderos Negativos

Entrada Salida Entrada Salida Entrada Salida Entrada Salida

9 129 171 86 11 11 1 0 2

Método 2

Para el método 2 del algoritmo de conteo por segmentación, en los videos testeados se

obtuvieron resultados de los verdaderos positivos, falsos negativos, falsos positivos y

verdaderos negativos como se muestran en la Tabla 15.

Tabla 15: TP, FN, FP y TN para el método 2 del algoritmo de conteo por seguimiento.

Verdaderos

Positivos

Falsos

negativos

Falsos

Positivos

Verdaderos

Negativos

Video Entrada Salida Entrada Salida Entrada Salida Entrada Salida

1 5 25 0 2 1 0 0 0

2 4 18 0 1 0 0 0 0

3 6 20 0 0 0 0 0 0

4 7 23 0 0 0 0 0 0

5 44 14 50 0 5 0 0 0

6 35 20 6 1 0 0 0 0

7 29 18 3 5 0 0 0 0

8 7 7 2 3 0 0 0 0

9 13 17 0 1 3 0 0 0

Para el total de videos se obtuvo los resultados del método 1 mostrados en la Tabla 16.

Tabla 16: TP, FN, FP y TN totales para el método 2 del algoritmo de conteo por seguimiento.

Nº Total

de videos

Verdaderos

Positivos

Falsos

negativos

Falsos

Positivos

Verdaderos

Negativos

Entrada Salida Entrada Salida Entrada Salida Entrada Salida

9 150 162 61 13 9 0 0 0

110

Método 3

Para el método 2 del algoritmo de conteo por segmentación, en los videos testeados se

obtuvieron resultados de los verdaderos positivos, falsos negativos, falsos positivos y

verdaderos negativos como se muestran en la Tabla 17.

Tabla 17: TP, FN, FP y TN para el método 3 del algoritmo de conteo por seguimiento.

Verdaderos

Positivos

Falsos

negativos

Falsos

Positivos

Verdaderos

Negativos

Video Entrada Salida Entrada Salida Entrada Salida Entrada Salida

1 5 27 0 0 2 0 0 0

2 4 19 0 0 0 0 0 0

3 6 20 0 0 1 0 0 0

4 7 23 0 0 1 1 0 0

5 37 21 36 2 0 0 7 0

6 39 21 2 0 0 0 0 0

7 30 21 1 1 0 1 0 0

8 9 9 0 1 0 0 0 0

9 13 18 0 0 5 0 0 0

Para el total de videos se obtuvo los resultados del método 1 mostrados en la Tabla 18.

Tabla 18: TP, FN, FP y TN totales para el método 3 del algoritmo de conteo por seguimiento.

Nº Total de videos

Verdaderos Positivos

Falsos negativos

Falsos Positivos

Verdaderos Negativos

Entrada Salida Entrada Salida Entrada Salida Entrada Salida

9 150 179 39 4 9 2 7 0

Precisión, Sensibilidad y F-Score.

Método 1

Los resultados para la precisión la sensibilidad y el F-score para cada uno de los videos

testeados con el método 1 son mostrados en la Tabla 19.

Tabla 19: Resultados de la Precisión, Sensibilidad y F-Score para el método 1 del algoritmo de conteo por

segmentación

Precisión Sensibilidad F-score

Video Entrada Salida Entrada Salida Entrada Salida

1 71,4% 100,0% 100,0% 100,0% 83,3% 100,0%

2 100,0% 100,0% 100,0% 100,0% 100,0% 100,0%

111

3 85,7% 100,0% 100,0% 100,0% 92,3% 100,0%

4 100,0% 95,8% 100,0% 100,0% 100,0% 97,9%

5 100,0% 100,0% 17,2% 60,9% 29,3% 75,7%

6 100,0% 100,0% 95,1% 100,0% 97,5% 100,0%

7 100,0% 100,0% 93,5% 100,0% 96,7% 100,0%

8 100,0% 100,0% 100,0% 90,0% 100,0% 94,7%

9 61,9% 100,0% 100,0% 94,4% 76,5% 97,1%

Para el total de videos se obtuvieron los resultados de la Tabla 20 al ejecutar el método 1

Tabla 20: Resultados Totales de la Precisión, Sensibilidad y F-Score para el método 1 del algoritmo de

conteo por segmentación

Nº Total de Videos Precisión Sensibilidad F-score

Entrada Salida Entrada Salida Entrada Salida

9 92,1% 99,4% 60,0% 94,0% 72,7% 96,6%

Método 2

Los resultados para la precisión la sensibilidad y el F-score para cada uno de los videos

testeados con el método 1 son mostrados en la Tabla 21.

Tabla 21: Resultados de la Precisión, Sensibilidad y F-Score para el método 2 del algoritmo de conteo por

segmentación

Precisión Sensibilidad F-score

Video Entrada Salida Entrada Salida Entrada Salida

1 83,3% 100,0% 100,0% 92,6% 90,9% 96,2%

2 100,0% 100,0% 100,0% 94,7% 100,0% 97,3%

3 100,0% 100,0% 100,0% 100,0% 100,0% 100,0%

4 100,0% 100,0% 100,0% 100,0% 100,0% 100,0%

5 89,8% 100,0% 46,8% 100,0% 61,5% 100,0%

6 100,0% 100,0% 85,4% 95,2% 92,1% 97,6%

7 100,0% 100,0% 90,6% 78,3% 95,1% 87,8%

8 100,0% 100,0% 77,8% 70,0% 87,5% 82,4%

9 81,3% 100,0% 100,0% 94,4% 89,7% 97,1%

Para el total de videos se obtuvieron los resultados de la Tabla 22 al ejecutar el método 2.

Tabla 22: Resultados totales de la Precisión, Sensibilidad y F-Score para el método 2 del algoritmo de

conteo por segmentación

112

Nº Total de Videos Precisión Sensibilidad F-score

Entrada Salida Entrada Salida Entrada Salida

9 94,3% 100,0% 71,1% 92,6% 81,1% 96,1%

Método 3.

Los resultados para la precisión la sensibilidad y el F-score para cada uno de los videos

testeados con el método 1 son mostrados en la Tabla 23.

Tabla 23: Resultados de la Precisión, Sensibilidad y F-Score para el método 3 del algoritmo de conteo por

segmentación

Precisión Sensibilidad F-score

Video Entrada Salida Entrada Salida Entrada Salida

1 71,4% 100,0% 100,0% 100,0% 83,3% 100,0%

2 100,0% 100,0% 100,0% 100,0% 100,0% 100,0%

3 85,7% 100,0% 100,0% 100,0% 92,3% 100,0%

4 87,5% 95,8% 100,0% 100,0% 93,3% 97,9%

5 100,0% 100,0% 50,7% 91,3% 67,3% 95,5%

6 100,0% 100,0% 95,1% 100,0% 97,5% 100,0%

7 100,0% 95,5% 96,8% 95,5% 98,4% 95,5%

8 100,0% 100,0% 100,0% 90,0% 100,0% 94,7%

9 72,2% 100,0% 100,0% 100,0% 83,9% 100,0%

Para el total de videos se obtuvieron los resultados de la Tabla 24 al ejecutar el método 3.

Tabla 24: Resultados totales de la Precisión, Sensibilidad y F-Score para el método 3 del algoritmo de

conteo por segmentación

Nº Total de Videos Precisión Sensibilidad F-score

Entrada Salida Entrada Salida Entrada Salida

9 94,3% 98,9% 79,4% 97,8% 86,2% 98,4%

113

Anexo B: Fiabilidad de los algoritmos de

detección de color.

GroundTruth. El GroundTruth para evaluar los algoritmos de color se realizó de acuerdo a 4 videos de una

cámara de vigilancia. Estos videos presentan distintas condiciones de iluminación (Tabla 25)

como: incandescente (utilizando ampolletas), solar continua (sin presencia de sombras o

cambios) y solar discontinua (en presencia de cambios y sombras). Para el conteo de

vehículos se utilizó el método número 3 descrito en la sección 5.2.2.3.

Tabla 25: Videos y tipo de iluminación

Video Duración Duración

Real Total de Vehículos

detectados Iluminación

1 0:03:02 0:24:16 32 Incandescente

5 0:04:36 0:36:48 58 Solar discontinua

6 0:03:18 0:26:24 60 Solar continua

9 0:03:04 0:24:32 31 Solar discontinua

En cada uno de los videos se contó el número de vehículos de distinto color, como se muestra

en la Tabla 26. Esta tabla será utilizada como GroundTruth para los resultados del algoritmo

de detección de color por bandas.

Tabla 26: Colores de los vehículos para los videos de testing.

Video Blanco Gris Negro Rojo Naranjo Amarillo Verde Azul

1 5 15 7 3 1 0 0 1

5 20 26 8 4 0 0 0 0

6 20 16 19 4 0 1 0 0

9 15 10 5 0 0 0 0 1

114

Resultados del algoritmo de detección de color por

bandas.

Resultados de la evaluación.

La evaluación se realizó comparando el color real de cada vehículo, contra la posición de

color que fue asignado luego del algoritmo. Las posiciones de color posibles del algoritmo se

clasifican de acuerdo a la cantidad de pixeles detectados en la imagen. Es decir, la primera

posición (color 1) es el color con mayor porcentaje en la imagen, luego las siguientes

posiciones se ordenan decrecientemente. Entonces, para un vehículo de color rojo, si se

encuentra en ―color 1‖ es porque obtuvo el mayor porcentaje de color en la imagen, mientras

que si se encuentra en ―color 2‖ es la segunda mayor cantidad de pixeles en la imagen. La

Tabla 27 muestra la tasa de aciertos para el color real y su posición respecto al porcentaje que

ocupa en la imagen.

Tabla 27: Posición del color real luego del algoritmo.

Video Color 1 Color 2 Color 3 Ninguno

1 12 16 2 2

5 27 19 8 4

6 29 17 9 5

9 10 17 3 1

Además, se evaluó respecto al color obtenido el porcentaje detectado por el algoritmo (Tabla

28).

Tabla 28: Porcentaje del color real en la imagen.

Video 0%-10% 10%-20% 20%-30% 30%-40% 40%-50% >50% No aplica

1 1 3 13 13 0 0 2

5 0 2 11 19 17 3 3

6 1 3 14 21 16 2 5

9 0 1 8 14 7 0 1

total 2 9 46 67 40 5 11

Posteriormente, se calcularon los verdaderos positivos y falsos positivos para el acierto del

color en las 3 primeras posiciones. La Tabla 29 muestra los Verdaderos positivos y Falsos

positivos para el presente algoritmo.

115

Tabla 29: TP y FP para el algoritmo de detección de color por bandas.

Verdaderos Positivos

Falsos Positivos

Video Entrada y Salida Entrada y Salida

1 30 2

5 54 4

6 55 5

9 30 1

Como sólo se consideró el TP y FP, la Sensibilidad y F-Score quedan excluidos del análisis.

La Tabla 30 muestra la precisión del presente algoritmo.

Tabla 30: Precisión del algoritmo de detección de color por bandas.

Precisión

Video Entrada y Salida

1 93,8%

5 93,1%

6 91,7%

9 96,8%

promedio 93,8%

Resultados del algoritmo de detección de color por

medio de histogramas.

Resultados de la evaluación.

La evaluación se realizó comparando el o los colores detectados para el vehículo, sin

importar su posición. A diferencia del algoritmo anterior no se evaluará la posición del color,

ni el porcentaje de color en la imagen. Como no se pueden considerar los falsos negativos

puesto que el algoritmo siempre detecta un color, no se podrá calcular ni la Sensibilidad ni el

F-Score del algoritmo. Tampoco hablaremos de Verdaderos negativos porque se parte con el

supuesto que sólo se trabaja con vehículos detectados. Por lo tanto, sólo se hablará de la

precisión que posee el algoritmo.

La Tabla 31 muestra los Verdaderos positivos y falsos negativos para el algoritmo de

detección de color por medio de histogramas.

116

Tabla 31: TP y FP para el algoritmo de detección de color por medio de histogramas.

Verdaderos Positivos

Falsos Positivos

Video Entrada Salida Entrada Salida

1 3 26 2 1

5 13 10 24 11

6 21 12 16 11

9 5 11 8 7

La Tabla 32 muestra el resultado de la precisión para algoritmo de detección de color por

medio de histogramas.

Tabla 32: Precisión para el algoritmo de detección de color por medio de histogramas.

Precisión

Video Entrada Salida

1 60,0% 96,3%

5 35,1% 47,6%

6 56,8% 52,2%

9 38,5% 61,1%

Prom 47,6% 64,3%

117

Anexo C: Estudios posteriores Este anexo consta de información relevante para futuros trabajos que se pueden agregar al

SW.

Aprender caminos de forma automática. Un sólo camino caracteriza cómo un objeto se mueve y un conjunto de estos caminos pueden

caracterizar una ruta. Una forma de aprender estas rutas sin la necesidad de intervención

humana se puede lograr mediante tres tareas secuenciales:

1) Pre procesamiento: Es la combinación de técnicas para producir una representación de

una ruta conveniente. Estas técnicas sirven para tratar las trayectorias en bruto y permiten

que se puedan utilizar técnicas de clustering. Entre estas técnicas se destacan:

a) Normalización: Se basa en que todas las trayectorias tienen el mismo largo promedio.

Las técnicas utilizadas en normalización, su descripción y trabajos relacionados son

resumidos en la Tabla 33.

b) Reducción de dimensión: Estas técnicas mapean las trayectorias en un nuevo espacio

computacional de mejor y fácil manejo, para que el procesamiento de obtener rutas sea

menos costoso. La Tabla 34 detalla las técnicas utilizadas, junto a su descripción y

trabajos relacionados.

Tabla 33: Técnicas utilizadas en Normalización

Técnica Descripción Trabajos

Track-extension Se concadena al final de la trayectoria una extensión

dinámica para estimar los nuevos puntos de la trayectoria.

(Hu W. , Xiao, Fu,

Xie, Tan, & S,

2006)

Resampling Garantiza que todas las trayectorias sean de la misma

dimensión interpolándose a la trayectoria original.

(Morris & Trivedi)

Smoothing Se utiliza para remover el ruido de la trayectoria usando un

número de filtros simples o utilizando una descomposición

mediante una transformada de wavelets.

(Hu W. , Xiao, Fu,

Xie, Tan, &

S.Maybank, 2006)

118

Figura 64: Detección automática de caminos. (a) Resultado de seguimiento. (b) Trayectorias en una escena

real. (c) Resultado de aprender caminos de forma automática. Fuente: (Hu W. , Xiao, Fu, Xie, Tan, & S,

2006)

Tabla 34: Técnicas, descripción y trabajos en Reducción de dimensión

Técnica Descripción Trabajos

Vector

quantization

Limitar el número de trayectorias a un número

finito

(Jiao, Wu, Wu, Chang, &

Wang, 2004)

Polynomial fitting La trayectoria se trata como una simple curva 2D,

modelada por una función.

(Messelodi, C.M.Modena,

& Zanin, 2005)

Multi-Resolution

Decomposition

Técnicas como wavelets entregan una trayectoria

en diferentes niveles de resolución

(Li & Hu, 2006)

HMM Hidden Markov Models: trayectorias son

producidas por procesos estocásticos.

(Porikli, 2004)

Subspace Methods El nuevo espacio es abarcado por un gran vector

característico.

(Biliotti, Anotonini, &

Thiran, 2005)

Spectral Methods Una matriz S es construida a partir de la similitud

de trayectorias.

(Porikli, 2004)

Kernel Methods. Agrupamientos no lineales pero que sin embargo

preservan la estructura y el orden limitado de los

caminos.

(Jebara, Kondor, &

Howard, 2004) y (Huang,

Du, Zhang, & Kechadi,

2006)

2) Clustering (agrupamiento): Es una técnica de aprendizaje para identificar datos no

etiquetados. Cuando se observa una escena, las trayectorias son recolectadas y agrupadas

en categorías similares. Para desarrollar el procedimiento de clustering hay que considerar

3 cosas:

a) Medidas de distancia y similitud: Se basa en técnicas que según la distancia o

similitud clasifican las rutas. Una forma de obtener esta similitud es por medio de la

distancia euclidiana entre dos trayectorias. Existen programas dinámicos que

encuentran la distancia euclidiana óptima entre dos trayectorias minimizando la

distancia entre dos puntos pertenecientes a las rectas. En el trabajo (Vlachos, Kollios, &

119

D, 2002) se utiliza una popular técnica de alineación llamada ―Longest common

subsecuence‖ (LCSS).

b) Técnicas de Clustering: Una trayectoria puede ser agrupada usando técnicas

automáticas. Algunas técnicas son:

i) Optimización Iterativa: Es la técnica más utilizada porque es simple y fácil de

tratar. Utiliza una distancia euclidiana y encuentra todos los posibles grupos en una

sola iteración, utilizando una gran base de datos que posea trayectorias anteriores.

Para realizarla es necesario que todas las posibles trayectorias estén normalizadas y

sean inalterables.

ii) Adaptación Online: A diferencia de las técnicas de optimización iterativa, una gran

base de datos de entrenamiento de las trayectorias no es necesaria para la

construcción de las rutas. Tales caminos nuevos se pueden incorporar en el modelo

establecido. Además, no hay necesidad de establecer el número de trayectorias

previas, las cuales son difíciles de saber porque generalmente se trata de una escena

desconocida. Estas técnicas son de interés particular porque se adapta muy bien a

largo plazo. La variación en el tiempo provoca que los clusters sean actualizados y

adaptados continuamente en el tiempo. Un ejemplo de este tipo se puede hallar en el

trabajo de (Makris & Ellis, Learning semantic scene models from observing activity

in visual surveillance, 2005).

iii) Método de jerarquías: Hay dos tipos de agrupamiento por jerarquía: aglomerativa

(Biliotti, Anotonini, & Thiran, 2005) y divisiva (Li & Hu, 2006). Estos definen

similares relaciones entre las trayectorias en una estructura de árbol siguiendo un

procedimiento desde abajo hacia arriba.

iv) Descomposición por co-ocurrencia: Las trayectorias son como individuos con

características, donde los individuos similares contienen características similares.

Una matriz de co-occurrencia es formada desde los datos de entrenamiento y es

descompuesto para construir y correlacionar las rutas. (Stauffer & Grimson, 2000).

c) Validación de Clusters: La calidad de la ruta aprendida debe ser verificada con un

algoritmo de clustering, porque el verdadero número de grupos es desconocido. La

120

mayoría de los algoritmos de clustering requieren un número inicial de grupos

esperados, este número puede ser diferente o no del correcto. (Morris & Trivedi).

3) Modelado de caminos: Una vez que las trayectorias se han agrupado, las rutas resultantes

son el modelo para una inferencia eficiente. El modelo de trayectoria es una representación

compacta de una partición de clúster. Las trayectorias pueden ser modeladas de dos

maneras diferentes. La primera considera una ruta en su totalidad, de extremo a extremo

(Figura 65-a), mientras que la segunda descompone un camino en partes más pequeñas

llamada sub-trazados (Figura 65-b).

Figura 65: Modelados de caminos. (a) Ruta en su totalidad (b) Ruta de sub-trazados

4) Retroalimentación de caminos para sistemas de bajo nivel: Aunque el reconocimiento

de caminos se ha concebido para análisis en un nivel superior, este puede resultar útil

como retroalimentación para funciones en un nivel inferior (Hsieh, Yu, Chen, & Hu,

2006).

121

Anexo D: Teoría del color.

El color en la visión humana El proceso del análisis del color no es un problema sencillo. Este proceso sucede en nuestro

cerebro que reacciona a partir de las señales nerviosas que le envían los fotorreceptores de la

retina del ojo para luego distinguir la parte visible del espectro electromagnético que se

encuentra entre la luz visible (400nm y 700nm). La iluminación del objeto es sumamente

importante para nuestro cerebro, puesto que, reacciona mejor a distinguir los colores, por

ejemplo, en condiciones de escaza luminosidad los colores se ven opacos y la diferenciación

entre colores es complicada.

Hay dos tipos de fotorreceptores que actúan en la visión humana: los bastones y los conos.

Los bastones son responsables de la visión en condiciones de baja luminosidad, son sensibles

a la luz y no detectan los colores. Los conos se encargan de captar la luz en la retina del ojo y

existen tres tipos. Cada uno de estos tipos es sensible a una longitud de onda determinada,

estas longitudes son: rojo, verde y azul.

Como la determinación del color es una interpretación de nuestro propio cerebro, en caso de

poseer una duda en color de un objeto, la interpretación del color se ajustará de acuerdo a un

criterio individual.

El color en las imágenes digitales.

La adquisición del color en las imágenes digitales no es un problema severo, pero el análisis

de un color para un objeto en la imagen si lo es.

La adquisición de una imagen y su color se puede realizar por medio de dos tipos de

sensores: los CCD (charge coupled devide) y los CMOS (complementary metal oxide

semiconductor). Estos dos sensores convierten la luz capturada en una carga eléctrica que

luego se convertirá en una señal electrónica.

Un sensor CCD contiene diminutas células fotoeléctricas que registran la imagen. La

resolución de la imagen depende del número de células fotoeléctricas del CCD. Este número

se expresa en píxeles y cada pixel registra gradaciones de los tres colores básicos: rojo, verde

y azul por medio de un filtro de Bayer. De esta forma se pueden generar todas las variaciones

de color que puede detectar el ojo humano.

122

En los sensores CMOS, cada píxel tiene su propia conversión de carga a voltaje y el sensor

generalmente incluye sus propios circuitos de digitalización para que entregue una señal

digital. Al igual que en los CCD la detección del color se realiza por medio de un filtro de

Bayer y una combinación de los tres colores básicos.

Espacios de color

En la sección anterior se mencionó que los sensores CMOS y CCD registran el color

dependiendo de las gradaciones de los colores básicos en imágenes (RGB). Ahora bien, este

tipo de registro es llamado como un ―espacio de color‖ y su función es definir la composición

del color. Por lo general un espacio de color lo define una base de N vectores (por ejemplo, el

espacio RGB lo forman 3 vectores: Rojo, Verde y Azul), cuya combinación lineal genera

todo el espacio de color.

Los espacios más comunes de color son:

Una dimensión: e.g. escala de grises.

Tres dimensiones: e.g. RGB, HSV, YCbCr, YUV, YI'Q'.

Cuatro dimensiones: e.g. espacio CMYK.

Espacio RGB

El espacio RGB se forma a partir de los colores primarios que son el rojo, el verde y el azul.

La representación de otros colores se logra por medio de la síntesis aditiva de los tres colores

primarios, dando a lugar a todo el espectro de color visible. En el sistema RGB, supone un

fondo negro que al aumentar el valor de cada matriz la imagen se logran colores más claros.

Figura 66: (a) Cubo RGB, (b) Representación aditiva de los colores primarios y secundarios. Fuente: (a)

wikpedia.org (b) Propia

123

Espacio HSL y HSV

El modelo HSV fue creado en 1978 por Alvy Ray Smith y define su nombre a partir de los

tres parámetros que consiera; el color (Hue), la saturación (S) y el valor o brillo (V). Esta es

una transformación no lineal del espacio RGB y genera un cono desde el cubo RGB.

El modelo HSL fue introducido por Tektronics en 1978 y define su nombre a partir de los tres

parámetros que considera; el color (hue), la saturación (cantidad e blanco) y la luminancia

(cantidad de negro en el color). Esta transformación deriva del modelo RGB transforma el

cubo RGB en un doble cilindro HSL.

Figura 67: (a) Cono HSL, (b) Doble Cono HSL.

Espacio YUV e YCbCr

Este espacio codifica una imagen o video considerando la percepción humana. Utiliza una

componente de la luminancia (Y) y dos componentes de la crominancia (UV). Este espacio

permite evitar errores de transmisión o imperfecciones que se presentan en el modelo RGB.

Este modelo es utilizado para la trasmisión de televisión en el sistema PAL y NTSC. Este

espacio se originó para que la señal transmitida por TV fuera reproducida tanto por

televisores a color o a blanco y negro.

El espacio de color YCbCr es similar al espacio YUV en la componente de la luminancia (Y)

pero codifica las componentes de la crominancia como una diferencia entre azul (Cb) y rojo

(Cr).

124

Figura 68: (a) Ejemplo plano UV, con valor Y=0,5. (b) Ejemplo plano CrCb, con valor Y=0,5. Fuente:

Wikipedia.org