Upload
nguyendan
View
219
Download
3
Embed Size (px)
Citation preview
CONTEO AUTOMÁTICO DE VEHÍCULOS
FRANCISCO CARLOS CALDERÓN BOCANEGRA GERMÁN ENRIQUE URREGO NIÑO
TRABAJO DE GRADO PARA OPTAR POR EL TÍTULO DE INGENIERO ELECTRÓNICO
DIRECTOR ING. ALEJANDRO FORERO GUZMÁN, M.Sc.
PONTIFÍCIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRÓNICA BOGOTÁ DC, 2008
PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA ELECTRÓNICA
RECTOR MAGNÍFICO: PADRE JOAQUÍN EMILIO SÁNCHEZ GARCÍA S.J
DECANO ACADÉMICO: ING. FRANCISCO JAVIER REBOLLEDO MUÑOZ
DECANO DEL MEDIO UNIVERSITARIO: PADRE SERGIO BERNAL RESTREPO S.J
DIRECTOR DE CARRERA: ING. JUAN MANUEL CRUZ BOHÓRQUEZ
DIRECTORES DE PROYECTO: ING. ALEJANDRO FORERO GUZMÁN.
ARTICULO 23 DE LA RESOLUCIÓN No. 13 DE JUNIO DE 1946
“La Universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus
proyectos de grado.
Solo velará porque no se publique nada contrario al dogma y a la moral católica y por que los
trabajos no contengan ataques o polémicas puramente personales. Antes bien, que se vea en ellos
el anhelo de buscar la verdad y la justicia.”
I
TABLA DE CONTENIDO
TABLA DE CONTENIDO .......................................................................................................................... I
INDICE DE FIGURAS ............................................................................................................................. III
ÍNDICES DE TABLAS ............................................................................................................................... V
LISTA DE ANEXOS ................................................................................................................................. VI
1. INTRODUCCIÓN ............................................................................................................................... 1
1.1. INGENIERÍA DE TRÁFICO ....................................................................................................... 2 1.1.1. Principios básicos de la ingeniería del tráfico ............................................................................................. 2 1.1.2. Volumen e Intensidad De Circulación [8]: ................................................................................................. 2 1.1.3. Velocidad [8] .............................................................................................................................................. 3 1.1.4. Densidad [8] ................................................................................................................................................ 3 1.1.5. Medición ..................................................................................................................................................... 3
2. DESCRIPCIÓN ................................................................................................................................... 5
2.1. OBJETIVOS ................................................................................................................................. 5 2.1.1. Objetivo General ......................................................................................................................................... 5 2.1.2. Objetivos Específicos .................................................................................................................................. 5
2.2. DESCRIPCIÓN GENERAL Y ESPECIFICACIONES ............................................................... 6
3. DESARROLLOS ................................................................................................................................. 8
3.1. INVESTIGACIONES PRELIMINARES ..................................................................................... 8 3.1.1. OpenCV ...................................................................................................................................................... 8 3.1.2. Estructura de OpenCV ................................................................................................................................ 8
3.2. ALGORITMOS INVESTIGADOS .............................................................................................. 9 3.2.1. Selección de cámara y formatos de video ................................................................................................. 10
3.3. DESCRIPCIÓN POR BLOQUES DEL ALGORITMO FINAL ................................................. 11 3.3.1. Selección de Video o Cámara ................................................................................................................... 12 3.3.2. Selección de Región de interés y perspectiva ........................................................................................... 12 3.3.3. Estimación previa del fondo ..................................................................................................................... 14 3.3.4. Mascara de Bordes del fondo .................................................................................................................... 16 3.3.5. Detección De Bordes Del cuadro De video .............................................................................................. 17 3.3.6. Estimación De Fondo Por FGDStatmodel Modificado ............................................................................. 17 3.3.7. Variación de Perspectiva ........................................................................................................................... 19 3.3.8. Seguimiento de Bloques............................................................................................................................ 20 3.3.9. Conteo de Vehículos ................................................................................................................................. 20 3.3.10. Ejemplos de ejecución del algoritmo ...................................................................................................... 21
4. PRUEBAS .......................................................................................................................................... 23
4.1. PROTOCOLO DE ENTRENAMIENTO ................................................................................... 23 4.2. PROTOCOLO DE PRUEBAS ................................................................................................... 24 4.3. TABLAS DE RESULTADOS .................................................................................................... 28
5. ANÁLISIS DE RESULTADOS ........................................................................................................ 29
5.1. ANÁLISIS DE LOS ERRORES ENCONTRADOS .................................................................. 36 5.1.1. Vehículo con Bloques desligados ............................................................................................................. 37 5.1.2. Vehículos con un mismo Bloque .............................................................................................................. 38 5.1.3. Separación Incorrecta de MBR’s .............................................................................................................. 39 5.1.4. Vehículo no detectado ............................................................................................................................... 40 5.1.5. Errores Aleatorios. .................................................................................................................................... 41
II
5.1.6. Conteo de Vehículos en distintos sectores de la vía .................................................................................. 42 5.2. TIEMPO DE COMPILACIÓN ................................................................................................... 51 5.3. COMPARACIÓN CON OTROS ESTUDIOS ............................................................................ 52
6. CONCLUSIONES ............................................................................................................................. 53
7. BIBLIOGRAFIA ............................................................................................................................... 56
7.1. LIBROS Y DOCUMENTOS .............................................................................................................. 56 7.1.1. Conteo de vehículos y afines: ................................................................................................................... 56 7.1.2. Libros ........................................................................................................................................................ 56 7.1.3. Fondo ........................................................................................................................................................ 57 7.1.4. Momentos ................................................................................................................................................. 57 7.1.5. Plantilla de movimiento (Motempl) .......................................................................................................... 58 7.1.6. Flujo óptico ............................................................................................................................................... 58 7.1.7. Cascadas de Haar ...................................................................................................................................... 58 7.1.8. Otros ......................................................................................................................................................... 59
7.2. PÁGINAS WEB ............................................................................................................................. 59 7.2.1. OpenCV .................................................................................................................................................... 59 7.2.2. Estudios de Tráfico ................................................................................................................................... 60 7.2.3. Video ......................................................................................................................................................... 61 7.2.4. Herramientas y otros ................................................................................................................................. 61
III
INDICE DE FIGURAS
Figura 1 Ejemplo de ubicación de cámara....................................................................................... 6 Figura 2 Ejemplo de vista de la cámara con perspectiva ................................................................. 7 Figura 3 Distribución de bibliotecas de OpenCV ............................................................................ 9 Figura 4 Diagrama de Flujo básico del algoritmo definitivo......................................................... 11 Figura 5 Ejemplo de ROI .............................................................................................................. 12 Figura 6 Ejemplo de petición de perspectiva y corrección de la misma ....................................... 13 Figura 7. Ejemplo de perspectiva y corrección con una selección muy grande de área ............... 14 Figura 8 problemas de falta de conexión de objetos binarios “bloques” que presenta FGDStatmodel ............................................................................................................................... 15 Figura 9 Diagrama de flujo del algoritmo de mascara de fondo ................................................... 16 Figura 10: Ejemplo de Mascara de fondo (B) de una imagen (A) con el fondo calculado por media aumentada (B) ..................................................................................................................... 17 Figura 11. Diagrama de flujo del algoritmo de bordes del cuadro de video ................................. 17 Figura 12. Diagrama de flujo del bloque FGDStatmodel modificado .......................................... 18 Figura 13 Ejemplo del funcionamiento de diferentes etapas del algoritmo:(A) la imagen original, (B)Unión de los resultados en C(C) FGDStatmodel Modificado y algoritmo de (D) bordes en fondo calculado con la operación lógica AND entre (F) bordes del fondo calculado con (E) Algoritmo de Fondo por media aumentada y los bordes del cuadro original (A) ......................... 19 Figura 14. Diagrama de Flujo de Bloque de seguimiento ............................................................. 21 Figura 15 Ejemplos de detección en cuadros con perspectiva ...................................................... 22 Figura 16 cuadros de los videos de entrenamiento (A) “primeras 2 horas(2).avi” tomado en la carrera 13 con calle 37, (B) “S6300609.AVI” tomado en la calle 53 con carrera 13.(C) “S6300570.AVI” tomado en la carrera 7 con 33 ........................................................................... 23 Figura 17: Ejemplo de lugar donde se tomaron las muestras de prueba del video........................ 24 Figura 18 Ejemplo de Ubicación de la cámara en el balcón de un edificio próximo a la vía a ser estudiada ........................................................................................................................................ 24 Figura 19 Cuadros de cada uno de los videos de la muestra ......................................................... 25 Figura 20 Resultado algoritmo ...................................................................................................... 28 Figura 21 Diferencia de conteo manual y automático ................................................................... 29 Figura 22 Error porcentual del conteo ........................................................................................... 30 Figura 23. Ejemplos de compilación del video N° 13 ................................................................... 31 Figura 24 Mala actualización de FGDStatModel lo que genera errores de conteo ....................... 32 Figura 25. Secuencia de cuadros (de izquierda a derecha y de arriba a abajo)del video 10 con actualización de fondo en Rojo. .................................................................................................... 34 Figura 26 ejemplo de cuadro del video N° 5 ................................................................................. 35 Figura 27. Ejemplo del video N° 14 y 15, donde se aprecian objetos que pasan por fuera de la línea de conteo, pero son perceptibles en un conteo manual ......................................................... 35 Figura 28. Frecuencia de los errores .............................................................................................. 36 Figura 29. Ejemplo de Vehículo con Bloques desligados (A) y (B) FGDSTatmodel no fue capaz de reconocer el vehículo, y el algoritmo de bordes no fue suficiente para unir el contorno del vehículo ......................................................................................................................................... 38 Figura 30 (A) Unión por cercanía de vehículos, (B) Unión por estela de FGDStatmodel (C) Unión por perspectiva .................................................................................................................... 39
IV
Figura 31. (A) separación causada por perspectiva (B) Separación causada por trayecto diagonal del bus que aumento su MBR ........................................................................................................ 40 Figura 32 (A) no reconoció el vehículo ni el algoritmo de bordes ni FGDStatmodel (B) el bloque correspondiente a la motocicleta no fue lo suficientemente grande para ser tomado como un posible vehículo se presentaron dos casos similares a este último ................................................ 41 Figura 33 (A) conteo de un peatón (B) conteo de un carro de dulces de tracción humana que pasaba por la vía ............................................................................................................................ 42 Figura 34. Realización de conteo en tres partes diferentes en el mismo cuadro de video. ........... 43 Figura 35. Resultados Algoritmo de 3 líneas ................................................................................ 45 Figura 36. Diferencias entre conteo manual y el algoritmo de 3 Líneas ....................................... 45 Figura 37. Error porcentual del algoritmo de 3 Líneas .................................................................. 46 Figura 38 Error 3 Líneas V/S 1Línea ............................................................................................ 47 Figura 39. Error Porcentual 3 Líneas V/S 1 Línea ........................................................................ 47 Figura 40 Conteo total de las 15 muestras ..................................................................................... 50 Figura 41 Conteo total sin videos 1 y 13 ....................................................................................... 50
V
ÍNDICES DE TABLAS
Tabla 1 Relación de los videos de prueba del algoritmo definitivo .............................................. 26 Tabla 2 Relación del conteo manual.............................................................................................. 27 Tabla 3 Dimensiones de las Regiones de Interés por cada video .................................................. 27 Tabla 4 Resultados de conteo del algoritmo .................................................................................. 28 Tabla 5 Errores porcentuales por tipo de vista .............................................................................. 33 Tabla 6 Resultados Conteo Algoritmo 3 Líneas ............................................................................ 44 Tabla 7 Promedio y Desviación del conteo de 3 líneas ................................................................. 44 Tabla 8 Errores Porcentuales en 3 líneas ....................................................................................... 48 Tabla 9 Valores de cálculo de la Mediana para el conteo en 3 líneas ........................................... 49 Tabla 10 Datos del Video de muestra ............................................................................................ 51 Tabla 11 Datos de las ejecuciones en diferentes computadores .................................................... 51
VI
LISTA DE ANEXOS
ANEXO N° 1 FONDO POR MEDIA AUMENTADA
ANEXO N° 2 ALGORITMO DE SEGUIMIENTO
ANEXO N° 3 ESTUDIO DEL COLOR EN VIDEOS DE TRÁFICO
ANEXO N° 4 ALGORITMO DE FLUJO ÓPTICO
ANEXO N° 5 HISTORIA DE MOVIMIENTO
ANEXO N° 6 VIDEO
1
1. INTRODUCCIÓN
En los últimos años, la secretaria Distrital de Movilidad de Bogotá [35] se preocupa de los altos
índices de accidentalidad que aumentan en la ciudad [37] y [38]. Muchas otras ciudades en el
mundo, como Londres, ven en el uso de cámaras de video una solución para el control de tráfico
y de esta manera detectar zonas vulnerables y de alta accidentalidad, posibles infractores, estimar
parámetros de tráfico de vehículos y reporte de accidentes, entre otros. Sobre todo, si este
monitoreo se realiza de manera automática [36].
El uso de visión artificial en sistemas de monitoreo de tráfico puede ofrecer muchas ventajas
respecto de otras tecnologías. [25], [8] Entre estas ventajas se incluyen la capacidad para extraer
varias variables de tráfico simultáneamente o la flexibilidad en la elección de la escena de tráfico
a monitorear. Además, las técnicas de visión artificial se puede implementar en tiempo real y
unido a los avances en comunicaciones, es posible transmitir la información a las autoridades de
tránsito de manera remota para su posterior análisis; asimismo la instalación requiere mínimas
modificaciones físicas de la vía. [27], [28], [8].
Está comprobado que la Supervisión de video de manera automática es más confiable que una
supervisión manual, incluso una persona dedicada y bien intencionada no brinda un apoyo
suficiente y eficaz en un sistema de monitoreo, la atención de la mayoría de personas se degenera
muy por debajo de los niveles aceptables en tan solo 20 minutos, la vigilancia de pantallas de
video es aburrida al no proporcionar una participación ni estimulación intelectual, como cuando
se ve un programa de televisión [50].
Técnicamente hay tres parámetros que caracterizan la circulación de tráfico: el volumen o
intensidad de circulación, la velocidad y la densidad. La primera variable se obtiene mediante dos
medidas que cuantifican la cantidad de tráfico que pasa en una carretera durante un lapso de
tiempo; la velocidad, es la distancia recorrida por el vehículo sobre unidad de tiempo; y densidad,
se define como el número de vehículos que ocupan un tramo de longitud dado de un carril o
carretera. [25], [26], [27], [24], [8].
La finalidad de este proyecto es proponer una técnica para encontrar el número de vehículos en
un video tomado en un segmento de vía típico, con condiciones de iluminación aceptables, para
2
la posterior relación de este conteo con el tiempo de duración de la muestra de video y así tener el
volumen de circulación de tráfico en la vía.
1.1. INGENIERÍA DE TRÁFICO
1.1.1. Principios básicos de la ingeniería del tráfico
La ingeniería del tráfico es una rama de la ingeniería civil que se encarga de planear, diseñar y
organizar la operación del tráfico en calles y autopistas, con el fin de obtener una movilidad
segura y eficiente [8].
Como herramienta en el diseño de vías, se usan modelos de predicción, que son diseñados
basándose en muestras de varios parámetros de tráfico:
1.1.2. Volumen e Intensidad De Circulación [8]:
Son dos medidas que indican el número de vehículos que pasan por un segmento de vía durante
un intervalo de tiempo determinado.
El Volumen se define como el número total de vehículos que pasan por una determinada sección
de la carretera en un intervalo de tiempo dado. Ya sean años, días, horas o menos. Y es un valor
real medido directamente en la vía en el tiempo total de la medición
La intensidad horaria se define como el número de vehículos que pasan por un segmento de vía
durante un intervalo de tiempo inferior a una hora, pero expresado como una intensidad horaria
equivalente. Se obtiene dividiendo el volumen registrado en un periodo entre la duración del
mismo expresado en horas “vehículos / hora”.
1.1.3. Velocidad [8]
Se define como la distancia recorrida por un vehículo por unidad de tiempo, y se expresa en
kilómetros por hora; Para caracterizar el tráfico, se usa como valor representativo la velocidad
media, que se obtiene al promediar las velocidades individuales de cada vehículo.
La velocidad media de recorrido se calcula tomando una porción de la vía, y dividiéndola entre el
tiempo medio que tardan los vehículos en recorrerla, en este cálculo están incluidas las demoras
del tráfico por detenciones completas o congestión del mismo
Si se tiene en cuenta el tiempo en el cual el vehículo está en movimiento el resultado de
velocidad seria la velocidad media de movimiento
1.1.4. Densidad [8]
La densidad se define como el número de vehículos que ocupan un segmento de longitud
especifico de una vía de tal manera que esta densidad esta dada en vehículos por kilómetro, este
valor depende del segmento considerado y del tiempo en el que se realizó la medición.
La densidad puede ser medida mediante un mecanismo que permita contar los vehículos en un
tramo de la vía deseado, en un instante de tiempo. Teóricamente se puede llegar al mismo
resultado, aplicando la ecuación fundamental del tráfico:
)/(velocidad)/(intensidad)/(densidad
hkmhvehkmveh =
1.1.5. Medición
Para llevar un registro de los parámetros en una vía en estudio, se usan diversos sistemas de
monitoreo como detectores magnéticos, tubos de presión, pistolas de radar y sensores de
microondas. De lejos, los detectores magnéticos son los más utilizados para el monitoreo de
sistemas de tráfico [25], [8]. Son instalados en el suelo, sobre la superficie de la vía y cuentan el
número de carros.
3
4
Los sensores de presión cuentan los carros cuando han pasado. Las pistolas de radar son el
método más exacto para monitorear la velocidad de los vehículos y son el sistema más utilizado
por la Policía para hacer los respectivos correctivos. Los sensores de microondas han sido
utilizado en otros lugares para detectar vehículos que han entrado a una zona determinada [25],
[8].
Estos sistemas solo permiten recopilar una cantidad limitada de información relacionada con el
tráfico, mientras que la visión artificial podría remplazar simultáneamente a varios de estos
sistemas. Además de contar vehículos y medir la velocidad, se puede proporcionar ruta del
vehículo, tipo de vehículo, tasa de flujo de vehículos, congestiones de tráfico e identificación de
vehículos por número de placa [25]. Otro tipo de información a largo plazo que se puede tomar
sería tiempo de desplazamiento en ciertas rutas, la longitud y tiempo de espera en una
intersección, el número de cambios de carril y la rápida aceleración o desaceleración de vehículos
[25], [26], [27], [24]. Otras posibles ventajas son su fácil instalación, su bajo costo de
mantenimiento, la flexibilidad en la implementación y que más de un carril puede ser
monitoreado mediante este sistema.
5
2. DESCRIPCIÓN
2.1. OBJETIVOS
2.1.1. Objetivo General
Investigar y diseñar un sistema de conteo automático de vehículos para extraer la
información relacionada con el tráfico
2.1.2. Objetivos Específicos
Identificar los parámetros generales involucrados en el tráfico y su relación con el conteo
de vehículos.
Proponer un algoritmo de detección de vehículos bajo buenas condiciones de
luminosidad, y en un segmento de vía típico.
Proponer una ubicación y número de cámaras mínimas para conseguir la detección de los
vehículos en un segmento de vía típico.
Detectar y contar los vehículos en un segmento de vía típico.
Evaluar la posibilidad de unificar la información de dos o más cámaras
2.2. DESCRIPCIÓN GENERAL Y ESPECIFICACIONES
El sistema a ser diseñado, es la implementación de un conjunto de algoritmos dispuestos de tal
manera que realicen un conteo de los vehículos en un video, con el fin de obtener el volumen de
tráfico en un segmento de vía típico, entendiéndose este como un tramo unidireccional de una vía
en general. Se evitó la toma de muestras en intersecciones de vías, glorietas y vías de doble
sentido, en general cualquier tramo en donde el flujo de los carros cuente con más de una
dirección.
El video a ser capturado, será tomado en alturas variables, con una inclinación respecto al plano
horizontal de -45° ± 30° (Figura 1), esto es por comodidad en la toma de videos ya que la cámara
puede ser ubicada en puentes, semáforos, señales informativas, costados de edificios y señales de
tránsito elevadas.
Figura 1 Ejemplo de ubicación de cámara
La iluminación es un aspecto muy importante en la adquisición de videos, y determina la
eficiencia que tiene el sistema detectando los vehículos. Se pretende trabajar con videos tomados
durante el día, los cuales servirán como base para el desarrollo de este algoritmo, y determinar en
el análisis de resultados las condiciones de iluminación necesarias para obtener conteos precisos.
6
Figura 2 Ejemplo de vista de la cámara con perspectiva
El video utilizado en el proyecto se encontrará en el formato de archivo contenedor AVI, usando
los formatos de compresión o codecs Xvid, DivX y MJPEG [40], [41], [42]. [Ver Anexo N°6]
Los videos son tomados a una tasa de 25 y 30 cuadros por segundo (fps).
La salida del sistema consiste en un conteo final representado por el número de vehículos en un
video.
7
8
3. DESARROLLOS
3.1. INVESTIGACIONES PRELIMINARES
Para el desarrollo del proyecto era necesaria la exploración de las herramientas a ser utilizadas y
el estado del arte de investigaciones similares, que pudieran servir de punto de inicio al proyecto,
definiendo los algoritmos, bibliotecas y las técnicas de resolución de problemas a ser usadas.
3.1.1. OpenCV
OpenCV es un conjunto de bibliotecas de código abierto u Open Source desarrolladas en un
principio por Intel disponibles desde http://SourceForge.net/projects/opencvlibrary. Están
desarrolladas en lenguaje C y C++ y se pueden ejecutar desde Windows, Linux y Mac OS X.[6]
Estas bibliotecas ofrecen código diseñado eficientemente, orientado a aplicaciones capaces de
ejecutarse en tiempo real en procesadores modernos. Estas bibliotecas tienen como objetivo
proveer las funciones más usadas en Visión por computadora y tiene más de 500 funciones
implementadas. Se usan ampliamente en Vigilancia, imágenes medicas, inspección industrial,
interfaces de usuario, calibración de cámaras, y recientemente se han usado estas bibliotecas en
imágenes aéreas y mapas de calles, por ejemplo en la herramienta Google’s Street View. Se hace
uso de la calibración de cámara y de funciones de OpenCV para hacer el proceso de stitching,
que consiste en combinar múltiples imágenes para producir una imagen panorámica o una imagen
de alta resolución. [6]
3.1.2. Estructura de OpenCV
Estas bibliotecas se dividen en cinco grandes grupos, en donde se encuentran divididas las
funciones dependiendo de su utilidad (Figura 3): CXCORE, donde se encuentran las estructuras y
algoritmos básicos que usan las demás funciones; CV donde están implementadas las funciones
principales de procesamiento de imágenes y algoritmos de visión; HighGUI, con todo lo
relacionado a la sencilla interfaz grafica de OpenCV y las funciones que permitan importar
imágenes y video ; ML, que cuenta con algoritmos de aprendizaje, clasificadores y demás; y
CvAux, con funciones experimentales entre ellas BG/FG, esta última biblioteca cuenta con
menos documentación que las demás siendo en algunos casos inexistente una documentación
oficial del uso de la función ó incluyendo solo el artículo del algoritmo implementado en otros
casos.
Figura 3 Distribución de bibliotecas de OpenCV
3.2. ALGORITMOS INVESTIGADOS
Al comienzo de la investigación, se siguió un método que comprendía probar todos los
algoritmos que pudieran servir en la solución del problema, implementarlos y hacer pruebas
preliminares de calidad de detección de los vehículos, para después de estas pruebas preliminares
seleccionar los algoritmos que tuvieran mejores características para la solución del problema.
Primero, se hizo una investigación dentro de las bibliotecas de OpenCV de las herramientas más
viables a ser usadas. De esta primera selección se tomaron como las más opcionadas a ser la base
del algoritmo definitivo seis posibles:
Clasificadores de Haar [21], [22] y [23] que por sus características fue descartado, ya que
no era el adecuado dada la diversidad de vehículos que se pretendían detectar; sin
embargo podría ser usado en un futuro, en trabajos que requieran reconocer tipos de
9
10
vehículos, entrenando una base de datos de manera automática recopilando muestras con
la detección implementada en este proyecto.
Motion Template [15], [16], [17], [18] y [Ver Anexo N° 5].
Flujo Óptico [19], [20] y [Ver Anexo N° 4].
Diversos algoritmos de fondo recientes y de prueba en OpenCV (al encontrarse todavía en
la biblioteca CvAux [31]) como FGDStatModel [10], [11] y GaussianBGModel [9].
Algoritmos de la biblioteca vidsurv y blobtrack (Se encuentran todavía en la biblioteca
CvAux).[30], [31] y [Ver Anexo N° 2]
Separación de características por color de los vehículos [Ver Anexo N° 3]
Al realizar un estudio de los aportes de cada uno de estos algoritmos, se tomaron las
características más relevantes de cada uno para llevar a cabo la solución del problema planteado.
3.2.1. Selección de cámara y formatos de video
Para la escogencia de la cámara se tuvo en cuenta su formato nativo de salida y la posible
conversión de un formato en otro, ya que OpenCV trabaja en formato AVI [43]. Primero se
trabajó con cámaras que graban en formato contenedor MOV[44] y MPEG [42], para después
cambiar el formato contenedor de estos videos a AVI. Finalmente, se encontró una cámara que
graba en formato contenedor AVI de manera nativa, lo que evita la necesidad de convertir a otro
formato y el codec en el que trabaja es MJPEG [13], de libre reproducción, más no de libre
codificación.
Para hacer este trabajo de codificar videos, después de una investigación de los formatos
disponibles y de haber realizado pruebas con cada uno de ellos [Ver Anexo N° 3], se terminó
usando el formato contenedor AVI, y como CODECs XviD [40] y MJPEG [42].
3.3. DESCRIPCIÓN POR BLOQUES DEL ALGORITMO FINAL
INICIO
Selección de Video ó Cámara
Selección de Región de Interés
y Perpectiva
Estimación Previa de Fondo
Parámetros de Máscara de
Perspectiva y ROI
ROI
Mascara de Bordes de Fondo
Estimación de Fondo
“FGDStatModel Modificado”
Detección de Bordes de Cuadro
de Video
V
V Variación de PerspectivaBloques
Seguimiento de Bloques
Variación Inversa de Perspectiva
Conteo de Vehículos
VisualizaciónFinal
FIN
Bordes de los vehículos
Figura 4 Diagrama de Flujo básico del algoritmo definitivo
11
3.3.1. Selección de Video o Cámara
Para hacer el algoritmo más versátil se pensó en hacerlo compatible con estas dos opciones de
compilación, automáticamente al principio de la ejecución, en caso de no introducir ninguna ruta
de video, el algoritmo detecta todas las cámaras listadas en el sistema, y selecciona la primera
listada por el sistema operativo para compilar, esta cámara debe cumplir las propiedades de
controlador listadas en el [Ver Anexo N° 6], en general este bloque es un algoritmo sencillo, que
selecciona el origen de la captura.
3.3.2. Selección de Región de interés y perspectiva
El primer objetivo de este bloque, es brindar una región de interés configurable por el usuario,
con al ánimo de no procesar regiones que no hagan parte de la vía, o que por perspectiva sean
inútiles y no brinden la suficiente información para ser consideradas como parte de la imagen.
Por ejemplo en la (Figura 5) se muestra un video que incluye dos andenes, además de otra vía en
sentido contrario, esta información es innecesaria y con la escogencia de este ROI “rectángulo de
líneas blancas y amarillas”, esas zonas ya no se incluirán en el procesamiento del algoritmo.
Figura 5 Ejemplo de ROI
Existe otro tipo de perspectivas que requieren de corrección para poder ser procesadas, como la
que se muestra en la (Figura 2). Para hacer esta corrección se usaron las funciones de OpenCV,
12
cvWarpPerspectiveQMatrix en OpenCV 1.0 ó cvGetPerspectiveTransform en OpenCV 1.1, para
obtener la matriz de 3x3 a ser usada luego en la transformación de perspectiva, la obtención de
los puntos para calcular esta matriz se hace con una interfaz con el usuario, en la que se pide
indicar con el ratón el ROI y después dos puntos más, los que se usarán como destino, junto con
los puntos inferiores del ROI, en la Figura 6 se muestra un ejemplo de esta selección de
perspectiva: En violeta, la región de interés; en amarillo las líneas de la vía con las que se realiza
la orientación de la perspectiva y dos puntos (uno rojo a la izquierda, y verde a la derecha) que
luego de la corrección de perspectiva pasarán a ser los puntos superior izquierdo y derecho
respectivamente.
Figura 6 Ejemplo de petición de perspectiva y corrección de la misma
En la Figura 7 la selección de la perspectiva se hizo muy amplia para mostrar un defecto al
escoger la región de interés, la falta de resolución en la parte superior de la imagen que
distorsiona significativamente la imagen con corrección Mientras más alejado este la vía de la
cámara menos resolución se va a tener por lo que la cantidad de información se verá disminuida.
Los algoritmos planteados requieren de un mínimo de resolución y calidad de la imagen para
trabajar de manera adecuada, por lo menos que el área de los vehículos este por encima de los
750 pixeles, por lo que se recomienda usar regiones como las de la Figura 6 [6]
13
Figura 7. Ejemplo de perspectiva y corrección con una selección muy grande de área
En esta etapa del algoritmo, se calcularon las coordenadas de la región de interés, y la matriz de
perspectiva, que son parámetros que se van a usar posteriormente en el algoritmo.
3.3.3. Estimación previa del fondo
La biblioteca Vidsurv.h [30] implementada en OpenCV es usada en diversas aplicaciones de
vigilancia por video y tiene como algoritmo base para la detección de objetos la estimación de
fondo y posterior reconocimiento del primer plano con lo que detecta los objetos en escena, para
su posterior seguimiento.
Los algoritmos en esta biblioteca fueron estudiados previamente, y en especial FGDStatmodel
[10] y [11] proveía una detección de los vehículos superior a otros algoritmos estudiados [Ver
Anexos N° 4 y 5], por lo que se intentó corregir los problemas que se presentaban en la
detección.
En las investigaciones preliminares se observó que este algoritmo de fondo en unión con una
técnica complementaria sería suficiente para lograr solucionar el problema que se muestra en la
Figura 8 y brindar una detección de los vehículos estable, que proporcione una imagen binaria en
la cual existe un solo objeto binario que representa a cada vehículo que se denominará de aquí en
adelante como bloque o blob en inglés [49],
14
Figura 8 problemas de falta de conexión de objetos binarios “bloques” que presenta FGDStatmodel [10] y [11]
FGDStatmodel [10] y [11] tiene el inconveniente de no detectar objetos que tengan un color
parecido al color del fondo como se muestra en la Figura 8, los vidrios en general y los vehículos
de un color similar al pavimento ó concreto confunden a este algoritmo, por lo que se implementó
un algoritmo que no trabajara con color, de [Ver Anexo N° 3], se encontró que con ningún
espacio de color se obtuvieron resultados buenos, así que se buscó otra alternativa.
Un algoritmo de bordes como el mostrado en la Figura 9 es capaz de detectar cambios en la
imagen lo suficientemente sutiles para poder detectar la presencia de un automóvil, incluso si es
de un color parecido al del fondo, esto debido a las sombras y a la iluminación. En la mayoría de
los casos a pesar de ser el vehículo del mismo color del pavimento la textura de la pintura es lo
suficientemente distinta para que un algoritmo de bordes sea capaz de detectar el cambio.
El fondo de la imagen [Ver Anexo N° 1], por ejemplo la Figura 10 (B), cuenta con características
complejas como la demarcación de la vía, manchas del pavimento, huecos y sombras, las cuales
son captadas por el algoritmo de bordes. Como solución se realizó este bloque que hace una
estimación del fondo, para posteriormente hallar los bordes propios del fondo y de esta manera
no tenerlos en cuenta en el procesamiento de los bordes del cuadro (Figura 10 (B y C)). Se buscó
que este fondo estimado cuente con una convergencia rápida y sea eficiente computacionalmente
en su implementación. Los detalles de este algoritmo implementado se encuentran en el [Ver
Anexo N° 1].
15
3.3.4. Mascara de Bordes del fondo
Con el fondo ya calculado [Ver Anexo N° 1], periódicamente se sacan los bordes de este fondo,
se aplican diferentes operaciones morfológicas, y se invierte con el objetivo de tener una máscara
de bordes del fondo (Figura 9), para poder substraer de los bordes del cuadro los bordes del
fondo, y tener solamente los vehículos.
Figura 9 Diagrama de flujo del algoritmo de mascara de fondo
La (Figura 10) muestra uno de los casos de mayor complejidad encontrada en el fondo[Ver
Anexo N° 1], la vía cuenta con demarcación y las condiciones de luz crean sombras alargadas en
la vía, que se pueden ver en la (Figura 10(B)), y la máscara de fondo, que se aprecia en la
(Figura 10 (C)). En esta imagen el algoritmo de detección de bordes de fondo fue capaz de
detectar todos los bordes en la imagen de fondo y estos no serán tenidos en cuenta en la
estimación de bordes del cuadro, por lo que la complejidad de la escena no afectará de manera
significativa la detección del vehículo.
16
Figura 10: Ejemplo de Mascara de fondo (B) de una imagen (A) con el fondo calculado por media aumentada (B)
3.3.5. Detección De Bordes Del cuadro De video
Consiste en un operador de Canny, seguido de una clausura con un elemento estructurante de
5X5 elíptico, esto con el fin de unir líneas del vehículo, que el operador de Canny no unió.
Conversión de RGB a escala de
grisesCanny Clausura Bordes del cuadro de
videoCuadro de video
Figura 11. Diagrama de flujo del algoritmo de bordes del cuadro de video
3.3.6. Estimación De Fondo Por FGDStatmodel Modificado
Para una reseña del algoritmo de FGDStatmodel, refiérase a [10] y [11]. Los parámetros
ingresados al algoritmo fueron encontrados mediante pruebas iterativas con los videos de
entrenamiento (ver el protocolo de entrenamiento)
17
Cuadro de video con corrección de perspectiva (si requiere)
Primera condición de movimiento
Segunda condición de presencia
Se actualiza FGDStatmodel
SI
SI
Se continua con el último modelo de
fondo
NO
NO
Bordes del cuadro
Calculo del Primer plano
Figura 12. Diagrama de flujo del bloque FGDStatmodel [10] y [11] modificado
Solo se actualiza el modelo estadístico [10] cuando se encuentran dos posibles condiciones: la
primera, basada en el movimiento del cuadro que consiste en hallar mediante un umbral de la
resta de cuadros consecutivos una silueta de movimiento y cuando esta silueta sobrepasa en área
de sus bloques un valor en norma L1 mayor al 0.5% del área de la región de interés se actualiza
así:
fondo el
0.005 x N) X ()( actualiza se no
0.005 x N) X ()( fondo el actualiza
11
11
MIIumbral
MIIumbral
Lnn
Lnn
<−
>−
−
−
El umbral esta en 50, y M y N son el largo y ancho de la región de interés
Con esta primera condición se separan cuadros en los que hay movimiento de cuadros donde no
lo hay, de tal manera que si no hay movimiento de un cuadro a otro, no se actualiza.
La segunda condición evalúa, si hay vehículos en el cuadro, si no hay ninguno, actualiza,
funciona usando el resultado de la detección de bordes del cuadro después de la AND (ver Figura
4) con la máscara de bordes y cuando este sobrepasa en área de sus bloques un valor en norma L1
mayor al 0.2% del área de la región de interés actualiza
18
fondo el
0.002 x N) X (bordes de diferencia actualiza se no
0.002 x N) X (bordes de diferencia fondo el actualiza
1
1
M
M
L
L
<
>
Figura 13 Ejemplo del funcionamiento de diferentes etapas del algoritmo:(A) la imagen original, (B)Unión de los resultados en C(C)
FGDStatmodel Modificado y algoritmo de (D) bordes en fondo calculado con la operación lógica AND entre (F) bordes del fondo calculado con (E) Algoritmo de Fondo por media aumentada y los bordes del cuadro original (A)
3.3.7. Variación de Perspectiva
La variación de perspectiva permite trabajar todos los videos con un mismo algoritmo base como
se observa en la (Figura 6), comparándola con la (Figura 5), pero al utilizarse antes de los bloques
de Estimación de Fondo por FGDStatModel [10], [11] y de Máscara de Bordes, se presentaban
19
20
errores en las estimaciones de estos bloques por el efecto de pérdida de información que se
muestra en la (Figura 7).
Por esta razón se utiliza la Variación de Perspectiva después y no antes de ser procesadas por los
algoritmos de estimación de fondo FGDStatModel Modificado y por máscara de bordes de fondo,
al ser unidos estos resultados mediante el operador binario OR (Figura 4), para luego ser
procesados por el Algoritmo de Seguimiento[Ver Anexo N° 2].
3.3.8. Seguimiento de Bloques
Teniendo el resultado de la unión de los bloques Estimación de Fondo por FGDStatModel [10],
[11] y Máscara de Bordes de Fondo corregido en su perspectiva en caso de requerirlo, se
procesan estas imágenes binarias con el siguiente algoritmo de reconocimiento, seguimiento,
clasificación y conteo ([1] y [31]) que se muestra en el diagrama de flujo de la (Figura 14).
Las flechas azules que se observan en la Figura 14 es la representación del control de banderas.
La descripción detallada del funcionamiento del algoritmo se encuentra en el [Ver Anexo N° 2]
3.3.9. Conteo de Vehículos
Esta función se realiza en el algoritmo de Seguimiento[Ver Anexo N° 2], en el bloque de color
rojo de la Figura 14. El algoritmo realiza el conteo de los vehículos en la una línea perpendicular
a la vía (ver Figura 34) al revisar si el centro de gravedad del objeto en el cuadro anterior se
encuentra antes o sobre de la mitad del cuadro y que el centro de gravedad del objeto en el cuadro
actual se encuentre después de esta línea, este objeto pasa a ser un vehículo contado, y se marca
para evitar un posible doble conteo del mismo por cualquier motivo.
Variación de perspectivaFGD + MBF
Búsqueda de Contornos en la
Imagen
Tamaño de los
bloquess
Unión de MBR’s
Separación de MBR’s mayores al
carril
Número de
Carriles
Cálculo de Momentos de Área
en los MBR’s
NO
Almacenamiento de datos en la secuencia de
Bloques
Es el primer cuadro?
Reinicio Matriz de Registro
Cálculo Distancias entre
B[r]n-1 y b[s]n
Conteo de Vehículos
Asignación de Nuevos Bloques de b[0,1,…,k]n
Control de banderas de B[r]n-1 y b[s]n
Borrado de Bloques sin asignar en
B[0,1,…,j]n-1
Asignación de b[s]n a B[r]n-1
Variación Inversa de perspectiva
1],..,1,0[ −njB
nkb ],..,1,0[
Figura 14. Diagrama de Flujo de Bloque de seguimiento [Ver Anexo N° 2]
3.3.10. Ejemplos de ejecución del algoritmo
A continuación se muestran algunos ejemplos de la ejecución del algoritmo. En rojo se muestra el
resultado de FGDStatmodel [10] y [11], en verde el resultado de Bordes de los vehículos, en
amarillo los puntos comunes de los dos anteriores, y en azul la combinación de los dos con
corrección de perspectiva, y en blanco la máscara de bordes del fondo. El conteo está ubicado en
el cuadro de video en la parte inferior de color cian, la línea de conteo se muestra en el piso, el
21
MBR que representa el vehículo detectado, está en color morado al igual que número de
identificación del bloque que lo representa
Figura 15 Ejemplos de detección en cuadros con perspectiva
22
4. PRUEBAS
4.1. PROTOCOLO DE ENTRENAMIENTO
Para realizar las pruebas preliminares se contó con una serie de videos en los que fue compilado
el algoritmo y con base en los errores vistos se realizaron las correcciones pertinentes, y
calibraciones necesarias. Estos videos no se tuvieron en cuenta para las pruebas finales, pero si
fueron posteriormente añadidos a la base de datos del grupo SIRP
Los videos de entrenamiento fueron tres y sus características se muestran en la Figura 16
Figura 16 cuadros de los videos de entrenamiento (A) “primeras 2 horas(2).avi” tomado en la carrera 13 con calle 37, (B) “S6300609.AVI”
tomado en la calle 53 con carrera 13.(C) “S6300570.AVI” tomado en la carrera 7 con 33
23
4.2. PROTOCOLO DE PRUEBAS
Se tomaron videos con una cámara puesta en un trípode para evitar movimiento de la imagen, en
una locación elevada sobre un segmento de vía típico, como lo es un puente peatonal, donde su
parte más baja se encuentra en promedio a 4.5m por encima de la vía, sumando la altura del piso
del puente y la del trípode, la cámara queda a una altura entre 6.5 y 7 metros de la vía (Figura
17). La perspectiva que se tiene de la vía es tal que incluyen todos los carriles de la misma, y se
toma el área de interés del video lo más cercano posible, para así evitar sobrelape u obstrucciones
de los vehículos por la perspectiva, como en la Figura 6.
Figura 17: Ejemplo de lugar donde se tomaron las muestras de prueba del video
En la otra Perspectiva usada la cámara fue ubicada en la parte exterior de un edificio que limita
con la vía a ser estudiada, (Figura 18) la cámara en este caso estaría orientada de manera vertical
y los problemas de perspectiva con los vehículos serán mínimos.
Figura 18 Ejemplo de Ubicación de la cámara en el balcón de un edificio próximo a la vía a ser estudiada
Un ejemplo de la primera perspectiva desde un puente peatonal se puede ver en la (Figura 19 de
la B a la L) con distintos ángulos de cámara, y de la segunda, en la (Figura 19 A, M, N, O)
24
Figura 19 Cuadros de cada uno de los videos de la muestra
25
De diferentes muestras de perspectivas, vías e iluminaciones se escogieron de manera aleatoria
15 videos de la base de datos del grupo SIRP, todos estos diferentes al conjunto de datos de
entrenamiento, y con estos 15 videos se realizaron las pruebas del algoritmo.
Los videos fueron tomados en distintas horas del día entre las 10:00 am y las 5:40 de la tarde
antes del ocaso, por lo que el algoritmo se probó con videos tomados de día con iluminación
natural con tiempo soleado ó nublado (Figura 19).
Entre los videos seleccionados, se encuentran videos grabados por diferentes personas con
objetivos de estudio diferentes; sin embargo, la lista completa de videos seleccionables cumple
con los requerimientos mínimos de las especificaciones del proyecto.
La relación de los videos, su tiempo de duración, el lugar de grabación, su representación en la
Figura 19 y sus dimensiones se muestra en la Tabla 1.
Tabla 1 Relación de los videos de prueba del algoritmo definitivo
Ancho Alto1 08092407.avi 00:02:45 Cll 53 con Cra 13 O 720 480 70,52 S6300610.AVI 00:10:04 Cll 53 con Cra 13 A 640 480 192,53 8092401.avi 00:10:01 Cll 53 con Cra 13 N 720 480 220,54 08022703.avi 00:04:44 Cll 38 con Cra 13 M 720 480 169,55 S6300572.avi 00:03:48 Cra 7 con Cll 31 B 640 480 986 S6300573.avi 00:03:30 Cra 7 con Cll 31 E 640 480 727 S6300582.avi 00:03:28 Cra 30 con Cll 72 D 640 480 326,58 S6300586.avi 00:00:36 Cra 30 con Cll 72 C 640 480 439 S6300581.avi 00:03:23 Cra 30 con Cll 72 F 640 480 270
10 S6300598.AVI 00:01:56 Autonorte con Cll 122 G 640 480 13711 S6300585.avi 00:01:31 Cra 30 con Cll 72 H 640 480 145,512 S6300596.avi 00:03:43 Autonorte con Cll 122 I 640 480 252,513 MOV00265.avi 00:01:21 Cra 30 con Cll 45 J 640 480 65,514 MOV00267.avi 00:01:21 Cra 30 con Cll 45 K 640 480 9215 MOV00272.avi 00:01:07 Cra 30 con Cll 45 L 640 480 87
Conteo ManualFiguraDimensiones
N° Nombre Duración Lugar
Todos los vehículos en los videos fueron contados por tres personas, distribuidos de tal manera
que cada video fue contado por lo menos dos veces.
Se tomó la media de estos dos conteos manuales como el resultado a ser comparado con el conteo
automático realizado por el algoritmo.
La relación de conteo manual se encuentra en la Tabla 2
26
Tabla 2 Relación del conteo manual
Video N° Persona 1 Persona 2 Persona 3 Promedio 1 71 70 70,52 196 189 192,53 222 219 220,54 167 172 169,55 98 98 986 72 72 727 328 325 326,58 43 43 439 270 270 270
10 138 136 13711 146 145 145,512 252 253 252,513 66 65 65,514 94 90 9215 89 85 87
Conteo Manual
La prueba del algoritmo se realizó seleccionando en cada video una región de interés tal como se
describe en el apartado Selección de Región de interés y perspectiva de la descripción por
bloques del algoritmo final, teniendo como resultado final la selección de Regiones de Interés
listada en la Tabla 3
Tabla 3 Dimensiones de las Regiones de Interés por cada video
Video N° Nombre Ancho Alto1 08092407.avi 680 2602 S6300610.AVI 620 3403 8092401.avi 676 3784 08022703.avi 264 3105 S6300572.avi 540 2286 S6300573.avi 628 2907 S6300582.avi 620 2628 S6300586.avi 612 2449 S6300581.avi 548 190
10 S6300598.AVI 500 20211 S6300585.avi 612 26012 S6300596.avi 608 18413 MOV00265.avi 432 21414 MOV00267.avi 620 42215 MOV00272.avi 616 446
Dimensiones ROI
27
4.3. TABLAS DE RESULTADOS
Los resultados del conteo del algoritmo se encuentran en la Tabla 4.
Tabla 4 Resultados de conteo del algoritmo
Video N° Resultado algoritmo
Conteo Manual
1 74 70,52 190 192,53 218 220,54 173 169,55 95 986 71 727 325 326,58 43 439 269 270
10 132 13711 148 145,512 246 252,513 53 65,514 86 9215 85 87
Un gráfico comparativo de estos resultados con el conteo manual es el siguiente:
Figura 20 Resultado algoritmo
28
5. ANÁLISIS DE RESULTADOS
Un gráfico del error representado por la diferencia de vehículos del conteo automático comparado
con el conteo manual se muestra en la Figura 21
Figura 21 Diferencia de conteo manual y automático
En la Figura 21 se puede observar el comportamiento del algoritmo ante las diferentes muestras
de video.
Se observa que en el video 8 el conteo del algoritmo es igual al conteo manual, mientras que en
los demás videos se presentan errores en el conteo tanto positivos, como errores negativos.
La representación del error porcentual por cada video se encuentra en la Figura 22.
29
Figura 22 Error porcentual del conteo
Estos porcentajes son calculados con respecto al conteo manual de cada video, listado en la Tabla
2. Se observa el error porcentual en cada uno de los videos, la mayoría de estos se encuentran por
debajo del 5% e incluso es nulo en el video 8.
No se puede realizar una comparación directa entre los distintos errores de los videos al ser estos
de muestras diferentes, distintas condiciones de tráfico y perspectiva de la cámara.
La precisión del algoritmo en algunos casos es alta, donde se observan errores menores al 5 %.
En el caso del video 13, la perspectiva de la cámara es distinta a de los demás videos ya esta no
se encuentra en el centro de la vía, sino tendiendo al carril izquierdo y es baja con respecto al
suelo, esto empeora la perspectiva vista por la cámara y hace que los bloques que representan los
vehículos se encuentren unidos de manera vertical, situación que genera errores en el conteo,
además el video presenta errores de compresión en segmentos del cuadro, que deteriora la escena
y causa falsos objetos detectados por FGDStatModel [10] y [11]. Un ejemplo de la compilación
del algoritmo se muestra en la Figura 23.
30
Figura 23. Ejemplos de compilación del video N° 13
Además de esto, las características de la cámara y su cercanía con la vía hacían que esta perdiera
el foco con los cambios de nivel ocurridos al pasar un vehículo de gran altura, lo que dificulta el
trabajo del algoritmo.
En el caso del video N° 1 el error se debe a una mala obtención y actualización de la estimación
del fondo de FGDStatModel [10] y [11]. El video comienza con una detención de los vehículos
causada por un semáforo y esta dura el tiempo suficiente para que estos se tengan en cuenta en el
modelo de fondo un ejemplo de este error se encuentra en la Figura 24
31
Figura 24 Mala actualización de FGDStatModel [10] y [11] modificado lo que genera errores de conteo
En la Figura 24 (A) se muestra como los vehículos están detenidos por el semáforo, en la Figura
24 (B) estos vehículos ya están arrancando, sin embargo ya son parte del fondo calculado por
FGDStatModel [10], [11] y este fondo será mantenido por un prolongado periodo de tiempo
usualmente más de 3 minutos usualmente dependiendo del video.
El video fue nuevamente compilado cortándolo de tal manera que el principio de este fuera el
comienzo del movimiento de los vehículos y el conteo realizado por el algoritmo fue de 71
32
vehículos, es decir un +0.7% lo que muestra que las condiciones iníciales son importantes para
un correcto funcionamiento; sin embargo, después de cierto tiempo al tener un modelo del fondo
adecuado los errores de conteo causados por este tipo de errores disminuyen
Este último resultado muestra que la perspectiva aérea tiene errores bajos, y estos dependen de
las condiciones iníciales del video, como se aprecia en la Tabla 5 con la adición del video N° 1
cortado en su inicio
Tabla 5 Errores porcentuales por tipo de vista
Video N°Resultado algoritmo
Conteo Manual
Diferencia Error (%) Tipo de vista(**) Figura
1 74 70,5 3,5 4,96 A O1* 71 70,5 0,5 0,71 A O2 190 192,5 -2,5 -1,3 A A3 218 220,5 -2,5 -1,13 A N4 173 169,5 3,5 2,06 A M5 95 98 -3 -3,06 B B6 71 72 -1 -1,39 B E7 325 326,5 -1,5 -0,46 B D8 43 43 0 0 B C9 269 270 -1 -0,37 B F
10 132 137 -5 -3,65 B G11 148 145,5 2,5 1,72 B H12 246 252,5 -6,5 -2,57 B I13 53 65,5 -12,5 -19,08 B J14 86 92 -6 -6,52 C K15 85 87 -2 -2,3 C L
(*)Versión del video N° 1 cortando el inicio de los videos detenidos (**)Para una referencia del tipo de vista de los videos (A, B y C), remítase a la Figura 19 y al protocolo de pruebas
A vista aérea elevada B vista desde puente peatonal inclinada hacia el horizonte C vista vertical desde un puente peatonal
En el video N° 5 la región de interés se encuentra alejada de la cámara y además se encuentra
cerca a un semáforo, los vehículos al detenerse se unen por perspectiva. Un ejemplo de este caso
se observa en la Figura 26, en el que se unen los vehículos por perspectiva.
En el video N° 10 se presenta un error al comienzo del conteo, mientras se crea el estimado del
fondo. En la Figura 25 en la esquina inferior izquierda de cada cuadro se encuentra el número de
cuadro, en color magenta. Después de 240 cuadros u ocho segundos este estimado se estabiliza y
el conteo es normal, como se observa en la Figura 25.
33
Figura 25. Secuencia de cuadros (de izquierda a derecha y de arriba a abajo)del video 10 con actualización de fondo en Rojo.
En los videos N° 14 y 15 el video se sale de foco, por la misma razón del video 13, y la
perspectiva es tal que se tiene una cobertura completa del carril central y se observan
parcialmente los carriles laterales, esto hace que el conteo manual sea difícil de realizar al no
haber una decisión clara de que vehículos contar lo cual se aprecia en la dispersión de los datos
del conteo manual de estos videos de 1.91 vehículos en el N° 14 y 3.0 vehículos en el video N°
15, por lo que el conteo manual se espera que también cuente con error comparado con el conteo
real.
Estos ejemplos de indecisión de conteo se pueden ver en la Figura 27.
34
Figura 26 ejemplo de cuadro del video N° 5
Figura 27. Ejemplo del video N° 14 y 15, donde se aprecian objetos que pasan por fuera de la línea de conteo, pero son perceptibles en un conteo
manual
35
5.1. ANÁLISIS DE LOS ERRORES ENCONTRADOS
Obviando los resultados dados en los videos 1, 13, 14 y 15 ya que las características de ellos no
permiten la separación de los errores de manera manual en los videos resultantes de la
compilación del algoritmo, se examinaron los demás videos poniendo especial atención a los
errores en el conteo y las características que estos presentan.
En este análisis se encontraron las siguientes características:
Vehículo con Bloques desligados
Vehículos con un mismo Bloque
Separación Incorrecta de MBR’s
Vehículo no detectado
Errores Aleatorios.
Estos errores detectados en los videos de las diferentes compilaciones fueron catalogados de
acuerdo a las anteriores categorías y se muestran a continuación en la Figura 28 según su
frecuencia:
Figura 28. Frecuencia de los errores
36
5.1.1. Vehículo con Bloques desligados
Se detecta el vehículo pero el algoritmo de seguimiento[Ver Anexo N° 2] no es capaz de unir los
bloques que lo representan.
En versiones pasadas del algoritmo, con el uso de FGDStatModel [10] y [11], los vehículos
comúnmente se encontraban desligados, por lo que fue necesaria la implementación de un
algoritmo de bordes que permitiera delimitar los bordes del vehículo y la creación de un filtro de
unión de MBR’s de bloques desligados, implementado en el algoritmo de seguimiento [Ver
Anexo N° 2].
Este error era esperado en algunos casos en que la detección de bordes de los vehículos no fue lo
suficientemente marcada esto debido al color del vehículo y además a que este iba a una alta
velocidad lo que causaba una captura prolongada en el cuadro de video por lo que el vehículo en
el cuadro no es nítido. Existen casos en donde FGDStatModel [10] y [11] no detecta el vehículo
de manera correcta. También suceden en los casos en los cuales el filtro de MBR’s no actua ya
que estos no se encuentran unidos más del 20% de su tamaño.
Un ejemplo de este error se muestra en la Figura 29.
37
38
Figura 29. Ejemplo de Vehículo con Bloques desligados (A) y (B) FGDSTatmodel [10] y [11] no fue capaz de reconocer el vehículo, y el algoritmo de bordes no fue suficiente para unir el contorno del vehículo
5.1.2. Vehículos con un mismo Bloque
Se unen dos o más vehículos por perspectiva o por estelas del algoritmo de fondo.
Esta característica se presenta cuando dos o más vehículos se encuentran unidos ya sea por
perspectiva (Figura 30 C), sombras (Figura 30 A), o estelas del algoritmo de FGDStatModel [10]
y [11] (Figura 30 B). Estas estelas se producen al entrar al cuadro de video uno o más vehículos
de colores claros que obliga a la cámara a compensar el contraste de la imagen oscureciendo el
pavimento. El algoritmo de fondo FGDStatmodel [10] y [11] detecta el pavimento oscurecido
como otro objeto ubicado detrás del vehículo y al salir el vehículo del cuadro este desaparece
causando errores en el conteo.
Para solucionar los posibles errores mostrados en la Figura 30 (A y C), se implementó una
separación de MBR’s dependiendo del ancho del bloque y del número de carriles en el video,
[Ver Anexo N° 2].
Los ejemplos de estos casos en que las medidas tomadas no fueron suficientes para separar los
vehículos se muestran en la Figura 30.
En la Figura 30 (A) el algoritmo de seguimiento[Ver Anexo N° 2] reconoció la unión de solo dos
vehículos en la unión de los tres (taxi, motocicleta y bus colectivo),
Figura 30 (A) Unión por cercanía de vehículos, (B) Unión por estela de FGDStatmodel [10] y [11] (C) Unión por perspectiva
5.1.3. Separación Incorrecta de MBR’s
El algoritmo de seguimiento [Ver Anexo N° 2] separa los MBR’s de manera errónea cuando un
vehículo grande (bus, camión, tractomula, etc) es visto más grande de lo que es.
39
Este error surge como consecuencia del algoritmo implementado para solucionar el anterior error
de vehículos con un mismo bloque, se encuentran falsos positivos a ser separados y se generan
más conteos de los reales.
Esto puede suceder cuando el vehículo, por la perspectiva de la cámara con respecto a la vía,
muestra a los vehículos de manera lateral, que hace que se vean tanto el costado como la parte
superior del vehículo como se ve en la Figura 31 (A)
Otra razón de la presencia de esta característica es debido a que el vehículo se encuentra diagonal
con respecto al sentido de la vía, como se observa en la Figura 31(B).
Figura 31. (A) separación causada por perspectiva (B) Separación causada por trayecto diagonal del bus que aumento su MBR
5.1.4. Vehículo no detectado
El vehículo no tiene las características suficientes para ser detectado.
40
La no detección de un vehículo se debe a problemas de calibración de los filtros de tamaño de
MBR’s para el video o a un vehículo que tenga un color muy parecido al fondo Se encontraron
solo 3 casos de este problema en una muestra de 2106. Dos de estos se muestran en la Figura 32
Figura 32 (A) no reconoció el vehículo ni el algoritmo de bordes ni FGDStatmodel [10] y [11] (B) el bloque correspondiente a la motocicleta no
fue lo suficientemente grande para ser tomado como un posible vehículo se presentaron dos casos similares a este último
5.1.5. Errores Aleatorios.
Dentro de los errores que se encuentran en esta categoría se observan conteos de objetos
diferentes a vehículos, pero que debido a sus características, son analizados por el algoritmo
como un objeto a ser contado como un vehículo.
En toda la muestra de videos se encontraron pocos casos de errores de conteo que no se
encontraban en ninguna de las anteriores categorías.
En el caso de peatones contados, se debe a una calibración que se encuentra por debajo de su
valor óptimo, se espera que el vehículo más pequeño a ser contado sea una bicicleta ó una
motocicleta y estos cuentan con un área en su forma mayor a la de un peatón de pie, por lo que
este error se puede evitar subiendo los umbrales de área y perímetro de los bloques a ser
detectados. Una muestra de estos errores se encuentra en la Figura 33.
41
Figura 33 (A) conteo de un peatón (B) conteo de un carro de dulces de tracción humana que pasaba por la vía
5.1.6. Conteo de Vehículos en distintos sectores de la vía
Con la intención de mejorar estos valores de error se pensó en realizar el conteo en distintos
sectores de la vía. Este estudio también mostrará las mejores posiciones de ubicación de la línea
de conteo.
El conteo de los vehículos se realiza mediante el cruce del vehículo, detectado en forma de
bloque, por una línea determinada en el cuadro de video. Se presentaron casos en los que el
algoritmo presentaba un error justo en el momento de pasar esta línea, esto provocaba un conteo
erróneo
42
En las distintas perspectivas de los videos a probar se realizaron mediciones en tres partes del
cuadro de video como se muestra en la Figura 34.
Figura 34. Realización de conteo en tres partes diferentes en el mismo cuadro de video.
Se realizan 3 mediciones para tener una mejor aproximación estadística de la veracidad de las
mediciones y su cercanía a las mediciones manuales.
Las mediciones se realizan en cuartas partes del cuadro. Una línea Cian realiza el conteo en el
primer cuarto, cuando los carros entran al cuadro; Una línea Amarilla realiza el conteo en la
mitad del cuadro y una línea Magenta realiza el conteo en el último cuarto del cuadro, cuando los
vehículos salen de escena.
La adición de más líneas de conteo hace que vehículos en los que se presente un error en el
conteo en una línea, sean contados en las siguientes.
Los resultados para los conteos en tres sectores de la vía se encuentran en la Tabla 6
43
Tabla 6 Resultados Conteo Algoritmo 3 Líneas
Linea Cian
Linea Amarilla
Linea Magenta
1 50 72 59 70,52 191 191 189 192,53 222 217 219 220,54 168 173 166 169,55 97 98 93 986 72 73 71 727 326 327 331 326,58 43 43 42 439 267 270 268 270
10 137 137 132 13711 145 146 150 145,512 249 259 249 252,513 51 55 46 65,514 91 88 85 9215 88 87 82 87
Conteo ManualResultado Algoritmo
Video N°
A estas mediciones se les realizó el cálculo de la media y de la desviación estándar, que se
muestra en la Tabla 7.
Tabla 7 Promedio y Desviación del conteo de 3 líneas
Video N° Promedio 3 líneas
Desviación Estandar Conteo Manual
1 60 11 70,52 190 1 192,53 219 3 220,54 169 4 169,55 96 3 986 72 1 727 328 3 326,58 43 1 439 268 2 270
10 135 3 13711 147 3 145,512 252 6 252,513 51 5 65,514 88 3 9215 86 3 87
La gráfica que relaciona los datos obtenidos en el conteo de 3 líneas se encuentra en la Figura 35
44
Figura 35. Resultados Algoritmo de 3 líneas
La diferencia entre el conteo manual y los conteos de 3 líneas se muestra en la Figura 36
Figura 36. Diferencias entre conteo manual y el algoritmo de 3 Líneas
La representación de los errores porcentual en 3 líneas por cada video se encuentra en la Figura
37.
45
Figura 37. Error porcentual del algoritmo de 3 Líneas
Similar a lo encontrado en la Figura 21 y la Figura 22, se observa que los videos con más errores
son el video 1 y el video 13.
Al observar la desviación de los valores de conteo en los videos 1 y 13 en la Tabla 7, se ve cómo
la medición en estos casos induce a que la media esté alejada del conteo manual.
Se puede observar el comportamiento del algoritmo en los demás videos en la Figura 38, donde
se observan los errores en el algoritmo de 1 línea y los errores en el algoritmo de 3 líneas.
46
Figura 38 Error 3 Líneas V/S 1Línea
La representación de los errores porcentuales de los valores de la Figura 38 se encuentra en la
Figura 39.
Figura 39. Error Porcentual 3 Líneas V/S 1 Línea
Observando la información de los videos 1 y 13, dado que la dispersión de estos datos es alta y
algunas líneas presentan un error alto, la media presenta un mayor error que el conteo realizado
en una sola línea. En el video 12 la dispersión es alta, mayor que en el video 13, pero la muestra
47
en video cuenta con más vehículos en escena y el error en cada una de las líneas es bajo. En los
demás casos, la inclusión de más líneas permite que el error sea compensado en caso en los que
se tengan errores positivos y negativos que permiten que la media esté más cerca al conteo
manual comparado con el conteo realizado con una sola línea.
El video 1 fue nuevamente compilado cortándolo de tal manera que el principio de este fuera el
comienzo del movimiento de los vehículos, para evitar el error mostrado en la Figura 24. El
conteo realizado por el algoritmo se observa en la Tabla 8 lo que muestra que las condiciones
iníciales son importantes para un correcto funcionamiento; sin embargo, después de cierto tiempo
al tener un modelo del fondo adecuado los errores de conteo causados por este tipo de errores
disminuyen al igual que su dispersión.
Tabla 8 Errores Porcentuales en 3 líneas
Video N° Conteo Diferencia Error (%) Conteo Diferencia Error (%) Conteo Diferencia Error (%) Conteo Desv. Est. Diferencia Error (%) Conteo Manual1 50 -20,5 -29,08 72 1,5 2,13 59 -11,5 -16,31 60 11 -10,5 -14,89 70,51* 67 -3,5 -4,96 70 -0,5 -0,71 70 -0,5 -0,71 69 2 -1,5 -2,13 70,52 191 -1,5 -0,78 191 -1,5 -0,78 189 -3,5 -1,82 190 1 -2,5 -1,3 192,53 222 1,5 0,68 217 -3,5 -1,59 219 -1,5 -0,68 219 3 -1,5 -0,68 220,54 168 -1,5 -0,88 173 3,5 2,06 166 -3,5 -2,06 169 4 -0,5 -0,29 169,55 97 -1 -1,02 98 0 0 93 -5 -5,1 96 3 -2 -2,04 986 72 0 0 73 1 1,39 71 -1 -1,39 72 1 0 0 727 326 -0,5 -0,15 327 0,5 0,15 331 4,5 1,38 328 3 1,5 0,46 326,58 43 0 0 43 0 0 42 -1 -2,33 43 1 0 0 439 267 -3 -1,11 270 0 0 268 -2 -0,74 268 2 -2 -0,74 27010 137 0 0 137 0 0 132 -5 -3,65 135 3 -2 -1,46 13711 145 -0,5 -0,34 146 0,5 0,34 150 4,5 3,09 147 3 1,5 1,03 145,512 249 -3,5 -1,39 259 6,5 2,57 249 -3,5 -1,39 252 6 -0,5 -0,2 252,513 51 -14,5 -22,14 55 -10,5 -16,03 46 -19,5 -29,77 51 5 -14,5 -22,14 65,514 91 -1 -1,09 88 -4 -4,35 85 -7 -7,61 88 3 -4 -4,35 9215 88 1 1,15 87 0 0 82 -5 -5,75 86 3 -1 -1,15 87
Promedio 3 LíneasLinea Cian Linea Amarilla Linea Magenta
(*)Versión del video N° 1 cortando el inicio de los videos detenidos
Realizando el análisis de cada una de las tres líneas se puede decir que la línea amarilla presenta
el mejor conteo de las 3 líneas, seguida de la línea cian y, por último, la línea magenta.
Como otra manera de correlacionar los datos, se calculó la mediana de los resultados de conteo
en las 3 líneas. Los resultados de este cálculo se encuentran en la Tabla 9.
48
Tabla 9 Valores de cálculo de la Mediana para el conteo en 3 líneas
Video N° Mediana Diferencia Error (%) Conteo Manual1 59 -11,5 -16,312 70,51* 70 -0,5 -0,709 70,52 191 -1,5 -0,779 192,53 219 -1,5 -0,68 220,54 168 -1,5 -0,885 169,55 97 -1 -1,02 986 72 0 0 727 327 0,5 0,153 326,58 43 0 0 439 268 -2 -0,741 270
10 137 0 0 13711 146 0,5 0,344 145,512 249 -3,5 -1,386 252,513 51 -14,5 -22,137 65,514 88 -4 -4,348 9215 87 0 0 87
(*)Versión del video N° 1 cortando el inicio de los videos detenidos
Observando la información de los videos 1 y 13, dado que la dispersión de estos datos es alta y
algunas líneas presentan un error alto, la mediana presenta un mayor error que el conteo realizado
en una sola línea. En los demás casos, la inclusión de más líneas permite que el error sea
compensado en caso en los que se tengan errores positivos y negativos que permiten que la
mediana esté más cerca al conteo manual comparado con el conteo realizado con una sola línea.
Al realizar el cálculo de la media en una muestra de 3 líneas y al existir entre ellas una baja
desviación, la mediana y la media serán similares, como se observa al comparar la Tabla 8 y la
Tabla 9.
La recopilación total de los conteos se observa en la Figura 40.
49
Figura 40 Conteo total de las 15 muestras
Si se calcula nuevamente, teniendo en cuenta las observaciones anteriores sobre los videos y sin
tener en cuenta los videos 1 y 13,de una muestra de 2106 vehículos a contar se llega a un valor de
0,62% de error, comparado con un 1,19% logrado con una sola línea. Comparando las líneas se
tiene que la Línea Cian obtuvo un 0,47% de error; la línea Amarilla obtuvo un 0,14% de error y
la línea Magenta obtuvo un 1,38% de error, como se observa en Figura 41. Por lo anterior, se
deduce que la mejor ubicación para contar los vehículos es realizando el conteo en la mitad del
cuadro del ROI.
Figura 41 Conteo total sin videos 1 y 13
50
5.2. TIEMPO DE COMPILACIÓN
Se tomó una versión del algoritmo que no contaba con los resultados mostrados en pantalla ni la
grabación del video de ejecución y se midió el tiempo que tardaba el algoritmo en completar el
video de muestra (Tabla 10) en distintos computadores, todos estos con Windows XP SP3 como
sistema operativo, además de tener instalado OpenCV 1.0 y .NET Framework 2.0. Los datos de
las ejecuciones se muestran en la Tabla 11
Tabla 10 Datos del Video de muestra
Nombre Video Tiempo Cuadros por segundo N° Cuadros Ancho Alto Ancho AltoS6300570 0:01:28 30 2640 640 480 585 223
Dimensiones ROIDimensiones Video
Tabla 11 Datos de las ejecuciones en diferentes computadores
N° PC Procesador Núcleos Vel. Reloj (GHz) RAM (GB) Tarjeta Gráfica RAM video (MB) FMA* Seguimiento FMA* Seguimiento1 Pentium 4 1 3.06 1.87 Ati Radeon 9100 128 0:01:08 0:07:42 0,77 5,252 Pentium D 2 3.4 1.87 Intel 82945G 128 0:00:41 0:06:02 0,47 4,113 Core 2 Duo 2 2.6 3.5 Nvidia Quadro NVS 135M 512 0:00:42 0:03:45 0,47 2,55
Tiempo Compilación Relación de Tiempos**
*FMA algoritmo de fondo por media aumentada[Ver Anexo N° 1]
** tiempo de compilación / tiempo de duración de video
El tiempo de compilación para el fondo de Media Aumentada[Ver Anexo N° 1] en los 3
computadores, es realizado más rápido que la duración del video, lo que implica que la
implementación en tiempo real de este algoritmo es posible en equipos de prestaciones comunes
(computador 1). El computador 2 y el computador 3 tienen similar tiempo de procesamiento, la
similitud en el tiempo podría deberse a la diferencia que tienen en la velocidad del reloj, siendo la
arquitectura del procesador del Computador 3 más reciente. Un caso diferente es la compilación
del seguimiento en los tres computadores, donde el Computador 3 presentó las mejores
prestaciones en el algoritmo de seguimiento ya que su configuración en procesamiento de
imágenes lo permite al tener tanto memoria RAM como Tarjeta de Video); estas prestaciones son
suficientes para pensar en una implementación en tiempo real en este momento reduciendo la
resolución de la captura o disminuyendo los cuadros por segundo del video.
El desarrollo del algoritmo de fondo por media aumentada[Ver Anexo N° 1] y de
seguimiento[Ver Anexo N° 2] puede ser llevado a sistemas embebidos en hardware lo que
permitirá reducir estos tiempos de ejecución de los algoritmos, para procesamiento en tiempo
real.
51
52
5.3. COMPARACIÓN CON OTROS ESTUDIOS
En el trabajo realizado por Kiratiratanapruk K, et al titulado “Vehicle detection and tracking for
traffic monitoring system”[5] reporta pruebas con 6 videos a una resolución de 640X480 a 30
cuadros por segundo, tomados durante el día con un espacio de tiempo en conjunto de 52 minutos
y con una cámara ubicada en un puente peatonal, entre 5 y 12 metros de altura. El total de
vehículos contados manualmente es de 1764, de los cuales se detectaron correctamente 1442 y se
contaron de estos 1374 haciendo los cálculos respectivos para poder comparar los resultados
presentan un error de 22.11 % en el conteo de vehículos. También usaron bibliotecas de Opencv
y el algoritmo usado para la detección se basa en un modelo de fondo del video usando canny
para el pre procesamiento. En un procesador Pentium M a 1.6 GHz y con 720 MB de RAM
reportaron entre 9.51 y 7.02 cuadros por segundo.
En el trabajo presentado por Thou-Ho (Chao-Ho) Chen, et al. En el trabajo titulado “Intelligent
Vehicle Counting Method Based on Blob Análysis in traffic Surveillance” [2] donde reportan
pruebas con 3 videos tomados a 320 X 240 a 30 cuadros por segundo y un total de vehículos
contados manualmente de 88 y de estos cuentan un total de 81 y reportan un error del 7.95%
sobre la muestra. Y usaron un notebook con un procesador Pentium M a 1.7 GHz. Usaron
detección de primer plano con una imagen del fondo encontrada mediante la actualización del
mismo determinada por el movimiento en la escena.
53
6. CONCLUSIONES
Una correcta medición de parámetros generales de tráfico, que están relacionados directamente
con el conteo de vehículos en el tiempo, permite el desarrollo de diversos estudios y
caracterizaciones de vías e incluso del comportamiento a futuro, y permite la realización de
estimaciones y predicciones de obras de manera confiable.
La obtención de estos parámetros de tráfico comúnmente se realiza de manera manual. Esto
implica una desarrollada capacidad de atención y concentración, las cuales se debilitan por
cansancio suscitando errores en las mediciones [50]. La visión artificial actualmente está en el
punto que este tipo de tareas se puede realizar de manera automática, debido al desarrollo en
hardware que permite procesar las grandes cantidades de información que se obtienen de un
video.
Actualmente existen cámaras de video dedicadas principalmente a crear un registro de los
acontecimientos en la vía mediante grabación de video y sonido.
Se propone ubicar estas cámaras de tal manera que se pueda realizar el procesamiento del video
con el algoritmo implementado para obtener el menor error en conteo comparado con el conteo
manual.
La ubicación que brinda los menores errores en el conteo es una vista superior y centrada en la
vía, evitando con esto las uniones de vehículos por perspectiva, además de ser lo suficiente
elevada para que los vehículos más largos que transiten de manera frecuente por la vía y la
totalidad de carriles sean capturados en el cuadro de la escena.
En caso de no ser posible la ubicación anterior, se pueden obtener resultados con un error similar
ubicando la cámara de tal manera que se produzcan las menores uniones entre vehículos por
perspectiva, ubicándola de manera elevada, centrada en la vía, que se observe la totalidad del
ancho de la vía con una inclinación de la cámara respecto a la horizontal de -90° ± 65° (Figura 1)
donde la región de Interés debe estar ubicada lo más cercano posible a la cámara.
Al constatar que al procesar los videos capturados por una cámara que cumple con alguna de las
anteriores ubicaciones, el algoritmo obtiene un resultado de conteo con errores menores al 5%,
54
minimizándose estos al ubicar una línea de conteo en la mitad del cuadro hasta un 2.6%. Todo
esta reflexión lleva a concluir que con una cámara bien situada se evita el uso de más cámaras
para el trabajo de conteo. Lo que si implicaría el uso de por lo menos dos cámaras sería hacer un
seguimiento en estéreo, para esto es necesario el uso de técnicas estereográficas y de calibración
que se encuentran en desarrollo en OpenCV [6].
Por otra parte, en el proceso de la investigación de herramientas que pudieran ser usadas para la
tarea de conteo de vehículos, se encontró que un solo algoritmo de detección no es
suficientemente robusto. Un único algoritmo de detección de fondo es una buena opción para
detectar objetos móviles en ambientes controlados; para ambientes no controlados y complejos
como lo es una vía, es necesario complementar las fallas que pueda obtener un algoritmo con las
virtudes de otro, así esto implique un mayor tiempo de procesamiento, que será compensado por
los avances tecnológicos en procesamiento de información.
Los resultados de este proyecto se pueden mejorar buscando añadir más de estos algoritmos con
el fin de hacer aún más robusta la detección, el seguimiento y el conteo, e implementar la
obtención de otros parámetros como la clasificación de vehículos y la obtención de otros datos
útiles para estimar los parámetros de tráfico, como la velocidad o la segmentación geométrica de
vehículos. También se pueden prevenir los errores aislados con una correcta retroalimentación
del calibrado de área y perímetro, ya sea de forma manual ó automática.
Del algoritmo de seguimiento se puede sacar la velocidad fácilmente teniendo calibrado el video
con la relación de pixeles por metro; dado que ya se tiene una estimación de la velocidad en
píxeles por segundo. Adicionalmente, esta medida puede ser mejorada usando técnicas más
especializadas en seguimiento como flujo óptico que pueden permitir hallar esta medida con
mayor precisión
El algoritmo desarrollado también podría ser útil para recopilar información para un futuro
clasificar: se pueden recopilar muestras de vehículos con el algoritmo de seguimiento[Ver Anexo
N° 2] para entrenar con esta base de datos un clasificador como cascadas de Haar, Adaboost u
otra técnica similar, reduciendo el trabajo de adquisición de muestras positivas.
Finalmente, este estudio promete a futuro servir de punto de referencia a otros trabajos del grupo
SIRP en especial el algoritmo de seguimiento[Ver Anexo N° 2] al ser compatible con muchas
55
técnicas diferentes, y el algoritmo de estimación de fondo por media aumentada[Ver Anexo N° 1]
que brinda una aproximación de rápida convergencia especializada en el análisis de tráfico.
56
7. BIBLIOGRAFIA
7.1. Libros y documentos
7.1.1. Conteo de vehículos y afines:
[1] Cheong,C. y Ching,N.(2007, Septiembre)."A Method for Vehicle Count in the Presence of
Multiple-Vehicle Occlusions in Traffic Images".IEEE Transactions on Intelligent
Transportation Systems.8 (3).
[2] Chen,T.,Lin,Y. y Chen,T.(2007)."Intelligent Vehicle Counting Method Based on Blob
Analysis in Traffic Surveillance". Proceedings of the Second International Conference on
Innovative Computing, Information and Control.pp.238-241.
[3] Del Carpio, Damián. Ch. C. , Navarrete, R. Marco, A. y Kemper, V. Guillermo , "Sistema de
detección de automoviles utilizando técnicas de procesamiento digital de imágenes".
Universidad de San Martín de Porres, Facultad de Ingeniería y Arquitectura.
[4] Gupte, S., Masoud, O., Martin, R.F.K., Papanikolopoulos,N.P.(2002,March)."Detection and
classification of vehicles".IEEE Transactions on Intelligent Transportation Systems.3(1).
pp.37 - 47.
[5] Kiratiratanapruk, K. y Siddhichai, S. (2006) "Vehicle Detection and Tracking for Traffic
Monitoring System"Information Research and Computer Development Division National
Electronics and Computer Technology Center,TENCON,IEEE Region 10 Conference.
7.1.2. Libros
[6] Bradsky,G. y Kaehler,A.(2008)."Learning OpenCV".Sebastopol,Canada.O’Reilly Media,
Inc.Septiembre 30 2008.
57
[7] Jain, Anil. K. (1948)."Fundamentals of Digital Image Processing". Englewood
Cliffs.Prentice-Hall International, Inc.1991
[8] Pardillo, M. José, M.(2003). "Apuntes de ingeniería de tráfico". Madrid, España.E.T.S.
Ingenieros de Caminos, Canales y Puertos.
7.1.3. Fondo
[9] KaewTraKulPong, P. y Bowden, R.(2001,Sept)."An Improved Adaptive Background Mixture
Model for Real time Tracking with Shadow Detection". 2nd European Workshop on
Advanced Video Based Surveillance Systems, AVBS01.
[10] Li,L.,Huang,W., Gu,I.,Tian,Q.(2003)."Foreground Object Detection from Videos Containing
Complex Background". International Multimedia Conference Proceedings of the eleventh
ACM international conference on Multimedia.pp.2 – 10.
[11] Rosin,Paul L.(1998)."Thresholding for Change Detection". Department of Information
Systems and Computing Brunel University. iccv,pp.274, Sixth International Conference
on Computer Vision (ICCV'98).
7.1.4. Momentos
[12] Hu,M.(1962)."Visual Pattern Recognition by Moment Invariants".IEEE Transactions of
information theory. pp. 179-187.
[13] Kilian,J.(2001,Marzo)"Simple Image Analysis By Moments".(0.2).Consultado el 17 de
noviembre de 2008 en:
http://vaderio.googlepages.com/SimpleImageAnalysisbyMoments.pdf.
[14] Kotoulas,L. y Andreadis,I. "Image analysis using moment".Department of Electrical and
Computer Engineering.Democritus University of Thrace.
58
7.1.5. Plantilla de movimiento (Motempl)
[15] Bobick A. y Davis J. .(1996). “Real-time recognition of activity using temporal templates,”
IEEE Workshop on Applications of Computer Vision (pp. 39–42).
[16] Bradski G. y Davis J. .(2000). “Motion segmentation and pose recognition with motion
history gradients,” IEEE Workshop on Applications of Computer Vision.
[17] Davis J. W. y Bobick Aaron F. .(1997)."The Representation and Recognition of Action
Using Temporal Templates". IEEE Conference on Computer Vision and Pattern
Recognition
[18] Davis J. W. y Bradski G. .(1999). “Real-time motion template gradients using Intel CVLib,”
ICCV Workshop on Framerate Vision.
7.1.6. Flujo óptico
[19] Bouguet,J."Pyramidal implementation of the Lucas Kanade feature Tracker".[Artículo en
línea].Consultado el 18 de Noviembre de 2008 en:
http://robots.stanford.edu/cs223b04/algo_tracking.pdf.
[20] Stavens,D."Introduction to OpenCV". [Artículo en línea]. Consultado el 18 de Noviembre de
2008 en: http://ai.stanford.edu/~dstavens/cs223b/stavens_opencv_optical_flow.pdf.
7.1.7. Cascadas de Haar
[21] Jones,M. y Viola,P.(2001,Julio)."Robust Real-time Object Detection". Second International
Workshop on Statistical and Computational Theories of Vision - Modeling, Learning,
Computing and Sampling. Vancouver, Canada.
[22] Seo,N.(2008)."Tutorial: OpenCV haartraining Rapid Object Detection With A Cascade of
Boosted Classifiers Based on Haar-like Features".[Curso en Línea]. Consultado el 18 de
Noviembre de 2008 en :http://note.sonots.com/SciSoftware/haartraining.html.
59
[23] Viola,P. y Jones,M.(1991)."Rapid Object Detection using a Boosted Cascade of Simple
Features".Conference on Computer Vision and Pattern Recognition.
7.1.8. Otros
[24] Christopher Jhon Setchell (1997), Applications of Computer vision to Road-Traffic
Monitoring [tesis doctoral en linea]. University of Bristol. consultado el 19 de noviembre
de 2008 en: http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=1000217
[25] Kim-Sung Jie y Ming Liu.(2005)"Computer vision based real-time information acquisition
for transport traffic", Information Acquisition, 2005 IEEE International Conference on
Volume, 27 paginas: 6 pp.
[26] Senior, A.W., Hampapur, A. y Lu M.(2005) "Acquiring Multi-Scale Images by Pan-Tilt-
Zoom Control and Automatic Multi-Camera Calibration". Application of Computer
Vision,05 Volume 1. Seventh IEEE Workshops on Volume 1 , Page(s):433 – 438.
[27] Kai-Tai Song y Jen-Chao Tai.(2006) "Dynamic Calibration of Pan–Tilt–Zoom Cameras for
Traffic Monitoring." IEEE TRANSACTIONS ON SYSTEMS, MAN, AND
CYBERNETICS—PART B: CYBERNETICS, VOL. 36, NO. 5,
[28] Del Bimbo, Alberto y Pernici, Federico. (2005) "Distant Targets Identification as an On-
Line Dynamic Vehicle Routing Problem using an Active- Zooming Camera", IEEE
INTERNATIONAL WORKSHOP ON VS-PETS Beijing
[29] Sudipta, N. Sinha y Marc, Pollefeys, "Toward Calibrating a Pan Tilt Zoom Camera
Network." Departament of computer science, University of North Carolina at Chapel Hill
7.2. Páginas Web
7.2.1. OpenCV
[30] wiki opencv http://opencv.willowgarage.com/wiki/ consultado el 19 de noviembre de 2008
60
[31] The OpenCV Video Surveillance / Blob Tracker Facility
http://opencv.willowgarage.com/wiki/VideoSurveillance consultado el 19 de noviembre
de 2008
[32] Visual C++. http://www.microsoft.com/spanish/msdn/vstudio/express/VC/default.mspx
consultado el 19 de noviembre de 2008
[33] Página de Devcpp. http://www.bloodshed.net/devcpp.html consultado el 19 de noviembre
de 2008
[34] BSD Licence. http://www.opensource.org/licenses/bsd-license.php consultado el 19 de
noviembre de 2008
7.2.2. Estudios de Tráfico
[35] Secretaria de movilidad de Bogota.
http://www.transitobogota.gov.co/categoria.asp?cat_id=225 . consultado el 19 de
noviembre de 2008
[36] EL MUNDO Londres, videovigilado: cada 10 segundos le capturará un vídeo.
http://www.elmundo.es/suplementos/ariadna/2007/336/1183740591.html , consultado el
19 de noviembre de 2008
[37] Secretaria de transito de Bogotá observatorio de movilidad urbana
http://www.transitobogota.gov.co/omu/contenido/contenido.aspx?catID=9&conID=13
consultado el 19 de noviembre de 2008
[38] Cámara de comercio de Bogotá
http://camara.ccb.org.co/contenido/contenido.aspx?catID=434&conID=2295 consultado
el 19 de noviembre de 2008
61
7.2.3. Video
[39] http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=video consultado el 19 de
noviembre de 2008
[40] Página de XVid. Xvid.org http://www.xvid.org/FAQ.14.0.html, consultado el 19 de
noviembre de 2008
[41] Página de DivX. DivX.com http://www.divx.com/divx/whatisdivx.php , consultado el 19 de
noviembre de 2008
[42] Mjpeg. http://mjpeg.sourceforge.net/ consultado el 19 de noviembre de 2008
[43] Página de AVI File Format. http://msdn.microsoft.com/en-us/library/ms779631(VS.85).aspx
consultado el 19 de noviembre de 2008
[44] Mpeg-4. http://www.apple.com/quicktime/technologies/mpeg4/ consultado el 19 de
noviembre de 2008
7.2.4. Herramientas y otros
[45] The MathWorks - Matlab and Simulink http://www.mathworks.com/ consultado el 19 de
noviembre de 2008
[46] Image Acquisition Toolbox http://www.mathworks.com/access/helpdesk/help/toolbox/imaq/
consultado el 19 de noviembre de 2008
[47] Image Processing
Toolboxhttp://www.mathworks.com/access/helpdesk/help/toolbox/images/ consultado el
19 de noviembre de 2008
[48] Harpia Proyect http://s2i.das.ufsc.br/harpia/en/home.html consultado el 19 de noviembre de
2008
62
[49] True story of BLOBs. http://www.cvalde.net/misc/blob_true_history.htm consultado el 19
de noviembre de 2008
[50] Green, Mary W (1999,Septiembre). “The Appropriate and Effective Use of Security
Technologies in U.S. Schools”,[Libro en Línea] consultado el 19 de noviembre de 2008
en http://ncjrs.gov/school/178265_5.pdf