EMPAREJAMIENTO EN IMÁGENES DE ACUMULACIÓN
ESPACIO-TEMPORAL PARA LA ESTIMACIÓN DE LA
VELOCIDAD MEDIA DE UNA VÍA VEHICULAR.
NICOLÁS LAVERDE ALFONSO
TRABAJO DE GRADO PARA OPTAR POR EL TÍTULO DE
INGENIERO ELECTRÓNICO
DIRECTOR
ING. FRANCISCO CARLOS CALDERÓN BOCANEGRA, M.Sc.
PONTIFÍCIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRÓNICA
BOGOTA DC, 2012
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA
RECTOR MAGNÍFICO:
P. Joaquín Emilio Sánchez García, S.J.
DECANO ACADÉMICO:
Ing. Luis David Prieto Martínez
DECANO DEL MEDIO UNIVERSITARIO:
P. Sergio Bernal Restrepo, S.J.
DIRECTOR DE CARRERA
Ing. Jairo Hurtado, PhD.
DIRECTOR DE PROYECTO:
Ing. Francisco Carlos Calderón Bocanegra, M.Sc.
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 CONTENDIO
TABLA DE CONTENDIO .......................................................................................................................... I
ÍNDICE DE FIGURAS ............................................................................................................................. III
ÍNDICE DE TABLAS ............................................................................................................................... IV
LISTADO DE ANEXOS ............................................................................................................................. V
1. INTRODUCCIÓN .................................................................................................................................... 1
2. DESCRIPCIÓN ........................................................................................................................................ 3
2.1. OBJETIVOS. ...................................................................................................................................... 3
2.1.2. Objetivos Específicos. .................................................................................................................. 3
2.2. DESCRIPCIÓN GENERAL. .............................................................................................................. 3
2.3. MATERIAL USADO EN EL DESARROLLO DEL PROYECTO. .................................................. 4
3. MARCO DE REFERENCIA .................................................................................................................. 5
3.1. IMÁGENES DE ACUMULACIÓN ESPACIO-TEMPORALES. ..................................................... 5
3.2. ESTIMACIÓN DE LAVELOCIDAD MEDIA. ................................................................................. 6
3.2.1. Visión Estéreo. ............................................................................................................................. 6
3.2.2. Disparidad. ................................................................................................................................... 7
3.2.3. Estimación de la Velocidad. ....................................................................................................... 10
3.3. TÉCNICAS DE EMPAREJAMIENTO. ........................................................................................... 11
3.3.1. Restricciones. ............................................................................................................................. 11
3.3.2. Clasificación de las técnicas de emparejamiento. ...................................................................... 12
3.4. CORRELACIÓN CRUZADA 2D (CC). .......................................................................................... 13
3.5. CORRELACIÓN CRUZADA NORMALIZADA (NCC). ............................................................... 15
3.6. SUMAS DE DIFERENCIAS ABSOLUTAS (SAD). ....................................................................... 15
3.7. SUMA DE DIFERENCIAS AL CUADRADO (SSD). .................................................................... 17
4. DESARROLLOS. ................................................................................................................................... 19
4.1. DISEÑO PRELIMINAR. .................................................................................................................. 19
4.1.2. Algoritmos preliminares basados en las técnicas de emparejamiento estéreo. .......................... 19
4.1.2. Aplicación de los algoritmos preliminares para el cálculo de la disparidad. ............................. 22
4.1.3. Espacio de color. ........................................................................................................................ 25
4.1.4. Limitación de la imagen y el concepto de carriles. .................................................................... 29
4.1.5. Líneas de acumulación. .............................................................................................................. 31
II
4.2. EFICIENCIA DE LOS ALGORITMOS PRELIMINARES PARA EL CÁLCULO DE LA
DISPARIDAD. ......................................................................................................................................... 33
4.3. ALGORITMOS DE IDENTIFICACIÓN. ........................................................................................ 43
4.4. EFICIENCIA DE LOS ALGORITMOS PARA LA ESTIMACIÓN DE LA VELOCIDAD
MEDIA. .................................................................................................................................................... 46
4.4.1. Videos de diseño. ....................................................................................................................... 46
4.4.2. Disparidad. ................................................................................................................................. 47
4.4.3. Estimación de la velocidad. ........................................................................................................ 48
4.4.4. Velocidad calculada manualmente. ............................................................................................ 49
4.4.5. Resultados de la estimación de la velocidad media.................................................................... 49
4.4.6. Observaciones. ........................................................................................................................... 51
5. ALGORITMO PROPUESTO PARA LA ESTIMACIÓN DE LA VELOCIDAD .......................... 55
5.1. ENTRADAS Y SALIDAS DEL ALGORITMO PROPUESTO. ..................................................... 55
5.2. LECTURA DEL VIDEO. ................................................................................................................. 57
5.3. GENERACIÓN DE LAS IMÁGENES DE ACUMULACIÓN ESPACIO-TEMPORAL. .............. 57
5.4. ESTIMACIÓN DE LA VELOCIDAD MEDIA. .............................................................................. 57
5.5. IMPLEMENTACIÓN. ...................................................................................................................... 59
6. RESULTADOS. ...................................................................................................................................... 61
6.1. VIDEOS DE PRUEBA CAPTURADOS.......................................................................................... 61
6.2. RESULTADOS OBTENIDOS. ........................................................................................................ 62
6.3. ANALISIS DE RESULTADOS. ...................................................................................................... 63
6.4. RESTRICCIONES Y RECOMENDACIONES. .............................................................................. 63
7. CONCLUSIONES .................................................................................................................................. 65
8. BIBLIOGRAFIA .................................................................................................................................... 69
ANEXOS ....................................................................................................................................................... i
III
ÍNDICE DE FIGURAS
Figura 1. Concepto de imagen de acumulación espacio-temporal. ................................................................ 5 Figura 2. Imágenes estéreo. ............................................................................................................................ 7 Figura 3. Modelo "pinhole". ........................................................................................................................... 8 Figura 4. Proyección 3d sobre un plano 2D. .................................................................................................. 8 Figura 5. Configuración estéreo de un arreglo de dos cámaras [14]. ............................................................. 9 Figura 6. Arreglo estéreo calibrado. ............................................................................................................... 9 Figura 7. Relación entre la profundidad y la disparidad [12]. ...................................................................... 10 Figura 8. Representación grafica de la correlación cruzada. ........................................................................ 14 Figura 9. Matrices ejemplo para el algoritmo SAD. .................................................................................... 16 Figura 10. Curvas características de las técnicas SAD y SSD. .................................................................... 18 Figura 11. Imágenes sintéticas para el diseño preliminar de los algoritmos. ............................................... 19 Figura 12. Resultados de la Correlación Cruzada sobre la imágenes sintéticas. .......................................... 24 Figura 13. Resultados de la Correlación Cruzada Normalizada sobre las imágenes sintéticas. ................... 24 Figura 14. Resultados de la Suma de Diferencias Absolutas sobre las imágenes sintéticas. ....................... 25 Figura 15. Par de imágenes sintéticas a color usadas. .................................................................................. 26 Figura 16. Resultados de la escena sintética por componentes usando CC y NCC. ................................... 27 Figura 17. Resultados de la escena sintética por componentes usando técnicas SAD y SSD. ..................... 27 Figura 18. Resultados obtenidos al aplicar las 4 técnicas sobre la escena sintética en Grises. .................... 28 Figura 19. Limitación de la escena sintética por carriles. ............................................................................ 29 Figura 20. Resultados de aplicar las 4 técnicas a la escena sintética, en Grises y por Carriles. ................... 30 Figura 21. Situaciones no deseadas según la ubicación de las líneas de acumulación................................. 32 Figura 22. Situación no deseada: frenado de vehículos sobre las líneas. ..................................................... 33 Figura 23. Par de imágenes de diseño 1. ...................................................................................................... 34 Figura 24. Correspondencia carril 1 (Imágenes de diseño 1). ...................................................................... 35 Figura 25. Correspondencia carril 2 (Imágenes de diseño 1). ...................................................................... 35 Figura 26. Correspondencia carril 3 (Imágenes de diseño 1) ....................................................................... 36 Figura 27. Correspondencia completa (Imágenes de diseño 1). ................................................................... 36 Figura 28.Par de imágenes de diseño 2. ....................................................................................................... 37 Figura 29. Par de imágenes de diseño 3. ...................................................................................................... 38 Figura 30. Tiempos invertidos por las técnicas de emparejamiento (método de carriles). .......................... 41 Figura 31. Tiempos invertidos por las técnicas de emparejamiento (método imagen completa=. ............... 41 Figura 32. Disparidades calculadas por las técnicas de emparejamiento. .................................................... 42 Figura 33. Curvas características de las técnicas de correlación. ................................................................. 43 Figura 34. Curvas características de las técnicas de sumas de diferencias. ................................................. 44 Figura 35. Derivadas correspondientes a las curvas SAD y SSD. ............................................................... 45 Figura 36. Derivada de la curva característica de la técnica SAD. .............................................................. 45 Figura 37. Duplicación al separar la vía en carriles. .................................................................................... 52 Figura 38. Ausencia de vehículos en un carril. ............................................................................................ 52 Figura 39. Disparidad nula. .......................................................................................................................... 53 Figura 40. Efecto del frenado sobre las líneas de acumulación. .................................................................. 53 Figura 41. Diagrama en bloques del algoritmo propuesto. .......................................................................... 55 Figura 42. Archivo de salida. ....................................................................................................................... 58 Figura 43. Evolución del proceso para la estima de la velocidad media en una vía. ................................... 60 Figura 44. Irregularidades en el fondo. ........................................................................................................ 63 Figura 45. Ejemplo a 4 FPS. ........................................................................................................................ 65 Figura 46. Ejemplo a 9 FPS. ........................................................................................................................ 65 Figura 47. Precisión vs FPS. ........................................................................................................................ 66 Figura 48. Propuesta para la reducción del tiempo de ejecución. ................................................................ 67
IV
ÍNDICE DE TABLAS
Tabla 1. Disparidades de las 4 imágenes sintéticas. ..................................................................................... 20 Tabla 2. Aplicación de los algoritmos sobre las imágenes sintéticas. .......................................................... 23 Tabla 3. Disparidad promedio de la escena sintética. .................................................................................. 26 Tabla 4. Disparidad de la escena sintética usando CC y NCC por componentes......................................... 27 Tabla 5. Disparidad de la escena sintética usando SAD y SSD por componentes. ...................................... 28 Tabla 6. Disparidad de la escena sintética en Grises. ................................................................................... 28 Tabla 7. Comparación del tiempo invertido entre el método Imagen Completa y Carriles ......................... 30 Tabla 8. Disparidad calculada por el método Carriles. ................................................................................ 31 Tabla 9. Resultados al aplicar las técnicas de emparejamiento sobre la escena sintética. ........................... 31 Tabla 10. Disparidades obtenidas manualmente las imágenes de diseño 1. ................................................ 34 Tabla 11. Disparidades promedio por carriles las imágenes de diseño 1. .................................................... 34 Tabla 12. Disparidades obtenidas manualmente las imágenes de diseño 2. ................................................ 37 Tabla 13. Disparidades promedio por carriles las imágenes de diseño 2. .................................................... 38 Tabla 14. Disparidades obtenidas manualmente las imágenes de diseño 3. ................................................ 38 Tabla 15. Disparidades promedio por carriles las imágenes de diseño 3. .................................................... 38 Tabla 16. Tiempos invertidos (par de entrenamiento 1). ............................................................................. 39 Tabla 17. Disparidades calculadas (par de entrenamiento 1). ...................................................................... 39 Tabla 18. Tiempos invertidos (par de entrenamiento 2). ............................................................................. 39 Tabla 19. Disparidades calculadas (par de entrenamiento 2). ...................................................................... 40 Tabla 20. Tiempos invertidos (par de entrenamiento 3). ............................................................................. 40 Tabla 21. Disparidades calculadas (par de entrenamiento 3). ...................................................................... 40 Tabla 22. Eficiencias de las técnicas de emparejamiento. ........................................................................... 42 Tabla 23. Configuración de la cámara PlayStationEYE. ............................................................................. 47 Tabla 24. Características de los videos de entrenamiento. ........................................................................... 47 Tabla 25. Características de las imágenes de acumulación. ......................................................................... 47 Tabla 26. Disparidad del video de entrenamiento 2. .................................................................................... 48 Tabla 27. Velocidad estimada aplicando el algoritmo NCC (video 2). ........................................................ 49 Tabla 28. Velocidad estimada aplicando el algoritmo SAD (video 2). ........................................................ 50 Tabla 29. Velocidad media del video de entrenamiento 2. .......................................................................... 50 Tabla 30. Resultados de la estimación de la velocidad en los videos de entrenamiento. ............................. 51 Tabla 31. Eficiencia de la estimación de la velocidad en los videos de entrenamiento. .............................. 51 Tabla 32. Entradas del algoritmo propuesto. ................................................................................................ 56 Tabla 33. Salidas del algoritmo propuesto. .................................................................................................. 56 Tabla 34. Algoritmos y funciones diseñadas para la solución del problema. .............................................. 59 Tabla 35. Características de los videos capturados. ..................................................................................... 61 Tabla 36. Parámetros definidos para estimar la velocidad. .......................................................................... 61 Tabla 37. Velocidad y disparidad media estimadas por el algoritmo propuesto. ......................................... 62 Tabla 38. Eficiencia del algoritmo propuesto al estimar la velocidad media. .............................................. 62
V
LISTADO DE ANEXOS
ANEXO N° 1. CORRESPONDENCIA DE LAS IMÁGENES DE DISEÑO
ANEXO N° 2. DISPARIDAD DE LOS VIDEOS DE DISEÑO
VI
1
1. INTRODUCCIÓN
La movilidad o desplazamiento en una ciudad supone un factor de gran importancia para su desarrollo, ya
que el crecimiento de las ciudades, como fenómeno de evolución social, económico y político, trae
consigo, entre otros, problemas relacionados con este aspecto. Como consecuencias del incremento
poblacional, los diferentes medios de transporte utilizados por los habitantes de la ciudad para
movilizarse aumentan, al igual que la demanda de espacio para su desplazamiento.
En ciudades principales y de gran desarrollo urbano, existe la infraestructura necesaria para manejar la
mayoría del tráfico vehicular de manera eficiente. Es por eso que hay autopistas y avenidas con la
capacidad suficiente de proveer el espacio necesario para la movilidad por los principales puntos de la
cuidad. Muchas veces en las horas pico existen grandes embotellamientos y trancones en estas vías, a
pesar de la infraestructura, la señalización y el manejo de semáforos para regular la densidad vehicular.
La principal causa de los trancones se debe a la falta de un sistema de control que maneje los tiempos de
los semáforos para liberar las vías que son más transitadas a ciertas horas, mientras otras presentan bajo
tránsito. Otras veces se debe a la falta de un estudio de tránsito en ciertos puntos, cuyos resultados pueden
ser usados para un mejor diseño de infraestructura y señalización que permitan mejorar la circulación por
la ciudad.
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 [3].
Como herramienta en el diseño de vías, se usan modelos de predicción, que son diseñados basándose en
muestras de los tres principales parámetros de tráfico, volumen e intensidad de circulación, densidad y
velocidad.
El volumen y la intensidad de circulación indican el número de vehículos que pasan por un segmento de
vía durante un intervalo de tiempo determinado. El intervalo de tiempo para el volumen de circulación
varía desde años, meses o días, hasta horas. La intensidad expresa la cantidad de vehículos en un tramo de
vía por hora. La densidad indica el número de vehículos que ocupan un segmento específico de vía; sus
unidades son vehículos por kilómetro [2].
La velocidad se define como la distancia recorrida por un vehículo por unidad de tiempo. Para caracterizar
el tráfico, se usa como valor representativo la velocidad media, la cual es obtenida al promediar las
velocidades individuales de cada vehículo.
La medición de velocidad en una vía vehicular es de suma importancia en cuanto a planificación vial y
regulación de tránsito, ya que permite tomar decisiones para mejorara la movilidad y reducir la
accidentalidad en la vía. Actualmente, existen técnicas basadas en el uso de pistolas radar para la
obtención de la velocidad de un vehículo, la cual utiliza el principio del efecto Doppler (diferencia de
frecuencia entre una onda incidente y una reflejada) para tal fin [1]. Para esto, un operario debe apuntar la
pistola al vehículo objetivo hasta obtener una medida de la velocidad del vehículo, con un error de ±2
km/h, a una distancia de aprox. 450 m.
Este método trae consigo varias limitaciones: la mayoría de estas pistolas solo pueden calcular la
velocidad de un vehículo a la vez, y es necesario que en el rango “visual” de la pistola solo este dicho
vehículo, ya que en el caso que haya más de uno, se producirá una lectura errada. Existen unas que pueden
determinar la velocidad de varios vehículos a la vez, pero son demasiado costosas. Además, el sistema no
está exento de interferencias causadas por factores no controlables.
2
El uso de visión artificial en sistemas de monitoreo de velocidad ofrece mayores ventajas frente a otras
tecnologías. Mediante visión artificial es posible extraer varias variables de manera simultánea (en caso de
ser necesario) a más de un objetivo en tiempo real, permitiendo transmitir la información de manera
remota para su posterior análisis [5]. Además, es posible elegir la escena a procesar, abarcando un amplio
rango que permite una mejor obtención de variables, sin necesidad de realizar modificaciones físicas
considerables.
El implementar un sistema de visión artificial reduce el porcentaje de errores en la toma de las variables y
se aumenta de manera considerable la eficiencia, siendo este un sistema automático y de procesamiento de
información en tiempo real. Su instalación no supone un alto costo y la invasión a la vía es mínima.
En Estados Unidos y muchos países europeos existen cámara conocidas como cámaras de refuerzo,
cámaras de luz roja, cámaras de velocidad o de seguridad vial, las cuales son instaladas al lado o sobre las
vías o en vehículos policiales con el fin de detectar infracciones a las normas de tránsito, incluyendo
exceso de velocidad, vehículos pasándose en rojo y el uso no autorizado de carriles especiales, así como
para recoger información sobre el tráfico en zonas de congestión [4].
Actualmente, en Bogotá, con el sistema integrado de transporte, se ha comenzado a implementar este
sistema de vigilancia de transito usando cámaras. Para la detección electrónica se cuenta con cámaras que
tienen dispositivos de reconocimiento de caracteres, cámaras tipo domo de vigilancia, comparenderas
electrónicas y cámaras especializadas.
Utilizando la técnica de emparejamiento de imágenes de acumulación, la cual consiste en acumular
secciones de cada cuadro del video en una matriz, puede estimarse la velocidad de un vehículo calculando
la diferencia del vehículo en el eje temporal de las dos imágenes resultantes. De esta manera, se pretende
diseñar un algoritmo capaz de estimar de la velocidad una vía, con la finalidad de proponer un sistema
basado en visión artificial capaz de obtener información sobre la dicha variable de tránsito, con la cual
será posible en un futuro el determinar acciones que puedan despejar vías en congestión, re direccionando
el tráfico y controlando los tiempos en los semáforos, así como el de detectar infracciones de tránsito
(caso especial, aplicando el algoritmo a un vehículo en particular) con el fin de mejorar la seguridad en las
vías.
3
2. DESCRIPCIÓN
2.1. OBJETIVOS.
2.1.1. Objetivo General.
Diseñar un algoritmo de estimación de la velocidad media en una vía vehicular, usando emparejamiento
entre imágenes de acumulación espacio-temporal.
2.1.2. Objetivos Específicos.
Revisar y evaluar las técnicas estándar de emparejamiento de imágenes en estéreo, aplicadas a pares de
imágenes de acumulación espacio-temporal.
Diseñar el algoritmo de estimación de velocidad media vehicular, basado en emparejamiento de imágenes
espacio-temporales.
Capturar videos de prueba teniendo en cuenta el protocolo de toma de muestras establecido en el grupo de
investigación SIRP.
2.2. DESCRIPCIÓN GENERAL.
El trabajo de investigación se ha dividido en 5 partes fundamentales: captura del material a procesar,
revisión de técnicas de emparejamiento, desarrollo de pruebas, diseño del algoritmo y resultados
obtenidos.
La captura del material consiste simplemente en la toma de videos del escenario en cuestión. Se pretende
capturar algunos videos utilizando una cámara estándar sobre vías de la ciudad de Bogotá. La idea es
tomar videos sobre vías en distintos puntos de la ciudad y a diferentes horas, con el fin de obtener una
amplia gama de selección a la hora de realizar las pruebas pertinentes. La captura del video deberá hacerse
durante el día.
Luego de capturar videos, y junto con los que se encuentran disponibles en la base de datos del grupo de
investigación SIRP, se procederá a la revisión de técnicas de emparejamiento estándar con el fin de
registrar resultados para su posterior comparación, análisis e implementación parcial para el algoritmo
final. Para tal fin, así como para la siguiente etapa, se utilizaran bibliotecas de software, las cuales
consisten en un conjunto de funciones orientadas hacia un tema específico. El desarrollo del proyecto en
su totalidad se hará utilizando el software matemático MATLAB.
Después de la revisión de estas técnicas, se procederá entonces al desarrollo del algoritmo orientado a la
solución del problema planteado: estimar la velocidad media en una vía utilizando emparejamiento de
imágenes. Con los resultados obtenidos de la revisión, se pretende diseñar un algoritmo utilizando como
4
referencia las técnicas revisadas y en caso dado, modificar o extrapolar los conceptos para la solución del
escenario planteado.
Una vez diseñado el algoritmo, se procederá a la realización de pruebas utilizando el material capturado.
Las pruebas deberán hacerse con diferentes videos, de características diferentes, con el fin de probar el
algoritmo en distintos escenarios. Se registraran los resultados obtenidos a modo de conclusión del
trabajo, indicándose cuales fueron los aciertos y cuales los errores encontrados, así como posibles
soluciones y modificaciones que mejorarían el desempeño del algoritmo.
2.3. MATERIAL USADO EN EL DESARROLLO DEL PROYECTO.
A lo largo del documento se menciona cuatro tipos de recursos utilizados para el diseño del algoritmo
propuesto para la estimación de la velocidad media. Estos recursos están conformados por imágenes y
videos que fueron usados para la realización de las diferentes etapas del proyecto.
En primer lugar se cuenta con unas imágenes sintéticas generadas para la etapa de pre diseño de los
algoritmos basados en las técnicas de estéreo que serán revisadas. Estas imágenes son una representación
básica de lo que serían las imágenes de acumulación sobre las vías, cuya finalidad es la de simular el
material real con el que se trabajará.
El segundo tipo de material utilizado son imágenes de acumulación espacio-temporal extraídas de videos
sobre vías de tránsito de la base de datos del grupo de investigación SIRP: Estas imágenes de diseño son
utilizadas para analizar y comprobar la eficiencia de los algoritmos diseñados para el cálculo de la
disparidad entre el par de imágenes. La eficiencia hace referencia al porcentaje de acierto que presenta
cada una de las técnicas al calcular la disparidad en relación con la disparidad hallada manualmente. Esta
etapa permitió concebir una idea general sobre el funcionamiento de los algoritmos.
Los videos de diseño son videos tomados sobre vías de la ciudad que fueron usados para seleccionar el
algoritmo y la técnica más apropiada para estimar de la velocidad media. Son videos de la base de datos
del grupo SIRP que permitieron analizar la eficiencia (porcentaje de aciertos) de los algoritmos diseñados
para la estimación de la velocidad en comparación con la velocidad media hallada manualmente. Se
emplearon 3 videos con características diferentes y sobre vías diferentes.
Finalmente están los videos de prueba, los cuales fueron tomados como parte de unos de los objetivos
específicos del proyecto. Estos videos son 10 videos de vías tomados en diferentes puntos de la ciudad y
con diferentes características. Su finalidad es la de evidenciar el funcionamiento y la eficiencia que
presenta el algoritmo propuesto para la estimación de la velocidad media sobre la vía.
5
3. MARCO DE REFERENCIA
3.1. IMÁGENES DE ACUMULACIÓN ESPACIO-TEMPORALES.
Un video puede ser considerado como un volumen, con sus tres respectivas dimensiones. A diferencia de
un volumen físico, cuyas dimensiones son altura, profundidad y largo, un video no es más que un arreglo
de imágenes (cuadros) en secuencia, donde cada una de ellas existe en un tiempo diferente, obteniéndose
así dos dimensiones espaciales y una dimensión temporal. Las dimensiones espaciales son propias a una
imagen, ya que esta tiene una altura y un largo determinado; mientras que la dimensión temporal es
originada al situar secuencialmente una imagen tras otra.
Al rebanar este “paralelepípedo” a través del eje del tiempo, se obtienen dos partes en donde las caras de
cada medio paralelepípedo representan un plano en dos dimensiones. De esta manera es posible reducir la
dimensionalidad de 3 a 2, con el fin de reducir el tiempo y los recursos de procesamiento. En otras
palabras, al aplicar la técnica de acumulación espacio-temporal o “Spatio-temporal Slice” a un video, se
obtiene una imagen en 2 dimensiones (con un largo y un alto), en la que la información temporal está
implícita.
Para construir una imagen de acumulación, basta con analizar una línea sobre cada cuadro de video. El
objetivo es ir almacenando de manera sucesiva los pixeles sobre dicha línea específica (ya sea una fila o
una columna) en cada cuadro, para obtener al final una imagen que ha acumulado la información a través
de todo el video. Así, la primera fila o columna contiene la información del primer cuadro, la segunda, la
del segundo cuadro y así sucesivamente, obteniéndose al final una imagen 2D cuyas dimensiones
dependen del número de cuadro del video y del largo de la línea de acumulación.
Figura 1. Concepto de imagen de acumulación espacio-temporal. Como se observa en la figura, las imágenes son generadas al almacenar y concatenar la información cuadro a cuadro sobre cada una de las líneas
de acumulación. El algoritmo simplemente detecta los pixeles sobre la línea en cada cuadro, y los va acumulando de manera secuencial. Imagen
tomada de [5]
6
Este concepto fue introducido inicialmente por Edward Adelson y James Bergen [7], hacia 1985, y desde
entonces ha sido usado para muchas otras aplicaciones a nivel de procesamiento de imágenes y video. En
el trabajo documentado en [8] fue aplicado para detectar las transiciones entre tomas o “shots” de un
video, ya que permite observar de manera más fácil los cambios abruptos entre una toma y otra; también
se ha propuesto el uso de la acumulación por líneas en conjunto al uso de sensores laser como detectores
de parqueo [9], como una técnica de análisis de movimiento en la escena y de segmentación [10] y de
partición, caracterización, segmentación y representación de la información de un video [11].
En este caso particular, es necesario capturar dos imágenes de acumulación para analizarlas y procesarlas,
para posteriormente hallar la velocidad media en una vía. Para esto, se deben analizar dos líneas ubicadas
de manera perpendicular a la vía; cada una de estas líneas acumulara los pixeles horizontales en cada
cuadro de video. De esta manera se trabajará en todo momento con un par de imágenes de acumulación de
un mismo video para estimar la velocidad de los vehículos.
Este método de imágenes de acumulación espacio-temporal es aplicado en este trabajo de investigación
como continuación de trabajos de investigación previos del grupo SIRP [5] y [6], y como una técnica que
permite disminuir la cantidad de información a ser procesada y por ende, reducir el tiempo de
procesamiento por cuadro y aumentar la eficiencia del algoritmo.
3.2. ESTIMACIÓN DE LAVELOCIDAD MEDIA.
3.2.1. Visión Estéreo.
Antes de entrar en materia sobre como estimar la velocidad de un vehículo utilizando imágenes de
acumulación espacio-temporal, es necesario tratar el problema del cual se encarga la visión estéreo o
estereoscópica y de cómo este es abordado. Esto con el fin de entender de donde salió la idea que se
pretende aplicar para estimar la velocidad, ya que fue inspirada en visión estéreo.
El sistema visual humano, compuesto principalmente por los ojos y el cerebro, tiene la capacidad de
generar imágenes estéreo. Dada la posición de los ojos, las imágenes que se reciben en cada ojo son
prácticamente idénticas, con una diferencia en la posición de los objetos. Estas diferencias relativas en la
posición en cada imagen, tiene una relación directa con la distancia (profundidad) a la que se encuentran
los objetos entre sí, y al observador. El cerebro es capaz de interpretar esa diferencia y reconstruir la
estructura de la escena que ve el observador.
Según los autores en [17], existen tres pasos en el proceso de recuperación de la estructura de una escena.
Estas son, primero, seleccionar un punto característico de un objeto en una de las imágenes (vistas por
cada ojo), segundo, encontrar el mismo punto característico en la otra imagen (correspondencia), y
tercero, medir la diferencia relativa entre la posición de estos dos puntos. Esta última etapa es conocida
como disparidad.
La pregunta que surge de aquí es hasta qué punto las computadoras puede lograr la misma tarea, la de
encontrar la correspondencia entre puntos que son vistos en una imagen, con los mismos puntos vistos en
una segunda imagen, con el objetivo de recrear una escena. Se llama visión estéreo entonces a esta
capacidad de recuperar la estructura tridimensional de una escena a partir de, por lo menos, dos vistas o
imágenes diferentes de la misma.
7
En visión estéreo se busca principalmente construir un mapa de profundidad para reconocer que objetos
están más cerca o lejos entre sí y del observador, para recrear el entorno de la misma manera en que el
cerebro lo hace. En este caso, el arreglo de cámaras estéreo genera dos vistas de un mismo objetivo
(fondo), simulando la función que realizan los ojos; una vista derecha y una vista izquierda.
Figura 2. Imágenes estéreo.
Imágenes capturadas con un arreglo estéreo de cámaras [13].
Hallando la correspondencia entre los objetos, usando ambas imágenes, y conociendo la separación entre
las cámaras del arreglo estéreo, es posible determinar la profundidad de cada uno de los objetos en la
imagen [12]. Entre las aplicaciones que tiene la visión estéreo se encuentran la navegación de robots,
creación de realidad virtual, codificación de imágenes estéreo, seguimiento y vigilancia.
3.2.2. Disparidad.
A pesar de que el cálculo de la correspondencia entre puntos puede llegar a ser costoso a nivel
computacional, es posible reducir los costes conociendo las características del arreglo de cámaras estéreo,
aplicando principios de geometría. Este proceso es conocido como reproyección, y el resultado es un mapa
de profundidad de la escena.
Inicialmente se asumirá que la escena es completamente estática, es decir que los objetos en la imagen no
cambian de posición ni sufren deformaciones, y que se cuenta con un arreglo estéreo perfectamente
alineado, calibrado y sin distorsión; dos cámaras con características similares, cuyos planos de imagen son
coplanares, donde los ejes ópticos paralelos entre sí.
8
Las cámaras cumplen con el modelo pinhole, el cual describe la relación matemática entre las coordenadas
3D de un punto y su respectiva proyección en un plano 2D (Figura 3), donde la apertura de la cámara es
descrita como un punto u orificio, llamado foco, sin el uso de lentes que focalicen la luz [18]. El modelo
se caracteriza por la distancia del plano imagen al foco (distancia focal) y el tamaño del sensor.
Figura 3. Modelo "pinhole".
Figura 4. Proyección 3d sobre un plano 2D.
En la Figura 5, se muestra un arreglo estéreo de dos cámaras. Como se mencionó, los ejes ópticos de las
cámaras son paralelos,
. Las cámaras presentan la misma distancia focal , cuyos centros y
están separados una distancia , llamada línea base; las imágenes formadas e se encuentran el
plano paralelos (coplanares). Se asume que un punto físico en el mundo físico, genera dos proyecciones,
y , en las imágenes e . Gracias al modelo pinhole, el punto de coordenadas tridimensionales
( ) es proyectado en ambos planos 2D, con coordenadas ( ) y ( ) respectivamente.
El plano que contiene a los puntos , y , interseca a las imágenes en dos rectas y . Estas son
dos rectas epipolares entre sí; es decir que un punto , en la recta de la imagen tiene su
correspondiente en algún punto de la recta . Esto reduce la búsqueda del correspondiente de de toda
la imagen a la recta . Aunque esta delimitación reduce el espació de búsqueda (reduciendo costes
computacionales al mismo tiempo), el problema de la correspondencia presenta otras dificultades; es
posible que los puntos sobre una imagen estén ocultos en la otra (oclusión) y que la similitud entre dos
puntos sea confundida con el ruido presente en las imágenes.
9
Figura 5. Configuración estéreo de un arreglo de dos cámaras [14].
Con base a la geometría (Figura 6) del arreglo estéreo y a las restricciones impuestas, es posible llegar a
una expresión para la profundidad de los objetos en la escena.
Figura 6. Arreglo estéreo calibrado.
Conociendo la correspondencia entre puntos, es posible hallar la profundidad con triángulos semejantes [12].
En [12], el autor deduce una expresión que relación la profundidad de los objetos con la disparidad o
diferencia entre las coordenadas horizontales de los puntos y . De esta manera, considerando los
triángulos , y y utilizando semejanza entre triángulos se llega a qué:
( )
⇒
Basados en la expresión anterior es posible recuperar la profundidad de cada píxel en cada una de las
imágenes a partir de la disparidad calculada. Asimismo, se observa que la profundidad es inversamente
10
proporcional a la disparidad. Como consecuencia, la visión estéreo tiene mayor resolución de profundidad
para los objetos que están relativamente más cerca de la cámara, como se observa en la Figura 7.
Figura 7. Relación entre la profundidad y la disparidad [12].
El resultado de análisis previo, son mapas de profundidad de la escena (ver ¡Error! No se encuentra el
origen de la referencia.¡Error! No se encuentra el origen de la referencia.). Para esto existen
numerosos algoritmos y métodos para hallar la disparidad de los objetos, y así construir los mapas. Cabe
resaltar que para una correcta construcción de los mapas, en necesario realizar 3 pasos previos, los cuales
no serán discutidos en el trabajo, puesto que hacen parte del tema de visión estéreo. Estos pasos son:
calibración de las cámaras, rectificación de las imágenes y correspondencia de todos los puntos.
3.2.3. Estimación de la Velocidad.
Del problema abarcado por visión estéreo, de generar mapas de profundidad para recrear escenas, se
deriva el concepto utilizado para el cálculo de la velocidad de los vehículos en una vía. Inicialmente se
cuenta con dos imágenes de acumulación que representarían las dos vistas de un arreglo de cámaras
estéreo. Esta imágenes, a diferencia de las capturaras en el arreglo estéreo, presentan dos rectas epipolares
verticales; es decir que la correspondencia se limita solo al eje vertical. Esto solo sí se supone que los
vehículos mantienen su trayectoria sobre el carril, lo cual genera una primera limitación a suponer para
usar.
La velocidad se define como distancia recorrida sobre tiempo gastado en recorrerla. Al colocar dos líneas
sobre las cuales se acumula la información cuadro a cuadro, la separación entre ellas es conocida, del
mismo modo en que es conocida la distancia entre las dos cámaras en el arreglo estéreo; esta información
viene siendo la distancia recorrida por un vehículo.
Para calcular el tiempo que invirtió recorriendo dicha distancia es necesario hallar la disparidad o
diferencia entre las coordenadas verticales (correspondencia), ya que como fue mencionado anteriormente,
la información temporal está implícita en las imágenes de acumulación; este número de pixeles de
diferencia indica cuanto demoro un vehículo en recorrer la distancia entre las líneas de acumulación, ya
que cada fila de la imagen representa un cuadro del video. Así, al multiplicar la disparidad por el tiempo
de muestreo de la cámara es posible obtener el tiempo invertido en recorrer esta distancia.
De esta manera, la velocidad queda definida como
11
donde V es la velocidad en pixeles por segundo, d la diferencia en pixeles o disparidad entre los dos
puntos superiores del mismo vehículo en ambas imágenes , L la distancia de separación entre las líneas de
acumulación, y Ts el periodo de muestreo de la cámara. Para encontrar un equivalente en metros por
segundo basta usar los parámetros intrínsecos de la cámara calibrada y convertir esta medida en metros
por segundo o kilómetros por hora.
Se observa que la velocidad es inversamente proporcional a la disparidad, como sucede con la
profundidad en el arreglo estéreo; si la disparidad es mínima, es indicio que el vehículo cruzo por ambas
líneas casi al mismo tiempo, reduciendo la diferencia entre las coordenadas vertical en ambas imágenes.
Para que haya cruzado las líneas casi al mismo tiempo, la velocidad del vehículo debe de ser alta (Figura
45, Figura 46 y Figura 47).
3.3. TÉCNICAS DE EMPAREJAMIENTO.
Para estimar la velocidad utilizando imágenes de acumulación espacio-temporales es necesario calcular la
correspondencia entre las imágenes. Para esto, existen numerosas técnicas y algoritmos computacionales
que pueden ser aplicados para la obtención de la disparidad. El problema de hallar la correspondencia
consiste en encontrar que punto de la imagen izquierda corresponde con qué punto de la imagen derecha,
es decir, encontrar los puntos en cada imagen que son proyección del mismo punto del espacio.
3.3.1. Restricciones.
Existen hipótesis que se aplican a los algoritmos para el cálculo de la disparidad. Estas hipótesis o
restricciones están basadas en propiedades físicas y geométricas de los objetos en la escena, mas adelante
se explicarán las equivalencias de estas restricciones aplicadas al problema de estimación de la velocidad.
Las restricciones comúnmente nombradas en la literatura [27] [33] son:
Restricción epipolar. Está dada por la geometría epipolar del par estéreo, e implica que el
correspondiente de un punto en una imagen debe estar en la recta epipolar del punto en la otra
imagen. Gracias a esta restricción, la búsqueda de la correspondencia se reduce a una recta.
Restricción de orden. Implica que si la proyección del objeto Q está a la izquierda de la
proyección del objeto P en la imagen izquierda, entonces la proyección de Q estará también a la
izquierda de la proyección de P en la imagen derecha.
Restricción de unicidad. Implica que cada punto de una imagen puede tener no más de un
correspondiente en la otra imagen. Esta restricción contempla que pueda no existir ningún
correspondiente, como puede ser en el caso que este oculto en la otra imagen (oclusión).
Restricción de semejanza o compatibilidad. Implica que las características de los puntos en una
imagen (intensidad, color, etc.) no deben cambiar mucho entre ambas imágenes.
12
3.3.2. Clasificación de las técnicas de emparejamiento.
Los algoritmos para calcular la disparidad puede ser clasificados en dos, según autores como Brown [36],
de acuerdo a como utilizan la información de la imágenes para encontrar la correspondencia entre puntos.
De acuerdo a esto, se dividen en los que utilizan restricciones locales en una ventana alrededor del punto
en cuestión y aquellos que imponen restricciones globales en la imagen. Los métodos locales son bastante
eficientes a nivel computacional pero son muy sensibles a regiones locales ambiguas, como oclusiones o
regiones con texturas uniformes; los métodos globales reducen esta sensibilidad al contar con más
información que permiten solucionar estas ambigüedades, pero gracias a que toman la imagen como un
todo, son mucho más costosos a nivel computacional.
A su vez, los algoritmos locales son subclasificados según el método que usan para hallar la
correspondencia, en:
Emparejamiento por bloques (Block Matching). Se basa en encontrar el punto correspondiente
comparando una región (plantilla) alrededor del punto con un conjunto de regiones iguales en la
otra imagen. La región que presenta mayor semejanza es la elegida y se selecciona el punto
correspondiente. Como se mencionó anteriormente, la restricción epipolar reduce la búsqueda a
una sola dimensión. Las medidas usadas para la semejanza son: la correlación normalizada
(NCC), suma de diferencias absolutas (SSA), suma de diferencias al cuadrado (SSD) y un conteo
de los intensidades de gris mayores que la intensidad de gris del centro de la región (rank
transformation, census transformation).
Basados en el gradiente o flujo óptico (Optical Flow). Buscan determinar disparidades pequeñas
entre dos imágenes planteando una ecuación diferencial relacionando el desplazamiento y el brillo
de la imagen. Para realizar esto, se asume que el brillo de un punto en la escena es constante entre
ambas vistas,
Emparejamiento de características (Feature Matching). Se basa en buscar los puntos
correspondientes en regiones de la imagen donde existen características relevantes, como vértices
y bordes. Estos puntos no son muchos, y los mapas de disparidad que se pueden calcular no son
densos; se obtienen puntos ubicados en el espacio pero no un mapa de disparidad con la
profundidad estimada para cada punto de la imagen.
La correspondencia global, como fue mencionado, se basa en restricciones no-locales para reducir la
sensibilidad a regiones locales de la imagen, debido a oclusiones, texturas uniformes, etc. El uso de estas
restricciones globales aumenta la complejidad computacional significativamente. Existen comúnmente
tres tipos de búsqueda:
Programación dinámica (Dynamic Programming). Reduce la complejidad de cálculo en problemas
de optimización descomponiendo el problema en subproblemas menores. Las restricciones
globales que se imponen con este método son, generalmente, la restricción epipolar y la
restricción de orden. Para esto se construye una representación de las posibles correspondencias
para cada punto construyendo una imagen que se denomina imagen del espacio de disparidad
(DSI) donde se busca un camino que recorra este espacio y minimice un cierto costo.
Curvas intrínsecas (Intrinsic Curves). Este método se basa en la búsqueda de correspondencias
globales utilizando una representación alternativa de las imágenes, las curvas intrínsecas. Estas
13
curvas son la representación vectorial de los descriptores de las imágenes, obtenidos al aplicar
operadores a los píxeles, como operadores de bordes o esquinas.
Cortes de grafos (Graph Cuts). Se basa en armar un grafo a partir de los datos de las imágenes y
buscar un corte mínimo. Dependiendo como se arma el grafo, el resultado obtenido es la
minimización de una cierta expresión de energía. Este procedimiento se puede considerar análogo
al de hallar el mejor camino en una imagen bidimensional, con Programación Dinámica, pero
extendido a tres dimensiones, con coherencias en las dos dimensiones.
Debido a la alta complejidad y al alto coste computacional del cálculo de la correspondencia con
restricciones globales, estos algoritmos no serán aplicados ni estudiados; la idea principal del trabajo es
hallar un algoritmo simple, eficiente y de bajo coste computacional que resuelva el problema, por lo que
estas tres aproximaciones serán descartadas. De la misma manera, solo serán abordados los algoritmos con
restricciones locales que calculan el emparejamiento por bloques, ya que son los de menor coste y de fácil
implementación.
A continuación se estudiarán las técnicas con las cuales se trabajará a lo largo del proyecto de
investigación. Se explicaran detalladamente, teniendo en cuenta ya las modificaciones o limitaciones
necesarias para acondicionarlas a la solución del problema. Como se ha menciona, son técnicas usadas
para el mapeo de densidades en arreglos estéreo, por lo que es necesario realizar ciertas consideraciones
con el fin de aplicarlas a la problema de estimar la velocidad media de los vehículos en una vía.
3.4. CORRELACIÓN CRUZADA 2D (CC).
La correlación cruzada es una medida que da información sobre la similitud entre dos señales diferentes;
generalmente es usada para caracterizar señales desconocidas a partir de la comparación con señales
conocidas. Matemáticamente consiste en desplazar una señal sobre otra, realizando una sumatoria entre
cada punto sobrepuesto entre las dos señales. Difiere de la convolución clásica en que no existe inversión
de una de las señales.
La correlación cruzada entre dos imágenes consiste en la suma del producto de los pixeles al desplazar una
imagen sobre otra. Inicialmente una imagen esta “estática”, mientras la otra imagen está siendo desplazada
de derecha a izquierda (filas) y de arriba hacia abajo (columnas), para posteriormente realizar el producto
entre los pixeles que se sobreponen y finalmente sumar todos los productos obtenidos. Las dimensiones
del resultado serán iguales a la suma de las dimensiones correspondientes a cada imagen menos un pixel.
( )
Los resultados que realmente son significativos y de interés son los contenidos en la columna de la mitad
de la matriz resultante. Esto se debe a que esta columna coincide con los resultados obtenidos al desplazar
la imagen A sobre la imagen B en sentido vertical (de arriba hacia abajo), caso particular que es de
completo interés para el desarrollo de este proyecto, asumiendo una restricción epipolar vertical.
14
Asimismo, el valor de la mitad de la columna de “interés” es el resultado obtenido al sumar los productos
de los pixeles de las imágenes cuando la imagen A esta completamente sobre la imagen B.
∑[ ( )] [ ( )]
Los valores de la columna interés brindan información necesaria para obtener el número de filas que debe
desplazarse (verticalmente) una imagen respecto a la otra para obtener el mejor emparejamiento posible.
De esta manera es posible hallar la disparidad de las imágenes, o el número de “pixeles” que debe
desplazarse una imagen respecto a la otra para que sean prácticamente iguales.
Si estos valores son representados gráficamente, el resultado obtenido será una gráfica en forma de
triángulo. El pico de la gráfica representa el punto donde las dos imágenes coinciden de la mejor manera
posible. El eje Y da información sobre que tanto se parece una imagen a otra, mientras que el eje X indica
cuanto fue necesario desplazar la imagen para que obtener este valor. Es así como al realizar la correlación
ente una misma imagen de MxN dimensiones, se espera que el pico de la gráfica indicará que fue
necesario moverla M pixeles para lograr el máximo emparejamiento; moverse M pixeles, para este caso,
significa que una imagen está completamente sobre la otra.
Lo anterior se debe a que inicialmente se cuenta con que la imagen B esta quieta, mientras la imagen A se
va desplazando verticalmente (fila por fila) sobre la imagen A, inicialmente sin “contacto” alguno. Así es
como el primer valor se interpreta como que la imagen A ha sido desplazada una fila sobre la imagen B; el
segundo, que ha sido desplazada dos filas; y el m-ésimo valor es cuando la imagen A ha sido desplazada
M filas sobre la imagen B, que coincide con que están una está completamente sobre la otra. Es decir que
la primera mitad de los valores son obtenidos cuando la imagen A esta “entrando” sobre la imagen B hasta
que queden una totalmente sobre la otra (m pixeles), mientras que la segunda mitad (m + 1 pixeles) de los
valores, hacen referencia a cuando la imagen A esta “saliendo” sobre la imagen B.
Figura 8. Representación grafica de la correlación cruzada.
La imagen A (roja) y la imagen B (azul) son de dimensiones . (a) Inicialmente la imagen A no está sobre la imagen B; (b) la imagen A
desplazada una fila sobre la imagen B; (c) desplazada filas (x ); (d) desplazada m filas (una totalmente sobre la otra); (e) desplazada
filas ( ); (f) desplazada filas; (g) desplazada filas (la imagen A ya ha pasado del todo sobre la imagen B).
A partir de este punto de referencia, es necesario calcular el número de pixeles neto que fue desplazada la
imagen. Si la imagen estaba “entrando” cuando se encontró el mejor emparejamiento, la coordenada en X
será menor que el punto de referencia (a la izquierda); si por otro lado, la imagen estaba “saliendo”, la
coordenada será mayor al punto de referencia (a la derecha). El resultado se obtiene restando el punto de
referencia con la coordenada en donde se encuentra el mayor pico, y tomando solo su magnitud (valor
15
absoluto). De esta manera es posible obtener el número de pixeles relativos que fue desplazada una
imagen respecto a la otra. El signo del resultado no es importante ya que no brinda información
significativa para el proyecto.
3.5. CORRELACIÓN CRUZADA NORMALIZADA (NCC).
La correlación cruzada normalizada es, al igual que la correlación cruzada normal, la sumatoria del
producto de los pixeles sobrepuestos de una imagen al ser desplazada sobre la otra, donde la intensidad de
cada pixel ha sido normalizada. Esto se logra al restar de cada pixel el valor medio o promedio de
intensidad de la imagen correspondiente al pixel, y dividiendo por la raíz cuadrada del producto de cada
una de estas restas al cuadrado. Es decir que
∑[( ( )) ] [( ( ) )]
√[( ( )) ] [( ( ) )]
Gracias a esto, el resultado es independiente de los cambios de brillo o contraste de la imagen, los cuales
están relacionados con el valor medio y la desviación estándar [34]. Esto reduce los errores obtenidos a
causa de características propias del video (iluminación, nitidez, etc.), lográndose así un resultado que se
aproxima más a lo esperado.
Las dimensiones del resultado no varían a las dimensiones obtenidas al usar la correlación cruzada 2D no
normalizada. Del mismo modo, aquí el punto de interés es el pico más alto obtenido al graficar los valores
obtenidos, ya que se espera un máximo, indicando que allí se obtuvo la correspondencia más aproximada.
Solo basta con hallar este máximo, y sustraerlo al número de filas de la imagen, obteniéndose como
resultado la disparidad.
3.6. SUMAS DE DIFERENCIAS ABSOLUTAS (SAD).
El algoritmo de suma de diferencias absolutas es una técnica usualmente usada para medir la similitud
entre dos imágenes. Este algoritmo consiste en sumar la diferencia absoluta entres cada pixel de una
imagen o ventana “original” y el correspondiente pixel en una imagen o ventana usada “plantilla”. Este
método es útil para encontrar un bloque de una imagen en otra, para reconocer alguna parte específica de
la imagen o, como es el caso, determinar qué tan similar es una imagen a otra.
∑ ( ) ( )
Este algoritmo fue implementado en el proyecto como otra manera de calcular la disparidad entre dos
imágenes de acumulación y, de esta manera, obtener una medida de la velocidad promedio de los
vehículos en la imagen. Para esto, se procedió de manera similar al algoritmo de correlación cruzada en
2D; se deja una imagen estática, mientras la otra es desplazada sobre la primera, calculando cada vez la
sumatoria de las diferencias absolutas de cada fila. Una vez más se mantiene la hipótesis de que el
16
desplazamiento relativo al eje horizontal no es significativo, por lo que solo es necesario desplazar la
imagen verticalmente.
De esta manera es posible determinar el número de pixeles que es necesario mover una imagen respecto a
la otra para maximizar la similitud entre las dos imágenes de acumulación. Cabe aclarar nuevamente, que
se habla de número de pixeles que hay que mover la imagen, pero en realidad esto puede verse como el
número de filas que debe desplazarse la imagen.
Al graficar los resultados de las sumas parciales de las diferencias absolutas obtenidas a partir del
desplazamiento de una imagen sobre la otra, el resultado obtenido es una curva con un punto de inflexión
notable, el cual indica el lugar donde se minimizo la diferencia entras imágenes. Al igual que con la
correlación cruzada, el resultado está conformado por ( ) valores, donde son el numero
de filas de las imágenes de acumulación.
( )
( )
Es así como al aplicar el algoritmo SAD entre la misma imagen, se esperaría que el punto de inflexión
notable cayera en el valor de la mitad, significando esto que no es necesario desplazar la imagen para
minimizar el error (ya que es idéntica). En este caso, ese valor de la mitad será igual a cero, ya que al
sumar la diferencia entre una imagen consigo misma, el resultado es cero. A continuación se ilustra de
manera más clara el proceso descrito:
Figura 9. Matrices ejemplo para el algoritmo SAD.
A la izquierda, la imagen ; a la derecha, la imagen
∑ ∑ ( ) ( )
|( )| |( )| |( )| ( ) ( ) ( )
∑( ) ∑ ( ) ( ) ∑ ( ) ( )
17
∑( ) ∑ ( ) ( ) ∑ ( ) ( ) ∑ ( ) ( )
∑( ) ∑ ( ) ( ) ∑ ( ) ( )
∑ ∑ ( ) ( )
[ ]
Como puede observarse, las dos imágenes del ejemplo anterior tenían dimensiones , por lo que se
espera que el resultado del algoritmo SAD, tenga valores. Se observa también
que, como se había mencionado, el punto de inflexión ocurre en el tercer valor, indicando que es necesario
mover 3 filas la imagen I sobre la imagen J para que sean iguales; en otras palabras, la disparidad entre las
imágenes es de
3.7. SUMA DE DIFERENCIAS AL CUADRADO (SSD).
Este algoritmo es básicamente igual al de algoritmos de sumas de diferencias absolutas (SAD), solo que
éste en vez de acumular las sumas de las diferencias absolutas, se acumulan las diferencias de los pixeles
al cuadrado.
∑[ ( ) ( )]
Esto permite simplemente obtener valores espacialmente más distantes entre sí; si se grafican dichos
valores, puede observarse que los puntos de inflexión son más prominentes, lo que puede llevar a una
manera más fácil y rápida de reconocer dichos puntos de interés para el cálculo de la disparidad. Una vez
más, el punto importante en la gráfica, el cual brinda información sobre la disparidad, es la inflexión
abrupta que aparece hacia el medio del eje x.
Cabe aclarar que son las restas entre cada par de pixeles la que son elevadas al cuadrado, y no la suma de
las restas de toda la fila; el segundo caso sería simplemente tomar el resultado aplicando SAD y elevar
dicho resultado al cuadrado. Para entender mejor, considérese el mismo ejemplo de la Figura 9, el
resultado al aplicar el algoritmo de suma de diferencias al cuadro es el siguiente:
∑( ) ∑[( ) ( )]
( )
( ) ( )
( )
( ) ( ) ( )
18
∑[( ) ( ) ] ∑[( ) ( )] ∑[( ) ( )]
∑( ) ( ) ( ) ∑[( ) ( )] ∑[( ) ( )] ∑[( ) ( )]
∑( ) ( ) ∑[( ) ( )] ∑[( ) ( )]
∑( ) ∑[( ) ( )]
[ ]
El resultado obtenido es igual al resultado obtenido mediante SAD; esto simplemente fue una
coincidencia y es causa de que el resultado de las restas sea 1, por lo que al elevarlos al cuadrado no
denotan diferencia alguna.
Figura 10. Curvas características de las técnicas SAD y SSD.
0 200 400 600 800 1000 12000
0.5
1
1.5
2
2.5
3
3.5
4
4.5x 10
4 SAD
0 200 400 600 800 1000 12000
2000
4000
6000
8000
10000
12000SSD
19
4. DESARROLLOS.
Una vez expuestos los diferentes algoritmos utilizados para el cálculo de la disparidad para la generación
de mapas de profundidad en problemas de visión estéreo, es necesario aplicar dichas técnicas,
acondicionándolas a la solución del problema de la estimación de la velocidad media, con el fin de
analizar cuál es el algoritmo que presenta mayor eficiencia a nivel de recursos usados y complejidad.
A continuación se presentan los cuatro algoritmos utilizados para tal fin, basados en las técnicas expuestas
anteriormente. Se pretende recopilar el desarrollo del proceso llevado a cabo para la solución del problema
planteado en el proyecto de investigación, así como de las pruebas y consideración que se fueron haciendo
a través del mismo. El desarrollo se llevó a cabo utilizando el software matemático MATLAB, el cual se
basa en operaciones y la manipulación de matrices para la solución de problemas numéricos.
4.1. DISEÑO PRELIMINAR.
4.1.2. Algoritmos preliminares basados en las técnicas de emparejamiento estéreo.
Como se mencionó anteriormente, las 4 técnicas básicas que se utilizaran para solucionar el problema son
la correlación cruzada en 2D no normalizada (CC) y normalizada (NCC), y la suma de diferencias
absolutas (SAD) y al cuadrado (SSD). Las dos primeras técnicas se basan principalmente en sumas de
productos, mientras que las dos últimas en sumas de diferencias.
(1A) (1B)
(1C) (1D)
Figura 11. Imágenes sintéticas para el diseño preliminar de los algoritmos.
X: 70 Y: 90
RGB: 0, 0, 0
X: 190 Y: 110
RGB: 0, 0, 0
X: 70 Y: 100
RGB: 0, 0, 0
X: 190 Y: 120
RGB: 1, 1, 1
X: 70 Y: 122
RGB: 0, 0, 0
X: 190 Y: 142
RGB: 0, 0, 0
X: 92 Y: 122
RGB: 0, 0, 0
X: 210 Y: 142
RGB: 0, 0, 0
20
Inicialmente se contó con imágenes generadas con el fin de comprobar la correcta implementación de los
algoritmos. Estas imágenes fueron generadas sintéticamente. Se crearon 4 imágenes compuestas de un
fondo negro con un bloque blanco, el cual simulaba un automóvil. La imagen A fue considerada la
original, mientras que las tres imágenes restantes B,C y D, presentaban corrimientos en el eje vertical y/o
horizontal con el fin de generar tres casos diferentes a los cuales se les iba a encontrar la correspondencia,
corroborando la correcta implementaciones de las 4 técnicas.
Las 4 imágenes son de dimesiones 300x300 pixeles. El bloque blanco, de 120x20 píxeles, era el mismo en
todas las imágenes. Tomando como referencia el vertice superior izquierdo del bloque de la imagen 1A, se
desplazaron los 3 restantes bloques un número definido de pixeles a largo del eje vertical (1B y 1C), y del
eje vertical y horizontal (1D). De esta manera, las disparidad gerenadas fueron:
IMAGEN VERTICE SUPERIOR
IZQUIERDO DESPL.
VERTICAL
DESPL.
HORIZONTAL
DISPARIDAD
RESPECTO A 1A
1A (70,90) - - 0
1B (70,100) 10 0 10
1C (70,122) 32 0 32
1D (90,122) 32 20 32
Tabla 1. Disparidades de las 4 imágenes sintéticas.
La idea básicamente era la de aplicar los 4 algoritmos en base a las técnicas expuestas, y corrobar, usando
la Tabla 1, su correcta implementación. Los casos usados para el diseño previo son: disparidad entre 1A-
1A, 1A-1B, 1A-1C y 1A-1D. El bloque de la imagen 1D fue desplazada a lo largo de ambos ejes con el fin
de observar el comportamiento de los algoritmos ante pequeños desplazamiento horizontales. Como se
presume que no existe variación entre las dos imágenes de acumulación a lo largo del eje horizontal,
suponiendo esto que los automóviles mantienen una trayectoria recta sobre el mismo carril al cruzar por
las “líneas de acumulación” en el video, el problema se reduce a encontrar la correspondencia en una sola
dimensión; esta hipótesis es equivalente a la conocida en el problema de estéreo como restricción epipolar
[26]. Lo que se pretende con este desplazamiento horizontal es observar que implicaciones trae consigo
diferencias en este eje, ya que en imágenes de acumulación de las vías los vehículos pueden llegar a
presentar movimiento horizonta.
Inicialmente se utilizó la función que trae por defecto MATLAB para realizar la correlación cruzada 2D,
llamada xcorr2(A,B), la cual computa la correlación cruzada entre las matrices A y B. El problema que
trae consigo esta función es el gasto computacional debido a información que no es necesaria. Esto sucede
debido a que la función comienza a desplazar la matriz A sobre la matriz B, de derecha a izquierda y de
arriba hacia abajo; como se ha mencionado, la restricción epipolar limita la correspondencia a un solo
ejes, en este caso el vertical, por lo que no es necesario desplazar la matriz A sobre la matriz B de derecha
a izquierda (sentido horizontal). Esto conlleva a realizar operaciones que no aportan información
relevante, invirtiéndose mayor cantidad de recursos computacionales en el cálculo de dichas operaciones.
Se decidió implementar una función más sencilla que solamente computara el desplazamiento vertical de
una matriz sobre la otra. Se planteó un algoritmo en base a iteraciones, el cual simplemente acumula la
operación ente los pixeles en un vector del largo adecuado (2M-1, según el número de filas de las
matrices), el cual desplaza cada fila de la matriz a lo largo de la otra.
Supóngase que se tienen dos matrices de 3x2, la matriz A y B. A continuación se explicará el algoritmo
paso a paso, utilizando estas matrices de menor tamaño.
21
[
] [
]
Como es de esperarse, el resultado de desplazar una matriz de 3x2 sobre otra matriz de 3x2 tendrá
dimensiones
( ) ( ) ( )
[ ]
El algoritmo entonces comienza por desplazar fila por fila sobre la otra matriz, realizando la operación
indicada y guardando ese resultado en un vector. Esto puede verse como que se generan M vectores
resultado (dx), uno por cada fila de la matriz A que es desplazada sobre la matriz B, los cuales al final se
sumaran punto a punto para obtener el resultado total. Se inicia con la última fila de la matriz A y la
primera de la matriz B.
[
]
[
]
[
]
( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
[ ( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )]
[ ( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )]
[ ]
Una vez desplazada la última fila de la matriz A sobre la matriz B, se procede a desplazar la fila
inmediatamente anterior a la última fila de A. Otra vez es generado un vector resultado, con la diferencia
que los resultados comienzan a almacenarse un valor después.
( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
22
[ ( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )]
[ ( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )]
[ ]
Finalmente, se realiza el mismo procedimiento con la fila inmediatamente anterior a la última fila
desplazada, así:
( )
( )
( ) ( )
( ) ( )
( ) ( )
[ ( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )]
[ ( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )]
[ ]
Ya con los vectores resultado obtenidos, solo basta con sumarlos para obtener el resultado total.
[ ]
[
]
[ ]
[ ]
[ ]
[ ]
De esta manera se ha representado el proceso de desplazar una matriz sobre otra, sumando el producto
entre los pixeles que se sobrelapan. Con este algoritmo fueron generados los otros, ya que básicamente la
idea es la misma: desplazar una imagen sobre otra y acumular una operación entre sus pixeles.
4.1.2. Aplicación de los algoritmos preliminares para el cálculo de la disparidad.
Como se ha mencionado, lo que se busca al aplicar los algoritmos basados en las técnicas estéreo entre dos
imágenes es la de encontrar el número de pixeles que la primera imagen esta “desfasada” respecto a la
segunda. Para obtener el número de pixeles, es necesario analizar los resultados obtenidos mediante su
23
grafica. Debe ubicarse el punto más alto de la gráfica (para CC y NCC) o el punto de inflexión (SAD y
SDD) según el caso, cuya coordenada X indicará de manera indirecta cuantos pixeles fue necesario
desplazara la imagen.
Para la correcta interpretación de la coordenada, debe tenerse en cuenta que el punto medio de la gráfica
es el punto de referencia, ya que es allí donde una imagen está totalmente sobre la otra; en otras palabras,
es en ese punto donde se encontraría el pico más alto al realizar la correlación cruzada entre la misma
imagen, ya que como es de esperarse, la mayor coincidencia de pixeles se da cuando la imagen esta sobre
si misma (no es necesario desplazamiento alguno, ya que son la misma imagen). Asimismo, será en ese
punto de la mitad donde se encontraría la inflexión más prominente al realizar las sumas de diferencias, ya
que se espera que el resultado sea 0.
A continuación se muestran las disparidades halladas al aplicar los 4 algoritmos sobre las imágenes
sintéticas creadas para el diseño previo. En la Tabla 2 se comparan estos resultados obtenidos.
Correlación Cruzada 2D
Caso Máx. Pico (en ‘x’) Disparidad
1A – 1A 300 0
1A – 1B 310 10
1A – 1C 332 32
1A – 1D 332 32
Suma de Diferencias Absolutas
Caso Inflexión (en ‘x’) Disparidad
1A – 1A 300 0
1A – 1B 310 10
1A – 1C 332 32
1A – 1D 332 32
Tabla 2. Aplicación de los algoritmos sobre las imágenes sintéticas.
Como se observa en la Tabla 2, los algoritmos funcionan correctamente con las imágenes generadas
sintéticamente. Cabe resaltar que las imágenes son muy básicas al estar compuestas de una sola figura y
estar en blanco y negro; gracias a la presencia de solo dos colores (binaria, solo unos «blanco» y ceros
«negro») las operaciones realizadas no implican un coste alto al tratarse de aritmética entre 1 y 0.
Si se observa (Figura 13), la correlación cruzada normalizada presenta un error al calcular la disparidad
del cuarto caso; esto es posiblemente causado por la cantidad de fondo vs bloque que hay presente en la
imagen, y que el fondo es negro.
Más adelante se mostrará el desempeño del algoritmo de manera real, utilizando imágenes más acordes a
la realidad (ya que es obvio que nunca se obtendrán imágenes binarias en las imágenes acumuladas sobre
la vía). Hay que recordar que la idea de normalizar cada pixel es la de reducir la influencia que tiene el
brillo, ocasionado por la iluminación en el video; una imagen binaria no presenta problemas de intensidad,
ya que o es negro o es blanco.
Correlación Cruzada Normalizada
Caso Máx. Pico (en ‘x’) Disparidad
1A – 1A 300 0
1A – 1B 310 10
1A – 1C 332 32
1A – 1D 300 0
Suma de Diferencias al Cuadrado
Caso Inflexión (en ‘x’) Disparidad
1A – 1A 300 0
1A – 1B 310 10
1A – 1C 332 32
1A – 1D 332 32
24
Figura 12. Resultados de la Correlación Cruzada sobre la imágenes sintéticas.
Figura 13. Resultados de la Correlación Cruzada Normalizada sobre las imágenes sintéticas.
En la Figura 12, Figura 13 y Figura 14 se pueden ver gráficamente los resultados de aplicar los cuatro
algoritmos a los diferentes casos generados sintéticamente para el diseño previo. Como se explicó
anteriormente, en las gráficas de los algoritmos de correlación cruzada (CC y NCC), el punto que interesa
extraer, y el que contiene implícitamente la información sobre la disparidad, es el punto máximo de la
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
6000
70001A - 1A
X: 300
Y: 6756
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
6000
70001A - 1B
X: 310
Y: 6756
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
6000
7000
X: 332
Y: 6756
1A - 1C
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
60001A - 1D
X: 332
Y: 5622
0 100 200 300 400 500 6000
2
4
6
8
10x 10
4 1A - 1A
X: 300
Y: 9e+004
0 100 200 300 400 500 6000
2
4
6
8
10x 10
4 1A - 1B
X: 310
Y: 8.69e+004
0 100 200 300 400 500 6000
2
4
6
8
10x 10
4 1A - 1C
X: 332
Y: 8.04e+004
0 100 200 300 400 500 6000
2
4
6
8
10x 10
4 1A - 1D
X: 300
Y: 8.081e+004
25
gráfica (Figura 12 y Figura 13) donde ocurre la máxima correspondencia entre ambas imágenes (debido a
que es una suma de productos).
Por otro lado, en los algoritmos SAD y SSD, la disparidad se obtiene identificando el punto donde ocurre
una inflexión abrupta, hacia la mitad del eje horizontal (Figura 14); esto se debe a que estos dos últimos
algoritmos acumulan restas, por lo que se espera que la máxima correspondencia entre imágenes se da
cuando las restas den como resultado cero (idealmente), indicando que son la misma imagen.
Figura 14. Resultados de la Suma de Diferencias Absolutas sobre las imágenes sintéticas.
Los resultados aplicando SSD Cuadrado no difieren de manera notoria del resultado con SAD; esto se debe a que, como la imagen es binaria, la
resta entre unos y ceros tiene como resultado unos y ceros, y al elevar al cuadrado estas restas, se obtienen los mismo valores.
4.1.3. Espacio de color.
Uno de los principales inconvenientes a la hora de aplicar los algoritmos sobre las imágenes sintéticas a
color (espacio de color RGB), fue que se debían procesar las 3 componentes de la imagen con el fin de
encontrar el resultado correcto para el cálculo de la disparidad. Debido a esto, la cantidad de recursos que
se debían utilizar era el triple, ya que era necesario computar el algoritmo para cada componente de la
imagen, debido a que era imposible detectar cuál de las tres componentes brindaba la información
correcta.
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
X: 300
Y: 0
1A - 1A
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
X: 310
Y: 10.43
1A - 1B
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
X: 332
Y: 0
1A - 1C
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
X: 332
Y: 764.5
1A - 1D
26
Figura 15. Par de imágenes sintéticas a color usadas.
Imagen sintética 2 de 250x300. Imágenes a color en el espacio RGB; los bloques simulan los autos.
BLOQUE DESPLAZAMIENTO
(pxls)
Vinotinto 10
Amarrillo 10
Verde Oscuro 20
Azul Oscuro 5
Morado 15
Rojo 15
PROMEDIO 12.5
Tabla 3. Disparidad promedio de la escena sintética.
Muchas veces, la información que brinda una o dos componentes no aporta nada al cálculo de la
disparidad, por lo que los recursos invertidos en el cómputo de dichas componentes están siendo
malgastados. Asimismo, al procesar diferentes imágenes la información puede encontrarse en una
componente diferente, dependiendo de la imagen; en este caso, el computo correcto de la disparidad esta
directamente ligado a las características del video y a los automóviles presente en el. Esto se debe a que es
diferente computar la componente roja de un video en donde la mayoría de los autos son oscuros, a un
video en donde los autos son en su mayoría taxis.
Como se observa en las Figura 16 y Figura 17, al computar las tres componentes del par imágenes
sintéticas a color 2 se obtienen resultados repetidos (Tabla 4 y Tabla 5), indicando que en este caso el
computo de una sola componente bastaría. A pesar de esto, no es posible afirmar que computando siempre
la componente verde de la escena se obtendrá el mejor resultado, porque no es cierto; esto ocurrió en este
caso por simple casualidad.
Imagen 3A Imagen 3B
27
Figura 16. Resultados de la escena sintética por componentes usando CC y NCC.
Correlación Cruzada (izquierda) y Correlación Cruzada Normalizada (derecha).
COMPONENTE CC NCC
R 0 0
G 0 0
B 0 0
PROMEDIO 0 0
Tabla 4. Disparidad de la escena sintética usando CC y NCC por componentes.
Particularmente, al aplicar los algoritmos de sumas de productos (CC y NCC), la disparidad calculada es
incorrecta. Esto se debe, en gran parte, a que el fondo en la imagen más predominante en comparación con
los bloques de colores. Al operar los productos en los pixeles y al ser la disparidad promedio tan pequeña,
el algoritmo encontrar que las dos imágenes presenta la mayor correspondencia sin necesidad de
desplazamiento alguno, como si las imágenes fueran las mismas.
Figura 17. Resultados de la escena sintética por componentes usando técnicas SAD y SSD. SAD (izquierda) y SSD (derecha).
Los resultados obtenidos con las técnicas SAD y SSD son mucho más prometedores que los anteriores.
Esto se debe a gran parte que la acumulación es de restas y no productos. Como se observa, las gráficas
presentan varias irregularidades o inflexiones abruptas, por lo que puede esperezarse que al automatizar la
identificación del punto de interés (ya que por ahora este punto está siendo identificado manualmente),
existan dificultades y, en algunos casos, errores.
0 100 200 300 400 5000
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5x 10
4 CC Componente Roja
X: 250
Y: 4.884e+004
0 100 200 300 400 5000
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5x 10
4 CC Componente Verde
X: 250
Y: 4.822e+004
0 100 200 300 400 5000
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5x 10
4
X: 250
Y: 4.774e+004
CC Componente Azul
0 100 200 300 400 5000
1
2
3
4
5
6
7
8
9x 10
4 NCC Componente Roja
X: 250
Y: 8.212e+004
0 100 200 300 400 5000
1
2
3
4
5
6
7
8
9x 10
4 NCC Componente Verde
X: 250
Y: 8.102e+004
0 100 200 300 400 5000
1
2
3
4
5
6
7
8x 10
4
X: 250
Y: 7.944e+004
NCC Componente Azul
0 100 200 300 400 5000
200
400
600
800
1000
1200
1400
1600
1800
X: 270
Y: 1085
SAD Componente Roja
0 100 200 300 400 5000
500
1000
1500
2000
2500
X: 265
Y: 1406
SAD Componente Verde
0 100 200 300 400 5000
500
1000
1500
2000
2500
X: 260
Y: 1289
SAD Componente Azul
X: 320
Y: 1223
0 100 200 300 400 5000
200
400
600
800
1000
1200
X: 270
Y: 479.6
SSD Componente Roja
0 100 200 300 400 5000
200
400
600
800
1000
1200
1400
1600
X: 265
Y: 860.2
SSD Componente Verde
0 100 200 300 400 5000
200
400
600
800
1000
1200
1400
1600
1800
X: 320
Y: 816.4
SSD Componente Azul
X: 260
Y: 831.5
28
COMPONENTE SAD SSD
R 20 20
G 15 15
B* 10 10
PROMEDIO 15 15
Tabla 5. Disparidad de la escena sintética usando SAD y SSD por componentes.
Para reducir la complejidad del problema, se propuso cambiar de espacio de color; en vez de trabajar con
tres componentes, es posible reducir el espacio a una sola componente. Esto se logra al aplicar una
transformación lineal que pasa del espacio RGB a un espacio unidimensional de tonos de gris, donde las
tonalidades dependen directamente de los valores de R, G y B de cada pixel.
De esta manera se evita el identificar que componente presenta la información más relevante al integrar la
información que aporta cada una de las componentes en un solo valor. En la Figura 18 y la Tabla 6 puede
observarse que los resultados obtenidos siguen estando en el mismo rango y se ha reducido en un tercio
los recursos de cómputo.
Figura 18. Resultados obtenidos al aplicar las 4 técnicas sobre la escena sintética en Grises.
TECNICA DISPARIDAD
CC 0
NCC 0
SAD 10
SSD 10
Tabla 6. Disparidad de la escena sintética en Grises.
0 100 200 300 400 5000
1
2
3
4
5x 10
4
X: 250
Y: 4.835e+004
CC en Grises
0 100 200 300 400 5000
2
4
6
8
10x 10
4
X: 250
Y: 8.102e+004
NCC en Grises
0 100 200 300 400 5000
500
1000
1500
2000
X: 260
Y: 1299
SAD en Grises
0 100 200 300 400 5000
200
400
600
800
1000
1200SSD en Grises
X: 260
Y: 710.9
29
4.1.4. Limitación de la imagen y el concepto de carriles.
Como se ha mencionado, para el cálculo de la disparidad entre las dos imágenes se han considerado una
serie de restricciones con el fin de facilitar el análisis de la correspondencia. La restricción o hipótesis más
importante es la restricción epipolar, la cual permite reducir la búsqueda de correspondencia a una sola
dimensión, considerando que solo existe desplazamiento en un solo eje, por lo que solo es necesario
analizar en una dirección.
Aterrizando esta restricción al problema de la estimación de la velocidad en una vía, esto supone que los
automóviles mantiene una trayectoria recta al cruzar por ambas líneas de acumulación. Gracias a esto, es
posible reducir los recursos aún más al limitar el área de las imágenes de acumulación que debe ser
computada para el cálculo de la disparidad. Este método fue propuesto con el fin de mejorar la eficiencia
del algoritmo al reducirse el número de operaciones a computar, obteniéndose los mismos o mejores
resultados.
Cuando se habla de limitar el área de las imágenes, se hace referencia a aplicar un concepto de “carriles”
sobre ella. Esto supone que es posible delimitar las imágenes a un número de carriles, reduciendo la
dimensión de la imagen y aumentando la velocidad de cómputo. Como se sabe, una vía o calle está
compuesta por carriles, por donde los automóviles se desplazan en línea “recta”. Así pues es posible
recortar la imagen de la vía por los carriles (Figura 19), obteniéndose la misma información que permitirá
el cálculo de la disparidad.
Figura 19. Limitación de la escena sintética por carriles.
Al utilizar los segmentos o carriles de la imagen de la vía, el tiempo invertido en el cálculo de la
disparidad se reduce considerablemente. Esto se debe a que la cantidad de operaciones que deben
realizarse son reducidas, disminuyéndose el coste computacional. Así, en vez de obtener la disparidad
utilizando toda la imagen, es posible obtener las disparidades por carriles, para luego obtener la disparidad
media de la imagen computando el promedio entre las disparidades por carriles. Cabe resaltar que esto
conlleva a aplicar el algoritmo más veces, ya que es necesario aplicarlo para cada carril. En la Tabla 7 se
compara el tiempo invertido al aplicar las técnicas usando la imagen completa y la imagen segmentada en
A - Carril 1 B - Carril 1 A - Carril 2 B - Carril 2
30
carriles. Es necesario aclarar que el tiempo es solo un estimado de la cantidad de operaciones del
algoritmo, y depende de la implementación, por lo tanto esta medida solo debe tomarse como un indicio
de la complejidad computacional del algoritmo.
TIEMPO [sec]
Algoritmo Imagen Completa Carriles
CC 1.095122 0.0853
NCC 10.400933 0.2738
SAD 2.032095 0.1020
SSD 1.087287 0.0851
Tabla 7. Comparación del tiempo invertido entre el método Imagen Completa y Carriles
Aplicar las diferentes técnicas usando los carriles no presenta un cambio relevante al graficar los
resultados, aunque se reduce el rango de valores del eje y. Es posible que la identificación del punto de
interés sea más sencilla al computar menos valores; esta hipótesis será tratada más adelante, comparando
los resultados de usar la imagen completa y los resultados de usar los carriles, con las imágenes reales.
Figura 20. Resultados de aplicar las 4 técnicas a la escena sintética, en Grises y por Carriles.
Como se puede apreciar en la Tabla 8, los resultados obtenidos al aplicar las técnicas en cada carril, y
luego hallando el promedio entre ambos carriles, son más precisos, a excepción del algoritmo de CC (que
para este caso en particular, no funciono). Esto se debe en gran parte a que se redujo la cantidad de fondo
0 200 400 6000
100
200
300
400
500X: 250
Y: 408.4
CC Carril1
0 200 400 6000
50
100
150
200
250
300
350
400
X: 250
Y: 394.6
CC Carril2
0 200 400 6000
100
200
300
400
500
600
700NCC Carril1
X: 260
Y: 672
0 200 400 6000
100
200
300
400
500
600
700NCC Carril2
X: 265
Y: 657
0 200 400 6000
5
10
15
20
25
30
X: 260
Y: 11.01
SAD Carril1
0 200 400 6000
10
20
30
40
50SAD Carril2
X: 265
Y: 16.66
0 200 400 6000
2
4
6
8
10
12
14
16
X: 260
Y: 5.052
SSD Carril1
0 200 400 6000
5
10
15
20
25
X: 265
Y: 11.56
SSD Carril2
31
presente en las imágenes a computar; esto conlleva una mejor correspondencia entre las imágenes de
acumulación, obteniéndose así los resultados esperados. En la Tabla 9 se compara el rendimiento de cada
una de las técnicas, en los diferentes escenarios tratados en esta sección. Por ahora es posible afirmar que
las técnicas que presentan un mejor desempeño son SAD y SSD. En posteriores secciones se corroborara
esta afirmación, con el fin de obtener el algoritmo deseado.
ALGORITMO CARRIL 1 CARRIL 2 PROMEDIO
CC 0 0 0
NCC 10 15 12.5
SAD 10 15 12.5
SSD 10 15 12.5
Tabla 8. Disparidad calculada por el método Carriles.
DISPARIDAD CALCULADA EFICIENCIA
Algoritmo Promedio
RGB
Imagen Completa
(Grises)
Promedio
Carriles (Grises)
Disparidad Real
(Manual) A B C
CC 0 0 0 12.5 0% 0% 0%
NCC 0 0 12.5 12.5 0% 0% 100%
SAD 15 10 12.5 12.5 98% 98% 100%
SSD 15 10 12.5 12.5 98% 98% 100%
Tabla 9. Resultados al aplicar las técnicas de emparejamiento sobre la escena sintética.
Resultados en espacio RGB (A), en grises e imagen completa (B) en grises y por carriles (C).
4.1.5. Líneas de acumulación.
A la hora de obtener las imágenes de acumulación espacio temporal de los videos tomados sobre las vías,
es muy importante el lugar que se escoge para colocar la línea de acumulación, sobre la cual se acumulara
la información a través del video para la generación de las imágenes. La elección de la posición de esta
línea depende más que todo del fondo, ya que el tramo de fondo que sea capturado por la línea, y por
consiguiente sus características, estará presente en toda la imagen de acumulación espacio temporal.
Se supone que el fondo (la calle) a lo largo del video no presenta cambios, exceptuando los cambios que
pueda tener en cuando a la iluminación, ya sea por factores de la intensidad de la luz (dependiendo de la
hora), sombras no consideradas y totalmente aleatorias (nubes u otra clase de objeto) o por las mismas
sobras de los vehículos. Claramente, la calle puede presentar irregularidades físicas como huecos, fisuras,
líneas de separación o basuras, características típicas de una calle en la ciudad de Bogotá. Son estas
alteraciones de la vía la que pueden ocasionar problemas a la hora del cálculo de la disparidad entre las
imágenes.
Entre las posibles “situaciones” que puedan llegar a presentar problema, se encuentran:
Huecos, fisuras o marcas en la vía. Se observa cómo puede afectar los resultados del algoritmo, ya
que no es posible comparar dos imágenes si el fondo es demasiado diferente; esto suponiendo que
la línea de acumulación A esta sobre una “imperfección” de la vía, mientras la línea de
acumulación B no. El fondo en ambos casos será muy diferente, haciendo mucho más difícil la
estimación de una disparidad.
32
Vehículos que cambian de carril. Esta situación puede llegar a ocasionar errores con los
algoritmos, ya que es posible que un vehículo este en el carril 1 de la imagen A, y aparezca en el
carril 2 de la imagen B; a la hora de computar la correspondencia entre ambas imágenes, se
generarán problemas ya que el vehículo en cuestión en la imagen A no corresponde con el espacio
en donde debería estar en la imagen B. Es posible también que el vehículo este cambiando de
carril sobre la línea de acumulación, generándose un bloque en forma de paralelogramo que
ocasionará problemas. Está situación está directamente relacionada con la restricción epipolar
Vehículos que quedan estacionados debido a congestión o un semáforo en rojo sobre la línea de
acumulación. Esta situación genera que los vehículos presenten un esparcimiento a lo largo de la
imagen, generándose bloques que pueden presentarse sobre toda la imagen. Esto ocasiona grandes
dificultades a la hora de realizar la correspondencia, ya que en algunos casos desparecen los
vehículos de una de las imágenes, generándose escenas diferentes.
Figura 21. Situaciones no deseadas según la ubicación de las líneas de acumulación. En la imagen de la izquierda, la línea fue situada sobre una marca amarilla propia de la calle; en la imagen derecha, un vehículo
se detuvo sobre la línea de acumulación, generando un efecto de borrón.
Todas estas situaciones que pueden llegar a presentarse debido a lugar donde se decide colocar la línea de
acumulación traen consigo inconvenientes para el cálculo de la disparidad, y por consiguiente, de la
velocidad. Estos inconvenientes serán registrados en secciones más adelante, junto con los resultados que
traen consigo; esto con el fin de analizar en los casos en los que el algoritmo definitivo que será diseñado
no funciona correctamente.
33
Figura 22. Situación no deseada: frenado de vehículos sobre las líneas.
Resultados que se obtienen cuando los vehículos frenan sobre la línea o se desplazan muy lento debido a congestiones o semáforos. Se observa la ausencia del vehículo blanco de la imagen de la izquierda en la imagen derecha (caso de oclusión).
Cabe aclarar que para fines del proyecto de investigación la captura de las imágenes de acumulación no
será abarcada de manera profunda, ya que no es parte del mismo el tratar el tema de la obtención de dichas
imágenes. Se basará en el supuesto que las imágenes fueron generadas de la manera en que se explicó
anteriormente, teniendo en cuenta la separación entre las líneas de acumulación con el fin de obtener la
velocidad media utilizando la correspondencia entre las imágenes de acumulación
4.2. EFICIENCIA DE LOS ALGORITMOS PRELIMINARES PARA EL CÁLCULO DE LA
DISPARIDAD.
Para entrar ya en materia, es necesario obtener el algoritmo que mejor rendimiento tenga a la hora de
calcular la disparidad con las imágenes de acumulación espacio temporal de las vías. Para esto, se
pretende comparar las cuatro técnicas en cuanto a velocidad (tiempo invertido en obtener la disparidad) y
precisión del resultado. De esta manera, al tener los resultados y los tiempos, es posible escoger el
algoritmo que presente la mejor eficiencia encontrando la correspondencia, para posteriormente hallar la
velocidad media.
En primer lugar, es necesario obtener una medida manual de la disparidad entre las imágenes, con el fin de
comparar los resultados de los algoritmos en base a esta medición. Esto se logra obteniendo las
coordenadas verticales de cada uno de los vehículos en las dos imágenes, para luego encontrar la
diferencia entre la coordenada vertical del mismo vehículo, y obtener el promedio de “diferencia” de todos
los vehículos en la imagen.
Se escogieron tres pares de imágenes de acumulación que presentaban las mejores condiciones; esto es,
los pares que no presentaban alguno de las situaciones expuestas en la sección anterior, y donde no se
presenciaba el fenómeno de oclusión. Esto con el fin de seleccionar estas imágenes de diseño con los que
se obtuvieran resultados pertinentes, con los cuales sea posible una comparación válida.
34
Figura 23. Par de imágenes de diseño 1.
A la izquierda, imagen A1; a la derecha, B1. (600x639 pixeles).
Los vehículos fueron numerados como referencia. A continuación, se presenta la tabla con los resultados
del cálculo de la disparidad obtenido manualmente.
DISPARIDAD MANUAL (PAR IMAGENES 1)
1 2 3 4 5 6 7 8 9 10 11 12 13
32.67 31.5 18.75 17.25 20.25 18.00 22.50 14.25 12.75 15.00 17.25 18.75 21.00
Tabla 10. Disparidades obtenidas manualmente las imágenes de diseño 1.
Con el fin de comparar los resultados entre aplicar los algoritmos a las imágenes completas o por carriles,
se calcularon las disparidades promedio por cada carril (Tabla 11). Los carriles fueron obtenidos
segmentando las imágenes en tres bloques, de 600x5, que contuvieran la mayoría de los vehículos. Los
vehículos (5) y (7) no aparecen en ningún carril, debido a que el carril 2 debería ser suficientemente ancho
para contenerlos. El ancho del carril solamente afecta el tiempo en que se demora los algoritmos en
realizar las operaciones, por lo que la idea es elegir carriles bastante delgados.
Carril 1 Carril 2 Carril 3
(01) 32.67 (03) 18.75 (08) 14.25
(02) 31.50 (04) 17.25 (09) 12.75
(06) 18.00 (10) 15.00
(11) 17.25
(12) 18.75
(13) 21.00
32 18 16.5
Promedio Carriles = 22.1667
Tabla 11. Disparidades promedio por carriles las imágenes de diseño 1.
A continuación se presentan las graficas (Figura 24, Figura 25, Figura 26 y Figura 27) de los resultados
obtenidos al aplicar cada uno de los algoritmos a las imágenes de diseño 1.
35
Figura 24. Correspondencia carril 1 (Imágenes de diseño 1).
Figura 25. Correspondencia carril 2 (Imágenes de diseño 1).
0 200 400 600 800 1000 12000
100
200
300
400
500
600
700
800CC - Carril 1
X: 600
Y: 776.2
0 200 400 600 800 1000 1200-600
-400
-200
0
200
400
600
800NCC - Carril 1
X: 626
Y: 672
0 200 400 600 800 1000 12000
100
200
300
400
500
600
X: 631
Y: 442.4
SAD - Carril 1
0 200 400 600 800 1000 12000
20
40
60
80
100
120
X: 631
Y: 74.64
SSD - Carril 1
0 200 400 600 800 1000 12000
200
400
600
800
1000
X: 614
Y: 958.5
CC - Carril 2
0 200 400 600 800 1000 12000
500
1000
1500
2000NCC - Carril 2
X: 614
Y: 1806
0 200 400 600 800 1000 12000
100
200
300
400
500
X: 615
Y: 237.5
SAD - Carril 2
0 200 400 600 800 1000 12000
50
100
150
X: 614
Y: 35.49
SSD - Carril 2
36
Figura 26. Correspondencia carril 3 (Imágenes de diseño 1)
Una vez más, los puntos de interés son identificados manualmente; más adelante se enuncian los dos
algoritmos que identificaran dichos puntos de manera automática. Para las correlaciones cruzadas, es el
máximo pico el punto que brinda la información; en las sumas de diferencias, es el mínimo que aparece en
un cambio abrupto hacia el medio de la gráfica. Como se mencionó anteriormente, con este punto es
posible obtener la disparidad; esto se logra sustrayendo la coordenada x de dicho punto del número de
filas (m) de la imagen.
Figura 27. Correspondencia completa (Imágenes de diseño 1).
0 200 400 600 800 1000 12000
200
400
600
800
1000
1200CC - Carril 3
X: 600
Y: 1044
0 200 400 600 800 1000 1200-200
-100
0
100
200
300
X: 613
Y: 279
NCC - Carril 3
0 200 400 600 800 1000 12000
50
100
150
200
250
300
X: 617
Y: 191.9
SAD - Carril 3
0 200 400 600 800 1000 12000
10
20
30
40
50
60
70
X: 613
Y: 36.44
SSD - Carril 3
0 200 400 600 800 1000 12000
2
4
6
8
10
12
14x 10
4 CC
X: 600
Y: 1.252e+005
0 200 400 600 800 1000 12000
0.5
1
1.5
2x 10
5 NCC
X: 617
Y: 1.672e+005
0 200 400 600 800 1000 12000
1
2
3
4
5x 10
4
X: 617
Y: 3.767e+004
SAD
0 200 400 600 800 1000 12000
2000
4000
6000
8000
10000
12000
X: 615
Y: 6912
SSD
37
Se observa que las gráficas, aunque sean distintas, mantienen una curva característica para cada una de las
técnicas. También es posible notar que la escena modifica las curvas de acuerdo con el fondo y segmentos
de vehículos que son parte de la escena. Las modificaciones son representadas en forma de pequeños
picos, a manera de una especia de rizado. Esto puede llevar a dificultades a la hora de identificar
automáticamente el punto de interés, en el caso en que estas irregularidades sean bastante abruptas y sean
comparables con el punto en cuestión.
Cabe resaltar que las curvas obtenidas utilizando las imágenes en su totalidad (Figura 27) son mucho más
suaves en comparación con las curvas de los carriles. Esto facilitará la identificación del punto de interés
y, por ende, el cálculo de la disparidad más adelante, sacrificándose el coste invertido para el cómputo de
más operaciones. Es necesario confrontar número de operaciones realizadas contra precisión, con el fin de
encontrar cual de las técnicas y método presenta resultados acertados y con bajo coste computacional.
A continuación se presentan las dos imágenes de diseño restantes que fueron usadas con el fin de
comparar las técnicas. Una vez más, las escenas presentan condiciones favorables para la aplicación de los
algoritmos, evitándose las situaciones mencionadas anteriormente.
Figura 28.Par de imágenes de diseño 2.
A la izquierda, imagen A2; a la derecha, B2. (600x639 pixeles).
DISPARIDAD MANUAL (PAR IMAGENES 2)
01 02 03 04 05 06 07 08 09 10
12.00 15.00 18.75 15.00 21.75 12.00 12.75 12.00 10.50 12.75
11 12 13 14 15 16 17 18 19
15.75 11.25 11.25 10.91 10.50 11.25 09.75 09.75 12.75
Tabla 12. Disparidades obtenidas manualmente las imágenes de diseño 2.
38
Carril 1 Carril 2 Carril 3
(01) 12.00 (06) 12.00 (12) 11.25
(02) 15.00 (08) 12.00 (13) 11.25
(03) 18.75 (09) 10.50 (14) 10.91
(04) 15.00 (10) 12.75 (15) 10.50
(05) 21.75 (11) 15.75 (16) 11.25
(17) 09.75
(18) 09.75
(19) 12.75
16.5 12 10.92
Promedio Carriles = 13.14
Tabla 13. Disparidades promedio por carriles las imágenes de diseño 2.
Figura 29. Par de imágenes de diseño 3.
A la izquierda, imagen A3; a la derecha, B3. (600x639 pixeles).
DISPARIDAD MANUAL (PAR IMAGENES 3)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
17.25 15.00 20.25 12.75 14.25 15.00 10.50 12.00 10.50 14.25 18.00 18.00 18.75 17.25 15.75
Tabla 14. Disparidades obtenidas manualmente las imágenes de diseño 3.
Carril 1 Carril 2 Carril 3
(01) 17.25 (04) 12.75 (10) 14.25
(02) 15.00 (05) 14.25 (11) 18.00
(03) 20.25 (06) 15.00 (12) 18.00
(07) 10.50 (13) 18.75
(08) 12.00 (14) 17.25
(09) 10.50 (15) 15.75
17.5 12.5 17
Promedio Carriles = 15.66
Tabla 15. Disparidades promedio por carriles las imágenes de diseño 3.
39
En la Tabla 16, Tabla 17, Tabla 18, Tabla 19, Tabla 20 y Tabla 21, se encuentran los resultados obtenidos
al aplicar los algoritmos en las tres pares de imágenes de diseño (Figura 23, Figura 28 y Figura 29). Se
realizó la comparación entre las técnicas para determinar el desempeño que cada una presento en dos
aspectos importantes: precisión y velocidad.
La precisión hace referencia a que tan exacto fue el cálculo de la disparidad en comparación con la
disparidad hallada a mano. Cabe resaltar que la correspondencia manual no es exacta, ya que está
condicionada por el ojo de la persona que la obtuvo, pero está bastante cercana a la real. La velocidad
indica cuanto tiempo fue invertido en realizar el cómputo sobre las imágenes para el cálculo de la
disparidad; esto es traducido en los recursos computacionales invertidos en el análisis; es necesario
mencionar que esta medida se da como una idea de la complejidad computacional del algoritmo y se debe
tener en cuenta que depende de las prestaciones del PC en el que fue probado el algoritmo y de la
implementación en software.
Todo lo anterior con el fin de escoger la técnica que posiblemente es más eficaz, siendo la que presenta el
mejor resultado y en el menor tiempo posible, ya que el principal objetivo es encontrar un algoritmo de
bajos recursos capaz de estimar la velocidad media de manera acertada.
TIEMPOS PAR DE IMAGENES 1
Técnica
Aplicada
Método Carriles Imagen
Completa Carril1 [s] Carril2 [s] Carril3 [s] Total [s]
CC 0.349754 0.344181 0.337757 1.0317 14.635
NCC 1.300858 1.292061 1.283832 3.8768 134.473
SAD 0.440490 0.475856 0.445925 1.3623 25.986
SSD 0.351798 0.347172 0.347375 1.0463 14.910
Tabla 16. Tiempos invertidos (par de entrenamiento 1).
DISPARIDAD PAR DE IMAGENES 1
Técnica
Aplicada
Método Carriles Imagen
Completa Carril1 Carril2 Carril3 Promedio
Manual 32 18 16.5 22.1667 19.99
CC 0 14 0 4.6667 0
NCC 26 14 13 17.6667 17
SAD 31 15 17 21 17
SSD 31 14 13 19.333 15
Tabla 17. Disparidades calculadas (par de entrenamiento 1).
TIEMPOS PAR DE IMAGENES 2
Técnica
Aplicada
Método Carriles Imagen
Completa Carril1 [s] Carril2 [s] Carril3 [s] Total [s]
CC 0.367801 0.333599 0.333582 1.0350 14.357
NCC 1.297788 1.269461 1.264841 3.8321 135.027
SAD 0.433803 0.462826 0.463777 1.3604 27.023
SSD 0.365285 0.336047 0.357018 1.0584 15.075
Tabla 18. Tiempos invertidos (par de entrenamiento 2).
40
DISPARIDAD PAR DE IMAGENES 2
Técnica
Aplicada
Método Carriles Imagen
Completa Carril1 Carril2 Carril3 Promedio
Manual 16.5 12 10.92 13.14 12.92
CC 14 10 0 8 0
NCC 14 11 12 12.33 11
SAD 14 10 12 12 11
SSD 14 10 12 12 11
Tabla 19. Disparidades calculadas (par de entrenamiento 2).
TIEMPOS PAR DE IMAGENES 3
Técnica
Aplicada
Método Carriles Imagen
Completa Carril1 [s] Carril2 [s] Carril3 [s] Total [s]
CC 0.335383 0.374919 0.375167 1.0855 15.032
NCC 1.336515 1.682746 1.773366 4.7926 140.076
SAD 0.433952 0.518306 0.515324 1.4676 28.633
SSD 0.349009 0.373047 0.380892 1.1029 15.509
Tabla 20. Tiempos invertidos (par de entrenamiento 3).
DISPARIDAD PAR DE IMAGENES 3
Técnica
Aplicada
Método Carriles Imagen
Completa Carril1 Carril2 Carril3 Promedio
Manual 17.5 12.5 17 15.66 15.66
CC 13 11 13 12.33 0
NCC 13 12 14 13 16
SAD 13 11 14 12.66 16
SSD 13 11 14 12.66 13
Tabla 21. Disparidades calculadas (par de entrenamiento 3).
Se puede observar que el algoritmo de Correlación Cruzada es el menos efectivo a la hora de calcular la
disparidad de manera acertada. En muchos casos, se observa que la disparidad hallada por esta técnica es
0. Esto se debe en gran parte a la escena a analizar; al parecer, es una técnica que se ve afectada por el
fondo, ya que la disparidad hallada utilizando toda la imagen es incorrecta. Aplicando esta técnica por
carriles, los resultados obtenidos son mejores, aunque en algunos casos se obtienen disparidad 0 también.
A pesar de esto, es la técnica que presenta los tiempos más cortos de cómputo, posicionándose como el
algoritmo más rápido y menos acertado.
41
Figura 30. Tiempos invertidos por las técnicas de emparejamiento (método de carriles).
La técnica de Correlación Cruzada Normalizada, la cual supone una normalización de los pixeles con el
fin de reducir los efectos de la iluminación y del fondo, presenta resultados bastante acertados a costo del
tiempo que es necesario invertir para computar la correspondencia. Se puede notar que es una técnica
bastante lenta, especialmente si es aplicada sobre toda la imagen (se gasta aproximadamente 2 minutos
computando las operaciones sobre las imágenes). Es una técnica que debe ser diseñada para aplicarse
sobre los carriles, ya que se puede reducir considerablemente el tiempo invertido, y los resultados
obtenidos por carriles son proporcionales a los obtenidos usando la imagen completa.
Figura 31. Tiempos invertidos por las técnicas de emparejamiento (método imagen completa=.
Las dos técnicas de Sumas de Diferencias presentan el mejor desempeño, siendo bastante rápidas y
acertadas. Se observan excelentes resultados aplicando estas técnicas a las imágenes completas, y el
tiempo que se invierte es bajo. Además, las graficas resultado usando las imágenes completas son bastante
suaves, siendo más fácil el cálculo de la disparidad. La única desventaja hasta ahora de dichas técnicas es
el algoritmo de identificación de dicho punto; es necesario realizar operaciones y manipular los resultados
para obtener el punto de inflexión abrupto hacia la mitad de la grafica, procedimiento que no es tan
sencillo, mientras que la identificación del punto en las técnicas de correlación cruzada se reduce a obtener
el valor máximo de la grafica, procedimiento bastante simple.
42
Figura 32. Disparidades calculadas por las técnicas de emparejamiento.
Técnicas Eficiencia [1] Eficiencia [2] Eficiencia [3]
Eficiencia
Promedio
Carriles Completa Carriles Completa Carriles Completa Carriles Completa
CC 21% 0% 61% 0% 79% 0% 54% 0%
NCC 80% 85% 94% 85% 83% 98% 86% 89%
SAD 95% 85% 91% 85% 81% 98% 89% 89%
SSD 87% 75% 91% 85% 81% 83% 86% 81%
Tabla 22. Eficiencias de las técnicas de emparejamiento.
Es posible observar (Tabla 22) que la eficiencia obtenida aplicando la técnica de Suma de Diferencias
Absolutas es la más alta entre las cuatro; es cerca del 90%. Debe tenerse en cuenta que la disparidad
calculada manualmente no es del todo precisa, estando sujeta a los errores del operario que la halló
(errores humanos). Gracias a esto se puede afirmar que la técnica candidata con mejor desempeño es
SAD, siendo este algoritmo bastante rápido en comparación con laos otros, así como bastante acertada.
Estos resultados brindan una idea general de la eficiencia que presenta cada uno de los algoritmos para el
cálculo de la disparidad en el par de imágenes de acumulación; más adelante, se expondrán los resultados
que se obtuvieron al aplicar estos algoritmos para la estimación de la velocidad en los videos, con el fin de
diseñar el algoritmo más eficiente que en últimas resuelve el cuestionamiento inicial planteado.
A continuación se enunciarán los dos algoritmos de identificación aplicados para obtener los puntos de
interés previamente mencionados, con los que el cálculo de la disparidad finaliza. Asimismo, se resumirán
los resultados obtenidos al aplicar el mismo procedimiento a las 6 imágenes de entrenamiento restantes,
para un total de 9 imágenes de entrenamiento. Se pretende con esto seleccionar el algoritmo más
adecuado, o corroborar la afirmación anterior, para estimar la velocidad media en una vía, teniendo en
cuenta la velocidad de procesamiento y la eficiencia de los resultados.
(ANEXO N° 1)
43
4.3. ALGORITMOS DE IDENTIFICACIÓN.
Para finalizar con el algoritmo para la estimación la velocidad media de una vía utilizando imágenes de
acumulación espacio temporal, es necesario obtener los puntos de interés que previamente se han
mencionado repetidamente. Estos puntos a identificar son aquellos que en últimas poseen la información
sobre la disparidad entre las imágenes obtenida al aplicar las técnicas mencionadas. A continuación se
describen los dos algoritmos de identificación aplicados, uno para las técnicas de correlación (CC y NCC)
y otro para las técnicas de sumas de diferencias (SAD y SSD).
El algoritmo de identificación aplicado para las técnicas de correlación consiste en obtener el punto más
alto de la curva obtenida. Esto se debe a que, al ser técnicas que acumulan el producto de los pixeles, se
espera que la correspondencia más alta se encuentre cuando la sumatoria de productos sea máxima.
Gracias a esto, solo es necesario recorrer los puntos obtenidos con dichas técnicas, comparándolos entre sí
hasta encontrar el máximo de ellos. Una vez obtenido el máximo, solo resta obtener la coordenada en x de
dicho punto, valor que indica la disparidad encontrada.
Figura 33. Curvas características de las técnicas de correlación. El punto de interés (marcado en la figura) es el máximo de la grafica.
Por otro lado, para obtener la disparidad al aplicar las técnicas de sumas de diferencias, es necesario
realizar un proceso más complejo debido a las curvas que se obtienen con dichas técnicas. En estos casos,
la curva tiene una forma similar a una ‘M’, y el punto que debe identificarse es aquel en donde ocurre la
máxima inflexión con concavidad positiva, es decir, el punto mínimo donde se presencia el cambio de
pendiente más abrupto (cambio de pendiente negativa a pendiente positiva).
Esto se debe a que al ser técnicas basadas en sumas de diferencias, se espera que la máxima
correspondencia entre las imágenes se dé cuando la sumatoria total sea mínima, teniendo en cuenta que al
inicio del algoritmo, los resultados de las sumas son pequeños debido a que la imagen desplazada hasta
ahora están “entrando” sobre la imagen estática. Es por eso que el punto de interés se encuentre entre dos
picos de la gráfica, y se da hacia la mitad del eje horizontal.
0 200 400 600 800 1000 12000
200
400
600
800
1000
1200
1400CC - Carril 2
X: 611
Y: 1336
0 200 400 600 800 1000 1200-500
0
500
1000
1500
2000
X: 612
Y: 1694
NCC - Carril 2
0 200 400 600 800 1000 12000
100
200
300
400
500
X: 611
Y: 344.1
SAD - Carril 2
0 200 400 600 800 1000 12000
20
40
60
80
100
120
140
X: 611
Y: 53.83
SSD - Carril 2
44
Figura 34. Curvas características de las técnicas de sumas de diferencias.
El punto de interés (marcado en la figura) el punto de inflexión más predominante.
Para lograr obtener este punto, fue necesario derivar las graficas obtenidas al aplicar las técnicas de sumas
de diferencias con el fin de analizar las pendientes. Esto se logró calculando la diferencia entres dos
puntos adyacentes, de las siguiente manera
Una vez obtenida la derivada de la gráfica se procede a encontrar el punto mínimo de la grafica, punto que
coincide con el máximo cambio de pendientes, pasando de pendiente positiva a pendiente negativa. Si se
supone un punto , siendo este punto el primer pico de la grafica (último punto de pendiente positiva), y
un punto adyacente al primero, donde hay un cambio de pendiente, la derivada
tendrá un valor negativo (ya que ); al calcular las derivadas siguientes ( ), se
obtendrán valores negativos, puesto que , hasta un punto tal que
lo cual indica otro cambio de pendiente (negativa a positiva), gracias a que . De esta manera,
calculando la derivada es posible encontrar el punto en el cual la pendiente pasa de ser negativa a ser
positiva. Hallando el mínimo de la derivada ( ), se reduce la búsqueda del punto de interés a los
valores adyacentes punto mínimo, ya que en la gran mayoría de los casos .
0 200 400 600 800 1000 12000
200
400
600
800
1000
1200
1400CC - Carril 2
X: 611
Y: 1336
0 200 400 600 800 1000 1200-500
0
500
1000
1500
2000
X: 612
Y: 1694
NCC - Carril 2
0 200 400 600 800 1000 12000
100
200
300
400
500
X: 611
Y: 344.1
SAD - Carril 2
0 200 400 600 800 1000 12000
20
40
60
80
100
120
140
X: 611
Y: 53.83
SSD - Carril 2
45
Figura 35. Derivadas correspondientes a las curvas SAD y SSD.
(Figura 34) El punto mínimo ha sido demarcado.
En la Figura 36 se aprecia mejor lo anteriormente descrito. En esta figura se observa la derivada de la
grafica A de la Figura 34 (SAD – Carril 2). El mínimo hallado fue el punto ( ); a parir de
dicho punto (hacia la derecha), se encontró el punto en el cual ocurrió el cambio de pendiente negativa a
pendiente positiva. Para identificar el cambio, solo bastó con encontrar el punto en el cual el valor de la
coordenada Y pasaba de negativo a positivo. Como se observa, el punto adyacente a ( )
es ( ), con lo cual se concluye que el punto de interés es ( ), ya que el
valor de la coordenada Y pasó de a , indicando el cambio de pendiente buscado.
Figura 36. Derivada de la curva característica de la técnica SAD. La grafica fue ampliada (Figura 35) sobre la región de interés.
0 200 400 600 800 1000 1200-30
-20
-10
0
10
20
X: 610
Y: -25.88
Derivada SAD - Carril 2
0 200 400 600 800 1000 1200-15
-10
-5
0
5
10
15
X: 610
Y: -14.64
Derivada SSD - Carril 2
560 580 600 620 640 660 680
-25
-20
-15
-10
-5
0
5
10
15
X: 610
Y: -25.88
X: 611
Y: -10.44
X: 612
Y: 1.827
Derivada SAD - Carril 2
46
En caso de no encontrar un cambio de pendiente sobre el mínimo hallado, el algoritmo tomará el siguiente
punto mínimo, y a partir de allí realizara la búsqueda del cambio de pendiente nuevamente. Si una vez
más no es posible hallar un cambio de pendiente, el algoritmo retorna cero (0), indicando esto que la
disparidad es nula.
Este segundo algoritmo de identificación se basa en la hipótesis (obtenida de manera empírica) que la al
derivar las graficas obtenidas con las técnicas de sumas de diferencias, el punto mínimo de la derivada
corresponderá, en el mejor de los casos, al punto de interés; si no es así, al menos indica un punto de
referencia a partir del cual es posible encontrar el punto de interés. Este algoritmo fue el implementado
para tal fin, luego de haber realizado una serie de pruebas con las que se concluyó que el funcionamiento
del algoritmo era el esperado en la gran mayoría de los casos, exceptuando ciertos casos especiales (par de
imágenes de acumulación que presentan problemas mencionados en la sección donde que trató las líneas
de acumulación).
4.4. EFICIENCIA DE LOS ALGORITMOS PARA LA ESTIMACIÓN DE LA VELOCIDAD
MEDIA.
Ya diseñados los algoritmos basados en las técnicas de visión estéreo para el cálculo de la disparidad en
un par de imágenes de acumulación espacio-temporal, es tiempo de exponer los resultados obtenidos al
aplicarlos sobre tres videos de entrenamiento. Esto con la finalidad de identificar y escoger la técnica que
presenta la mayor eficiencia sobre las demás, y con esto diseñar el algoritmo definitivo que estimará la
velocidad media en una vía utilizando imágenes de acumulación espacio-temporales.
Anteriormente se expusieron y compararon los resultados de los 4 algoritmos aplicados a tres pares de
imágenes de acumulación; dichos resultados fueron usados como referencia para generar una idea
superficial de la eficiencia de cada uno de ellos. A causa de aquellos resultados obtenidos, se decidió
descartar la Correlación Cruzada (CC), debido al pobre desempeño conseguido con dicha técnica. En los
resultados que se expondrán a continuación ya se han integrado los dos algoritmos de identificación
previamente mencionados.
4.4.1. Videos de diseño.
Los videos de diseño utilizados provinieron de la base de datos del grupo de investigación SIRP, y fueron
usados a lo largo del diseño de los algoritmos. Para todos los videos se usó como códec XVID y como
contenedor avi; fueron grabados con la cámara PlayStationEYE, usando las configuraciones mostradas en
la Tabla 23 del módulo controlador de la cámara, en el núcleo de GNU/Linux.
Los parámetros generales de los videos de entrenamiento pueden observarse en la Tabla 24 Se usaron dos
videos tomados a 30 cuadros por segundo, y uno tomado a 125 cuadros por segundo.
47
Parámetros del modulo
gspca-ov534
30 cuadros
por seg
125 cuadros
por seg
Videomode “01” “16”
Autogain 0 0
Gain 0 0
AWB 0 0
Exposure 0 0
Brightness 128 128
Contrast 35 35
RedLC 35 35
BlueLC 128 128
Hue 128 128
Sharpness 0 0
Vflip 0 0
Hflip 0 0
freqfltr 1 1
Tabla 23. Configuración de la cámara PlayStationEYE.
VIDEO Lugar Duración Tamaño FPS Carriles
Video1 Séptima 180 s 480x640 30 3
Video2 Puente Nacional 180 s 480x640 30 2
Video3 Puente Nacional 180 s 240x320 125 2
Tabla 24. Características de los videos de entrenamiento.
De cada uno de los videos de diseño fueron generadas N pares de imágenes de acumulación, siendo este
número determinado por la cantidad de cuadros que se deseaban computar por cada par de imagen; esto se
debe a que las imágenes de acumulación son obtenidas al acumular la información cuadro por cuadro del
video. Se eligió como estándar acumular de a 600 cuadros por imagen. La separación entre las líneas de
acumulación fue determinada manualmente a conveniencia, teniendo en cuenta el fondo de la vía, con el
objetivo de evitar los problemas mencionados algunas secciones anteriores. A continuación se resumen
las características de las imágenes de acumulación generadas a partir de cada uno de los videos.
VIDEO
Cuadros
Pares de
imágenes de
acumulación
Tamaño
Separación
líneas de
acumulación
Video1 5400 9 600x639 438 pix
Video2 5400 9 600x639 156 pix
Video3 22500 38 600x313 80 pix
Tabla 25. Características de las imágenes de acumulación.
4.4.2. Disparidad.
Para calcular la disparidad de cada uno de los videos, se procedió a aplicar los algoritmos previamente
diseñados sobre el conjunto de pares de imágenes de acumulación generadas. Como el objetivo es el de
elegir el método y algoritmo que mejor eficiencia presenta, se calculó la disparidad usando el método de
los carriles y usando las imágenes completas. Para el primero, se dividió cada par de imagen en ‘n’ partes
48
iguales, siendo ‘n’ el número de carriles presentes en el video. Luego, la disparidad fue calculada
individualmente sobre los carriles, para posteriormente obtener una disparidad total igual al promedio de
las disparidades por carriles. Para el segundo método, simplemente se tomó cada par de imágenes y se les
aplicó los algoritmos. Los resultados del cálculo de la disparidad del video 2 se resume a continuación; los
resultados de los videos 1 y 3 se pueden revisar en las sección de anexos (ver ANEXO N° 2).
VIDEO 2
Imagen Promedio Carriles (general) Imagen Completa
Manual NCC SAD SSD NCC SAD SSD
1 4 4 4 3 5 5 4,12
2 1,5 3 3 3 3 3 2,78
3 4,5 4,5 4,5 7 3 7 3,75
4 3 3 3 3 3 3 2,79
5 4,5 4,5 4,5 4 6 6 5
6 4 4 4 5 5 3 4,5
7 3 3 3 3 3 3 3,13
8 4 4,5 4,5 3 3 3 4,03
9 2 3 3 3 3 3 3
Tabla 26. Disparidad del video de entrenamiento 2.
Se expone la disparidad calculada por el método de los carriles, el método de la imagen completa, y la disparidad hallada manualmente.
4.4.3. Estimación de la velocidad.
Se decidió analizar solo los algoritmos de NCC y SAD, descartando esta vez SSD. Esta decisión fue
tomada en base a la comparación entre SAD y SSD; se determinó que SAD es más precisa la mayoría de
las veces, y cuando no, SAD y SSD brindan resultados similares.
Para estimar la velocidad media son necesarias dos características previamente enunciadas: la tasa de
captura del video o cuadros por segundo (FPS), y la distancia entre las dos líneas de acumulación. Con
estos dos datos, y junto a la disparidad hallada, es posible estimar la velocidad aplicando la formula
mencionada anteriormente:
Siendo S la separación entre las líneas de acumulación, FPS los cuadros por segundo y la disparidad
calculada. La velocidad queda expresada en píxeles por segundo. Si se desea pasar a unidad físicas, como
metros por segundo [m/s] o kilómetros por hora [km/h], es necesario obtener dos parámetros de más: la
altura a la cámara ( ) y la distancia focal ( ). Para pasar a m/s solo basta con multiplicar la velocidad por
el cociente entre la altura a la cámara y la distancia focal; y para expresarla en km/h, solo faltaría
multiplicar la velocidad en m/s por el factor 3.6 (factor que convierte m/s a km/s).
49
[
]
[
]
4.4.4. Velocidad calculada manualmente.
Para sacar una eficiencia de los algoritmos, es necesario tener datos de referencia para comparar el
desempeño. Para hallar la velocidad de manera manual, se hizo uso de un algoritmo previamente diseñado
por el Ing. Francisco Calderón como parte de su trabajo de investigación [6].
El algoritmo facilita el cálculo de la velocidad al permitir visualizar el video cuadro a cuadro y la
posibilidad de almacenar una pareja de coordenadas al hacer click con el mouse (izquierdo para la
coordenada 1, derecho para la coordenada 2). El algoritmo retorna un archivo donde se registran el
conjunto de valores que el usuario ha elegido almacenar. Cada conjunto de valores está conformado por la
coordenada vertical (eje ‘y’) y el número del cuadro del punto que se eligió con el mouse. De esta manera
es posible registrar la coordenada vertical ( ) del vehículo A en el cuadro , y un número de cuadros
después registrar nuevamente la coordenada vertical del mismo vehículo ( ) en el cuadro .
Con este par de datos es posible calcular la velocidad, en pixeles por segundo, del vehículo A de la
siguiente manera
( )
4.4.5. Resultados de la estimación de la velocidad media.
A continuación se presenta la tabla con los resultados de la estimación de la velocidad aplicando los
algoritmos de NCC y SAD, usando los dos métodos propuestos, separación por carriles e imagen
completa, así como la velocidad calculada mediante el método manual. Una vez más solo se presentarán
los resultados del video 2; los resultados del video 1 y 3 pueden encontrarse en la sección de anexos (ver
ANEXO N° 2).
VIDEO 2 - NCC (Correlación Cruzada Normalizada)
Imagen Promedio Carriles Imagen Completa Velocidad Manual
[pix/s] [pix/s] [pix/s]
1 1170,000 1560,000 1372,955
2 3120,000 1560,000 1741,286
3 1040,000 668,571 1400,089
4 1560,000 1560,000 1488,636
5 1040,000 1170,000 1051,902
6 1170,000 936,000 1227,774
7 1560,000 1560,000 1526,232
8 1170,000 1560,000 1545,781
9 2340,000 1560,000 1348,000
Tabla 27. Velocidad estimada aplicando el algoritmo NCC (video 2).
50
VIDEO 2 - SAD (Suma de Diferencias Absolutas)
Imagen Promedio Carriles Imagen Completa Velocidad Manual
[pix/s] [pix/s] [pix/s]
1 1170,000 936,000 1372,955
2 1560,000 1560,000 1741,286
3 1040,000 1560,000 1400,089
4 1560,000 1560,000 1488,636
5 1040,000 780,000 1051,902
6 1170,000 936,000 1227,774
7 1560,000 1560,000 1526,232
8 1040,000 1560,000 1545,781
9 1560,000 1560,000 1348,000
Tabla 28. Velocidad estimada aplicando el algoritmo SAD (video 2).
Como se desea diseñar un algoritmo que estime de manera acertada la velocidad media en una vía, se
procede a calcular la velocidad media total del video. Esta velocidad es obtenida computando el promedio
de las velocidades individuales de cada par de imágenes de acumulación generadas. En la Tabla 29 se
presentan los resultados obtenidos al estimar la velocidad media del video 2.
Video 2 - Velocidad Media
Método Carriles Completa
NCC 1574,44 1348,29
SAD 1300,00 1334,67
Manual 1411,41
Tabla 29. Velocidad media del video de entrenamiento 2.
Algoritmos de NCC, SAD y el método manual.
La Tabla 30 contiene los resultados de realizar el proceso anteriormente indicado para los tres videos de
entrenamiento. Como se mencionó al inicio de esta sección, lo que se busca es identificar el algoritmo con
el cual se obtienen resultados más precisos, con el cual se diseñara el algoritmo definitivo que estimará la
velocidad media en la vía. La Tabla 31 resume la eficiencia de las técnicas y métodos aplicados; la
eficiencia fue calculada de la siguiente manera
( )
51
VELOCIDAD MEDIA [PIX/S]
VIDEO NCC SAD
Manual Carriles Completa Carriles Completa
Video 1 567,778 691,022 568,038 612,720 577,114
Video 2 1574,444 1348,286 1300,000 1334,667 1411,406
Video 3 1119,938 1230,095 524,153 500,045 511,465
Tabla 30. Resultados de la estimación de la velocidad en los videos de entrenamiento.
EFICIENCIA
VIDEO NCC SAD
Carriles Completa Carriles Completa
Video 1 98% 80% 98% 94%
Video 2 88% 96% 92% 95%
Video 3 0% 0% 98% 98%
Tabla 31. Eficiencia de la estimación de la velocidad en los videos de entrenamiento.
Como puede observarse, la técnica que mejores resultados presenta al estimar la velocidad media de una
vía es la Suma de Absolutas Diferencias. Como se ve, la técnica NCC presenta dificultades al estimar la
velocidad en el video 3, obteniéndose una eficiencia del 0% (la velocidad estimada es más del doble de la
velocidad esperada hallada manualmente). Si se analiza la tabla que contiene las disparidades calculadas,
y se compara las técnicas SAD y NCC, fácilmente se deduce lo mismo: SAD presenta mejores resultados
que NCC.
En cuanto a los métodos aplicados, el computar la disparidad por carriles presenta un índice más alto de
aciertos que computar la disparidad con el par de imágenes completas. Además, como se menciono en
secciones anteriores, computar por carriles es más rápido que computar utilizando toda la imagen, por lo
que se concluye que la separación por carriles es más óptima que usar las imágenes completas. La
desventaja que tendría separar en carriles las imágenes, es que es necesario definir el número de carriles
que presenta la vía, siendo este número un parámetro que debe ser definido por el usuario.
4.4.6. Observaciones.
Antes de seguir con la sección que detalla el algoritmo propuesto, es necesario mencionar ciertas
observaciones referentes a los resultados obtenidos en los videos de entrenamiento.
a) La eficiencia calculada de los algoritmos NCC y SAD se interpreta como el porcentaje de acierto que
presenta la velocidad estimada con los algoritmos hacia la velocidad hallada manualmente. Aquí cabe
mencionar que la velocidad que se halla manualmente puede presentar cierto grado de error, puesto que
está sujeta a la precisión de la persona que la hallo. La idea de presentar esta eficiencia es la de
exteriorizar una referencia que indica que tan acertado es cierto algoritmo en base al cálculo minucioso
por el método manual, y de esta manera escoger el algoritmo que posiblemente es más eficiente al resolver
el problema planteado.
b) El método de los carrieles supone que los automóviles se desplazan dentro de los carriles delimitados
en la vía; cuando un auto transita sobre la línea que delimita los carriles, se producirán resultados
52
posiblemente erróneos, ya que el auto podrá encontrarse en la dos imágenes generadas al separar la vía en
carriles.
Figura 37. Duplicación al separar la vía en carriles.
A la izquierda, imagen A 33 del video de entrenamiento 3. Al separar la imagen en dos carriles, se obtiene la imagen A33.1 (en rojo) y A33.2 (en verde). Como se observa, el automóvil de color rojo se encuentra sobre la línea de separación del carril; al partir la imagen en los dos carriles, el
automóvil en cuestión queda contenido en ambas particiones. Esto genera un error de cálculo ya que el algoritmo supone la existencia de dos
automóviles diferentes.
c) Es obvio que el método de los carriles supone que el automóvil atraviesa el video en línea recta; de lo
contrario, aparecería una disparidad a lo largo del eje x, y como fue mencionado en secciones anteriores,
el trabajo fue desarrollado bajo ciertas hipótesis, siendo esta una de ellas (disparidad solo en el eje
vertical). Esta condición es más crítica al realizar la separación de carriles, ya que es posible encontrar
casos de oclusión a causa de separar la imagen en carriles, puesto que puede ser que un auto se encuentre
en el carril 1 al cruzar por la línea de acumulación A, y a causa de su movimiento a lo largo del eje
horizontal, aparezca en el carril 2 al cruzar la línea de acumulación B, generándose una oclusión.
d) Al separar por carriles es necesario tener en cuenta el caso en donde solo hay automóviles en uno de los
carriles. Esto principalmente a la hora de calcular el promedio entre los dos carriles, ya que si en el carril 2
no hay automóviles, no es posible realizar el promedio de manera convencional; si se hiciera de esta
manera, el resultado obtenido sería la mitad del valor real. El siguiente ejemplo aclara lo anteriormente
mencionado: suponer que se está ante la presencia de un par de imágenes que presentan este tipo de caso
[fig. 27]. Al computar la disparidad entre el par de imágenes, los resultados indicaran que en el carril 1 la
disparidad es de , mientras que la disparidad en el carril 2 es de 0. Si se computara el promedio entre los
carriles, la disparidad total sería de
, siendo este valor la mitad de la disparidad que se espera
( ).
Figura 38. Ausencia de vehículos en un carril. Caso mencionado en el numeral d. Como se observa, al separar la imagen en dos carriles, solo en el carril A#.1 hay un auto, mientras que en el
carril A#.2 no.
e) Es posible que al generarse los pares de imágenes de acumulación de cierto video, halla imágenes que
no presenten automóviles. Lo que se espera es que la disparidad, en estos casos, sea nula, ya que no hay
autos; el problema yace en que los algoritmos algunas veces calculan una disparidad entre el par de
imágenes “vacías” a causa de las diferencias existentes entre el fondo. Afortunadamente, en la mayoría de
las imágenes en que se presenta esto, la disparidad es bastante alta, por lo que pueden ser identificados
53
fácilmente estos casos. Cabe mencionar que este caso en particular se presentaba solo con la técnica NCC,
razón por la cual la eficiencia de esta técnica en el video 3 es nula.
Figura 39. Disparidad nula.
Par de imágenes de acumulación del video de entrenamiento 3. A la izquierda, la imagen A6; a la derecha, imagen B6. La disparidad esperada es de cero, pero debido a la diferencia entre el fondo del par de imágenes, el algoritmo de NCC encontrar una disparidad de 253 pixeles.
f) Finalmente, cabe volver a mencionar que cuando los automóviles se detienen sobre una de las líneas de
acumulación, el cálculo de la disparidad es prácticamente imposible. Esto sucede en videos de vías con
trancones considerables, o sobre vías con semáforos. Estos casos pueden ser reducidos si se sitúan las
líneas de acumulación no muy separadas, o si las imágenes de acumulación se capturan sobre más cuadros
del video.
Figura 40. Efecto del frenado sobre las líneas de acumulación.
Ejemplos del caso mencionado en el literal f. A la izquierda, la imagen A7 del video de entrenamiento 1. A la derecha, la imagen B7.
En base a los resultados obtenidos con los videos de entrenamiento, la decisión tomada fue la de aplicar el
algoritmo de la Suma de Diferencias Absolutas por carriles. En la siguiente sección, se desarrollará el
diseño de este algoritmo definitivo para la estimación de la velocidad media, con los pasos a realizar y las
consideraciones necesarias para su diseño.
54
55
5. ALGORITMO PROPUESTO PARA LA ESTIMACIÓN DE LA VELOCIDAD
Con base a los resultados obtenidos con los videos de entrenamientos, y a otras pruebas realizadas a lo
largo del desarrollo del trabajo, se concluye que el método más eficiente para estimar la velocidad media
utilizando imágenes de acumulación espacio temporal es el algoritmo de SAD por carriles. El algoritmo
diseñado consta de tres partes fundamentales: lectura del video, generación de las imágenes de
acumulación y estima de la velocidad. En la Figura 41 pude observarse el diagrama en bloques completa
del algoritmo propuesto.
Figura 41. Diagrama en bloques del algoritmo propuesto.
A continuación se expondrá brevemente el funcionamiento del algoritmo diseñado, separándolo en las tres
etapas previamente mencionadas. El código fuente del algoritmo se encuentra en la sección de anexos
(¡Error! No se encuentra el origen de la referencia.), junto con las funciones creadas específicamente
para la solución del problema.
5.1. ENTRADAS Y SALIDAS DEL ALGORITMO PROPUESTO.
El algoritmo recibe como “entradas” la ruta del video y cuatro parámetros definidos por el usuario, los
cuales deben ser extraídos según las características del video; estos parámetros son: número de carriles en
el video, inicio de la línea de acumulación A, distancia entre las líneas de acumulación y el número de
cuadros que conformaran las imágenes de acumulación.
56
ENTRADAS O PARAMETROS A DEFINIR
DESCRIPCION
Ruta del video Indica la localización del video en el equipo.
Número de carriles Cuantos carriles presenta la vía en el video.
Inicio línea de acumulación A
Coordenada vertical en donde se situara la primera
línea de acumulación (línea A), a partir de la cual
se generan las imágenes A’s del par.
Separación entre las líneas de acumulación
Distancia entre la línea A y la línea B de
acumulación. Sumado este valor a la coordenada de
inicio de la línea A, se obtiene la coordenada de
inicio de la línea B. Allí se posicionará la segunda
línea de acumulación, a partir de la cual se generan
las imágenes B’s del par.
Número de cuadros a computar
Este número indica cuantos cuadros serán
acumulados en cada imagen de acumulación. Este
número da el largo (numero de filas) que tendrán
los pares de imágenes de acumulación generadas.
Tabla 32. Entradas del algoritmo propuesto.
Como salidas, son creados dos archivos de texto y almacenadas las imágenes de acumulación espacio-
temporal generadas. El primer archivo de texto contiene las características propias del video y los
parámetros definidos para la creación de las imágenes de acumulación; el segundo almacena los cálculos
de la disparidad y la velocidad estimada de cada una de las imágenes de acumulación, así como la
disparidad y velocidad media del video.
SALIDAS
DESCRIPCION
Imágenes de acumulación
(extensión JPG)
El algoritmo almacena, en la ruta especificada, las
imágenes de acumulación espacio-temporal
generadas. El número de imágenes creadas
depende directamente del numero de cuadros por
segundo (FPS) del video, del número de cuadros a
computar por imagen y de la duración del video.
Archivo “Parámetros”
(extensión TXT)
Archivo de texto que contiene información sobre
las características del video (dimensiones, FPS,
número de cuadros del video, duración) y
parámetros definidos para la generación de las
imágenes de acumulación espacio-temporal
(dimensiones, cantidad de imágenes generadas,
coordenadas línea A y línea B, separación entre las
líneas, tiempo real analizado del video).
Archivo “Velocidades”
(extensión TXT)
Archivo de texto que almacena las disparidades
calculadas y las velocidades estimadas de cada par
de imágenes de acumulación espacio-temporal que
conforman el video. Asimismo, el archivo contiene
la disparidad y la velocidad media estimada de todo
el video.
57
Tabla 33. Salidas del algoritmo propuesto.
5.2. LECTURA DEL VIDEO.
La primera parte del algoritmo se encarga de leer el video, especificando la ruta de acceso del mismo. Una
vez leído, es caracterizado para extraer información necesaria, como la duración, la tasa de captura del
video y las dimensiones. Son dichas características, junto con otros parámetros, los que se escriben en el
archivo de texto de salida “Parámetros”. El video es luego procesado cuadro por cuadro para la generación
de los pares de imágenes de acumulación.
5.3. GENERACIÓN DE LAS IMÁGENES DE ACUMULACIÓN ESPACIO-TEMPORAL.
El siguiente paso es la creación de las imágenes de acumulación del video. Primero son definidos los
parámetros previamente descritos: número de carriles, inicio línea de acumulación A, separación entre las
líneas de acumulación y número de cuadros por imagen. La idea es la de comenzar a recorrer los cuadros
del video, almacenando los pixeles que se encuentran sobre la línea A y B en dos imágenes.
En primer lugar es necesario conocer el número de imágenes de acumulación que serán generadas; este
dato se conoce con la relación entre los parámetros “numero de cuadros por imagen” y el “numero de
cuadros del video”, de la siguiente manera:
Esta relación calcula cuantas imágenes, con un número de filas igual a , se pueden generar
con el numero de cuadros totales del video ( ). El número de imágenes que pueden ser
generadas del video da la pauta para el número de iteraciones que se deben hacer.
Una vez hallado este número, son creadas dos matrices con las dimensiones adecuadas, las cuales
posteriormente se convertirán en el par de imágenes de acumulación. Estas matrices tienen dimensiones
.
Para crear el par de imágenes de acumulación es necesario acumular los pixeles que se encuentran sobre
las líneas de acumulación en cada uno de los cuadros, acumulando solamente la información de N cuadros
del video por par de imágenes, donde N esta dado por el parámetro . Esta información es
acumulada en las matrices previamente creadas (matriz a y b), generando así el par de imágenes de
acumulación. Finalmente, estas imágenes son guardadas en la ruta especificada utilizando la extensión
‘.jpg’.
5.4. ESTIMACIÓN DE LA VELOCIDAD MEDIA.
58
Cada vez que se ha generado un par de imágenes de acumulación, se procede al cálculo de la disparidad
entre ellas y, posteriormente, se estima la velocidad. Para esto es necesario separar cada una de las
imágenes en carriles, para luego procesar los carriles y calcular la disparidad, y así estimar la velocidad
por carril. Finalmente se obtiene el promedio entre las velocidades estimada de los carriles del par de
imágenes de acumulación.
Para generar los carriles se divide cada imagen en N partes iguales, siendo este N el número de carriles
previamente definido. Cada uno de los pares de carriles obtenidos es luego procesado por el algoritmo de
Sumas de Diferencias Absolutas, el cual genera un vector de correspondencias entre el par de imágenes.
Este vector luego es analizado para identificar el punto en donde la correspondencia fue máxima entre el
par de imágenes.
Finalmente, se obtiene la disparidad promedio por carriles de cada uno de los pares de imágenes, junto con
la estimación de la velocidad por carriles. Con la disparidad promedio por carriles del par de imágenes de
acumulación es calculada la velocidad. Esto se reduce a implementar la ecuación previamente descrita
Donde S es la separación entre las líneas de acumulación, FPS es la tasa de captura del video (cuadros por
segundo) y d es la disparidad promedio calculada.
Estos dos cálculos son luego escritos en el archivo de salida “Velocidades.txt”, con lo cual se logra
registrar la disparidad media y la velocidad estimada de cada par de imágenes de acumulación. Al final, se
almacena la disparidad media total y la velocidad estimada media de todo el video.
Cuando el algoritmo termina de computar un video especifico, toda la información necesaria queda escrita
en los archivos de salida. Para corroborar luego la eficiencia que se tiene al estimar la velocidad media de
la vida, es necesario obtener el archivo con las disparidades halladas de manera manual para obtener la
velocidad media manual de todo el video, y así comparar con los resultados que arroja el algoritmo
diseñado.
Figura 42. Archivo de salida.
“Velocidades.txt” de uno los resultados.
59
5.5. IMPLEMENTACIÓN.
A continuación se resumen las funciones diseñadas que hacen parte de algoritmo propuesto para la
estimación de la velocidad media. Se han listado las entradas y salidas de cada función, junto con una
breve descripción de su funcionamiento. En la Figura 43 se observa la evolución del proceso llevado a
cabo por el algoritmo propuesto.
NOMBRE DESCRIPCION ENTRADAS SALIDAS
EstimaVelocidad
Algoritmo final diseñado que
estima la velocidad media en
un video.
Ruta del Video.
Número de Carriles.
Inicio línea de acumulación A.
Separación entre las líneas de
acumulación.
Número de cuadros a acumular.
Pares de imágenes de
acumulación.
Archivo de texto
“Parámetros”
Archivo de texto
“Velocidades”.
sad()
Función que calcula la suma
de diferencias absolutas entre
dos imágenes o matrices.
Imagen A.
Imagen B.
Vector con pesos de
“semejanza” o
correspondencias.
disparity2()
Función que obtiene la
disparidad entre las imágenes,
utilizando el resultado de la
función sad().
Vector de pesos de
“semejanza”.
Disparidad.
meanCarril()
Función que computa el
promedio entre las
disparidades por carriles,
condicionando el promedio a
disparidades diferentes de 0.
Vector con las disparidades
halladas por carril.
Disparidad promedio del par
de imágenes.
Tabla 34. Algoritmos y funciones diseñadas para la solución del problema.
(a)
(b)
60
(c)
(d)
Figura 43. Evolución del proceso para la estima de la velocidad media en una vía.
(a) Cuadro 200 del video de prueba #4. (b) Par de imágenes de acumulación; imagen A1 (izquierda) e imagen B1 (derecha). (c) Imágenes de
acumulación separadas en carriles; para este caso, dos carriles. (d) Gráfica de los vectores de correspondencias de cada uno de los carriles.
Carril A 1 Carril B 1
Carril A 2 Carril B 2
Carril A 1 Carril B 1
Carril A 2 Carril B 2
0 100 200 300 400 500 6000
500
1000
1500
2000
2500
3000
3500
4000
4500
X: 304
Y: 3569
SAD - Carril 1
0 100 200 300 400 500 6000
1000
2000
3000
4000
5000
6000
7000
X: 303
Y: 4903
SAD - Carril 2
61
6. RESULTADOS.
Una vez diseño el algoritmo, es tiempo de obtener los resultados al estimar la velocidad media en una vía
utilizando imágenes de acumulación espacio-temporal.
6.1. VIDEOS DE PRUEBA CAPTURADOS.
Para esto, fueron tomados 10 videos sobre la calles de la ciudad de Bogotá. Los videos fueron tomados en
3 lugares diferentes, con el fin de comprobar el funcionamiento del algoritmo en diferentes condiciones.
Las vías elegidas fueron la séptima, el parque nacional y el norte de la autopista. Los videos fueron
tomados desde puentes peatonales y puentes vehiculares, de manera perpendicular a la vía, procurando
que la totalidad de la vía se encontrara dentro del tamaño del video. Unos videos fueron tomados con la
cámara Sony PlayStationEye (30 y 125 fps), y los restantes con una cámara digital Sony Cyber-shot 5.1
Mega Pixeles (25 fps). Las características de los videos se resumen en la Tabla 35.
DURACION RESOLUCION FPS CARRILES LUGAR
Video 1 00:03:00 640X480 30 2 Puente PN
Video 2 00:02:31 640X480 30 3 Séptima
Video 3 00:02:14 640X480 25 2 Autopista Cll 142
Video 4 00:03:17 640X480 25 2 Autopista Cll 138
Video 5 00:03:48 640X480 25 2 Autopista Cll 138
Video 6 00:01:48 640X480 25 2 Autopista Cll 142
Video 7 00:01:39 640X480 25 2 Autopista Cll 134
Video 8 00:02:03 640X480 25 2 Autopista Cll 134
Video 9 00:01:35 640X480 25 2 Autopista Cll 134
Video 10 00:01:18 320X240 125 2 Puente PN
Tabla 35. Características de los videos capturados.
Los resultados obtenidos al estimar la velocidad media de los vehículos en los videos se listan a
continuación.
Cuadros
acumulados
por imagen
Imágenes de
acumulación
generadas
Coordenada
vertical de
la línea A
Coordenada
vertical de
la línea B
Separación
línea de
acumulación
Tiempo
real
analizado
Video 1 600 9 100 260 160 pix 00:03:00
Video 2 600 7 10 410 400 pix 00:02:20
Video 3 300 11 40 240 200 pix 00:02:12
Video 4 300 16 40 240 200 pix 00:03:12
Video 5 300 19 40 240 200 pix 00:03:48
Video 6 300 9 40 240 200 pix 00:01:48
Video 7 300 8 20 240 220 pix 00:01:36
Video 8 300 10 20 240 220 pix 00:02:00
Video 9 300 7 20 190 170 pix 00:01:24
Video 10 600 16 2 192 190 pix 00:01:16
Tabla 36. Parámetros definidos para estimar la velocidad.
62
En la Tabla 36 se listan los parámetros referentes a las imágenes de acumulación espacio-temporal. El
tiempo real analizado hace referencia al tiempo del video computado para la estimación de la velocidad;
en algunos casos, el video no fue computado en su totalidad. Esto se debe a que al dividir el número de
cuadros totales del video entre el número de cuadros que se acumulan por cada par de imágenes, sobraban
un número reducido de cuadros que no alcanzaban a conformar una imagen completa de acumulación;
para lograr el análisis completo de los videos, sería necesario rellenar con ceros (negro) el resto del último
par de imágenes de acumulación, con el fin de completar la dimensión requerida.
6.2. RESULTADOS OBTENIDOS.
En la Tabla 37 y la Tabla 38 se resumen los resultados obtenidos al aplicar el algoritmo propuesto para la
estimación de la velocidad media en una vía. Como puede observarse, el algoritmo presenta eficiencias del
90%, al compararlas con el cálculo de la velocidad manualmente; esto indica que el algoritmo está
estimando una velocidad media bastante acertada comparándola con la obtenida manualmente.
DISPARIDAD
MEDIA
[pix]
VELOCIDAD
ESTIMADA
[pix/s]
VELOCIDAD
“MANUAL”
[pix/s]
Video 1 4 1388.82 1299.85
Video 2 58.38 542.72 601.35
Video 3 6.630 1640.08 1861.25
Video 4 2.781 1849.70 1866.93
Video 5 2.658 1956.14 1885.01
Video 6 3.000 1694.44 1939.65
Video 7 5.812 996.51 871.59
Video 8 8.250 684.58 626.59
Video 9 5.571 772.91 748.95
Video 10 48.25 552.540 604.712
Tabla 37. Velocidad y disparidad media estimadas por el algoritmo propuesto.
EFICIENCIA
[%]
Video 1 93
Video 2 90
Video 3 88
Video 4 99
Video 5 96
Video 6 87
Video 7 86
Video 8 91
Video 9 97
Video 10 91
TOTAL 91.8
Tabla 38. Eficiencia del algoritmo propuesto al estimar la velocidad media.
63
6.3. ANALISIS DE RESULTADOS.
Si se examinan los resultados del video 7 con el cual la eficiencia del algoritmo fue de un 86%, siendo la
eficiencia más baja entre los 10 videos, puede encontrarse que las características del fondo presentan
algunas irregularidades.
El video fue tomado sobre el puente vehicular de la calle 134 con autopista; en un día en el cual
recientemente había llovido en el sector, por lo que la vía presentaba acumulación de agua. Esta condición
en particular ocasiono que el fondo sobre las líneas de acumulación fuera bastante diferente, dificultando
el cálculo de la disparidad entre el par de imágenes y obteniéndose un bajo porcentaje de acierto.
Asimismo, factores como la líneas separadoras de los carriles y la iluminación de la vía (presencia de
sombras debido al puente vehicular y los mismo vehículos) ocasionan ciertas desviaciones al calcular la
disparidad.
Figura 44. Irregularidades en el fondo.
Par de imágenes de acumulación número 3 del video 7. Se observa la acumulación de agua en la imagen B (azul).
Las eficiencias obtenidas varía entre el rango del 86% hasta el 99%, siendo estos resultados bastante
prometedores e indicando que el algoritmo diseñado está cumpliendo con el objetivo propuesto, estimando
la velocidad media de la vía utilizando técnicas de emparejamiento de imágenes. Esto conlleva una gran
reducción de tiempo al compararse con el tiempo invertido calculando las velocidades manuales.
Como se mencionó, el cálculo manual debe hacerse ubicando puntos referencia sobre cada vehículo,
examinando el video cuadro por cuadro. En este proceso puede tardarse una persona, con un video de
aproximadamente 4000 cuadros, de 5 a 10 minutos (dependiendo en gran parte de la densidad vehicular
del video) y asumiendo que ese está usando el algoritmo que facilita este proceso. El algoritmo que estima
la velocidad emparejando las imágenes invierte aproximadamente de 1 a 2 minutos, dependiendo este
valor del número de imágenes de acumulación generadas y el número de carriles en la vía. Como se
observa, la reducción es bastante considerable, y los resultados que se obtienen son aproximados a los
obtenidos manualmente.
6.4. RESTRICCIONES Y RECOMENDACIONES.
A continuación son listadas algunas restricciones del algoritmo propuesto que deben ser tomadas en
cuenta para obtener resultados eficientes y adecuados.
La captura de los videos debe de hacerse sobre la vía posicionando la cámara de manera
perpendicular a la misma. Lo ideal es capturar la totalidad de la vía y realizar dicha captura sobre
64
un punto elevado, como un puente peatonal o vehicular. Es recomendable realizar las capturas con
buena iluminación.
Los videos deben capturarse en tramos de vía que preferiblemente no presenten alguna
obstrucción vehicular. Debe evitarse muestras donde el tráfico se detenga totalmente sobre la línea
de captura, ya que esto genera imágenes de acumulación de difícil análisis con las que se obtienen
resultados errados.
Para resultados mejores, es preferible captura los videos a una tasa de captura de no menos de 25
cuadros por segundo. Con tasas más bajas se pierde precisión al estimar la velocidad media de la
vía.
Debido a la restricción “epipolar” vertical asumida para el desarrollo del proyecto, incurrirán en
resultados errados las muestras donde los vehículos realicen cambios de carriles. Esta es una
hipótesis bastante fuerte con la que se trabajó, por lo que el algoritmo no es capaz de identificar
desplazamientos horizontales.
La posición de la línea de acumulación está determinada por la tasa de captura de los videos. Entre
mayor sea la taza de captura, es posible disminuir la separación entre la líneas, aumentándose la
precisión del algoritmo. Si la tasa de captura es muy baja, es recomendable dejar una separación
entre las líneas más grande; esto ocasiona menor precisión en los resultados.
Es recomendable situar las líneas de acumulación sobre segmentos de la vía donde la calle tenga
las mismas características (evitar huecos, fracturas o sombras). De esta manera, es posible
considerar el fondo en ambas imágenes de acumulación como si fuera el mismo, facilitando el
cálculo de la disparidad entre las imágenes.
65
7. CONCLUSIONES
El algoritmo propuesto para estimar la velocidad media en una vía, utilizando imágenes de acumulación
espacio-temporal cumple con dicha tarea de manera eficiente. Según los resultados obtenidos, el algoritmo
es capaz de estimar una velocidad media bastante aproximada a la velocidad que se obtiene por métodos
manuales, reduciendo el tiempo invertido para el cálculo de la velocidad. Como se mencionó
anteriormente, el cálculo manual es un proceso tedioso, delicado y demorado, y el algoritmo propuesto
está presentando resultados bastante acertados y en mucho menor tiempo.
Para corroborar a cabalidad el alcance del algoritmo propuesto para tal tarea, es necesario comparar los
resultados entregados por el algoritmo con un método actual para el cálculo de la velocidad. Esto asumiría
la comparación con técnicas directas basadas en el efecto Doppler (pistolas de velocidad) o métodos
indirectos (tomando tiempos en que un auto recorre un tramo de calle definida). En caso de concluirse que
él algoritmo es eficiente ante métodos “físicos” de medición, la implementación de un sistema para la
medición de la velocidad media en una vía, disminuyendo costes, aumentando la eficiencia y abriéndose la
posibilidad de la toma de datos de tránsito en tiempo real.
Hablando en términos de inconvenientes y posibles mejoras del algoritmo propuesto, en necesario
mencionar dos aspectos importantes que afectan el desempeño del algoritmo a nivel de precisión: la tasa
de captura de los videos (o cuadros por segundo) y el fondo.
La tasa de captura afecta directamente la precisión de algoritmo, de modo que es posible afirmarse que
entre mayor sea la tasa de captura del video, mayor será la precisión del algoritmo. Esto se debe a que con
una tasa de captura alta, se tiene mayor información en el video, traduciéndose esto en una cantidad más
elevada de datos que permiten identificar la posición (en este caso vertical) del automóvil de manera más
precisa.
Figura 45. Ejemplo a 4 FPS.
Figura 46. Ejemplo a 9 FPS.
Para aclarar de mejor manera lo anteriormente mencionado, supóngase que se han tomado dos videos
sobre la misma vía y al mismo tiempo, con dos cámaras totalmente idénticas; la primera está configurada
66
a una tasa de captura de 4 cuadros por segundo y la segunda a una tasa de captura de 9 cuadros pos
segundo. Los videos tienen una duración de un segundo. Al observar cuadro a cuadro los videos, lo que se
esperaría ver se resumen en la Figura 45 y la Figura 46. Como puede notarse, la posición del automóvil
rojo se identifica de manera más precisa en el video a 9 FPS que en el de 4 FPS. Esto se debe a que existen
más cuadros entre el inicio y el fin del video, y como consecuencia el seguimiento del auto es más exacto
en el video tomado a 9 FPS. El video a 4 FPS presenta un auto que recorre la misma distancia, y solo es
posible determinar su posición instantánea en 4 cuadros; mientras que el video a 9 FPS es posible
determinar la posición instantánea del auto en 9 cuadros.
La tasa de captura de los videos afecta entonces directamente el algoritmo, ya que este se basa en la
posición de dos líneas fijas en la vía sobre las cuales se acumulan las imágenes con las que se realiza el
análisis para estimar la velocidad. La idea de tomar los videos a una tasa de captura más alta es la de
aumentar la posibilidad que sobre la línea de acumulación A y B se almacene la información justo cuando
el auto está cruzando las líneas; esto es, cuando la parte delantera del auto este sobre las líneas.
Esto se traduce en precisión, ya que lo que se desea es determinar el tiempo invertido por una parte
determinada del auto (parachoques, llanta, parabrisas, etc.) en cruzar desde la línea A hasta la línea B; lo
importante aquí es resaltar que para mejor precisión de la medida, debe registrarte el paso del parachoques
delantero por la línea A hasta el que el mismo parachoques delantero (mismo punto) cruce la línea B.
Figura 47. Precisión vs FPS.
Líneas de acumulación situadas en el mismo lugar, sobre el video a 4 FPS (rojo) y a 9 FPS (azul). El número en la esquina superior indica el número de cuadro del video. Se observar claramente que en el video a 9 FPS, el bumper delantero es acumulado en ambas líneas.
Es por eso que con un video tomado a 4 FPS, la precisión de la medida es menos precisa que con un video
tomado a 9FPS. La razón es que al situar las líneas con un video a baja tasa de captura, se disminuye la
probabilidad que lo que se almacena sobre las ambas líneas de acumulación sea la misma parte del
vehículo (Figura 47).
En lo referente al fondo, a lo largo del documento se mencionan situaciones problemáticas que pueden
presentarse. Una posible solución consiste en implementar un algoritmo de segmentación de fondo. Este
algoritmo se encargaría de identificar el fondo sobre el video, segmentarlo y eliminarlo de la escena. De
esta manera, con la ausencia del fondo, las imprecisiones a la hora del emparejamiento del par de
imágenes se disminuirían de manera radical.
Otro aspecto importante a mencionar es la velocidad de la ejecución del algoritmo. En un principio se
habló de la velocidad (en segundos) que tomaba obtener la disparidad entre el par de imágenes, al evaluar
las 4 técnicas expuestas, pero nunca se mencionó un coste computacional ni un tiempo de ejecución del
algoritmo propuesto. Esto se debe a la decisión de implementar el algoritmo sobre MATLAB, y a que
67
estos parámetros están sujetos de manera directa a las capacidades de la maquina sobre la cual se ejecutan.
Es por eso que hablar de “que tan veloz” es el algoritmo estaba fuera de contexto. A pesar de que no se
habla de un tiempo medio de ejecución, es posible reducir este tiempo relativo de manera significativa.
Esta reducción en el tiempo de ejecución se puede logara al reducir el número de operaciones a computar.
Como se mencionó, el computar la imagen en carriles disminuye levemente el tiempo de ejecución. De
esta manera, proponer un método de carriles aún más selectivo, reduciendo el ancho de cada carril, reduce
el tiempo de ejecución del algoritmo. Actualmente, el proceso llevado a cabo solo consta de dividir el
ancho la imagen en N partes iguales, siendo N el número de carriles en la vía; de esta manera, si la vía
presenta dos carriles, el ancho total de la imagen de acumulación es partida en dos imágenes, con ancho
igual a la mitad del ancho original. Si se redujera este ancho de los carriles, en número de operaciones a
computar se reduce en un factor igual a
( )
Esto es, en vez de tener dos imágenes de 640X300 pixeles, podrían tenerse dos imágenes de 640X150
pixeles. De esta manera, en vez de computarse ( ) operaciones, se
estarían computando ( ) operaciones. Esta propuesta se ilustra en la
Figura 48.
Figura 48. Propuesta para la reducción del tiempo de ejecución. Arriba, imagen de acumulación original. Abajo, la separación por carriles actual contra la separación por carriles selectiva.
El inconveniente al aplicar esta propuesta es que la hipóstasis que supone que los automóviles se mueven
en línea recta sobre el eje vertical es más fuerte. En este caso es más crítico cuando un auto se mueve a lo
largo del carril, ya que es posible generar un efecto de oclusión (un objeto aparece en la vista A de la
escena y no en la vista B) cuando el automóvil se realiza un desplazamiento horizontal considerable sobre
el carril y la partición por carriles es muy selectiva.
Finalmente, quedan abiertas posibilidades para trabajos posteriores en base a este. En primer lugar podría
pensarse de implementar un algoritmo como este, con algunas modificaciones, en un sistema en tiempo
68
real, en el cual la captura de los videos y la obtención de la información se realicen de manera simultánea.
De esta manera es posible registrar variables de tráfico en tiempo real y tomar decisiones administrativas
para el manejo del tráfico, como la sincronía de los semáforos o algún tipo de señalización pertinente.
Otra posibilidad es la de trabajar a partir del algoritmo propuesto para la estimación de la velocidad, y
junto a un sistema de segmentación vehicular e identificación de placas, diseñar un sistema capaza de
generar comparendos automáticos por excesos de velocidad, utilizando la velocidad calculada individual
de los automóviles, previamente registrados mediante la identificación de la placa.
69
8. BIBLIOGRAFIA
[1] US Departament of Transportation: Traffic Detector Handbook, Georgetown Pike, VA: Federal
Highway Administration, 2006.
[2] Ingeniería de Tráfico: Parámetros fundamentales. Departamento de Ingeniería Mecánica, Universidad
Carlos III de Madrid. [En línea]. <http://ocw.uc3m.es/ingenieria-mecanica/ingenieria-de-
transportes/material-de-clase-1/ingenieria_trafico.pdf>
[3] JOSE, M. y PARDILLO, M. Apuntes de ingeniería de tráfico. Madrid, España: E.T.S. Ingenieros de
Caminos, Canales y Puertos (2003). [citado el 23-08-2011]
[4] Use of Speed and Red-Light Cameras for traffic enforcement: Guidance on deployment, visibility and
signing. Department for Transport. Londres, Inglaterra. Circular 01/2007. [En línea].
<http://www.direct.gov.uk/prod_consum_dg/groups/dg_digitalassets/@dg/@en/documents/digitalasset/dg
_067427.pdf >
[5] CALDERON BOCANEGRA, Francisco Carlos y URREGO NIÑO, Germán Enrique. Conteo
automático de vehículos. Bogotá DC, 2008. Tesis de pregrado (Ingeniero Electrónico). Pontificia
Universidad Javeriana. Facultad de Ingeniería. Departamento de Electrónica.
[6] CALDERON BOCANEGRA, Francisco Carlos. Sistema de adquisición de parámetros de tráfico
vehicular. Bogotá DC, 2010. Tesis de maestría (Magister en Ingeniería Electrónica). Pontificia
Universidad Javeriana. Facultad de Ingeniería. Departamento de Electrónica. p. 23 -36.
[7] ADELSON, Edward H. and BERGEN, James R. Spatiotemporal energy models for the perception of
motion. En: Journal of the Optic Society of America A. Vol 2, No. 2 (Feb., 1985)
[8] SOUDI, Aissa and ESSAFI, Hassane. Spatio-Temporal video slice edges analysis for shot transition
detection and classification. En: World Academy of Science, Engineering and Technology 28 (2007).
[9] HIRAHARA, Kiyotaka and IKEUCHI, Katsushi. Detection of street-parking vehicles using line scan
camera and scanning laser range sensor. IEEE (2003).
[10] CHONG-WAH, Ngo, TING-CHUEN, Pong and HONG-JIANG, Zhang. Motion analysis and
segmentation through spatio-temporal slices processing. En: IEEE transactions on image processing: a
publication of the IEEE Signal Processing Society. Vol. 12 (2003)
[11] CHONG-WAH, Ngo,. Analysis of spatio-temporal slices for video content representation. Hong
Kong, 2000. Tesis de doctorado (Doctor of Philosophy in Computer Sciencie). The Hong Kong University
of Science and Technology. Department of Computer Science.
[12] BRADSKI, Gary and KAEHLER, Adrian. Learning OpenCV. United States of America: O’Reilly
Media, 2008. p. 415-444.
[13] LECUMBERRY RUVERTONI, Federico. Cálculo de disparidad y segmentación de objetos en
secuencias de video. Montevideo, 2005. Tesis de maestría (Magister en Ingeniería Eléctrica). Universidad
de la República. Facultad de Ingeniería. Departamento de Electrónica. p. 3-20.
70
[14] LECUMBERRY RUVERTONI, Federico. Cálculo de disparidad en imágenes estéreo, una
comparación. III Workshop de Computación Gráfica, Imágenes y Visualización. Universidad de la
República, Uruguay.
[15] BARNARD, Stephen T. and THOMPSON, William B. Disparity Analysis of Images. En: IEEE
transactions on pattern analysis and machine intelligence. Vol PAMI-2, No. 4 (July, 1980).
[16] SATORRE, Rosanna, COMPAÑ, Patricia, BOTIA, Antonio y RIZO, Ramón. Estimación de
disparidad en visión estereoscópica mediante la integración de diversas técnicas combinadas con
multirresolución. Grupo i3a: Informática Industrial e Inteligencia Artificial, Departamento de Ciencia de
la Computación e Inteligencia Artificial. Universidad de Alicante.
[17] MARR, David and POGGIO, Tomaso. A computational theory of human stereo vision. En:
Proceedings of the Royal Society of London. Series B, Biological Sciencies. Vol 204, No. 1556. (May.,
1979). p. 301-328.
[18] DRAPER, Bruce A. Camera Models: Projection & Lens. CS510, Lecture #2 (Jan., 2002). [En línea].
<http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/DRAPER2/L01.pdf>
[19] YANG, Allen Y. Image Formation and Camera Models. Berkley, EE 225b (Feb., 2007). [En línea]
<http://inst.eecs.berkeley.edu/~ee225b/sp07/lectures/lec12.pdf>
[20] TSAIG, Yaakov. Automatic Segmentation of Moving Objects in Video Sequences. Tel-Aviv, 2001.
Tel-Aviv University. School of Matehmatical Sciencies. Department of Computer Science.
[21] LANG, Felicitas and FÖRSTNER, Wolfgang. Matching Techniques. Bonn, 1995. Universität Bonn.
Institute für Photogrameetrie. [En línea] <http://www.ipb.uni-bonn.de/fileadmin/publication/
papers/1995/lang95.matching.pdf>
[22] TAKIMA SHIBAHARA, Takafumi Aoki and HIROSHI NAKAJIMA, Koji Kobayashi. A sub-pixel
stereo correspondence technique based on 1D phase-only correlation. En: International Conference of
Image Processing. IEEE, V – 221 (2007). [En línea] <http://nguyendangbinh.org/Proceedings/ICIP/
2007/pdfs/0500221.pdf >
[23] CHANGMING, Sun. Fast stereo matching using rectangular subregioning and 3D maximun-surface
techniques. En: International Journal of Computer Vision. Vol 47, No. 1/2/3 (May, 2002). p. 99-117.
[24] LANE, R.A. and THACKER, N.A. Tutorial: Overwiew of Stereor Matching Research. En: Tina
Memo No. 1994-001. [En línea] <http://www.tina-vision.net/docs/memos/1994-001.pdf>
[25] CHANGMING, Sun. Fast algorithms for stereo matching and motion estimation. En: Australia-Japan
Advance Workshop on Computer Vision. 9-11 (2003).
[26] HANNAH, Marsha Jo. Digital stereo image matching techniques. USA. Commission III/4: Artificial
Intelligence Center, SRI International. [En línea] <http://www.isprs.org/proceedings/XXVII/congress/
part3/280_XXVII-part3.pdf>
[27] OWENS, Robyn. Lecture 11: Stereo matching. [En línea] <http://homepages.inf.ed.ac.uk/rbf/
CVonline/LOCAL_COPIES/OWENS/LECT11/node5.html> [citado el 27-12-2011]
[28] OWENS, Robyn. Lecture 11: Some existing matching algorithms. [En línea]
<http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/LECT11/node6.html> [citado el
28-12-2011]
71
[29] BHUSNURMATH, Arvind and TAYLOR, Camillo J. Solving stereo matching problems using
interior point methods. University of Pennsylvania. [En línea]
<http://www.cis.upenn.edu/~cjtaylor/PUBLICATIONS/pdfs/Bhusnurmath3DPVT08.pdf>
[30] LEUNG, Carlos, APPLETON, Ben and CHANGMING, Sun. Fast stereo matching by iterated
Dynamic programming and quadtree subregioning. Australia. [En línea]
<http://espace.library.uq.edu.au/eserv.php?pid=UQ:9138&dsID=IDP_QSR_BMVC04.pdf>
[31] XUN, Sun, XING, Mei, SHAOHUI, Jiao, MINGCAI, Zhou and HAITAO, Wang. Stereo matching
with reliable disparity propagation. Samsung Advance Institute of Technology, China Lab. Beijing, China.
[32] HERMANN, Simon and KLETTE, Reinhard. The naked truth about cost functions for stereo
matching. The .enpeda.. Project, The University of Auckland. Auckland, New Zealand. [En línea]
<http://www.mi.auckland.ac.nz/tech-reports/MItech-TR-33.pdf>
[33] UNGER, Christian and NAVAB, Nassir. Stereo Matching. Computer Aided Medical Procedures,
Technische Universität München. München, Germany. [En línea]
<http://campar.in.tum.de/twiki/pub/Chair/TeachingWs10Cv2/3D_CV2_WS_2010_StereoMatching.pdf>
[34] BRIECHLE, Kai and HANEBECK, Uwe D. Template matching using fast normalized cross
correlation. Institute of Automatic Control Engineering, Technische Universität München. München,
Germany. [En línea] <http://isas.uka.de/Material/AltePublikationen/briechle_spie2001.pdf>
[35] AHUJA, Siddhant. Correlation based similarity measures. [En línea]
<http://siddhantahuja.wordpress.com/tag/normalized-cross-correlation/> [citado el 05-01-2012]
[36] BROWN, Myron Z., BURSCHKA, Darius and HAGER, Gregory D. Advances in Computational
Stereo. En: IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol 25, No. 8 (Aug., 2003).
p. 993
[37] MARCELLO, Javier, EUGENIO, Francisco y MARQUES, Ferran. Evaluación de técnicas de
correspondencia de regiones para la estimación del movimiento superficial del océano. En: Revista de
Teledetección. ISSN: 1133-0953 (Nov., 2007). 28:32-42.
72
i
ANEXOS
ANEXO #1. CORRESPONDENCIAS IMÁGENES DE ENTRENAMIENTO.
Correspondencia hallada del carril 1 (Imagen de entrenamiento 2).
Correspondencia hallada del carril 2 (Imagen de entrenamiento 2).
0 200 400 600 800 1000 12000
100
200
300
400
500
600
700
800CC - Carril 1
X: 614
Y: 761.8
0 200 400 600 800 1000 1200-200
0
200
400
600
800
1000
X: 614
Y: 928
NCC - Carril 1
0 200 400 600 800 1000 12000
100
200
300
400
500
X: 614
Y: 239.7
SAD - Carril 1
0 200 400 600 800 1000 12000
50
100
150
X: 614
Y: 53.21
SSD - Carril 1
0 200 400 600 800 1000 12000
200
400
600
800
1000CC - Carril 2
X: 610
Y: 993.6
0 200 400 600 800 1000 1200-400
-200
0
200
400
600
800
X: 611
Y: 799
NCC - Carril 2
0 200 400 600 800 1000 12000
50
100
150
200
250
300
350
X: 610
Y: 247.1
SAD - Carril 2
0 200 400 600 800 1000 12000
10
20
30
40
50
60
70
X: 610
Y: 35.96
SSD - Carril 2
ii
Correspondencia hallada del carril 3 (Imagen de entrenamiento 2).
Correspondencia hallada de las imágenes completas (Imagen de entrenamiento 2)
0 200 400 600 800 1000 12000
200
400
600
800
1000
1200
X: 600
Y: 1122
CC - Carril 3
0 200 400 600 800 1000 1200-100
0
100
200
300
400
500
600
700
X: 612
Y: 674
NCC - Carril 3
0 200 400 600 800 1000 12000
50
100
150
200
250
300
350
X: 612
Y: 263.8
SAD - Carril 3
0 200 400 600 800 1000 12000
20
40
60
80
100
X: 612
Y: 52.25
SSD - Carril 3
0 200 400 600 800 1000 12000
2
4
6
8
10
12
14x 10
4 CC
X: 600
Y: 1.278e+005
0 200 400 600 800 1000 12000
0.5
1
1.5
2x 10
5 NCC
X: 611
Y: 1.671e+005
0 200 400 600 800 1000 12000
1
2
3
4
5x 10
4
X: 611
Y: 3.937e+004
SAD
0 200 400 600 800 1000 12000
2000
4000
6000
8000
10000
12000
X: 611
Y: 6988
SSD
iii
Correspondencia hallada del carril 1 (Imagen de entrenamiento 3).
Correspondencia hallada del carril 2 (Imagen de entrenamiento 3).
0 200 400 600 800 1000 12000
100
200
300
400
500
600
700
800CC - Carril 1
X: 613
Y: 745.7
0 200 400 600 800 1000 1200-200
0
200
400
600
800
1000
1200NCC - Carril 1
X: 613
Y: 1001
0 200 400 600 800 1000 12000
50
100
150
200
250
300
350
400
X: 613
Y: 187.7
SAD - Carril 1
0 200 400 600 800 1000 12000
20
40
60
80
100
120
140
X: 613
Y: 39.77
SSD - Carril 1
0 200 400 600 800 1000 12000
200
400
600
800
1000
1200
1400CC - Carril 2
X: 611
Y: 1336
0 200 400 600 800 1000 1200-500
0
500
1000
1500
2000
X: 612
Y: 1694
NCC - Carril 2
0 200 400 600 800 1000 12000
100
200
300
400
500
X: 611
Y: 344.1
SAD - Carril 2
0 200 400 600 800 1000 12000
20
40
60
80
100
120
140
X: 611
Y: 53.83
SSD - Carril 2
iv
Correspondencia hallada del carril 3 (Imagen de entrenamiento 3).
Correspondencia hallada de las imágenes completas (Imagen de entrenamiento 3)
0 200 400 600 800 1000 12000
200
400
600
800
1000
1200
1400CC - Carril 3
X: 613
Y: 1295
0 200 400 600 800 1000 1200-500
0
500
1000
1500
2000
X: 614
Y: 1704
NCC - Carril 3
0 200 400 600 800 1000 12000
100
200
300
400
500
600
700
X: 614
Y: 497.6
SAD - Carril 3
0 200 400 600 800 1000 12000
50
100
150
200
X: 614
Y: 80.53
SSD - Carril 3
0 200 400 600 800 1000 12000
2
4
6
8
10
12
14x 10
4
X: 600
Y: 1.26e+005
CC
0 200 400 600 800 1000 12000
0.5
1
1.5
2x 10
5
X: 615
Y: 1.712e+005
NCC
0 200 400 600 800 1000 12000
1
2
3
4
5x 10
4
X: 616
Y: 3.438e+004
SAD
0 200 400 600 800 1000 12000
2000
4000
6000
8000
10000
12000
X: 613
Y: 6252
SSD
v
ANEXO #2. DISPARIDAD VIDEOS DE ENTRENAMIENTO.
VIDEO 1
Imagen Promedio Carriles (general) Imagen Completa
Manual NCC SAD SSD NCC SAD SSD
1 21,00 26,67 25,00 22 22 16 27,50
2 242,67 216,67 256,33 17 600 31 93,13
3 15,33 19,00 18,67 14 14 9 21,04
4 12,00 11,67 10,00 11 11 11 13,14
5 18,67 18,33 19,33 17 17 15 22,16
6 124,67 33,33 77,00 39 45 23 35,43
7* 0 0 0 0 0 0 X
8 17,00 19,00 28,67 18 15 13 27,20
9 14,67 14,00 12,67 15 16 13 15,66
* Indica que a dicho par de imágenes no es posible encontrarle la disparidad.
VIDEO 1 - NCC (Correlación Cruzada Normalizada)
Imagen Promedio Carriles Imagen Completa Velocidad Manual
[pix/s] [pix/s] [pix/s]
1 625,71 597,27 537,67
2 54,15 772,94 403,38
3 856,96 938,57 750,24
4 1095,00 1194,55 959,08
5 703,93 772,94 697,38
6 105,40 336,92 384,65
7 0,00 0,00 0,00
8 772,94 730,00 605,10
9 895,91 876,00 856,53
VIDEO 1 - SAD (Sumas de Diferencias Absolutas)
Imagen Promedio Carriles Imagen Completa Velocidad Manual
[pix/s] [pix/s] [pix/s]
1 492,75 597,27 537,67
2 60,65 21,90 403,38
3 691,58 938,57 750,24
4 1126,29 1194,55 959,08
5 716,73 772,94 697,38
6 394,20 292,00 384,65
7 0,00 0,00 0,00
8 691,58 876,00 605,10
9 938,57 821,25 856,53
vi
VIDEO 3
Imagen Carriles (Generales) Imagen Completa
Manual NCC SAD SSD NCC SAD SSD
1* 6,5 12 12 12 12 12 16
2* 27 27 27 0 27 27 30
3 26,5 17,5 17,5 14 24 14 19,85
4** 53 0 0 0 0 0 0
5* 301 12 12 0 13 12 12
6** 253 0 0 0 0 0 0
7 19 19,5 19 11 12 11 19,8
8* 262 11 11 1 0 11 13,5
9 12 12 13 13 13 13 13,8
10 13 12,5 12,5 2 12 12 14
11* 11 11 11 1 11 11 12
12 10,5 11 11 11 11 11 11,7
13 11,5 12 11,5 11 11 11 12,5
14 16 16 16 13 13 13 13,5
15 21,5 21,5 21 27 30 14 24,7
16 23 13 17 0 13 13 22
17* 5 29 29 1 30 29 28,3
18* 32 114 27 0 0 109 41
19** 0 0 0 0 0 0 0
20 17,5 17,5 91 10 10 10 33,5
21* 13 13 13 0 13 13 15
22* 9,5 13 13 0 13 13 12
23 7,5 13 21,5 0 13 30 14,2
24* 10 19 19 18 19 19 21
25* 26 0 26 0 0 28 27
26** 0,5 0 0 0 0 0 0
27 16 16 15 15 16 16 15,75
28 13 13 12,5 11 15 15 15
29** 0 0 0 0 0 0 0
30 10 9 11 0 10 9 11,25
31* 12 12 31 0 12 12 12
32** 0 0 0 0 0 0 0
33 10,5 10,5 45 10 13 11 16,9
34 9,5 14 18 14 14 14 14,62
35 22 0 32 0 0 44 24
36 21 21,5 21,5 14 26 25 20,25
37* 0 23 23 0 24 23 26
38 0 0 0 0 0 0 11
* Indica que, al dividir el par de imágenes en carriles, un carril no contiene automóviles.
vii
VIDEO 3 - NCC (Correlación Cruzada Normalizada)
Imagen
Promedio
Carriles
Imagen
Completa Velocidad Manual
[pix/s] [pix/s] [pix/s]
1 1538,46 833,33 585,53
2 370,37 0,00 328,80
3 377,36 714,29 529,67
4 188,68 0,00 0,00
5 33,22 0,00 775,00
6 39,53 0,00 0,00
7 526,32 909,09 553,27
8 38,17 10000,00 820,31
9 833,33 769,23 699,22
10 769,23 5000,00 716,90
11 909,09 10000,00 750,00
12 952,38 909,09 814,70
13 869,57 909,09 796,35
14 625,00 769,23 760,42
15 465,12 370,37 480,73
16 434,78 0,00 496,05
17 2000,00 10000,00 271,28
18 312,50 0,00 261,72
19 0,00 0,00 0,00
20 571,43 1000,00 459,83
21 769,23 0,00 701,92
22 1052,63 0,00 708,33
23 1333,33 0,00 687,50
24 1000,00 555,56 465,28
25 384,62 0,00 388,89
26 20000,00 0,00 0,00
27 625,00 666,67 546,05
28 769,23 909,09 714,10
29 0,00 0,00 0,00
30 1000,00 0,00 825,52
31 833,33 0,00 777,78
32 0,00 0,00 0,00
33 952,38 1000,00 711,23
34 1052,63 714,29 616,07
35 454,55 0,00 464,58
36 476,19 714,29 540,32
37 0,00 0,00 380,00
38 0,00 0,00 808,33
viii
VIDEO 3 - SAD (Suma de Diferencias Absolutas)
Imagen
Promedio
Carriles
Imagen
Completa Velocidad Manual
[pix/s] [pix/s] [pix/s]
1,00 833,33 833,33 585,53
2,00 370,37 370,37 328,80
3,00 571,43 416,67 529,67
4,00 0,00 0,00 0,00
5,00 833,33 769,23 775,00
6,00 0,00 0,00 0,00
7,00 512,82 833,33 553,27
8,00 909,09 0,00 820,31
9,00 833,33 769,23 699,22
10,00 800,00 833,33 716,90
11,00 909,09 909,09 750,00
12,00 909,09 909,09 814,70
13,00 833,33 909,09 796,35
14,00 625,00 769,23 760,42
15,00 465,12 333,33 480,73
16,00 769,23 769,23 496,05
17,00 344,83 333,33 271,28
18,00 87,72 0,00 261,72
19,00 0,00 0,00 0,00
20,00 571,43 1000,00 459,83
21,00 769,23 769,23 701,92
22,00 769,23 769,23 708,33
23,00 769,23 769,23 687,50
24,00 526,32 526,32 465,28
25,00 0,00 0,00 388,89
26,00 0,00 0,00 0,00
27,00 625,00 625,00 546,05
28,00 769,23 666,67 714,10
29,00 0,00 0,00 0,00
30,00 1111,11 1000,00 825,52
31,00 833,33 833,33 777,78
32,00 0,00 0,00 0,00
33,00 952,38 769,23 711,23
34,00 714,29 714,29 616,07
35,00 0,00 0,00 464,58
36,00 465,12 384,62 540,32
37,00 434,78 416,67 380,00
38,00 0,00 0,00 808,33
Top Related