DESARROLLO DE HERRAMIENTAS DE APOYO A LA

Anuncio
Universidad Autónoma de Madrid
Escuela politécnica superior
Proyecto fin de carrera
DESARROLLO DE HERRAMIENTAS
DE APOYO A LA ESTEREOVISIÓN
Ingeniería de Telecomunicación
Alberto Garzón Leo
JULIO 2010
DESARROLLO DE HERRAMIENTAS
DE APOYO A LA ESTEREOVISIÓN
AUTOR: Alberto Garzón Leo
TUTOR: Jesús Bescós Cano
Dpto. de Ingeniería Informática
Escuela Politécnica Superior
Universidad Autónoma de Madrid
JULIO 2010
i
Resumen
Resumen
El contexto de este proyecto es el conjunto de técnicas orientadas a la reconstrucción de
escenas en 3D con el fin de permitir aplicar sobre ellas técnicas tradicionales de análisis 2D
(segmentación, seguimiento, detección, reconocimiento, etc.). El estudio comenzará utilizando
dos cámaras Firewire 1394 situadas en la pasarela de la tercera planta entre los edificios A y B
de la EPS. Posteriormente se ampliará el estudio a cámaras IP y a un mayor número de cámaras.
Su objetivo es un conjunto de herramientas capaces de extraer la información de profundidad
de los objetos en una escena a tiempo real tomada desde varias a vistas para posteriormente ser
añadida a otras técnicas de análisis con el fin de disponer de información imposible de conseguir
con una única cámara.
Palabras Clave
Disparidad, estereovisión, 3D, profundidad, Birchfield, tiempo real.
iii
Desarrollo de herramientas de apoyo a la estereovisión
Abstract
The context of this project is the set of tecniques oriented to the 3D scenes reconstruction
in order to allow to apply over them 2D analysis traditional tecnics (segmentation, tracking,
detection, recognition, etc.). The study will start using two Firewire 1394 cameras placed in
the third floor gateway between the A and B EPS buildings. Lately the study will grow to IP
cameras and a highest number of cameras.
His objective is a set of tools capable to extract the disparity information in real time from
the objects of a scene taked from many views to add it to other analysis techniques in order to
handle information imposible to achieve with a single camera.
Key words
Disparity, stereovision, 3D, depth, Birchfield, real time.
iv
Agradecimientos
A mis padres, que tanto me han apoyado ahora y siempre en todo lo que he hecho o intentado.
En especial va dedicado a vosotros.
A mi hermana, por darme siempre esa visión más optimista al enfrentarme a un problema. No
cambies nunca
A Miriam, por escuchar con interés cada día sobre todas estas cosas y brindarme su confianza.
A mi tutor, Jesús Bescós, por ayudarme en todo lo que necesité.
A los compañeros del laboratorio, en especial a Álvaro, que respondieron y me ayudaron
pacientemente en mis preguntas y problemas de novato.
A Pablo, Guillermo y Bruno, por compartir alegrías y frustraciones durante estos últimos años.
Al resto de gente que debería estar aquí y no está, familiares y amigos. Por saber que estáis ahí.
v
Desarrollo de herramientas de apoyo a la estereovisión
vi
CAPÍTULO 0. AGRADECIMIENTOS
Índice general
Agradecimientos
v
índice de figuras
x
xiii
índice de cuadros
1. Introducción
1
1.1. Motivación del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1.1. Aplicaciones de un sistema de estereovisión . . . . . . . . . . . . . . . . .
1
1.1.2. Restricciones básicas de un sistema de estereovisión . . . . . . . . . . . . .
2
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2. Revisión de conceptos básicos
5
2.1. Introducción a la geometría proyectiva . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2. Coordenadas homogéneas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.1. Representación homogénea de una recta . . . . . . . . . . . . . . . . . . .
6
2.2.2. Representación homogénea de un punto . . . . . . . . . . . . . . . . . . .
6
2.2.3. El punto impropio y la línea del infinito . . . . . . . . . . . . . . . . . . .
6
2.3. El plano proyectivo P 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.4. Transformaciones proyectivas en 2D
. . . . . . . . . . . . . . . . . . . . . . . . .
7
2.5. Transformaciones proyectivas en 3D
. . . . . . . . . . . . . . . . . . . . . . . . .
8
2.6. Análisis de la geometría asociada al proceso de captación . . . . . . . . . . . . . .
9
2.6.1. El modelo pin-hole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.6.2. La matriz de proyección . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.7. Análisis de la geometría de visión múltiple . . . . . . . . . . . . . . . . . . . . . .
13
2.7.1. La matriz esencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.7.2. La matriz fundamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
vii
Desarrollo de herramientas de apoyo a la estereovisión
3. Disparidad
17
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2. Rectificación
17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Métodos de cálculo de la disparidad
. . . . . . . . . . . . . . . . . . . . . . . . .
21
3.3.1. Búsqueda por zonas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.3.2. Birchfield-Tomasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.4. Relación entre disparidad y profundidad . . . . . . . . . . . . . . . . . . . . . . .
26
4. Sistema, diseño y desarrollo
29
4.1. Sistema físico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.1.1. Cámaras Firewire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.1.2. Cámaras IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.2. Captura y sincronización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.3. Límites
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
4.3.1. Precisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.4. Calibración y cálculo de matrices de rectificado . . . . . . . . . . . . . . . . . . .
34
4.5. Rectificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.6. Disparidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.6.1. Birchfield-Tomasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.6.2. Búsqueda por bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.7. Profundidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.8. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5. Experimentos Realizados y Resultados
5.1. Análisis de la velocidad
39
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
5.1.1. Pruebas con el método de búsqueda por zonas . . . . . . . . . . . . . . . .
39
5.1.2. Pruebas con el método de Birchfield-Tomasi . . . . . . . . . . . . . . . . .
44
5.2. Analisis de la precisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
5.2.1. Pruebas con el método de búsqueda por zonas . . . . . . . . . . . . . . . .
47
5.2.2. Pruebas con el método de Birchfield . . . . . . . . . . . . . . . . . . . . .
54
5.3. Comparativa de resultados con el estado del arte . . . . . . . . . . . . . . . . . .
54
viii
ÍNDICE GENERAL
Desarrollo de herramientas de apoyo a la estereovisión
6. Conclusiones y trabajo futuro
57
6.1. Conclusiones sobre los sistemas físicos . . . . . . . . . . . . . . . . . . . . . . . .
57
6.2. Conclusiones sobre la restricción temporal . . . . . . . . . . . . . . . . . . . . . .
58
6.3. Conclusiones sobre la restricción de alineación . . . . . . . . . . . . . . . . . . . .
58
6.4. Conclusiones sobre el cálculo de disparidad mediante búsqueda por bloques . . .
58
6.4.1. Suma de Diferencias Absolutas . . . . . . . . . . . . . . . . . . . . . . . .
58
6.4.2. Suma de Diferencias Cuadráticas . . . . . . . . . . . . . . . . . . . . . . .
59
6.4.3. Correlación Cruzada Normalizada . . . . . . . . . . . . . . . . . . . . . . .
59
6.5. Conclusiones sobre el cálculo de disparidad mediante el método de Birchfield . . .
59
A. Presupuesto
63
B. Pliego de condiciones
65
C. Manual de utilización
69
ÍNDICE GENERAL
ix
Índice de figuras
1.1. Par estereo comercial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.1. Proyección de una escena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2. Modelo del plano proyectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3. Transformación 3D Euclídea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.4. Modelo de una cámara pin-hole . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.5. Geometría epipolar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.1. Esquema del proceso de rectificado . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2. Variantes en la construcción de la imagen del espacio de disparidad . . . . . . . .
22
3.3. Representación del problema de cálculo de disparidad mediante corte de grafos .
22
3.4. Definición de la región de búsqueda y de las ventanas . . . . . . . . . . . . . . . .
24
3.5. Ejemplo de una secuencia de correspondencias . . . . . . . . . . . . . . . . . . . .
25
3.6. Imagen del espacio de disparidad y posiciones permitidas tras una correspondencia
dada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.7. Vista superior del sistema estéreo . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.1. Sistema de cámaras Firewire
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.2. Sistema de cámaras IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.3. Estado inicial de la sincronización . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.4. Estado final de la sincronización . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
4.5. Ejemplo de imagen usada en la calibración de las cámaras IP . . . . . . . . . . .
34
4.6. Ejemplo de imágenes rectificadas con y sin desplazamiento . . . . . . . . . . . . .
35
4.7. Verificación de la rectificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.8. Ejemplo de funcionamiento del sistema de profundidad . . . . . . . . . . . . . . .
36
5.1. Ejemplo de escena evaluada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.2. SAD con ventana de 3x3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
xi
Desarrollo de herramientas de apoyo a la estereovisión
xii
5.3. SAD con ventana de 5x5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
5.4. SSD con ventana de 3x3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.5. SSD con ventana de 5x5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.6. NCC con ventana de 3x3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.7. NCC con ventana de 5x5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.8. Imágenes izquierda y derecha del conjunto Cones . . . . . . . . . . . . . . . . . .
45
5.9. Imágenes izquierda y derecha del conjunto Teddy . . . . . . . . . . . . . . . . . .
46
5.10. Disparidad real de Cones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
5.11. Disparidad real de Teddy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
5.12. Resultados con SAD para un tamaño de 3x3, conjunto Cones . . . . . . . . . . .
47
5.13. Resultados con SAD para un tamaño 5x5, conjunto Cones . . . . . . . . . . . . .
48
5.14. Resultados con SAD para un tamaño de 3x3, conjunto Teddy . . . . . . . . . . .
48
5.15. Resultados con SAD para un tamaño de 5x5, conjunto Teddy . . . . . . . . . . .
49
5.16. Resultados con SSD para un tamaño de 3x3, conjunto Cones
. . . . . . . . . . .
50
5.17. Resultados con SSD para un tamaño 5x5, conjunto Cones . . . . . . . . . . . . .
50
5.18. Resultados con SSD para un tamaño de 3x3, conjunto Teddy . . . . . . . . . . .
51
5.19. Resultados con SSD para un tamaño de 5x5, conjunto Teddy . . . . . . . . . . .
51
5.20. Resultados con CNN para un tamaño de 3x3, conjunto Cones . . . . . . . . . . .
52
5.21. Resultados con CNN para un tamaño 5x5, conjunto Cones . . . . . . . . . . . . .
52
5.22. Resultados con CNN para un tamaño de 3x3, conjunto Teddy . . . . . . . . . . .
53
5.23. Resultados con CNN para un tamaño de 5x5, conjunto Teddy . . . . . . . . . . .
53
5.24. Resultados con Birchfield, conjunto Cones . . . . . . . . . . . . . . . . . . . . . .
54
5.25. Resultados con Birchfield, conjunto Teddy . . . . . . . . . . . . . . . . . . . . . .
54
ÍNDICE DE FIGURAS
Índice de cuadros
5.1. SAD 800x600 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.2. SAD 640x480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.3. SAD 320x240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.4. SSD 640x480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.5. SSD 320x240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.6. NCC 640x480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.7. NCC 320x240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.8. Resultados del método de Birchfield . . . . . . . . . . . . . . . . . . . . . . . . .
45
5.9. Resultados con SAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
5.10. Resultados con SSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
5.11. Resultados con CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
5.12. Resultados con Birchfield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
xiii
1
Introducción
1.1.
Motivación del proyecto
Un sistema de adquisición de imágenes con una cámara fija relaciona una escena del espacio
tridimensional con los datos captados en una serie o secuencia de imágenes bidimensionales. Sin
embargo, una imagen bidimensional no da una información suficiente en cuanto a la profundidad
de los objetos de la escena, ya que esa información se pierde al proyectarse todos los puntos de
una línea que pase por el centro óptico de la cámara sobre un mismo píxel.
Si en vez de disponer de una única secuencia tenemos las imágenes de un mismo espacio
tomadas de dos o más cámaras o distintos puntos de vista, es posible utilizar esta información
para reconstruir, total o parcialmente, la escena que se ha grabado. Si las cámaras están dispuestas de modo similar a nuestros ojos, es decir, con sus ejes ópticos paralelos, esta técnica se
denomina estereovisión y a las cámaras así situadas se las denomina par estéreo.
La estereovisión surge, no sólo como un paso natural en la evolución de la visión computacional al imitar el sistema visual humano, sino como una forma de poder obtener información
adicional de la escena que con una única secuencia es imposible de conseguir.
1.1.1.
Aplicaciones de un sistema de estereovisión
La información obtenida de un par estéreo permite realizar mapas de entorno de las cámaras,
seguimientos de objetos concretos para aplicaciones de videoseguridad, obtener la posición de
la cámara respecto a objetos que la rodeen o facilitar la navegación por su entorno de un robot
móvil.
Los resultados obtenidos en este proyecto no sólo tienen valor de forma aislada, sino que
introducidos en sistemas de análisis y procesado de imagen ya existentes, como segmentación,
seguimiento, detección o reconocimiento permiten dotarlos de parámetros e información adicional.
1
Desarrollo de herramientas de apoyo a la estereovisión
1.1.2.
Restricciones básicas de un sistema de estereovisión
A lo largo de este proyecto se hará uso de la disparidad. La disparidad no es más que diferencia
de coordenadas de puntos correspondientes en ambas imágenes. Para poder calcular esta medida
es necesario que las sigan una alineación espacial: sus ejes ópticos deben ser paralelos y sus
planos de imagen coplanares. Varias empresas de visión computacional ofrecen pares estereos
cuyo proceso constructivo integrado cumple todas las restricciones de alineación.
Figura 1.1: Par estereo comercial
Este proyecto se llevará a cabo utilizando dos cámaras individuales, lo cual hace imposible
un alineamiento perfecto por razones mecánicas. Por tanto, la restricción de alineamiento deberá
hacerse mediante software, con transformaciones de los planos de imagen. Este proceso se conoce
como rectificación. La des-rectificación posterior hace necesario el uso de interpolación para
rellenar posibles píxeles blancos, incurriendo en errores. Los concepto de disparidad y rectificado,
sus necesidades e implicaciones en el proyecto serán explicadas con más detalle en el capítulo 3
del mismo.
La imposición más importante de un par estéreo es la restricción temporal. Cuando comparemos imágenes capturadas en instantes distintos de tiempo, estaremos incluyendo errores en el
sistema, tanto mayores cuanto mayor sea la velocidad de movimiento de la escena. Para poder
cumplir este requisito se estudiará el nivel de sincronización del sistema de captura; si no cumple
con una diferencia máxima temporal entre la misma imagen de ambas cámaras, se le aplicará
un método de corrección temporal mediante disparadores.
1.2.
Objetivos
El objetivo principal de este proyecto es el desarrollo de un sistema que permita la construcción de un mapa de profundidad, en tiempo real, de una escena grabada por dos cámaras.
Se estudiará primeramente la implementación del sistema sobre dos cámaras con interfaz
Firewire o IEEE 1394 situadas en la pasarela de la tercera planta entre los edificios A y B de la
Escuela Politécnica Superior (EPS). Posteriormente se ampliará el estudio a cámaras IP.
A lo largo del desarrollo del proyecto se han contemplado otros objetivos secundarios, basados principalmente en las posibilidades de obtener un sistema en tiempo real en función de la
sincronización temporal, el alineamiento físico y los métodos de cálculo de la disparidad.
Desarrollo de un sistema de adquisición sincronizada para varias cámaras IP y Firewire.
Estudio de las posibilidades para la rectificación de las imágenes de cada cámara.
2
CAPÍTULO 1. INTRODUCCIÓN
Desarrollo de herramientas de apoyo a la estereovisión
Estudio de los diferentes métodos de cálculo de la disparidad.
1.3.
Estructura de la memoria
La estructura de este PFC se organiza como sigue:
En el capítulo 2 se presenta una revisión a los conceptos básicos de geometría proyectiva
relacionados con el proceso de captación de las imágenes y de la geometría de captación múltiple.
Así mismo se introduce la notación que se utilizará durante todo el proyecto.
En el capítulo 3 se describe un estudio sobre los distintos métodos del cálculo de la disparidad.
El cálculo de un mapa de disparidad se presenta como un paso previo para la obtención de la
profundidad de la escena, ya que disparidad y profundidad siguen una relación inversa y conocida.
El motivo de realizar este paso previo a la obtención de la profundidad se debe a que en el campo
de la disparidad hay muchos métodos e implementaciones ya estudiados.
En el capítulo 4 se explica el desarrollo de los sistemas de captura para los modelos de cámara
presentados anteriormente a partir de los existentes en el grupo de trabajo. Se hará un análisis
crítico del estado de sincronización de las cámaras y una corrección de los tiempos de captura
en caso de ser necesaria.
Así mismo se explicará la necesidad de calibrar las cámaras, ya que es el mecanismo que nos
permite saber en qué forma los objetos del mundo real se proyectan en el plano de imagen, así
como el método utilizado tanto en las cámaras Firewire como en las IP.
Por último, se detalla el sistema de cálculo de la profundidad y su implementación final, así
como su funcionamiento.
En el capítulo 5 se evalúan los resultados obtenidos de las diferentes pruebas realizadas.
En el capítulo 6 se detallan las conclusiones del proyecto y las posibles líneas de trabajo
futuro.
CAPÍTULO 1. INTRODUCCIÓN
3
2
Revisión de conceptos básicos
Este capítulo está centrado en la descripción de los conceptos de geometría proyectiva usados
en el proceso de captación de la imagen y en la modelización matemáticas de las cámaras. Este
estudio se ampliará para abarcar las particularidades de un sistema de captación con múltiples
cámaras
2.1.
Introducción a la geometría proyectiva
Una forma muy intuitiva de acercarse a las leyes que rigen la geometría proyectiva es el
problema del pintor. Si pensamos en los haces de luz que parten de los objetos visibles de una
escena hacia el ojo del pintor y colocamos una pantalla transparente entre ambos obtendremos
una colección de puntos que definen la proyección de la escena. Esto es lo que debe reproducir
el pintor para dar la sensación a los demás de ver lo que él está viendo.
Figura 2.1: Proyección de una escena
Esta geometría nos proporciona un modelo muy útil para el proceso de captación de una
cámara, pues nos relaciona figuras tridimensionales con su proyección sobre un plano bidimensional.
La geometría proyectiva se apoya en dos principios fundamentales:
Dos puntos definen una recta
5
Desarrollo de herramientas de apoyo a la estereovisión
Todo par de rectas se cortan en un punto (cuando dos rectas son paralelas decimos que se
cortan en un punto del infinito).
2.2.
2.2.1.
Coordenadas homogéneas
Representación homogénea de una recta
Como es común en el contexto de la geometría euclidiana, un punto m se representa con un
par de coordenadas (x, y) en R2 . Por ello se suele identificar R2 con un plano. De este modo, si
consideramos R2 como un espacio vectorial en el que (x, y) es un vector, estamos asociando un
punto a un vector.
Una recta en el plano R2 es representada por su ecuación afín ax + by + c = 0. De esta forma
la recta puede ser representada por el vector v = [a, b, c]T en coordenadas homogéneas.
Esta correspondencia entre líneas y vectores no es biunívoca, ya que los vectores [a, b, c]T y
[ka, kb, kc]T con k != 0 representan exactamente la misma recta siendo vectores distintos. Estos
vectores se consideran equivalentes y se definen como vectores homogéneos.
2.2.2.
Representación homogénea de un punto
Un punto m = (x, y)T pertenecerá a la recta [a, b, c]T si se cumple la ecuación ax + by + c =
0. Esto puede expresarse de forma vectorial como [a, b, c]T ! [x, y, 1] = 0, donde [x, y, 1] es la
representación homogénea de m en R2 .
De una forma más genérica puede expresarse M = [X, Y, Z] con (X, Y, Z) ∈ R y Z != 0 como
la expresión homogénea del punto euclidiano m = [x, y], cuya relación viene dada por:
x = X/Z
y = Y /Z
Hay que señalar que a cada M = [X, Y, Z] le corresponde un único m = [x, y]; pero a m le
corresponden los infinitos [kX, kY, kZ], siempre que k sea real y distinto de cero.
2.2.3.
El punto impropio y la línea del infinito
Si consideramos los vectores de dos rectas en coordenadas homogéneas, v = [a, b, c]T y
v’ = [a! , b! , c! ]T , el punto de corte de ambas rectas viene dado por su producto vectorial:
[X, Y, Z] = [a, b, c] × [a! , b! , c! ]
En el ámbito de la geometría euclidiana, dos rectas paralelas no se cortan en ningún punto.
Veamos que ocurre si intentamos calcular el punto de corte de dos rectas paralelas en coordenadas
homogéneas:
[X, Y, Z] = [a, b, c] × [a, b, c! ] = (c! − c)[b, −a, 0]
Si ignoramos el factor de escala (c! −c) y pasamos a coordenadas euclídeas obtenemos el punto
[b/0, −a/0], que no tiene sentido en el ámbito real, excepto sugerir que el punto de intersección
tiene coordenadas infinitamente altas. En general, puntos con coordenadas homogéneas [X, Y, 0]T
no corresponden a ningún punto finito en R2 .
6
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
Desarrollo de herramientas de apoyo a la estereovisión
Los puntos homogéneos con la coordenada Z = 0 se conocen como puntos impropios o puntos
en el infinito. El conjunto de los puntos impropios, escrito como [X, Y, 0]T pertenecen a la llamada
línea del infinito, definida por l∞ = [0, 0, 1]T ; pudiéndose verificar que [0, 0, 1] · [X, Y, 0]T = 0.
2.3.
El plano proyectivo P 2
Una forma útil de acercarse a P 2 es pensar en un conjunto de líneas que pasen por el origen
en R3 . Cada línea en R3 genera un punto en P 2 (por lo tanto, un punto de P 2 corresponde con
una dirección o recta de R3 ) y cada plano genera una recta. Las líneas de R3 situadas en el plano
X-Y se corresponden con puntos impropios de P 2 , de modo que el propio plano X-Y conforma
la recta del infinitode P 2 .
Figura 2.2: Modelo del plano proyectivo
Se puede observar que cualquier punto perteneciente a la recta [O − m] se proyectará sobre
el propio punto m. Esto es lo mismo que decir que la proyección de k · [X, Y, Z] es igual a la
proyección de [X, Y, Z] para k != 0, y que esta proyección está dada por x = X/Z e y = Y /Z.
En otras palabras, la clase de vectores k · [X, Y, Z] en R3 representa el mismo punto en P 2 .
2.4.
Transformaciones proyectivas en 2D
La geometría proyectiva en 2D es el estudio de las propiedades del plano proyectivo P 2 , que
son invariantes bajo un grupo de transformaciones conocidas como homografías o proyectividades.
Una homografía es una transformación biyectiva del espacio proyectivo que viene dada por
h : P 2 → P 2 de manera tal que una línea recta es transformada como una línea recta. La
homografía queda definida como:
h(m) = m’ = H · m
m, m’ ∈ P 2

 
 

X!
h11 h12 h13
X
 Y !  =  h21 h22 h23  ·  Y 
Z!
h31 h32 h33
Z
donde H es una matriz 3x3 no singular. Hay que aclarar que debido a que las coordenadas
k · [X, Y, Z] definen el mismo punto proyectivo, cualquier par de matrices proporcionales definen
la misma transformación proyectiva.
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
7
Desarrollo de herramientas de apoyo a la estereovisión
2.5.
Transformaciones proyectivas en 3D
Dentro de las transformaciones 3D únicamente vamos a estudiar la transformación Euclídea.
Este tipo de transformación tiene como característica que conserva la distancia previa entre
puntos transformados; además se usa para representar los cambios de coordenadas sufridos al
variar el sistema de referencia de un sistema. La importancia de esta transformación radica en
que se utilizará más adelante para explicar el modelo pin-hole que usaremos para representar
las cámaras.
Figura 2.3: Transformación 3D Euclídea
Dado el sistema de coordenadas 3D (x, y, z) que se aprecia en la figura 2.3, vemos que ha
sufrido una rotación según cada uno de sus ejes y una traslación, de forma que el nuevo sistema
(x! , y ! , z ! ) surgido de esta transformación euclidiana queda definido como:
 ! 
 
x
x
 y!  = R ·  y  + t
z!
z
Y en coordenadas homogéneas:

X!
'
 Y! 
= R

 Z! 
0T
1



X
(

t 
 Y 

1
Z 
1
R es una matriz 3x3 y t es un vector 3x1 y definen respectivamente la rotación y la translación
del sistema de coordenadas.
La matriz de rotación R puede descomponerse en transformaciones de rotación alrededor de
cada uno de los ejes, dadas por Rx , Ry y Rz :


1
0
0
Rx =  0 cos(ϕx ) sin(ϕx ) 
0 − sin(ϕx ) cos(ϕx )

cos(ϕy ) 0 − sin(ϕy )

0
1
0
Ry = 
sin(ϕy ) 0 cos(ϕy )

8
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
Desarrollo de herramientas de apoyo a la estereovisión


cos(ϕz ) sin(ϕz ) 0
Rz =  − sin(ϕz ) cos(ϕz ) 0 
0
0
1
Así definimos la rotación total como una rotación alrededor del eje Z, seguida de otra rotación
respecto a Y y otra más respecto a X, lo que matemáticamente podemos expresar como:

R11 R12 R13
R = Rx · Ry · Rz =  R21 R22 R23 
R31 R32 R33

2.6.
Análisis de la geometría asociada al proceso de captación
Para estudiar cómo se relacionan los objetos tridimensionales con la imagen bidimensional
vamos a representar la cámara con el modelo pin-hole. Este modelo es muy utilizado aunque
sencillo, ya que no modela la distorsión que introduce la lente, y está basado en la geometría
proyectiva: un punto cualquiera de la escena es representado en el plano de imagen como la
intersección de la línea que pasa por ese punto y por el centro de proyección con el plano de
imagen.
2.6.1.
El modelo pin-hole
El modelo consiste en un centro óptico C en el cual convergen todos los rayos de proyección
y un plano de imagen situado a una distancia focal f del centro óptico de forma paralela al eje
óptico Zc .
Figura 2.4: Modelo de una cámara pin-hole
La figura 2.4 muestra la proyección de un punto M sobre el plano imagen en m. Como se
puede apreciar, esta proyección consta de varias transformaciones y transiciones entre distintos
sistemas de coordenadas. Los sistemas de referencia que aparecen en la figura son los siguientes:
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
9
Desarrollo de herramientas de apoyo a la estereovisión
Sistema de coordenadas del mundo: describe la posición del punto 3D M y de la escena
en general. Este sistema debe ser fijado o conocido por el método de calibración. Sus ejes
son X, Y, Z.
Sistema de coordenadas de la cámara: describe la posición del punto 3D Mc respecto de la
cámara. El punto Mc esel mismo que M, pero referido a distinto sistema de coordenadas.
Su origen es el centro óptico y sus ejes son Xc , Yc y Zc , siendo éste último colineal con el
eje óptico.
Sistema de coordenadas de la imagen: describe la posición del punto 2D m respecto al
plano imagen. Normalmente este sistema tiene su origen en c, el centro del plano imagen,
en la intersección del plano con el eje óptico. Sus ejes son u y v.
Sistema de coordenadas de la imagen normalizado: describe la posición del punto 2D mn
respecto al pano imagen, situando el origen en la esquina superior izquierda del plano. El
punto mn es el mismo que m, pero referidos a distintos sistemas de coordenadas. Sus ejes
son un y vn .
El comportamiento de este modelo depende de una serie de parámetros propios de cada
cámara. Estos parámetros se clasifican en extrínsecos (dependientes de la posición externa de
la cámara respecto de la escena) e intrínsecos (dependientes de la construcción interna de la
cámara).
Parámetros extrínsecos: indican la posición relativa de la cámara respecto al sistema de
referencia del mundo.
• Translación: t = [tx , ty , tz ]T es la distancia entre el origen de coordenadas de la cámara
(centro óptico) y el origen de coordenadas del mundo.
• Rotación: R = [ϕx , ϕy , ϕz ] son los ángulos rotados sobre cada uno de los ejes para
alinear el sistema de referencia del mundo con el de la cámara.
Parámatros intrínsecos: marcan en qué forma se transforma el punto 3D Mc en mn . Dependen de la geomtría interna y de la óptica de la cámara. Estos parámetros son:
• Centro del eje óptico c = [u0 , v0 ]: marca el punto de corte del eje óptico con el plano
de imagen, con coordenadas expresadas en píxeles. A este punto también se le llama
punto principal.
• Factores de escalado ku , kv : definen la proporción de tamaño del objeto real respecto
a su proyección sobre el plano imagen. Estos parámetros se descomponen a su vez en:
◦ Factores de conversión milímetros-pixel (du ,dv ): indican la densidad de píxeles
de la cámara, y puede obtenerse dividiendo el tamaño en píxeles del CCD entre
el tamaño en milímetros.
◦ Distancia focal f : expresa la distancia entre el plano imagen y el centro óptico,
en milímetros.
◦ Factor de proporción s: define la relación de tamaño entre la dimensión horizontal
y vertical de un píxel.
La relación entre ellos es: ku = s · du · f y kv = dv · f .
10
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
Desarrollo de herramientas de apoyo a la estereovisión
2.6.2.
La matriz de proyección
Si consideramos un punto en 3D expresado según sus coordenadas homogéneas, M = [X, Y, Z, T ],
de la misma forma que un punto 2D m= [U, V, S]. Supongamos que tenemos una cámara que
captura la escena y proyecta M sobre m, podemos relacionar ambos puntos a excepción de un
factor de escala, λ:
λ·m=P·M
La matriz P se denomina matriz de proyección y contiene información de los parámetros
intrínsecos y extrínsecos. Para obtener dicha matriz se estudia la relación entre M, expresado en
coordenadas del mundo, y m, expresado en coordenadas normalizadas de la imagen (un y vn )
en la figura 2.3, en función de los parámetros de la cámara. El proceso consta de tres etapas:
1. Transformación escena-cámara: pasamos de las coordenadas del mundo [X, Y, Z] a las
coordenadas de la imagen [Xc , Yc , Zc ] utilizando la matriz de parámetros extrínsecos de la
cámara.
Primero se realiza una rotación alrededor de cada uno de los ejes:

 
  
xr
r11 r12 r13
x
 yr  =  r21 r22 r23  ·  y 
zr
r31 r32 r33
z
(2.1)
Mr = R · M
Después aplicamos una traslación según el vector t:

 
 

xr
tx
xc
 y c  =  y r  +  ty 
zc
zR
tz
(2.2)
Mc = Mr + t
Podemos combinar las ecuaciones 2.1 y 2.2 para expresar directamente el paso de las
coordenadas del mundo a las coordenadas de la cámara:
Mc = R · M + t
Además esta expresión matricial puede expresarse en
la matriz de parámetros extrínsecos [R t]:



Xc
'
(

 Yc 
R t



 Zc  = 0 1 · 
1
(2.3)
coordenadas homogéneas mediante

X
Y 

Z 
1
(2.4)
2. Transformación cámara-imagen: pasamos de las coordenadas 3D de la cámara [xc , yc , zc ] a
las coordenadas 2D del plano de imagen [u, v].
Aplicando lo que sabemos de la geometría de proyección podemos relacionar las coordenadas de ambos sistemas mediante la distancia focal f :
u
v
f
=
=
zc
xc
yc
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
11
Desarrollo de herramientas de apoyo a la estereovisión
Haciendo uso de estas ecuaciones podemos componer la expresión matricial de la proyección
perspectiva:
' (
'
(
f
u
xc
=
·
v
yc
zc
Expresado en coordenadas homogéneas:


Xc
f 0 0 0
U


 V  =  0 f 0 0  ·  Yc 
 Zc 
0 0 1 0
S
1




(2.5)
3. Transformación imagen-imagen normalizada: convertimos las coordenadas del plano imagen (u,v) en coordenadas normalizadas (un , vn ). Como se ve en la figura 2.4, ambos sistemas de coordenadas pertenecen al mismo plano, por lo tanto para hacer la transformación
sumamos vectorialmente a m la posición relativa de c respecto a cn . Además de ello se
deben aplicar los factores de conversión para pasar las unidades de milímetros a píxeles.
un = du · u + u0
vn = dv · v + v0
Que expresado en coordenadas homogéneas queda de la forma:

 
 

du 0 u0
U
Un
 Vn  =  0 dv v0  ·  V 
Sn
0 0 1
S
(2.6)
Podemos combinar los resultados de la ecuaciones 2.4 y 2.5 para obtener la relación de un
punto 3D Mc con el punto 2D mn , utilizando la matriz de parámetros A.

Xc
du 0 u0
f 0 0 0
Un


 Vn  =  0 dv v0  ·  0 f 0 0  ·  Yc 
 Zc 
Sn
0 0 1
0 0 1 0
1



 

Xc
du · f
0
u0 0
Un
 Yc 

 Vn  =  0
dv · f v0 0  · 
 Zc 
Sn
0
0
1 0
1



 


(2.7)
mn = A · Mc
Finalmente, podemos hallar la expresión general de la matriz de proyección que nos relaciona
un punto 3D M de la escena y su correspondiente mn en el plano imagen multiplicando la matriz
de parámetros intrínsecos A de la ecuación 2.6 y la matriz de parámetros extrínsecos [R t] de la
ecuación 2.3:




r11 r12 r13 tx
du · f
0
u0 0
 r21 r22 r23 ty 

dv · f v0 0  · 
P = 0
 r31 r32 r33 tz 
0
0
1 0
0
0
0 1

 
du · f
Un
λ ·  Vn  =  0
Sn
0
12
0
dv · f
0

 

r11 r12 r13 tx
X
u0 0
 r21 r22 r23 ty   Y
 
v0 0  · 
 r31 r32 r33 tz  ·  Z
1 0
0
0
0 1
1
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS




(2.8)
Desarrollo de herramientas de apoyo a la estereovisión
λ · mn = P · M
2.7.
Análisis de la geometría de visión múltiple
La relación geométrica entre dos proyecciones de un mismo punto físico puede ser expresada
a través de la geometría epipolar.
Figura 2.5: Geometría epipolar
En la figura anterior se muestran dos cámaras "pinhole", los centros de proyección Ci y
Cd y los planos de imagen, las longitudes focales se denotan como fi y fd . A la recta que
une ambos centros de proyección se le llama línea base. Cada cámara identifica un sistema de
referencia 3D con el origen situado en el centro de proyección de la cámara y el eje Z con el eje
óptico. Los vectores Mi = [Xi , Yi , Zi ]T y Md = [Xd , Yd , Zd ]T se refieren al mismo punto 3D, M,
como vectores en los sistemas de referencia de la cámara izquierda y derecha respectivamente.
Los vectores mi = [xi , yi , zi ]T y md = [xd , yd , zd ]T definen las proyecciones del punto M en la
imagen izquierda y derecha respectivamente y están expresados en su correspondiente sistema
de referencia. Para todos los puntos de las imágenes tenemos zi = fi o zd = fd de acuerdo a la
imagen que sea. Así, la relación entre un punto del espacio y su proyección se define según las
fi
fd
ecuaciones de perspectiva, que en forma vectorial quedan: mi = Mi y md =
Md .
Zi
Zd
El nombre de geometría epipolar es debido a que a los puntos en los que corta la recta que
une los centros de proyección con los planos de proyección se les llama epipolos; denotaremos ei
al epipolo izquierdo y ed al epipolo derecho. Por su construcción, los epipolos son la proyección
sobre su plano de imagen del centro de proyección de la otra cámara. Si los planos de imagen
son paralelos a la línea base, los epipolos se encuentran en el infinito.
Los sistemas de referencia de las cámaras izquierda y derecha están relacionados a través de
unos parámetros extrínsecos. Estos definen una transformación rígida en el espacio 3D definida
por un vector de traslación T = Cd − Ci y una matriz de rotación R. Dado un punto M en el
espacio la relación entre Mi y Md es por tanto:
Mi = R · Md + T
(2.9)
Podemos relacionar estos parámetros extrínsecos con los propios de cada una de las cámaras
sabiendo que las matrices de rotación son unitarias:
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
13
Desarrollo de herramientas de apoyo a la estereovisión
Md = Rd · M + td
Mi = Ri · M + ti
Mi = Ri · RdT (Md − td ) + ti = Ri · RdT · Md + (ti − Ri RdT td )
Si igualamos términos con la ecuación 2.8 obtenemos:
R = Ri · RdT
T = ti − Ri · RdT td = ti − R · td
La importancia del desarrollo de este tipo de geometría radica en el hecho de que para poder
hallar la información de profundidad de un punto es necesario saber dónde se proyecta en ambas
cámaras para poder posteriormente triangular. En principio, la región para buscar el punto
correspondiente al punto mi es toda la imagen derecha, pero si nos fijamos en el plano epipolar,
identificado por M , Oi y Od , vemos que interseca en los planos de imagen en líneas llamadas
líneas epipolares que denotaremos como li y ld . Cada una de estas líneas puede verse como la
proyección sobre su plano de imagen de la recta definida por M y el centro de proyección de la
otra imagen. Si nos fijamos en la recta Oi − M y vemos esta recta como la colección de puntos
k · [X, Y, Z] que son proyectados sobre mi = [X/Z, Y /Z], se puede observar que cada uno de ellos
se proyectará sobre un punto de la línea epipolar ld . Visto de otra manera podemos decir que,
para hallar el punto md correspondiente a mi , sea cual sea el punto M que lo ha proyectado,
tenemos que buscarlo en la línea epipolar ld . A esto se le llama, cualitativamente, restricción
epipolar. De esta forma hemos reducido la búsqueda de correspondencias a un problema en 1D.
A continuación veremos como estimar esta geometría epipolar.
2.7.1.
La matriz esencial
La ecuación del plano epipolar puede escribirse como la coplanariedad de los vectores Mi ,
T y Mi − T , de manera que esta condición de coplanariedad puede escribirse como (Mi − T )T ·
(T × Mi ) = 0. Usando la relación entre Mi y Md y aplicando que el producto vectorial de dos
vectores puede expresarse como el producto de una matriz antisimétrica por un vector tenemos:
(RMd )T · S · Mi = MdT · RT · S · Mi = 0
con


0
−Tz Ty
0
−Tx 
S = [T ]x =  Tz
−Ty Tx
0
con lo que nos queda:
MdT EMi = 0
donde E = RT · S es la matriz esencial. Sabiendo la relación entre entre los puntos y sus proyecciones podemos escribir mTd Emi = 0, que ofrece una expresión cuantitativa de la restricción
epipolar.
La matriz esencial establece por tanto una relación entre la restricción epipolar y los parámetros extrínsecos del sistema estéreo, a través de ella podemos establecer un mapeo entre
los puntos de una imagen y las líneas epipolares de la otra. ld = Emi define la línea epipolar
derecha, lo que resulta en mTd ld = 0, lo que nos demuestra que los puntos equivalentes entre las
imágenes se encuentran en las líneas epipolares. Hay que hacer notar que la matriz esencial nos
da información sobre la geometría epipolar a nivel de coordenadas cámara. Para poder pasar a
14
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
Desarrollo de herramientas de apoyo a la estereovisión
coordenadas pixel necesitamos haber calibrado las cámaras para conocer sus parámetros intrínsecos. En este sentido, la matriz que relaciona las coordenadas de puntos correspondientes de
ambas imágenes, pero a nivel de píxel, se denomina matriz fundamental.
2.7.2.
La matriz fundamental
Tal y como se explicó anteriormente, podemos hacer uso de la matriz de parámetros intrínsecos para poner en relación un punto 3D en coordenadas cámara con su proyección 2D en
coordenadas píxel normalizadas. Haciendo uso de la ecuación 2.6 podemos escribir:
Mi = A−1
i · mni
Md = A−1
d · mnd
−1
−T
−1
T
T
MdT EMi = (A−1
d · mnd ) E(Ai · mni ) = mnd Ad EAi mni = 0
Lo que se puede reducir a:
mTnd · F · mni = 0
−1
es la matriz fundamental.
donde F = A−T
d EAi
Al igual que la matriz esencial, la matriz fundamental nos relaciones puntos de una de las
imagenes con la recta epipolar en la que se encuentra su conjugado de la otra imagen. La
diferencia radica en que la esencial trabaja con coordenadas de la cámara y la fundamental
directamente con coordenadas píxel.
Una consecuencia muy importante de las propiedades anteriores es que si conocemos la caliración de un sistema estereo (parámetros intrínsecos y extrínsecos), tenemos toda la información
necesaria para obtener la geometría epipolar y hallar todas las correspondencias entre puntos y
rectas epipolares de ambas imágenes.
CAPÍTULO 2. REVISIÓN DE CONCEPTOS BÁSICOS
15
3
Disparidad
3.1.
Introducción
La disparidad medida sobre un par estéreo es la distancia en píxeles que hay entre las
proyecciones del mismo punto en ambas imágenes. En el caso particular de un par estéreo, con
los ejes ópticos de las cámaras paralelos, la disparidad se define como:
d = xi − xd
donde xi y xd son las coordenadas horizontales del punto proyectado en la imagen izquierda y derecha respectivamente. La distancia resulta siempre positiva ya que en las condiciones
descritas, un punto cualquiera en el espacio siempre va a cumplir que xi " xd ; es decir, en la
imagen derecha va a estar situado más a la izquierda que en la imagen izquierda.
La razón de utilizar esta medida es que existen varios métodos implementados para hallar la
disparidad en distintas situaciones, y además, una vez hallada la disparidad, hallar la profundidad
del punto en milímetros es un paso sencillo.
La mayoría de los métodos para obtener el mapa de disparidad de una escena requieren
que ambas imágenes estén rectificadas. Que las imágenes de un par estéreo estén rectificadas
significa que se han modificado para que sus planos de imagen sean coplanares y sus líneas
epipolares, horizontales; resultando los puntos correspondientes en ambas imágenes con la misma
coordenadas vertical. El hecho de exigir que las imágenes estén rectificadas se debe a que la
rectificación es un proceso sencillo y de bajo coste computacional que simplifica muchísimo
los algoritmos posteriores de obtención de disparidad al reducir el área de búsqueda de las
correspondencias de dos dimensiones a una.
3.2.
Rectificación
Como se ha explicado anteriormente, la rectificación consiste en la transformación de las
imágenes mediante software, utilizando los parámetros intrínsecos y extrínsecos de las cámaras,
de forma que las líneas epipolares de ambas imágenes queden alineadas horizontalmente: con
17
Desarrollo de herramientas de apoyo a la estereovisión
ello se consigue que la proyección del mismo punto en ambas imágenes tenga la misma posición
en el eje y.
Figura 3.1: Esquema del proceso de rectificado
El rectificado de imágenes aporta una gran ventaja en la búsqueda de puntos correspondientes, no solo exige un cálculo en 1D, sino que además sabemos que el punto correspondiente a uno
dado va a estar en la misma fila que el punto dado. Por contrapartida, al rectificar una imagen,
no todos los puntos de la imagen destino ocupan un punto exacto en la imagen original. Para
subsanar esto hay que recurrir a la interpolación, incurriendo en errores.
Vamos a utilizar para rectificar el método propuesto por Fusiello et al. [1]. En él se fija que
después de la rectificación las cámaras tienen la misma orientación pero distinta posición en el
espacio. Es decir, los centros ópticos se mantienen invariantes tras la rectificación y la orientación
cambia, ya que rotamos las cámaras para conseguir que los planos de imagen sean coplanares y
contengan a la línea base.
De esta forma, vamos a estudiar la rectificación como una proyección sobre los nuevos planos
de imagen y veremos como relacionar esta nueva proyección con la que ya teníamos. Para poder
realizar esta proyección necesitamos una nueva matriz de parámetros intrínsecos y una nueva
matriz de rotación. Como hemos dicho anteriormente, los centros ópticos se mantienen invariantes, por tanto el vector de traslación será el mismo que el original. Una vez construida esta
nueva proyección la relacionaremos con la antigua para obtener una matriz que nos relacione los
píxeles de la imagen original con los de la rectificada.
Matriz de rotación: al fijar que los planos de imagen de nuestras dos cámaras sean coplanares y que sus ejes ópticos sean paralelos, estamos forzando que los sistemas de coordenadas
de ambas cámaras tengan la misma orientación. Como la rotación para ambas cámaras la
vamos a efectuar desde el sistema de referencia del mundo, ambas matrices de rotación
son iguales.
Vamos a definir tres vectores, r1 , r2 y r3 , que nos marcarán las direcciones de los nuevos
ejes x, y, y z, respectivamente, de los nuevos sistemas de coordenadas de las cámaras.


r1T
Rn =  r2T 
r3T
(3.1)
El nuevo eje x deberá ser paralelo a la línea base que une los centros ópticos. Para calcular
dicha dirección realizamos la diferencia entre los centros ópticos expresados en coordenadas
18
CAPÍTULO 3. DISPARIDAD
Desarrollo de herramientas de apoyo a la estereovisión
de un sistema de referencia común. Se ha tomado como tal el sistema de coordenadas del
mundo por sencillez, ya que para ambas cámaras tenemos sus parámetros extrínsecos, que
nos permiten el cambio de coordenadas facilmente. Si hacemos uso de la ecuación 2.3, y
sabiendo que los centros ópticos tienen coordenadas [0, 0, 0] en el sistema de referencia de
su propia cámara, podemos escribir para la cámara izquierda:
Cci = Ri · Cmi + Ti

0
 0  = Ri · Cmi + Ti
0

Cmi = −Ri−1 · Ti
(3.2)
donde Cci y Cmi son el centro óptico de la cámara izquierda expresado en coordenadas de
la cámara y del mundo, respectivamente; y Ri y Ti los parámetros extrínsecos de la cámara
en cuestión. Esta misma ecuación es aplicable a la cámara derecha, con lo que obtenemos
las coordenadas de ambos centros ópticos, y ya tenemos los datos suficientes para calcular
la matriz de rotación.
• El nuevo eje X paralelo a la línea base: r1 =
(Cmi − Cmd )
' Cmi − Cmd '
• El nuevo eje Y ortogonal al nuevo X (obligatorio) y a k: r2 = k × r1 , donde k es
un vector arbitrario que nos fija la posición del nuevo eje Y perpendicular al eje X.
En este caso hemos fijado k en la dirección del eje Z de Ri . De esta forma, la nueva
matriz de rotación será lo suficientemente parecida a las originales como para que, al
aplicar la rectificación, las imágenes resultantes no queden excesivamente deformadas.
• El nuevo eje Z ortogonal a los nuevos X e Y (obligatorio): r3 = r1 × r2
Con la construcción de la matriz de rotación y con el vector de translación de la proyección
original ya tenemos los parámetros extrínsecos de la nueva proyección sobre el plano de
imagen rectificado.
Matriz de parámetros intrínsecos: vamos a ver a continuación que restricciones deben
cumplir las nuevas matrices de parámetros intrínsecos para que la rectificación se realice
correctamente.
Sean Mi y Md las expresiones del mismo punto M en las coordenadas de sus respectivas
cámaras. Como se vió en el capítulo 2, podemos poner en relación ambas expresiones
utilizando los parámetros extrínsecos de las cámaras, de modo que:
Mi = R · Md + T
donde R = Ri · RdT y T = Ti − Ri · RdT Td = Ti − R · Td .
Si aplicamos RiT y posteriormente Rn a ambos lados de la ecuación anterior obtenemos :
Rn RiT Mi = Rn RdT Md + Rn (RiT Ti − RdT Td )
donde Mi! = Rn RiT Mi y Md! = Rn RdT Md son las expresiones del punto M expresadas en las
coordenadas de sus respectivas cámaras rectificadas. Teniendo en cuenta que RiT Ti − RdT Td
es paralelo al eje x de Rn , podemos reescribir la expresión anterior como:


' Cmi − Cmd '

0
Mi! = Md! + 
0
CAPÍTULO 3. DISPARIDAD
(3.3)
19
Desarrollo de herramientas de apoyo a la estereovisión
Se puede ver por la ecuación anterior que, puntos correspondientes, una vez realizada la
rectificación, tienen la misma coordenada y y z.
Vamos a continuación a proyectar los puntos Mi! y Md! sobre sus respectivos planos de
imagen rectificados utilizando unas matrices de parámetros intrínsecos Ani y And .

Ani

dui · f

=
0
0

x!i
Mi! =  yi! 
zi!
0
dvi · f
0

u0i
v0i 
1
Mi! · Ani
Md! · And


x!d
Md! =  yd! 
zd!
And


dud · f

=
0
0
0
dvd · f
0

dui · f · x!i + u0i · zi!
=  dvi · f · yi! + v0i · zi! 
zi!

u0d
v0d 
1


dud · f · x!d + u0d · zd!
=  dvd · f · yd! + v0d · zd! 
zd!
Una vez realizada la rectificación sabemos que las proyecciones de un mismo punto en
ambas imágenes van a tener la misma coordenada en el eje vertical, por tanto:
dvd · f · yd! + v0d · zd!
dvi · f · yi! + v0i · zi!
=
zi!
zd!
Como sabemos de la ecuación 3.3, yi! = yd! y zi! = zd! , con lo que:
dvi · f · yi! + v0i · zi! = dvd · f · yd! + v0d · zd!
(dvi · f − dvd · f )yi! + (v0i − v0d )zi! = 0
Para que lo anterior se cumpla para todo yi! y zi! , sólo nos queda que:
dvi = dvd
v0i = v0d
(3.4)
Cualquier par de matrices de parámetros intrínsecos que cumplan estas condiciones nos
aseguran una rectificación correcta. En este proyecto se ha elegido fijar las dos matrices
de parámetros intrínsecos a la media de las matrices de intrínsecos antiguas; con esto se
cumplen los requisitos necesarios y nos aseguramos que las nuevas proyecciones no sean
excesivamente distintas de las antiguas.
Rectificación: para poder realizar la rectificación vamos a calcular una transformación que
nos mapee puntos de la imagen original a los puntos de la imagen rectificada. Para ello
vamos primeramente a expresar la ecuación de proyección de la ecuación 2.7 en coordenadas
no homogéneas para la imagen original y para la imagen rectificada, de la cámara izquierda:
λi mi = Ai · (Ri · M + Ti )
λn mn = An · (Rn · M + Tn )
Sabemos que en ambas ecuaciones las coordenadas del mundo son iguales; vamos a relacionarlas a través de ellas:
M = −(Ri−1 · Ti ) + λi (Ai · Ri )−1 · mi
20
CAPÍTULO 3. DISPARIDAD
Desarrollo de herramientas de apoyo a la estereovisión
M = −(Rn−1 · Tn ) + λn (An · Rn )−1 · mn
Combinando las dos anteriores obtenemos que:
mn = λ(An · Rn · Ri−1 · A−1
i )mi
(3.5)
Esta es la matriz Ni = An · Rn · Ri−1 · A−1
i , que utilizaremos para realizar la rectificación de
la imagen izquierda, aplicandola sobre cada píxel de la imagen. Podemos seguir los mismos
pasos y obtener un resultado equivalente para la imagen derecha.
Existe un problema añadido al proceso de rectificación: al no saber cuánto va a rotar los
sistemas de las cámaras, cabe la posibilidad de que al realizar la rectificación varios píxeles
ocupen posiciones fuera de los límites de nuestra imagen. Para solucionar esto, variaremos las
coordenadas de los centros ópticos de las matrices de parámetros intrínsecos según lo siguiente.
Una vez construida la matriz de rectificación como se acaba de explicar, se calcula que posición
ocuparía el punto central de la imagen original en la imagen rectificada para las dos cámaras.
La diferencia entre ambas será lo que variarán los centros ópticos de las matrices de parámetros
intrínsecos. Para no afectar al funcionamiento del sistema de rectificación, la matriz izquierda y
la derecha deberán variar igual en las dos coordenadas del centro óptico: en el vertical para que
las proyecciones de un mismo punto sigan estando en la misma fila en ambas imágenes y en el
horizontal para no variar el valor de la disparidad.
Este método centra la imagen rectificada sobre nuestros límites visibles, pero debido a la
transformación sufrida, una pequeña cantidad de píxeles siguen fuera de la imagen. Ampliando
lígeramente el tamaño de la imagen se consigue que todos los píxeles se encuentren dentro de
ella.
3.3.
Métodos de cálculo de la disparidad
Como se ha explicado anteriormente, la disparidad mide la distancia en píxeles entre el mismo
punto de ambas imágenes. El gran reto de los métodos de cálculo de disparidad es precisamente,
dado un píxel en una imagen, hallar el píxel equivalente en la otra. Este es el llamado problema
de la correspondencia estéreo.
Existen una gran cantidad de métodos que resuelven este problema, y se pueden clasificar
en dos grandes grupos:
Métodos globales: aplican restricciones a la búsqueda del píxel correspondiente en toda
la imagen o en toda la línea epipolar. Son menos sensibles a las zonas conflictivas que
los locales, obteniendo en líneas generales mejores resultados. Los más comunes son los
métodos de Programación Dinámica y los de Corte de Grafos. Por contrapartida, son
mucho más costosos computacionalmente.
• Programación Dinámica: estos métodos reducen la complejidad de cálculo en problemas de optimización descomponiendo el problema en subproblemas menores. Para
esto se construye una representación de las posibles correspondencias para cada punto
construyendo una imagen que se denomina imagen del espacio de disparidad (DSI)
donde se busca un camino que recorra este espacio y minimice un cierto costo.
CAPÍTULO 3. DISPARIDAD
21
Desarrollo de herramientas de apoyo a la estereovisión
Figura 3.2: Variantes en la construcción de la imagen del espacio de disparidad
En la figura anterior, Ii y Id representan una línea epipolar izquierda y su correspondiente derecha. La zona blanca representa las correspondencias permitidas por el
algoritmo. Los diferentes algoritmos varían la construcción y asignación de costos para
luego usar la Programación Dinámica para la minimización del costo global. El mayor problema de este tipo de métodos es que utiliza información de líneas epipolares
correspondientes, perdiendo la información de las líneas adyacentes.
• Corte de Grafos: El corte de grafos se basa en armar un grafo a partir de los datos
de las imágenes y buscar un corte mínimo. Dependiendo como se arma el grafo, el
resultado obtenido es la minimización de una cierta expresión de energía. Este procedimiento se puede considerar análogo al de hallar el mejor camino en una imagen
bidimensional, con Programación Dinámica, pero extendido a un entorno tridimensional.
Figura 3.3: Representación del problema de cálculo de disparidad mediante corte de grafos
En la figura anterior se puede apreciar la forma en la que se arma el grafo, asignando
un nodo por cada disparidad posible de cada píxel. De esta forma, cada nodo está
unido a cuatro nodos de disparidad d, dos en vertical y dos en horizontal, y a dos nodos
de disparidad d-1 y d+1. La supeficie representa el corte del grafo que minimiza alguna
expresión de energía. La diferencia entre los distintos algoritmos y las aplicaciones se
da en la forma en que se asignan los pesos a los arcos del grafo y la expresión de la
energía a minimizar.
Métodos locales: utilizan restricciones en una zona alrededor del punto que se desea evaluar.
Estos métodos presentan mayor velocidad que los anteriores, pero también mayor tasa de
error, sobre todos en las oclusiones (puntos que aparecen en una imagen pero no en otra),
en las zonas fronterizas y en las zonas de baja textura (baja variabilidad en la intensidad
de grises). Pese a estos problemas estos métodos son los más utilizados gracias a sus
22
CAPÍTULO 3. DISPARIDAD
Desarrollo de herramientas de apoyo a la estereovisión
resultados y a la facilidad de implementación. Así mismo estos métodos pueden dividerse
en dos categorías:
• Basados en características: en estos métodos, las imágenes se procesan con un operador que extrae las características deseadas. Después se aplica el proceso de correspondencia a los atributos asociados a las características detectadas. Los bordes y
esquinas presentan buenos resultados, pero el resto de características necesitan un
alto coste computacional en la búsqueda de correspondencias. El gran inconveniente
de este tipo de métodos es que no generan un mapa de disparidad denso, sino aislado
en las zonas de las que ha extraido características.
• Basados en zonas: aquí se utiliza un criterio de semejanza como medida para evaluar
la similitud entre los puntos de ambas imágenes. Dado un píxel de la imagen izquierda
y una ventana alrededor suyo, se busca encontrar una ventana sobre la imagen derecha
que sea la más parecida a la primera, según un criterio de similitud dado. Al encontrar
la ventana de mayor similitud se dice que el píxel central derecho se corresponde con
el píxel central de la ventana izquierda. La disparidad del punto será la diferencia
entre las coordenadas x de ambos puntos.
En este proyecto se han estudiado dos métodos para el cálculo de la disparidad, uno local
basado en zonas y otro basado en Programación Dinámica, el método de Birchfield-Tomasi [2].
El primero fué elegido por ser el más sencillo y, según el criterio de similitud utilizado, de los mas
rápidos. El método de Birchfield-Tomasi se eligió por ser un representante de los métodos globales
con unos resultados bastante buenos y del que existe una implementación de alta eficiencia en
la librería de procesamiento de imagen OpenCV.
3.3.1.
Búsqueda por zonas
En este tipo de métodos es necesario definir tres parámetros:
Región de búsqueda: por geometría epipolar sabemos que la región de búsqueda va a ser
la línea epipolar del punto, pero además, gracias a que las imágenes sobre las que vamos a
calcular la disparidad han sido previamente rectificadas, sabemos que debemos buscar en
los puntos con la misma coordenada y que el original. Ya que el objetivo es desarrollar un
sistema en tiempo real, limitaremos la región a un valor máximo de disparidad centrado
en las mismas coordenadas que el punto original.
Ventanas de cálculo: se han realizado pruebas con ventanas cuadradas centradas en el
píxel que se está evaluando, de tamaños 3x3, 5x5 y 7x7. Éste último fué rechazado tras la
primera prueba debido a un tiempo de cálculo excesivo. Se escogió que fuesen cuadradas
frente a ventanas rectangulares ya que, aunque el píxel correspondiente que buscamos
tiene la misma coordenadas vertical, no por ello los píxeles la misma fila nos aportan más
información de similitud que los de las columnas.
CAPÍTULO 3. DISPARIDAD
23
Desarrollo de herramientas de apoyo a la estereovisión
Figura 3.4: Definición de la región de búsqueda y de las ventanas
Criterio de semejanza: se han escogido las siguientes medidas de similitud por ser las de
mayor simplicidad, y por ello mayor velocidad de procesado: suma de diferencias absolutas
(SAD), suma de diferencias cuadráticas (SSD) y correlación cruzada normalizada (NCC).
SAD =
n
n
)
)
i=−n j=−n
SSD =
n
n
)
)
' Ii (x + i, y + j) − Id (x + i, y + j) '
(Ii (x + i, y + j) − Id (x + i, y + j))2
i=−n j=−n
N CC =
*n
i=−n
*n
j=−n (Ii (x
+ i, y + j) − Ii )(Id (x + i, y + j) − Id )
σI i σI d
donde Ii y σIi se refieren al valor medio y a la desviación estándar de las véntanas de
cálculo.
3.3.2.
Birchfield-Tomasi
El método de Birchfield-Tomasi se basa en la búsqueda de correspondencias y oclusiones
entre líneas epipolares enteras. Para ello busca los emparejamientos por programación dinámica
que minimizan la siguiente función de coste:
γ(M ) = Nocc kocc − Nm kr +
Nm
)
d(xii , xdi )
(3.6)
i=1
donde M es la secuencia a evaluar, kocc la constante de penalización por oclusión, kr la
constante de recompensa por emparejamiento, d(xii , xdi ) la diferencia de intensidad entre píxeles
correspondientes, y Nocc y Nm el número de oclusiones (no de píxeles ocluidos) y el número de
emparejamientos, respectivamente, en M .
24
CAPÍTULO 3. DISPARIDAD
Desarrollo de herramientas de apoyo a la estereovisión
Figura 3.5: Ejemplo de una secuencia de correspondencias
En la imagen, I y D definen líneas epipolares de la imagen izquierda y derecha respectivamente. Las líneas entre ellas marcan la correspondencia entre sus píxeles. En la secuencia de
correspondencias de ejemplo descrita en la imagen anterior
M = ((1, 0), (2, 1), (6, 2), (7, 3), (8, 4), (9, 5), (10, 6), (11, 9), (12, 10)) se pueden observar, de izquierda a derecha, varios elementos utilizados en la función de coste descrita anteriormente:
un píxel ocluido en la línea epipolar izquierda (ya que no tiene correspondiente en la derecha),
dos píxeles correspondientes con un nivel de disparidad de uno, tres píxeles ocluidos en la línea
izquierda, cinco pixeles con sus correspondientes a un nivel de disparidad de cuatro, dos píxeles
ocluidos en la línea derecha, dos píxeles con correspondencia y un nivel de disparidad de dos y
por último dos píxeles ocluidos en la línea derecha.
En la práctica, kocc puede interpretarse como la cantidad de evidencia, expresada en términos
de intensidad de píxel, necesaria para declarar un cambio de disparidad; mientras que kr puede
verse como la máxima diferencia de intensidad de píxel esperada entre correspondencias.
Figura 3.6: Imagen del espacio de disparidad y posiciones permitidas tras una correspondencia
dada
La figura 4.6 a muestra una posible imagen del espacio de disparidad para líneas epipolares
de diez píxeles y una disparidad máxima de 3. En el eje de ordenadas se representa la línea
epipolar de la imagen izquierda y en el de abcisas la derecha. Las posiciones en negro son las
no permitidas, las blancas las permitidas y las marcadas representan una secuencia de emparejamientos. Las figuras 4.6 b y 4.6 c indican las posiciones de correspondencias posibles antes o
después, respectivamente, de una correspondencia conocida (cuadrado rayado).
Una vez procesadas todas las líneas epipolares se realiza un postprocesado para aprovechar
la informacion de dependencia entre una línea epipolar y sus contiguas. Para ello se clasifican los
píxeles en tres categorias no disjuntas (cada una de ellas contiene la anterior) basadas en su nivel
de fiabilidad : escasamente fiable, moderadamente fiable y altamente fiable. Esta categorización
CAPÍTULO 3. DISPARIDAD
25
Desarrollo de herramientas de apoyo a la estereovisión
de fiabilidad se hace en función del número de píxeles contíguos en la misma columna con el
mismo nivel de disparidad. La idea se basa en que si las filas se computan independientemente
y obtenemos valores iguales de disparidad en las columnas, es más probable que el valor sea
correcto.
Un píxel de fiabilidad moderada se propaga por su columna cambiando a su valor de disparidad hasta que se encuentra con un cambio de intensidad o con una región escasamente fiable con
un valor de disparidad menor. La única diferencia entre regiones moderada y altamente fiables
es que las primeras no pueden propagarse si el cambio de disparidad es de un único nivel de
intensidad.
Posteriormente se realiza el mismo procesado en sentido horizontal, y por último se eliminan
las disparidades aisladas y rodeadas por un mismo valor.
3.4.
Relación entre disparidad y profundidad
Como se explicó anteriormente, una de las razones de calcular el mapa de disparidad es que,
una vez conocida la disparidad de un pixel, es inmediato obtener la profundidad del punto que
representa. Hay que hacer notar que la demostración siguiente es válida únicamente si los ejes
ópticos son paralelos y los planos de imagen son coplanares, como se muestra en la figura. En
nuestro caso hemos conseguido esta restricción mediante la rectificación de las imágenes.
Figura 3.7: Vista superior del sistema estéreo
En la figura anterior, Ci y Cd representan los centros ópticos de la cámara izquierda y
derecha, respectivamente, T es la distancia en milímetros que separa ambos centros, f es la
distancia focal, pi y pd las proyecciones del punto P y Z la profundidad del mismo. c0 indica la
coordenada x del punto principal de la imagen.
26
CAPÍTULO 3. DISPARIDAD
Desarrollo de herramientas de apoyo a la estereovisión
Sean xi y xd las coordenadas x de los puntos pi y pd respectivamente. Así, definimos la
disparidad de estos puntos como d = xi − xd . Por semejanza de los triángulos (P, pi , pd ) y
(P, Ci , Cd ) podemos escribir:
T
c0 + T − xi − c0 + xd
=
Z
Z −f
T −d
T
=
Z
Z −f
T
d
En la ecuación anterior, el valor de la disparidad se encuentra expresado en píxeles; para que
tenga sentido, ésta debe convertirse a milímetros utilizando los factores de conversión de la
matriz de parámetros intrínsecos.
Z=f
Z=f
T · du
d
(3.7)
Se puede ver por la ecuación anterior que la disparidad y la profundidad siguen una relación
inversa, y que su relación depende de parámetros obtenidos en el proceso de calibración de las
cámaras.
CAPÍTULO 3. DISPARIDAD
27
4
Sistema, diseño y desarrollo
En este capítulo se va a explicar el desarrollo del objetivo final del proyecto, la obtención de
la profundidad de los objetos de una escena a partir de las imágenes capturadas por un par de
cámaras.
Aunque en un principio el objetivo era desarrollar un sistema válido para los dos tipos de
cámaras citados en capítulos anteriores, en esta tema se explicarán las limitaciones que nos
llevaron a descartar el uso de las cámaras Firewire.
Todo el sistema desarrollado, a excepción de la calibración de las cámaras y la obtención
de las matrices de rectificación, se ha realizado en código C++, haciendo uso de la librería
de procesamiento de imagen OpenCV y de las herramientas integradas en la librería DiVA
desarrollada en el laboratorio VPU.
4.1.
Sistema físico
Como se comentó anteriormente el sistema se va a desarrollar sobre dos soportes distintos,
un par de cámaras Firewire y otras dos cámaras IP. A continuación se va explicar en detalle las
características físicas y ópticas de ambos tipos de cámaras.
4.1.1.
Cámaras Firewire
Las cámaras sobre las que se va a construir este sistema son cámaras fijas que se encuentran
situadas en la pasarela de la tercera planta entre los edificios A y B de la Escuela Politécnica
Superior (EPS). El modelo de las cámaras Firewire es DFW-X710 de SONY y están conectadas
a una red IP del laboratorio VPU.
29
Desarrollo de herramientas de apoyo a la estereovisión
Figura 4.1: Sistema de cámaras Firewire
Especificaciones de las cámaras
Estas cámaras son digitales y soportan hasta 15 imágenes por segundo a una resolución
máxima de 1024x768 píxeles y una profundidad de píxel de 24 bits. La lente montada es el
modelo C815B de COSMICAR, con una montura tipo C y una distancia focal de 8, 5 mm. El
dispositivo CCD que incorporan es de color y de tipo 1/3", con un tamaño de píxel de 4,65x4,65
µm, con lo que los factores de conversión quedan como:
du = dv =
4.1.2.
1
pixeles
= 215,53763
0,00465
mm
Cámaras IP
Este otro tipo de cámaras son móviles y utilizan para su conexión una interfaz GigE. El
modelo es piA1900-32gc de Basler. Se decidió montar dos de estas cámaras sobre un soporte
transversal móvil y de altura e inclinación regulable, de manera que podamos utilizar el par
estéreo fijo enfocando a distintas escenas.
Figura 4.2: Sistema de cámaras IP
30
CAPÍTULO 4. SISTEMA, DISEÑO Y DESARROLLO
Desarrollo de herramientas de apoyo a la estereovisión
Especificaciones de las cámaras
Estas cámaras son digitales y soportan hasta 32 imágenes por segundo a una resolución
máxima de 1900x1200 píxeles y una profundidad de píxel de 24 bits. El CCD utilizado en estas
cámaras es de escaneo progresivo, con un tamaño de píxel de 7,4x7,4 µm, y unos factores de
pixeles
1
= 135,135135
. A estas cámaras se les ha acoplado una
conversión de du = dv =
0,0074
mm
lente Pentax TV con una montura tipo C y una distancia focal de 8, 5 mm.
4.2.
Captura y sincronización
El sistema de captura para ambos tipos de cámara es una modificación de los ya existentes
en el grupo de trabajo integrados dentro de la plataforma DiVA para el control de una única
cámara. El primer paso para el control del par estéreo consiste en la duplicación de los elementos
existentes en los sistemas de cáptura básicos. Dentro de las herramientas proporcionadas por
Matrox se encuentra otra forma de iniciar el proceso de captura distinta a la utilizada en el
sistema de captura básico. Se eligió probar este método ya que envolvía un menor número de
operaciones, lo que favorecería a una primera aproximación a la sincronización de los tiempos
de captura y a un sistema en tiempo real. También fueron necesarias otras modificaciones sobre
el sistema de captura inicial debido a problemas que se encontraron en el manejo interno de las
imágenes.
Esta modificación de las capturadoras nos permite obtener imágenes de ambas cámaras simultáneamente, pero sin información sobre la diferencia de tiempo entre los instantes de captura.
Para obtener información de la sincronización inicial de las cámaras capturamos con ambas
cámaras un elemento que nos permita fijar un instante temporal. Para ello se ha utilizado el
flash de una cámara de fotos, con una duración de destello de 1 ms, y una secuencia de tres
destellos consecutivos, que nos permita hacernos una idea de los momentos de captura.
Figura 4.3: Estado inicial de la sincronización
Como se ve en las imágenes, los tiempos de captura se diferencian dentro de la franja de
exposición del flash, los tiempos de captura se diferencian en más de 1 ms. Esto nos obliga
a buscar un método para forzar la captura en el mismo instante, ya que la precisión en los
tiempos de captura será especialmente importante durante la calibración, como se explicará en
el apartado 4.4.
Los métodos disponibles para la sincronización del tiempo de captura son la instalación de
un sistema de disparo por hardware, la utilización de un disparador software o la adecuación de
los sistemas de captura. La opción de disparo software se descartó ya que la tarjeta capturadora
CAPÍTULO 4. SISTEMA, DISEÑO Y DESARROLLO
31
Desarrollo de herramientas de apoyo a la estereovisión
de la que se disponía durante la elaboración de este proyecto no soportaba esta posibilidad para
ninguno de los dos tipos de cámaras.
Se decidió, antes de añadir al sistema un método hardware de disparo sincronizado para
ambas cámaras, probar las herramientas software que nos proporciona la librería Matrox. Se
decidió cambiar la forma en que se inciaba la captura de los digitalizadores de las cámaras y
utilizar el mismo método de inicio de la capturadora que en el sistema de captura básico. En este
método, se crean de forma manual todos los elementos internos necesarios para el funcionamiento
de las capturadoras y posteriormente se inician ambos sistemas en instrucciones consecutivas.
Este método no nos garantiza a priori ningún nivel de sincronización, por lo que se realizó de
nuevo una medida de la sincronización obtenida. Tras este cambio de obtienen los siguientes
pares de imágenes.
Figura 4.4: Estado final de la sincronización
Así, conseguimos que ambas cámaras capturen con una diferencia temporal inferior a 1 ms,
lo cual es un nivel de sincronización suficiente para nuestro proyecto, ya que no vamos a evaluar
escenarios con velocidades excesivamente elevadas. En caso de ser este punto importante para
estudios posteriores, se deberá inicialmente realizar un estudio exhaustivo de sincronización a
altas velocidades.
4.3.
Límites
Como se vió en el capítulo anterior, la relación entre la disparidad y la profundidad en las
u
condiciones en las que nos encontramos viene dada por: Z = f T ·d
d . La profundidad así calculada
presenta límites máximos y mínimos que es capaz de expresar. Si manejamos disparidades comprendidas entre 0 y dmax , obtenemos estas profundidas máximas y mínimas para cada sistema
de cámaras. El valor máximo que puede tomar dmax es de 255, ya que es el valor máximo que
se puede expresar en imágenes en escala de grises de ocho bits de profundidad. En caso de no
necesitar representación de la disparidad, o de que sea más importante el poder obtener valores
altos de disparidad, es posible el utilizar un tipo de datos distinto que lo soporte.
Cámaras Firewire: Utilizando la ecuación anterior, y tomando como dato que estas cámaras
tienen una separación T = 3, 88 m, obtenemos que:
Zmin =
(1832, 06986 · T )
mm
dmax
Zmin = 27, 87619m
32
Zmax = 1832, 06986 · T mm
Zmax = 7108, 43082m
CAPÍTULO 4. SISTEMA, DISEÑO Y DESARROLLO
Desarrollo de herramientas de apoyo a la estereovisión
Teniendo en cuenta que la escena a la que enfocan las cámaras se encuentra a una distancia
máxima de entre 12 y 14 metros, vemos que nos encontramos fuera del rango de funcionamiento del sistema estereo. Cualquier cálculo de disparidad que intentaramos efectuar
en estas condiciones nos daría como resultado una imagen en la que el sistema de cálculo
redondearía todos los píxeles al máximo valor permitido, 255. Se pensó en la utilización
de un tipo de datos distinto, para aumentar el valor máximo permitido; pero en las circunstancias anteriormente descritas, los puntos correspondientes en ambas imágenes de
la escena tendrían, una vez rectificados, una separación o disparidad entre 500 y 600, es
decir, en la mayor parte de la imagen no se podría calcular la disparidad. Se pensó también
en la inclusión de un desfase de disparidad en una de las imágenes, para que al menos la
mayor parte de las imágenes pudiese ser computada, añadiendo al resultado de disparidad
el desfase añadido inicialmente. Pero este proceso ralentizaría el sistema en exceso, y ya
que nuestro objetivo es obtener un sistema lo más cercano posible al tiempo real. Por ello,
se descartó el uso de las cámaras Firewire y el resto del desarrollo se efectuará únicamente
sobre el par de cámaras IP.
Cámaras IP: La separación de estas cámaras es de T = 156, 33 mm. Este valor ha sido calculado una vez calibrado el par estéreo, con los parámetros extrínsecos de ambas
cámaras.
Zmin =
(1013, 51348 · T )
mm
dmax
Zmax = 1013, 51348 · T mm
Zmin = 621, 343mm
Zmax = 158, 442m
En ambos casos se ha tomado una disparidad máxima teórica de 255. En la práctica, utilizar este
valor ralentiza en gran medida el sistema, por ello es recomensable fijar una disparidad máxima
que se ajuste a la menor distancia entre la escena y las cámaras.
4.3.1.
Precisión
El hecho de no disponer de un sistema contínuo para el cálculo de la profundidad hace
que únicamente tengamos un número finito de profundidas posibles, tantas como la disparidad
máxima. Ello hace que se produzcan errores al asignar a una profundidad de las posibles una
profundidad real. El error cometido máximo se puede expresar como el punto medio entre dos
valores de profundidad permitidos. Vamos a evaluar este error en los valores máximos y mínimos
de disparidad, ya que la diferencia entre dos valores de disparidad consecutivos varía dependiendo
de si son valores altos o bajos de disparidad. Si hacemos uso de la ecuación 3.7 que nos relaciona
disparidad y profundidad podemos ver que el error cometido es:
errormax =
errormin =
Z1 − Z2
1 (d2 − d1 ) · f · T · du
f · T · du
= ·
=
= 44, 892m
2
2
d1 · d2
4
Zdmax −1 − Zdmax
1 (dmax − dmax−1 ) · f · T · du
f · T · du
= ·
=
2
2
dmax · dmax−1
2 · dmax · dmax−1 = 1, 386mm
Así podemos ver que el error será tanto mayor cuanto menor sea el valor de la disparidad,
es decir, cuanto más alejado esté el punto que estemos evaluando, mayor será el error cometido.
De forma teórica, con dmax =255, tendríamos errormin = 1, 386 mm.
CAPÍTULO 4. SISTEMA, DISEÑO Y DESARROLLO
33
Desarrollo de herramientas de apoyo a la estereovisión
4.4.
Calibración y cálculo de matrices de rectificado
Como se vió en el capítulo 2, la importancia de la calibración radica en la necesidad de
expresar en términos de pixel los objetos de una escena. La calibración del sistema estéreo sólo
será necesario realizarla una vez para el par de cámaras Firewire; el par de cámaras IP habrá
que calibrarlo cada vez que las cámaras cambien de posición relativa una respecto de la otra, ya
que sus parámetros extrínsecos habrán cambiado.
Para realizar el sistema de calibración haremos uso de una implementación del método de
Zhang realizada por Javier García Ocón para el VPU de la Universidad Autónoma de Madrid[3].
Hemos resuelto primero el problema de la sincronización ya que en este método de calibración es
especialmente importante. En él se fija el sistema de coodenadas del mundo en una plantilla de
calibración; si las imágenes de la plantilla no están tomadas en el mismo instante, o la plantilla
no se encuentra completamente inmóvil, el sistema de referencia puede estar desplazado en la
calibración de una cámara respecto al de la otra, con lo que los parámetros extrínsecos obtenidos
no podrían ponerse en relación por estar referenciados a distintos sistemas de coordenadas.
Todo el método de calibración utilizado, así como el cálculo de las matrices de rectificación
está desarrollado en código Matlab.
Para la realización de la calibración se necesitan por lo menos tres imágenes de la plantilla
de calibración en distintas posiciones. Esta plantilla debe ocupar la mayor parte del centro de
la imagen, sin acercarse demasiado a los bordes, para evitar efectos de distorsión de las lentes.
Figura 4.5: Ejemplo de imagen usada en la calibración de las cámaras IP
En la implementación que realiza Javier García Ocón son necesarias más de tres imágenes
por cada cámara que se quiera calibrar y la marcación manual de entre 4 y 81 puntos sobre la
plantilla de calibración de cada imagen. Siguiendo los datos obtenidos en su estudio, nos hemos
decantado por la utilización de cinco imágenes por cada cámara y el marcado de nueve puntos
en cada imagen: la utilización de más imágenes o más puntos no mejora el resultado obtenido.
Las salidas de este método para cada cámara son, la matriz de parámetros intrínsecos de la
cámaras y dos matrices de parámetros extrínsecos por cada imagen utilizada. Esto es así ya que,
como se dijo anteriormente, el sistema de referencia del mundo se fija en el centro del tablero
de calibración, por tanto tenemos cinco transformaciones en el espacio distintas. Para nuestros
objetivos nos es válido cualquiera de los cinco, ya que necesitamos conocer la posición de las
cámaras respecto del sistema de coordenadas del mundo, pero nos da igual donde esté situado
y como esté orientado.
Para la calibración de cada par de cámaras se ha realizado un mínimo de tres ejecuciones
sobre los mismos conjuntos de imágenes y se han comparado que los resultados obtenidos sean
suficientemente similares. Se ha hecho esta comprobación para evitar que un marcado erróneo
34
CAPÍTULO 4. SISTEMA, DISEÑO Y DESARROLLO
Desarrollo de herramientas de apoyo a la estereovisión
pudiera producir resultados demasiado alejados del valor real.
Una vez obtenidos los parámetros intrínsecos y extrínsecos de cada cámara, se procede a
aplicar la ecuación 4, 5 para obtener las matrices de rectificado.
4.5.
Rectificado
Como se vió en el capítulo anterior, la rectificación se puede ver como una transformación de
los píxeles de una imagen dada por una matriz de rectificación. Para aplicar esto haremos uso de
la librería OpenCV, y de la función cvWarpPerspective que nos permite aplicar transformaciones
a imágenes. Se ha decidido utilizar este método porque se ha comparado con la aplicación directa
de la fórmula de rectificado y ha resultado ser más rápido y se obtienen los mismos resultados
Tras esto se procederá a la variación de los centros ópticos de las matrices de parámetros
intrínsecos tal y como se explicó en el apartado 3.2.
Figura 4.6: Ejemplo de imágenes rectificadas con y sin desplazamiento
En la figura anterior se puede ver un ejemplo de imagen rectificada con desplazamiento óptico
a la izquierda y sin desplazamiento del centro óptico a la derecha.
Figura 4.7: Verificación de la rectificación
Tras rectificar las imágenes de ambas cámaras vemos como las proyecciones correspondientes
de un mismo punto 3D poseen la misma coordenada y.
CAPÍTULO 4. SISTEMA, DISEÑO Y DESARROLLO
35
Desarrollo de herramientas de apoyo a la estereovisión
4.6.
4.6.1.
Disparidad
Birchfield-Tomasi
Cómo se explicó en el capítulo anterior, para el cálculo de la disparidad según el método de
Birchfield-Tomasi se hará uso de la implementación existente en la librería de procesamiento de
imágenes de OpenCV. La función que realiza esta implementación tiene la siguiente definición:
cvFindStereoCorrespondence(
const CvArr* leftImage, const CvArr* rightImage,
int mode, CvArr* depthImage,
int maxDisparity,
double param1, double param2,
double param3, double param4, double param5);
donde leftImage y rightImage son las imágenes izquierda y derecha respectivamente, rectificadas y en escala de grises con una profundidad de ocho píxeles; mode es el algoritmo de cálculo
de la disparidad, en nuestro caso su valor es CV_DISPARITY_BIRCHFIELD; depthImage es la
disparidad resultante, igualmente en escala de grises de ocho píxeles; maxDisparity es la disparidad máxima que se le permite declarar al algoritmo; param1 define la penalización por oclusión
vista en la ecuación 3, 6; param2 expresa la recompensa por emparejamiento y param3, param4
y param 5 definen las regiones de fiabilidad alta, moderada y escasa, respectivamente. Estos
parámetros de fiabilidad definen que un píxel va a pertenecer a un nivel dado si su fiabilidad es
por lo menos el valor indicado en el parámetro correspondiente. Los valores por defecto son los
indicados en [2]: param1 = 25, param2 = 5, param3 = 12, param4 = 15 y param5 = 25.
4.6.2.
Búsqueda por bloques
La búsqueda por bloques se ha implementado de manera que tanto la disparidad máxima, como el tamaño de la ventana de cálculo y el criterio de semejanza se introduzcan como parámetros
del sistema.
4.7.
Profundidad
Como se vió en el capítulo anterior, la relación entre la disparidad y la profundidad en las
u
condiciones en las que nos encontramos viene dada por: Z = f T ·d
d . Se decidió implementar el
cálculo de la profundidad para puntos aislados marcados manualmente por el usuario sobre el
mapa de disparidad. Tras elegir el punto el sistema devuelve por consola las coordenadas píxel
marcadas y la profundidad del punto 3D al que corresponde.
Figura 4.8: Ejemplo de funcionamiento del sistema de profundidad
36
CAPÍTULO 4. SISTEMA, DISEÑO Y DESARROLLO
Desarrollo de herramientas de apoyo a la estereovisión
4.8.
Funcionamiento
Las capturadoras se encuentran en los archivos GTICapture1394stereo.cpp y GTICaptureGIGE.cpp y deben estar incluidos en la librería libgtibasic.lib, Ésta librería debe estar a su vez
añadida al proyecto que se quiera ejecutar.
Los programas se han separado según se quiera calcular la disparidad mediante el método
de Birchfield o de búsqueda por bloques. Esto se ha hecho así ya que la condensación de ambos
métodos en un único programa resultaría en un sistema demasiado pesado.
Ambos sistemas deben incluir como primer parámetro la ruta del fichero de configuración de
las cámaras.
La ejecución del programa basado en Birchfield requiere la inclusión por parámetros de los
valores de disparidad máxima y los cinco parámetros necesarios para el algoritmo.
Ejemplo: Birchfield D:\u\agl\800x600.dcf 100 25 5 12 15 25
El método basado en bloques requiere el paso por parámetros de la disparidad máxima, el
tamaño de la ventana de cálculo y el criterio de semejanza a utilizar. Éste último se introducirá
como un número, correspondiendo el 1 a Suma de Diferencias Absolutas, el 2 a Suma de Diferencias Cuadráticas y el 3 a Correlación Cruzada Normalizada.
Ejemplo: Bloques D:\u\agl\800x600.dcf 100 3 1
CAPÍTULO 4. SISTEMA, DISEÑO Y DESARROLLO
37
5
Experimentos Realizados y Resultados
Dado que el objetivo final del proyecto es el desarrollo de un sistema de cálculo de profundidad
en tiempo real, los resultados del mismo se evaluarán en función de la precisión del cálculo y del
número de imagenes por segundo obtenidas.
Para la medida de la velocidad se tomará el funcionamiento del sistema completo, sin atenernos a restricciones de la escena, ya que ésta no influye en la medida de la velocidad. Para
estimar la precisión del sistema se ha realizado una modificación en el sistema final para que
tome imágenes desde archivo en vez de desde las cámaras. Las imágenes a utilizar se han obtenido de http://vision.middlebury.edu/stereo/. En esta página se encuentran varios pares de
imágenes con su correspondiente disparidad real, con lo cual se puede evaluar de forma precisa
el error cometido.
5.1.
5.1.1.
Análisis de la velocidad
Pruebas con el método de búsqueda por zonas
Las pruebas se han realizado sobre pares de imágenes de tamaño 640x480 y 320x240 píxeles
para todos los métodos de cálculo. En el caso de Suma de Diferencias Absolutas se ha añadido
un tamaño de imagen de 800x600. Este tamaño no se ha incluído en los otros métodos ya que
daba como resultado velocidades demasiado bajas. Para cada tamaño de imagen se ha probado
con dos tamaños de ventana de cálculo, 3x3 y 5x5 píxeles; y por cada uno de estos tamaños de
ventana se han efectuado cinco pruebas, variando el valor de la disparidad máxima entre 50 y
255. El resultado se ha expresado en las tablas en "frames"por segundo.
La escena evaluada durante las pruebas con el método de búsqueda por bloques es similar a
la presentada a continuación, mientras que para el método de Birchfield se utilizó esta misma
escena como fondo con una figura personal en primer plano.
39
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.1: Ejemplo de escena evaluada
Suma de Diferencias Absolutas
!!!
!!!!
máxima
!!!Disparidad
!!!
!!!!
Tamaño ventana
!!!
3x3
5x5
50
100
150
200
255
1,22
0,21
0,59
0,12
0,5
0,08
0,41
0,07
0,36
0,06
Cuadro 5.1: SAD 800x600
!!!!
!!!
máxima
!!!Disparidad
!!!
!!!!
Tamaño ventana
!!!
3x3
5x5
50
100
150
200
255
2,15
0,37
1,24
0,21
0,92
0,15
0,77
0,13
0,7
0,1
Cuadro 5.2: SAD 640x480
!!!
!!!!
!!!Disparidad máxima
!!!!
!!!!
Tamaño ventana
!!
3x3
5x5
50
100
150
200
255
8,98
1,68
8,36
1,37
6,15
1,04
5,77
0,97
5,37
0,8
Cuadro 5.3: SAD 320x240
40
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
Desarrollo de herramientas de apoyo a la estereovisión
Los resultados obtenidos con los dos tamaños de ventana de cálculo son los siguientes:
Figura 5.2: SAD con ventana de 3x3
Figura 5.3: SAD con ventana de 5x5
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
41
Desarrollo de herramientas de apoyo a la estereovisión
Suma de Diferencias Cuadráticas
!!!!
!!!
máxima
!!!Disparidad
!!!
!!!!
Tamaño ventana
!!!
3x3
5x5
50
100
150
200
255
0,48
<0,01
0,31
<0,01
0,2
<0,01
0,18
<0,01
0,17
<0,01
Cuadro 5.4: SSD 640x480
!!!
!!!!
!!!Disparidad máxima
!!!!
!!!!
Tamaño ventana
!!
3x3
5x5
50
100
150
200
255
2,43
0,31
2,14
0,26
1,56
0,19
1,43
0,18
1,35
0,16
Cuadro 5.5: SSD 320x240
Los resultados obtenidos para la misma escena que en el caso anterior con los dos tamaños
de ventana de cálculo son los siguientes:
Figura 5.4: SSD con ventana de 3x3
42
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.5: SSD con ventana de 5x5
Correlación Cruzada Normalizada
!!!
!!!!
máxima
!!!Disparidad
!!!
!!!!
Tamaño ventana
!!!
3x3
5x5
50
100
150
200
255
<0,01
<0,01
<0,01
<0,01
<0,01
<0,01
<0,01
<0,01
<0,01
<0,01
Cuadro 5.6: NCC 640x480
!!!!
!!!
máxima
!!!Disparidad
!!!
!!!!
Tamaño ventana
!!!
3x3
5x5
50
100
150
200
255
1,32
0,36
1,03
0,25
0,86
0,14
0,68
0,07
0,47
<0,01
Cuadro 5.7: NCC 320x240
Los resultados obtenidos con los dos tamaños de ventana de cálculo son los siguientes:
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
43
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.6: NCC con ventana de 3x3
Figura 5.7: NCC con ventana de 5x5
5.1.2.
Pruebas con el método de Birchfield-Tomasi
Las pruebas realizadas con el método de Birchfield se han efectuado utilizando los tres
tamaños de imagen usados en el método de búsqueda por bloques y con los mismos valores de
disparidad. Así mismo se ha procedido a variar los parámetros utilizados en el cálculo, pero estas
variaciones produjeron unas diferencias en el resultados final menores a 0,02 fps. Es por ello que
no se han inluido estas variaciones en los resultados listados a continuación, correspondiendose
éstos a los parámetros especificados por defecto.
44
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
Desarrollo de herramientas de apoyo a la estereovisión
!!!
!!!!
Disparidad máxima
!!!
!!!
!!!!
Tamaño imagen
!!
!
800x600
640x480
320x240
50
100
150
200
255
2,41
3,7
17,44
1,4
2,31
10,42
0,97
1,72
7,55
0,79
1,36
6,54
0,58
1,08
5,7
Cuadro 5.8: Resultados del método de Birchfield
5.2.
Analisis de la precisión
Como se ha comentado anteriormente, para valorar la precisión de los distintos algoritmos de cálculo de la disparidad se van ha utilizar dos pares de imágenes provenientes de
http://vision.middlebury.edu/stereo/ de las que se dispone del valor real de la disparidad. En
las imágenes de disparidad que nos proporcionan, la disparidad está codificada entre los 0.25 y
los 63.75 píxeles; para poder comparar nuestros resultados con los disponibles, ésta disparidad
se recodificará entre 1 y 255 píxeles. Los conjuntos de imágenes utilizados son Cones y Teddy,
de un tamaño de 450x375 pixeles.
Se utilizarán dos medidas de error para evaluar la precisión de los resultados obtenidos: el
porcentaje de píxeles erróneos y el error medio de cada pixel.
Figura 5.8: Imágenes izquierda y derecha del conjunto Cones
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
45
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.9: Imágenes izquierda y derecha del conjunto Teddy
En las siguientes imágenes se aprecia la imagen de disparidad original a la izquierda y la
recodificada a la derecha.
Figura 5.10: Disparidad real de Cones
46
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.11: Disparidad real de Teddy
A continuación se van a mostrar los resultados obtenidos con cada uno de los algoritmos
utilizados de forma gráfica, comparados con la disparidad real utilizada, y de forma analítica
con tablas con los errores obtenidos.
5.2.1.
Pruebas con el método de búsqueda por zonas
Suma de Diferencias Absolutas
Figura 5.12: Resultados con SAD para un tamaño de 3x3, conjunto Cones
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
47
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.13: Resultados con SAD para un tamaño 5x5, conjunto Cones
Figura 5.14: Resultados con SAD para un tamaño de 3x3, conjunto Teddy
48
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.15: Resultados con SAD para un tamaño de 5x5, conjunto Teddy
Tamaño 3x3
Tamaño 5x5
% error
Teddy Cones
46,48 40,99
46,33 40,74
Error medio
Teddy Cones
13,57 12,26
12,88 11,38
Cuadro 5.9: Resultados con SAD
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
49
Desarrollo de herramientas de apoyo a la estereovisión
Suma de Diferencias Cuadráticas
Figura 5.16: Resultados con SSD para un tamaño de 3x3, conjunto Cones
Figura 5.17: Resultados con SSD para un tamaño 5x5, conjunto Cones
50
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.18: Resultados con SSD para un tamaño de 3x3, conjunto Teddy
Figura 5.19: Resultados con SSD para un tamaño de 5x5, conjunto Teddy
Tamaño 3x3
Tamaño 5x5
% error
Teddy Cones
45,89 40,59
44,87 39,05
Error medio
Teddy Cones
11,99 11,85
11,14 12,18
Cuadro 5.10: Resultados con SSD
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
51
Desarrollo de herramientas de apoyo a la estereovisión
Correlación Cruzada Normalizada
Figura 5.20: Resultados con CNN para un tamaño de 3x3, conjunto Cones
Figura 5.21: Resultados con CNN para un tamaño 5x5, conjunto Cones
52
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
Desarrollo de herramientas de apoyo a la estereovisión
Figura 5.22: Resultados con CNN para un tamaño de 3x3, conjunto Teddy
Figura 5.23: Resultados con CNN para un tamaño de 5x5, conjunto Teddy
Tamaño 3x3
Tamaño 5x5
% error
Teddy Cones
34,03 35,53
34,07 35,32
Error medio
Teddy Cones
7,83
9,17
7,76
9,99
Cuadro 5.11: Resultados con CNN
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
53
Desarrollo de herramientas de apoyo a la estereovisión
5.2.2.
Pruebas con el método de Birchfield
Figura 5.24: Resultados con Birchfield, conjunto Cones
Figura 5.25: Resultados con Birchfield, conjunto Teddy
Tamaño 3x3
% error
Teddy Cones
21,4 25,55
Error medio
Teddy Cones
5,11
5,98
Cuadro 5.12: Resultados con Birchfield
54
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
Desarrollo de herramientas de apoyo a la estereovisión
5.3.
Comparativa de resultados con el estado del arte
Los resultados obtenidos con los algoritmos de cálculo utilizados difieren mucho del actual
estado del arte. En el sitio web citado anteriormente, http://vision.middlebury.edu/stereo, existe
una relación de los algoritmos que obtienen mejores resultados en conjuntos de imágenes como
los utilizados en este estudio. En el se puede apreciar que los mejores algoritmos dan un 7-8 % de
error en los conjuntos de imágenes aquí utilizados, tomando, dependiendo del algoritmo, entre 20
y 30 segundos por cada par de imágenes. Si bajamos en la lista de resultados proporcionados por
Middlebury, encontramos algoritmos que sí consiguen una velocidad de tiempo real, obteniendo
resultados de entre 13 y 28 % píxeles erróneos, lo cual es consistente con los resultados obtenidos
en este proyecto.
CAPÍTULO 5. EXPERIMENTOS REALIZADOS Y RESULTADOS
55
6
Conclusiones y trabajo futuro
En este capítulo se van a desarrollar las conclusiones a las que se han llegado sobre los
objetivos que se plantearon en la introducción del presente documento. Así mismo se sugieren
posibles líneas de investigación para la mejora de este proyecto y para trabajos futuros.
La bondad de cada uno de los métodos de cálculo de disparidad utilizados se medirá en
función del tiempo de cálculo y de la precisión obtenida.
6.1.
Conclusiones sobre los sistemas físicos
Como se vió en el capítulo 4, de los dos sistemas físicos de los que partíamos, solo es viable
la aplicación del proyecto sobre las cámaras IP, ya que el sistema Firewire necesitaría que la
escena fuese grabada a mucha más distancia de la que es posible. Además de esto, el sistema
formado por cámaras IP presenta mucha flexibilidad, ya que, como se comentó en su momento,
es un sistema móvil y regulable. Ésto es, nos permite grabar distintas escenas, así como modificar
la distancia existente entre las cámaras, con lo que variaríamos entre qué distancias desde las
cámaras el sistema es capaz de calcular la disparidad.
También hay que mencionar la posibilidad de añadir más cámaras al sistema de captura,
y contar con más imágenes para el cálculo de la disparidad. Esto conllevará, por una parte un
incremento notable del tiempo de cálculo, al añadir una línea epipolar más en la que buscar
correspondencias para cada punto. Por otra parte, también dispondremos de más información
para el cálculo de correspondencias, así como la posibilidad de obtener en la nueva imagen
información sobre objetos ocluidos en alguna de las dos imágenes originales, lo cual mejorará la
precisión de el mapa de disparidad, sobre todo en los bordes de los objetos cercanos.
57
Desarrollo de herramientas de apoyo a la estereovisión
6.2.
Conclusiones sobre la restricción temporal
El nivel de sincronización temporal entre los instantes de captura obtenido, mejor a 1ms, es
suficiente para los objetivos de este proyecto, pero no se ha comprobado su funcionamiento frente
a escenas a alta velocidad. Si un estudio sobre el sistema de captura en estas circustancias produce
diferencias en las capturas, se deberá añadir al mismo algún método de disparo sincronizado.
Los método de disparo que podrán utilizarse dependerán de los elementos utilizados. Para
poder usar en método de disparo por software es necesario que la tarjeta capturadora que utiliza
el PC sea compatible con esta característica; para un método de disparo hardware necesitamos
que las cámaras tengan las conexiones necesarias. En nuestro caso, únicamente sería posible la
inclusión de ésta última.
6.3.
Conclusiones sobre la restricción de alineación
La precisión de la alineación epipolar está directamente relacionada con la precisión del
sistema de calibración del que disponemos. Como se puede ver en las conclusiones expuestas en
[3], la precisión del sistema de calibración es fiable, pero mejorable según las líneas de trabajo
futuro propuestas. Entre ellas es destacable la utilización de un detector de esquinas de Harris u
otro proceso de extracción de características fiable, a fin de reducir la aleatoriedad en el proceso
de marcado manual de las esquinas.
Otra línea de mejora concerniente a éste punto sería, partiendo de un sistema de calibración
dado, introducirlo como un paso opcional al iniciar el sistema; de manera que tengamos todas
las herramientas necesarias para la estereovisión integradas. Utilizando el método de calibración
de Javier García Ocón necesitaríamos primeramente pasar el algoritmo a código C++.
6.4.
Conclusiones sobre el cálculo de disparidad mediante búsqueda por bloques
De los resultados obtenidos en el capítulo anterior se pueden extraer varias conclusiones
válidas para los tres algoritmos de cálculo utilizados. La primera de ellas es la escasa velocidad
alcanzada, siendo en el mejor de los casos, inferior a los 10 fps. Estos resultados pueden mejorarse
mediante la inclusión en el algoritmo de una matriz en la que almacenar los resultados de las
operaciones entre las imágenes, de manera que no se realice varias veces la misma operación.
También hay que señalar los problemas que presenta este método para tratar con grandes
superficies, ya sean lisas o presentes brillos o cambios de color. Se puede apreciar este efecto
en el caso mostrado en el capítulo anterior evaluando la puerta y la superficie de pared de la
parte inferior de la imagen. Parte de estos errores vienen dados por la diferencia de intensidad
entre píxeles correspondientes, ya que han sido grabados con distintas cámaras. Esta situación
es subsanada en el método de Correlación Cruzada Normalizada, pero no así en los otros dos.
Para paliar esta situación sería necesaria una igualación de los niveles de gris de las imágenes,
que resultaría en una mejora del resultado, pero en un empeoramiento del tiempo de cálculo.
6.4.1.
Suma de Diferencias Absolutas
De los tres algoritmos de cálculo estudiados dentro del método de búsqueda por bloques,
este es el que obtiene mejor rendimiento temporal, pero menor precisión en el resultado. La
58
CAPÍTULO 6. CONCLUSIONES Y TRABAJO FUTURO
Desarrollo de herramientas de apoyo a la estereovisión
diferencia entre los dos tamaños de ventana de cálculo no es apreciable, ya que mejora ciertas
zonas mientras que empeora otras. Aún así, la utilización de este método es poco recomendable,
ya que genera grandes zonas con una disparidad errónea.
6.4.2.
Suma de Diferencias Cuadráticas
Este algoritmo mejora ligeramente los resultados obtenidos por el anterior, disminuyendo
en gran medida la velocidad final del sistema. Este método genera menos zonas de disparidad
errónea, y más pequeñas, pero el empeoramiento que conlleva en velocidad de cálculo lo hacen
poco adecuado.
6.4.3.
Correlación Cruzada Normalizada
Los resultados obtenidos mediante este algoritmo mejora sensiblemente los obtenidos mediante Suma de Diferencias Cuadráticas, incrementando notablemente el tiempo de cálculo.
Como se ha visto, colocándonos en el equilibrio entre precisión y velocidad de cálculo entre
los métodos de búsqueda por bloque, en caso de necesitar más el primero, nos decantaremos por
el método de Correlación Cruzada Normalizada, que ofrece sin duda los mejores resultados de
los tres. En caso de primar la velocidad de cálculo elegiremos la Suma de Diferencias Absolutas.
6.5.
Conclusiones sobre el cálculo de disparidad mediante el método de Birchfield
La primero que hay que destacar del método de cálculo de disparidad mediante el método de
Birchfield es la aproximación bajo ciertas circunstancias a la velocidad aceptada como tiempo
real, 25 fps. De los métodos probados, es el que mayor velocidad nos proporciona, duplicando los
resultados obtenidos con él método más rápido de búsqueda por bloques. Respecto a la precisión,
los mejores resultados de todos los algoritmos vistos, estando los errores concentrados en la zona
izquierda de la imaagen, en la cual éste algoritmo no puede obtener buenos resultados.
También hay que señalar que varios de los errores de este método pueden subsanarse o
paliarse en cierta medida mediante la variación de forma empírica de los parámetros de cálculo,
pudiendo adaptar el método a la escena que se esté grabando en ese momento.
Comparando este método con los expuestos anteriormente, vemos que nos aporta los mejores
resultados con mayor velocidad, es por ello que la elección de este método para el cálculo de la
disparidad es la más recomendable.
CAPÍTULO 6. CONCLUSIONES Y TRABAJO FUTURO
59
Bibliografía
[1] Alessandro Verri Andrea Fusiello, Emamuele Trucco. A compact algorithm for rectification
of stereo pairs. Springer-Verlag, 2000.
[2] Stan Birchfield y Carlo Tomasi. Depth discontinuities by pixel-to-pixel stereo. International
Journal of Computer Vision, pages 269–293, 1999.
[3] Javier García Ocón. Autocalibración y sincronización de múltiples cámaras PTZ. PhD
thesis, Universidad Autónoma de Madrid, Mayo 2007.
[4] Andrew Zisserman Richard Hartley. Multiple View Geometry in Computer Vision. Cambridge University Press, 2003.
[5] Olivier Faugeras y Quang-Tuan Luong. The geometry of multiples images. MIT Press, 2001.
[6] Olivier Faugeras. Three-dimensional computer vision: a geometric viewpoint. MIT Press,
1993.
[7] Yao Wang, Jörn Osteermann, and Ya-Qin Zhang. Video Processing and comunications.
Prentice-Hall, 2001.
[8] Gary Bradski y Adrian Kaehler. Learning Opencv. O’Reilly Media, 2008.
[9] D. Scharstein and R. Szeliski. High-accuracy stereo depth maps using structured light.
IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 1:195–
202, Junio 2003.
[10] Z. Zhang. A flexible new technique for camera calibration. IEEE Transactions on Pattern
Analysis ans Machine Intelligence, 2000.
61
Desarrollo de herramientas de apoyo a la estereovisión
62
BIBLIOGRAFÍA
A
Presupuesto
1) Ejecución Material
Compra de ordenador personal (Software incluido)
2.200 ¤
Alquiler cámaras IP
880 ¤
Alquiler cámaras Firewire
720 ¤
Alquiler de impresora láser durante 6 meses
280 ¤
Material de oficina
130 ¤
4.210 ¤
Total de ejecución material
2) Gastos generales
478 ¤
sobre Ejecución Material
3) Beneficio Industrial
209 ¤
sobre Ejecución Material
4) Honorarios Proyecto
1800 horas a 15 ¤/ hora
27000 ¤
5) Material fungible
Gastos de impresión
280 ¤
Encuadernación
200 ¤
6) Subtotal del presupuesto
32.377 ¤
Subtotal Presupuesto
7) I.V.A. aplicable
5.180,32 ¤
16 % Subtotal Presupuesto
8) Total presupuesto
37.557,32 ¤
Total Presupuesto
63
Desarrollo de herramientas de apoyo a la estereovisión
Madrid, JULIO 2010
El Ingeniero Jefe de Proyecto
Fdo.: Alberto Garzón Leo
Ingeniero Superior de Telecomunicación
64
APÉNDICE A. PRESUPUESTO
B
Pliego de condiciones
Pliego de condiciones
Este documento contiene las condiciones legales que guiarán la realización, en este proyecto,
de un Desarrollo de herramientas de apoyo a la estereovisión. En lo que sigue, se supondrá que
el proyecto ha sido encargado por una empresa cliente a una empresa consultora con la finalidad
de realizar dicho sistema. Dicha empresa ha debido desarrollar una línea de investigación con
objeto de elaborar el proyecto. Esta línea de investigación, junto con el posterior desarrollo de
los programas está amparada por las condiciones particulares del siguiente pliego.
Supuesto que la utilización industrial de los métodos recogidos en el presente proyecto ha
sido decidida por parte de la empresa cliente o de otras, la obra a realizar se regulará por las
siguientes:
Condiciones generales.
1. La modalidad de contratación será el concurso. La adjudicación se hará, por tanto, a la
proposición más favorable sin atender exclusivamente al valor económico, dependiendo de
las mayores garantías ofrecidas. La empresa que somete el proyecto a concurso se reserva
el derecho a declararlo desierto.
2. El montaje y mecanización completa de los equipos que intervengan será realizado totalmente por la empresa licitadora.
3. En la oferta, se hará constar el precio total por el que se compromete a realizar la obra
y el tanto por ciento de baja que supone este precio en relación con un importe límite si
este se hubiera fijado.
4. La obra se realizará bajo la dirección técnica de un Ingeniero Superior de Telecomunicación,
auxiliado por el número de Ingenieros Técnicos y Programadores que se estime preciso para
el desarrollo de la misma.
5. Aparte del Ingeniero Director, el contratista tendrá derecho a contratar al resto del personal, pudiendo ceder esta prerrogativa a favor del Ingeniero Director, quien no estará
obligado a aceptarla.
65
Desarrollo de herramientas de apoyo a la estereovisión
6. El contratista tiene derecho a sacar copias a su costa de los planos, pliego de condiciones y
presupuestos. El Ingeniero autor del proyecto autorizará con su firma las copias solicitadas
por el contratista después de confrontarlas.
7. Se abonará al contratista la obra que realmente ejecute con sujeción al proyecto que sirvió
de base para la contratación, a las modificaciones autorizadas por la superioridad o a las
órdenes que con arreglo a sus facultades le hayan comunicado por escrito al Ingeniero
Director de obras siempre que dicha obra se haya ajustado a los preceptos de los pliegos
de condiciones, con arreglo a los cuales, se harán las modificaciones y la valoración de las
diversas unidades sin que el importe total pueda exceder de los presupuestos aprobados. Por
consiguiente, el número de unidades que se consignan en el proyecto o en el presupuesto,
no podrá servirle de fundamento para entablar reclamaciones de ninguna clase, salvo en
los casos de rescisión.
8. Tanto en las certificaciones de obras como en la liquidación final, se abonarán los trabajos
realizados por el contratista a los precios de ejecución material que figuran en el presupuesto
para cada unidad de la obra.
9. Si excepcionalmente se hubiera ejecutado algún trabajo que no se ajustase a las condiciones
de la contrata pero que sin embargo es admisible a juicio del Ingeniero Director de obras, se
dará conocimiento a la Dirección, proponiendo a la vez la rebaja de precios que el Ingeniero
estime justa y si la Dirección resolviera aceptar la obra, quedará el contratista obligado a
conformarse con la rebaja acordada.
10. Cuando se juzgue necesario emplear materiales o ejecutar obras que no figuren en el presupuesto de la contrata, se evaluará su importe a los precios asignados a otras obras o
materiales análogos si los hubiere y cuando no, se discutirán entre el Ingeniero Director y
el contratista, sometiéndolos a la aprobación de la Dirección. Los nuevos precios convenidos
por uno u otro procedimiento, se sujetarán siempre al establecido en el punto anterior.
11. Cuando el contratista, con autorización del Ingeniero Director de obras, emplee materiales
de calidad más elevada o de mayores dimensiones de lo estipulado en el proyecto, o sustituya
una clase de fabricación por otra que tenga asignado mayor precio o ejecute con mayores
dimensiones cualquier otra parte de las obras, o en general, introduzca en ellas cualquier
modificación que sea beneficiosa a juicio del Ingeniero Director de obras, no tendrá derecho
sin embargo, sino a lo que le correspondería si hubiera realizado la obra con estricta sujeción
a lo proyectado y contratado.
12. Las cantidades calculadas para obras accesorias, aunque figuren por partida alzada en el
presupuesto final (general), no serán abonadas sino a los precios de la contrata, según las
condiciones de la misma y los proyectos particulares que para ellas se formen, o en su
defecto, por lo que resulte de su medición final.
13. El contratista queda obligado a abonar al Ingeniero autor del proyecto y director de obras
así como a los Ingenieros Técnicos, el importe de sus respectivos honorarios facultativos
por formación del proyecto, dirección técnica y administración en su caso, con arreglo a
las tarifas y honorarios vigentes.
14. Concluida la ejecución de la obra, será reconocida por el Ingeniero Director que a tal efecto
designe la empresa.
15. La garantía definitiva será del 4
16. La forma de pago será por certificaciones mensuales de la obra ejecutada, de acuerdo con
los precios del presupuesto, deducida la baja si la hubiera.
17. La fecha de comienzo de las obras será a partir de los 15 días naturales del replanteo oficial
de las mismas y la definitiva, al año de haber ejecutado la provisional, procediéndose si no
existe reclamación alguna, a la reclamación de la fianza.
66
APÉNDICE B. PLIEGO DE CONDICIONES
Desarrollo de herramientas de apoyo a la estereovisión
18. Si el contratista al efectuar el replanteo, observase algún error en el proyecto, deberá
comunicarlo en el plazo de quince días al Ingeniero Director de obras, pues transcurrido
ese plazo será responsable de la exactitud del proyecto.
19. El contratista está obligado a designar una persona responsable que se entenderá con el
Ingeniero Director de obras, o con el delegado que éste designe, para todo relacionado
con ella. Al ser el Ingeniero Director de obras el que interpreta el proyecto, el contratista
deberá consultarle cualquier duda que surja en su realización.
20. Durante la realización de la obra, se girarán visitas de inspección por personal facultativo
de la empresa cliente, para hacer las comprobaciones que se crean oportunas. Es obligación
del contratista, la conservación de la obra ya ejecutada hasta la recepción de la misma,
por lo que el deterioro parcial o total de ella, aunque sea por agentes atmosféricos u otras
causas, deberá ser reparado o reconstruido por su cuenta.
21. El contratista, deberá realizar la obra en el plazo mencionado a partir de la fecha del
contrato, incurriendo en multa, por retraso de la ejecución siempre que éste no sea debido
a causas de fuerza mayor. A la terminación de la obra, se hará una recepción provisional
previo reconocimiento y examen por la dirección técnica, el depositario de efectos, el interventor y el jefe de servicio o un representante, estampando su conformidad el contratista.
22. Hecha la recepción provisional, se certificará al contratista el resto de la obra, reservándose
la administración el importe de los gastos de conservación de la misma hasta su recepción
definitiva y la fianza durante el tiempo señalado como plazo de garantía. La recepción
definitiva se hará en las mismas condiciones que la provisional, extendiéndose el acta
correspondiente. El Director Técnico propondrá a la Junta Económica la devolución de la
fianza al contratista de acuerdo con las condiciones económicas legales establecidas.
23. Las tarifas para la determinación de honorarios, reguladas por orden de la Presidencia
del Gobierno el 19 de Octubre de 1961, se aplicarán sobre el denominado en la actualidad
"Presupuesto de Ejecución de Contrata anteriormente llamado "Presupuesto de Ejecución
Material"que hoy designa otro concepto.
2
Condiciones particulares.
La empresa consultora, que ha desarrollado el presente proyecto, lo entregará a la empresa
cliente bajo las condiciones generales ya formuladas, debiendo añadirse las siguientes condiciones
particulares:
1. La propiedad intelectual de los procesos descritos y analizados en el presente trabajo,
pertenece por entero a la empresa consultora representada por el Ingeniero Director del
Proyecto.
2. La empresa consultora se reserva el derecho a la utilización total o parcial de los resultados
de la investigación realizada para desarrollar el siguiente proyecto, bien para su publicación
o bien para su uso en trabajos o proyectos posteriores, para la misma empresa cliente o
para otra.
3. Cualquier tipo de reproducción aparte de las reseñadas en las condiciones generales, bien
sea para uso particular de la empresa cliente, o para cualquier otra aplicación, contará
con autorización expresa y por escrito del Ingeniero Director del Proyecto, que actuará en
representación de la empresa consultora.
4. En la autorización se ha de hacer constar la aplicación a que se destinan sus reproducciones
así como su cantidad.
APÉNDICE B. PLIEGO DE CONDICIONES
67
Desarrollo de herramientas de apoyo a la estereovisión
5. En todas las reproducciones se indicará su procedencia, explicitando el nombre del proyecto, nombre del Ingeniero Director y de la empresa consultora.
6. Si el proyecto pasa la etapa de desarrollo, cualquier modificación que se realice sobre él,
deberá ser notificada al Ingeniero Director del Proyecto y a criterio de éste, la empresa
consultora decidirá aceptar o no la modificación propuesta.
7. Si la modificación se acepta, la empresa consultora se hará responsable al mismo nivel que
el proyecto inicial del que resulta el añadirla.
8. Si la modificación no es aceptada, por el contrario, la empresa consultora declinará toda
responsabilidad que se derive de la aplicación o influencia de la misma.
9. Si la empresa cliente decide desarrollar industrialmente uno o varios productos en los que
resulte parcial o totalmente aplicable el estudio de este proyecto, deberá comunicarlo a la
empresa consultora.
10. La empresa consultora no se responsabiliza de los efectos laterales que se puedan producir en el momento en que se utilice la herramienta objeto del presente proyecto para la
realización de otras aplicaciones.
11. La empresa consultora tendrá prioridad respecto a otras en la elaboración de los proyectos
auxiliares que fuese necesario desarrollar para dicha aplicación industrial, siempre que
no haga explícita renuncia a este hecho. En este caso, deberá autorizar expresamente los
proyectos presentados por otros.
12. El Ingeniero Director del presente proyecto, será el responsable de la dirección de la aplicación industrial siempre que la empresa consultora lo estime oportuno. En caso contrario,
la persona designada deberá contar con la autorización del mismo, quien delegará en él las
responsabilidades que ostente.
68
APÉNDICE B. PLIEGO DE CONDICIONES
C
Manual de utilización
1. Colocar el archivo de configuración config.ini y el archivo con las matrices de rectificado
Matrices.txt en la misma carpeta en la que esté el ejecutable.
2. Ejecutar por línea de comandos según el método
-Bloques D:\u\agl\800x600.dcf 100 3 1 Los parámetros se corresponden a el archivo de
configuración de las cámaras, la disparidad máxima, el tamaño de la ventana de cálculo y el
método de obtención de la disparidad (1-SAD, 2-SSD, 3-NCC)
-Birchfield D:\u\agl\800x600.dcf 100 25 5 12 15 25 Los parámetros se corresponden a el
archivo de configuración de las cámaras, la disparidad máxima, y los cinco parámetros de cálculo
del algoritmo de Birchfield.
3. Una vez esté el programa en funcionamiento, al hacer click sobre la imagen de disparidad,
se mostrará por la ventana de comandos las coordenadas pixel del punto marcado, así como su
distancia a las cámaras expresada en milímetros.
69
Descargar