Vous êtes sur la page 1sur 140

INSTITUTO POLITECNICO

NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA


Y ELECTRICA
DE ESTUDIOS DE POSGRADO E INVESTIGACION

SECCION

MAESTRIA EN CIENCIAS DE INGENIERIA EN

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

CIENCIAS EN INGENIERIA EN MICROELECTRONICA


PRESENTA:
ARTURO ESCOBEDO CABELLO
ING. JESUS
ASESOR:
DR. VOLODYMYR PONOMARYOV
COASESOR:

DR. ENRIQUE ESCAMILLA HERNANDEZ

MEXICO
D.F. NOVIEMBRE DEL 2009

ii

Ing. Jesus Arturo Escobedo Cabello

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.

Quiero dedicar el presente trabajo que es el fruto de dos a


nos y
medio de esfuerzo
A Dios nuestro se
nor que mueve cada aspecto de mi vida, por
ser la fuerza que la sustenta y la ha llenado de paz, felicidad y
amor.
A mi mama, porque en tu amor, fortaleza y cuidados siempre
he encontrado mi fuente de inspiracion y crecimiento en la
vida.
A mi papa, por ser el brazo fuerte que gua esta familia, con
tu ejemplo y buen animo me has ense
nado entereza y rectitud
de espritu.
A mi hermana Laura, gracias por todo el apoyo, cari
no y consejos que me diste, por estar ah cuando mas te necesite.
A mi hermano Alfredo, porque con tu ejemplo me has ense
nado
a confiar en Dios y tener fe en el.
A mis tos Paty y Carlos por el enorme apoyo que me dieron
a lo largo de estos a
nos, por abrirme las puertas de su hogar y
por estar conmigo y regalarme su buen animo, cari
no, amor y
cuidados todo este tiempo.
A mi Lizz por estar conmigo, y apoyarme a cumplir esta meta
a pesar de no haber sido facil, por brindarme tu hombro en las
dificultades y porque siempre me has sabido hacer sonreir.
Saben que los amo y su amor es mi mas grande tesoro.
Arturo.

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

2.5.1.2. Flujo Optico


. . . . . . . . . . . . . . . . . . . . . . 22
2.5.1.3. Matcheo de Caractersticas . . . . . . . . . . . . . . 22
2.5.2. Algoritmos Globales . . . . . . . . . . . . . . . . . . . . . . . 23
2.5.2.1. Programacion Dinamica . . . . . . . . . . . . . . . . 23
2.5.2.2. Corte de Grafos . . . . . . . . . . . . . . . . . . . . . 23
2.5.2.3. Otros Metodos . . . . . . . . . . . . . . . . . . . . . 24
2.5.3. Variantes a Considerar . . . . . . . . . . . . . . . . . . . . . . 24
2.5.3.1. Tiempo Real . . . . . . . . . . . . . . . . . . . . . . 24
2.5.3.2. Estimacion a Resolucion Subpxel . . . . . . . . . . . 25
2.5.3.3. Grandes Disparidades . . . . . . . . . . . . . . . . . 25
2.6. Seleccion de Algoritmos de Calculo de Disparidad Analizados . . . . . 26
2.6.1. Algoritmo de B
usqueda de Correspondientes Usando Programacion Dinamica . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6.1.1. Ground Control Points (GCP) . . . . . . . . . . . . 31
2.6.2. Algoritmo de b
usqueda de correspondientes usando Block-Matching
de Kurt Konolige . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6.2.1. Etapas del algoritmo de BM . . . . . . . . . . . . . . 33
2.6.3. Algoritmo de Corte Grafos (GC) de Kolmogorov Y Zabih . . . 36
2.7. Medidas de Calidad de los Algoritmos. . . . . . . . . . . . . . . . . . 37
2.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3. EVALUACION
EXPERIMENTAL DE ALGORITMOS DE DIS DE OBSTACULOS

PARIDAD PARA LA UBICACION


3.1. Imagenes de Prueba . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Algoritmo de Block Matching(BM) . . . . . . . . . . . . . . . . . . .
3.2.1. Resultados Obtenidos en el DSP TM320C6713 . . . . . . . . .
3.3. Programacion Dinamica . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Algoritmo de BM Usando Etapas de Pre-filtrado y Post-filtrado . . .
3.5. Algoritmo de Corte de Grafos GC . . . . . . . . . . . . . . . . . . . .
3.6. Comparacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1. Porcentaje de Pxeles Mal Relacionados . . . . . . . . . . . . .
3.6.2. Tiempo de Procesamiento . . . . . . . . . . . . . . . . . . . .
3.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

4.1.5. Escenario de Pruebas . . . . . . . . . . . . . . . . . . . . . . .


4.2. Sistema Propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1. Etapa de Preprocesamiento . . . . . . . . . . . . . . . . . . .
4.2.1.1. Calibracion de las Camaras . . . . . . . . . . . . . .
4.2.1.2. Separacion de las Imagenes . . . . . . . . . . . . . .
4.2.1.3. Interpretacion del Patron de Bayer para la Obtencion
de la Informacion de Color . . . . . . . . . . . . . . .
4.2.1.4. Rectificacion . . . . . . . . . . . . . . . . . . . . . .
4.2.2. Calculo de Disparidad . . . . . . . . . . . . . . . . . . . . . .
4.2.3. Estimacion de la Profundidad a Partir del Mapa de Disparidad
4.2.4. Creacion de la zona de Interes . . . . . . . . . . . . . . . . . .
4.2.5. B
usqueda de Objetos Dentro de la Zona de Interes . . . . . .
4.3. Discusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1. Costo Computacional . . . . . . . . . . . . . . . . . . . . . . .
4.3.1.1. Algoritmo de Calculo de Disparidad y Etapa de Preprocesamiento . . . . . . . . . . . . . . . . . . . . . .
4.3.1.2. Sistema Completo . . . . . . . . . . . . . . . . . . .
4.3.2. Eror en la Estimacion de la Profundidad . . . . . . . . . . . .
4.3.3. Analisis de Precision en la Estimacion de la Profundidad . . .
4.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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 .

2.2. Desplazamiento del punto principal de la imagen con respecto al eje


optico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3. Efectos de producidos por la distorision radial . . . . . . . . . . . . .

2.4. Errores en el ensamblado del sensor de una camara que produce la


distorsion tangencial. . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.5. Geometra que rige la proyeccion de un punto de una escena 3D sobre


un par estereo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.6. Vista superior del arreglo mostrado en la Fig.2.5. . . . . . . . . . . .

12

2.7. Relacion existente entre la disparidad y la profundidad de una escena,


observe que dicha relacion no es lineal . . . . . . . . . . . . . . . . .

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

2.9. Horopter. Cada lnea representa un plano de disparidad constante en


valores enteros de 20 a 12; un rango de b
usqueda de disparidad de 5
pixeles cubrira diferentes vol
umenes, como es mostrado por las flechas
verticales, y diferentes limites de disparidad maxima establece diferentes horopters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.10. Rectificacion de Imagenes de un par estereo . . . . . . . . . . . . . .

16

2.11. Restricciones usadas para limitar el espacio de b


usqueda en algoritmos
estereo. (a) Restriccion Epipolar, (b) Restriccion de Orden. . . . . . .

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.

Planteamiento del problema

La estimacion de la profundidad de los puntos de una escena usando metodos


convencionales como sonografa y laser en ocasiones involucra el uso de equipo costoso
1


Captulo 1: INTRODUCCION

ademas de proporcionar informacion de la profundidad realizando una b


usqueda en
una sola dimension. Los sistemas basados en vision son capaces de brindar mucha
mayor informacion (2D), al mismo tiempo de que el mismo sensor optico puede ser
utilizado para solucionar diferentes problemas sobre la misma plataforma.

1.2.

Soluci
on propuesta

Se propone utilizar algoritmos de vision artificial, especficamente de calculo de


disparidad para la deteccion de obstaculos de un robot movil, en ambientes no controlados.

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

El desarrollo de sistemas roboticos que operen de forma autonoma es una de las


areas de investigacion mas fuertes a nivel mundial, por lo cual es necesario que en
nuestro pas se entienda el estado del arte de las investigaciones al respecto, para no
quedarse atras en el desarrollo y analisis de las tecnologas emergentes. Los sistemas
de vision artificial ofrecen una gran cantidad de informacion que puede ser utilizada por sistemas roboticos para la realizacion de tareas en muy diversos procesos,
que van desde procesos industriales de manufactura, hasta la asistencia y servicio de


Captulo 1: INTRODUCCION

personas. El mejoramiento y generalizacion de sistemas opticos cada vez de menor


costo y mayor rendimiento permiten la constante mejora de los sistemas basados en
vision artificial, ademas de que las tecnicas utilizadas para el procesamiento digital
de imagenes visuales, pueden ser extendidas facilmente para realizar el procesamiento
de otros tipos de imagenes como son las provenientes de sensores multi-espectrales,
camaras infrarrojas etc.

1.5.

Cuerpo de trabajo de tesis

La organizacion de este trabajo se estructura en seis captulos de la siguiente


manera:
El Captulo 2 Se presentan algunos temas de interes en el desarrollo del sistema
de deteccion de obstaculos, como son la descripcion matematica de las camaras
necesaria para la retro-proyeccion de profundidades a partir del mapa de disparidad calculado, se describe brevemente el proceso de rectificacion de imagenes
que es importante cuando se trabaja con camaras reales convencionales, ademas
de algunas otras relaciones geometricas existentes entre la imagen y la escena
visualizada. Ademas se presenta una descripcion generalizada de los diferentes
metodos existentes para el calculo de disparidad, as mismo se presenta una
descripcion mas minuciosa de algunos metodos que por su importancia en la
literatura de vision y buenos resultados obtenidos fueron seleccionados como
posibles candidatos para ser empleados en el sistema de deteccion de obstaculos.
En el Captulo 3 Se presenta el analisis de los algoritmos de vision estereo
seleccionados, mostrando sus principales ventajas y desventajas, as como el
analisis de desempe
no de cada uno para entender la forma en la que impactan
cada uno de los parametros de ajuste en el rendimiento de cada uno de ellos. Para
poder presentar algunas sugerencias y formas de manejar los errores inherentes
a cada uno de ellos para mejorar la fiabilidad de los mapas resultantes.
En el Captulo 4 Se describira el algoritmo de deteccion de obstaculos desarrollado, y se mostraran los resultados obtenidos.
En el Captulo 5 se presentan las conclusiones de este trabajo proporcionando
algunas propuestas como trabajo a futuro.
El Ap
endice A presenta las publicaciones en congresos nacionales e internacionales realizados a lo largo de este trabajo de investigacion.
El Ap
endice B presenta las caractersticas del DSP empleado en esta tesis.

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

Se considera la proyeccion central de los puntos del espacio sobre un plano. Se


define el centro de proyeccion como el origen de un sistema coordinado euclidiano,
y se considera el plano Z = f , llamado plano focal o plano de la imagen. Bajo el
modelo pinhole, un punto en el espacio con coordenadas P = (X, Y, Z)T es mapeado
al punto en el plano de la imagen donde el rayo que une el centro de proyeccion y el
punto p(x, y, f )T lo cortan. Esto es mostrado en la figura 2.1.
Por semejanza de triangulos puede ser facilmente encontrado que (X, Y, Z)T es
mapeado al punto (f X/Z, f Y /Z, f )T en el plano de imagen.
El centro de proyeccion es llamado el centro de la camara o centro optico. La lnea
que pasa por el centro optico y es perpendicular al plano de imagen se conoce como
5


Captulo 2: MARCO TEORICO

Figura 2.1: Proyeccion perspectiva de un punto en 3D sobre un plano de imagen

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)

Si introducimos la notacion PH para el punto en el espacio representado por


(X, Y, Z, 1)T , pH para el punto en la imagen representado por un vector homogeneo de dimension 3, y K para la matriz homogenea de 3x4, conocida como la Matriz
de la Camara. Entonces la ecuacion 2.1 se puede escribir de forma compacta como:
pH = KPH

(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.

El resultado es un modelo en el cual el punto en el espacio P = (X, Y, Z)T es


proyectado en el sensor sobre alg
un pixel con posicion dada por (xcam , ycam ) de acuerdo
con
xcam = f

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

pixeles, entonces esto produce el efecto de introducir factores de escala diferentes en


cada direccion.
La distancia focal fx (por ejemplo) es en realidad el producto de la distancia
focal medida en unidades fsicas (mm, tm, etc) y la medida sx de cada pixel. Por
supuesto, puede enunciarse algo semejante para fy y sy , es importante tener esto
en cuenta, debido a que sx y sy no pueden ser medidos directamente va ning
un
metodo de calibracion de camaras, y tampoco la distancia focal fsica f puede medirse
directamente. Solo las combinaciones fx = f sx y fy = f sy pueden ser derivados sin
de verdad desmantelar la camara y medir sus componentes directamente [4].
xcam = fx

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)

Donde fx = f sx y fy = f sy representan la distancia focal medida en pixeles, De


igual forma px y py son las coordenadas del punto principal tambien medido en pixeles.
Estos parametros son conocidos como los parametros intrnsecos de la camara, y son
calculados durante el proceso de calibracion de la misma.
2.1.3.1.

Distorsi
on

En teora, es posible definir un lente que no produce distorsiones. En la practica,


sin embargo, ning
un lente es perfecto. Esto es debido principalmente al proceso de
manufactura; es mucho mas facil hacer una lente esferica que una mas matematicamente ideal como una lente parabolica. Tambien es difcil alinear mecanicamente la
lente y el sensor de la camara exactamente.
En [10], se describen las dos principales distorsiones producidas por lentes y como
modelarlas. La distorsion radial aparece como resultado de la forma de las lentes,
mientras que la distorsion tangencial aparece por defectos en el proceso de ensamblado
de la camara.
La distorsion radial produce que las lentes de las camaras alteren la posicion de
los pixeles cerca de los bordes del sensor. La figura 2.3 brinda alguna idea de porque
ocurre la distorsion radial. Con algunos lentes, los rayos que pasan alejados del centro,
son doblados mas que aquellos que pasan mas cerca. Este tipo de distorsion es particularmente notable en camaras web baratas, pero menos importante en camaras de


Captulo 2: MARCO TEORICO

Figura 2.3: Efectos de producidos por la distorision radial

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)

Donde, (x, y) es la posicion original (en el sensor) del punto distorsionado y


(xcorrected , ycorrected ) es la nueva posicion como resultado de la correccion.
El otro tipo de distorsion que se considera como el segundo en importancia [5]
[10] es la distorsion tangencial. Esta distorsion es debida a defectos de manufactura
resultantes de lentes que no son exactamente paralelos al plano de imagen; vea la
Figura 2.4
La distorsion tangencial esta caracterizada por dos parametros, p1 y p2 , tal que:
xcorregida = x + [2p1 y + p2 (r2 + 2x2 )]

(2.12)

ycorregida = y + [p1 (r2 + 2y 2 ) + 2p2 x]

(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

Captulo 2: MARCO TEORICO

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

Asumiremos que tenemos un arreglo estereo de camaras, sin distorsion, alineado,


y medido como se muestra en la figura 2.5.
Estas dos camaras forman un par estereo, asumiendo que cada una de ellas cumple

con un modelo pinhole y sus ejes opticos son paralelos, OR oR ||OL oL .


Captulo 2: MARCO TEORICO

11

Figura 2.5: Geometra que rige la proyeccion de un punto de una escena 3D sobre un
par estereo.

Ambas camaras tienen la misma distancia focal, f , con centros OL y OR separados


una distancia B, llamada lnea base (baseline), de forma que las imagenes que se
forman, IL e IR , esten en planos paralelos.
De esta manera la lnea base es paralela a la coordenada x de las imagenes. Con el
modelo pinhole considerado, un punto en el espacio tridimensional P , con coordenadas
(X, Y, Z)T se proyecta en cada una de las imagenes bidimensionales en los puntos pL
y pR , con coordenadas (xL , yL )T y (xR , yR )T respectivamente.
El plano que contiene a los puntos P , OL y OR , interseca a las imagenes en dos
rectas eL y eR . Dada la configuracion del par estereo, estas son rectas epipolares
entre s, o sea, un punto, pL en la recta eL de la imagen IL tiene su correspondiente
en alg
un punto de la recta eR . Esto reduce la b
usqueda del correspondiente de pL de
toda la imagen IR a la recta eR .
En la figura 2.6 podemos ver como se relacionan los parametros definidos en el
par estereo, que permiten obtener la relacion entre la disparidad d y la profundidad
Z del punto P .
La disparidad es la diferencia en las coordenadas horizontales de los puntos pL
y pR , o sea, d = xL xR . Dependiendo el sistema de referencia utilizado en las
imagenes, la definicion puede cambiar de forma que el signo sea siempre positivo. Las
coordenadas de pL y pR quedan relacionadas mediante:
xL = xR + d

(2.14)


Captulo 2: MARCO TEORICO

12

Figura 2.6: Vista superior del arreglo mostrado en la Fig.2.5.

yL = yR

(2.15)

Se puede derivar una expresion que relaciona la profundidad de la escena Z usando


semejanza de triangulos en la Figura 2.6.
B (xL xR )
B
=
Z f
Z
De donde

(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

Figura 2.7: Relacion existente entre la disparidad y la profundidad de una escena,


observe que dicha relacion no es lineal

2.2.2.

Rango de B
usqueda de Disparidad y Volumen 3D

La correspondencia estereo, (encontrar los puntos correspondientes a la proyeccion


de un punto en 3D en dos diferentes imagenes) puede ser calculada solo en areas
visuales en las cuales las vistas de las dos camaras se traslapan. Esta es una razon
por la cual, siempre se tendera a tener mejores resultados si el arreglo de las camaras
estereo se configura de tal forma que queden tan cerca a una posicion fronto paralela
como sea posible.
Fijando el valor mnimo de disparidad y el n
umero de disparidades a buscar se
establece el volumen 3D que es cubierto por el rango de b
usqueda del algoritmo
estereo conocido en ingles como horopter. La figura 2.9 muestra rengos de b
usqueda
de disparidad de cinco pixeles empezando a 3 diferentes valores de disparidad: 20, 17
y 16. Cada valor de disparidad define un plano a profundidad fija desde las camaras.
Como se muestra, cada valor de disparidad inicial junto con el n
umero de disparidades
a buscar, fija un volumen diferente en el cual la profundidad de un objeto puede ser
detectada.
Fuera de este rango, la profundidad no sera hallada y representara un agujero en
el mapa de profundidades donde la profundidad es desconocida. El horopter puede
hacerse mas grande, disminuyendo la distancia de la lnea base B entre las camaras,


Captulo 2: MARCO TEORICO

14

haciendo la distancia focal menor, incrementando el rango de b


usqueda de disparidad,
o incrementando el ancho de los pixeles.

Figura 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 .

Dado el mnimo incremento de disparidad permitido 4d, podemos determinar el


valor de profundidad mnimo que se puede medir (resolucion)4Z usando la formula:
4Z =

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

Figura 2.9: Horopter. Cada lnea representa un plano de disparidad constante en


valores enteros de 20 a 12; un rango de b
usqueda de disparidad de 5 pixeles cubrira
diferentes vol
umenes, como es mostrado por las flechas verticales, y diferentes limites
de disparidad maxima establece diferentes horopters.

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

Captulo 2: MARCO TEORICO

Figura 2.10: Rectificacion de Imagenes de un par estereo

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

La extraccion de la estructura tridimensional de una escena a partir de imagenes


estereo es un problema que ha sido estudiado por la comunidad cientfica en el area
de vision computacional por decadas.
El fenomeno de la vision estereo ya era conocido desde la epoca del renacimiento,
entre algunos pintores [7], ellos observaron los efectos que suceden cuando se observa
un objeto con cada ojo por separado, y los efectos que aparecen cuando se observa
con ambos ojos. En 1838 Sir Charles Wheatstone [31] presenta varias observaciones
y experimentos sobre la vision binocular.
Mas recientemente en la decada de 1960 Julesz [1] y Sperling [27], propusieron
algoritmos para modelar el proceso de la estereopsis humana, Julesz definio que la
b
usqueda de correspondientes estereo es un proceso cooperativo [17]. El trabajo realizado en la decada de los 70s fue principalmente desarrollado por el grupo Image
Understanding (IU) fundada por la ARPA (Advanced Research Projects Agency).
Marr y Poggio realizaron un profundo y comprensible revision de la sico-fsica y
psico-fisiologa de la estereopsis humana [39], y publicaron un famoso artculo llamado
A computational theory of human stereo vision [39] que sento las bases de multiples
estudios referentes a la vision estereo desde entonces y hasta la fecha.
Barnard y Fischler [2] revisaron los metodos de investigacion empleados en el area
de la vision estereo, centrandose en los fundamentos de la reconstruccion estereo,
criterios para evaluar el desempe
no y un compendio de metodos bien conocidos en la
epoca.
Para la epoca de 1990, este campo de investigacion, haba madurado considerablemente. Aunque siguio desarrollandose algo de investigacion general en materia de
estereografa, la mayor parte de la investigacion comenzo a centrarse en problemas
especficos como metodos de correspondencia, metodos para tratar con oclusiones,
implementaciones en tiempo real etc. [22]
El problema de un algoritmo estereo de calculo de disparidad es obtener la informacion de profundidad en todos los pxeles de las imagenes del par estereo; esto es
una imagen densa de disparidades.
Entonces, estos algoritmos deben determinar la correspondencia de todos los puntos entre ambas imagenes. Para hallar la correspondencia se basa en caractersticas
visuales (intensidad, color, geometra, movimiento, u otras). Los principales problemas
a resolver en algoritmos estereo son calibracion, correspondencia y reconstruccion.
Seg
un Marr y Poggio [20] existen tres etapas en el proceso de recuperacion de la
estructura de una escena, estas son:

Seleccionar un punto caracterstico de un objeto en una de las imagenes.


Captulo 2: MARCO TEORICO

18

Encontrar el mismo punto caracterstico en la otra imagen.


Medir la diferencia relativa (disparidad) entre la posicion de estos dos puntos.

2.4.1.

Correspondencia

Las disparidades estereo pueden ser determinadas en diversas formas y explotando


diferentes restricciones. Todos estos metodos tratan de relacionar los pixeles de una
imagen con sus correspondientes en la otra imagen, es decir, encontrar los puntos en
cada imagen que son proyeccion del mismo punto del espacio, para todos los puntos en
cada una de las imagenes. De esta forma se recupera un mapa denso de disparidades.
Los algoritmos de b
usqueda de correspondientes suelen asumir que las imagenes
con que se trabaja estan rectificadas. Esta etapa es sin duda el proceso que presenta
mayor complejidad, y para el cual los algoritmos asumen ciertas hipotesis sobre la
escena y la estructura que restringen las opciones a considerar en la b
usqueda de los
correspondientes.
2.4.1.1.

Restricciones

Existen restricciones (hipotesis) que se aplican generalmente en los algoritmos para


hallar los puntos correspondientes. Estas restricciones estan basadas en propiedades
fsicas y geometricas razonables de los objetos y superficies presentes en la escena, y
su relacion.
Las restricciones com
unmente mencionadas en la literatura son:
Restricci
on Epipolar. Viene dada por la geometra epipolar del par estereo, e
implica que el correspondiente de un punto en una imagen debe estar en la recta
epipolar del punto en la otra imagen. Esta restriccion reduce la b
usqueda del correspondiente de toda la imagen a una recta en la misma [13] [23].
Restricci
on de orden. Implica que si la proyeccion del objeto Q esta a la izquierda de la proyeccion del objeto P en la imagen izquierda, entonces la proyeccion de
Q estara a la izquierda de la proyeccion de P en la imagen derecha. Un caso que no
cumple con esta restriccion es por ejemplo dos arboles a distintas profundidades como
se muestra en la Figura 2.11.
Restricci
on de unicidad. Implica que cada punto de una imagen puede tener no
mas de un correspondiente en la otra imagen. Esta restriccion contempla que pueda
no existir ning
un correspondiente, como puede ser en el caso que este oculto en la
otra imagen [39].
Restricci
on de semejanza. Implica que las caractersticas de los puntos en una
imagen (intensidad o color, etc.) no debe cambiar mucho entre ambas imagenes.


Captulo 2: MARCO TEORICO

19

Figura 2.11: Restricciones usadas para limitar el espacio de b


usqueda en algoritmos
estereo. (a) Restriccion Epipolar, (b) Restriccion de Orden.

2.4.1.2.

Oclusiones

Otro fenomeno a tener en cuenta en el planteo de la vision estereo y que influye


en el proceso de hallar los puntos correspondientes, son las oclusiones. Las oclusiones
son las regiones que se ven en una imagen y que no se ven en la otra por estar tapadas
por un objeto. Las oclusiones siempre implican una discontinuidad en la profundidad
de la escena y son fuente de errores en muchos algoritmos estereo. Sin embargo estas
regiones ocultas pueden ser usadas para la recuperacion de la estructura de la escena
y dan informacion fundamental de esta.
Los algoritmos que modelan las oclusiones, integran las oclusiones y las restricciones que implican (restriccion de orden) en el proceso de b
usqueda de los correspondientes. Bobick e Intille [38] lo hacen asignando un costo mayor a los puntos que
estan ocultos.

20

Captulo 2: MARCO TEORICO

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.

La utilizacion de una tercera imagen (o mas) permite reducir ambig


uedades existentes con solo dos imagenes, pudiendo reducir el error de los puntos correspondientes.
Ademas permite atacar el problema de las oclusiones, si puntos que estan ocultos en
una de las imagenes se proyecta en otras dos. Dentro de estos trabajos citamos los de
Kolmogorov y Zabih [35].

2.5.

Clasificaci
on de Algoritmos para el C
alculo de
Disparidad

Brown y otros [22] presentan una clasificacion de los algoritmos de calculo de


disparidad seg
un como utilizan la informacion de las imagenes para encontrar los
puntos correspondientes en las scanlines. La clasificacion mas general es en aquellos
que utilizan restricciones locales en una ventana alrededor del punto en cuestion, y
aquellos que imponen restricciones globales en la scanline o la imagen. Los metodos
locales son muy eficientes computacionalmente pero presentan dificultades en regiones
localmente ambiguas de las imagenes, como son las oclusiones, o regiones de textura
uniforme. Los metodos globales son mas robustos frente a estos problemas, pero son
computacionalmente mas costosos.


Captulo 2: MARCO TEORICO

2.5.1.

21

Algoritmos locales

Los algoritmos locales se subclasifican seg


un el metodo que utilizan para la deteccion de los correspondientes.
2.5.1.1.

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

(IL (u, v) IR (u + d, v))2

(2.19)

(u,v)

Suma de diferencias absolutas (SAD)


X

|IL (u, v) IR (u + d, v)|

(2.20)

(u,v)

Correlacion cruzada normalizada (NCC)


P

(u,v) (IL (u, v)

qP

IL )(IR (u, v) IR )

(2.21)

2
2
(u,v) (IL (u, v) IL ) (IR (u, v) IR )

donde IL e IR son los valores de intensidad de las imagenes izquierda y derecha


respectivamente, IL e IR son los valores de intensidad promedio en toda la ventana.
Adicionalmente Zabih and Woodfill [42] proponen un metodo alternative para
calcular la correspondencia aplicando transformadas locales no parametricas a las
imagenes antes del matching.
Con el proposito de eliminar la sensibilidad a bias aditivas, una transformacion de
rango (Rank transformation) es aplicada localmente a regiones en ambas imagenes.
Dicha transformacion para una ventana alrededor de un pixel central es definida como
el n
umero de pixeles dentro de la venta que tiene un valor de intensidad menor al
pixel central. Debido a que las magnitudes de los valores obtenidos estan mucho mas
comprimidos, la sensibilidad a outliers (por ejemplo aquellos debidos a oclusiones)
es tambien reducida. Despues de aplicar la transformacion de rango, se realiza la
b
usqueda de correspondientes usando norma L1 (SAD).
Mientras que la transformacion de rango, reduce la sensibilidad a bias, tambien
reduce el poder de discriminacion del algoritmo debido a la perdida de informacion


Captulo 2: MARCO TEORICO

22

inherente. Zabih y Woodfill [42] proponen una variacion de la transformacion de


rango, llamada transformacion de censado (census transformation), que preserva la
distribucion espacial de los rangos codificandolos en un arreglo de bits.

Figura 2.13: (Izquierda) ejemplo de Rank Transformation, (derecha) Census Transformation

2.5.1.2.

Flujo Optico

Se basa en plantear una ecuacion diferencial que relaciona el desplazamiento, d,


de un pxel entre las imagenes izquierda y derecha, con el movimiento, asumiendo que
su intensidad no vara.
(x I)d + It = 0

(2.22)

Donde x I es el gradiente horizontal de la imagen e It es la derivada temporal. El


desplazamiento vertical del pxel se asume que es nulo, y I = 0, dada la configuracion
del par estereo. El movimiento en este caso es entre la imagen izquierda y la derecha,
no existe una variacion temporal entre las imagenes de la escena.
2.5.1.3.

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

Es un metodo que reduce la complejidad de calculo en problemas de optimizacion


descomponiendo el problema en sub-problemas menores. Las restricciones globales que
se imponen con este metodo son, generalmente, la restriccion epipolar y la restriccion
de orden. Para esto se construye una representacion de las posibles correspondencias
para cada punto construyendo una imagen que se denomina imagen del espacio de
disparidad (DSI) donde se busca un camino que recorra este espacio y minimice
un cierto costo. La mayor desventaja de este metodo es que se basa, generalmente,
en la b
usqueda entre scanlines correspondientes, y no agrega una coherencia entre
las scanlines adyacentes, provocando un efecto rayado horizontal. Los intentos por
utilizar Programacion Dinamica con restricciones en dos dimensiones no han dado
resultados eficaces [24].

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

Existen otros metodos globales para atacar el problema de la b


usqueda de correspondientes, como el trabajo de Faugeras y Keriven [36] basado en Level Sets, donde
definen un principio variacional que deben cumplir las superficies y objetos en una
escena, deduciendo un sistema de EDP a resolver.
O el trabajo de Sun y otros [16] modelando el problema estereo con una combinacion de MRF (Markov Random Fields) y usando Bayesian Belief Propagation para
su resolucion.
Weng [30] presenta un abordaje diferente al considerado en los parrafos anteriores,
basado en la fase de la Transformada de Fourier. La capacidad humana de observar un
par de imagenes compuestas por un conjunto de puntos aleatoriamente distribuidos
(random dots stereograms) y recuperar una estructura tridimensional, es conocida
desde 1960 , en el trabajo de B. Julesz citado por Marr y Poggio [39]. Cada una de las
imagenes por separado no aporta ning
un tipo de informacion pero al ser combinadas
es posible observar una estructura tridimensional. Este tipo de imagenes no siguen los
patrones normales de una escena estereo, si se intenta encontrar una correspondencia
entre las dos imagenes se generan muchos falsos correspondientes lo cual provoca
resultados erroneos en la mayora de los algoritmos.
Los resultados que presenta Weng con imagenes del tipo random dots stereograms
son muy buenos, la falsa deteccion de correspondientes es muy baja. El autor califica
el matcheo como sencillo, rapido y uniforme, presentando un algoritmo que puede
ser facilmente paralelizable. Presenta, tambien, experimentos con una imagen natural
donde hay una textura muy importante con buenos resultados.
Estos u
ltimos metodos, solamente se citan a modo de ejemplo de otras herramientas para el abordaje del tema, pero no fueron profundizados en esta tesis.

2.5.3.

Variantes a Considerar

Para analizar esta seccion mencionamos tres variantes a considerar en distintas


aplicaciones del calculo de disparidad, que requieren a
nadir otros metodos a los ya
comentados. Estas variantes son: algoritmos para calculo en tiempo real, mapas de
disparidad con resolucion de subpixel, y soluciones al problema de grandes disparidades.
2.5.3.1.

Tiempo Real

Los algoritmos para el calculo de mapas de disparidad densos en tiempo real


generalmente estan asociados a alg
un tipo de hardware especfico (DSP, FPGA) o
microprocesadores que permita realizar el procesamiento de datos en forma eficiente
[15]. Los metodos que implementan, son algoritmos de los clasificados por imponer


Captulo 2: MARCO TEORICO

25

restricciones locales basados generalmente en encontrar correspondientes utilizando


alguna medida de semejanza (SSD, SAD) junto con un proceso de block matching, y
agregando consistencia entre los correspondientes obtenidos en las dos imagenes.

2.5.3.2.

Estimaci
on a Resoluci
on Subpxel

La resolucion en la disparidad que se obtiene con la mayora de los algoritmos


es con resolucion a nivel de pxel. Esta resolucion puede ser u
til en alg
un tipo de
aplicaciones como seguimiento o deteccion de objetos de tama
no importante dentro
de la escena (por ejemplo para movimientos de un robot). Pero en aplicaciones como realidad virtual (construccion de escenarios virtuales), Image Based Rendering,
o reconstruccion de superficies con mucho detalle, no es suficiente. La solucion para
estos casos es hacer un refinamiento de la disparidad a nivel sub-pxel. En la bibliografa consultada hay algunos trabajos que atacan el tema. Las formas de hacerlo
son variadas, por ejemplo, el metodo de ((gradient descent)) y el ajuste de una curva
en puntos conocidos, o el uso de mas imagenes para refinar las correspondencias y
obtener una precision mayor a la del pxel. [33, 34].

2.5.3.3.

Grandes Disparidades

Cuando el rango de disparidades es muy grande los algoritmos comentados pueden


tener problemas en hallar la correspondencia correcta al aumentar el n
umero de posibles candidatos. Generalmente este problema se presenta al tener una mayor separacion entre las camaras por lo que las caractersticas de los puntos (color, iluminacion) pueden haber cambiado y la b
usqueda de correspondiente con los metodos
comentados fallara.
Las soluciones para estos casos podran obtenerse con soluciones jerarquicas basadas
en multiresolucion, pero el submuestreo de las imagenes podra ocasionar la perdida
de detalles, que no podran ser capturados al aumentar la resolucion, provocando
errores en el mapa de disparidad final.
Kanade y otros [28] presentan un sistema estereo, desarrollado en hardware especfico para procesamiento de se
nales (cinco camaras, un arreglo de DSP (C40), PLDs,
ROM, RAM, etc.) que logra obtener mapas densos de disparidad en tiempo real (30
cuadros por segundo) con imagenes de 256x240 pxeles, y capaz de manejar rangos
de disparidad de hasta 60 pxeles. Las aplicaciones en la que lo utilizan son creacion
de realidad virtual fusionando varias escena


Captulo 2: MARCO TEORICO

26

2.6.

Selecci
on de Algoritmos de C
alculo de Disparidad Analizados

En esta seccion se profundizara en la descripcion de algunos algoritmos que fueron


seleccionados para ser implementados y analizados debido a su importancia en la
literatura de vision artificial.

2.6.1.

Algoritmo de B
usqueda de Correspondientes Usando
Programaci
on Din
amica

El metodo de calculo de disparidad usando programacion dinamica presentado


por Bobick e Intille [38] fue implementado y probado durante este trabajo. Este
metodo utiliza muchos de los procedimientos tradicionales de abordaje del problema e
incorpora nuevas caractersticas que lo hacen un algoritmo muy citado en la literatura.
Presenta un metodo para el calculo del mapa de disparidad que modela las oclusiones y las integra en el proceso de calculo de un costo mnimo mediante el uso de
Programacion Dinamica. Introducen el concepto de Ground Control Points (GCP) y
utilizan una imagen del espacio de disparidad (DSI) que permite (ver la disparidad)
y los efectos de las oclusiones.
Como se comento en la seccion anterior, las imagenes estereo que se utilizan estan
rectificadas, y las filas de las imagenes izquierda y derecha son correspondientes una a
una entre s. Estas filas son denominadas (scanlines), y notaremos la correspondencia
entre ellas como sL sR donde sL es la scanline de la imagen izquierda y sR la
scanline de la imagen derecha.
El algoritmo se ejecuta para cada una de las scanlines por separado y no se introduce informacion de las scanlines adyacentes. Esto presenta desventajas pues no se
fuerza una coherencia entre las scanlines adyacentes en el proceso de calculo de una
scanline en particular.
Para cada pareja de scanlines correspondientes, sL = i y sR = i, se crea la (imagen
del espacio de disparidad) de la imagen izquierda (DSIiL ), para los posibles correspondientes, donde el rango de disparidades buscado se acota en d [dmin , dmax ]. Esta
(imagen) tiene la misma cantidad de columnas de ancho que las imagenes originales
y (dmax dmin ) filas. En cada punto (x, d) del DSIiL se coloca una medida de la semejanza entre el punto de la imagen izquierda (x, i) y el punto de la imagen derecha
(x + d, i). Para obtener la medida de semejanza se utiliza la expresion:

WiL (x, d, wx , wy , cx , cy )

y cy
wX
x cx wX

u=cx v=cy

((IL(x + u, i + v) M L (x, i))


Captulo 2: MARCO TEORICO

27

(IR (x d + u, i + v) M R (x d, i)))2

(2.23)

donde wx , wy , cx y cy determinan una ventana de dimensiones wx wy con centro


en (cx , cy ); M L y M R es la media de la ventana en la imagen izquierda y derecha
respectivamente.
y cy
wX
x cx wX
1
IL (x + u, y + v)
M (x, y) =
wy wx u=c v=c

(2.24)

La normalizacion por la media elimina el efecto de cualquier bias aditiva, entre la


imagen izquierda y derecha.

Figura 2.14: Proceso de calculo del DSI. Note que el DSI resultante tendra dimensiones
de N (dmax dmin ).

En las cercanas de las oclusiones las ventanas de correlacion pueden producir


errores para lo cual se implementa una variacion utilizando nueve ventanas que contienen al punto en cuestion; las nueve ventanas se muestran en la figura 2.15. En
cada punto se utiliza solo la ventana que genera el mejor matcheo. Si definimos C x ,
C y como el espacio de los posibles centros de las ventanas cx y cy , respectivamente,


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.

Figura 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.


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)

Donde DSIiL (x, d) es el calculado con la ecuacion 2.25.


El valor del costo de oclusion es un parametro fundamental del algoritmo. Un
valor alto hara que no se elija nunca la opcion de una oclusion devolviendo un mapa
de disparidad constante. Por otro lado, un valor bajo, hara que el camino obtenido
sea muy ruidos y seguramente erroneo. En la figura 2.18 se muestran los recorridos
obtenidos con diferentes valores de costo de oclusion.

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.

Ground Control Points (GCP)

Una de las caractersticas principales de este algoritmo es el uso de lo que los


autores denominan Ground Control Points (GCP). Estos puntos se definen como
puntos relevantes del DSI(xG , dG ) como GCP implica afirmar que los puntos con coordenadas xL = xG y xR = (xG + d), se corresponden. Los GCP ayudan a encontrar
el camino optimo a traves del DSI en presencia de oclusiones. Para hallar los GCP los

32

Captulo 2: MARCO TEORICO

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.

Etapas del algoritmo de BM

Este algoritmo cumple con las siguientes etapas.


Etapa de pre filtrado. Utiliza un operador local que transforma cada pixel en
el par estereo, normalizandolo basado en la intensidad promedio de los pixeles
adyacentes.
B
usqueda de correspondientes utilizando suma de diferencias absolutas
(SAD).
Extracci
on del valor extremo. Se determina el valor extremo de la correlacion para cada pixel, esto genera el mapa de disparidad.
Etapa de post filtrado. Sirve para aumentar la fiabilidad de los resultados.
Etapa de Prefiltrado
Esta etapa se lleva a cabo para disminuir los efectos de la diferencia en iluminacion y perspectiva entre las imagenes del par estereo. Los metodos de correlacion
usualmente tratan de compensarlo al realizar la correlacion no sobre las imagenes
originales sino sobre alguna imagen transformada.
Se pueden considerar dos tipos basicos de transformaciones.

34

Captulo 2: MARCO TEORICO


Intensidades Normalizadas. Cada una de las intensidades en un area correlacionada es normalizada por el promedio de las intensidades en el area.
Laplaciano de una Gausiana. (LOG por sus siglas en ingles) El laplaciano mide
bordes dirigidos sobre alg
un area suavizada por un operador gausiano. Tpicamente la desviacion estandar de la gausiana es 1-2 pixeles.

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)

Donde I es el valor de intensidad promedio en la ventana e Icap es un lmite


numerico positivo.
Laplaciano de una Gausiana (LOG) Este filtro aplica primero un desenfoque
gausiano, despues un filtro laplaciano y finalmente checa los cruces por cero. El resultado final de este filtro es resaltar los bordes.
La primera etapa del filtro aplica un desenfoque gausiano para suavizar la imagen
con el proposito de hacer el filtro laplaciano menos sensible al ruido. Si se corre el
filtro laplaciano sobre una imagen ruidosa, el resultado es una imagen con demasiados
bordes peque
nos que obstruyen los bordes mas grandes que son mas significativos.
Otros filtros pueden ser usados antes del filtro Laplaciano pero el Gausiano es
usado mas com
unmente. El filtro Laplaciano es un filtro convolutivo que es usado
para detectar bordes. Escriba aqu la ecuacion.
Una vez que el filtro ha sido convolucionado con la imagen, los valores resultantes
son n
umeros positivos y negativos. EL paso final detecta los cambios de signo y los
marca en la imagen. El resultado final es una imagen que indica los bordes.
Etapa de Post-Filtrado En esta etapa, el algoritmo emplea un operador de
interes 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 imagenes.
Aunque el operador de interes requiere un umbral [19] muestra que es simple fijar
su valor basado en el nivel de ruido presente en la entrada de video. Poniendo un area
gris lisa en frente de las camaras produce un nivel de interes referido u
nicamente al
ruido en el video, el umbral es definido un poco arriba de dicho nivel.


Captulo 2: MARCO TEORICO

35

En la practica, la combinacion de las dos tecnicas mencionadas han probado ser


altamente efectivas eliminando malos correspondientes.

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)

Donde y denota una scanline particular de la imagen y:


I(y, x) =

W
1 X
I(y, x + i)
2W i=W

(2.29)

Denota el valor medio de la j-esima scanline de la ventana centrada en (y, x).


Chequeo de Consistencia
Aun despues de aplicar el operador de interes para zonas con baja textura, se
siguen teniendo errores en porciones de la imagen con discontinuidades en el valor de
disparidad (bordes de objetos) debido a que Frecuentemente una parte de la escena
puede ser visible u
nicamente en una de las imagenes. Esto resulta en que los algoritmos
encuentran correspondientes de forma aleatoria o espuria, debido a que no existe un
correspondiente correcto.
La aplicacion de un chequeo izquierdo/derecho puede eliminar estos errores. Este
chequeo puede ser implementado eficientemente almacenando suficiente informacion
al momento de hacer la correlacion de disparidad original.
Se considera dL (x) como el valor de disparidad estimado para una lnea de b
usqueda (renglon) en particular en la imagen izquierda. Similarmente dR (x) sera el valor estimado de disparidad resultado de correlacionar las dos imagenes (izquierda y derecha)
tomando la imagen derecha como base.
Para un pixel dado situado en xL en la lnea de b
usqueda izquierda, la posicion
de su correspondiente predicha en la lnea de b
usqueda derecha es xR = xL + dL (xL ).
Proyectando esta posicion de vuelta sobre la lnea de b
usqueda izquierda, tenemos
x0L = xR + dR (xR ). Una concordancia entre la lnea de b
usqueda izquierda y derecha
sera consistente si X0L = XL .
Los puntos correspondientes inconsistentes se etiquetan con el valor (d = 16)
para indicar que no son confiables al igual que los puntos con baja textura descritos
anteriormente.


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)

Algoritmo de Corte Grafos (GC) de Kolmogorov Y


Zabih

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)

donde L es una configuracion de posibles etiquetas a colocar en cada pxel. Para


el caso de calculo de disparidad, las etiquetas son: los posibles valores de disparidad,
d [dmin , dmax ], y la etiqueta de oculto.


Captulo 2: MARCO TEORICO

37

Para la medida de la semejanza entre los puntos usan la propuesta de Birchfield


y Tomasi. [32]. De tal forma que:
Edata (L) =

(I(p) I(q))2

(2.34)

donde p y q son los puntos correspondientes.


Esmooth (L) es un termino de suavidad que intenta asignar una disparidad similar
a los puntos cercanos; imponiendo una coherencia en todas las direcciones, no solo en
la de la scanline. La expresion que tiene este termino es similar al termino Esmooth (L)
de la ecuacion(2.32).
Finalmente Eoclu (L) a
nade un costo fijo, Cp , al asignar la etiqueta de oculto a un
punto; el cual se determina cuando no se le puede asignar otro punto correspondiente
(n
umero de correspondientes NC = 0).
Eoclu (L) =

Cp T (NC = 0)

(2.35)

donde T () vale 1 si el argumento es verdadero o 0 si es falso.


En este algoritmo se basan en las tecnicas de Corte de Grafos para hallar la correspondencia entre los puntos de las imagenes, imponiendo la restriccion de unicidad.
Para resolver de forma eficiente el corte del grafo presentan dos algoritmos similares al
algoritmo presentado por Boykov y otros [40], lo cual permite obtener tiempos mucho
menores que con otros metodos de corte de grafos.
La construccion del grafo no es trivial y esta fuera del alcance de esta tesis, por detalles en su construccion, asignacion de costos y algoritmo de minimizacion consultar
la bibliografa citada.
En la implementacion que proponen los autores, todas las componentes de la
energa, son configuradas a partir de un u
nico parametro fijando otros por resultados
experimentales.

2.7.

Medidas de Calidad de los Algoritmos.

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)

Donde d es una tolerancia de error en la disparidad. En diversos artculos suele


tomarse d = 1, dC es el valor de disparidad calculado, dT es el valor de disparidad
real.


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

Una adecuada comprension de la geometra que rige un par estereo de camaras


(Geometra Epipolar) es imprescindible al momento de abordar el problema del calculo
de disparidad, debido a que la mayora de los algoritmos de calculo de disparidad, hacen uso de la geometra epipolar como restriccion para disminuir el rango de b
usqueda
de correspondientes con la consiguiente disminucion de los tiempos de procesamiento.
Otras restricciones importantes que suelen manejarse son la restriccion de orden, de
semejanza y de unicidad.
A pesar de dichas restricciones, la etapa de b
usqueda de los puntos correspondientes entre las imagenes izquierda y derecha consume la mayor cantidad de tiempo de
procesamiento de cualquier algoritmo de calculo de un mapa denso de disparidad.
Debido a que la mayora de los algoritmos de b
usqueda de correspondientes en
las imagenes de un par estereo se basan en la idea de que las imagenes de entrada se
encuentran rectificadas, es necesario conocer como llevar a cabo una adecuada rectificacion de las mismas, lo que conlleva a una adecuada calibracion de las camaras
utilizadas para la adquisicion de las imagenes, por lo cual ambos temas han sido abordados en este captulo. En la actualidad existe una amplia investigacion de algoritmos
de vision estereo, algunos de los cuales como el algoritmo de Corte de Grafos, el de
Block Matching y el de Programacion Dinamica reportan muy buena calidad en los
resultados del calculo de mapas densos de disparidad.
El algoritmo de Corte de Grafos es citado en diversos artculos como el que brinda
mejores resultados de calida, en tanto que el algoritmo de programacion dinamica es
importante por el modelado de oclusiones que lleva a cabo, finalmente el algoritmo de
Block Matching es importante debido a su sencillez y rapidez de calculo, ademas de
que sus resultados pueden ser mejorados agregando algunas etapas de pre filtrado y
post filtrado, como es el caso del algoritmo de Kurt Konolige que presenta una mejora
del algoritmo de Block Matching tpico.

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

Para probar los algoritmos se han utilizado imagenes de pruebas provenientes de


una base p
ublica de internet [37], estas imagenes cuentan con un mapa de disparidad
real, contra el cual se pueden comparar los resultados obtenidos por cada algoritmo,
todas son imagenes a color a 8 bits por canal.
Algunas caractersticas importantes de las imagenes se citan en la tabla 3.1 . El
factor de escala de codificacion de las imagenes, provee la relaccion existente entre el
valor de disparidad contenido como dato en los mapas y el valor real que debe tenerse,
por ejemplo en la imagen Cones un valor de disparidad de 40 en el mapa, indica un
valor de disparidad real de 10, ya que la disparidad esta codificada con un factor de
escala de 4, por lo que antes de hacer cualquier comparacion de resultados se tiene
que dividir el valor del mapa entre el factor de escala.
Las imagenes art, laundry y cones, contienen una gran cantidad de objetos a
39

40

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

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

DISPARIDAD PARA LA UBICACION


Imagen
Art
Cones
Laundry
Tsukuba
Venus

Tama
no
463x370
450x375
443x370
384x288
383x434

41

Factor de escala de codificacion de las imagenes


3.3
4
3.3
16
8

Tabla 3.1: Tama


nos y Factores de escala de codificacion de las imagenes de prueba.

distintas profundidades lo que provoca un gran n


umero de oclusiones y que sean
especialmente difciles de tratar por algoritmos de calculo de disparidad; por otro
lado, en la imagen Venus el n
umero de oclusiones no es tan grande, sin embargo,
presenta un reto debido a que contiene grandes zonas sin textura, en las cuales la
b
usqueda de correspondientes se dificulta como consecuencia de la gran similitud que
existe entre pixeles adyacentes.

3.2.

Algoritmo de Block Matching(BM)

Como se ha mencionado este tipo de algoritmo de b


usqueda de correspondencias
es de tipo local, (basado en ventanas), se ha llevado a cabo la evaluacion de los
parametros (tama
no de ventana y funcion de costo) para determinar con cuales se
obtienen mejores resultados.
Se considera que las imagenes con las cuales se trabajara estan rectificadas, por lo
tanto la b
usqueda de correspondientes u
nicamente se realiza entre lneas o scanlines
correspondientes, sL = i y sR = i. El rango de disparidad se acota en d [dmin , dmax ],
estos parametros en general dependeran de la configuracion del par estereo (separacion
entre camaras y la distancia mnima y maxima posibles dentro del entorno). En este
estudio, dado que las pruebas se realizan con imagenes conocidas, los valores de dmin
y dmax se miden directamente de las imagenes utilizadas.
El algoritmo fue implementado en MATLAB siguiendo el siguiente 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 (x+dmin , y) hasta el punto (x+dmax , y),
aumentando el valor de d en incrementos de 1.
3. Para cada valor de d, se calcula la medida de semejanza entre las ventanas
centradas en ambos pixeles.

42

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION


4. Una vez que se termina el recorrido, se selecciona el valor de d 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
b
usqueda de su correspondiente en la imagen izquierda.

El proceso se repite hasta cubrir todos los pixeles de la imagen.


Se realizo una evaluacion del desempe
no del algoritmo, utilizando las medidas de
semejanza SSD (Ec.2.19) , SAD (Ec.2.20) y NCC (Ec.2.21).
Para evaluar el costo computacional del algoritmo, examinamos la forma en que
se relaciona el tiempo de procesamiento con el tama
no de ventana utilizado, y el uso
de las diferentes funciones de semejanza tratadas.
Los datos se presentan en unidades de tiempo normalizadas, esto es, se dividen
los resultados entre el valor de tiempo obtenido para una ventana de 3x3 utilizando
como medida de semejanza SSD (mnimo valor de tiempo de procesamiento que se
obtuvo durante las pruebas).
En la (Fig.3.2) se muestra el error en porcentaje de pixeles mal relacionados para
las cuatro imagenes de prueba utilizando en cada caso SSD, SAD y correlacion normalizada con respecto a la media, con diferentes tama
nos de ventana. Lo primero que
podemos observar es la enorme taza de error que se obtiene en al ser en todos los
casos mayor al 40
Uno de los parametros mas importantes que se pretenda evaluar es la variacion de
los tiempos de procesamiento al cambiar los parametros de experimentacion (tama
no
de ventana y funcion de costo).
Debido a que la actual implementacion de los algoritmos no fue llevada a cabo
sobre una plataforma en tiempo real, se obtienen variaciones considerables en los
tiempos de procesamiento a causa de condiciones externas de la computadora como
son las demandas de las otras aplicaciones al procesador. Por lo tanto, para tener
datos mas certeros, se presenta el promedio de las mediciones obtenidas, en unidades
normalizadas, es decir se dividen los resultados entre la medicion de menor valor, que
en este caso, se obtuvo utilizando SSD con una ventana de 3x3 Fig.(3.3) .
Los tiempos de procesamiento en la implementacion usando MATLAB fueron
de 16.67 segundos para la imagen Venus usando SSD con una ventana de 3x3. La
plataforma utilizada fue una computadora con procesador dual a 1.83GHz.
En todos los casos, el metodo que obtuvo un mejor desempe
no en tiempo (como
era esperado, al ser la funcion mas simple) fue cuando se utilizo SSD como funcion
de semejanza.

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

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.

Figura 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.)

44

3.2.1.

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

Resultados Obtenidos en el DSP TM320C6713

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

Como se muestra en la figura 3.4 el programa consta de dos partes principales,


la adquisicion de imagenes desde la memoria del DSP, el procesamiento (calculo de
disparidad) y el despliegue de resultados. Como funcion de costo se ha utilizado SSD
2.19 para evitar el uso de races cuadradas en el calculo, reduciendo de este modo el
costo computacional en el DSP.
El codigo en C, posteriormente se compila usando el programa Code Composer

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

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

Para el algoritmo de programacion Dinamica se hizo variar el costo de oclusion,


que como se dijo anteriormente es crtico al momento de hallar el camino optimo en
cada scanline.
La primera verificacion que se realizo fue la dependencia del algoritmo con el
tama
no de la ventana de correlacion utilizada. Presentando resultados semejantes a
los metodos de BM, es decir, con un tama
no de ventana mayor las regiones que se
recuperan son mas difundidas, con menos definicion en los bordes. El hecho de la
utilizacion del mejor matcheo de nueve posibles posiciones hace que la solucion sea
coherente a pesar de poder introducir error al aumentar el tama
no de las ventanas.
Los resultados no varan demasiado por lo que se fijo este parametro en el resto de
las pruebas usando una ventana de 7X7 pixeles.
El tiempo de procesamiento para diferentes tama
nos de ventana de correlacion se
muestran en la figura 3.6 donde hemos utilizado SAD como medida de semejanza, los
resultados son mostrados u
nicamente para la imagen Tsukuba. La implementacion
probada se programo usando MATLAB r, sobre una plataforma con un procesador
a 1.83 GHz.

46

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

Figura 3.6: Tiempos de procesamiento al variar el tama


no de la ventana de correlacion
para la imagen Tsukuba.

En la figura 3.7 observamos el comportamiento de calidad, al variar el costo de


oclusion, sobre las imagenes de prueba Tsukuba, Venus y Cones. Como medida de calidad se ha utilizado el porcentaje de pixeles mal relacionados, descrito anteriormente.
Los resultados graficos para la imagen Tsukuba pueden observarse en la figura 3.8,
donde podemos observar el efecto de rayado horizontal que se produce al seleccionar
valores altos de costo de oclusion.

Figura 3.7: Resultados obtenidos con el metodo de programacion dinamica al variar


el costo de oclusion para las imagenes Cones, Tsukuba y Venus.

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

47

Figura 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.4.

Algoritmo de BM Usando Etapas de Pre-filtrado


y Post-filtrado

Debido a los grandes tiempos de procesamiento que se obtuvieron al implementar


los algoritmos en MATLAB, se decidio cambiar a implementaciones en C, para realizar
estas implementaciones se usaron libreras de funciones optimizadas para trabajar
en tiempo real (openCV). Una de las ventajas que se obtienen es la de realizar la
convolucion en un tiempo independiente del tama
no de la ventana como se muestra
en las figuras (3.9,3.10).
Debido a los pobres resultados obtenidos usando la tecnica de BM se decidio

48

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

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.

Figura 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.

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

49

El siguiente experimento (Fig.3.10) consistio en variar el tama


no de la ventana de
correlacion para la b
usqueda de correspondientes, encontrando un comportamiento
similar al del parametro anterior logrando determinar un tama
no de ventana que
presenta buenos resultados para la mayora de los casos en 15.

Figura 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.

El parametro de prefiltrado Icap Ec.(2.27), no afecta de forma significativa el


desempe
no, y al tratarse de una constante que sirve u
nicamente para fijar un umbral
tampoco afectara el tiempo de procesamiento, de acuerdo a los resultados obtenidos
Fig.(3.11) se fijo el valor de este parametro en 25.

Figura 3.11: Resultados variando el parametro Icap, (a) Para toda la imagen, (b)
considerando solo los pixeles de zonas marcadas como confiables

El parametro de postfiltrado uniquenessRatio, afecta principalmente al hacer mas

50

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

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).

Figura 3.12: Resultados variando el parametro uniquenessRatio, (a) Para toda la


imagen, (b) considerando solo los pixeles de zonas marcadas como confiables

El rango de disparidad (Fig.3.13) afecta, debido a que si el rango de b


usqueda esta
centrado en los valores que puede tener la escena, los resultados seran mejores. En el
caso de las figuras Venus y Tsukuba, los valores de disparidad presentes en la escena
son menores a 16 por lo cual al restringir el rango de b
usqueda a 16 se obtienen los
mejores resultados. En el caso de la figura Cones los valores de disparidad son mayores
(menores a 64) por lo cual si al rango de b
usqueda es menor a 64, se tienen errores
considerablemente grandes ya que no se considera ni siquiera el mnimo indispensable,
lo que conlleva a que haya puntos que no sean encontrados por el algoritmo. Con forme
el rango de b
usqueda va siendo mayor a 64, el error aumenta, al aumentar el n
umero
de posibles elecciones que debe hacer el algoritmo.
Por lo tanto el rango de disparidades a buscar, estara determinado fuertemente por
la escena que se inspeccione aunque su valor puede ser fijado basado en la geometra
del par estereo y la zona de interes dentro de la escena (horopter, ver seccion Rango
de b
usqueda de disparidad y volumen 3D) siempre considerando el incremento en el

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

51

tiempo de calculo producido al aumentar este parametro.

Figura 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

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

Rango posible de valores


5x5 hasta 21x21

Valor Fijado

menor a 40
5x5 hasta 21x21

25
15

Depende del tama


no
de las imagenes

Variable seg
un la aplicacion. (Suele ser un
10 % del ancho de la
imagen).
13

menor a 40

Tabla 3.2: Parametros utilizados en el algoritmo de BM con pre-filtrado.

52

3.5.

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

Algoritmo de Corte de Grafos GC

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.

Figura 3.14: Resultados para diferente n


umero de iteraciones del algoritmo de corte
de grafos (a) Desempe
no, (b) Tiempo de procesamiento.

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

53

Figura 3.15: Resultados para diferentes rangos de b


usqueda de disparidad del algoritmo de corte de grafos (a) Desempe
no, (b) Tiempo de procesamiento.

3.6.

Comparaci
on

3.6.1.

Porcentaje de Pxeles Mal Relacionados

En esta seccion se presentara la comparacion de los resultados obtenidos con los


algoritmos seleccionados, de los cuales se llevo a cabo su implementacion,
En la tabla 3.3 se presenta una comparacion de los resultados obtenidos por los
diferentes algoritmos, debe notarse como en todos los caso el desempe
no del algoritmo
de Corte de Grafos fue superior con respecto a los demas, esto lo hace una propuesta
muy buena para ser utilizado en sistemas de estimacion de profundidades una vez que
sea resuelto su principal inconveniente que es la carencia de una implementacion en
tiempo real del algoritmo.

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

DISPARIDAD PARA LA UBICACION

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

Los metodos locales de b


usqueda de correspondencias presentan errores considerables cuando se enfrentan a imagenes con una gran cantidad de oclusiones o zonas
sin textura, en las cuales la b
usqueda de correspondencias se vuelve difcil debido a

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

55

la gran similitud existente entre pixeles adyacentes. El uso de de esta tecnica de BM


puede mejorarse como se presenta en [19].
En los algoritmos de Programacion Dinamica y Block Matching, el uso de ventanas
de mayor tama
no incrementa el n
umero de aciertos en zonas con poca textura (note los
resultados obtenidos para la imagen Venus que contiene grandes regiones sin textura).
Al mismo tiempo ventanas de tama
no demasiado grandes generan errores cerca de
los bordes de los objetos como puede verse en el caso de la imagen cones (Fig.3.3).
Este fenomeno es el que produce que para imagenes con muchos objetos (cones, art,
laundry) la tendencia de crecimiento de errores que inicialmente es negativa, comience
a crecer a partir de determinados tama
nos de ventana como se muestra en (Fig.3.2).
La experimentacion que ha sido aqu presentada, puede tomarse como referencia
para fijar los valores de los parametros que afectan el desempe
no de los dos algoritmos
estudiados. El algoritmo de Block Matching es un algoritmo muy rapido, lo que lo
hace ideal para realizar implementaciones en tiempo real como navegacion de robots
moviles. Sin embargo debido a la gran cantidad de parametros que afectan su desempe
no, es necesario contar con una gua que nos indique que valores elegir entre todas
las posibilidades.
El analisis aqu presentado se ha utilizado para fijar los valores de cada parametro,
con el objetivo de poder utilizarlo en el sistema de deteccion de obstaculos propuesto.
La utilizacion de la etapa de pre filtrado permite mejorar los resultados obtenidos
durante la b
usqueda de correspondientes para obtener el mapa de disparidad, en
tanto que la etapa de post-filtrado, si bien no nos permite mejorar los resultados, si
permite tener una mayor fiabilidad de aquellos resultados que no son descartados por
el algoritmo.
A pesar de las ventajas ya mencionadas del algoritmo de Corte de Grafos, su
enorme costo computacional nos impide tomarlo como una alternativa cuando lo que
se requiere es instrumentarlo como parte de un sistema 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, por lo cual no debe perderse de vista el avance que en ese sentido se alcance,
o incluso puede tomarse como trabajo a futuro la implementacion de este algoritmo
en tiempo real.
A pesar de que el algoritmo de Programacion Dinamica modela efectivamente las
oclusiones, en la implementacion realizada se obtuvieron peores resultados que con
el algoritmo de BM con etapa de prefiltrado y postfiltrado y que con el algoritmo de
Corte de Grafos por lo cual no se eligio para las pruebas subsecuentes.
La implementacion del algoritmo de Block Matching en DSP, no realizo un procesamiento en tiempo real del mapa de disparidad, lo anterior fue debido a que su implementacion se realizo desde SIMULINK de MATLAB r, el codigo en C obtenido
usando esta herramienta, sin bien se optimiza bastante, no permite utilizar todas las

56

EXPERIMENTAL DE ALGORITMOS DE
Captulo 3: EVALUACION
DE OBSTACULOS

DISPARIDAD PARA LA UBICACION

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

La plataforma en la cual se ha implementado este algoritmo utiliza un procesador a


3GHz, usando la camara estereo BUMBLE-BEE r de la empresa Point Gray Research
con una conexion de video IEEE 1394.

4.1.1.

C
amara Est
ereo

La camara BUMBLE-BEE r es una camara estereo, muy utilizada en aplicaciones


de estimacion de profundidad debido a su cualidad de no perder calibracion bajo
condiciones de uso normales, por lo que solo es necesario calibrarla una vez y guardar
esta informacion para ser utilizada en el proceso de rectificacion de las imagenes sin
necesidad de re-calibrarla cada vez que se utiliza.
Especificaciones
640x480 x2 sensores Sony ICX084 a color.
640x480 pixeles cuadrados a 30 cuadros por segundos.
Medida: 160 x 40 x 50 mm.
Linea base (baseline): 12cm.
Modelo de color en patron de Bayer, para ser reconstruido por el ordenador.
57

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

58

Conexion IEEE-1394 de 6 pines.


Alimentacion suplida por el conector IEEE-1394.
Consumo de potencia: 2.1W.

Figura 4.1: Camara estereo utilizada como sistema de adquisicion de las imagenes
estereo.

4.1.2.

Vehculo NECSCAR

La camara estereo fue montada en el prototipo de vehculo a escala NECSCAR,


del laboratorio GIPSA-LAB ubicado en Grenoble, Francia.
Este vehculo a escala 1/4, controlado por un sistema de computo montado a
bordo, es capaz de comandarse va remota, sin embargo, se pretende implementar
un sistema de vision para su auto-navegacion, proyecto en el cual se colaboro con el
desarrollo de esta tesis.

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

Para la realizacion de pruebas experimentales fuera de lnea, se tomaron una serie


de secuencias de imagenes, a las cuales hemos nombrado como:
Cajas.

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

59

Figura 4.2: Prototipo utilizado para realizar las pruebas experimentales.

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

Figura 4.3: Imagen izquierda y derecha de un cuadro de la secuencia Cajas.

Figura 4.4: Imagen izquierda y derecha de un cuadro de la secuencia Peatones.

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

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.

Figura 4.5: Imagen izquierda y derecha de un cuadro de la secuencia Pasto.

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

Figura 4.6: Dimensiones del escenario donde fueron grabadas las secuencias Cajas y
Peatones.

4.2.

Sistema Propuesto

La figura 4.7 muestra un diagrama a bloques del sistema de deteccion de obstaculos


usando vision estereo, en la parte del procesamiento de imagenes se consideran 3
etapas, la etapa de adquisicion y pre procesamiento, la etapa de calculo del mapa
de disparidad y finalmente la etapa de re proyeccion en la cual los parametros de
calibracion son utilizados para reconstruir la estructura 3D de la escena a partir de
la informacion del mapa de disparidad.
Por otra parte se obtienen del vehculo las mediciones del angulo de giro de las
llantas y la rapidez con la cual se mueve. Esto con el proposito de fijar una region de
interes o (alerta) en la cual nos interesa conocer si existe o no alg
un obstaculo.
Posteriormente se realiza una b
usqueda dentro de la informacion 3D obtenida de
la etapa de re proyeccion para encontrar si existen pixeles dentro de la zona de riesgo,
mismos que se almacenan en una nueva imagen que muestra todos los objetos que
dentro de dicha zona.

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

63

Figura 4.7: Diagrama a bloques del sistema de deteccion propuesto.

4.2.1.1.

Calibraci
on de las C
amaras

Usando las funciones de la librera openCV, se realizo la calibracion de la camara


estereo, usando el procedimiento de Tsai, para lo cual se tomaron imagenes de un
patron de cuadros como se muestra en la figura (4.8) este metodo ha sido ampliamente
documentado y puede obtenerse una muy buena discusion matematica en [13].
La funcion de openCV que realiza la calibracion de las camaras, toma como datos
inciales u
nicamente pares de imagenes (izquierda-derecha) del patron de Tsai tomados en diferentes posiciones, y realiza una deteccion automatica de esquinas para
extraer las coordenadas de cada esquina dentro de la imagen, mismas que son utilizadas como datos para determinar los parametros de calibracion de las camaras.
Esta funcion tiene la restriccion de detectar bien las esquinas u
nicamente para
tableros cuyas dimensiones (largo y ancho) sean dispares, en este caso se ocupo el
tablero mostrado de dimensiones 6 x 7 (esquinas), con un tama
no de cuadro de 40
mm, el set de imagenes tomadas consta de 14 pares (izquierdo -derecho), es importante
notar que mientras mayor sea el n
umero de esquinas por tablero y/o el n
umero de
imagenes utilizadas para la calibracion, mejores resultados se obtienen.
Finalmente la herramienta arroja los parametros de calibracion de la camara contenidos en una matriz de retro-proyeccion Q que relaciona la posicion tridimensional
de un punto de la escena con la posicion del punto sobre la imagen izquierda y el
valor de disparidad.
Ademas se obtienen los parametros de rectificacion de las imagenes con los cuales
se corrige la distorsion y se alinean las lneas de b
usqueda con el eje x, como se muestra

64

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

Figura 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.

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

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).

Debido a la favorable caracterstica que tiene la camara BUMBLEBEE r de


permanecer calibrada, el proceso de calibracion solo se realizo una vez, almacenando
como datos la matriz de retroproyeccion Q , y los mapas de rectificacion. Estos datos
son utilizados posteriormente en la etapa de rectificacion.
4.2.1.2.

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

La imagen de la camara estereo se adquiere mediante un sensor con un filtro de


Bayer, lo que reduce la cantidad de informacion que se tiene que transmitir de la
camara a la estacion de trabajo, esto disminuye los tiempos de transmision al enviar
una imagen de un solo canal de 640 x480 con la informacion de color codificada en

66

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

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).

Figura 4.12: Imagenes izquierda y derecha des entrelazadas de la imagen original de


la camara estereo.

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

67

el patron de Bayer, en lugar de enviar la informacion de color en tres canales RGB


separados.
La figura (4.13)muestra una de las imagenes tomadas por la camara derecha, en
el acercamiento puede observarse el patron de puntos caracterstico de una imagen en
patron de Bayer.

Figura 4.13: Imagen izquierda separada, observe en el acercamiento de la derecha el


patron de puntos representativo de una imagen en patron de Bayer.

El patron de Bayer, debe interpretarse como se explica en el captulo 2 para


generar la informacion de color de la imagen (RGB), y posteriormente transformar
las imagenes de color a escala de grises, que es el formato utilizado durante el proceso
de rectificacion.

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

Figura 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.

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

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

En esta etapa se utilizan los resultados de la calibracion con tenidos en la matriz


de retroproyeccion y los resultados del calculo del mapa de disparidad para obtener
la posicion tridimensional de cada punto de las imagenes mediante la ecuacion de
retroproyeccion .

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

Figura 4.17: Modelo bicicleta de un vehculo de cuatro ruedas.

Para el caso discreto cuando T > 0.


(k + 1) (k)
tan 2
= V1
T
L

(4.4)

tan 2
L

(4.5)

X(k + 1) = X(k) + V1 T sen

(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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

Figura 4.19: Objetos detectados en la secuencia Pasto. De arriba abajo se muestran


los resultados para los cuadros 23, 94,357.

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

73

Figura 4.20: Objetos detectados en la secuencia peatones. De arriba abajo se muestran


los resultados para los cuadros 60, 133,381.

74

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

Figura 4.21: Objetos detectados en la secuencia Cajas. De arriba abajo se muestran


los resultados para los cuadros 74, 262,363.

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

75

Figura 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.

Podemos observar que la ocurrencia de errores es mayor en areas de poca textura,

76

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

lo cual es resultado de la perdida de calidad que presenta algoritmo de BM en dichas


zonas, lo que conlleva a estimar erroneamente las distancias a ciertos objetos, y llegar
a considerar que objetos que en realidad son lejanos sean considerados dentro de la
zona de riesgo.
La etapa de post filtrado del algoritmo de Block Matching, reduce la ocurrencia
de detecciones erroneas, sin embargo, es posible observar la ocurrencia de errores
ocasionales en todas las secuencias de prueba, estos errores aparecen como pixeles que
se muestran de forma aleatoria, en la mayora de los casos son regiones muy peque
nas
y cuya duracion no excede mas alla de algunos cuadros, por lo cual se plantea como
trabajo a futuro la mejora del algoritmo, agregando alg
un tipo de filtrado temporal
con base en el comportamiento temporal de los objetos detectados.
En la Fig.(4.22) se muestran algunos errores que ocurren cada una de las secuencias. Observe que los puntos se
nalados mediante flechas corresponden por lo general
a zonas de poca textura como paredes, el azul del cielo, zonas muy obscuras, vidrios,
etc.
Con base en el analisis de calidad de los algoritmos de calculo de disparidad,
en el cual se pudo demostrar que el algoritmo de corte de grafos presenta mejores
resultados que el resto de los algoritmos analizados en este trabajo, se propone como
posible trabajo a futuro, el cambio de la etapa de calculo de disparidad de Block
Matching a Corte de Grafos en cuanto exista una implementacion lo suficientemente
rapida de este u
ltimo. 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 algunos equipos de investigacion.

4.3.

Discusi
on

4.3.1.

Costo Computacional

Una vez implementado el sistema completo se prosiguio a medir los tiempos de


procesamiento, primero se obtuvieron las mediciones del algoritmo de calculo de disparidad agregando la etapa de pre procesamiento (separacion, cambio de espacio de
color, y rectificacion). Posteriormente se muestran las mediciones para el sistema
completo.
4.3.1.1.

Algoritmo de C
alculo de Disparidad y Etapa de Preprocesamiento

Las pruebas de esta parte del algoritmo se realizaron utilizando el ordenador a


1.83GHz, sin embargo, la cantidad de imagenes que se logro procesar bajo esta configuracion fue de solo 8 imagenes por segundo, para mejorar los tiempos de procesamiento

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

77

se decidio emplear imagenes de 320x240 con lo cual el tiempo de procesamiento se


redujo a cerca de un cuarto del tiempo empleado anteriormente.
Finalmente se decidio probar el sistema en una estacion de trabajo con un procesador a mayor frecuencia (3GHz). Notando una mejora importante en los tiempos de
procesamiento, sin embargo aun as no es posible llevar a cabo un procesamiento en
tiempo real para imagenes de 640x480, lo que implica que si se desea utilizar el algoritmo en tiempo real (30 imagenes por segundo), se tendra que disminuir el tama
no
de las imagenes a 320x240, con la consecuente perdida de informacion.

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

Tabla 4.1: Cantidad de imagenes procesadas por segundo considerando el calculo de


disparidad y la etapa de pre procesamiento.

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION


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.
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

La secuencia de imagenes Cajas


es tomada desde un vehculo moviendose a velocidad constante de 3.2km/h. Dentro de un escenario de dimensiones conocidas,
con objetos estaticos, de tal forma que se conoce la posicion inicial del vehculo con
respecto a cada uno de los objetos de la escena.

Figura 4.23: Una de las imagenes de la secuencia, en ella pueden observarse los puntos
que se siguen para calcular su profundidad.

Para obtener las mediciones de profundidad, se seleccionan algunos puntos de la


escena los cuales se siguen a lo largo de toda la secuencia usando tecnicas de flujo

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

79

optico. Con el proposito de mejorar el desempe


no del algoritmo de flujo optico y de
este modo aislar sus efectos para poder analizar u
nicamente los efectos del algoritmo
de calculo de mapa de disparidad, se han colocado marcas (cuadros blancos) sobre
los objetivos, estas marcas crean esquinas que son puntos altamente confiables para
ser seguido por los algoritmos de flujo optico.
Cada uno de los cuadros es seguido durante toda la secuencia de imagenes y se
calcula su profundidad en cada instante (cuadro de la secuencia) a partir del mapa
de disparidad calculado.
En la figura 4.24 se muestran los resultados obtenidos para dos puntos de la imagen
(puntos 4 y 6), el punto 6 corresponde a la caja mas proxima al vehculo del lado
derecho, en tanto que el punto 4 corresponde a una caja situada 6 metros mas atras
que la primera, tambien del lado derecho.

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

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.

Figura 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).

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

Captulo 4: SISTEMA PROPUESTO DE DETECCION

81

Figura 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).

distancia existente entre el vehculo y los objetos de la escena.


Una consideracion que debemos hacer respecto al u
ltimo experimento, es que al
computar el error, se estan comparando los resultados contra datos ideales en los
cuales se considera que el vehculo se mueve en todo tiempo a velocidad constante, lo
cual no es del todo cierto debido a los errores inherentes al controlador de velocidad
del vehculo, por lo cual, los errores aqui mostrados son tambien debidos a fallas en
el controlador, no obstante, nos brindan una buena nocion del desempe
no del sistema
al estimar distancias.

4.3.3.

An
alisis de Precisi
on en la Estimaci
on de la Profundidad

Como se menciono en el captulo 2, el refinamiento de los posibles valores de


disparidad de tal forma que puedan tener valores a nivel sub-pixel es muy importante
cuando se requiere mejorar la precision de los algoritmos de calculo de disparidad al
momento de estimar la profundidad de una escena.

82

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

Figura 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.

Figura 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.

La Fig. 4.27 muestra la precision 4Z (Ec.2.18) respecto a la profundidad Z para


el caso en el cual el mapa de disparidad es calculado sin hacer la estimacion a nivel
sub-pixel; los valores de b y f son caractersticos de la camara y se determinan durante
el proceso de calibracion.
En la Fig.4.28 se muestra, la mejora considerable de la resolucion en la estimacion
de profundidades, sobre todo, para valores grandes de profundidad cuando se utiliza
el refinamiento a nivel sub-pixel en el calculo del mapa de disparidad.

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

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

Los resultados obtenidos ocupando el metodo de b


usqueda de correspondientes
mediante Block Matching presentado son alentadores para la utilizacion de sistemas
estereo de calculo de disparidad, como herramientas para la estimacion de distancias
(profundidades) dentro de sistemas de control de navegacion de robots moviles, o
como en este caso, deteccion de obstaculos de vehculos de baja velocidad.
Es posible llevar a cabo un procesamiento en tiempo real, utilizando imagenes
de 320x240 pixeles, sin embargo al reducir el tama
no de las imagenes conlleva una
perdida inherente de informacion, lo que disminuye la fiabilidad y aplicaciones del
algoritmo, se propone como trabajo a futuro, buscar obtener una implementacion en
tiempo real usando hardware especfico, para poder procesar al menos 30 imagenes
de 640x480 por segundo.
La etapa de post filtrado del algoritmo de Block Matching, reduce la ocurrencia de
deteccion erronea, sin embargo, es posible observar la ocurrencia de errores ocasionales
en todas las secuencias de prueba, estos errores aparecen como pixeles que se muestran
de forma aleatoria, en la mayora de los casos son regiones muy peque
nas y cuya
duracion no excede mas alla de algunos cuadros, por lo cual se plantea como trabajo
a futuro la mejora del algoritmo, agregando alg
un tipo de filtrado temporal con base
en el comportamiento temporal de los objetos detectados.
Con base en el analisis de calidad de los algoritmos de calculo de disparidad,
en el cual se pudo demostrar que el algoritmo de corte de grafos presenta mejores
resultados que el resto de los algoritmos analizados en este trabajo, se propone como
posible trabajo a futuro, el cambio de la etapa de calculo de disparidad de Block
Matching a Corte de Grafos en cuanto exista una implementacion lo suficientemente
rapida de este u
ltimo. 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 algunos equipos de investigacion.
Los valores de profundidad 3D de una escena presentan una relacion no lineal
con respecto a los valores de disparidad calculados, como resultado los valores de
profundidad que se calculan usando un sistema basado en vision estereo como el que
se muestra en este trabajo, en general tendran una mejor resolucion para objetos
cercanos a la camara.
La estimacion de la profundidad a nivel subpixel, mejora considerablemente la
resolucion de este sistema, haciendo posible su uso en aplicaciones tales como la

84

DE OBSTACULOS

Captulo 4: SISTEMA PROPUESTO DE DETECCION

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

mediante Block Matching presentado son alentadores para la utilizacion de sistemas


estereo de calculo de disparidad, como herramientas para la estimacion de distancias
(profundidades) dentro de sistemas de control de navegacion de robots moviles, o
como en este caso, deteccion de obstaculos de vehculos.
Fue posible llevar a cabo un procesamiento en casi en tiempo real (27 imagenes por
segundo), utilizando imagenes de 320x240 pixeles. Los valores de profundidad 3D de
una escena presentan una relacion no lineal con respecto a los valores de disparidad
calculados, como resultado los valores de profundidad que se calculan usando un
sistema basado en vision estereo como el que se muestra en este trabajo, en general
tendran una mejor resolucion para objetos cercanos a la camara.
Para la estimacion de profundidades de largo rango, se recomienda usar imagenes
de 640x480, proponiendo como trabajo a futuro la optimizacion del algoritmo de
Block Matching con pre filtrado y post filtrado, usando hardware especfico con el fin
de mejorar los tiempos de procesamiento del sistema de deteccion completo.

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

[25] D. Scharstein and R. Szeliski. A taxonomy and evaluation of dense two-frame


stereo correspondence algorithms. International Journal of Computer Vision,
pages 742, 2002.
[26] Q. Shehrzad. Embedded Image Processing on the TMS320C6000 DSP Examples
in Code Composer Studio and MATLAB. Springer Science+Business Media,
2005.
[27] G Sperling. Binocular vision: a physical and a neural theory. Am. J. Psychol,
pages 461534, 1970.
[28] Kazuo Oda Hiroshi Kano y Masaya Tanaka Takeo Kanade, Atsushi Yoshida.
A stereo machine for video-rate dense depth mapping and its new applications.
Computer Vision and Pattern Recognition, pages 196202, 1996.
[29] V. Venkateswar and R. Chellappa. Hierarchical stereo and motion correspondence using feature groupings. International Journal of Computer Vision, pages
245269, 1995.
[30] John (Juyang) Weng. Image matching using the windowed fourier phase. International Journal of Computer Vision, pages 211236, 1993.
[31] F.R S. Charles Wheatstone. Contributions to the physiology of vision. part
the first. on some remarkable, and hitherto unobserved, phenomena of binocular
vision. Philosophical Transactions of the Royal Society of London, 128:371394,
1838.
[32] Stan Birchfield y Carlo Tomasi. Depth discontinuities by pixel-to-pixel stereo.
International Conference on Computer Vision, pages 10731080, 1998.
[33] Richard Szeliski y Daniel Scharstein. Symmetric sub-pixel stereo matching. European Conference on Computer Vision, pages 525540, 2002.
[34] Q. Tian y M.N Huhns. Algorithms for subpixel registrations. Computer Vision
Graphics and Image Prcessing, pages 220233, 1986.
[35] Vladimir Kolmogorov y Ramin Zabih. Computing visual correspondence with
occlusions via graph cuts. International Conference on Computer Vision, pages
508515, 2001.
[36] Olivier Faugeras y Renaud Keriven. Variational principles, surface evolution,pdes, level set methods, and the stereo problem. IEEE Transactions on
Image Processing, pages 336344, 1998.

90

[37] Daniel Scharstein y Richard Szeliski.


http://vision.middlebury.edu/stereo.

Bibliografa

Stereo vision research page.

[38] F. Bobick y Stephen S. Intille. Large occlusion stereo. International Conference


on Computer Vision, pages 181200, 1999.
[39] D. Marr y T. Poggio. A computational theory of human stereo vision. Proc. R.
Soc. Lond, pages 301328, 1979.
[40] Yuri Boykov y Vladimir Kolmogorov. Fast approximate energy minimization
via graph cuts. Energy Minimization Methods in Computer Vision and Pattern
Recognition, Third International Workshop, pages 359374, 2001.
[41] Yuri Boykov y Vladimir Kolmogorov. An experimental comparison of mincut/max-flow algorithms for energy minimization in vision. IEEE Transactions
on Pattern Analysis and Machine Intelligence, pages 11241137, 2004.
[42] R. Zabih and J. Woodfill. Non-parametric local transforms for computing visual
correspondence. Proc. Third European Conf. Computer Vision, pages 150158,
1994.

Ap
endice A
Publicaciones en Congresos

91

Artculo aceptado por refereo

5 CONGRESO INTERNACIONAL DE
INGENIERA ELECTROMECNICA Y DE SISTEMAS
Mxico, D. F. 10-14 de Noviembre 2008

ELO051

Implementacin y Evaluacin del Desempeo de un Algoritmo para el


Clculo de un Mapa Denso de Disparidad
Jess Arturo Escobedo Cabello1, Volodymyr Ponomaryov
SEPI, ESIME-Culhuacan, Instituto Politcnico Nacional, Mxico. Av. Santa Ana No. 1000,
Col. San Fco. Culhuacan, C.P. 04430, Mxico D.F., Mxico
Telfono y Fax (55) 57296000
E-mail: arturoescobedo_iq@hotmail.com1
Resumen En este trabajo se presenta la implementacin y
evaluacin del desempeo de un algoritmo para el clculo de
disparidad. El objetivo consiste en investigar la geometra que
rige la proyeccin de puntos de una escena en el espacio 3D
sobre una imagen, analizar los fundamentos de la geometra
epipolar de un sistema de visin estreo, as como presentar un
algoritmo local para la obtencin de un mapa denso de
disparidad, evaluando diferentes funciones de costo de
semejanza (suma de diferencias cuadrticas SSD, suma de
diferencias absolutas SAD, etc), tamaos de ventanas, y
probando su desempeo sobre diferentes imgenes de prueba.

triangulacin, usando la diferencia en la posicin relativa de


los objetos conocida como disparidad.
Esta es una de las razones por la que la mayora de los
animales tienen al menos dos ojos. En el caso especial de los
depredadores, los ojos se encuentran generalmente situados
al frente provocando que las imgenes recibidas en cada uno
sean prcticamente iguales con una diferencia en la posicin
de los objetos, permitindoles estimar la distancia que los
separa a una posible vctima. Algo diferente ocurre con los
herbvoros, los cuales tienen situados los ojos a los costados
de la cabeza, sacrificando el sentido de profundidad en favor
de un campo visual ms amplio.
Segn Marr y Poggio [1] existen tres etapas en el
proceso de recuperacin de la estructura de una escena, estas
son: seleccionar un punto caracterstico de un objeto en una
de las imgenes, encontrar el mismo punto caracterstico en
la otra imagen, y, medir la diferencia relativa (disparidad)
entre la posicin de estos dos puntos.
La visin estreo o estereoscpica se define como
aquella en la que se emplea ms de una imagen para obtener
una idea de tridimensionalidad. Segn el nmero de
imgenes que se emplee, se habla de visin bifocal (dos
imgenes), trifocal (tres imgenes), cuadrifocal (cuatro
imgenes) o n-focal (n imgenes).

Palabras Clave disparidad, funciones de semejanza,


geometra epipolar, visin estreo

Abstract This work presents the implementation and


evaluation of the performance of one algorithm for disparity
calculation. The objective is to investigate the geometry that
rules the projection of points of a scene in 3D space over an
image, analyze the basis of the epipolar geometry of a stereo
vision system and develop a local algorithm to calculate a dense
disparity map. The results are shown using different matching
cost functions (sum of squared differences SSD, sum of
absolute differences SAD, and so on) and window sizes over
different testing images.
Keywords disparity, epipolar geometry, matching cost
functions, stereo vision

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

Fig.1. Configuracin de cmaras en un par estreo

Fig.2. Relacin geomtrica para obtener la


profundidad Z a partir de la disparidad.

(baseline), de modo que las imgenes izquierda (Il) y


derecha (Ir), 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 P, de coordenadas
homogneas se proyecta en cada una de las
imgenes bidimensionales sobre los puntos pl y pr 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. El uso de las coordenadas homogneas permite
considerar el modelo pinhole de la cmara como una
transformacin lineal entre la escena y el plano de la imagen
mediante la matriz de cmara 3C.
3


 



(6)

A partir de (5) y (6) y despejando Z, se obtiene la ecuacin


que nos relaciona la disparidad , con la
profundidad de la escena Z. Dependiendo el sistema de
referencia utilizado en las imgenes, la definicin de la
disparidad puede cambiar, de forma que el signo sea
siempre positivo.


(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)

La forma mostrada en (2) es la ms sencilla para una


matriz de cmara, esto es vlido para todo y permite
hallar las relaciones entre las coordenadas de P y p.


(5)

(3)
(4)

Las ecuaciones (5) y (6) pueden deducirse a partir de


(3), con la geometra mostrada en (Fig.2). Debe observarse
que el origen del sistema de coordenadas se ha situado a la
mitad de la lnea base.

386

cual existe el desplazamiento entre las imgenes. De esta


forma se puede garantizar que el correspondiente de un
punto de la imagen en la fila de la imagen izquierda
se encuentra en la fila de la imagen derecha (esto se
conoce como restriccin epipolar).
Otras restricciones comnmente mencionadas en la
literatura son: La restriccin de orden, la cual indica que si
la proyeccin del objeto Q est a la izquierda de la
proyeccin del objeto P en la imagen izquierda, entonces la
proyeccin de Q debe estar a la izquierda de la proyeccin
de P en la imagen derecha.
La restriccin de unicidad enuncia que cada punto de
una imagen puede tener no ms de un correspondiente en la
otra y la restriccin de semejanza que las caractersticas de
los puntos en las imgenes (intensidad, color, entre otras) no
debe cambiar mucho. [2]

(9)

Correlacin cruzada normalizada.



(10)

Donde e son los valores de intensidad de las


imgenes izquierda y derecha respectivamente, e son
los valores de intensidad promedio en toda la ventana.
La medida de semejanza ms simple es la suma de
diferencias cuadrticas. [3]
III. RESULTADOS

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.

C. Clasificacin de Algoritmos para el Clculo de


Disparidad
Los algoritmos para clculo de disparidad obtienen una
imagen con el valor de disparidad calculado en cada punto
de las imgenes de entrada, estas se conocen como mapas de
disparidad.
Dichos algoritmos pueden ser clasificados de acuerdo a
la forma en que realizan la bsqueda de puntos
correspondientes sobre las dos imgenes. En general existen
dos categoras: mtodos locales y mtodos globales.
En los mtodos locales o basados en ventanas, el
clculo de disparidad depende nicamente de los valores de
intensidad dentro de una ventana finita, calculando la
semejanza (matching cost) entre el pixel de referencia y un
pixel de la otra imagen para diferentes valores de disparidad.
En estos mtodos se selecciona aquel valor de
disparidad que arroja un mnimo monto de la funcin de
costo, suelen ser ms rpidos que los de tipo global aunque
presentan problemas con escenas que contienen oclusiones
grandes.
Los mtodos globales, imponen restricciones integrales
en la minimizacin de alguna expresin de costo o energa
que modele el fenmeno estreo. Muchos de estos son
formulados en un contexto de minimizacin de energa [3].
El objetivo es encontrar una funcin de disparidad que
minimice una energa global, estos utilizan comnmente
programacin dinmica como mtodo de bsqueda.

D. Medidas de Semejanza
Las medidas de semejanza entre pixeles, comnmente
empleadas son:
Suma de diferencias cuadrticas (SSD).

(8)

Suma de diferencias absolutas (SAD)

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.

Los autores hemos optado por elegir estos mtodos


probados con imgenes de complejidad alta, puesto que por
su sencillez son tambin computacionalmente menos
costosos, lo cual los hace ideales para ser implementados en
sistemas que funcionen en tiempo real para navegacin y
posicionamiento de robots mviles.
En la figura 3 se muestra el error en porcentaje de
pixeles mal relacionados para las cuatro imgenes de prueba
utilizando en cada caso SSD, SAD y correlacin
normalizada con respecto a la media, con diferentes tamaos
de ventana. Puede notarse que el error obtenido es bastante
grande, sin embargo de forma cualitativa podemos observar
como aun en la imagen (venus) que tuvo los peores
resultados (Fig. 6), a partir de un valor de ventana de 9x9 ya
se obtiene informacin suficiente como para segmentar los
objetos de la escena, aunque sea de forma burda, y dado que
para el control de navegacin de un robot mvil no es
necesario tener informacin muy fina acerca de los objetos
de la escena se asume que el desempeo obtenido es
suficiente.

(11)

Los resultados se presentan para las imgenes (art,


venus, laundry y cones) obtenidas de una base pblica de
imgenes estreo proveniente de internet, las cuales se
brindan con sus respectivos mapas de disparidad real [9].
Se han utilizado las siguientes medidas de calidad,
basadas en los mapas de disparidad reales provistos en la
base de datos.
1. Error RMS (error cuadrtico medio); medido en
unidades de disparidad entre el mapa de disparidad
calculado y el mapa de disparidad real
(12).

2.

La figura 4 confirma lo aseverado en [3] acerca de que


el uso del RMS como medida de error solo es importante
cuando se tienen porcentajes de pixeles mal relacionados
bajos (menor al 10%), los valores inusualmente altos y la
variacin dispar de las grficas obtenidas para las diferentes
imgenes es consecuencia de ello.

(12)

Donde N es el nmero total de pixeles.


Porcentaje de pixeles mal relacionados.

(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).

Donde es una tolerancia de error en la


disparidad. En diversos artculos suele tomarse
[3].
Para evaluar el costo computacional del algoritmo,
examinamos la forma en que se relaciona el tiempo de
procesamiento con el tamao de ventana utilizado, y el uso
de las diferentes funciones de semejanza tratadas.
Los datos se presentan en unidades de tiempo
normalizadas, esto es, se dividen los resultados entre el valor
de tiempo obtenido para una ventana de 3x3 utilizando
como medida de semejanza SSD (mnimo valor de tiempo
de procesamiento que se obtuvo durante las pruebas).

Debido a que la actual implementacin de los


algoritmos no fue llevada a cabo sobre una plataforma en
tiempo real, se obtienen variaciones considerables en los
tiempos de procesamiento a causa de condiciones externas
de la computadora como son las demandas de las otras
aplicaciones al procesador. Por lo tanto, para tener datos
ms certeros, se presenta el promedio de las mediciones
obtenidas, en unidades normalizadas, es decir se dividen los
resultados entre la medicin de menor valor, que en este
caso, se obtuvo utilizando SSD con una ventana de 3x3
[Fig. 5].

IV. DISCUSIN

El tiempo de procesamiento se incrementa de forma casi


lineal con respecto al tamao de la ventana cuando se
utilizan correlacin y SSD, sin embargo el crecimiento al
utilizar SAD es semejante a una funcin cuadrtica, lo que
hace que para valores de ventana grandes el aumento en
tiempo de procesamiento se acrecienta.

Las imgenes art, laundry y cones, contiene una gran


cantidad de objetos a distintas profundidades lo que provoca
un gran nmero de oclusiones y que sean especialmente
difciles de tratar por algoritmos de clculo de disparidad;
por otro lado, en la figura venus el nmero de oclusiones no
es tan grande, sin embargo, presenta un reto debido a que
contiene grandes zonas sin textura, en las cuales la bsqueda
de correspondientes se dificulta como consecuencia de la
gran similitud que existe entre pixeles adyacentes.

En todos los casos, el mtodo que obtuvo un mejor


desempeo en tiempo (como era esperado) fue cuando se
utiliz SSD como funcin de semejanza.

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.

Fig. 5. Desempeo en tiempo, normalizando con respecto al menor valor


obtenido (SSD con ventana de 3x3). El tamao de ventana (3 5 etc.)
indica una ventana de (3x3, 5x5, etc.)

389

La mayor parte del tiempo de clculo de estos algoritmos se


emplea en la evaluacin de la funcin de costo, por lo cual,
funciones de costo ms complejas incrementan el tiempo de
procesamiento con un impacto mayor que el tamao de
ventana utilizado, por ende implementaciones en tiempo real
usando hardware especifico, pueden reducir notoriamente
los tiempos de procesamiento.

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.

[3] D. Scharstein and R. Szeliski. A taxonomy and evaluation of dense


two-frame stereo correspondence algorithms. International Journal of
Computer Vision, 47(1/2/3):7-42, April-June 2002.

V. CONCLUSIONES

[4] D. Scharstein and R. Szeliski. High-accuracy stereo depth maps using


structured light. In IEEE Computer Society Conference on Computer
Vision and Pattern Recognition (CVPR 2003), volume 1, pages 195-202,
Madison, WI, June 2003.

Los mtodos locales de bsqueda de correspondencias


presentan errores considerables cuando se enfrentan a
imgenes con una gran cantidad de oclusiones o zonas sin
textura, en las cuales la bsqueda de correspondencias se
vuelve difcil debido a la gran similitud existente entre
pixeles adyacentes.
El uso de ventanas de mayor tamao incrementa el
nmero de aciertos en zonas con poca textura (note los
resultados obtenidos para la imagen venus que contiene
grandes regiones sin textura). Al mismo tiempo ventanas de
tamao demasiado grandes generan errores cerca de los
bordes de los objetos como puede verse en el caso de la
imagen cones (Fig.7). Este fenmeno es el que produce que
para imgenes con muchos objetos (cones, art, laundry) la
tendencia de crecimiento de errores que inicialmente es
negativa, comience a crecer a partir de determinados
tamaos de ventana como se muestra en (Fig. 3).

[5] T.Kanade, K.Oda, A.Yoshida, M.Tanaka, and H.Kano. Video-Rate Z


Keying: A new method for merging images. Technical Report CMU-RITR-95-38, The Robotic Institute, Carnegie Mellon Institute, Diciembre
1995.
[6] R. Shukla, H. Radha, and Martin Vetterli. Disparity dependent
segmentation based stereo image coding. In ICIP, volume 1, pages 757760, 2003.
[7] Luigi di Stefano, Massimiliano Marchionni, and Stefano Mattoccia. A
fast area-based stereo matching algorithm. Image Vision Comput.,
22(12):983-1005, 2004.
[8] Aaron F. Bobick, Stephen S. Intille. Large occlusion stereo.
International Journal of Computer Vision 33(3), 181-200 (1999).
[9] Daniel Scharstein y Richard Szeliski. Stereo vision research page.
http://vision.middlebury.edu/stereo.

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].

Por medio de un par estreo de cmaras es posible estimar la profundidad de los


elementos presentes en una escena, mediante el clculo de la disparidad [4]. Mltiples
soluciones se han presentado para la solucin de este problema, algunos de ellos
brindando muy buenos resultados, como es el caso del mtodo de corte de Grafos
presentadoporKolmogorovyZabih[5],perocuyaimplementacinentiemporealsigue
siendo un problema, en cambio otros presentan soluciones ms rpidas a expensas del
desempeo[3,6,7].EnespecialelalgoritmodesarrolladoporKurtKonolige,esinteresante

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)

Donde: eselvalorpromedioenlaventanae eslmitenumricopositivo.Enlaetapa


de postfiltrado, el algoritmo emplea un operador de inters para eliminar las zonas con
poca textura y un chequeo de consistencia izquierda/derecha para eliminar los errores
causadosenzonasocluidasenalgunadelasdosimgenes.
Finalmente,serealizaunchequeoquefiltratodosaquellospixelesquenoarrojanvalores
delafuncindecostolosuficientementediferenciadoscomoparaseraceptadoscomoun
resultado confiable, se usa un parmetro uniquenessRatio para dicho filtrado, definido
por:
. (2)

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,

y la etiqueta de oculto. El trmino


mide la semejanza entre puntos
correspondientes, basado en la diferencia en los niveles de gris de los mismos,
aade un costo fijo, , al asignar la etiqueta de oculto a un punto; el cual se
determina cuando no se le puede asignar otro punto correspondiente (nmero de
correspondientes NC = 0). Finalmente,
es un trmino de suavidad que intenta
asignarunadisparidadsimilaralospuntoscercanos;imponiendounacoherenciaentodas
lasdirecciones,nosloenladelascanline.
III. EXPERIMENTOS
Losresultadossepresentanparalasimgenes(Venus,TsukubayCones)obtenidasdeuna
basepblicadeimgenesestreoprovenientedeinternet,lascualessebrindanconsus
respectivos mapas de disparidad real [9]. Se ha utilizado el porcentaje de pixeles mal
relacionadoscomomedidadecalidad,lacualestdescritaen[4],basadaenlosmapasde
disparidadrealesprovistosenlabasededatos.
. (4)

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

mencionado en (1), el tamao de la ventana de bsqueda de correspondientes, el


parmetro uniquenessRatio. Esta experimentacin tuvo como objetivo el carcterizar el
comportamiento del algoritmo bajo diferentes valores de sus parmetros, de tal forma
quepudiramosfijarlosenalgnvalorparasuusoenfuturosdesarrollosuaplicaciones.

La Ilustracin 1 presenta los resultados al variar el tamao de la venta de prefiltrado,


observamos que el comportamiento para imgenes con muchos objetos como Cones y
Tsukubaelusodeventanasmuygrandesproduceresultadosnegativos,encambioVenus,
que presenta muchas zonas planas tiene mejores resultados para valores de ventana
grandes.Alrealizarmspruebassobreimgenesquenosepresentanenesteartculo,se
hadeterminadodeformaprcticaquesiesteparmetrosefijaen9,seobtienenbuenos
resultadosenlamayoradelasescenas.Encuantoaltiempodeprocesamientonotamos
quelavariacindeesteparmetronoloafecta.

Ilustracin1.Resultadosvariandotamaodeventanadeprefiltrado,(a)Paratodala
imagen,(b)considerandosololospixelesdezonasmarcadascomoconfiables,(c)Tiempo
deprocesamiento.

El siguiente experimento (Ilustracin 2) consisti en variar el tamao de la ventana de


correlacin para la bsqueda de correspondientes, encontrando un comportamiento
similar al del parmetro anterior logrando determinar un tamaa de ventana que
presentabuenosresultadosparalamayoradeloscasosen15.
El parmetro de prefiltrado Icap (1), no afecta de forma significativa el desempeo, ni
tampocoeltiempodeprocesamiento,sinembargodeacuerdoalosresultadosobtenidos
sefijaelvalordeesteparmetroen30.

Ilustracin2.Resultadosvariandotamaodeventanadecorrelacin,(a)Paratodala
imagen,(b)considerandosololospixelesdezonasmarcadascomoconfiables,(c)Tiempo
deprocesamiento.

El parmetro de postfiltrado uniquenessRatio, afecta principalmente al hacer ms


confiableslosresultadosdeaquellaszonasmarcadascomoaltamenteconfiables,estose
puedeobservarenelinciso(b)delaError!Noseencuentraelorigendelareferencia.en
el cual a medida que el umbral toma valores mayores, el nmero de pixeles errneos

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.

Sin embargo debido a la gran cantidad de parmetros que afectan su desempeo, es


necesario contar con una gua que nos indique que valores elegir entre todas las
posibilidades.Elanlisispresentadoenesteartculosehautilizadoparafijarlosvaloresde
cadaparmetro,conelobjetivodepoderutilizarloenfuturasaplicaciones.

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.

[5] Vladimir Kolmogorov y Ramin Zabih. Computing Visual Correspondence with


Occlusions via Graph Cuts. International Conference on Computer Vision, pp. 508515,
2001.

[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

XI CONGRESO NACIONAL DE INGENIERA


ELECTROMECNICA Y DE SISTEMAS

Aplicacin de un Algoritmo de Clculo de Disparidad para la


Estimacin de Profundidades Usando Cmaras Estreo
Jess Arturo Escobedo Cabello1, Volodymyr Ponomaryov
SEPI, ESIME-Culhuacan, Instituto Politcnico Nacional, Mxico. Av. Santa Ana No. 1000,
Col. San Fco. Culhuacan, C.P. 04430, Mxico D.F., Mxico
Telfono y Fax (55) 57296000
E-mail: arturoescobedo_iq@hotmail.com1
Resumen En este trabajo se presenta la implementacin de
un sistema para estimacin de profundidad usando un par
estreo de cmaras. El sistema est basado en un algoritmo de
Block Matching para el clculo del mapa denso de disparidad.
Para poder utilizar el algoritmo de Block Matching en
imgenes reales se realiza la calibracin de las cmaras y
rectificacin de las imgenes del par estreo. El software fue
desarrollado en el lenguaje de programacin C y es capaz de
realizar procesamiento en tiempo real.

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.

Palabras Clave disparidad, profundidad, Block Matching,


visin estreo, calibracin, rectificacin.

Abstract This work presents the implementation of a depth


estimation system using an stereo pair. The system developed is
based on Block Matching method for disparity map
calculation.
In order to be able to use Block Matching algorithm over real
images camera calibration and image rectification are done.
The software was developed in C programming language and
is able to do real time processing.
Keywords disparity, depth, Block Matching, stereo vision ,
camera calibration, image rectification.

I. INTRODUCCIN

Fig.1. Configuracin de cmaras en un par estreo

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. [1, 2].
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.
La visin estreo o estereoscpica se define como
aquella en la que se emplea ms de una imagen para obtener
una idea de tridimensionalidad [3]. Segn el nmero de
imgenes que se emplee, se habla de visin bifocal (dos
imgenes), trifocal (tres imgenes), cuadrfocal (cuatro
imgenes) o n-focal (n imgenes).

Para una cmara que cumple con el modelo pinhole y


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

MXICO, DF., NOVIEMBRE 2009

78

INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO

XI CONGRESO NACIONAL DE INGENIERA


ELECTROMECNICA Y DE SISTEMAS

considerar el modelo pinhole de la cmara como una


transformacin lineal entre la escena y el plano de la imagen
mediante la matriz de cmara 3C.
(1)
3


 

(5)

Donde  y  representan la distancia


focal medida en pixeles considerando los errores producidos
al no tener pixeles cuadrados como dos factores de escala
y . Los trminos y consideran la falta de alineacin
entre el centro del sensor y el eje ptico de la cmara.
Estos parmetros son conocidos como los parmetros
intrnsecos de la cmara, y son calculados durante el
proceso de calibracin de la misma.
Las cmaras reales (especialmente aquellas de bajo
costo) tambin sufren de los efectos de la distorsin causada
por las lentes, que se modelan como se muestra a
continuacin, la ecuacin (6) muestra los coeficientes de
distorsin radial.


(6)

(2)

La forma mostrada en (2) es la ms sencilla para una


matriz de cmara, esto es vlido para todo y permite
hallar las relaciones entre las coordenadas de P y p.

Donde es la distancia del pixel distorsionado con


respecto al centro de la imagen y   se conocen
como coeficientes de distorsin y tambin deben ser
calculados. La distorsin tangencial est caracterizada por
dos parmetros, y , tal que:


Fig.2. Relacin geomtrica para obtener la
profundidad Z a partir de la disparidad.


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].

Dependiendo el sistema de referencia utilizado en las


imgenes, la definicin de la disparidad puede cambiar, de
forma que el signo sea siempre positivo.


(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

Debido a que la profundidad es inversamente proporcional a


la disparidad, existe una relacin no lineal entre estos dos
trminos. Cuando la disparidad es cercana a 0, pequeas
diferencias de disparidad producen grandes diferencias en
profundidad. Cuando la disparidad es grande, pequeas
diferencias en disparidad casi no producen cambios en el
valor de profundidad. La consecuencia es que los sistemas
de visin estreo tienen una alta resolucin en profundidad
solo para objetos relativamente cerca a la cmara.
Dado el mnimo incremento de disparidad permitido
, podemos determinar el valor de profundidad mnimo
que se puede medir (resolucin) usando la frmula:

(4)

Las cmaras CCD no ideales pueden modelarse como


sigue.

MXICO, DF., NOVIEMBRE 2009

(7)

79

INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO

XI CONGRESO NACIONAL DE INGENIERA


ELECTROMECNICA Y DE SISTEMAS

muestra en la Fig. 3. Con esta configuracin se simplifica la


bsqueda de los puntos correspondientes pues se asegura
que el correspondiente de un punto con coordenada vertical
en la imagen izquierda, se encuentra en la fila de
coordenada   de la imagen derecha, que se
denomina scanline. La solucin al problema de la
rectificacin de las imgenes de un par estreo ha sido
ampliamente tratado y existen soluciones en la literatura [7].
Lo importante es que siempre es posible hacer la
rectificacin de las imgenes llevndolas a la configuracin
de la Fig. 3.

normalizndolo basado en la intensidad promedio


de los pixeles adyacentes.
Bsqueda de correspondientes utilizando suma de
diferencias absolutas (SAD).
Extraccin del valor extremo. Se determina el valor
extremo de la correlacin para cada pixel, esto
genera el mapa de disparidad.
Etapa de post filtrado.

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)

C. Algoritmo de Block Matching


Donde es el valor de intensidad promedio en la
ventana e es un lmite numrico positivo.

El algoritmo de bsqueda de correspondencias estreo


de Kurt Konolige, es un algoritmo rpido de bsqueda 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 mximo.
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
imgenes. 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 saln interior, muy pocos puntos
podrn registrar una profundidad.

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:

D. Etapas del Algoritmo de BM.


Este algoritmo cumple con las siguientes etapas.
Etapa de pre filtrado. Utiliza un operador local que
transforma cada pixel en el par estreo,

MXICO, DF., NOVIEMBRE 2009

80

(9)

INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO

XI CONGRESO NACIONAL DE INGENIERA


ELECTROMECNICA Y DE SISTEMAS

Donde

denota una scanline particular de la imagen y:


(10)
Denota el valor medio de la j-esima scanline de la
ventana centrada en
.
Chequeo de consistencia: Aun despus de aplicar el
operador de inters para zonas con baja textura, se siguen
teniendo errores en porciones de la imagen con
discontinuidades en el valor de disparidad (bordes de
objetos) debido a que Frecuentemente una parte de la escena
puede ser visible nicamente en una de las imgenes. Esto
resulta en que los algoritmos encuentran correspondientes de
forma aleatoria o espuria, debido a que no existe un
correspondiente correcto.

Fig. 4. Esquema a bloques del sistema creado.

La cmara utilizada, enva las dos imgenes del par


estreo como una sola imagen entrelazada byte a byte con lo
cual se consigue que las imgenes se reciban sincronizadas
(es decir que se tomen en el mismo instante de tiempo).

La aplicacin de un chequeo izquierdo/derecho puede


eliminar estos errores. Este chequeo puede ser
implementado eficientemente almacenando suficiente
informacin al momento de hacer la correlacin de
disparidad original.
Chequeo de unicidad: Finalmente se realiza un
chequeo que filtra todos aquellos pixeles que no arrojan
valores
de la funcin de costo lo suficientemente
diferenciados como para ser aceptados como un resultado
confiable, para ello
se fija
un parmetro
que define el umbral para el valor de la
funcin de costo
, definido por:

Fig.4. Imagen original como es tomada por la cmara estreo, observe que
la imagen izquierda y derecha estn entrelazadas.

El primer paso del sistema de pre-procesamiento


consiste en separar las dos imgenes izquierda y derecha. La
imagen se adquiere mediante un sensor con un filtro Bayer,
lo que reduce la cantidad de informacin que se tiene que
transmitir de la cmara a la estacin de trabajo,
disminuyendo los tiempos de transmisin (que en este tipo
de aplicaciones suelen ser importantes). La figura (5)
muestra una de las imgenes tomadas por la cmara derecha,
en el acercamiento puede observarse el patrn de puntos
caracterstico de una imagen tomada empleando un filtro de
Bayer.

(11)

G. Refinamiento a nivel subpixel.


Finalmente el algoritmo realiza un refinamiento de los
valores de disparidad usando interpolacin, con el propsito
de mejorar la resolucin del sistema al momento de estimar
los valores de profundidad. Despus del refinamiento se
obtienen medidas de disparidad con una resolucin de 1/16
pixeles [9].
III. RESULTADOS
A.

Implementacin y Simulacin

La plataforma en la cual se ha probado este algoritmo


utiliza un procesador a 2.4GHz, usando la cmara estreo
BUMBLE-BEE de la empresa Point Gray Research
con una conexin de video IEEE 1394.
El algoritmo implementado realiza la rectificacin de
las imgenes, y el clculo del mapa denso de disparidad.
Figura 3.

Fig.5. Imagen izquierda separada, observe en la derecha el patrn de


puntos representativo de una imagen tomada con un filtro Bayer.

El patrn de Bayer [10], debe interpretarse para generar


la informacin de color de la imagen (RGB) y
posteriormente se transforman las imgenes de color a
escala de grises, que es el formato utilizado durante el
proceso de rectificacin que corrige los efectos de la
distorsin (radial y tangencial) y alinear las lneas de
bsqueda con el eje . Fig. 6.

B. Etapa de preprocesamiento
Esta etapa consiste en todas las transformaciones previas,
que deben hacerse antes de aplicar el algoritmo estreo.

MXICO, DF., NOVIEMBRE 2009

81

INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO

XI CONGRESO NACIONAL DE INGENIERA


ELECTROMECNICA Y DE SISTEMAS

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.

La Fig. 7 muestra la precisin


con respecto a la
profundidad
(4) para el caso en el cual el mapa de
disparidad es calculado sin hacer la estimacin a nivel subpixel; los valores de y son caractersticos de la cmara y
se determinan durante el proceso de calibracin.

dimensiones conocidas, con objetos estticos, de tal forma


que se conoce la posicin inicial del vehculo con respecto a
cada uno de los objetos de la escena.
Para obtener las mediciones de profundidad, se
seleccionan algunos puntos de la escena los cuales se siguen
usando tcnicas de flujo ptico. Con el propsito de mejorar
el desempeo del algoritmo de flujo ptico y de este modo
aislar sus efectos para poder analizar nicamente los efectos
del algoritmo de clculo de mapa de disparidad, se han
colocado marcas (cuadros blancos) sobre los objetivos.
Cada uno de los cuadros es seguido durante toda la
secuencia de imgenes y se calcula su profundidad en cada
instante (cuadro de la secuencia) a partir del mapa de
disparidad calculado.
En la Fig. 10 se muestran los resultados obtenidos para
dos puntos de la imagen (puntos 4 y 6) el punto cuatro
corresponde a la caja ms prxima al vehculo del lado
derecho, en tanto que el punto 4 corresponde a una caja
situada 6 metros ms atrs que la primera, tambin del lado
derecho.

Fig. 7. Precisin en la estimacin de profundidades para el sistema


implementado sin utilizar refinamiento a nivel sub-pixel del mapa de
disparidad. Izquierda, precisin a corta distancia. Derecha, precisin a larga
distancia

En la siguiente figura se muestra, como es mejorada


considerablemente la resolucin en la estimacin de
profundidades, sobre todo,
para valores grandes de
profundidad cuando se utiliza el refinamiento a nivel subpixel en el clculo del mapa de disparidad.

70
punto 4
punto 6

profundidad estimada (m)

60

Fig. 8. Precisin en la estimacin de profundidades para el sistema


implementado utilizando refinamiento a nivel sub-pixel del mapa de
disparidad. Izquierda, precisin a corta distancia. Derecha, precisin a larga
distancia.

40

30

Punto sobre la caja


(movimiento a velocidad constante)
Momento en que el
punto sale de la escena

20

10

Podemos observar que la estimacin realizada ser


mejor para objetos de la escena que se encuentren cercanos
a la cmara, esto es debido a la relacin no lineal existente
entre la profundidad y la resolucin.
C. Experimentos
El ajuste de los parmetros utilizados por el algoritmo
de block matching es presentado en [11], la secuencia de
imgenes es tomada desde un vehculo movindose a
velocidad constante de 3.6 km/h. Dentro de un escenario de

MXICO, DF., NOVIEMBRE 2009

Punto reubicado sobre los


rboles del fondo

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.

El desplazamiento de 6 metros existente entre los dos


objetivos puede verse en la Fig. 10, como la diferencia
existente entre las dos rectas descendiendo con pendiente

82

INGENIERA EN ELECTRNICA
ARTCULOS ACEPTADOS POR REFEREO

XI CONGRESO NACIONAL DE INGENIERA


ELECTROMECNICA Y DE SISTEMAS

constante (cuadros 1 al 138). El error promedio al calcular la


distancia entre cajas en este caso fue de 29 cm.
7.5

objeto situado a 6 m de distancia con un error de tan solo


11.3 cm.

profundidad estimada
profundidad real

IV. CONCLUSIONES

profundidad estimada (m)

Cuando se pretende implementar un sistema de


bsqueda de correspondencias o clculo de disparidad como
parte del control de posicin de un vehculo o robot mvil,
es muy importante que la estimacin de dicho algoritmo
considere una etapa de refinamiento, para producir valores
de disparidad a nivel sub-pxel.
Los resultados obtenidos ocupando el mtodo de
bsqueda de correspondientes mediante Block Matching
presentado son alentadores para la utilizacin de sistemas
estreo de clculo de disparidad, como herramienta para la
estimacin de distancias (profundidades) dentro de sistemas
de control de navegacin de robots mviles, o como en este
caso, vehculos de baja velocidad, debido principalmente a
que puede ser implementado de forma muy eficiente
computacionalmente, siendo posible su utilizacin en
tiempo real.

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

Fig. 11. Resultados de la estimacin de profundidad con respecto a la


disparidad ideal terica que debera obtenerse al suponer una velocidad
constante el vehculo.

Otro experimento que se realiz consiste en comparar


los resultados de profundidad obtenidos, con aquellos
valores tericos que deberan obtenerse considerando que el
vehculo se mueve a una velocidad constante, conociendo su
posicin inicial con respecto a cada una de las cajas Fig. 11.
En este caso el error promedio fue de 11.3 cm, 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
estimacin para un objetivo, que adems se trata de la caja
ms cercana situada inicialmente a 7 m del vehculo, en
tanto que en el caso anterior influyen los errores de la
estimacin para el objetivo situado a 7m y el siguiente,
situado a 13m del vehculo.

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

MXICO, DF., NOVIEMBRE 2009

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

Apendice B: Procesador Digital de Se


nales

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.

Vous aimerez peut-être aussi