Upload
doancong
View
219
Download
0
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.
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).