Académique Documents
Professionnel Documents
Culture Documents
NACIONAL
SECCION
MICROELECTRONICA
DE ALGORITMOS DE DETECCION
DESARROLLO E IMPLEMENTACION
ARTIFICIAL EN LA NAVEGACION
DE UN
DE OBSTACULOS
POR VISION
VEHICULO
T E S I S
QUE PARA OBTENER EL TITULO DE MAESTRO EN
MEXICO
D.F. NOVIEMBRE DEL 2009
ii
DESARROLLO E
DE
IMPLEMENTACION
ALGORITMOS DE
DE
DETECCION
OBSTACULOS
POR
ARTIFICIAL EN
VISION
DE UN
LA NAVEGACION
VEHICULO
Agradecimientos
Se agradece al Consejo Nacional de Ciencia y Tecnologa (CONACYT) por el
soporte financiero brindado para la preparacion de este trabajo y al Instituto Politecnico Nacional, por la preparacion que recib durante mis estudios de maestra y por
brindar las instalaciones y facilidades necesarias para la realizacion mi proyecto de
tesis.
En la elaboracion y redaccion de esta tesis he de agradecer de especial manera a
mi asesor Dr. Volodymyr Ponomaryov, por el tiempo dedicado y los consejos que me
ha brindado durante la realizacion de este trabajo de investigacion, por el apoyo que
me brindo para poder realizar una estancia en el extranjero, misma que enriquecio
enormemente mi formacion personal y profesional, pero sobre todo mitrabajo de tesis.
Se agradece a los doctores John Jairo Martnez Molina y Laurent Bonnaud del
laboratorio frances GIPSA-LAB por su valiosa asesora y apoyo durante la estancia
realizada en tan honorable institucion.
Resumen
DE ALGORITMOS
DESARROLLO E IMPLEMENTACION
DE OBSTACULOS
DE DETECCION
POR VISION
DE UN VEHICULO
ARTIFICIAL EN LA NAVEGACION
En este trabajo se analizan algoritmos del area de vision computacional, especficamente se encuentra centrado en el area de la vision estereo por medio de la cual
es posible determinar la profundidad de los puntos de una escena a partir de las
relaciones geometricas existentes entre dos o mas imagenes de la misma.
La vision estereo binocular es la que usa dos imagenes para obtener dicha estimacion de la profundidad, la profundidad esta relacionada con la diferencia relativa
en las posiciones donde los puntos de la escena son proyectados sobre cada una de
las imagenes, conocida como disparidad. Es por eso que en este trabajo se presentara
un analisis y comparacion de diversos algoritmos para el calculo de un mapa denso
de disparidades, mencionados ampliamente en la literatura del tema por sus cualidades de brindar mejores resultados, mejores tiempos de procesamiento o modelado
de oclusiones, como son el algoritmo de Corte de Grafos [18], el de Block Matching
[19] o el de Programacion Dinamica [38].
La creacion de un sistema de adquisicion y acondicionamiento de las imagenes
antes de utilizarlas para el calculo de disparidad es de enorme importancia para
tener un buen funcionamiento de los algoritmos, por lo cual en este trabajo de tesis
se propone ademas un sistema de adquisicion y pre-procesamiento que nos permita
utilizar los algoritmos de calculo de disparidad analizados, sobre imagenes reales.
Finalmente, utilizando como base la estimacion de profundidad a partir del mapa
de disparidad, se propone un sistema de deteccion de obstaculos para un vehculo
en movimiento, en el cual se crea una zona de riesgo a partir del modelo cinematico
del mismo y se buscan todos aquellos objetos que se encuentren dentro de esta zona
(obstaculos). Se analizan los errores en la estimacion de la profundidad y tiempos de
procesamiento del sistema probado sobre diferentes plataformas de computo.
Agradecimientos
xiii
ABSTRACT
In this work we analyze some computer vision algorithms specifically those related
to the stereo vision area by means of which it is possible to estimate the scene depth
using the geometric relations inherent to the two or more images of the same scene.
Binocular stereo vision uses two images for depth estimation, this depth is related
to the relative difference of positions where points are projected in each image. This
difference is known as disparity. We present an analysis and comparison of some important disparity map computing algorithms. Those algorithms were chosen because
of their quality, computational speed or occlusion modeling as the Graph Cuts [18],
Block Matching [19] or Dynamic Programming [38] methods.
The use of an acquisition and conditioning step before computing the disparity
map is very important to get a good performance of the algorithms, so we have
proposed one acquisition and preprocessing system in order to work with real images.
Finally, by using depth estimation from disparity maps, we proposed an obstacle
detection system for a moving vehicle. In this system we define a risk zone from
kinematics of the vehicle. Those objects found into this zone are detected as obstacles.
The errors estimating the depth and processing times of the system were tested using
different computing platforms.
Indice general
Agradecimientos
Dedicatoria . . .
Resumen . . . . .
Indice general . .
Indice de figuras
Indice de Tablas
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1. INTRODUCCION
1.1. Planteamiento del problema
1.2. Solucion propuesta . . . . .
1.3. Objetivos . . . . . . . . . .
1.4. Justificacion . . . . . . . . .
1.5. Cuerpo de trabajo de tesis .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2. MARCO TEORICO
2.1. Camaras finitas . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1. El Modelo Pinhole . . . . . . . . . . . . . . . . . .
2.1.2. Proyeccion central usando coordenadas homogeneas
2.1.3. Modelo para camaras CCD . . . . . . . . . . . . .
2.1.3.1. Distorsion . . . . . . . . . . . . . . . . . .
2.2. Configuracion de un Par Estereo de Camaras . . . . . . . .
2.2.1. Triangulacion Estereo y Profundidad . . . . . . . .
2.2.2. Rango de B
usqueda de Disparidad y Volumen 3D .
2.3. Rectificacion y Calibracion . . . . . . . . . . . . . . . . . .
2.4. Algoritmos para el Calculo de Disparidad . . . . . . . . . .
2.4.1. Correspondencia . . . . . . . . . . . . . . . . . . .
2.4.1.1. Restricciones . . . . . . . . . . . . . . . .
2.4.1.2. Oclusiones . . . . . . . . . . . . . . . . . .
2.5. Clasificacion de Algoritmos para el Calculo de Disparidad .
2.5.1. Algoritmos locales . . . . . . . . . . . . . . . . . .
2.5.1.1. Block Matching . . . . . . . . . . . . . . .
xv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. vii
.
ix
.
xi
. xiv
. xviii
. xxiii
.
.
.
.
.
1
1
2
2
2
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
6
7
8
10
10
13
14
17
18
18
19
20
21
21
xvi
Indice
general
3. EVALUACION
EXPERIMENTAL DE ALGORITMOS DE DIS DE OBSTACULOS
39
39
41
44
45
47
52
53
53
54
54
DE
4. SISTEMA PROPUESTO DE DETECCION
4.1. Plataforma Utilizada . . . . . . . . . . . . . . . .
4.1.1. Camara Estereo . . . . . . . . . . . . . . .
4.1.2. Vehculo NECSCAR . . . . . . . . . . . .
4.1.3. Estacion De Trabajo . . . . . . . . . . . .
4.1.4. Secuencias de Imagenes de Prueba . . . .
57
57
57
58
58
58
OBSTACULOS
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
Indice
general
xvii
76
77
78
81
83
5. CONCLUSIONES
5.1. Trabajo a Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
86
Bibliografa
87
A. Publicaciones en Congresos
91
B. Procesador Digital de Se
nales
61
62
62
63
65
65
67
67
69
69
71
76
76
113
Indice de figuras
2.1. Proyeccion perspectiva de un punto en 3D sobre un plano de imagen .
10
11
12
13
2.8. Proceso de b
usqueda de correspondientes en dos imagenes estereo.
Cualquier correspondiente en la imagen derecha de una caracterstica de la imagen izquierda debe ocurrir en la misma fila. El rango de
b
usqueda empieza en el punto Disparidad Mnima (Aqu igual a cero)
y se mueve a la izquierda una cantidad N
umero de disparidades; la funcion de costo (Matching Function) de un algoritmo basado en ventanas
es mostrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
15
16
19
xviii
Indice
de figuras
2.12. Ejemplos de una oclusion tpica (izquierda) oclusion estrecha, (derecha)
Producida por obstaculos, por ejemplo cando se ve una valla. Los puntos Pv en los ejemplos son visibles para ambas camaras, por lo tanto
sus profundidades pueden ser estimadas por estereopsis. Los puntos Po
son solo visibles en una imagen, por lo tanto su profundidad podra no
ser estimada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.13. (Izquierda) ejemplo de Rank Transformation, (derecha) Census Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.14. Proceso de calculo del DSI. Note que el DSI resultante tendra dimensiones de N (dmax dmin ). . . . . . . . . . . . . . . . . . . . . . . .
2.15. Para reducir los efectos de las oclusiones en la generacion del DSI, se usa
una ventana de 9 9, donde los centros de las ventanas (marcados en
negro) son desplazados para evitar falsos correspondientes en regiones
ocluidas y saltos de disparidad. . . . . . . . . . . . . . . . . . . . . .
2.16. Imagen del espacio de disparidad para un caso particular, Arriba: Imagen de la cual se obtiene el DSI, la lnea marca la scanline utilizada.
Abajo: DSI para la scanline marcada. Notar la lnea horizontal quebrada de baja intensidad causadas por parejas de correspondientes. El
DSI tiene una ecualizacion de histograma para mejor visualizacion. .
2.17. Movimientos permitidos para el algoritmo de programacion dinamica
DP cuando procesa el DSIiL . Desde el estado Match (M), el camino
puede moverse verticalmente hacia arriba al estado V, horizontalmente
a otro estado M o diagonalmente a D. Del estado V, el camino puede
moverse verticalmente hacia arriba a otro estado V u horizontalmente
a M. Del estado D, el camino puede moverse horizontalmente al estado
M o diagonalmente a otro estado D. (a) Diagrama de estados, (b) Visto
graficamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.18. Recorridos de la imagen del espacio de disparidad obtenidos con diferentes costos de oclusion. Arriba: costo bajo. Medio: costo medio. Abajo:
costo alto. Notar en el u
ltimo caso la zona oscura en medio del DSI
por donde debera pasar el camino optimo, y debido al alto costo de
oclusion no es tenido en cuenta. . . . . . . . . . . . . . . . . . . . . .
2.19. Arriba: el camino (en azul) a traves de un DSI calculado sin el uso
de los GCP. Medio: los GCP encontrados en el DSI, en rojo, y las
regiones donde se prohbe el pasaje del camino. Abajo: el camino (en
azul) calculado teniendo en cuenta los GCP. . . . . . . . . . . . . . .
3.1. Imagenes de prueba utilizadas para la experimentacion con sus respectivos mapas reales de disparidad, de arriba abajo, Art, Cones, Laundry,
Tsukuba, Venus. [37] . . . . . . . . . . . . . . . . . . . . . . . . . . .
xix
20
22
27
28
29
30
31
32
40
xx
Indice
de figuras
3.2. Porcentaje de pixeles mal relacionados para SAD, SSD y correlacion
normalizada usando la media, (a) Resultados para imagen Art, (b)
Resultados para imagen Laundry, (c) Resultados para imagen Cones,
(d) Resultados para imagen Venus. . . . . . . . . . . . . . . . . . . .
3.3. Desempe
no en tiempo, normalizando con respecto al menor valor obtenido
(SSD con ventana de 3x3). El tama
no de ventana (3 5 etc.)indica una
ventana de (3x3, 5x5, etc.) . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Diagrama a bloques en SIMULINK a partir del cual se crea el codigo
en C para programar el DSP . . . . . . . . . . . . . . . . . . . . . . .
3.5. Tiempos de procesamiento obtenidos para imagen Tsukuba usando el
algoritmo de Block Matching implementado en DSP para diferentes
tama
nos de ventana de correlacion. . . . . . . . . . . . . . . . . . . .
3.6. Tiempos de procesamiento al variar el tama
no de la ventana de correlacion para la imagen Tsukuba. . . . . . . . . . . . . . . . . . . . .
3.7. Resultados obtenidos con el metodo de programacion dinamica al variar
el costo de oclusion para las imagenes Cones, Tsukuba y Venus. . . .
3.8. Resultados obtenidos con el metodo de programacion dinamica para la
imagen Tsukuba. (a)Imagen de Prueba , (b)Mapa de Disparidad Real,
(c-f)Mapas de disparidad obtenidos con diferentes costos de oclusion
(crecientes). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9. Resultados variando tama
no de ventana de prefiltrado, (a) Para toda
la imagen, (b)considerando solo los pixeles de zonas marcadas como
confiables, (c) Tiempo de procesamiento. . . . . . . . . . . . . . . . .
3.10. Resultados variando tama
no de ventana de correlacion, (a) Para toda
la imagen, (b) considerando solo los pixeles de zonas marcadas como
confiables, (c) Tiempo de procesamiento. . . . . . . . . . . . . . . . .
3.11. Resultados variando el parametro Icap, (a) Para toda la imagen, (b)
considerando solo los pixeles de zonas marcadas como confiables . . .
3.12. Resultados variando el parametro uniquenessRatio, (a) Para toda la
imagen, (b) considerando solo los pixeles de zonas marcadas como confiables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13. Resultados variando el rango de b
usqueda de disparidad, (a) Para toda
la imagen, (b) considerando solo los pixeles de zonas marcadas como
confiables,(c) Tiempo de procesamiento . . . . . . . . . . . . . . . . .
3.14. Resultados para diferente n
umero de iteraciones del algoritmo de corte
de grafos (a) Desempe
no, (b) Tiempo de procesamiento. . . . . . . .
3.15. Resultados para diferentes rangos de b
usqueda de disparidad del algoritmo de corte de grafos (a) Desempe
no, (b) Tiempo de procesamiento.
43
43
44
45
46
46
47
48
49
49
50
51
52
53
Indice
de figuras
4.1. Camara estereo utilizada como sistema de adquisicion de las imagenes
estereo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Prototipo utilizado para realizar las pruebas experimentales. . . . . .
4.3. Imagen izquierda y derecha de un cuadro de la secuencia Cajas. . . .
4.4. Imagen izquierda y derecha de un cuadro de la secuencia Peatones. .
4.5. Imagen izquierda y derecha de un cuadro de la secuencia Pasto. . . .
4.6. Dimensiones del escenario donde fueron grabadas las secuencias Cajas
y Peatones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7. Diagrama a bloques del sistema de deteccion propuesto. . . . . . . . .
4.8. Imagenes de un patron rectangular (Malla de Tsai) utilizada para la
calibracion de la camara, podemos notar que las lneas rectas (puerta y
tablero) presentan cierta curvatura debido a los efectos de la distorsion
explicados en el captulo 2. . . . . . . . . . . . . . . . . . . . . . . . .
4.9. Esquinas de la malla de Tsai utilizadas para la calibracion. Los puntos
de colores son las esquinas detectadas automaticamente por la herramienta para calibracion de camaras de openCV. . . . . . . . . . . .
4.10. Imagenes del patron de Tsai ya corregidas (sin distorsion) lo cual se
puede notar al observar que las lneas de la puerta del fondo y el tablero
ya no son curvas, podemos observar que en imagenes rectificadas los
puntos correspondientes se encontraran siempre en la misma fila (lneas
horizontales). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.11. Imagen original como es tomada por la camara estereo,observe que la
imagen izquierda y derecha estan entrelazadas (arboles duplicados al
fondo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.12. Imagenes izquierda y derecha des entrelazadas de la imagen original de
la camara estereo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13. Imagen izquierda separada, observe en el acercamiento de la derecha
el patron de puntos representativo de una imagen en patron de Bayer.
4.14. En la figura se muestran los resultados al decodificar la informacion
de color del patron de bayer y la correspondiente imagen en escala de
grises antes de la rectificacion. . . . . . . . . . . . . . . . . . . . . . .
4.15. Par de imagenes rectificadas y sin distorsion, observe que las lneas de
b
usqueda (lneas horizontales) son paralelas al eje x, ademas observe
la zona negra a en el extremo derecho de la imagen derecha que surge
como resultado del movimiento de los pixeles al ser rectificada. . . .
4.16. Mapa de disparidad obtenido para una secuencia real, los objetos aparecen con un color rojo mas claro mientras mas cercanos se encuentran,
los puntos negros indican puntos donde la disparidad no pudo ser calculada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.17. Modelo bicicleta de un vehculo de cuatro ruedas. . . . . . . . . . . .
xxi
58
59
60
60
61
62
63
64
64
65
66
66
67
68
68
69
70
xxii
Indice
de figuras
4.18. Zona de riesgo, creada usando las dimensiones del vehculo y la prediccion de su posicion futura. . . . . . . . . . . . . . . . . . . . . . . . .
4.19. Objetos detectados en la secuencia Pasto. De arriba abajo se muestran
los resultados para los cuadros 23, 94,357. . . . . . . . . . . . . . . .
4.20. Objetos detectados en la secuencia peatones. De arriba abajo se muestran los resultados para los cuadros 60, 133,381. . . . . . . . . . . . .
4.21. Objetos detectados en la secuencia Cajas. De arriba abajo se muestran
los resultados para los cuadros 74, 262,363. . . . . . . . . . . . . . . .
4.22. Presencia de errores de deteccion en las diferentes secuencias. De arriba
abajo. Secuencia Cajas, en este cuadro el error es producido en la zona
que muestra el vidrio detras de la caja. Secuencia Peatones, los errores
ocurren en el cielo y la zona de los vidrios del lado derecho de la imagen.
Secuencia Pasto el error ocurre en la zona del cielo. . . . . . . . . . .
4.23. Una de las imagenes de la secuencia, en ella pueden observarse los
puntos que se siguen para calcular su profundidad. . . . . . . . . . .
4.24. Variacion de la distancia con del vehculo con respecto a los puntos
objetivos, los cambios bruscos se presentan cuando los puntos se salen
del campo visual de las camaras. . . . . . . . . . . . . . . . . . . . .
4.25. Resultados de la estimacion de profundidad con respecto a la disparidad ideal teorica que debera obtenerse al suponer una velocidad constante el vehculo (punto 4). . . . . . . . . . . . . . . . . . . . . . . .
4.26. Resultados de la estimacion de profundidad con respecto a la disparidad ideal teorica que debera obtenerse al suponer una velocidad constante el vehculo (punto 6). . . . . . . . . . . . . . . . . . . . . . . .
4.27. Precision en la estimacion de profundidades para el sistema implementado sin utilizar refinamiento a nivel sub-pixel del mapa de disparidad.
Izquierda, precision a corta distancia. Derecha, precision a larga distancia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.28. Precision en la estimacion de profundidades para el sistema implementado utilizando refinamiento a nivel sub-pixel del mapa de disparidad.
Izquierda, precision a corta distancia. Derecha, precision a larga distancia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
72
73
74
75
78
79
80
81
82
82
Indice de Tablas
3.1. Tama
nos y Factores de escala de codificacion de las imagenes de prueba.
3.2. Parametros utilizados en el algoritmo de BM con pre-filtrado. . . . .
3.3. Comparacion de los resultados obtenidos sobre diferentes imagenes
usando los algoritmos de disparidad seleccionados, B es el porcentaje de pixeles mal relacionados . . . . . . . . . . . . . . . . . . . . . .
3.4. Tiempos de procesamiento de los diferentes algoritmos al probarlos
sobre la imagen Tsukuba usando ventana de 3x3 . . . . . . . . . . . .
4.1. Cantidad de imagenes procesadas por segundo considerando el calculo
de disparidad y la etapa de pre procesamiento. . . . . . . . . . . . . .
4.2. Cantidad de imagenes procesadas por segundo por el sistema de deteccion completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xxiii
41
51
53
54
77
78
Captulo 1
INTRODUCCION
Cuando un robot movil se mueve en un escenario real, el reconocimiento de los objetos que lo rodean es de gran importancia. Por lo general es necesario que los robots
moviles operen en ambientes desconocidos. Para lograr esta meta, el robot debe ser
capaz de percibir su medio ambiente suficientemente bien para permitirle operar en
el de forma segura. La mayora de los robots que navegan en ambientes no controlados, hacen uso de sonares o transductores laser como su principal sensor especial [11],
[12], [8]. Metodos de vision artificial son usados frecuentemente con robots moviles,
sin embargo usualmente se usan en el reconocimiento de patrones y seguimiento de
objetos, o en el censado de puntos de referencia, y no muy frecuentemente en la deteccion de obstaculos. En este trabajo de tesis se presentara una implementacion de
un algoritmo de deteccion de obstaculos que usa metodos de calculo de profundidad
usando imagenes estereo.
Como se vera en este trabajo, la estimacion de profundidad usando imagenes estereo es muy sensible a errores, debido a la perdida de informacion inherente a la
proyeccion de una escena 3D en un plano de imagen.
Se examinaran las caractersticas de algunos algoritmos de estimacion de profundidad mediante mapas de disparidad que dan lugar a dichos errores y se presentaran
algunas sugerencias y formas de manejarlos para mejorar la fiabilidad de los mapas
resultantes.
1.1.
Captulo 1: INTRODUCCION
1.2.
Soluci
on propuesta
1.3.
Objetivos
GENERAL
Desarrollo e implementacion de algoritmos de deteccion de obstaculos usando
tecnicas de vision artificial.
PARTICULARES
1. Estudio del estado del arte en sistemas de calculo de profundidad usando mapas
de disparidad.
2. Analisis de algoritmos de calculo de disparidad para ser utilizados en la estimacion de profundidad de los objetos de la escena.
3. Evaluacion teorica y experimental del comportamiento de algoritmos de ubicacion de obstaculos usando mapas de disparidad.
4. Proposicion de un sistema para la deteccion de obstaculos por vision computacional.
1.4.
Justificaci
on
Captulo 1: INTRODUCCION
1.5.
Captulo 2
MARCO TEORICO
Una camara es un dispositivo que realiza un mapeo entre el mundo en 3D y
una imagen plano 2D. Existen diferentes modelos matematicos que representan las
propiedades de dicho mapeo en forma de matrices.
Puede verse en la literatura que todos los modelos de camaras con proyeccion central son especializaciones del modelo general de camara proyectiva (modelo pinhole).
Este modelo de camara puede examinarse usando las herramientas de la geometra
proyectiva.
2.1.
C
amaras finitas
Comenzaremos esta seccion describiendo el mas especializado y simple de los modelos de camara, que es el modelo pinhole, posteriormente se atacaran las generalizaciones del mismo. Estos modelos fueron dise
nados principalmente para camaras con
sensores CCD, pero tambien pueden aplicarse a otro tipo de camaras.
2.1.1.
El Modelo Pinhole
Captulo 2: MARCO TEORICO
eje principal de la camara, y el punto donde el eje principal cruza al plano de imagen
es llamado el punto principal. El plano que pasa por el centro de la camara paralelo
al plano de imagen es conocido como plano principal de la camara.
2.1.2.
Proyecci
on central usando coordenadas homog
eneas
Si los puntos en el espacio y en la imagen son representados por vectores homogeneos [13], entonces la proyeccion central es expresada como un mapeo lineal entre sus
coordenadas homogeneas como:
X
fX
f 0 0 0
fY = 0 f 0 0 Y
Z
Z
0 0 1 0
1
(2.1)
(2.2)
La expresion 2.1 se cumple solo para el modelo de camara pinhole ideal, en la realidad, el punto principal suele no estar alineado con el eje optico. Por lo tanto se deben
introducir dos nuevos parametros, cx y cy , para modelar un posible desplazamiento
(con respecto al eje optico) del centro del sensor de la camara.
Captulo 2: MARCO TEORICO
Figura 2.2: Desplazamiento del punto principal de la imagen con respecto al eje optico.
X
+ px
Z
Y
+ py
Z
Por lo cual la matriz de la camara ahora puede escribirse como
ycam = f
M =f
Y
+ py
Z
Y
+ py
Z
La matriz K es conocida como la matriz de calibracion de la camara.
K=f
2.1.3.
(2.3)
(2.4)
(2.5)
(2.6)
Modelo para c
amaras CCD
.
El modelo pinhole, asume que los ejes coordenados son ejes euclideanos con escalas iguales en ambos ejes, esto se cumple solo cuando los pixeles del sensor sean
perfectamente cuadrados. En el caso de camaras CCD reales, existe la posibilidad
de tener pixeles no cuadrados. Si los ejes coordenados de la imagen son medidos en
Captulo 2: MARCO TEORICO
X
+ px
Z
(2.7)
ycam = fy
Y
+ py
Z
(2.8)
Por lo tanto, la forma general de la matriz de calibracion de una camara CCD es:
K=f
Y
+ py
Z
(2.9)
Distorsi
on
Captulo 2: MARCO TEORICO
mejor calidad, donde se invierte mucho para producir sistemas opticos que minimicen
esta distorsion.
La distorsion radial es mayor en el centro optico del sensor y aumenta hacia la
periferia. En la practica, esta distorsion es peque
na y puede ser caracterizada por los
primeros terminos de una expansion en series de Taylor alrededor de r = 0 [5]. Para
camaras web baratas, generalmente se utilizan los primeros dos terminos de dicha
expansion (k1 , k2 ). Para camaras altamente distorsionadas, se puede utilizar el tercer
termino k3 . En general, la posicion radial de un punto en el sensor sera re-escalado
de acuerdo con las siguientes ecuaciones:
xcorregida = x(1 + k1 r2 + k2 r4 + k3 r6 )
(2.10)
ycorregida = y(1 + k1 r2 + k2 r4 + k3 r6 )
(2.11)
(2.12)
(2.13)
Por lo tanto hay 5 parametros de distorsion que deben ser calculados durante el
proceso de calibracion de la camara, adicionalmente a los terminos de la matriz de
calibracion.
10
Figura 2.4: Errores en el ensamblado del sensor de una camara que produce la distorsion tangencial.
2.2.
Configuraci
on de un Par Est
ereo de C
amaras
Ahora describiremos las relaciones que rigen a una configuracion estereo de camaras. Todos somos familiares con la capacidad de obtener una idea de tridimensionalidad a partir de imagenes estereo que nos brindan nuestros ojos. Las computadoras
cumplen con esta tarea mediante la b
usqueda de correspondientes entre puntos que
son vistos por una camara y el mismo punto visto por la otra. Con tales correspondencias y una distancia entre camaras conocida, podemos calcular la posicion 3D de
los puntos mediante triangulacion. Aunque la b
usqueda de puntos correspondientes
puede ser costosa computacionalmente, suelen usarse consideraciones acerca de la geometra del sistema para disminuir el espacio de b
usqueda tanto como sea posible.
[4].
2.2.1.
Triangulaci
on Est
ereo y Profundidad
Captulo 2: MARCO TEORICO
11
Figura 2.5: Geometra que rige la proyeccion de un punto de una escena 3D sobre un
par estereo.
(2.14)
Captulo 2: MARCO TEORICO
12
yL = yR
(2.15)
(2.16)
fB
(2.17)
xL xR
Si se conocen los parametros intrnsecos de la camara y la configuracion geometrica
del par estereo (f y B en el caso mas simple) es posible recuperar la profundidad de
cada punto de la imagen.
Debido a que la profundidad es inversamente proporcional a la disparidad, existe
una relacion no lineal entre estos dos terminos. Cuando la disparidad es cercana a
0, peque
nas diferencias de disparidad producen grandes diferencias en profundidad.
Cuando la disparidad es grande, peque
nas diferencias en disparidad casi no producen
cambios en el valor de profundidad. La consecuencia es que los sitemas de vision
estereo tienen una alta resolucion en profundidad solo para objetos relativamente
cerca a la camara. Figura 2.7.
Z=
Captulo 2: MARCO TEORICO
13
2.2.2.
Rango de B
usqueda de Disparidad y Volumen 3D
Captulo 2: MARCO TEORICO
14
2.3.
Z2
4d
fB
(2.18)
Rectificaci
on y Calibraci
on
El proceso de calibracion, consiste en determinar los parametros intrnsecos (matriz K) y extrnsecos (posicion relativa) de las camaras del par estereo. En este proceso
se determinan la correspondencia entre algunos puntos relevantes por sus caractersticas (puntos esquinas, color, etc.), y se ajustan los parametros de las camaras para
cumplir con estas correspondencias.
Captulo 2: MARCO TEORICO
15
En este proceso se determina la posicion tridimensional de los puntos seleccionados, pero no se logra una correspondencia para todos los puntos (densa) de las imagenes de entrada.
La rectificacion de las imagenes consiste en proyectar las imagenes del par estereo,
de forma que los planos de las imagenes en cada camara sean paralelos entre s, y
paralelos a la direccion en la cual existe el desplazamiento entre las imagenes. Luego
de la rectificacion
las imagenes de la escena quedan en posicion (fronto-paralela) como se muestra
en la Figura 2.10. Con esta configuracion se simplifica la b
usqueda de los puntos
correspondientes pues se asegura que el correspondiente de un punto con coordenada
vertical yL en la imagen izquierda, se encuentra en la fila de coordenada yR = yL de
la imagen derecha, que se denomina scanline.
La solucion al problema de la rectificacion de las imagenes de un par estereo ha sido
ampliamente tratado y existen soluciones en la literatura [23]. Lo importante es que
siempre es posible hacer la rectificacion de las imagenes llevandolas a la configuracion
de la Figura 2.5.
16
Para referencias sobre algoritmos para estos metodos, as como para una introduccion y profundizacion en la geometra de m
ultiples vistas (geometra epipolar) se
recomiendan los libros de Hartley y Zisserman [13] y de Faugeras y otros [23].
Captulo 2: MARCO TEORICO
2.4.
17
Algoritmos para el C
alculo de Disparidad
Captulo 2: MARCO TEORICO
18
2.4.1.
Correspondencia
Restricciones
Captulo 2: MARCO TEORICO
19
2.4.1.2.
Oclusiones
20
Figura 2.12: Ejemplos de una oclusion tpica (izquierda) oclusion estrecha, (derecha)
Producida por obstaculos, por ejemplo cando se ve una valla. Los puntos Pv en los
ejemplos son visibles para ambas camaras, por lo tanto sus profundidades pueden ser
estimadas por estereopsis. Los puntos Po son solo visibles en una imagen, por lo tanto
su profundidad podra no ser estimada.
2.5.
Clasificaci
on de Algoritmos para el C
alculo de
Disparidad
Captulo 2: MARCO TEORICO
2.5.1.
21
Algoritmos locales
Block Matching
Los metodos de Block Matching (BM) tratan de estimar la disparidad en un punto en una imagen comparando una peque
na region alrededor de dicho punto, con
una serie de peque
nas regiones extradas de la otra imagen. Suelen utilizar la restriccion epipolar para reducir el area de b
usqueda a una dimension. Suelen ocuparse los
siguientes tipos de medidas de semejanza.
Suma de diferencias cuadraticas (SSD).
X
(2.19)
(u,v)
(2.20)
(u,v)
qP
IL )(IR (u, v) IR )
(2.21)
2
2
(u,v) (IL (u, v) IL ) (IR (u, v) IR )
Captulo 2: MARCO TEORICO
22
2.5.1.2.
Flujo Optico
(2.22)
Matcheo de Caractersticas
Los metodos de block matching y flujo optico son bien conocidos por ser sensibles
a discontinuidades de profundidad, debido a que la region de soporte cercana a la
discontinuidad contiene punto s de mas de una un valor de profundidad. Estos metodos
son tambien sensibles a regiones de textura uniforme en las imagenes. Los metodos
basados en caractersticas buscan solucionar estos problemas limitando las regiones
de soporte a caractersticas especficas altamente confiables (bordes[9, 29], curvas[6],
etc.).
En la decada de 1980 estos metodos recibieron mucha atencion debido, debido
en gran parte a su eficiencia, sin embargo, la necesidad de obtener un mapa denso de disparidades en muchas aplicaciones y la actual existencia de algoritmos de
block matching altamente eficientes han reducido el interes en los metodos basados
en caractersticas.
Captulo 2: MARCO TEORICO
23
Dichos metodos no producen una estimacion de profundidad para todos los puntos
de la escena, es decir no producen un mapa denso de disparidades.
2.5.2.
Algoritmos Globales
Los metodos globales, imponen restricciones globales en la minimizacion de alguna expresion de costo o energa que modele el fenomeno estereo, reduciendo los
errores en las regiones con problemas. Estos metodos utilizan com
unmente dos tipos
de b
usquedas (minimizaciones).
2.5.2.1.
Programaci
on Din
amica
2.5.2.2.
Corte de Grafos
El corte de grafos se basa en armar un grafo a partir de los datos de las imagenes
y buscar un corte mnimo [18]. Dependiendo como se arma el grafo, el resultado
obtenido es la minimizacion de una cierta expresion de energa. Este procedimiento se
puede considerar analogo al de hallar el mejor camino en una imagen bidimensional,
con Programacion Dinamica, pero extendido a tridimensional con coherencias en las
dos dimensiones. El resultado es una superficie que minimiza un costo energetico
sobre una grafo plano. Estos metodos requieren un costo computacional mucho mayor
que Programacion Dinamica, pero en los u
ltimos a
nos se han desarrollado nuevas
implementaciones que reducen sensiblemente el costo computacional. Los algoritmos
mas recientes y con mejores resultados se basan en esta tecnica con variantes en la
forma de armar el grafo y el algoritmo para la b
usqueda del corte mnimo [40] [41] [3]
[35].
Captulo 2: MARCO TEORICO
24
2.5.2.3.
Otros M
etodos
2.5.3.
Variantes a Considerar
Tiempo Real
Captulo 2: MARCO TEORICO
25
2.5.3.2.
Estimaci
on a Resoluci
on Subpxel
2.5.3.3.
Grandes Disparidades
Captulo 2: MARCO TEORICO
26
2.6.
Selecci
on de Algoritmos de C
alculo de Disparidad Analizados
2.6.1.
Algoritmo de B
usqueda de Correspondientes Usando
Programaci
on Din
amica
WiL (x, d, wx , wy , cx , cy )
y cy
wX
x cx wX
u=cx v=cy
Captulo 2: MARCO TEORICO
27
(IR (x d + u, i + v) M R (x d, i)))2
(2.23)
(2.24)
Figura 2.14: Proceso de calculo del DSI. Note que el DSI resultante tendra dimensiones
de N (dmax dmin ).
Captulo 2: MARCO TEORICO
28
entonces DSIiL es generado por:
DSIiL (x, d, wx , wy ) =
mn
cx C x ,cy C y
WiL (x, d, wx , wy , cx , cy )
(2.25)
Para 0 (x d) < N .
De esta forma recorriendo para cada punto de la scanline izquierda los posibles
(dmax dmin ) candidatos de la scanline derecha y asignando un costo a su correspondencia se construye la imagen del espacio de disparidad para cada scanline en cada
una de las imagenes. El procedimiento para la imagen derecha es similar tomando la
disparidad con el signo opuesto.
En la figura 2.16 se muestra un DSI para una scanline particular. Se pueden
observar regiones verticales y diagonales con un nivel de gris alto (claras) y regiones
horizontales con un nivel de gris bajo (oscuras). Las regiones oscuras corresponden a
puntos correspondientes entre s (x x + d).
Figura 2.15: Para reducir los efectos de las oclusiones en la generacion del DSI, se
usa una ventana de 9 9, donde los centros de las ventanas (marcados en negro)
son desplazados para evitar falsos correspondientes en regiones ocluidas y saltos de
disparidad.
Captulo 2: MARCO TEORICO
29
Figura 2.16: Imagen del espacio de disparidad para un caso particular, Arriba: Imagen
de la cual se obtiene el DSI, la lnea marca la scanline utilizada. Abajo: DSI para la
scanline marcada. Notar la lnea horizontal quebrada de baja intensidad causadas por
parejas de correspondientes. El DSI tiene una ecualizacion de histograma para mejor
visualizacion.
Encontrar un recorrido de un extremo a otro del DSI implica determinar la disparidad de cada punto en la scanline, o sea, hallar parejas de puntos correspondientes
para cada una de las scanlines, (x, sL ) (x + d, sR ). El camino a traves del DSI se
calcula usando Programacion Dinamica. Para poder hacerlo hay que definir ciertas
restricciones en como se recorre pues no todos los caminos son validos.
Basandose en la posibilidad de oclusiones algunas transiciones no son posibles.
Una oclusion en la scanline izquierda hace que un solo punto se (corresponda) con un
segmento en la scanline derecha; para un x fijo, un rango de puntos (x + d1 , x + d2 ) de
la scanline derecha son posibles candidatos (ver figura 2.17). Esta oclusion se ve como
un (salto) vertical en el DSI de (x, d1 ) a (x, d2 ), con d1 > d2 ; al corresponder con un
objeto que se encuentra detras, la profundidad sera mayor por lo que la disparidad
sera menor (ver figura 2.17). De forma similar una oclusion en la scanline derecha
hace que para un punto de coordenada xR tenga como posibles correspondientes un
segmento de xL tal que (xLi di ) = xR . Esta oclusion se ve como un (salto) diagonal
en el DSI.
Un comentario sobre la restriccion de unicidad y lo expresado en el parrafo anterior: la restriccion de unicidad implica que un punto de una imagen se corresponde
Captulo 2: MARCO TEORICO
30
con no mas de un punto en la otra imagen, esto no se viola pues todos los puntos del
segmento referido antes son posibles correspondientes, uno lo sera o ninguno, pero no
todos.
La otra direccion que puede tomar el camino en el DSI es la horizontal, manteniendo disparidad constante para un segmento de puntos. Este caso corresponde a un
plano frente a la camara paralelo al plano de la imagen, donde la profundidad sera la
misma para todos los puntos del plano.
Con estas restricciones en las transiciones entre los puntos del DSI la forma de
recorrerlo se reduce; estas posibles transiciones deben reflejarse en los estados entre
los cuales decidir en cada etapa (punto) de la Programacion Dinamica. Cada punto
del camino optimo puede estar en alguno de los tres posibles estados:
M: Matcheo horizontal.
D: Oclusion en la scanline derecha, camino diagonal.
V: oclusion en la scanline izquierda, camino vertical.
Captulo 2: MARCO TEORICO
31
No todas las transiciones son posibles pues no puede pasarse de una oclusion
vertical a una diagonal, y viceversa, sin antes haber pasado por un punto de matcheo
horizontal (ver figura 2.17).
Queda asignar un costo a cada pxel para poder aplicar la Programacion Dinamica.
El costo asignado es el valor calculado del DSI en ese punto, al cual se le suma un
costo de oclusion, CO, en caso de ser V o D. Por lo tanto el valor del DSI en caso de
oclusion queda:
DSIiL (x, d)oclu = DSIiL (x, d) + CO
(2.26)
Figura 2.18: Recorridos de la imagen del espacio de disparidad obtenidos con diferentes
costos de oclusion. Arriba: costo bajo. Medio: costo medio. Abajo: costo alto. Notar
en el u
ltimo caso la zona oscura en medio del DSI por donde debera pasar el camino
optimo, y debido al alto costo de oclusion no es tenido en cuenta.
2.6.1.1.
32
autores proponen varios (filtros) para la seleccion definitiva. Primero un GCP debe ser
el mejor correspondiente considerando ambas scanlines, lo cual implica ser el (mejor
correspondiente) tanto en la columna como en la diagonal. Segundo, el valor del DSI
en el GCP debe ser menor que el costo de oclusion, as evitar correspondientes esp
ureos. Tercero, es necesario que el vecindario del GCP presente suficiente textura para
determinar una buena correspondencia. Finalmente, se descartan los GCP aislados,
es decir, que no tiene otros GCP en el vecindario. Para forzar el camino optimo a
traves de los GCP se prohbe el pasaje (con un costo muy elevado) por puntos que
puedan hacer que se eluda el GCP. Por ejemplo, ning
un otro punto del DSI con coordenada x = xG puede estar habilitado. De esta forma se conduce al algoritmo para
utilizar los puntos donde se conoce la existencia de una correspondencia. Al mismo
tiempo esto reduce la carga computacional del algoritmo, pues descarta una cantidad
de puntos que no seran utilizados en la evaluacion, acelerando el proceso de b
usqueda
del camino optimo.
En la figura 2.19 podemos ver el camino a traves de un DSI calculado sin el uso de
los GCP, los GCP encontrados en el DSI y el camino calculado teniendo en cuenta los
GCP. Notar como se prohbe el pasaje por una region del DSI de forma de conducir
el camino hacia el GCP.
Figura 2.19: Arriba: el camino (en azul) a traves de un DSI calculado sin el uso de los
GCP. Medio: los GCP encontrados en el DSI, en rojo, y las regiones donde se prohbe
el pasaje del camino. Abajo: el camino (en azul) calculado teniendo en cuenta los
GCP.
Captulo 2: MARCO TEORICO
2.6.2.
33
Algoritmo de b
usqueda de correspondientes usando
Block-Matching de Kurt Konolige
El algoritmo de b
usqueda de correspondencias estereo de Kurt Konolige, es un
algoritmo rapido de b
usqueda de bloques correspondientes (Block Matching BM),
que calcula sus resultados en un solo paso usando ventanas que computan la semejanza por medio de Suma de Diferencias Absolutas (SAD) entre pixeles en la imagen
izquierda y pixeles en la imagen derecha, desplazando la ventana una cierta cantidad
de pixeles sobre la imagen izquierda con respecto a la imagen derecha (desde un valor
de disparidad mnimo a un valor maximo.
Con el fin de mejorar la calidad y confiabilidad del mapa de disparidad, el algoritmo
incluye etapas de pre filtrado y post filtrado. Este algoritmo encuentra solo puntos
altamente relacionados (con alta textura) entre las dos imagenes. Por lo tanto, en
una escena con alta textura como puede ocurrir al exterior en un bosque, cada pixel
podra tener una profundidad estimada. En una escena con muy baja textura como
en un salon interior, muy pocos puntos podran registrar una profundidad.
El algoritmo lleva a cabo la b
usqueda de bloques correspondientes u
nicamente en
la direccion x. Esto significa que el par estereo sobre el cual trabaja debera estar
rectificado.
2.6.2.1.
34
Cada una de estas transformaciones puede ser aplicada con diferentes medidas de
correlacion. Por ejemplo, LOG incluye correspondencia de cruce por cero y sus signos,
y dos medidas de magnitud: diferencia cuadratica y absoluta (tambien llamada norma
L1 ).
Normalizaci
on de Intensidades Cada una de las intensidades en un area correlacionada es normalizada por el promedio de las intensidades en el area. Es decir el
pixel central Ic de la ventana es remplazado por:
mn(max(Ic I, Icap ), Icap )
(2.27)
Captulo 2: MARCO TEORICO
35
Remoci
on de Areas
de Baja Textura Las areas de baja textura son difciles
de comparar confiablemente entre imagenes. En algoritmos estereo, dado que se trata
de determinar el movimiento horizontal entre imagenes, es deseable remover areas
donde la textura horizontal es baja. Las areas con textura insuficiente para obtener resultados confiables son descartadas (Se marcan con un 16 y aparecen como
zonas negras en el mapa de disparidad). El operador empleado es descrito en [21]. La
variacion horizontal promedio de una venta centrada en (y, x) esta dada por:
h2
W
W
1 X X
=
(I(y + j, x + i) I(y + j, x))2
4W 2 j=W i=W
(2.28)
W
1 X
I(y, x + i)
2W i=W
(2.29)
Captulo 2: MARCO TEORICO
36
Chequeo de Unicidad
Finalmente se realiza un chequeo que filtra todos aquellos pixeles que no arrojan
valores de la funcion de costo lo suficientemente diferenciados como para ser aceptados
como un resultado confiable, para ello se fija un parametro uniquenessRatio que
define el umbral para el valor de la funcion de costo matchval , definido por:
uniquenessRatio > (
2.6.3.
matchval minmatch
)
minmatch
(2.30)
El u
ltimo algoritmo estudiado es el presentado por Kolmogorov y Zabih [35].
Este algoritmo es de tipo global, y se basa en los algoritmos que llevan a cabo una
minimizacion de la funcion de energa de la forma.
E(L) = Edata (L) + Esmooth (L)
(2.31)
La minimizacion se plantea como encontrar una configuracion de etiquetas (Labels), que minimizan la energa E(L), donde Esmooth (L) mide la suavidad que presenta
la solucion, y Edata (L) mide la diferencia entre L y los datos originales. En este caso
las etiquetas que se desean asignar son los posibles valores de disparidad.
Un caso particular de la energa es la energa de Potts,
Ep (L) =
X
pP
Dp (Lp ) +
D(p,q) T (Lp 6= Lq )
(2.32)
(p,q)
Donde Dp (Lp ) es un costo por tener una disparidad Lp (la etiqueta para el punto
p) y D(p,q) es un potencial de penalizacion cuando una pareja de puntos (p, q) en un
vecindario tiene diferentes disparidades, T () vale 1 si el argumento es verdadero o
0 si es falso.
Kolmogorov y Zabih [35] presentan un algoritmo donde plantean una formulacion
de la energa de Potts Ec.(2.32) en la cual contemplan las oclusiones en la escena, As,
el problema de los puntos ocultos se modela dentro de la minimizacion de la energa.
E(L) = Edata (L) + Esmooth (L) + Eoclu (L)
(2.33)
Captulo 2: MARCO TEORICO
37
(I(p) I(q))2
(2.34)
Cp T (NC = 0)
(2.35)
2.7.
Una de las medidas de calidad para evaluar los algoritmos de mapa de disparidad
es el porcentaje de pixeles mal relacionados, esta medida es presentada en [25] y hace
uso de mapas reales de disparidad contra los cuales compara los mapas calculados
usando alguno de los algoritmos descritos.
B=
1 X
|dC (x, y) dT (x, y)| > d
N
(2.36)
(x,y)
Captulo 2: MARCO TEORICO
38
Tambien puede utilizarse el error RMS, sin embargo debido la mayor parte de la
literatura trabaja con el porcentaje de errores mal relacionados ya que presenta una
descripcion mas representativa del desempe
no de los algoritmos.
2.8.
Conclusiones
Captulo 3
EXPERIMENTAL
EVALUACION
DE ALGORITMOS DE
DISPARIDAD PARA LA
DE OBSTACULOS
UBICACION
En esta seccion se presentaran los resultados experimentales obtenidos al comparar
el desempe
no de tres algoritmos que han sido seleccionados por su importancia en la
literatura. Se analizaran las variables que influyen en el desempe
no de cada uno, este
estudio fue realizado con el proposito final de fijar los parametros de decision para
la utilizacion de alguno de ellos para ser implementado en el sistema de deteccion de
obstaculos que se presentaran en el siguiente captulo.
3.1.
Im
agenes de Prueba
40
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
Figura 3.1: Imagenes de prueba utilizadas para la experimentacion con sus respectivos
mapas reales de disparidad, de arriba abajo, Art, Cones, Laundry, Tsukuba, Venus.
[37]
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
Tama
no
463x370
450x375
443x370
384x288
383x434
41
3.2.
42
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
43
Figura 3.2: Porcentaje de pixeles mal relacionados para SAD, SSD y correlacion normalizada usando la media, (a) Resultados para imagen Art, (b) Resultados para
imagen Laundry, (c) Resultados para imagen Cones, (d) Resultados para imagen
Venus.
44
3.2.1.
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
Como una aportacion de este trabajo, se realizo una implementacion del algoritmo
de BM sin etapa de pre-filtrado y post-filtrado, con el fin de mejorar los tiempos de
procesamiento obtenidos usando MATLAB .
El algoritmo fue implementado en una S-Function de SIMULINK , y usando la
caja de herramientas del DSP Target Support Package TC6, para la generacion del
codigo en C para programar el DSP.
En trabajos anteriores [14] se ha mostrado que el uso de SIMULINK puede simplificar considerablemente el trabajo de programacion de un DSP, obteniendo buenos
resultados.
La S-Function llamada disparity, contiene el codigo de BM implementado anteriormente en MATLAB. Posteriormente se genero el bloque de SIMULINK como se
muestra en la figura 3.4.
Figura 3.4: Diagrama a bloques en SIMULINK a partir del cual se crea el codigo en
C para programar el DSP
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
45
Studio V3.1, para programar el DSP. En la figura 3.5 se muestran los tiempos de
procesamiento obtenidos para diferentes valores de ventana.
Figura 3.5: Tiempos de procesamiento obtenidos para imagen Tsukuba usando el algoritmo de Block Matching implementado en DSP para diferentes tama
nos de ventana
de correlacion.
3.3.
Programaci
on Din
amica
46
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
47
3.4.
48
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
utilizar la propuesta de Kurt Konolige [19] que agrega una etapa de pre-filtrado y
post-filtrado para mejorar y validar los resultados del Block Matching.
La experimentacion realizada tuvo como objetivo caracterizar el comportamiento
del algoritmo bajo diferentes valores de sus parametros, de tal forma que pudieramos
fijarlos en alg
un valor para su uso en futuros desarrollos u aplicaciones.
Los resultados se muestran para los siguientes parametros:
Rango de b
usqueda de los valores de disparidad.
Tama
no de la ventana de prefiltrado.
Parametro Icap Ec.( 2.27).
Tama
no de la ventana de b
usqueda de correspondientes.
El parametro uniquenessRatio Ec.(2.30).
La (Fig.3.9) presenta los resultados al variar el tama
no de la venta de pre-filtrado,
observamos que el comportamiento para imagenes con muchos objetos como Cones
y Tsukuba el uso de ventanas muy grandes produce resultados negativos, en cambio
Venus, que presenta muchas zonas planas tiene mejores resultados para valores de
ventana grandes. Al realizar mas pruebas sobre imagenes de la base de datos, se
ha determinado de forma practica que si este parametro se fija en 9, se obtienen
buenos resultados en la mayora de las escenas. En cuanto al tiempo de procesamiento
notamos que el tama
no de la ventana de pre-filtrado no influye, por el tipo de metodos
de convolucion de las libreras utilizadas.
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
49
Figura 3.11: Resultados variando el parametro Icap, (a) Para toda la imagen, (b)
considerando solo los pixeles de zonas marcadas como confiables
50
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
confiables los resultados de aquellas zonas marcadas como altamente confiables, esto
se puede observar en el inciso (b) de la Fig.(3.12) en el cual a medida que el umbral
toma valores mayores, el n
umero de pixeles erroneos dentro de las zonas marcadas
como altamente confiables disminuye.
Sin embargo un mayor valor de uniquenessRatio, descarta una mayor cantidad de
pixeles, por lo cual la cantidad de errores total sobre toda la imagen aumenta. Como
resultado tenemos menos pixeles calculados pero cuyo valor de disparidad calculado
es mas confiable. . (Los tiempos de procesamiento no se presentan ya que al ser
uniquenessRatio un valor de umbral, su variacion no afecta el costo computacional).
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
51
De acuerdo con los resultados obtenidos fue posible determinar los valores a utilizar
de cada uno de los parametros que afectan el dempe
no del algoritmo de BM, los valores
se resumen en la tabla 3.2.
Parametro
Tama
no de la ventana
de pre-filtrado
Icap
Tama
no de la ventana
de correlacion
Rango de disparidades
UniquenessRatio
Valor Fijado
menor a 40
5x5 hasta 21x21
25
15
Variable seg
un la aplicacion. (Suele ser un
10 % del ancho de la
imagen).
13
menor a 40
52
3.5.
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
Otro algoritmo que se decidio analizar, es el algoritmo de Corte de Grafos, presentado por Kolmogorov y Zabih citeKolmogorov. Una de las ventajas principales
de este algoritmo es que los autores han puesto a disposicion del p
ublico una implementacion de su algoritmo en C, por lo cual solo fue necesario probar su desempe
no,
lamentablemente no fue posible utilizarlo en el sistema propuesto debido al enorme
costo computacional que tiene.
A pesar de ser un algoritmo que usa las mismas libreras de C, el tiempo de
procesamiento para la imagen Tsukuba fue de 2.7 segundos. El algoritmo de corte de
Grafos presenta varias ventajas con respecto al algoritmo de Kurt Konolige, en las
figuras (3.14 y 3.15) se puede observar como, en general, los errores obtenidos con el
algoritmo de corte de grafos son mucho menores que los obtenidos con el algoritmo de
Kurt Konolige, ademas el n
umero de parametros que deben fijarse es mucho menor,
ya que en la implementacion que se utilizo para este estudio, la gran mayora de los
parametros se determinan de forma adaptiva a partir de las imagenes de entrada. Los
u
nico dos parametros que se dejan al usuario son el n
umero maximo de Iteraciones
que realiza el algoritmo para encontrar el resultado y el rango de valores de disparidad
buscado.
No obstante, el gran problema del metodo de corte de grafos radica en los tiempos
de procesamiento que son varias veces mayores a los obtenidos con el algoritmo de
Kurt Konolige, y que son tan altos que impiden por completo su implementacion para
el desarrollo de sistemas en tiempo real. Sin embargo actualmente existe un fuerte
trabajo de investigacion que busca resolver esta caracterstica, implementando nuevos
metodos de minimizacion de funciones de costo globales.
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
53
3.6.
Comparaci
on
3.6.1.
Algoritmo
Corte de Grafos
Programacion Dinamica
BM con pre-filtrado
BM
Tsukuba (B %)
4.25
19.78
15.21
34.39
Venus (B %)
5.17
37.43
14.94
67.05
Cones (B %)
13.12
28.33
23.41
41.58
Tabla 3.3: Comparacion de los resultados obtenidos sobre diferentes imagenes usando
los algoritmos de disparidad seleccionados, B es el porcentaje de pixeles mal relacionados
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
54
3.6.2.
Tiempo de Procesamiento
Los tiempos de procesamiento fueron probados en una plataforma con un procesador Centrino Duo a 1.83GHz, los resultados se presentan para la imagen Tsukuba,
usando los siguientes valores de parametros:
Tama
no de la imagen = 288x384
Rango de B
usqueda de disparidad = 16
Tama
no de Ventana= 3x3
Una observacion muy importante que debera hacerse es que el uso de programas
en MATLAB, es menos eficiente computacionalmente que implementaciones realizadas en lenguaje C, toda vez que durante el estudio de esta tesis, se pudo observar
que MATLAB no era una buena alternativa de programacion, se decidio cambiar de
lenguaje de programacion y utilizar C.
El metodo que arrojo los siguientes mejores resultados fue el algoritmo de Block
Matching con etapa de prefiltrado, que ademas como se muestra en la tabla (3.4), se
pudo implementar en tiempo real usando las libreras de open CV.
Implementaciones en MATLAB
Algoritmo
Tiempo (Imagen Tsukuba)
BM
8.9 s
Programacion Dinamica
10.25 s
Implementacion DSP
BM
2.6 s
Implementaciones en C
BM (Konolige)
0.015 s
Corte de Grafos
2.7 s
Tabla 3.4: Tiempos de procesamiento de los diferentes algoritmos al probarlos sobre
la imagen Tsukuba usando ventana de 3x3
3.7.
Conclusiones
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
55
56
EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS
caractersticas hardware del DSP, un trabajo mas cuidadoso sobre el DSP permitira la
implementacion de algoritmos de calculo de disparidad en tiempo real. A pesar de esto
no debe perderse de vista que el uso de herramientas de alto nivel como SIMULINK
reduce enormemente el tiempo de desarrollo de sistemas y fue por eso que se eligio
para esta implementacion.
Captulo 4
SISTEMA PROPUESTO DE
DE OBSTACULOS
DETECCION
En esta seccion se presentara y describira el algoritmo de deteccion de obstaculos
desarrollado, y se mostraran los resultados obtenidos.
4.1.
Plataforma Utilizada
4.1.1.
C
amara Est
ereo
DE OBSTACULOS
58
Figura 4.1: Camara estereo utilizada como sistema de adquisicion de las imagenes
estereo.
4.1.2.
Vehculo NECSCAR
4.1.3.
Estaci
on De Trabajo
Para las pruebas realizadas se utilizaron dos diferentes procesadores, una computadora con procesador centrino duo a 1.8GHz y la otra con procesador a 3GHz.
4.1.4.
Secuencias de Im
agenes de Prueba
DE OBSTACULOS
59
Pasto.
Peatones.
En la secuencia Cajas el vehculo se mueve en lnea recta a velocidad constante,
pasando en medio de una serie de cajas de carton, las cuales se han marcado con
rectangulos blancos, para mejorar los resultados al utilizar el tracking usando flujo
optico, y de este modo disminuir el impacto de los errores del flujo optico para analizar
u
nicamente los errores ocasionados por el algoritmo de calculo de disparidad.
En esta secuencia el vehculo jamas entra en riesgo de colision, ya que pasa en
medio de las cajas y demas obstaculos.
Esta escena presenta dificultades para el algoritmo de b
usqueda de correspondientes debido a las zonas sin textura de las cajas y las paredes de las construcciones
situadas a los lados Fig.(4.3).
La secuencia Peatones se grabo en el mismo escenario que la secuencia cajas,
solo que el vehculo se mueve en direccion contraria, y se agregaron algunos peatones
que pasan delante del vehculo, poniendolo en riesgo de colision, para poder analizar
el comportamiento sobre objetos en movimiento. La primer imagen de la secuencia
Peatones se muestra en la Fig.(4.4).
Finalmente la secuencia Pasto se grabo en una zona con mucha textura (areas
verdes), lo cual es una caracterstica deseable cuando se trabaja con algoritmos de
b
usqueda de correspondientes, en esta secuencia de imagenes el vehculo mantiene
60
DE OBSTACULOS
DE OBSTACULOS
61
una rapidez constante, sin embargo realiza cambios de direccion, que en ocasiones lo
sit
uan frente a diversos objetos distribuidos a lo largo de la escena, como son cajas y
marcas viales.
4.1.5.
Escenario de Pruebas
Con el fin de poder comparar las estimaciones de distancia realizadas usando los
algoritmos de vision, las secuencias de imagenes (Cajas y Peatones) se realizaron en
un entorno donde se conocan las distancias con respecto a las cajas y el vehculo, esto
aunado a la restriccion de que el vehculo se mueve a velocidad constante y en lnea
recta nos permite tener en todo momento una nocion de la posicion real del vehculo
con respecto a cada uno de los objetos de las escenas.
En la figura (4.6) se muestran las dimensiones del escenario de pruebas utilizado
en la secuencia Cajas. La secuencia peatones se grabo en el mismo escenario pero el
vehculo lo recorre en sentido opuesto.
Debido a que la secuencia Pasto se grabo en un lugar abierto donde no se tienen
puntos de referencia para poder medir las dimensiones del escenario, y debido a que
el vehculo en esta secuencia, no mantiene un movimiento rectilneo uniforme, la
medicion de las distancias para cada momento de la escena no es posible, por lo cual
dicho escenario no se utilizara para evaluar la estimacion de distancias, u
nicamente
se utiliza para probar el algoritmo deteccion de obstaculos en un ambiente con mucha
textura.
62
DE OBSTACULOS
Figura 4.6: Dimensiones del escenario donde fueron grabadas las secuencias Cajas y
Peatones.
4.2.
Sistema Propuesto
4.2.1.
Etapa de Preprocesamiento
Esta etapa consiste en todas las transformaciones previas, que deben hacerse antes
de aplicar el algoritmo estereo. La calibracion de las camaras se realiza fuera de lnea
una sola vez para obtener los parametros de calibracion que posteriormente se utilizan
para rectificar la imagenes del par estereo. El resto de las manipulaciones previas se
realizan en lnea por lo cual impactan sobre el tiempo de procesamiento total del
algoritmo.
DE OBSTACULOS
63
4.2.1.1.
Calibraci
on de las C
amaras
64
DE OBSTACULOS
Figura 4.9: Esquinas de la malla de Tsai utilizadas para la calibracion. Los puntos de colores son las esquinas detectadas automaticamente por la herramienta para
calibracion de camaras de openCV.
DE OBSTACULOS
65
en la figura 4.10.
Figura 4.10: Imagenes del patron de Tsai ya corregidas (sin distorsion) lo cual se
puede notar al observar que las lneas de la puerta del fondo y el tablero ya no son
curvas, podemos observar que en imagenes rectificadas los puntos correspondientes se
encontraran siempre en la misma fila (lneas horizontales).
Separaci
on de las Im
agenes
La camara utilizada, enva las dos imagenes del par estereo como una sola imagen
entrelazada byte a byte (Fig.4.11) con lo cual se consigue que las imagenes se reciban
sincronizadas (es decir que se tomen en el mismo instante de tiempo), lo cual es
importante para obtener resultados correctos al momento de estimar la profundidad.
A partir de la imagen original entrelazada es necesario separar las imagenes izquierda y derecha.
4.2.1.3.
Interpretaci
on del Patr
on de Bayer para la Obtenci
on de la Informaci
on de Color
66
DE OBSTACULOS
Figura 4.11: Imagen original como es tomada por la camara estereo,observe que la
imagen izquierda y derecha estan entrelazadas (arboles duplicados al fondo).
DE OBSTACULOS
67
4.2.1.4.
Rectificaci
on
La rectificacion, como se menciono anteriormente, corrige los efectos de la distorsion (radial y tangencial) y alinea las lneas de b
usqueda con el eje x (Fig.4.15), con
el proposito de alistar las imagenes para el proceso de b
usqueda de correspondientes.
4.2.2.
C
alculo de Disparidad
Las imagenes en escala de grises, ya rectificadas estan listas para ser utilizadas
por el algoritmo de calculo de disparidad, el cual en este caso es el algoritmo de BM
de Kurt Konolige.
68
DE OBSTACULOS
Figura 4.15: Par de imagenes rectificadas y sin distorsion, observe que las lneas de
b
usqueda (lneas horizontales) son paralelas al eje x, ademas observe la zona negra a
en el extremo derecho de la imagen derecha que surge como resultado del movimiento
de los pixeles al ser rectificada.
DE OBSTACULOS
69
Figura 4.16: Mapa de disparidad obtenido para una secuencia real, los objetos aparecen con un color rojo mas claro mientras mas cercanos se encuentran, los puntos
negros indican puntos donde la disparidad no pudo ser calculada.
4.2.3.
Estimaci
on de la Profundidad a Partir del Mapa de
Disparidad
4.2.4.
Creaci
on de la zona de Inter
es
Sin que la intension de este proyecto sea profundizar en el modelado de la cinematica de un vehculo, si es necesario contar con alg
un modelo sencillo que nos
permita estimar la posicion del vehculo basados en su velocidad, posicion y direccion
en todo momento. Para ello hemos utilizado el modelo bicicleta de un vehculo de
cuatro ruedas el cual esta dado como.
De la figura 4.17 se pueden deducir las siguientes ecuaciones.
X = V1 cos
(4.1)
Y = V1 sen
(4.2)
tan 2
= V1
L
(4.3)
70
DE OBSTACULOS
(4.4)
tan 2
L
(4.5)
(4.6)
Y (k + 1) = Y (k) + V1 T cos
(4.7)
De donde.
(k + 1) = (k) + V1 T
De igual modo.
Por lo cual una vez que conocemos la velocidad y angulo de las ruedas, se puede
predecir la posicion futura del vehculo.
Usando la informacion de las dimensiones y la posicion futura del vehculo se crea
una cajade deteccion de obstaculos, que es la zona donde nos interesa conocer si hay
o no objetos debido a que es la zona por donde pasara el vehculo al desplazarse. Para
determinar el ancho y la altura de la caja, se consideran las medidas del vehculo. La
caja resultante se muestra en la figura 4.18. Note que el origen del eje de coordenadas
se sit
ua a la mitad de la lnea base de la camara estereo, en tanto que las coordenadas
en X son positivas hacia la izquierda, en Y hacia arriba y en Z haca enfrente.
Suponiendo que el sistema se use como un detector que brinde una alarma al
conductor cuando un objeto se situe dentro de su zona de riesgo, suele considerarse
DE OBSTACULOS
71
Figura 4.18: Zona de riesgo, creada usando las dimensiones del vehculo y la prediccion
de su posicion futura.
que el tiempo de reaccion del conductor es de 200ms, por lo cual se necesita estimar
la posicion del vehculo en este intervalo de tiempo.
Para determinar el ancho y la altura de la caja, se consideran las medidas del
vehculo.
4.2.5.
B
usqueda de Objetos Dentro de la Zona de Inter
es
En esta etapa u
nicamente se verifican los pixeles que se encuentran dentro de la
zona de interes y determinada en la etapa anterior. Si hay alg
un pixel dentro de esta
zona se marca como un obstaculo y se despliega en la imagen final.
En las figuras 4.20 y 4.19. Se muestran algunos objetos detectados en las secuencias
Pasto y Peatones.
Debido a que en la secuencia Cajas el vehculo nunca se encuentra en peligro de
colision ya que pasa por en medio de las cajas en todo momento, no se pueden mostrar
objetos detectados. Para poder observar su funcionamiento fue necesario simular una
region de interes mucho mas ancha, de tal forma que se detecten las cajas de los lados,
los resultados se muestran en la figura 4.21.
72
DE OBSTACULOS
DE OBSTACULOS
73
74
DE OBSTACULOS
DE OBSTACULOS
75
76
DE OBSTACULOS
4.3.
Discusi
on
4.3.1.
Costo Computacional
Algoritmo de C
alculo de Disparidad y Etapa de Preprocesamiento
DE OBSTACULOS
77
Plataforma utilizada
Procesador 1.83GHz, Imagenes de 640 x 480
Procesador 1.83GHz imagenes de 320x240
Procesador 3GHz, Imagenes
de 640 x 480
Procesador 3GHz imagenes
de 320x240
N
umero de imagenes procesadas por segundo.
8
31
15
55
4.3.1.2.
Sistema Completo
A continuacion se muestran los tiempos de procesamiento del sistema de deteccion de obstaculos usando las dos plataformas descritas anteriormente, las pruebas
se realizaron sobre imagenes de 640x480 y 320x240 pixeles. En este caso el algoritmo
alcanza a procesar 27 imagenes por segundo cuando se utilizan imagenes de 320 x240
en un procesador a 3 GHz.
78
DE OBSTACULOS
N
umero de imagenes procesadas por segundo.
4
16
7
27
Tabla 4.2: Cantidad de imagenes procesadas por segundo por el sistema de deteccion
completo
4.3.2.
Eror en la Estimaci
on de la Profundidad
Figura 4.23: Una de las imagenes de la secuencia, en ella pueden observarse los puntos
que se siguen para calcular su profundidad.
DE OBSTACULOS
79
Figura 4.24: Variacion de la distancia con del vehculo con respecto a los puntos
objetivos, los cambios bruscos se presentan cuando los puntos se salen del campo
visual de las camaras.
En la secuencia, los puntos son seguidos fielmente mientras los objetivos se encuentran dentro del campo de vista de las camaras, sin embargo una vez que salen
de dicho campo (cuadro 138 y 300), los puntos son reubicados al fondo de la imagen (zona con arboles) por lo cual se presenta el cambio brusco en la profundidad
calculada.
Un resultado interesante es observar como a
un despues de que los puntos fueron
reubicados sobre los arboles del fondo situados muchos metros mas atras, existe una
estimacion correcta de la profundidad (cuadros 150 a 350 del punto 6 y 300 a 350 del
80
DE OBSTACULOS
punto 4), con su respectiva perdida de resolucion para distancias grandes explicada
anteriormente.
El desplazamiento de 6 metros existente entre los dos objetivos (cajas) puede
verse en la Fig. 4.24, como la diferencia en el eje vertical existente entre las dos
rectas. Las rectas descienden con pendiente constante entre los cuadros 1 y 138, lo
cual es el resultado del movimiento rectilneo uniforme del vehculo. El error promedio
al calcular la distancia entre cajas en este caso fue de 29 cm.
Otro experimento que se realizo consiste en comparar los resultados de profundidad obtenidos, con aquellos valores teoricos que deberan obtenerse considerando que
el vehculo se mueve a una velocidad constante, conociendo su posicion inicial con
respecto a cada una de las cajas (Fig. 4.25 y 4.26). En este caso el error promedio
fue de 11.3 cm para el punto 6 situado sobre la caja mas cercana, el hecho de que el
error sea menor que el obtenido en el experimento anterior se debe a que en este caso
solo influye el error de la estimacion para un objetivo, que ademas se trata de la caja
mas cercana situada inicialmente a 7 m del vehculo, en tanto que en el caso anterior influyen los errores de la estimacion para el objetivo situado a 7m y el siguiente,
situado 6 m mas atras.
Para el punto 4 situado en la caja situada inicialmente a 13m del vehculo, el error
promedio fue de 36 cm. Podemos observar por lo tanto como el error aumenta con la
DE OBSTACULOS
81
4.3.3.
An
alisis de Precisi
on en la Estimaci
on de la Profundidad
82
DE OBSTACULOS
DE OBSTACULOS
83
Podemos observar que la estimacion realizada sera mejor para objetos de la escena
que se encuentren cercanos a la camara, esto es debido a la relacion no lineal existente
entre la profundidad y la resolucion.
4.4.
Conclusiones
84
DE OBSTACULOS
robotica movil, en el caso de robots que avancen a una velocidad de algunos metros
por segundo.
Ademas de los errores inherentes al calculo de disparidad, se deben considerar los
errores existentes para seguir los puntos seleccionados a lo largo de toda la secuencia
usando flujo optico, as como, los errores producidos en el control de la velocidad del
vehculo debido a las irregularidades del suelo.
Los errores promedio obtenidos son suficientemente buenos para vehculos desplazandose a bajas velocidades como en el caso presentado ya que nos permite estimar la posicion de un objeto situado a 6 m de distancia con un error promedio de
tan solo 11.3 cm.
Captulo 5
CONCLUSIONES
Se llevo a cabo el estudio del estado del arte de algoritmos de calculo de disparidad.
Se eligieron tres algoritmos de calculo de disparidad por su importancia en la literatura del tema para ser implementados y evaluados (Block Matching, Programacion
Dinamica y Corte de Grafos).
Se realizo la evaluacion de desempe
no de dichos algoritmos, encontrando que el
algoritmo de Corte de Grafos presenta los mejores resultados de calidad, sin embargo,
es mucho mas costoso computacionalmente que los algoritmos de Block Matching y
Programacion Dinamica.
El algoritmo de Block Matching presenta un mucho mejor desempe
no en cuanto
a tiempo de procesamiento por lo cual se eligio para utilizarlo dentro del sistema de
deteccion de obstaculos.
El algoritmo de Block Matching y de Programacion Dinamica fueron implementados inicialmente en MATLAB r sin embargo, debido a que se obtuvieron tiempos
de procesamiento muy grandes (menos de una imagen procesada por segundo), se
opto por realizar la implementacion de los algoritmos en C utilizando las libreras de
openCV. Se utilizo el algoritmo de Block Matching como metodo de estimacion de
profundidad a partir de camaras estereo para el sistema de deteccion de obstaculos.
Fue posible implementar un sistema completo de pre procesamiento para adquirir,
corregir el color, y rectificar las imagenes de la camara estereo, con el proposito de
que el algoritmo de calculo de disparidad fuera utilizado sobre escenas reales.
Usando la informacion 3D a partir del mapa de disparidad y la informacion de la
dinamica del vehculo fue posible crear un sistema de deteccion de obstaculos dentro
de una determinada region de interes.
El algoritmo de deteccion de obstaculos presento resultados muy alentadores para
continuar su mejora, sin embargo fue posible observar la ocurrencia de algunos errores
de deteccion sobre todas las secuencias de prueba.
Los resultados obtenidos ocupando el metodo de b
usqueda de correspondientes
85
86
Captulo 5: CONCLUSIONES
5.1.
Trabajo a Futuro
Optimizacion del algoritmo de Block Matching con pre filtrado y post filtrado,
usando hardware especfico con el fin de mejorar los tiempos de procesamiento.
Como posible trabajo a futuro puede abordarse el tema de la implementacion del
algoritmo de Corte de Grafos en tiempo real, lo cual es un trabajo que actualmente
se esta abordando por varios equipos de investigacion a nivel mundial.
Mejorar el algoritmo de deteccion de obstaculos propuesto, agregando alg
un tipo
de filtrado temporal con el fin de disminuir la ocurrencia de errores en la deteccion.
Bibliografa
[1] Julesz B. Towards the automation of binocular depth perception (automap1).
Proceedings of the IFIPS Congress, 1963.
[2] S.T. Barnard and M.A. Fischler. Computational stereo. ACM Computing Surveys, page 7, 2001.
[3] Olga Veksler y Ramin Zabih Boykov. Fast approximate energy minimization via
graph cuts. IEEE Transactions on Pattern Analysis and Machine Intelligence,
pages 12221239, 2001.
[4] Gary Bradsky and Adrian Kaehler. Learning OpenCV. USA: OReilly Media,
Inc., 2008.
[5] D. C. Brown. Close-range camera calibration. Photogrammetric Engineering 37,
pages 855866, 1971.
[6] C.Schmid and A. Zisserman. The geometry and matching of curves in multiple
views. Proc. Computer Vision and Pattern Recognition, pages 593600, 1994.
[7] Leonardo da Vinci. Tratado de la Pintura. Version Castellana de Mario Pitaluga.
Losada, 1943.
[8] S. B.Nickerson
et al. Autonomous navigation of a mobile robot in a known
environment. IAS-3, pages 288293, 1993.
[9] P. Fua F. Bigone, O. Henricsson and M. Stricker. Automatic extraction of generic
house roofs from high resolution aerial imagery. Proc. European Conf. Computer
Vision, pages 8596, 1996.
[10] J. G. Fryer and D. C. Brown. Lens distortion for close-range photogrammetry.
Photogrammetric Engineering and Remote Sensing, pages 5158, 1986.
[11] Evangelos Milios Greg Dudek, M. Jenkin and David Wilkes. Map validation
and self-location for a robot with a graph-like map. Robotics and Autonomous
Systems, 1996.
87
88
Bibliografa
[12] Evangelos Milios Greg Dudek, M. Jenkin and David Wilkes. On building and
navigating with a local metric environmental map. ICAR 97, 1997.
[13] R. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision.
Cambridge University Press, Cambridge,UK, 2006.
[14] Volodymyr Ponomaryov Heydy Casyillejos Fernandez. Procesamiento de imAgenes a color en 2d y 3d, school = IPN ESIME-CULHUACAN, year = 2009,.
Masters thesis.
[15] TYZX Incorporated. Real-time Stereo Vision for Real-world Object Tracking.
http://www.tyzx.com/.
[16] Nan-Ning Zheng y Heung-Yeung Shum Jian Sun. Stereo matching using belief
propagation. IEEE Transactions on Pattern Analysis and Machine Intelligence,
pages 787800, 2003.
[17] B Julesz. Foundations of cyclopean perception. The University of Chicago Press,
1971.
[18] Vladimir Kolmogorov. Graph Based Algorithms for Scene Reconstruction from
Two or more Views. Cornell University, 2004.
[19] K. Konolige. Small vision system: Hardware and implementation. Proceedings
of the International Symposium on Robotics Research, pages 111116, 1997.
[20] D. Marr and T. Poggio. computational theory of human stereo vision. Proc R
Soc Lond, pages 301328, 1979.
[21] L Matthies. Stereo vision for planetary rovers: stochastic modeling to near realtime implementation. Proceedings of the International Symposium on Robotics
Research, pages 7191, 1993.
[22] Darius Burshka y Gregory D. Hager Myron Z. Brown. Advances in computational
stereo. IEEE Transactions on Pattern Analysis and Machine Intelligence, pages
9931008, 2003.
[23] Quang-Tuan Luong y Theo Papadopoulo Olivier Faugeras. The Geometry of
Multiple Images: The Laws That Govern the Formation of Multiple Images of a
Scene and Some of Their Applications. MIT Press, 2001.
[24] Ingemar J. Cox Sebastien Roy. A maximum-flow formulation of the n-camera
stereo corespondence problem. International Conference on Computer Vision,
pages 492502, 1998.
Bibliografa
89
90
Bibliografa
Ap
endice A
Publicaciones en Congresos
91
5 CONGRESO INTERNACIONAL DE
INGENIERA ELECTROMECNICA Y DE SISTEMAS
Mxico, D. F. 10-14 de Noviembre 2008
ELO051
II. METODOLOGA
A. Disparidad
Una forma de estimar la profundidad de cada uno de los
puntos en una escena es mediante el clculo de la disparidad
(diferencia de posicin) entre las imgenes de la misma.
Para definir la disparidad asumiremos que la escena es
esttica, es decir, los objetos visibles en ella no cambian su
posicin, ni sufren deformaciones, y las imgenes son
tomadas usando una configuracin de dos cmaras con
caractersticas similares, formando un par estreo (Fig.1).
Por simplicidad se considera que cada una de ellas
cumple con el modelo pinhole y que sus ejes pticos son
paralelos
.
Ambas cmaras tienen la misma distancia focal, f, con
centros Ol y Or separados una distancia b, llamada lnea base
I. INTRODUCCIN
En muchas aplicaciones de la robtica mvil se
requieren sistemas de visin estreo con el propsito de
explorar el rea alrededor del robot debido a que el control
de la navegacin se puede mejorar mediante la resolucin de
tareas como la deteccin de obstculos, el reconocimiento
de formas y la estimacin de distancias. [5, 6, 7].
Las imgenes son sistemas que brindan una gran
cantidad de informacin acerca del entorno que nos rodea
(color, formas, etc.), no obstante la profundidad de un punto
en una escena no puede ser directamente accesible a partir
de una sola imagen, para ello son necesarias al menos dos,
con lo cual, la profundidad se calcula mediante
Se agradece el soporte econmico para la realizacin de este trabajo
al Consejo Nacional de Ciencia y Tecnologa (CONACYT) y al
Instituto de Ciencia y Tecnologa del Distrito Federal (ICyTDF).
385
(6)
(7)
(1)
B. Problema de la Correspondencia
El objetivo de un algoritmo estreo de clculo de
disparidad es obtener la profundidad en todos los pixeles de
las imgenes del par estreo.
Para conseguir esta idea de tridimensionalidad hay que
resolver un problema importante: determinar que parejas de
puntos de ambas imgenes (en caso de hablar de visin
bifocal) se corresponden con un mismo punto de la escena.
Dado que geomtricamente pueden existir infinitas
soluciones o no existir solucin (oclusiones u
ocultamientos), para obtener mejores resultados en la
bsqueda de correspondencias deben establecerse algunas
restricciones que surgen del modelo geomtrico de las
cmaras, el modelo fotomtrico de los objetos de la escena y
las primitivas utilizadas en la bsqueda.
Los algoritmos de clculo de disparidad asumen, por
simplicidad, que las imgenes con que se trabaja estn
rectificadas, es decir que los planos de las imgenes en cada
cmara son paralelos entre s, y paralelos a la direccin en la
(2)
(5)
(3)
(4)
386
(9)
(10)
A. Implementacin y Simulacin
El mtodo que se ha implementado para la bsqueda de
correspondencias es de tipo local, lo anterior se ha hecho
con el propsito de minimizar los tiempos de ejecucin, ya
que en un futuro se pretende llevar a cabo la
implementacin en tiempo real para ser usado en el control
de navegacin de robots mviles.
Se ha llevado a cabo la evaluacin de parmetros
(tamao de ventana y funcin de costo) para determinar con
cules se obtienen mejores resultados.
Se considera que las imgenes con las cuales se
trabajar estn rectificadas, por lo tanto la bsqueda de
correspondientes nicamente se realiza entre lneas o
scanlines correspondientes, y . El rango de
disparidad se acota en , estos parmetros
en general dependern de la configuracin del par estreo
(separacin entre cmaras y la distancia mnima y mxima
posibles dentro del entorno). En este estudio, dado que las
pruebas se realizan con imgenes conocidas, los valores de
se miden directamente de las imgenes
utilizadas.
Pasos del algoritmo:
1) Se toma una ventana centrada en el pixel de
referencia con coordenadas (x,y) de la imagen
derecha.
2) Se recorre la otra imagen desde el punto
,
hasta el punto
aumentando el valor de en incrementos de 1.
3) Para cada valor de , se calcula la medida de
semejanza entre las ventanas centradas en ambos
pixeles.
4) Una vez que se termina el recorrido, se selecciona
el valor de que arroja un monto mnimo de la
medida de semejanza.
5) Se recorre el pixel de referencia en la imagen
derecha y se realiza de nuevo la bsqueda de su
correspondiente en la imagen izquierda.
El proceso se repite hasta cubrir todos los pixeles de la
imagen.
D. Medidas de Semejanza
Las medidas de semejanza entre pixeles, comnmente
empleadas son:
Suma de diferencias cuadrticas (SSD).
(8)
387
B. Experimentos
Se realiz una evaluacin del desempeo del algoritmo,
utilizando las medidas de semejanza SSD, SAD y
correlacin normalizada usando la media (11), propuesta en
[8] , esta medida tiene la propiedad de disminuir los efectos
de bias aditivas de las imgenes.
(11)
2.
(12)
(13)
Una de los parmetros ms importantes que se pretenda
evaluar es la variacin de los tiempos de procesamiento al
cambiar los parmetros de experimentacin (tamao de
ventana y funcin de costo).
IV. DISCUSIN
388
Fig. 3. Porcentaje de pixeles mal relacionados para SAD, SSD y correlacin normalizada usando la media, (a) Resultados para imagen art,
(b) Resultados para imagen laundry, (c) Resultados para imagen cones, (d) Resultados para imagen venus.
Fig. 4 Error cuadrtico medio RMS para SAD, SSD y correlacin normalizada usando la media, (a) Resultados para imagen art,
(b) Resultados para imagen laundry, (c) Resultados para imagen cones, (d) Resultados para imagen venus.
389
AGRADECIMIENTOS
Los autores agradecen al Instituto Politcnico Nacional
por la formacin, instalaciones y dems infraestructura
requerida para la realizacin de este trabajo.
Fig. 6. Resultados para la imagen venus usando SSD con ventana de 9x9.
(a) Mapa de disparidad real, (b) Mapa de disparidad calculado.
REFERENCIAS
[1] D. Marr and T. Poggio. A computational theory of human stereo vision.
Proc R Soc Lond, pages 301-328, Mayo 1979.
[2] Federico Lecumberry, Clculo de disparidad en imgenes estreo, una
comparacin, III Workshop de computacin Grfica, Imgenes y
Visualizacin.
Fig. 7. Resultados para la imagen cones usando SSD con ventana de 9x9.
(a) Mapa de disparidad real, (b) Mapa de disparidad calculado.
V. CONCLUSIONES
390
EVALUACINYCOMPARACINDELDESEMPEOENTREELALGORITMO
PARAELCLCULODEDISPARIDADUSANDOCORTEDEGRAFOS
PROPUESTOPORVLADIMIRKOLMOGOROVYELALGORITMO
USANDOBLOCKMATCHINGPROPUESTOPORKURTKONOLIGE
JessArturoEscobedoCabello1,VolodymyrPonomaryov
SEPI,ESIMECulhuacan,InstitutoPolitcnicoNacional,Mxico.Av.SantaAnaNo.1000,
Col.SanFco.Culhuacan,C.P.04430,MxicoD.F.,Mxico
TelfonoyFax(55)57296000Email:arturoescobedo_iq@hotmail.com1
ResumenEnestetrabajosepresentarunaevaluacindeldesempeodedosmtodos
para el clculo de un mapa denso de disparidad, el primero propuesto por Vladimir
Kolmogorovquehaceusodelatcnicademinimizacindecortedegrafos,yelsegundo
es el presentado por Kurt Konolige usando Block Matching. Se consideran estas
propuestasdebidoaqueambashansidoampliamentereconocidasporsuefectividaden
el mundo de la visin por computadora y existen diversas implementaciones usando
MATLAB,oC,porlocualpuedenserfcilmenteincorporadascomopartedesistemasde
tratamientodeimgenesyvisinrobticamscomplejas.Laexperimentacinconsisteen
variar los parmetros que influyen en su desempeo, comparando los resultados
obtenidosentreambosalrealizarpruebassobreimgenescondiferentescaractersticas
detextura,oclusiones,etc.
AbstractDepthestimationofobjectsinaparticularscenefromstereoimagesisoneof
the most prolific areas in computer vision. This is because it provides very important
informationformanyapplicationsasvirtualreality,robotnavigationandsoon.Thiswork
presentsaperformanceevaluationoftwomethodsforcalculatingadensedisparitymap,
onedevelopedbyVladimirKolmogorovthatusesgraphcutstechnique,andtheotherone
isKurtKonoligesBlockMatchingMethod.
I. INTRODUCCIN
Enmuchasaplicacionesdelarobticamvilserequierensistemasdevisinestreoconel
propsito de explorar el rea alrededor del robot debido a que el control de la
navegacin se puede mejorar mediante la resolucin de tareas como la deteccin de
obstculos,elreconocimientodeformasylaestimacindedistancias.[1,2,3].
debidoasurapidezybuenosresultadosloquelohaceunamuybuenaopcinparaser
implementado como parte de sistemas ms complejos que puedan trabajar en tiempo
real.Porestaraznsehanelegidoestosdosmtodosparacaracterizarsusresultados.
II. ALGORITMOSESTUDIADOS
ALGORITMODEBLOCKMATCHINGDEKURTKONOLIGE
ElalgoritmodebsquedadecorrespondenciasestreodeKurtKonolige,esunalgoritmo
rpidodebsquedadebloquescorrespondientes(BlockMatchingBM),quecalculasus
resultadosenunsolopasousando ventanasquecomputanlasemejanzapormediode
SumadeDiferenciasAbsolutas(SAD)[4].
Elalgoritmohaceusodeunaetapadeprefiltradoyotradepostfiltradoparamejorarlos
resultadosdelabsquedadecorrespondientes.
La etapa de prefiltrado se lleva a cabo para disminuir los efectos de la diferencia en
iluminacin y perspectiva entre las imgenes del par estreo por medio de una
normalizacindeintensidades,enlacuallaintensidaddelpixelcentral delaventanase
remplazaporelpromediodelasintensidadespor:
(1)
ALGORITMODEKOLMOGOROVYZABIH
El segundo algoritmo estudiado es el presentado por Kolmogorov y Zabih [5]. En este
algoritmosebasanenlastcnicasdeCortedeGrafosparahallarlacorrespondenciaentre
lospuntosdelasimgenes,imponiendolarestriccindeunicidad.Laexpresindeenerga
queminimizansebasaenlaenergadePotts,alacualseagregauntrminoqueconsidera
lasoclusionesenlaescena.
As,elproblemadelospuntosocultossemodeladentrodelaminimizacindelaenerga.
Pararesolverdeformaeficienteelcortedelgrafopresentandosalgoritmossimilaresal
algoritmo presentado por Boykov y otros [8], lo cual permite obtener tiempos mucho
menoresqueconotrosmtodosdecortedegrafos.
Laenergaqueseplanteatienelaexpresin
(3)
donde esunaconfiguracindeposiblesetiquetasacolocarencadapixel.Paraelcasode
clculodedisparidad,lasetiquetasson:losposiblesvaloresdedisparidad,
Donde esunatoleranciadeerrorenladisparidad.Endiversosartculossueletomarse
[6].
Para evaluar el costo computacional del algoritmo, examinamos la forma en que se
relaciona el tiempo de procesamiento con respecto a algunos parmetros de cada
algoritmo.
Para la evaluacin de resultados se us una implementacin en C del algoritmo de
Kolmogorov que puede descargarse de internet, y que es fcilmente utilizable. Dicha
implementacinpermitevariarelnmeromximodeiteracionesquerealizaelalgoritmo,
elcostodeoclusinyelrangodebsquedadelosvaloresdedisparidad.
IV. DISCUSIN
Para la evaluacin de los algoritmos se utilizarn dos implementaciones usando cdigo
optimizadoenC,sobreunaplataformaconunmicroprocesadora1.83GHz.
DelalgoritmodeKonoligesepresentanlosresultadosalvariarelrangodebsquedade
los valores de disparidad, el tamao de la ventana de prefiltrado, el parmetro
Ilustracin1.Resultadosvariandotamaodeventanadeprefiltrado,(a)Paratodala
imagen,(b)considerandosololospixelesdezonasmarcadascomoconfiables,(c)Tiempo
deprocesamiento.
Ilustracin2.Resultadosvariandotamaodeventanadecorrelacin,(a)Paratodala
imagen,(b)considerandosololospixelesdezonasmarcadascomoconfiables,(c)Tiempo
deprocesamiento.
dentro de las zonas marcadas como altamente confiables disminuye. Sin embargo un
mayor valor de uniquenessRatio, descarta una mayor cantidad de pixeles, por lo cual la
cantidaddeerrorestotalsobretodalaimagenaumenta.Comoresultadotenemosmenos
pixelescalculadosperocuyovalordedisparidadcalculadoesmuyconfiable.
Elrangodedisparidad(Error!Noseencuentraelorigendelareferencia.)afecta,debido
aquesielrangodebsquedaestcentradoenlosvaloresquepuedetenerlaescena,los
resultados sern mejores. En el caso de las figuras Venus y Tsukuba, los valores de
disparidadpresentesenlaescenasonmenoresa16porlocualalrestringirelrangode
bsquedaa16seobtienenlosmejoresresultados.EnelcasodelafiguraConeslosvalores
dedisparidadsonmayores(menoresa64)porlocualsialrangodebsquedaesmenora
64, se tienen errores considerablemente grandes ya que no se considera ni siquiera el
mnimo indispensable, posteriormente si el rango de bsqueda es mayor a 64 el error
aumentaperonodeformatandrstica.Porlotantoelvalordelaventanadecorrelacin
estardeterminadofuertementeporlaescenaqueseinspeccioneaunquesuvalorpuede
serfijadobasadosenlageometradelparestreoylazonadeintersdentrodelaescena.
ElalgoritmodecortedeGrafospresentavariasventajasconrespectoalalgoritmodeKurt
Konolige, en las figuras (10 y 11) se puede observar cmo, en general, los errores
obtenidosconelalgoritmodecortedegrafossonmuchomenoresquelosobtenidoscon
el algoritmo de Kurt Konolige, adems el nmero de parmetros que deben fijarse es
mucho menor, ya que en la implementacin que se utiliz para este estudio, la gran
mayoradelosparmetrossedeterminandeformaadaptivaapartirdelasimgenesde
entrada. Los nico dos parmetros que se dejan al usuario son el nmero mximo de
Iteracionesquerealizaelalgoritmoparaencontrarelresultadoyelrangodevaloresde
disparidadbuscado.
No obstante, el gran problema del mtodo de corte de grafos radica en los tiempos de
procesamiento que son varias veces mayores a los obtenidos con el algoritmo de Kurt
Konolige, y que son tan altos que impiden por completo su implementacin para el
desarrollodesistemasentiemporeal.
Ilustracin3.Resultadospara
diferentenmerode
iteracionesdelalgoritmode
cortedegrafos
(a)Desempeo,
(b)Tiempodeprocesamiento.
Ilustracin4.Resultadospara
diferentesrangosdebsqueda
dedisparidaddelalgoritmode
cortedegrafos(a)Desempeo,
(b)Tiempodeprocesamiento.
Ilustracin5.MapasdedisparidadobtenidosconelalgoritmodeBlockMatching,
usandolosvaloreselegidosapartirdelaexperimentacin.(a)Tsukuba,(b)Venus,
(c)Cones.
Ilustracin6.MapasdedisparidadobtenidosconelalgoritmodeGC.
(a)Tsukuba,(b)Venus,(c)Cones.
V. CONCLUSIONES
La experimentacin que ha sido aqu presentada, puede tomarse como referencia para
fijar los valores de los parmetros que afectan el desempeo de los dos algoritmos
estudiados. El algoritmo de Block Matching es un algoritmo muy rpido, lo que lo hace
idealpararealizarimplementacionesentiemporeal,comonavegacinderobotsmviles.
Lautilizacindelaetapadeprefiltradopermitemejorarlosresultadosobtenidosdurante
la bsqueda de correspondientes para obtener el mapa de disparidad, en tanto que la
etapadepostfiltrado,sibiennonospermitemejorarlosresultados,sipermiteteneruna
mayorfiabilidaddeaquellosresultadosquenosondescartadosporelalgoritmo.
ApesardelasventajasyamencionadasdelalgoritmodeCortedeGrafos,suenormecosto
computacional nos impide tomarlo como una alternativa cuando lo que se requiere es
instrumentarlo como parte de un sistema, sin embargo actualmente existe un fuerte
trabajo de investigacin que busca resolver esta caracterstica, implementando nuevos
mtodosdeminimizacindefuncionesdecostoglobales.
REFERENCIAS
[1] T.Kanade, K.Oda, A.Yoshida, M.Tanaka, and H.Kano. VideoRate Z Keying: A new
method for merging images. Technical Report CMURITR9538, The Robotic Institute,
CarnegieMellonInstitute,Diciembre1995.
[2] R. Shukla, H. Radha, and Martin Vetterli. Disparity dependent segmentation based
stereoimagecoding.InICIP,volume1,pages757760,2003.
[3]LuigidiStefano,MassimilianoMarchionni,andStefanoMattoccia.Afastareabased
stereomatchingalgorithm.ImageVisionComput.,22(12):9831005,2004.
[4]JessArturoEscobedoCabello,VolodymyrPonomaryov,Implementacinyevaluacin
del desempeo de un algoritmo para el clculo de un mapa denso de disparidad, 5
CongresoInternacionaldeIngenieraElectromecnicaydeSistemas,CIIES2008,pp.385
390.Noviembrede2008.ISBN9786074140491.
[6] D. Scharstein and R. Szeliski. A taxonomy and evaluation of dense twoframe stereo
correspondence algorithms. International Journal of Computer Vision, 742, AprilJune
2002.
[7]K.Konolige,Smallvisionsystem:Hardwareandimplementation,Proceedingsofthe
InternationalSymposiumonRoboticsResearch(pp.111116),Hayama,Japan,1997.
INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO
II. METODOLOGA
A. Disparidad
Una forma de estimar la profundidad de cada uno de los
puntos en una escena es mediante el clculo de la disparidad
(diferencia de posicin) entre las imgenes de la misma [4].
Para definir la disparidad asumiremos que la escena es
esttica, es decir, los objetos visibles en ella no cambian su
posicin, ni sufren deformaciones, y las imgenes son
tomadas usando una configuracin de dos cmaras con
caractersticas similares, formando un par estreo Fig.1.
I. INTRODUCCIN
cuyos ejes pticos son paralelos
.
Ambas cmaras tienen la misma distancia focal, , con
centros y separados una distancia , llamada lnea
base baseline, de modo que las imgenes izquierda y
derecha , que se forman, estn en planos paralelos.
De esta manera la lnea base es paralela a la coordenada
de las imgenes. En el modelo pinhole considerado, un
punto en el espacio tridimensional , de coordenadas
homogneas se proyecta en cada una de las
imgenes bidimensionales sobre los puntos y con
,
y
coordenadas homogneas
respectivamente.
La geometra proyectiva brinda las herramientas para
trabajar analticamente con las relaciones geomtricas que
gobiernan la proyeccin de un punto en 3D sobre una
imagen [5]. El uso de las coordenadas homogneas permite
78
INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO
(5)
(2)
Por lo tanto hay 5 parmetros de distorsion que deben
ser calculados durante el proceso de calibracin de la
cmara, adicionalmente a los trminos de la matriz de
calibracin. Para una mayor informacin acerca del
modelado de cmaras no ideales vea [5].
(3)
B. Calibracin y Rectificacin.
La calibracin de las cmaras del par estreo es el
proceso por medio del cual se determinan los parmetros
intrnsecos de cada una de ellas, as como la posicin en la
que se encuentra una con respecto a la otra.
Para calibrar las cmaras suele utilizarse un patrn de
puntos ordenados a una distancia regular, por ejemplo las
esquinas de la cuadrcula de un tablero de ajedrez, este
mtodo se conoce como el mtodo Tsai y es presentado en
[6].
Una vez que se conocen los parmetros internos de las
cmaras y la relacin geomtrica existente entre ellas, es
posible llevar a cabo la rectificacin de las imgenes. La
rectificacin de las imgenes consiste en proyectar las
imgenes del par estreo, de forma que los planos de las
imgenes en cada cmara sean paralelos entre s, y paralelos
a la direccin en la cual existe el desplazamiento entre las
imgenes. Luego de la rectificacin las imgenes de la
escena quedan en posicin (fronto-paralela) como se
(4)
(7)
79
INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO
x
x
E. Etapa de Prefiltrado.
Esta etapa se lleva a cabo para disminuir los efectos de
la diferencia en iluminacin y perspectiva entre las
imgenes del par estreo. Los mtodos de correlacin
usualmente tratan de compensarlo al realizar la correlacin
no sobre las imgenes originales sino sobre alguna imagen
transformada. En este caso se usa el mtodo de
normalizacin de intensidades.
Normalizacin de Intensidades: Cada una de las
intensidades en un rea correlacionada es normalizada por el
promedio de las intensidades en el rea. Es decir el pixel
central de la ventana es remplazado por:
Fig. 3. Esquema del proceso de rectificacin de imgenes de un par estreo.
(8)
F. Etapa de Post-filtrado
En esta etapa, el algoritmo emplea un operador de
inters para eliminar las zonas con poca textura y de un
chequeo de consistencia izquierda/derecha para eliminar los
errores causados en zonas ocluidas en alguna de las dos
imgenes.
Aunque el operador de inters requiere un umbral [8]
muestra que es simple fijar su valor basado en el nivel de
ruido presente en la entrada de video. Poniendo un rea
gris lisa en frente de las cmaras produce un nivel de inters
referido nicamente al ruido en el video, el umbral es
definido un poco arriba de dicho nivel.
En la prctica, la combinacin de las dos tcnicas
mencionadas han probado ser altamente efectivas
eliminando malos correspondientes. El operador empleado
es descrito en [2].
La variacin horizontal promedio de una venta centrada
en est dada por:
80
(9)
INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO
Donde
Fig.4. Imagen original como es tomada por la cmara estreo, observe que
la imagen izquierda y derecha estn entrelazadas.
(11)
Implementacin y Simulacin
B. Etapa de preprocesamiento
Esta etapa consiste en todas las transformaciones previas,
que deben hacerse antes de aplicar el algoritmo estreo.
81
INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO
Fig.6. Par de imgenes rectificadas y sin distorsin, observe que las lneas
de bsqueda (lneas rojas) son paralelas al eje x.
Fig. 9. Una de las imgenes de la secuencia, en ella pueden observarse los
puntos que se siguen para calcular su profundidad.
70
punto 4
punto 6
60
40
30
20
10
50
50
100
150
200
250
Nmero de cuadro de la secuencia
300
350
Fig. 10. Variacin de la distancia con del vehculo con respecto a los puntos
objetivos, los cambios bruscos se presentan cuando los puntos se salen del
campo visual de las cmaras.
82
INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO
profundidad estimada
profundidad real
IV. CONCLUSIONES
6.5
6
5.5
5
4.5
4
3.5
3
10
20
30
40
50
60
70
Nmero de cuadro de la secuencia
80
90
100
AGRADECIMIENTOS
Los autores agradecen al Instituto Politcnico
Nacional y CONACyT (proyecto 81599) por apoyo para la
realizacin de este trabajo.
REFERENCIAS
[1] R. Shukla, H. Radha, and Martin Vetterli. Disparity dependent
segmentation based stereo image coding. In ICIP, volume 1, pages 757760, 2003.
[2] Matthies, L. Stereo vision for planetary rovers: stochastic modeling to
near realtime implementation. IJCV 8(1), (pp. 71-91), 1993.
[3] D. Marr and T. Poggio. A computational theory of human stereo vision.
Proc R Soc Lond, pages 301-328, Mayo 1979.
[4] Federico Lecumberry, Clculo de disparidad en imgenes estreo, una
comparacin, III Workshop de computacin Grfica, Imgenes y
Visualizacin.
[5] R. Hartley and A. Zisserman, Multiple View Geometry in Computer
Vision, Cambridge, UK: Cambridge University Press, 2006.
[6] R. Y. Tsai, A versatile camera calibration technique for high accuracy
3D machine vision metrology using off -the-shelf TV cameras and lenses,
IEEE Journal of Robotics and Automation 3 (1987): 323344.
[7] Olivier Faugeras, Quang-Tuan Luong y Theo Papadopoulo. The
Geometry of Multiple Images: The Laws That Govern the Formation of
Multiple Images of a Scene and Some of Their Applications. MIT Press.
[8] K. Konolige, Small vision system: Hardware and implementation,
Proceedings of the International Symposium on Robotics Research (pp.
111116), Hayama, Japan, 1997.
[9] R. Szeliski and D. Scharstein, Symmetric Sub-Pixel Stereo Matching,
European Conference on Computer Vision, 2002.
[10] A. Lukin and D. Kuvasov, High-Quality Algorithm for Bayer Pattern
Interpolation, Programming and Computer Software, Vol. 30, No. 6, pp.
347-358, 2004.
[11] Jess Arturo Escobedo Cabello, Volodymyr Ponomaryov, Evaluacin
y comparacin del desempeo entre el algoritmo para el clculo de
Disparidad usando corte de Grafos propuesto por Vladimir Kolmogorov y
el algoritmo usando Block Matching propuesto por Kurt Konolige, SOMIXXIV.
IV. DISCUSIN.
Los valores de profundidad 3D de una escena presentan
una relacin no lineal con respecto a los valores de
disparidad calculados, como resultado los valores de
profundidad que se calculan usando un sistema basado en
visin estreo como el que se muestra en este artculo, en
general tendrn una mejor resolucin para objetos cercanos
a la cmara.
La estimacin de la profundidad a nivel sub-pixel,
mejora considerablemente la resolucin de este sistema,
haciendo posible su uso en aplicaciones tales como la
robtica mvil, en el caso de robots que avancen a una
velocidad de algunos metros por segundo.
Adems de los errores inherentes al clculo de
disparidad, se deben considerar los errores existentes para
seguir los puntos seleccionados a lo largo de toda la
secuencia usando flujo ptico, as como, los errores
producidos en el control de la velocidad del vehculo debido
a las irregularidades del suelo. Los errores promedio
obtenidos son suficientemente buenos para vehculos
desplazndose a bajas velocidades como en el caso
presentado ya que nos permite estimar la posicin de un
83
Ap
endice B
Procesador Digital de Se
nales
Informacion general acerca del DSP empleado en esta tesis.
Un DSP o procesador digital de se
nales es un dispositivo Capaz de realizar operaciones matematicas sobre se
nales discretas para realizar una transformacion y obtener
una se
nal de salida modificada.
La aplicacion de sistemas de Hardware especfico como es un DSP, suele ser alentado por la b
usqueda de realizar implementaciones de algoritmos en tiempo real, o para
la ejecucion de tareas independientes que forman parte de sistemas mas complejos.
El DSP utilizado durante la ejecucion de esta tesis es fabricado por la empresa Texas
Instruments.
Texas Instruments maneja tres plataformas en la serie TMS320C:
1. TMS320C2000. Utilizado en aplicaciones de control automatico.
2. TMS320C5000.Para aplicaciones de bajo consumo de potencia.
3. TMS320C6000. Empleado en aplicaciones que requieren de un alto rendimiento.
El DSP utilizado para este proyecto es el TMS320C6713, presenta las siguientes
caractersticas:
Opera a 225 MHz.
Tiene un codificador estereo AIC23
16 Mbytes de memoria SDRAM (RAM dinamica de acceso sncrono).
512 Kbytes de memoria flash.
4 LEDs y DIP switches accesibles al usuario.
113
114
Aumento en el n
umero de conectores estandar por medio del uso de una tarjeta
de expansion.
Voltaje de alimentacion de +5V .
El DSP TMS320C6713 se distribuye junto con un kit que incluye:
DSP BIOS Kernel. Sistema basico de entrada y salida para la configuracion
inicial.
Algoritmo est
andar. Para la interoperabilidad de software de diversas fuentes.
Code composer studio. Editor de los programas que ofrece ventajas como minimizacion en la entrada de errores (sugestion de palabras, informacion
de parametros y complementacion de codigo), soporte de lenguajes de programacion de alto nivel como C++, MATLAB, Visual Aplication Builder (VAB),
etc.
Simulador. Permite la facil y rapida creacion de software de aplicacion, provee
una visualizacion objetiva del comportamiento de la aplicacion, proporciona una
rapida identificacion y solucion de problemas y hace posible la rapida transformacion de la simulacion al silicio.
Third party network . La red de tercera partida es dise
nada para empresas
que buscan soluciones rapidas, confiables y seguras de software para implementar a sus sistemas, con este recurso pueden decidir entre la inversion de tiempo
en la creacion de software o la inversion de dinero en la compra del mismo.
Para una mayor referencia sobre el DSP TMS320C6713 empleado en esta tesis se
recomienda [26] y la documentacion de Texas Instruments.